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
two types of server objects supported
for remoting in .NET:
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:
. 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
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 ...