请简述SOAP,DCOM,CORBA之间的区别。。急~~
soap,dcom,corba三者的区别
- 提问者网友:却不属于对方
- 2021-07-28 10:30
- 五星知识达人网友:封刀令
- 2021-07-28 11:08
1.CORBA的目的:Their objective was to define an architecture that would allow heterogeneous environments to communicate at the object level regardless of who designed the two endpoints of the distributive application.
2.COM:COM specifies that any interface must follow a standard memory layout, which is the same as the C++ virtual function table Since the specification is at the binary level, it allows integration of binary components possibly written in different programming languages such as C++, Java, and Visual Basic
3. In DCOM, the client stub is referred to as the proxy and the server stub is referred to as the stub. In contrast, the client stub in CORBA is called the stub and the server stub is called the skeleton.
RPC architectures | Client Stub | Server Stub |
CORBA | Stub | Skeleton |
DCOM | Proxy | Stub |
Web services | Service Proxy | Service Implementation Template |
- 1楼网友:舊物识亽
- 2021-07-28 15:18
http://nforcex.blogbus.com/logs/6204522.html
首先指出的是SOAP不会取代CORBA,COM/DCOM,三者的概念有所区别。CORBA应用程序和DCOM应用程序不能实现互操作,两者不能在一起协作。SOAP并没有定义信息的语义、服务质量、基于INTERNET的事务处理。而是采用 XML 进行消息编码。SOAP不象DCOM一样试图定义分布式系统的所有元素,SOAP没有提供分布式类库,类型安全检查,版本控制等等,SOAP比它处于一个更低的层次,有点类似于IIOP在CORBA的作用。
ps:文献作者 段智华: 高级软件工程师,对工作流系统有深入研究,曾参与基于XML的SU-PDM2.0产品数据管理系统的开发。
- CORBA(Common Object Request Broker Architecture)公共对象请求代理体系结构是由OMG组织制订的一种标准的面向对象应用程序体系规范。由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成。其核心部分是对象请求代理ORB(Object Request Broker)。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。ORB可看作是在对象之间建立客户/服务关系的一种中间件。基于ORB,客户可以透明的调用服务对象提供的方法,该服务对象可以与客户运行在同一台机器上,也可以运行在其他机器上通过网络与客户进行交互。ORB截取客户发送的请求,并负责在该软件总线上找到实现该请求的服务对象,然后完成参数、方法调用,并返回最终结果。CORBA 1.1 由对象管理组织在 1991 年发布。定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互。CORBA 2.0 于 1994 年的 12 月发布定义了如何跨越不同的 ORB 提供者而进行通讯。
- COM/DCOM(Component Object Model / Distributed Component Object Model )是微软公司提出的分布式组件对象模型标准,支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。DCOM基于COM的应用程序、组件、工具等的基础之上,处理网络协议的低层次的细节问题,而不必关心太多的网络协议细节,从而使用户能够集中精力解决用户所要求的问题。DCOM位于应用程序的组件之间,将组件以不可见的方式胶合在一起组成具有完整功能的应用程序。
- SOAP 与CORBA,DCOM/COM的比较。
3.1 首先指出的是SOAP不会取代CORBA,COM/DCOM,三者的概念有所区别。COM/DCOM是个组件模型标准,CORBA是分布式应用的服务标准。CORBA和DCOM为分布式应用程序建立服务,服务对象来执行客户端调用的服务。而SOAP是基于XML和HTTP的分布式对象的通信协议,是COM/DCOM和CORBA对象进行通讯的协议。实际上,利用SOAP的互操作性和CORBA强大的执行能力,两者可以很好的结合在一起。 OMG (Object Management Group responsible for the CORBA specification)正在关注这方面的发展。
3.2. CORBA应用程序和DCOM应用程序不能实现互操作,两者不能在一起协作。因为在ORPC(Object RPC)协议中,用ObjRef代表了一个正在运行对象的引用;在CORBA/IIOP(Internet Inter-Orb Protocol)中,用交换可互操作对象引用IOR(Interoperable Object Reference)代表一个服务器的对象引用。不幸的是,IOR 与 ObjRef不能够关联起来。然而,使用SOAP可以实现在垂直应用层面上CORBA ,DCOM技术的水平整合,能够更好的集成CORBA,DCOM为一个整体。
3.3 SOAP并没有定义信息的语义,服务质量,基于INTERNET的事务处理。而是采用 XML 进行消息编码,正确的处理需要服务器和客户端本身来执行,理解和执行彼此使用的信息格式(ONE-TO-ONE,REQUEST/REPLY,BROADCAST,ETC),应用程序本身在语义解析中扮演着十分重要的角色。而CORBA,DCOM表示了传送信息的语义,对参数和返回值使用二进制编码。可对诸如参数名称或类型的任何元信息都不编码,但使中介很难处理消息。又因为每个系统使用不同的二进制编码,系统间的互操作的很难实现。
3.4 尽管CORBA可以在不同的平台上执行,DCOM可以在微软的各种平台上运行,但是基于CORBA和DCOM的解决方案必须依赖于单一的应用程序。比如说,假如运行的是DCOM服务器程序,所有的分布式的客户端不得不运行于微软的操作平台上。CORBA 虽然可以运行于不同的平台,但CORBA的互操作性并没有在更高层的服务上进行扩展,如安全性和事务处理,在这种情况下,许多提供的服务没有得到很好的优化。DCOM和CORBA适合于服务器--服务器间的通讯,但是对于客户端--服务器的通讯十分脆弱,尤其当客户程序分布在INTERNET上更是如此。
3.5 SOAP不象DCOM一样试图定义分布式系统的所有元素,SOAP没有提供分布式类库,类型安全检查,版本控制等等,SOAP比它处于一个更低的层次,有点类似于IIOP在CORBA的作用,DCOM却提供了一些额外的协议功能,是IIOP 或者SOAP所不具备的。然而,许多. DCOM的额外功能只有在服务器�D�D服务器间通信时才会用到,对于客户端�D�D服务器之间的通信则是多余的。
- 2楼网友:鸽屿
- 2021-07-28 14:14
- 3楼网友:琴狂剑也妄
- 2021-07-28 12:46
1、SOAP是一个基于XML的分布式对象通信协议,是CORBA 和 COM/DCOM对象之间的通信协议。SOAP不象COM/DCOM那样有明确的表示了传送信息的语义,而是采用XML进行消息编码,语义的解析交给了应用程序去做,也就是需要服务器和客户端本身来解析语义。由于采用了HTTP通信协议,可跨平台和跨语言穿过防火墙实现信息交换,加上选择了XML作为数据格式,这也决定了SOAP不是太高效,速度也比较低,但是由于HTTP协议的开放性也使得SOAP应用更加广泛。简单的理解SOAP就是HTTP+XML+RPC。
2、CORBA是分布式应用的服务标准,是一个体系规范。可以跨平台和跨语言进行异构连接和消息传送。CORBA标准主要分为三个部分:接口定义语言(IDL 而IDL是独立于语言的)、对象请求代理(ORB)以及ORB之间的互操作协议IIOP。
3、DCOM则是一个组件模型。是微软平台的专用产品。
4、基于CORBA的应用程序和基于COM/DCOM的应用程序是无法实现互操作的,DCOM和CORBA只适合服务器与服务器之间的通信,而在客户端和服务器之间的通信十分脆弱,尤其是当客户程序分布在互联网上更是如此。
5、SOAP的出现为WEB应用的发展提供了巨大的助力,但是互联网环境下特有的安全需求,也给SOAP提出了更多更新的要求。为保证SOAP的简单性,其安全解决方案主要基于W3C的三个XML规范来实现。
(1)XML数字签名
(2)XML加密
(3)XML 密匙管理服务