Published on

Published in: Technology
  • 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


  1. 1. An Execution Platform for Event Driven Mashups Massimo Maresca Computer Platform Research Center (CIPI) University of Padova & Genova (Italy) [email_address]
  2. 2. Agenda <ul><li>Introduction </li></ul><ul><li>Overview of the Platform </li></ul><ul><li>The Service Execution Platform </li></ul><ul><li>Performance Test </li></ul><ul><li>Conclusions </li></ul>
  3. 3. 1. Introduction (1/4) <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 such as phone calls, SMS messages, conference calls, etc. </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>
  4. 4. 1. Introduction (2/4) <ul><li>Service Taxonomy and Mashup Patterns: the “Monitor Resource + Notification” pattern </li></ul><ul><li>Examples: </li></ul><ul><li>Reminder Mashup </li></ul><ul><li>Alert Mashup </li></ul><ul><li>Notification of interesting events Mashup </li></ul>
  5. 5. 1. Introduction (3/4) <ul><li>Service Taxonomy and Mashup Patterns: the “Monitor Resource + Processing + Notification” pattern </li></ul><ul><li>Examples: </li></ul><ul><li>Time or Location or Presence dependent Notification Mashup </li></ul><ul><li>Non repudiation Mashup </li></ul>
  6. 6. 1. Introduction (4/4) <ul><li>Service Taxonomy and Mashup Patterns: traditional Data Mashup and “something” + Map Mashup </li></ul><ul><li>Examples: </li></ul><ul><li>Data Fusion </li></ul><ul><li>Data Migration </li></ul><ul><li>… </li></ul><ul><li>Examples: </li></ul><ul><li>Traffic on Map </li></ul><ul><li>Wheather on Map </li></ul><ul><li>… </li></ul>
  7. 7. 2. Platform overview (1/4) <ul><li>Mashup classification based on execution platform location </li></ul><ul><li>The analysis is about Server Side Mashup Execution Platforms </li></ul><ul><ul><li>Long Running Executions (i.e. user can be also “offline”) </li></ul></ul><ul><ul><li>Security (e.g. private data, malicious components, etc.) </li></ul></ul>Server side Client side SC1 SC2 SCN User Node (Browser) SC1 SC2 SCN Browser (User) Mashup Engine (Server) Request Results
  8. 8. 2. Platform overview (2/4) <ul><li>Server-Side Mashup Lifecycle </li></ul><ul><li>A Mashup is created by means of a Service Creation Environment (e.g., see next slide) and stored as a XML file in a repository. </li></ul><ul><li>The new Mashup is deployed into the Service Execution Platform – SEP (i.e., the XML representation is translated into a set of data structures that are loaded in the execution system). </li></ul><ul><li>The Mashup is now ready to be used by final users. There are two phases to take into account: </li></ul><ul><ul><li>Activation: the SEP is configured by the user (i.e., he sets the input properties of the service) to be ready to execute the Mashup when a new initial event occurs. </li></ul></ul><ul><ul><li>Execution: when a Mashup previously activated by the user receives a new initial event, the actual execution of the service logic takes place. </li></ul></ul>
  9. 9. 2. Platform overview (3/4) <ul><li>The Service Creation Environment </li></ul><ul><li>Service Proxies (SPs): </li></ul><ul><ul><li>wrap only one internal/external resource </li></ul></ul><ul><ul><li>can fire more than one “Mashup Event” </li></ul></ul>
  10. 10. 2. Platform overview (4/4) <ul><li>Requirements for the Service Execution Platform </li></ul><ul><li>Automatic Scalability, to support the simultaneous execution of a very large numbers of Mashup instances on variable size hardware systems. </li></ul><ul><li>Fault Tolerance, to guarantee the levels of reliability and availability typical of the Telecoms Operators (99.99999%). </li></ul><ul><li>Low latency, to effectively support the execution of long sequences short lived Telco services. </li></ul><ul><li>Authentication, Authorization and Accounting, to support the seamless integration of the Mashup with the AAA modules already existing in the owner’s platform environment. </li></ul><ul><li>Management, to have the complete control of the platform resources, to control Mashup activation/execution as well as to allow the platform administrator to perform the appropriate management actions (e.g., enforcing SLA rules). </li></ul>
  11. 11. 3. The Service Execution Platform (1/7) <ul><li>Interaction with external world </li></ul><ul><li>Main components: </li></ul><ul><li>Orchestrator: it executes the Mashup logic </li></ul><ul><li>Service Proxies: they wrap external resources </li></ul>
  12. 12. 3. The Service Execution Platform (2/7) <ul><li>The Architecture </li></ul>IT public Services Telco Services IT private Services notifyEvent/ invokeAction Interface External Resource Interface (REST, SOAP, SDK, …)
  13. 13. 3. The Service Execution Platform (3/7) <ul><li>The runtime model </li></ul><ul><li>Each edge that links two basic blocks in the graphical service description is implemented as a pair of Web Service invocations: </li></ul><ul><ul><li>a notifyEvent call from the Service Component to the Orchestrator; </li></ul></ul><ul><ul><li>an invokeAction call from the Orchestrator to the next Service Component </li></ul></ul>
  14. 14. 3. The Service Execution Platform (4/7) <ul><li>Asynchronous use of Web Services </li></ul><ul><li>The proposed solution decouples the Web Service invocation from the actual service logic by means of a Thread Pool structure. </li></ul><ul><li>For each request a new orchestration task is created and submitted to the Thread Pool (no Thread creation is required at run time). </li></ul>
  15. 15. 3. The Service Execution Platform (5/7) <ul><li>Sessionless Orchestration </li></ul><ul><li>Each Mashup execution is called “Session”. </li></ul><ul><li>Orchestrator systems like BPEL (Business Process Logic Execution) usually allocate resources to Session State storage. </li></ul><ul><li>In proposed solution, the Session State travels along with the Events instead of being stored within the Orchestrator. </li></ul><ul><li>The Sessionless feature + Orchestrator node replication allows to perform an automatic scalability mechanism (see example in next slide) </li></ul>
  16. 16. 3. The Service Execution Platform (6/7) <ul><li>The Scalability mechanism in action </li></ul>
  17. 17. 3. The Service Execution Platform (7/7) <ul><li>Platform Requirements vs Design Solutions </li></ul>A. Node replication B. Sessionless Orchestration C. Asynchronous use of Web Services D. Centralized Orchestration Where:  Management  AAA    Low Latency    Fault Tolerance    Scalability D C B A
  18. 18. 4. Performance Tests (1/2) <ul><li>Test Setup </li></ul><ul><li>SOAP-UI as Web Service traffic generator </li></ul><ul><li>Round robin algorithm for the Load Balancer </li></ul><ul><li>Svc_A is a fake Service (We did so in order to minimize the noise) </li></ul><ul><li>We measured the latency (i.e. the time needed by the orchestrator(s) to manage one event) </li></ul><ul><ul><ul><li>Latency = T CPU + T NET </li></ul></ul></ul>
  19. 19. 4. Performance Tests (2/2) <ul><li>Test configurations </li></ul><ul><li>Config_1 (Zero Load Config.) </li></ul><ul><ul><li>SOAP_UI: 1 req/sec </li></ul></ul><ul><ul><li>#ONs: 1 </li></ul></ul><ul><li>Config_2 </li></ul><ul><ul><li>SOAP_UI: 2600 req/sec </li></ul></ul><ul><ul><li>#ONs: 1 </li></ul></ul><ul><li>Config_3 </li></ul><ul><ul><li>SOAP_UI: 2600 req/sec </li></ul></ul><ul><ul><li>#ONs: 2 </li></ul></ul><ul><li>Config_4 </li></ul><ul><ul><li>SOAP_UI: 2600 req/sec </li></ul></ul><ul><ul><li>#ONs: 3 </li></ul></ul><ul><li>Test Results </li></ul><ul><li>Config_1 (L = 600 µs) </li></ul><ul><ul><li>T CPU = 100 µs </li></ul></ul><ul><ul><li>T NET = 500 µs </li></ul></ul><ul><li>Config_2 (L = 1500 µs) </li></ul><ul><ul><li>T CPU = 300 µs </li></ul></ul><ul><ul><li>T NET = 1200 µs </li></ul></ul><ul><li>Config_3 (L = 690 µs) </li></ul><ul><ul><li>T CPU = 130 µs </li></ul></ul><ul><ul><li>T NET = 560 µs </li></ul></ul><ul><li>Config_4 (L = 610 µs) </li></ul><ul><ul><li>T CPU = 100 µs </li></ul></ul><ul><ul><li>T NET = 510 µs </li></ul></ul>BEST CASE
  20. 20. 5. Conclusions <ul><li>We defined </li></ul><ul><ul><li>a model for Event Driven Mashups. </li></ul></ul><ul><ul><li>a list of requirements for Event Driven Mashup execution. </li></ul></ul><ul><li>We developed a Server Side - Service Execution Platform that fulfills the requirements. </li></ul><ul><li>Platform Distinctive Features: </li></ul><ul><ul><li>Sessionless Orchestration </li></ul></ul><ul><ul><li>Asynhcronous Use of Web Services </li></ul></ul><ul><li>We have run performance tests on the platform. </li></ul><ul><li>The main lesson learned is that “horizontal scalability” is suitable to fulfill the requirements of this kind of platforms. </li></ul>
  21. 21. Thank you for your attention