Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
seokho-son authored Jul 1, 2022
1 parent b74e50f commit a79e8f2
Showing 1 changed file with 10 additions and 24 deletions.
34 changes: 10 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# cb-mapui
A MapUI Client for CB-Tumblebug (display multi-cloud infra service)
Interactive Map-based GUI for CB-Tumblebug (control and display multi-cloud infra)

Check CB-Tumblebug project. (https://github.com/cloud-barista/cb-tumblebug)

[NOTE] This project is temporal and unstable, used only for demonstation purpose.
- This project uses Openlayers. You need to know this includes temporal codes which are not readable.
[NOTE] This project is not for a production, used only for development and demonstation of CB-Tumblebug.
- This project utilizes Openlayers. You need to know this includes temporal codes which are not readable.

## cb-mapui 설치 및 실행 방법

Expand Down Expand Up @@ -64,9 +64,11 @@ Check CB-Tumblebug project. (https://github.com/cloud-barista/cb-tumblebug)
## cb-mapui 동작 방식
index.js 에 포함된 로직이 수행되며, 이는 index.html 에 포함되어 표현됨.
1. MCIS VM 조회 및 객체 생성
1. VM의 퍼블릭 IP를 기반으로 기하학적 위치(longitude, latitude)를 저장
index.js 에 포함된 로직이 수행되며, 이는 index.html 를 통해서 웹에 출력됨.
아래 과정을 주기적으로 반복함.
1. CB-Tumblebug을 통해 MCIS VM 조회
1. 각VM의 기하학적 위치(longitude, latitude)를 획득
1. Convex Hull을 통해 VM들을 폴리곤 형태로 구성 (MCIS 형태 표현)
1. Map에 해당 MCIS 폴리곤들을 출력 (VM 라이프사이클 정보 아이콘 출력 포함)
Expand All @@ -75,21 +77,5 @@ index.js 에 포함된 로직이 수행되며, 이는 index.html 에 포함되
index.js 는 Openlayers를 기반으로,
- CB-Tumblebug API를 콜하여 MCIS 및 VM 정보를 조회(function getMcis())하고,
[참고] CB-Tumblebug API가 변경되는 경우 아래의 코드 수정이 필요함
```
var mcisOptions = {
hostname: 'localhost',
port: 1323,
path: '/ns/' + namespace + '/mcis',
method: 'GET'
};
```
- MCIS에 포함된 VM들의 퍼블릭 IP의 기하학적 위치(longitude, latitude) 를 조회하여, 각 VM의 위치를 룩업함.
- 이때, IP의 기하학적 위치는 외부 서비스(api.ipstack.com 등) : function getVmGeoAcc(publicIP) 로 룩업하거나,
- 이때, IP의 기하학적 위치는 맵을 임의로 지정(static code)하여 : function getVmGeoStatic(publicIP) 로 룩업할 수 있다. (현재 코드는 해당 방식으로 지정되어 있음)
- MCIS의 VM들의 위치를 모두 알게되면, 이를 하나의 연결된 도형으로 만들기 위해서 convexHull 로 정렬하여, Polygon 객체로 저장한다.
- tileLayer.on('postrender', function (event) Openlayers에서 반복적으로 그래픽 출력을 수행하는 펑션이며, MCIS Polygon 객체들을 도형으로 출력한다. 이때 MCIS의 상태도 갱신하여, 정보를 함께 출력한다.
- MCIS를 생성 및 제어할 수 있는 기능을 버튼으로 제공함.
- tileLayer.on('postrender', function (event) Openlayers에서 반복적으로 그래픽 출력을 수행하는 펑션이며, MCIS Polygon 객체들을 도형으로 출력한다. 이때 MCIS의 상태도 갱신하여, 정보를 함께 출력.

0 comments on commit a79e8f2

Please sign in to comment.