REST架构

2024-10-05

REST架构(精选4篇)

REST架构 篇1

0引言

数字化矿山[1,2,3]一直是我国和美国、加拿大、澳大利亚、南非等采矿大国的重要科研领域之一,其核心是采用现代信息、数据库、传感器网络、智能化过程控制等技术,针对矿山生产、经营、管理的各个环节与要素,实现网络化、数字化、模型化、可视化、集成化和科学化管理,使矿山企业生产呈现安全、高效、低耗的局面。国外一些采矿技术发达的国家已经实现了整个矿区范围内的信息通信网络建设,将所有信息系统通过内部网络集成在一起,通过内部网络管控设备将内部网络连接到外网,从而实现电子商务的矿山数字化目标,目前正在经历由矿山自动化向无人开采的转型。国内的数字化矿山建设大部分仍停留在信息化建设阶段,各子系统功能简单,共享的信息量少,信息流向单一、无序,再加上矿山企业信息“五性四多”(复杂性、海量性、异质性、不确定性和动态性,多源、多精度、多时相和多尺度)[4,5]的固有特点,使得我国大部分矿山信息化系统处于孤立状态,难以实现从现有的多个异构管理信息系统中将信息轻松抽取到企业规划与决策层面的目标。

鉴此,本文以面向资源架构(Resource-Oriented Architecture,ROA)的理念为指导,基于表征状态转移(Representational State Transfer,REST)[6,7]框架,首次提出矿山资源抽象层的概念,将矿山中各个异构管理信息系统的功能、文档、界面、工作流等抽象为能够通过标准通用资源标志符(Uniform Resource Identifier, URI)来唯一标识的抽象资源元数据,在决策或智能分析层通过分析和处理元数据来实现相应操作或得出相关分析结果;在此基础上建设了矿山数字移动办公平台,验证了REST架构具有很强的灵活性和复用性。

1REST架构

REST由HTTP创始人Roy Fieldin在其博士论文中首次提出[6]。该论文中提到的REST只是一个简单的评判架构的标准,这就导致了目前应用中的REST不是一个真正的架构,而是一种架构风格。REST架构主要包含5个准则:(1) 所有网络事物都被抽象为资源;(2) 每个资源都对应一个唯一的资源标识URI;(3) 通过通用连接器接口(目前指HTTP的Get、Post、Put和Delete四个接口方法)实现对资源的操作;(4) 对资源的各种操作不会改变资源标识;(5) 所有的操作都是无状态的。

这样的Restful Web Service就与以往的Web服务有了很大的不同[8,9,10,11],自抽象层次是在资源上,而且其基于现有的HTTP/TCP协议家族,无需增加新的协议规范。

REST架构与传统的面向服务架构(Service-Oriented Architecture,SOA)[12,13,14]在性能上的比较见表1。

2基于REST架构的矿山数字移动办公平台

随着移动智能终端的广泛普及,移动办公已经成为当前信息化建设的热点话题。移动办公可以使办公人员在任何时间、任何地点处理与业务相关的任何事情,从而摆脱空间和时间的束缚。要实现矿山企业的移动办公,就要将企业现有管理信息系统的功能等进行抽象,将一些核心功能通过一定的方式呈现,这样既可以使移动端系统完成紧急事项,也可以保证系统的安全性,同时还可以与现有系统进行无缝连接。若采用标准SOA架构实现矿山数字移动办公平台,需要移动端厂商与现有管理信息系统厂商首先根据需求签约,然后按照各自产品的情况进行修改,最终以服务发布的方式供双方调用。若采用REST架构,只需将原有管理信息系统中需呈现在移动端的功能进行封装,移动端客户即可通过HTTP协议来访问这些封装好的REST资源,进而进行相应的功能操作。基于REST架构的矿山数字移动办公平台如图1所示。

基于REST架构的矿山数字移动办公平台建设的步骤:(1) 将移动端需要使用的功能抽象为具有一定格式的REST资源;(2) 为每一个资源指定唯一的名称(URI),保证移动端能够通过该名称进行访问;(3) 为每一个资源设计表现形式,要求能够表达资源当前状态,并能链接到下一个应用状态或资源状态;(4) 通过超链接的方式将资源和现有管理信息系统相连。

