[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ajug-members]: SOA Service Definition



Brian Lee wrote:

> Does anyone out there have a good definition for "Service" as in 
> Service-Oriented Architecture? Preferably with good examples of 
> interface and implementation.

and also:

> yeah yeah, I've read all the blarg out there on SOA. I would like to 
> find out the industry accepted definition of service. Does a service 
> address a particular business function (like user management) and then 
> provide operations (like createUser, modifyUser, moveUser, etc) or are 
> the methods themselves the services?
>
> My organization already has a definition of service, I'm trying to 
> find out if it meshes with industry accepted jargon. 


"Service Oriented Architecture" doesn't have a firm definition yet, so 
defining the "Service" part of it is a bit of a challenge as well.  The 
main push of it is that you are exposing parts of your business in an 
interoperable, decoupled way - in this respect, SOA is just another way 
of rebranding existing technologies.  Others would suggest that this 
about changing the way you think about your systems architecture.  No 
particular implementation or delineation of services is specified.

In general, I would suggest that only components that are exposed to 
external users or shared between systems be designed with a full SOA 
approach.  Unnecessary interoperability of your intermediate layers can 
crush performance (like if your persistence layer returned all data in 
XML).  In reality, SOA tends to boil down to exposing some busines 
service via SOAP (Simple Object Access Protocol - XML over HTTP - no 
direct relationship to SOA).  SOAP provides the interoperability.  The 
decoupling still is dependent on your design.

I would characterize Amazon's Web Services 
(http://www.amazon.com/gp/browse.html/002-9073876-9772825?node=3435361) 
as a frontrunning example of SOA.  They have designed some of their core 
system services (listing and searching items, viewing products, etc) in 
such a way that the core business logic can be used by both their web 
site and through Web Services.  You can register with them to get full 
access to their development kit, and they also link to some example 
applications.

You ask for an "industry accepted definition", but the problem is that 
SOA is really a marketing term more than a specific set of guidelines.  
The general guidelines are that it is decoupled and interoperable.  
Things like granularity of the services and exact definitions of 
underlying terms aren't defined, and will probably never be fully agreed 
upon.  The Middleware Company recently released a set of "Best 
Practices" for SOA that may help: 
http://www.middlewareresearch.com/soa-blueprints.  But recognize that 
they were developed in conjunction with BEA, who is marketing the fool 
out of the _idea_ of SOA, pretending that it is a problem that is solved 
by a product.  In reality, it's the combination of good design practices 
with existing technology.  In practice, it's largely a second push for 
Web Services adoption.

-Rob