CORBA简介_吴帝聪简介

CORBA简介_吴帝聪简介 1.CORBA:CommonObjectRequestBrokerArchitecture,通用对象请求代理体系。是由对象管理组(ObjectManagementGroup,OMG)制定的一种标准的面向对象分布式应用程序体系规范,旨在为异构分布式环境中,硬件和软件系统的互联而提出的一种解决方案。2.解决异构分布式系统两条主要原则:(1).寻求独立于平台的模型和抽象,这

大家好,又见面了,我是你们的朋友全栈君。

 

1.CORBACommon Object Request Broker Architecture,通用对象请求代理体系。是由对象管理组(Object Management Group, OMG)制定的一种标准的面向对象分布式应用程序体系规范,旨在为异构分布式环境中,硬件和软件系统的互联而提出的一种解决方案。

2.解决异构分布式系统两条主要原则:

(1).寻求独立于平台的模型和抽象,这样有助于解决大部分问题。

(2).在不牺牲太多性能的前提下,尽可能隐藏底层的复杂细节。

3.对象管理组(OMG)定义的两类与平台无关的分布式对象模型:

(1).对象模型(Object Model):用来定义在一个异构环境中,如何描述分布式对象接口。对象模型将对象定义为永恒不变、始终唯一的,对象模型封装实体,这些实体只能被严格定义的接口访问,客户机通过向对象发请求,才能使用对象提供的服务,对象的实现细节和它的位置对于客户机上隐藏的。

(2).引用模型(Reference Model):用来说明对象之间如何交互。引用模型提供的接口种类,通常是按对象接口编组,所有接口种类有一个对象请求代理(Object Request Broker,ORB)按概念链接在一起。通常,一个ORB可以在客户机和对象之间进行通信,当请求发送给对象时,透明地激活那些没有运行的对象。

4.对象管理组(OMG)的接口种类:

(1).对象服务接口:Object Services,OS.是与领域无关(水平定向)的接口,对象管理组定义的命名服务(Naming Service)和交易服务(Trading Service)都是对象服务。对象服务通常被认为是分布式计算架构的核心部分。

(2).领域接口:Domain Interface,DI.其作用与对象服务接口类似,但是领域接口针对领域而已,它与特定领域相关(垂直定向)

(3).应用程序接口:Application Interface,AI.是专门为特定应用程序而开发的,并不是对象管理组所制定的标准。但是如果某些应用程序的接口出现在许多不同的应用程序中,那么这些应用程序接口应作为其他接口种类中的一类成为接口标准化的备选项。

CORBA简介_吴帝聪简介

5.CORBA常用术语:

(1).ORBObject Request Broker,对象请求代理,在一个面向对象的分布式环境中,ORB可以为应用程序、服务器、网络设施之间分发消息提供关键通信设施。可以将ORB想象成一组软件总线,它提供了一个公用消息传递接口,通过这个接口,不同类型的对象可以以对等层策略进行通信。ORBCORBA的核心组件,提供了识别和定位对象、处理连接管理、传送数据和请求通信的框架结构。

(2).CORBA对象:CORBA Object,是一个“虚拟”的实体,可以有对象请求代理(ORB)定位,并且可以被客户程序请求调用。

(3).目标对象:Target Object,在一个CORBA请求调用的上下文中,目标对象是指这个请求目标的CORBA对象。CORBA对象模型是一个单调度模型(single-dispatching model),即一个请求的目标对象只能由这个请求的对象引用来确定。

(4).客户程序:Client,是一个实体,由它来向CORBA对象发出调用请求。

(5).服务程序:Server,是一个拥有一个或多个CORBA对象的应用程序,用于处理客户程序请求。

(6).请求:Request,是一个由客户程序所提出的CORBA对象的调用操作。请求从一个客户机传给服务器中的目标对象,如果这个请求要求一个CORBA对象作为响应,目标对象负责返回结果。

(7).伺服程序:Servant,是一个编程语言实体,用来实现一个或多个CORBA对象。伺服程序也称为具体化的CORBA对象,伺服程序存在于服务器应用程序上下文中,是一个特定类的对象实例。CORBA只是一个规范,CORBA使用对象定义语言(Interface Definition Language,IDL)定义分布式程序的对象,以及对象之间的交互操作,具体的实现由不同的编程语言如C++Java来提供,伺服程序就是这些具体编程语言中的程序对象。

(8).可互操作的对象引用:Interoperable Object Reference,IOR.存储几乎所有ORB间协议信息,用于建立客户机和目标对象之间的通信,为ORB的互操作提供标准化的对象引用格式。每个IOR指定一个或多个所支持的协议,对于每个协议,IOR包括那个协议所专有的信息。对于IIOP,每个IOR包括一个主机名,TCP/IP端口号和一个对象密钥,密钥根据所给出的主机名和端口组合来识别目标对象。

一个IOR主要有三个部分组成:仓库ID,终点信息和对象密钥。

个人理解IOR类似于数据库连接信息或者JNDI连接信息对象等,用于传输对象之间的操作信息。

6.CORBA体系:

CORBA简介_吴帝聪简介

(1).客户端调用静态存根(static stubs)向服务器发出请求,存根(stubs)是代理对象支持的客户端程序。

(2).服务器端调用静态框架(static skeleton)处理客户端请求,框架(skeleton)是服务器端程序。

7.CORBA的接口定义语言:

Interface Definition Lanuage,IDL.IDLCORBA的基本抽象,它从实现中分离出对象接口,用于描述客户机和服务器程序之间交互操作用到的数据类型和对象接口。因为IDL只描述接口,不描述实现,它是一个纯说明性语言,因此IDL无法编写可执行的语句,也无法解说对象的状态,IDL定义把焦点集中在对象接口、其他接口所支持的操作和操作时可能引发的异常上。IDL与编程语言无关,这是CORBA支持异构系统和独立开发应用程序集成的关键。

