What are the commonly used middleware?

d4581167679b4b1eb3c350b0a032522c.jpgWhat is middleware

 

Middleware (English: Middleware), as the name suggests, is software that connects system software and user application software to facilitate communication between software components, especially the centralized logic of application software for system software. It is an independent system software or service programs, which are used by distributed application software to share resources between different technologies. Middleware manages computing resources and network communications on top of the client server's operating system, network, and database. The overall function is to provide an operating and development environment for the application software on top of itself, and to help users develop and integrate complex application software flexibly and efficiently.

 

In other words, we can understand middleware as a type of software that can cooperate, interoperate, and share resources for one or more applications, and can also provide related services for the application. Middleware is a general term for a type of software, not a kind of software; middleware not only realizes interconnection, but also realizes interoperability between applications.

 

 

 

 

 

Features

Meet the needs of a large number of applications;

Runs on a variety of hardware and OS platforms;

Support distributed computing and provide transparent application or service interaction across networks, hardware and OS platforms;

Support standard protocols;

Supports standard interfaces.

RabbitMQ

It is an open source message queue written in Erlang. It supports many protocols: AMQP, XMPP, SMTP, STOMP. This is what makes it very heavyweight and more suitable for enterprise-level development. At the same time, a broker (Broker) architecture is implemented, which means that messages are first queued in the central queue when sent to the client. It has good support for routing, load balance or data persistence.

 

Redis

It is a Key-Value NoSQL database with active development and maintenance. Although it is a Key-Value database storage system, it supports the MQ function itself, so it can be used as a lightweight queue service. For the enqueuing and dequeuing operations of RabbitMQ and Redis, each is executed 1 million times, and the execution time is recorded every 100,000 times. The test data is divided into four different sizes of 128Bytes, 512Bytes, 1K and 10K. Experiments show that when entering the queue, the performance of Redis is higher than that of RabbitMQ when the data is relatively small, but if the data size exceeds 10K, Redis is unbearably slow; when leaving the queue, Redis shows very good performance regardless of the size of the data. , and the dequeue performance of RabbitMQ is much lower than that of Redis.

 

Jafka/Kafka

Kafka is a sub-project under Apache. It is a high-performance cross-language distributed Publish/Subscribe message queue system. Jafka is incubated on top of Kafka, which is an upgraded version of Kafka. It has the following characteristics: fast persistence, which can persist messages with O(1) system overhead; high throughput, which can reach a throughput rate of 10W/s on an ordinary server; a completely distributed system, Broker , Producer, and Consumer all natively and automatically support distribution and automatically achieve complex balance; support parallel loading of Hadoop data, which is a feasible solution for log data and offline analysis systems like Hadoop that require real-time processing limitations. . Kafka unifies online and offline message processing through Hadoop's parallel loading mechanism, which is also what the system studied in this project values. Apache Kafka is a very lightweight messaging system compared to ActiveMQ. In addition to very good performance, it is also a well-working distributed system.

 

Some other queue lists such as HornetQ, Apache Qpid, Sparrow, Starling, Kestrel, Beanstalkd, and Amazon SQS will not be analyzed one by one.

 

ActiveMQ

It is a sub-project under Apache. Similar to ZeroMQ, it can implement queues with broker and peer-to-peer technology. At the same time, similar to RabbitMQ, it can efficiently implement advanced application scenarios with a small amount of code. RabbitMQ, ZeroMQ, and ActiveMQ all support commonly used multi-language clients C++, Java, .Net, Python, Php, Ruby, etc.

 

ZeroMQ

Known as the fastest message queue system, it is especially designed for high throughput demand scenarios. ZMQ can implement advanced/complex queues that RabbitMQ is not good at, but developers need to combine multiple technical frameworks themselves. The technical complexity is a challenge to the successful application of MQ. ZeroMQ has a unique non-middleware model, you do not need to install and run a message server or middleware, because your application will play this service role. You just need to simply reference the ZeroMQ library, which can be installed using NuGet, and then you can happily send messages between applications. But ZeroMQ only provides non-persistent queues, which means that if the machine goes down, the data will be lost. Among them, Twitter's Storm uses ZeroMQ as the data stream transmission.

 

BEA Weblogic

The biggest feature of the Weblogic series is the open platform. The combination of Weblogic and other third-party development tools is also very good. A common combination is the Jbuilder Weblogic development environment.

 

BEA Weblogic integration is a component of BEA Weblogic Enterprise Platform. It provides various functions required for enterprise application integration. It can develop new applications, integrate new applications with existing systems, simplify business processes, and expand business infrastructure through portal gateways. . BEA Weblogic Integration provides a common development environment for rapid delivery of business integration and simplified production management, integrating various components in the field of business integration, including ERP, CRM legacy applications, business users, supply chain and business partners.

 

Oracle fusion

Oracle's Oracle Fusion Middleware Oracle fusion middleware is a comprehensive middleware product series, consisting of Oracle's SOA and middleware products, including: Oracle Application Server 10g, Oracle Application Server products and optional accessories, Oracle Data Platform , Oracle Content Services 10g, Oracle Real-Time Collaboration 10g and Oracle Unified Messaging. This proven middleware product series can help enterprises improve the efficiency and agility of public operations. Oracle fusion middleware also provides customers with comprehensive support throughout the entire life cycle of service-oriented applications. Due to its unique plug-in architecture, This family of products is interoperable with an enterprise's existing T infrastructure.

 

IN PXI

As part of the SA NEtweaver middleware product, the SA PXI application integration suite aims to provide non-SAP systems with a platform for data and process interaction between other management information systems and SAP systems. Because SAP is positioned in the ERP system, its focus is on the enterprise. People, finances and things, but for other professional systems of the enterprise, the functions of SAP cannot cover and replace them. Therefore, there must be such an "interface" to realize the exchange of data and business between them.

Supongo que te gusta

Origin blog.csdn.net/weixin_57763462/article/details/132612628
Recomendado
Clasificación