基于Web Service的医药经营企业 (GSP)系统的数据处理研究
2012-01-10朱莹芳
朱莹芳, 孙 俊
(1.江南大学物联网工程学院,江苏无锡 214122; 2.江苏信息职业技术学院计算机工程系,江苏无锡 214101)
1 引言
随着经济全球化、信息化、网络化迅猛发展,电子政务成为当今世界许多国家和地区追求的目标、关注的焦点和实践的重要课题.实施电子政务[1],既是政府管理改革与创新的基本方向,也是带动国民经济与社会信息化的根本力量.
药品是广大人民群众防病治病、保护健康必不可少的特殊商品.药品市场的混乱,不仅会影响医药事业的健康发展,还会给人民群众的生命安全带来很大威胁.同时,我国加入WTO后,如何科学、规范地监管药品市场已经成为迫在眉睫的问题.只有实现严格执法与科学管理的统一,不断增加监管执法的科技含量,实现科学的信息化管理,药监工作才能上层次、上水平,最大限度地发挥监管执法的效能.
建立高效的电子政务综合信息系统是构建现代药监信息管理平台的重要手段,以前瞻的眼光来规划构建药监电子政务综合信息系统,才能为未来药监管理效率的提升打下坚实的基础.电子政务综合信息系统中的远程网络监管系统是药监局工作人员对医药经营企业GSP客户端所上传的数据进行分析处理的系统,它是整个电子政务系统的核心系统,主要以B/S的形式在用户面前展现,该系统主要基于P2P技术实现数据的采集及基于Web service技术实现数据的查询,本文主要研究Web service技术在远程网络监管中的重要性及实施过程.
2 Web service技术的部署及调用
2.1 Web Service技术简介
Web Service采取简单的、易理解的标准Web协议作为组件界面描述和协同描述规范,通过 XML、SOAP、WSDL、UDDI等技术手段,完全屏蔽不同软件平台的差异,是一种跨平台和具有高度可集成能力的技术.无论是CORBA、DCOM还是EJB都可以通过这一种标准的协议进行互操作,全面解决教育资源的无序性、异构性和封闭性等问题,实现了在当前环境下最高的可集成性.Web Services使用面向服务的构架,它包含三个参与者和三个基本操作:服务提供者、服务请求者和服务代理[2].首先,服务提供者将所能提供的服务接口用WSDL描述出来,然后使用UDDI在服务代理将这些服务接口进行注册;服务代理则使用UDDI注册这些服务接口,并接受服务请求者的查询;服务请求者通过使用UDDI在服务代理处查询,得到所需的服务接口的描述文件,然后绑定到这些服务,最终完成调用.参与者之间的三种操作都采用SOAP完成.
Web Service平台由一系列协议组成,最基本的平台是XML+HTTP,功能全面的平台是XML+HTTP+SOAP+WSDL+UDDI.
对Web Service更精确的解释:Web Services是建立可互操作的分布式应用程序的新平台.COM或DCOM建立过基于组件的分布式应用程序开发已经比较普遍.COM是一个非常好的组件技术,但是也很容易举出COM并不能满足要求的情况.Web Service平台是一套标准,定义了应用程序如何在Web上实现互操作性.可以用任何一种语言,在任何平台上写WebService,只要可以通过Web Service标准对这些服务进行查询和访问.
不管Web Service是用什么工具,什么语言写出来的,只要用SOAP协议通过HTTP来调用它,总体结构都应如图1所示.通常,用自己喜欢的语言 (如VB 6或者VB.NET)来构建Web Service,然后用SOAP Toolkit或者.NET的内建支持来把它暴露给Web客户.于是,任何语言,任何平台上的客户都可以阅读其WSDL文档,以调用这个Web Service.客户根据WSDL描述文档,会生成一个SOAP请求消息.Web Service都是放在Web服务器 (如IIS)后面的,客户生成的SOAP请求会被嵌入在一个HTTP POST请求中,发送到Web服务器来.Web服务器再把这些请求转发给Web Service请求处理器.请求处理器的作用在于,解析收到的SOAP请求,调用 Web Service,然后再生成相应的 SOAP应答[3].Web服务器得到SOAP应答后,会再通过HTTP应答的方式把它送回到客户端.
2.2 Web Service的创建
在 VisualStudio.net中创建解决方案“DZBWebService”,在此解决方案中创建项目DZBWebService,项目所包含文件如下图1所示.
图1 Web Service的创建
其中在TextWebSerice.asmx.cs文件中获取网站上系统文章表“XT-TEXT”所有记录的代码如下:
///返回文章列表
2.3 Web Service的部署:
Web Service服务创建完毕之后就是服务的部署,服务的部署方式和使用IIS或其他服务器组件发布Web的方法类似.
部署将有表1的目录结构:
表1
Web服务发布将有表2的条目:
表2
把原先创建的.asmx文件及对应的bin目录下面的文件上传到相应站点 (www.dzbsoft.com)后,部署完毕.供客户端第三方调用WebService服务的引用名为com.dzbsoft.www.部署后可以在原网站提供WebService服务,如图2所示.
图2 提供Web Service服务窗口
2.4 Web Service的调用
客户端:取得服务端的服务描述文件WSDL,解析该文件的内容,了解服务端的服务信息,以及调用方式.根据需要,生成恰当的SOAP请求消息 (指定调用的方法,已经调用的参数),发往服务端.等待服务端返回的SOAP回应消息,解析得到返回值.服务端:生成服务描述文件,以供客户端获取.接收客户端发来的SOAP请求消息,解析其中的方法调用和参数格式.根据WSDL和WSML的描述,调用相应的COM对象来完成指定功能,并把返回值放入SOAP回应消息返回给用户[4].Web Service数据模型 (三种应用技术标准)如图3所示.
图3 Web Service数据模型
客户端调用Web Service服务可以通过各种方式,本文通过一个典型的Windows窗体Form来进行调用,Form中使用两个控件Button及DataGridview,所有文件见图4所示.
图4 部署完毕后的Web Service服务
3 Web Service在医药经营企业 (GSP)系统的数据处理过程及实现
3.1 医药经营企业 (GSP)系统的数据处理流程
医药经营企业 (GSP)系统的数据采集及查询时整个药监系统电子政务工作的核心工作,这些工作在远程网络监管系统中实现,该系统是药监局工作人员对医药经营企业GSP客户端所上传的数据进行分析处理的系统,系统流程见图5所示.
图5 GSP网络监管系统数据采集及处理流程
3.2 Web Service在医药经营企业 (GSP)系统的具体实现
本文主要研究数据的处理过程,考虑到远程网络管理系统的WebService实现具体如下:
1)服务提供者
开发并部署Web Service.用C#语言编写查询XML文件的class,以安装并使用GSP软件的药店名称作为查询参数,得出相应药店的药品进销存及药师等情况.提供服务描述文档 (建立WSDL文件)将药店查询WebService部署到UDDI注册中心.
2)服务调用者
调用药店查询WebService.调用功能处主要代码如下[5]:
Try
'获取从证后监管传过来的数据
If ModMaster.GetCount (“ SettingUser-BuMen ”,“UserId='”&User-id.ToString()&“'”) >0 Then
'获取本部门名称、部门缩写、真实姓名
3)系统自动学习WebService
4)服务过程
首先,客户端应用程序通过网络向UDDI查找WebService空间转换服务,如果存在,则返回WSDL文档URL,紧接着客户根据URL请求WSDL文档资料,Web应用服务器返回WSDL文档,并定位WebService;客户端通过网络请求服务说明,阅读WebService提供的接口说明,查看是否有需要的空间数据转换服务,最后,客户端应用程序通过HTTP、XML、SOAP协议向服务器请求WebService,服务器执行WebService方法并返回响应结果.
此处的Webservice服务对于满足系统的数据处理中有着极其重要的作用,不仅在药品网络监管系统中有着应用,而且在其他系统中也有着比较重要的应用.
4 结束语
基于Webservice技术所构建的远程网络监管系统已经在某地市食品药品监督管理局投入运行,并有效解决食品与药品监督管理局GSP数据采集及调用问题.
系统对于辖区内药店经营的管理主要通过安装在药店客户端软件基于Webservice技术定期上传的数据中抽取相关信息而完成对药店销售情况的管理,具有实用性和可扩充性.
[1]张成福.中国政府信息化:发展、问题与前景 [R].国家信息化办公室研究报告,2000.
[2]陆宵宏,华驰.药监系统电子政务系统的设计及其关键技术的研究 [J].硅谷,2009,(21).
[3]刘乃丽.精通ASP.NET2.0+SQL Server2005项目开发第二版 [M].北京:人民邮电出版社,2007:110-198.
[4]王玉标,文俊浩,赵瑞锋,饶锡如.基于Web服务的异构数据库共享及同步机制 [J].计算机工程与设计,2009,30(24):5774-5777.
[5]Zhao Gang,Yang Zong-ka,iYanKun.Design and Implementation of a Distributed Learning Resource Registry System[C].//The 4th International Conference on Computer and Information Technology,2004:333-338.