Welcome

首页 / 软件开发 / 数据结构与算法 / 使Web 2.0趋向成熟

使Web 2.0趋向成熟2010-10-28 IBM Roland Barcia解放思想

应用程序在不断演化当中,基础架构和最佳实践也是。图 1 是在 Java™ EE 中常见的一个经典 Web 架构例子。在这个架构中,应用程序服务器被看作既执行业务逻辑又处理 Web 事务。除了执行事务逻辑之外,运行在此架构中应用程序服务器上的应用程序必须:

生成 HTML。

组合 HTML 布局。

处理一个 Web 页面向另一页面的流动。

图 1. 经典 MVC

Struts 和 JSF 这类架构提供设备管理。对于如今的许多应用程序来说,这类架构仍然有重大作用,但是对这个应用程序模型存在负面影响:

这些典型的应用程序依赖于 HTTP 会话状态。久而久之,这将导致 HTTP 会话变得十分庞大,因此影响应用程序的可伸缩性。会话状态越庞大,对可伸缩性和执行能力的影响越大。

服务器的内存占用通常比较大。很多时候, 框架维护应用程序视图的内存副本,例如,创建维护 UI 树所需对象和任何请求限定对象的一个典型的 JSF 应用程序。这会随着 UI 对象的垃圾收集而增加 CPU 周期。

紧耦合开发是这种方法的另一个劣势。Web 页面开发人员与创建业务逻辑的开发人员的技能不同。Web 开发人员往往在语言、HTML、CSS 和脚本呈现方面较为娴熟。他们常常使用 WYSIWYG 编辑器、脚本编辑器和浏览器调试工具之类的工具。他们经常为实现 Web 页面可视化而进行快速变更,且频繁四处移动。业务逻辑开发人员通常精通数据访问、消息传递、事务处理和整合,且精于使用各种工具。

由于浏览器现在可以托管富互联网应用程序了,它会是一个一流的服务使用方。Dojo 等工具包启用了一整套 UI 工具。 浏览器现在可以管理这些事务:布局管理、组件之间的 Web 流、MVC、Web 状态和其他 Web 事务。应用程序服务器现在可以处理数据呈现、执行业务逻辑和业务流,且变得越来越无状态和可伸缩。图 2 展示了一个现代风格的 Web 2.0 应用程序。

图 2. 现代 Web 2.0 架构