Overview of .net Remoting
Introduction:
” Remoting system is an architecture designed to simplify communication between Objects running in different Application Domains, whether they're on the same computer”.
Prior to .Net Remoting, DCOM was the most used method of developing distributed application on Microsoft platform. Because of object oriented architecture, .NET Remoting replaces DCOM as .Net framework replaces COM.
Benefits of Distributed Application Development:
Fault Tolerance: Fault tolerance means that a system should be resilient when failures within the system occur.
Scalability: Scalability is the ability of a system to handle increased load with only an incremental change in performance.
Administration: Managing the system from one place.
In brief, .NET Remoting is an architecture which enables communication between different application domains or processes using different transportation protocols, serialization formats, object lifetime schemes, and modes of object creation. Remote means any object which executes outside the application domain. The two processes can exist on the same computer or on two computers connected by a LAN or the Internet. This is called marshalling (This is the process of passing parameters from one context to another.), and there are two basic ways to marshal an object:
Marshal by value: the Server creates a copy of the object passes the copy to the client.
Marshal by reference: the Client creates a proxy for the object and then uses the proxy to access the object.
Remoting Overview
Remoting in Asp.net is Distributed Programming model which is based on distributed objects; it is designed to provide the concepts of distributed component services as other technologies like DCOM provide but with out complexity . Unlike other similar technologies, which are essentially add –in tool kits that allow you to distribute objects among systems.
Remoting is an integral part of the .net framework because support for Remoting is built into the Framework, Remote objects support full .NET type system fidelity, including complex data types, support for inheritance, and objects passed by reference as well as by value
As said earlier the .Net Remoting Programming model is much simpler than earlier distribution models, the reason is it is an integral part of the .Net Frame work. In .Net Remoting, once you've established the Distributed Object Connection, you create and access distributed objects in exactly the same manner as you would create and access a local object. All of the details—Instantiating the server-based object, Lifecycle Management, Serialization, Marshaling Data, etc. are handled by the Framework without your intervention. Although there are issues that you have to keep in mind when working with Distributed Objects, the amount of extra work involved in setting up and managing Distributed Objects is very small.
NET Remoting is very flexible. You have a wide range of communications options and activation methods, as well as full control over a distributed object's lifecycle. You can choose TCP or HTTP communications protocols on any port, using text or binary formatting. The .NET Remoting infrastructure supports Server Activated Objects single call object and singleton object And Client Activated Objects. .NET Remoting gives you many opportunities to plug in to the system to customize Lifecycle Management, Marshaling, serialization, Messaging, and other services
The Remoting features that ship with the .NET Framework are built to provide distributed object services over the most common communications channels. However, if you have custom communications requirements, the pluggable architecture will allow you to create new protocols and use them with the Remoting system.
Security is important and necessary thing to any distributed application. Although the .NET Remoting infrastructure does not define any security features itself, because distributed applications are managed code they have full access to all of the .NET security features. In addition, the HTTP channel, when used with IIS, allows you to take full advantage of the authentication and authorization features that are available to Web based protocols. If you choose to use a protocol other than HTTP with IIS, then you have the opportunity to create your own security infrastructure.
Advantages and Disadvantages of Remoting
Coming To advantages of .Net Remoting
1. Remoting Supports Different type of Communication Protocols. It supports many protocols including SOAP, HTTP , this makes it better than Web services.
2. Remoting can share objects from any types of models.
3. Web services support only the data types defined in the XSD type system , therefore we can serialize only limited number of objects
4. Remoting is Highly Extensible to customize the different components of the .net Remoting frame work
Even though Remoting has advantages, it has its own Disadvantages too
1. The programming model is little bit difficult than web services.
2. Visual Studio .net Support for Remoting is not as wide as that of for web services.
3. Remoting Applications are Tightly Coupled.
4. Remoting Depends on assembly metadata to describe types, which means that any application that communicates with another, must have some intimate knowledge of the other's inner workings.
5. As it depends on assembly metadata, it implies that client applications must understand .NET concepts. Which, applications that make use of .NET Remoting are not interoperable with other systems.
” Remoting system is an architecture designed to simplify communication between Objects running in different Application Domains, whether they're on the same computer”.
Prior to .Net Remoting, DCOM was the most used method of developing distributed application on Microsoft platform. Because of object oriented architecture, .NET Remoting replaces DCOM as .Net framework replaces COM.
Benefits of Distributed Application Development:
Fault Tolerance: Fault tolerance means that a system should be resilient when failures within the system occur.
Scalability: Scalability is the ability of a system to handle increased load with only an incremental change in performance.
Administration: Managing the system from one place.
In brief, .NET Remoting is an architecture which enables communication between different application domains or processes using different transportation protocols, serialization formats, object lifetime schemes, and modes of object creation. Remote means any object which executes outside the application domain. The two processes can exist on the same computer or on two computers connected by a LAN or the Internet. This is called marshalling (This is the process of passing parameters from one context to another.), and there are two basic ways to marshal an object:
Marshal by value: the Server creates a copy of the object passes the copy to the client.
Marshal by reference: the Client creates a proxy for the object and then uses the proxy to access the object.
Remoting Overview
Remoting in Asp.net is Distributed Programming model which is based on distributed objects; it is designed to provide the concepts of distributed component services as other technologies like DCOM provide but with out complexity . Unlike other similar technologies, which are essentially add –in tool kits that allow you to distribute objects among systems.
Remoting is an integral part of the .net framework because support for Remoting is built into the Framework, Remote objects support full .NET type system fidelity, including complex data types, support for inheritance, and objects passed by reference as well as by value
As said earlier the .Net Remoting Programming model is much simpler than earlier distribution models, the reason is it is an integral part of the .Net Frame work. In .Net Remoting, once you've established the Distributed Object Connection, you create and access distributed objects in exactly the same manner as you would create and access a local object. All of the details—Instantiating the server-based object, Lifecycle Management, Serialization, Marshaling Data, etc. are handled by the Framework without your intervention. Although there are issues that you have to keep in mind when working with Distributed Objects, the amount of extra work involved in setting up and managing Distributed Objects is very small.
NET Remoting is very flexible. You have a wide range of communications options and activation methods, as well as full control over a distributed object's lifecycle. You can choose TCP or HTTP communications protocols on any port, using text or binary formatting. The .NET Remoting infrastructure supports Server Activated Objects single call object and singleton object And Client Activated Objects. .NET Remoting gives you many opportunities to plug in to the system to customize Lifecycle Management, Marshaling, serialization, Messaging, and other services
The Remoting features that ship with the .NET Framework are built to provide distributed object services over the most common communications channels. However, if you have custom communications requirements, the pluggable architecture will allow you to create new protocols and use them with the Remoting system.
Security is important and necessary thing to any distributed application. Although the .NET Remoting infrastructure does not define any security features itself, because distributed applications are managed code they have full access to all of the .NET security features. In addition, the HTTP channel, when used with IIS, allows you to take full advantage of the authentication and authorization features that are available to Web based protocols. If you choose to use a protocol other than HTTP with IIS, then you have the opportunity to create your own security infrastructure.
Advantages and Disadvantages of Remoting
Coming To advantages of .Net Remoting
1. Remoting Supports Different type of Communication Protocols. It supports many protocols including SOAP, HTTP , this makes it better than Web services.
2. Remoting can share objects from any types of models.
3. Web services support only the data types defined in the XSD type system , therefore we can serialize only limited number of objects
4. Remoting is Highly Extensible to customize the different components of the .net Remoting frame work
Even though Remoting has advantages, it has its own Disadvantages too
1. The programming model is little bit difficult than web services.
2. Visual Studio .net Support for Remoting is not as wide as that of for web services.
3. Remoting Applications are Tightly Coupled.
4. Remoting Depends on assembly metadata to describe types, which means that any application that communicates with another, must have some intimate knowledge of the other's inner workings.
5. As it depends on assembly metadata, it implies that client applications must understand .NET concepts. Which, applications that make use of .NET Remoting are not interoperable with other systems.
Labels: Dotnet Remoting

0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home