Monday, August 6, 2007

在线数据服务托管

  在线数据服务托管的理念是把数据存储和客户的具体应用分离,由第三方提供数据存储的基础设施,并将数据检索和存储服务按每月使用流量进行收费。
  先来看看这块市场的老大,来自Amazon的S3数据服务托管的价目表吧:

Storage
$0.15 per GB-Month of storage used

Data Transfer
$0.10 per GB - all data transfer in

$0.18 per GB - first 10 TB / month data transfer out
$0.16 per GB - next 40 TB / month data transfer out
$0.13 per GB - data transfer out / month over 50 TB

Data transfer "in" and "out" refers to transfer into and out of Amazon S3.
Data transferred between Amazon S3 and Amazon EC2 is free of charge

Requests
$0.01 per 1,000 PUT or LIST requests
$0.01 per 10,000 GET and all other requests*
* No charge for delete requests

Storage and bandwidth size includes all file overhead.

  我不是这一块的业内人士,不清楚它的定价合理与否,也不是很清楚国内是否已经有了模仿者。不过对于消费者来说,它的按需收费应该还是很受欢迎的,用多少算多少,大大降低了一次性投资风险,因此会特别受初创型互联网企业的欢迎吧。

  除了S3,还有以下已知的类似服务可以研究一下:
  从技术角度来说,以上所有服务都支持类似REST方式的数据访问API,并通过JSON/XML格式交换数据。对于他们在数据安全性方面的解决方案,个人比较感兴趣,正打算着啥时候再研究讨论一下吧。

by William Cui 崔伟毅

Labels: ,

Monday, May 7, 2007

简洁的REST架构风格——Web本位回归进行时

  五一长假就要结束了,大家有没有休息好呢?Have you had a good REST?(但愿大家不会像我前几天那样——公司里一些“十万火急”的事情使我忙碌得连写这个Weblog的时间都很难挤出。)
  过去的几天里,我尝试着用REST的风格对之前的一个小项目进行了架构方面的重构,有了一定的收获。于是,在今天这篇文章里,我也想简短地谈一下近期比较热门的REST架构风格,一方面想整理一下自己的思维,另一方面也想和大家交流一下这方面的实践和认识,以抛砖引玉。
  简单回顾一下,REST(Representational State Transfer)是 Roy Fielding 博士在2000年他的博士论文中提出来的一种基于网络的软件架构风格。该架构的具体定义还可参见Wikipedia维基百科全书)上的相关条目。
  我理解的REST本质是把所有的资源应用协议的状态转变通过URL来显性地表示出来,如果把整个Web看作是一个巨大的状态机,那么每一次对URL的访问请求都相当于是一个外部输入,而每个请求都会有一个相应的返回结果,即该Web资源根据外部输入从一个状态转变为另一个状态。
  我猜想这个本质可能也就是早期Web的设计初衷,只是我们从传统的设计开发里沿袭了过多的所谓“最佳实践”模式,从而把东西越做越复杂,也诞生了一系列技术标准的怪物诸如:COBRA、COM/DCOM/COM+、RMI、IIOP、EJB、WSDL、SOAP和XMLRPC等等。我以前写的一篇文章“Offline支持——Web的下一个热点!”也曾讨论过Web技术历史发展方面的话题。
  和以上这些技术标准相比,REST架构风格的优势就在于其简洁性,因此越来越多的“Web 2.0”网站和软件开发供应商把他们的业务服务往REST架构风格上面靠,以努力使得Web资源可编程共享化、Web服务的API更URL化(与WSDL相比 )……
  另有以下几点补充说明:
  • 和现在的基于HTTP的Web服务一样,REST的所有操作请求也都是无状态的,这样就很容易做分布式、集群应用,服务器端的压力可以非常易于平衡,其扩展性良好
  • 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,因此REST是一种Web本位的回归
  • 由于所有资源都由URL制定的,这样REST架构风格就省掉了类似UDDI“服务发现”机制,因此REST也被称为面向资源的架构(Resource-Oriented Architecture),基于REST架构的设计开发方法也有被称为URL驱动(URL-Driven)的设计方法
  最后,附上几个REST方面的发展动向以及一些进一步的参考资料:
  还是接着文章的开头,祝大家Have a good REST哦!欢迎指教,谢谢!

William Cui 崔伟毅

Labels: