KR101644751B1 - 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법 - Google Patents

분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR101644751B1
KR101644751B1 KR1020150081953A KR20150081953A KR101644751B1 KR 101644751 B1 KR101644751 B1 KR 101644751B1 KR 1020150081953 A KR1020150081953 A KR 1020150081953A KR 20150081953 A KR20150081953 A KR 20150081953A KR 101644751 B1 KR101644751 B1 KR 101644751B1
Authority
KR
South Korea
Prior art keywords
time
message
time information
requested
queue
Prior art date
Application number
KR1020150081953A
Other languages
English (en)
Inventor
이우진
김지훈
Original Assignee
경북대학교 산학협력단
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 경북대학교 산학협력단 filed Critical 경북대학교 산학협력단
Priority to KR1020150081953A priority Critical patent/KR101644751B1/ko
Application granted granted Critical
Publication of KR101644751B1 publication Critical patent/KR101644751B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Abstract

본 발명은 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법에 관한 것으로, 상세하게는, 분산 임베디드 시스템을 검증하기 위한 하나 이상의 시뮬레이터 노드들을 연결해 주는 메시지 브로커 장치를 입력 라우터 소켓, 메시지 큐, 시간요청 큐, 글로벌 클럭 관리부, 출력 발행 소켓을 포함하도록 형성하여, 시뮬레이터 노드들 간 데이터 메시지를 발행-구독 메시징 기법으로 전달하고 글로벌 클럭의 시간을 시뮬레이터 노드들이 요청한 시간 정보 중 가장 작은 시간 정보로 갱신한 후 그 요청된 시간 정보를 기준 시간으로서 시뮬레이터 노드들에게 브로드캐스팅하여 시간 동기화가 가능하게 한다.

Description

