4/5/10 1 Dynamic Collaboration Protocol in Service Oriented ...


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • If more than one systems specified with use scenarios are to be put together to compose a complex system, the interoperation can be generated by intervene the use scenario for individual systems. By the constraints checking we can identify the interoperation that do not satisfy the constraints. Precondition checking / postcondition checking / critical region checking Constraints are specified separately and may be inconsistent with each other. Inconsistency does not have to be an error.
  • In procedural paradigm, collaboration is achieved statically. Function calls are hard coded in program and called explicitly. In object-oriented paradigm, data and its processing are bound together. Collaboration can be achieved through message passing. More effective technologies such as dynamic typing and dynamic binding are used in collaboration. Different functions can have same name and the function calls are determined in runtime. In Service-Oriented paradigm, data is not bound with its processing any more. Services are discovered and composed dynamically. All information required for processing are transferred among different services and are interpreted at runtime. Future development of process collaboration is targeted to adaptive service-oriented paradigm where adaptive control will be supported.
  • 4/5/10 1 Dynamic Collaboration Protocol in Service Oriented ...

    1. 1. Dynamic Collaboration Protocol in Service Oriented Architecture W. T. Tsai Computer Science & Engineering Department Arizona State University Tempe, AZ 85287 [email_address]
    2. 2. Agenda <ul><li>Overview of Interoperability </li></ul><ul><li>OASIS CPP/CPA Collaboration </li></ul><ul><li>Use Scenarios </li></ul><ul><li>Dynamic Collaboration Protocol (DCP) </li></ul><ul><li>Verification Framework for DCP </li></ul><ul><li>Case study </li></ul><ul><li>Summary </li></ul>
    3. 3. Interoperability <ul><li>Interoperability is defined as </li></ul><ul><ul><li>The ability of two or more systems or components to exchange information and to use the information that has been exchanged. </li></ul></ul><ul><li>Interoperability is a critical issue for service-oriented systems. </li></ul><ul><ul><li>But interoperability of what? </li></ul></ul>
    4. 4. Kinds of Interoperability <ul><li>Protocol interoperability </li></ul><ul><ul><li>Allow two parties (services, processes, clients, or systems) to communicate with each other. For example, WSDL, SOAP, OWL-S, HTTP, UDDI, ebXML. </li></ul></ul><ul><ul><li>Protocol interoperability is the minimum requirements. </li></ul></ul><ul><ul><li>Issues: QoS, performance, implementation </li></ul></ul><ul><li>Data interoperability </li></ul><ul><ul><li>Allow two parties (services, processes, clients, or systems) to exchange data. </li></ul></ul><ul><ul><ul><li>MetaData, XML (data schema) </li></ul></ul></ul><ul><ul><ul><li>Issues: Security, integrity, data provenance </li></ul></ul></ul>
    5. 5. Kinds of Interoperability <ul><li>Process Interaction: Allow two parties to communicate with each other while the processes are running. </li></ul><ul><ul><li>Static arrangement: Both processes and interactions are specified (or fixed) before interaction. This is traditional SOA. </li></ul></ul><ul><ul><ul><li>For example, one of them is a workflow of an application, the other is a service. </li></ul></ul></ul><ul><ul><ul><li>Both can be services. </li></ul></ul></ul><ul><ul><li>Dynamic arrangement </li></ul></ul><ul><ul><ul><li>While interaction protocols are established at runtime. </li></ul></ul></ul><ul><ul><ul><ul><li>But the first is to allow data exchange. (OASIS CPP/CPA) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Allow these processes to interact with the workflow. (ECPP/ECPA) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Issues: This is the current challenge. </li></ul></ul></ul></ul>
    6. 6. Interoperability in SOA <ul><li>Following the concept of SOA, each sub-system in the composed complex system </li></ul><ul><ul><li>Is a self-contained autonomous system; </li></ul></ul><ul><ul><li>Provides services; </li></ul></ul><ul><ul><li>Collaborates with each other; and </li></ul></ul><ul><ul><li>Loosely couples with other systems. </li></ul></ul><ul><li>To achieve interoperability, each system needs to be able to </li></ul><ul><ul><li>Exchange data and services in a consistent and effective way. </li></ul></ul><ul><ul><li>Provide universal access capacities independent of platforms. </li></ul></ul>
    7. 7. Interoperability in SOA (cont.) <ul><li>For service-oriented systems, services </li></ul><ul><ul><li>Exchange data; and </li></ul></ul><ul><ul><li>Collaborate with fellow services in terms of tasks and missions. </li></ul></ul><ul><li>While the current interoperability technologies such as standard interface and ontology are critical for SOA interoperability, they are not sufficient because: </li></ul><ul><ul><li>The current interface technologies provide method signatures only for a single service. </li></ul></ul><ul><ul><li>These method signatures do not provide sufficient information for another new system or user to properly use the service, e.g. </li></ul></ul><ul><ul><ul><li>What is the proper calling sequence among methods of this service </li></ul></ul></ul><ul><ul><ul><li>What is the dependency among methods of a service or another service. </li></ul></ul></ul>
    8. 8. Interoperability in SOA (cont.) <ul><li>To achieve full function, we need to expand the interoperability because: </li></ul><ul><ul><li>Data exchange is a small part of interoperability only; </li></ul></ul><ul><ul><li>Systems need to interact with each other at run-time; </li></ul></ul><ul><ul><li>One system may use the services provided by others; and </li></ul></ul><ul><ul><li>Systems may need to work with some legacy systems. </li></ul></ul><ul><li>To make heterogeneous systems working with each other, we need to have a framework which provides support for </li></ul><ul><ul><li>Platform independent system service specification, </li></ul></ul><ul><ul><li>System wrapping for legacy systems, and </li></ul></ul><ul><ul><li>System composition and re-composition. </li></ul></ul>
    9. 9. Issues in Interoperability <ul><li>We need to design efficient, secure and scalable protocols at all levels. </li></ul><ul><li>Data provenance is a serious challenge in SOA because we have numerous data going through a SOA system, and we need to know the “history” of data. How reliable is it? How secure is it? What is the integrity level? How accurate is it? </li></ul><ul><li>Metadata: how do we design the metadata we needed? How do we evolve metadata? </li></ul><ul><li>Process Interaction: how do we specify the possible interaction? How can two services establish a dynamic interaction at runtime? How can the two services verify/evaluate/monitor/assess the dynamic interaction? </li></ul><ul><li>Do we need this kind of interoperability? </li></ul><ul><li>What are the implication of these kinds of interoperability? </li></ul>
    10. 10. Agenda <ul><li>Overview of Interoperability </li></ul><ul><li>OASIS CPP/CPA Collaboration </li></ul><ul><li>Use Scenarios </li></ul><ul><li>Dynamic Collaboration Protocol (DCP) </li></ul><ul><li>Verification Framework for DCP </li></ul><ul><li>Case study </li></ul><ul><li>Summary </li></ul>
    11. 11. OASIS CPP/CPA Collaboration <ul><li>Collaboration is an association, partnership, or agreement between two legal entities to conduct business. [OASIS] </li></ul><ul><ul><li>A collaboration likely results in at least one business process being implied between entities. </li></ul></ul><ul><li>Collaboration over the World Wide Web is a broad area of research involving wide-reaching issues [W3C] : </li></ul><ul><ul><li>Knowledge representation; </li></ul></ul><ul><ul><li>Annotation of objects; </li></ul></ul><ul><ul><li>Notification; and </li></ul></ul><ul><ul><li>Any other issues which arise in the creation of shared information systems and collaborative development. </li></ul></ul>
    12. 12. OASIS ebXML CPP/CPA specification <ul><li>Collaboration-Protocol Profile (CPP) describes the Message-exchange capabilities of a Party. </li></ul><ul><li>Collaboration-Protocol Agreement (CPA) describes the Message-exchange agreement between two Parties. </li></ul><ul><li>A CPA MAY be created by computing the intersection of the two Partners' CPPs. </li></ul><ul><li>Included in the CPP and CPA are details of transport, messaging, security constraints, and bindings to a Business-Process-Specification (or, for short, Process-Specification) document. </li></ul><ul><li>The objective of the OASIS ebXML CPP/CPA specification is to ensure interoperability between two Parties even though they MAY procure application software and run-time support software from different vendors. </li></ul><ul><li>Both Parties SHALL use identical copies of the CPA to configure their run-time systems. The configuration process MAY be automated by means of a suitable tool that reads the CPA and performs the configuration process. </li></ul>http://www.ebxml.org/specs/ebcpp-2.0.pdf
    13. 13. Overview of Collaboration-Protocol Agreement (CPA) Party A and Party B use their CPPs to jointly construct a single copy of a CPA by calculating the intersection of the information in their CPPs. The resulting CPA defines how the two Parties will behave in performing their Business Collaboration.
    14. 14. Working Architecture of CPP/CPA with ebXML Registry
    15. 15. Limitation of CPP/CPA <ul><li>Focus on message exchange only. </li></ul><ul><li>Thus, any issues related to workflow will not be addressed at all. </li></ul><ul><li>Common issues related to workflow during collaboration is </li></ul><ul><ul><li>Deadlock: Each party is waiting for the other party to reply. </li></ul></ul><ul><ul><li>Starvation: The other party fails to respond, and the party waiting for the data is starving. </li></ul></ul><ul><ul><li>Synchronization: both parties need to synchronize with each other. </li></ul></ul><ul><ul><li>Transaction: all or nothing. </li></ul></ul><ul><ul><li>Missing: A message sent originally and received. But the message was discarded after a receiver rollback, and needs the message to be re-sent, but the sender never rolls back. </li></ul></ul><ul><ul><li>Orphan: A message has been sent, but the sending party rolls back, and this message becomes invalid, but it has been sent and received. </li></ul></ul>
    16. 16. Limitation of CPP/CPA Deadlock Starving
    17. 17. OASIS CPP/CPA Example http://www.oasis-open.org/committees/ebxml-cppa/schema/cpa-example-2_0b.xml http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0b.xsd http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-example-companyA-2_0b.xml http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-example-companyB-2_0b.xml Example of CPA Document Example of CPP Document
    18. 18. Agenda <ul><li>Overview of Interoperability </li></ul><ul><li>Data Provenance </li></ul><ul><li>OASIS CPP/CPA Collaboration </li></ul><ul><li>Use Scenarios </li></ul><ul><li>Dynamic Collaboration Protocol (DCP) </li></ul><ul><li>Verification Framework for DCP </li></ul><ul><li>Case study </li></ul><ul><li>Summary </li></ul>
    19. 19. Use Scenarios <ul><li>Use scenarios </li></ul><ul><ul><li>Is designed for service interoperability specification </li></ul></ul><ul><ul><li>It specifies how a service or system is used by other services or systems. </li></ul></ul><ul><ul><li>It focuses on the work flow part of the service interoperability. </li></ul></ul><ul><ul><li>It defines how a particular function can be used in a stepwise fashion. </li></ul></ul><ul><li>Use Scenario vs. Process Specification </li></ul><ul><ul><li>A process specification describes the behavior of a system when the system is activated with a specific input. </li></ul></ul><ul><ul><li>A use scenario describes a possible sequence of actions to activate a service provided by the system. </li></ul></ul>
    20. 20. Use Scenario Analyses <ul><li>With the use scenario specified, we can perform </li></ul><ul><ul><li>Automated interoperation generation </li></ul></ul><ul><ul><li>Interoperation correctness checking </li></ul></ul><ul><ul><li>Interoperability cross checking </li></ul></ul><ul><li>With the support of the analytic techniques mentioned above, users can verify the correctness of use scenario. </li></ul><ul><ul><li>This can further enhance the interoperability of systems. </li></ul></ul>
    21. 21. ACDATE / Process Overview <ul><li>The ACDATE (Actors, Conditions, Data, Actions, aTtributes, Events) modeling specification </li></ul><ul><ul><li>A language for modeling and specification in the domain of system engineering and software engineering. </li></ul></ul><ul><ul><li>It facilitates the specification, analysis, simulation, and execution of the requirement and therefore the system. </li></ul></ul><ul><li>A Process is a semi-formal description of system functionality </li></ul><ul><ul><li>It is a sequence of events expected during operation of system products which includes the environment conditions and usage rates as well as expected stimuli (inputs) and response (outputs). </li></ul></ul><ul><li>ACDATE entities are the building blocks for Process specification. </li></ul><ul><ul><li>After one’s system requirements have been decomposed into ACDATE entities, one can then specify Processes. </li></ul></ul><ul><li>This ACDATE/Process model allows for system modeling and provides the capability to perform various analyses of requirement V&V. </li></ul>
    22. 22. Use Scenario Specification -- syntax & semantics <ul><li>structural constructs: </li></ul><ul><ul><li>choice { option [] option [] … option [] }: </li></ul></ul><ul><ul><ul><li>choice means that the interoperation can select any single sub-process (listed as options ) to continue the control flow. </li></ul></ul></ul><ul><ul><li>{} precond : </li></ul></ul><ul><ul><ul><li>precond indicates the preconditions before a particular action </li></ul></ul></ul><ul><ul><li>postcond {}: </li></ul></ul><ul><ul><ul><li>postcond indicate the postconditions after a particular action </li></ul></ul></ul><ul><ul><li>criticalreg {}: </li></ul></ul><ul><ul><ul><li>criticalreg indicate a critical region such that no other actions can take place to interrupt the execution of actions within the critical region. Any action sequence outside a critical region can be intervened by any sub-process. </li></ul></ul></ul><ul><ul><li><>: </li></ul></ul><ul><ul><ul><li>Any entities enclosed by <> are parameter entities . </li></ul></ul></ul><ul><li>With sub-processes, the use scenario can describe the interoperation of hierarchical systems in different levels. </li></ul>
    23. 23. Agenda <ul><li>Overview of Interoperability </li></ul><ul><li>OASIS CPP/CPA Collaboration </li></ul><ul><li>Use Scenarios </li></ul><ul><li>Dynamic Collaboration Protocol (DCP) </li></ul><ul><li>Verification Framework for DCP </li></ul><ul><li>Case study </li></ul><ul><li>Summary </li></ul>
    24. 24. Process Collaboration <ul><li>Process collaboration is a higher-level collaboration than data collaborations. </li></ul><ul><ul><li>It requires higher interoperability of collaborative partners. </li></ul></ul><ul><ul><li>It is more efficient, more adaptive and more dynamic than data collaboration. </li></ul></ul><ul><li>The development of process collaboration is shown as following: </li></ul>
    25. 25. Dynamic Process Collaboration <ul><li>Dynamic allows different services to interoperate with each other at system runtime in SOA </li></ul><ul><li>The Dynamic on-demand service-oriented collaboration architecture is a flexible architecture: </li></ul><ul><ul><li>Application architecture, collaboration protocols and individual services can be dynamically selected and reconfigured to fit the new application environment. </li></ul></ul><ul><li>Dynamic collaboration includes: </li></ul><ul><ul><li>A collaboration specification language based on PSML-S; </li></ul></ul><ul><ul><li>A set of on-demand process collaboration protocols by extending ebXML collaboration protocols; and </li></ul></ul><ul><ul><li>A collaboration framework based on CCSOA framework. </li></ul></ul>
    26. 26. Service Specification <ul><li>To achieve interoperability through network, the services need to be modeled and annotated in a standard formal/semi-formal specification </li></ul><ul><ul><li>Different services can understand each other and communicate with each other. </li></ul></ul><ul><li>Service specification is a very important part for effective service collaboration and composition. </li></ul>
    27. 27. Service Specification Evolution <ul><li>Initial stage (interface stage) </li></ul><ul><ul><li>Service descriptions mainly contain the input/output information, such as function name, return type, and parameter types. </li></ul></ul><ul><li>Process description stage </li></ul><ul><ul><li>Service specifications contain an abstract process description in addition to interface information. </li></ul></ul><ul><li>Service collaboration specification stage </li></ul><ul><ul><li>The service specifications not only contain everything in the previous two stages, but also service collaboration protocols such as collaboration protocol establishment, collaboration protocol profiles, collaboration constraints, and patterns. </li></ul></ul><ul><ul><ul><li>WS-CDL </li></ul></ul></ul><ul><ul><ul><li>WSFL </li></ul></ul></ul><ul><li>Consumer-centric specification stage </li></ul><ul><ul><li>The entire application can be specified, published, searched, discovered, and composed. </li></ul></ul>
    28. 28. PSML-C Service Specification <ul><li>PSML-C is designed to support the specification, modeling, analysis, and simulation of service process collaboration based on PSML-S. </li></ul><ul><li>The PSML-C specification includes: </li></ul><ul><ul><li>Process Specification; </li></ul></ul><ul><ul><li>Constraint Specification; </li></ul></ul><ul><ul><li>Interface Specification; and </li></ul></ul><ul><ul><li>Collaboration Specification. </li></ul></ul>
    29. 29. PSML-C Collaboration Specification <ul><li>Collaboration specification consists of </li></ul><ul><ul><li>A set of extended CPP’s (ECPP); </li></ul></ul><ul><ul><li>A set of use scenarios; and </li></ul></ul><ul><ul><li>A set of predefined extended CPA’s (ECPA). </li></ul></ul><ul><li>Each ECPP </li></ul><ul><ul><li>Describes one collaboration capability of the service </li></ul></ul><ul><ul><li>Is associated with one use scenario that provides information on how the other services can use the interfaces published for this specific collaboration capability. </li></ul></ul><ul><ul><li>Each ECPP references to a process specification as the internal control logic for this specific collaboration capability. </li></ul></ul><ul><ul><li>The ECPA set which contains predefined ECPA’s that have been used and evaluated in the previously carried out service collaboration for rapid collaboration establishment. </li></ul></ul>
    30. 30. PSML-C Dynamic Process Collaboration Protocols <ul><li>PSML-C Process Collaboration Protocol is derived from the ebXML CPP and CPA. </li></ul><ul><ul><li>ebXML CPP & CPA primarily focus on the message exchange capabilities of collaborating services. </li></ul></ul><ul><ul><li>They provide general information on collaboration in E-Business domain. </li></ul></ul><ul><ul><li>But they lack of information on process collaboration. </li></ul></ul><ul><li>PSML-C, based on PSML-S, has a process oriented modeling language which provides rich information on process specification. </li></ul><ul><li>This approach extends the ebXML CPP and CPA by adding more process related information to the service collaboration specification. </li></ul><ul><ul><li>Extended CPP and CPA specify more information on process collaboration and system workflow. </li></ul></ul>
    31. 31. PSML-C Dynamic Process Collaboration Protocols (Cont.) <ul><li>PSML-C Collaboration Protocol consists of: </li></ul><ul><ul><li>Extended Collaboration Protocol Profile (ECPP): Describes the collaboration capabilities of the service. </li></ul></ul><ul><ul><li>Extended Collaboration Protocol Agreement (ECPA): Describes the collaboration interactions among the collaborative services. </li></ul></ul><ul><ul><li>Use Scenario: Describes how to carry out a specific collaboration with respect to a given ECPP. </li></ul></ul><ul><ul><li>Process Specification Reference: References to the internal control logic of each service </li></ul></ul>
    32. 32. Extended CPP (ECPP) <ul><li>An ECPP is a quadruple of (START, END, IN, OUT) where: </li></ul><ul><ul><li>START is the set of start points where START ≠ ø. </li></ul></ul><ul><ul><ul><li>A collection of entry points to the process specification where the process begins to execute. </li></ul></ul></ul><ul><ul><ul><li>The START set is a non-null set. </li></ul></ul></ul><ul><ul><li>END is the set of end points where END ≠ ø. </li></ul></ul><ul><ul><ul><li>A collection of exit points of the process specification where the process finishes executing. </li></ul></ul></ul><ul><ul><ul><li>The END set is a non-null set. </li></ul></ul></ul><ul><ul><li>IN is the set of incoming collaboration points. </li></ul></ul><ul><ul><ul><li>A collection of collaboration points of the process specification that can take incoming events. </li></ul></ul></ul><ul><ul><ul><li>The IN set specifies what Actions in the process specification can be triggered by incoming Events from other services. </li></ul></ul></ul><ul><ul><ul><li>An in collaboration point will be further mapped to an in type interface of the service in the collaboration agreement. </li></ul></ul></ul><ul><ul><li>OUT is the set of outgoing collaboration points. </li></ul></ul><ul><ul><ul><li>A collection of collaboration points of the process specification that can issue outgoing events. </li></ul></ul></ul><ul><ul><ul><li>The OUT set specifies what Actions in the process specification can issue outgoing Events to invoke other services. </li></ul></ul></ul><ul><ul><ul><li>An out collaboration point will be further mapped to an out type interface of the service in the collaboration agreement. </li></ul></ul></ul>
    33. 33. Extended CPP (Cont.) <ul><li>Following constraints are highly recommended but not required to the ECPP specification to describe a well-formed collaboration model: </li></ul><ul><ul><li>Card START = 1  (Card IN > 0  Card OUT > 0) </li></ul></ul><ul><li>An example of an ECPP specification for a simple online banking service is: </li></ul><ul><ul><ul><li>START = {Login} </li></ul></ul></ul><ul><ul><ul><li>END = {Logout} </li></ul></ul></ul><ul><ul><ul><li>IN = {ApproveLoan} </li></ul></ul></ul><ul><ul><ul><li>OUT = {CreditCheck} </li></ul></ul></ul>
    34. 34. Extended CPA (ECPA) <ul><li>PSML-C adds collaboration transaction to the ebXML CPA. </li></ul><ul><ul><li>When two processes need to collaborate with each other, they need to negotiate with each other to specify possible/valid collaboration transaction. </li></ul></ul><ul><li>An ECPA contains a set CT which specifies a collection of collaboration transactions. </li></ul><ul><li>A collaboration transaction is a pair of (out, in) where in  IN 1 and out  OUT 2 and IN 1 is the IN set and OUT 2 is the OUT set of collaboration services respectively. </li></ul>
    35. 35. Extended CPA (Cont.) <ul><li>For two services to be able to collaborate, the set CT must be a non-null set. </li></ul><ul><li>An example of an ECPA specification between a simple online banking service and a credit service is: </li></ul><ul><ul><ul><li>CT = {(CreditCheck, ProcessCreditChecking), (CreditOK, ApproveLoan)} </li></ul></ul></ul><ul><ul><ul><li>where </li></ul></ul></ul><ul><ul><ul><li>CreditCheck: an out collaboration point of online banking service; </li></ul></ul></ul><ul><ul><ul><li>ApproveLoan: an in collaboration point of online banking service; </li></ul></ul></ul><ul><ul><ul><li>ProcessCreditChecking: an in collaboration point of credit service; and </li></ul></ul></ul><ul><ul><ul><li>CreditOK: an out collaboration point of credit service. </li></ul></ul></ul>
    36. 36. LTL Use Scenario Specification <ul><li>The Use Scenario specification also uses the Linear Temporal Logic (LTL) syntax and semantics to specify the usage pattern of the service with respect to a specific collaboration. As a result, a use scenario specification is built up from a set of </li></ul><ul><ul><li>proposition variables p1,p2,...; </li></ul></ul><ul><ul><li>the usual logic connectives  ,  ,  , and  ; and </li></ul></ul><ul><ul><li>the temporal modal operators </li></ul></ul><ul><ul><ul><li>N (for next) </li></ul></ul></ul><ul><ul><ul><li>G (for always) </li></ul></ul></ul><ul><ul><ul><li>F (for eventually) </li></ul></ul></ul><ul><ul><ul><li>U (for until), and </li></ul></ul></ul><ul><ul><ul><li>R (for release). </li></ul></ul></ul><ul><li>An example of a use scenario specification for online banking service is: </li></ul><ul><li>Login F Logout </li></ul><ul><li>which means any login operation must finally followed by a logout operation. </li></ul>
    37. 37. Process Specification Reference <ul><li>Process specification reference is a reference to the process specification which specifies the internal control logic associated with an ECPP. </li></ul><ul><ul><li>With this reference information, service matching technologies can verify both the interface information as well as the internal process specification. </li></ul></ul><ul><li>An example of process specification reference of a simple online banking service is that the credit checking collaboration references to the auto loan application process specification. </li></ul>
    38. 38. PSML-C Composition & Collaboration Framework
    39. 39. PSML-C Composition & Collaboration Framework (Cont.) <ul><li>The service broker stores not only service specifications, but also application templates and collaboration patterns. </li></ul><ul><li>Application builders publish the application templates in the service broker. </li></ul><ul><li>Service providers can subscribe to the application registry. </li></ul><ul><li>The pattern repository stores different types of collaboration patterns including architecture patterns, process patterns, and constraint patterns. </li></ul><ul><li>The Service Discovery & Matching Agent (SDMA) discovers and matches not only the services but also the application templates. </li></ul><ul><li>The Service Verification & Validation Agent (SVVA) supports the verification and validation on both individual services and the composite service collaboration with CV&V (Collaborative Verification & Validation) technologies. </li></ul>
    40. 40. Collaboration Patterns <ul><li>Collaboration Patterns are repeatable techniques used by collaborative services to facilitate rapid and adaptive service composition and collaboration. </li></ul><ul><ul><li>Reduce effort for composition </li></ul></ul><ul><ul><li>Reuse previously identified collaboration </li></ul></ul><ul><li>Compatible with the categorization in PSML-S specification and modeling process. </li></ul><ul><ul><li>Architecture Patterns </li></ul></ul><ul><ul><li>Process (behavioral) Patterns </li></ul></ul><ul><ul><li>Constraint Patterns </li></ul></ul><ul><li>When compositing a new service, we follow the order below: </li></ul><ul><ul><li>Architecture -> Process -> Constraint </li></ul></ul>
    41. 41. Application Composition Process <ul><li>When building a new service-oriented application which is a composite service consisting of multiple collaborative services, the service composition and collaboration process can be described as following: </li></ul><ul><ul><li>Application builder submit a request to the application repository to retrieve an appropriate application template; </li></ul></ul><ul><ul><li>The application builder decides which architecture pattern needs to be applied to build the application; </li></ul></ul><ul><ul><li>Only if the architecture of the application has been identified, the application builder identifies what process patterns can be applied; </li></ul></ul><ul><ul><li>Then, the constraint pattern may be applied to the application based on the architectural and behavioral design; </li></ul></ul><ul><ul><li>Application builder retrieves different services from the service pool according to the application template subscription information provided by the service broker; </li></ul></ul><ul><ul><li>The services will be tested against different acceptance criteria provided by the application builder for service selection; </li></ul></ul><ul><ul><li>Application builder simulates the composed service to evaluate the overall performance; </li></ul></ul><ul><ul><li>Application builder integrate the selected services and deploy the application. </li></ul></ul>
    42. 42. PSML-C Dynamic Collaboration Architecture
    43. 43. PSML-C Dynamic Collaboration Architecture (Cont.) <ul><li>For collaboration, each service will be specified with </li></ul><ul><ul><li>Process specification </li></ul></ul><ul><ul><li>Interface specification </li></ul></ul><ul><ul><li>Collaboration specification </li></ul></ul><ul><li>Before each service can be registered to the repository, it will be verified and validated by multiple static analyses including simulation. </li></ul><ul><li>The collaboration protocol profiles will be registered in the registry and stored in the repository for discovery and matching. </li></ul><ul><li>Once the collaboration is established, dynamic analyses can be performed to evaluate the runtime behaviors of the service collaboration. </li></ul>
    44. 44. PSML-C Collaboration Phases <ul><li>Collaboration Preparation </li></ul><ul><ul><li>Service specification </li></ul></ul><ul><ul><li>Static analyses </li></ul></ul><ul><ul><li>Service registration </li></ul></ul><ul><ul><li>Application template registration </li></ul></ul><ul><li>Collaboration Establishment </li></ul><ul><ul><li>Service discovery and matching </li></ul></ul><ul><ul><li>Service ranking </li></ul></ul><ul><ul><li>Collaboration agreement negotiation </li></ul></ul><ul><ul><li>Dynamic simulation </li></ul></ul><ul><li>Collaboration Execution </li></ul><ul><ul><li>Policy enforcement </li></ul></ul><ul><ul><li>Dynamic reconfiguration and recomposition </li></ul></ul><ul><ul><li>Dynamic monitoring and profiling </li></ul></ul><ul><li>Collaboration Termination </li></ul><ul><ul><li>Collaboration verification </li></ul></ul><ul><ul><li>Collaboration evaluation </li></ul></ul>
    45. 45. Agenda <ul><li>Overview of Interoperability </li></ul><ul><li>OASIS CPP/CPA Collaboration </li></ul><ul><li>Use Scenarios </li></ul><ul><li>Dynamic Collaboration Protocol (DCP) </li></ul><ul><li>Verification Framework for DCP </li></ul><ul><li>Case study </li></ul><ul><li>Summary </li></ul>
    46. 46. Verification Framework for Dynamic Collaboration Protocol (DCP) <ul><li>Traditionally, systems and software are verified using the IV&V (Independent Verification and Validation) approach, where independent teams are used to verify and validate the system during system development. </li></ul><ul><li>The SOA challenges the IV&V approach as new services will be discovered after deployment, and thus it is necessary to have CV&V (Collaborative Verification and Validation) approach where service brokers, providers and consumers work in a collaborative manner, and some of testing need to be performed at runtime, e.g., when a new service is discovered and being incorporated into the application. </li></ul><ul><li>The DCP is even more challenging than the conventional SOA because even the collaboration will be determined at runtime. While it is possible to re-specify the workflow at runtime during the dynamic reconfiguration in conventional SOA, it is different in DCP, where the actual collaboration is unknown until the participating services dynamically establish the protocol. </li></ul>
    47. 47. Verification Framework for Dynamic Collaboration Protocol (DCP) Simulation can be performed using sample applications before deployment, and just-in-time on-the-fly simulation can be performed when the actual collaboration protocol and parties are known at runtime. Just-in-time on-the-fly simulation for composite service Specification and models are simulated to verify the design and/or code Simulation Model checking can be performed on the partial view, and again when the complete view is available. Just-in-time dynamic model checking on the specification in, e.g., WSDL and OWLS. Model checking on the code or state model. Model Checking Dynamic profiling and re-profiling at collaboration runtime Dynamic profiling with data collected by distributed agents. Static profiling Test case profiling As each service will have a partial view only, test coverage can be completed only when the actual collaboration is established. Service providers can have traditional coverage, and service brokers and clients may have black-box (such as WSDL) coverage only. Input domain, structural (white-box), or functional (black-box) coverage. Testing coverage Dynamic configuration and collaboration are established at runtime and verified at runtime Dynamic configuration and systems are linked at runtime and verified at runtime Static configurations and systems must be linked before integration testing Integration testing Historical collaboration data can be re-played for regression testing. On-line regression testing using data dynamically collected. Off-line regression testing. Regression testing On-line just-in-time testing in the collaboration environment On-line just-in-time testing in the application environment. Off-line field testing or simulation. Operational testing Before the establishment of collaboration protocol at runtime, a service has a partial view only, and thus verification will be limited. As the complete collaboration will be available at runtime, verification need to be performed at runtime. Verification by collaboration among service providers, application builders, and independent service brokers. The emphases are on runtime and just-in-time testing, and evaluation using data dynamically collected. The verification team is independent of the development team to ensure objectivity and to avoid common-mode errors. Mostly done by software providers. Verification Approach Dynamic application composition via run-time service collaboration The workflow model is specified but services can be dynamically discovered. Statically constructed based on specification. Application Model DCP Collaboration V&V Service-Oriented CV&V Traditional IV&V
    48. 48. Verification in Each DCP Stage Policy Specification / Test Agent Update Profiling Termination Policy Enforcement / Monitoring / Test Agent N/A Execution USS compatibility check / Simulation / Test Agent N/A Establishment Simulation / Policy Enforcement / Test Agent Process Consistency / Model Checking Prepare/ Profiling Dynamic Static Stage
    49. 49. Verification at Preparation and Profiling Stage Specification Completeness Table <ul><li>Static Analysis </li></ul><ul><ul><li>Completeness & Consistency (C&C) Checking </li></ul></ul><ul><ul><li>Consistency Checking by Model Checking </li></ul></ul><ul><ul><li>Consistency model checking on USS and IPS </li></ul></ul><ul><ul><li>Consistency model checking on ECPP and IPS </li></ul></ul><ul><li>Dynamic Analysis </li></ul><ul><ul><li>Dynamic runtime simulation </li></ul></ul><ul><ul><li>Policy enforcement </li></ul></ul><ul><ul><li>Distributed testing with Agents </li></ul></ul>Simulation with Unknown Partners Partial view with local CIS only CIS Partial view with local IPS only IPS Partial view with local USS only USS Has previous sample ECPA ECPA Partial view with local ECPP only ECPP Completeness Spec
    50. 50. Verification at Establishment Stage Specification Completeness Table <ul><li>Static Analysis </li></ul><ul><ul><li>N/A </li></ul></ul><ul><li>Dynamic Analysis </li></ul><ul><ul><li>USS compatibility analysis </li></ul></ul><ul><ul><li>Dynamic simulation and policy enforcement </li></ul></ul><ul><ul><li>Distributed testing with Agents </li></ul></ul>Simulation with Known Partners Complete view CIS Complete view with global IPS IPS Complete view USS Complete view with global ECPA ECPA Complete view ECPP Completeness Spec
    51. 51. Verification at Execution Stage Specification Completeness Table <ul><li>Static Analysis </li></ul><ul><ul><li>N/A </li></ul></ul><ul><li>Dynamic Analysis </li></ul><ul><ul><li>Runtime Monitoring and Testing </li></ul></ul><ul><ul><li>Dynamic simulation and policy enforcement </li></ul></ul><ul><ul><li>Distributed testing with Agents </li></ul></ul>Simulation with Known Partners Complete view CIS Complete view with global IPS IPS Complete view USS Complete view with global ECPA ECPA Complete view ECPP Completeness Spec
    52. 52. Verification at Termination Stage <ul><li>Static Analysis </li></ul><ul><ul><li>Update Profiling </li></ul></ul><ul><li>Dynamic Analysis </li></ul><ul><ul><li>Policy enforcement </li></ul></ul><ul><ul><li>Re-profiling </li></ul></ul><ul><ul><li>Distributed testing with Agents </li></ul></ul>Verification in Collaboration Termination
    53. 53. Integrated DCP architecture with dynamic verification Each service is specified in process specification, interface specification, and collaboration specification. Before each service can be registered to the repository, it will be verified and validated by multiple static analyses. The collaboration protocol profiles will be registered in the registry and stored in the repository for discovery and matching. Once the collaboration is established, dynamic analyses can be performed to verify the runtime behaviors of the service collaboration.
    54. 54. Agenda <ul><li>Overview of Interoperability </li></ul><ul><li>OASIS CPP/CPA Collaboration </li></ul><ul><li>Use Scenarios </li></ul><ul><li>Dynamic Collaboration Protocol (DCP) </li></ul><ul><li>Verification Framework for DCP </li></ul><ul><li>Case study </li></ul><ul><li>Summary </li></ul>
    55. 55. Collaboration Example - Collaboration Scenario <ul><li>The collaboration is based on the PSML-C collaboration framework. </li></ul>
    56. 56. Collaboration Example - Application Composition <ul><li>For Collaboration Control Center, Bait, and Runner, we choose the tree pattern as the architecture pattern; </li></ul><ul><li>We choose the mediator pattern as the process pattern; </li></ul><ul><li>For constraint patterns: </li></ul><ul><ul><li>Two way synchronous communication for communication channel between Collaboration Control Center and Runner; </li></ul></ul><ul><ul><li>One way synchronous communication for communication channel between Collaboration Control Center and Bait </li></ul></ul>
    57. 57. Collaboration Example - Adaptive Dynamic Re-composition <ul><li>In case of emergency, all communications to the control center are not available: </li></ul><ul><ul><li>Dynamic recomposition </li></ul></ul><ul><ul><li>Dynamically switch to direct collaboration </li></ul></ul>
    58. 58. Collaboration Example - Service Specification for Bait <ul><li>ECPP for the Bait service: </li></ul><ul><ul><li>ActionSet = {Locate, Approach, Engage, Distract, Disengage} </li></ul></ul><ul><li>Within which: </li></ul><ul><ul><li>START = {Locate} </li></ul></ul><ul><ul><li>END : {Disengage} </li></ul></ul><ul><ul><li>IN : {Locate, Disengage} </li></ul></ul><ul><ul><li>OUT : {Locate, Approach, Engage, Distract} </li></ul></ul><ul><li>Process Specification: </li></ul>
    59. 59. Collaboration Example - Service Specification for Runner <ul><li>ECPP for the Runner service: </li></ul><ul><ul><li>ActionSet = {Prepare, Run, Confirm, Retry} </li></ul></ul><ul><li>Within which: </li></ul><ul><ul><li>START : {Prepare} </li></ul></ul><ul><ul><li>END : {Confirm} </li></ul></ul><ul><ul><li>IN : {Prepare, Run} </li></ul></ul><ul><ul><li>OUT : {Prepare, Confirm} </li></ul></ul><ul><li>Process Specification: </li></ul>
    60. 60. Collaboration Example - ECPA Negotiated <ul><li>CT = { (Distract, Run), (Confirm, Disengage) } </li></ul>
    61. 61. Rapid Application Building Example - Application Template <ul><li>Rapid application building is based on the CCSOA framework </li></ul><ul><li>The application builder searches the application repository and retrieves the pre-stored online shopping application mission workflow </li></ul><ul><ul><li>Each box with grey background denotes a service placeholder. </li></ul></ul><ul><ul><li>Each collaboration point needs to be replaced with an actual service when building the application. </li></ul></ul><ul><ul><li>There are several pre-approved services linked to the collaboration points defined in the application template. </li></ul></ul><ul><li>Diagrams below show the </li></ul><ul><ul><li>Online shopping application template </li></ul></ul><ul><ul><li>Service Repository </li></ul></ul>
    62. 62. Rapid Application Building Example - Final Application
    63. 63. Agenda <ul><li>Overview of Interoperability </li></ul><ul><li>OASIS CPP/CPA Collaboration </li></ul><ul><li>Use Scenarios </li></ul><ul><li>Dynamic Collaboration Protocol (DCP) </li></ul><ul><li>Verification Framework for DCP </li></ul><ul><li>Case study </li></ul><ul><li>Summary </li></ul>
    64. 64. Summary <ul><li>As a part of an integrated service-oriented development environment: </li></ul><ul><ul><li>PSML-S provides the modeling and specification capacity for services. </li></ul></ul><ul><ul><ul><li>The model specified in PSML-S can be verified by multiple analyses </li></ul></ul></ul><ul><ul><li>CCSOA provides a building framework for service collaboration </li></ul></ul><ul><ul><ul><li>Application template </li></ul></ul></ul><ul><ul><li>Based on the PSML-S and CCSOA, PSML-C provides capabilities of specification and analyses for service-oriented on-demand process collaboration. </li></ul></ul><ul><ul><ul><li>Application composition </li></ul></ul></ul><ul><ul><ul><li>Service collaboration </li></ul></ul></ul>
    65. 65. Benefits <ul><li>PSML-C collaboration framework facilitates the rapid and adaptive service composition and collaboration based on PSML-S and CCSOA: </li></ul><ul><ul><li>Multiple static analyses can be applied to evaluate collaboration specification </li></ul></ul><ul><ul><li>Collaboration can be simulated to evaluate the dynamic behaviors of the collaboration </li></ul></ul><ul><ul><li>Process specification based PSML-C collaboration protocols facilitates the flexible on-demand process collaboration among the participants </li></ul></ul><ul><ul><li>Predefined collaboration patterns can greatly reduce the effort for application development </li></ul></ul><ul><ul><ul><li>Reuse the existing knowledge </li></ul></ul></ul><ul><ul><ul><li>Changes can be applied rapidly at the pattern level </li></ul></ul></ul>
    66. 66. Benefits (Cont.) <ul><li>With the PSML-C service composition and collaboration framework: </li></ul><ul><ul><li>User-Oriented services can be designed and developed more efficiently </li></ul></ul><ul><ul><li>It is possible to seamlessly deliver customized value-added services any time, any where to any device </li></ul></ul>
    67. 67. Thanks!