飞扬范文网
当前位置 首页 >读后感 >

应用集成技术在水利领域应用服务平台的应用(娄渊清,王志坚)

发布时间:2022-02-22 15:15:11 浏览数:
 

摘要: 目前水利领域信息化发展面临的困难之一是应用共享程度差、集成难度大。Web服务具有平台独立、松耦合、动态定位、调用友好和广泛接受的特点。根据水利领域应用的特点及要求,提出了一个基于Web服务的水利领域应用集成框架WDAIF,解决不同平台开发Web服务应用的互操作以及各种遗产系统转化为Web服务的问题,使得各种应用系统的整合更方便、易用及更具动态可扩展性。重点解决了在跨平台应用集成中Web服务互操作问题。

关 键 词: 应用集成;Web服务;应用服务平台;水利领域

中图分类号: TP39    文献标识码: A

目前,我国水利领域已经建设了大量针对特定水利业务需求的应用系统,如水文预报系统[1] 、防汛指挥系统[2] 、水资源决策支持系统[3] 、水土保持决策支持系统[4] 等。这些不同的水利业务之间存在着密切联系,需要相互协作与配合。但是,由于管理体制和信息技术水平的限制,这些系统基本上都是独立设计、单独开发,较少考虑相互之间的关联,从而造成不同业务应用系统很难融合和集成[5] 。因此,迫切需要利用现有的技术将不同的水利应用集成,实现应用共享。Web Services具有良好互操作性、松散耦合、规范标准等特点,基于Web Services的集成方案已经成为应用服务集成的主流。本文提出了一个基于Web服务的水利领域应用集成框架WDAIF(Water Conservancy Domain Application Integration Framework),解决不同平台开发Web服务应用的互操作以及各种遗产系统转化为Web服务的问题,使得各种应用系统的整合更方便、易用及更具动态可扩展性。

1 应用集成相关工作

在近几年来的分布式计算技术发展过程中,逐步出现了RMI、DCOM、CORBA、Web服务等技术,它们在水利领域应用集成中取得了一定的成功,但仍然存在一些不足。以往的水利业务领域应用集成方案都是针对特定的软硬件结构、网络环境而进行研发的。面对软硬件结构等的动态变化,系统自适应性差。要真正实现水利领域应用系统的集成和共享,目前还没有一个完全成熟的技术方案。

作为可以支持水利应用集成的企业应用集成的研究主要有两大类:①从系统的某个部分研究企业应用集成的方法,如数据集成、过程集成等;②提供一个体系结构,从多方面研究企业应用集成的方法,主要包括基于EDI(Electric Data Interchange,电子数据交换)的集成、基于中间件的集成、基于工作流的集成、基于XML的集成和基于Web服务的集成等。

基于EDI的集成是用标准的格式实现不同组织之间应用到应用的业务文件传输,是一种功能较弱的应用集成方法。基于中间件的集成使得集成更加有效,中间件被独立地开发或从已有的功能或系统中提取。基于XML的集成是允许使用Web上的服务而不需要中间机构系统的集成。基于Web服务的集成,由于服务平台独立、松耦合、动态定位、调用友好和广泛接受,所以是优秀的应用集成解决方案。

目前,对基于Web服务的集成方法研究较多,Dieter Fensel等提出了一种面向Web服务的应用集成模型框架─WSMF[6] 。Fei Cao等提出了基于一种元模型的Web服务集成方案[7] 。IBM的Ying Huang提出了一个解决业务集成的Web服务合成框架[8] 。IBM公司推出的Websphere产品是采用了J2EE结构和Web服务协议栈的基于Web服务的EAI集成方案。IONA公司推出的Orbix E2A Web Services集成平台。

2 WDAIF体系结构

面向服务的集成将传统的集成对象与开放的、高灵活性的Web服务整合在一起,提供了一些抽象接口,系统只需要以服务的形式出现,选择与该系统交互的其它系统,就能够发现服务,并且运行时绑定服务。本文给出了一个基于Web服务的水利领域应用集成框架WDAIF。

WDAIF框架模型以分层的方式进行构建,主要包括以下层次:

(1)企业信息层(Enterprise Information Layer)。它包括了用不同技术构建的信息系统(如基于COM的信息系统、基于CORBA的信息系统、其它遗产系统、现有基于不同平台开发的Web服务等);将水利领域信息系统划分成独立逻辑应用的Web服务封装层,用于将各种水利领域应用转换成Web服务的方式进行发布/调用;适配器/网关用于处理外部客户与水利领域信息系统的调用交互,主要处理Web服务的绑定调用,同时它还是一个Web服务的WSDL发布者,将Web服务封装层提供的WSDL注册到水利领域的UDDI注册中心。企业信息层在Web服务的架构中起到了服务提供者的角色,为客户和水利领域的其它增值应用提供服务。

