分享
 
 
 

初步了解Corba的模块模型概况

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

介绍:

分布式计算中间件,如Corba,快速发展,当激烈的和全球的竞争使以传统方式开发和维护复杂的系统越来越困难的时候。Corba 可以让你调用在分布是对象上的操作,而不用关心它的应用底层的环境。传统的Corbar定义了一个软总线框架,制定了有标准接口的对象服务,利用Corba我们可以集成和组合大型,复杂的分布式应用系统。但传统的Corba有它的缺点:

No standard way to deploy object implementations:

没有标准的配置对象应用的方式。如:没有标准的方式分布对象应用,在它们的执行上下文安装,或在特定的ORB激活应用。因此,系统设计者必须用ad hoc策略去实例化在系统中的对象。进一步说,因为对象可能要互相依靠,实例化可能在一个大型的系统变得复杂。

??Lack of support for common programming idioms for CORBA servers:

Corba 的说明提供了丰富的应用服务的特性。在某些的应用域,仅仅有限的特性被应用。结果,通过能自动产生应用普通应用实例Corba代码的工具能支持必须的特性,是期望的。如:在Corba 2.2说明中,介绍了POA,它是一个引导客户端的请求到具体的对象应用的机制。POA提供了标准的API去登记对象应用,去活,或激活对象应用。POA是灵活的Corba编程模型模块,并且提供了大量的规则配置它的行为。然而,重要一类应用仅仅用其中的一部分,但是服务开发者不得不去学习如何配置许多的规则,为了得到想要的行为。

??Difficulty extending object functionalities:

传统的Corba对象模型,对象仅能通过继承来扩展它的应用。为了支持新的新的界面,应用开发者必须:1 定义新的,从要求的界面继承,的IDL界面; 2 应用新的界面;3 分配应用到服务器端。然而,多重继承在Corba Idl 是易碎的,因为重载在IDL是不可以的,因为像C的语言缺乏重载。

因此,以上的介绍限制了应用。进一步说,应用可以需要暴露相同的IDL界面多次,为了允许开发者多个应用或多个服务的实例,通过一个入口点。相反,多重继承使暴露相同的界面多次或决定哪一个是提供给客户端最原始界面,提供成为不可能。

??Availability of CORBA Object Services is not defined a priori:

Corba说明没用要求在运行时,哪一个对象服务是提供的。结果,对象开发者必须用 ad hoc 策略去配置和激活这些服务。

??No standard object lifecycle management:

虽然Corba对象服务定义了生命周期服务,但它并不是要求的。因此,客户端要明显内容去管理对象的生命周期,以 ad hoc

方式。进一步说,通过生命周期服务控制的Corba对象的开发者必须明白这个事实,和必须定义附加的界面去控制对象生命周期。定义这些的界面使单调的过程,应该自动进行,但较早的Corba说明缺乏。

CORBA说明的不足,早先的和包括在VERSION 2.3的,以上列出的,经常导致紧密的结合度,和难于设计,重用的,展开的,维护的和扩展的 ad-hoc 对象应用。

为了弥补以上的不足,OMG接受了CORBA Component Model(CCM)作为CORBA 3的一部分。CCM扩展了传统的CORBA对象模型,通过定义允许应用开发者去应用,管理,配置,和展开集成了Corba服务的模块的特性和服务,如容忍度,安全事务和事件服务,在一个标准的环境。CCM标准不仅提高了服务器软件重用性,也为动态的Corba应用配置提供了巨大的灵活性。 随着Corba的应用增加,CCM表现了出适合可升级的,应用要求严格的client/server应用。这章,我们描述CCM定义的主要的特性和服务,并图示CCM结构的好处。

模块开发者定义模块应用支持的IDL界面;下一步,利用CCM提供的工具应用模块。结果的模块应用被打包进动态连接苦。最后,CCM提供的分配机制用于分配模块,在模块服务器上(component server)。模块服务器是通过处理过程主管应用,通过相关的DLL。因此,在模块服务器上,模块执行和提供,去处理客户端的请求。一个好处是,CCM标准了开发的流程,下面,我们在CCM中的描述模块,从客户端的观点和模块开发者的观点,而且,我们描述了为支持CCM,ORB的扩展。

Client View

下面,我们介绍从CLIENT的视点来看模块是什么和如何应用模块。

一个模块 Foo 实例的参考曾现给client端,像一个有规则的Corba对象指引到界面Foo的实例。因此,对模块不清楚的Client端能调用操作,通过一个到模块对象等价界面的对象指引,能唯一鉴别这个模块实体。通过有规则的Corba对象,抹开的等价界面能从另外的界面继承,称作模块的支持界面。如我们开始提到的,用继承是难以扩展Corba对象的。因为对象不能和多个界面相连,用一个单一的应用实体。为了解决这个问题,CCM增加facets到模块中,Facets,也是提供的界面,是模块提供的界面,通过继承不必要连接到模块的支持界面。CCM多面体在设计上和Extension Interface 模式一致,类似于COM(Microsoft's Component Object Model)中的模块界面。

在Corba::CCMObject界面内,一个导航界面被定义,所有的等价的模块界面继承于它。Clients用在导航界面,列举的所有模块提供的多面体。因此,任何的拥有对多面体的指引的Client能用标准的get_component()操作取得到模块等价界面的引导。

增加多面体到CCM对象模型显著提高了模块的重用性。例如,新的界面能在新的模块提供,不会影响到存在的模块客户端。进一步,新的客户端能检查是否一个模块提供一定的界面,通过有标准的CCM浏览界面。因为 CCM允许几个无关界面和一个模块应用实体的绑定。客户端不需要清楚知道模块的应用细节,为了用它提供的可选择界面。

Component Lifecycle Management:

对于模块服务器,正确处理生命周期管理问题和对于客户端,帮助模块服务器管理它们的模块实例的生命周期 ,是很重要的。例如:一个模块能同时像多个Client端输出多个服务。同样,一个模块服务器能容许多的模块。而且,一个模块服务器必须知道何时创建一个模块实例和何时移去,为了防止资源的泄漏。虽然Corba对象服务说明定义了Liftcycle服务,但并不是一定要的,对于普通的Corba对象。因此,Corba开发者经常应用它们自己的 ad hoc生命周期管理策略。实际上,Corba说明的灵活性把客户端和对象界面的特定应用紧密结合起来。为了标准化模块生命周期管理界面,因此,CCM介绍了一个新词,“home”,指明每一模块的生命周期管理策略。客户端能用`home'界面去控制它使用的每一模块实例的生命周期。每一home界面准确管理一种模块的类型。Home 可能是有键的或无键的。无键的 home 经常支持factory操作,创建新的模块的实例。相反,有键的支持finder操作,客户端能用索引进入持久模块的实例,通过用客户端提供的key。为了向模块服务器表明一个特定的模块不再需要,客户端能调用remove_component()操作,在home策略界面上去通知模块服务器,模块服务器能决定如何去除模块。

Component Usage Scenarios:

为了用模块,客户端必须先得到模块`home'界面,然而,客户端要求一个标准的启动机制去定位模块的home界面。为了简化自举过程,提供的模块的home的指引,能存在中心数据库。因此,所有的需要自举自己的客户端向中心数据库得到指引。为了进入中心数据库,CCM说明定义了HomeFinder 界面,和Corba的命名服务相似。客户端开始用标准的Corba自举API resolve_initial_references(“HomeFinder”)去得到对象到HomeFinder 界面的指引. CCM HomeFinder 应用 客户端用来定位的模块home的目录服务, 得到对home界面的引导, 这时,调用正确的工厂方法去创建或发现目标模块的指引.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有