IDL定义由一个IDL编译器编译成一个具体的实现语言如C++等,IDL编译器将IDL中这些与编程语言无关的对象和接口定义翻译成特定编程语言的类型定义和API,开发者使用这些编译处理的类型和API来提供应用程序功能和与ORB交互。

IDL编译成特定编程语言的转换算法由CORBA来确定,并成为语言映射(Language Mapping)

8.对象管理组的生命周期服务(Life Cycle Service):包括对象的创建、拷贝、移动和撤销,以及使用回收(Evictor)模式实现对大对象内存消耗限制和无用存储单元回收策略。

对象管理器的生命周期服务类似于EJBEJB对象的创建、钝化、激活以及被Java虚拟机垃圾回收等。

9.CORBA对象请求代理(ORB)间协议:

(1).GIOPGeneral Inter ORB Protocol,通用ORB间协议,是一类抽象的协议,指定了转换语法和消息格式的标准集,运行独立开发的ORB可以在任何一个面向连接的传递中进行通信。

(2).IIOPInternet Inter-ORB Protocol,因特网ORB间协议,指定GIOP如何在TCP/IP上实现。

10.GIOP消息格式:

(1).Request

从客户机发送到服务器,请求调用服务器一个操作或读写一个属性。

(2).Reply

从服务器发送到客户机,只是为了响应客户机的请求,包含一个操作调用的结果。

(3).CancelRequest

客户机通知服务器它已对一个操作的结果失去了兴趣。

注意:当操作执行时,一个CancelRequest将不会中止一个操作,相反,它只是通知服务器当操作完成时,不再需要向客户机传递应答。

(4).LocateRequest

客户机使用该请求从一个对象中获得当前的地址信息。

(5).LocateReply

服务器使用该响应消息对客户机的LocateRequest进行应答,LocateRequestLocateReply可以降低定位对象的开销。

(6).CloseConnection

服务器使用该消息通知客户机该服务器程序准备关闭连接。

(7).MessageError

客户机/服务器都可以发送该消息,用于响应任何错误的GIOP消息。

(8).Fragment

客户机/服务器都可以发送的消息,用于决定是否已存储片方式发送消息。

11.IOR结构:

CORBA使用可互用的对象引用(IOR)作为识别一个对象的通用手段,IOR包含一个对象的接口类型和一个/多个的协议配置文件。每个配置文件包含客户机使用一个特定协议发送一个请求所需的信息。单个IOR可能同时包含几个协议的寻址信息,使得单个CORBA对象可以通过不同的传输进行访问。

12CORBA请求调用步骤:

客户机通过发送消息来调用CORBA操作,当客户机调用CORBA操作时,ORB完成以下操作流程:

(1).定位目标对象。

(2).调用服务器应用程序。

(3).传递调用所需的参数。

(4).必要时,激活调用目标对象的伺服程序。

(5).等待请求结束。

(6).如果调用成功,返回out/inout参数和将返回值传给客户机。

(7).如果调用失败,返回一个异常给客户机。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125216.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vim编辑器,可以实现保存退出()_vim进入编辑模式如何保存并退出

    vim编辑器,可以实现保存退出()_vim进入编辑模式如何保存并退出目录1.Vim模式2.在Vim/Vi中打开文件3.在Vim/Vi中保存文件4.保存文件并退出Vim/Vi5.退出Vim/Vi而不保存文件1.Vim模式启动Vim编辑器时,您处于正常模式。在这种模式下,您可以使用vim命令并浏览文件。要输入文字,您需要按i键进入插入模式。使用此模式,您可以像在常规文本编辑器中一样插入和删除字符。要从其他任何模式返回正常模式,只需按Esc键。2.在Vim/Vi中打开文件要使用Vim打开文件,请键入vim,然后输入要编辑或创建的文件的.

    2022年8月24日
    3
  • ViewStub用法介绍

    ViewStub用法介绍在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View都写在上面,先把它们的可见性都设为View.GONE,然后在代码中动态的更改它的可见性。这样的做法的优点是逻辑简单而且控制起来比较灵活。但是它的缺点就是,耗费资源。虽然把View的初始可见View.GONE但是在Inflate布局的时候View仍然会被Infl

    2022年6月28日
    24
  • 献给初学者:谈谈如何学习Linux操作系统

    献给初学者:谈谈如何学习Linux操作系统本文出自“技术成就梦想”博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329。为了能把这篇不错的文章分享给大家。所以请允许我暂时用原创的形式展现给大家一、选择适合自己的linux发行版谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行,面对这么多的Linux发行版,打

    2022年6月12日
    28
  • Word2Vec原理简单解析

    Word2Vec原理简单解析前言词的向量化就是将自然语言中的词语映射成是一个实数向量,用于对自然语言建模,比如进行情感分析、语义分析等自然语言处理任务。下面介绍比较主流的两种词语向量化的方式: 第一种即One-Hot编码是一种基于词袋(bagofwords)的编码方式。假设词典的长度为N即包含N个词语,并按照顺序依次排列。One-Hot编码将词语表示成长度为N的向量,每一向量分量代表词典中的一个词语,则One-Hot编码的词语向量只有一位分量值为1。假设词语在词典中的位置为k,那么该词语基于One-

    2022年5月13日
    42
  • Centos部署禅道项目管理软件

    Centos部署禅道项目管理软件

    2021年6月2日
    122
  • HTML注释标签以及注释快捷键的用法

    HTML注释标签以及注释快捷键的用法<html><head><title></title></head><body><!–注释内容–></body></html>…

    2022年6月6日
    104

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号