•
第
35
卷第
12
Vo
l.
35
No.12
计算机工程
Computer
Engineering
2009
年
6
月
June
2009
·开发研究与设计技术·
文章蝙号.
100• -3428(2009)12• 275• 4
文献标识码
.A
中团分提号.
TP393
于
Ajax
技
的
智
能
户端流引
部
_)11
1
,2.申德荣
z
,赵宏伟
1
,聂铁铮
2
(1.沈阳大学信息学院,沈阳
110044;
2.
东北大学信息学院,沈阳
110004)
摘要:为解决传统人
Jax
引擎缺乏智能及服务器端负载过重问题,设计一种基于浏览器缓存机制及
Ajax
技术的智能客户端流引擎
(SCFE)
。
它将业务逻辑与数据访问分开,将业务逻辑移交到客户端执行,同时在客户端缓存业务逻辑涉及的数据,形成智能客户端体系。理论和实
践证明
SCFE
可以有效地减少服务器访问次数,减轻服务器负载,减少网络流量,使
Web
应用更加智能化。
关键词:
人
JU
引擎;缓存;智能客户端
Smart Client Flow Engine ßased on Ajax
SHAO
Yi-chuan
1
气
SHEN
De-rong
2
,
ZHAO
Hong-wei\
NIE
Ti
e-zheng
2
(1.
Schoo1
Dep
aI
tment o
fI
nformation, Shenyang University, Shenyang 110044;
2.
Schoo1
of
Information, Northeastern University, Shenyang 110004)
[AbstractJ
In order to solve the problems oflacking intelligence and server overload in the traditional Ajax engine, a new Ajax engine based on the
browser caching mechanism named Smart C1ient
F10w
Engine(SCFE) is proposed.
It
separates business logic layer from data access 1ayer and
transfers business logic layer and the relevant data
ω
也
e
client catch to implement
Th
eory and practice prove that SCFE can reduce
the
企巳
quency
of
accessing server effectively, solve the server overload problem, and make the Web applications more intelligent
[Key
wordsJ
Ajax engine; cache; smart client
1
随着互联网的普及,基于
B/S
结构的应用程序发展迅猛,
互联网浏览器的作用与日俱增。但它所提供的人机交互界面
和操作方式始终不能令人满意,如交互性差、功能简单、响
应速度慢、有较大通信冗余、服务器端压力较大、不能利用
客户端资源。而
Ajax
技术的出现可以弥补这些缺点。
在人
jax
应用模型中,
Ajax
引擎作为
Ajax
模型中的核心,
其设计与实现直接关系到整个
Web
系统应用的成败。因此,
如何设计与实现→个好的
Ajax
引擎成为当前
Ajax
应用的重
要研究对象。
传统的
Ajax
引擎[1]垦然采用了异步方式通信,具有更迅
速的响应能力,但它在使
Web
应用更动态的同时,并没有减
少服务器的负载。而基于
RPC
方式的
Ajax
引擎
[2]
虽然在一
定程度上减少了服务器负载,但由于没有客户端缓存,因此
始终不能降低访问数据持久层的频率,而且不具备脱机操作
能力。
本文提出一种基于人
Jax
技术的智能客户端流引擎
(Smart
Client
Flow
Engine
,
SCFE)
。它实现了在传统的
Ajax
引擎基础
上,利用浏览器缓存机制
[3]
,建立智能的客户端体系这→目
标。
SCFE
是将服务器端运行的业务逻辑下载到浏览器缓存
中执行,并将业务逻辑所涉及的数据缓存在浏览器中。当再
次运行此业务逻辑时,操作可以直接在浏览器缓存中进行,
具有脱机运行能力。如果需要连接数据持久层,
SCFE
会利
用"钩取"操作访问服务器,同时更新浏览器缓存中"享元
库"。从而克服传统
Ajax
引擎的弊端,使人
Jax
引擎更智能化。
2
SCFE
的工作原理
SCFE
的设计思想是将业务流程以
XML
代码片段形式保
存于服务器端,根据用户请求需要,由
SCFE
动态加载相应
的业务流程
(XML
代码片段),之后解析并执行,同时缓存相
关数据。在该业务流程不再频繁使用时,
SCFE
会自动将其
从客户端删除,同时更新缓存,减少冗余数据。
SCFE
实现
了业务逻辑层与数据逻辑层的分离,将业务逻辑层前置到客
户端,而服务器端相当于数据逻辑层,只提供数据的管理与
支持。根据以上对
SCFE
的分析给出下面的形式化定义,并
以一段业务流网的
XML
代码片段举例说明。
定义
1
数据钩
(Hook)
为业务流程中处理某一特定任务的
操作,每个数据钩都有固定任务,主要负责向数据库钩取或
置入数据,如下文
XML
代码片段中的
Hook
。数据钩是构建
定义
4
中业务流网的最小单元。
定义
2
数据钩存根
(HookStub)
是数据钩向持久层钩取数
据的媒介。
定义
3
钩取
(HookData)
是数据钩索取数据的过程。
定义
4
业务流网
(Flownet)
是若干数据钩通过协作组成的具
有完整业务处理功能的
XML
代码片段,如
XML
代码片段举
例所示。业务流网的执行由
SCFE
触发,业务流网具有一个
网口
(Entry)
,网口负责连接持久层。数据钩则按照顺序
(Number)
挂在业务流网上。
定义
5
享元
(Shareware)
是共享数据的集合,由键和共享
数据组成。其中,键是共享数据在定义
8(
享元库)中全局唯一
的标识。
基金项目:国家
"863"
计划基金资助项目
(2003AA4142100);
国家
自然科学基金资助项目
(60673139)
作者简介
z
邵-)11(1
978
一九男,讲师、硕士,主研方向:
Ajax
引擎,
数据网格;申德荣,教授、博士;赵宏伟,讲师、硕士;聂铁铮,
助教、博士
收稿日朔:
2008-11
白
30
E-mail:
yichuan_shao@sina.com
-275
一