摘 要:Web Service是Internet上新兴的应用通信和集成技术,本文先简单介绍了XML和Web Service技术,然后着重讨论了基于Web Service的系统集成技术的特点和优势,以及通过实际的开发实例介绍了基于Web Service的系统集成技术在车站信息平台实现中的应用。
关键词:Web Service;系统集成;车站信息平台
1、引言
随着信息技术与网络技术的发展和普及,基于Internet和Intranet的应用系统蓬勃发展;基于web的车站信息系统作为一种崭新的技术逐渐运用到实际的管理活动活动中,成为“数字化车站”重要的组成部分。
作为车站系统的后台支持系统,车站信息平台也得到相应的发展,出现了很多成型的系统和实际产品,它们基本上实现了车站信息平台需要的几个基本系统——信息传输系统、站调系统、车号系统、统计系统、货调系统。但是,纵观现有的车站信息系统和产品,一定程度上存在着一些不足:交互方式比较单一,不同的管理系统和交互子系统很难集成在一起,大多处于相对分离的状态;缺少通用的数据编辑和保存形式,不同操作系统和数据库平台上的子系统很难交互和共享数据;缺少有效的模块集成手段,基于不同平台的模块很难集成,系统的扩展性和伸缩性比较差。
现有的车站信息平台的这些缺陷,在很大程度上与现有的系统集成技术的缺陷有关。针对现有车站信息系统和产品的不足之处,我们在实际的车站信息平台的设计和开发过程中,采用基于Web Service的系统集成技术,处理系统模块间控制和数据的集成,很大程度上提高了系统数据的通用性,降低了模块间的耦合程度,从而提高了车站信息系统的扩展性、伸缩性和兼容性,便于系统分担负载,提高车站信息系统的服务质量。
2、XML及Web Service
XML(eXtensible Markup Language,可扩展标记语言)是Internet上数据表示和数据交换的新标准。它是ISO(International Organization for Standardization,国际标准化组织)的SGML(Standard for General Markup Language,通用标记语言标准)的一个简化子集。XML关注信息本身,是Web上表示结构化信息的一种标准文本格式。与传统的注重页面信息显示的HTML(Hypertext Markup Language, 超文本链接标示语言)相比,关注于内容的XML具有以下诸多优点:良好的可扩展性,语言简单有效,可自行定义标记;内容与形式的分离,主要刻画数据内容,不考虑显示效果;有严格的语法要求,便于分析统一和与数据库信息转换;便于传输,为纯文本形式,可通过Http协议直接传输,可跨越防火墙;等等。XML的出现和发展对于Internet和Intranet产生了巨大的影响。
3、基于Web Service的系统集成
在软件系统的开发过程中,系统集成主要实现系统的各部分(模块)之间的通讯和整合,将相对分散的子系统组成一个统一的整体,实现子系统间的功能控制和信息交互与共享。但是这些传统的集成技术在很大程度上受到网络环境的限制,大多使用专有协议通过特别的端口进行远程通信,不能很好的支持客户段和服务器通过Internet进行通信。
基于Web Service的集成技术作为一种新的面向函数和方法的应用集成技术,在很大程度上解决了原有集成技术在Internet远程通信方面的问题。Web Service基于XML文档进行服务描述,服务请求和反馈结果,可以在Internet上通过HTTP协议进行传递,很容易的被访问和返回结果。同时,由于Web Service的相关标准都是W3C的开放协议,与平台和操作系统无关,不同的平台和操作系统上的Web Service的实现在很大程度上可以做到互操作,这就使异构平台上应用的集成变得很容易。此外,过去使用的基于RPC(RPC - Remote Procedure Call,远程过程调用)和API(Application Programming Interface,程序编程接口)的集成技术都是一种函数级的静态解决方案(即使它们在客户机和服务器通讯时使用XML);Web Service则是一种动态的集成方案,所有的服务都可以通过UDDI标准动态地被发现、绑定和使用,容易适应系统的变动,提高系统的灵活性和伸缩性。
使用Web Service技术进行系统集成和过去使用其它面向函数和方法的技术进行集成类似:在进行初始设计的时候主要考虑不同应用之间,系统不同模块之间消息及数据传递的需求;根据具体需求设置相应的接口,描述接口特性;针对不同应用的平台选择相应的Web Service组件,进行相应设置;实现不同应用的接口,进行相应调试;实际运行,应用程序间进行协同调试。
4、 基于Web Service的系统集成技术在车站信息平台实现中的应用。
我们开发的车站信息系统的初始版本,是完全基于Windows平台的。整个系统集中在一个服务器上,采用两层的Web开发架构,各个模块直接对数据库进行操作,通过Form提交数据,直接引用等方式进行消息传递。造成系统模块间的耦合过于紧密,系统的可移植性,扩展性和均衡负载等方面都比较差。
在进行新版本系统的设计时,考虑到原有系统的诸多不足,我们在提高系统的可扩展性,降低各个系统模块之间的耦合程度等方面多了许多考虑,在模块集成方面主要使用应用层面上的基于Web Service系统集成技术,使用基于不同平台上的Web Service技术实现系统模块之间的消息和数据传递。
接下来以车号管理模块和调度指挥模块之间的集成,来说明如何在实际的车站系统开发过程中使用Web Service集成技术。
车号管理模块主要完成确报的收发和车辆的状态管理;调度指挥模块是具体车站作业中的一部分,主要提供实时的列车调度功能。调度指挥模块中所需要的列车信息,车辆和货物等信息都需要从车号管理管理模块中获得。在原有系统中,两个模块工作在同一个平台上,访问同一个数据库,获取相应的信息,关联比较强。为了减少这两个模块之间的关联,我们在重新设计的时候,考虑将这两个模块独立起来,在车辆或列车进入调度指挥模块的时候只传递最必要的信息,如车号和编组序号;其他大部分的相关车辆和系统信息都进行抽象,通过Web Service方式在车号管理模块中实现,在调度指挥系统中进行访问。这样保证了两个模块之间可以很容易的分离和整合,也可以工作在不同的操作系统平台上(Windows或Linux等)。
这两个模块之间集成的具体实现过程(以Microsoft.Net平台的实现为例)。
(1) 系统需求分析
(2) 系统
设计,划分系统
确定车号管理和调度指挥分别独立成一个模块,车号管理模块主要实现对列车和车辆的组织和管理。
(3) 确定模块间的接口描述
根据需求分析和系统模块设计,确定模块之间接口的类型,需要传递的参数和数据类型。
车号管理模块需要提供的接口:
用户信息:用户类型,编号;
车辆信息:车号,状态,……;
货物信息:品名,类别,……。
股道信息:股道名,容车数,有效长,……。
调度指挥模块需要提供的接口:
调度情况:车辆状态转换情况,货物装载情况,停留实际时间,……。
(4) 确定实现方法
使用基于Microsoft.Net的Web Service支持平台,C#开发语言;在Microsoft Visual Studio.Net集成开发环境中开发。抽象出以下需要实现的接口:
车辆信息(车号,状态),货物信息(品名,数量),股道信息(股道名,容车数,有效长转场),货物装卸情况,车辆情况。
(5) 具体实现,测试
代码中引入Web服务相应的命名空间;在其他代码中可以通过调用GetCarInfo方法,调用远端的Web服务程序,查询相应的车辆信息。
Visual Studio.Net集成开发中,Web Service中使用SOAP等协议传输会话的机制大部分都已经被封装,对于一般开发者是透明的,在很大程度上提高了开发效率;但同时也造成开发人员对于系统的可控程度下降。使用J2EE平台实现的时候,需要定义SOAP消息头等XML脚本,以能够实现基本的Web服务功能。在不同平台开发的时候,需要注意采用W3C的Web Service标准和模式,尽量不使用具体实现平台的扩展功能,以免影响系统的兼容性。
(6) 发布Web服务,进行安全等方面的工作,完成系统集成
使用WSDL实用程序生成代理代码,发布Web服务程序;在统一的服务发布服务器上,通过UDDI服务实现发现Web服务功能,便于查询系统各模块提供的Web Service服务。同时使用Web服务的身份验证和授权技术,提高系统的安全性。由于Web Service在安全性方面的标准刚刚出台,还没有实际应用,所以系统在身份认证和授权技术方面的实现还比较简单,只提供简单的密码和授权认证。
通过使用基于Web Service的系统集成技术,我们比较容易的把基于不同操作系统平台和数据库平台的子应用集成在一起。比如:基于Windows2000操作系统和Microsoft SQL Server数据库的异步教学系统,基于Linux操作系统和oracle数据库的路局调度指挥系统等。
5、结束语
使用Web Service技术进行系统集成,提高了系统的可扩展性和兼容性,增强了车站信息平台的适应能力,提高了系统的服务质量。