Top Banner
cipi Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche 1 An Approach to Event Driven An Approach to Event Driven Services and Composite Services Services and Composite Services Massimo Maresca Computer Platform Research Center (CIPI) University of Padova & Genova (Italy) [email protected]
17
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

11

An Approach to Event Driven Services and An Approach to Event Driven Services and Composite ServicesComposite Services

Massimo MarescaComputer Platform Research Center (CIPI)

University of Padova & Genova (Italy)

[email protected]

Page 2: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

22

AgendaAgenda

1.1. IntroductionIntroduction

2.2. The Service ModelThe Service Model

3.3. Service Creation & DeploymentService Creation & Deployment

4.4. Service Activation & ExecutionService Activation & Execution

5.5. Example: the Truck Tracker ServiceExample: the Truck Tracker Service

6.6. ConclusionsConclusions

Page 3: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

33

1. Introduction (1/3)1. Introduction (1/3)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 (e.g., phone calls, SMS Availability of Telco services (e.g., phone calls, SMS messages, conference calls, etc) mainly due to Telecom messages, conference calls, etc) mainly due to Telecom Operators service exposure.Operators service exposure.

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)

A reference model for the definition of Event Driven Mashups A reference model for the definition of Event Driven Mashups is proposed in this paper. is proposed in this paper.

Page 4: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

44

1. Introduction (2/3)1. Introduction (2/3)Example of a graphical Mashup Creation ToolExample of a graphical Mashup Creation Tool

List of “composable” services on the leftList of “composable” services on the left Create your own Composite Service on the rightCreate your own Composite Service on the right

Page 5: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

55

1. Introduction (3/3)1. Introduction (3/3)

ApplicationsApplications

Web 2.0 Mashups: combination of data and services provided by Web 2.0 Mashups: combination of data and services provided by means of technologies like RSS Feed, Atom, Web Services, etc. (for means of technologies like RSS Feed, Atom, Web Services, etc. (for a complete list see the Programmable Web repository). Examples: a complete list see the Programmable Web repository). Examples:

E-government info (e.g., closed roads, concerts, etc.) + Google MapsE-government info (e.g., closed roads, concerts, etc.) + Google Maps Monitor RSS Feed + New Tweet on Twitter Monitor RSS Feed + New Tweet on Twitter Monitor Google Calendar + Send SMSMonitor Google Calendar + Send SMS

Enterprise Mashups: addressing the “Long Tail”Enterprise Mashups: addressing the “Long Tail”11 through through combination of data and services belonging both to the private combination of data and services belonging both to the private sphere of an Enterprise (e.g., the CRM system) and to the public sphere of an Enterprise (e.g., the CRM system) and to the public Internet (e.g., the APIs listed in Programmable Web). Internet (e.g., the APIs listed in Programmable Web).

1 1 V. Hoyer, K. Stanoesvka-Slabeva, T. Janner, and C. Schroth. “Enterprise Mashups: Design 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 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.International Conference on Services Computing, pages 601-602, Washington DC, USA.

Mail Monitor

When-mail-recvd

Send SMS

SMS Sent

Page 6: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

66

2. The Service Model (1/2)2. The Service Model (1/2)

The model includes three entities, namely Events, Base Services and The model includes three entities, namely Events, Base Services and Composite Services. Composite Services.

2.1 Events2.1 EventsAn Event is a notification associated to a Name and to a Property Set. A An Event is a notification associated to a Name and to a Property Set. A property is a <Name, Value> pair.property is a <Name, Value> pair.

2.2 Base Services (BS)2.2 Base Services (BS)

Each BS wraps an external service / resource.Each BS wraps an external service / resource. External Services are highly reusable External Services are highly reusable functionalities of common use like messaging, functionalities of common use like messaging, localization, social networks, etc.localization, social networks, etc. A BS may be synchronous or asynchronous A BS may be synchronous or asynchronous depending on the external service features.depending on the external service features.

Page 7: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

77

2. The Service Model (2/2)2. The Service Model (2/2)

