I dont agree with your object oriented example of a cd having to play itself. The way I have seen it done; and the way I have always done it is to seperate concerns. So I would pass my cd object to a cd player object and he does the business of playing the cd. SOA is an extension of this concept but done in a distributed and federated manner and across process boundaries.