The main outcome of the HEADS project will be an Integrated Development Environment (IDE) supporting a domain specific modeling language and an operational methodology for specification, validation, deployment and evolution of software-intensive services distributed across the future computing continuum. The HEADS IDE will allow modeling the behavior of a service in a homogeneous HEADS modeling language while allowing the implementation of the service to be distributed over heterogeneous networks and devices. The HEADS IDE will be developed and released as open-source and extensible by a plugin mechanism and a framework to add support for additional platforms. Note that the HEADS IDE will not replace existing popular and widespread IDEs and frameworks, but will provide advanced support for making the necessary glue between all the distributed nodes, components, platforms and communication protocols and leverage a coherent seamless operational support for the largely distributed future computing continuum systems.
HEADS will make HD-Service development affordable and accessible to a wide range of industry domains. The project especially targets SMEs which typically do not have in-house knowledge of all the target platforms they would like to exploit within the future computing continuum. It also targets sectors for which a rapid innovation and release cycle is the key. Moreover, the emergence of the future computing continuum will impact end user requirements and transform business markets, this again require companies to evolve existing products and services to fully exploit this continuum. A main impact of HEADS will be through provision of exploitable results to perform these tasks in an efficient and cost effective way.
Check out HEADS "Big Picture" in the following link: http://heads-project.eu/approach
Significant results (M12-M27)
Use cases, requirements and validation
- Redefined industrial use-case and established initial PoC for the Safe@Home use-case.
- Provided consolidated use case implementation applying and evaluating HEADS technologies.
Languages, models and tools for engineering HD-services
- Architecture for the HEADS code generation framework and implementation of a set of compilers:
- Java, with extension targeting HEADS models@runtime platform
- C (work in progress), with extensions targeting Linux, Arduino and ROS
- UML, with automatic export of UML statecharts and component diagrams
- Extension of the HEADS modelling language to support
- Complex-Event Processing constructs, which simplifies the implementation of HD-services by automating some analysis
- Advanced communication pattern, which simplifies the implementation of HD-services by automating some communication patterns which requires more that the default asynchronous fire-and-forget message passing semantics.
- Organization of internal tutorials for "Use cases, requirements and validation" activities (and other partners) to get started with modeling languages and code-generation framework under "Languages, models and tools for engineering HD-services" activities.
Resource-constrained devices and networks
- Definition of target groups for resource constrained devices. The groups Tiny, Small and Large are defined with specific requirements and design approach.
- Integration with other technical activities. A design with console based task and channel management running on a Cypress dev kit has been presented at the ned of the first period. The console interface is now successfully integrated with "Methodology and tool integration" activities, where tasks and channels are controlled from their operation management scripts.
- Integration of MQTT plugin to HEADS Framework. MQTT successfully integrated to Tellu use-case.
Cloud-based platforms for testing and data management
- Docker container management from Kevoree
- code generator testing framework using novelty search techniques
- New Kevoree version to support heterogeneity within the same systems
- Javasript platform to support Intel Edison devices.
- First version of CEP recommender tool is available for simple CEP logic
- CEP recommender tool integrated as Eclipse plugin into HEADS IDE
- Views added to CEP recommender tool for nodes, operations, and recommendations
Methodology and tool integration
- Second release of HEADS IDE
- methodology seamless integration to HEADSIDE
- Improved version of the HEADS IDE continuous integration
Initial steps (the first six months)
In the first half of the period, the work carried in the technical work packages has focussed on defining a common HEADS big picture which integrates the HEADS technical contributions into a common framework. The following figure presents the preliminary big picture of the HEADS IDE components together with the main HEADS actors. The HEADS IDE includes two main parts: the design time tools in the top part of the figure and the runtime tools on the bottom part of the figure.
HEADS IDE Big Picture
The HEADS design time tools are integrated using the Eclipse platform and are based on the ThingML languages and tools developed by SINTEF.
The HEADS runtime is not dependent on any middleware or runtime platform but uses models@runtime technique to deploy and monitor the execution of an HD-Service on top of a heterogeneous and distributed infrastructure. The HEADS deployment and runtime tools are based on the Kevoree model@runtime platform developed by INRIA.
The HEADS IDE is meant to be used by the HD-Service developer and the HD-Service operator in order to create, deploy, monitor and evolve HD-Services. The distinction between the service developer and operator is that the developer is mainly concerned with the HEADS design time tools (based on ThingML) and the operator is mainly concerned with the HEADS runtime tools (based on Kevoree).
In addition, the HEADS IDE is meant to be extended by platform experts. The HEADS IDE is built as an open-source framework which has a set of extension points to support new platforms and communication channels. At this point, we have identified four extension points which are represented by yellow stars with numbers in previous figure. Each of these extension points allows supporting different aspects of a particular target platform. HEADS is focusing on how these extension points can be used to support resource-constrained devices and networks and at the same time extensions to support cloud based platforms.
HEADS Safe@Home case study at Telenor EXPODec 15
HEADS project consortium is setting up a stand of eHealth services related to the HEADS Safe@Home case study at...
HEADS upcoming meeting and tutorial, and Deutsche Welle presenceNov 14
On 22-24 November 2016, HEADS project consortium is hosting its 11th plenary meeting at the...
HEADS Paper accepted at GPCE 2016Sep 08
HEADS paper "Automatic Non-functional Testing of Code Generators Families" has been accepted for presentation at the 15th International Conf