面向服务架构与天津市防潮信息系统设计
2011-07-16夏中华顾晓蓉李彦涛
夏中华,顾晓蓉,李彦涛,黄 毅
(天津市水利科学研究院,天津 300061)
0 引言
天津市防潮信息系统作为防潮会商决策和指挥调度与日常管理的信息化支撑平台,包含防潮信息化网络、硬件、数据库及地理信息等系统,系统需要整合天津市沿海气象、潮情监测数据,海堤工程及其它防潮决策辅助信息,实现全市防潮业务流程的信息化管理,为天津市防潮工作和业务搭建信息平台。系统采用面向服务架构(SOA)的设计,通过对原有系统的整合和完善,实现对气象、潮情、工情等数据的实时查询及历年不同阶段的数据统计,为决策人员提供快速、详实的信息,提高信息采集和处理效率;利用统一的业务管理平台,实现各相关部门协同办公,决策层可随时查看各项业务的进展情况,可根据需求随时提取与决策相关的数据,提升对应急事件的响应效率;利用统一的信息管理平台,即时发布指令指导防潮相关部门的工作,快速协调内部资源进行合理规划和分配,提高管理控制水平。
1 系统总体功能需求
天津市防潮信息系统不是 1 个孤立的系统,它是天津市防汛业务系统中的 1 项业务应用系统。防潮信息系统除了服务于本地防潮中心的业务工作之外,还需要向天津市其它防汛业务系统提供信息服务,也需要向各级防潮成员单位提供相关信息服务。为了实现项目建设目标和要求,天津市防潮信息系统的总体设计采用面向服务技术架构作为业务信息系统的应用集成架构,在潮情、工情、灾情、社会经济等信息和基础地理数据库的基础上,建立防潮信息查询、预警、会商、工程和办公管理 5 个子系统,具体功能模块如图1 所示。
2 面向服务架构技术
基于 SOA 的优越特性,天津市防潮信息系统总体架构采用 SOA 技术,并通过 WCF(Windows Communication Foundation)技术实现,以较好地满足防潮工作的业务需求。
SOA 是将系统中不同功能的服务,通过这些服务之间定义的接口和契约联系起来。服务是独立的自包含的,不依赖于其它服务,服务接口采用中立的方式进行定义,独立于实现服务的硬件平台、操作系统和编程语言,使得构建在各种系统中的服务可以通过统一和通用的方式进行交互。SOA 架构具有松散耦合性、广泛集成性、系统开放性、良好的可升级维护性、系统部署的灵活性等特点。SOA 架构可消除冗余,保证各个流程的衔接,整合信息孤岛,通过 IT 与业务的紧密结合,提高整个系统的灵活性。
图1 综合业务处理系统功能模块
WCF 是一种基于 SOA 的分布式通信技术[1],它将微软现有的一系列分布式技术,如 COM/DCOM(组件式对象模型/分布式构件对象模型),.NET Remoting,XML Web 服务,MSMQ(消息队列)等整合起来,提供 1 个统一的应用编程接口。WCF 具有统一性、互操作性 、安全与可信赖和兼容性等特点。
3 系统架构设计
根据 SOA 架构原则,按照实际功能需求中的业务过程和目标将系统划分成不同的层,天津市防潮信息系统的架构被设计为 7 层结构,具体包括:支撑系统、服务组件、服务、业务过程、用户、集成和数据架构层[2],其中前 5 个为水平层,后 2 个为垂直层。水平层遵循分层架构模型的基本原则,上层可以访问下层,而下层不能访问上层;垂直层可以被多个水平层访问。系统总体框架图如图2 所示。
系统框架中各层的功能如下:系统支撑层包含新建的、已有的应用程序,独立的公共商业软件,以及各种数据库;服务组件层中的服务组件根据分类聚集系统支撑层中程序的相关功能,解决了程序功能的集成,简化了复杂的程序接口,每个组件可以实现 1 个或多个服务;服务层定义了系统所需求的所有服务,包括对服务操作和输入输出信息的定义,以及服务的管理、访问需求等;业务过程层描述了系统中各种业务的执行方式,通过调用不同的服务来实现整个业务流程,该层实现了系统业务需求和技术方案之间的有机连接;用户层根据用户需求的不同为不同用户创建不同的前端,实现访问协议和数据格式的标准化;集成层提供服务定位和发起调用,提供架构中层与层之间调用时的服务质量、安全性、延时保障,也被称为服务总线;数据架构层定义每个水平层中数据架构和信息结构,确保数据与信息的正确表现。
4 WCF 服务构建
根据防潮信息系统架构中各层次功能划分、组件要实现的功能创建相应的 WCF 服务。
由防潮信息系统架构图可以看出,防潮信息系统主要功能为信息查询,防潮预警、会商、管理,指挥调度,工程和办公管理等几个方面。WCF 服务一般分为应用和基础服务 2 类,应用服务实现某项特定功能,基础服务则提供一些通用功能。比如信息查询组件中的应用服务,包括堤防、水闸、口门、险工险段、港口码头等信息查询服务功能,基础服务包括异常处理、导航服务、查询字符串解析等。
WCF 服务模块的具体创建需在以下 7 个方面实现:
1)功能提供层,是该模块功能的提供者;2)服务接口,设定模块提供给其它模块调用的接口,功能提供层引用设定好的服务接口对外提供服务;3)服务契约,设定客户端与服务器端进行服务调用时的 WCF 服务契约;4)服务实现,实现服务契约定义的 WCF 服务;5)功能实现,实现模块需要的功能;6)数据访问层,提供对数据库中数据的调用;7)数据定义,对服务中使用的参数进行类型定义。
图2 天津市防潮信息系统架构图
最后将这些模块生成 DLL 文件,同时在项目中添加模块对应的 .svc 类别的 WCF 服务文件,建立相应配置文件后,在 IIS 服务器端发布项目。客户端调用创建的 WCF 服务,就可以应用服务中的各项功能。
5 系统集成设计
天津市防潮信息系统需要多种应用系统的支撑,要在已建系统基础上进行整合,涉及的技术面较广,复杂程度很高。系统集成首先要对各个应用系统的基础数据进行集成,实现业务数据的共享;其次是将某些应用系统的业务功能进行集成。因为本系统采用 SOA 系统集成架构,这个目标可以通过编制具有相关业务功能的 Web 服务程序来实现,保证系统之间共有信息的共享。
实时潮情数据是防潮业务系统的核心与基础,因而对原有潮位监测系统的数据集成是防潮信息化工作的重要内容。在水务局内部包括市防办潮位监测系统的 3 个潮位监测站和水文监测系统的 3 个河口水文观测站。这些监测系统监测数据的集成是通过开发数据接收处理 Web 服务程序来实现的。系统的潮位信息接收处理程序通过给部署 Web 服务的潮位监测系统服务器发送潮位数据接收消息,经过管理部门提供的数据库用户权限连接潮位和水情数据库,并根据需要从数据库中接收最新数据,并由潮位数据接收处理程序储存到防潮信息系统数据库的潮情信息库中。虽然原监测系统的建设年代和开发商都不同,但是潮位接收组件根据各个监测系统开发了对应的 Web 服务程序,顺利实现了数据集成。
对于 WebGIS 系统的集成,由于采用的 ArcGIS Server 平台本身支持 SOA 架构,因此可以很方便地将地图服务器上发布的地图服务功能集成到系统中。另外短信、传真系统也通过开发对应的服务程序的方法,较好地集成到系统中。
6 结语
总之,利用 SOA 的理论与实现,使天津市防潮信息系统高效、灵活地与各种信息系统和业务应用集成在一起。通过采用 SOA 这种企业信息管理应用的框架,将系统的业务应用划分为不同的业务功能和流程,各自建立 WCF 服务,通过组合调用各种服务并封装成业务功能组件来满足不同的业务需求,从而使防潮相关业务和信息系统可以适应不同的业务需求。
[1]将金楠. WCF 技术剖析(卷 1)[M]. 北京:电子工业出版社,2009: 2-18.
[2]Norbert Bieberstein,Robert G. Laird,Dr Keith Jones,等.执行 SOA-SOA 实践指南[M]. 王海鹏,王海燕,李安国,等译. 北京:机械工业出版社,2009: 49-53.