------《面向模式的软件架构》(卷4)------
支持分布式的3个层次的技术:Ad hoc网络编程、结构化通信、中间件。
1.Ad hoc网络编程:主要依靠进程间通信机制(IPC)如共享内存、管道、套接字(socket)。
2.结构化通信:通过提供较高层次的通信机制,避免了应用代码与底层IPC机制的直接耦合,从而解决了Ad hoc网络编程的限制。
(1)远程过程调用(RPC):
@ RPC平台隐藏了底层的操作系统API和IPC机制的细节;一个程序可以调用另一个程序的函数。
3.中间件:驻留在应用和底层的操作系统、网络及数据库之间,提供分布式系统所需的基础设施功能(解决了结构化通信不能解决的诸如异构组件、位置独立的组件等很多问题。从而使开发人员可以集中精力,关注他们的首要任务:实现应用领域相关的功能)。
(1)分布式对象计算(DOC)中间件:
@ 它代表了两种主要信息技术的结合,基于RPC的分布式计算系统和面向对象的设计与编程技术。
@ CORBA和java RMI是分布式对象计算中间件技术的典范。它们通过在客户端和服务器端之间定义接口规范,以便客户端可以调用服务器所提供的对象服务而不必知道其具体位置。
@ CORBA还允许自定义通信协议以及对象信息模型,这使得由不同语言编写的在不同平台上运行的各种应用能够互相协作。
java RMI:http://lavasoft.blog.51cto.com/62575/91679 http://javapub.iteye.com/blog/767200
CORBA:http://lavasoft.blog.51cto.com/62575/240268
(2)组件中间件(为了解决DOC的问题):
@ EJB和CORBA组件模型(CCM)是组件中间件技术的典范。
(3)发布/订阅中间件和面向消息的中间件:
@ RPC平台、DOC中间件和组件中间件技术,都是基于请求/响应的通行模型。对那些需要对外界刺激和事件做出反应的系统,就不大适用了,包括:1.采用客户端/服务器的同步通信方式时,模型不能充分利用网络和终端系统的并行输入能力;2.采用指定的通信方式,客户端必须知道服务器的标识,这会导致其与特定的接收方紧耦合;3.若使用点对点的通信方式,则客户端同一时刻只能和一个服务器通信。
@ 面向消息的中间件--IBM_MQ系列、BEA_Message Q等--主要优点在于支持异步通信,发送方不需要阻塞以等待接收方的响应。
@ 发布/订阅中间件--JMS(ActiveMQ)、数据发布服务(DDS)等--特点是允许运行在独立节点的应用。---例子:ActiveMQ服务器运行在独立的主机上,另外一台主机可以往ActiveMQ服务器发送消息,第三台机子可以从ActiveMQ服务器获取消息。
ActiveMQ:http://www.cnblogs.com/nju347/p/3719519.html
4.面向服务架构(SOA)和Web服务:
Web服务:http://blog.csdn.net/hdl62402/article/details/4306806
原文地址:http://www.cnblogs.com/nju347/p/3734459.html