上次谈到SnapLogic的分布式ETL产品时,提到他使用一种叫做REST的风格,有人愿意叫他作为风格,或者叫他做思想,我想这些词都不会给你一个很明确的概念。但只要明白,这不是一种语言,也不是一种具体技术工具。我是第一次看到这个名词,于是找了几篇介绍看看,结果还是似懂非懂。后来看snaplogic的demo,稍微有点感性认识。但在这里之所以说这种技术,还是因为他可能是一种适合于BI的底层技术。据说,他的强项就在于数据服务。
他的基本思想,是所有的服务通过统一资源标识(URI),他将所有的服务都当作"资源"看待,通过类似于
http://host.com/product/type的形式来访问特定类型的产品数据。当然,这个URI的形式得由应用设计者来规范,道理是如此的。这样看,似乎只是用一种方式可以对数据进行命名而已,但我想这点很重要。在很久以前,我曾经想过应该存在一种"数据块"的东西,他比记录的粒度要粗,而比一个表的粒度要细。比如"某个部门的员工",这就是一个数据块。它是可以被命名的,因为只有没命名,才容易被管理,被跟踪。这里,URI就是对数据块的命名。
为什么叫做REST?从他的全称,叫做表述性状态转移(REpresentaional State Transfer),你能看出什么来么?我没看出什么,只是觉得有些晕。这真是一个很难听且很难理解的名字,虽然简写的名词很酷,休息一会儿。
我写这篇文章的目的也算是帮助自己来理解一些这个概念。REST通常是跟web service联系在一起的,显然,他的URI风格非常适合将很多服务、数据分散在不同的主机,而这也跟我们现在的数据状况类似,分散在不同的地方。主要你将自己的数据通过URI暴露出来,就能够被其他人访问,其他人通过REST风格的访问可以对数据进行增加、删除和修改。当然,将数据整合起来,形成一个新的数据资源,也就是数据仓库,当然也是其中一种用途。那将是个开放的世界,所有的资源可以互联互通,遵循一些公共的标准来访问(HTTP)。
BI的服务,跟数据密切相干,不论是ETL,还是分析,还是可视化,都需要访问数据。基于这样的架构风格,我们可以将数据当成一种资源存在,一张报表所需要的数据,用一个URI指定,一个趋势图所需数据,由一个URI指定。而可视化的功能被当作一种公共的服务,也同样被某个URI指定。于是,将两者绑定起来,就能实现一张报表,或是进行OLAP分析。但好处是实现了数据、展现的分离,这是基本的面向服务架构的思想,而REST则提供了一种进一步的手段。
2008/7/11 Qing <
happ...@gmail.com>:
...从架构上,snaplogic基于了一种叫做REST风格的架构,将所有的数据服务当作统一资源标识(URI)...