BAD P!

At the PDC I presented an acronym (BAD P) that can help you folks (and myself ;-) remember the 4 tenets of service orientation. Some folks asked me to publish it on my blog, so here goes.

  • B stands for Boundaries. A service has an explicit boundary and it published a "guide" (typically in the form of a WSDL) on how to traverse this boundary. The only thing that traverses this boundary is Data (see below), and there is no muddling of client and service implementation (i.e. the client makes no assumptions on how the service is implemented).
  • A stands for Autonomy. Services are autonomous and get deployed, versioned, serviced, and upgraded independently of other services in the system or the clients.
  • D stands for Data. Client and services share data, not implementation. The data comprises of the Schema (how data is to be represented when talking to the service and how the service represents data back to the caller) and Contract (the operations that the service supports). This information is typically conveyed to the caller in the form of a WSDL.
  • P stands for Policy. The service publishes a policy (typically as part of the WSDL) that tells clients how to talk to it (what security mechanism to use, whether to use reliable messaging or not, whether to flow transactions or not, etc.)

That's it. Pretty simple, no?