CN105917627B - 云服务定制执行环境方法及系统 - Google Patents
云服务定制执行环境方法及系统 Download PDFInfo
- Publication number
- CN105917627B CN105917627B CN201480073135.9A CN201480073135A CN105917627B CN 105917627 B CN105917627 B CN 105917627B CN 201480073135 A CN201480073135 A CN 201480073135A CN 105917627 B CN105917627 B CN 105917627B
- Authority
- CN
- China
- Prior art keywords
- execution environment
- child
- template
- computer system
- execution
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/08—Access security
- H04W12/086—Access security using security domains
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
描述了用于实现云计算机系统以便为了定制可执行指令的执行而提供对定制执行环境的访问的技术。用户可以能够配置一个或多个不同类型的模板执行环境,例如,虚拟机环境,每个模板执行环境可被用来建立一个类型的定制执行环境。用户可以关于设置、状态、资源、许可或与执行环境相关的其它标准配置模板执行环境。依据请求,定制执行环境(例如,孩子执行环境)可以被建立,用于运行定制可执行指令的一个实例。定制执行环境可以基于模板执行环境。定制执行环境可以为定制可执行指令的执行提供安全、孤立的环境。用于定制执行环境的访问许可可以依赖于期望的执行环境的类型是可配置的。
Description
对相关申请的交叉引用
本申请要求于2014年9月17日提交且标题为“CLOUD SERVICE CUSTOM EXECUTIONENVIRONMENT”的美国非临时申请No.14/489,172的优先权和权益,该申请又要求以下专利申请的优先权和权益:(1)于2014年4月30日提交且标题为“MOBILE CLOUD SERVICE CUSTOMCODE CONTAINER”的美国临时申请No.61/986,363和(2)于2014年2月7日提交且标题为“MOBILE CLOUD SERVICE(MCS)”的美国临时申请No. 61/937,316。以上识别出的非临时和临时专利申请的全部内容通过引用被结合于此,用于所有目的。
版权
本专利文档的公开内容的一部分包含受版权保护的素材。版权所有者不反对任何人对专利文档或专利公开内容的传真再现,就像其在专利和商标局的专利文件或记录中所出现的,但是除此之外保留任何所有版权权利。
技术领域
本公开内容一般而言涉及计算机基础设施领域。具体而言给出了用于为了定制可执行指令的执行而提供对定制执行环境的访问的技术。
背景技术
公司正在努力寻求使他们的用户,诸如开发人员和管理员,以安全高效的方式配置和/或操作计算环境。这些用户可以发现,使用户能够在个人安全环境中执行代码的多个实例是有用的。用于启用这种系统的挑战之一是管理资源(例如,计算资源)的加载和使用。即使对于那些经常和定期执行的任务,用户或管理员也背负着在多个场合下配置环境和加载资源的任务。计算资源可以被效率低下地用于经常执行配置和加载资源。另外,当这种环境和/或资源不容易被配置或加载供使用时,执行代码和配置或操作的计算系统可能会遇到延迟。在一些情况下,定制代码的执行会启用对其它进程的计算资源的未经许可或不必要的访问,这会对计算系统中的敏感环境造成安全威胁。公司可以受益于可以管理希望经常执行代码并且基于被执行的操作或代码的类型配置不同环境的用户需求的计算系统。
发明内容
描述了用于实现云计算机系统的技术,以便为了定制可执行指令 (例如,定制代码)的执行而提供对定制执行环境的访问。用户可以能够配置一个或多个不同类型的模板执行环境,例如,虚拟机环境,每个模板执行环境可被用来建立一种类型的定制执行环境。用户可以关于设置、状态、变量、资源、许可或与执行环境相关的其它标准配置模板执行环境。依据请求,定制执行环境(例如,孩子执行环境) 可被建立,用于运行定制可执行指令的实例。定制执行环境可以基于模板执行环境(例如,其拷贝)。定制执行环境可以为定制可执行指令的执行提供安全、孤立的环境。对定制执行环境的访问许可可以依赖于期望的执行环境的类型是可配置的。模板执行环境可被配置为用于支持定制可执行指令的执行的特定类型的语言或环境。
根据至少一个例子,可以提供用于为了定制可执行指令的执行而访问定制执行环境的技术。这种技术可以由计算机系统(例如,云计算机系统)实现。例如,计算机系统可以包括服务器计算机。计算机系统可以实现本文所公开的技术。该技术可以包括计算机实现的方法。该方法可以包括执行模板执行环境。模板执行环境可被配置为建立孩子执行环境。每个孩子执行环境可被配置为执行一条或多条定制可执行指令。该方法可以包括接收执行定制可执行指令的请求。该方法可以包括建立第一孩子执行环境,以执行所请求的定制可执行指令。第一孩子执行环境可以基于模板执行环境来确定。该方法可以包括加载所请求的定制可执行指令,用于在第一孩子执行环境中执行,然后配置对于第一孩子执行环境的访问许可。该方法可以包括在第一孩子执行环境中执行所请求的定制可执行指令。所请求的定制可执行指令可以在配置访问许可之后执行。
在某些实施例中,建立第一孩子执行环境包括执行fork命令来从模板执行环境创建第一孩子执行环境。
在某些实施例中,孩子执行环境继承模板执行环境的配置。
在某些实施例中,配置对于孩子执行环境的访问许可包括调整用于访问所请求的定制可执行指令的许可。许可可以被调整,以防止所请求的定制可执行指令从孩子执行环境中被访问。
在某些实施例中,访问许可是通过用于模板执行环境的安全模型配置的。
在某些实施例中,模板执行环境是基于用于向计算机系统注册的租户的至少一个标准来配置的。
在某些实施例中,由计算机系统实现的方法还可以包括从多个模板执行环境中选择模板执行环境。多个模板执行环境中的每个模板执行环境可以建立孩子执行环境。多个模板执行环境中的每个模板执行环境可被配置为执行不同类型的定制可执行指令。
在某些实施例中,由计算机系统实现的方法还可以包括分类对应于所请求的定制可执行指令的定制可执行指令的类型。模板执行环境可以基于分类的定制可执行指令的类型来选择。
在某些实施例中,由计算机系统实现的方法还可以包括加载用于模板执行环境的执行的资源。执行所请求的定制可执行指令的请求可以在加载用于模板执行环境的执行的资源之后被接收。
在某些实施例中,由计算机系统实现的方法还可以包括在执行模板执行环境之前配置模板执行环境。配置模板执行环境可以包括初始化用于模板执行环境的设置和初始化用于模板执行环境的状态。
在某些实施例中,由计算机系统实现的方法还可以包括在计算机系统中建立附加的孩子执行环境,以执行附加的客户可执行指令。附加的孩子执行环境可以基于模板执行环境来建立。该方法还可以包括加载附加的定制可执行指令,用于在附加的孩子执行环境中执行。该方法可以包括设置用于附加的孩子执行环境的访问许可。该方法可以包括在附加的孩子执行环境中执行附加的定制可执行指令。
在某些实施例中,由计算机系统实现的方法还可以包括加载所请求的定制可执行指令,用于在第一孩子执行环境中执行。
根据至少一个例子,可以提供用于为了定制可执行指令的执行而访问定制执行环境的技术。这种技术可以由计算机系统(例如,云计算机系统)实现。计算机系统可以包括一个或多个处理器和耦合到一个或多个处理器的一个或多个存储器设备。例如,计算机系统可以包括服务器计算机。一个或多个存储器设备可以包含指令,当指令被一个或多个处理器执行时,使得一个或多个处理器实现本文公开的技术。当指令在一个或多个处理器上执行时,使得一个或多个处理器接收用于配置多个模板执行环境中的模板执行环境的标准。多个模板执行环境中的每个模板执行环境可以建立孩子执行环境。多个模板执行环境中的每个模板执行环境可被配置为执行不同类型的定制可执行指令。当指令在一个或多个处理器被执行时,使得一个或多个处理器从计算设备利用第一通信协议接收执行定制可执行指令的请求。当指令在一个或多个处理器被执行时,使得一个或多个处理器分类对应于所请求的定制可执行指令的定制可执行指令的类型。当指令在一个或多个处理器执行时,使得一个或多个处理器从多个模板执行环境中选择第一模板执行环境。第一模板执行环境可以基于分类的定制可执行指令的类型来选择。当指令在一个或多个处理器被执行时,使得一个或多个处理器执行第一模板执行环境。当指令在一个或多个处理器被执行时,使得一个或多个处理器建立第一孩子执行环境,以执行所请求的定制可执行指令。第一孩子执行环境可以基于第一模板执行环境来建立。当指令在一个或多个处理器被执行时,使得一个或多个处理器加载用于在第一孩子执行环境中执行的所请求的定制可执行指令,然后配置对于第一孩子执行环境的访问许可。当指令在一个或多个处理器被执行时,使得一个或多个处理器在第一孩子执行环境中执行所请求的定制可执行指令。在访问许可为第一孩子执行环境配置后,所请求的定制可执行指令可以被执行。
根据至少一个例子,可以提供用于为了定制可执行指令的执行而访问定制执行环境的技术。这种技术可以由计算机系统(例如,云计算机系统)实现。该计算机系统可以包括一个或多个处理器和计算机可读存储器。例如,计算机系统可以包括服务器计算机。该计算机可读存储器可以存储指令集,当指令集被一个或多个处理器执行时,使得一个或多个处理器实现本文描述的技术。当指令集被一个或多个处理器执行时,使得一个或多个处理器执行模板执行环境。模板执行环境可被配置为建立孩子执行环境。每个孩子执行环境可被配置为执行一条或多条定制可执行指令。当指令集被一个或多个处理器执行时,使得一个或多个处理器接收执行定制可执行指令的请求。当指令集被一个或多个处理器执行时,使得一个或多个处理器建立第一孩子执行环境,以执行所请求的定制可执行指令。第一孩子执行环境可以基于模板执行环境来建立。当指令集被一个或多个处理器执行时,使得一个或多个处理器加载所请求的定制可执行指令,用于在第一孩子执行环境中执行,然后配置对于第一孩子执行环境的访问许可。当指令集被一个或多个处理器执行时,使得一个或多个处理器在第一孩子执行环境中执行所请求的定制可执行指令。所请求的定制可执行指令可以在配置访问许可之后被执行。
根据至少一个例子,可以提供一种计算机系统。该计算机系统可以包括:第一接收器,被配置为接收用于配置多个模板执行环境中的模板执行环境的标准,其中多个模板执行环境中的每个模板执行环境建立孩子执行环境,并且其中多个模板执行环境中的每个模板执行环境被配置为执行不同类型的定制可执行指令;第二接收器,被配置为从计算设备利用第一通信协议接收执行定制可执行指令的请求;分类单元,被配置为分类对应于所请求的定制可执行指令的定制可执行指令的类型;选择单元,被配置为从多个模板执行环境中选择第一模板执行环境,其中第一模板执行环境基于分类的定制可执行指令的类型来选择;第一执行单元,被配置为执行第一模板执行环境;建立单元,被配置为建立第一孩子执行环境,以执行所请求的定制可执行指令,其中第一孩子执行环境是基于第一模板执行环境建立的;加载单元,被配置为加载所请求的定制可执行指令,用于在第一子执行环境中执行;配置单元,被配置为配置对于第一孩子执行环境的访问许可;以及第二执行单元,被配置为在第一孩子执行环境中执行所请求的定制可执行指令,其中所请求的定制可执行指令在访问许可为第一孩子执行环境配置之后被执行。
在某些实施例中,计算机系统可以是移动云计算机系统,并且计算设备可以是移动计算设备。
在某些实施例中,第一孩子执行环境继承模板执行环境的配置。
在某些实施例中,配置单元还包括被配置为调整用于访问所请求的定制可执行指令的许可的调整单元,其中许可被调整,以防止所请求的定制可执行指令从第一孩子执行环境中被访问。
根据至少一个例子,可以提供用于执行定制可执行指令的装置。该装置可以包括:用于执行模板执行环境的单元,其中模板执行环境被配置为建立孩子执行环境,每个孩子执行环境被配置为执行一个或多个定制可执行指令;用于接收执行定制可执行指令的请求的单元;用于建立第一孩子执行环境以便执行所请求的定制可执行指令的单元,其中第一孩子执行环境是基于模板执行环境建立的;用于加载所请求的定制可执行指令以用于在第一孩子执行环境中执行的单元;用于配置用于第一孩子执行环境的访问许可的单元;以及用于在第一孩子执行环境中执行所请求的定制可执行指令的单元,其中所请求的定制可执行指令在配置访问许可之后被执行。
在某些实施例中,第一孩子执行环境继承模板执行环境的配置。
本概述并不意在识别要求保护的主题的关键或必要特征,也不意在孤立地被用来确定要求保护的主题的范围。主题应当参照本专利的整个说明书的适当部分、任何或全部附图以及每项权利要求来理解。
以下详细描述连同附图一起将提供对本发明实施例的本质和优点的更好理解。
附图说明
下面参照以下附图详细地描述本发明的说明性实施例:
图1示出了根据本发明的一些实施例、为了定制可执行指令的执行而提供对定制执行环境的访问的计算机系统的框图。
图2示出了根据本发明的一些实施例、为了定制可执行指令的执行而提供对定制执行环境的访问的计算机系统的框图。
图3示出了根据本发明的一些实施例、包括为了执行定制可执行指令而利用模板执行环境建立的孩子执行环境的系统的框图。
图4示出了根据本发明的一些实施例、用于为了定制可执行指令的执行而提供对定制执行环境的访问的过程的序列图。
图5是示出根据本发明的一些实施例、用于为了定制可执行指令的执行而提供对定制执行环境的访问的过程的流程图。
图6绘出了用于实现其中一种实施例的分布式系统的简化图。
图7示出了根据本公开内容的实施例的系统环境的组件的简化框图,通过其,由实施例系统的组件提供的服务可以作为云服务被提供。
图8示出了本发明的各种实施例可以在其中实现的示例性计算机系统。
图9示出了示例性计算机系统的功能框图,其中可以实现本发明的各种实施例。
具体实施方式
在下面的描述中,为了解释的目的,阐述了许多具体的细节,以便提供本发明的各种实施例的透彻理解。但显而易见的是,对本领域技术人员来说,本发明的实施例可以在没有这些具体细节的情况下实践。在其它情况下,众所周知的结构和设备以框图形式示出。
具体的细节在以下描述中给出,以提供对实施例的透彻理解。但是,本领域普通技术人员将理解,实施例可以在没有这些特定细节的情况下实践。例如,电路、系统、网络、过程和其它组件可以被示为框图形式的组件,以便不以不必要的细节模糊实施例。在其它情况下,众所周知的电路、过程、算法、结构和技术可以示为没有不必要的细节,以避免模糊实施例。
而且,应当指出,各个实施例可被描述为被绘制为流程图、流图、数据流图、结构图或框图的过程。虽然流程图可以将操作描述为顺序过程,但是许多操作可以并行或并发执行。此外,操作的次序可以被重新布置。当其操作完成时,过程终止,但是可以具有不包括在图中的附加步骤。过程可以对应于方法、函数、过程、子例程,子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。
术语“机器可读存储介质”包括,但不限于,便携式或非便携式存储设备、光存储设备,以及能够存储、包含或携带(一条或多条) 指令和/或数据的各种其它介质。机器可读介质可以包括其中可以存储数据的非临时性介质并且不包括载波和/或无线地或通过有线连接传播的临时性电子信号。非临时性介质的例子可以包括,但不限于,磁盘或磁带、诸如致密盘(CD)或数字多功能盘(DVD)的光学存储介质、闪存存储器、存储器或存储设备。计算机程序产品可以包括代码和/或机器可执行指令,其可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或者指令、数据结构或程序语句的任意组合。代码段可通过传递和/或接收信息、数据、自变量、参数或存储器内容被耦合到另一代码段或者硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段,包括存储器共享、消息传递、令牌传递、网络传输等,被传递、转发或发送。
此外,实施例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实现。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可被存储在机器可读介质中。(一个或多个)处理器可以执行必要的任务。
在一些图中绘出的系统可以以各种配置提供。在一些实施例中,系统可被配置为分布式系统,其中该系统的一个或多个组件跨云计算机系统中的一个或多个网络分布。
描述了用于实现云计算机系统以便为了定制可执行指令(例如,定制代码)的执行而提供对定制执行环境的访问的技术。用户可以能够配置一个或多个不同类型的模板执行环境,例如,虚拟机环境,每个模板执行环境可被用来建立一个类型的定制执行环境。用户可以关于与执行环境相关的设置、状态、变量、资源、许可或其它标准配置模板执行环境。依据请求,定制执行环境(例如,孩子执行环境)可以为了运行定制可执行指令的实例而被建立。定制执行环境可以基于模板执行环境(例如,其拷贝)。定制执行环境可以为定制可执行指令的执行提供安全、孤立的环境。用于定制执行环境的访问许可可以依赖于期望的执行环境的类型是可配置的。模板执行环境可被配置为用于支持定制可执行指令的执行的特定类型的语言或环境。
图1示出了根据本发明的一些实施例、为了定制可执行指令的执行而提供对定制执行环境的访问的计算机系统100的框图。为了说明的目的,本文提供了各种例子来描述用于使计算设备(例如,计算设备102)与一个或多个企业计算机系统,诸如云企业计算机系统140 (例如,“serviceprovider.com“)和本地企业计算机系统150,通信的技术这种通信可以是交换或传送企业数据、请求由企业计算机系统提供的服务、传送消息、执行一条或多条定制可执行指令,或它们的组合。
消息可以包括服务调用消息、结果消息、请求消息、在内部传送的其它消息、在计算设备和企业计算机系统之间传送的其它消息,或它们的组合。消息可以包括消息类型(例如,来自一组共享类型常量的类型值)、相关性id(例如,用来将这个消息与一个或多个其它消息相关的id)、支持基于优先级的消息队列的优先级信息、超时、支持消息数据隔离的灵敏度指示、消息源(例如,发送者的统一资源标识符)、消息目的地(例如,唯一地识别目的地的统一资源标识符)、请求上下文(例如,来自调度器的请求信息),和/或消息有效载荷,该有效载荷可以依赖于正在被发送的消息的类型,诸如参数数据和结果数据,而具有不同的属性。
定制可执行指令可以包括一行或多行程序代码、二进制代码、可执行操作、机器指令、机器代码,或它们的组合。定制可执行指令可以包括可由处理器读取的信息,以便使处理器执行操作、方法、例行程序,等等。定制可执行指令可以包括在软件程序中或由其实现。定制可执行指令可由用户配置。定制可执行指令可能导致一条或多条可执行指令被执行。定制可执行指令可以利用计算机编程语言来编写,诸如面向对象的语言(例如,)、脚本语言(例如,或)、机器语言、硬件编程语言、系统语言、操作系统语言、其它类型的语言,或它们的组合。定制可执行指令可能导致一个或多个操作在云计算机系统110中执行。这种操作可以包括变换来自企业计算机系统的企业数据、聚集来自企业计算机系统的企业数据、对企业数据执行一些量的业务逻辑,或者与处理或传送企业数据相关的其它操作。
如本文所述的企业数据可以包括从企业计算机系统接收的数据、发送到企业计算机系统的数据、由企业计算机系统处理的数据,或它们的组合。企业数据可以是与用于客户应用和/或服务的数据可区分的。在一些实施例中,例如,企业数据可以基于企业数据的应用或使用而改变,而用于客户应用的数据(例如,客户数据)可以在使用中保持静态。在某些实施例中,企业数据可以包括或者可以与指示用于存储、使用和/或管理企业数据的标准的规则相关联。例如,企业数据可以与指示用于存储、使用和/或管理该企业数据的一个或多个策略的策略信息相关联。在某些实施例中,策略信息可以包括在企业数据中。在某些实施例中,企业数据可以包括由在企业计算机系统中执行的应用或服务处理、存储、使用或传送的数据。例如,企业数据可以包括诸如来自企业应用的JSON(JavaScript对象符号)格式化数据的业务数据(例如,业务对象)、结构化数据(例如,键值对)、非结构化数据(例如,由应用处理或使用的内部数据、JSON格式的数据、社交帖子、会话流、活动馈送,等等)、二进制大对象 (BLOB)、文档、系统文件夹(例如,沙箱环境中应用相关的文件夹)、使用代表性状态传送(REST)技术的数据(在本文被称为“RESTful数据”)(例如,通过REST端点使其可用的同步数据)、系统数据、配置数据、同步数据,或它们的组合。在一些实施例中,企业数据可以包括REST格式化的企业数据。REST格式化的数据可以包括RESTful数据。REST格式化的企业数据可以包括根据由企业计算机系统实现的REST技术格式化的数据。配置或同步数据可以包括用于企业数据的同步的数据,诸如版本、历史、集成数据,等等。企业数据中的文档可以包括扩展标记语言(XML)文件、可视资产、配置文件、媒体资产,等等。BLOB可以包括在数据库管理系统中被存储为单个实体的二进制数据的集合,诸如图像、多媒体对象,或可执行代码,或者本领域中其它已知的。
企业计算机系统可以包括被配置为为实体或企业操作的各种计算系统。例如,企业计算机系统可以包括一个或多个计算机系统,诸如企业服务器计算机(例如,后端服务器计算机),以处理对服务的请求。企业计算机系统可以包括可以利用企业数据处理和/或操作的应用和/或服务。例如,企业计算机系统150可以提供用于管理或操作企业的一个或多个服务和/或应用。服务可以包括,但不限于,客户关系管理(CRM)、人力资本管理(HCM)、人力资源(HR)管理、供应链管理、企业通信、电子邮件通信、商业服务、其它企业管理服务或应用,或它们的组合。企业计算机系统150可以包括一个或多个专用于提供一个或多个服务的计算机系统。在一些实施例中,提供服务的每个不同计算机系统可以位于企业本地(on-premise),或者可以位于远离企业。在一些实施例中,支持不同服务的多个不同计算机系统可以位于单个地理位置,诸如企业本地。在图1所示的例子中,本地企业计算机系统150可以包括HR系统154和CRM系统 156,这两者可以位于企业本地。在一些实施例中,企业计算机系统 140可以包括或实现代理系统,以促进或处理云计算机系统110和一个或多个企业系统154、156之间的通信。企业的计算机系统,诸如云企业计算机系统140和本地企业计算机系统150,在下面进一步详细描述。
计算机系统100可以包括被实现为作为安全的居间计算环境操作的云服务112,其促进计算设备102和一个或多个企业计算机系统之间的通信,因为计算设备102可以不被配置为与这种企业计算机系统通信。例如,一些企业计算机系统可以由遗留或后端计算机系统支持。这种系统可被配置为利用不同的通信和/或安全协议来操作。由这种企业计算机系统支持的协议可以与由移动计算设备支持的那些不同。云服务112可以支持利用不同类型的移动计算设备通信。照此,云服务112可以实现促进企业计算机系统和移动计算设备之间的通信的技术,以便使它们能够彼此通信,而不论它们通信的不兼容性,诸如格式或通信协议之间的差异。例如,云服务112可以翻译移动计算设备和企业计算机系统之间的通信协议。
云服务112可被实现为为了定制可执行指令的执行而提供对定制执行环境的访问。定制执行环境可以使用户(例如,开发人员或管理员)能够执行定制指令。定制指令可以被执行,以管理、配置或操作云服务112。例如,云服务112可以促进定制可执行指令在定制执行环境(例如,“定制代码容器”),诸如孩子执行环境134,中的执行。定制执行环境可以基于模板执行环境132来建立。模板执行环境 132可被配置为使得孩子执行环境134可以基于模板执行环境132的配置来创建。可以为不同的定制可执行指令建立孩子执行环境134。每个孩子执行环境134可以表示安全环境,其中定制可执行指令可以无需访问超出孩子执行环境134可访问的那些资源之外的资源就被执行。孩子执行环境134可以是沙箱状的计算环境,其不能被由云服务 112执行的其它过程访问。孩子执行环境134会阻止在该环境中执行的可执行指令建立一个或多个其它执行环境。孩子执行环境134中的访问许可可以在建立环境之后被修改,使得从孩子执行环境134中的访问可以如上所述被配置。下面进一步并参照图2-5描述定制可执行指令的执行。
云计算机系统110可以支持云服务112。云计算机系统110可以利用硬件、软件、固件或它们的组合来实现。例如,云计算机系统 110可以包括一个或多个计算设备,诸如服务器计算机。云计算机系统110可以包括一个或多个存储器存储设备和一个或多个处理器。存储器存储设备可以让(一个或多个)处理器访问并且可以包括存储在其上的指令,当指令被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作。在一些实施例中,存储器存储设备可以作为本地储存器(例如,高速缓存)操作。云计算机系统110可以包括一个或多个不同类型的操作系统。存储器存储设备可以让(一个或多个)处理器访问并且可以包括存储在其上的指令,当指令被(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作、方法或过程。存储器存储可以作为本地储存器操作。本地储存器可以利用任何类型的持久性存储设备来实现,诸如存储器存储设备或其它计算机可读存储介质。在一些实施例中,本地储存器可以包括或实现一个或多个数据库170(例如,文档数据库、关系数据库,或其它类型的数据库)、一个或多个数据存储 (例如,元数据储存库124),一个或多个文件存储、一个或多个文件系统,或它们的组合。本地储存器可以存储企业数据。在某些实施例中,云计算机系统110可以包括一个或多个数据存储,其可以由云计算机系统110中的任何组件访问。
元数据储存库124可以存储与云服务112关联的所有元数据。这个信息可以由运行时和设计时数据组合,每一个具有其自己关于可用性和性能的需求。云服务112的租户或订户可以有任意数量的应用。每个应用可以进行版本控制并且可以具有关联的零个或多个版本化的资源API以及那些资源应用编程接口(API)接触的零个或多个版本化的服务实现。这些实体是运行时用来将虚拟请求(mAPI)映射到具体服务实现(服务)的东西。当她设计和建立其应用时,这种映射向手机开发人员提供了不必知道实际的实现服务的便利(luxury)。并且不需要她关于每个服务错误修复重新发布新的应用。元数据储存库124可以存储一个或多个可以由计算设备(例如,计算设备102) 调用的可调用接口114。可调用接口114可以由应用的用户(例如,开发人员)定制,以促进与云服务112的通信。元数据储存库124可以存储对应于可调用接口的一种或多种配置的元数据。元数据储存库 124可被配置为存储用于实现一个或多个可调用接口114,例如资产接口,的元数据。可调用接口114可被实现为在用于通信的一种格式、协议或体系架构风格与用于通信的另一种格式、协议或体系架构风格之间进行翻译。元数据储存库124可以由通过认证的用户经由外部网络可修改。云计算机系统110可以包括其它数据存储,诸如可以存储关于在云服务112中发生的处理的诊断信息的诊断存储以及可以存储在系统中的处理期间捕获的记录和分析数据的分析存储。
在一些实施例中,元数据储存库124可以存储关于一个或多个模板执行环境的信息。该信息可以由用户通过接口114配置。关于模板执行环境的信息可以包括模板标识符、模板类型、模板版本、所支持的服务/版本、名称、描述、与模板执行环境相关的其它属性,或它们的组合。
代表云服务112,云计算机系统110可以利用其计算资源来促进定制可执行指令的执行。计算资源可以关于与云服务112的订户或租户关联的特定用户被分配供使用。资源可以关于用户、设备、应用或与订户相关的其它标准来分配。依赖于移动计算设备寻求与企业计算机系统通信的需求,云服务112可以被缩小或放大。云服务112可被配置为使得它是有弹性的,以处理高于移动计算设备和企业计算机系统之间正常流量的浪涌和临时周期。在一些实施例中,云服务112可以包括支持可扩展性的元件,使得组件可以被添加或代替,以满足通信中的需求。
计算设备102和计算设备104可以与云服务112通信(例如,发送请求消息)。计算设备102可以向云服务112发送对由企业计算机系统和/或云服务112提供的服务的请求。计算设备104可被实现为向计算设备104的用户提供一个或多个用户接口106,诸如图形用户界面(GUI)。用户接口106可以是向管理员和/或开发人员提供对云服务112的访问的控制台。计算设备104的用户可以经由用户接口 106操作云服务112。云服务112可以利用用户接口104配置。在一些实施例中,模板执行环境和/或定制可执行指令可以经由用户接口 104被配置或定义。用户接口104可被配置为经由接口114与云服务进行通信,以配置云服务112的操作。
计算设备102(例如,移动计算设备)和计算设备104可以利用硬件、固件、软件或它们的组合来实现。计算设备102可以经由云服务112与企业计算机系统140、150通信。计算设备102和计算设备 104可以各自包括或可被实现为端点设备、个人数字助理(PDA)、平板计算机、膝上型计算机、移动计算设备、台式计算机、可穿戴计算机、寻呼机,等等。计算设备102和计算设备104可以各自包括一个或多个存储器存储设备和一个或多个处理器。计算设备102和计算设备104可以各自包括不同类型的操作系统。在一些实施例中,云服务112可以包括一个或多个运行时环境(例如,服务器进程)。运行时环境可以由云计算机系统110实现。例如,云计算机系统110可以实现一个或多个虚拟机环境,例如,虚拟机环境(JVM),其对云服务112充当运行时环境。存储器存储设备可以让(一个或多个) 处理器可访问并且可以包括存储在其上的指令,当指令由(一个或多个)处理器执行时,使(一个或多个)处理器实现本文公开的一个或多个操作、方法或过程。存储器存储可以作为本地储存器操作。本地储存器可以利用任何类型的持久性存储设备来实现,诸如存储器存储设备或其它计算机可读存储介质。在一些实施例中,本地储存器可以包括或实现一个或多个数据库(例如,文档数据库、关系数据库,或其它类型的数据库)、一个或多个数据存储,一个或多个文件存储、一个或多个文件系统,或它们的组合。本地储存器可以存储企业数据。在一些实施例中,计算设备102的本地储存器可以包括可在由云服务 112提供的孩子执行环境134中执行的一个或多个定制可执行指令。
在各种实施例中,计算设备102可被配置为执行和操作一个或多个应用,诸如web浏览器、客户端应用、专有客户端应用,等等。应用可以包括被配置为用于由企业计算机系统提供的企业数据和/或服务的特定应用。客户端应用可以经由一个或多个网络被访问或操作。应用可以包括用于操作应用的GUI。
计算设备102可以利用无线通信经由一个或多个通信网络与云服务112进行通信。通信网络的例子可以包括移动网络、无线网络、蜂窝网络、局域网(LAN)、广域网(WAN)、其它无线通信网络,或它们的组合。在某些实施例中,计算设备102可以利用定制通信协议(例如,定制协议)建立与云服务112的通信连接114。可以通过云计算机系统110与云服务112建立连接114。定制协议可以是基于超文本传输协议(HTTP)的协议。通过利用定制通信协议,计算设备102可以在任何计算设备平台上操作,以便与云计算机系统110进行通信。
计算设备102可以通过一个或多个可调用接口,例如应用编程接口(API),诸如接口114,与云计算机系统110进行通信。可调用接口可以在计算设备102上实现。可以为使应用能够与云服务112通信的那些定制应用实现可调用接口。在一些实施例中,可调用接口可以为云服务112开发。可调用接口可以使应用能够与云服务112进行通信,而不必适应协议(例如,通信或开发协议)和/或体系架构风格或格式的差异。
云服务112可以由一个或多个防火墙保护,以便向过程请求和执行定制代码116提供安全的环境。计算设备102和云服务112之间消息(例如,HTTP消息或REST消息)的传送可以符合可以被可调用接口支持的通信协议(例如,HTTP或REST)。云计算机系统110 和企业计算机系统140、150之间的消息传送可以符合通信协议(例如,HTTP或REST)。计算设备102和企业计算机系统140、150 之间的通信可以经由云服务112是双向的。
云计算机系统110还可以通过与企业计算机系统的通信作为居间计算环境操作,企业计算机系统其中一些可以具有不同的通信协议。这种通信协议可以是定制的或特定于与云计算机系统110通信的应用或服务。另外,云计算机系统110可以与企业计算机系统通信,以便根据企业计算机系统支持的格式提供企业服务和/或交换企业数据。云计算机系统110可以维护企业数据的本地储存器(例如,本地高速缓存)并且可以使用本地储存器来管理移动计算设备和企业计算机系统140、150之间企业数据的同步。
计算设备102可以与云服务112进行通信(例如,发送请求消息),以便向企业计算机系统传送消息(例如,请求服务)和/或从定制执行服务130请求服务(例如,执行一个或多个定制可执行指令)。通过防火墙接收的请求可以被处理,以确定用于与请求关联的用户的安全性认证。本文所述的安全性机制可以保护客户通信和企业数据的完整性。为了防止或减少受损的通信和/或数据被损害,认证可以在一开始进行,从而将访问限制到仅具有所需凭证的那些人。服务和服务调用流被结构化为使得,当请求到达时,它们只能访问为它们被授权的服务。通过解耦授权与系统处理的其余部分,授权“可以由谁来完成什么”的任务可以被委派给可以被扩展成支持特定公司客户所需的任何附加定制安全措施的专用安全性子系统(例如,身份管理系统)。在一些实施例中,安全性认证可以为请求、会话、用户、设备、与用户相关的其它标准或它们的组合确定。安全性认证可以为接收到的每个请求执行。在一些实施例中,认证可以基于请求的先前验证来确定。安全性认证可以为用户或设备确定,使得对不同企业计算机系统140、150的请求可以基于安全性的单次验证来认证。
云计算机系统110可以包括一个或多个负载平衡器系统108、实现一个或多个负载平衡器系统108和/或与一个或多个负载平衡器系统108通信。在确定安全性认证时,云计算机系统110可以请求负载平衡器系统108中的任何一个检查它接收到的请求并检测请求针对的服务。云服务112可被配置为具有负载平衡器系统108并利用开始时的资源被更新,以便当请求到达时,负载平衡器系统108可以跨不同的资源平衡所请求的负载。
云计算机系统110可以包括调度器118,其可以处理请求并将它们分派到适当的服务。请求可以在调度时被路由到适当的服务。在一些实施例中,服务本身可以在云服务112中或在企业计算机系统中将一个内部请求路由到另一个内部服务。在一些实施例中,调度器118 可以解析请求,以便基于在请求的统一资源标识符(URI)和/或统一资源定位符(URL)识别出的目的地的位置(例如,地址)确定其目的地。调度器118可以解析请求及其报头,以提取以下信息中的一个或多个:租户标识符、服务标识符、应用名称、应用版本、请求资源、操作和参数,等等。调度器118可以使用解析出的信息来执行元数据储存库124中的查找。调度器118可以为请求检索对应的数据。调度器118可以基于所请求的资源和数据中的映射确定目标服务。虽然最初是非常基本的映射,但是数据可以被增强,以提供更复杂的、基于规则的调度。调度器118可以执行任何特定于调度的记录、度量收集,等等。然后,调度器118可以根据应用元数据执行初始授权。调度器118可以格式化呼入的请求和任何其它必要的信息并把该消息放在路由总线120的队列上,用于进一步处理。一旦消息被放在路由总线120的队列上,调度器118就可以等待对应的响应。调度器118 可以处理从路由总线120接收到的响应并将响应返回到计算设备102。
除了处理对外部请求的调度,调度器118还可以在调度内部请求时起作用。这种内部请求可以以复合服务或用于服务的定制可执行指令的形式进入。在这两种情况下,主叫方都可以使用如在应用中定义的逻辑服务名称。调度器118可以使用当前执行上下文来确定该应用并使用那个逻辑名来确定要调用的适当服务。
云计算机系统110可以包括路由总线120,以管理消息到向路由总线120注册的目的地的递送。路由总线120可以作为用于管理云服务112中的通信的中央系统操作。通过路由总线120传送的数据可以被处理,以捕获并存储数据。路由总线120可以提供框架,使得附加的集中式服务(附加的授权、调试,等等)可以容易地根据需要被插入。由路由总线120捕获的数据可被存储在诊断存储126和/或分析存储128中。
路由总线120可以将消息路由到一个或多个目的地。消息可以包括针对由云服务112提供的一个或多个服务126的请求。消息可以为了传送到一个或多个企业计算机系统140、150而被接收。云服务可以提供服务126,诸如对象存储服务、数据库服务、通知服务、web 服务、社交服务、资源服务、定制执行服务130,或它们的组合。路由总线120可以处理请求,以确定其目的地。针对企业计算机系统中的消息可被传递到基于消息中的信息确定的目的地企业计算机系统。路由总线120可以请求136适配器接口122如果必要的话就执行翻译,以便将请求传递到企业计算机系统,例如,企业计算机系统140或企业计算机系统150。路由总线120可以将包括请求的消息传递到基于消息中所包括的信息确定的一个或多个服务126、130。
在某些实施例中,云计算机系统110可以包括或实现适配器接口 122,以便将消息翻译或转换成由接收企业计算机系统支持的协议。适配器接口122可以与每个企业计算机系统140、150建立单独的通信连接。云计算机系统110可被配置为经由一个或多个网络(未示出) 与企业计算机系统140、150进行通信。通信网络的例子可以包括互联网、移动网络、公共网络、无线网络、蜂窝网络、局域网 (LAN)、广域网(WAN)、其它通信网络,或它们的组合。在某些实施例中,通信连接可以是利用高速通信干线促进的高速通信连接。与企业计算机系统140、150的通信可以穿过防火墙,这确保与外部网络的通信是安全的,以防止经由这种通信对云服务112的未授权访问。
由云服务112提供的一个服务126可以包括可以为BLOB提供存储设施的对象存储服务。存储的基本单元可以是文本,具有读和写操作。还可以提供用于JSON对象的基本查询设施。
由云服务112提供的另一个服务126可以包括数据库服务,以允许到托管的数据库的连接,用于执行查询或写入。所需的参数化可能需要用于数据库的完整连接串、SQL串或者所存储的要执行的过程、任何参数和可能的凭证。必要的信息可以在运行时提供或者在应用元数据中被预先配置。
由云服务112提供的另一个服务126可以包括社交服务,这可以提供与许多流行的社交网站,诸如等,的基本整合。社交服务可以允许利用来自那些站点的用户凭证的第三方认证以及对它们的服务的访问。例子包括发送推文或更新您的状态。
由云服务112提供的另一个服务126可以包括公共云服务,以便使用户能够简化和优化通信。例如,服务开发人员可以使用云服务 112的通用Web服务向利用云计算机系统110的云服务托管的资源讲话。
定制执行服务130可以建立一个或多个定制执行环境,例如,孩子执行环境134,以执行定制可执行指令。定制可执行指令可以在来自计算设备102的消息中被接收和/或从云计算机系统110可访问的数据存储,例如,元数据储存库124,检索。孩子执行环境134可以基于模板执行环境132建立。云服务112可在元数据储存库124中管理关于一个或多个模板执行环境132的信息。模板执行环境132可以是特定于代码的虚拟机环境,例如,JVM环境。孩子执行环境可以基于模板执行环境来建立。孩子执行环境可以包括或实现孩子特定于代码的虚拟机环境,例如,孩子JVM环境。照此,孩子执行环境 134可以包括从模板执行环境132拷贝、继承和/或得出的信息(例如,设置、属性、变量、状态,等等)。基于模板执行环境132建立的孩子执行环境134的例子参照图2和3来描述。
定制执行服务130可以实现一个或多个操作,以处理执行定制可执行指令的请求。一个这种操作可以包括确定定制可执行指令。定制可执行指令可以由请求识别或者可以被包括在请求中。
由定制执行服务130执行的另一个这种操作可以包括确定从其建立孩子执行环境的模板执行环境132。模板执行环境可以基于一个或多个标准来选择,诸如定制可执行指令的类型、用于定制可执行指令的执行的一个或多个资源、与定制可执行指令关联的语言的类型、与定制可执行指令的执行相关的其它标准,或它们的组合。选定的模板执行环境可以在接收执行定制执行指令的请求之前、之后或同时执行。如上面所解释的,模板执行环境132可以由用户,诸如通过计算设备 104,配置。
为了建立孩子执行环境,定制执行服务130可以执行一个或多个操作。建立孩子执行环境的操作可以包括发出命令(例如,fork()命令)或指令,这使得孩子执行环境基于选定的模板执行环境被建立 (例如,产生)。一个或多个定制可执行指令可以被加载,用于在孩子执行环境中执行。定制可执行指令可以在孩子执行环境被建立之前加载,以进一步改进指令执行的处理时间。孩子执行环境可被配置为调整孩子执行环境的环境。该环境可以包括设置和/或访问许可。例如,访问许可可以被剥离或更改,以配置对在环境中执行的指令的访问许可。一旦配置好,定制可执行指令就可以在孩子执行环境中执行。
当定制可执行指令在孩子执行环境134中执行时,结果可以由孩子执行环境134产生。结果可以被提供给定制执行服务130。定制执行服务130可以基于该结果执行一个或多个操作。结果可以包括指示执行定制可执行指令的结果的代码或值。如果没有被成功执行,则定制执行服务130可以重新执行定制执行指令。基于结果,定制执行服务130可以在路由总线120的队列上放置消息(例如,响应),以便递送到计算设备,例如请求定制可执行指令的执行的计算设备。消息可以包括指示结果的信息。
在一些实施例中,模板执行环境132和/或孩子执行环境134可以访问可从云计算机系统110获得的资源(例如,元数据储存库124) 或服务126、130。例如,这种资源可以包括由云计算机系统存储的信息或数据。可以利用一个或多个可调用接口和/或库(例如,SDK136或SDK 138)获得访问,这些接口和库可以包括在环境中或者可以被环境用来访问资源或服务。例如,SDK 136或SDK 138可以分别被模板执行环境132或孩子执行环境134调用,以调用由云计算机系统110提供的服务。
在一些实施例中,云计算机系统110可以促进向计算设备102的用户的通知。云计算机系统110可以包括支持与用户的有状态交互的警报管理服务,例如,基于用户偏好通过一个或多个信道递送警报、等待响应,以及基于响应采取行动。对于在一个信道上发送的警报的响应可以通过另一个信道被接收,服务需要该另一个信道而能够处理该响应。平台可以附带内置的状态模型,用于流行的交互模式,并且利用新的状态模型可扩展。一些警报信道可以包括众所周知的通信资源,无论是单向或者是双向。例子包括SMS、推送通知,和谷歌云
云计算机系统,诸如本文所描述的云计算机系统,可以向它的用户提供许多技术优点和益处。一个技术优点可以包括使移动计算设备 (例如,移动电话)的用户能够在安全的执行环境(例如,沙箱容器) 中,诸如在云计算机系统中,执行定制代码,其可以提供支持代码执行的必要的计算资源。另一个技术优点可以是,执行定制代码的安全执行环境还可以使得定制代码能够与不同的用户(例如,订户或租户) 单独且独立地执行。还有另一个技术优点可以是,安全执行环境可以利用模板可定制,模板可以使执行环境的多个实例被建立,以便并发地执行定制代码。模板可被配置为运行不同类型的定制代码或操作。通过为定制代码的执行提供安全的环境定制,用户、管理员和开发人员可以在不干扰或影响其它执行环境的操作的情况下执行不同类型的定制代码。还有另一个技术优点可以包括改进用于定制代码的执行的处理效率,因为模板环境可以减少配置和建立定制执行环境的时间并且可以使不同的定制代码能够执行,而不依赖于另一个环境的资源。通过建立定制执行环境,可以防止定制代码耗费用于代码执行的太多资源并且可以防止定制代码产生可以使得能够对云计算机系统中的未授权资源进行访问的附加的过程或环境。
现在转向图2,示出了根据本发明的一些实施例、可以为了定制可执行指令的执行而提供对定制执行环境的访问的计算机系统200的框图。计算机系统200可以包括云计算机系统110。在某些实施例中,云计算机系统110可被实现为被配置为为了促进计算设备(例如,移动计算设备202和移动计算设备212)与企业计算机系统(例如,企业计算机系统282和企业计算机系统292)之间的通信而执行各种操作的一个或多个功能块或模块设备。云计算机系统110可以包括通信模块230、可调用接口250、定制执行服务130、调度器118、路由总线120,以及协议翻译器252。
云计算机系统110可以包括一个或多个存储器存储设备(“本地储存器”)。存储器存储设备可以作为本地储存器操作。本地储存器可以利用任何类型的持久性存储设备,诸如存储器存储设备或其它计算机可读存储介质,来实现。在一些实施例中,本地储存器可以包括或实现一个或多个数据库(例如,文档数据库、关系数据库,或其它类型的数据库)、一个或多个文件存储、一个或多个文件系统,或它们的组合。本地储存器可以存储企业数据。在一些实施例中,云计算机系统110可以包括高速缓存220,其可被用作本地储存器来存储企业数据224和一条或多条定制可执行指令222。企业数据224可以从企业计算机系统282、292或者从移动计算设备202、212接收,或者可以包括由云计算机系统110转换的企业数据,或它们的组合。一条或多条定制可执行指令222可被存储在高速缓存220中。在一些实施例中,云计算机系统110可以访问充当用于云计算机系统110的本地储存器的一个或多个数据库294。数据库294可以具有更大的存储容量并且可以管理其储存器中的数据。数据库294可以存储(一条或多条)定制可执行指令222,这些指令可以在从数据库294中检索出时被加载到高速缓存220中。数据库294和/或高速缓存222可以存储对应于一个或多个模板执行环境的信息。在一些实施例中,数据库 294可以包括或实现元数据储存库124。
通信模块230可被配置为管理云计算机系统110和多个企业的计算机系统,例如,企业计算机系统282、292,之间的通信。通信模块230可被配置为管理云计算机系统110和一个或多个计算设备,例如,移动计算设备202和移动计算设备212,之间的通信。为了促进通信,通信模块230可以配备有启用通信的硬件,诸如接收器232和发送器234,或它们的组合。
企业计算机系统,诸如企业计算机系统282、292,可以物理地位于与云计算机系统110不同的地理位置(例如,远程地理位置),在一些实施例中,企业计算机系统282可以与企业计算机系统292不同。在一些实施例中,企业计算机系统282和企业计算机系统292可以是单个计算系统的一部分。企业计算机系统282、292当中每一个可以利用不同的通信协议与云计算机系统110通信。在一些实施例中,企业计算机系统282和/或企业计算机系统292可被实现为企业计算机系统150,其可以包括代理系统,以处理与多个企业计算机系统的通信。
在某些实施例中,企业计算机系统282、292当中一个或多个可以利用基于HTTP的协议与云计算机系统110进行通信。在一些实施例中,企业计算机系统282、292可以利用REST或SOAP通信协议与云计算机系统110进行通信。例如,REST协议可以支持包括 URI或URL的格式。为了利用REST协议进行通信而格式化的企业数据可以容易地被转换成诸如JSON、逗号隔开的值(CSV)和真正简单的整合(RSS)之类的数据格式。企业计算机系统282、292和云计算机系统110可以利用其它协议,诸如远程过程调用(RPC) (例如,XML RPC)进行通信。
在一些实施例中,云计算机系统110和企业计算机系统282、 292可以利用支持高速通信的通信连接进行通信。通信模块230可以维持高速通信连接,这可以使云计算机系统110能够维持与企业计算机系统282、292的持续的多个通信,用于管理和/或同步通信,以交换企业数据或递送所请求的服务。高速通信连接可以为云计算机系统 110提供处理与企业计算机系统的多个通信以完全同步企业数据的能力,而移动计算设备可以在无线通信连接的带宽中受限制来不断地接收企业数据。云计算机系统110和企业计算机系统之间的通信连接可以是可靠的,使得云计算机系统110可以接收和发送通信,以便以很少或没有中断地同步企业数据。
在一些实施例中,通信模块230可以包括被配置为支持与企业的计算机系统的通信的适配器接口122,其中一些可以支持用于通信的不同协议或技术。适配器接口122可以包括一个或多个适配器,例如,适配器242或适配器244,其每一个可被配置为根据通信协议、企业计算机系统的类型、应用的类型、服务类型,或它们的组合进行通信。适配器支持的通信协议可以特定于一个或多个企业计算机系统。例如,通信模块230可以包括被配置为用于利用由企业计算机系统282支持的特定协议与企业计算机系统282进行通信的适配器242。在另一个例子中,通信模块230可以包括被配置为用于利用由企业计算机系统 292支持的特定协议与企业计算机系统292进行通信的适配器244。适配器接口122可以与企业计算机系统282、292当中每一个建立单独的通信连接。在一些实施例中,适配器接口122可被配置为与可以包括在企业计算机系统中或由企业计算机系统实现的代理系统进行通信。适配器接口122中的适配器可被配置为根据用于与代理系统通信的定制协议进行通信。定制协议可以特定于代理系统的类型或者其中代理系统支持的企业计算机系统。适配器接口可以减少或消除对具体地为了支持与特定企业计算机系统的通信而被开发的应用,例如应用204或应用214,的需求。
云计算机系统110可以使用通信模块230与移动计算设备,例如移动计算设备202、212,进行通信。移动计算设备可以位于与云计算机系统110不同的地理位置。例如,移动计算设备202、212可以物理地位于处于与云计算机系统110不同地理位置(例如,远程地理位置)处的云计算机系统110的防火墙(例如,防火墙104)之外。移动计算设备202、212当中每一个可以利用不同的通信协议与云计算机系统110通信。在某些实施例中,移动计算设备202、212当中一个或多个可以利用基于HTTP的通信协议与云计算机系统110进行通信。在一些实施例中,通信模块230可以利用定制的通信协议与移动计算设备进行通信。定制通信协议可以是基于HTTP的通信协议。用于移动计算设备202、212之间的通信的通信协议可以支持以不同格式(例如,JSON格式)结构化的企业数据的通信,所述格式可以是移动计算设备202、212和云计算机系统110易读的。
在某些实施例中,移动计算设备202、212可以各自实现可以提供特定的用户接口以便与云计算机系统110进行通信的应用 (“app”)。特定的UI可被配置为利用特定的通信协议进行通信。在一些实施例中,特定的UI可以包括可被调用以便与云计算机系统 110进行通信的可调用接口、函数、例程、方法和/或操作。特定的 UI可以接受用于为了企业数据和/或请求服务而与企业计算机系统进行通信的参数作为输入。对服务的请求可以包括对执行一条或多条定制可执行指令,例如(一条或多条)定制可执行指令222,的请求。在一些实施例中,通过应用204、214的通信可被转换为利用定制通信协议的通信。应用204、214可被配置为处理从云计算机系统110 接收的数据。数据可以包括指示执行一条或多条定制可执行指令的结果的响应。在某些实施例中,特定的UI可以包括在云计算机系统 110中或由其实现。在一些实施例中,特定的UI可以对应于应用中的定制客户端。
云计算机系统110可以包括一个或多个可调用接口250,例如,应用编程接口(API)。可调用接口250可以使移动计算设备上的应用能够向云服务112传送请求。可调用接口250可以支持公共或标准接口,其可以允许包括它们的参数的请求根据标准化协议、体系架构风格和/或格式(例如,REST协议)从应用被接收。可调用接口250 可以是由计算设备202、212当中任何一个的用户可配置的。可调用接口250可以根据通信协议接收对服务的请求。例如,可调用接口 250可以是支持根据REST协议的请求的REST APl。在一些实施例中,可调用接口250可以从移动计算设备接收消息。可调用接口250 可被配置为根据由可调用接口250支持的格式翻译或转换从移动计算设备接收到的消息。设备应用开发人员可以连接到用于其定制应用的云服务112。在一些实施例中,可调用接口250可以由开发应用的同一个人配置,使得该人可以实现与云服务112进行通信的定制应用。
可调用接口250可以使企业计算机系统能够根据标准化的协议或格式与云服务112进行通信。类似于应用开发人员,管理企业计算机系统的人可以实现被配置为经由可调用接口250与云服务112进行通信的代码(例如,代理系统)。可调用接口250可以基于计算设备的类型、企业计算机系统的类型、应用、代理系统、服务、协议、定制可执行指令的类型、其它标准或它们的组合来实现。在一些实施例中,可调用接口250可以支持对服务的请求,其中服务包括认证、压缩、加密、利用游标的分页、基于客户端的限制、不可否认性、记录以及度量收集。在一些实施例中,可调用接口250可以为定制业务相关的服务实现,其中服务诸如认证、策略执行、响应的高速缓存、对云服务112的调用的限制、异步和同步模式之间的转换、对底层服务的呼叫的记录,或它们的组合。在一些实施例中,可调用接口250可以使用户能够提供用于由云计算机系统110实现的(一条或多条)定制可执行指令。定制可执行指令可以为云计算机系统110实现一个或多个可以使用户能够访问定制服务的可调用接口250。
在一些实施例中,可调用接口250可以包括资产接口(例如,资产目录库),其可以使得能够访问数据库294。对数据库294的访问可以包括对元数据储存库124的访问。云计算机系统或外部计算设备,例如移动计算设备202或移动计算设备212,的任何元件可以经由资产接口访问元数据储存库124。例如,开发人员或管理员可以利用应用或用户接口访问数据库294中的信息。在一些实施例中,调度器118可以利用可调用接口250访问数据库294,以确定对请求被调用的服务(例如,定制执行服务130)。
协议翻译器252可以处理消息,以确定用于消息的通信协议和/ 或将消息转换成用于目的地的通信协议。目的地可以包括一个或多个企业计算机系统282、292和/或定制执行服务130。协议翻译器252 可以转换从移动计算设备202、212当中一个接收到的请求。请求可以从由移动计算设备202或移动计算设备212支持的通信协议的格式转换成由企业计算机系统282或企业计算机系统292支持的通信协议的格式。协议翻译器252可以转换从企业计算机系统282、292接收到的响应。响应可以从由企业计算机系统282或企业计算机系统292 支持的通信协议的格式转换成由移动计算设备202或移动计算设备 212支持的通信协议的格式。在一些实施例中,由协议翻译器252执行的操作的全部或一些可以在可调用接口250和/或适配器接口222 中实现。
定制执行服务130可以启用一条或多条定制可执行指令(例如, (一条或多条)定制可执行指令222)在定制可执行环境(例如,孩子执行环境)中的执行。定制执行服务130可以处理执行定制可执行指令的请求。请求可以被处理,以确定定制可执行环境的类型,来执行定制可执行指令并,基于定制可执行环境的类型,建立一个或多个定制执行环境,以执行定制可执行指令。定制执行服务130可被实现为一个或多个被配置为执行认证请求的安全性的各种操作的功能块或模块。定制执行服务130可以包括执行环境管理器272、配置管理器 274、许可管理器276、指令加载器278、请求处理器280,以及模板环境选择器282。
如前面所解释的,模板执行环境可以由用户配置。用户可以与移动计算设备202、212当中的一个或多个关联。定义和/或配置模板执行环境的一个或多个标准可以经由可调用接口250接收。配置管理器 274可以管理模板执行环境的配置。配置管理器274可以接收经由可调用接口250配置模板执行环境的一个或多个标准。这一个或多个标准可以存储在数据库294中。配置管理器274可以基于一个或多个标准识别模板执行环境。模板执行环境可以通过利用一个或多个标准搜索数据库294来识别。
请求处理机(handler)280可以管理接收到的请求,以执行定制可执行指令。请求处理机280可以处理请求以确定执行定制可执行指令要调用的模板执行环境。请求可以包括所请求的服务的类型、执行环境的类型、识别一条或多条定制可执行指令的信息、识别定制可执行指令的其它标准,或它们的组合。请求可以被处理,以确定识别定制可执行指令的源的信息。在一些实施例中,请求可以被处理,以识别要在定制执行环境中执行的一条或多条定制可执行指令。从请求解析出的信息可以被模板环境选择器282用来选择一个或多个模板执行环境,以执行定制可执行指令。
在定制可执行指令执行时,请求处理机280可以管理从孩子执行环境接收到的响应。响应可以被处理,以确定要在孩子执行环境中执行的一条或多条定制可执行指令。孩子执行环境可以是已被建立的环境。结果可以被处理,以确定指示用于定制可执行指令的执行的结果的结果或条件代码。结果可以包括作为定制可执行指令的执行的结果而生成的其它信息。请求处理机280可以确定基于从结果确定的信息要执行的后续操作(例如,发送请求)。在结果指示定制可执行指令未被处理或遇到错误的情况下,请求处理机280可以发起相同的定制可执行指令的执行。在结果指示定制可执行指令被执行的情况下,请求处理机280可以在路由总线120的队列上放置要发送到发出请求的计算设备的消息(例如,响应)。消息可以包括指示从孩子执行环境接收到的响应确定的结果的信息。在结果指示要执行另一定制可执行指令的请求的情况下,请求处理机280可以生成请求执行所请求的定制可执行指令的请求(例如,在路由总线120的队列上放置请求)。
模板环境选择器282可以确定要用来建立孩子执行环境的模板执行环境。在一些实施例中,云计算机系统110可以存储或访问包括关于一个或多个模板执行环境的信息的数据存储。模板执行环境可以缺省地或基于一个或多个标准来选择。一个或多个标准可以包括定制可执行指令的类型、执行定制可执行指令所需的一个或多个资源、用于定制可执行指令的执行的安全性的类型、要执行的服务的类型、用户的类型、与定制可执行指令的执行相关的其它标准,或它们的组合。模板执行环境的一个或多个属性可以被处理,以选择模板执行环境。
基于选定的模板执行环境,执行环境管理器272可以建立孩子执行环境。执行环境管理器272可以执行模板执行环境。模板执行环境可以在请求被接收之前、或者与接收请求并发地或者在接收请求之后被执行,以执行定制可执行指令。孩子执行环境可以利用模板执行环境来建立。建立孩子执行环境在下面参照图3进行描述。
指令加载器278可以加载所请求的定制可执行指令,用于在第一孩子执行环境中执行。如以上所解释的,定制可执行指令可以之前准备好并存储在云计算机系统110可访问的数据存储中。在一些实施例中,为了提高效率,定制可执行指令可以在不同的时间加载,诸如在请求被接收之前或者在孩子执行环境已被建立之前。这样做可以提供提高事先加载定制可执行指令从而减少在请求这样做时执行指令的时间的处理效率的技术优点。定制可执行指令可以更早加载,因为它可能是被更频繁调用的指令。
许可管理器276可以管理用于孩子执行环境的许可。许可管理器 276可以配置对于孩子执行环境的访问许可。访问许可可以基于与用来建立孩子执行环境的模板执行环境关联存储的信息来确定。孩子执行环境的访问许可可以在定制可执行指令的执行之前为孩子执行环境配置。访问许可可以基于安全模型(例如,安全模型)来配置。安全模型可以是可配置的并且与模板执行环境关联地存储。安全模型可以定义与对于孩子执行环境的访问许可相关的属性和参数。许可管理器276可以处理安全模型的配置并且可以使用安全模型来配置对于孩子执行环境的访问许可。
图3示出了根据本发明的一些实施例、包括利用模板执行环境建立以便执行定制可执行指令的孩子执行环境的系统300的框图。具体而言,系统300示出了孩子执行环境134如何可以基于模板执行环境 132来建立。系统300示出了模板执行环境132的配置。可以从模板执行环境建立任意数量的孩子执行环境。每个孩子执行环境可以是不同的执行环境,具有专用的资源集合和对定制可执行指令的执行的访问。
模板执行环境,例如模板执行环境132,可以与配置信息302关联。配置信息302可以包括配置和/或执行模板执行环境132的信息。配置信息302可被存储在元数据储存库124中。配置信息302可以包括与模板执行环境132的执行相关的一个或多个环境设置。如以上所解释的,模板执行环境可以是特定于代码的虚拟机环境,例如, JVM环境。特定于代码的虚拟环境可以使特定类型的代码(例如,)的执行或实现能够在环境中被执行。环境设置可以对应于环境的操作。配置信息302可以包括模板执行环境132的标识符、一个或多个类型、一个或多个版本、一个或多个名称、描述,或它们的组合。一个或多个类型可以对应于关联的环境的类型或者可以在基于模板执行环境132建立的孩子执行环境134中执行的指令。配置信息 302可以至少基于与向云计算机系统110注册的用户(例如用户或租户)相关的至少一个标准。
模板执行环境132可以包括安全模型304,其包括指示对基于模板执行环境132建立的孩子执行环境134的一个或多个访问许可的信息。安全模型304可以对应于对应于环境的安全模型,例如,特定于代码的虚拟环境的安全模型。安全模型304可以指示对一个或多个通信协议的访问许可(例如,套接字许可)和/或可能被允许或拒绝的通信相关的操作。
模板执行环境132可以包括识别与建立孩子执行环境相关的一个或多个状态306的信息。一个或多个状态306可以指示与孩子执行环境的执行相关的变量或设置的状态。
模板执行环境132可以包括识别要为孩子执行环境134加载的一个或多个资源308的信息。资源可以包括类、文件、存储空间、系统文件,等等,其中一些或全部可以在孩子执行环境134的执行期间被使用。在一些实施例中,为了模板执行环境132的执行,一个或多个资源308可以在模板执行环境132被执行之前被加载。在一些实施例中,在接收到请求之后,资源308可以被加载。
定制执行服务130可以基于模板执行环境132建立孩子执行环境 134。下面是描述由模板执行环境132建立孩子执行环境所执行的操作类型的伪代码的例子。
示例伪代码
在上面的例子中,模板执行环境132可以在从定制执行服务130 接收到请求时处理请求。关于用户的信息可以从请求中提取。然后,模板执行环境132可以执行建立孩子执行环境134的操作。这种操作可以包括发出命令,该命令可以特定于模板执行环境132的类型。在这个例子中,fork()命令可以被发出,诸如可以在JVM环境中可用的。该操作可以导致孩子执行环境的创建和执行,例如,孩子特定于代码的虚拟环境,例如,孩子JVM环境。然后,执行操作的结果可以被检查,以确定命令是否被成功地发出。
孩子执行环境134可以作为适于运行一条或多条定制可执行指令 312的、安全的、孤立的执行环境被建立。孩子执行环境可以是可扩展的并且适于托管可能在将来被支持或开发的其它类型语言的定制可执行指令。在建立孩子执行环境时,一个或多个操作可以由孩子执行环境执行,如由以下伪代码说明的:
//在孩子执行环境中的操作
从用于指定租户负载用户代码的代码存储中检索用户代码到 JVM中
为特定于租户的上下文初始化所有SDK状态
禁用对租户用户代码的许可(例如,设置新的安全策略)
userResult=调用用户代码入口点返回的结果
返回userResult
在建立孩子执行环境134时,一条或多条定制可执行指令可以被加载到孩子执行环境134中。在一些实施例中,定制可执行指令312 可以在建立孩子执行环境134之前被加载。可调用接口(例如,SDK 138)的一个或多个状态设置可以被设置(例如,禁用),使得定制可执行指令312可以被限制为访问来自云计算机系统110的某些服务。一个或多个访问许可314可以基于模板执行环境132中的安全模型 304来配置。访问许可可以准予或拒绝一个或多个类型的操作在孩子执行环境134中执行。通过基于模板执行环境132建立孩子执行环境134,孩子执行环境134可以具有与模板执行环境132关联的信息 (例如,配置信息302、一个或多个状态306,和/或资源308)的拷贝或引用(例如,指针)。基于模板执行环境建立孩子执行环境的技术优势是这种技术可用于高吞吐量的情况,如果执行定制可执行指令的多个实例的许多过程可以使用完全相同的环境,则这些实例可被配置为相同并并发地执行。通过限制访问许可,可以防止孩子执行环境 134访问云计算机系统110的运行时环境的某些资源和/或敏感部分。另外,可以防止孩子执行环境134产生或建立附加的过程或其它执行环境,这些会消耗或阻碍云计算机系统110中可用的资源的使用。
现在转向图4,示出了根据本发明的一些实施例、用于为了定制可执行指令的执行而提供对定制执行环境的访问的过程400的序列图。具体而言,过程400可以使得一条或多条定制执行指令(例如,(一条或多条)定制可执行指令222或(一条或多条)定制可执行指令312)能够在基于一个或多个模板执行环境402、404(例如,(一个或多个)模板执行环境132)配置的一个或多个孩子执行环境406、 408(例如,(一个或多个)孩子执行环境134)中被执行。如上面所解释的,云服务的云计算机系统(例如,云计算机系统110)可以包括可以促进一个或多个孩子执行环境的建立以便执行一条或多条定制可执行指令的定制执行服务(例如,定制执行服务130)。过程 400可以使计算设备(例如,计算设备102)能够通过执行一条或多条定制可执行指令来向云计算机系统110传送实现一个或多个操作的请求。请求可以从移动计算设备接收,其中移动计算设备可以位于与云计算机系统110和执行环境物理分离的不同地理位置。因此,计算设备102可以与云计算机系统110通信,而不管它们各自的位置。
云计算机系统110可以处理确定要执行的一条或多条定制可执行指令的请求并且可以为那些定制可执行指令的执行建立执行环境。在一些实施例中,云计算机系统110可以处理请求,该请求可能不具有执行一条或多条定制可执行指令的显式请求,并且可以确定是否有任何定制可执行指令可被执行以满足该请求。在一些实施例中,云计算机系统110可以识别可被执行以提供所请求的服务的一条或多条定制可执行指令。如在下面进一步详细解释的,云计算机系统110可以基于模板执行环境402、404建立孩子执行环境406、408。模板执行环境可以基于请求中的信息来选择,可以基于所请求的服务的类型来选择,或它们的组合。云计算机系统110可以使定制可执行指令能够为不同的服务或操作类型提供,作为让云计算机系统110选择定制可执行指令以便向用户提供服务的基础。孩子执行环境可以提供支持定制可执行指令的执行的安全且有保障的(secure)环境。
过程400被示为逻辑序列图,其操作表示可以在硬件、计算机指令或它们的组合中实现的操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当指令由一个或多个处理器执行时,执行所阐述的操作。一般而言,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、应用、对象、组件、数据结构等等。操作被描述的次序并不意在被认为是限制,并且任何数量的所述操作可以以任何次序和/或并行地组合,以实现过程。
为了开始过程400,计算设备102可以向云计算机系统110发送数据410(例如,企业数据)。数据410可以包括对服务的一个或多个请求,其中服务例如定制执行服务。数据410中的请求可以指示所请求的服务的类型、识别一条或多条定制可执行指令的信息、识别定制可执行指令的类型的信息、用于执行定制可执行指令的其它标准 (例如,条件、时间段或环境状态),或它们的组合。数据410可以包括来自企业计算机系统的对服务的请求。在一些实施例中,企业数据可以包括多个请求。每个请求可以针对相同或不同的服务。数据 410可以包括认证信息,诸如用户识别信息、凭证、帐户信息,等等,其中一些或全部可以对确定与计算设备关联的用户的安全认证有用。计算设备102和云计算机系统110之间的通信可以通过使用定制通信协议来促进。
过程400可以包括在数据410接收到的、由调度器118处理的每个请求。调度器118可以实现一个或多个处理请求的操作420。操作 420可以包括将请求引导到云计算机系统110的另一个组件。例如,调度器118可以实现将请求路由到云计算机系统110的一个或多个服务的操作420,其中服务例如定制执行服务130。调度器118可以经由负载平衡器从计算设备102接收请求。通过调度器118的另一个操作420可以包括解析请求,以确定请求中的信息,诸如订户(例如,租户ID)、服务ID、应用名称、应用版本、请求资源、操作和参数,等等。调度器118可以基于从请求中解析出的信息确定目标服务。在一些实施例中,请求可以包括识别要调用的定制执行服务(例如,定制执行服务130)的信息。在一些实施例中,调度器118可以接收由云计算机系统110中的组件,诸如服务,在内部发送的请求。在确定目标服务时,调度器118可以在路由总线120的队列上存储数据422。数据422可以包括从数据410识别的请求。数据422可以包括指示基于识别出的请求选择的服务的消息。在路由总线120的队列上放置消息之后,调度器118可以等待其它请求,或者来自路由总线120的对所请求的服务的响应。
过程400可以包括路由总线120实现一个或多个操作430。操作 430可以包括处理队列上的消息并把消息递送到由该消息中的信息识别出的服务。另一个操作430可以包括处理从服务接收到的一个或多个响应。响应可以针对从计算设备102请求的服务被接收。过程400 可以包括路由总线120向定制执行服务130发送请求440。从队列被处理掉的请求可以被引导到由该请求识别出的服务。
过程400可以包括为执行定制可执行指令的每个请求实现一个或多个操作442的定制执行服务130。从路由总线120被指引的请求可以包括识别定制可执行指令的源的信息。在一些实施例中,请求可以包括可被定制执行服务130用来识别要在定制执行环境中执行的一条或多条定制可执行指令的信息。请求可以包括所请求的服务的类型、执行环境的类型、识别一条或多条定制可执行指令的信息、识别定制可执行指令的其它标准,或它们的组合。
由定制执行服务130实现的一个操作442可以包括处理识别要被用来为所请求的定制可执行指令配置定制可执行环境(例如,孩子执行环境)的一个或多个模板执行环境402、404的请求。在一些实施例中,模板执行环境可以是特定于代码的虚拟机环境(例如,JVM 环境)。模板执行环境可以基于定制可执行指令的类型、所请求的服务类型、用户的类型或它们的组合来选择。例如,可以为请求定制可执行指令的执行的用户选择模板执行环境。模板执行环境可针对用户被配置和/或被配置为执行特定类型的指令。在一些实施例中,请求可以包括多个请求或者定制执行服务130可以识别要被用来建立在其中执行所请求的定制可执行指令的一个或多个定制可执行环境(例如,孩子执行环境)的多个模板执行环境。
另一个操作442可以包括配置模板执行环境。例如,模板执行环境可以基于被请求执行的定制可执行指令的类型来配置。在一些实施例中,模板执行环境402、404可以在接收到执行定制可执行指令的请求之前被配置。在一些实施例中,定制执行服务130可以为被识别为建立定制执行环境的每个模板执行环境实现一个或多个操作446。一个或多个操作446可以类似于一个或多个操作442。操作446可以包括配置模板执行环境,例如,模板执行环境404。
过程400可以包括执行模板执行环境的定制执行服务130,其中模板执行环境例如模板执行环境402或模板执行环境404。模板执行环境可以是被识别为用于为所请求的定制可执行指令建立定制执行环境的环境。在图4所示的例子中,过程400可以包括定制执行服务 130实现要执行模板执行环境402以便建立孩子执行环境406的一个或多个操作444。执行模板执行环境可以对应于执行特定于代码的虚拟环境(例如,JVM环境)。过程400可以包括定制执行服务130 实现要执行模板执行环境404以便建立孩子执行环境408的一个或多个操作448。一个或多个操作444和一个或多个操作448可以并发执行。因此,模板执行环境402和模板执行环境404可以并发地建立。在一些实施例中,用于另一个模板执行环境404的一个或多个操作 448可以在一个或多个操作446(例如,配置模板执行环境404)被实现之后实现。被实现为执行模板执行环境(例如,模板执行环境 402或模板执行环境404)的操作(例如,操作444或操作448)可以包括实现使模板执行环境被执行的一条或多条指令。例如,操作可以包括:初始化模板执行环境(例如,特定于代码的虚拟机)和执行模板执行环境。如前面所解释的,模板执行环境可以在模板执行环境被用来建立孩子执行环境之前被执行。
过程400可以包括实现基于模板执行环境建立孩子执行环境的一个或多个操作。例如,过程400可以包括实现为了定制可执行指令的执行而在模板执行环境402中建立孩子执行环境406的一个或多个操作450。在另一个例子中,过程400可以包括实现为了定制可执行指令的执行而在模板执行环境404中建立孩子执行环境408的一个或多个操作460。建立孩子执行环境的一个操作(例如,操作450或操作 460)可以包括实现或执行使孩子执行环境基于模板执行环境被建立的指令或命令。例如,特定于代码的指令,诸如JVM模板执行环境中的fork()命令,可以被执行,这将造成(例如,产生)孩子执行环境被建立。基于模板执行环境的孩子执行环境建立可以继承模板执行环境的配置。所继承的配置可以包括以下一个或多个:设置、变量、参数、状态、规则、与孩子执行环境的操作或实现相关的其它标准,或它们的组合。建立孩子执行环境的另一个操作(例如,操作450或操作460)可以包括在其实现或执行之前配置指令或命令的一个或多个参数。在一些实施例中,模板执行环境可以通过在建立孩子执行环境的命令或指令的执行之前改变设置来配置。
过程400可以包括在孩子执行环境中实现一个或多个操作。一个或多个操作可以包括在孩子执行环境中执行所请求的定制可执行指令。例如,一个或多个操作452可以在孩子执行环境406中实现。在另一个例子中,一个或多个操作462可以在孩子执行环境408中实现。在孩子执行环境中实现的一个操作(例如,操作452或操作462)可以包括加载由计算设备102请求的定制可执行指令。定制可执行指令可以由定制执行服务130基于从计算设备102接收到的请求来识别。定制可执行指令可以从与云计算机系统110关联的数据库加载。加载可执行指令可以包括基于一个或多个标准(例如,所请求的服务的类型或定制可执行指令的类型)从数据库搜索指令并且检索识别出的定制可执行指令。在孩子执行环境中实现的另一个操作配置以下一个或多个:变量、设置、状态、访问许可、与孩子执行环境的配置相关的其它标准,或它们的组合。例如,过程400可以包括配置对于孩子执行环境的访问许可。访问许可可被配置为让孩子执行环境除去访问许可或限制定制可执行指令获得在指令执行过程中配置孩子执行环境的访问。另一个操作可以包括在孩子执行环境的配置之后在孩子执行环境中执行所请求的定制可执行指令。过程400可以包括与在不同的孩子执行环境408中执行不同的孩子可执行指令并发地在孩子执行环境 406中执行定制可执行指令。
在一些实施例中,被描述为在孩子执行环境中执行的一个或多个操作可以在模板执行环境中执行。例如,定制可执行指令可以在孩子执行环境被建立之前在模板执行环境中加载。类似地,孩子执行环境的配置可以在孩子执行环境的建立之前被执行。在孩子执行环境建立之前,孩子执行环境可被配置和/或定制可执行指令可被加载,因为这样做可以改善用于执行定制可执行指令的执行时间。这种技术可以为更频繁地被执行的定制可执行指令实现,从而减少执行指令的处理时间。
在一些实施例中,所请求的定制可执行指令可以是网关指令或者可以是使一个或多个其它定制可执行指令被执行的网关模块的一部分。例如,定制可执行指令的执行会导致另一定制可执行指令被加载用于在孩子执行环境中执行。
过程400可以包括孩子执行环境向定制执行服务130返回结果。例如,孩子执行环境406可以向定制执行服务130返回结果454并且孩子执行环境408可以向定制执行服务130返回结果464。结果可以响应于一条或多条定制可执行指令的执行而被返回或者可以在所请求的定制可执行指令的处理完成后返回。结果可以包括指示执行定制执行指令的条件或结果的值。在一些实施例中,结果可以包括指示或识别要执行的一条或多条其它定制可执行指令的信息。
过程400可以包括定制执行服务130基于从孩子执行环境接收到的结果执行一个或多个操作。例如,定制执行服务130可以基于从孩子执行环境406接收到的结果454执行一个或多个操作456。在另一个例子中,定制执行服务可以基于从孩子执行环境408接收到的结果 464执行一个或多个操作466。在一些实施例中,定制执行服务130 可以基于从不同的孩子执行环境接收到的多个结果执行一个或多个操作(例如,操作456和操作466)。一个这种操作(例如,操作456 或操作466)可以包括处理结果,以确定要在孩子执行环境中执行的一条或多条定制可执行指令。孩子执行环境可以是已被建立的环境。另一个操作可以包括处理结果,以确定指示用于定制可执行指令的执行的结果的结果或状态代码。结果可以包括作为定制可执行指令的执行的结果而生成的其它信息。还有另一操作可以包括生成用于递送到计算设备(例如,计算设备102)的消息。计算设备可以是请求定制可执行指令的执行的设备。消息可以包括指示执行定制可执行代码的结果的信息。定制执行服务130可以为每个结果生成一个或多个消息。在一些实施例中,可以为多个结果生成单个消息。
过程400可以包括定制执行服务130将消息放在路由总线120的队列上。定制执行服务130可以把它生成的每个消息放在路由总线的队列上。例如,定制执行服务130可以把消息458放在路由总线120 的队列上。消息458可以包括指示定制可执行指令在孩子执行环境 406中的执行结果的信息。例如,定制执行服务130可以把消息468 放在路由总线120的队列上。消息468可以包括指示定制可执行指令在孩子执行环境408中的执行结果的信息。
过程400可以包括路由总线120处理离开队列的消息,例如消息 458或消息468。当消息被处理时,它可以被指引到调度器118,用于递送到计算设备102。调度器118可以执行把消息458、468拉离路由总线120的操作470。随后,调度器118可以向计算设备102发送指示包括在从队列中提取的消息中的信息的一个或多个响应(例如,响应472或响应482)。该响应可以指示执行定制可执行指令的结果。
应当认识到,过程400是说明性的,并且变化和修改是可能的。被描述为顺序的步骤可以并行地执行,并且步骤的次序可以变化,并且步骤可以被修改、组合、添加或省略。
通过在孩子执行环境中执行定制可执行指令,定制可执行指令可以在沙箱环境(例如,孩子执行环境)中执行,以便不干扰在为其用户(例如,租户)执行的云计算机系统中的其它操作(例如,租户操作)。通过修改(例如,限制)孩子执行环境中的访问许可,可以防止定制可执行指令生成不被为了在孩子执行环境中执行而支持的附加操作或线程。通过防止不被支持的线程或操作被执行,计算资源可以为云计算机系统减少或保留。
在图5中,示出了示出根据本发明的一些实施例、用于为了定制可执行指令的执行而提供对定制执行环境的访问的过程500的流程图。具体而言,过程500使用户能够在云服务的定制执行环境中执行定制可执行指令。过程500建立被配置为执行定制可执行指令的孩子执行环境。孩子执行环境是基于被配置为用于一个或多个标准的模板执行环境设置的。在某些实施例中,云计算机系统(例如,云计算机系统 110)可以实现过程500。
过程500被示为逻辑流程图,其操作表示可以在硬件、计算机指令或它们的组合中实现的操作。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当指令由一个或多个处理器执行时,执行所阐述的操作。一般而言,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、应用、对象、组件、数据结构等等。操作被描述的次序并不意在被认为是限制,并且任何数量的所述操作可以以任何次序和/或并行地组合,以实现过程。
在方框505开始,过程500可以包括在云计算机系统中执行模板执行环境。模板执行环境可被配置为建立孩子执行环境,每个孩子执行环境可被配置为执行一条或多条定制可执行指令。模板执行环境可以在执行模板执行环境之前被配置。如前面参照图3所解释的,配置模板执行环境可以包括初始化模板执行环境的设置和/或初始化模板执行环境的状态。
在方框510,过程500可以包括接收执行定制可执行指令的请求。例如,云计算机系统110可以从计算设备102接收执行定制可执行指令的请求。在一些实施例中,请求可以包括多条定制可执行指令,其中全部或一些可以对应于一种或多种类型的定制可执行指令。在方框 515,过程500可以包括建立执行所请求的定制可执行指令的孩子执行环境。孩子执行环境可以在云计算机系统中建立。孩子执行环境可以基于模板执行环境来建立。孩子执行环境可以被建立,以便如果被请求的话就运行多条定制可执行指令。在一些实施例中,模板执行环境可以基于定制可执行指令的类型来选择。照此,不同的模板执行环境可以被选择,以便为特定类型的定制可执行指令建立孩子执行环境。
在方框520,一旦孩子执行环境被建立,所请求的定制可执行指令就可以被加载,用于在孩子执行环境中执行。在方框525,过程 500可以包括配置用于所建立的孩子执行环境的一个或多个设置。设置可以包括一个或多个访问许可,诸如调整用于孩子执行环境的一个或多个环境或执行变量的状态的许可。访问许可可被配置为防止定制可执行指令超出对环境允许的资源的访问之外的对环境的不想要的操纵。例如,对系统文件的访问可以在定制可执行指令的执行过程中受到限制。通过这样做,对资源(例如,存储器或处理资源)的访问或者产生附加线程的能力可以被控制(例如,限制或允许)以创建期望的环境。访问许可可以被调整,从而确保孩子执行环境被适当地沙箱化或保护和/或防止定制可执行指令干扰在其它执行环境中执行的指令。最后,在方框530,过程500可以包括在为指令建立的孩子执行环境中执行所请求的定制可执行指令。过程500可以在方框535结束。
应当认识到,过程500是说明性的,并且变化和修改是可能的。被描述为顺序的步骤可以并行地执行,并且步骤的次序可以变化,并且步骤可以被修改、组合、添加或省略。在某些实施例中,当企业数据经由到网络的无线通信连接被接收时,过程500可以被实现。例如,过程500可以对执行一条或多条定制可执行指令的每个请求执行。应当指出的是,过程500可以对在来自计算设备的多个通信中接收到的请求并发地执行。在某些实施例中,方框505可以对每个模板执行环境执行。方框510可以在方框505被执行之后立即执行,或者可以稍后被执行。模板执行环境可在方框510实现之后并且在孩子执行环境基于模板执行环境被建立时的方框515之前被配置。在一些实施例中,方框520可以在孩子执行环境在方框515被建立之前实现。
图6绘出了用于实现其中一种实施例的分布式系统600的简化图。分布式系统600可以实现计算机系统100、计算机系统200的全部或一些元件,或它们的组合。分布式系统600可以实现操作、方法和/ 或过程(例如,图4的过程400和图5的过程500)。在所示出的实施例中,分布式系统600包括一个或多个客户端计算设备602、604、 606和608,这些客户端计算设备被配置为经一个或多个网络610执行并操作诸如web浏览器、专属客户端(例如,Oracle Forms)等的客户端应用。在某些实施例中,一个或多个客户端计算设备602- 608可以包括或实现图1的云计算机系统110或计算设备102。服务器612可以经由网络610与远程客户端计算设备602、604、606和 608通信耦合。服务器612可以包括计算设备102或云计算机系统 110。
在各种实施例中,服务器612可以适于运行由系统的一个或多个组件提供的一个或多个服务或软件应用。服务或软件应用可以包括非虚拟和虚拟环境。虚拟环境可以包括用于虚拟事件、展示 (tradeshow)、模拟器、教室、购物交流和企业的那些环境,无论是二维还是三维(3D)表示、基于页面的逻辑环境,或以其它方式。在一些实施例中,这些服务可以作为基于web的或云服务依据软件即服务(SaaS)模型向客户计算设备602、604、606和/或608的用户提供。操作客户端计算设备602、604、606和/或608的用户又可以利用一个或多个客户端应用与服务器612交互,以利用由这些组件提供的服务。
在该图中所绘出的配置中,系统600的软件组件618、620和622被示为在服务器612上实现。在其它实施例中,系统600的一个或多个组件和/或由这些组件提供的服务也可以由一个或多个客户端计算设备602、604、606和/或608实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以在硬件、固件、软件或其组合中实现。应当认识到的是,各种不同的系统配置是可能的,这些配置可以与分布式系统 600不同。因此,该图中所示的实施例是用于实现实施例系统的分布式系统的一个例子并且不是要限制。
客户端计算设备602、604、606和/或608可以是便携式手持设备(例如,蜂窝电话、计算平板、个人数字助理 (PDA))或可穿戴设备(例如,Google头戴式显示器),运行诸如Microsoft Windows的软件,和/或诸如iOS、 Windows Phone、Android,BlackBerry 10、Palm OS等各种移动操作系统,并且启用互联网、电子邮件、短消息服务(SMS)、或其它的通信协议。客户端计算设备可以是通用个人计算机,作为例子,包括运行各种版本的MicrosoftApple和/或Linux操作系统的个人计算机和/或便携式计算机。客户端计算设备可以是运行任何各种市售或类UNIX操作系统当中任意一种,包括但不限于各种GNU/Linux操作系统,诸如像 Google Chrome OS,的工作站计算机。作为替代,或附加地,客户端计算设备602、604、606和608可以是任何其它电子设备,诸如能够经(一个或多个)网络610通信的瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的 Microsoft Xbox游戏控制台),和/或个人消息传送设备。
虽然示例性分布式系统600被示为具有四个客户端计算设备,但任何数量的客户端计算设备可以被支持。其它设备,诸如具有传感器的设备等,可以与服务器612交互。
分布式系统600中的(一个或多个)网络610可以是本领域技术人员熟悉的、可以利用各种市售协议当中任意一种支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/网际协议)、SNA(系统网络体系结构)、IPX(互联网数据包交换)、AppleTalk,等等。仅仅作为例子,(一个或多个)网络610可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络610可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网 (PSTN)、红外网络、无线网络(例如,依据电气和电子学研究所 (IEEE)802.11协议套件、和/或任何其它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
服务器612可以由一个或多个通用计算机、专用服务器计算机 (作为例子,包括PC(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器,等等)、服务器群、服务器集群,或者任何其它适当的布置和/或组合组成。服务器612可以包括运行虚拟操作系统的一个或多个虚拟机,或涉及虚拟化的其它计算体系架构。逻辑存储设备的一个或多个柔性池可以被虚拟化,以维护用于服务器的虚拟存储设备。虚拟网络可以由服务器612利用软件定义的联网来控制。在各种实施例中,服务器612可以适于运行在前面公开内容中所描述的一个或多个服务或软件应用。例如,服务器612可以对应于用于执行上面根据本公开内容的实施例所描述的处理的服务器。
服务器612可以运行包括上面讨论的操作系统当中任意一种在内的操作系统,以及任何市售的服务器操作系统。服务器612还可以运行各种附加的服务器应用和/或中间层应用当中任意一种,包括 HTTP服务器、FTP服务器、CGI(公共网关接口)服务器、服务器、数据库服务器,等等。示例性数据库服务器包括但不限于从 Oracle、Microsoft、Sybase、IBM(国际商业机器)等等可商购的那些。
在一些实现中,服务器612可以包括一个或多个应用,以分析和合并从客户端计算设备602、604、606和608的用户接收的数据馈送和/或事件更新。作为例子,数据馈送和/或事件更新可以包括,但不限于,馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器612还可以包括一个或多个应用,以经由客户端计算设备602、604、606和 608的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统600还可以包括一个或多个数据库614和616。数据库614和616可以驻留在各个位置。作为例子,数据库614和616中的一个或多个可以驻留在服务器612本地的非临时性存储介质上(和 /或驻留在服务器612中)。作为替代,数据库614和616可以远离服务器612,并且经基于网络的或专用的连接与服务器612通信。在一组实施例中,数据库614和616可以驻留在存储区域网络(SAN)中。类似地,用于执行服务器612所具有的功能的任何必要的文件都可以适当地本地存储在服务器612上和/或远程存储。在一组实施例中,数据库614和616可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。一个或多个数据库614和616可以包括或实现为数据库114。
图7是根据本公开内容的实施例的系统环境700的一个或多个组件的简化框图,通过其,由实施例系统的一个或多个组件提供的服务可以作为云服务被提供。系统环境700可以包括或实现计算机系统 100的全部或一些元件、计算机系统200的全部或一些元件,或它们的组合。系统环境700可以实现操作、方法和/或过程(例如,图4 的过程400和图5的过程500)。在所示出的实施例中,系统环境 700包括一个或多个可以被用户用来与提供云服务的云基础设施系统 702交互的客户端计算设备704、706和708。客户端计算设备可被配置为操作客户端应用,诸如web浏览器、专用客户端应用(例如, Oracle Forms),或某种其它应用,其可以被客户端计算设备的用户用来与基础设施系统702交互,以使用由云基础设施系统702提供的服务。
应当认识到,该图中所绘出的云基础设施系统702可以具有除绘出的那些之外的其它组件。另外,图中所绘出的实施例中只是可以结合本发明的实施例的云基础设施系统的一个例子。例如,云基础设施系统702可以包括或实现计算机系统110的全部或部分。在一些其它的实施例中,云基础设施系统702可以具有比图中所示更多或更少的组件、可以组合两个或更多个组件,或者可以具有组件的不同配置或布置。
客户端计算设备704、706和708可以是类似于上面对602、604、 606和608所描述的设备。
虽然示例性系统环境700被示为具有三个客户端计算设备,但是任何数量的客户端计算设备都可以被支持。诸如具有传感器的设备等的其它设备可以与云基础设施系统702交互。
(一个或多个)网络710可以促进客户端704、706和708与云基础设施系统702之间的通信和数据交换。每个网络可以是本领域技术人员熟悉的、可以支持利用任何各种商业协议的任何类型的网络,包括上面对(一个或多个)网络710所描述的网络。
云基础设施系统702可以包括一个或多个计算机和/或服务器,这可以包括以上对服务器712所描述的服务器。
在某些实施例中,由云基础设施系统提供的服务可以包括可以让云基础设施系统的用户按需使用的服务的托管,诸如在线数据存储和备份解决方案、基于web的电子邮件服务、托管的办公套件和文档协作服务、数据库处理、管理的技术支持服务等。由云基础设施系统提供的服务可以动态地扩展,以满足其用户的需求。由云基础设施系统提供的服务的具体实例在本文中称作为“服务实例”。一般而言,来自云服务提供商系统的、经由诸如互联网的通信网络对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的办公场所服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订阅和使用应用。
在一些例子中,在计算机网络云基础设施中的服务可以包括对由云供应商提供给用户的存储、托管数据库、托管web服务器、软件应用或其它服务的受保护的计算机网络访问,或者如以其它方式在本领域中已知的。例如,服务可以包括通过互联网对云上远程存储的密码保护的访问。作为另一个例子,服务可以包括用于被联网开发人员私人使用的基于web服务的托管关系数据库和脚本语言中间件引擎。作为另一个例子,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些实施例中,云基础设施系统702可以包括以自助服务、基于订阅、弹性可扩展、可靠、高可用性并且安全的方式交付给客户的一套应用、中间件和数据库服务产品。这种云基础设施系统的例子是由本受让人提供的Oracle Public Cloud。
大容量数据,有时被称为大数据,可以在许多层面上和在不同规模由基础设施系统托管和/或操纵。这种数据可以包括如此大而复杂以至于难以利用典型的数据库管理工具或传统的数据处理应用来处理的数据集。例如,百万兆字节的数据利用个人计算机或他们的基于机架的对等体可能是难以存储、检索和处理的。这种尺寸的数据会难以利用最当前的关系数据库管理系统和桌面统计和可视化包工作。它们会要求运行几千台服务器计算机的大规模并行处理软件,超出常用软件工具的结构,以便在可容忍的经过时间内捕获、安排、管理和处理数据。
极其大的数据集可以由分析师和研究人员存储并操纵,以可视化大量数据、检测趋势,和/或以其它方式与数据进行交互。数十、数百或数千并行连接的处理器可以对这些数据采取行动,以便呈现它或模拟对数据的外力或它代表什么。这些数据集可以涉及结构化数据,诸如在数据库中或根据结构化模型以其它方式组织的结构化数据,和 /或非结构化数据(例如,电子邮件、图像、数据blob(二进制大对象)、网页、复杂事件处理)。通过充分利用实施例相对快速地将更多(或更少)计算资源聚焦到目标上的能力,云基础设施系统可以更好地可用于基于来自企业、政府机构、研究机构、私营个体、意见相同的个人或组织,或其它实体的需求对大数据集执行任务。
在各种实施例中,云基础设施系统702可以适于自动供给、管理和跟踪客户对由云基础设施系统702提供的服务的订阅。云基础设施系统702可以经由不同的部署模型提供云服务。例如,服务可以根据公共云模型来提供,其中云基础设施系统702由销售云服务的组织拥有(例如,被Oracle拥有)并且使得服务对一般公众和不同行业的企业可用。作为另一个例子,服务可以根据私有云模型来提供,其中云基础设施系统702只为单个组织运营并且可以为该组织内的一个或多个实体提供服务。云服务也可以根据社区云模型来提供,其中云基础设施系统702和由云基础设施系统702提供的服务被相关社区中的若干个组织共享。云服务也可以根据混合云模型来提供,它是两种或更多种不同模型的组合。
在一些实施例中,由云基础设施系统702提供的服务可以包括根据软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别、或包括混合服务的其它服务类别提供的一个或多个服务。客户经由订阅订单可以订阅由云基础设施系统702提供的一个或多个服务。云基础设施体系702然后执行处理,以提供在客户的订阅订单中的服务。
在一些实施例中,由云基础设施系统702提供的服务可以包括但不限于,应用服务、平台服务和基础设施服务。在一些实例中,应用服务可以经由SaaS平台由云基础设施系统提供。SaaS平台可被配置为提供属于SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和交付一套按需应用的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由 SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可以提供各种不同的SaaS服务。例子包括但不限于,提供用于大型企业的销售绩效管理、企业整合和业务灵活性的解决方案的服务。
在一些实施例中,平台服务可以经由PaaS平台由云基础设施系统提供。PaaS平台可被配置为提供属于PaaS类别的云服务。平台服务的例子可以包括但不限于,使组织(诸如Oracle)能够在共享、公共的体系架构上整合现有应用,以及利用由平台提供的共享服务构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS 服务的底层软件和基础设施。客户可以获得由云基础设施系统提供的 PaaS服务,而无需客户购买单独的许可和支持。平台服务的例子包括但不限于,Oracle Java云服务(Oracle Java Cloud Service,JCS)、Oracle数据库云服务(Oracle Database Cloud Service, DBCS)以及其它服务。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具并且也可以控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle Fusion Middleware服务)和Java云服务。在一种实施例中,数据库云服务可以支持使组织能够集中数据库资源并且以数据库云的形式为客户提供数据库即服务的共享服务部署模型。中间件云服务可以为客户提供平台来开发和部署各种商业应用,并且Java云服务可以为客户提供在云基础设施系统中部署Java 应用的平台。
各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务促进对诸如存储、网络和其它基本计算资源的底层计算资源的管理和控制,以便让客户利用由SaaS平台和PaaS平台提供的服务。
在某些实施例中,云基础设施系统702也可以包括用于提供用来向云基础设施系统的客户提供各种服务的资源的基础设施资源730。在一种实施例中,基础设施资源730可以包括诸如服务器、存储和网络资源的硬件的预先集成和优化组合,以便执行由PaaS平台和SaaS 平台提供的服务。
在一些实施例中,在云基础设施系统702中的资源可以被多个用户共享并且动态地按需重新分配。此外,资源可以被分配给在不同时区的用户。例如,云基础设施系统730可以使在第一时区的第一组用户能够利用云基础设施系统的资源指定的小时数,并且然后使相同资源重新分配给位于不同时区的另一组用户,从而最大化资源的利用率。
在某些实施例中,可以提供由云基础设施系统702的不同组件或模块以及由云基础设施系统702提供的服务共享的多个内部共享服务 732。这些内部共享服务可以包括,但不限于,安全和身份服务、集成服务、企业信息库服务、企业管理服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务,等等。
在某些实施例中,云基础设施系统702可以提供在云基础设施系统中云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一种实施例中,云管理功能可以包括用于供给、管理和跟踪由云基础设施系统702接收到的客户的订阅等能力。
在一种实施例中,如该图中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块720、订单编制模块722、订单供给模块724、订单管理和监视模块726、以及身份管理模块728。这些模块可以包括一个或多个计算机和/或服务器或者利用一个或多个计算机和/或服务器来提供,该一个或多个计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器群、服务器集群、或任何其它适当的布置和/或组合。
在示例性操作734中,使用客户端设备,诸如客户端设备704、 706或708,的客户可以通过请求由云基础设施系统702提供的一个或多个服务和为由云基础设施系统702提供的一个或多个服务下订阅订单来与云基础设施系统702交互。在某些实施例中,客户可以访问云用户界面(UI)、云UI 712、云UI 714和/或云UI 716并且经由这些UI下订阅订单。响应于客户下订单而被云基础设施系统602接收到的订单信息可以包括识别客户和客户想要订阅的由云基础设施系统702提供的一个或多个服务的信息。
在客户下订单之后,订单信息经由云UI 712、714和/或716被接收。
在操作736,订单被存储在订单数据库718中。订单数据库718 可以是由云基础设施系统718操作并且结合其它系统元素一起操作的若干个数据库之一。
在操作738,订单信息被转发到订单管理模块720。在一些情况下,订单管理模块720可被配置为执行与订单相关的计费和记帐功能,诸如验证订单,以及在验证后预订订单。
在操作740,关于订单的信息被传送到订单编制模块722。订单编制模块722可以利用订单信息来编制用于由客户所下订单的服务和资源的供给。在一些情况下,订单编制模块722可以编制资源的供给,以利用订单供给模块724的服务支持订阅的服务。
在某些实施例中,订单编制模块722使得能够管理与每个订单相关联的业务流程并且应用业务逻辑,以确定订单是否应该继续供给。在操作742,当接收到新订阅的订单时,订单编制模块722发送请求到订单供给模块724,以分配资源和配置履行订阅订单所需的那些资源。订单供给模块724使得能够分配用于客户订阅的服务的资源。订单供给模块724在由云基础设施系统700提供的云服务和用于为了提供所请求的服务供给资源的物理实现层之间提供一层抽象。订单编制模块722可以因此与实现细节隔离,诸如服务和资源是实际上在运行中被供给还是预先被供给并且只在请求时被分配/指定。
在操作744,一旦服务和资源被供给,所提供的服务的通知就可以通过云基础设施系统702的订单供给模块724发送给在客户端设备 704、706和/或708的客户。
在操作746,客户的订阅订单可以被订单管理和监视模块726管理和跟踪。在一些情况下,订单管理和监视模块726可被配置为收集订阅订单中的服务的使用统计数据,诸如使用的存储量、传送的数据量、用户的数量、以及系统上线时间和系统停机时间的量。
在某些实施例中,云基础设施系统700可以包括身份管理模块 728。身份管理模块728可被配置为提供身份服务,诸如在云基础设施系统700中的访问管理和授权服务。在一些实施例中,身份管理模块728可以控制关于希望利用由云基础设施系统702提供的服务的客户的信息。这种信息可以包括验证这种客户的身份的信息和描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段、等等)执行哪些行为的信息。身份管理模块728也可以包括关于每个客户的描述性信息和关于描述性信息可以如何以及由谁来访问和修改的管理。
图8示出了其中可以实现本发明的各种实施例的示例性计算机系统800。计算机系统800可以被用来实现上述任何计算机系统。例如,计算机系统100的全部或一些元件、计算机系统200的全部或一些元件或它们的组合可以包括在计算机系统800中或在其中实现。计算机系统800可以实现操作、方法和/或过程(例如,图4的过程400或图5的过程500)。如该图中所示出的,计算机系统800包括经由总线子系统802与多个外围子系统通信的处理单元804。这些外围子系统可以包括处理加速单元806、I/O子系统808、存储子系统818和通信子系统824。存储子系统818包括有形计算机可读存储介质822 和系统存储器810。
总线子系统802提供了用于让计算机系统800的各种组件和子系统按意图彼此通信的机制。虽然总线子系统802被示意性地示为单条总线,但是总线子系统的备选实施例可以利用多条总线。总线子系统 802可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及利用任何各种总线体系结构的局部总线。例如,这种体系结构可以包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元804控制计算机系统800的操作。一个或多个处理器可以被包括在处理单元804中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元804可以被实现为一个或多个独立的处理单元832和/或834,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元804也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例中,处理单元804可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器804中和/或存储子系统818中。通过适当的编程,(一个或多个)处理器804可以提供上述各种功能。计算机系统800可以附加地包括处理加速单元806,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统808可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/ 或手势识别设备,诸如的Microsoft运动传感器,其使得用户能够通过利用手势和语音命令的自然用户接口控制诸如的Microsoft 360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google)中的输入的Google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,导航器)交互的语音识别感测设备
用户接口输入设备也可以包括,但不限于,三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非视觉显示器,等等。显示子系统可以是阴极射线管 (CRT)、诸如利用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统800向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,在视觉上传达文字、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
计算机系统800可以包括包含软件元素、被示为当前位于系统存储器810中的存储子系统818。系统存储器810可以存储可加载并且可在处理单元804上执行的程序指令,以及在这些程序执行期间所产生的数据。
依赖于计算机系统800的配置和类型,系统存储器810可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元804立即访问和/或目前正被处理单元804操作和执行的数据和/ 或程序模块。在一些实现中,系统存储器810可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如在启动期间,包含有助于在计算机系统800的元件之间传送信息的基本例程的基本输入/输出系统 (BIOS),通常可以被存储在ROM中。作为例子,但不是限制,系统存储器810也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序812,程序数据814,以及操作系统816。作为例子,操作系统816可以包括各种版本的MicrosoftApple和/或Linux操作系统、各种商用或类UNIX操作系统(包括但不限于各种 GNU/Linux操作系统、Google操作系统,等等)和/或诸如 iOS、Phone、OS、10 OS和 OS操作系统的移动操作系统。
存储子系统818也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统818中。这些软件模块或指令可以被处理单元804执行。存储子系统818也可以提供用于存储根据本发明被使用的数据的储存库。
存储子系统818也可以包括可被进一步连接到计算机可读存储介质822的计算机可读存储介质读取器820。与系统存储器810一起并且,可选地,与其相结合,计算机可读存储介质822可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移动存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质822也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括有形的、非临时性计算机可读存储介质,诸如RAM、ROM、电可擦除可编程 ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。当被指定时,这也可以包括非有形的、临时性计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统700访问的任何其它介质。
作为例子,计算机可读存储介质822可以包括从不可移动的非易失性磁介质读取或写到其的硬盘驱动器、从可移动的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移动的非易失性光盘,诸如CD ROM、DVD和盘或其它光学介质,读取或写到其的光盘驱动器。计算机可读存储介质822可以包括,但不限于,驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、 DVD盘、数字音频带,等等。计算机可读存储介质722也可以包括基于非易失性存储器的固态驱动器(SSD),诸如基于闪存存储器的 SSD、企业闪存驱动器、固态ROM等,基于易失性存储器的SSD,诸如固态RAM、动态RAM、静态RAM,基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的 SSD的组合的混合SSD。盘驱动器及其相关联的计算机可读介质可以为计算机系统800提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统824提供到其它计算机系统和网络的接口。通信子系统824用作用于从其它系统接收数据和从计算机系统800向其它系统发送数据的接口。例如,通信子系统824可以使计算机系统800能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统 824可以包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,利用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE 802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或者替代,通信子系统824可以提供有线网络连接 (例如,以太网)。
在一些实施例中,通信子系统824也可以代表可以使用计算机系统800的一个或多个用户接收结构化和/或非结构化数据馈送826、事件流828、事件更新830等形式的输入通信。
作为例子,通信子系统824可被配置为实时地从社交媒体网络和 /或其它通信服务的用户接收数据馈送826,诸如馈送、更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统824也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流828和/或事件更新830。产生连续数据的应用的例子可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统824也可被配置为向一个或多个数据库输出结构化和 /或非结构化数据馈送826、事件流828、事件更新830,等等,这一个或多个数据库可以与耦合到计算机系统800的一个或多个流式数据源计算机通信。
计算机系统800可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、计算平板、PDA)、可穿戴设备(例如,Google头戴式显示器)、PC、工作站、大型机、信息站,服务器机架,或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统 800的描述仅仅要作为具体的例子。具有比图中绘出的系统更多或更少组件的许多其它配置是可能的。例如,定制的硬件也可以被使用和 /或特定的元素可以用硬件、固件、软件(包括applets)或它们的组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
根据一些实施例,图9绘出了如上所述根据本发明的原理配置的示例性计算机系统900的功能框图。计算机系统900的功能块可以由硬件、软件或硬件和软件的组合来实现,以执行本发明的原理。本领域技术人员应当理解,图9中所描述的功能块可以被组合或分离为子块,以实现如上所述根据本发明的原理。因此,本文的描述可以支持本文所描述的功能块的任何可能的组合或分离或者进一步定义。
参照图9,计算机系统900可以包括第一接收器902和第二接收器904。第一接收器902可以接收用于配置多个模板执行环境的模板执行环境的标准。多个模板执行环境中的每个模板执行环境可以建立孩子执行环境,并且多个模板执行环境中的每个模板执行环境可被配置为执行不同类型的定制可执行指令。第二接收器904可以利用第一通信协议从计算设备(未示出)接收执行定制可执行指令的请求。
计算机系统900还可以包括分类单元906。分类单元906可以分类对应于所请求的定制可执行指令的定制可执行指令的类型。然后,计算机系统900的选择单元908可以基于分类的定制可执行指令的类型从多个模板执行环境中选择第一模板执行环境。如图所示,第一执行单元910可以执行第一模板执行环境。
计算机系统还可以包括可以建立第一孩子执行环境以便执行所请求的定制可执行指令的建立单元912。第一孩子执行环境可以基于第一模板执行环境被建立。加载单元914可以加载所请求的定制可执行指令,用于在第一孩子执行环境中执行。然后,配置单元916可以配置对于第一孩子执行环境的访问许可,并且第二执行单元918可以在第一孩子执行环境中执行所请求的定制可执行指令。所请求的定制可执行指令可以在为第一孩子执行环境配置访问许可之后执行。
在某些实施例中,计算机系统900可以是移动云计算机系统,并且计算设备(未示出)可以是移动计算设备。
在某些实施例中,第一孩子执行环境继承模板执行环境的配置。
在某些实施例中,配置单元916还包括被配置为调整用于访问所请求的定制可执行指令的许可的调整单元917。许可可以被调整,以防止所请求的定制可执行指令从第一孩子执行环境中被访问。
在前述的说明书中,本发明的各方面参照其具体实施例进行了描述,但本领域技术人员将认识到,本发明不限于此。上述发明的各个特征和各方面可以被单独或联合使用。另外,在不背离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。
Claims (31)
1.一种方法,包括:
在云计算机系统中,执行多个模板执行环境,其中所述多个模板执行环境中的每个模板执行环境被配置为建立孩子执行环境,并且其中所述多个模板执行环境中的每个模板执行环境被配置为执行不同类型的定制可执行指令;
由云计算机系统接收执行用于由云计算机系统提供给向云计算机系统注册的租户的服务的定制可执行指令的请求;
由云计算机系统确定支持用于要提供给租户的服务的定制可执行指令的执行的一个或多个资源;
由云计算机系统基于针对服务识别的服务的类型以及基于确定所述多个模板执行环境中的一模板执行环境被配置为向租户提供对被确定为支持用于所述服务的定制可执行指令的执行的所述一个或多个资源的访问,来从所述多个模板执行环境中选择该模板执行环境;
由云计算机系统加载所请求的定制可执行指令,用于在第一孩子执行环境中执行;然后
由云计算机系统配置第一孩子执行环境以启用所请求的定制可执行指令的执行,其中所述配置包括设置可调用接口的一个或多个设置来调整第一孩子执行环境的访问许可,以控制定制可执行指令对来自云计算机系统的多个服务的访问;
在配置第一孩子执行环境后,在云计算机系统中,建立第一孩子执行环境,以执行所请求的定制可执行指令,其中第一孩子执行环境是基于该模板执行环境建立的;及
由云计算机系统在第一孩子执行环境中执行所请求的定制可执行指令,其中所请求的定制可执行指令在配置第一孩子执行环境之后执行。
2.如权利要求1所述的方法,其中该模板执行环境是Java虚拟机JVM环境并且其中第一孩子执行环境是孩子JVM环境。
3.如权利要求1或2所述的方法,其中建立第一孩子执行环境包括执行fork命令,以从该模板执行环境创建第一孩子执行环境。
4.如权利要求1所述的方法,其中第一孩子执行环境继承该模板执行环境的配置。
5.如权利要求1所述的方法,其中配置第一孩子执行环境包括调整第一孩子执行环境的用于访问不在第一孩子执行环境中的资源的访问许可,并且其中访问许可被调整,以防止所请求的定制可执行指令从第一孩子执行环境中访问所述资源。
6.如权利要求1所述的方法,其中配置第一孩子执行环境包括通过用于该模板执行环境的安全模型来调整第一孩子执行环境的访问许可。
7.如权利要求1所述的方法,其中该模板执行环境被配置为防止所请求的定制可执行指令的执行干扰为在云计算系统中基于该模板执行环境建立的孩子执行环境外部的租户执行的一个或多个租户操作。
8.如权利要求1所述的方法,其中,从所述多个模板执行环境中选择该模板执行环境还基于:用于所请求的定制可执行指令的执行的安全类型。
9.如权利要求1所述的方法,还包括:
对与所请求的定制可执行指令对应的定制可执行指令的类型进行分类,其中该模板执行环境是还基于分类的定制可执行指令的类型从所述多个模板执行环境中选择的。
10.如权利要求1所述的方法,还包括:
加载用于该模板执行环境的执行的资源;及
其中执行所请求的定制可执行指令的请求在加载用于该模板执行环境的执行的资源之后被接收。
11.如权利要求1所述的方法,还包括:
在执行该模板执行环境之前配置该模板执行环境。
12.如权利要求11所述的方法,其中配置该模板执行环境包括初始化用于该模板执行环境的设置和初始化用于该模板执行环境的状态。
13.如权利要求1所述的方法,还包括:
在云计算机系统中,建立附加的孩子执行环境,以执行附加的定制可执行指令,其中附加的孩子执行环境基于该模板执行环境来建立;
加载附加的定制可执行指令,用于在附加的孩子执行环境中执行;
设置对于附加的孩子执行环境的访问许可;及
在附加的孩子执行环境中执行附加的定制可执行指令。
14.如权利要求1所述的方法,还包括:
加载所请求的定制可执行指令,用于在第一孩子执行环境中执行。
15.一种计算机系统,包括:
一个或多个处理器;及
一个或多个存储器设备,耦合到一个或多个处理器,所述一个或多个存储器设备包含指令,所述指令当在一个或多个处理器上执行时,使得一个或多个处理器:
接收用于在云计算机系统中配置多个模板执行环境中的模板执行环境的标准,其中所述多个模板执行环境中的每个模板执行环境建立孩子执行环境,并且其中所述多个模板执行环境中的每个模板执行环境被配置为执行不同类型的定制可执行指令;
从计算设备利用第一通信协议接收执行用于由云计算机系统提供给向云计算机系统注册的租户的服务的定制可执行指令的请求;
确定由计算机系统提供的用以执行定制可执行指令的定制执行服务;
对与所请求的定制可执行指令对应的定制可执行指令的类型进行分类;
基于执行环境的类型从所述多个模板执行环境中选择第一模板执行环境,其中执行环境的类型被配置为基于向计算机系统注册的租户被许可访问的一个或多个资源来支持所分类的类型的定制可执行指令的执行,其中所选择的第一模板执行环境是Java虚拟机JVM环境;
执行第一模板执行环境;
加载用于在第一孩子执行环境中执行的所请求的定制可执行指令;然后
配置第一孩子执行环境以启用所请求的定制可执行指令的执行,其中所述配置包括设置可调用接口的一个或多个设置来调整第一孩子执行环境的访问许可,以控制定制可执行指令对来自云计算机系统的多个服务的访问,其中所述配置包括通过用于所选择的第一模板执行环境的安全模型来调整第一孩子执行环境的第一访问许可,其中第一访问许可指定由在第一孩子执行环境中执行的所请求的定制可执行指令在第一孩子执行环境中被许可或禁止的一种或多种类型的操作,其中配置包括调整第一孩子执行环境的用于访问不在第一孩子执行环境中的资源的第二访问许可,并且其中第二访问许可被调整,以防止所请求的定制可执行指令从第一孩子执行环境中访问所述资源;
在配置第一孩子执行环境后,建立第一孩子执行环境,以执行所请求的定制可执行指令,其中第一孩子执行环境基于第一模板执行环境而建立,其中第一孩子执行环境是孩子JVM环境;及
在第一孩子执行环境中执行所请求的定制可执行指令,其中
所请求的定制可执行指令在配置第一孩子执行环境后被执行。
16.如权利要求15所述的计算机系统,其中所述一个或多个处理器和所述一个或多个存储器设备包括在移动云计算机系统中,并且其中计算设备是移动计算设备。
17.一种设备,包括:
用于在云计算机系统中执行多个模板执行环境的装置,其中所述多个模板执行环境中的每个模板执行环境被配置为建立孩子执行环境,并且其中所述多个模板执行环境中的每个模板执行环境被配置为执行不同类型的定制可执行指令;
用于由云计算机系统接收执行用于由云计算机系统提供给向云计算机系统注册的租户的服务的定制可执行指令的请求的装置;
用于由云计算机系统确定支持用于要提供给租户的服务的定制可执行指令的执行的一个或多个资源的装置;
用于由云计算机系统基于执行环境的类型从所述多个模板执行环境中选择一模板执行环境的装置,其中执行环境的类型被配置为基于向云计算机系统注册的租户被许可访问的一个或多个资源来支持一种类型的定制可执行指令的执行;
用于由云计算机系统加载所请求的定制可执行指令以用于在第一孩子执行环境中执行的装置;
用于由云计算机系统配置第一孩子执行环境以启用所请求的定制可执行指令的执行的装置,其中所述配置包括设置可调用接口的一个或多个设置来调整第一孩子执行环境的访问许可,以控制定制可执行指令对来自云计算机系统的多个服务的访问;
用于在配置第一孩子执行环境后,在云计算机系统中建立第一孩子执行环境以执行所请求的定制可执行指令的装置,其中第一孩子执行环境是基于该模板执行环境建立的;及
用于由云计算机系统在第一孩子执行环境中执行所请求的定制可执行指令的装置,其中所请求的定制可执行指令在配置第一孩子执行环境之后执行。
18.如权利要求17所述的设备,其中该模板执行环境是Java虚拟机JVM环境并且其中第一孩子执行环境是孩子JVM环境。
19.如权利要求17或18所述的设备,其中建立第一孩子执行环境包括执行fork命令,以从该模板执行环境创建第一孩子执行环境。
20.如权利要求17所述的设备,其中第一孩子执行环境继承该模板执行环境的配置。
21.如权利要求17所述的设备,其中用于配置第一孩子执行环境的装置包括用于调整第一孩子执行环境的用于访问不在第一孩子执行环境中的资源的访问许可的装置,并且其中访问许可被调整,以防止从第一孩子执行环境中访问所述资源。
22.如权利要求17所述的设备,其中配置第一孩子执行环境包括通过用于该模板执行环境的安全模型来调整第一孩子执行环境的访问许可。
23.如权利要求17所述的设备,其中该模板执行环境被配置为防止所请求的定制可执行指令的执行干扰为在云计算系统中基于该模板执行环境建立的孩子执行环境外部的租户执行的一个或多个租户操作。
24.如权利要求17所述的设备,其中,从所述多个模板执行环境中选择该模板执行环境还基于:用于所请求的定制可执行指令的执行的安全类型。
25.如权利要求17所述的设备,还包括:
用于对与所请求的定制可执行指令对应的定制可执行指令的类型进行分类的装置,其中该模板执行环境是还基于分类的定制可执行指令的类型从所述多个模板执行环境中选择的。
26.如权利要求17所述的设备,还包括:
用于加载用于该模板执行环境的执行的资源的装置;及
其中执行所请求的定制可执行指令的请求在加载用于该模板执行环境的执行的资源之后被接收。
27.如权利要求17所述的设备,还包括:
用于在执行该模板执行环境之前配置该模板执行环境的装置。
28.如权利要求27所述的设备,其中配置该模板执行环境包括初始化用于该模板执行环境的设置和初始化用于该模板执行环境的状态。
29.如权利要求17所述的设备,还包括:
用于在云计算机系统中建立附加的孩子执行环境以执行附加的定制可执行指令的装置,其中附加的孩子执行环境基于该模板执行环境而建立;
用于加载附加的定制可执行指令以用于在附加的孩子执行环境中执行的装置;
用于设置对于附加的孩子执行环境的访问许可的装置;及
用于在附加的孩子执行环境中执行附加的定制可执行指令的装置。
30.如权利要求17所述的设备,还包括:
用于加载所请求的定制可执行指令以用于在第一孩子执行环境中执行的装置。
31.一种计算机可读介质,在其上存储有程序指令,其中所述程序指令当被处理器执行时,使得该处理器执行如权利要求1至14中的任一项所述的方法的步骤。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461937316P | 2014-02-07 | 2014-02-07 | |
US61/937,316 | 2014-02-07 | ||
US201461986363P | 2014-04-30 | 2014-04-30 | |
US61/986,363 | 2014-04-30 | ||
US14/489,172 | 2014-09-17 | ||
US14/489,172 US9935959B2 (en) | 2014-02-07 | 2014-09-17 | Cloud service custom execution environment |
PCT/US2014/056154 WO2015119659A1 (en) | 2014-02-07 | 2014-09-17 | Cloud service custom execution environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105917627A CN105917627A (zh) | 2016-08-31 |
CN105917627B true CN105917627B (zh) | 2021-03-12 |
Family
ID=53775995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480073135.9A Active CN105917627B (zh) | 2014-02-07 | 2014-09-17 | 云服务定制执行环境方法及系统 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9935959B2 (zh) |
EP (1) | EP3103239B1 (zh) |
JP (1) | JP6412943B2 (zh) |
KR (1) | KR102249262B1 (zh) |
CN (1) | CN105917627B (zh) |
CA (1) | CA2931750C (zh) |
SG (1) | SG11201604890WA (zh) |
WO (1) | WO2015119659A1 (zh) |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529657B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information |
US9529658B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information |
JP6412943B2 (ja) | 2014-02-07 | 2018-10-24 | オラクル・インターナショナル・コーポレイション | クラウドサービスカスタム実行環境 |
WO2015119658A1 (en) | 2014-02-07 | 2015-08-13 | Oracle International Corporation | Mobile cloud service architecture |
SG11201605786SA (en) | 2014-03-31 | 2016-10-28 | Oracle Int Corp | Infrastructure for synchronization of mobile device with mobile cloud service |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9886267B2 (en) | 2014-10-30 | 2018-02-06 | Equinix, Inc. | Interconnection platform for real-time configuration and management of a cloud-based services exchange |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
US10769649B1 (en) * | 2014-12-24 | 2020-09-08 | EMC IP Holding Company LLC | Automated centralized real-time multi-channel feedback system |
US10063661B2 (en) | 2015-01-14 | 2018-08-28 | Oracle International Corporation | Multi-tenant cloud-based queuing systems |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9954936B2 (en) * | 2015-03-02 | 2018-04-24 | International Business Machines Corporation | Migrating legacy applications to a multi-tenant computing environment |
US9749446B1 (en) * | 2015-03-16 | 2017-08-29 | Symantec Corporation | Method for consolidated environment computing |
US20160294948A1 (en) * | 2015-04-02 | 2016-10-06 | Prophetstor Data Services, Inc. | System for database, application, and storage security in software defined network |
WO2017019736A1 (en) * | 2015-07-27 | 2017-02-02 | Presidio Llc | Hybrid cloud information management system |
US10142288B1 (en) * | 2015-09-04 | 2018-11-27 | Madrona Venture Fund Vi, L.P | Machine application interface to influence virtual environment |
FR3041450B1 (fr) * | 2015-09-17 | 2017-11-03 | Bull Sas | Architecture client/serveur pour l'administration d'un supercalculateur |
US10095482B2 (en) | 2015-11-18 | 2018-10-09 | Mastercard International Incorporated | Systems, methods, and media for graphical task creation |
US10523591B2 (en) * | 2015-12-08 | 2019-12-31 | Microsoft Technology Licensing, Llc | Discovering resource availability across regions |
US10050939B2 (en) * | 2015-12-15 | 2018-08-14 | Vmware, Inc. | Techniques for communication in hybrid cloud system |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
US10440139B2 (en) | 2016-03-11 | 2019-10-08 | International Business Machines Corporation | Process broker for executing web services in a system of engagement and system of record environments |
JP6871943B2 (ja) | 2016-03-28 | 2021-05-19 | オラクル・インターナショナル・コーポレイション | モバイルクラウドサービスのための予め形成された命令 |
CN105893083B (zh) * | 2016-03-29 | 2019-06-11 | 华中科技大学 | 云环境下基于容器的移动代码卸载支撑系统及其卸载方法 |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10491689B2 (en) * | 2016-09-16 | 2019-11-26 | Oracle International Corporation | Centralized monitoring of cloud operations |
US20210306348A1 (en) * | 2016-10-25 | 2021-09-30 | Michael Ratiner | System and method for securing electronic devices |
US11218419B1 (en) * | 2016-12-06 | 2022-01-04 | Amazon Technologies, Inc. | Execution request prioritization by context |
US11036560B1 (en) * | 2016-12-20 | 2021-06-15 | Amazon Technologies, Inc. | Determining isolation types for executing code portions |
US10445126B2 (en) * | 2017-02-21 | 2019-10-15 | Red Hat, Inc. | Preloading enhanced application startup |
WO2018236691A1 (en) * | 2017-06-20 | 2018-12-27 | Vfunction, Inc. | SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS |
US11502917B1 (en) * | 2017-08-03 | 2022-11-15 | Virtustream Ip Holding Company Llc | Virtual representation of user-specific resources and interactions within cloud-based systems |
US10445086B2 (en) | 2017-09-28 | 2019-10-15 | At&T Intellectual Property I, L.P. | Virtualization platform for creating, deploying, modifying, and relocating applications |
EP3688595A1 (en) | 2017-09-30 | 2020-08-05 | Oracle International Corporation | Binding, in an api registry, backend services endpoints to api functions |
GB201716173D0 (en) | 2017-10-04 | 2017-11-15 | Palantir Technologies Inc | Creation and execution of customised code for a data processing platform |
US12073007B2 (en) | 2017-10-06 | 2024-08-27 | Private Machines Inc. | Computer server device and methods for initiating and running a computer process |
JP6922670B2 (ja) * | 2017-11-08 | 2021-08-18 | 日本電信電話株式会社 | リソース決定装置、リソース決定方法およびリソース決定処理プログラム |
KR101858715B1 (ko) * | 2017-11-10 | 2018-05-16 | 베스핀글로벌 주식회사 | 서비스자원 관리시스템 및 그 방법 |
CN108021400B (zh) * | 2017-11-29 | 2022-03-29 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、计算机存储介质及设备 |
US20190188338A1 (en) * | 2017-12-19 | 2019-06-20 | Saltmine Pte Ltd. | Systems and methods for workspace environment design and build |
WO2019138336A1 (en) * | 2018-01-09 | 2019-07-18 | Cleartrail Technologies Private Limited | Recommending visual and execution templates to enable automation of control and data exploration across systems |
US10503497B2 (en) * | 2018-01-30 | 2019-12-10 | Microsoft Technology Licensing, Llc | Techniques for utilizing an expression language in service configuration files |
US11017107B2 (en) * | 2018-03-06 | 2021-05-25 | Amazon Technologies, Inc. | Pre-deployment security analyzer service for virtual computing resources |
CN108733452B (zh) * | 2018-04-16 | 2021-05-14 | 南京维拓科技股份有限公司 | 基于web的云计算资源管理系统 |
CN108762905B (zh) * | 2018-05-24 | 2020-12-11 | 苏州乐麟无线信息科技有限公司 | 一种多任务事件的处理方法和装置 |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
CN108924120B (zh) * | 2018-06-28 | 2020-09-25 | 电子科技大学 | 一种多维状态感知的动态访问控制方法 |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
CN109150831B (zh) * | 2018-07-16 | 2021-03-23 | 中国人民解放军战略支援部队信息工程大学 | 一种内生安全的云任务执行装置及方法 |
US11099870B1 (en) * | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
CN109039751B (zh) * | 2018-08-14 | 2022-07-22 | 深圳壹账通智能科技有限公司 | 配置路由的方法、装置、计算机设备和存储介质 |
US11044337B2 (en) * | 2018-09-12 | 2021-06-22 | International Business Machines Corporation | Runtime localized messages for cloud services |
US10623508B2 (en) * | 2018-09-12 | 2020-04-14 | Citrix Systems, Inc. | Systems and methods for integrated service discovery for network applications |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US10331462B1 (en) * | 2018-11-06 | 2019-06-25 | Cloudflare, Inc. | Cloud computing platform that executes third-party code in a distributed cloud computing network |
JP7238351B2 (ja) * | 2018-11-13 | 2023-03-14 | 日本電気株式会社 | 仮想マシンテンプレート管理システム及び仮想マシンテンプレート管理方法 |
CN111192100A (zh) * | 2018-11-14 | 2020-05-22 | 中兴通讯股份有限公司 | 一种工作流调度方法、装置和系统 |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
CN109561147A (zh) * | 2018-11-30 | 2019-04-02 | 武汉烽火信息集成技术有限公司 | 一种异构云管理方法及系统、异构云管理系统构建方法 |
US11263553B2 (en) | 2018-11-30 | 2022-03-01 | International Business Machines Corporation | Learning commands and parameters for an interactive command line interface |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11748178B2 (en) * | 2019-04-02 | 2023-09-05 | Intel Corporation | Scalable and accelerated function as a service calling architecture |
US11113096B2 (en) * | 2019-05-13 | 2021-09-07 | Hewlett Packard Enterprise Development Lp | Permissions for a cloud environment application programming interface |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
CN110865796B (zh) * | 2019-09-29 | 2023-07-25 | 深圳市火乐科技发展有限公司 | 投影设备的软件定制方法及装置 |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11281480B2 (en) | 2020-05-28 | 2022-03-22 | Sap Se | Enhancing parameter-less exit-calls from a command line interface |
CN111736960B (zh) * | 2020-08-10 | 2020-12-22 | 北京信安世纪科技股份有限公司 | 基于软件隔离的服务提供方法、设备及存储介质 |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
EP4068127A1 (en) * | 2021-03-31 | 2022-10-05 | Irdeto B.V. | Systems and methods for determining execution state |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
CN114780228B (zh) * | 2022-06-23 | 2022-09-16 | 浙江九州云信息科技有限公司 | 一种混合云资源创建方法及系统 |
US12034726B1 (en) * | 2023-05-31 | 2024-07-09 | Cloudflare, Inc. | Logging access types based on inserting tenant control headers into requests |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1894667A (zh) * | 2003-12-18 | 2007-01-10 | 康泰克创新公司 | 分配服务器资源的系统和方法 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
US20130212129A1 (en) * | 2012-02-09 | 2013-08-15 | Rockwell Automation Technologies, Inc. | Industrial automation service templates for provisioning of cloud services |
CN103259742A (zh) * | 2012-01-04 | 2013-08-21 | 国际商业机器公司 | 在联网计算环境中进行基于活动的虚拟机可用性控制的方法与系统 |
CN103430150A (zh) * | 2010-11-22 | 2013-12-04 | 瑞典爱立信有限公司 | 在云计算系统中创建资源的技术 |
US20130346946A1 (en) * | 2012-06-21 | 2013-12-26 | Microsoft Corporation | System for hosted, shared, source control build |
Family Cites Families (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4788715A (en) | 1986-10-16 | 1988-11-29 | American Telephone And Telegraph Company At&T Bell Laboratories | Announcing waiting times in queuing systems |
US6560656B1 (en) * | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
FR2782435B1 (fr) | 1998-08-13 | 2000-09-15 | Bull Cp8 | Procede de communication entre une station d'utilisateur et un reseau, notamment de type internet, et architecture de mise en oeuvre |
US6970935B1 (en) | 2000-11-01 | 2005-11-29 | International Business Machines Corporation | Conversational networking via transport, coding and control conversational protocols |
WO2003003177A2 (en) * | 2001-06-29 | 2003-01-09 | Bea Systems, Inc. | System for and methods of administration of access control to numerous resources and objects |
JP4315696B2 (ja) | 2002-03-29 | 2009-08-19 | 富士通株式会社 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
US7440940B2 (en) | 2002-12-02 | 2008-10-21 | Sap Ag | Web service agent |
US20040162823A1 (en) | 2003-02-13 | 2004-08-19 | Van De Loo Kaj | Message translation using adaptive agents |
US7509644B2 (en) * | 2003-03-04 | 2009-03-24 | Secure 64 Software Corp. | Operating system capable of supporting a customized execution environment |
US7430290B2 (en) | 2003-10-23 | 2008-09-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Virtual queuing support system and method |
US7421698B2 (en) | 2003-12-22 | 2008-09-02 | Sun Microsystems, Inc. | System and method for dynamically and persistently tracking incremental profiling data in a process cloning application environment |
US20060112127A1 (en) | 2004-11-23 | 2006-05-25 | Microsoft Corporation | Method for efficiently mapping error messages to unique identifiers |
US7523491B2 (en) | 2005-01-03 | 2009-04-21 | Nokia Corporation | System, apparatus, and method for accessing mobile servers |
US8015051B2 (en) | 2005-03-11 | 2011-09-06 | Sap Ag | System and method for business process integration |
US20070174429A1 (en) * | 2006-01-24 | 2007-07-26 | Citrix Systems, Inc. | Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment |
US8112745B2 (en) * | 2006-03-22 | 2012-02-07 | Honeywell International Inc. | Apparatus and method for capabilities verification and restriction of managed applications in an execution environment |
US20090170557A1 (en) | 2006-10-02 | 2009-07-02 | Prashant Chauhan | Systems and methods for enabling communication features utilizing various bearer media |
JP2010514028A (ja) * | 2006-12-22 | 2010-04-30 | バーチャルロジックス エスエイ | 単一データ処理を共有するために複数の実行環境を有効化するシステム |
US8831963B2 (en) | 2007-03-08 | 2014-09-09 | Ab Inventio, Llc | Electronic queuing systems and methods |
US8200738B2 (en) * | 2007-09-30 | 2012-06-12 | Oracle America, Inc. | Virtual cluster based upon operating system virtualization |
US20090158302A1 (en) | 2007-12-13 | 2009-06-18 | Fiberlink Communications Corporation | Api translation for network access control (nac) agent |
US8479256B2 (en) * | 2008-11-26 | 2013-07-02 | Red Hat, Inc. | Merging mandatory access control (MAC) policies in a system with multiple execution containers |
US8799413B2 (en) | 2010-05-03 | 2014-08-05 | Panzura, Inc. | Distributing data for a distributed filesystem across multiple cloud storage systems |
US8752047B2 (en) * | 2010-05-28 | 2014-06-10 | Bromium, Inc. | Automated management of virtual machines to process untrusted data based on client policy information |
US9354906B1 (en) | 2010-05-28 | 2016-05-31 | Bromium, Inc. | Managing the eviction process |
WO2012018556A2 (en) | 2010-07-26 | 2012-02-09 | Ari Backholm | Mobile application traffic optimization |
JP2012037935A (ja) * | 2010-08-03 | 2012-02-23 | Fujitsu Ltd | 情報処理装置 |
US8504837B2 (en) | 2010-10-15 | 2013-08-06 | Rockwell Automation Technologies, Inc. | Security model for industrial devices |
US8516249B2 (en) * | 2010-10-20 | 2013-08-20 | Verizon Patent And Licensing Inc. | Cloud services layer |
US8626718B2 (en) | 2010-10-29 | 2014-01-07 | Verizon Patent And Licensing Inc. | Content caching based on refresh and expiration times |
US8880726B2 (en) | 2010-12-16 | 2014-11-04 | Openet Telecom Ltd. | Methods, systems and devices for dynamic context-based routing using a topology tree |
US8675659B2 (en) | 2010-12-16 | 2014-03-18 | Openet Telecom Ltd. | Methods, systems and devices for multiphase decoding |
US8725820B2 (en) | 2010-12-16 | 2014-05-13 | Openet Telecom Ltd. | Methods, systems and devices for horizontally scalable high-availability dynamic context-based routing |
US8943221B2 (en) | 2010-12-16 | 2015-01-27 | Openet Telecom Ltd. | Methods, systems and devices for pipeline processing |
US8725896B2 (en) | 2010-12-16 | 2014-05-13 | Openet Telecom Ltd. | Methods, systems and devices for forked routing |
CN102859502B (zh) * | 2011-03-02 | 2016-03-23 | 松下电器(美国)知识产权公司 | 虚拟计算机系统、虚拟计算机控制方法、及半导体集成电路 |
US8407323B2 (en) * | 2011-07-12 | 2013-03-26 | At&T Intellectual Property I, L.P. | Network connectivity wizard to support automated creation of customized configurations for virtual private cloud computing networks |
US8908531B2 (en) | 2011-08-25 | 2014-12-09 | At&T Mobility Ii Llc | Communication gateway for facilitating communications with a supervisory control and data aquisition system |
US9081951B2 (en) | 2011-09-29 | 2015-07-14 | Oracle International Corporation | Mobile application, identity interface |
US8819801B2 (en) * | 2011-10-31 | 2014-08-26 | Microsoft Corporation | Secure machine enrollment in multi-tenant subscription environment |
WO2013071087A1 (en) | 2011-11-09 | 2013-05-16 | Unisys Corporation | Single sign on for cloud |
CA2889387C (en) * | 2011-11-22 | 2020-03-24 | Solano Labs, Inc. | System of distributed software quality improvement |
AU2012347769B2 (en) | 2011-12-06 | 2015-08-13 | Gamblit Gaming, Llc | Multilayer hybrid games |
US8856805B2 (en) * | 2011-12-29 | 2014-10-07 | Oracle International Corporation | Virtual channel for embedded process communication |
US8863299B2 (en) * | 2012-01-06 | 2014-10-14 | Mobile Iron, Inc. | Secure virtual file management system |
US8832225B1 (en) * | 2012-02-01 | 2014-09-09 | Amazon Technologies, Inc. | Multipart encoding in data aggregation for network page generation |
WO2013126570A1 (en) | 2012-02-21 | 2013-08-29 | Zih Corp. | Methods, apparatuses, and computer program products for implementing cloud connected printers and an adaptive printer- based application framework |
US20130275492A1 (en) | 2012-04-13 | 2013-10-17 | Microsoft Corporation | Enabling Web Clients to Provide Web Services |
US10771351B2 (en) * | 2012-06-15 | 2020-09-08 | Digital River, Inc. | Fast provisioning service for cloud computing |
US9201850B1 (en) | 2012-06-18 | 2015-12-01 | Bromium, Inc. | Composing the display of a virtualized web browser |
US9223962B1 (en) | 2012-07-03 | 2015-12-29 | Bromium, Inc. | Micro-virtual machine forensics and detection |
JP6053364B2 (ja) | 2012-07-19 | 2016-12-27 | キヤノン株式会社 | 情報処理システム、サーバ装置、クライアント装置および制御方法 |
US9276942B2 (en) * | 2012-09-07 | 2016-03-01 | Oracle International Corporation | Multi-tenancy identity management system |
US9323939B2 (en) * | 2012-12-17 | 2016-04-26 | Ca, Inc. | Multi-tenancy governance in a cloud computing environment |
US8826332B2 (en) | 2012-12-21 | 2014-09-02 | Ustudio, Inc. | Media distribution and management platform |
US8769644B1 (en) * | 2013-03-15 | 2014-07-01 | Rightscale, Inc. | Systems and methods for establishing cloud-based instances with independent permissions |
US9703855B1 (en) * | 2013-04-15 | 2017-07-11 | Ca, Inc. | System and method for classifying content with a web service |
US9329881B2 (en) * | 2013-04-23 | 2016-05-03 | Sap Se | Optimized deployment of data services on the cloud |
US9191384B2 (en) * | 2013-06-26 | 2015-11-17 | Vmware, Inc. | Maintaining privacy in a multi-tenant cloud service participating in a federated identity platform |
US9473562B2 (en) | 2013-09-12 | 2016-10-18 | Apple Inc. | Mediated data exchange for sandboxed applications |
US9641335B2 (en) | 2013-09-16 | 2017-05-02 | Axis Ab | Distribution of user credentials |
US9973451B2 (en) * | 2013-09-20 | 2018-05-15 | Oracle International Corporation | System and method for providing administration command progress status in a cloud platform environment |
EP3047628B1 (en) | 2013-09-20 | 2018-08-29 | Oracle International Corporation | Web-based single sign-on with form-fill proxy application |
US9934323B2 (en) | 2013-10-01 | 2018-04-03 | Facebook, Inc. | Systems and methods for dynamic mapping for locality and balance |
US9544188B2 (en) * | 2013-10-30 | 2017-01-10 | Oracle International Corporation | System and method for webtier providers in a cloud platform environment |
KR102223034B1 (ko) | 2013-11-14 | 2021-03-04 | 삼성전자주식회사 | 조명 시스템 및 그를 위한 신호 변환 장치 |
US9621673B2 (en) * | 2013-12-12 | 2017-04-11 | Sap Se | Customer initiated tenant operations in a multitenant cloud environment |
US8959229B1 (en) * | 2013-12-19 | 2015-02-17 | International Business Machines Corporation | Intelligently provisioning cloud information services |
US10977063B2 (en) | 2013-12-20 | 2021-04-13 | Vmware, Inc. | Elastic compute fabric using virtual machine templates |
US9477507B2 (en) | 2013-12-20 | 2016-10-25 | Vmware, Inc. | State customization of forked virtual machines |
WO2015108536A1 (en) * | 2014-01-20 | 2015-07-23 | Hewlett-Packard Development Company, L.P. | Mapping tenant groups to identity management classes |
JP6412943B2 (ja) | 2014-02-07 | 2018-10-24 | オラクル・インターナショナル・コーポレイション | クラウドサービスカスタム実行環境 |
US9529657B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information |
US9529658B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information |
WO2015119658A1 (en) | 2014-02-07 | 2015-08-13 | Oracle International Corporation | Mobile cloud service architecture |
SG11201605786SA (en) | 2014-03-31 | 2016-10-28 | Oracle Int Corp | Infrastructure for synchronization of mobile device with mobile cloud service |
US9438599B1 (en) * | 2014-03-31 | 2016-09-06 | Amazon Technologies, Inc. | Approaches for deployment approval |
US20170132042A1 (en) * | 2014-04-23 | 2017-05-11 | Hewlett Packard Enterprise Development Lp | Selecting a platform configuration for a workload |
US9116767B1 (en) * | 2014-06-06 | 2015-08-25 | International Business Machines Corporation | Deployment pattern monitoring |
US10375024B2 (en) * | 2014-06-20 | 2019-08-06 | Zscaler, Inc. | Cloud-based virtual private access systems and methods |
US9386033B1 (en) * | 2014-09-10 | 2016-07-05 | Amazon Technologies, Inc. | Security recommendation engine |
US10530650B2 (en) * | 2014-10-13 | 2020-01-07 | Vmware, Inc. | Cross-cloud policy management for hybrid cloud deployments |
US9860309B2 (en) * | 2014-12-22 | 2018-01-02 | Vmware, Inc. | Hybrid cloud network monitoring system for tenant use |
US10095834B2 (en) * | 2015-05-08 | 2018-10-09 | YC Wellness, Inc. | Integration platform and application interfaces for remote data management and security |
US20160337356A1 (en) * | 2015-05-14 | 2016-11-17 | RightScale Inc. | Deployment templates with embedded permissions |
US10075442B2 (en) * | 2015-06-30 | 2018-09-11 | Vmware, Inc. | Methods and apparatus to grant access to cloud computing resources |
US10320844B2 (en) * | 2016-01-13 | 2019-06-11 | Microsoft Technology Licensing, Llc | Restricting access to public cloud SaaS applications to a single organization |
US10241776B2 (en) * | 2016-04-08 | 2019-03-26 | Microsoft Technology Licensing, Llc | User settings across programs |
US10425386B2 (en) * | 2016-05-11 | 2019-09-24 | Oracle International Corporation | Policy enforcement point for a multi-tenant identity and data security management cloud service |
US9781122B1 (en) * | 2016-05-11 | 2017-10-03 | Oracle International Corporation | Multi-tenant identity and data security management cloud service |
-
2014
- 2014-09-17 JP JP2016546072A patent/JP6412943B2/ja active Active
- 2014-09-17 CN CN201480073135.9A patent/CN105917627B/zh active Active
- 2014-09-17 WO PCT/US2014/056154 patent/WO2015119659A1/en active Application Filing
- 2014-09-17 KR KR1020167024589A patent/KR102249262B1/ko active IP Right Grant
- 2014-09-17 US US14/489,172 patent/US9935959B2/en active Active
- 2014-09-17 EP EP14784141.5A patent/EP3103239B1/en active Active
- 2014-09-17 SG SG11201604890WA patent/SG11201604890WA/en unknown
- 2014-09-17 CA CA2931750A patent/CA2931750C/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1894667A (zh) * | 2003-12-18 | 2007-01-10 | 康泰克创新公司 | 分配服务器资源的系统和方法 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN103430150A (zh) * | 2010-11-22 | 2013-12-04 | 瑞典爱立信有限公司 | 在云计算系统中创建资源的技术 |
CN103259742A (zh) * | 2012-01-04 | 2013-08-21 | 国际商业机器公司 | 在联网计算环境中进行基于活动的虚拟机可用性控制的方法与系统 |
US20130212129A1 (en) * | 2012-02-09 | 2013-08-15 | Rockwell Automation Technologies, Inc. | Industrial automation service templates for provisioning of cloud services |
US20130346946A1 (en) * | 2012-06-21 | 2013-12-26 | Microsoft Corporation | System for hosted, shared, source control build |
Also Published As
Publication number | Publication date |
---|---|
CA2931750A1 (en) | 2015-08-13 |
JP6412943B2 (ja) | 2018-10-24 |
US20150229645A1 (en) | 2015-08-13 |
CA2931750C (en) | 2023-03-07 |
JP2017505483A (ja) | 2017-02-16 |
SG11201604890WA (en) | 2016-08-30 |
KR102249262B1 (ko) | 2021-05-07 |
EP3103239B1 (en) | 2023-10-11 |
KR20160119185A (ko) | 2016-10-12 |
EP3103239A1 (en) | 2016-12-14 |
CN105917627A (zh) | 2016-08-31 |
WO2015119659A1 (en) | 2015-08-13 |
US9935959B2 (en) | 2018-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105917627B (zh) | 云服务定制执行环境方法及系统 | |
US9712511B2 (en) | Mobile cloud service architecture | |
US10055423B2 (en) | Infrastructure for synchronization of mobile device with mobile cloud service | |
EP3198420B1 (en) | Compartmentalizing application distribution for disparate electronic devices | |
US9529658B2 (en) | Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information | |
US9529657B2 (en) | Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information | |
US9971574B2 (en) | JSON stylesheet language transformation | |
CN109074265B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |