While connections allow two processes to send messages to each other, RTserver allows multiple RTclients to communicate easily. RTserver routes messages between RTclients. RTserver can be thought of as a message switcha large software switch for messages.
A key feature of SmartSockets is the ability to distribute RTservers and RTclients over a network. Different processes can be run on different computers, taking advantage of all the computing power a network’s systems have to offer. RTservers and RTclients alike can be dynamically started and stopped while the system is running.
The functionality of RTserver and RTclient is layered on top of connections and messages, but adds capability and ease of use to these functions. While connections provide a means for two processes to exchange messages, connections by themselves do not scale well to many processes. RTserver fills this void and expands the capabilities of connection-based message passing.
In addition to routing messages between RTclients, multiple RTservers can route messages to each other. Multiple RTservers can distribute the load of message routing. If an application is partitioned such that most of the messages being sent are routed between processes on the same node, then the use of multiple RTservers can reduce the consumption of network bandwidth (processes on the same node can use the non-network local IPC protocol). For more information, see the TIBCO SmartSockets User’s Guide.
Each RTclient can have only one global connection, created using TipcSvc.getSrv, whether the connection is to an RTserver or to another process that plays a server-like role, such as RTgms. RTclients can connect to multiple RTservers if they use the TipcSvc.createSrv method, which creates connections independent of the global connection. Regardless of the type of connection, RTclients and RTservers do not have to be on the same network node. RTserver can run stand-alone, or it can connect to other RTservers. A message goes through one or more RTservers during delivery to an RTclient (or multiple RTclients). Messages are dynamically routed using a lowest cost algorithm, where each message passes through the fewest number of RTservers possible or, if paths have specified costs, the lowest cost path. (Lowest cost routing can be overridden, and message routing can be manually configured with RTserver subscribes.)
Figure 2 presents an example of the connectivity process in an RTserver cloud. In Figure 2, a message going from the RTclient A to the RTclient B goes through one RTserver. A message going from the RTclient A to the RTclient C goes through two RTservers. A message going from the RTclient A to the RTclient D goes through three RTservers. Routing is dynamic and can change at any time. Whenever a new RTserver becomes available or an existing RTserver goes down, routing tables in the RTservers are updated to reflect the new topology. For more information, see the TIBCO SmartSockets User’s Guide.
TIBCO SmartSockets™ Java Library User’s Guide and Tutorial Software Release 6.8, July 2006 Copyright © TIBCO Software Inc. All rights reserved www.tibco.com |