CHOReVOLUTION Studio CHOReVOLUTION Console Synthesis Processor Federation Server Enactment Engine Identity Manager Choreography Execution

Figure 1 - CHOReVOLUTION Components Overview

The CHOReVOLUTION IDRE (see Figure 1) is a toolbox of well-integrated front end and back end components enhanced by a flexible cloud infrastructure.

CHOReVOLUTION Frontend - it is comprised of the CHOReVOLUTION Studio and CHOReVOLUTION Console.

  • The CHOReVOLUTION Studio is an Eclipse-based IDE offering a Choreography Modeler, a Service Modeler, and a Synthesis Processor Wizard. The Choreography Modeler allows choreography designers to specify choreographies in term of BPMN2 Choreography Diagrams plus additional models that permit to enrich the BPMN2 specification. The Service Modeler allows to describe services and things in terms of their interface, interaction protocol, QoS attributes, and security aspects. The Synthesis Processor Wizard drives and assists the developer while automatically realizing the choreography.
  • The CHOReVOLUTION Console is a web-based application that allows choreography owners to access, configure, administer and trigger actions on running choreographies and involved services. Moreover, the console permits to access all the features offered by the Identity Manager (IdM), the Service Inventory, and the Enactment Engine. On the other hand, the Choreography Execution Monitor allows to monitor the execution of a CHOReVOLUTION choreography instances with respect to relevant parameters, such as execution time of a specific service operation, the number of exchanged coordination messages, the execution of a specific (business level) choreography tasks, resources used in the cloud, etc.

CHOReVOLUTION Backend - it is comprised of the Synthesis Processor, Enactment Engine, Federation Server, Identity Manager and Service Inventory.

  • The Synthesis Processor takes as input the BPMN2 choreography specification and the models of the participant services, and generates all the needed additional software entities that are required to concretely realize the choreography, i.e., Coordination Delegates (CDs), Adapters (As), and Security Filters (SFs), and Binding Components (BCs). In particular, out of the specified BPMN2 Choreography Diagram, the additional choreography models specified to enrich the BPMN2 specification, and the involved services' models, the Synthesis Processor automatically generates a set of intermediate models that serve for automatically synthesizing the above mentioned additional software entities. Finally, the synthesis processor generates a concrete description of the choreography that is passed to the Enactment Engine (via IdM) for deployment and enactment purpose.
  • The Enactment Engine (EE) automatically deploys the choreography based on the concrete choreography description document received from the Synthesis Processor (via IdM). The EE also interfaces with the Identity Manager to include into the concrete choreography description the actual deployment and runtime details. Then, once a choreography is deployed and running, the EE listens for command requests from the IdM for runtime choreography control.
  • The Federation Server handles the runtime authentication and authorisation for services that uses different security mechanism at protocol level by storing various credentials on behalf of the caller.
  • The Identity Manager (IdM) is responsible for managing users and services. In particular, the Identity Manager is able to: query the services for supported application contexts and played roles; force a specific application context for a certain service (put in "maintenance" or disable/enable); query services about their global status (monitoring).
  • The Service Inventory is a logical feature provided by the IdM. It acts as a central repository for information about services and things that can be involved in one or more choreographies.

Choreography execution - The software entities that come into play in a running CHOReVOLUTION choreography are the involved services and things, and the required BCs, SFs, As, and CDs. A service can be of two types: existing services and deployable services. The former can be already existing and already deployed services (e.g., Google Maps, a meteo service, etc); the latter can be (consumer and/or prosumer) services that can be dynamically deployed during choreography deployment. A thing can refer to a wide variety of devices such as built-in sensors, operations devices, monitors, or any other natural or man-made object that can be assigned an IP address. These devices collect useful data with the help of various existing protocols and then autonomously flow the data between other devices.

You will learn from here:

  • How to use and administrate the CHOReVOLUTION platform
  • How to synthesize, deploy, enact and run choregraphies
  • How to use the individual components of the platform and how to contribute to their improvement
CHOReVOLUTION Platform OverviewIt shows an high-level (logical) overview of the CHOReVOLUTION platform as a toolbox of well-integrated components in order to provide the reader with an overall picture, where we mix main platform components and related involved actors, further sketching the flow of the main activities to be followed for realizing the desired choreography.
Getting Started with Virtual MachineThis section provides quick, hands-on instructions for building a simple e-Commerce choreography-based system by using a virtual machine containing all CHOReVOLUTION components.
Getting StartedThrough the implementation of a simple case study, we'll walk you through your first CHOReVOLUTION Service/Thing and Synthesis project, show you how to use CHOReVOLUTION Studio, and start Synthesis process. 
CHOReVOLUTION Studio and Synthesis ProcessorThe CHOReVOLUTION Studio is an Eclipse-based development environment that is customized for developing choreography service oriented systems. It provides a ready-to-use environment to design, synthesize, deploy and enact a choreography by using the CHOReVOLUTION platform. The Synthesis Processor is the component that builds the choreography description (concrete choreography specification) based on the choreography specification and on the models of the participant services. Also, it generates all the needed additional software entities that are required to enforce choreography realizability: Coordination Delegates, Adapters, and Security Filters. Binding Components (BCs) are generated by invoking the VSB Generator.
CHOReVOLUTION Console and Identity Manager (Service Inventory)Documentation of the platform web console for managing users, roles, choregraphies and service roles. A ready-to-use environment to design, synthesize, deploy and enact a choreography by using the CHOReVOLUTION platform.
Federation ServerThe Federation Server is in charge of solving, as much as possible, the different security authentication interoperability issues.
Enactment EngineThe Enactment Engine is a middleware component in charge of deploying and enacting the choreography package prepared by the Studio and Synthesis Processor (i.e. the choreography specification and all the needed additional software entities) in the cloud environment.
Development GuideThis section is for people doing development on the CHOReVOLUTION platform components and for people who need to build the components from source.

See also: