可是b/s体系结构也不是万能的,由于其工作机制的限制,在某些领域,以前采用b/s体系结构就很难实现要求功能。典型情况下, web页面和大多数web应用使用了一种称为请求/响应的工作机制:
o 使用者点击一个超级链接,或是提交一个表单等。
o 浏览器向服务器发送请求。
o 服务器启动一个会话。
o 服务器经过处理后,把数据发送给浏览器。
o 服务器关闭会话,浏览器显示数据。
我们可以看出,使用b/s体系结构设计软件时,无法回避两个限制:被动性与滞后性。首先,使用者必须通过浏览器请求,服务端才能进行响应,在某些领域,如及时监控中, 需要服务端在特定情况下,主动发送数据给客户端,而使用传统b/s体系结构技术,实现该目的就很困难。其次,服务端每次请求都必须启动一个会话,加上服务端处理与网络传送所消耗的时间,这自然就形成了客户端的滞后性。
也许有些读者,会提出异议,聊天室就是采用b/s体系结构的,为什么服务端能够每几秒钟,就把聊天室里各人的发言发送过来呢?其实,聊天室还是采用b/s体系结构的请求/响应机制,只不过客户端每过几秒就发送一次请求而已,好奇的读者可以看一下聊天室网页的源码,可以在源码的头部找到这样一条语句:
它的作用就是每2秒钟发送一次请求。
在设计软件时,往往要对工业生产系统进行及时监控,随时了解生产系统的运行情况,可是在以前,如果采用web方式就很难保证及时性,同时,每几秒就给服务端发送请求,既浪费网络资源,又给系统带来额外负担。如果硬要采用b/s体系结构,当然也有方法,采用applet,由于java安全的限制,必须对每台客户端进行安全配置,可这样与c/s体系结构又有什么不同了呢,已经丧失了b/s体系结构的“瘦客户”的优点。
可自从flash 5发布后,其中的xml与xmlsocket技术很好地解决了b/s体系结构被动性与滞后性的限制,同时没有了java的安全限制,新的flash mx中对此又有了很大的增强。本文就将介绍利用xml与xmlsocket技术对生产系统进行及时监控,同时为了测试方便,介绍了一个模拟服务端的程序。(本文所有介绍,都将依据falsh的最新版本flash mx。)