分布式计算技术在医院信息系统中的应用

2016-11-07 10:11:20 爱德腕带 阅读

1  引言


C/S体系结构在应用系统开发中得到了广泛应用,绝大部分的医院信息系统都是基于C/S架构的。但这种结构也存在很多风险和问题,例如,当客户端数量或者计算量激增时,服务器的性能会因负载更重而大大衰减。


随着网络和Web技术的迅速发展,分布式体系结构逐渐得到应用,并成功解决了C/S体系结构所产生的问题。分布式技术主要分为两大类:分布式存储技术和分布式计算技术。分布式存储技术是将数据分散存储在多台独立设备上的技术,利用多台存储设备分担存储负荷,不仅可以提高系统的可靠性和存取效率,而且易于扩展。分布式计算技术主要研究如何把一个需要巨大计算能力的问题分成许多小部分,然后把这些部分分配给许多不同的计算机进行处理,最后将处理结果综合起来形成最终结果。医院的应用场景中,服务器资源紧缺而客户端数量众多,所以非常适合使用分布式计算技术解决一些实际问题。 


2   四种典型的分布式计算技术


近年来,分布式计算的研究热点也从以分布式操作系统为中心的传统模式转换到以网络平台为中心的实用分布式计算技术,并取得了较大的成功,其中包括了中间件技术、网格技术、P2P技术和WebService技术等。


2.1 中间件技术 中间件是一种独立的系统软件或服务程序,处于操作系统、网络、数据库和应用软件的中间,作用是为应用软件提供运行和开发的环境,并且可以灵活、高效地管理计算资源和网络通信。


2.2 网格计算技术 网格计算通过利用大量异构计算机的未用资源(CPU周期和磁盘存储),将其作为一个虚拟的计算机集群,为解决大规模计算问题提供了一个模型。网格计算的设计目标是解决对于任何单一超级计算机来讲仍然难以胜任的问题,并且同时保留了解决多个较小问题的灵活性。


2.3 P2P技术 P2P技术的一个重要目标就是让系统架构中的所有节点都能提供资源,包括带宽、存储空间和计算能力。这样的设计可以带来两个优势:第一,当越多计算机加入并发起越多的请求,整个系统的容量越大,速率越快;通过在多节点上复制数据,增加了系统的健壮性。


2.4 WebService技术 WebService是一个平台独立的、低耦合的、自包含的、可编程的Web应用程序,因为WebService基于标准接口,所以即使是用不同编程语言实现并且运行在不同操作系统上,它们也可以互相通信。因此,WebService技术非常适用于网络上不同操作系统上的分布式应用程序。


3   应用场景分析


医院信息系统间需要交换和同步的信息分为两类:第一类是数据类,例如体温单中的体征数据、病案首页中的诊断信息等;第二类是文本类,例如电子病历系统中产生的病程记录、移动护理系统中生成的体温单和护理记录等。数据类信息主要用于不同系统之间的引用,这类信息的交换和同步主要采用调用WebService接口的方法,经过从数据库取数据、格式转换、写入数据库的步骤来实现。本文主要论述的是文本类信息的交换和同步实现方法,文本类信息主要用于不同系统之间的查看,医生在电子病历系统中需要查看移动护理系统所生成的体温单或护理记录等,护士在移动护理系统中也需要查阅电子病历系统生成的病程记录等。要实现文本类信息的交换和同步首先要生成相应的文本文件,然后转换成二进制流格式存在服务器上,如果其他系统要调用文本类信息,就需要读取相应的二进制流,再进行解析即可。


4   架构设计和实现方法


4.1 采用C/S架构的测试结果 如果使用C/S架构实现医院信息系统间文本类信息的交换和同步,需要服务器顺序生成发生变化的文本类信息,所需的CPU资源和生成时间如表1所示。从表1可以看出如果只用一个线程来处理的话,则文本生成的延时情况非常严重,例如一份在移动护理系统中做出修改的护理记录,30分钟之后才能在电子病历系统中做出同步更新,这显然是不合理的。要缩短文本同步更新的延迟时间,就需要在服务器上增加处理的线程数,随着线程数的增加,CPU使用率也会增加,当CPU使用率快接近100%时,文本同步更新的延迟时间降低至29秒。虽然已经处于可接受的范围之内,但这是以牺牲服务器CPU计算资源为前提的,况且文本类信息的同步更新延迟时间为29秒并不是很理想的结果。


表1 文本类信息的交换和同步所需CPU资源和生成时间

 文本类信息的交换和同步所需CPU资源和生成时间                     

4.2 分布式计算的架构和流程 采用传统C/S架构所带来的是CPU使用率过高、同步更新延迟时间较长等问题,所以我们决定采用分布式计算技术来实现医院信息系统间文本类信息的交换和同步。将网格计算技术和WebService技术相结合,采用如图1所示的三层架构设计来实现分布式地生成文本类信息。


三层架构设计

图1 三层架构设计


图2展示了某客户端的后台进程是如何将更新后的文本类信息的转化为二进制流数据的。该进程首先会在0到5分钟内随机生成一个时间t,然后在t时调用WebService服务中的GetOne函数从数据库的脏对象列表中取出一个需要处理的文本信息,然后将获得的信息生成一个XPS文件并将这个XPS文件转换成二进制流信息,最后调用WebService服务中的SaveResult函数将二进制流信息写入到数据库中。接着进程会再次调用GetOne函数从脏对象列表中取数据,如果此时脏对象列表中还有需要处理的文本类信息,则继续上述流程;如果此时脏对象列表中没有需要处理的文本类信息了,该进程就再次在0到5分钟内随机生成一个时间,等到了这个时间之后,再次触发图2所示的过程。随机生成时间触发比固定时间触发的好处是保证在任何时刻下总会有至少一台客户端计算机的后台进程在执行图2所示的流程。其他信息系统要调用更新后的文本类信息,只需要从数据库中读取二进制流数据并进行解析即可。


文本转换为数据流 

图2 文本转换为数据流


使用了本文实现的分布式计算技术来实现医院信息系统间的文本类信息的交换和同步后,开启后台进程的客户端计算机CPU使用率平均增长了8%,文本类信息的同步更新延迟时间平均为10秒钟,这一结果大大优于采用C/S传统架构,达到了一个理想的状态。


5   结语


本文通过基于网格计算和WebService服务的分布式计算技术实现了医院不同信息系统之间文本类数据的交换和同步,比使用传统C/S架构取得了更加理想的效果,充分利用了客户端计算机的计算资源,降低了同步的延迟时间。本文介绍的分布式计算方法易于实现,可复制性强,对于医院系统中需要大量计算资源的应用场景都可以适用。


 (来源:节选自《中国数字医学》杂志2016年第10期  作者:李小喆 单位:广州市第一人民医院网络中心


点击这里给我发消息
点击这里给我发消息