Need completed assignment2 in digital drop box by tonight (10/8/2007)
Relating business processes and SOA (Chapter 7)
Java Web services toolkit (Chapter 1-2: WS SOA text)
Midterm: 60 minutes exam on chapter 1-7 (Lets decide the date for the exam)
Business Process Management (BPM)
BPM generally focuses on the strategic and operational aspects of process orientation in a given business area.
Mapping BPM model to an enterprise IT landscape is a challenging task.
Business side of BPM are the keywords such as ISO 9000 and Six Sigma
IT side of BPM is accompanied by keywords such a process modeling and workflow management (see Fig. 7.1)
IT Organization Business Organization EAI Workflow management ERP B2Bi Rules Engine Web Service Six Sigma Value Chain Activity based costing Continuous Process improvement
Business Process Management System (BPMS)
BPMS provides the technical platform for realizing BPM management initiatives.
BPM engine, facilities for BPM monitoring, design tools, and facilities for simulation.
“ 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]
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).
Lets discuss Modeling and execution architecture of BPMS.
Most are based on work by Petri [Rei 92] and Milner [Mil 80]
Business Process Execution Language for WS (BPEL4WS)
IBM’s Web Services Flow Langauge (WSFL)
BPML by SAP, Sun and other vendors.
BPMN (Business Process Modeling Notation) is a language by BPMI is to support standardized, graphical representation of business process diagrams.
BPMN is positioned at the interface of business and IT.
UML is within IT
BPMN aims to become the defacto standard used between IT and business to discuss the scope and functionality of processes and applications.
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
BPM vision is strong one
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.
BPM Alignment to SOA Enterprise Processes BPML Process layer BPMS Basic layer Intermediary layer
BPM and process-enabled SOA
Data & functions Objects Services
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.
Core business logic vs. process control logic
Both these concepts comprise data and functionality.
Examples of core business logic: data access services, complex calculations, complex business rules
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.
Design implications for architects: decomposition of SOA should pay attention to the above to the above.
For example, an architect may decide to design the core processes in house and buy the rest from outside source.
Discovering services online
Universal Description, Discovery and Integration (UDDI) is a platform-independent, XML-based registry for businesses worldwide to list themselves on the Internet.
The information (ex: WSDL) discovered is for programmatic consumption.
For manual search for services (WSDL) use:
use this for choosing services in the domain of your term project.
Web Services is a technology that allows for applications to communicate with each other in a standard format.
A Web Service exposes an interface that can be accessed through messaging .
A Web service uses protocol to describe an operation and the data exchange with another web service. Ex: SOAP
Platform independent, say, through WSDL.
Publishable, discoverable, searchable, queryable
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).
A Little bit of History: XML to SOAP
Simple xml can facilitate sending message to receive information.
The message could be operations to be performed on objects.
Take a look at Tim Berners-Lee ‘s paper on Web Services
Introduction to Web Services (From WS SOA text book)
The end product is an SOAShopper:
Implements a shopping engine that integrates eBay, Amazon and Yahoo!Shopping.
Publishes both REST and SOAP endpoints
Consumes both REST and SOAP endpoints
Provides AJAX frontend
One of the thesis of the book is that Web Services are hard.
How to address this above problem? Define a framework that simplifies things.
Web Services Platform Architecture
Web services platform is a set of tools for invoking and deploying Web services.
The platform has server-side components and client-side components.
Server side components are usually packaged within some type of container. (Ex: Apache Tomcat)
The client side are packaged with interfaces instances that are bound to WS.
The platform should also provide three core subsystems: invocation, serialization and deployment.
Invocation: server-side invocation
Receive SOAP message from transport (ex: HTTP or JMS endpoint)
Invoke handlers that preprocess the message (ex: process SOAP header)
Determine the message’s target service: which WSDL operation is the message intended to invoke. (Ex: look at amazon.com ECS WSDL )
Given the target WSDL operation, determine which Java class/method to invoke.
This Java class is referred to as the Java target
Determining the Java target is referred to as dispatching.
Hand off SOAP message to Serialization subsystem to deserialize into Java objects that can be passed to Java target as parameters.
Server-side invocation (contd.)
Invoke the Java target using the parameters and get the result Java object returned by the Java target method.
Hand off the object returned to the Serialization subsystem to serialize it into XML and return the message specified by target operation.
Hand off SOAP response back to transport layer of the network for delivery.
At every stage discussed above handle exceptions – this is very important.
XML document and Class (object) <?xml version="1.0" ?> <!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
Create an instance of WS endpoint implementing a service endpoint interface (SEI).
Handle a invocation of SEI instance.
Take the parameters passed to the SEI and pass them serialization system.
Wrap parameters in SOAP message
Invoke handlers to post-process the message (for example for QoS requirements)
Hand off message to transport layer for delivery.
Receive SOAP message response from the transport layer.
Deserialize XML result to Java object.
Complete invocation of the SEI by returning the deserialized SOAP response.