2.3 Composite Service (CS)2.3 Composite Service (CS)A Composite Service is a service implemented through the coordinate A Composite Service is a service implemented through the coordinate action of a set of BSs. action of a set of BSs.

Horizontal arrows Horizontal arrows communications among BSs communications among BSsVertical arrows Vertical arrows communications between a BS and the correspondent communications between a BS and the correspondent

External ResourceExternal Resource

Page 8: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

88

3. Service Creation and Deployment (1/2)3. Service Creation and Deployment (1/2)

BS creation and deploymentBS creation and deployment

The creation of each BS needs: The creation of each BS needs: The creation of a set of files called Facets that describes the new Service.The creation of a set of files called Facets that describes the new Service. The development of a software program that interacts with the specific The development of a software program that interacts with the specific

External Service through different technologies (e.g., RSS Feed, WS, etc.).External Service through different technologies (e.g., RSS Feed, WS, etc.). The creation of a new BS requires programming skills but it can be considered The creation of a new BS requires programming skills but it can be considered

as an upgrade of the system since it happens rarely.as an upgrade of the system since it happens rarely.

The deployment of each BS: The deployment of each BS: is needed to make the new BS available in the Service Creation Environmentis needed to make the new BS available in the Service Creation Environment needs the deployment of its facets and programming code in the Service needs the deployment of its facets and programming code in the Service

Execution Platform (i.e., the software module in charge of executing Execution Platform (i.e., the software module in charge of executing Composite Services)Composite Services)

Page 9: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

99

3. Service Creation and Deployment (2/2)3. Service Creation and Deployment (2/2)

CS creation and deploymentCS creation and deployment

The creation of each CS needs: The creation of each CS needs: The creation of a set of files called Facets that describes the new CSs.The creation of a set of files called Facets that describes the new CSs. The definition of the Composite Service logic by means of a graphical tool like The definition of the Composite Service logic by means of a graphical tool like

the one showed in slide 4. the one showed in slide 4. A CS is defined through a directed graph in which the blocks correspond to BS 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 and the arrows to Event passing. This graph is saved in a repository when the creator presses the “save” button in the tool.creator presses the “save” button in the tool.

It is possible to define some assignments for each arrow.It is possible to define some assignments for each arrow.

The deployment of each CS: The deployment of each CS: is needed to make the new CS executableis needed to make the new CS executable needs the deployment of its facets and the parsing of the needs the deployment of its facets and the parsing of the XML file representing the CS logic to extractXML file representing the CS logic to extractthe information used at run-time the information used at run-time

Page 10: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1010

4. Service Activation & Execution (1/5)4. Service Activation & Execution (1/5)The path from Service Creation to Service ExecutionThe path from Service Creation to Service Execution

1.1. Deployment of the CS (already discussed in previous slide) Deployment of the CS (already discussed in previous slide) performed by the System Administrator.performed by the System Administrator.

2.2. Activation of a deployed SC performed by an end-user:Activation of a deployed SC performed by an end-user: Creation of a new Activation ID to be associated to a set of input properties;Creation of a new Activation ID to be associated to a set of input properties; Invocation of the Invocation of the Configure_Session_LaunchConfigure_Session_Launch method in the Session Controller method in the Session Controller

component.component.

3.3. Launch of a Session of an Active CS, performed as a consequence Launch of a Session of an Active CS, performed as a consequence of an external condition:of an external condition: Invocation of the Invocation of the Session_LaunchSession_Launch method in the Orchestration Management method in the Orchestration Management

System component;System component; Creation of a new Session ID to be associated to that particular CS execution. Creation of a new Session ID to be associated to that particular CS execution.

4.4. Execution of the CS: Execution of the CS: The Orchestrator component interacts with Service Proxies to execute the The Orchestrator component interacts with Service Proxies to execute the

application logic;application logic; When a Session finishes, a new Final Event is generated and the resources When a Session finishes, a new Final Event is generated and the resources

related to that Session are de-allocated.related to that Session are de-allocated.

Page 11: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1111

