Datasheet
Over time this publishing company becomes popular because it is hiring great authors and putting out
high-quality books, and it becomes apparent that this simple solution is not keeping up with the
demand and volume of orders. For example, maybe the current Order System can’t keep up with the
volume of orders coming in, and thus the Order Fulfillment system is having difficulty handling the
amount of orders being handed to it from the Order System.
Service-Oriented Architecture says that the current system can, and should, be flexible enough to allow
changes to the existing architecture without disrupting the current architecture and infrastructure cur-
rently in place. That is, each piece should be isolated enough that it can be replaced without disturbing
the flow and process of the rest of the system. It is the concept of designing the technology processes
within a business.
If the developers of the original systems in place were smart, they would have designed the architecture
to allow for such a “plug-and-play” type of environment, but at that time their decision was somewhat
difficult because of the technologies they had to choose from.
A Look Back
Through the years, developers have had a plethora of technology choices to choose from when it has
come to building distributed applications. Lately it has been ASP.NET and WSE (Web Service
Enhancements), used to build web services. These allow for the communication of information across
different platforms regardless of the client. In addition to these two technologies, the Framework pro-
vides .NET Remoting, which provides object communication no matter where the application compo-
nents reside. Yet even with Remoting you have pros and cons. Many times objects are created remotely,
whereas WCF deals with message transmissions natively. .NET Remoting works well in some dis-
tributed scenarios yet lacks the ability to be a primary application interface. For example, web services
can call Remoting components, but a remote object created outside of your network won’t work with
Remoting. Prior to that you had COM+ and Microsoft Message Queuing (MSMQ). MSMQ provided a
fast and reliable method of application communication through the process of sending and receiving
messages.
I remember not many years ago using MSMQ in a fairly large project because the guaranteed delivery of
information was critical, yet today I use ASP.NET web services almost religiously because of the many
benefits they offer (simplicity, diversity of environments, and so on).
These were, and still are, great technologies that provided great solutions to countless development
problems. Yet every time you as a developer had a distributed system problem to solve, you had to ask
yourself “which one of these technologies more easily and efficiently solves my problem?” The down-
side to each one of these is that your method of implementation will vary greatly based on your choice
of solution, especially if your solution uses more than one of these technologies.
Given this information, how would you as a developer tackle the responsibility of designing and archi-
tecting the book publisher systems given the definition of SOA as described earlier? ASP.NET web ser-
vices, WSE, and .NET Remoting have been out roughly five years; COM+ and MSMQ have been out a
lot longer.
5
Chapter 1: Windows Communication Foundation Overview
05_089842 ch01.qxp 3/5/07 7:02 PM Page 5