Introduction to .NET Remoting – 1
Welcome to the world of
Distributed Application!
The article will give you
introduction to the world of Distributed Application development and its
respective technologies.
What is
Remoting?
“Remoting” is the process of
programs interacting across certain boundaries. The boundaries are either
different processes or different machines. In .NET Framework, Remoting can be
called the foundation of distributed application.
Remoting implementation generally
distinguishes between Remote Objects and Mobile Objects.
“Remote Object” provides the
facility to execute methods on remote servers. You can pass parameters as well
as return values. The “Remote Object” will always “Stay” at server and only a
reference to it will be passes around other machines /
processes.
While “Mobile Objects” passes the
boundary, they are serialized in to some general representation – XML – and then
deserialized to the other boundary involved in the process. Both the processes –
server and client - hold the copies of the same object. Method execution will
always be carried out in local context boundary, and no message will travel back
to the process from where the object is actually originated. We can say, there
is no distinction between a server object and a client object.
Scenarios for .NET
Remoting
I mean, why Remoting comes into
picture?
At the beginning of Client/Server
era, Remoting was mostly used to access Server Resources; as each database or
file server has an implementation which allow code to be executed
remotely.
Now-a-days, it’s quite feasible
building a distributed application among various machines to improve
performance, scalability and maintainability using Remoting.
-
Centralized Business
Logic
One of key scenario for remoting
implementation is the concentration of business logic on one or more central
servers. This simplifies the maintainability and operability of a large-scale
application. Because any changes in business logic do not entail you to roll out
the application at all user’s end – you just have to update one single server
only.
Thus, in this scenario; we need a
technique which can be used to communicate in between two process / context
boundaries that is the program or process running at user end and another one is
running at business server.
-
Physical Separation of
Layers
The security is the common concern
in web-enabled business. So, general recommendation is against for directly
connecting from web server to database server. Instead of that, we used to have
one application server / business server as discussed above.
-
Accessing Other
Platforms
You will commonly encounter a
heterogeneous combination of different platforms, frameworks and programming
languages. It is uncommon to find that a bunch of tools, programming languages
have been used and implemented to develop an application for a mid-to-large
scale enterprise.
Integrating these systems can be a
daunting task. Remoting architecture is an absolute necessity in large scale
enterprise application integration.
Opening your system for third party
access in a business-to-business environment is quite common now-a-days.
Application like online Order-entry, which allows third party to place orders
from one system to other, is one good example of an application utilizing
remoting architecture. More application examples are – address verification
system, online price comparison, distributed visitor guard house application
etc.
Reference
Advance .NET
Remoting by Ingo Rammer