Service oriented architecture (SOA) is the software programming model that creates business services as software modules for companies. This approach to software development requires a strong governance process. SOA governance defines the standards and controls, which manage how a company will use services. This typically includes the rules on volume, access permissions, and ownership rights to each service exposed by the company.
SOA governance starts with a basic inventory of the existing services available in the enterprise. This inventory is an opportunity to define the usage and expectations for each service available. Once the inventory is complete, it should be placed into a services catalog, which will be a dictionary of the company's services.
One of the drawbacks to SOA is the missed opportunity for reuse of existing services. By having a governing board manage system changes, a company is more likely to use existing services. This committee can review the services catalog. This can save valuable time and effort, which can save considerable money for a company.
One of the key components to managing SOA is controlling demand and performance requirements of the available services. This is typically done through service level agreements, which are contracts between the consumer and owners of the services. The service agreements are managed by the SOA governance board, which has the responsibility of managing access and performance requirements for each service.
Collaboration and open communication is one of the fundamental objectives of SOA governance. If an organization plans to reuse services they must be openly shared and communicated to the company business units. This can only be accomplished with a proper governance community that has public meetings designed to openly expose the services.
The SOA governance model should include basic processes and artifacts that define how the governance body will be managed. This defines how changes and enhancement requests will be managed by enterprise. It should include basic roles and responsibilities for business units including goals and performance expectations for each of the available services.
Change control is the process of managing system changes for an organization. The SOA governance committee should be integrated into the system change control process of the company. This will enable the governing board the opportunity to determine needs and provide direction to system changes for the organization.
The governance committee should plan to meet on a periodic basis. This will help to ensure that enterprise services continue to grow. Most SOA governance groups meet on a monthly or quarterly basis.