监控系统启动的方法、装置和计算机可读介质转让专利

申请号 : CN202211061978.X

文献号 : CN115292140B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李孝明罗建洪李开术刘琛张钰勃杨上山

申请人 : 摩尔线程智能科技(北京)有限责任公司

摘要 :

提供了监控系统启动的方法、装置和计算机可读介质。所述方法包括:获取系统启动数据;根据所获取的系统启动数据来监控系统启动;记录监控系统启动期间所产生的数据;以及如果系统启动发生中断,则提取所述数据对中断进行分析。

权利要求 :

1.一种监控系统启动的方法,包括:获取系统启动数据;

根据所获取的系统启动数据来监控系统启动;

记录监控系统启动期间所产生的数据;以及如果系统启动发生中断,则提取所述数据对中断进行分析,其中根据所获取的系统启动数据来监控系统启动还包括:根据所获取的系统启动数据来获得系统启动中所涉及模块的控制权,其中所获取的系统启动数据包括系统启动期间所产生的消息,并且获得模块的控制权包括通过对应的消息处理机制拦截所述消息以获得模块的控制权,并且其中所述方法还包括在获得模块的控制权之后执行以下操作中的任一项:关闭所述模块的初始化流程函数和模块转移函数;以及针对进入模块进行打点;以及

加入监控点和/或代理函数;以及

确定待控制模块的配置信息;以及

在对相应模块的监控结束之后,返回该模块控制权并针对退出模块进行打点。

2.根据权利要求1所述的监控系统启动的方法,还包括:将获取系统启动数据的操作和监控系统启动的操作封装到不同模块中;以及根据所监控的系统属性对所述不同模块进行配置,以在系统启动时被优先加载。

3.根据权利要求1所述的监控系统启动的方法,所述系统启动数据包括启动配置信息,所述方法还包括:根据启动配置信息来确定是启用还是禁用对系统启动的监控。

4.根据权利要求1所述的监控系统启动的方法,其中根据所获取的系统启动数据来监控系统启动还包括:禁用不期望在系统启动期间要开启的保护模块,以防止发生不期望的中断。

5.根据权利要求1所述的监控系统启动的方法,其中记录监控系统启动期间所产生的数据还包括:将所述数据记录到显卡的静态随机存取存储器中;以及在对系统启动的监控完成并且系统成功启动之后,转移所记录的数据并清空显卡的静态随机存取存储器。

6.一种监控系统启动的装置,包括:数据获取模块,用于获取系统启动数据;

监控模块,用于根据所获取的系统启动数据来监控系统启动;

记录模块,用于记录监控系统启动期间所产生的数据;以及分析模块,用于如果系统启动发生中断,则提取所述数据对中断进行分析,其中监控模块还用于:根据所获取的系统启动数据来获得系统启动中所涉及模块的控制权,其中所获取的系统启动数据包括系统启动期间所产生的消息,并且获得模块的控制权包括通过对应的消息处理机制拦截所述消息以获得模块的控制权,并且其中所述监控模块还用于在获得模块的控制权之后执行以下操作中的任一项:关闭所述模块的初始化流程函数和模块转移函数;以及针对进入模块进行打点;以及

加入监控点和/或代理函数;以及

确定待控制模块的配置信息;以及

在对相应模块的监控结束之后,返回该模块控制权并针对退出模块进行打点。

7.根据权利要求6所述的监控系统启动的装置,其中:数据获取模块和监控模块被封装成分离的独立模块;并且根据所监控的系统属性对所述分离的独立模块进行配置,以在系统启动时被优先加载。

8.根据权利要求6所述的监控系统启动的装置,所述系统启动数据包括启动配置信息,其中数据获取模块还用于:根据启动配置信息来确定是启用还是禁用对系统启动的监控。

9.根据权利要求6所述的监控系统启动的装置,其中监控模块还用于:禁用不期望在系统启动期间要开启的保护模块,以防止发生不期望的中断。

10.根据权利要求6所述的监控系统启动的装置,其中记录模块还用于:将监控系统启动期间所产生的数据记录到显卡的静态随机存取存储器中;以及在对系统启动的监控完成并且系统成功启动之后,转移所记录的数据并清空显卡的静态随机存取存储器。

11.一种其上存储有指令的计算机可读介质,所述指令当被执行时使得计算设备执行根据权利要求1‑5中任一项所述的方法。

说明书 :

监控系统启动的方法、装置和计算机可读介质

技术领域

