A key advantage of services is that they can be used as the basis for developing a service-oriented architecture (SOA). An SOA is an application development, deployment, and management infrastructure whereby the major functions of the application are delivered as services. Development occurs using service-based development tools, and deployment and management infrastructure is focused on deploying and managing business functions as services.
IT environments typically use services for two basic purposes:
To encapsulate business functionality that can be re-used to solve the same problem in more than one application context. An example of this might be a single calendar service that can be accessed by a strategic planning system, a project scheduling system, and an airline reservation system.
To allow the features of one application domain to be accessible and usable by another application domain—that is, to integrate multiple application domains into what is effectively a single system. A typical situation for this type of service involve two businesses, where one has acquired the other. In this situation, the service might allow inventory and accounting for the acquired business to be accessed and managed from the inventory and accounting systems of the business that has acquired it.
Thus those services that facilitate solutions to particular application problems, such as a calendar service, fall into the category of application services. Those services that address the problem of integrating separate applications into a larger application infrastructure, such as joining the accounting systems of two separate businesses, fall into the category of integration services. OpenEdge provides products and components that support both categories of service in the development of an SOA.