APP下载

基于J2EE的Web DataWindow交互模型设计

2012-11-28李香云

关键词:数据模型服务器端客户端

李香云,葛 华

(1.安徽科技学院计算机系,安徽 凤阳233100;2.安徽科技学院计算中心,安徽 凤阳233100)

1 引 言

数据窗口(DataWindow)是Sybase公司PowerBuiler数据库前台开发软件的一项技术,它以强大的数据窗口技术和数据库访问能力而倍受广大程序员青睐,可以提高数据库系统的开发效率,使用DataWindow技术开发软件可以提高5~10倍的开发效率,但这一项技术主要运用于用户单机或C/S软件开发系统中。随着计算机技术和软件开发技术的发展,越来越多的单机或C/S模式软件系统会被B/S模式所代替,目前除了特殊要求的软件使用的是C/S模式,其他都采用B/S模式结构开发软件产品,并且支持B/S开发的环境和工具较多,如ASP、ASP。NET、PHP、JSP/J2EE、Perl、Flex等,它们各自都有其相应的优点、缺点及应用场合,但这些开发工具并没有提供DataWindow技术实现B/S开发。为提高B/S模式软件系统开发效率,需要一种界面快速生成工具实现网页的动态生成、动态编辑、动态修改的软件开发平台。

2 J2EE DataWindow体系结构

J2EE DataWindow(下称JDW)技术是J2EE体系下的Web数据表现与处理的组件。JDW将Web数据处理封装为:Model、Data、Events三个层面。其中, “Model”定义数据的来源和展现方式并以RDF文档形式存放在服务器,可供任何Web页面调用;“Data”是指按照Model中定义的数据来源从数据库中获取相关数据;“Event”是指JDW的数据视图以及与数据视图相关的事件、属性和方法。其JDW体系结构,如图1所示,在该体系结构基础上构建J2EE DataWindow应用程序接口(API),JDW API包含服务器和客户端两种接口方式,在此体系结构中采用服务器事件驱动和客户端事件驱动实现服务器和客户端之间的交互,事件驱动方式可以提高系统的效率。

3 JDW关键技术

Java技术日益成熟,很容易对数据库操纵及实现XML、DHtml、Ajax、Java反射机制及事件驱动技术。JDW主要是利用目前主流的Java技术实现基于J2EE平台的数据窗口。目前对于DatdaWindow技术在国内有DJFocus、Web Datawindow ActiveX。DJFocus所开发的 Web项目封装性更好、可维护性更高,代码量减少80%以上,开发效率可提高5到10倍,但其会在客户端产生大量的XML文件。Web Datawindow ActiveX需要在客户端下载并安装一个2MB控件才可以使用,对计算机操作人员的要求较高。在JDW中采用事件驱动模式实现对客户端数据和服务器端进行信息数据动态传递。

3.1 JDW事件驱动

图1 JDW体系结构

在JDW中事件驱动分为客户端事件驱动和服务器端事件驱动。

客户端事件驱动指的是用户使用浏览器时按下的键盘和点击的鼠标都是以事件消息形式发送给客户端事件收集器,事件收集器收集这些事件消息,并将这些事件分发到目标对象中。JDW客户端事件驱动主要是负责拦截客户端中相关消息,并将消息进行二次封装发送给服务器端事件处理程序。

服务器端事件驱动主要接受客户端发送过来的事件消息,并将该消息分发到目标对象中,目标对象再对其进行处理,最后返回一个结果以事件形式返还给客户端,数据处理流程如图2所示。

3.2 资源描述框架(RDF)

资 源 描 述 框 架[1-3](Resource Description Framework,RDF)是一种描述有关 Web资源的格式化语句集合的模型。在World Wide Web Consortium(W3C)开发XML形式的下一代标记技术的同时,它同样开发了下一代格式化描述Web资源的技术。RDF提供一种描述有关Web资源的语句集合的模型,这些语句在概念上分为三部分:每条语句包含一个主题(一个Uniform Resource Identifier(URI));一个谓词(也是一个URI);还包含一个对象(一个URI或字母数值)。RDF作为一个建模系统,该系统具有解决数据交换[4,5]的一些功能。本文中的资源平台之间的资源共享主要应用的就是 “资源描述框架”的这一特性。

