The Franca project is a proposed open source project under the Modeling Top-level Project.
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Eclipse Proposals Forum.
Interfaces are important artifacts in any kind of software architecture. They represent the contract between components, subsystems or systems and also between organizational units, like teams, departments, or companies. Therefore, in many development environments interfaces are modeled as first-class entities using an Interface Definition Language (short: IDL). However, for building large-scale platforms or systems, existing IDLs have at least two shortcomings:
In order to address both issues, GENIVI started the Franca project, which can serve as a hub for IDL transformations and allows the specification of dynamic behavior as an integral part of each modeled interface. Part of Franca is a technology- and platform-neutral IDL. Franca has been initially contributed by Harman and has been published on EclipseLabs in March 2012 (under Eclipse Public License 1.0).
The Franca project provides a technology- and platform-neutral IDL including an easy-to-use editor based on the Eclipse IDE. The project also provides:
Franca is a framework for definition and transformation of software interfaces. It is used for integrating software components from different suppliers, which are built based on various runtime frameworks, platforms and IPC (Inter-Process Communication) mechanisms.
The diagram above shows the five aspects of the Franca framework.
IDL and feature-rich editor. The core of it is Franca IDL (Interface Definition Language), which is a textual language for specification of APIs.
Transformations and generation.
Franca offers a framework for building transformations from/to other IDLs
and model-based interface descriptions
(e.g., D-Bus, UML, AUTOSAR, WebIDL) It also supports code generation with some
open-source code generators already available.
Support for the D-Bus Introspection format is available as installable
feature of Franca.
The diagram below shows a typical set-up of transformations (yellow) and generators (blue) built with Franca.
Specification of dynamic behavior.
With Franca, the dynamic behavior of client/server interactions can be
specified using protocol state machines. Tools are available to use these
specifications for validating implementations, e.g., checking runtime
traces against the expected order of events on the interface.
A graphical viewer for protocol state machines is part of Franca. The following diagram shows an example screenshot.
Flexible deployment models. In specific application domains, it may be necessary to extend interface specifications by platform- or target-specific information. This is supported by Franca's deployment models, which allow these kind of extensions in a type-safe way.
Rapid interface prototyping. An executable test environment for an interface definition can be generated instantly, allowing users to see the interface in action. This is accomplished by generating eTrice models from Franca interfaces and generating executable Java code from these models. The generated test environment consists of a client component (acting as dynamic test case executor) and a server component (acting as an intelligent mock object).
Franca is already quite well-known and used across the Automotive/Infotainment domain. Therefore, it will provide additional value to the toolset Eclipse has to offer for the Automotive domain. It will especially attract companies to the Eclipse ecosystem which develop Infotainment solutions, just because of Franca's impact in that domain. This is valid not only for Eclipse as a community, but as well for the Automotive IWG at Eclipse.
Additionally, Franca might bring additional value to selected Eclipse projects by enabling some new inter-project functionality. E.g., there is already a feature to create eTrice models from Franca models. Also for projects tackling other application domains, Franca could be a valuable addition: E.g., Franca could serve as a bridge between Automotive applications and the growing M2M ecosystem, motivated by innovative Car2X use cases.
Franca is based on several Eclipse-based technologies, among them EMF, Xtext and Xtend. Moreover, it optionally provides connections to other Eclipse projects (e.g., eTrice). Thus, by moving Franca into the Eclipse space, infrastructure topics can be coupled more tightly. For example, Franca releases can be aligned with the overall Eclipse release roadmap.
Moreover, the threshold for initial contributions established by the Eclipse foundation will help to increase the confidence companies will put into Franca. This includes the I.P. check, committer requirements and also the required continuity for release trains. This will improve the proliferation of the Franca concepts.
Finally, the visibility of Franca will be increased by being part of the Eclipse community. This will help attracting users, committers and other projects to connect with the Franca network.
The initial contribution consists of sources and artifacts found in the current Franca repository at Franca project. Copyright for the source files is partly held by Harman International, partly by itemis AG.
Franca uses the following third-party dependencies (aside from the Eclipse platform):
All contributions will be distributed under the Eclipse Public License. The current code planned for initial distribution published at EclipseLabs (see Franca project) is distributed under the Eclipse Public License as well.
The following individuals are proposed as initial committers to the project:
We welcome additional committers and contributions.
The following Architecture Council members will mentor this project:
The following individuals, organisations, companies and projects have expressed interest in this project:
Back to the top