BASIS: Behavior Analyzer for Interactive Services v0.1.0
Introduction Download Case Study Contact

Case Study

The case study is a very simple but sufficient to show how BASIS works. This ATM service is modified from the original version (see full ATM service) in order to be supported by most of the BPEL engines. The target service code of this case study can be downloaded here, which is also available in the download page.

The ATM service animates one possible implementation of the Automation Teller Machine that people can use to deposit and withdraw money. Customers of the service send connect requests with an identification string. After receiving the reply from the ATM, the customer can logon to the ATM, and then choose to withdraw or deposit some money. After receiving the reply of the operation, the customer logoff from the ATM and finally disconnect the connection.

In the following, there the activity diagram of the behavior of the ATM service. To the right of it, is the constructed BPN model (Petri-net based model for BPEL services).

 

The user behavior requirement of the ATM service is the withdrawal scenario depicted in the following figure, which is a Rational Rose UML Sequence Diagram. The Sequence Diagram represents the withdrawal behavior: after the client logon to the service, some money is successfully withdrawn from the ATM, and then the client logoff from the service and disconnects the connection. In the Sequence Diagram, “_this:_Process” stands the service itself while other communication partners are represented by the form partnerLink: partnerLinkType as in the BPEL definition. In this case, the client is the “atmFrontEnd: atmFrontEndPLT”.

The target service (including BPEL and associated WSDLs and XML Schema), user scenario requirement (UML Sequence Diagram) are provided as input to the BASIS v0.1.0. It will first generate the BPEL-Petri-nets model (BPN model for short) as shown in the above, then perform the behavior analysis on BPN model against user scenario. The behavior analysis result of the ATM service and withdrawal scenario is a set of paths Δ(N, D), where N is the ATM BPN model and D is the withdraw scenario.

There is only one path in Δ(N, D) = {ρ0}, where the segment of the path in bold are the exact image segment:

ρ0  =   μ0: { p0 } –τ0: {t0}→ μ1: { p1 } –τ1: {t1}→ μ2: { p2 } –τ2: {t2}→ μ3: { p3 } –τ3: {t7}→ μ4: { p8 } –τ4: {t8}→ μ5: { p5 } –τ5: {t5}→ μ6: { p6 } –τ6: {t6}→ μ7: { p7 }

The behavior constraint automaton X(N, D) is as the following figure:

The manipulator services are then constructed. Sample input to the BASIS v0.1.0 tool is given in the picture in intruduction page, where the first three inputs are the file locations, and the manipulation choice is made on Behavior extraction. The constructed manipulator services of this case study can be downloaded from: ATM-Withdrawal manipulator sample*. The structure of generated manipulator services and files is:

output location
--- result_paths.txt: the paths of Δ(N,D) in text format
--- net_atm.xml: the BPN model file in PNML format
--- simp_atm.bpel: the BPEL process after simplification
--- manipulator: directory for generated behavior constraint automaton and manipulator service files.
----- atm.wsdl: the WSDL file of target service
----- ATM_ctrlerBPEL.bpel: the constructed manipulator service - BPEL message filter
----- ATM_aut.txt: the behavior constraint automation X(N, D) in text format
----- ctrler_atm.wsdl: the manipulator service WSDL file for the BPEL message filter
----- ctrlSchema.xsd: the manipulator service XML Schema file of BPEL message filter
----- MessageCheckInstantJWS.wsdl: the manipulator service WSDL file of the Java message checker**

*: The sample contains not only the output of the tool, but also deployment information. The message checker Java service archive: "instantMessageCheckJWS.aar", is supposed to be deployed onto Apache Axis2 service container, while the BPEL filter service archive: "ctrl_ATM.zip" is suppose to be deployed onto Apache ODE 1.3 BPEL Engine. Note that you may still need to write your own service for recording the reply from the BPEL manipulator service (related to PortType "ctrlreplyPortType") and possibly certain information needs to be updated (like the bindings and services in file ctrler_ATM.wsdl and deploy.xml). For now, the sample assumes the "ctrlreplyPortType" uses binding of SOAP 1.1 with document literal type, and the service is named "ctrlreply", while the port is named "ctrlreplyHttpSoap11Endpoint", where the endpoint url is: "http://localhost:8080/axis2/services/ctrlreply.ctrlreplyHttpSoap11Endpoint".

**: Note that the Java message checker service archive is already provided with the downloaded BASIS v0.1.0 archive in the download page.


©2007 SEG NJU Homepage IntroductionDownloadCase StudyContact