您好、欢迎来到现金彩票网!
当前位置:盛源彩票app下载 > 构件存储库 >

CCM构件实现框架的分析与研究

发布时间:2019-06-03 11:39 来源:未知 编辑:admin

  第30卷第8期 计算机工程 2004年4,q 丝!!竺! ?软件技术与数据库? 篓!竺!竺:!竺!!!!竺 文章螭号,1000--3428(2004)08--41092--03 文献标识码:A 垒型型! 中田分类昏TP 311.56 CCM构件实现框架的分析与研究 刘寞嘲,龚红焱,陈涵生 (华东汁辫技术碰f究所,上海200233) 捕蛋:CCM构件虫现框架(CIF)为构j{!f构件实现定义了的编程模型。作为编程抽象,cⅢ不但能与现存Po川幢架兼容,而且迁能使编程人员 与它的复杂悱|{;I离。CIF使用CIDI.描述创建编程榧架.自动化构件的基本行为。谈文对CIF曲架构和语义进行了剖析-描述J'CCM构件的实 现,然后对CIF内部元素的关系进行了研究。 关健诃:CCM;CIr;CI【)【;Home;曼而;执行者c Analysis and Study on the Component Implementation Framework of (East China 【Ahstrac!】The As component implementation is Institulc el Conlptller CCM constructing component¨nplcmclltations also m instdatc programII/crs fixml its LIU Yiming,GONG Hongyan,CHEN Hansheng Fcchnolo凸,,Shanghai 200233) frame,york(CIF)ofCCM bc conlpatible dcfincs the Pm口zlmilling model tbr with the existing POA nⅢo口amming abslmotion.the Cm rhc ClF tlSCS designed to to framework.hut complexily CIDt,dcscllptions generate programming skeletons that atmnnatc many of"the basic behaviors el’components Tiffs papcl and analyTcsthe…chitecttnc andt,12m Liillics el componentimplcmentatitmfi'unlework studies the rchttknlship between the internal element ot"ClI? el’CCM,then describestheimplementatkm of'aCCM component lKey'’vflr【b】ccM,CII:;CfI)l,:Home;Facel;Executor pattern)fgJ麒型应用。。 (4)执行者(Executors)。执行者指的是编程制品,这些制品提供 构件或构件home的行为。 1概述 1.1概况 CORBA构件模型(CORBA Component Model,CCM)是 一种Jtj米构建和部署CORBA应用程序的服务器端构件模 型,其没i十心想类似于EJB。+,ZJB‘样,CCM采Ⅲ了流行 11也经检螗的设计模式,,f:标舛k化了使用方法,从而使得大 靛的代码£E成以及系统功能的实现由容器提供者而不是应用 程序自己来完成。 CCM的体系结构主要包括以下几部分:抽象构件模 型,构件实现梃架(Component Implementation Frmneword, CIF),构什的包袋、纰装和部署,构件容器框架和与EJB昀 结合__辜。 2构件实现框架(CIF)架构 2.1糟件实现程槊 构件实现枢架(CtF)是一组}{j于实现构件的类和I:具, 它为构造构件实现定义了一个编程模型。CIF的中心是构件 实现定义语言(CIDL)。它用于描述构件和构件home的实 现。作为一个编程抽象,CIF能与现存的PeA框架相适应, 但将开发人员与其复杂性相隔离。 许多商业盥Ⅲ使用构件来模型化现实世羿c卜的9_;体,如 雇m银行贼户和股票代理等。通常。这些实体由数据库实 体代表,井永久保存。CIF定义r?个忤1来管理构件的持久 状态和构造构件实现的编程模型。构件拥有持久状态,它指 的是当这些构件的实倒向永久数据映射的时候,这些永久数 据都能取回,不论何时激活构件实例。例如,当初始化一个 银行账户构件时,CCM需要从数据库取回这个账户以前的 状态。由此,CCM定义了。‘种描述性语言CIDL,以描述构 件和构件home的实现和持久状态。 2.2CIDL CCM定义r火最帕接t:l以点持构件的结构和功能,所 书的是,这蜘接L1人多数都能自动生成。很是,我们希望构 件的生命用煳僻理和状态管理也能工厂化和复用。构件实现 框架(Component Implementation Framework.CIF)的设计目 的就足将构件开发人员从这些单涮乏味的任务中解放出来。 CIF定义r管_(I|!构件持久状态和构造构件实现的编程模型。 CCM定义r所旧的构件实现定义语言(Component linplenlentation Delinition Language,CIDL)用以描述构件的 实现、持久状态≈qlhomes。CIF利用CIDL描述产生程序框 构件实现定义语言(CIDL)。是一种卅于描述构件实现结 构和状态的说明性语言。构件使能ORB产品从CIDL定义创 建实现框架。构件构造器对这些框架进行扩展以创建完整的 实现。 CIDL是持久状态定义语言(PSDL)的超集。CIDL实现定 义能可选地把抽象存储类型与构件实现联系起来,这样抽象 柞者筒彳r:刘受明(1978一).男,硕士生,研究打向:仆葬机软仆 工程和虾境;龚红焱,硕士生;陈蠲生,研究员、博导 啦着日翔:2003一t】4-14 E-mail:yimingliu@21cn.COI'O 架,自动化构件的核心行为,如导航、激线关健的CCMA皤与定义 f2)璺面l fI)构件接n。构件接El唯一地标识柄仆实例.客户一可通过对构 件接n的引JfJ来调用构件ff勺操作。构件接n支持一个或多个接口。 F:acetH】。娶而采示构件向客户提供的可访问的功能 接Ij, (3m“玳。枷仆fIfl吱侧足由¨“眦米惜耻。一个¨州、c管理某一 娄构”帕所有实例.I hmle露球所有实例作‘处生成.从而前效管 理每一个构件史例的生命周期e主耋魁对1:厂设计模式lfactory design 一92—一 万方数据 存储类型定义由构件封装的内部状态的格式。如果构件实现 以这种方式声明_fIl关抽象存储类型,CIF和运行时容器环境 将自动地协同管理构件状态的持久性。 以下是根据用户IDL编写CIDL描述的一个例子,当然这 个例子并不完整。 给定用户IDL: modttlc 为构件提供‘个通当的实埘。构什实现的CIDL描述lj三姓这 个聚合体的描述,在j盆个壤台休中构件本身可能足其t94:1J对 较小的一部分。复合体就是这种聚合体,它捐求为构成构件 实现的制品和定义本身。复合体用CIDL元语compositioll表 示,代表一个实现的定义。而一个复合体的定义前要指定以 下部分: I』)wIy如os f n1Htl.} (1)构1"[:home 复什体定义衙指定。种构件home类,它从IDL导八。构件home 隐含定义构件爽型,构件类删山构fl:bomc管圳,岍复台体将为』#提 供实现。 lunch};: interfiicc Rabbit void run(in long how interface void 11igor{ Rabbit cat(in (2)抽象存储home绑定 复合作定义需指定抽象存伸home,它类似十山f向对象t}J的抽象 基类,l酊构制:llome就被限制十j E中。抽象存储home绑定规范隐肯 定义具体化构件的抽象存储类型。构件home与构件home管理的壮】 件之间的关系,和抽象存|cifllmmc与抽象存储home镑理的抽教存仲 类型2问帕关系足㈦构的。当home绑盘到抽象仃储Ilomci卜,th home杵删的构件将被限制于这利喇j象存储honle的抽象存伸类 型中。 cornf,t1|tlCtlI Zoo: provides Rabbit Rab; provides homez(m Figer ri;} FownmangesZⅢ’}:,1, 程序员可阻指定以下cIDL描述: impot【::l‘lvclv,眦b、 modtdc McnyMchxliesi co{nposition session Zoohnpl! home (3)homej=【l,行者 复台体定义需指定一个home执行者定义。home执行者定义的 名称.将用作山CIF90她的作为home执行者框架的编程制品(如, 类)的名称r.bOlllc执行者定义的上F文,描述1]OlllC执}亍行与复☆体 exccu[orZcoTownh'npl{ implemenls LovelyzOOS::ZooTown; manages ZtmSessionlmpk},l; 其他元索之间的芫系,决定产生的№nc执行者框架的特悱。 卜i|:if的CIDL描述包括了构件目录的定义和实现home的 执行卉的名称:ZooTownlmpl,最后还包括实现构件本身的 执行者:ZooSessionlmpl。 有了CIDL描述,就坷以用CIDL编译器生成编程框架, 以使得基本的构件行为自动化,包括导航、身份查询、激 括、状态管理、生命肺期管理等,如图I所示。CIDL所生成 的实现称为CXCCUtOF。Executor@,台-了一些自动实现,并提供 了钩子方法以允许开发人员可以增加定制的构件专门的逻 辑。Executor可以打包到DLL中,并叮以安装到支持特定目 标平台和编程语言的构件服务器中。另外,CIDL服务生成 (4)构件执行者 复合体定义需指定一个构件执行者定义,执行者定义的名称, 将用作由CIF创建的作为构件执行者框架的编程制-铺的名称。I㈦: 执行者可被分段实现,所以执行者定义t叮指定虫现执行者纳段,其 中“段”是执行者的物理划分,它封装独立的状态,能独立地被激 活。执行者定义可能还指定了某些构仆特性(如属性)的映射或委 托.以存储构仆成员。 (5)委托规范 复合体可提|fJl/homc操作帕委托规范。这个规范把构件hoiilc定 义的操作,映射到抽象存tI}{illonlc或构仲执行者定义的同构操作。 CIF使用这个描述存honle执行者中产生操作的史现,并枉构件执行. 者tII产生操作声明。 ’ 构件描述器(xM嘴式),它描述了构件的特征以及所描述的 构件所需要的服务的类型。 (6)代理honle 复合体可指定代理home。,CIF支持定义代_}ll!honlc的实现,衙这 个实现并不要求与执行home替到l的构件实现的弁器‘同配置。在一 些配置中,代理home可提供home操作纳实现,而1;需与执行实际 home}ll构件实现的容器打交道。对代理home的支持竹在增.{6{ CORBA构件模型的伸缩性。代王lI!h洲1c的使Ⅲ对月J广-米税是完仝透 明的,更广泛地说,对构件的实现是遥明的。 2.5构件对象引用 CIF为构件对象引用定义了一个信息模型。这个信息模 型封装在IIOP描述的object』ey域中。信息模型只是一个抽 象;它并没有为oNect key指定标准的编码。窬器和潜,【:的 ORB负责响应请求,对那蝗将插入对象引川和从object 田I使用clDL实现袖件 key 中提取的信息进行编码,然后使用这些信息激}舌相应的构件 或段,并将这些请求转发相应的呈面。 (1)呈面标识符 呈面标识符由CIF实现分配。呈呵lD值由产’}:的构件实现代码 解释,所以ID值不需统一指定。给定CII。实现对呈面lD值的选择Jf 不会影响其可移植性或互操作性。 2.3行为元素:执行者 执行者指的是编程制品,这些制品提供构件或构件 home的行为。一般地,执行者或构件执行者都是实现构件 类型的制品,而home执行者指实现构件的制品。PoA服务 体在概念上虽然与执行者相似,但在细节上却很不一样,它 们分别映射捌不l司类型的编程语寿。 2.4实现单元:复合体 (2)段标识符 CIF实现也必须为段分配标汉彳6f};【。0呈现IDSH类似,段lDl4 样【b构件实现解释,因此1:需砥统一分眄己。山构件吱现抒摊供的 executor segment实现(在home执行抒樊现iIil必颁对段11)进{亍 解释,以创建井返回适当的段执行者。 crcale 构件的实'嘎l搬由一组复杂的编程制品组成,这些组成 部分有一定的行为,而它们之间又有一定的相互关系,以此 一93— 万方数据 (3)状态标识符 状态标识符是状态标识符不同袅示的一个抽象,其中璇主要的 状态标识符就是CORBA持久状态服务们pm。状奄标识符的一般表 示是s㈨cIdValua.它魁抽蒙伍类型,从它可派生}}j特定的、具体的 状态标i鳗粪,14。这蝇具体的f类型实现,负责把它们的表示转抉成 宁1,序列,或从字节序列转换成表示。 3.2带臂理存储的复台体结构及其内部元素的关系 复合体定义可包含一系列可选规范,其中很大一部分与 状态管理有关。这包括以F元素: t1J为复音体的实现提供一个或多个目录作为存储home。每个 指定目录都赋予了一个别名,或标签,用于在复合体的上下文中标 .只目录。 (21抽象存储home类型,构件home被限制干其中(这隐含定义r 限制构件本身的抽象存{ili类型)。 f31复合体的生命周期种类必须为entity或process.以支持管理 存储。 (4)构件标识 构件段的状态标识符(类似于整体式执行者的单一状态标识 符1,将被解释成构件作用域巾的唯一标识。构件标识符相等表示 构件蜃的状态标i只符值相等。 3复合体的结构及其内部元索的关系 3.1基本结构及其内部元素的关系 复合体把所有前面描述的元素结台起来,并使封装元素 间的关系阱调一致。在复合体中,一个构件home类型必须 包含一个构件类型;也就是说,home定义必须指定要管理 的构件类型。同样地,一个抽象存储home包含一个抽象存 储类型。因此,为复合体明确地指定.个构件类型或’个抽 象存储类型魁必须的。而i孟屿类型隐含地由home和抽象存 储home规范决定。 复合体的中心足home,而不是构件,这可能有点奇 怿,但在安践中,这是很有道理的。可以看出,这是对工厂 设计模式(factory design pattern)的典型应用。对用户来说, home是主要的呋系点,home的接口和行为,对用户与构件 之间的交互有着重大的影响。 复台体定义指定了一个名称,它在封装模块的作用域内 标识整个复合俸,并且构成作用域的名称,而这个作用域包 括复合体的卜下文。复合体定义的基本结构如下:(1)复合 体的名称;(2)构件实现的生命周期种类,service,session; rocess 如果把状态管理添加到复合体定义当中.那么定义可使 用如下格式: composition<category><composition—name)( uses catalog{<catalog_type><catalog_label>;}; home executor<hom e_cxeculor implemcnts<home—type>; bindsTo<catalo竖_label 11alofte>{ home>; abstmctstorage manages<executor—name>;},j; 这里<catalog—type>标识前而PSDL定义的目录的类型, <catalog_label>是一个别名,用这个别名可在复合体定义中 标识目录,<catalog_label.abstract storage_home>指示由目录 提供的一个特定抽象存储home。结果复合体的结构及其内 部元素之间的关系如刚3所示。在很多情况下,人们都想设 计一个抽象存储home以支持特定构件home。 …”“‘:甚:苌篙器”””“。…””’ J3或entity;(3)实现的home类(它隐含定义实现构件的类 型);(4)特产生的home执行者的名称;(5)将产生的构件执 行者或框架的名称。 以F是复合体定义的基本格式: composition<category><composition home cxecu[Or<home CXt2CH[or i]affl{二>i ndme>! implements<home一妙pc>, mana掣s<executor—namp,};}; compO¨¨㈣ii d【.g O rp‘c0月Ⅵo;o『…dnl●’ 圈3带臂理存储盼复合体时鲭柏置其内部元素乏问的关系 4分段实现 ClF支持实现的分段。分段是实现的物理分割,它们町 定义独立的状态和独立地被激活,它们有利于管理、分割和 共享各呈面的实现。由于实现可被分段和分割成独立的可加 载的单元。因此,不同构件可以共享呈面的实现,或者可以 根据情况加载需要的构件段而不必加戟整个构件。各段都可 以表述各自的持久状态。段可把构件分割成能映射到不同 圈2基奉的复合体鳍构爰其内W:瑚II之阔盼关薯 这里<composition nalne>是复合体的名称,<category> 定义复合体支持的生命周期种类,<home >enla_rotucex是 产生的home执行者框架的名称,<home type>是从IDL导入 的构件home类的名称,<executor_name>是产生的构件执行 者框架的名称。这只是复台体的基本格式,它并没有指定状 态管理。上面描述的复合体的结构及其内部元素之间的关系 如图2所示。注意,在上面这个描述中,构件类型并束明确 指定。home的类型规范明确指出执行者与构件之间的关系 (如,执行者实现构件)。 DLL的代码块。 构件执行者可被分段实现。构件的执行者可能是整体式 的也可能是分段式的。整体式执行者就是,从容器的观点 看,它是一个单一的编程产物。分段式执行者足指,构件执 行者的实现由物理上不同的编程产物构成。其中,各段都可 以有单独的抽象的状态声明。各段必须至少提供在构件定义 中定义的一个呈面的实现。下面就是CIDL分段式执行者的 声明: composition<catcgolT><composition—namc>卜‘ home executor<home_executor 恤设已指定存储管理 name>{¨‘ (下转第105页l 万方数据 泛搜索路由的伪码描叙: WorkNodes.Add(StartNode); While not Found 裘2备馈路彝量 {fol(I二0,i<Work Nodes;;++)Ⅳ搜索当前所有节点 {CurrcntNode—WorkNodes.Node(i) 遮 fbr(j-0,i<ChildNodes,j++)/艘索所有的子节点 {if(CurrentNodes childsfj)一EndNodes)Found2True; AddToWorkNodesO; } 脯子节点添加到WorkNodes KillFromWorkNodc(C㈣ntNode): j (4)关键链路排序的伪码描叙: lUr t}0,I(LmeNum,1++) fbI: f0州21十I j<l—incNum;j++) if(Lines(k)UsedLineNum<Lines(j)UsedLineNum)k叫, SortcdLines(i卜k:) 5仿线所示为利用本软件编辑的一个网络拓扑图。图中各 节点的线,各线。 在软件的编辑环境中,用户可以自行添加、删除或保存 网络节点、节点链路,并且可以设置节点的毁伤概率、话务 量、节点描叙、链路的容量、权重等参数。图l中只构建了 I 阳I I l节点同络拓扑圈 1个节点的网络结构。图2为上述网络执行网络抗毁性能模 拟的24小时后的模拟结果。从该模拟结果可以看出当节点 4、6、8、9被摧毁后,网络所能完成的话务量已经由网络完 好时的5.187减少到2.919,执行7458次呼叫,就有3255次呼 叫将损失掉,呼损由0.07%提高到43.“%,基本不能维持正 常的通信。图3为关键链路排序,从模拟结果来看,节点4与 3问的链路最为关键。 裹l各节点曲请务量 1112啊讳拭囊蛙糟辏攮的榛挂髁圈3关■茧璐捧序的楼|射占果 参考文献 1司来义编著战役通信计算机模拟导论解放军通信指挥学院. 1997 2叶酋荪编著军事通信网概论武汉:湖北科学技术出版社.1998 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ (上接第94页) manages<executor 描述创建编程框架,这便可自动化构件的许多基本行为,包 name>{ storage—home>; 括导航、查询识别、激活、状态管理、生命周期管理等。另 外,CIF还支持实现的分段。可以看出。ClF在很大程度上 简化了CCM构件的实现,而且为构件的实现提供了很多优 segment<segmcnt_nameO>{ storedOn<catalog_label abstract provides【<facet_name0>.<facet—namel>,‘‘);}; segment<segment_name])f’l;… 良的特性。 参考文棘 1 2 };); 在分段的storedOn声明中指定的抽象存储home隐含说明 将实例化段的抽象存储类型。home执行者将使用这个抽象 存储home创建和管理段实例的状态。在分段的provides声明 中指定的呈面,就是分段实现的呈面。 Object Manogement Group.CORBA Components,Ve rsion 3.0 2002 Object Management Group The Common Object Request Broker: Architecture and Specificatioin.Version 2 4 2000 3 Henning s徐金梧译基干c+_CORBA高级编程北京: 清华大学出版社.2000—11 M,Vinoski M 5小结 CCM构件实现框架(CtF)为构造构件实现定义了的编程 模型。作为编程抽象,CIF不但能与现存POA框架兼容,而 且还能使编程人员与它的复杂性隔离。其中,CIF使用CIDL 描述构件实现、构件110me和复合体等。然后,CIF使用CIDL 4 Gudgin 5 IDL精髓.宋亚男译北京:中国电力出版社,2002—0I C S.O’Ryan C An Ovcrview of the CORBA Sol'tware Enginccring N.Dou羽as Component Model Wang Heineman G and E in:Component-based Councill B.ed.Massachusetts:Addison.Wesley.2000 Multi.1anguagc 6 Cobb CORBA Components:The[ndustrys Fi rst http://www omg org,2000 Component Standard 万方数据

http://nzrimfire.com/goujiancunchuku/259.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有