Game Development Reference
Remoting accomplishes nearly the same inter-process communication goals of
Web Services, but it does not have the same level of overhead, making it both a
powerful and high-performance method of working with remote objects between
different applications. The applications can be located on the same computer, on
different computers located on the same network, or on computers existing in dif-
ferent network domains. Remoting is much easier to use than Java Remote
Method Invocation (RMI), but it is not as easy to use as Web Services. In the past,
the majority of inter-process communication was made possible using the
Distributed Component Object Model (DCOM), which accomplishes many of the
goals that Web Services and Remoting do, except DCOM uses a proprietary bina-
ry protocol that hinders object models from supporting platform neutrality.
Remoting has two main types of communications methods: TCP and HTTP.
Communication via the TCP protocol is accessible through the TcpServerChannel
object and is best for local networks because of the increased performance over the
HTTP protocol. Firewalls generally block Remoting using the TCP protocol, thus
making HttpServerChannel the common choice for Internet-based communication.
In order to use the Remoting functionality present in the .NET framework, you must reference the
A solid design for Remoting architecture entails creating a separate library that
contains the shared vocabulary of all serializable objects both client and server will
use to communicate. The definition to all serializable objects must be available to
every application handling those objects; hence the need for an external library to
Figure 30.1 shows the relationship between the client, server, and shared vocabulary
The Companion Web site includes a simple server that accepts a string from a
client, converts the text to Pig Latin, and returns the modified string back to the
client. The vocabulary library for this example is quite simple, and only contains
one class that facilitates the communication between client and server;
PigLatinController has only one method called Convert , which accepts a string con-
taining the text to convert, and returns a string containing the converted text.