Building an enterprise-distributed web application is becoming increasingly complex. Ever-pressing consumer and business demands necessitate discovering new, more efficient ways of developing improved methods for presenting information through browser-based web applications and personal hand-held devices, and for incorporating legacy systems. Methodologies employed in the past for building applications for the Internet are no longer sufficient for staying competitive. Application aggregation and interoperability is now the norm. Web services have changed business processes forever. There is no doubt that urgent consumer and business demands stretch a company’s ability to design, create, and deploy web service–oriented applications. Fortunately, an increasing number of software vendors are assembling systems by defining innovative new business logic that modifies and leverages preexisting repositories of data. It is less common today to construct new applications from the ground up.
The new business model emerging can be thought of as component-based applications supporting reusable component functionality. IBM’s WebSphere and Microsoft .NET are representative of component-assembled business solutions. A component-based system must support scalability, flexibility, and security. With the plethora of component collections available, what are the criteria for selecting and differentiating between these components?
Components must contain no interdependencies with other components.
A component’s functionality must support the object-oriented concept of tight cohesion.
A collection of component-based functionalities must be assembled into a cohesive whole, thereby facilitating coarse-grained operations on services that encompass more functionality and operate on larger sets of data.
The integrated components must be designed for distribution across many machines in order to enhance performance and reliability.
A component exposes one or more services so they can be consumed by other services or clients.
Once the system is built, the component-based infrastructure must describe and expose its services to clients so they can obtain the requisite information necessary for consuming those identifiable web services.