iiwas2009

21
1 cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche An Execution Platform for Event An Execution Platform for Event Driven Mashups Driven Mashups Massimo Maresca Computer Platform Research Center (CIPI) University of Padova & Genova (Italy) [email protected]

Transcript of iiwas2009

Page 1: 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)

[email protected]

Page 2: iiwas2009

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

Page 3: iiwas2009

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)

Page 4: iiwas2009

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

Page 5: iiwas2009

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

Page 6: iiwas2009

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• … …

Page 7: iiwas2009

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.)

Page 8: iiwas2009

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.

Page 9: iiwas2009

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”

Page 10: iiwas2009

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).

Page 11: iiwas2009

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

Page 12: iiwas2009

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, …)

Page 13: iiwas2009

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

Page 14: iiwas2009

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).

Page 15: iiwas2009

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)

Page 16: iiwas2009

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

Page 17: iiwas2009

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:

Page 18: iiwas2009

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

Page 19: iiwas2009

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

Page 20: iiwas2009

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.

Page 21: iiwas2009

2121

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

Thank you for Thank you for your attentionyour attention