It is quite difficult to think in terms of services. Though services are implemented with the help of Object oriented languages We should always remember some basic points while designing the services.

Object Orientation:

  • Assume homogeneous platform and execution environment
  • Share classes, not schemas
  • Assume cheap, transparent communication
  • Are linked: Object identity and lifetime maintained by infrastructure
  • Typically require deployment of both client and server in sync
  • Are easy to talk about and become a natural path for customers to follow
  • Customers have 20+ years of experience and great intuition about what “object oriented is”

Service Orientation:

  • Assume heterogeneous platform and execution environment
  • Share schemas, not classes
  • Assume variable cost, explicit communication
  • Are autonomous: Security and failure isolation are a must
  • Ease “continuous deployment” of client and server separately
  • Builds on ideas from component software, distributed objects, and MOM
  • Dominant theme is to manage/reduce sharing between services

I hope my services saga continues with this post Smile