Home

A High-Level Petri Nets based modeling language for generation of

image

Contents

1. Contents CHAPTER 4 DOCUMENTATION SYSTEM 90 4 1 INTRODUCTION 90 4 2 AUDIENCE 91 4 3 PURPOSE 91 4 4 CONSTRUCTION 92 4 3 1 Section Title 93 4 3 2 Section Toolbar 94 4 3 3 Section Content 95 4 5 MAINTENANCE amp EXPANSION 96 4 4 1 Adding new content to the DS 96 4 4 2 Updating content of the DS 97 4 4 3 Deleting content from the DS 97 4 6 QUICK TOUR 97 4 5 1 How to install the DS 97 4 5 2 How to open the DS 97 4 5 3 How to navigate in the DS 97 CONCLUSION 97 APPENDICES 97 REFERENCES 97 By Geert Zijlmans 5 254 TU e T Preface This thesis would not have existed if had found a job at the end of my study Computer Science at the Fontys Hogeschool Eindhoven The job market in the year 2002 was really bad for starters in the Information Technology sector My plan was that if did not have a job before the first of September then would start a study at the Eindhoven University of Technology Since no job really caught my attention decided to study Computer Science at the Eindhoven University of Technology Since already had a background in computer science could start with the shortened version of the study Computer Science In this shortened version one must attend mandatory courses which form the basis of the study courses of a specialization area and courses that were in another area than the specialization area My specialization area is Information Syst
2. activity catch catchAll Di catchAll activity lt catchAll gt activity basic activity structured activity basic activity i receive reply invoke assign empty terminate throw compensate wait By Geert Zijlmans 106 254 TU e structured activit standard attributes standard elements correlations correlation receive reply invoke assign By Geert Zijlmans Appendix C BPELAWS in Backus Naur Form scope flow sequence while pick switch name ncname joinCondition bool expr suppressJoinFailure yes no target linkName ncname source linkName ncname transitionCondition bool expr correlations correlation correlations lt correlation set ncname initiate yes no pattern in out out in receive partnerLink ncname portType qname operation ncname variable ncname createInstance yes no standard attributes gt standard elements correlations receive reply partnerLink ncname portType qname operation ncname variable ncname faultName qname standard attributes gt standard elements correlations reply invoke partnerLink ncname portType qname operation ncname inputVariable ncname outputVariable ncname standard attributes gt standard elements correlations catch catchAll compensationHandler invoke assign standard att
3. The definition of these activity elements can be found in the BPEL4WS specification BPEL4WS 2003 In BPEL4WS the following subjects are important Communication Data handling Message correlation The rest of this subsection describes the subjects mentioned above By Geert Zijlmans 35 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Communication In BPELAWS this is the most important subject since BPELAWS is mainly used to model formal specifications of business processes and business interaction protocols Defining communication possibilities for a BPELAWS process involves the following steps 1 Define the abstract WSDL messages that a BPELAWS process can receive and or send message element of WSDL 2 Define one or more abstract sets of interaction patterns using WSDL port type definitions containing abstract operations portType element of WSDL 3 Define parties roles which use a specific set of interaction patterns in an associated WSDL file 4 Define the communication possibilities in the associated BPELAWS file using partner links lt partnerLink gt element of BPELAWS 5 Define for each partner link which party role the process represents in the communication with other processes use of the attributes myRole and partnerRole ofthe lt partnerLink gt element of BPELAWS Except for step 3 in the creation of communication possibilities there are elements present in WSDL WSDL
4. plnk role name purchaseService gt lt plnk portType name pos purchaseOrderPT gt plnk role plnk partnerLinkType plnk partnerLinkType name invoicingLT gt plnk role name invoiceService gt lt plnk portType name pos computePricePT gt lt plnk role gt lt plnk role name invoiceRequester gt lt plnk portType name pos invoiceCallbackPT gt plnk role plnk partnerLinkType plnk partnerLinkType name shippingLT gt lt plnk role name shippingService plnk portType name pos shippingPT gt lt plnk role gt lt plnk role name shippingRequester gt lt plnk portType name pos shippingCallbackPT gt lt plnk role gt plnk partnerLinkType lt plnk partnerLinkType name schedulingLT gt plnk role name schedulingService gt lt plnk portType name pos schedulingPT plnk role plnk partnerLinkType lt definitions gt Code G 1 WSDL file of the initial example of BPEL4WS 2003 By Geert Zijlmans 237 254 T U le Appendix G The Initial Example of BPELAWS 2003 G 2 BPEL4WS file process name purchaseOrderProcess targetNamespace http acme com ws bp purchase xmlns http schemas xmlsoap org ws 2003 03 business process xmlns lns http manufacturing org wsdl purchase lt partnerLinks gt lt partnerLink name purchasing partnerLinkType lns purchasingLT myRole purchaseService gt lt partnerLink name invoicing p
5. Activity 2 terminate Activity 1 Activity 2 FH terminate Reference Reference place of next place of next place of place of scope E scope E FHE terminate Figure 2 11 continued zooming in on the hierarchical transition The translation of a lt faultHandlers gt element which contains a catch sub elements and where the catchA11 sub element is used Event handling The next step in the translation of a BPELAWS process using the TM is the translation of the process event handlers Event handlers in a BPEL4WS sub process are grouped by the lt eventHandlers gt element This element can contain two kinds of events e Alarm events that are defined by an onAlarm element The alarm event is triggered when a time out occurs A time out for an lt onAlarm gt element occurs when the duration expression or deadline expression of the lt onAlarm gt element results to true e Events that are triggered when a certain message arrives during the process instance s execution which are defined by an onMessage element The event handlers for a process instance are activated by a start activity The activation initiates all timers that raise an alarm event and the waiting for incoming messages By Geert Zijlmans 58 254 T U le Chapter 2 A GML for generating BPELAWS Figure 2 12 below displays the translation of an eventHandlers element in which one alarm event and one incoming message event can occur The B
6. ersons P Figure 1 12a A place Denied persons having place type P and marking 1 16 2 19 which are represented by colored dots Directed arc An arc in HLPN can be extended with an expression According to HLPN 2000 the arc expression must result in a collection of items tokens taken from the type of the place it is connected to For a directed arc this means the following e If the arc is an input arc then the arc describes a collection of items that can be used by the transition it is connected to pre condition for the transition e If the arc is an output arc then the arc describes a collection of items that can be expected as an output of the transition it is connected to post condition for the transition In figure 1 13 below the arc is annotated with a variable Age that is of type P as used in the previous example which means that every item in the collection of P can be used as input output A LIP Figure 1 13 A directed arc annotated with the variable Age Declarations Without the textual description of P and Age in the figures 1 11 to 1 13 one would not know what P and Age represent in the model This is why HLPN HLPN 2000 uses declarations which contain definitions of place types typing of variables and function definitions that are used in the BPM In our small ongoing example the declaration of place types typing of variables and function definitions can be defined as shown in figure
7. fault token which is sent to the fault handler of the sub process it belongs to As described in subsection 2 2 1 Fault handling there is always a fault handler present for the process itself and each sub process even when it is not defined in the BPELAWS file This fault handler consumes the token that has been produced by the BPELAWS activity element and handles the fault internally The second difficulty is that when the fault handler of a sub process is activated all activities of that sub process must be halted The fault handler of a sub process tells the sub process to halt its Main activity by producing a token in a place which indicates that Main activity of the sub process should be halted as soon as possible The hierarchical transition that represents the Main activity must consume this token and handle the halting of the activities inside it as described in subsection 2 2 1 Coupling of all activities concerning the termination halting of the process In the case of termination the basis structure is extended with an additional place concerning the correct termination of the specific translation of a BPELAWS element When terminating the process instance that is running inside a hierarchical transition of the BPELAWS element s translation a transition must be coupled to this place which immediately has to consume all tokens inside the hierarchical transition as described in subsection 2 2 1 Coupling of all activities
8. lt reply partnerLink AgeChecker portType tns AgeChecking operation check variabli lt reply gt lt sequence gt lt process gt age age lt 18 gt age age gt 18 gt lt i Figure 3 3 The Process Environment of the PN BPEL4WS Tool The menu bar tool bar and status bar speak for themselves The menu bar and tool bar contain items which one can use to edit a process in the tool The most important items in these two bars are the items that are related to the creation of new handles in process models which are currently active in the tool The status bar is there to display status messages of the tool s engine The working area is where the modeling of a process takes place The working area consists of three inspectors namely e Process Inspector see figure 3 4 This inspector contains all processes that are currently active in the tool For each process there is a graphical representation which is editable Also the translations of the process to EPNML BPELAWS and WSDL are displayed for each process which are not editable By Geert Zijlmans 85 254 T U e Chapter 3 The PN BPEL4WS Tool Age Verification process name AgeVerification targetNamespace http services otn com suppressJoinFailu lt variables gt lt variable name AgeMsg messageType tns AgeRequest gt lt variable name AnswerMsg messageType tns AccessResponse gt lt va
9. BPEL4WS process execution Compensation activities when the BPEL4WS process needs to be compensated Handlers for catching events incoming messages and or alarms that are related to the BPEL4WS process Describes the mandatory activity of the process An activity can be described by an activity element of BPEL4WS In BPEL4WS there are two different kinds of activity elements A basic activity element which describes a single activity o Oo0o000 Oo O O lt receive gt lt reply gt lt invoke gt lt assign gt lt throw gt lt terminate gt lt wait gt lt empty gt lt compensate gt Receiving a message Sending a message Sending and receiving a message Assignment statements Raise a fault within the process Abrupt termination of the process executable process model only Wait for a specified time within a process Dummy activity Do nothing Asking for compensation of a sub process A structured activity element which describes an activity in which other activity elements can be defined O O O O O lt sequence gt lt flow gt lt switch gt lt while gt lt pick gt lt scope gt Sequential routing of activities Parallel routing of activities Making a choice between activities that can be performed Iteration of an activity Receiving a message and acting upon it Grouping activities defining a sub process
10. EPNML 2004 By Geert Zijlmans References Business Process Execution Language for Web Services version 1 1 Authors Tony Andrews Microsoft Francisco Curbera IBM Hitesh Dholakia Siebel Systems Yaron Goland BEA Johannes Klein Microsoft Frank Leymann IBM Kevin Liu SAP Dieter Roller IBM Doug Smith Siebel Systems Satish Thatte Microsoft editor Ivana Trickovic SAP and Sanjiva Weerawarana IBM Companies BEA Systems International Business Machines Corporation Microsoft Corporation SAP AG Siebel Systems 5 May 2003 URL e BEA http dev2dev bea com technologies webservices BPEL4WS jsp e IBM http www 106 ibm com developerworks webservices library ws bpel e Microsoft http msdn microsoft com library default asp url library en us dnbiz2k2 html bpel1 1 asp e SAP http ifr sap com bpel4ws e Siebel http Awww siebel com bpel Business Process Modeling Notation BPMN version 1 0 Authors Stephen A White and members of the BPMI Notation Working Group Institute BPMI org 3 May 2004 URL http www bpmi org BPMN htm Kommunikation mit Automaten Author C A Petri Institute Bonn Institut f r Instrumentelle Mathematik 1962 Cascading Style Sheets level 2 CSS2 Specification Editors Bert Bos Hakon Wium Lie Chris Lilley and lan Jacobs Institute W3C 12 May 1998 URL http www w3 org TR REC CSS2 EPNML 1 1 an XML
11. XML Schema Part 2 Datatypes Second Edition Authors Paul V Biron and Ashok Malhotra Companies Kaiser Permanente and Microsoft Corporation W3C Recommendation 28 October 2004 URL http www w3 org TR 2004 REC xmlschema 2 20041 028 datatypes html YASPER User Guide Author R Post Institutes Eindhoven University of Technology and Deloitte 13 May 2005 URL http www yasper org The Z Notation A Reference Manual second edition Author J M Spivey Institute University of Oxford 1998 URL http spivey oriel ox ac uk mike zrm zrm pdf 254 254
12. definitions targetNamespace http manufacturing org wsdl purchase xmlns sns http manufacturing org xsd purchase xmlns pos http manufacturing org wsdl purchase xmlns xsd http www w3 org 2001 XMLSchema xmlns http schemas xmlsoap org wsdl xmlns plnk http schemas xmlsoap org ws 2003 05 partner link import namespace http manufacturing org xsd purchase location http manufacturing org xsd purchase xsd gt lt message name POMessage gt part name customerInfo type sns customerInfo part name purchaseOrder type sns purchaseOrder message message name InvMessage part name IVC type sns Invoice message message name orderFaultType gt part name problemInfo type xsd string gt message message name shippingRequestMessage gt part name customerInfo type sns customerInfo message message name shippingInfoMessage part name shippingInfo type sns shippingInfo message message name scheduleMessage gt part name schedule type sns scheduleInfo message lt portTypes supported by the purchase order process gt XportType name purchaseOrderPT gt lt operation name sendPurchaseOrder gt input message pos POMessage gt output message pos InvMessage gt lt fault name cannotCompleteOrder message pos orderFaultType gt lt operation gt lt portType gt
13. lt portType name invoiceCallbackPT gt lt operation name sendInvoice input message pos InvMessage operation portType lt portType name shippingCallbackPT gt lt operation name sendSchedule gt lt input message pos scheduleMessage gt lt operation gt lt portType gt By Geert Zijlmans 236 254 T U le Appendix G The Initial Example of BPELAWS 2003 portType supported by the invoice services lt portType name computePricePT gt lt operation name initiatePriceCalculation gt input message pos POMessage gt lt operation gt lt operation name sendShippingPrice gt input message pos shippingInfoMessage lt operation gt lt portType gt portType supported by the shipping service gt lt portType name 2 shippingPT operation name requestShipping gt input message pos shippingRequestMessage output message pos shippingInfoMessage fault name cannotCompleteOrder message pos orderFaultType lt operation gt lt portType gt lt portType supported by the production scheduling process lt portType name schedulingPT gt lt operation name requestProductionScheduling gt input message pos POMessage gt lt operation gt lt operation name sendShipingSchedule gt lt input message pos scheduleMessage gt lt operation gt lt portType gt lt plnk partnerLinkType name purchasingLT gt
14. 1 1 1 purchaseOrderProcess mme z start aoa SOSLARI lt sequence gt pie end sequence end COM purchasing i PI Peine I purchaseOrderProcess purchaseOrderPT sendPurchaseOrder output purchaseOrderProcess end Figure G 5 Zooming in on the lt sequence gt element of figure G 2 Process purchaseOrderProcess active COM purchasing purchasingLT purchaseService m purchaseOrder sendPurchaseOrder Receive message input PI purchaseOrderProcess Figure G 6 Zooming in on the lt receive gt 1 element of figure G 5 243 254 TU e Appendix G The Initial Example of BPEL4WS 2003 COM shipping shippingService p ace shippingService p shippingPT act Flow start requestShipping COM nwolond PI isse Onde Pn input invoicingl purchaseOrderProcess invoiceService p PI computePriceP T initiatePriceCalculatiph purchasaOrderProcess x input COM shipping shippingl os Ee F4 COM scheduling 1 shippingService p p schedulingLT t shippingPT COM i 2o schedulingService p 4 requestShippin invotpg scheduling output d invoicing T requestPfoductionScheduling tp invoiceSerwicetp inpyt computePriceP 4 1 sendSbippingPri a H Y input 1 Ri j sequence 1g lt sequence gt kot h 2 terminate 4 3 terminate FA sequence d sequence oe sequence r a COM invoic
15. 2001 and BPEL4WS to define these steps In step 3 the BPELAWS specification BPEL4WS 2003 adds the following new element to WSDL the partner link type definition Partner link type A partner link type is represented by an element p1nk partnerLinkType in the WSDL file associated with the BPEL4WS process A partner link type represents a form of communication that the BPELAWS process can use e One party interaction Only one role available for communication purposes e Two party interaction Two roles available one per process for communication purposes A role refers to the definition of a port type that is used for the interaction with the owner of the role Code 1 9 below shows the definition of a partner link type for a WSDL file where the prefix p1nk refers to the namespace http schemas xmlsoap org ws 2003 05 partner link lt plnk partnerLinkType name name lt plnk role name name lt plnk portType name name of a port type lt plnk role gt lt plnk role name name lt plnk portType name name of a port type plnk role plnk partnerLinkType Code 1 9 Definition of the lt pink partnerLinkType gt element for WSDL WSDL 2001 The partner link type definitions can be used in the communication of a BPELAWS process to type the communication possibilities They also provide the roles a process can play in the interaction with other processes The definition of a partner l
16. Company International Business Machines Corporation August 2002 URL http www 128 ibm com developerworks webservices library ws wsix1 Quick Start Tutorial for the Oracle BPEL Process Manager Company Oracle 2004 URL http download oracle com otndocs products bpel quickstart pdf The Petri Net Markup Language Concepts Technology and Tools Authors Jonathan Billington University of South Australia Soren Christensen University of Aarhus Kees van Hee Eindhoven University of Technology Ekkart Kindler University of Paderborn Olaf Kummer Core Media Laure Petrucci Laboratoire Sp cification et V rification Reinier Post Eindhoven University of Technology Christian Stehno Carl von Ossietzky University Oldenburg and Michael Weber Humboldt Universitat zu Berlin Institutes University of South Australia University of Aarhus Eindhoven University of Technology University of Paderborn Core Media Laboratoire Sp cification et V rification Carl von Ossietzky University Oldenburg and Humboldt Universitat zu Berlin March 2003 URL http Avww informatik hu berlin de top pnml download about PNML CTT pdf Extensions to Coloured Petri Nets and their Application to Protocols Author J Billington Institute University of Cambridge 1989 Timed Petri Nets Theory and Application Author Jiacun Wang Institute Monmouth University 1998 URL http bluehawk monmouth edu
17. Creation of token types Add token type restrictions to places All variables are added to the token type definition of the process All correlation sets are added to the token type definition of the process All links are added to the token type definition of the process Goal of reset arcs in the model Use of YASPER s collector and emitor for the representation of sources and sinks in the model Creation of a store to maintain all process instances Comment In HLPN HLPN 2000 this feature already exists but in EPNML it is not possible to relate a token to a type This is an extension to the EPNML standard where a token type definition represented by the XML tag token can be added to the net s definition in the EPNML file A token type has a certain type which in this GA can be e process This kind of token type contains information about the process instance Only one can be defined per lt net gt fault This kind of token type contains information about a fault that can occur in the process Zero or more can be defined per lt net gt message This kind of token type contains a representation of a message that can be received sent by the process Zero or more can be defined per lt net gt In HLPN HLPN 2000 this feature already exists but in EPNML it is not possible to add this kind of restriction to a lt place gt element That is why an extension to the EPNML standard has been made to include this featu
18. Figure G 4 Zooming in on the lt reply gt element of figure G 3 By Geert Zijlmans 242 254 TU e COM shipping shippingL shippingService p shippingPT requestShipping input COM shipping shippingL shippingService p shippingPT requestShipping output COM shipping shippingL shippingService p shippingPT requestShipping fault cannotCompleteOrder COM shipping shippingL shippingRequester m shippingCallbackP sendSchedule input COM invoicing invoicingLT pese ef computePriceP initiatePriceCalculation input COM invoicing invoicingLT peace irt computePriceP sendShippingPrice COM invoicing invoicingLT invoiceRequester m invoiceCallback sendinvoice input COM scheduling schedulingLT schedulingService p schedulingPT requestProductionScheduling input COM scheduling schedulingLT schedulingService p schedulingP T sendShippingSchedule input By Geert Zijlmans E Appendix G The Initial Example of BPEL4WS 2003 Process purchaseOrderProcess active lt sequence gt terminate COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder input sequence terminate PI A receives 1 purchaseOrderProcess Tis i x mt 2m P i z 1 od 1 Ji bag 1 1 1 1 1 1 PI p purchaseOrderProcess 1 1 1 Lu 1 1 1 1 1 1 1 1 1 1 flows 1 tarminate i D s I 1 1
19. MM mapping model vsd g User manual h Technical manual Delete the information inside the file that needs to be deleted Save the model Save the model as a Web Page Copy the main file and the folder belonging to the Web Page to the folder of the subject in the DS c9 e By Geert Zijlmans 97 254 T U e Chapter 4 Documentation System 4 6 Quick tour In the Quick tour the following topics are described e How to install the DS e How to open the DS e How to navigate in the DS 4 5 1 How to install the DS The DS installs itself automatically when installing the PN BPEL4WS Tool If one does not want to install the tool one can choose to install the DS manually Extract the file DS rar or DS zip to a folder on your computer 4 5 2 How to open the DS If one is using the PN BPEL4WS tool one can follow the next steps 1 Goto the menu bar 2 Choose Help 3 Choose Documentation System from the list of the menu item Help A browser will open automatically showing the Welcome screen of the DS In the other case one can follow the next steps 1 Goto the folder in which the DS is installed normally named DS 2 Open the file DS html in a browser of your liking The browser will open showing the Welcome screen of the DS 4 5 3 How to navigate in the DS In the DS there are two ways to navigate through the contents e Using the toolbar of the DS e Using links inside the
20. XSLT CSS Macromedia Flash and JavaScript The main screen of the DS see figure 4 1 below consists of three sections namely e Title top frame This part of the screen holds a standard logo a Flash animation for the DS e Toolbar bottom left frame This part of the screen can be used to search for a particular topic in the DS The following search possibilities are present in this toolbar o Keyword Search In this part of the toolbar one can search for documents in the DS containing a particular keyword One can also constrain the search to a particular subject of the DS o Alphabetical Search In this part of the toolbar one can search for documents in the DS which are related to the chosen first letter One can also constrain the search to a particular subject of the DS e Content bottom right frame This part displays the contents of a document of the DS One can alter the content by following a hyperlink inside the document or by choosing a hyperlink in the part Search Results of the toolbar of the DS Home Last modified 06 16 2005 12 22 54 Enter a keyword here Choose a subject v Welcome to the Documentation System belonging to the PN BPELAWS Tool WELCOME In this documentation system one can find items concerning the Documentation System itself the PN BPEL4WS Tool e BPELAWS definitions Petri Nets amp PNML definitions and of course the mapping of the translation The documentation syst
21. lt referencePlace gt id A Unique identifier for the reference place ref A Identifier that refers to a place in the parent of the lt page gt element the referencePlace belongs to graphics SE Can be used for the graphical representation of the reference place name SE Can be used to name the reference place description SE Can be used for a description of the reference place Table 1 2 continued EPNML elements and their attributes sub elements By Geert Zijlmans 24 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS 1 1 5 Extensions to HLPN that are used in the GA In this GA we use some extensions that are not part of the HLPN specification HLPN 2000 but which may be supported in the future e Two kinds of place types channel and store New arc types related to the store Reset arcs Augmentation of Petri Net models with time Support for hierarchies in Petri Net Models Channel and store This extension is used in the EPNML specification EPNML 2004 A channel is a regular Petri Net place while a store serves as a data storage component A possible graphical representation of a store s1 of type A in a Petri Net is shown in figure 1 18 below 1 Cd Figure 1 18 Graphical representation of a store s1 The definition of a store in EPNML is shown in code 1 1 below place id placeID name text sl text name lt type gt lt text gt store lt text gt lt t
22. reading updating of process instances reading the calendar and or process termination Process translation The first BPELAWS element that one encounters in a BPELAWS process is the process element This element indicates the start of a new BPELAWS process This is also the start of my translation of a BPEL4WS process in the TM A BPEL4WS process is initiated when it receives a message in one of its start activities defined later in this subsection and is terminated when one of the following occurs BPELAWS 2003 e The main activity completes in a normal way In this case termination is normal e When a fault reaches the process scope In this case termination is abnormal e When a process instance is explicitly terminated by a terminate activity element In this case termination is abnormal e f a compensation handler is specified for the business process as a whole a business process can be compensated after normal completion by platform specific means enabled by setting the enableInstanceCompensation attribute of the process element to the value yes In my translation of a process have added the following extra features to support the business process manager e Activation of a process as a whole Activate transition in figure 2 5 e Termination of the process as a whole provided that the running processes can complete normally Stop transition in figure 2 5 A new process is represented by a new
23. 1 14 below which is new element in the GML of Petri Nets P 0 100 gt Z X ZBoolean arithmetic more than Age P Figure 1 14 Declarations of place types typing of variables and function definitions used in figure 1 11 to 1 13 By Geert Zijlmans 19 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Figure 1 15 below shows the small example of figure 1 11 containing the extensions described by figures 1 11 to 1 14 Denied Age verification Granted ersons persons Age Age Age gt 18 P P P 0 100 gt Z X gt Boolean arithmetic more than Age P Figure 1 15 An example in which all extensions are used A logical description of this model could be that there are three denied persons one having the age of sixteen and two having the age of nineteen The model is bound to end in a state in which the marking of the place Denied persons is 1 16 and the marking of the place Granted persons is 219 This means that in the end state of the model there is one denied person having the age of sixteen and two granted persons having the age of nineteen Recommendation The Z Notation ZNOT 1998 can be used for the definitions of the declarations of a BPM By Geert Zijlmans 20 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS 1 1 3 Process Design with HLPN A WS related process is always initiated by another process or by people This subsection describes a small example in which a Re
24. If one is interested in this subject one should read the XSD specification XSD 2004 Code 1 5 below shows the definition for the types element for WSDL types One or more new types using a particular type system lt types gt Code 1 5 Definition of the lt types gt element for WSDL WSDL 2001 By Geert Zijlmans 32 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS Message In WSDL one can define zero or more abstract message definitions which can be used in the message exchange of a process The definition of a message consists out of the definition of a name for the message and zero or more message parts A message part contains a name and an element or a type which can be defined inside the lt types gt element of the same WSDL file but also in another associated file containing type definitions The value of a part of a real message must be of the same type as defined for that specific part of the related abstract message Code 1 6 below shows the definition for the abstract message for WSDL message name name part name name element element type type message Code 1 6 Definition of the message element for WSDL WSDL 2001 Port type and operation A port type in WSDL defines a set of abstract operations in which abstract messages are involved These operations are available for a process to express its interaction pattern with another process An operation
25. PI requestProductionScheduling purchaseOrderProcess input sinvoker 4 Owy sequences terminate COM scheduling schedulingLT schedulingService p sequence schedulingPT x sendShippingSchedule 3 terminate input sinvoke gt 5 sequence end ix dud purchaseOrderProcess FH purchaseOrderProcess start Figure G 16 Zooming in on the sequence 3 element of figure G 7 PI purchaseOrderProcess COM scheduling schedulingLT schedulingService p schedulingPT requestProductionScheduling input Send message Figure G 17 Zooming in on the invoke 4 OW element of figure G 16 By Geert Zijlmans 249 254 T U e Appendix G The Initial Example of BPEL4WS 2003 FH purchaseOrderProcess PI start suppressJoinFailure purchaseOrderProcess joinCondition PI purchaseOrderProcess zinvokes 5 ow Send message terminate Skip amp update links COM scheduling PI schedulingLT purchaseOrderProcess Mer d sendShippingSchedule input Figure G 18 Zooming in on the invoke 5 OW element of figure G 16 COM purchasing purchasingLT purchaseService m purchaseOrder sendPurchaseOrder output Send response purchaseOrderProcess purchaseOrderProcess end Figure G 19 Zooming in on the lt reply gt 1 element of figure G 5 By Geert Zijlmans 250 254 TU e References BPEL4WS 2003 BPMN 2004 PN 1962 CSS2 1998
26. Petri Net but it may get a meaning when the place where it is located represents one of the following inside a net e Aresource The place the token belongs to indicates that the token is a resource of some kind e g the place s name is claim then the token inside can represent an instance of a claim e Acontro The place the token belongs to is used in the execution of the process as a control mechanism e g to limit the number of process instances that can run simultaneously Enabling of a transition A transition t may only fire if it is enabled This occurs when there is at least one token in each place of t Enabling a transition t then means providing each place in t with a token Transitions are said to be concurrently enabled when they all have the possibility to fire Firing of a transition The following action within a net is called firing of a transition A transition t removes one token from each place in t and puts one token in each place of t In other words transition t consumes tokens from its input places and produces tokens for its output places State of a Petri Net model A state of a Petri Net model depends on its marking A marking can be given by a vector of naturals of length P where P is the set of places of the model For example we have two places p1 and p2 and a transition t1 and two tokens in place p1 The marking of this situation in this little net is 2 0 where the first position in this
27. a communicating connection to another participating process in the business process model black The place belongs to the termination of the process Urgent transitions in the TM are transitions that have either a black or red input place These transitions must fire immediately when they are enabled The urgent transitions are used in the termination black input place halting red input place of a process Also there is a priority between the firing of these urgent transitions namely urgent transitions that have a black input place fire before urgent transitions that have a red input place Table 2 1 continued Design decisions when translating BPEL4WS elements to their HLPN equivalent Having made these decisions was able to translate the BPEL4WS elements to their HLPN equivalent in EPNML But before start to describe the rest need to discuss these new extensions see YASPER 2005 for the definitions of the emitor and collector The token type definition lt token gt This new XML tag can be used within a lt net gt element of the EPNML standard It specifies a token type definition A token type definition exists of two main items its type and its contents The token type definition is defined as described below lt toolspecific tool PN BPELAWS version 1 0 gt token type process fault message id uniqueID Contents of the token lt token gt lt toolspecific gt Code 2 1 D
28. a particular scope Creating the compensation handler for a particular scope Creating the event handlers for a particular scope Creating the activity that has to be performed o Receiving a message Sending a message Routing of activities Creation of a sub process Iterating an activity Assignments to variables Terminating the process Asking for compensation of a particular scope in the process Throwing faults Waiting o Doing nothing e Creating the control flow in an activity 00000000 0 The MM can be found in Appendix F of this thesis By Geert Zijlmans 73 254 T U le Chapter 2 A GML for generating BPELAWS 2 3 2 Example Initial example of BPELAWS 2003 In subsection 2 2 2 the initial example of the BPEL4WS specification BPEL4WS 2003 has been translated using the TM In this subsection the MM is used to create the same model using the handles The details about the process can be found in subsection 2 2 2 and are therefore not described here The MM has to perform the following steps in the creation of this model A Request Response process 1 Create the beginning of the process 2 Insert sequential routing for the activities of the main process 3 Insert the handle receive without instance creation since it is the first activity it also needs to put a token back in the place Process purchaseOrderProcess active 4 Insert parallel routing for activities inside the scope of the sequential routi
29. and parameters This fact can be used to verify the working of a BPEL4WS process on element level using the PN BPEL4WS Tool to translate a BPEL4WS file into an EPNML file which can be analyzed in a tool that is capable of loading EPNML files If one has no interest in the exact working of a BPEL4WS element then one can simply look at the model on its hierarchical level meaning that one does not go into detail about the actual working of the element knowing that it does what it has to do e g verifying the correct message exchange pattern in which the focus lies on the correct message exchange rather than on the correct execution of a BPEL4WS element in the process On the level of their hierarchical transition of the translations my GML is quite similar to the GML as is defined in WBERG 2003 and to the GML as is used in Oracle BPEL Designer Yet these two GMLs do not directly show the connections between all the facets of a WS related process communication ports activities event handlers termination etc whereas my GML does show these connections Having separate translations for each BPEL4WS element in my GML made it possible to apply compositional modeling which can be seen as the dragging and dropping of BPEL4WS elements to their correct position in the BPM This feature simplifies the modeling of a WS related process drastically and is also used by Oracle BPEL Designer Another advantage of having separate translations is the advanta
30. build xml for a BPEL4WS file Note If there are more than one BPEL4WS process that one wants to simulate one needs to change the build file accordingly How this can be done can be found in the tutorial of the Oracle BPEL Process Manager Now one can start the simulation of the BPEL4WS process which has been modeled with the PN BPEL4WS Tool The following steps enable the simulation of a BPEL4WS process in the Oracle BPEL Process Manager e Start the BPEL Process Manager e Open a Command prompt Windows taskbar Start Run enter cmd and click the button e Go to the directory in which the BPEL4WS file resides and run obant in that directory e Open a browser and connect to the BPEL Console http localhost 9700 BPELConsole e Login and select the BPEL4WS process in the Dashbord tab of the BPEL Console e One now can start simulating the process as described in the Quick Start Tutorial for the Oracle BPEL Process Manager ORACLE 2004 Note If a BPEL4WS process invokes a new process the process may halt at that point because the requested process is not active Note One can also analyze the process using the BPEL Console Information about how to analyze a BPEL4WS process in this console can be found in the documentation belonging to the Oracle BPEL Process Manager application By Geert Zijlmans 89 254 T U e Chapter 4 Documentation System Chapter 4 Documentation System 4 1 Introduction In t
31. can express one of the following interaction patterns 1 One way The endpoint receives a message only the input structure is used in the operation structure 2 Request Response The endpoint receives a message and sends a correlated message back first the input structure is used then the output structure 3 Solicit Response The endpoint sends a message and receives a correlated message back first the output structure is used then the input structure 4 Notification The endpoint sends a message only the output structure is used in the operation structure In the interaction patterns 2 and 3 also a fault can respectively be sent or received when an error occurred in respectively the Request Response or the Solicit Response using the fault structure to indicate the type of error that has occurred In BPELAWS only the first two interaction patterns are used Code 1 7 below shows the definition of a port type having two operations the first one having a One way interaction pattern and the second one having a Request Response interaction pattern with zero or more faults lt portType name name operation name name input name name message message lt operation gt operation name name input name name message message output name name message message fault name name message message lt
32. documents e Using the Back and Forward buttons of the browser The first way of navigation uses the Toolbar section of the screen to navigate through the contents of the DS The toolbar area RESULT contains a list of all documents in the DS that can be related to the search parameters The section also provides a small search facility on keywords related to the documents and one can choose to view the documents in alphabetical order or on their first letter see figure 4 4 If one clicks on a link of a document in the toolbar area RESULT then the content of the chosen document appears inside the section Content The second way of navigation uses the section Content In some documents links have been added that refer to information in another document By clicking on such a link one can navigate to that particular part of information in the document The third way of navigation uses the Back and Forward button of the browser In the case that one already has viewed several other documents using the other two navigation possibilities than one can use the Back button to reload the document that has been viewed prior to the current one If one has used the Back button then the Forward button will be enabled allowing you to go forward to the document that has been viewed after the current one Note Using the Back button too many times may cause the list of results to be displayed in their raw form A refresh
33. for Web Services models The approach to the creation of this GML has been the translation of the BPELAWS elements to their equivalent in the GML of HLPN to which some extensions have been made The GML of HLPN is used in this translation because the GML of Classical Petri Nets did not have enough expressive power to translate the semantics and elements of BPELAWS The translation resulted in a set of handles a predefined set of arcs places and transitions which can be used to model a Web Services related process Since the handles are a one to one translation of their BPELAWS equivalent one can generate a BPELAWS process very simple from these handles A special tool the PN BPELAWS Tool has been developed for this assignment One can use this tool to model a Web Services related process using these handles An extra feature of this tool is that an already existing BPELAWS process can be loaded into this tool and be converted to its EPNML form EPNML EPNML 2004 is an XML based language that is used to define the GML of a Petri Nets process textually In a tool that supports the EPNML standard the EPNML form of the BPELAWS process can be loaded to run simulations and or perform analysis upon it By Geert Zijlmans 2 254 T U e Notational Conventions Notational Conventions In this document the following notational conventions are used e Reference When a piece of text is between a and a then this is a referenc
34. g contents css Figure 4 2 The hierarchy of the DS construction 4 3 1 Section Title In this section the logo of the DS is displayed The logo itself is a Macromedia Flash animation contained in the file title swf The frame title loads the HTML file title html which has an embedded object referring to the Flash animation of the logo Figure 4 3 below shows the graphical representation of the HTML file title html as it is used in the DS Figure 4 3 The section Title of the DS By Geert Zijlmans 93 254 TU e 4 3 2 Section Toolbar In this section the toolbar of the DS is displayed The toolbars main file is the HTML file toolbar html In this file three areas are defined e KEYWORD This area is related to the Keyword Search e ALPHABET This area is related to the Alphabetical Search e RESULT This area shows the result of the search The Search functionality is enabled by JavaScript In this file s script the following has been defined e Creation of an ActiveX object Microsoft XMLDOM in which the XML file index xml is loaded e Search function 1oadIndex that is used to filter the links to the documents of the DS in the XML file index xml e Functions hide and show that are respectively used to hide a search area and show a search area that is hidden The XML file index xm holds the following information about a document in th
35. her gt gt lt variables Can be added her gt lt correlationSets gt Can be added her gt links Can be added here inside a flow element lt process gt Code 2 13 Definition of the process element for process purchaseOrderProcess in the BPELAWS file Step 2 Insert sequential routing In this Request response process one always needs a sequential routing of the main activities because this process can only receive one kind of messages and sends only one kind of messages back Figure 2 24 displays how the sequential routing can be added to the main activity of the process by zooming in on the result of the previous step Steps 3 4 and 5 of this example describe the activities inside the sequential routing handle Process purchaseOrderProcess sequence purchaseOrderProcess active end End z purchaseOrderProcess lt sequence gt terminate Process purchaseOrderProcess terminate Process terminate Figure 2 24 Zooming in on the Process handle 1 with a sequential routing of its main activity By Geert Zijlmans 75 254 T U le Chapter 2 A GML for generating BPELAWS Step 3 Insert receive handle without instance creation In a Request Response process one first needs to define an activity for the incoming request message As described in step 11 of the example in subsection 2 2 2 the purchaseOrderProcess can receive a request via its
36. in it By Geert Zijlmans 53 254 TU e Chapter 2 A GML for generating BPEL4WS My role COM BE role CD input input COM EH Distribute received BE role C D message input COM BE role CD output COM BE role C D fault faultName Figure 2 7 a COM ports belonging to my process C Partner role COM ones CD COM process ES p BE role CD end response output COM Distribute received e COM EH BE role C D message BE role CD output output COM process BE role C D fault lt fauttName gt Distribute received message COM EH BE role C D fault lt fauttName gt Fault Send fault COM occurred BE role C D fault faultName Figure 2 7 b COM ports belonging to a process with which my process communicates In figure 2 7 a and in figure 2 7 b some parameters are used in the definition of the COM ports these are e B The name of the partner link e E The name of the partner link type e role The role the belonging to the process myRo1e or belonging to the other process partnerRole e C The name of the port type that is associated with the role e D An operation of the port type lt faultName gt The name of the fault that is sent back By Geert Zijlmans 54 254 T U le Chapter 2 A GML for generating BPELAWS Process instance translation The third step is to define the process instance see 2 2
37. jwang TPN htm Unified Modeling Language Superstructure version 1 4 2 Institute Object Management Group OMG January 2005 URL http www omg org cgi bin doc formal 04 04 04 Grafische Repr sentation von BPELAWS Author Daniela Weinberg Institute Humboldt Universitat zu Berlin 15 August 2003 URL httpz www informatik hu berlin de top download publications weinberg03 pdf 253 254 TU e WfMC 1999 WSDL 2001 WSFL 2001 XLANG 2001 XSD 2004 YASPER 2005 Z NOT 1998 By Geert Zijlmans References Workflow Management Coalition Terminology amp Glossary Issue 3 0 Institute Workflow Management Coalition February 1999 URL http www wmfc org Web Services Description Language WSDL 1 1 Authors Eric Christensen Microsoft Francisco Curbera IBM Greg Meredith Microsoft and Sanjiva Weereawarana IBM Companies Ariba International Business Machines Corporation Microsoft Corporation 15 March 2001 W3C Note URL http www w3 org TR wsdl Web Services Flow Language WSFL version 1 0 Author Prof Dr Frank Leymann Company International Business Machines Corporation May 2001 URL http www 306 ibm com software solutions webservices pdf WSFL pdf XLANG Web Services for Business Process Design Author Satish Thatte Company Microsoft Corporation 2001 URL http www gotdotnet com team xml wsspecs xlang c default htm
38. net in my translation A new net called A without platform specific compensation and any communication possibilities in my translation is represented by the following graphical notation see figure 2 5 Process A active Process A start Process A Activate end Stop PIA process A Figure 2 5 Process A starting the translation By Geert Zijlmans 51 254 T U le Chapter 2 A GML for generating BPELAWS In a BPELAWS process one can distinguish four processes of which initially one is active and the three others are dormant e Main activity This is the activity that has to be performed in the process Once a new process instance has been created also the event handlers of the process scope are actived for that process instance e Fault Handler s This sub process is dormant and can only become active when a fault occurs in the main activity It stops the execution of the main activity and continues its fault handling capabilities activities e Event Handler s This sub process is dormant and becomes active for a process instance as soon as the process instance is created It handles events e g alarms e Compensation Handler This sub process is dormant and becomes active when the process asks for a compensation of the scope the compensation handler belongs to This can only happen in a compensation handler of a higher scope or in a fault handler of the same or higher scope It the
39. next step in the translation of a BPEL4WS process in the TM is the translation of the fault handlers of the process scope Fault handlers in a BPEL4WS process are grouped by the lt faultHandlers gt element This element contains the possibility to catch a fault that has occurred during the execution of the main process As soon as a fault occurs the fault handler of that scope stops all activities of that scope place End scope E in the translation A lt faultHandlers gt element can have a fault handler defined lt catch gt which takes care of a particular fault The handling of the fault may include compensation and or re throwing the fault to the fault handlers of the parent scope One can also define a fault handler catching all faults that occur in the scope the cat chA11 sub element If there is no catchAll sub element used then BPEL4WS introduces a stealth default fault handler for that scope which re throws the fault to the parent scope unless the scope already is the top scope of the process By Geert Zijlmans 55 254 TU e lt fauttHandlers By Geert Zijlmans Chapter 2 A GML for generating BPEL4WS In figure 2 9 below a translation is given which represents the situation when the definition of a lt faultHandlers gt element is omitted for a particular scope As defined in the BPELAWS semantics for the fault handling in a scope BPELAWS 2003 subsection 13 4 a stealth fault handler is a
40. offer the developer of BPELAWS processes a guide how to model a BPELAWS process with these handles First the MM had the same form as the TM but realized that was redefining every element again and the logical question then would be Why did you create the TM This is not what wanted and chose another angle in which a developer can use the handles to develop a graphical representation of the model along with the BPEL4WS representation of the model The EPNML representation then can be retrieved from the TM This angle made the TM more important than the first angle took Each section in the MM consists out of four main parts e A flow describing which path to follow when creating a BPELAWS process model using the handles of the TM e Indications how the graphical representation of the elements should look in the model of the BPELAWS process e Description of a set of involved parameters that the developer can use to give the element its actual form e Description of the BPEL4WS element representation using the set of involved parameters In fact each section in the MM describes a sort of wizard for a particular activity in a BPEL4WS process The following wizards can be identified e Creating the outline for a new process Creating the COM ports for a process Creating the temporary storage possibilities variables Creating the correlation sets that are used in the message correlation Creating the fault handlers for
41. operation gt lt portType gt Code 1 7 Definition of the lt portType gt element for WSDL WSDL 2001 By Geert Zijlmans 33 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS BPELAWS A BPEL4WS process consists of one single BPEL4WS file Code 1 8 below shows the default layout of a BPELAWS file process name name targetNamespace URI queryLanguage http www w3 org TR 1999 REC xpath 19991116 expressionLanguage http www w3 org TR 1999 REC xpath 19991116 suppressJoinFailure no enableInstanceCompensation no abstractProcess no xmlns http schemas xmlsoap org ws 2003 03 business process lt partnerLinks gt lt Note At least one role must be specified gt lt partnerLink name name partnerLinkType partnerLinkType myRole role partnerRole role gt lt partnerLinks gt lt partners gt partner name name gt lt partnerLink name partner link name gt lt partner gt lt partners gt lt variables gt variable name name messageType message type type lement element variables lt correlatioSets gt lt correlationSet name name properties list of properties gt lt correlationSets gt lt faultHandlers gt lt Note There must be at least fault handler or default gt catch faultName fault faultVariable fault variable activity catch l
42. opinion a store is a table which can contain records of a certain type By typing a store a store can represent a table in which records can be present of the same type In my GML these records represent a process instance of the process e n YASPER itis possible to define a reset arc while this type of arc is not supported by the EPNML specification Include the reset arc as one of the possible types for an arc as has been done with the inhibitor arc Finally some recommendations concerning BPELAWS e f one looks closely to the definitions of the lt onAlarm gt elements of the lt eventHandlers gt element and the pick element then one difference between them can be noticed which is that an lt onAlarm gt element of an lt eventHandlers gt element can contain both attributes as can be concluded from its definition see code C 1 and an lt onAlarm gt element of an pick element can contain only one of the same attributes see code C 2 lt onAlarm for duration expression until deadlin xpression activity lt onAlarm gt Code C 1 Definition of a lt onAlarm gt element for an lt eventHandlers gt element onAlarm for duration expression until deadlin xpression activity lt onAlarm gt Code C 2 Definition of a lt onAlarm gt element for an lt pick gt element Yet there is a catch the semantics for an lt onAlarm gt element of an lt eventHandlers gt element in state that Exactly on
43. shown in figure 3 3 below except for the wizards e Menu bar e Tool bar e Working area e Status bar e Wizards RE PN BPEL4WS Tool Process D School Afstuderen Algemene documentatie 6_Thesis Chapter 3 BPEL4WS example AgeVerification bpel aax File Edit View wS Handles Help ea AgeVerification a com ports VAR Variables amp Ej Correlation sets eB amp Event handlers H Fault handlers EJ c Compensation handler Activity BERE m Jwa FIC Aliah v MEM 9u000o Name Age Verification Target namespace http services otn com Query language Expression language Abstract process no Graphical View EPNML BPELayys WSDL Process D XSchooh amp fstuderenV amp lgemene documentatie6_Thesis Chapter S BPEL4WWS example Ageerification bpel AgeVerification r process name AgeVerification targetNamespace http services otn com suppressJoinFailu j lt variables gt lt variable name AgeMsg messageType tns AgeRequest gt lt variable name AnswerMsg messageType tns AccessResponse gt lt variables gt lt sequence gt lt receive partnerlink AgeChecker portTypes tns AgeChecking operations check varial lt receive gt lt switch gt lt case condition bpws get YariableData AgeMsg lt assign gt lt fassiqn gt lt case gt lt case condition bpws getVariableData AgeMsg lt assign gt lt assign gt lt case gt lt switch gt
44. step in the simulation is to look in the hierarchical transition of the Main activity and follow the path from there on There are three possible endings for this path e Ifthe Main activity completes normally then a message is sent back to the desired process es the compensation handler of the process gets a snapshot of the process instance upon completion of the process CH A PI and the event handler for the process instance is terminated e lfinside the Main activity a fault has occurred then the fault handler FH A for the process is invoked which first stops all activities inside Main activity and after that handles the fault and ends the process instance e If inside the Main activity an activity calls for the termination of the process then the urgent transition Process terminate fires and the process instance ends abnormally Communication The next step is to define the communication for the process using COM ports which are special places for the message exchange between the processes of a business process The definition of the COM ports in BPELAWS starts with the partnerLink elements In my translation if a process needs to communicate with other processes it uses these COM ports to receive or send messages The translation of this element also needs the WSDL file in which the partner link type of the partner link is defined The partner link type defines one or two port types depending on the number of roles defined wh
45. the requester lt xml version 1 0 gt lt definitions name StockQuoteProvider targetNamespace http example com stockquote provider xmlns tns http example com stockquote provider xmlns xlang http schemas microsoft com biztalk xlang xmlns http schemas xmlsoap org wsdl WSDL type and message definitions used lt below have been omitted here for brevity lt portType name RequestReceivePortType gt lt documentation gt This port receives an asynchronous message requesting the price of the given stock lt documentation gt lt operation name AskLastTradePrice gt lt input message gt lt operation gt lt portType gt lt portType name ResponseSendPortType gt lt documentation gt This port sends an asynchronous message providing the price of the given stock lt documentation gt lt operation name SendLastTradePrice gt lt output message gt lt operation gt lt portType gt lt binding name RequestReceivePortBinding type tns RequestReceivePortType gt details omitted gt binding binding name ResponseSendPortBinding type tns ResponseSendPortType gt details omitted gt lt binding gt lt service name StockQuoteProviderService gt lt documentation gt The externally visible behavior of a simple asynchronous stock quote provider service A price quote request arrives via E m
46. the modeling languages and since it has been there for a long time many tools using Petri nets have been developed over the years e g YASPER CPN Tools Design cpn etc These tools can be used for modeling testing and verification of business processes modeled in Petri nets This is why the TU e wanted a research on the creation of a Petri Nets based graphical modeling language for BPELAWS which one can use to design models of business processes and business interaction protocols If a business process or business interaction protocol designed with this Petri Nets based graphical modeling language is tested and proved to be correct than using the BPELAWS representation of this model one also knows that the BPELAWS equivalent is correct The translation between the Petri Nets based graphical modeling language and the BPELAWS representation should be simple Subjects of the GA The GA includes roughly three subjects of which the first two are more or less the environment in which the GA takes place and the last one describes the work that has to be done Modeling languages for business processes Namely Petri Nets and BPELAWS In the first chapter of this thesis these two modeling languages are described in short For now it is enough to know that Petri Nets can be used to model workflows and BPELAWS can be used to model business processes and business interaction protocols Graphical representation of a business process Defining an
47. the tool as a guide how to model a Web Services related process 3 4 Simulation of the PN BPELAWS Tool s Result s 3 4 1 EPNML and YASPER This subsection describes the simulation of an EPNML file that has been created with the PN BPEL4WS Tool It is not the purpose of this subsection to be a tutorial for the application YASPER A user guide YASPER 2005 is provided with the application which can serve as tutorial for users that are not acquainted with YASPER The application YASPER is a tool in which Petri Net models can be edited and simulated The following steps have to be taken to open an EPNML file in the tool YASPER that was created by the PN BPELAWS Tool e Startthe application YASPER e Open the menu File and choose Open e An Open file dialog appears where one can browse to the directory of the EPNML file that has to be opened e Click on the desired EPNML file and click the button open of the Open file dialog e If the contents of the EPNML file are ok then the tool YASPER will display the contents of that file After these steps the EPNML file has been loaded in the tool YASPER In YASPER one can edit the process model s of these EPNML files but be aware of the fact that one might not be able to open them anymore in the PN BPEL4WS Tool if the changes to the model are not in conformance with the TM and MM To start the simulation of the model one has to add a token to the initial place of the process m
48. transition is an AND transition which has normal Petri Net semantics or an XOR transition which consumes non deterministically a token from one of its input places and produces a token non deterministically for one of its output places Default value is AND Unique identifier for the arc Identifier that refers to a place or transition in the net Identifier that refers to a place or transition in the net Can be used for the graphical representation of the arc Can be used to name the arc Can be used for a description of the arc Can be used for defining arc expressions as used by HLPN HLPN 2000 Can be used to give the arc one of the following types e inhibitor if that place is a channel e C R U and orD if that place is a store page usedfor i Unique identifier for the page describing graphics SE Can be used for the graphical representation of the page subnets description SE Can be used for a description of the page type SE Can be used to indicate if the page is an AND transition arc id A source A target A graphics SE name SE description SE inscription SE type SE which has normal Petri Net semantics or an XOR transition which consumes non deterministically a token from one of its input places and produces a token non deterministically for one of its output places Default value is neither AND nor XOR
49. vector represents the number of tokens in place p1 and the second position represents the number of tokens in place p2 see figure 1 6 The firing of transition t1 causes one token to be consumed from place p1 and produced in place p2 The marking of the net in the new situation has become 1 1 see figure 1 7 pi t1 p2 O E O Figure 1 6 The marking of the Petri Net model is 2 0 pi t1 p2 O E O Figure 1 7 The marking of the Petri net model after one firing of the transition t1 is 1 1 A state of a business process can be represented by a particular marking in a Petri Net of the business process In our example we could use the marking 2 0 as the state start and the marking 0 2 as the state end of our little net By Geert Zijlmans 15 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Routing in a Petri Net A routing in a Petri Net describes the order in which transitions in the model can be fired In this GA there are three different kinds of routings namely e Sequential routing Sub processes are fired in a sequential order e Parallel routing Sub processes are fired concurrently e Selective routing There are several alternatives for process continuation These routing kinds can also be mixed which means that a parallel routing may appear inside a sequential etc Sequential routing In sequential routing the transitions belonging to the sequence are fired after
50. we do not directly notice them but they are all around us processes A process may be a simple thing as shaving your beard but may also be as complex as your own life In business there are also a lot of processes e g producing a product cleaning the building etc In business it is very important to know what the involved business processes are Knowing your business processes starts with gathering information about them Information is the key item in every business Not having enough information about your business processes can have disastrous consequences for the business goal producing products and or offering services e g producing products not knowing that there is no money to pay the employees which is a mismanagement of resources a strike by the employees is then most likely to happen Most of the information about business processes is in the minds of the people that take part in it When these people leave the company they also leave a big information gap about the business processes in which they took part This is where modeling comes in Modeling its business processes is the first step for a company to get an insight in what they are exactly doing and to preserve information about its business processes 1 http w3 win tue nl en By Geert Zijlmans 7 254 T U j e Introduction A business process model hereafter abbreviated as BPM can be created using the information that is in the minds of the people that take par
51. 1 The token type definition for the contents of a process instance and a calendar for the process Once all information has been collected from the BPEL4WS process a token of the type process can be created containing this information Then a place the type store has to be created of as the place PI A of figure 2 5 which has a lt tokenType gt sub element that refers to the token type just defined This kind of place a database for process instances can be used by activities transitions in the process to perform the following actions e C Create a new process instance in the database with default data e R Read the contents of a certain active process instance present in the database e U Update data values of a certain active process instance present in the database These actions can be combined e g CRU would have the following meaning An activity creates a process instance reads and updates data from one or more process instances The place calendar is also a place of the type store where only the read actions can be used for retrieving the current time in the process Figure 2 8 below shows the above described actions on the storage for process instances and a calendar Create a process Read process Update process instance instances instances Read the current time R R PI calendar Figure 2 8 Available actions for the places PI and calendar in a process Fault handling The
52. A purchaseOrderProcess terminate E Process terminate Figure 2 22 Translation of the lt partnerLink gt element purchasing of the initial example Step 7 Create the process token type message token types and fault token types There is no graphical representation available for the creation of the process token type message token types and fault token types By Geert Zijlmans 68 254 T U le Chapter 2 A GML for generating BPELAWS Step 8 Translate the fault handlers In the initial example there are no sub processes used no presence of scope elements This means that there is only one scope which can have a set of fault handlers defined for it and that is the scope belonging to the process lt process gt element itself There is only one fault handler defined for the scope and is defined as shown in code 2 11 below lt faultHandlers gt catch faultName Ins cannotCompleteOrder faultVariable POFault gt reply partnerLink purchasing portType lns purchaseOrderPT operation sendPurchaseOrder variable POFault faultName cannotCompleteOrder gt lt catch gt lt faultHandlers gt Code 2 11 Definition of the lt faultHandlers gt element for the scope of the lt process gt element As one can see the lt catchAl1 gt sub element is omitted in the definition This means that BPEL4WS adds a stealth default fault handler to the set of fault handlers The fault handler that is defined
53. BPM this is an activity in a process that is an indivisible unit of work In the modeling language Petri Nets an atomic activity can be represented by a transition COM port A COM port is a special place in a HLPN model using the GML of this research It represents a communication link with another process The kind of token that can be associated with a COM port must be of the type message Compositional modeling In compositional modeling one uses predefined structures to define a BPM The predefined structures are like the pieces in a jig saw puzzle If one knows where a piece belongs in the puzzle then one can put it in the correct place connecting it to other pieces of the puzzle The same counts for the predefined structures Graphical modeling language A graphical modeling language GML is a language that uses the standard graphical notation of a modeling language A GML of a modeling language allows the developer to speed up the development of a BPM in the modeling language Halting The term halting is used in the development and execution of a process to indicate that a process instance does not end entirely Only the main activity of the process ends while the event handlers fault handlers and or compensation handler of the process may continue as normal Modeling language A modeling language is a certain set of definitions that can be used to express define a process Most of the modeling languages have a mathem
54. COM port of the partner link purchasing This is the only request the process can receive at the start of the process Therefore one needs to add the receive handle as the first activity inside the sequential routing handle Figure 2 25 below shows how this activity can be added inside the sequential routing handle including the translation of the COM port of the partner link purchasing COM purchasing Process purchasingLT purchaseOrderProcess purchaseService m active Process purchaseOrderProcess active sendPurchaseOrder input PI purchaseOrderProcess COM purchasing purchasingLT purchaseService m sendPurchaseOrder Zoom Receive message input sequences terminate receive 1 sequence i PI terminate purchaseOrderProcess purchaseOrderProcess end purchaseOrderProcess end Figure 2 25 The sequential routing handle with one receive handle Step 4 Insert parallel routing The purchaseOrderProcess process starts after the receiving of a Po three parallel sequences of activities 1 Communication with a shipping service 2 Communication with an invoicing service 3 Communication with a scheduling service These sequences and internal activities can be added to the parallel routing handle in the same way as the sequential routing handle for the Process handle 1 In this step only the adding of the parallel routing handle inside the seque
55. F Zoom Pl Switch terminate aes next place DONI empty Activity 1 terminate xt pl Switch F next place anis aon terminate E Figure 2 19 The switch activity element with one case B and where the otherwise element has been omitted By Geert Zijlmans 64 254 TU e Chapter 2 A GML for generating BPEL4WS Coupling the activities concerning the termination halting of the process Once all activities of the Main activity have been translated using the TM one still needs to check some couplings concerning the termination halting of the process In principle the black places and transitions connected to them do not necessarily have to be present when there is no terminate activity element defined in the process but if somewhere in the process this activity element is used then every BPEL4WS activity element must be provided with the correct termination of the particular BPEL4WS activity element In general a place is added to the basis construction for the translation of a BPEL4WS activity element which should initiate the termination of the BPEL4WS activity element when it receives a token Inside the hierarchical transition of the BPEL4WS activity element one needs to add a transition that is connected to the reference place of the termination place which immediately kills the BPEL4WS activity element It kills the BPEL4WS activity element by connecting all places inside the same hierarchical transition v
56. Model hereafter abbreviated as TM is a model that has been created to translate the contents of a BPELAWS process to its equivalent in the GML of HLPN and EPNML The TM translates each BPELAWS element and WSDL element of a BPELAWS process to a standard pattern in the GML of HLPN and EPNML The TM also describes the coupling between these standard patterns The result of a translation using the TM is an EPNML file in which some small extensions have been made to the EPNML standard described later in this subsection An EPNML file can be opened in the tool that supports the EPNML standard EPNML 2004 YASPER is such a tool In YASPER one does not see all the information that is present in the resulting EPNML file of the translation because YASPER currently does not support the extensions made to the EPNML standard in this GA However the GA s PN BPELAWS Tool described in Chapter 3 of this thesis does show this information The TM can be found in Appendix E of this thesis In the rest of this subsection the following topics concerning the TM are discussed e Creating the TM e Anexample using the TM 13 The tool Oracle BPEL Designer http otn oracle com bpel offers graphical representations of BPELAWS elements to speed up the modeling in this language A study by Daniela Weinberg http www informatik hu berlin de top download publications weinberg03 pdf also offers graphical representations of BPELAWS elements that can be used to mode
57. OrderProcess sinvoker 2 OVV sinvoke gt 3 oum leis m Set a A sequences 2 terminate terminate run zs sequences invoke eae terminate od z C aaaea S OR PI purchaseOrderProcess lt sequence gt sequence end 2 end zrecetve 3 PI purchaseOrderProcess H purchaseOrderProcess start Figure G 12 Zooming in on the sequence 2 element of figure G 7 PI purchaseOrderProcess COM invoicing Send message invoicingLT invoiceService p computePriceP T initiatePriceCalculation input Figure G 13 Zooming in on the lt invoke gt 2 OW element of figure G 12 247 254 T U e Appendix G The Initial Example of BPEL4WS 2003 FH purchaseOrderProcess M PI start suppressJoinF ailure purchaseOrderProcess joinCondition PI purchaseOrderProcess Skip amp update link status Send message sinvoke gt 3 OW ui C0 terminate COM invoicing invoicingLT PI invoiceService p purchaseOrderProcess computePricePT sendShippingPrice input Figure G 14 Zooming in on the lt invoke gt 3 OW element of figure G 12 COM invoicing invoicingLT invoiceRequester m invoiceCallbackPT sendinvoice input Receive message purchaseOrderProcess Figure G 15 Zooming in on the receive 3 element of figure G 12 By Geert Zijlmans 248 254 T U e Appendix G The Initial Example of BPEL4WS 2003 COM scheduling schedulingLT schedulingService p schedulingPT
58. PELAWS semantics define that an alarm event can occur only once during the lifetime of a process instance that is why the token is consumed by a collector when the alarm event has been handled The events that are triggered when a certain message arrives may occur more than once during the lifetime of a process instance EHI Calendar EH I start terminate PI COM EH I EHI B role C D input output fault Zoom EH start Activate event handlers ONMESSAG EBCDE ONALARM H Wait for H terminate Alarm Message occurred received COM EH I B lt role gt C D input output fault Activity 1 Activity 2 Activity 1 Terming terminate terminate EHI terminate Figure 2 12 The lt eventHandlers gt element with one possible alarm event and one incoming message event By Geert Zijlmans 59 254 TU e Chapter 2 A GML for generating BPEL4WS Compensation handling The next step in the translation of a BPEL4WS process using the TM is the translation of the process compensation handler A compensation handler in BPEL4WS is defined by the lt compensationHandler gt element and can be used to define activities that perform undo actions Therefore the lt compensationHandler gt element is nothing more than a wrapper for reversal activities that may only use a snapshot of the status of the process instance when the scope of the compensation handler completed The translatio
59. Sets faultHandlers compensationHandler eventHandlers activity lt scope gt By Geert Zijlmans 108 254 TU e flow links link sequence while switch case otherwise By Geert Zijlmans Appendix C BPEL4WS in Backus Naur Form flow standard attributes gt standard elements links activity lt flow gt lt links gt link lt links gt link name ncname sequence standard attributes standard elements activity lt sequence gt while condition bool expr standard attributes standard elements activity lt while gt lt pick createInstance yes no standard attributes gt onMessage onAlarm lt pick gt lt switch standard attributes gt standard elements case otherwise lt switch gt case condition bool expr activity case otherwise activity otherwise Listing C 1 BPELAWS BPELAWS 2003 elements and attributes in BNF 109 254 Appendix D BPEL4WS divided in Classes TU e ided in Classes 1V1 BPELAWS d Appendix D uoneja11025 Jes eyqeueAyney aureae 9 oMieuued ay ad yurpauyed awe 40 D ob saniedoud euieu ro L ot Queue adh ad abessauw aweu 9 qeueA Figure D 1 The BPELAWS class diagram 110 254 By Geert Zijlmans Appendix D BPEL4WS divid
60. TU e A High Level Petri Nets based modeling language for generation of BPEL4WS processes Creation of a mapping between BPELAW S and High Level Petri Nets Geert Zijlmans Eindhoven University of Technology Department of Mathematics amp Computer Science April 2006 By Geert Zijlmans 1 254 TU e Suns Summary This thesis describes the graduation assignment of Geert Zijlmans and its results In normal day life there are many processes around us even ones that we do not notice directly because they appear normal to us e g washing ourselves living our life In business there are also many processes which hold the business alive Yet in business it is essential for a company to know which processes keep the business company alive The key item in this situation is information about the processes Mostly the information is in the minds of the people that take part in a process but when a person leaves the company also the piece of information about this process leaves the company which might be crucial to the process itself This is where the modeling of processes starts One of the important goals when creating a model of a process is information preservation about a process If a company has its processes modeled then this company can use these models for e g locating bottlenecks in the process which were not visible before and better management of the company s resources Many modeling languages have been developed for the modeli
61. a correlation set is defined as shown in code 1 13 below where e The attribute initiate tells the process whether the incoming message initiates the related correlation set or not e The attribute pattern can only be used in an invoke activity element representing a Request Response interaction The value of the attribute defines in which communication direction the related the correlation set is used for message correlation correlation set name of a correlation set initiate yes no pattern in out out in gt Code 1 13 Definition of the lt correlation gt sub element for an activity element of BPEL4WS BPEL4WS 2003 By Geert Zijlmans 38 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS 1 2 3 Process Design with BPEL4WS In this subsection we reuse Example 1 of subsection 1 1 3 In this example there is a WS related process which handles the Age verification process for a website In code 1 14 below the only the BPEL4WS representation of the Age verification process is given By Geert Zijlmans lt process name AgeVerification targetNamespace location of this process queryLanguage http www w3 org TR 1999 REC xpath 19991116 expressionLanguage http www w3 org TR 1999 REC xpath 19991116 suppressJoinFailure no enableInstanceCompensation no abstractProcess no xmlns http schemas xmlsoap org ws 2003 03 business process xmlns def location of the WSDL file for
62. activity Activities may initialize and alter the status of a link but once it has the status true it will not change anymore The definition of a token type of this kind is shown below token type process id process name of the process lt name gt name of the process lt name gt location location of the process location lt queryLanguage gt location of the query language s definitions lt queryLanguage gt lt expressionLanguage gt location of the expression language s definitions expressionLanguage suppressJoinFailure yes no lt suppressJoinFailure gt lt enableInstanceCompensation gt yes no lt enableInstanceCompensation gt lt abstractProcess gt yes no lt abstractProcess gt lt namespaces gt namespace id name location namespace lt namespaces gt lt variables gt variable name name type type kind kind gt lt variables gt lt correlationSets gt lt correlationSet name name gt lt list gt lt item name name type type message tokenName part part query query list correlationSet correlationSets links lt link name name lt initialized gt true false lt initialized gt lt status gt true false lt status gt lt link gt lt links gt lt token gt Code 2 2 Definition of a token type of the kind process By Geert Zijlmans 46 254 T U le Chapte
63. age pos orderFaultType lt operation gt lt portType gt Code 2 10 Definition of the port Type element purchaseOrderPT The next step in the translation is the translation of each operation of the port type definition In this case only one operation exists sendPurchaseOrder The operation defines a Request Response interaction pattern in which one fault definition exists By Geert Zijlmans 67 254 T U le Chapter 2 A GML for generating BPELAWS The graphical representation of this partner link is shown in figure 2 22 below in which also zoom in on the process itself process process process purchaseOrderProcess purchaseOrderProcess purchaseOrderProcess start active end Activate process PI purchaseOrderProcess purchaseOrderProcess COM purchasing COM purchasing COM purchasing purchasingLT purchasingLT purchasingLT purchaseService m purchaseService m purchaseService m purchaseOrderPT purchaseOrderPT purchaseOrder sendPurchaseOrder sendPurchaseOrder sendPurchaseOrder input output fault cannotCompleteOrder Zoom COM purchasing COM purchasing COM purchasing purchasingLT purchasingLT purchasingLT purchaseService m purchaseService m purchaseService m purchaseOrderPT purchaseOrderPT purchaseOrderPT sendPurchase Order 0 sendPurchase Order sendPurchaseOrder input output fault cannotCompleteOrder process purchaseOrderProcess purchaseOrderProcess active end c Process Fi End
64. ail The request contains a ticker symbol and the address to which we should send the stock price There is an invisible backend implementation that obtains the quote and the service then returns this to the appropriate address lt documentation gt lt port name pGetRequest binding tns RequestReceivePortBinding gt By Geert Zijlmans 29 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS lt soap address location mailto quote examplel com gt lt port gt lt port name pSendResponse binding tns ResponseSendPortBinding gt lt soap address location mailto response example2 com gt lt port gt lt xlang behavior gt xlang body xlang sequence xlang action operation AskLastTradePrice port pGetRequest activation true gt lt xlang action operation SendLastTradePrice port pSendResponse gt lt xlang sequence gt lt xlang body gt xlang behavior service definitions Code 1 4 XLANG service definition example XLANG 2001 WSFL With IBM s WSFL WSFL 2001 one can model two types of Web Service compositions e Flow Model This is a description of a business process The model describes the usage pattern of the functionalities provided by the collection of composed Web Services The model specifies an execution sequence e Global Model This is a description of partner interactions The model describes the interaction pattern of th
65. ame scheduling partnerLinkType Ins schedulingLT partnerRole schedulingService gt lt partnerLinks gt Code 2 8 Definition of the lt partnerLinks gt element in the initial example Here only translate the first partner link definition the other partner link definitions can be translated in a similar way The first partner link definition has the partner link type definition Ins purchasingLT which can be found in the associated WSDL file indicated by the namespace prefix 1ns The partner link type is defined as shown in code 2 9 below lt plnk partnerLinkType name purchasingLT gt lt plnk role name purchaseService gt lt plnk portType name pos purchaseOrderPT gt lt plnk role gt plnk partnerLinkType Code 2 9 Definition of the partnerLinkType element purchasingL T This partner link type definition has only one role purchaseService which happens to be the same role as defined for the myAole attribute of the partner link definition This means that the port type associated with the role belongs to the process ourchaseOrderProcess itself The port type definition of the port type pos purchaseOrderPT is shown in code 2 10 below where the namespace prefix pos refers to the same WSDL file XportType name purchaseOrderPT gt operation name sendPurchaseOrder gt input message pos POMessage output message pos InvMessage fault name cannotCompleteOrder mess
66. amp BPEL4WS lt flowSource gt lt serviceProvider gt lt serviceProviderType gt lt flowModel gt lt transitionCondition gt wsdl operation lt controlLink gt lt plugLink gt lt globalModel gt Figure 1 24 Overview of WSFL elements for a business process WSFL 2001 As already stated above there are two types of Web Service compositions The Flow Model is represented in WSFL by a lt flowmodel gt element A Flow Model contains two kinds of information e The specification of how the composition uses the services being composed to create a flow model e The definition of service interface provided by the composition Within the Flow Model there are four parts that can be defined e lt serviceProvider gt The service provider represents the endpoint that provides a set of services in the Flow Model e activity The lt activity gt element specifies an activity that has to be performed in the business process e lt controlLink gt A control link specifies an activity source and its possible successor activities targets in the Flow Model e lt dataLink gt A data link defines the exchange of information data between activities The Global Model is represented in WSFL by the lt globalmodel gt element The Global Model defines interactions between partners in terms of client server relationships between operations of their public interfaces The Global Model uses a lt plugLink gt element t
67. and the message is stored in the variable Invoice c Third sequence i Invoking a One way interaction requestProductionScheduling with a process that belongs to the partner link scheduling The request holds the same value as the variable Po ii Invoking a One way interaction sendShippingSchedule with a process that belongs to the partner link scheduling The request holds the same value as the variable shippingSchedule This activity can only be executed if the link ship to scheduling is enabled 3 Sending a response with the contents of the variable Invoice via the COM port of partner link purchasing By Geert Zijlmans 71 254 T U le Chapter 2 A GML for generating BPELAWS Step 12 Coupling the activities concerning the termination halting of the process In this process model all activity termination places need to be coupled to the termination transition of the scope they are defined in This also counts for the activity ending places used by the fault handler to stop all activities in the main process The result of the total translation can be seen in Appendix G 3 By Geert Zijlmans 72 254 T U le Chapter 2 A GML for generating BPELAWS 2 3 Mapping Model 2 3 1 Creating the Mapping Model The TM provides us with a set of predefined handles for each BPELAWS element The Mapping Model hereafter abbreviated as MM is a model that uses this predefined set of handles to
68. artnerLinkType lns invoicingLT myRole invoiceRequester partnerRole invoiceService gt lt partnerLink name Shipping partnerLinkType Ins shippingLT myRole 2 shippingRequester partnerRole shippingService lt partnerLink name scheduling partnerLinkType lns schedulingLT partnerRole schedulingService gt lt partnerLinks gt lt variables gt variable name PO messageType l1ns POMessage variable name Invoice messageType lns InvMessage variable name POFault messageType lns orderFaultType variable name ShippingRequest messageType lns shippingRequestMessage variable name shippingInfo messageType lns shippingInfoMessage variable name shippingSchedule messageType lns scheduleMessage lt variables gt lt faultHandlers gt catch faultName 1ns cannotCompleteOrder faultVariable POFault gt reply partnerLink purchasing portType lns purchaseOrderPT operation sendPurchaseOrder variable POFault faultName cannotCompleteOrder gt lt catch gt lt faultHandlers gt lt sequence gt receive partnerLink purchasing portType lns purchaseOrderPT operation sendPurchaseOrder variable PO gt lt receive gt lt flow gt lt links gt link name ship to invoice gt link name 2 ship to scheduling links sequence assign copy from variable PO part customerInfo to variable Shippi
69. asses are the result of the TM and MM The Handle classes use the BPELAWS WSDL and EPNML classes to create objects inside the class to represent the handle as described in the TM and MM A Handle object can also contain other Handle objects e g a Sequential Routing Handle object can contain one or more Activity Handle objects The Handle objects are used in the tool to model a WS related business process Once one has developed a model of the process this model a set of Handle objects can be given to the BPELAWS creator or EPNML creator to respectively generate a BPELAWS file with associated WSDL file s or an EPNML file of the business process model that is currently active in the tool 3 2 2 BPELAWS and EPNML parsers The second step in the creation of the tool consisted of the creation of the BPELAWS and EPNML parsers The input for the BPELAWS parser is a BPELAWS file file with the extension bpel and the associated WSDL file s file s with the extension wsdl The BPEL parser then creates a set of Handle objects from this input which represents the BPELAWS process described by those files The input for the EPNML parser is an EPNML file file with the extension pnml The EPNML parser then creates a set of Handle objects in a similar way as is done in the BPELAWS parser The result of the parser represents the process es described in the EPNML file The tool uses the set of handles to create a graphical representation
70. associated WSDL file property lt partnerLinkBinding gt lt partnerLinkBindings gt lt BPELProcess gt lt BPELSuitcase gt Code 3 2 Standard file bpel xml for a BPELAWS file 17 Tutorials for the Oracle BPEL Process Manager as well as the Oracle BPEL Designer and the applications themselves can be found on http otn oracle com bpel By Geert Zijlmans 88 254 T U le Chapter 3 The PN BPEL4WS Tool e Build file This file contains data about the way the BPEL4WS process should be build and has the following standard form as described by code 3 3 below The file is always named build xml lt xml version 1 0 Run obant on this file to build package and deploy the name of the process BPEL process lt project name name of the process default main basedir lt Name of the domain the generated BPEL suitcase will be deployed to gt lt property name deploy value default What version number should be used to tag the generated BPEL archive gt lt property name rev value 1 0 target name main the bpelc task compiles and package BPEL processes into versioned BPEL archives bpel jar See the Programming BPEL guide for more information on the options of this task gt lt bpelc home S home rev revj deploy deploy gt lt target gt lt project gt Code 3 3 Standard file
71. atical background e g Petri Nets Start activities These are activities in a BPELAWS process that initiate a new instance of the process If there are two or more start activities concurrently enabled then these start activities all are associated to a single new process instance only one new process instance is created Termination Termination is the ending of the existence of a process instance A process instance can end in two possible states e Normal In this state the process instance ended as it should have ended e Abnormal In this state something went wrong during the execution of the process instance which caused the process instance to end abnormally e g fault occurred for the process as a whole or has been ended explicitly WS related process A WS related process is a process that uses the Web Services Standards see figure l 1 to exchange information with other processes By Geert Zijlmans 103 254 T U e Appendix B List of Abbreviations Appendix B List of Abbreviations BNF Backus Naur Form BPELAWS Business Process Execution Language for Web Services BPMN Business Process Modeling Notation CSS Cascading Style Sheets DS Documentation System GA Graduation Assignment GML Graphical Modeling Language GUI Graphical User Interface HLPN High level Petri Nets HTML Hypertext Markup Language MM Mapping Model PNML Petri Net Markup Language TM Translation Model TU e University of Technology Eindh
72. between applications created around for business processes by using Web Services Standards see figure 1 below Web Services Standards Figure 1 Web Services Standards IBM WS I 2002 http www informatik uni hamburg de TGI PetriNets By Geert Zijlmans 8 254 TU le Introduction BPEL4WS is a language that uses Web Services hereafter abbreviated as WS to enable processes to communicate with other processes or people Businesses can use BPEL4WS to model their formal specifications of business processes and business interaction protocols BPEL4WS is a merge of two old modeling languages XLANG by Microsoft Corporation and WSFL by IBM Corporation The other parties that helped defining BPELAWS are BEA Systems SAP AG and Siebel Systems BPEL4WS is nothing more than another layer on top of the Web Services Standards see figure 1 1 which allows a business to use the Web Services Standards for the information exchange in its formal specification of business processes and business interaction protocols BPEL4WS is increasingly used to model processes like the online booking of trips Yet there are not that many tools available for the modeling and testing of these models because BPEL4WS is a fairly new modeling language defined in 2002 version 1 1 in 2003 Now that we have reached this point can give the answer to the question at the beginning of this subsection Since Petri Nets is the basis for most of
73. bove to improve the readability of the model The partner links proved to be a difficult item to model in this example In this case only provided the kind of message that was received sent Finally managed to come up with a translation of a partner link see subsection 2 2 1 Communication In figure 2 1 one can already see some special places namely e Message places e g POMessage and InvMessage e Place for handling the occurrence of a fault in the process e g faultHandlers e Places that represent a link e g ship to invoice e Places and transitions that belong to the main process These special places play an important role in the readability and coupling of the models In the translation of elements from one language to another language one always has to look carefully at the semantics of each language that is involved in the translation An example in our case is that when one tries to translate a source file of a BPELAWS process one to one to its graphical representation in the GML of HLPN without looking carefully at the semantics of BPELAWS one might overlook the situation in which a fault handler is omitted in a particular scope The semantics of BPELAWS describe that there actually is a stealth fault handler present that catches the fault and terminates the process abnormally In this subsection the following topics concerning the translation of the BPELAWS elements are described By Geert Zijlmans Gen
74. catches a fault named cannotCompleteOrder and some values that are provided by the variable POFault When this particular fault occurs during the execution of the process then the activity belonging to this fault handler is executed The activity that is defined for this fault handler a reply activity element sends a message containing the values of the POFault variable to the COM port of the partner link purchasing which can handle the fault cannot CompleteOrder The graphical representation of this lt faultHandlers gt definition in the process is shown in figure 2 23 below Process Hares i h derP purchaseO defun Process terminate reir rProcess FH Process FH purchaseOrderProcess purchaseOrderRrocess purchaseOrderProcess COM rari start NE end terminate purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder COM purchasing input purchasingLT z purchaseService m 0 2 purchaseOrderPT Seer sendPurchaseOrder en d fault cannotCompleteOrder COM purchasing purchasingLT purchaseService m purchaseOrderPT FH sendPurchaseOrder purchaseOrderProcess output PI purchaseOrderProcess End By Geert Zijlmans 69 254 T U le Chapter 2 A GML for generating BPELAWS Zoom in on FH FH purchaseOrderProcess start Process purchaseOrderProcess end End running activities cannotComplete fder POFault Catch Default catch cannotCompleteOrde POFau
75. cific attribute of an element By Geert Zijlmans 3 254 T U e Contents Contents SUMMARY 2 NOTATIONAL CONVENTIONS 3 CONTENTS 4 PREFACE 6 INTRODUCTION 7 CHAPTER 1 HIGH LEVEL PETRI NETS amp BPELAWS 13 1 1 HIGH LEVEL PETRI NETS 13 Lal Classical Petri Nets 13 1 1 2 HLPN 16 1 1 3 Process Design with HLPN 21 1 1 4 PNML 22 1 1 5 Extensions to HLPN that are used in the GA 25 12 BPEL4WS 28 1 2 1 History 28 22 BPEL4WS 32 1 2 3 Process Design with BPELAWS 39 CHAPTER 2 A GML FOR GENERATING BPELAWS MODELS 41 2 1 INTRODUCTION 41 2 2 TRANSLATION MODEL 41 2 2 1 Creating the Translation Model 42 2 2 2 Example Initial example of BPELAWS 2003 66 2 3 MAPPING MODEL 73 2 341 Creating the Mapping Model 73 2 9 24 Example Initial example of BPELAWS 2003 74 2 4 CORRECTNESS OF THE TRANSLATION MODEL amp MAPPING MODEL 79 CHAPTER 3 THE PN BPEL4WS TOOL 81 3 1 INTRODUCTION 81 3 2 CONSTRUCTION 81 3 2 1 Handle BPELAWS WSDL and EPNML classes 81 3 2 2 BPELAWS and EPNML parsers 82 3 2 3 BPELAWS and EPNML creators 82 3 2 4 Tool s engine 83 3 3 GUI ENVIRONMENT OF THE PN BPEL4WS TOOL 84 3 3 RELATION WITH THE TM AND MM 87 3 4 SIMULATION OF THE PN BPEL4WS Toor s RESULT S 87 3 4 1 EPNML and YASPER 87 3 4 2 BPELAWS and Oracle BPEL Process Manager 8 By Geert Zijlmans 4 254 TU e
76. computePricePT initiatePriceCalculation input COM invoicing FH invoicingLT purchaseOrderProcess m a eae 0 a LUV dcum computePricePT dise sendShippingPrice input flow gt 1 terminate anne _ mop mtm COM invoicing PI invoicingLT i purchaseOrderProcess invoiceRequester m invoiceCalibackPT sendinvoice input COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder output zreply 1 gt COM scheduling schedulingLT schedulingService p schedulingPT requestProductionSc input purchaseOrderProcess eduling end COM scheduling schedulingLT schedulingService p schedulingPT sendShippingSchedule input Figure 2 27 The receive handle the parallel routing handle and the reply response handle inside the sequential routing handle By Geert Zijlmans 78 254 T U le Chapter 2 A GML for generating BPELAWS Step 6 Create fault handlers for the process scope The final step in the creation of this process is the creation of a fault handler for the whole process In this process only one fault handler is defined to catch the fault cannotCompleteOrder along with the variable POFau1t which contains the message belonging to the fault This means that there is no catch all faults case present in the fault handlers for the process which means that one needs to insert a normal fault handlers handle with a default case In figure 2 23 the se
77. concerning the termination halting of the process A process instance is fully terminated when none of that process instance s process tokens are left in the process model This automatically means that the process cannot end in a normal way which is also the case in a BPELAWS process see subsection 2 2 1 Process translation If a BPELAWS activity element s translation of a terminate activity element is used in a sub process then there must be a direct link between the place that indicates that the process should be terminated and the activity itself Once a token resides that place a sort of flush action is performed immediately flushing out all tokens of a certain process instance as described above In the case of compensation handling a BPELAWS activity element compensate asks for compensation of a particular scope This means that the hierarchical transition of the compensate activity element s translation produces a token in the place that indicates the start for that sub process compensation Even when there is no compensation handler defined for the sub process in a BPELAWS file a default compensation handler is present in my translation as is described by the BPEL4WS semantics for compensation handling This compensation handler s translation performs its compensation activities and turns back to the compensate activity element which proceeds normally In all other cases the basis construction and the compo
78. cond and third figure display the normal fault handlers handle with a default case Note Adding a fault handlers handle to a process also calls for the ending of the main activities when a fault occurs This means that inside the sequential routing handle the ending of the running activities must be modeled as described in subsection 2 2 1 The transition that initiates the ending of the activities must be coupled to the place Process purchaseOrderProcess end of the fault handlers handle of the process as can be seen in figures G 2 and G 5 in Appendix G The final result of the translation is the same as the result of the one in the example of subsection 2 2 2 see Appendix G 3 2 4 Correctness of the Translation Model amp Mapping Model The result of the TM and MM is a HLPN based process model of a BPELAWS process model The correctness of this result can be validated using tools that are capable to load the result of this model an EPNML file using the TM or a BPELAWS file with the associated WSDL file s using the MM and TM The correctness of my translation lies in the use of compositional modeling and hierarchical structuring of the translations Each BPELAWS element except for the partnerLink s lt partner gt s lt variable gt s correlationSet s and lt link gt s that has been translated in the TM uses the basis construction as described in subsection 2 2 1 Element translation Besides the basis cons
79. d reading a BPM in its mathematical textual form is a time consuming and a tedious job This is why most of the modeling languages have a standard graphical modeling language hereafter abbreviated as GML on the basis of their semantics A GML has two important advantages e t speeds up the development of a BPM e timproves the readability of a BPM Defining a GML for BPEL4WS based upon Petri nets semantics Since BPEL4WS is a fairly new modeling language it still has no standard GML There have been studies to develop a standard GML for BPEL4WS e g WBERG 2003 This GA focuses on defining a GML based upon Petri nets semantics from which it is easy to develop generate a BPEL4WS model 3 XLANG is the language Microsoft uses on their BizTalk Servers The specification of XLANG can be found on http Awww godotnet com team xml_wsspecs xlang c default htm The specification of Web Services Flow Language WSFL can be found on http www 306 ibm com software solutions webservices pdf WSFL pdf YASPER homepage http www yasper org For a list of tools that use Petri nets see http www informatik uni hamburg de TGI PetriNets tools complete_db htm By Geert Zijlmans 9 254 TU le Introduction Approach of the GA In the previous subsections of this introduction the description the context and the subjects of the GA are described In this subsection the approach of the GA is described which also resulted in th
80. d upon the result of this GA One might use these recommendations for further research in the area of the GA Appendices In the appendices one can find a list of terms except for the ones already defined in WfMC 1999 and all abbreviations used in this thesis BPELAWS defined in Backus Naur Form a class model of BPEL4WS the Translation Model the Mapping Model and the initial example of the BPELAWS specification translated using the Translation Model By Geert Zijlmans 12 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Chapter 1 High level Petri Nets amp BPEL4WS 1 1 High level Petri Nets If you are already acquainted with High level Petri Nets hereafter abbreviated as HLPN then you can skip this subsection This subsection describes the most important definitions and features of the modeling language HLPN in an informal way It can be used by the experienced reader to refresh his her knowledge about HLPN or for a novice reader to get an introduction into the world of HLPN The formal specification of HLPN HLPN 2000 contains many mathematical definitions which would only confuse the novice reader if these were mentioned here This subsection contains the following topics about HLPN e Classical Petri Nets In order to describe what HLPN are the reader first needs to know what Classical Petri Nets are e HLPN Description of HLPN e Process Design with HLPN Example of a simple WS related process modeled w
81. dShippingPrice input COM invoicing invoicingLT invoiceRequester m invoiceCallbackPT sendinvoice input COM scheduling schedulingLT schedulingService p schedulingPT A requestProductionScheduling COM scheduling input schedulingLT schedulingService p schedulingPT sendShippingSchedule input Figure G 1 Graphical representation of the process purchaseOrderProcess By Geert Zijlmans 240 254 T U i e Appendix G The Initial Example of BPEL4WS 2003 COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder input COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder output COM shipping shippingLT shippingService p shippingPT requestShipping Process mpu purchaseOrderProcess active COM shipping shippingL shippingService p shippingPT requestShipping output PI purchaseOrderProcess COM shipping shippingLT shippingService p shippingPT requestShipping fault cannotCompleteOrder COM shipping shippingL shippingRequester m shippingCallbackPT sendSchedule input lt sequence gt terminate lt process gt Process terminate purchaseOrderProcess terminate COM invoicing invoicingLT invoiceService p computePricePT initiatePriceCalculation input FH purchaseOrderProcess terminate FH purchaseQrderPris ce COM invoicing invoicingLT eie er tbe v FH COM p
82. dded to the scope to handle the faults that occur inside the particular scope This stealth fault handler also needs to stop all the activities inside the scope and after that check whether the scope it belongs to is the scope of the process lt process gt element or of a sub process lt scope gt element In the first case the process ends in the latter case the fault is thrown to the parent scope FH E start FHE FH E start terminate End scope Zoom End scope E E End scope E Dit _ Q s FHE lt scope gt process creates terminate Reference FH parent place of next scope of E place of start scope E Reference FH parent place of next scope of E place of start scope E Figure 2 9 The translation when the lt faultHandlers gt element is omitted in the definition of a scope E In figure 2 10 below shows the translation of a aultHandlers element where one catch sub element has been defined to catch a fault with name B and which has an associated variable C This means that the definition of a catchA11 sub element is omitted As defined in the BPEL4WS semantics for the fault handling in a scope BPEL4WS 2003 subsection 13 4 a stealth fault handler is added to the scope to handle the faults that cannot be caught by the defined fault handlers for the particular scope FHE FH E start terminate lt fauttHandlers E End scope E Reference FH parent place of next scope of E place of start sco
83. dhoven University of Technology Department of Mathematics amp Computer Science hereafter abbreviated as TU e The GA is a research which has been carried out at the TU e by Geert Zijlmans a graduate student at the TU e The mentor put forward by the TU e is Natalia Sidorova PhD a member of the Architecture of Information Systems group AIS of the Department of Mathematics amp Computer Science The GA description runs as follows Create a graphical modeling language based upon Petri nets semantics It should be easy to transform models in this language to Business Process Execution Language for Web Services hereafter abbreviated as BPELAWS BPEL4WS 2003 models In the next subsections of the introduction the following topics are discussed concerning the GA e Context in which the GA is performed e Subjects that play a role in the GA e Work that has to be done in the GA e Approach of the GA At the end of the introduction the layout of this thesis is described Note This thesis uses the terminology for the description of business processes as defined in WfMC 1999 A list of other terms that are also used in this thesis can be found in Appendix A Context of the GA A logical question that arises is Why issue this research Before answer that question we first have to look at the context of the research This subsection describes this context and finally gives the answer to the question above In normal day life
84. e creation of this thesis The first step was to get acquainted with the environment in which the GA took place which meant gathering information related to the GA The first information needed was information about both modeling languages Petri Nets and BPEL4WS My knowledge of the modeling language Petri Nets was already on a certain level that was sufficient for the GA to start with since the language is part of a course at the TU e 2M310 Systems Engineering 1 that attended Nonetheless reviewed all my documentation on Petri Nets course material had no knowledge of the modeling language BPEL4WS which meant that had to gather information about the modeling language BPEL4WS This resulted in several documents about BPEL4WS of which its specification BPEL4WS 2003 the Web Services Description Language hereafter abbreviated as WSDL specification WSDL 2001 and tutorials by IBM have been the most valuable to me to learn the modeling language BPEL4WS In my search for documents about the modeling language BPEL4WS also looked at some other modeling languages UML Activity Diagrams UML 2005 Business Process Modeling Notation BPMN BPMN 2004 Web Services Flow Language WSFL WSFL 2001 and XLANG XLANG 2001 started a side research that was not part of the GA to relate all these modeling languages including Petri Nets and BPEL4WS to each other but this proved to be too much work and would be a resea
85. e BPEL4WS activity element This does not count for the basic BPELAWS activity elements By Geert Zijlmans 65 254 T U le Chapter 2 A GML for generating BPELAWS 2 2 2 Example Initial example of BPELAWS 2003 In this subsection the Initial example of the BPEL4WS specification IBPEL4WS 2003 subsection 6 1 is translated using the TM The results of the translation are presented in their graphical notation Step 1 Take the BPELAWS file of the process one wants to translate The source of this file can be found in the BPEL4WS specification on page 16 23 and in Appendix G 2 Step 2 Retrieve the associated WSDL files that are referred to in the BPELAWS file The source of this file can be found in the BPEL4WS specification on page 16 23 and in Appendix G 1 Step 3 Check if the elements are in conformance with the BPELAWS specification Since it is an example of the BPELAWS specification the elements are presumed to be in conformance with the BPELAWS specification Step 4 Start the translation by creating a new EPNML file There is no graphical representation available for the creation of a new EPNML file Step 5 Translate the process element The process element of the initial example is shown below in code 2 7 process name purchaseOrderProcess targetNamespace http acme com ws bp purchase xmlns http schemas xmlsoap org ws 2003 03 business process xmlns lns http manufacturing org wsdl purc
86. e BPEL4WS specification BPELAWS 2003 subsection 6 1 The source of this example can be found in Appendix G of this thesis The result of this rough translation is shown in figure 2 1 below Start sequence POMessage receive sequence en invoke POMessage y invoke ei assign SE shippingRequest x e to invoice Message ShibpinginfeMessage Avoke invoke orderFaultT pe scheduleMessage _ receive MN receive scheduleMessage 4 invoke c AND split flow fe 7 QO owo s 1 ship to scheduling gt sequ nce vm sequence ultHandlers AND joir 7 flow catch cannotCompleteOrder POFault InvMessage reply orderFaultType C catch p cannotCompleteOrder POFa lt reply end sequence Figure 2 1 Initial example on page 16 of the BPELAWS specification in its rough graphical HLPN form By Geert Zijlmans 42 254 TU e Chapter 2 A GML for generating BPEL4WS One might notice in figure 2 1 that the variables and partner links of the initial example of the BPEL4WS specification have not been modeled A variable could have been modeled by a single place in which a token representing the variable resides All activities that use this variable then should be coupled to this place left it out of the figure a
87. e DS e Name for the document e Path to the location of the document e First letter that is related to the document e Subject that is related to the document e Set of keywords that are related to the document One can also view the contents of the XML file index xml outside the DS The file uses the XSLT file index xsl to transform the contents to their HTML form which results in a list of links to documents in the DS The XSLT file index xsl uses the CSS file index css for applying a style to the result of the transformation Figure 4 4 on the right shows the graphical representation of the HTML file toolbar html as it is used in the DS By Geert Zijlmans Chapter 4 Documentation System Enter a keyword here Choose a subject Search for Keyword m Choose a letter Choose a subject Search for Letter Figure 4 4 The section Toolbar of the DS 94 254 T U e Chapter 4 Documentation System 4 3 3 Section Content In this section the content of a document in the DS is displayed A document in the DS can either be a HTML file or an XML file In the first case the file can use the style of the DS which can be applied to the document by adding a reference to the CSS file contents css in the document In the latter case the file first needs to be converted to HTML The conversion is performed using the XSLT file documentation xsl which also adds a reference to the CSS
88. e collection of composed Web Services The model does not specify an execution sequence WSFL allows to model recursive composition of Web Services This means that once one has modeled a Web Service Flow model or global model one can use this model as a component in a new Web Service composition Also WSFL has a lifecycle interface with the following operations which makes the execution of the business process manageable e spawn Creates a new instance of the specified flow model and starts it The operation returns as soon as the flow model is started passing the instance identity of the new flow instance as a result e call Creates a new instance of the specified flow model and executes it The operation returns as soon as the instance of the flow model has finished passing the output of the flow instance as a result e suspend This operation temporarily interrupts the flow instance which has the specified instance identity e resume This operation continues the execution of the flow instance which has the specified instance identity e enquire This operation gives back the status of the flow instance which has the specified instance identity e terminate Terminates the flow instance which has the specified instance identity In figure 1 24 below you see an overview of the WSFL elements and where they are applied in the business process model By Geert Zijlmans 30 254 TU e Chapter 1 High level Petri Nets
89. e during the execution of the BPELAWS process A property is represented by an element bpws property in the WSDL file associated with the BPELAWS process The definition of it can be seen in code 1 11 below where the prefix opws refers to the namespace http schemas xmlsoap org ws 2003 03 business process lt bpws property name name type XSD simple type Code 1 11 Definition of the bpws property element for WSDL WSDL 2001 A property is always related to a certain part of a particular message in the message exchange of a BPELAWS process To provide the property element with data an element bpws propertyAlias is added to the WSDL telling which part of the message holds the value of the property The definition of the property alias is shown below in code 1 12 lt bpws propertyAlias propertyName property messageType message part part of the message query query to the part in the message Code 1 12 Definition of the bpws propertyAlias element for WSDL WSDL 2001 Once all correlation properties and property aliases have been defined for a BPELAWS process the correlation sets can be defined in the BPELAWS as shown in code 1 8 To relate a correlation set to a particular communication activity one needs to define correlations for that activity BPELAWS provides the correlations sub element for a communication activity to group all correlation sets that it uses The use of
90. e gt lt sequence gt flow reply partnerLink purchasing portType lns purchaseOrderPT operation sendPurchaseOrder variable Invoice gt lt sequence gt lt process gt Code G 2 BPELAWS file of the initial example of BPELAWS 2003 By Geert Zijlmans 239 254 TU e Appendix G The Initial Example of BPEL4WS 2003 G 3 Translation of the example using the TM Process purchaseOrderProcess start PI purchaseOrderProcess Activate Process purchaseOrderProcess active lt process gt purchaseOra Pie Stop Process purchaseOrderProcess end COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder input COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder output COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder fault cannotCompleteOrder COM shipping shippingLT shippingService p shippingPT requestShipping input COM shipping shippingLT shippingService p shippingPT requestShipping output COM shipping shippingLT shippingService p shippingPT requestShipping fault cannotCompleteOrder COM shipping shippingLT shippingRequester m shippingCallbackPT sendSchedule input COM invoicing invoicingLT invoice ervice p computePriceP initiatePriceCalculation input COM invoicing invoicingLT invoiceService p computePricePT sen
91. e of these two attributes must occur in any onAlarm event BPEL4WS 2003 This is a little bit confusing does it mean that still both attributes may be used or that only one may be used in its definition In case of the first assumption would suggest to remove this sentence from the semantics of this element in the other case would suggest that the definition becomes the same as that of the lt onAlarm gt element of a lt pick gt element Note My GML uses the second assumption By Geert Zijlmans 100 254 TU le Conclusion e The communication with another process has been defined somewhat awkwardly in my opinion One has to define a partner link which involves the definition of a partner link type and the assignments of the roles of the partner link type inside the partner link In the definition of a partner link type a role is associated with a particular port type that can be used in the communication with the process to which the role belongs Yet in the definition of a communication activity one has to define a partner link port type and operation So what is the goal of defining partner links if they are not really used in the receiving and sending of messages In my opinion the port type inside the communication activity should be replaced by the role to which this applies e g for a receive activity element as shown in code C 3 below In this way the partnerLink element is used to its full extent receive partnerLin
92. e process has platform specific means for compensation of the whole process attribute enableInstanceCompensation of BPELAWS In this case we do not want this kind of compensation thus we need to insert the Process handle 1 in our model Since our model is called burchaseOrderProcess the graphical representation of this handle is the same as in figure 2 21 When one looks at the involved parameters one notices that these parameters represent the settings of a BPELAWS process and the settings part of the process token type definition One only needs to set the name of the process parameter A everything else has its default value In code 2 12 below the process token type definition is show and in code 2 13 the BPELAWS representation of the handle By Geert Zijlmans 74 254 T U le Chapter 2 A GML for generating BPELAWS token type process id purchaseOrderProcess name purchaseOrderProcess name location location of the process lt location gt lt namespaces gt Can be added here gt variables Can be added her gt lt correlationSets gt Can be added her gt links Can be added her lt token gt Code 2 12 Definition of the token element for process purchaseOrderProcess in the EPNML file process name purchaseOrderProcess targetNamespace location of the process lt namespaces gt Can be added
93. e to an information source that is specified in the back of this thesis An information source is specified by its title author s institute s company publication date and if possible and URL to the location where the information source can be found e Code When a piece of text has the font type Courier New then the piece of text represents a piece of code or reference to a piece of code e Term When a word has been written in italics then the specific word is a term which definition can be found in the list of terms in Appendix A e Term When a word has been written in italics and in bold then the specific word is a term which definition can be found in in WfMC 1999 In the definition of code the following extra conventions apply e lt element gt The indicates that the element is an optional element for the specific element that it has been defined in e lt element gt The indicates that the element can exist zero or more times within the specific element that it has been defined in e lt element gt The indicates that the element can exist one or more times within the specific element that it has been defined in e attribute The indicates that the attribute is an optional attribute for a specific element that it has been defined in e Alternative 1 Alternative 2 The indicates that the user has a choice between alternative 1 andalternative 2 when defining a spe
94. each other In figure 1 8 the transitions t1 and t2 are sequentially routed This means that the token in place p1 first is consumed by transition t1 then transition t1 produces a token for place p2 and then transition t2 consumes the token in place p2 and produces a token for place p3 pi t1 p2 t2 p3 OBOE O Figure 1 8 Sequential routing of transitions t1 and t2 Parallel routing In parallel routing there are transitions that are concurrently enabled without conflict In figure 1 9 there are four transitions In this figure the transitions t2 and t3 are said to be concurrently enabled and thus can be executed in parallel The transitions t1 and t4 respectively represent an AND split and an AND join which cause the part between these two transitions to be executed in parallel p2 t2 p4 E p1 t C C a t4 p6 OL S p3 t3 p5 n Figure 1 9 Parallel routing of transitions t2 and t3 By Geert Zijlmans 16 254 T U e Chapter 1 High level Petri Nets amp BPEL4WS Selective routing In selective routing a choice has to be made between several alternative continuations paths of a process In figure 1 10 two possible notations are shown In the upper notation t3 and t4 are alternative paths inside a process The upper notation explicitly defines which alternative to take depending on the firing of respectively transition t1 or t2 XOR split If transition t1 fired the transition t3 will fire and after that transition t5 cause
95. ed Sub elements are always optional Element Attribute A Comment Sub Element SE lt net gt id A Unique identifier for the net type A Default value http www petriweb org specs epnm 1 graphics SE Can be used for the graphical representation of the net name SE Can be used to name the net description SE Can be used for a description of the net id A Unique identifier for the place graphics SE Can be used for the graphical representation of the place name SE Can be used to name the place description SE Can be used for a description of the place initialMarking SE Can be used to describe the initial marking of the place type SE Can be used to indicate if the place is a normal Petri net place channel or a place for data storage store Default value is channel Table 1 2 The main EPNML elements and their attributes sub elements place By Geert Zijlmans 23 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Element Attribute A Comment Sub Element SE transition id A Unique identifier for the transition graphics SE Can be used for the graphical representation of the transition description SE Can be used for a description of the transition transformation SE Can be used to specify token transformations performed by the transition type SE Can be used to indicate if the
96. ed in Classes TU e 2eds oj s seinqune piepuers 4uonipuoguonisuen wenyu lt eoun0s gt omn aE L sainquye puepuey 92uonbos lt uBisse gt n seinqune piepugis IMUN 405 Meu L sanqune p epueys eIqeueAinej euieNinej senqune piepuens lt au gt seinqune p epuer Moy sequne puepugis seinqune pyepugis duos L uonipuoo ases edoos lt ojesuaduio2 AyAnoe a18eq senqune pyepugis seinqune puepuejs aougjsujajeaio KyAngoe pounjyonags seinqune pzepugs uos seinqune prepuer uonipuo enm seiquae prepueis gouesujeyeau ids seinqune prepuey Sigezyeuessseooyeiggue odo s Figure D 1 continued The BPELAWS class diagram 111 254 Geert Zijlmans By T U e Appendix E The Translation Model Appendix E The Translation Model By Geert Zijlmans 112 254 T U le Appendix F The Mapping Model Appendix F The Mapping Model Version 1 00 189 254 T U le Appendix G The Initial Example of BPELAWS 2003 Appendix G The Initial Example of BPEL4WS 2003 G 1 WSLL file
97. efinition of a token type As we have seen in table 2 1 there are three types available process fault and message The first of these types process describes a process instance of the process model The process instance can contain any data that is relevant to the process In our case we add the following information to our process instance to be able to maintain the information of a BPEL4WS process e Settings e Variables By Geert Zijlmans The settings in the lt process gt element of BPEL4WS that need to be preserved e g references to external definitions A variable contains a value that is needed by an activity in the process The value of this variable may alter during the run time execution of the process 45 254 T U le Chapter 2 A GML for generating BPELAWS e Correlation sets A correlation set contains a list of values one or more that is needed to distinguish the process instances amongst each other A correlation set is initialized once and cannot be reset altered elsewhere in the process Correlation sets are also used during run time execution to check if the incoming message belongs to the process instance e Links A link is in fact a sort of control to be used in a concurrent parallel execution of activities Depending on the status of a link a certain activity that uses this link may be executed skipped or may cause a fault to occur A link must be initialized before it can be used by an
98. em consists of five parts 1 The Documentation System Th this part of the Documentation System one can learn how to use how to expand and how to maintain this Documentation System Choosealetter v Choose a subject iv 2 The PN BPELAWS Tool Tn this part of the Documentation System one can find everything there is to know about the PN BPELAWS Tool e 3 BPEL4WS Tn this part of the Documentation System one can retrieve the definitions of the BPELAWS structures Also their PNML equivalent is provided 4 Petri Nets and PNML In this part of the Documentation System one can find the definitions of important Petri Nets terms Also the definitions of PNML structures are provided in this part 5 The Translation In this part the mapping of the translation from a model created with PNML Petri Nets to a model with BPELAWS is presented and explained Figure 4 1 Welcome screen of the Documentation System 18 Microsoft s Internet Explorer is chosen because of an ActiveX object Microsoft XMLDOM that is used in the toolbar section of the DS By Geert Zijlmans 92 254 TU e The hierarchy of the DS construction can be seen in figure 4 2 below which clearly shows the three sections described earlier Chapter 4 Documentation System Documentation System index html frame title frame toolbar 9 toolbar html loads K index xmi uses E index css frame content items uses E documentation xsl uses uses
99. ems which mainly consists of courses in process modeling and database techniques My other area is Visualization which mainly consists of courses about the displaying of abstract data graphically in such a way that it becomes understandable for a person have always enjoyed my study at the Eindhoven University of Technology mainly thanks to the teachers that were superior in comparison with the teachers at the Fontys Hogeschool Eindhoven can sincerely say that my knowledge of computer science has grown from the moment that started this study After two years of study could start with my graduation assignment of which this thesis is a result That is why want to thank some persons that have played a role in my graduation assignment and career at the Eindhoven University of Technology These persons are in a random order e Natalia Sidorova PhD Supervisor and member of my graduation committee e Natalia loustinova PhD Member of my graduation committee e Prof Paul De Bra PhD Member of my graduation committee e Reinier Post Software developer for the tool YASPER And last but not least want to thank my parents who have always supported me January 2006 Geert Zijlmans By Geert Zijlmans 6 254 TU le Introduction Introduction Graduation Assignment In the introduction of this thesis the graduation assignment hereafter abbreviated as GA is described The graduation assignment has been issued by the Ein
100. ent s translations one needs to zoom in on the hierarchical transition of a BPELAWS activity element s translation to define another BPEL4WS activity element s translation inside it Depending on the semantics of a BPELAWS activity element and the position in a BPEL4WS file the translation of that BPEL4WS activity element may be coupled to the translation of another BPEL4WS activity element The general coupling of two BPELAWS activity element s translations that are defined after each other is shown in figure 2 3 below and the general coupling of the translation of a BPEL4WS activity element that is defined inside another translation of a BPEL4WS activity element is shown in figure 2 4 below gig activity 1 next place previous us next place becomes place activity 1 activity 2 i next place P aes activiy2 Figure 2 3 Coupling between two translated activities that are defined after each other By Geert Zijlmans 50 254 T U le Chapter 2 A GML for generating BPELAWS previous activity 1 next place previous e next place place place activity 1 becomes Zoom in on activity 1 p activity 2 next place giri activity 2 next place Figure 2 4 Coupling between two translated activities of which the second one is defined inside the first one Depending on the BPEL4WS activity element that is translated one has to add places concerning communication start of event handling fault handling compensation handling creation
101. eral design decisions Graphical notation Approach for the translation Element translation Process translation Communication Process instance translation Start activities Routing Event handling Fault handling Compensation handling Termination Decisions that were made to be able to translate BPEL4WS elements to their HLPN equivalent in EPNML Description of the graphical notation used in the TM Description of the approach that has been taken when translating a BPELAWS process model Description of the translation of BPELAWS elements Description of the translation of a process Description how the communication is handled in the translation of a BPELAWS process Description of the translation of process instances Description of the translation of the start activities in a BPELAWS process Description how the routing of activities can be translated Description how the event handlers are translated Description how the fault handlers are translated Description how the compensation handler is translated How process termination works in the translation of the process 43 254 TU e Chapter 2 A GML for generating BPEL4WS General design decisions When looked at each element of the BPEL4WS language separately made some design decisions that helped me to translate each element The design decisions are displayed in table 2 1 below Design Decision
102. essage Msg p Incoming message Msg1 Message received P Msg1 Msg P 0 100 B true false Msg sg gt Z X Z gt Boolean arithmetic more than gt 18 pond lt Z X Boolean arithmetic less than or equal 18 Msg1 P i j Msg2 B Msg2 Msg2 US Result C Msg2 y Send message C Msg2 By Geert Zijlmans Figure 1 16 BPM of the Age verification WS related process of Example 1 21 254 T U e Chapter 1 High level Petri Nets amp BPELAWS 1 1 4 PNML PNML stands for the Petri Net Markup Language PNML 2003 which is an XML based language that can be used to define the graphical representation of a Petri Net model In figure 1 17 below the PNML meta model is shown in UML notation UML 2005 The meta model displays the classes that are used in the PNML standard The exact description of these classes can be found in PNML 2003 PetriNetFile ToolInfo tool Figure 1 17 The PNML meta model PNML 2003 If one wants to define a Petri Net model using the PNML standard one can use objects of these classes in the definition of the graphical representation of a Petri Net model e g an object of the top class Pet riNetrFile describes a PNML file which can contain zero or more objects of the class Pet riNet that represent the Petri Net models contained in the PNML file etc By Geert Zijlmans 22 254 T U le Chapter 1 High level Petri Nets amp BPELAWS An object
103. file contents css to the result of the transformation Figure 4 5 below displays the content of the Welcome document HTML file main html Home Last modified 06 16 2005 12 22 54 WELCOME Welcome to the Documentation System belonging to the PN BPEL4WS Tool en In this documentation system one can find items concerning the Documentation System itself the PN BPELAWS Tool e BPELAWS definitions Petri Nets amp PNML definitions and of course the mapping of the translation The documentation system consists of five parts 1 The Documentation System In this part of the Documentation System one can learn how to use how to expand and how to maintain this Documentation System 2 The PN BPELAWS Tool In this part ofthe Documentation System one can find everything there is to know about the PN BPELAWS Tool e 3 BPEL4WS In this part of the Documentation System one can retrieve the definitions of the BPEL4WS structures Also their PNML equivalent is provided 4 Petri Nets and PNML Tn this part of the Documentation System one can find the definitions of important Petri Nets terms Also the definitions of PNML structures are provided in this part 5 The Translation In this part the mapping of the translation from a model created with PNML Petri Nets to a model with BPELAWS 1s presented and explained Figure 4 5 The section Content of the DS containing the Welcome document By Geert Zijlmans 95 254 T U e Cha
104. files are used internally by the Oracle BPEL Process Manager One needs to create three files for a single BPELAWS process e Project file This file contains information about the project and has a standard form as described in code 3 1 below The file always is named project lt xml version 1 0 encoding UTF 8 lt projectDescription gt lt name gt name of the process lt name gt lt comment gt lt comment gt lt projects gt lt projects gt lt buildSpec gt lt buildCommand gt lt name gt bpelz BPELBuilder lt name gt lt arguments gt lt arguments gt lt buildCommand gt lt buildSpec gt lt natures gt lt nature gt bpelz BPELNature lt nature gt lt natures gt lt projectDescription gt Code 3 1 Definition of project file for a BPELAWS process e BPEL file This file contains data about the binding of partner links in the BPEL4WS file to their partner link types in the associated WSDL file s The file is always named bpel xml In code 3 2 below the standard form of this file is shown lt xml version 1 0 lt BPELSuitcase gt lt BPELProcess src name of the BPEL4WS file id name of the process gt lt partnerLinkBindings gt For each partner link that is used in the BPEL4WS process one needs to add a lt partnerLinkBinding gt element gt lt partnerLinkBinding name name of a partner link Xproperty name wsdlLocation location of the
105. format for Petri nets Authors J M E M van der Werf and R D J Post Institute Eindhoven University of Technology 14 June 2004 URL http www petriweb org specs epnml 1 1 pnmldef pdf 251 254 TU e HLPN 2000 IBM BPEL 1 2002 IBM BPEL 2 2002 IBM BPEL 3 2002 IBM BPEL 4 2002 IBM BPEL 5 2003 IBM BPEL 6 2003 IBM BPEL 7 2003 By Geert Zijlmans References High level Petri Nets Concepts Definitions and Graphical Notation Final Draft International Standard ISO IEC 15909 Version 4 7 1 28 October 2000 URL http www petrinets info docs pnstd 4 7 1 pdf Business Process with BPEL4WS Understanding BPEL4WS Part 1 Authors Sanjiva Weerawarana Francisco Curbera Company International Business Machines Corporation August 2002 URL _ http Awww 106 ibm com developerworks webservices library ws bpelcol1 Business Process with BPEL4WS Learning BPEL4WS Part 2 Author Rania Khalaf Company International Business Machines Corporation August 2002 URL http www 106 ibm com developerworks webservices library ws bpelcol2 Business Process with BPEL4WS Learning BPEL4WS Part 3 Authors Matthew Duftler Rania Khalaf Company International Business Machines Corporation October 2002 URL http www 106 ibm com developerworks webservices library ws bpelcol3 html Business Process with BPELAWS Learning BPELAWS Part 4 Author Nir
106. ge that when changes are made to the BPEL4WS specification BPEL4WS 2003 one only has to update a translation which is affected by the changes In this way my GML can remain consistent even when changes are made to the BPEL4WS specification Yet there is a little drawback in my GML which is that if a process needs to be terminated one has to check all couplings in the WS related process model concerning the correct termination of the whole process The same holds for the fault handling The TM handles MM and PN BPEL4WS Tool could be the basis of a standard plug in for other BPM tools that want to translate a BPEL4WS process to its HLPN form and vice versa If another tool wants to create a plug in then the TM and MM provide enough information concerning the translation and mapping of a WS related process as described in this thesis and the PN BPEL4WS Tool s classes of the handles BPEL4WS elements WSDL elements and EPNML elements can be reused in the creation of the plug in By Geert Zijlmans 99 254 TU le Conclusion On the basis of the results of this GA can make several recommendations concerning EPNML YASPER and BPEL4WS First some recommendations concerning EPNML and YASPER which have already been handed over to Reinier Post who is one of the authors of the EPNML specification EPNML 2004 and a software developer of the tool YASPER at the TU e e The fill element of PNML is not supported by EPNML It would be nice to supp
107. h the Translation Model and Mapping Model form the GML By Geert Zijlmans 11 254 TU le Introduction Chapter 3 PN BPEL4WS Tool Another result of the GA is an application that one can use to develop WS related processes using the GML of this research the PN BPEL4WS Tool The tool can only be used to model a WS related process This means that the validation and simulation of the model must occur in another tool For this fact a model created in the PN BPEL4WS Tool can be saved to its High level Petri Nets form and to its BPEL4WS form which can be used in a tool that is capable to validate and or simulate the model The purpose of the third chapter of this thesis is to give the reader a quick introduction to this tool and to show possible steps for validation simulation of a model created in this tool Chapter 4 Documentation System The Documentation System is a kind of reference manual of this GA It contains the most important information about the GA The specifications of BPELAWS WSDL and EPNML the Translation Model and Mapping Model and manuals of the PN BPELAWS Tool The purpose of this chapter is to give the reader an impression of what the Documentation System is and what kind of information can be found in the Documentation System Conclusion This part of the thesis is a concluding chapter in which several conclusions are made about the GA and its related topics This part also describes several recommendations that are base
108. hase Code 2 7 Definition of the process element in the initial example In the process element above the default settings for a BPELAWS process are taken which means that the attributes that are omitted in the definition above have the following values e queryLanguage httpz www w3 org TR 1999 REC xpath 19991 116 e expressionLanguage http Avww w3 org TR 1999 REC xpath 19991116 e SuppressJoinFailure no e enablelnstanceCompensation no e abstractProcess no The graphical representation of this process element is shown in figure 2 21 below Process Process Process purchaseOrderProcess purchaseOrderProcess purchaseOrderProcess start active end Activate Stop lt process gt PI purchaseOrderProcess purchaseOrderProcess Figure 2 21 Translation of the process element of the initial example By Geert Zijlmans 66 254 T U le Chapter 2 A GML for generating BPELAWS Step 6 Translate all communication ports In the initial example there are four partner links defined which are shown in code 2 8 below lt partnerLinks gt lt partnerLink name purchasing partnerLinkType lns purchasingLT myRole purchaseService gt lt partnerLink name invoicing partnerLinkType Ins invoicingLT myRole invoiceRequester partnerRole invoiceService gt lt partnerLink name Shipping partnerLinkType Ins shippingLT myRole shippingRequester partnerRole shippingService lt partnerLink n
109. he process element Default this is XPath version 1 0 XPath 1999 e The use of storage possibilities for data which has to be stored temporarily e Assignments to storage facilities The following XPath expressions can be used in BPELAWS e Boolean expression This kind of expression is indicated in a definition by boolean expression This is an expression that results in a Boolean value e General expression This kind of expression is indicated in a definition by general expression This is an expression that results in a value that is either a number a string or a Boolean e Duration expression This kind of expression is indicated in a definition by duration expression This is an expression that results in the value true when a certain time period defined by the expression has passed e Deadline expression This kind of expression is indicated in a definition by deadline expression This is an expression that results in the value true when a specified moment in time is reached BPELAWS provides the variable element that can be used to define a temporary storage of data A BPELAWS variable must be of one of the following types e messageType A WSDL WSDL 2001 message type e type An XML Schema XSD 2004 simple type e element An XML Schema element Note An XML Schema complex type must be associated with element to be used by a BPELAWS variable Finally BPELAWS provides
110. he possible ages for a person e The marking 1 16 219 of a place means that there are three tokens present in that place upon initialization of the BPM one of having the value 16 and two having the value 19 Note The meaning of a token in this place could be the following it represents a person having the age that equals the value Denied persons a Marking P Figure 1 12 A place Denied persons having place type P and marking 1 1642 19 By Geert Zijlmans 18 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Token The second extension for a place implies that a token can be typed This means that a token can represent a complex structure of data This is a major advantage over Classical Petri Nets where tokens simply represented something Now tokens can have an identity in the BPM and contain data which can be used altered by transitions in the process A token always is related to a type definition of the place it belongs to This means that prior to marking a place the used type has to be defined A typed token is often referred to as a colored token because often tokens of a particular identity are drawn by the developers as colored dots instead of the definition of the multi set like 1164219 In figure 1 12a below the marking of the place Denied persons of figure 1 12 has been altered into three tokens of which a red token defines the value 16 and a green token defines the value 19 Denied
111. he time it was created The extension of transitions with time can be used for two possible transition conditions in this GA e Atransition condition containing a duration expression which means that the transition only can fire after a specified period of time e A transition condition containing a deadline expression which means that the transition fires as soon as a specified moment in time has been passed A transition of one of the above described kinds has some kind of wait functionality which iteratively reads the current time from the calendar until the transition condition results to true and then fires Figure 1 21 displays how a transition could be extended in this way where A is a duration or deadline expression of the transition Alarm calendar LL Figure 1 21 Graphical representation of an alarm transition By Geert Zijlmans 26 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Hierarchies Petri Nets extended with hierarchies improve the readability of a BPM A hierarchy in a Petri Net model describes an activity in which other activities may be nested EPNML EPNML 2004 already supports this extension using the lt page gt element of PNML In figure 1 22 a possible graphical representation of a hierarchy h1 is shown where e Places p1 and p2 are outside the hierarchy h1 e Place rp1 inside the hierarchy h1 refers to place p1 outside the hierarchy h1 and place rp2 inside the hierarchy h1 refers to
112. his chapter the Documentation System hereafter abbreviated as DS is described in short The DS is a side result of the GA which means that originally it did not belong to the planned result of the GA The DS has been created to support the GA s result The first four subjects described below cover the main topics of the GA The DS consists of a set of documents that are related to the GA The DS contains information about the following five subjects 1 The BPELAWS amp WSDL specifications This part of the DS contains information about the BPEL4WS specification and the WSDL specification 2 The GML of HLPN in this GA and the use of EPNML This part of the DS describes the graphical notation of HLPN as it is used in this GA Also one can find information about the EPNML standard that is used in this GA to define the graphical representation of a BPEL4WS process 3 The Translation Model and the Mapping Model In this part one can get information about the Translation Model and the Mapping Model of the GA The user of the DS can use this part for the following three purposes a Totranslate a BPELAWS process to its graphical HLPN form manually by using the Translation Model b To develop a BPEL4WS process and its graphical representation manually by using the handles in the Mapping Model c Reference material 4 The PN BPEL4WS Tool In this part of the DS one can find information about the PN BPELAWS Tool The following information is provided
113. ia a reset arc and producing a token inside the termination places of the hierarchical transitions e g as can be seen in figure 2 19 above One can terminate a process by using the terminate activity element This activity element should produce a token in the reference place of the place Process terminate in the hierarchical transition it belongs to This means that once a terminate activity element is used one must add a reference place to the place Process terminate for the scope the activity element belongs to and each parent scope of that scope Figure 2 20 below displays the termination of a certain scope B previous previous place place terminate F Zoom Terminate all activities Reference to Reference to termination termination place of the place of the process process B end B end Figure 2 20 Termination of the process from a scope B Note The termination of a process can only be implemented for processes that do not represent an abstract process as is defined in BPELAWS 2003 If a sub process needs to be halted then the Main activity of that sub process must halt all its activities as soon as possible This means that when a fault occurs the fault handler will initiate the halting of the sub process Main activity In general a place is added to the basis construction for the translation of a BPEL4WS activity element which should halt the activities inside the hierarchical transition of th
114. ich are used to exchange messages between the process and other processes This is where the translation for a COM port starts One can have the following two kinds of communication patterns in a BPEL4WS process e One way An activity in a process only sends a message to another process in the business process e Request Response An activity in a process sends a message request to another process and the other process eventually sends a message response back In figure 2 7 below the COM ports are described from two angles e My role fig 2 7 a This angle describes that the COM ports belong to my process In case the interaction pattern is a One way interaction pattern then only the COM port describing the input is used In the other case also the output and fault COM ports are used e Partner role fig 2 7 b This angle describes the opposite situation In this situation the COM ports belong to a process with which my process communicates Note The incoming messages have to be copied for the main process and each event handler that is in use by the process The emitor and collector are there to respectively generate and eat tokens when a process is not coupled to another process in the same business process Also note the arc with the black dot at the end this is called an inhibitor arc which has the following meaning the transition can only fire when the place connected to it has zero tokens residing
115. in this part of the DS a user manual and a technical manual 5 The Documentation System In this part of the DS one can find information about the DS itself Information about the following topics can be found in this part a How to use the DS b How to maintain the DS c How to expand the DS In this chapter the following topics concerning the DS are described e Audience Describes the kind of audience that is expected to use the DS e Purpose Describes some cases in which the DS can be used e Construction Describes the construction of the DS e Maintenance amp expansion Describes how to maintain amp expand the DS e A quick tour Describes in short how to use the DS By Geert Zijlmans 90 254 TU e Chapter 4 Documentation System 4 2 Audience The kind of audience that is expected to use the DS is the kind of audience that wants Direct access to topics concerning the research area of the GA To create a graphical representation of a BPEL4WS process To translate a BPEL4WS process to its EPNML equivalent Background information when using the PN BPEL4WS tool Information about the GA Another kind of audience could be the kind of audience that needs a quick access to information on this GA to start a new research on the basis of this GA 4 3 Purpose In the first place the purpose of this DS is to provide the user of the PN BPEL4WS Tool or someone who is interested in the GA with quick access
116. ind such a way of translating the elements that no information about the BPEL4WS process would be lost Classical Petri Nets PN 1962 do not have enough expressive power to represent all the information that was in a BPEL4WS process hence the choice for High level Petri Nets HLPN 2000 was made HLPN support the modeling of more complex structures which means that more information could be preserved The next step in the translation of the elements of BPEL4WS was to find patterns in the translated elements and to see if these patterns could be reused 7 The tutorial starts with IBM BPEL 1 2002 and continues from there on till IBM BPEL 8 2003 The Oracle BPEL Designer http otn oracle com bpel has its own GML for generation of BPEL4WS processes http www informatik uni hamburg de TGI PetriNets tools quick html 10 http Awww alphaworks ibm com tech bpws4j By Geert Zijlmans 10 254 TU le Introduction These patterns were found and their use improved the readability of the translations drastically Finally these translations have become part of the Translation Model see Chapter 2 and Appendix E which translates a BPEL4WS to its High level Petri Nets equivalent The next thing that wanted was to have the capability to validate and simulate a translated BPEL4WS process that was the result of the Translation Model This meant also had to translate each BPEL4WS element to a form that was understandable for the tools to wor
117. ing ee invoicingLT invoiceRequestgt m i COM shipping invoiceCallbagkPT OM scheduling 1 shippingLT sendinvoice S a bred ing l peeauenices aio nabrvice n sequence input 1 M schedulingSeny t si rad 1 end sequence s scheduling requestShipping 2end H send i 1 fault cannotCompfeteOrder ing 1 EH 1 pirchassOrdarProcaan j a aseOrderProcess Lon x start COM shipping shippingLT shippingRequester m shippingCallbackPT sendSchedule input flow terminate flow end Flow end flow 1 flow 1 end terminate Figure G 7 Zooming in on the flow 1 element of figure G 5 By Geert Zijlmans 244 254 TU e COM shipping shippingLT shippingService p shippingPT requestShipping input COM shipping shippingLT shippingService p shippingPT requestShipping output COM shipping shippingLT shippingService p shippingPT requestShipping fault cannotCompleteOrder COM shipping shippingLT shippingRequester m shippingCallbackP sendSchedule input By Geert Zijlmans Appendix G The Initial Example of BPEL4WS 2003 sequences 1 terminate PI purchaseOrderProcess z lt sequence gt assign 1 aie terminate invoke 1 terminate I purchaseOrderProcess FH purchaseOrderProcess start receive 8 terminate M 83 sequences srecefve gt 2 PI sequence end i end purchaseOrderProcess Figure G 8 Zooming in on the lt sequence gt 1 eleme
118. ink in BPELAWS is shown in code 1 10 below lt partnerLink name name partnerLinkType name of a partnerLinkType myRole name of a role partnerRole name of a role Code 1 10 Definition of the partnerLink element for BPELAWS BPELAWS 2003 When an activity of a BPELAWS process needs to communicate with another process the activity needs to define a partner link a port type and an operation it uses Oddity Why not use the name of the role instead of the name of the port type in the specific activity that needs to communicate with another process By Geert Zijlmans 36 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS In BPEL4WS the following activity elements are related to communication e The activity element receive e The activity element reply e The activity element invoke e The activity element pick Also the event handlers in a BPELAWS process may use communication for the triggering of events in the process This happens in the same way as it is done in the pick activity element except for the fact that a defined pick activity can only happen once in the execution of the BPELAWS while the event handlers continuously listen for incoming messages to trigger events Data handling Another subject in BPELAWS is the handling of data BPELAWS provides the following ways of data handling e The use of expressions depends on the expressionLanguage attribute of t
119. ith HLPN e PNML Description of the Petri Net Markup Language e Extensions Description of HLPN extensions that are used in this GA The fields of application for Classical Petri Nets and HLPN include HLPN 2000 e Requirements analysis Development of specifications designs and test suites Descriptions of existing systems prior to re engineering Modeling business and software processes Providing the semantics for concurrent languages Simulation of systems to increase confidence Formal analysis of the behavior of critical systems e Development of Petri Net Support Tools In this GA the use of the modeling language HLPN focuses on the modeling of business processes 1 1 1 Classical Petri Nets The modeling language that has been defined by C A Petri in 1962 is now known as the modeling language Classical Petri Nets PN 1962 Classical Petri Nets can be used to describe simple processes and systems When one looks at a Classical Petri Net model in its graphical form see the small example in figure 1 1 below one notices that it is a graph in which there are two different kinds of nodes one is called places elliptical and the other one is called transitions rectangular These nodes are connected to each other via directed arcs A developer can use these places transitions and arcs to develop a BPM Start Process End OLIO Figure 1 1 Example using the GML of Classical Petri Nets In this subsection the modeling lang
120. ity 1 Sequence F terminate terminate Activity 1 sequences F Zoom Sequence terminate Activity 2 Activity 2 next place terminate next place Figure 2 16 The lt sequence gt activity element with two activities By Geert Zijlmans 62 254 TU e previous place flow gt F next place Chapter 2 A GML for generating BPEL4WS In figure 2 17 below a lt flow gt activity element is used to indicate that the two activities should be executed concurrently If another activity would be added to the same lt flow gt activity then another branch will be created in the hierarchical transition of the lt flow gt activity element in the same way as is done for the other activities Also notice that the previous place and the next place of each activity should refer to respectively the start place and the end place of the branch the activity belongs to previous place Flow F terminate Flow start Zoom Activity 1 Activity 2 Activity 2 terminate Activity 1 terminate Flow F terminate next place Figure 2 17 The lt flow gt activity element with two activities The switch activity element needs some more attention In the switch activity element one can define several case s Each case describes a path in the selective routing A case contains a condition that has to be met before the process can continue in the direction of the case In the sit
121. k ncname role myRole partnerRole operation variable ncname createInstance yes no standard attributes standard elements correlations correlation set initiate lt correlations gt lt receive gt Code C 3 Altered definition of a receive activity element Note The use of the value partnerRole for the attribute role might seem a bit strange in the example above but one can imagine that one has an asynchronous message exchange between two processes in which prior to the receiving communication activity an invocation of the other process has taken place In that case one might expect an answer in an output communication port of that process The recommendations about BPEL4WS have been sent to the editor Satish Thatte of the BPEL4WS specification By Geert Zijlmans 101 254 TU e Appendices APPENDIX A LIST OF TERMS Appendices APPENDIX B LIST OF ABBREVIATIONS APPENDIX C BPEL4WS IN BACKUS NAUR FORM APPENDIX D BPEL4WS DIVIDED IN CLASSES APPENDIX E THE TRANSLATION MODEL APPENDIX F THE MAPPING MODEL APPENDIX G THE INITIAL EXAMPLE OF BPELAWS 2003 G 1 WSDL FILE G 2 BPEL4WS FILE G 3 TRANSLATION OF THE EXAMPLE USING THE TM By Geert Zijlmans 102 254 97 97 97 97 97 97 97 97 97 T U le Appendix A List of Terms Appendix A List of Terms Atomic activity Seen through the eyes of the developer of the
122. k with chose EPNML because it is an application of the PNML standard and EPNML can be used by YASPER When developing the translation of the graphical model to EPNML I noticed that was losing information of the process instance and messages and because of this introduced new extensions to EPNML which can be done using the toolspecific element of PNML Thanks to these new extensions no information was lost The next step was to retrieve standard patterns handles from the Translation Model which one can use to create a WS related process model This meant had to group the translated elements of BPELAWS according to their purpose in a WS related process After the grouping of the translated elements created a Mapping Model see Chapter 2 and Appendix F which one can use to create a WS related process model using these handles All together the Translation Model handles and Mapping Model describe the GML of this research Since had to make extensions to the EPNML standard needed to build a tool which was capable of showing these extensions and also was capable of applying the Translation Model and Mapping model and the use of the handles This resulted in the PN BPEL4WS Tool Chapter 3 of this thesis gives an introduction to the use of the PN BPEL4WS Tool As an extra also created a Documentation System which holds the most important information related to this GA Layout of the Thesis This subsection gives a sh
123. l a process as far as know there is no tool that supports this GML by Weinberg 14 http www yasper org By Geert Zijlmans 41 254 TU e Chapter 2 A GML for generating BPEL4WS 2 2 1 Creating the Translation Model As described in the introduction of this chapter the first step to the creation of the TM was the translation of all BPEL4WS elements with all possible attributes and all possible sub elements To start with this translation a point of view had to be taken considering the modeling of a business process In my opinion there are two kinds of modeling e Looking at all communicating processes together and considering them as one process that has to be translated e Looking at each communicating process in the business process separately which when all translated must be coupled compositional use the second kind of modeling because BPEL4WS also uses this kind of modeling where the actual coupling between the separate BPEL4WS processes is defined in the associated WSDL file s When a process in the business process model changes one only has to change that process model and not the whole business process as would be the case in the first kind of modeling provided that the communication stays the same between the changed process and the other processes in the business process model The first approach to translate the BPEL4WS elements to their graphical HLPN form was a rough translation of the initial example of th
124. lt Default PI x purchaseOrderProcess Me cra FH terminate reply COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchase Order fault cannotCompleteOrder purchaseOrderProcess end purchaseOrderProcess terminate Zoom in on lt reply gt catch cannotCompleteOrder POFault purchaseOrderProcess COM purchasing Send Fault purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder fault cannotCompleteOrder purchaseOrderProcess end Figure 2 23 Translation of the lt faultHandlers gt element of the initial example By Geert Zijlmans 70 254 TU e Chapter 2 A GML for generating BPEL4WS Note The extra check in the lt faultHandlers gt element s translation for the scope has been left out of the translation because the lt faultHandlers gt element belongs to the scope of the process itself Step 9 Translate the event handlers There are no event handlers defined for this example this also means that the incoming messages do not need to be distributed for each event that uses the incoming message and the process itself Step 10 Translate the compensation handler There is no compensation handler defined for this example Step 11 Translate the main process In the main process the following happens for translations see G 3 1 Receive a message via the COM port of partner link purchasing and storing it in the variable Po 2 Concurrent execution of three
125. lt branch is executed If the default branch is not defined then an empt y activity element is executed e while This activity element provides a construct that iterates a basic control process until the given iteration condition evaluates to false e all This activity element contains zero or more actions or basic control processes which are executed concurrently e pick This activity element is an event handler which allows the process to wait for the occurrence of a particular event and then executes the basic control process defined for the specific event By Geert Zijlmans 28 254 T U le Chapter 1 High level Petri Nets amp BPELAWS XLANG also provides means for exception handling raising errors duration and deadline expiration compensation activities In code 1 4 below the example of the XLANG specification is given which models the interaction behavior of a stock quote provider In this example it is easy to see the behavior of the WS related process it defines XLANG part is defined in bold e First it performs the operation AskLastTradePrice of the port pGet Request where it waits for a request to arrive for retrieving the last trade price for a certain stock The attribute activation informs if the action initializes the behavior for the WS related process e Second it performs the operation SendLastTradePrice of the port pSendResponse where it sends the last trade price of the requested stock to
126. mal Mukhi Company International Business Machines Corporation November 2002 URL http www 106 ibm com developerworks webservices library ws bpelcol4 Business Process with BPELAWS Learning BPELAWS Part 5 Authors Matthew Duftler Francisco Curbera Rania Khalaf Company International Business Machines Corporation March 2003 URL http www 106 ibm com developerworks webservices library ws bpelcol5 Business Process with BPELAWS Learning BPELAWS Part 6 Authors Rania Khalaf William A Nagy Company International Business Machines Corporation March 2003 URL _ http Awww 106 ibm com developerworks webservices library ws bpelcol6 Business Process with BPEL4WS Learning BPEL4WS Part 7 Authors Rania Khalaf William A Nagy Company International Business Machines Corporation April 2003 URL _ http Awww 106 ibm com developerworks webservices library ws bpelcol7 252 254 TU e IBM BPEL 8 2003 IBM WS I 2002 ORACLE 2004 PNML 2003 ResetPN 1989 TPN 1998 UML 2005 WBERG 2003 By Geert Zijlmans References Business Process with BPEL4WS Learning BPEL4WS Part 8 Authors Rania Khalaf Nirmal Mukhi Company International Business Machines Corporation May 2003 URL http www 106 ibm com developerworks webservices library ws bpelcol8 Transactions in the world of Web Services Part 1 Authors Tom Freund and Tony Story
127. model it can only receive tokens of the kind defined by the lt tokenType gt element To add a token type restriction to a place one simply adds the following piece of code between the lt place gt tags lt toolspecific tool PN BPELAWS version 1 0 gt lt tokenType gt Name of a token type lt tokenType gt lt toolspecific gt Code 2 5 Definition of a token type restriction inside a place Coloring of places lt i11 gt As described in table 2 1 make a distinction between six different kinds of places To show this distinction graphically added a color to a place The PNML definition provides a ill element that can be used inside a graphics element to describe the internal color of a place transition or arc use this element for the definition of special places in my model The following piece of code has to be inserted between the lt graphics gt tags of a place toolspecific tool 2 PN BPELAWS version 1 0 gt fill color CSS2 color toolspecific Code 2 6 Definition of the 111 element for a place By Geert Zijlmans 47 254 T U le Chapter 2 A GML for generating BPELAWS Graphical notation Table 2 2 shows the graphical notation that is used in my translation of BPELAWS elements to their equivalent in HLPN Element ERE B e C Q o Place types type channel in EPNML a yellow The place belongs to i main activity of the process b red The
128. must fire immediately without any delay When simulating a net that uses urgent transitions the following situations can occur e Anurgent transition is concurrently enabled with a normal transition In this case the urgent transition fires before the normal transition After that the normal transition may fire under the condition that there are no urgent transitions left that are enabled and that there are still enough tokens left for its firing e Two or more urgent transitions are concurrently enabled In this case a non deterministic choice is made between the firing of these urgent transitions By Geert Zijlmans 27 254 T U le Chapter 1 High level Petri Nets amp BPELAWS 1 2 BPELAWS If you are already acquainted with Business Process Execution Language for Web Services BPELAWS BPEL4WS 2003 then you can skip this subsection This subsection describes the most important definitions and features of the modeling language BPEL4WS in an informal way It can be used by the experienced reader to refresh his her knowledge about BPELAWS or for a novice reader to get an introduction into the world of BPEL4WS This subsection contains the following topics about BPELAWS e History A little bit about the history of BPELAWS e BPELAWS Description of BPEL4WS e Process Design with BPELAWS Example of a simple WS related process modeled with BPELAWS 1 2 1 History BPELAWS is a merge of two competing modeling language standards
129. n EPNML EPNML 2004 Reset arcs A reset arc is a special arc type that is used in reset nets ResetPN 1989 The meaning of the reset arc is different from a normal input arc the place connected to a transition by a reset arc loses all its tokens when the transition fires The transition can fire even when there are no tokens inside the place In this GA the reset arc is used when terminating halting a process in order to clear the model of tokens that have become obsolete tokens of the process that is terminated halted Figure 1 20 below shows the graphical representation of a reset arc between a transition t1 and a place p1 E O Reset arc Figure 1 20 Graphical representation of a reset arc The EPNML definition of a reset arc see code 1 3 is equal to the definition of a normal arc except for the piece of code that defines the type of the arc arc id arcID source sourceID target targetID lt type gt lt text gt reset lt text gt lt type gt lt arc gt Code 1 3 Definition of a reset arc Time Petri Nets extended with time are called Timed Petri Nets which already exist and are described in TPN 1998 by J Wang In this GA the notion of time is added via a special place called calendar A calendar is a store that always contains the current time in the model In this GA time can be used in a transition to form a timer alarm trigger and to provide each process instance with a value representing t
130. n of a compensation handler can be seen in figure 2 13 below Reference to CHB CH B start CH B PI terminate Reference to CH B start CH B PI Activate CH CHB Zoom CHB terminate Activity Reference to CH B end Activity terminate CH terminate Reference to CH B end Figure 2 13 The translation of lt compensationHandler gt element of a scope B Note In the translation above the compensation handler can also be terminated This can only happen when scope B does not equal the scope of the lt process gt Start activities A BPEL4WS process must be initiated by a start activity A start activity creates a new process instance of the process and activates the event handlers of the process The BPEL4WS specification BPEL4WS 2003 also describes that no other basic activities may precede a start activity than similarly annotated lt receive gt activities In my opinion this logically has the following consequence it may be preceded by any other structured activity In case one of the structured activities lt switch gt or lt while gt precedes a start activity problems might occur because of the use of non initialized variables this is not mentioned in the BPEL4WS specification The BPEL4WS process offers us the following start activities e lt receive gt activity This basic BPEL4WS activity element describes the waiting for a certain message to arrive defined by its attributes e lt pick g
131. n performs compensation activities e g undo actions All activities of the scope of the compensation handler must have completed normally Figure 2 6 zooms in on the hierarchical transition of a process like that of figure 2 5 for which event handling EH A fault handling FH A and platform specific compensation handling CH A has been defined In this figure one can clearly see the four sub processes described above Also in this figure the communication ports for the input and output of the Web Services related process are shown yet the calendar and the use of process instances in the handlers are not shown but can be present Process A Process A i a A z Process terminate communication active PLA terminate port input Activity Main activity terminate communication EH A start port output Activity stop CH A start FHA terminate CHA EH A terminate CH amp end Figure 2 6 The four sub processes of a BPELAWS process and their relations By Geert Zijlmans 52 254 T U le Chapter 2 A GML for generating BPELAWS When the process given in figure 2 6 is simulated the process starts with two tokens e Aprocess token in the place Process A active which represents a process control for the business process manager e A message token in the place communication port input which represents the place of incoming message that initiates a new instance of the process The next
132. ndled In parallel activities it proved to be difficult to model a process instance with the most recent process instance values By modeling a store that contains all process instances of a certain type this problem is solved store must use the lt tokenType gt tag containing the token type of the process Activities now can use this store to create read and update process instances Table 2 1 Design decisions when translating BPEL4WS elements to their HLPN equivalent By Geert Zijlmans 44 254 TU e Design Decision Adding color to places to specify special places Urgent transitions Chapter 2 A GML for generating BPEL4WS Comment In the HLPN translations of BPEL4WS elements there is a need for defining special places e g for fault handlers of a process Each special place is indicated by a certain color that is in conformance with CSS2 CSS2 1998 as is defined in the PNML definition PNML 2003 A place can get a color via the lt graphics gt sub element To this element the i11 element is added of the PNML definition thus is an extension to EPNML The following colors are defined for my translation e yellow The place belongs to the main activity of the process red The place belongs to a fault handler green The place belongs to an event handler orange The place belongs to a compensation handler purple The place is a communication port hereafter called COM port A COM port in this model is
133. ng a Add the controls links to the process instance b Insert three sequential routings for activities inside the scope of the parallel routing i First sequential routing 1 Insert an assignments handle with one lt copy gt action 2 Insert an invoke handle with Request Response interaction pattern Also enable the link snip to invoice 3 Insert a receive handle without instance creation Also enable the link ship to scheduling ii Second sequential routing 1 Insert an invoke handle with One way interaction pattern 2 Insert an invoke handle with One way interaction pattern which can only be executed when the link ship to invoice is enabled 3 Insert a receive handle without instance creation iii Third sequential routing 1 Insert an invoke handle with One way interaction pattern 2 Insert an invoke handle with One way interaction pattern which can only be executed when the link ship to scheduling is enabled 5 Insert the handle reply response handle 6 Create fault handlers for the process scope a Insert anormal fault handlers handle with default case b Add a catch to the fault handlers for the process scope In the rest of this subsection each step described above is described in detail Step 1 Create begin of the process In this step the empty process is created In this step one also defines if th
134. ng of processes One that forms a basis for most of the other modeling languages is Petri Nets which has been discovered and defined by C A Petri in 1962 PN 1962 Nowadays many extensions have been made to this modeling language of which High level Petri Nets has become an international standard HLPN 2000 The language is extremely suitable for defining complex processes It also has a standard graphical modeling language GML defined for it which speeds up the development of a model in this language Since the revolution of the Internet and other networks more and more automated business processes use the capability of communicating with each other without the intervention of people A fairly new language that has been developed by Microsoft IBM SAP BEA Systems and Siebel Systems is the language Business Process Execution Language for Web Services BPELAWS BPEL4WS 2003 which can be used for the modeling of formal specifications of business processes and business interaction protocols BPELAWS uses the Web Services Standards as a black box for communication between business processes BPELAWS is an XML based modeling language for which no standard GML exists yet That is why the TU e issued a research of which the assignment runs as follows and this thesis is a result Create a graphical modeling language based upon Petri nets semantics It should be easy to transform models in this language to Business Process Execution Language
135. ngRequest part customerInfo copy assign By Geert Zijlmans 238 254 T U le Appendix G The Initial Example of BPELAWS 2003 invoke partnerLink 2 shipping portType l1ns shippingPT operation requestShipping inputVariable shippingRequest outputVariable 2 shippingInfo source linkName ship to invoice invoke receive partnerLink shipping portType l1ns shippingCallbackPT operation sendSchedule variable shippingSchedule gt source linkName ship to scheduling gt lt receive gt lt sequence gt lt sequence gt lt invoke partnerLink invoicing portType Ins computePricePT operation initiatePriceCalculation inputVariable PO lt invoke gt lt invoke partnerLink invoicing portType lns computePricePT operation sendShippingPrice inputVariable shippingInfo gt target linkName ship to invoice gt lt invoke gt lt receive partnerLink invoicing portType Ins invoiceCallbackPT operation sendInvoice variable Invoice gt lt sequence gt lt sequence gt lt invoke partnerLink scheduling portType ins schedulingPT operation requestProductionScheduling inputVariable PO invoke invoke partnerLink scheduling portType lins schedulingPT operation sendShippingSchedule inputVariable shippingSchedule gt lt target linkName ship to scheduling gt lt invok
136. ns http schemas xmlsoap org ws 2003 03 business process lt partnerLinks gt partnerLink lt partnerLinks gt lt partnerLink name ncname partnerLinkType qname myRole ncname partnerRole ncname lt partners gt partnert lt partners gt i partner name ncname partner partnerLink t lt partner gt 105 254 T U e Appendix C BPELAWS in Backus Naur Form artner partnerLink lt partnerLink name ncname variables Di variables variable t variables variable Di variable name ncname var type gt var type Di messageType qname type qname lement qname correlationSets Di lt correlationSets gt correlationSet lt correlationSets gt correlationSet lt correlationSet name ncname properties qname list eventHandlers lt eventHandlers gt onMessage onAlarm onMessage onAlarm lt eventHandlers gt onMessage 235 lt onMessage partnerLink ncname portType qname operation ncname variable ncname correlations activity lt onMessage gt onAlarm i lt onAlarm for duration expr until deadline expr gt activity lt onAlarm gt compensationHandler t lt compensationHandler gt activity lt compensationHandler gt faultHandlers lt lt faultHandlers gt catch catchAll lt faultHandlers gt catch catch faultName qname faultVariable ncname
137. nt of figure G 7 purchaseOrderProcess Copy 1 Figure G 9 Zooming in on the lt assign gt 1 element of figure G 8 245 254 T U e Appendix G The Initial Example of BPEL4WS 2003 COM shipping invoke 1 i shippingL terminate shippingService p shippingPT purchaseOrderProcess Send request Invoke RR terminate COM shipping shippingLT shippingService p shippingPT requestShipping fault cannotCompleteOrder FH purchaseOrderProcess COM shipping shippingLT shippingService p shippingPT requestShipping output H purchaseOrderProcess Update link status start FH purchaseOrderProcess Figure G 10 Zooming in on the lt invoke gt 1 RR element of figure G 8 COM shipping shippingLT shippingRequester m shippingCallbackP sendSchedule input Recieve message sreceive gt 2 lt receive gt terminate inire PI purchaseOrderProcess Update link status Figure G 11 Zooming in on the lt receive gt 2 element of figure G 8 By Geert Zijlmans 246 254 TU e COM invoicing invoicingLT invoiceService p computePriceP T initiatePriceCalculation input COM invoicing invoicingLT invoiceService p computePriceP T sendShippingPrice input COM invoicing invoicingLT invoiceRequester m invoiceCallbackPT sendinvoice input By Geert Zijlmans Appendix G The Initial Example of BPEL4WS 2003 PI purchase
138. ntial routing handle of the main activity is shown see figure 2 26 The graphical representation of the above described sequences can be found in Appendix G 3 By Geert Zijlmans 76 254 T U le Chapter 2 A GML for generating BPELAWS Process purchaseOrderProcess active Process purchaseOrderProcess COM shipping Lurin ats shippingLT a e neon cnn Puch T a ppng A i purchaseService m edes purchaseOrderPT sendPurchaseOrder input sequences terminate n 1 PI T receives 1 purchaseOrderProcess z shippingService p shippingPT a shippingRequest d output COM shipping A shippingL n shippingService p d shippingPT shippingRequest fault cannotCompleteOrder COM shipping shippingLT shippingRequester m shippingCallback sendSchedule input COM invoicing invoicingLT invoiceService p computePricePT initiatePriceCalculation input COM invoicing Fhe invoicingLT purchaseOrderProcess invoiceService p start computePricePT sendShippingPrice input flow gt 1 terminate purchaseOrderProcess end COM invoicing invoicingLT invoiceRequester m invoiceCallbackPT sendinvoice input COM scheduling schedulingLT schedulingService p schedulingPT requestProduction bduling input COM scheduling schedulingLT schedulingService p schedulingPT sendShippingSchedule input Figure 2 26 One receive handle and the parallel routing handle inside
139. o describe the association between proxy operations and the operations that are used to actually realize these proxies A proxy operation is an operation that is abstractly defined for the Flow Model to be used A plug link is used in WSFL to model the interaction between remote service providers In this way one only needs to change the Global Model when changes occur at remote service providers that influence the provided operations By Geert Zijlmans 31 254 T U le Chapter 1 High level Petri Nets amp BPELAWS 1 2 2 BPELAWS As described in the introduction of this thesis BPELAWS can be used to model formal specifications of business processes and business interaction protocols and uses the Web Services standards to enable the interaction between the modeled process and other processes applications The modeling language BPEL4WS actually consists of a two components e BPELAWS An XML based modeling language that can be used to describe the process e WSDL Web Services Description Language another XML based language that can be used to define the types and interaction possibilities for a BPELAWS process This subsection describes both languages in short The description of WSDL contains only those elements that are of interest to BPEL4WS In this subsection first WSDL is described and then BPEL4WS WSDL WSDL WSDL 2001 is an XML based language that can be used for the definition of network services WSDL uses
140. odel The place with the name process name of the process start is the initial place of a process and therefore needs to get an initial token One can add this token by having your mouse pointer over this place and then perform a right click with your mouse A popup window appears from which you select add a token The place now holds a black dot inside it One can use this simulation to analyze the process model How one can analyze a model is not a part of this GA and therefore is not described in this thesis However there are books and papers that describe the analysis for a wide range of models refer to the website of the Petri Net Community on the Internet for references to these books and papers 16 http www informatik uni hamburg de TGl PetriNets By Geert Zijlmans 87 254 T U le Chapter 3 The PN BPEL4WS Tool 3 4 2 BPELAWS and Oracle BPEL Process Manager This subsection describes the simulation of a BPELAWS file with the associated WSDL file s that have been created with the PN BPEL4WS Tool It is not the purpose of this section to be a tutorial for the application Oracle BPEL Process Manager Note It is only possible to create new BPELAWS processes in the application Oracle BPEL Designer which is why do not describe it in this thesis Before the simulation can take place in the Oracle BPEL Process Manager one has to add some new files in the same directory where the BPELAWS file is located These new
141. of a class in the meta model can be translated to its PNML element using the translations provided by table 1 1 below where the type ID is a unique identifier for the PNML element in the whole PNML file and IDRef is a reference to a PNML element in the PNML file having the identifier indicated by this reference Class XML Element XML Attributes PetriNetFile lt pnml gt PetriNet lt net gt id IDO type anyURI Place lt place gt id IDO Transition lt transition gt id IDO Lid D o source IDRef Node target IDRef Node Arc arc Page page dD o RefPlace lt referencePlace gt dD OOO OS RefTrans lt referenceTransition gt id ID sss Toollnfo lt toolspecific gt Table 1 1 Translation of the PNML meta model into PNML elements PNML 2003 Note The class Graphics which describes the graphical representation of an object or annotation has been left out of the meta model because it would clutter the model PNML 2003 Primarily PNML can be used to define Classical Petri Net models but one has the possibility to extend the language with new elements by defining a Petri Net Type Definition PNTD for the new elements In the case of HLPN the PNTD has to define new elements for e g variables transition conditions and arc inscriptions In this GA EPNML EPNML 2004 is used which is an application of the PNML standard In the table below the main EPNML elements with their attributes sub elements are display
142. of the BPELAWS process using the handles of the TM and MM After that the user can modify the model Note There is one restriction to the use of an EPNML file in the tool which is that the EPNML file that is parsed must be in conformance with the TM and MM If the file is not in conformance with the TM and MM then the file cannot be loaded into the PN BPELAWS Tool and the tool gives an overview of what should be altered in the file before it can be used in the tool 3 2 3 BPELAWS and EPNML creators The third step in the creation of the tool consisted of the creation of the BPEL4WS creator and EPNML creator These creators can be used to respectively generate BPEL4WS files with associated WSDL file s and EPNML files of the set of Handle objects that is used in the PN BPEL4WS Tool Each Handle object is described in its BPELAWS form and in its EPNML form This means that when the BPELAWS creator is used the BPELAWS creator uses the BPELAWS form of each Handle object in the set in the creation of the BPELAWS files with associated WSDL file s In the case of the EPNML creator the EPNML form of each Handle object in the set is used in the creation of the EPNML file The creator uses the textual representation for each BPELAWS WSDL or EPNML object that is used in a Handle object and puts the total result of the translation in a file In the case that a Handle object contains one or more other Handle objects then the creator also calls for the
143. of the page in your browser should fix this problem By Geert Zijlmans 98 254 TU le Conclusion Conclusion The conclusion of this thesis consists of two parts In the first part a conclusion is given about the GML of this thesis and in the second part recommendations are made on the basis of the result of this GA As one can read in chapter two of this thesis the approach for creating the GML has been the translation of each BPEL4WS element separately to its form in the GML of HLPN HLPN 2000 resulting in the TM and the use of these translations as handles in the MM to develop a WS related process The choice for HLPN has been made because of the fact that the semantics and parameters attributes and sub elements of a BPEL4WS element were difficult to translate using only the GML of Classical Petri Nets The GML of HLPN has more expressive power which allowed me to translate the semantics and parameters of all the BPEL4WS elements Each BPEL4WS element has been translated on the basis of how they should work meaning that also the BPEL4WS semantics of the specific element was taken into account during the translation The translations themselves are quite simple on the level of their hierarchical transition but become more complicated when one zooms in on the hierarchical transition of a translation If one zooms in on the hierarchical transition of a translation one can see the working of the BPEL4WS element which depends on its semantics
144. onment one gets when the PN BPEL4WS Tool is started from the folder it is installed in In this environment it is not possible to model a business process BB PN BPEL4WS Tool Empty Jeg File Help BERR m Welcome to the PN BPEL4VVS Tool Figure 3 2 The Empty Environment of the PN BPEL4WS Tool e The Process Environment The Process Environment is the environment one gets when one decides to create edit a single process In this environment the user has the possibility to create a new process model from scratch or to modify an already existing process model e The Project Environment The Project Environment is the environment one gets when one decides to create edit a BPM In this environment it is possible to add modify and delete processes belonging to a single project business process To model a process one either needs to be in the Process Environment or in the Project Environment The only difference between these two environments is that in the Project Environment one has the possibility to add new processes and delete obsolete processes To change from the Empty Environment to the Process Environment or the Project Environment one needs to create a new process project or open an already existing process project By Geert Zijlmans 84 254 TU e Chapter 3 The PN BPEL4WS Tool The Process Environment and the Project Environment consist of the following main parts
145. ool are provided with the PN BPELAWS Tool itself 3 2 Construction The PN BPEL4WS Tool has been created using Borland s JBuilder 2005 The tool consists of the following parts e BPELAWS WSDL EPNML and Handle classes e BPEL4WS and EPNML parsers e BPELAWS and EPNML creators e GUI environment e Tools engine In this subsection each of the above mentioned parts are described in short except for the GUI environment part which is described in the next subsection in more detail Note For a full description of the tool s construction and functionality refer to its technical manual 3 2 1 Handle BPEL4WS WSDL and EPNML classes The first step in the creation of the PN BPEL4WS tool was the creation of a set of classes that could be used to create BPEL4WS WSDL and EPNML objects inside the tool This resulted in a one to one translation of the BPEL4WS WSDL and EPNML elements to their Java representation in classes The attributes and sub elements of an element are converted as members of the class and methods have been added to each class which one can use to access these members to create modify and delete their data Each class that describes an element also is provided with a method that can be used to translate an object of this class back to its textual form of the element 15 http Awww borland com us products jbuilder index html By Geert Zijlmans 81 254 T U le Chapter 3 The PN BPEL4WS Tool The Handle cl
146. ort introduction to the chapters of this thesis Chapter 1 High level Petri Nets amp BPELAWS The first chapter of this thesis describes the modeling languages High level Petri Nets and BPEL4WS in short The purpose of this chapter is to refresh the memory of the reader that is already acquainted with both modeling languages or in the other case to introduce the reader into the world of High level Petri Nets and BPELAWS Both modeling languages are described in an informal way This means that no heavy duty mathematical definitions are given to describe both modeling languages The formal specifications of both modeling languages can be found in the list of references High level Petri Nets HLPN 2000 and BPELAWS BPEL4WS 2003 Chapter 2 High level Petri Nets based GML for BPELAWS The second chapter describes the creation of a GML for BPELAWS that is based upon the semantics of High level Petri Nets The first step in the creation of this GML has been the development of a Translation Model The purpose of the Translation Model is to translate a WS related process modeled with BPELAWS to a WS related process modeled with High level Petri Nets The second step in the creation of this GML has been the development of handles which are retrieved from the Translation Model The third step in the creation of this GML has been the development of a Mapping Model in which these handles are used to create a WS related process The handles together wit
147. ort this element in EPNML for the coloring of a net as is done in my GML to be able to indicate special places in a net which could improve the readability of a net e The use of reference places in YASPER is quite messy It is not possible to connect more than one arc to a reference place The solution in YASPER is to add another reference place inside the hierarchical transition that refers to the same place on the level of the hierarchical transition Since the figures of this thesis have been modeled with YASPER one can see the redundancy in reference places e g figure G 1 and G 2 where for each time that the store for the process instances is used in the hierarchical transition lt process gt purchaseOrderProcess see G 1 one needs to add a new reference place to the store for the process instances see G 2 Note In my GML one can connect more than one arc to a single reference place e Since it is possible to add tokens to a process modeled in EPNML it would be nice to give meaning to these tokens In that case these tokens can be transformed by the transitions that consume them using the transformation element of a transition All one needs is token type definitions and place typing restricting a place to contain only tokens of a certain type How this can be done has been described in subsection 2 2 1 General design decisions of this thesis e Inthe current EPNML specification a store can only contain a datum In my
148. otation of a modeling language to speed up modeling The language High level Petri Nets HLPN HLPN 2000 also has a graphical notation described in Chapter 1 of this thesis which can be used by a developer who has knowledge of HLPN to model a process in this language The language BPEL4WS BPEL4WS 2003 on the other hand does not have a graphical notation Several approaches have been made to create a uniform graphical notation for the language BPELAWS In this research the language BPEL4WS had to be expressed using the semantics of the GML of HLPN The following approach has been taken to develop a GML that is based upon HLPN for generating BPELAWS models e Translate all the BPELAWS elements with all attributes and all sub elements to their equivalents in the GML of HLPN e Describe these translations in EPNML EPNML 2004 which is an XML based language that can be used to describe the graphical representation of a HLPN model e Create a translation model that can be used to translate a BPEL4WS process to a HLPN business process in EPNML e Create a mapping model based upon the translation model that offers handles a set of HLPN elements that covers a certain activity in the process to the developer of a WS related process model The first three topics above involve the creation of the Translation Model which is described next The Mapping Model is described later in this chapter 2 2 Translation Model The Translation
149. oven Department of Mathematics amp Computer Science WS Web Services WSDL Web Services Description Language WSFL Web Services Flow Language XML eXtended Markup Language XSD XML Schema Datatype s XSLT eXtensible Stylesheet Language Transformations By Geert Zijlmans 104 254 TU e Appendix C BPEL4WS in Backus Naur Form Appendix C BPEL4WS in Backus Naur Form The following specification of BPEL4WS in BNF has been developed by Geert Zijlmans bool expr general expr duration expr deadline expr uri anyURI ncname qname qname list process top attributes partnerLinks partnerLink partners partner By Geert Zijlmans Boolean expression XPATH 1999 Expression that returns a string number or Boolean value XPATH 1999 Expression results in XML Schema type duration values XPATH 1999 Expression results in XML Schema type dateTime or date values XPATH 1999 Uniform Resource Identifier of the process Uniform Resource Identifier of an external file namespace name XMLN 1999 qualified name XMLN 1999 List of qname s i process top attributes gt partnerLinks partners variables correlationSets eventHandlers compensationHandler faultHandlers activity lt process gt i name ncname targetNamespace uri queryLanguage anyURI expressionLanguage anyURI suppressJoinFailure yes no enableInstanceCompensation yes no abstractProcess yes no xml
150. pace http services otn com Query language Expression language Suppress bpwes JoinFailure yes Enable instance compensationno Y Abstract process Figure 3 6 The Property Inspector of the PN BPEL4WS Tool By Geert Zijlmans 86 254 T U le Chapter 3 The PN BPEL4WS Tool Finally there are wizards The wizards are there to guide the user of the tool The user can only use these wizards to add new processes to a project and new handles to a process Each handle has its own wizard In a wizard the user needs to add values to the involved parameters for each handle as described in the MM Note A quick tutorial how to model with the PN BPEL4WS Tool is present in the user manual of the tool and therefore is not described in this thesis 3 3 Relation with the TM and MM The PN BPEL4WS Tool is closely related to the TM and MM The Handle classes as described in subsection 3 2 1 are a translation of the handles that are used in the TM and MM Also figure 3 1 clearly displays the use of these Handle classes and objects A Handle object actually is the intermediate state between a single BPELAWS element and a set of arcs places and transitions TM and between a predefined set of arcs places and transitions and a single BPELAWS element MM The TM is also used in the BPELAWS parser to translate BPELAWS elements and WSDL elements to Handle objects and in the creation of EPNML files of these Handle objects The MM is used by
151. pdated of the first second or fifth subject one needs to follow the steps described below 1 Take the file which has to be updated 2 Update the information inside the file 3 Save the file 4 Alter keywords for the reference in the XML file index xml optional If one needs to update information concerning the third or fourth subject one needs to follow the steps described below 1 Open the file belonging to the model or manual a TM translation model vsd b MM mapping model vsd c User manual d Technical manual Update the information inside the file Save the model Save the model as a Web Page Copy the main file and the folder belonging to the Web Page to the folder of the subject in the DS c OIN 4 4 3 Deleting content from the DS If one needs to delete content from the DS one first needs to decide to which of the five subjects it belongs If information needs to be deleted of the first second or fifth subject one needs to follow the steps described below 1 Take the file which has to be deleted 2 Delete the file 3 Update the files in which references are made to the deleted file 4 Update the XML file index xml by removing the reference to the deleted file If one needs to delete information concerning the third or fourth subject one needs to follow the steps described below 1 Open the file belonging to the model or manual e TM translation model vsd f
152. pe E Figure 2 10 The translation of a lt faultHandlers gt element which contains a catch sub elements and where the catchA11 sub element is omitted 56 254 T U le Chapter 2 A GML for generating BPELAWS FH E start End scope End scope E Default Catch B C Activity 1 terminate d Activity 1 FH terminate Reference Reference FH parent place of next place of next scope of E place of place of start scope E scope E FHE terminate Figure 2 10 continued zooming in on the hierarchical transition The translation of a lt faultHandlers gt element which contains a catch sub elements and where the catchA11 sub element is omitted In figure 2 11 below the translation is shown of the same situation as in figure 2 10 except for the fact that this time a cat chA11 sub element is present in the definition of the fault handlers This also means that the fault cannot be thrown to a parent scope unless a throw activity element is used inside a fault handler s definition FHE FH E start terminate zfaultHandlers E End scope E Reference place of next place of scope E Figure 2 11 The translation of a lt faultHandlers gt element which contains a catch sub elements and where the catchA11 sub element is used By Geert Zijlmans 57 254 T U le Chapter 2 A GML for generating BPELAWS FHE start End scope End scope E Catch B C Catch All Activity 1 EA terminate
153. phical HLPN equivalent in EPNML and about the modeling of a BPELAWS process by using handles graphical representations of BPELAWS elements Adding new information to this subject can be done following the steps described below 1 Open the file belonging to the model a TM translation model vsd b MM mapping model vsd Insert a new page in the model where the new information needs to be added Save the model Save the model as a Web Page Copy the main file and the folder belonging to the Web Page to the folder of the subject in the DS c9 OIN The fourth subject The PN BPEL4WS Tool contains a user manual and a technical manual of the tool If new information needs to be added to one of these manuals one needs to do the following 1 Open the file containing the manual a User manual b Technical manual Add the new information to the manual Save the manual Save the manual as a Web Page Copy the main file and the folder belonging to the Web Page to the folder of the subject in the DS co OIN If new information needs to be added to the last subject The Documentation System one has to follow the same steps as of the first and second subject By Geert Zijlmans 96 254 T U e Chapter 4 Documentation System 4 4 2 Updating content of the DS If one needs to update content of the DS one first needs to decide to which of the five subjects it belongs If information needs to be u
154. place Seen from the perspective of a transition we differentiate between two types of places e Input place A place p is called an input place of a transition t if and only if there is a directed arc from p to t The set of input places for a transition t is denoted as t In the same way the set of transitions sharing place p as an input place is denoted as ps e Output place A place p is called an output place of a transition t if and only if there is a directed arc from t to p A set of output places for a transition t is denoted as t In the same way the set of transitions sharing place p as an output place is denoted as p Directed arc A directed arc is represented by an arrow in the GML of Classical Petri Nets Within a net there are two different types of arcs seen from the perspective of a transition see figure 1 4 e Input arc A directed arc that connects a place to a transition Arc 1 e Output arc A directed arc that connects a transition to a place Arc 2 pi t1 p2 OO Arc 1 Arc 2 Figure 1 4 An input arc Arc 1 and an output arc Arc 2 By Geert Zijlmans 14 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Token A token is represented by a black dot in the GML of Classical Petri Nets Most developers draw tokens inside the place that they belong to see figure 1 5 GA token Figure 1 5 Five tokens in a place called p17 A token initially has no specific meaning in a Classical
155. place belongs to a fault handler c green The place belongs to an event handler e orange The place belongs to a compensation handler f purple The place is a communication port hereafter called COM port A COM port in this model is a communicating connection to another participating process in the business process model g black The place belongs to the termination of the process A transition that has an input place of this type is an urgent transition HERBHAa e Transition types a Normal The transition has type AND b Sub process The transition in fact is a sub process One can zoom in on this sub process to view its contents c Collector amp Emitor The transition is of the kind collector C or emitor E as described in YASPER 2005 d XOR The transition has type XOR Tokens A token is represented by a dot inside a place Depending on the type of place it belongs to it also has a special meaning e yellow Process and black Termination token contains process data purple COM port token represents a message red Fault token contains fault data green Event token contains process data orange Compensation token contains a snapshot of the process instance when the scope of the compensation handler completed Each process instance has its own token color Transitions Stores This represents a place type store in EPNML that can be one of the following types e Name is PI The p
156. place p2 outside the hierarchy h1 e Transition t1 is performed inside hierarchy h1 which has place rp1 as its input place and rp2 as its output place e Zoom has the meaning of expanding a hierarchy to view the activities inside it pi h1 p2 i Zoom h1 Figure 1 22 Graphical representation of a hierarchy As one might notice one cannot conclude from the figure above that in hierarchy h1 the places rp1 and rp2 refer to places outside the hierarchy That is why places like rp1 and rp2 mostly contain some kind of indicator that these places refer to places outside the hierarchy the name of the reference place and the place referred to must be the same The tool YASPER uses the following notation see figure 1 23 below for indicating that a place is a reference place of a certain kind These indicators are also used in the figures of this thesis OD Bore Reference to an input Reference to an Reference to an Reference to a place place output place input output place which has to be reset Reference to a store Figure 1 23 Indicators for reference places in hierarchies as used in YASPER Urgent transitions This is an extension to the definition of a normal transition as described earlier An urgent transition described in TPN 1998 has the same features as a normal transition except for the fact that the semantics for an urgent transition differs slightly from those of a normal transition Once an urgent transition is enabled it
157. pter 4 Documentation System 4 5 Maintenance amp Expansion Maintenance and expansion of a system is always important This subsection describes the maintenance and expansion operations that are available for the DS Maintenance and expansion of the DS consists of the following operations which are described below e Adding new content to the DS e Updating content of the DS e Deleting content from the DS 4 4 1 Adding new content to the DS If one needs to add new content to the DS one first needs to decide to which of the five subjects it belongs The first subject BPELAWS amp WSDL and the second subject The GML of HLPN in this GA and the use of EPNML mainly contain definitions about the languages themselves e g if one wants to add examples how to use these languages one should add this new content inside these subjects New contents to these subjects can be added following the steps described below 1 Take the template file XML file template xml for adding new contents to one of these subjects Add the information inside the template file Save it using another name than the one of the template or other present files Update the files of the subject that have to refer to this new information Add a reference to the file inside the XML file index xml co OIN The third subject The Translation Model and the Mapping Model contains the information about the translation of a BPEL4WS process to its gra
158. quest Response WS related process is described and modeled figure 1 16 using the GML of HLPN and the extensions mentioned in the previous subsection Example 1 Age verification WS related process On the Internet there are websites for which age verification is necessary If a person is older than eighteen then the person may enter the website else access will be denied to that person In this example a person arrives at a website for which age verification is necessary The following steps are taken by the person T 2 3 4 The person enters his her age in a text field on the website The person presses a button on the website which has an action coupled to it that sends the age entered in the text field to a web server to be checked by an Age verification WS related process The person must wait until a response has been received from the web server If the response is positive then the person may browse freely through the rest of the website else the person closes the website The following steps are taken by the Age verification WS related process 1 The process waits until it receives a message containing the age of a person which wishes to have access to the website 2 The process then checks the content of the message If the value of the content is above eighteen then the response to the person is positive else negative 3 The process sends the response back Incoming Receive message m
159. r 2 A GML for generating BPELAWS The second type fault describes a fault that can occur during the execution of the process In BPELAWS a fault can consist of two parts a name of the fault and a variable to be associated with the fault that occurred This variable must be present in the process instance The definition of a token type of this kind is shown below token type fault id fault name and or variable name name of the fault name variable name of the variable variable token Code 2 3 Definition of a token type of the kind fault The third type message describes a message that can be received sent by an activity of the process This token type is used in the communication of the process with other participating processes in the business process model A message has a certain name and can contain data described by the lt part gt s The definition of a token type of this kind is shown below token type message id message name of the message gt name name of the message name parts lt part gt t lt name gt name lt name gt lt kind gt kind lt kind gt lt type gt type lt type gt lt part gt lt parts gt lt token gt Code 2 4 Definition of a token type of the kind message Token type restrictions for places lt tokenType gt A place may contain a token type restriction This has the following consequence for a place in the
160. ransition with a transition condition A transition condition is a Boolean expression e g Age 18 that is associated with a transition A transition can only fire if the transition condition results into the value true In the GML of HLPN a transition condition if small can be added to the representation of the transition in the other case it must be mentioned in the description of the transition The small example figure 1 11 below shows a transition that can only fire when a person is older than eighteen the transition condition Denied Granted ne Figure 1 11 An example showing the transition condition Age gt 18 for a transition Age verification transition condition Place Places in HLPN are extended with two new features described in HLPN 2000 as e Place Types These are non empty sets One type is associated with each place e Place Marking A collection of elements data items chosen from the place s type and associated with the place Repetition of items is allowed The items associated with places are called tokens The first feature describes the restriction of the kind of tokens that a place can harbor The second feature describes the marking of a place at the start initialization of the HLPN model as a collection of items of the type of the place Figure 1 12 below shows how a place of the previous example can be extended using these new features where e P defines a set of t
161. rch on its own so stopped it The next kind of information needed was information about the GML of Petri Nets and existing GMLs for BPEL4WS Petri Nets has a standard graphical notation and the only graphical notations that could find for BPELAWS was the one in the research by Daniela Weinberg WBERG 2003 and one in a tool by Oracle was already acquainted with the graphical notation of Petri Nets which meant that had to take a look at the GML of the research and tool if they were usable for the GA The GML of the research showed the importance of a place to store process instances and the tool showed the importance of nesting hierarchical structuring information hiding for the readability of the BPM The next search was for tools that are capable of using the graphical modeling languages Petri Nets and or BPELAWS to create BPMs There are several tools available for creating Petri Nets One of them is YASPER It has been developed at the TU e in cooperation with Deloitte and uses the EPNML standard EPNML 2004 EPNML is an application of the Petri Net Markup Language hereafter abbreviated as PNML PNML 2003 which is an XML based markup language for the graphical notation of Petri Nets Another tool that is available for BPELAWS is BPEL4J by Alphaworks which is a BPEL4WS editor This is where the work started tried and translated each element in BPEL4WS to its equivalent in the GML of Petri Nets The idea was to f
162. re It is represented by the XML tag lt tokenType gt as a sub element of the lt place gt element Adding a lt tokenType gt tag to a place restricts the place from receiving any other token than that of the token type defined by the lt tokenType gt tag for the place This to improve the readability of the process model Also this provides a simpler way to update the value of a variable in an activity transition This to improve the readability of the process model Also this provides a simpler way to update the value of a correlation set in an activity transition and can be used in the message correlation This to improve the readability of the process model Activities that depend on the status of a link now are able to read it from the process instance Activities also can alter the status of a link In a model of this GA a reset arc between a transition and a place has the following meaning The transition should only consume from that place the tokens that represent the same process instance of the token that is used in the firing of the transition YASPER provides a transition that can serve as a source for tokens the emitor and a transition that only eats tokens and does not produce any the collector a sink In our model we use the emitor to generate a message token for a communication port that is not connected to another process and the collector to collect left behind tokens in the process e g when an alarm has been ha
163. riables gt lt sequence gt lt receive partnerlink AgeChecker portType tns geChecking operation check varial _ lt receive gt lt switch gt lt case condition bpws getVariableData AgeMsg age age lt 18 gt assign gt assign lt case gt lt case condition bpus getVariableData AgeMsg age age gt l18 assign gt lt assiqn gt lt case gt lt switch gt lt reply partnerlink AgeChecker portType tns AgeChecking operation check variabli lt reply gt lt sequence gt lt process gt LT gt Graphical View EPNML BPELAWS WSDL Figure 3 4 The Process Inspector of the PN BPEL4WS Tool e Hierarchy Inspector see figure 3 5 This inspector contains a tree view of the currently active process es in the tool One can use this tree view to navigate through the handles of a process and see where they are located in a process E Age Verification a com ports VAR Variables amp Correlation sets amp Event handlers Fault handlers i i i Compensation handler E Activity i Figure 3 5 The Hierarchy Inspector of the PN BPEL4WS Tool e Property Inspector see figure 3 6 This inspector shows the values of the involved parameters for the selected handle in the graphical view of the Process Inspector or for the selected handle in the tree view of the Hierarchy Inspector Name Age Verification Target names
164. ributes gt standard elements copy assign copy from spec to spec copy 107 254 T U e Appendix C BPELAWS in Backus Naur Form from spec Di from variable ncname part ncname from partnerLink ncname endpointReference myRole partnerRole from variable ncname property qname from expression general expr from literal value lt from gt from variable ncname part ncname query queryString only in executable process from opaque yes only in abstract process to spec ig to variable ncname part ncname to partnerlink ncname to variable ncname property qname to variable ncname part ncname query queryString only in executable process empty HH empty standard attributes standard elements lt empty gt terminate lt terminate standard attributes gt standard elements terminate only in executable process throw Ig throw faultName qname faultVariable ncname standard attributes standard elements throw compensate compensate scope ncname standard attributes standard elements lt compensate gt wait lt wait for duration expr until deadlin xpr standard attributes standard elements wait scope srs scope variableAccessSerializable yes no standard attributes gt standard elements variables correlation
165. rocess instances of a process e Name is Calendar The current time in the process Table 2 2 Graphical notation that is used in the translation By Geert Zijlmans 48 254 T U le Chapter 2 A GML for generating BPELAWS Element Graphical notation b lt condition value gt d lt slorage action gt Arc types a Normal The arc is a normal connection between a place and a transition or between a transition and a place b With condition This kind of arc can only be used as an output arc of a transition with type XOR This type of arc displays a possible outcome of the condition of the XOR transition If the outcome of the condition is equal to that of the arc the flow continues in the direction of that arc Reset arc This type of arc is used to indicate the reset arc as described earlier Storage action This kind of arc represents a storage action as described in the EPNML standard Table 2 2 continued Graphical notation that is used in the translation The graphical representations of the BPEL4WS elements in the rest of this subsection have been made with YASPER and have been colored afterwards to display the extensions This is also the reason why there are multiple reference places pointing to the same place in a parent scope actually only one reference place should be there but YASPER cannot handle this kind of construction The figures give an indication how the graphical representation of a BPELAWS elemen
166. s an XOR join to be performed If t2 fired the transition t4 will fire and after that transition t6 causes an XOR join to be performed Once a path has been chosen one cannot end up in another path defined in the same selective routing In the lower figure a non deterministic choice is made between the two alternative transitions t3 and t4 The lower notation depicts an OR split and an OR join Both notations can be combined resulting in either a combination of an XOR split and an OR join or a combination of an OR split and an XOR join toU 3 OR split OR join Figure 1 10 Selective routing of transitions t3 and t4 By Geert Zijlmans 17 254 T U le Chapter 1 High level Petri Nets amp BPELAWS 1 1 2 HLPN The modeling language High level Petri Nets HLPN HLPN 2000 has become a standard in the year 2000 and can be used by developers to describe a wide range of complex event systems In this GA it is used to describe business processes HLPN offers the developer of BPMs the same GML as used for Classical Petri Nets to which extensions have been made to be able to describe a complex system This subsection describes the changes that have been made to each element in the GML of Classical Petri Nets which forms the GML of HLPN The example in HLPN 2000 on page 15 is used in this subsection but has been adapted to make it understandable for a novice reader Transition The HLPN specification describes the extension of a t
167. sequences with control flow a First sequence i Copying the part customerInfo of the variable Po to a part customerInfo in the variable shippingRequest ii Invoking a Request Response interaction request Shipping with a process that belongs to the partner link shipping The request holds the same value as the variable shippingRequest and the response is stored in the variable shippingInfo Ifa fault occurs in this interaction process then it is thrown to the fault handlers of the process Also this activity enables the link ship to invoice iii Waiting for a message to be received via de COM port of partner link shipping with operation sendSchedule and the message is stored in the variable shippingSchedule Also this activity enables the link ship to scheduling b Second sequence i Invoking a One way interaction initiatePriceCalculation with a process that belongs to the partner link invoicing The request holds the same value as the variable Po ii Invoking a One way interaction sendShippingPrice witha process that belongs to the partner link invoicing The request holds the same value as the variable shippingInfo This activity can only be executed if the link snip to invoice is enabled iii Waiting for a message to be received via de COM port of partner link invoicing with operation sendInvoice
168. sitional modeling defend the correctness of the result By Geert Zijlmans 80 254 T U le Chapter 3 The PN BPEL4WS Tool Chapter 3 The PN BPELAWS Tool 3 1 Introduction Another result of the GA is the PN BPELAWS Tool which is an application that one can use as an editor to create a Web Services related BPM using the handles as defined by the TM and MM This means that the user of this tool can create load modify and generate BPELAWS process models as well as EPNML process models that are in conformance with the TM and MM The PN BPEL4WS Tool is not a simulation tool which means that models created in this tool cannot be tested in the tool to see how they work Simulation of these models has to take place in a tool that is capable of loading either an EPNML file or a BPEL4WS file with the associated WSDL file s Two of such tools YASPER and Oracle BPEL Process Manager are described in the last subsection of this chapter In this chapter the following subjects concerning the tool are described e Construction Describes how the PN BPEL4WS Tool has been constructed e GUI environment Describes the Graphical User Interface GUI environment of the tool e Relation with the TM and MM Describes the relation of the tool with the TM and MM of the GA e Simulation Describes how the output of the tool can be used for simulation in the tools YASPER and Oracle BPEL Process Manager Note A user manual and a technical manual of the t
169. t activity This structured BPEL4WS activity element describes the waiting for several possible message to arrive each defined by an lt onMessage gt sub element Both BPEL4WS activity elements have an attribute called createInstance By default this attribute has the value no but for a start activity this attribute must have the value yes By Geert Zijlmans 60 254 T U le Chapter 2 A GML for generating BPELAWS In figure 2 14 below the translation of a receive activity element is displayed which serves as a start activity for the process In this case the previous place of the receive activity element is a reference place to the place Process active hence the odd arc between the previous place and the hierarchical transition which indicates that the hierarchical transition consumes a token from that place and produces a token after firing in the same place the arc often is called a biflow previous previous place place COM process gt F cl BEFCD input Zoom P EH start Receive message COM process BEFCD input EH start next place next place Figure 2 14 The start activity receive In figure 2 15 the translation of a pick activity with two possible incoming messages is displayed A pick activity may not contain any alarm events when it is a start activity Also notice that for each incoming message an activity must be defined the pick activity element is a struc
170. t Zijlmans 49 254 TU e Chapter 2 A GML for generating BPEL4WS Element translation When creating the TM realized that needed a uniform way to translate the BPEL4WS activity elements This uniform way of translation has been achieved through the use of hierarchical transitions and compositional modeling Each BPEL4WS activity element has its own characteristics as can be seen in the TM but they all are translated using the same basis The basis of the translation of a BPEL4WS activity element consists of the following construct as displayed in figure 2 2 below e A hierarchical transition Inside a hierarchical transition the working of the BPEL4WS activity element is defined this may include translations of other BPELAWS activity elements e A previous place A previous place is a place that enables the hierarchical transition s firing e A next place A next place is a place that serves as an output place for the hierarchical transition previous next place place process activity handler Figure 2 2 Main construct for a BPEL4WS element in the TM In a BPEL4WS file see subsection 1 2 2 a BPELAWS activity element is either placed after the definition of another BPEL4WS activity element or is placed inside the definition of another BPEL4WS activity element This is why use compositional modeling and hierarchical transitions Except for the basic BPEL4WS activity elem
171. t catchAll gt activity lt catchAll gt lt faultHandlers gt lt compensationHandler gt activity lt compensationHandler gt lt eventHandlers gt onMessage partnerLink partner link name portType portType operation operation variable variable name lt correlations gt correlation set correlation set name initiate yes no correlations activity lt onMessage gt onAlarm for duration expression until deadline expression gt activity lt onAlarm gt lt eventHandlers gt activity lt process gt Code 1 8 Default layout of a BPELAWS file BPELAWS 2003 By Geert Zijlmans 34 254 TU e Chapter 1 High level Petri Nets amp BPEL4WS As one can see in the default layout definition of a BPEL4WS file a BPEL4WS process consists of seven optional parts and one mandatory part Partner links Partners Variables Correlation sets Fault handlers Compensation handler Event handlers Main activity Describes communication possibilities for the process Describes communication restrictions for other processes with which this process communicates not often used therefore not used in this GA Temporary storage possibilities for values that are important in the BPEL4WS process execution Sets that can be used in the message correlation of the BPEL4W process Handlers for catching the occurrence of a fault in the
172. t in the modeled business process Some important benefits for a company that has its business processes modeled are e Preservation of information about its business processes e Bottlenecks in the business processes may be solved using the model e Possible improved efficiency of its business processes e Possible better management of resources e g employees money etc To model a business process one needs a modeling language Until now several modeling languages have emerged such as Activity Diagrams of UML Petri nets XLANG WSFL BPEL4WS eBPSS and others One of the most important modeling languages is Petri nets This language is like the grandmother of most of the modeling languages The language Petri nets has been discovered and defined by C A Petri in 1962 PN 1962 and several extensions have been made to this language after that more on this subject in chapter 1 Besides that Petri nets is a basis for other modeling languages it also has a strong academic background it is taught over several universities world wide the TU e is one of them Currently business processes become more and more automated This also means that some of the business processes exchange information without the help of people A new way that becomes standard is the exchange of information using Web Services Web Services is a kind of black box principle for exchanging information The goal of the Web Services effort is to achieve interoperability
173. t should look Approach for the translation The first step in the creation of the TM is to have a clear approach for the translation of a BPELAWS process My approach can be described by the following steps Take the BPELAWS file of the process one wants to translate Retrieve the associated WSDL files that are referred to in the BPEL4WS file Check if the elements are in conformance with the BPELAWS specification Start the translation by creating a new EPNML file Translate the process element Translate all communication ports Create the process token type message token types and fault token types Translate the fault handlers Translate the event handlers 10 Translate the compensation handler 11 Translate the main activity 12 Check the coupling of all activities concerning the termination halting of the process This approach shows a hierarchical approach of the translation which starts at the start of the process process element and works its way down to the atomic activities in the BPEL4WS process The resulting TM can be found in Appendix E of this thesis The TM uses the EPNML code of the translations to create an HLPN process model from a BPEL4WS file with its associated WSDL file s ooMOoggROIN In the rest of the subsection 2 2 1 the steps 5 to 12 of the approach are described in more detail Before start with this description need to describe how an element is translated in my translation By Geer
174. textual representation of that handle s BPELAWS WSDL or EPNML objects By Geert Zijlmans 82 254 TU e Chapter 3 The PN BPEL4WS Tool 3 2 4 Tool s engine The fourth step in the creation of the tool consisted of the creation of the GUI environment for the tool This step is described in the subsection 3 3 of this chapter The final step in the creation of the tool consisted of the creation of the engine for the PN BPEL4WS Tool The engine connects all previously described parts and adds functionality to use them in the tool Figure 3 1 below shows the relations between these parts in the tool except for the tool s engine which runs on the background to manage the objects that are created and process the changes made to these objects in the GUI environment of the tool EPNML file E Creates PN BPEL4WS Tool Input for Input ON creates Z BPEL4WS file WSDL file s Figure 3 1 Relations between the parts of the PN BPEL4WS Tool By Geert Zijlmans 83 254 T U le Chapter 3 The PN BPEL4WS Tool 3 3 GUI Environment of the PN BPELAWS Tool In this subsection the fourth step in the creation of the tool is described in some more detail than the other parts of the PN BPEL4WS Tool The GUI environment of this tool consists of three possible environments each having their own set of features namely e The Empty Environment The Empty Environment shown in figure 3 2 below is the initial envir
175. that can be used to model a WS related process e XLANG XLANG 2001 by Microsoft e Web Services Flow Language WSFL WSFL 2001 by IBM Yet BPELAWS has been developed by BEA Systems IBM Microsoft SAP AG and Siebel Systems as a joint effort to develop one leading standard that can be used for designing WS related processes This subsection describes its predecessors by indicating their most important features XLANG Microsoft s XLANG is a notation for specifying the message exchange behavior of a WS related process XLANG is an extension for WSDL WSDL 2001 An XLANG service description is a WSDL service description extended with elements using the namespace xlang http schemas microsoft com biztalk xlang which describe the behavior of the service as part of a business process XLANG has the following activity elements called the basic control processes in XLANG which can be used to model the message exchange behavior of the process e empty This activity element represents the activity where nothing is done e sequence This activity element contains zero or more actions or basic control processes which are executed in sequential order e switch This activity element supports conditional behavior Each branch of this activity element contains a condition If the condition evaluates to true then the specific branch is executed If none of the conditional branches evaluates to true then a defau
176. the sequential routing handle Note An intermediate place has been added between the receive handle and the parallel routing handle Also termination of the flow needs to be coupled to the termination of the whole process By Geert Zijlmans 77 254 TU e COM shipping shippingLT shippingService p shippingPT shippingRequest input Step 5 Insert reply response handle This is the final step of the main activity In this step a reply response handle is inserted inside the scope of the sequential routing handle which causes a response to be send back via the COM port of the partner link purchasing Figure 2 27 below shows how the reply response handle is added to the sequential routing handle COM purchasing purchasingLT purchaseService m purchaseOrderPT Process active purchaseOrderProcess Chapter 2 A GML for generating BPEL4WS Process purchaseOrderProcess terminate sendPurchaseOrder input lt sequence gt terminate PI z E recelve 1 purchaseOrderProcess a COM shi shippingL shippingService p shippingPT shippingRequest li output Pat ing COM shipping shippingLT shippingService p Ld shippingPT shippingRequest fault cannotCompleteOrder COM shipping shippingLT shippingRequester m shippingCallbackPT sendSchedule input COM invoicing invoicingLT invoiceService p
177. the assign activity element in which one or more copy sub elements are placed which perform from to assignments For the exact specification of these from to assignments one should read Chapter 9 of the BPEL4WS specification BPEL4WS 2003 By Geert Zijlmans 37 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Message correlation Message correlation in a BPELAWS process is very important when one executes the process When one executes a BPELAWS process a process instance is created To relate incoming and outgoing messages to a process instance message correlation is needed Defining message correlation in BPELAWS involves the following steps 1 Define properties which can be used in the correlation of messages 2 Relate each property to a part of a message that is used in the correlation of the same message 3 Define correlation sets in BPELAWS 4 Define the use of correlation in the communication activities Only steps 3 and 4 of the above steps are already provided that is why the BPELAWS specification BPEL4WS 2003 adds the following new elements to WSDL WSDL 2001 property and property alias Property and property alias A property can be used in a correlation set of a BPELAWS process A correlation set defines a set of properties that is used to perform message correlation in a BPEL4WS process Message correlation is defined as relating the incoming and outgoing messages to a certain process instanc
178. the following elements for defining network services e Types A container for data type definitions using some type system such as XSD e Message An abstract typed definition of the data being communicated e Operation An abstract description of an action supported by the service e Port Type An abstract set of operations supported by one or more endpoints e Binding A concrete protocol and data format specification for a particular port type e Port A single endpoint defined as a combination of a binding and a network address e Service A collection of related endpoints All these elements are described in detail in Section 2 of the WSDL specification but here the first four elements are described in short because they are of interest to BPELAWS WSDL can be extended with new elements which definitions can be found in an associated namespace e g XLANG uses this extensibility possibility of WSDL Types The default type system that is used within WSDL is XML Schema Datatypes XSD XSD 2004 Within a WSDL file one can also define complex structured types other than Boolean Integer or String etc which can be used in the definition of the exchanged messages New type definitions in WSDL are preferably defined by XSD but one can also use another type system WSDL offers an element types in which zero or more type definitions can be added How one can define a new type with XSD is not discussed in this thesis
179. this process gt lt partnerLinks gt lt partnerLink name AgeChecker partnerLinkType def AgeCheckingLT myRole Checker gt lt partnerLinks gt lt variables gt variable name AgeMsg messageType def AgeRequest gt variable name AnswerMsg messageType def AccessResponse lt variables gt lt correlatioSets gt lt correlationSet name ID properties def ID gt lt correlationSets gt lt sequence gt receive name ReceiveMessage partnerLink AgeChecker portType port type belonging to the role of Checker operation an operation belonging to the port type used variable AgeMsg createInstance yes correlations correlation set ID initiate yes correlations receive switch case condition bpws getVariableData AgeMsg age age amp 1t 18 lt assign gt lt copy gt from variable AgeMsg part ID queryz ID to variable AnswerMsg part ID query ID copy copy lt from gt false lt from gt to variable AnswerMsg part Access query Access gt lt copy gt lt assign gt lt case gt 39 254 T U le Chapter 1 High level Petri Nets amp BPELAWS case condition z bpws getVariableData AgeMsg age age gt 18 lt assign gt lt copy gt from variable AgeMsg part ID query ID to variable AnswerMsg part ID query z ID cop
180. to information about the subjects of this GA In this case a person may use the DS when One needs information about the TM and MM Something is not clear in the translation of a BPEL4WS element to a set of EPNML elements or in the mapping of a set of predefined EPNML elements to their representation in BPEL4WS One needs background information about a BPEL4WS element a WSDL element or an EPNML element One needs background information about the extensions made to HLPN as they are used in the GA One needs to access the user manual technical manual of the PN BPEL4WS Tool without starting the tool itself On the other hand the purpose of the DS can be elevated beyond this GA A possible new purpose for this DS may it be in another form than the initial one is to form a repository for documents related to the research area of this GA This means that if there are other researches in the same research area then the documents related to these researches can be added to this DS to create an information retrieval system concerning topics related to research area which are BPEL4WS High level Petri Nets PNML EPNML and other applications of PNML Translations mappings between BPEL4WS and Petri Nets By Geert Zijlmans 91 254 T U e Chapter 4 Documentation System 4 4 Construction The DS uses a browser Microsoft s Internet Explorer to display its contents to the user It has been created using various techniques HTML XML
181. truction also the semantics of the specific BPEL4WS element play a role in the correctness of my translation The basis construction suggests that one token is consumed from the input place by the hierarchical transition and the hierarchical transition produces one token in its output place This means that inside the hierarchical transition the working of the BPELAWS activity element must be in conformance with this restriction In general there are four factors that disturb this restriction namely e Communication e Fault handling e Termination e Compensation handling In the case of communication the hierarchical transition may contain one or more COM port places that are either used as an input place or output place This means that the message tokens residing in the input places must be consumed by the hierarchical transition and the hierarchical transition may produce message tokens in these output places If tokens are produced in the output places that represent a COM port then these tokens must be consumed by a collector if the process is not coupled to another process By Geert Zijlmans 79 254 T U le Chapter 2 A GML for generating BPELAWS In the case of fault handling there are two difficulties that need attention e BPEL4WS activity elements that throw a fault e The fault handler of a scope that needs to halt all activities of that scope The first difficulty is the BPEL4WS activity element that produces a
182. tured BPELAWS activity element previous Pick F place terminate COM pr cess for message 1 M process EFCD for message 2 pick F EH I start next place PI Figure 2 15 The start activity pick By Geert Zijlmans 61 254 T U le Chapter 2 A GML for generating BPELAWS previous previous place place COM process COM process BEFCD BEFCD input for message 1 input for message 2 Receive Receive ssage 1 EH I start EH start Pick terminate Message received Message received Activity 1 Activity Activity 1 terminate Activity 2 terminate next place Pick F next place terminate Figure 2 15 continued zooming in on the hierarchical transition The start activity pick Routing of activities As described earlier see Chapter 1 three types of routing in HLPN are used in this GA sequential routing parallel routing and selective routing BPEL4WS has special activity elements for each of these types namely e sequence activity element Represents sequential routing e flow activity element Represents parallel routing e switch activity element Represents selective routing In figure 2 16 below a sequence activity element is used to indicate that the two activities should be executed in a sequence This means that activity 1 is executed before activity 2 previous place previous Sequence F place terminate Activ
183. uage Classical Petri Nets is described from its graphical point of view This means that first the use elements of the GML of Classical Petri Nets are described and then some important terminology that is used in the world of Petri Nets By Geert Zijlmans 13 254 T U le Chapter 1 High level Petri Nets amp BPELAWS Transition A transition usually represents an atomic activity an event an operation a transformation or transportation that has to be performed in a business process An atomic activity is an indivisible unit of work seen through the eyes of the person that is developing the BPM After the execution of a transition the state of the net may change A transition is represented by a rectangle in the GML of Classical Petri Nets Also words can be associated with the rectangle to give the transition a unique name within the net which identifies the transition see figure 1 2 Name of the transition Figure 1 2 A possible graphical notation for a transition Place A place has the following purpose in a net e tisastorage place for tokens e It usually represents a medium buffer geographical location state phase or condition A place is represented by an ellipse in the GML of Classical Petri Nets Also words can be associated with the ellipse to give the place a unique name within the net which identifies the place see figure 1 3 Name of the place Figure 1 3 A possible graphical notation for a
184. uation where none of the case s conditions can be met the process cannot continue In that case one can define a default case called otherwise lf one omits the otherwise element then BPELAWS introduces a stealth default case Figure 2 18 displays the graphical representation of a switch activity element using one case element and one otherwise element The switch activity element first checks all cases in the XOR transition Case In the graphical representation below the condition of a case element is indicated with the parameter B This condition must be a Boolean condition By Geert Zijlmans 63 254 T U le Chapter 2 A GML for generating BPELAWS previous place previous Switch F place terminate Zoom Case PI lt zswitch F Switch terminate PI Activity 1 Activity 2 next place Activity 1 Activity 2 terminate terminate next place next place Switch F terminate Figure 2 18 The lt switch gt activity element with one lt case gt B and one lt otherwise gt Figure 2 19 displays the graphical representation of the same lt switch gt activity element as is used in figure 2 18 above except for the fact that in this case the lt otherwise gt element is omitted which means that BPEL4WS adds a default case to the lt switch gt activity element as can be seen in the figure below previous place previous Switch F place terminate Case PI switch
185. urchasing Fr recie d a Le prderProcess purchaseOrderProcess purchasingLT input purchaseService m R purchaseOrderPT sendPurchaseOrder fault cannotCompleteOrder COM invoicing invoicingLT End amp invoiceRequester m PI invoiceCallbackPT purchaseOrderProcess sendinvoice input COM scheduling schedulingLT schedulingService p schedulingPT requestProductionSch duling input COM scheduling schedulingLT schedulingService p schedulingPT sendShippingSchedule input Figure G 2 Zooming in on the lt process gt purchaseOrderProcess element of figure G 1 By Geert Zijlmans 241 254 T U e Appendix G The Initial Example of BPEL4WS 2003 FH purchaseOrderProcess start lt sequence gt end End running activities cannotComplete fder POFault Catch catch cannotCompleteOrde POFault Default purchaseOrderProcess end FH terminate E x purchaseOrderProcess lt reply gt COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchase Order fault cannotCompleteOrder purchaseOrderProcess end purchaseOrderProcess terminate Figure G 3 Zooming in on the FH purchaseOrderProcess element of figure G 2 PI catch purchaseOrderProcess cannotCompleteOfder POFault COM purchasing purchasingLT purchaseService m purchaseOrderPT sendPurchaseOrder fault cannotCompleteOrder Send Fautt purchaseOrderProcess end
186. y copy lt from gt true lt from gt to variable AnswerMsg part Access query Access gt lt copy gt lt assign gt lt case gt lt switch gt reply name SendMessage partnerLink AgeChecker portType port type belonging to the role of Checker operation an operation belonging to the port type used variable AnswerMsg correlations correlation setz ID correlations reply sequence lt process gt Code 1 14 BPEL4WS representation of the Age verification WS related process of Example 1 Some final remarks for this subsection are Remark For this research have also made a definition of BPEL4WS elements and attributes in their Backus Naur form BNF to understand the hierarchy inside a BPEL4WS process model The definition of BPELWS in BNF can be found in Appendix C of this thesis Remark also made a class diagram of BPELAWS for the same purpose as the definition of BPELAWS in BNF The class diagram of BPELAWS can be found in Appendix D of this thesis By Geert Zijlmans 40 254 T U le Chapter 2 A GML for generating BPELAWS Chapter 2 A GML for generating BPEL4WS models 2 1 Introduction A Graphical Modeling Language GML is a modeling language that has a graphical notation With help of this graphical notation it is easier for a developer to model a business process in a modeling language Many business process modeling tools use the graphical n
187. ype gt lt place gt Code 1 1 Definition of a reset arc in EPNML EPNML 2004 Note The place s type A is lost in the translation to EPNML In EPNML a store can only contain a datum New arc types related to the store The use of a store brings some new arc types that can be used in the model EPNML 2004 e C The transition inserts a datum into the store e R The transition reads a datum from the store e U The transition updates a datum in the store e D The transition deletes a datum from the store These new arc types can also be combined e g a transition can be connected to a store via an arc of the type CRUD Figure 1 19 below shows the graphical representation of these arcs Create Read Update Delete CRUD R U D s1 C CRUD Figure 1 19 Graphical representation of arcs connected to a store s1 1 This concept is supported by the Petri Net tools ExSpect http www exspect com and YASPER http www yasper org Actually the EPNML specification describes this type of arc as the transition replaces a datum in the store In this GA the description of the tool YASPER is used By Geert Zijlmans 25 254 T U le Chapter 1 High level Petri Nets amp BPELAWS In code 1 2 below the EPNML definition of a typed arc is shown arc id arcID source sourceID target targetID lt type gt lt text gt type lt text gt lt type gt arc Code 1 2 Definition of a typed arc i

Download Pdf Manuals

image

Related Search

Related Contents

Editorial - Well PolyMorphic Systems has a new address, see their  Yamaha DVD-S830 DVD Player  Viewsonic DPX702WD-BW digital photo frame  Insulation Testers - Electrocomponents  Saphir User Guide  Omnitron iConverter T3/E3  SU-I CPE Quick Installation Guide  KWC VESUNO K.26.VB.03.700 User's Manual    MCM233/12 Philips Sleek micro music system  

Copyright © All rights reserved.
Failed to retrieve file