KR20160110585A - 사물 인터넷에서 dds 기반 사물 품질의 설정 방법 - Google Patents
사물 인터넷에서 dds 기반 사물 품질의 설정 방법 Download PDFInfo
- Publication number
- KR20160110585A KR20160110585A KR1020150032366A KR20150032366A KR20160110585A KR 20160110585 A KR20160110585 A KR 20160110585A KR 1020150032366 A KR1020150032366 A KR 1020150032366A KR 20150032366 A KR20150032366 A KR 20150032366A KR 20160110585 A KR20160110585 A KR 20160110585A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- service
- topic
- quality
- dds
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법에 관한 것으로서, 발간/구독 모델의 데이터 분산 서비스(Data Distribution Service, DDS)를 기반으로 송수신되는 사물 인터넷의 사물 메시지의 특성에 따라 데이터, 이벤트 또는 서비스로 사물 타입을 분류하는 단계; 상기 분류한 사물 타입에 따라 데이터, 이벤트 또는 서비스를 동기/비동기 방식의 활성화 방식을 선택하며, 상기 선택한 활성화 방식에 따라 상호작용(Interaction) 타입을 구분하여 DDS 기반의 데이터 토픽, 이벤트 토픽 또는 서비스 토픽으로 명세하여 통합하는 단계; 상기 DDS의 서비스 품질(QoS) 정책을 기반으로 하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 위한 데이터 품질, 이벤트 품질, 서비스 품질로 분류되는 사물 품질(Quality of Things, QoT)의 모델을 정의하는 단계; 상기 사물 품질을 위한 DDS의 서비스 품질의 세부 항목 값을 설정하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 실시간 발간/구독하도록 DDS 엔티티를 생성하는 단계를 포함한다. 따라서, 본 발명은 DDS의 서비스품질을 분석하여 데이터 품질, 이벤트 품질 및 서비스 품질을 포함하는 사물 품질의 모델을 정의하고, DDS의 서비스품질 정책을 기반으로 하여 사물 품질의 모델을 데이터 가용성, 데이터 전달성, 데이터 시의성, 시스템 설정으로 분류하여 사물 인터넷의 다양한 요구사항을 반영할 수 있도록 DDS 서비스 품질의 세부 항목 값을 설정할 수 있으며, 수많은 사물들이 유기적으로 통신하고, 상호작용하기 위해 확장성, 실시간성, 신뢰성, 상호운용성 등의 특성을 지원하면서 통합할 수 있다.
Description
본 발명은 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법에 관한 것으로, 보다 상세하게는 DDS를 이용하여 사물이 송수신하는 메시지의 특성을 반영하여 사물 타입을 분류한 후 데이터 토픽, 이벤트 토픽 및 서비스 토픽으로 명세하여 통합하고, 각 토픽별로 DDS의 서비스품질을 분석하여 사물 인터넷의 다양한 요구사항을 반영할 수 있는 사물 품질의 모델을 정의하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법에 관한 것이다.
사물인터넷(Internet of Things, IoT)은 표준 기반의 유무선 네트워크를 이용하여 사물을 통합하는 인프라스트럭처를 의미하며, 정보 관점에서 물리적 사물을 가상의 서비스 또는 객체로 변환하여 제공하는 것을 의미한다.
가상의 서비스가 센서, 엑츄에이터(actuator), 디바이스 등의 물리적 사물과 통신하기 위해서는 잘 정의된 인터페이스를 제공해야 하며, 식별규칙(naming), 접근주소(addressing), 통신 방법(communication) 등이 필요하다. 다양한 유무선 네트워크는 디바이스, 네트워크, 서비스에 따라 식별규칙, 접근 주소, 통신 방법, 데이터 형식, 입출력 파라미터, 프로그래밍 언어 등을 제공하지만, 제공하는 방법이 상이하기 때문에 사물인터넷의 수많은 사물을 접근하고 정보를 송수신하기 위해서는 일관적인 방법으로 통합해야 한다.
비특허 문헌 1, 2 및 3에서는 미들웨어 기반의 네트워크 인터페이스를 통해 통신 프로토콜을 추상화하며, 상이한 사물들의 데이터를 송수신하고 서비스 요청/응답의 메시지를 중재하여 통합하는 내용이 기재되어 있다.
이와 같이, 네트워크 관점의 통합은 하나의 미들웨어가 다양한 유무선 통신 프로토콜과 저수준의 네트워크 인터페이스를 모두 포함하지 못하며, 사물 특성을 반영하지 않고 메시지만 전달하는 문제점이 있다. 이러한 문제점을 해결하기 위해서는 메시지의 특성을 반영한 콘텐츠 중심(content-centric)의 통합이 필요하다.
네트워크로 연결된 수많은 콘텐츠, 서비스와 사물은 대량으로 발생하는 정보를 효율적으로 관리하고 결합할 수 있어야 하며, 현재 구성된 시스템에 영향을 주지 않고 새로운 사물들을 동적으로 네트워크에 적용시켜 바로 통신 또는 서비스로 제공해야 한다. 또한, 대부분이 무선 환경의 사물이기 때문에 네트워크에 추가/변경/삭제가 동적으로 가능해야 하고, 신뢰성 및 실시간성 등의 메시지 송수신에 필요한 서비스 품질(QoS; Quality of Services)을 보장해야 한다.
QoS는 서비스 사용자가 서비스를 사용하기 위한 다양한 요구 사항으로 네트워크 서비스를 제공받기 위한 전송률, 데이터 손실률, 지연 시간 등의 성능을 지표로 한다. 사물 인터넷의 사물이 갖는 특징에 따라 사물 인터넷의 QoS를 정의하는 것이 필요하지만, 사물 인터넷의 QoS는 수많은 사물의 다양한 요구사항을 모두 반영하기는 어렵다는 문제점이 있다.
1. Vlacheas, P. and et al. "Enabling smart cities through a cognitive management framework for the internet of things", IEEE Communications Magazine, Vol. 51, Issue 6, pp. 102~111, June, 2013.
2. Mandler, B. and et al. "COMPOSE - A Journey from the Internet of Things to the Internet of Services", In proceeding of the 27th International Conference on Advanced Information Networking and Applications Workshops, pp. 1217~1222, March, 2013.
3. Wu Yuexin and et al. "Service-Oriented Middleware for Heterogeneous Environment in Internet of Things", Network Technology and Application, China Communication, pp. 41~51, September, 2012.
본 발명은 DDS를 이용하여 사물이 송수신하는 메시지의 특성을 반영하여 사물 타입을 분류한 후 데이터 토픽, 이벤트 토픽 및 서비스 토픽으로 명세하여 통합하고, 각 토픽에 대한 데이터 품질, 이벤트 품질 및 서비스 품질을 위해 DDS의 서비스품질을 분석하여 사물 품질의 모델을 정의하고, DDS의 서비스품질 정책을 데이터 가용성, 데이터 전달성, 데이터 시의성 및 시스템 설정으로 분류하여 사물 인터넷의 다양한 요구사항을 반영할 수 있도록 DDS 서비스 품질의 세부 항목값을 설정하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법을 제공한다.
실시예들 중에서, 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법은, 발간/구독 모델의 데이터 분산 서비스(Data Distribution Service, DDS)를 기반으로 송수신되는 사물 인터넷의 사물 메시지의 특성에 따라 데이터, 이벤트 또는 서비스로 사물 타입을 분류하는 단계; 상기 분류한 사물 타입에 따라 데이터, 이벤트 또는 서비스를 동기/비동기 방식의 활성화 방식을 선택하며, 상기 선택한 활성화 방식에 따라 상호작용(Interaction) 타입을 구분하여 DDS 기반의 데이터 토픽, 이벤트 토픽 또는 서비스 토픽으로 명세하여 통합하는 단계; 상기 DDS의 서비스 품질(QoS) 정책을 기반으로 하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 위한 데이터 품질, 이벤트 품질, 서비스 품질로 분류되는 사물 품질(Quality of Things, QoT)의 모델을 정의하는 단계; 상기 사물 품질을 위한 DDS의 서비스 품질의 세부 항목 값을 설정하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 실시간 발간/구독하도록 DDS 엔티티를 생성하는 단계를 포함하는 것을 특징으로 한다.
상기 상호작용 타입은, 상기 데이터를 동기 방식의 수집(Collection) 및 비동기 방식의 로깅(Logging)으로 구분하고, 상기 이벤트를 동기 방식의 전파(Prppagation) 및 비동기 방식의 분배(Distribution)로 구분하여, 상기 서비스를 동기/비동기 방식의 응답 형태의 호출(Invocation)과 무응답 형태의 호출(Evocation)로 구분되는 것을 특징으로 하는 것을 특징으로 한다.
이때, 상기 서비스의 응답 형태의 호출은 서비스 요청(Request) 정보와 응답(Response) 정보로 구분되고, 상기 무응답 형태의 호출은 요청 정보로 이루어진 것을 특징으로 하는 것을 특징으로 한다.
한편, 상기 DDS의 서비스 품질(QoS) 정책을 기반으로 하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽에 따라 데이터 품질, 이벤트 품질, 서비스 품질로 분류되는 사물 품질(Quality of Things, QoT)의 모델을 정의하는 단계는, 상기 사물 인터넷의 메시지 특성을 기반으로 하여 네트워크 송수신에 해당하는 서비스 품질(QoS) 정책을 데이터 가용성, 데이터 전달성, 데이터 시의성, 시스템 설정으로 카테고리를 분류하는 것을 특징으로 한다.
상기 데이터 가용성은 데이터 송수신을 위한 큐 관리 및 데이터 저장을 수행하고, 상기 데이터 전달성은 샘플 구독 순서 정보, 소유권 정보, 발간자와 구독자 사이의 샘플 전송의 신뢰성 정보를 포함하며, 상기 데이터 시의성은 샘플을 전송할 경우에 샘플 발간 주기, 지연 시간, 전송 우선 순위를 포함하는 시간적 특성 정보를 반영하고, 상기 시스템 설정은 시스템 자원에 대한 활기(Liveliness) 또는 자원 제한을 포함한 정보를 반영하는 것을 특징으로 한다.
상기 데이터 가용성은 내구성(Durability), 내구성_서비스, 수명(Lifespan), 이력(History)을 포함하고, 상기 데이터 전달성은 표현성(Presentation), 분할성(Partition), 신뢰성(Reliability), 소유권(Ownership), 소유권_서비스, 종점_명령(Destination Order)을 포함하며, 상기 데이터 시의성은 데드라인(Deadline), 대기 예산(Latency Budget), 시간 기반 필터(Time-Based-Filter), 전송 우선 순위(Transport priority)를 포함하는 것을 특징으로 한다.
상기 사물 품질을 위한 DDS의 서비스 품질의 세부 항목 값을 설정하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 실시간 발간/구독하도록 DDS 엔티티를 생성하는 단계는, 상기 서비스 품질의 세부 항목값을 데이터 토픽, 이벤트 토픽 또는 서비스 토픽에 따라 카테고리 항목, 서비스품질 정책 항목, 상기 사물 품질의 적용 대상(Concern) 항목, 상기 적용 대상 간의 관계(RxO, Request/Offered) 항목, 상기 설정한 세부 항목 값의 변경 여부(Changeable) 항목으로 구분하는 것을 특징으로 한다.
상기 사물 품질을 위한 DDS의 서비스 품질의 세부 항목 값을 설정하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 실시간 발간/구독하도록 DDS 엔티티를 생성하는 단계는, 상기 동기/비동기 방식의 데이터 토픽, 이벤트 토픽 및 서비스 토픽에 따라 상기 데이터 품질, 이벤트 품질 및 서비스 품질을 2개의 서브 항목으로 각각 세분화하고, 발간자와 구독자를 구분하여 DDS의 QoS 세부항목 값을 설정하는 것을 특징으로 한다.
이때, 상기 데이터 토픽을 위한 데이터 품질은 데이터를 동기 방식의 수집 및 비동기 방식의 로깅으로 서브 항목을 구분하고, 상기 서브 항목별로 발간자 또는 송신자(DataWriter), 구독자 또는 수신자(DataReader)를 구분하여 값을 설정하며, 상기 이벤트 토픽을 위한 이벤트 품질은 이벤트를 동기 방식의 전파 및 비동기 방식의 분배로 서브 항목을 구분하고, 상기 서브 항목별로 발간자 또는 송신자, 구독자 또는 수신자를 구분하여 값을 설정하며, 상기 서비스 토픽을 위한 서비스 품질은 서비스를 동기 방식의 응답 형태의 호출(Invocation)을 요청/응답으로 서브 항목을 구분하고, 비동기 방식의 무응답 형태의 호출(Evocation)을 요청으로 서브 항목을 구분하며, 상기 상기 서브 항목별로 발간자 또는 송신자, 구독자 또는 수신자를 구분하여 값을 설정하는 것을 특징으로 한다.
본 발명의 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법은 DDS의 서비스품질을 분석하여 데이터 품질, 이벤트 품질 및 서비스 품질을 포함하는 사물 품질의 모델을 정의하고, DDS의 서비스품질 정책을 기반으로 하여 사물 품질의 모델을 데이터 가용성, 데이터 전달성, 데이터 시의성, 시스템 설정으로 분류하여 사물 인터넷의 다양한 요구사항을 반영할 수 있도록 DDS 서비스 품질의 세부 항목 값을 설정할 수 있는 효과가 있다.
따라서, 본 발명은 수많은 사물들이 유기적으로 통신하고, 상호작용하기 위해 확장성, 실시간성, 신뢰성, 상호운용성 등의 특성을 지원하면서 통합할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법을 설명하는 순서도
도 2는 도 1의 사물 품질의 모델을 설명하는 도면
도 3은 도 1의 데이터 토픽, 이벤트 토픽 및 서비스 토픽을 설명하는 도면,
도 4는 도 1의 토픽 및 사물 품질을 IDL을 이용하여 명세한 상태를 설명하는 도면
도 5는 도 2의 사물 품질 중 데이터 가용성의 이력 서비스품질의 세부 항목값이 KEEP_LAST일 경우를 설명하는 도면
도 6은 도 2의 사물 품질 중 데이터 가용성의 이력 서비스품질의 세부 항목값이 KEEP_LAST와 depth일 경우를 설명하는 도면
도 7은 도 2의 사물 품질 중 데이터 시의성의 데드라인 서비스품질 정책을 설명하는 도면
도 8은 사물 품질 중 데이터 시의성의 대기 예산 서비스품질 정책과 시간 기반 필터 서비스품질 정책을 설명하는 도면
도 2는 도 1의 사물 품질의 모델을 설명하는 도면
도 3은 도 1의 데이터 토픽, 이벤트 토픽 및 서비스 토픽을 설명하는 도면,
도 4는 도 1의 토픽 및 사물 품질을 IDL을 이용하여 명세한 상태를 설명하는 도면
도 5는 도 2의 사물 품질 중 데이터 가용성의 이력 서비스품질의 세부 항목값이 KEEP_LAST일 경우를 설명하는 도면
도 6은 도 2의 사물 품질 중 데이터 가용성의 이력 서비스품질의 세부 항목값이 KEEP_LAST와 depth일 경우를 설명하는 도면
도 7은 도 2의 사물 품질 중 데이터 시의성의 데드라인 서비스품질 정책을 설명하는 도면
도 8은 사물 품질 중 데이터 시의성의 대기 예산 서비스품질 정책과 시간 기반 필터 서비스품질 정책을 설명하는 도면
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 발명에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
사물인터넷에서 사물은 종단점(end-point)을 알 필요 없이 데이터/이벤트/서비스를 전달할 수 있는 발간/구독 모델의 전송 미들웨어가 적합하다. OMG(Object Management Group)에서 제정한 데이터 중심(data-centric)의 실시간 미들웨어 표준인 데이터 분산 서비스(Data Distribution Service, DDS)는 분산 환경을 지원하며 도메인(domain)에 참여하는 다수의 발간자(Publisher)와 구독자(Subscriber) 사이의 약결합으로 비동기적인 통신을 제공한다. 또한, DDS는 19개의 DDS의 QoS를 지원하여 다양한 요구사항을 반영하기 때문에 사물인터넷의 실시간 전송 미들웨어로 적합하다.
DDS 토픽은 이름(name), 키(key)를 포함한 데이터 타입, QoS로 구성되며 IDL(Interface description language)로 명세한다. 토픽은 도메인 내에서 발간/구독하기 위해 유일한 이름으로 식별하며, 타입서포트(TypeSupport) 인터페이스를 통해 데이터 타입에 접근한다. 또한, 토픽은 키로 식별되는 인스턴스(instance)와 전송 단위인 샘플(sample)을 통해 데이터를 송수신한다.
하나의 토픽은 하나의 데이터 타입만 참조할 수 있지만, 다수의 토픽이 동일한 데이터 타입을 참조할 수 있다. 이를 통해, 동일한 데이터 타입을 참조하는 다수의 토픽을 만들어 데이터를 송수신이 가능하지만 키를 통해 다수의 인스턴스를 갖는 하나의 토픽을 생성하면 DDS 엔티티의 수를 줄 일 수 있는 장점이 있다.
인스턴스의 전송 단위인 샘플은 직렬화(serialization)하여 네트워크상에 전송하고, 발간자 또는 구독자 측에서는 네트워크를 통해 수신한 샘플의 정보를 추출하기 위해 역직렬화(deserialization)한다.
사물인터넷의 QoS는 응용프로그램 및 서비스 계층, 네트워크 계층, 센싱 계층의 3개의 계층으로 정의하고 있으며, 각 계층별로 정확하게 구분되는 항목도 있으나, 사물에 따라 센싱 계층과 네트워크 계층에 공통으로 속하는 항목도 있다.
먼저, 응용프로그램 및 서비스 계층은 서비스 수행 시간(service time), 서비스 지연시간(service delay), 서비스 정확성(service accuracy), 서비스 우선순위(service priority), 서비스 수행비용(service perform cost), 서비스 수행을 위한 자원 사용량(load), 신뢰성(reliability)의 항목으로 구성된다.
그리고, 네트워크 계층은 네트워크 대역폭(bandwidth), 전송 지연시간(delay), 패킷 손실률(packet loss rate), 지연변이(jitter), 네트워크 최고 지원 속도(maximum throughput)의 항목으로 구성된다.
센싱 계층은 샘플링 파라미터(sampling parameters), 센싱 범위(coverage), 위치(location), 이동성(mobility), 에너지 효율성(energy efficiency)의 항목으로 구성된다.
응용프로그램 및 서비스 계층의 분류 중 서비스 수행 시간은 데이터/이벤트가 발생할 경우 토픽을 발간하므로 관계가 없으며, 서비스는 수행 시간을 포함하지 않고 네트워크 전송에 해당하는 서비스품질 정책(QoSPolicy)만 다루며, 서비스 정확성은 사용자가 원하는 데이터/이벤트/서비스 검색에 해당한다.
본 발명의 일 실시예 따른 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법에서는 서비스 수행비용, 자원 사용량과 센싱 계층에서 분류하고 있는 샘플링 파라미터, 센싱 범위, 위치, 이동성, 에너지 효율성은 사물의 물리적 특성에 해당하므로 제외하고, 데이터/이벤트/서비스로 분류한 사물인터넷의 메시지 특성을 미들웨어 기반으로 하여 네트워크 송수신에 해당하는 서비스 품질 정책(QoSPolicy)을 기반으로 하여 사물 품질의 모델을 정의한다.
도 1은 본 발명의 일 실시예에 따른 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법을 설명하는 순서도이고, 도 2는 도 1의 사물 품질의 모델을 설명하는 도면이고, 도 3은 도 1의 데이터 토픽, 이벤트 토픽 및 서비스 토픽을 설명하는 도면이며, 도 4는 도 1의 토픽 및 사물 품질을 IDL을 이용하여 명세한 상태를 설명하는 도면이다.
도 1 내지 도 3을 참고하면, 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법은 발간/구독(Publish/Subscribe) 모델의 실시간 미들웨어 표준인 DDS시스템(100)에 의해 DDS 도메인에 속한 참가자들간에 데이터 객체인 토픽을 실시간 발간/구독하도록 DDS 엔티티를 동적으로 생성함으로서 해당 토픽을 송수신한다.
DDS 시스템(100)은 도 3에 도시된 바와 같이 송수신하는 토픽을 사물의 메시지 특성에 따라 데이터, 이벤트 및 서비스로 사물 타입을 분류하고, 분류한 데이터, 이벤트 및 서비스를 통합하기 위해 식별규칙과 주소체계를 갖는 DDS 기반의 토픽으로 명세한다.(S1)
즉, DDS 시스템(100)은 데이터, 이벤트 및 서비스를 동기/비동기 방식의 활성화 방식을 선택하고, 선택한 활성화 방식에 따라 상호 작용 타입을 구분하여 DDS 기반의 데이터 토픽, 이벤트 토픽 및 서비스 토픽으로 명세하여 통합한다. 이때, 상호 작용 타입은 해당 토픽의 키로 활용될 수 있고, 토픽은 키를 통해 인스턴스를 식별할 수 있으므로, 결국 상호 작용 타입은 토픽의 ID와 함께 식별 규칙이 될 수 있다.
DDS 기반의 토픽의 식별 체계는 인스턴스를 통해 사물을 데이터, 이벤트 및 서비스로 식별하고, 주소체계는 데이터 중심의 배포 서비스를 위한 네트워크 계층 기반의 데이터 전송 프로토콜인 RTPS를 이용한다. 즉, 사물 인터넷의 토픽은 DDS를 통해 자동적으로 주소체계를 관리하기 때문에 DCPS를 통해 인스턴스만 식별하면 RTPS를 알지 못하더라도 데이터, 이벤트 및 서비스에 대한 각 토픽의 샘플을 송수신할 수 있다.
DDS 시스템(100)은 DDS의 응용 프로그램(Application) 사이의 데이터 전송 프로토콜인 RTPS(Real-Time Publish-Subscribe) 계층과, 데이터의 발간/구독을 위한 인터페이스인 DCPS(Data-Centric Publish-Subscribe) 계층을 포함한다.
하나의 사물(Thing)은 사물의 기능에 따라 데이터, 이벤트 또는 서비스를 적어도 하나 또는 모두 제공할 수 있다. 따라서, DDS 시스템(100)은 하나의 사물이 제공하는 데이터, 이벤트 또는 서비스를 각각 토픽으로 명세하여 사물 인터넷의 응용 프로그램과 사물의 다대다 통신을 위한 인터페이스를 제공한다.
DDS의 응용 프로그램은 데이터에 대한 발간 및 구독을 요청하는 디바이스로서, 통신 기능이 탑재된 다양한 센서들 또는 사용자 단말 등이 해당되고, 도메인 내에서 데이터의 발간/구독 서비스 실행을 위한 미들웨어가 설치된다.
DDS 시스템(100)은 도 2에 도시된 바와 같이 DDS의 서비스품질 정책(QoSPolicy)을 기반으로 하여 데이터 토픽을 위한 데이터 품질(Quality of Data, QoD), 이벤트 토픽을 위한 이벤트 품질(Quality of Event, QoE), 서비스 토픽을 위한 서비스 품질을 포함하는 사물 품질(Quality of Things, QoT)의 모델을 정의한다.(S2)
DDS 엔티티는 도메인(Domain), 도메인참가자(DomainPartcipant)(101), 발간자(Publisher)(110), 구독자(Subscriber)(120), 송신자인 데이터라이터(DataWriter)(130), 수신자인 데이터리더(DataReader)(140), 토픽(Topic) 등을 포함한다.
DDS 시스템(100)에서는 참가자들이 실시간으로 발간/구독하는 토픽을 가상 공간의 개념인 글로벌 데이터 스페이스(Grobal Data Space)로 관리하는데, 이는 토픽과 DDS 엔티티에 명시된 사물 품질(QoT)에 따라 발간된 토픽을 추후 참가한 구독자가 수신할 수 있도록 한다.
데이터라이터(130)에서 데이터 값들을 발간자(110)에게 제공하면, 발간자(110)는 다수의 구독자(120)에게 데이터 값들을 보급하고, 데이터리더(140)는 구독자(120)로부터 데이터 값들을 읽어들여 데이터 객체인 토픽으로 정의한다.
DDS의 서비스 품질 정책을 나타내는 표 1에 나타나 있듯이, 사물 품질의 모델은 DDS의 서비스 품질 정책을 근거로 하여 사용자 설정, 데이터 가용성, 데이터 전달성, 데이터 시의성, 시스템 설정으로 카테고리를 분류한다. DDS의 서비스 품질 정책 중에서 사용자 설정을 나타내는 사용자 데이터(USER_DATA), 토픽 데이터(TOPIC_DATA), 그룹 데이터(GROUP_DATA)는 응용 프로그램의 요구사항에 따라 사용할 수 있지만, 본 발명의 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법에서는 데이터 토픽, 이벤트 토픽 및 서비스 토픽을 사용하므로 사용자 설정을 카테고리에서 제외시킬 수 있다.(S3)
도 2를 참고하면, 사물품질의 모델은 사물인터넷의 이질적인 데이터, 이벤트 및 서비스를 통합하기 위해 명세한 DDS 토픽에 사물의 특성을 반영하고, QoT 모델은 표 2 내지 표 4와 같이 구성된다.
사물 품질의 모델은 데이터 토픽, 이벤트 토픽 및 서비스 토픽에 따라 발간자와 구독자가 DDS의 QoS 세부항목 값을 선택 또는 설정한다. 또한, 동기 방식과 비동기 방식의 데이터 토픽, 이벤트 토픽 및 서비스 토픽에 따라 데이터 품질, 이벤트 품질 및 서비스 품질은 각각 2가지로 세분화되고, 발간자와 구독자를 구분하여 DDS의 QoS 세부항목 값을 설정할 수 있다.
QoT 모델은 사물인터넷에서 사물이 생성되면 발간자가 메시지의 특성에 따라 데이터 토픽, 이벤트 토픽 및 서비스 토픽 중에 해당하는 토픽을 결정하고, 요구사항에 따라 DDS의 QoS 세부항목 값을 설정한다. 토픽과 QoS의 세부항목 값은 IDL을 이용하여 미리 정의한 형태로 명세되며, 이를 통해 토픽을 송수신하기 위한 DDS 엔티티가 생성된다. 구독자 역시 구독을 원하는 데이터 토픽, 이벤트 토픽 및 서비스 토픽을 결정하고, 요구사항에 따라 QoS의 세부항목 값을 설정하면 IDL을 통해 DDS 엔티티가 생성된다. QoT에 따라 설정한 DDS의 QoS 세부항목 값 중 RxO가 “Yes”인 경우는 발간자와 구독자의 세부항목 값이 일치하면 샘플을 송수신하고, “No” 또는 “N/A”인 경우는 바로 샘플을 송수신한다.
표 2에는 데이터 품질을 위한 DDS의 QoS 정책의 세부 항목 값을 나타나 있고, 표 3에는 이벤트 품질을 위한 DDS의 QoS 정책의 세부 항목 값을 나타나 있으며, 표 4에는 서비스 품질을 위한 DDS의 QoS 정책의 세부 항목 값을 나타나 있다.
표 1 내지 표 4에서, D는 도메인(Domain), P는 참가자(Partcipant), T는 토픽, DR은 데이터리더, DW는 데이터라이터, Pub는 발간자, Sub는 구독자를 각각 의미한다.
표 1 내지 표 4에서, 서비스 품질의 세부 항목 값은 데이터 토픽, 이벤트 토픽 또는 서비스 토픽에 따라 카테고리 항목, QoS 정책 항목, 사물 품질의 적용 대상(Concern) 항목, 적용 대상 간의 관계(RxO, Request/Offered) 항목, 설정한 세부 항목 값의 변경 여부(Changeable) 항목으로 구분할 수 있다.
사물 품질의 적용 대상은 서비스품질정책 항목별로 토픽, 데이터리더, 데이터라이터, 발간자, 구독자 중 어느 하나 이상이 될 수 있고, 적용 대상 간의 관계(RxO, Requested/Offered)는 “Yes”, “No”, “N/A”의 3가지 형태로 발간자(Publisher)와 구독자(Subscriber)의 QoS 세부항목 값을 결정한다.
만일, RxO가 “Yes”인 경우에 발간자와 구독자에 쌍으로 존재하면서 세부항목 값도 일치해야 하고, “No”인 경우는 발간자와 구독자에 쌍으로 존재하지만 세부항목 값을 독립적으로 설정할 수 있으며, “N/A”는 발간자와 구독자 중에 한 쪽에만 QoS의 세부항목 값을 설정할 수 있다.
설정한 세부 항목 값의 변경 여부(CH, Changeable)의 항목은 데이터 토픽, 이벤트 토픽, 서비스 토픽을 송수신하는 엔티티를 생성할 때 설정한 DDS QoS의 세부항목 값을 추후 변경이 가능한지 여부를 나타낸다. CH가 “Yes”인 경우에는 DDS를 재시작하지 않아도 변경한 QoS의 세부항목 값을 반영할 수 있지만, CH가 “No”인 경우에는 엔티티를 재생성해야 하므로 초기 설정 값을 유지해야 한다.
도 4에 도시된 바와 같이, 데이터 토픽, 이벤트 토픽 및 서비스 토픽과 DDS QoS의 세부 항목값은 IDL(Interface Description Language)을 이용하여 미리 정의한 형태로 명세되며, 이를 통해 토픽을 송수신하기 위한 DDS 엔티티가 생성된다.(S4)
표 5는 동기 방식의 데이터 수집을 위한 발간/구독 토픽에 대한 데이터 품질의 IDL 예제를 나타낸 것이다.
이하, 사물 품질은 DDS에서 정의한 서비스품질 정책을 데이터 가용성, 데이터 전달성, 데이터 시의성 및 시스템 설정으로 카테고리를 분류하고 있으므로, 각 카테고리 항목에 대해 설명하면 다음과 같다.
도 5는 도 2의 사물 품질 중 데이터 가용성의 이력 QoS의 세부 항목값이 KEEP_LAST일 경우를 설명하는 도면이고, 도 6은 도 2의 사물 품질 중 데이터 가용성의 이력 QoS의 세부 항목값이 KEEP_LAST와 depth일 경우를 설명하는 도면이다.
먼저, 데이터 가용성은 데이터 송수신을 위한 큐(queue) 관리 및 데이터 저장을 위한 서비스품질 정책(QoSPolicy)으로 내구성(DURABILITY), 내구성_서비스( DURABILITY_SERVICE), 이력(HISTORY) 및 수명(LIFESPAN)이 해당된다.
내구성 QoS은 세부항목 값에 따라 데이터라이터(DataWriter)가 발간한 샘플을 캐시에 유지하는 것으로서, 추후 네트워크에 참여하는 데이터리더(DataReader)가 이미 발간된 샘플을 수신할 수 있도록 한다.
내구성 QoS은 VOLATILE, TRANSIENT_LOCAL, TRANSIENT, PERSISTENT의 4가지 세부 항목을 선택하도록 되어 있으며, 4가지의 세부항목 값에 따라 VOLATILE(1개의 샘플만 유지) < TRANSIENT_ LOCAL(데이터라이터의 이력 QoS 크기) < TRANSIENT(별도의 프로그램) < PERSISTENCE(파일 또는 데이터베이스)의 순으로 샘플을 유지하는 크기가 결정된다.
내구성_서비스 QoS은 데이터라이터가 외부에 샘플을 저장하는 내구성 QoS의 세부항목 값인 TRANSIENT와 PERSISTENCE을 설정할 경우에 사용한다.
동기 방식의 데이터 토픽과 이벤트 토픽은 구독자가 샘플을 수신하기 위해 대기 상태를 유지하고 있고, 이미 발간한 샘플은 과거 시점의 샘플이므로 세부항목 값을 VOLATILE로 설정하여 데이터라이터가 마지막 샘플만 캐시에 유지하도록 한다.
비동기 방식의 데이터 토픽과 이벤트 토픽은 구독자가 네트워크에 참여하여 데이터 토픽의 경우에 로깅 또는 모니터링의 목적으로, 이벤트 토픽의 경우에 과거에 발생한 중요한 알람이나 에러를 확인하는 목적으로 이미 발간된 샘플을 수신하기 위해 TRANSIENT_LOCAL로 세부항목 값을 설정하면 데이터라이터가 발간한 샘플을 캐시에 유지한다.
동기 방식의 서비스는 현재 시점에 구독자가 서비스를 요청하고 응답을 받기 때문에 VOLATILE로 설정하여 데이터라이터가 마지막으로 발간한 샘플만 유지한다.
비동기 방식의 서비스는 서비스 제공자가 서비스를 요청하는 샘플을 구독하여 쓰레드 형태로 처리하기 위해 TRANSIENT_LOCAL로 설정한다. 샘플을 유지하는 크기는 이력 QoS의 세부항목 값을 이용하며, 서비스 제공자가 서비스를 요청하는 샘플을 구독하고 처리하는 쓰레드의 수와 비례한다.
내구성 QoS의 세부항목 값 중 TRANSIENT와 PERSISTENCE는 데이터라이터가 발간한 샘플을 유지하기 위해 별도의 저장 공간을 사용하기 때문에 QoS의 세부 항목값으로 제외시키고, 필요한 경우에 내구성_서비스 QoS과 함께 사용할 수 있다.
수명 QoS은 데이터라이터가 발간한 샘플의 유효 기간(Td: duration)을 나타내며, 유효 기간이 지난 샘플은 데이터리더가 유지하고 있는 캐시(TRANSIENT 또는 PERSISTENCE는 별도의 저장 공간)에서 제거한다. 수명 QoS의 세부항목의 기본 값은 무한값(infinite)로 설정되며, 발간자의 목적에 따라 유효 기간을 사용할 수 있다.
샘플의 만료 시간(Te: expiration time)은 수학식 1과 같이 데이터라이터가 샘플이 발간할 때 발생하는 타임스탬프(TSp: timestamp)에 데이터리더가 샘플을 수신하면서 유효 기간을 더하여 도착한 타임스탬프(TSr)로 계산한다.
[수학식 1]
데이터 토픽과 이벤트 토픽은 기본으로 설정되어 있는 무한값을 사용하여 수신하는 데이터리더의 캐시에서 샘플을 제거하지 않지만, 발간자의 목적에 따라 유효 기간을 설정할 수 있다. 동기 방식의 서비스는 서비스 요청에 대한 응답을 하는 구조로 발간한 샘플을 유효 시간을 설정하지 않고, 비동기 방식 역시 서비스를 요청하는 데이터라이터에 기본 값인 무한 값을 사용한다.
이력 QoS은 데이터라이터가 키로 구분되는 토픽 인스턴스마다 발간한 샘플을 유지하는 크기로 내구성 QoS의 세부항목 값이 TRANSIENT_LOCAL일 경우에 추후 네트워크에 들어온 데이터리더에게 이미 발간한 샘플을 재송신할 때 활용한다. 도 5 및 도 4에 도시된 바와 같이, 이력 QoS의 세부항목 값은 데이터라이터와 데이터리더에 상이하게 설정할 수 있으며, KEEP_LAST(1개), KEEP_ALL, 상수형의 저장 개수(depth 또는 N) 중 선택이 가능하다. 샘플을 유지하는 수는 수학식 2와 같이 자원_제한(RESOURCE_LIMITS)의 서비스 품질의 세부 항목 값인 max_samples_per_instance보다 작거나 같아야 한다.
[수학식 2]
KEEP_LAST = depth 1
KEEP_ALL = max_samples_per_instance
depth ≤ max_samples_per_instance
이력 QoS의 세부 항목 값 중 KEEP_ALL과 depth를 사용하기 위해서는 내구성 QoS의 세부항목 값이 TRANSIENT_LOCAL로 설정되어야 한다. 내구성 QoS의 세부 항목 값을 VOLATILE로 설정할 경우에 이력 QoS의 세부 항목 값은 자동으로 KEEP_LAST로 되며, 동기 방식의 데이터 토픽과 이벤트 토픽은 이에 해당하므로 마지막으로 발간하고 구독한 샘플만 데이터라이터와 ㄷ데이터리더에 각각 유지한다.
비동기 방식의 데이터 토픽과 이벤트 토픽은 내구성 QoS의 세부항목의 값이 TRANSIENT_LOCAL로 KEEP_LAST, KEEP_ALL, depth를 모두 사용할 수 있고, RxO가 “No”이므로 발간자와 구독자에 따라 샘플을 유지하는 크기를 다르게 설정할 수 있다.
구독자의 응용프로그램이 read()나 take()함수를 통해 샘플을 읽기 전에 데이터리더가 새로운 샘플을 수신하면 캐시에 유지하고 있던 이전의 샘플이 지워지게 되므로 이력 QoS의 세부항목 값은 KEEP_ALL 또는 1이상의 depth를 사용해야 한다.
동기 방식의 서비스 토픽은 서비스의 요청과 응답을 각각 담당하는 발간자/구독자 모두 내구성 QoS의 세부항목이 VOLATILE이므로 이력 QoS의 세부항목 값은 KEEP_LAST로 사용한다. 반면에 비동기 방식의 서비스 토픽은 다수의 서비스 요청을 구독해야 하므로 내구성 QoS의 세부항목 값을 TRANSIENT_LOCAL로 설정해야 한다. 이에 따라 서비스 요청을 구독하는 이력 QoS의 세부항목 값은 KEEP_ALL과 1이상의 depth를 사용하여 서비스를 처리하는 큐의 크기에 비례하도록 한다.
데이터 전달성은 데이터를 송수신할 경우에 구독하는 순서와 소유권 등을 나타내는 서비스품질 정책으로서, 표현성(PRESENTATION), 분할성(PARTITION), 신뢰성(RELIABILITY), 소유권(OWNERSHIP), 소유권_강도(OWNERSHIP_STRENGTH), 종점_명령(DESTINATION_ORDER)이 해당된다.
표현성 QoS은 응용프로그램이 데이터리더가 수신한 샘플을 read() 또는 take() 함수를 이용하여 순서대로 읽을 것인지 시작과 끝을 정한 일정부분에서 논리적으로 순서를 변경하여 읽을 것인지 결정하는 항목이다.
DDS에서는 일반적으로 데이터라이터가 만든 샘플의 순서대로 발간자가 네트워크로 전송하고, 네트워크를 통해 들어온 샘플은 데이터리더가 구독자에서 읽는다. 구독하는 응용프로그램에 따라 표현성 QoS의 세부항목 값을 설정하여 순서를 재구성하여 구독할 수는 있으나, 데이터 토픽, 이벤트 토픽 및 서비스 토픽은 시간적인 순서대로 데이터라이터를 통해 발간되므로 표현성 QoS은 사용하지 않고, 추후 응용 프로그램의 요구사항이 필요할 경우에 제공한다.
DDS에서 도메인은 토픽을 발간/구독하는 물리적인 범위를 의미한다. 분할성 QoS은 도메인을 세부적인 논리 범위로 나누어 특정 부분에 속해 있는 발간자와 구독자만 샘플을 송수신하도록 한다. 사물인터넷의 위치 정보나 데이터 토픽, 이벤트 토픽 및 서비스 토픽의 논리적 범위를 정하고 있지 않기 때문에 분할성 QoS은 사용하지 않는다.
신뢰성 QoS은 발간자와 구독자 사이의 샘플 전송에 대한 신뢰성을 나타낸다. 신뢰성 QoS의 세부항목 값은 BEST_EFFORT, RELIABLE이 있으며, max_blocking_time과 함께 토픽, 데이터라이터, 데이터리더에 설정한다. BEST_EFFORT는 샘플 전송의 CPU나 네트워크 대역폭을 최소로 사용하면서 최신의 샘플을 실시간으로 전달하는 목적을 지니지만, 무선 통신이나 이더넷 등의 물리적인 이유로 샘플 전송의 신뢰성은 보장하지 않는다.
RELIABLE은 데이터라이터가 샘플을 전송할 경우에 오류가 발생하면 이력 QoS의 크기만큼 유지하고 있던 샘플을 모두 데이터리더에게 재전송하기 때문에 CPU, 메모리, 네트워크 대역폭 사용량이 증가하지만 신뢰성있는 전송을 지원한다. 샘플의 전송이 실패할 경우에, RELIABLE로 설정된 세부항목의 값에 따라 샘플을 재전송해야 한다. 하지만, 샘플을 재전송을 하는 도중에 데이터라이터가 write()함수를 실행하면 캐시에 유지하고 있던 샘플 정보가 변경되기 때문에 신뢰성 있는 전송이 불가능하다.
max_blocking_time은 데이터라이터의 write()함수를 일정 기간 동안 중지시키는 역할을 하며, 기본 값은 100ms로 데이터라이터의 캐시에 유지하는 샘플의 수가 이력 QoS이나 자원_제한 QoS의 크기를 초과하는 샘플을 유지할 경우 수행된다.
동기 방식의 데이터 토픽과 이벤트 토픽은 구독자가 대기 상태로 유지하면서 샘플을 수신하기 때문에 비동기 방식에 비해 상대적으로 실시간성이 요구되므로 BEST_EFFORT를 사용한다. 비동기 방식의 데이터 토픽은 로깅 목적으로 모든 샘플을 수신해야 하며, 이벤트 토픽은 중요한 알람은 반드시 수신해야 하므로 신뢰성 있는 전송인 RELIABLE로 설정하고, max_blocking_time은 구독자의 응용프로그램에 따라 달리 사용한다. 서비스 토픽은 동기 방식과 비동기 방식 모두 신뢰성 있는 요청/응답을 송수신해야 하므로 RELIABLE을 사용한다.
소유권 QoS은 다수의 데이터라이터가 하나의 토픽 인스턴스에 대해 동일한 샘플을 발간할 경우에 소유권을 지닌 데이터라이터의 판단시 사용한다. 소유권 QoS의 세부항목 값은 SHARED와 EXCLUSIVE가 있는데, SHARED일 경우에 다수의 데이터라이터가 동일한 토픽 인스턴스의 샘플을 발간할 수 있고, EXCLUSIVE는 소유권_강도 QoS에 따라 강도(strength) 값이 더 높은 데이터라이터에게 소유권을 주게 된다.
하나의 사물이 생성하는 데이터/이벤트/서비스는 하나의 데이터라이터에 의해 발간하기 때문에 소유권 QoS와 소유권_강도 QoS은 사용하지 않는다. 추후 사물이 군집을 구성하거나 클라우드 형태로 제공할 경우 추가하여 사용한다.
종점_명령 QoS은 데이터리더가 수신하는 샘플의 논리적 순서를 데이터라이터가 결정하는 항목이다. 종점 명령 QoS의 세부항목 값은 데이터라이터가 발간한 샘플을 기준으로 순서를 결정하는 BY_SOURCE_TIMESTAMP와 데이터리더가 수신한 타임스탬프를 기준으로 순서를 결정하는 BY_RECEPTION_TIMESTAMP로 나뉜다.
동기 방식과 비동기 방식의 데이터 토픽과 이벤트 토픽은 데이터라이터를 통해 발간한 샘플을 기준으로 순서를 결정하며, 서비스 토픽은 동기 방식과 비동기 방식 모두 서비스를 요청을 데이터리더가 수신하는 순서에 따라 처리하도록 한다. 동기 방식의 서비스 요청에 대한 응답은 BY_SOURCE_TIMESTAMP로 설정하여 발간한 순서대로 응용프로그램이 구독한다.
도 7은 도 2의 사물 품질 중 데이터 시의성의 데드라인 서비스품질 정책을 설명하는 도면이고, 도 8은 사물 품질 중 데이터 시의성의 대기 예산 서비스품질 정책과 시간 기반 필터 서비스품질 정책을 설명하는 도면이다.
데이터 시의성은 샘플을 전송할 경우에 시간적 특성을 반영하는 서비스품질 정책으로서, 데드라인(DEADLINE), 대기예산(LATENCY_BUDGET), 시간_기반_필터(TIME_BASED_FILTER_, 전송_우선순위(TRANSPORT_PRIORITY)가 해당된다.
데드라인 QoS은 데이터라이터가 일정 기간(period) 마다 적어도 하나의 샘플을 발간해야 하는 항목으로 세부항목 값은 period(기본 값은 무한 값)만 갖는다. 도 7에 도시된 바와 같이, 데드라인 QoS에 따라 데이터라이터가 period인 T1, T2, T4에서 각각 샘플 S1, S2, S3을 발간하는 것을 나타낸다. 이와 달리 T3은 period 값 내에 샘플을 발간하지 못하는 경우로 데이터리더에게 규약 위반 정보를 알린다.
동기 방식과 비동기 방식의 데이터 토픽과 이벤트 토픽은 사물이 측정하는 값이나 상태의 변화, 특정 조건에 해당할 경우 샘플을 발간하기 때문에 period 값을 사용하면 지속적으로 샘플을 발간하기 어렵다. period 값은 기본 값인 무한 값으로 사용하고, 필요한 경우에 period 값을 설정하여 사용한다. 동기 방식과 비동기 방식의 서비스 토픽도 요청과 응답하는 시점에 샘플을 생성하므로 period 값을 기본 값으로 사용한다.
도 8에 도시된 바와 같이, 대기_예산 QoS은 데이터라이터가 write()함수를 통해 샘플을 발간(T1)하면 네트워크에 전달(T2)되어 데이터리더가 수신(T3)할 때까지의 지연시간을 나타낸다.
대기_예산 QoS의 세부항목 값은 duration으로 기본 값은 수학식 3에 나타나 있듯이 지연시간을 최소화하기 위해 0(zero)에 가깝고, CPU와 네트워크 대역폭 등의 자원에 따른 데이터라이터와 데이터리더의 캐시 크기를 감안하여 duration을 설정할 수 있다. duration은 데이터라이터가 발간한 샘플을 데이터리더가 수신하는 최대 지연시간으로 샘플을 수신하면 다시 데이터라이터에 알려주기 때문에 샘플의 수신 여부를 확인할 수 있다. duration의 값이 작을수록 긴급하게 샘플을 전송해야 하는 것을 의미하며, CH(Changeable) 항목이 “Yes”이기 때문에 샘플을 송수신하는 동안 수정이 가능하다. 변경한 duration에 따라 시작과 종료 시점의 샘플에 바로 적용된다.
[수학식 3]
LATENCY_BUDGET QoS duration = T1 + T2 + T3
샘플을 송수신하는 동안 duration 값의 변경이 가능하므로 동기 방식과 비동기 방식의 데이터 토픽, 이벤트 토픽 및 서비스 토픽은 응용프로그램의 요구사항에 따라 duration을 설정하여 사용할 수 있다. 이벤트 토픽의 경우에는 데이터 토픽과 서비스 토픽보다 긴급한 전송이 요구되므로 duration 값을 상대적으로 낮게 하고, 샘플의 수신도 확인이 가능하다.
시간_기반_필터 QoS은 도 8에 도시된 바와 같이 세부항목 값인 minimum_separation 값을 두어 이 기간 내에 수신하는 샘플 중 1개의 샘플만 유효하게 구독하며, 데이터리더가 수신하는 샘플의 속도에 비해 데이터라이터가 발간하는 샘플의 속도가 더 빠를 경우에 선별하여 수신하는 기능을 담당한다. 이를 이용하면 구독자의 응용프로그램은 CPU나 네트워크 대역폭을 관리할 수 있으며, 수학식 4와 같이 데드라인 QoS의 period 값보다는 작거나 같게 하여 계약 위반이 일어나지 않도록 설정한다.
[수학식 4]
DEADLINE QoS period ≥ TIME_BASED_FILTER minimum_separation
도 8을 참고하면, 시간_기반 필터 QoS은 데이터라이터가 발간한 샘플{S1, S2, S3, S4, S5}에서 minimum_separation인 M1, M2를 통해 데이터리더는 샘플 S2와 S4는 제외하고 샘플{S1, S3, S5}만 수신한다.
시간_기반_필터 QoS은 구독자의 응용프로그램에 따라 요구사항이 다르므로, 동기 방식과 비동기 방식의 데이터 토픽, 이벤트 토픽 및 서비스 토픽은 세부항목 값인 minimum_separation을 각각 설정하여 데이터리더가 샘플을 수신하도록 한다. 세부항목 값에 따라 구독자 응용프로그램의 CPU나 네트워크 대역폭 등의 자원을 관리할 수 있고, 샘플을 수신하면서 값의 변경이 가능하다.
전송_우선순위 QoS은 데이터라이터가 샘플을 발간하는 전송 우선순위를 나타낸다. 전송 우선순위 QoS의 세부항목 값은 상수형의 value로 값에 따라 샘플의 전송 우선순위가 결정되며, 샘플을 발간하는 도중 변경이 가능하다. 전송 우선순위 QoS은 동기 방식과 비동기 방식에 따라 구분하지 않고 데이터 토픽, 이벤트 토픽 및 서비스 토픽으로 구분하여 서비스 요청/응답 토픽 < 데이터 토픽 < 이벤트 토픽의 순서로 샘플의 전송 우선순위를 갖도록 한다. 발간자의 요구사항에 따라 전송_우선순위 QoS의 세부항목 값인 value는 변경이 가능하다.
마지막으로 시스템 설정은 시스템 자원에 대한 서비스품질 정책으로 활기(LIVELINESS) 자원_제한(RESOURCE_LIMITS)이 해당된다.
활기 QoS은 데이터리더가 샘플을 발간하는 데이터라이터와 연결이 종료되었거나 프로세스가 죽었(dead)는지 확인하는 항목이다. 활기 QoS의 세부항목 값인 lease_duration마다 적어도 한 번씩 엔티티가 제대로 동작하고 있는지 확인하며, 다음의 3가지 방식 중 하나를 선택하여 사용한다.
AUTOMATIC 방식은 오버헤드가 가장 낮은 방식으로 도메인참가자에 등록된 엔티티에 문제가 있는지 확인하며, MANUAL_BY_PARTICIPANT 방식은 도메인참가자에 속해있는 모든 엔티티의 상태를 확인한다. MANUAL_BY_TOPIC 방식은 데이터라이터가 샘플을 발간할 경우에 적어도 한 번은 엔티티의 상태를 확인한다.
동기 방식과 비동기 방식의 데이터 토픽은 모니터링, 로깅 등의 목적으로 사용하며, 다대다 통신을 지원하기 때문에 엔티티 중 문제가 있을 경우에 이를 인지하여 샘플을 송수신하면 된다. 이벤트 토픽과 서비스 토픽은 데이터 토픽보다 샘플을 송수신하는 중요성이 더 크기 때문에 샘플을 발간/구독할 경우에 엔티티의 상태를 확인한다.
자원_제한 QoS은 데이터라이터와 데이터리더마다 샘플을 유지하는 메모리 크기를 결정하며, 그 세부항목 값은 max_samples, max_instances, max_samples_per_instance를 각각 설정한다. max_samples는 데이터라이터나 데이터리더가 유지하는 인스턴스의 최대 샘플 수로 기본 값은 가용한 메모리의 크기를 최대한 사용하는 LENGTH_UNLIMITED이다.
max_instances는 데이터라이터와 데이터리더가 각각 유지하는 인스턴스의 최대 수를 나타내며, max_samples_per_instance는 하나의 인스턴스마다 유지하는 샘플의 최대 수를 의미한다. max_samples를 기본 값으로 사용할 경우 max_instances와 max_samples_per_instance 역시 기본 값인 LENGTH_UNLIMITED가 되며, max_samples 값은 수학식 5와 같이 항상 max_samples_per_ instance 값보다 크거나 같아야 한다. 자원_제한 QoS은 응용프로그램의 자원에 따라 선택적으로 값을 설정한다.
[수학식 5]
max_samples ≥ max_samples_per_instance
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : DDS 시스템 101 : 도메인 참가자
110 : 발간자 120 : 구독자
130 : 데이터라이터 140 : 데이터리더
110 : 발간자 120 : 구독자
130 : 데이터라이터 140 : 데이터리더
Claims (9)
- 발간/구독 모델의 데이터 분산 서비스(Data Distribution Service, DDS)를 기반으로 송수신되는 사물 인터넷의 사물 메시지의 특성에 따라 데이터, 이벤트 또는 서비스로 사물 타입을 분류하는 단계;
상기 분류한 사물 타입에 따라 데이터, 이벤트 또는 서비스를 동기/비동기 방식의 활성화 방식을 선택하며, 상기 선택한 활성화 방식에 따라 상호작용(Interaction) 타입을 구분하여 DDS 기반의 데이터 토픽, 이벤트 토픽 또는 서비스 토픽으로 명세하여 통합하는 단계;
상기 DDS의 서비스 품질(QoS) 정책을 기반으로 하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 위한 데이터 품질, 이벤트 품질, 서비스 품질로 분류되는 사물 품질(Quality of Things, QoT)의 모델을 정의하는 단계;
상기 사물 품질을 위한 DDS의 서비스 품질의 세부 항목 값을 설정하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 실시간 발간/구독하도록 DDS 엔티티를 생성하는 단계를 포함하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제1항에 있어서,
상기 상호작용 타입은,
상기 데이터를 동기 방식의 수집(Collection) 및 비동기 방식의 로깅(Logging)으로 구분하고, 상기 이벤트를 동기 방식의 전파(Prppagation) 및 비동기 방식의 분배(Distribution)로 구분하여, 상기 서비스를 동기/비동기 방식의 응답 형태의 호출(Invocation)과 무응답 형태의 호출(Evocation)로 구분되는 것을 특징으로 하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제2항에 있어서,
상기 서비스의 응답 형태의 호출은 서비스 요청(Request) 정보와 응답(Response) 정보로 구분되고, 상기 무응답 형태의 호출은 요청 정보로 이루어진 것을 특징으로 하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제1항에 있어서,
상기 DDS의 서비스 품질(QoS) 정책을 기반으로 하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽에 따라 데이터 품질, 이벤트 품질, 서비스 품질로 분류되는 사물 품질(Quality of Things, QoT)의 모델을 정의하는 단계는,
상기 사물 인터넷의 메시지 특성을 기반으로 하여 네트워크 송수신에 해당하는 서비스 품질(QoS) 정책을 데이터 가용성, 데이터 전달성, 데이터 시의성, 시스템 설정으로 카테고리를 분류하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제4항에 있어서,
상기 데이터 가용성은 데이터 송수신을 위한 큐 관리 및 데이터 저장을 수행하고,
상기 데이터 전달성은 샘플 구독 순서 정보, 소유권 정보, 발간자와 구독자 사이의 샘플 전송의 신뢰성 정보를 포함하며,
상기 데이터 시의성은 샘플을 전송할 경우에 샘플 발간 주기, 지연 시간, 전송 우선 순위를 포함하는 시간적 특성 정보를 반영하고,
상기 시스템 설정은 시스템 자원에 대한 활기(Liveliness) 또는 자원 제한을 포함한 정보를 반영하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제5항에 있어서,
상기 데이터 가용성은 내구성(Durability), 내구성_서비스, 수명(Lifespan), 이력(History)을 포함하고,
상기 데이터 전달성은 표현성(Presentation), 분할성(Partition), 신뢰성(Reliability), 소유권(Ownership), 소유권_서비스, 종점_명령(Destination_Order)을 포함하며,
상기 데이터 시의성은 데드라인(Deadline), 대기 예산(Latency Budget), 시간 기반 필터(Time-Based-Filter), 전송 우선 순위(Transport priority)를 포함하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제4항에 있어서,
상기 사물 품질을 위한 DDS의 서비스 품질의 세부 항목 값을 설정하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 실시간 발간/구독하도록 DDS 엔티티를 생성하는 단계는,
상기 서비스 품질의 세부 항목값을 데이터 토픽, 이벤트 토픽 또는 서비스 토픽에 따라 카테고리 항목, 서비스품질 정책 항목, 상기 사물 품질의 적용 대상(Concern) 항목, 상기 적용 대상 간의 관계(RxO, Request/Offered) 항목, 상기 설정한 세부 항목 값의 변경 여부(Changeable) 항목으로 구분하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제2항에 있어서,
상기 사물 품질을 위한 DDS의 서비스 품질의 세부 항목 값을 설정하여 상기 데이터 토픽, 이벤트 토픽 또는 서비스 토픽을 실시간 발간/구독하도록 DDS 엔티티를 생성하는 단계는,
상기 동기/비동기 방식의 데이터 토픽, 이벤트 토픽 및 서비스 토픽에 따라 상기 데이터 품질, 이벤트 품질 및 서비스 품질을 2개의 서브 항목으로 각각 세분화하고, 발간자와 구독자를 구분하여 DDS의 QoS 세부항목 값을 설정하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
- 제8항에 있어서,
상기 데이터 토픽을 위한 데이터 품질은 데이터를 동기 방식의 수집 및 비동기 방식의 로깅으로 서브 항목을 구분하고, 상기 서브 항목별로 발간자 또는 송신자(DataWriter), 구독자 또는 수신자(DataReader)를 구분하여 값을 설정하며,
상기 이벤트 토픽을 위한 이벤트 품질은 이벤트를 동기 방식의 전파 및 비동기 방식의 분배로 서브 항목을 구분하고, 상기 서브 항목별로 발간자 또는 송신자, 구독자 또는 수신자를 구분하여 값을 설정하며,
상기 서비스 토픽을 위한 서비스 품질은 서비스를 동기 방식의 응답 형태의 호출(Invocation)을 요청/응답으로 서브 항목을 구분하고, 비동기 방식의 무응답 형태의 호출(Evocation)을 요청으로 서브 항목을 구분하며, 상기 상기 서브 항목별로 발간자 또는 송신자, 구독자 또는 수신자를 구분하여 값을 설정하는 것을 특징으로 하는 사물 인터넷에서 DDS 기반 사물 품질의 설정 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150032366A KR101663412B1 (ko) | 2015-03-09 | 2015-03-09 | 사물 인터넷에서 dds 기반 사물 품질의 설정 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150032366A KR101663412B1 (ko) | 2015-03-09 | 2015-03-09 | 사물 인터넷에서 dds 기반 사물 품질의 설정 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160110585A true KR20160110585A (ko) | 2016-09-22 |
KR101663412B1 KR101663412B1 (ko) | 2016-10-17 |
Family
ID=57102433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150032366A KR101663412B1 (ko) | 2015-03-09 | 2015-03-09 | 사물 인터넷에서 dds 기반 사물 품질의 설정 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101663412B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102211005B1 (ko) * | 2019-12-10 | 2021-02-01 | (주)구름네트웍스 | 효율적 메시지 처리를 제공하는 dds 미들웨어 장치 |
CN113138864A (zh) * | 2020-01-19 | 2021-07-20 | 华为技术有限公司 | 消息通信方法、计算机系统及代理装置 |
KR102415877B1 (ko) * | 2021-12-27 | 2022-07-01 | 한화시스템(주) | 전투 체계 시스템에서의 dds 프로토콜 기반 실시간 통신 상태 측정 장치 및 방법 |
CN115664974A (zh) * | 2022-10-14 | 2023-01-31 | 南京芯传汇电子科技有限公司 | 仿真通讯方法、装置、电子设备及可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102021117B1 (ko) * | 2017-08-25 | 2019-09-11 | 한전케이디엔 주식회사 | 전력계통 분야 dds 통신 미들웨어 플랫폼 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110295923A1 (en) * | 2010-05-28 | 2011-12-01 | De Campos Ruiz Alejandro | Bridging data distribution services domains based on discovery data |
KR20130055423A (ko) * | 2011-11-18 | 2013-05-28 | 한국전자통신연구원 | 데이터 분배 서비스를 위한 미들웨어에서의 QoS를 지원하기 위한 장치 및 방법 |
-
2015
- 2015-03-09 KR KR1020150032366A patent/KR101663412B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110295923A1 (en) * | 2010-05-28 | 2011-12-01 | De Campos Ruiz Alejandro | Bridging data distribution services domains based on discovery data |
KR20130055423A (ko) * | 2011-11-18 | 2013-05-28 | 한국전자통신연구원 | 데이터 분배 서비스를 위한 미들웨어에서의 QoS를 지원하기 위한 장치 및 방법 |
Non-Patent Citations (4)
Title |
---|
1. Vlacheas, P. and et al. "Enabling smart cities through a cognitive management framework for the internet of things", IEEE Communications Magazine, Vol. 51, Issue 6, pp. 102~111, June, 2013. |
2. Mandler, B. and et al. "COMPOSE - A Journey from the Internet of Things to the Internet of Services", In proceeding of the 27th International Conference on Advanced Information Networking and Applications Workshops, pp. 1217~1222, March, 2013. |
3. Wu Yuexin and et al. "Service-Oriented Middleware for Heterogeneous Environment in Internet of Things", Network Technology and Application, China Communication, pp. 41~51, September, 2012. |
백문기 외 2인. 사물인터넷의 양방향 데이터/이벤트/서비스 연동을 위한 지그비 어댑터. 정보처리학회논문지: 컴퓨터 및 통신 시스템 제3권 제4호, 2014년 4월.* * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102211005B1 (ko) * | 2019-12-10 | 2021-02-01 | (주)구름네트웍스 | 효율적 메시지 처리를 제공하는 dds 미들웨어 장치 |
CN113138864A (zh) * | 2020-01-19 | 2021-07-20 | 华为技术有限公司 | 消息通信方法、计算机系统及代理装置 |
KR102415877B1 (ko) * | 2021-12-27 | 2022-07-01 | 한화시스템(주) | 전투 체계 시스템에서의 dds 프로토콜 기반 실시간 통신 상태 측정 장치 및 방법 |
CN115664974A (zh) * | 2022-10-14 | 2023-01-31 | 南京芯传汇电子科技有限公司 | 仿真通讯方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR101663412B1 (ko) | 2016-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102004160B1 (ko) | 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법 | |
KR101663412B1 (ko) | 사물 인터넷에서 dds 기반 사물 품질의 설정 방법 | |
US8819080B2 (en) | System and method for collection, retrieval, and distribution of data | |
Khriji et al. | Design and implementation of a cloud-based event-driven architecture for real-time data processing in wireless sensor networks | |
US12095872B2 (en) | Framework for dynamic brokerage and management of topics and data at the service layer | |
US20130282853A1 (en) | Apparatus and method for processing data in middleware for data distribution service | |
US20180248709A1 (en) | Managing channels in an open data ecosystem | |
US20060179059A1 (en) | Cluster monitoring system with content-based event routing | |
KR101834837B1 (ko) | MQTT와 KAFKA를 이용한 IoT 센서 시뮬레이터 시스템 | |
US20180248772A1 (en) | Managing intelligent microservices in a data streaming ecosystem | |
Bhimani et al. | Message delivery guarantee and status update of clients based on IOT-AMQP | |
US20180248977A1 (en) | Selective distribution of messages in a publish-subscribe system | |
CN110086759B (zh) | 一种用于在异构系统之间实现消息传递的方法和装置 | |
CN110769018A (zh) | 一种消息推送方法及装置 | |
KR101602100B1 (ko) | 사물 인터넷에서 dds 기반의 이질적인 사물 메시지 통합 방법 | |
CN115865874A (zh) | 一种会议消息推送方法、会议服务端及电子设备 | |
Dianes et al. | Using standards to integrate soft real-time components into dynamic distributed architectures | |
US20130346580A1 (en) | Apparatus and method for generating qos profile for supporting data distribution service in cyber-physical system | |
KR20130126444A (ko) | 사용자 식별 정보를 이용한 컨테이너 자원의 구성 방법, 기록 매체 및 그 장치 | |
KR20160000544A (ko) | 데이터 분산 서비스에서 서비스 품질 프로파일 결정 방법 및 장치 | |
US9338219B2 (en) | Direct push operations and gather operations | |
KR101935014B1 (ko) | 토픽 가상화를 통한 매쉬업 콘텐츠를 제공하는 발행/구독 기반의 콘텐츠 전달 플랫폼 시스템, 매쉬업 서버 및 콘텐츠 전달 방법 | |
Nilsson et al. | Performance evaluation of message-oriented middleware | |
CN111327511B (zh) | 即时通讯方法、系统、终端设备与存储介质 | |
US20190293433A1 (en) | System and method for indoor position determination |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20190829 Year of fee payment: 4 |