SOA及其在GIS中的应用

石俐金
广西基础地理信息中心 广西南宁 530023)

【摘 要】 SOA是当前IT界最热门的词汇之一,已成为软件工程技术发展的世界性潮流。GIS作为IT产业的重要组成部分,也越来越重视和趋向于用SOA架构来建立互操作的、开放的和易于部署的GIS应用。本文主要介绍SOA的提出、发展及其在当今GIS中的应用。
【关键词】 SOA 业务敏捷 组件技术 WebGIS Service GIS

  0 引言
  如今,随着计算机技术和网络技术的迅速发展,IT系统已普遍应用于社会各领域。然而,在实际应用(包括GIS应用)中,经常会面临这样的问题,即市场变化非常之快,而IT系统很难快速响应这种变化。因为一旦业务发生变化,系统就需要更新和维护,而采用传统软件开发方法做出的系统,其更新和维护的工作量非常大;甚至因为开发时间非常长,有时系统开发刚完成,在需求面前就已经落伍了。那么,怎样才能快速地构建一个系统,并且这个系统可以及时有效地响应业务的需求,即实现业务敏捷呢?SOA就是在这样的背景下发展起来的。
  1 SOA及其发展状况
  1.1 SOA的提出和发展
  SOA是面向服务的体系架构(Service Oriented Architecture)的英文缩写,是一种全新的软件工程架构思想。其核心就是实现业务敏捷(Business Agility)。业务敏捷包含两层含义:第一,IT系统在业务提出变化之后一个恰当的时间段里响应这种变化;第二,IT系统所作出的变化能够恰当地反映业务需求。SOA最早是由世界知名的咨询公司Gartner在1996年提出的。2002年,Gartner公司又指出SOA是现代应用开发领域最重要的课题。2005年,一些IT组织成功建立并实施了SOA应用软件,IBM等厂商看到其价值,也纷纷提出自己的SOA解决方案。据Gartner预计,80%的企业现有应用系统将在2011年前完全演进并融入到SOA架构中。
  SOA的提出就是为了实现业务敏捷,那么,SOA是如何实现业务敏捷的呢,首先让我们回顾一下软件工程技术的发展进化过程:
  20世纪70年代,结构化编程占据了计算机软件编程的统治地位,为了提高软件开发效率,很多公司开始考虑代码的重复使用即代码重用问题,于是出现了函数。现在我们已经知道,函数的重用只是代码重用一个很初级的方式。
  面向对象的提出,把代码重用推向一个新的高度。面向对象是一种非常优秀的软件工程方法,其优点是比结构化程序设计提供了更好的代码重用机制。但这种方法也存在不足,其应用系统依赖于某种具体的开发语言,一旦有细微的修改,必须重新部署大量的代码。
  1994年提出的组件技术,解决了面向对象的上述问题。面向组件解决了对具体开发语言的依赖,让我们在重用组件时不用考虑开发语言的差别,基于不同语言开发的组件也可以在一起使用,这是软件工程发展史上一个质的飞跃。组件技术带来了GIS领域十分重要的技术革命,众多著名的GIS平台厂商纷纷把GIS移植到Windows操作系统,并研发了大型组件式GIS平台。正是这一轮技术革命,推动着GIS平台从一个带着特殊行业烙印的专业软件演化为通用软件,由此融入IT主流。但是,随着应用的深入,面向组件技术的不足也显现出来了:细粒度的组件与紧耦合的系统结构,导致局部需求更改后,仍有大量系统修改,也不满足业务敏捷的需要;另外,面向组件还在实现并发管理、事务处理、通讯协议、版本控制和安全方面,存在困难或具有较高的复杂度。
  很快地,面向服务方法SOA作为应对面向对象和面向组件缺陷的解决方案呈现在人们的眼前。面向服务是在面向组件基础上发展起来的,它强调粗密度和松耦合,在SOA的应用程序中,开发者只需关注业务逻辑的编写,以及通过可交换的、可互操作的服务终结点(Service Endpoint)暴露业务逻辑。客户端调用这些终结点,而不是服务代码或者它的实现包。因此SOA具有更高效率的代码重用机制,可以动态按需构建应用系统,更有助于实现业务敏捷。
  1.2 SOA的优势
  SOA的实现手段主要是Web Services(网络服务),它使基于互联网的不同系统之间可以进行更灵活、更方便和更开放的集成。在借助开放成熟的互联标准和技术的基础上,SOA将会保证系统的多样性和连通性,让IT系统建设更快捷、更简易,系统更强韧。SOA的出现让企业系统的构件具备了像积木搭建模型那样的可能,在企业的业务流程中,某一个业务任务,其实被看作一个个的服务,即一个个的业务任务拼凑成一个完整的业务系统,这是SOA最具革命性的地方,它让IT技术真正地和业务融合,快速、高效的响应业务需求。
  1.3 SOA在国内外的应用现状
  进入21世纪,随着Web服务等相关标准的出现和成熟,SOA开始从概念走向实用。
  在国内,SOA的应用案例已有不少,如在业界广为人知的中国外运股份公司(简称中外运),其核心业务系统(海运船货代系统)在开发上就采用了SOA架构方式,从而成功解决了IT资源集中管控的问题(该业务系统原来是由中外运200多家分支机构的30多套系统“拼装”成的)。2005年,上海证券公司的IT人员就应用SOA思想来建设他们的系统。也是2005年,中国科技部启动一个项目,启动资金达几亿元,用SOA思想建设一个系统,要实现1700多个单位的互通互联,让科技信息实现共享。公安局的边防系统也采用了SOA架构,把SOA的长处和GIS系统结合起来,以实现办证一体化。要发展SOA,同样离不开支持SOA的语言,目前清华大学开发的基于SOA的BPEL语言就非常成功,已经形成了公认的标准。
  国际上,目前大量的厂商也已经开始全力支持SOA。其中英国电信集团公司采用SOA技术,成功实现业务整合,大大减轻公司业务维护的工作量,转而更加专注于客户体验,使企业文化成功地从以产品为中心转变为以客户为中心。美国著名的有线电视公司Comcast已经采用SOA技术来配合客户服务数据以实现更快的问题解决方案。Oracle正在全力开发它的下一代SOA产品Fusion。而IBM公司不仅推出了许多基于SOA的技术,前年在国内还举办了SOA大学生竞赛,已开始为基于SOA的系统开发积累人才。可以说,国外几乎所有的大公司都在做SOA。
  2 SOA在当今GIS产业中的应用
  2.1 WebGis,开始支持SOA
  当SOA这种面向服务的系统结构越来越成为当今软件发展的世界性潮流时,作为IT产业的重要组成部分,GIS也越来越重视和趋向于用SOA架构来建立互操作的、开放的和易于部署的企业级GIS应用。
  其实,GIS厂商早已开始支持SOA,当WebGIS平台软件具备了发布WEB服务的能力的时候,就可以说其已经开始支持SOA,并有助于实现业务敏捷了。SOA不是一种具体的技术,而是一种架构思想。有了支持Open GIS的WMS,WCS,WFS等Web服务标准的WebGIS平台,应用开发商就可以构架符合SOA思想的应用系统,通过可交换、可跨平台互操作的服务终结点暴露业务逻辑,提高代码重用的效率。2003年,武汉大学测绘遥感信息工程实验室与北京超图公司进行了互操作试验,通过Open GIS的WMS规范,把分别来自两个服务器的WebGIS应用整合在一起,一个服务器采用GeoStar的WebGIS平台,另一个则是SuperMap的WebGIS平台。来自两个服务器的地图数据可以叠加在一起显示,功能也可以整合。而美国的芝加哥犯罪网(http://www.chicagocrime.org/)则将芝加哥警察局在线数据库中的犯罪记录与Google Maps的地图整合在一起,用户可以与该网站进行交互,例如告诉它在图形界面上显示一个包含图钉的地图,图钉展示某个地方最近所有入室抢劫案件的详细信息。这种概念和呈现方式非常简单,犯罪信息和地图数据整合之后提供的可视化的功能非常有趣。
  WebGis平台已支持系统整合,但还远远不能满足业务敏捷的需要,存在以下几个方面的原因:第一,WebGIS平台主要面向信息发布,GIS功能相对简单;第二,WebGIS服务器端不具备服务聚合能力,在WEB客户端由二次开发者进行的简单聚合,难以满足大型专业应用系统建设的全部需求,也难于实现聚合后的服务再次以标准的方式发布以便被第三方聚合;第三,客户端GIS软件缺乏完整的服务聚合能力。
  2.2 Service Gis,真正支持SOA
  既然WebGIS还不能有效满足业务敏捷的需要,那么有没有更好的解决方案呢?针对WebGIS对SOA已有的支持基础及存在的问题,业界人士提出了服务式GIS(Service GIS)的概念和技术架构。
  Service GIS是一种基于面向服务软件工程方法的GIS技术体系,它支持按照一定规范把GIS的全部功能以服务的方式发布出来,可以跨平台、跨网络、跨语言地被多种客户端调用,并具备服务聚合能力以集成来自其他服务器发布的GIS服务,即GIS融合了SOA架构思想,使得基于互联网的不同系统之间可以进行更灵活更方便更开放的集成。Service GIS软件平台的实现主要包括以下几方面的工作:
  ◆ 在细粒度组件式GIS基础上,封装粒度适中的全功能的GIS服务群,构成Service GIS的服务器,向客户端发布这些服务。这里强调全功能的GIS服务,包括数据管理、二维可视化、三维可视化、地图在线编辑、制图排版和各类空间分析和处理等。
  ◆ 服务器支持发布基于通用规范的服务,如WMS、WCS、WFS、WPS、GeoRSS、KML等,以便被第三方软件作为客户端集成调用。
  ◆ 客户端GIS软件具备服务聚合能力,可聚合同一厂家服务器软件和第三方服务器软件发布的GIS服务,并与本地数据和本地功能集成应用。
  ◆ 服务器端软件具备强大的服务聚合能力,可以聚合来自其他服务器上发布的GIS服务,并可以将聚合后的结果再次发布,再次发布的服务还可以继续被其他的服务器软件聚合。
  Service GIS能更全面地支持SOA,通过对多种SOA实践标准与空间信息服务标准的支持,可以使用于各种SOA架构体系中,与其它IT业务系统进行无缝的异构集成,从而可以让开发者更容易更快速地构建业务敏捷的系统。与基于面向组件软件工程方法的组件式GIS相比,服务式GIS继承了前者的技术优势,但同时又有一个质的飞跃。从组件式GIS到服务式GIS,这既是后者在前者基础上的自然进化和发展,同时也是GIS领域再一次关键一跳!在今后一段时间内,Service GIS将与组件式GIS互为补充,共同进步和发展,最终Service GIS将成为应用系统开发新的主流。
  2.3 SOA在当今GIS产业中的应用现状
  GIS领域的各个企业都已开始向SOA跨步。国际上,ESRI公司在2006年初推出ArcGIS9.1时,就宣布提供了基于SOA的技术支持,并与不久前在北京举办“基于SOA构架的企业级GIS应用”讲座,向大家介绍了运用SOA架构创建企业级GIS的应用实例。国内,2007年9月,在2007中科院GIS自主创新论坛上,北京超图公司总裁宋关福博士做了题为《ServicesGIS,业务敏捷的GIS应用之道》主题报告,同时推出的SuperMap2008宣称支持SOA。10月,武汉中地数码集团总裁刘永在第六届MapGIS用户大会上宣布其新推出的MapGIS7操作平台采用了SOA的设计思想,并指出SOA是目前GIS领域广受关注的技术方向。
  3 结束语
  综上所述,借助于SOA架构思想,GIS实现了从组件式到服务式的飞跃,这必将使得GIS与各行各业的技术与业务集成越来越紧密,从而拓展GIS的应用范畴和服务领域。

【参考文献】
[1] 宋关福地理信息系统博客.赛迪网
[2] 仲萃豪.SOA趋势不可阻挡.比特网
[3] 雷赫.GIS也要SOA.比特网

地址:广西南宁市建政路5号  邮编:530023  Tel:0771-5606397  Email:webmaster@digitalgx.com
广西基础地理信息中心版权所有 2005-2010 广西基础地理信息中心制作