NetChat Communications Framework Overview January 16, 2007
Purpose Modular communications protocol XML representation of data SSL encryption of traffic Function-independent data encapsulation Provide one application to serve many communications needs
NetChat Protocol (NCP) The basic message: <message> <header> <properties/> </header> <content> ... </content> </message>
Server Written in Ruby MySQL backend Will be able interconnect and route clients connections
Clients J-Client: Written in Java Graphical interface Main distribution client Py-Client Written in Python Curses/text interface
Modules Must be approved by server Can be loaded and unloaded on the fly Will implement a versioning system Currently have login and chat modules
Modules, cont. Module system allows anyone to create modules without having to mess with the framework.
Server Messages Messages sent from the server to the client framework Examples: Module request Module authorization Ping/Pong
Module Messages Specific to modules Routed to correct module by client framework Strips header element Module only receives the “content” XML tree
The Future Improve on existing modules: Chat: Add group chat and other chat protocols Login: Kerberos/TJ authentication Create new modules: User web space Mail Add server interconnectivity