首页> 中国专利> 一种基于RIA的客户端框架结构及其实现方法

一种基于RIA的客户端框架结构及其实现方法

摘要

本发明公开了一种基于RIA的客户端框架结构及其实现方法,该框架包括动态脚本和程序构件,所述的动态脚本用于存储业务逻辑模块返回的结果,同时为程序构件提供相关数据,是业务逻辑模块和程序构件之间的接口;所述的程序构件包括实体应用模块、内容加载器、脚本解析器、对象发生器、渲染引擎模块、命令执行器和对象库;程序构件根据动态脚本动态生成图形界面。本发明框架结构以自定义的动态脚本为接口,动态生成各种UI控件(例如:窗口、表格、滑标、日期选择器、选项卡、微调控制器和标尺等),并根据系统的需求将UI控件输出成文HTML、WML、swf文件,提高本框架的通用性和可重用性,从而提高企业的开发效率,减少企业开发成本。

著录项

  • 公开/公告号CN102855142A

    专利类型发明专利

  • 公开/公告日2013-01-02

    原文格式PDF

  • 申请/专利权人 广东华大集成技术有限责任公司;

    申请/专利号CN201210356680.1

  • 发明设计人 杨博宇;杜恩宽;邓俊仕;

    申请日2012-09-24

  • 分类号G06F9/44(20060101);

  • 代理机构44242 深圳市精英专利事务所;

  • 代理人李新林

  • 地址 518000 广东省深圳市南山区西丽南湾工业区13栋(3楼东侧、4楼东侧)

  • 入库时间 2024-02-19 17:04:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-03

    授权

    授权

  • 2015-12-30

    著录事项变更 IPC(主分类):G06F9/44 变更前: 变更后: 申请日:20120924

    著录事项变更

  • 2013-02-20

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20120924

    实质审查的生效

  • 2013-01-02

    公开

    公开

说明书

技术领域

本发明涉及一种客户端框架结构及其实现方法,更具体地说是指一种基于RIA的客户端框架结构及其实现方法。

背景技术

富互联网应用程序(RIA)技术能够将传统桌面应用的强大功能特性和Web应用的部署灵活性和低成本性结合起来,具有良好的表现能力和交互能力,更能够满足用户直观和具交互性的在线体验。

RIA主流技术基于Adobe Flash、Microsoft SilverLight等解决方案,在服务器端提供相应的开发框架(如FLEX等)、在客户端以插件或播放器方式实现RIA支持。现有RIA技术没有提供客户端框架,现有基于JavaScript的客户端框架(如ExtJS)又和RIA技术没有关联,因而RIA客户端框架是一个空白。

发明内容

本发明的目的在于克服现有技术的缺陷,提供一种基于RIA的客户端框架结构及其实现方法。

为实现上述目的,本发明采用以下技术方案:

一种基于RIA的客户端框架结构,该框架包括动态脚本和程序构件,所述的动态脚本用于存储业务逻辑模块返回的结果,同时为程序构件提供相关数据,是业务逻辑模块和程序构件之间的接口;所述的程序构件包括实体应用模块、内容加载器、脚本解析器、对象发生器、渲染引擎模块、命令执行器和对象库;程序构件根据动态脚本动态生成图形界面。其中的业务逻辑模块指的是系统架构中的业务逻辑层(系统架构包括三层,分别为表示层,业务逻辑层和数据访问层)。

其进一步技术方案为:所述动态脚本自定义的内容包括基本语法、程序界面布局、控件、命令和图标;所述的命令执行器用于响应用户相应的操作,并执行相关的命令;所述的对象库是根据RIA技术预制的UI集。

其进一步技术方案为:所述的实体应用模块是根据用户需求开发的应用模块;所述的渲染引擎模块包括布局管理器和界面渲染器。

其进一步技术方案为:所述的内容加载器用于加载动态脚本;所述的脚本解析器用于解析动态脚本,并将相关数据发给对象发生器。

其进一步技术方案为:所述的对象发生器是根据脚本解析器发来的数据动态生成相应的Web UI部件,并将该部件传送给渲染引擎。

