允许通信任何一方在任何时间发送消息。请求1响应协议把通信模式限制在请求1响应的双方。基于消息的应用
强烈地意识到它们正在与外部的并行进程进行通信,并且需要一个显式的设计风格。基于请求 1响应的应用更
象一个单进程的应用,因为发送请求的应用或多或少被阻塞直至收到来自另一个进程的响应。这使得请求 1响
应通信自然地适合于 ' 应用。
尽管消息通信和请求1响应各有他们的优点,他们都是可以用对方来实现的。消息系统可以用较底层的请
求1响应协议来建立。如微软的 2344,3!内部采用了 %' 来建立大多数的控
制逻辑。' 系统也可以采用较底层的消息系统来建立。3 提供的关联 + 正是为了这个目的。不管评
价如何,大多数的应用仍趋向于使用 ' 协议,因为它们广泛的使用,它们更简单的设计,以及更自然的到
传统的编程技术的映射。
在八十年代,两个主要的 ' 协议是 4-'和 %'。最流行的 4-' 应用是大多数 56+
系统所使用的 678*96*!。最流行的 %' 应用则是 $-:76#;,它采用 %
'协议来实现许多系统服务。这两个协议被证明适用于很大范围的应用。但是,在八十年代末期,面向对
象技术的风靡使软件界沉迷于在面向对象语言和基于 ' 的通信之间建立一个纽带。
在九十年代产生的对象 ''!协议正是试图把面向对象和网络协议联系起来。'和 '协
议的主要不同是 ' 代码化了从通信终端到语言级对象的映射。在每个 ' 请求的头中都有一个
8,服务器端的程序能用它来定位在服务器进程中的目标对象。通常这个 8 只是一个对数组的索引,
但其它技术也经常被使用,如用符号名作为 " / 表的键。
有几个请求头组件被服务器端的处理程序用于分发调用。对象端点 + 被用于定位在服务器进程中目标对
象。接口标识符和方法标识符用于决定在目标对象中哪一个方法被调用。传输体用于传递请求中的<-=和
<-04=参数的值(在响应中是<4=和<-04=)。要注意的是任选的协议扩展可以出现在头文件和传输体之
间。这是在协议设计中的惯例,因为它允许新的服务搭载在 ' 的请求和服务上。大多数 ' 系统用这
个区域传递附加的上下文信息(如事务信息和因果关系标识符)。
目前两个主要的 ' 协议是 和 '& 的 +--+-'&++!或更一般的
- +-'&+!。 和 ++1+ 的请求格式非常相似。两个协议都用一个对象
端点 + 来确定目标对象,用方法标识符来决定调用哪个方法。
这两个协议主要有两点不同:主要的一点不同是采用 ++1+ 时,接口标识符是隐含的,因为一个给
定的 '& 对象只实现一个接口(尽管 当前正在进行每个对象有多个接口支持的标准化工作)。
与 ++1+ 请求的另一个细微差别是在传输体中参数值的格式。在 中,传输体用网络数据
表达(6')的格式来写,在 ++1+ 中,传输体用公共数据表达(')的格式来写。6' 和 ' 分
别处理在各种平台上的不同的数据表达。但是在这两种格式之间有一些小的差别,这使它们相互之间并不兼容。
在 ' 与 ' 协议之间的另一个重要的不同是通信端点的命名方式。在 ' 协议中,对于 ' 端
点的一些可传递的表达方式被要求在网络之间传递对象引用。在 '&1++,这个表达方式被称为可交互
的对象引用(+')。 +' 包含用紧凑格式表达的寻址信息,使用了它任何 '& 产品都可以决定一个对
象端点。在 中,这种表达方式被称为 &.'%*,它组合了分布的引用计算和端点1对象标识。'&
和 都提供了在网络上寻找对象端点的高级机制,但最终这些机制都映射回到了 +' 或 &.'%*。
目前的技术存在的问题?
尽管 和 ++ 都是固定的协议,业界还没有完全转向其中任何一个协议。没有融合的部分原因是文
化的问题所致。而且在当一些组织试图标准化一个或另一个协议的时候,两个协议的技术适用性就被提出质疑。
评论2
最新资源