基于JWS的“智慧城市”信息化建设质量综合评价管理系统的SOA架构研究

摘要“智慧城市”信息化建设质量综合评价管理系统SOAWisedCity是一种SOA集成应用程序,它基于数据报告单、数据单、行业数据库、行业时序系列数据库等数据结构,采用JWS技术架构“智慧城市”项目管理部门服务器端的部署和调用及对各行业客户端的调用,完成行业数据的上报、指标体系的查看与选择、行业数据时序数据库的建立与分析,以实现“智慧城市”项目管理部门的及时准确监管所需.

关键词SOA集成应用程序;Java Web服务;业务处理流程;服务器端的部署和调用;客户端的调用

中图分类号TP311.52 文献标识码A 文章编号10002537(2013)05003906

“智慧城市”是当今全球范围内最新、最热的城市建设理念.博伊德·科恩博士于2012年发布了全球第一次智能城市排名.纽约智库“智慧社区论坛”(ICF)于2013年1月5日公布了全球最有智慧城市决选名单.2013年1月29日,国家住房和城乡建设部公布了90个国家首批智慧城市试点名单,试点城市将经过3~5年的创建期,由有关部门组织评估[1].

智慧城市是在下一代互联网、物联网、云计算、无线宽带等新一代信息技术的支撑下,以全面物联、充分整合、激励创新、协同运作为基本特征,将集约、低碳、生态、智慧等先进理念融合到城镇化的过程中,形成的一种新型信息化的城市形态.“智慧城市”信息化建设的最终目标为最大限度地加强城市政务监管、社会民生等领域关于智慧政府、智慧民生、智慧产业各行业的建设.

信息化程度的高低是“智慧城市”建设的关键.在“智慧城市”信息化建设管理和经济社会发展数据模型研究、“智慧城市”信息化建设质量综合评价方法模型研究的基础上,我们拟建一个基于JWS(Java Web Services)的、面向服务的“智慧城市”信息化建设质量综合评价管理系统,并将此系统定名为“SOAWisedCity”.

SOAWisedCity基于JWS进行SOA架构[25](Service Oriented Architecture,面向服务的架构),其主要功能为:(1)各行业向“智慧城市”项目管理部门及时、准确地上报其阶段性信息化建设数据及相关信息;(2)“智慧城市”项目管理部门及时收集并科学分析各行业上报数据,向各行业提出阶段性建设要求.

SOAWisedCity的数据结构包含2个表单和2个数据库:

(1)数据报告单(Data Report,DR):用于描述某一行业向“智慧城市”项目管理部门所报告的数据及相关信息;

(2)数据单(Data Items,DI):用于描述符合“智慧城市”信息化建设管理和经济社会发展数据模型评价指标体系要求的行业数据及相关信息;

(3)行业数据库(Industry Database,ID):用于描述“智慧城市”项目智慧政府、智慧民生、智慧产业等领域的所有行业相关信息;

(4)行业时序系列数据库(Industry Temporal Series Database,ITSD):用于描述某一行业信息化建设和经济社会发展时序系列数据相关信息,以及按照“智慧城市”信息化建设质量综合评价方法模型完成的数据分析报告.“智慧城市”项目信息化建设所涉每一行业都应该对应建立一个行业时序系列数据库.

此外,系统还设置了一个SOA组合应用程序——数据管理系统,其服务功能由3个独立逻辑单元作为底层服务组合而成.它通过调用3个逻辑单元,形成行业数据目标值列表,创建数据单确认信息、行业数据阶段性建设要求列表、数据分析报告.对于行业数据报告单的发送者来说,该系统本身可以看作是另外一种服务,而SOAWisedCity使用了SOA架构[8],就可以实现这种由底层服务组成的服务.

基于表1所示SOAWisedCity数据结构和逻辑单元功能分析,我们为SOAWisedCity设想如下业务处理流程:

(1)行业向“智慧城市”项目管理者发送一份数据报告单,包含的信息有:数据报告单号DR_Num、报告数据名称RD_Nam、报告数据值RD_Val,以及其他信息;

(2)根据数据报告单,调用行业数据库管理系统,形成行业数据目标值列表;

(3)根据数据报告单和数据目标值列表,调用数据单管理系统,创建数据单;

(4)根据数据单和数据目标值列表,调用行业时序系列数据库管理系统,创建数据分析报告;

(5)根据数据分析报告,创建数据阶段性建设要求列表;

(6)“智慧城市”项目管理者向数据报告行业反馈响应信息——数据单、数据分析报告、数据阶段性建设要求列表.

(1)通过Port组件对Web服务进行部署.JWS中,Port组件是一个Web服务的服务器视图.可以把一个Port组件打包为WAR(用于部署为一个servlet端点)或一个EJB JAR(用于部署为一个EJB端点).WSEE[JSR 109]是用于定义部署过程和打包结构(包括部署描述符)的主要标准.WSMetadata[JSR 181]描述了如何通过标注(annotation)来部署需要打包的类(例如,可以用WSMetadata标注来定义代表一个Port组件的WSDL接口);

(2)对已部署好的Web服务进行调用.服务端点(Endpoint)支持通过HTTP GET来请求描述Web服务的WSDL文档.我们可以使用由JAXWS、JAXB、WSMetadata定义的标注来定制JAXWS WSDL/Java映射,而该映射决定了WSDL的结构:JAXWS标注可以处理所使用的WSDL样式(Style);JAXB标注将Java参数和返回值的类型表示为XML Schema组件来加以处理;WSMetadata标注用于处理WSDL接口的一些细节(例如,目标命名空间和WSDL文档中包含的众多XML元素的局部名称);

