Click Here to Install Silverlight*
IndiaChange|All Microsoft Sites
MSDN
|Developer Centers|Library|Downloads|How To Buy|Subscribers|My MSDN
 
Chat Transcript
 
.NET Remoting and Distributed Computing
Host
: Janakiraman MSV - Technical Specialist, Microsoft India
January 31, 2002
 
KunalS: Coming up now is

KunalS: Janakiraman

KunalS: he is a Technical Specialist in Microsoft

KunalS: and his speciality is .NET Remoting and Distributed Computing

KunalS: Hello and Welcome Janki

DotNeteXtreme: Janki Is it possible to implement Remoting over Internet and How? DCOM was really pathetic over here

Jani: Hi All

Jani: Well.. .NET is all about distributed computing over networks and Internet

Jani: .NET Remoting support two channels

Jani: 1) TcpChannel meant to work in Intranet

Jani: 2) HttpChannel with SOAPFormatter for SOAP complaint messages

Saurabh: Why is the SOAP implementation in Remoting different from the SOAP implementation in Web Services ??

Shrawan: hi dudes

DevenShah: bye pals! gtg...

Jani: with DCOM one has to open up lot of ports on the firewall that could lead to a security breach

Saurabh: like the way, different arrays are implemented etc...

Jani: with .NET Remoting, we can still stick to HTTP:80 and still go for remoting

Jani: Saurabh-SOAP Implementation is almost the same between WebServices and Remoting

Ganesh: is .net remoting same as RMI?

Jani: but WebServices schema is based on SOAPDocument and remoting is slightly based on SOAPRPC

Saurabh: Yeha that's my question, why *almost*?? why not exactly the same ??

DotNeteXtreme: So can you point out under what circumstances we could go to remoting and not WebServices

Saurabh: Does the implemntation it improve performance ??

Jani: DotNetXtreme-If u have apps behind firewall and they have to talk to each other u need remoting

Jani: Lets take these cases

Jani: .NET Server <-> .NET Client: Use TcpChannel with Binary format for performance

DotNeteXtreme: rather a corporate environment u mean to say ?

Jani: .NET Server<->Java Client: Use HttpChannel with SOAPFormatter

Jani: this is within a corporate intranet running behind a firewall

Shrawan: can i ask some Questions on WebServices

Jani: there is no perf. difference between WebServices and Http based remoting

Jani: pls go ahead

DotNeteXtreme: But same thing can be achieved using WebServices .NET Webservices <-> Non MS Clients

Shrawan: how can i do transactions in webservices

Saurabh: That's good info ...

Jani: hmmm.. Currently SOAP doesn't define a spec. for transactions

Jani: but along with IBM we are working on these lines

Shrawan: but we can have a transaction server which actually fulfill the requirement

Shrawan: i have gone throught vertain articles toooo

Jani: MTS will work DCOM based components

Shrawan: Like 2PC & TIP

Shrawan: But in context of Webservices where we are visualising some InterOperatibilt .. tehn

Jani: but WebServices are based HTTP which is a stateless environment.. Request->Response->Disconnect

Jani: we achieved a mile stone with InterOp

Jani: I have myself worked on lot of implementations of SOAP and found that most them are InterOp'ing

Shrawan: is it possible that, if web services maintain their own states, and a another web services acts as a transaction co-ordinator and use these states to do a 2PC ?

Jani: checkout an implementation called "Glue" from http://www.themindelectric.com

Shrawan: meaning.....

Jani: something like that would solve the problem.

Anand: I have a question reg. COM+

Shrawan: that if there be a web service .....

Shrawan: that could do the transaction co-ordination ?

Shrawan: can remoting help ?

Shrawan: here to support this ?

Jani: but that webservice itself is stateless. How does it maintain TX Info?

Shrawan: but if we can have some co-ordinator at the server THEN

Jani: Remoting along with COM+ aims at that

Jani: which means it can only within a corp. network

Anand: How do you host a .NET component which has activation as server in COM+?

Shrawan: lets look at a scenario ....... P1,P2 Webservices

sanjay: Hi everybody

Shrawan: and T as a web services as a transaction co-ord

Jani: extend the component from ServicedComponent

DotNeteXtreme: Jani, How can we serialize a object lets say a WinForm and sent it across the wire using webservices

Shrawan: a user requests T to enter into a transaction with P1 and P2

Jani: Any object that has to cross an AppDomain has to inherit itself from MarshalByRef or MarshalByValueComponent classes

Shrawan: where in P1 and P2 support ready, lock and commit methods

Shrawan: alogn with transaction sequence numbers which can be used to support server side states

Jani: I don't think WinForm can be serialized and sent across the network

DotNeteXtreme: So whats the alternative...

Jani: I think WinForm as a parameter can't be serialized because it maintains an OS Handle like HWND at the time of instance

Jani: when it reaches the other end, it doesn't make any sense to the caller object

shishu: can we continue on transaction one ,its interesting one Jani: Shravan-I appreciate your idea but are we trying to write 2PC by ourselves

Ravikanth: is there any plans to launch dotnet framework for linux os?

Shrawan: trying to write meaning ?

Jani: I mean implementing

Jani: check out dotgnu.org and go-mono sites

Shrawan: you mean for web services ?

Shrawan: ok cool

Jani: MS will not intervene with any of these initiatives

Shrawan: do you think we can develop a web service specifically for transaction co-ordination ?

Shrawan: I mean would it be feasible with the current specification of SOAP ?

Jani: Current spec. doesn't address that

shishu: no its not with SOAP1.1

Jani: watch out for a new spec at http://msdn.microsoft.com/soap

Anand: I tried to write a formatter but was not able to chain it with Soap or Binary formatters?

