I think your right. In my current assignment (web development), every single access to the database is implemented as a service. We are "PURE SOA", as the lead architect said... Wow !
In facts, this adds a lot of complexity to everything. When I want to read the content of a simple table, I must generate something like 8 projects, 42 files, 8 assemblies and probably 9 config files !
A lot of complexity as I said. Chances are someone somewhere will forget one file... Exposing simple process as a service is stupid.
In my books, you should expose your processes as a service when :
- Many applications using different languages and frameworks have to call your stuff.
- There are more than one platforms involved (Windows, Unix...).
- The data being handled are the core of the enterprise.
Also, notice that a service must be DESIGNED to be a service, and that designing a service is at least as complex as designing a library : error trapping must be carefully crafted, logging must be flexible enough, documentation must be complete, etc.
Well, as I can see, most of the services I use daily will not be used by other people : no documentation, poor error handling, code subject to frequent changes, second zone data...
Well, very interesting question. 1 point :o)