摘 要:本文在分析實驗室信息管理系統(tǒng)體系結(jié)構(gòu)發(fā)展的基礎(chǔ)上,指出目前LIMS體系結(jié)構(gòu)的缺陷,分析了面向服務(wù)架構(gòu)的思想以及這種思想基于XML Web Services的實現(xiàn)方法,從而給出了一種新型的實驗室信息管理系統(tǒng)架構(gòu)。文章結(jié)合某高校電工電子中心實驗室LIMS的設(shè)計開發(fā)過程,闡述了面向服務(wù)架構(gòu)的具體應(yīng)用過程和應(yīng)用效果。
關(guān)鍵詞:實驗室信息管理系統(tǒng) 系統(tǒng)架構(gòu) SOA XML Web Services
中圖分類號:TP303 文獻標識碼:A 文章編號:1673-8454(2008)23-0037-03
實驗教學(xué)是高等院校教學(xué)工作的一個重要組成部分,實驗室是開展實驗教學(xué)、培養(yǎng)學(xué)生綜合能力的重要場所,高等院校實驗室的管理水平直接影響到學(xué)生的教學(xué)質(zhì)量和水平。隨著實驗室管理理論研究的深入和信息技術(shù)的發(fā)展,計算機和網(wǎng)絡(luò)開發(fā)技術(shù)在實驗室管理中發(fā)揮的作用越來越重要,目前已經(jīng)形成了較為成熟的實驗室信息管理系統(tǒng)(LIMS,Laboratory Information Management Systems)。
在實驗室信息管理系統(tǒng)的建設(shè)過程中,設(shè)計開發(fā)和使用人員對系統(tǒng)的功能、組成、關(guān)鍵技術(shù)路線等問題進行了多方面深入的研究和探討,相對而言對系統(tǒng)的整體架構(gòu)研究略顯不足。常見的LIMS僅僅采用通用的C/S或B/S結(jié)構(gòu),缺少深入的研究,而系統(tǒng)的整體架構(gòu)研究雖然在具體的表現(xiàn)形式和功能上反映不多,卻常常對系統(tǒng)的可用性和易用性有著巨大的影響。本文從實驗室信息管理系統(tǒng)體系結(jié)構(gòu)的角度出發(fā),結(jié)合在某高校成功使用的電工電子實驗室信息管理系統(tǒng)的研究和開發(fā)過程,介紹一種新型的SOA設(shè)計思想在LIMS中的應(yīng)用。
一、LIMS體系結(jié)構(gòu)的發(fā)展
1.典型LIMS體系結(jié)構(gòu)
LIMS體系結(jié)構(gòu)的發(fā)展與計算機軟件理論的發(fā)展息息相關(guān),一般而言,LIMS的體系結(jié)構(gòu)類型到目前為止主要有單一應(yīng)用結(jié)構(gòu)(單機版系統(tǒng))、C/S結(jié)構(gòu)(客戶機/服務(wù)器結(jié)構(gòu))、B/S結(jié)構(gòu)(瀏覽器/服務(wù)器結(jié)構(gòu))等三類。
單機版系統(tǒng)從整體上看,軟件沒有層次,通常一個應(yīng)用程序包含了所有的應(yīng)用邏輯,包括后臺的數(shù)據(jù)處理、前臺對用戶的響應(yīng)以及對處理結(jié)果的顯示等,軟件功能往往比較單一、具體。
C/S結(jié)構(gòu)是指將整個系統(tǒng)在邏輯上劃分成前端客戶進程和后臺服務(wù)器進程,兩者通過局域網(wǎng)連接。前端的客戶應(yīng)用程序主要完成顯示界面、與用戶進行交互,而后臺的服務(wù)器進程主要負責(zé)進行數(shù)據(jù)處理,將處理后的結(jié)果返回給用戶。采用C/S模式的系統(tǒng)交互性好、速度快,適合于系統(tǒng)中大量數(shù)據(jù)的輸入輸出操作;但是它難以實現(xiàn)集中控制,一旦修改應(yīng)用程序邏輯,安裝在每臺客戶機上的應(yīng)用程序都要作相應(yīng)的修改,系統(tǒng)維護工作量非常大。目前這種結(jié)構(gòu)的LIMS在行業(yè)專用實驗室中仍然大量存在。
隨著Internet/Intranet/Extranet技術(shù)的不斷發(fā)展,特別是基于Web(HTML、HTTP)的信息發(fā)布和檢索技術(shù)的發(fā)展,整個應(yīng)用系統(tǒng)的體系結(jié)構(gòu)從C/S的主從結(jié)構(gòu)向靈活的B/S結(jié)構(gòu)演變。B/S結(jié)構(gòu)的實驗室信息管理系統(tǒng)只需在客戶端通過常見的瀏覽器即可運行,大部分事務(wù)在服務(wù)器上進行。其特點表現(xiàn)在采用統(tǒng)一的瀏覽器軟件、使用簡單、易于維護、信息共享度高、擴展性好等方面。此結(jié)構(gòu)的LIMS凝結(jié)了信息技術(shù)的創(chuàng)新成果,代表了當前LIMS的主要發(fā)展方向。
B/S結(jié)構(gòu)是一種真正的開放式體系,在實際應(yīng)用中,如果把實驗室管理相關(guān)業(yè)務(wù)邏輯處理放在客戶層,則往往使客戶層非常笨重(需采用富客戶端技術(shù)加以實現(xiàn));如果把業(yè)務(wù)邏輯處理放在服務(wù)器層,則往往難以在數(shù)據(jù)庫系統(tǒng)中實現(xiàn)復(fù)雜的應(yīng)用邏輯。因此,將業(yè)務(wù)邏輯處理作為單獨一層,即中間層,兩層結(jié)構(gòu)就自然演變?yōu)锽/S/S三層結(jié)構(gòu),如圖1所示。
2.傳統(tǒng)LIMS體系結(jié)構(gòu)的缺陷
在具體的軟件系統(tǒng)開發(fā)實現(xiàn)過程中,無論是C/S結(jié)構(gòu)還是B/S結(jié)構(gòu),采用傳統(tǒng)的設(shè)計開發(fā)方法均存在一系列的問題,主要表現(xiàn)在如下兩個方面:
(1)上述模式在設(shè)計過程中具有明顯的“緊密耦合”的特點,即系統(tǒng)往往由需求出發(fā),一環(huán)扣一環(huán)地進行開發(fā),對于一成不變的系統(tǒng)(如固定流程的工業(yè)用系統(tǒng)),這是一個優(yōu)勢,但是作為一個與實驗室管理人員、教學(xué)人員、學(xué)生等多種客戶強交互的系統(tǒng),系統(tǒng)流程、系統(tǒng)功能等方面經(jīng)常會變動,這時需要的是“松散耦合”的結(jié)構(gòu)。
(2)在開發(fā)過程中,傳統(tǒng)的B/S/S限于開發(fā)技術(shù),存在許多局限,如編碼過程中前臺頁面、后臺代碼混合在一起,一方面導(dǎo)致效率低下,另一方面為系統(tǒng)的升級維護帶來困難,同時在用戶端也不容易獲得良好的體驗。
在這種情況下,需要對B/S/S的三層體系結(jié)構(gòu)進行改進,一種有效的方法就是使用SOA的設(shè)計思想來指導(dǎo)B/S/S系統(tǒng)的設(shè)計開發(fā)。
二、SOA設(shè)計思想及其實現(xiàn)
1.SOA設(shè)計思想介紹
面向服務(wù)架構(gòu)(Service Oriented Architecture,SOA)是一種架構(gòu)模型,它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進行分布式部署、組合和使用。SOA是一個基于標準的組織和設(shè)計方法,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。SOA的概覽如圖2所示。
基于SOA的實驗室信息管理系統(tǒng)的設(shè)計開發(fā)一般而言可概括為兩個方面的工作:需求級別的抽象和代碼級別的抽象。需求級別的抽象目的是通過盡可能地擴展用戶需求,從而為可能出現(xiàn)的應(yīng)用做好準備;代碼級別的抽象則是在開發(fā)過程中將數(shù)據(jù)操作、邏輯計算、用戶界面等在代碼的級別分開并整合。與傳統(tǒng)模式相比,SOA具有松散耦合、基于標準、共享服務(wù)、組合服務(wù)、粗細粒度可調(diào)、同步異步可調(diào)等特性,在具體的系統(tǒng)設(shè)計開發(fā)過程中,這些特性是十分有用和高效的。
2.基于XML Web Services的SOA實現(xiàn)
SOA思想在實驗室信息管理系統(tǒng)中的貫徹需要具體的開發(fā)技術(shù)和方法的支持,本文中的電工電子實驗室信息管理系統(tǒng)是通過引入XML Web Services來實現(xiàn)面向服務(wù)架構(gòu)的。
XML Web Services(或簡稱為Web服務(wù))是可通過標準的Internet協(xié)議(如HTTP)編程訪問的、自適應(yīng)的、自描述的Web組件。也就是說,Web服務(wù)是松散耦合的、可重用的軟件模塊,它封裝了離散的功能,在網(wǎng)絡(luò)上發(fā)布后能通過標準的Internet協(xié)議(如HTTP)在程序中訪問。Web服務(wù)具有模塊化、可訪問性、良好描述、實現(xiàn)獨立、互操作等特點,由于它是基于開放的因特網(wǎng)標準,故不局限于特定的軟件平臺。它的結(jié)構(gòu)單元是簡單對象訪問協(xié)議(Simple Object Access Protocol,SOAP)、Web服務(wù)描述語言(Web Service Description Language, WSDL)和通用描述、發(fā)現(xiàn)與集成(Universal Description,Discovery,and Integration,UDDI)。上述三個結(jié)構(gòu)單元是構(gòu)建Web服務(wù)的核心與基礎(chǔ)。由這些分析可知,XML Web Services是一種重要的SOA實現(xiàn)方法,在本系統(tǒng)中的粗粒度實現(xiàn)如圖3所示。需要指出的是,根據(jù)業(yè)務(wù)邏輯的不同圖3中的各種應(yīng)用需要進行不同的擴展和具體實現(xiàn)。
三、電工電子實驗中心LIMS設(shè)計開發(fā)簡述
1.LIMS系統(tǒng)構(gòu)架
由于系統(tǒng)引入了SOA的設(shè)計思想并通過XML Web Services予以實現(xiàn),因此系統(tǒng)運行期結(jié)構(gòu)可分為數(shù)據(jù)庫系統(tǒng)、業(yè)務(wù)邏輯(Web服務(wù)實現(xiàn))、動態(tài)頁面、客戶端頁面等四個部分。這種結(jié)構(gòu)去除了功能與其調(diào)用的底層服務(wù)(基本函數(shù))及相關(guān)的數(shù)據(jù)表的緊密耦合,使得數(shù)據(jù)、邏輯、用戶界面之間脫離了簡單的一一對應(yīng)關(guān)系,在開發(fā)編碼期擺脫了繁瑣的細節(jié),在系統(tǒng)運行期便于維護和擴展,對于用戶而言,由于Web服務(wù)的應(yīng)用,可以進一步地使用AJAX技術(shù)獲得更好的用戶體驗。
2.開發(fā)技術(shù)
本系統(tǒng)是在.Net Framework 1.1支持下,使用Visual Studio 2003開發(fā)平臺中的C#相關(guān)開發(fā)工具進行開發(fā),主要使用了ASP.Net、ADO.Net等具體開發(fā)技術(shù)。
ASP.Net又叫ASP+,它不是ASP的簡單升級,而是Microsoft公司最新推出的基于通用語言的編程框架,使用它可以在服務(wù)器端架構(gòu)強大的網(wǎng)絡(luò)程序,是新一代編制企業(yè)級網(wǎng)絡(luò)的平臺。ASP.Net是微軟發(fā)展的新型體系結(jié)構(gòu).Net的一部分,是動態(tài)服務(wù)器頁面和.Net這兩個主要技術(shù)的集合,是利用.Net提供的新功能來創(chuàng)建動態(tài)Web頁的一種方法。ADO.Net與以前的數(shù)據(jù)訪問技術(shù),如ADO、OLEDB、ODBC、RDO、DAO等技術(shù)相比,幾乎是一種全新的數(shù)據(jù)訪問技術(shù)。其改進之處在于它支持各種類型的數(shù)據(jù)存儲器,優(yōu)化了單獨的數(shù)據(jù)提供者,適用于遠程數(shù)據(jù),可以處理大量用戶同時訪問數(shù)據(jù)的應(yīng)用程序,而且關(guān)鍵在于它使用了新功能:使用斷開連接的數(shù)據(jù),托管提供者及XML數(shù)據(jù)等,這些特性使得它在以數(shù)據(jù)為中心的實驗室信息管理系統(tǒng)中可以最大限度地發(fā)揮作用。
3.系統(tǒng)功能模塊設(shè)計
LIMS系統(tǒng)的功能結(jié)構(gòu)如圖4所示。主要由信息發(fā)布子系統(tǒng)、實驗教學(xué)管理子系統(tǒng)、開放式實驗預(yù)約子系統(tǒng)、儀器設(shè)備管理子系統(tǒng)以及實驗過程管理子系統(tǒng)等功能模塊構(gòu)成。
由于采用了SOA的設(shè)計思想,系統(tǒng)雖然在功能上進行了模塊的劃分,但在SOA指導(dǎo)下的實現(xiàn)過程中,并沒有逐一模塊地去依次開發(fā),而是首先分析了各模塊之間在需求上的內(nèi)在關(guān)系,并將這些關(guān)系設(shè)計成可通過不同方式(網(wǎng)頁、應(yīng)用程序)調(diào)用的Web服務(wù)。如實驗預(yù)約子系統(tǒng)、實驗室教學(xué)管理系統(tǒng)和實驗過程管理子系統(tǒng),三者對實驗課教師、學(xué)生、實驗設(shè)備的狀態(tài)有著共同的需求,系統(tǒng)則在底層實現(xiàn)了如下(部分)服務(wù):
(1)SetClassState(ClassID)、GetClassState(ClassID):實驗教室狀態(tài)的獲取和設(shè)定;
(2)GetTeachersInfo()、GetTeacherInfo(TeacherID):所有教師或指定教師信息的獲?。?/p>
(3)GetStudentInfo()、GetStudentPInfo(PID):學(xué)生以及其屬性信息的獲?。?/p>
(4)GetEQInfo(EQID)、SetEQInfo(EQID):指定實驗設(shè)備信息的獲取和設(shè)定。
由于這些基本的服務(wù)在需求過程中,已經(jīng)對跨功能模塊進行了抽象和分析,因此,具體的系統(tǒng)開發(fā)過程中,可被多次重用,提高了系統(tǒng)的開發(fā)效率,也降低了出現(xiàn)不必要異常的可能性。
進一步的,使用SOA思想是可以分層次的,對以上的基本服務(wù),它們的實現(xiàn)都是通過數(shù)據(jù)庫操作來完成的,可以將數(shù)據(jù)庫操作進一步抽象,在本系統(tǒng)中的抽象,是以XML格式的文檔作為參數(shù)來完成,即使用XML對要操作的庫、表、字段、條件等進行了完整的描述,目前實現(xiàn)的操作有:庫的連接和斷開、連接狀態(tài)查詢、表查詢(包括聯(lián)合查詢)、插入信息、刪除信息、更新信息等。
四、結(jié)束語
基于面向服務(wù)架構(gòu)(SOA)是一種有效的進行實驗室信息管理系統(tǒng)架構(gòu)設(shè)計方法,它對具體的實驗室信息管理系統(tǒng)設(shè)計開發(fā)實踐過程有著重要的指導(dǎo)意義。本文所述的電工電子實驗中心LIMS由于在設(shè)計中充分貫徹SOA,實現(xiàn)了新型的面向服務(wù)的架構(gòu),其開發(fā)過程簡捷高效,目前運行穩(wěn)定可靠,使用人員對系統(tǒng)的可用性和易用性都給予了良好的評價。應(yīng)用實踐表明,這種基于SOA的新型系統(tǒng)架構(gòu)對實驗室信息管理系統(tǒng)架構(gòu)理論水平的提高和開發(fā)過程的指導(dǎo)均有良好的作用,具有較好的應(yīng)用和推廣價值。
參考文獻:
[1]盧鳳珠,吳達勝等. 基于C/S與B/S模式的實驗室管理系統(tǒng)的設(shè)計與實現(xiàn)[J].四川教育學(xué)院學(xué)報,2005(3):83-85.
[2]施能進,胡運昌.高職院校實驗室管理實行MIS的探討[J].寧波工程學(xué)院學(xué)報,2005(2):87-89.
[3]顧東曉,李梅川等.基于C/S與B/S混合模式的高校實驗室建設(shè)與維護管理信息系統(tǒng)開發(fā)[J].實驗室技術(shù)與管理,2007(1):79-83.
[4]張潤杰,劉維民等. 基于B/S模式的網(wǎng)絡(luò)版實驗室管理系統(tǒng)[J] .首都師范大學(xué)學(xué)報,2005(2):16-18.
[5]吳敏,劉曉強,陳家訓(xùn). 基于Web Services 的安全服務(wù)框架及其在數(shù)字化校園中的應(yīng)用研究[J].東北大學(xué)學(xué)報,2006(6):97-101.
[6]謝健,劉原奇,易先卉.高校開放式實驗室設(shè)備管理系統(tǒng)的研究[J].計算技術(shù)與研究,2007(1):102-103.
[7]王群.實驗室信息管理系統(tǒng)(LIMS)原理:技術(shù)與實施指南[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社, 2004.