|
With
competitive pressures increasing steadily to complete software
projects ASAP, Indian software companies have been aggressively
adopting the component route. Srikanth R P writes on the promise
of component technologies, and its future in the Indian software
industry
 |
| According
to Pradeep Sanyal, reusing components saves a lot of implementation
and testing effort |
Ever
since the Indian software industry started developing software,
there has been a consistent effort to redefine traditional
practices and create more value in lesser time. As time is
of the essence in software projects today, software companies
prefer using previously developed code, thus saving themselves
tremendous time and gaining an edge when working on a big
project.
This
is where the revolutionary concept of component programming
or using components that can be reused for building
applications was developed. And this programming has speeded
up the process of software development. For example, if you
are a software developer and want to add one tax module to
the application you are writing, what options do you have?
One approach is to start writing the lines of code from scratch,
which could probably delay project completion by a month or
so, depending on the complexity involved. The other approach
is to look up the companys component repository, and
if it contains a tax module component, plug it into the application
with a few tweaks if needed.
From writing massive lines of code, line by line, the software
industry has today reached a stage where programmers have
to just integrate the different building blocks, and write
only the glue for binding and building the entire
application together. Not surprisingly, today large Indian
companies like TCS, Infosys, Wipro and Polaris are heavy users
of software components and are cutting down significant time
in software development.
The way it started
The earliest level of programming was by typing in a series
of zeros and ones to instruct CPUs on how to execute code.
The next step was the assembly language, which allowed one
to write CPU-specific instructions. Next came languages like
FORTRAN and COBOL. But a small yet significant change came
with the advent of high level languages like Quick Basic from
Microsoft, and Turbo Pascal from Borland, where developers
could use building blocks in the form of libraries of pre-built
code to build applications. Next came Microsofts Visual
Basic through which one could call dynamic link libraries
(DLLs) or Visual Basic Extensions (VBXs), which were full
of pre-built functionality. Over the years software component
technologies have matured, and currently one can see three
major component modelsCOM, EJB and CORBA. In addition
to Microsoft, Borland too has been very aggressive in the
field of component-based technologies.
Says John Kaster, developer relations manager (US) at Borland
Software, The Delphi language has been designed specifically
with component-based development in mind. For example, the
strength of our component design in the early versions of
Delphi prompted Sun to have Borland help design the Java Beans
specification. Examples of our component framework are languages
like Delphi and C++. For instance, we have component libraries
for Windows, for cross-platform development, and for .NET,
that are extremely similar and often identical, at the interface
level. The benefit is that a developer can write the same
code for an application that can run on multiple platforms.
 |
