CN111736960B - 基于软件隔离的服务提供方法、设备及存储介质 - Google Patents
基于软件隔离的服务提供方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111736960B CN111736960B CN202010792767.8A CN202010792767A CN111736960B CN 111736960 B CN111736960 B CN 111736960B CN 202010792767 A CN202010792767 A CN 202010792767A CN 111736960 B CN111736960 B CN 111736960B
- Authority
- CN
- China
- Prior art keywords
- jvm
- sub
- user
- main
- child
- 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
-
- 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
-
- 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/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/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- 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/45562—Creating, deleting, cloning 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
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种基于软件隔离的服务提供方法、设备及存储介质。在本申请实施例中,采用JVM实现服务之间的隔离,主JVM作为计算服务与用户交互的接口,可以根据用户的需求为不同的用户创建具有独立运行环境的子JVM,使用子JVM为用户提供计算服务,子JVM通过主JVM将计算结果返回给用户。其中,子JVM之间运行环境的相互隔离,可以实现不同用户计算服务之间的隔离,使得用户数据更加的安全。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于软件隔离的服务提供方法、设备及存储介质。
背景技术
为了将服务部署到服务器上,我们需要为服务配置运行环境。现有技术中,为了保障安全性,通常需要通过隔离技术,将运行环境隔离。硬件隔离性能好,但是不易迁移,不适用于云计算等弱依赖硬件的场景。因此,如何实现隔离技术已经是现在亟需解决的一个的问题。
发明内容
本申请的多个方面提供一种基于软件隔离的服务提供方法、设备及存储介质,用以实现隔离技术。
本申请实施例提供一种基于软件隔离的服务提供方法,包括:创建主JVM,主JVM面向计算服务的需求用户;主JVM根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM,并根据用户的计算服务使用申请,建立与子JVM之间的通信连接;主JVM基于通信连接,将用户的计算服务需求转发至子JVM以供子JVM为用户提供计算服务,并将子JVM的计算结果返回给用户。
本申请实施例还提供一种服务端设备,包括:存储器和处理器;存储器,用于存储主JVM对应的计算机程序;处理器,与存储器耦合,用于运行主JVM对应的计算机程序,以用于:根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM, 并根据用户的计算服务使用申请,建立与子JVM之间的通信连接;基于通信连接,将用户的计算服务需求转发至子JVM以供子JVM为用户提供计算服务,并将子JVM的计算结果返回给用户。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器实现本申请实施例中基于软件隔离的服务提供方法中的步骤。
在本申请实施例中,采用JVM实现服务之间的隔离,主JVM作为计算服务与用户交互的接口,可以根据用户的需求为不同的用户创建具有独立运行环境的子JVM,使用子JVM为用户提供计算服务,子JVM通过主JVM将计算结果返回给用户。其中,子JVM之间运行环境的相互隔离,可以实现不同用户计算服务之间的隔离,使得用户数据更加的安全。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请示例性实施例提供的一种服务***的结构示意图;
图2为本申请示例性实施例提供的一种用户通过服务***提供计算服务的交互流程图;
图3为本申请示例性实施例提供的一种基于软件隔离的服务提供方法的流程示意图;
图4为本申请示例性实施例提供的一种服务端设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1本申请示例性实施例提供的一种服务***的结构示意图;如图1所示,该服务***100包括:主Java虚拟机(Java Virtual Machine,JVM)101和至少一个子JVM 102。
在本实施例中,服务***100可以对外提供计算服务,计算服务可以是但不限于:在线教育服务、在线视频服务或在线直播服务等。用户可以向主JVM 101发起计算资源申请,计算资源申请是指用户申请创建子JVM 102的请求。基于此,主JVM 101面向计算服务的需求用户,可作为服务***与用户之间交互接口,可以根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM 102,以使用子JVM 102为用户提供计算服务,以及将子JVM 102的计算结果返回给用户。不同的子JVM 102具有独立的运行环境,即不同子JVM 102之间相互隔离,不能进行通信,用户与子JVM 102之间的通信是通过主JVM 101实现的,不仅可以实现不同用户计算服务之间的隔离,而且使得用户的数据更加安全。另外,子JVM 102的运行环境更为纯粹(例如,只提供计算服务,不提供管理服务),功能单一,使得子JVM 102可以专注于提供计算服务,效率更高。进一步,叠加子JVM 102的即时编译器(just in timecompiler,JIT),使用内联、预热等优化措施,可以提供更为良好的性能。其中,内联指的是在子JVM 102中把方法内部调用的其它方法的逻辑,嵌入到自身的方法中去,变成自身的一部分,之后不再调用该方法,从而节省调用函数带来的额外开支。预热指的是预先缓存子JVM 102中的所有类,以便在运行子JVM 102时立即可用。
在本实施例中,创建好子JVM 102之后,用户可以向主JVM 101发送计算服务使用申请,该计算服务使用申请用于申请使用已创建好的子JVM 102提供计算服务。其中,计算服务使用申请中可以携带用户的计算服务需求。基于此,主JVM 101可以根据用户的计算服务使用申请,建立与子JVM 102之间的通信连接,为使用子JVM 102提供计算服务打下基础。进一步,基于该通信连接,将用户的计算服务需求转发至子JVM 102以供子JVM 102为用户提供计算服务,并将子JVM 102的计算结果返回给用户。
如图2所示,本申请实施例还提供一种用户通过服务***提供计算服务的交互流程图,如图2所示,该流程图包括以下步骤:
21a、服务管理人员创建主JVM。
22a、用户向主JVM发起计算资源申请,用以申请子JVM。
23a、主JVM根据计算资源申请,创建具有独立运行环境的子JVM。
24a、用户向主JVM发起计算服务使用申请,以请求使用子JVM为用户提供服务。
25a、主JVM根据用户的计算服务使用申请,建立与子JVM之间的通信连接。
26a、主JVM基于该通信连接,将用户的计算服务需求转发至子JVM。
27a、子JVM为用户提供计算服务,并将计算结果返回给主JVM。
28a、主JVM将子JVM返回的计算结果返回给用户。
在步骤21a中,一种创建对外提供服务的主JVM的实施方式,包括:接收服务管理人员通过命令行输入的创建主JVM的指令;根据该指令执行主JVM对应的可执行文件,创建主JVM并为主JVM分配名称和主进程号;建立主JVM的名称和主进程号之间的绑定关系。其中,主JVM可以将其名称提供给子JVM,以供子JVM与主JVM建立通信连接。另外,服务管理人员可以通过主进程号将主JVM销毁。
在步骤23a中,一种主JVM根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM的实施方式,包括:接收用户发起的计算资源申请,计算资源申请用于请求建立提供计算服务的子JVM;执行所述子JVM对应的可执行文件,以为用户创建子JVM并为子JVM分配子进程号和名称;建立子JVM的名称和子进程号之间的绑定关系。在本实施例中,主JVM可以根据子JVM的名称与子JVM建立通信连接,可以通过进程号对子JVM进行销毁。
在一可选实施例中,本实施例的方法还包括:主JVM为用户分配用户标识;建立用户标识与子JVM的名称之间映射关系,并存储至映射关系表中。在本实施例中,主JVM可以根据用户的MAC地址、IP地址或者名称等信息为用户分配用户标识,用户标识指的是可以唯一标识一个用户的标识信息,例如可以是字母、数字、数字串或字符串,例如可以是“aaa”,也可以是“111”,还可以是“aabb”或“11aa”等。
在步骤24a中,可以根据用户的计算服务使用申请,获取用户的用户标识;其中,用户的计算服务使用申请中包含用户的MAC地址、IP地址或者用户的名称等信息,可以基于该信息获取用户的用户标识,进一步,根据用户标识,查询映射关系表,以判断是否存在与用户标识对应的子JVM的名称;若存在,则根据子JVM的名称,在主JVM与子JVM的名称所标识的子JVM之间开启Socket服务,以建立与子JVM之间的通信连接;若不存在,表示主JVM没有为该用户创建子JVM或者该用户对应的子JVM已经被回收销毁,则执行可执行文件,以为用户创建子JVM并为子JVM分配子进程号和对应的名称;根据子JVM的名称,在主JVM与子JVM之间开启Socket服务,以建立与子JVM之间的通信连接。其中,主JVM可以将其名称提供给子JVM,以实现建立与子JVM之间的通信连接。
其中,Socket是应用层与传输控制协议/网际协议(Transmission ControlProtocol/Internet Protocol,TCP/IP)族通信的中间软件抽象层,它是一组接口。主JVM和子JVM可以基于Socket服务建立连接,主JVM发送计算服务需求,子JVM接收请求并处理计算服务需求,然后把计算结果发送给主JVM,由主JVM将计算结果返回给用户。
在一可选实施例中,本实施例的方法还包括:主JVM在创建子JVM之后,若超过设定的第一阈值时间内未接收到用户针对子JVM发起的计算服务使用申请,则回收子JVM;或者主JVM在将子JVM的计算结果返回给用户之后,回收子JVM。其中,回收子JVM指的是主JVM通过子JVM的进程号将子JVM销毁。
在本申请实施例中,采用JVM实现服务之间的隔离,主JVM作为计算服务与用户交互的接口,可以根据用户的需求为不同的用户创建具有独立运行环境的子JVM,使用子JVM为用户提供计算服务,子JVM通过主JVM将计算结果返回给用户。其中,子JVM之间运行环境的相互隔离,可以实现不同用户计算服务之间的隔离,使得用户数据更加的安全。
图3为本申请示例性实施例提供的一种基于软件隔离的服务提供方法的流程示意图;如图3所示,该方法包括:
31、创建主JVM,主JVM面向计算服务的需求用户;
32、主JVM根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM,并根据用户的计算服务使用申请,建立与子JVM之间的通信连接;
33、主JVM基于通信连接,将用户的计算服务需求转发至子JVM以供子JVM为用户提供计算服务,并将子JVM的计算结果返回给用户。
在本实施例中,主JVM一方面可以面向需求用户提供计算服务,另一方面可以控制子JVM的创建和销毁,并将用户的计算服务需求提供给子JVM。子JVM是指为用户提供计算服务的Java虚拟机,不同的子JVM具有独立的运行环境,即不同子JVM之间相互隔离,不能进行通信,用户与子JVM之间的通信是通过主JVM实现的。
其中,计算服务可以是但不限于:在线教育服务、在线视频服务或在线直播服务等。计算服务需求指的是用户对计算服务的需求,用户可以通过软件开发工具包(SoftwareDevelopment Kit,SDK)或者应用程序接口(Application Programming Interface,API)等形式提交计算服务需求。
在本实施例中,用户可以向主JVM发起计算资源申请,计算资源申请是指用户申请创建子JVM的请求。基于此,主JVM可以根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM。其中,一个用户可以对应有多个子JVM,也可以是一个小组(包含多个用户)共享一个计算单元,对此不做限定。
在本实施例中,创建好子JVM之后,用户可以向主JVM发送计算服务使用申请,计算服务使用申请用于向主JVM申请已创建好的子JVM。其中,计算服务使用申请中可以携带用户的计算服务需求。基于此,主JVM可以根据用户的计算服务使用申请,建立与子JVM之间的通信连接。进一步,基于该通信连接,将用户的计算服务需求转发至子JVM以供子JVM为用户提供计算服务,并将子JVM的计算结果返回给用户。
在本申请实施例中,采用JVM实现服务之间的隔离,主JVM作为计算服务与用户交互的接口,可以根据用户的需求为不同的用户创建具有独立运行环境的子JVM,使用子JVM为用户提供计算服务,子JVM通过主JVM将计算结果返回给用户。其中,子JVM之间运行环境的相互隔离,可以实现不同用户计算服务之间的隔离,使得用户数据更加的安全。
在一可选实施例中,一种创建对外提供服务的主JVM的实施方式,包括:接收服务管理人员通过命令行输入的创建主JVM的指令;根据指令执行主JVM对应的可执行文件,创建主JVM并为主JVM分配名称和主进程号;建立主JVM的名称和主进程号之间的绑定关系。其中,主JVM可以将其名称提供给子JVM,以供子JVM与主JVM建立通信连接。另外,服务管理人员可以通过主进程号将主JVM销毁。
在一可选实施例中,一种主JVM根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM的实施方式,包括:接收用户发起的计算资源申请,计算资源申请用于请求建立提供计算服务的子JVM;执行所述子JVM对应的可执行文件,以为用户创建子JVM并为子JVM分配子进程号和名称;建立子JVM的名称和子进程号之间的绑定关系。在本实施例中,主JVM可以根据子JVM的名称与子JVM建立通信连接,可以通过进程号对子JVM进行销毁。
在一可选实施例中,本实施例的方法还包括:主JVM为用户分配用户标识;建立用户标识与子JVM的名称之间映射关系,并存储至映射关系表中。在本实施例中,主JVM可以根据用户的MAC地址、IP地址或者名称等信息为用户分配用户标识,用户标识指的是可以唯一标识一个用户的标识信息,例如可以是字母、数字、数字串或字符串,例如可以是“aaa”,也可以是“111”,还可以是“aabb”或“11aa”等。
进一步可选地,可以根据用户的计算服务使用申请,获取用户的用户标识;其中,用户的计算服务使用申请中包含用户的MAC地址、IP地址或者用户的名称等信息,可以基于该信息获取用户的用户标识,进一步,根据用户标识,查询映射关系表,以判断是否存在与用户标识对应的子JVM的名称;若存在,则根据子JVM的名称,在主JVM与子JVM的名称所标识的子JVM之间开启Socket服务,以建立与子JVM之间的通信连接;若不存在,表示主JVM没有为该用户创建子JVM或者该用户对应的子JVM已经被回收销毁,则执行可执行文件,以为用户创建子JVM并为子JVM分配子进程号和对应的名称;根据子JVM的名称,在主JVM与子JVM之间开启Socket服务,以建立与子JVM之间的通信连接。其中,主JVM可以将其名称提供给子JVM,以实现建立与子JVM之间的通信连接。
在一可选实施例中,本实施例的方法还包括:主JVM在创建子JVM之后,若超过设定的第一阈值时间内未接收到用户针对子JVM发起的计算服务使用申请,则回收子JVM;或者主JVM在将子JVM的计算结果返回给用户之后,回收子JVM。其中,回收子JVM指的是主JVM通过子JVM的进程号将子JVM销毁。
在本申请实施例中,采用JVM实现服务之间的隔离,主JVM作为计算服务与用户交互的接口,可以根据用户的需求为不同的用户创建具有独立运行环境的子JVM,使用子JVM为用户提供计算服务,子JVM通过主JVM将计算结果返回给用户。其中,子JVM之间运行环境的相互隔离,可以实现不同用户计算服务之间的隔离,使得用户数据更加的安全。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤31至步骤33的执行主体可以为设备A;又比如,步骤31和32的执行主体可以为设备A,步骤33的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如31、32等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图4为本申请示例性实施例提供的一种服务端设备的结构示意图;如图4所示,该服务端设备包括:存储器401和处理器402。
存储器401,用于存储主JVM对应的计算机程序,并可被配置为存储其它各种数据以支持在服务端设备上的操作。这些数据的示例包括用于在服务端设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器401可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器402,与存储器401耦合,用于运行主JVM对应的计算机程序,以用于:根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM, 并根据用户的计算服务使用申请,建立与子JVM之间的通信连接;基于通信连接,将用户的计算服务需求转发至子JVM以供子JVM为用户提供计算服务,并将子JVM的计算结果返回给用户。
在一可选实施例中,处理器402还用于:接收服务管理人员通过命令行输入的创建主JVM的指令;根据指令执行主JVM对应的可执行文件,创建主JVM并为主JVM分配名称和主进程号;建立主JVM的名称和主进程号之间的绑定关系。
在一可选实施例中,处理器402在主JVM根据用户发起的计算资源申请,为用户创建具有独立运行环境的子JVM时,具体用于:接收用户发起的计算资源申请,计算资源申请用于请求建立提供计算服务的子JVM;执行子JVM对应的可执行文件,以为用户创建子JVM并为子JVM分配子进程号和名称;建立子JVM的名称和子进程号之间的绑定关系。
在一可选实施例中,处理器402还用于:为用户分配用户标识;建立用户标识与子JVM的名称之间映射关系,并存储至映射关系表中。
在一可选实施例中,处理器402在根据用户的计算服务使用申请,建立与子JVM之间的通信连接时,具体用于:根据用户的计算服务使用申请,获取用户的用户标识;根据用户标识,查询映射关系表,以判断是否存在与用户标识对应的子JVM的名称;若存在,则根据子JVM的名称,在主JVM与子JVM的名称所标识的子JVM之间开启Socket服务,以建立与子JVM之间的通信连接;若不存在,则执行可执行文件,以为用户创建子JVM并为子JVM分配子进程号和对应的名称;根据子JVM的名称,在主JVM与子JVM之间开启Socket服务,以建立与子JVM之间的通信连接。
在一可选实施例中,处理器402还用于:主JVM在创建子JVM之后,若超过设定的第一阈值时间内未接收到用户针对子JVM发起的计算服务使用申请,则回收子JVM;或者主JVM在将子JVM的计算结果返回给用户之后,回收子JVM。
在本申请实施例中,采用JVM实现服务之间的隔离,主JVM作为计算服务与用户交互的接口,可以根据用户的需求为不同的用户创建具有独立运行环境的子JVM,使用子JVM为用户提供计算服务,子JVM通过主JVM将计算结果返回给用户。其中,子JVM之间运行环境的相互隔离,可以实现不同用户计算服务之间的隔离,使得用户数据更加的安全。
进一步,如图4所示,该服务端设备还包括:通信组件406、电源组件408等其它组件。图4中仅示意性给出部分组件,并不意味着服务端设备只包括图4所示组件。若本实施例的服务端设备实现为常规服务器、云服务器或服务器阵列等服务端设备。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述基于软件隔离的服务提供方法实施例中可由服务端设备执行的各步骤。
上述图4中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可以包括近场通信(NFC)模块,射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术等。
上述图4中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (4)
1.一种基于软件隔离的服务提供方法,其特征在于,包括:
创建主JVM,所述主JVM面向计算服务的需求用户;
所述主JVM根据用户发起的计算资源申请,为所述用户创建具有独立运行环境的子JVM,并根据所述用户的计算服务使用申请,建立与所述子JVM之间的通信连接;
所述主JVM基于所述通信连接,将所述用户的计算服务需求转发至所述子JVM以供所述子JVM为所述用户提供计算服务,并将所述子JVM的计算结果返回给所述用户;
其中,创建对外提供计算服务的主JVM,包括:
接收服务管理人员通过命令行输入的创建主JVM的指令;
根据所述指令执行所述主JVM对应的可执行文件,创建所述主JVM并为所述主JVM分配名称和主进程号;
建立所述主JVM的名称和主进程号之间的绑定关系;
所述主JVM根据用户发起的计算资源申请,为所述用户创建具有独立运行环境的子JVM,包括:
接收用户发起的计算资源申请,所述计算资源申请用于请求建立提供所述计算服务的子JVM;
执行所述子JVM对应的可执行文件,以为所述用户创建所述子JVM并为所述子JVM分配子进程号和名称;
建立所述子JVM的名称和子进程号之间的绑定关系;
所述方法还包括:为所述用户分配用户标识;
建立所述用户标识与所述子JVM的名称之间映射关系,并存储至映射关系表中;
根据所述用户的计算服务使用申请,建立与所述子JVM之间的通信连接,包括:
根据所述用户的计算服务使用申请,获取所述用户的用户标识;
根据所述用户标识,查询所述映射关系表,以判断是否存在与所述用户标识对应的子JVM的名称;
若存在,则根据所述子JVM的名称,在所述主JVM与所述子JVM的名称所标识的子JVM之间开启Socket服务,以建立与所述子JVM之间的通信连接;
若不存在,则执行可执行文件,以为所述用户创建所述子JVM并为所述子JVM分配子进程号和对应的名称;根据所述子JVM的名称,在所述主JVM与所述子JVM之间开启Socket服务,以建立与所述子JVM之间的通信连接。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述主JVM在创建所述子JVM之后,若超过设定的第一阈值时间内未接收到用户针对所述子JVM发起的计算服务使用申请,则回收所述子JVM;
或者
所述主JVM在将所述子JVM的计算结果返回给用户之后,回收所述子JVM。
3.一种服务端设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储主JVM对应的计算机程序;
所述处理器,与所述存储器耦合,用于运行所述主JVM对应的计算机程序,以用于:根据用户发起的计算资源申请,为所述用户创建具有独立运行环境的子JVM, 并根据所述用户的计算服务使用申请,建立与所述子JVM之间的通信连接;基于所述通信连接,将所述用户的计算服务需求转发至所述子JVM以供所述子JVM为所述用户提供计算服务,并将所述子JVM的计算结果返回给所述用户;
所述处理器还用于:
接收服务管理人员通过命令行输入的创建主JVM的指令;
根据所述指令执行所述主JVM对应的可执行文件,创建所述主JVM并为所述主JVM分配名称和主进程号;
建立所述主JVM的名称和主进程号之间的绑定关系;
所述处理器在主JVM根据用户发起的计算资源申请,为所述用户创建具有独立运行环境的子JVM时,具体用于:
接收用户发起的计算资源申请,所述计算资源申请用于请求建立提供所述计算服务的子JVM;
执行所述子JVM对应的可执行文件,以为所述用户创建所述子JVM并为所述子JVM分配子进程号和名称;
建立所述子JVM的名称和子进程号之间的绑定关系;
所述处理器还用于:为所述用户分配用户标识;
建立所述用户标识与所述子JVM的名称之间映射关系,并存储至映射关系表中;
所述处理器在根据所述用户的计算服务使用申请,建立与所述子JVM之间的通信连接时,具体用于:
根据所述用户的计算服务使用申请,获取所述用户的用户标识;
根据所述用户标识,查询所述映射关系表,以判断是否存在与所述用户标识对应的子JVM的名称;
若存在,则根据所述子JVM的名称,在所述主JVM与所述子JVM的名称所标识的子JVM之间开启Socket服务,以建立与所述子JVM之间的通信连接;
若不存在,则执行可执行文件,以为所述用户创建所述子JVM并为所述子JVM分配子进程号和对应的名称;根据所述子JVM的名称,在所述主JVM与所述子JVM之间开启Socket服务,以建立与所述子JVM之间的通信连接。
4.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器实现权利要求1-2任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010792767.8A CN111736960B (zh) | 2020-08-10 | 2020-08-10 | 基于软件隔离的服务提供方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010792767.8A CN111736960B (zh) | 2020-08-10 | 2020-08-10 | 基于软件隔离的服务提供方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111736960A CN111736960A (zh) | 2020-10-02 |
CN111736960B true CN111736960B (zh) | 2020-12-22 |
Family
ID=72658253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010792767.8A Active CN111736960B (zh) | 2020-08-10 | 2020-08-10 | 基于软件隔离的服务提供方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111736960B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077072A (zh) * | 2013-01-04 | 2013-05-01 | 浪潮(北京)电子信息产业有限公司 | 一种复制虚拟机的方法和*** |
US8839188B2 (en) * | 2011-05-18 | 2014-09-16 | International Business Machines Corporation | Automated build process and root-cause analysis |
CN104331375A (zh) * | 2014-10-29 | 2015-02-04 | 中国建设银行股份有限公司 | 共享虚拟化资源池环境下的共享虚拟资源管理方法和装置 |
CN105917627A (zh) * | 2014-02-07 | 2016-08-31 | 甲骨文国际公司 | 云服务定制执行环境 |
CN106990998A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 虚拟机监控方法及装置 |
CN107515777A (zh) * | 2017-08-18 | 2017-12-26 | 郑州云海信息技术有限公司 | 云***中虚拟机资源的管理方法和装置 |
CN109086136A (zh) * | 2018-07-26 | 2018-12-25 | 广东浪潮大数据研究有限公司 | 一种Samba软件的请求处理方法及相关装置 |
CN111078263A (zh) * | 2019-12-13 | 2020-04-28 | 深圳市随手科技有限公司 | 基于Drools规则引擎的热部署方法、***、服务器及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101668022B (zh) * | 2009-09-14 | 2012-09-12 | 陈博东 | 一种建立在虚拟机上的虚拟网络隔离***及实现方法 |
CN103034526B (zh) * | 2012-12-06 | 2016-04-13 | 中国电信股份有限公司 | 一种虚拟化服务的实现方法和装置 |
CN104657215A (zh) * | 2013-11-19 | 2015-05-27 | 南京鼎盟科技有限公司 | 云计算中虚拟化节能*** |
CN104951694B (zh) * | 2014-03-24 | 2018-04-10 | 华为技术有限公司 | 一种管理虚拟机的隔离方法及装置 |
CN106354544A (zh) * | 2016-08-24 | 2017-01-25 | 华为技术有限公司 | 虚拟机创建方法、***以及主机 |
US10452420B1 (en) * | 2016-11-02 | 2019-10-22 | Parallels International Gmbh | Virtualization extension modules |
-
2020
- 2020-08-10 CN CN202010792767.8A patent/CN111736960B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8839188B2 (en) * | 2011-05-18 | 2014-09-16 | International Business Machines Corporation | Automated build process and root-cause analysis |
CN103077072A (zh) * | 2013-01-04 | 2013-05-01 | 浪潮(北京)电子信息产业有限公司 | 一种复制虚拟机的方法和*** |
CN105917627A (zh) * | 2014-02-07 | 2016-08-31 | 甲骨文国际公司 | 云服务定制执行环境 |
CN104331375A (zh) * | 2014-10-29 | 2015-02-04 | 中国建设银行股份有限公司 | 共享虚拟化资源池环境下的共享虚拟资源管理方法和装置 |
CN106990998A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 虚拟机监控方法及装置 |
CN107515777A (zh) * | 2017-08-18 | 2017-12-26 | 郑州云海信息技术有限公司 | 云***中虚拟机资源的管理方法和装置 |
CN109086136A (zh) * | 2018-07-26 | 2018-12-25 | 广东浪潮大数据研究有限公司 | 一种Samba软件的请求处理方法及相关装置 |
CN111078263A (zh) * | 2019-12-13 | 2020-04-28 | 深圳市随手科技有限公司 | 基于Drools规则引擎的热部署方法、***、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111736960A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10700947B2 (en) | Life cycle management method and device for network service | |
CN112019475A (zh) | 无服务器架构下的资源访问方法、设备、***及存储介质 | |
CN107196982B (zh) | 一种用户请求的处理方法和装置 | |
CN106533713B (zh) | 一种应用部署方法及设备 | |
US20170373931A1 (en) | Method for updating network service descriptor nsd and apparatus | |
CN111641515B (zh) | Vnf的生命周期管理方法及装置 | |
CN113760452B (zh) | 一种容器调度方法、***、设备及存储介质 | |
CN108737224B (zh) | 一种基于微服务架构的报文处理方法和装置 | |
CN114070822B (zh) | 一种Kubernetes Overlay IP地址管理方法 | |
CN113810230B (zh) | 对容器集群中的容器进行网络配置的方法、装置及*** | |
CN103677858A (zh) | 一种云环境中虚拟机软件管理的方法、***及设备 | |
CN111835679B (zh) | 多租户场景下的租户资源管理方法和装置 | |
CN106878480B (zh) | 一种dhcp服务进程共享方法及装置 | |
US10282120B2 (en) | Method, apparatus and system for inserting disk | |
CN105516086A (zh) | 业务处理方法及装置 | |
CN113438295A (zh) | 容器组地址分配方法、装置、设备及存储介质 | |
JP2007226800A (ja) | 多重ジャバアプリケーション環境で仮想idを用いて資源を管理する装置およびその方法 | |
CN111683159A (zh) | Ip地址分配方法、设备、***及存储介质 | |
CN114710549A (zh) | 一种容器平台中网卡的动态管理方法、***及业务节点 | |
CN114422350A (zh) | 一种公共云容器实例创建方法 | |
CN102077186A (zh) | 传送存储盘映像的方法和*** | |
CN108667750B (zh) | 虚拟资源管理方法及装置 | |
CN111736960B (zh) | 基于软件隔离的服务提供方法、设备及存储介质 | |
CN111294220B (zh) | 基于nginx的网络隔离配置方法和装置 | |
CN109660575B (zh) | Nfv业务部署的实现方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |