In this session we discussed Service Orientation and Service Oriented Architecture. We started out by noting that, as Don Box puts is, object-orientation can get "expensive". and Component-based development can definately help with with certain problems in this area. We also saw how COM really was a component object model and how DCOM is "COM on the wire". Furthermore we noted that we work with COM with interfaces. An interface being the public view of what the COM object provides consisting of a a series of names for the the methods, what goes in to those methods, and what comes back from those methods. We also noted that the interface is at the heart of service orientation.
Next we discussed how COM+ and MSMQ can dramatically add value to your enterprise level application. COM+, otherwise known as Component Services, provides services such as transational support, object pooling, and queued components, which leads to the very powerful concept of MSMQ. We saw how MSMQ is a "send and forget" messaging system that allows you to asynchronously send messages and have them process at a later time followed a queueing model. This leads up to the next concept at the heart of service orientation: messaging.
Technologies based upon service-oriented principles are based upon the concept of a message, while technologies based upon remote procedure calls are more "coupled" with the caller. Even if not physically, there is a logical connection in the design. The message is one of the deepest fundamentals of service orientation, so much so that Don Box defines service orientation as "Message is the medium".
In addition to messaging assisting in prodiving a model with very low logical coupling, services are also said to have low coupling from their stand alone nature. That is, services are said to be autonomous or sovereign. This means that you don't have then "in" your application but as "part of" your architectural design. They are their own entity and aren't owned by another technology per se.
This led up to bring up the modern hot topic of service orientation: web service. Web services are services that reside on the web, expose an interface, and are communicated with via messages. Given this description it's not hard to see how web services are service oriented. The messages in web services are actually XML messages in a format known as SOAP or as it's sometimes called the XML Protocol, of which Don Box was a designer.
Web service interfaces are known as WSDL or Web Service Description Language documents. By obtaining a WSDL document an application has the information required to communicate with that web service, given appropriate rights, connections, and other principle resources.
We further noted that, in the .NET world, web services upgrade about 4x as fast as the .NET framework does. That is, you can think of Microsoft's web service implemenation as being at version 4, with version 5 due to release sometime in late 2006 or early 2007. The original Microsoft web service implementation is reffered to as ASMX. ASMX services provide basic web services appropriate for a wide range of interop. Subsequent versions of web services implement a host of web service standards often called the WS-* standards. These standards, among many other things, include the ability to add transational support and security to web services. The WS-* standards are just that, standards, and therefore have the theoretical ability to interop with consumers who understand the WS-* standards. Microsoft's implemenation of these standards as well as other web service enhancements is known as WSE or Web Service Enhancements. The current version is version 3 as released in November 2005 following the release of .NET 2.0.
Finally, we saw how WCF or Windows Communication Foundation was Microsoft's uniting of various communication technologies into one common programming model. Some of the technologies united in WCF include MSMQ, web services, and .NET remoting. Simply by understanding and implementing the WCF's ABC, a developer not under grasps the fundamentals of WCF, but can quickly and efficiently create very powerful services: A) set an address, B) set a binding, C) state the contact. In the demonstration we saw how, in WCF, IIS is no longer needed to host web services. By simply following the WCF's ABC, we were able to see a full web service hosted by a windows application. Given the uniting of many communication technologies, Windows Communication Foundation can therefore be thought of as Microsoft's service orientation foundation.