outline - uio

Post on 26-Oct-2021

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

NET CLR   NET REMOTING  COM  COM.NET CLR, .NET REMOTING, COM, COM+INF5040

Kim Mathiassen  Anh Tuan Nguyen and Anthe RugstadKim Mathiassen, Anh Tuan Nguyen and Anthe Rugstad

OutlineIntroduction to .Net FrameworkNET   .NET component conceptCLR (Common Language Runtime).NET RemotingCOM, COM+ and DCOM

.NET Remoting vs DCOMCase studyy

The assignment done in .NET Remoting

2

Introduction to .Net FrameworkA Microsoft approach to ”component software”C iComprises

Common Language Runtime (CLR)l b f ll f d ll lA large number of partially interfaced, partially class‐

based frameworks packaged into assembliesA  b   f t l   A number of tools  

3

.NET component concept (1/2)p p ( / )Assemlies

The units of deployment  versioning  and managementThe units of deployment, versioning, and managementin .Net

A set of files in a directory hierarchy (equivalent to thecontents of a JAR file)

( )Manifest: a table of contents (Metadata)Modules

code is expressed in CIL (Common Intermediate Language): code is expressed in CIL (Common Intermediate Language): MSILResources immutable data

R  Resources 

4

.NET component concept (2/2)p p ( / )An assembly

private to a single application or shared among multiple private to a single application or shared among multiple applications.

Name resolution schemeStrong name = (publisher token, assembly name, versionvector, culture)

Publisher token: the SHA‐1 hash of the public half of a public/private key pair.Version vector = (major, minor, build, patch)( j , , , p )

Signed by encrypting an MD‐5 has over the entire assemblyi th i t  kusing the private key.

5

.NET CLR (1/5)( / )Common Language Infrastructure (CLI)

A l t l  l tfA language‐neutral platform

C iComprisesThe specification of execution engine services (loader, JIT compiler  and garbage‐collecting memory manager)compiler, and garbage collecting memory manager)The common type system (CTS)The common language specification (CLS)g g p ( )

6

.NET CLR (2/5)( / ).NET CLI: CTS

The superset of many languages’ core concepts in the type space‐> CLI‐compliant code can operate over the entire CTS space‐> for code implemented in different languages to interoperate.

.NET CLI: CLSA strict CTS subset constructed in such a way that a wide variety oflanguages can cover it completelylanguages can cover it completely‐> if a definition is CLS‐compliant, then any language classified as a CLS consumer will be able to make use of that definition.A language can also introduce new definitions in the CLS spaceA language can also introduce new definitions in the CLS space(CLS producer)A language can extend existing definitions in the CLS space (CLS extender)

7

.NET CLR (3/5)( / )

T l l CTS t  Top‐level CTS type hierarchy

8

.NET CLR (4/5)( / )Common Language Runtime

The Microsoft implementation of the Common Languagep g gInfrastructure (CLI)

Includes support for COM and platform interoperationIncludes support for COM and platform interoperation

Offers dynamic loading and unloading, garbage collection, t t i t ti   t d t fl ti   ti  context interception, metadata reflection, remoting, 

persistence and other runtime services that are fully languageindependent

Microsoft supports different languages on CLR: C#, Jscript, Managed C++, and Visual Basic.Net, J#, ….

9

.NET CLR (5/5)( / )

10

.NET Remoting Architecture (1/10)g ( / )The .Net remoting infrastructure is an abstract approach to inter‐process communication.

Objects can be passed by value, or copied.

Objects are automatically passed beween applications in different application domains or on different computers pp pusing different transportation protocols, serializationformats, object lifetime schemes and modes of objectcreation.

Remoting makes it possible to intervene in almost anyt   f th i tistage of the communication process.

11

.NET Remoting Architecture (2/10)g ( / )Copies

S   bj t     i d t   li t Server objects are copied to client process

   R f… vs. ReferencesMany objects can not or should not be copied and moved e.g. extremely large objects  > a reference to the server object is extremely large objects ‐> a reference to the server object is passed to the client.Clients collects all information (the call, arguments, return values or exceptions) about the call and send it to the server process; then, the correct server object is located

12

.NET Remoting Architecture (3/10)g ( / )Using object references to communicate between server objects and clients the the heart of remotingserver objects and clients the the heart of remoting

13

.NET Remoting Architecture (4/10)g ( / )Messages: objects that implement IMessage interfaceProxies

Transparent proxyA dynamically created block of code existing in the client applicationdomain (context) on behalf of the remote object and exposes all ofdomain (context) on behalf of the remote object and exposes all ofits features: all fields, properties, events, delegates and methodsInstance of System.Runtime.Remoting.Proxies.__TransparentProxy.

Real proxyInstance of a class inheriting from the abstract base class RealProxydefined in System.Runtime.Remotingy gThe transport layer for transparent proxiesIs able to dynamically create a transparent proxy for any arbitray.NET class‐type.

14

.NET Remoting Architecture (5/10)g ( / )Channels

Responsible for transporting messages (endpoint‐to‐endpoint communication)

An abstract of a specific transport protocol and wrap the protocol to make it available to the .NET Remoting infrastructure

TCP channel or HTTP channel

The channel model is extensible: build your own channel (APPC, IPX, or Windows Named Pipes)Windows Named Pipes)

Implements IChannelReceiver implements IChannelSender

System.Runtime.Remoting.ChannelServices: manage and register .NET Remoting channels.

15

.NET Remoting Architecture (6/10)g ( / )Sinks

A pluggable component provided to the channel through a channeli k  id   lsink provider class.

Sink providers: IClientChannelSinkProvider & IS Ch lSi kP idIServerChannelSinkProvider

Sinks: IClientChannelSink & IServerChannelSink

Interception, security checks, logging or whatever you want to control or monitor regarding Remoting traffic

IClientFormatterSinkProvider (IClientFormatterSink) & IServerFormatterSinkProvider (IServerFormatterSink)

16

.NET Remoting Architecture (7/10)g ( / )Dispatcher

The proxy’s counterpart at teh receiving end of thep y p gcommunication.

StackBuilderSink class in StackBuilderSink class in System.Runtime.Remoting.Messaging namespace

T kTasksReceives messagesBuilds the stack‐frameI k   h dInvokes a methodCollects resultsAnd creates a response message

17

.NET Remoting Architecture (8/10)g ( / )

18

.NET Remoting Architecture (9/10)g ( / )

19

.NET Remoting Architecture (10/10)g ( / )The Call context

S t R ti R ti M iSystem.Runtime.Remoting.MessagingCallContext.SetData(), CallContext.GetData()IL i lTh dAffi iILogicalThreadAffinative

Remoting servicesSystem.Runtime.RemotingConnect() of RemotingServices class

Provides low‐level access to RemotingR d  i d  bjReturned proxied object

20

Component Object Model (COM) (1/2)Component Object Model (COM) ( / )Platform independent, distributed, object‐based systemsystemFoundation technology for Microsoft OLE and ActiveXD i d  i il  f  C   d Mi f  Vi l B iDesigned primarily for C++ and Microsoft Visual BasicIs supported in Vista

21

COM (2/2)( / )Binary standardL    b   bl         f  iLanguage must be able to create structures of pointersUses interfaces in a Java like fashion

22

COM+Primarily for Microsoft Visual C++ and Microsoft Visual BasicVisual BasicBuilds on and extends COM

Th d  ll iThread allocationSecurityT i     i h Mi f  T i  STransaction support with Microsoft Transaction Server

23

DCOM

24

.Net and COM.Net provides transparent integration with COMOld COM  li i    b   d  i h    N  Old COM applications can be used with new .Net applications

25

.Net Remoting vs DCOMg.Net Remoting  DCOM

dUses TCP or SOAPUses HTTP protocol 

Based on RPCNot firewall friendly, cannot choose port

Supports cross‐platformEasy deployment through 

choose portOnly Windows‐basedComplex deployment in Easy deployment through 

XML or programmaticallySecurity depends on the host 

Complex deployment in Windows registriesDepends on Windows 

of the .Net Remoting Object security

26

.Net vs DCOM.Net Remoting  DCOM

l ll f l f h h d bClient request will fail if the remoting server is not already started, and if the remoting 

The COM server is started by Service Control Manager upon receiving the activation started, and if the remoting 

component is not hosted in Internet Information Server

upon receiving the activation request from the client

27

Demo

28

Server codestatic void Main(string[] args){

TcpChannel chan = new TcpChannel(8085);TcpChannel chan new TcpChannel(8085);ChannelServices.RegisterChannel(chan, false);RemotingConfiguration.ApplicationName =

"EBankingServer";"EBankingServer";

RemotingConfiguration.RegisterActivatedServiceType(i jtypeof(ebankingObject.Account));

System.Console.WriteLine("Hit <enter> to exit...");System.Console.ReadLine();ChannelServices.UnregisterChannel(chan);

}}

29

Client configuration codegTcpChannel chan = new TcpChannel();ChannelServices RegisterChannel(chan false);ChannelServices.RegisterChannel(chan, false);RemotingConfiguration.RegisterActivatedClientType(

typeof(ebankingObject.Account)," //l lh 8085/ ki S ")"tcp://localhost:8085/EBankingServer");

30

Client codeebankingObject.Account obj =

new ebankingObject.Account();

obj.Create(ammount);

ebankingObject.Account obj = new ebankingObject.Account(accountId);

account.SucessfullTransfer(toAccount, amount);account.UnsucessfullTransferWT(toAccount, amount);account UnsucessfullTransferWoT(toAccount amount);account.UnsucessfullTransferWoT(toAccount, amount);

31

Distributed objectjpublic class Account : MarshalByRefObject{{

……

}}

32

References"Component Software: Beyond object‐oriented programming" by Clemens Szyperski et.al, 2002, (ISBN 0‐201‐74572‐0)Handling Language Interoperability with the Microsoft .NET Framework. http://msdn.microsoft.com/en‐us/library/ms973862 aspxus/library/ms973862.aspx.Net Framework Remoting Architecture. http://msdn.microsoft.com/en‐us/library/2e7z38xb.aspxp // / / y/ 7 3 pRemoting Architecture in .Net. http://www.codeproject.com/KB/IP/Remoting_Architecture.aspx

33

ReferencesComparison of DCOM and Dot Net Remoting http://wwwericsson com/mobilityworld/sRemoting http://www.ericsson.com/mobilityworld/sub/open/technologies/open_development_tips/docs/odt compare dcomodt_compare_dcomComponent Development – MSDN http://msdn microsoft com/en‐http://msdn.microsoft.com/enus/library/aa139693.aspxDCOM Architecture – MSDN DCOM Architecture – MSDN http://msdn.microsoft.com/en‐us/library/ms809311.aspxus/library/ms809311.aspx

34

top related