Transfer from: http://www.qca.cn
What is a framework?
There have been a variety of frameworks in software development, and the rise of open source software makes a variety of frames, for example, with many framework products, including domestic familiar Struts under Apache. So what is the framework?
In design mode, Gamma et al as a definition is given: "The frame is a class of collaborative work, which considers a reusable design for specific types of software." [Gamma 94, P.26]
The framework is for a specific problem, for example, Struts is a framework for web development.
The frame includes a set of abstract concepts. These abstract concepts are derived from the problem area. For example, Struts is designed based on MVC mode, so it must build abstract concepts for Model, View, Control.
The framework makes these abstraction concepts and provides an extension form to achieve reuse. This is the specific work of the framework. Framework works on abstract concepts, defines collaboration between abstract concepts. The difference between the frame and ordinary software or class library is that the user reuses the framework by extending the framework. The design of these extensions is called the core of the frame design. For example, in Struts1.0, an extension method (expand Action) is used.
Framework definition
In our case, we define the framework as follows:
Framework provides support for companies' strategies and business developments, and its most important responsibility has accumulated knowledge resources in an effective way in the process of enterprise development and will be used to improve the core competitiveness of the enterprise.
Regardless of which technology, it is ultimately served for business development. Therefore, our defined framework concept is mainly description from the perspective of business. First, the framework is to serve the business development and strategic planning. He serves the Vision of the Enterprise; Second, the most important goal of the framework is to improve the competitiveness of the company, including cost, improve the quality, and improve customers. Satisfaction, control progress, etc. Finally, the way the framework achieves this goal is to achieve effective knowledge accumulation. Software development is a knowledge activity, so the gathering and accumulation of knowledge is critical. The framework can be described in a particular business domain in a structured manner, that is, the technique related to this field is cured by code, document, model, etc.
Framework to solve the problem
One of the most important issues to be solved is the problem of technical integration. In J2EE's framework, there are various technologies, and different software companies need to choose different technologies from J2EE, which makes software companies ultimate application. Depending on these technologies, the complexity of technology itself and the risk of technology will be impacted directly. Application is the core of software companies, is the key to competitiveness, so it should be decoupled to the application of its own design and specific implementation. In this way, the research and development of software companies will focus on the design, rather than specific technology, technology implementation is the underlying support of the application, which should not directly affect the application.
To understand this, let's give some examples:
A software company that is a video stream application, he provides a whole solution for the electricity industry. His advantage is to combine a variety of video hardware, servers, and management, so he played an integrator role. So his core value is to use software technology to integrate different hardware and provide a unified management platform on the integration level of hardware. So his energy should be put in solving two problems:
How to find a way to integrate different hardware, note that the integration here is not a technical integration, but a integration on the idea. The first thing to consider is definitely not to use, but what services are needed for these hardware need to be managed in what way. Therefore, things do this are actually modeling in the field. For example, we define any hardware that requires two capabilities, one is a unified management interface for unified management of all hardware; the other is the service interface, the system platform can query the service provided by the hardware, and Calling these services. Therefore, the design specification will be conducted for both capabilities. Another problem is how to describe the specification of this management system. You need to describe a variety of management activities, as well as different entities involved in management. Because the management system is for hardware management, it is above the hardware integration platform.
Here is the system of system we envisage. The framework is positioned lies in the lower layer of the hardware integration platform and the management system. The most underlying technology may be a third party to provide or independently develop. But these have no relationship.
After completing the design of the business level, let's take a look at the specific technical implementation. It is not enough to standardize and design, we also need to choose an excellent technology. Since it is integrated with different hardware, we think that JMX technology provided by Java. JMX technology is suitable for system integration, which defines a general specification and gives some default implementations of remote management ports. JMX has passed practice, and many application servers use JMX-based structures, such as named JBoss. JMX is already a good start, but we still need to do some work on the basis of JMX.
?