|
Home >> Software Highlight Information - Highlight Technic The Combination between SOA Standard and Component Technology
Software has been keeping the brand of "manual" production since it was born; even someone regards software as "works of art" made by software programmer, however, "works of art" certainly can only be produced in "manual "way. In these years, although software development is greater and greater, more and more complex, its productivity is still very low. Quite ironically, when some traditional industries like manufacturing are moving to automatic and flexibility with the help of software, the produce of software itself is still far from automatic and flexibility, basically, it remains at the stage of behindhand "manual" production. In the field of IT, as a twin brother, the gap of hardware and software is larger and larger after a few decades. In these years, the development of hardware has always followed "Moore’s Law", the performance doubles per one and a half years, and the automatic design technology of hardware which is supporting the exponential growth of hardware is EDA technology. Relying on EDA tools, the design of hardware has reached a high level of automation, for example, a development team can design the integrated circuit chips including 10 million or even millions of transistors in a few months. By contrast, the development of software doesn’t have such similar "Moore’s Law", the behindhand "manual" production of software makes the development of software fall far behind the hardware, such as it seems that software scale can only grow at a very slow speed, from Window 3.1 to Window 2000, the number of source code lines only grew about 9 times in the nine years.
We can estimate the software productivity. Some Chinese companies’ experiences show that to develop a large-scale software with millions of source code lines from zero, the team with hundreds of people will take five or six years to achieve the practical level. Converted up, each person develops about 2000 lines of source code per year. Recently, the research report about open source software made by EU (The Impact of Open Source Software to the Creation and Competitiveness of ICT department of EU) estimated to open source software --- Debian 3.1, if asking the specialized programmers to develop the 221 million lines of source code, it would need 164,000 persons per year, converted up, it would be 1300 lines of source code for each person per year. Thus, the productivity of large-scale software is one or two thousand lines of source code for each person per year, and the larger the software is, the lower the productivity is.
Brooks, winner of Turing Award and computer scientist, has stated a thesis in No Silver Bullet, "There is no such a pure technical or managing progress can promise independently to greatly improve software productivity, reliablility and simplicity in ten years." His thesis is to stress that it is so difficult to improve software productivity. Even though, people still have to work toward this goal because of the urgent demand of this.
Firstly, improving software productivity is the urgent demand of vendors. Today, almost all the software companies cannot cast off the harassments of delaying the software plan, overrunning the development budget and cannot launch version in time; even they cannot avoid the defects of software, so people have to issue patches and find new defects repeatedly.
Secondly, improving software productivity is also the urgent requirement of uses. Recently, enterprises are facing to fierce competitions; they have to push ahead with the informatization in order to enhance the competitiveness. If re-developing the software according to the requirement, it takes quite a long time to develop no matter developing by itself or commissioned company; if purchasing the existing generic software, it still need to be customized, it is also very time-consuming. Even the software has been developed or customized, the market is changeable, the software must respond quickly, but it is too difficult for the recent software to do so. Therefore, many enterprises’ operations have been limited by software. In conclusion, both the software vendors and users hope to break through the bottleneck of software productivity and find a solution of this problem.
Brooks considered that improving software productivity could not be achieved by a technical or managing progress; in another word, we could not solve the problem with a "silver bullet". Maybe he is right. But whether there are some technologies or managements can play an important or even decisive role to improve software productivity? That is to say, if a "silver bullet" could not make sense, then, what about using some "silver bullets" to solve the problem?
Component technology is apparently to be such "silver bullet". In the field of integrated circuit, component technology contributes greatly to the industry’s innovation. Component of hardware can be as small as "standard unit" or as big as "IP core", which can be reused in integrated circuit design in order to raise the production rate of hardware. Software component has been come up with for years, but it can hardly be industrialized like hardware component. There are two main reasons for the situation. One is that an efficient and pragmatic component platform is a must to industrialize software component. Just as what the Puyuan’s experience in software component showed, this kind of platform is easy for customers to use component technology and achieve what they want. Puyuan has developed an EOS middle component platform with a system based on component, which includes component running environment, development environment, application management environment, basic public component database and component-oriented methodology and experience. With such a platform many users can easily adopt component technology and achieve great effect.
The other reason is the lack of standard for software component. 60% to 70% of the functions of matured software can be reused; however, the truth is when a software is eliminated, it is usually abandoned as a whole. Then another software is re-designed later which has many similar features with the previous one and only a few new functions. This is decided by the feature of coding. Often the source code of a software is difficult to maintain and update for the millions of lines of code which are really hard to understand for someone else except its author. For a long time, software industry lacks a unified standard and every enterprise has its own standard to develop software. Fortunately, this problem is being addressed by the service-oriented SOA, which is becoming the standard of the industry. Standard component meeting the requirements of SCA standard for service component which can be reused in the systems goes along with the standard. By doing this, the concepts of "industrialized software development" and "software factory" can be practiced.
To our joy, China has its own advantage for development at this aspect. Software systems of industries such as banks, telecommunications in developed countries are almost developed in early 90s and it is very difficult to abandon all of them or redesign from scratch, so market demands in those countries are not sufficient. The status of Chinese market, however, is another scene. A large portion of Chinese enterprises are still in their initial phases of infrastructure constructions, which are in great demand of software systems. To meet their great demands, component technology can be of great help. This is also the reason why component technology has been developing at a rapid speed in China while it has stayed on the same level abroad in recent years. Another benefit of developing component technology in China is that the numerous types of components developed by enterprises in various industries can provide adequate component samples to enrich the component archive, which in turn raises the efficiency of producing software with component technology.
Now, let us envision the changes to enterprises’ informationization that can be brought about by component technology. Traditionally our understanding of enterprise application is limited with ERP and CRM. When requirements of a large scaled application come up, the development cycle will usually take 3 to 5 years to accomplish. But with component technology, we can design small software for every business sub process as a service component and then integrate thousands of components to construct the IT system of the company. Once certain business process makes change, only the related component needs to be modified and then reintegrate into the system. In this way, IT system of enterprises can make modification accordingly and there is no need to abandon the whole out-of-date system to develop a new one.
In a word, the particular situation of China is the major reason of rapid development of component technology, which also provides precious opportunity for the Chinese enterprises to formulate an international software development standard. We are pleased to see that Puyuan has become the core member of international software standard unions like OASIS and OSOA and they are dedicated to set standards for component service architecture and SCA/SDO. We believe that with the strengthened innovation ability of Chinese software enterprises, they will play much more important role in those international associations.
We expect that with the efforts of software enterprises and application end-users to combine SOA standards and component technology, software productivity will increase dramatically.
|