首页 > 人工智能 > 正文

SOA在LIMS设计中的应用

2012-08-10 11:25:09  来源:万方数据

摘要:SOA是一种分布式的软件模型,它将应用程序的不同功能模块通过接口和契约联系起来。接口独立于实现服务的硬件平台、操作系统和编程语言。
关键词: SOA LIMS

    实验室信息管理系统(laboratory informationmanagement system,LIMS)是利用计算机网络技术、数据存储技术、快速数据处理技术,对实验室进行全方位管理的计算机软硬件系统。


    目前我国的LIMS发展水平还基本上处于为用户进行定制服务的阶段,这类LIMS的缺点是需求分析无法周全,定制的LIMS无法满足用户不断变化的需求,技术支持困难,版本升级不易,维护成本高。解决此问题一般方法是在软件开发时尽可能地设计出各种实验室所需要的详尽功能,以增加系统通用性,但实施时需要做大量用户工作,并且随实验条件改变,需要定制编写相关程序。这样的LIMS功能模块是紧密耦合的,即模块间结合紧密,当需求改变时,一个模块功能改变,会导致相关联功能模块进行修改,使LIMS更新与升级变得困难。


    解决这问题的一个有效方法是采用功能模块松散耦合的系统架构,这样的软件设计思想是面向服务架构(service-oriented architecture,SOA)。SOA是一种IT体系结构样式,它具有松散耦合、基于标准、共享服务、组合服务、粗细粒度可调、同步异步可调等特性。在具体实施中,只需进行简单设置就可以满足用户的不同需求,具有极大的灵活性,系统维护成本也大大降低。本文就基于SOA架构的LIMS开发进行了探讨。


    1 SOA简介


    SOA是一种分布式的软件模型,它将应用程序的不同功能模块通过接口和契约联系起来。接口独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各种这样的功能模块可以以一种统一的方式进行交互。


    1.1 SOA架构模型


    SOA的基本体系架构由服务提供者、服务注册、服务使用者和服务契约4部分组成,如图1所示。服务注册位于服务提供者与服务使用者之间,对于服务提供者所提供的服务,它按一定的标准进行组织和分类。服务使用者通过查询功能发现服务提供者发布的服务接口,服务提供者与服务使用者通过事先定义好的契约进行交互。

    SOA基本框架图

    图1 SOA基本框架图


    1.2 SOA的优势


    SOA具有高度的抽象性和灵活性,在开发技术、


    资源整合上都有许多优势,在开发方法、实现技术及开发效率上均有深刻的变革。SOA的优势:


    ①粗粒度服务与松散耦合;


    ②屏蔽业务逻辑组件的复杂性;


    ③标准化接口与跨平台性;


    ④编码灵活性与可重用性;


    ⑤易维护和良好的伸缩性;


    ⑥支持更多的客户端类型。

