Presentation is loading. Please wait.

Presentation is loading. Please wait.

.NET Remoting Architecture. Slide 2 CITE 4420.NET Remoting Topics Remoting Boundaries Crossing the Boundaries Distributed Applications Marshalling Channels.

Similar presentations


Presentation on theme: ".NET Remoting Architecture. Slide 2 CITE 4420.NET Remoting Topics Remoting Boundaries Crossing the Boundaries Distributed Applications Marshalling Channels."— Presentation transcript:

1 .NET Remoting Architecture

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

3 Slide 3 CITE 4420.NET Remoting Remoting Boundaries Windows Process Boundary Application Domain Boundary Crossing the Boundaries Windows Process Boundary Application Domain Boundary Crossing the Boundaries

4 Slide 4 CITE 4420.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 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

5 Slide 5 CITE 4420.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 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

6 Slide 6 CITE 4420.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 namespaces enable applications to cross these boundaries System.Runtime.Remoting –Provides an abstraction of the ISO layers –Simple mechanism for inter-application domain communication

7 Slide 7 CITE 4420.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 System.Web.Services –Classes that constitute the ASP.NET Web Services framework –Use SOAP, WSDL, UDDI –Simpler to use than.NET Remoting

8 Slide 8 CITE 4420.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 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

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

10 Slide 10 CITE 4420.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 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

11 Slide 11 CITE 4420.NET Remoting.NET Proxy Objects Client object Server object Proxy Remoting System Remoting System

12 Slide 12 CITE 4420.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) The process of gathering and formatting data about an object for transmission across a network Marshall-by-Reference (MBR) Marshall-by-Value (MBV)

13 Slide 13 CITE 4420.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 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

14 Slide 14 CITE 4420.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 Uses the HTTP protocol Implemented through the classes of System.Runtime.Remoting.Channels. Http namespace A channel is registered with the remoting framework

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

16 Slide 16 CITE 4420.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 HTTP: highly accessible through firewalls via port 80, bulky protocol, high overhead TCP: limited accessibility through firewalls, very efficient packet structure, less secure

17 Slide 17 CITE 4420.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 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

18 Slide 18 CITE 4420.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 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

19 Slide 19 CITE 4420.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 Activation means instantiation Applies only to MBR objects MBV objects are transferred to client side) Two categories: –Server-activated objects –Client-activated objects

20 Slide 20 CITE 4420.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 Lifetime is controlled by server Object is instantiated by a client request for service Two activation modes: –SingleCall activation mode –Singleton activation mode

21 Slide 21 CITE 4420.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 Object is instantiated on server for just one call from client, then destroyed Does not maintain state across requests Allows for greater server scalability

22 Slide 22 CITE 4420.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 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

23 Slide 23 CITE 4420.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 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

24 Slide 24 CITE 4420.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 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

25 Slide 25 CITE 4420.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 Server-based objects whose lifetime is controlled by the client Instantiated on the server when a client requests the object to be created

26 Slide 26 CITE 4420.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 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

27 Slide 27 CITE 4420.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 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

28 Slide 28 CITE 4420.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 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


Download ppt ".NET Remoting Architecture. Slide 2 CITE 4420.NET Remoting Topics Remoting Boundaries Crossing the Boundaries Distributed Applications Marshalling Channels."

Similar presentations


Ads by Google