A: What is Qpid?
--->qpid is an object-oriented message middleware developed by Apache that is an AMQP implementation that can communicate with other systems that meet the AMQP protocol.
--->qpid provides a client library for mainstream programming languages such as c++/python/java/c#, which is easy to install and use.
Two: The reason why the Qpid is appearing?
---> The most basic communication mode between systems is socket, but socket is lower. Very difficult to use. If you need some advanced features, you need a lot of programming burden.
---> such as Enterprise-class applications often have a huge amount of data to exchange, the requirements for reliability is also high. For example, a distributed financial processing software, tens of thousands of users are using every moment, need to produce unimaginable mass of news, each message may be related to someone's bank account and other key information, if lost will bring huge losses. Writing such a communication middleware is not an easy task, even if it is written, if you need to interact with other software system information, but also need a lot of format conversion, interface migration and so on.
---> In order to solve these problems, people have developed a lot of software products and protocols. From early RPC, to complex message-oriented middleware (MOM), to JMS, people have made a lot of progress,
Techniques such as--->rpc,corba are synchronous, i.e. the caller must wait for the other person's reply, which means that the caller must understand the receiver and is a tightly coupled model. Tight coupling means inflexible, and the only constant in the software industry is change, and the cost of tightly coupled application modification is very high when changes in demand and environment occur.
---> For this, many of the message middleware products came into being, breaking the tight coupling between the producers and consumers of the message. But middleware products are self-defined and implemented by various manufacturers, in the integration of enterprise-level applications, people find a variety of applications often use different technologies and middleware products, to make these products to exchange information, is a very difficult thing.
--->JMS is an effort to standardize, but the drawback is that JMS is the standard for Java EE, and if it is not a product that is implemented with the implementation of the technology, it is cumbersome to use JMS.
---> If that's the question you think about all the times, then Qpid is the open source software you deserve to know. It realizes the reliable and complex communication middleware, supports multiple communication models, has high efficiency, is independent of platform language, and realizes the industry communication standard AMQP.
Three: Model of enterprise level message communication?
---> Point-to-point: A sends A message to B.
---> Broadcast: A message to all other people
---> Multicast: A sends messages to multiple but not all others.
--->requester/response: Similar to the way to access the Web page, the client sends a request and waits, the server replies to the request
--->pub-sub: Like magazines, people who publish magazines do not know who is reading the magazine, and the people who subscribe do not care who is publishing it. The person who publishes the information only publishes it, and the person who subscribes to it only receives it when needed.
--->store-and-forward: Store-and-forward model similar to a letter posting, the person writing the message to someone, but when the letter is sent, the recipient does not necessarily wait at home, and do not know that there is a message to him. But this message will not be lost, it would be placed in the recipient's mailbox. This model allows asynchronous exchange of information.
---> Other Communication models ...
II: Apache's QPID message middleware introduction