Tuesday 6 March 2018

Day-1 Overview of Oracle SOA

Service-Oriented Architecture


What is SOA?
In computing terms, SOA is a standards-based method of systems development and integration. SOA is a design paradigm for organizing and utilizing distributed application. SOA is an architectural framework for software design that works around the concept of services.

SOA generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages; their respective clients will benefit from a well-defined interface to access them. XML is often used for interfacing with SOA services. JSON is also becoming increasingly common.
SOA defines how to integrate widely disparate applications for a Web-based environment and uses multiple implementation platforms. Rather than defining an API, SOA defines the interface in terms of protocols and functionality. An endpoint is the entry point for such a SOA implementation.
It is an architecture where small application is running independently. SOA defines how to integrate widely disparate applications for a web based environment and uses multiple implementation platform.

Principles
    · Reuse, granularitymodularity, composability, componentization and interoperability.
    · Service loose coupling: Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
    · Service abstraction: Beyond descriptions in the service contract, services hide logic from the outside world.
    · Service reusability: Logic is divided into services with the intention of promoting reuse.
    · Service optimization: All else equal, high-quality services are generally preferable to low-quality ones.
    · Service encapsulation: Many services are consolidated for use under the SOA. Often such services were not planned to be under SOA.


Why Is an SOA Approach Required?
SOA approaches to software systems structured around the concept of services enables:
    · A consumer of the service to be decoupled from the service provided (producer)
    · A business process to be decomposed into discrete, reusable functional components (or services)
    · The following benefits:
             —Improved business agility
             —Align IT with the business.
             —Remove barriers between business units and business partners.
             —Lower cost of maintaining IT systems
             —Speed up delivery of applications to meet business demands.
             —Protect IT investments by reusing the existing infrastructure.

SOA and Services
         · Services are SOA building blocks
         · SOA can be thought of as:
                —A collection of services on a network that communicate with one another
                —A set of services that are loosely coupled, with well-defined, reusable, platform-independent interfaces
               —A higher level of application development
         · Services provide access to data, business processes, and IT infrastructure, ideally in an asynchronous manner.


What are the different design patterns in SOA?

Orchestration (Erl, Loesgen)
Co-existent application of Process Abstraction, State Repository, Process Centralization, and Compensating Service Transaction, can can be further extended with Atomic Service Transaction, Rules Centralization, and Data Model Transformation.

Enterprise Service Bus (Erl, Little, Rischbeck, Simon)
Co-existent application of Asynchronous Queuing, Intermediate Routing, and the Service Broker compound pattern and can be further extended via Reliable Messaging, Policy Centralization, Rules Centralization, and Event-Driven Messaging.

Service Broker (Little, Rischbeck, Simon)Co-existent application of Data Model Transformation, Data Format Transformation, and Protocol Bridging.

Canonical Schema Bus (Utschig, Maier, Trops, Normann, Winterberg, Erl)
Co-existent application of Enterprise Service Bus, Decoupled Contract, Contract Centralization, and Canonical Schema.

Official Endpoint (Erl)
Joint application of Logic Centralization and Contract Centralization.

Federated Endpoint Layer (Erl)
Joint application of Official Endpoint, Service Normalization, Canonical Protocol, Canonical Schema, and Canonical Expression.



Three-Layer Inventory (Erl)

Joint application of Utility Abstraction, Entity Abstraction, and Process Abstraction.


Web service

Web service is type of software system which is used for exchange the data and use information from one machine to another machine through network. Generally Web services based on the standards such as TCP/IP, HTTP, Java, HTML and XML.

Communication method between two electronic devices over world wide web, service that is "always on". It is use for connecting to standard-based services using SOAP over HTTP.



Web services are pure xml based which is used for exchange information through Internet to direct application to application interaction. These systems include programs, objects, messages or documents.

Many software applications written in various programming languages and running on various platforms can use web services to exchange data over computer network.

You can develop Java-based web services on Solaris and that is accessible from your V.B Program that runs on windows.


Difference between XA and Non XA



XA- Extended Architecture
    It is an X/open group standard for executing a "global transaction" that access more than one back-end data store. XA specifies how a transaction manager will roll up the transactions against the different data-stores into an atomic transaction.



atomic: a serious of database operation either all occur or nothing occur.
An example, i)both pay for and reserve a seat or
ii)neither pay for nor reserve a seat.



XA is a two-phase commit (2PC) protocol for the transaction. All the operation (Transaction) will completed then commit otherwise abort (rollback). An XA driver can be engaged in a multi-DBMS transaction.



NonXA- Extended Architecture
    A non-XA driver only knows the simple setAutoCommit commit or rollback, so two of these (XA & Non-XA) can't cooperate in one transaction.
Non XA driver will not depends on, all operation will completed or not. But Non-XA driver will call commit() one by one operation.



Disadvantages of 2PC
The greatest disadvantages of 2PC is that it is a blocking protocol. If the coordinator fails permanently, some cohorts will never resolve their transactions. After a cohorts has sent an agreement message to the coordinator, it will block until a commit or rollback is received.



What is SOAP?
SOAP stands for Simple Object Access Protocol. SOAP is a communication protocol. It is a format for sending messages. It communicates via Internet. It is based on XML. It is a W3C recommendation. SOAP message loaded in HTTP (envelope is there), for hiding the message. HTTP is a carrier.



What is REST?
REST is Representational State Transfer. It means that each unique URL is a representation of some object. No WSDL is in REST. No envelop directly loaded in HTTP. You can get the contents of that object using an HTTP GET, to delete it, POST, PUT, or DELETE to modify the object.