通过以上配置即可实现移动端和中间移动继承服务、中间移动服务与现有管理信息系统之间的无缝连接。由于REST架构只提供Get、Put、Post和Delete资源操作方式,从而大大降低了系统接口的复杂度。

3实例分析

陕煤集团神木张家峁矿业有限公司的信息化建设目前已基本完成。整个信息化系统包含系统管理平台、矿山ERP管理平台、矿井安全生产管理平台、自动化控制平台、矿井设计管理平台、矿井其它业务平台六大部分,正在运行的独立子系统超过15个。考虑到公司的业务发展,需要将部分子系统中的部分功能转移到移动端来实现。基于REST架构,公司最终将办公自动化子系统和安全监测子系统的部分核心内容展示在移动端。具体实现方法:通过访问原有系统的URL地址提取Web页面,并自动转换为XML标记,结合XPATH和模板引擎,将原有系统的应用模块发布到手机上,并通过原有系统的表单响应处理器处理表单请求;通过定义核心功能、手机界面定制、交互条件限定和动作执行,在手机端实现移动办公。移动办公平台提供业务功能模块定义功能,可在不需要增加、修改任何代码的情况下,方便快速地将计算机软件功能移植到手机上,使客户通过手机随时、随地、随手掌握所关心的信息,实现移动办公。基于REST架构的矿山数字移动办公平台移动端界面如图2所示。

4结语

基于REST架构的矿山数字移动办公平台采用Web服务方法,中间件工作量较少,与原有系统耦合度较低,建设周期短,系统搭建简单。应用表明,移动办公平台与原有计算机平台的兼容性好,运行稳定,移动终端操作流畅,实现了随时、随地、随手办公的全新模式,大大提高了管理人员工作的灵活性;可在智能终端实现实时提醒、移动公文审批、公文阅办、安全监测数据实时查看等功能,提高了办公效率。

摘要:基于面向资源思想以及REST架构,首次提出了矿山资源抽象层的概念,将矿山中各个异构系统的功能、文档、界面、工作流等抽象为能够通过标准URI来唯一标识的抽象资源元数据,在决策或智能分析层通过对元数据的分析和处理来实现相应操作或得出相关的分析结果;提出了基于REST框架的矿山数字移动办公平台设计方案,并以神木张家峁矿业有限公司移动办公平台的建设为例,介绍了将多个异构系统快速集成在移动终端的实现方法。应用结果表明,该移动办公平台运行稳定,操作流畅,使得工作人员能够随时、随地、随手办公,大大提高了办公灵活性及效率。

关键词:数字矿山,移动办公,矿山资源抽象层,REST架构,移动终端

REST架构 篇2

关键词:高校运维系统,工单,rest架构,Spring Boot,Spring Data JPA

随着移动互联网的快速发展及操作的便捷性,越来越多的系统开始提供对移动设备的支持。而传统的高校运维系统只是单一、简单的网站,在建设初期只考虑网页前端,因此缺乏对移动设备的支持。另一方面运维平台作为高校信息化建设系统的重要组成部分,在高校信息化建设历程中具有不可替代的作用。因此高校运维系统提供移动端的支持是十分必要的。

运维平台主要由网页、安卓、ios等前端和服务器端组成,前端直接面向普通用户,提供友好的界面和良好的用户体验,服务器端提供API,为所有的前端提供数据服务,是整个运维平台的核心组成部分。随着平台用户量的逐渐增加,服务器端面临的技术压力也越来越大。因此良好的API设计和实现将是平台稳定和持续改进的重要基础。

通过分析四川旅游学院运维需求,提出一种基于Rest架构的服务器端API设计,并基于Java EE架构实现该API。

1 系统需求分析

系统需求分析是系统开发生命周期中最重要的组成部分,直接决定系统开发成功与否。所以做好系统需求分析是极其重要的。

1.1 需求概述

