No Registration! No Resume Posting!!
Receive FREE Email Alerts on Current Walk-in Interviews in India, and Apply Directly to The Employer of Your Choice! - Enter your Email ID and Subscribe Right Now!


DotNet Remoting and WebServices
What is an application domain?
Previously "PROCESS" where used as security boundaries. One process has its own virtual memory and does not over lap the other process virtual memory; due to this one process can not crash the other process. So any problem or error in one process does not affect the other process. In .NET they went one step ahead introducing application domains. In application domains multiple applications can run in same process without influencing each other. If one of the application domains throws error it does not affect the other application domains. To invoke method in a object running in different application domain .NET remoting is used.
What is .NET Remoting?
.NET remoting is replacement of DCOM. Using .NET remoting you can make remote object calls which lie in different Application Domains. As the remote objects run in different process client calling the remote object can not call it directly. So the client uses a proxy which looks like a real object.

When client wants to make method call on the remote object it uses proxy for it. These method calls are called as "Messages". Messages are serialized using "formatter" class and sent to client "channel". Client Channel communicates with Server Channel. Server Channel uses as formatter to deserialize the message and sends to the remote object.
Which class does the remote object has to inherit?
All remote objects should inherit from System.MarshalbyRefObject.
what are two different types of remote object creation mode in .NET?
There are two different ways in which object can be created using Remoting :

SAO (Server Activated Objects) also called as Well-Known call mode.
CAO (Client Activated Objects)

SAO has two modes "Single Call" and "Singleton". With Single Call object the object is created with every method call thus making the object stateless. With Singleton the object is created only once and the object is shared with all clients.

CAO are stateful as compared to SAO. In CAO the creation request is sent from client side. Client holds a proxy to the server object created on server.
Explain the Basic of SAO architecture of Remoting?
It has atleast three sections

Common Interface which will be shared between them.
What are the situations you will use singleton architecture in remoting?
If all remoting clients have to share the same data singleton architecture will be used.
What are the ways in which client can create object on server in CAO model?
There are two ways by which you can create Client objects on remoting server:

By Keyword "New".
Are CAO stateful in nature?
Yes. In CAO remoting model client creates a instance on server and instance variable set by client on server can be retrieved again with correct value.
Is it a good design practice to distribute the implementation to Remoting Client?
It's never advisable to distribute complete implementation at client, due to following reasons:

Any one can use ILDASM and decrypt your logic.
It is a bad architecture move to have full implementation as client side as any changes in implementation on server side you have to redistribute it again.
so the best way is to have a interface or SOAPSUDS generated meta-data DLL at client side rather than having full implementation.
What are LeaseTime, SponsorshipTime, RenewonCallTime and LeaseManagerPollTime?
In normal .NET environment objects lifetime is managed by garbage collector. But in remoting environment remote clients can access objects which are out of control of garbage collector. Garbage collector boundary is limited to a single PC on which framework is running; any remote client across physical PC is out of control of GC (Garbage Collector).

This constraint of garbage collector leads to a new way of handling lifetime for remoting objects, by using concept called as "LeaseTime". Every server side object is assigned by default a "LeaseTime" of five minutes. This leasetime is decreased at certain intervals. Again for every method call a default of two minutes is assigned. When i say method call means every call made from client. This is called as "RenewalOnCallTime".

Lets put the whole thing in equation to make the concept more clear.
Total Remoting object life time = LeaseTime + (Number of method calls) * (Renewalime).
If we take NumberOfMethodCalls as one.
Then default remote object Life Time = 5 + (1) * 2 = 10 minutes

When total object lifetime is reduced to zero, it queries the sponsor that should the object be destroyed. Sponsor is an object which decides should object Lifetime be renewed. So it queries any registered sponsors with the object, if does not find any then the object is marked for garbage collection. After this garbage collection has whole control on the object lifetime. If we do not foresee how long a object will be needed specify the "SponsorShipTimeOut" value. SponsorShipTimeOut is time unit a call to a sponsor is timed out.
"LeaseManagerPollTime" defines the time the sponsor has to return a lease time extension.

Post Interview Questions

Home  |  About Us  |  Post Walk-in for FREE  |  Policies  |  Contact Us  |  Advertise
Copyright © 2013 WalkinsIndia.com.   All Rights Reserved.