엣지 서비스 플랫폼인 'gedge-platform'에서 활용할 수 있는 엣지 응용 서비스들과 IoT 디바이스 간의 이종 프로토콜을 통합하여 중개할 수 있는 메시지 브로커이다.
이 메시지 브로커는 8종의 통신 프로토콜 사용을 지원하며, 해당 프로토콜을 통해 IoT 디바이스 및 애플리케이션과 엣지 응용 서비스 사이의 실시간 통신이 가능하다. 지원하는 8종의 통신 프로토콜은 다음과 같다.
엣지 서비스 플랫폼에서 사용할 수 있는 메시지 브로커 서버의 구조는 다음과 같으며 MQTT 브로커의 개념을 확장시켜 이종 프로토콜 또한 지원할 수 있도록 구성되었다.

엣지 서비스 플랫폼에서 사용할 수 있는 채널 크리에이터의 구조는 다음과 같으며 Message Queue를 로컬 클러스터뿐만 아니라 리모트 클러스터에서도 사용할 수 있으며 상호간 통신이 가능하도록 구성되었다.
프로젝트의 디렉토리 구조 및 기능은 다음과 같다:
backend/: go로 작성된 backend API server 관련 코드가 포함된 디렉토리
frontend/: react web 서비스를 위한 코드가 포함된 디렉토리
docker-compose.yaml: backend, frontend, db, kubemq 컨테이너화 및 실행 자동화를 위한 docker-compose파일start.sh: env 파일 설정 및 docker compose 자동화를 위한 스크립트 파일backend 디렉토리에는 다음과 같은 파일이 포함되어 있다.
frontend 디렉토리에는 다음과 같은 파일이 포함되어 있다.
docker-compose.yaml 파일에 대한 내용과 설명은 다음과 같다.
version: "1"
services:
front: # react-web을 컨테이너로 실행하기 위한 설정내용
build: "./frontend"
container_name: react-web
restart: always
ports:
- "3000:3000"
depends_on:
- backend
links:
- backend
backend: # golang backend server를 컨테이너로 실행하기 위한 설정내용
build: "./backend"
container_name: go-server
restart: always
ports:
- 8000:8000
depends_on:
- db
- kubemq
networks:
- default
db: # mysql db 컨테이너를 실행하기 위한 설정내용 (mysql version 5.7 or higher)
image: mysql:5.7
container_name: mysql-db
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1234
ports:
- "3306:3306"
networks:
- default
volumes:
- ./db_data:/var/lib/mysql
kubemq: # kubemq-community 컨테이너를 실행하기 위한 설정 내용
image: kubemq/kubemq-community:latest
container_name: kubemq
ports:
- "8080:8080"
- "50000:50000"
- "9090:9090"
restart: always
start.sh 파일의 내용과 설명은 다음과 같다.
#!/bin/sh
# Host IP를 .env에 추가하기 위한 내용
sed -i '/^HOST_IP/d' ./backend/.env
echo "\nHOST_IP=`hostname -I | awk '{print $1}'`" >> ./backend/.env
echo "REACT_APP_HOST_IP=`hostname -I | awk '{print $1}'`" > ./frontend/.env
# docker-compose.yaml 실행
docker-compose up --build
$ git clone [ssh url] or [https url]$ cd KubeMQ-Web-Channel-Creator/backend && mv .env-sample .env
$ cd ..$ ./start.shgs-broker에서 지원하는 이종 프로토콜 별 메시지를 생성하여 메시지 브로커 서버로 테스트 데이터를 송신하는 응용 프로그램으로 msg-simulator.exe 를 실행하여 사용한다. 메시지 브로커 서버의 접속 ip 등의 설정 사항은 config.json 파일을 수정하여 사용할 수 있도록 구조화 하였다.
Erlang
85.9%
JavaScript
4.1%
Elixir
4.0%
Makefile
1.1%
EJS
1.1%
엣지 서비스 플랫폼인 'gedge-platform'에서 활용할 수 있는 엣지 응용 서비스들과 IoT 디바이스 간의 이종 프로토콜을 통합하여 중개할 수 있는 메시지 브로커이다.
이 메시지 브로커는 8종의 통신 프로토콜 사용을 지원하며, 해당 프로토콜을 통해 IoT 디바이스 및 애플리케이션과 엣지 응용 서비스 사이의 실시간 통신이 가능하다. 지원하는 8종의 통신 프로토콜은 다음과 같다.
엣지 서비스 플랫폼에서 사용할 수 있는 메시지 브로커 서버의 구조는 다음과 같으며 MQTT 브로커의 개념을 확장시켜 이종 프로토콜 또한 지원할 수 있도록 구성되었다.

