views:

97

answers:

5

I'm working with an older set of developers who "enjoy" interop at the database level and I'm trying to put together a solid list of "guidelines" for my team so they know "when to use a web service"

Other than "when you want 2+ systems to inter operate" - what would you list here?

+5  A: 
  • Access to the data needs to extend beyond this organization.
  • Access needs to be available to developers working in many languages.
  • The underlying implementation (i.e. language used to work with the data internally or storage of the data) will change over time, but the data itself and how it is presented will stay consistent for many apps which need to use it.
John Munsch
+1  A: 

Web Services are best used when you want to expose a standard common interface for interacting with an application across multiple client applications and disperate networks.

Justin Niessner
+2  A: 

Use web services:

  • to provide interop between languages (Java, C#, etc.) (1)

  • to provide an interface into your stuff to your customers / the general public (and don't know what they'll be using)

  • to provide controlled access to RPCs or data across the internet

(1) The irony is that java and C# SOAP web services take nearly every opportunity to be incompatible with each other.

Seth
Even if true, SOAP is hardly your only choice for web services. Go with XML-RPC, JSON-RPC, a REST based architecture or something else you feel is more trustworthy.Hopefully for the apps which deal with your data you can isolate and abstract out the data access into its own layer and classes to keep it from being too painful for the real logic of the program.
John Munsch
SOAP is certainly not the only choice, just a common one that suffers from specification overload and implementation bugs.
Seth
+1  A: 
  • when you expect the database logical (or physical) struture to change (but not of course the model for that may impact the Webservices API, of course)
  • [more generally] when you wish to insulate the "consumers" of data from database details
mjv
+2  A: 

In addition to all the above I've found web service contracts brilliant for abstracting away from database schemas towards more of a "canonical data model" view of a business.

This helps business users, business analysts and developers agree on common vocabularies and concepts which can then be modelled in message contracts.

Joe Field