基于交互逻辑复用的页面集成框架设计

2015-12-23 01:07冉,杨燕,王帅,徐罡,卢
计算机工程与设计 2015年2期
关键词:门户表单页面

付 冉,杨 燕,王 帅,徐 罡,卢 彬

(1.中国科学院 软件研究所 软件工程技术研发中心,北京100190;2.中国科学院大学,北京100190;3.苏州飞讯动力信息科技有限公司,江苏 苏州215600)

0 引 言

为了提高资源的利用率,降低生产成本,企业门户需要无缝整合外部资源,为用户提供访问内、外部资源的统一入口。整合外部资源主要有3 种方式,从表示层集成、从数据层集成、从应用功能层集成 (Web service)。其中,从表示层集成 (即页面集成),可以根据用户需求,按需集成Web资源,在以上3种方式中应用范围最广,其典型代表包 括Oracle WebCenter Portal、IBM WebSphere Portal等。然而,目前的页面集成工具大都局限于对Web应用中单个页面资源的集成,无法针对Web应用中页面之间复杂的交互逻辑关系进行深度集成,因此简单的页面集成机制无法深度整合Web应用。

为解决上述问题,本文针对网络应用环境的多样性和高质量的集成需求,尤其是Web应用中特定页面集合以及Web页面上特定应用区域的集成需求,以交互界面作为处理主体的集成思想,借鉴传统的页面集成技术,提出了支持交互逻辑复用的页面集成框架,重点从资源的集成深度和资源定制的自适应性角度,探索页面集成在门户环境中遇到的问题。

1 相关工作

企业门户可以提供对Portlet运行环境的支持,通过Portlet的形式将页面集成框架整合到门户系统中,因此,页面集成在主流的门户产品中得到广泛的应用。

Oracle WebCenter Portal[1]和IBM WebSphere Portal[2]利用页面裁剪 (Web clipping)技术,可以支持用户按需裁剪和集成单个Web 页面的片段,结合XPath[3]可以支持HTML标签级粒度的裁剪,另外,通过页面配置控制裁剪片段的表示层。尽管页面裁剪技术比较成熟,但是它停留在对于单页面的集成,面对Web应用的多样性和复杂性,仅依靠页面裁剪无法完成对Web应用的深度无缝集成。

文献 [4,5]提出了一种基于首页集成 (即页面裁剪)的方法,对Web应用的深度集成模型,可以将已有应用的业务逻辑和界面样式同时集成到OncePortal[6]门户系统中,重点研究了页面集成在门户中的地址改写和流程控制,通过记录用户浏览的历史路径找到并集成目标页面。其中提出深度集成是指将应用以黑盒的方式封装成Portlet,并仅使用URL请求进行访问,其深度主要强调对于应用中目标页面的直接集成和访问,本质仍然是对单个页面的集成。

文献 [7,8]介绍了一种结合单点登录 (SSO)技术和远程门户网站Web服务 (WSRP)技术的深度集成方案,使用单点登录作为集成认证系统的入口,通过WSRP[9]技术可以在门户中显示远程的Portlet应用,有效解决了集成深度上的局限性问题。但由于需要资源的提供方和接受方符合WSRP规范,在应用范围上存在很大的局限性。

本文在页面裁剪的基础上,抽取页面交互逻辑关系,将其应用到门户系统中,从而将单一页面关联起来,完成资源复用范围从页面级到应用级的提升,保证用户访问集成框架定制的Web应用与直接访问Web应用得到等价的体验效果,使页面集成框架既具备应用范围广的优点,又弥补了资源集成深度上的不足。

2 系统设计与关键技术研究

基于交互逻辑复用的页面集成框架支持用户按需裁剪Web应用中具有交互逻辑关系的页面集合,并提供与访问源应用等价的用户体验效果。系统整体采用分层的设计框架,如图1所示。

图1 页面集成的系统框架

系统的核心模块包括单页面集成模块,交互逻辑控制模块和缓存管理模块。其中,单页面集成模块和交互逻辑控制模块相互协作,并借助门户平台上的单点登录和页面组装等基础服务,共同完成深度页面集成系统的主要功能。

