可视化服务网络用户交互系统
技术领域
本发明涉及一种基于语义的web服务关系网络,特别是一种涉及服务网络(Web Service Network)系统展示与编辑的交互系统。
背景技术
在服务网络中,每个服务作为网络中的节点,服务之间的关系作为网络中的边。这些边和节点都按照服务本体模型的结构存储在数据库中。虽然这种用本体的形式来存储服务以及服务之间的关系使得服务网络能够包含尽可能多的语义信息,便于服务关系计算和服务动态组合,但同时存在以下缺陷:
服务和服务之间的关系以某些字段的集合的本体形式持久化储存在数据库中,用户需使用SQL或Jena才能够查看和修改服务之间的关系,无法直观地看到服务网络的结构;
对服务网络中节点和边的查询和编辑(包括添加、删除、修改),只能通过调用服务网络提供的相应接口进行,不便于用户操作;
现有的这种服务网络结构,只能以单个服务为最小粒度对服务网络进行操作,用户不能获知每个服务的内部细节,无法进一步编辑服务的具体信息;
综合考虑现有服务网络存在的以上缺陷,本发明从服务网络存储结构进行分析,结合服务网络的应用场景构建了一套可视化的服务网络用户交互系统。
发明内容
鉴于现有中存在的技术问题,本发明提出了一种可视化服务网络用户交互系统,在服务网络提供的接口之上,将服务网络的拓扑结构和单个服务的内部结构分别以网络和树的方式进行可视化处理,并将服务网络结构可视化地向用户进行展示,使服务网络能够方便、并且细粒度地对单个服务的细节进行添加、删除、修改、查询等操作。
本发明提出了一种可视化服务网络用户交互系统,包括服务网络系统架构中的数据流和控制流,数据结构转化通过调用链接优化层数据库得到数据源,对该数据源进行格式转换,其特征在于,该系统还包括以下模块:
服务列表显示模块:以列表的形式显示用户查询的返回结果,其中包括对抽象服务和具体服务的查询,用户对抽象服务进行查询,得到该抽象服务包含的所有具体服务;对具体服务进行查询,得到满足查询条件的具体服务集合。
服务结构模块:以树型结构对服务内部细节进行展示,包括服务的基本属性信息、接口信息和参数信息,对每个服务的内部细节进行展示;
网络编辑模块:监听局部网络模块中的鼠标单击事件,得到当前选中的服务或者关系的相关参数,根据当前选中内容重置相关的表单内容,以表单形式实现服务网络中服务节点和服务间关系的编辑;
局部网络模块:以网络图的形式绘制出以某一特定服务节点为中心的服务网络子图以及中心服务与该网络子图中所涉及到的所有服务之间存在的所有关系,以可视化操作界面支持网络拓扑结构的动态变换;
其中,服务列表模块通过调用JavaScript脚本函数,间接实现向上述其它三个模块进行消息传递:更新局部网络模块的中心节点;更新服务结构模块所展示的当前服务;更改网络编辑模块中服务属性表单中的内容;
局部网络模块选中不同的服务节点,通过调用JavaScript脚本,更改被展示的服务结构模块的服务结构内容,以及更改网络编辑模块中服务关系表单中的内容。
所述服务列表显示模块还包括以下操作:监听鼠标指针的移动事件,并且对指针掠过的位置进行局部放大。
所述服务结构模块中采用的树型结构为一个服务的内部结构,该树型结构的根代表该服务的名称,第一级子节点代表该服务所具有的接口名称,第二级子节点代表该接口的参数分为输入和输出两种,第三级子节点是输入(Input)或输出(Output)参数的名称,最后一级的叶子节点表示各个参数的数据类型。
所述网络编辑模块对监听到的鼠标单击事件进行可视化编辑。
所述局部网络模块中,用户通过点击的方式切换该网络子图的中心节点,从而实现以不同视角观察网络。
所述数据源的格式转换操作包括以下步骤:首先,通过够构造相应的SQL语句,从原始数据源中过滤掉无关信息,得到有效的数据集合;然后,将该数据集合的中每一条数据作为一行,填入事先构造好的节点数据表(NodeTable)或边数据表(EdgeTable)中,进而得到了完备的节点数据表和边数据表;最后,利用前面所述的两张表得到可视化展示所需要的图结构(Graph)。
本发明与现有技术相比,本发明实现了服务网络的可视化操作,新的服务网络系统提供可视化的编辑和展示功能,大大方便了操作,使服务网络系统变得操作更加直观和简单,提高了系统的操作效率。
附图说明
图1为本发明现有技术的服务网络数据流及控制流结构图;
图2为本发明所提出的可视化服务网络用户交互系统所采用的数据流示意图;
图3为本发明所提出可视化服务网络用户交互系统的数据格式转换流程图;
图4为本发明所提出可视化服务网络用户交互系统的服务列表模块的操作界面图;
图5为本发明所提出的可视化服务网络用户交互系统的服务结构模块的操作界面图;
图6为本发明所提出可视化服务网络用户交互系统的网络编辑模块的操作界面图;
图7为本发明所提出可视化服务网络用户交互系统的局部网络模块的操作界面图;
图8为本发明所提出可视化服务网络用户交互系统的模块间通信图。
具体实施方式
本发明的交互系统中实现服务网络的服务及服务关系的展示和编辑,所有信息都来自于服务网络,现有技术中,基于语义的服务网络系统架构参见图1,它包括了该系统的具体数据流和控制流。
本发明获取数据源的方式共有三种(参见图1中的数据流),即:
(1)不使用优化层,通过服务网络数据接口直接从本体层数据库得到数据。
(2)使用优化层,通过本体层向优化层的同步进程,调用服务网络数据接口从优化层数据库得到数据。
(3)通过同步进程,使数据由本体层同步到优化层,然后直接调用Prefuse.data.sql类得到数据源。
由于服务网络提供的数据接口采用Hibernate技术实现,执行效率相对较低,超出了用户可接受的范围。综合考虑数据的完备性和高效性,本发明采用上述第三种途径作为数据源的获取方式,如图2中深色数据流所示。
如图3所示,为本发明数据源获取中,由数据源到展示模块的数据结构转化流程:
通过调用链接优化层数据库的方法能够得到数据源,但是由于该数据源并不符合交互工具中各个模块所要求的数据格式,所以需要首先对该数据源进行格式转换,转换的数据流图参见图2所示。
由于原始数据源中的部分数据信息对于网络展示来说是冗余的,所以格式转换的方法如下:首先,通过够构造相应的SQL语句,从原始数据源中过滤掉无关信息,得到有效的数据集合。然后,将该数据集合的中每一条数据作为一行,填入到事先构造好的节点数据表(NodeTable)或边数据表(EdgeTable)中,进而得到了完备的节点数据表和边数据表。最后,有了这两张表,就能够得到可视化展示所需要的图结构(Graph)。
本发明考虑到服务网络的结构和功能特点,在不丢失任何语义信息的前提下,向用户提供直观、方便的操作平台。整个系统除了包括服务网络系统架构中的已有数据流和控制流以外,还包括以下几个模块:
服务列表显示模块:该模块以列表的形式显示用户查询的返回结果,其中包括对抽象服务和具体服务的查询。服务网络中的服务分为两个层次,分别是抽象服务和具体服务。用户对抽象服务进行查询,能够得到该抽象服务包含的所有具体服务;对具体服务进行查询,能够得到满足查询条件的具体服务集合。该模块还提供一个扩展功能,即当查询的结果集包含较多的服务时,为了能够保证显示结果集的完整性,同时又能使每个服务结果都清晰可见,采用局部放大的技术来实现,即FishEye视图。FishEye视图的基本原理是监听鼠标指针的移动事件,并且对指针掠过的位置进行局部放大。该服务列表模块的局部放大操作界面如图3所示。
服务结构模块:以树型结构对服务内部细节进行展示,包括服务的基本属性信息、接口信息和参数信息。该模块的主要功能是对每个服务的内部细节进行展示,从而使用户能够全面地了解每个服务的结构和功能。由于每个服务可以有多个接口,每个接口又可以包含多个输入、输出参数,所以从整体上看,每个服务都是树型结构。使用树型结构展示服务内部细节,使得层次更加清晰,内容更加全面。
如图4所示,为一个服务的内部结构的树型结构示意,概括地来讲,该树型结构的根代表该服务的名称,第一级子节点代表该服务所具有的接口名称,第二级子节点代表该接口的参数分为输入和输出两种,第三级子节点是输入(Input)或输出(Output)参数的名称,最后一级的叶子节点表示各个参数的数据类型。以图4所示的服务为例说明如下:该服务的名称是FlightStatus;该服务具有7个接口,名称分别为AirportList、AirportInfo、DateList、Arrival、Departure、FlightInfo、FlightSearch;其中Arrival接口具有code和date两个输入参数,以及包括flt_pk、company和plan等在内的14个输出参数;其中flt_pk和company为字符串(string)类型,plan为时间(dateTime)类型。
网络编辑模块:以表单的形式实现服务网络中服务节点和服务间关系的编辑。由于服务网络中服务的状态以及服务之间的关系是动态变化的,所以需要为用户提供方便的网络编辑模块。该模块通过监听局部网络模块中的鼠标单击事件,得到当前选中的服务或者关系的相关参数,根据当前选中内容重置相关的表单内容,用户只需要点击按钮,即可完成相应的网络编辑工作。如图5所示,为该模块对监听到的鼠标单击事件进行编辑的可视化界面,可以看出,在此模块中可以对以下鼠标事件进行监听和可视化编辑,图5的界面中包括:
Service Relation Edit(服务关系编辑):Service(输入关系的主体服务):
has Relation(关系种类):
with Service:(关系的客体服务):
Service Edit(服务编辑)Service Category(输入要编辑的服务分类):
ServiceName(服务名称):
Service Provider(服务提供方信息):。
局部网络模块:以网络图的形式绘制出以某一特定服务节点为中心的网络子图,并且支持网络拓扑结构的动态变换。为了使用户能够全面地了解到与某一特定服务相关的所有服务,该模块能够展示以该服务为中心的服务网络子图,以及中心服务与该网络子图中所涉及到的所有服务之间存在的所有关系。另外,用户可以通过点击的方式切换该网络子图的中心节点,从不同角度观察网络。同时,为了能够快速地找到该网络子图中的任何服务,支持以服务名称为关键字的服务检索。如图6所示,为该模块的操作界面示意。
上述四个模块之间并不是相互独立的,而彼此间能够进行通信与交互。各个模块之间的模块间通信方式如图8所示。
服务列表(Service List View)模块通过调用JavaScript脚本函数,间接实现向其它三个模块的消息传递:更新局部网络模块(Radial Graph View)的中心节点;更新服务结构模块(Tree View)所展示的当前服务;更改网络编辑模块(Editor)中服务属性表单中的内容;
另外,局部网络模块(Radial Graph View)选中不同的服务节点,通过调用JavaScript脚本,更改被展示的服务结构模块(Tree View)的服务结构内容,以及更改网络编辑模块(Editor)中服务关系表单中的内容。
以上内容仅为本发明的实施例,其目的并非用于对本发明所提出的系统及方法的限制,本发明的保护范围以权利要求为准。在不脱离本发明的精神和范围的情况下,本领域技术人员在不偏离本发明的范围和精神的情况下,对其进行的关于形式和细节的种种显而易见的修改或变化均应落在本发明的保护范围之内。