The hybrid approach
Under these circumstances, we might choose a combination of both tech-
niques: synchronization of schedules and multiple interfaces. We block
together a number of changes, and then deal with the complexities of support-
ing a small number of back-level interfaces. This approach gives us some of the
best, and lots of the worst, of both techniques. The pace of improvement is
limited by the need to aggregate and coordinate changes, and the approach
requires supporting back-level interfaces or even custom combinations of old
and new interfaces. Many companies that have used these technologies to
carry out e-commerce deal with the same issues after decades of struggle.
Making such a cumbersome process work is not easy, and many an IT depart-
ment has collapsed under the weight of managing interfaces across organiza-
tions. Fortunately, help is on the horizon.
Another problem with the communication area is early binding. Clients must
decide at an early stage who will be providing the service, and service
providers must find their clients in traditional ways. We make these producer-
consumer business decisions and hardwire our information systems to the
proposed solution. We are then bound to those decisions, whether or not
business conditions change or we face significant consequences.
Solution 1: Decouple with XML messages
Returning to our management analogy, good managers delegate by describing
a task , and not the way the task should be completed. This is the XML
approach: We describe the task in an XML schema and give the description to
both the client and the server. That way, both ends of the transaction have a
degree of freedom. Specification in a neutral, flexible language like XML does
not dictate the actual byte structure of the data block that serves as our new
communication area. Instead, it lends structure and meaning to the data so
that we can make more intelligent processing decisions. XML can help us in
XML lets us deal with tangible business objects with deeply nested rela-
tionships, instead of a disorganized collection of parameters. This
increased organization helps servers understand how to process data,
and gives additional clues to which data sets are valid and which are not.
Clients and servers both have a better description of the interface, along
with a wider array of deployment choices.