应用组件之间的自动连接的制作方法

文档序号:6593063阅读:245来源:国知局
专利名称:应用组件之间的自动连接的制作方法
应用组件之间的自动连接
背景技术
通常,诸如图形用户界面(GUI)按钮、数据网格以及web服务等非可视化组件之类 的应用组件需要借助于应用中的脚本或者其他编程语言被“连接”在一起或者绑定。例如, 软件程序员可以编写代码,使得当用户选择或按压GUI按钮时,这将致使来自web服务的信 息呈现在数据网格中。为此,按钮选择事件需要导致向数据服务发送请求,并且从数据服务 接收的后续信息需要被放入数据网格中。某些开发环境通过限制特定组件可以绑定至何种 对象(例如,数据源)而在一定程度上简化了此过程的编程方面。然而,将组件彼此连接的 过程可能仍然需要显式指定组件如何连接的用户输入。

发明内容
总体上,此说明书中所描述主题的一个或多个方面可以具体化在一个或多个方 法中,该方法包括由运行应用接收标识应用组件的信息,第一应用组件具有一个或多个 第一可自动连接的连接,该接收包括1)选择第一应用组件的第一连接,该第一连接是宿 (sink)和源中的一个;2)选择第二应用组件的第二可自动连接的连接,该第二应用组件驻 留在第一运行应用中,该第二连接是宿和源中的另一个;以及3)连接第一连接与第二连 接,使得可以在第一应用运行的同时借助于第一连接和第二连接在第一应用组件与第二应 用组件之间交换信息。此方面的其他实施方式包括相应的系统、装置和计算机程序产品。这些以及其他实施方式可以可选地包括一个或多个以下特征。第一应用组件可以 从另一运行应用获得。第一应用组件可以从文件系统获得。接收可以包括向第一运行应 用集成用于运行第一应用组件的代码。第一应用组件可以在第二运行应用或者文件系统中 具有可视表示。第一应用组件的可视表示可以呈现在第一运行应用的可视表示中,并且接 受输入以确定第一应用组件的可视表示将出现在第一运行应用的可视表示中的什么位置。 接收可以由第一应用组件向第二运行应用的拖放操作来触发。第一自动连接和第二自动连 接可以匹配。可以保持第一应用组件与第二应用组件之间的连接。在第一应用组件与第二 应用组件之间交换的信息可以是文本的。可以实现此说明书中所描述主题的特定实施方式,以实现一个或多个以下优点。 可以交互式从运行应用或者文件系统拖动应用组件,并且例如将其释放在新的或已有的接 受方应用上。在释放组件时,代码执行,其尝试在接受方应用运行的同时将所释放组件上的 所有输入和输出连接自动连接至接受方应用中的已有组件上的可用输入和输出。可以在接 受方应用的调用期间保持接受方应用中的自动组件连接。而且,所释放组件的源代码可以 自动向接受方应用集成以用于开发目的。如果所释放组件具有可视表示,则该可视表示可 以自动向接受方应用的显示层级集成。下文的附图和描述中记载了此说明书中所描述主题的一个或多个实施方式的细 节。通过描述、附图以及权利要求,本发明的其他特征、方面和优点将变得易见。