高校运维平台Rest API主要完成运维系统的服务器端API的设计,为网页、安卓、ios等多种终端提供统一的数据服务。该平台包含的主要功能有用户管理、工单管理、解决方案管理、知识库管理、评价管理、权限管理、统计分析管理和短信管理。

1.2 详细功能需求

针对上述需求综述,提出以下各模块具体的需求:

1.2.1 权限管理

针对不同角色的用户,应分配不同的权限,以下是具体的角色:

1)管理员:拥有系统所有模块的操作权限;

2)普通用户①

①平台内登录、注册、忘记密码操作;

②提交工单,查看已提交工单信息;

知识库搜索;

④查看某工单的解决方案,并做相关评价。

1.2.2 用户管理

以下是用户管理模块的具体需求:

①用户可以通过终端完成注册、登录、忘记密码操作;

②系统后台可以查看、修改、删除和根据条件查找注册用户的信息;

1.2.3 工单管理

工单管理模块主要的需求是:

1)用户可以通过各种终端如网页、安卓或ios等客户端提交问题形成工单;

2)在用户个人中心可以查看已解决、未解决工单信息;

1.2.4 解决方案管理

解决方案管理模块主要的需求是:

1)平台服务人员需要及时对用户提交的工单进行处理,并将处理后的解决方案上报;

2)工单的正确解决方案将进入知识库系统,便于用户下次搜索;

3)用户可以查看某工单的解决方案;

4)后台可以查看所有工单的解决方案;

5)后台可以根据工单号查询该工单对应的解决方案。

1.2.5 统计分析管理

统计分析模块主要包括以下方面的统计:

1)用户统计

-统计每日新注册用户数量。

2)工单统计

-统计每日新增工单数;

-统计每日解决工单数;

-统计每日未解决工单数。

1.2.6 客户评价管理

用户可以对已处理的工单进行评价,评价的内容包括办理结果、办理过程、办理态度等多方面内容的评价。

1.2.7 短信管理

短信管理主要是利用第三方短信服务商提供的短信服务,对核心流程中一些必要的环节以短信的方式告知用户,提醒用户及时关注工单处理最新动态。

1)用户在注册时候,需要提交手机号码,接受平台发送的短信验证码,然后在服务器端注册逻辑操作时,验证该验证码是否正确;

2)当用户提交的工单已分配相关人员处理时,系统将发送短信通知该用户。

1.2.8 知识库管理

为了方便用户更快速的解决问题,提出知识库概念。将已经成功解决的历史工单,进入知识库系统,形成经验积累。其他用户遇到相同或类似问题的时候,可首先通过搜索知识库,寻找答案,如未找到,再提交工单给网络信息中心处理。通过这种方式,提高工单解决效率,避免重复、无价值的劳动。

另外知识库管理支持全文搜索和模糊匹配,从而最大程度的方便用户完成搜索。

2 系统设计

2.1 系统架构设计

运维平台服务器端架构采用MVC架构,Rest API层使用Spring MVC提供的Rest Controller完成API的具体实现,业务逻辑层包括了平台所有的业务处理,数据访问层采用了Spring Data JPA+Hibernate来实现数据存储和访问。

2.2 数据库设计

2.3 Rest API设计

Rest API与传统API设计最大的区别在于:利用HTTP提供的GET,POST,PUT,DELETE等动词,结合URI统一资源定位符,来设计API。

3 系统核心功能实现

在充分进行运维系统需求分析和良好的架构设计、数据库设计及Rest API的设计,基于Java EE平台架构实现API。

3.1 系统开发环境

3.2 关键技术

3.3 API层实现

采用Spring MVC提供的Rest Controller能够非常方便地实现API层接口,数据格式统一为json格式。

3.4 数据访问层实现

数据持久化是系统的重要组成模块,运维系统采用Spring Data JPA+Hibernate实现。Spring Data JPA通过提供统一的数据持久化接口,且提供方便的接口实现复杂的功能。底层使用Hibernate框架来实现具体的数据存取操作。

3.5 权限管理

