快速业务通道

Java EE:迎合Web 2.0 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
尤其在使用 BEEP 时),并且要生成这些消息,还需要使用 Web 服务或其他方法访问部署在其他组织内的资源。此外,BEEP 和 Stream Control Transmission Protocol (SCTP) 这样的传输协议在 TCP/IP 连接之上还需要建立一些同步的逻辑连接,这使线程管理问题变得更加严重。

要实现流式场景,Web 应用程序必须摒弃标准的 Java EE 模式和 API。因此,Java EE 很少用于运行 P2P 应用程序或流视频。对于经常使用 Java Connector Architecture (JCA) 连接器实现专有异步逻辑的协议,常常开发自定义组件来处理(正如后文将介绍的,新一代 servlet 引擎也支持使用非标准接口处理 Comet 模式。然而,就 API 和使用模式而言,这种支持与标准的 servlet 接口截然不同)。

最后,回想一下 Java EE 的一个基本原理,即对网络基础结构进行优化可以缩短事务持续时间。但是,对于现场直播的视频提要,提升网络基础结构的速度丝毫不会减少请求的持续时间,因为视频流是边生成边发送给客户机的。对网络基础结构进行优化只会增加流的数量,从而支持更多的客户机并以更高的分辨率处理流。

异步方法

要避免我们讨论的这些问题,一个可行的方法就是在设计应用程序时将延迟纳入到考虑事项中并使用由事件驱动的异步方法实现应用程序。如果应用程序处于空闲状态,则不会占用线程这样的有限资源。通过使用异步 API,应用程序将对外部事件进行轮询并在事件发生后执行相应的操作。通常,这种应用程序被分为若干个事件循环,每个循环都有自己独有的线程。

事件驱动异步设计的一个明显优点就是,如果大量等待外部服务的操作之间没有数据依赖关系,则可以并行执行这些操作。即使根本没有发生并行操作,事件驱动的异步架构也提供了优于传统同步设计的强大的可伸缩性。

Java EE:迎合Web 2.0(4)

时间:2011-01-26 IBM Constantine Plotniko

异步 API 优点:概念证明模型

可以通过一个简单的 servlet 流程模型演示异步 API 带来的可伸缩性优势(如果您已经确信异步设计能够满足 Web 2.0 应用程序的可伸缩性需求,那么可以跳过本节内容,直接了解可用来解决 Web 2.0 / Java EE 问题的 解决方案讨论)。

在我们的模型中,servlet 流程对到来的请求执行一些处理,对数据库进行查询,然后使用从数据库获取的信息调用 Web 服务。最后,根据 Web 服务的响应生成最终的响应。

模型的 servlet 使用两种类型的资源,并伴有较高的延迟。在逐渐增加的负载之下,这些资源的特征和行为都互不相同:

数据库连接。这种资源通常以 DataSource 的形式用于 Web 应用程序,它提供了数量有限的连接,通过这些连接实现同步处理。

网络连接。这种资源用于编写对客户机的响应并调用 Web 服务。直到现在为止,这种资源在大多数应用服务器中都受到限制。然而,新一代应用服务器开始使用 nonblocking I/O (NIO) 实现这种资源,因此我们可以根据需要使用任意数量的同步网络连接。模型 servlet 在以下几种情形中使用这种资源:

调用 Web 服务。尽管目标服务器每秒可以处理的请求的数量是有限制的,但是这个数量通常都很高。调用持续时间取决于网络通信量。

从客户机读取请求。我们的模型忽视了这一开销,因为模型假定使用了一个 HTTP GET 请求。在这种情形下,从客户机读取请求所需的时间不会添加到 servlet 请求持续时间中。

向客户机发送响应。我们的模型忽视了这一开销,因为,对于较短的 servlet 响应来说,应用服务器可以在内存中缓冲该响应,然后再使用 NIO 将它发送给客户机。并且我们假设这个响应非常短小。在这种情形下,向客户机发送响应所需的时间不会添加到 servlet 请求持续时间中。

让我们假设 servlet 执行时间被划分为如表 1 所示的几个阶段:

表 1. Servlet 操作时

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号