1.远程过程调用中间件
2.面向对象中间件
3.消息中间件
4.数据库访问中间件
5.交易中间件。
一、
远程过程调用(RPC)是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。
从程序员的角度,RPC采用常规的编程模式:程序代码调用远端过程并将结构返回。当使用RPC时,只需要编写很少的网络程序代码,绝大部分代码由IDL生成。
①用中间件中的IDL对调用顺序加以描述;
②利用IDL编译器对这种定义和描述进行编译,从而生成支持客户机和服务器进行通信的管道;
③在服务器端,被调用的远端过程需单独编写,并被置入服务器端框架,同时要在远程过程调用中间件中进行注册,以备调用。
④启动 本地客户端存根,存根困绑远端过程名和参数,利用网络传输到服务器端框架,从而实现数据格式的转换和参数的传递。
⑤采用调用/返回模式具体地完成远程过程调用。
RPC程序之间的同步通信一般采用Request-wait-Reply方式,因此RPC更适应小型简单而不需要采用异步通信方式的应用。
支持两种传输协议:TCP和UDP。
TCP:连接、可靠和低效。
UDP:无连接、不可靠和高效。
远程过程调用的特点:
客户/服务器模式、数据封装性、同步性和复杂性。
缺点:需要进行系统级的配置和RPC并不支持对象。
优点:方便地实现不同平台之间的数据转换。
RMI环境
RMI(远程方法激活):在分布式程序中,其远程对象的方法能够被运行在不同主机上的其他java虚拟机的方法调用。
相对于过程调用级的RPC,RMI可以实现编程级对象之间的方法调用。
二、对象中间件
ORB提供了一种通信机制透明地在异构通信环境中传递对象请求,各对象可以位于本地或远程机器,且对象之间的客户机/服务器的角色是可以互换的。
ORB可以看作和编程语言无关的面向对象的RPC应用, 被视为从面向对象过渡到分布式计算的强大推动力量。
ODP通信模型相关概念
通道:用于支持分布对象之间的透明交互。
通道包括三部分:存根、绑定器和协议对象。
①存根(Stub):解决交互过程中的信息的封装和解封装问题;
②绑定器(Binder):维护计算对象之间的联系;