图IA-图ID示出了运行的软件应用中的示例应用组件。图2A是未连接状态的组件的示意图。图2B是已连接状态的组件的示意图。图3示出了使用内联元数据标签的示例组件的源代码。图4A是示例自动连接技术的流程图。图4B是用于将应用组件向应用集成的示例技术的流程图。图5是示例自动组件连接系统的示意图。图6是示例计算设备的框图。在各附图中,类似的标号和命名指示类似的元件。
具体实施例方式图IA示出了运行的软件应用中的示例应用组件(为简便起见,应用组件和运行应 用将分别称作组件和应用)。图IA中的每个应用被表示为GUI窗口(100,102,104),其用来 实现各自应用的某些或者全部用户界面。由窗口 100表示的应用包括两个示例组件,其在 窗口 100中具有可视表示天气组件100a,目前被设置为报道加利福尼亚州圣何塞的天气; 以及时钟组件100b,其显示当前时间。天气组件IOOa和时钟组件IOOb例如从web服务或 者本地存储的信息获得当前天气和时间。与窗口 102相关联的应用包括图表组件102a,用 于图示二维数据。与窗口 104相关联的应用包括位置组件104a,其可操作以例如基于计算 机的网际协议(IP)地址或者本地存储的信息来获得主机计算机的地理位置。在某些实现 中,组件不具有可视表示。应用包括实现组件功能的代码,或者备选地,应用不包括实现组件功能的代码但 是能够为其提供可视占位符。一般而言,组件是软件功能的单元,其被集成或者可以集成到 软件应用中,并且代表应用功能的子集。作为示范,组件可以实现为以编程语言编写的一个 或多个功能、方法或者过程。其他类型的组件也是可能的,这将在下文描述。在各种实现中,组件能够在应用正在执行或运行时向应用集成。组件可以交互式 地向所谓的接受方应用移动或者拷贝,从而在接受方应用运行时将组件功能向接受方应用 集成。备选地,组件在接受方应用已经完成执行之后向接受方应用集成。组件由所谓的给 予方(donor)应用标识。组件的功能向给予方应用集成,或者备选地,组件的功能不向给予 方应用集成但是组件却由给予方应用中的可视表示或者其他表示来标识。后一种情况的示 例是图形文件系统浏览器,其可视地描绘计算机文件系统中的文件和目录。在这种情况下, 文件系统GUI充当给予方应用,并且组件由显示目录内容的窗口中的文件图标来表示。如 果组件不具有可视表示(例如,web服务),则给予方应用可以提供默认表示(例如,矩形或 者其他形状)以便允许用户交互式地操纵该组件。图IB-图IC示出了组件可以如何交互式地从给予方应用被拖动并向接受方应用 中释放,从而将组件或者组件的拷贝向接受方应用移动。这是很多GUI中通常存在的所谓 拖放操作。用于交互式执行相同功能的其他技术也是可行的。在此示范中,图表组件102a 从窗口 102向窗口 100拖动,由此导致组件102a向窗口 100所关联的应用集成。用户或者 过程可以选择(例如,利用鼠标或者其他输入设备)图表组件102a。继而,组件102a的可视表示从窗口 100上“拖动” 106,并被“释放”在目标位置(例如,108),在该点处图表组件 102a将向与窗口 100相关联的应用中集成,如图IC所示。现在将更详细地讨论上文描述的组件集成的示范。最初,要移动或拷贝的组件由 用户或过程来标识。例如,与窗口 102相关联的给予方应用检测到在与组件102a相关联 的窗口区域上已经发生了鼠标拖动事件。响应于此事件,与窗口 102相关联的给予方应用 或者另一过程收集接受方应用(例如,与窗口 100相关联的应用)可能需要的组件信息。组 件信息包括或者表示描述组件的自动连接以及组件的源代码和/或可执行代码的位置的 信息。自动连接在下文详述。可以随同组件信息包括的其他信息包括但不限于诸如图像 文件、图标、声音文件、其他内容的组件资源的位置,针对组件的数字版权管理(DRM)信息, 以及关于给予方应用的信息。DRM信息可以指定为了使用组件而从给予方应用向接受方应 用授予的特权或权限。这些权限可以包括例如执行组件的权限(例如,以非演示模式或者受 限演示模式)、管理组件连接的使用的权限、在接受方应用中保持组件的权限以及其他权限。与窗口 100相关联的接受方应用继而检测到在窗口 100 (或者折叠、缩小或者最 小化版本的窗口 100,或者接受方应用的备选表示,诸如图标或者其他可视对象)上的目标 位置108处已经发生了鼠标释放事件。作为响应,接受方应用或者另一过程向接受方应用 并入组件的代码。如果接受方应用包括虚拟机(VM),例如可从加利福尼亚州圣何塞的Adobe Systems Incorporated获得的Adobe FlashActionScript虚拟机,则VM中被设计用于处理 鼠标释放事件的代码可以致使由释放目标信息所标识的源代码或可执行代码载入VM,使得 组件及其类型(例如,类、接口)变为接受方应用的运行时环境的一部分。如果接受方应用 不包括VM,则接受方应用的鼠标释放事件处理机可以借助于例如动态链接库(DLL)或者类 似机制来动态加载组件的代码。用于向运行应用集成代码的其他技术是可行的。在各种实现中,如果组件具有诸如图表组件102a之类的可视表示,则接受方应用 将组件的可视表示向接受方应用的显示层级中集成,从而向用户可视地呈现该组件(例 如,在窗口 100中)。在各种实现中,如果接受方应用支持文档对象模型(D0M),例如,可以 将组件并入DOM层级中,使得当DOM在窗口中呈现时,组件的可视表示将出现在接受方应用 的窗口中。在某些实现中,将组件的可视表示并入接受方应用的显示层级中,使得组件出现 在目标位置(例如,108)处或其附近。接受方应用或者另一过程还通过尝试将组件的自动连接与接受方应用中其他组 件的连接进行连接来集成释放的组件。如图IC中所示,窗口 100中的图表组件102a已经 自动连接至与窗口 100相关联的应用中的天气组件IOOa和时钟组件100b,以便图示温度 (来自组件100a)对时间(来自组件100b)。自动连接允许用户容易地向应用中集成组件, 而无需具有编程语言技能。作为又一示范,位置组件104a被从窗口 104向窗口 100拖动 110,并且向与窗口 100相关联的应用中集成。如图ID所示,位置组件104a已经自动连接 至天气组件100a,使得天气组件IOOa现在提供加利福尼亚州旧金山而不是加利福尼亚州 圣何塞的天气预报。将向图表组件102a提供改变的天气信息(例如,温度),使得该图反映 在表现旧金山随时间的温度。图2A是未连接状态的图IA-图ID的组件的示意图。组件的属性可以充当与其他 组件的属性的自动连接的场所。此类属性(此后称为“连接”)充当源或者宿。源连接是向 其他组件的一个或多个宿连接提供信息的连接。宿连接是从其他组件的一个或多个源连接接收信息的连接。组件可以具有一个或多个源连接、宿连接或其组合。作为一个示例,如果 组件被实现为面向对象的编程语言(例如,ActionScript, Java或者C++)中的类,那么如 果该类的方法配置用于产生或者返回信息,则其可被自动或人工指定为源连接;如果其配 置用于在一个或多个参数中接收信息,则其可被自动或人工指定为宿连接(组件连接将在 下文参考图3详述)。作为示范,天气组件IOOa具有用于提供温度信息的源连接202a,时钟组件IOOb具 有用于提供时间信息的源连接204c,图表组件102a具有用于接收Y值的宿连接200a以及 用于接收X值的第二宿连接200b。并且,位置组件104a具有用于提供位置信息的源连接 206a。在各种实现中,连接将信息作为文本串(例如,Unicode字符)、二进制数据、〈名称, 值〉二元组、标记语言(例如,可扩展标记语言)或其组合来进行交换。其他信息格式也是 可行的。在其他实现中,可以使用Adobe Flex跨平台应用框架的数据绑定特征以在连接之 间交换信息。图2B是如与窗口 100相关联的应用中所示的自动连接的图IA-图ID的组件的示 意图。位置组件104a通过源连接206a借助于宿连接202b向天气组件100a提供位置信息。 天气组件IOOa转而显示针对所接收位置的天气,并且在源连接202a上提供针对该位置的 温度信息。温度信息由图表组件102a的Y轴宿连接200a接收。由时钟组件IOOb通过源 连接204c提供的当前时间信息由X轴宿连接200b接收,并被用于在图表组件102a中将温 度作为时间的函数进行描绘。组件可以包括以下一个或多个编程语言源代码,已编译或解释的编程语言源代 码,元数据,属性,以及资源(例如,图像、声音或者其他内容)。作为示范,组件可以是方法、 函数、过程、脚本、事件处理机、信号处理机或其各种组合。其他组件类型也是可行的。如果组件的一个或多个连接被指定为可自动连接的,则组件可以参与自动连接过 程(例如,当组件被释放到接受方应用中时)。在各种实现中,与组件的源代码内联的或者 源代码外部的元数据标签或者其他指定符可以指示哪些连接是可自动连接的。例如,元数 据标签[AutoCormect]可以用来指定这种连接。示例标签值如下[AutoConnect (source, option” . . . optionn)][AutoConnect (sink, Option1,. . . optionn)][AutoConnect (source, sink, option” . . . optionn)]“source”参数指示指定的连接(例如,方法)可以向其他组件提供信息。"sink" 参数指示连接可以从其他组件接受信息。在某些实现中,连接可以既是源又是宿。在其他实现中,进行连接的顺序以及其他选项可能影响自动连接过程。例如, [AutoConnect]标签允许表示为Option1,. . . optionn的一个或多个可选参数。"order = η,, 可选参数指定此可自动连接的连接应当被考虑的顺序“η”。例如,考虑以下ActionScript 代码[AutoConnect(source, order = 1)]Public function get windSpeed() :Number{return 3 ;}其指示在与其他组件连接时,称为“windSpeed”的连接应当在此组件的其他连 接之前予以考虑。另一可选参数是“NamesMustMatch”,其将组件属性之间的连接类型限制为两个候选上的属性名称严格匹配的那些类型[AutoConnect (Souce, NamesMustMatch)]Public function get windSpeed() :Number{return 3 ;}也即,例如,如果一个组件在名为“windSpeed”的属性上指定了该 "NamesMustMatch",则该属性将仅绑定至另一组件上名为“windSpeed”的属性。备选地,如果两个连接名称是同义的,则它们是匹配的。在另一备选中,如果名称 在彼此的规定编辑距离内(例如,两个字符串之间的编辑距离是将其中之一变换为另一个 所需的操作数目),则它们是匹配的。其他匹配方式也是可行的。另一可选参数是“TypesMustMatch”,其将两个组件属性之间的连接类型限制为两 个候选上的属性类型严格匹配或者备选地彼此兼容(例如,一个类型可以转换为另一个) 的类型[AutoConnect (Souce, TypesMustMatch)]Public function get Temperature () :Number {return 78;}也即,如果一个组件在名为“Temperature ”的属性上指定了该“TypesMustMatch”, 则该属性将仅绑定至另一组件上例如接受数值(例如,78)而非字符串的宿连接。另一可选参数是“DRMMustMatch,,,其将两个组件属性之间的连接类型限制为两个 候选上的DRM权限严格匹配或者备选地彼此兼容的类型。又一可选参数是“AllowMultiple”,其表示在已经进行连接的情况下,不从可用 连接池中移除具有此标签的源连接或宿连接。图3示出了用于使用内联元数据标签的示例组件的ActionScript源代码300。 组件源代码的位置由元数据标签316给出,其将位置指定为通用资源定位符(URL)。 “PersistentProperties”标签314指示组件中的哪些属性应当在拖放操作或等同操作上 序列化(serialize),使得在接受方应用中保留和恢复组件的状态(并且在保存运行应用 的“当前配置”时也是如此)。个体组件属性可以利用PersistentProperties来做标签以 实现相同结果。组件被定义为名为"TextArea"的类302,其实现接口 “ IComposable,,304。 IComposable接口例如向编译器或者运行时环境指定类为可复用组件。组件包括两个方法, 其已由元数据标签306指定为可自动连接的。它们是充当宿连接的设置文本方法308,以及 充当源连接的得到文本方法310。其他方法312未被指定为可自动连接的,因此在自动连接 过程期间不予考虑。图4A是示例自动连接技术的流程图400。在各种实现中,在向接受方应用中集成 新组件时,进行与接受方应用中的已有组件进行连接的多次尝试。起初,标识新组件上的源 连接以及已有组件上的宿连接。当新组件上的源连接的名称与已有组件上的宿连接的名称 相匹配时,将它们绑定在一起(步骤402)。同样,当新组件上的宿连接的名称与已有组件 上的源连接的名称相匹配时,将其绑定在一起(步骤404)。标识新组件上的未绑定源连接 并将其绑定至已有组件上的未绑定宿连接,除非连接之一被指定为NameMustMatch(步骤 406)。标识新组件上的未绑定宿连接并将其绑定至已有组件上的未绑定源连接,除非连接 之一被指定为NameMustMatch (步骤408)。此技术可被修改为基于类型或其他标准进行匹 配。绑定连接一旦进行,便可以在保存接受方应用状态时被保留,从而使其在重启接受方应用时按照其先前的样子被重建。图4B是用于向应用中集成应用组件的示例技术的流程图410。标识第一应用组 件(例如,在给予方应用中),第一应用组件具有一个或多个第一自动连接(步骤412)。继 而标识运行的接受方应用,其中该接受方应用具有一个或多个第二应用组件,每个第二应 用组件具有一个或多个第二自动连接(步骤414)。向接受方应用提供第一应用组件(步 骤416),其中该提供包括选择第一应用组件的第一自动连接;第一自动连接是宿和源中 的一个(步骤418);选择第二应用组件的第二自动连接,第二自动连接是宿和源中的另一 个(步骤420);以及连接第一自动连接与第二自动连接,从而可以在第二应用正在运行时, 借助于第一自动连接和第二自动连接在第一应用组件与第二应用组件之间交换信息(步 骤 422)。图5是示例自动组件连接系统500的示意图。在此示例中,给予方应用502和接 受方应用504被示出为正在相同的计算设备(600)上执行。然而,无需一定如此。一般地, 例如给予方应用502和接受方应用504可以在由计算机网络连接的不同计算设备上执行。 给予方应用502或者另一过程向接受方应用504提供组件信息,其由组件集成器模块510 接收。在某些实现中,接受方应用504是web浏览器。在某些实现中,接受方应用504是 Adobe AIR应用。Adobe AIR是跨操作系统运行时,其允许web开发者利用其已有技能(诸 如,HTML和JavaScript)在桌面上构建和部署web应用。Adobe AIR可从加利福尼亚州圣 何塞的Adobe Systems Incorporated获得。其他接受方应用也是可能的,包括不具有VM 的应用。集成器模块510调用类加载器514以便从组件信息中指定的位置加载组件代码, 并且利用代码中存在的符号和关联类型来填充符号数据库534。类加载器514还识别代码 中的元数据标签,并且在符号数据库534中针对每个连接创建条目,包括连接类型(例如, 宿,源)以及在连接上设置的任何选项。与符号相关联的代码存储在运行时数据区538的 方法区524中。运行时数据区538还包括供VM使用的栈520,以及在调用本机方法时使用 的本机方法栈522。堆526可由方法使用来创建全局对象。集成器模块510还可以向符号 数据库534集成针对组件或其连接的DRM信息(来自组件信息),如果这种DRM信息存在的 话。一旦已经处理了代码和DRM信息,自动连接器模块512就尝试将组件上的自动连 接与接受方应用504中的组件进行绑定。例如,参见图4A以及相应的讨论。集成器510继 而在DOM 532中安装组件的可视表示(如果有的话),使得该可视表示将呈现在DOM的绘制 中。在某些实现中,可视表示的位置基于目标位置(例如,108),如果此信息被包括在组件 信息中的话。在其他实现中,例如,组件集成器510可以基于组件可视表示的连通性对其进 行布置,使得连接的组件看上去彼此靠近。其他可视布置也是可行的。执行引擎540执行来自方法区524的代码(例如,ActionScript)以创建运行的 过程528,其可以利用诸如VM栈(510)和堆(526)的VM资源。执行的过程528可以利用一 个或多个组件。组件能够通过多种方式在其绑定连接之间交换信息。在某些实现中,组件 使用由组件数据交换支持模块516实现的同步消息收发模型。在此模型中,宿连接向数据 交换支持模块516实现的事件分派器进行注册。当源连接具有要提供的新信息时,事件分 派器调用与源连接注册的每个宿连接来接收该信息。
10
另一组件交互模型是异步事件模型。在此模型中,组件数据交换支持模块516实 现事件队列,当新数据可用时源连接可以将其向事件队列投递,而当宿连接准备好接收新 数据时可以异步地从事件队列进行读取。在某些实现中,每个绑定源连接存在一个事件队 列。这允许事件压缩,因为宿连接可能只希望来自源的最新值,而不是从宿连接最后一次读 取队列后的所有已投递值。另一组件交互模型是共享存储器模型,其使用堆526来存储全局源连接表。类似 于异步事件模型,源连接可以在源数据就绪时在共享存储器表中设置标志。组件数据交换 支持模块516定期扫描该表,以查看是否存在任意连接上可用的新数据。如果存在,模块 516通知绑定至该源连接的宿连接,使其可以获得数据。又一组件交互模型是基于数据流模型。组件数据交换支持模块516构造有向图, 其反映宿连接与源连接之间的依赖关系。下游宿连接尝试读取上游源连接,并且将阻塞直 到上游源连接生成新数据。其他实现也是可行的。图6是可以用来实现本文中描述的系统和技术的计算设备600、650 (作为客户端, 或者作为一个服务器或多个服务器)的框图。计算设备600意在表示各种形式的数字计算 机,诸如膝上型计算机、桌面计算机、工作站、个人数字助理、服务器、刀片服务器、主机以及 其他适当的计算机。计算设备650意在表示各种形式的移动设备,诸如个人数字助理、蜂窝 电话、智能电话以及其他类似的计算设备。在此示出的组件、其连接和关系及其功能仅仅意 在示例,而非意在限制本文中描述和/或要求保护的发明的实现。计算设备600包括处理器602、存储器604、存储设备606、与存储器604和高速扩 展端口 610连接的高速接口 608,以及与低速总线614和存储设备606连接的低速接口 612。 部件602、604、606、608、610和612的每一个都使用各种总线互连,并且可以安装在共同的 主板上或以其他方式适当安装。处理器602可以处理供计算设备600中执行的指令,包括 存储在存储器604中或者存储设备606上的、用以在外部输入/输出设备(诸如,耦合至高 速接口 608的显示器616)上显示用于⑶I的图形信息的指令。在其他实现中,可以适当地 使用多个处理器和/或多个总线以及多个存储器和存储器类型。而且,可以连接多个计算 设备600,每个设备提供所需操作的部分(例如,作为服务器组、刀片服务器群或者多处理 器系统)。存储器604存储计算设备600中的信息。在一个实现中,存储器604是计算机可 读介质。在一个实现中,存储器604是一个或多个易失性存储器单元。在另一实现中,存储 器604是一个或多个非易失性存储器单元。 存储设备606能够为计算设备600提供大容量存储。在一个实现中,存储设备606 是计算机可读介质。在各种不同实现中,存储设备606可以是软盘设备、硬盘设备、光盘设 备,或者带设备、闪存或其他类似的固态存储器设备,或者设备阵列,包括存储区域网络或 其他配置的设备。在一个实现中,计算机程序产品有形地包含在信息载体上。计算机程序 产品包含指令,当该指令执行时实现诸如在此描述的一个或多个方法。信息载体是计算机 可读介质或者机器可读介质,诸如存储器604、存储设备606、处理器602上的存储器或者传 播的信号。 高速控制器608管理计算设备600的带宽敏感型操作,而低速控制器612管理对 带宽较不敏感的操作。这种任务分配仅仅是示例性的。在一个实现中,高速控制器608耦合至存储器604、显示器616 (例如,通过图形处理器或者加速器)以及高速扩展端口 610, 高速扩展端口 610可以接受各种扩展卡(未示出)。在实现中,低速控制器612耦合至存储 设备606和低速扩展端口 614。低速扩展端口可以包括各种通信端口(例如,USB、蓝牙、以 太网、无线以太网),其可以耦合至一个或多个输入/输出设备,诸如键盘、指点设备、扫描 仪,或者例如通过网络适配器耦合至诸如交换机或路由器之类的联网设备。如图所示,计算设备600可以通过多种不同形式来实现。例如,其可以实现为标准 服务器620,或者在这种服务器群组中实现多次。其也可以实现为机架式服务器系统624的 部分。而且,其可以实现在诸如膝上型计算机622的个人计算机中。备选地,来自计算设备 600的部件可以与诸如设备650的移动设备(未示出)中的其他部件结合。每个此类设备 可以包含一个或多个计算设备600、650,并且整个系统可以包括彼此通信的多个计算设备 600、650。除其他部件外,计算设备650包括处理器652、存储器664、诸如显示器654的输入 /输出设备、通信接口 666以及收发器668。设备650还可以具有存储设备,诸如微驱动或 者其他设备,以提供附加存储装置。部件650、652、664、654、666以及668的每一个可以使 用各种总线互连,并且若干组件可以安装在共同的主板上,或者以其他方式适当安装。处理器652可以处理用于在计算设备650内执行的指令,包括存储在存储器664 中的指令。处理器还可以包括独立的模拟处理器和数字处理器。处理器例如可以提供与设 备650的其他部件的协调,诸如对用户接口、设备650运行的应用以及设备650的无线通信 进行控制。处理器652可以通过控制接口 658以及耦合至显示器654的显示接口 656与用户 通信。显示器654例如可以是TFT IXD显示器或者OLED显示器,或者其他适合的显示器技 术。显示接口 656可以包括用于驱动显示器654以便向用户呈现图形和其他信息的适当电 路。控制接口 658可以从用户接收命令,并且对其进行转换以便向处理器652提交。另外, 外部接口 662可以提供与处理器652的通信,从而允许设备650与其他设备的近距离通信。 例如,外部接口 662可以提供有线通信(例如,通过扩展坞过程)或无线通信(例如,经由 蓝牙或者其他此类技术)。存储器664存储计算设备650中的信息。在一个实现中,存储器664是计算机可 读介质。在一个实现中,存储器664是一个或多个易失性存储器单元。在另一实现中,存储 器664是一个或多个非易失性存储器单元。还可以提供扩展存储器674,并且通过扩展接 口 672将其连接至设备650,该扩展接口 672例如可以包括SIMM卡接口。此类扩展存储器 674可以为设备650提供额外的存储空间,或者还可以为设备650存储应用或者其他信息。 特别地,扩展存储器674可以包括用于执行或者补充上文描述过程的指令,并且还可以包 括安全信息。由此,例如,可以提供扩展存储器674作为设备650的安全模块,并且可以利 用允许设备650的安全使用的指令来对其编程。另外,可以经由SIMM卡来提供安全应用以 及附加信息,诸如将标识信息以黑客不可侵犯的方式置于SIMM卡上。如下文讨论,存储器可以包括例如闪存和/或MRAM存储器。在一个实现中,计算 机程序产品有形地包含在信息载体中。计算机程序产品包括指令,当执行该指令时,其执行 如上文所述的一个或者多个方法。信息载体是计算机可读介质或者机器可读介质,诸如存 储器664、扩展存储器674或者处理器652上的存储器或者传播的信号。
设备650可以通过通信接口 666进行无线通信,通信接口 666在需要的情况下可 以包括数字信号处理电路。通信接口 666可以提供用于各种模式或者协议下的通信,诸如 GSM 语音呼叫、SMS、EMS 或者 MMS 消息收发、CDMA、TDMA、PDC、WCDMA、CDMA2000 或者 GPRS 等 等。此类通信例如可以通过射频收发器668来进行。另外,近程通信例如可以使用蓝牙、 WiFi或者其他此类收发器(未示出)来进行。而且,GPS接收器模块670可以向设备650 提供附加无线数据,其可以由设备650上运行的应用适当地使用。设备650还可以使用音频编解码器660以可听方式通信,其可以从用户接收话音 信息,并且将其转换为可用数字信息。音频编解码器660同样可以为用户生成可听的声音, 诸如通过设备650的手持机中的扬声器。此类声音可以包括来自语音电话呼叫的声音,可 以包括录制的声音(例如,语音消息、音乐文件等),并且还可以包括由设备650上操作的应 用生成的声音。如图所示,计算设备650可以通过各种不同方式来实现。例如,其可以实现为蜂窝 电话680。其还可以实现为智能电话682、个人数字助理或者其他类似移动设备的部分。在此描述的系统和技术的各种实现可以在数字电子电路、集成电路、专门设计的 ASIC(专用集成电路)、计算机硬件、固件、软件和/或其结合中实现。这些各种实现可以包 括一个或者多个计算机程序中的实现,其可以在可编程系统上执行和/或解释,所述可编 程系统包括至少一个专用的或者通用的可编程处理器,其被耦合以便往来于存储系统、至 少一个输入设备、以及至少一个输出设备而接收或者发送数据和指令。这些计算机程序(也称作程序、软件、软件应用或者代码)包括用于可编程处理器 的机器指令,并且可以在高级过程和/或面向对象的编程语言和/或以汇编/机器语言来 实现。如在此所使用,术语“机器可读介质”、“计算机可读介质”是指用以向可编程处理器 提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存 储器、可编程逻辑器件(PLD)),包括机器可读介质,该介质接收作为机器可读信号的机器指 令。术语“机器可读信号”是指用以向可编程处理器提供机器指令和/或数据的任何信号。为了提供与用户的交互,可以在如下计算机上实现在此描述的系统和技术,所述 计算机具有显示设备(例如,CRT (阴极射线管)或者LCD (液晶显示)监视器),用于向用 户显示信息;以及键盘和指示设备(例如,鼠标或者轨迹球),用户可以通过其向计算机提 供输入。同样可以使用其他类型的设备来提供与用户的交互;例如,向用户提供的反馈可以 是任何形式的传感反馈(例如,可视反馈、可听反馈或者触觉反馈);以及可以以任何形式 接收来自用户的输入,包括声学、语音或者触觉输入。在此描述的系统和技术可以在计算系统中实现,该计算系统包括后端部件(例 如,作为数据服务器)或者包括中间件部件(例如,应用服务器)或者包括前端部件(例 如,客户端计算机,具有图形用户界面或者Web浏览器,用户可以通过其与在此所述的系统 和技术的实现进行交互),或者包括此类后端、中间件或者前端部件的任意结合。系统的部 件可以以各种方式或者通过数字数据通信介质(例如,通信网络)来进行互连。通信网络 的示例包括局域网(“LAN”)、广域网(“WAN”)以及因特网。计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通 过通信网络来进行交互。客户端和服务器的关系借助于在相应计算机上运行的计算机程序 来实现,并且彼此具有客户端_服务器关系。
13
已经描述了本发明的多个实施方式。然而,将会理解,在不脱离本发明的精神和范 围的情况下可以进行各种修改。例如,可以使用上文示出的各种形式的流程,其步骤可以重 排序、添加或者删除。而且,尽管已经描述了支付系统和方法的多个应用,但是应当认识到, 可以想到多种其他应用。由此,其他实施方式也在所附权利要求的范围内。
权利要求
一种计算机实现的方法,包括由运行应用接收标识应用组件的信息,第一应用组件具有一个或多个第一可自动连接的连接,所述接收包括选择所述第一应用组件的第一连接,所述第一连接是宿和源中的一个;选择第二应用组件的第二可自动连接的连接,所述第二应用组件驻留在第一运行应用中,所述第二连接是所述宿和所述源中的另一个;以及连接所述第一连接与所述第二连接,使得可以在第一应用运行时,借助于所述第一连接和所述第二连接在所述第一应用组件与所述第二应用组件之间交换信息。
2.如权利要求1所述的方法,其中所述第一应用组件从另一运行应用获得。
3.如权利要求1所述的方法,其中所述第一应用组件从文件系统获得。
4.如权利要求1所述的方法,进一步包括向所述第一运行应用集成用于运行所述第一应用组件的代码。
5.如权利要求1所述的方法,其中所述第一应用组件在第二运行应用或者文件系统中 具有可视表示。
6.如权利要求5所述的方法,其中接收包括在所述第一运行应用的可视表示中呈现所述第一应用组件的可视表示。
7.如权利要求6所述的方法,进一步包括接受输入以确定所述第一应用组件的可视表示将出现在所述第一运行应用的可视表 示中的什么位置。
8.如权利要求1所述的方法,其中接收由所述第一应用组件向所述运行应用的拖放操 作来触发。
9.如权利要求1所述的方法,其中所述第一自动连接和所述第二自动连接相匹配。
10.如权利要求1所述的方法,进一步包括保持所述第一应用组件与所述第二应用组件之间的连接。
11.如权利要求1所述的方法,其中在所述第一应用组件与所述第二应用组件之间交 换的信息是文本的。
12.—种计算机程序产品,编码在计算机可读介质上,可操作以使一个或多个处理器执 行操作,所述操作包括由运行应用接收标识应用组件的信息,第一应用组件具有一个或多个第一可自动连接 的连接,所述接收包括选择所述第一应用组件的第一连接,所述第一连接是宿和源中的一个; 选择第二应用组件的第二可自动连接的连接,所述第二应用组件驻留在第一运行应用 中,所述第二连接是所述宿和所述源中的另一个;以及连接所述第一连接与所述第二连接,使得可以在第一应用运行时,借助于所述第一连 接和所述第二连接在所述第一应用组件与所述第二应用组件之间交换信息。
13.如权利要求12所述的程序产品,其中所述第一应用组件从另一运行应用获得。
14.如权利要求12所述的程序产品,其中所述第一应用组件从文件系统获得。
15.如权利要求12所述的程序产品,其中所述操作进一步包括 向所述第一运行应用集成用于运行所述第一应用组件的代码。
16.如权利要求12所述的程序产品,其中所述第一应用组件在第二运行应用或者文件 系统中具有可视表示。
17.如权利要求16所述的程序产品,其中接收包括在所述第一运行应用的可视表示中呈现所述第一应用组件的可视表示。
18.如权利要求17所述的程序产品,其中所述操作进一步包括接受输入以确定所述第一应用组件的可视表示将出现在所述第一运行应用的可视表 示中的什么位置。
19.如权利要求12所述的程序产品,其中接收由所述第一应用组件向所述第二运行应 用的拖放操作来触发。
20.如权利要求12所述的程序产品,其中所述第一自动连接和所述第二自动连接相匹配。
21.如权利要求12所述的程序产品,其中所述操作进一步包括保持所述第一应用组件与所述第二应用组件之间的连接。
22.如权利要求12所述的程序产品,其中在所述第一应用组件与所述第二应用组件之 间交换的信息是文本的。
23.—种系统,包括包括程序产品的计算机可读存储设备;以及一个或多个处理器,可操作以执行所述程序产品、与显示设备交互以及执行操作,所述 操作包括由运行应用接收标识应用组件的信息,第一应用组件具有一个或多个第一可自动连接 的连接,所述接收包括选择所述第一应用组件的第一连接,所述第一连接是宿和源中的一个;选择第二应用组件的第二可自动连接的连接,所述第二应用组件驻留在第一运行应用 中,所述第二连接是所述宿和所述源中的另一个;以及连接所述第一连接与所述第二连接,使得可以在第一应用运行时,借助于所述第一连 接和所述第二连接在所述第一应用组件与所述第二应用组件之间交换信息。
24.如权利要求23所述的系统,其中所述第一应用组件从另一运行应用获得。
25.如权利要求23所述的系统,其中所述第一应用组件从文件系统获得。
26.如权利要求23所述的系统,其中接收包括向所述第一运行应用集成用于运行所述 第一应用组件的代码。
27.如权利要求23所述的系统,其中所述第一应用组件在第二运行应用或者文件系统 中具有可视表示。
28.如权利要求27所述的系统,其中接收包括在所述第一运行应用的可视表示中呈现所述第一应用组件的可视表示。
29.如权利要求28所述的系统,其中所述操作进一步包括接受输入以确定所述第一应用组件的可视表示将出现在所述第一运行应用的可视表 示中的什么位置。
30.如权利要求23所述的系统,其中接收由所述第一应用组件向所述第二运行应用的 拖放操作来触发。
31.如权利要求23所述的系统,其中所述第一自动连接和所述第二自动连接相匹配。
32.如权利要求23所述的系统,其中所述操作进一步包括 保持所述第一应用组件与所述第二应用组件之间的连接。
33.如权利要求23所述的系统,其中在所述第一应用组件与所述第二应用组件之间交 换的信息是文本的。
全文摘要
除其他之外,本公开包括用于应用组件之间的自动连接的系统、方法和程序产品。
文档编号G06F9/46GK101971143SQ200980108579
公开日2011年2月9日 申请日期2009年2月4日 优先权日2008年2月5日
发明者D·特里斯特拉姆, R·R·韦伯斯特 申请人:奥多比公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1