Message-oriented middleware

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. Message-oriented middleware is in contrast to streaming-oriented middleware where data is communicated as a sequence of bytes with no explicit message boundaries. Note that streaming protocols are almost always built above protocols using discrete messages such as frames Ethernet), datagrams UDP, packets IP, cells ATM, et al.

MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple operating systems and network protocols. The middleware creates a distributed communications layer that insulates the application developer from the details of the various operating systems and network interfaces. Application programming interfaces (APIs) that extend across diverse platforms and networks are typically provided by MOM.[1]

This middleware layer allows software components (applications, servlets, and other components) that have been developed independently and that run on different networked platforms to interact with one another. Applications distributed on different network nodes use the application interface to communicate. In addition, by providing an administrative interface, this new, virtual system of interconnected applications can be made fault tolerant and secure.[2]

MOM provides software elements that reside in all communicating components of a client/server architecture and typically support asynchronous calls between the client and server applications. MOM reduces the involvement of application developers with the complexity of the master-slave nature of the client/server mechanism.

Middleware categories

All these models make it possible for one software component to affect the behavior of another component over a network. They are different in that RPC- and ORB-based middleware create systems of tightly coupled components, whereas MOM-based systems allow for a loose coupling of components. In an RPC- or ORB-based system, when one procedure calls another, it must wait for the called procedure to return before it can do anything else. In these mostly synchronous messaging models, the middleware functions partly as a super-linker, locating the called procedure on a network and using network services to pass function or method parameters to the procedure and then to return results.[2] Note that Object request brokers also support fully asynchronous messaging via oneway invocations.[3]

Advantages

Central reasons for using a message-based communications protocol include its ability to store (buffer), route, or transform messages while conveying them from senders to receivers.

Another advantage of messaging provider mediated messaging between clients is that by adding an administrative interface, you can monitor and tune performance. Client applications are thus effectively relieved of every problem except that of sending, receiving, and processing messages. It is up to the code that implements the MOM system and up to the administrator to resolve issues like interoperability, reliability, security, scalability, and performance.

Asynchronicity

Using a MOM system, a client makes an API call to send a message to a destination managed by the provider. The call invokes provider services to route and deliver the message. Once it has sent the message, the client can continue to do other work, confident that the provider retains the message until a receiving client retrieves it. The message-based model, coupled with the mediation of the provider, makes it possible to create a system of loosely coupled components.

MOM comprises a category of inter-application communication software that generally relies on asynchronous message-passing, as opposed to a request-response architecture. In asynchronous systems, message queues provide temporary storage when the destination program is busy or not connected. In addition, most asynchronous MOM systems provide persistent storage to back up the message queue. This means that the sender and receiver do not need to connect to the network at the same time (asynchronous delivery), and problems with intermittent connectivity are solved. It also means that should the receiver application fail for any reason, the senders can continue unaffected, as the messages they send will simply accumulate in the message queue for later processing when the receiver restarts.

Routing

Many message-oriented middleware implementations depend on a message queue system. Some implementations permit routing logic to be provided by the messaging layer itself, while others depend on client applications to provide routing information or allow for a mix of both paradigms. Some implementations make use of broadcast or multicast distribution paradigms.

Transformation

In a message-based middleware system, the message received at the destination need not be identical to the message originally sent. A MOM system with built-in intelligence can transform messages and route to match the requirements of the sender or of the recipient.[4] In conjunction with the routing and broadcast/multicast facilities, one application can send a message in its own native format, and two or more other applications may each receive a copy of the message in their own native format. Many modern MOM systems provide sophisticated message transformation (or mapping) tools which allow programmers to specify transformation rules applicable to a simple GUI drag-and-drop operation.

Disadvantages

The primary disadvantage of many message-oriented middleware systems is that they require an extra component in the architecture, the message transfer agent (message broker). As with any system, adding another component can lead to reductions in performance and reliability, and can also make the system as a whole more difficult and expensive to maintain.

In addition, many inter-application communications have an intrinsically synchronous aspect, with the sender specifically wanting to wait for a reply to a message before continuing (see real-time computing and near-real-time for extreme cases). Because message-based communication inherently functions asynchronously, it may not fit well in such situations. That said, most MOM systems have facilities to group a request and a response as a single pseudo-synchronous transaction.

