深入探索CORBA对象生命周期之慨述

2016-02-19 18:39 6 1 收藏

下面是个超简单的深入探索CORBA对象生命周期之慨述教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - 编程语言 】

在服务器端,服务器的ORB在运行时从网络读取请求,并通过调用在第一个安装的消息拦截器上的receive_message( )开始处理请求。ORB用对象要害词以标识目标必须含有POA的名字,通过POA才能到达该对象。找到正确的P O A后,下一步是寻找对象本身,这个工作如何完成取决于为对象的POA定义的策略。假如对象能够定位,ORB通过调用在第一个安装的请求拦截器上的target_invoke( )来继续处理请求,拦截器则使用DII函数invoke( )来依次继续处理请求,这在客户端中已经讨论过。这里假设只安装了一个请求拦截器,请求最后会被分派到目标对象的实现。

当对象完成处理请求后,消息拦截器的invoke( )调用返回,拦截器现在就有机会在返回到ORB运行时模块之前通过激发请求对象上的result( )来检验操作的结果。服务器端的最后一件事是ORB对服务器消息拦截器上的send_message( )的激发。在客户端,拦截器以类似的方式来处理:首先ORB调用消息拦截器上的receive_message( )方法,然后请求拦截器对invoke( )的阻塞调用返回,并使这些调用能检验请求的结果。最后,由客户机激发的在代理上的方法返回,向客户机提供结果。

POA规范第一版的问题在于很难决定生命周期中的事件的确切顺序,非凡是在服务器端。例如,规范没有明确定义在服务器端的的哪个时段为特定的请求分配线程--很多线程策略要求在请求对象中提供的信息。另外,规范没有清楚规定POA和与请求拦截器有关的对象查找的顺序,所以在流程图中,这个顺序是基于它们的逻辑关系。

我们要识别两代不同的CORBA:BOA(基本对象适配器)代和P O A(可移植对象适配器)代。这样区分将答应我们定义在核心ORB体系结构演变过程中两个重要的里程碑。

1、BOA代

CORBA体系结构的BOA代定义对象适配器是"应用程序用来访问ORB函数的主要接口..它包括..生成对象引用的接口,含有一个或多个程序的注册实现和激活实现所需的接口。"

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

要注重,当谈论到注册和激活实现时, BOA着重于CORBA服务器实现,而不是CORBA对象实现。BOA规范的一个主要不足就是它面对这样的问题时的不确定性。对于生成的服务器端框架缺少命名约定也是一个例证,这使得以遵循CORBA的方式来关联框架和对象实现变得不可能。本文使用IONA Technologies的Orbix 2.x的CORBA实现来作为ORB的BOA代的基准。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

2、POA代

可移植对象适配器试图一方面克服最初BOA规范的不确定性,另一方面又为对象生命周期治理提供一整套的高级服务。

对POA本身的深入讨论可在Schmidt和Vinoski的书中找到,其中还提供了如下定义:"对象适配器是CORBA组件,负责使CORBA的对象概念能适应编程语言的伺服对象概念。"这个定义强调对实现的注册和激活从过程级转移到了对象级。对于对象生命周期, POA本身并不是在CORBA体系结构演变过程中唯一令人感爱好的变化。其他令人感爱好的新特征包括拦截器,它答应对激发生命周期,以及服务上下文( service context)的监控。服务上下文支持以标准的CORBA激发来发送额外的信息。尽管最后这两个特征和对象适配器的概念无关,我们仍然把它们纳入"POA代"定义中。这意味着本文对BOA和POA两代的观点节略了CORBA的详尽版本的历史,使用户能够侧重于概念。

下面主要讨论CORBA对象的生命周期及其实现,从总体上看一下对象生命周期,然后再探讨BOA和POA两代ORB的细节。我们以应用程序而不是ORB的角度来看待对象生命周期,所以要首先看一下应用程序通常要求什么来有效地治理CORBA对象的生命周期。


来源:http://www.tulaoshi.com/n/20160219/1618537.html

延伸阅读
标签: Web开发
在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象。由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例。Internet Explorer把XMLHttpRequest实现为一个ActiveX对象,其他浏览器(如Firefox、Safari和Opera)把它实现为一个本地JavaScript对象。...
标签: Web开发
session 的生命周期是多长1 浏览器结束时其生命周期也同时结束,但是档案仍然存在于 /tmp/(sess_???) 2 下次重新开浏览器时会重新分配 sessionID,如果你使用 session_id() 把以前的 ID 带回来,则会去读取残存在 /tmp 处的 sess_???, 取回你之前所有已经设定的参数 3 可以在 php.ini 里修改 session 档案残存的时间 session.gc_maxlifeti...
关于对象生命历程的会话 作者:Jim Hyslop 翻译:宋科 出处:C/C++ User Journal 2002 Dec (译者注:我从网上看到这篇文章的原文,非常喜欢作者的写作风格,于是就利用业余时间将它翻译出来,并贴到网上,希望大家可以从中受益,因为我没有和作者或者这篇文章的版权所有者联系以取得这篇文章的版权,所以这...
一、PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单的调用相应语句来直接取得结果即可。显然,这种不关注任何实现细节的语言对于开发者来说有着极大的便利。然而,对于有些复杂...
窗体的Initialize事件------窗体的Load事件------窗体的Activate事件------窗体的QueryUnload事件------窗体的Unload事件 可以新建一个VB窗体,在窗体中写下面代码测试: Private Sub Form_Activate() MsgBox "窗体的Activate事件" End Sub Private Sub Form_Initialize() MsgBox "窗体的Initialize事件" End Sub Private Sub Form_Load() ...

经验教程

217

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部