本文提出的页面集成框架针对传统页面集成的重要突破在于对页面间交互逻辑关系的复用,因此,交互逻辑控制模块是整个框架得以实现的关键。交互逻辑控制模块主要包含两个阶段:交互逻辑定制阶段和交互逻辑应用阶段。交互逻辑应用阶段通过交互逻辑定制阶段产生的页面关系元数据获取定制阶段集成的页面内容,从而将集成页面按逻辑顺序进行展示。

首先,本文提出了一个可定制的交互逻辑关系映射模型来描述系统集成定制的页面关系元数据。其次,在交互逻辑定制阶段,系统提出了一个页面分类定制算法来减少人工干预,提高定制阶段的自适应性。分类定制阶段获取的页面内容和页面关系元数据将分别存入缓存和交互逻辑关系映射模型中,供页面关系应用阶段使用。最后,阐述了交互逻辑关系如何通过页面交互逻辑模型在集成系统中应用执行。

单页面集成模块主要借鉴传统页面集成的技术,缓存管理模块主要负责系统性能优化,在本文不做重点讨论。

2.1 可定制的交互逻辑关系模型

可定制的交互逻辑关系模型主要用于描述系统按需集成的一组存在交互逻辑关系的页面集合以及集合中的页面逻辑关系。该模型作为页面交互逻辑定制和页面交互逻辑应用的中间媒介,是页面交互逻辑控制模块的核心。

由于页面间交互逻辑关系的多样性和复杂性,系统集成所有情况下的交互逻辑关系将给定制过程带来严重的工作负担,结合资源复用在门户中的应用需求,门户并非要求所有复用资源的可控性。在此基础上,该模型提出了交互逻辑关系的可定制条件。

首先,本文对集成系统中的交互逻辑关系、可定制的交互逻辑关系以及可定制的页面集合进行了形式化描述,并针对交互逻辑关系在集成系统中应用的特点,提出了页面交 互 逻 辑 关 系 映 射 模 型PILM (page interactive logic model)。其次,该模型除了作为交互逻辑定制和应用模块的中间媒介外,使用该模型的集成系统之间可以对元数据进行复用和热部署。

2.1.1 形式化定义

定义1 交互逻辑关系:交互逻辑关系是指两个页面之间通过超链接或者表单提交的方式所产生的具有先后顺序的逻辑关系。用二元组表示,R= (H,F),其中,H 为超链接产生的交互逻辑,F为表单提交产生的交互逻辑。

定义2 可定制的交互逻辑关系:指可以通过人工或自动的方式复用到集成系统中的交互逻辑关系,用P(R)表示。

定义3 可定制的条件:系统可以定制的交互逻辑关系满足以下条件:

(1)P(R∧O)

(2)P(H∧C)→P (R∧N)

(3)P(F∧C)→P (F∧N)

(4)P(F∧C)→P (H∧N∧B)

其中,P表示可定制;交互逻辑关系R=H∨F,H 为超链接产生的交互逻辑,F 为表单提交产生的交互逻辑;页面逻辑顺序S=C∨N,C 表示当前定制页面,N 表示逻辑后续页面;O 表示初始定制页面;B表示当前站点。

定义4 可定制的页面集合:指从一个特定URL 出发,所触发的与原始页面具有直接或间接可定制交互逻辑关系的页面集合,根据定义3可知,该集合至少包含一个页面。

2.1.2 交互逻辑关系映射模型PILM

在本文提出的页面集成系统中,一次定制的最小单位为一个可定制的页面集合,对应门户平台上的一个Portlet。本文提出了一个页面交互逻辑关系映射模型,用于存储Portlet对应的页面关系元数据,具体描述信息如下:

图2 基础元素的关系

交互逻辑关系映射模型的schema定义如图3所示。

图3 交互逻辑关系映射模型的schema定义

2.1.3 PILM 的加载与执行

由上文知,PILM 主要作用于交互逻辑控制模块,该模块由交互逻辑定制和交互逻辑应用两个阶段完成。PILM在页面集成系统中的加载执行过程如图4所示。

页面交互逻辑定制在门户平台上对应一个Portlet,该Portlet处理所有对页面内容和逻辑关系的改写和定制,改写后的页面内容将写入缓存,定制所产生的交互逻辑关系和裁剪模板将写入PILM,交互逻辑关系在PILM 中表现为schema的嵌套层次结构,裁剪模板在PILM 中表现为XPath。继而,交互逻辑应用阶段中的Portlet处理器可以根据用户视图Portlet的ID,读取PILM 中对应Portlet的交互逻辑关系元数据和裁剪模板,完成后续工作。