[page]    1.3 SOA的实现


    SOA只是一种软件体系架构理念,其应用和实现要依靠具体的技术,目前已有多种实现技术方案,其中基于XML技术的web服务是实现SOA的最佳选择,Web服务标准的成熟和应用普及,为SOA架构的广泛应用提供了基础。


    Web服务是由URI标志的应用程序,其接口和绑定是通过XML进行定义,利用Internet上广泛使用的HTTP作为传输的底层协议,使用基于XML的web服务能与其他应用程序直接交互。


    通过标准、规范的XML格式文件来描述web服务交互需要的内容,包括消息格式、传输协议和位置,这就是Web服务的服务描述(WSDL)。通过该描述隐藏了服务实现细节,只要遵循标准服务描述,该Web服务就可以被使用,从而实现了真正意义上的平台和语言独立性,使用者无须关心服务实现的方式。


    当调用Web服务时,通常是通过一个完整的文档,而非一组离散的参数来进行交互。Web服务接收整个文档进行处理,而后可能返回或不返回结果信息,这也是SOA松散耦合架构的体现。


    2 LIMS的SOA开发


    2.1 LIMS体系架构


    LIMS体系结构[6嵋3的发展大致经历了3个阶段:单一应用结构(单机版系统)、C/S结构(客户机/服务器结构)、B/S结构(浏览器/服务器结构)。


    (1)单一应用结构是早期LIMS系统所采用的,在一个软件中包含了所有的应用,如后台的数据处理、前台对用户的响应以及对处理结果的显示等,软件功能往往比较单一、具体,主要针对专门的应用。


    (2)C/S结构是指将整个系统分为前端客户应用程序和后台服务程序。前端主要完成显示界面、用户交互等操作,后台服务主要进行数据处理,并将结果返回到前端。此结构的优点是交互性好、速度快,适合于系统中大量数据的输入输出操作;缺点是所有的处理都集中于服务器,服务器的负担重,且处理系统业务和用户业务的逻辑界限不清晰;系统伸缩性差,升级换代困难。


    (3)B/S结构是随着网络技术的发展而应运而生的,客户端只需在浏览器上运行,事务通常在服务器上处理。客户端采用统一的浏览器软件,用户操作简单,系统易于维护,并且可扩展性好。当前主要的LIMS系统均采用此结构形式。


    在实际应用中,为了处理数据库系统中复杂的应用逻辑,通常将业务逻辑处理作为单独一层,即中间层,使B/S结构变成B/S/S三层结构,中间层服务封装了所有的业务逻辑,便于维护和扩展,同时避免了用户对数据库服务器的直接访问,增强了系统的安全性。


    目前,典型的B/S/S结构的LIMS系统在开发时,从开发需求开始,就一环扣一环地进行开发,在耦合度上通常比较高。紧耦合系统的好处是通常运行比较快、也安全,传输误差的风险非常低,但当义务需求发生变化时,将迫使开发人员对应用程序中的相关模块要进行修改,工作量大大增加。


    一般而言,好的软件系统应该是模块内高度内聚,模块间松耦合,降低模块间的依赖关系,这样在修改模块时不需要修改接口,最大限度上降低维护、升级的成本。


    采用SOA的设计思想来指导LIMS的设计开发,正适应了这一需求,是目前LIMS发展的热点方向。


    2.2 LIMS的SOA设计


    LIMS系统主要实现如下功能:数据/信息收集、数据分析、报告、系统管理、实验室管理等,基于SOA思想的LIMS设计遵循以下思路:


    (1)找出LIMS的各功能模块中的核心业务,其他功能模块可认为是核心业务的阶段性表达。


    (2)针对核心业务设计组件和业务对象。


    (3)整合系统服务。


    (4)可组装原则。设计的服务要有技术中立、自包含及无状态等特点,以便进行组装,满足复合应用的相关需求。


    (5)可重用原则。设计的服务可以在不同的应用流程中重用,从而减少重复工作,降低开发和维护的成本。[page]    这样,不管所需整合的服务多复杂、范围多广,都可以通过核心业务和工作流程把各种形式的服务整合起来。因为核心业务层次相对来说较为稳定,不会经常产生需求变动,外围的整合服务及流程的变动不会对核心业务产生影响,所以能够有效地加强系统的复用性并且降低系统构件成本。


    基于上述设计思想,将LIMS系统的具体架构由上至下分为:集成服务层、业务服务层、web服务层、数据服务层。各开发人员负责相关层面的开发,接口通过XML文档传输消息,LIMS的SOA架构如图2所示。由于各层面开发工作的分离,该系统架构非常便于系统升级改造。


 

 LIMS的SOA架构图

 

    图2 LIMS的SOA架构图


    图2中:


    (1)集成复合服务层是将各业务进行综合表达,根据不同的需求定制具体的事务操作,也可将此层理解为表示层;


    (2)业务服务层集中管理各Web服务,同时也具体整合单一服务为复合服务的功能;


    (3)Web服务层主要功能是定义服务间的交换,以及提供服务交换的数据,注册Web服务,此层是最重要的一层;


    (4)数据访问服务层通过数据集成消除数据孤岛,实现分布数据源的统一管理。


    通过统一的数据访问,还可解决信息访问不标准、不规范的问题,而且可通过Web服务的方式提高信息的共享性,数据信息可以被及时地传送到其他系统或应用当中。


    采用粗粒度设计,使每个服务涉及的内容广且杂,增加了单个服务设计的复杂性和维护的难度,但减少了服务之间的耦合。相对而言,细粒度服务设计,虽然可以让每个服务的实现变得简单,但服务细小繁多,需要将多个细小服务进行组合才能实现一定功能,使服务间的耦合度增加,其中一个服务发生改变就会影响整个系统架构。因此在设计LIMS时需要在粗、细粒度间找到平衡,既要考虑设计成本,又要考虑SOA的标准化,使整体上的开发与维护成本降到最低。[page]    2.3 LIMS实现


    实现LIMS主要是服务的相关工作,采用微软的。NET开发工具编制代码。微软的ADO.NETData Service基于数据实体模型构建,能够访问多种数据源。以ADO.NET Data Service为基础,使用Web服务作为访问接口,实现标准的数据服务。


    2.3.1创建服务


    使用VS.NET 2008进行开发,通过在程序代码中的标注来简化Web服务的开发,标注WebService表示这是一个Web服务程序,标注WebMethod表示这个方法将会成为Web服务中的一个调用方法。。Net提供了一个ASP.NET Web服务项目模板,利用该模版可以创建Web服务。可以在代码文件里面的WebMethod下编写实现具体功能的Web方法,以供服务请求者调用。


    2.3.2发布服务


    需要编写服务的WSDL文件,在VS.NET 2008中创建一个Web服务类型的文件,运行后即可自动生成服务的描述文件。另外,也可将需要发布的服务整个项目拷贝到Web服务器,或是在UDDI注册中心进行注册,向服务请求者公布服务接口和服务合约。


    2.3.3调用服务


    可通过Web浏览的方式在UDDI注册中心上查找服务,得到服务的地址、描述信息(wSDL)等,服务使用者通过这些信息进行调用,也可在在集成开发环境Visual Studio.NET的解决方案中进行引用。在“引用”选单(菜单)里,选择“添加引用”项,在出现的URL地址里添加服务地址,在这可以找到本地的计算机,或UDDI服务器里的Web服务。在这里能得到Web服务包含的所有操作,及该服务的说明文件(WSDL文件)等信息。添加引用成功后,即可在项目中创建该服务的代理,实现调用该服务的功能。


    2.4应用实例


    采用上述SOA的开发思想与设计方法,完成了电子系创新实验室管理系统的开发,系统功能结构如图3所示。

     LIMS系统功能模块图

    图3 LIMS系统功能模块图


    在各子系统下,还进行了功能上的进一步细分。如实验教学管理子系统进一步分为实验内容、实验报告、作业管理等;仪器设备管理子系统进一步分为设备信息管理、设备使用管理、设备维护等。其他各模块也类似细分,不再赘述。


    虽然在功能上划分为各单独模块,但在开发过程中,并不是逐一模块单独去实现,而是进行跨功能模块进行抽象,分析模块输入与输出之间的关系,将这些关系设计成可通过网页或应用程序调用的Web服务,相似的关系可调用同一服务进行处理,从而实现服务的重用,避免重复开发。


    采用粗粒度的开发方式。如采用一个Web服务来获取或设置人员、设备属性,而不是对管理员、教师、学生、游客、设备都建立相应服务;查询服务可在实验成绩查询、实验预约查询、实验内容查询、实验设备查询等进行重用等。


    采用XML文档进行数据交互,在文档中对要表述的对象(如实验人员、实验设备、实验内容等)进行了完备的描述,可通过较少的交互进行较多的工作,这样也可以减少对通信依赖。


    3 结束语


    SOA是目前在开放式网络环境下,构建LIMS的有效指导思想,它可以最大限度减少模块间的耦合,提高可重用性。Web服务作为其基本实现方法是一种较好的SOA构建技术。利用SOA和Web服务技术,能够低成本,高效率地构建LIMS,并有效地降低开发与升级维护难度。本文对采用SOA设计思想开发LIMS进行了分析,给出了一般的开发方法。


    本文所述的电子创新实验室管理系统,在设计中充分贯彻SOA思想,利用Web服务技术实现了SOA架构,开发过程简捷高效,运行稳定可靠。实践表明,基于SOA的新型系统架构对LIMS架构理论水平的提高和开发过程的指导均有良好的作用,具有较好的应用和推广价值。



第三十五届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:fanwei

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。