A Service-Oriented Archicture is one where rather than having one large, enterprise application, the business requirements are divided up into finer grained services. These services are loosely coupled and communicate by sending messages to one another, usually over a network. This is often done over the web, via web services (as defined by IBM or Microsoft), or in the lighter form of REST (Representation State Transfer).