Trends in e-business
It is clear that the network economy is currently driving the evolution of business. Businesses must respond to increasingly dynamic marketplaces. Within corporate departments, application integration has been a major issue in the last few years. Traditional architectures are brittle, and this brittleness is being exposed as the scale, demand level, transaction volume, and rate of change of transaction volume increases.
Interoperability, particularly between heterogeneous distributed systems components, has been one of the major themes in software engineering in general, and EAI in particular, for the last decade. It's unfortunate that the seamless interoperability vision is still a dream. Brittleness in all current architectures is preventing software from achieving this vision. Brittleness comes from tightly coupled systems that generate dependencies at every level in the system. One of the most important lessons we learned as developers and architects is that systems need to be able to find resources (software or otherwise) automatically, when and as needed, without human intervention. This ability frees business people to concentrate on their business and customers rather than worry about IT complexities. At the same time, it frees system developers to concentrate on enabling their business and their customers rather than deal with interoperability headaches by writing glue code and patching systems together. More than any technical consideration, this concept of implicit, seamless integration as a major business benefit is one of the main drivers for service orientation. In other words, the time has come for "just in time" integration!
Trends in application design are moving from rigid structures to flexible architectures. Trends in business partner interactions are moving from static agreements to more dynamic agreements. Trends in B2B integration are moving from technology-based integration to business process-based integration. There is a corresponding shift in programming and architecture models to enable these trends: from tightly coupled applications to loosely coupled services.
On the technical side, major shifts have occurred toward flexibility and interoperability, through open and widely accepted standards. The first major shift happened two decades ago with the advent of TCP/IP as an open platform for networking. This step enabled such important and pervasive architectures as client-server computing. It took the advent of the World Wide Web for the next major shift, with HTML and HTTP providing the first truly universal open and portable user interface. Next, Java gave us truly open portable programming, and finally XML brought with it open portable data exchange. The next step in this evolution of open standards is the integration step. How do all these ingredients come together to facilitate the next evolution of e-business? Web services.
One aspect of more loosely coupled systems is reflected in the move from Remote Procedure Call (RPC) interfaces towards a messaging or document-centric model of distributed computing interface. With a document-centric approach, the interface to the Web service becomes much more simple and flexible. An RPC interface presenting a fixed set of parameters in a fixed order is quite brittle. Small changes to information required—for example, a new requirement for an expiration date on a credit card—require a new interface to be created, published, and understood by the service requestor. With a document-centric approach, the new information can be added to the document schema defined in the Web service interface. Programs that use the older schema don't necessarily break when the new XML element is added (this is a property of XML namespaces that you will see in Chapter 2, "XML Primer"). This approach yields Web services interfaces that are much more flexible, resulting in systems that are much more adaptive.