当前位置: 首页 > 专利查询>天津大学专利>正文

一种面向最终用户搭建Ajax应用的自适应方法技术

技术编号:11369926 阅读:59 留言:0更新日期:2015-04-30 01:13
本发明专利技术公开了一种面向最终用户搭建Ajax应用的自适应方法,该方法包括以下步骤:步骤一、对Ajax API进行封装,形成具体组件、抽象组件;步骤二、利用封装特性在运行时进行Ajax  API的自切换。与现有技术相比,本发明专利技术通过对不同Ajax API的语法及语义封装,使得Ajax API即可以在语义上去匹配用户需求,又可以以组件拼接的方式进行Ajax应用的开发,达到用户“零编程”搭建到满足自身需求的Ajax应用的目的;并且利用运行时的Ajax API自切换框架,可以达到在运行时进行Ajax API的替换,大大提高用户开发Ajax应用效率,提升用户体验。

【技术实现步骤摘要】
一种面向最终用户搭建Ajax应用的自适应方法
本专利技术涉及Web服务
,具体来说,涉及一种基于语义的AjaxAPI封装方法,以及根据不同情况进行自适应的切换框架。
技术介绍
Ajax即“AsynchronousJavascriptAndXML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术,用于创建快速动态网页的技术,通过在后台与服务器进行少量数据交换,并且AJAX可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。Ajax的核心是JavaScript对象XmlHttpRequest。该对象在InternetExplorer5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。自web2.0以来,Ajax得到了快速的发展,并且越来越多的web应用都采用Ajax技术。同时,由于web服务的快速发展,人们将Ajax技术与web服务进行结合,使得Ajax应用可以利用异步的服务调用来获取需要的数据,并进行局部页面刷新数据。故此,Ajax应用也被认为是web服务在浏览器上的客户端。此外,自web2.0以来,越来越多的网站开放出自己的OpenAPI,在这种环境下,一些高交互性的Ajax应用同样也开放出了自身的AjaxAPI,这些AjaxAPI从本质是讲是构建Ajax应用的编程接口,属于web服务的客户端编程接口。由于AjaxAPI是以JS语言进行描述的,用户需要通过阅读API手册来了解API的结构,并且需要熟练掌握JS的编程技巧才能很好的利用已有的AjaxAPI开发出较好的Ajax应用。因此用户使用AjaxAPI是非常不便的,并且学习周期、开发周期都较使用RESTAPI长很多。由于存在较多功能相似或相同的AjaxAPI,用户不可能将全部的信息都了解后决定使用哪个API,故在用户选择API时会一定的困难;同时,如果某AjaxAPI提供商暂停开放,那么使用此API的用户不得不进行代码的再编写以更换其他功能相同的API,但不同提供商提供的API结构都不相同,这使得用户不得以重复学习其他API文档。然而面对这些问题,如今并没有一种很好的对于AjaxAPI使用的解决方案。针对以上问题,有必要提出一种面向最终用户搭建Ajax应用的自适应框架,方便用户克服在设计以及运行时,使用AjaxAPI搭建Ajax应用的不便。提高Ajax应用的开发效率,缩短开发周期和流程。
技术实现思路
为了克服上述现有技术存在的问题,本专利技术提出了一种面向最终用户搭建Ajax应用的自适应方法,克服Ajax应用开发过程中AjaxAPI的选择,调用以及更换难的问题,使得用户可以使用AjaxAPI“零编程”搭建出满足自身需求的Ajax应用,并且在运行时可以根据AjaxAPI的QoS的不同,进行等功能AjaxAPI的替换。本专利技术所采用的技术方案如下:本专利技术提出了一种面向最终用户搭建Ajax应用的自适应方法,将用户与原始AjaxAPI进行解耦和,用户同样的调用,每次以REST方式返回最合适的AjaxAPI;该方法包括以下步骤:步骤一、对AjaxAPI进行封装,形成具体组件、抽象组件,该步骤具体包括以下操作:11、解析AjaxAPI提供的API文档,获取其中的function以及Object之间的关系,包括function与Object之间的包含关系,function与Object之间的输入输出关系,Object与Object之间的继承关系;12、根据构成AjaxAPI的JS库的语法关系网,以及对于function所属的调用形式,构建出不同形式的具体组件;13、利用DBpedia本体标注具体组件的功能语义,包括根据不同类型的具体组件的语义表达部分的抽取,利用DBpediaSpotlight应用将具体组件的语义表达部分分别关联到一个合适的DBpedia实例数据或本体概念上;并将属于相同功能语义,且属于不同AjaxAPI的具体组件映射到一个抽象组件上,从而每一个抽象组件对应一组功能语义相同的具体组件;14、对具体组件里面的参数进行参数精化和清洗,利用DBpediaSpotlight应用将具体组件的每个清洗后的参数关联到一个合适的DBpedia实例数据或本体概念上,并将其保存到具体组件的参数标签中;步骤二、利用封装特性在运行时进行AjaxAPI的自切换,该步骤具体包括以下操作:21、解析Http请求,获取其中的抽象应用ID,根据用户地理位置、QoS信息,做出决策给出最佳的AjaxAPI;22、根据抽象应用ID,获取抽象应用中的抽象组件ID,并从数据库中查询出与之相对应的全部具体组件信息;23、将具体组件属性code、parameters进行代码拼接;24、对全部需要代码拼接的具体组件逐一进行code属性的提取,并且将code拼装到具体应用的code中;25、每向具体应用code中拼入一段具体组件代码,便根据具体组件中的parameters的语义标注信息,从参数库中将对应的具体组件的参数值,然后根据参数名称将参数值替换到具体应用code中,如果出现具体组件所需的参数语义标注与参数库中不同,则进行步骤26,若全部参数均替换完成则进入步骤29;26、将对应的参数表中的参数的语义标注及参数值,以及待替换的参数的名称及语义标注提供给SPARQL查询,将待替换参数标注的本体概念从宾语转换成谓语,主语为参数库中对应的参数值,然后按照SPARQL语法规则,生成SPARQL语句;27、利用http客户端发送SPARQL查询语句到DBpediaSPARQL协议终端;28、获取服务返回的Json结果,并进行分析,将其中获取到的参数值替换相应的参数名称;29、将具体应用的code放入html模板中,生成对于用户来说体验最好的Ajax应用,并返回给用户;同时将具体应用code存储到具体应用的数据库表。与现有技术相比,本专利技术具有以下积极的实施效果:本专利技术通过对不同AjaxAPI的语法及语义封装,使得AjaxAPI即可以在语义上去匹配用户需求,又可以以组件拼接的方式进行Ajax应用的开发,达到用户“零编程”搭建到满足自身需求的Ajax应用的目的;并且利用运行时的AjaxAPI自切换框架,可以达到在运行时进行AjaxAPI的替换,大大提高用户开发Ajax应用效率,提升用户体验。附图说明图1为本专利技术的整体流程图;图2为本专利技术的封装AjaxAPI的流程图;图3为本专利技术自适应切换AjaxAPI的操作示意图;图4为本专利技术自适应切换AjaxAPI的数据流图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。本专利技术有两个步骤,一是对AjaxAPI进行一系列封装,形成具体组件、抽象组件;二是利用封装特性在运行时进行AjaxAPI的自切换。在本专利技术中提出了4个概念,为具体组件,抽象组件,具体应用,抽象应用。其中:抽象应用:由抽象组件组成,从语义匹配表达用户需求的语义层面的Ajax应用;具体应用:由具体组件组成,由具体某个AjaxAPI搭建成的语法层面的Ajax应用,实质上是可执行的JS代码本文档来自技高网
...
一种面向最终用户搭建Ajax应用的自适应方法

