CN101288047A - 软件内插附件组件的发现、鉴定和激活 - Google Patents

软件内插附件组件的发现、鉴定和激活 Download PDF

Info

Publication number
CN101288047A
CN101288047A CNA2006800381986A CN200680038198A CN101288047A CN 101288047 A CN101288047 A CN 101288047A CN A2006800381986 A CNA2006800381986 A CN A2006800381986A CN 200680038198 A CN200680038198 A CN 200680038198A CN 101288047 A CN101288047 A CN 101288047A
Authority
CN
China
Prior art keywords
component
add
application program
computer
executable instructions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006800381986A
Other languages
English (en)
Other versions
CN101288047B (zh
Inventor
B·皮平
J·S·米勒
T·E·小奎恩
J·M·瑞切特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101288047A publication Critical patent/CN101288047A/zh
Application granted granted Critical
Publication of CN101288047B publication Critical patent/CN101288047B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及用于发现、鉴定和激活软件内插附件组件的方法、系统和计算机程序产品。内插附件组件管理器发现计算机系统处为应用程序所请求的指定的内插附件组件类型的一个或多个内插附件组件。内插附件组件管理器基于至少一个所发现的内插附件组件满足一个或多个鉴定约束来鉴定至少一个所发现的内插附件组件。一个或多个鉴定约束表示为使一内插附件组件以所需方式与应用程序协同操作而要与该内插附件组件相关联的功能。内插附件组件管理器根据用于应用程序的一个或多个鉴定约束来激活合格的内插附件组件。

Description

软件内插附件组件的发现、鉴定和激活
背景
1.背景和相关技术
计算机系统和相关技术影响着社会的方方面面。实际上,计算机系统处理信息的能力已经改变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现之前手动执行的大量任务(例如,文字处理、日程安排和数据库管理)。最近,计算机系统彼此耦合并耦合到其它电子设备以形成有线和无线计算机网络,通过这些网络计算机系统和其它电子设备可传输电子数据。因此,在计算机系统处执行的许多任务(例如,语音通信、访问电子邮件、控制家用电器、web浏览和打印文档)包括经由有线和/或无线计算机网络在多个计算机系统和/或其它电子设备之间的电子消息交换。
软件应用程序(例如,文字处理程序、电子邮件客户端等)通常是以模块化方式设计的,使得一应用程序的不同软件组件协同操作以提供所需功能。由此,一应用程序的各模块可由最终用户在运行时组装,并且通常由不同厂商在不同时刻提供。这一模块性允许应用程序的特征集动态地改变,并促进了对更大应用程序的高效的分布式开发。
例如,不同的开发者团队可独立地对一应用程序的各模块工作,并在稍后组合这些模块。在开发期间,不同模块可被设计成在运行时彼此协同操作。通常,软件开发团队的成员彼此了解,并且都可以是同一家公司的职员(例如,特别地被指派来开发指定应用程序)。另一方面,不同开发者团队可被给予提供特定模块的软件规范,并且不同团队彼此不了解。
应用程序开发可包括开发用于与提供最初没有被设计到应用程序中的附加和/或不同功能的其它(可能是随后开发的)模块(例如,内插附件)协同操作的接口。例如,web浏览器通常包括加载例如有助于对否则不能被处理的格式化内容(例如,flash动画、可移植文档格式文档等)的正确处理的插件。尽管可能是由目标应用程序的开发者开发的,但是插件和内插附件通常是由第三方开发者来开发的。即,内插附件的开发者通常不是该内插附件被设计成与其协同操作的应用程序的开发者。
结果,应用程序和相应的内插附件通常在不同的时刻被安装(或储存)到计算机系统上。为加载内插附件,应用程序以该内插附件的名称来调用适当接口。然而,为使应用程序能够加载内插附件,应用程序通常必须知道该内插附件的位置(例如,在文件系统中)和名称。由此,内插附件目录的路径通常被硬编码到应用程序中。为使应用程序能够利用内插附件,该内插附件必须被储存在适当的内插附件目录中。
由于每一应用程序可具有用于不同内插附件目录的硬编码路径,因此在计算机系统上可以有多个内插附件目录。某些内插附件可被设计成向不同应用程序(例如,文字处理程序、电子邮件客户端、电子表格应用程序等)提供相似的功能(例如,字典)。然而,为向多个不同应用程序提供相似的功能,必须将该内插附件的单独副本储存在每一应用程序的内插附件位置中。结果,内插附件可能在计算机系统处的多个位置中被冗余地储存。在某些环境中,具有所需功能的内插附件可被储存在计算机系统处,但是对于应用程序是未知和/或不可访问的,因为该内插附件被储存在用于一不同应用程序的内插附件目录中。
内插附件的开发通常要求内插附件开发者知道由应用程序用于加载内插附件的接口。由此,如果一内插附件开发者期望向多个不同应用程序提供相似的内插附件功能,该内插附件开发者必须用对每一不同应用程序适当的接口来开发该内插附件。此外,如果一应用程序更新应用改变程序接口,则为了兼容性,该内插附件也需要被更新。由此,内插附件开发者为了兼容性可能需要频繁地发行该内插附件的新版本,即使该内插附件中没有包括任何新功能。
如上所述,访问内插附件的功能通常包括按照名称从应用程序专用内插附件目录中加载内插附件。然而,在加载内插附件之前,应用程序仅有极少(如果有)关于该内插附件将如所预期地操作并且该内插附件是安全的保证。通常,可用于确定内插附件如何操作的唯一机制是在运行时加载该内插附件并测试它。由此,应用程序可能被迫加载并运行一被不恰当配置的内插附件来确定该内插附件是被不切当地配置的。应用程序对不恰当配置的内插附件的使用可导致计算机系统不正常工作。
对内插附件的使用还造成了安全性风险,因为内插附件中的恶意代码可能能够通过与应用程序接口而获得对本应收到保护的系统功能的访问。然而,应用程序可能具有有限的(如果有)用于在不加载并运行内插附件的情况下确定该内插附件包括恶意代码的机制。一种解决方案是阻止应用程序利用任何内插附件。然而,该解决方案阻止了应用程序使用增强应用程序功能的适当配置的内插附件。
简述
本发明涉及用于发现、鉴定和激活软件内插附件组件的方法、系统和计算机程序产品。在某些实施例中,计算机系统发现可用于应用程序的内插附件。内插附件组件管理器从应用程序接收对可用内插附件组件的请求。该请求包括指示该应用程序所请求的指定的内插附件组件类型的可选择内插附件组件特性。
该内插附件组件管理器将该可选择内插附件组件特性与用于一内插附件组件的内插附件组件条目的内容进行比较。该内插附件组件条目被包括在一内插附件组件索引中,该索引还包括了用于该计算机系统的其它内插附件组件的内插附件组件条目。该内插附件组件条目包括指示在与内插附件组件管理器的注册期间标识的内插附件组件的功能的一个或多个特性。该内插附件组件管理器基于比较的结果确定该内插附件组件是应用程序所请求的指定类型。该内插附件组件管理器向应用程序指示,该内插附件组件是对该应用程序可用的指定类型的内插附件组件。
在其它实施例中,一计算机系统确定对一应用程序可用的内插附件组件是否有资格用于应用程序。一内插附件组件管理器访问对应用程序可用的候选内插附件组件的一个或多个所标识的特性。该一个或多个所标识的特性指示了与该候选内插附件组件相关联的功能。该内插附件组件在内插附件组件索引中的内插附件组件条目中表示,该索引还包括用于该计算机系统的其它内插附件组件的内插附件组件条目。
该组件管理器从应用程序接收对满足一个或多个鉴定约束的内插附件组件的请求。每一鉴定约束表示为使该内插附件组件与应用程序适当地操作而要与该内插附件组件相关联的功能。该组件管理器将该一个或多个鉴定约束与一个或多个所标识的特性进行比较。该组件管理器基于将一个或多个鉴定约束与一个或多个所标识的特性进行比较的结果来确定该候选内插附件组件是否有资格用于该应用程序。
在其它实施例中,一计算机系统基于所请求的内插附件组件功能来加载用于应用程序的内插附件组件。一内插附件组件管理器发现计算机系统处为应用程序所请求的指定的内插附件组件类型的一个或多个内插附件组件。该内插附件组件管理器基于满足一个或多个鉴定约束的至少一个所发现的内插附件组件来鉴定该至少一个所发现的内插附件组件。该一个或多个鉴定约束代表为使一内插附件组件以所需方式与应用程序协同操作而要与该内插附件组件相关联的功能。该内插附件组件管理器根据用于该应用程序的一个或多个鉴定约束来激活合格的内插附件组件。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的其它特征和优点将在以下描述中阐明,并且其一部分将从该描述中变得明显,或者可通过对本发明的实践而获知。本发明的特征和优点可通过所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和其它特征将从以下描述和所附权利要求书中变得更完全清楚,或者可如下所述通过对本发明的实践而获知。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考在附图中所示的其具体实施例来呈现以上简要描述的本发明的更具体描述。要理解,这些附图仅描绘了本发明的典型实施例,并且因此不被认为是限制其范围,本发明将通过使用附图以附加的特征和细节来描述和解释,附图中:
图1示出了帮助发现、鉴定和激活软件内插附件组件的计算机体系结构。
图2示出了用于发现对应用程序可用的内插附件组件的方法的流程图。
图3示出了用于确定对应用程序可用的内插附件组件是否有资格用于该应用程序的方法的流程图。
图4示出了用于基于所请求的内插附件组件功能来加载用于应用程序的内插附件组件的方法的流程图。
详细描述
本发明涉及用于发现、鉴定和激活软件内插附件组件的方法、系统和计算机程序产品。在某些实施例中,计算机系统发现可用于应用程序的内插附件。内插附件组件管理器从应用程序接收对可用内插附件组件的请求。该请求包括指示该应用程序所请求的指定的内插附件组件类型的可选择内插附件组件特性。
该内插附件组件管理器将该可选择内插附件组件特性与用于一内插附件组件的内插附件组件条目的内容进行比较。该内插附件组件条目被包括在一内插附件组件索引中,该索引还包括了用于该计算机系统的其它内插附件组件的内插附件组件条目。该内插附件组件条目包括指示在与内插附件组件管理器的注册期间标识的内插附件组件的功能的一个或多个特性。该内插附件组件管理器基于比较的结果确定该内插附件组件是应用程序所请求的指定类型。该内插附件组件管理器向应用程序指示,该内插附件组件是对该应用程序可用的指定类型的内插附件组件。
在其它实施例中,一计算机系统确定对一应用程序可用的内插附件组件是否有资格用于应用程序。一内插附件组件管理器访问对应用程序可用的候选内插附件组件的一个或多个所标识的特性。该一个或多个所标识的特性指示了与该候选内插附件组件相关联的功能。该内插附件组件在内插附件组件索引中的内插附件条目中表示,该索引还包括用于该计算机系统的其它内插附件组件的内插附件组件条目。
该组件管理器从应用程序接收对满足一个或多个鉴定约束的内插附件组件的请求。每一鉴定约束表示为使该内插附件组件与应用程序适当地操作而要与该内插附件组件相关联的功能。该组件管理器将该一个或多个鉴定约束与一个或多个所标识的特性进行比较。该组件管理器基于将一个或多个鉴定约束与一个或多个所标识的特性进行比较的结果来确定该候选内插附件组件是否有资格用于该应用程序。
在其它实施例中,一计算机系统基于所请求的内插附件组件功能来加载用于应用程序的内插附件组件。一内插附件组件管理器发现计算机系统处为应用程序所请求的指定的内插附件组件类型的一个或多个内插附件组件。该内插附件组件管理器基于满足一个或多个鉴定约束的至少一个所发现的内插附件组件来鉴定该至少一个所发现的内插附件组件。该一个或多个鉴定约束代表为使一内插附件组件以所需方式与应用程序协同操作而要与该内插附件组件相关联的功能。该内插附件组件管理器根据用于该应用程序的一个或多个鉴定约束来激活合格的内插附件组件。
本发明的各实施例可包括如以下更详细讨论的包括计算机硬件的专用或通用计算机。本发明范围内的各实施例还包括用于承载或其上储存有计算机可执行指令或数据结构的计算机可读介质。这一计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非局限,计算机可读介质可包括计算机可读存储介质,诸如RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于储存计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的任何其它介质。
在此说明书和所附权利要求书中,“网络”被定义为允许计算机系统和/或模块之间的电子数据传输的一个或多个数据链路。当信息通过网络或另一通信连接(无论是硬连线、无线还是硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。由此,作为示例而非局限,计算机可读介质可包括可用于承载或储存计算机可执行指令或数据结构形式的所需程序代码装置并可由通用或专用计算机访问的网络或数据链路。
计算机可执行指令包括,例如使得通用计算机、专用计算机或专用处理设备执行一个或一组特定功能的指令和数据。计算机可执行指令可以是,例如二进制代码、诸如汇编语言等中间格式指令、或甚至是源代码。尽管此处以对结构特征和/或方法动作专用的语言描述了该主题,但是可以理解,所附权利要求书中定义的主题不必限于以上所描述的特征或动作。相反,所描述的特征和动作是作为实现权利要求的示例性形式而公开的。
本领域的技术人员将认识到,本发明可以在具有多种类型的计算机系统配置的网络计算环境中实施,这些计算机系统配置包括个人计算机、膝上型计算机、手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型机、大型计算机、移动电话、PDA、寻呼机等等。本发明也可在其中任务由通过网络链接(无论是通过硬连线数据链路、无线数据链路、还是通过硬连线和无线数据链路的组合)的本地和远程计算机系统都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备两者中。
图1示出了帮助发现、鉴定和激活软件内插附件组件的计算机体系结构100的一个示例。计算机系统结构100中所描绘的是计算机系统的组件。计算机系统可连接到网络,诸如局域网(“LAN”)、广域网(“WAN”)或甚至是因特网。由此,计算机系统和其它网络连接计算机系统可从连接到网络的其它计算机系统接收数据和向其发送数据。因此,计算机以及其它连接的计算机系统(未示出)可创建消息相关数据并通过网络交换消息相关数据(例如,互联网协议(“IP”)数据报和利用IP数据报的其它较高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、简单邮件传输协议(“SMTP”)等)。
计算机系统体系结构100包括应用程序101、组件管理器102和存储103。在计算机体系结构100内,驻留在系统存储器内(或与其交互)的项由实线围绕。例如,应用程序101和组件管理器102被加载到系统存储器中。另一方面,驻留在存储103中的项由虚线围绕。例如,组件121、122和123和以及组件索引104的组件条目驻留在存储103中。在不同的时刻,相同的项可驻留在系统存储器和/或存储103中。例如,组件122可被激活,使得组件122的各部分从存储103被加载到系统存储器中(当仍驻留在存储103中)。
一般而言,应用程序101是被配置成利用软件内插附件组件来增强功能的应用程序。例如,应用程序101可以是能够加载外部字典的文字处理应用程序,或能够加载用于特定类型内容的插件的web浏览器。应用程序101可具有用于与软件内插附件组件协同操作的程序接口。应用程序101还可包括允许应用程序101的用户指定软件内插附件组件的类型以及软件内插附件组件为与应用程序101协同操作而要符合的约束的用户界面。
组件管理器102一般被配置成向应用程序提供可用软件内插附件组件。组件管理器102可以被包括在操作系统中,和/或可以是管理用于应用程序的软件内插附件组件的中间件的一部分。组件管理器102包括接收对软件内插附件组件的应用程序请求、标识满足该请求的软件内插附件组件、以及向应用程序返回所标识的软件内插附件组件的功能。
并且,作为注册过程的一部分,当一软件内插附件组件被安装到计算机体系结构100中时,组件管理器102可访问该软件内插附件组件。例如,组件管理器102可访问组件122。组件管理器102可分析所访问的软件内插附件组件(例如,基于安装信息)来标识存储103处要储存组件122的位置,诸如文件路径和文件名。
组件管理器102还可分析所访问的软件内插附件组件来标识(例如,通过反射(reflection))该软件内插附件组件的类型以及该软件内插附件组件的操作能力。例如,组件管理器102可分析组件122上的属性以标识组件122的类型和操作能力。软件内插附件组件类型可包括,例如字典、内容处理程序等。软件内插附件组件操作能力可包括用于软件内插附件组件入口点、软件内插附件组件所需或所支持的隔离边界、以及与软件内插附件组件相关联的安全性设置。
组件管理器102可构造包括指示软件内插附件组件的所标识的功能(即,类型和操作能力)的一个或多个特性的组件条目。例如,组件管理器102可构造用于组件122的至少包括特性141和151的组件条目131。组件条目中的特性可指示软件内插附件组件的类型,诸如字典、内容处理器程序等。组件条目中的特性还可指示储存软件内插附件组件的位置(例如,在文件系统中)。
组件条目中的特性还可指示用于实现用于该软件内插附件组件的接口的合约(或入口点协议)。表示入口点的特性可被包括在可扩展标记语言(“XML”)清单中,该清单遵循指定的清单模式,并且定义了包括在软件内插附件组件中的一个或多个程序集。组件管理器102可分析软件内插附件组件来标识入口点,并在组件条目中的特性中表示该入口点。入口点可以是程序集中的可实例化类。该类可实现由主机应用程序用于软件内插附件组件的初始挂钩(hookup)和控制的标准协议。以下代码示例表示一入口点协议:
Public interface IEntryPoint Protocol:IProtocol
{
void Startup(IProtocol hostObject);
void Shutdown();
}
特性还可指示用于运行软件内插附件组件的位置(或隔离边界)。位置可指示一软件内插附件组件是否与在作出请求的应用程序的进程内或进程外运行或在与作出请求的应用程序相同或不同的应用程序域中运行兼容。所支持或所需的隔离边界可包括本地应用程序域、共享应用程序域、私有应用程序域以及其它进程。
特性还可指示与软件内插附件组件相关联的安全性设置。例如,特性可指示用于运行一软件内插附件组件的一组许可。
组件管理器102可在组件索引104中储存所构造的用于软件内插附件组件的组件条目。组件索引104可以实际上是任何数据存储库,诸如系统注册表、共享的SQL服务器、XML文件、现用目录(Active Directory)服务器、因特网或文件系统目录。
在组件管理器102分析了软件内插附件组件之后或与其并行地,软件内插附件组件可被储存在存储103中。例如,组件122可以连同组件121和123(以及由垂直省略号表示的其它软件内插附件组件)一起储存在存储103处。由此,存储103中的每一软件内插附件组件可具有组件索引104中相应的组件条目(具有指示功能的一个或多个特性)。例如,组件条目131可对应于组件122,组件条目132可对应于组件121等等。
组件管理器102可按照组件管理器102已知的准则,例如内插附件的开发者、应用程序的开发者等,来对组件索引104排序。通过对索引排序,例如在发现期间使用这些准则的索引可以变得更高效。
如上所述,组件条目中的属性指示了对应的软件内插附件组件的功能。由此,特性141和151可指示组件122的功能,而特性142和152可指示组件121的功能。存储103处的组件123以及其它组件还可具有组件索引104中包含一个或多个指示性特性的相应组件条目。尽管组件条目131和132各自描述了两个特性,但是至少部分地基于组件管理器102对相应软件内插附件组件的分析,实际上任何数量的特性可被包括在组件条目中。
图2示出了用于发现对应用程序可用的内插附件组件的方法200的流程图。方法200将参考计算机系统体系结构200中的组件和数据来描述。
方法200包括从应用程序接收对可用内插附件组件的请求的动作(动作201)。该请求包括了指示该应用程序正在请求的指定的内插附件组件类型的可选择内插附件组件特性。例如,组件管理器102可从应用程序101接收包括特性112的请求111。特性112可指示应用程序101所请求的指定的软件内插附件组件类型。在某些实施例中,特性112被预配置到应用程序101中。在其它替换实施例中,应用程序101接收对特性112(或某一其它可选择特性)的用户选择。
方法200包括将该可选择内插附件组件特性与用于内插附件组件的内插附件组件条目的内容进行比较的动作(动作202)。该内插附件组件条目被包括在内插附件组件索引中,该索引还包括了用于计算机系统的其它内插附件组件的内插附件组件条目。该内插附件组件条目包括指示在向内插附件组件管理器的注册期间标识的内插附件组件的功能的一个或多个特性。例如,组件管理器102可发出针对组件索引104中的组件条目的查询113。由此,可以将特性112与组件条目131中的特性141和151(指示组件122的功能)进行比较。
方法200包括基于比较的结果确定内插附件组件是应用程序所请求的指定类型的动作(动作203)。例如,组件管理器102可基于将特性112与特性141(或组件条目131中的某一其它特性)进行比较的结果来确定组件122是应用程序101所请求的软件内插附件组件类型。组件管理器102还可以确定一个或多个其它组件也是指定类型的组件。组件管理器102可编译一标识任何指定类型的组件的列表,例如组件列表114。组件列表114还可包括来自组件条目的其它特性(除了类型之外),诸如指示软件内插附件组件的操作能力的特性。
方法200包括向应用程序指示该内插附件组件是对应用程序可用的指定类型的内插附件的动作(动作204)。例如,组件管理器102可向应用程序101指示组件122是由特性112指示的类型的组件。当编译指定类型的组件的列表,例如组件列表114时,组件管理器可将列表的至少一部分发送给应用程序101。例如,组件管理器102可将部分列表114P发送给应用程序101。
部分列表114P可包括标识指定类型的每一软件内插附件组件的特性。组件管理器102可保留指示软件内插附件组件操作能力的其它特性而不将其发送给应用程序101。或者,组件管理器102可将指示软件内插附件组件操作能力的特性发送给应用程序101。因此,应用程序101可以了解所请求的指定类型的任何可用的软件内插附件组件(以及可能的该软件内插附件组件的其它功能)。
方法200可以对内插附件组件索引中的每一条目(例如,组件索引104中的每一条目)重复,以潜在地标识指定类型的其它内插附件(例如,组件121和123)。由此,可发现指定类型的多个内插附件(即,所有注册内插附件的子集)。因此,可基于在注册内插附件时提供给内插附件管理器(例如,组件管理器102)的信息来标识(发现)内插附件组件。方法200可用于对可能由应用程序用于实现指定功能的内插附件组件进行粗粒度的选择。
图3示出了用于确定可用于一应用程序的内插附件组件是否有资格用于该应用程序的方法300的流程图。方法300将参考计算机系统体系结构100中的组件和数据来描述。
方法300包括访问对应用程序可用的候选内插附件组件的一个或多个所标识的特性的动作(动作301)。该一个或多个所标识的特性指示了与该候选内插附件组件相关联的功能。该内插附件组件在内插附件组件索引中的内插附件组件条目中表示,该索引还包括用于计算机系统的其它内插附件组件的内插附件组件条目。例如,组件管理器102可访问来自组件条目131的特性141和151(指示组件122的功能)。或者,组件管理器102可访问来自先前响应于发现指定类型的软件内插附件组件而编译的组件列表114的特性141和151。
在其它实施例中,组件管理器102访问未储存在组件条目索引104中的与组件122相关联的其它信息。其它相关联的信息可单独访问和/或与包括在组件索引104中的信息组合访问。其它相关联的信息可以对组件122可访问或可用,或可对其不可访问或不可用,并且可以在注册过程中已经或尚未被提供给组件管理器102。此外,组件管理器102可选择丢弃或忽略在注册过程中从组件接收到的信息。由此,即使组件122将相关联的信息提供给组件管理器102,相关联的信息也可以不被包括在组件条目131中(并且可以完全不在组件索引104中)。
方法300包括从应用程序接收对满足一个或多个鉴定约束的内插附件组件的请求的动作(动作302)。每一鉴定约束表示为使一内插附件组件与该应用程序适当地操作而要与该内插附件组件相关联的功能。例如,组件管理器102可从应用程序101接收约束116。约束116可表示为使一软件内插附件组件与应用程序101适当地工作而要与该软件内插附件组件相关联的内插附件组件功能。例如,约束116可指示一软件内插附件组件在与应用程序101操作时要利用指定的入口点协议、在私有应用程序域中运行等等。
在某些实施例中,内插附件组件在组件索引中注册一个或多个约束,该约束指定在应用程序可以与该内插附件组件协同操作之前该应用程序要满足的对应的一个或多个特性。由此,组件122可以注册指示应用程序101为与组件122协同操作而要满足的特性的一个或多个约束。组件管理器102可将关于内插附件组件的约束发送给应用程序。例如,组件管理器可将约束116(例如,关于组件122)发送给应用程序101。
内插附件组件约束可用于检查应用程序的行为,或请求应用程序更改其行为以便与内插附件组件协同操作。例如,应用程序101可以默认为在同一应用程序域中运行所有内插附件组件。然而,组件122可以约束应用程序101在一单独的应用程序域(例如,仅供组件122使用)中运行组件122。由此,在某些实施例中,鉴定过程可被视为应用程序和内插附件组件之间的协商。即,内插附件组件可能需要满足应用程序的约束,而应用程序可能需要满足内插附件组件的约束以便在应用程序和内插附件组件之间的适当的协同操作。对约束116描述的双向箭头表示了协商。
方法300包括将一个或多个鉴定约束与一个或多个所标识的特性进行比较的动作(动作303)。例如,组件管理器102可将约束116与特性141和151进行比较。方法300包括基于将一个或多个鉴定约束与一个或多个所标识的特性进行比较的结果来确定候选内插附件组件是否有资格用于该应用程序的动作(动作304)。例如,组件管理器102可基于将约束116与特性141和151进行比较的结果来确定组件122是否有资格用于应用程序101。
即,组件管理器102可确定由约束116指示的操作能力是可由组件122实现的操作能力(如由特性141和151所指示的)。例如,如果一约束指示一软件内插附件组件要在私有应用程序域中运行并且一软件内插附件组件的特性指示它能够在私有应用程序域中运行,则该软件内插附件组件满足该约束。另一方面,如果一约束指示一软件内插附件组件要实现一指定的入口点协议但是一软件内插附件组件的特性指示它不能实现该指定的入口点协议,则该软件内插附件组件不满足该约束。
方法300可以对多个(先前发现的)内插附件组件重复,以创建有资格用于应用程序的潜在内插附件组件的列表。由此,满足鉴定约束的多个内插附件可以有资格用于一应用程序。如上所述,内插附件组件可基于在注册内插附件时提供给内插附件管理器(例如,组件管理器102)的信息以及内插附件管理器未提供或保留的其它信息来鉴定。方法300可用于对可能被应用程序使用的(先前发现的)内插附件组件进行细粒度的选择。
应当理解,对约束、特性、比较和满足约束的描述仅是示例。本领域的技术人员在仔细阅读了本说明书之后可以清楚,本发明的各实施例可利用其它约束、特性和比较,并且除了所明确描述的之外,约束可以用其它方式来满足。
在某些实施例中,方法200和方法300被组合使用以提供指示内插附件组件和应用程序有资格彼此协同操作来实现指定功能的内插附件组件列表。可使用一粗粒度发现过程通过将一个或多个所接收到的特性与组件索引条目中的特性进行比较来发现可用组件内插附件的子集。当对一组件索引排序时,该发现过程可有效地提供满足一个或多个所接收到的特性的可用内插附件组件的子集。从该所发现的内插附件组件的子集中,一细粒度鉴定过程可鉴定一个或多个内插附件组件和应用程序的协同操作性。鉴定可基于组件索引中的信息和/或与内插附件组件或应用程序相关联的其它信息。鉴定可以是双向的(协商)。即,内插附件组件可能需要满足应用程序约束,而应用程序可能需要满足内插附件组件约束。
合格的软件内插附件组件可被包括在一列表,例如合格组件列表117中,并被发送给应用程序101。在某些实施例中,应用程序101用从合格组件列表中选择一适当的软件内插附件组件的选择逻辑来预配置。在其它实施例中,应用程序101可呈现允许用户从合格组件列表中选择一适当软件内插附件组件的用户界面。
应用程序101可将组件选择,例如组件选择118返回给组件管理器102。作为响应,组件管理器102可激活所选的软件内插附件组件。例如,组件管理器102可向文件系统发送激活119以激活组件122。激活119可包括用于在存储103中定位组件122的标识符,诸如目录路径和名称。激活119可包括根据约束116来激活组件122的命令。例如,如果应用程序101请求了一共享应用程序域,则组件122可在与应用程序101共享的应用程序域中激活。激活119可以使得组件122被加载到存储器中,并根据约束116在应用程序101和组件122之间建立通信路径。
可根据满足的约束建立的一种类型的通信路径是流水线,例如流水线181。流水线可包括一个或多个节点应用程序编程接口(以下称为“API”)、一个或多个适配器以及至少一个流水线协议。这一流水线可包括各种数量和组合的API、适配器和流水线协议,并且不必包括全部的流水线元素。API指的是由应用、程序、函数以及可编程和可执行代码的其它集合体用来指示由诸如操作系统或运行时执行环境等对应的执行环境对过程的执行的一组例程。适配器指的是能够在通信上将一个API适配到另一个API、并且可以被串行链接或经由流水线协议链接的模块或对象。流水线协议指的是对象可通过其进行通信的规范或合约(API是其一个非排他示例)。
由此,流水线(例如,流水线181)可以是从主机API适配器经由流水线协议流入内插附件API适配器以将第一节点应用程序(例如,应用程序101)连接到第二节点应用程序(例如,组件122)的代码模块或对象的链。然而,应当理解,也可根据满足的约束建立其它类型的通信路径。由此,本领域的技术人员在仔细阅读了本说明书之后可以清楚,本发明的各实施例可以利用除了流水线之外的其它类型的通信路径。
在替换实施例中,应用程序101可在请求111中包括约束116以及特性112。在这些替换实施例中,组件管理器102可向组件索引104查询在特性112中指示的类型的并且满足约束116的软件内插附件组件。满足查询的软件内插附件组件可在合格组件列表117中返回给应用程序101。
图4示出了用于基于所请求的内插附件组件功能来加载用于应用程序的内插附件组件的方法400的流程图。方法400将参考计算机系统体系结构100中的组件和数据来描述。
方法400包括发现计算机系统处是应用程序请求的内插附件组件的指定类型的一个或多个内插附件组件的动作(动作401)。例如,通过与组件条目中的特性进行比较,组件模块102可发现为由特性112所指示的指定类型(例如,字典、内容处理程序等)的一个或多个组件121、122和123。
方法400包括基于满足一个或多个鉴定约束的至少一个所发现的内插附件组件来鉴定至少一个所发现的内插附件组件的动作(动作402)。一个或多个鉴定约束代表为使一内插附件组件以所需方式与应用程序协同操作而要与该内插附件组件相关联的功能。例如,组件管理器102可鉴定满足约束116的组件121、122和123中的任一个。满足约束116(例如,通过与组件条目中的特性的比较)表示一组件包括了以所需方式与应用程序101协同操作的功能(例如,具有适当的许可、具有兼容的入口点协议、可在适当的应用程序域中运行等等)。
方法400包括根据用于应用程序的一个或多个鉴定约束来激活合格内插附件组件的动作(动作403)。例如,组件管理器102可根据约束116来激活用于应用程序101的组件122。
本发明的各实施例促进了动态且灵活的软件内插附件组件选择,而无需应用程序包括用于作出这些选择的逻辑。软件内插附件组件即使在该软件内插附件组件被储存在各个不同位置时也可按照类型来发现。软件内插附件组件可在被加载以用于应用程序之前被鉴定其适当的功能。鉴定软件内插附件组件降低了加载不适当地配置的或恶意软件内插附件组件的可能性。因此,本发明的各实施例促进了对软件内插附件组件的高效且安全的使用。
本发明可以用其它具体形式来实施而不脱离其精神或本质特征。所描述的实施例在所有方面都被认为是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非以上描述来指示。落入权利要求书的等效技术方案的意义和范围之内的所有改变都被包含在其范围之内。

Claims (20)

1.一种在包括内插附件组件管理器的计算机系统处使用的计算机程序产品,所述计算机程序产品用于实现一种用于确定对应用程序可用的内插附件组件是否有资格用于该应用程序的方法,所述计算机程序产品包括其上储存有计算机可执行指令的一个或多个计算机可读存储介质,所述指令在由处理器执行时使得所述计算机系统执行以下动作:
访问关于对一应用程序可用的候选内插附件组件的一个或多个所标识的特性,所述一个或多个所标识的特性指示与所述候选内插附件组件相关联的功能,所述内插附件组件在一内插附件组件索引的内插附件组件条目中表示,所述内插附件组件索引还包括用于所述计算机系统的其它内插附件组件的内插附件组件条目;
从所述应用程序接收对满足一个或多个鉴定约束的内插附件组件的请求,每一鉴定约束表示为使一内插附件组件与所述应用程序适当地操作而要与该内插附件组件相关联的功能;
将所述一个或多个鉴定约束与所述一个或多个所标识的特性相关联;以及
基于将所述一个或多个鉴定约束与所述一个或多个所标识的特性进行比较的结果来确定所述候选内插附件组件是否有资格用于所述应用程序的动作。
2.如权利要求1所述的计算机程序产品,其特征在于,还包括在被执行时使得所述计算机系统在将所述一个或多个鉴定约束与所述一个或多个所标识的特性进行比较之前执行以下动作的计算机可执行指令:
在访问关于所述候选内插附件组件的一个或多个所标识的特性之前从一应用程序接收对可用内插附件组件的请求,所述请求包括指示所述应用程序正在请求的内插附件组件的指定类型的可选择内插附件组件特性;
将所述可选择内插附件组件特性与关于所述候选内插附件组件的内插附件组件条目的内容进行比较;
基于所述比较的结果发现所述候选内插附件组件是所述应用程序所请求的指定类型;以及
在访问关于所述候选内插附件组件的一个或多个所标识的特性之前向所述应用程序指示所述候选内插附件组件是指定类型的内插附件组件。
3.如权利要求1所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统从应用程序接收对满足一个或多个鉴定约束的内插附件组件的请求的计算机可执行指令包括当被执行时使得所述计算机系统接收对指定类型的内插附件组件的请求的计算机可执行指令。
4.如权利要求1所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统确定所述候选内插附件组件是否有资格用于所述应用程序的计算机可执行指令包括当被执行时使得所述计算机系统确定所述候选内插附件组件有资格用于所述应用程序的计算机可执行指令。
5.如权利要求4所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统确定所述候选内插附件组件有资格用于所述应用程序的计算机可执行指令包括当被执行时使得所述计算机系统基于所述比较的结果形成一满足所述鉴定约束的候选内插附件组件列表的计算机可执行指令。
6.如权利要求1所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统确定所述候选内插附件组件是否有资格用于所述应用程序的计算机可执行指令包括当被执行时使得所述计算机系统确定所述候选内插附件组件具有与所述应用程序兼容的入口点协议的计算机可执行指令。
7.如权利要求1所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统确定所述候选内插附件组件是否有资格用于所述应用程序的计算机可执行指令包括当被执行时使得所述计算机系统确定所述候选内插附件组件具有适当的许可来与所述应用程序互操作的计算机可执行指令。
8.如权利要求1所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统确定所述候选内插附件组件是否有资格用于所述应用程序的计算机可执行指令包括当被执行时使得所述计算机系统确定所述候选内插附件组件可在所述应用程序所请求的应用程序域中运行的计算机可执行指令。
9.如权利要求1所述的计算机程序产品,其特征在于,还包括当被执行时使得所述计算机系统执行以下动作的计算机可执行指令:
从所述应用程序接收指示所述候选内插附件组件要被激活以用于所述应用程序的组件选择;以及
根据所述鉴定约束激活所述候选内插附件以用于所述应用程序。
10.如权利要求1所述的计算机程序产品,其特征在于,还包括当被执行时使得所述计算机系统执行以下动作的计算机可执行指令:
从所述候选内插附件接收所述应用程序满足一个或多个其它鉴定约束的请求,每一其它鉴定约束表示为使所述应用程序与所述内插附件组件适当地操作而要与所述应用程序相关联的功能;
将所述一个或多个其它鉴定约束与所述应用程序的特性进行比较;以及
基于将所述一个或多个其它鉴定约束与所述应用程序的特性进行比较的结果来确定所述应用程序是否有资格用于所述候选内插附件组件。
11.如权利要求1所述的计算机产品,其特征在于,还包括当被执行时使得所述计算机系统执行以下动作的计算机可执行指令:
在所述计算机系统处安装所述候选内插附件组件期间访问所述候选内插附件组件;
分析所述候选内插附件以确定包括在所述候选内插附件组件中的功能;
创建用于所述候选内插附件组件的内插附件组件条目,所述内插附件组件条目包括指示所述候选内插附件组件的功能的一个或多个所标识的特性;以及
将所述内插附件组件条目储存在所述内插附件组件索引中。
12.如权利要求1所述的计算机产品,其特征在于,还包括当被执行时使得所述计算机系统执行以下动作的计算机可执行指令:
基于用于内插附件目录的内插附件组件特性的子集对所述组件索引的内插附件组件条目排序。
13.如权利要求1所述的计算机程序产品,其特征在于,所述内插附件组件索引被储存在一数据存储库中,所述数据存储库选自系统注册表、共享SQL服务器、XML文件、现用目录服务器、因特网和文件系统目录。
14.一种在包括内插附件组件管理器的计算机系统处的用于确定对一应用程序可用的内插附件组件是否有资格用于该应用程序的方法,所述方法包括:
访问关于对一应用程序可用的候选内插附件组件的一个或多个所标识的特性的动作,所述一个或多个所标识的特性指示所述候选内插附件组件的功能,所述一个或多个所标识的特性是从一内插附件组件索引中的内插附件组件条目中访问的,所述内插附件组件索引还包括用于所述计算机系统的其它内插附件组件的内插附件组件条目;
从所述应用程序接收对满足一个或多个鉴定约束的内插附件组件的请求的动作,每一鉴定约束表示为使一内插附件组件与所述应用程序适当地操作而要与所述内插附件组件相关联的内插附件组件功能;
将所述一个或多个鉴定约束与所述一个或多个所标识的特性进行比较的动作;以及
基于将所述一个或多个鉴定约束与所述一个或多个所标识的特性进行比较的结果来确定所述候选内插附件组件是否有资格用于所述应用程序的动作。
15.一种在包括内插附件组件管理器和内插附件组件索引的计算机系统处使用的计算机程序产品,所述内插附件组件索引包括一个或多个内插附件组件条目,每一内插附件组件条目包括指示所述计算机系统处的内插附件组件的功能的一个或多个特性,所述计算机程序产品用于实现一种用于基于所请求的内插附件组件功能来加载用于一应用程序的内插附件组件的方法,所述计算机程序产品包括其上储存有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由处理器执行时使得所述计算机系统执行以下动作:
发现所述计算机系统处为应用程序所请求的指定的内插附件组件类型的一个或多个内插附件组件;
基于至少一个所发现的内插附件组件满足一个或多个鉴定约束来鉴定至少一个所发现的内插附件组件,所述一个或多个鉴定约束表示为使一内插附件组件以所需方式与所述应用程序协同操作而要与所述内插附件组件相关联的功能;以及
根据用于所述应用程序的一个或多个鉴定约束来激活合格的内插附件组件。
16.如权利要求15所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统发现所述计算机系统处为应用程序所请求的指定的内插附件组件类型的一个或多个内插附件组件的计算机可执行指令包括当被执行时使得所述计算机系统向所述内插附件组件索引查询具有指示指定的内插附件组件类型的静态特性的内插附件组件条目的计算机可执行指令。
17.如权利要求15所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统基于至少一个所发现的内插附件组件满足一个或多个鉴定约束来鉴定至少一个所发现的内插附件组件的计算机可执行指令包括当被执行时使得所述计算机系统基于至少一个所发现的内插附件组件具有与所述应用程序兼容的入口点协议来鉴定至少一个所发现的内插附件组件的计算机可执行指令。
18.如权利要求15所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统基于至少一个所发现的内插附件组件满足一个或多个鉴定约束来鉴定至少一个所发现的内插附件组件的计算机可执行指令包括当被执行时使得所述计算机系统基于至少一个所发现的内插附件组件具有与所述应用程序协同操作的适当许可来鉴定至少一个所发现的内插附件组件的计算机可执行指令。
19.如权利要求15所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统基于至少一个所发现的内插附件组件满足一个或多个鉴定约束来鉴定至少一个所发现的内插附件组件的计算机可执行指令包括当被执行时使得所述计算机系统基于至少一个所发现的内插附件组件能够在所述应用程序所请求的应用程序域中运行来鉴定至少一个所发现的内插附件组件的计算机可执行指令。
20.如权利要求15所述的计算机程序产品,其特征在于,当被执行时使得所述计算机系统根据用于所述应用程序的一个或多个鉴定约束来激活合格的内插附件组件的计算机可执行指令包括当被执行时使得所述计算机系统在所述应用程序和所述合格内插附件组件构造一流水线的计算机可执行指令。
CN2006800381986A 2005-10-12 2006-09-12 用于软件内插附件组件的发现、鉴定和激活的方法和系统 Expired - Fee Related CN101288047B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/248,051 2005-10-12
US11/248,051 US7698685B2 (en) 2005-10-12 2005-10-12 Discovery, qualification, and activation of software add-in components
PCT/US2006/035389 WO2007046977A1 (en) 2005-10-12 2006-09-12 Discovery, qualification, and activation of software add-in components

Publications (2)

Publication Number Publication Date
CN101288047A true CN101288047A (zh) 2008-10-15
CN101288047B CN101288047B (zh) 2012-05-23

Family

ID=37912016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800381986A Expired - Fee Related CN101288047B (zh) 2005-10-12 2006-09-12 用于软件内插附件组件的发现、鉴定和激活的方法和系统

Country Status (10)

Country Link
US (1) US7698685B2 (zh)
EP (1) EP1934723B1 (zh)
JP (1) JP5026430B2 (zh)
KR (1) KR20080047447A (zh)
CN (1) CN101288047B (zh)
AU (1) AU2006302930A1 (zh)
BR (1) BRPI0617187A2 (zh)
CA (1) CA2622121A1 (zh)
RU (1) RU2008114066A (zh)
WO (1) WO2007046977A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019717A (zh) * 2011-12-15 2013-04-03 微软公司 通过隐式应用模型来标识应用资源
CN104133666A (zh) * 2013-11-29 2014-11-05 腾讯科技(成都)有限公司 确定人工智能行为的方法、装置及人工智能服务器
CN104598218A (zh) * 2013-10-31 2015-05-06 国际商业机器公司 用于合并和重用门户信息的方法和系统
CN113688141A (zh) * 2021-10-25 2021-11-23 武汉万云网络科技有限公司 一种应用功能设计方法及软件开发平台

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7856505B2 (en) * 2007-06-29 2010-12-21 Microsoft Corporation Instantiating a communication pipeline between software
US20090183155A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Isolation of Content by Processes in an Application
US8762977B2 (en) * 2008-04-10 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Mobile device software management method and apparatus
US20100313252A1 (en) * 2009-06-08 2010-12-09 Erie Trouw System, method and apparatus for creating and using a virtual layer within a web browsing environment
US8464248B2 (en) * 2009-06-15 2013-06-11 Microsoft Corporation Contextual discovery of value-added components
US8365143B2 (en) * 2010-06-15 2013-01-29 Microsoft Corporation Dynamic languages for static hosts
US8898658B2 (en) * 2010-06-29 2014-11-25 Cisco Technology, Inc. Dynamic web resource provisioning
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
GB2487357A (en) * 2011-01-12 2012-07-25 Promethean Ltd Embedding application functionality within a user interface of a second application for ease of user operation
US9063776B2 (en) 2011-05-27 2015-06-23 Microsoft Technology Licensing, Llc Application activation framework
US9697016B2 (en) 2011-11-15 2017-07-04 Microsoft Technology Licensing, Llc Search augmented menu and configuration for computer applications
US8997080B2 (en) * 2013-02-11 2015-03-31 Citrix Systems, Inc. System updates with personal virtual disks
CN103246533B (zh) * 2013-04-11 2017-03-29 小米科技有限责任公司 一种在通讯录中添加插件的方法、装置和设备
WO2015013936A1 (zh) * 2013-07-31 2015-02-05 华为技术有限公司 关联插件管理方法、设备及系统
US20150113498A1 (en) * 2013-10-21 2015-04-23 Microsoft Corporation Modeling customizations to a computer system without modifying base elements
US20160232130A1 (en) * 2015-02-05 2016-08-11 Syntel, Inc. Mobile web application framework
US10721290B2 (en) 2015-06-05 2020-07-21 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment using executable containers and virtual machines
US10649679B2 (en) * 2016-11-23 2020-05-12 Nutanix, Inc. Containerized application extensions in distributed storage systems
US10761911B2 (en) 2017-02-13 2020-09-01 Nutanix, Inc. Asynchronous application interactions in distributed systems
JP7157335B2 (ja) * 2019-02-27 2022-10-20 日本電信電話株式会社 Apiアダプタ試験システム、apiアダプタ試験支援装置、apiアダプタ試験支援方法、および、apiアダプタ試験支援プログラム
US11928040B2 (en) * 2020-02-14 2024-03-12 Nippon Telegraph And Telephone Corporation API adapter test system, API adapter test assistance device, API adapter test assistance method, and API adapter test assistance program

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815718A (en) * 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory
US6347398B1 (en) * 1996-12-12 2002-02-12 Microsoft Corporation Automatic software downloading from a computer network
US6006279A (en) * 1997-01-21 1999-12-21 Canon Information Systems, Inc. Plug-in module host framework
US6055562A (en) * 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6085030A (en) * 1997-05-02 2000-07-04 Novell, Inc. Network component server
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6795853B1 (en) * 1998-06-30 2004-09-21 International Business Machines Corporation Integration of additional computer components into a computer operation through attribute enabled interactive selections presented in composite lists available to the user in a variety of display screens
US6523166B1 (en) 1998-09-21 2003-02-18 Microsoft Corporation Method and system for on-demand installation of software implementations
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
US6523168B1 (en) * 1999-07-01 2003-02-18 International Business Machines Corporation Reduction of object creation during string concatenation and like operations that utilize temporary data storage
US6901440B1 (en) * 1999-07-02 2005-05-31 Agilent Technologies, Inc. System and method for universal service activation
US20020104067A1 (en) 1999-12-29 2002-08-01 Green David W. Method and system and article of manufacture for an N-tier software component architecture application
US6871345B1 (en) * 2000-04-04 2005-03-22 Motive, Inc. Self managing software agents with introspection
US6834303B1 (en) * 2000-11-13 2004-12-21 Hewlett-Packard Development Company, L.P. Method and apparatus auto-discovering components of distributed services
US20020078262A1 (en) 2000-12-14 2002-06-20 Curl Corporation System and methods for providing compatibility across multiple versions of a software system
US6996832B2 (en) * 2001-05-30 2006-02-07 Bea Systems, Inc. System and method for software component plug-in framework
JP2003015880A (ja) * 2001-06-29 2003-01-17 Toshiba Corp 携帯情報端末およびアドインプログラム起動方法
US6778990B2 (en) * 2001-07-27 2004-08-17 Hewlett-Packard Development Company, L.P. Dynamic component activation method using a relational database as the repository for registration information
US7254814B1 (en) * 2001-09-28 2007-08-07 Emc Corporation Methods and apparatus for managing plug-in services
US7080092B2 (en) * 2001-10-18 2006-07-18 Bea Systems, Inc. Application view component for system integration
US20030172127A1 (en) * 2002-02-06 2003-09-11 Northrup Charles J. Execution of process by references to directory service
US7395540B2 (en) * 2003-03-12 2008-07-01 Microsoft Corporation Automated business software application integration
US7493614B2 (en) * 2003-03-31 2009-02-17 Microsoft Corporation System architecture and related methods for dynamically adding software components to extend functionality of system processes
US7546470B2 (en) * 2003-08-13 2009-06-09 International Business Machines Corporation Selective computer component activation apparatus method and system
US20060037000A1 (en) * 2003-10-10 2006-02-16 Speeter Thomas H Configuration management data model using blueprints

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103019717A (zh) * 2011-12-15 2013-04-03 微软公司 通过隐式应用模型来标识应用资源
CN103019717B (zh) * 2011-12-15 2016-08-03 微软技术许可有限责任公司 通过隐式应用模型来标识应用资源
CN104598218A (zh) * 2013-10-31 2015-05-06 国际商业机器公司 用于合并和重用门户信息的方法和系统
CN104598218B (zh) * 2013-10-31 2017-11-21 国际商业机器公司 用于合并和重用门户信息的方法和系统
CN104133666A (zh) * 2013-11-29 2014-11-05 腾讯科技(成都)有限公司 确定人工智能行为的方法、装置及人工智能服务器
US9898700B2 (en) 2013-11-29 2018-02-20 Tencent Technology (Shenzhen) Company Limited Method, apparatus, and artificial intelligence server for determining artificial intelligence behavior
CN113688141A (zh) * 2021-10-25 2021-11-23 武汉万云网络科技有限公司 一种应用功能设计方法及软件开发平台

Also Published As

Publication number Publication date
KR20080047447A (ko) 2008-05-28
EP1934723A4 (en) 2009-01-28
CA2622121A1 (en) 2007-04-26
JP5026430B2 (ja) 2012-09-12
JP2009512063A (ja) 2009-03-19
EP1934723A1 (en) 2008-06-25
EP1934723B1 (en) 2017-11-01
BRPI0617187A2 (pt) 2011-07-19
RU2008114066A (ru) 2009-10-20
CN101288047B (zh) 2012-05-23
US7698685B2 (en) 2010-04-13
AU2006302930A1 (en) 2007-04-26
US20070083512A1 (en) 2007-04-12
WO2007046977A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
CN101288047B (zh) 用于软件内插附件组件的发现、鉴定和激活的方法和系统
US7987459B2 (en) Application programming interface for identifying, downloading and installing applicable software updates
CN101297286B (zh) 添加设备驱动程序的方法
US6144960A (en) Software registering/managing system and method thereof
US20170085655A1 (en) Extending functionality of web-based applications
CN1964356B (zh) 数据处理方法和系统
US20070113066A1 (en) Host build and rebuild system and method
CN101430643B (zh) 提供项目开发环境的方法和装置,以及项目开发系统
US11086618B2 (en) Populating a software catalogue with related product information
US20090063175A1 (en) Methods and systems for providing multiple support options
CN101248416A (zh) 组件架构
EP1899910A2 (en) Using messages to extend crm functionality
CN102007756A (zh) 用于数据处理环境中的动态供应的方法和装置
CN102057377A (zh) 虚拟化查询中的对象
US20040093580A1 (en) System and methodology for mobile e-services
CN102460381A (zh) 软件扩展分析
JP3711162B2 (ja) ソフトウェア代金決裁システムおよび方法
US8103863B2 (en) Workflow management to automatically load a blank hardware system with an operating system, products, and service
CN112583891B (zh) 接口文档获取方法、装置和服务器
Libes Managing Tcl's Namespaces Collaboratively
Liu et al. The Software Station: A System for Version Controlled Development and Web Based Deployment of Software for a Mobile Environment
JP2014026368A (ja) 情報処理装置、その制御方法、及びプログラム
KR20020090017A (ko) 네트워크 시스템의 자원관리 장치 및 방법
Chang et al. Efficient Computational Grid Middleware for Mobile Device
Sipos Synchronization with SyncML

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150430

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150430

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523

Termination date: 20190912

CF01 Termination of patent right due to non-payment of annual fee