What is Oracle Service Bus or OSB ?
The larger, powerful service bus
Used for message brokering
Message Transformation over XQuery & XSLT
Extended functionality important for enterprise-wide integration like
Message Throttling
Service Pooling
Reliable Messaging
Development through Eclipse IDE or Service Bus Console
OSB specific deployment
What are the key features of Oracle Service Bus or OSB ?
Supports Multiprotocol Messaging
Enables Location Transparency
Handles Dynamic Routing
Enables Message Transformation
Enables Service Orchestration
Supports Message Enrichment
Provides Service Security
Implements Service Level Agreement
Explain in detail about key features of Oracle Service Bus or OSB ?
Dynamically transform and route services using simple and/or complex routing rules and/or message payloads
Ability to orchestrate services from existing IT systems with disparate messaging protocols without needing to change the systems and styles
Isolate service location changes
Rapidly respond to business needs by quickly configuring routing rules based on changes to business rules or existing IT systems, without coding
Orchestrate several services to create new one
Supports message enrichment
Enables optimized, pluggable, policy-driven transport and message level security
Implements rules-driven, configurable Service Level Agreement (SLA)
Describe OSB’s role as a Message Broker ?
A message broker is an architectural pattern for message validation, message transformation and message routing
It mediates communication amongst applications, minimizing the mutual awareness that applications should have of each other in order to be able to exchange messages, effectively implementing decoupling
OSB Message broker:
Decoupling (via interfaces)
Routing: provides routing to the correct service instance according to technical or functional data to take into account the partitioning of the components business applications
Message transformation and enrichment
Service composition/aggregation
Light orchestration (stateless)
Version management
Protocol break
Message validation
Error handling
Content Control
Schema Validation
What are some of the major protocols that OSB supports ?
HTTPS
SOAP
JMS
SMTP/POP/IMAP
Tuxedo
EJB
Native MQ
File
FTP
STFP
What is meant by Location Transparency ?
A service bus is used for endpoint virtualization
In 11g stack, Oracle Service Bus (OSB) is the primary service bus
So, we can expose proxy service at OSB t0 outside world and in exposed OSB proxy message flow, route incoming request to any business service on the basis of routing logic
Note: alternatively, use Mediator in SOA 11g to expose service and use mediator routing logic to route to actual service
OSB Location Transparency:
OSB creates “Location Transparency” through isolation of consumers from service providers and act as a proxy layer to transport the message
OSB can be used to isolate service location changes
What is Message Enrichment ?
Getting additional information from the existing service using Service Callout option
And then adding/inserting this additional information (required) into an incoming message/request XML before it route to the service endpoint
In OSB 11g, it is Business Service
Sometimes, you may have legacy application coded in core Java or EJB, and then at times you may need Java Callout
Where does the Service Bus fit in the SOA landscape ?
Significance of OSB in an SOA Landscape
Oracle Service Bus is at the heart of Oracle’s comprehensive business integration solution and belongs to the Oracle Messaging product line
Oracle Service Bus is primarily targeted for managing different types of services, and providing traditional message brokering across heterogeneous IT environments
The lightweight, stateless, high-performance architecture of Oracle Service Bus and its converged intelligent message mediation and service life cycle management capabilities, make it an ideal core component of distributed services networks
It is designed to fit into the broader IT Service-Oriented Architecture (SOA) landscape as a distributed service management intermediary and can be integrated with other Oracle business process management solutions in distributed heterogeneous deployments
How does a Service Bus facilitate a loosely coupled architecture ?
Described solely by its interface contract and behavioral attributes (i.e. hides its implementation and facilitates loose-coupling)
Loose Coupling of Services:
Loose coupling is achieved through abstracting and resolving the differences between two or more systems in order to facilitate a seamless integration
An ESB/OSB provides or helps to mediate the differences along the following lines:
- Transport Protocol
- Interaction Pattern (message exchange pattern)
- Shape (Interface / Schema)
- Security Paradigm
More definition for loose coupling of services:
Oracle Service Bus establish loose coupling between service clients and business services
OSB maintains the central point security and monitoring
Oracle Service bus is an intermediary that processes incoming service request messages, determines routing logic, and transforms these messages for compatibility with other service consumers
It receives messages through a transport protocol such as HTTP(S), JMS, File, and FTP, and sends messages through the same or a different transport protocol
SOA is a kind of architecture that uses services as building blocks to facilitate enterprise integration and component reuse through loose coupling
Explain OSB Service Orchestration ?
Combining existing services to make new services
This is light orchestration as compared to the BPEL orchestration in SOA which may be Synchronous/Asynchronous
But in OSB 11g, it is stateless
There are limitations with OSB 11g as compared to the BPEL/SOA which could be used for maintaining states for hours/days as per our business needs
What is a Proxy Service ?
A proxy service is what the service bus exposes to service consumers and implements the virtualization logic
A proxy service can route messages to multiple business services; you can choose to configure a proxy service with an interface that is independent of the business services with which the proxy service communicates
In such cases, 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
It is exposed to the calling applications or services
Proxy services are Oracle Service Bus definitions of intermediary Web services that Oracle Service Bus implements locally on Weblogic Server
You can think of proxy services as the services published by OSB
Instead of your service clients calling the services directory, they call OSB proxy services instead
Few more definitions of Proxy Service:
Proxy services are definitions of generic intermediary Web services that are hosted locally on Oracle Service Bus
A proxy service communicates with other services in the IT infrastructure through interfaces, which may or may not be identical to that of a service provider or service consumer business service
Proxy services can route messages to multiple business services, using their configured independent interfaces
Proxy services can be defined and configured using the Oracle Service Bus Console
They are configured by specifying their
- interface
- type of transport OSB uses
- and their associated message processing logic
- Q) What is Message Flows in OSB ?
Message flows are definitions used for implementing proxy services within Oracle Service Bus
Message flow modeling involves configuration of message processing logic in proxy service’s message flow definitions
This logic includes activities such as transformation, publishing, reporting, and exception management
You can use the graphical modeling tools available in Workspace Studio/OEPE and in the Oracle Service Bus Console to perform message modeling
Oracle Service Bus proxy service implementations are defined in message flow definitions using components such as
- Pipelines
- Branch nodes
- Route nodes
Another explanation for Message Flow:
In Oracle Service Bus, a message flow is the implementation of a proxy service
You can configure 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
Message flow in OSB is the most important part
It defines the request message flow from Start Node to Route activity and also defines the response message flow from Route to Start Node
It contains Pipeline Pairs, Branch Nodes, Route Nodes, Stages, and Actions etc
What is a Business Service ?
Business services are Oracle Service Bus definitions of the enterprise services that exchange messages during business processes
A business service and its interface can be defined and configured using the Oracle Service Bus design-time tooling
To configure a business service, you must specify its interface, the type of transport it uses, its security requirements, and other characteristics
A business service definition is similar to that of a proxy service, but it does not have pipelines (a message flow)
It connects to the EIS (Enterprise Information System) layer (
In an enterprise architecture, EIS is typically a SOAP based Web Services
Can we expose any Business Service to external clients or subscribers ?
No, we cannot expose Business Services to external clients or subscribers
We need Proxy Services to expose to external world
Can we have Proxy Services without Business Services ?
Yes we can have Proxy Services without Business Services, but that will be just a dummy service
EIS layer cannot be connected using that Proxy Service
Explain Service Callout in OSB ?
Action is to be used in a Pipeline pair to call the services
It should be noted that the Service Callout action is used only for invoking synchronous request-response operations
OSB’s service callout action offers greater flexibility for more sophisticated message flows
The service callout action is used inside a message flow to call on another service registered within OSB to perform necessary action on the message
The response returned by that service is assigned to a local variable
The variable can then be used within the current message flow
The service callout action can be used configure a synchronous (blocking) callout to an OSB-registered proxy or business service
The service types that can be called could be –
WSDL Web Service
SOAP
Any XML Service
Messaging
Whether OSB Service Callout is Synchronous or Asynchronous ?
Synchronous request-response used in pipeline-pair
And it is blocking
Explain Java Callout in OSB ?
Sometime, you may have legacy application coded in core Java or EJB, and then at times you may need Java Callout
Invoking / accessing method should be “public” and “static”
What are the different types of Pipelines ?
Request pipeline
Response Pipeline
What is a Pipeline Pair ?
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
NOTE: A Pipeline Pair node can have only one direct descendant in the Message Flow
Stage: A stage is a container of related activities to manipulate messages passing through the pipeline