Net remoting architecture
1 / 28

.NET Remoting Architecture - PowerPoint PPT Presentation

  • Uploaded on

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' .NET Remoting Architecture' - paloma

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


  • Remoting Boundaries

  • Crossing the Boundaries

  • Distributed Applications

  • Marshalling

  • Channels

  • Formatters

  • Object Activation

  • Leases

.NET Remoting

Remoting boundaries
Remoting Boundaries

  • Windows Process Boundary

  • Application Domain Boundary

  • Crossing the Boundaries

.NET Remoting

Windows process boundary
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
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
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
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
.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
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
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
.NET Proxy Objects










.NET Remoting

Object marshalling
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


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


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