权限管理是系统的核心组成部分,是系统安全性保证的重要模块。由于Spring Security权限管理框架经较多公司使用、成熟且稳定,因此采用该框架作为系统的权限管理,经过简单配置即可完成强大的权限管理。

授权验证模块采用oauth2.0协议,基于spring security实现。用户在验证通过后,获得唯一令牌,携带该令牌访问其他资源。

3.6 短信管理

短信管理模块主要的任务是利用第三方的短信服务平台发送短信信息。第三方短信服务公司会提供API文档,详细描述如何使用该服务。一般短信平台支持json、xml等多种数据格式,且会提供http get/post方式。运维平台根据第三方短息平台的API要求,通过发送http get/post请求,获取相应短信服务。

4 系统测试

系统开发完成后,需要经过大量的测试之后,才能上线。系统测试主要包括功能测试和性能测试。其中功能测试是保证系统所有功能模块都是正确的。而性能测试是为了了解系统能够支持最大的并发数。另外良好的性能测试也能够帮助我们分析系统的性能瓶颈,为下一步的优化做准备。

4.1 功能测试

利用Restful Client测试工具完成系统所有核心API的功能测试,经测试运维平台所有API功能正确。

4.2 性能测试

在确保功能正确的前提下,还需要进行系统的性能测试,了解系统能够支持最大的并发数量。

使用jmeter工具,通过相关配置,模拟用户的并发数,测试系统性能。

5 结束语

针对传统高校运维平台只是单一、简单网站,移动端设备支持较差等问题,首次提出一种基于Rest架构的高校运维平台的API设计,并基于Java EE平台实现。经功能测试和性能测试验证了该平台架构稳定,支持较高的并发,且具备较强的扩展性。由于各大高校运维需求存在一定的差异,因此本文提出的API设计需要结合实际需求做更进一步优化。

参考文献

[1]刘延杰.基于Java EE的科研管理系统设计与实现[D].成都:电子科技大学,2015.

[2]金天昕.浅析高校IT运维系统的建设[J].电脑知识与技术,2015,11(28).

[3]陆春,黄杰,陈云.高校信息系统运维自动化的研究与实践[J].中国教育信息化·高教职教,2014(3).

[4]翟跃.关于高校信息系统安全运维实践的探讨[J].电脑与信息技术,2016,24(2).

[5]安寅杰.高校IT运维服务项目的分析与实施[J].中国教育信息化·高教职教,2015(11).

[6]马鸣华.浅谈网络管理系统在高校校园网中的应用[J].计算机光盘软件与应用,2013(11).

REST架构 篇3

传统的工作流模型进行了改进,设计和实现了一个通用的多用户、多角色为主体的面向知识密集型协作的业务流程管理平台。

在流程引擎的设计中建立了基于资源和角色间的约束和关联的元数据描述框架,同时支持流程实例级的用户和角色的动态映射及资源实例与参与者的动态分配。并能够根据资源角色元数据和运行时状态进行自适应的动态任务创建,构造满足角色资源约束和关联的动态任务表单。

基于JCR(Java Content Repository,JCR,JSR283)标准[8],构建了支持复杂资源类型的内容管理服务,提供了非结构化资源、半结构化资源的元数据定义、存储、全文检索和版本控制功能。

以基于消息交换的服务总线[2]作为系统内外异步服务的集成机制,同时提供了基于REST风格的流程服务和内容管理服务的面向资源的接口,增强了分布式计算、Internet环境下的异构系统集成能力。

2 整体架构

系统整体架构如图1所示,摒弃了传统JavaEE庞大、低效率的EJB组件模型,转而使用提供控制反转容器(IOC)和轻量级编程模型的框架Spring来作为系统的核心。由用户接口、应用服务和流程服务、基础设施和数据存储构成四层架构。

(1)用户接口:采用基于模型-视图-控制器(MVC)的JSF和RichFaces页面组件模型作为Web用户界面的核心;通过服务总线将服务层以Web服务和REST风格接口暴露在外,用以与外部系统进行服务于资源交互。

(2)应用和流程服务:在基础设施提供的各种服务之上,基于外观设计模式[11]提供了流程服务、应用服务和内容管理服务的高层的、粗粒度的集中。

