一种基于XML RPC的前端与服务器的交互实现制造技术

技术编号:8532893 阅读:198 留言:0更新日期:2013-04-04 15:55
本发明专利技术公开了一种基于XML?RPC的前端与服务器的交互方式,包括一套封装良好的JS库、XML转换引擎、服务调用器和面向服务层的API接口;JS库,用于完成页面表单数据到XML格式的转换以及RPC回调结果绑定到表单;XML转换引擎,用于将XML格式的对象文本转成对应的内存对象以及将内存对象转成XML格式文本;服务调用器,用于接收页面AJAX请求,解析XML请求参数,找到对应的服务ID和服务方法并调用它;面向服务层的API接口,用于服务层从内存中取到从页面传递过来的且经过了XML转换引擎转换过的业务对象。

【技术实现步骤摘要】

本专利技术涉及WEB应用领域,特别是涉及一种基于XML RPC的前端与服务器的交互 实现。
技术介绍
随着社会信息化程度越来越高,在IT领域也涌现出了越来越多的新技术,传统的 基于B/S的系统也开始迅速走出历史舞台,WEB应用已成为中流砥柱。然而信息化高度发 展的今天也面临着一些需要急需解决的问题,如何快速构建企业应用和提高开发效率就是 其中的一个典型问题。想要在信息化领域中具有强大竞争力,低成本的、高效率的快速构建 技术对公司的发展有着至关重要的作用。与之相反的是当前不少软件开发商宁愿一心埋头 忙着赶进度,也不愿意在这些方便多做一些工作。他们大多都面临这样的问题在不同的项 目中做着相同的事情。这种方式不仅不能提高软件质量,生产效率也极其低下。事实上,尽 管各种企业应用的需求不尽相同,代码实现也千差万别,但毋庸置疑的是,其中存在的共性 也非常多。如果通过某种有效的方法,把这些共性提取出来,并能够灵活应对各种不同的需 求变化,这样就会使WEB应用的开发效率大大提高,同时增加WEB应用架构的灵活性。B/S架构正越来越成为企业应用的主流模式,市场规模每年都在快速增长。然而与 这种快速发展不匹配的是WEB开发效率仍然处于较低的水平。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于XML RPC的前端与服务器的交互实 现,通过将这种通用的功能流程化、抽象化,以降低程序开发人员的工作量,使他们从繁琐 的表单数据处理、服务层获取和重组请求数据中解脱出来。为实现上述专利技术目的,本专利技术提供一套封装良好的JS库。所述JS库,用于转换表单数据到XML格式以及RPC调用结果到表单的绑定。支 持的场景包括如果表单数据对应一个业务对象,那么可以通过JS库将单个表单直接转成一个 XML。如果表单数据对应多个业务对象且他们存在父子关系,那么通过JS库可以将单 个表单直接转成一个有父子关系的XML。如果页面使用了 Grid组件,那么通过JS库可以将单个Grid直接转成一个XML。如果页面使用了 JSON数据,那么通过JS库也可直接将JSON数据转成一个XML。本专利技术还提供XML转换引擎。所述XML转换引擎,用于将XML格式的对象文本转成对应的内存对象以及将内存 对象转成XML格式文本。本专利技术还提供面向服务层的API接口。所述面向服务层的API接口,用于服务层从内存中取到从页面传递过来的且经过了 XML转换引擎转换过的业务对象。本专利技术还提供服务调用器。所述服务调用器,用于接收页面AJAX请求,解析XML请求参数,找到对应的服务 ID和服务方法并调用它。另外,本专利技术还提供一种将RPC回调结果绑定到表单的方法。所述面向服务层的API接口,用于如果RPC返回的数据为一个业务对象,那么可 以直接通过JS库将它绑定到对应的表单上。如果RPC返回的数据为一个List或Array,那么可以直接通过JS库将它绑定到 select表单元素或JS的Array对象。如果RPC返回的数据为一个Map,那么可以直接通过JS库将它绑定到select表单 元素或JS对象。由上述方案可以看出,本专利技术通过使用一套封装良好的JS API来收集页面表单数 据,并生成XML文本,如果表单数据存在父子关系也能自动转换。XML转换引擎在收到AJAX 请求发来的XML数据时,将解析该文本以形成相应的业务对象,如果XML数据存在父子关系 那么也将生成具有父子关系的业务对象。从XML解析出服务ID和服务方法后,使用反射机 制调用服务方法。服务方法通过一个RequestContext对象来从请求中获取业务数据(通 常是表单数据,事实上这些业务数据已经被XML转换引擎转成了业务对象),这也是为服务 层提供的唯一 API,使用这个对象中的方法就可以方便的取到上面提到的业务对象了。服 务方法返回的结果也将被XML转换引擎转成XML格式,页面上仅需要使用JS进行适当的绑 定就可以完成数据的展现。整个过程都没有涉及任何零散的数据,开发人员只需要记住几个常用的API函 数,这样极大的提供了开发效率,同时该专利技术也充分利用了 AJAX的异步性和局部刷新等特 性来提高应用程序的性能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本 专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1为本专利技术实施例中涉及的操作流程;图2为本专利技术系统架构图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本专利技术作进一步详细的说明。显然,所描述的实施例仅是本专利技术一部分实施例,而 不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动 前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供一种基于XML RPC的前端与服务器的交互方式,所述系统包括一套封 装良好的JS库、XML转换引擎、服务调用器和面向服务层的API接口。所述JS库的实现方式如下XML RPC的API主要完成两方面的功能表单数据到XML的转换和RPC调用返回数据的表单绑定。其定义的API接口和例子如下1. XmlRpc. Formatter. getXml (“formName”),将整个表单数据转成一个XML文档。2. XmlRpc. Formatter. addBean( “people”). getXml O,将整个表单中标识有属性 “attachTo = people”的兀素转成XML文档。3. XmlRpc. Formatter. addBean( people ). addChiIdBean( address),建立父子关系,并转成XML文档。4. XmlRpc. Formatter. addBean ( customer ). addGridBean ( orders , order ) · getXml (),实现一对多的关系。5. ajax. remoteCall (〃 rpc://ServiceID:method;/ , [map], function (reply){/*回调处理*/}),ajax为XmlRpc的一个实例,该远程方法将通过AJAX方式发送RPC调用。6. XmlRpc. Form. bindForm( “formName”,reply. getResult ()),这里的 reply 和 5 中的一致,这个API用于数据绑定,一般在回调函数中处理。(注这里attachTo是自定义的HTML元素属性,它的值为一类业务对象的别名, 用它来指明该HTML元素应该绑定到哪类业务对象——XML转换引擎根据这个信息将元素对应的值注入到业务对象的相应属性中。)下面是一个XML文档格式例子 <people>〈peopleid>XXX</peopleid><name>XXX</name><birthday>XXX</birthday><sex>XXX</sex><! 一以下本文档来自技高网...

【技术保护点】
一种基于XML?RPC的前端与服务器的交互方式,其特征在于,包括:一套封装良好的JS库、XML转换引擎和面向服务层的API接口;所述JS库,用于:完成页面表单数据到XML格式的转换以及RPC回调结果绑定到表单;所述XML转换引擎,用于:将XML格式的对象文本转成对应的内存对象以及将内存对象转成XML格式文本;所述面向服务层的API接口,用于:服务层从内存中取到从页面传递过来的且经过了XML转换引擎转换过的业务对象。

【技术特征摘要】
1.一种基于XML RPC的前端与服务器的交互方式,其特征在于,包括一套封装良好的JS库、XML转换引擎和面向服务层的API接口;所述JS库,用于完成页面表单数据到XML格式的转换以及RPC回调结果绑定到表单; 所述XML转换引擎,用于将XML格式的对象文本转成对应的内存对象以及将内存对象转成XML格式文本;所述面向服务层的API接口,用于服务层从内存中取到从页面传递过来的且经过了 XML转换引擎转换过的业务对象。2.一种将表单数据转成XML的方法,其特征在于,包括如果表单数据对应一个业务对象,那么可以通过JS库将单个表单直接转成一个XML ; 如果表单数据对应多个业务对象且他们存在父子关系,那么通过JS库可以将单个表单直接转成一个有父子关系的XML ;如果页面使用了 Grid组件,那么通过JS库可以将单个Grid直接转成一个XML ; 如果页面使用了 JSON数据,那么通过JS库也可直接将JSON数据转成一个XML。3.—种将RPC回调结果绑定到表单的方法,其特征在于,包括如果...

【专利技术属性】
技术研发人员:何健明周涛杨文武
申请(专利权)人:佳都新太科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1