Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Webx 2010


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Webx 2010

  1. 1. An Approach to Event Driven Services and Composite Services Massimo Maresca Computer Platform Research Center (CIPI) University of Padova & Genova (Italy) [email_address]
  2. 2. Agenda <ul><li>Introduction </li></ul><ul><li>The Service Model </li></ul><ul><li>Service Creation & Deployment </li></ul><ul><li>Service Activation & Execution </li></ul><ul><li>Example: the Truck Tracker Service </li></ul><ul><li>Conclusions </li></ul>
  3. 3. 1. Introduction (1/3) <ul><li>Scenario </li></ul><ul><li>Availability of contents and services through technologies typical of the Web 2.0 philosophy such as RSS Feed, Atom, REST-WS, SOAP-WS, etc. </li></ul><ul><li>Availability of Telco services (e.g., phone calls, SMS messages, conference calls, etc) mainly due to Telecom Operators service exposure. </li></ul><ul><li>Availability of tools for the rapid development of convergent Composite Services (a.k.a. Mashups) that combine different resources such as Yahoo Pipes!, JackBe Presto, etc. </li></ul><ul><ul><li>Such tools mainly support Data Mashups (i.e., those Mashups that combine data extracted by different sources), while they do not support Event Driven Mashups (i.e., those Mashups in which the basic components interact through events) </li></ul></ul><ul><li>A reference model for the definition of Event Driven Mashups is proposed in this paper. </li></ul>
  4. 4. 1. Introduction (2/3) <ul><li>Example of a graphical Mashup Creation Tool </li></ul><ul><li>List of “composable” services on the left </li></ul><ul><li>Create your own Composite Service on the right </li></ul>
  5. 5. 1. Introduction (3/3) <ul><li>Applications </li></ul><ul><li>Web 2.0 Mashups: combination of data and services provided by means of technologies like RSS Feed, Atom, Web Services, etc. (for a complete list see the Programmable Web repository). Examples: </li></ul><ul><ul><li>E-government info (e.g., closed roads, concerts, etc.) + Google Maps </li></ul></ul><ul><ul><li>Monitor RSS Feed + New Tweet on Twitter </li></ul></ul><ul><ul><li>Monitor Google Calendar + Send SMS </li></ul></ul><ul><li>Enterprise Mashups: addressing the “Long Tail” 1 through combination of data and services belonging both to the private sphere of an Enterprise (e.g., the CRM system) and to the public Internet (e.g., the APIs listed in Programmable Web). </li></ul><ul><li>1 V. Hoyer, K. Stanoesvka-Slabeva, T. Janner, and C. Schroth. “Enterprise Mashups: Design Principles towards the Long Tail of User Needs.” In SCC '08: Proceedings of the 2008 IEEE International Conference on Services Computing, pages 601-602, Washington DC, USA. </li></ul>
  6. 6. 2. The Service Model (1/2) <ul><li>The model includes three entities, namely Events, Base Services and Composite Services. </li></ul><ul><li>2.1 Events </li></ul><ul><li>An Event is a notification associated to a Name and to a Property Set. A property is a <Name, Value> pair. </li></ul><ul><li>2.2 Base Services (BS) </li></ul><ul><li>Each BS wraps an external service / resource. </li></ul><ul><li>External Services are highly reusable </li></ul><ul><li>functionalities of common use like messaging, </li></ul><ul><li>localization, social networks, etc. </li></ul><ul><li>A BS may be synchronous or asynchronous </li></ul><ul><li>depending on the external service features. </li></ul>
  7. 7. 2. The Service Model (2/2) <ul><li>2.3 Composite Service (CS) </li></ul><ul><li>A Composite Service is a service implemented through the coordinate action of a set of BSs. </li></ul><ul><li>Horizontal arrows  communications among BSs </li></ul><ul><li>Vertical arrows  communications between a BS and the correspondent External Resource </li></ul>
  8. 8. 3. Service Creation and Deployment (1/2) <ul><li>BS creation and deployment </li></ul><ul><li>The creation of each BS needs: </li></ul><ul><ul><li>The creation of a set of files called Facets that describes the new Service. </li></ul></ul><ul><ul><li>The development of a software program that interacts with the specific External Service through different technologies (e.g., RSS Feed, WS, etc.). </li></ul></ul><ul><ul><li>The creation of a new BS requires programming skills but it can be considered as an upgrade of the system since it happens rarely. </li></ul></ul><ul><li>The deployment of each BS: </li></ul><ul><ul><li>is needed to make the new BS available in the Service Creation Environment </li></ul></ul><ul><ul><li>needs the deployment of its facets and programming code in the Service Execution Platform (i.e., the software module in charge of executing Composite Services) </li></ul></ul>
  9. 9. 3. Service Creation and Deployment (2/2) <ul><li>CS creation and deployment </li></ul><ul><li>The creation of each CS needs: </li></ul><ul><ul><li>The creation of a set of files called Facets that describes the new CSs. </li></ul></ul><ul><ul><li>The definition of the Composite Service logic by means of a graphical tool like the one showed in slide 4. </li></ul></ul><ul><ul><li>A CS is defined through a directed graph in which the blocks correspond to BS and the arrows to Event passing. This graph is saved in a repository when the creator presses the “save” button in the tool. </li></ul></ul><ul><ul><li>It is possible to define some assignments for each arrow. </li></ul></ul><ul><li>The deployment of each CS: </li></ul><ul><ul><li>is needed to make the new CS executable </li></ul></ul><ul><ul><li>needs the deployment of its facets and the parsing of the </li></ul></ul><ul><ul><li>XML file representing the CS logic to extract </li></ul></ul><ul><ul><li>the information used at run-time </li></ul></ul>
  10. 10. 4. Service Activation & Execution (1/5) <ul><li>The path from Service Creation to Service Execution </li></ul><ul><li>Deployment of the CS (already discussed in previous slide) performed by the System Administrator. </li></ul><ul><li>Activation of a deployed SC performed by an end-user: </li></ul><ul><ul><li>Creation of a new Activation ID to be associated to a set of input properties; </li></ul></ul><ul><ul><li>Invocation of the Configure_Session_Launch method in the Session Controller component. </li></ul></ul><ul><li>Launch of a Session of an Active CS, performed as a consequence of an external condition: </li></ul><ul><ul><li>Invocation of the Session_Launch method in the Orchestration Management System component; </li></ul></ul><ul><ul><li>Creation of a new Session ID to be associated to that particular CS execution. </li></ul></ul><ul><li>Execution of the CS: </li></ul><ul><ul><li>The Orchestrator component interacts with Service Proxies to execute the application logic; </li></ul></ul><ul><ul><li>When a Session finishes, a new Final Event is generated and the resources related to that Session are de-allocated. </li></ul></ul>
  11. 11. 4. Service Activation & Execution (2/5) <ul><li>Service Activation versus Service Execution </li></ul><ul><li>Activation  Triggered by users + Set of Configuration info (Initial Properties) </li></ul><ul><li>Execution  Triggered by external events + Session generation </li></ul><ul><ul><ul><ul><ul><li>= Event </li></ul></ul></ul></ul></ul>Activation_ID=A Config_Props_A Activation_ID=B Config_Props_B Activation_ID=C Config_Props_C Session_ID=A.3 Session_ID=A.2 Session_ID=A.1 Session_ID=B.1 Session_ID=C.1 Session_ID=C.2
  12. 12. 4. Service Activation & Execution (3/5) <ul><li>The components of the SEP </li></ul>
  13. 13. 4. Service Activation & Execution (4/5) <ul><li>Support for Nested Composite Services </li></ul><ul><li>It is possible to compose an already existing CS together with other BSs to create new CSs </li></ul><ul><li>A new BS acts like an adaptor to the already existing CS </li></ul><ul><ul><li>It invokes an Activate service in the Activator, attaching its endpoint as a Session Controller reference; </li></ul></ul><ul><ul><li>It receives and processes the Configure Session Launch invocation; </li></ul></ul><ul><ul><li>It invokes the Launch Session service call in the OMS. </li></ul></ul>
  14. 14. 4. Service Activation & Execution (5/5) <ul><li>Design Issues for Service Execution Platform Design </li></ul><ul><li>Service Orchestration as Event Routing </li></ul><ul><ul><li>Previous performance tests proved that the widely used BPEL (Business Process Execution Language) standard doesn’t assure low latency and high throughput </li></ul></ul><ul><ul><li>We implemented a lightweight Orchestrator for the execution of SCs </li></ul></ul><ul><li>Centralized vs. Distributed Orchestration </li></ul><ul><ul><li>We chose the Orchestration approach because it assures more control on what happens within the platform at execution time (e.g., AAA) </li></ul></ul><ul><li>Session-less behavior </li></ul><ul><ul><li>Each SC execution is called “Session” </li></ul></ul><ul><ul><li>Orchestrator systems like BPEL usually allocate resources to Session State storage </li></ul></ul><ul><ul><li>In proposed solution, the Session State travels along with the Events instead of being stored within the Orchestrator </li></ul></ul>
  15. 15. 5. Example: the Truck Tracker CS <ul><li>Graphical specification of the Composite Service </li></ul><ul><li>Activation: </li></ul><ul><li>Performed by a Terminal </li></ul><ul><li>Operator who interacts with the SEP </li></ul><ul><li>through a Web interface; </li></ul><ul><li>It configures the Session Controller </li></ul><ul><li>(in this case a Truck Entrance Detector </li></ul><ul><li>located at the port gate). </li></ul><ul><li>Session Launch: </li></ul><ul><li>When a new truck enters the port gate </li></ul><ul><li>the Truck Entrance Detector </li></ul><ul><li>launches a new Session (Initial Event). </li></ul>
  16. 16. 6. Conclusions <ul><li>We proposed a model for the definition and the execution of Event Driven Composite Services </li></ul><ul><li>We described some design solutions (e.g., Sessionless Orchestration) </li></ul><ul><li>We analyzed in details a real world example </li></ul><ul><li>Future works: </li></ul><ul><ul><li>Refine the model </li></ul></ul><ul><ul><li>Refine the prototype of the platform that we already implemented on the basis of this model </li></ul></ul>
  17. 17. Thank you for your attention