Issue dated - 21st October 2002

-


CURRENT ISSUE
INDIA NEWS
INDIA TRENDS
NEWS ANALYSIS
STOCK FILE
OPINION
E-BUSINESS
FOCUS
COMPANY WATCH
PERSONAL TECH.
PRODUCTS
EVENTS
EC SERVICES
ARCHIVES/SEARCH
IT APPOINTMENTS
WRITE TO US
SUBSCRIBE/RENEW
CUSTOMER SERVICE
ADVERTISE
ABOUT US

 Network Sites
  IT People
  Network Magazine
  Business Traveller
  Exp. Hotelier & Caterer
  Exp. Travel & Tourism
  Exp. Backwaters
  Exp. Pharma Pulse
  Exp. Healthcare Mgmt.
  Express Textile
 Group Sites
  ExpressIndia
  Indian Express
  Financial Express

 
Front Page > India Trends > Story Print this Page|  Email this page

Software components herald a new opportunity

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 company’s 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 Microsoft’s 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 models—COM, 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 organisation’s 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 Infosys’s 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 Mastek’s 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 code—be it C++, Java, C# or VB.Net—is something that our programmers do day in and day out. For example, in a recent project, there was a requirement to validate the customer’s 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 Infosys’s: For a leading automatic payroll service provider’s 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 TCS’s MasterCraft—a 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), TCS’s 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 view—there 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 else’s 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 like—”How 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 Microsoft’s 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.

Don’t 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.

<Back to top>


© Copyright 2000: Indian Express Group (Mumbai, India). All rights reserved throughout the world. This entire site is compiled in
Mumbai by The Business Publications Division of the Indian Express Group of Newspapers.
Please contact our Webmaster for any queries on this site.