CN107621946A - 一种软件开发方法、装置及系统 - Google Patents
一种软件开发方法、装置及系统 Download PDFInfo
- Publication number
- CN107621946A CN107621946A CN201710701992.4A CN201710701992A CN107621946A CN 107621946 A CN107621946 A CN 107621946A CN 201710701992 A CN201710701992 A CN 201710701992A CN 107621946 A CN107621946 A CN 107621946A
- Authority
- CN
- China
- Prior art keywords
- image file
- software
- code
- developed
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种软件开发方法、装置及系统,所述方法包括:获取根据开发所述待开发软件所使用的开发工具、配置工具制作的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;从代码版本服务器中获取所述待开发软件的最新版本的代码,获取根据所述最新版本的代码得到的最新代码,其中,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码;将所述最新代码上传至所述代码版本服务器。本技术方案无需软件开发人员在终端设备上下载、安装并配置开发所述待开发软件所需要的开发工具、配置工具,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率。
Description
技术领域
本申请涉及软件开发技术领域,尤其涉及一种软件开发方法、装置及系统。
背景技术
随着软件功能的不断强大,开发一个完整的应用软件需要编写的代码量越来越大,仅由一名软件开发人员完成一个完整的应用软件的开发,从时间或效率方面考虑,很难满足用户的需求。因此,多位软件开发人员共同完成一个应用软件的开发成为IT软件开发行业的趋势。在该多位软件开发人员共同完成一个完整的应用软件的开发时,该多位软件开发人员中的每位软件开发人员完成一个或几个功能模块的开发,最后再将多位软件开发人员各自开发的功能模块组合在一起,构成一个完整的应用软件。
在上述多位软件开发人员中的每位软件开发人员完成某一个或几个功能模块的开发之前,需要每个开发人员在各自的终端设备下载、安装并配置开发工具、配置工具,而由于某些开发工具或配置工具对系统本身的要求较高,且安装、配置需要花费很长的时间,这无疑加大了每位开发人员的附加工作量,从整体考虑,无疑降低了开发效率。
综上所述,现有技术中缺少一种能节省软件开发人员各自安装、配置开发工具及配置工具的时间的软件开发方法、装置及系统。
发明内容
本申请实施例提供一种软件开发方法、装置及系统,以解决现有技术中缺少一种能节省软件开发人员各自安装、配置开发工具及配置工具的时间的软件开发方法、装置及系统的技术问题。
根据本申请实施例提供的一种软件开发方法,包括如下步骤:
获取根据开发所述待开发软件所使用的开发工具、配置工具制作成的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;其中,开发所述待开发软件所使用的开发工具、配置工具位于开发配置工具服务器中;
从代码版本服务器中获取所述待开发软件的最新版本的代码,获取根据所述最新版本的代码得到的最新代码,其中,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码;
将所述最新代码上传至所述代码版本服务器。
在一个实施例中,所述方法还包括:
确定容器硬件,将终端设备中的Docker容器与所述容器硬件建立通信连接并通过终端设备访问位于所述容器硬件中的第二镜像文件,以从所述第二镜像文件中的专项共享服务应用程序中获取与开发所述待开发软件相关的专项共享服务数据;其中,所述第二镜像文件为根据专项共享服务器中的专项共享服务应用程序制作成的镜像文件。
在一个实施例中,所述获取根据所述最新版本的代码采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码,得到最新代码,包括:
将所述第一镜像文件中的开发工具、配置工具与所述第二镜像文件中的专项共享服务应用程序通信;
获取所述专项共享服务应用程序向所述第一镜像文件中的开发工具、配置工具传输的专项共享服务数据;
获取根据所述专项共享服务数据及所述最新版本的代码为所述待开发软件编写的代码,得到所述待开发软件的最新代码。
在一个实施例中,所述方法还包括:
容器硬件从容器镜像服务器中获取所述第二镜像文件;
所述获取根据开发所述待开发软件所使用的开发工具、配置工具制作的第一镜像文件,具体包括:
从容器镜像服务器中获取根据开发所述待开发软件所使用的开发工具、配置工具制作的第一镜像文件。
在一个实施例中,所述方法还包括:
从所述容器镜像服务器中获取所述第二镜像文件,并将获取的第二镜像文件存储于一个共享服务器中;
所述方法还包括:
将所述容器硬件与所述共享服务器通信,根据所述共享服务器中更新的第二镜像文件更新所述容器硬件中的第二镜像文件。
在一个实施例中,所述方法还包括:
根据所述专项共享服务器中的专项共享服务应用程序制作第二镜像文件,将所述第二镜像文件存储于容器镜像服务器中;
根据所述开发配置工具服务器中的开发工具、配置工具制作第一镜像文件,将所述第一镜像文件存储于容器镜像服务器中。
在一个实施例中,所述方法还包括:
将代码版本服务器中的所述待开发软件的最新版本的代码编译后制作成第三镜像文件,将所述第三镜像文件存储于容器镜像服务器,并从所述容器镜像服务器中复制所述第三镜像文件分别存储于所述容器硬件及所述共享服务器。
根据本申请实施例提供的一种软件开发装置,包括:
镜像文件获取模块,用于获取根据开发所述待开发软件所使用的开发工具、配置工具制作成的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;
编码模块,用于从所述代码版本服务器中获取所述待开发软件的最新版本的代码,并获取根据所述最新版本的代码得到的最新代码,其中,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码;
通信模块,用于将所述最新代码上传至代码版本服务器;
其中,开发所述待开发软件所使用的开发工具、配置工具位于开发配置工具服务器中。
在一个实施例中,所述通信模块还用于:将终端设备中的Docker容器与所述容器硬件建立通信连接并通过终端设备访问位于所述容器硬件中的第二镜像文件,以从所述第二镜像文件中获取与开发所述待开发软件相关的专项共享服务数据;其中,所述第二镜像文件为根据专项共享服务器中的共享服务应用程序制作的镜像文件。
根据本申请实施例提供的一种软件开发系统,包括代码版本服务器及开发配置工具服务器,所述系统还包括:
代码版本服务器,用于存储所述待开发软件的最新版本的代码;
镜像文件制作模块,用于根据开发所述待开发软件所使用的开发工具、配置工具制作第一镜像文件;
容器镜像服务器,用于存储所述第一镜像文件;
软件开发装置,用于完成所述待开发软件的开发,得到所述待开发软件的最新代码,将所述最新代码上传至所述代码版本服务器,其中,完成所述待开发软件的开发是采用从容器镜像文件中获取的第一镜像文件中的开发工具、配置工具并根据从代码版本服务器中获取的最新版本的代码完成。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例提供的软件开发方法、装置及系统,仅需获取根据开发待开发软件所需要的开发工具、配置工具制作的第一镜像文件,而无需软件开发人员在终端设备上下载、安装并配置开发所述待开发软件所需要的开发工具、配置工具,因此,本申请实施例提供的软件开发方法、装置及系统,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率。
除此之外,对开发软件、配置软件进行配置涉及到对诸多参数进行配置,而一旦一个配置参数不正确,将导致开发工具或配置工具无法正常地运行,该配置过程有一定复杂性,本申请实施例无需对开发工具、配置工具进行配置,在一定程度上避免了配置错误的发生,有效保障了开发工具、配置工具无误地运行。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中软件开发方法的流程图;
图2为本申请实施例中另外一种软件开发方法的流程图;
图3为本申请实施例中软件开发装置的结构框图;
图4a传统软件开发装置工作时访问各个专项共享服务应用程序的结构示意图;
图4b为本申请实施例中软件开发装置协同专项共享服务程序进行软件开发的结构示意图;
图5为本申请实施例中一种软件开发系统的结构框图;
图6为本申请实施例中另外一种软件开发系统的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
参见图1所示,本申请实施例提供一种软件开发方法,所述方法包括如下步骤:
步骤S101、获取根据开发所述待开发软件所使用的开发工具、配置工具制作成的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;其中,开发所述待开发软件所使用的开发工具、配置工具位于开发配置工具服务器中。
将获取(复制)的第一镜像文件存储于终端设备的Docker容器中,而Docker是一个开源的引擎,可以轻松地为任何应用创建一个轻量级的、可移植的、自给自足的容器。因此,在根据开发工具、配置工具制作的第一镜像文件被存储在终端设备的Docker容器之后,开发人员在使用该开发工具或配置工具时,Docker容器将在终端设备上为该开发工具或配置工具创建一个容器,以将该开发工具或配置工具运行的进程与该终端设备上运行的其他进程进行隔离。
上述说明了开发工具和配置工具位于开发配置工具服务器中,因此,当根据该开发工具、配置工具制作第一镜像文件后,开发人员仅需通过终端设备获取该第一镜像文件,无需从开发配置工具服务器中下载开发工具和配置工具,也无需执行下载完成之后的安装、配置过程。因此,本申请实施例提供的软件开发方法,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率。
除此之外,由于对应用软件的配置涉及到对多个参数进行配置,而一旦某一个或某几个参数配置的不正确,将导致开发工具或配置工具等无法正常地运行,该配置过程有一定的复杂性,本申请实施例无需对开发工具、配置工具进行配置,在一定程度上避免了配置错误的发生,有效保障了对开发工具、配置工具无误地运行。
步骤S103、从代码版本服务器中获取所述待开发软件的最新版本的代码,根据所述最新版本的代码得到的最新代码,其中,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码。
在代码版本服务器中存储有所述待开发软件的最新版本的代码,基于一般情况下,软件的开发是基于软件的上一个版本更新一些功能或添加一些新功能。因此,在该版本代码服务器中,可存储该待开发软件的最新版本的代码(如所述待开发软件的上一个版本的代码)。然而,本发明并非局限于此,如果所述待开发软件是由其他的类似软件经过改进某些功能模块而得来,所述代码版本服务器中存储的所述待开发软件的最新版本的代码可为所述其他的类似软件的代码。如若所述待开发软件确实为需要自己重新编写的代码(即,并无上一个版本的代码),则在版本服务器中存储的所述待开发软件的最新版本的代码可为所述待开发软件搭建的开发框架。
在从所述代码版本服务器中获取到所述待开发软件的最新版本的代码之后,获取根据所述最新版本的代码得到的最新代码,其中,所述最新代码为采用第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码。如,所述待开发软件是在上一个版本的基础上更新了某几个功能模块或者添加了某几个功能模块,则所述最新代码为在所述最新版本的代码的基础上做更新之后的代码。
步骤S105、将所述最新代码上传至代码版本服务器。
在一台或几台终端设备上完成相关功能模块的开发之后,该终端设备将得到的最新代码上传至代码版本服务器。
至于当多台终端设备均上传其得到的最新代码后,是由相关的技术人员将由各台终端设备完成的最新代码合并在一起,还是在所述版本服务器设置相应的功能模块,以自动将每台终端设备上得到的最新代码合并,可根据具体情况进行设置,在此不做限定。
在本申请实施例中,所述终端设备可为软件开发人员的个人电脑。
本申请实施例提供的软件开发方法,仅需获取根据开发待开发软件所需要的开发工具、配置工具制作的第一镜像文件,而无需软件开发人员在终端设备上下载、安装并配置开发所述待开发软件所需要的开发工具、配置工具等,因此,本申请实施例提供的软件开发方法及系统,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率。
除此之外,对开发软件、配置软件进行配置涉及到对诸多参数进行配置,而一旦某一个参数配置不正确,将导致开发工具或配置工具等无法正常地运行,该配置过程有一定的复杂性,本申请实施例无需对开发工具、配置工具进行配置,在一定程度上避免了配置错误的发生,有效保障了对开发工具、配置工具无误地运行。
实施例2
参见图2所示,本申请实施例公开一种软件开发方法,包括如下步骤:
步骤S201、获取根据开发所述待开发软件所使用的开发工具、配置工具制作的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;其中,开发所述待开发软件所使用的开发工具、配置工具位于开发配置工具服务器中。
在本申请实施例中,容器镜像服务器中复制第一镜像文件并存储于终端设备中的Docker容器中,所述第一镜像文件是根据开发所述待开发软件所使用的开发工具、配置工具制成。该过程可由管理人员或者配置人员完成。在此指出,第一镜像文件可以但不仅限于由开发所述待开发软件的开发工具、配置工具制备成的镜像文件,也可为该开发团队经常使用的包括开发所述待开发软件所使用的开发工具、配置工具在内的开发工具、配置工具制作成的镜像文件。
步骤S202、确定容器硬件,将终端设备中的Docker容器与所述容器硬件建立通信连接并通过终端设备访问位于所述容器硬件中的第二镜像文件,以从所述第二镜像文件中的专项共享服务应用程序中获取与开发所述待开发软件相关的专项共享服务数据;其中,所述第二镜像文件为根据专项共享服务器中的专项共享服务应用程序制作成的镜像文件。
在本申请实施例中,从所述容器镜像服务器中复制所述第二镜像文件,并存储于所述容器硬件中。在此之前,需根据专项共享服务器中的专项共享服务应用程序制作第二镜像文件并存储于容器镜像服务器中,该制作过程可由管理人员或配置人员完成。
在本申请实施例中,所述方法还包括:
从所述容器镜像服务器中复制第二镜像文件并存储于一个共享服务器中。可以看出,在容器硬件与共享服务器中均存在第二镜像文件。在本申请实施例中,容器硬件与共享服务器是可以通信的,当存储于共享服务器中的第二镜像文件发生更新之后,可更新存储于容器硬件中的第二镜像文件,以确保容器硬件中的第二镜像文件为最新版本。而在共享服务器中可以设置相应的权限,当容器硬件中的第二镜像文件发生改变且该容器硬件满足设置的权限,则可根据容器硬件中的第二镜像文件更新共享服务器中的第二镜像文件。否则,当容器硬件中的第二镜像文件发生改变,但该第二镜像文件的改变并不满足设置的权限,则不能根据该容器硬件中第二镜像文件的改变更新共享服务器中的第二镜像文件。
在本申请实施例中,第二镜像文件为根据专项共享服务器中的专项共享服务应用程序制作的镜像文件,该专项共享应用程序一般为在开发所述待开发软件的过程中需要用到的应用程序,如MySQL数据库、Redis缓存或者软件与所述待开发软件相关的自己研制的应用程序等。该步骤S202具体包括:
首先,将终端设备中的Docker容器与容器硬件建立通信连接;
在本申请实施例中,所述容器硬件可为树莓派,所述树莓派上可设置有10/100自适应网卡、802.11nWifi无线网卡、低功耗蓝牙4.1(BLE)、HDMI接口及4个USB 2.0接口,所述终端设备中的Docker容器与所述容器硬件建立通信连接的方式可以依据用户需求而进行选择,如可采用蓝牙的方式建立通信连接、采用WiFi无线网的方式建立通信连接或者是直接采用USB 2.0接口建立通信连接,在此不做具体限定。
然后,通过终端设备访问位于容器硬件中的第二镜像文件,以从第二镜像文件中的专项共享服务应用程序中获取与开发所述待开发软件相关的专项共享服务数据;
如需要访问的专项共享服务数据为存储在数据库MySQL中的专项共享服务数据,则在容器硬件中的第二镜像文件中的MySQL与终端设备建立通信连接后,通过终端设备访问第二镜像文件中的MySQL中的专项共享服务数据,以完成对所述待开发软件的开发。
在此指出,第二镜像文件中的专项共享应用程序并非局限于MySQL,也可以为Redis缓存或者是自研应用(开发团队或个人研制的与开发所述待开发软件相关的应用程序),也就是说某一公司自己研发的与待开发软件相关的应用程序。
步骤S203、从代码版本服务器中获取所述待开发软件的最新版本的代码,获取根据所述最新版本的代码得到的最新代码,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码。
在本申请实施例中,该步骤S203具体包括:
1)将所述第一镜像文件中的开发工具、配置工具与所述第二镜像文件中的专项共享服务应用程序通信;
当终端设备中的Docker容器与容器硬件建立通信连接之后,位于Docker容器中的第一镜像文件中的开发工具、配置工具便可与容器硬件中的第二镜像文件中的专项共享服务应用程序通信。
2)获取所述专项共享服务应用程序向所述第一镜像文件中的开发工具、配置工具传输的专项共享服务数据;
第二镜像文件中的专项共享服务应用程序可以但不仅限为MySQL、Redis缓存或自研程序(开发团队或个人研制的与开发所述待开发软件相关的应用程序),如第一镜像文件中的开发工具需要访问第二镜像文件中的MySQL数据库中的专项共享服务数据,则在使用第一镜像文件中的开发工具完成待开发软件的开发过程中,可以向位于第二镜像文件中的专项共享服务应用程序MySQL发送数据访问请求。当MySQL接收到所述请求后,可根据所述请求向第一镜像文件中的开发工具发送其所请求访问的专项共享服务数据。
3)获取根据所述专项共享服务数据及所述最新版本的代码为所述待开发软件编写的代码,得到最新代码。
在软件开发人员通过终端设备从所述专项共享服务应用程序获取到其所请求的专项共享服务数据后,可根据获取到的专项共享服务数据及上述最新版本的代码对待开发软件进行开发。终端设备获取根据专项共享服务数据及最新版本的代码为待开发软件编写的代码,得到待开发软件的最新代码。
步骤S205、将所述最新代码上传至所述代码版本服务器。
该步骤S205在上述实施例中已作详细说明,在此不予阐述。
在本申请实施例中,所述方法还包括:
将代码版本服务器中的最新版本的代码编译后制成第三镜像文件,将所述第三镜像文件存储于容器镜像服务器,并从所述容器镜像服务器中复制所述第三镜像文件分别存储于所述容器硬件及所述共享服务器。
在所述代码版本服务器中存储有所述待开发软件的最新版本的代码,在所述容器镜像服务器中存储有根据最新版本的代码制备的第三镜像文件。在本申请实施例中,所述待开发软件的最新版本的代码首先经过编译的过程,从高级语言编制的代码过渡到汇编语言编制的代码,再将该汇编语言编制的代码制备第三镜像文件。该过程也可由专门的管理人员或配置人员完成。
本申请实施例提供的软件开发方法,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率;除此之外,本申请实施例无需对开发工具、配置工具进行配置,在一定程度上避免了配置错误的发生,有效保障了对开发工具、配置工具无误地运行。
在此基础上,本申请实施例公开的软件开发方法,将第二镜像文件存储于一容器硬件中,当在对开发软件进行开发的过程中需要与专项共享服务应用程序关联时,也无需访问位于专项共享服务器上的专项共享服务应用程序,直接访问位于容器硬件上的第二服务镜像文件中的专项共享服务应用程序即可。如此设置,本技术方案有效避免了多台终端设备同时访问专项共享服务应用程序或者一台终端设备需要同时访问多个共享服务器而造成网络的拥堵及运维人员的管理困难。
实施例3
参见图3所示,本申请实施例公开了一种软件开发装置,包括镜像文件获取模块31、编码模块33和通信模块35。其中:
镜像文件获取模块31用于获取根据开发所述待开发软件所使用的开发工具、配置工具制作的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;编码模块33用于从代码版本服务器中获取所述待开发软件的最新版本的代码,获取根据所述最新版本的代码得到的最新代码,其中,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码;通信模块35用于将所述最新代码上传至代码版本服务器;其中,开发所述待开发软件所使用的开发工具、配置工具位于开发配置工具服务器中。
在本申请实施例中,所述通信模块35还用于:将终端设备中的Docker容器与所述容器硬件建立通信连接并通过终端设备访问位于所述容器硬件中的第二镜像文件,以从所述第二镜像文件中获取与开发所述待开发软件相关的专项共享服务数据;其中,所述第二镜像文件为根据专项共享服务器中的专项共享服务应用程序制作的镜像文件。
在本申请实施例中,所述容器硬件为树莓派。
参见图4a所示,为采用传统软件开发装置进行软件开发时访问各个专项共享服务应用程序的结构示意图。在传统技术方案中,若多个终端设备(终端设备1和终端设备2)均需访问专项共享服务应用程序Redis、专项共享服务应用程序MYSQL及各个专项共享服务应用程序自研应用(自研应用1、自研应用2……自研应用n)等,则每台终端设备均需访问所述专项共享服务应用程序。
参见图4b所示,为本申请实施例中软件开发装置协同专项共享服务程序进行软件开发的结构示意图,在本申请实施例中,将各个专项共享服务应用程序(专项共享服务应用程序Redis、专项共享服务应用程序MYSQL及各个专项共享服务应用程序自研应用)放在一个专项共享服务器中,然后将所述专项共享服务器中的专项共享服务应用程序制作成第二镜像文件并复制所述第二镜像文件分别存储于多个容器硬件中,然后为每个开发所述待开发软件所使用的终端设备配备一个所述容器硬件。除此之外,在每台开发所述待开发软件所使用的终端设备(终端设备1,终端设备2……终端设备n)中设置一个Docker容器,根据开发所述待开发软件的开发工具、配置工具制作第一镜像文件并复制将所述第一镜像文件分别存储于每个终端设备的Docker容器中;如此,开发人员在获取到待开发软件的最新版本的代码之后,便可通过终端设备及所述容器硬件完成对所述待开发软件的开发,而无需下载、安装、配置开发工具及配置工具;同时,在对所述待开发软件进行开发的过程中,如果需要访问专项共享应用程序中的专项共享服务数据,只需访问容器硬件中的第二镜像文件中的专项共享服务应用程序即可。
除此之外,还可将代码版本服务器中的所述待开发软件的最新版本的代码编译后制作成第三镜像文件,复制所述第三镜像文件并存储于容器硬件,当开发人员在开发的过程中需要获取所述最新版本的代码时,可通过访问容器硬件获取,有效保障了对所述待开发软件进行高效率的开发。
通过比对可知,采用本申请实施例提供的软件开发装置,一方面,将第二镜像文件存储于一容器硬件中。当在对开发软件进行开发的过程中需要与专项共享服务应用程序关联时,仅需访问为本终端设备配备的容器硬件,而无需直接访问位于专项共享服务器上的专项共享服务应用程序。如此,本技术方案有效避免了多台终端设备同时访问专项共享服务应用程序或者一台终端设备需要同时访问多个共享服务器而造成网络的拥堵及运维人员的管理困难;除此之外,可为每个软件开发人员设置一定的权限,如开发人员甲具有更新所述专项共享服务器中的专项共享服务应用程序或专项共享服务数据的权限。可采用如下方法进行更新:首先,将更新的专项共享服务应用程序或专项共享服务数据更新至与所述用户甲使用终端设备连接的容器硬件的第二镜像文件中;然后,用户甲通过更新的容器硬件将所述更新的专项共享服务应用程序或专项共享服务数据更新至所述专项共享应用服务器中。在所述专项共享应用服务器完成对专项共享服务应用程序或专项共享服务数据的更新之后,所述专项共享应用服务器访问存储有所述第二镜像文件的容器硬件,将所述对专项共享服务数据或专项共享鼓舞应用程序的更新更新至所述存储有所述第二镜像文件的容器硬件中,以为开发所述待开发软件提供实时更新的专项共享服务应用程序及专项共享服务数据,如此设置,有效保障了容器硬件中的第二镜像文件中的专项共享服务应用程序或专项共享服务数据的实时性,能最大限度地满足开发人员的需求,有效保障了开发效率。
本申请实施例提供的软件开发装置,设置有镜像文件获取模块,复制根据开发待开发软件所使用的开发工具、配置工具制成的第一镜像文件,并将获取的第一镜像文件存储于终端设备的Docker容器中,当对待开发软件进行开发时,开发人员无需下载、安装或配置开发工具或配置工具,只需访问存储在终端设备的Docker容器中的第一镜像文件即可完成对待开发软件的开发。因此,本申请实施例提供的软件开发装置,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率。除此之外,本申请实施例无需对开发工具、配置工具进行配置,在一定程度上避免了配置错误的发生,有效保障了对开发工具、配置工具无误地运行。
除此之外,在本申请实施例中,可根据实际需求更新专项共享服务应用程序或者专项共享应用程序中的专项共享服务数据,以为开发所述待开发软件提供最新的专项共享服务应用程序或专项共享服务数据,以高效率的完成对所述待开发软件的开发。
实施例4
参见图5所示,本申请实施例公开一种软件开发系统,包括代码版本服务器及开发配置工具服务器,所述系统还包括:
代码版本服务器,用于存储所述待开发软件的最新版本的代码;
镜像文件制作模块,用于根据开发所述待开发软件所所用的开发工具、配置工具制作第一镜像文件;
容器镜像服务器,用于存储所述第一镜像文件;
软件开发装置,用于完成所述待开发软件的开发,得到所述待开发软件的最新代码,将所述最新代码上传至所述代码版本服务器,其中,完成所述待开发软件的开发是采用从容器镜像文件中获取的第一镜像文件中的开发工具、配置工具并根据从代码版本服务器中获取的最新版本的代码来完成。
本申请实施例公开的软件开发系统,设置有镜像文件制作模块,根据开发待开发软件需要的开发工具、配置工具制作第一镜像文件,软件开发装置的镜像文件获取模块获取所述第一镜像文件并将其存储于终端设备的Docker容器中,当对待开发软件进行开发时,开发人员无需下载、安装或配置开发工具、配置工具,只需采用存储在终端设备的Docker容器中的第一镜像文件并根据从代码版本服务器中获取的待开发软件的最新版本的代码即可完成对待开发软件的开发。因此,本申请实施例提供的软件开发系统,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率;除此之外,本申请实施例无需对开发工具、配置工具进行配置,在一定程度上避免了配置错误的发生,有效保障了对开发工具、配置工具无误地运行。
实施例5
参见图6所示,本申请实施例公开一种软件开发系统,包括上述实施例所提供的软件开发装置,所述软件开发系统还包括:
镜像文件制作模块,用于根据开发所述待开发软件所用的开发工具、配置工具制作第一镜像文件,根据所述专项共享服务器中的专项共享服务应用程序制作第二镜像文件,根据所述代码版本服务器中的代码制作第三镜像文件,并将所述第一镜像文件、第二镜像文件及第三镜像文件存储于一个容器镜像服务器中。
镜像文件分配模块,用于从所述容器镜像服务器中复制第一、第二及第三镜像文件,将所述第二镜像文件、第三镜像文件均存储于容器硬件及共享服务器中,将第一镜像文件存储于终端设备的Docker容器中。
在本申请实施例中,镜像文件制作模块、镜像文件分配模块可以独立于软件开发人员的终端设备而运行,如此设置,无需与软件开发人员的终端设备关联,在软件开发人员进行软件开发之前便可完成镜像文件的制作、存储及分配,以在软件开发人员使用该镜像文件可以及时获取到,有效避免了软件开发人员需要使用时而第一、第二及第三镜像文件并未制作好从而造成的浪费时间的现象。
在本申请实施例中,镜像文件制作模块及镜像文件分配模块可以由部署人员或配置人员进行操作,如此,位于底层的软件开发人员便无需关心镜像文件制作及分配的步骤,仅获取与开发所述待开发软件相关的第一镜像文件及容器硬件,再从代码版本服务器中获取到所述待开发软件的最新版本的代码即可完成所述待开发软件的开发。如此独立的操作模式,更能迎合当今软件功能强大、开发任务繁重、需多人共同开发的需求。
在本申请实施例中,所述编码模块获取采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码,得到最新代码,其中,编写所述最新代码时可根据所述最新版本的代码完成。具体包括如下步骤:
1)将所述第一镜像文件中的开发工具、配置工具与所述第二镜像文件中的共享服务应用程序通信;
2)获取所述共享服务应用程序向所述第一镜像文件中的开发工具、配置工具传输的专项共享服务数据;
3)获取根据所述专项共享服务数据及所述最新版本的代码为所述待开发软件编写的代码,得到最新代码。
在本申请实施例中,在通信模块将终端设备中的Docker容器与容器硬件建立通信连接并通过终端设备访问位于所述容器硬件中的第二镜像文件之前,首先要确保容器硬件中存在所述第二镜像文件。在本申请实施例中,所述容器硬件从容器镜像服务器中获取第二镜像文件。
在本申请实施例中,还包括共享服务器,在所述共享服务器中也存储有第二镜像文件。可以看出,在容器硬件中也存储有第二镜像文件,而第二镜像文件是根据专项共享服务器中的专项共享服务应用程序制作的镜像文件。在本申请实施例中,当存储于共享服务器中的第二镜像文件被更新时,可相应地更新位于容器硬件中的第二镜像文件。同样,在共享服务器中可以设置相应的权限,当容器硬件中的第二镜像文件被更新后,且该容器硬件的此次更新满足设置的相应的权限,则可根据容器硬件中的第二镜像文件更新共享服务器中的第二镜像文件。而当容器硬件对第二镜像文件进行更新,但该容器硬件的此次更新不满足设置的相应的权限,则无法根据容器硬件中的第二镜像文件更新共享服务器中的第二镜像文件。
采用本申请实施例公开的软件开发系统,软件开发人员在对待开发软件开发的过程中,无需直接访问开发配置工具服务器、专项共享服务器,从代码版本服务器中获取到所述待开发软件的最新版本的代码后,从容器镜像服务器中获取到第一镜像文件中的开发工具、配置工具后便可对待开发软件进行开发;在开发过程中若需要访问专项共享服务器中的专项共享服务应用程序,则只需与为本终端设备配备的容器硬件(树莓派)即可。
综上所述,采用本申请实施例公开的软件开发系统,各软件开发人员可独立作业,相互之间不存在因争夺共享资源而造成相互干扰的现象。同时,由于树莓派上设置有10/100自适应网卡、802.11nWifi无线网卡、低功耗蓝牙4.1(BLE)、HDMI接口及4个USB 2.0接口,因此,当需要与其他终端设备进行通信或与其他开发人员进行沟通时,除了采用终端设备进行通信之外,还可直接采用树莓派进行通信。
同时,本申请实施例公开的软件开发系统具有如下技术效果:设置有镜像文件获取模块,获取根据开发待开发软件所使用的开发工具、配置工具制成的第一镜像文件,并将获取的第一镜像文件存储于终端设备的Docker容器中,当对待开发软件进行开发时,开发人员无需下载、安装或配置开发工具或配置工具,只需采用存储在终端设备的Docker容器中的开发工具、配置工具即可完成对待开发软件的开发。因此,本申请实施例提供的软件开发系统,节省了软件开发人员下载、安装并配置开发工具、配置工具的时间,在一定程度上提高了软件开发效率;除此之外,对开发软件、配置软件进行配置涉及到对诸多参数进行配置,而一旦配置不正确,将导致开发工具或配置工具等无法正常地运行,该配置过程有一定复杂性,而本申请实施例无需对开发工具、配置工具进行配置,在一定程度上避免了配置错误的发生,有效保障了对开发工具、配置工具无误地运行。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例中的“获取”一次,并非限定为获取之后,原设备中并不存在,在计算机术语中,其更多的指从原设备复制。在此不可牵强的仅理解为获取之后原设备不再存在。
本申请实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种软件开发方法,其特征在于,包括:
获取根据开发所述待开发软件所使用的开发工具、配置工具制作成的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;其中,开发所述待开发软件所使用的开发工具、配置工具位于开发配置工具服务器中;
从代码版本服务器中获取所述待开发软件的最新版本的代码,获取根据所述最新版本的代码得到的最新代码,其中,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码;
将所述最新代码上传至所述代码版本服务器。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定容器硬件,将终端设备中的Docker容器与所述容器硬件建立通信连接并通过终端设备访问位于所述容器硬件中的第二镜像文件,以从所述第二镜像文件中的专项共享服务应用程序中获取与开发所述待开发软件相关的专项共享服务数据;其中,所述第二镜像文件为根据专项共享服务器中的专项共享服务应用程序制作成的镜像文件。
3.根据权利要求2所述的方法,其特征在于,所述获取根据所述最新版本的代码采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码,得到最新代码,包括:
将所述第一镜像文件中的开发工具、配置工具与所述第二镜像文件中的专项共享服务应用程序通信;
获取所述专项共享服务应用程序向所述第一镜像文件中的开发工具、配置工具传输的专项共享服务数据;
获取根据所述专项共享服务数据及所述最新版本的代码为所述待开发软件编写的代码,得到所述待开发软件的最新代码。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
容器硬件从容器镜像服务器中获取所述第二镜像文件;
所述获取根据开发所述待开发软件所使用的开发工具、配置工具制作的第一镜像文件,具体包括:
从容器镜像服务器中获取根据开发所述待开发软件所使用的开发工具、配置工具制作的第一镜像文件。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
从所述容器镜像服务器中获取所述第二镜像文件,并将获取的第二镜像文件存储于一个共享服务器中;
所述方法还包括:
将所述容器硬件与所述共享服务器通信,根据所述共享服务器中更新的第二镜像文件更新所述容器硬件中的第二镜像文件。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述专项共享服务器中的专项共享服务应用程序制作第二镜像文件,将所述第二镜像文件存储于容器镜像服务器中;
根据所述开发配置工具服务器中的开发工具、配置工具制作第一镜像文件,将所述第一镜像文件存储于容器镜像服务器中。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
将代码版本服务器中的所述待开发软件的最新版本的代码编译后制作成第三镜像文件,将所述第三镜像文件存储于容器镜像服务器,并从所述容器镜像服务器中复制所述第三镜像文件分别存储于所述容器硬件及所述共享服务器。
8.一种软件开发装置,其特征在于,包括:
镜像文件获取模块,用于获取根据开发所述待开发软件所使用的开发工具、配置工具制作成的第一镜像文件,并将所述第一镜像文件存储于终端设备的Docker容器中;
编码模块,用于从所述代码版本服务器中获取所述待开发软件的最新版本的代码,并获取根据所述最新版本的代码得到的最新代码,其中,所述最新代码是采用所述第一镜像文件中的开发工具、配置工具为所述待开发软件编写的代码;
通信模块,用于将所述最新代码上传至代码版本服务器;
其中,开发所述待开发软件所使用的开发工具、配置工具位于开发配置工具服务器中。
9.根据权利要求8所述的软件开发装置,其特征在于,所述通信模块还用于:将终端设备中的Docker容器与所述容器硬件建立通信连接并通过终端设备访问位于所述容器硬件中的第二镜像文件,以从所述第二镜像文件中获取与开发所述待开发软件相关的专项共享服务数据;其中,所述第二镜像文件为根据专项共享服务器中的共享服务应用程序制作的镜像文件。
10.一种软件开发系统,包括代码版本服务器及开发配置工具服务器,其特征在于,所述系统还包括:
代码版本服务器,用于存储所述待开发软件的最新版本的代码;
镜像文件制作模块,用于根据开发所述待开发软件所使用的开发工具、配置工具制作第一镜像文件;
容器镜像服务器,用于存储所述第一镜像文件;
容器硬件,用于从所述容器镜像服务器中获取所述第一镜像文件;
软件开发装置,用于完成所述待开发软件的开发,得到所述待开发软件的最新代码,将所述最新代码上传至所述代码版本服务器,其中,完成所述待开发软件的开发是采用从容器镜像文件中获取的第一镜像文件中的开发工具、配置工具并根据从代码版本服务器中获取的最新版本的代码完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710701992.4A CN107621946B (zh) | 2017-08-16 | 2017-08-16 | 一种软件开发方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710701992.4A CN107621946B (zh) | 2017-08-16 | 2017-08-16 | 一种软件开发方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107621946A true CN107621946A (zh) | 2018-01-23 |
CN107621946B CN107621946B (zh) | 2020-05-12 |
Family
ID=61088745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710701992.4A Active CN107621946B (zh) | 2017-08-16 | 2017-08-16 | 一种软件开发方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107621946B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669692A (zh) * | 2018-12-21 | 2019-04-23 | 深圳Tcl新技术有限公司 | 源码共享方法、服务器、计算机可读存储介质及系统 |
CN111966463A (zh) * | 2020-08-18 | 2020-11-20 | 江苏安超云软件有限公司 | 一种容器镜像的构建方法、装置、存储介质及电子设备 |
CN113961235A (zh) * | 2021-10-22 | 2022-01-21 | 江苏徐工工程机械研究院有限公司 | 软件管理方法、软件管理系统和云平台 |
TWI842427B (zh) * | 2023-02-10 | 2024-05-11 | 大陸商鼎捷軟件股份有限公司 | 軟體開發系統以及軟體開發方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105187500A (zh) * | 2015-08-07 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于容器的分布式存储系统部署方法 |
CN105739960A (zh) * | 2014-12-11 | 2016-07-06 | 上海尚景信息技术有限公司 | 可持续集成的软件研发环境架构 |
-
2017
- 2017-08-16 CN CN201710701992.4A patent/CN107621946B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739960A (zh) * | 2014-12-11 | 2016-07-06 | 上海尚景信息技术有限公司 | 可持续集成的软件研发环境架构 |
CN105187500A (zh) * | 2015-08-07 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于容器的分布式存储系统部署方法 |
Non-Patent Citations (1)
Title |
---|
段嘉腾: "Docker技术在软件开发过程中的应用研究", 《中小企业管理与科技》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669692A (zh) * | 2018-12-21 | 2019-04-23 | 深圳Tcl新技术有限公司 | 源码共享方法、服务器、计算机可读存储介质及系统 |
CN111966463A (zh) * | 2020-08-18 | 2020-11-20 | 江苏安超云软件有限公司 | 一种容器镜像的构建方法、装置、存储介质及电子设备 |
CN113961235A (zh) * | 2021-10-22 | 2022-01-21 | 江苏徐工工程机械研究院有限公司 | 软件管理方法、软件管理系统和云平台 |
TWI842427B (zh) * | 2023-02-10 | 2024-05-11 | 大陸商鼎捷軟件股份有限公司 | 軟體開發系統以及軟體開發方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107621946B (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Unleashing the power of edge-cloud generative ai in mobile networks: A survey of aigc services | |
CN110024330A (zh) | 对IoT装置的服务提供 | |
JP6926240B2 (ja) | オンデバイス機械学習プラットフォーム | |
JP6923676B2 (ja) | オンデバイス機械学習プラットフォーム | |
CN105024865B (zh) | 云联合即服务 | |
CN107621946A (zh) | 一种软件开发方法、装置及系统 | |
CN102656557B (zh) | 自动化企业软件开发 | |
CN107967316A (zh) | 一种数据同步方法、设备及计算机可读存储介质 | |
CN110178357A (zh) | 远程设备可接入的云中基于云的手机服务 | |
EP2525290B1 (en) | Downloadable standalone offline application with integrated data for distributed offline processing | |
CN105978704A (zh) | 创建新的云资源指令集体系结构 | |
US11983613B2 (en) | Incognito mode for personalized machine-learned models | |
US10938826B2 (en) | Intelligent device security | |
CN108369535A (zh) | 根据聚合声明性配置数据来配置云 | |
US8661249B2 (en) | Health keyset management | |
CN105608366B (zh) | 用户权限控制方法和装置 | |
WO2015126409A1 (en) | Migrating cloud resources | |
CN106663018A (zh) | 在容器化工作空间环境中修改android应用生命周期以控制其执行的方法 | |
JP2022065636A (ja) | コンピュータ実装方法、コンピュータプログラム及びコンピュータシステム(デジタルツイン対応資産のパフォーマンス及びアップグレード管理) | |
CN105814579A (zh) | 沙盒应用数据重定向至数据中心 | |
Inglés-Romero et al. | A model-driven approach to enable adaptive QoS in DDS-based middleware | |
CN110532025A (zh) | 基于微服务架构的数据处理方法、装置、设备及存储介质 | |
Souza et al. | Edgesimpy: Python-based modeling and simulation of edge computing resource management policies | |
US20220300611A1 (en) | Run-time communications protocol parameter adjustment in containerized applications | |
CN107678789A (zh) | Ui界面的更新方法及装置 |
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 |