Soa & Bpel With Web Sphere


Published on

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Soa & Bpel With Web Sphere

  1. 1. SOA & BPEL: Basics
  2. 2. Agenda <ul><li>What is SOA </li></ul><ul><li>What are Services? </li></ul><ul><li>Why Composite Applications </li></ul><ul><li>BPEL in the Mix </li></ul><ul><li>Summary </li></ul>
  3. 3. What's the need? <ul><li>Architecture should be such that </li></ul><ul><li>IT enterprises has the infrastructure is heterogeneous across operating systems, </li></ul><ul><li>Must be process centric not data centric </li></ul><ul><li>Should keep up with business process change. </li></ul><ul><li>Should address the business process. </li></ul><ul><li>Leverage existing investments in applications and application infrastructure to address newer business requirements </li></ul><ul><li>EAI solutions are technically very complex, need specialized skills and are very expensive to maintain. </li></ul><ul><li>an enterprise employing SOA could create a supply chain composite application using a set of existing applications that expose the functionality via standard interfaces </li></ul>
  4. 4. Service Oriented Architecture <ul><li>In April 2006 the Object Management Group's ( OMG ) SOA Special Interest Group adopted the following definition for SOA </li></ul><ul><li> Service Oriented Architecture is an architectural style for a Community of providers and consumers of services to achieve mutual value, that </li></ul><ul><ul><li>Allows participants in the communities to work together with minimal co-dependence or technology dependence </li></ul></ul><ul><ul><li>Specifies the contracts to which organizations, people and technologies must adhere in order to participate in the community </li></ul></ul><ul><ul><li>Provides for business value and business processes to be realized by the community </li></ul></ul><ul><ul><li>Allows for a variety of technologies to be used to facilitate interactions within the community </li></ul></ul>
  5. 5. Service Oriented Architecture <ul><li>In March 2006 the OASIS group SOA Reference Model released its first public review draft. </li></ul><ul><li>This defines the basic principles of SOA that apply at all levels of a service architecture, from business vision through to technical and infrastructure implementation </li></ul><ul><ul><li>Service Oriented Architecture; a paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. </li></ul></ul><ul><ul><li>It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations </li></ul></ul>
  6. 6. Principles of SOA <ul><li>Services share a formal contract </li></ul><ul><li>Services are loosely coupled </li></ul><ul><li>Services abstract underlying logic </li></ul><ul><li>Services are composable </li></ul><ul><li>Services are reusable </li></ul><ul><li>Services are autonomous </li></ul><ul><li>Services are stateless </li></ul><ul><li>Services are discoverable </li></ul>
  7. 7. SOA Components:
  8. 8. Why Services? <ul><li>SOA = an architectural principle for structuring systems that </li></ul><ul><li>SOA emphasizes the de-coupling of system components </li></ul><ul><li>New services are created from existing ones in a synergistic fashion </li></ul><ul><li>Strong service definitions are critical </li></ul><ul><li>Services can be subsequently re-composed in response to changing business requirements </li></ul>
  9. 9. What Are Services? <ul><li>A function accessed using XML message exchange </li></ul><ul><li>Message exchanges have well known exchange patterns </li></ul><ul><li>Services are self-describing, usingmetadata (WSDL) </li></ul>
  10. 10. What Does a Service Do? <ul><li>Transform data </li></ul><ul><li>Route messages </li></ul><ul><li>Query databases </li></ul><ul><li>Orchestrate conversations </li></ul><ul><li>Apply business logic </li></ul><ul><li>Apply business policy </li></ul><ul><li>Handle business exceptions </li></ul><ul><li>Solicit approvals </li></ul><ul><li>… </li></ul>
  11. 11. How Is a Service Implemented? <ul><li>• XSLT </li></ul><ul><li>• Enterprise JavaBeans™ (EJB™) technology </li></ul><ul><li>• BPEL </li></ul><ul><li>• SQL </li></ul><ul><li>• XQuery </li></ul><ul><li>• Routing table </li></ul><ul><li>• Business rules </li></ul><ul><li>• EDI transform </li></ul><ul><li>• … </li></ul>
  12. 12. Supply Chain Application
  13. 13. SOA Infrastructure
  14. 14. <ul><li>SOAP, WSDL, UDDI </li></ul><ul><ul><li>WSDL is used to describe the service; </li></ul></ul><ul><ul><li>UDDI, to register and look up the services; </li></ul></ul><ul><ul><li>SOAP, as a transport layer to send messages between service consumer and service provider. </li></ul></ul><ul><li>WS-I Basic Profile </li></ul><ul><li>Service providers can use the Basic Profile test suites to test a service's interoperability across different platforms and technologies. </li></ul><ul><li>J2EE and .Net </li></ul><ul><ul><li>Provide the framework for developers to naturally participate in the SOA, but also, by their inherent nature, bring a mature and proven infrastructure for scalability, reliability, availability, and performance to the SOA world. </li></ul></ul>
  15. 15. <ul><li>Quality of services:Should be able to provide Quality of service comprising such as security, reliability, and transactions. </li></ul><ul><li>Security:The Web Services Security specification addresses message security. This specification focuses on credential exchange, message integrity, and message confidentiality. </li></ul><ul><li>Reliability:Delivery of messages with characteristics like once-and-only-once delivery, at-most-once delivery, duplicate message elimination, guaranteed message delivery, and acknowledgment become important in mission-critical systems using service architecture. </li></ul><ul><li>Policy: A policy may consist of multiple assertions.policies are to be communicated between service consumers and service providers. </li></ul><ul><li>Orchestration </li></ul><ul><li>services can be used to integrate silos of data, applications, and components. Integrating applications means that the process requirements, such as asynchronous communication, parallel processing, data transformation, and compensation, must be standardized. BPEL4WS or WSBPEL (Web Services Business Process Execution Language) addresses service orchestration, where business processes are created using a set of discrete services. </li></ul><ul><li>Management </li></ul><ul><li>As the number of services and business processes exposed as services grow in the enterprise, a management infrastructure that lets the system administrators manage the services running in a heterogeneous environment becomes important. </li></ul>
  16. 16. SOA==Web Services?? <ul><li>&quot;Web services are about technology specifications, whereas SOA is a software design principle. </li></ul><ul><li>Web services' WSDL is an SOA-suitable interface definition standard: this is where Web services and SOA fundamentally connect. </li></ul><ul><li>Fundamentally, SOA is an architectural pattern, while Web services are services implemented using a set of standards; </li></ul><ul><li>Web services is one of the ways you can implement SOA. </li></ul><ul><li>The benefit of implementing SOA with Web services is that you achieve a platform-neutral approach to accessing services and better interoperability as more and more vendors support more and more Web services specifications. </li></ul>
  17. 17. Benefits of SOA <ul><li>Flexible (Agile) IT </li></ul><ul><ul><li>Adaptable to changing business needs </li></ul></ul><ul><li>Faster time to market </li></ul><ul><ul><li>Reuse existing code, minimize new development </li></ul></ul><ul><li>Business and process-driven </li></ul><ul><ul><li>New business opportunities </li></ul></ul><ul><li>Greater ROI </li></ul><ul><ul><li>Leverage existing IT asset </li></ul></ul>
  18. 18. Composite Applications—Summary <ul><li>A composite application is a collection of existing and independently developed applications and new business logic, orchestrated together into a brand new solution of a business problem that none alone can solve </li></ul><ul><li>Such an application looks to the user like a regular new interactive application, yet in reality it may be only 10 percent new and 90 percent an assembly of pre-existing components or data; </li></ul><ul><li>The “glue” that brings a composite application together is integration technology </li></ul>
  19. 19. Composite Applications <ul><li>Composite applications are... applications ! </li></ul><ul><li>Comprised of heterogeneous parts </li></ul><ul><ul><li>Some existing parts </li></ul></ul><ul><ul><li>Some new parts </li></ul></ul><ul><li>Composite applications != SOA </li></ul><ul><li>Composite applications employ SOA principles </li></ul><ul><ul><li>Features exposed as Web services </li></ul></ul><ul><ul><li>Standards-based interaction between services </li></ul></ul><ul><ul><li>Described by standards-based artifacts </li></ul></ul><ul><ul><li>Are themselves composable </li></ul></ul>
  20. 20. How it fits? <ul><li>Service Oriented Architecture (SOA) :. The bottom-up view of the SOA sees different business applications exposing their functionalities through web services. </li></ul><ul><li>Thus we can now access different functionalities of different legacy and new developed applications in a standard way (through web services). </li></ul><ul><li>Developing the web services and exposing the functionalities is not sufficient. </li></ul><ul><li>need a way to compose these functionalities in the right order – a way to define business processes which will make use of the exposed functionalities. </li></ul><ul><li>should be flexible </li></ul>
  21. 21. What is BPEL <ul><li>XML-based language used to specify business processes based on Web Services </li></ul><ul><li>BPEL processes describe </li></ul><ul><ul><li>Long running, stateful, transactional, conversations between two or more partner web services </li></ul></ul><ul><li>BPEL is key to implementing SOA Big Rules </li></ul><ul><ul><li>Conversational </li></ul></ul><ul><ul><li>Mostly Async </li></ul></ul><ul><ul><li>XML Document-based </li></ul></ul><ul><ul><li>Orchestrated </li></ul></ul>
  22. 22. What is BPEL <ul><li>Business Process Execution Language </li></ul><ul><li>A BPEL Abstract Process represents a set of publicly observable behaviors in a standardized fashion. </li></ul><ul><li>An Abstract Process includes information such as when to wait for messages, when to send messages, when to compensate for failed transactions, etc. </li></ul><ul><li>BPEL is an Orchestration language, not a choreography language (see Web Service Choreography). </li></ul><ul><li>BPEL's focus on modern business processes, plus the histories of WSFL and XLANG, led BPEL to adopt web services as its external communication mechanism. Thus BPEL's messaging facilities depend on the use of the Web Services Description Language (WSDL) 1.1 to describe outgoing and incoming messages. </li></ul>
  23. 23. BPEL supports: <ul><li>A property-based message correlation mechanism </li></ul><ul><li>XML and WSDL typed variables </li></ul><ul><li>An extensible language plug-in model to allow writing expressions and queries in multiple languages: BPEL supports Xpath 1.0 by default </li></ul><ul><li>Structured-programming constructs including if-then-elseif-else, while, sequence (to enable executing commands in order) and flow (to enable executing commands in parallel) </li></ul><ul><li>A scoping system to allow the encapsulation of logic with local variables , fault- handlers , compensation-handlers and event-handlers </li></ul><ul><li>Serialized scopes to control concurrent access to variables </li></ul>
  24. 24. <ul><li>BPEL allows composition of web services and is thus the top-down approach to SOA – the process oriented approach to SOA. </li></ul>
  25. 25. WS-BPEL Works With WSDL Web Services Business Process Execution Language <ul><li>Web services are described in WSDL </li></ul><ul><ul><li>Operations are message exchanges </li></ul></ul><ul><ul><li>Each operation represents an individual unit of action </li></ul></ul><ul><li>We need a way to orchestrate these operations with multiple web services in the right order to perform a Business process </li></ul><ul><ul><li>Sequencing, conditional behavior etc. </li></ul></ul><ul><li>BPEL provides standard-based orchestration of these operations </li></ul>
  26. 26. Role of BPEL & relationship with Java <ul><li>Allows us to define Abstract and Executable processes </li></ul><ul><li>Is supported by the majority of companies </li></ul><ul><li>Software exists (from several vendors) on which such processes can be executed (BPEL servers) and developed (BPEL designers). </li></ul>
  27. 27. BPEL Is a Web Service Sequencing Language <ul><li>Process defines “conversation” flow chart </li></ul><ul><ul><li>Conversation consists of only WSDL-described message exchanges </li></ul></ul><ul><ul><li>BPEL provides and consumes WSDL defined services </li></ul></ul><ul><li>Process instance is a particular conversation following the chart </li></ul><ul><ul><li>Execution systems can support multiple concurrent conversations </li></ul></ul>
  28. 28. BPEL “Fixes” WSDL <ul><li>WSDL: unordered set of operations </li></ul><ul><ul><li>Operations are message exchanges </li></ul></ul><ul><li>Need rules for ordering </li></ul><ul><li>Support for sequencing </li></ul><ul><li>Support for concurrency </li></ul><ul><li>Choreography with external entities </li></ul>
  29. 29. Orchestration vs. Choreography <ul><li>Orchestration </li></ul><ul><ul><li>An executable business process describing a flow from the perspective and under control of a single endpoint (commonly: Workflow) </li></ul></ul><ul><ul><li>BPEL handles Orchestration </li></ul></ul><ul><li>Choreography (WSDL) </li></ul><ul><ul><li>The observable public exchange of messages, rules of interaction and agreements between two or more business process endpoints </li></ul></ul><ul><ul><li>WSDL handles Choreography </li></ul></ul>
  30. 30. BPEL: Relationship to Partners
  31. 31. Business Process Needs To... <ul><li>Co-ordinate asynchronous communication between services </li></ul><ul><li>Correlate message exchanges between parties </li></ul><ul><li>Implement parallel processing of activities </li></ul><ul><li>Implement compensation logic(Undo operations) </li></ul><ul><li>Manipulate/transform data between partner interactions </li></ul><ul><li>Support for long running business transactions and activities </li></ul><ul><li>Handle exception handling </li></ul><ul><li>Need for universal data model for message exchange </li></ul>
  32. 32. BPEL Activities <ul><li>Basic Activities </li></ul><ul><li>• <invoke> </li></ul><ul><li>• <receive> </li></ul><ul><li>• <reply> </li></ul><ul><li>• <assign> </li></ul><ul><li>• <throw> </li></ul><ul><li>• <wait> </li></ul><ul><li>• <empty> </li></ul><ul><li>Structured Activities </li></ul><ul><li>• <sequence> </li></ul><ul><li>• <while> </li></ul><ul><li>• <pick> </li></ul><ul><li>• <flow> </li></ul><ul><li>• <scope> </li></ul><ul><li>• <compensate> </li></ul><ul><li>• <switch> </li></ul><ul><li>• <link> </li></ul>
  33. 33. BPEL: Basic Activities <ul><li><invoke> </li></ul><ul><ul><li>To invoke a one-way or request/response operation on a portType offered by a partner </li></ul></ul><ul><li><receive> </li></ul><ul><ul><li>To do a blocking wait for a matching message to arrive </li></ul></ul><ul><ul><li>Can be the instantiator of the business process </li></ul></ul><ul><li><reply> </li></ul><ul><ul><li>To send a message in reply to a message that was received through a <receive> </li></ul></ul><ul><ul><li>The combination of a <receive> and a <reply> forms a request-response operation on the WSDL portType for the process </li></ul></ul>
  34. 34. BPEL: Basic Activities <ul><li><assign> </li></ul><ul><ul><li>Can be used to update the values of variables with new data </li></ul></ul><ul><li><throw> </li></ul><ul><ul><li>Generates a fault from inside the business process </li></ul></ul><ul><li><wait> </li></ul><ul><ul><li>Allows you to wait for a given time period or until a certain time has passed </li></ul></ul><ul><li><empty> </li></ul><ul><ul><li>Allows you to insert a &quot;no-op&quot; instruction into a business process </li></ul></ul><ul><ul><li>This is useful for synchronization of concurrent activities, for instance </li></ul></ul>
  35. 35. BPEL: Structured Activities <ul><li>• <sequence> </li></ul><ul><ul><li>Perform activities in sequential order </li></ul></ul><ul><li>• <flow> </li></ul><ul><ul><li>Perform activities in parallel </li></ul></ul><ul><li>• <switch> </li></ul><ul><ul><li>Conditional choice of activities </li></ul></ul><ul><li>• <scope> </li></ul><ul><ul><li>Enclose multiple activities in a single scope </li></ul></ul>
  36. 36. Example Business Process
  37. 37. BPEL: Relationship to Partners
  38. 38. Why Do You Care on BPEL? <ul><li>• In SOA-enabled environment, you are more likely to </li></ul><ul><li>build an application by orchestration various services </li></ul><ul><li>via BPEL </li></ul><ul><li>• You will probably use BPEL design tool to create a </li></ul><ul><li>BPEL document </li></ul><ul><li>• The BPEL document is then executed by BPEL </li></ul><ul><li>engine </li></ul>
  39. 39. Basic terminology used in BPEL <ul><li>Partners are the external users or services that interact with the process. </li></ul><ul><li>Activities are the individual business tasks within the process that compose the larger business goal. </li></ul><ul><li>Elements supplement activities, and assist them in accomplishing their tasks. They are nested within the activities with which they interact. </li></ul><ul><li>Variables store the messages that are passed between these activities and partners . </li></ul>
  40. 40. Basic terminology used in BPEL <ul><li>Staff assignment sends a task out to a human for interaction. </li></ul><ul><li>Compensation returns the business process to a balanced state if something happens during execution to upset that balance. </li></ul><ul><li>Fault handling identifies possible problems ahead of time, and tells the process how to deal with them. </li></ul><ul><li>Correlation sets identify tokens that allow two participants in a conversation to identify each other in subsequent communications. </li></ul>
  41. 42. How to go Ahead <ul><li>Tooling Requirements </li></ul><ul><li>IDE – build your Web services </li></ul><ul><li>WSDL authoring – model your interfaces </li></ul><ul><li>Schema authoring – model your messages </li></ul><ul><li>Process modeling – model your orchestration </li></ul><ul><li>Packaging and deployment </li></ul><ul><li>Debugging </li></ul><ul><li>Monitoring </li></ul><ul><li>Analyzing </li></ul>
  42. 43. Summary <ul><li>SOA enables flexible and agile enterprise application architecture </li></ul><ul><li>BPEL is an important language for the process-oriented approach to SOA </li></ul><ul><li>BPEL is a service orchestration language for creating stateful composite applications </li></ul><ul><li>Services can be re-implemented using other technologies as long as service interface is preserved without changing consumers </li></ul>
  43. 44. Questions?
  44. 45. References: <ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li> </li></ul><ul><li>http:// = BPELJava </li></ul>