【论文摘要】:服务器推技术(pushlet)可将变化的数据主动地推送到客户端的浏览器中,客户端利用网页开发技术将服务器传送过来的数据直接更新到浏览器的网页中,实现了网页的局部更新,而不再需要重载页面或重新别新java小应用程序的全部内容,达到了减少服务器的数据传送负载,减少网络资源消耗的目的。
1、引言
”服务器推”(pushlet)技术产生之前,人们通常采用”拉取”(pull)的方式搜寻信息,比如利用网络搜索引擎搜索信息。但是,这种方式经常会使用户陷人信息查询结果的低效益和面对”信息垃圾”的尴尬局面。因此,人们迫切希望信息服务者能够通过某种通知机制主动地提供信息,同样信息服务者也非常迫切地希望能够将信息及时、主动地发送到感兴趣的用户那里,而不需要用户自己努力的寻找。
pushlet技术实质上定义了一种信息服务框架,用户根据这个框架可以开发自己的应用程序软件。这种软件的特点是可以根据用户定义准则,自动搜集用户最可能发生兴趣的信息,然后适时地传递到订阅的客户端。
2,”服务器推”(pushlet)技术基本原理
pushlet采用jsp/semlet技术,把数据直接从服务器的java对象推到客户端浏览器的动态html(hypertextmark2uplan-guage)页中,而不使用applet或active!插件。利用pushlet推技术,服务器可主动地更新客户端的内容。pushlet技术框架如图1一1所示。
pushlet是基于http流实现的,与下载页面之后关闭http连接的做法不同,pushlet将一直保持http流连接,并通过此连接将新数据源源不断地推送到客户端opushlet的基本思想是:在客户端网页主框架中包含了控制层框架和表现层框架,利用http技术,使控制层框架framel与pushlet服务器保持一个http流连接,接收来自服务器端的javascript代码和数据,利用javasc印t中包含的变化数据刷新表现层框架frame2的内容,这样服务器即可将变化数据动态更新到客户端网页中。
t推技术的优势
在java网络应用程序中,采用pushlet技术实现服务器通知客户端的策略,与采用轮询、服务器调用和消息机制这三种策略相比具有以下优势:
(1)采用pushlet技术的网络应用程序具有很强的通用性。
(2)服务器与客户端可以很好的实现同步,只要服务器发生变化,服务器都会将变化通知到客户端。
(3)服务器与客户端通信的网络冗余数据很少,服务器只将变化的数据’·推’。到客户端,客户端不需要重载整个网页,降低了网络资源的消耗。
(4)pushlet技术可以将服务器产生的数据直接集成到浏览器的动态网页中,html和css(cascadingstylesheet,层叠样式表)都可以直接应用。
(5)pushlet的客户端负担小。
(6)运用pushlet技术的服务器是一种轻量级的服务器,不需要额外的服务器开发和维护。
(7)pushlet使用的协议简单。
4、应用程序的开发
pushlet框架实质上是实现了一个信息交换的过程。因此基于此框架开发的应用程序一部分是用于生成信息和向框架发送信息,而另一部分则是用于接收信息,通常用浏览器来接收信息。因为发送者和接受者之间的使用的网络协议是http,可以用支持http的任何一种编程语言或脚本语言开发。pushlet的信息结构由服务器端的事件类定义,事件是一个带有主题标识符的信息,根据不同的客户端,事件在发送时需要采用不同的编码技术,主要用到的编码技术有javascript和xml}
4.1开发发送者
向pushlet框架发送事件可以通过三种方式:直接使用发报机发送;远程或本地使用pushlet协议发送;使用事件源发送。
1.直接使用发报机发送
应用程序通过发报机的getinstance}方法得到发报机对象,然后采用多播、单播、广播三种方法中的一种来播送事件,三种播送方法的调用代码如下:
ast0;//多播
l0;//单播
ast0;//广播
而向pushlet框架发送事件的其他两个方法,实质上最终使用的还是发报机的播送方法。但是要使用发报机,则要求调用发报机的类需要和发报机在同一个类加载器中。如果发送者在另一个网络应用程序中,那么可以使用pushlet协议或者将pushlet框架中的所有java文件打包成jar文件放在系统类路径中,而且这个jar文件还可以当做tomcat服务器中的一个共享类库。
2.使用事件源发送
开发事件源需要创建一个事件源类,这个事件源类必须实现eventsource接口或扩展eventpullsource类。如果事件源类实现了eventsourc。接口,那么它需要实现把事件”推”到pushlet框架的方法;如果事件源类扩展了eventpullsource类,那么pushlet框架会每隔一段时间自动地拉取事件源产生的事件。然后,把事件源类捆绑到testeventpullsources类中,最后将这个事件源的类名存放到类路径下的资源文件ties中。将事件源捆绑到testeventpullsources类中,并存放于资源文件中,目的是便于对事件源的创建和管理。当pushlet.服务器被载人时,事件源管理器就会在类路径中寻找资源文件,并将文件中的事件源载人激活。
3.远程或本地使用pushlet协议发送
pushlet框架提供了一个发布事件的接口,即p_publish}方法,应用程序可以通过此方法发送事件。此外,java客户还可以通过pushletclient类发送。
4.2开发接收者
开发接收者需要明确接收者发出的pushlet请求以及接收者与服务器之间的交互方式,下面分别加以说明:
t请求
客户要订阅之前,首先必须向pushlet服务器发送一个http订阅请求,这个请求至少包含两个参数:传送事件采用的编码技术和客户订阅的主题。
(1)传送事件采用的编码技术有四种
javascript的编码技术用字符串’’js’,表示;xml的编码技术用字符串”xml’,表示,这种编码技术将事件组织成<<event>元素流;还有一种更严格的xml编码技术用’’xml-strict"表示,它要求事件元素必须包含在完整的文档中,这种编码技术将事件组织成<event>元素包含在<pushlet>元素中;java序列化对象的编码技术用字符串’’ser"表示。
(2)客户订阅的主题
主题标识符是按照结构化的”主题树”组织的。当客户订阅了某一层次的主题,那么就订阅了属于此主题之下的全部主题事件,例如定义了主题,那么将会收到所有主题事件。
2.客户端与服务器的交互方式
客户端与服务器的交互方式包括三种:”推”模式,”拉取”模式,”轮询’‘模式。”推”模式是指在不需要订阅客户发出请求的情况下,服务器可以将变化的事件信息主动的’‘推”到订阅客户端。一般情况下,动态网页客户采用的是这种模式,但是在某些情况下,采用这种传输模式也许不能正常工作,比如说由于代理服务器、servlet引擎或客户端浏览器的原因,那么就需要采用”拉取”模式。“拉取”模式是指客户端会每隔一段时间会请求”拉取”服务器端产生的事件信息。尽管这种模式下,客户端的请求比较多,但还是比轮询模式的效率高。因此,为了更好的完成客户端宇服务器端的信息传递,在采用以’‘推’‘模式为主要信息传递方式的同时.还应根据实际网络情况.辅以”拉取“模式和”轮询”模式。
4.3在网络应用程序中集成pushlet
1.集成pushlet需要的文件
(1)pushlet的jar文件:,包含t
pushlet框架中所有的java文件。
(2)pushlet的配置文件和资源文件:ties和ties是用来对pushlet进行设置的,ties是用来存放事件源的。
(3)pushlet的客户端类库:和是为动态网页客户设计的;是为ajax客户设计的。如果要使用java小应用程序或网络应用方面的java客户,还需要文件。
(4)pushlet的网络配置文件:能使push-let服务器集成到网络应用中。
2.部署pushlet文件
首先,把上面的文件放在网络应用程序相同的路径下。然后,检查一下网络应用程序中有没有网络配置文件,如果有的话,就必须把pushlet网络配置文件中的<servlet>和<servlet-mapping>这两个元素复制到网络应用程序中的网络配置文件中,因为网络应用程序中能有一个网络配置文件。
最后要对事件源进行修改。如果不需要pushlet框架中提供的事件源,那么就在pushlei的配置文件中将事件源失效,即将te=tme改为te=falseo
5.结束语
综上所述,服务器推技术的应用无论是对网络用户、网站管理员还是对internet网自身的健康发展均有着积极的意义。运用服务器推技术进行的应用程序开发,一方面可降低重复无关的网络信息传递,另一方面浏览器可以定期检查更新信息,自动下载缓存新内容.使用户可以离线浏览。
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回通信学论文列表