Ok let's think about it , Microsoft is a software company which provides a huge set of products to solve various business problems, each product is complete by itself but can also be used in conjunction with other products in a loosely coupled manner. (e.g. Biztalk Server and WCF) . 

 To solve business problems we can either use a specific Microsoft product “as a whole" or can combine them with other products to provide the solution for the problem.

Now to the original definition:

“The logic required to solve a large problem can be better constructed, carried out and managed if it is decomposed into a collection of smaller related pieces. Each of these pieces address a concern or specific part of the problem".


Large problem





Smaller Units

Individual Solution





Document Repository



Commerce Server


ASP.NET, Silverlight

Content Management



The nice thing that we see here is that we provide  services (in the form of products) to solve multiple business problems (like MOSS) and also provide multiple  services to solve a particular scenario (like UI) also each of the products can be used in conjunction with each other in a loosely coupled way provide the "complete" solution. Each product also adheres to a set of policies or rules defined by the architecture such as which protocol to be used (TCP, HTTP),  common identity framework (SSO).



Service oriented architecture (SOA) encourages individual units of logic  to exist autonomously yet not isolate (loosely coupled) from each other. Units of logic are still required to conform to a set of principles that allow them to evolve independently while still maintaining a sufficient amount of commonality and standardization.