RIA+REST,琴瑟合鸣

简介:
    在当前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在很多方面的确做得比前辈们更好。

本文转自Flyingis博客园博客,原文链接:http://www.cnblogs.com/flyingis/archive/2009/05/17/1458953.html,如需转载请自行联系原作者

相关文章
|
5天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1131 2
|
4天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
652 11
|
14天前
|
人工智能 运维 安全
|
5天前
|
弹性计算 Kubernetes jenkins
如何在 ECS/EKS 集群中有效使用 Jenkins
本文探讨了如何将 Jenkins 与 AWS ECS 和 EKS 集群集成,以构建高效、灵活且具备自动扩缩容能力的 CI/CD 流水线,提升软件交付效率并优化资源成本。
314 0
|
12天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
830 23
|
5天前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。