Application framework design based on component development
-------------------------------------------------- ------------------------------
The frame must be robust, scalable, flexible, and support dynamic content, which requires open or sharing standards. The frame design is necessary to do: completeness, flexibility, scalability, understandability, and abstract can be used for different occasions; users can easily add and modify features, custom frame; user, and framework interaction, Document is complete. A core problem of frame design is to discover reusable design and "hotspots" to ensure full flexibility, enabling users to generate applications on an existing component, implement the ideal goal of "zero code writing".
First, how to design the application framework?
At present, there are fewer technologies in frame design, and it can be divided into two categories: practice method and system law.
Practice
Many experts even think that the framework cannot be the result of the system design, but only one result in the design from bottom. Practical law can also be said to be an example-driven design method. It is from several specific typical applications, abstracts similar points to build a framework, and the frame is connected to different problems, and solves different problems. During the process, it is updated, and the two steps of the design and implementation of the framework are constantly repeated. When the framework is gradually mature, it will be more and less.
The specific steps are:
Analyze the field of analysis, determine the required framework. From a class of applications rather than a single program, a variety of different software solutions are compared, seeking the commonality of these programs and the unique features of each program. These commonality, especially those that are often used by multiple procedures will become the foundation of the framework. Then define the frame architecture and design, including the design of the user and the framework, the final tool provided by the user.
Implementation of the framework. Including the implementation of the frame core class, the framework test, the trial operation of the frame, and the repeated update of the framework.
Deployment of the frame. Including the provision of documents, the distribution process, providing users with technical support, maintenance, and update frameworks.
This method is to generalize the extension based on the specific class and extract an abstract class. Abstraction is also a key to the framework development. However, the applicability of the framework designed according to this method relies greatly to its specific application.
Since the development of the framework has repetitive, and it is necessary to in-depth understanding of the application field, it is difficult to develop according to the schedule. The designer of the frame also needs to work closely with the application developer because the framework can only be improved in the process of using it to develop applications.
2. System Law
Since some people think that the design of the frame can also be obtained by the system method, people have proposed a step-by-step design method. At this point, the design is divided into two steps:
The first step is the generalization of the problem. It demands the following questions: What concepts in the field can be expressed as variables, and need to be handled? Can you find some specific concepts, can they be generalized as a more abstract concept?
The second step is the design of the framework. In this step, the generalization is considered in reverse to achieve the framework of each stage. In other words, the most universal framework is the most universal framework, then implement the secondary framework. As shown in Figure 1, the frame 0 is the framework that is ultimately implemented.
This step needs to solve the following problem: Which part of the system may need to change? Where does users need to join their own code in the frame?
Two-step design methods can avoid being limited to application-specific classes and architectures during earlier development, and facilitate use of universal design patterns.
The design of the framework is a repeated process, and the expertise of the field and design in this process is also important to the framework design between the framework users and the frame developers. Because the framework is constantly repeated Gradually mature.
3. Framework design and application design
What is the difference in the design and application of the framework? In general, the side focus of the two is different. When designing an application system, it is required to have an in-depth understanding of important concepts in the special field. These concepts evolve into classes through modeling and act as build blocks that implement the entire application. When designing the framework, focusing on identifying a place that must be flexible, that is, "hotspots", which is the key to the framework. The component library system is based on the frame rather than a specific class, making the use of the components system more flexible. However, when constructing specific applications on the framework, the use and development of classes is always followed, and the application can be obtained by creating subclasses, configuring each component object, adjusting instance, etc.
4. Framework documentation
The documentation must include the following: the purpose of the framework, how to use the frame, the design details of the framework, etc.
Second, which support tools use framework?
In general, the frame without support tool is difficult to use. Any framework proposes always equipped with a series of tool software, so that the framework-based application development is practicable. These tools allow users to interact with application frameworks, configure and build new applications. The following tools are usually used:
Browsing Tool Users can use information such as the class hierarchy of the framework.
Editing tool users are used to adjust and modify the properties of the frame elements, such as modifying classes or components.
The help system provides wizard features for users to use this framework system, such as the HTML format.
The test system is used to test the generated application system, usually support the simulation operation.
Documentation Tool helps create documents for your application, such as Javadoc tools. Understanding and learning to use the framework is a fee-time job, which is also the only insufficient frame design method, so the documentation required by the framework must be ready.
Configuration Management Tools Use a frame rather than a specific object to provide multiplexability, but it also brings development complexity. The frame includes various components or component libraries, one frame may need to communicate with other frameworks. A framework may also consist of other sub-frame systems, such a composition structure inevitably proposes a problem of configuring management. For example, how do you share components within multiple frames? How to assemble new frames from components or sub-frame? How to communicate and cooperate within the framework? How to interact between different frameworks?
The ultimate goal of using these advanced tools is to reduce the workload of coding and memory, simplify the user's operation. Ideally, the user can implement the construction of a new system without having a code. For example, on a visual interface, you can generate an executable by selecting some icons. There are currently some similar tools, such as the Vista system developed by University of Geneva.
Third, what are the famous framework systems?
There are currently many framework systems, such as the frameworks of the user interfaces, MVC, ET , etc., where ET is implemented in the C language, running in Unix and other systems; there is Foible, MacApp, Face (Framework Adaptive Composition Environment), etc. .
Early frame systems are mostly implemented for process language, and now there is a more powerful support for software and design for software and design. Due to the complex learning curve of the framework, the language of the framework development is best to provide an effective method for the establishment of the document of the frame; the use of the framework requires high-profit transplantation; the design of the framework is also a high-level decision, very Naturally, high-level language is naturally implemented. Java language is due to platform independence and lightweight linking process, automatic garbage collection, simple language structure, standard software package, object-oriented characteristics, so that Java can be said to be a suitable language for frame constructing. There have been many framework systems that have been written in Java language now.
Lec India Software Center PVT. Ltd. developed an application framework system for EJB components. It mainly facing EJB-based applications, is a server-side framework that can solve stability and other enterprise-level features in the development of EJB components.
There are now many application frameworks that use J2EE programming environments, such as a multi-layer framework developed by Pacific Technical Services, can be used to develop web application servers; JCorporate developed Expresso Framework is a use Java to build distributed, reuse , Application framework for component-based security web applications. Fourth, how to design a knowledge engineering application framework?
In the era of knowledge explosion, how to extract information from the data, extracting knowledge from information has become an important application area. More and more knowledge processing applications are urgently developed, and if there is a mature and reliable knowledge processing framework system, it will greatly accelerate the development of such application systems. In response to this situation, Tsinghua University Knowledge Engineering Research Room combines its own experience, currently proposes a framework in the field of knowledge engineering applications, mainly for knowledge acquisition, transmission, management, and applications based on network computing mode, Web-based data mining and knowledge Discover, all the code is implemented in Java.
The framework of the framework will be applied to the framework, divided into the following three sub-frames:
(1) Field Special Component Frame: Provides a collection of components models in the field, and provides a unified interface for a hierarchical component model.
(2) Visual assembly framework: Provide a graphical interface of the entire framework system and provides a tool for visual assembly and operating components.
(3) Connection frame: interact between components, communication providing mechanisms.
The distribution of each member in the frame is shown in Figure 2.
The established frame-based component system has the following performance:
Realize component library system-oriented, practical component library systems, open, scalability
Support frameworks, components interconnection and communication in heterogeneous environments;
Realize the compatibility of new and old systems;
Provide a consistent interface assignment;
Follow important components (such as CORBA);
The component has transparent localization, and the platform is independent;
System configuration, data exchange based on XML and Java standardization format;
Support personalized information service customization and reconfigurable.
Good user learning curve.
The design of the frame is also a process of loop iteration, which is updated and improved in the process of continuous application of practice. We are also constantly improving this system. At present, some public components such as electronic form automation systems, data extraction, and file conversion systems are widely used as large-scale components.
The frame can make the application simple, low price, but the development framework is not an easy task. It is a repetition process that requires the field and design experience. In order to ensure the flexibility of the frame, you must extract and discover hotspots. The design pattern can simplify this process because it provides abstraction to past experience. The application framework can be highly abstract in the same field, thereby reducing development difficulty and intensity. Although the framework and component technology has already appeared for many years, it is practical, but it is not mature, there is a lot of problems to be studied.