160 likes | 183 Views
. NET Remoting. Priyanka Bharatula. Introduction. .NET Remoting allows an application to make an object available across remoting boundaries, which includes different appdomains, processes or even different computers connected by a network.
E N D
.NET Remoting Priyanka Bharatula
Introduction • .NET Remoting allows an application to make an object available across remoting boundaries, which includes different appdomains, processes or even different computers connected by a network. • The framework provides a number of services, including object activation and object lifetime support, as well as communication channels which are responsible for transporting messages to and from remote applications.
.NET Remoting Components • A remotable object: Which is an object that contain some properties and methods located in one application domain and you need to call its methods or properties from another application domain or process. • A host application: This is the host of the remotable object also called as the server application. The main task of this host is to listen to requests for the hosted remotable object. • A client application: This is the application which makes requests for the remotable object.
Types of Remotable Objects • There are 3 types of remotable objects that you can configure and choose from depending on the requirements of your application. • Single Call: Service one and only one request coming in • Singleton Call: Service multiple clients and is useful when data needs to be shared explicilty between several clients. • Client Activation: Richer than singleton in many aspects as they can store the state information between method calls for its specific client.
.NetRemoting Basics • Different Ways of defining interfaces: • Shared Assembly • Shared Interface or Base Objects • Generated Metadata Assembly (SoapSuds) • Serialization of Data: • Encoding/Decoding of Objects natively supported • Just need to mark such objects with [Serializable] attribute or implement the interface ISerializable • Lifetime Management: • Open network connection between client-server • Combined reference counting and pinging mechanisms • Objects get lifetime when created (reset: time-to-live) • Sponsor registered with a server-side object • Multiserver/Multiclient: • .Net automatically keeps track of remote object’s origin
Remotable Types • Marshal-by-value: - all serializable types. - can be used as parameters of remote calls where copy of the object is passed to the remote application. • Marshal-by-object: - Types derived from System.MarshalByRefObject - A proxy is passed to the remote application where methods are executed remotely
Managing Life Time of an Object • Lease-based object lifetime • Each server-object associated with a lease on creation • Lease has time-to-live counter, decremented in certain intervals • In addition, a defined amount of time is added on every method call a client places on remote object • Upon reaching zero time, framework looks for a sponsor registered with the lease.
Managing Life Time of an Object ... • sponsor is an object running on sever itself, client or any machine reachable via a network • An object subject to garbage collection if • A sponsor decides lease will not be renewed • Framework unable to contact any registered sponsors • If a client references time out object, an exception is thrown • System.Runtime.Remoting.Lifetime class
Channels • Channels are responsible for passing messages across remoting boundaries. • Channels must be registered before objects are created as per application domain. • Two pre-defined .NET Remoting channels existing are the TcpChannel and the HttpChannel.
Activation • Server activated objects(SAO) : - constructed implicitly by the server when a method is invoked for the first time - can be either singleton/single call • Client activated objects(CAO) : - constructed explicitly by the client using new or Activator.CreateInstance with an arbitrary constructor. - stateful objects
Types of Invocation • Synchronous Calls • Client waits until server finishes processing the request • Asynchronous Calls • Delegates at work • One-Way Calls • Framework does not guarantee their execution • Method cannot have return values or out parameters • No exception thrown even if server is down or the method call is malformed • Used in uncritical logging or tracing facilities
.NetRemoting Vs Web Services XML Web Services • simple, loosely coupled programming model. • can be accessed only over HTTP and work in a stateless environment. • services hosted in IIS. .Net Remoting • Tightly coupled and more complex programming model. • can be accessed over any protocol and support both stateful and stateless environments. • services hosted in any AppDomain.
References • Advanced .Net Remoting – Ingo Rammer & Mario • http://www.thinktecture.com/ • .Net Remoting Technical Overview • http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx • .NET Remoting Versus Web Services • http://www.developer.com/net/net/article.php/11087_2201701_1