KR102481162B1 - 사물 인터넷에서의 구독 데이터 푸시 방법 및 장치, 그 디바이스 및 저장 매체 - Google Patents
사물 인터넷에서의 구독 데이터 푸시 방법 및 장치, 그 디바이스 및 저장 매체 Download PDFInfo
- Publication number
- KR102481162B1 KR102481162B1 KR1020227024927A KR20227024927A KR102481162B1 KR 102481162 B1 KR102481162 B1 KR 102481162B1 KR 1020227024927 A KR1020227024927 A KR 1020227024927A KR 20227024927 A KR20227024927 A KR 20227024927A KR 102481162 B1 KR102481162 B1 KR 102481162B1
- Authority
- KR
- South Korea
- Prior art keywords
- attribute
- subscription
- elements
- condition
- subscription condition
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y10/00—Economic sectors
- G16Y10/75—Information technology; Communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 개시는 사물 인터넷에서 구독 데이터를 푸시하기 위한 방법 및 장치에 관한 것이다. 방법은: 구독 조건 세트 수신에 응답하여 구독 조건 세트를 제1 속성 세트로 파싱하는 단계; 디바이스 데이터를 획득하는 단계; 디바이스 데이터를 제2 속성 세트로 파싱하는 단계; 제1 속성 세트의 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서대로 하나씩 제2 속성 세트의 속성 요소들에 대해 블룸 필터링을 수행하는 단계; 하나의 속성 요소의 블룸 필터링 결과가 미스매치의 발생을 나타내는 경우 제2 속성 세트의 다른 속성 요소들에 대한 블룸 필터링을 중지하는 단계; 및 디바이스 데이터를 획득하는 단계로 복귀하는 단계를 포함한다.
Description
본 개시는 사물 인터넷 기술 분야에 관한 것으로, 특히 사물 인터넷에서 구독 데이터(subscription data)를 푸시하기(pushing) 위한 방법 및 장치, 및 그 디바이스 및 저장 매체에 관한 것이다.
사물 인터넷 기술의 대규모 적용으로 사물과 사물 및 사람과 사물 사이의 정보 상호작용이 보다 빈번해지고, 구독 데이터를 푸시하는 프로세스 동안, 구독 서버의 데이터는 구독 조건에 따라 매칭될 필요가 있다.
종래 기술에서, 일반적으로 데이터베이스의 데이터가 구독 조건과 매칭되고, 매칭 시 데이터가 구독 조건을 충족하는지 또는 하지 않는지 여부에 따라 사용자에게 데이터가 전송될지 여부가 결정된다.
종래 기술에서, 데이터 구조에 상이한 속성 값들(attribute values)이 일반적으로 포함되므로, 데이터의 특정 속성 값이 구독 조건을 충족하지 않는다고 결정되는 경우, 데이터의 다른 속성 값들을 매칭하는 것은 중요하지 않다. 그 결과, 구독 서버의 매칭 자원이 낭비되고, 구독 서버의 매칭 효율이 저하된다.
본 개시의 실시예들은 사물 인터넷에서 구독 데이터를 푸시하기 위한 방법 및 장치, 및 그 컴퓨터 디바이스 및 비일시적 컴퓨터 판독 가능 저장 매체를 제공하며, 이는 검증 프로세스에서 검증 자원의 낭비를 줄이고, 따라서 검증 효율을 개선한다.
일 측면에서, 사물 인터넷에서 구독 데이터를 푸시하기 위한 방법이 제공된다. 방법은 구독 서버에 의해 수행되고, 이하:
구독 조건 세트 수신에 응답하여 상기 구독 조건 세트를 제1 속성 세트(attribute set)로 파싱하는 단계(parsing) - 상기 제1 속성 세트는 적어도 하나의 속성 요소 세트를 포함하고, 상기 구독 조건 세트는 적어도 하나의 구독 조건을 포함함 -;
디바이스 데이터를 획득하는 단계 - 상기 디바이스 데이터는 상기 구독 서버에 저장됨 -;
상기 디바이스 데이터를 제2 속성 세트로 파싱하는 단계 - 상기 제2 속성 세트의 속성 요소들은 상기 제1 속성 세트의 상기 속성 요소 세트와 동일한 유형임 -;
상기 제1 속성 세트의 상기 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서로 하나씩 상기 제2 속성 세트의 상기 속성 요소들에 대해 블룸 필터링(Bloom filtering)을 수행하는 단계;
상기 제2 속성 세트의 상기 속성 요소들 중 하나의 블룸 필터링 결과가 상기 제1 속성 세트의 대응하는 속성 요소 세트와의 미스매치(mismatch)를 나타내는 경우, 상기 제2 속성 세트의 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하는 단계; 및
상기 디바이스 데이터를 획득하는 단계로 복귀하는 단계를 포함한다.
다른 측면에서, 사물 인터넷에서 구독 데이터를 푸시하기 위한 장치가 제공된다. 장치는 구독 서버에 적용 가능하고, 이하:
구독 조건 세트 수신에 응답하여 상기 구독 조건 세트를 제1 속성 세트(attribute set)로 파싱(parse)하도록 구성되는, 제1 파싱(parsing) 모듈 - 상기 제1 속성 세트는 적어도 하나의 속성 요소 세트를 포함하고, 상기 구독 조건 세트는 적어도 하나의 구독 조건을 포함함 -;
디바이스 데이터를 획득하도록 구성되는, 획득 모듈 - 상기 디바이스 데이터는 상기 구독 서버에 저장됨 -;
상기 디바이스 데이터를 제2 속성 세트로 파싱하도록 구성되는, 제2 파싱 모듈 - 상기 제2 속성 세트의 속성 요소들은 상기 제1 속성 세트의 상기 속성 요소 세트와 동일한 유형임 -;
상기 제1 속성 세트의 상기 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서로 하나씩 상기 제2 속성 세트의 상기 속성 요소들에 대해 블룸 필터링(Bloom filtering)을 수행하도록 구성되는, 블룸 필터링 모듈;
상기 제2 속성 세트의 상기 속성 요소들 중 하나의 블룸 필터링 결과가 상기 제1 속성 세트의 대응하는 속성 요소 세트와의 미스매치(mismatch)를 나타내는 경우, 상기 제2 속성 세트의 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하도록 구성되는, 중지 모듈(stopping module); 및
상기 디바이스 데이터를 획득하는 단계로 복귀하도록 구성되는, 복귀 모듈(returning module)을 포함한다.
일부 실시예들에서, 블룸 필터링 모듈은:
상기 제1 속성 세트의 상기 속성 요소들의 속성 값들에 대해 개별적으로 해시 연산(Hash operation)을 수행함으로써 상기 제1 속성 세트의 상기 속성 요소 세트에 대응하는 이진 벡터 세트를 획득하도록 구성되는, 제2 계산 서브모듈; 및
상기 제2 속성 세트의 상기 속성 요소들의 속성 값들에 대해 개별적으로 해시 연산을 수행함으로써 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터를 획득하도록 구성되는, 제2 계산 서브모듈을 포함하고;
상기 중지 모듈은 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터들 중 하나가 상기 제1 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터 세트들 중 하나와 매칭에 실패하는(fails to match) 경우, 상기 제2 속성 세트의 상기 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하도록 더 구성된다.
일부 실시예들에서, 상기 구독 조건의 수가 1인 경우, 상기 장치는:
상기 제2 속성 세트의 상기 속성 요소들의 상기 블룸 필터링 결과가 상기 제1 속성 세트의 상기 속성 요소 세트와 대응하는 매치(match)를 나타내는 경우, 상기 디바이스 데이터를 클라이언트에 전송하도록 구성되는, 제1 전송 모듈 - 상기 클라이언트는 상기 구독 조건을 전송하기 위한 단말임 -을 더 포함한다.
일부 실시예들에서, 구독 조건들의 수가 1보다 큰 경우, 상기 장치는:
상기 제2 속성 세트에서 상기 속성 요소들의 상기 블룸 필터링 결과가 상기 제1 속성 세트의 상기 속성 요소와 성공적인 대응하는 매치를 나타내는 경우, 상기 제1 속성 세트들에서 성공적으로 매칭되는 상기 속성 요소들에 대응하는 구독 조건 세트들을 교차(intersecting)함으로써 통합 구독 조건(unified subscription condition)을 획득하도록 구성되는, 계산 모듈;
상기 통합 구독 조건에 대응하는 속성 세트를 상기 제2 속성 세트와 매칭함으로써 매칭 결과를 획득하도록 구성되는, 매칭 모듈; 및
상기 제2 속성 세트가 상기 통합 구독 조건에 대응하는 상기 속성 세트와 성공적으로 매칭된다고 나타내는 상기 매칭 결과에 응답하여 상기 디바이스 데이터를 클라이언트로 전송하도록 구성되는, 제2 전송 모듈을 더 포함한다.
일부 실시예들에서, 상기 계산 모듈은 상기 제1 속성 세트의 상기 속성 요소 세트에 대응하는 이진 벡터 세트가 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터와 성공적으로 매칭되는 경우, 상기 제1 속성 세트들에서 성공적으로 매칭되는 상기 속성 요소들에 대응하는 상기 구독 조건 세트들을 교차함으로써 상기 통합 구독 조건을 획득하도록 구성된다.
일부 실시예들에서, 상기 제1 속성 세트의 상기 속성 요소 세트는 모델, 디바이스, 및 측정 지점(measurement point) 중 적어도 하나이다.
다른 측면에서, 컴퓨터 디바이스가 제공된다. 상기 컴퓨터 디바이스는 프로세서 및 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하는 메모리를 포함한다. 상기 프로세서에 의해 로드 및 실행될 때, 상기 적어도 하나의 명령어, 상기 적어도 하나의 프로그램, 상기 코드 세트, 또는 상기 명령어 세트는 상기 프로세서가 사물 인터넷에서의 구독 데이터 푸시 방법을 수행하도록 한다.
다른 측면에서, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체가 제공된다. 컴퓨터 디바이스의 프로세서에 의해 로드 및 실행될 때, 상기 적어도 하나의 명령어, 상기 적어도 하나의 프로그램, 상기 코드 세트, 또는 상기 명령어 세트는 상기 컴퓨터 디바이스가 사물 인터넷에서의 구독 데이터 푸시 방법을 수행하도록 한다.
본 개시에 따른 기술적 솔루션들은 다음과 같은 유익한 효과들을 달성할 수 있다.
구독 조건 세트가 수신될 때, 구독 조건 세트는 제1 속성 세트로 파싱되고, 디바이스 데이터가 획득되고 제1 속성 세트의 제1 속성 요소 세트와 속성 요소들의 동일한 유형을 가지는 제2 속성 세트로 파싱된다. 그런 다음, 제1 속성 세트의 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서로 하나씩 제2 속성 세트의 속성 요소들에 대해 블룸 필터링이 수행되고, 제2 속성 세트의 속성 요소들 중 하나의 블룸 필터 결과가 제1 속성 세트의 대응하는 속성 요소 세트와의 미스매치를 나타내는 경우, 제2 속성 세트의 다른 속성 요소들에 대한 블룸 필터링이 중지된다. 이 지점에서, 디바이스 데이터를 획득하는 단계가 복귀된다(returned). 이 방식으로, 구독 데이터를 푸시하는 프로세스 동안 속성 요소들에 따라 구독 조건 세트와 디바이스 데이터의 매칭이 수행되어, 하나의 속성 요소가 구독 조건 세트 충족에 실패하는 경우 디바이스 데이터의 매칭이 중지되어, 구독 서버의 매칭 자원 낭비를 줄이고 따라서 구독 서버의 매칭 효율을 개선할 수 있다.
전술한 일반적인 설명 및 다음의 상세한 설명 모두는 예시적이고 설명적일 뿐, 본 개시를 제한하도록 의도되지 않음이 이해되어야 한다.
본 명세서의 도면들은 본 명세서에 통합되고 그 일부를 구성한다. 도면들은 본 개시와 일치하는 실시예들을 도시하고 본 개시의 원리를 설명하기 위해 명세서와 함께 사용된다.
도 1 내지 도 6은 블룸 필터의 작업 흐름의 개략도이고;
도 7은 본 개시의 예시적인 일 실시예에 따른 사물 인터넷에서의 구독 데이터 푸시 방법의 흐름도이고;
도 8은 본 개시의 예시적인 일 실시예에 따른 사물 인터넷에서의 구독 데이터 푸시 방법의 흐름도이고;
도 9는 본 개시의 일 실시예에 따른 복수의 구독 조건들 하에서 서로 다른 속성 요소들의 속성 값들에 대해 해시 연산을 수행한 이후 대응하는 이진 벡터의 개략도이고;
도 10은 본 개시의 예시적인 일 실시예에 따른 사물 인터넷에서의 구독 데이터 푸시 장치의 블록도이고; 및
도 11은 본 개시의 예시적인 일 실시예에 따른 컴퓨터 디바이스의 개략적인 블록도이다.
도 1 내지 도 6은 블룸 필터의 작업 흐름의 개략도이고;
도 7은 본 개시의 예시적인 일 실시예에 따른 사물 인터넷에서의 구독 데이터 푸시 방법의 흐름도이고;
도 8은 본 개시의 예시적인 일 실시예에 따른 사물 인터넷에서의 구독 데이터 푸시 방법의 흐름도이고;
도 9는 본 개시의 일 실시예에 따른 복수의 구독 조건들 하에서 서로 다른 속성 요소들의 속성 값들에 대해 해시 연산을 수행한 이후 대응하는 이진 벡터의 개략도이고;
도 10은 본 개시의 예시적인 일 실시예에 따른 사물 인터넷에서의 구독 데이터 푸시 장치의 블록도이고; 및
도 11은 본 개시의 예시적인 일 실시예에 따른 컴퓨터 디바이스의 개략적인 블록도이다.
이제 예시적인 실시예들을 상세히 참조하여, 그 예시들은 첨부 도면에 도시되어 있다. 다음의 설명은 다른 도면에서 동일한 번호들이 달리 표시되지 않는 한 동일하거나 유사한 요소들을 나타내는 첨부 도면을 참조한다. 예시적인 실시예들의 다음의 설명에서 제시되는 실시예들은 본 개시와 일치하는 모든 실시예들을 나타내는 것은 아니다. 대신, 그들은 첨부된 청구범위에 인용된 본 개시와 관련된 측면들과 일치하는 장치들 및 방법들의 예시들일 뿐이다.
본 개시에서 사용된 용어 "여러(several)"는 수적으로 하나 이상을 의미하고, 용어 "복수(a plurality of)"는 수적으로 둘 이상을 의미하고, 용어 "및/또는"은 연관된 대상들 사이의 연관 관계를 설명하고 세 가지 관계들이 존재할 수 있음을 나타낸다. 예를 들어, A 및/또는 B는 A만이 존재하고, A 및 B가 동시에 존재하고, B만이 존재하는 세 가지 경우를 나타낼 수 있다. 또한, 문자 "/"는 일반적으로 이전 및 이후 연관 대상들 사이에 "또는' 관계가 존재함을 나타낸다.
사물 인터넷 기술의 대규모 대중화로, 구독 조건을 푸시하는 프로세스 동안 구독 조건의 정확성 및 구독 서버에서의 데이터 매칭에 대한 요구가 높아지고 있다. 본 개시는 사물 인터넷에서 구독 데이터를 푸시하는 방법을 제공하며, 이는 구독 서버의 매칭 자원 낭비를 줄여 구독 서버의 매칭 효율을 개선할 수 있다. 이해의 편의를 위해, 이하 본 개시와 관련된 여러 용어들이 설명된다.
1) 사물 인터넷(IoT)
IoT는 인터넷과 같은 정보 전달자(carriers) 및 전통적인 통신망에 기초하여 모든 일반 대상들(objects)이 연결되는 독립적인 기능을 가지도록 하는 네트워크이며, 주로 운송 및 물류, 산업 제조, 헬스케어, 스마트 환경(가정, 사무실, 또는 공장) 등에 적용 가능하다. 따라서, IoT는 시장에서 큰 전망을 가진다.
2) 블룸 필터(Bloom filter)
블룸 필터는 매우 긴 이진 벡터 및 일련의 랜덤 매핑 함수들로 구성되고, 요소가 세트(set)에 있는지 여부를 검색하기(retrieve) 위해 사용될 수 있다. 블룸 필터는 흔한 알고리즘보다 공간 효율이 높고 쿼리 시간이 짧다는 데에 장점이 있고, 단점은 블룸 필터가 특정 오인식률(misrecognition rate)(즉, 블룸 필터가 세트에 요소가 있지 않다는 사실에 모순되게 세트에 요소가 존재함을 보고할 수 있음을 의미하는, 거짓양성(false positives)) 및 삭제 어려움을 가진다는데 있지만, 인식 오류 상황은 야기하지 않는다(즉, 블룸 필터가 요소가 세트에 있지 않은 경우 세트에 요소가 존재함을 보고하지 않아, 과소보고를 방지함을 의미하는, 거짓음성(false negatives)).
도 1 내지 도 6을 참조하면, 블룸 필터의 작업 흐름의 개략도가 예시된다. 도 1 내지 도 6에 도시된 바와 같이, 자료 위치 주소(URL)을 예로 들면, URL에 대해 수행되는 블룸 필터링은 다음과 같을 수 있다.
(1) 제1, 제2, 및 제3 URL을 필터 조건들로 취함으로써, 세 가지 서로 다른 해시(Hash) 함수들에 따라 세 가지 서로 다른 해시 값들이 각각 생성될 수 있다.
URL a, URL b, 및 URL c에 대한 해시 연산(Hash operation)을 수행하는 개략도인 도 1 내지 도 3에 도시된 바와 같이, 세 개의 서로 다른 해시 함수들은 각각 해시 A, 해시 B, 및 해시 C이다. 또한, URL a에 대응하는 세 개의 해시 값들은 4, 16, 및 8이고, URL b에 대응하는 세 개의 해시 값들은 9, 11, 및 7이고, URL c에 대응하는 해시 값들은 3, 15, 및 10이다.
(2) 필터 조건은 빈 비트맵 세트에 매핑된다.
도 4는 빈 비트맵 세트를 도시한다. URL a에 대응하는 세 개의 해시 값들은 4, 16, 및 8이므로, 비트맵 세트에서 4, 16, 및 8의 대응하는 위치는 1로 판단되어(judged), 4, 16, 및 8의 대응하는 위치는 1로 설정된다. URL b에 대응하는 세 개의 해시 값들은 9, 11, 및 7이므로, 비트맵 세트에서 9, 11, 및 7에 대응하는 위치는 1로 판단되어, 9, 11, 및 7의 대응하는 위치는 1로 설정된다. URL c에 대응하는 세 개의 해시 값들은 3, 15, 및 10이므로, 비트맵 세트에서 3, 15, 및 10에 대응하는 위치는 1로 판단되어, 3, 15, 및 10의 대응하는 위치는 1로 설정된다. 도 5는 설정 완료 이후 비트맵 세트를 도시한다.
(3) 블룸 필터에 제4 URL이 추가될 때, 동일한 블룸 필터 조건을 가진 세 개의 해시 함수들에 따라 제4 URL에 대해 해시 연산이 수행되어 세 개의 서로 다른 해시 값들을 각각 생성한다.
도 6에 도시된 바와 같이, 제4 URL x에 대응하는 해시 값들ㅇ느 4, 16, 및 8이다.
(4) 설정 이후 비트맵 세트에서 제4 URL의 해시 값들에 대응하는 위치가 1인지 아닌지 여부가 판단된다. 세 개의 값들의 위치들이 동시에 1인 경우, URL이 중복(duplicate) URL이라고 결정되고; 세 개의 값들의 위치들이 동시에 1이 아닌 경우, URL이 중복 URL이 아니라고 결정된다.
도 6에 도시된 제4 URL x에 의해 생성된 세 개의 해시 값들 4, 16, 및 8을 도 5의 비트맵 세트에 대응하도록 만듦으로써, 4, 16, 및 8의 위치들이 동시에 1인 경우, 도 6에 도시된 URL x가 중복 URL이고, URL x는 URL a와 중복되는 것으로 결정된다.
제4 URL이 중복 URL이 아닌 것으로 결정될 때, 1로 설정되지 않은 비트맵 세트의 URL의 세 개의 해시 값들의 대응하는 위치들이 1로 설정되고 다음 URL에 대해 블룸 필터링을 수행하기 위한 다음 블룸 필터 조건으로 간주된다(taken).
비트맵 세트의 크기는 전술한 도면들에 도시된 세트의 크기에 제한되지 않고, 비트맵 세트의 각각의 위치에 대응하는 크기는 1비트이다. 사용자는 서로 다른 필요들에 따라 대응하는 설정을 할 수 있으며, 1로 설정하는(set-to-1) 연산(operation)은 비트맵 세트의 각각의 위치에 대해 한 번만 수행될 수 있다.
일부 실시예들에서, 블룸 필터는 구독 데이터가 구독 조건을 충족하는지 또는 충족하지 않는지 여부를 판단하도록 구성된다. 구독 조건은 속성 세트들로 나뉘며, 속성 세트들은 해시 연산을 수행하기 위한 블룸 필터 조건으로 간주되어 비트맵 세트에 매핑된다. 여기서, 서로 다른 속성들에 대응하는 해시 연산에 채택된 해시 알고리즘은 동일할 수도 있고 아닐 수도 있다. 구독 데이터는 구독 조건에 대응하여 새로이 속성 세트들로 나뉘고, 해시 연산이 구독 조건의 서로 다른 속성들에 대해 수행되는 해시 연산에 대응하여 채택된 해시 알고리즘에 따라 구독 데이터의 서로 다른 속성들에 대해 수행된다. 그런 다음 비트맵 세트의 동일한 구독 데이터의 서로 다른 속성들에 대한 해시 값들에 대응하는 위치들이 모두 1로 설정되는지 또는 설정되지 않는지 여부에 따라 구독 데이터가 구독 조건을 충족하는지 또는 충족하지 않는지 여부가 판단된다. 비트맵 세트의 동일한 구독 데이터의 서로 다른 속성들에 대한 해시 값들에 대응하는 모든 위치들이 1로 설정되는 경우, 구독 데이터는 구독 조건을 충족하고, 비트맵 세트의 동일한 구독 데이터의 서로 다른 속성들에 대한 해시 값들에 대응하는 모든 위치들이 1로 설정된 것이 아닌 경우, 구독 데이터는 구독 조건 충족에 실패한다.
도 7을 참조하면, 본 개시의 예시적인 일 실시예에 따른 IoT에서 구독 데이터를 푸시하기 위한 방법의 흐름도가 예시된다. IoT에서의 구독 데이터 푸시 방법이 구독 서버에 의해 수행된다. 도 7에 도시된 바와 같이, 방법은 다음 단계들을 포함할 수 있다.
단계 710에서, 구독 조건 세트 수신에 응답하여 구독 조건 세트가 제1 속성 세트로 파싱된다. 제1 속성 세트는 적어도 하나의 속성 요소 세트를 포함하고, 구독 조건 세트는 적어도 하나의 구독 조건을 포함한다.
구독 조건은 구독 서버에서 구독 데이터를 필터링하기 위한 맞춤형(customized) 조건을 의미한다. 구독 조건은 사용자가 맞춤형 조건을 구독 서버에 입력함으로써 정의될 수 있고, 또는 구독 서버에서 레이블 제어(label control)를 제어함으로써 사용자에 의해 정의될 수 있다.
일부 실시예들에서, 가능한 상황에서, 클라이언트는 서치 박스(search box)를 가질 수 있고, 사용자는 클라이언트에 연결된 외부 디바이스에 의해 텍스트를 입력하여 맞춤형 조건을 구독 서버로 전송할 수 있다. 대안적으로, 클라이언트가 음성 인식 기능을 가진다는 전제 하에, 사용자는 음성 입력에 의해 맞춤형 조건을 구독 서버로 전송할 수 있다. 대안적으로, 클라이언트는 구독 데이터를 필터링하기 위한 레이블 제어를 제공받을 수 있다. 예를 들어, 모델 a, 디바이스 B, 또는 측정 지점 C와 같은 레이블 제어들은 구독 서버의 터치 인터페이스에 표시될 수 있으며, 레이블 제어들은 대응하는 구독 데이터의 설명을 포함하여 사용자가 단일 선택 또는 다중 선택에 의해 맞춤형 조건을 구독 서버에 전송할 수 있다.
일부 실시예들에서, 구독 조건은 적어도 하나의 속성을 필터링하기 위한 서브-구독 조건을 포함할 수 있다. 예를 들어, 사용자에 의해 입력된 맞춤형 조건은 "IoT 기능이 있는 전등"이다. 맞춤형 조건은 구독 서버에서 서로 다른 속성 세트들로 파싱될 수 있고, 속성 세트는 전등을 식별하는 일련 번호, 전등에 대응하는 모델, 모델에서 대응하는 측정 지점들 또는 기타 관련 콘텐츠일 수 있다. 속성 세트의 서로 다른 속성 요소들에 대해, 대응하는 서브-구독 조건들이 정의되어 서로 다른 속성 요소들을 설명하거나 제한한다. 예를 들어, "IoT 기능이 있는 전등"의 파싱된 조건에 대응하는 측정 지점 A는 전등 모델의 전류 또는 전압을 설명하기 위한 속성 값들을 가질 수 있다.
일부 실시예들에서, 구독 조건 세트를 파싱하는 프로세스에서, 구독 조건 세트의 각각의 구독 조건은 대응하는 파싱 결과와 연관될 것이다. 즉, 각각의 구독 조건은 그에 대응하는 제1 속성 서브세트(subset)를 가지고, 제1 속성 서브세트는 제1 속성 세트에 있다. 예를 들어, 구독 조건 1은 그에 대응하는 제1 구독 서브세트 1을 가질 수 있고, 제1 속성 서브세트 1은 모델 1, 디바이스 1, 측정 지점 1 등과 같은 대응하는 속성 요소들을 포함할 수 있다.
단계 720에서, 디바이스 데이터가 획득되고, 디바이스 데이터는 구독 서버에 저장된다.
구독 서버는 생성된 디바이스 데이터를 구독 서버로 전송할 수 있는 데이터 생성 디바이스에 연결된다. 구독 조건을 수신하면, 구독 서버는 내부에 저장된 디바이스 데이터로부터 디바이스 데이터를 추출할 수 있다.
단계 730에서, 디바이스 데이터는 제2 속성 세트로 파싱된다. 제2 속성 세트의 속성 요소들은 제1 속성 세트의 속성 요소 세트와 동일한 유형이다.
디바이스 데이터가 획득된 이후, 디바이스 데이터는 구독 조건의 파싱 규칙에 따라 파싱될 수 있다. 예를 들어, 구독 조건이 디바이스, 모델 및 측정 지점의 세 개의 속성 요소들로 구성되는 속성 세트로 파싱되는 경우, 데이터 간의 비교가능성이 보장될 수 있도록, 디바이스 데이터 또한 동일한 파싱 규칙에 따라 파싱될 수 있고 따라서 디바이스, 모델 및 측정 지점의 세 개의 속성 요소들로 구성되는 속성 세트로 파싱될 수 있다.
단계 740에서, 제1 속성 세트의 제1 속성 요소를 필터 조건으로 취함으로써 제2 속성 세트의 속성 요소들에 대해 미리 결정된 순서대로 하나씩 블룸 필터링이 수행된다.
프로세스는 제1 속성 세트의 속성 요소 세트의 속성 값들에 기초하여 제2 속성 세트의 속성 요소들의 속성 값들에 대해 미리 결정된 순서대로 하나씩 블룸 필터링이 수행되고, 제2 속성 세트의 이전 속성 요소들의 블룸 필터링 결과가 성공적인 매칭을 나타낼 때, 다음 속성 요소들의 블룸 필터링이 수행되는 것일 수 있다. 예를 들어, 미리 결정된 매칭 순서가 모델, 디바이스, 및 측정 지점인 경우, 구독 조건의 속성 세트에서 모델의 속성 값들이 먼저 필터 조건으로 취해져 디바이스 데이터의 속성 세트에 있는 모델의 속성 값들에 대해 블룸 필터링이 수행될 수 있다. 모델의 속성 값들의 블룸 필터링 결과가 성공적인 매칭을 나타낼 때, 블룸 필터링이 구독 조건의 속성 세트의 디바이스의 속성 값들을 필터 조건으로 취함으로써 디바이스 데이터의 속성 세트의 디바이스의 속성 값들에 대해 수행된다. 디바이스의 속성 값들의 블룸 필터링 결과가 성공적인 매칭을 나타낼 때, 구독 조건의 속성 세트의 측정 지점의 속성 값들이 필터 조건으로 취해져 측정 지점의 속성 값들에 대해 블룸 필터링이 수행될 수 있다.
단계 750에서, 제2 속성 세트의 속성 요소들 중 하나의 블룸 필터링 결과가 대응하는 제1 속성 세트의 속성 요소 세트와의 미스매치를 나타내는 경우, 제2 속성 세트의 다른 속성 요소들에 대한 블룸 필터링이 중지된다.
디바이스 데이터의 매칭 프로세스 동안, 속성 요소들의 속성 값들의 블룸 필터링 결과가 대응하는 구독 조건 세트의 속성 요소들의 속성 값들과의 미스매치를 나타내는 한, 디바이스 데이터가 구독 조건 충족에 실패하는 것으로 결정될 수 있으며 다른 속성 요소들의 속성 값들에 대해 블룸 필터링을 수행하는 것은 의미가 없다. 따라서, 속성 요소들의 속성 값들의 블룸 필터링 결과가 구독 조건 세트의 속성 요소들의 속성 값들과의 미스매치를 나타낼 때, 다른 속성 요소들에 대한 후속(subsequent) 블룸 필터링이 중지될 수 있어, 매칭 프로세스에서 매칭 자원의 낭비를 줄일 수 있다.
단계 760에서, 프로세스는 디바이스 데이터를 획득하는 단계로 복귀한다.
구독 데이터 푸시 프로세스 동안, 특정 디바이스 데이터가 구독 조건 세트의 임의의 구독 조건 충족에 실패하는 것으로 결정될 때, 구독 조건 세트의 적어도 하나의 구독 조건을 충족하는 구독 서버의 디바이스 데이터의 적어도 하나의 조각을 획득하기 위해, 디바이스 데이터를 구독 조건과 매칭하는 것을 중지하고 다음 디바이스 데이터를 구독 조건과 매칭하기 시작할 필요가 있다.
일부 실시예들에서, 구독 서버의 디바이스 데이터가 구독 조건 세트의 구독 조건을 충족하지 않는 경우, 구독 조건이 불법인 것으로 판단될 수 있고, 판단 결과가 구독 상태를 전송하는 클라이언트에 피드백 될 수 있다.
요약하면, 본 개시의 실시예에 의해 제공되는 IoT에서의 구독 데이터 푸시 방법에 따르면, 구독 조건 세트가 수신될 때, 구독 조건 세트가 제1 속성 세트로 파싱되고, 디바이스 데이트가 획득되고 제1 속성 세트의 속성 요소 세트와 동일한 유형의 속성 요소들을 가지는 제2 속성 세트로 파싱된다. 그런 다음, 블룸 필터링이 제1 속성 세트의 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서대로 하나씩 제2 속성 세트의 속성 요소들에 대해 수행되고, 제2 속성 세트의 속성 요소들 중 하나의 블룸 필터 결과가 대응하는 제1 속성 세트의 속성 요소 세트와의 미스매치를 나타내는 경우 제2 속성 세트의 다른 속성 요소들에 대해 블룸 필터링이 중지된다. 이 지점에서, 디바이스 데이터를 획득하는 단계가 복귀된다(returned). 이 방식으로, 구독 데이터를 푸시하는 프로세스 동안 속성 요소들에 따라 구독 조건 세트와 디바이스 데이터의 매칭이 수행되어, 하나의 속성 요소가 구독 조건 세트 충족에 실패하는 경우 디바이스 데이터의 매칭이 중지되어, 구독 서버의 매칭 자원 낭비를 줄이고 따라서 구독 서버의 매칭 효율을 개선할 수 있다.
도 8을 참조하면, 본 개시의 예시적인 일 실시예에 따른 IoT에서의 구독 데이터 푸시 방법의 흐름도가 예시된다. IoT에서 구독 데이터를 푸시하기 위한 방법은 구독 서버에 의해 수행된다. 도 8에 도시된 바와 같이, 방법은 다음의 단계들을 포함할 수 있다.
단계 801에서, 구독 조건 세트 수신에 응답하여 구독 조건 세트가 제1 속성 세트로 파싱된다. 제1 속성 세트는 적어도 하나의 속성 요소 세트를 포함하고, 구독 조건 세트는 적어도 하나의 구독 조건을 포함한다.
일부 실시예들에서, 제1 속성 세트의 속성 요소 세트는 모델, 디바이스, 및 측정 지점 중 적어도 하나이다. 각각의 속성 요소 세트는 구독 조건 세트의 모든 구독 조건들을 파싱함으로써 획득된 대응하는 속성 요소들을 대응하여 포함한다. 예를 들어, 모델 세트는 구독 조건 세트의 모든 구독 조건들을 파싱함으로써 획득된 모델 요소들을 포함할 수 있다.
일부 실시예들에서, 각각의 구독 조건은 대응하는 구독자 계정(subscriber account)을 가지고, 구독자 계정은 대응하는 구독 조건을 충족하는 디바이스 데이터를 구독자 계정으로 전송하도록 명령하기 위해 사용된다.
일부 실시예들에서, IoT에서 구독 데이터를 푸시하는 프로세스 동안, 구독 서버는 동일한 시간 주기(time period)에 사용자에 의해 전송된 복수의 구독 조건들을 수신할 수 있고, 구독 조건들의 수가 1보다 클 때, 구독 서버는 복수의 구독 조건들을 동시에 파싱하여 제1 속성 세트를 형성하며, 하나의 구독 조건은 하나의 구독 계정에 대응한다.
단계 802에서, 디바이스 데이터가 획득되고, 디바이스 데이터가 구독 서버에 저장된다.
단계 803에서, 디바이스 데이터가 제2 속성 세트로 파싱된다. 제2 속성 세트의 속성 요소들은 제1 속성 세트의 속성 요소 세트와 동일한 유형이다.
단계 804에서, 제1 속성 세트의 속성 요소 세트를 필터 조건으로 취함으로써 제2 속성 세트의 속성 요소들에 대해 미리 결정된 순서대로 하나씩 블룸 필터링이 수행된다. 단계는 다음과 같은 내용을 포함할 수 있다.
1) 제1 속성 세트의 속성 요소 세트에 대응하는 이진 벡터 세트를 획득하기 위해 제1 속성 세트의 속성 요소들의 속성 값들에 대해 해시 연산이 수행된다. 프로세스는 다음의 단계들을 포함할 수 있다.
단계 810에서, 제1 속성 세트의 속성 요소 세트에 개별적으로 대응하는 연산 결과가 제1 속성 세트의 속성 요소 세트의 속성 값들에 대해 해시 연산을 수행함으로써 획득된다.
단계 820에서, 빈 비트맵 세트가 설정된다.
단계 830에서, 제1 속성 세트의 속성 요소 세트에 각각 대응하는 연산 결과에 대응하는 비트맵 세트의 위치를 1로 설정함으로써 제1 속성 세트의 속성 요소 세트에 대응하는 이진 벡터.
1로 설정하는 연산(set-to-1 operation)이 각각의 위치에 대해 한 번만 수행될 수 있으므로, 비트맵 세트에서 1로 설정된 위치들은 해시 연산의 특성들로 인해 복수의 구독 조건들에 대응할 수 있다. 따라서, 1로 설정된 위치 및 구독 조건 사이의 상관관계(correlation)를 설립할 수 있으며, 이는 1로 설정된 위치 및 속성 요소 사이의 상관관계를 먼저 설립함으로써 구현될 수 있다.
2) 해시 연산이 제2 속성 세트의 속성 요소들에 대응하는 이진 벡터를 획득하기 위해 제2 속성 세트의 속성 요소들의 속성 값들에 대해 수행된다.
제2 속성 세트의 속성 요소들에 대응하는 이진 벡터를 획득하는 프로세스는 단계 810 내지 단계 830를 참조할 수 있으며, 이는 여기서 더 설명되지 않는다.
속성 요소들의 속성 값들에 대해 해시 연산을 수행하는 프로세스는 도 1 내지 도 6에 도시된 블룸 필터의 작업 흐름을 참조할 수 있다. 해시 연산 동안, 동일한 디바이스 데이터 또는 동일한 구독 조건의 서로 다른 속성 요소들의 속성 값들에 대해 해시 연산을 수행하기 위한 해시 함수는 동일하거나 동일하지 않을 수 있는 반면, 디바이스 데이터 및 구독 조건의 대응하는 속성 요소들의 속성 값들에 대해 해시 연산을 수행하기 위한 해시 함수는 동일할 필요가 있다. 예를 들어, 구독 조건의 파싱이 디바이스, 모델, 및 측정 지점의 세 개의 속성 요소들을 포함하는 경우, 대응하는 디바이스 데이터의 파싱은 또한 디바이스, 모델, 및 측정 지점의 세 개의 속성 요소들을 포함할 수 있다. 속성 요소들에 대해 블룸 필터링을 수행하는 프로세스 동안, 구독 조건의 세 개의 속성 요소들의 속성 값들에 대해 해시 연산을 수행하기 위한 해시 함수들이 모두 해시 A일 때, 디바이스 데이터의 세 개의 속성 요소들의 속성 값들에 대한 해시 연산을 수행하기 위한 모든 해시 함수들 또한 해시 A이어야 하고; 구독 조건의 모델, 디바이스, 및 측정 지점인 속성 요소들의 속성 값들에 대해 해시 연산을 수행하기 위한 해시 함수들이 해시 A, 해시 B, 및 해시 C일 때, 디바이스 데이터의 모델, 디바이스, 및 측정 지점인 속성 요소들의 속성 값들에 대해 해시 연산을 수행하기 위한 해시 함수들 또한 해시 A, 해시 B, 및 해시 C이어야 한다.
제1 속성 세트의 속성 요소 세트에 대응하는 이진 벡터 세트가 제2 속성 세트의 속성 요소들에 대응하는 이진 벡터와 개별적으로 매칭된다.
일부 실시예들에서, 매칭 프로세스 동안, 이진 벡터 및 디바이스 데이터의 속성 요소들에 대응하는 이진 벡터의 양적 곱(quantitative product_이 계산될 수 있고, 디바이스 데이터의 속성 요소들이 구독 조건을 충족하는지 여부가 계산 결과에 따라 결정된다. 계산 결과가 1일 때, 디바이스 데이터의 속성 요소가 구독 조건을 충족하는 것으로 결정되고; 계산 결과가 0일 때, 디바이스 데이터의 속성 요소가 구독 조건 충족에 실패하는 것으로 결정된다.
일부 실시예들에서, 구독 조건들의 수가 1보다 클 때, 본 개시의 실시예에 따라 복수의 구독 조건들의 서로 다른 속성 요소들의 속성 값들에 대해 해시 연산을 수행한 이후 대응하는 이진 벡터의 개략도인 도 9가 참조된다. 도 9에 도시된 바와 같이, 비트맵 세트의 크기는 64비트이다. 해시 연산 이후 도 9의 구독 조건 세트의 속성 요소들의 속성 값들에 대해, 출력으로서 해시 값은 0 내지 63의 정수 범위 내의 값이고, 해시 값에 대응하는 비트맵 세트의 위치는 1로 설정된다.
도 9에 도시된 바와 같이, 전체 구독 조건의 모델 속성에 대응하는 이진 벡터는 [1,0,1,0,0,1,1,0,0,1...1,0]이고, 디바이스 데이터의 모델 속성에 대응하는 이진 벡터는 [0,0,1,0,0,0,0,0,0,0...0,0]이다. 따라서 그 사이에서 계산되는 양적 곱은 [1,0,1,0,0,1,1,0,0,1??1,0]Х[0,0,1,0,0,0,0,0,0,0??0,0]=1일 것이다.
디바이스 데이터 및 전체 구독 조건 사이에 매칭된 바와 같이 모델에 대응하는 이진 벡터들의 곱 결과가 1이므로, 디바이스 데이터의 모델의 속성 값들이 구독 조건을 충족하는 것으로 결정된다.
디바이스 데이터의 모델 속성에 대응하는 이진 벡터가 [0,1,0,0,0,0,0,0,0,0...0,0]로 설정되는 경우, 계산되는 양적 곱은 [1,0,1,0,0,1,1,0,0,1??1,0]Х[0,1,0,0,0,0,0,0,0,0??0,0]=0일 것이다.
디바이스 데이터 및 전체 구독 조건 사이에 매칭된 바와 같이 모델 속성에 대응하는 이진 벡터들의 곱 결과가 0이므로, 디바이스 데이터의 모델의 속성 값들이 구독 조건 충족에 실패하는 것으로 결정된다.
매칭 결과에 따라, 단계 805 또는 단계 807이 수행된다.
단계 805에서, 제2 속성 세트의 속성 요소들 중 하나의 불룸 필터링 결과가 대응하는 제1 속성 세트의 속성 요소 세트와의 미스매치를 나타내는 경우, 제2 속성 세트의 다른 속성 요소들에 대해 블룸 필터링이 중지된다.
일부 실시예들에서, 프로세스는: 제2 속성 세트의 속성 요소들에 대응하는 이진 벡터들 중 하나가 제1 속성 세트의 속성 요소들에 대응하는 이진 벡터 세트들 중 하나와 매칭에 실패하는 경우, 제2 속성 세트의 속성 요소들에 대한 매칭을 중지하는 단계를 포함할 수 있고, 그 다음 단계 806을 실행한다.
단계 806에서, 프로세스는 디바이스 데이터를 획득하는 단계로 복귀한다.
단계 807에서, 제2 속성 세트의 속성 요소들의 블룸 필터링 결과가 제1 속성 세트의 속성 요소 세트와 대응하는 매치를 나타내는 경우 디바이스 데이터가 클라이언트에 전송된다. 클라이언트는 구독 조건을 전송하기 위한 단말이다.
구독 조건들의 수가 1일 때, 제2 속성 세트의 속성 요소들의 블룸 필터링 결과가 제1 속성 세트의 속성 요소 세트와의 매치를 나타낼 때 구독 서버는 구독 조건에 대응하는 클라이언트에 디바이스 데이터를 연속적으로 전송할 수 있고, 이는 또한 디바이스 데이터가 구독 조건과 성공적으로 매칭되는 것을 의미하고, 디바이스 데이터는 시간 경과에 따라 변화하는 데이터이다. 예를 들어, 구독 조건이 "태양광 모듈 모델에서 태양광 모듈 1의 태양광 전력 획득"일 때, 태양광 모듈 모델에서 태양광 모듈 1의 태양광 전력 값은 일사량(solar irradiance)의 영향으로 증가하거나 감소할 수 있고; 디바이스 데이터가 구독 조건과 성공적으로 매칭될 때, 구독 서버는 태양광 모듈 1에 의해 업로드된 태양광 전력 값을 클라이언트에 연속적으로 전송할 수 있다.
구독 조건들의 수가 1보다 클 때, 해시 함수에 의해 출력되는 것은 특정 범위 내의 정수이므로, 서로 다른 구독 조건들의 속성 요소들의 속성 값들에 대해 해시 연산을 수행함으로써 획득되는 해시 값들이 중복될 수 있으며, 이에 의해 제1 속성 세트의 하나의 속성 요소가 복수의 구독 조건들에 대응할 수 있다. 예를 들어, 해시 함수는: H (x) =h와 같이 정의될 수 있다.
H는 미리 결정된 해시 함수를 나타내고, x는 가변 크기를 가지는 데이터를 나타내고, h는 고정된 길이에서 계산된 해시 값을 나타낸다.
해시 함수가 나머지 2를 취하는 함수일 때, 구독 조건 1의 모델 속성의 속성 값들은 13이고, 구독 조건 2의 모델 속성은 5이며, 이는: H (13) =1; H (5) =1와 같은 결과를 야기할 수 있다.
5에서 2의 나머지를 취한 결과는 1이며, 이는 13에서 2의 나머지를 취한 결과와 동일하다. 반면, 5는 13과 같지 않고, 이는 구독 조건 1이 구독 조건 2와 다름을 나타낸다. 또한, 해시 연산의 결과들이 모두 1이므로, 대응하는 비트맵 세트의 위치 1에서 결과가 모두 1로 설정된다. 그러나, 1로 설정하는 연산은 동일한 위치에서 한 번만 수행될 수 있으므로, 1로 설정하는 연산과 연관된 두 개의 구독 조건들은 위치 1에 존재한다. 따라서, 해시 연산 결과들의 충돌로 인해 야기되는 판단 결과의 부정확성을 피하기 위해 다음과 같은 단계들이 수행된다.
1) 제2 속성 세트의 속성 요소들의 블룸 필터링 결과가 제1 속성 세트의 속성 요소 세트와 대응하는 매치를 나타내는 경우, 통합 구독 조건이 각각의 제1 속성 세트에서 성공적으로 매칭되는 속성 요소들에 대응하는 구독 조건 세트들을 교차함으로써 획득된다.
일부 실시예들에서, 제1 속성 세트의 속성 요소 세트에 대응하는 이진 벡터 세트가 제2 속성 세트의 속성 요소들에 대응하는 이진 벡터와 성공적으로 매칭되는 경우, 각각의 제1 속성 세트에서 성공적으로 매칭된 속성 요소들에 대응하는 구독 조건 세트들이 통합 구독 조건을 획득하기 위해 교차된다.
각각의 구독 조건은 대응하는 구독 조건 마크(mark)를 가질 수 있다. 구독 조건 세트들이 교차될 때, 각각의 제1 속성 세트에서 성공적으로 매칭되는 속성 요소들에 대응하는 구독 조건 마크들이 획득될 수 있어, 통합 구독 조건에 대응하는 구독 조건 마크들이 제1 속성 세트들의 속성 요소들에 대응하는 구독 조건 마크들을 교차함으로써 획득될 수 있고, 이로써 통합 구독 조건을 획득할 수 있다.
2) 통합 구독 조건에 대응하는 속성 세트가 제2 속성 세트와 매칭되어 매칭 결과를 획득한다.
통합 구독 조건에 대응하는 속성 세트의 속성 요소들의 속성 값들이 제2 속성 세트의 속성 요소들의 속성 값들과 하나씩 매칭된다.
3) 제2 속성 세트가 통합 구독 조건에 대응하는 속성 세트와 성공적으로 매칭되는 것을 나타내는 매칭 결과에 응답하여 디바이스 데이터가 클라이언트에 전송된다. 클라이언트는 구독 조건을 전송하는 클라이언트이다.
일부 실시예들에서, 디바이스 데이터의 모델 속성의 속성 값들에 대응하는 이진 벡터 및 전체 구독 조건의 모델 속성에 대응하는 이진 벡터의 곱 결과가 1인 위치는 위치 0이고, 위치 0과 연관된 구독 조건들로 구성된 구독 조건 세트는 [구독 조건 1, 구독 조건 2]이고; 디바이스 벡터의 디바이스 속성의 속성 값들에 대응하는 이진 벡터 및 전체 구독 조건의 디바이스 속성에 대응하는 이진 벡터의 곱 결과가 1인 위치는 위치 2이고, 위치 2와 연관된 구독 조건들로 구성된 구독 조건 세트는 [구독 조건 3, 구독 조건 4]이고; 및 디바이스 벡터의 측정 지점 속성의 속성 값들에 대응하는 이진 벡터 및 전체 구독 조건의 측정 지점에 대응하는 이진 벡터의 곱 결과가 1인 위치는 위치 1이고, 위치 1과 연관된 구독 조건들로 구성된 구독 조건 세트는 [구독 조건 4, 구독 조건 2]이다. 상기의 세 개의 구독 조건 세트들을 교차함으로써, [구독 조건 2]의 세트로 통합 구독 조건이 획득될 수 있다.
그 다음, 통합 구독 조건에 대응하는 속성 세트는 제2 속성 세트와 매칭되고, 통합 구독 조건에 대응하는 사용자들의 수는 하나 이상일 수 있다. IoT의 환경에서, 서로 다른 사용자들이 동시에 서로 다른 구독 조건들을 입력하여 서로 다른 디바이스 데이터를 매칭하거나, 서로 다른 사용자들이 동일한 구독 조건을 입력하여 동일한 디바이스 데이터를 매칭할 수 있다. 또한, 서로 다른 사용자들에 의해 입력된 구독 조건들은 사용자의 계정에 대응할 수 있다. 따라서, 데이터 디바이스의 속성 세트 및 통합 구독 조건에 대응하는 속성 세트 사이의 매칭 결과가 성공적인 매칭을 나타낼 때, 구독 서버는 하나 서로 다른 구독 조건들에 대응하는 하나 이상의 계정들에 따라 대응하는 계정에 의해 나타나는 클라이언트에 디바이스 데이터를 전송할 수 있다.
요약하면, 본 개시의 실시예에 따른 IoT에서의 구독 데이터 푸시 방법에서, 구독 조건 세트가 수신될 때, 구독 조건 세트는 제1 속성 세트로 파싱되고, 디바이스 데이터가 획득되고 제1 속성 세트의 속성 요소와 동일한 유형의 속성 요소들을 가지는 제2 속성 세트로 파싱된다. 그런 다음, 블룸 필터링이 제1 속성 세트의 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서대로 하나씩 제2 속성 세트의 속성 요소들에 대해 수행되고, 제2 속성 세트의 속성 요소들 중 하나의 블룸 필터 결과가 대응하는 제1 속성 세트의 속성 요소 세트와의 미스매치를 나타내는 경우 제2 속성 세트의 다른 속성 요소들에 대해 블룸 필터링이 중지된다. 이 지점에서, 디바이스 데이터를 획득하는 단계가 복귀된다(returned). 이 방식으로, 구독 데이터를 푸시하는 프로세스 동안 속성 요소들에 따라 구독 조건 세트와 디바이스 데이터가 매칭되어, 하나의 속성 요소가 구독 조건 충족에 실패하는 경우 디바이스 데이터의 매칭이 중지되어, 구독 서버의 매칭 자원 낭비를 줄이고 따라서 구독 서버의 매칭 효율을 개선할 수 있다.
도 10을 참조하면, 본 개시의 예시적인 일 실시예에 따른 IoT에서 구독 데이터를 푸시하기 위한 장치의 블록도가 예시된다. 장치는 도 7 또는 도 8에 도시된 방법의 단계들의 전부 또는 일부 및 대응하는 실시예를 구현하기 위해 소프트웨어 형태의 데이터 검증 서버의 전부 또는 일부로서 실행될 수 있다. 도 10에 도시된 바와 같이, 장치는 제1 파싱 모듈(1010), 획득 모듈(1020), 제2 파싱 모듈(1030), 플룸 필터링 모듈(1040), 중지 모듈(1050), 및 복귀 모듈(1060)을 포함할 수 있다.
제1 파싱 모듈(1010)은 구독 조건 세트 수신에 응답하여 구독 조건 세트를 제1 속성 세트로 파싱하도록 구성되고, 제1 속성 세트는 적어도 하나의 속성 요소 세트를 포함한다.
획득 모듈(1020)은 디바이스 데이터를 획득하도록 구성되고, 디바이스 데이터는 구독 서버에 저장된다.
제2 파싱 모듈(1030)은 디바이스 데이터를 제2 속성 세트로 파싱하도록 구성되고, 제2 속성 세트의 속성 요소들은 제1 속성 세트의 속성 요소 세트와 동일한 유형이다.
블룸 필터링 모듈(1040)은 제1 속성 세트의 속성 요소 세트를 필터 조건으로 취함으로써 제2 속성 세트의 속성 요소들에 대해 미리 결정된 순서대로 하나씩 블룸 필터링을 수행하도록 구성된다.
중지 모듈(1050)은 제2 속성 세트의 속성 요소들 중 하나의 블룸 필터링 결과가 제1 속성 세트의 대응하는 속성 요소 세트와의 미스매치를 나타내는 경우 제2 속성 세트의 다른 속성 요소들에 대한 블룸 필터링을 중지하도록 구성된다.
복귀 모듈(1060)은 디바이스 데이터를 획득하는 단계로 복귀하도록 구성된다.
일부 실시예들에서, 블룸 필터링 모듈(1040)은 제1 계산 서브모듈 및 제2 계산 서브모듈을 포함한다.
제1 계산 서브모듈은 제1 속성 세트의 속성 요소들의 속성 값들에 대해 해시 연산을 수행함으로써 제1 속성 세트의 속성 요소 세트에 대응하는 이진 벡터 세트를 획득하도록 구성된다.
제2 계산 서브모듈은 제2 속성 세트의 속성 요소들의 속성 값들에 대해 해시 연산을 수행함으로써 제2 속성 세트의 속성 요소들에 대응하는 이진 벡터를 획득하도록 구성된다.
중지 모듈(1050)은 제2 속성 세트의 속성 요소들에 대응하는 이진 벡터들 중 하나가 제1 속성 세트의 속성 요소들에 대응하는 이진 벡터들 중 하나와 매칭에 실패하는 경우 제2 속성 세트의 다른 속성 요소들에 대한 블룸 필터링을 중지하도록 구성된다.
일부 실시예들에서, 구독 조건들의 수가 1인 경우, 장치는 제1 전송 모듈을 더 포함한다.
제1 전송 모듈은 제2 속성 세트의 속성 요소들의 블룸 필터링 결과가 제1 속성 세트의 속성 요소와 대응하는 매치를 나타내는 경우 클라이언트에 디바이스 데이터를 전송하도록 구성되고, 클라이언트는 구독 조건을 전송하기 위한 단말이다.
일부 실시예들에서, 구독 조건들의 수가 1보다 큰 경우, 장치는 계산 모듈, 매칭 모듈, 및 제2 전송 모듈을 더 포함한다.
계산 모듈은 제2 속성 세트의 속성 요소들의 블룸 필터링 결과가 제1 속성 세트의 속성 요소 세트와 대응하는 매치를 나타내는 경우 성공적으로 매칭된 속성 요소들에 대응하는 구독 조건 세트들을 교차함으로써 통합 구독 조건을 획득하도록 구성된다.
매칭 모듈은 통합 구독 조건에 대응하는 속성 세트를 제2 속성 세트와 매칭함으로써 매칭 결과를 획득하도록 구성된다.
제2 전송 모듈은 제2 속성 세트가 통합 구독 조건에 대응하는 속성 세트와 성공적으로 매칭됨을 나타내는 매칭 결과에 응답하여 클라이언트에 디바이스 데이터를 전송하도록 구성된다.
일부 실시예들에서, 계산 모듈은 제1 속성 세트의 속성 요소 세트에 대응하는 이진 벡터 세트가 제2 속성 세트의 속성 요소들에 대응하는 이진 벡터와 성공적으로 매칭되는 경우 제1 속성 세트들과 성공적으로 매칭되는 속성 요소들에 대응하는 구독 조건 세트들을 교차함으로써 통합 구독 조건을 획득하도록 구성된다.
일부 실시예들에서, 제1 속성 세트의 속성 요소 세트는 모델, 디바이스, 및 측정 지점 중 적어도 하나이다.
요약하면, 소프트웨어의 형태로 구독 서버의 전부 또는 일부로 구현되는 본 개시의 실시예에 따른 IoT에서의 구독 데이터 푸시 장치에서, 구독 조건 세트가 수신될 때, 구독 조건 세트는 제1 속성 세트로 파싱되고, 디바이스 데이터가 획득되고 제1 속성 세트의 속성 요소 세트와 동일한 유형의 속성 요소들을 가지는 제2 속성 세트로 파싱된다. 그런 다음, 블룸 필터링이 제1 속성 세트의 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서대로 하나씩 제2 속성 세트의 속성 요소들에 대해 수행되고, 제2 속성 세트의 속성 요소들 중 하나의 블룸 필터 결과가 대응하는 제1 속성 세트의 속성 요소 세트와의 미스매치를 나타내는 경우 제2 속성 세트의 다른 속성 요소들에 대해 블룸 필터링이 중지된다. 이 지점에서, 디바이스 데이터를 획득하는 단계가 복귀된다(returned). 이 방식으로, 구독 데이터를 푸시하는 프로세스 동안 속성 요소들에 따라 구독 조건 세트와 디바이스 데이터의 매칭이 수행되어, 하나의 속성 요소가 구독 조건 세트 충족에 실패하는 경우 디바이스 데이터의 매칭이 중지되어, 구독 서버의 매칭 자원 낭비를 줄이고 따라서 구독 서버의 매칭 효율을 개선할 수 있다.
도 11을 참조하면, 예시적인 일 실시예에 따른 컴퓨터 디바이스(1100)의 구조의 개략도가 예시된다. 컴퓨터 디바이스는 본 개시의 전술한 솔루션에서 언급된 구독 서버로 구현될 수 있다. 컴퓨터 디바이스(1100)는 중앙 처리 장치(CPU)(1101), 랜덤 액세스 메모리(RAM)(1102) 및 읽기 전용 메모리(ROM)(1103)을 포함하는 시스템 메모리(1104), 및 시스템 메모리(1104)와 중앙 처리 장치(1101)를 연결하는 시스템 버스(1105)를 포함한다. 컴퓨터 디바이스(1100)는 컴퓨터 내의 개별 디바이스들 사이의 정보 전송을 용이하게 하는 기본 입력/출력 시스템(I/O 시스템)(1106), 및 운영 체제(1113), 애플리케이션(1114), 및 기타 프로그램 모듈들(1115)을 저장하는 대용량 저장 장치(1107)를 더 포함한다.
기본 입력/출력 시스템(1106)은 정보를 표시하기 위한 디스플레이(1108) 및 사용자가 정보를 입력하기 위한 마우스 또는 키보드와 같은 입력 디바이스(1109)를 포함한다. 디스플레이(1108) 및 입력 디바이스(1109)는 모두 시스템 버스(1105)에 연결되는 입력 출력 컨트롤러(1110)를 통해 CPU(1101)에 연결된다. 기본 I/O 시스템(1106)은 키보드, 마우스, 또는 전자 스타일러스와 같은 복수의 다른 디바이스들로부터 입력을 수신 및 처리하기 위한 입력 출력 컨트롤러(1110)를 더 포함할 수 있다. 유사하게, 입력 및 출력 컨트롤러(1110)는 디스플레이 화면, 프린터, 또는 기타 유형의 출력 디바이스들을 더 제공한다.
대용량 저장 장치(1107)는 시스템 버스(1105)에 연결된 대용량 저장 컨트롤러(미도시)에 의해 CPU(1101)에 연결된다. 대용량 저장 장치(1107) 및 관련된 컴퓨터 판독 가능 매체들은 서버(1100)에 대한 비휘발성 저장장치를 제공한다. 즉, 대용량 저장 장치(1107)는 하드 디스크 또는 컴팩트 디스크 읽기 전용 메모리(CD-ROM) 드라이브와 같은 컴퓨터 판독 가능 매체(미도시)를 포함할 수 있다.
일반성의 손실 없이, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하기 위한 임의의 방법 또는 기술에 의해 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, 소거 및 프로그램 가능 읽기 전용 메모리(EPROM), 전기적으로 소거 및 프로그램 가능 읽기 전용 메모리(EEPROM), 플래시 메모리 또는 기타 솔리드 스테이트 저장 기술, 및 CD-ROM, 디지털 다목적 디스크(DVD), 또는 기타 광 저장 디바이스들, 또는 테이프 카세트, 자기 테이프, 디스크 저장장치 또는 기타 자기 저장 디바이스들을 포함한다. 당업자는 컴퓨터 저장 매체가 상기의 것들로 제한되지 않음을 이해할 것이다. 전술한 시스템 메모리(1104) 및 대용량 저장 장치(1107)는 집합적으로 메모리로 참조될 수 있다.
본 개시의 다양한 실시예들에 따르면, 컴퓨터 디바이스(1100)는 인터넷과 같은 네트워크를 통해 네트워크에 연결된 원격 컴퓨터에 의해 더 동작될(operated) 수 있다. 즉, 컴퓨터 디바이스(1100)는 시스템 버스(1105)에 연결된 네트워크 인터페이스 유닛(1111)에 의해 네트워크(1112)에 연결될 수 있거나, 네트워크 인터페이스 유닛(1111)에 의해 다른 유형의 네트워크들 또는 원격 컴퓨터 시스템들(미도시)에 연결될 수 있다.
메모리는 하나 이상의 프로그램들을 더 저장하고, 하나 이상의 프로그램들은 메모리에 저장되고, CPU(1101)에 의해 실행될 때, CPU(1101)가 도 7 또는 도 8에 도시된 방법의 단계들의 전부 또는 일부를 수행하도록 한다.
당업자는 위에서 설명된 하나 이상의 예시들에서, 본 개시의 실시예들에서 설명된 기능들이 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다는 것을 이해할 것이다. 기능들이 소프트웨어로 구현되는 경우, 컴퓨터 판독 가능 매체에 저장되거나 컴퓨터 판독 가능 매체에 하나 이상의 명령어들 또는 코드들로 전송될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하고, 통신 매체는 컴퓨터 프로그램을 한 장소로부터 다른 장소로 전송하는 것을 용이하게 하는 임의의 매체를 포함하고, 저장 매체는 일반 목적 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다.
본 개시의 실시예는 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체를 더 제공한다. 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트는, 컴퓨터 디바이스의 프로세서에 의해 로드 및 실행될 때, 컴퓨터 디바이스가 IoT에서의 구독 데이터 푸시 방법을 수행하도록 한다. 예를 들어, 컴퓨터 판독 가능 저장 매체는 ROM, RAM, CO-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 디바이스 등일 수 있다.
본 개시의 다른 실시예들은 본 개시의 명세서 및 실시의 고려로부터 당업자에게 명백하다. 본 개시는 본 개시의 일반적인 원리를 따르고 여기에 개시되지 않은 통상적인 지식 또는 일반적으로 사용되는 기술적 수단들을 포함하는 본 개시의 임의의 변형, 사용, 또는 개조를 포함하도록 의도된다. 명세서 및 실시예들은 단지 예시적인 것으로 간주되어야 하고, 본 개시의 범위 및 정신은 첨부된 청구범위의 적용을 받는다(subject to the appended claims).
본 개시는 위에서 설명되고 첨부 도면들에 예시된 정확한 구성으로 제한되지 않고, 본 개시의 범위로부터 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음이 이해될 것이다. 본 개시의 범위는 첨부된 청구범위에 의해서만 제한되는 것으로 의도된다.
1010: 제1 파싱 모듈
1020: 획득 모듈
1030: 제2 파싱 모듈
1040: 블룸 필터링 모듈
1050: 중지 모듈
1060: 반환 모듈
1020: 획득 모듈
1030: 제2 파싱 모듈
1040: 블룸 필터링 모듈
1050: 중지 모듈
1060: 반환 모듈
Claims (10)
- 사물 인터넷에서의 구독 데이터 푸시(pushing subscription data) 방법에 있어서,
상기 방법은 구독 서버에 의해 수행되고,
구독 조건 세트 수신에 응답하여 상기 구독 조건 세트를 제1 속성 세트(attribute set)로 파싱하는 단계(parsing) - 상기 제1 속성 세트는 적어도 하나의 속성 요소 세트를 포함하고, 상기 구독 조건 세트는 적어도 하나의 구독 조건을 포함함 -;
디바이스 데이터를 획득하는 단계 - 상기 디바이스 데이터는 상기 구독 서버에 저장됨 -;
상기 디바이스 데이터를 제2 속성 세트로 파싱하는 단계 - 상기 제2 속성 세트의 속성 요소들은 상기 제1 속성 세트의 상기 속성 요소 세트와 동일한 유형임 -;
상기 제1 속성 세트의 상기 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서로 하나씩 상기 제2 속성 세트의 상기 속성 요소들에 대해 블룸 필터링(Bloom filtering)을 수행하는 단계;
상기 제2 속성 세트의 상기 속성 요소들 중 하나의 블룸 필터링 결과가 상기 제1 속성 세트의 대응하는 속성 요소 세트와의 미스매치(mismatch)를 나타내는 경우, 상기 제2 속성 세트의 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하는 단계; 및
상기 디바이스 데이터를 획득하는 단계로 복귀하는 단계(returning)
를 포함하는,
방법.
- 제1항에 있어서,
상기 제1 속성 세트의 상기 속성 요소들을 상기 필터 조건으로 취함으로써 상기 미리 결정된 순서로 하나씩 상기 제2 속성 세트의 상기 속성 요소들에 대해 상기 블룸 필터링(Bloom filtering)을 수행하는 단계는:
상기 제1 속성 세트의 상기 속성 요소들의 속성 값들에 대해 개별적으로 해시 연산(Hash operation)을 수행함으로써 상기 제1 속성 세트의 상기 속성 요소 세트에 대응하는 이진 벡터 세트를 획득하는 단계;
상기 제2 속성 세트의 상기 속성 요소들의 속성 값들에 대해 개별적으로 해시 연산을 수행함으로써 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터를 획득하는 단계; 및
상기 제1 속성 세트의 상기 속성 요소 세트에 대응하는 상기 이진 벡터 세트를 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 상기 이진 벡터와 미리 결정된 매칭 순서로 매칭하는 단계
를 포함하고,
상기 제2 속성 세트의 상기 속성 요소들 중 하나의 상기 블룸 필터링 결과가 상기 제1 속성 세트의 상기 대응하는 속성 요소 세트와의 미스매치를 나타내는 경우, 상기 제2 속성 세트의 상기 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하는 단계는:
상기 제2 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터들 중 하나가 상기 제1 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터 세트들 중 하나와 매칭에 실패하는(fails to match) 경우, 상기 제2 속성 세트의 상기 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하는 단계
를 포함하는,
방법.
- 제1항에 있어서,
상기 구독 조건들의 수가 1인 경우, 상기 방법은:
상기 제2 속성 세트의 상기 속성 요소들의 상기 블룸 필터링 결과가 상기 제1 속성 세트의 상기 속성 요소 세트와 대응하는 매치(match)를 나타내는 경우, 상기 디바이스 데이터를 클라이언트에 전송하는 단계 - 상기 클라이언트는 상기 구독 조건을 전송하기 위한 단말임 -;
를 더 포함하는,
방법.
- 제1항에 있어서,
상기 구독 조건들의 수가 1보다 큰 경우, 상기 방법은:
상기 제2 속성 세트에서 상기 속성 요소들의 상기 블룸 필터링 결과가 상기 제1 속성 세트의 상기 속성 요소와 대응하는 성공적인 매치를 나타내는 경우, 상기 제1 속성 세트들에서 성공적으로 매칭되는 상기 속성 요소들에 대응하는 구독 조건 세트들을 교차(intersecting)함으로써 통합 구독 조건(unified subscription condition)을 획득하는 단계;
상기 통합 구독 조건에 대응하는 속성 세트를 상기 제2 속성 세트와 매칭함으로써 매칭 결과를 획득하는 단계; 및
상기 제2 속성 세트가 상기 통합 구독 조건에 대응하는 상기 속성 세트와 성공적으로 매칭된다고 나타내는 상기 매칭 결과에 응답하여 상기 디바이스 데이터를 클라이언트로 전송하는 단계
를 더 포함하는,
방법.
- 제4항에 있어서,
상기 제2 속성 세트에서 상기 속성 요소들의 상기 블룸 필터링 결과가 상기 제1 속성 세트의 상기 속성 요소와 상기 대응하는 성공적인 매치를 나타내는 경우, 상기 제1 속성 세트들에서 성공적으로 매칭되는 상기 속성 요소들에 대응하는 상기 구독 조건 세트들을 교차함으로써 상기 통합 구독 조건을 획득하는 단계는:
상기 제1 속성 세트의 상기 속성 요소 세트에 대응하는 이진 벡터 세트가 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터와 성공적으로 매칭되는 경우, 상기 제1 속성 세트들에서 성공적으로 매칭되는 상기 속성 요소들에 대응하는 상기 구독 조건 세트들을 교차함으로써 상기 통합 구독 조건을 획득하는 단계
를 포함하는,
방법.
- 제1항에 있어서,
상기 제1 속성 세트의 상기 속성 요소 세트는,
모델, 디바이스, 및 측정 지점(measurement point) 중 적어도 하나인,
방법.
- 사물 인터넷에서의 구독 데이터 푸시 장치에 있어서,
상기 장치는 구독 서버에 적용 가능하고,
구독 조건 세트 수신에 응답하여 상기 구독 조건 세트를 제1 속성 세트(attribute set)로 파싱(parse)하도록 구성되는, 제1 파싱(parsing) 모듈 - 상기 제1 속성 세트는 적어도 하나의 속성 요소 세트를 포함하고, 상기 구독 조건 세트는 적어도 하나의 구독 조건을 포함함 -;
디바이스 데이터를 획득하도록 구성되는, 획득 모듈 - 상기 디바이스 데이터는 상기 구독 서버에 저장됨 -;
상기 디바이스 데이터를 제2 속성 세트로 파싱하도록 구성되는, 제2 파싱 모듈 - 상기 제2 속성 세트의 속성 요소들은 상기 제1 속성 세트의 상기 속성 요소 세트와 동일한 유형임 -;
상기 제1 속성 세트의 상기 속성 요소 세트를 필터 조건으로 취함으로써 미리 결정된 순서로 하나씩 상기 제2 속성 세트의 상기 속성 요소들에 대해 블룸 필터링(Bloom filtering)을 수행하도록 구성되는, 블룸 필터링 모듈;
상기 제2 속성 세트의 상기 속성 요소들 중 하나의 블룸 필터링 결과가 상기 제1 속성 세트의 대응하는 속성 요소 세트와의 미스매치(mismatch)를 나타내는 경우, 상기 제2 속성 세트의 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하도록 구성되는, 중지 모듈; 및
상기 디바이스 데이터를 획득하는 단계로 복귀하도록 구성되는, 복귀(returning) 모듈
을 포함하는,
장치. - 제7항에 있어서,
상기 블룸 필터링 모듈은:
상기 제1 속성 세트의 상기 속성 요소들의 속성 값들에 대해 해시 연산(Hash operation)을 수행함으로써 상기 제1 속성 세트의 상기 속성 요소 세트에 대응하는 이진 벡터 세트를 획득하도록 구성되는, 제1 계산 서브모듈; 및
상기 제2 속성 세트의 상기 속성 요소들의 속성 값들에 대해 해시 연산을 수행함으로써 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 이진 벡터를 획득하도록 구성되는, 제2 계산 서브모듈;
을 포함하고,
상기 중지 모듈은 상기 제2 속성 세트의 상기 속성 요소들에 대응하는 상기 이진 벡터들 중 하나가 상기 제1 속성 세트의 상기 속성 요소들에 대응하는 상기 이진 벡터 세트들 중 하나와 매칭에 실패하는(fails to match) 경우, 상기 제2 속성 세트의 상기 다른 속성 요소들에 대한 상기 블룸 필터링을 중지하도록 더 구성되는,
장치.
- 컴퓨터 디바이스에 있어서,
프로세서 및 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트를 저장하는 메모리
를 포함하고,
상기 프로세서에 의해 로드 및 실행될 때, 상기 적어도 하나의 명령어, 상기 적어도 하나의 프로그램, 상기 코드 세트, 또는 상기 명령어 세트는 상기 프로세서가 제1항 내지 제6항 중 어느 한 항에 정의된 상기 사물 인터넷에서의 구독 데이터 푸시 방법을 수행하도록 하는,
컴퓨터 디바이스.
- 컴퓨터 디바이스의 프로세서에 의해 로드 및 실행될 때, 적어도 하나의 명령어, 적어도 하나의 프로그램, 코드 세트, 또는 명령어 세트는 상기 컴퓨터 디바이스가 제1항 내지 제6항 중 어느 한 항에 정의된 상기 사물 인터넷에서의 구독 데이터 푸시 방법을 수행하도록 하는,
상기 적어도 하나의 명령어, 상기 적어도 하나의 프로그램, 상기 코드 세트, 또는 상기 명령어 세트를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911370689.6 | 2019-12-26 | ||
CN201911370689.6A CN111026972B (zh) | 2019-12-26 | 2019-12-26 | 物联网中的订阅数据推送方法、装置、设备及存储介质 |
PCT/SG2020/050768 WO2021133251A1 (en) | 2019-12-26 | 2020-12-22 | Method and apparatus for pushing subscription data in internet of things, device and storage medium thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220108190A KR20220108190A (ko) | 2022-08-02 |
KR102481162B1 true KR102481162B1 (ko) | 2022-12-26 |
Family
ID=70214033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227024927A KR102481162B1 (ko) | 2019-12-26 | 2020-12-22 | 사물 인터넷에서의 구독 데이터 푸시 방법 및 장치, 그 디바이스 및 저장 매체 |
Country Status (12)
Country | Link |
---|---|
US (1) | US11856071B2 (ko) |
EP (1) | EP4081915A4 (ko) |
JP (1) | JP7509886B2 (ko) |
KR (1) | KR102481162B1 (ko) |
CN (1) | CN111026972B (ko) |
AU (1) | AU2020414275A1 (ko) |
BR (1) | BR112022012662A2 (ko) |
CA (1) | CA3166090A1 (ko) |
CL (1) | CL2022001748A1 (ko) |
MX (1) | MX2022008020A (ko) |
WO (1) | WO2021133251A1 (ko) |
ZA (1) | ZA202208274B (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111859127A (zh) * | 2020-07-13 | 2020-10-30 | 海尔优家智能科技(北京)有限公司 | 消费数据的订阅方法、装置及存储介质 |
CN114390015A (zh) * | 2021-12-08 | 2022-04-22 | 天翼物联科技有限公司 | 一种基于物模型的数据推送***、方法、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837184B1 (ko) * | 2017-03-13 | 2018-03-09 | (주)세인시스 | 스마트 기기의 앱 연동이 가능한 p2p 서버를 구비하는 보안용 dvr 시스템 및 그 방법 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958251B2 (en) * | 2000-08-04 | 2011-06-07 | Goldman Sachs & Co. | Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients |
US7200675B2 (en) * | 2003-03-13 | 2007-04-03 | Microsoft Corporation | Summary-based routing for content-based event distribution networks |
US8321528B2 (en) * | 2007-06-29 | 2012-11-27 | Telefonaktiebolaget L M Ericsson (Publ) | Method of processing event notifications and event subscriptions |
CN101295311B (zh) * | 2008-06-17 | 2011-08-31 | 浙江大学 | 一种大规模发布订阅***的语义匹配算法 |
US8266506B2 (en) * | 2009-04-18 | 2012-09-11 | Alcatel Lucent | Method and apparatus for multiset membership testing using combinatorial bloom filters |
EP2407900B1 (en) * | 2010-07-16 | 2013-07-03 | Google Inc. | Batch prospective searching |
US8880880B2 (en) * | 2011-07-29 | 2014-11-04 | Qualcomm Incorporated | Facilitating access control in peer-to-peer overlay networks |
US9652511B2 (en) | 2013-03-13 | 2017-05-16 | International Business Machines Corporation | Secure matching supporting fuzzy data |
CN103561442B (zh) * | 2013-11-04 | 2017-01-04 | 中国科学院计算机网络信息中心 | 一种发布/订阅式***中移动接收者数据传输方法 |
CN104021216B (zh) * | 2014-06-20 | 2017-05-10 | 北京邮电大学 | 消息代理服务器及信息发布订阅方法和*** |
JP6090253B2 (ja) * | 2014-07-18 | 2017-03-08 | トヨタ自動車株式会社 | 無線通信システムにおける通信方法、無線通信システム、および無線接続提供装置 |
US10860604B1 (en) * | 2014-12-10 | 2020-12-08 | Amazon Technologies, Inc. | Scalable tracking for database udpates according to a secondary index |
US10104173B1 (en) * | 2015-09-18 | 2018-10-16 | Amazon Technologies, Inc. | Object subscription rule propagation |
WO2018093351A1 (en) * | 2016-11-15 | 2018-05-24 | Intel Corporation | Neworking internet of things (iot) devices |
US11296935B2 (en) * | 2016-12-30 | 2022-04-05 | Intel Corporation | Service provision to IoT devices |
US20190095448A1 (en) * | 2017-09-22 | 2019-03-28 | Microsoft Technology Licensing, Llc | System of mobile notification delivery utilizing bloom filters |
CN108197138A (zh) * | 2017-11-21 | 2018-06-22 | 北京邮电大学 | 在发布/订阅***中发布信息匹配订阅信息的方法及*** |
CN108366096A (zh) * | 2018-01-17 | 2018-08-03 | 深圳市金立通信设备有限公司 | 一种信息订阅方法、终端及计算机可读存储介质 |
CN108566299B (zh) | 2018-04-20 | 2021-02-19 | 浪潮集团有限公司 | 一种物联网云平台终端组管理方法 |
CN109067878A (zh) * | 2018-08-07 | 2018-12-21 | 长沙拓扑陆川新材料科技有限公司 | 一种在物联网中发布-订阅消息的电子设备及方法 |
CN109862063A (zh) * | 2018-11-12 | 2019-06-07 | 平安科技(深圳)有限公司 | 基于mqtt的发布订阅匹配方法、装置及存储介质 |
USD997952S1 (en) * | 2018-12-21 | 2023-09-05 | Streamlayer, Inc. | Display screen with transitional graphical user interface |
CN110287406A (zh) | 2019-05-21 | 2019-09-27 | 深圳壹账通智能科技有限公司 | 渠道用户推荐方法、服务器及计算机可读存储介质 |
CN110245191B (zh) * | 2019-06-18 | 2021-07-02 | 政采云有限公司 | 数据处理方法及装置 |
CN110413927B (zh) * | 2019-07-24 | 2021-10-15 | 上海交通大学 | 在发布订阅***中基于匹配实时性的优化方法及*** |
US10791421B1 (en) * | 2019-09-03 | 2020-09-29 | Cox Communications, Inc. | Hyper-localization based edge-converged telemetry |
-
2019
- 2019-12-26 CN CN201911370689.6A patent/CN111026972B/zh active Active
-
2020
- 2020-12-22 US US17/789,249 patent/US11856071B2/en active Active
- 2020-12-22 BR BR112022012662A patent/BR112022012662A2/pt unknown
- 2020-12-22 KR KR1020227024927A patent/KR102481162B1/ko active IP Right Grant
- 2020-12-22 MX MX2022008020A patent/MX2022008020A/es unknown
- 2020-12-22 EP EP20905114.3A patent/EP4081915A4/en not_active Withdrawn
- 2020-12-22 WO PCT/SG2020/050768 patent/WO2021133251A1/en active Search and Examination
- 2020-12-22 JP JP2022539032A patent/JP7509886B2/ja active Active
- 2020-12-22 AU AU2020414275A patent/AU2020414275A1/en not_active Abandoned
- 2020-12-22 CA CA3166090A patent/CA3166090A1/en active Pending
-
2022
- 2022-06-24 CL CL2022001748A patent/CL2022001748A1/es unknown
- 2022-07-25 ZA ZA2022/08274A patent/ZA202208274B/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101837184B1 (ko) * | 2017-03-13 | 2018-03-09 | (주)세인시스 | 스마트 기기의 앱 연동이 가능한 p2p 서버를 구비하는 보안용 dvr 시스템 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
CA3166090A1 (en) | 2021-07-01 |
US20220400164A1 (en) | 2022-12-15 |
JP7509886B2 (ja) | 2024-07-02 |
ZA202208274B (en) | 2023-03-29 |
CN111026972B (zh) | 2023-07-28 |
EP4081915A4 (en) | 2023-01-18 |
CN111026972A (zh) | 2020-04-17 |
WO2021133251A1 (en) | 2021-07-01 |
JP2022552435A (ja) | 2022-12-15 |
EP4081915A1 (en) | 2022-11-02 |
BR112022012662A2 (pt) | 2022-09-06 |
CL2022001748A1 (es) | 2022-11-25 |
MX2022008020A (es) | 2022-10-07 |
AU2020414275A1 (en) | 2022-07-21 |
KR20220108190A (ko) | 2022-08-02 |
US11856071B2 (en) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021068352A1 (zh) | Faq问答对自动构建方法、装置、计算机设备及存储介质 | |
US11455306B2 (en) | Query classification and processing using neural network based machine learning | |
KR102481162B1 (ko) | 사물 인터넷에서의 구독 데이터 푸시 방법 및 장치, 그 디바이스 및 저장 매체 | |
CN108989397B (zh) | 数据推荐方法、装置及存储介质 | |
US20160171978A1 (en) | Voice recognition system and construction method thereof | |
CN104866985B (zh) | 快递单号识别方法、装置及*** | |
CN109905293A (zh) | 一种终端设备识别方法、***及存储介质 | |
JP2006164233A (ja) | 分散データ駆動型アーキテクチャ環境におけるディレクトリ構造 | |
CN108268529B (zh) | 一种基于业务抽象和多引擎调度的数据汇总方法和*** | |
CN110135590B (zh) | 信息处理方法、装置、介质及电子设备 | |
CN110489622B (zh) | 对象信息的分享方法、装置、计算机设备和存储介质 | |
WO2020019724A1 (zh) | 服务器中传感器数据的获取方法、获取***和相关装置 | |
CN109951354A (zh) | 一种终端设备识别方法、***及存储介质 | |
CN106068028A (zh) | 终端中处理无线网络名称乱码的方法和终端 | |
CN107992210A (zh) | 输入法词汇推荐方法、智能终端及具有存储功能的装置 | |
KR102587776B1 (ko) | 확장 가능한 클러스터에서 연결을 관리하기 위한 시스템 및 방법 | |
CN105335466A (zh) | 一种音频数据的检索方法与装置 | |
CN110390011B (zh) | 数据分类的方法和装置 | |
CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
CN113535987A (zh) | 联动规则匹配方法以及相关装置 | |
CN111917848A (zh) | 基于边缘计算和云计算协同的数据处理方法及云服务器 | |
KR102532216B1 (ko) | Esg 보조 툴을 이용하여 정형화된 esg 데이터로 이루어진 esg 데이터베이스를 구축하는 방법 및 이를 수행하는 esg 서비스 제공 시스템 | |
Lee et al. | Performance Measurement of GraphQL API in Home ESS Data Server | |
US10467341B1 (en) | Systems and methods for determining document compatibility | |
US11308282B2 (en) | Systems and methods for determining document compatibility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |