WebORB clustering provides automatic support for data management clients in a way of delivering client synchronization events regardless of which node a client is connected to. Consider the following scenario:
1. |
A WebORB cluster consists of two WebORB instances working with the same database. There are two Data Management clients - A and B. The client can be either JavaScript or Flex/AIR: |
|
2. |
Client A connects to WebORB Node 1, while Client B connects to WebORB Node 2. Both clients retrieve the same data set from the database using the WDM APIs: |
|
3. |
Client A modifies a record and saves in the database using the WDM API: |
|
4. |
WebORB Node 1 is aware that it runs in a clustered environment and notifies the other server about the performed update operation. WebORB Node 2 receives the update, it checks if the modified record has been loaded by the client connected to it (Client B) and delivers synchronization event to the client: |
|
The scenario above illustrates update of a record between two clients connected to a cluster, however, the identical sequence takes place for record creation and deletion with multiple clients connected to a cluster of any size. It is important to note that the clients are not required to be connected to a particular server, that is a client can poll for the synchronization events and the polling requests may be processed by any WebORB server in the cluster. Synchronization in a cluster works with all supported clients - JavaScript, Flex and AIR, regardless of the transport a client uses to connect - web sockets, polling or RTMP.
Cluster synchronization for the data management clients does not require any special configuration or API usage on the client side, it is transparent from the client's perspective.