(2)消息传输层(Message Transfer Layer)。此层在WDAIF中传输SOAP消息,采用了两种消息模式:同步通信消息和异步通信消息。同步通信消息主要适用于实时性比较高的应用,需要调用企业应用服务以后立即得到响应。SOAP消息在消息总线上既可以通过同步调用的方式传输,也可以采用异步通信的方式进行传输,做到了性能优化和方式多样性的统一。

(3)企业集成层(Enterprise Integration Layer)。此层包含集成服务器、服务事务、消息服务、服务组合、服务安全。集成服务器是企业集成层的核心部分,它是其它几个服务功能模块的信息交换中介,同时也负责对外提供一个统一的应用调用处理界面,包含了SOAP消息路由和消息格式转换两个主要功能。服务事务提供了原子/业务事务,也负责协调事务的上下文。服务组合需要事务处理机制和组合控制,它主要起到了在企业信息系统中定制新的系统集成所需要的服务。服务安全为WDSIF提供了系统安全保障。

(4)企业应用层(Enterprise Application Layer)。此层是在WDAIF中的企业集成层基础之上的应用,它利用企业集成层所提供的服务接口和一些基础设施实现了企业各种应用的开发、再利用和重新整合。

(5)客户访问层(Client Access Layer)。客户访问层对企业应用来讲,客户分成Web客户、一般服务请求者。它们通过外部交互网关访问企业应用层的典型应用,充当了服务请求者的角色。它们可能会通过各种协议方式(如HTTP、RMI-IIOP等)访问企业应用层,WDSIF屏蔽了这些访问细节,在系统内部都是以SOAP方式访问调用企业应用。


WDAIF是基于Web服务技术的,集成引擎通过接口将各类业务功能封装成Web服务组件后发布到UDDI注册中心,并通过接口调用相应的应用。它是连接各类应用的桥梁,采用的是松散耦合方式,即任何应用都可以调用对应的接口连接到系统中来,方式灵活,简单快速,真正实现了“即插即用”,具有很强的灵活性。当应用系统需要集成时,它首先调用集成平台的接口,将其能够提供的服务用WSDL描述后,用SOAP消息发布到UDDI注册中心。如果注册中心是私有的,则集成的是企业内部的应用系统;如果注册到公有注册中心,则可以在通过Internet集成不同企业之间的不同系统。

WDAIF充分考虑了水利领域应用的复杂性和需求的多样性,实际应用具有互操作性、灵活性、可扩展性、数据完整性等特点。

3 基于服务的应用集成技术应用

在“数字黄河”应用服务平台一期项目中,结合第2节所述的体系结构,采用Web服务的方式实现应用集成总体框架功能,解决实际应用集成过程中Web互操作问题,从而有效地验证了基于服务的应用集成技术的可行性。

3.1 互操作问题分析

“数字黄河”应用服务平台试验系统的框架采用的集成平台是基于Java的,在集成原先用VB.NET开发的综合监视服务时出现了如下问题导致了该Web服务不能很好地在该集成平台下集成。原先用VB.NET开发的Web服务中,有很多地方均采用弱集合类型作为参数或返回值,如DataSet。所以,采用以下处理办法:首先,在Web服务开发过程中,特别是在涉及到参数传递和返回值时应避免使用这些弱集合类型,所以改写后的Web服务中方法的参数及返回值都不使用弱集合类型。同时为了消除这些弱集合类型带来的这种不确定性,总的指导原则是用静态数据类型去取代动态数据类型,一般对弱集合对象可以使用实际的数组对象类型来代替。

具体过程如下:首先声明一个类或一个结构类型,然后根据弱集合对象在实际应用过程中对应的类型,分别将该类型的成员属性赋值给先前声明的类成员或结构属性。经过这一处理后,在Web服务中就没有这种动态的不确定类型存在了。同时,由于VB.NET类型定义的模糊性,更好的选择应该在.NET中选用C#。

3.2 互操作性的应用实现

下面是原有的由VB.NET开发的综合监视服务组件,返回告警信息的服务方法如下:
……
<WebMethod()>Public Function Return WarnData(ByVal strcnn As String,ByVal strcnn for sqlserver As String,ByRef ReturnDataSet As DataSet,ByRef ErrStr As String)As Boolean
Dim Ds Warnningdata As New DataSet()"------保存各类报警数据
Dim Table Warnningdata As New DataTable()
Dim Column Warnningdata As New DataColumn()
"取出最符合的报警级别(rank)
……
下面是具体的实现过程,首先声明一个具体的类来来代替DataSet类型,声明如下:
public class WarningInfo

