眾所周知,醫(yī)院信息系統(tǒng)的發(fā)展應該是可持續(xù)的。為了實現(xiàn)新系統(tǒng)與醫(yī)院現(xiàn)有系統(tǒng)的無縫連接,就需要運用高效的信息集成技術(shù)搭建一個可擴展的集成平臺。作為醫(yī)院信息系統(tǒng)的集成平臺,主要考慮其集成的可擴展性,即實現(xiàn)信息系統(tǒng)的無限擴張,這是醫(yī)院信息系統(tǒng)發(fā)展的趨勢。
異構(gòu)數(shù)據(jù)集成技術(shù)
異構(gòu)數(shù)據(jù)庫的集成是數(shù)據(jù)庫領(lǐng)域的經(jīng)典問題,也是當今信息技術(shù)的熱點。研究和開發(fā)異構(gòu)數(shù)據(jù)庫集成系統(tǒng),對于消除信息社會中的信息孤島、維護各部門間數(shù)據(jù)的一致性與完整性、促進數(shù)據(jù)的共享、減少數(shù)據(jù)的管理成本等都有極其重要的意義。數(shù)據(jù)庫的異構(gòu)性包括3個方面:系統(tǒng)異構(gòu)、數(shù)據(jù)模型異構(gòu)和邏輯異構(gòu)。1. 系統(tǒng)異構(gòu) 是指硬件平臺、操作系統(tǒng)、并發(fā)控制、訪問方式和通信能力等的不同,具體細分為:計算機體系結(jié)構(gòu)的不同,即數(shù)據(jù)可以分別存在于大型機、小型機、工作站、PC 機或嵌入式系統(tǒng)等。(1)操作系統(tǒng)的不同,即數(shù)據(jù)的操作系統(tǒng)可以是Windows,、UNIX、Linux等。(2)開發(fā)語言的不同,例如C、C+ +、Java、Delphi等。(3)網(wǎng)絡平臺的不同,例如Ethernet(以太網(wǎng))、FDDI(光纖分布式數(shù)據(jù)接口)、ATM (異步傳輸模式)、TCP/IP(傳輸控制/網(wǎng)際協(xié)議)、IPX/SPX等。2. 數(shù)據(jù)模型異構(gòu) 是指數(shù)據(jù)庫管理系統(tǒng)本身的不同。例如數(shù)據(jù)交換系統(tǒng)可以是同為關(guān)系數(shù)據(jù)庫系統(tǒng)的Oracle、SQL Server作為數(shù)據(jù)模型,也可以是不同數(shù)據(jù)模型的數(shù)據(jù)庫,例如關(guān)系、層次、網(wǎng)絡、面向?qū)ο蠡蚝瘮?shù)型數(shù)據(jù)庫等。3. 邏輯異構(gòu) 包括命名異構(gòu)、值異構(gòu)、語義異構(gòu)和模式異構(gòu)等。例如語義的異構(gòu)具體表現(xiàn)在相同的數(shù)據(jù)形式表示不同的語義,或者同一語義由不同形式的數(shù)據(jù)表示等。異構(gòu)數(shù)據(jù)庫集成可以通過轉(zhuǎn)換和標準化來實現(xiàn),在異構(gòu)數(shù)據(jù)庫系統(tǒng)集成中要解決平臺和網(wǎng)絡的透明性、數(shù)據(jù)模型的轉(zhuǎn)換、模式轉(zhuǎn)換和集成、分布式事務管理等問題。當前異構(gòu)數(shù)據(jù)庫系統(tǒng)集成主要采用3種策略:公共編程界面、公共數(shù)據(jù)庫網(wǎng)關(guān)和公共協(xié)議:它們都是基于客戶/服務器體系結(jié)構(gòu)的,這樣可以綜合各種計算機協(xié)同工作,各盡其能,也可實現(xiàn)對計算機應用系統(tǒng)的規(guī)模優(yōu)化和規(guī)??s小化。①公共編程界面包括客戶應用編程界面和服務器應用編程界面;②公共數(shù)據(jù)庫網(wǎng)關(guān)是一個轉(zhuǎn)換器,客戶通過它就可以訪問異構(gòu)數(shù)據(jù)庫;③公共協(xié)議是指對客戶和服務器間通訊的格式和協(xié)議及對數(shù)據(jù)庫語言進行標準化。這是一種最理想的解決異構(gòu)數(shù)據(jù)庫系統(tǒng)集成的方法。這3種策略在異構(gòu)數(shù)據(jù)庫系統(tǒng)集成中可以配合使用,并不互斥。從各種數(shù)據(jù)庫產(chǎn)品所提供的異構(gòu)數(shù)據(jù)庫集成的主要機制來看,Gateway和API是當今集成異構(gòu)數(shù)據(jù)庫的主要方法。工作流(workflow)是對工作流程及其各操作步驟之間業(yè)務規(guī)則的抽象、概括、描述。工作流建模即將工作流程中的工作如何前后組織在一起的邏輯和規(guī)則在計算機中以恰當?shù)哪P瓦M行表示并對其實施計算。工作流要解決的主要問題是:為實現(xiàn)某個業(yè)務目標,在多個參與者之間,利用計算機,按某種預定規(guī)則自動傳遞文檔、信息或者任務。工作流管理系統(tǒng)(workflow management system,WMS)的主要功能是通過計算機技術(shù)的支持去定義、執(zhí)行和管理工作流,協(xié)調(diào)工作流執(zhí)行過程中工作之間以及群體成員之間的信息交互。工作流需要依靠工作流管理系統(tǒng)來實現(xiàn)。1. 工作流管理系統(tǒng)主要產(chǎn)品結(jié)構(gòu):(1)定義工具:用來定義工作流,它生成工作流定義。在定義時可能會參考組織或角色數(shù)據(jù),還會引用外部應用程序的編程接口。(2)工作流執(zhí)行服務:用來執(zhí)行工作流,可能包含多個相互獨立、并行運轉(zhuǎn)的工作流引擎。它可能會參考組織或角色數(shù)據(jù),還會調(diào)用外部應用程序,維護工作流控制數(shù)據(jù),使用工作流相關(guān)數(shù)據(jù),生成工作列表。(3)工作流引擎:用來執(zhí)行單獨的流程實例。(4)用戶界面:用戶操縱工作流列表的界面,可能會調(diào)用外部的應用程序。2. 工作流管理系統(tǒng)產(chǎn)品主要功能包括:(1)建造功能:對工作流過程及其組成活動定義和建模。(2)運行控制功能:在運行環(huán)境中管理工作流過程,對工作流過程中的活動進行調(diào)度。(3)運行交互功能:指在工作流運行中,WMS與用戶(業(yè)務工作的參與者或控制者)及外部應用程序工具交互的功能。(1)基礎(chǔ)的工作流系統(tǒng):提供引擎、設(shè)計器、相關(guān)接口等。應用系統(tǒng)的開發(fā)商可以基于此類系統(tǒng)開發(fā)具有工作流管理功能的應用軟件。(2)面向應用的應用級軟件系統(tǒng):應用了工作流技術(shù),包括內(nèi)置較完整的工作流功能,直接面向最終用戶的流程化應用。同時,系統(tǒng)中還往往針對應用需要,集成了其他功能。2. 根據(jù)實現(xiàn)的業(yè)務過程分類(1)管理型工作流(administrative workflow):在這類工作流中活動可以預定義并且有一套簡單的任務協(xié)調(diào)規(guī)則,如大學里的課程選修、完成論文后的學位申請等。(2)設(shè)定型工作流(ad hoe workflow):與管理型工作流相似,但一般用來處理異常或發(fā)生機會比較小的情況,有時甚至是只出現(xiàn)一次的情況,這與參與的用戶有關(guān)。(3)協(xié)作型工作流(collaborative workflow):參與者和協(xié)作的次數(shù)較多。在一個步驟上可能反復發(fā)生幾次直到得到某種結(jié)果,甚至可能返回到前一階段。(4)生產(chǎn)型工作流(production workflow):實現(xiàn)重要的業(yè)務過程的工作流,特別是與業(yè)務組織的功能直接相關(guān)的工作流。與管理型工作流相比,生產(chǎn)型工作流一般應用在大規(guī)模、 復雜的和異構(gòu)的環(huán)境下,整個過程會涉及許多人和不同的組織。(1)基于文件的工作流系統(tǒng):以共享文件的方式來完成任務項傳遞。這種類型產(chǎn)品開發(fā)得最早、發(fā)展最成熟、產(chǎn)品品種較多。代表產(chǎn)品有FileNet的Visual WorkFlo、IBM 的Flow Mark、InConcert的InConcert。(2)基于消息的工作流系統(tǒng):通過用戶的電子郵件系統(tǒng)來傳遞文檔信息。這種類型的產(chǎn)品一般都提供與一種或多種電子郵件系統(tǒng)的集成接口。代表產(chǎn)品有Novell與FileNet合作開發(fā)的Ensemble、Jet-Form公司的InTempo、Keyfile公司的Keyflow。(3)基于Web的工作流系統(tǒng):通過WWW來實現(xiàn)任務的協(xié)作。這一類產(chǎn)品起步較晚(在1995年以后),但是發(fā)展迅速,其市場前景廣闊。許多供應商紛紛改進原有產(chǎn)品或開發(fā)新產(chǎn)品以增加對Web的支持。代表產(chǎn)品有Action Technologies公司的ActionWorks Metro、Ultimus 公司的Ultimus。(4)群件與套件系統(tǒng):雖然這一類產(chǎn)品與上面介紹的3種產(chǎn)品在任務傳遞方式上有很大程度的重疊,但是在這里卻有必要把它單獨劃分成一類,因為這一類產(chǎn)品都需要依賴于自己系統(tǒng)的應用基礎(chǔ)結(jié)構(gòu),包括消息傳遞、目錄服務、安全管理,數(shù)據(jù)庫與文檔管理服務等,它們本身就構(gòu)成了一個完整的應用開發(fā)環(huán)境。代表產(chǎn)品有IBM/Lotus公司的Lotus Notes、Microsoft公司的Office與Exchange、Novell公司的GroupWise。J2EE是Java2平臺企業(yè)版(Java 2 Platform,Enterprise Edition)。J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務架構(gòu)及技術(shù)層次均有共同的標準及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺之間存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容、企業(yè)內(nèi)部或外部難以互通的窘境。J2EE組件和“標準的”Java類的不同點在于,它被裝配在一個J2EE應用中,具有固定的格式并遵守J2EE規(guī)范,由J2EE服務器對其進行管理。J2EE規(guī)范是這樣定義J2EE組件的:客戶端應用程序和applet是運行在客戶端的組件;Java Servlet和Java Server Pages (JSP)是運行在服務器端的Web組件;Enterprise Java Bean(EJB)組件是運行在服務器端的業(yè)務組件。企業(yè)級應用框架的需求在許多企業(yè)級應用中,如數(shù)據(jù)庫連接、郵件服務、事務處理等都是一些通用企業(yè)需求模塊,這些模塊如果每次在開發(fā)中都由開發(fā)人員來完成的話,將會造成開發(fā)周期長和代碼可靠性差等問題。于是許多大公司開發(fā)了自己的通用模塊服務。這些服務性的軟件系列統(tǒng)稱為中間件。在這樣的需求基礎(chǔ)之上,許多公司都開發(fā)了自己的中間件,但其與用戶的溝通都各有不同,從而導致用戶無法將各個公司不同的中間件組裝在一塊為自己服務。從而產(chǎn)生瓶頸。于是提出標準的概念。其實J2EE就是基于JAVA技術(shù)的一系列標準。這種基于組件,具有平臺無關(guān)性的J2EE結(jié)構(gòu)使得J2EE程序的編寫十分簡單,因為業(yè)務邏輯被封裝成可復用的組件,并且J2EE服務器以容器的形式為所有的組件類型提供后臺服務。容器和服務容器設(shè)置定制了J2EE服務器所提供的內(nèi)在支持,包括安全、事務管理、JNDI(Java na-ming and directory interface)尋址、遠程連接等服務。J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據(jù)它們所在的層分布在不同的機器上。事實上,Sun設(shè)計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔當了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難于升級或改進,可伸展性也不理想,而且經(jīng)常基于某種專有的協(xié)議,通常是某種數(shù)據(jù)庫協(xié)議。它使得重用業(yè)務邏輯和界面邏輯非常困難?,F(xiàn)在J2EE的多層企業(yè)級應用模型將兩層化模型中的不同層面切分成許多層。一個多層化應用能夠為不同的服務提供一個獨立的層,以下是J2EE典型的4層結(jié)構(gòu):①運行在客戶端機器上的客戶層組件;②運行在J2EE服務器上的Web層組件;③運行在J2EE服務器上的業(yè)務邏輯層組件;④運行在EIS服務器上的企業(yè)信息系統(tǒng)(enterprise information system)層軟件。1. JSP JSP是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態(tài)技術(shù)標準。在傳統(tǒng)的網(wǎng)頁HTML文件(*. htm,*. html)中加入Java程序片段(Seriptlet)和JSP標簽,就構(gòu)成了JSP網(wǎng)頁。Java程序片段可以操縱數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送E-mail等,實現(xiàn)建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務器端執(zhí)行,網(wǎng)絡上傳送給客戶端的僅是得到的結(jié)果,這樣大大降低了對客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可以訪問JSP網(wǎng)頁。通常JSP頁面很少進行數(shù)據(jù)處理,只是用來實現(xiàn)網(wǎng)頁的靜態(tài)化頁面,提取數(shù)據(jù),不會進行業(yè)務處理。JSP技術(shù)使用Java編程語言編寫類XML的tags和seriptlets,封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和seriptlets訪問存在于服務端的資源的應用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計的顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應用程序開發(fā)變得迅速和容易。JSP(JavaServer Pages)是一種動態(tài)頁面技術(shù),它的主要目的是將表示邏輯從Servlet中分離出來。自JSP推出后,眾多大公司都支持JSP技術(shù)的服務器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應用的服務器端語言。2. Servlet Servlet是在服務器上運行的小程序。這個詞是在Java applet的環(huán)境中創(chuàng)造的,Java applet是一種當做單獨文件跟網(wǎng)頁一起發(fā)送的小程序,它通常用于在客戶端運行,結(jié)果得到為用戶進行運算或者根據(jù)用戶互作用定位圖形等服務。服務器上需要一些程序,常常是根據(jù)用戶輸入訪問數(shù)據(jù)庫的程序。這些通常是使用公共網(wǎng)關(guān)接口(common gateway interface,CGI)應用程序完成的。然而,在服務器上運行Java,這種程序可使用Java編程語言實現(xiàn)。在通信量大的服務器上,Javaservlet的優(yōu)點在于它們的執(zhí)行速度快于CGI程序。各個用戶請求被激活成單個程序中的一個線程,而無須創(chuàng)建單獨的進程,這意味著服務器端處理請求的系統(tǒng)開銷將明顯降低。(1)實現(xiàn)過程:最早支持Servlet技術(shù)的是JavaSoft的Java Web Server。此后,一些其他的基于Java的WebServer開始支持標準的ServletAPI。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。這個過程為:客戶端發(fā)送請求至服務器端→服務器將請求信息發(fā)送至Servlet→Servlet生成響應內(nèi)容并將其傳給服務器(響應內(nèi)容動態(tài)生成,通常取決于客戶端的請求)→服務器將響應返回給客戶端。(2)Servlet特點:①快速性:Servlet只需被Web服務器加載一次,并且常駐內(nèi)存;②具備Java的所有優(yōu)點:Servlet基于Java,繼承了Java的所有優(yōu)良特性;③可以訪問豐富的Java API:Java API提供對事務、數(shù)據(jù)庫、網(wǎng)絡分布式計算等方面的廣泛支持,從而使Servlet能進行復雜的后臺處理。3. EJB EJB是Sun的服務器端組件模型,設(shè)計目標與核心應用是部署分布式應用程序。憑借Java跨平臺的優(yōu)勢,用EJB技術(shù)部署的分布式系統(tǒng)可以不限于特定的平臺。EJB (enterprise JavaBean)是J2EE的一部分,定義了一個用于開發(fā)基于組件的企業(yè)多重應用程序的標準。其特點包括網(wǎng)絡服務支持和核心開發(fā)工具(SDK)。在J2EE里,EJB稱為Java企業(yè)Bean,是Java的核心代碼,分別是會話Bean(session Bean)、實體Bean(entity Bean)和消息驅(qū)動Bean(messagedriven Bean)。EJB是開發(fā)和配置基于組件的分布式商務應用程序的一種組件結(jié)構(gòu)。用EJB結(jié)構(gòu)開發(fā)的應用程序是可伸縮的、事務型的、多用戶安全的。這些應用程序可能只需編寫一次,然而可以在支持EJB規(guī)范的任何服務器平臺上配置。EJB包含內(nèi)容:①EJB服務器;②EJB容器;③EJB類和實例;④EJB本地接口和EJB遠程接口。(1)EJB服務器:管理多個EJB容器。提供一些系統(tǒng)服務,如事務服務、安全服務等。(2)EJB容器:管理EJB類和實例、生成調(diào)用Bean的代碼、創(chuàng)建、初始化和銷毀Bean、 管理持久對象、提供EJB Server的服務給Bean。(3)EJB類型:會話Bean(有狀態(tài)/無狀態(tài));實體Bean;消息Bean。