CORBA对象生命周期之对象实现的分类

前面我们已经讨论过伺服对象和Corba对象的不同生命周期事件以及伺服对象和Corba对象之间绑定创建的不同方式,现在从应用程序的角度来研究Corba对象实现的分类。这会帮助我们在下面的对BOA代和POA代ORB对象生命周期的讨论中能把重点放在应用问题上。

1. 伺服对象和状态

第一个分类和伺服对象的状态相关。基本上可以划分两类完全不同的伺服对象:无状态伺服对象和有状态伺服对象。

2. 无状态伺服对象

无状态伺服对象与内存中任一特定应用程序的状态没有关联。这并不是指由伺服对象实现的Corba对象必须是无状态的。例如, Corba对象的状态可驻留在数据库中,由伺服对象访问以执行请求。在这种情况中,伺服对象像一个瞬态的胶囊(capsule),它通过执行SQL语句而把到来的Corba请求委托给数据库服务器。

3. 有状态伺服对象

有状态伺服对象与某个特定应用程序的状态有关联,可由伺服对象实现的I D L操作来访问这些状态。

时间: 2024-09-11 12:59:09

CORBA对象生命周期之对象实现的分类的相关文章

CORBA对象生命周期之早期和后期绑定

在伺服对象生命周期事件的定义中,已经说过伺服对象通过CORBA对象的ID依附于CORBA对象.下面会为BOA和POA代的ORB而分别讨论CORBA对象I D的概念,然而,伺服对象和CORBA对象之间的绑定的思想还是很重要的.对象适配器必须提供必需的接口,使我们能执行这种绑定.问题在于,是什么触发了真正的绑定:是某种标准应用程序逻辑还是来到的请求?下面首先介绍早期绑定,然后讨论后期绑定,或者说是通过命令的绑定. 1. 早期绑定 早期绑定通常描述的是某种标准应用程序逻辑通过对象适配器来执行绑定的情况

CORBA对象生命周期之生命周期的评估

评估准则 我们已经地讨论了CORBA对象的生命周期,包括生命周期事件,对早期和后期绑定的讨论,以及CORBA对象实现的一般分类.显然,用户希望ORB提供的应用程序能支持所有这些CORBA对象生命周期不同方面的有效实现.ORB通过对象适配器(OA)来提供这种支持.下面定义了一系列的评估准则,通过这些准则可对对象适配器进行涉及CORBA对象生命周期有效支持的分析.然后用户采纳这些不同的评估准则,并把它们应用到BOA和POA代的对象适配器中. ·适配器结构-- 最为重要的方面是适配器的一般结构. ·对

CORBA对象生命周期之生命周期事件

对于CORBA对象,以下两个生命周期事件是很重要的: ·创建--CORBA对象的生命周期从创建事件开始.CORBA对象通常通过工厂对象创建,即由对象提供操作来创建新对象.回忆一下,在IDL级,CORBA并没有像构造器这样的静态函数概念. ·删除--CORBA对象的生命周期伴随着删除事件而结束.通常, CORBA对象可在它们的IDL接口中定义某种Delet()操作来删除.有时候,可通过其他对象来删除CORBA对象,例如,通过创建这些对象的工厂对象. 由于前面说过CORBA对象实际是由伺服对象来实现

探索CORBA对象生命周期之CORBA对象

我们知道,POA规范定义CORBA对象为具有标识.接口和实现的抽象实体.从客户机的角度来看,对象表示为对象引用,对象引用封装了对象接口类型和标识,并包含足够的信息来定位对象的实现.但从服务器的角度来看又怎样呢? 1.伺服对象 POA规范引入了伺服对象(servant)的概念,使抽象的CORBA对象能和实现该对象功能的具体编程语言实体彻底分离.这样从服务器的角度来看, CORBA对象是作为伺服对象实现的.要记住CORBA是与编程语言独立的体系结构.伺服对象可实现为C++或Java类,也可以实现为一

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

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

CORBA对象生命周期_JSP编程

我们知道,POA规范定义CORBA对象为具有标识.接口和实现的抽象实体.从客户机的角度来看,对象表示为对象引用,对象引用封装了对象接口类型和标识,并包含足够的信息来定位对象的实现.但从服务器的角度来看又怎样呢? 1.伺服对象 POA规范引入了伺服对象(servant)的概念,使抽象的CORBA对象能和实现该对象功能的具体编程语言实体彻底分离.这样从服务器的角度来看, CORBA对象是作为伺服对象实现的.要记住CORBA是与编程语言独立的体系结构.伺服对象可实现为C++或Java类,也可以实现为一

我所理解的Remoting(2):远程对象生命周期的管理[上篇]

1.CLR的垃圾回收机制 在.NET中提到对象的生命周期,我们会不由自主地想到CLR的垃圾回收.在运行一个.NET程序过程中,我们通过某种方式,比如通过new操作符,通过反序列化,通过反射机制,创建一个对象,CLR在为这个对象在托管堆中开辟一块内存空间.随着程序的运行,创建的对象越来越多,托管堆中的可用的内存越来越少,必须有一种机制来判断被分配在托管堆中的对象那些已经不被使用,以及进行对这些对象占用的内存进行回收.这种机制被称为CLR自动内存管理,也就是我们常说的垃圾回收.为了说清楚远程对象的生

iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、view

iOS视图控制对象生命周期: init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCon

《Imperfect C++中文版》——2.1 对象生命周期

2.1 对象生命周期 Imperfect C++中文版 每个C++对象的生命周期都分为4段:不存在.部分构造.实例化.部分析构[Stro1997].此外,一个对象所占用的空间必须在该对象构造之前就分配好,并且在该对象析构之后被释放.1 对象可以以下例4种标准方式诞生. 全局对象,包括真正的"全局"对象.位于名字空间中的对象,以及作为类静态成员的对象,生存于任何函数的作用域之外.它们通常在main()函数被执行之前就已经构造完毕,并且在main()结束之后被自动销毁(见11.1节).它们