i-scream documentation viewer
implementation-phases.txt
IMPLEMENTATION PHASES
=====================
tdb1, 17/10/00
Phase 1
-------
Host
The host program will probably be written in basic Java,
and simply take the output from running unix commands.
This will either be parsed by the program, or more
preferably by an external perl/awk/grep/sed program. The
thinking behind this is that porting to C/C++ will be much
faster if the external parts are already written. This
will also allow for the whole basic Phase 1 to be
completed easily.
If reading the data is becoming problematic it can be
moved to Phase 2 and "simulation data" (ie. fake) used
instead.
It should only be implemented for the main platform, ie.
Solaris/SPARC.
Server
At this Phase the server will only echo output to the
screen, and basic checking can be done to verify whether
e-mail alerts should be sent (probably via sendmail
directly).
Client
No functionality at this stage.
Overall
The aim of this Phase is to implement the basic protocol
for communication between the hosts and server, and give
us a basis for explansion.
Phase 2
-------
Host
The implementation in Phase 1 should be ported into C/C++
and all data should reflect the actual system (no
simulation). It is not necessary to make systems calls at
this stage, the external scripts from Phase 1 can still be
used.
Server
Database connectivity should be implement, even if it's
just a case of storing rows of data. This will require an
element of modularity to be introduced.
Client
A basic web interface should be produced for debugging.
All that is required is to be able to view the data in the
database to check all is going to plan.
Overall
The aim here is to get the host code into it's intended
language, and bring the database into the system.
Phase 3
-------
Host
The code should be becoming more modular, with clear
sections for the network communications, and the system
interfacing. It should now be possible for the program to
implement some system monitoring without the aid of
external scripts, although if any are proving tricky they
can be left for now. The key point is forming a "better"
program.
Server
The server should now be taking a very modular design, and
the system should be gaining more internal functionality.
Better checking of events should be deployed, and the
interfaces between components be more clearly defined.
This will allow for the client interaction in Phase 4 to
be more easily implemented.
Client
If time permits, it could be possible to produce some more
web pages to allow better viewing of information, although
this is the least important part at this stage.
Overall
The system should be taking good shape by now, and still
be in an almost working state. Delivery could almost be
possible. The main point is that the classes are being
clearly defined with a good OO approach in mind.
Phase 4
-------
Host
The host code should be completely standalone at this
stage, and capable of running without any outside scripts.
It should also be tidied to the point of being finished,
and all the proper error handling be implemented. It can
be considered complete for the current platform.
Server
The client interface can now be developed to allow a
client to connect and view data. This should just be raw
data, none of the "thinking" (ie. filtering of data for
clients) need be done.
The collector should also be expanded to allow more
"thinking" to occur behind the scences. Key to this stage
is the implementation of a filter, to hopefully stop
floods of events going through.
Client
A basic client (in Java?) should be implemented that will
connect to the server and just read information. It need
not allow much user interaction, and need to act upon
events. The key point is the communication between the
client and the server.
Overall
The plan here is to polish off the "host side" of the
server and get the client side moving along.
Phase 5
-------
Host
With a completed initial host application for
Solaris/SPARC (?) porting should take place. Initially NT
should be done, but it could be possible for another
person to quickly port to the Solaris/Intel and Linux
platforms due to the similar code. The NT host application
could almost take a rewrite, but all the basic channels of
communication should remain the same. C/C++ should be used
throughout.
Server
The client interface should be made more advanced with
much more "thinking" stuff going on behind the scences.
Preferences may be received from the client to tailor data
sent, depending upon the design.
If required, although we expect it won't be, the web
interface should be written. However, we expect the
webpages will connect directly to the database. Any "live
applets" should be able to connect via the client
interface.
The server should be effectively complete now, at this
stage of the development process.
Client
Client should be fully fledged, allowing configurabilty
and use a full GUI. Graphical representation of the data
is desired. This should be considered complete.
The web interfaces should be finished off aswell,
providing whatever features that have been planned.
Overall
Basically bringing everything together. The whole system
should be completed at this point. This last phase will
probably take quite a while to fully complete (porting
and GUI writing).
PUBLIC RELEASE 1
================
The system is now ready for the initial release. Although
testing at each phase should have been done, it is now time
to rigoursly test the whole system... preferably before
release.
Further features could be added, time pending of course, but
we have the core of the whole system done.
COMMENTS
========
This is not final, and should be reviewed with regard to the
features list to be produced. It is important that at the
end of each phase the following are completed.
- Documentation of code, and thoughts behind implementation.
- Review of code, possibly by others.
- Testing of code.
- Meeting to review progress, and prepare for next phase.
At all times code should be kept in CVS. Tagging will be
done at the completion of each phase. It is therefore
important that all work be concluded before the next phase
commences.
CVS trees should be decided upon at an early stage.