(3)引发已部署好的Web服务调用:各组件通过HTTP POST发送SOAP请求,当服务端点接收到SOAP请求时,就会引发部署在该端点上的Web服务的调用;

(4)为服务端点的URL(Uniform Resource Locator,统一资源定位符,也被称为网页地址)部署监听器(Listener):Web服务的端点通常是通过servlet来实现的,在部署Web服务时,WSEE运行时引擎会读取标注和(或)部署描述符中的配置信息,以决定服务端点的URL,并在容器内部进行监听器配置;

(5)将SOAP请求转换为一组XML参数:JAXWS运行时引擎负责从SOAP消息中提取WSDL中XML Schema组件的实例参数;

(6)通过将XML参数反序列化(deserialize)为Java参数和由JAXB定义的标准Java/XML绑定信息生成目标参数的实例.在JAXB运行时,其引擎可以通过目标Java类中的标注即定义类型映射来控制反序列化,引擎内省(Introspection)机制检查目标类中的标注;

(7)调用目标Java类/方法.Web服务应用程序是由经过标注的Java类组成,使用WSMetadata标注(如@webservice)来标注被调用的类(被称为服务实现bean),以表明它实现了一个Web服务;用JAXB标注来标明这些类方法的参数和返回值;对于服务实现bean,还可以用一些JAXWS标注来控制WSDL的样式.在Java EE5中,由JAXWS运行时引擎来处理调用管理.提供调用方法的类可以是EJB,也可以是POJO(Plain Old Java Objects);

(8)通过对Java返回类上添加标注的控制方式,由JAXB对Java方法返回的数据类型进行序列化处理,以转换成XML返回值的类型的实例;

(9)在JAXWS运行时,其引擎将收到的XML返回值类型的实例封装到SOAP响应中;

(10)将SOAP响应发送回请求组件.

(1)使用JAXB、JAXWS、WSMetadata生成SEI(Service Endpoint Interface):用JAXB将WSDL中描述的XML参数和返回值的类型映射为相应SEI中使用的Java参数和返回值的类型;WSMetadata标注为SEI添加文档化的修饰,将wsdl:operations映射为Java方法的文档信息;对于WSMetadata标注的文档信息和SEI中捕获的对应结构,JAXWS提供标准的WSDL到Java的映射.在编译客户端应用程序之前,就应该先生成SEI,因为在客户端应用程序中要使用它的服务接口定义;

(2)通过Java Proxy技术,使用JAXWS的一个Service.getPort方法来实现SEI运行实例,继而在运行时,使用javax.xml.ws.Service类的该实例来提供被调用Web服务的客户端视图;

(3)通过调用Proxy实例上的一个SEI方法实现对Web服务的调用.由Proxy实例实现的SEI使用了WSEE、WSMetadata、JAXWS:WSEE规范定义了封装客户端处理器的过程;JAXWS运行时,其引擎会用SEI中由JSR定义的标注把JAXB参数和方法调用转换成要向Web服务发送的SOAP请求,并负责调用客户端处理器;WSMetadata规范定义了用于将客户端处理器附加到端点实现的标注;

(4)在客户端处理器完成处理之后,SOAP请求消息就会被发送到Web服务,Web服务再返回一个SOAP响应.SOAP响应的处理过程:首先应用处理器,接着通过JAXB运行引擎将SOAP响应参数进行反序列化;

(5)最后,Proxy实例返回一个JAXB实例作为调用的返回值.

2结论

第一,使用JAXWS 2.0提供的客户端接口来访问多个网站的Web服务,同时,使用JAXWS 2.0技术来提供SOAP服务,再配合Ajax应用程序前端提供的人性化的界面,各行业工作人员便可以通过这些服务来访问SOAWisedCity;第二,JAXB(Java Architecture for XML Binding)是一项可以根据XML Schema产生Java类的技术;第三,SAAJ(SOAP with Attachments API for JAVA)支持带附件的SOAP消息,它是在松散耦合软件系统中利用SOAP协议实现的基于XML消息传递的API规范;第四,按照Java EE5的标准使用JSR181和JSR109对SOAWisedCity进行打包,以便可以将它部署到任何支持Java EE5的应用程序服务器上.

参考文献:

[1]人民网财经频道.住建部公布温州等90个首批国家智慧城市试点名单[DB/OL].http://finance.people.com.cn/n/2013/0129/c100420364386.html,20130129.

[2]雷之宇,朱训宇,张麟.Java实用组件集[M].北京:电子工业出版社,2008.

[3]林胜利,王坤茹.Java优化编程[M].2版北京:电子工业出版社,2007.

[4][美]HERBERT S.Java编程Cookbook[M].张君施,译.北京:电子工业出版社,2008.

[5][美]JOHN R.NET 2.0应用程序调试[M].陈缘,邹建峰,郑琼,译.北京:电子工业出版社,2008.

[6]武俊生.双基、改性双基数据库应用系统设计[J].湖南师范大学自然科学学报, 2013,36(2):3539.

[7]梁爱虎.SOA思想、技术与系统集成应用详解[M].北京:电子工业出版社,2007.

[8]薛辉,邓军,叶柏龙,等.分布式数据交换平台在电子政务中设计与实现[J].湖南师范大学自然科学学报, 2012,35(6):4447.

[9]文雄军,刘树锟,廖曙光.智能公交系统电子站牌的研究与设计[J].湖南师范大学自然科学学报,2012,35(5):4246.

[10][美]BRUCE E.Java编程思想[M].4版陈昊鹏,译.北京:机械工业出版社,2007.

[11][美]MARK D H.使用Java Web服务构建SOA[M].成保栋,译.北京:电子工业出版社,2009.

(编辑陈笑梅)

推荐访问:管理系统 信息化建设 架构 综合评价 智慧