This document provides an introduction to service oriented architecture (SOA). It discusses the evolution from procedural programming to object oriented programming to service oriented programming. In service oriented programming, services are well-defined, self-contained functions that communicate with each other via standard message formats. SOA is an architecture style that builds applications using services. The basic principles of SOA include being technology neutral, stateless, standardized, loosely coupled, reusable, consumable, abstracted, published, and having a formal contract.