Bump versions by x.y.(z+1)
[mdsal.git] / README.adoc
1 = MD-SAL
2
3 == Overview
4
5 The Model-Driven Service Adaptation Layer (MD-SAL) is message-bus inspired
6 extensible middleware component that provides messaging and data storage
7 functionality based on data and interface models defined by application developers
8 (i.e. user-defined models).
9
10 The MD-SAL:
11
12  * Defines a *common-layer, concepts, data model building blocks and messaging
13    patterns* and provides infrastructure / framework for applications and
14    inter-application communication.
15
16 // FIXME: Common integration point / reword this better
17  * Provide common support for user-defined transport and payload formats, including
18    payload serialization and adaptation (e.g. binary, XML or JSON).
19
20 The MD-SAL uses *YANG* as the modeling language for both interface and data
21 definitions, and provides a messaging and data-centric runtime for such services
22 based on YANG modeling.
23
24 The MD-SAL provides two different API types (flavours): +
25
26 Binding:: 
27   MD-SAL APIs which extensively uses APIs and classes generated
28   from YANG models, which provides compile-time safety and allows developers
29   to use more natural way to work with data.
30 DOM::
31   (Document Object Model) APIs which uses DOM-like
32   representation of data, which makes them more powerful, but provides less
33   compile-time safety.
34
35 NOTE: Model-driven nature of the MD-SAL and *DOM*-based APIs allows for
36 behind-the-scene API and payload type mediation and transformation
37 to facilitate seamless communication between applications - this enables
38 for other components and applications to provide connectors / expose different
39 set of APIs and derive most of its functionality purely from models, which
40 all existing code can benefit from without modification.
41 For example *RESTCONF Connector* is an application built on top of MD-SAL
42 and exposes YANG-modeled application APIs transparently via HTTP and adds support
43 for XML and JSON payload type.
44
45 == Contributing
46
47 MD-SAL is part of http://opendaylight.org[OpenDaylight Project], where we
48 use http://git.opendaylight.org[Gerrit] for incoming patch reviews.