CN102378965A - 用于经由进程间通信共享资源的方法、装置和计算机程序产品 - Google Patents
用于经由进程间通信共享资源的方法、装置和计算机程序产品 Download PDFInfo
- Publication number
- CN102378965A CN102378965A CN2010800151764A CN201080015176A CN102378965A CN 102378965 A CN102378965 A CN 102378965A CN 2010800151764 A CN2010800151764 A CN 2010800151764A CN 201080015176 A CN201080015176 A CN 201080015176A CN 102378965 A CN102378965 A CN 102378965A
- Authority
- CN
- China
- Prior art keywords
- resource
- authority
- sharing
- message
- api
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 329
- 238000004891 communication Methods 0.000 title claims abstract description 124
- 238000004590 computer program Methods 0.000 title claims abstract description 28
- 230000008569 process Effects 0.000 claims abstract description 305
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000007689 inspection Methods 0.000 claims description 9
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 39
- 230000006870 function Effects 0.000 description 33
- 238000003860 storage Methods 0.000 description 29
- 230000007246 mechanism Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 241000264877 Hippospongia communis Species 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
- Stored Programmes (AREA)
Abstract
一种用于经由进程间通信在互连的进程之间共享资源的装置可以包括处理器和存储可执行指令的存储器,该可执行指令响应于被该处理器执行而使得该装置至少执行包括以下操作的操作:从控制一个或多个资源的至少一个第一进程接收请求。该请求可以包括请求对用于与至少第二进程共享该资源的至少一个的一个或多个权限的指派的数据。该指令还可以使得该装置指派用于与该第二进程共享该资源的权限,以及响应于接收到第一消息而从该第二进程移除用于共享该资源的权限。还提供了对应的计算机程序产品和方法。
Description
技术领域
本发明的实施例总体涉及进程间通信,并且更具体地涉及用于以安全和灵活的方式经由进程间通信在一个或多个进程之间共享资源的方法、装置和计算机程序产品。
背景技术
现代通信时代已经带来了有线和无线网络的巨大扩张。计算机网络、电视网络和电话网络正经历由消费者需求引发的前所未有的技术扩张。无线和移动联网技术已经满足了相关的消费者需求,同时提供了对信息传输的更多灵活性和即时性。
当前和未来的联网技术持续促进信息传输的简便性和对用户的便利性。存在增加信息传输的简便性和对用户的便利性的需求的一个领域涉及在不同进程(例如计算机程序的实例)之间共享资源。这些进程可能彼此互连并且可以在单个电子设备上执行或者可以在多个电子设备上执行。在进程之间共享资源的益处的一个示例是:此类共享允许同时执行来自不同进程的一个或多个指令,这促进了对电子设备中的资源的高效使用。在互连的进程之间共享资源的益处的另一示例是:其允许不同的进程共享存储器中的相同的指令集以便节省电子设备中的存储空间。
涉及在进程之间共享资源的现有解决方案通常包括向进程提供文件描述符。在此方面,文件描述符可以充当用于经由进程间通信访问待共享的资源(诸如文件、目录、存储器等)的关键字。然而,涉及在进程之间共享资源的现有解决方案具有非常不灵活的缺点。例如,UNIX域套接字(socket)可以被用于在一个或多个进程之间发送数据,并且这些进程可以跨使用具有软件配置管理(SCM)权限的sendmsg()和recvmsg()系统调用的UNIX域套接字连接而向彼此发送用于共享资源的文件描述符。然而,诸如使用具有SCM权限的sendmsg()和recvmsg()函数的UNIX域套接字之类的现有解决方案通常并不提供在进程间通信已经结束之后终止对资源的使用的任何机制。并且,不存在当资源被共享之后限制从一个进程到另一进程的资源传递的合适的机制。照这样,当前不存在用于限制这些资源可以在进程之间共享多长时间的合适的机制。换言之,当授予对这些资源的访问时,该访问通常被无期限地授予,并且不存在当向进程授予对共享资源的访问权限之后移除该访问权限的合适的机制,并且通常即使在进程之间的连接被移除时也是这样的情况。
使用用于授予对共享资源的访问的现有解决方案的另一缺点是这些解决方案与特定的协议和应用编程接口(API)(诸如使用具有SCM权限的sendmsg()和recvmsg()函数调用的UNIX域套接字)紧密地耦合或联系。对该特定协议和API的使用迫使重写与互连的进程相关的全部通信以符合该特定协议和API,这通常是不期望的并且可能导致资源的低效使用。在此方面,现有解决方案可能迫使应用使用用于访问共享资源的特定API(例如UNIX域套接字)而不是该应用或进程通常将对此类资源使用的API。例如,UNIX API例如可以使用特殊的“dup()”函数调用来访问共享资源,而通常的API可以使用通常的open()函数来访问资源。当使用UNIX API时,可能需要将通常的open()函数重写或改变为对应于UNIX API的另一函数,诸如例如特殊的“dup()”函数调用。更重要地,由于传统的UNIX系统是多用户设备,所以对访问控制机制的使用通常被限制为将不同用户的进程和资源对彼此保护。相比之下,任何移动设备通常是单用户设备(例如个人设备),因此在UNIX系统中所使用的传统的访问控制机制通常不适用。因此,需要用于将进程及其资源对彼此保护的新的访问控制机制。由于对UNIX标准(例如Unix便携操作系统接口(POSIX))和移动设备中的基于UNIX的操作系统(例如Linux操作系统(OS)和Berkeley软件分布(BSD)OS变体)的广泛采用,该改变的重要性已经增加。
因此,可能期望提供通过其经由进程间通信共享资源的不同的机制,以允许以安全和灵活的方式在互连的进程之间共享资源。
发明内容
因此,提供了用于以安全和灵活的方式在电子设备的互连的进程之间共享资源的方法、装置和计算机程序产品。如这里所指代的,进程可以涉及可由处理器、控制器等执行的应用、一个或多个程序实例、软件代码、软件指令、算法等。示例性实施例促进从针对利用sendmsg()和recvmsg()函数调用的进程间通信协议的UNIX API解耦的对进程的资源的访问权限的授予。同样地,可以在任何时间移除对进程的资源的访问权限,并且当进程间通信被终止时,可以拒绝对已经打开的资源的任何操作(例如读取和写入操作)。
示例性实施例可以将对资源的访问权限链接到开路进程间通信信道,并且可以提供经由进程间通信信道共享资源的安全和灵活的方式。示例性实施例的机制并不特定于并且并不要求使用UNIX API的sendmsg()和recvmsg()函数调用,并且在此方面,可以比现有解决方案更广泛地利用示例性实施例的进程间通信的机制,这是由于现有解决方案通常要求互连的进程之间的全部通信在特定的协议和API(例如UNIX域套接字)中发生,这可能要求对与进程相关联的代码进行重写以便符合UNIX协议和API。
应当指出,示例性实施例的操作系统(OS)应用编程接口(API)可以保证只有进程间通信信道上的单个进程可以访问资源。另外,可以在任意时间向一个或多个进程添加或从一个或多个进程移除对资源的访问权限。被指定为拥有或控制资源的进程可以指定远程点设备向另一进程传递与资源相关联的访问权限。以类似的方式,拥有或控制资源的进程可以禁止远程点设备向任何其他进程传递对资源的访问权限。另外,根据示例性实施例,当进程间通信信道关闭时,可以移除对任何资源的全部访问权限,并且对已经打开的资源的任何访问(例如读取和/或写入访问)可能被终止。
在示例性实施例中,提供了一种在互连的进程之间共享资源的方法。该方法可以包括:从控制一个或多个资源的至少一个第一进程接收请求。该请求可以包括请求对用于与至少第二进程共享该资源的至少一个的一个或多个权限的指派的数据。该方法还可以包括指派用于与该第二进程共享该资源的权限,以及响应于接收到第一消息而从该第二进程移除用于共享该资源的权限。
在另一示例性实施例中,提供了一种用于在互连的进程之间共享资源的计算机程序产品。该计算机程序产品包括具有存储在其中的计算机可执行程序代码指令的至少一个计算机可读存储介质。该计算机可执行程序代码指令可以包括:用于使得从控制一个或多个资源的至少一个第一进程接收请求的程序代码指令。该请求可以包括请求对用于与至少第二进程共享该资源的至少一个的一个或多个权限的指派的数据。该程序代码指令还可以提供指派用于与该第二进程共享该资源的权限,以及响应于接收到第一消息而从该第二进程移除用于共享该资源的权限。
在另一示例性实施例中,提供了一种用于在互连的进程之间共享资源的装置。该装置可以包括处理器和存储可执行指令的存储器,该可执行指令响应于由该处理器执行而使得该装置至少执行包括以下操作的操作:从控制一个或多个资源的至少一个第一进程接收请求。该请求可以包括请求对用于与至少第二进程共享该资源的至少一个的一个或多个权限的指派的数据。该指令还可以使得该装置指派用于与该第二进程共享该资源的权限,以及响应于接收到第一消息而从该第二进程移除用于共享该资源的权限。
本发明的实施例可以提供用于以安全和灵活的方式在彼此之间共享资源的方法、计算机程序产品和装置。作为结果,例如,设备用户可以享受用于经由进程间通信信道获得资源的改进的能力。
附图说明
已经概括地描述了本发明,现在将参考附图,该附图并不一定按比例绘制,并且其中:
图1图示了根据本发明的示例性实施例的通信系统的一个示例;
图2图示了根据本发明的示例性实施例的用于经由进程间通信共享资源的装置的示意框图;
图3图示了根据本发明的示例性实施例的经由进程间通信共享对资源的访问权限;
图4为与根据本发明的示例性实施例的用于经由进程间通信共享存储器的方法相关的信号流图;以及
图5为与根据本发明的示例性实施例的用于经由进程间通信共享文件的方法相关的信号流图;
具体实施方式
现在将参考附图在下文更完整地描述本发明的实施例,在附图中示出了本发明的一些而不是全部实施例。实际上,可以按照许多不同的形式体现本发明,并且本发明不应被理解为限于在此所阐明的实施例;相反,提供这些实施例以使得本公开将满足适用的法律要求。在全文中相似的参考标号指代相似的元素。如这里所使用的,术语“数据”、“内容”、“信息”以及类似的术语可以被可交换地使用以指代根据本发明的实施例的能够被传递、接收和/或存储的数据。此外,如这里所使用的,术语“示例性”并非被提供以传达任何定性评估,而是仅仅传达对示例的例示。因此,对任何此类术语的使用不应被理解为限制本发明的实施例的精神和范围。
图1图示了通用系统图,其中在示例性通信环境中示出了诸如移动终端10之类的设备。如图1中所示,根据本发明的示例实施例的系统的实施例可以包括能够经由网络30彼此通信的第一通信设备(例如移动终端10)和第二通信设备20。在一些情况下,本发明的实施例可以进一步包括一个或多个附加的通信设备,其中一个在图1中被描绘为第三通信设备25。在一些实施例中,并非所有采用本发明的实施例的系统都可以包括这里所图示和/或所描述的全部设备。虽然可以出于示例的目的图示并且在下文中描述移动终端10和/或第二和第三通信设备20和25的若干实施例,但诸如便携式数字助理(PDA)、传呼机、移动电视、移动电话、游戏设备、膝上型计算机、照相机、录像机、音频/视频播放器、无线电、全球定位系统(GPS)设备、蓝牙头戴式耳机、通用串行总线(USB)设备或前述的任何组合之类的其他类型的终端,以及其他类型的语音和文本通信系统,可以容易地采用本发明的实施例。此外,诸如服务器和个人计算机之类的非移动的设备也可以容易地采用本发明的实施例。
网络30可以包括可以经由相应的有线和/或无线接口彼此通信的各种不同的节点(第二和第三通信设备20和25可以是其示例)、设备或功能的汇集。照这样,图1的图示应当被理解为系统的特定元件的广义的视图的示例,而不是系统或网络30的包含全部的或详细的视图。虽然不是必要的,但在一些实施例中,网络30可能能够支持根据以下的一种或多种进行通信:多个第一代(1G)、第二代(2G)、2.5G、第三代(3G)、3.5G、3.9G、第四代(4G)移动通信协议、长期演进(LTE)等。在一些实施例中,网络30可以是点对点(P2P)网络。
诸如移动终端10以及第二和第三通信设备20和25之类的一个或多个通信终端可以经由网络30彼此通信,并且其中每个可以包括用于向基站点发送信号和从基站点接收信号的一个或多个天线,该基站点例如可以是作为一个或多个蜂窝或移动网络的一部分的基站或可以与数据网络(诸如局域网(LAN)、城域网(MAN)和/或诸如因特网之类的广域网(WAN))耦合的接入点。反过来,诸如处理元件之类的其他设备(例如个人计算机、服务器计算机等)可以经由网络30与移动终端10以及第二和第三通信设备20和25耦合。通过将移动终端10以及第二和第三通信设备20和25(和/或其他设备)直接或间接地与网络30连接,可以使得移动终端10以及第二和第三通信设备20和25能够例如根据许多通信协议(包括超文本传输协议(HTTP)等)而与其他设备通信或彼此通信,从而分别执行移动终端10以及第二和第三通信设备20和25的各种通信或其他功能。
此外,虽然未在图1中示出,但移动终端10以及第二和第三通信设备20和25可以根据例如射频(RF)、蓝牙(BT)、红外(IR)或多个不同的有线或无线通信技术(包括LAN、无线LAN(WLAN)、全球互通微波存取(WiMAX)、WiFi、超宽带(UWB)、Wibree技术等)的任意技术来通信。照这样,可以使得移动终端10以及第二和第三通信设备20和25能够通过许多不同的访问机制中的任意访问机制与网络30通信以及彼此通信。例如,可以支持诸如宽带码分多址(W-CDMA)、CDMA2000、全球移动通信系统(GSM)、通用分组无线服务(GPRS)等之类的移动接入机制,以及诸如WLAN、WiMAX等之类的无线接入机制和诸如数字订户线路(DSL)、线缆调制解调器、以太网等之类的固定接入机制。另外,应当指出,移动终端10以及第二和第三通信设备20和25可以经由一个或多个通信信道来彼此通信。在此方面,移动终端10以及第二和第三通信设备20和25可以利用被指定为进程间通信信道的一个或多个通信信道来在可以在移动终端10以及第二和第三通信设备20和25内执行一个或多个进程以及可以位于移动终端10以及第二和第三通信设备20和25外部的一个或多个进程之间共享资源。
在示例性实施例中,第一通信设备(例如移动终端10)可以是移动通信设备(诸如例如个人数字助理(PDA)、无线电话、移动计算设备、照相机、录像机、音频/视频播放器、定位设备、游戏设备、电视设备、无线电设备或各种类似设备或其组合)。第二通信设备20可以是移动或固定通信设备。然而,在一个示例中,第二通信设备20可以是诸如个人计算机(PC)或膝上计算机之类的远程计算机或终端。
在示例性实施例中,网络30可以是被布置为智能空间的自组织(ad hoc)或分布式网络。因此,设备可以进入和/或离开网络30,并且网络30的设备可能能够基于其他设备的进入和/或退出来调整操作以导致相应设备或节点及其相应的能力的添加或减去。在示例性实施例中,与网络30通信的设备中的一个或多个设备可以采用进程间引擎来辅助促进在设备(例如移动终端10、第二和第三通信设备20和25)上执行的一个或多个互连的进程(例如应用程序、程序的示例等)之间的资源共享。进程间引擎可以促进以安全和灵活的方式进行的互连的进程之间的资源(诸如一个或多个文件、一个或多个存储器或存储器对象、一个或多个目录和/或一个或多个套接字和其他本地资源)的共享。照这样,例如设备的进程可以利用进程间引擎来从另一设备请求一个或多个资源并且设备的进程还可以利用进程间引擎来拒绝对一个或多个资源的访问。在示例性实施例中,移动终端10以及第二和第三通信设备20和25可以被配置为包括进程间引擎。如以上所指示,在示例性实施例中,进程可以对于特定设备是本地的,并且照这样进程间引擎可以与到图1的网络30的任何连接有关或无关地促进进程或应用之间的资源共享,并且因此图1应当被理解为提供可以在通常可以发现采用本发明的实施例的某些设备的典型环境内的此类设备的一个示例。
图2图示了根据本发明的示例性实施例的用于促进以安全和灵活的方式在互连的进程之间共享一个或多个资源的装置的示意框图。现在将参考图2描述本发明的示例性实施例,在图2中显示了用于促进在互连的进程之间共享一个或多个资源的特定元件。例如可以在移动终端10(和/或第二通信设备20或第三通信设备25)上采用图2的装置50。备选地,可以在网络30的网络设备上体现装置50。然而,可以备选地在移动和固定两者的多种其他设备(诸如例如上面所列出的设备的任意设备)处体现装置50。在一些情况下,可以在设备的组合上采用实施例。相应地,本发明的一些实施例可以完全在单个设备(例如移动终端10)处体现、由多个设备以分布式的方式(例如在P2P网络中的一个或多个设备上)体现、或由处于客户端/服务器关系的设备体现。进一步地,应当注意,下面所描述的设备或元件可能不是必不可少的,并且因此在特定实施例中可以省略该设备或元件中的一些设备或元件。
现在参考图2,其提供了用于促进在互连的进程之间共享一个或多个资源的装置50。装置50可以包括处理器70、用户接口72、通信接口74和存储器设备76,或者装置50可以与处理器70、用户接口72、通信接口74和存储器设备76通信。存储器设备76可以包括例如易失性和/或非易失性存储器。存储器设备76可以被配置为存储信息、数据、文件、目录、应用、一个或多个进程(例如进程83)、指令等以使得该装置能够执行根据本发明的示例性实施例的各种功能。例如,存储器设备76可以被配置为缓冲输入数据以供由处理器70处理。附加地或备选地,存储器设备76可以被配置为存储指令以供由处理器70执行。作为又一备选,存储器设备76可以是存储信息和/或媒体内容的多个数据库之一。
可以按照数种不同的方式体现处理器70。例如,可以作为诸如处理元件、协处理器、控制器或多种其他处理设备(包括诸如例如ASIC(专用集成电路)、FPGA(现场可编程门阵列)、硬件加速器等的集成电路)之类的各种处理装置来体现处理器70。在示例性实施例中,处理器70可以被配置为执行存储在存储器设备76中或以其他方式对处理器70可访问的指令。照这样,不论通过硬件还是软件方法还是通过它们的组合来进行配置,处理器70都可以表示能够在被相应地配置时执行根据本发明的实施例的操作的实体(例如在电路中物理地体现)。因此,例如,当处理器70体现为ASIC、FPGA等时,处理器70可以是用于实施这里所描述的操作的具体配置的硬件。备选地,作为另一示例,当处理器70体现为软件指令的执行器时,指令可以具体地配置处理器70以执行这里所描述的算法和操作,如果处理器70不是用于由指令所提供的具体配置,则处理器70还可以是通用处理元件或其他功能性可配置电路。然而,在一些情况下,通过由用于执行这里所描述的算法和操作的指令进一步配置处理器70,处理器70可以是适应用于采用本发明的实施例的具体设备(例如移动终端)的处理器。
同时,通信接口74可以是被配置为从网络和/或与装置50通信的任何其他设备或模块接收数据和/或向网络和/或与装置50通信的任何其他设备或模块发送数据的诸如在硬件、软件或硬件和软件的组合中体现的设备或电路之类的任何装置。在此方面,通信接口74可以包括例如用于使能与无线通信网络(例如网络30)的通信的天线(或多个天线)以及支持硬件和/或软件。通信接口74可以经由一个或多个通信信道接收和/或传递数据。在此方面,通信接口74可以但并不必须经由被指定为进程间通信信道的通信信道来在互连的进程之间传递或提供一个或多个资源。在固定环境中,通信接口74可以备选地支持有线通信或还支持有线通信。照这样,通信接口74可以包括用于支持经由线缆、数字订户线路(DSL)、通用串行总线(USB)、以太网或其他机制的通信的通信调制解调器和/或其他硬件/软件。
用户接口72可以与处理器70通信以接收在用户接口72处输入的用户指示和/或向用户提供听觉、视觉、机械或其他输出。照这样,用户接口72可以包括例如键盘、鼠标、操纵杆、显示器、触摸屏、麦克风、扬声器或其他输入/输出机构。在装置体现为服务器或一些其他网络设备的示例性实施例中,用户接口72可以是有线的、位于远端的、或被排除的。
在示例性实施例中,处理器70可以被体现为、包括或否则控制进程间引擎80。进程间引擎80可以是诸如根据软件操作或以其他方式在硬件或硬件和软件的组合中体现的设备或电路之类的任何装置(例如在软件控制下操作的处理器70、体现为被具体配置以执行这里所描述的操作的ASIC或FPGA的处理器70、或它们的组合),从而配置设备或电路以执行如下面所描述的进程间引擎80的相应的功能。因此,在采用软件的示例中,执行软件的设备或电路(例如一个示例中的处理器70)形成与此类装置相关联的结构。在此方面,例如,进程间引擎80可以被配置为提供以安全和灵活的方式在互连的进程之间共享一个或多个资源以及其他功能。
在一些实施例中,进程间引擎80可以与一个或多个进程82和84(这里也被称作应用)通信。虽然图2的示例性实施例示出了进程间引擎80可以与两个进程(即进程82和84)通信,但应当指出,进程间引擎80可以与任意数目的进程通信而不会背离本发明的精神和范围。例如,如上所述,存储器设备76可以包括一个或多个进程(例如进程83),并且进程间引擎80可以与存储器设备76的进程以及任何其他进程通信。进程82和84可以但并不必须位于装置50(例如移动终端10)外部,并且在此方面,进程82和84可以经由通信接口74(更具体地经由诸如例如进程间通信信道的通信信道)与进程间引擎80(和/或处理器70)通信。在示例性实施例中,进程82和84两者可以位于第二通信设备20处或第三通信设备25处。备选地,进程82可以位于第二通信设备20处而进程84可以位于第三通信设备25处。然而,还应当指出,进程82可以位于第三通信设备25处而进程84可以位于第二通信设备20处。
此外,应当指出,示例实施例的进程可以经由进程间引擎80与操作系统(OS)应用编程接口(API)85通信,操作系统(OS)应用编程接口(API)85可以协调与在一个或多个进程之间的资源共享相关联的活动。OS API 85可以在计算机程序产品中体现为存储在通信设备(例如移动终端10和/或第二和第三通信设备20和25)的存储器中并且由处理器70执行的指令。备选地,OS API 85可以体现为处理器70(例如FPGA、ASIC等)。另外,OS API 85可以是根据软件操作或以其他方式在硬件或硬件和软件的组合中体现从而配置电路或设备以执行如这里所描述的OS API 85的相应的功能的任何设备或电路。虽然OS API 85被示出为位于图2中的装置50的外部,但应当指出,OS API 85可以位于装置50的内部而不背离本发明的精神和范围。
OS API 85可以被配置为向进程提供对服务或数据的访问,并且可以通过利用系统调用来在进程之间传递或提供参数和对一个或多个资源的访问权限。OS API 85可以从请求将对相应进程的一个或多个资源的访问权限授予另一进程或从另一进程移除的一个或多个进程接收一个或多个调用(或调用函数)。在此方面,OS API 85可以将对可以由一个进程(例如进程83)控制的一个或多个资源的访问权限指派至另一进程(例如进程82)从而使得可以由这些进程共享资源。以类似的方式,OS API 85可以移除被授予至进程的对一个或多个资源的访问权限。在此方面,OS API 85可以关闭促进进程之间的对一个或多个资源的共享的通信信道。当OS API 85关闭通信信道时,可以移除对所共享的资源的全部访问权限,并且可以终止在所述资源上的任何未决的或未来的操作。应当指出,可以由进程间引擎80生成由OS API 85接收的调用或消息。
另外,应当指出,OS API 85可以与一个或多个操作系统通信。在此方面,OS API 85可以与不同的操作系统通信,该不同的操作系统包括但不限于与Unix便携操作系统接口(POSIX)标准完全或部分兼容的任何OS、Linux OS、Unix OS、Berkeley软件分布(BSD)OS、微软Windows OS、Mac OS或任何其他合适的操作系统。在示例性实施例中,可以利用OS API 85以允许即使进程中的一些或全部可以在不同的操作系统中执行,示例性实施例的进程仍彼此通信。例如,可以按照允许OS API 85独立于特定操作系统而操作的方式编写与OS API 85相关联的软件。
装置50的进程间引擎80可以被配置为打开一个或多个进程(例如进程83)之间的本地套接字连接并且生成对由进程(例如进程83)拥有或控制的一个或多个资源的访问权限,并且可以向OS API 85发送或传递该访问权限以使得可以与另一进程(例如进程82)共享该资源。例如,如上所述,由进程间引擎80生成的访问权限可以由OS API 85接收,并且OS API 85可以向另一进程指派该访问权限,这允许在进程之间共享一个或多个资源。另外,进程间引擎80可以移除赋予进程的先前授予的对资源的访问权限,并且终止在其上的任何未决的或未来的操作。在此方面,进程间引擎80可以向OS API85发送或传递请求,以终止对由进程拥有或控制的资源的访问权限,并且在此方面,OS API 85可以移除先前授予至进程的对资源的访问权限。在此方面,当由OS API 85移除被赋予进程的对资源的访问权限时,该访问权限被终止并且对当前正在由该进程使用的这些资源的任何未决的操作被终止。还应当指出,如下面更完整地描述的那样,进程间引擎80可以利用一个或多个函数调用来发送用于允许对一个或多个资源的访问权限的请求、或终止由OS API 85接收的对一个或多个资源的访问权限。
图3图示了涉及经由进程间通信由一个或多个进程共享对资源的访问权限的示例性实施例。在图3的示例性实施例中,应当指出,进程87、88和89可以由诸如例如装置50的单个设备维护。备选地,进程87、88和89中的每个可以由移动终端10、第二通信设备20和第三通信设备25中的任何一个来维护。另外,应当指出,通信信道71(在这里也被称作授权进程间通信信道)是打开的,并且在此方面,进程87、88和89可以经由通信信道71彼此通信以及与OS API85通信。资源81可以包括但不限于一个或多个存储器或存储器对象、一个或多个文件、一个或多个目录、一个或多个套接字或任何其他合适的资源。如由进程87与资源81的通信所表示的那样,进程87可以拥有或控制一个或多个资源81,并且在此方面,与维护进程87的设备(例如移动终端10)相关联的进程间引擎80可以生成对资源81的访问权限,该访问权限允许进程88和89与进程87共享资源81。
在此方面,进程间引擎80可以经由通信信道71向OS API 85发送请求78,该请求指令OS API 85允许资源81由进程88和89共享。在此方面,OS API 85可以向进程88和89指派对资源81的访问权限。OS API 85可以分别通过向进程88和89发送通信73和75来向进程88和89通知每个进程具有用于共享资源81的访问权限。在此方面,进程88和89可以是资源81的使用者。虽然未在图3中示出,但进程间引擎80还可以向OS API 85发送用于终止由进程88和89共享资源81的请求,并且在此方面,OS API 85可以移除用于使用资源81的访问权限,这可以终止对于进程88和89的对资源81的访问。照这样,如果进程88和89正在执行要求对资源81(例如存储器)的访问的操作(例如读取和/或写入操作),则这些操作可能失败。另外,在备选的示例性实施例中,应当指出,当进程87、88和89中的每个由分立的设备维护时,维护进程88和89的设备(例如第二和第三通信设备20和25)可以是能够在例如大约10米的距离与其他设备(例如可以维护进程87的移动终端10)交换数据的近场通信设备。
现在参考图4,其提供了根据示例性实施例的经由进程间通信共享资源(诸如例如存储器或存储器对象)的机制的信号流。应当指出,图4中被描述为正在被共享的资源的存储器是出于例示而非限制的目的,并且在此方面,图4的资源可以包括但不限于一个或多个文件、一个或多个目录、一个或多个管道(例如套接字)或任何其他本地资源。根据该实施例,在步骤1中,进程1和2(例如分别为进程83和82)可以各自打开本地套接字以便经由开路进程间通信信道(例如进程间通信信道71)进行通信。应当指出,关于图4描述的与进程1和2相关联的功能中的每个可以由诸如进程间引擎80之类的进程间引擎来执行。在步骤2中,进程1可以确定其希望共享在其控制下的诸如存储器或存储器对象之类的一个或多个资源,并且在此方面,进程1可以请求OS API生成用于打开和创建名称为“myregion”的共享存储器(shm)的文件描述符(fd)。OS API可以授予进程1对存储器的读取和/或写入(RDWR)访问权限。这保证了进程1自身在能够将对打开的资源的访问权限传递至其他进程之前已经要求了对该打开的资源的访问权限。在步骤3中,进程1可以生成指定名称为“myregion”的共享存储器的尺寸的调用函数,并且可以向OS API发送该调用函数。
在步骤4中,进程1可以请求OS API将“myregion”共享存储器映射到进程1的虚拟存储器。OS API可以将存储器地址(例如经由“rptr”指针)返回到映射的共享存储器。该示例中的访问权限与从共享存储器读取和/或向共享存储器写入相关。在步骤5中,进程1可以向进程间通信信道指派描述符,该描述符向进程间通信信道指派存储器以使得可以向另一进程(例如进程2)传递该存储器或与该另一进程共享该存储器。同时,进程1可以定义进程2对共享存储器的访问权限(例如只读、只写或读和写两者,例如“O_RDWR”)、对共享存储器的访问权限是否绑定到进程间通信连接的寿命(例如“bnd”布尔值)、以及进程2是否可以向另一进程传递对该资源的访问权限(例如“fwd”布尔值)。应当指出,可以例如通过提供各自包含全部以上信息(描述符、访问权限、访问权限的寿命、传递访问权限的能力)的数据结构的阵列来同时授予对多个资源的访问权限。另外,应当指出,访问权限、访问权限的寿命以及将它们传递至另一进程的能力可以在任何时间改变(尽管其通常要求关于这种情况应当何时发生的进程之间的一些达成一致的协议/行为),例如,进程1可以在其偏好的任何时间改变对共享存储器的访问权限。
在步骤6中,OS API可以通过使用进程间通信信道来向进程2指派用于从存储器“myregion”读取和向存储器“myregion”写入的访问权限。在指派之前,OS API可以检查所请求的访问权限是进程1对该共享的资源已经具有的那些访问权限。在此方面,OS API是可以向一个或多个远程进程指派对资源的访问权限的新的API。在步骤7中,进程2可以从OS API请求指示或验证其具有对共享存储器“myregion”的访问并且指定其具有读取和/或写入访问权限的文件描述符(fd)。在步骤8中,OS API可以检查以保证进程2具有对名称为“myregion”的存储器的访问权限。可选地,在步骤9中,如果OS API确定进程2具有对该存储器的访问权限,则OS API可以生成包含指定进程2具有对该存储器的权限并且指定该存储器被成功地打开的数据的文件描述符。OS API可以向进程2发送该文件描述符。该文件描述符还可以提供到存储器的指针并且可以指示存储器的尺寸。应当指出,如果OS API确定进程2不具有对该存储器的任何访问权限,则该存储器的打开可能失败并且OS API可以向进程2发送指示进程2不具有对该存储器的访问权限的文件描述符(未示出)。在步骤10中,进程2可以请求OS API将“myregion”共享存储器映射到进程2的虚拟存储器。进程2还可以指定其希望具有对共享存储器的读取和/或写入访问权限。在步骤11中,OS API可以允许进程1和进程2两者取决于所授予的访问权限来读取和写入共享存储器。
在步骤12中,进程2可以请求OS API将共享存储器从其虚拟存储器去映射。在步骤13中,进程2可以请求OS API通过提供共享存储器的文件描述符来释放共享存储器(例如以停止对共享存储器的共享)。响应于接收到close(fd)调用,在步骤14中,进程1可以请求OS API通过提供共享存储器的文件描述符来从进程间通信信道移除对共享存储器的任何访问权限。知晓进程2何时停止存储器的共享的实际方式并不特别相关。例如,当进程2经由进程间通信信道向进程1发送指示使用结束的消息时,存储器的共享可以被停止。应当指出,进程1可以与由OS API接收到从进程2发送的指示进程2希望释放或去链接共享存储器的包含文件描述符的任何调用或消息无关,而从进程间通信信道移除对存储器的访问权限,以使得存储器可能不再对共享可用。例如,进程1可以在任意给定时间移除对共享存储器的访问权限。另外,应当指出,进程1可以拒绝由进程2进行的用于获得对由进程1控制的存储器或任何其他资源的访问的任何请求。
在步骤15中,响应于接收到用于从进程间通信信道移除共享存储器的请求,OS API可以从进程2移除与读取和写入共享存储器“myregion”相关的访问权限。在此方面,OS API是可以从一个或多个远程进程移除或去指派对资源的访问权限的新的API。
在步骤16中,进程1可以请求OS API从其虚拟存储器去映射存储器“myregion”,并且可以提供到待去映射的存储器的指针。在步骤17中,进程1可以请求OS API去链接与进程2共享的存储器。在此方面,从进程2移除与由进程1控制的存储器相关的全部访问权限。在步骤18中,进程1可以请求OS API释放共享存储器。照这样,由进程2进行的对存储器的访问权限(例如读取和/或写入)的任何后续调用可能失败,并且与由进程2使用该存储器相关联的任何操作可能失败,除非进程2已经被赋予传递该资源的权限(例如通过“fwd”布尔值)。
现在参考图5,其提供了根据示例性实施例的用于经由进程间通信共享一个或多个资源(诸如例如文件)的信号流。应当指出,在图5中被描述为正在被共享的资源的文件是出于例示而非限制的目的,并且在此方面,图5的资源可以包括但不限于存储器、存储器对象、一个或多个目录、一个或多个管道(例如套接字)或任何其他本地资源。根据该实施例,在步骤1中,进程1和2(例如分别为进程83和82)可以各自打开本地套接字以便经由开路进程间通信信道(例如进程间通信信道71)进行通信。应当指出,关于图5所描述的与进程1和2相关联的功能中的每个可以由诸如进程间引擎80之类的进程间引擎执行。在步骤2中,进程1可以确定其希望允许与一个或多个其他进程共享文件。在此方面,进程1可以请求OS API(例如OS API 85)对于特定的访问类型(例如读取、写入、或读取和写入两者)打开进程1所拥有或控制的名称为“myfile”的文件。如果进程1对于该文件具有适当的访问权限(例如读取、写入或读取和写入两者),则OS API可以生成文件描述符(fd)并且将其返回到进程1。这保证了进程1在能够将对该文件的适当访问权限中的任意访问权限传递至另一进程之前其具有该访问权限。在步骤3中,进程1可以请求OS API指派对待经由进程间通信信道共享的该文件的特定的访问权限(例如对于读取和写入访问的“O_RDWR”),以使得该文件可以被传递至进程2或对进程2可访问,以使得该文件可以使用这些访问权限被共享。并且,进程1可以限制所传递的访问权限是否绑定到开路进程间通信信道的寿命(例如通过使用“bnd”布尔值)以及进程2是否可以向另一进程传递这些访问权限(例如通过使用“fwd”布尔值)。另外,应当指出,访问权限、访问权限的寿命以及将它们传递至另一进程的能力可以在任何时间被改变(即使其通常要求关于此类情况应当何时发生的进程之间的一些达成一致的协议/行为),例如,进程1可以在其偏好的任何时间改变对该文件的访问权限。
在步骤4中,OS API可以向进程2指派对名称为“myfile”的文件的诸如例如读取和/或写入访问权限的访问权限,该进程2是进程间通信信道的远程点。在此方面,OS API是可以向一个或多个远程进程指派对资源的访问权限的新的API。在步骤5中,进程2可以请求OS API打开名称为“myfile”的文件并且请求授予对该文件的读取/写入访问权限。在步骤6中,OS API可以执行检查以确定进程2具有对所请求的名称为“myfile”的文件的访问权限。应当指出,OS API可以执行该检查,这是因为进程2通常不具有对该文件的访问权限。可选地,在步骤7中,如果OS API确定进程2具有对该文件的访问权限,则OS API可以生成包含指示进程2具有访问权限并且指示对该文件的打开成功的信息的文件描述符。在此方面,OSAPI可以向进程2发送该文件描述符。应当指出,如果OS API确定进程2不具有对该文件的任何访问权限,则对该文件的打开可能失败,并且OS API可以向进程2发送指示进程2不具有对该文件的访问权限的无效文件描述符(例如未示出的“-1”)。在步骤8中,OS API可以允许进程2读取和写入名称为“myfile”的文件,这是因为OS API确定进程2具有对该文件的访问权限。在步骤9中,当进程2不再要求对共享文件的访问时,进程2可以生成close(fd)调用以关闭该文件或释放对该文件的使用,并且可以向OS API发送该close(fd)。在步骤10中,响应于接收到close(fd)调用,进程1可以从进程间通信信道移除对该文件的任何访问权限,以使得该文件不再对共享可用。知晓进程2何时关闭了该文件的实际方式并不特别相关。例如,当进程2经由进程间通信信道向进程1发送指示该文件的关闭的消息时,该文件可以被关闭。应当指出,进程1可以与从进程2接收到指示进程2不再要求对共享文件的访问的任何调用或消息无关,而从进程间通信信道移除对该文件的任何访问权限,以使得该文件可能不再对共享可用。例如,进程1可以在任意给定时间移除对共享文件的访问权限。另外,进程1可以拒绝由进程2进行的用于获得对由进程1控制的文件或任何其他资源的访问的任何请求。
在步骤11中,OS API可以从进程间通信信道移除对名称为“myfile”的文件的读取和/或写入权限。这可以从进程2移除对该文件的全部访问。照这样,由进程2进行的对该文件的访问权限(例如读取和/或写入)的任何后续调用可能失败,并且与由进程2使用该文件相关联的任何操作可能失败。在此方面,OS API是可以从一个或多个远程进程移除或去指派对资源的访问权限的新的API。在步骤12中,进程1可以生成close(fd)调用以关闭对该文件的访问。
应当指出,图4和5是根据本发明的示例性实施例的系统、方法和计算机程序产品的流程图。将理解,流程图的每个块或步骤以及流程图中的块的组合可以通过多种手段实现,该多种手段诸如硬件、固件、处理器、电路和/或与包括一个或多个计算机程序指令的软件的执行相关联的其他设备。例如,可以通过计算机程序指令来体现上述过程中的一个或多个过程。在此方面,体现上述过程的计算机程序指令可以由移动终端或网络设备的一个或多个存储器设备存储,并且由移动终端或网络设备中的处理器执行。在一些实施例中,可以由多个计算设备的存储器设备存储体现上述过程的构成计算机程序产品的计算机程序指令。如将理解的那样,可以将任何此类计算机程序指令加载在计算机或其他可编程装置(即硬件)上以产生机器,从而使得在计算机或其他可编程装置上执行的指令创建用于实现流程图中所指定的功能的装置。这些计算机程序指令也可以存储在计算机可读存储器中,该计算机程序指令可以引导计算机或其他可编程装置以特定的方式工作,从而使得存储在计算机可读存储器中的指令产生包括实现在流程图中所指定的功能的指令装置的制品。也可以将计算机程序指令加载至计算机或其他可编程装置上以使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令提供用于实现流程图中所指定的功能的步骤。
相应地,流程图的块或步骤支持对用于执行所指定的功能的装置的组合、对用于执行所指定的功能的步骤的组合以及用于执行所指定的功能的程序指令装置。同样将理解,可以由执行所指定的功能或步骤的基于专用硬件的计算机系统或专用硬件和计算机程序产品的组合来实现流程图的一个或多个块或步骤以及流程图中的块或步骤的组合。
可以按照许多方式执行上述的功能。例如,可以采用用于执行上述每个功能的合适的装置来执行本发明的实施例。在一个实施例中,合适地配置的处理器可以提供本发明的元件中的全部或部分。在另一实施例中,本发明的元件的全部或部分可以通过计算机程序产品来配置以及在计算机程序产品的控制之下操作。用于执行本发明的实施例的方法的计算机程序产品可以包括诸如非易失性存储介质之类的计算机可读存储介质和在计算机可读存储介质中体现的诸如一系列计算机指令之类的计算机可读程序代码部分。
在示例实施例中,用于执行以上图4和5的方法的装置可以包括被配置为执行上述与图4相关联的操作(1-17)以及与图5相关联的操作(1-12)中的一些或每个操作的处理器(例如处理器70)。该处理器例如可以被配置为通过执行硬件实现的逻辑功能、执行所存储的指令、或执行用于执行每个操作的算法来执行(图4的)操作1-17和(图5的)操作1-12。备选地,该装置还包括用于执行上述每个操作的装置。在此方面,根据示例性实施例,用于执行(图4的)操作1-17和(图5的)操作1-12的装置的示例可以包括例如处理器70、进程间引擎80、OS API 85和/或用于执行指令或执行算法以用于如上所述处理信息的设备或电路。
照这样,于是,本发明的一些实施例向计算设备、计算设备用户和网络操作者提供若干优点。例如,本发明的实施例可以提供用于以安全和灵活的方式在互连的进程之间共享资源的机制。另外,实施例的示例允许在任何给定时间移除或终止对进程的共享资源的访问权限。
获得在以上描述和相关联的附图中所呈现的教导的益处的本领域技术人员将想到在这里所陈述的本发明的许多修改和其他实施例。因此,应当理解,本发明不限于所公开的具体实施例,并且修改和其他实施例意在被包括在所附权利要求的范围内。此外,虽然以上描述和相关联的附图在元件和/或功能的特定示例性组合的背景下描述示例性实施例,但应当理解,可以由备选实施例提供对元件和/或功能的不同的组合而不背离所附权利要求的范围。在此方面,例如,与在上面明显描述的元件和/或功能的组合不同的组合也被视作可以在所附权利要求中的一些权利要求中陈述。虽然这里采用具体的术语,但只在通用的和描述性的意义下而不出于限制的目的使用它们。
Claims (20)
1.一种方法,其包括:
从控制一个或多个资源的至少一个第一进程接收请求,所述请求包括请求对用于与至少第二进程共享所述资源的至少一个资源的一个或多个权限的指派的数据;
指派用于与所述第二进程共享所述资源的所述权限;以及
响应于接收到第一消息,从所述第二进程移除用于共享所述资源的所述权限。
2.如权利要求1所述的方法,其中所述第一消息包括指示所述第二进程不再要求对所述资源的使用的信息,或指定所述第一进程请求移除用于与所述第二进程共享所述资源的所述权限的内容。
3.如权利要求1所述的方法,其中在接收所述请求之前,接收所述资源被打开并且被指派至用于与所述第二进程进行共享的通信信道的指示。
4.如权利要求1所述的方法,其中在移除之前,确定所述第二进程是否初始具有用于共享所述资源的所述权限,并且在所述确定显示所述第二进程初始不具有所述权限时,执行检查以确定所述权限是否被适当地指派至所述第二进程。
5.如权利要求4所述的方法,其进一步包括至少部分地基于所述检查的结果来允许所述第二进程与所述第一进程共享所述资源。
6.如权利要求4所述的方法,其中在所述检查显示所述权限未被适当地指派至所述第二进程时,所述方法进一步包括:
生成第二消息,所述第二消息包括指定没有访问权限被授予至所述第二进程以及指示对所述资源的共享不被允许的数据;以及
向所述第二进程发送所述第二消息。
7.如权利要求1所述的方法,其中移除包括基于接收到由所述第一进程生成的第二消息来移除用于共享所述资源的所述权限,所述第二消息包括请求从通信信道移除用于共享所述资源的所述权限的信息。
8.如权利要求7所述的方法,其中从所述通信信道移除所述权限包括终止所述第二进程对所述资源的使用,以及使得与所述第二进程对所述资源的使用相关联的任何操作失败。
9.一种装置,其包括处理器和存储可执行指令的存储器,所述可执行指令响应于由所述处理器执行而使得所述装置至少执行以下:
从控制一个或多个资源的至少一个第一进程接收请求,所述请求包括请求对用于与至少第二进程共享所述资源的至少一个资源的一个或多个权限的指派的数据;
指派用于与所述第二进程共享所述资源的所述权限;以及
响应于接收到第一消息,从所述第二进程移除用于共享所述资源的所述权限。
10.如权利要求9所述的装置,其中所述第一消息包括指示所述第二进程不再要求对所述资源的使用的信息,或指定所述第一进程请求移除用于与所述第二进程共享所述资源的所述权限的内容。
11.如权利要求9所述的装置,其中所述指令进一步使得所述装置在接收所述请求之前,接收所述资源被打开并且被指派至用于与所述第二进程进行共享的通信信道的指示。
12.如权利要求9所述的装置,其中响应于指派所述权限,所述指令进一步使得所述装置确定所述第二进程是否初始具有用于共享所述资源的所述权限,并且在所述确定显示所述第二进程初始不具有所述权限时,所述指令进一步使得所述装置执行检查以确定所述权限是否被适当地指派至所述第二进程。
13.如权利要求12所述的装置,其中所述指令进一步使得所述装置至少部分地基于所述检查的结果来允许所述第二进程与所述第一进程共享所述资源。
14.如权利要求12所述的装置,其中在所述检查显示所述权限未被适当地指派至所述第二进程时,所述指令进一步使得所述装置:
生成第二消息,所述第二消息包括指定没有访问权限被授予至所述第二进程以及指示对所述资源的共享不被允许的数据;以及
向所述第二进程发送所述第二消息。
15.如权利要求9所述的装置,其中移除包括基于接收到由所述第一进程生成的第二消息来移除用于共享所述资源的所述权限,所述第二消息包括请求从通信信道移除用于共享所述资源的所述权限的信息。
16.如权利要求15所述的装置,其中从所述通信信道移除所述权限包括终止所述第二进程对所述资源的使用,以及使得与所述第二进程对所述资源的使用相关联的任何操作失败。
17.一种计算机程序产品,其包括具有存储在其中的计算机可执行程序代码指令的至少一个计算机可读存储介质,所述计算机可执行程序代码指令包括:
用于使得从控制一个或多个资源的至少一个第一进程接收请求的程序代码指令,所述请求包括请求对用于与至少第二进程共享所述资源中的至少一个资源的一个或多个权限的指派的数据;
用于指派用于与所述第二进程共享所述第二资源的所述权限的程序代码指令;以及
用于响应于接收到第一消息而从所述第二进程移除用于共享所述资源的所述权限的程序代码指令。
18.如权利要求17所述的计算机程序产品,其中所述第一消息包括指示所述第二进程不再要求对所述资源的使用的信息,或指定所述第一进程请求移除用于与所述第二进程共享所述资源的所述权限的内容。
19.如权利要求17所述的计算机程序产品,其中在使得接收所述请求之前,所述程序代码指令用于使得接收所述资源被打开并且被指派至用于与所述第二进程进行共享的通信信道的指示。
20.如权利要求17所述的计算机程序产品,其中在移除之前,所述程序代码指令用于确定所述第二进程是否初始具有用于共享所述资源的所述权限,并且在所述确定显示所述第二进程初始不具有所述权限时执行检查以确定所述权限是否被适当地指派至所述第二进程。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/425,630 US8220004B2 (en) | 2009-04-17 | 2009-04-17 | Method, apparatus and computer program product for sharing resources via an interprocess communication |
US12/425,630 | 2009-04-17 | ||
PCT/IB2010/000857 WO2010119337A1 (en) | 2009-04-17 | 2010-04-16 | Method, apparatus and computer program product for sharing resources via an interprocess communication |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102378965A true CN102378965A (zh) | 2012-03-14 |
CN102378965B CN102378965B (zh) | 2014-04-16 |
Family
ID=42981985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080015176.4A Expired - Fee Related CN102378965B (zh) | 2009-04-17 | 2010-04-16 | 用于经由进程间通信共享资源的方法、装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8220004B2 (zh) |
EP (1) | EP2419830A4 (zh) |
KR (1) | KR101366965B1 (zh) |
CN (1) | CN102378965B (zh) |
TW (1) | TWI486878B (zh) |
WO (1) | WO2010119337A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601546A (zh) * | 2014-12-22 | 2015-05-06 | 深圳市鼎泰富科技有限公司 | 一种利用设备通信资源提高网络带宽的系统及方法 |
CN106778245A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 移动终端及其文件共享方法 |
CN112384901A (zh) * | 2018-06-29 | 2021-02-19 | 微软技术许可有限责任公司 | 具有资源隔离的外围设备 |
CN113010333A (zh) * | 2021-03-24 | 2021-06-22 | 北京中电兴发科技有限公司 | 适用于Linux服务器集群的多场景进程间通信方法 |
CN113728312A (zh) * | 2019-04-26 | 2021-11-30 | 三星电子株式会社 | 用于控制应用的执行的方法、电子装置及其存储介质 |
CN115086296A (zh) * | 2022-05-27 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101794058B1 (ko) * | 2011-03-08 | 2017-12-04 | 삼성전자주식회사 | 간섭 회피를 위한 무선 네트워크 채널 할당 방법 |
US9535765B1 (en) | 2011-03-28 | 2017-01-03 | Google Inc. | Opportunistic job Processing of input data divided into partitions of different sizes |
DE102011078630A1 (de) * | 2011-07-05 | 2013-01-10 | Robert Bosch Gmbh | Verfahren zum Einrichten einer Anordnung technischer Einheiten |
CN102591727B (zh) | 2012-01-04 | 2014-09-17 | 华为终端有限公司 | 对应用数据进行处理的方法和计算节点 |
US8751451B2 (en) * | 2012-04-12 | 2014-06-10 | Nokia Corporation | Method and apparatus for facilitating switching between devices |
US9130939B2 (en) * | 2012-12-28 | 2015-09-08 | Intel Corporation | Ad hoc decentralized cloud infrastructure |
CN103970601B (zh) * | 2013-02-06 | 2019-03-05 | 北京壹人壹本信息科技有限公司 | 执行操作指令方法和装置 |
US10586076B2 (en) * | 2015-08-24 | 2020-03-10 | Acronis International Gmbh | System and method for controlling access to OS resources |
CN105357266B (zh) * | 2015-09-30 | 2018-11-16 | 山东乾云启创信息科技股份有限公司 | 适合多种场景的socket通信与进程管理通用平台及方法 |
CN106341905B (zh) * | 2016-08-31 | 2019-09-20 | 广州视睿电子科技有限公司 | 一种基于无线网络的文件共享方法、设备及系统 |
US10318209B2 (en) * | 2017-01-30 | 2019-06-11 | Forcepoint Llc | Secure file transfer to process |
JP6926627B2 (ja) * | 2017-04-21 | 2021-08-25 | 富士通株式会社 | 情報処理システム、情報処理装置、api制御方法及びプログラム |
CN111124466A (zh) * | 2018-10-31 | 2020-05-08 | 上海哔哩哔哩科技有限公司 | 差异化通知方法、系统、计算机设备及可读存储介质 |
US20200174814A1 (en) * | 2018-11-30 | 2020-06-04 | Nutanix, Inc. | Systems and methods for upgrading hypervisor locally |
CN118132286A (zh) * | 2020-08-05 | 2024-06-04 | 北京图森未来科技有限公司 | 用于多进程之间通信的方法、设备及系统 |
DE112022005726T5 (de) * | 2022-12-09 | 2024-09-26 | Nvidia Corporation | Anwendungsprogrammierschnittstelle zum Freigeben von statisch dimensioniertem verbundenem Speicher für New Radio der fünften Generation (5G-NR) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0884679A1 (en) * | 1997-05-28 | 1998-12-16 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Method of handling interactions between data processes |
US20040025166A1 (en) * | 2002-02-02 | 2004-02-05 | International Business Machines Corporation | Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel |
GB2411253A (en) * | 2003-06-05 | 2005-08-24 | Clink Systems Ltd | Network on which a user classifies resources held in their account using a realm name created by them to give access to other users to the resources |
GB2420642A (en) * | 2004-11-30 | 2006-05-31 | Sendo Int Ltd | Sharing a block of memory between processes on a portable electronic device |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649099A (en) | 1993-06-04 | 1997-07-15 | Xerox Corporation | Method for delegating access rights through executable access control program without delegating access rights not in a specification to any intermediary nor comprising server security |
US5893157A (en) * | 1997-05-28 | 1999-04-06 | International Business Machines Corporation | Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests |
US6385658B2 (en) * | 1997-06-27 | 2002-05-07 | Compaq Information Technologies Group, L.P. | Method and apparatus for synchronized message passing using shared resources |
US6205466B1 (en) * | 1998-07-17 | 2001-03-20 | Hewlett-Packard Company | Infrastructure for an open digital services marketplace |
US6412070B1 (en) | 1998-09-21 | 2002-06-25 | Microsoft Corporation | Extensible security system and method for controlling access to objects in a computing environment |
US6412034B1 (en) * | 1999-04-16 | 2002-06-25 | Oracle Corporation | Transaction-based locking approach |
US7640315B1 (en) * | 2000-08-04 | 2009-12-29 | Advanced Micro Devices, Inc. | Implementing locks in a distributed processing system |
US7921287B2 (en) * | 2001-08-13 | 2011-04-05 | Qualcomm Incorporated | Application level access privilege to a storage area on a computer device |
BR0211884A (pt) * | 2001-08-13 | 2004-09-21 | Qualcomm Inc | Uso de permissões para alocar recursos de dispositivo para um aplicativo |
US6990560B2 (en) * | 2003-01-16 | 2006-01-24 | International Business Machines Corporation | Task synchronization mechanism and method |
JP2006221629A (ja) * | 2005-02-07 | 2006-08-24 | Sony Computer Entertainment Inc | プロセッサのリソース管理によるコンテンツ制御方法および装置 |
US20100083268A1 (en) * | 2008-09-29 | 2010-04-01 | Morris Robert P | Method And System For Managing Access To A Resource By A Process Processing A Media Stream |
US7792916B2 (en) * | 2008-10-20 | 2010-09-07 | International Business Machines Corporation | Management of cluster-wide resources with shared variables |
US8108519B2 (en) * | 2008-11-07 | 2012-01-31 | Samsung Electronics Co., Ltd. | Secure inter-process communication for safer computing environments and systems |
-
2009
- 2009-04-17 US US12/425,630 patent/US8220004B2/en not_active Expired - Fee Related
-
2010
- 2010-04-16 TW TW099112012A patent/TWI486878B/zh not_active IP Right Cessation
- 2010-04-16 WO PCT/IB2010/000857 patent/WO2010119337A1/en active Application Filing
- 2010-04-16 EP EP10764161.5A patent/EP2419830A4/en not_active Ceased
- 2010-04-16 KR KR1020117024315A patent/KR101366965B1/ko active IP Right Grant
- 2010-04-16 CN CN201080015176.4A patent/CN102378965B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0884679A1 (en) * | 1997-05-28 | 1998-12-16 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Method of handling interactions between data processes |
US20040025166A1 (en) * | 2002-02-02 | 2004-02-05 | International Business Machines Corporation | Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel |
GB2411253A (en) * | 2003-06-05 | 2005-08-24 | Clink Systems Ltd | Network on which a user classifies resources held in their account using a realm name created by them to give access to other users to the resources |
GB2420642A (en) * | 2004-11-30 | 2006-05-31 | Sendo Int Ltd | Sharing a block of memory between processes on a portable electronic device |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104601546A (zh) * | 2014-12-22 | 2015-05-06 | 深圳市鼎泰富科技有限公司 | 一种利用设备通信资源提高网络带宽的系统及方法 |
CN104601546B (zh) * | 2014-12-22 | 2017-12-01 | 深圳市鼎泰富科技有限公司 | 一种利用设备通信资源提高网络带宽的系统及方法 |
CN106778245A (zh) * | 2016-11-29 | 2017-05-31 | 北京元心科技有限公司 | 移动终端及其文件共享方法 |
CN112384901A (zh) * | 2018-06-29 | 2021-02-19 | 微软技术许可有限责任公司 | 具有资源隔离的外围设备 |
US12086292B2 (en) | 2018-06-29 | 2024-09-10 | Microsoft Technology Licensing, Llc | Peripheral device with resource isolation |
CN113728312A (zh) * | 2019-04-26 | 2021-11-30 | 三星电子株式会社 | 用于控制应用的执行的方法、电子装置及其存储介质 |
CN113010333A (zh) * | 2021-03-24 | 2021-06-22 | 北京中电兴发科技有限公司 | 适用于Linux服务器集群的多场景进程间通信方法 |
CN113010333B (zh) * | 2021-03-24 | 2021-10-15 | 北京中电兴发科技有限公司 | 适用于Linux服务器集群的多场景进程间通信方法 |
CN115086296A (zh) * | 2022-05-27 | 2022-09-20 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
CN115086296B (zh) * | 2022-05-27 | 2024-04-05 | 阿里巴巴(中国)有限公司 | 一种日志传输系统、日志传输方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US8220004B2 (en) | 2012-07-10 |
CN102378965B (zh) | 2014-04-16 |
KR20110138242A (ko) | 2011-12-26 |
WO2010119337A1 (en) | 2010-10-21 |
EP2419830A4 (en) | 2013-09-25 |
EP2419830A1 (en) | 2012-02-22 |
TW201135596A (en) | 2011-10-16 |
KR101366965B1 (ko) | 2014-02-24 |
US20100269120A1 (en) | 2010-10-21 |
TWI486878B (zh) | 2015-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102378965B (zh) | 用于经由进程间通信共享资源的方法、装置 | |
US10791458B2 (en) | Transferring information to a mobile device | |
KR102443259B1 (ko) | 하드웨어 보안 모듈을 이용한 IoT(Internet of Thing) 보안 서비스 제공 시스템 및 방법 | |
US11870674B2 (en) | Methods and apparatus to implement a virtual private network with probe for network connectivity | |
US20220150990A1 (en) | Device binding method and apparatus, and electronic device | |
KR20150026656A (ko) | 응용프로그램 관리 방법 및 그 전자 장치 | |
US8914013B2 (en) | Device management macros | |
US8478772B2 (en) | On-device database service for mobile device | |
CN103716400A (zh) | 基于虚拟机实现移动办公的方法及系统 | |
CN112328217A (zh) | 一种代码部署方法、装置、系统、计算机设备和介质 | |
CN112543492B (zh) | 一种重新配网方法、装置及存储介质 | |
CN104702661A (zh) | 移动通信终端间遥控方法 | |
CN104570967A (zh) | 基于Android系统的远程控制方法及系统 | |
US11895497B2 (en) | Wireless gateway with multiple processors managed by trusted processor | |
CN103336697A (zh) | 烧录系统及烧录方法 | |
KR20140028961A (ko) | 데이터 송수신 방법 및 그 전자 장치 | |
KR20140097300A (ko) | Vpn 기반 tv를 이용한 원격 장치 애플리케이션 그래픽 프리젠테이션 | |
CN112491792B (zh) | 数据安全传输方法、装置、设备及可读存储介质 | |
CN114244434A (zh) | 配网方法、装置、系统、电子设备及存储介质 | |
CN206312120U (zh) | 一种移动设备软件更新设备 | |
CN113271229B (zh) | 设备控制方法及装置、存储设备、安全设备、交换机、路由器及服务器 | |
KR102720909B1 (ko) | 소프트웨어 업그레이드 방법, 장치 및 시스템 | |
CN117939438A (zh) | 车机系统控制方法、装置、电子设备及存储介质 | |
JP2015049600A (ja) | 周辺機器制御装置、周辺機器制御方法および周辺機器制御プログラム | |
CN105103523A (zh) | 高效率套接字传输 |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160128 Address after: Espoo, Finland Patentee after: NOKIA TECHNOLOGIES OY Address before: Espoo, Finland Patentee before: NOKIA Corp. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140416 |
|
CF01 | Termination of patent right due to non-payment of annual fee |