I think most of ideas like encapsulation and abstraction obviously derived from same principles as object orientation. Object-oriented analysis and design was responsible for building stream lined applications comprised of reusable, flexible software. OO design aspire to fulfill the business reqmt throughout the lifespan of an application including post-deployment upgrades and extensions. While Service oriented design establishes a flexible design framework that allows for the agile accommodation of ever changing business requirement.
One of the reason why I believe they closely resemble one another is because fundamental concepts governing looks somewhat similar. Lets look at couple of them. Classes and Objects: In OO a runtime instance of class is an object and in SOA runtime a service can create run time instance of itself. Class can be comparable to a technical service contract in service orientation.But the big difference is that class can define a combination of public/private access while service expresses only public information. Due to this a service contract can be seen as close resemblance to a interface implemented by a class. Methods and Attributes: OO design describes classes with methods and atributes which can be eiher private or public. But in service orientation if a method is defined as private then it can be used by external entitities, or consumers. For this reason a web service contract cannot define private operations(methods). Due to emphasis on statelessness service contracts are discouraged from defining attributes. Now lets look at what they have in common, Service re-usability:Much of OO si geared toward creation of re-usable classes and OO promotes such reusability like SOA.
service abstraction: Both OO and SOA closely resembles one another while using abstraction principles. In OO abstraction requires that a class provide an interface to the external world and in soa only service contract is available up front and most of implementation and underlaying details are hidden. There is also lot of similarities between, loose coupling, service autonomy etc discussed in the which differs from the object oriented approach.
I think it is obvious from the above discussion that Object oriented Design influenced SOA during its initial stages, and much of principles are derived from OOP concepts. But there are some principles like inheritance which is completely unknown in the SOA world. Also it is worth noting that some service orientation principles such as loose coupling and autonomy, are not directly promoted by object orientation.
I think object orientation and service orientation are complementary design paradigms. It is important for us know the subtle differences between these two, so that one is not confused with another. For example Object oriented design is poor choice when dealing with distributed applications on the other hand SOA provides developers and architects an easy way to integrate systems.