[0001] 本发明涉及监控系统启动的方法、装置和计算机可读介质。具体地,本发明涉及监控操作系统、尤其是例如Windows系统的闭源操作系统的启动,以快速定位启动中发生的故障或问题。

背景技术

[0002] 操作系统内核指的是提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。内核是操作系统最基本的部分,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件。这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
[0003] 统一可扩展固件接口(Unified Extensible Firmware Interface,缩写UEFI)用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。UEFI负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。
[0004] 使用GUID分区表的磁盘称为GPT磁盘,它是源自EFI标准的磁盘分区表结构的标准。与普遍使用的主引导记录(MBR)分区方案相比,GPT提供了更加灵活的磁盘分区机制。目前暂不存在可实现UEFI GPT(GUID分区表)分区的开机流程监控方案。
[0005] 例如Windows操作系统这样的闭源系统的开发及后期维护总是非常复杂且困难的。闭源系统给定位其中出现的问题及解决问题带来了很大的麻烦,因此需要一种一劳永逸的方式来解决以上缺陷。

发明内容

[0006] 根据本发明的一个方面,提供了一种监控系统启动的方法,包括:获取系统启动数据;根据所获取的系统启动数据来监控系统启动;记录监控系统启动期间所产生的数据;以及如果系统启动发生中断,则提取所述数据对中断进行分析。
[0007] 根据本发明的另一个方面,提供了一种监控系统启动的装置,包括:数据获取模块,用于获取系统启动数据;监控模块,用于根据所获取的系统启动数据来监控系统启动;记录模块,用于记录监控系统启动期间所产生的数据;以及分析模块,用于如果系统启动发生中断,则提取所述数据对中断进行分析。
[0008] 根据本发明的另一个方面,提供了一种其上存储有指令的计算机可读介质,所述指令当被执行时使得计算设备执行根据本发明所描述的方法。
[0009] 通过本发明,可以对例如Windows操作系统的闭源系统的开机启动过程实现完整监控,在开机启动过程中出现任何问题时能够快速地定位和确定开机问题所在,从而极大地提高了解决问题的效率。特别地,对于用户侧而言,可以通过管理监控期间记录的开机日志,统计用户端的问题的故障原因,来加速产品的改进。

附图说明

[0010] 现在将参照附图描述本发明的具体示例性实施例。然而,本发明可以以很多不同的形式实施,并且不应该被解读为限于本文所阐述的实施例;相反,这些实施例被提供以便使该公开全面而完整,并且将向本领域技术人员完全表达本发明的范围。在对附图所示特定示例性实施例的详细描述中所使用的术语不打算对本发明是限制性的。在附图中,类似的数字指代类似的部件。
[0011] 图1是根据本发明实施例示出用于监控系统启动的方法的流程图。
[0012] 图2是根据本发明另一实施例示出用于监控Windows操作系统启动的方法的流程图。
[0013] 图3是根据本发明另一实施例示出监控Windows操作系统启动的示意性视图。
[0014] 图4是根据本发明另一实施例示出用于监控系统启动的装置的框图。
[0015] 图5是示出根据本发明实施例的计算设备的框图。

具体实施方式

