|
To meet Wikipedia's quality standards, this article or section may require cleanup. Please discuss this issue on the talk page, or replace this tag with a more specific message. Editing help is available. This article has been tagged since December 2005. 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. Application software is a loosely defined subclass of computer software that employs the capabilities of a computer directly to a task that the user wishes to perform. ...
A computer network is a system for communication among two or more computers. ...
Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ...
Asynchrony is the state of not being synchronized. ...
In computer science, Message passing is used in concurrent programming, parallel programming, and object-oriented programming, to accomplish communication by sending messages to recipients. ...
Most message-oriented middleware (MOM) depends on a message queue system, although some implementations rely on broadcast or on multicast messaging systems. In computer science, a message queue is a software-engineering component used for interprocess communication. ...
The word broadcast can refer to: Broadcasting, the transmission of audio and video signals. ...
Orange circles represent endpoints, and green circles represent routing points. ...
Origins Middleware arrived on the computing landscape comparatively late. It emerged in the 1980s as a solution to the problem of how to link new applications to older legacy systems. It also facilitated distributed processing – the connection of multiple applications together to create a larger application, usually over a network. To meet Wikipedias quality standards, this article or section may require cleanup. ...
This article or section should include material from Distributed programming This article or section should include material from Distributed system Distributed computing is the process of aggregating the power of several computing entities to collaboratively run a single computational task in a transparent and coherent way, so that they appear...
A computer network is a system for communication between computers. ...
A requirements fable The case of a large high-street bank provides a good example of how middleware emerged as a business requirement: Ilfracombe High Street, Devon, England High Street, or the High Street is the generic name (and frequently the official name) of the business street of towns or cities in the United Kingdom . ...
Wall Street, Manhattan In economics, business refers to the social science of managing people to organize and maintain collective productivity toward accomplishing particular creative and productive goals. ...
The bank had stored all its customer details on its large mainframe since the 1960s. This mainframe remained in heavy use and underwent several upgrades. Mainframes (often colloquially referred to as big iron) are large and expensive computers used mainly by government institutions and large companies for legacy applications, typically bulk data processing (such as censuses, industry/consumer statistics, ERP, and bank transaction processing). ...
Although ground-breaking in its day, the mainframe's usefulness to the bank’s staff diminished as the bank introduced new, separate applications based on personal computers (PCs), allowing the bank’s staff to offer customers new services that the mainframe could not support. An ideal situation would allow the PC-based application to link to the older mainframe application and allow the mainframe and the PCs to share each others' data. Accessing the mainframe’s data offers two advantages: Data is the plural of datum. ...
- new front-end PC applications can replace the old user-unfriendly mainframe terminals
- PC-based systems can use the data from the mainframe in new ways — previously impracticable due to the constraints of the mainframe’s software
Up until the late 1980s systems builders had no easy way to link these different applications together. Developers faced several challenges: - the developers would have to construct a separate software ‘adapter’ on both systems to translate data from source applications into a format that the destination system could understand (and vice versa).
- the processing speed of each system would contrain the other system. For example, if the mainframe ran slowly, the PC-based application would have to wait until the mainframe caught up, thereby slowing down the PC application.
- communications programmers would need to install a network gateway system to form a bridge between the mainframe’s network and the PC network if the different systems used different network protocols. The gateway would translate the network packets from the source system and pass them on to the destination system using the destination system’s protocol.
Such issues made integration between applications difficult. Much of such integration also required re-engineering every time two applications on disparate platforms needed linking together, as every situation differed to some extent. By devoting effort to linking together applications on different systems, IT departments started to spend nine or ten times the amount spent on original development per sub-system. A software developer is a programmer who is concerned with one or more facets of the software development process, a somewhat broader scope of computer programming. ...
Developers apparently needed a separate piece of software that would literally sit in the middle of two or more applications and would handle all the ‘plumbing’ between the two systems. Such software needed the intelligence to handle different platforms, different programming languages, various network protocols and diverse hardware. Developers allegedly wanted to remove themselves from the complexities of the underlying computing infrastructure so that they could focus on functionality within actual applications. In computing, a platform describes some sort of framework, either in hardware or software, which allows software to run. ...
Programming language is the current computer science collaboration of the week! Please help improve it to featured article standard. ...
In networking, a communications protocol or network protocol is the specification of a set of rules for a particular type of communication. ...
Hardware is the general term that is used to describe physical artifacts of a technology. ...
Towards the end of the 1980s middleware began to emerge which attempted to address these issues. Initial middleware offerings addressed specific handfuls of platforms or languages and thus had limited usefulness. Over time, however, middleware products have become more and more advanced, supporting multiple platforms, languages and protocols. The ability of middleware to link together disparate systems across a heterogeneous network environment offers only one example of the benefits of this dominant technology. Middleware as of 2006 provides a whole raft of new functionality that augments and enhances the existing applications that it interconnects. A heterogeneous network is a network connecting computers and other devices with different operating systems and protocols. ...
2006 is a common year starting on Sunday of the Gregorian calendar. ...
Advantages The primary advantage of a message-based communications protocol lies in its the ability to store, route or transform messages in the process of delivery. In computing, a protocol is a convention or standard that controls or enables the connection, communication, and data transfer between two computing endpoints. ...
Message in its most general meaning is an object of communication. ...
Storage Most MOM systems provide persistent storage to back up the message transfer medium. This means that the sender and receiver do not need to connect to the network at the same time (asynchronous delivery). This becomes particularly useful when dealing with intermittent connections, such as unreliable networks, casual users or timed connections. 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 store for later processing when the receiver restarts. Persistence may refer to: in computer science, to describe the characteristic of data that outlives the execution of the program that created it: which is achieved in practice by storing the data in non-volatile storage such as a file system or a relational database. ...
To meet Wikipedias quality standards, this article or section may require cleanup. ...
Asynchrony is the state of not being synchronized. ...
Routing MOM delivers another important advantage through its ability to route messages within the middleware layer itself. Taking things a step further, middleware messaging can deliver a single message to more than one recipient (broadcast or multicast). A layer is the following: In abstraction, a layer is an abstract place conceived as having depth. ...
The word broadcast can refer to: Broadcasting, the transmission of audio and video signals. ...
Orange circles represent endpoints, and green circles represent routing points. ...
Transformation In a message-based middleware system, the recipient's message need not replicate the sender's message exactly. A MOM system with built-in intelligence can transform messages en-route to match the requirements of the sender or of the recipient. 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. Transformation may refer to: In molecular biology: In genetics transformation involves the genetic alteration of a cell resulting from the introduction, uptake and expression of foreign DNA. In cell division, the transformation process converts normal cells into cells that will continue to divide without limit. ...
A software developer is a programmer who is concerned with one or more facets of the software development process, a somewhat broader scope of computer programming. ...
A graphical user interface (or GUI, often pronounced gooey) is a method of interacting with a computer through a metaphor of direct manipulation of graphical images and widgets in addition to text. ...
Drag-and-drop refers to the act of (or support for the act of) clicking on a virtual object and dragging it to, or onto, another virtual object. ...
The Remote Action Interface (RAI) defines many of the principles of MOM more clearly. The Remote Action Interface closes the gap between the network, messaging, and programming environments. Although MOM presents an ideal, the RAI defines the implementation.
Disadvantages The primary disadvantage of message oriented middleware stems from it requiring an extra component in the architecture, the message transfer agent. 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. Software architecture or software systems architecture can best be thought of as a representation of an engineered (or To Be Engineered) software system, and the process and discipline for effectively implementing the design(s) for such a system. ...
A mail transfer agent or MTA (also called a mail server, or a mail exchange server in the context of the Domain Name System) is a computer program or software agent which transfers electronic mail messages from one computer to another. ...
Look up system in Wiktionary, the free dictionary. ...
This article needs to be cleaned up to conform to a higher standard of quality. ...
Reliability concerns quality or consistency. ...
Software maintenance is one of the activities in software engineering, and is the process of enhancing and optimizing deployed software (software release), as well as remedying defects. ...
In addition, many inter-application communications have an intrinsically synchronous aspect, with the sender specifically wanting to wait for a reply 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. Synchronization is coordination with respect to time. ...
It has been suggested that this article or section be merged into Real-time. ...
The term near real time pertains to the delay introduced, by automated data processing or network transmission, between the occurrence of an event and the use of the processed data, for display or feedback and control purposes. ...
Asynchrony is the state of not being synchronized. ...
Lack of standards The lack of standards governing the use of message oriented middleware has caused problems. All the major vendors have their own implementations, each with its own application programming interface (API) and management tools. Standardization, in the context related to technologies and industries, is the process of establishing a technical standard among competing entities in a market, where this will bring benefits without hurting competition. ...
An application programming interface (API) is the interface that a computer system, library or application provides in order to allow requests for service to be made of it by other computer programs, and/or to allow data to be exchanged between them. ...
The Java EE programming environment provides a standard API called JMS (Java Message Service), implemented by the most of MOM vendors and aiming to hide the particular MOM implementations. Java 2 Platform, Enterprise Edition or Java EE (formerly also J2EE) is a programming platform â part of the Java platform â for developing and running distributed multi-tier architecture applications, based largely on modular components running on an application server. ...
The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. ...
MOM Products |