list is Multi now which enables us to implement item access
[tiramisu.git] / doc / getting-started.txt
1 ==================================
2 `Tiramisu` - Getting Started 
3 ==================================
4
5 What is Configuration handling ?
6 ================================= 
7
8 Due to more and more available configuration options required to set up 
9 an operating system, it became quite annoying to hand the necessary 
10 options to where they are actually used and even more annoying to add 
11 new options. To circumvent these problems the configuration management 
12 was introduced.
13
14 What is Tiramisu ?
15 =================== 
16
17 Tiramisu is yet another configuration handler, wich aims at producing 
18 flexible and fast configuration options access. The main advantages are 
19 its access :ref:`glossary#rules` and the fact that the configuration 's 
20 consistency is preserved at any time, see :ref:`glossary#consistency`.
21
22 There are type and structures's validations for configuration options, 
23 and validations towards the whole configuration.
24
25 Last but not least, configuration options can be reached and changed 
26 according to the access rules from nearly everywhere in the OS boxes, 
27 e.g. the containers via the `http/json` server.
28
29 Just the facts 
30 ============== 
31
32 .. _gettingtiramisu: 
33
34 Download
35 ---------
36
37 To obtain a copy of the sources, check it out from the repository using 
38 `git`. We suggest using `git` if one wants to access the current development.
39
40 ::
41
42     git clone git://git.labs.libre-entreprise.org/tiramisu.git
43
44 This will get you a fresh checkout of the code repository in a local 
45 directory named ``tiramisu``.
46
47 Understanding Tiramisu's architecture
48 --------------------------------------
49
50 The :ref:`glossary#schema` is loaded from an XML file, and the values of 
51 the configuration options are recovered from a `.ini` like file.
52
53 By now, all the in-depth informations about the configuration are stored 
54 in a **single** object, the :api:`config.Config()` object, wich is 
55 responsible of nearly everything. All the necessary options are stored 
56 into a configuration object, which is available nearly everywhere, so 
57 that adding new options becomes trivial.
58
59 This `Config()` is available from everywhere with the help of an http server
60 that serves configuration datas as `json` strings. 
61
62 .. figure:: architecture.png
63    
64    The basics of Tiramisu's architecture.
65    Once loaded, http server serves the :api:`config.Config()` object, that is,
66    the configuration options and the configuration groups. 
67