 |
18th
Dec 2000 |
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore |
I had mentioned in my last article
that when developing the Applications for e-Governance,
we should examine the possibility of adopting
component-based software development, let us have
a birds eye view of what it is all about.
What is a component? Dr. Thomas
Mowbray, Chairman, iCMG defines the component
as follows: "At its most general, a component
is simply a, module. In this sense, applications
are made up of components, or are themselves components
in larger systems.A tighter definition is : A
component is a software module that publishes
or registers its interfaces. If you accept this
definition, you cannot proceed to talk of components
without also talking about some kind of components
systems that specifies how the interfaces will
be defined, handles the registration of interfaces
and facilitates the communication of interface
information between different components". This
means that a component can only be understood
within the context of some kind of system or environment
like the e-Governance System. Component systems
are clearly designed to facilitate reuse of code.
Component-based development assumes that the developer
will create an application by wiring together
components that have already been created by someone
else. It also assumes that the person who created
the components in the first place might not know
how the components would be used. Thus, components
are modules of code that other developers will
plug them into new applications. This ability
to plug existing components into a new application
assumes that the developer can determine what
the component will do. It usually implies that
the developer can tailor the component in some
specific ways for interfacing/integrating it with
other components to realize a specific application
software.
One might argue that component
systems are just object-based systems, systems
that implement some, but not all, of the features
of a full scale OO system. It might be true, but
it would miss the growing importance being accorded
to components, namely a growing consensus on a
new combination of useful techniques to facilitate
reuse. In 1996, a workgroup at ECOOP (the European
Conference on Object-Oriented Programming) offered
this definition: "A software component is a unit
of composition with contractually specified interfaces
and explicit context dependencies only. A software
component can be deployed independently and is
subject to composition by third parties".
ECOOP's definition also emphasizes
the three important attributes of components -
interface to a specific/standard middleware, services
it will provide and reuse. As mentioned in an
earlier article, the three leading middleware
that are in use today are COM+, EJB and CORBA.
While the first two are of proprietary in nature,
CORBA brought by the Object Management Group (OMG)
is based on Open Standards.
Roy Schulte of Garner Group says,
"Component-based interfaces can be used for some
kinds of integration, and they will be. For example,
SAP and its BAPI interfaces, and CORBA".
|