Welcome

Middleware is computer software that integrates software modules or applications. The software consists of a group of enabling services that allow multiple processes running on one or more systems to interact across a network. This technology grew to provide for interoperability in support of the move to coherent distributed system architectures and operating systems, which are used most often to support and ease complex, distributed applications. It includes internet web servers, application servers, and common tools that provide application development and delivery. Middleware is especially integral to modern information technology based on RPC, CORBA, XML, Web services, and service-oriented architecture (SOA).

.

comparison: rpc vs. mom

Feature

RPC

Advantage

MOM

Client/Server model

Unlimited clients and servers with multiple brokers running anywhere in the network

RPC

Multiple clients with multiple servers restricted to limited number of queues on pre-determined servers in the network.

Client/Server relationship

Synchronous with Asynchronous possible. Clients and Servers designed to run concurrently. Clients can choose not to wait on Server response by using asynchronous option.

RPC

Asynchronous. Clients and Servers may operate at different times and speeds, response to Client is not guaranteed (synchronous not possible). Also, message queue backups can cause performance problems.

Platform Support

Unlimited; every vendor in the world supports RPC.

RPC

Limited platform support for MOMs

Communication

Listen, Connect, Accept

NA

Post a message then wait

Administration and Monitoring

Many different commercially available monitors.

RPC

None

Scalability

Easily done by starting additional servers based on load.

RPC

Very difficult to scale because there is no way to distribute queues dynamically.

Load-balancing

Can be accomplished with performance monitors and application management systems.

RPC

Requires a monitor to manage more than as single queue. Single queue can be used to implement FIFO or priority based policy

Transactional Support

Yes; easily supported with RPC.

RPC

Limited (Some Products) Message Queue can participate in the commit synchronization

Message Filtering

No

MOM

Yes

Performance

Very Fast

RPC

Very Slow. An intermediate hop is required

Asynchronous processing

Yes; easily implemented with callback.

NONE

Yes. Queues and triggers are required