Service Component Architecture (SCA)
Oracle SOA Suite uses the SCA standard as a way to assemble service components into a SOA composite application. SCA provides a programming model for the following:

 Creating service components written with a wide range of technologies, including programming languages such as Java, BPEL, C++, and declarative languages such as XSLT. The use of specific programming languages and technologies (including web services) is not required with SCA.
 Assembling the service components into a SOA composite application. In the SCA environment, service components are the building blocks of applications.

The key benefits of SCA:
■  Loose coupling
Service components integrate with other service components without needing to know how other service components are implemented.
■  Flexibility
Service components can easily be replaced by other service components.
■  Services invocation
Services can be invoked either synchronously or asynchronously.
■  Productivity
Service components are easily integrated to create a SOA composite application.
■  Easy Maintenance and Debugging
Service components can be easily maintained and debugged when an issue is encountered.

A SOA composite is an assembly of services, service components, and references designed and deployed in a single application. Wiring between the services, service components, and references enables message communication. The details for a composite are stored in the composite.xml file.

All service engines can interact in single composite components.

Service Components
Service components are the building blocks that you use to construct a SOA composite
application.
The following service components are available. There is a corresponding service engine of the same name for each service component. All service engines can interact in a single composite.
■  BPEL processes provide process orchestration and storage of a synchronous or an asynchronous process. You design a business process that integrates a series of business activities and services into an end-to-end process flow.
■  Business rules enable you to design a business decision based on rules.
■  Human tasks provide workflow modeling that describes the tasks for users or groups to perform as part of an end-to-end business process flow.
■  Mediators route events (messages) between different components
■  Spring enables you to integrate Java interfaces into SOA composite applications

Binding Components
Binding components establish a connection between a SOA composite and the external world. There are two types of binding components:
■  Services provide the outside world with an entry point to the SOA composite application. The WSDL file of the service advertises its capabilities to external applications. These capabilities are used for contacting the SOA composite application components. The binding connectivity of the service describes the protocols that can communicate with the service, for example, SOAP/HTTP or a JCA adapter.
■  References enable messages to be sent from the SOA composite application to external services in the outside world.

Wires
Wires enable you to graphically connect the following components in a single SOA composite application for message communication:
■  Services to service components
■  Service components to other service components
■  Service components to references

Service Infrastructure
The Service Infrastructure provides the following internal message routing infrastructure capabilities for connecting components and enabling data flow:
■  Receives messages from the service providers or external partners through SOAP services or adapters
■  Sends the message to the appropriate service engine
■  Receives the message back from the service engine and sends it to any additional service engines in the composite or to a reference binding component based on the wiring


 SOA Composite




Designer:
You drag service components, services, and references from the Component Palette into the composite in the designer. When you drag and drop a service component into the designer window, a corresponding property editor is invoked for performing configuration tasks related to that service component. For example, when you drag and drop the Oracle Mediator service component into the designer, the Mediator Editor is displayed that enables you to configure the Oracle Mediator service component. For all subsequent editing sessions, you double-click these service components to re-open their editors.

Left Swimlane (Exposed Services):
The left swimlane is for services, such as a web services or JCA adapters, providing an entry point to the SOA composite application.

Right Swimlane (External References):
The right swimlane is for references that send messages to external services in the outside world, such as web services and JCA adapters. Component Palette The component palette provides the various resources that you can use in a SOA composite. It contains the following service components and adapters:
■  Service components
Displays the BPEL process, business rule, human task, Oracle Mediator, and spring components that can be dragged and dropped into the designer.
■  Service adapters
Displays the JCA adapter (AQ, file, FTP, database, JMS, MQ, Oracle Applications, and socket), Oracle BAM binding component, B2B binding component, EJB binding component, ADF-BC binding component, direct binding component, HTTP binding component, and web service binding component that can be dragged into the left or right swimlanes. If the Component Palette does not display, select Component
Palette from the View main menu.

Resource Palette:
The Resource Palette provides a single dialog from which you can browse both local and remote resources. For example, you can access the following resources:
■  Shared local application metadata such as schemas, WSDLs, event definitions, business rules, and so on.
■  WSIL browser functionality that uses remote resources that can be accessed through an HTTP connection, file URL, or Application Server connection.
■  Remote resources that are registered in a Universal Description, Discover, and Integration (UDDI) registry.
If the Resource Palette does not display, then select Resource Palette from the View main menu.
You select these resources for the SOA composite application through the SOA Resource Browser dialog. This dialog is accessible through a variety of methods. For example, when you select the WSDL file to use with a service binding component or an Oracle Mediator service component or select the schema file to use in a BPEL process, the SOA Resource Browser dialog appears. Click Resource Palette at the top of this dialog to access available resources.

Log Window:
The Log window displays messages about application compilation, validation, and deployment.

Property Inspector:
The Property Inspector displays properties for the selected service component, service, or reference. If the Property Inspector does not display, select Property Inspector from the View main menu.

Application View:
The Application View shows the artifacts for the SOA composite application.

  
Service Components:

BPEL Process:
Create BPEL Process dialog to create a BPEL process that integrates a series of business activities and services into an end-to-end process flow.

Business Rule:
Create Business Rules dialog to create a business decision based on rules.

Human Task:
Create Human Task dialog to create a workflow that describes the tasks for users or groups to perform as part of an end-to-end business process flow.

Mediator:
Create Mediator dialog to define services that perform message and event routing, filtering, and transformations.

Spring Context:

Create Spring dialog to create a spring context file for integrating Java interfaces into SOA composite applications.

No comments:

Post a Comment