CN105138765B - 基于Docker的人工交通系统大规模计算实验方法 - Google Patents

基于Docker的人工交通系统大规模计算实验方法 Download PDF

Info

Publication number
CN105138765B
CN105138765B CN201510518249.6A CN201510518249A CN105138765B CN 105138765 B CN105138765 B CN 105138765B CN 201510518249 A CN201510518249 A CN 201510518249A CN 105138765 B CN105138765 B CN 105138765B
Authority
CN
China
Prior art keywords
docker
experiment
computing
transportation system
artificial transportation
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
Application number
CN201510518249.6A
Other languages
English (en)
Other versions
CN105138765A (zh
Inventor
王飞跃
陈松航
朱凤华
李镇江
熊刚
吕宜生
赵红霞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN201510518249.6A priority Critical patent/CN105138765B/zh
Publication of CN105138765A publication Critical patent/CN105138765A/zh
Application granted granted Critical
Publication of CN105138765B publication Critical patent/CN105138765B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供的一种基于Docker的人工交通系统大规模计算实验方法,包括:获取Docker基础镜像;将人工交通系统计算实验引擎封装在所述Docker基础镜像中得到所述人工交通系统计算实验引擎的镜像;利用计算实验设计器设计计算实验,并存储到数据服务中;从所述数据服务中获取所述计算实验,并进行部署和管理。本发明可以利用PaaS平台运行人工交通系统的计算实验,并在大规模进行实验时,显著减少实验时间和降低成本。

Description

基于Docker的人工交通系统大规模计算实验方法
技术领域
本发明涉及计算机领域,特别是涉及一种基于Docker的人工交通系统大规模计算实验方法。
背景技术
城市交通系统是一个“天然”的多学科、跨领域的复杂开放巨系统,涉及几乎所有的工程学科,以及经济、人口、生态、资源和法律等社会科学知识。针对交通系统的研究,由于成本和安全上的限制往往很难甚至不可能进行现场的试验和调试,所以往往只能借助于交通仿真系统,然而,随着城市化进程的加快和汽车拥有量的迅猛增长,交通系统的规模也越来越庞大,与经济、人口、环境的相互影响也越来越复杂,这些都对传统的交通仿真系统提出了严峻的挑战。为此,有学者将国际上对复杂系统和复杂性研究的最新成果引入交通仿真,提出了人工交通系统(Artificial Transportation Systems,ATS)的概念,其基本思想是通过抽取单个车辆或局部的交通行为的基本动态规律,来理解交通系统的各种状态和发展特性,以及交通系统各部分之间相互作用所“涌现”出的复杂的交通现象。在人工交通系统的基础上,就可以针对研究的交通问题(例如,交通拥堵的产生和传播,土地政策对交通的影响,交通信号的优化,交通政策的影响等),设计和实施各种计算实验。在计算实验方法中,计算模拟生成的许多结果是在现实中可能出现的各种情形,而实际系统只是计算实验的一种可能结果而已。因而,计算实验不以逼近真实系统作为目的,不要求在逼近实际系统状态的场景下进行,而是可以通过调整参数、设置随机事件等方法产生实际系统可能发生但尚未发生的现象;还可以抽取感兴趣的变量,通过改变实验条件、设置不同的变量取值来研究在实际系统中很难出现或很难及时观察的极端情况,分析输入变量的交互作用,以及输入变量和输出变量之间的因果关系。
人工交通系统的计算实验往往涉及诸多参数的不同水平的不同组合,而且即使针对同一组参数,也通常需要进行多次的重复计算,以便观察随机因素对实验结果的影响。因此,如果只用一台计算机进行计算实验,特别是对大型的路网进行交通模拟时,往往只有在运行完一组参数后才能进行下一组参数的计算,最终即使实验顺利也将占用大量的人力和时间;而如果购买多台的计算机并发进行计算实验,则消耗大量的物力,在整个研究周期中也容易造成计算资源的闲置和浪费。具体可参照如图1所示的现有技术的人工交通系统示意图,人工交通系统的计算实验设计器通过连接数据库提供的数据服务,获得构建人工交通系统的数据,包括:路网、人口、车辆、模型参数等数据,然后根据实验需要,组合和设计出所需的计算实验列表,最后保存到数据库中。完成计算实验设计之后,计算实验设计器可以调用本地单机运行的人工交通系统计算实验引擎,令其从数据服务中加载计算实验依次进行计算和模拟,并根据具体的实验需要保存相应的中间或最终数据到数据服务中,同时人工交通系统计算实验设计器也能监控当前计算实验的进度。
近年来,云计算不仅仅成为人们热议的话题,而且在IT实践中得到越来越多的应用,产生了三种主要服务形式:SaaS(Software as a Service),PaaS(Platform as aService),IaaS(Infrastructure as a Service)。其中,PaaS(平台即服务)能够为企业或个人提供开发环境、服务器平台、硬件资源等服务,用户可在其平台基础上开发应用程序,并根据应用的需求,灵活地配置和购买匹配的计算资源(CPU,内存)、存储资源(硬盘,磁盘阵列)和IO资源(网络宽带)。
发明内容
本发明提供的一种基于Docker的人工交通系统大规模计算实验方法,可以利用PaaS平台运行人工交通系统的计算实验,并在大规模进行实验时,显著减少实验时间和降低成本。
根据本发明的一方面,提供一种基于Docker的人工交通系统大规模计算实验方法,包括:
获取Docker基础镜像;将人工交通系统计算实验引擎封装在所述Docker基础镜像中得到所述人工交通系统计算实验引擎的镜像;利用计算实验设计器设计计算实验,并存储到数据服务中;从所述数据服务中获取所述计算实验,并进行部署和管理。
进一步地,所述方法还包括:
Docker管理平台将所述人工交通系统计算实验引擎的镜像生成多个Docker容器。
进一步地,所述获取Docker基础镜像之后包括:
在所述Docker基础镜像中安装Mono;
在安装所述Mono的Docker基础镜像中运行所述人工交通系统计算实验引擎。
本发明实施例提供的一种基于Docker的人工交通系统大规模计算实验方法,通过获取Docker基础镜像,将人工交通系统计算实验引擎封装在所述Docker基础镜像中得到所述人工交通系统计算实验引擎的镜像,利用计算实验设计器设计计算实验,并存储到数据服务中,从所述数据服务中获取所述计算实验,并进行部署和管理。
附图说明
图1为现有技术的人工交通系统示意图;
图2为本发明实施例提供的一种基于Docker的人工交通系统大规模计算实验方法流程图;
图3为本发明实施例提供的基于Docker的人工交通系统示意图;
图4为本发明实施例提供的人工交通系统计算实验引擎的运行界面示意图;
图5为本发明实施例提供的基于Docker的人工交通系统应用场景示意图。
具体实施方式
Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,相比于传统虚拟机,Docker实现了一种应用程序级别的隔离,具备更高的性能和便捷性,一经推出就得到很多著名PaaS平台的支持,如Vmware Cloud Foundry,Redhat OpenShift,Google AppEngine,同时也有很多开源项目可用于搭建支持Docker的PaaS平台,如Docker Swarm,Deis,Flynn。为此,本发明采用Docker来封装人工交通系统的计算实验引擎。
下面结合附图对本发明实施例提供的一种基于Docker的人工交通系统大规模计算实验方法进行详细描述。
图2为本发明实施例提供的一种基于Docker的人工交通系统大规模计算实验方法流程图。
参照图2,在步骤S101,获取Docker基础镜像。
在步骤S102,将人工交通系统计算实验引擎封装在所述Docker基础镜像中得到所述人工交通系统计算实验引擎的镜像。
在步骤S103,利用计算实验设计器设计计算实验,并存储到数据服务中。
在步骤S104,从所述数据服务中获取所述计算实验,并进行部署和管理。
进一步地,所述方法还包括:
Docker管理平台将所述人工交通系统计算实验引擎的镜像生成多个Docker容器。
进一步地,所述获取Docker基础镜像之后包括:
在所述Docker基础镜像中安装Mono;
在安装所述Mono的Docker基础镜像中运行所述人工交通系统计算实验引擎。
这里,Mono是由Novell公司开发的.NET在Linux上使用的开源工程。
图3为本发明实施例提供的基于Docker的人工交通系统示意图。
参照图3,支持Docker的PaaS平台和Docker管理平台替代了原有单机运行的人工交通系统计算实验引擎。按原有方法完成实验设计后,在Docker管理平台上通过获取数据服务中的计算实验列表来批量部署和监控计算实验。Docker管理平台将原有的人工交通系统计算实验引擎封装成Docker镜像(Image),然后从该镜像中根据需要同时动态生成多个Docker容器(Container),每个容器就对应一个原有的人工交通系统计算实验引擎。每个引擎借助Docker的容器技术实现了隔离,同时独立运行。因此,如何将原有的人工交通系统计算实验引擎封装成Docker镜像是本发明的关键。
目前,Docker(版本1.7.1)只能原生安装在Linux环境中,而已有的人工交通系统计算实验引擎采用C#开发,只能运行在安装有.Net Framework环境的Windows系统中,所以需要进行一定程度的移植。Mono是一个致力于开创.NET在Linux上使用的开源工程,它包含了一个C#语言的类库、编译器和CLR的运行时,能够使得开发人员在Linux用C#开发程序。所以本发明引入开源的Mono,使已有的人工交通系统计算实验引擎能够在Docker中运行,为此首先需要制作一个封装Mono的Docker镜像,这里采用Dockerfile的方式创建,Dockerfile的内容如下:
该Dockerfile指定以Ubuntu14.04作为基础镜像,在其上安装Mono环境,然后生成一个新的镜像(指令:“docker build-t casia/mono.”)。在该镜像的基础上,利用如下的第二个Dockerfile,将人工交通系统计算实验引擎在Windows下运行的所需文件封装进去,形成最终的镜像(指令:“docker build-t casia/transworld.”,计算引擎的文件需提前放在app目录中)。
在Windows下,人工交通系统计算实验引擎的运行界面如图4所示,图4(a)宏观显示了路网的交通情况,道路的不同颜色代表不同的拥堵情况,可放大后查看微观的车辆运动,如图4(b)所示。计算引擎封装成Docker镜像后,将不再支持这种可视化查看(也加快了计算速度),而是转为后台运行,每隔5分钟输出路网中的车辆数等信息。
图5为本发明实施例提供的基于Docker的人工交通系统应用场景示意图。
参照图5,具体过程如下:步骤1,在两台普通PC机上分别安装Ubuntu Server14.04的操作系统;
步骤2,在这两台PC机分别安装Docker环境(指令:“wget-qO-https://get.docker.com/|sh”),同时为了支持下一步Shipyard的管理,启用Docker的Tcp监听,将“-H tcp://0.0.0.0:2375”添加到DOCKER_OPTS启动变量中。安装完Docker的PC机称为“Docker Host”。
步骤3,在其中一台PC机上安装Shipyard(指令:docker run--rm-v/var/run/docker.sock:/var/run/docker.sock shipyard/deploy start)。Shipyard是一个基于Web的开源Docker管理工具,可以对多个Docker Host上的容器(Container)进行统一管理,并查看、编译Docker镜像等。安装成功后,登录界面如图5(a)所示。
步骤4,对Shipyard而言,每一个Docker Host都称为一个Engine。在开始部署人工交通系统计算实验之前,需要将可用的Engine输入到Shipyard中,如图5(b)所示,加入前面两台PC机作为Engine,每台Engine可以指定使用的CPU数量和内存数量。
步骤5,利用人工交通系统计算实验设计器设计计算实验,如图5(c)所示。
步骤6,设计完计算实验和搭建完成支持Docker的PaaS平台后,就可以开始部署和管理计算实验。在Shipyard平台上,通过点击Deploy按钮,如图5(d)所示就可以部署人工交通系统计算实验引擎(对应Docker中的容器,Container)进行实验。
每个容器可以通过页面上的按钮快捷的重启(RESTART)、关闭(STOP)、销毁(DESTROY)、以及扩展(SCALE)出多个实例,还可以指定其占用所在Engine的CPU数量和内存大小,如图5(e)所示:同时,还能实时查看每个引擎的后台输出,如图5(f)所示:
步骤7,在计算实验过程中,Shipyard支持查看整个平台的CPU和内存占用情况,如图5(g)所示,以及各Engine的CPU和内存占用情况,如图5(h)所示。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (2)

1.一种基于Docker的人工交通系统大规模计算实验方法,其特征在于,所述方法包括:
获取Docker基础镜像;
在所述Docker基础镜像中安装Mono;
在安装所述Mono的Docker基础镜像中运行人工交通系统计算实验引擎;
将人工交通系统计算实验引擎封装在所述Docker基础镜像中得到所述人工交通系统计算实验引擎的镜像;
利用计算实验设计器设计计算实验,并存储到数据服务中;
从所述数据服务中获取所述计算实验,并进行部署和管理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
Docker管理平台将所述人工交通系统计算实验引擎的镜像生成多个Docker容器。
CN201510518249.6A 2015-08-21 2015-08-21 基于Docker的人工交通系统大规模计算实验方法 Active CN105138765B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510518249.6A CN105138765B (zh) 2015-08-21 2015-08-21 基于Docker的人工交通系统大规模计算实验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510518249.6A CN105138765B (zh) 2015-08-21 2015-08-21 基于Docker的人工交通系统大规模计算实验方法

Publications (2)

Publication Number Publication Date
CN105138765A CN105138765A (zh) 2015-12-09
CN105138765B true CN105138765B (zh) 2018-02-16

Family

ID=54724112

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510518249.6A Active CN105138765B (zh) 2015-08-21 2015-08-21 基于Docker的人工交通系统大规模计算实验方法

Country Status (1)

Country Link
CN (1) CN105138765B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824614B (zh) * 2015-12-15 2019-05-17 广东亿迅科技有限公司 基于Docker的分布式开发环境的搭建方法及装置
CN105577779A (zh) * 2015-12-21 2016-05-11 用友网络科技股份有限公司 一种容器化部署大企业私有云的方法和系统
CN105847045B (zh) * 2016-01-04 2019-06-18 中国电子科技网络信息安全有限公司 一种基于Docker容器的应用封装系统及管理方法
CN105577503A (zh) * 2016-01-18 2016-05-11 浪潮集团有限公司 一种基于Docker的云交换机系统及其实现方法
CN105681420A (zh) * 2016-01-18 2016-06-15 浪潮集团有限公司 一种基于Docker实现交换机操作系统备份的方法
CN105791011A (zh) * 2016-03-08 2016-07-20 浪潮集团有限公司 一种基于Docker实现统一化网管平台的系统及方法
CN108241545B (zh) * 2016-12-27 2021-06-08 中移(苏州)软件技术有限公司 系统故障的调试方法及装置
CN110380879A (zh) * 2018-04-12 2019-10-25 上海宝信软件股份有限公司 基于docker的轨道交通综合监控部署方法及系统
CN108958947B (zh) * 2018-09-17 2024-09-27 北京市计算中心有限公司 一种大数据一体机及其使用方法
CN111177877A (zh) * 2018-10-24 2020-05-19 百度在线网络技术(北京)有限公司 基于应用容器引擎的本地仿真方法、装置及存储介质
CN109491662A (zh) * 2018-10-31 2019-03-19 珠海市筑巢科技有限公司 代码打包方法、计算机装置及计算机可读存储介质、代码打包系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468282A (zh) * 2014-12-23 2015-03-25 携程计算机技术(上海)有限公司 集群监控处理系统及方法
CN104809025A (zh) * 2015-04-29 2015-07-29 北京奇艺世纪科技有限公司 一种项目上线方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468282A (zh) * 2014-12-23 2015-03-25 携程计算机技术(上海)有限公司 集群监控处理系统及方法
CN104809025A (zh) * 2015-04-29 2015-07-29 北京奇艺世纪科技有限公司 一种项目上线方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Modeling and Analyzing Transportation Systems Based on ACP Approach;Fenghua Zhu等;《14th International IEEE Conference on Intelligent Transportation Systems Washington, DC, USA》;20111007;第2136-2141页 *
基于Docker 的平台即服务架构研究;张建等;《信息技术与信息化》;20141015(第10期);第131-134页 *

Also Published As

Publication number Publication date
CN105138765A (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
CN105138765B (zh) 基于Docker的人工交通系统大规模计算实验方法
US11159392B2 (en) Managing service deployment
US10474438B2 (en) Intelligent cloud engineering platform
US10402746B2 (en) Computing instance launch time
US10185590B2 (en) Mobile and remote runtime integration
Klusáček et al. Alea–complex job scheduling simulator
US11442835B1 (en) Mobile and remote runtime integration
Affan et al. Implementation of augmented reality as information and promotion media on Dieng tourism area
CN111273960A (zh) 一种实现云原生的mips架构容器云的方法
CN115686805A (zh) Gpu资源共享的方法和装置、调度gpu资源共享的方法和装置
Zheng et al. Evolution analysis of a UAV real-time operating system from a network perspective
Keller Tesser et al. Containers in HPC: a survey
CA2951429C (en) Mobile and remote runtime integration
CN107193582B (zh) 发布方法及系统
Bin Khunayn et al. Exploiting data dependency to mitigate stragglers in distributed spatial simulation
Kanso et al. Designing a kubernetes operator for machine learning applications
Michelsen et al. What is service virtualization?
Sebastian Transform monolith into microservices using docker
Madon et al. Characterization of different user behaviors for demand response in data centers
Hewage et al. An agile farm management information system framework for precision agriculture
Hodak et al. Benchmarking AI inference: where we are in 2020
Wong et al. DOCUMENT INFORMATION
Hyvämäki Data processing pipeline automation on cloud platform
Pop Heuristics analysis for distributed scheduling using MONARC simulation tool
Bendoukha et al. Building cloud-based scientific workflows made easy: A remote sensing application

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