为用户接口组件适配数据模型的方法和系统的制作方法

文档序号:6360669阅读:183来源:国知局
专利名称:为用户接口组件适配数据模型的方法和系统的制作方法
技术领域
本发明通常涉及数据的图形显示,更具体地说,涉及适配源数据模型以用于在具有目标数据模型的用户接口组件中显示的方法和系统。
背景技术
今天,工业界正努力在图形用户接口编程领域中提供改进。因为快速成型的使用和诸如甘特图表(Gantt Chart)、地图、统计视图和其它复杂视觉显示的视觉和交互软件组件的开发变得越来越普遍,逐渐需要简化将复杂应用数据模型对接到显示模型的这种复杂用户接口组件的方法。如众所知,复杂应用模型与用户接口组件的对接需要创建模型适配器。这种模型适配器已经变成主要的开发项目,因为应用和用户接口的复杂性都已增加。 另一方面,得到普遍认同的是为给定的应用实施图形用户接口的时间大约占用了软件开发总时间的一半。为了减少这种时间,可视化工具包和组件提供了可以实例化并连接至匹配的数据模型的现成可视化。但是,对很多复杂用户接口组件而言,创建数据模型以提供给组件的用户互动部分通常非常复杂。这就是说,复杂的模型适配器必须得到开发以允许特定的应用利用用户接口组件提供的高级特征。关于模型适配器已经提出了很多关注点。一种关注点在于每个应用数据模型都是独特的,以至于这些模型适配器都不能在一种应用和另一种应用之间可用,并且很难维护。特别是,这些适配器紧密耦合至应用和用户接口,导致任意部分需要改进时都会出现争论点。在甘特图表类型的用户接口组件的一个实例中,图形组件的数据模型元素是“任务”对象。每个任务对象都有时间、持续时间、还可能有附属于这些对象的标签或各种约束。通常,在应用的后端侧有集成许多约束和由单个任务和附加数据组成的复杂活动描述的复杂调度应用。当这种甘特图表在诸如调度系统的一些最优化系统中使用时,可能发生用于最优化的数据模型并不总是匹配将提供给用户接口组件的数据模型的情况。而且,用于创建调度应用的一些最优化工具,例如IBM ILOG CP0,需要为可以由终端用户轻易适配的随时可用的用户接口组件提供有限用户接口配置。许多现有方案解决了为服务(例如存储,用户接口,验证……)适配应用数据模型的问题。一种用于创建用户接口的方法提供能够声明性地指定模型适配器的一些数据绑定特征。例如,Dojo 数据绑定模块(http://dojotoolkit. org/api/dojox/wire. html)提供将应用数据模型绑定其接口的机制。这个模块需要绑定将被映射并且在匹配并不直接的情况下也提供转换步骤的每一个属性。当提供接口和应用之间的松弛度时,构建这种模型适配器可能极端冗长,并且那些模型难以维护,因为接口和应用任意一方发生变化都需要更新适配器。模型驱动工程(MDE)领域中提供了其它方案。模型驱动工程提供了互动工具和语言的开发以允许将复杂的源数据模型映射到具有广泛灵活性的目标数据。模型驱动工程系统普遍为确保源模型的语义保存而依赖用于将模型映射到另一模型的声明性语言。这种 MDE 系统的实例在题为 “First experiments with the ATL model transformationlanguage: Transforming XSLT into XQuery” (OOPSLA 2003 研讨会,加利福尼亚州阿纳海姆市,2003 年,作者Bezivin, J, Dupe, G, Jouault, F,Pitette, G,和 Rougui, JE)的文章以及题为 “Integrating dynamic views using model driven development”(关于协同石开究的高级研究中心的2006大会会议记录,(加拿大安大略省多伦多,2006年10月16-19日),CASCON[Omicron]6. ACM出版社,纽约州纽约市,17,作者Bull, R. I)的文章中得到了描述。这种MDE方法涉及目的的普遍性并且仅聚焦于保存强语义。而且,MDE工具并不允许完全自动进行模型匹配,其代价在于可能出现错误,不匹配或丢弃数据。被称为“Perfect JPattern”组件的另一模型匹配方案提供了在源和目标之间进行匹配的部分名称和类型。这种方案允许解决源和目标之间的细微差异而无需特别的开发者干预。但是,这种组件并不适合用于互动情境。其还需要组件的用户明确激活特定匹配能力以从这种可适配性中受益。在组件找不到合适模型的事件中,不需要付出补充努力以提供工作匹配并且该组件会简单地信号通知错误和停止操作。
在US 7444330中描述了另一种方法,提供一种模型匹配方案以基于树匹配算法将源模型匹配至目标模型。在US 7444330的方法中,需要获取源模型和目标模型之间的完全匹配。如果该匹配被检测到具有误差,则该匹配需要进行纠正,并且该纠正阶段涉及提示用户手动提供输入。另外,如果该模型适配器不能找到满意的匹配,则用户接口组件也会返回消息错误和停止操作。

发明内容
根据本发明,提供一种根据所附独立权利要求I的适配源数据模型以用于用户接口组件中显示的方法,一种根据所附权利要求11的计算机程序和一种根据所附权利要求13的系统。所附的从属权利要求2至10中定义了优选的实施例。因此本发明提供了一种允许直接将特定应用数据模型插入通用可视化组件的容错和透明模型适配方案。本发明在应用数据模型上实施松散的图形匹配,提取可以呈现给用户的模型部分并且丢弃或呈现其它不能由用户接口组件(可视化组件)呈现的部分的交互方式。本发明还允许将复杂的可视化组件,例如甘特图表耦合到以最小开发开销生成源数据模型的任意类型的应用。本发明的特别优点在于应用原型设计的情境、严格时间限制下的开发、或更普遍地说用于只有有限资源可以花费在用户接口开发上的高级用户接口的开发。根据本发明,无需具有为特殊源数据模型和目标模型预定义的定制模型适配器。其适于为任意目标用户接口组件处理任何源数据模型。这在需要将数据模型与可视化组件直接挂钩的开发的初级阶段特别有用。因而本发明排除了用于构建复杂模型适配器的中间开发阶段的需求。在原型设计和开发涉及应用数据模型和用户接口上的迭代的概念软件的证明的情境中,通过本发明的部分匹配方案获得了更大的灵活性。更确切地说,模型适配完全自动地从可能进化的数据模型创建。根据本发明的模型适配方案允许
-外化大量匹配规则,从而可以将任意应用数据模型匹配到多个用户接口组件,每个组件提供特定的目标数据模型。-广泛接受“可能的”方案,即使匹配方案不完美或不存在,允许用户使用所述用户接口组件,至少部分不需要纠正阶段。对本领域技术人员而言,通过检查附图和详细的描述可以使本发明的其它优点更加清楚。其目的在于在此加入任意附加优点。


现在通过参考附图描述本发明的实施例,其中相似附图标记表示相似的元件,并且其中图I图形示出根据本发明特定实施例的模型适配系统;
图2是根据本发明特定实施例的模型适配系统的高阶流程图;图3是根据本发明特定替代实施例的模型适配系统的高阶流程图;图4示出用于确定用于源数据模型中的给定源类型/对象的最佳匹配目标类型的流程图;图5示出示例性名称匹配规则的流程图;图6示出示例性类型匹配规则的流程图;图7示出用于确定目标类型得分的流程图;图8示出用于确定属性得分矩阵的流程图;图9示出用于确定辅助属性得分的流程图;图10示出示例性源数据模型部分;图11至13示出对应于图10的示例性部分的方案。附图目的仅在于描述本发明的典型实施例,因此不该被看作限制本发明的范围。另外,还以展示E补充详细描述,该展示E包括使用根据本发明的系统和方法的代码实现El至E5。在上述描述中,直接使用标识符“E1”至“E5”作为展示E的实例的引用。展示El被分开放置以用于阐明详细描述并使能更简单的引用。因为其可能在下述描述中引用,Java和所有基于Java的标记是Sun微系统公司在美国和其它国家的商标或注册商标。其它公司,产品或服务可能是其它人的商标或服务
己 O本发明文件的部分公开内容包括可能从属于版权保护的材料。版权拥有者没有本专利文件或专利公开内容的任何人的传真复制,因为其出现在专利商标局的专利文件或记录中,但是另一方面其无论如何都会保留所有版权和/或作者权利。
具体实施例方式根据本发明的某种实施例,图I示出用于为特定用户接口组件108生成源数据模型101的显示的计算机系统100。计算机系统100可以是任意类型的分布式计算机系统,其包括通过诸如局域网(LAN)或广域网(WAN)的网络连接的数个远程计算机服务器和客户端。其也可能是独立计算机设备,例如个人计算机、手持设备、服务器、对等设备或其它常见网络节点。
计算机系统100中的每个计算机设备典型地包括一个通过总线连接存储器的中央处理单元(CPU),存储装置和网络接口设备以允许通过网络(例如网络适配器或其它网络接口卡(NIC))进行网络通信。计算机系统100还可能包括一个或更多输入设备103,其可以是用于为计算机系统100提供输入的任意类型设备,例如键盘、鼠标、小键盘等。其还包括用于为用户提供输出的输出设备104,例如任意传统的显示屏。输出设备104包括具有至少一个用户接口组件1087的用户接口 105。系统100包括用于管理用户接口 105中的用户接口组件108的显示的用户接口组件管理器107。用户接口组件显示任意类型的可视化显示组件或具有特定可视化特征,例如甘特图表、地图、统计视图或其它类型的复杂视觉显示的工具。计算机系统100包括可能由任意类型的应用生成或由用户提供的源数据模型110(下面也称为源数据组)。例如,源数据模型Iio可以从集成开发环境(IDE)的内容中的程序源提取。源数据模型110被提供以在用户接口组件108中得到显示。 根据本发明的实施例,用户接口组件管理器107还与定义用户接口组件108支持的数据模型的目标数据模型112 (下面也称为目标数据组)相关联。例如,在甘特组件的情况下,组件可以显示并让用户与数据对象元组交互,其包括开始日期(整数)、结束日期(整数)、和可选的名称和布尔“存在”值。其它组件可以提供其它抽象接口。例如2D绘图显示将需要数据对象,每个数据对象都具有X和I坐标,具有可选尺寸,颜色和标签信息。计算机系统100也包括用于以透明和容错的方式为用户接口组件108生成源数据模型的显示的模型适配子系统101。模型适配子系统101包括用于匹配源数据模型110和至少一部分目标数据模型112,并允许基于这个部分匹配在用户接口组件108显示源数据组110的模型匹配单元111。模型匹配单元111提供将被用于为用户接口组件108适配源数据模型110的模型适配器102。模型匹配单元111允许用户接口组件作为输入采用可发现的任意源数据模型110(即构成模型的对象可通过自省来检查,并且可查询他们的属性和值),并可以内省源数据模型110以进行显示并仅与匹配目标数据模型112的项的子集进行交互。更具体而言,模型匹配单元111检查源数据模型110,并发现源数据模型的数据元素,所述数据元素具有其类型基于预定义属性匹配规则114,例如命名和/或定型规则匹配与用户接口组件108相关联的目标数据模型112的属性(示例性的命名规则例如可以包括确定源属性名称是否大概匹配目标属性名称,例如用于“start”和“stop”的“begin”和“end”,或用于“duration”的“length”等)。因此模型匹配单元111利用声明的视图构建仅引用这些数据元素并为用户接口组件管理器107提供模型适配器102的中间模型适配器102。用户接口组件管理器107将生成对应于用户接口组件108中的模型适配器102的显
/Jn ο源数据组110包括数据和作为组成该数据的类型组的数据结构的描述。数据类型(或类型)包括一组已命名和定型的属性并定义了可以在该组属性上实施的一组运算。类是指其运算和属性可以在子类型中扩展和再定义的多态数据类型。在随后的描述中,术语“数据类型”或“类型”或“目标类型”或“源类型”具有相似的含义。源数据组110因此表示已命名和定型的属性的集合。可以根据任意合适的语言或框架,例如由其组件(bean)描述的Java类,XML文件、JSON数据结构或者甚至面向数据库的SQL接口表示源数据组110。根据用于表示和管理源数据组110的语言,源数据组110可以被强定型,例如定型为Java类或SQL表表示,或弱定型例如具有JSON文件表示。在弱定型的语言中,每个对象定义了其自身的数据类型,而在强定型语言中,对象必然属于有限组的类型。如果源数据组110被强定型,则例如在Java程序或SQL数据库中,模型匹配单元112将应用每个类型基础以将该源模型110绑定至目标模型112。如果源数据组110被弱定型,则例如在XML或JSON文件中,模型匹配单元112将应用每个对象基础以将该源模型110绑定至目标模型。
展示El提供了一种根据OPL语言(IBM ILOG最优化处理语言)的典型源数据组110作为一组元组。在展示El的实例中,源数据组110的描述包括四个类“start”,“end”,“duration”,“label”,前三个类具有整数类型“int”并且最后一个类具有串类型。目标数据组112表示用户接口组件108输入所期待的特殊数据结构。目标数据模型112表示抽象数据类型。抽象数据类型指定已命名、已定型的属性和可以在这些属性上实施的运算的集合。类是此外还具有封装、继承、和多态的特性的抽象数据类型;原型是另一类抽象类型,在例如JavaScript的语言情境中使用。目标数据组112包括可以为用户接口组件108接收为输入的数据类型(例如定型的对象)的集合的描述。目标数据模型112因此表示已命名和已定型的属性的集合。源数据模型110和目标数据模型112可以根据不同的格式或相同的格式得以表示。下面参考以根据仅用于说明性目的的Java编程语言的相同格式提供的源数据模型110和目标数据模型112进行描述。但是本领域技术人员会很容易理解本发明可以用于源数据模型110和目标数据模型112可以程序化访问和浏览的任意环境。展示E2的实例表示类型甘特图表的用户接口组件108,其预期根据Java接口表示的特定目标数据模型。在展示E2的实例目标数据模型中,TASK接口包括以下属性具有浮点类型的“begin”,具有浮点类型的“end”,具有浮点类型的“duration”,并且可选包括具有串类型的“name”属性。应该注意的是,为数据源模型110提供的实例TUPLE结构和为目标数据模型112提供的实例Task接口结构表示相似的对象,从而在表示用于这种实例的甘特图表组件中的Tuple对象阵列(源数据模型)时可能具有优点。也可以为用户接口组件管理器107提供属性信息存储器109,该存储器提供涉及由源数据模型112使用的属性的信息。这种属性信息存储器109可能包括存储用于识别用户接口组件108所需要的第一组属性(下面称为“强制”属性)和用户接口组件108所不需要的第二组属性(下面称为“可选”属性)的信息的属性分类储存库113。其可能也包括为目标数据模型112的每个属性名称提供词汇同义词列表的同义词库114和为目标数据模型112中的每个属性提供等同于已考虑属性的辅助属性逻辑组合的辅助数据储存库115 (例如属性持续时间可以表达为开始属性和结束属性的组合)。可选地,属性信息存储器109可能由模型适配单元101为多数常规属性而维持。
应该注意的是尽管图I仅示出了一种与特定Π组件108相关联的用户接口组件管理器107,但是本发明支持被提供以其各自的用户接口组件管理器107,目标数据模型112和可选被提供以属性信息存储器109的任意数量的用户接口组件。图2示出根据本发明特定实施例的为用户接口组件生成源数据模型的显示的流程图。在步骤200,从应用接收或直接由用户提供源数据模型SM。例如源数据模型可以作为数据库查询的结果而生成,或存在于外部服务器上的XML文件中。在另一实例中,源数据模型可以来自于由用户以IBM ILOG OPLStudio开发平台内的OPL语言编写的程序(该平台解译由用户输入的程序,解析其数据结构并提供显示该程序的所有可用数据结构的二级视图)。在步骤202,从其存储器位置检索目标数据模型TM。特别地,目标数据模型112可能作为应用运算的结果存在于主存储器中。即使步骤200和202被描绘为连续的步骤,但它们也可能同时实施,或以相反的顺
序实施。步骤204至206计算将被提供给用于生成源数据模型的显示的用户组件管理器107的目标数据模型对象的集合C。更具体而言,遍历源数据结构SM并且针对源数据结构SM中的每个当前对象A(在步骤204选择),步骤205为该当前对象确定目标数据模型TM中的最佳匹配等效数据类型T。为了为当前源对象A确定最佳匹配目标类型,通过使用预定义匹配规则组并为每个匹配方案分配优先得分来计算匹配方案的数量。提供具有最佳优先得分的方案作为最佳匹配方案。在本说明书中,“最佳匹配”这一概念应该被理解为指定具有最佳得分的匹配方案。如果在步骤205发现最佳匹配方案,则在步骤206创建代理对象形式的绑定数据结构,以将源数据模型的当前对象A链接至目标对象模型TM中的数据类型T的实例。重复步骤204和206,直到源数据组的所有对象都已得到处理(步骤208,209)。当源数据组的所有对象都已得到处理时,这样获得的代理对象的集合C在步骤210汇编并在步骤211被提供给用户接口组件管理器。用户接口组件管理器107然后将基于绑定数据结构(代理对象)生成源数据模型的显不O图3示出根据涉及强定型源数据模型的本发明替代实施例,为用户接口组件108生成源数据模型110的显示的流程图。针对强定型的源数据模型,不需要检查源数据模型的每个单个对象,因为所有这些对象都将属于在源数据模型中定义的数据类型之一。替代遍历每个对象,直接检查源数据类型以创建代理类并使其实例化。例如如果源数据模型被强定型并仅由类“Person”(类是一种数据类型)的对象构成,该类person由属性“name”、“date of birth”、“date of death”构成,不需要检查源模型中的所有单个对象以确定仅需要一种类型的代理对象。该代理将源数据模型中的“name”映射为目标数据模型中的“name”, “date of birth” 映射为 “begin”, “date of death” 映射为 “end”。展示E4描绘了图3的流程图的实例代码实现。
步骤300和302类似于步骤200和202。步骤304至306汇编将由用户接口组件管理器107使用的目标数据模型类型的集合C (例如类)以生成用户接口组件108中的源数据模型SM的显示。在步骤304,遍历源数据结构SM并且针对源数据结构SM中的每个当前源数据类型T (步骤304),步骤305试图找到当前类型和目标数据模型中的类型之间的匹配(在E4中由“ClosestType” 函数示出)。如果在步骤305找到了匹配,则在步骤306创建代理类型(例如代理类)形式的绑定数据结构以将源数据模型的当前数据类型链接至目标数据模型的数据类型。重复步骤304和306,直到源数据类型的所有对象都已得到处理(步骤308,309)。当源数据组的所有数据类型都已得到处理时,这样获得的代理类的集合C在步骤310用于汇编这些类匹配源对象的实例集合和目标对象并在步骤311将该集合提供给用户 接口组件。然后用户接口组件管理器107关于步骤中汇编的代理对象集合透明运行,从而为用户接口组件108生成元数据模型的显示。代理对象的集合定义模型适配器设计图形。展示E5表示可能作为图3中描述的方法的结果而为展示El和E2的实例模型生成的类和数据模型(该实例源数据模型使用的是强定型的OPL语言)。图4是根据本发明的特定实施例的,为给定源对象或源数据组SM中的数据类型确定目标数据模型TM (步骤205和305)中的最佳等效匹配的步骤的高阶流程图。图4中的处理适用于表示已命名、已定型属性(源对象或源类型)集合的任意源数据类型。即使在匹配被确定为不完美或即使当没有发现用于源数据对象部分的匹配时,用于确定最佳目标类型的方法,也允许目标用户接口组件透明生成源数据模型的具有有用性能的满意显示。更具体而言,为了为给定源类型或对象确定最佳目标类型,处理目标数据模型(步骤400)中的每个目标类型。针对目标模型TM中的每个目标类型(步骤401),步骤402通过对源类型中的每个源属性和当前目标类型的第一组属性中的每个目标属性(强制属性)之间的对应关系进行计分来计算目标类型匹配得分。在步骤402,甚至源属性和目标属性之间的非精确匹配也会计分(下面参考图7详细描述步骤402)。步骤403存储与在目标类型候选列表中这样获得的目标类型得分相关联的目标类型标识符。为目标数据模型中的所有目标类型重复步骤401至403,直到所有目标类型都已得到处理(步骤404)。当所有目标类型都已得到处理时,步骤405确定最佳匹配目标类型为具有目标类型候选列表中的最佳目标类型得分的类型。为了为每个目标类型确定目标类型得分(步骤402),将预定义名称匹配规则组和/或预定义类型匹配规则组应用于属性对,每个对都包括目标类型的目标属性TA和源类型或对象的源属性SA。该名称匹配规则组的应用提供了名称匹配规则得分nameMatch (SA,TA),该类型匹配规则组的应用提供了类型匹配规则得分typeMatch (SA7TA)0名称匹配规则得分nameMatch (SA, TA)和类型匹配规则得分typeMatch (SA, TA)的组合用于确定每个对{SA,TA}的属性得分值。匹配规则包括源数据模型中的源属性和目标数据模型中的目标属性之间的属性名称和/或属性类型相关的条件的表达,如果满足该条件,还包括与该对{源属性,目标属性}相关联的优先得分的定义。根据本发明的实施例,定义该组匹配规则的匹配规则以确保每个对{源属性,目标属性}都将返回一个非零值,即使目标属性和源属性不一致。匹配规则可能包括命名规则,该命名规则涉及源类型中的源属性和目标类型中的目标属性之间的与属性名称相关的对比。一个这种命名规则可能包括确定源属性名称是否精确匹配目标属性名称。如果满足这种规则,这些属性将绑定在一起。其它名称匹配规则此外还可能用于
-使用同义词库114确定源名称是否是目标属性名称的同义词。例如,对于甘特图表目标模型而言,下列同义词可能与一个Task(任务)的“begin”属性相关联而使用“ start ”,“ debut ”,“ from” ......-确定源属性名称是否部分匹配目标属性名称。例如如果源属性名称的一部分匹配目标属性名称或其同义词之一则进行该确定。例如,如果源属性名称是"startActivity",将为目标属性名称“start”检测到匹配。在这种情况下,较低得分可能影响这种对应关系,因为该匹配仅是部分性的。图5是示出可能用于包括源属性和目标属性的对的示例性匹配规则的流程图(500)。步骤502确定源属性名称sourceName是否等价于目标属性名称targetName,以及在步骤503中确定是否这样影响最高优先得分(第一优先得分)。如果步骤502的测试失败,则步骤504应用与源和目标属性名称相关的第二匹配规则,并且如果满足该规则,则在步骤505中影响小于第一优先得分的第二优先得分。在图5中,示出的第二匹配规则包括确定源属性名称sourceName是否包括目标属性名称targetName。如果不满足第二命名匹配规则,则步骤506应用与源和目标属性名称相关的第三匹配规则,并且如果满足该第三规则,则小于第二优先得分的第三优先得分在步骤507影响该属性对。在图5中,示出的第三匹配规则在于确定源属性名称sourceName是否是目标属性名称targetName的同义词。如果不满足第三命名匹配规则,则步骤508应用与源和目标属性名称相关的第四匹配规则,并且如果满足该第四规则,则小于第三优先得分的第四优先得分在步骤509影响该对对应关系。在图5中,示出的第四匹配规则在于确定源属性名称sourceName是否包括目标属性名称targetName的同义词。最后,如果不满足任何名称匹配规则,则非零优先得分在步骤510被分配给该对。由此本发明保证了源属性和目标属性之间的每个对应关系都分配一个非零优先得分,即使该匹配并不精确或没有满足任何匹配规则。图6示出可能用于对源属性和目标属性之间的对应关系计分的匹配规则的另一实例的流程图。
在图6的实例中,以预定义顺序应用与源属性和目标属性的类型相关的匹配规贝U。当属性类型被确定为原子时(即该类型被认为包括单一值,例如串,整数,浮点,日期……),允许该属性类型被转变为另一类型,即使该转变只是近似的。例如,数字类型可以通过使用其十进制表示法而被转变为串类型。串类型可以通过将其字符解译为字节序列并将头8个字节转变为其数字等效而被转变为数字类型。日期可以通过自一个给定的起始点开始取其值为秒而被转变为数字类型。这保证了总能找到一个匹配结果(即匹配得分永远不会为O)。更具体而言,步骤600接收被认为确定其匹配得分的源属性和目标属性。在步骤601,确定源属性类型sourceType是否是目标属性类型targetType的子类型。如果是,则在步骤602将最高优先得分(第一优先得分)分配给该对{源属性,目标属性}。如果不满足步骤601,则步骤603确定源属性类型sourceType是否是日期类型并确定目标属性类型targetType是否是数字类型。如果是,则在步骤604将比第一优先得分··值更低的第二优先得分分配给该对{源属性,目标属性}。如果不满足步骤603,则步骤605确定源属性类型sourceType是否是数字类型并确定目标属性类型targetType是否是日期类型。如果是,则在步骤606将比第一优先得分值更低的第三优先得分分配给该对{源属性,目标属性}。如果不满足步骤603,则最低优先得分影响该对{源属性,目标属性}。最后,如果不满足任何类型匹配规则,则步骤607将非零优先得分分配给该对应关系{源属性,目标属性}。根据本发明的其它实施例,附加匹配规则可以用于匹配源属性和目标数据模型110中的属性。特别地,目标匹配方法可以应用与辅助数据储存库115中存储的信息相关的其它匹配规则。例如,如果目标属性“duration”与目标模型相关联,则可以由模型匹配单元111使用的辅助属性表达可能是end O-Start O。类似地,默认标签属性可以被定义为源模型的所有属性的串联。为了再定义上述方案,内容检查规则此外还可以由模型匹配单元使用以检查与源属性相关联的实际值上的条件,并且如果满足内容检查规则,则将源属性分配给特定目标属性。即使参考描述由已命名和已定型属性的扁平集合组成的对象的源数据结构进行了上述描述,本发明也适用于未被提供为平面列表的其它源数据模型结构,通过使用合适的预处理阶段以将源数据结构转变为数据类型的平面列表(例如如果源数据模型是被组织为层次结构的同构对象的集合)。类似地,在源数据模型110被构造为均匀对象的平面列表同时目标数据模型期望节点层次或一个列表或多个列表或图表的情境下,预处理阶段可以用于再创建目标对象组织。图7是根据本发明特定实施例,用于确定当前目标类型的目标类型得分的流程图(图4的步骤402)。在步骤700,处理开始于对于确定最佳匹配的源类型而得到处理的目标模型TM的当前Target Type (目标类型)。在步骤704,处理目标类型的第一组属性。目标类型的该第一组属性特别表示用户接口组件允许生成显示所需要的属性。这些属性可以从存储在目标模型或属性信息存储器109中的信息中被识别。该第一组的属性随后被称为“强制”目标属性。在步骤704,生成属性得分数据结构,例如矩阵M。属性得分矩阵M存储源类型/对象中的源属性和目标类型T中的每个强制属性之间的每个对应关系的得分值。通过应用该匹配规则组114计算每个对的得分值。根据本发明,应用该匹配规则组以保证每个对{源属性,目标属性}都将具有非零得分值。例如,如果存在m个目标强制属性和η个可用源属性,则矩阵M可以生成为m行(一行表示每个强制对象属性)的列表,每行都有η列(一列表示每个源对象属性)。然后矩阵中的每个单元都将识别一个目标属性,一个源属性,并为在该单元中识别的该属性对提供一个得分值。作为步骤704的结果,属性得分矩阵M包括(目标类型的)目标属性和(源类型的)源属性的不同对的得分值。
这样获得的矩阵M然后被用于测试表示候选目标类型的组合。每个组合将与每个具有源数据类型(对象)的唯一源属性的每个目标强制属性相关联。因此,每个当前组合都见包括由目标强制属性和源属性构成的对(对的数量与目标强制属性一样多)。针对每个已测试组合Ci,然后通过使用属性得分矩阵M计算相应的组合得分作为与每个对相关联的得分的总和。对应于目标模型中的第二组属性(“可选”属性)的辅助得分值可以被加到当前组合得分上。对应于提供最佳组合得分的组合的目标类型将作为用于已考虑源类型的目标类型候选而返回(用于步骤405处理)。步骤706至725示出基于在步骤704获得的属性得分矩阵M的测试组合的这个阶段的特定实施例。在步骤706,通过减少得分值首先逐行,然后逐列开始拓扑分类属性得分矩阵M。通过得分分类矩阵的这个步骤目的在于限制组合测试阶段的计算成本。更具体而言,矩阵中的每一行都可以通过减少得分进行分类,从而用于给定强制源属性的行中的第一条目对应于与其最佳匹配的源属性。然后可以通过减少得分分类列(例如第一列得分的递减序列,或列得分的平均数)。因此,在分类矩阵M之后,该矩阵的第一行将对应于已经找到最佳匹配的行。在步骤708,为目标类型中的第二组属性计算辅助属性得分Sc0re_0p。第二组属性(“可选”属性)表示用户接口组件管理器107所不需要的属性。这些属性可以在目标数据模型112中得到识别。可选地,模型适配子系统101可以维持或预确定第二组属性。在步骤708,只要可选属性和源属性之间的匹配得分大于一个预定义阈值,则目标类型中的每个可选属性匹配于源类型或对象的源属性。由满足该条件的匹配得分计算辅助属性得分Score_op (下面将结合图9以更具体的细节描述步骤708)。在步骤710,对包括目标强制属性和(源类型/对象的)源属性的对Ci的所有可能的组合开始迭代。每个组合关联每个强制目标属性和已考虑源类型的唯一源属性。计数器i被初始化为所述组合的计数器。特别地,每个组合可以由(步骤706中分类的)属性得分矩阵M的行排列通过递减的得分顺序得以确定。根据图7中示出的实施例,行排列(组合)被迭代至定义组合尝试的最大数量的最大阈值Tmax。该最大阈值在实践中永远不会达到。例如,给定目标属性{begin, end}和源属性{start, stop, length},可能的行排列包括如下组Cl-{begin- > start, end- > stop},C2-{begin- > start, end- > length},C3_{begin- > stop, end- > start},C4-{begin- > stop, end- > length},C5_ {begin- > length, end- > start},andC6_ {begin- > length, end- > stop}}.排列迭代数量的限制可能对于涉及重要数量的强制属性的目标数据模型特别有 利,从而可能生成很多组合。通过根据递减得分提前分类矩阵的行和列,可能首先找到最佳可能的匹配,由此优化处理。在步骤712,针对当前组合Ci,然后匹配得分是通过使用属性得分矩阵M中维持的信息将对应于组合对的得分值求和而计算的Score_Ci。在步骤714,组合匹配得分Score_Ci然后被加到为可选属性确定的辅助属性得分Score_op上。在步骤716,当前组合被提交给用户接口组件管理器107。用户接口组件管理器107可以基于多种原因接受或拒绝建议的组合。例如,在检查存储在源数据模型中的实际数据和确定其将导致在不适合甘特显示的开始之前结束的活动之后,甘特组件可以拒绝组合{begin->stop, end_>start}。如果接受该组合,则在步骤718递增可接受的组合计数器j以计算可接受组合的数量。在步骤720,确定当前组合是否提供比为之前测试的组合计算的组合得分更好的组合得分Score_Ci。如果该组合具有可选的组合得分Sc0re_Ci,则存储当前组合得分用于然后在步骤724与随后组合进行比较(用于步骤720的随后迭代)。然后实施步骤721以处理下一个组合。如果用户接口组件在步骤718拒绝了该组合或者如果该组合得分Sc0re_Ci未被确定为高于之前在步骤720计算的得分,则也实施步骤 721。在处理下一个组合之前,步骤721提前检查已经计算为j的“可接受”组合的数量是否已经达到预定义阈值Tacc或者检查组合的数量i是否已经达到允许排列的最大数量(Tmax)。如果达到了这些阈值之一,则步骤725返回已测试组合中提供最佳组合得分的组合(该组合在已测试组合中具有更高的组合得分)作为匹配目标类型候选(在图4的步骤405中使用)。如果步骤721中的条件都没有得到满足,通过重复步骤704至724处理下一个组

