Friday, October 07, 2005

Service-oriented architecture

If you want to abstract from Microsoft propaganda, here is what I think SOA means:
  • It is orthogonal to Object-Oriented technology. You can write SOA apps using procedural languages and structural programming.
  • It is orthogonal to XML. You can use XML and Web Services but not have SOA. Or you can have a very good SOA without any XML.
Two examples to confirm my points are COM+ and BitTorrent. They are probably the best SOA applications, however they are not build on XML and Web Services (though new version of COM+ supports SOAP).

  1. COM+. Have you ever tried to configure firewall for COM+ app? You probably know that the client machines start acting as servers if they are in charge of coordinating transactions. This is the main feature of SOA: blurring distinction between client and server. Client becomes server, server becomes client. Or if you want, you don't have clients and servers anymore, you have services.
  2. BitTorrent: this is probably the best SOA app: every client machine must become a server, all computers are working in collaboration for one goal: downloading the files. No server or client - only services.

No comments: