Today, designing and implementing a large scale and complex system has been a challenging task. Two of the most well recognized software engineering paradigms coping with this challenge are: componentbased software engineering and service-oriented software engineering.