AgileAndArt

The Art Improving Agile Software Development

Browsing Posts in CHOReOS

The CHOReOS middleware must be capable of providing the required runtime support to deploy, enact, monitor, and dynamically reconfigure large-scale choreographies. These choreographies might be large scale in one or more of the following dimensions: number of requests, users, roles, services, nodes, and communication among services. For instance, the middleware should be scalable enough to accommodate choreography with 1 thousand simultaneous users or with 100 different roles, or with 100 services for a given role, or with thousands of messages exchanged per second.
To be able to accommodate such large magnitudes, the current solution provided by the state of the art of parallel and distributed computing relies on clusters of machines, often organized in federated groups across the Internet in geographically distributed locations. The CHOReOS middleware will benefit from two modern technologies developed within the last 10 years: Cloud and Grid Computing. Cloud Computing will be the default mechanism for providing scalability within CHOReOS while Grid Computing will be used in more specific cases in which parallel computation is required.
The video demo is the initial prototype of the Node Pool Manager component, responsible for providing the infrastructure over which service choreographies will run.

To develop this system, we used the following technologies:
  • Eclipse – one of the most used and mature environment for Java development;
  • Git / Github – a decentralized source code repository, where the code is available.
  • Java programming Language (version 1.6) – Java language was the official language adopted by the the CHOReOS project, so we decided to use it to follow the projects needs;
  • Chef – a very respectful configuration management tool.
  • JAX-RS - Apache CXF implementation – for the REST services;
  • JClouds – a very mature implementation of the OCCI specification;
  • Petals DSB – A distributed service bus software,
  • jsch – a library for SSH access to machines;
  • JUnit 4 for Unit and Integration Tests – the project has a high test coverage (84% of code is covered by tests). Some of the tests use stubs and mocks, other do real things (really creates machines, and executes code in them using SSH protocol).
To download code and run the tests, the simplest way is through command line interface by following these steps (requires maven version 3 or above):
$ git clone git://github.com/choreos/choreos_middleware.git
$ cd choreos_middleware/NodePoolManager
#configure your keys in src/main/resources/nodepoolmanager.properties following the template in the same directory
$ mvn test
Some exceptions will be thrown, but they are expected, just notice the final report that should be ready in about four minutes.
This prototype was developed with my friend Carlos Eduardo Moreira dos Santos

The CHOReOS Solution

CHOReOS will implement a framework for scalable choreography development. The goal is to enable domain experts to develop decentralized ultra-large scale (ULS) solutions composed of heterogeneous services that are adaptable and QoS (Quality-of-Service) aware. Prior to this, these solutions were only possible with the support of dedicated IT professionals to provide the skills needed for architectural design and software engineering.
CHOReOS will deliver formally grounded abstractions and models, dynamic choreography-centric development processes, governance and service-oriented middleware manipulated via an Integrated Development Runtime Environment (IDRE) aimed at overcoming the ULS impact on software system development.

Here is what to expect from the CHOReOS project:

  • Abstractions and models
  • A choreography-based development environment
  • Service-oriented middleware
  • Governance mechanisms

Formally grounded abstractions and models for the Future Internet of Services

CHOReOS will elaborate a reference software architecture for the target choreography-based software systems, introducing abstractions for services, interaction protocols, and coordination (choreography patterns). Abstractions are central to the software engineering discipline. Indeed, abstraction is an essential means to deal with complexity. Formally grounded abstractions and models enable reasoning about the properties, both functional and non-functional, of ULS choreographies.

Dynamic choreography-centric development process and supporting environment for the Future Internet

CHOReOS will define a model-driven process and provide the necessary tools to enable rigorous and systematized development, as well as requirements specifications and choreography modelling by domain experts (as opposed to IT professionals) including further synthesis of concrete adaptable, QoS-aware choreographies built on top of an ultra-large repository of services (service base).

A dynamic choreography-centric development process allows the fusion of the user/developer/system roles, while managing the ULS service base and supports the synthesis of scalable and adaptable choreographies.

Service-oriented middleware for the Future Internet

Here’s where my PhD work will be focused!!!

CHOReOS will implement service middleware support, effectively enabling the deployment of adaptable, QoS-aware choreographies in the ULS Future Internet, integrating and further evolving the latest research advances in the area of Grid and Cloud computing, Enterprise Service Bus (ESB), and pervasive computing. Service-oriented middleware enables adaptable choreographies over ESB-based middleware, Grids, Clouds, and technologies for the Internet of Things, thus overcoming scalability and heterogeneity issues of the Future Internet.

Governance and V&V for the Future Internet

CHOReOS will define concepts of governance of services and choreographies. To support governance CHOReOS will develop mechanisms for Verification and Validation (V&V) of adaptable, QoS-aware choreographies in the context of the ULS Future Internet. Such mechanisms will be conceived to apply model-based techniques and to extend V&V activities to run-time. Governance includes service integration policies and rules, as well as tools for dynamic verification and validation of choreographies.

Last but not least, CHOReOS assesses the industrial exploitation of this choreography-centric vision by experimenting on three demanding use cases in different domains (passenger-friendly airportmobile-enabled coordination of peoplevehicular network) and by carrying out a study of social-technical factors.

Next month I’ll start my PhD program @ University of São Paulo.

I’ll work on a project called CHOReOS – Large Scale Choreographies for the Future Internet. People are asking me what is this project, what I will study, what exactly I’ll do and I have a simple answer to these questions: I don’t know. I mean, I don’t know exactly. But I know it’s cool and that I will be involved with great people. That’s enough.

But I promisse, as soon as I start understanding deeply the CHOReOS project, I’ll post details on my blog. For now, you can have the explanation given at the project’s blog:

What is CHOReOS?

  • CHOReOS is a joint IT research and development project, whose sixteen members consist of companies, universities and research centers from six European countries and Brazil.
  • CHOReOS is a project of the FP7 European program: FP7-ICT-2009-5 – Objective 1.2; it is co-funded by the European Commission (8.665.785 € of investments).
  • CHOReOS is a high-technology software project addressing one of the most acute challenges of the future Internet of Services: the design and management of ultra large-scale web services coordination.
  • CHOReOS is an open source project, the technology developed by the project will be publicly accessible from software repositories hosted on the OW2 Forge.
  • CHOReOS is a nascent community, a community that will come together and share via this web site, LinkedIn, Twitter, StatusNet and IRC.

What CHOReOS is not.

  • CHOReOS is not a company and you cannot buy shares in it.
  • CHOReOS is not a Greek island.

For more details, here’s the CHOReOS website.

Switch to our mobile site