RDF以如图3所示的方式来描述一个特定的资源:

由图2可知,一个资源描述过程可以看做一个基本的三元组,这个三元组由主语、谓词和对象组成,将上述描述看做如下过程,即:资源subject具有一个值为object的属性predicate。

图2 JDW交互模型数据流程

图3 资源描述方法

3.3 JDW数据模型

在JDW中采用主动数据模型(active data model,ADM),其基本单元是实体或对象。每个对象都有属性,对象通过自身的属性与其他对象产生关联,或对象本身与其他对象关联。访问对象只能通过明确的事件来进行,主动数据模型通过事件响应来体现主动。事件也是一种对象,它是对象之间交互的纽带。通过它,主动数据模型可以动态建模及数据的主动更新,在实际系统中一般都是复合型事件。因此在ADM中采用层次结构,子类型中的成员关系用属性上的谓词来定义,属性依赖于属性类型的约束。形成过程层次和函数链。过程事件对应应用中的处理单元,函数链用于表示事件层次。该模型包括实体关联模型和AFEM事件模型,期中语义实体关联模型是一种图模型,主要描述数据的组织及表达。对语义实体数据进行任何操作,都会产生一些事件。对事件的响应会引发在数据图上进行新的操作。

在该模型中,数据建模主要以事件作为载体,因此可以定义JDW数据模型事件E(Engine ID,E-vent ID,Source,Location,Times stamp,Group,Priority,Object,CS)九元组构成,Engine ID为事件处理引擎ID,每个事件处理引擎都会有一个唯一的引擎标志;EventID是事件唯一标志;Source是事件源;Location是事件发生地;Timestamp是事件发生时间;Group为事件交互群元组,该属性在客户端有效;Priority为事件的优先级;Object为事件发生作用时的对象;CS为事件发生在服务器端还是在客户端标志。

4 结束语

采用本模型设计数据窗口能够快速构建和部署数据驱动的应用程序,轻松地集成复杂的业务规程,简化了企业级数据应用系统的部署工作,降低了开发成本,缩短了开发周期,仅需极少的编码工作,就可轻松构建B/S架构的数据库应用系统,提高了基于B/S架构的网络系统的开发效率。在窗口模型中采用XML对模型进行描述,简化编码设计和维护难度。并在模型中采用Ajax处理实现数据局部更新[6-8],并在测试系统中获得较好的运行响应时间、同时编程效率也得到大大提高、页面响应速度将提高许多、性能比较稳定。

[1]Klyne G,Carroll JJ.Resource Description Framework(RDF):Concepts and Abstract Syntax [EB/OL].http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/.

[2]Turney PD.Coherent Keyphrase Extraction via Web Mining[A].Gottlob G,Walsh T.Proceedings of International Joint Conference on Artificial Intelligence[C].Mexico:Acapulco,2002:434-439.

[3]Brickley D,Guha RV.RDF Vocabulary Description Language 1.0:RDF Schema [EB/OL].http://www.w3.org/TR/2004/REC-rdf-schema-20040210/.

[4]Turney PD.Learning algorithms for key phrase Extraction [J].Inform Retr,2000,2(04):303-336.

[5]de Laborda CP,Conrad S.Database to Semantic Web MappingUsing RDF Query Languages [A].Embley DW,OlivéA,Ram S.Proc.of the 25th International Conference on Conceptual Modeling [C].Heidelberg:Springer Verlag,2006:241-254.

[6]柯自聪.Ajax开发概念与案例 [M].北京:电子工业出版社,2006:1-29.

[7]王东,孙彬.基于Ajax的DataWindow框架分析 [J].计算机工程,2008:34-7.

[8]孙彬,王东.构造异步Ajax DataWindow的技术探究 [J].电脑开发与应用,2008:15-17,19.

猜你喜欢

数据模型服务器端客户端
Linux环境下基于Socket的数据传输软件设计
如何看待传统媒体新闻客户端的“断舍离”?
面板数据模型截面相关检验方法综述
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
基于分位数回归的电力负荷特性预测面板数据模型
客户端空间数据缓存策略
面向集成管理的出版原图数据模型