1. Origin
Among the system software, the troika of operating systems,
databases, and middleware,
middleware is the most mysterious. Because, anyway, everyone will basically understand what an operating system is through Windows, although it will not be very comprehensive and professional, after all, it has feelings. Although I haven't seen the database directly, I basically understand that data is stored in a warehouse. Therefore, I also roughly know what a database management system does.
For a long time, middleware has been a highly specialized industry segment. Because the technical threshold of middleware is relatively high, there are not many players, whether it is foreign or domestic. On the other hand, because middleware software is still in the development stage and not yet fully mature, there is no in-depth study or authoritative statement on the definition of middleware.
This article attempts to give a comprehensive explanation of the ins and outs of middleware, its connotation, past and present. The words of the family, the reference of the right operation industry, I hope to lead everyone to do some in-depth thinking.
2. The driving force of
middleware development
The driving force for the emergence of middleware mainly comes from various problems encountered in the software development process. From the emergence of software, it was first used for scientific computing, and then industrial applications such as computer-aided design and auxiliary manufacturing. After large-scale application in the field of enterprise management, business requirements continue to change, systems continue to increase, processes are more complex, and systems become more and more overwhelmed. Major challenges in demand delivery have emerged, so that people use software crisis to describe the software industry. The dilemma facing.
To sum up, the main problems facing the software industry are four aspects: quality problems, efficiency problems, interoperability problems, and flexibility problems. These problems still plague the industry today.
The reason for this situation is heterogeneity and the lag of standards.
Shield heterogeneity
Heterogeneity is manifested in the heterogeneity of computer software and hardware, including hardware (CPU and instruction set, hardware structure, driver, etc.), operating system (API and development environment of different operating systems), database (different storage And access format) and so on. For a long time, high-level languages have relied on specific compilers and operating system APIs for programming, and they are not compatible, so software must depend on the development and operating environment.
The causes of heterogeneity stem from factors such as market competition, technological upgrading and investment protection. It is hoped that shielding the differences of heterogeneous platforms is one of the driving forces for the development of middleware.
Achieve interoperability
Because of the heterogeneity, the result is that the software depends on the computing environment, which makes it impossible to transplant different software between different platforms, or it is very difficult to transplant. Moreover, because of different network protocols and communication mechanisms, these systems cannot be effectively integrated with each other.
The main reason for the poor interoperability is the lag of the standard. Solving the interoperability problem between software is also one of the driving forces for the development of middleware.
Common condensing and reuse
There are more and more software application fields. Many basic functions and structures of application systems in the same field are similar. It is definitely not a good method to develop a system from scratch every time, and it is also a great way to quality and efficiency. s damage.
Condense and reuse as much as possible to improve the efficiency and quality of software development, and simplify the design, programming and management of distributed systems by providing a simple, consistent and integrated development and operating environment through middleware. This is also the development of middleware. Important driving force.
In the long-term exploration process, the methods to solve the four problems of software are summarized in two aspects: engineering methods, platforms and technologies.
The engineering method is to use the theory, method and system of industrial engineering and system engineering to solve the management problems in the software development process, including team management, project management, quality control, etc. This is software engineering. In addition to software engineering methods, we have invented more architectural planning, design and implementation methods, and continue to accumulate domain knowledge and experience.
Better technical means, including better programming languages, better platforms and software development techniques, such as object-oriented, component development, service-oriented, etc. In this regard, most of the results of gradual technological development are condensed in today's middleware platform.
And these better technical means are essentially through reuse, loose coupling, interoperability (standard) and other mechanisms to improve software quality, accelerate software development efficiency, and enable products developed to integrate with each other and flexibly adapt to changes.
These factors have gradually contributed to the formation and development of middleware software.
3. The concept of middleware
talked so much, what exactly is middleware, that is, what is the definition of middleware?
Regarding this issue, it should be said that there is no standard definition, or that the consensus of academia and industry has not been fully achieved.
As the name suggests, middleware is software in the middle. But this kind of concept is not defined by function or characteristic, but a name defined by location. It is easy to be given different meanings by different people from different angles.
IDC used to define middleware as an independent system software or service program. Distributed application software uses this software to share resources between different technologies. The middleware is located on the operating system of the client server. , Manage computing resources and network communications.
Middleware is between the operating system software and the user's application software. The middleware is above the operating system, network and database, and the lower layer of application software. The overall role of middleware is to provide a running and development environment for the application software in its upper layer, helping users to develop and integrate complex application software flexibly and efficiently. Vividly speaking, it is the middle between upper and lower.
In addition, middleware mainly provides communication services, exchange services, semantic interoperability services and other collaborative integration services between systems for the network distributed computing environment to solve the interconnection and intercommunication problems between systems. Vividly speaking, it is the so-called middle between left and right.
To deeply understand what middleware is, formal definitions are important, but the most important thing is to understand the core features from the concept itself. To understand a concept, it is a very important method system in philosophy to describe it from two aspects: connotation and extension.