Irfan SOA Notes
Irfan SOA Notes
Irfan SOA Notes
1 Introduction to Service-Oriented Architecture Changing markets, increasing competitive pressures, and evolving customer needs are placing greater pressure on IT to deliver greater flexibility and speed. Today, every organization is faced with predicting change in a global business environment, to rapidly respond to competitors, and to best exploit organizational assets for growth. In response to these challenges, leading companies are adopting service-oriented architecture (SOA) to deliver on these requirements by overcoming the complexity of their application and IT environments. SOA provides an enterprise architecture that supports building connected enterprise applications to provide solutions to business problems. SOA facilitates the development of enterprise applications as modular business web services that can be easily integrated and reused, creating a truly flexible, adaptable IT infrastructure. 1.2 Introduction to Services SOA separates business functions into distinct units, or services. A SOA application reuses services to automate a business process. A standard interface and message structure define services. The most widely used mechanism are web services standards. These standards include the Web Service Description Language (WSDL) file for service interface definition and XML Schema Documents (XSD) for message structure definition. These XML standards are easily exchanged using standard protocols. Because standards for web services use a standard document structure, they enable existing systems to interoperate regardless of the choice of operating system and computer language used for service implementation. When designing a SOA approach, you create a service portfolio plan to identify common functionality to use as a service within the business process. By creating and maintaining a plan, you ensure that existing services and applications are reused or repurposed whenever possible. This plan also reduces the time spent in creating needed functionality for the application. 1.3 Introduction to Oracle SOA Suite Oracle SOA Suite provides a complete set of service infrastructure components for designing, deploying, and managing composite applications. Oracle SOA Suite enables services to be created, managed, and orchestrated into composite applications and business processes. Composites enable you to easily assemble multiple technology components into one SOA composite application. Oracle SOA Suite plugs into heterogeneous IT infrastructures and enables enterprises to incrementally adopt SOA. The components of Oracle SOA Suite benefit from common capabilities, including a single deployment, management, and tooling model, end-to-end security, and unified metadata management. Oracle SOA Suite is unique in that it provides the following set of integrated capabilities:
Messaging
2|P ag e Service discovery Orchestration Web services management and security Business rules Events framework Business activity monitoring 1.4 Standards Used by Oracle SOA Suite to Enable SOA Oracle SOA Suite puts a strong emphasis on standards and interoperability. Among the standards it leverages are: Service Component Architecture (SCA) assembly model Provides the service details and their interdependencies to form composite applications. SCA enables you to represent business logic as reusable service components that can be easily integrated into any SCA-compliant application. The resulting application is known as a SOA composite application. The specification for the SCA standard is maintained by the Organization for the Advancement of Structured Information Standards (OASIS) through the Open Composite Services Architecture (CSA) Member Section: http://www.oasis-opencsa.org Service Data Objects (SDO) Specifies a standard data method and can modify business data regardless of how it is physically accessed. Knowledge is not required about how to access a particular back-end data source to use SDO in a SOA composite application. Consequently, you can use static or dynamic programming styles and obtain connected and disconnected access. Business Process Execution Language (BPEL) Provides enterprises with an industry standard for business-process orchestration and execution. Using BPEL, you design a business process that integrates a series of discrete services into an end-to-end process flow. This integration reduces process cost and complexity. BPEL versions 1.1 and 2.0 are supported.
XSL Transformations (XSLT) Processes XML documents and transforms document data from one XML schema to another.
3|P ag e Java Connector Architecture (JCA) Provides a Java technology solution to the problem of connectivity between the many application servers in Enterprise Information Systems (EIS). Java Messaging Service (JMS) Provides a messaging standard that allows application components based on the Java 2 Platform, Enterprise Edition (Java EE) to access business logic distributed among heterogeneous systems. Web Services Description Language (WSDL) file Provides the entry points into a SOA composite application. The WSDL file provides a standard contract language and is central for understanding the capabilities of a service. Simple Object Access Protocol (SOAP) Provides the default network protocol for message delivery. 1.5 Service Component Architecture within SOA Composite Applications 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. SCA provides a model for assembling distributed groups of service components into an application, enabling you to describe the details of a service and how services and service components interact. Composites are used to group service components and wires are used to connect service components. SCA helps to remove middleware concerns from the programming code by applying infrastructure declaratively to composites, including security and transactions. The key benefits of SCA include the following: 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.
4|P ag e 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. Figure 1-1 provides an example of a composite that includes an inbound service binding component, a BPEL process service component (named Account), a business rules service component (named AccountRule), and two outbound reference binding components. Figure 1-1 Simple SOA Composite Architecture
(1) Note: In a design-time environment, if you are using Oracle JDeveloper, select Tools >
Preferences > Environment > Encoding > UTF-8 to enable Unicode support. This setting is also applicable for runtime environments.
(2) Note:
Composite and component names cannot exceed 500 characters.
Notes:
5|P ag e This section describes how to manually create a service binding component. You can also automatically create a service binding component by selecting Expose as a SOAP Service when you create a service component. This selection creates an inbound web service binding component that is automatically connected to your BPEL process, human task service, or Oracle Mediator service component. You cannot invoke a representational state transfer (REST) service from the SOA Composite Editor. Dragging This Service... Web service Adapters Invokes The... Create Web Service dialog to create a web invocation service. Adapter Configuration Wizard to guide you through integration of the service with database tables, database queues, file systems, FTP servers, Java Message Services (JMS), IBM WebSphere MQ, BAM servers, sockets, or Oracle E-Business Suite applications. Create ADF-BC Service dialog to create a service data object (SDO) invocation service. B2B Wizard to guide you through selection of a document definition. Create EJB Service to create an Enterprise JavaBeans service for using SDO parameters or Java interfaces with Enterprise JavaBeans. Create HTTP Binding Wizard to create HTTP binding. This wizard enables you to invoke SOA composite applications through HTTP POST and GET operations. Create Direct Binding Service dialog to invoke a SOA composite application and exchange messages over a remote method invocation (RMI) in the inbound direction.
ADF-BC Service
HTTP Binding
Direct Binding
Field
Value
6|P ag e Name Type Enter a name for the service. Select the type (message direction) for the web service. Since you dragged the web service to the left swimlane, the Service type is the correct selection, and displays by default: Service (default) Creates a web service to provide an entry point to the SOA composite application Reference Creates a web service to provide access to an external service in the outside world Since this example describes how to create an entry point to the SOA composite application, Service is selected.
7|P ag e Figure 4-7 Invoke Activity Example Description of "Figure 4-7 Invoke Activity Example" The invoke activity enables you to specify an operation you want to invoke for the service (identified by its partner link). The operation can be one-way or request-response on a port provided by the service. You can also automatically create variables in an invoke activity. An invoke activity invokes a synchronous service or initiates an asynchronous web service. The invoke activity opens a port in the process to send and receive data. It uses this port to submit required data and receive a response. For synchronous callbacks, only one port is needed for both the send and the receive functions.
Partner Links
4.3 Introduction to Partner Links A partner link enables you to define the external services with which the BPEL process service component is to interact. You can define partner links as services or references (for example, through a JCA adapter) in the SOA Composite Editor or within a BPEL process service component in Oracle BPEL Designer