Lists Home |
Date Index |
I think the point in the continuum is crossed when the data starts
floating about in the ether, rather than residing in stateful services.
To explain what I mean, I'm going to have to answer the question, "What
is an SOA?"
I always figured that an SOA was one which effectively inverted
object-orientation. That is, instead of the cohabitation of data and
methods (services) found in OOP, data is passed to methods that are
logically separate. Think of it as structured programming without any
globals, so all relevant data must be passed to each function. A side
effect of this is that all methods other than the initiating method are
Of course, real-world SOAs undoubtedly contain stateful services, but
two stateful services that are communicating with each other does not
create an SOA, whereas one stateful service communicating with a
stateless service might reasonably constitute an SOA.
Note also that the term SOA is applied only when the services reside in
separate address spaces, but the concepts (if not the performance) are
the same whether an application is a single executable or spread across
Chiusano Joseph wrote:
> Here is a question has been on my mind for quite some time - I have some strong viewpoints on it, but would like to hear other viewpoints.
> The general question is: When is something really a service-oriented architecture (SOA)?
> By this I do not mean "what is an SOA", "what characteristics does an SOA have", etc. Rather, there seems to be a range of points on a continuum (call it the "service continuum", perhaps) at which someone may declare that they have implemented a service-oriented architecture.
> In the past, I have pondered the following more specific question (please note that this is all scoped to Web Services-based SOA for ease of explanation):
> If I have 2 Web Services that communicate, do I have an SOA?
> We can say "certainly not!". One can do point-to-point integration with Web Services just as easily (to a certain degree) as without, with redundant Web Services rather than shared Web Services (a violation of one of the foundational tenets of SOA, which is shared services).
> Now let's add some more characteristics:
> - The 2 Web Services share another Web Service in common for their processing (i.e. we now have a "shared services" scenario)
> - The service provider one or more policies for a service consumer that interacts with it (these policies may address security, QoS, etc.)
> - There is an electronic contract for interaction with the service provider (e.g. WSDL)
> Add to this the fact that many (correctly, IMO) consider SOA to be a form of Enterprise Architecture, which (at least in my mind) implies enterprise-level benefits.
> So the more specific question is:
> Given the second scenario above (with the various added characteristics) and the fact that many consider SOA to be a form of EA ---
> Is this second scenario large-scale enough that it *really* may be considered SOA? IOW, how large-scale does such an implementation need to be to *truly* be considered service-oriented architecture? When does one arrive at that point?
> Joseph Chiusano
> Booz Allen Hamilton
> Visit us online@ http://www.boozallen.com