With a synchronous messaging system, the calling function does not return until the called function has finished its task. In a loosely coupled asynchronous system, the calling client can continue to load work upon the recipient until the resources needed to handle this work are depleted and the called component fails. Of course, these conditions can be minimized or avoided by monitoring performance and adjusting message flow, but this is work that is not needed with a synchronous messaging system. The important thing is to understand the advantages and liabilities of each kind of system. Each system is appropriate for different kinds of tasks. Sometimes, a combination of the two kinds of systems is required to obtain the desired behavior.

Standards

Historically, there was a lack of standards governing the use of message-oriented middleware that has caused problems. Most of the major vendors have their own implementations, each with its own application programming interface (API) and management tools.

One of the long-standing standards for message oriented middleware is X/Open group's XATMI specification (Distributed Transaction Processing: The XATMI Specification) which standardizes API for interprocess communications. Known implementations for this API is ATR Baltic's Enduro/X middleware and Oracle's Tuxedo.

The Advanced Message Queuing Protocol (AMQP) is an approved OASIS[5] and ISO[6] standard that defines the protocol and formats used between participating application components, so implementations are interoperable. AMQP may be used with flexible routing schemes, including common messaging paradigms like point-to-point, fan-out, publish/subscribe, and request-response (these are intentionally omitted from v1.0 of the protocol standard itself, but rely on the particular implementation and/or underlying network protocol for routing). It also supports transaction management, queuing, distribution, security, management, clustering, federation and heterogeneous multi-platform support. Java applications that use AMQP are typically written in Java JMS. Other implementations provide APIs for C#, C++, PHP, Python, Ruby, and other programming languages.

The High Level Architecture (HLA IEEE 1516) is an Institute of Electrical and Electronics Engineers (IEEE) and Simulation Interoperability Standards Organization (SISO) standard for simulation interoperability. It defines a set of services, provided through an API in C++ or Java. The services offer publish/subscribe based information exchange, based on a modular Federation Object Model. There are also services for coordinated data exchange and time advance, based on logical simulation time, as well as synchronization points. Additional services provide transfer of ownership, data distribution optimizations and monitoring and management of participating Federates (systems).

The MQ Telemetry Transport (MQTT) is an ISO standard (ISO/IEC PRF 20922) supported by the OASIS organization. It provides a lightweight publish/subscribe reliable messaging transport protocol on top of TCP/IP suitable for communication in M2M/IoT contexts where a small code footprint is required and/or network bandwidth is at a premium.

The Object Management Group's Data Distribution Service (DDS) provides message-oriented Publish/Subscribe (P/S) middleware standard that aims to enable scalable, real-time, dependable, high performance and interoperable data exchanges between publishers and subscribers.[7] The standard provides interfaces to C++, C++11, C, Ada, Java, and Ruby.

XMPP

The eXtensible Messaging and Presence Protocol (XMPP) is a communications protocol for message-oriented middleware based on Extensible Markup Language (XML). Designed to be extensible, the protocol has also been used for publish-subscribe systems, signalling for VoIP, video, file transfer, gaming, Internet of Things applications such as the smart grid, and social networking services. Unlike most instant messaging protocols, XMPP is defined in an open standard and uses an open systems approach of development and application, by which anyone may implement an XMPP service and interoperate with other organizations' implementations. Because XMPP is an open protocol, implementations can be developed using any software license; although many server, client, and library implementations are distributed as free and open-source software, many freeware and proprietary software implementations also exist. The Internet Engineering Task Force (IETF) formed an XMPP working group in 2002 to formalize the core protocols as an IETF instant messaging and presence technology. The XMPP Working group produced four specifications (RFC 3920, RFC 3921, RFC 3922, RFC 3923), which were approved as Proposed Standards in 2004. In 2011, RFC 3920 and RFC 3921 were superseded by RFC 6120 and RFC 6121 respectively, with RFC 6122 specifying the XMPP address format. In addition to these core protocols standardized at the IETF, the XMPP Standards Foundation (formerly Jabber Software Foundation) is active in developing open XMPP extensions. XMPP-based software is deployed widely across the Internet, according to the XMPP Standards Foundation, and forms the basis for the Department of Defense (DoD) Unified Capabilities Framework.[8]