분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법{MESSAGE BROKER FOR CO-SIMULATION OF DISTRIBUTED EMBEDDED SYSTEM AND OPERATION METHOD THEREOF}
본 발명은 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법에 관한 것으로, 더욱 상세하게는, 분산 환경에서 작동하는 임베디드 시스템을 검증하기 위해 시뮬레이터들을 연결해 주고 시뮬레이터들에게 기준 시간 정보를 제공하여 시뮬레이터들 간 시간 동기화가 가능하게 해주는, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법에 관한 것이다.
임베디드 시스템(embedded system)은 어떤 시스템이나 솔루션에 추가로 탑재되어 그 제품 안에서 특정한 작업을 수행하도록 하는 솔루션을 나타낸다. 가령, 휴대용 개인정보 단말기(PDA)에 탑재되어 있는 음성솔루션이나, 텔레비전, 냉장고, 자동차 등에 내장되어 있는 웹 기능 등도 모두 임베디드 시스템이다.
최근 임베디드 시스템은 네트워크 기술의 발전에 따라 독립적인 사용이 아닌 다른 기기들과 연동되는 분산 환경에서 사용되는 제품들이 증가하고 있다. 최근 시장에서 많은 주목을 받고 있는 웨어러블 기기나 자동차 산업에서 CAN(Controller Area Network)을 이용한 전자 제품의 탑재가 대표적인 예이다.
분산 환경에서 작동되는 임베디드 시스템은 다른 제품들과의 동시적 사용을 고려해야 하므로 하나의 제품을 검증할 경우 다른 제품과의 상호작용을 고려해야 한다.
또한, 임베디드 시스템의 개발은 하드웨어 팀과 소프트웨어 팀이 별도로 구성되어 동시에 개발이 진행되어, 어느 한 쪽이 완성되었다고 하더라도 다른 한 쪽의 개발이 완료되지 않았다면 테스트가 어렵게 된다. 이러한 문제점을 해결하기 위하여 임베디드 시스템을 시뮬레이션하는 방법이 연구되고 있다.
일반적으로 사용되는 이산 이벤트 시뮬레이션 기법은 순차적 알고리즘을 사용하기 때문에 이벤트의 수가 너무 많을 경우 사용할 수 없는 단점이 있다. 이를 해결하기 위하여 분산 이산 이벤트 시뮬레이션 기법이 등장하였으나, 분산 환경의 임베디드 시스템에서 다른 기기와의 동시적 사용이 고려되어야 할 경우 시간이 중요한 속성으로 이용되는데 시간이 중요한 속성으로 고려될 경우 종래의 분산 이산 이벤트 시뮬레이션 기법은 사용할 수 없게 되는 문제가 있다. 즉, 일반적인 분산 이산 이벤트 시뮬레이션 기법은 메시지 전달의 경우에도 각 수신 기기의 시뮬레이터와 연결을 설정한 후 전달하게 되어 전달 지연이 발생되며 다른 기기들의 시뮬레이터들과 시간 동기화를 이루는 방안이 고려되지 않아 각 기기들의 상호 작용에 대한 정확한 시뮬레이션이 어려운 문제가 있다.
한국공개특허 10-2006-0135339호 (2006. 12. 29. 공개)
본 발명은 상기한 종래 기술의 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 분산 환경에서 작동하는 임베디드 시스템을 검증하기 위해 분산 임베디드 시스템의 각 시뮬레이터들을 연결해 주고 시뮬레이터들에게 기준 시간 정보를 제공하여 시뮬레이터들 간 시간 동기화가 가능한, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법을 제공하는 것이다.
상기한 목적을 달성하기 위하여 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치는, 분산 임베디드 시스템을 검증하기 위한 하나 이상의 시뮬레이터 노드들과 연결되는 메시지 브로커 장치를 포함하며, 상기 메시지 브로커 장치는, 상기 시뮬레이터 노드들로부터 메시지를 수신하는 입력 라우터 소켓; 상기 수신된 메시지 중 다른 시뮬레이터 노드로 전달하기 위한 데이터 메시지를 저장하는 메시지 큐; 상기 수신된 메시지 중 다음 동작을 위한 시간 정보를 요청하는 시간 요청 메시지를 저장하며, 상기 저장된 시간 요청 메시지들 중 가장 작은 시간 정보를 갖는 시간 요청 메시지를 선택하여 전송하는 시간요청 큐; 상기 시간요청 큐로부터 전송된 시간 요청 메시지에 포함되어 있는 요청된 시간 정보로 글로벌 클럭의 범용 시간을 갱신한 후 상기 요청된 시간 정보를 기준 시간으로서 출력하는 글로벌 클럭 관리부; 및 상기 메시지 큐로부터 출력되는 데이터 메시지 및 상기 글로벌 클럭 관리부로부터 출력되는 상기 요청된 시간 정보가 포함된 시간 정보 메시지를 시뮬레이터 노드들에게 전달하는 출력 발행 소켓을 포함한다.
상기한 목적을 달성하기 위하여 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 동작 방법은, 분산 임베디드 시스템을 검증하기 위한 하나 이상의 시뮬레이터 노드들로부터 각자 다음 싸이클을 위한 시간 정보를 요청하는 시간 요청 메시지들을 메시지 브로커 장치의 입력 라우터 소켓을 통해 수신하여 시간요청 큐에 저장하는 단계; 메시지 큐로부터 메시지 전송 완료 신호가 전송되면, 상기 시간요청 큐는 상기 저장된 시간 요청 메시지들 중 최소값의 시간 정보를 갖는 시간 요청 메시지를 선택하는 단계; 글로벌 클럭 관리부는 상기 선택된 시간 요청 메시지에 포함되어 있는 최소값의 요청된 시간 정보까지 시간 지연을 수행하여 글로벌 클럭의 범용 시간을 갱신하고 상기 요청된 시간 정보를 기준 시간으로서 전달하는 단계; 및 상기 메시지 브로커 장치의 출력 발행 소켓은 전달된 상기 요청된 시간 정보를 상기 하나 이상의 시뮬레이터 노드들에게 브로드캐스팅하여 시간 동기화가 가능하게 하는 단계를 포함한다.
본 발명은 분산 환경에서 작동되는 시뮬레이터 간 메시지를 전송하고 시간 동기화를 위한 글로벌 클락을 가지는 메시지 브로커를 구현하고 구현된 메시지 브로커로 시뮬레이터들을 연결함으로써 시뮬레이터들 간에 정보를 주고 받을 수 있게 되고 메시지 브로커에게 시간 정보를 요청하면 가장 작은 값을 갖는 시간 정보 순으로 모든 시뮬레이터가 동일한 시간 정보를 수신할 수 있게 되어 시뮬레이터들 간 시간 동기화를 이루어 분산 환경에서의 통합 시뮬레이션이 가능하게 되는 효과가 있다.
본 발명에 의한 메시지 브로커는 메시지 큐에 저장된 데이터 메시지들을 모두 전송한 후 시간요청 큐에 저장된 시간 요청 메시지를 처리하며, 데이터 메시지의 경우 출력 발행 소켓을 통해 발행-구독 메시징 모델 방식으로 해당 구독 소켓을 가진 시뮬레이터 노드로 전달됨으로써 메시지 전달 지연이 최소화될 수 있도록 한다.
본 발명은 분산 환경의 임베디드 시스템을 구성하는 소프트웨어와 모델들에 대하여 동기화된 통합 시뮬레이션이 가능해지는 효과가 있다.
본 발명은 스마트 와치와 같은 분산 임베디드 시스템의 제품을 검증하기 위해 사용될 수 있다.
도 1은 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 블럭 구성도
도 2는 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 시간 동기화 동작 예시도
도 3은 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 시간 동기화 동작 흐름을 나타내는 도면
본 발명에 의한 메시지 브로커는 각각의 시뮬레이터가 다른 시뮬레이터로 송신하고자 하는 메시지를 수신하여 다른 시뮬레이터들로 전달하는 기능과, 각각의 시뮬레이터에 의해 요청된 시간 정보 중 최소값을 갖는 시간 정보만큼 글로벌 클럭을 작동시킨 후 글로벌 클럭의 범용 시간을 기준 시간 정보로서 시뮬레이터들에게 브로드캐스팅하는 기능을 가지고 있다. 시뮬레이터들의 딜레이를 최소화하기 위하여 메시지 브로커의 기능은 간략하고 간단하게 설계된다.
이하, 본 발명의 바람직한 실시예들을 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 블럭 구성도이다.
분산 임베디드 시스템의 각 기기에 각 시뮬레이터(200)가 구비된다. 분산 환경에서 각 기기들의 시뮬레이터들(200)은 모두 메시지 브로커(100)와 연결된다. 즉, 메시지 브로커(100)에 연결된 각 시뮬레이터 노드들(200)은 상호 작용에 필요한 데이터 메시지와 시간 정보를 요청하는 시간 요청 메시지 모두를 메시지 브로커(100)로 송신하고 메시지 브로커(100)를 통해서 모든 정보들을 수신하게 된다.
상기 메시지 브로커(100)는, 입력 라우터 소켓(110), 메시지 큐(120), 시간요청 큐(130), 글로벌 클럭 관리부(140), 및 출력 발행 소켓(150)을 포함한다.
상기 입력 라우터 소켓(110)은, 하나 이상의 시뮬레이터 노드(200)로부터 메시지를 수신한다. 상기 입력 라우터 소켓(110)은 서버-클라이언트 구조의 서버 소켓 기능을 가진다.
상기 메시지 큐(120)는, 상기 입력 라우터 소켓(110)을 통해 수신된 메시지 중 다른 시뮬레이터 노드(200)로 전달하기 위한 데이터 메시지를 저장한다.
메시지 큐(120)는 수신된 메시지가 누락되는 것을 방지하기 위하여 구비되며, 수신된 데이터 메시지가 최대한 지연 없이 다른 시뮬레이터 노드들에게 전달될 수 있도록 구성된다. 메시지 큐(120)에 저장된 메시지가 모두 전송되어 메시지 큐(120)가 비어 있는 상태가 되면 메시지 큐(120)는 전송 완료 신호를 시간요청 큐(130)로 전송하여 시간요청 큐(130)의 시간 요청 메시지를 처리하도록 요청한다.
상기 시간요청 큐(130)는, 상기 입력 라우터 소켓(110)을 통해 수신된 메시지 중 다음 동작을 위한 시간 정보를 요청하는 시간 요청 메시지를 저장한다.
메시지 큐(120)로부터 시간 요청 메시지를 처리하라는 메시지(일 예로, 전송 완료 신호)를 수신하면 시간요청 큐(130)는 저장된 시간 요청 메시지들의 데이터 값에 우선순위를 측정하여 우선 순위가 높은 값을 갖는 시간 요청 메시지를 먼저 처리한다. 상기 우선 순위는 데이터 값이 낮을수록 높아진다. 즉, 시간요청 큐(130)는 선입 선출 방식으로 시간 요청 메시지를 처리하는 것이 아니라, 저장된 시간 요청 메시지들 중 가장 작은 시간 정보를 갖는 시간 요청 메시지를 선택하여 상기 글로벌 클럭 관리부(140)로 전송하는 것이다.
또한 메시지 브로커(100)는 시뮬레이터 노드가 처음 실행되어 초기화될 경우 시간요청 큐(130)의 사이즈를 증가시키기 위한 정보를 포함하는 메시지(초기화 메시지)와 시뮬레이션이 종료되어 시간요청 큐(130)의 사이즈를 감소시키기 위한 정보를 포함하는 메시지를 별도로 분류하여 저장한다.
시간요청 큐(130)의 사이즈는 연결된 시뮬레이터 노드(200)의 개수에 대응되도록 형성된다. 시간요청 큐(130)의 크기는 각각의 시뮬레이터 노드가 연결될 때, 시뮬레이터 노드의 기본적인 정보를 제공하는 초기화 메시지를 수신할 때마다 그 크기를 하나씩 증가시킬 수 있도록 동적으로 관리된다.
상기 출력 발행 소켓(150)은, 상기 메시지 큐(120)로부터 선입 선출 방식으로 출력되는 데이터 메시지의 경우 발행-구독 메시징 패턴의 특성을 기반으로 토픽을 설정하여 특정 구독 소켓을 가진 시뮬레이터 노드(200)에게 전달하고, 상기 요청된 시간 정보를 포함하는 시간 정보 메시지의 경우 브로드캐스팅 방식으로 모든 시뮬레이터 노드들(200)에게 전달한다.
따라서, 메시지 브로커(100)는 특정 시뮬레이터 노드에게 메시지를 전송하기 위해 발생되는 지연을 최소화한다.
상기 글로벌 클럭 관리부(140)는, 메시지 브로커(100)에 연결된 시뮬레이터 노드들(200) 간 시간 동기화를 위한 기준 시간을 저장 및 관리한다.
글로벌 클럭 관리부(140)는, 글로벌 클럭 관리부(140)는 시간요청 큐(130)로부터 수신된 시간 요청 메시지의 요청 시간 정보만큼 글로벌 클럭의 시간 지연을 수행하여 요청 시간 정보로 글로벌 클럭의 범용 시간을 갱신하고 글로벌 클럭이 범용 시간이 상기 요청된 시간 정보로 갱신되면, 상기 요청된 시간 정보를 시간 정보 메시지에 포함시킨 후 출력 발행 소켓(150)을 통해 시뮬레이터 노드들(200)에게 브로드캐스팅한다.
글로벌 클럭 관리부(140)는, 시뮬레이터 노드들(200) 간 시간 동기화를 위한 기준 시간을 출력하는 글로벌 클럭, 및 상기 시간요청 큐(130)로부터 수신되는 요청된 시간 정보로 상기 글로벌 클럭의 범용 시간을 갱신하기 위하여 필요한 시간 차 정보를 계산하는 타임 매니저를 포함한다.
상기 타임 매니저는 계산된 시간 차 정보만큼 상기 글로벌 클럭의 범용 시간이 흘러가게 시간 지연을 제어한다. 글로벌 클럭은 상기 계산된 시간 차 정보만큼 시간 지연을 수행하여 상기 요청된 시간 정보로 범용 시간이 갱신되면 갱신된 범용 시간, 즉, 상기 요청된 시간 정보를 기준 시간으로서 출력한다.
메시지 브로커(100)가 시뮬레이터들(200)로부터 요청 시간 정보가 포함된 시간 요청 메시지를 수신하여 시간요청 큐(130)에 저장하고 시간요청 큐(130)로부터 전송되는 최소값을 갖는 요청 시간 정보만큼 글로벌 클럭을 시간 지연하여 범용 시간을 갱신 및 출력하는 기능 없이, 메시지 브로커(100)가 논리적으로만 시간 지연을 수행한 후 시간 정보를 시뮬레이터들(200)에게 전송한다면, 연결된 시뮬레이터가 자신의 사이클을 완료하기 전에 다음 시간 정보를 수신하게 되는 상황이 발생할 수도 있다. 이와 같은 경우에 시뮬레이션을 진행한다 해도 정확한 결과 값을 기대할 수 없는 문제점이 발생할 수 있다.
그러나 본 발명에 의한 메시지 브로커(100)는 글로벌 클럭 관리부(140)가 시간요청 큐(130)로부터 수신한 요청 시간 정보만큼 글로벌 클럭의 시간 지연을 수행하여 글로벌 클럭의 범용 시간이 상기 요청된 시간 정보로 갱신되면, 상기 요청된 시간 정보를 기준 시간 정보로서 시뮬레이터들(200)에게 전송함으로써 시뮬레이터가 자신의 사이클을 완료한 후 다음 시간 정보를 수신할 수 있게 되므로 시뮬레이션 성능을 향상시킬 수 있다.
상기 시뮬레이터 노드(200)는, 상기 메시지 브로커(100)에 메시지를 전송하기 위한 딜러 소켓(220), 및 상기 메시지 브로커(100)로부터 전달되는 메시지를 수신하기 위한 구독 소켓(210)을 포함하여 구성된다. 상기 구독 소켓(210)은, 상기 메시지 브로커(100)의 출력 발행 소켓(150)으로부터 발행-구독 메시징 기법으로 메시지를 수신할 수 있고, 또한 상기 메시지 브로커(100)의 출력 발행 소켓(150)으로부터 브로드캐스팅되는 메시지를 수신할 수도 있다.
도 2는 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 시간 동기화 동작 예시를 나타내고 있다.
제 1 시뮬레이터(201)의 주기가 100ms이고, 제 2 시뮬레이터(202)의 주기가 300ms로 주기가 다른 두 시뮬레이터(201)(202)가 메시지 브로커(100)에 연결되어 있고, 현재 글로벌 클럭의 시간이 300ms일 경우에, 주기가 100ms인 제 1 시뮬레이터(201)는 300ms에서 동작 사이클을 시작하면서 다음 사이클을 위한 시간인 400ms를 시간 요청 메시지를 통해 메시지 브로커(100)로 요청하게 된다. 주기가 300ms인 제 2 시뮬레이터(202)는 300ms에서 자신의 사이클을 시작하기 전에 다음 사이클을 위한 시간인 600ms를 시간 요청 메시지를 통해 메시지 브로커(100)로 요청한다.
메시지 브로커(100)는, 시뮬레이터들(201)(202)로부터 수신한 시간 요청 메시지들을 시간요청 큐(130)에 저장한다. 시간요청 큐(130)에 요청 시간 정보 400ms 및 600ms가 저장되어 있는 경우에, 메시지 브로커(100)는 가장 작은 값인 400ms의 요청 시간 정보를 선택하여 글로벌 클럭 관리부(140)로 전달한다. 글로벌 클럭 관리부(140)는 현재 글로벌 클럭의 시간이(즉, 범용 시간이) 300ms인 경우, 타임 매니저는 요청된 400ms와 현재 범용 시간 간 차이값을 계산하고 계산된 100ms의 차이값을 맞추기 위해 글로벌 클럭의 시간 지연을 100ms 동안 수행한다. 이때 글로벌 클럭이 지연하는 시간은 실제 100ms와 동일해야 할 필요는 없지만 적어도 100ms의 주기를 가진 제 1 시뮬레이터(201)가 자신의 사이클을 충분히 수행할 만큼의 시간을 글로벌 클럭이 지연해야 한다. 이와 같은 방식을 사용하여, 요청된 시간 정보 중 최소값을 갖는 요청 시간 정보로 범용 시간을 갱신하고 갱신된 범용 시간을 글로벌 클럭 관리부(140)는 메시지 브로커(100)에 연결된 시뮬레이터들(201)(202)에게 브로드캐스팅한다. 메시지 브로커(100)에 연결된 시뮬레이터들(201)(202)은 동일한 시간 정보(즉, 상기 요청된 시간 정보와 동일하게 갱신된 범용 시간)를 참조하여 각각의 시뮬레이션을 진행하게 되며, 또한 동일한 시간 정보를 이용하여 시간 동기화되어 분산 구조에서도 통합 시뮬레이션이 가능하게 된다.
도 3은 본 발명에 의한 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 시간 동기화 동작 흐름을 나타내는 도면이다.
먼저, 시뮬레이터(200)는 자신의 다음 사이클을 위한 시간 정보를 시간 요청 메시지를 통해 메시지 브로커 장치(100)로 요청한다(S10).
메시지 브로커 장치(100)는 입력 라우터 소켓(110)을 통해 시뮬레이터(200)로부터 시간 요청 메시지를 수신하고(S10), 수신된 시간 요청 메시지를 시간요청 큐(130)에 저장한다(S20).
메시지 브로커 장치(100)는 메시지 큐(120)에 저장된 데이터 메시지가 모두 전송되어 시간요청 큐(130)에 처리를 요청할 때까지 시간요청 큐(130)에 저장된 정보를 처리하지 않는다. 메시지 큐(120)에 저장된 정보가 모두 처리되어 메시지 큐(120)가 비어있는 상태가 되면, 메시지 큐(120)로부터 시간요청 큐(130)에 전송 완료 신호가 전송된다(S30).
전송 완료 신호가 수신되면 시간요청 큐(130)는 저장된 시간 정보 중 가장 작은 값을 갖는 시간 정보를 선택하여 글로벌 클럭 관리부(140)로 전송한다(S40).
글로벌 클럭 관리부(140)는 수신된 시간 정보와 글로벌 클럭의 현재 시간 간 차이값을 계산하여 차이값만큼 시간 지연 동작을 수행하여, 상기 수신된 시간 정보 값(즉, 요청된 시간 정보 값)으로 시간을 업데이트하고(S50), 업데이트된 시간 정보를 메시지 브로커 장치(100)의 출력 발행 소켓(150)에 전송한다(S60).
출력 발행 소켓(150)은 업데이트된 시간 정보, 즉, 상기 요청된 시간 정보를 시뮬레이터들(200)에게 브로드캐스팅한다(S70). 시뮬레이터들(200)은 수신된 상기 업데이트된 시간 정보를 이용하게 되며, 이에 상기 업데이트된 시간 정보에 시간 동기화되는 것이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 따라서, 이상에서 기술한 실시예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 그러므로 본 발명의 진정한 기술적 보호범위는 아래의 특허청구범위에 의하여 정해져야 할 것이다.
100: 메시지 브로커 110: 입력 라우터 소켓
120: 메시지 큐 130: 시간요청 큐
140: 글로벌 클럭 관리부 150: 출력 발행 소켓
200: 시뮬레이터 노드 210: 구독 소켓
220: 딜러 소켓