| A
component-based development process enables parallel independent
development of components with guarantees of integration,
says Mathai Joseph |
Competitive
edge
Though component technology is not a very recent phenomenon
and is being used by a majority of Indian companies, it has
come into prominence because of the competitive edge it lends
to companies.
Research
firm Gartner estimates that by the end of this year 70 percent
of new applications would be built using component-based application
building blocks. And the fact that almost all large Indian
companies have built up component software repositories also
shows that in future most applications would be built using
the component approach.
A view from Nat Narayanasamy, senior vice president at Polaris
Software, best expresses the approach. He says, The
engineering industry has been building products from components
for over a century now, to reduce the time-to-market. For
the software industry, component programming has been the
Holy Grail for the past 15 years. One can say that component-based
programming has taken creative software programming activity
to the realm of an engineering discipline. Similar to the
commoditisation of integrated circuits that started in the
early 70s, now there are a number of technology software components
available in the cyber market place for users to buy and build
their solutions upon.
He goes on to say that within an organisation component programming
enables repository of re-usable components that can be shared
across projects, thereby reducing software construction time
and costs. Component programming, aided by component application
frameworks, encourages compartmentalisation of skills and
allows concurrent development of different parts of a software
solution, which can result in faster application delivery.
While Polaris has been using re-usable software assets since
the early 90s, it crossed a major milestone when it introduced
the component warehouse model. This model is a component framework-based
development platform which enables the company to develop
customisable products and projects in the fastest possible
way. Currently, the company has built up a valuable store
of knowledge components, which contains many components
that the company has developed by virtue of its expertise
in the banking, financial services and insurance (BFSI) sector.
Indian Approach
Even big IT companies like Infosys and Wipro heavily use component-based
technologies to speed up software development. For instance,
Infosys has a well-defined and organised process on reuse
in place. The company has standard component attribute specifications
for each category of components, like business architecture,
and design. Each component is defined with proper documentation.
It also has a reuse portal, which is part of the organisations
knowledge portal, and is accessible over all its development
centres. Infosys even captures the time and effort spent on
creating a component, so that a return on investment can be
calculated at a later stage. Not surprisingly, many of Infosyss
clients have benefited from reusable component frameworks,
with savings varying from 25-70 percent in terms of development
efforts.
Wipro too has been involved in developing reusable frameworks
and components for its customers since the mid-90s. In fact,
in 1997, one of the applications Wipro developed for AlliedSignal
won the Best Application Utilising Reusable Components
Award in ObjectWorld West97, a conference conducted by the
Object Management Group.
Adds Ramakanth Desai, vice president for E-enabling solutions
at Wipro Technologies, Our reuse-based development process
was formalised since 2000. We have a component repository
called Source Forge, wherein we encourage project teams to
deploy reusable components. We have started passing the advantage
of our reuse initiative to our customers. For instance, we
helped one of our customers reduce development time by three
times, and brought down the cost of security services deployment
by one-third, using one of our component frameworks. In another
case, one of our insurance clients could reduce the whole
design approach by a month since we shared the process for
reuse. Currently, Wipro has built up an impressive component
repository of reuse components in home-networking, networking
and wireless. The company has also a few copyrighted frameworks
like FlowBrix and WebSecure.
Mumbai-based Mastek has also effectively leveraged the use
of components. Says Milind Lele, head of Masteks technology
cell, We are heavy users of component-based development.
Breaking down functionality into reusable units is second
nature to our designers. Similarly, implementing these functional
units into component codebe it C++, Java, C# or VB.Netis
something that our programmers do day in and day out. For
example, in a recent project, there was a requirement to validate
the customers credit card, accept the payment and create
an appropriate licence. The customer can access this system
via several multiple channels, like the Internet, a call centre,
mail (electronic as well as post), IVR (interactive voice
response), retail outlets or mobile phones (SMS). The core
functionality was implemented as a reusable component and
deployed in an application server. Every channel has its own
unique interface to the external world, but the same set of
common components are used for the payment processing.
The importance of component technologies to software companies
is best emphasised in this particular case of Infosyss:
For a leading automatic payroll service providers application
(a tax and payroll generation software that calculates various
state taxes and rebates in the US, and generates pay slips
and account credits), Infosys defined domain frameworks to
handle multiple earnings, deductions and taxation schemes.
A business component framework then provided the basic set
of components, over which an application was built. The framework
absorbed the architecture by providing several services like
session management, client and server business object interface
definition, batch handling of requests to reduce number of
calls across the network, location transparency of different
application server objects and their methods. Since the architecture
functions were taken care of, the application developer could
focus more on the business functionality of the problem, resulting
in a reduction in the number of manhours spent on development.
Also, addition of new payroll rules on taxation, earnings
and deductions could be achieved by plugging in new components
with no modifications to existing code. This business component
framework has subsequently been used in a number of projects
by Infosys.
Adds Pradeep Sanyal, technical architect for Infosys Technologies,
For a telecom project (a suite of products designed
for wireless network monitoring, performance, capacity, planning
and network optimisation), which also used a lot of third-party
software, reusing components saved a lot of implementation
and testing effort. There were components reused from other
client projects on a similar domain. The turnaround time has
reduced from four months to two weeks. Later, the components
from this framework were used across product lines without
any design change.
 |
