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

Slides:



Advertisements
Similar presentations
.Net Remoting by James Stone. What is.Net Remoting? RemotingRemoting is a technology that allows.NET applications to communicate. Remoting Same machine,
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
Copyright © 2002 Landl Software, Inc. All Rights Reserved. Twin Cities.NET Users Group Next Meeting - Thursday, April 4, 2002 A Look Inside Reflection.
.NET Remoting in Delphi and C# Alain “Lino” Tadros President & CEO Falafel Software Inc. ComponentScience Inc. BORCON 2004.
.Net Remoting Pooja Panjala 06/17/10. Agenda What is.net Remoting? Explanation of terms Architecture Implementation of Remoting Sample example.net Security.
C# and Windows Programming Application Domains and Remoting.
.NET REMOTING CertSIG Tom Perkins. FUNDAMENTALS Distributed Applications Process A Process B Process C Objects can communicate across process boundaries.
Author: Bill Buchanan. Authentication (to identify the clients of your application) Authorization (to provide access controls for those clients) Secure.
.NET Remoting. .Net Remoting Replaces DCOM (Distributed Component Object Model – a proprietary Microsoft technology for communication among software components.
Distributed components
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
1 Advanced Programming Topics - II Objectives:  Background  Remoting  Types of remoting  Marshalling  Farmatters  Channels.
Distributed Systems Tutorial 2 -.NET Remoting. 2 What is Remoting?  Remoting allows you to pass objects or values across servers in different domains.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.0 Module 11 TCP/IP Transport and Application Layers.
.NET Deployment Matt Smouse CSE775 – Distributed Objects Spring 2003.
CSE 636 Data Integration Web Services.
Internet Networking Spring 2002 Tutorial 13 Web Caching Protocols ICP, CARP.
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
CIS NET Applications1 Chapter 10 – Remoting.
ASP.NET The.NET Framework. The.NET Framework is Microsoft’s distributed run-time environment for creating, deploying, and using applications over the.
.Net Remoting. 2 Distributed Computing under.Net In.Net, there are three levels of access to distributed computing machinery: In.Net, there are three.
Remote Access Chapter 4. Learning Objectives Understand implications of IEEE 802.1x and how it is used Understand VPN technology and its uses for securing.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Enabling Embedded Systems to access Internet Resources.
Web Services & WCF ~ Ankit. Web services A web service is a collection of protocols and standards used for exchanging data between applications or systems.
Distributed Communication via ASP.Net Web Services and.Net Remoting By Richard King.
Web Services Description Language (WSDL) Jason Glenn CDA 5937 Process Coordination in Service and Computational Grids September 30, 2002.
1 Version 3.0 Module 11 TCP Application and Transport.
Lecture 15 Introduction to Web Services Web Service Applications.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
Develop Distributed Applications using.NET Remoting Kate Gregory Regional Director Gregory Consulting Limited
Web Services based e-Commerce System Sandy Liu Jodrey School of Computer Science Acadia University July, 2002.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
XML Web Services Architecture Siddharth Ruchandani CS 6362 – SW Architecture & Design Summer /11/05.
Web Services. Abstract  Web Services is a technology applicable for computationally distributed problems, including access to large databases What other.
.NET Enterprise Services COM+ 1.5 麥超俊 Bobby Mak 架構技術推廣經理開發工具暨平台推廣處台灣微軟股份有限公司.
WebService. Outline Overview of Web Services SOAP (messaging) WSDL (service description) UDDI (registry)
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
.Net Remoting The Other RPC Architecture Doug Gregory October 27, 2003.
.NET Remoting Chandra sekhar Chandra sekhar. What is.NET Remoting? What is.NET Remoting?.NET Remoting versus Distributed COM..NET Remoting versus Distributed.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
Network Protocols and Standards (Part 2). The OSI Model In 1984, the International Organization for Standardization (ISO) defined a standard, or set of.
Kemal Baykal Rasim Ismayilov
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
.NET Mobile Application Development XML Web Services.
Endpoints Lesson 17. Skills Matrix Endpoints Endpoints provide a reliable, securable, scalable messaging system that enables SQL Server to communicate.
1 Nordjyllands Erhvervakademi Net Remoting Architecture Marshalling –Marshalling By Reference(MBR) –Marshalling By Value(MBV) Activation by MBR.
In this session, you will learn to: Understand managed code Create managed database objects Define the Hypertext Transfer Protocol endpoints Implement.
VIRTUAL SERVERS Chapter 7. 2 OVERVIEW Exchange Server 2003 virtual servers Virtual servers in a clustering environment Creating additional virtual servers.
.NET Remoting. Remoting Introduction The process of programs or components interacting across certain boundaries either different processes or machines.
Jim Fawcett CSE775 – Distributed Objects Spring 2003
Affinity Depending on the application and client requirements of your Network Load Balancing cluster, you can be required to select an Affinity setting.
.NET Remoting Priyanka Bharatula.
Message-Passing Communication Analyzer By Poonam Bijlani CSE 775- Distributed Objects Prof. Jim Fawcett.
WEB SERVICES.
Presentation 23 .NET Remoting Introduced
Matt Smouse CSE775 – Distributed Objects Spring 2003
Distribution of functionality Webservice using WCF
Client-Server Interaction
Chapter 3: Windows7 Part 4.
Building real-time web apps with WebSockets using IIS, ASP.NET and WCF
WEB API.
Distributed System using Web Services
Matt Smouse CSE775 – Distributed Objects Spring 2003
Jim Fawcett CSE791 – Distributed Objects Spring 2002
Matt Smouse CSE775 – Distributed Objects Spring 2003
Presentation transcript:

.NET Remoting Architecture

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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