CN112328213B - 一种在线软件开发过程的隔离方法、设备及介质 - Google Patents
一种在线软件开发过程的隔离方法、设备及介质 Download PDFInfo
- Publication number
- CN112328213B CN112328213B CN202011050989.9A CN202011050989A CN112328213B CN 112328213 B CN112328213 B CN 112328213B CN 202011050989 A CN202011050989 A CN 202011050989A CN 112328213 B CN112328213 B CN 112328213B
- Authority
- CN
- China
- Prior art keywords
- working space
- environment
- development
- configuration file
- online software
- 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
- 238000000034 method Methods 0.000 title claims abstract description 131
- 230000008569 process Effects 0.000 title claims abstract description 96
- 238000002955 isolation Methods 0.000 title claims abstract description 46
- 238000011161 development Methods 0.000 claims abstract description 169
- 230000001419 dependent effect Effects 0.000 claims description 14
- 230000003213 activating effect Effects 0.000 claims description 10
- 230000004913 activation Effects 0.000 claims description 6
- 238000004140 cleaning Methods 0.000 claims description 5
- 239000000306 component Substances 0.000 description 30
- 238000003860 storage Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000008358 core component Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- 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/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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
- 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/45575—Starting, stopping, suspending or resuming 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种在线软件开发过程的隔离方法、设备及介质,包括:根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。本说明书实施例通过工作空间,从开发环境、开发内容等多个维度隔离开发过程,可以有效地进行在线软件开发过程的隔离。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种在线软件开发过程的隔离方法、设备及介质。
背景技术
在线软件开发是一个多人完成的开发过程。在开发时,需要隔离用户间的开发过程,保证开发过程独立高效。但随着云环境基础设施的完善,企业业务建模过程逐渐向云化开发、云化存储方向靠拢。行业中常见的业务软件提供的隔离方式仅仅是内容隔离和数据隔离,这样的隔离无法满足更复杂的开发场景要求。
发明内容
有鉴于此,本申请实施例提供了一种在线软件开发过程的隔离方法、设备及介质,用于解决现有技术中隔离方式不完善的问题。
本申请实施例采用下述技术方案:
本申请实施例提供一种在线软件开发过程的隔离方法,所述方法包括:
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
需要说明的是,本说明书实施例通过工作空间,从开发环境、开发内容等多个维度隔离开发过程,可以有效地进行在线软件开发过程的隔离。
进一步的,所述根据预先创建工作空间,管理用户的开发内容和开发环境之前,所述方法还包括:
根据自定义的工作空间模板初始工作空间,初始后工作空间处于未激活状态;
根据在线软件开发所需的开发环境,向工作空间定义配置文件,并根据所述配置文件对工作空间进行激活操作;
若激活完成后,根据配置文件启动开发环境,并加载预设的组件,以便开发环境的状态处于运行中的状态。
进一步的,当所述工作空间为未激活状态时,将保留工作空间的开发内容,并在所述工作空间激活前,所述工作空间将不被启动。
进一步的,所述开发环境包括主环境与依赖的服务;
若需要停止工作空间,所述方法还包括:
保留当前的开发内容,停止开发环境及对应的组件,以便所述主环境处于已停止状态,并在下次启动工作空间时重新恢复开发环境;
依赖的服务如果没有被其他主环境使用,将会处于已停止状态。
进一步的,若需要注销工作空间,所述方法还包括:
清理开发环境及开发内容,并释放所述工作空间的资源。
进一步的,所述根据所述配置文件对工作空间进行激活操作,具体包括:
检查配置文件的结构是否正确;
在检查出配置文件的结构正确时,检查配置文件中预设的环境及预设的组件是否存在;
在检查出配置文件中预设的环境及预设的组件存在时,检查配置文件中提供的资源是否满足启动环境与组件所需的资源要求;
在检查出配置文件中提供的资源满足启动环境与组件所需的资源要求时,对工作空间进行激活操作。
进一步的,所述组件包括插件与Docker镜像;其中,
所述插件是通过挂载的方式,随着开发环境的启动而启动,并提供对应的服务;
所述Docker镜像是通过镜像的方式启动,并提供对应的服务。
进一步的,所述工作空间的元数据还包括工作空间对应用户的角色信息,其中,用户的角色信息包括维护者、开发者、观察者与游客。
本申请实施例还提供一种在线软件开发过程的隔离设备,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
本申请实施例还提供一种在线软件开发过程的隔离介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本说明书实施例通过工作空间,从开发环境、开发内容等多个维度隔离开发过程,可以有效地进行在线软件开发过程的隔离。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书实施例一提供的一种在线软件开发过程的隔离方法的流程示意图;
图2为本说明书实施例二提供的一种在线软件开发过程的隔离方法的流程示意图;
图3为本说明书实施例提供的工作空间生命周期的流程示意图;
图4为本说明书实施例提供的工作空间生命周期的状态图。
具体实施方式
在企业软件开发领域,开发过程越来越复杂,依赖的环境难以配置,开发场景复杂多变。对于基础薄弱的开发人员,开发环境配置复杂,难以快速上手,逐渐成为企业节约成本的瓶颈之一。尤其在模型驱动开发领域,各产品都有自己的架构体系,开发环境和运行环境,很难形成统一标准。
此外,随着云环境基础设施的完善,企业业务建模过程逐渐向云化开发、云化存储方向靠拢。行业中常见的业务软件提供的隔离方式仅仅是内容隔离和数据隔离,这样的隔离无法满足更复杂的开发场景要求。使用统一的开发过程隔离成了这类场景的诉求。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本说明书实施例一提供的一种在线软件开发过程的隔离方法的流程示意图,本说明书实施例可以由隔离系统的执行单元执行下述步骤,具体步骤可以包括:
步骤S101,根据需求定义工作空间。
步骤S102,根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离。
在本说明书实施例的步骤S102中,工作空间包括工作空间的元数据和配置文件。工作空间的元数据包括管理用户的标识信息,开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,开发内容为在线软件开发过程隔离的内容,开发环境为用户开发所处的环境。其中,开发内容为在线软件开发过程隔离的一部分内容,在线软件开发过程时还需要隔离开发环境。
与本说明书实施例一相对应的是,图2为本说明书实施例二提供的一种在线软件开发过程的隔离方法的流程示意图,本说明书实施例可以由隔离系统的执行单元执行下述步骤,具体步骤可以包括:
步骤S201,根据自定义的工作空间模板初始工作空间,初始后工作空间处于未激活状态。
在本说明书实施例的步骤S201中,还可以根据预置模板初始工作空间。
步骤S202,根据在线软件开发所需的开发环境,向工作空间定义配置文件,并根据所述配置文件对工作空间进行激活操作。
在本说明书实施例的步骤S202中,工作空间允许用户自定义配置,并根据在线软件开发所需的开发环境,向工作空间定义对应的配置文件。
进一步的,在本说明书实施例的步骤S202中,根据所述配置文件对工作空间进行激活操作,可以具体包括:
检查配置文件的结构是否正确;在检查出配置文件的结构正确时,检查配置文件中预设的环境及预设的组件是否存在;在检查出配置文件中预设的环境及预设的组件存在时,检查配置文件中提供的资源是否满足启动环境与组件所需的资源要求;在检查出配置文件中提供的资源满足启动环境与组件所需的资源要求时,对工作空间进行激活操作,其中,此处的资源可以包括计算机内存、核心数以及核心频率。
步骤S203,若激活完成后,根据配置文件启动开发环境,并加载预设的组件,以便开发环境的状态处于运行中的状态。
进一步的,在本说明书实施例的步骤S203中,组件包括插件与Docker镜像;其中,
插件是通过挂载的方式,随着开发环境的启动而启动,并提供对应的服务;
Docker镜像是通过镜像的方式启动,并提供对应的服务。
其中,插件类型的组件目录可以直接被访问。Docker镜像类型的组件可以通过reuse标签设置为可复用,可复用的组件大都为提供标准的http服务的组件。并且,工作空间可以扩展开发环境的组件。工作空间可以要求组件维护一个元数据文件,并可以明确定义这个组件的名称、入口、引用方式、提供的服务以及是否可被复用。
步骤S204,根据启动的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离。
在本说明书实施例的步骤S204中,工作空间隶属于用户。工作空间包括工作空间的元数据和配置文件。工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容。开发环境为用户开发所处的环境。其中,配置文件可以保存为JSON格式。开发内容为在线软件开发过程隔离的一部分内容,在线软件开发过程时还需要隔离开发环境。
需要说明的是,开发内容在本说明书实施例中指的是开发过程中的代码或者建模过程中的模型,以一定的目录结构保存在各工作空间中,是开发过程中必须隔离的内容。此外,开发内容的元数据可以保存在工作空间下的配置文件中,用于明确定义对应的代码仓库、存储类型与存储地址。配置文件中还可以增加属性节点,用于保存开发内容相关的扩展信息。比如,对于某领域软件,开发内容中包含工程元数据,就可以在这个节点中扩展,不会随开发环境的启动停止而变化。
需要说明的是,开发环境的元数据以配置文件的形式保存在工作空间下。区别于开发内容,开发环境将环境状态也会保存在配置文件中。
当开发内容是预先设置的格式,在开发环境中将被挂载,并可以直接地访问该开发内容。当开发内容是网络文件系统,开发环境可以对接该网络文件系统,从而访问该开发内容。
进一步的,在本说明书实施例的步骤S204中,工作空间的元数据还包括工作空间对应用户的角色信息,通过赋予用户不同的角色,可以更方便的管理工作空间。其中,用户的角色信息可以包括维护者、开发者、观察者与游客。维护者,具有管理工作空间的功能;开发者,具有访问和修改开发内容、开发环境的功能;观察者(一般是测试),可以查看开发内容与开发环境,但不能修改;游客,可以看到工作空间的基本信息,不能查看开发内容与开发环境的具体信息。工作空间的元数据还包括可扩展的属性节点,用于保存工作空间相关的业务信息,比如,scm(供应链管理)与sd(销售订单)。
进一步的,当所述工作空间为未激活状态时,将保留工作空间的开发内容,并在所述工作空间激活前,所述工作空间将不被启动。未激活状态也可以称为冻结状态。
进一步的,所述开发环境包括主环境与依赖的服务。
其中,主环境可以用于提供基础的开发界面和依赖,比如,Java开发需要依赖java开发的IDE和maven;依赖的服务基于封装完善的组件提供,用于提供主环境运行所需要的接口或服务等。组件的运行时主数据节点与主环境描述一致。开发环境定义中每个环境定义的节点都存在一个变量键值对,环境启动的时候会通过环境变量的方式注入到运行环境中。
工作空间中主环境及依赖服务的状态可以分为运行中(running)、已停止(stopped)、发生错误(error)、等待中(pending)。运行中表示正常运行提供服务;已停止表示没在运行;发生错误表示启动中或者运行中发成不可恢复的问题,可以获取开发环境日志解决问题;等待中表示原因是资源紧张正在等待资源分配,也可能是资源已经不足,无法满足启动条件。开发环境在工作空间的启动环节中启动,正常启动后状态变更为运行中并提供开发服务,用户可以通过服务地址访问。
需要说明的是,在本说明书实施例中存在工作空间的服务,工作空间通过一系列的接口提供管理工作空间的服务。比如开发环境及插件都是通过开发内容的服务访问具体的存储。工作空间的核心服务具体参见表1:
表1某个工作空间下的开发内容提供的核心服务参见表2:
表2某个工作空间下的开发环境提供的核心服务参见表3:
表3
进一步的,若需要停止工作空间,所述方法还包括:
保留当前的开发内容,停止开发环境及对应的组件,以便主环境处于已停止状态,并在下次启动工作空间时重新恢复开发环境;
依赖的服务如果没有被其他主环境使用,将会处于已停止状态。
进一步的,若需要注销工作空间,所述方法还包括:
清理开发环境及开发内容,并释放所述工作空间的资源,不可恢复。
需要说明的是,工作空间的管理可以基于工作空间的生命周期。参见图3与图4,分别示出了工作空间生命周期的流程示意图与工作空间生命周期的状态图。开始时先根据工作空间模板初始工作空间,初始后工作空间的状态为未激活(冻结)状态,此时的工作空间允许进行自定义配置,比如环境信息。由于工作空间激活才能被使用,所以需要对未激活的工作空间进行激活,激活时检查配置文件正确性,激活成功后,进入激活状态,可以被启动;失败后保持未激活(冻结)状态。在激活状态时可以启动开发环境,并加载组件。正常启动后,主环境及依赖的组件都处于运行中的状态。如果主环境或依赖的组件有服务异常,异常部分处于发生错误的状态,如果主环境或核心组件异常,工作空间状态回归到激活状态,错误信息记录到日志中;如果是非核心组件,主环境依旧可以正常使用,同时,工作空间处于运行状态。另外,运行状态的工作空间可被停止。停止操作将保留开发内容,停止开发环境及依赖的组件。下次启动会重新恢复运行环境。停止后主环境处于激活状态,如果依赖的服务没有被其他主环境依赖,将会处于已停止的状态;如果被其他正在运行的主环境依赖,状态不变,继续提供服务。停止后工作空间处于激活状态。此外,非运行状态的工作空间可以被注销。清理开发环境,清理开发内容。释放资源,开发临时内容不可恢复。
需要说明的是,本说明书实施例具有以下特性:
1、多维度。本说明书实施例通过工作空间,从开发环境、开发内容等多个维度隔离开发过程,可以有效地进行在线软件开发过程的隔离。
2、通用性。本说明书实施例的设计是基于领先的开源应用容器化思想,具有良好的平台兼容性,可以最大限度地不依赖于系统和硬件环境;
3、可扩展。本说明书实施例针对业务场景,可灵活的扩展,能够快速适应软件开发需求多变的场景;
4、易配置。本说明书实施例通过配置可以自定义环境信息,配置以友好可读的JSON格式展示;
5、场景广泛。本说明书实施例的应用场景不仅适用于常见软件在线开发,同样可适用于模型驱动开发过程。
6、无缝迁移。本说明书实施例提出的在线开发方式,仅需要用户根据需求进行配置,无需对线下开发内容修改,即可迁移到线上开发平台。
本申请实施例还提供一种在线软件开发过程的隔离设备,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
本申请实施例还提供一种在线软件开发过程的隔离介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带式磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种在线软件开发过程的隔离方法,其特征在于,所述方法包括:
根据自定义的工作空间模板初始工作空间,初始后工作空间处于未激活状态;
根据在线软件开发所需的开发环境,向工作空间定义配置文件,并根据所述配置文件对工作空间进行激活操作,具体包括:
检查配置文件的结构是否正确;
在检查出配置文件的结构正确时,检查配置文件中预设的环境及预设的组件是否存在;
在检查出配置文件中预设的环境及预设的组件存在时,检查配置文件中提供的资源是否满足启动环境与组件所需的资源要求;
在检查出配置文件中提供的资源满足启动环境与组件所需的资源要求时,对工作空间进行激活操作;
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
2.根据权利要求1所述的在线软件开发过程的隔离方法,其特征在于,所述方法还包括:
若激活完成后,根据配置文件启动开发环境,并加载预设的组件,以便开发环境的状态处于运行中的状态。
3.根据权利要求2所述的在线软件开发过程的隔离方法,其特征在于,当所述工作空间为未激活状态时,将保留工作空间的开发内容,并在所述工作空间激活前,所述工作空间将不被启动。
4.根据权利要求2所述的在线软件开发过程的隔离方法,其特征在于,所述开发环境包括主环境与依赖的服务;
若需要停止工作空间,所述方法还包括:
保留当前的开发内容,停止开发环境及对应的组件,以便所述主环境处于已停止状态,并在下次启动工作空间时重新恢复开发环境;
依赖的服务如果没有被其他主环境使用,将会处于已停止状态。
5.根据权利要求2所述的在线软件开发过程的隔离方法,其特征在于,若需要注销工作空间,所述方法还包括:
清理开发环境及开发内容,并释放所述工作空间的资源。
6.根据权利要求2所述的在线软件开发过程的隔离方法,其特征在于,所述组件包括插件与Docker镜像;其中,
所述插件是通过挂载的方式,随着开发环境的启动而启动,并提供对应的服务;
所述Docker镜像是通过镜像的方式启动,并提供对应的服务。
7.根据权利要求1所述的在线软件开发过程的隔离方法,其特征在于,所述工作空间的元数据还包括工作空间对应用户的角色信息,其中,用户的角色信息包括维护者、开发者、观察者与游客。
8.一种在线软件开发过程的隔离设备,其特征在于,所述设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
根据自定义的工作空间模板初始工作空间,初始后工作空间处于未激活状态;
根据在线软件开发所需的开发环境,向工作空间定义配置文件,并根据所述配置文件对工作空间进行激活操作,具体包括:
检查配置文件的结构是否正确;
在检查出配置文件的结构正确时,检查配置文件中预设的环境及预设的组件是否存在;
在检查出配置文件中预设的环境及预设的组件存在时,检查配置文件中提供的资源是否满足启动环境与组件所需的资源要求;
在检查出配置文件中提供的资源满足启动环境与组件所需的资源要求时,对工作空间进行激活操作;
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
9.一种在线软件开发过程的隔离介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
根据自定义的工作空间模板初始工作空间,初始后工作空间处于未激活状态;
根据在线软件开发所需的开发环境,向工作空间定义配置文件,并根据所述配置文件对工作空间进行激活操作,具体包括:
检查配置文件的结构是否正确;
在检查出配置文件的结构正确时,检查配置文件中预设的环境及预设的组件是否存在;
在检查出配置文件中预设的环境及预设的组件存在时,检查配置文件中提供的资源是否满足启动环境与组件所需的资源要求;
在检查出配置文件中提供的资源满足启动环境与组件所需的资源要求时,对工作空间进行激活操作;
根据预先定义的工作空间,管理用户的开发内容和开发环境,以实现在线软件开发过程的隔离,其中,所述工作空间包括工作空间的元数据和配置文件,所述工作空间的元数据包括管理用户的标识信息,所述开发内容为在线软件开发过程中的代码或者建模过程中的模型,并保存在各工作空间中,所述开发内容为在线软件开发过程隔离的内容,所述开发环境为用户开发所处的环境。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011050989.9A CN112328213B (zh) | 2020-09-29 | 2020-09-29 | 一种在线软件开发过程的隔离方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011050989.9A CN112328213B (zh) | 2020-09-29 | 2020-09-29 | 一种在线软件开发过程的隔离方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112328213A CN112328213A (zh) | 2021-02-05 |
CN112328213B true CN112328213B (zh) | 2023-06-06 |
Family
ID=74314094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011050989.9A Active CN112328213B (zh) | 2020-09-29 | 2020-09-29 | 一种在线软件开发过程的隔离方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112328213B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824617A (zh) * | 2016-03-09 | 2016-08-03 | 深圳市京华科讯科技有限公司 | 一种实现多人协同开发程序的方法、系统及开发服务器 |
CN107797914A (zh) * | 2016-09-07 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 代码处理方法、装置及代码发布系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114475A1 (en) * | 2003-11-24 | 2005-05-26 | Hung-Yang Chang | System and method for collaborative development environments |
-
2020
- 2020-09-29 CN CN202011050989.9A patent/CN112328213B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824617A (zh) * | 2016-03-09 | 2016-08-03 | 深圳市京华科讯科技有限公司 | 一种实现多人协同开发程序的方法、系统及开发服务器 |
CN107797914A (zh) * | 2016-09-07 | 2018-03-13 | 阿里巴巴集团控股有限公司 | 代码处理方法、装置及代码发布系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112328213A (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970873B (zh) | 线上mock测试方法、装置及系统 | |
CN110401700B (zh) | 模型加载方法及系统、控制节点及执行节点 | |
CN108268289B (zh) | web应用的参数配置方法、装置及系统 | |
CN109947643B (zh) | 一种基于a/b测试的实验方案的配置方法、装置及设备 | |
CN107045438A (zh) | 一种应用顶层视图处理方法、装置及组件 | |
CN108595246B (zh) | 一种运行应用的方法、装置及设备 | |
US9772835B1 (en) | Modification of program code for execution in a multi-tenant or distributed computing environment | |
CN117075930B (zh) | 一种计算框架管理系统 | |
CN110633096A (zh) | 节点控制方法及装置、版本控制方法及装置、分布式系统 | |
CN109597678A (zh) | 任务处理方法及装置 | |
CN113094028A (zh) | 一种Windows桌面程序开发框架、方法及相关组件 | |
CN108345536A (zh) | 一种持续集成环境的部署方法、装置及设备 | |
CN111190692A (zh) | 一种基于鲲鹏处理器的监控方法、系统及可读介质 | |
CN111459573B (zh) | 一种智能合约执行环境的启动方法以及装置 | |
CN111580938B (zh) | 一种工作单元的事务处理方法、装置、设备及介质 | |
CN112328213B (zh) | 一种在线软件开发过程的隔离方法、设备及介质 | |
CN110244964B (zh) | 一种基于运维应用的运维方法、运维方法、装置及设备 | |
CN110471828B (zh) | 一种操作系统测试方法、装置及其设备 | |
CN110286953A (zh) | 嵌入式系统的启动方法、装置、嵌入式设备及存储介质 | |
CN116382713A (zh) | 构建应用镜像的方法、系统、设备和存储介质 | |
CN107402749B (zh) | 实现图片加载库的方法及装置 | |
CN115658109A (zh) | 微服务热部署方法、系统、电子设备和存储介质 | |
CN106990944B (zh) | 一种代码资源管理方法、装置及系统 | |
CN114333102A (zh) | 一种无人驾驶设备的参数配置方法及配置装置 | |
CN114594944A (zh) | 一种应用构建系统以及设备 |
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 |