Claims (7)

  1. 분산 임베디드 시스템을 검증하기 위한 하나 이상의 시뮬레이터 노드들과 연결되는 메시지 브로커 장치를 포함하며, 상기 메시지 브로커 장치는,
    상기 시뮬레이터 노드들로부터 메시지를 수신하는 입력 라우터 소켓;
    상기 수신된 메시지 중 다른 시뮬레이터 노드로 전달하기 위한 데이터 메시지를 저장하는 메시지 큐;
    상기 하나 이상의 시뮬레이터 노드들에 의하여 요청된 시간 정보들을 저장하고 저장되어 있는 상기 요청된 시간 정보들 중 최소값 시간 정보를 선택하여 전송하는 시간요청 큐;
    최소값 시간 정보로 글로벌 클럭의 시간 지연을 수행한 후 상기 요청된 시간 정보를 기준 시간으로서 출력하는 글로벌 클럭 관리부; 및
    상기 메시지 큐로부터 출력되는 데이터 메시지 및 상기 글로벌 클럭 관리부로부터 출력되는 상기 요청된 최소값 시간 정보를 기준 시간으로서 상기 하나 이상의 시뮬레이터 노드들에게 브로드캐스팅하는 출력 발행 소켓을 포함하여, 상기 브로드캐스팅되는 상기 요청된 시간 정보에 의하여 상기 하나 이상의 시뮬레이터 노드들 간 시간 동기화가 이루어지는, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치.


  2. 삭제
  3. 제 1 항에 있어서,
    상기 메시지 큐에 저장된 데이터 메시지들이 모두 전송되어 상기 메시지 큐로부터 전송 완료 신호가 전송되면, 상기 시간요청 큐는 시간 요청 메시지 처리가 가능한, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치.
  4. 제 1 항에 있어서, 상기 글로벌 클럭 관리부는,
    상기 시간 요청 메시지에 포함된 상기 요청된 시간 정보로 범용 시간이 갱신되면 상기 요청된 시간 정보를 상기 하나 이상의 시뮬레이터 노드들 간 시간 동기화를 위한 기준 시간으로서 출력하는 글로벌 클럭; 및
    상기 요청된 시간 정보와 상기 글로벌 클럭의 현재 범용 시간 간 차이값을 계산하고 상기 차이값만큼 상기 글로벌 클럭의 시간 지연을 제어하는 타임 매니저를 포함하는, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치.
  5. 제 1 항에 있어서,
    상기 입력 라우터 소켓은 상기 하나 이상의 시뮬레이터 노드들로부터 서버-클라이언트 구조의 서버 소켓 기능을 통해 메시지를 수신하며,
    상기 출력 발행 소켓은, 상기 메시지 큐로부터 선입 선출 방식으로 출력되는 데이터 메시지를 발행-구독 메시징 기법으로 다른 시뮬레이터 노드들에게 전달하고, 상기 글로벌 클럭 관리부로부터 출력되는 상기 요청된 시간 정보가 포함된 시간 정보 메시지를 상기 하나 이상의 시뮬레이터 노드들에게 브로드캐스팅하는, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치.
  6. 분산 임베디드 시스템을 검증하기 위한 하나 이상의 시뮬레이터 노드들로부터 각자 다음 싸이클을 위한 시간 정보를 요청하는 시간 요청 메시지들을 메시지 브로커 장치의 입력 라우터 소켓을 통해 수신하여 시간요청 큐에 저장하는 단계;
    메시지 큐로부터 메시지 전송 완료 신호가 전송되면, 상기 시간요청 큐는 상기 저장된 시간 요청 메시지들 중 최소값의 시간 정보를 갖는 시간 요청 메시지를 선택하는 단계;
    글로벌 클럭 관리부는 상기 선택된 시간 요청 메시지에 포함되어 있는 최소값의 요청된 시간 정보까지 시간 지연을 수행하여 글로벌 클럭의 범용 시간을 갱신하고 상기 요청된 시간 정보를 기준 시간으로서 전달하는 단계; 및
    상기 메시지 브로커 장치의 출력 발행 소켓은 전달된 상기 요청된 최소값 시간 정보를 기준 시간으로서 상기 하나 이상의 시뮬레이터 노드들에게 브로드캐스팅하여, 상기 브로드캐스팅되는 상기 요청된 시간 정보에 의해 상기 하나 이상의 시뮬레이터 노드들 간 시간 동기화가 가능하게 하는 단계를 포함하는, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 동작 방법.
  7. 제 6 항에 있어서,
    상기 메시지 큐에 저장된 데이터 메시지들을 선입 선출하여 모두 전송하면 상기 메시지 큐는 상기 메시지 전송 완료 신호를 상기 시간요청 큐에 전송하는 단계;를 더 포함하는, 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치의 동작 방법.
