CN104364758B - 用于有限能力操作系统的api重定向 - Google Patents

用于有限能力操作系统的api重定向 Download PDF

Info

Publication number
CN104364758B
CN104364758B CN201380032907.XA CN201380032907A CN104364758B CN 104364758 B CN104364758 B CN 104364758B CN 201380032907 A CN201380032907 A CN 201380032907A CN 104364758 B CN104364758 B CN 104364758B
Authority
CN
China
Prior art keywords
api
operating system
component
computing device
called
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.)
Active
Application number
CN201380032907.XA
Other languages
English (en)
Other versions
CN104364758A (zh
Inventor
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 Technology Licensing LLC
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 Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN104364758A publication Critical patent/CN104364758A/zh
Application granted granted Critical
Publication of CN104364758B publication Critical patent/CN104364758B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Abstract

公开了用于通过动态重定向某些API调用来促进应用程序在具有有限能力操作系统的计算设备上的执行的系统、方法和计算机程序产品。这样的系统、方法和计算机程序产品提供了促进在如何处理特定API调用上做出动态决策的能力的一个或多个API拦截层和规则引擎。可针对任何数量的与计算设备有关的使操作系统被认为是“有限能力”的原因/因素/特性来发起重定向,该原因/因素/特性比如例如是缺少本地API实施、电力水平、位置、中央处理器单元使用、以及确定将API调用重定向到另一实体是更有效的任何其他模式。这样的实体可以是硬件组件、分区的或虚拟化的操作系统镜像、基于网络的镜像或基于云的服务。

Description

用于有限能力操作系统的API重定向
背景技术
在今天的技术环境中,操作系统(管理到计算设备的硬件的接口、调度任务、分配储存、并且通常提供用于在计算机上执行的应用软件的公共服务的低层软件)通常被构建和部署有固定且良好定义的操作系统应用程序接口(API)。即,操作系统的API提供了接口(即调用协定集),通过该接口,应用程序访问特定计算设备(例如桌面型计算机、膝上型计算机、笔记本、平板计算机、个人数字助理(PDA)、移动电话、智能电话等)上的操作系统和其它服务。例如Windows®7操作系统(可从华盛顿州雷德蒙德(Redmond, WA)的微软公司获得)提供了“Windows SDK”API,该API给予应用开发者固定和公知的API表面,该API表面被用来开发应用程序。这对于消费者希望运行应用程序(即任何非操作系统软件应用或“app”)的所有其他计算设备也是如此。
在常规操作系统API模型中,操作系统提供商/制造商推出具有在操作系统镜像(image)内实施的整个底层操作系统API的计算设备。这是因为将一致的API表面暴露给开发者提供了在设备之间的应用兼容性。然而可能存在若干情形,其中由于位置、电力约束或其它因素,本地实施整个API没有意义。然而,如果不在计算设备上实施整个API,那么当执行的应用程序对未实施的API调用做出特定调用时,将发生运行时间错误。
发明内容
提供该发明内容来介绍对概念的选择。下面在具体实施方式中进一步描述这些概念。该发明内容既非旨在标识所要求保护的主题的关键特征或必要特征,也非旨在帮助确定所要求保护的主题的范围。
本公开的实施例通过提供系统、方法和计算机程序产品来满足上述需求,所述系统、方法和计算机程序产品通过动态重定向某些API调用来促进应用程序在具有有限能力操作系统(“O/S”)的计算设备上的执行。
本公开的实施例包括这样的技术,其提供促进在如何处理特定的API调用上做出动态决策的能力的API拦截层和底层规则引擎。在各个实施例中,可针对任何数量的与致使操作系统被认为是“有限能力”的计算设备有关的原因/因素/特性来发起重定向,该原因/因素/特性比如例如是缺少本地API实施(即,操作系统不包含或支持用于处理一个或多个API调用的一个或多个组件)、当前的(低)电力水平、位置、中央处理器单元(CPU)使用以及确定由于规章和/或安全约束(例如医疗、游戏、金融、军事等应用)、硬件卸载等而导致的将API调用重定向到另一实体(例如硬件、分区或虚拟化的操作系统镜像、基于网络的镜像、基于云的服务等)将更加有效的任何其它模式。
将参考附图在下文详细描述本公开的各个实施例的另外的特征和优点,以及本公开的各个方面的结构和操作。
附图说明
在结合图时,根据下文阐述的详细描述,本公开的特征和优点将变得更加显而易见,在图中同样的附图标记表示等同的或功能上类似的元素。
图1是可用于实施本公开的实施例的示例性计算系统的框图。
图2是图示常规操作系统实施环境的框图。
图3-6是图示根据本公开的实施例的各种操作系统实施环境的框图。
图7是图示根据本公开的实施例的API重定向过程的流程图。
具体实施方式
本公开的实施例针对用于通过动态重定向某些API调用来促进应用程序在具有有限能力操作系统的计算设备上的执行的系统、方法和计算机程序产品。
在各个实施例中,这样的系统、方法和计算机程序产品提供了一种API拦截层和底层规则引擎,该API拦截层和底层规则引擎促进在如何处理由计算设备上的执行应用做出的特定的、未实施的API调用上做出动态决策的能力。
在一个实施例中,本公开提供了基于利用API拦截和基于规则的引擎的动态API重定向的解决方案。在这样的实施例中,API重定向通过调用进到良好定义的API表面来允许应用以未修改的方式运行,该良好定义的API表面将调用重定向到图形处理单元(GPU)(或其它硬件加速技术)以加速该调用。在这样的实施例中,基本操作系统镜像将包括API处理程序的基于软件的实施。
在另一实施例中,本公开提供了基于动态API重定向的解决方案,其中将由执行应用做出的API调用从第一计算设备重定向到在与第一计算设备相同的网络上的另一、第二计算设备以处理该API调用,在第一计算设备中,该调用是未实施的(即不是操作系统的一部分)。
在另一实施例中,本公开提供了基于电力简况(profile)的动态API重定向解决方案。例如,基于电池电力运行的本地设备可能需要处理复杂的、CPU受限的任务/API调用。然而,基于当前的电力简况,使这样的API调用由另一计算设备或云服务处理(即,计算资源作为服务而不是产品的输送,由此提供共享的资源、软件和信息给计算机和其它设备作为在网络上的计量的服务——该网络通常是全球的、公共互联网)可能是更加有效的。
在又一实施例中,本公开提供了基于计算设备的当前位置的动态API重定向解决方案。例如,可以确定的是远程计算设备处理API调用比起让其被本地处理更加高效。这样的确定将基于本地机器的位置和可用的联网技术(例如家、机场或办公室网络等)。
在又一实施例中,本公开提供了基于虚拟化的操作系统镜像的动态API重定向解决方案。即,很多计算设备需要安全的和基于用户的模式(例如支付终端、游戏设备等)。然而,计算设备的基于用户的部分可以暴露应当由虚拟化操作系统处理的API调用。在这样的实施例中,API看起来对于用户操作系统来说是本地的,但是实际上被重定向到了虚拟化的第二操作系统镜像(或者在同一硬件上执行,或者在另一、更强大的计算设备或云服务上执行)。
在另一实施例中,本公开提供了基于硬件的动态API重定向解决方案。在这样的实施例中,例如,可将API调用从本地USB外设重定向到虚拟化的或其它的硬件组件。
在一个实施例中,本公开针对能够执行本文描述的实施例的功能的一个或多个计算机系统或计算设备。图1中示出计算机系统100的示例。
计算机系统100包括一个或多个处理器,例如处理器104。处理器104连接到通信基础结构106(例如通信总线或网络)。依据该示例性计算机系统来描述各个软件方面。在阅读该描述之后,相关领域技术人员应当变得显而易见的是,如何使用其他计算机系统和/或架构来实施本公开。
计算机系统100可包括转送来自通信基础结构106(或来自未示出的帧缓冲器)的图形、文本和其它数据以便在显示单元130上显示的显示接口102。
计算机系统100还包括主存储器108(优选是随机存取存储器(RAM))并且还可包括辅助存储器110。辅助存储器110可包括例如硬盘驱动器112和/或可移除储存驱动器114(表示软盘驱动器、磁带驱动器、光盘驱动器等)。可移除储存驱动器114以公知的方式从可移除储存单元118读取和/或写入可移除储存单元118。可移除储存单元118表示由可移除储存驱动器114读和写的软盘、磁带、光盘等。如将认识到的,可移除储存单元118包括具有存储在其中的计算机软件和/或数据的计算机可使用储存介质。
在替代的方面中,辅助存储器110可包括用于允许计算机程序或其它代码或指令被装载在计算机系统100中的其它类似设备。这样的设备可例如包括可移除储存单元122和接口120。这样的示例可包括程序磁片盒和磁片盒接口(例如在视频游戏设备中找到的那些)、可移除存储器芯片(例如可擦除可编程只读存储器(EPROM)或可编程只读存储器(PROM))和相关联的插座,以及其它可移除储存单元122和允许软件和数据被从可移除储存单元122传输到计算机系统100的接口120。
计算机系统100还可包括通信接口124。通信接口124允许软件和数据在计算机系统100和外部设备之间的传输。通信接口124的示例可包括调制解调器、网络接口(例如以太网卡)、通信端口、个人计算机存储卡国际协会(PCMCIA)槽和卡等。经由通信接口124传输的软件和数据是以信号128的形式,信号128可以是电子的、电磁的、光学的或能够由通信接口124接收的其它信号。这些信号128经由通信路径(例如信道)126被提供到通信接口124。该信道126承载信号128并且可使用导线或电缆、光纤光学、电话线、蜂窝链路、射频(RF)链路和其它通信信道来实施。
在该文档中,术语“计算机程序介质”和“计算机可使用介质”被用于一般地指代例如可移除储存驱动器114、安装在硬盘驱动器112中的硬盘和信号128之类的介质。这些计算机程序产品提供软件给计算机系统100。本公开针对这样的计算机程序产品。
计算机程序(也被称为计算机控制逻辑)存储在主存储器108和/或辅助存储器110中。计算机程序还可经由通信接口124来接收。这样的计算机程序当被执行时,使能计算机系统100执行如本文讨论的本公开的特征。特别地,计算机程序当被执行时,使能处理器104执行本公开的特征。相应地,这样的计算机程序表示计算机系统100的控制器。
在其中使用软件实施本公开的实施例中,可将软件存储在计算机程序产品中并且可使用可移除储存驱动器114、硬盘驱动器112或通信接口124将软件装载到计算机系统100中。控制逻辑(软件)当由处理器104执行时,使得处理器104执行如本文描述的本公开的功能。
在另一实施例中,主要使用例如硬件组件(例如专用集成电路(ASIC)在硬件中实施本公开。实施硬件状态机以致执行本文描述的功能对于相关领域技术人员来说将是显而易见的。
如对于在阅读本文的描述之后的相关领域技术人员来说将显而易见的是,图1中所示的计算机架构可被配置为任何数量的计算设备,例如游戏控制台、便携媒体播放器、桌面型计算机、膝上型计算机、服务器、笔记本计算机、平板计算机、PDA、移动计算机、智能电话、移动电话、智能通信设备等。
在又一实施例中,使用硬件和软件二者的组合来实施本公开。
参考图2,示出了图示由很多常规计算系统利用的操作系统实施环境200的框图。如在阅读本文的描述之后的相关领域技术人员将认识到的,环境200将存在于其中计算机程序(软件)应用202正在执行的计算设备100上。
如相关领域技术人员公知的,因为应用202在环境200内执行,其可利用操作系统的共享库文件中的一个或多个。在其中计算设备100使用可从华盛顿州雷德蒙德的微软公司获得的Windows®操作系统的示例中,这样的共享库文件是动态链接库文件(DLL)(如图2中的DLL 204a-c所示)。转而,DLL204a-c在应用202执行时可利用一个或多个操作系统组件(如图2中的O/S服务(A)-(D)所示)206。如上文所提到的,现有的操作系统通常装有固定的API表面。软件应用(例如应用202)的开发者依赖于这样的一致的API表面来使能在不同计算设备100上的应用兼容性。然而,如果通常处理特定API调用的操作系统组件(例如“O/S服务(D)”206d)并不存在于特定的操作系统实施环境200内,则应用202的执行将产生运行时间错误并失败。
现在参考图3,示出了图示根据本公开的实施例的操作系统实施环境300的框图。在这样的实施例中,其中应用202产生运行时间错误的情况通过环境300来克服,环境300包括API拦截层302a、API拦截层302b和API重定向规则引擎304,API拦截层302a、API拦截层302b和API重定向规则引擎304促进在如何处理对于处理由在计算设备100上执行的应用202做出的API调用而言是必需的特定的、未实施的操作系统组件上做出动态决策的能力。
如在阅读本文的描述之后的相关领域技术人员将认识到的,环境300内的操作系统可以是多层操作系统,其中API拦截层302和规则引擎304可在一个或多个层处工作以拦截由应用202对在特定操作系统实施环境300内部不存在的操作系统组件做出的API调用,从而避免应用202的执行产生运行时间错误并失败。
为了说明上述点,假定在环境300内执行的应用202做出利用(即访问)DLL204c的API调用,该DLL204c转而需要利用操作系统组件206d。然而,环境300的操作系统具有“有限的能力”,因为组件206d(即“O/S服务(D)”)未被实施(如由图3中的虚线所指示的)。因此,API拦截层302a包括控制逻辑来拦截API/模块/特征调用并且把对O/S组件206的这样的“接触”(即使用API调用、服务、驱动器或资源)记入日志(即存储)。在本发明的实施例中,由API拦截层302a采集和存储的信息促进规则引擎304重定向由应用202对组件206d做出的API调用。然后可以将该API调用重定向到操作系统的另一层以由另一实体(例如在计算设备100上实际实施的操作系统组件206e-f)处理。通过操作系统组件206e-f的这样的处理将包含位于计算设备100上的CPU306或GPU308对一个或多个指令的执行。
如在阅读本文的描述之后的相关领域技术人员将认识到的,在一实施例中,API重定向规则引擎304包括在操作系统环境300内的规则表(或其它数据结构),其使用表1中所示的一个或多个规则类别来引导API拦截层302动态重定向一个或多个API调用,表1可由设备100的制造商来预设或稍后由系统管理员配置。
有限能力O/S规则类别 描述
CPU负载 将API调用卸载到云服务
硬件加速 将来自CPU的API调用卸载到GPU或其它硬件加速技术(例如Java应用运行时间加速器)
丢失的API处理程序 确定不同集合的API/服务是否能够处理调用
安全/规章要求 将API调用卸载到另一(安全的)机器(物理或虚拟的)
连接的速度 将复杂/耗时的计算卸载到云服务
电力(电池剩余%) 将调用卸载到另一机器或云服务
表1。
如对于在阅读本文的描述之后的相关领域技术人员而言将显而易见的是,促进在如何处理特定API调用上做出动态决策的能力的API拦截层302和API重定向规则引擎304可以是与计算设备100一起装上的“标准”操作系统的一部分,或者可以稍后作为更新(或补丁)的一部分被添加到现有操作系统。
现在参考图4,示出了图示根据本公开的一实施例的操作系统实施环境400的框图。环境400包括API拦截层302a、API拦截层302b和API重定向规则引擎304,该API拦截层302a、API拦截层302b和API重定向规则引擎304促进关于如何处理对于处理由在计算设备100上执行的应用202做出的一个或多个API调用而言所必需的特定的、未实施的操作系统组件上做出动态决策的能力。然而在这样的实施例中,API调用被重定向到远程实体402(例如位于与设备100相同的网络上的云服务器或另一设备)。通过规则引擎304(基于例如电力水平、位置、CPU使用、安全和/或如上文所述的任何其他因素)来管理关于将API调用重定向到哪里的决策。
为了说明上述点,假定在环境400内执行的应用202利用DLL204c,DLL204c转而需要利用操作系统组件206d。然而,环境400的操作系统具有有限的能力,因为组件206d(即“O/S服务(D)”)未被实施(如图4中的虚线所指示的)。因此,API拦截层302a包括控制逻辑来拦截由应用202对组件206d做出的API调用。然后可由规则引擎304利用由API拦截层302b记入日志的信息将API调用重定向到操作系统的另一层,以由云服务402处理,从而不包含由位于计算设备100上的CPU306或GPU308对一个或多个指令的执行。
现在参考图5,示出了图示根据本公开的一实施例的操作系统实施环境500的框图。环境500包括API拦截层302a、API拦截层302b和API重定向规则引擎304,该API拦截层302a、API拦截层302b和API重定向规则引擎304促进关于如何处理对于处理由在计算设备100上执行的应用202做出的一个或多个API调用而言所必需的特定的、未实施的操作系统组件(例如由图5中的虚线指示的组件206d)上做出动态决策的能力。然而在这样的实施例中,API重定向允许应用202以未修改的方式运行,同时将相关的API调用从CPU306重定向到GPU308以加速该调用。
为了说明上述点,假定在环境500内执行的应用202利用DLL204a,DLL204a转而经由API拦截层302a利用操作系统组件206a。然而,API拦截层302b在引擎304的控制下包括控制逻辑来拦截组件206a将通常对CPU306做出的指令调用,并且引擎304将它们重定向到GPU308。这加速了应用202的执行,而应用202的代码不必由知道GPU308存在于(或将要存在于)设备100上的开发者修改。
现在参考图6,示出了图示根据本公开的一实施例的操作系统实施环境600的框图。在这样的实施例中,计算设备100具有两个操作系统镜像(或实例)610和620,两个操作系统镜像可以是相同或不同的操作系统(例如Window®桌面O/S 610和Windows® CEO/S620),每个操作系统在虚拟机内工作。因此,环境600包括在操作系统实例610内的API拦截层302a、302b和在操作系统镜像620内的API拦截层302c、302d,以及API重定向规则引擎304,该在操作系统实例610内的API拦截层302a、302b和在操作系统镜像620内的API拦截层302c、302d,以及API重定向规则引擎304促进关于如何处理对于处理由在计算设备100上执行的应用202做出的一个或多个API调用而言所必需的特定的、未实施的操作系统组件上做出动态决策的能力。
更特别地,并且通过示例的方式,很多计算设备100要求安全和基于用户的模式(例如支付终端、游戏设备、医疗、金融或军事应用设备等)。然而计算设备100的基于用户的部分可能暴露应当由在同一设备上运行的虚拟化操作系统来处理的API调用。在这样的实施例中,API调用看起来将由用户操作系统实例610本地处理,但是实际上被重定向规则引擎304(图6中未示出)重定向到虚拟化的第二操作系统镜像620。
参考图7,示出了图示根据本公开的一实施例的API重定向过程的流程图。将在计算设备100内执行的过程700在步骤702处开始,而控制立即转到步骤704。
在步骤704中,在环境300、400、500或600内执行的应用程序202做出API调用。
在步骤706中,API调用利用DLL204,DLL204在步骤708中做出旨在针对操作系统组件206的调用。然而在步骤710中,API拦截层302拦截该调用。然后在步骤712中,规则引擎304通过应用至少一个重定向规则(参见表1)来确定由DLL204做出的调用是否需要被重定向到另一实体。
如果步骤712的确定是否定的,则过程700继续到步骤714。在步骤714中,所意指的O/S组件206如正常那样处理该调用。
然而如果步骤712的确定是肯定的,则处理700继续到步骤716。在步骤716中,由规则引擎304基于一个或多个可应用重定向规则将该调用重定向到实体402。可以针对任何数量的与计算设备100有关的使操作系统被认为是“有限能力”的原因/因素/特性来发起重定向。因此,这样的规则可以是例如基于缺少本地API实施、电力水平、位置、CPU使用、安全和/或如上所述的任何其他因素(参见表1)。在各个实施例中,这样的实体402可以是云服务器、硬件组件、分区的或虚拟化的操作系统镜像、基于网络的镜像或基于云的服务。
促进应用程序202在具有有限能力操作系统的计算设备100上的执行的过程700然后如步骤718所指示那样终止。
尽管以上描述了本公开的各个方面,但是应当理解的是,通过示例而非限制的方式来介绍它们。对于相关领域技术人员而言将显而易见的是,可在其中做出在形式和细节上的各个改变,而不背离本公开的精神和范围。因此,本公开不应当被以上描述的示例性方面中的任何一个所限制,而是应当仅根据以下的权利要求及其等同物来限定。
此外,应当理解的是,附件中的图仅以示例的目的被呈现,所述图强调了本公开的结构、方法学、功能和优势。本公开是足够灵活和可配置的,使得其可以以除了附图中示出的那些方式之外的方式来实施(例如在除了用于说明目的在本文提到的那些之外的操作系统和计算设备内实施)。
此外,前述摘要的目的是使得美国专利商标局以及一般公众以及尤其是不熟悉专利或法律术语或措辞的相关领域的科学家、工程师和从业者能够通过粗略检查来快速确定该技术公开物的本性和本质。摘要并非旨在以任何方式限制本公开的范围。

Claims (10)

1.一种用于促进应用程序在具有有限能力操作系统的计算设备上的执行的系统,包括:
第一应用编程接口拦截层,其能够拦截来自在所述计算设备上执行的应用的应用编程接口调用;其中所述应用编程接口调用旨在针对所述有限能力操作系统的组件,所述组件用于要由所述组件处理的所述应用编程接口调用,所述组件没有实现在所述计算设备上;以及
应用编程接口重定向规则引擎,其能够基于所述组件没有实现在所述计算设备上而指示所述第一应用编程接口拦截层将所述应用编程接口调用重定向到不同于所述组件的实体以便由所述实体而不是由所述组件进行处理,所述指示没有使得所述应用编程接口调用被定向到所述组件,该实体是分区的操作系统镜像、虚拟的操作系统镜像或基于网络的镜像;其中所述规则引擎应用至少一个重定向规则。
2.根据权利要求1所述的系统,其中由所述应用编程接口重定向规则引擎应用的所述至少一个重定向规则与所述计算设备的以下特性有关:
丢失的应用编程接口处理程序。
3.根据权利要求1所述的系统,其中所述第一应用编程接口拦截层被配置为在来自在所述计算设备上执行的所述应用的所述应用编程接口调用访问所述有限能力操作系统的共享库文件之后拦截所述应用编程接口调用。
4.根据权利要求1所述的系统,其中所述实体是位于计算设备上的虚拟的操作系统镜像。
5.一种用于促进应用程序在具有有限能力操作系统的计算设备上的执行的方法,所述方法在所述计算设备的处理器上执行,包括以下步骤:
通过第一应用编程接口拦截层拦截来自在所述计算设备上执行的应用的应用编程接口调用;其中所述应用编程接口调用旨在针对所述有限能力操作系统的组件,所述组件用于要由所述组件处理的所述应用编程接口调用,所述组件没有实现在所述计算设备上;以及
通过应用编程接口重定向规则引擎基于所述组件没有实现在所述计算设备上而指示所述第一应用编程接口拦截层将所述应用编程接口调用重定向到不同于所述组件的实体以便由所述实体而不是由所述组件进行处理,所述指示没有使得所述应用编程接口调用被定向到所述组件,该实体是分区的操作系统镜像、虚拟的操作系统镜像或基于网络的镜像;其中所述规则引擎应用至少一个重定向规则。
6.根据权利要求5所述的方法,其中所述第一应用编程接口拦截层被配置为在所述有限能力操作系统的第一层处拦截所述应用编程接口调用;并且其中所述方法还包括以下步骤:
在所述有限能力操作系统的第二层处通过第二应用编程接口拦截层拦截来自在所述计算设备上执行的所述应用的所述应用编程接口调用。
7.根据权利要求5所述的方法,其中所述第一应用编程接口拦截层被配置为在来自在所述计算设备上执行的所述应用的所述应用编程接口调用访问所述有限能力操作系统的共享库文件之后拦截所述应用编程接口调用。
8.一种用于使得具有有限能力操作系统的计算机促进应用程序的执行的装置,所述装置包括:
第一模块,其用于使得所述计算机通过第一应用编程接口拦截层拦截来自在所述计算机上执行的应用的应用编程接口调用;其中所述应用编程接口调用旨在针对所述有限能力操作系统的组件,所述组件用于要由所述组件处理的所述应用编程接口调用,所述组件没有实现在所述计算机上;以及
第二模块,其用于使得所述计算机通过应用编程接口重定向规则引擎基于所述组件没有实现在所述计算机上而指示所述第一应用编程接口拦截层将所述应用编程接口调用重定向到不同于所述组件的实体以便由所述实体而不是由所述组件进行处理,该实体是分区的操作系统镜像、虚拟的操作系统镜像或基于网络的镜像;其中所述规则引擎应用至少一个重定向规则,所述应用编程接口调用的重定向不包括,使得所述应用编程接口调用被所述组件接收。
9.根据权利要求8所述的装置,其中由所述应用编程接口重定向规则引擎应用的所述至少一个重定向规则与所述计算机的当前位置有关。
10.根据权利要求8所述的装置,其中所述第一应用编程接口拦截层被配置为在来自在所述计算机上执行的所述应用的所述应用编程接口调用访问所述有限能力操作系统的共享库文件之后拦截所述应用编程接口调用。
CN201380032907.XA 2012-06-22 2013-06-18 用于有限能力操作系统的api重定向 Active CN104364758B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/531,116 US9733953B2 (en) 2012-06-22 2012-06-22 API redirection for limited capability operating systems
US13/531116 2012-06-22
PCT/US2013/046207 WO2013192117A2 (en) 2012-06-22 2013-06-18 Api redirection for limited capability operating systems

Publications (2)

Publication Number Publication Date
CN104364758A CN104364758A (zh) 2015-02-18
CN104364758B true CN104364758B (zh) 2018-01-02

Family

ID=48699331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380032907.XA Active CN104364758B (zh) 2012-06-22 2013-06-18 用于有限能力操作系统的api重定向

Country Status (5)

Country Link
US (1) US9733953B2 (zh)
EP (1) EP2864869B1 (zh)
CN (1) CN104364758B (zh)
ES (1) ES2886760T3 (zh)
WO (1) WO2013192117A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140184613A1 (en) * 2013-01-01 2014-07-03 Doron Exterman Method for offloading graphic processing unit (gpu) processing tasks to remote computers
US10200508B2 (en) * 2013-09-17 2019-02-05 Nvidia Corporation System and method for sharing special-purpose processing resources
JP6568238B2 (ja) 2015-05-19 2019-08-28 華為技術有限公司Huawei Technologies Co.,Ltd. ハードウェアアクセラレーション方法及び関連デバイス
US10324693B2 (en) * 2015-11-24 2019-06-18 Nvidia Corporation Optimizing multiple invocations of graphics processing unit programs in Java
US10503524B2 (en) * 2016-03-22 2019-12-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Interception of a function call, selecting a function from available functions and rerouting the function call
US10884761B2 (en) 2016-03-22 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Best performance delivery in heterogeneous computing unit environment
US10860499B2 (en) 2016-03-22 2020-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamic memory management in workload acceleration
US11314565B2 (en) 2016-07-07 2022-04-26 Data Accelerator Ltd Method and system for application virtualization that includes resource access control
US11150925B2 (en) 2016-07-07 2021-10-19 Data Accelerator Ltd. Method and system for compound application virtualization
US11237857B2 (en) 2016-07-07 2022-02-01 Data Accelerator Ltd Method and system for application virtualization that includes machine learning
CN109218275B (zh) * 2017-07-07 2021-09-21 北京小米移动软件有限公司 应用交互方法及装置
EP3627322A4 (en) 2017-06-14 2020-04-29 Beijing Xiaomi Mobile Software Co., Ltd. APPLICATION INTERACTION METHOD, INTERACTION METHOD AND DEVICE
CN114745495B (zh) * 2021-01-07 2023-06-23 北京小米移动软件有限公司 图像生成方法、装置及存储介质
US20220404956A1 (en) * 2021-06-17 2022-12-22 Samsung Electronics Co., Ltd. Method and electronic device for navigating application screen

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546568A (ja) 1991-08-08 1993-02-26 Internatl Business Mach Corp <Ibm> 分散アプリケーシヨン実行装置および方法
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7209949B2 (en) * 1998-05-29 2007-04-24 Research In Motion Limited System and method for synchronizing information between a host system and a mobile data communication device
IL132916A (en) * 1999-11-14 2004-02-08 Mcafee Inc Method and system for intercepting an application program interface
US6754709B1 (en) * 2000-03-29 2004-06-22 Microsoft Corporation Application programming interface and generalized network address translator for intelligent transparent application gateway processes
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US20020082717A1 (en) * 2000-10-31 2002-06-27 Isogon Corporation Method and system for centralizing and harmonizing the operations of plural software license managers
US20020154214A1 (en) * 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US20030061279A1 (en) 2001-05-15 2003-03-27 Scot Llewellyn Application serving apparatus and method
US7783727B1 (en) 2001-08-30 2010-08-24 Emc Corporation Dynamic host configuration protocol in a storage environment
US8473620B2 (en) * 2003-04-14 2013-06-25 Riverbed Technology, Inc. Interception of a cloud-based communication connection
NO322710B1 (no) * 2003-04-29 2006-11-27 Telenor Asa En grensesnittanordning med apne og lukkede innretninger for kommunikasjon av tjenester i et personlig nettverk.
US20050160414A1 (en) 2004-01-21 2005-07-21 Nokia Corporation System and method for dynamically adding features to software applications
US7752601B1 (en) 2004-09-20 2010-07-06 The Mathworks, Inc. Runtime component hosting
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7698744B2 (en) 2004-12-03 2010-04-13 Whitecell Software Inc. Secure system for allowing the execution of authorized computer program code
US7830388B1 (en) 2006-02-07 2010-11-09 Vitie Inc. Methods and apparatus of sharing graphics data of multiple instances of interactive application
US7941813B1 (en) * 2006-02-17 2011-05-10 Parallels Holdings, Ltd. System and method for using virtual machine for driver installation sandbox
US7505995B2 (en) 2006-06-30 2009-03-17 Microsoft Corporation Object-relational model based user interfaces
US8407699B2 (en) * 2008-03-10 2013-03-26 Citrix Systems, Inc. System and method for managing code isolation
US20110071997A1 (en) * 2007-07-30 2011-03-24 Sullivan Alan T Systems and methods for direction of communication traffic
US8578364B2 (en) 2008-04-25 2013-11-05 Microsoft Corporation Dynamic management of operating system resources
US20090328080A1 (en) 2008-06-25 2009-12-31 Microsoft Corporation Window Redirection Using Interception of Drawing APIS
WO2010030703A1 (en) 2008-09-09 2010-03-18 Kace Networks, Inc. Deployment and management of virtual containers
US8844040B2 (en) * 2009-03-20 2014-09-23 Citrix Systems, Inc. Systems and methods for using end point auditing in connection with traffic management
US8683554B2 (en) 2009-03-27 2014-03-25 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (API)
US8645511B2 (en) 2009-10-13 2014-02-04 Google Inc. Pre-configuration of a cloud-based computer
US20110131330A1 (en) * 2009-12-02 2011-06-02 International Business Machines Corporation Collocating desktop virtual machines to proximity of the user
US8601499B2 (en) * 2009-12-15 2013-12-03 At&T Intellectual Property I, L.P. Systems, methods and computer readable media for routing requests from an application
US8375392B2 (en) 2010-01-12 2013-02-12 Nec Laboratories America, Inc. Data aware scheduling on heterogeneous platforms
CN102135893A (zh) 2010-01-21 2011-07-27 鸿富锦精密工业(深圳)有限公司 将操作系统集成到bios芯片及启动服务器上操作系统的方法
US9021354B2 (en) 2010-04-09 2015-04-28 Apple Inc. Context sensitive remote device
US8505003B2 (en) 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US9420055B2 (en) 2010-05-13 2016-08-16 Futurewei Technologies, Inc. System, apparatus for content delivery for internet traffic and methods thereof
CN102270152A (zh) 2010-06-07 2011-12-07 华东师范大学 面向掌上型移动设备的远程应用程序系统
US8839256B2 (en) * 2010-06-09 2014-09-16 International Business Machines Corporation Utilization of special purpose accelerators using general purpose processors
US20120066760A1 (en) * 2010-09-10 2012-03-15 International Business Machines Corporation Access control in a virtual system
EP3043269B1 (en) * 2010-09-24 2017-07-26 Intel Corporation Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform

Also Published As

Publication number Publication date
WO2013192117A3 (en) 2014-02-13
US20130347009A1 (en) 2013-12-26
US9733953B2 (en) 2017-08-15
WO2013192117A2 (en) 2013-12-27
ES2886760T3 (es) 2021-12-20
EP2864869A2 (en) 2015-04-29
CN104364758A (zh) 2015-02-18
EP2864869B1 (en) 2021-08-18

Similar Documents

Publication Publication Date Title
CN104364758B (zh) 用于有限能力操作系统的api重定向
EP3197059B1 (en) Method for controlling sim card and sd card and electronic device implementing the same
CN107925749B (zh) 用于调整电子设备的分辨率的方法和设备
CN109118160B (zh) 一种信息共享方法、装置、终端设备和介质
US10069327B2 (en) Electronic device and method for charging battery based on a plurality of power sources
CN106104484A (zh) 基于因设备而异或因用户而异的资源使用简档的资源管理
CN107357718A (zh) 一种构建测试方法及装置
US10997582B2 (en) Payment transaction method and electronic device therefor
CN103069391A (zh) 使能对云计算环境中的超级管理器的控制
CN107861603A (zh) 功耗控制方法及设备
CN105320568A (zh) 用于任务组迁移的方法和支持该方法的电子设备
CN110266505A (zh) 一种管理会话群的方法与设备
CN104917796A (zh) 信用账户创建装置、系统和方法
CN108475181B (zh) 电子设备和用于操作电子设备的方法
CN107621981A (zh) 资源配置方法及相关产品
KR102203130B1 (ko) 심카드 사용 제어 방법 및 그 전자 장치
CN110460647B (zh) 网络节点的调度方法、装置、电子设备和存储介质
CN106471481A (zh) 共享应用程序的方法及其电子装置
CN110348827A (zh) 基于第三方应用的中小微型企业银企直连方法及相关设备
US11886565B2 (en) Server that supports security access of terminal device of the user and controlling method thereof
US20150370452A1 (en) Electronic device and method for processing an input reflecting a user&#39;s intention
US8209685B1 (en) Virtual machine device access
CN111580882B (zh) 应用程序启动方法、装置、计算机系统和介质
CN107730230A (zh) 一种支付方法和商户客户端
US20120266172A1 (en) Apparatus and method for controlling a virtual machine

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150615

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

Effective date of registration: 20150615

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant