Chapter 1
Understanding Distributed Application Development
Distributed application technologies such as DCOM, Java RMI, and CORBA have evolved over many years to keep up with the constantly increasing requirements of the enterprise. In today s environment, a distributed application technology should be efficient, be extensible, support transactions, interoperate with different technologies, be highly configurable, work over the Internet, and more. But not all applications are large enough in scope to require all this support. To support smaller systems, a distributed application technology needs to provide common default behavior and be simple to configure so that distributing these systems is as easy as possible. It might seem impossible for a single remoting technology to meet this entire list of requirements. In fact, most of today s distributed application technologies began with a more modest list of requirements and then acquired support for other requirements over many years.
Every so often, it s better to wipe the slate clean and start over. This was the approach taken with the design of .NET Remoting. .NET Remoting provides a cohesive object model with extensibility hooks to support the kinds of systems developers have built until now by using DCOM. The designers of .NET Remoting had the advantage of taking into account the recent technology requirements that were initially unknown to DCOM s designers.
Although this chapter is not intended to help you decide which distributed application technology to use, .NET Remoting offers clear advantages. .NET Remoting is probably the best choice if you re doing all new development in .NET and you implement both client and server by using the .NET Framework. On the other hand, if your existing distributed application is implemented with a non-.NET remoting technology, the .NET Framework provides an unprecedented level of interoperability with legacy technologies:
If your existing system is COM/DCOM, the .NET Framework s .NET-to-COM interoperability layer is full-featured and easy to use. This layer allows flexible, incremental migration to .NET Remoting over time.
If your existing system is based on a non-Microsoft distributed technology such as Java Remote Method Invocation (RMI) or Common Object Request Broker Architecture (CORBA), there s still good news. .NET Remoting s support for open standards such as XML and Simple Object Access Protocol (SOAP) makes it possible to communicate with multivendor, multiplatform environments as these open standards are adopted by other vendors At present, a number of Java-based SOAP toolkits are available. Although CORBA s SOAP support is lagging, the Object Management Group (OMG) is currently working on an official CORBA/SOAP standard.