KR1020150081953A 2015-06-10 2015-06-10 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법 KR101644751B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150081953A KR101644751B1 (ko) 2015-06-10 2015-06-10 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150081953A KR101644751B1 (ko) 2015-06-10 2015-06-10 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR101644751B1 true KR101644751B1 (ko) 2016-08-01

Family

ID=56707060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150081953A KR101644751B1 (ko) 2015-06-10 2015-06-10 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR101644751B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060135339A1 (en) 2002-06-19 2006-06-22 Martin Sandgren Rotation body arrangement
JP2009140346A (ja) * 2007-12-07 2009-06-25 Mitsubishi Electric Corp 統合シミュレーションシステム
KR101468936B1 (ko) * 2013-12-30 2014-12-05 아주대학교산학협력단 노드들 간의 전파 지연 시간을 이용한 시간 동기 획득 방법 및 그 장치
KR20150058943A (ko) * 2013-11-21 2015-05-29 건국대학교 산학협력단 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060135339A1 (en) 2002-06-19 2006-06-22 Martin Sandgren Rotation body arrangement
JP2009140346A (ja) * 2007-12-07 2009-06-25 Mitsubishi Electric Corp 統合シミュレーションシステム
KR20150058943A (ko) * 2013-11-21 2015-05-29 건국대학교 산학협력단 EtherCAT을 위한 노드간 최적 시간 위상 검색 시스템
KR101468936B1 (ko) * 2013-12-30 2014-12-05 아주대학교산학협력단 노드들 간의 전파 지연 시간을 이용한 시간 동기 획득 방법 및 그 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
임성용외 1인. "하이브리드 시스템 모델링 및 시뮬레이션 - 제2뷰: 시뮬레이터 연동환경, 한국시뮬레이션학회논문지 제10권3호 *

