SlideShare a Scribd company logo

Overview of Microsoft .Net Remoting technology

Peter R. Egli
Peter R. Egli
Peter R. EgliSoftware Engineering Consultant at Zühlke Group and Academic at ZHAW

Overview of Microsoft .Net Remoting technology for inter-object communication. .Net remoting is a .Net-based distributed object technology for accessing .Net objects that reside in a different application domain (different process on the same machine or different process on another machine). .Net shares concepts with DCOM (Distributed Component Object Model), but simplifies the communication with regard to transport ports and programmatic model. Microsoft's newer WCF (Windows Communication Foundation) provides a unified communication and programming model thus replacing older technologies like .Net remoting and DCOM in many applications.

Overview of Microsoft .Net Remoting technology

1 of 16
Download to read offline
© Peter R. Egli 2015
1/16
Rev. 1.40
Microsoft .Net Remoting indigoo.com
Peter R. Egli
INDIGOO.COM
OVERVIEW OF MICROSOFTS
.NET REMOTING TECHNOLOGY
.NET
REMOTING
© Peter R. Egli 2015
2/16
Rev. 1.40
Microsoft .Net Remoting indigoo.com
Contents
1. .Net Remoting architecture
2. .Net Remoting concepts
3. Remotable and nonremotable types
4. .Net Remoting Server Object Activation Types
5. .Net remoting object lifetime control
6. .Net remoting channel
7. Assembly with remoting objects
8. Configuration files instead of programmatic creation of objects
9. Asynchronous remoting
© Peter R. Egli 2015
3/16
Rev. 1.40
Microsoft .Net Remoting indigoo.com
1. .Net Remoting architecture
Proxy: Client-side stub object that connects to the (remote) server object.
Channel: Transport channel for objects, defined by host + port + endpoint (= remote object
service).
Dispatcher: Part of the .Net remoting infrastructure; dispatches method call to the server
object.
Formatter and Transport sink see below.
Client
Proxy
object
Dispatcher
Server
(remote) object
Client Server
.Net remoting infrastructure
Formatter
sink
Transport
sink
Formatter
sink
Transport
sink
Channel
© Peter R. Egli 2015
4/16
Rev. 1.40
Microsoft .Net Remoting indigoo.com
ChannelServices
2. .Net Remoting concepts
Channel: Comprises a server port number and a formatting (=protocol such as HTTP or TCP)
Endpoint: Specifies the application that receives the calls (requests)
ChannelServices
HTTP Client Channel
EP
http://<host>:<port>/<endpoint>
ServerObjectServerObject
EP
HTTP Server Channel
ICalcICalc.dll
(common
assembly)
Contains
TCP Server ChannelTCP Client Channel
ServerObject
Transparent
Proxy
Client
ICalc
.Net remoting
infrastructure
Channel type
(formatting, protocol)
Channel port
number
Endpoint
(application)
<<has>>
ICalc.dll
(common
assembly)
.Net remoting
infrastructure
Register
Formatter
FormatterFormatter
Get object
reference
Create proxy
object as object
reference
Contains
Real
Proxy
Interface for
client
Send/receive
messages
© Peter R. Egli 2015
5/16
Rev. 1.40
Microsoft .Net Remoting indigoo.com
3. Remotable and nonremotable types (1/2)
Nonremotable types:
Objects that neither derive from MarshalByRefObject nor are serializable.
Examples: File handles, sockets, window handles (in general objects that can be used only
in the local context / application domain).
Remotable types:
1. Reference type objects:
Objects that derive from MarshalByRefObject are remotable.
The remote objects are marshalled by reference.
The client obtains a local reference object (proxy) to the remote server object.
MarshalByRefObject
MyRemotableClass
Only a reference to Object B
is transferred
Application domain A
Object A
Application domain B
.Net remoting
infrastructure
.Net remoting
infrastructure
Object B
marshal
by reference
A remote object becomes remotable by
reference simply by deriving from
the .Net class MarshalByRefObject
© Peter R. Egli 2015
6/16
Rev. 1.40
Microsoft .Net Remoting indigoo.com
3. Remotable and nonremotable types (2/2)
2. Value objects:
Objects that are serializable can be transferred into a different application domain.
Serializable objects must be „tagged“ with the attribute [Serializable].
Additionally serializable objects may implement the ISerializable interface and
provide a custom serialization (e.g. add some logging info to the serialized object
stream).
ISerializable
MyRemotableClass
The attribute Serializable is attached
to MyRemoteClass marking it
serializable (all members of the
class need to be serializable as well).
Optionally MyRemotableClass may
implement the ISerializable interface
allowing custom serialization.
[Serializable]
Marshal by value:
Object A
.Net remoting
infrastructure
.Net remoting
infrastructure
Copy of
object A
(marshal by
value)
Application domain A
Application domain B
Object A is serialized to
a stream
The stream containing a
serialized copy of object A
is transferred
Object A is deserialized from
the stream to a copy of the
object A
Ad

