In this articlen I discuss distributed architecture and how .NET fits into it.
Before discussing distributed architecture, it is worth looking at the past. In doing so, you can see that building distributed systems is not a very old issue and various technologies have been provided by different vendors to achieve the goals. This includes technologies such as DCOM, Corba, and more.
In the past, many systems were implemented using these older technologies, and many more are still being implementing with them. Each of these technologies have their own advantages and disadvantages.
These older technologies (DCOM/CORBA) provide specific soltions with great limitations. They can also be difficult to implement. Moreover, each of these had their own place.
Now, let’s dig into the .NET world…
With .NET, Microsoft performs similar tasks to what the older technologoies provided. It does this with remoting, Web services, and COM+. COM+ was previously available, as were Web services. With .NET, however, Web services are now easier to develop and implement. .NET provides easier ways to develop and implement Web services!
Remoting is the new term, while COM+ has been around. You can use these technologies similarly to previous DCOM components.
Even though remoting, COM+, and Web Services are different technologies, they still can be seamlessly integrated with each other. Before getting into this integration, first you should know when to use each of these three services.
- Remoting: Operates inside the firewall, usually within an enterprise. It is generally faster then Web services. This speed is due to its binary transfer protocols. Its transportation mode is TCP (recommended) although HTTP is also supported. Remoting services cannot cross a firewall; however, they can use SOAP and HTTP to achieve this goal. Performance is not optimized when using SOAP in this way; thus, Web services are a better bet for this.
You have to write an application for hosting the remote service because it does not ship with any default hosting services. Also, you have to provide your own security features, although you can host it in IIS to take the advantage of IIS secutity. The other hosting options might be Windows services (this helps in hosting the remote obejct with the OS security defined for Windows services and also you can schedule it).
- Web Services: Web services are not a new tool but .NET gives them the necessary platform to achieve popularity among developers. The characteristics of Web services are HTTP channels with SOAP messaging of XML-formatted data. Because it uses SOAP and XML, it can easily cross firewalls and is the platform-independent way to get to a service. Web services are slower than remoting due to the SOAP syntax and text transfer protocols. There is no requirement for hosting Web services because they are automatically hosted by IIS.
You should keep in mind that Web services is schema based, whereas .NET remoting is object based.
- COM+: COM+ is all about providing services to the business components. It may be transactions, JITing, pooling, security, or something else. You can use COM+ to distribute your component to different locations and manage the componets at a centralized sever
This link again provides you some insight into the topic: http://www.microsoft.com/mspress/books/sampchap/6723.asp.