(计算机软件与理论专业论文)构件适配技术的形式化分析与实现.pdf_第1页
(计算机软件与理论专业论文)构件适配技术的形式化分析与实现.pdf_第2页
(计算机软件与理论专业论文)构件适配技术的形式化分析与实现.pdf_第3页
(计算机软件与理论专业论文)构件适配技术的形式化分析与实现.pdf_第4页
(计算机软件与理论专业论文)构件适配技术的形式化分析与实现.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 基于构件的开发( c o m p o n e n t b a s e dd e v e l o p m e n t ,简称c b d ) 或基于构件的软件 工程( c o m p o n e n t b a s e ds o f t w a r ee n g i n e e r i n g ,简称c b s e ) 是一种软件开发新范型, 它是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手 段高效率、高质量地构造应用软件系统的过程。由于以分布式对象为基础的构件实 现技术日趋成熟,c b d 己经成为现今软件复用实践的研究热点,被认为是最具潜力 的软件工程发展方向之一。 商业软件构件不断增长的需求引起了消费者需求和构件开发者的矛盾,尤其是 构件规范之间差异使得构件组装越来越困难。构件适配是这一问题的一种解决方 法。本论文集中于使用z 语言规范的设计方法将适配技术应用到e n t e r p r i s e j a v a b e a n “构件并使用主动接口适配技术对其进行适配。对主动接口( a c t i v e i n t e r f a c e ) 适配技术的研究发现,构件可以提供一个专为适配而建立的接口,这是 适配的关键。主动接口适配技术的开发使得某些任务可以自动执行,减少与用户的 交互。主动接口适配技术使得工具的使用变得更简单。 本文针对软件复用中构件不符合应用程序需求的问题,使用规范的规则语言对 构件适配技术进行形式化分析,研究了适配e j b 构件方法。建立了基于e j b 构件的 主动接口适配模型,研究了设计可适配构件的设计方法,该方法支持可适配软构件 的创建。 关键词:主动接口;可适配构件;e j b ;z 语言 a b s t r a c t c o m p o n e n t b a s e dd e v e l o p m e n t ( c b s d ) ,o rc o m p o n e n t b a s e ds o f t w a r ee n g i n e e r i n g ( c b s e ) i san e wk i n do fs o f t w a r ed e v e l o p m e n t i ti sap r o c e s st h a tr e u s e so n eo rm a n y s o f t w a r ec o m p o n e n t si nc o m p o n e n ts t o r e h o u s eu n d e rt h es u p p o r to fc e r t a i nc o m p o n e n t m o d e l ,a n dc o n s t r u c t sa p p l i c a t i v e s o r w a r es y s t e mw i t ht h ec o m b i n a t i o nm e t h o d e f f i c i e n t l ya n dq u a l i t a t i v e l y i nt h a tt h et e c h n o l o g yo fc o m p o n e n tr e a l i z a t i o nb a s e do n d i s t r i b u t i o n a lo b j e c ti sb e c o m i n gm o r ea n dm o r em a t u r e ,n o w a d a y st h ec s b dh a s b e c o m et h eh o t s p o to f t h er e s e a r c ho f s o f t w a r er e u s ep r a c t i c e ,i tw a sa l s ob e e nc o n s i d e r e d o n eo f t h em o s tp o t e n t i a ls o f t w a r ee n 百n e e r i n gd e v e l o p m e n td i r e c t i o n s t h ei n c r e a s i n gd e m a n df o rc o m m e r c i a ls o f t w a r e c o m p o n e n t s h a sl e dt o c o n t r a d i c t i o nb e t w e e nc o n s u m e rd e m a n da n dc o m p o n e n td e v e l o p e r s ,a n dt h ed i f f e r e n c e b e t w e e nc o m p o n e n ts t a n d a r dc a u s e dt h ec o m p o n e n ta s s e m b l yt ob em o r ea n dm o r e d i f f i c u l ti np a r t i c u l a r c o m p o n e n ta d a p t a t i o ni so n es o l u t i o nt ot h i si s s u e t h i st h e s i s f o c u s e do nt h ed e s i g nm e t h o do ft h eu s e so fzl a n g u a g es t a n d a r d ,a p p l i e dt h ea d a p t a t i o n t e c h n i q u et oe n t e r p r i s ej a v ab e a n t m ,a n d u s e dt h i st e c h n i q u eo fa c t i v ei n t e r f a c e ss oa st o c a r r yo na d a p t a t i o nt oi t a c c o r d i n gt ot h er e s e a r c ho f t h i st e c h n i q u e ,t h ec o m p o n e n tm a y p r o v i d ea c o n n e c t i o nt h a ts p e c i a l l ye s t a b l i s h e df o rt h ea d a p t a t i o n ,w h i c hi sa l s ot h ek e yt o i t t h ed e v e l o p m e n to f t h i st e c h n i q u em a d ec e r t a i nd u t i e sb e e nc a r r i e do u ta u t o m a t i c a l l y , w h i c hm a yr e d u c et h ei n t e r a c t i o nb e t w e e nu s e r s ,a n dm a ya l s om a k et h eu s eo f t o o lm u c h s i m p l e r a st ot h ep r o b l e mt h a tc o m p o n e n td o e sn o tc o n f o r mt ot h ea p p l i c a t i v ep r o c e d u r e d e m a n di ns o f t w a r er e u s e ,t h i st h e s i sa n a l y z e dt h ec o m p o n e n ta d a p t a t i o nt e c h n i q u ef r o m af o r m a l i z e dp e r s p e c t i v e ,s t u d i e dt h em e t h o do fa d a p t a b l ee j bc o m p o n e n t ,e s t a b l i s h e d a d a p t a b l em o d e lo fa c t i v ei n t e r f a c e t h a tb a s e do ne j bc o m p o n e n t ,a n ds t u d i e dt h e m e t h o do fd e s i g n i n ga d a p t a b l ec o m p o n e n t t h i sm e t h o ds u p p o r t st h ef o u n d a t i o no ft h e a d a p t a b l es o f t w a r ec o m p o n e n t k e y w o r d s :a c t i v ei n t e r f a c e ;c o m p o n e n ta d a p t a t i o n ;e j b ;zl a n g a n g 华中师范大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作 所取得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或 集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在 文中以明确方式标明。本声明的法律结果由本人承担。 作者签名 乃兹w日期奠加芦月,日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权 保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借 阅。本人授权华中师范大学可以将本学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。同时授权 中国科学技术信息研究所将本学位论文收录到中国学位论文全文数据库,并通 过网络向社会公众提供信息服务。 作者签名: 日期:年月 日 撕龇砑钭圭 日期:。1 年g 月7 日 本人已经认真阅读“c a l i s 高校学位论文全文数据库发布章程”,同意将本人的 学位论文提交“c a m s 高校学位论文全文数据库”中全文发布,并可按“章程”中的 规定享受相关权益。回重迨塞握銮卮溢卮;旦坐生;旦二生;旦三生筮查! 作者签名: 日期:年月 日 硪士学住论文 m a s t e r st h e s i s 第一章绪论 1 1 课题背景 1 1 1 软件构件的概述 软件构件是一种符合构件模型且根据构成标准无须进行修改就能独立地被配 置及构成的软件元件“1 。 构件能单独地配置,由不同的类组成且能被赋予运行时间资源。它们也能独立 地与其他构件相互作用来形成全能系统的子系统。换句话说,构件是功能性的黑匣 子工具,此工具受符合构件模型的第三方构件的影响嘲。将构件看成黑匣子与为了 获得更好的面向对象程序进行抽象和信息隐藏同样重要“构件模型确定了构件如 何相互作用。构件技术的这些方面给软件构件技术带来了广阔的商业市场。因为构 件能被配置再利用以及组装来形成更大的系统,所以构件技术正变得越来越重 要。像微软的c o m + 和s u n 微系统的e n t e r p r i s ej a v a b e a n t m 这样的商业构件技术都 是构件模型哪。构件模型确定了每一软件构件必须遵守的设计规则鳓。 我们将注意力集中到了s u n 微系统的e n t e r p r i s ej a v a b e a n t m ( e j b ) ,它能支持 异质构件开发的框架。除了构件间形成更大系统的相互作用外,能支持第三方组件 也是很重要的构件在开发者的环境中得以开发,在消费者的环境得以使用。然而, 通常情况是消费者规定的使用第三方构件组装系统的要求可能不能完全符合构件 开发者所知的要求。为了克服所有困难,则必须适配构件,改变其源代码或进行打 包。 1 1 2 构件适配的目的与意义 若应用程序开发者决定适配某一构件,则他必须理解此构件类的复杂行为和功 能性,因此其中任何一个的任何变化都将不会破坏构件设计者规定的系统结构。像 e j b s 这样的商业构件总是需要集成。在集成中适配构件时不同于应用程序开发者从 某些预定的选项中选择的构件用户化。它可能不能满足额外的要求,因此适配是困 难的。先前的研究已确定了一系列构件适配的要求旧: ( 1 ) 适配后的构件的行为方式可能不同,但应以使用初始构件相同的方法来使 用。 ( 2 ) 在使被适配的构件与目标系统集成过程中不应有任何额外的麻烦且应保留 客户一方的观点。适配的这一性质被称为透明性。 ( 3 ) 初始构件不应对适配有任何了解。构件必须对未来的适配开放且不应失去 项士学位论吏 m a s t e r st h e s i s 作为初始构件的特征。 ( 4 ) 适配构件时,必须考虑所有的软件工程阶段m 。 ( 5 ) 设计阶段:构件设计者规定了构件间的接口,互用性和关系。 ( 6 ) 实施阶段:根据设计规范构建构件。本阶段包括编写代码,获取所有相关 构件的源代码接口和数据库表的实施以及源文件的编译和连接。 ( 7 ) 配置阶段:将构件配置入构件基础中。 在修改构件中也必须考虑构件的组成。例如,在c o m 中两个构件的外部集合体 控制着内部复合构件的语义逻辑。为了修改这一复合构件,外部构件可能也需要适 配。此修改不应以任何方式影响连接器”。当初始构件作为复合体进行修改时, 其外接口不应根据说明或原型改变,同样地,初始构件的内接口也应保持不变。我 们有很多方法来适配软件构件。本论文中我们集中在了二进制构件适配主动接口 和w r a p p e r “4 。 本课题的研究是在武汉市中小企业创新基金项目“面向公、检、法、司信息领 域的构件库系统”中,根据我国软件产业发展的需要,着重研究构件模型、构件库 ( 构件分类与检索) 以及构件集成组装等方面的问题,为软件行业的工业化生产方式 发展作了一定的研究。 1 2 国内外研究状况 1 2 1 国内外关于构件模型的研究 随着构件技术的发展,在学术界和产业界出现了多种构件模型。3 c 模型是一 个指导性构件属性模型,它包括概念( c o n c e p t ) 、内容( c o n t e n t ) 和语境( c o n t e x t ) 三个不同方面的内容,但3 c 模型只适用于小规模复用,缺乏形式化定义和易懂的 描述,因此仅有一定的宏观指导意义:r e b o o t 模型是基于已有构件的一种刻面分类 和检索模型,从各个角度即刻面( f a c e t s ) 来刻画软件构件属性,北京大学青鸟工程 使用了刻面方法定义构件,即一种3 个视角( 形态、层次和表示) 和9 个方面( 概念、 操作、规约、接口、类型、实现体、构件复合、性质和语境) 的构件模型,它的主 要问题是没有提出语义问题,缺乏形式化定义以及与具体的实现技术密切相关:有 代表性的实现级工业标准构件模型有c o r b a ,c o m d c 伽和e n t e r p r i s ej a v a b e a n , 三足鼎立构成竞争与互操作并存的格局,它们都是通过属性、功能接口和依赖关系 三个部分来描述,但这种工业级的构件模型不是面向问题域的,而且关于构件模型 的描述往往是非形式化的、不精确的:北京航空大学在面向对象模型的基础上提出 了一种可扩展的0 0 构件模型,它由四部分组成:内部成员部分、对外接口部分、协 2 作构件部分、构件连接部分,比较完整地描述了构件的特征及构件之间的协作关系。 不论是指导性构件模型3 c ,还是主流的工业标准构件模型c o r 队,c o m d c 0 m 和 e n t e r p r i s ej a y a b e a n ,都没有考虑到构件适配,因此开发出的构件不容易修改。 从构件标准化角度,希望能找到一种更高抽象和更开放的构件模型,这样就有 可能将不同标准的构件方便地组装起来。目前绝大多数的构件技术尽管都是基于面 向对象技术的,但是尚未找到一种更高层次的开放构件模型( o c m ) 所以在研究构件 标准化的同时,可以探索新的o e m 作为构件标准的基础:同时,允许各种技术模型 继续百花齐放。 1 2 2 构件适配技术研究概况 基于构件开发的过程中要提取符合需要的构件,构件往往不完全满足需要,这 时就只能找到功能最相近的构件,并对它进行修改。构件适配是构件使用者为了在 特定的应用系统中使用而改变构件的过程。面向对象和基于构件的软件开发方法的 广泛使用,在使用第三方构件时出现了越来越多的问题,特别要求对第三方构件适 配的支持。适配对基于构件的软件系统的成功与否是至关重要的。应该说,只有当 应用程序开发者能够适配构件时,构件才体现其复用的价值。 构件适配主要解决的问题如下: ( 1 ) 构件的语义不匹配问题,即构件的功能和行为不完全满足需求: ( 2 ) 即使构件功能符合要求,构件接口也有可能语法不匹配: ( 3 ) 构件的结构不相容问题,许多构件在设计阶段,并没有预先考虑将来构件 组成时如何保证结构相容,结果各有各潜在的假设,造成组合的困难,这些不相容 反映在几个方面:对底层支持设施的假设不同、控制模型的不相容、数据模型不兼 容、通信协议不一致,对构造过程的假设不一致。因此,需要预先考虑结构上的相 容性。 关于构件适配目前在国内的研究还非常少。2 0 0 1 年,大连理工大学计算机科学 系的迟忠先等人在一种基于多弋e n t 适配器的组合软件建模方法一文中,介绍 了一种构件的装配方法,采用多个a g e n t 型适配器,创建一种高弹性的复用机制, 并提出了基于多a g e n t 型适配器的建模方案“”。2 0 0 2 年,迟忠先等人在一种基于 多弋e n t 适配器的构件重用方法中,首先提出一种构件适应方法一通过为构件外 挂适配器来解决构件重用中的“接口匹配、消息处理、状态监控和环境模拟”等 问题并采用多a g e n t 适配器来建立一个可适应机制然后讨论基于这种多a g e n t 适 配器的构件适应技术的体系结构和建模方法。 硕士擘位论文 m a s 丁e r st h e s i s 1 3 论文结构 第一章为绪论,介绍本研究课题的背景和意义,国内外的研究状况。 第二章是本文的理论基础章节。本文的研究基础是构件模型与构件适配问题。 首先,阐明了构件标准化对于构件复用的意义,介绍了构件模型的现有发展状况, 讨论了构件模型在构件标准化中的作用,从而进一步揭示本文研究构件模型的目的 和意义:然后,从技术角度,介绍了几种构件适配技术,主动接口技术、b c a 技术以 及适配器技术,引出了规范形式语言z 语言。介绍了现有的工业范围内的构件模型。 进而为论文后面的规范分析做下铺垫。 第三章是本文的核心章节,是本课题的主要工作。依据构件适配技术以及商 业构件模型e j b 技术,使用z 语言对e j b 构件进行规范的形式分析,并对e j b 构件 模式开发的应用构件提出适配理论以及设计方法。 第四章在第三章提出的理论及设计方法的基础上在进行案例分析。具体地在以 e j b 构件模型的基础上开发的构件进行适配。 第五章对全文进行了总结,并对进一步的工作进行了展望。 4 第二章构件适配技术的理论基础 2 1 基本构件适配技术 2 1 1 = 进制构件适配 二进制构件适配( b c a ) 允许程序员在第一次将构件加载到存储器中时对其进 行适配o ”。正如其名称所示,这项技术以构件的编译形式进行操作并因此而加载。 b c a 有如下优点: ( 1 ) b c a 无需源代码且能以= 进制编译模式进行操作。 ( 2 ) 初始构件和适配后的构件能在修改前的初始系统中兼容。 ( 3 ) 它提供灵活的适配范围。包括重命名特定类中的方法,向类中添加方法, 改变方法的参数或向其中增加参数,替换方法,改变接口或子类层次。 ( 4 ) 适配处理发生在加载时问内 然而,b c a 有些弊端: ( 1 ) 因为适配被推迟到加载时间,这引起了加载时间内的附加操作。 ( z ) b c a 工具必须置于特定语言和操作系统中才行( 当前的工具仅支持s o l a r i s 平台上的j d k l 1 3 版本) 。 图2 1 展示了单一j a v a 类和j a v a 虚拟机的b c a 机制。进行适配以及j a v a 虚 拟机类加载程序加载时仅需类文件。因为所有的字节码参考符号都在加载时间内由 类加载程序解决了,所以b c a 能将适配推迟到加载时问内。b c a 修改j a v a 虚拟机以 提供用户化的类加载程序,此加载程序为构件加载字节码然后调用调节器根据增量 文件中提供的适配规范改变类的结构。增量文件详细说明了现存类结构及功能性和 适配后的预期结果之问的差异。调节器的输出被证明符合j v m 的标准且类是按适配 执行的整个程序创造出形成修改后的应用程序的新类,这类似于主动接口中修改 后的应用程序“。注释中的作者也认为,由于在线修改,b c a 会引起加载时问内的 附加操作 图2 1 使用b c a 适配j a v a 类 2 1 2w r a p p e r s w r a p p e r 技术可以解释成如装饰模式,适配器模式和策略模式这样的联合设计 模式。 图2 2 适配器设计模式 适配器( 或w r a p p e r ) 设计模式的研究表明了当一个类的接口为了兼容性转化 成另一个类的接口时就使用w r a p p e r 模式“”。它表明了接口如何相互适配。这一模 式另一重要的应用是创造可重复使用的类来和不可预见的类配合。适配器( 或 w r a p p e r ) 模式的结构如图2 2 所示。 t a r g e t c l a s s 详细说明了客户在特定领域成功运行所需的域规范。为了企业能 6 够应用,接1 3 可能是远程的。适配器确定需要适配的接口。适配对象从t a r g e t c l a s s 继承而来且执行初始适配器所需的方法。所有的客户都要求将r e q u e s t ( ) 适配成 s p e c i f i c r e q u e s t ( ) 。这一适配的结果是,由于继承,适配对象与t a r g e t c l a s s 某 些方面的行为重叠。适配器模式的主要缺点是对所有客户都不透明。支持双向适配 器的方法能解决这一问题“4 。 1 装饰设计模式 装饰设计模式为扩展功能性的继承提供了一种可供选择的方法。装饰模式的结 构如图2 3 所示“”。 装饰模式给单个对象动态地增加任务。这些任务并不严格且能随时地增加和撤 销。若出现复杂的不可预见的类,装饰模式也能帮助向单一基本类中增加任务。 图2 3 装饰设计模式 2 将实体b e a n 与对话b e a n 打包 第三章详细阐述这一构件技术。根据这一设计模式,对话b e a n 为基础的实体 b e a n 进行打包。作者开发的a t m 企业应用程序展示了来自实体b e a n 的商业逻辑的 缩影。因为对话b e a n 体现了外观设计模式,所以对实体b e a n 使用这一打包处理增 强了实体b e a n 再使用性。打包实体b e a n 需要某些值对象,这些值对象是包含客户 数据的可串行化的j a v ab e a n 。因为对象工厂与所有数据源保持着联系,所以它们 能构造值对象。基础的实体b e a n 不含任何特定应用程序的逻辑。工厂能决定是否 用数据源替代实体b e a n 。本模式使用符合对话逻辑的行为对象。 7 2 1 , 3 主动接口技术 主动接口能用来适配软件构件,改变它们的行为规范或功能性。除了初始构件 已经有的接口外,主动接口还能插入在构件中能被调用的附加接口。回叫程序能以 异常分支的形式插入所选择的模式中。有两种异常分支:前置异常分支和后置异常 分支,对应于第三章所讨论的前置环境和后置环境。主动接口的语言是独立的,运 行原型使用j a v a 。因为在加载系统之前已经知晓了所有的类( 将被适配的类和连接 类) ,所以有可能进行静态修改。被适配的方法拥有一个控制异常分支插入这些方 法的关联构件适配器。回叫程序连同参数一起详细说明方法名、阶段( 前置或后置) 、 连接对象和新方法名。连接对象创造来执行回叫程序规定的新方法。在监视大系统 以及评价方法中的前置环境和后置环境时,回叫程序特别有用。所有信息被送至监 视器,在回叫程序的前置阶段中进行评价,且根据信息的不同,可能会发生像功能 性拒绝、增加和重叠这样的行为。当方法提供的服务被拒绝时,则被称为功能性拒 绝;当方法参数的值被修改时,则被称为功能性增加;当方法重叠时,则被称为功 能性重叠。 使用主动接口开发应用程序时,存在着一个特殊的环境。它被称主动接口开发 环境( a i d e ) 1 4 ) o 当前,该环境为j a v a 程序服务,但它能扩展应用于任何面向对象 的程序。有一种前端工具,它能够使用户选择j a v a 源文件以及需要适配的类中的 模式。第三章中的图3 7 展示了用来适配的类的窗口。适配以后,此类通过a i d e 编译器( j a v a c c ) 进行编译,这一编译器能够生成新的接口的文件以及回叫程序。 适配后的新的源文件能被普通j a v a 编译器编译且是不同于b c a 的独立的j d k 文本。 主动接口适配技术有如下优点: ( 1 ) 适配后的连接码含有修改逻辑。此逻辑独立于初始构件编码。 ( 2 ) 它能应用于任何编程语言编写的应用程序。 ( 3 ) 所有方法与回叫程序相关联,即使是那些由于进入许可而在外部无法看4 的方法也是如此。 ( 5 ) 回嘲程序的插入发生在构件内部。系统中所有其他相互作用的构件将它 看成初始的未被修改的构件。 ( 6 ) 主动接口提供一种动态增加或撤销异常分支的运行时间支持。 然而,本技术也有一些缺陷: ( 1 ) 当前,运行环境( a i d e ) 仅支持j a v a 语言编写的构件。 ( 2 ) 与b c a 不同的是主动接口机制将回叫程序安装到正被适配的构件源代码 里。 硕士学位论丈 m a s t e r st h e s i s 由于主动接口的优点以及我们所选择的技术拥有其j a v a 编写的所有构件,我 们选择主动接口作为我们的适配技术。 2 2 规范形式语言 有许多正式规范构件行为的建模语言,例如u m l 、c s l 、a d l 。一项以前的研究 表明c s l 中使用的概念集中在系统子构件的互用性“”。c s l 在捕捉构件接口内在复杂 性方面很有用。作者们认为形式语言在软件业正变得越来越重要o ”。 2 2 。1z 语言 用z 语言规范软件构件的主要目的是规范能被分解成模式来模拟不同场景,z 语 言用来规范构件确定的不同方法的前置环境和后置环境。z 语言在构造构件静态以 及动态方面也很有用。静态方面是指前后置环境和系统常量,也包括状态信息。动 态方面包括行为建模和构件互用性“”。z 语言是典型的规范语言,因此每一个表达 符号或声明都和特定类型相联系。可利用的很多工具能让我们通过类型匹配技术证 实模式的有效性。z 语言提供从基本对象到复合对象范围广大的规范术语表“”。它 也提供了诸如笛卡尔乘积和有序偶映射之类的有用的固定语言。我们将使用笛卡尔 乘积来建立主动接口的模型,这里我们确定了一个有序偶( 回叫程序源程序阶 段) 来详细说明某一特定方法对于某特定方法到底是前置回叫程序还是后置回叫 程序。此产品检查排序和类型的能力能帮助我们准确规范拥有典型自变量的构件接 口。模式规范和捆绑更有用。捆绑用于使用执行命令的构件的行为规范,这里模式 的子构件映射到捆绑的予构件。例如,c o n t a i n e r 模式描述了形成模式元素的所有 容器配置。当c o n t a i n e r 包含在j b s e r v e r 模式e 中时,容器配置能作为捆绑c o n t a i n e r 的元素进行存取。z 对象提供逻辑句法和诸如存在的和普遍的之类的量词。当在模 式中说明谓词时,这些都非常有用。z 语言在规范构件条件行为方面也很有用。我 们使用关键词i f ,t h e n 和e l s e 来模拟条件行为。z 语言规定了关系和函数,它们能 直接映射至构件的方法和接口。在2 2 2 部分中,我们引入了另一种形式规范软件 系统的有效语言。 由于上述的优点以及映射到主动接口回叫程序前后置阶段的前后置环境的形 式规范,我们选择了z 语言。我们能很容易地规范与构件适配后行为相联系的z 文 件。也由于图形用户接口工具的广泛使用,z 语言是规范企业构件的理想选择。 2 2 2z 语言开发工具c a d i z 我们最初选择了c a d i z 工具作为我们的z 语言编辑器。c a d i z 提供了一个用户界 9 硕士学位论文 m a s t e r st h e s i $ 面来开发z 语言规范。它能检查z 语言规范的类型和正确性以及报告类型错误。我 们使用这一工具中的t r o f f 和l a t e x 标示语言来规范软件构件。参考手册详细说明了 所有模式框和可使用的工具包的使用方法。源目录层次及其使用方法在手册中显 示。c a d i z 是一个在特定目录中提供所有文件的开放源应用程序。除了是开放源, c a d i z 代码也可以移动。这些都是使用c a d i z 作为模拟软件的工具的优点。但是, c a d i z 的某些特征与本文中我们使用这一工具来规范构件的选择相违背,它们是: ( 1 ) “p r i n t ”命令打印出来的设计图并不总是与实际输出相一致。 ( 2 ) 能够编写类的全程约束但不能在试验中使用。 ( 3 ) 这一工具并不强大且它的界面很难使用。 ( 4 ) 为了得到可见的规范,所有的模式和定理都需要在l a t e x 或t r o f f 中进行编 码或编译。 ( 5 ) 在c a d i z 中键入z 语言规范变得十分枯燥,因为编译文件时所有的工具包必 须对应于一个合适的符号和相应的标示。 由于这些缺点,我们决定选择z e v e s 作为规范z 语言构件的工具“”。 2 2 - 3z 语言开发工具2 压v 酷 工具z e v e s 2 1 能让我们规范z 语言中的任何软件构件,分析构件并编辑其规 范。它使用拥有强大演绎能力达到最耨技术发展水平的正式方法技术。它通过检查 语法、类型,允许模式扩展,辅助前后置环境检查,检查域和支持定理证明能力来 帮助分析规范。软件构件的规范以纯文本编写,然后映射n z 语言的域。z e v e s 中 使用方便的图形用户界面能帮助用户插入在规范中使用的数学和逻辑符号并检查 模式。它拥有范围广泛的工具包( 数学的和逻辑的) 。我们使用数学工具包来进行 某些数学操作,例如创造出新帐户后增加账号,以及将最大的服务器实例限制n 1 0 的结构选择z e v e s 的定理证明窗口促进了规范的有条件的改写“”。z e v e s 也扩展 了能够在公理框中向谓词上贴标签的证明命令。z e v e s 段落窗口的快照显示在图 2 4 中,这一窗口是用来将e j b 构件账户的构件规范映射n z 语言的域中。 1 0 硕士学位论文 m a s t e r st i t e s i s 图2 4z e v e s 段落窗口和工具框窗口 用z 语言编写规范时,所有的段落、模式和验证都要进行类型检查。图2 5 9 显 示的“y ”值表明相应的谓词在逻辑上是有效的。第三章给出了一组完整的z 语言语 法,我们用它来正式模拟e j b 系统。这两个文件都要经过z e v e s 和类型检验器的处 理来证实它们是有效的z 语言规范。 图2 5z 语言中的类检查谓词和定理 2 3 e j b 构件模型 2 3 1j 2 e e 的介绍 j 2 e e 支持连接器结构,在此结构中不同卖主开发的构件提供了应用服务器和企 业信息服务之间标准的连通性衄1 。这一连接器结构被推荐成为j 3 e e 平台】3 版本的 一部分。e j b s 由j 2 e e 结构支持。j 2 e e 提供多种可以插入应用服务器的源适配器。j 2 e e 命令也支持包含服务器与e i s 问系统级协议集合的系统级可插入性。j 2 e e 提供了诸 如交换、安全和共享之类的各种机制。各种e j b 构件的配置以及服务器从中提取信 息都是以x m l 的形式进行。”。x m l 是在h t t p 或h t t p s 协议下数据交换最受欢迎的模式 脚。我们例子中的a p p l i c a t i o n - c l i e n t x m l 配置描述符和容器配置文件都是以x m l 编写的。 2 3 2e j b 应用程序 e j b 应用程序可以升级、可移动、强大以及可以进行交换”。e j b 由s u n 微系统 确定且由j 2 e e 平台支持。e j b 应用程序支持三层:显示层、商业逻辑层和企业信息 系统层。e j b 容器形成商业逻辑层的主体。层间的差异在2 3 3 部分中解释。正如中 所示,e j b 确定了在企业数据上运行的商业逻辑“1 。企业b e a n 的实例在运行时问内由 容器创造和管理。e j b s 能在配置时问内通过编辑环境输入进行定制,这些环境输入 如e j b s 的类型及其参考的数据源等。第三章展示了一个开发用来修改的实体b e a n 的 详细例子。 图2 6e i b 三层结构 硕士擘住论文 m a s t e r s t h e s i s 2 3 - 3e j b 的三层结构 e j b 的三层结构如图2 6 所示。e j b 模型包含如下的层: 1 显示层:客户应用程序包含此层。客户通过h t m l 版面、a p p l e t s 或独立的应 用程序能存取服务器一方的构件。这一层从e j b 构件中向客户提供动态的信息。 2 商业逻辑层:这一层驱动企业应用程序。e j b 服务器容器提供所有的低水平 系统服务来主持企业b e a n 。图2 7 展示了三种类型的e j b s 。它们是: ( 1 ) 对话b e a n :对话b e a n 彼此间的生命周期相同“。对话b e a n 一直持续到联 系上客户。对话b e a n 可以细分为如下类型: b 无状态对话b e a n :这些b e a n 没有类级的变量说明o “。每一方法在局部参数上 运行。当客户再次连接时,对话b e a n 的状态没有被保存。 c 有状态对话b e a n :这些b e a n 需要数据库连接来存储对话信息。这- 此b e a n 拥有 实例变量,说明在其类定义中。客户能操纵这些变量的值并能在其他方法呼叫中使 用它们。 图2 7 使用主动接口进行构件适配 ( 2 ) 实体b e a n s :这些b e a n 有一个基本的数据源来储存每一实体b e a n 的状态。 一个实体b e a n 对应于e j b 服务器用来持续存储的数据库表中的一排。实体b e a n 由于 默认总是处于有状态。它不仅在所有模式中使用b e a n 的实例变量,还能使这些变量 一值的配对同步进入数据库。 实体b e a n 有两种方式管理持续性: a b e a n 管理的持续性:e j b 开发器包含着j d b c 和s q l 呼叫嘲。b e a n 能在应用服务 硕士学位论文 m a s t e r st h e s i s 器问移动是非常重要的o ”。因此需要正确的执行。在我们执行的例子中,我们把b e a n 和称为“j d b c a c c o u n t s ”的c l o u d s c a p e 数据源进行捆绑。这是一个作为我们的实 例开发的存储银行系统每一个客户信息的关系数据库汹1 。 b 构件管理的持续性:实体b e a n 将持续管理的责任委托给容器。b e a n 执行过程 不包含任何处理数据库的代码。在配置时间内,容器产生捆绑b e a n 和数据源所需的 代码以及执行实体对象的持续储存。同时,容器也将b e a n 的域映射到数据库的域。 ( 3 ) 信息驱动的b e a n :这些b e a n 由不同步的信息和方法调用组成。信息驱动的 b e a n 包含在e j b 规范2 o 中嘲。当服务器收到不同步的信息时,这些b e a n 被激活或创 造。 3 企业信息系统层:企业信息层处理像数据库这样的不同种类的资源。 e j b 符合支持分布式事物处理的构件模型。j a v a 处理服务器( j t s ) 帮助e j b 服 务器集成其他e j b b 务器。”。我们在第三章中讨论的例子涉及分布式结构,当实体 b e a n 不能规范处理区分时,此结构能支持隐性处理。我们将不使用区分客户的处理。 我们修改的e j b 的d e n y 方面映射到处理的重新进行。我们之所以选择e j b 模型。是因 为它是基于工业标准协议以及它适合于大型企业系统的小规模应用程序。正如第四 章所述,行为建模很大程度上集中于构件的互用性或大规模软件构件的予构件。e j b 模型支持高水平的集成和互用性。实体b e a n 执行j a v a x e j b e n t i t y b e a n 接口。 2 4 开发帐户e j b 应用程序 可以选择i o n a 的i p o r t a l 应用服务器( i p a s ) 来开发应用程序。i o n a 的i p a s 能 够让开发、配置和运行基于构件的企业应用程序。它提供图解的开发工具,其中安 装j a v a 2 平台、企业版( j 2 e e ) 应用程序以及一个标准的运行时间环境来配置运行 应用程序。选择i p a se j b 服务器的理由如下: ( 1 ) i o n a 的i p o r t a l 应用程序服务器( i p a s 3 o ) 支持在w i n d o w sn t 和s u n s o l a r i s 2 0 及以上环境下的多平台应用程序“1 。 ( 2 ) 它为使用图形用户接口定制容器结构以及进行j d b c 连接提供了便利。 ( 3 ) 它提供了一个开发这些应用程序的标准运行时间环境。 ( 4 ) 它提供了一个在加载了内置c l o u d s c a p ej d b c 驱动器以后开发j 2 e e 应用程序 的可升级的构架。 ( 5 ) 虽然i p a s 3 0 支持j a v a 交换结构( y r a ) 、j a v a 邮件1 1 等各式各样的其他服 务。还是将集中于e j b 服务器。 i p a s 3 0e j b 服务器能包含一个或更多的b e a n ,也能支持一个或更多的容器。 顶士拳往论文 m a s t e r st h e s i $ e j b 容器帮助e j b 服务器管理安全、交换和分散对象的交流。在例子中,将处理实体 企业b e a n 。如果出现实体b e a n ,则它对其持续性负责。i p a s 提供了一组完整的工具 能让企业应用程序开发者创造、配置和管理应用程序。对企业应用程序打包的标准 格式是e a r 文件( e n t e r p r i s e 盘r c h i v e ) 。它包含以x 札编写的描述容器中每一个b e a n 的b e a n 编译类、接口和配置描述符。 2 5 本章小结 本章重点介绍了规范分析构件适配技术的理论基础。首先介绍了几种基本的构 件适配技术,接着介绍了规范的形式语言z 语言以及z 语言的开发工具,讨论了用 z 语言规范软件构件的目的。比较了两种z 语言的开发工具并使用他们来来正式规 范e j b 构件。集中于j 2 e e 技术并选择i o n a 的i p 勰3 0 f j b 服务器来开发应用程序。 也列举了i o n a 的i p 勰应用服务器来开发e j b 的应用程序的优点。同时也介绍了 e j b 构件开发模型的特点。 硕士学位论文 m a s t e r st h e s i s 第三章e j b 构件适配的设计方法 3 1 方法设计 图3 1 中显示了e j b 构件适配的各个阶段。基础的一步就是确定j 2 e e 环境的 接口、结构以及i o n a 的i p a s 3 0 应用服务器的特征。开始阶段称为实体b e a n 的创 建或设计阶段,也是首次创建z 文件的时间。下一阶段通过运行客户要求的商业方 法来显示应用程序的构造。第三阶段称为建造应用程序。i o n a 为建造实体b e a n 提 供了各种各样的工具和图形用户接口。这一阶段创建出额外的e a r 文件。第四阶段 在数据源注册的结尾附加结构详情。第五阶段检验b e a n 的配置过程。第六阶段和 最后一阶段是客户应用程序的开发和测试。目前,第七、八两阶段分别说明应用于 该系统的z 对象规范和增量。这由手动操作完成。在不关闭服务器的情况下将z 文件打包配置。第九阶段说明b e a n 类的适配。第十阶段说明z 文件中为形成z 文 件的增加或删除之间的映射以及根据z 规范改变b e a n 的行为所编写的连接代码。 3 2 实体e j b 适配方法 采用z 规范来开发e j b ,z 规范说明了设计e j b 商业逻辑的函数、关系以及映 射。在适配过程中,采用描述e j b 中所需的相加行为和减去行为的z 文件。此文 件包含描述适配后的e j b 的附加的映射、函数、定理和关系。为了映射这些改变, 手写连接代码来适配e j b 构件研究出了适配实体b e a n 的如下三种方式: 1 如图3 2 所示,有一个b e a n 集中适配管理器称为a d a p tb e a n ,它负责插入, 删除在所有b e a n 中的所有模式的回叫程序。容器中的b e a n 利用x 札b e a n 描述符 中的b e a n 交叉引用标记参考此a d a p t 。图3 2 中显示了一个称为a c c o u n tb e a n 的 b e a n ,它是根据zf i1 e 发展而来的b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论