The introduction
The word middleware is mentioned by different people every day, and middleware products also appear in a large number of software market, but the definition of middleware is always vague, resulting in the classification of middleware is not very uniform. Perhaps because of this, people continue to design and develop new products, and with the label of middleware, promote the connotation and market of middleware to continue to develop.
❝
I believe you see this article is simply want to understand what is middleware? Can do? Why should I learn it? Why do you have middleware programmers in your company? What type of middleware does dubbo I learn at ordinary times belong to? Is there a classification of middleware? This is an answer that has never been answered correctly on the web. This article takes you through “middleware”
❞
What is middleware?
Application Middleware, also known as Middleware, is a stand-alone system software or service program that distributed applications use to share resources between different technologies. Middleware sits on top of the client/server operating system and manages computer resources and network communications. Software that connects two separate applications or systems. Connected systems that exchange information with each other through middleware, even though they have different interfaces. One of the key ways to implement middleware is messaging. With middleware, applications can work on multiple platforms or OS environments.
Middleware is software that provides common services and functions for applications. Data management, application services, messaging, authentication, and API management typically go through middleware.
Middleware can help developers build applications more efficiently. It acts as a link between applications, data and users.
For enterprises with multi-cloud and containerized environments, middleware can help you develop and run applications at scale and cost effectively
What can middleware do?
The purpose of middleware is simply to try to simplify technical problems by shielding them from complex technical details.
-
- Middleware shield the complexity of the underlying operating system, the application developer in the face of a simple and unified development environment, reduce the complexity of program design, focusing on their own business, don’t have to program on a different system software transplant and repetitive work, which greatly reduces the burden on the technology. Therefore, middleware brings the application system, not only the development of simple, shorten the development cycle, but also reduce the system maintenance, operation and management of the workload, but also reduce the overall cost of computer input.
-
- As the basic software of the new level, middleware plays an important role in integrating the application software developed in different operating systems in different periods and coordinating with each other as a seamless whole, which is not done by the operating system and database management system itself.
The role of middleware in application development
Modern business applications can be designed to run on a large scale locally or across the cloud. To build these applications, developers need an application environment with a common base of functionality. Middleware is the key to creating this environment.
We can divide these functions into four layers, plus corresponding tools:
“The container layer“
This layer of middleware will manage the delivery of the application life cycle in a uniform manner. It provides DevOps capabilities with CI/CD, container management capabilities, and service grid capabilities.
“The runtime layer“
This layer contains the execution environment for custom code. Middleware provides lightweight runtimes and frameworks for highly distributed cloud environments (such as microservices), in-memory caching (for fast data access), and messaging (for fast data transfer).
“The integration layer“
Integration middleware provides services to connect custom and purchased applications and SaaS assets through messaging, integration, and apis to form functioning systems. In addition, it can provide in-memory database and data caching services, data/event streams, and API management capabilities.
“Process automation and decision management“
This is the final layer of development middleware designed to enhance critical intelligence, enable optimization and automation, and enhance decision management.
“tool“
In addition to the above four layers of middleware, there are corresponding application development tools. It allows teams to build applications using preset templates and containers, and facilitates effective code sharing and joint development. These tools provide a consistent application development and delivery experience both locally and in the cloud.
Middleware features
- Application support
The ultimate purpose of middleware is to solve the problems of the upper application system, and it is also the development of software technology to provide the most perfect and thorough solution to the application software today. Modern service oriented middleware in the four aspects to form the very high application support ability, software structure, model respectively, the development method and interoperability, but to finally solve the problem of software flexibility, efficiency, quality, interoperability problem the four big problems, need to be in the inner structure, architecture of software technology to think.
- The coupling relationship between
Middleware, based on SOA architecture, evolves into a realm in the process of decoupling and decoupling. However, traditional software coupling the core three parts of software data conversion, network connection and business logic in a whole, to produce a piece of software, and then move a little and move the whole body, such software is difficult to adapt to the needs of the market. The distributed object technology can separate the connection logic, and the message middleware can process the connection logic asynchronously, which forms a great flexibility. The middleware separates the data transformation of distributed objects from the message broker. SOA architecture decouples business logic, data conversion and network connection through service encapsulation.
- interoperability
In terms of software interoperability, traditional middleware realizes call interoperability between similar systems through standardized API, but connection interoperability cannot be separated from the original specific access protocol, such as CORBA for IIOP, JAVA for RMI, etc. SOA enables connection interoperability with the SOAP protocol that supports Internet, standardization, and operating system independence. And the encapsulation of services generally uses XML protocol, which has the characteristics of self-definition and self-parsing, so middleware based on SOA can complete semantic interoperability.
- Software reuse
Software reuse, also known as software reuse, refers to repeated use without modification or slight modification within a certain range. In plain English, this means increasing the level of abstraction and then expanding the scope of reuse. The earliest reuse technologies were generally subroutines, and since the invention of subroutines, people have been able to reuse software between different systems. But the subroutine is only the most primitive reuse, because the scope of reuse is only within an executable program, static development reuse, once the subroutine is modified, then all programs that call the subroutine need to be compiled, tested, and distributed again.
- platform
We refer to the platform can run independently and exist independently, can support the upper system and application to provide the environment on which the operation depends. Obviously, not all systems or applications can be called platforms. Middleware is a platform, so middleware must exist independently. It operates the system software and provides a supporting environment for the upper network application system. At the same time, it isolates the system around standard interfaces and APIS to achieve its independence, that is, platformness. In general, the development trend of middleware in complete business reuse and flexible business organization is mainly reflected in servitization, whose core technology is to improve the business agility of IT infrastructure. Middleware will therefore become the primary implementation platform for SOA.
Classification of middleware
❝
In broad terms, middleware covers everything from Web servers, to authentication systems, to messaging tools. The following are some common middleware use cases in modern development. These images on Red Hat’s website solve the puzzle perfectly:
❞
❝
See here should be able to solve everybody’s majority of the problem, below is the classification that looks for on Baidu encyclopedia, my individual feeling writes of similar minor differences!!
❞
At present, middleware products with their own characteristics emerge for different applications. There are different categories of middleware from different angles and levels. According to the role of middleware in the system and different technologies, middleware can be roughly divided into the following types:
- Data Access Middieware
In the distributed system, important data are centrally stored in the data server, which can be relational, compound document, multimedia with various storage formats, or encrypted or compressed storage. Data access middleware is to establish the mode of data application resource interoperability in this system. Middleware that realizes database connection or file system connection under heterogeneous environment, thus bringing convenience for virtual buffer access, format conversion and decompression on network. Data access middleware is one of the most widely used and mature middleware. A prime example is ODBC, a database-based middleware standard that allows applications to communicate with local or remote databases and provides a set of application programming interfaces (apis) that are, of course, hidden in development tools and not directly used by programmers in most cases. But in the processing model of data access middleware, database is the core of the information storage unit, middleware to complete the function of communication, although this way is flexible, but is not suitable for some occasions with high performance processing requirements, because it requires a lot of data communication, and failure occurs when the network, system will not work properly.
- Remote Procedure Call Middleware (RPC)
Remote procedure calls are another form of middleware that goes one step further than database middleware in client/server computing. Through this remote procedure call mechanism, programmers write applications on the client side and can call procedures located on the remote server as needed. It works as follows: When application A needs to exchange information with another remote application B or request assistance from B, APPLICATION A makes A request locally, notifies APPLICATION B to receive information or provide corresponding services through the communication link, and application B returns the information or result to Application A after completing the relevant processing. The flexible nature of RPC makes it more widely used than database middleware, and it can be used in more complex client/server computing environments. The flexibility of remote procedure calls is also reflected in their cross-platform characteristics. Not only can remote subroutines be called, but such calls can be made across different operating system platforms, and programmers do not need to consider these details when programming. RPC also has some disadvantages, mainly because RPC is generally used for communication between applications and adopts synchronous communication, so it is suitable for small and simple applications that do not typically require asynchronous communication. However, this approach is not suitable for large applications where programmers need to consider network or system failures and deal with complex issues such as concurrent operations, buffering, flow control, and process synchronization.
- Message-oriented Middleware (MOM)
Message-oriented middleware can communicate between different platforms and realize reliable, efficient and real-time cross-platform data transmission in distributed system. It is often used to shield the characteristics of various platforms and protocols and realize the cooperation between applications. Its advantage is that it can provide synchronous and asynchronous connections between the client and the server, and messages can be sent or stored and forwarded at any time, which is why it is a step further than remote procedure calls. In addition, message-oriented middleware does not consume a lot of network bandwidth, can track transactions, and realize system recovery in the event of network failure by storing transactions on disk. Of course, message-oriented middleware does not support program-controlled delivery compared to remote procedure calls. Message-oriented middleware is suitable for distributed environments where reliable data transfer between multiple processes is required. It is the only indispensable middleware, is also the largest sales of middleware products, currently in Windows2000 operating system has included some of its functions.
- Object-oriented middleware
Object Oriented Middieware. At present, the development of large-scale application software usually adopts component-based technology. In distributed system, it is necessary to integrate components on different system platforms on each node or components of new and old versions. Component usually refers to the integration of a set of objects of millions of kinds, but these components face a lack of standards to interoperate with each other, and components from different manufacturers can only run on their own platforms. For this reason, object-oriented middleware that connects these component environments has emerged. Object-oriented middleware is the product of the development of object technology and distributed computing. It provides a communication mechanism to transparently transfer object requests in a heterogeneous distributed computing environment, and these objects can be located on local or remote machines. The most powerful of these object-oriented middleware is CORBA, which can span any platform but is too large; JavaBeans are flexible and simple, making it a good browser, but inefficient. DCOM model is mainly suitable for Windows platform and has been widely used. However, DCOM and CORBA are competing with each other and are quite different from each other, which to some extent hinders the standardization process of object-oriented middleware. At present, the new system in China is mainly UNIX (including LINUX) and Windows, so it is necessary to establish standard object-oriented middleware for these two platforms.
- Transaction Processing Middleware (TPM)
Transaction processing middleware is an environmental platform to guarantee transaction integrity and data integrity in distributed and heterogeneous environment. It is designed for the speed and reliability of distributed application in complex environment. It provides programmers with a transactional API that they can use to write fast and reliable distributed applications — transaction-based applications. Transaction middleware provides users with a series of services, such as application management, management control, and inter-program messaging. Common features include global transaction coordination, distributed two-phase commit of transactions (prepare and complete), resource manager support, failure recovery, high reliability, network load balancing, and more.
- Network middleware
It includes network management, access, network testing, virtual community, virtual buffer and so on. The function of terminal emulation/screen transformation middleware is to realize the interoperation between client graphical user interface (GUI) and existing server applications based on character interface.
This article is formatted using MDNICE