Jani: there will be a new standard called ws-Transaction

Jani: Anand- If u send me the code, I will look it into that

Anand: sure, u'r id?

Jani:janakiramm@hotmail.com

Jani: I suggest you post it to the forum so that every one knows about it

Anand: cool, i guess i will do that

DotNeteXtreme: yeah dats a good idea

Jani: Coming to RMI...

Jani: I have personally worked on both and find a degree of difference

Jani: First RMI relies Stubs/Skeletons and RMI Registry

Jani: One has to manually start the registry and the server will publish it self with that

Jani: The client will look up at a well known localtion and requests for a proxy of the server

Jani: Thats lot of coding there

Saurabh: very true !

Jani: one major advantage I find with remoting is the Client and Server can be really unware of Channels/Ports/Protocol/URI

Saurabh: yeha .. the configuration files are real sleek !

Jani: there are external .config files that define and how the client and server talk to each other

Jani: That's called productivity

Saurabh: hehehehe I agree

Anand: How do you host a .NET component which has activation as server in COM+?

Jani: But It is technially possible to write custom channels and formatters (for eg: one for RMI) by your self

Jani: its completely "PLUGGABLE"

Saurabh: Jani: I had heard a lot about Secured SOAP Service used internally on MS sites (in the .NET Show) can you elaborate on it ??

Jani: Anand-use Dynamic Registration on use Strongname with RegAsm to register it

Anand: but i was unable to do it, and it gave an exception

Anand: it works only with library activation

Jani: Saurabh-Yes. We are working towards a secure mechanism that would carry a PKI info along with the caller can use to decrypt

Jani: this works at the Http Header and can be controlled with SOAPattributes

Saurabh: Are you planning to publish the whitpapers on it once the implementation is compelete ??

Jani: Yes.. Obviuosly.. Watch out MSDN SOAP page

Anand: I guess the transactions in web services is also handled through http headers, isn't it?

Saurabh: thanks ...

Jani: I am actually working a white paper on .NET Remoting and will be posting it to MSDN .NET Resource site

Anand: when can we expect that?

Saurabh: great.. will watch out for it ...

Jani: I have discussed Remoting from a DCOM perspective

Jani: Also Working with Remoting on Pocket PC is really Cool

Jani: You can control a Desktop process from your PocketPC

Saurabh: kool ...

DotNeteXtreme: thata a good feature

Anand: fantastic

Anand: is the implementation different for the pocket PC?

Jani: I have also tested out a Java Client that talks to a .NET COM+ using Remoting

Jani: No. Not at all.. Its the same .NET Runtime/Framework

Anand: how is that done? do you use any kind of bridge?

Jani: No Buddy... Bridges are legacy...

Anand: then?

DotNeteXtreme: was it a Windows-XP desktop

Jani: One has to move either side of the bridge.. No one live on the bridge for life-time

Saurabh: I guess we will also see the source code for this on .NET Resource web site ??? thats a good one

Jani: I used a webservice client at Java end and HttpChannel at the COM+ end

Anand: then it is soap messages which you are talking about. But if you want to do the same in TCP channel then?

Jani: Then we have to a formatter for RMI which is complex but not impossible

Jani: ooops.. read it as "Write a formatter"

Anand: that's cool.

Saurabh: Jani acutally if more examples were out on writing custom formatters, channels etc it would really help !

Jani: You will see them soon

Saurabh: kool !

Anand: i agree with him, there are not to many documentation as well as examples

Jani: Also we can use callbacks using Remoting and simulate a P2P scenario

Jani: I have plans to write this with C# and Java clients

Saurabh: Great, I have tried it between 2 C# clients it works perfectly fine !

Anand: is the callbacks which you are talking about will be client activated object or a server object?

Jani: Using Server Objects

Anand: how do you do that?

Jani: Use Delegates and Events

Anand: ok, now i get it

Jani: The Client will subscribe to an Event and the Server would fire it to all the Clients

Saurabh: but then Clients also should act like servers, to respond to callbacks right ???

Jani: That's handled by a Delegate

Jani: Server ->Delegate->Event->Multiple Clients

Saurabh: Jani, soory I missed you point .. could you clarify - but then Clients also should act like servers, to respond to callbacks right ???

KunalS: Hello members, sorry to jump in, I know you are having a great time....

KunalS: But the time is nearly up....

KunalS: so please only 2 more questions for Jani..

KunalS: before we can wind up...

Jani: Call a method on the server... which could propagate this all the clients subscribed to that server side event

Saurabh: ok - Thanks !

Jani: Any more questions...

Saurabh: none form me .....

KunalS: Very well....

KunalS: Thank you very much Jani...

Jani: Thanks Kunal...

KunalS: to take time out from your very busy schedule..

Jani: It was great talking all of you..

Saurabh: Thanks a loy Jani ... would be looking foward to see your articles

Jani: sure

KunalS: and I would like to thank you all for joining in..

Anand: thanks jani.

KunalS: We shall be having another chat session next week..

Anand: on what?

KunalS: the topic shall be announced soon...

KunalS: and we shall also setup a msg board...

Anand: thanks Kunal

KunalS: where you may post suggesitons for topics of chat

KunalS: thanks once again....

DotNeteXtreme: bye all

Anand: Kunal, will the chat transcript be available somewhere?

Ravikanth: where can i see the entire chat in the community

KunalS: Yes, the chat transcript shal be made available by tommorrow

KunalS: in the forums itself..

Anand: ok, great!!!!

KunalS: Bye and thanks

DotNeteXtreme: cool

Ravikanth: cool

Anand: bye
     

©2009 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy Statement
Microsoft