另外,由于定制交互逻辑关系的人工成本较高,PILM Handler针对import关键字,根据引入的外部PILM 元数据,自动从Web中抓取和定制Portlet对应的页面内容和交互逻辑关系,以支持PILM 元数据文件在门户系统间自由移植和热部署。

2.2 页面分类定制算法

基于交互逻辑复用的页面集成框架需要对Web应用中的一组具有交互逻辑关系的页面集合进行按需定制和集成,所有定制需要人工完成,为了减少人工干预,本文按页面结构进行分类定制,使得具有相同结构的页面至多只需干预定制一次,从而实现一种自适应的页面交互逻辑定制过程。例如,人工定制的初始页面包含3个链接,系统可以根据用户对集成深度上的层次要求,选择自动集成3个链接的后续页面,并按需裁剪,依次类推。

首先,交互逻辑定制模块在单页面集成的基础上,抽取当前页面包含的超链接和表单,并对其进行改写补全,访问网络抓取对应的后续页面,然后将完整的超链接和表单参数传递给页面分类定制算法,以获取页面裁剪模板。

页面分类定制算法对以上两种情况分别处理。对于超链接,主要根据超链接之间的相似性与对应页面内容和结构之间相似性的关系[10],提取模板库中与对应超链接前缀相似的模板集合,选取权重最大的模板作为裁剪模板。权重的计算公式如下:Weight= (1-r)+r*log (similarLink*count),r=0.5;其中similarLink为超链接的前缀相似度,用编辑距离计算,count为用户校验的命中次数。对于表单请求,该算法主要通过选取各类别的随机参数进行提交的方式来判断表单的通配性,所谓通配性是指后续页面结构与请求参数值无关,例如百度搜索的表单提交具备通配性。否则,需要用户干预输入各类后续页面结构对应的特定参数类别和匹配范围。页面分类定制算法如图5所示。

由于裁剪模板的准确性对深度页面集成系统的友好性影响较大,系统在自适应的分类基础上,支持用户校验剪裁模板,将校验模板存入模板库,并且将用户反馈计入count(template,URL)中,以调节模板权重,使定制算法的准确度随着时间增长越来越好。

最后,交互逻辑定制模块将新增裁剪模板存入模板库,并将剪裁模板和对应的页面交互逻辑关系存入PILM。

2.3 交互逻辑关系的应用执行过程

在交互逻辑关系的定制阶段,将可定制的页面集合定制成为Portlet,交互逻辑关系的应用模块针对超链接和表单请求触发的交互逻辑关系分别进行处理,获取逻辑后续页面的内容,进而协助已定制Portlet中的页面片段进行逻辑有序的展示。具体执行过程如图6和图7所示。

Viewer Handler是该模块的核心,在系统实现中,主要包括HTTPViewerPortlet类和HTTPViewer类,前者继承自符合JSR Portlet规范[11]的基础类GenericPortlet,主要负责处理流程1~3和8,通过doView()方法进行逻辑处理,并展示Portlet组件;后者主要负责处理流程4~7,将通过逻辑处理获取的页面内容注入Portlet组件的iFrame中,完成内容显示。

图4 PILM 的加载执行过程

图5 页面分类定制算法

图6 超链接触发的交互逻辑关系的应用

图7 表单请求触发的交互逻辑关系的应用

HTTPViewer类包含两个重要的重载方法,getHTTPContent(portletID,hyperlinkID)方法和getHTTPContent(portletID,formID,params)方法,分别用于获取以上两种交互逻辑关系对应的后续页面内容。

首先,在处理超链接时,流程4和5主要通过getHTTPContent方法在PILM 中获取hyperlinkID 对应的后续页面的URL 和裁剪模板XPath,继而通过流程6 和7 在Cache中获取对应的页面片段,若页面过期或没有命中,则通过网络获取页面并根据模板对页面进行裁剪。

其次,在处理表单请求时,流程4 和5 通过getHTTPContent方法在PILM 中获取formID 对应源站点的base URL,并根据请求参数params的不同,在对应form元素下,由上到下依次匹配参数组列表,最后一组参数为通配符,对应默认模板,获取最先命中的参数组对应的模板。流程6和7通过base URL和参数列表封装并转发HTTP Request,并对返回的页面内容按模板进行裁剪。

