Sie sind auf Seite 1von 16

Franca Introduction

V1.0, 2012-10-02

What is Franca?

a framework for definition and transformation of software


interfaces
a tool for system integration on architecture level
a platform for interface code generation
a software interface IDE
an IDL (short for: interface definition language)
an open source project based on Eclipse

FRANCA INTRODUCTION

2012-10-02

An interface definition

FRANCA INTRODUCTION

2012-10-02

Franca history & roadmap


Common API, contracts, tool integration(s)
September 2012: More transformations & features

March 2012: Franca published as OSS on EclipseLabs

November 2011: Initial release of Franca

October 2011: Start of prototype implementation of Franca

July 2011: GENIVI consortium starts topic Common IDL

FRANCA INTRODUCTION

2012-10-02

Franca feature overview

Source: wikipedia

FRANCA INTRODUCTION

2012-10-02

Franca IDL features

static interface definition

type definitions

rich set of predefined primitive types


definition of new types: enumeration, array, struct, union, map and typedef
inheritance for struct, union and enumeration

general

definition of attributes, methods and broadcasts


multiple in- and out-parameters, error return values (via enumeration type)
interface inheritance

splitting models over multiple files (package declarations, imports)


formalized comments (tag-based, for meta-information)

interface behavior definition

via state-machine based contracts


FRANCA INTRODUCTION

2012-10-02

Franca IDL editor


syntax
coloring

folding

online
validation

content
assist

jump to definition,
auto format,
refactorings,

FRANCA INTRODUCTION

2012-10-02

Franca contracts

use contracts for specification of


interface behaviour

components of contracts

e.g., order of events on the interface


protocol state machine

states of the client/server connection

transitions triggered by events (either client- or server-initiated)

action language for transitions

state variables

how are contracts used?

provide information to static analysis of system software


offline compliance check of system traces against interface contract
generate extra code for online checks
provide smart assistance during development by built-in tool support
FRANCA INTRODUCTION

2012-10-02

Franca transformations

Franca as pivot model for IDL transformations

e.g., convert Thrift IDL to WebIDL


Franca connectors offer automatic transformations which capture model-tomodel mappings

FRANCA INTRODUCTION

2012-10-02

Code generators based on Franca

code generators are based on Franca model


examples:

simple C++ header generator example (part of Franca distribution)

HTML generator (part of Franca distribution)

C++ Common API generator (under development)

D-Bus binding generator

and others...

10

FRANCA INTRODUCTION

2012-10-02

Franca usage scenario

typical Franca usage scenario


support for multiple IDLs and generators
support for rapid interface prototyping

11

FRANCA INTRODUCTION

2012-10-02

Franca deployment models

deployment models contain information beyond core IDL


information in deployment models is specific to target-platform
tight integration of deployment models and IDL
Architecture

Interface
definitions

12

FRANCA INTRODUCTION

2012-10-02

Franca deployment models

based on

Interface
definition
(Franca IDL)

refines

Deployment
specification

refines

Interface
definition
(Franca IDL)

Deployment
definition Deployment
(of an interface)
definition Deployment
(of an interface)
definition
(of an interface)

deployment model DSL contains of two parts:


deployment specification: typesafe definition of properties for IDL elements
deployment definition(s): property values for concrete interfaces
13

FRANCA INTRODUCTION

2012-10-02

Implementation details

Franca is available as open source (here)


based on Eclipse Indigo/Juno (eclipse.org) and the frameworks

IDE-tooling (e.g., Franca IDL editor)

Eclipse Modeling Framework (EMF)


Xtext 2, Xtend language
running in Eclipse IDE
currently requires Java 6

standalone tooling (e.g., code generators)

14

specifically derived from Franca framework parts


typically used during build process
running on plain Java VM

FRANCA INTRODUCTION

2012-10-02

How to install Franca

1.

2.

3.

4.

Download Eclipse Indigo from eclipse.org


(modeling distribution)
Install Eclipse Xtend as a preliminary
Download Franca update site from Eclipse
Labs and install it
Import example project into your workspace

There is a detailed howto with links in the Franca User Guide or on the
Franca homepage on Eclipse Labs:
http://code.google.com/a/eclipselabs.org/p/franca/wiki/FrancaQuickInstallGuide

15

FRANCA INTRODUCTION

2012-10-02

Where to go from here?

Install Franca and try it!


Read the Franca User Manual, available on the Franca download
page.
Flip through another presentation with details on Franca topics.
Clone the Franca source repository and start contributing

Franca homepage:
https://code.google.com/a/eclipselabs.org/p/franca/

Contact:
klaus.birken (at) gmail.com

16

FRANCA INTRODUCTION

2012-10-02