其进一步技术方案为:所述的渲染引擎模块将对象发生器传送过来的Web UI部件和对象库的对象渲染成图形化界面。

一种基于RIA的客户端框架结构的实现方法,包括以下步骤:

1)初始化实体应用模块:在初始化过程中,框架根据配置文件对实体应用模块进行初始化;

2)内容加载:实体应用模块会调用内容加载器加载动态脚本,如果该命令有URL请求,则加载URL请求并传给接口;实体应用模块初始化时,内容加载器会从动态脚本上加载引导页;

3)脚本解析:脚本解析器解析动态脚本的树形结构,根据具体需要调用内容加载器加载动态脚本,同时将解析的数据传给对象发生器;实体应用模块初始化时,脚本解析器主要用于解析引导页;

4)对象创建:对象发生器根据脚本解析器传过来的数据创建对应的对象,在实体应用模块初始化时,对象发生器根据相关数据生成界面框架、窗体、自动导航和页面控件等内容;

5)布局管理:渲染引擎模块将对相关的对象进行自动排版;

6)界面渲染:渲染引擎模块加载资源文件和对象库的对象并对相关数据进行渲染;

7)动作和事件监听:在完成实体应用模块初始化之后,会不断对应用实体进行监听,以至能及时响应用户的操作;

8)动作响应:用户对实体应用模块进行操作时,对该操作进行合法性判断;如果该操作不合法,将错误信息返回给实体应用模块,否则调用相应的处理函数进行处理;

9)命令执行:在执行命令过程中,先判断该命令的类型,判断其参数是否有URL请求,如果该命令没有URL请求,则调用脚本解析器对其进行处理;如果有则通过接口将该请求传给Web应用进行逻辑处理;当Web应用完成URL请求的处理后,将会动态生成XML脚本并将其传给框架,框架将调用内容加载器、脚本解析器、对象发生器、渲染引擎模块对处理结果进行加载、解析、生成、渲染并显示出来;

10)结束:不断重复执行步骤2)到9),直至用户退出为止。

本发明与现有技术相比的有益效果是:本发明框架结构以自定义的动态脚本为接口,动态生成各种UI控件(例如:窗口、表格、滑标、日期选择器、选项卡、微调控制器和标尺等),并根据系统的需求将UI控件输出成文HTML、WML、swf文件,提高本框架的通用性和可重用性,从而提高企业的开发效率,减少企业开发成本。具体表现为:

1)本发明客户端框架结构通过XML脚本的解析实现应用程序加载,使用户可以以文本编程方式实现RIA应用,而不是通过RIA工具一个一个地设计制作;

2)本发明客户端框架结构通过动态加载自定义的RIA对象库,为用户提供更个性化、更具适应性的用户界面;

3)本发明客户端框架结构运行于客户端,不需要服务器端框架的支持,就能获得动态的应用支持能力,可广泛应用于智能手机、平板电脑、嵌入式设备等客户端;

4)本发明客户端框架结构的可重用性,能够提高软件开发在表现层的开发效率;

5)本发明客户端框架结构在RIA标准解决方案的基础上,进一步提高了交互能力,满足用户的体验要求。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

图1为本发明一种基于RIA的客户端框架结构具体实施例的方框结构示意图;

图2为本发明一种基于RIA的客户端框架结构的实现方法的具体实施例的方框流程示意图;

图3为本发明另一具体实施例中的应用A的方框示意图一;

图4为本发明另一具体实施例中的应用A的方框示意图二;

图5为本发明具体实施例中的脚本解析器的方框结构示意图;

图6为本发明具体实施例中的脚本解析器对某一具体控件进行解析之后的应用空间的显示示意图。

具体实施方式

为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。

如图1所示,本发明提供一种客户端RIA应用程序框架,该框架包括自定义的动态脚本和程序构件两大部分,其中:

动态脚本主要用于存储业务逻辑模块返回的结果,同时为程序构件提供相关数据,是业务逻辑模块和程序构件之间的接口。本框架中动态脚本定义了动态脚本的基本语法、程序界面布局、控件、命令和图标等内容。