口 ο因此,本发明可以以两种途径为给定源类型/对象确定目标类型候选-在第一种途径中,为目标类型(targetType)中的“强制”目标属性确定匹配并且评分该匹配对(尽管该匹配并不精确);浏览过的方案的数量可以封顶到实践中不能达到的合理高的阈值;-在第二途径中,可选属性得到处理,但是其仅考虑是否找到了匹配的满意等级。
图8是用于为第一组属性(强制属性)确定属性得分矩阵(图7的步骤704)的流程图。在步骤800,在目标类型的第一属性组中针对每个属性TA,处理开始。针对第一属性组的当前目标属性TA,选择源类型SourceType或源对象sourceObject中的每个属性SA。步骤802作为匹配得分的组合计算该对{SA, TA}的得分值,其包括作为该对{SA,TA}上的名称匹配规则组的结果获得的第一匹配得分nameMatch(SA,TA)和作为该对{SA,TA}上的类型匹配规则组的结果获得的第二匹配得分typeMatch(SA7TA)0特别地,该得分值被计算为得分=nameMatch(SA, TA) +typeMatch (SA, TA)。步骤804将这样获得的得分加到与所述目标属性和所述源属性相关联的属性源矩阵中。为源类型中的其它源属性重复步骤802至804,直到所有源属性已经被处理(步骤·806)。当所有源属性已经被处理时,在步骤808处理第一目标属性组中的下一个目标属性。当第一目标属性组中的所有目标属性都已被处理时所述处理结束。然后在步骤810返回属性得分矩阵。因此,在多数情况下,模型匹配单元111用于响应于匹配规则组的应用而返回正得分结果。因此,可以为任意源数据类型找到目标模型中的匹配数据类型,同时以透明和容错的方式由用户接口组件108保证正确的表示。图9是用于为第二组属性(可选属性)确定辅助属性得分Score_op (图7的步骤716)的流程图。在步骤900,在目标类型的第二属性组中针对每个属性TA,处理开始。类似于图8示出的方法,针对第二属性组的当前目标属性TA,选择源类型SourceType或源对象sourceObject中的每个属性SA,并且步骤902作为匹配得分的组合计算该对{SA,TA}的得分值,其包括作为该对{SA,TA}上的名称匹配规则组的结果获得的第一匹配得分nameMatch (SA,TA)和作为该对{SA,TA}上的类型匹配规则组的结果获得的第二匹配得分typeMatch (SA,TA)。特别地,该对SA和TA的得分值被确定为得分=nameMatch(SA, TA) +typeMatch (SA, TA)。在步骤904,确定这样获得的对{SA,TA}的得分值是否高于预定义阈值。如果高,则步骤906将当前可选属性得分加入辅助属性得分Sc0re_0p(最初设置为零)。在步骤908或如果步骤904的条件没有得到满足,则通过迭代步骤902至908处理下一个源属性(步骤909),直到所有源属性都被处理。当所有源属性都已被处理时,处理第二属性组(910)的下一个目标属性,直到所有目标属性都被处理。当所有可选目标属性都已被处理时,在步骤912返回辅助属性得分Score_op。根据本发明特定实施例的模型匹配方案可以在各种情境中使用以允许生成用户接口组件中的复杂源数据模型的表示。即使不限制这种应用,本发明也对下列用户接口组件而言具有优点-甘特图表/时间线,
-多数图表类型,例如一维的图表,包括各种类型的直方图,2D绘图,平行坐标或平行直方图可视化工具;针对这种图表,通过点序列或诸如标签、划分方法、颜色和尺寸的其它属性表示目标数据模型,-树状图工具用于这种用户接口组件的目标模型通常涉及层次、尺寸属性、颜色属性和排序属性,-网络可视化工具,提供有涉及节点的目标模型和通过各种类型图形绘图算法位于平面上的连接。图10表示在甘特图表类型的用户接口组件中待显示的OPL语言中的元数据模型的实例部分。该元数据模型通过最优化应用得以生成。如图10所示,该源数据模型部分具有甘特图表兼容的结构。 “anlntervalArray” 兀素被定义为两个值〈10,20,10,“Interval 1”,A,10> 和〈15,18,5,“Interval 2”,1,20>的阵列,每个值都是一个“Mylnterval”结构的实例。根据本发明的实施例提供的该方案在图11中示出。这将允许在目标图形工具(用户接口组件)上显不 “anlntervalArray,,兀素选择“示出数据视图……”连接为“anlntervalArray”元素打开一个数据视图,具有两部分I.标准的阵列网格视图,对图12中示出的所有阵列元素通用。也可能显示阵列结构兼容甘特图表的信息。2.也显示甘特图表,因为如图13所示,该系统将“anlntervalArray”识别为兼容。在集成开发环境(IDE)中,例如Eclipse开发环境中,本发明可以允许IDE用户从高级可视化组件中获益以在设计和开发的原型阶段期间浏览其数据结构。开发者可以查看和管理其应用数据之前,他们不需要完成其设计或创建特定的模型适配器。因此本发明允许用户接口组件将可以发现的任意数据模型作为输入(即构成模型的对象可以通过自省被检查并且其属性和值可以被查询)并自省源模型以允许显示并仅与匹配所述接口的兼容目标模型的项的子集进行交互。本发明方案依赖使透明生成源数据模型的显示成为可能的“部分”匹配方案,即使在源数据模型和目标数据模型之间没有找到完全匹配,而无需纠正阶段或用户输入。通过本发明,不需要提供从一个数据模型到另一数据模型的完整匹配,或返回非常接近数据结构之间完美匹配的匹配。此外,不需要用户干预以解决错误匹配并且当在目标模型和源模型之间具有较大差异时不返回错误消息。反而,在多数情况下其为匹配提供用户接口组件上的满意显示。根据本发明的实施例,即使一些对象不能匹配目标模型,仍将显示源模型。通过本发明,用户接口组件可以提供复杂用户互动和可视化,并且可以连接到部分匹配组件需求的任意数据模型。本发明可以采取完全硬件环境,完全软件环境或既包括硬件也包括软件元素的实施例的形式。特别地,应该注意的是,当一些附图以营建的形式示出时,恰好等效的影响也可以通过软件取得。在优选实施例中,本发明被补充以软件,其包括但不限于固件,常驻软件,微代码等。此外,本发明还可以采取可以从提供由计算机或任意指令执行系统使用或与其相关联的程序代码的计算机可用或计算机可读介质存取的计算机程序产品的形式。用了进行描述,计算机可用或计算机可读介质可以是可以包含,存储,通信,传播或运输由指令执行系统,装置或设备使用或与其相关联的程序的任意装置。该介质可以使电子的,磁的,光学的,电磁的,红外的或半导体系统(装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器,磁带,可移动计算机硬盘,随机存取存储器(RAM),制度存储器(R0M),刚性磁盘和光盘。光盘的当前实例包括光碟——只读存储器(CD-ROM),光碟——读/写(CD-R/W)和DVD。适于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合存储器元件的至少一个处理器。该存储器元件可以包括在实际执行所述程序代码期间采用的本地存储器,大容量存储器和提供至少一些程序代码的临时存储的高速缓冲存储器,从而减少在执行期间必须从大容量存储器提取代码的次数。输入/输出或I/O设备(包括但不限于键盘,显示器,定点设备等)既可以直接也可 以通过干预I/o控制器耦合所述系统。也可以将网络适配器耦合到系统以使得数据处理系统可以通过干预私人或公共网络耦合其它数据处理系统或远程打印机或存储器设备。调制解调器,电缆调制解调器和以太网卡只是网络适配器当前可用的几种类型。展示E
权利要求
1.一种适配源数据模型以用于在用户接口组件中显示的方法,所述源数据模型包括源数据类型的集合,每个数据类型包括一组源属性,所述用户接口组件与包括目标数据类型的集合的目标数据模型相关联,每个目标数据类型包括一组目标属性,其中该方法包括 a.为每个源数据类型,在所述目标模型中的所述目标数据类型中确定匹配目标数据类型,并使用绑定数据结构将所述源数据类型绑定至所述目标数据类型, b.基于所述绑定数据结构为所述用户接口组件生成所述源数据模型的显示, 其中所述步骤a包括 1.为该目标数据模型中的每个目标数据类型,在所述目标类型的属性中选择第一组目标属性,并基于预定义的匹配规则组确定在所述第一组目标属性中的目标属性和所述源类型中的每个源属性之间的每个对应关系的得分值, .基于为所述第一组目标属性的属性计算的得分值为所述目标类型确定目标类型得分,并且 iii.基于与所述目标模型的目标类型相关联的目标类型得分为所述源类型确定所述匹配目标类型。
2.权利要求I的方法,其中为所述目标类型确定目标类型得分的所述步骤ii由测试组合来执行,每个组合包括该第一组属性中的每个目标属性和所述源数据类型的源属性之间的对应关系,并通过对形成每个组合的对应关系的得分值求和来为该组合计算组合得分。
3.权利要求2的方法,其中计算组合得分的所述步骤还包括事先确定与所述目标类型中的第二组目标属性相关联的辅助属性得分,并将所述辅助属性得分加到所述得分值总和。
4.权利要求3的方法,其中为所述第二组目标属性确定所述辅助属性得分的所述步骤包括 -基于预定义的匹配规则组确定在所述第二组目标属性中的目标属性和所述源数据模型中的每个源属性之间的每个对应关系的匹配得分值,和 -作为为大于预定义阈值的该第二组属性确定的匹配得分值的总和计算该辅助属性得分。
5.前述权利要求2-4中任一项的方法,其中步骤ii的所述目标类型得分对应于为所述组合获得的最好组合得分。
6.前述权利要求2-5中任一项的方法,其中所述步骤i包括在矩阵数据结构中存储该得分值。
7.权利要求6的方法,其中步骤i还包括按照得分值拓扑分类为所述目标类型获得的该矩阵。
8.权利要求7的方法,其中每个组合按照得分顺序对应于所述矩阵的行排列。
9.前述权利要求2-8中任一项的方法,其中还包括向该用户接口组件提交每个组合,并且如果对应的目标类型被该用户接口组件拒绝则取消选定该对应的目标类型。
10.前述权利要求中任一项的方法,其中所述匹配规则组包括名称匹配规则的子集和/或类型匹配规则的子集,以预定义的顺序连续应用每个子集中的匹配规则以提供正匹配得分值。
11.一种包括指令的计算机程序,当该计算机程序在合适的计算机设备上执行时,该指令用于实施根据权利要求1-10中任一项的方法的步骤。
12.—种计算机可读介质,在其上编码有根据权利要求11的计算机程序。
13.—种系统,其包括用于执行根据权利要求1-10中任一项的方法的步骤的装置。
全文摘要
本发明提供一种生成在与目标数据模型相关联的用户接口组件上进行源数据模型的显示的方法。该源数据模型和该目标数据模型包括数据类型(类/对象)的集合,每个数据类型包括一组命名和类型属性。该方法包括a.为该源数据模型的每个源数据类型,在该目标数据模型的所述目标类型中确定匹配目标类型,b.将所述源类型链接至所述匹配目标类型,c.用源类型和目标类型之间的所述链接生成所述源数据模型的显示。步骤a包括为该目标数据模型中的每个目标类型,基于预定义的匹配规则组确定存储用于所述目标属性的第一属性集合中的每个目标属性和所述源数据模型的每个源属性之间的每个对应关系的得分值的属性得分矩阵,基于该属性得分矩阵确定该目标类型的目标类型得分,并且基于与该目标模型的目标类型相关联的目标类型得分为该源类型确定匹配目标类型。
文档编号G06F9/44GK102906697SQ201180025482
公开日2013年1月30日 申请日期2011年4月21日 优先权日2010年6月3日
发明者F·德尔霍姆, T·鲍德尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1