[0016] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明技术方案作进一步说明。应该进一步理解,使用在该说明书中,术语“包括”意指存在所陈述的特征、步骤、操作、部件和/或组件,但是并不排除存在或添加一个或更多个其他特征、步骤、操作、部件、组件和/或其组成的组。
[0017] 图1是根据本发明实施例示出用于监控系统启动的方法100的流程图。
[0018] 如图1中所示,在步骤102处,获取系统启动数据。在一个示例中,所获取的系统启动数据可以包括各种启动策略。例如,启动策略可以包括在系统启动期间要启用或禁用哪些设备和/或服务等等。更具体地,在Windows操作系统的示例中,可以通过Bcdedit从启动配置数据 (BCD) 文件中获取与Windows操作系统的启动有关的启动配置信息。在获得启动配置信息之后,可以动态配置启动配置数据 (BCD) 文件,来改变系统启动期间涉及的模块的行为。应理解,启动配置信息可以动态设置,也可以是预设的,本公开对此不作限制。
[0019] 可替代地或附加地,在获取系统启动数据之后,可以根据启动配置信息来确定是启用还是禁用对系统启动的监控。例如,在Windows操作系统的示例中,如果根据启动配置信息,确定已启动对系统模块的打点,那么启用对系统启动的监控。如果根据启动配置信息,确定已禁止对系统模块的打点,那么执行正常启动流程。可以动态配置启动配置信息,来确定启动或禁止对系统模块的打点。打点可以包括设置流程记录,其中流程记录携带有时间戳。时间戳表征系统启动的流程的时间点。
[0020] 在步骤104处,根据所获取的系统启动数据来监控系统启动。在一个示例中,监控系统启动可以包括根据所获取的系统启动数据来获得系统启动中所涉及模块的控制权。这里,除了上文所述的各种启动策略之外,所获取的系统启动数据还可以包括系统启动期间所产生的各种消息。具体地,可以通过各种消息处理机制来获取所产生的消息。在一个示例中,当系统启动期间所产生的特定类型的消息到达所涉及的模块时,可以通过与该特定类型对应的消息处理机制拦截该消息,从而获得该模块的控制权。可以针对系统启动期间涉及的各种类型的消息设置相应的消息处理机制。例如,在Windows操作系统的示例中,可以通过诸如Hook这样的消息处理机制来监视和拦截在系统启动期间产生的各种消息,从而获得在系统启动期间涉及的诸如EFI引导服务(EFI Boot Services)模块、Bootmgr模块、Winload模块等的控制权。
[0021] 可替代地或附加地,作为示例,在获得模块的控制权之后,还可以关闭模块中的初始化流程函数和模块转移函数,并针对进入模块进行打点。例如,在使用Hook和Patch的示例中,还可以将Hook设计为包括关闭相应模块原本将执行的初始化流程函数和模块转移函数的功能,并将Patch设计为包括进行打点的功能。这样,在系统启动期间到达每个模块时,在如上所述通过Hook这样的消息处理机制拦截到在该模块处要处理的消息从而获得该模块的控制权之后,还可以通过Hook来关闭该模块的初始化流程函数和模块转移函数。在完成通过Hook对消息的处理之后,调用Patch进行打点以设置系统启动的流程记录,其中流程记录可以携带有时间戳。时间戳表征系统启动的流程的时间点,例如上述通过Hook进行消息处理的时间点和进入模块的时间点等。进一步的,Patch还可以包括加入监控点和/或代理函数等操作。进一步的,Patch还可以包括确定待控制模块的配置信息,其中,待控制模块可以为当前控制模块的下一模块,例如,配置信息可以包括针对下一模块进行Hook和Patch的信息,从而在系统启动流程到达下一模块时调用相应的Hook来如上所述那样获得该下一模块的控制权并调用相应的Patch来如上所述那样进行打点等各类操作。这里,Patch的功能可以通过Shellcode来实现。如上所述,针对进入模块进行打点可以包括设置进入模块时间戳。
[0022] 可替代地或附加地,作为示例,在对系统启动期间到达的每个模块的监控结束之后,针对退出模块进行打点并返回该模块控制权。在一个示例中,与对进入模块进行打点类似地,可以通过Patch针对退出该模块进行打点,例如设置退出模块时间戳。然后,退出针对该模块的Patch,从而返回该模块的控制权并且系统启动流程继续进行。
[0023] 通过上述操作,能够灵活地设置各种期望的监控点,从而快速地定位在系统启动期间出现问题的模块位置。需要说明的是,本公开对获得控制权并执行的操作类别、实现方式、执行顺序均不作限制。
[0024] 可替代地或附加地,作为示例,在根据启动配置信息来确定是启用还是禁用对系统启动的监控的实施例中,如果确定启用对系统启动的监控,则执行步骤104。相反,如果确定禁用对系统启动的监控,则执行正常的开机流程而不进行监控。
[0025] 可替代地或附加地,作为示例,可以将获取系统启动数据的操作和监控系统启动的操作封装到不同模块中,并根据所监控的系统属性对所述不同模块进行配置,以在系统启动时被优先加载。例如,在Windows操作系统的示例中,可以将获取系统启动数据的操作封装到一个包括较少功能的加载模块中,并将监控系统启动的操作封装到一个包括较多功能的监控模块中。在系统启动期间可以首先运行加载模块,并如上所述那样确定是启用还是禁用对系统启动的监控。如果确定启用对系统启动的监控,则运行包括较多功能的监控模块。这样,能够节省加载时间,进一步提高解决问题的效率。
[0026] 可替代地或附加地,作为示例,根据所获取的系统启动数据来监控系统启动还可以包括禁用不期望在系统启动期间要开启的保护模块,以防止发生不期望的中断。例如,在Windows操作系统的示例中,可以通过Hook进入Windows内核入口点,然后禁用PG(PatchGuard)和DSE(Driver Signature Enforcement)。这样,可以防止初始化过程中由于开启了补丁而导致蓝屏。进一步的,在每次进入和退出Windows内核入口点时,都进行打点,直到初始化完成。
[0027] 在步骤106处,记录监控系统启动期间所产生的数据。作为示例,可以将所述数据记录到显卡的静态随机存取存储器(SRAM)中。在对系统启动的监控完成并且系统成功启动之后,转移所记录的数据并清空显卡的静态随机存取存储器。通过将所记录的数据保存到显卡的静态随机存取存储器中,可以快速地保存数据,并且在掉电时也不会丢失数据。
[0028] 在步骤108处,如果系统启动发生中断,则提取所述数据对中断进行分析。系统启动发生中断指示可能在系统启动期间出现了问题,这些问题可能包括引导配置数据 (BCD) 缺失或损坏、启动文件或 MBR 损坏、引导扇区缺失或损坏、Bootmgr 缺失或损坏以及由于系统配置单元缺失或损坏而无法启动等等。在将监控系统启动期间所产生的数据记录在显卡SRAM中的示例中,可以从显卡SRAM提取所记录的数据进行分析,以定位出现问题的位置及原因,从而快速地确定和修复系统启动的问题。
[0029] 图2是根据本发明另一实施例示出用于监控Windows操作系统启动的方法的流程图。下面将参照图2来详细描述对Windows操作系统启动的监控。
[0030] 首先,创建了模块对来对Windows操作系统启动进行监控,该模块对包括加载器模块和监控模块。如图2中所示,加载器模块被示出为Loader.efi,监控模块被示出为EfiMonitor.efi。在图2示出的实施例中,加载器模块被创建为包括较少功能的模块,其可以包括用于获取Windows系统启动数据的功能。监控模块被创建为包括较多功能的模块,其可以包括用于对Windows系统启动流程进行各种监控的功能。在Windows系统启动时可以首先仅执行包括较少功能的加载器模块,来从诸如BCDedit数据库获取系统启动相关数据,例如启动策略等等。如果启动策略指示要对系统启动进行监控,则执行包括较多功能的监控模块。通过创建这样的模块对,可以节省加载时间,进一步提高解决问题的效率。然而,应该理解的是,该模块对可以被创建成一个单独的模块。
[0031] 应当注意的是,在图2示出的对Windows操作系统启动进行监控的实施例中,可以将加载器模块和监控模块存放在Windows操作系统的EFI\Boot\目录下,并将它们分别重命名为BootX64.ef和Efimonitor.efi,从而UEFI BIOS将首选默认地加载该模块。
[0032] 如图2所示,在Windows操作系统启动时,首先在步骤202运行EFI DXE,其是EFI驱动程序运行环境(Driver Execution Environment,或DXE)。然后,如上所述,在步骤204,默认地执行加载器模块Loader.efi。这里,加载器模块被执行时从BCDedit数据库读取系统启动数据,例如开机启动策略。BCDedit是微软公司开发的重要数据库,通过动态配置该数据库,可以改变模块的行为。在该步骤204处,还根据所读取的系统启动数据中的启动配置信息来确定是否已开启系统监控打点。如果开启监控打点,则在步骤206处加载监控模块EfiMonitor.efi以启用对系统启动的监控。如果禁用监控打点,则在步骤208处加载Bootmgrfw.efi模块执行正常的开机启动流程。具体地,执行正常的开机启动流程可以包括在步骤212处加载Winload.efi模块和在步骤214处加载Ntkrnlmp.exe模块而不进行任何Hook和Patch操作。在图2中未示出上述正常的开机启动流程以免模糊本发明。在启用对系统启动的监控的情况下,系统启动流程可以包括在步骤210处加载EFIBootService模块、在步骤208处加载Bootmgrfw.efi模块、在步骤212处加载Winload.efi模块以及在步骤214处加载Ntkrnlmp.exe模块,其中在系统启动期间到达以上每个模块时,对每个模块进行如上文所描述的各种Hook和Patch操作。下面参照图2进一步详细描述在启用对系统的监控的情况下的系统启动流程。
[0033] 在步骤206处,监控模块EfiMonitor.efi被加载,因此控制权转移到监控模块EfiMonitor.efi。监控模块EfiMonitor.efi对EFIBootService模块进行Hook和Patch,然后调用EFIBootService进行控制权转移,前进到步骤210。EFIBootService模块是EFI启动服务器,它是UEFI BIOS的核心数据结构,包含了事件服务,内存管理服务,各种协议服务等。这里,通过Hook关掉初始化流程函数及模块转移函数,并且通过Patch进行打点并配置针对下一个模块的Hook和Patch。Patch可以采用shellcode的方式来实现。
[0034] 在步骤210处,进入EFIBootService模块,并对Bootmgrfw.efi模块进行Hook和Patch,然后调用Bootmgrfw.efi再次进行控制权转移,前进到步骤208。这里通过Hook和Patch进行的操作与步骤206处相同。
[0035] 在经过步骤210前进到步骤208的情况下,在步骤208处,进入Bootmgrfw.efi模块,并对Winload.efi模块进行Hook和Patch,然后进行控制权转移,前进到步骤212。这里通过Hook和Patch进行的操作与步骤206处相同。
[0036] 在步骤212处,进入Winload.efi模块,并对Ntkrnlmp.exe模块进行Hook和Patch,然后进行控制权转移,前进到步骤214。这里通过Hook和Patch进行的操作与步骤206处相同。
[0037] 在步骤214处,进入Windows 内核入口点,然后把禁用PG(PatchGuard)和DSE(Driver Signature Enforcement)禁用掉,以防止初始化过程中开启了补丁保护导致蓝屏。在每次进入和退出Windows内核入口点时,都进行打点,直到初始化完成。
[0038] 应当注意,在上述步骤中,在每次进入和退出各个模块时都进行打点。如上参照图1所描述的,打点可以包括设置时间戳。
[0039] 在执行上述步骤期间,可以将打点的日志记录到显卡的静态随机存取存储器(SRAM)中,从而可以快速地存储日志并且在掉电时也不会丢失日志。如果系统启动未发生问题,则在内核初始化完成之后,可以将显卡SRAM中的数据转移到其他存储装置中保持并清空显卡SRAM的数据。其他存储装置例如可以包括硬盘、软盘、光盘以及云存储设备等等。如果系统启动发生问题,则可以提取显卡SRAM中的数据进行分析,从而快速地确定系统启动期间发生的问题。
[0040] 图3是根据本发明另一实施例示出监控Windows操作系统启动的示意性视图。如图所示,在诸如计算机的电子设备上电之后,进入UEFI开始执行Windows操作系统的启动流程。首先,默认地执行加载器模块,也即图3中所示的重命名后的模块Bootx64.efi,其存储在GPT分区中并且在EFI\Boot目录下。此处是对Windows操作系统启动进行监控的起点。如果确定要启用监控,则在Bootx64.efi载入内存后将模块Bootmgfw.efi Hook为起点并获得其控制权。接下来,将模块Bootmgfw.efi入口点初始化,并在希望监控的各个位置处加入监控点、代理函数等。在上述操作完成之后,返回模块Bootmgfw.efi的控制权并调用其原始入口点,并且在其初始化完成后,载入模块Winload.exe并Hook其入口点以获得该模块的控制权。然后,类似地,将模块Winload.exe入口点初始化,并在希望监控的各个位置处加入监控点、代理函数等。在模块Winload.exe初始化完成之后,载入模块Ntikrnlmp.exe并Hook其入口点以获得该模块的控制权。之后,在模块Ntikrnlmp.exe的入口点处启动一个线程,并在希望监控的各个位置处进行打点、加入监控点、代理函数等。最后,返回模块Ntikrnlmp.exe的控制权并调用其真实入口点,正式进入内核启动流程。这里,进行打点、加入监控点、代理函数等操作可以通过Patch的方式来完成。
[0041] 图4是根据本发明另一实施例示出用于监控系统启动的装置的框图。现在参照图4,示出了根据本发明一个实施例用于监控系统启动的装置的框图400。如图4中所示,装置
400可以包括数据获取模块402、监控模块404、记录模块406和分析模块408。具体地,数据获取模块402被配置为获取系统启动数据。所获取的系统启动数据可以包括各种启动策略。监控模块404被配置为根据所获取的系统启动数据来监控系统启动。例如,监控系统启动可以包括根据所获取的系统启动数据来获得系统启动中所涉及模块的控制权。记录模块406被配置为记录监控系统启动期间所产生的数据。例如,记录模块406可以将所述数据记录到显卡的静态随机存取存储器(SRAM)中。分析模块408可以被配置为如果系统启动发生中断,则提取所述数据对中断进行分析。系统启动发生中断指示可能在系统启动期间出现了问题。
应当注意的是,数据获取模块402和监控模块404可以被封装到同一个模块中,也可以被封装成分离的独立模块。在被封装成分离的独立模块的示例中,数据获取模块402可以被配置为根据所获取的启动配置信息来确定是启用还是禁用对系统启动的监控。当确定启用对系统启动的监控时,才加载监控模块402以进行后续的监控操作。照此,可以将较少的功能封装到数据获取模块402中,并将较多且复杂的功能封装到监控模块404中,从而能够节省加载时间,进一步提高解决问题的效率。在各种实施例中,装置400可以用于执行如上文所描述的任何方法的步骤。
[0042] 附加地或可替换地,可以使用计算机处理器、存储器单元、存储设备、计算机软件和其他组件在一台或更多台计算机或服务器或类似设备上实现本申请的上述方法、通用对接模块、服务平台或第三方平台。这种计算机或服务器的高级框图在图5中示出。在此,计算机、服务器或其他包括处理器的设备统称为计算设备。计算设备502包含处理器504,处理器504通过执行定义了整体操作的计算机程序指令来控制计算机502的操作。可以将计算机程序指令存储在存储设备512(例如磁盘)中并在需要执行计算机程序指令时将其加载到存储器510中。因此,参照图1和图2的方法的步骤可以由存储在存储器510和/或存储设备512中的计算机程序指令定义,并由执行该计算机程序指令的处理器504控制。计算设备502还包括一个或更多个网络接口506,用于经由网络与其他设备进行通信。计算设备502还包括使用户能够与计算机502进行交互的其他输入/输出设备508(例如,显示器、键盘、鼠标、扬声器、按钮等)。本领域的技术人员将认识到,实际计算机的实施例也可以包含其他组件,并且图5是用于说明目的的这种计算机的一些组件的高级表示。
[0043] 存储设备512和存储器510均包括有形的非暂时性计算机可读存储介质。存储设备512和存储器510均可包括高速随机存取存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率同步动态随机存取存储器(DDR RAM)或其他随机存取固态存储器设备,并且可以包括非易失性存储器,诸如一个或多个磁盘存储设备(诸如内部硬盘和可移动磁盘)、磁光盘存储设备、光盘存储设备、闪存设备、半导体存储器设备(诸如可擦除可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM))、紧凑盘只读存储器(CD‑ROM)、数字多功能盘只读存储器(DVD‑ROM)盘或其他非易失性固态存储设备。
[0044] 在另一实施例中,可以在基于网络的云计算系统中实现上述方法、通用对接模块、服务平台或第三方平台。在这样的基于网络的云计算系统中,服务器经由网络与一个或更多个客户端计算机通信。客户端计算机可以例如经由驻留在客户端计算机上并在其上运行的网络浏览器应用与服务器进行通信。客户端计算机可以将数据存储在服务器上,并经由网络访问该数据。客户端计算机可以经由网络将数据请求或在线服务请求传送到服务器。服务器可以实施所请求的服务,并将数据提供给(一个或多个)客户端计算机。服务器还可以传送被适配为使客户端计算机实施指定功能(例如,实施计算,在屏幕上显示指定数据等)的数据。上述方法的某些步骤可以由服务器或由基于网络的云计算系统中的其他计算机/处理器实施。上述方法的某些步骤可以由基于网络的云计算系统中的客户端计算机本地实施。上述方法的步骤可以由基于网络的云计算系统中的一个或更多个设备或者由本地客户端计算机以任何组合来实施。
[0045] 应认识到为了清楚起见在单独实施例的上下文中描述的本申请的某些特征还可以在单个实施例中以组合的方式提供。相反,为了简便起见在单个实施例的上下文中描述的本申请的各种特征还可以单独地或以任何适当的子组合或在本申请的任何其他所述实施例中适当地提供。不应将在各种实施例的上下文中描述的某些特征视为那些实施例的必要特征,除非该实施例在没有那些元素的情况下无效。
[0046] 虽然已结合本申请的具体实施例描述了本申请,但是很明显,许多替换、修改和变更对于本领域的技术人员来说将是显而易见的。因此,旨在涵盖属于随附权利要求的精神和广泛范围内的所有此类替换、修改和变更。
[0047] 本说明中提及的所有公开、专利和专利申请通过引用整体地结合于本文中,引用的程度如同具体且特别地指示每个单独的公开、专利或专利申请以通过引用结合于本文一样。另外,不应将本申请中的任何参考的引用或识别理解为允许此类参考作为现有技术可用于本申请。在使用分段标题的情况下,不应将其理解为一定是限制性的。