Separating Operational and Control Behaviors Quan Z. Sheng, Zakaria Maamar, Hamdi Yahyaoui,Jamal Bentahar and Khouloud Boukadi Internet Computing, IEEE May-June 2010 Volume: 14 Issue:3 On page(s): SSE 3200 Luke Gesior Jeremy Strandberg
Problems Web Services are confined to simpler applications WSDL does not show how to oversee executions Design Soundness-Conversation Deadlocks Difficult debugging and testing
What are Web Services? application components communicate using open protocols self-contained and self-describing used by other applications
What is SOAP? Simple Object Access Protocol Format for sending messages Designed to communicate via Internet Allows you to get around firewalls
What is WSDL? Web Services Description Language used to describe Web services Universal Description, Discovery and Integration a directory for storing information about web services What is UDDI?
Separation Operational Behavior ◦ Application-dependant ◦ Contains functionality Control Behavior ◦ Application-independent ◦ Builds execution progress Conversational Messages ◦ Convey information between the two
Two Functions Next(activated, path1) = (commitment, done) Next(activated, path2)= (failure, aborted)
Conversational Messages Seven Types ◦ sync, ping, success, ack, fail, delay, syncreq Initiation messages ◦ from control to operational behaviors ◦ start an execution Outcome Messages ◦ from operation to control behaviors ◦ Report on executions status
Input Arguments str p1 – Common Arguments – ID, Name, From, To, Trigger str p2 – Arguments from control to operational behavior – Authorized activity-time, Authorized passivity-time, Required Participants str p3 – Arguments from operational to control behavior – Counter-part ID, Effective activity time, Execution Nature
Example Sync(str) handles (activated, label 1, input- collected) ◦ Consists of str p1 and str p2
Conversation Sessions Sequenced conversational messages Sync.Success Sync.Delay.Syncreq.Sync.Succes Some sequences lead to indefinite waiting
Solution Represent every combination of conversational messages Integrate restrictions to conversational messages – Each Delay message in a sequence should be followed by a Success, Fail, or Syncreq message, that is, Delay(t) ⇒ Success(t + 1) ∨ Fail(t + 1) ∨ Syncreq(t + 1). – Each Ping message in a sequence should be followed by an Ack message, that is, Ping(t) ⇒ Ack(t + 1). Ensures soundness of design
Conclusion and Implementation Coded in Java Consists of four tools system engineers access ◦ Control Behavior Modeler ◦ Operational Behavior Modeler ◦ Conversation Modeler Takes web services behavior as input Produces conversation specification as output, translated into XML ◦ Conversation Controller Provides methods for managing conversations ◦ Service Manager Allows engineer to track and analyze execution
Questions (mandatory)
References Separating Operational and Control Behaviors Quan Z. Sheng, Zakaria Maamar, Hamdi Yahyaoui,Jamal Bentahar and Khouloud Boukadi Internet Computing, IEEE May-June 2010 Volume: 14 Issue:3 On page(s): 68 – 76 A Formal Verification Approach of Conversations in Composite Web Services using NuSMV Melissa KOVA1, Jamal BENTAHAR1, Zakaria MAAMAR, and HamdiYAHYAOUI