惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
S
Secure Thoughts
月光博客
月光博客
美团技术团队
雷峰网
雷峰网
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Forbes - Security
Forbes - Security
W
WeLiveSecurity
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
G
GRAHAM CLULEY
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Last Week in AI
Last Week in AI
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
T
Tor Project blog
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
罗磊的独立博客
The Register - Security
The Register - Security
Blog — PlanetScale
Blog — PlanetScale
T
Threat Research - Cisco Blogs
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
B
Blog
腾讯CDC
Microsoft Azure Blog
Microsoft Azure Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Engineering at Meta
Engineering at Meta
Latest news
Latest news
IT之家
IT之家
D
DataBreaches.Net
博客园 - 司徒正美
N
Netflix TechBlog - Medium
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - Flyingis

微博开通 ESRI UC 2010开幕视频 & Jack出场 地图缓存技术的标准 2010 新年招聘信息--学生实习版 2010 新年招聘信息--正式员工版 WGS 1984 Web Mercator 对于在线地图服务的意义 Geoprocessing scripts 利用多核进行计算 浅尝辄止 Parallel Python 将地震空间数据转变为专题地图 解析USGS网站页面中的地震空间数据 空间数据与内容的共享 ESRI UC 2009 见闻和感触 ArcGIS 9.3/9.3.1 客户端 API 更新信息--2009年5月 如何改善软件的用户体验 之 颜色与UI ESRI中国(北京)招聘技术工程师 ArcGIS 9.3.1 关键更新 解决 File GDB 文件锁定的问题 ArcGIS Server 开发系列(七)--物流配送 ArcGIS Flex API 中的 Flex 技术(五)--技术列表
RIA+REST,琴瑟合鸣
Flyingis · 2009-05-17 · via 博客园 - Flyingis

    Flyingis

    在当前IT概念名词漫天飞舞的年代,REST+RIA已经开始逐渐成为一种开发应用模式的标准,并越来越多的在各种实际业务中得到应用。

    记得第一次看到REST的身影,是在InfoQ上的一篇介绍,随后又翻阅了后面的参考文章和Developerwork上一些资料,甚至随手翻了翻Roy博士的论文。所幸,在不少人还在体会REST到底是何方神圣的时候,我拿到并安装了最新版的ArcGIS Server 9.3,里面新增了一种新的GIS服务:ArcGIS Server REST服务。有了这样的一个落地的基于REST的服务,所有对REST基础概念的疑惑都迎刃而解:为所有“事务”定义ID;将所有“事务”链接在一起;使用标准方法;资源多重表述;无状态通信(摘抄自InfoQ)。所以,学习开发或开发理念,看文字没有看图片快,看图片没有动手操作快,动手操作没有导师亲自指导快,对于REST的学习,我对生涩的文字概念的理解时间被压缩到了最小。

    ArcGIS Server REST服务的组织结构:

    今天看到一则新闻,纽约时报通过Times Developer Network构建了一个基于REST的API,请求API之后将得到XML和JSON格式的返回数据,这些API包括


Article Search API:能够搜索从1981年到现在纽约时报上的文章,可以获取标题、摘要及相关多媒体的链接
Best Sellers API:能够获取纽约时报所有的最佳业绩数据,包括特定销售商的等级历史  
Campaign Finance API:根据美国联邦选举委员会的备案获取总统选举的捐助及花费数据
Community API:获取NYTimes.com用户发表的评论
Congress API:获取美国议会投票数据,包括具体议院和参议院议员的信息
Movie Reviews API:获取到评论和纽约时报评论家的链接以及根据关键字搜索电影评论
New York State Legislature API:获取纽约州参议院及大会的议员和委员会信息
Real Estate API:获取纽约市房地产及销售情况的聚合数据
Times Newswire API:获取最新时报文章的链接和元数据
TimesPeople API:获取时报读者的信息及活动数据
TimesTags API:获取与查询信息匹配的标准化术语,同时由时报字典进行过滤


    微软同时发布了纽约时报Silverlight工具集,这和ArcGIS各种客户端API设计方法是类似的,过去大家包括我曾抱怨ArcGIS技术总是落后IT技术发展,如COM问题,这次,至少是在第一时间(2008年上半年)提供了RIA+REST完整的技术体系,目
前在ArcGIS Server REST服务基础上可以使用的客户端技术有Javascript、Flex、Silverlight,大家可以到官方网站上了解:
http://resources.esri.com/arcgisserver/index.cfm?fa=applications

    下面以treenode在javaeye上总结的RIA+REST架构的优点,分析ArcGIS Server中的RIA+REST。

    1.将表现层与后台彻底分离

    从N年前讨论MVC开始就在讨论解耦、松耦合的设计方法,ArcGIS Server REST将GIS基础和核心功能全部进行了封装,并以服务的方式提供给客户端,如常见的地图展示、图层信息访问、空间几何查询、高级分析功能(网络分析、地理统计、空间分析统计、水文分析、地址编码、逻辑网络、坐标转换等)等等。这些全是GIS相关的功能,客户端无论是Javascript、Flex还是Silverlight无需关注GIS功能的实现,只用专心于人机交互和用户UI设计。

    2.方便程序员和美工协同开发

    对于Flex和Silverlight开发来说,这种界线更为明显,如微软专门为设计人员提供的Express Blend,程序员只需将精力集中在基于vs的代码编写上,而这些代码无需关注GIS功能实现的方法,只需要完成对ArcGIS Server REST服务的调用即可,结构一目了然。

    3.有利于采用快速原型的开发方式

    没有任何后台逻辑之前,表现层就可以开始设计,FlexViewer无疑是最好的说明,ArcGIS Silverlight API也将拥有类似的框架。

    4.合理分配负载,减轻服务器压力

    这不是GIS的特点,是Javascript、Flex、Silverlight的能力,用GIS应用中的一个典型用例说明:通过不同颜色渲染出全国各省的人口数量。这是一个专题图生成的功能,过去常用的方式是由GIS Server进行处理,然后将处理结果生成一张图片,通过虚拟目录地址返回,10000个并发的时候服务器肯定死掉了,然而基于RIA+REST的应用架构,REST负责将需要的数据传回客户端,压力较大的渲染工作放到客户端进行了,有效减轻了服务器的压力,用户体验更佳,视觉效果更好。

    再如下面H1N1例子(在线演示),客户端要绘制上万个点,如用Soap API去动态绘制,速度会慢的难以忍受,而RIA做到了。

    5.提高用户体验

    这还用多说吗,RIA最直接的效果就是良好的用户体验,事实证明专业GIS用户更喜欢基于RIA的GIS应用,大众GIS应用如Google Map、MapABC也都推出了各自的Flex API。

    任何技术没有100%完美,但是在GIS行业和更加广阔的IT技术应用中,RIA+REST在很多方面的确做得比前辈们更好。