Recommended

The .net remote systems
The .net remote systemsThe .net remote systems
The .net remote systemsRaghu nath
 
Microsoft .NET Platform
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET PlatformPeter R. Egli
 
Istio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyIstio: Using nginMesh as the service proxy
Istio: Using nginMesh as the service proxyLee Calcote
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTBenjamin Cabé
 

More Related Content

What's hot

Distributed System by Pratik Tambekar
Distributed System by Pratik TambekarDistributed System by Pratik Tambekar
Distributed System by Pratik TambekarPratik Tambekar
 
Ekon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsEkon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsArnaud Bouchez
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MBenjamin Cabé
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSRemedy IT
 
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Ram Vennam
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoMichael Koster
 
Android chapter18 c-internet-web-services
Android chapter18 c-internet-web-servicesAndroid chapter18 c-internet-web-services
Android chapter18 c-internet-web-servicesAravindharamanan S
 
Device Management with OMA Lightweight M2M
Device Management with OMA Lightweight M2MDevice Management with OMA Lightweight M2M
Device Management with OMA Lightweight M2MHannes Tschofenig
 
Beginning with wcf service
Beginning with wcf serviceBeginning with wcf service
Beginning with wcf serviceBinu Bhasuran
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIAngelo Corsaro
 
Hoti ofi 2015.doc
Hoti ofi 2015.docHoti ofi 2015.doc
Hoti ofi 2015.docseanhefty
 
Introduction to OFI
Introduction to OFIIntroduction to OFI
Introduction to OFIseanhefty
 
LWM2M Introduction - Edinburgh 2016 Workshop with ARM
LWM2M Introduction - Edinburgh 2016 Workshop with ARMLWM2M Introduction - Edinburgh 2016 Workshop with ARM
LWM2M Introduction - Edinburgh 2016 Workshop with ARMOpen Mobile Alliance
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric meshMikkel Mørk Hegnhøj
 
Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)Affan Syed
 
IPC: AIDL is not a curse
IPC: AIDL is not a curseIPC: AIDL is not a curse
IPC: AIDL is not a curseYonatan Levin
 
Getting started with libfabric
Getting started with libfabricGetting started with libfabric
Getting started with libfabricJianxin Xiong
 

What's hot (20)

Distributed System by Pratik Tambekar
Distributed System by Pratik TambekarDistributed System by Pratik Tambekar
Distributed System by Pratik Tambekar
 
Ekon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side NotificationsEkon25 mORMot 2 Server-Side Notifications
Ekon25 mORMot 2 Server-Side Notifications
 
Leveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2MLeveraging Android for the Internet of Things with Eclipse M2M
Leveraging Android for the Internet of Things with Eclipse M2M
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDS
 
Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019Istio Triangle Kubernetes Meetup Aug 2019
Istio Triangle Kubernetes Meetup Aug 2019
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipso
 
Android chapter18 c-internet-web-services
Android chapter18 c-internet-web-servicesAndroid chapter18 c-internet-web-services
Android chapter18 c-internet-web-services
 
Device Management with OMA Lightweight M2M
Device Management with OMA Lightweight M2MDevice Management with OMA Lightweight M2M
Device Management with OMA Lightweight M2M
 
Beginning with wcf service
Beginning with wcf serviceBeginning with wcf service
Beginning with wcf service
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part II
 
