I'm trying something a little new I“m working on this while I ride in the carpool...
An SOA is by definition an architecture which associates business functions with services. The idea is that the implementation details are immaterial. It's not that dissimilar from the old COM based interface definitions. Each service has a defined interface which indicates what data is required to carry out some task, and what data is returned. This type of architecture has several benefits the first is that whole - the underlying implementation does not matter statement. This is critical in that you can develop a service component on .NET 1.1 and have it interfaced to an application build using .NET 2.0 without any changes to your service. Similarlly you can reference logic that is implemented on other platforms, in other locations, and just about every other benefit we have all associated with XML Web Services.
So why do I say some people still just don't get it. Well I and some other folks at my company are working at a client. Let me stress up front that what I'm about to complain about doesn't involve something proposed by this client in a vacuum. But at this client, they said they would use a Service Oriented architecture. This architecture will 'host' all of the services in a Main Windows frame that every project will then use to gain access to the various services and which will encapsulate all of the calls to these services where possible.
This should sound all sorts of alarms when you think about a Service Oriented Architecture. In fact I would go so far as to say this is NOT a service oriented architecture. After all that main window framework (which includes a status bar, tool bar and menu) does not allow you application to gain any of the benefits of the SOA architecture. To illustrate we hit a problem today where the application requirements call for a dockable toolbar - but the framework implementor using .NET 2.0 didn't think that was necessary so the framework toolbar isn't dockable - I know a daily WTF design candidate - but more importantly it illustrates the problem. This architecture doesn't abstract the services it ties each application to a specific implementation model.
So why are they doing this... well lets save that for another blog... suffice it to say that the reasons may not justify their proposed custom architecture.