用于冲突识别和消解的系统与方法

文档序号:6567048阅读:391来源:国知局
专利名称:用于冲突识别和消解的系统与方法
技术领域
本发明涉及管理计算机程序执行的系统和方法。特别,本发明涉 及用来管理程序之间冲突的系统和方法。
背景技术
计算机系统包括多个程序或软件,用于执行用户所期望的复杂功
能。这些程序符合一种层次结构,通常包括基本输入输出系统(BIOS)、 操作系统(例如WindowsTM)以及用于执行一个或多个特定功能的多 个应用程序。这些程序的每个都需要资源,并且管理对这些资源的冲 突性请求是现代操作系统的主要功能。但是,在某些情况下,冲突会 在各程序之间发展,使得一个或多个软件应用程序不能如期望的那样 运行,因为驻留在相同PC中的另外应用程序(可多个)会干扰所预期 的应用程序。
为了简明起见,用户想要运行的应用程序或客户程序在这里被称 作友好应用程序(FA),并且干扰FA性能的应用程序或客户程序在 这里被称作冲突应用程序(CA)。程序之间相互干扰有各种原因。这 类干扰可能是由于下述原因造成的
(a) 另外的软件应用程序和/或驱动程序与该FA竞争该PC上的硬
件资源或端口;或
(b) 不期望的应用程序,如病毒或其他恶意代码突破PC提供的保 护侵入该PC。
第一类的干扰尤其是当后来安装的软件所包括的功能与该FA的 功能相同的时候会发生。可以理解,相似功能可能只是该FA和后来安 装的程序的相应功能的小子集。该CA可能但也不一定结合有新安装的硬件。计算机病毒或类似的恶意代码也可按类似的方式运行。
重要的是要注意,在开发和配置了FA之后,FA可能并不知晓新 的CA与之相伴。这样,这种CA的存在就成了最终用户的一件主要烦 心的事情,还不必说FA提供商的服务中断或支持负担。
因此, 一直需求有这样的系统和方法,可以检测将干扰FA期望 操作的CA。而且,还需要这样的系统或方法,可以检测和禁止突破了 现有病毒检测和防护软件系统的恶意程序。


图1是实施本发明的系统的方框图2是实施本发明的方法的流程图3是实施本发明的替换方法的流程图4是进一步说明根据本发明的方法的选择步骤的流程图。
具体实施例方式
尽管本发明的实施例可采用许多不同的形式,但在附图中示出并 在此详细说明本发明的特定实施例,应该理解,这里公开的内容应被 视为本发明原理的示例,以及本发明的最佳实施方式,而不是要把本 发明限制在所示出的特定实施例。
根据本发明的一个方面,提供一种机制,在最终用户的机器上更 新CA的列表。相关的方面提供能力来向FA "告知"有关每个新安装 CA。另外的方面提供系统和方法来解决在FA和CA之间可能发生的 冲突。
另外,在本发明的一个实施例中,提供系统和方法,用于通过发 现和消解可识别的CA来防止这种服务和产品被破坏的发生。相应软件 可集成到选定的产品。现在参见图1,系统IO包括具有至少一个客户程序软件应用程序 14的计算机12,客户程序软件应用程序例如是可执行的文件或驱动程
序,在下文中称作友好应用程序(FA)。在一种安排中,FA其中嵌入 了依据本发明实施例的冲突检测程序16。作为替换,如下文详细讨论 的,冲突检测程序16可以是与FA14分离的独立程序。
在本发明的一些实施例中,程序16通过图形用户界面向最终用户 EU传送冲突解决建议,如后面将讨论的,最终用户EU可进行最后解 决方案的决策。
本发明针对系统10的用户在引入或添加新的客户程序或软件应 用程序时的情况,在这里,新的客户程序或软件应用程序被称作冲突 应用程序(CA) 18。 CA 18和FA 14都竞争访问作为系统10的一部分 的计算机的资源。尽管没有特别示出,至少在某些实施例中,其他CA 驻留在计算机12中,如同多个FA 14-1、 14-2、……、14-n可驻留在 用户计算机。另外,计算机12可耦合至计算机20,计算机20可包括 其他需要访问计算机12的资源的程序、驱动程序、例程或应用程序 22-1、……、22-n。因此,可能有其他的CA驻留于作为系统10 —部 分的计算机20。
计算机12和20还可耦合至服务器30。服务器30可包括依据本 发明的冲突检测客户程序32,用于提供冲突检测和消解服务以及冲突 定义的最新更新。在没有冲突检测客户程序和程序驻留于计算机12的 实施例中,计算机12从服务器30上可用的资源接收其冲突检测服务。 另外,在需要时,服务器30可提供对驻留于计算机12的冲突检测程 序16的更新,或对驻留于计算机或该服务器30与之交互的其他计算 机上的其他独立客户程序的更新。
在客户程序32向驻留于系统10中的其他程序或其他处理器提供冲突管理服务的实施例中,服务器30可结合图形用户界面,通过该界
面,管理用户或管理员SU可与客户程序32交互。管理用户SU可根 据来自管理器32的建议或其他信息来指示在一个或多个处理器上的一 个或多个冲突程序或病毒型的程序关闭。
在运行期间,在某些点,FA可能变成相对于其他FA的CA。这 既可以根据用户或系统提供商己知的数据按手动的方式发生,也可以 作为下文所述的各种检测技术的结果而自动发生。作为一个例子,当 某个以前的FA开始使用调用本发明的冲突管理程序(如程序16或32) 的应用程序所需要的数据和/或资源,检测技术可检测出该以前的友好 程序是冲突程序。作为响应,驻留于计算机12的检测程序16把该FA 看作相对于请求系统10资源的新FA的CA。系统10可指示该检测程 序16把FA14看作CA18,并相应分配系统资源。
如上所述,安装在计算机系统中的各种软件应用程序或客户程序 竞争该系统的资源。相应地,在某些情况下,合法的应用程序或客户 程序,如被捆绑作为硬件包一部分的那些程序可被看作是CA。根据 CA的复杂程度,本发明的系统可提供多种方法来处理CA。
在本发明的一个实施例中,可直接终止那些作为CA的应用程序 或客户程序。在另外的实施例中,把CA置于"挂起"模式。
在又另外的实施例中,如果应用程序配备有一组API,使得其他 应用程序可与之交互,则本发明的实施例可把CA切换到睡眠状态,其 中该CA不具有对硬件资源的有效控制。当冲突情况不再存在,系统把 该CA恢复至其原来的状态。当FA终止/退出或当用户期望这样时,恢 复该CA。
在本发明的一个实施例中,检测程序16被配置成驻留于计算机 12的独立或单独的客户程序或程序。在替换的实施例中,检测程序16是后来被添加到计算机12的程序或设备的集成部分以及FA的部分。
在下面的说明中,参照对CA18的检测。根据本发明的教导,有 各种方法用来确定冲突的类型。下述方法的任意数量和组合可用于识
别冲突应用程序
1. 通过可执行进程名来检测明确指出可执行进程名(如
start.exe)并且以后可更新。通过列举系统中运行的进程,冲突管理器 可识别匹配的进程。
2. 通过部分可执行进程名来检测通过使用部分可执行进程名 (如举start.exe)来进行检测。
3. 通过进程位置来检测通过使用系统中可执行进程的位置(如 C:\Program Files\Cisco\Aironet)来检顶lj。
4. 通过部分进程位置来检测通过使用系统中可执行进程的部分 位置(如"Cisc(AAironet,,)来进行检测。
5. 通过进程标题来检测通过列举系统中的所有窗口句柄并将窗 口名对照己知的CA窗口名作比较来进行检测。
6. 通过部分进程标题来检测还可通过使用标题窗口的部分串匹 配来进行检测。这种方式很有用,因大多数CA在其窗口标题中具有可 变内容。
7. 通过服务名来检测列举和识别服务名并且对照至少某些实例
的已知CA服务名,通过手工测试和调用程序所使用的资源的知识来识 别冲突服务。
8. 通过注册表位置来检测直接搜索和识别己知冲突注册表值。9. 通过自动启动位置的检测直接搜索和识别在各种操作系统自 启动位置的几个位置中的存储的项。
10. 通过进程数据激活的检测在运行时,该系统识别各种可执 行服务和与其使用特定系统硬件或软件资源相冲突的其他程序。作为 一个例子,这样的检测可通过观察诸如COM端口的特定资源来进行检 测。当该端口被激活,观察该端口的进程可同时监视各种项,包括每 进程的CPU使用率和每进程的打开句柄。另外,该监视进程还可要求
操作系统识别已经请求访问特定硬件端口 (如COM端口 )的特定进程。
使用这些信息,可确定在该进程中运行的应用程序,并因此可收集足 够的信息,按照用户可充分理解的方式把它标识给最终用户,这样在 需要时,用户可决定终止该应用程序。
当获得有关硬件端口使用情况的直接信息时,可使用两种检测方
法。 一种检测方法是通过os的资源分配。向下层的os查询当前访问
端口的进程。作为替换,可通过建立句柄分配来进行检测。当前使用 所关注端口的访问句柄是可获得的。在这一点,该程序可对每个进程 请求所有拥有的句柄的列表。通过匹配这两个值来识别该拥有的进程。
对于不同于硬件端口的资源和进程,OS可确定什么程序或进程请 求访问该项。在这种情况下,可根据与这些资源的激活相关联的处理 器使用的变化以及其他统计方法来进行决策。无论所使用的方法如何, 检测程序识别那些引起问题的资源并通过诱导目标资源被动地传送数 据使该资源经受检验。在硬件资源的情况下,这包括通过标准的OS访 问机制发往设备或从设备发出的数据的有效传输。在软件资源的情况 下,这通常涉及直接试图激活该资源。在试图进行这种访问的同时, 本发明的冲突管理器观察每个进程的活动性。通过识别那些在使用访 问/激活机制时具有活动性剧变的进程,可提供建议来确定可能的冲突 应用程序。在这一点,冲突管理器可自动关闭该冲突或提示该最终用户EU确认或覆盖所选择的模式。由于对至少某些上述的技术可通过统 计方法来执行识别,可配置本发明的检测程序按特定的置信度向最终 用户EU提供建议,而不是作为绝对的实事。如果做出了建议,通常由 最终用户EU来做最后的决策。
11.通过确定性进程选择来检测诸如程序16或32的冲突管理 器,可对所有进程做系统化搜索, 一次一个地关闭每个CA,同时试图 访问所想要的资源,直到没有互操作性问题发生。 一旦已经隔离CA, 可对其做标记,从而按上面1 9所述选项来自动进行关闭。
如上所述,所有或任何数量的上述检测方法可结合到检测程序中。 因此,当检测程序使用各种检测判据来搜索CA时,很有可能,被识别 成CA的程序会通过不止一种检测判据识别成CA,因其匹配多个检测 判据。这样,诸如16、 32的检测程序在试图关闭或以其他方式影响每 个CA的功能时,优选进行检査,弄清楚它还没有被本发明另外的检测 进程处理。
在本发明的至少一些实施例中,有关冲突和各种CA的信息可按 逻辑上相关的CA分组在一起和数据维护者易于理解分组的格式来存 储。
表示应用程序的信息可按各种数据格式来存储,例如通过使用 XML文件。信息可包括名称、进程EXE、技术、目标操作系统等,对 此没有限制。
可以按它们布置和分布的项把CA分组到这些段中。这些都是在 相同标题下分组,因此最终用户可容易地把多个项识别为与单个真实 世界的项相关联。
在一个实施例中,可编程本发明的冲突客户程序服务器(CCS)如服务器30,用于当客户程序请求更新时即把更新的数据转发至客户 程序。应该理解,CCS只是功能性的方便参考,并且不需要单独的服 务器。
而且,CCS仅是任何后端服务器如服务器30的例子,向冲突管理 功能块如程序16、 32提供数据。还应该理解,对于本发明许多方面的 成功运行,完全不需要这种服务器。
每当应用程序随时间过去而更新冲突列表,则可使用冲突客户程 序服务器。如果设计特定的实现方式来使用静态的冲突列表,则不需 要服务器。另外,当使用上述的检测技术IO和11,可使用服务器来共 享从一个最终用户PC/计算机连同所有其他被配置用于获得更新的PC/ 计算机学习的信息。这使得该系统可学习并共享与其他机器随时间学 习的信息。
在其他实施例中,CCS可通过对多个冲突项编码必要的信息来发 送信息,以更新具有冲突管理器的系统。每个冲突项由目标操作系统 来标记,由调用程序来使用以识别它们需要解决那些冲突组。例如, 某个应用程序可请求在当前机器或系统中解决组X的所有冲突。
现在参见图2,示出了一个实施例的操作,其中检测程序是FA的 一部分,在这里有时候也称作嵌入式检测程序,检测和消解CA和FA 之间资源冲突的进程随着FA的启动或执行在步骤200开始。
在步骤202,调用程序进行决策,确定何时以及是否检査冲突应 用程序。例如,当实现中包括冲突应用程序数据的数据库时这特别有 用,但不是在所有实现中都需要。如果不是,则该过程进至FA的正常 流,如步骤220所示。
可替换地,在评估冲突的时候,该过程进至步骤204,使用上述各种检测判据来检测冲突项或CA。该过程然后进至步骤206,在这里 识别需要解决的CA,例如使用上面讨论的方法1 10。
在一些实施例中,尽管不是所有的,可对消解CA的次序进行排 序。当已知所有的冲突应用程序时,例如通过对冲突应用程序的手工 逆向工程或通过与开发者交流,可实现这一点。
在步骤208,根据与冲突检测判据相关的过程来消解所识别冲突 的第一个。检测程序向操作系统的应用程序管理器发出信号并发送请 求来终止该冲突进程,由此应用程序管理器关闭该CA并释放系统资源 来允许FA继续运行。
与检测判据相关联的冲突消解技术一旦被应用,该过程进至步骤 210,确定该冲突是否被解决。如果没有,该过程循环回到步骤206, 试图通过另外的消解技术来消解该冲突。该过程经过如上所述的步骤 208和210。该过程继续循环,直到对该冲突应用了每个冲突消解技术。
当冲突被成功消解,该过程进至步骤212,确定是否必须对该冲 突应用程序存储重启动数据。在步骤212,存储与该CA相关联的重启 动数据,使得当FA不再需要该系统资源时可从该CA程序的当前状态 重新启动。
在步骤214,判定每个冲突是否已解决。如果所有的冲突都已消 解,则该过程继续至步骤220。否则,该过程返回到步骤206,使得选 择和处理下一个冲突程序。应该理解,步骤204可包括一个或多个CA, 并且对列表中的每个CA执行步骤206-214。这样,在步骤214,如果 该列表包括还没有被关闭的另外的CA,本发明的该过程将循环回到步 骤206。
应该理解,给定FA的正常流在该FA进程到达正常终点之前,可允许在该FA的正常流的中间状态重新启动特定CA。在这种情况下, 在220的FA的正常流之后,冲突检测程序向系统资源发出信令,在步 骤222确定被暂停或消解的CA是否需要重新启动。如果否,则在步骤 230该过程的正常流继续到正常程序终点。
当存在需要重新启动的CA,则在步骤224该检测程序选择待重新 启动的CA并进入重新启动循环。在步骤226,该系统从存储器中检索 重启动数据并在步骤228重新启动前面受影响的CA。应该理解,根据 施加到CA的特定冲突消解技术,重新启动的性质可能不同。
某些CA只能在FA的正常终点之后才能被重新启动。对这样的 CA,在步骤230的FA正常终点之后,在步骤232,检测程序判定是否 存在有被暂停的CA。如果否,则在240结束该FA。如果有应用程序 需要被重新启动,则在步骤234,冲突检测程序开始重新启动循环。在 步骤236,该系统从存储器检索重启动信息。在步骤238,重新启动冲 突项,并允许访问系统资源。该过程然后继续至该FA的终点。
现在参见图3,在替换实施例中,整个冲突程序管理器概念还可 以作为单独的服务或外部可执行程序来运行,例如由程序32、利用消 息传递或任何其他标准的通信手段的多个外部请求者来使用。这使得 单个的程序管理的库可在所有系统项之间共享。这样,在这种实施例 中,诸如程序32的冲突检测程序是独立的,或者是与该系统的操作系 统有关的外部应用程序。这种实现方式具有广泛的应用,例如,包括 病毒解决方案。
该过程随着FA或程序的启动或执行在步骤300开始。在步骤302, 判定检测程序是否已经检测到FA和CA之间的冲突,并且是否因此请 求关闭或挂起冲突程序或其他类型的程序。如果没有请求,则该程序 在320按正常程序流继续,并且没有CA需要被关闭或挂起。如果检测程序请求关闭该CA,则该正常程序可继续,同时启动关 闭过程。作为替换,如果检测程序请求该CA的关闭,则该正常程序可 暂停,同时完成关闭过程。
在步骤304,检测程序向该系统发出信令,确定该冲突是否应该 被关闭或挂起。如果该CA不能被关闭或挂起,则该过程返回到步骤 302,等待关闭或挂起冲突应用或程序的下一个请求。
另一方面,如果确定冲突应用程序可被关闭或挂起,则在步骤306, 根据上述的示例性方法1~10来检测冲突程序。在步骤308,识别与CA 相关联的每个冲突。
在步骤310,冲突检测程序消解该冲突。根据可用的信息,可采 取各种步骤来消解该冲突。例如,可以把CA置于不再引起冲突的状态, 如进入休眠。在这些步骤不仅要求关闭的情况下,这些步骤是特定于 该CA的。
在步骤312,冲突检测程序确定该冲突是否被成功消解。如果该 冲突已被成功消解,则在步骤314把重启动数据存储到存储器,并且 在步骤316该过程返回,等待下一个冲突消解的请求。否则,该过程 返回到步骤308,试图消解下一个冲突。如果冲突未消解,可进行一个 或多个另外的尝试。
在一种示例性的实现中,可进行单个尝试来消解该冲突。在三次 尝试失败之后,可通过消息框向用户EU发送消息,告知该冲突不能被 消解。根据这种实现,可允许程序继续或结束,或让用户来选择。在 某些实现中,冲突管理器的调用者可决定在开始冲突消解过程之前是 否永远尝试或尝试N次,以及如果任何消解失败是否停止。
在340的程序终点之前和之后,诸如程序32的冲突检测程序在步骤322判定是否存在重新启动以前关闭的CA的请求。如果没有重新启 动的请求,则该过程继续至该程序的正常终点。如果该冲突检测程序
请求重新启动,则在步骤324冲突检测程序确定是否存在需要重新启 动的任何未处理的被挂起或暂停的客户程序。如果没有,则该过程返 回到步骤322,等待下一个重新启动CA的请求。
如果在步骤324,该系统确定存在需要重新启动的CA,则在步骤 326由系统自动或由于用户已经请求而启动重启循环。在步骤328,冲 突检测程序从存储器读取重启动数据或信息。在步骤330,冲突管理器 启动冲突项或CA的重新启动,并使用从存储器读取的重启动数据来重 新启动该CA。
在步骤332,该CA被重新启动,并且该过程返回到步骤322,等 待下一个重新启动请求。对特定的CA,在某些实现中,"重新启动" 可理解为"反向",因此,如果任何项通过使其休眠而被消解,可唤 醒它而不是重新启动它。
图4更详细示出了处理步骤306 "检测冲突项"的各方面。相关 于上面列举的识别方法,可以执行各种搜索,如搜索进程306a、搜索 菜单306b、搜索服务306c……。各种类型搜索的次序是可配置的。它 们可顺序运行或同时运行。响应已经找到的项进行"再次运行"决策 306-1,因在某些情况下,有必要在査找特定相关项集合之前首先识别 一个项。
还可使用检测程序或客户程序32来检测可能在系统中执行的病 毒或其他类似程序。当病毒扫描软件失效,病毒设法突破扫描软件的 防护,很少有病毒扫描程序真正能够修复。冲突检测程序可检测这种 违规并使得诸如用户SU的IT管理者通过上述的更新机制立刻向系统 发出指令以立刻在所有机器上"关闭"指定的应用程序或其他程序。在本发明的另外方面,要驻留在系统中的客户程序在启动时可注 册到服务器30,从而该系统可实时地识别任何新线程。按这种方式, 可实时检测出恶意程序,并因此可实时防止恶意程序的存在。
依据上述的内容,当恶意的或虚拟应用程序(VA)突破了病毒检 测程序,该VA很可能被执行,并且成为争用系统资源的程序或应用程
序。这样的争用会引起冲突,并且违反了FA资源需求。
当发生这样的违反,冲突检测程序32可向IT管理者如用户SU报 警,立刻发出指令来立即在所有机器上关闭指定的VA。在替换的实施 例中,冲突程序32可检测并被设置为自动关闭VA,并向IT管理者提 供通知,而不是把冲突的存在报警给IT管理者。
从上述可以看出,在不脱离本发明的精神和范围的情况下,各种 变化和改型是可以的。应该理解,无意对这里所示出的特定装置做出 限制,也不该做这样的推断。权利要求书覆盖所有落入其范围内地这 类改型。
权利要求
1.一种系统,包括与多个不同装置通信的设备,所述各装置执行不同的程序,所述设备通过迭代过程来识别和消解至少一个程序和另外程序之间的冲突。
2. 如权利要求l所述的系统,其中所述设备包括服务器,该服务 器对所述多个装置的各成员提供冲突管理服务。
3. 如权利要求2所述的系统,其中所述多个装置的至少某些成员与所述设备异地。
4. 如权利要求l所述的系统,其中所述设备维持冲突程序的列表。
5. 如权利要求1所述的系统,其中所述设备包括用户界面和电路, 所述电路经由所述界面来呈现与冲突相关的信息,用于用户评估。
6. 如权利要求l所述的系统,其中所述设备响应检测的冲突,挂 起或终止所述另外程序,使得所述至少一个程序可以执行。
7. 如权利要求6所述的系统,其中所述设备在不存在检测的冲突 的情况下重新启动被挂起的程序。
8. 如权利要求l所述的系统,其中所述迭代过程包括下述至少一 个列举执行进程,定位可执行进程,列举选择的标题,列举服务, 搜索或识别在所选择位置存储的项,评估资源使用或进行所选择进程 的搜索。
全文摘要
一种系统和方法,用于检测冲突应用程序,所述冲突应用程序可能干扰所选择程序的期望操作。在这些冲突对所选择程序的操作产生干扰之前,管理这些冲突。
文档编号G06F9/44GK101558377SQ200680011874
公开日2009年10月14日 申请日期2006年3月3日 优先权日2005年3月9日
发明者比尤·奈尔, 罗伯特·F·博克索尔, 苏密特·S·保罗 申请人:普克特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1