【技术保护点】
一种面向最终用户搭建Ajax应用的自适应方法,其特征在于,将用户与原始AjaxAPI进行解耦和,用户同样的调用,每次以REST方式返回最合适的AjaxAPI;该方法包括以下步骤:步骤一、对Ajax API进行封装,形成具体组件、抽象组件,该步骤具体包括以下操作:(11)解析Ajax API提供的API文档,获取其中的function以及Object之间的关系,包括function与Object之间的包含关系,function与Object之间的输入输出关系,Object与Object之间的继承关系;(12)根据构成Ajax API的JS库的语法关系网,以及对于function所属的调用形式,构建出不同形式的具体组件;(13)利用DBpedia本体标注具体组件的功能语义,包括根据不同类型的具体组件的语义表达部分的抽取,利用DBpedia Spotlight应用将具体组件的语义表达部分分别关联到一个合适的DBpedia实例数据或本体概念上;并将属于相同功能语义,且属于不同Ajax API的具体组件映射到一个抽象组件上,从而每一个抽象组件对应一组功能语义相同的具体组件;(14)对具体组件里面的参数进行参数精化和清洗,利用DBpedia Spotlight应用将具体组件的每个清洗后的参数关联到一个合适的DBpedia实例数据或本体概念上,并保存到具体组件的参数标签中;步骤二、利用封装特性在运行时进行Ajax API的自切换,该步骤具体包括以下操作:(21)解析Http请求,获取其中的抽象应用,根据用户地理位置、QoS信息,做出决策给出最佳的Ajax API;(22)根据抽象应用,获取抽象应用中的抽象组件,并从数据库中查询出与之相对应的全部具体组件信息;(23)将具体组件进行参数替换;(24)对全部需要代码拼接的具体组件逐一进代码的提取与拼接,并且将其保存到具体应用中;(25)每向具体应用中拼入一段具体组件代码,便根据具体组件中的parameters的语义标注信息,从参数库中将对应的具体组件的参数值,然后根据参数名称将参数值替换到具体应用中,如果出现具体组件所需的参数语义标注与参数库中不同,则进行步骤(26),若全部参数均替换完成则进入步骤(29);(26)将对应的参数表中的参数的语义标注及参数值,以及待替换的参数的名称及语义标注提供给SPAQL查询,将待替换参数标注的本体概念从宾语转换成谓语,主语为参数库中对应的参数值,然后按照SPARQL语法规则,生成SPARQL语句;(27)利用http客户端发送SPAQL查询语句到DBpedia SPARQL协议终端;(28)获取服务返回的结果,并进行分析,将其中获取到的参数值替换相应的参数名称;(29)将具体应用放入html模板中,生成对于用户来说体验最好的Ajax应用,并返回给用户;同时将具体应用存储到具体应用的数据库表。...

