webx 2010
TRANSCRIPT
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)
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
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.
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
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
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.
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
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)
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
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.
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
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
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.
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
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).
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
cipi
Centro di Ricerca sull’Ingegneria delle Piattaforme Informatiche
1717
Thank you for Thank you for your attentionyour attention