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