Oracle Service Bus Architecture This section provides an architectural overview of Oracle Service S ervice Bus and highlights operational features that enable rapid service integration, provisioning, and management across a heterogeneous IT infrastructure. It is intended for integration-focused IT architects responsible for messaging and service oriented architectures (SOA. It includes the following sections! •
•
•
Section ".#, $Architecture Overview$ Section ".", $%e& $%e & Architecture Architecture 'oncepts$ Section "., $Oracle Service Bus )eplo&ment$
2.1 Architecture Overview Oracle Service Bus architecture is centered around an *nterprise Service Bus. The bus provides message deliver& services, based on standards including SOA+, SOA+, TT+ and ava essaging Service (S. It is t&picall& designed for high-throughput, guaranteed message deliver& to a variet& of service producers and consumers. It supports /0 as a native data t&pe, while also offering alternatives for handling other data t&pes. Oracle Service Bus is polic& driven and enables &ou to establish loose coupling between be tween service clients and business services, while maintaining a centrali1ed point of securit& control and monitoring. It stores persistent polic&, pro2& service, and related resource configurations in metadata, that can be customi1ed and propagated from development develop ment through staging to production environments re3uired. The message-bro4ering engine accesses this configuration information from its metadata cache. Oracle Service Bus is an intermediar& that processes incoming service re3uest messages, determines routing logic, and transforms these messages for compatibilit& with other service consumers. It receives messages through a transport protocol such as TT+(S, S, 5ile, and 5T+, and sends messages through the same or a different transport protocol. Service response messages follow the inverse path. The message processing b& Oracle Service Bus is driven b& metadata, specified in the message flow definition of a pro2& service. 5igure "-# Oracle Service Bus Service Interactions
)escription of $5igure "-# Oracle Service Bus Service Interactions$ The following high-level architecture diagram illustrates Oracle Service Bus and its functional subs&stems.
2.2 Key Architecture Concepts This section describes 4e& architectural concepts in Oracle Service Bus.
2.2.1 Message Processing essages can contain data or status information about application processes, or instructions for the recipient, or both. Oracle Service Bus enables &ou to route messages based on their contents and to perform transformations on that content. The processing happens through the transport and binding la&ers of Oracle Service Bus. 5igure "-" Binding and Transport 0a&ers in Oracle Service Bus
)escription of $5igure "-" Binding and Transport 0a&ers in Oracle Service Bus$ The processing of messages occurs in the following se3uence of events! #. +rocessing of the inbound transport ". essage flow e2ecution . +rocessing of the outbound transport After a message is sent to an endpoint (either a business service or another pro2& service, Oracle Service Bus processes the response message in a similar model as that described in the preceding se3uence of events. The following figure illustrates a high-level message flow process through the Oracle Service Bus, from inbound endpoint (pro2& service to outbound endpoint (service transport 670 - a business service or another pro2& service. 5igure "- Oracle Service Bus essage +rocessing
)escription of $5igure "- Oracle Service Bus essage +rocessing$ The following sections describe each la&er involved in this message processing. 2.2.1.1 Binding Layer
The binding la&er! •
•
•
pac4s and unpac4s messages as necessar& handles securit& for messages hands messages off to start the message flows (re3uest and response
2.2.1.2 ransport Layer !"n#ound$
The inbound transport la&er is the communication la&er between client services (or service consumers and Oracle Service Bus. It is responsible for handling communication with the service client endpoint and acts as the entr& point for messages into Oracle Service Bus. The inbound transport la&er primaril& deals with raw b&tes of message data in the form of input8output streams. It provides support for compatible transport protocols, including TT+(S, S, 5T+, 5ile, and *-mail. It is not involved in data processing but is responsible for returning response messages to service consumers and handles meta-data for messages, including endpoint 67Is, transport headers, etc.
2.2.1.% ransport Layer !Out#ound$
The outbound transport la&er is responsible for the communication between business services (or service producers and Oracle Service Bus. It is responsible for moving messages from Oracle Service Bus to the business service or pro2& service and for receiving the response from the services. The message data, at the transport level, is in raw b&tes in the form of input8output streams. The outbound transport la&er provides support for compatible transport protocols, including TT+(S, S, 5T+, 5ile, and *-mail. It is not involved in data processing but handles meta-data for messages, including endpoint 67Is, transport headers, etc.
2.2.2 Pro&y Services +ro2& services are a fundamental concept in the architecture of Oracle Service Bus. The& are the interface that service consumers use to connect with managed bac4-end services. +ro2& services are definitions of intermediar& 9eb services that the Service Bus implements locall&. Oracle Service Bus Administration 'onsole allows configuration of a pro2& service b& defining its interface in terms of 9eb Services )escription 0anguages (9S)0s and the t&pe of transport it uses. essage processing logic is specified in message flow definitions when defining a pro2 & service. 5or more information on pro2& services, see Section :.#.#.#, $+ro2& Services$. 2.2.2.1 Message Conte&t
The conte2t of a pro2& service is a set of /0 variables that are shared across the re3uest flow and response flow. ;ew variables can be d&namicall& added or deleted to the conte2t. +redefined conte2t variables contain information about the message, transport headers, securit& principles, metadata for the current pro2& service, and metadata for the primar& routing and publishing services invo4ed b& the pro2& service. The conte2t can be read and modified b& /ect Access +rotocol (SOA+ header elements, SOA+ bod& element, and ultipurpose Internet ail *2tensions (I* attachments, respectivel&. The conte2t gives the impression that all messages are SOA+ messages, and non-SOA+ messages are mapped to this paradigm. Since a pro2& service can route messages to multiple business services, a pro2& service can be configured with an interface that is independent of the business services it communicates with. 6sing generic pro2& templates, the pro2& service can be a configured as a message-flow definition that d&namicall& routes messages to appropriate business services based on content-based routing logic.A pro2& service can also map message data into appropriate protocol formats re3uired b& the end-point business service, allowing for d&namic run-time protocol switching.