1 |
IMPLEMENTATION PHASES |
2 |
===================== |
3 |
|
4 |
tdb1, 17/10/00 |
5 |
|
6 |
Phase 1 |
7 |
------- |
8 |
|
9 |
Host |
10 |
The host program will probably be written in basic Java, |
11 |
and simply take the output from running unix commands. |
12 |
This will either be parsed by the program, or more |
13 |
preferably by an external perl/awk/grep/sed program. The |
14 |
thinking behind this is that porting to C/C++ will be much |
15 |
faster if the external parts are already written. This |
16 |
will also allow for the whole basic Phase 1 to be |
17 |
completed easily. |
18 |
|
19 |
If reading the data is becoming problematic it can be |
20 |
moved to Phase 2 and "simulation data" (ie. fake) used |
21 |
instead. |
22 |
|
23 |
It should only be implemented for the main platform, ie. |
24 |
Solaris/SPARC. |
25 |
|
26 |
Server |
27 |
At this Phase the server will only echo output to the |
28 |
screen, and basic checking can be done to verify whether |
29 |
e-mail alerts should be sent (probably via sendmail |
30 |
directly). |
31 |
|
32 |
Client |
33 |
No functionality at this stage. |
34 |
|
35 |
Overall |
36 |
The aim of this Phase is to implement the basic protocol |
37 |
for communication between the hosts and server, and give |
38 |
us a basis for explansion. |
39 |
|
40 |
|
41 |
Phase 2 |
42 |
------- |
43 |
|
44 |
Host |
45 |
The implementation in Phase 1 should be ported into C/C++ |
46 |
and all data should reflect the actual system (no |
47 |
simulation). It is not necessary to make systems calls at |
48 |
this stage, the external scripts from Phase 1 can still be |
49 |
used. |
50 |
|
51 |
Server |
52 |
Database connectivity should be implement, even if it's |
53 |
just a case of storing rows of data. This will require an |
54 |
element of modularity to be introduced. |
55 |
|
56 |
Client |
57 |
A basic web interface should be produced for debugging. |
58 |
All that is required is to be able to view the data in the |
59 |
database to check all is going to plan. |
60 |
|
61 |
Overall |
62 |
The aim here is to get the host code into it's intended |
63 |
language, and bring the database into the system. |
64 |
|
65 |
|
66 |
Phase 3 |
67 |
------- |
68 |
|
69 |
Host |
70 |
The code should be becoming more modular, with clear |
71 |
sections for the network communications, and the system |
72 |
interfacing. It should now be possible for the program to |
73 |
implement some system monitoring without the aid of |
74 |
external scripts, although if any are proving tricky they |
75 |
can be left for now. The key point is forming a "better" |
76 |
program. |
77 |
|
78 |
Server |
79 |
The server should now be taking a very modular design, and |
80 |
the system should be gaining more internal functionality. |
81 |
Better checking of events should be deployed, and the |
82 |
interfaces between components be more clearly defined. |
83 |
This will allow for the client interaction in Phase 4 to |
84 |
be more easily implemented. |
85 |
|
86 |
Client |
87 |
If time permits, it could be possible to produce some more |
88 |
web pages to allow better viewing of information, although |
89 |
this is the least important part at this stage. |
90 |
|
91 |
Overall |
92 |
The system should be taking good shape by now, and still |
93 |
be in an almost working state. Delivery could almost be |
94 |
possible. The main point is that the classes are being |
95 |
clearly defined with a good OO approach in mind. |
96 |
|
97 |
|
98 |
Phase 4 |
99 |
------- |
100 |
|
101 |
Host |
102 |
The host code should be completely standalone at this |
103 |
stage, and capable of running without any outside scripts. |
104 |
It should also be tidied to the point of being finished, |
105 |
and all the proper error handling be implemented. It can |
106 |
be considered complete for the current platform. |
107 |
|
108 |
Server |
109 |
The client interface can now be developed to allow a |
110 |
client to connect and view data. This should just be raw |
111 |
data, none of the "thinking" (ie. filtering of data for |
112 |
clients) need be done. |
113 |
|
114 |
The collector should also be expanded to allow more |
115 |
"thinking" to occur behind the scences. Key to this stage |
116 |
is the implementation of a filter, to hopefully stop |
117 |
floods of events going through. |
118 |
|
119 |
Client |
120 |
A basic client (in Java?) should be implemented that will |
121 |
connect to the server and just read information. It need |
122 |
not allow much user interaction, and need to act upon |
123 |
events. The key point is the communication between the |
124 |
client and the server. |
125 |
|
126 |
Overall |
127 |
The plan here is to polish off the "host side" of the |
128 |
server and get the client side moving along. |
129 |
|
130 |
|
131 |
Phase 5 |
132 |
------- |
133 |
|
134 |
Host |
135 |
With a completed initial host application for |
136 |
Solaris/SPARC (?) porting should take place. Initially NT |
137 |
should be done, but it could be possible for another |
138 |
person to quickly port to the Solaris/Intel and Linux |
139 |
platforms due to the similar code. The NT host application |
140 |
could almost take a rewrite, but all the basic channels of |
141 |
communication should remain the same. C/C++ should be used |
142 |
throughout. |
143 |
|
144 |
Server |
145 |
The client interface should be made more advanced with |
146 |
much more "thinking" stuff going on behind the scences. |
147 |
Preferences may be received from the client to tailor data |
148 |
sent, depending upon the design. |
149 |
|
150 |
If required, although we expect it won't be, the web |
151 |
interface should be written. However, we expect the |
152 |
webpages will connect directly to the database. Any "live |
153 |
applets" should be able to connect via the client |
154 |
interface. |
155 |
|
156 |
The server should be effectively complete now, at this |
157 |
stage of the development process. |
158 |
|
159 |
Client |
160 |
Client should be fully fledged, allowing configurabilty |
161 |
and use a full GUI. Graphical representation of the data |
162 |
is desired. This should be considered complete. |
163 |
|
164 |
The web interfaces should be finished off aswell, |
165 |
providing whatever features that have been planned. |
166 |
|
167 |
Overall |
168 |
Basically bringing everything together. The whole system |
169 |
should be completed at this point. This last phase will |
170 |
probably take quite a while to fully complete (porting |
171 |
and GUI writing). |
172 |
|
173 |
|
174 |
PUBLIC RELEASE 1 |
175 |
================ |
176 |
|
177 |
The system is now ready for the initial release. Although |
178 |
testing at each phase should have been done, it is now time |
179 |
to rigoursly test the whole system... preferably before |
180 |
release. |
181 |
|
182 |
Further features could be added, time pending of course, but |
183 |
we have the core of the whole system done. |
184 |
|
185 |
COMMENTS |
186 |
======== |
187 |
|
188 |
This is not final, and should be reviewed with regard to the |
189 |
features list to be produced. It is important that at the |
190 |
end of each phase the following are completed. |
191 |
|
192 |
- Documentation of code, and thoughts behind implementation. |
193 |
- Review of code, possibly by others. |
194 |
- Testing of code. |
195 |
- Meeting to review progress, and prepare for next phase. |
196 |
|
197 |
At all times code should be kept in CVS. Tagging will be |
198 |
done at the completion of each phase. It is therefore |
199 |
important that all work be concluded before the next phase |
200 |
commences. |
201 |
|
202 |
CVS trees should be decided upon at an early stage. |