All Topics  
Message passing

 

   Email Print
   Bookmark   Link






 

Message passing



 
 
Message passing in computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, is a form of communication used in parallel computing
Parallel computing

Parallel computing is a form of computing in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved Concurrency ....
, object-oriented programming
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
, and interprocess communication.

unication is made by the sending of messages to recipients. Forms of messages include function invocation, signals, and data packets. Prominent models of computation based on message passing include the Actor model
Actor model

In computer science, the Actor model is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent digital computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message receiv...
 and the process calculi.

Microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as low-level address space management, thread management, and inter-process communication....
 operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s pass messages between one kernel and one or more server blocks.

Distributed object and remote method invocation systems like ONC RPC, Corba
Çorba

Chorba , shurpa , sorpa , or shorpo is one of various kinds of soup or stew found in national cuisines across Eurasia. The term is likely of Persian language or Turkic languages origin....
, Java RMI, DCOM
Distributed component object model

Distributed Component Object Model is a proprietary software Microsoft technology for communication among software componentry distributed across networked computers....
, SOAP, .NET Remoting
.NET Remoting

.NET Remoting is a Microsoft application programming interface for Inter-process communication released in 2002 with the 1.0 version of .NET Framework....
, QNX Neutrino RTOS, OpenBinder
OpenBinder

OpenBinder is a system for Inter-process communication. It was developed at Be Inc. and then Palm, Inc. and has more recently been used in the Android mobile phone platform developed by Google....
, D-Bus
D-Bus

D-Bus is a simple inter-process communication system for software applications to communicate with one another. D-Bus was heavily influenced by KDE2–3's DCOP system and has replaced it in the KDE 4 release; it is supported on Linux, Microsoft Windows and Apple OS X operating systems and is used by Qt 4 and GNOME....
 and similar are message passing systems. The term is also used in High Performance Computing using Message Passing Interface
Message Passing Interface

Message Passing Interface is a specification for an API that allows many computers to communicate with one another. It is used in computer clusters and supercomputers....
.

The concept of message passing is also used in Bayesian inference
Bayesian inference

Bayesian inference is statistical inference in which evidence or observations are used to update or to newly infer the probability that a hypothesis may be true....
 over Graphical models.

age passing systems have been called "shared nothing" systems because the message passing abstraction hides underlying state changes that may be used in the implementation of sending messages.

Message passing model based programming languages typically define messaging as the (usually asynchronous) sending (usually by copy) of a data item to a communication endpoint (Actor, process, thread, socket, etc.).






Discussion
Ask a question about 'Message passing'
Start a new discussion about 'Message passing'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Message passing in computer science
Computer science

Computer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems....
, is a form of communication used in parallel computing
Parallel computing

Parallel computing is a form of computing in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved Concurrency ....
, object-oriented programming
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
, and interprocess communication.

Overview

Communication is made by the sending of messages to recipients. Forms of messages include function invocation, signals, and data packets. Prominent models of computation based on message passing include the Actor model
Actor model

In computer science, the Actor model is a mathematical model of concurrent computation that treats "actors" as the universal primitives of concurrent digital computation: in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message receiv...
 and the process calculi.

Microkernel
Microkernel

In computer science, a microkernel is a computer kernel which provides the mechanisms needed to implement an operating system, such as low-level address space management, thread management, and inter-process communication....
 operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s pass messages between one kernel and one or more server blocks.

Distributed object and remote method invocation systems like ONC RPC, Corba
Çorba

Chorba , shurpa , sorpa , or shorpo is one of various kinds of soup or stew found in national cuisines across Eurasia. The term is likely of Persian language or Turkic languages origin....
, Java RMI, DCOM
Distributed component object model

Distributed Component Object Model is a proprietary software Microsoft technology for communication among software componentry distributed across networked computers....
, SOAP, .NET Remoting
.NET Remoting

.NET Remoting is a Microsoft application programming interface for Inter-process communication released in 2002 with the 1.0 version of .NET Framework....
, QNX Neutrino RTOS, OpenBinder
OpenBinder

OpenBinder is a system for Inter-process communication. It was developed at Be Inc. and then Palm, Inc. and has more recently been used in the Android mobile phone platform developed by Google....
, D-Bus
D-Bus

D-Bus is a simple inter-process communication system for software applications to communicate with one another. D-Bus was heavily influenced by KDE2–3's DCOP system and has replaced it in the KDE 4 release; it is supported on Linux, Microsoft Windows and Apple OS X operating systems and is used by Qt 4 and GNOME....
 and similar are message passing systems. The term is also used in High Performance Computing using Message Passing Interface
Message Passing Interface

Message Passing Interface is a specification for an API that allows many computers to communicate with one another. It is used in computer clusters and supercomputers....
.

The concept of message passing is also used in Bayesian inference
Bayesian inference

Bayesian inference is statistical inference in which evidence or observations are used to update or to newly infer the probability that a hypothesis may be true....
 over Graphical models.

Message passing systems and models

Message passing systems have been called "shared nothing" systems because the message passing abstraction hides underlying state changes that may be used in the implementation of sending messages.

