iiwas2009
-
Upload
steccami -
Category
Technology
-
view
353 -
download
0
Transcript of iiwas2009
11
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
An Execution Platform for Event Driven An Execution Platform for Event Driven MashupsMashups
Massimo MarescaComputer Platform Research Center (CIPI)
University of Padova & Genova (Italy)
22
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
AgendaAgenda
1.1. IntroductionIntroduction
2.2. Overview of the PlatformOverview of the Platform
3.3. The Service Execution PlatformThe Service Execution Platform
4.4. Performance TestPerformance Test
5.5. ConclusionsConclusions
33
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
1. Introduction (1/4)1. Introduction (1/4)
ScenarioScenario
Availability of contents and services through technologies Availability of contents and services through technologies typical of the Web 2.0 philosophy such as RSS Feed, Atom, typical of the Web 2.0 philosophy such as RSS Feed, Atom, REST-WS, SOAP-WS, etc.REST-WS, SOAP-WS, etc.
Availability of Telco services such as phone calls, SMS Availability of Telco services such as phone calls, SMS messages, conference calls, etc.messages, conference calls, etc.
Availability of tools for the rapid development of convergent Availability of tools for the rapid development of convergent Composite Services (a.k.a. Mashups) that combine different Composite Services (a.k.a. Mashups) that combine different resources such as Yahoo Pipes!, JackBe Presto, etc. resources such as Yahoo Pipes!, JackBe Presto, etc. Such tools mainly support Such tools mainly support Data MashupsData Mashups (i.e., those (i.e., those
Mashups that combine data extracted by different Mashups that combine data extracted by different sources), while they do not support sources), while they do not support Event Driven MashupsEvent Driven Mashups (i.e., those Mashups in which the basic components (i.e., those Mashups in which the basic components interact through events)interact through events)
44
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
1. Introduction (2/4)1. Introduction (2/4)
Service Taxonomy and Mashup Patterns: the “Monitor Service Taxonomy and Mashup Patterns: the “Monitor Resource + Notification” patternResource + Notification” pattern
Examples: Examples: Reminder MashupReminder Mashup Alert MashupAlert Mashup Notification of interesting events MashupNotification of interesting events Mashup
55
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
1. Introduction (3/4)1. Introduction (3/4)
Service Taxonomy and Mashup Patterns: the “Monitor Resource + Service Taxonomy and Mashup Patterns: the “Monitor Resource + Processing + Notification” patternProcessing + Notification” pattern
Examples: Examples: Time or Location or Presence dependent Notification MashupTime or Location or Presence dependent Notification Mashup Non repudiation MashupNon repudiation Mashup
66
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
1. Introduction (4/4)1. Introduction (4/4)Service Taxonomy and Mashup Patterns: traditional Data Mashup and Service Taxonomy and Mashup Patterns: traditional Data Mashup and
“something” + Map Mashup“something” + Map Mashup
Examples:Examples:• Data FusionData Fusion• Data MigrationData Migration• … …
Examples:Examples:• Traffic on MapTraffic on Map• Wheather on MapWheather on Map• … …
77
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
2. Platform overview (1/4)2. Platform overview (1/4)
Mashup classification based on execution platform locationMashup classification based on execution platform location
Client sideClient side
Server Server sideside
SC1SC2
SCN
User Node (Browser)
SC1
SC2
SCNBrowser (User)
Mashup Engine (Server)Request
Results
The analysis is about Server Side Mashup Execution PlatformsThe analysis is about Server Side Mashup Execution Platforms Long Running Executions (i.e. user can be also “offline”)Long Running Executions (i.e. user can be also “offline”) Security (e.g. private data, malicious components, etc.)Security (e.g. private data, malicious components, etc.)
88
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
2. Platform overview (2/4)2. Platform overview (2/4)
Server-Side Mashup LifecycleServer-Side Mashup Lifecycle
1.1. A Mashup is created by means of a Service Creation Environment 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.(e.g., see next slide) and stored as a XML file in a repository.
2.2. The new Mashup is deployed into the Service Execution Platform – The new Mashup is deployed into the Service Execution Platform – SEP (i.e., the XML representation is translated into a set of data SEP (i.e., the XML representation is translated into a set of data structures that are loaded in the execution system).structures that are loaded in the execution system).
3.3. The Mashup is now ready to be used by final users. There are two The Mashup is now ready to be used by final users. There are two phases to take into account:phases to take into account: Activation: the SEP is configured by the user (i.e., he sets the Activation: the SEP is configured by the user (i.e., he sets the
input properties of the service) to be ready to execute the input properties of the service) to be ready to execute the Mashup when a new initial event occurs.Mashup when a new initial event occurs.
Execution: when a Mashup previously activated by the user Execution: when a Mashup previously activated by the user receives a new initial event, the actual execution of the service receives a new initial event, the actual execution of the service logic takes place.logic takes place.
99
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
2. Platform overview (3/4)2. Platform overview (3/4)The Service Creation EnvironmentThe Service Creation Environment
Service Proxies (SPs):Service Proxies (SPs): wrap only one internal/external resourcewrap only one internal/external resource can fire more than one “Mashup Event” can fire more than one “Mashup Event”
1010
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
2. Platform overview (4/4)2. Platform overview (4/4)
Requirements for the Service Execution PlatformRequirements for the Service Execution Platform
1.1. Automatic Scalability, to support the simultaneous execution of a very Automatic Scalability, to support the simultaneous execution of a very large numbers of Mashup instances on variable size hardware large numbers of Mashup instances on variable size hardware systems.systems.
2.2. Fault Tolerance, to guarantee the levels of reliability and availability Fault Tolerance, to guarantee the levels of reliability and availability typical of the Telecoms Operators (99.99999%).typical of the Telecoms Operators (99.99999%).
3.3. Low latency, to effectively support the execution of long sequences Low latency, to effectively support the execution of long sequences short lived Telco services.short lived Telco services.
4.4. Authentication, Authorization and Accounting, to support the seamless Authentication, Authorization and Accounting, to support the seamless integration of the Mashup with the AAA modules already existing in the integration of the Mashup with the AAA modules already existing in the owner’s platform environment.owner’s platform environment.
5.5. Management, to have the complete control of the platform resources, Management, to have the complete control of the platform resources, to control Mashup activation/execution as well as to allow the platform to control Mashup activation/execution as well as to allow the platform administrator to perform the appropriate management actions (e.g., administrator to perform the appropriate management actions (e.g., enforcing SLA rules).enforcing SLA rules).
1111
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
3. The Service Execution Platform (1/7)3. The Service Execution Platform (1/7)
Interaction with external worldInteraction with external world
Main components:Main components: Orchestrator: it executes the Mashup logicOrchestrator: it executes the Mashup logic Service Proxies: they wrap external resourcesService Proxies: they wrap external resources
1212
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
3. The Service Execution Platform (2/7)3. The Service Execution Platform (2/7)
The ArchitectureThe Architecture
IT public Services
Telco Services
IT private Services
notifyEvent/invokeActionInterface
External ResourceInterface (REST, SOAP, SDK, …)
1313
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
3. The Service Execution Platform (3/7)3. The Service Execution Platform (3/7)
The runtime modelThe runtime model
Each edge that links two basic blocks in the graphical service Each edge that links two basic blocks in the graphical service description is implemented as a pair of Web Service invocations: description is implemented as a pair of Web Service invocations:
a notifyEvent call from the Service Component to the Orchestrator;a notifyEvent call from the Service Component to the Orchestrator; an invokeAction call from the Orchestrator to the next Service an invokeAction call from the Orchestrator to the next Service
ComponentComponent
1414
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
3. The Service Execution Platform (4/7)3. The Service Execution Platform (4/7)
Asynchronous use of Web ServicesAsynchronous use of Web Services The proposed solution decouples the Web Service invocation from the The proposed solution decouples the Web Service invocation from the
actual service logic by means of a Thread Pool structure. actual service logic by means of a Thread Pool structure. For each request a new orchestration task is created and submitted to For each request a new orchestration task is created and submitted to
the Thread Pool (no Thread creation is required at run time).the Thread Pool (no Thread creation is required at run time).
1515
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
3. The Service Execution Platform (5/7)3. The Service Execution Platform (5/7)
Sessionless OrchestrationSessionless Orchestration
Each Mashup execution is called “Session”.Each Mashup execution is called “Session”. Orchestrator systems like BPEL (Business Process Logic Orchestrator systems like BPEL (Business Process Logic
Execution) usually allocate resources to Session State Execution) usually allocate resources to Session State storage.storage.
In proposed solution, the Session State travels along with In proposed solution, the Session State travels along with the Events instead of being stored within the Orchestrator. the Events instead of being stored within the Orchestrator.
The Sessionless feature + Orchestrator node replication The Sessionless feature + Orchestrator node replication allows to perform an automatic scalability mechanism (see allows to perform an automatic scalability mechanism (see example in next slide)example in next slide)
1616
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
3. The Service Execution Platform (6/7)3. The Service Execution Platform (6/7)
The Scalability The Scalability mechanism in mechanism in actionaction
1717
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
3. The Service Execution Platform (7/7)3. The Service Execution Platform (7/7)
Platform Requirements vs Design SolutionsPlatform Requirements vs Design SolutionsAA BB CC DD
ScalabilityScalability
Fault ToleranceFault Tolerance
Low LatencyLow Latency
AAAAAA
ManagementManagement
A. Node replication
B. Sessionless Orchestration
C. Asynchronous use of Web Services
D. Centralized Orchestration
Where:
1818
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
4. Performance Tests (1/2)4. Performance Tests (1/2)
Test SetupTest Setup
SOAP-UI as Web Service traffic generatorSOAP-UI as Web Service traffic generator Round robin algorithm for the Load BalancerRound robin algorithm for the Load Balancer Svc_A is a fake Service (We did so in order to minimize the noise)Svc_A is a fake Service (We did so in order to minimize the noise) We measured the latency (i.e. the time needed by the orchestrator(s) to manage We measured the latency (i.e. the time needed by the orchestrator(s) to manage
one event)one event)
Latency = TLatency = TCPUCPU + T + TNETNET
1919
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
4. Performance Tests (2/2)4. Performance Tests (2/2)
Test configurationsTest configurationsConfig_1 (Zero Load Config.)Config_1 (Zero Load Config.)
SOAP_UI: 1 req/secSOAP_UI: 1 req/sec #ONs: 1#ONs: 1
Config_2Config_2 SOAP_UI: 2600 req/secSOAP_UI: 2600 req/sec #ONs: 1#ONs: 1
Config_3Config_3 SOAP_UI: 2600 req/secSOAP_UI: 2600 req/sec #ONs: 2#ONs: 2
Config_4Config_4 SOAP_UI: 2600 req/secSOAP_UI: 2600 req/sec #ONs: 3#ONs: 3
Test ResultsTest Results
Config_1 (L = 600 µs)Config_1 (L = 600 µs) TTCPUCPU = 100 µs = 100 µs TTNETNET = 500 µs = 500 µs
Config_2 (L = 1500 µs)Config_2 (L = 1500 µs) TTCPUCPU = 300 µs = 300 µs TTNETNET = 1200 µs = 1200 µs
Config_3 (L = 690 µs)Config_3 (L = 690 µs) TTCPUCPU = 130 µs = 130 µs TTNETNET = 560 µs = 560 µs
Config_4 (L = 610 µs)Config_4 (L = 610 µs) TTCPUCPU = 100 µs = 100 µs TTNETNET = 510 µs = 510 µs
BEST CASE
2020
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
5. Conclusions5. Conclusions
We defined We defined a model for Event Driven Mashups.a model for Event Driven Mashups. a list of requirements for Event Driven Mashup execution.a list of requirements for Event Driven Mashup execution.
We developed a Server Side - Service Execution Platform We developed a Server Side - Service Execution Platform that fulfills the requirements.that fulfills the requirements.
Platform Distinctive Features:Platform Distinctive Features: Sessionless Orchestration Sessionless Orchestration Asynhcronous Use of Web ServicesAsynhcronous Use of Web Services
We have run performance tests on the platform. We have run performance tests on the platform. The main lesson learned is that “horizontal scalability” is The main lesson learned is that “horizontal scalability” is
suitable to fulfill the requirements of this kind of platforms.suitable to fulfill the requirements of this kind of platforms.
2121
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
Thank you for Thank you for your attentionyour attention