动态对象连接接口的制作方法

文档序号:6415821阅读:200来源:国知局
专利名称:动态对象连接接口的制作方法
技术领域
本发明涉及计算机软件集成并更具体地涉及一种在多个不同的,独立的软件应用程序的软件对象之间共享和操作软件对象的方法。
背景技术
当今的计算机产业中,存在着为各种各样的用户需要服务的软件应用程序。单个应用程序一般被优化成在特定的功能领域中性能优良而在其它功能领域则只有次优或最低限度的作用。例如,电子表格应用程序一般适宜生成数据表和这些表中数据的图表,但在生成复杂格式的文本文件时的表现很差。另一方面,字处理应用程序偏向于容易处理高度格式化的文本文件的生成,但一般处理数据表格和图形功能较差。由于这些应用程序的功能的明确划分,一般用户经常需要在所使用的不同的应用程序之间某种程度的信息共享。应用程序集成策略通过允许用户激活一个应用程序而该应用程序又调用所需的相关特定应用程序而允许某种程度的信息共享。但是,高效和方便用户的不同应用程序之间的信息共享一直是整个计算机产业的一个难点。
1992年微软公司发布了一种协议,对象链接和嵌入(OLE),使得一个应用程序可以通过一个几乎透明的接口来使用其它应用程序的服务。OLE协议允许支持这种协议的应用程序结合含有至其它应用程序的链接的对象。这里使用的对象这个词能够包含文本,图表,图形,电子表格,位像,矢量图,声音数据,视频剪辑,程序和几乎所有可被软件应用程序显示,控制或操作的东西。
在OLE协议中,包含链接或嵌入对象的对象被称为容器对象。容器对象包含仍然连接至创建它们的原始应用程序的其它对象,其中的连接可以是链接连接或嵌入连接。链接连接是与被包含的对象相关的实际数据驻留在另一个,分立的对象中的连接。在这种情况下,建立和保持链接连接所需的信息只是被包含的对象的一个引用。另一方面,嵌入连接是与被包含对象相关的实际数据驻留在容器对象中的连接。在任一情况下,被包含对象只能被原始创建它的应用程序所编辑。
OLE和OLE类型的集成策略使用户集中在当前的手中任务上,而不需要对完成任务所需的应用程序的明确知识或控制。在OLE的情况下,进行给定任务所需的应用程序在需要时以最好的格式或内容交给用户。而且,当采用了链接类型的应用程序集成策略时,文件趋向于更紧凑,因为对象的链接使得应用程序数据文件可以反映所链接文件的信息而不需要将对象的数据在该数据文件中物理地存储和维护。
OLE和OLE类型的集成策略向各种独立软件应用程序的高效集成迈出了一大步。但是,这些类型的集成策略要求某些数据与链接或嵌入的对象一起被存储,因而提供将被链接或嵌入的对象回溯到原始应用程序的信息。更具体地说,嵌入和传统的链接两者都在被链接/嵌入的对象和原始创建对象的应用程序之间创建“硬”链接。即,连接是到特定的应用程序的并不会改变。这样,被链接/嵌入的对象需要至外部应用程序的预先定义的连接路径。
从用户的角度,希望有一个更灵活的结构,一个对象和应用程序之间的连接不需要预先定义的结构。因此,需要有一种当对象和计算机操作系统内定义的任何其它应用程序之间没有预先定义的连接时能够高效运行的应用程序集成方法。
发明概述本发明是计算机系统的对象链接接口,它动态地将主应用程序的选定目标对象链接至第二个应用程序。这个动态对象链接运行环境包括多个方法测试器和一个对象映射器,每个方法测试器与一个特定用户应用程序相关联。对象映射器传递目标对象的拷贝至每个方法测试器。之后每个方法测试器测试目标对象以确定相关的应用程序处理目标对象的适合性并产生表示该适合性的相似性分数。对象映射器查询每个方法测试器以获得可能性分数并根据所述可能性分数,标识一个或多个适于处理目标对象的应用程序。对象映射器可以自动选择一个补充应用程序或为用户建议一个候选表以从中选择补充应用程序。其后目标对象被传递到补充程序从而由那个应用程序生成一个返回对象。之后返回对象被传递到主应用程序以代替目标对象。在这种方式中,目标对象被动态地链接至外部应用程序,即补充应用程序。补充应用程序的标识将依赖于目标对象的内容并可以从一个对象变化到另一个或随时间变化。