Similar Documents

Publication Publication Date Title
JP6510099B2 (ja) ロボットシステムのノードを同期させるためのシステム及び方法
CN109710905B (zh) 文档协同编辑方法、装置、存储介质及电子设备
CN110120989A (zh) 一种实现设备间自动分配匹配地址的方法及系统
CN103647756A (zh) 一种广告播放方法、服务器、客户端及系统
CN105933741A (zh) 一种广告播放方法、装置、广告投放方法、装置和系统
JP5875846B2 (ja) ネットワークシミュレーションにおける通信影響
CN113691837B (zh) 控制播放视频的方法、装置、系统和存储介质
CN110913270B (zh) 直播方法和装置
KR101644751B1 (ko) 분산 임베디드 시스템의 통합 시뮬레이션을 위한 메시지 브로커 장치 및 이의 동작 방법
CN112291325A (zh) 一种消息的处理方法、装置及计算机系统
CN111343220B (zh) 转发器、分布式文件传输方法、系统、介质及电子设备
CN107241234B (zh) 一种as5643网络仿真方法及系统
CN113420400B (zh) 一种路由关系建立方法、请求处理方法、装置及设备
CN112612806A (zh) 房源信息处理方法、装置、电子设备和计算机可读介质
JP5414332B2 (ja) シミュレーション実行方法
KR102040094B1 (ko) 사이버 훈련 시스템에서 인터넷 배경 트래픽 발생을 위한 데이터 구축 방법 및 그 장치
CN107895075B (zh) 一种开发机载总线通用仿真框架的方法
CN111800337A (zh) 基于数据中心的报文转发方法及装置
CN110971954B (zh) 一种不同位置图标的显示方法、装置、设备及介质
CN108809468B (zh) 时间同步的方法、装置和存储介质以及电子设备
CN108848024A (zh) 消息同步方法、系统及装置
CN110909007B (zh) 数据同步方法、数据同步装置、数据同步设备及存储介质
CN111246229B (zh) 直播间礼物资源更新方法、装置、介质及电子设备
CN109388498B (zh) 一种互斥的处理方法、装置、设备及介质
KR102110381B1 (ko) Dds 통신 미들웨어의 개발 및 유지를 지원하는 데이터분산서비스 엔진 테스트 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 4