Comet is a set of techniques which allows web applications to push data to the browser. It is also known as Ajax Push, Reverse Ajax and HTTP push server among others.
Comet is a mechanism for asynchronous messaging to web clients. However it can also be used for all types of clients (Web/JavaScript, Java, C++). Documentation can be found at:
Comet uses a 'star' topology, in that there is a 'CometD server' that opens a port and uses HTTP as the base protocol and Bayeux running over HTTP. Channels are created for communication. Channels can be control channels (that's mainly used by the comet libraries for control exchange like 'connect', 'disconnect', 'handshake', ;heartbeat'. Clients can listen on this channel, but cannot directly interact with the channels. Then there are 'publish-subscribe' channels. These are used for notifications between clients. Both the publisher and the subscriber are called 'Comet Clients' operating on channels created on the 'Comet' Server. This is what will be used in the initial phase for notification between OTN server and the web clients and the architecture is described below. Lastly, we have 'service' channels that support a request-response pattern between a single client and another client in a synchronous manner. This will be used in a later phase to integrate the WebApp with the CORBA based OTN via a CORBA adapter
In the NFM-T context, the Cometd Server will be initialized on Tomcat startup (a startup servlet) and wired into spring as a bean (so clients can have access to this). . The following diagram Identifies the general structure for comet usage in NFM-T web applications.