i-scream documentation viewer
minutes-20001128.txt
Minutes of meeting 28/11/00 @ 1pm Location: Eliot College, E3E room 8 Present: pjm2, tdb1 Absent: None A small sub-meeting was held between Paul and Tim to discuss the plugin structure in the Filter, and some database design issues. First to be discussed was the Filter plugin system. Paul has agreed to implement this setup. The following design was put forward, any objections should be noted at the next meeting. A PluginManager will be in charge of handling the individual plugins, and will provide a single point of contact the the Filter system. The PluginManager will be constructed in the main method of the Filter, and a single reference passed to the three subcomponents - the FilterServant, UDPReader and TCPReader. These three in turn will pass the reference on to the FilterThread they create. The FilterThread is currently the final point in the Filter that has the data. At present it just passes the original XML string on to it's parent. The PluginManager will be used just before this event occurs. It will provide a single method which can be called by the FilterThread. This method will take an XMLPacket object and return a boolean. The FilterThread will use this boolean value to decide whether to send the XML on to it's parent. The idea behind having this single PluginManager object is that it will save recreating instances of the actual plugins each time a data item arrives. It might provide a method to reinitialise itself, but this has not been finalised. The actual plugins themselves will implement a single Java interface. The PluginManager will hold an array of these objects which it will pass the XMLPacket through in order. These plugins will reside in a subdirectory, hopefully, and will either all be loaded, or be configured in the central ConfigurationManager. The main issue with this is concurrency. Obviously only having one instance of the PluginManager could cause problems with three threads trying to call it. This should be discussed with the group, as threads can be a tricky thing to get absolutely right. Other issues discussed include the database design. Paul has produced a design for the database tables, which is available in CVS for the group to examine. Some issues arose with the SQL insertion routine, and whether or not a lock would be required. This should be investigated further. Paul also agreed to look into the Java side of the database system. This would be a single module that would link in to the root filter. The root filter would pass the raw XML strings into this module, which would in turn decode them and store them in the database. This brought about another issue, namely the XML decoding classes. These are currently used in both the filter and root filter. It was decided that they would not be needed in the root filter as it would just pass the raw XML data. This only leaves one point they're needed, at present. However, this will change as the database interface will require them and no doubt the client side will too. It was suggested that these should be moved into a seperate package that could be used by the whole system. Packaging of classes is an issue which should be discussed at the next meeting, and then put in place. Other group members should have read these minutes prior to the next meeting if possible.