Remoting
In addition to being marshaled across context and app domain boundaries, objects can be marshaled across process boundaries, and even across machine boundaries. When an object is marshaled, either by value or by proxy, across a process or machine boundary, it is said to be remoted.
Understanding Server Object Types
There
are
two types of server objects supported
for remoting in .NET: well-known
and
client-activated
. The communication with
well-known objects is established each time a message is sent by the
client. There is no permanent connection with a well-known object, as
there is with client-activated objects.
Well-known objects come in two varieties: singleton
and
single-call
. With a well-known singleton object,
all messages for the object, from all clients, are dispatched to a
single object running on the server. The object is created when the
server is started and is there to provide service to any client that
can reach it. Well-known objects must have a parameterless
constructor.
With a well-known single-call object, each new message from a client is handled by a new object. This is highly advantageous on server farms, where a series of messages from a given client might be handled in turn by different machines depending on load balancing.
Client-activated objects are typically used by programmers who are creating dedicated servers, which provide services to a client they are also writing. In this scenario, the client and the server create a connection, and they ...
Get Programming C#, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.