What is Oracle SOA:
Oracle SOA Suite provides a comprehensive suite of components for developing, securing, and monitoring service-oriented architecture (SOA). Service components (BPEL process, business rule, human task, spring, and mediator) are the building blocks that you use to construct a SOA composite application. The Service Infrastructure provides the internal message transport infrastructure capabilities for connecting service components and enabling data flow. Service engines for the components process the message information received from the Service Infrastructure.The following components comprise an Oracle SOA Suite installation:
- Web service- Consumer and exposer both async and sync, need to design their scehema with the help of XSD(DTO), and need to design WSDL for the exposed web service, if WSDL will not be designed we can not invooke multiple operation with in a web service.
- Mediater: Will be used for routing the request and response.
- DB Adapter, Used for working with only, invoking query, procedure, function, Further working on this DB adapter for replacing PL/SQL with it.
- BPEL(Business process execution language), Used for desigining business of web service either proxy or service, Validation part, Orchestration of web services will be done here, Multiple operation designing with WSDL/BPEL.BPEL is a Web services orchestration language
- JMS Adapter, Used for publishing and consuming Messaging, will be used in async web service if requeired
- OSB can be also used but it will be prefer to use it only when no orchestration is performed, it requieres to use only at the time of proxy generation and validation part over proxy web service.
- Exception handling, System generated and user defined exception.
SOA Advantage over Manual orchestration:
- Replacing manual code with SOA components by which performance will be increased as these components are highly optimized in respect of performance.
- Internally Web service interact with each other with the help of messaging.
- Services share schema not the classes.
- Service compatibility is defined based on RM.
- Easy to manage complexity, Need to focus on business.
- Changes will not impact the consumer.
- Reduces TCO and increase ROI on evolving systems.
- Add value to core investments by leveraging existing assets.
- New systems can be built faster for less money because.
- existing services can be more easily reused.
- Built for flexibility
- Long term value of interoperability
- Every thing will be used as a service
- Monitoring of services is more good as we can check state and all component request/response data inside SOA with the help of EM Console
- Guaranteed Delivery: Transactionally persist the messages to a data store before passing the message onto the BPEL orchestration engine. Each time, delete the message that was persisted prior to the previous process.
- Message History and Audit Logs:Attach a message history to the message that lists all applications or components that the message has passed through since origination.
Design Patterns:
- Error Hospital. This pattern provides exception handling as a service. To maximize process simplicity and performance, the business processes are designed as simple asynchronous or even short-lived synchronous processes. When there is an exception, messages are published to an error hospital process that then provides the necessary exception management, including human services if needed.
- Composite Service. Combines the functionality of multiple services into a composite service and makes it available to consumers interested in it as a whole. BPEL supports this by automatically making every process available as a service that can be used as a building block to build higher-level, compound flows.
- Orchestration Engine. Specifies the control and data flow associated with an orchestration explicitly, using a standard language such as BPEL that can run on an orchestration engine. The orchestration engine can provide infrastructure services such as audit trails, persistence of long-running flows, common exception handling patterns, and so on.
- Service Compensation. Provides transactional support in a manner that is aligned with loose coupling, stateless services, and long-running processes.
- Orchestration Instance. Creates and allows users to independently observe and manage concurrent instances of a business process.
SOA Developer Benefits:
- SOA’s don’t replace OO Development, but they extend the reach of the functionality.
- SOA’s make components reusable at the business level and not the component level.
- Application Location Transparency
- Loose Coupling allows flexibility
- Greater “Potential” for Re-Use
- Think Cross Platform Re-Use
- Developer Yellow Pages of Services – UDDI
- Common Services Framework leaves developers to work on business logic. (Routing, Reliability)