众所周知,医院信息系统的发展应该是可持续的。为了实现新系统与医院现有系统的无缝连接,就需要运用高效的信息集成技术搭建一个可扩展的集成平台。作为医院信息系统的集成平台,主要考虑其集成的可扩展性,即实现信息系统的无限扩张,这是医院信息系统发展的趋势。
异构数据库的集成是数据库领域的经典问题,也是当今信息技术的热点。研究和开发异构数据库集成系统,对于消除信息社会中的信息孤岛、维护各部门间数据的一致性与完整性、促进数据的共享、减少数据的管理成本等都有极其重要的意义。数据库的异构性包括3个方面:系统异构、数据模型异构和逻辑异构。1. 系统异构 是指硬件平台、操作系统、并发控制、访问方式和通信能力等的不同,具体细分为:计算机体系结构的不同,即数据可以分别存在于大型机、小型机、工作站、PC 机或嵌入式系统等。(1)操作系统的不同,即数据的操作系统可以是Windows,、UNIX、Linux等。(2)开发语言的不同,例如C、C+ +、Java、Delphi等。(3)网络平台的不同,例如Ethernet(以太网)、FDDI(光纤分布式数据接口)、ATM (异步传输模式)、TCP/IP(传输控制/网际协议)、IPX/SPX等。2. 数据模型异构 是指数据库管理系统本身的不同。例如数据交换系统可以是同为关系数据库系统的Oracle、SQL Server作为数据模型,也可以是不同数据模型的数据库,例如关系、层次、网络、面向对象或函数型数据库等。3. 逻辑异构 包括命名异构、值异构、语义异构和模式异构等。例如语义的异构具体表现在相同的数据形式表示不同的语义,或者同一语义由不同形式的数据表示等。异构数据库集成可以通过转换和标准化来实现,在异构数据库系统集成中要解决平台和网络的透明性、数据模型的转换、模式转换和集成、分布式事务管理等问题。当前异构数据库系统集成主要采用3种策略:公共编程界面、公共数据库网关和公共协议:它们都是基于客户/服务器体系结构的,这样可以综合各种计算机协同工作,各尽其能,也可实现对计算机应用系统的规模优化和规模缩小化。①公共编程界面包括客户应用编程界面和服务器应用编程界面;②公共数据库网关是一个转换器,客户通过它就可以访问异构数据库;③公共协议是指对客户和服务器间通讯的格式和协议及对数据库语言进行标准化。这是一种最理想的解决异构数据库系统集成的方法。这3种策略在异构数据库系统集成中可以配合使用,并不互斥。从各种数据库产品所提供的异构数据库集成的主要机制来看,Gateway和API是当今集成异构数据库的主要方法。工作流(workflow)是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。工作流建模即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。工作流管理系统(workflow management system,WMS)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工作流管理系统来实现。(1)定义工具:用来定义工作流,它生成工作流定义。在定义时可能会参考组织或角色数据,还会引用外部应用程序的编程接口。(2)工作流执行服务:用来执行工作流,可能包含多个相互独立、并行运转的工作流引擎。它可能会参考组织或角色数据,还会调用外部应用程序,维护工作流控制数据,使用工作流相关数据,生成工作列表。(4)用户界面:用户操纵工作流列表的界面,可能会调用外部的应用程序。(1)建造功能:对工作流过程及其组成活动定义和建模。(2)运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度。(3)运行交互功能:指在工作流运行中,WMS与用户(业务工作的参与者或控制者)及外部应用程序工具交互的功能。(1)基础的工作流系统:提供引擎、设计器、相关接口等。应用系统的开发商可以基于此类系统开发具有工作流管理功能的应用软件。(2)面向应用的应用级软件系统:应用了工作流技术,包括内置较完整的工作流功能,直接面向最终用户的流程化应用。同时,系统中还往往针对应用需要,集成了其他功能。(1)管理型工作流(administrative workflow):在这类工作流中活动可以预定义并且有一套简单的任务协调规则,如大学里的课程选修、完成论文后的学位申请等。(2)设定型工作流(ad hoe workflow):与管理型工作流相似,但一般用来处理异常或发生机会比较小的情况,有时甚至是只出现一次的情况,这与参与的用户有关。(3)协作型工作流(collaborative workflow):参与者和协作的次数较多。在一个步骤上可能反复发生几次直到得到某种结果,甚至可能返回到前一阶段。(4)生产型工作流(production workflow):实现重要的业务过程的工作流,特别是与业务组织的功能直接相关的工作流。与管理型工作流相比,生产型工作流一般应用在大规模、 复杂的和异构的环境下,整个过程会涉及许多人和不同的组织。(1)基于文件的工作流系统:以共享文件的方式来完成任务项传递。这种类型产品开发得最早、发展最成熟、产品品种较多。代表产品有FileNet的Visual WorkFlo、IBM 的Flow Mark、InConcert的InConcert。(2)基于消息的工作流系统:通过用户的电子邮件系统来传递文档信息。这种类型的产品一般都提供与一种或多种电子邮件系统的集成接口。代表产品有Novell与FileNet合作开发的Ensemble、Jet-Form公司的InTempo、Keyfile公司的Keyflow。(3)基于Web的工作流系统:通过WWW来实现任务的协作。这一类产品起步较晚(在1995年以后),但是发展迅速,其市场前景广阔。许多供应商纷纷改进原有产品或开发新产品以增加对Web的支持。代表产品有Action Technologies公司的ActionWorks Metro、Ultimus 公司的Ultimus。(4)群件与套件系统:虽然这一类产品与上面介绍的3种产品在任务传递方式上有很大程度的重叠,但是在这里却有必要把它单独划分成一类,因为这一类产品都需要依赖于自己系统的应用基础结构,包括消息传递、目录服务、安全管理,数据库与文档管理服务等,它们本身就构成了一个完整的应用开发环境。代表产品有IBM/Lotus公司的Lotus Notes、Microsoft公司的Office与Exchange、Novell公司的GroupWise。J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition)。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次均有共同的标准及规格,让各种依循J2EE架构的不同平台之间存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容、企业内部或外部难以互通的窘境。J2EE组件和“标准的”Java类的不同点在于,它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理。J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages (JSP)是运行在服务器端的Web组件;Enterprise Java Bean(EJB)组件是运行在服务器端的业务组件。企业级应用框架的需求在许多企业级应用中,如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次在开发中都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。在这样的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。这种基于组件,具有平台无关性的J2EE结构使得J2EE程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE服务器以容器的形式为所有的组件类型提供后台服务。容器和服务容器设置定制了J2EE服务器所提供的内在支持,包括安全、事务管理、JNDI(Java na-ming and directory interface)寻址、远程连接等服务。J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据它们所在的层分布在不同的机器上。事实上,Sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议,通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的服务提供一个独立的层,以下是J2EE典型的4层结构:①运行在客户端机器上的客户层组件;②运行在J2EE服务器上的Web层组件;③运行在J2EE服务器上的业务逻辑层组件;④运行在EIS服务器上的企业信息系统(enterprise information system)层软件。1. JSP JSP是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*. htm,*. html)中加入Java程序片段(Seriptlet)和JSP标签,就构成了JSP网页。Java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,提取数据,不会进行业务处理。JSP技术使用Java编程语言编写类XML的tags和seriptlets,封装产生动态网页的处理逻辑。网页还能通过tags和seriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序开发变得迅速和容易。JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。2. Servlet Servlet是在服务器上运行的小程序。这个词是在Java applet的环境中创造的,Java applet是一种当做单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(common gateway interface,CGI)应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Javaservlet的优点在于它们的执行速度快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无须创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。(1)实现过程:最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其他的基于Java的WebServer开始支持标准的ServletAPI。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:客户端发送请求至服务器端→服务器将请求信息发送至Servlet→Servlet生成响应内容并将其传给服务器(响应内容动态生成,通常取决于客户端的请求)→服务器将响应返回给客户端。(2)Servlet特点:①快速性:Servlet只需被Web服务器加载一次,并且常驻内存;②具备Java的所有优点:Servlet基于Java,继承了Java的所有优良特性;③可以访问丰富的Java API:Java API提供对事务、数据库、网络分布式计算等方面的广泛支持,从而使Servlet能进行复杂的后台处理。3. EJB EJB是Sun的服务器端组件模型,设计目标与核心应用是部署分布式应用程序。凭借Java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (enterprise JavaBean)是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。在J2EE里,EJB称为Java企业Bean,是Java的核心代码,分别是会话Bean(session Bean)、实体Bean(entity Bean)和消息驱动Bean(messagedriven Bean)。EJB是开发和配置基于组件的分布式商务应用程序的一种组件结构。用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。这些应用程序可能只需编写一次,然而可以在支持EJB规范的任何服务器平台上配置。EJB包含内容:①EJB服务器;②EJB容器;③EJB类和实例;④EJB本地接口和EJB远程接口。(1)EJB服务器:管理多个EJB容器。提供一些系统服务,如事务服务、安全服务等。(2)EJB容器:管理EJB类和实例、生成调用Bean的代码、创建、初始化和销毁Bean、 管理持久对象、提供EJB Server的服务给Bean。(3)EJB类型:会话Bean(有状态/无状态);实体Bean;消息Bean。