Hoti ofi 2015.doc
Hoti ofi 2015.docHoti ofi 2015.doc
Hoti ofi 2015.doc
 
Introduction to OFI
Introduction to OFIIntroduction to OFI
Introduction to OFI
 
LWM2M Introduction - Edinburgh 2016 Workshop with ARM
LWM2M Introduction - Edinburgh 2016 Workshop with ARMLWM2M Introduction - Edinburgh 2016 Workshop with ARM
LWM2M Introduction - Edinburgh 2016 Workshop with ARM
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Web services
Web servicesWeb services
Web services
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric mesh
 
Peer to Peer services and File systems
Peer to Peer services and File systemsPeer to Peer services and File systems
Peer to Peer services and File systems
 
Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)Openstack Workshop (Networking/Storage)
Openstack Workshop (Networking/Storage)
 
IPC: AIDL is not a curse
IPC: AIDL is not a curseIPC: AIDL is not a curse
IPC: AIDL is not a curse
 
Getting started with libfabric
Getting started with libfabricGetting started with libfabric
Getting started with libfabric
 

Viewers also liked

Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net frameworkArun Prasad
 
7 Distribueret programming - .NET remoting
7 Distribueret programming - .NET remoting7 Distribueret programming - .NET remoting
7 Distribueret programming - .NET remotingjeanette89
 
Basics of WCF and its Security
Basics of WCF and its SecurityBasics of WCF and its Security
Basics of WCF and its SecurityMindfire Solutions
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersDave Bost
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET AppsShiju Varghese
 
Microsoft� .NET and Microsoft� Office 2003
Microsoft� .NET and Microsoft� Office 2003Microsoft� .NET and Microsoft� Office 2003
Microsoft� .NET and Microsoft� Office 2003Rishi Kothari
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remotingOPENLANE
 
14 Programación Web con .NET y C#
14 Programación Web con .NET y C#14 Programación Web con .NET y C#
14 Programación Web con .NET y C#guidotic
 
Serialization in .NET
Serialization in .NETSerialization in .NET
Serialization in .NETAbhi Arya
 
Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishSvetlin Nakov
 

Viewers also liked (20)

Net remoting
Net remotingNet remoting
Net remoting
 
.Net Remoting
.Net Remoting.Net Remoting
.Net Remoting
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
7 Distribueret programming - .NET remoting
7 Distribueret programming - .NET remoting7 Distribueret programming - .NET remoting
7 Distribueret programming - .NET remoting
 
Basics of WCF and its Security
Basics of WCF and its SecurityBasics of WCF and its Security
Basics of WCF and its Security
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
 
NoSQL Database in .NET Apps
NoSQL Database in .NET AppsNoSQL Database in .NET Apps
NoSQL Database in .NET Apps
 
Microsoft� .NET and Microsoft� Office 2003
Microsoft� .NET and Microsoft� Office 2003Microsoft� .NET and Microsoft� Office 2003
Microsoft� .NET and Microsoft� Office 2003
 
dotnet_remoting
dotnet_remotingdotnet_remoting
dotnet_remoting
 
Top 9 Features Of a Successful Android Application
Top 9 Features Of a Successful Android ApplicationTop 9 Features Of a Successful Android Application
Top 9 Features Of a Successful Android Application
 
14 Programación Web con .NET y C#
14 Programación Web con .NET y C#14 Programación Web con .NET y C#
14 Programación Web con .NET y C#
 
Session 9
Session 9Session 9
Session 9
 
Serialization in .NET
Serialization in .NETSerialization in .NET
Serialization in .NET
 
Session 6
Session 6Session 6
Session 6
 
1.Philosophy of .NET
1.Philosophy of .NET1.Philosophy of .NET
1.Philosophy of .NET
 
Next .NET and C#
Next .NET and C#Next .NET and C#
Next .NET and C#
 
C sharp
C sharpC sharp
C sharp
 
.Net framework
.Net framework.Net framework
.Net framework
 
Dotnet basics
Dotnet basicsDotnet basics
Dotnet basics
 
Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - English
 

Similar to Overview of Microsoft .Net Remoting technology

Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method InvocationSabiha M
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Ben Robb
 
.NET Intro & Dependency Injection Workshop
.NET Intro & Dependency Injection Workshop.NET Intro & Dependency Injection Workshop
.NET Intro & Dependency Injection WorkshopSerhii Kokhan
 
Blazor, lo sapevi che...
Blazor, lo sapevi che...Blazor, lo sapevi che...
Blazor, lo sapevi che...Andrea Dottor
 
.NET Core, ASP.NET Core Course, Session 17
.NET Core, ASP.NET Core Course, Session 17.NET Core, ASP.NET Core Course, Session 17
.NET Core, ASP.NET Core Course, Session 17aminmesbahi
 
Building reusable components as micro frontends with glimmer js and webcompo...
Building reusable components as micro frontends  with glimmer js and webcompo...Building reusable components as micro frontends  with glimmer js and webcompo...
Building reusable components as micro frontends with glimmer js and webcompo...Andrei Sebastian Cîmpean
 
Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2
Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2
Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2Shriram Pore
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices ArchitectureIdan Fridman
 
Developing maintainable Cordova applications
Developing maintainable Cordova applicationsDeveloping maintainable Cordova applications
Developing maintainable Cordova applicationsIvano Malavolta
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...MSDEVMTL
 

Similar to Overview of Microsoft .Net Remoting technology (20)

Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method Invocation
 
RMI (Remote Method Invocation)
RMI (Remote Method Invocation)RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
Distributed objects
Distributed objectsDistributed objects
Distributed objects
 
Remoting and serialization
Remoting and serializationRemoting and serialization
Remoting and serialization
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with KubernetesSumo Logic Cert Jam - Advanced Metrics with Kubernetes
Sumo Logic Cert Jam - Advanced Metrics with Kubernetes
 
Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010Introduction to the Client OM in SharePoint 2010
Introduction to the Client OM in SharePoint 2010
 
.NET Intro & Dependency Injection Workshop
.NET Intro & Dependency Injection Workshop.NET Intro & Dependency Injection Workshop
.NET Intro & Dependency Injection Workshop
 
Blazor, lo sapevi che...
Blazor, lo sapevi che...Blazor, lo sapevi che...
Blazor, lo sapevi che...
 
.NET Core, ASP.NET Core Course, Session 17
.NET Core, ASP.NET Core Course, Session 17.NET Core, ASP.NET Core Course, Session 17
.NET Core, ASP.NET Core Course, Session 17
 
react-slides.pdf
react-slides.pdfreact-slides.pdf
react-slides.pdf
 
react-slides.pptx
react-slides.pptxreact-slides.pptx
react-slides.pptx
 
Microservices
MicroservicesMicroservices
Microservices
 
Building reusable components as micro frontends with glimmer js and webcompo...
Building reusable components as micro frontends  with glimmer js and webcompo...Building reusable components as micro frontends  with glimmer js and webcompo...
Building reusable components as micro frontends with glimmer js and webcompo...
 
Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2
Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2
Object Striping In Swift_OpenStack HongKong Summit 2013_v2.2
 
Vert.x for Microservices Architecture
Vert.x for Microservices ArchitectureVert.x for Microservices Architecture
Vert.x for Microservices Architecture
 
Developing maintainable Cordova applications
Developing maintainable Cordova applicationsDeveloping maintainable Cordova applications
Developing maintainable Cordova applications
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
 
Asp.net boilerplate
Asp.net boilerplateAsp.net boilerplate
Asp.net boilerplate
 
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
Stephane Lapointe, Frank Boucher & Alexandre Brisebois: Les micro-services et...
 

More from Peter R. Egli

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosPeter R. Egli
 
Data Networking Concepts
Data Networking ConceptsData Networking Concepts
Data Networking ConceptsPeter R. Egli
 
Communication middleware
Communication middlewareCommunication middleware
Communication middlewarePeter R. Egli
 
Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Peter R. Egli
 
Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Peter R. Egli
 
Overview of Cloud Computing
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud ComputingPeter R. Egli
 
MQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingMQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingPeter R. Egli
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration TechnologiesPeter R. Egli
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development KitPeter R. Egli
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Peter R. Egli
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingPeter R. Egli
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBAPeter R. Egli
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging ServicePeter R. Egli
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Peter R. Egli
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State TransferPeter R. Egli
 