程序构件包括实体应用模块、内容加载器、脚本解析器、对象发生器、渲染引擎模块、命令执行器和对象库,在本框架中程序构件主要是根据动态脚本动态生成图形界面。

实体应用模块是根据用户需求开发的应用。

内容加载器是主要用于加载动态脚本。

脚本解析器主要用于解析动态脚本,并将相关数据发给对象发生器。

对象发生器主要是根据脚本解析器发来的数据动态生成相应的Web UI部件,并将该部件传送给渲染引擎模块。

渲染引擎模块主要是将对象发生器传送过来的UI部件和对象库的对象渲染成图形化界面。

命令执行器主要是响应用户相应的操作,并执行相关的命令。

对象库是根据RIA技术预制的UI集,提供了自定义的动态脚本语法支持。

本框架以自定义的动态脚本为接口,动态生成各种UI控件(例如:窗口、表格、滑标、日期选择器、选项卡、微调控制器和标尺等),并根据系统的需求将UI控件输出成文HTML、WML、swf文件,提高本框架的通用性和可重用性,从而提高企业的开发效率,减少企业开发成本。

本框架可以通过浏览器对其进行访问,也可以作为桌面应用软件的插件。

如图2所示,本发明框架结构的实现方法的流程图,其流程分为以下几个部分:

1)初始化应用实体:在初始化过程中,框架根据配置文件对应用实体进行初始化。

2)内容加载:应用实体会调用内容加载器加载动态脚本,如果该命令有URL请求,则加载URL请求并传给接口。应用实体初始化时,内容加载器会从动态脚本上加载引导页。

3)脚本解析:脚本解析器解析动态脚本的树形结构,根据具体需要调用内容加载器加载动态脚本,同时将解析的数据传给对象发生器。应用实体初始化时,脚本解析器主要用于解析引导页。

4)对象创建:对象发生器主要是根据脚本解析器传过来的数据创建对应的对象,在应用实体初始化时,对象发生器根据相关数据生成界面框架、窗体、自动导航和页面控件等内容。

5)布局管理:渲染引擎将对相关的对象进行自动排版。

6)界面渲染:渲染引擎加载资源文件和对象库的对象并对相关数据进行渲染。

7)动作和事件监听:框架在完成应用实体初始化之后,会不断对应用实体进行监听,以至能及时响应用户的操作。

8)动作响应:如果用户对应用实体进行操作,框架就会对该操作进行合法性判断。如果该操作不合法,框架将错误信息返回给应用实体,否则调用相应的处理函数进行处理。

9)命令执行:在执行命令过程中,框架先判断该命令的类型,判断其参数是否有URL请求,如果该命令没有URL请求,则调用脚本解析器对其进行处理。如果有则通过接口将该请求传给Web应用进行逻辑处理。当Web应用完成URL请求的处理后,将会动态生成XML脚本并将其传给框架,框架将调用内容加载器、脚本解析器、对象发生器、渲染引擎对处理结果进行加载、解析、生成、渲染并显示出来。

10)结束:程序会不断重复执行步骤2)到9),直至用户退出程序为止。

下面以一个更具体的实施例来说明:

本实施例以一个简单的应用A来解析本框架的原理,以便于读者理解。config.xml为本框架的配置文件(配置文件即为文中的动态脚本),APP_A.xml为应用A的配置文件,其中,config.xml内容为:

<HDOS>

<ui type="APP"img="img/btn 001.png"caption="应用A"cmd="OPEN:B,gui/APP A.xml"/>

<ui type="SBG"img="bgs/screen_bg9.jpg"cmd=""/>

</HDOS>

而APP_A.xml的内容为:

<HDOS title="应用A"ico="man"action="gui/save.jsp"width="200"height="200">

<tr><td w="1.5"><ui type="TEXT"CLR="00AA22"value="主题名称"/></td>

<td w="5.5"><ui type="EDIT"name="uname"value=″″/>

<ui type="BUTTON"value="确定"cmd="CHECK FORM"/>

<ui type="BUTTON"value="取消"cmd="CLOSE"/>

</td></tr>

</HDOS>

其步骤如下:

1)框架初始化过程中,该框架会调用内容加载器加载配置文件config.xml内容传给脚本解析器;

2)脚本解析器对config.xml内容逐行解析。根据预先定义好的规则(规则可根据具体需求做相应的改变,这里为了便于理解,以简单例子说明,并不局限于本实施例),type为APP的控件为应用控件,该应用的图标为btn_001.png,标题为应用A,响应的命令为OPEN:B,gui/APP_A.xml;而type为SBG的控件是指框架的背景图片;

3)脚本解析器在解析完config.xml文件之后,将相应的数据发给对象发生器,对象发生器根据接收到的数据生成框架和应用A;

4)同时,因为该配置文件没有设置框架和应用A的布局,所以布局管理器根据默认的布局对框架和应用A进行排版;

5)在布局管理器完成排版之后,其将框架和应用A发给界面渲染器,界面渲染器就会将screen_bg9.jpg渲染为框架背景,将btn_001.png渲染为应用A的图标显示出来,从而完成框架的初始化过程,如图3所示;

6)框架在完成初始化之后,会不断地对应用A进行监控,如果有用户点击应用A,则触发命令执行器执行命令OPEN:B,gui/APP_A.xml;

7)命令执行器在执行命令OPEN:B,gui/APP_A.xml过程中,会调用内容加载器加载应用A的配置文件APP_A.xml;

8)命令解析器将type是TEXT解析为文本控件,type是EDIT为可编辑文本控件,type是BUTTON为按钮控件,并将相关数据传给对象发生器;

9)对象发生器根据接收到的数据生成一个标题为主题名称的文本控件、一个可编辑文本控件和两个按钮控件;

10)布局管理器根据接收到的样式数据将应用A的高度和宽度设为200,文本控件的宽度为1.5,背景颜色为00AA22,可编辑文本控件的宽度为5.5;

11)同时,界面渲染器根据布局管理器传过来的数据渲染出应用A的界面,如图4所示:

12)用户填写好主题名称之后,点击确认将触发命令执行器执行命令CHECK_FORM,该命令将调用save.jsp通过接口向服务器发送请求;

13)服务器在接收到客户端发来请求之后,将调用WEB应用进行处理,并将处理结果按照规则写入动态脚本,并触发内容加载器加载新的动态脚本,其执行过程与初始化过程相类似,具体可参考步骤1至5;

14)在这过程中,本框架会不断地对应用实体进行监控,以便能及时响应用户响应,直至程序关闭。

如图5至图6所示,则为本发明中的脚本解析器的详细说明。

脚本解析器包括外部资源和程序构件两大部分,所述的外部资源包括、AS基类、对象库、指令集、布局规则、外部组件、资源文件和容器接口,其中:XML脚本主要是为脚本引擎提供数据,同时作为脚本引擎和后台的接口。AS基类是指AS提供的基础类。对象库是指根据富互联网应用程序技术预制的UI集,提供了自定义的XML脚本语法支持。指令集是根据系统的需求自定义的命令集。布局规则主要是规定了应用布局的方式。外部组件是根据富互联网应用程序技术预制的组件集。资源文件是指引擎使用的任意非可执行的数据文件,如图像、音频和视频文件。容器接口是指引擎跟装载引擎容器的通信接口,例如:引擎与浏览器的接口、引擎与桌面程序的接口。程序构件包括初始化器、XML解析器、脚本加载器、解释器、执行器、事件管理器和对象实体,在本引擎中程序构件主要是根据XML脚本动态生成最终显示需要的信息。初始化器主要是根据配置文件对应用程序进行初始化。脚本加载器是主要用于加载XML脚本。XML解析器是指AS内置的XML解析器。在本引擎中,其主要用于解析XML脚本,并生成解释器所需的对象。解释器主要是以XML解析器所生成的对象为输入负责对语句解释执行控制,是整个脚本引擎的中心模块。执行器主要是用于根据对象或命令的类型调用相应的处理模块。事件管理器主要是负责对应用空间的事件或动作进行监听、响应,并触发执行器执行相应的命令。应用空间是指由引擎根据XML脚本生成的应用集。

