用于沙箱化应用程序的介导数据交换的制作方法

文档序号:9794010阅读:468来源:国知局
用于沙箱化应用程序的介导数据交换的制作方法
【技术领域】
[0001]所述实施例涉及计算设备。更具体地,所述实施例涉及在计算设备上执行的沙箱应用程序之间的介导数据交换。
【背景技术】
[0002]用于计算设备的一些操作系统支持“沙箱化”。沙箱化是一种用于防止在计算设备上执行的应用程序恶意或错误地改变数据(例如文件)和/或误用计算设备上的计算资源的技术。在被“沙箱化”时,操作系统允许应用程序仅访问计算设备中的有限的资源集,并被阻止访问除应用程序自身数据之外的数据。因此,例如在这些计算设备中,允许应用程序自由访问(即,从其读取,向其写入,删除等)应用程序自身的文件,但操作系统阻止应用程序访问属于其他应用程序的文件。
[0003]尽管沙箱化对于阻止应用程序恶意或错误改变数据和/或误用计算设备上的计算资源是有用的,但沙箱化大大限制了应用程序之间的交互。例如,尽管能够创建和/或修改其自身的文件,但沙箱化应用程序不能够向另一个应用程序传送那些文件或从另一个应用程序接收文件。对沙箱化应用程序的交互施加此类限制可能会使用户感到沮丧,因为用户们已习惯了可自由通信的非沙箱化应用程序。为了避免使用户感到沮丧,设计者们提供了工作区以使得沙箱化应用程序能够与其他应用程序进行交互。例如,设计者向沙箱化应用程序和其他应用程序中的一者或两者以及操作系统增加定制的程序代码,以使得在给定的沙箱化应用程序和一个其他应用程序之间能够实现基本的交互。然而,现有工作区需要根据每种情况来修改应用程序代码和/或操作系统代码以启用工作区。
【附图说明】
[0004]图1呈现了用于示出根据一些实施例的计算设备的框图。
[0005]图2呈现了根据一些实施例的操作系统和应用程序。
[0006]图3呈现了用于示出根据一些实施例的代理应用程序和用于应用程序的沙箱的框图。
[0007]图4示出了根据一些实施例的在对应的注册操作期间的应用程序和代理应用程序之间的通信。
[0008]图5呈现了用于示出根据一些实施例的在介导数据交换期间的应用程序和代理应用程序之间的通信的框图。
[0009]图6呈现了用于示出根据一些实施例的在计算设备的显示器上呈现的交互式图形用户界面的框图。
[0010]图7呈现了用于示出根据一些实施例的在计算设备的显示器上呈现的具有视图的帧的框图。
[0011]图8呈现了用于示出根据一些实施例的在介导数据交换期间的应用程序和代理应用程序之间的通信的框图。
[0012]图9呈现了用于示出根据一些实施例的用于执行介导数据交换的过程的流程图。
[0013]图10呈现了用于示出根据一些实施例的用于执行介导数据交换的过程的流程图。
[0014]在整个附图和说明书中,类似的参考编号是指相同的附图元件。
【具体实施方式】
[0015]提供以下描述以使得本领域的技术人员能够实现和使用所述实施例,并且以下描述是以特定应用程序及其要求的上下文提供的。各种修改形式对于本领域的技术人员而言将是显而易见的,并且本文中所限定的一般性原则可应用于其他实施例和应用程序,而不脱离所述实施例的实质和范围。因此,所述实施例不限于所示出的实施例,而是要被赋予符合本文所公开的原理和特征的最宽泛的范围。
[0016]在一些实施例中,计算设备(例如,图1的计算设备100)使用被存储在计算机可读存储介质上的代码和/或数据来执行本文所述的一些或全部操作。更具体地,计算设备从计算机可读存储介质读取代码和/或数据并在执行所述操作时执行代码和/或数据或使用数据。
[0017]计算机可读存储介质可以是存储供计算设备使用的代码和/或数据的任何设备或介质或其组合。例如,计算机可读存储介质可包括但不限于易失性存储器或非易失性存储器,包括闪存存储器、随机存取存储器(eDRAM、RAM、SRAM、DRAM、DDR、DDR2/DDR3/DDR4 SDRAM等)、只读存储器(ROM)和/或磁存储介质或光学存储介质(例如,磁盘驱动器、磁带、CD、DVD)。在所述实施例中,计算机可读存储介质不包括非法定计算机可读存储介质诸如晶体管信号。
[0018]在一些实施例中,一个或多个硬件模块被配置为执行本文所述的操作。例如,硬件模块可包括但不限于一个或多个处理器/处理器内核/中央处理单元(CPU)、专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、高速缓存/高速缓存控制器、嵌入式处理器、图形处理器(GPU)/图形处理器内核、管线和/或可编程逻辑器件。在激活此类硬件模块时,硬件模块执行一些或全部操作。在一些实施例中,硬件模块包括可通过执行指令(程序代码、固件/微代码等)来进行配置以执行操作的一个或多个通用电路。
[0019]在一些实施例中,表示本文所述的一些或全部结构和机构(例如,一些或全部计算设备100(参见图1))的数据结构被存储在计算机可读存储介质上,该计算机可读存储介质包括数据库或其他数据结构,计算设备可直接或间接读取该数据库或其他数据结构以制造包括结构和机构的硬件。例如,数据结构可以是高级设计语言(HDL)中的硬件功能的行为级别描述或寄存器传输级别(RTL)描述诸如Verilog或VHDL。该描述可由合成工具读取,该合成工具可合成描述以从合成库产生网表,该网表包括门/电路元件的列表,该合成库表示包括上述结构和机构的硬件的功能。然后可放置并路由网表,以产生用于描述要应用到掩模的几何形状的数据集。然后可在各种半导体制造步骤中使用掩模,以产生与上述结构和机构对应的一个或多个半导体电路。作为另外一种选择,计算机可访问存储介质上的数据库可以是期望的网表(具有或没有合成库)或数据集,或者是图形数据系统(GDS)II数据。
[0020]在以下描述中,在描述一些实施例时可参考功能块。通常,功能块包括执行所述操作的一个或多个相关电路(例如,逻辑电路、存储器电路、控制电路等)。在一些实施例中,功能块中的电路包括执行程序代码(例如,机器代码、固件等)以执行所述操作的电路。
[0021]
[0022]在所述实施例中,至少一个应用程序在由执行应用程序的计算设备上的操作系统针对该应用程序所维护的“沙箱”中执行。在这些实施例中,沙箱通常是计算设备上的可由沙箱化应用程序访问的数据和资源中的限制。例如,在一些实施例中,沙箱化应用程序(即,在沙箱的约束内工作的应用程序)被限于访问应用程序自身的数据(例如,文件)和计算设备中的特定资源(例如,计算设备的存储器中的区域等),从而被阻止访问位于沙箱外部的文件和/或资源。所述实施例包括代理应用程序,该代理应用程序实现沙箱化应用程序和工作于计算设备上的其他应用程序(包括其他沙箱化应用程序)之间的介导数据交换。
[0023]为了执行介导数据交换,在一些实施例中,代理应用程序从沙箱化应用程序接收通信,该通信指示沙箱化应用程序希望导入或导出给定类型的数据(例如,文本、文档文件、图像文件/视频文件、流传输文件等)。代理应用程序然后确定计算设备上的已利用代理注册的一个或多个其他应用程序能够处理该类型的数据。接下来,代理应用程序(例如,经由计算设备100的显示器向用户)传送可用的其他应用程序的标识符,并接收用于指示要参与数据的导入或导出的其他应用程序中的一个其他应用程序的响应。代理然后激活其他应用程序并在应用程序之间交换数据。例如,在要从另一个应用程序向沙箱化应用程序中导入数据的情况下,代理应用程序可从所选择的其他应用程序请求数据,接收所请求的数据,并将数据转发至沙箱化应用程序。作为另一个实例,在要从沙箱化应用程序向另一个应用程序导出数据的情况下,沙箱化应用程序可向代理指示数据,并且代理可请求(例如,存储器中的或文件系统的目录中的)位置,以用于放置来自所选择的其他应用程序的数据,然后可在该位置中放置该数据。
[0024]在所述实施例中,在介导数据交换期间,维护用于沙箱化应用程序的沙箱;不允许沙箱化应用程序直接访问位于沙箱外部的数据或资源。相反,代理应用程序(在沙箱内部和外都具有许可)从沙箱化应用程序接收通信并代表沙箱化通信与所选择的其他应用程序进行通信,包括处理往返于沙箱的数据交换。
[0025]如上所述,在所述实施例中,代理应用程序进行介导数据交换,以用于向计算设备上的沙箱化应用程序导入数据或从其导出输入。因为代理应用程序具有简化并已知的接口,所以所述实施例避免了对应用程序和/或操作系统大量定制编程的需求,以使得沙箱化应用程序能够导入或导出数据。
[0026]计算设备
[0027]图1呈现了用于示出根据所述实施例的计算设备100的框图。在图1中可看出,计算设备100包括处理子系统102、存储器子系统104、联网子系统106和显示子系统108。
[0028]处理子系统102是被配置为在计算设备100中执行计算操作的功能块。例如,处理子系统102可包括但不限于一个或多个处理器和/或处理器内核(例如,中央处理单元(CPU)内核、图形处理单元(GPU)内核等)、专用集成电路(ASIC)、微控制器和/或可编程逻辑器件。
[0029]存储器子系统104是被配置为存储供处理子系统102、联网子系统106和/或显示子系统108使用的数据和/或指令的功能块。例如,存储器子系统104可包括但不限于以下各项中的一者或多者:静态随机存取存储器(SRAM)、嵌入式动态随机存取存储器(eDRAM)、DRAM、双倍数据速率同步DRAM(DDR SDRAM)、闪存存储器和/或其他类型的存储器电路以及用于控制对存储器的存取的电路。在一些实施例中,存储器子系统104包括存储器分级体系,该存储器分级体系具有耦接到计算设备100的存储器的一个或多个高速缓存的布置。在这些实施例中的一些实施例中,处理子系统102还包括一个或多个高速缓存。此外,在一些实施例中,存储器子系统104连接到一个或多个高容量海量存储设备(未示出)。例如,存储器子系统104可耦接到磁驱动器或光盘驱动器、固态驱动器、或另一种类型的海量存储设备。
[0030]联网子系统106是被配置为访问、耦接到并在一个或多个有线网络和/或无线网络上进行通信的功能块。例如,联网子系统106可包括但不限于Bluetooth?联网系统、蜂窝联网系统(例如EDGE、UMTS、HSDPA、LTE等)、通用串行总线(USB)联网系统、基于电气和电子工程师协会(IEEE)802.11中所描述的标准的联网系统(S卩802.11无线网络)、以太网联网系统、或者有线或无线个人局域网(PAN)系统(例如基于IEEE 802.15中所述的标准的网络)。联网子系统106可包括:控制器、用于无线网络连接的无线电收发设备/天线、用于硬连线电连接件的插座/插头、和/或用于耦接到有线网络和/或无线网络、在有线网络和/或无线网络上通信、以及处理有线网络和/或无线网络上的数据和事件的其他设备。
[0031]显示子系统108是被配置为在计算设备100的一个或多个界面(例如,显示屏、指示器、发光二极管等)上显示信息(例如,用户界面、图形等)的功能块。例如,显示子系统108可包括但不限于触敏显示屏和电路以及用于在显示屏上显示信息的机构。
[0032]在计算设备100内,处理子系统102、存储器子系统104、联网子系统106以及显示子系统108(统称为“子系统”)通过总线110耦接在一起。总线110包括一个或多个信号线、控制器等,子系统可使用该总线彼此通信。例如,总线110可包括一个或多个分组总线、专用信号线等。
[0033]计算设备100可以是若干种不同类型的设备中的任一种设备或可并入其中。通常,这些设备包括可执行本文所述的操作的任何设备。例如,计算设备100可以台式计算机、膝上型计算机、服务器、媒体播放器、家用电器、小型笔记本计算机/上网本、平板电脑、蜂窝电话、一件测试设备、网络家用电器、机顶盒、个人数字助理(PDA)、智能电话、玩具、控制器、或其他设备是或者可并入这些设备中。
[0034]尽管使用特定数量和布置的子系统描述了实施例,但一些实施例包括不同数量和/或布置的子系统。例如,一些实施例包括两个、四个或不同数量的处理子系统。作为另一个实例,在一些实施例中,计算设备100包括附加子系统。在这些实施例中,计算设备100可包括但不限于一个或多个电力子系统(从一个或多个外部电源、电池等向图示的子系统提供电力)、媒体处理子系统(例如,音频/处理器视频处理器等)和/或输入-输出子系统(键盘
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1