【技术特征摘要】
1.一种面向最终用户搭建Ajax应用的自适应方法,其特征在于,将用户与原始AjaxAPI进行解耦和,用户同样的调用,每次以REST方式返回最合适的AjaxAPI;该方法包括以下步骤:步骤一、对AjaxAPI进行封装,形成具体组件、抽象组件,该步骤具体包括以下操作:(11)解析AjaxAPI提供的API文档,获取其中的function以及Object之间的关系,包括function与Object之间的包含关系,function与Object之间的输入输出关系,Object与Object之间的继承关系;(12)根据构成AjaxAPI的JS库的语法关系网,以及对于function所属的调用形式,构建出不同类型的具体组件;(13)利用DBpedia本体标注具体组件的功能语义,包括根据不同类型的具体组件的语义表达部分的抽取,利用DBpediaSpotlight应用将具体组件的语义表达部分分别关联到一个合适的DBpedia实例数据或本体概念上;并将属于相同功能语义,且属于不同AjaxAPI的具体组件映射到一个抽象组件上,从而每一个抽象组件对应一组功能语义相同的具体组件;(14)对具体组件里面的参数进行参数精化和清洗,利用DBpediaSpotlight应用将具体组件的每个清洗后的参数关联到一个合适的DBpedia实例数据或本体概念上,并保存到具体组件的参数标签中;步骤二、利用封装特性在运行时进行AjaxAPI的自切换,该步骤具体包括以下操作:(21)解析Http请求,获取其中的抽象应用,根据用户地理位置、QoS信息,做出决策给出最佳的AjaxAPI;(22)根据抽象应用,获取抽象应用中的抽象组件,并从数据库中查询出与之相对应的全部具体组件信息;(23)将具体组...

【专利技术属性】
技术研发人员:冯志勇李想陈世展
申请(专利权)人:天津大学
类型:发明
国别省市:天津;12

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

1