System architecture design notes (77)-middleware technology

Middleware (middleware) is a large category of basic software, belonging to the category of reusable software. As the name suggests, middleware is above the operating system, network, and database, and the lower layer of application software (as shown in Figure 1). Some people think that it should be part of the operating system.

1 The concept of middleware

Although it has only been more than 10 years since its birth, middleware has developed extremely rapidly. It is the fastest-growing software product in history. However, it is still in the growth stage in technology and there is no unified standard and model. It is usually used The C++ language is implemented by object-oriented technology, but its characteristics have exceeded the expressive ability of object-oriented. Because it belongs to reusable components, it tends to be realized by component technology. However, middleware must involve all the standards, specifications and technologies of software. It has more connotations, because it includes platform functions, and it has autonomy, autonomy, isolation, socialization, motivating, initiative, and concurrency. The characteristics such as cognition ability and so on are similar to the structure of Agent.

At present, it is difficult to give a strict definition of middleware. Various organizations in the world have different definitions. For example, IDC defines middleware as: middleware is an independent system software or service program, distributed application software With this kind of software, resources are shared between different technologies. Middleware is located on the client server's operating system to manage computing resources and network communications. These service programs or software have standard program interfaces and protocols. For different operating systems and hardware platforms, they can have multiple implementations that conform to the interface and protocol specifications. Middleware provides a running and development environment for the application software at its upper layer, helping users develop and integrate complex application software flexibly and efficiently.

Middleware should have the following characteristics:

  1. Meet the needs of a large number of applications;
  2. Run on a variety of hardware and OS platforms;
  3. Support distributed computing and provide transparent application or service interaction across networks, hardware and OS platforms;
  4. Support standard protocols;
  5. Support standard interface.

Standish Group, a world-renowned consulting organization, summarized ten advantages of middleware in a research report:

  1. Shorten the application development cycle;
  2. Save application development costs;
  3. Reduce the initial construction cost of the system;
  4. Reduce the failure rate of application development;
  5. Protect existing investments;
  6. Simplify application integration;
  7. Reduce maintenance costs;
  8. Improve the quality of application development;
  9. Ensure the continuity of technological progress;
  10. Enhance the vitality of applications.

Specifically, first of all, middleware shields the complexity of the underlying operating system, enables program developers to face a simple and unified development environment, reduces the complexity of program design, and concentrates on their own business. Repeated work for the transplantation of the program on different system software, thus greatly reducing the technical burden. Middleware brings to the application system not only the ease of development and the shortening of the development cycle, but also the reduction of the workload of system maintenance, operation and management, and the reduction of the overall computer cost. The Standish survey report shows that due to the use of middleware technology, the total construction cost of the application system can be reduced by about 50%. Today, with the rapid development of the network economy and e-commerce, it is not only IT vendors who benefit from middleware, but IT users are also winners, and they are more sure winners.

Secondly, as a new level of basic software, middleware's important role is to integrate application software developed on different operating systems in different periods and work in a seamless overall coordination with each other. This is something that operating systems and database management systems cannot do. of. This role of middleware has made people's previous labor achievements on application software still useful after the continuous development of technology, saving a lot of manpower and financial resources.

Finally, due to the importance of standard interfaces for portability and standard protocols for interoperability, middleware has become a major part of many standardization efforts. For application software development, middleware is far more important than operating systems and network services. The program interface provided by middleware defines a relatively stable high-level application environment. Regardless of how the underlying computer hardware and system software are updated, as long as the middleware is updated Upgrade and update, and keep the external interface definition of the middleware unchanged, and the application software hardly needs any modification, thus saving the company's major investment in application software development and maintenance.

2 Classification of middleware

It is like the transportation system of a large city. The network is regarded as a road in the urban area, and communication is realized by means of transportation (such as cars). Tens of thousands of vehicles will drive on the road every minute. If there is no corresponding transportation facilities and management planning, the city There will be chaos and various traffic accidents. The middleware system is equivalent to these supporting transportation facilities. According to the different responsibilities of middleware in distributed systems, the following types of middleware products can be divided.

(1) Communication processing (message) middleware

Just as the installation of traffic lights, the establishment of traffic management agencies, and the development of traffic rules can ensure smooth road traffic. In a distributed system, people have to build networks and develop communication protocols to ensure that the system can communicate between different platforms. Reliable, efficient, and real-time cross-platform data transmission in distributed systems. This type of middleware is called message middleware, and it is also the middleware product with the largest sales on the market. Currently, the main products are BEA’s e Link and IBM’s MQSeries , Tong L, etc. In fact, general network operating systems such as Windows already include some of its functions.

(2) Transaction processing (transaction) middleware

Just as in urban traffic, all kinds of transportation vehicles must be operated to complete daily transportation. At the same time, the operation of the vehicles is monitored at any time, and the blockage is removed in time to ensure smoothness in the event of a failure. In a distributed transaction processing system, a large number of transactions are often processed, especially in OLTP. Each transaction often requires programs on multiple servers to be coordinated in order. Once a certain failure occurs in the middle, not only the recovery work must be completed, but also Automatically switch the system to achieve the system will never shut down and achieve high reliability operation. To enable a large number of transactions to run concurrently on multiple application servers in real time, and perform load balancing scheduling, to achieve the same functions as expensive reliability machines and large computer systems. To achieve this goal, the middleware system is required to have monitoring and scheduling The function of the entire system. BEA's Tuxedo is famous for this, and it has become the manufacturer with the highest growth rate.

(3) Data access management middleware

In a distributed system, important data are stored centrally in the data server. They can be relational, compound document, multimedia with various storage formats, or encrypted or compressed. The middleware will Brings convenience for virtual buffer access, format conversion, and decompression on the network. (4) Web server middleware. The browser graphical user interface has become a recognized standard. However, it has poor session capabilities, is not good at writing data, and is restricted by the HTTP protocol. It must be modified and expanded to form Web server middleware, such as Silver Stream's product.

(5) Security middleware

The biggest obstacle for some military, government, and commercial departments to access the Internet is security and confidentiality, and the security measures provided by foreign countries (such as firewalls, encryption, authentication, etc.) cannot be used, and domestic products must be used. The insecure factor is caused by the operating system, but it must be solved with middleware to meet the requirements of flexibility.

(6) Cross-platform and architecture middleware

The current development of large-scale application software usually adopts architecture-based and component-based technologies. In a distributed system, it is also necessary to integrate components on different system platforms or new and old versions of components on each node, resulting in architecture middleware. The most powerful is CORBA, which can cross any platform, but is too large; Java Beans is more flexible and simple, and is very suitable for browsers, but the operating efficiency needs to be improved; COM+ model is mainly suitable for Windows platform and has been widely used in desktop systems. Since domestic new systems are mostly based on UNIX (including Linux) and Windows, the corresponding middleware market for these two platforms is relatively large.

(7) Dedicated platform middleware

Design domain reference models for specific application areas, establish corresponding architectures, configure corresponding component libraries and middleware, and develop and run key tasks in specific areas (such as e-commerce, websites, etc.) for application servers.

(8) Network middleware

It includes network management, access, network testing, virtual communities, virtual buffers, etc., and is currently the most popular R&D project.


Guess you like

Origin blog.csdn.net/deniro_li/article/details/108807906