本解析器可以作为浏览器的插件,也可以作为桌面应用软件的插件。

本解析器的解析方法包括以下几个步骤:

1)初始化:根据配置文件对应用进行初始化,在初始化完成之后,不断对该应用进行监听,以至能及时响应用户的操作。

2)事件响应:用户通过图形界面对应用进行操作,并触发相应的事件。事件管理器在捕捉到该事件后对其进行响应,并触发执行器执行相应的命令。

3)命令解释:解释器会根据预制的对象库、指令集和布局规则判断该命令的类型,然后触发执行器执行相应的处理模块。在此过程中,解释器负责对命令解释执行控制。

4)命令执行:执行器会根据解释器传过来的信息调用相应的模块进行处理。例如:如果是以APP开头的命令,执行器执行对象处理模块;如果以OPEN、CLOSE、URL:等开头的命令,执行器调用命令处理模块进行处理。在执行器执行命令过程中,该命令可能会需要加载XML脚本或调用其他的命令。如果是需要加载XML脚本,执行器会触发脚本加载器加载相应的XML脚本;如果是调用其他的命令,执行器会触发解释器对该命令进行解释,从而形成循环调用。同时,命令执行器会根据解释器传过来的信息,结合外部组件和资源文件生成相应的应用存储到应用空间里。

5)脚本加载:根据执行器发过来的请求,脚本加载器加载相应的脚本传给XML解析器。

6)XML解析:XML解析器对脚本加载器传过来的脚本进行解析,并根据XML语言的语法规则生成相应的对象。

7)结束:本引擎会不断执行步骤2)到6),直到遇到结束符为止。

下述为一个具体控件的解析实施例:

DataGrid.xml为DataGrid控件的配置文件;

本实施例主要是以解析器解析一个DataGrid控件过程来说明,而所述的DataGrid控件指的是本文中所说的对象库里面的对象,以下是解析的步骤:

1.解析器调用脚本加载器加载DataGrid.xml文件;

2.XML解析器对脚本加载器传过来的脚本进行解析,即相关数据赋给相对应的对象,如将type、src、height、name和cw的值赋给DataGrid对象;

3.解释器将读取对象的信息进行解释,例如解释器会根据预制的对象库、指令集和布局规则对DataGrid对象的type、src、height、name、check和cw的值进行解析,即DataGrid对象类型type为DataGrid控件,外部资源src为swf/HD_DATAGRID.swf,高度height为400,名字name为uname,校验规则check为[*],列宽度cw分别为1,1.5,1,3。该控件有9列和一条记录,列名分别为CHK、ID、姓名、类型、图片、添加、修改、删除和查看。该记录的CHK值为201,ID为1,姓名为实施例,类型为7,图片为images/ico_001.png,添加的响应命令为"OPEN:P,gui/frameB.xml",修改的响应命令为"URL:gui/form_01.xml",删除响应命令为"URL:gui/form_01.xml",查看的响应命令为URL:gui/form_01.xml;解释器在对相关对象解析完之后,将相应的数据发给执行器;

4.执行器根据解释器传过来的信息,加载外部组件HD_DATAGRID.swf和资源文件ico_001.png,并生成相应的应用存储到应用空间里,解析器会根据应用空间的信息将应用显示出来,如图6所示;

5.如果用户点击确定,事件管理器捕捉到命令CHECK_FORM,执行器将会通过容器接口向WEB服务器发出请求,并将该控件的数据提交给WEB服务器处理。当用户点击DataGrid控件中的添加、修改、删除和查看时,会触发事件管理器捕捉相对应的命令,例如点击添加,事件管理器捕捉到的命令是OPEN:P,gui/frameB.xml;

6.解析器根据预制的指令集判断出该命令为打开窗口,并在该窗口加载frameB.xml的内容;

7.执行器执行该命令,并触发脚本加载器加装脚本frameB.xml;

8.解析器解析脚本frameB.xml的过程可参考步骤1-4,其他命令的执行可参考步骤5-8;

在这过程中,解析器不断监控应用,以及时响应用户的操作,直到程序关闭。

上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号