The Java EE programming environment provides a standard API called Java Message Service (JMS), which is implemented by most MOM vendors and aims to hide the particular MOM API implementations; however, JMS does not define the format of the messages that are exchanged, so JMS systems are not interoperable.

A similar effort is with the actively evolving OpenMAMA project, which aims to provide a common API, especially to C clients. As of August 2012, it is mainly appropriate for distributing market-oriented data (e.g. stock quotes) over pub-sub middleware.

Message queuing

Message queues allow the exchange of information between distributed applications. A message queue can reside in memory or disk storage. Messages stay in the queue until the time they are processed by a service consumer. Through the message queue, the application can be implemented independently - they do not need to know each other's position, or continue to implement procedures to remove the need for waiting to receive this message.[9]

[14]

See also

References

  1. ^ Curry, Edward. 2004. "Message-Oriented Middleware"[permanent dead link]. In Middleware for Communications, ed. Qusay H Mahmoud, 1-28. Chichester, England: John Wiley and Sons. doi:10.1002/0470862084.ch1. ISBN 978-0-470-86206-3
  2. ^ a b Message Oriented Middleware.
  3. ^ a b Common Object Request Broker Architecture.
  4. ^ "E. Curry, D. Chambers, and G. Lyons, "Extending Message-Oriented Middleware using Interception", presented at Third International Workshop on Distributed Event-Based Systems (DEBS '04), ICSE '04, Edinburgh, Scotland, UK, 2004" (PDF). Archived from the original (PDF) on 2011-07-26. Retrieved 2011-08-09.
  5. ^ 1.0 Becomes OASIS Standard. AMQP (2012-10-31). Retrieved on 2014-05-23.
  6. ^ "ISO/IEC 19464:2014". ISO.
  7. ^ Data Distribution Service for Real-time Systems (DDS), Object Management Group, version 1.2, January 2007
  8. ^ [1] Archived May 23, 2013, at the Wayback Machine
  9. ^ "多彩网客户端:404錯誤提示的界面". tutorialsto.com.
  10. ^ OASIS AMQP version 1.0, sections 2.6.7-2.6.8". OASIS AMQP Technical Committee. Retrieved 18 June 2012.
  11. ^ Johansson, Leif (April 18, 2005). "XMPP as MOM". Greater NOrdic MIddleware Symposium (GNOMIS). Oslo: University of Stockholm
  12. ^ STOMP Protocol Specification, Version 1.2, 22 October 2012
  13. ^ Are You Soft in the Middle? The future of enterprise IT rests in hardware applications Archived 2009-02-09 at the Wayback Machine
  14. ^ ORBexpress for Field Programmable on Gate Arrays (FPGA)

Read other articles:

ActiveX [ˌæktɪvˈɛks] bezeichnet ein Softwarekomponenten-Modell von Microsoft für aktive Inhalte. ActiveX-Komponenten erweitern die Component-Object-Model-Standards (COM) von Microsoft. Inhaltsverzeichnis 1 Nutzbarkeit 2 Einsatzgebiete 3 Microsoft Update 4 Kritik 5 Einstellung des ActiveX-Support 6 Siehe auch 7 Weblinks 8 Einzelnachweise Nutzbarkeit ActiveX ist nur innerhalb der Betriebssystemfamilie Windows nutzbar und erfordert die Verwendung eines COM-fähigen Webbrowsers, da ActiveX-...

كرة القدم الأمريكيةمعلومات عامةبلد المنشأ الولايات المتحدة المنتسبون لاعب كرة قدم أمريكية — American football coach (en) الخصائصالتصنيف gridiron football (en) التجهيزات المستعملة penalty flag (en) — American football ball (en) تعديل - تعديل مصدري - تعديل ويكي بيانات مباراة كرة قدم أمريكية كرة القدم الأمريكية هي لع

EV Zug Grösste Erfolge Schweizer Meister 1998, 2021, 2022 Schweizer Cupsieger 2019 Schweizer Vizemeister 1995, 1997, 2017, 2019 Vereinsinformationen Geschichte EV Zug (seit 1967) Standort Zug, Schweiz Spitzname EVZ Vereinsfarben blau, weiss Liga National League Spielstätte Bossard Arena Kapazität 7'200 Plätze (davon 4'848 Sitzplätze) Geschäftsführer Patrick Lengwiler Cheftrainer Dan Tangnes Kapitän Jan Kovář Saison 2022/23 6. Platz (Hauptrunde), Playoff-Halbfinal Der Eissportverein ...

