# A Choreography-Based and Collaborative Road Mobility System for L'Aquila City
## 3 Chorevolution Approach
### CHOReVOLUTION IDRE Underlying Technologies  
CHOReVOLUTION IDRE includes software tools for choreography modeling, synthesis, security, identity management and cloud (with monitoring and overall management at run-time). Figure 3: CHOReVOLUTION synthesis process. As depicted in Figure 4, the CHOReVOLUTION IDRE is layered into: (1) a front-end layer; (2) a back-end layer; and (3) a cloud layer. The red boxes in the figure contain the IDRE components developed within CHOReVOLUTION from scratch. In particular, they are: the CHOReVOLUTION Studio, the CHOReVOLUTION Console, and the Synthesis Processor together with the artifacts it generates. As detailed below, the components outside the boxes are the ones developed within CHOReVOLUTION and built on top of existing open-source projects. For instance, the Identity Manager extends the Apache Syncope project [45]. It is worth noticing that the choice about the existing projects the IDRE relies on comes from the partners of the CHOReVOLUTION consortium. However, the IDRE is an extensible platform and, as such, in the future, it may also support other technologies such as: Kubernetes for deployment and enactment, IBM's AIM for identity management. **(1) The Front-end layer** consists of the following:  
**(1.1)--** The **CHOReVOLUTION Studio** is an Eclipse-based IDE that allows for (i) designing a choreography exploiting BPMN2 Choreography Diagrams; (ii) defining all the details required to instrument the interaction among the services involved in the choreography (e.g., service signatures, identity attributes and roles); and (iii) driving the generation of BCs, As, and CDs exploiting the automated generation facilities offered by the back-end layer. **(1.2)--** The **CHOReVOLUTION Console** is a web-based application that allows for (i) configuring, administering and triggering actions on running services and choreographies; and (ii) monitoring the execution of a choreography with respect to relevant parameters, such as execution time  
Figure 4: CHOReVOLUTION IDRE overview. of choreography tasks, number of messages exchanged for the execution of tasks, end-to-end deadlines, etc. **(2) The Back-end layer** consists of the following:  
**(2.1)--** The **Synthesis Processor** implements the activities of the synthesis process shown in Figure 3. In particular, it takes as input the BPMN2 choreography diagram 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., CDs, As, and BCs. Finally, it generates a concrete description of the choreography (ChorSpec) that is passed to the Enactment Engine (via the Identity Manager) for deployment and enactment purposes. **(2.2)--** The **Enactment Engine (EE)** is a REST API that extends the Apache Brooklyn project [46]. It automatically deploys the choreography based on the choreography deployment description by using the Cloud Layer. The EE also interacts with the Identity Manager to include into the deployment description the actual deployment and runtime details. Then, once a choreography is deployed and running, the EE listens for command requests from the Identity Manager for runtime choreography control. It is worth noticing that, although choreography monitoring and control is performed by centralized IDRE components (e.g., EE and IdM), the realization and running of the choreography still remain fully distributed into the various artifacts generated by the Synthesis Processor. **(2.3)--** The **Federation Server** handles the runtime authentication and authorization for services that use different security mechanisms at the protocol level by storing various credentials on behalf of the caller. **(2.4)--** The **Identity Manager (IdM)** is based on Apache Syncope project [45] and it is responsible for managing users and services.