Published on

  • Be the first to comment

  • Be the first to like this

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

No notes for slide


  1. 1. Aligning Business Processes to SOA B. Ramamurthy
  2. 2. Topics <ul><li>Lets discuss term project topics </li></ul><ul><ul><li>Feedback on assignment 2 </li></ul></ul><ul><ul><li>Need completed assignment2 in digital drop box by tonight (10/8/2007) </li></ul></ul><ul><li>Relating business processes and SOA (Chapter 7) </li></ul><ul><li>Java Web services toolkit (Chapter 1-2: WS SOA text) </li></ul><ul><li>Midterm: 60 minutes exam on chapter 1-7 (Lets decide the date for the exam) </li></ul>
  3. 3. Business Process Management (BPM) <ul><li>BPM generally focuses on the strategic and operational aspects of process orientation in a given business area. </li></ul><ul><li>Mapping BPM model to an enterprise IT landscape is a challenging task. </li></ul><ul><ul><li>Business side of BPM are the keywords such as ISO 9000 and Six Sigma </li></ul></ul><ul><ul><li>IT side of BPM is accompanied by keywords such a process modeling and workflow management (see Fig. 7.1) </li></ul></ul>
  4. 4. IT Organization Business Organization EAI Workflow management ERP B2Bi Rules Engine Web Service Six Sigma Value Chain Activity based costing Continuous Process improvement
  5. 5. Business Process Management System (BPMS) <ul><li>BPMS provides the technical platform for realizing BPM management initiatives. </li></ul><ul><ul><li>BPM engine, facilities for BPM monitoring, design tools, and facilities for simulation. </li></ul></ul><ul><ul><li>“ BPM encompasses the discovery, design, and deployment of business processes, as well as executive, administrative and supervisory control over them to ensure that they remain compliant with business objectives” [SF03] </li></ul></ul><ul><ul><li>A BPM software product should enable business analysts, software developers, and system administrators to model and deploy business processes ( at development time) and to interact with, monitor and analyze process instances 9at run time). </li></ul></ul><ul><ul><li>Lets discuss Modeling and execution architecture of BPMS. </li></ul></ul>
  6. 6. Modeling Languages <ul><li>Most are based on work by Petri [Rei 92] and Milner [Mil 80] </li></ul><ul><li>Business Process Execution Language for WS (BPEL4WS) </li></ul><ul><li>IBM’s Web Services Flow Langauge (WSFL) </li></ul><ul><li>Microsoft’s XLANG </li></ul><ul><li>BPML by SAP, Sun and other vendors. </li></ul><ul><li>BPMN (Business Process Modeling Notation) is a language by BPMI is to support standardized, graphical representation of business process diagrams. </li></ul><ul><li>BPMN is positioned at the interface of business and IT. </li></ul><ul><ul><li>UML is within IT </li></ul></ul><ul><ul><li>BPMN aims to become the defacto standard used between IT and business to discuss the scope and functionality of processes and applications. </li></ul></ul>
  7. 7. BPM System Architectrure Process Manager Process Definition Repository Process Instance repository Transaction manager Connector framework Process engine Interprets VPML, BPEL4WS Backend applications Middleware Design tool Deploy & configure Monitor & manage
  8. 8. BPM vision <ul><li>BPM vision is strong one </li></ul><ul><ul><li>Instead of hard coding business processes into applications, it facilitates modeling, modifications, reconfigurations, and optimization of process definitions with graphical tools that can be used by less technology-oriented business analysts. </li></ul></ul>
  9. 9. BPM Alignment to SOA Enterprise Processes BPML Process layer BPMS Basic layer Intermediary layer
  10. 10. BPM and process-enabled SOA <ul><li>Data & functions  Objects  Services </li></ul><ul><li>With SOA we take a deliberate step back from the highly complex, fine grained dependent distributed object models toward less complex, relatively coarse-grained, loosely coupled (ie. less independent) component interfaces. </li></ul>
  11. 11. Core business logic vs. process control logic <ul><li>Both these concepts comprise data and functionality. </li></ul><ul><li>Examples of core business logic: data access services, complex calculations, complex business rules </li></ul><ul><li>Process control logic are related to non-tangible objects in the service industry: contract management, supply chain management, sales of complex products, software outsourcing processes. </li></ul><ul><li>Design implications for architects: decomposition of SOA should pay attention to the above to the above. </li></ul><ul><ul><li>For example, an architect may decide to design the core processes in house and buy the rest from outside source. </li></ul></ul>
  12. 12. Discovering services online <ul><li>Universal Description, Discovery and Integration (UDDI) is a platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet. </li></ul><ul><ul><li>The information (ex: WSDL) discovered is for programmatic consumption. </li></ul></ul><ul><li>For manual search for services (WSDL) use: </li></ul><ul><li>http://www.esynaps.com/eSynaps_home.aspx </li></ul><ul><li>use this for choosing services in the domain of your term project. </li></ul>
  13. 13. Web Services <ul><li>Web Services is a technology that allows for applications to communicate with each other in a standard format. </li></ul><ul><li>A Web Service exposes an interface that can be accessed through messaging . </li></ul><ul><li>Deployable unit. </li></ul><ul><li>A Web service uses protocol to describe an operation and the data exchange with another web service. Ex: SOAP </li></ul><ul><li>Platform independent, say, through WSDL. </li></ul><ul><li>Publishable, discoverable, searchable, queryable </li></ul><ul><li>Scalability issues: A group of web services collaborating accomplish the tasks of a large-scale application. The architecture of such an application is called Service-Oriented Architecture (SOA). </li></ul>
  14. 14. A Little bit of History: XML to SOAP <ul><li>Simple xml can facilitate sending message to receive information. </li></ul><ul><li>The message could be operations to be performed on objects. </li></ul><ul><li>Standardize the tags for object access. </li></ul><ul><li>Simple Object Access Protocol (SOAP). </li></ul>
  15. 15. SOAP Request (Not WS request) <soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;> <soap:Body> <getProductDetails xmlns=&quot;http://warehouse.example.com/ws&quot;> <productId>827635</productId> </getProductDetails> </soap:Body> </soap:Envelope>
  16. 16. SOAP Reply <soap:Envelope xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;> <soap:Body> <getProductDetailsResponse xmlns=&quot;http://warehouse.example.com/ws&quot;> <getProductDetailsResult> <productName>Toptimate 3-Piece Set</productName> <productId>827635</productId> <description>3-Piece luggage set. Black Polyester.</description> <price>96.50</price> <inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
  17. 17. SOAP  Web Services (WS) <ul><li>Take a look at Tim Berners-Lee ‘s paper on Web Services </li></ul><ul><li>http://www.w3.org/DesignIssues/WebServices.html </li></ul>
  18. 18. Introduction to Web Services (From WS SOA text book) <ul><li>The end product is an SOAShopper: </li></ul><ul><ul><li>Implements a shopping engine that integrates eBay, Amazon and Yahoo!Shopping. </li></ul></ul><ul><ul><li>Publishes both REST and SOAP endpoints </li></ul></ul><ul><ul><li>Consumes both REST and SOAP endpoints </li></ul></ul><ul><ul><li>Provides AJAX frontend </li></ul></ul><ul><li>One of the thesis of the book is that Web Services are hard. </li></ul><ul><li>How to address this above problem? Define a framework that simplifies things. </li></ul>
  19. 19. Web Services Platform Architecture <ul><li>Web services platform is a set of tools for invoking and deploying Web services. </li></ul><ul><li>The platform has server-side components and client-side components. </li></ul><ul><li>Server side components are usually packaged within some type of container. (Ex: Apache Tomcat) </li></ul><ul><li>The client side are packaged with interfaces instances that are bound to WS. </li></ul><ul><li>The platform should also provide three core subsystems: invocation, serialization and deployment. </li></ul>
  20. 20. Invocation: server-side invocation <ul><li>Receive SOAP message from transport (ex: HTTP or JMS endpoint) </li></ul><ul><li>Invoke handlers that preprocess the message (ex: process SOAP header) </li></ul><ul><li>Determine the message’s target service: which WSDL operation is the message intended to invoke. (Ex: look at amazon.com ECS WSDL ) </li></ul><ul><li>Given the target WSDL operation, determine which Java class/method to invoke. </li></ul><ul><ul><li>This Java class is referred to as the Java target </li></ul></ul><ul><ul><li>Determining the Java target is referred to as dispatching. </li></ul></ul><ul><li>Hand off SOAP message to Serialization subsystem to deserialize into Java objects that can be passed to Java target as parameters. </li></ul>
  21. 21. Server-side invocation (contd.) <ul><li>Invoke the Java target using the parameters and get the result Java object returned by the Java target method. </li></ul><ul><li>Hand off the object returned to the Serialization subsystem to serialize it into XML and return the message specified by target operation. </li></ul><ul><li>Hand off SOAP response back to transport layer of the network for delivery. </li></ul><ul><li>At every stage discussed above handle exceptions – this is very important. </li></ul>
  22. 22. XML document and Class (object) <?xml version=&quot;1.0&quot; ?>   <!DOCTYPE memo (View Source for full doctype...) > - <memo>   <header> Hello World </header>   <from> bina </from>   <to> CSE507 Students </to>   <body> Wake up everyone </body>   <sign> br </sign>   </memo> Memo.xml Memo class Memo objects Memo instances Memo1 Hello World Bina CSE507 Students Wake up everyone br <ul><li>Memo </li></ul><ul><ul><li>Header </li></ul></ul><ul><ul><ul><li>From </li></ul></ul></ul><ul><ul><ul><li>To </li></ul></ul></ul><ul><ul><li>Body </li></ul></ul><ul><ul><ul><li>Para[] </li></ul></ul></ul><ul><ul><li>Link </li></ul></ul><ul><ul><li>Signature </li></ul></ul>
  23. 23. Client-side invocation <ul><li>Create an instance of WS endpoint implementing a service endpoint interface (SEI). </li></ul><ul><li>Handle a invocation of SEI instance. </li></ul><ul><li>Take the parameters passed to the SEI and pass them serialization system. </li></ul><ul><li>Wrap parameters in SOAP message </li></ul><ul><li>Invoke handlers to post-process the message (for example for QoS requirements) </li></ul><ul><li>Hand off message to transport layer for delivery. </li></ul><ul><li>Receive SOAP message response from the transport layer. </li></ul><ul><li>Deserialize XML result to Java object. </li></ul><ul><li>Complete invocation of the SEI by returning the deserialized SOAP response. </li></ul><ul><li>See Fig 1-1 </li></ul>