3 页面集成框架的实现

OncePortal是中科院软件研究所自主研发的企业门户中间件,本文基于OncePortal平台进行开发实现。根据系统设计可知,系统实现分3个主要模块。

单页面集成模块实现PageCustomization类,通过页面抓取、页面解析、页面裁剪和页面配置,对单个页面的页面内容和界面样式进行集成,其中,页面裁剪借助HTMLCleaner类解析的页面结果,分别对HTML、CSS和JavaScript代码进行裁剪,仅保留对用户裁剪部分产生影响的代码片段,以减轻系统的内存负担。

交互逻辑控制模块包含两个阶段:定制阶段和应用阶段,分别对应HTMLCustomizePortlet类和HTMLViewer-Portlet类。其中,定制阶段通过借助PageCustomization类和LogicCustomization类实现对页面内容和交互逻辑的定制,LogicCustomization类通过页面分类器和PILM 处理器实现对页面逻辑的自适应定制和存储。应用阶段通过HTMLViewer类协助实现逻辑功能,在2.3中已详细描述。

缓存管理模块实现CacheManagement类,主要分为页面缓存和缓存刷新两个部分,页面缓存主要负责对于定制页面和页面裁剪片段的存储和获取,缓存刷新主要负责对过期页面进行更新,并根据裁剪模板获取新的页面片段。

系统实现的核心类图如图8所示。下面通过一个简单案例来展示基于交互逻辑复用的深度集成效果,如图9所示。

图8 系统实现的核心类

4 结束语

传统的页面集成系统普遍存在资源集成深度上的局限性问题,影响了资源在门户中的利用率。本文基于传统的页面集成技术,通过建立可定制的交互逻辑关系模型,对交互逻辑关系进行分类定制和应用,实现了一种自适应的深度页面集成框架,提高了资源利用率和复用深度。但是这种自适应的分类定制方法需要部分人工干预,下一步的研究工作将针对这个问题进行深入研究,通过学习算法训练人工定制部分的页面集合,来预测每个类别的页面结构下用户所需要的裁剪模板。

图9 豆瓣在OncePortal上的集成案例

[1]Oracle WebCenter portal[EB/OL].https://www.oracle.com/us/products/middleware/webcenter/overview/index.html,2011.

[2]IBM WebSphere portal[EB/OL].http://www.ibm.com/developerworks/websphere/,2013.

[3]W3C.XML path language (XPath),version 3.0 [EB/OL].http://www.w3.org/TR/xpath-30/,2013.

[4]ZHANG Liping,SONG Jingyu,WEI Jun.Deep integration model of Web applications towards portal middleware[J].Application Research of Computers,2007,24 (5):20-23 (in Chinese).[张立平,宋靖宇,魏峻.一种面向门户中间件的Web应用深度集成模型 [J].计算机应用研究,2007,24(5):20-23.]

[5]Song J,Wei J,Wan S,et al.An interaction instance oriented approach for Web application integration in portals[C]//Computer Software and Applications Conference,2007:353-360.

[6]ONCE portal [EB/OL].http://www.once.com.cn/Once-Portal/portal,2011.

[7]Abu-Taleb S,Mustafa H.Improving Web services security models[J].Int Arab J Inf Technol,2010,7 (4):428-434.

[8]Díaz O,Trujillo S,Pérez S.Turning portlets into services:The consumer profile [C]//Proceedings of the 16th International Conference on World Wide Web.ACM,2007:913-922.

[9]Apache Software Foundation.WSRP4Java [OL].http://portals.apache.org/wsrp4j/,2010.

[10]Qi X,Davison B D.Web page classification:Features and algorithms[J].ACM Computing Surveys(CSUR),2009,41(2):12.

[11]JCP.JSR 268 Portlet API Specification 2.0 [EB/OL].https://www.jcp.org/en/jsr/detail?id=286,2008.

猜你喜欢
门户表单页面
刷新生活的页面
关隘:要道门户
电子表单系统应用分析
西域门户——两关遗址
基于内外网门户系统的研究
浅谈网页制作中表单的教学
中小型高校图书馆门户的设计与实现——以吉林师范大学图书馆门户为例
动态表单技术在教学管理中的应用*
基于Java可视化测绘生产流程表单的设计及实现
网站结构在SEO中的研究与应用