import torrus 1.0.9
[freeside.git] / torrus / doc / devdoc / torrus_roadmap.pod
1 #
2 #  This program is free software; you can redistribute it and/or modify
3 #  it under the terms of the GNU General Public License as published by
4 #  the Free Software Foundation; either version 2 of the License, or
5 #  (at your option) any later version.
6 #
7 #  This program is distributed in the hope that it will be useful,
8 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
9 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 #  GNU General Public License for more details.
11 #
12 #  You should have received a copy of the GNU General Public License
13 #  along with this program; if not, write to the Free Software
14 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
15
16 # $Id: torrus_roadmap.pod,v 1.1 2010-12-27 00:04:36 ivan Exp $
17 # Stanislav Sinyagin <ssinyagin@yahoo.com>
18 #
19
20 =head1 RRFW to Torrus transition roadmap
21
22 =head2 Introduction
23
24 The name "RRFW" appeared to be quite difficult to remember and to pronounce.
25 There has been a call for a new name, and recently a good suggestion came
26 from Francois Mikus:
27
28     --- Francois Mikus <fmikus[at]acktomic.com> wrote:
29     > Here is my humble flash, which I think may be appropriate. Which I will 
30     > explain why below...
31     > 
32     > The name I would suggest is;
33     > 
34     > Torrus
35     > 
36     > Has a mythical sounding name without the actual history. Has a resonance 
37     > with Torrent, where rrfw deals with a torrent of information. A google 
38     > search comes up with near nothing, and nothing commercial. Has a 
39     > resonance with Taurus, which is mythical, astrological and has an 
40     > underlying strength connotation.
41     > 
42     > Anyway, this is the best I could think of. And it provides an opening to 
43     > have a semi-mythical/comic style yet serious mascot.
44     > 
45     > You have a LOT of documentation. web pages, code, etc.. But marketing is 
46     > the way to win hearts and minds, create a following and get rabid 
47     > developpers on-board!
48
49 Thus the project will be renamed to Torrus, and few other structural changes
50 will accompany the transition.
51
52 =head2 Releases roadmap
53
54 Version 0.1.8 will be the last of RRFW, unless some urgencies arise.
55
56 The first Torrus release will be 1.0.0.
57
58
59
60 =head2 Multiple XML cofiguration directories
61
62 During XML compilation, the datasource configuration files will be searched in
63 multiple directories. The list of directories and the search sequence
64 will be configurable. This will allow not to mix the distribution XML files
65 and the ones created locally.
66
67 =head2 Separated directories for templates and configuration
68
69 Perl configuration files and HTML templates will also be separated into
70 different directories, so that user-editable files don't mix with the
71 ones from distribution.
72
73 =head2 Commandline launcher
74
75 A small shell script will be installed as C</usr/local/bin/torrus>,
76 and it will pass all arguments to appropriate torrus executables. For example,
77
78   torrus compile --tree=main
79
80 will execute C<compilexml> torrus utility with the argument C<--tree=main>.
81
82
83
84 =head2 New directory hierarchy
85
86 Filesystem Hierarchy Standard E<lt>http://www.pathname.com/fhs/E<gt>
87 proposes to put the software add-on packages into C</opt> directory
88 and user services data, such as database contents or RRD files, in
89 C</srv> directory.
90
91 However, FreeBSD and some other systems are not FHS-compliant, and require
92 to install all additional software into C</usr/local> hierarchy.
93
94 We propose that Torrus distribution will support three different directory
95 layouts, and the system administrator will decide the most suitable one:
96
97 =over 4
98
99 =item 1
100
101 Default layout based in C</usr/local>;
102
103 =item 2
104
105 FHS compliant layout, set by running C<./configure_fhs> instead
106 of C<./configure>;
107
108 =item 3
109
110 Custom layout, tunable with standard options and variables in C<./configure>.
111
112 =back
113
114
115 =head3 Default layout
116
117 Although many systems like FreeBSD discourage creation of new
118 package-specific subdirectories in /usr/local, we find it quite a common
119 practice, and quite convenient for keeping the files together.
120
121   /usr/local/torrus/    Home directory for Torrus distribution files
122         |
123         +- conf_defaults/  torrus-config.pl and others
124         |
125         +- bin/         Command-line executables
126         |
127         +- doc/         POD and TXT documentation files
128         |
129         +- examples/    Miscelaneous example files
130         |
131         +- perllib/     Perl libraries
132         |
133         +- plugins/     Plugins configuration
134         |
135         +- scripts/     Scripts
136         |
137         +- sup/         Supplementary files, DTDs, MIBs, color schemas,
138         |               Web plain files
139         |
140         +- templates/   Renderer output templates
141         |
142         +- xmlconfig/   Distrubution XML files
143
144   /usr/local/etc/torrus/   Site configurable files
145         |
146         +- conf/        Place for torrus-siteconfig.pl and other siteconfigs
147         |
148         +- discovery/   Devdiscover input files
149         |
150         +- templates/   User-defined Renderer output templates
151         |
152         +- xmlconfig/   User XML configuration files
153
154   /usr/local/man/       Place for man pages. All articles will have the
155                         prefix C<torrus_>
156
157   /var/log/torrus/      Daemon logfiles
158
159   /var/run/torrus/      Daemon PID files
160
161   /var/torrus/cache/    Renderer cache
162
163   /var/torrus/db/       Configuration databases
164
165   /var/torrus/session_data/  Web interface session files
166
167   /srv/torrus/collector_rrd/  Default directory for collector
168                               generated RRD files
169
170
171 =head3 FHS compliant layout
172
173   /opt/torrus/          Home directory for Torrus distribution files
174         |
175         +- conf_defaults/  torrus-config.pl and others
176         |
177         +- bin/         Command-line executables
178         |
179         +- doc/         POD and TXT documentation files
180         |
181         +- examples/    Miscelaneous example files
182         |
183         +- perllib/     Perl libraries
184         |
185         +- plugins/     Plugins configuration
186         |
187         +- scripts/     Scripts
188         |
189         +- sup/         Supplementary files, DTDs, MIBs, color schemas
190         |
191         +- templates/   Renderer output templates
192         |
193         +- xmlconfig/   Distrubution XML files
194
195   /etc/opt/torrus/   Site configurable files
196         |
197         +- conf/        Place for torrus-siteconfig.pl and other siteconfigs
198         |
199         +- discovery/   Devdiscover input files
200         |
201         +- xmlconfig/   User XML configuration files
202
203   /opt/torrus/share/man/  Place for man pages. All articles will have the
204                           prefix C<torrus_>
205
206   /var/log/torrus/      Daemon logfiles
207
208   /var/run/torrus/      Daemon PID files
209
210   /var/torrus/cache/    Renderer cache
211
212   /var/torrus/session_data/  Web interface session files
213
214   /srv/torrus/db/       Configuration databases
215
216   /srv/torrus/collector_rrd/  Default directory for collector
217                               generated RRD files
218
219
220 =head2 New plugins design
221
222 Unlike RRFW, the plugins in Torrus will be installed independently.
223 This will allow to easily add new plugins to an existing installation.
224
225 The Torrus installer stores all important variable settings in a special
226 file, F<conf_defaults/instvars>. Then the plugin installer is able
227 to access the settings without accessing the Torrus distribution
228 directory.
229
230 There is a helper utility, C<install_plugin>, which applies all
231 I<configure> variables to the plugin configuration utility.
232 It follows then the standard installation way:
233
234  ./configure && make && make install
235
236 Thus the OS-dependent package installators may follow the standard
237 configuration procedure, while those who manually install the software,
238 will use the helper.
239
240 There are two special directories: F</usr/local/torrus/plugins/torrus-config>
241 and F</usr/local/torrus/plugins/devdiscover-config>. Plugins are
242 allowed to add Perl files there. They will be automatically I<require>'d by
243 F<torrus-config.pl> and F<devdiscover-config.pl>.
244
245
246
247 =head2 Authors
248
249 Copyright (c) 2004 Stanislav Sinyagin