I've been working with web services/SOA for about a year now. I've been
trying to keep a watchful eye on the overall issues I've encountered and
how they effect SOA design; or an attempt at SOA design. One thing that has
become very apparent over the last year is that it seems that there is a
very difficult to manage line between service orientation and just plain
old (somewhat tight) itegration between business parteners that happen to
use web services as a messaging technology.

One of the issues that I've struggled with time and time again with any
actual requirements and a resulting design are the principles of service
autonomy and loose-coupling between service provider and consumer;
specifically how these issues relate to a scenario where a request is made
to service by a specific type of service consumer. For example, I often run
into situations where requirements dictate that the service needs to be
designed so that it has the capability to determine the "type" of consumer
that is making the service request because the request needs different
processing steps based on the "type" or consumer context. While there are
many ways to handle this requirement, this issue often results in a tighter
coupling between the service consumer and provider due to the fact that
both the consumer and provider must share this contextual knowledge so that
the provider can appropriately process the message.  It seems to me that
this violates some of the basic SOA principles. To make matters worse,
existing decentralized implementations that backend many web service
processing are based on unexposed/private, non-federated user identities or
domain specific support data. It is often that case that it's required that
services accept various private system identifers and identifier mappings
so that the service  provider can process a specific request in a way that
appropriately interacts with the consumer.

One might imagine that these kinds of issues could be remedied by exposing
addtional contextual information based services so that the consumer can
use them to discover provider specific information or that in some cases
the provider might be given the ability to internally determine this info
via something like content enricher processing but these implementations
also have their consumer/provider coupling and partener support data
synchronization issues.

Does anyone have any experience/opinions to share that shed some light on
how to best handle these issues? Am I just confusing SOA design/wishful
thinking that I might be able to implement an SOA given the circumstances
with what is really a just a systems integration in my real-world?

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to