|
Component communication style |
The manner in which components interact (as client and server, or
sender and receiver), which can be direct or via intermediaries. There are
three broad categories: ·
Point to point ·
Introduction agent ·
Mediator. |
|
Point-to-point communication |
A sender (or client) is coupled to a receiver (or
server). More precisely defined by two features: 1) The sender is responsible for knowing or
determining both the location of the receiver, and a protocol and data format
the receiver understands. 2) A message is sent by one sender and received
by one receiver. Strength: simple to implement. Weaknesses:
potential duplication of data transformation and routing code, high
configuration cost of receiver address changes. |
|
Point-to-point middleware |
A technology that enables a programmer to write
distributed software, in which client/sender and server/receiver modules run
on different computers. The theory is to make a remote invocation appear
to a programmer as though it is a local invocation of a process within the
same name space on the same computer. In practice, remote invocation is more
complex. The server module is slower to respond, less
certainly available, less reliable and distribution raises security concerns.
On the other hand, the server is more scalable, since it can be scaled out to
parallel servers. Technologies that can be used to enable
point-to-point communication (as well as other kinds of communication)
include: |
|
Remote Procedure Call (RPC) |
A technology that enables a client to find an
automated service on a remote machine, and invoke a named procedure in this
different name space. The client sends a fixed set of parameters and waits
for the answer to be returned in message using the same interface. (E.g. XML-RPC uses XML to encode its calls and
HTTP as a transport mechanism.) RPC can be used to implement both SOA and DO
interoperation styles. In DO, since it invokes a procedure as an
object-method pair, it is often called Remote Method Invocation. (And RMI is
the name of Java's Java Remote Method Invocation API.) |
|
Web services |
A technology that enables a client to find an
automated service and invoke it using the SOAP protocol to exchange XML-based
messages. Usually over a network. Usually via HTTP/HTTPS -
but also SMTP. Web services can be stateless or stateful, and
invoked synchronously of asynchronously. So though they are commonly
associated with SOA, they can also be used to implement a Distributed Object
style of interoperation. |
|
Introduction agent (direct broker) communication |
An indirect broker helps parties to communicate.
It decouples clients and servers, at least to the extent that the two parties
can work in different places. It hides some complexities of the communication
transport. The broker must register parties willing to
communicate (end point registration). The broker can then establish initial
connection when a client requests a service from a server. Subsequently, the
parties communicate point-to-point via client-side and server-side proxies,
which is faster than via a mediator broker. |
|
Introduction agent (direct broker) middleware |
Technologies that can be used to implement the
introduction agent kind of distribution. They add overheads on top of RPC. |
|
Object Request Broker (ORB) |
A technology that enables the objects in an
object-oriented program to be distributed between computers. A technology
programmers need to get one distributed object to call an operation on
another. E.g. Microsoft ORBs include DCOM and .Net
remoting. |
|
Common Object Request Broker Architecture (CORBA) |
Standards for an object request broker to comply
with, defined by the OMG. It uses CORBA IDL and IIOP. |
|
Internet Inter-ORB Protocol (IIOP) |
A standard for technologies used to send objects (rather
than messages) over TCP/IP. |
|
Web service broker |
A technology that uses Universal Description
Discovery and Integration (UDDI) as the API for registration and location of
web services. It offers a SOAP-based web service for finding and registering
web services. |
|
Mediator communication |
An indirect broker helps parties to communicate.
It decouples clients and servers by sitting between them. It means the
parties can work at different places and times (asynchronously). It can
shield one party from some effects of some changes to the other. It does for components what email infrastructure
does for people, that is, enable them to communicate asynchronously via
messages - rather than talk directly over an end-to-end network connection kept
open for that conversation. |
|
Shared memory architectures |
Any shared memory space can act as a mediator,
since communicating parties can post messages to the shared memory and read
messages from it – as in the blackboard pattern. |
|
Message broker (indirect broker) distribution |
A message broker is a mediator that forwards
communications. It: ·
provides a shared
infrastructure for sending messages to recipients. ·
hides some complexities of
the communication transport. ·
offers common command
messages. ·
enables end point
registration: the broker registers parties willing to communicate. ·
enables routing: the broker
locates parties and sends them messages ·
enables transformation:
the broker converts data formats. |
|
Message Router Distribution |
The message broker sends a message where the
sender directs. The client communicates the logical name of the server to the
broker. The broker looks up the server that is registered under the logical
name and passes the communication to the server. |
|
Schema-based Distribution |
The message broker uses a common data format to
reduce the cost of adding and removing communicating parties. It provides a
common data model, a set of agreed-upon message schemas. |
|
Message broker (indirect broker) middleware |
A Message-Oriented Middleware (MOM) technology
that sits between communicating components; it stores and forwards messages
according to the required styles of interoperation and communication. MOM technologies may be used to implement any
communication style. They may use RPC or P2P technology under the covers. |
|
Message Queuing technology (MQ) |
A message broker that stores and forwards messages.
It smooths demand for server operations, since the server works at its own
pace, but can reduce client response time. |