1. 서론
발행/구독(Pub/Sub) 모델은 비동기 메시징 패러다임이다. Pub/Sub 모델에서 발신자의 메시지는 특별한 수신자가 정해져 있지 않다. 대신 발행된 메시지는 정해진 범주에 따라, 각 범주에 대한 구독을 신청한 수신자에게 전달된다. 수신자는 발행자에 대한지식이 없어도 원하는 메시지만을 수신할 수 있다 [1]. 지리적으로 분산된 시스템의 끊임없이 증가하는 규모는 통신 인프라 설계자들에게 심각한 도전이다. 특히, 일반적인 밀결합 동기 클라이언트/서버 모델은 새로운 발전된 Pub/Sub 상호작용 패러다임에 의해 도전을 받고 있다. Pub/Sub의 흥미로운 특성은 막대한 개수의 데이터 소스들과 싱크들에게 광역 데이터 전달을 처리하는 기능이다. 메시지들은 브로커들을 통하여 발행자들로부터 구독자들에게 일반적으로 전달된다. 브로커들은 발행물과 구독자들을 매칭하고 그에 따른 메시지 전달에 대한 책임이 있다. 이벤트 공지 서비스 구축을 위한 Pub/Sub 통신 패턴은 뛰어난 성능과 유연성을 가지고 있다. 가장 간단한 형태의 Pub/Sub에서 하나의 브로커가 모든 발행자들과 구독자들을 연결시키는 집중화된 서비스 제공자로서의 역할을 한다. 유행하는 Pub/Sub 방식은 오버레이 망을 형성하기 위하여 전용 브로커들의 집합을 사용한다[2,3].
Fig. 1. The matrix of IoT classification and the performance requirements[3].
최근에 헬스케어, 보안, 에너지 그리고 산업 자동화와 같은 중요한 분야에서 IoT에 대한 요구가 증가하고 있다. 그것들을 핵심 업무 IoT 응용이라 하고, 그리고 지연, 처리력 또는 신뢰성 측면에서 특정 QoS 보장을 추가적으로 요구한다. 그러한 이유로 근원지로부터 목적지까지 최소 지연으로 데이터의 성공적인 전송은 대형 IoT 시스템의 효과적인 동작을 위해 필수적이다[4,5]. 여기서 핵심 업무는 생명의 위험뿐만 아니라 공공 서비스를 중단하고 공공질서를 방해하며 기업 운영을 위태롭게 하고 사업 및 자산에 커다란 손실을 발생시키는 위험들을 포함한다[6].
RSS 뉴스 피드와 같은 일반적인 Pub/Sub 서비스들은 어느 정도의 메시지 분실을 허용할 수 있지만 엔터프라이즈 응용은 뛰어난 신뢰성 보장을 요구한다. 따라서 본 논문에서는 링크 및 노드 장애가 있는 경우 메시지를 안정적으로 전달할 수 있도록 쿼럼기반 계층적 결함 포용 Pub/Sub 시스템인 QHFPS 을 제안한다. QHFPS는 노드 장애 및 네트워크 분할에 직면했을 때 결함 포용력을 제공하기 위해 에지 계층의 IoT 장치들의 발행/구독 메시지들을 제안하는 xS-grid 쿼럼을 기반한 2 계층의 포그 오버레이 망의 Pub/Sub 브로커들에 효율적으로 멀티캐스트하여 분산한다. 그리고 제안한 QHFPS의 성능을 분석적 모델을 사용하여 3가지 측면: 전송된 Pub/Sub 메시지 개수, 평균 구독 지연 및 구독 메시지 전달율을 평가한다.
본 논문의 구성은 다음과 같다. 2장에서는 QHFPS 가 실행되는 시스템 구조를 제공하는 포그 컴퓨팅모델, 포그 오버레이 망에서 분산 Pub/Sub 브로커 배치에 사용되는 쿼럼 시스템, 그리고 IoT를 위한 분산 Pub/Sub 시스템에 대한 관련 연구들을 살펴보고, 3장에서는 xS-grid 쿼럼에 기반한 계층적 결함 포용 Pub/Sub 시스템인 QHFPS을 설계한다. 그리고 4장에서 제안하는 QHFPS의 성능을 분석적 모델을 통하여 평가한다. 마지막으로 5장에서 본 논문의 결론과 향후 연구 과제에 대하여 기술한다.
2. 관련연구
2장에서는 제안하는 QHFPS이 실행되는 플랫폼을 제공하는 포그 컴퓨팅 모델에 대하여 살펴보고, 포그 오버레이 망에 분산 Pub/Sub 브로크들을 배치하는데 사용되는 쿼럼 구조, 그리고 IoT를 위한 분산 Pub/Sub 시스템에 대한 관련 연구들을 살펴본다.
2.1 포그 컴퓨팅 모델
Fig. 2는 2개 이상의 계층으로 구성된 포그 컴퓨팅구조를 보여준다. 이 구조는 포그 자원을 활용하고 지연 시간에 민감한 응용에 대한 지연을 최소화하기 위해 제안되었다[7]. 포그 4-계층 구조는 스마트 도시를 가능하게 하는 전체 IoT 솔루션의 일부로 제안되었다. 이 솔루션에서 계층 2와 3이 포그 계층으로, 계층 3은 고성능 및 전력 소모가 낮은 에지 노드로 구성된다. 반면에 계층 2의 각 계산 노드는 계층 3의 에지 노드 그룹에 연결된다. 이 구조는 원하지 않는 위험한 이벤트를 제어하기 위해 빠르게 대응하는 것을 목표로 한다.
Fig. 2. Fog four-layer architecture.
2.2 쿼럼 시스템
쿼럼 시스템은 분산 시스템에서 프로세서 간의 조정을 달성하기 위한 일관되고 안정적인 방법을 제공하는 기본 도구로 사용된다. 쿼럼 시스템 S={S1, S2, ..., Sm}은 교집합 속성: P∩R≠∅, ∀P,R∈S을 만족하는 전체집합 U={u1, u2, u3, ..., un}의 부분집합 Si⊆U 의 모음이다. 부분집합 Si∈S를 쿼럼이라 한다[8].
계단식 격자 쿼럼 (s-grid)[9]은 매우 유연하고 구현하기 쉬운 쿼럼이다. 전체 집합이 주어지면, 원소들은 가장 오른쪽 열이 가장 왼쪽 열로 돌아가는 것으로간주되는 t×w 배열로 배치되고, s-격자(t×w) 쿼럼시스템의 쿼럼은 Fig. 3과 같이 ⒜ 행 i,0≤i≤t-1의모든 요소들; ⒝ 첫 번째 요소에서 시작하여 선택된 행의 첫 번째 요소까지 열 0내의 모든 요소들; ⒞ 선택된 행의 마지막 요소에서 시작하여 마지막 요소까지 마지막 열 w-1내의 모든 요소들을 선택하여 구축된다.
Fig. 3. Arrangement of all 4 possible quorums based on the s-grid (4×4)[9].
2.3 분산 Pub/Sub 시스템
Pub/Sub는 구글 GOOP, 원도우즈 Azure Service Bus, 오라클 Java 메시징 서비스, 그리고 IBM Web Sphere 등의 업계에서 폭 넓게 채택된 중요한 클라우드 컴퓨팅 인프라이다. Pub/Sub 시스템의 구조는 Fig. 4와 같다[3]. 토픽-기반 Pub/Sub 시스템에서, 구독자는 어떤 종류의 이벤트들에 대한 관심을 표현하고, 그리고 발행자에 의해 생성된 발행물이 통보된다. 브로커는 발행자와 구독자 간의 통신을 중재하기 위하여 Pub/Sub 인프라의 가운데 위치한다. 이벤트 기반 상호작용은 발행자와 구독자 간의 시간, 공간, 그리고 동기화에서 완전한 분리를 제공한다. 메시지는 토픽에 발행되고, 구독자는 그것들이 가입한 토픽으로 전송된 모든 메시지를 수신한다.
Fig. 4. Pub/Sub architecture with three agent roles[3].
기존의 토픽 기반 Pub/Sub를 포함하는 일반적인 Pub/Sub 시스템은 토픽, 발행자 그리고 구독자를 관리하기 위하여 집중화된 브로커 서버를 가지고 있다. 집중화된 브로커는 모든 토픽을 수집하고 발행자와 구독자 간의 메시지 전달을 조정한다. 그러나 그러한 집중화된 Pub/Sub 시스템은 확장성이 좋지 않고, 집중화된 브로커가 모든 구독자들을 관리하기 때문에 지역성-인식(locality-awareness)이 없고, 그리고 그 브로커 서버가 전체 Pub/Sub 시스템 장애를 유발할 수 있는 단일 고장점이기 때문에 결함 포용력이 부족하다.
IoT 환경은 네트워크 에지에 있는 사물들이 높은 지역성을 가진 방대한 양의 데이터를 생성하는 "edge- heavy" 특성이 있다[10]. Pub/Sub 메시징의 확장성, 지역성-인식, 결함 포용력을 향상시키기 위하여 망에 지에 다수의 Pub/Sub 브로커들을 배치하고, 구조화된 오버레이 기반 멀티캐스팅으로 그것들이 서로 협력하게 만드는 분산 Pub/Sub 시스템이 실용적인 선택이다.
분산 Pud/Sub는 완전히 분산된 Pub/Sub 프레임워크이다. Fig. 5는 분산 Pub/Sub 시스템의 일반적인 모델을 보여준다. 여기서 P={p1, p2, ..., pn}은 정보생산자인 발행자라고 하는 n 프로세스의 집합이다. S={s1, s2, ..., sm}은 정보 소비자인 구독자라고 하는 m 프로세스의 집합이다. P와 S는 발행자와 구독자 역할을 모두 수행할 수도 있다. B={b1, b2, ..., bk}는발행자와 구독자 사이의 통신을 허용하는 Pub/Sub 브로커라고 하는 프로세스의 집합이다. 여기서 클라이언트(P, S)에 연결된 브로커(b1, b2, b5, bk)를 액세스 브로커라고 하고, 브로커 간에 메시지를 라우트하는 브로커(b3, b4)를 내부 브로커라고 한다. S내의 프로세스는 B내의 어떤 다른 프로세스와 독점적으로 통신을 허용하고, 동시에 분리된 상태를 유지한다. 브로커 사고와 링크 고장에 대처하여 메시지들이 궁극적으로 배달된다는 것을 보장하는 분산 Pub/Sub 브로커를 갖는 다수의 방법들이 제안되었다. 이러한 접근 방법들은 분산 브로커를 P2P 시스템에서 피어로 취급하고 오버레이 네트워크를 구성한다. Pub/Sub 오버레이를 달성하기 위한 몇 가지 기존연구들: 분산 해시 테이블 (DHT)-기반 방법[11], 쿼럼-기반 위상을 갖는 오버레이 방법[12, 13, 14], 하이브리드 오버레이 방법[15], 그리고 스킵 그래프-기반 방법[16] 등이 있다.
Fig. 5. General framework of distributed Pub/Sub brokers.
Z. Tao 등[12]은 무선 센서 네트워크에서 평면 그래프의 노드 자체를 제외한 해당 노드에 인접한 모든 면의 노드 집합인 공간 이웃을 이용하여 SNPQ(Spatial Neighbor Proxy Quorum)라 부르는 새로운 쿼럼 시스템을 구축하였다. 여기서 전체 망 영역을 가로줄과 세로줄로 나누고, 그리고 푸시 쿼럼으로 가로 쿼럼을사용하고 풀 쿼럼으로 세로 쿼럼을 사용하는 발행/ 구독 모델의 새로운 데이터 전파 방법인 MM-GSQ (Match-Making based Geographical Structure Quorum)를 제안하였다. Y. Sun 등[13]은 IoT 서비스를 위한 저지연 경량 Pub/Sub을 구축하기 위하여 GQPS(Grid Quorum-based Pub/Sub System)을 제안하였다. 이 구조는 효율적인 토픽 검색을 위하여 다수의 Pub/Sub 브로커들을 격자 쿼럼-기반 P2P 위상으로 구성하고, 그리고 GQPS라 부르는 Pub/Sub 응용과 긴밀하게 통합된다. GQPS에서, 각 노드는 \(O(\sqrt{n})\)길이 이웃 리스트를 관리하므로 어떤 두 노드 간의 경로는 2 홉을 초과하지 않는다. I.H. Bae [14] 는대형 지연 민감형 IoT 서비스에 적합한 확장 가능한 저 지연 경량 Pub/Sub 시스템 구축을 위하여 GQS 기반 포그 Pub/Sub 시스템인 GQSFPS를 제안하였다.
3. QHFPS 시스템의 설계
3장에서는 제안하는 GHFPS의 실행을 지원하는 분산 플랫폼의 구조, 제안하는 xS-grid 쿼럼, 발행/ 구독 메시지의 분산, 그리고 실행 예 등에 대하여 기술한다.
3.1 플랫폼 구조
Pub/Sub 시스템은 클라우드 컴퓨팅에서 폭 넓게 채택되고 있는 중요한 컴퓨팅 인프라이다. 그리고 사물인터넷은 환경으로부터 정보를 센싱하는 다수의 스마트 센서들을 포함하고, 처리를 위해 클라우드 서비스와 센싱 정보를 공유한다. IoT 생성 데이터를 처리하기 위하여 2가지 주요 문제가 야기될 수 있다. 한 가지 문제는 시간 임계적인 IoT 응용의 처리 시간은 클라우드로의 데이터 오프로딩을 위한 망 지연에 의해 제한될 수 있다. 다른 문제는 다수의 IoT 장치들로부터의 데이터 업로딩은 망 혼잡을 유발하여 추가 망 지연을 일으킬 수도 있다.
빅 데이터의 새로운 차원은 데이터가 클라우드 컴퓨팅 패러다임의 데이터 센터 대신에 센서 근처 에지에서 처리 되어야 한다. 중요한 인프라의 구성요소의 안전성을 보호하기 위하여 낮은 지연 응답을 제공해야 한다. 포그 컴퓨팅은 클라우드 컴퓨팅을 네트워크에 지로 확장한 적절한 패러다임이다. 에지-포그 클라우드가 갖는 장점 중의 하나는 에지-포그 클라우드에서 계산이 완전히 분산되어진 것처럼, 그 모델은 단일 장애점을 가지지 않는다는 것이다[17].
본 논문에서 설계하는 결함 포용 Pub/Sub 시스템인 QHFPS는 핵심 업무 IoT 응용 실행에 필요한 중요한 메시지를 신뢰적이고 빠르게 전달해야 한다. 따라서 QHFPS를 지원하는 플랫폼 구조은 Fig. 6과 같이 2개의 포그 계층을 갖는 4-단계 계층 에지-포그클라우드로 구성되고, 그리고 상·하위 포그 계층들의 서버들과 노드들에 격자 쿼럼 오버레이 망을 각각 구축한다.
Fig. 6. Edge-fog cloud four-layers architecture for supporting QHFPS.
Fig. 7은 상위 포그 오버레이 망에 9개의 서버들과 하위 포그 오버레이 망에는 81개의 노드들 있는 계층적 격자 오버레이 망을 보여준다. 그 계층적 격자 구조는 내부 노드들이 정확히 9개의 자식 노드들을 갖는 9-원 트리 (9-way tree)로 고려될 수 있다.
Fig. 7. A hierarchical grid structure with total 90 nodes.
제안하는 QHFPS에서는 Pub/Sub 브로커를 계층적 격자 구조의 모든 서버들과 노드들에 복제한다. 따라서 Fig. 7에는 전체 90개의 Pub/Sub 브로커 프로세스들이 있고, 그리고 하위 포그 오버레이 망에서 제일 왼쪽 상단 서브 격자와 제일 오른쪽 하단 서브 격자들은 상위 포그 오브레이 망에서 좌측 상단 모서리와 우측 하단 모서리의 빗금 친 해당 서버들에 대한 하위 지역 포그 서브 격자들을 각각 나타낸다. 특히, 포그 계층별 노드들과 하위 지역 포그 서브 격자의 노드들과 그 지역에 대응하는 상위 지역 포그 서버는 상호 연결되어있다. 메시지나 이벤트를 발생시키는 IoT 장치(발행자)와 생성된 그 메시지를 수신하는 에지 계층의 IoT 장치(구독자)를 포함하는 하위 포그 지역 서브 격자와 상위 포그 서브 격자로 계층적 격자 쿼럼 시스템을 구축한다.
3.2 xS-grid 쿼럼
QHFPS 시스템에서는 하위 포그 오버레이 망과 상위 포그 오버레이 망에 s-grid 쿼럼을 확장한 xS-grid 쿼럼 시스템을 구축한다. 기존의 행 우선 방식의 s-grid가 제공하는 쿼럼을 s-grid 행-쿼럼 Qs-grid(row)이라 하고, 그리고 xS-grid 쿼럼 구축을 위하여 s-grid에서 열 우선 방식으로 적용한 쿼럼을 s-grid 열-쿼럼 Qs-grid(column)을 정의한다. s-grid (t×w) 쿼럼 시스템에서 열-쿼럼 Qs-grid(column)은 Fig. 8과 같이 ⒜ 열 i,0≤i≤w-1의 모든 요소들; ⒝ 첫 번째 요소에서 시작하여 선택된 열의 첫 번째 요소까지 행 0내의 모든 요소들; ⒞ 선택된 열의 마지막 요소에서 시작하여 마지막 요소까지 마지막 행 t-1내의 모든 요소들을 선택하여 구축될 수 있다. 따라서 확장된 계단식 격자 쿼럼인 xS-grid 쿼럼은 식 (1)과 같이 s-grid의 행-쿼럼 Qs-grid(row)과 열-쿼럼 Qs-grid(column)의 합집합으로 구할 수 있다.
Fig. 8. Arrangement of all 4 possible column-quorums based on the of xS-grid (4×4).
Qs-grid(row) = Qs-grid(row)∪Qs-grid(column) (1)
QHFPS 시스템에서는 발행자 또는 구독자의 지역 하위 포그 서브 격자와 상위 포그 격자를 기반으로 계단 모양의 xS-grid 쿼럼 시스템을 구축한다. QHFPS에서 에지 계층의 발행자는 그 발행자가 속한 지역의 하위 포그 계층 노드에 메시지를 발행하고, 그리고 그 노드는 발행된 메시지가 핵심 업무 IoT 응용을 위한 것인지 또는 구독자들에게 인기있는 토픽에 대한 것인지를 고려하여 그 발행된 메시지를 QxS-grid 또는 Qs-grid(row)의 모든 노드들에게 적응적으로 멀티캐스트한다.
3.3 발행/구독 메시지의 분산
QHFPS에서는 2번의 멀티캐스트를 사용하여 발행 메시지의 사본을 분산하는 과정에 대한 메시지 시퀀스 다이어그램은 Fig. 9와 같다. 먼저 발행할 메시지가 있는 에지 계층의 IoT 장치들은 그 장치가 속한 지역 하위 포그 계층의 노드에게 ‘Publish (message, topic)’을 전송한다. 그 메시지를 수신한 하위 포그 계층의 지역 노드는 Pub/Sub 브로커에 그 발행을 등록하고, 그 지역 노드는 하위 포그 오버레이 망의 xS-grid 쿼럼내의 노드들과 그 지역 노드에 대응하는 상위 포그 지역 서버에게 ‘Publish (message, topic)’를 멀티캐스트한다. 여기서 그 메시지가 높은 신뢰성과 낮은 지연을 요구하는 핵심업무 IoT 응용을 위한 것이거나 구독자들에게 인기 있는 토픽에 대한 것이면 그 멀티캐스트에서는 QxS-grid를, 아니면 Qs-grid(row)를 적응적으로 사용한다. 그리고 그 메시지를 수신한 상위 포그 지역 서버는 하위 포그 지역 노드와 마찬가지로 발행하는 메시지의 상황: 핵심 업무용, 토픽 인기도에 따라 적응적으로 상위 포그 오버레이 망의 QxS-grid 또는 Qs-grid(row)에 ‘Publish(message, topic)’를 멀티캐스트한다.
Fig. 9. Message sequence diagram for the distribution of Publish message.
Fig. 10은 QHFPS에서 구독 메시지를 분산하는 과정에 대한 메시지 시퀀스 다이어그램을 보여준다. 여기서 전송하는 메시지 형식과 사용하는 쿼럼만 다를 뿐이지 Fig. 9의 메시지 발행 프로세스와 거의 같다. 먼저 어떤 토픽에 대한 메시지의 구독을 원하는 에지 계층의 IoT 장치들은 그 장치가 속한 지역 하위포그 계층의 노드에게 ‘Subscribe(topic)’을 전송한다. 그 메시지를 수신한 하위 포그 계층의 지역 노드는 Pub/Sub 브로커에 그 구독을 등록하고, 그 지역 노드는 하위 포그 오버레이 망의 Qs-grid(column)의 모든 노드들과 그 지역 노드에 대응하는 상위 포그 지역 서버에게 ‘Subscribe(topic)’를 멀티캐스트 한다. 그리고 그 메시지를 수신한 상위 포그 지역 서버는 하위 포그 지역 노드와 마찬가지로 상위 포그 오버레이 망의 Qs-grid(column)의 모든 노드들에게 ‘Subscribe (topic)’를 멀티캐스트 한다.
Fig. 10. Message sequence diagram for the distribution of Subscribe message.
3.4 실행 예
제안하는 QHFPS의 실행 과정을 Fig. 7의 90개의 노드들을 갖는 계층적 격자를 사용하여 예를 들어 설명한다. Fig. 11은 하위 포그 오버레이 계층의 왼쪽상단 지역 서브 격자, 오른쪽 하단 지역 서브 격자, 그리고 상위 포그 오버레이 계층의 격자로 구성된 xS-grid 쿼럼을 보여준다. 하위 포그 계층의 왼쪽상단 지역 서브 격자에 있는 IoT 장치를 메시지 발행자(p)라 하고, 그 서브 격자의 2번 노드에 위치한다고 가정하고, 그리고 오른쪽 하단 지역 서브 격자에 있는 IoT 장치를 메시지 구독자(s)라 하고, 그 서브 격자의 77번 서버에 위치한다고 가정한다. 여기서 빗금친 격자 요소들과 배경색을 갖는 요소들은 xS-grid의 행-쿼럼 QxS-grid과 열-쿼럼 Qs-grid(column)을 각각 나타낸다.
Fig. 11 Example of hierarchical xS-grid quorum system. ⒜ QxS-grid for a message publisher on node 2 of the lower fog overlay network, ⒝ Qs-grid(column)for a message subscriber on node 77 of the lower fog overlay network.
만일 발행자 p가 생성하는 메시지가 높은 신뢰성과 낮은 지연을 요구하는 핵심 업무 IoT 응용을 위한 또는 구독자들에게 인기있는 토픽에 대한 메시지인 경우에, 발행자 p가 있는 하위 지역 격자 2번 노드의 QxS-grid(row)(2) = {0,1,2,5,6,7,8}의 Pub/Sub 브로커들에 분산되어지고, 또한 그 발행 메시지를 수신한 하위 지역 격자 2번 노드에 대응하는 상위 지역 격자 81 번 서버는 QxS-grid(row)(81) = {81,82,83,84,87,88,89}의 Pub/Sub 브로커들에 분산한다. 따라서 p가 발행한 메시지 사본은 p의 계층적 xS-grid 쿼럼인 Qs-grid(P)=QxS-grid(2)∪QxS-grid(81)={0, 1, 2, 5, 6, 7, 8, 81, 82, 83, 84, 87, 88, 89}의 Pub/Sub 브로커들에 분산된다. 그리고 구독자 s가 요구하는 구독 메시지는 구독자 s가 있는 하위 지역 격자 77번 노드의 QxS-grid(column)(77)={74, 77, 78, 79, 80}의 Pub/Sub 브로커들에 등록되고, 또한 하위 지역 격자 77번 노드에 대응하는 상위 지역 격자 89번 서버는 Qs-grid(column)(89)={83, 86, 87, 88, 89}의 Pub/Sub 브로커들에 그 구독 메시지를 등록한다. 따라서 s가 요청한 구독 메시지 사본은 s의 계층적 s-grid 쿼럼인
QxS-grid(s)=Qs-grid(column)(77)∪Qs-grid(column)(89)={74, 77, 78, 79, 80, 83, 86, 87, 88, 89}의 Pub/Sub 브로커들에 등록된다. 발행자 p와 구독자 s의 계층적 쿼럼들의 교집합, QxS-grid(p)∩QxS-grid(s)={83, 87, 88, 89}이다. 따라서 발행자 p에 의해 발행된 IoT 메시지는 상위 포그 오버레이 망의 83, 87, 88, 89번의 4개의 중복 Pub/Sub 브로커들에 의해 구독자 s에게 신뢰적으로 전달된다.
발행자 p가 생성하는 메시지가 비핵심 업무 IoT 응용을 위한 또는 구독자들에게 인기없는 토픽에 대한 메시지인 경우에, 발행자 p가 있는 하위 지역 격자 2번 노드의 Qs-grid(row)(2)={0, 1, 2, 5, 8}의 Pub/Sub 브로커들에 분산되어지고, 또한 그 발행 메시지를 수신한 하위 지역 격자 2번 노드에 대응하는 상위 지역 격자 81번 서버는 Qs-grid(row)(81)={81, 82, 83, 84, 87}의 Pub/Sub 브로커들에 분산한다. 따라서 p가 발행한 메시지 사본은 p의 계층적 s-grid 쿼럼인 Qs-grid(p)=Qs-grid(row)(2)∪Qs-grid(row)(81)={0, 1, 2, 5, 8, 81, 82, 83, 84, 87}의 Pub/Sub 브로커들에 분산된다. 발행자 p와 구독자 s의 계층적 쿼럼들의 교집합, Qs-grid(p)∩Qs-grid(s)={83, 87}이다. 따라서 상위 포그 오버레이 망의 83, 87번의 2개의 중복 Pub/Sub 브로커들을 통하여 발행자 p가 발행한 IoT 메시지를 구독자 s에게 역시 신뢰적으로 전달된다.
4. 성능 평가
4장에서는 제안하는 QHFPS의 성능을 분석적 모델로 평가한다. 여기서는 쿼럼에 기반한 유사한 분산 Pub/Sub 방식의 Pub/Sub 시스템들: 제안하는 QHFPS 방법, SNPQ 쿼럼 사용하는 MM-GQS 방법[12], 격자 쿼럼을 사용하는 GQPS 방법[13]의 성능을 분석하고 평가한다. 우리는 구독률에 따른 전송되는 발행 메시지와 구독 메시지의 개수로 Pub/Sub의 전체 관리 비용, 어떤 메시지의 구독을 위한 구독 메시지의 전송에서부터 해당 메시지의 구독까지의 평균 구독 지연, Pub/Sub 브로커가 고장일 확률에 따른 구독 메시지 전달율로 결함 포용성의 성능을 각각 평가한다.
제안하는 QHFPS의 성능 분석에 필요한 t×w의배열에서 xS-grid 쿼럼 QxS-grid(t×w)을 구성하는 QxS-grid(row)(t×w)와 QxS-grid(column)(t×w)들 간의 겹치는 평균 노드의 갯수 (expected quorum overlapping size, EQOS), EQOSs-grid를 계산한다. QxS-grid(t×w)의 EQOS를 계산하기 위하여 먼저 5×6 배열로 부터 QxS-grid(5×6)의 EQOS를 계산하고, 그 결과로 부터 QxS-grid(t×w)의 EQOS로 확장하여 수식으로 일반화한다. QxS-grid(row)(5×6)의 집합은 {A:(0, 1, 2, 3, 4, 5, 11, 17, 23, 29), B:(0, 6, 7, 8, 9, 10, 11, 17, 23, 29), C:(0, 6, 12. 13, 14, 15, 16, 17, 23, 29), D:(0, 6, 12, 18, 19, 20, 21, 22, 23, 25), E:(0, 6, 12, 18, 24, 25, 26. 27, 28, 29)}이고, QxS-grid(column)(5×6)의 집합은 {F:(0, 6, 12, 18, 24, 25, 26, 27, 28, 29), G:(0, 1, 7, 13, 19, 25, 26, 27, 28, 29), H:(0, 1, 2, 8, 14, 20, 26, 27, 28, 29), I:(0, 1, 2, 3, 9, 15, 21, 27, 28, 29), J:(0, 1, 2, 3, 4, 10, 16, 22, 18), K:(0, 1, 2, 3, 4, 5, 11, 17, 23, 29)}이다.
만일 메시지 발행자가 그 배열에서 1-번째 행에 있고, 그리고
.1-번째 열에 있을 경우에 A∩F={0, 29}이므로 |A∩F|=2이다.
.2-번째 열에 있을 경우에 A∩G={0, 1, 29}이므로 |A∩G|=3이다.
.3-번째 열에 있을 경우에 A∩H={0, 1, 2, 29}이므로 |A∩G|=4이다.
.4-번째 열에 있을 경우에 A∩I={0, 1, 2, 3, 29} 이므로 |A∩H|=5이다.
.5-번째 열에 있을 경우에 A∩J={0, 1, 2, 3, 4, 29}이므로 |A∩G|=6이다.
.6-번째 열에 있을 경우에 A∩K={0, 1, 2, 3, 4, 5, 11, 17, 23, 29}이므로 |A∩K|=10이다.
따라서 이 경우에 겹치는 평균 크기 EQOS1=1/30(2+3+4+5+6+10)이다. 따라서 모든행 i에 대한 EQOSi는 Fig. 12와 같다.
Fig. 12. EQOS analysis on the xS-grid (5×6).
모든 경우에 대한 상기 결과들을 합하면 \(E Q O S=\frac{1}{30}(30+20+20+20+30)=4\)이다. Fig. 12에서처럼 그 결과를 4 부분으로 나누고 각 부분을 수식화하여 전체집합 {0, ..., n-1}, n=t×w으로 확장한 QxS-grid(t×w)에 대한 EQOSs-grid 계산을 위한 일반식은 식 (2)와 같다.
\(\begin{gathered} E Q O S_{s-g r i d}=\frac{3(t-2)(w-2)+2\left(\sum_{i=3}^{t} i+\sum_{i=2}^{w} i\right)+2(t+w-1)}{(t \times w)} \\ =\frac{3(t-2)(w-2)+(t-2)(t+3)+(w-1)(w+2)+2(t+w-1)}{(t \times w)} \end{gathered}\) (2)
t×w의 배열 격자에서 성능 평가하는 분산 Pub/Sub 방식의 Pub/Sub 시스템들이 사용하는 각쿼럼의 EQOS는 Table 1과 같고, 쿼럼 크기는 Table 2와 같다. 여기서 Table 1의 xS-Grid 쿼럼의 EQOSxS-grid의 값는 xS-Grid 쿼럼의 QxS-grid와 QxS-grid(column)간의 겹치는 EQOS이고, 그 값은 Fig. 12의 EQOSs-grid와 유사한 방법으로 구할 수 있다.
Table 1. EQOS of quorum-based systems to evaluate performance.
Table 2. Quorum sizes of quorum-based systems to evaluate performance.
Table 3는 Pub/Sub 시스템의 성능을 분석적으로 평가하는데 사용되는 매개변수와 값을 보여준다. 여기서 Pmch는 발행 메시지가 핵심 업무 IoT 응용을 위한 것이거나 인기있는 토픽에 대한 것일 확률을 나타내고, Smch는 구독자가 핵심 업무 IoT 응용을 위한 메시지이거나 인기있는 토픽에 대한 메시지를 구독할 확률을 나타내고, 그리고 Slocal은 구독자가 지역발행 메시지를 구독할 확률을 나타낸다.
Table 3. Parameters and values for performance evalu- ation.
Pub/Sub 시스템의 동적 처리 비용은 메시지 발행 비용과 메시지 구독 비용을 합한 전체 Pub/Sub 관리비용인 식 (3)으로 평가된다.
\(C_{\text {total }}=\left|Q_{P u b}\right|+r_{\text {Sub }} \times\left|Q_{\text {Sub }}\right|\) (3)
여기서 \(\left|Q_{P u b}\right|\)와 \(\left|Q_{S u b}\right|\)는 Pub/Sub 시스템의 발행자와 구독자가 발행/구독 메시지를 Sub/Pub 브로커들에 분산 시킬 때 사용하는 각 쿼럼의 크기를 나타내고, rSub는 구독률로 발행 메시지 당 구독 메시지를 전송한 노드의 개수를 나타낸다.
Fig. 13은 하위 포그 계층의 각 지역 격자의 크기가 5×6의 배열이고, 상위 포그 계층의 격자 크기가 5×6 배열로 구성된 전체 930개의 Pub/Sub 브로커들을 갖는 시스템에서 구독률에 따른 Pub/Sub 시스템의 관리 비용을 보여준다. 제안하는 QHFPS는 Pub/Sub 메시지의 지역성을 고려하여 하위 포그 계층의 지역 격자의 쿼럼과 상위 포그 계층의 쿼럼내의 Pub/Sub 브로커들에게만 발행 메시지를 전송하고, Pub/Sub 메시지를 발행 메시지의 상황과 그 메시지 종류에 따라 쿼럼 크기가 다른 쿼럼을 사용하는 적응적 방법으로 Pub/Sub 브로커들에게 분산하기 때문에 구독률에 상관없이 다른 방법들에 비해 우수한 성능을 보인다.
Fig. 13. Total Pub/Sub management cost based on subscription rate.
제안하는 QHFPS의 평균 메시지 구독 홉 지연은 식 (4)로 계산되어진다. 여기서 \(T_{\text {Sub_delay }}^{\text {l_mch }}\)와 \(T_{\text {Sub_delay }}^{\text {l_mnc }}\) 는 핵심 업무 IoT 응용 또는 인기있는 토픽에 대한 메시지와 비핵심 업무 IoT 응용 또는 인기없는 토픽에 대한 메시지들의 평균 구독 홉 지연을 각각 나타내고, Pmch_lh와 Pnmc_lh는 핵심 업무 IoT 응용 또는 인기 있는 토픽에 대한 구독 메시지와 비핵심 업무 IoT 응용 또는 인기없는 토픽에 대한 구독 메시지가 하위 포그 지역의 Pub/Sub 브로커에 있을 확률들을 각각 나타낸다.
\(\begin{aligned} T_{\text {Sub_delay }}=& S_{\text {local }}\left\{S_{m c h} \times T_{\text {Sub_delay }}^{l_{\text {_mch }}}+\left(1-S_{m c h}\right) \times T_{\text {Sub_delay }}^{l_{\text {_nmc }}}\right\} \\ &+\left(1-S_{\text {local }}\right)\left\{S_{m c h} \times T_{\text {Sub_delay }}^{r_{\text {_mch }}}+\left(1-S_{m c h}\right) \times T_{\text {Sub_delay }}^{r_{\text {_nmc }}}\right\} \\ T_{\text {Sub_delay }}^{l_{\text {_mch }}}=& P_{\text {mch_lh }} \times 2+\left(1-P_{\text {mch_lh }}\right) \times 4 \\ T_{\text {Sub_delay }}^{l_{\text {_nmc }}}=& P_{\text {nmc_lh }} \times 2+\left(1-P_{\text {nmc_lh }}\right) \times 4 \\ T_{\text {Sub_delay }}^{r_{\text {_mch }}}=& P_{\text {mch_lh }} \times 4+\left(1-P_{\text {mch_lh }}\right) \times 6 \\ T_{\text {Sub_delay }}^{\text {r_mmc }}=& P_{\text {nmc_lh }} \times 4+\left(1-P_{\text {nmc_lh }}\right) \times 6 \end{aligned}\) (4)
따라서 지역 격자 크기가 5×6 배열로 구성된 전체 930개의 Pub/Sub 브로커들을 갖는 Pub/Sub 시스템에서 \( P_{\text {mch_lh }} =\frac{\left|Q_{x S-\text { grid }}\right|}{t \times w}=\frac{16}{30} \approx 0.53\)이고 \( P_{\text {nmc_lh }} =\frac{\left|Q_{s-\text { grid }}\right|}{t \times w}=\frac{10}{30} \approx 0.33\)이다.
평균 구독 지연은 구독 메시지가 발행자로부터 구독자에게 전달될 때까지의 경로 상의 평균 홉 개수로 평가한다. Fig 14는 구독 메시지에 대한 평균 구독 지연을 보여준다. 여기서 오버레이 망 위에 구축된 노드 기반 멀티캐스트 쿼럼 방식을 사용하는 QHFPS 와 GQPS가 센서망 위에 D2D 통신 기반 멀티 홉 기반 쿼럼 시스템을 사용하는 MM-GQS보다 우수한 성능을 제공한다. 제안하는 QHFPS는 2개의 포그 계층의 오버레이 망에 구축된 2단계 쿼럼들을 계층적으로 사용하기 때문에 1단계 쿼럼만 사용하는 GQPS 보다 구독 메시지의 홉 수가 증가한다. 그러나 QHPS 에서는 지역 구독 메시지의 빠른 전달을 위하여 에지의 지역 포그 격자의 Pub/Sub 브로커들에 발행 메시지를 배치하여 메시지의 지역성을 향상시켰고, 핵심업무 IoT 응용을 위한 또는 구독자들에게 인기 있는 토픽에 대한 발행 메시지 사본을 쿼럼 크기가 큰 xS-grid 쿼럼을 사용하여 많은 Pub/Sub 브로커들에 분산 시켜 지역 Pub/Sub 브로커가 구독 메시지를 캐시 할 확률을 높였다. 그 결과, QHFPS의 평균 구독 홉 지연은 GQPS와 거의 유사한 성능을 제공한다.
Fig. 14. Comparison of average subscription delay among quorum-based Pub/Sub Systems.
Pub/Sub 브로커가 고장일 확률에 따른 구독 메시지 전달율을 평가하기 위하여 모든 노드는 pf의 확률로 고장일 수 있다고 가정한다. 복제 정책을 사용하여 r개의 사본이 있는 n개의 노드로 구성된 네트워크에서 모든 r 사본들이 고장일 때 구독에 실패한다. 따라서 구독 실패 확률은 식 (5)로 평가되어진다[19].
\(P_{\text {Loss }}\left(p_{f}, r, n\right)=1-\left(1-p_{f}^{r}\right)^{n / r}\) (5)
식 (6)과 같은 구독 전달율(subscription delivery rate)은 식 (5)의 구독 실패 확률을 사용하여 계산할 수 있다.
\(P_{\text {Smd }}=1-P_{\text {Loss }}(p, r, n)\)
쿼럼 기반 Pub/Sub 시스템에서 Pub/Sub 브로커 고장일 때, 구독 메시지 전달율은 전체 n 노드의 시스템에서 발행 메시지 사본이 저장된 브로커의 개수(r) 보다는 메시지 발행 브로커의 발행 쿼럼과 구독 브로커의 구독 쿼럼간의 겹치는 EQOS의 크기가 더 중요하다. 따라서 우리는 EQOS의 크기에 따른 쿼럼 기반 Pub/Sub 시스템들의 구독 전달율을 평가한다.
Fig. 15는 노드의 고장 확률에 따른 구독 메시지전달율을 보여준다. 여기서 MM-GSQ는 EQOS가 1 이기 때문에 실험에서 사용한 모든 노드 고장 확률들에 대하여 구독 메시지 전달율이 0이기 때문에 그 결과를 제시하지 않았다. 제안하는 QHFPS는 핵심업무 IoT 응용을 위한 또는 구독자들에게 인기 있는 토픽에 대한 발행 메시지 사본을 쿼럼 크기가 큰 xS-grid 쿼럼을 사용하여 많은 Pub/Sub 브로커들에 분산하였을 뿐만아니라 발행와 구독 메시지의 분산에 다른 쿼럼을 적응적으로 사용하였기 때문에 Grid 쿼럼을 사용하는 GQPS보다 구독 메시지 전달율이우수함을 확인하였다. 특히, GQPS는 노드 고장 확률이 증가할 수록 구독 메시지 전달율이 급격히 감소하고, pf=0.4일 때 구독 메시지는 더 이상 전달되지 않는다. 반면에 제안하는 QHFPS는 노드 고장 확률이 증가할 수록 구독 메시지 전달율은 GQPS에 비해 완만하게 감소하고, pf=0.4일 때도 구독 메시지 전달율 psmd=0.28에 달한다. 따라서 제안하는 QHFPS 의 결함 포용성이 다른 분산 Pub/Sub 시스템보다 우수함을 확인하였다.
Fig. 15. Subscription message delivery rate according to node failure probability.
5. 결론
본 논문에서는 에지-포그 클라우드 인프라 브로커들에 IoT 메시지를 효율적으로 분산시켜 노드 사고와 링크 고장에 대해 포용력을 제공하는 xS-grid 쿼럼 기반 계층적 결함 포용 발행/구독 시스템을 제안하였다. 제안하는 QHFPS는 포그 계층에 2개의 포그 오버레이 망을 구축하고, Pub/Sub 시스템의 성능, 지역성, 결함 포용성, 부하균등화 향상을 목표로 xS-grid 쿼럼 시스템을 기반으로 발행/구독 메시지를 분산 Pub/Sub 브로커들에 효율적으로 분산하였다. 그리고 분석적 평가를 통하여 제안하는 QHFPS 의 성능: Pub/Sub 시스템의 전체 관리 비용, 평균 구독 지연, 그리고 구독 메시지 전달율을 평가하였다. 그 결과, 제안하는 QHFPS의 성능이 쿼럼에 기반한 다른 Pub/Sub 시스템들보다 우수하였고, 특히 노드 고장 확률이 증가할수록 구독 메시지 전달율은 GQPS에 비해 완만하게 감소하기 때문에 결함 포용력이 우수함을 보였다.
향후 연구과제로는 분산 Pub/Sub 브로커들의 부하 균등을 위하여 xS-grid의 행 쿼럼과 열 쿼럼을무작위로 선택하여 구독 메시지를 분산하는 확률적 분산 Pub/Sub 시스템에 대한 연구, Pub/Sub 시스템에서 러프 셋 기반 토픽/이벤트 매칭 알고리즘에 관한 연구, 그리고 VANET과 IoT에서 이동성 관리를 위한 위치 기반 분산 Pub/Sub 시스템에 관한 연구 등이 있다.
References
- 위키백과, 발행-구독 모델, https://ko.wikipedia.org/wiki/발행-구독_모델 (accessed by July 17, 2021).
- T. Chang and H. Meling, "Byzantine Fault-Tolerant Publish/Subscribe: A Cloud Computing Infrastructure," IEEE 31st Symposium on Reliable Distributed Systems, pp. 454-456, 2012.
- T. Chang, S. Duan, H. Meling, S. Peisert, and H. Zhang, "P2S: A Fault-Tolerant Publish/Subscribe Infrastructure," Proceedings of the 8th ACM International Conference on Distributed Event-Based Systems, pp. 189-197, 2014.
- G. Daneels, E. Municio, K. Spaey, G. Vandewiele, A. Dejonghe, F. Ongenae, S. Latre, and J. Famaeyet, "Real-time Data Dissemination and Analytics Platform for Challenging IoT Environments," Global Information Infrastructure and Networking Symposium, pp. 1-8, 2017.
- M.J. Farooq, H. ElSawy, Q. Zhu, and M-S. Alouim, "Optimizing Mission Critical Data Dissemination in Massive IoT Networks," International Workshop on SpaSWiN, pp. 1-6, 2017.
- Q. Zhang and F.H.P. Fitzek, "Mission Critical IoT Communication in 5G," Lecture Notes of the Institute for Computer Sciences, Vol. 159, pp. 35-41, 2015.
- T. Bo, Z. Chen, G. Hefferman, T. Wei, H. He, and Q. Yang, "A Hierarchical Distributed Fog Computing Architecture for Big Data Analysis in Smart Cities," Proceedings of the ASE BigData & Social Informatics, pp. 1-6, 2015.
- M. Naor and A. Wool, "The Load, Capacity and Reliability of Quorum Systems," Journal SIAM Journal on Computing, Vol. 27, No. 2, pp. 423-447, 1998. https://doi.org/10.1137/S0097539795281232
- M. Imani and M.D.T. Fooladi, "S-Grid: A New Quorum-based Power Saving Protocol to Maximize Neighbor Sensibility," 25th Iranian Conference on Electrical Engineering, pp. 2134-2139, 2017.
- R. Banno, J. Sun, S. Takeuchi and K. Shudo, "Interworking Layer of Distributed MQTT Brokers," IEICE Transactions on Information and Systems, Vol. E102.D, No. 12, pp. 2281-2294, 2019. https://doi.org/10.1587/transinf.2019PAK0001
- W. Li and S. Vuong, "Towards A Scalable Content-based Publish/Subscribe Service over DHT," IEEE Global Telecommunications Conference (GLOBECOM), pp. 1-6. 2010.
- Z. Tao, S. Li, Z. Lu, and X. Zhang, "A Data Dissemination Algorithm based on Geographical Quorum System in Wireless Sensor Network," Seventh Annual Communication Networks and Services Research Conference, pp. 317-324, 2009.
- Y. Sun, X. Qiao, B. Cheng, and J. Chen, "A Low-Delay, Lightweight Publish/Subscribe Architecture for Delay-Sensitive IOT Services," Proceeding of International Conference on Web Services, pp. 179-186, 2013.
- I.H. Bae, "Design and Evaluation of a GQSbased Fog Pub/Sub System for Delay-Sensitive IoT Applications," Journal of Korea Multimedia Society, Vol. 10, No. 8, pp. 1369-1378, 2017.
- F. Rahimian, T. L. Nguyen, and S. Girdzijauskas, "Locality-Awareness in a Peer-to-Peer Publish/Subscribe Network," Lecture Notes in Computer Science, Vol. 7272, pp. 45-58, 2012.
- Y. Teranishi, R. Banno, and T. Akiyama, "Scalable and Locality-Aware Distributed Topic-based Pub/Sub Messaging for IoT," IEEE Global Communications Conference (GLOBECOM), pp. 1-7. 2015.
- I.H. Bae, "Design and Evaluation of an Edge-Fog Cloud-based Hierarchical Data Delivery Scheme for IoT Applications," Journal of Internet Computing and Services, Vol. 19, No. 1, pp. 37-47, 2018. https://doi.org/10.7472/jksii.2018.19.1.37
- M. Imani, M. Joudaki, H.R. Arahnia, and N. Mazhari, "A Survey on Asynchronous Quorum-Based Power Saving Protocols in Multi-Hop Networks," Journal of Information Processing Systems, Vol, 13, No. 6, pp. 1436-1458, 2017. https://doi.org/10.3745/JIPS.03.0082
- X. Yu and T. Dhan, "Hope: A Fault-Tolerant Distributed Pub/Sub Architecture for Largesale Dynamic Network Environment," IEEE Int. Conf. on Trust, Security and Privacy on Computing and Communication, pp. 1399-1406, 2013.