In enterprise computing environments, the functionality of application systems can be described and provided by services. Figure 2.22 visualizes a serviceenabled application system. The functionality of the application system is provided through services, depicted by semicircles on top of the application system. Services need to be specified in a way that the specification of services is decoupled from their implementation. Detailed specification of services facilitates
the flexible configuration of services by composing services to achieve
In an existing application built with several services provided by different
business partners, the partners can modify the realization of their services, as
long as the service specification does not change. Based on the service specification,
an improved service implementation can be integrated seamlessly in
a service-based application. New potential business partners can use publicly
available service specifications to offer their own implementations of the services.
As a result, individual parts of a complex service-based application can
be exchanged without redesigning the application.
Service orientation is also one of the main influencing factors for enterprise
application integration. Enterprise services architecture characterizes the development
of added-value applications that take advantage of existing functionality
provided through standardized interfaces.
Enterprise services architecture is based on the understanding that complex
applications will be increasingly built on top of existing functionality.
This functionality is provided by legacy systems, which are an important asset
of companies. Making this functionality reusable is a challenging task. The
idea is to encapsulate the functionality of existing software systems in a service,
realizing enterprise services. Enterprise services can be used to realize
enterprise application integration scenarios.
As pointed out by Woods, there are a number of business drivers that
foster the development of enterprise services. The main driver is change: the
ability to change the enterprise application system infrastructure is a competitive
advantage for an enterprise. There are a number of current trends that
motivate the development of enterprise services:
• Rise in the power of the customer: Value-added services are essential, because
customers can change suppliers easily, without much effort. Positive
user experience is important, as the success of online auctioning sites and
online shops with community building indicates.
• Systems transparency: The Internet has brought customers and suppliers
inside a company’s IT infrastructure. Weak or missing integration of enterprise
application systems will be immediately exposed to the customer.
• Rise in computer mediated interaction with customers and suppliers: Companies
differentiate themselves on their service to their customers. Dan
Woods indicates that “Outsiders can now peer into the glass house of the
data centre and see if it is a mess.” An example of a messy situation is
one where a customer cannot be serviced well, because the client interface
provides information only about one aspect of the customer, and the
other aspects are hidden in application systems that are not accessible.
Due to lack of integration, this valuable information is not available, so
the customer does not feel well cared for.
• Products as services: Corporations are increasingly perceived by the set
of services they provide. These services exposed to the market can be
realized by enterprise services, which provided by the back end application
systems of the enterprise. But also services provided by third parties can
be integrated, so that better applications and end user services can be
provided to the customer.
• Multi-tier applications: There is also a trend towards multi-tier applications,
where each tier is provided by a different enterprise. This means that
the tier 1 company provides value-added services directly to a customer,
using the tier 2 services from a set of business partner companies. These
companies might use tier 3 services provided by other companies. By flexible
integration based on the service paradigm, many new applications and
services can be realized.
Composite Service-Based Applications
With this background in enterprise services architectures, an intra-company scenario is sketched, where new applications should be built on top of an existing customer relationship management system, a supply chain management system, and an enterprise resource planning system. These systems expose enterprise services via standardized interfaces. The applications built on top are known as composite applications, as shown in Figure 2.23. Composite applications invoke enterprise services that provide the functionality of the underlying back-end systems. User interaction is realized by dedicated graphical user interfaces that sit on top of composite applications. Technological advance has paved the way for enterprise services. The main cornerstones of these developments are the full suites of enterprise applications that are available off-the-shelf today. There are rich middleware and enterprise application integration products that can be used for technical integration, most of which host a dedicated workflow component for process enactment. To integrate multiple application systems, data transformation is essential. With the advent of the extensible markup language (XML), there is an industry standard for data and message format specifications. While this base technology is in place, the integration logic still needs to be defined and
implemented in each integration project.
Processes are a key factor in realizing composite applications, because they provide a link from high-level business processes to the information technology layer. The structure of composite applications can in many cases be expressed as a business process. The activities of these processes are implemented by invoking enterprise services. Additional execution constraints like conditional execution can be represented by business process models; these can be realized by process orchestrations. Enterprise services can also be used to realize business interactions of multiple enterprises. In multi-tier scenarios for realizing innovative applications, interactions between the software systems of the business partners involved are required. These interactions are governed by a process choreography. Process choreographies have been defined informally above; they are subject of further investigation in Chapter 5. While the vision for enterprise services includes business-to-business processes, most enterprise services today are used in an intra-company setting, where the goal is to develop composite applications on top of well-specified business functionality represented by enterprise services.