Message passing model based programming languages typically define messaging as the (usually asynchronous) sending (usually by copy) of a data item to a communication endpoint (Actor, process, thread, socket, etc.). Such messaging is used in Web Services by SOAP. This concept is the higher-level version of a datagram except that messages can be larger than a packet and can optionally be made reliable, durable
Durable

Durability is the ability to endure. It can refer to:*Durable goods, goods with a long usable life in economics.*Durability , one of the ACID properties....
, secure
Secure

Secure may refer to:*Security, being protected against danger or loss*Security , e.g. secured loans*Secure , a NatureServe conservation status, similar to Least Concern, indicating a species is not at risk of extinction...
, and/or transacted
Database transaction

A database transaction comprises a unit of work performed within a database management system against a database, and treated in a coherent and reliable way independent of other transactions....
.

Messages are also commonly used in the same sense as a means of interprocess communication; the other common technique being streams or pipes, in which data are sent as a sequence of elementary data items instead (the higher-level version of a virtual circuit
Virtual circuit

In telecommunications and computer networks, a virtual circuit , synonymous with virtual connection and virtual channel, is a connection oriented communication service that is delivered by means of packet mode communication....
).

Examples of message passing style

  • Actor model implementation
    Actor model implementation

    In computer science, Actor model implementation concerns implementation issues for the Actor model....
  • Amorphous computing
    Amorphous computing

    Amorphous computing refers to computational systems that use very large numbers of identical, parallel processors each having limited computational ability and local interactions....
  • Antiobjects
    Antiobjects

    The notion of antiobjects is a computational metaphor useful to conceptualize and solve hard problems by swapping computational foreground and background....
  • Flow-based programming
    Flow-based programming

    In computer science, flow-based programming is a programming paradigm that defines application software as networks of "black box" process , which exchange data across predefined connections by message passing....
  • SOAP (protocol)


Influences on other programming models

In the terminology of some object-oriented programming language
Object-oriented programming language

An object-oriented programming language is one that allows or encourages, to some degree, object-oriented programming techniques such as Information hiding, Inheritance , module , and Polymorphism ....
s, a message is the single means to pass control to an object. If the object 'responds' to the message, it has a method
Method (computer science)

In object-oriented programming, a method is a subroutine that is exclusively associated either with a class or with an object . Like a procedure in procedural programming languages, a method usually consists of a sequence of statement to perform an action, a set of input parameter to customize those actions, and possibly an output value...
 for that message.

In pure object-oriented programming
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
, message passing is performed exclusively through a dynamic dispatch
Dynamic dispatch

In computer science, dynamic dispatch is the process of mapping a Message passing to a specific sequence of code at runtime. This is done to support the cases where the appropriate method cannot be determined at compile-time ....
 strategy.

Sending the same message to an object twice will usually result in the object applying the method twice. Two messages are considered to be the same message type, if the name and the arguments
Parameter (computer science)

In computer programming, a parameter is a special kind of variable#In_computer_programming that refers to data that a subroutine receives to operate on....
 of the message are identical.

Objects can send messages to other objects from within their method bodies.

Message passing enables extreme late binding in systems.

Alan Kay
Alan Kay

Alan Curtis Kay is an United States computer scientist, known for his early pioneering work on object-oriented programming and Window graphical user interface design....
 has that message passing is a concept more important than objects in his view of object-oriented programming, however people often miss the point and place too much emphasis on objects themselves and not enough on the messages being sent between them.

Some languages support the forwarding or delegation of method invocations from one object to another if the former has no method to handle the message, but 'knows' another object that may have one.

See also

  • Active message
    Active message

    Active messages are a communications primitive for exploiting the full performance and flexibility of modern computer interconnects. They are often classified as one of the three main types of distributed memory programming, the other two being data parallel and message passing....
  • Database-centric architecture
    Database-centric architecture

    Database-centric architecture or data-centric architecture has several distinct meanings, generally relating to software architectures in which databases play a crucial role....
  • Distributed computing
    Distributed computing

    Distributed computing deals with hardware and software systems containing more than one processing element or Computer data storage element, Concurrent computing processes, or multiple programs, running under a loosely or tightly controlled regime....
  • Dynamic dispatch
    Dynamic dispatch

    In computer science, dynamic dispatch is the process of mapping a Message passing to a specific sequence of code at runtime. This is done to support the cases where the appropriate method cannot be determined at compile-time ....
  • Event loop
    Event loop

    In computer science, the event loop, message dispatcher, message loop or message pump is a programming construct that waits for and dispatches Event-driven programming or Message passing in a Computer program....
  • Inter-process communication
    Inter-process communication

    Inter-Process Communication is a set of techniques for the exchange of data among multiple thread in one or more Process . Processes may be running on one or more computers connected by a computer network....
  • Message loop in Microsoft Windows
    Message loop in Microsoft Windows

    Microsoft Windows programs are Event-driven programming. They act upon Message passing that the operating system posts to the main application thread....
  • Message-oriented middleware
    Message-oriented middleware

    Message-oriented middleware is a client/server infrastructure that increases the interoperability, portability, and flexibility of an application by allowing the application to be distributed over multiple heterogeneous platforms....


Further reading