| According
to Milind Lele, the advent of Web services has enabled
the integration and interoperability of applications across
platforms |
MasterCraft
One product that stands out among all the various products
introduced by different vendors is TCSs MasterCrafta
product which has revolutionised the process of software development.
The product helps software design and development teams in
requirement analysis, modelling and automatic code generation.
It has been developed by Tata Research Development and Design
Centre (TRDDC), TCSs R&D division in Pune.
MasterCraft supports a component-based model driven software
development process wherein the focus of software development
is shifted from programming to modelling. The product enables
system requirements to be captured formally using user-friendly
graphical notations supported in UML. This model, known as
an analysis model, is further enhanced to capture design strategies.
Application developers need to specify only a part of the
application and not the execution. The suite of code generators
translate the design model into code conforming to an implementation
architecture of choice for the developer.
Explains Mathai Joseph, executive director at TCS, MasterCraft
enables applications to be viewed as a set of interacting
components. A component is a unit of development, deployment
as well as configuration management. A component-based development
process enables parallel independent development of components
with guarantees of integration. Component specifications in
MasterCraft are reusable entities. Quartz, the banking
product from TCS, was the first user of MasterCraft in 1995.
While Quartz development was still underway, another opportunity
in the domain of security depositories arose. This is where
components gave TCS a competitive advantage. Specifications
of relevant components for Quartz were reused to deliver a
custodial management system for Standard Chartered Bank Singapore
in a very short time. If the same project was done conventionally,
it would have taken double the time to complete the project.
Over here, the important thing to note is that the design
strategies and implementation platform of the custodial management
system were different from those of Quartz. The market potential
for such a product is immense and TCS is aggressively looking
at tapping the global software market. In addition to a killer
product, TCS today has got a rich repository consisting of
components from banking, insurance, financial services and
depositories.
Challenges
While component-based technologies sound simple to implement
and look like a simple plug-and-play model, the reality is
far from different. There are a lot of issues with component-based
development that makes it challenging. From the usability
point of viewthere is always the presence of doubt in
the users mind on the overall effectiveness of a reusable
component depending on the source from where it was obtained;
and also the question of the service provided by the component
satisfying the need.
Explains Sanyal, There are issues of reliability and
quality of component services. Questions like How can
the quality of a component be ensured in an enterprise, and
who does it? How do you trust somebody elses component
services? How secure are the components? are often raised.
The non-functional aspects of a component should also be looked
into and be understood. Questions likeHow are
the transactions supported? How do the component services
scale up?should be addressed up front. Some other
component attributes that are important are: accuracy, clarity
and documentation, well-defined interfaces, completeness of
functionality, exchangeability, interoperability, performance,
maintainability, flexibility and adaptability. Also, it is
very important that the services, the functionality provided
by a component, be testable. Hence, though the concept
is revolutionary, the use of third party components if not
thoroughly tested can lead to major chaos in the product development
cycle later. The way forward is to obviously standardise the
entire process through well-defined industry standards.
Explains Lele, Standardisation has been limited to a
given platform so far. For example, COM (and now .NET) for
Microsofts VB, VC++ and EJB for Enterprise Java. However,
Java components are unable to make COM calls without a bridge
in between and vice-a-versa. But with the advent of Web services,
even this barrier has been crossed. Since Web services are
made of industry standards like TCP/IP, HTTP and SOAP, we
have already experienced smooth interoperability between Java
and .NET via Web services. The primary benefit of Web
services is integration and interoperability of applications
across platforms, architectures, and vendors. All a developer
needs to do is expose a Web services interface to existing
business logic without having to redefine or re-code anything
or rewrite business logic, thus eliminating the need to continually
write expensive custom interfaces to assemble new business
relationships. This way the costs of software integration
is lowered. Thus, Web services can be treated as components
and actually assembled into full-blown business applications
such as portals, Web-based distribution channels and collaborative
supply chains. But on the flip side, many Web service protocols
and specifications like SOAP and UDDI are still in their infancy.
 |
| Nat
Narayanasamy says Polaris is looking at formulating a
strategy for selling components |
Opportunities
While components have certainly revolutionised the process
of software development, there is also a huge opportunity
for Indian companies to start marketing their components independently.
For example, companies like Flashline.com and ComponentSource
have found huge success in selling ActiveX, JavaBean and Enterprise
JavaBean (EJB) components. Though Indian software companies
have built up a huge repository of components, most of them
still have not tested the market for their components.
Says
Satyen Parikh, managing director for the Indian Subcontinent
at Borland India, In India, this market is nascent.
The current approach is one of wait and watch. The reason
being that there is no dearth of in-house resources available
for organisations to prepare a framework of developing an
application, for if the need arises they are equipped to meet
it. Although it is a big business it requires the correct
mindset of the developer community to accept the value propositions
offered by component-based application development.
Hence in the Indian software market, there have been more
consumers of components than brokers or producers.
While most companies that Express Computer spoke to were not
clear whether they wanted to market their software components
independently, some companies are looking to set a new path.
For instance, TCS has a variety of business components which
it is thinking of marketing. Similarly, Polaris is looking
at formulating a strategy for selling components. Explains
Narayanasamy, So far, we have been incorporating components
only for our products and projects. But we have certain components
that the company is contemplating to sell through the OEM
approach. Another prospective area for component programming
is migration projects involving legacy systems. This market
is likely to grow as there will be attempts to make the legacy
systems component-enabled and develop peripheral systems to
integrate legacy systems using technologies like SOAP and
XML. Going forward, a new path can be created by Indian software
companies if some of the companies manage to find success
by selling only software components.
Dont be surprised if in a couple of years, a software
company may buy different software components from Infosys,
Wipro, TCS or a Polaris, and integrate them to develop its
own application. And when that happens, you can be sure that
the Indian software industry is charting a new course for
itself.
|