170 likes | 396 Views
Enterprise Workflow. CPSC 476 Lightening Talk Brenda Griffith/Katie Soto. Introduction. Workflow Definition Workflow Management Systems Workflow Versus Business Process Management Workflow Standards ApacheODE Workflow Example with ApacheODE Summary. Workflow Definition. Definition:
E N D
Enterprise Workflow CPSC 476 Lightening Talk Brenda Griffith/Katie Soto
Introduction Workflow Definition Workflow Management Systems Workflow Versus Business Process Management Workflow Standards ApacheODE Workflow Example with ApacheODE Summary
Workflow Definition Definition: Workflow is the automated linking of business processes via predefined instructions. The processes may include automated activity and/or manual activity. It is the combination of process logic and routing rules, often across department boundaries. "Workflow" is also referred to as "Orchestration". Related concepts: Participant- a role, a web service, a resource, etc. (who) Activity - a task that forms one logical step in a process; can be automated or manual Process definition - can be a graphic or map that represents the sequence of activities and the routing rules. A process has a starting point and an ending point
Workflow Management System A software application that stores process definitions and runs jobs based on those definitions. These systems are also called "Orchestration applications" Two Major Components 1.Workflow Modeling Component The modeling component lets you model business operations, often using a visual interface, such as a diagramming tool. 2. Workflow Execution Component (Workflow Engine) The execution component is responsible for launching and managing the executing workflows
Workflow Management System Benefits: Consistency and Flexibility of Business Process Execution - Provides the "glue" for collaborating applications/services Automating process-to-process related workflows - It can mix automated activity with human activity Human activity - fill out a form, create document, collaborate, provide approval, etc. Automated activity - perform database CRUD, perform web service calculations, etc. - It allows sequential, parallel and dynamic routing paths - It allows for timing rules and deadlines
Workflow and BPM Workflow ManagementandBusiness Process Management Sometimes these terms are confused in industry - Workflow is one part of BPM - BPM is currently a popular term - BPM is often considered the management of the entire life-cycle of all business processes - BPM systems offer the ability to optimize processes - BPM provides the capability to monitor key business performance indicators - Business Activity Monitoring - BPM systems clarify that if business process flows are hard- coded into applications, then they are not flexible Example: handling corporate consolidation - BPM systems strive to provide tools to let business people define processes with standardized modeling tools
Workflow Standards Workflow Standards • Workflow engine - WS-BPEL WS-BPEL - Web Service Business Process Execution Language WS-BPEL is XML based - Web Service Orchestration A workflow engine reads WS-BPEL to execute the workflow BPEL uses XSD files- data types; WSDL files - WS Interface Def. Example - ApacheODE An open source BPEL compatible workflow engine • Business Process Diagramming Models- BPMN BPMN is the Business Process Markup Language The primary goal of the new notation is to make business process modeling easier and reduce the gap between technical and business people.(It is similar to UML) Object Management Group (OMG) adopted it a standard in 2006 • Process Diagrams - XPDL A common XML schema for saving business process diagrams
ApacheODE(Orchestration Director Engine) • Executes business processes written using WS-BPEL standard. • write processes using BPEL • It talks to web services, sending and receiving messages, handling data manipulation and error recovery as described by your process definition. • Why the Need For BPEL? • WSDL defined Web services have a stateless interaction model • “real-world” business processes require a more robust interaction model • BPEL provides the ability to express stateful, long-running interactions • Relationship with WSDL • BPEL is layered on topof and extends the WSDL service model
Workflow Example with ApacheODE • Synchronously replies to a message. • All components need to be in the WEB-INF/processess directory • Start a process with the command: • sendsoap http://localhost:8080/ode/processes/helloWorld testRequest.soap • Response: SOAP message containing 'hello world' HelloWorld example using BPEL and ApacheODE: Components: deploy.xml: <deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03" xmlns:pns="http://ode/bpel/unit-test" xmlns:wns="http://ode/bpel/unit-test.wsdl"> <process name="pns:HelloWorld2"> <--- correlates with our BPEL file <active>true</active> <provide partnerLink="helloPartnerLink"> <--- correlates with our BPEL file <service name="wns:HelloService" port="HelloPort"/> <--- WSDL file </provide> </process></deploy>
Workflow Example with ApacheODE HelloWorld2.bpel <process name="HelloWorld2" targetNamespace="http://ode/bpel/unit-test" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:tns="http://ode/bpel/unit-test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:test="http://ode/bpel/unit-test.wsdl" queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0" expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"> <import location="HelloWorld2.wsdl" namespace="http://ode/bpel/unit-test.wsdl" importType="http://schemas.xmlsoap.org/wsdl/" /> <partnerLinks> <partnerLink name="helloPartnerLink" partnerLinkType="test:HelloPartnerLinkType" myRole="me" /> </partnerLinks> <variables> <variable name="myVar" messageType="test:HelloMessage"/> <variable name="tmpVar" type="xsd:string"/> </variables>
Workflow Example with ApacheODE HelloWorld2.bpel (continued) <sequence><receive name="start" partnerLink="helloPartnerLink" portType="test:HelloPortType" operation="hello" variable="myVar" createInstance="yes"/><assign name="assign1"> <copy> <from variable="myVar" part="TestPart"/> <to variable="tmpVar"/> </copy> <copy> <from>concat($tmpVar,' World')</from> <to variable="myVar" part="TestPart"/> </copy> </assign><reply name="end" partnerLink="helloPartnerLink" portType="test:HelloPortType" operation="hello" variable="myVar"/></sequence></process>
Workflow Example with ApacheODE HelloWorld2.wsdl <wsdl:definitions targetNamespace="http://ode/bpel/unit-test.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ode/bpel/unit-test.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"> <wsdl:message name="HelloMessage"> <wsdl:part name="TestPart" type="xsd:string"/> </wsdl:message> <wsdl:portType name="HelloPortType"> <wsdl:operation name="hello"> <wsdl:input message="tns:HelloMessage" name="TestIn"/> <wsdl:output message="tns:HelloMessage" name="TestOut"/> </wsdl:operation> </wsdl:portType>
Workflow Example with ApacheODE HelloWorld2.wsdl (continued) <wsdl:binding name="HelloSoapBinding" type="tns:HelloPortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="hello"> <soap:operation soapAction="" style="rpc"/> <wsdl:input> <soap:body namespace="http://ode/bpel/unit-test.wsdl" use="literal"/> </wsdl:input> <wsdl:output> <soap:body namespace="http://ode/bpel/unit-test.wsdl" use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="HelloService"> <wsdl:port name="HelloPort" binding="tns:HelloSoapBinding"> <soap:address location="http://localhost:8080/ode/processes/helloWorld"/> </wsdl:port> </wsdl:service> <plnk:partnerLinkType name="HelloPartnerLinkType"> <plnk:role name="me" portType="tns:HelloPortType"/> <plnk:role name="you" portType="tns:HelloPortType"/> </plnk:partnerLinkType></wsdl:definitions>
Workflow Example with ApacheODE testRequest.soap <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <!-- test soap message --> <SOAP-ENV:Body> <ns1:hello xmlns:ns1="http://ode/bpel/unit-test.wsdl"> <TestPart xmlns="">Hello</TestPart> </ns1:hello> </SOAP-ENV:Body></SOAP-ENV:Envelope>
Workflow Summary Workflow Definition Workflow Management Systems Process Modeling Execution (Workflow Engine) Benefits Workflow and Business Process Management Workflow Standards WSBPEL BPMN XPDL ApacheODE Workflow Example with ApacheODE