基于JMX通知框架的AJAX深度开发(4)

2008-02-23 07:52:12来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  九、Servlet格式化XML响应

  为了使浏览器把管理警告显示给用户,需要使用XMLHttpRequest来请求管理状态。

  当浏览器发送请求时,该servlet使用MBean助理来检查警告状态并且,如果一警告可用,即构建一个XML文档作为响应。

  如果没有返回状态,那么响应状态被设置如下:

response.setStatus(HttpServletResponse.SC_NO_CONTENT);


  否则,该文本/XML响应类型被设置为:

response.setContentType("text/xml");


  列表2显示了完整的servlet方法。

  当该servlet被调用并且返回XML内容时,控制台应该打印出:

Received alert: alert.broadcast
<message>
<status>1</status>
<textBody>
<![CDATA[System Down in 10 Minutes]]>
</textBody>
<callBack>10000</callBack>
</message>


  十、容量建模和安全性

  因为AJAX以有趣的方式开通了架构,所以存在两个关键方面要求加以考虑:

  ·容量建模

  ·安全性

  当然,缓冲和响应消息类型(XML或文本)也都是比较重要的。

  十一、容量建模

  支持AJAX的丰富的客户端不必再如以前那样频繁地提交请求。但是随着XMLHttpRequest异步地执行在浏览器端,向服务器发出的HTTP请求的数目也会相应于重试间隔而有所增加。

  ·再试间隔(思考时间)=20秒

  ·连接的用户数=5000

  ·事务每秒(TPS)=5000/20=250

  我们期望一个由HTTP用户基所产生的额外的每秒能够实现250次的请求(事务)。

  当然,这依赖于在服务器上的这些请求所完成的任务来提高响应时间上的潜力。在我们的实例中,每个请求必须查找MBean属性并且格式化一个XML响应,但是该响应很小而且MBean处理是在本地内存中。由于每个Web服务器线程每秒能够处理大约200个GET请求,以及用户横跨一个大约运行着200个线程的J2EE服务器来请求平衡加载,所以增加的加载并不太重要。

  还应注意,当建模AJAX架构时,增加的加载数可能随着带宽的减少而有所偏移。

  十二、安全性

  假定你只要求WebUser组中的用户能够存取该admin servlet,情况会怎样呢?

  如果仅是被认证的用户才能存取admin servlet,那么XMLHttpRequest将以该用户身份运行-如果该用户已经认证。

  例如,一旦用户Joe登录进这个应用程序,并且Joe是一个WebUser组的成员,那么XMLHttpRequest将能激活admin servlet。

  把下列代码添加到admin servlet将会确认被认证的主题,并分别返回true和Joe:

request.isUserInRole("WebUser");
request.getRemoteUser();


  十三、缓冲

  一些用户已经发现IE会缓冲来自AJAX请求的响应;这可能是由于浏览器/页面设置,但是一个强制性的解决办法是为该URL加上时间印戳:

var urlstr = "./admin?reqId=0&ts=" new Date().getTimeStamp();


  十四、用不用XML?

  一些AJAX设计者欣然弃用XML而发送以普通文本形式的响应:

response.setContentType("text/plain");


  这明显要依赖于你的客户端需求和客户与所需求的数据之间的耦合程度。一个简单的文本响应对于一个文本警告就足够了;然而,本文中XML模型的优点在于,响应数据可以被进一步详细描述从而提炼状态和状态相关的数据。本文向你展示了怎样分析一更复杂的响应-客户可能必须编码以进行接收之。

  十五、 结论

  AJAX代表了一些新型的架构机会,然而它们不应该被丰富的客户端功能所遮蔽。本文在衡量了AJAX所提供的优点的同时,也强调了其对于容量和安全方面的技术要求-这是使用这种新型技术所必须要求的。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Ajax的宣传及现状:改变门户体验的技术

下一篇:在AJAX开发中集成数据库技术