让GIS 也ROR吧

上一篇 / 下一篇  2008-08-14 09:23:57

查看( 66 ) / 评论( 3 )
事先声明本人的ROR经验很少,所以以下所有文字都不过是YY而已。

从今年的情况看,ROR的热潮好像消退了很多,并且即使是在去年最热闹的时候,GIS社区也极少也相关的讨论。我个人的理解,大家对于GIS项目中使用ROR并不感冒。原因应该也很简单:

  1. 还很少有在企业项目中使用ROR的先例,好吧,我们的GIS项目大部分都算做企业项目吧,既然别的项目还没用过,我们也没必要当这个出头鸟。
  2. GIS平台的支持,主流的GIS平台都没有对ROR的支持,你要我怎么用?
好吧,这两个原因已经足够让我们远远的离开ROR了,当然还可能会有其他的原因,比如:性能问题,据说ROR的性能不好。嗯,GIS项目是需要高性能的。

那么我们真的不能尝试下ROR吗?传统的企业项目没有使用过的技术,为什么我们不能先尝试了?难道GIS行业就始终只能跟着别人走吗?

来看看ROR能给我们带来什么吧:

         快速开发,别跟我说你不需要快速开发!
  1. ActiveRecord,不知道有多少GIS项目会使用到Hibernate这种ORM框架,我想可能不多,按照我以前的想法,GIS项目中牵扯到的对象持久化操作很有限,简单的DAO,Service的分层已经足够好了,没有必要引入Hibernate这种东西。但是真的是这样吗?ActiveRecord简单明了的使用方法给出了另一种可能,如果更简单,为什么不用?那么潜在的问题是什么?ActiveRecord缺少对空间数据的支持,也无法表达空间对象之间的拓扑关系。
  2. ActiveControl和ActiveView,用Java做开发的,肯定都使用过WebWork或者Structs这样的MVC框架,那么看看ActiveControl和ActiveView吧,它们更优雅。
  3. Google一下吧。
其实上面都是废话,到底能不能使用ROR都还打着个大大的问号,来看看几种不同的GIS平台下的情况吧。

  • ArcIMS+ArcSDE
这是目前最常见的搭配。那么我们面临的问题其实很简单,就是IMS和SDE的访问。
                             IMS的访问可以通过提交ArcXML的方式进行,那么我们需要自己实现一个库(我尝试了这个工作,不过我不是个有耐心的人,这个其实很繁琐)。
                             SDE的访问,也可以调用C的API实现。
                             很明显的一点如果是这种GIS平台的话,使用ROR完全是吃力不讨好,完全无法享受到快速开发的优点。
                   Server是趋势,是未来的主流,不过很遗憾的是Server也还没有对ROR的支持,有没有支持的计划,也只有天知道。但是Server有SOAP,9.3中还会有REST,而ROR作为SOAP或者REST的客户端完全没问题,当然SOAP的使用也会导致程序的开发复杂繁琐。那么REST了,如果是REST了?非常非常期待9.3的REST实现。
  • WMS地图服务+空间数据库(Oracle Spatial/PostGIS/SQL Server Spatial)
                   WMS地图服务的访问不会成为问题。ROR对Oracle和Postgresql的支持也足够好,通过OGC Simple Feature Access规范也能够完成我们需要的大部分GIS分析查询功能,数据的更新和维护也足够胜任。另外这里我们可以完全享受到ActiveRecord的好处,我们所需要做的就是对空间数据做一点处理,比如WKB或者WKT格式数据和空间对象的转换。

     
      看看上面三种情况吧,如果不使用ArcGIS,完全可以去拥抱一下ROR。

还会有什么问题?性能问题?大多数GIS项目的并发用户数都很少能超过300的吧?

写了这么多,回头看看,才发现写的果然都是废话。



——————————————————————————————————

补充一点,个人觉得ROR之所以可以快速开发,ActiveRecord最为关键,对于利用ROR来构建GIS,最关键的也是如何利用好ActiveRecord,如果让ActiveRecord支持空间数据,并能支持常用的空间关系表达(通过扩展Model对象应该可以实现),用ROR开发GIS也会是非常不错的选择。




TAG:

littlelion发布于2008-08-14 11:42:11
记得看过测评 其实Ruby Python之类的效率并不慢
其实现在看来 GIS行业的技术相对来说还是很保守的
yishh的个人空间 yishh 发布于2008-08-14 18:01:36
补充一点,个人觉得ROR之所以可以快速开发,ActiveRecord最为关键,对于利用ROR来构建GIS,最关键的也是如何利用好 ActiveRecord,如果让ActiveRecord支持空间数据,并能支持常用的空间关系表达(通过扩展Model对象应该可以实现),用ROR 开发GIS也会是非常不错的选择。
littlelion发布于2008-08-15 09:21:18
不知道什么时候GIS也来SaaS一下
我来说两句

(可选)

日历

« 2009-01-08  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 2231
  • 日志数: 8
  • 建立时间: 2008-01-24
  • 更新时间: 2008-12-02

RSS订阅

Open Toolbar