280 likes | 492 Views
.NET Remoting Architecture. Topics. Remoting Boundaries Crossing the Boundaries Distributed Applications Marshalling Channels Formatters Object Activation Leases. Remoting Boundaries. Windows Process Boundary Application Domain Boundary Crossing the Boundaries.
E N D
Topics • Remoting Boundaries • Crossing the Boundaries • Distributed Applications • Marshalling • Channels • Formatters • Object Activation • Leases .NET Remoting
Remoting Boundaries • Windows Process Boundary • Application Domain Boundary • Crossing the Boundaries .NET Remoting
Windows Process Boundary • Every Windows application runs in a separate process • Each process has its own virtual address space, executable code, data • Processes are isolated from one another – cannot access address space or code of other processes .NET Remoting
Application Domain Boundary(AppDomain) • Created by CLR • Each AppDomain has its own code, data, and configuration settings • AppDomain cannot directly access code or data of another AppDomain • Code running in one AppDomain cannot affect other AppDomains .NET Remoting
Crossing the Boundaries • .NET Remoting namespaces enable applications to cross these boundaries • System.Runtime.Remoting • Provides an abstraction of the ISO layers • Simple mechanism for inter-application domain communication .NET Remoting
Crossing the Boundaries (cont’d) • System.Web.Services • Classes that constitute the ASP.NET Web Services framework • Use SOAP, WSDL, UDDI • Simpler to use than .NET Remoting .NET Remoting
.NET Remoting vs. Web Services • Use .NET Remoting when you have control of both end-points of a distributed application • Use Web Services when one end-point of a distributed application is not under your control .NET Remoting
Distributed Applications • The dominant architecture of modern applications • Components of the application are distributed across multiple processors, accessed via a network .NET Remoting
Objectives of Distributed Applications • Communicate between objects that run in different AppDomains and processes • Communicate between heterogeneous architectures • Ensure availability in spite of resource failure • Provide increased scalability and security .NET Remoting
.NET Proxy Objects Client object Server object Proxy Remoting System Remoting System .NET Remoting
Object Marshalling • The process of gathering and formatting data about an object for transmission across a network • Marshall-by-Reference (MBR) • Marshall-by-Value (MBV) .NET Remoting
Channels • Provide abstraction of ISO layers programming • Objects that transport messages across remoting boundaries • Each channel has 2 end-points • Each channel is associated with a port number • .NET Framework provides HTTP and TCP channels .NET Remoting
HTTP Channels • Uses the HTTP protocol • Implemented through the classes of System.Runtime.Remoting.Channels.Http namespace • A channel is registered with the remoting framework .NET Remoting
TCP Channels • Uses TCP for establishing communication between end-points • Implemented through the classes of System.Runtime.Remoting.Channels.Tcp .NET Remoting
HTTP vs. TCP Channels • HTTP: highly accessible through firewalls via port 80, bulky protocol, high overhead • TCP: limited accessibility through firewalls, very efficient packet structure, less secure .NET Remoting
Formatters • Objects that encode and serialize data into messages before transmission over a network • SOAP Formatter – XML-based protocol • Binary Formatter – used only within .NET applications .NET Remoting
Channels and Formatters • The HTTP channel uses the SOAP formatter as its default formatter for the transport of messages across a network • The TCP channel uses the Binary Formatter as its default .NET Remoting
Remote Object Activation • Activation means instantiation • Applies only to MBR objects MBV objects are transferred to client side) • Two categories: • Server-activated objects • Client-activated objects .NET Remoting
Server-Activated Objects • Lifetime is controlled by server • Object is instantiated by a client request for service • Two activation modes: • SingleCall activation mode • Singleton activation mode .NET Remoting
SingleCall Activation Mode • Object is instantiated on server for just one call from client, then destroyed • Does not maintain state across requests • Allows for greater server scalability .NET Remoting
When to Use SingleCall Activation • Overhead of creating object is not great • Object is not required to maintain state • Server must support large number of requests • Object needs to be supported in a load-balancing environment .NET Remoting
Singleton Activation Mode • Only one instance of object is created, regardless of number of clients using it • Object can maintain state information across calls • State information is shared by all clients • Lifetime is determined by leases .NET Remoting
When to Use Singleton Activation • Overhead of creating object is substantial • Object is required to maintain state over a prolonged period • Multiple clients need to work on the shared state information .NET Remoting
Client-Activated Objects • Server-based objects whose lifetime is controlled by the client • Instantiated on the server when a client requests the object to be created .NET Remoting
When to Use Client-Activated Objects • Clients want to maintain a private session with the server object • Clients need to have control over when the objects are created and how long they live .NET Remoting
Lifetime Leases • A lease defines the period of time an object is active in memory before destruction • Represented by an object defined in the System.Runtime.Remoting.Lifetime namespace • Applies only to Singleton SAO’s and CAO’s .NET Remoting
How Leases Work • A Lease Manager is created • Each time an object receives a call, the “CurrentLeaseTime” is renewed • When a lease expires, sponsors are contacted for renewal • When there are no renewal requests, object is marked for Garbage Collection .NET Remoting