Re: When Is Something Really SOA?
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 stateless. 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 multiple executables. -- Ron 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? > > Joe > > > Joseph Chiusano > > Booz Allen Hamilton > > Visit us online@ http://www.boozallen.com > >
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format