(3)基础设施:采用基于Spring Framework提供的轻量级IOC容器,结合面向方面编程技术(AOP),对基础设施的主要服务进行了声明式的生命周期管理,并且集成了资源配置、事务管理器、缓存服务,构造成一个插件式的微内核,便于集成其他的服务模块;使用Hibernate对象-关系映射框架(O-R Mapping)提供基本数据访问服务;安全框架由基于Spring Security的AOP拦截性安全机制实现了基于角色和用户的安全控制框架;业务流程服务扩展改进了PVM,提供流程定义和部署、流程实例运行和监控和任务管理等服务;内容管理服务采用了基于JCR规范的Jackrabbit[7]作为具体实现;提供了基于BIRT的流程和应用的统计报表服务;集成了服务总线来支持外部数据交换。

(4)数据库访问:由业务流程数据库、内容数据库和领域模型数据库组成。

3 工作流引擎

3.1 流程元数据框架与角色资源控制模型

为了在多角色、多用户协同场景下,支持资源的类型级与实例级的细粒度角色控制,在图2和图3中定义了资源元数据(VarMetadata),描述了资源的名称、类型等基本信息,而它的子类流程资源元数据(ProcessVarMeta)能够描述相关联的角色和可见性等流程相关控制信息,任务资源元数据,在继承前两者的基础上,扩展包含了资源的“是否可读”、“是否可修改”和“是否必须提交修改”等在内容协作中必要的控制信息。利用资源元数据的自我描述性可以提供一种类似Java反射的机制,在运行时暴露自己的类型信息给调用者。

在此基础上,流程定义可以指定关联的流程资源类型,而流程实例和任务实例可以从流程资源实例(ProcessInstanceVar)的级别和任务资源实例(TaskInstanceVar)的级别设置更精确的控制。

流程定义中定义了参与者角色和发起者角色,控制流程的启动和运行时所允许的角色。流程实例的上下文状态(ProcessInstanceState)中实时的维护了实际的参与者和发起者等相关信息。而任务实例中维护了分配的参与者等信息。从而提供了一个完善的、灵活的角色、用户与资源的控制机制。

3.2 流程引擎的核心组件

通过对PVM的扩展,将元数据框架、角色资源控制模型融入了流程引擎的核心组件中,如图3所示,并定义了几种常见的流程运行特征。

(1)流程的持久化属性:持久化的流程生成的流程实例的每一步操作都会保存在数据库中,因而支持长时间的事务性的流程任务;而非持久化的流程生成的流程实例仅在用户的一次执行中存在,超出了这个范围则会自动销毁。

(2)流程的实例数目属性:定义了参与流程的角色所能启动的流程实例的数量限制。

(3)基于时间窗口的流程属性:定义了流程执行的时间限制,只能够在有效的时间范围内才能够生成流程实例。

(4)流程实例的概念继承与属性继承:流程实例会自动继承流程属性,这通过每个流程实例初始化时必须执行的事件处理来完成。每个流程实例创建后,都拥有一份流程属性数据的拷贝,而这些数据可以在运行中被用户进行修改,使得流程实例运行的控制和管理具有很强的灵活性。

(5)流程实例与任务实例的运行状态描述机制:基于用户与角色分类描述人机交互中的系统消息;可以对流程实例状态进行切换,暂停正在运行的流程实例,可以在需要的时刻恢复运行。对于某一流程的某个流程实例的每个参与者,记录了每个参与者必须完成的任务标识,以此来辅助实现用户界面层的页面导航。

图4以科研项目管理中的成果评奖管理流程为例,给出以Web界面显示的流程定义信息。

流程服务组件用来实现流程的运转、监控与管理等功能,如图5所示。

3.3 任务管理

通过上述基础,任务管理组件能够根据资源元数据动态生成任务表单(如Web浏览器中的Html Form),并且借助内容管理服务REST接口,基于XML格式的HTTP请求和响应,提供与内容管理系统的友好集成,如图6所示。同时提供了实时跟踪和察看流程实例状态、任务实例状态和流程、任务资源信息的用户界面,进行流程审计和监控,如图7所示。

4 基于JCR的内容管理服务设计

企业和组织中的各类内容和知识资源格式多样,结构复杂,有模式定义的结构化资源如存储在数据库中的表和记录;也有各类文档或文件,属于非结构化资源;而半结构化资源,它们基于XSD、UML或者语义模型定义,不同于关系模型,可以包含结构化和非结构化的子资源,结构灵活。采用了JCR作为统一的资源存储模型,易于扩展和支持任意的内容类型,将各类资源存储在一个原生的支持半结构化和非结构化的内容存储仓库中(Jackrabbit),以便于异构系统间的内容交换。

JCR内容仓库对内容管理提供了一个高层的抽象层,与实际数据存储相独立,因而可以自由选择后端数据库。且支持版本控制、全文检索、访问控制、内容分类、内容元数据定义、内容事件监视等高级服务。

JCR内容仓库一个到多个workspace构成。每个workspace都是一个树状结构,都有一个唯一的树根节点(root node),树上的item(元素)或者是个node(节点)或者是个property(属性),每个node都可以有零个到多个子节点和零个到多个子属性,可表述的内容结构非常灵活。比如以blog内容仓库模型为例,每个root node的子节点都代表了一个blog实体,与这个blog实体有关的数据都存储在bolgEntry节点的属性里,其中一个blogAttachment的property可以存储二进制图片文件,如图8所示。

下面给出基于JCR规范在任意内容节点中嵌入二进制文件的关键代码:

5 流程与内容管理服务的REST接口设计

基于REST风格的面向资源架构,利用了互联网标准的资源标识URL来表示服务和信息资源,消费者和服务者使用HTTP支持的表示格式(如XML、ATOM和JSON等),借助标准的HTTP协议语义(GET,PUT,POST和DELETE)来进行交互,异构系统能够实现基于Web的一致的状态更新。另外,HTTP PUT是幂等的,因此在进行状态更新出错时的事务处理机制也能得到简化,进行安全重试即可。

图9展示了REST接口与系统中各服务间的交互关系,服务之间基于同步调用,异步调用可以利用服务总线来实现,而REST接口对外展现了面向资源的统一视图。

为了提高只读类服务的性能,可以直接利用HTTP缓存机制,在Web服务器前端添加反向代理,既提高了性能,也可以实现负载均衡,简单有效,如图10所示,REST接口的安全通信则可以借助成熟的基于SSL的HTTPS机制来完成。

在实现服务组件的REST接口时,为了隐藏具体实现,简化接口的声明,借助了Java语言的Annotation机制,参考如下代码:

6 结语

REST架构 篇4

1 SVG和Ajax技术

SVG是一种开放标准, 用来描述网络的基于二维矢量图形的一种图形格式, 使用SVG技术能在网页上显示出各种高品质的矢量图形, 如图形、文字、色彩、动画、特效等。且SVG使用XML格式定义图形, 其可扩展性很强, SVG图像在放大或改变尺寸的情况下不会破坏其图形质量。

Ajax在XHTML和CSS基础上, 使用DOM来实现数据的动态显示和交互, 用Java Script绑定和处理所有数据, 利用XML和XSTL语言对数据进行交换与处理, 使用XMLHttp Reques对象读取异步数据。Ajax提供与服务器异步通信的能力, 它在浏览器与Web服务器之间使用异步数据传输 (HTTP请求) , 用户需要的数据可以独立于实际网页, 从服务器端取得并且被动态地写入网页中。同时还可以把服务器以前承担的一些工作任务转交给用户端, 在客户端闲置时来处理这些工作, 以此减轻服务器和带宽的负载, 并极大地缩短了用户等待时间, 提高工作效率。

2 REST风格的Web服务