MOM - Message Oriented Middleware
MOM - Message Oriented MiddlewareMOM - Message Oriented Middleware
MOM - Message Oriented MiddlewarePeter R. Egli
 
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)Peter R. Egli
 
Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Peter R. Egli
 

More from Peter R. Egli (20)

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
 
Data Networking Concepts
Data Networking ConceptsData Networking Concepts
Data Networking Concepts
 
Communication middleware
Communication middlewareCommunication middleware
Communication middleware
 
Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)
 
Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)
 
Overview of Cloud Computing
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud Computing
 
MQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingMQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message Queueing
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message Queueing
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)Web Services (SOAP, WSDL, UDDI)
Web Services (SOAP, WSDL, UDDI)
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
 
MOM - Message Oriented Middleware
MOM - Message Oriented MiddlewareMOM - Message Oriented Middleware
MOM - Message Oriented Middleware
 
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
 
Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)
 

Recently uploaded

zigbee motion sensor user manual NAS-PD07B2.pdf
zigbee motion sensor user manual NAS-PD07B2.pdfzigbee motion sensor user manual NAS-PD07B2.pdf
zigbee motion sensor user manual NAS-PD07B2.pdfDomotica daVinci
 
AUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMING
AUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMINGAUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMING
AUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMINGLiveplex
 
Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024Daniel Toomey
 
My self introduction to know others abut me
My self  introduction to know others abut meMy self  introduction to know others abut me
My self introduction to know others abut meManoj Prabakar B
 
OTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdfOTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdfPaige Cruz
 
Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxMaarten Balliauw
 
Dissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance DilemmasDissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance DilemmasScyllaDB
 
CIRCLE geometry lesson 2nd quarter grade 10
CIRCLE geometry lesson 2nd quarter  grade 10CIRCLE geometry lesson 2nd quarter  grade 10
CIRCLE geometry lesson 2nd quarter grade 10RicFernandez4
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS Chicago
 
DNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFE
DNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFEDNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFE
DNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFEandreiandasan
 
Tete thermostatique Zigbee MOES BRT-100 V2.pdf
Tete thermostatique Zigbee MOES BRT-100 V2.pdfTete thermostatique Zigbee MOES BRT-100 V2.pdf
Tete thermostatique Zigbee MOES BRT-100 V2.pdfDomotica daVinci
 
M.Aathiraju Self Intro.docx-AD21001_____
M.Aathiraju Self Intro.docx-AD21001_____M.Aathiraju Self Intro.docx-AD21001_____
M.Aathiraju Self Intro.docx-AD21001_____Aathiraju
 
AWS for the beginning is cloud computing
AWS for the beginning  is  cloud computingAWS for the beginning  is  cloud computing
AWS for the beginning is cloud computingkajalghule1
 
5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!
5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!
5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!XfilesPro
 
GDSC MMCOE - ML Campaign
GDSC MMCOE - ML CampaignGDSC MMCOE - ML Campaign
GDSC MMCOE - ML CampaignLavesh Akhadkar
 
Semiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdfSemiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdfkeyaramicrochipusa
 
2024 February Patch Tuesday
2024 February Patch Tuesday2024 February Patch Tuesday
2024 February Patch TuesdayIvanti
 

Recently uploaded (20)

zigbee motion sensor user manual NAS-PD07B2.pdf
zigbee motion sensor user manual NAS-PD07B2.pdfzigbee motion sensor user manual NAS-PD07B2.pdf
zigbee motion sensor user manual NAS-PD07B2.pdf
 
AUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMING
AUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMINGAUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMING
AUGMENTED REALITY (AR) IN DAILY LIFE: EXPANDING BEYOND GAMING
 
Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024Microsoft Azure News - Feb 2024
Microsoft Azure News - Feb 2024
 
My self introduction to know others abut me
My self  introduction to know others abut meMy self  introduction to know others abut me
My self introduction to know others abut me
 
OTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdfOTel Orientation_ How to Train Teams (OTel in Practice).pdf
OTel Orientation_ How to Train Teams (OTel in Practice).pdf
 
Bringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptxBringing nullability into existing code - dammit is not the answer.pptx
Bringing nullability into existing code - dammit is not the answer.pptx
 
COE AI Lab Universities
COE AI Lab UniversitiesCOE AI Lab Universities
COE AI Lab Universities
 
Dissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance DilemmasDissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance Dilemmas
 
CIRCLE geometry lesson 2nd quarter grade 10
CIRCLE geometry lesson 2nd quarter  grade 10CIRCLE geometry lesson 2nd quarter  grade 10
CIRCLE geometry lesson 2nd quarter grade 10
 
AWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user groupAWS reInvent 2023 recaps from Chicago AWS user group
AWS reInvent 2023 recaps from Chicago AWS user group
 
DNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFE
DNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFEDNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFE
DNA LIGASE BIOTECHNOLOGY BIOLOGY STUDY OF LIFE
 
Russia Ukraine war Cyberspace operations (2022-2024)
Russia Ukraine war Cyberspace operations (2022-2024)Russia Ukraine war Cyberspace operations (2022-2024)
Russia Ukraine war Cyberspace operations (2022-2024)
 
Tete thermostatique Zigbee MOES BRT-100 V2.pdf
Tete thermostatique Zigbee MOES BRT-100 V2.pdfTete thermostatique Zigbee MOES BRT-100 V2.pdf
Tete thermostatique Zigbee MOES BRT-100 V2.pdf
 
M.Aathiraju Self Intro.docx-AD21001_____
M.Aathiraju Self Intro.docx-AD21001_____M.Aathiraju Self Intro.docx-AD21001_____
M.Aathiraju Self Intro.docx-AD21001_____
 
AWS for the beginning is cloud computing
AWS for the beginning  is  cloud computingAWS for the beginning  is  cloud computing
AWS for the beginning is cloud computing
 
5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!
5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!
5 Things You Shouldn’t Do at Salesforce World Tour Sydney 2024!
 
GDSC MMCOE - ML Campaign
GDSC MMCOE - ML CampaignGDSC MMCOE - ML Campaign
GDSC MMCOE - ML Campaign
 
Semiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdfSemiconductor Review Magazine Feature.pdf
Semiconductor Review Magazine Feature.pdf
 
2024 February Patch Tuesday
2024 February Patch Tuesday2024 February Patch Tuesday
2024 February Patch Tuesday
 
My Country Mobile
My Country MobileMy Country Mobile
My Country Mobile
 