Дідьє Буркгальтер фр. Didier Burkhalter Дідьє Буркгальтер Президент Швейцарії 1 січня 2014 — 31 грудня 2014Попередник Улі МаурерНаступник Симонетта СоммаругаЧлен Федеральної ради Швейцарії 1 листопада 2009 — 31 жовтня 2017Попередник Паскаль КушпенНаступник Ігнаціо КассісГо�...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. Demokreatif adalah sebuah komunitas yang menyetuskan model kampanye politik digital dengan mengedepankan kreativitas atau lebih akrab dikenal dengan kampanye kreatif. Beberapa bentuk kampanye kreatif yang mereka ciptakan adalah sejumlah gambar Joko Wi...

For the old National Highway 8, see National Highway 48 (India), National Highway 64 (India), and National Highway 448 (India). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: National Highway 8 India – news · newspapers · books · scholar · JSTOR (January 2017) (Learn how and when to remove this templat...

Canadian explorer William KennedyBornApril 1814 Cumberland House Died25 January 1890  (aged 75–76)Manitoba OccupationExplorer, association football player, sailor, magistrate  William Kennedy (April 1814 – January 25, 1890) was a Canadian fur trader, politician, and historian. Life Kennedy was born at Cumberland House, Saskatchewan in what was then Rupert’s Land, a son of the Hudson's Bay Company Chief Factor, Alexander Kennedy and his English/Cree wife, Aggatha...

For the hospital in Ely, see Princess of Wales Hospital, Ely. For the hospital in Grimsby, see Diana, Princess of Wales Hospital. Hospital in WalesPrincess of Wales HospitalCwm Taf Morgannwg University Health BoardPrincess of Wales HospitalShown in Bridgend County BoroughGeographyLocationBridgend, Mid Glamorgan, Wales, United KingdomCoordinates51°31′03″N 3°34′18″W / 51.51743°N 3.57169°W / 51.51743; -3.57169OrganisationCare systemNHS WalesTypeGeneralAffiliat...

Dumanjug Munisipalitas di Filipina Tempat Negara berdaulatFilipinaIsland group of the Philippines (en) BisayakRegion of the Philippines (en) Bisaya TengahProvinsi di FilipinaCebu NegaraFilipina Pembagian administratifBalaygtiki (en) Bitoon (en) Bulak (en) Bullogan (en) Calaboon (en) Camboang (en) Candabong (en) Cogon (en) Cotcoton (en) Doldol (en) Ilaya (pob.) (en) Kabalaasnan (en) Kabatbatan (en) Kambanog (en) Kang‑actol (en) Kanghalo (en) Kanghumaod (en) Kanguha (en) Kantangkas (en) Kanyu...

Hong kong actor and singer (born 1965) Dicky CheungCheung in 2018BornCheung Wai-kin (1965-02-08) 8 February 1965 (age 58)Hong KongOccupation(s)Actor, singerYears active1984–presentSpouse Jess Zhang Qian ​(m. 2004)​AwardsNew Talent Singing Awards1984 WinnerTVB Anniversary Awards – All-Time Most Memorable Male Leading Roles1996 Journey to the West My Favourite Television Character2001 The Duke of Mount Deer Chinese nameTraditional Chinese張衛健...

Museum in Riga, Latvia Museum “Jews in Latvia”Muzejs „Ebreji Latvijā”Riga Jewish community and the museum buildingEstablished1989LocationSkolas iela 6, Rīga, LatviaTypeHistory museumDirectorIļja Ļenskis (2008–present)Websitewww.jewishmuseum.lv/en/ The Museum “Jews in Latvia” (Latvian: Muzejs „Ebreji Latvijā”) is located in Riga, Latvia. The main tasks of the museum are the research and popularisation of History of the Jews in Latvia, as well as the collection and preser...

  提示:此条目的主题不是鄧鏡波學校。 本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要补充更多来源。 (2020年7月27日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:香港鄧鏡波書院 — 网页、新闻、书籍、学术、图像),以检查网络�...

English territorial police force Humberside PoliceMottoServing Our Communities to Make Them Safer and Stronger[1]Agency overviewFormed1974Preceding agenciesHull City Policepart of York and North East Yorkshire Policepart of Lincolnshire Constabularypart of West Yorkshire ConstabularyEmployees4,207[2]Annual budget£217.2 million[3]Jurisdictional structureOperations jurisdictionHumberside, EnglandMap of Humberside Police's jurisdictionSize1,357 square miles (3,510 k...

Metro station in Delhi, India Dwarka Sector 21द्वारका सेक्टर 21 Delhi Metro stationLeft and Right side view of Dwarka Sector 21 metro station.General informationLocationSector 21, Dwarka, New DelhiCoordinates28°33′8.4564″N 77°3′29.0354″E / 28.552349000°N 77.058065389°E / 28.552349000; 77.058065389Line(s)Blue Line Airport ExpressTracks4ConstructionStructure typeUndergroundDepth7.07 metersPlatform levels2Parking2 Parking lotsAccessib...

Napier City Council Te Kaunihera o AhuririThe coat of arms of Napier City CouncilLeadershipMayorKirsten Wise since 2019 Deputy mayorAnnette Brosnan since 2019 Chief executiveLouise Miller StructureSeats13 (Mayor + 12 councillors)AuthorityTerritorial authorityElectionsVoting systemFirst past the postLast election2022Next election2025WebsiteNapier.govt.nz Napier City Council is the territorial authority of Napier, Hawke's Bay Region, New Zealand.[1] The current Mayor of Napier is Kirste...

Commander in the Ahom kingdom Lachit BarphukanLachit Barphukan's statue at his maidam in Jorhat, Assam, IndiaBorn(1622-11-24)November 24, 1622Charaideo, Ahom KingdomDied25 April 1672(1672-04-25) (aged 49)Kaliabor,[1] NagaonBuriedLachit Borphukan’s Maidam, Holongapar, Jorhat, Assam, IndiaAllegianceAhom KingdomService/branchAhom ArmyRankBorphukan (General)Commander-in-chiefBattles/wars Ahom–Mughal conflicts Battle of Alaboi (1669) Battle of Saraighat (1671) MemorialsHolongapar,...

Moroccan karateka (born 2001) Nabil Ech-ChaabiNabil Ech-Chaabi at the 2018 Summer Youth OlympicsPersonal informationBorn (2001-06-04) 4 June 2001 (age 22)SportCountryMoroccoSportKarateWeight class84 kgEventKumite Medal record Men's karate Representing  Morocco World Games 2022 Birmingham Kumite 84 kg African Games 2019 Rabat Kumite 84 kg 2019 Rabat Team kumite Islamic Solidarity Games 2021 Konya Kumite 84 kg Summer Youth Olympics 2018 Buenos Aires Kumite +68 kg Nabil Ech-Chaabi...

Tom Clancy's Ghost Recon Advanced Warfighter Розробник Ubisoft Paris (Xbox 360) (кампанія) Red Storm Entertainment (Xbox 360) (мультиплеєр) Ubisoft Shanghai (Xbox) Ubisoft Paris (PS2) GRIN (Windows)Видавець Ubisoft EntertainmentДистриб'ютор Steam і Microsoft StoreЖанр(и) багатожанровий гра: action, тактичний шутер, вид від першої особиПлатформа Xbox 360, Xbox, PlayStation 2, �...

Islandia Pemakaian 100100 Perbandingan 25:18 Dipakai 1944 Rancangan Salib Nordik Perancang Matthias Thordarson Varian bendera Islandia Pemakaian 011011 Perbandingan 37:18 Bendera Islandia diadopsi pada tahun 1944. Sama seperti negara negara Nordik lainnya, Islandia menampilkan salib Nordik pada benderanya. Salib Nordik pada bendera Islandia berwarna merah dengan tepian putih. Bendera ini didesain oleh Matthías Þórðarson. Makna dan filosofi Warna biru yang mendominasi bendera Islandia mela...

تحتاج النصوص المترجمة في هذه المقالة إلى مراجعة لضمان معلوماتها وإسنادها وأسلوبها ومصطلحاتها ووضوحها للقارئ، لأنها تشمل ترجمة اقتراضية أو غير سليمة. فضلاً ساهم في تطوير هذه المقالة بمراجعة النصوص وإعادة صياغتها بما يتناسب مع دليل الأسلوب في ويكيبيديا. (يناير 2021) أساناالخ...