Development of Large Scale Agent Based Modeling Simulator with Microservice Architecture
- Alternative Title
- 마이크로서비스 아키텍처를 적용한 대규모 에이전트 기반 모델링 시뮬레이터 개발
- Abstract
- Agent-Based Modeling (ABM) is a widely used paradigm for simulating Complex Systems (CS), which consist of numerous individual entities interacting with each other. To model large-scale systems that involve huge number of agents and their interaction, High Performance Computing (HPC) resources, typically found in universities and institutions, are essential. However, many existing Agent-Based Modeling Simulation (ABMS) tools and libraries do not optimize for simultaneous multi-user access to HPC resources because they are often built as monolithic softwares to run one model at a time. To address the above limitation, this thesis proposes a microservice-based Agent-Based Modeling Simulation (ABMS) system architecture that leverages state-of-the-art technologies to efficiently utilize High Performance Computing (HPC) resources for multiple users running ABM models. The system architecture is developed with two primary considerations: first, dividing the system into core ABM functionality services such as User Interface (UI), Database, Simulation, and File-system service; and second, incorporating middlewares such as Messaging, Service Discovery, and Logging to facilitate communication between these services. The microservice-based ABMS system demonstrates efficient use of HPC resources and provides users with convenient, web-based access for running models, viewing visualizations, and obtaining simulation data. The use of state-of-the-art technologies ensures that the system is distributed, robust, and resilient.|에이전트 기반 모델링(Agent-Based Modeling, ABM)은 복잡한 시스템(Complex Systems, CS)을 구성하는 다수의 개별 개체들의 상호작용을 시뮬레이션하기 위해 널리 사용되는 시뮬레이션 패러다임이다. 대규모 에이전트 시스템의 모델링에는 고성능 컴퓨팅(High Performance Computing, HPC) 리소스가 필수적이다. 그러나 기존의 에이전트 기반 모델링 시뮬레이션(ABMS) 도구와 라이브러리는 종종 한 번에 하나의 모델만 실행할 수 있는 모놀리스식 소프트웨어로 개발되어, HPC 리소스에 대한 동시적인 다중 사용자 접근을 최적화하지 못하는 문제가 있다. 이러한 한계를 극복하기 위해 본 논문에서는 다중 이용자의 ABM 시뮬레이터의 모델의 동시 사용을 지원하여, HPC 리소스를 효율적으로 활용할 수 있는 마이크로서 비스 기반의 ABMS 시스템 아키텍처를 제안한다. 이 시스템 아키텍처는 두 가지 주요 고려 사항에 기반하여 개발되었다. 첫째, 사용자 인터페이스(UI), 데이터베이스, 시뮬레이션, 파일 시스템 등 핵심 ABM 기능 서비스로 시스템을 구성하는 것이다. 둘째, 메시징, 서비스 검색, 로깅 등의 미들웨어를 통해 이러한 서비스 간의 효율적인 통신을 지원한다. 제안된 시스템은 사용자들에게 모델 실행, 시각화 확인, 시뮬레이션 데이터 획득과 같은 편리한 웹 기반 액세스를 제공한다. 또한 각 기능이 마이크로 서비스로 모듈화 되어 효율적인 관리가 가능하고, 확장성과 안정성을 확보할 수 있다.
- Author(s)
- HABTEMARIAM DUGUMA YESHITLA
- Issued Date
- 2023
- Awarded Date
- 2023-08
- Type
- Dissertation
- Publisher
- 부경대학교
- URI
- https://repository.pknu.ac.kr:8443/handle/2021.oak/33476
http://pknu.dcollection.net/common/orgView/200000693762
- Affiliation
- Pukyoung National University, Graduate School
- Department
- 산업 및 데이터공학과(산업데이터공학융합전공)
- Advisor
- Lee Minkyu
- Table Of Contents
- Chapter 1: Introduction 1
1.1. Background 2
1.1.1. Complex Systems 2
1.1.2. Agent Based Modeling 2
1.1.3. Microservice 4
1.2. Problem Description 5
1.3. Research Objective 7
1.4. Outline 7
Chapter 2: Related Work 8
2.1. Agent Based Modeling frameworks 8
2.1.1. NetLogo 8
2.1.2. Mesa 9
2.1.3. Repast Symphony and HPC 10
2.1.4. MASON and D-MASON 12
2.1.5. Comparison of ABM toolkits 14
2.2. Existing Simulating Web services or Microservices 16
2.3. Limitation of existing works 17
Chapter 3: Proposed System 19
3.1. Overview 19
3.2. Requirement Analysis 20
3.2.1. ABM Simulator 20
3.2.2. Functional and Non-Functional Requirements 20
3.2.3. Requirement-Function-Implementation 21
3.3. User Activity Flow 22
3.3.1. Scenarios 22
3.3.2. Use case Diagram 25
3.3.3. Use case Description 26
Chapter 4: System Design 32
4.1. System Design Goals and Life cycle 32
4.2. Microservice System Architecture 33
4.2.1. Services 34
4.2.2. Middleware 35
4.3. Dynamic Models 36
4.3.1. Sequence Diagram 36
4.3.2. Activity Diagram 40
4.4. Hardware to Software Mapping 41
4.5. Database Design 45
4.6. Access Control 46
Chapter 5: Implementation 48
5.1. Annotation Processing 48
5.1.1. Annotations 49
5.1.2. Output of Annotation Processing 54
5.2. Template Code Generation with Gradle 57
5.2.1. Structure 57
5.2.2. Dependency Configuration Details 58
5.2.3. Output 58
5.3. Kafka Topics for Communication 61
5.3.1. UI Service consuming Kafka updates 63
5.3.2. Database Service consuming Kafka updates 64
5.4. User Interface 64
5.5. Deployment 70
Chapter 6: Summary 71
References 74
Appendix 81
- Degree
- Master
-
Appears in Collections:
- 대학원 > 산업및데이터공학과
- Authorize & License
-
- Authorize공개
- Embargo2024-03-15
- Files in This Item:
-
Items in Repository are protected by copyright, with all rights reserved, unless otherwise indicated.