Franca Interface Definition Language (Franca IDL) is a formally defined, text-based
interface description language
interface description language or interface definition language (IDL), is a generic term for a language that lets a program or object written in one language communicate with another program written in an unknown language. IDLs describe an inter ...
. It is part of the Franca framework, which is a framework for definition and transformation of software interfaces. Franca applies
model transformation
A model transformation, in model-driven engineering, is an automated way of modifying and creating models. An example use of model transformation is ensuring that a family of models is consistent, in a precise sense which the software engineer can ...
techniques to interoperate with various interface description languages (e.g.,
D-Bus
In computing, D-Bus (short for "Desktop Bus")
is a message-oriented middleware mechanism that allows communication between multiple processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org project, ...
Introspection language,
Apache Thrift
Thrift is an interface definition language and
binary communication protocol
used for defining and creating services for numerous programming languages. It was developed at Facebook for "scalable cross-language services development" and as of 2 ...
IDL,
Fibex
The ASAM MCD-2 NET standard (called FIBEX for Field Bus Exchange Format) is an XML-based standardised format used for representing the networks used in automobiles. It is being used by the automotive industry for its ease of data exchange.
It h ...
Services).
Franca is a powerful 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 mechanisms. The core of it is ''Franca IDL''(Interface Definition Language), which is a textual language for specification of APIs.
History
The initial version of Franca was developed by the
GENIVI Alliance, now called COVESA (Connected Vehicle Systems Alliance), in 2011 being a common interface description language used for the standardization
of an
In-Vehicle Infotainment
In-car entertainment (ICE), or in-vehicle infotainment (IVI), is a collection of hardware and software in automobiles that provides audio or video entertainment. In car entertainment originated with car audio systems that consisted of radios and c ...
(IVI) platform. The first public version of Franca was released in March 2012 under the
Eclipse Public License
The Eclipse Public License (EPL) is a free and open source software license most notably used for the Eclipse IDE and other projects by the Eclipse Foundation. It replaces the Common Public License (CPL) and removes certain terms relating to ...
, version 1.0.
In 2013, Franca has been proposed as an official Eclipse foundation project.
Franca is mainly developed by the German company
Itemis
itemis AG, headquartered in Lünen (North Rhine-Westphalia), is a German IT consulting and software development company, active among other things in the field of model-driven software development (MDSD). With the YAKINDU product family, itemis ...
.
itemis
/ref>
Features
Franca IDL provides a range of features for the specification of software interfaces:
* declaration of interface elements: attributes, methods, broadcasts
* major/minor versioning scheme
* specification of the dynamic behaviour of interfaces based on finite-state machines
A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
(Protocol State Machines, short: PSM)
* storage of meta-information (e.g., author, description, links) using structured comments
* user-defined data types
In computer science and computer programming, a data type (or simply type) is a set of possible values and a set of allowed operations on it. A data type tells the compiler or interpreter how the programmer intends to use the data. Most progra ...
(i.e., array, enumeration, structure, union, map, type alias)
* inheritance for interfaces, enumerations and structures
Architecture
In addition to the text-based IDL for the specification of interfaces, Franca provides an HTML
The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
documentation generator.
Franca is implemented based on the Eclipse (software)
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, un ...
tool platform. For the definition of the actual Franca IDL, the Xtext
Xtext is an open-source software framework for developing programming languages and domain-specific languages (DSLs). Unlike standard parser generators, Xtext generates not only a parser, but also a class model for the abstract syntax tree, as w ...
framework is used. For the user of Franca, this offers a list of benefits for the activity of reviewing and specifying software interfaces.
See also
* Model transformation
A model transformation, in model-driven engineering, is an automated way of modifying and creating models. An example use of model transformation is ensuring that a family of models is consistent, in a precise sense which the software engineer can ...
* Automatic programming
In computer science, the term automatic programming identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers to write the code at a higher abstraction level.
There has been little ...
* Eclipse (software)
Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, un ...
* Eclipse Modeling Framework
Eclipse Modeling Framework (EMF) is an Eclipse (software), Eclipse-based Model-driven architecture, modeling framework and Automatic programming, code generation facility for building tools and other applications based on a structured data model. ...
* Xtext
Xtext is an open-source software framework for developing programming languages and domain-specific languages (DSLs). Unlike standard parser generators, Xtext generates not only a parser, but also a class model for the abstract syntax tree, as w ...
References
External links
* (at Eclipse Labs)
Resources
*
Specification languages
Data modeling languages
Inter-process communication
Component-based software engineering
Eclipse (software)
Object models
Remote procedure call
Object-oriented programming
{{compu-lang-stub