I've never been a fan of remote object invocations using binary protocols such as Distributed COM (DCOM), RMI, or Common Object Request Broker Architecture (CORBA) Internet Inter-ORB Protocol (IIOP). Fast-paced environments leave little time to plan and develop applications that rely on remote objects. You must design tightly coupled interfaces well in advance to ensure success, and if you were one of the religious, you would refuse to use anything from Microsoft and stick to RMI or CORBA. The headaches of using these protocols to deploy applications in production environments are enormous; the number of holes you need to poke in firewalls is intolerable. I've seen projects suffer incredible delays because the developers used DCOM in their solution but had no concept either of their production network topology or their network administrators' stubbornness. A solution to these problems is the Simple Object Access Protocol (SOAP). In the same way that XML has transformed data into loosely coupled, self-describing chunks of information, SOAP can expose your applications, or Web services, as loosely coupled chunks of functionality.
SOAP extends HTTP to accommodate remote Web service invocation. The protocol defines a mechanism for passing commands and parameters between HTTP clients and servers, which lets you request action on port 80 from a Web service on another Web server across the world. SOAP also lets others access your Web services on your Web server's port 80. You can use any programming language on any OS, so forget about the DCOM vs. CORBA holy wars—the choice to use SOAP is easy to make.
I'm a huge fan of loosely coupled systems. Instead of creating a large application reusing some low-level components from one of your software libraries, imagine creating a suite of Web services that you can bring together to perform the same function. You can grow a host of Web services that you can group together in different ways to create new applications. Every time you need to create new software because your existing Web services don't accommodate new functionality, you add more Web services to your library. Wait a minute—this sounds a little like Web object-oriented programming (OOP).
What's next? In the future, expect a monthly bill from Web Service Providers (WSPs) around the world for use of their Web services. Check out the MSDN Online Web Workshop for in-depth information about SOAP.