REST是一种架构风格或者设计原则, 满足这些原则的设计就是RESTful。REST风格架构是为了降低Web应用开发的复杂性、提高系统的可伸缩性而设计的。利用REST, 任何Web上的资源都可以被当作URI提供, 每个资源对应的资源标识符是唯一的, 无论对资源做何种操作都不会改变资源标识符。通过URI客户端应用可以获取资源的表现形式, 同一个资源有多种不同的表现形式, 在服务器获得这些资源表现状态后, 驱动客户端应用程序转变其状态, 于是客户端应用程序随着每个资源表现状态的不同而发生状态转移。通过设计REST式的Web服务方法, ROA (Resource-Oriented Architecture, 面向资源的体系架构) 使URI、HTTP和XML的工作方式跟其他Web应用一样。

REST架构是一种风格明确、简单易用的架构。REST支持直接通过HTTP传输数据, 使用REST体系结构构建Web服务已经开始替代传统的Web服务构建方式。远程过程调用 (RPC) 式的应用是通过自定义接口的方法来抽象WEB服务, 而REST架构采用标准的HTTP方法, 可以增强系统与系统之间的整合能力和提高互操作性。对于分布式的应用而言, 任意给定两个服务请求可以在任何一台服务器上执行, 因为其之间没有存在相互的状态依赖关系, 所以无需对其进行相互协同处理, 其应用很容易在服务器端支持负载均衡。

3 Ajax与Web GIS

传统Web应用模型的运行过程是客户提交给Web服务器一个HTTP请求, 服务器接到这个请求后, 把处理结果返回一个HTML页面给客户端。用户若没有得到服务器的响应的时间里一直处于等待状态, 浏览器由于页面刷新出现白屏。这个过程不断循环直到用户退出, 整个过程是同步的。

Ajax模型与传统模型的不同之处在于服务响应的异步性。这是通过在客户端与服务端之间的Ajax引擎 (Ajax Engine) 实现的。Ajax引擎将客户端的页面分解为数据层、控制层和表现层。AJAX通过Java Script的XMLHttp Requestt对象提供客户端同HTTP服务器异步通信的协议, Ajax可以使页面像桌面程序一样同服务器端进行数据层面的交换。不需要每次都刷新页面, 每次的数据处理工作也不用都交给服务器来完成, 这样既减轻了服务器负担又加快了响应速度, 缩短了用户等待的时间。

在Web GIS应用中, 客户与服务器端需要即时的交互响应和大量的通信, 空间数据以图片形式传输, 因此可以使用Ajax技术开发为基础。在基于OGC标准的WMS服务实现地图服务的方法中, 采用Ajax技术实现客户端与服务器的异步通信, Ajax引擎按用户需求来获取空间信息, 以减少冗余请求和响应对服务端造成的负担, 使整个Web GIS的性能得到提高。

4 基于SVG/Ajax/REST的Web GIS体系架构的构建与实现

4.1 基于SVG/Ajax/REST的Web GIS体系架构

从客户端来讲, Ajax可以提供很好的图形用户界面, Ajax将网页的结构与内容分开, 用户端设计友好的网页界面, 从服务器端获取相应的数据。Web GIS应用中最重要的是数据服务, 如地理数据的搜索与查询、浏览等。而REST提出的客户端缓存思想与Ajax吻合, 结合REST的特性, 将GIS数据服务建成REST风格的Web服务, REST风格的数据资源可以通过HTTP动作获得, 浏览器获取数据与用户操作异步, 加快获取地理数据的速度。且SVG的许多特性应用在Web GIS中可以提供高质量的Web GIS服务。

综上所述, 结合SVG、Ajax与REST风格来构建以数据为中心的Web GIS架构是可行的。

基于SVG/Ajax/REST的Web GIS体系架构如图所示, 本架构分三层, 分别是数据层、服务层和表示层。数据层提供基础数据Web服务, 以REST方式提供给用户所需要的数据, 客户端通过URL远程使用需要的数据。客户端将网页的框架与数据分开, 通过Java Script调用客户端上的Ajax引擎, 异步地向服务器发送HTTP请求, 地理信息中的栅格数据以XML数据格式从服务器端向客户端发送数据, 通过服务器端的URI来识别所需资源 (即数据) , 数据以XML、JSON、SVG等格式传回给客户端Ajax引擎, 再由客户端图像引擎将XML格式数据转换为SVG对象在客户端SVG插件中显示。