Overview of Microsoft .Net Remoting technology

  • 1. © Peter R. Egli 2015 1/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com Peter R. Egli INDIGOO.COM OVERVIEW OF MICROSOFTS .NET REMOTING TECHNOLOGY .NET REMOTING
  • 2. © Peter R. Egli 2015 2/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com Contents 1. .Net Remoting architecture 2. .Net Remoting concepts 3. Remotable and nonremotable types 4. .Net Remoting Server Object Activation Types 5. .Net remoting object lifetime control 6. .Net remoting channel 7. Assembly with remoting objects 8. Configuration files instead of programmatic creation of objects 9. Asynchronous remoting
  • 3. © Peter R. Egli 2015 3/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 1. .Net Remoting architecture Proxy: Client-side stub object that connects to the (remote) server object. Channel: Transport channel for objects, defined by host + port + endpoint (= remote object service). Dispatcher: Part of the .Net remoting infrastructure; dispatches method call to the server object. Formatter and Transport sink see below. Client Proxy object Dispatcher Server (remote) object Client Server .Net remoting infrastructure Formatter sink Transport sink Formatter sink Transport sink Channel
  • 4. © Peter R. Egli 2015 4/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com ChannelServices 2. .Net Remoting concepts Channel: Comprises a server port number and a formatting (=protocol such as HTTP or TCP) Endpoint: Specifies the application that receives the calls (requests) ChannelServices HTTP Client Channel EP http://<host>:<port>/<endpoint> ServerObjectServerObject EP HTTP Server Channel ICalcICalc.dll (common assembly) Contains TCP Server ChannelTCP Client Channel ServerObject Transparent Proxy Client ICalc .Net remoting infrastructure Channel type (formatting, protocol) Channel port number Endpoint (application) <<has>> ICalc.dll (common assembly) .Net remoting infrastructure Register Formatter FormatterFormatter Get object reference Create proxy object as object reference Contains Real Proxy Interface for client Send/receive messages
  • 5. © Peter R. Egli 2015 5/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 3. Remotable and nonremotable types (1/2) Nonremotable types: Objects that neither derive from MarshalByRefObject nor are serializable. Examples: File handles, sockets, window handles (in general objects that can be used only in the local context / application domain). Remotable types: 1. Reference type objects: Objects that derive from MarshalByRefObject are remotable. The remote objects are marshalled by reference. The client obtains a local reference object (proxy) to the remote server object. MarshalByRefObject MyRemotableClass Only a reference to Object B is transferred Application domain A Object A Application domain B .Net remoting infrastructure .Net remoting infrastructure Object B marshal by reference A remote object becomes remotable by reference simply by deriving from the .Net class MarshalByRefObject
  • 6. © Peter R. Egli 2015 6/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 3. Remotable and nonremotable types (2/2) 2. Value objects: Objects that are serializable can be transferred into a different application domain. Serializable objects must be „tagged“ with the attribute [Serializable]. Additionally serializable objects may implement the ISerializable interface and provide a custom serialization (e.g. add some logging info to the serialized object stream). ISerializable MyRemotableClass The attribute Serializable is attached to MyRemoteClass marking it serializable (all members of the class need to be serializable as well). Optionally MyRemotableClass may implement the ISerializable interface allowing custom serialization. [Serializable] Marshal by value: Object A .Net remoting infrastructure .Net remoting infrastructure Copy of object A (marshal by value) Application domain A Application domain B Object A is serialized to a stream The stream containing a serialized copy of object A is transferred Object A is deserialized from the stream to a copy of the object A
  • 7. © Peter R. Egli 2015 7/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 4. .Net Remoting Server Object Activation Types (1/3) Activation = creation and initialization of objects. Activation of marshal by value types (Serializable): Value type objects are activated through the de-serialization on the server side. Activation of MarshalByRefObject types: a. Client activated object (CAO): • Object is activated by the client, transferred to the server and the called method executed on the server side. • Server object may retain state information between successive calls (stateful session). • How it actually works: Client Server 1. Object creation 2. Transfer to server 3. Execution in the appl. domain and process of the server MySrv Proxy MySrv object Client Server Shared assembly with MySrv type Shared assembly with MySrv type Client creates the object locally. The underlying .Net remoting infrastructure actually creates a proxy, creates a server object on the server side and connects these 2 objects. .Net remoting infrastructure .Net remoting infrastructure
  • 8. © Peter R. Egli 2015 8/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 4. .Net Remoting Server Object Activation Types (2/3) b. SAO - Server Activated Object (1/2): • SAO call semantics is stateless (no session semantics between client and server object possible).  Called „well-known“ types  Published as an URI  Server activates the objects and the client „connects“ to these.  2 types of server-activated objects Singleton objects:  1 global instance for all clients and for all remote object calls  Created when the first client accesses the server object.  Server registration as singleton: RemotingConfiguration.RegisterWellKnownServiceType( typeof( SomeType ), "SomeURI", WellKnownObjectMode.Singleton ); Singleton server object Client proxy object Client proxy object Client proxy object
  • 9. © Peter R. Egli 2015 9/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 4. .Net Remoting Server Object Activation Types (3/3) b. SAO - Server Activated Object (2/2): Single-call objects:  Individual object for each client method call.  Every method call is executed on a new server object instance, even if the call is made on the same client proxy object.  Server registration as single-call object: RemotingConfiguration.RegisterWellKnownServiceType( typeof( SomeType ), "SomeURI", WellKnownObjectMode.SingleCall ); Single server object Client proxy object Single server object Client proxy object Single server object Client proxy object
  • 10. © Peter R. Egli 2015 10/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 5. .Net remoting object lifetime control SAO single-call objects: Server object lives for 1 call only SAO singleton and CAO objects: Lifetime managed by the Lease Manager The Lease Manager decides if a remote object (server object) can be marked for deletion (actual deletion is the job of the GC). The Lease Manager contacts a sponsor in order to determine if a remote object can be marked for deletion or if the lifetime of the object should be extended. • Flexible design where client and server object lifetime are de-coupled. • Lifetime of objects that are costly to create (lots of initialization etc.) can be given long lifetimes. • Objects that hold precious resources may be given short lifetimes (free resources quickly). Server process Server Object Lease Lease Manager App Domain Reference Client process Client Sponsor App Domain
  • 11. © Peter R. Egli 2015 11/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 6. .Net remoting channel .Net remoting channels are complex object-chains with at least 2 so called sinks (message processing objects): a. Formatter sink: Convert the message or object to be transported to the required wire protocol (binary or SOAP) b. Transport sink: Mapping of the serialized message stream into a transport connection (binary formatter: plain TCP, SOAP: HTTP) The programmer may add additional sink objects (e.g. logging or filtering sink object that logs each message passing by). Source: http://msdn.microsoft.com/en-us/library/tdzwhfy3(VS.71).aspx Formatting into wire protocol (binary or SOAP) Additional custom sinks Mapping of serialized stream into transport connection
  • 12. © Peter R. Egli 2015 12/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com Assembly mscorlib.dll (.Net system assembly) 7. Assembly with remoting objects (1/2) Both client and server must have the same assembly (.Net library in the form of a DLL or executable) containing the shared interface. Both client and server must be linked with an identical assembly containing the shared interface; only sharing the shared interface on source level does not work (.Net remoting run-time throws an exception). 1. SAO scenario: The shared assembly may only contain the interface (only minimal assembly with the shared interface needs to be deployed). The server implementation (class CalcServer) is completely hidden to the client. Interface ICalc CalcServer remote object MarshalByRefObject Assembly ICalc.dll Client application Assembly CalcServer.exe Link to Assembly CalcClient.exe Link to Calc proxy Connects to
  • 13. © Peter R. Egli 2015 13/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com Assembly mscorlib.dll (.Net system assembly) 7. Assembly with remoting objects (2/2) 2. CAO scenario: Remotable object that extends MarshalByRefObject must be in the shared assembly because it is created / activated by the client, but executed on the server; so both client and server need the CalcServer class / object. Interface ICalc CalcServer application MarshalByRefObject Assembly Calc.dll Client application Assembly CalcServer.exe Link to Assembly CalcClient.exe Link to CalcServer Transferred to for execution CalcServer Link to
  • 14. © Peter R. Egli 2015 14/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 8. Configuration files instead of programmatic creation of objects (1/2) .Net remoting allows using XML-files for configuring various settings on the server and client side, e.g. port numbers and formatters. Advantage: Meta-programming without the need to change the code. Disadvantage: If things don‘t work as expected debugging of configuration in XML-files is difficult (Visual Studio does not provide help for creating configuration files). Example server config file: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.runtime.remoting> <application> <service> <wellknown mode="SingleCall" type="ICalc.CalcServer, ICalc" objectURI="ICalc.CalcServer"/> </service> <channels> <channel ref="tcp" port="60000" bindTo="127.0.0.1"> <serverProviders> <formatter ref="binary" typeFilterLevel="Full"/> </serverProviders> </channel> </channels> </application> </system.runtime.remoting> </configuration>
  • 15. © Peter R. Egli 2015 15/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com 8. Configuration files instead of programmatic creation of objects (2/2) Example client config file: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.runtime.remoting> <application> <client> <wellknown type="ICalc.CalcServer, ICalc“ url="tcp://127.0.0.1:60000/ICalc.CalcServer.soap"/> </client> </application> </system.runtime.remoting> </configuration>
  • 16. © Peter R. Egli 2015 16/16 Rev. 1.40 Microsoft .Net Remoting indigoo.com Async delegate 9. Asynchronous remoting Problem: Server method execution may take considerable time during which the client is blocked (waits for the response). Solution: Use of standard asynchronous delegates of .Net  Further decoupling of client and server.  Similar to asynchronous message oriented interaction between client and server. Client Proxy object Remote object Client passes the proxy object to an async delegate for execution (delegate runs in its own thread) Upon completion the delegate calls a callback method in the client