2Oracle Service Bus Core Features By fusing the concepts of the ESB, message brokering, and operational services management into a single product, Oracle Service Bus allows management and integration of messages and services across a services network. Its core functional features are separated into the following categories:Service Integration - features used for integrating disparate service end-points, message brokering, and mediating and exposing services for reuseService Security - features used for service authentication and authorization, message security enforcement, and user identity validationService Composition - features used for configuring message routing logic, message transformation, service configuration, validation and registryService Management - features used for monitoring and managing service activity and availability
3Log in to Oracle Service Bus Console Oracle Service Bus Console is a Web services management dashboard.Properties:monitor Web servicesMonitor serversperform service management tasks.configuring proxy and business servicessetting up securitymanaging resourcescapturing data for tracking or regulatory auditingviews to monitor current state and health of OSB environment.detailed statistics about servers, services, and alerts.enables you respond rapidly and effectively to changes in your service-oriented environment
4To log in to Oracle Service Bus Console Open a browser window and enter the following URL to open the Oracle Service Bus Console for the ServiceBusTutorial domain:Log in with Oracle Service Bus Console the user name and password that you specified when you created the domain.
8Change CenterKey to making configuration changes inside the service bus.The Change Center has the unique ability to lock its current configuration while changes are being made, letting the service bus continue to receive and process requests for services while configuration changes are being made in the console.Changes being made to the configuration do not affect the current system configuration until they are “activated”.View conflictsView changesUndo changesView all sessionsActivate sessionsView task details
9Create a Session and Set up a Project Monitor resources and configurations in Oracle Service Bus environmentCreate an session in the Oracle Service Bus Console to update or delete resources and modify their configuration properties.The Change Center in the console allows you to create and manage sessions.Allows you to perform the functions summarized in the following table:ClickCreateCreate a new session & make changes to configuration.EditEnter a session that you previously created and exited. You must activate a session before you can use Edit.ExitDiscontinue the session and save the session state. Click Edit to re-enterthe discontinued session.DiscardEnd the current session without saving the changesActivateSave the current session's configuration to the run time
10Resource ManagementOracle Service Bus provides the following resource management capabilities:Stores information about services, schemas, transformations, WSDLs (Web Service Definition Language), and WS PoliciesProvides centralized management and distributed access to resources and servicesAllows browsing of services registered in Oracle Service Bus and import of resources from WebLogic Workshop or other applicationsAllows the propagation of configuration data from environment to environment (for example, from a development domain to a test domain to a production domain). The system allows environment specific settings to be overridden during import.Allows for better synchronization and notification capabilities.
11ResourcesThere are pre-defined resources types in the OSB system environment.
12ValidationOracle Service Bus built-in test console is a browser-based test environment used to validate resources and inline XQuery expressions used in the message flow.Using the test console, it is possible to configure the test object (proxy service, business service, XQuery, XSLT, MFL resource), execute the test, and view test results.The test console can be invoked in a number of ways in the Oracle Service Bus Console, from:The Project ExplorerThe Resource BrowserThe XQuery Editor
132. Service ManagementMonitoring DashboardSLA AlertsReporting
14Monitoring Dashboard• Gauge the current health of: • OSB servers • Proxy services/operations • Message flow components • View custom reports • Metrics include: • Response time • Message throughput • Error count • Alert count • Schema violations
15Alerts• Service Level Agreements (SLAs) • Guarantee a certain level of performance and/or quality • Trigger reports and Alerts • • SNMP • JMS • Rules based on: • Response time • Message count • Success/failure ratio • Schema violations • Security violations
163. Message Brokering Content Based Routing (of messages) Data TransformationError HandlingService Switching
17Message BrokeringService providers and clients exchange messages with an intermediary proxy service instead of directly with each other, eliminating complexities resulting from heterogeneous communication protocols and messaging formatsXQuery-based policies or callouts to external services for message routingRouting policies that apply to both point-to-point and one-to-many routing scenarios (publish). For publish, routing policies serve as subscription filters
18XPath Is a standard XML expression language Used to identify or locate portions of an XMLDocumentAttributesElements
19XQuery • Structured language for working with XML documents: • Strongly typed• Variables, operators, conditions, loops• Library and custom functions• Relational database queries• Supports Xpath
20Extensible Stylesheet Language Transformations (XSLT) • Alternative to XQuery for XML transformations:• Loosely typed scripting language• Does not require XML Schema• More tolerant of malformed XML• Supports Xpath
21Communication TypesTo support heterogeneous environments, Oracle Service Bus accommodates multiple messaging paradigms. It supports the following types of communication:Synchronous request/responseAsynchronous publish one-oneAsynchronous publish one-manyAsynchronous request/response (synchronous-to-asynchronous bridging)
22Business servicesBusiness services are Oracle Service Bus definitions of the enterprise services that exchange messages during business processes.To configure a business service, you must specify its interface, the type of transport it uses, its security requirements, and other characteristics.
23Proxy ServicesProxy services are OSB definitions of intermediary Web services that OSB implements locally on Oracle WebLogic Server.With OSB message brokering, service clients exchange messages with an intermediary proxy service rather than working directly with a business service.A proxy service can route messages to multiple business services.you can configure a proxy service message flow definition to route a message to the appropriate business service and map the message data into the format required by the business service interface.
24Message Flows A message flow is the implementation of a proxy service. You configure the logic for the manipulation of messages using proxy service message flow definitions.This logic includes such activities as transformation, publishing, and reporting, which are implemented as individual actions within the stages of a pipeline.
25Start node Every message flow begins with a start node. All messages enter the message flow through the start node, and all response messages are returned to the client through the start node.There is nothing to configure in a start node.
26Pipelines Pipeline pairs are request and response pipelines. The request pipeline definition specifies the actions that Oracle Service Bus performs on request messages to the proxy service before invoking a business service or another proxy service.The response pipeline definition specifies the processing that Oracle Service Bus performs on responses from the business or proxy service that the proxy service invokes before returning a response to a client.Each pipeline consists of a sequence of stages.
27Stage Stage is a user-configured processing step. Messages fed into the pipelines are accompanied by a set of message context variables that contain the message contents.They can be accessed or modified by actions in the pipeline stages.
28Branch nodeA branch node allows processing to proceed along exactly one of several possible paths.Operational branching is supported for WSDL-based services, where the branching is based on operations defined in the WSDL.Conditional branching is supported for conditions defined in an XPath-based switch table.Two kinds of branching are supported in message flows:operational branching, configured in an operational branch node, andconditional branching, configured in a conditional branch node.
29Operational Branching & Conditional Branching When you create an operational branch node in a message flow, you can build branching logic based on the operations defined in the WSDL.You must use operational branching when a proxy service is based on a WSDL with multiple operations.Use conditional branching to branch based on a specified condition.Conditional branching is driven by a lookup table with each branch tagged with simple, unique string values.At run time, the variable or the expression is evaluated, and the resulting value is used to determine which branch to follow.If no branch matches the value, the default branch is followed.
30Route NodeA route node performs request/response communication with another service.It represents the boundary between request and response processing for the proxy service.When the route node dispatches a request message, the request processing is considered complete.The route node supports conditional routing as well as request and response transformations.Because a route node represents the boundary between request and response processing, it cannot have any descendants in the message flow.
31Actions in Stages and Route Nodes Actions provide instructions for handling messages in pipeline stages, error handler stages, and route nodes.Based on the context actions are described in 4 different sections:Communication ActionsFlow Control ActionsMessage Processing ActionsReporting Actions
32Communication Actions Use to…Available in…Dynamic publishPublish a message to a service specified by an XQuery expressionPipeline stageError handler stageRoute nodePublishIdentify a statically specified target service for a message and to configure how the message is packaged and sent to that servicePublish tablePublish a message to zero or more statically specified services. Switch-style condition logic is used to determine at run time which services will be used for the publish
33Communication Actions Routing optionsModify any or all of the following properties in the outbound request: URI, Quality of Service, Mode, Retry parameters, Message PriorityPipeline stageService calloutConfigure a synchronous (blocking) callout to an Oracle Service Bus-registered proxy or business serviceError handler stageTransport headersSet the header values in messages
34Flow Control Actions Action Use to... Available in For each Iterate over a sequence of values and execute a block of actionsPipeline stageError handler stageIf..then…Perform an action or set of actions conditionally, based on the Boolean result of an XQuery expression.Route nodeRaise errorRaise an exception with a specified error code (a string) and description.peline stageResumeResume message flow after an error is handled by an error handler. This action has no parameters and can only be used in error handlers.
35Flow Control Actions Action Use to... Available in Reply Specify that an immediate reply be sent to the invokerPipeline stageError handler stageSkipSpecify that at run time, the execution of this stage is skipped and the processing proceeds to the next stage in the message flow.
36Message Processing Actions Use to...Available inAssignAssign the result of an XQuery expression to a context variablePipeline stageError handler stageDeleteDelete a context variable or a set of nodes specified by an XPath expression.InsertInsert the result of an XQuery expression at an identified place relative to nodes selected by an XPath expression.Java calloutInvoke a Java method, or EJB business service, from within the message flow
37Message Processing Actions MFL transformConvert message content from XML to non-XML, or vice versa, in the message pipeline.An MFL is a specialized XML document used to describe the layout of binary data.Pipeline stageError handler stageRenameRename elements selected by an XPath expressionReplaceReplace a node or the contents of a node specified by an XPath expressionValidateValidate elements selected by an XPath expression against an XML schema element or a WSDL resource
38Reporting Actions Alert Generate alerts based on message context in a pipeline, to send to an alert destinationPipeline stageError handler stageLogConstruct a message to be logged and to define a set of attributes with which the message is loggedReportEnable message reporting for a proxy service.
39Dynamic Message Transformation Oracle Service Bus supports the following capabilities for the transformation or processing of messages:Validates incoming messages against schemasSelects a target service or services, based on the message content or message headersTransforms messages based on the target serviceTransforms messages based on XQuery or XSLTSupports transformations on both XML and MFL messagesMessage enrichmentSupports callouts to Web services to gather additional data for transformation (for example, country code, full customer records, and so on)
40Service Callouts(Service Switching) Oracle Service Bus provides a service callout action that offers greater flexibility for more sophisticated message flows for complex dynamic-routing processing, or to perform message enrichment.The service callout action is used inside a message flow routing stage, to call on the destination service to perform some action on the message.Supports features such as:RPC EncodingURL replacementJava Callouts and POJOs.
41Error HandlingOracle Service Bus supports the following error handling capabilities:Configure system to format and send error messages, and return messages for consumers of services who expect a synchronous responseConfigure error handling logic for pipeline stages, entire pipeline, and for proxy servicesGenerate alerts based on message context in a pipeline, to send to an alert destination.LevelScopeStageHandles all the errors within a stage.PipelineHandles all the errors in a pipeline, along with any unhandled errors from any stage in a pipeline.ServiceHandles all the errors in a proxy service, along with any unhandled errors in any pipeline in a service.SystemHandles all the errors that are not handled any where else in a pipeline.
42Transport ErrorsWhen a transport error is received from an external service and there is no error response payload returned to Oracle Service Bus by the transport provider (for example, in the case that an HTTP 403 error code is returned), the service callout action throws an exception, which in turn causes the pipeline to raise an error.Contents of the Oracle Service Bus fault Variable—Transport Error, no Error Response Payload :<con:fault xmlns:con="http://www.bea.com/wli/sb/context"> <con:errorCode>BEA </con:errorCode> <con:reason>Not Found</con:reason> <con:details> </con:details> <con:location> <con:node>PipelinePairNode1</con:node> <con:Pipeline>PipelinePairNode1_request</con:Pipeline> <con:Stage>Stage1</con:Stage> </con:location> </con:fault>
43Transport Headers in Message Flows The following options are available when you configure a transport headers action:The Pass all Headers through Pipeline option specifies that at run time, the transport headers action passes all headers through from the inbound message to the outbound message or vice versa. Every header in the source set of headers is copied to the target header set, overwriting any existing values in the target header set.The Copy Header from Inbound Request option and the Copy Header from Outbound Response options specifies that at run time, the transport headers action copies the specific header with which this option is associated from the inbound message to the outbound message or vice versa.
44SOAP FaultsIn case an external service returns a SOAP fault, the Oracle Service Bus run time sets up the context variable $fault with a custom error code and description with the details of the fault.<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Client</faultcode> <faultstring>Application Error</faultstring> <detail> <message>That’s an Error!</message> <errorcode>1006</errorcode> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
45Working with Projects, Folders, and Resources Adding ProjectsRenaming ProjectsMoving Projects (Converting to a Folder)Cloning ProjectsDeleting ProjectsAdding FoldersRenaming FoldersMoving or Upgrading FoldersCloning FoldersDeleting FoldersCreating Resources
46Resources Proxy Service Business Service Split-Join WSDL XML Schema WS-PolicyXQuery TransformationXSL TransformationMFL FileService AccountService Key ProviderJARXML DocumentLoading Resources from a URLRenaming ResourcesMoving ResourcesCloning ResourcesExporting a WSDLGenerating a WSDLDeleting Resources
47WSDL support Adding WSDLs Editing WSDLs Deleting WSDLs Resolving Unresolved WSDL ReferencesRefer section 6.6 of Administrators guide
48Schema Support Locating XML Schemas Adding XML Schemas Editing XML SchemasDeleting XML SchemasViewing Unresolved XML Schema References
49XQuery Support Locating XQuery Transformations Adding XQuery TransformationsEditing XQuery TransformationsDeleting an XQuery Transformation