April 5, 2011, 4:04 p.m.
posted by yetanothergeek
What is the difference between a web service and an enterprise service?
A web service is just a standardized interface to a service's functionality. It contains instructions written in WSDL describing how that service is going to be called. And that's all.
An enterprise service is a web service designed as a reusable component in process automation. It exists within the larger context of ESA, and it contains metadata about its functionality and about how it connects to other services. Web services contain much of the same functionality as enterprise servicesusually at a more granular level than is useful for process orchestrationbut the soul of an enterprise service is that it's there to help you, and it contains enough functionality to make a meaningful difference in processes. Enterprise services are large enough that combining and recombining them is a fairly easy task. In practice, as demonstrated in Figure, an enterprise service, when called, will execute any number of instructions across any number of underlying applications. A web service will call only the application to which it is related. Therefore, in Figure, clicking "delete order" in a menu might simply delete the order from an ERP system if one were to use a web service to do so.
The question then becomes, does this act help the larger business process of cancelling an order? The larger scope of that process includes many actions beyond deleting a record in the ERP system. There might also be a CRM system handling the sales aspect, an SCM system containing its own order objects, and so on. Therefore, the business process of cancelling an order contains many steps: revising the supply chain plan, flagging the material in stock, notifying the customer that his order has indeed been cancelled, and so on.
Whereas a web service simply deletes the record, an enterprise service is able to orchestrate the larger process of cancelling an order by sending individual messages to each of its systems, and most likely many more.
Web services versus enterprise services
Setting all of these apart from garden-variety web services is the fact that enterprise services have been created within a business context, process their own semantic meaning, and are built to be reusable, configurable components that aid in the flexible automation of a greater process.