已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)基于组件的生物信息分析系统框架的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 摘要 作为生物信息数据库的重要组成部分 生物信息分析系统的构建是当前生物信 息学中的一个重要研究课题 随着生物信息学的发展 生物信息工具软件越来越多 很多可以免费获取 有的甚至提供源代码 但是这些软件大多数只能在本地使用 不适合在网络上应用 而且其运行环境 实现语言各不相同 这些因素极大地限制 了它们在生物信息分析系统开发中的运用 基于组件的生物信息分析系统框架c b a s f 是一个以复用思想为指导 利用组件 x m l w e b 服务等技术 快速构建生物信息分析系统的框架模型 首先利用包装技术 实现对现存生物信息工具软件的组件化复用 然后利用w e bs e r v i c e s 相关技术集成 和部署各个组件化的工具软件 以w e b 服务的形式发布其功能 c b a s f 针对现存工具软件的不同特点提出了两种组件化包装方法 以组件的形式 实现对现存工具软件功能的复用 一种是动态连接式包装方法 首先对工具软件源 码进行分析 挖掘 以其核心代码段构建动态连接库 然后构建相应的包装器实现 对其分析功能的复用 另一种是外挂式包装法 在工具软件外部构造包装器 通过 对其运行时的输入信息和输出信息进行控制和分析 实现对其分析功能的复用 这 两种包装方法能够适用于多种平台下运行 多种语言实现的生物信息工具软件 c b a s f 在集成和部署各个组件化的工具软件时 使用w s d l 定义其功能接口和访 问节点 以符合x m l 规范的s o a p 消息传递参数和返回结果 这使得该框架具有松散 耦合的系统结构和良好的可扩展性 可以很容易的添加新的分析处理功能或以新版 的软件替换现有工具软件实现功能的升级 并且组件化的工具软件同时以w e b 服务 和w e b 页面两种形式提供访问接口 可以满足用户的各种使用需求 在8 6 3 项目 硒蛋白相关生物信息二级数据库的构建中 应用c b a s f 框架实 现了其生物信息分析处理系统 该系统充分利用了现有丰富的生物信息工具软件资 源 既避免了熏复开发也缩短了系统的开发周期 关键词 生物信息学 复用 组件化包装 华中科技大学硕士学位论文 a b s t r a c t a sa ne s s e n t i a lc o m p o n e n to ft h eb i o i n f o r m a t i cd a t a b a s e s t h ed e v e l o p m e n to ft h e b i o i n f o r m a t i o na n a l y s i ss y s t e mh a sb e c o m ea l li m p o r t a n tr e s e a r c ht o p i ci nb i o i n f o r m a t i c s a l o n gw i t ha d v a n c e m e n t o f b i o i n f o r m a t i c s t h e r ea r em o r e a n dm o r eb i o i n f o r m a t i ct o o l s m a n yo f w h i c ha r ef r e eo fc h a r g ea n de v e nt h es o u r c ec o d eo fs o m eo ft h e s et o o l sa r c a v a i l a b l e h o w e v e r m o s to ft h e ma r eh o s tp r o g r a m st h a th a v en o tb e e nc o n c e i v e dt or u n i na ni n t e r n e tm o d e a n dt h e ya r ei m p l e m e n t e di nd i f f e r e n tl a n g u a g e sr u n n i n go nd i f f e r e n t p l a t f o r m s t h e s ef a c t o r sh a v ep r o h i b i t e dt h e mf r o mb e i n gu s e dt oh e l pt h ec o n s t r u c t i o n o ft h ed a t a b a s e s c o m p o n e n t b a s e d b i o i n f o r m a t i o na n a l y s i ss y s t e mf r a m e w o r k c b a s f i sam o d e l f o rt h er a p i dd e v e l o p m e n to fb i o i n f o r m a t i o na n a l y s i ss y s t e m i ti sr e u s e o r i e n t e da n d b a s e do nc o m p o n e n t x m la n dw e bs e r v i c e st e c h n o l o g i e s f i r s t i tu s e sw r a p p i n g t e c h n o l o g i e st o a c h i e v et h ec o m p o n e n t i z e dr e u s eo ft h ee x i s t i n gb i o i n f o r m a t i c st o o l s t h e n i tu s e sw e bs e r v i c e st oi n t e g r a t ea n dd e p l o yt h ec o m p o n e n t i z e dt o o l s a n dp u b l i s h t h ef u n c t i o n a l i t i e sa sw e bs e r v i c e s c b a s fp r o p o s e st w o c o m p o n e n t f i r s tw r a p p i n ga p p r o a c h e sa c c o r d i n g t ot h e c h a r a c t e r i s t i c so ft h ee x i s t i n gt o o l s w h i c ha c h i e v et h er e u s eo ft h e s et o o l si nt h ef o r mo f c o m p o n e n t s o n ei sd y n a m i c l i n k l i b r a r yw r a p p i n ga p p r o a c h f i r s t e x t r a c t t h ec o r e c o d es e g m e n t st h r o u g ht h ea n a l y s i sa n dm i n i n go ft h es o u r c ec o d eo ft h et o o l s e c o n d c r e a t ead y n a m i cl i n kl i b r a r yb a s e do nt h ee x t r a c t e ds o u r c ec o d e f i n a l l y c o n s t r u c ta c o r r e s p o n d i n gw r a p p e rt o a c h i e v et h er e u s eo ff u n c t i o n a l i t yo ft h et 0 0 1 t h eo t h e r a p p r o a c h i so u t s i d e h a n g i n gw r a p p i n g c o n s t r u c ta w r a p p e r f o rt h ee x e c u t a b l eo f t h et o o l a c h i e v et h er e u s eo fi t sf u n c t i o n a l i t yt h r o u g ht h ec o n t r o la n da n a l y s i so ft h ei n p u l o u t p u t o ft h e r u n n i n gp r o g r a m t h e s ea p p r o a c h e sc a r l b ea p p l i e dt ob i o i n f o r m a t i ct o o l so fa v a r i e t yo fp l a t f o r m sa n di m p l e m e n t i n gl a n g u a g e s i nt h ei n t e g r a t i o na n dd e p l o y m e n to ft h ec o m p o n e n f i z e dt o o l s c b a s fu s e sw s d l t od e f i n et h ei n t e r f a c e sa n da c c e s se n d p o i n t so ft h es e r v i c e sa n dx m l b a s e ds o a p m e s s a g e s t o p a s s t h e p a r a m e t e r s a n dr e s u l t s w h i c hm a k e st h ef r a m e w o r kh a v e l o o s e c o u p l e d a r c h i t e c t u r ea n dg r e a te x t e n s i b i l i t y n e wa n a l y s i sf u n c t i o n a l i t yc a r lb e a d d e de a s i l ya n dt h ed e p l o y e dt o o lc a nb er e p l a c e db yan e w v e r s i o nw i t he a s e m o r e o v e r i no r d e rt om e e td i f f e r e n tr e q u i r e m e n to ft h ec l i e n t s c b a s fp r o v i d e st w ot y p e so f 华中科技大学硕士学位论文 a c c e s s e sf o re a c ho ft h ec o m p o n e n t i z e dt o o l s t h r o u g hw e bs e r v i c e so rt h r o u g hw e b p a g e s i nt h ed e v e l o p m e n to ft h e8 6 3p r o g r a m t h ec o n s t r u c t i o no ft h es e c o n d a r yd a t a b a s e o fi n f o r m a t i o na b o u ts e l e n i u m p r o t e i n t h e c b a s fi s a p p l i e d t oc o n s t r u c tt h e b i o i n f c r m a t i o n a n a l y s i ss u b s y s t e m i tm a k e sf u l l u s eo ft h ea b u n d a n tr e s o u r c e so f e x i s t i n g b i o i n f o r m a t i ct o o l s w h i c hn o t o n l y a v o i d st h e r e i m p l e m e n t a t i o n o ft h e s e f u n c t i o n a l i t i e sb u ta l s oq u i c k e n st h ec o n s t r u c t i o no f t h ed a t a b a s es y s t e m k e y w o r d s b i o i n f o r m a t i c s r e u s e c o m p o n e n t f i r s tw r a p p i n g 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果 尽我所知 除文中已经标明引用的内容外 本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果 对本文的研究做出贡献的个人和集体 均已在文中以明确方式标明 本人完全意识到本声明的法律结果由本人承担 学位论文作者签名 蔼炙 日期 z o d y 年厂月矽日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留 使用学位论文的规定 即 学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版 允许论文被查阅 和借阅 本人授权华中科技大学可以将本学位论文的全都或部分内容编入有关数 据库进行检索 可以采用影印 缩印或扫描等复制手段保存和汇编本学位论文 保密口 在 年解密后适用本授权书 本论文属于 不保密讲 请在以上方框内打 学位论文作者签名 彩炙 日期 2 舛厂月莎日 指导教师繇彻彬喂 日期 多护严年厂月岔日 华中科技大学硕士学位论文 1 绪论 1 1课题背景 近年来随着快速序列测定 基因重组 多维核磁共振 同步辐射 机器人等技 术的发展和应用 生物学实验数据呈爆炸增长 同时计算机和国际互联网的发展使 对大规模数据的存贮 处理和传输成为可能 这些都促成了生物信息学学科的形成 和发展 生物信息学是一门交叉科学 它包含了生物信息的获取 处理 存储 分发 分析和解释等在内的所有方面 它综合运用数学 计算机科学和生物学的各种工具 来阐明和理解大量数据所包含的生物学意义 目前 生物信息学已成为整个生命科学 发展的重要组成部分 成为生命科学研究的前沿 数据库是生物信息学的主要内容 各种数据库几乎覆盖了生命科学的各个领域 核酸序列数据库有g e n b a n k e m b l d d b j 等 蛋白质序列数据库有s w i s s p r o t p i r o w l n r l 3 d t r e m b l 等 蛋白质片段数据库有p r o s i t e b l o c k s p r i n t s 等 三维 结构数据库有p d b n d b b i o m a g r e s b a n k c c s d 等 与蛋白质结构有关的数据库还 有s c o p c a t h f s s p 3 0 一a l i d s s p 等 与基因组有关的数据库有e s t b d o m i m g d b g s d b 等 文献数据库有m e d l i n e u n c o v e r 等 此外还有其他数据库数百种 另外 些公司还开发了商业数据库如m d l 等 1 随着生物科学技术的迅猛发展 无论从数量上还是从质量上 都极大地丰富了生 物科学的数据资源 然而 数据并不等于信息和知识 数据的积累也不等于知识的增 长 但它却是信息和知识的源泉 关键在于如何从中挖掘它们 生物信息学研究就是 要从海量的生物信息数据中来发现生物学知识和规律 这就要求人们迅速提升对数 据搜集 管理 处理 分析 释读的能力 这其中的一系列处理过程 需要依靠信息 科学 数学和具有强大数据处理功能的计算机技术 为了对获取到的生物信息进行 高效的分析和处理 各种生物信息学工具软件也层出不穷 包括图形软件 序列查 询与分析软件 结构查询与分析和预测软件 以及功能分析与预测软件 特征筛选 与分类软件 序列特征 结构折叠特征 等等 本课题主要来源于国家8 6 3 项目 硒蛋白相关生物信息二级数据库的研究和 开发 所谓生物信息二级数据库 b i o i n f o r m a t i c ss e c o n d a r yd a t a b a s e 是指根据不 同研究领域的实际需要 通过搜索已知数据库 获取相关信息进行分析 提炼 整 理和系统化 构建出的具有特殊生物学意义和专门用途的数据库 它可以为生命科 学各个领域研究提供丰富的信息资源 生物信息分析 处理子系统作为生物信息数据 华中科技大学硕士学位论文 库系统的一个重要部分 开发人员如何能够充分利用现有软件资源 避免重复开发 快速的构建这样一个分析平台 也就成了一个重要的课题 本课题的目的就是基于面向对象和组件的思想 运用各种软件包装复用技术 提出一种构建生物信息分析平台的框架模型 该框架应具有跨平台 移植性好 易 于集成复用 易于扩展等特点 开发人员可以充分利用现有的丰富的生物信息软件 资源 快速的构建出一个开放性好 松散耦合的生物信息处理平台 虽然本课题提 出的框架主要用来构建生物信息分析平台 但也可以应用于其他领域的数据分析处 理平台的构建上 1 2 国内外研究概况 生物信息数据库和生物信息工具软件是生物信息学中的两个重要的研究课题 随着生物信息学的发展 它们也有了长足的发展 软件复用技术是提高软件开发效 率和可靠性的重要手段 在实际应用中有多种成熟复用技术 为了适应现在大型程 序网络化的要求 有多种分布式计算技术和标准已经制定并应用于实际开发中 1 2 1 生物信息数据库发展 生物信息学的研究离不开数据的支持 早在1 9 5 6 年 在美国田纳西州的 g a t l i n b u r g 就召开了首次 生物学中的信息理论讨论会 但生物信息学的发展却是 在生物科学数据资源急剧膨胀的二十世纪末 其2 0 余年沉默的主要原因之一仍是数 据资源的贫乏 二十世纪末期尤其是现在 生物科学技术的迅猛发展 无论从数量上 还是从质量上 都极大地丰富了生物科学的数据资源 生物信息学研究就是要从海量 的生物信息数据中来发现生物学知识和规律 生物信息数据库的发展具有以下几个特点 首先 数据库内容的爆炸性增长是生物信息学数据库的重要特征 这种趋势主要 是因为基因组等计划的实施 1 9 8 6 年d u l b e c c o 提出了 人类基因组 计划 3 1 9 9 0 年美国投资3 0 亿美元正式启动了这一计划 至2 0 0 0 年6 月2 6 日 被誉为生命 阿波罗登月计划 的人类基因组计划 经过美 英 日 法 德和中国科学家的艰苦 努力 约3 0 亿碱基对的测序已经完成 2 0 0 3 年4 月1 4 日 人类基因组序列图绘制 成功 人类基因组计划的目标全部实现 3 到目前为止 其它模式生物基因组的测序 工作进展也极为迅速 约1 1 5 种生物的基因组测序工作已经完成 正在进行的基因 组测序包括2 7 1 种原核生物 1 5 2 种真核生物 基因组测序工作获得了大量核酸数据 截止2 0 0 3 年3 月 登录在g e n b a n k 数据库中的d n a d e o x y r i b o n u c l e i ca c i d 序 歹1 j 总量己超过2 0 0 亿碱基对 基于e d n a 测序的e s t 数据库其纪录已达1 5 8 9 万条 2 华中科技大学硕士学位论文 并且可以预计 今后d n a 序列数据的增长将更为惊人 另外 生物学数据的积累并 不仅仅表现在d n a 序列方面 与其同步的还有蛋白质的一级结构 即氨基酸序列 的增长 截止2 0 0 3 年3 月 蛋白质序列数据库s w i s s p r o t 中存放了78 0 7 种生 物的12 万多个序列 并有3 80 0 0 多种以不同的分辨率测定的蛋白质空间结构 目 前 全球建立的生物数据及在此基础上派生 整理出来的数据库已达5 0 0 余个 n u c l e i ca c i d sr e s e a r c h 杂志连续十 年在其每年的第一期中详细介绍最新版 本的各种数据库 在2 0 0 4 年1 月1 日出版的3 2 卷第一期中收集和介绍了5 4 8 个数据 库 比前一年增加了1 6 2 个 1 这一切构成了一个生物学数据的海洋 这些海量数 据的急速积累 在人类科学研究历史中是空前的 其次 除了数量上的增长 数据库的复杂程度在不断增加 它包括了大量注释 参考文献及软件 并通过指针将相关内容连接到其它数据库 在第3 5 版s w i s s p r o t 中注释项涉及蛋白质的功能 结构域和活性位点 二级结构 四级结构 翻译后修 饰 与其他蛋白质的相似性 相关疾病 序列冲突等 与之交叉引用的数据库增加 到2 6 个 数据库结构层次的复杂化客观上要求管理技术的进步 沿用旧的管理模式 将给信息的维护 访问和修改造成很大困难 给生物学工作者等非计算机专业人员的 使用带来极大不便 计算机和网络化是生物信息学的又一重要特点 e m b n n e t e u r o p e a n m o l e c u l a r b i o l o g yn e t w o r k 已经连接了2 2 个国家节点和8 个大型生物计算中心 成为最大 的生物信息学区域网络 许多数据库服务器己从工作站升级到大型服务器 软件的 进步使数据库实现了更为高效灵活的管理和使用 1 9 9 7 年7 月p d b 推出了自动数据 投送系统a u t o d e p 使向p d b 投送数据操作大大减化 而e b i e u r o p e a n b i o i n f o r m a t i c si n s t i t u t e 则通过为一些机构建立帐户的方式提高数据收集的效 率 p r i n t s 数据库在1 9 9 6 年就将j a v a 引入 实现了交互式序列对比的可视化功能 而p d b 已经实现了v r m l v i r t u a lr e a l i t ym o d e l i n gl a n g u a g e 模型的传送 使用 户可以在空间任一视点观察生物大分子的结构 为适应各类化学 生物学和医学等研究工作的特殊需要 根据生命科学不同研究 领域的实际情况 对基因组图谱 核酸和蛋白质序列 蛋白质结构以及文献等数据进 行分析 整理 归纳 注释 建立具有特殊生物学意义和专门用途的二级数据库是一 条可行之路 通常 二级数据库是在一级数据库 实验数据和理论分析的基础上针对 特定目标衍生而来 是对生物学知识和信息的进一步整理 其类似名称有 以任务为 导向的数据库 j o b o r i e n t e dd a t a b a s e 升值的数据库 v a l u e a d d e dd a t a b a s e 专家数据库 s p e c i a l i s td a t a b a s e 或以知识为基础的数据库 k n o w l e d g e b a s e d 华中科技大学硕士学位论文 兰 号 署芎 专 墨 了 一 d a t a b a s e 专门数据库 专业数据库 专用数据库 近年来 世界各国的生物学家和 计算机科学家合作 已经开发了几百个二级数据库和复合数据库 1 1 2 2生物信息工具软件的发展 数据资源的急剧膨胀首先迫使我们不得不考虑寻求一种强有力的工具去组织它 们 以利于对已知生物学知识的储存和进一步加工利用 大量多样化的生物学数据 资源中必然蕴含着大量重要的生物学规律 这些规律是我们解决许多生命之谜的关 键所在 然而继续沿用传统手段以人脑来分析如此庞杂的数据实在是太勉为其难了 人们同样需要寻求一种强有力的工具去协助人脑完成这些分析工作 可以说 伴随 着二十一世纪的到来 生物科学的重点和潜在的突破点已经由二十世纪的试验分析 和数据积累转移到数据分析及其指导下的试验验证上来 生物科学也正在经历着一 个从分析还原思维到系统整合思维的转变 生物学已不再是仅仅基于试验观察的科 学 仅靠传统的研究手段是无济于事的 理论和计算将越来越发挥巨大作用 数学 物理 计算机科学将日益渗透到生物学研究中来 海量的数据必须通过生物信息学 的手段进行收集 分析和整理后 才能成为有用的信息和知识 才能再加以传播应 用 也就是说 只有经过生物信息学手段的分析处理 我们才能获得对基因组的正 确理解 欧美等发达国家在生物信息分析研究方面已经有了很长时间的积累 早在1 9 6 2 年 z u c k e r k a n d l 和p a u l i n g 就将序列变异分析与其演化关系联系起来 从而开辟 了分子演化的崭新研究领域 1 9 6 4 年 d a v i e s 开创了蛋白质结构预测的研究 1 9 7 0 年 n e e d l e m a n 和w u n s c h 发表了广受重视的两序列比较算法 1 9 7 4 年 r a t n e r 首 先运用理论方法对分子遗传调控系统进行处理分析 1 9 7 5 年 p i p a s 和m c m a h o n 首 先提出运用计算机技术预测r n a 二级结构 随着1 9 7 6 年之后大量生物学数据分析技 术的涌现 s c i e n c e 于1 9 8 0 年第2 0 9 卷就已经发表了关于计算分子生物学的综述 正如我们现在所看到的那样 在八九十年代 生物学数据分析技术在国外更是获得 了突飞猛进的发展 在生物信息数据快速发展的同时 针对这些生物数据库而开发的应用软件也层 出不穷 这些软件的充分利用 将成为生物工作者的有力工具 由英国欧洲生物信 息研究所e b i 提供的生物软件目录b i o c a t a l o g h t t p w 啊 e b i a c u k l b i o e a t 1 对 这些软件进行了详细的描述 b i o c a t a l o g 本身也是具有一定数据格式的数据库 共 有5 0 多个类别 包括序列分析 序列对准 a l i g n m e n t 数据库搜索 分子进化 分子建模 结构预测 序列格式转换等 每一种软件都有作者 联系地址 何处获 华中科技大学硕士学位论文 取等信息 而且大部分软件都在不断地更新 目前 b i o c a t a l o g 数据库中收集的软 件已达有5 0 0 多个 大量数据库和软件都可以通过计算机网络获取 欧洲 美国等 许多生物信息中心设有很多站点 以w w w f t p 和e m a i l 等方式为用户提供各种数 据库和应用服务 在针对生物信息数据库开发的软件中 有一些为商业性软件 如用于u n i x 系 统的常用序列分析软件是g c g 1 和s t a d e n 这些软件功能齐全 并在不断更新 上世纪末到现在生物信息分析软件最令人瞩目的发展莫过于越来越多的软件加入到 开源 o p e ns o u r c e 项目中 这使其他的研究开发人员可以在开源许可证下获得其 源代码 同时也享有自行修改 复制以及再分发的权利 极大的推动了生物信息软 件的发展 2 现在全球最大的开源网站s o u r c e f o r g e 上已经有将近2 0 0 个生物 信息工具软件开发项目 包括g e n e x h t t p g e n e x s o u r c e f o r g e n e t g o h t t p w w w g e n e o n t o l o g y o r g 等 还有其他一些正在影响比较大的生物信息开源 项目 这些项目包括b i o p e r l h t t p w w w b i o p e r l o r g 功能强大的序列分析 包e m b o s s 等 除了上面这些以g n u 许可证形式发布的开源项目外 还有一些其他 形式的开源项目 如p h r e d p h r a p 1 和c o n s e d 它们使用自己的许可协议 但 是结果是一样的 其他的研究人员可以免费获得其源代码在此基础上进一步的利用 和改进 这些开源软件多以命令行 c o n n a n dl i n e 形式运行 对于这些以命令行形式 运行的软件用户不仅要在u n i x 环境下的工作站或服务器上有帐户 而且用户还要 熟悉命令及各种参数的使用 以及软件运行的各种环境变量的设置 如果能将这类 软件增加w w w 接口 即以w w w 界面方式运行 会给用户带来极大的方便 例如 b l a s t 是由n c b i 开发的的数据库搜索软件 其典型的命令行运行方式为 b l a s t a l l 一p 程序名 一d 数据库 一i 查询序列 一 查询输出 实际上 此 命令行还可以加入更多的参数 通常那些参数都使用缺省值 所以不在命令行上出 现 如果要进行更加严谨合理的搜索 就要在命令行上对那些参数进行调整 而以 w w w 界面方式运行的b l a s t 则把所有这些参数做成选项 用户可以在任何一个浏览 器上通过调整选项取值对输入的序列进行重复搜索 并可在浏览器上宣接得到满意 的结果 与b l a s t 类似的命令行软件还有很多 为它们设计w w w 用户界面 是对这 类软件很好的集成 从而更便于用户使用 1 2 3 软件复用技术 软件的开发是一个十分复杂的过程 包含系统建模 需求分析 设计 代码生成 华中科技大学硕士学位论文 测试和维护等阶段 从头开发一个软件需要耗费大量的时间 软件系统开发中存在的 重复劳动 重新做这些已经存在的工作无论是在经济上 还是在智力上或实用上都是 毫无意义的 然而随着计算机技术特别是软件工程技术的发展 软件复用技术的出现 给这个问题在一定程度上带来了解决方案 它不但可以提高软件开发效率 还可以提 高软件可靠性 软件复用是指利用现有的软件成分 资源 来构造新的软件系统的过程 该软件 成分可能是已有的软件 也可能是专门开发设计的可复用的软件构件 软件复用并不 仅仅局限于程序源代码的重复使用 在软件开发过程中 复用是指能充分利用已有的 软件开发技术和开发周期中各阶段的产品 它涉及到一个软件开发的全过程o 2 采用软件复用技术有以下几个好处 1 减少重复劳动 提高软件开发的效率 这是复用技术的主要目的 采用复用技 术 开发过程不再是一切 从零开始 的模式 而是以已有的软件成分为基础 充分利 用原来开发系统时的经验和知识以及相关软件成分 避免了重复劳动 2 提高软件的质量和可靠性 对已知是可靠的软件成分的复用比在一个新的系 统中重新设计和编码同一个软件成分有更少的风险 避免了重新开发可能引入的 些错误 另外 在新软件系统开发时 主要精力都放在待开发系统所特有的部分 对系 统中新加入的模块可以做更多的优化 依据对可复用信息进行复用的方式 可以将软件复用分为黑盒 b l a c kb o x 复 用和白盒 w h i t eb o x 复用 黑盒复用指对已有构件不需做任何修改 直接进行复用 这是最理想的复用方式 自盒复用指已有构件并不能完全满足用户要求 需要根 据用户需求进行适应性修改后才可使用 这是最常用的复用方式 现实中软件复用技术的应用主要有库函数 面向对象技术和组件三种 1 库函数 库函数是很早的软件复用技术 很多编程语言为了增强自身的功能 都提供了大量的库函数 对于库函数的使用者 他只要知道函数的名称 返回值的 类型 函数参数和函数功能就可以对其进行调用 2 面向对象技术 面向对象 0 0 o b j e c t o r i e n t e d 技术通过方法 消息 类 和封装等机制构造软件系统 并为软件复用提供了强有力的支持 概括地说 o o 的 基本思想是从现实世界中客观存在的事物 即对象 出发来构造软件系统 并在系 统构造中尽可能运用人类的自然思维方式 强调直接以问题域中的事物为中心来思 考问题和认识问题 相对于面向过程的方法 0 0 方法有利于减小 分析与设计的鸿 沟 o o 技术中的继承 封装 多态性等机制 直接为软件重用提供了进一步的支 持 o o 技术开辟了通过有效的软件重用来达到提高软件生产率的新篇章 华中科技大学硕士学位论文 3 软件组件 从抽象程度来看 面向对象技术己达到了类级的复用 它以类为 封装的单位 这样的复用粒度还太小 不足以解决异构互操作和效率更高的复用 软件组件 s o f t w a r ec o m p o n e n t 将抽象的程度提高到一个更高的层次 它是对一 组类的组合进行封装 并代表完成一个或多个功能的特定服务 也为用户提供了多 个接口 整个组件隐藏了具体的实现 只用接口提供服务 这样 在不同层次上 组件均可以将底层的多个逻辑组合成高层次上的 粒度更大的新组件 甚至直接封 装到一个系统 是模块的复用从代码级 对象级 架构级到系统级都可能实现 从 而使软件像硬件一样 能任意装配定制而成的梦想得以实现 软件组件是独立生产 需求和分发的二进制单元 互相影响并形成一个功能单 元 在基于组件的复用环境中 软件组件是一个可以p l u g p l a y 的构件 它使得 软件开发可以像硬件制造那样通过组装来完成 与传统软件复用技术 库函数和 面对对象技术相比 基于组件的复用有以下方面的不同啪 1 即插即用 p l u g p l a y 组件应该能够同其他组件和框架即插即用 使得 组件可以在运行时组装而不需要编译 2 以接口为中心 组件应该将接口和其实现分离 隐藏实现细节 使得无需了 解他们的实现就可以组装 3 以体系结构为中心 组件在一个预先定义的架构上设计 使得他们可以同其 他组件和框架交互协作 4 标准化 组件接口应该标准化 使得他们可以被多个提供商制造并广泛地跨 公司应用 5 通过市场分发 组件可以通过竞争的市场获取和提高 并鼓励由专门的公司 来提供 1 2 4 分布式计算技术 开发人员建立大型应用程序时 通常要在不同计算机上进行并发工作 这样更 加有效 甚至可能是必须的 新的更强大的计算机和网络带来了分布式计算的现象 把组织的计算分布在网络上 而不是只在中央计算机上安装进行 n 层应用程序把 应用程序分布在多台计算机上 例如 三层应用程序可能把用户界面放在一台计算 机上 把业务逻辑处理放在一台计算机上 数据库放在一台计算机上 它们在应用 程序运行时进行交互 为了让分布式系统正确工作 整个网络中不同计算机上执行的应用程序组件 通 常包装成程序对象 要进行通讯 通常 分布式的应用程序需要使用分布式的对象 华中科技大学硕士学位论文 模型 2 0 世纪9 0 年代初期 许多公司认识到需要这种功能 并且开始开发自己的 分布式组件通信技术 目前国际上 分布式对象技术有三大流派 o m g 的c o r b a m i c r o s o f t 的c o m d c o m 和s u n 的j a v ar m i 1 c o r b a 3 c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e 分布计算技术是o m g 组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对 象请求代理体系规范 c o b r a 标准主要分为3 个层次 对象请求代理 公共对象服 务和公共设施 最底层是对象请求代理o r b 规定了分布对象的定义 接口 和语 言 映射 实现对象间的通讯和互操作 是分布对象系统中的 软总线 在o r b 之上 定义了很多公共服务 可以提供诸如并发服务 名字服务 事务 交易 服务 安全 服务等各种各样的服务 最上层的公共设施则定义了组件框架 提供可直接为业务 对象使用的服务 规定业务对象有效协作所需的协定规则 总之 c o r b a 的特点是 大而全 互操作性和开放性非常好 目前c o r b a 的最新版本是2 3 c o r b a3 0 也已 基本完成 增加了有关i n t e r n e t 集成和o o s 控制等内容 c o r b a 的缺点是庞大而复 杂 并且技术和标准的更新相对较慢 c o b r a 规范从1 0 升级到2 0 所花的时间非 常短 而再往上的版本的发布就相对十分缓慢了 d c o m o d i s t r i b u t e dc o m p o n e n to b j e c tm o d e l 分布式组件对象模型是 m ic r o s o f t 组件对象模型 c o m c o m p o n e n to b j e c tm o d e l 的分布式版本 c o m 可以 看成一种软件包装技术 是一组约定和支持程序库 使不同的软件按照一种固定的 面向对象的方式进行交互 c o m 对象可以用任何一种语言编写 其中包括c j a v a v is u a lb a s i c 等 用d l l 或可执行文件方式实现 使用c o m 对象的客户程序不必知 道对象是用什么语言写成 也不必知道它是以何种方式 d l l 或e x e 运行 d c o m 允 许一台主机上的程序可以调用同一网络相连的其它主机上运行的c o m 部件 d c o m 的 使用目前还仅局限于w i n d o w s 平台 不过m i c r o s o f t 与其合作伙伴正积极在s u n 的 s 0 1 a r is i b m 的0 s 3 9 0 等操作系统平台上移植d c o m 技术 j a v ar m i j a v ar e m o t em e t h o di n v o c a t i o n 是分布在网络中的各类j a v a 对 象之间进行方法调用的代理机制 支持j a v av m j a v a 虚拟机 之间在本机上或者 跨网络的远程方法调用 r m i 直接把分布对象模型嵌入到j a v a 语言内部 使得j a v a 语言的使用者可以方便的在j a v a 环境下开发分布式应用 但j a v ar m i 基本上是 j a v a t o j a v a 技术 它要求客户方和服务器方均使用j a v a 语言编写 难以与其他 语言编写的对象实现互操作 而且j a v ar m i 能支持初级的分布对象互操作 s u n 公 司于是基于r m i 提出了e j b 基于j a v a 服务器端组件模型 e j b 框架提供了像远 程访问 安全 交易 持久和生命期管理等多种支持分布对象计算的服务 目前 华中科技大学硕士学位论文 j a v a 技术和c o r b a 技术有融合的趋势 以上这些技术在实际应用中都是属于封闭网络的分布式计算技术 这些系统要 求服务的客户端与系统提供的服务本身之间必须进行紧密耦合 这样往往使得系统 十分脆弱 如果一端的执行机制发生变化则另一端便会崩溃 而且这些技术就目前 而言 在互联网上还发挥不了作用 因为大多数的防火墙或代理服务器都只允许 h t t p 协议端口的数据包通过 而且上面提到的技术由于不是使用的h t t p 端口 不 可能通过这些防火墙和代理服务器 对于松散耦合的系统 尤其是在i n t e r n e t 环境下的分布式计算而言 需要有一 种适合信息交换的协议 而基于x m l s o a p 的w e bs e r v i c e s 无疑是目前最为合适的 选择 行业对相互操作性问题的经验导致了w e b 服务技术开放标准的开发 努力实现 跨平台通信 w e b 服务使用的主要标准是x m l 这是个数据标记语言 使应用程序和 平台之间可以交换信息 微软和d e v e l o p m e n t o r 公司建立简单对象访问协议 s o a p s i m p l eo b j e c ta c c e s sp r o t o c 0 1 作为w e b 服务之间传输信息与指令的消息 协议 用x m l 作为基础协议 另外两个非常重要w e b 服务规范是w e b 服务描述语言 w s d l w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e 和统一描述 发现与集成 u d d i u n i v e r s a ld e s c r i p t i o n d i s c o v e r ya n di n t e g r a t i o n 也是以x m l 作为基 础协议 w s d l 提供了描述w e b 服务及其特定功能的标准方法 u d d i 定义建立目录的 x m l 规则 公司可以用这个目录对其本身及其w e b 服务进行公告 w e b 服务是为解决在i n t e r n e t 环境下 松耦合的w e b 服务之间进行互相调用 互相集成而设计的技术框架 以x m l s o a p w s d l u 叻i 为主干的w e b 服务技术赋予了 w e b 服务一个与传统对象调用技术相似但又不太相同的体系架构 图i 1w e b 服务体系架构 如图1 1 所示 在w e b 服务体系架构里有三个角色 服务提供者 s e r v i c e p r o v i d e r 服务注册中心 s e r v i c er e g i s t r y 和服务请求者 s e r v i c er e q u e s t o r 华中科技大学硕士学位论文 服务提供者是提供最终w e b 服务的供应商 它实现了一个w e b 服务 并放置在在线 服务器上供别人使用 服务注册中心是一个w e b 服务的注册地 汇集了很多在线的 w e b 服务 一般来说服务提供者将w e b 服务安装到在线服务器后 会将w e b 服务发 布到服务注册中心去 从而使得服务注册中心包含了越来越多的w e b 服务的信息 对于想要使用w e b 服务的服务请求者来说 一般情况下 他首先去查询服务注册中 心 尝试在服务注册中心寻找所需的w e b 服务 当他发现了合适的w e b 服务之后 将从服务注册中心获取这些w e b 服务的技术信息引用 通过这些引用找到真正的w e b 服务以及相关的技术信息 从而完成服务请求者和服务提供者之间的技术绑定 对于这三个角色之间的任意两者之间的交互 使用的都是w e b 服务的交互方式 服务注册中心也是以w e b 服务的形式来运行的 一般可以使用s o a p 而这些被 调用的w e b 服务 其调用界面都是使用w s d l 来描述的 在w e b 服务体系架构下分布式对象之间采用基于h t t p x m l 等i n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秀山土家族苗族自治县带编教师招聘笔试模拟试题及答案解析
- 2026年绩溪县带编教师招聘考试备考试题及答案解析
- 2026年永春县带编教师招聘笔试模拟试题及答案解析
- 2026年沅陵县带编教师招聘笔试模拟试题及答案解析
- 2026年睢宁县带编教师招聘笔试参考题库及答案解析
- 2026年河南高职单招职业适应性测试真题卷
- 2026年岑巩县带编教师招聘考试模拟试题及答案解析
- 2026年丹巴县带编教师招聘考试模拟试题及答案解析
- 2026北海市第十四中学食堂工作人员招聘17人笔试参考题库及答案详解
- 2026年平阳县带编教师招聘笔试模拟试题及答案解析
- 2026年秋季小学道德与法治六年级上册(新教材)教学计划附进度表
- 2026秋人教PEP六年级上册英语(新改版)全册教案
- 教师节主题班会:浓浓尊师意拳拳感恩心
- 新版部编人教版六年级上册道德与法治(课件)第3课 宪法是根本法
- 2026小学教科版四年级科学上册全册教案
- 2026-2030中国移动球幕影院行业市场现状分析及竞争格局与投资发展研究报告
- 测绘工程施工方案
- 26秋 语文一年级上册彩色课课贴
- 2026年主要负责人《金属冶炼(黑色金属铸造)》安全生产模拟考试题
- 康复护理中的感染控制技术
- 2025年民政系统公务员笔试真题附答案
评论
0/150
提交评论