图1是一个计算机系统的简化的方框图。
图2是带有本发明的动态对象链接接口部件的操作系统的简化的方框图。
图3是运行环境的图形用户界面的简化示意图。
图4是本发明的一个实施例的基本流程图。
发明详述图1以简化方框图的形式示出一个实现本发明的对象链接接口的计算机系统10。计算机系统10包括一个中央处理单元12,它根据存储在它的存储器14中的指令进行操作。输入/输出(I/O)电路16是中央处理单元12与一个或多个输入设备18和输出设备20连接的接口。输入设备18可以包括,例如,键盘,小键盘,红外发射器,声音检测器,光笔,鼠标,触摸屏或其他适合的设备或用于向计算机输入命令的设备。输出设备20可以包括,例如,显示器或其他通过I/O电路16中的I/O口连接的外围设备。计算机系统10还可以含有海量存储设备22,例如硬盘驱动器,软盘驱动器,PCMCIA闪存驱动器,或光盘驱动器。
计算机系统10根据存储在存储器14中的程序运行。在计算机系统10上运行的程序一般可以分为操作系统程序或用户应用程序。操作系统程序是控制和协调计算机系统10中的硬件和软件的运行的一套程序。操作系统程序指挥用户应用程序的执行,数据的定位,存储,和读取,并将计算机系统10的资源分配给运行的不同任务。另一方面,用户应用程序,也被称为用户应用程序或简称为应用程序是在用户的指挥下进行复杂任务的程序。用户应用程序的例子包括字处理程序,数据库程序,电子表格程序,和个人信息管理器。
一套接口指令,包括操作系统程序,作为一起组成计算机系统10的硬件和软件之间的最低层接口。这些接口指令一起被称为操作系统100。DOS,UNIX和OS-9都是在一般商用计算机系统10上实现的一般的操作系统100。图2示出操作系统100。适于本发明的一个操作系统是由Iowa州Des Moines的Microware公司研制的OS-9000内核。
用户可以选择通过操作系统100或在操作系统100级与计算机系统10直接交互。但是,几十年来的趋势是使用用户与操作系统100之间的缓冲区,一般称为运行环境30。视窗和视窗95是运行环境30的一般的例子。这些环境趋向于面向图形化,和总体定义用户界面的外观。
现参考图3,示出了计算机系统10上运行的一个用户应用程序的运行环境30的显示部分。图3中的用户应用程序是一个字处理应用程序。但是,应当理解,本发明可以用于几乎所有类型的用户应用程序而不限于字处理程序。运行环境30在计算机显示输出设备20的屏幕上显示给用户。
运行环境30包括窗口32,窗口32顶端有一个标题栏34。标题栏按钮36位于标题栏34的右边。这些按钮36用于关闭,最大化和最小化窗口32。按钮36使用“指向并点击”鼠标的方式被激活。这些按钮对于视窗95或视窗NT的用户来说是熟悉的。在窗口32下端有一个为用户显示消息或图标的状态栏56。
在标题栏34的下方是菜单栏38。菜单栏38包括一个标签条40,它带有几个标签42。菜单按钮44被放置在标签带40上。与说明本发明相关的一个菜单按钮44是动态链接控制菜单按钮45。菜单按钮44的不同的组可以通过在标签42上“点击”鼠标而被选择。应当理解,在本领域中在选择一个选项或对象时有许多与点击鼠标相同的方法,例如使用触摸屏,遥控指示器,或声音命令;所有这些方法都包含在点击鼠标一词中。菜单按钮44同样用鼠标“点击”菜单按钮44来被选择。
菜单栏38下方的区域是工作区46,在此为用户显示由用户应用程序操作的对象。在该工作区46中显示一个由鼠标移动的光标48。不同的应用程序对象49被包含在在工作区46中,包括正在被操作的对象,如被选择的对象50。
应注意,上述的运行环境30只是可以实施本发明的动态对象链接系统的运行环境30的一个例子。使得用户可以与计算机系统10交互的任何数量的运行环境30可以用本发明的动态对象链接系统来建立和实现。
近年来,已经有很多将由一个用户应用程序创建的应用程序对象49链接到另一个用户应用程序的需要。应用程序对象49是由用户应用程序创建和/或操作的任何对象。例如,在字处理程序中,应用程序对象49可以是由这个文件,文件的一页,文件的一段,文件中的一个单词,或文件中的一个字母组成。在图形程序中,应用程序对象49可以是整个图画,或图画种的特定图形或线条。在数据库程序中,应用程序对象49可以是数据表,查询,表格或报告。这个应用程序对象49的清单不是穷举的。
如上所述,希望将由用户应用程序创建的应用程序对象49链接至第二个用户应用程序。例如,可能希望将一个字处理文件中驻留的图形链接至一个能够操作图形对象的应用程序。当前,处理这个问题的一个方法包括使用对象链接和嵌入(OLE)协议。OLE提供了一种协议,通过它应用程序之间可以通信和交换链接或嵌入对象的信息。但是,OLE需要在被链接或嵌入的对象与创建该对象的应用程序之间维护明确预定义的链接。
本发明使得一个用户应用程序中的应用程序对象49能够动态地与另一个用户应用程序相关联而不需要维护对象与其他应用程序之间的明确的链接。这个方法被称为动态对象链接,与其相关的接口被称为动态对象链接接口。为了引用方便,所讨论的对象驻留的应用程序被称为主应用程序64。对象被动态关联的其他应用程序被称为补充应用程序68。来自主应用程序64被动态链接的应用程序对象49将被称为目标对象70。
本发明的计算机系统10包括一个对象映射器120以标识计算机上可用的那些应用程序,它们更可能适合于操作目标对象70。在对象映射器120上注册的每个应用程序与一个方法测试器85相关,方法测试器85确定相关的应用程序处理目标对象70的适合性。当被对象映射器120查询时,每个方法测试器85返回一个分数至对象映射器120,这里被称为“相似性分数”,它表示相关应用程序适合处理目标对象70的程度。目标映射控制器分析由方法测试器85提供的相似性分数并基于该相似性分数选择一个补充应用程序68。一般地,补充应用程序68是有最高相似性分数的应用程序,表示它是最适合处理目标对象70的应用程序。或者是,提供一个备选补充应用程序68的清单供用户选择,最好是有它们的相似性分数的指示。
参考图2,组成本发明的动态对象链接接口的软件部件包括操作系统100,运行环境30,和多个用户应用程序60。特别与运行环境30相关的是对象映射器120,应用程序封装注册矢量125,和动态链接控制器110。在图2中示出的还有主应用程序64,它含有多个应用程序对象49,包括目标对象70。目标对象70的选择可以通过多个本领域熟知的方法实现,例如双击鼠标。
在运行环境30中驻留的是多个应用程序,总的用数字60表示。每个应用程序60包括主应用程序对象83,和独立的应用程序封装对象80。主应用程序83包含编码信息和应用程序60完成它的任务所需的数据。编码信息和与主应用程序83相关的数据一般不装入系统内存14并且直到用户直接或间接请求应用程序60时才被激活。例如,在典型的图形用户界面类型的环境中,非活动应用程序60在视频显示屏上显示为一个小的图标。为了请求或启动特定应用程序60,用户只是简单地使用鼠标类型的指示设备在所需的图标上双击。一旦双击后,相关的主应用程序83被调入到系统内存14中而执行。
应用程序封装80作为运行环境30和与之相关的主应用程序83之间的接口。应用程序封装80可以被看作是与之相关的主应用程序83的预报器。应用程序封装80当运行环境30被引导时被调入并在后台运行。如图4所示,应用程序封装80与它相关的主应用程序83和对象映射器120通信。
此外,如图4所示,应用程序封装80最好包括方法测试器85。方法测试器85包含与确定与应用程序封装80相关的应用程序60可以有效地处理任何给定的目标对象70的可能性相关的信息。
应用程序60当与应用程序封装80相关的方法测试器85已被对象映射器120识别和确认时被认为被“注册”。注册过程一般在应用程序被安装时进行,此时与新的应用程序60相关的应用程序封装80查询系统以找到对象映射器120并提供它出现的通知。在响应中,对象映射器120将新的应用程序封装80的一个引用增加到应用程序封装注册矢量125中。
图4示出已被定义并驻留在运行环境30中的不同对象间数据的基本流程。图4中示出的配置假定一个应用程序60,主应用程序64,被用户激活和占用。为了说明的目的,假设用户与之交互的主应用程序64是字处理器。在主应用程序64包含的是多个对象,包括目标对象70。目标对象70可以是,例如,图3所示的包含在被编辑的文本文件中的七位数字。
一旦目标对象70被选定,用户通过点击动态链接控制菜单按钮44激活动态链接控制110。激活后,动态链接控制110查询主应用程序64并请求目标对象70的一个拷贝。主应用程序64通过将目标对象70的一个拷贝传递到动态链接控制110。然后,动态链接控制110把目标对象70的一个拷贝传递到对象映射器120而响应。之后,对象映射器120有系统地查询在应用程序封装注册矢量125中列出的所有应用程序封装80。
如图4所示,在在查询过程中,应用程序封装80被传递一个目标对象70的拷贝以测定。与应用程序封装80相关的方法测试器85使用目标对象70的拷贝计算可能性分数,可能性分数表示目标对象70可能被与封装80相关的应用程序60有效处理的可能性。
存在很多不同的方法测试器85计算可能性分数的算法。所使用的算法取决于方法测试器85和应用程序封装80相关的用户应用程序60。作为一个例子,一个电话拨号程序可以首先确定目标对象70是否有一个适合的对象类型。如果目标对象70既不是数字也不是字符串类型,则可能性分数会非常低或是零。如果目标对象70是数字或字符串类型,则方法测试器85将继续进行一系列模式匹配以确定适合的可能性分数值。例如,如果目标对象70的模式是一个7位整数,可能性分数将会很高,是最大值或接近最大值,例如1。如果目标对象70模式是一个长度为8的字符串,包含七个数字和一个短划线,则可能性分数将同样很高。但是,如果目标对象70模式是非整数7位数字,则可能性分数将是一个中间值,例如0.15。如本领域的技术人员可以理解的,电话号码可以以不同的方式表示,特别是当电话号码是是国际电话时。模式匹配的目的是识别目标对象70是那些表达之一的可能性。可能性越高,产生的可能性分数越高。
如同电话拨号方法测试器85,其它用户应用程序60的方法测试器85是应用程序,或至少是应用程序类型。这种方法测试器85中的特定算法被做成识别目标对象70可能被与每个这种方法测试器85相关的应用程序60处理的可能性。每个方法测试器85中采用的特定测试的编程是本领域的技术人员所熟知的。
方法测试器85产生的可能性分数被从应用程序封装80传递回对象映射器120,在此它被暂时存储并与从被查询的其它注册的应用程序封装80接收的可能性分数进行比较。一旦在应用程序封装注册矢量125中列出的所有应用程序封装80被对象映射器120查询,对象映射器120采用一种判断算法以确定哪个应用程序60被认定为补充应用程序68。这种判断算法之一是高分取胜类型的判断算法。其它实用的判断算法的例子包括,选择高于一定阈值的最高可能性分数,或在分数相等的情况下提示用户选择应用程序60。应注意,没有可能性分数高到可以表示有其它任何一个应用程序60可以适合处理目标对象70的情况是可能的;在这种情况下,动态对象链接可能会失败。
通过判断算法对应用程序60的选择识别一个补充应用程序68。对象映射器120使补充应用程序68激活并接收目标对象70的一个拷贝。最好是,对象映射器120指示应用程序封装80激活它相关的主应用程序83,即补充应用程序68的主应用程序83,并给它传递目标对象70的一个拷贝。应用程序封装80可以在产生另一个之前首先检查它的相关主应用程序83是否已经被激活。之后,补充应用程序68处理,并可能修改,目标对象70的拷贝。
例如,假设由对象映射器120识别的补充应用程序68是一个电话拨号应用程序,而目标对象70如前所述是可被解释成电话号码的7位数字文本串。一旦被激活,电话拨号应用程序接收7位电话号码并尝试拨号并与建立该电话号码方的连接。
补充应用程序68还允许改变或修改目标对象70的拷贝。为说明这一点,考虑另一种可能的情况,电话拨号应用程序接收了7位数字文本串对象后,搜索关于商业客户信息和他们相关的电话号码的客户联系数据库。对数据库的搜索表明与目标对象70电话号码串相关的客户最近有一个新的电话号码。在作出这个评定后,电话拨号应用程序尝试拨打新的电话号码并建立与相关客户的联系。之后,电话拨号应用程序还修改目标对象70以反映电话号码的修改。
当被选的应用程序完成了它的任务后,被潜在修改的目标对象70的拷贝被传递到动态链接控制110。为了引用方便,这个被潜在修改的目标对象70的拷贝称为返回对象75。之后,动态链接控制110传递返回对象70至主机激活应用程序,在此返回对象75替换目标对象70。
以上的讨论假设方法测试器85被包含在应用程序封装80中。但是,应注意方法测试器85可以存在在应用程序封装80以外。如果是这样,本发明的动态对象链接接口的运行不需要有应用程序封装80。取而代之的是,对象映射器120可以直接查询方法测试器85和启动补充应用程序68。但是,本发明的最佳实施例包括应用程序封装80。
还应注意,不是所有的应用程序60都向对象映射器120注册。如果一个应用程序60没有注册,则不可使用该应用程序的动态对象链接。
这个动态对象链接接口策略的结构是功能很强且非常灵活的,因为它可以与任意对象一起运行并不需要或要求对象与应用程序之间的预定义链接。该动态对象链接接口结构还允许第三方应用程序开发者提供他们自己的评估他们的应用程序可以操作一个对象的可能性的算法,因而使系统可以支持较复杂的推理能力。
当然本发明可以以与上述不同的方式实现而不背离本发明的精神和实质。因而本发明的实施例在任何方面都是解释性的而不是限制本发明,而且所有包含在权利要求书的意义和等效范围中的所有变化都包含在本发明中。
权利要求
1.一种在有多个用户应用程序的计算机系统中将来自主应用程序的目标对象动态地链接到另一个用户应用程序的过程,包括a)为多个用户应用程序计算可能性分数,每个可能性分数表示相应的用户应用程序处理目标对象的适合程度;b)基于所述可能性分数标识一个补充应用程序;并且c)传递所述目标对象至所述补充应用程序。
2.如权利要求1的过程,进一步包括启动所述补充应用程序的一个实例。
3.如权利要求1的过程,进一步包括由所述补充应用程序修改目标对象以产生一个返回对象。
4.如权利要求3的过程,进一步包括其后传递所述返回对象至主应用程序。
5.如权利要求1的过程,其中补充应用程序的所述标识包括比较所述多个所述可能性分数以标识最高的所述可能性分数。
6.如权利要求1的过程,其中标识一个补充应用程序包括标识多个候选应用程序,提示用户选择所述候选应用程序之一并基于所述用户的输入而选择所述候选应用程序之一作为补充应用程序。
7.一种在有多个用户应用程序的计算机系统中将来自主应用程序的目标对象动态地链接到另一个用户应用程序的过程,包括a)由一个对象映射器获得目标对象的一个拷贝;b)从所述对象映射器传递目标对象的一个拷贝至多个方法测试器,每个方法测试器与一个相应的用户应用程序相关联;c)由所述方法测试器计算多个可能性分数,每个可能性分数表示相应的用户应用程序处理目标对象的适合程度;d)基于所述可能性分数标识一个补充应用程序;e)传递所述目标对象的一个拷贝至补充应用程序。
8.如权利要求7的过程进一步包括a)由补充应用程序基于目标对象产生一个返回对象;b)传递所述返回对象至主应用程序。
9.如权利要求7的过程,其中补充应用程序的所述标识包括比较所述多个所述可能性分数以标识最高的所述可能性分数。
10.如权利要求7的过程,其中标识一个补充应用程序包括标识多个候选应用程序,提示用户选择所述候选应用程序之一并基于所述用户输入而选择所述候选应用程序之一作为补充应用程序。
11.一种由有多个用户应用程序的计算机系统实现的对象链接接口,用于将主应用程序中的一个目标对象动态地链接至所述计算机上可用的一个补充应用程序,包括a)一个或多个方法测试器,每个与一个相应的用户应用程序相关联,用于测试目标对象并产生一个表示相关的用户应用程序处理目标对象的适合程度的可能性分数;和b)一个对象映射器,用于查询所述方法测试器,基于所述可能性分数识别一个补充应用程序,并传递所述目标对象至所述补充应用程序。
12.如权利要求11的对象链接接口,其中所述对象映射器传递所述目标对象至所述方法测试器。
13.如权利要求12的对象链接接口,进一步包括由用户激活的动态链接控制,用于识别对象映射器。
14.如权利要求13的对象链接接口,其中动态链接控制获得从主应用程序所述目标对象并传递所述目标对象至所述对象映射器。
15.一种由计算机实现的对象链接接口,用于将一个目标对象动态地链接至所述计算机上可用的一个补充应用程序,包括a)一个由用户激活的动态链接控制,用于获得目标对象的一个拷贝;b)一个对象映射器,用于从动态链接控制接收目标对象并补充一个补充应用程序处理所述目标对象;c)一个或多个应用程序封装,每个与相应的应用程序相关联,从对象映射器接收目标对象,所述应用程序封装包括一个方法测试器,用于测试目标对象并产生一个表示相关用户应用程序处理目标对象的适合程度的可能性分数;和d)所述对象映射器用于查询每个所述方法测试器以获得所述可能性分数,以识别一个补充应用程序,用于处理所述目标对象,并传递目标对象至所述补充应用程序。
16.如权利要求15的对象链接接口,其中应用程序封装控制相关应用程序的配置,启动和终止。
全文摘要
一种对象链接接口,用于计算机系统动态地链接主应用程序中的被选目标对象和第二个用户应用程序。运行环境包括多个方法测试器,每个与特定的用户应用程序相关,和一个对象映射器。方法测试器被传递一个目标对象的拷贝并测试相关的应用程序处理目标对象的适合程度并产生一个相应的可能性分数。对象映射器查询每个方法测试器以获得可能性分数并基于所述可能性分数识别一个或多个适合处理该目标对象的应用程序。
文档编号G06F9/46GK1269895SQ98808998
公开日2000年10月11日 申请日期1998年8月20日 优先权日1997年9月12日
发明者B·G·莫恩, B·班克勒尔 申请人:艾利森公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1