public string stcd;//测站编码
public string stnm;//测站名称
public string rank;//告警级别
public string manner;//告警标志
public string ymdhm;//告警时间
public double q;//水位
……}
改造该Web服务后返回告警信息的方法代码如下:
……
[WebMethod]
[XmlInclude(typeof(WarningInfo))]
 public WarningInfo[]ReturnWarnData(String strcnn,String strcnn for sqlserver,String ErrStr)

DataSet dsDB;//对数据库查询告警信息
string sql;
……
//从数据库中得到告警数据
sql=“select a.*,b.q,b.ymdhm,d.name as stnm”
+“from warnning para a,lastrmex b,nodedef d”
+“where a.stcd=b.stcd and b.stcd=d.nodeid and manner*b.q>=(manner*a.alarmflow)”
dsDB=SqlHelper.ExecuteDataset(strcnn,CommandType.text,sql);
……
int iCount=dsDB.Tables.Count;
WarningInfo[] infoResult=new WarningInfo[Count];
//把dsDB对象包含的数据加入到对象WarningInfo中
for(int i=0;i<iCount,i++)

WarningInfo[i]=new WarningInfo();
WarningInfo[i].stcd=dsDB.Tables(0).Rows(i).Item(“stcd”);
WarningInfo[i].stnm=dsDB.Tables(0).Rows(i).Item(“stnm”);
WarningInfo[i].rank=dsDB.Tables(0).Rows(i).Item(“rank”);
WarningInfo[i].manner=dsDB.Tables(0).Rows(i).Item(“manner”);
WarningInfo[i].ymdhm=dsDB.Tables(0).Rows(i).Item(“ymdhm”);
WarningInfo[i].q=dsDB.Tables(0).Rows(i).Item(“q”);
……

……
return infoResult;

……
改写后生成的服务方法在新的WSDL表示为:
……
<s:element minOccurs=“0"maxOccurs=“1”name=“strcnn”type=“s:string”/>
<s:element minOccurs=“0”maxOccurs=“1”name=“strcnn_for_sqlserver”type=“s:string”/>
<s:element name=“ReturnWarnDataResponse”>
<s:complexType>
<s:sequence>
<s:element minOccurs=“0”maxOccurs=“1”
name=“ReturnWarnDataResult”type=“s0:ArrayOfW-arningInfo”/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name=”ArrayOfWarningInfo”>
<s:sequence>
<s:element minOccurs=“0”maxOccurs=“unbounded”name=“WarningInfo”
type=“s0:WarningInfo”/>
消除了类型的不确定性后,在Workshop中就可以正常调用该Web服务了,从而就能够把原来开发的综合监视服务系统集成到本试验系统中了。

4 小结

基于Web服务的水利领域应用集成框架WDAIF,适应水利领域应用的特点及要求(Water Conservancy Domain Application Integration Framework),解决了不同平台开发Web服务应用的互操作以及各种遗产系统转化为Web服务的问题,使得各种应用系统的整合更方便、易用及更具动态可扩展性。重点解决了在跨平台应用集成中Web服务互操作问题。

参考文献:
[1] 吴险峰,刘昌明,郝芳华等.黄河小花区间暴雨径流过程分布式模拟.水科学进展,2004,15(4):511~516.
[2] 康玲,王学立.基于Web services的Agent防汛决策支持系统研究.华中科技大学学报(自然科学版),2005,33(12):99~101.
[3] 蔡治国,王光谦,刘晓岩.基于“数字水调”规划的黄河水量调度方案编制.水科学进展,2005,16(4):524~529.
[4] 朱小勇.黄河流域“数字水土保持”建设实践.中国水土保持,2005,(4):13~14.
[5] 刘家宏,王光谦,王开.数字流域研究综述.水利学报,2006,37(2):240~246.
[6] Dieter Fensel,Christoph Bussler.The Web Service Modeling Framework WSMF.Electronic Commerce Research and Applications,2002,(1):113~137.
[7] Fei Cao,et al.A Meta-Modeling Approach to Web Services.IEEE(ICWS"04).
[8] Ying Huang,et al.AWeb services-based framework for business integration solutions.Electronic Commerce Research and Applications,2003,(2):15~26.
作者简介: 娄渊清,男,河海大学计算机学院,博士研究生。
来源:《人民长江》2008年第2期

     相关热词搜索: 服务平台 水利 集成 领域 技术