轻量级开发的成功秘诀,第 9 部分: 基于 Continuation 的框架
2009-11-11 00:00:00 来源:WEB开发网仅此一项较高的抽象就能为 Web 编程带来这样巨大的飞跃,这真是难以置信,但事实的确如此。如果 Java 语言能为 continuation 提供内置支持,那我们最好全部采用这种方式编写代码。实际上,某些 Java 框架(如 Apache Cocoon、RIFE 和 Spring Web Flow)都在尝试使用这一模型,其取得的成就各有不同,有些框架采用了像状态机这样的技术(在 RIFE 和 Spring Web Flow 中),有些框架采用了其他语言(如 Apache Cocoon 中的 JavaScript 引擎)和字节码增强(在 RIFE 中)。这些技术的确改进了典型的 Java 解决方案,但仍不能与其他语言中最佳的服务器带来的用户体验相提并论。
continuation 的缺点
当然,天下没有免费的午餐。就使用 continuation 而言,也有三四种常见的反对意见:
会话状态 在某些方面,自动化会话管理使得在会话中存储更多数据变得更加容易。只需声明一个实例变量,将其提交给会话即可。为了可以更容易地存储会话数据,开发人员可能要存储更多的状态数据,从而限制了可伸缩性。当然,还要额外付出高级语言的代价。可伸缩性 保存调用堆栈的代价高昂。而且保存许多调用堆栈是禁止的。有趣的是,如果仅仅存储在各用户之间有所不同的堆栈部分,即可将所存储的堆栈数据数量限制在合理范围。这种方法称为部分 continuation。难以理解的 URL 如果为各用户请求存储了一个难以理解的标识符,那么 URL 不可能美观易读。可以首先显示 URL 中美观可读的部分,后附难以理解的标识符,通过这样的方式缓解这一问题。这正是 Amazon.com 采纳的办法,看上去十分有效。但相对而言,局限性是比较严重的。
或许天下没有完全免费的午餐,但 continuation 服务器可为您带来近乎完美的东西,帮助您节省大量资金。我相信在 5 年之内(或许还会更快),我们都会用上某种形式的 continuation 服务器。也许会出现一种流行的 Java 派生技术,也许会是因 continuation 服务器而展露头角的其他一些语言。
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››轻量级数据交换格式 JSON轻松入门
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››成功站长应具备的12个良好心态(上)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››成功开发iPhone软件的10个步骤
- ››开发移动 Web Ajax 应用
- ››开发者眼中的iPhone与Android
- ››成功的站长 注重文章的原创性和与内容为王
- ››开发者或想使用的10个Android2.2新特性
更多精彩
赞助商链接