Information about Message Queue
In computer science, a message queue is a software-engineering component used for interprocess communication or inter-thread communication within the same process. It uses a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.
Most message queues have set limits on the size of data that can be transmitted in a single message. Those that do not have such limits are known as mailboxes.
Many implementations of message queues function internally: within an operating system or within an application. Such queues exist for the purposes of that system only.
Other implementations allow the passing of messages between different computer systems, potentially connecting multiple applications and multiple operating systems. These message queueing systems typically provide enhanced resilience functionality to ensure that messages do not get "lost" in the event of a system failure. Examples of commercial implementations of this kind of message queueing software (also known as Message Oriented Middleware) include IBM's WebSphere MQ (formerly MQ Series), Fiorano's MQ, Oracle Advanced Queuing (AQ) within an Oracle database, and Microsoft's MSMQ. There is a Java standard called Java Message Service, which has, associated with it, a number of implementations, both proprietary and open source.
There are a number of open source choices of messaging middleware systems, including JBoss Messaging, JORAM, ActiveMQ, RabbitMQ (an implementation, in Erlang, of AMQP), ISectd, Skytools PgQ (runs atop PostgreSQL, created by Skype).
Most RTOSes, such as VxWorks and QNX operating systems encourage the use of message queueing as the primary IPC or inter-thread communication mechanism. The resulting tight integration between message passing and CPU scheduling is attributed as a main reason for the usability of RTOSes for real time applications. Early examples of commercial RTOSes that encouraged a message-queue basis to inter-thread communication also include VRTX and pSOS+, both of which date to the early 1980s.
An application then registers a software routine that "listens" for messages placed onto the queue.
Second and subsequent applications may connect to the queue and transfer a message onto it.
The queue-manager software stores the messages until a receiving application connects and then calls the registered software routine. The receiving application then processes the message in an appropriate manner...
There are often numerous options as to the exact semantics of message passing, including:
In a synchronous model, one system makes a connection to another, sends a request and waits for a reply.
In many situations this makes perfect sense; for example, a user sends a request for a web page and then waits for a reply.
However, other scenarios exist in which such behaviour is not appropriate. For example, an application may need to notify another that an event has occurred, but does not need to wait for a response. Another example occurs in publish/subscribe systems, where an application "publishes" information for any number of clients to read. In both these examples it would not make sense for the sender of the information to have to wait if, for example, one of the recipients had crashed.
Alternatively, an interactive application may need to respond to certain parts of a request immediately (such as telling a customer that a sales request has been accepted, and handling the promise to draw on inventory), but may queue other parts (such as completing calculation of billing, forwarding data to the central accounting system, and calling on all sorts of other services) to be done some time later.
In all these sorts of situations, having a subsystem which does asynchronous message-queuing (or alternatively, a broadcast messaging system) can help improve the behaviour of the overall system.
..... Click the link for more information.
Resilience generally means the ability to recover from (or to resist being affected by) some shock, insult, or disturbance. However, it is used quite differently in different fields.
..... Click the link for more information.
Overview
Message queues provide an asynchronous communications protocol, meaning that the sender and receiver of the message do not need to interact with the message queue at the same time. Messages placed onto the queue are stored until the recipient retrieves them.Most message queues have set limits on the size of data that can be transmitted in a single message. Those that do not have such limits are known as mailboxes.
Many implementations of message queues function internally: within an operating system or within an application. Such queues exist for the purposes of that system only.
Other implementations allow the passing of messages between different computer systems, potentially connecting multiple applications and multiple operating systems. These message queueing systems typically provide enhanced resilience functionality to ensure that messages do not get "lost" in the event of a system failure. Examples of commercial implementations of this kind of message queueing software (also known as Message Oriented Middleware) include IBM's WebSphere MQ (formerly MQ Series), Fiorano's MQ, Oracle Advanced Queuing (AQ) within an Oracle database, and Microsoft's MSMQ. There is a Java standard called Java Message Service, which has, associated with it, a number of implementations, both proprietary and open source.
There are a number of open source choices of messaging middleware systems, including JBoss Messaging, JORAM, ActiveMQ, RabbitMQ (an implementation, in Erlang, of AMQP), ISectd, Skytools PgQ (runs atop PostgreSQL, created by Skype).
Most RTOSes, such as VxWorks and QNX operating systems encourage the use of message queueing as the primary IPC or inter-thread communication mechanism. The resulting tight integration between message passing and CPU scheduling is attributed as a main reason for the usability of RTOSes for real time applications. Early examples of commercial RTOSes that encouraged a message-queue basis to inter-thread communication also include VRTX and pSOS+, both of which date to the early 1980s.
Usage
In a typical message-queueing implementation, a system administrator installs and configures off-the-shelf message-queueing software (a queue manager), and defines a named message queue.An application then registers a software routine that "listens" for messages placed onto the queue.
Second and subsequent applications may connect to the queue and transfer a message onto it.
The queue-manager software stores the messages until a receiving application connects and then calls the registered software routine. The receiving application then processes the message in an appropriate manner...
There are often numerous options as to the exact semantics of message passing, including:
- Durability (e.g. - whether or not queued data can be merely kept in memory, or if it mustn't be lost, and thus must be stored on disk, or, more expensive still, it must be committed more reliably to a DBMS)
- Security policies
- Message purging policies - queues or messages may have a TTL (Time To Live)
- Some systems support filtering data so that a subscriber may only see messages matching some pre-specified criteria of interest
- Delivery policies - do we need to guarantee that a message is delivered at least once, or no more than once?
- Routing policies - in a system with many queue servers, what servers should receive a message or a queue's messages?
- Batching policies - should messages be delivered immediately? Or should the system wait a bit and try to deliver many messages at once?
- When should a message be considered "enqueued"? When one queue has it? Or when it has been forwarded to at least one remote queue? Or to all queues?
- A publisher may need to know when (some|all) subscribers have received a message.
Synchronous vs. asynchronous
Many of the more widely-known communications protocols in use operate synchronously. The HTTP protocol – used in the World Wide Web and in web services – offers an obvious example.In a synchronous model, one system makes a connection to another, sends a request and waits for a reply.
In many situations this makes perfect sense; for example, a user sends a request for a web page and then waits for a reply.
However, other scenarios exist in which such behaviour is not appropriate. For example, an application may need to notify another that an event has occurred, but does not need to wait for a response. Another example occurs in publish/subscribe systems, where an application "publishes" information for any number of clients to read. In both these examples it would not make sense for the sender of the information to have to wait if, for example, one of the recipients had crashed.
Alternatively, an interactive application may need to respond to certain parts of a request immediately (such as telling a customer that a sales request has been accepted, and handling the promise to draw on inventory), but may queue other parts (such as completing calculation of billing, forwarding data to the central accounting system, and calling on all sorts of other services) to be done some time later.
In all these sorts of situations, having a subsystem which does asynchronous message-queuing (or alternatively, a broadcast messaging system) can help improve the behaviour of the overall system.
External Links
- IPC Message Queue Example An example of an IPC message queue server-client written for a university level operating systems class.
- Minimalist Queue Service (MQS) - a simple MQ system implemented in Perl that provides a simple set of XML-RPC methods to offer asynchronous messaging
Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.
..... Click the link for more information.
..... Click the link for more information.
Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.[1] The term software engineering
..... Click the link for more information.
..... Click the link for more information.
Component-based software engineering (CBSE) (also known as Component-Based Development (CBD) or Software Componentry) is a branch of the software engineering discipline, with emphasis on decomposition of the engineered systems into functional or logical components
..... Click the link for more information.
..... Click the link for more information.
Inter-Process Communication (IPC) is a set of techniques for the exchange of data among two or more threads in one or more processes. Processes may be running on one or more computers connected by a network.
..... Click the link for more information.
..... Click the link for more information.
thread in computer science is short for a thread of execution. Threads are a way for a program to fork (or split) itself into two or more simultaneously (or pseudo-simultaneously) running tasks.
..... Click the link for more information.
..... Click the link for more information.
queue (pronounced /kjuː/) is a particular kind of collection in which the entities in the collection are kept in order and the principal (or only) operations on the collection are the addition of entities to the rear terminal position and removal of entities from the front
..... Click the link for more information.
..... Click the link for more information.
In computer science, message passing is a form of communication used in concurrent computing, parallel computing, object-oriented programming, and interprocess communication. Communication is made by the sending of messages to recipients.
..... Click the link for more information.
..... Click the link for more information.
For other uses, see Asynchrony.
In telecommunications, Asynchronous communication is transmission of data without the use of an external clock signal. Any timing required to recover data from the communication symbols is encoded within the symbols...... Click the link for more information.
computing protocols, see Protocol (computing). For protocols on two-way voice communications, see Voice procedure. For other meanings of the word protocol, see Protocol.
..... Click the link for more information.
..... Click the link for more information.
An operating system (OS) is the software that manages the sharing of the resources of a computer. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the
..... Click the link for more information.
..... Click the link for more information.
Application software is a subclass of computer software that employs the capabilities of a computer directly and thoroughly to a task that the user wishes to perform. This should be contrasted with system software which is involved in integrating a computer's various capabilities,
..... Click the link for more information.
..... Click the link for more information.
System (from Latin systēma, in turn from Greek σύστημα systēma) is a set of entities, real or abstract, where each entity interacts with, or is related to, at least one other
..... Click the link for more information.
..... Click the link for more information.
For the band, see Resilience (band).
Resilience generally means the ability to recover from (or to resist being affected by) some shock, insult, or disturbance. However, it is used quite differently in different fields.
..... Click the link for more information.
Computer software is a general term used to describe a collection of computer programs, procedures and documentation that perform some task on a computer system. [1]
..... Click the link for more information.
..... Click the link for more information.
Message-oriented middleware comprises a category of inter-application communication software that generally relies on asynchronous message-passing as opposed to a request/response metaphor.
..... Click the link for more information.
..... Click the link for more information.
International Business Machines Corporation
Public (NYSE: IBM )
Founded 1889, incorporated 1911
Headquarters Armonk, New York, USA
Key people Samuel J.
..... Click the link for more information.
Public (NYSE: IBM )
Founded 1889, incorporated 1911
Headquarters Armonk, New York, USA
Key people Samuel J.
..... Click the link for more information.
IBM WebSphere MQ is a network communication technology launched by IBM in March 1992. It was previously known as MQSeries, which is a trademark that was rebranded by IBM in 2002 to join the suite of WebSphere products.
..... Click the link for more information.
..... Click the link for more information.
IBM WebSphere MQ is a network communication technology launched by IBM in March 1992. It was previously known as MQSeries, which is a trademark that was rebranded by IBM in 2002 to join the suite of WebSphere products.
..... Click the link for more information.
..... Click the link for more information.
Fiorano may refer to:
..... Click the link for more information.
- Fiorano Modenese, a comune in Italy.
- Fiorano Circuit, a test circuit owned and utlized by Ferrari, located on the outskirts of Fiorano Modenese.
..... Click the link for more information.
In computing, Oracle Advanced Queuing (AQ) comprises a species of message-oriented middleware developed by Oracle Corporation and integrated into its Oracle database.
..... Click the link for more information.
..... Click the link for more information.
Oracle Database (commonly referred to as Oracle RDBMS or simply as Oracle), a relational database management system (RDBMS) software product released by Oracle Corporation, has become a major feature of database computing.
..... Click the link for more information.
..... Click the link for more information.
Microsoft Corporation
Public (NASDAQ: MSFT )
Founded Albuquerque, New Mexico, USA (April 4 1975)[1]
Headquarters Redmond, Washington, United States
Key people Bill Gates, Co-founder and Executive Chairman ;
Paul Allen, Co-founder ;
..... Click the link for more information.
Public (NASDAQ: MSFT )
Founded Albuquerque, New Mexico, USA (April 4 1975)[1]
Headquarters Redmond, Washington, United States
Key people Bill Gates, Co-founder and Executive Chairman ;
Paul Allen, Co-founder ;
..... Click the link for more information.
Microsoft Message Queuing or MSMQ is a technology developed by Microsoft and deployed in its Windows Server operating systems since Windows NT 4 and Windows 95. In addition to its mainstream server platform support, MSMQ has been incorporated into Microsoft Embedded
..... Click the link for more information.
..... Click the link for more information.
Java
Paradigm: Object-oriented, structured, imperative
Appeared in: 1995
Designed by: Sun Microsystems
Typing discipline: Static, strong, safe, nominative
Major implementations: Numerous
Influenced by: Objective-C, C++, Smalltalk, Eiffel,[1]
..... Click the link for more information.
Paradigm: Object-oriented, structured, imperative
Appeared in: 1995
Designed by: Sun Microsystems
Typing discipline: Static, strong, safe, nominative
Major implementations: Numerous
Influenced by: Objective-C, C++, Smalltalk, Eiffel,[1]
..... Click the link for more information.
The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a specification developed under the Java Community Process as JSR 914.
..... Click the link for more information.
Version history
- JMS 1.0.
..... Click the link for more information.
JBoss Messaging is the new JBoss enterprise asynchronous messaging system. It supersedes JBoss MQ as the default Java Message Service (JMS) provider in JBoss Application Server (JBoss AS) 5 .
..... Click the link for more information.
..... Click the link for more information.
Apache ActiveMQ is an open source (Apache 2.0 licensed) message broker which fully implements the Java Message Service 1.1 (JMS). It provides "Enterprise Features"[1]
..... Click the link for more information.
..... Click the link for more information.
PostgreSQL is an object-relational database management system (ORDBMS). It is released under a BSD-style license and is thus free software. As with many other open-source programs, PostgreSQL is not controlled by any single company, but relies on a global community of developers
..... Click the link for more information.
..... Click the link for more information.
Maintainer: Skype Limited
OS: Cross-platform
Use: P2P/VoIP/instant messaging/
video call/videophone
License: Freeware (with some non-free features)
Website: www.skype.
..... Click the link for more information.
OS: Cross-platform
Use: P2P/VoIP/instant messaging/
video call/videophone
License: Freeware (with some non-free features)
Website: www.skype.
..... Click the link for more information.
VxWorks is a Unix-like real-time operating system made and sold by Wind River Systems of Alameda, California, USA.
Like most RTOSes, VxWorks includes a multitasking kernel with pre-emptive scheduling and fast interrupt response, extensive inter-process communications and
..... Click the link for more information.
Like most RTOSes, VxWorks includes a multitasking kernel with pre-emptive scheduling and fast interrupt response, extensive inter-process communications and
..... Click the link for more information.
This article is copied from an article on Wikipedia.org - the free encyclopedia created and edited by online user community. The text was not checked or edited by anyone on our staff. Although the vast majority of the wikipedia encyclopedia articles provide accurate and timely information please do not assume the accuracy of any particular article. This article is distributed under the terms of GNU Free Documentation License.
Herod_Archelaus