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”.
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.