4. Service Activation & Execution (2/5)4. Service Activation & Execution (2/5)Service Activation versus Service ExecutionService Activation versus Service Execution

Activation Activation Triggered by users + Set of Configuration info (Initial Properties) Triggered by users + Set of Configuration info (Initial Properties)Execution Execution Triggered by external events + Session generation Triggered by external events + Session generation

= Event= Event

Activation_ID=AConfig_Props_A

Activation_ID=BConfig_Props_B

Activation_ID=CConfig_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

Page 12: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1212

4. Service Activation & Execution (3/5)4. Service Activation & Execution (3/5)The components of the SEPThe components of the SEP

Page 13: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1313

4. Service Activation & Execution (4/5)4. Service Activation & Execution (4/5)Support for Nested Composite ServicesSupport for Nested Composite Services

It is possible to compose an already existing CS together with other BSs to create new CSsIt is possible to compose an already existing CS together with other BSs to create new CSs A new BS acts like an adaptor to the already existing CSA new BS acts like an adaptor to the already existing CS

It invokes an Activate service in the Activator, attaching its endpoint as a Session Controller reference;It invokes an Activate service in the Activator, attaching its endpoint as a Session Controller reference; It receives and processes the Configure Session Launch invocation;It receives and processes the Configure Session Launch invocation; It invokes the Launch Session service call in the OMS.It invokes the Launch Session service call in the OMS.

Page 14: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1414

4. Service Activation & Execution (5/5)4. Service Activation & Execution (5/5)Design Issues for Service Execution Platform Design Design Issues for Service Execution Platform Design

1.1. Service Orchestration as Event Routing Service Orchestration as Event Routing Previous performance tests proved that the widely used BPEL (Business Process Previous performance tests proved that the widely used BPEL (Business Process

Execution Language) standard doesn’t assure low latency and high throughputExecution Language) standard doesn’t assure low latency and high throughput We implemented a lightweight Orchestrator for the execution of SCsWe implemented a lightweight Orchestrator for the execution of SCs

2.2. Centralized vs. Distributed OrchestrationCentralized vs. Distributed Orchestration We chose the Orchestration approach because it assures more control on what happens We chose the Orchestration approach because it assures more control on what happens

within the platform at execution time (e.g., AAA)within the platform at execution time (e.g., AAA)

3.3. Session-less behaviorSession-less behavior Each SC execution is called “Session”Each SC execution is called “Session” Orchestrator systems like BPEL usually allocate resources to Session State storageOrchestrator systems like BPEL usually allocate resources to Session State storage In proposed solution, the Session State travels along with the Events instead of being In proposed solution, the Session State travels along with the Events instead of being

stored within the Orchestrator stored within the Orchestrator

Page 15: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1515

5. Example: 5. Example: the Truck Tracker CSthe Truck Tracker CSGraphical specification of the Composite ServiceGraphical specification of the Composite Service

Activation: Activation: Performed by a Terminal Performed by a Terminal Operator who interacts with the SEP Operator who interacts with the SEP through a Web interface;through a Web interface; It configures the Session Controller It configures the Session Controller (in this case a Truck Entrance Detector (in this case a Truck Entrance Detector located at the port gate).located at the port gate).

Session Launch: Session Launch: When a new truck enters the port gateWhen a new truck enters the port gatethe Truck Entrance Detector the Truck Entrance Detector launches a new Session (Initial Event).launches a new Session (Initial Event).

Page 16: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1616

6. Conclusions6. Conclusions

We proposed a model for the definition and the execution We proposed a model for the definition and the execution of Event Driven Composite Servicesof Event Driven Composite Services

We described some design solutions (e.g., Sessionless We described some design solutions (e.g., Sessionless Orchestration)Orchestration)

We analyzed in details a real world exampleWe analyzed in details a real world example

Future works:Future works: Refine the modelRefine the model Refine the prototype of the platform that we already implemented on the basis of this Refine the prototype of the platform that we already implemented on the basis of this

modelmodel

Page 17: Webx 2010

cipi

Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche

1717

Thank you for Thank you for your attentionyour attention