The advent of component-based software engineering changes this situation by making available mechanisms that enable software elements, right down to the binary level, to be rapidly and efficiently assembled into new applications. This allows the basic tenet of product line development to be applied at all phases and levels of software development, and to work with software in all different forms, including binary forms.
The ability of component-based software engineering to support the interoperation of binary code modules is one of the key characteristics that distinguish it from the object-oriented paradigm. Components therefore provide the perfect foundation for the practical application of product line development. Component based software engineering also stands to gain significantly from product line ideas. It is to be expected that component-based systems within a given domain, or created by a given organization, will share many similarities and in particular will use many of the same components.
The variabilities between systems in a family will thus likely revolve around a relatively small number of critical components. Therefore, rather than assemble every system in the family from scratch, it makes sense to build so-called frameworks that hardwire the common aspects of the family and allow the variable components to be plugged-in as and when needed. Although the values of such frameworks have been recognized for sometime, however their creation and maintenance is still something of a black art, lacking concrete methodological support.
The techniques and ideas of product line development are the ideal foundation for the provision of such methodological support. Software components have been talked about and implemented in varying forms for many years now. A component is a logical entity that solves a special purpose. The fixed interface to a Component describes enough to make it possible for clients to know how to use it. Component based development is the technique of using a Component framework to develop Components. Components are designed to be deployed within this framework [1].
The framework is defined as an environment to:
- Create runtime instances of Components.
- Allow Components to discover other components.
- Allow Components to communicate with other Components.
- Provide additional common services such as Persistence, Transactions, Location independence, Security, and Monitoring.
Component based development has the following benefits:
- Complexity is managed better, thereby improving quality of solution.
- Independent design, implementing, and testing allow a high degree of concurrent development.
- Components are constrained and therefore complex non-business functionality is concentrated in framework.
A Web Services is programmable application logic accessible using standard Internet protocols. Web services combine the best aspects of Component based development and the Web. Like components, Web Services represent black-box functionality that can be reused without knowing about how the service is implemented.
Unlike current component technologies, Web Services are not accessed via object-modelspecific protocols, such as DCOM, RMI, or IIOP. Instead, Web Services are accessed via ubiquitous Web protocols (ex: HTTP) and data formats (ex: XML). As in object-oriented systems, some of the fundamental concepts in Web Services are encapsulation, message passing, dynamic binding, and service description and querying. Fundamental to Web Services, then, is the notion that everything is a service, publishing an API for use by other services on the network and encapsulation implementation details.
In this paper, we focuses on integrating Component based development and Web Services to enable the development and usage of components through the web by dynamically creating web services for the functionalities of the components. XML Web services standards, which include SOAP, XML, and WSDL, provide a high level of interoperability across platforms, programming languages and applications and hence these facets of web services have been used to integrate the best aspects of Component based development and the Web[2].