CommunicationHub Requirements
From MemberWiki
OpenAjax CommunicationHub Requirements
Contact: Coach Wei (cwei@nexaweb.com)
Introduction
This article defines the general requirements for OpenAjax CommunicationHub.
Technical Background
Please see Interoperability_Communication Interoperability Communication and Problem_Defintion_-_CommunicationHub for background infomation.
CommunicationHub Requirements
CommunicationHub may include a client component, a server component (either in the form of API or actual code) and a network protocol component. However, the task force does not pre-assume the need for any of the above components. They are being called out only for the purpose of discussions.
1. OpenAjaxHub (OAH) Compatibility
On the client side, CommunicationHub should be a small client side Javascript library that can be included as part of OpenAjax Hub, or work alongside with OpenAjaxHub in the same application;
2. Server platform compatibility
On the server side, developers should be able to support CommunicationHub from various server side platforms, such as Java, .NET and PHP.
3. HTTP/HTTPS compatibility
CommunicationHub protocol must be compatible with HTTP. This protocol must work in any network environment that a web connection can work, without requiring additional software installation or change of network/client/server configuration.
4. Long Poll Connection Sharing
CommunicationHub must provide a mechanism for different Ajax toolkit or Javascript code to share a long polling connection within the same browser instance.
5. Detecting/Handling Multiple Instances
CommunicationHub must provide a mechanism to detect the instantiation of multiple instances, and the capability to avoid the creation of multiple instances of CommunicationHub with the same browser environment.
6. Partial Screen Update
CommunicationHub must provide a mechanism to enable server side code to differentiate requests for full page refresh from partial screen update.
7. Batch Processing
CommunicationHub must provide a mechanism to enable "batch processing" so that requests can be grouped together and delivered to server in one message, instead of being sent on an individual bassis.
8. Cross Frame Communications
CommunicationHub must provide a mechanism that javascript code within different frames(or iframes) coming from the same domain name can communication with each other.
9. Communication Status notification
CommunicationHub must provide a mechanism for developers to know the network communication status (eg. idle, busy,etc).
10. Support Request/Response, Polling and Push
CommunicationHub must support request/response, client polling and server push.