엣지 서비스 플랫폼에서 사용할 수 있는 채널 크리에이터의 구조는 다음과 같으며 Message Queue를 로컬 클러스터뿐만 아니라 리모트 클러스터에서도 사용할 수 있으며 상호간 통신이 가능하도록 구성되었다.
프로젝트의 디렉토리 구조 및 기능은 다음과 같다:
backend/: go로 작성된 backend API server 관련 코드가 포함된 디렉토리
frontend/: react web 서비스를 위한 코드가 포함된 디렉토리
docker-compose.yaml: backend, frontend, db, kubemq 컨테이너화 및 실행 자동화를 위한 docker-compose파일start.sh: env 파일 설정 및 docker compose 자동화를 위한 스크립트 파일backend 디렉토리에는 다음과 같은 파일이 포함되어 있다.
frontend 디렉토리에는 다음과 같은 파일이 포함되어 있다.
docker-compose.yaml 파일에 대한 내용과 설명은 다음과 같다.
version: "1"
services:
front: # react-web을 컨테이너로 실행하기 위한 설정내용
build: "./frontend"
container_name: react-web
restart: always
ports:
- "3000:3000"
depends_on:
- backend
links:
- backend
backend: # golang backend server를 컨테이너로 실행하기 위한 설정내용
build: "./backend"
container_name: go-server
restart: always
ports:
- 8000:8000
depends_on:
- db
- kubemq
networks:
- default
db: # mysql db 컨테이너를 실행하기 위한 설정내용 (mysql version 5.7 or higher)
image: mysql:5.7
container_name: mysql-db
restart: always
environment:
MYSQL_ROOT_PASSWORD: 1234
ports:
- "3306:3306"
networks:
- default
volumes:
- ./db_data:/var/lib/mysql
kubemq: # kubemq-community 컨테이너를 실행하기 위한 설정 내용
image: kubemq/kubemq-community:latest
container_name: kubemq
ports:
- "8080:8080"
- "50000:50000"
- "9090:9090"
restart: always
start.sh 파일의 내용과 설명은 다음과 같다.
#!/bin/sh
# Host IP를 .env에 추가하기 위한 내용
sed -i '/^HOST_IP/d' ./backend/.env
echo "\nHOST_IP=`hostname -I | awk '{print $1}'`" >> ./backend/.env
echo "REACT_APP_HOST_IP=`hostname -I | awk '{print $1}'`" > ./frontend/.env
# docker-compose.yaml 실행
docker-compose up --build
$ git clone [ssh url] or [https url]$ cd KubeMQ-Web-Channel-Creator/backend && mv .env-sample .env
$ cd ..$ ./start.shgs-broker에서 지원하는 이종 프로토콜 별 메시지를 생성하여 메시지 브로커 서버로 테스트 데이터를 송신하는 응용 프로그램으로 msg-simulator.exe 를 실행하여 사용한다. 메시지 브로커 서버의 접속 ip 등의 설정 사항은 config.json 파일을 수정하여 사용할 수 있도록 구조화 하였다.
Erlang
85.9%
JavaScript
4.1%
Elixir
4.0%
Makefile
1.1%
EJS
1.1%