论文部分内容阅读
【摘要】服务发现是服务计算中的关键技术之一,服务发现的一种重要方法是通过数据挖掘技术挖掘服务或服务实现(Java类)之间的关系。服务的关系包括相似关系和前驱后继关系,服务实现(Java类)的关系包括继成、关联、依赖。然而这些关系挖掘结果往往很难理解,限制了用户的使用。
【关键词】WEB服务关系;拓扑显示工具;设计
【中图分类号】TP【文献标识码】A
【文章编号】1007-4309(2011)02-0049-2
本文通过分析服务之间的各种关系,利用成熟的信息可视化技术,包括可视化映射技术、图形显示技术和交互控制技术等,并对信息可视化的参考模型和关键技术做了深入详细地分析。在此基础上,设计一个直观的WEB服务关系拓扑展现工具。
一、系统需求和功能的概要分析
服务关系显现工具用于展现一次挖掘作业的结果,需要展现的关系包括:Web服务相似关系、Web服务前驱后继关系、JAVA类继成关系、JAVA类关联关系、和JAVA类依赖关系。对系统的功能需求的分析可基于两个方面的考虑:从展现的关系角度和从用户交互功能角度。除上述功能需求外,还有一些非功能的要求,比如界面的整体美观性、用户操作友好性等等。
二、服务关系显示工具的体系结构
(一)外部结构设计
首先,用户在“服务总线拓扑展示模块”展示的总线树形界面中,单击某次挖掘作业的节点,引发本工具作为Eclipse插件的透视图显示该次挖掘作业的挖掘结果,即WEB服务及WEB服务实现(JAVA类)的5种关系。
然后,我的显示工具从上述单击事件中得到了作业号(JobId),并以该作业号为参数,调用查询原子接口,原子接口由“服务关系挖掘模块”和“Java类动静态分析模块”提供,可以查询所有WEB服务和JAVA类,以及其各类关系,得到关系的查询结果。
最后将此次查询结果为本显示工具的输入,WEB服务及WEB服务实现(JAVA类)的5种关系将可视化的表现出来。
(二)内部子模块结构及功能设计
内部结构
根据需求分析,并参考信息可视化的模型和Prefuse的框架,设计出了本工具的内部结构。将之划分为四部分:数据载入、关系可视化演示、交互控制和用户主界面,如上图所示。下面是其结构和功能的设计介绍:
1.数据载入模块
由于本工具的开发与整个项目开发的其他模块同时进行,受挖掘信息库的进度限制,在数据输入上,准备了两套方案:
一是,调用“服务关系挖掘模块”提供的查询所有WEB服务和WEB服务关系的接口,调用“Java类动静态分析模块”提供的查询所有JAVA类和JAVA类关系的接口,得到查询结果,并将此结果作为输入,载入到关系的数据表抽象结构(Graph、Tree的数据结构)中,并将该数据表作为参数传递给关系可视化演示模块。这个方案是按照项目要求应该要实现的方案,但考虑到开发初期测试的问题,所以准备了第二套方案。
二是,读取以GraphML格式描述的XML文件,该方案直接使用Prefuse数据转化的技术,有专门用作读GraphML文件的类GraphMLReader,其转换数据时调用了XML文件解析器,将关系描述载入到数据表抽象结构中。这个方案是仅用作开发初期的测试,在开发其余子模块时用来模拟的方案。
2.关系可视化演示模块
该模块是整个工具的核心,包含了工具所需的所有可视化演示的类,包括生成聚簇图、力导引图、区域分块图、辐射图的类。
每个可视化演示的类都将完成如下功能:将从数据载入模块得到的数据表,通过调用Prefuse的映射技术接口,映射成相应的可视化数据结构,包含坐标位置、大小、形状、颜色等信息,然后将这些可视化数据结构,通过调用Prefuse的图形显示技术,渲染表现成可视化对象,即JAVA组件,显示出来。最后,在可视化对象上,添加交互控制模块提供的各种类的实例,形成演示。
3.交互控制模块
包括自定义的交互控制类,在关系可视化显示结果上进行的交互控制处理。由于Prefuse已提供了很多必要的交互控制类,比如拖拽、平移、放大缩小等,所以这部分功能不用另外实现,只需调用接口。但根据需求还有一些交互控制,比如鼠标浮动到某节点处时,其节点信息在ToolTip中的显示、在控制面板中的表格中的显示、辐射图的中心节点变换、相邻节点的高亮显示等等,需要本工具自行定义。
4.用户主界面模块
负责关系可视化显示的结果在主界面中显示,还有控制面板中各控制组件的显示、布局、添加事件响应等。负责视图的切换、全局/过滤效果切换、布局效果的切换控制,并针对不同的关系演示视图,生成相应的搜索框、生成信息表格、生成力导引控制面板。
在用户主界面模块中,还要实例化数据载入和关系可视化演示的相关类。
三、执行流程设计
首先,从用户界面处得到显示命令、要显示的关系类型、以及挖掘作业的ID号,调用数据载入;数据载入模块查询数据库中的关系信息,并构造出关系图的数据结构Graph,把它传递给关系可视化显示模块;通过实例化关系显示模块的相关类,然后把显示的结果视图加载到用户界面上;用户在关系可视化显示上进行的鼠标动作、如拖拽、单击、双击、放大缩小或查询请求等,都通过交互控制模块来控制,并返回新的结果。
四、界面及关系的表现形式设计
(一)用户界面
用户界面,分左右两部分,左边用于视图演示区用于显示关系,右边是控制面板。中间的分割线可用鼠标点击拖拽移动,任意改变左右两部分的比例。
控制面板包括关系视图切换、搜索栏、布局切换、信息栏、力导引控制板五部分。其中,关系视图切换,是一个下拉菜单,可选择显示Web服务前驱后继关系、Web服务相似关系、JAVA类继承关系、关联关系、依赖关系,共5种关系,鼠标选择点击后,左边关系视图区显示当前选择的关系演示。下边两个按钮提供过滤和全局视图两种视图模式。全局模式可显示所有的节点,过滤模式只显示当前用户选择的焦点节点(Focus_Item)及其相邻的节点(Neighbor)的组件,其余组件不可见。
搜索栏用于查询节点,用户输入后,采用前方一致的原则,即时响应输入,显示当前匹配数;布局切换提供若干按钮,用于变更当前视图的布局方式;信息栏用表格的形式,显示当前鼠标浮动所在节点的详细信息;力导引控制板,用于调节节点与节点之间的引力斥力的大小,边的张力,从而改变节点之间的距离。
(二)关系的表现形式设计
1.WEB服务相似关系
可以将服务相似关系抽象成树形结构,即层次图。有一个根节点,根节点无实际意义,第一层深度为1的分支节点代表服务的分类,第二层深度为2的节点,即树的叶子节点代表单个服务。相似的服务可聚集在同一个区域,不同的区域连接到同一个中点上,形成一个星状,相似服务彼此聚集在一起的聚簇表现,称之为聚簇图,
2.WEB服务前驱后继关系、JAVA类继承、关联、依赖关系
这四种关系,其关系结构类似,都可抽象为网状图,有向,且可能非连通,因此采用相同的布局方式。力导引图采用了可视化算法中的力导引算法(FDA),通过不断模拟节点之间引力斥力的大小,以及边的张力大小,来计算节点与节点之间的排布距离,且用户可自主调节力的大小,可以将所有节点均匀分布显示在视图中,是一个动态的排布效果。对于节点众多,用户期望看到总体效果的需求非常有利。
辐射图以某节点为中心,其余节点根据于中心节点的距离(从中心节点到该节点需要进过的节点数)依次辐射显示在中心节点的周围,形成辐射圆环状。这种特殊的聚焦特性,非常有利于查看单个节点的局部信息的情况。所以,想要综合两种布局的优势以满足用户挖掘信息的需求,决定采用这两种布局方式。
五、数据结构设计
有必要专门说明一下数据表的结构设计,数据表就是用来表述关系拓扑信息的数据结构。如前所述,WEB服务前驱后继关系、JAVA类继承、关联、依赖关系可表现为有向图,我们可以使用Prefuse提供的Graph的数据结构来表述,Graph中有两个表(Table),包含一个节点表(Nodes Table)和一个边的表(Edge Table)。节点表的每一行代表一个节点,边表的每一行代表一条边。节点表的字段可由用户自行定义,边表有源(source)和目标(target)两个字段,分别指向对应节点的ID。图的所有节点和所有的边都要在表中注册。服务的相似关系可表述为一棵树,但树可以看做无回路的图,因此可以先用Graph来描述其关系拓扑,然后,通过指定其根节点,来将Graph转换为Tree的数据结构。
六、小结
本文首先从用户角度分析了服务关系显示工具功能需求,然后对其外部结构进行了阐述,根据需求设计出了工具内部的整体结构,并分析了各子模块要实现的主要功能,设计出了用户界面和预期的关系演示表现形式。在此基础上,根据项目需求设计了WEB服务及服务实现(JAVA类)的关系拓扑显示工具。
【参考文献】
[1]秦甲拓,张浚.基于Web的可视化数据挖掘工具综述[J].实验科学与技术,2006.12.
[2]王柏,吴巍,徐超群,吴斌.复杂网络可视化研究综述[J].计算机科学,2007.
【收稿日期】2011年1月10日
【作者简介】李凤祥(1972- ):男,辽宁凌源人,讲师,研究方向:计算机教学。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
【关键词】WEB服务关系;拓扑显示工具;设计
【中图分类号】TP【文献标识码】A
【文章编号】1007-4309(2011)02-0049-2
本文通过分析服务之间的各种关系,利用成熟的信息可视化技术,包括可视化映射技术、图形显示技术和交互控制技术等,并对信息可视化的参考模型和关键技术做了深入详细地分析。在此基础上,设计一个直观的WEB服务关系拓扑展现工具。
一、系统需求和功能的概要分析
服务关系显现工具用于展现一次挖掘作业的结果,需要展现的关系包括:Web服务相似关系、Web服务前驱后继关系、JAVA类继成关系、JAVA类关联关系、和JAVA类依赖关系。对系统的功能需求的分析可基于两个方面的考虑:从展现的关系角度和从用户交互功能角度。除上述功能需求外,还有一些非功能的要求,比如界面的整体美观性、用户操作友好性等等。
二、服务关系显示工具的体系结构
(一)外部结构设计
首先,用户在“服务总线拓扑展示模块”展示的总线树形界面中,单击某次挖掘作业的节点,引发本工具作为Eclipse插件的透视图显示该次挖掘作业的挖掘结果,即WEB服务及WEB服务实现(JAVA类)的5种关系。
然后,我的显示工具从上述单击事件中得到了作业号(JobId),并以该作业号为参数,调用查询原子接口,原子接口由“服务关系挖掘模块”和“Java类动静态分析模块”提供,可以查询所有WEB服务和JAVA类,以及其各类关系,得到关系的查询结果。
最后将此次查询结果为本显示工具的输入,WEB服务及WEB服务实现(JAVA类)的5种关系将可视化的表现出来。
(二)内部子模块结构及功能设计
内部结构
根据需求分析,并参考信息可视化的模型和Prefuse的框架,设计出了本工具的内部结构。将之划分为四部分:数据载入、关系可视化演示、交互控制和用户主界面,如上图所示。下面是其结构和功能的设计介绍:
1.数据载入模块
由于本工具的开发与整个项目开发的其他模块同时进行,受挖掘信息库的进度限制,在数据输入上,准备了两套方案:
一是,调用“服务关系挖掘模块”提供的查询所有WEB服务和WEB服务关系的接口,调用“Java类动静态分析模块”提供的查询所有JAVA类和JAVA类关系的接口,得到查询结果,并将此结果作为输入,载入到关系的数据表抽象结构(Graph、Tree的数据结构)中,并将该数据表作为参数传递给关系可视化演示模块。这个方案是按照项目要求应该要实现的方案,但考虑到开发初期测试的问题,所以准备了第二套方案。
二是,读取以GraphML格式描述的XML文件,该方案直接使用Prefuse数据转化的技术,有专门用作读GraphML文件的类GraphMLReader,其转换数据时调用了XML文件解析器,将关系描述载入到数据表抽象结构中。这个方案是仅用作开发初期的测试,在开发其余子模块时用来模拟的方案。
2.关系可视化演示模块
该模块是整个工具的核心,包含了工具所需的所有可视化演示的类,包括生成聚簇图、力导引图、区域分块图、辐射图的类。
每个可视化演示的类都将完成如下功能:将从数据载入模块得到的数据表,通过调用Prefuse的映射技术接口,映射成相应的可视化数据结构,包含坐标位置、大小、形状、颜色等信息,然后将这些可视化数据结构,通过调用Prefuse的图形显示技术,渲染表现成可视化对象,即JAVA组件,显示出来。最后,在可视化对象上,添加交互控制模块提供的各种类的实例,形成演示。
3.交互控制模块
包括自定义的交互控制类,在关系可视化显示结果上进行的交互控制处理。由于Prefuse已提供了很多必要的交互控制类,比如拖拽、平移、放大缩小等,所以这部分功能不用另外实现,只需调用接口。但根据需求还有一些交互控制,比如鼠标浮动到某节点处时,其节点信息在ToolTip中的显示、在控制面板中的表格中的显示、辐射图的中心节点变换、相邻节点的高亮显示等等,需要本工具自行定义。
4.用户主界面模块
负责关系可视化显示的结果在主界面中显示,还有控制面板中各控制组件的显示、布局、添加事件响应等。负责视图的切换、全局/过滤效果切换、布局效果的切换控制,并针对不同的关系演示视图,生成相应的搜索框、生成信息表格、生成力导引控制面板。
在用户主界面模块中,还要实例化数据载入和关系可视化演示的相关类。
三、执行流程设计
首先,从用户界面处得到显示命令、要显示的关系类型、以及挖掘作业的ID号,调用数据载入;数据载入模块查询数据库中的关系信息,并构造出关系图的数据结构Graph,把它传递给关系可视化显示模块;通过实例化关系显示模块的相关类,然后把显示的结果视图加载到用户界面上;用户在关系可视化显示上进行的鼠标动作、如拖拽、单击、双击、放大缩小或查询请求等,都通过交互控制模块来控制,并返回新的结果。
四、界面及关系的表现形式设计
(一)用户界面
用户界面,分左右两部分,左边用于视图演示区用于显示关系,右边是控制面板。中间的分割线可用鼠标点击拖拽移动,任意改变左右两部分的比例。
控制面板包括关系视图切换、搜索栏、布局切换、信息栏、力导引控制板五部分。其中,关系视图切换,是一个下拉菜单,可选择显示Web服务前驱后继关系、Web服务相似关系、JAVA类继承关系、关联关系、依赖关系,共5种关系,鼠标选择点击后,左边关系视图区显示当前选择的关系演示。下边两个按钮提供过滤和全局视图两种视图模式。全局模式可显示所有的节点,过滤模式只显示当前用户选择的焦点节点(Focus_Item)及其相邻的节点(Neighbor)的组件,其余组件不可见。
搜索栏用于查询节点,用户输入后,采用前方一致的原则,即时响应输入,显示当前匹配数;布局切换提供若干按钮,用于变更当前视图的布局方式;信息栏用表格的形式,显示当前鼠标浮动所在节点的详细信息;力导引控制板,用于调节节点与节点之间的引力斥力的大小,边的张力,从而改变节点之间的距离。
(二)关系的表现形式设计
1.WEB服务相似关系
可以将服务相似关系抽象成树形结构,即层次图。有一个根节点,根节点无实际意义,第一层深度为1的分支节点代表服务的分类,第二层深度为2的节点,即树的叶子节点代表单个服务。相似的服务可聚集在同一个区域,不同的区域连接到同一个中点上,形成一个星状,相似服务彼此聚集在一起的聚簇表现,称之为聚簇图,
2.WEB服务前驱后继关系、JAVA类继承、关联、依赖关系
这四种关系,其关系结构类似,都可抽象为网状图,有向,且可能非连通,因此采用相同的布局方式。力导引图采用了可视化算法中的力导引算法(FDA),通过不断模拟节点之间引力斥力的大小,以及边的张力大小,来计算节点与节点之间的排布距离,且用户可自主调节力的大小,可以将所有节点均匀分布显示在视图中,是一个动态的排布效果。对于节点众多,用户期望看到总体效果的需求非常有利。
辐射图以某节点为中心,其余节点根据于中心节点的距离(从中心节点到该节点需要进过的节点数)依次辐射显示在中心节点的周围,形成辐射圆环状。这种特殊的聚焦特性,非常有利于查看单个节点的局部信息的情况。所以,想要综合两种布局的优势以满足用户挖掘信息的需求,决定采用这两种布局方式。
五、数据结构设计
有必要专门说明一下数据表的结构设计,数据表就是用来表述关系拓扑信息的数据结构。如前所述,WEB服务前驱后继关系、JAVA类继承、关联、依赖关系可表现为有向图,我们可以使用Prefuse提供的Graph的数据结构来表述,Graph中有两个表(Table),包含一个节点表(Nodes Table)和一个边的表(Edge Table)。节点表的每一行代表一个节点,边表的每一行代表一条边。节点表的字段可由用户自行定义,边表有源(source)和目标(target)两个字段,分别指向对应节点的ID。图的所有节点和所有的边都要在表中注册。服务的相似关系可表述为一棵树,但树可以看做无回路的图,因此可以先用Graph来描述其关系拓扑,然后,通过指定其根节点,来将Graph转换为Tree的数据结构。
六、小结
本文首先从用户角度分析了服务关系显示工具功能需求,然后对其外部结构进行了阐述,根据需求设计出了工具内部的整体结构,并分析了各子模块要实现的主要功能,设计出了用户界面和预期的关系演示表现形式。在此基础上,根据项目需求设计了WEB服务及服务实现(JAVA类)的关系拓扑显示工具。
【参考文献】
[1]秦甲拓,张浚.基于Web的可视化数据挖掘工具综述[J].实验科学与技术,2006.12.
[2]王柏,吴巍,徐超群,吴斌.复杂网络可视化研究综述[J].计算机科学,2007.
【收稿日期】2011年1月10日
【作者简介】李凤祥(1972- ):男,辽宁凌源人,讲师,研究方向:计算机教学。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文