Core SOA Principles

Service-oriented architecture (SOA) principles provide critical guidance for the design and development of services and the service interface. These core principles include loose coupling, interoperability, reusability, discoverability, and governance. Loose coupling helps to mitigate the impact of service changes to consumers. Interoperability helps to ensure that consumers of almost any technology can use services. Reusability optimizes the design and development process and helps to avoid new development costs. Discoverability supports reusability and requires that services be published in a manner that allows them to be easily found for later reuse. An SOA implementation that is guided by these principles can exploit a number of advantages and benefits. Examples of these advantages can include mitigation of impact from change, cost avoidance for new development as the result of reuse, and an ability to exploit the prior investment in legacy technology assets. SOA principles also serve as a foundation for SOA governance. SOA governance should consider three different lifecycle states or views: design-time, bind-time, and run-time. Design-time governance can include industry guidance as well as internal principles, patterns, and best practices. Bind-time governance is largely mechanical and helps to reserve the separation of environment boundaries of development, test, and production. Runtime governance ensures that appropriate actions are taken.