1 / 28

.NET Remoting Architecture

.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.

paloma
Download Presentation

.NET Remoting Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET Remoting Architecture

  2. Topics • Remoting Boundaries • Crossing the Boundaries • Distributed Applications • Marshalling • Channels • Formatters • Object Activation • Leases .NET Remoting

  3. Remoting Boundaries • Windows Process Boundary • Application Domain Boundary • Crossing the Boundaries .NET Remoting

  4. 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

  5. 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

  6. 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

  7. 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

  8. .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

  9. Distributed Applications • The dominant architecture of modern applications • Components of the application are distributed across multiple processors, accessed via a network .NET Remoting

  10. 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

  11. .NET Proxy Objects Client object Server object Proxy Remoting System Remoting System .NET Remoting

  12. 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

  13. 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

  14. 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

  15. TCP Channels • Uses TCP for establishing communication between end-points • Implemented through the classes of System.Runtime.Remoting.Channels.Tcp .NET Remoting

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

More Related