The platforms based on Component Based Development, such as CORBA, Java Beans, and.NET, are such standards for developing complex Web-based systems. The increasing interest in web based services has made the industry to provide platform-independent software resources (W3C, 2004). The Internet, can be used as a provider of different kinds of services. Using Web services, organisations are now able to expose their main and the most important business processes on the Internet as a collection of services.
The main issue is not about using web services as a new technology but in how best to make use of web service technology and therefore how to integrate them properly. We need to apply well-defined engineering approaches to ensure we will not end up with an accumulation of unusable services (which might be functional in theory). The goal is to collaborate and coordinate between components that provide these services. Service Oriented Software Engineering (SOSE) is the approach used for this purpose.
The first and main concept in Service Oriented Software Engineering is “service”. The service is the descriptor of an agreement between provider of the service and its consumer. It is a reusable functionality and it is contractually defined.
Service Orientation focuses on how services are described in a way to help finding appropriate services at run time dynamically. Service orientation is based on the idea that a service requester is not necessarily in need of one particular provider. Service providers can be changed with each other as long as they follow the contract imposed by the description of the service. The main assumption in Service Orientation is the availability of services dynamically.
The service registry is the entity in between the requesters and providers. It contains a set of service descriptions and their related providers. It helps with service publication, removal, and discovery.
Service composition represents the way to use a set of