(生物化学与分子生物学专业论文)核酸测序实验室信息管理系统.pdf_第1页
(生物化学与分子生物学专业论文)核酸测序实验室信息管理系统.pdf_第2页
(生物化学与分子生物学专业论文)核酸测序实验室信息管理系统.pdf_第3页
(生物化学与分子生物学专业论文)核酸测序实验室信息管理系统.pdf_第4页
(生物化学与分子生物学专业论文)核酸测序实验室信息管理系统.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(生物化学与分子生物学专业论文)核酸测序实验室信息管理系统.pdf.pdf 免费下载

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

文档简介

摘要 核酸测序技术的进步,特别是近年来全新的高通量核酸测序技术的发明 和改进,使得测序工作朝着高度集成和专业化的方向发展。这给专业化的核 酸测序实验室的数据和人员管理带来了挑战。通过分析研究核酸测序实验室 的工作流程和管理体系,本文采用j a v a 技术开发了一套基于实验流程管理的 测序实验室的信息管理系统。系统为b s 体系,采用轻量级j 2 e e 体系的s 瞰s , h i b e m a t e ,s p r i n g 等较新的流行的开源框架,实现了多层架构的设计。系统 层次清晰,层与层之间、模块和模块之间耦合度低,易于维护和扩展。系 统具有跨平台属性,能部署在晰n d o w s ,“n u x 等操作系统下。 本系统实现了对核酸测序实验流程的全方位跟踪管理,实现了对数据的 采集、存储、整合、查询、导出等功能,规范了实验室相关人员的工作。系 统的实施应用极大地提高了实验室的工作效率和管理水平。同时可为今后分 子生物学、医学及其他学科的实验室信息管理系统的建设提供参考。 关键字:实验室信息管理系统;u m s :核酸测序;实验流程;生物信息学 a b s t r a c t 1 k d e v e l o p m 锄t0 fh i g ht h r o u g h p u t 舯c l e o t i d es e q u c i i l gt e c l l n o l o 舀e s ,e s p 。c i a l l ym e i n v e n t i o n 勰d d e v e l o p l i l 吼t o fh i g l i 也r o u g ht e c l l l l o l o 西髂,h e l pt r a n s f 0 眦n u c l e o t i d e 8 e q u 髓c i n g i n t oah i g l l l y i n t e g r a t c d a n ds p e c i a l i z e d i l l d 懈n y m o d 锄棚c l e o t i d e s e q u e n c i n gl a b o r a t o r i e sa r ec o n 舶n t e dw i n lt 1 1 et a s ko fm a l l a 舀n gh u g e 锄o u n t o f d a t aa n d 谳e g r a t i n gd a t ag e l l e r a t e db yv 撕o u se x p 耐m e n tp l a t f o n l l s w b d c v e l o p e daj a v a - b a s e dl i m s ( 1 a b i n f 0 肌a t i o nm 锄a g e m 铋ts y s t 锄) f o r s e q u e i l c i n gl a b s 1 k sl l m s i sam u l t i l a y e rb s s y s t e mw i n ll i 曲tj 2 e e a r c l l i t e c t u r eb 弱e do ns m l t s ,h i b c n l a t c , s p r i n gm a ts u p p o r t s n m l t i p l eo s p l a t f o 衄ss u c h 嬲w i n d o w s 锄dl i n u x l 0 wc o u p l e dd e g r c ei l ll a y e r s 雒d m o d l l l 豁m a l 【e si te 懿yt 0m a i n t e i l 锄c ea 1 1 di m p l 锄c i l t i th e l p ss e q u e l l 商1 9l a b sc o l l e 鸭s t o r e ,m 锄a g c ,i 1 1 t e 鲈a _ t e a n ds e 疵hd a t a e 彘c t i v c l y 1 1 1 i sa r t i c l ed e s 翻b 鹤m es o 脚a r ea n di t sd e s i 即,i m p l 锄坳1 t a t i o na n d m a i l l 矗m c t i o l l s t h 嚣ed e t a i l sw i l lp r o v i d ev a l u a b l ei n f o r m a t i o na n ds h e dl i g h to n m i ed e v e l o p m 锄ta n di m p l 锄t a t i o no f 丘咖r el i m st a f g c t e da to m 够t y p 懿o f l a b o r a t o r i 昭c o n d u c t i n gb i o l o 西c a l ,m c d i c a l0 ro t l l e re x p e 血i l e l l t s k e yw o r d s :l a b o r a t o 巧i n f o n n a t i o nm a n a g 锄e n ts y s t 锄; l i m s ; n u c l e o t i d e s e q u c i i l g ;e x p 耐m 吼tj e l o w ;b i o i n f 0 锄a t i c s i 原创性声明 本人声明:所呈交的论文是本人在导师指导下进行的研究工作。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已发表 或撰写过的研究成果。参与同一工作的其他同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:厶。趔 日期:2 堕:2 。竺 本论文使用授权说明 本人完全了解上海大学有关保留、使用学位论文的规定,即:学 校有权保留论文及送交论文复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容。 ( 保密的论文在解密后应遵守此规定) 日期: 1 第一章引言 1 1核酸测序技术的发展及高通量测序技术 在沃森和克里克建立了d n a 分子的双螺旋模型之后,人们迫切想知道的是 d n a 是怎样通过四种碱基来编码遗传信息的。但是由于没有找到分别降解四种 脱氧核糖核酸的专一酶,长期以来只能通过测定核糖核酸( r n a ) 的序列来推 测d n a 的序列。这种方法费时费力,测定l o 2 0 个核苷酸序列往往要花费1 2 年的时间【1 】! 这种情况直到二十世纪七十年代后期才由于m a x 锄和g i l b 瞰发明 了用化学试剂切割方法测定d n a 序列得到改变。同时s 觚g c r 也创立了比化学试 剂切割方法更好的双脱氧法( d i d e o x y m e m o d ) 用于测定d n a 序列。从此以后, 科学家们才开始解读d n a 序列这部天书。 s 锄g c r 双脱氧法的原理是利用一种d n a 聚合酶来延伸结合在待定序列模板 上的引物,直到掺入一种链终止核苷酸为止 2 】。反应液中含有所有四种脱氧核苷 酸三磷酸( d n t p ) ,并掺入一定量的双脱氧核苷三磷酸( d 椰) 。由于d ( 1 n t p 缺乏 聚合反应延伸所需要的3 o h 基团,使延长的寡聚核苷酸选择性地在g 、a 、t 或c 处终止。终止点由反应中相应的双脱氧类型而定。每一种d n t p s 和d d n t p s 的相对浓度可以调整,使反应得到一组长几百至几千碱基的链终止产物。它们具 有共同的起始点,但终止在不同的核苷酸上。然后可通过高分辨率变性凝胶电泳 分离大小不同的片段,凝胶处理后可用x 光胶片放射自显影或非同位素标记进 行检测。最后还需要对检测结果进行拼接计算才获得测序的d n a 片段的序列。 这种测序方法中涉及到多个步骤,并且许多的工作都需要手工操作,测序速 度慢,成本高。从s a i l g e r 测序方法发明后到2 0 0 4 年,人们通过自动化技术和部 分的技术创新改进s 觚g e r 测序方法,使得测序的速度以指数形式上升,而测序 的成本则以指数形式下降【3 ,4 】。一般的测序实验室从每天只能测几十个碱基上升 到几十万个碱基。同时,测序精确度和可读片段长度也不断提高。正是测序技术 的改进才使得人类基因组计划m 哪a l lg 曲o m e 洲e c t ,h g p ) 提前完成,同时也使 得d n a 测序在现代分子生物学的研究中,成为了一项常用的基础的试验技术 【5 7 】。 2 0 0 5 年美国4 5 4 公司研发推出了g s2 0 高通量测序仪。它采用崭新的焦磷 酸测序原理,实现了常规s 觚g e r 测序方法所不能企及的测序通量:一个测序反 应可以得到两千五百万个碱基,速度是s 孤g e r 测序方法的l o o 倍【8 】。2 0 0 7 年, 罗氏诊断公司和4 5 4 公司又推出了g s2 0 的升级版g e l l o m es e q u e i l c e rf l x s y s t 锄( g sf l x ) 。它测序速度已达到每小时6 0 0 万个碱基【9 】。 由于高通量和超高通量测序仪价格昂贵,测序通量高,单位碱基的测序成本 低等原因,许多的实验室不可能也没有必要购置自己的高通量的测序仪。他们只 需要把测序样品委托给拥有这类高通量测序仪的实验室测序即可。这样就使得测 序工作朝着高度集成和专业化的方向发展。专业测序实验室需要接受大量的测序 订单项目、安排测序实验、及时处理高速产出的测序结果。日益增长的测序需求 和高速产出的数据给测序实验室的数据管理带来了巨大的挑战。对于这样高速产 出的数据,仅使用计算机文件系统来进行管理是很困难的。 1 2实验室信息管理系统的发展及现状 实验室信息管理系统( l i m s ,l a b o r a t o 巧l n f o m a t i o nm a l l a g e m e n ts y s t e m ) 是利用计算机网络技术、数据存储技术和快速数据处理技术等来对实验室进行全 方位管理的计算机软、硬件系统 1 0 1 1 】。 实验室信息管理系统把信息技术与实验室现有的工作流程和管理体系相结 合,旨在优化实验室的业务流程,消除冗余的业务操作和陈旧的管理理念,探索 信息技术,仪器技术,实验室质量保证技术和数据整合处理等相结合的新型管理 模式,以提高实验室的效率和综合竞争力。实验室信息管理系统和实验室信息系 统有着相似的功能,但实验室信息管理系统强调了对实验室信息全方位的管理。 它不但包含对物的信息的管理,更包含对人的管理。所以一般可以认为实验室信 息管理系统包含有实验室信息系统的功能并且是在实验室信息系统之上的一个 系统。 l i m s 发展到目前经历了三个阶段,第一阶段为8 0 年代,第二阶段为9 0 年 代中期 1 2 1 3 】。目前处于的第三阶段,其技术特点如下:基于浏览器服务器( b s ) 的三层结构体系,即,浏览器( b r o w e r ) h t t p 服务器( h 卸s e r v e r ) 一数据库 服务器( d a t a b a s e s e r v e r ) 结构。硬件平台采用p c 机、小型机、按i n t e n l c t r i i l t i 锄l e t 和w 曲原理构建局域网 1 4 】。操作系统有l i n u x ,u n ,w i n d o w s 系列等。数据 库采用o r a d e ,m y s q l 等。b s 模式具有分布性特点,可以随时随地进行查询、 浏览等业务处理;业务扩展简单方便,通过增加网页即可增加服务器功能;维护 简单方便,只需要改变网页,即可实现所有用户的同步更新:开发技术成熟,共 享性强【1 5 1 6 】。 一些国外的l s 厂商,如s t 刚l i m s 、l a b s y s t 咖、b e c k m 纽于1 9 9 8 、1 9 9 9 年成功地推出了三层结构的商品化l i m s ,它汇聚了信息技术的最新成果,代表 了当前l i m s 发展方向。它的优点是客户机都使用了统一的浏览器( i e 、n e t s c a p ) , 业务逻辑共用性好,安全可靠、开放性好、信息共享性好,软件错误修正和版本 更新快,易于维护。目前向着i n t e n l 酬i n 仃a n e t 和w 曲技术发展,它已跳出了单 独的实验室运行环境。打破了地区和时空界限,实现远程样品登录、访问、远程 信息交换,并且有机会与企业信息系统( e r p ) 集成,形成了企业级的全方位管 理。从全球范围的使用情况来看,目前l i m s 在欧美日本澳洲的发达国家实验室 广泛应用,安装l i m s 的国外实验室已经上万家。 国外的u m s 软件有的已经有3 0 多年的历史了,这些u m s 产品采用了最 新的软件技术,设计灵活、结构合理、功能完善、经过严格的测试、商品化程度 非常高,能够很好的被各行业的实验室所应用。但是由于国外l 蹦s 产品不能很 好的汉化,针对中文系统不少技术问题没有解决,同时由于使用习惯和管理方式 不适应国内实验室的特点,为实验室量身定做的解决方案又十分昂贵,加上其它 服务实施费用也同样昂贵,为多数国内实验室难以负担,因此即使是世界上最成 功的l i m s 开发商在中国大陆的实施成功率也很低。 随着中国软件业的不断发展,国产l i m s 产品逐渐兴起。国内开发商所具有 的优势在于熟悉中国文化,了解中国市场,在现场实施上具有丰富的经验,所以 国产软件在价格上和亲和力上还是具有很大竞争力的。国内较大的几家l i m s 开 发商有:大庆金桥公司的e p l 锄t l i m s 在石油石化行业的实施效果比较好,功能 比较齐全;北京汇博精瑞公司的l a bb u i l d c rl i m s 在环保行业的实施效果比较 出众;北京英普思公司的i r i p r 0l i m s 在医药和食品行业的实施效果比较好【1 7 】。 通过应用实施l i m s ,一般可以达到一下几个目的: 规范实验工作流程:l i m s 系统为每个实验样品在实验室的流转建立严格程 序,实现实验工作流程化,包括样品登记导入、实验结果导入、实验结果审核、 出报告、后续实验使用前一个实验结果继续实验等各个环节。新样品到达实验室 后,进行登记导入,生成实验任务单,通过l i m s 直接下发到实验小组或岗位, 实验人员看到实验任务后,进行确认,然后开始实验;实验结束后,将数据导入 l i m s 的数据库,具有审核权的人员完成数据审核,相关部门在网上就能立即看 到。实验室管理人员通过系统可以了解到:当天实验样品数量,已经完成及未完 成的数量;每个实验小组或人员的工作情况;针对每一个实验数据,通过可追溯 体系查看其来龙去脉。;是否出现不合格数据? 发现不合格数据,通过溯源,找 到原因。;当前产品质量状况及阶段性的质量变化趋势。;是否有客户对检测数 据进行抱怨? 如有,是什么原因? 如何解决的? ;流程式管理方法及工作痕迹记 忆功能,使实验室管理人员对实验室的每个情况了如指掌,可以轻松浏览实验室 每个员工的工作痕迹,及时发现不符合质量管理体系的行为,并加以改进,规范 实验室工作流程。 提高实验数据可靠性:l i m s 系统记录了每个实验数据的原始信息,包括数 据生成、修改、审核等每一步过程。在对数据产生疑问时,可以随时调出该数据 对应的记录,追踪数据的每一步的处理过程。从而发现问题,改正问题。数据的 可追溯性确保了数据的可靠性,杜绝了人为捏造及修改数据的行为,使实验室在 客户心目中树立良好形象,赢得信赖,增强市场竞争能力。 降低实验室运行成本:对实验室所有试剂、药品、办公用品等材料的出入 库进行严格管理,建立合理的库存量,加强成本考核,降低实验费用。自动生成 各类报表,如分析报告单、原始记录单、质量日报等,并通过网络进行传送,避 免打印和人工传递,提高无纸化管理水平。l i m s 系统给实验室各级管理及分析 人员创造一个功能强大、方便实用的工作平台,日常事务基于该系统进行处理, 减少人员配制,提高工作效率。 提高实验室管理水平:以程序化方式规范实验室的各项工作流程,特别是 质量检验和质量管理的工作流程,提高实验室综合数据产出能力和分析处理水 平,建立起快速高效的质量监督信息化平台,确保质监工作更好地为生产、科研 及客户服务。 总之,通过应用实验室信息管理系统,可以实现实验过程的信息化,实现数 据的合理存储、分析和处理,方便实验人员之问、实验人员与管理人员之间的交 互,从而提高实验室的工作效率【1 9 】。u m s 已经在诸如煤炭、化工、检验等诸 多领域中取得了长足发展,大大提高了相关行业的信息化水平【2 2 】。 1 3开发测序实验室信息管理系统的现实意义 。没有实现信息化的测序实验室一般采用电子表格和纸质文档保存数据。而这 些方式都是以分散的形式存在,难以集中起来统一管理。在数据搜集过程中如何 合作和追踪各式实验数据。是实验室管理工作面临的挑战。因此需要建立一个规 范化的软件系统,既能保存所有课题组的相关数据,又能搜集、存储、整合、关 联、分析不同实验样品和结果,实现统一管理。 由于国外商品化软件的汉化和使用方式上存在先天的不足,而国内l i m s 产 品开发开发商由于起步晚,技术水平有限等原因,目前只专注于做某些行业和领 域的l i m s ,对于生物实验室u m s ,他们关注很少。而测序实验室由于其业务 的特殊性,目前还没有任何合适商品化的成品l i m s 可用。 基于测序实验室的信息化管理需求,我们与国家人类基因组南方研究中心 ( 简称南方中心) 的测序实验部合作,开发了一套核酸测序实验室的信息管理系 统。本系统的实施实现了对测序实验室实验工作流程和数据的科学管理,提高了 实验室的信息化水平。 2 第二章需求分析 2 1 需求分析概述 软件工程理论认为,在软件生命周期中,需求分析( r c q u i r 锄e n t sa n a l y s i s ) 是最重要的一个阶段。软件需求分析的质量对软件开发的影响是深远的、全局性 的,高质量需求对软件开发往往起到事半功倍的效果。在后续阶段改正需求分析 阶段产生的错误将付出高昂的代价【2 0 】。在本项目中,我们在南方中心测序实验 室做了大量的认真细致的调研。通过与南方中心的研究人员和领域专家( d o m a i n c x p e 哟的交流讨论,以及对实验室业务流程的跟踪分析【2 l 】,我们比较完整地获 取了实验室的工作模式和信息流向。 2 2实验室工作业务流 实验室的工作业务流是描述实验室各工作人员或工作小组是怎么样来协调 合作共同完成某项工作的。通过调查分析,我们总结出南方中心测序实验室需要 管理的流程如下( 图2 1 ) :实验室管理人员接到客户的测序样品;启动相关测序 项目,并将样品发送给相关的实验人员;实验人员进行实验,产生实验结果数据 和样品中间处理结果,并根据结果数据和实验要求,选择启动下游后续实验;最 后实验的结果经分析汇总后,成为项目的成果,反馈给客户。 图2 1 业务流程图。方框表示业务操作,箭头表示数据流向,菱形表示对业务流出选择其中 一支。实线表示正常的测序业务流,虚线表示由于出错或其他原因需重做实验的业务流。 2 3实验数据加工和数据流 实验数据的管理是实验室数据信息管理的核心。在现实中,一份实验样品可 能要先后经过多次多种类的实验加工,多种样品也可能同时经过一个实验得出实 验的结果。由此看来复杂的实验流程将导致复杂的实验数据的关联。对于南方中 心测序实验室,我们从上面的图1 1 的业务流程图中就能看出最初的实验样品将 会经历非常复杂的加工过程才会得出最终的测序结果。通过分析建模,我们获取 了系统的实验数据的加工过程,明确了各项数据的存储和流向。 3 第三章系统的实现及技术 3 1系统设计概述 本系统是基于轻量级j 2 e e 分层构架模式进行开发的,通过a p a c h es 仇i t s 开 源框架中的前端控制器a c t i o n s e r v l e t 实现了模型m o d e l 、视图v i e w 和控制器 c o i l 仃0 l l e r 的分离,使业务代码、视图代码以及控制代码可以各自独立地开发和 测试,大大地提高了我们系统的可维护性和代码的可重用性【2 2 2 3 】。 j a v a 是一种解释型语言,其跨平台特性使我们的系统可以无需修改地在不同 的操作平台上运行,如w i l l d o w s 、l i n u x 、s o l 撕s 等。另外,为了使系统可以在 t 0 m c a t 、w 曲l o 百c 、j b o s s 等不同的应用程序服务器上运行,在开发过程中我们 没有调用特定应用程序服务器提供的a p i ,系统中所有的业务代码、控制代码都 通过j 2 e e 自身的a p i 实现。这使得我们的系统可以在不同的应用服务器上进行 部署。对于不同数据库的兼容性问题我们也做了考虑,使用了h i b e n l a t e 第三方 开源框架。对于不同数据库管理系统( o r a c l e ,m y s q l 等) 间字段表示类型 的差异问题,我们的系统仅仅需要修改一下映射文件中的信息,而不必对源代码 做任何的改动。 作为一个企业级的应用程序,安全性永远是最重要的一个方面。安全性主要 包含两个方面:数据的可靠性和数据的保密性。前者指数据不被损坏,并保证 数据的完整,正确,不能被随意篡改。后者指数据不被非法的组织或人员获取。 由于电子数据比起传统的数据载体更容易被无意损毁和复制传播,因此电子数据 的安全性显得尤为突出【2 4 】。据调查,企业机密泄露3 0 一4 0 是由电子文件的泄 露造成的【2 5 】。 f o n t m e 排名前1 0 0 0 家的公司,每次电子文件泄露造成的损失平均是5 0 万 - 、- 一 夫兀。 对中国5 0 0 家大型企业作的调查发现,国内的企业对电子文档几乎没有任 何防护措施。有保护措施的不到3 ,一些机密性的资料、电子文档,轻易的就 可以通过电子邮件和移动硬盘泄密到网络外部。 f b i 和c s i 对4 8 4 家公司调查,发现: 超过8 5 的安全威胁来自企业内部。 1 6 来自内部未授权的存取; 1 4 专利信息被窃取; 1 2 内部人员的财务欺骗; 1 1 资料或网络的破坏; 防病毒、防火墙、入侵检测、物理隔离不再是保护信息安全的法宝。 无线上网、移动通讯、活动硬盘在给人们带来方便和高效的同时,随时有可 能被截取、仿冒、侦听; 、 笔记本电脑使用便捷,但人们也开始意识到由于遗失、被盗带来的泄密现象 的严重性。 由上可以看出,企业的数据安全面临着严峻的考验。数据安全的保护是一个 综合的系统工程,应用程序是不可能单独完成对数据安全性的维护,但作为这个 系统工程中最重要的一个环节来看,应用程序的安全是整个系统数据安全的基 础。 为了保护数据的可靠性,首先,我们的数据都通过第三范式分解成各个独立 的单元存放在数据库中的表项中。各表项通过外键的形式实现关联。这样就通过 数据库的参照完整性保证了数据的完整性和一致性。其次,在数据导入系统的时 候,我们会对数据做严格的格式和取值范围的检验,只要格式不符就会拒绝导入。 为了保护数据的保密性,我们的系统通过拦截过滤器限制了未经授权的用户 对我们的系统进行访问。另外对业务逻辑中的每一个需要授权后才可以使用的功 能都配备了一个对应的角色,用户必须先通过管理员授予相应的角色之后,才可 以使用这个功能。此外,系统通过结合使用p 6 s p y 、h i b e n l a t ei n t e r c 印t o r 以及l 0 9 4 j 三个软件包,可以将所有用户对数据库进行的操作都以日志的形式记录下来,系 统中数据的任何改动都可以通过这个审记日志找到相应的责任人,大大提高了系 统中存放数据的安全性。 目前国内绝大多数的生物实验室都是通过m se x c e l 文件来记录实验数据 的,我们通过a p a c h ej a l 【眦ap o i 软件包【2 6 2 7 】将m se x 翻文件数据导入到系统 中,将数据存储到后台的关系型数据库中进行持久化。另外,我们的系统还可以 根据用户的需要将数据以报表的形式导出到一个m se x c e l 文件中,在p o i 软件 包的支持下,数据可以以表格、图形、公式统计等多种形式进行呈现。 3 2 数据库设计 测序实验室信息管理系统数据库的设计基于测序实验室的业务流程,坚持按 照规范设计的方法,遵从第三范式的要求,即一个数据库表不收集其它表中已收 集的非主关键字信息,以降低冗余,要修改数据时只需在一个表操作【2 8 】。在对 用户进行需求收集和分析的基础上,建立了物理图模型( 图3 1 ) 。 图3 1 数据库核心部分结构图。本系统数据库中核心关系模式图,包括用户模块、项目模块、 样品模块以及实验模块。 本系统存储用户库,项目库,样品库,及实验库四个方面的数据。用户库存 储用户基本信息及用户角色和权限方面的信息;项目库存储项目相关的信息,包 含项目基本信息,项目状态,项目成员,项目客户关系等;样品库存储三个种类 的样品信息;实验库存储实验及建库实验、模板实验、测序实验和数据质检的具 体的数据。所有这些数据都通过外键,中间表的方式与其相关数据产生关联和约 束。这种关联和约束保护了数据库中信息的安全性和完整性。由于篇幅关系,上 图中仅列出了本系统中核心的二维表。本数据库最终运行在m y s q l 5 0 上,对于 其它数据库也具有最大的兼容性,只需做少许修改就能正常运行。 3 3系统的分层构架设计 本系统采用了鼬n j t s + h i b 黜a t e + s 皿n g 的分层架构模型设计【3 9 - 3 0 】。分层是 为了降低软件复杂性而采用的一项设计思想,它与软件的模块化思想类似。不同 的地方在于模块化是软件在功能上的分块,而分层是对软件系统在深度上的横 切。模块与分层的示意图如图3 2 : i 用户界面 厂、( 鸯侩 层1 模 钿s 甜“融 降嚆i 叫蜡“s h 妇e :i ) 钿s 甘惋e m 料s 甜v c e :d 钿i s e w ;d e 表现层 ii 、, o 。 夕“ o 。j n l g 。 陟 ) 6 “s e ni 0 卜埒-口州d :d 6 斜d o 生务逻辑晨 陵纛。,:1 jl 0 一。 0 , 、, l 哥一l - 一_ j 数据访同层 l ,ll - j 3 4s 虮如表现层框架 3 。4 1m v c 设计 图3 3 系统各层主要类关系图 m v c ( m o d e l 一e 、) l ,一c o n 仃0 l l e r ) ,即模型一视图一控制器。m v c 是x e r o x p a l 地在2 0 世纪8 0 年代提出的一种软件设计模式,至今已被广泛使用,近年来 被推荐为s 珊公司j 2 e e 平台的设计模式,受到原来越多的w 曲开发者的欢迎。 s t f l l t s 是一个基于s 城j 2 e e 平台的m v c 框架【3 3 】。它是使用s e r v l e t 和 j a v a s e r v e rp a g 懿技术的一种m v c 的实现。s t m t s 把s e r v l e t 、j s p 、自定义标签 和信息资源( m 懿s a g cr e s o u r c e s ) 整合到一个统一的框架中,开发人员利用其进行开 发时不用再自己编码实现全套m v c 模式,极大的节省了时间。所以s 加t s 能充 分满足应用开发的需求,且简单易用,敏捷迅速【3 4 】。以下先对m v c 思想和模 式进行详细介绍。 m v c 这种设计模式要求把应用输入、处理和输出分开。m v c 把应用程序分 为三个核心模块:模型、视图和控制器,它们分别担负不同的任务【3 5 】。一个 m v c 的处理过程一般为:首先控制器接收用户的请求,并决定应该调用哪个模 型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据; 最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。 图3 4 显示了这几个模块各自的功能以及它们的相互关系。 图3 4m v c 设计模式 ( 1 ) 视图( e w ) 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收 用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业 务状态,或向模型提交数据,以实现用户与系统的交互,但它不能改变模型。视 图还能接受模型发出的数据更新事件,从而对用户界面进行更新同步。对于w 曲 应用来说,可以是h t m l 界面,但有可能为x h t m l 、l 和a p p l e t 。比如一 个订单的视图接受来自模型的数据并显示给用户,以及将用户界面的输入数据和 请求传递给控制和模型。 ( 2 ) 模型( m o d e l ) 模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为 多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用程序 模块的可重用性。就是业务流程状态的处理以及业务规则的制定。业务流程的 处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处 理结果。模型的设计可以说是m v c 最主要的核心。m v c 设计模式告诉我们, 把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员 是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。m v c 并没有提 供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提 高重用性。我们可以用对象编程来做比喻,m v c 定义了一个基类,告诉它的子 类你应该做这些,但是你可以做更多的东西。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体 对象的数据的保存( 持久化) 。比如将一张订单内容保存到数据库,从数据库获 取订单内容。这就是一个数据模型所需要完成的功能。我们可以将这个模型单独 列出,所有有关数据库的操作只限制在该模型中。 ( 3 ) 控制器( c o n 臼o l l 神 控制器可以理解为视图和模型之间的适配器,它是联系视图和模型的纽带。 控制器接受用户的输入并调用模型和视图去完成用户的需求。比如当用户单击 w 曲页面中的提交按钮来发送m m l 表单时,控制器接收请求并调用相应的模 型组件去处理请求,然后调用相应的视图来显示模型返回的数据。一个模型可能 对应多个视图,一个视图可能对应多个模型。控制器的作用也相当于一个分发器, 它根据视图和视图的请求参数选择什么样的模型来处理,可以完成什么样的用户 请求。控制层并不做任何的数据处理,它只把用户的信息传递给模型,告诉模型 做什么,选择符合要求的视图返回给用户。 ( 4 ) m v c 的优点及适用条件 在最初的用a s p ,p h p 和j s p 开发的w e b 程序中,都是把h 缸l l l ,业务逻辑 代码,数据库操作语句都是这在一个页面中的,也就是显示,计算,存储等程序 的一切功能都混在一起。对开发小型程序来说,这样做固然开发迅速。但是对于 稍大一点的程序,或者一个需求经常改动的应用程序来说,这种混合编程会浪费 程序员更多的时间。经验比较丰富的开发者会将数据从表示层中分离开来,但这 通常不是很容易做到的,它需要精心地计划和不断地尝试。m v c 给他们提供了 思想知道并它强制地把程序分成了三层。尽管构造m v c 应用程序需要一些额外 的工作,但是它给我们带来的好处是毋庸置疑的。 首先,多个视图能共享同一个模型,如,在一个订单管理系统中,查看某个 订单和编辑某个订单的用户界面( 视图) 都要读取这个订单的信息。其实这两个 视图都可以调用同一个读取订单信息的模块( 模型) 来完成读取订单信息的功能。 这样就节省了一套读取订单信息模块的代码,大大降低了编程的工作量和日和的 维护的工作量,一旦模型发生改变,也易于维护。总之,在m v c 设计中,业务 逻辑和表示层分离,同一个模型可以被不同的视图重用,所以大大提高了代码的 可重用性。 其次,m v c 的三个模块相互对立,改变其中一个不会影响其他两个。例如 模型层与控制器和视图保持相对独立,所以可以方便地改变应用程序的模型层而 不对控制器和视图层造成任何影响。所以依据这种设计思想能构造出良好的松耦 合的应用程序。 再次,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不 同的模型和视图去完成用户的需求,也可以为构造应用程序提供强有利的手段。 给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行 处理,然后选择适当的视图将处理结果显示给用户。由于控制器处在程序数据流 向的交通枢纽位置,这给用户权限控制提供了一个非常合适的位置。 将m v c 应用到应用程序中,会带来一些额外的工作量,增加应用的复杂性, 所以在小型应用程序中它的优势表现得还不大明显。但对于开发存在大量用户界 面,并且业务逻辑复杂的大型应用程序,m v c 将会使软件在健壮性、代码重用 和和可维护性方面上一个大的台阶。尽管在最初构建m v c 框架时会花费一定的 工作量,但从长远的角度来看,它会大大提高后期软件开发的效率。 3 4 2s n u t s 的主要a p i 及实现 s 饥l t s 是m v c 的一个经典的实例。s 觚l t s 这个名字来源于在建筑和旧式飞机 中使用的支持金属架。它的目的是为了减少在运用m v c 设计模型来开发w 曲 应用的时间。s 眦s 1 2 框架可分为以下四个主要部分【3 6 3 7 】,其中三个就和m v c 模式紧密相关: ( 1 ) a c t i o n 类( 这个会在后面详细讨论) ,开发者通过其实现业务逻辑。对 应了m v c 模式中的模型( m o d e l ) 。 ( 2 ) 一整套j s p 定制标签库,利用它我们可以快速建立应用系统的界面。 对应了m v c 模式中的视图( v i e w ) 。 ( 3 ) 一个负责把页面请求转发到各个a c t i o n 的s e r v l e t 类( a c t i o n s e l e t ) 及其转发关系的配置文件“s 眦s - c o n 矗g x m l ”。对应了m v c 模式中的控制器 ( c o i l t r o l l e r ) 。 ( 4 ) 一套用来做x m l 文件解析的工具包及一些附属功能。s t m t s 可以用 l 来描述如何动态产生一些蛐啪的属性的。此外s 眦s 还有一个国际化 模块,用于实现对多语言的支持。 图3 5 t s 框架工作流程 作量 从组件的角度看,s 加t s 框架包含以下组件: a c t i o n s e r v l e t 控制器( c o i 内r o l l e r ) a 嘶o n 类实现业务逻辑,属于模型( m o d l e ) s 眦s 标签库帮助完成视图( v i e w ) 层的工作,可以减轻开发视图层的工 m i o i l f o r i i l 对视图层数据的封装 a c t i o n m 印p i n g 帮助控制器将请求映射到操作的集合 a c t i o l l f o 刑a r d 用来指示操作转移的对象 a c t i o n e 订o r 用来收集存储验证错误 以下详细介绍这些组件是怎样协同工作,完成s 饥l t s 功能的。 s 饥l t s 配置文件s 缸u t s c o n f i g x m l : 这个文件完成将s 仇l t s 组件结合在一起协同工作,是s 仇n s 框架的核心。它 的默认位置为w e b - i n f 慨一c o n f i g x l i l l 。配置文件定义在: i l t t p :j a l 【a r t a a p a c h e o f s t n l t s d t d s 的r t l t s c o n f i g _ 1 2 d t d 现简要介绍它为完成m v c 功能而需要的核心的配置。我们将介绍: f o n n b e a l l 配置,a c t i o n 映射配置,全局转发配置和全局错误转发配置,以上几种配 置在我们项目中的样例如下: 9 1 0 b a l 一亿刑a r d s ! 配置全局错误转发 厂w e b - i n f c o n 矗s 仃u t s c o n f i g x n d de _ b u g 唧a r a m n 锄e 2 :i n i t p a r 锄 2 t ,p 猢一v a l u e 2 刚o a d o n - s t 咖

温馨提示

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

评论

0/150

提交评论