| 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. |