The CO2 middleware allows web services and client applications to interact and exchange messages in a contract-oriented environment. The project is carried on by the TCS research group (University of Cagliari, Italy) and led by Massimo Bartoletti.
Here it is possible to download the software and the libraries you need for developing contract-oriented applications, and you can find the official documentation and the related publications.
The figures below shows the main features of our middleware. In (1), the participant A advertises its contract to the middleware, making it available to other participants. In (2), the middleware determines that the contracts of A and B are compliant, and then it establishes a session through which the two participants can interact.
This interaction consists in sending and receiving messages, similarly to a standard MOM (Message-Oriented Middleware): for instance, in (3) participant A delivers to the middleware a message for B, which can then collect it from the middleware. Unlike standard MOMs, the interaction happening in each session is monitored by the middleware, which checks whether contracts are respected or not.
For implementing a Java contract-oriented application, you can download our free CO2 libraries (last jar | documentation). Just start a new Java project in your IDE (eg: Eclipse) or add the .jar file in the POM configuration of your existent Maven project, then try the toy examples listed in the CO2 paper (see publications). All the examples are available here:
Here you can find the list of publications related with our CO2 middleware:
1) Massimo Bartoletti, Tiziana Cimoli, Maurizio Murgia, Alessandro Sebastian Podda, and Livio Pompianu.
A contract-oriented middleware, 2015. In Proc. FACS. pdf here.
2) Massimo Bartoletti, Tiziana Cimoli, Maurizio Murgia, Alessandro Sebastian Podda, and Livio Pompianu.
Compliance and subtyping in timed session types, 2015. In Proc. FORTE. pdf here.
This site is developed by the TCS Group at the Department of Mathematics and Computer Science, University of Cagliari (Via Ospedale 72, 09124 Cagliari, Italy). Click the icon below for reading more about the authors.
This work is partially supported by Aut. Reg. of Sardinia grants L.R.7/2007 CRP-17285 (TRICS), P.I.A. 2010 ('Social Glue'), P.O.R. Sardegna F.S.E. Operational Programme of the Aut. Reg. of Sardinia, EU Social Fund 2007-13 -- Axis IV Human Resources, Objective l.3, Line of Activity l.3.1), by MIUR PRIN 2010-11 project 'Security Horizons', and by EU COST Action IC1201 'Behavioural Types for Reliable Large-Scale Software Systems' (BETTY).