第二篇关于软件工程论文:
《基于 RESTful 架构的台风路径发布系统研究》
摘 要:在上海市防汛部门现有的多个信息系统的基础上,基于 RESTful 架构,运用 JSON,WCF,ArcGISServer 10.1 等技术构建台风路径发布系统,为防汛指挥决策、气象水情分析及社会公共服务提供多层次和全方位的信息服务,并整合相关信息资源并有效降低建设运维成本。目前该研究成果已在上海防汛信息系统中得到使用和推广。
关键词:台风;RESTful ;WCF;ArcGIS10.1.
0 引言。
上海市水务局现有各单位的信息系统由于建设时间、设计理念和施工单位不同,技术路线、系统架构、数据库结构等各不相同:存在 C/S 与 B/S 多种系统架构,Java,.Net 与其他工业组态软件多种技术路线,SQL Server,Oracle,SyBase,DB2,Foxpro 多类数据库等,数据多源异构、技术路线差异极大[1],许多通用功能尤其是获取台风数据和 GIS平台部分都各自开发,造成无法重用,甚至是资源争用,使得后续维护更新的工作量加大,更容易产生数据发布不统一的问题。
在上海市防汛部门积累的大量数据基础上,主要对台风路径发布、数据分析及基础底图等进行整合研究,采用基于 RESTful 架构的面向服务的方式实现功能模块的重用,以达到数据发布的统一及系统运维的简化,为防汛指挥决策、气象水情分析及社会公共服务提供多层次及全方位的信息服务和决策支持,并整合资源降低建设运维成本。
1 RESTful 架构。
REST 是 Representational State Transfer 的简称,是 Roy Fielding 博士于 2000 年提出来的一种软件架构风格。REST 从资源的角度观察整个网络,分布在各处的资源由 URI(Uniform Resource Identifier)确定,而客户端的应用通过 URI 获取资源的表征,获得这些表征致使这些应用程序转变了状态。随着不断获取资源的表征,客户端应用不断地在转变着状态,所谓表征状态转移(Representational StateTransfer)。设计良好的网络应用表现为一系列的网页,这些网页可以看作虚拟的状态机,用户选择这些链接导致下一网页传输到用户端展现给使用的人,而这正代表了状态的转变[2].
RESTful Web 服务是一个使用 HTTP 并遵循REST 原则的 Web 服务,对比目前主流的 Web 服务实现方案,RESTful 的 Web 服务比复杂的 SOAP 和XML-RPC 简洁。具体实现应该遵循 4 个基本设计原则:显式地使用 HTTP 方法;无状态;公开目录结构式的 URI;传输 XML,JavaScript Object Notation(JSON),或同时传输这两者。
J S O N 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯,包括C, C++,C#, Java,JavaScript,Perl,Python 等, 这些特性使 JSON 成为理想的数据交换语言。JSON 建构于 2 种结构:1)“名称/值”对的集合,在不同的语言中,它被理解为对象、纪录、结构、字典、哈希表、有键列表或者关联数组;2)值的有序列表,在大部分语言中,它被理解为数组。这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能[3].相对于传统的 XML 数据格式,JSON 由于省略了冗余标签,使得编码更为简单清晰,极大地缩减了数据量。并且 JSON 数据格式作为 JavaScript 程序语言规范的一个子集,能为客户端浏览器直接解析,极大地简化了开发步骤,提高了系统运行效率。通过对比可以发现,总体来说JSON 能够对 XML 数据进行进一步的压缩,压缩率由 XML 数据的内容而定,有一定的浮动。考虑到对于 XML 编码的数据在客户端需要进行进一步的解码处理,而对于 JSON 编码的数据则可以直接被客户端识别为 JavaScript 对象,因此 JSON 在提高服务方面有较高的利用价值[4].
2 基于 WCF 技术的 RESTful 架构数据服务构建。
2.1 WCF 技术。
WCF 技术是由微软发展的一组数据通信的应用程序开发接口,是 .Net 框架的一部分,由 .NetFramework 3.0 开始引入,为适应面向服务架构而设计的一套统一的程序开发模型。借助 WCF,可以将数据作为异步消息从一个服务终结点发送至另一个服务终结点。服务终结点可以是由 IIS 承载的持续可用的服务的一部分,也可以是应用程序中承载的服务[5]. 终结点可以是从服务终结点请求数据的服务客户端。简单消息可以是作为 XML 发送的单个字符或单词,复杂消息可以是二进制数据流。WCF 的体系结构如图 1 所示。WCF 的功能包括:1)面向服务的体系结构,使得在任何平台上创建的任何客户端均可连接到所有服务;2)WCF 实现了Web 服务互操作性的现代行业标准;3)多种消息模式如单工、双工模式交换信息;4)发布服务元数据,可用于自动生成并配置客户端,以便访问 WCF 服务;5)数据协定的代码友好方法;6)可对消息进行加密以保护隐私,而且可以要求用户对其自身进行身份验证,然后才允许接收消息;7)支持多种传输和编码方式如超文本传输协议 (HTTP) 发送文本编码的SOAP 消息;8)支持 REST 及 AJAX.