4.2 基于SVG/Ajax/REST的Web GIS实现

基于以上服务架构, 对基于Web GIS的海南旅游地理信息系统进行优化。客户端实现地图的显示、预览、缩放及查询功能, 以Ajax的方式与Web应用服务层进行交互, Web应用服务器响应客户的请求。地图服务器根据应用服务器发送的服务请求调用REST风格的Web服务, 处理客户请求和对空间数据进行操作, 数据中心用来提供SVG数据, 包括地理空间数据和属性数据。

系统优化后所实现的主要功能如下:

1) 空间数据可视化与发布

Web GIS中将栅格地图转换为SVG格式, 以SVG图形方式显示系统的地理空间数据, 并支持XML定义图形, 在分辨率变化的情况下图形质量不发生改变, 实现数据的可视化。通过XML传输方式, 把空间图形及属性数据发送到客户端的浏览器上, 客户端通过SVG图像引擎转换为SVG图像供用户使用。

2) 空间数据查询检索

通过Ajax实现服务器与浏览器的交互, Web GIS可以实现对图形及属性数据的查询检索, 并远程操作这些数据。查询分为两类:属性查询和空间查询。在属性查询中用户可以根据空间对象的文字性属性值快速查出地图中符合条件的空间对象的具体位置, 空间查询可以根据空间对象的空间属性值快速的在地图中确定符合条件的目标。

3) 空间地图管理

提供给用户浏览的地图操作功能, 包括地图的缩放、漫游、点选、区域选择、鹰眼、全景、图层控制等地图操作。通过Ajax/REST模式用户可以更加快捷、方便地操作地图。利用AjaxControls的Map Control (地图控件) 、Toolbar Control (工具条控件) 、Pan Tool Control (地图漫游控件) 、View Entire Tool Control (全图显示控件) 、Quick Zoom Out Tool Control (地图快速缩小控件) 、Quick Zoom In Tool Control (地图快速放大控件) 等实现对地图的操作。

5 结论

通过对SVG、Ajax技术及REST的研究, REST特性的Web服务更适应于GIS在Web上提供数据服务;把REST与Ajax的优势相结合, 使用Ajax调用WCF Web Services一样也可以提高Web用户的体验;SVG是基于可扩展标记语言格式的, 便于在网络发布、传输空间数据, 同时有跨平台数据量少、传输效率高的优点。因此构建SVG/Ajax/REST的Web GIS体系架构有如下特点:1) 访问速度快。由于Ajax的异步通信能力, 能实现整个页面不用刷新也能更新页面的效果, 从而减少了从服务器端下载数据的数量, 提高了响应速度。2) 可伸缩性强。利用当前Web基础设施, 多个客户与GIS Web服务交互, 不会导致网络负载的明显增加。3) 良好的互操作性。基于REST原则构建的Web GIS强调服务间的通信协议, 具有松散耦合的特点, 因此有助于GIS互操作的实现。4) 降低开发成本, 提高了Web GIS的运行效率。

参考文献

[1]孙鸽.郭朝珍.基于SVG的Web GIS空间分析系统的研究与实现[J].小型微型计算机系统, 2012 (5) .

[2]李学义, 李岩.SVG在线空间自相关分析方法及其应用[J].地理与地理信息科学, 2012 (5) .

[3]周春峰.基于Flex_REST的Web GIS研究[D].阜新:辽宁工程技术大学, 2011.

[4]夏浩波, 徐杏芳.Ajax在Web GIS中的应用研究[J].长江大学学报:自科版, 2008 (4) :307-308.

[5]毛峰.基于REST风格地理空间信息服务的Web GIS设计与实现[D].杭州:浙江大学, 2010.

【REST架构】推荐阅读:

企业架构05-24

统一架构06-23

发展架构06-28

模块架构07-01

集成架构07-03

架构师07-11

存储架构07-25

分层架构07-28

混合架构07-29

信息架构08-10

上一篇:西瓜田杂草防治技术下一篇:放线施工