This document discusses service oriented architectures (SOAs). SOAs are decoupled and modular architectures that break down systems into services that can be independently developed and deployed. SOAs aim to increase flexibility, reuse, and loose coupling between services. Common protocols for implementing SOAs include SOAP, REST, and XML-RPC. SOAs are best suited for systems with high complexity and many decentralized decisions. They allow for greater extensibility, platform independence, and contract-based development compared to traditional monolithic architectures. Key challenges in implementing SOAs include service explosion, governance, and complexity in managing contracts and interoperability across services.