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.