Coming to terms with components

Opinion
Oct 25, 20044 mins

The old marketing term “the network is the computer” is starting to become reality through the use of component-based software and SOAs. Because components are designed to communicate and interoperate with other components, the concept of distributed, outward-facing components executing asynchronously but with a common workflow on servers throughout an intranet or extranet is inevitable.

In a previous column I laid out the foundation for a service-oriented architecture and the effect it can have on a corporate network. Integral to an SOA is the concept of software componentization. The World Wide Web Consortium defines a component as “a software object, meant to interact with other components, encapsulating certain functionality or a set of functionalities.” All component interfaces are based on Web services industry standards using XML messaging, and are reusable depending on their function and level of detail. The re-use issue is important. In the past, every time software developers created new applications, they created new components. Imagine the increase in developer productivity and software reliability if a common component library were available.

I have seen software vendors describe components as being as small and simple as validating a cyclical redundancy check on a packet or requesting an operating system service. In contrast, software application vendors describe components as large and complex as a claim resolution or voice mail access. This difference in detail is because of the way we purchase software. A few years ago, almost all software industry analysts predicted that software applications would have variable cost based on the features and functionality a buyer selected. This was a great idea, but it was impractical in that application vendors could not survive economically if everyone bought minimal-cost components. Therefore, components will come in two types: small, inward-facing, reusable building blocks; and larger, customer-oriented, outward-facing suites of higher-level, function-rich software.

Within a corporation or vendor, software development will take on a whole new meaning in this scenario. The library of business and technology components will become a key corporate asset, just like a building property. Creation of the library will be a painstaking task that requires organization and oversight management. Software developers automatically will become contributors as well as users of the library. To accelerate the process, new software technology exists that can automatically process monolithic legacy applications into component-based distributed applications as well as creating/using components within a corporate library.

The old marketing term “the network is the computer” is starting to become reality through the use of component-based software and SOAs. Because components are designed to communicate and interoperate with other components, the concept of distributed, outward-facing components executing asynchronously but with a common workflow on servers throughout an intranet or extranet is inevitable. Grid computing was once thought of as an esoteric concept not applicable to all business applications. The integration of grid technology into Web services, coupled with the use of distributed components, dramatically changes this concept.

While corporate distributed component applications are still in the near future, componentized software is a here-and-now issue. I recently asked several computer and communications vendors two questions: To what degree was their software componentized, and what was the percentage of component reuse in their software? Their varying answers made it clear that corporations are ahead of most vendors on this issue. It is theoretically possible to have more than an order of magnitude increase in software manageability, reliability and security if your vendor has properly componentized its software. This, coupled with reduced cost of development and time to market, are benefits to customers as well as vendors. Ask your vendor these same questions before you purchase or upgrade your computer and communications software. The answers may well be accurate indicators of whether you have chosen the right vendor.