The development direction of component-based software development Tsinghua University Xie Xiaqin Wang Kehong member technology came into being
In the information age, the new technology revolution is changing the face of our daily life, and the core of this technology revolution is the computer software system. When the object-oriented technology gives the software crisis, the huge pressure of distributed network computing has put forward many new problems to software development, so that software development is still in high risk. New distributed network computing requires software to achieve cross-space, cross-time, cross-devices, cross-users, leading to software in scale, complexity, and function, forcing software to work to heterogeneous synergy, level Integrated, the industrial roads can be repeatedly reused. In order to adapt to this requirement, new software development mode must support distributed computing, browser / server structure, modular, and component integration, so that software is similar to hardware, can be assembled with different standard components. Specifically, you can achieve the following requirements:
● Provide a means to customize the application software to customize, functionally clear product components, and can be extended and updated with different versions of components.
● Use modular methods to decompose complex ugly-maintained systems into components that are independent, coordinated, and strive to make these components repeatedly reuse.
● Breakthrough time, space, and different hardware devices, and use the unified interface between customers and software to achieve cross-platform interoperability.
In order to meet the above requirements, the software component technology has appeared. The goal of component reuse is to reach demand, analysis, design, encoding, and testing. Since then, a new software development method affecting the development of the software industry is born.
From an abstraction, object-oriented technology has reached a class reuse (code reuse), which is encapsulated in units. Such reuse granularity is still too small, not sufficient to resolve heterogeneous interoperability and higher efficiency. The component refers to an extent of the abstraction to a higher level, which is a combination of a set of classes and represents a specific service of one or more functions, and provides users with multiple interfaces. The entire component hides the specific implementation and serves only using the interface. Thus, at different levels, both the components can combine a plurality of logical logic of the bottom layer into new components with large particle size, even directly to a system, enable the reuse of the module from the code level, object level, and architecture level to The system level may be implemented, so that the software is like hardware, the dream that can be equipped with a fixed system is achieved. In recent years, the development of component technology has proved its huge power, in which CORBA standards and Java technology breakthroughs, good work!
So far, component technology has formed three genres: Sun's Java platform, Microsoft COM , IBM's CORBA.
Self-discipline of components
Component-based software development technologies have achieved long-term development in recent years, which is not only far-reaching impact on technology innovations in software industries, but also bring huge benefits for many other fields. As early as in April 1998, two consensus have been reached at the instichina-based social development (CBSD) international special academic conference held in Kyoto, Japan:
1. For CBSD, object technology is not required, and only CBSD is only relying solely on object technology.
This seems to be a bit difficult to understand. The object technology is only the beginning of CBSD, but in terms of the object technology itself, it does not fully express the abstraction concepts required for CBSD, and is detached from object technology, CBSD can be fully implemented. Therefore, for CBSD, the object technology is neither necessary, and only object technology is not enough. CBSD will lead to system design methods, project management methods and organizational forms of object technology.
Specifically, when the component is to be used as an alternative unit, the simple object technology is not enough. There are more or less in various definitions of components to emphasize a feature of the component: the dependence on the context. This feature can be implemented by defining a "USE" statement in the specification, that is, a statement on the required system resources. Although many people have objected to this way, they think that this "USE" statement means that the interface description is an implementation mechanism, not an abstraction of the implementation method, but the object technology does not support components. This feature is not conducive to the abstraction of the design layer, especially when trying to integrate with existing components, often encounter. Nowadays, people are more consistent is to use distributed object technology as an infrastructure, while the components are asked as abstracts and implementations that can be applied to different infrastructure. In practice, people also experience this, such as long-term processing can't rely on object technology to solve. Due to the characteristics of atomicity, consistency, isolation and persistence of the transaction, it is not possible to simply see a single object, which is a series of sequences of processing steps. This is also the problems that are often encountered in enterprise applications. At present, software services provided on both servers are to solve this complex problem.
2. Components are inseparable from the architecture
Since an original intention of developing CBSD is to enhance the system's flexibility through an integrated development method, it is natural to consider this feasibility of this integration. However, by the abstract interface, the ability of the object technology has been exceeded. However, the reuse of the "plug-in" component has a direct relationship with the component of a pre-defined limit and agreed dependent degree.
Most components such as EJB, ActiveX, CORBA, etc. have certain restrictions on components. For example, although the component infrastructure has certain access to the member's interface, this capability requires that the component must be able to achieve a certain service or some of the specifications defined by the component infrastructure.
Many experts believe that components should implement two interfaces: one is a functional interface that reflects the role of the component in the system; the other is a non-functional interface that reflects the component model defined by the underlying member frame. Non-functional interfaces describe a system structure limit that allows CBS (Components-Based System) to be integrated and other features. Therefore, the understanding of the components concept is inevitably related to the constraints of the architecture imposed on the components.
Many experts believe that although components are closely related to their architecture, the two interfaces are still too emphasized in the position of the component frame in the software architecture. In fact, many people have effectively seek the difference between software architecture and component framework. However, through the definition of three different views of the architecture, the secondary meaning of the component framework concept:
● During operation: including the framework and model of the runtime service based on the component-based system.
● During design: including specific views of the component, such as functional interface and component dependence.
● Integration period: Includes the system for integration of various components, such as services during the generator and some construction, one component framework may provide these services.
These have more characteristics of the components in the discussion, indicating that the component is a complex entity of the design phase, which includes an abstract concept and specific implementation. Therefore, many experts believe that the use of the cBSD of ready-made components, considering the components as a commercial ready-made commodity, in which case CBSD must establish industry specifications for component frameworks.
The impact of the component cannot be underestimated
To implement component technology, you must have the following conditions:
● There is a standard software architecture that guarantees the unity of communication protocols between components, achieving synchronous and asynchronous operation control, breaking through local space limitations, and makes full use of network environments.
● The components have a standard interface to ensure that the system can break down into a plurality of functionally independent units, and it is assembled with components.
● The component is independent of the programming language.
● The component provides version compatible to implement the extension and update of the application.
In summary, CBSD has brought new vitality for software development technology, and its influence is appearing.