이하, 본 발명의 일부 실시 예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 발명의 실시예들은 사물 통신을 중심으로 설명한다. 사물 통신은 M2M(Machine to Machine communication), MTC(Machine Type Communication), IoT(Internet of Things), 스마트 장치 통신(Smart Device Communication, SDC), 또는 사물 지향 통신(Machine Oriented Communication) 등으로 다양하게 불려질 수 있다. 최근 oneM2M에서 사물통신과 관련된 많은 기술적 사항을 제시하고 있다. 사물 통신은 사람이 통신 과정에 개입하지 않고 통신이 이루어지는 다양한 통신을 지칭한다. 사물 통신은 에너지(energy) 분야, 엔터프라이즈(enterprise) 분야, 헬스케어(Healthcare) 분야, 공공 서비스(Public Services) 분야, 주거(Residential) 분야, 리테일(Retail) 분야, 운송(Transportation)분야, 그리고 기타 분야 등으로 나뉘어진다. 본 발명은 상기 분야를 포함하며, 그 외의 분야에도 적용 가능하다.
본 발명에서 식별(identification)은 특정 도메인 내의 개체(entity)를 다른 개체(entities)와 구별하여 인식(recognizing)하는 과정을 의미한다(Process of recognizing an entity in a particular domain as distinct from other entities). 인증(authentication)은 개체(entity)의 식별자를 결정하거나 정보의 출처를 확립하는 것을 의미한다. 권한부여(authorization)은 권한(rights)를 할당(grant)하는 것을 의미하며, 이는 접근 권한(access rights)에 기반을 두어 할당하는 것을 포함한다. 기밀성(confidentiality)는 권한이 부여되지 않은 개체나 프로세스에 대해 정보가 사용할 수 없도록 하거나 공개되지 않도록 하는 특성을 의미한다. 증명서(credentials)는 보안 프로시져(security procedure)에서 사용되며 개체를 유일하게 식별하는데 사용되는 데이터 객체(data object)를 의미한다. 암호화(encryption)은 암호화 알고리즘(cryptographic algorithm)과 키를 이용하여 평문(plaintext)를 암호문(ciphertext)으로 생성하는 과정을 의미한다. 무결성(integrity)은 정보와 방법의 처리의 정확성과 완전성을 보장하는 것을 의미한다. 키(key)는 암호화 알고리즘과 결합하여 사용되는 파라미터로, 키에 대한 정보를 가진 개체는 해당 키를 재생산하거나 또는 암호화 과정을 역으로 수행할 수 있으며, 키에 대한 정보를 가지지 않은 개체는 상기 재생산 또는 역수행을 수행할 수 없다. 상호 인증(mutual authentication)은 상호간의 식별성을 보장하는 개체 인증을 의미한다. 프라이버시(privacy)는 관련된 정보를 제어하거나 영향을 미치는 개인들의 권리는 공개될 대상에 의해 수집되고 저장될 수 있다. 부인(repudiation)은 개체로부터 요청된 이벤트나 액션을 부인하는 것을 의미한다. 보안성(secure)은 모든 공격에 대해 취약하지 않으며, 취약한 공격을 견디거나 취약성에도 불구하고 공격으로부터 발생한 피해를 복구하는 것을 의미하며, 보안(security)는 시스템을 보호하는 방안을 생성 및 유지하여 발생하는 시스템의 상태를 의미한다. 민감한 데이터(sensitive data)는 의도치 않게 알려지거나 영향을 받는 이해관계자(stakeholder)의 동의 없이 변조될 경우 문제를 일으키는 이해관계자의 데이터의 분류를 의미한다. 구독(subscription)은 동의(agreement)의 분류이며 상기 동의는 일정 기간 동안의 서비스의 사용(또는 소비 consumption)에 대한 제공자(provider)와 구독자(subscriber) 간의 동의를 의미한다. 구독은 통상 상업적인 동의를 의미한다. 신뢰(Trust)는 두 구성요소간의 관계를 의미하는데, 주어진 보안 정체를 침범하지 않는 미리 정의된 방식으로 y라는 구성 요소가 동작할 것이라는 확신을 구성요소 x가 가지고 있는 경우에만 구성요소 x는 구성요소 y를 신뢰하며 활동과 보안 정책의 셋으로 이루어진 관계를 가지게 된다. 검증(verification)은 특정한 요구사항이 만족되는 객관적인 증거의 제공을 통한 확인(confirmation)을 의미한다.
M2M 애플리케이션은 서비스 로직(service logic)을 운영하며 oneM2M에서 특정한 개방형 인터페이스를 이용하여 M2M 공통 서비스를 사용하는 애플리케이션을 의미한다. M2M 애플리케이션 기반(Infrastructure) 노드는 장비(M2M 애플리케이션 서비스 제공자의 물리적 서버들의 집합)이다. 상기 M2M 애플리케이션 기반노드는 데이터를 관리하며, M2M 애플리케이션 서비스의 조정 기능을 실행한다. 애플리케이션 기반노드는 하나 이상의 M2M 애플리케이션을 호스트(host)한다. .
M2M 애플리케이션 서비스는 M2M 애플리케이션의 서비스 로직을 통해 구현되는 것으로, M2M 애플리케이션 서비스 제공자(M2M Application Service Provider) 혹은 사용자가 운영(operation)한다. M2M 애플리케이션 서비스 제공자는 M2M 애플리케이션 서비스를 사용자에게 제공하는 개체를 의미한다. M2M 국지 네트워크(M2M Area Network)는 기반 네트워크의 형태이며, M2M 게이트웨이, M2M 디바이스, 센싱/액츄에이션 장비(Sensing/Actuation Equipment) 간의 데이터 전송 서비스(data transport service)를 제공한다. M2M LAN(Local Area Network)는 이종의 통신 기술을 이용할 수 있으며, IP 접근을 지원할 수도, 하지 않을 수도 있다.
필드 도메인(Field Domain)은 M2M 게이트웨이, M2M 디바이스, 센싱/액츄에이션 장비, M2M 국지 네트워크로 구성된다. 기반 도메인(Infrastructure Domain)은 애플리케이션 기반(Infrastructure)와 서비스 기반(Infrastructure)으로 구성된다. 센싱/액츄에이션 장비는 하나 이상의 M2M 애플리케이션 서비스와의 상호 작용에 의해 물리적 환경을 센싱하거나 또는 영향을 주는 기능을 제공한다. M2M 시스템과 상호 작용을 하지만 M2M 애플리케이션을 호스트하지는 않는다. M2M 솔루션(M2M Solution)은 다음의 기준을 만족하도록 구현 또는 배치(deploy)된 시스템으로, 특정 사용자의 종단간(end-to-end) M2M 통신 요구 사항을 충족시키는 것을 의미한다. M2M 시스템은 M2M 솔루션을 구현 또는 배치(deploy)하는 시스템을 의미한다. 기반 네트워크(Underlying Network)는 데이터 전송/연결 서비스를 위한 기능, 네트워크, 버스(busses) 또는 다른 기술들을 의미한다.
도 1은 본 발명을 구성하는 시스템의 구성을 보여주는 도면이다. 도 1은 애플리케이션(Application)(110), 공통 서비스(Common Services)(120), 기반 네트워크 서비스(Underlying Network Services)(130)로 구성된다. 이들은 각각 애플리케이션 계층(Application Layer), 공통 서비스 계층(Common Services Layer), 네트워크 서비스 계층(Network Services Layer)을 구성한다. 애플리케이션 계층은 oneM2M 애플리케이션들과 관련된 비즈니스 로직(business logic)과 조작 로직(operational logic)을 포함한다. 공통 서비스 계층은 oneM2M 애플리케이션을 작동시키는 oneM2M 서비스 기능(service function)으로 이루어진다. 이를 위해 관리(management), 디스커버리(discovery), 정책 집행(policy enforcement) 등을 적용한다.
공통 서비스 개체(common service entity)는 공통 서비스 기능의 구현 예(instantiate)이다. 공통 서비스 개체는 M2M 애플리케이션에 의해 사용되고 공유될 공통 서비스 기능의 서브셋(subset)을 제공한다. 공통 서비스 개체는 기반 네트워크의 기능을 이용하며 다른 공통 서비스 개체와 상호작용하여 서비스를 구현한다.
도 2는 본 발명을 구성하는 시스템을 상위 레벨의 기능적 관점에서 도시한 도면이다. 도 2에 제시된 바와 같이 필드 도메인(Field Domain)과 인프라스트럭처 도메인(Infrastructure Domain)을 구성하는 각각의 구성요소를 살펴보면 다음과 같다. 애플리케이션 개체(Application Entity, AE)(210, 215)은 종단간(end-to-end) M2M 솔루션을 위한 애플리케이션 로직을 제공한다. 일 예로 차량 등의 집단적인 추적 애플리케이션(fleet tracking application), 원격 혈당 감시 애플리케이션(remote blood sugar monitoring application), 또는 원격 전력 검침과 제어 애플리케이션(remote power metering and controlling application) 등이 될 수 있다. 공통 서비스 개체(Common Services Entity, CSE)(220, 225)는 서비스 기능의 집합으로써, 이러한 서비스 기능은 M2M 환경에 공통적으로 사용하는 기능이다. 이러한 서비스 기능은 참조점(Reference Points) Mca, Mcc를 통해 다른 기능으로 드러나며, 참조점 Mcn를 이용하여 기반 네트워크 서비스를 이용한다, M2M 구독 관리(M2M Subscription Management), 위치 서비스(Location Service) 등이 될 수 있다. CSE에 의해 제공되는 서브기능(subfunction)은 논리적으로 CSF(Common service function)으로 이해될 수 있다. oneM2M 노드의 CSE내에 CSF 중 일부는 필수적(mandatory)이 되며 일부는 선택적(optional)이 될 수 있다. 마찬가지로 CSF 내의 서브기능들 역시 필수적 또는 선택적이 될 수 있다.
기반 네트워크 서비스 기능(Underlying Network Services Function, NSF)(230, 235)는 공통 서비스 개체에게 서비스를 제공한다. 서비스의 예로는 디바이스 관리, 위치 서비스(location services)와 디바이스 트리거링(device triggering)을 포함한다
참조점(Reference Points)은 공통 서비스 개체(CSE)에서 지원되는 것으로 Mca 참조점은 애플리케이션 개체와 공통 서비스 개체간의 통신 플로우를 지시하는 참조점이다. Mcc 참조점은 두 공통 서비스 개체 간의 통신 플로우를 지시하는 참조점이다. Mcn 참조점은 공통 서비스 개체와 하나의 네트워크 서비스 개체간의 통신 플로우를 지시하는 참조점이다.
보다 상세히, Mca 참조점은 하나의 애플리케이션 개체(AE)가 공통 서비스 개체에 의해 지원되는 서비스를 사용할 수 있도록 한다. Mca 참조점을 통해 제공되는 서비스들은 공통 서비스 개체가 제공하는 기능에 의존적이며, 애플리케이션 개체와 공통 서비스 개체는 동일한 물리적 개체에 존재하거나 다른 물리적 개체에 따로 존재할 수 있다.
Mcc 참조점은 필요한 기능을 제공하는 다른 공통 서비스 개체의 서비스를 사용하고자 하는 공통 서비스 개체에게 그러한 사용을 가능하게 한다. Mcc 참조점을 통해 제공되는 서비스들은 공통 서비스 개체가 제공하는 기능에 의존적이다. Mcc 참조점은 서로 다른 M2M 노드 간에 지원될 수 있다.
Mcn 참조점은 필요한 기능을 제공하는 기반 네트워크의 서비스 개체를 사용하고자 하는 공통 서비스 개체에게 그러한 사용을 가능하게 하며, 이는 전송과 연결 이외의 서비스를 제공한다. Mcn 참조점의 인스턴스(instance)는 기반 네트워크에서 제공되는 서비스에 의존적으로 구현된다. 두 개의 물리적 M2M 노드 간의 정보 교환은 기본 서비스를 제공하는 기반 네트워크의 전송(transport) 및 연결(connectivity) 서비스를 사용할 수 있다.
Mcc' 참조점은 CSE간의 통신 플로우를 지시한다.
도 3은 본 발명을 구성하는 기능적 구조를 보여주는 도면이다. 도 3의 기능적 구조(Functional Architecture)에서 AE는 애플리케이션 개체, CSE는 공통 서비스 개체를 나타낸다. AE, CSE 앞쪽에 결합하는 IN, MN, ADN, ASN은 각각 기반 노드(Infrastructure Node, IN, 또는 인프라 노드), 중간 노드(Middle Node, MN, 또는 미들 노드), 그리고 애플리케이션 전용 노드(Application Dedicated node, ADN)와 애플리케이션 서비스 노드(Application Service Node, ASN)를 나타낸다. 서로 다른 노드의 CSE들은 서로 동일하지 않으며, 노드 내의 CSE에 의해 지원되는 서비스에 의존적이다.
애플리케이션 전용 노드(ADN)는 적어도 하나 이상의 응용 개체(AE)를 포함하며 공통 서비스 개체(CSE)를 포함하지 않는 노드이다. 애플리케이션 전용 노드(311, 312)는 Mca 참조점을 이용하여 중간 노드(321, 322) 또는 기반 노드(330)와 통신을 수행한다.
애플리케이션 서비스 노드(ASN)는 하나의 공통 서비스 개체(CSE)를 포함하며 적어도 하나 이상의 애플리케이션 개체(AE)를 포함하는 노드이다. 애플리케이션 서비스 노드는 Mcc 참조점을 통하여 다음과 같이 통신한다. 하나의 중간 노드(321)와 통신하거나, 또는 하나의 기반 노드(330)와 통신한다. 상기 통신 방식은 정확히 하나의 중간 노드 또는 기반 노드와 통신할 수 있다.
중간 노드(MN)는 하나의 공통 서비스 개체(CSE)를 포함하며 0개 이상의 애플리케이션 개체(AE)를 포함하는 노드이다. 중간 노드는 IN 또는 MN과 최소한 Mcc를 이용하여 통신하거나, IN/MN/ASN과 Mcc를 이용하여 통신하거나, ADN과 Mca를 이용하여 통신한다.
기반 노드(330)는 하나의 공통 서비스 개체(CSE)를 포함하며 0개 이상의 애플리케이션 개체(AE)를 포함하는 노드이다. 중간 노드는 각각의 Mcc 참조점을 통하여 둘 이상의 노드들과 다음과 같이 통신한다. 하나 이상의 중간 노드들과 통신하거나, 및/또는 하나 이상의 애플리케이션 서비스 노드들과 통신한다. 또한 기반 노드는 Mca 참조점을 이용하여 하나 이상의 애플리케이션 전용 노드(313, 314)와 통신할 수 있다.
도 4는 본 발명의 일 실시예에 의한 공통 서비스 개체를 구성하는 도면이다. 도 4에서는 식별 정보의 처리 기능을 포함한다.
공통 서비스 개체가 제공하는 기능을 도 4와 같이 정리하면 식별(Addressing & Identification), 애플리케이션/서비스 계층 관리(Application and Service Layer Management), 데이터 관리 및 저장(Data Management & Repository), 위치(Location), 보안(Security), 통신 관리/전달 핸들링(Communication Management / Delivery Handling), 등록(Registration), 서비스 세션 관리(Service Session Management), 디바이스 관리(Device Management), 구독/알림(Subscription/Notification), 연결 관리(Connectivity Management), 디스커버리(Discovery), 서비스 과금/정산(Service Charging/Accounting), 네트워크 서비스 표출/서비스 실행 및 트리거링(Network Service Exposure / Service execution and triggering ), 그룹 관리(Group Management) 등이 있다.
물론, 상기 기능 이외에도 시맨틱스(Semantics), 데이터 분석(Data Analytics), 애플리케이션 인에이블먼트(Application Enablement), 네트워크 서비스 기능 관리(Network Service Function Management)등도 포함할 수 있다.
각각의 기능에 대해 살펴보면 다음과 같다.
AID(Addressing and Identification)는 M2M 환경에서의 물리적, 논리적 리소스를 식별하고 조종하는데 필요한 정보를 제공한다. 논리적 리소스는 애플리케이션, CSE, 그리고 데이터와 같은 소프트웨어에 연관된 개체들이다. 물리적 리소스는 기반 네트워크와 M2M 디바이스들과 관련된 하드웨어 관련 개체들이다. AID CSF는 서로 상이한 타입의 M2M 식별자의 프로비저닝과 M2M 애플리케이션, CSE, M2M 디바이스들과 식별자를 결합하는 것을 지원한다.
ASM(Application and Service Layer Management)는 ADN, ASN, MN, IN의 AE와 CSE를 관리하는 것을 담당하며, 이는 CSE의 설정(configure), 트러블슈팅(troubleshoot), 업그레이드 기능과 AE의 업그레이드를 포함한다.
CMDH(Communication Management and Delivery Handling)는 다른 CSE, AE, NSE간의 통신을 책임진다. CMDH는 어느 시각에 어떤 통신 연결을 이용하여 통신을 전달할 것인지(CSE-CSE간 통신), 언제 필요하고 언제 허가되는지, 그리고 통신의 전달이 이후로 미루어질 때 통신 요청을 저장하는 것을 책임진다. CMDH는 통신에 대한 각 요청에 특화된 프로비전된 정책과 전달 핸들링 파라미터에 따라 수행된다. 기반 네트워크 데이터 전송 서비스를 이용한 통신에서 기반 네트워크는 동일한 전달 핸들링 기능을 지원할 수 있다. 이 경우 CMDH는 기반 네트워크를 사용할 수 있으며, 기반 네트워크에 동일한 전달 핸들링 기능을 액세스하는 프런트엔드로 동작할 수 있다.
DMR(Data Management and Repository)은 M2M 애플리케이션이 다른 개체와 데이터를 교환할 수 있도록 한다. DMR CSF는 데이터 저장 공간을 제공하고 이를 조정하는 기능을 제공한다. 또한 대량의 데이터를 수집하고 결합하거나, 데이터를 특정한 포맷으로 변환하거나, 또는 데이터를 분석 및 시맨틱 프로세싱을 위해 저장하는 기능을 포함한다. "데이터"라는 것은 M2M 디바이스로부터 투명하게 추출되는 로우 데이터(raw data)를 의미하거나 M2M 개체에 의해 계산 또는 결합되어 프로세싱된 데이터를 의미할 수 있다. 대량의 데이터를 수집하는 것은 빅데이터 저장 기능으로 알려진 것을 구성한다.
DMG(Device Management) CSF는 MN과 디바이스 노드(ADN, ASN) 및 M2M 에어리어 네트워크에 있는 디바이스들의 디바이스 기능의 관리를 담당한다. AE는 DMG CSF에서 제공되는 서비스를 이용하여 노드들의 디바이스 능력을 관리할 수 있으며, AE는 특정한 기술적 지식을 관리할 필요는 없다. 다음의 기능을 하나 이상 제공하는 디바이스 관리를 가능하게 한다. 애플리케이션 소프트웨어의 설치 및 세팅, 설정 세팅 및 프로비저닝, 펌웨어 업데이트, 로깅과 모니터링과 분석, 에어리어 네트워크의 토폴로지 관리, 그리고 에이러이 네트워크 관리 내의 디바이스를 포함한다.
DIS(디스커버리) CSF는 주어진 범위와 주제 내에서 허락된 권한(M2M 서비스 구독에서 허락된 것을 포함)과 주어진 범위 내에서 오리지네이터(Originator)로부터의 요청에 해당하는 정보, 예를 들어 지원되는 속성과 리소스를 검색하는 것을 책임진다. 오리지네이터는 애플리케이션 또는 다른 CSE가 될 수 있다. 검색의 범위는 하나의 CSE가 되거나 다수의 CSE가 될 수 있다. 디스커버리 결과는 오리지네이터에게 리턴된다.
GMG(Group Management)는 요청과 관련된 그룹을 핸들링한다. 요청은 그룹과 그룹의 멤버십의 관리를 위해 전송되며 또한 그룹에 의해 지원되는 벌크 오퍼레이션도 담당한다. 그룹에 멤버를 추가 또는 삭제할 경우, 멤버가 그룹의 목적에 순응하는지를 확인할 필요가 있다. 벌크 오퍼레이션은 읽기, 쓰기, 구독하기, 알리기, 디바이스 관리 등을 포함한다. 요청 또는 구독은 그룹을 통하여 이루어지고, 그룹이 이러한 요청과 알림을 결합하는 것을 책임진다. 그룹의 멤버는 리소스에 대한 접근 권한에 대해 동일한 역할을 가진다. 이 경우, 접근 제어는 그룹에 의해 이루어진다. 기반 네트워크가 브로드캐스팅과 멀티캐스팅 기능을 제공할 경우, GMG CSF는 이러한 기능을 이용해야 한다
LOC(Location) CSF는 위치 기반 서비스를 위해 M2M 노드(예를 들어 ASN, MN)의 지리적 위치 정보를 M2M AE가 습득할 수 있도록 한다. 동일한 또는 상이한 M2M 노드 내에 존재하는 M2M AE로부터 이러한 위치 정보가 요청될 수 있다.
NSSE(Network Service Exposure, Service Execution and Triggering) CSF는 M2M 애플리케이션을 대신하여 M2M 시스템으로부터의 서비스 요청에 대한 사용 가능하거나 지원 가능한 방식을 Mcn 참조점을 통하여 네트워크 서비스 기능을 액세스 하기 위해 기반 네트워크와의 통신을 관리한다. NSSE CSF는 다른 CSF와 AE를 기반 네트워크에서 지원되는 특정한 기술과 메커니즘으로부터 은폐한다. 기반 네트워크로부터 제공되는 네트워크 서비스 기능은 디바이스 트리거링, 스몰 데이터 전송, 위치 알림, 폴리시 룰 셋팅, 위치 질의, IMS 서비스, 디바이스 관리 등을 포함하지만 이에 한정되지는 않는다. 이러한 기능들은 일반적인 전송 서비스를 포함하지 않는다.
REG(Registration)는 애플리케이션 또는 다른 CSE가 CSE에 등록하도록 핸들링하는 것을 담당하는데, 이는 CSE에서 제공되는 서비스를 사용하려는 개체의 등록을 허락하기 위함이다. REG CSF는 CSE에 대한 디바이스의 등록 뿐만 아니라 디바이스의 특성/속성의 등록도 핸들링한다.
SEC(Security)는 주의를 요하는(센서티브) 데이터 핸들링 기능, 보안 운영 기능, 보안 결합 설정 기능, 권한 부여와 액세스 제어 기능, 식별 보호 기능을 제공한다. SEC CSF가 제공하는 센서티브 데이터 핸들링 기능은 저장과 조작 과정에서 보안이 필요한 로컬 크리덴셜을 보호하는 기능을 제공한다.
SCA(Service Charging and Accounting)는 서비스 계층의 과금 기능을 제공한다. 온라인 과금과 오프라인 과금을 포함하는 상이한 과금 모델들을 지원한다. SCA CSF는 과금 가능한 이벤트를 확보하고, 정보를 저장하며, 과금 기록과 과금 정보를 생성한다. SCA CSF는 기반 네트워크의 과금 시스템과 상호작용 할 수 있다. 그러나 SCA CSF는 최종 서비스 레벨의 과금 정보를 생성하고 기록할 책임을 가진다. 기반 노드 또는 서비스 계층 과금 서버의 SCA CSF는 과금을 위한 과금 정보를 핸들링하는 것을 책임진다.
SSM(Service Session Management) CSF는 단대단 서비스 계층 연결인 M2M 서비스 세션을 관리한다. SSM CSF는 M2M 애플리케이션들 간의, 또는 M2M 애플리케이션과 CSE 간의, 또는 CSE들 간의 M2M 서비스 세션을 관리한다. M2M 서비스 세션의 관리는 세션 상태의 관리, 세션 인증과 설립, 세션과 관련된 기반 네트워크 연결 및 서비스의 관리, CSE의 멀티 홉인 cse의 세션 확장의 조정, 세션 종단간의 정보의 교환, 그리고 세션의 종료를 포함한다. 주어진 M2M 서비스 세션내에서 다음 홉의 CSE 또는 애플리케이션으로/부터의 메시지 송수신을 위해 SSM CSF는 로컬 CSE 내의 CMDH CSF를 이용한다. SSM CSF는 세션 참가자의 보안 크리덴셜과 인증과 관련된 세션 관리를 위해 SEC CSF를 이용한다. SSM CSF는 세션에 특화된 과금 이벤트를 생성하며 로컬 CSE 내의 SCA CSF와도 통신한다.
SUB(Subscription and Notification)는 구독을 유지하는 알림을 제공하며, 리소스의 변화(예를 들어 리소스의 삭제)를 트래킹한다. 리소스의 구독은 AE 또는 CSE에 의해 시작되며, 호스팅 CSE에 의해 접근 권한이 그랜트된다. 활성화된 구독 중에 호스팅 CSE는 구독된 리소스의 변화가 발생하는 경우 리소스 구독자가 수신하기를 원하는 주소로 알림을 전송한다.
상기 도 4 및 그에 대한 설명은 공통 서비스 개체를 구현하는 실시예들이며 본 발명이 이에 한정되지는 않는다.
한편, 본 발명을 구현하기 위해 필요한 식별자(identifier)를 살펴보면 다음과 같다. M2M 식별자로는 M2M-SP-ID(M2M Service Provider Identifier), App-Inst-ID(Application Instance Identifier), App-ID(Application Identifier), CSE-ID(CSE Identifier), M2M-Node-ID(M2M Node Identifier/Device Identifier), M2M-Sub-ID(M2M Service Subscription Identifier), M2M-Request-ID(Request Identifier)가 있다.
이하의 M2M 프레임워크, M2M 시스템, M2M 아키텍처는 서로 혼용 가능한 단어이다.
M2M 서비스 제공자는 M2M-SP-ID에 의해 유일하게(unique) 식별되어야 한다. M2M-SP-ID는 서비스 제공자에게 할당되는 정적인 값(static value)이다. App-Inst-ID는 M2M M2M 노드에 존재하는 애플리케이션 인스턴스(M2M Application Instance)를 유일하게 식별하는 식별자이거나, 또는 M2M 노드와 상호작용하는 M2M 애플리케이션 인스턴스를 식별하는 식별자이다. App-Inst-ID는 M2M 시스템 내에서 애플리케이션으로부터 발생하거나 또는 애플리케이션으로 향하는 상호작용하기 위해 애플리케이션을 식별하는데 사용된다. M2M 서비스 제공자는 App-Inst-ID가 전체적으로(globally) 유일할 것을 보장해야 하며 App-Inst-ID는 애플리케이션 식별자(App-ID)를 포함한다.
CSE-ID는 CSE를 식별하며 전체적으로 유일한 식별자로 M2M 시스템 내의 M2M 노드에서 CSE가 인스턴스화될 때 사용된다. M2M 시스템 내에서 CSE로부터 또는 CSE로 향하는 모든 상호작용에서 CSE를 식별하는데 CSE-ID가 사용된다.
M2M-Node-ID는 CSE 및/또는 애플리케이션을 호스팅하는 M2M 노드를 전체적으로 유일하게 식별한다. M2M 시스템은 M2M 서비스 제공자가 CSE-ID와 M2M-Node-ID를 같은 값으로 설정한다. M2M-Node-ID는 M2M 서비스 제공자가 CSE-ID와 특정 M2M 노드를 바인딩 할 수 있도록 한다.
M2M-Sub-ID는 M2M 서비스 제공자가 애플리케이션, M2M 노드, CSE들을 특정한 M2M 서비스 구독(service subscription)으로 바인딩할 수 있도록 한다. 따라서 M2M-Sub-ID는 M2M 서비스 제공자에 속하며, M2M 서비스 제공자에 대한 구독을 식별하도록 하며, M2M 서비스 제공자와의 통신을 가능하게 하며, M2M 기반 네트워크 구독 식별자(M2M Underlying Network Subscription Identifier)와 구별되며 M2M 서비스 제공자의 변경에 따라 변경될 수 있다. M2M 기반 네트워크에 대해 다수의 M2M-Sub-ID가 존재할 수 있다.
M2M-Request-ID(M2M 요청 식별자)는 애플리케이션이 Mca 참조점을 통해 시작되거나 Mcc, Mcn 참조점을 통해 CSE로부터 시작되는 요청을 단대 단으로 트래킹하는 식별자이다. 이는 또한 요청에 대한 응답에 포함된다. 애플리케이션이 요청과 Mca 참조점을 통한 해당 응답을 트랙하기 위해서 애플리케이션은 CSE로 Mca 참조 점을 통해 요청을 시작할 때 요청 별로 구별되는 애플리케이션 요청 식별자를 포함시켜야 한다.
M2M-Ext-ID(M2M External Identifier)는 M2M SP에 의해 사용되는 식별자로, CSE-ID로 식별되는 CSE를 타겟으로 하는 서비스가 기반 네트워크로부터 요청될 때 사용된다. M2M-Ext-ID는 서비스 요청에 따라 기반 네트워크로 하여금 CSE-ID와 결합된 M2M 디바이스를 식별하도록 한다. 그 결과 기반 네트워크는 M2M-Ext-ID를 타겟 M2M 디바이스에 할당된 기반 네트워크 식별자와 매핑한다. 또한 M2M SP는 CSE-ID와 M2M-Ext-ID, 그리고 기반 네트워크의 식별정보 간의 결합을 유지해야 한다.
도 5는 본 발명의 일 실시예에 의한 참조점에서의 통신 흐름을 보여주는 도면이다.
510은 오리지네이터(originator)이며 520은 리시버(receiver)이며, 양 개체 간의 정보 교환은 애플리케이션과 CSE간에 Mca 참조점을 통하여, 혹은 CSE 간에 Mcc 참조점을 통하여 이루어진다. 또한 전송(Send)와 응답(Respond)로 정보의 교환이 이루어진다. 전송 요청(Send request)는 오리지네이터(510)로부터 리시버(520)로 이루어지며 다음의 정보를 포함한다.
"op"는 실행할 오퍼레이션으로 C(Create), R(Retrieve), U(Update), D(Delete)를 포함한다. "to"는 타겟 리소스의 주소이며, "fr"은 오리지네이터를 나타내는 리소스의 주소를 의미한다. "hd"는 전송 요청에 대한 메타 정보를 포함하는 헤더이며 "cn"은 전송될 컨텐츠를 의미한다.
도 6은 본 발명의 일 실시예가 적용되는 공통 서비스 개체의 아키텍쳐를 보여주는 도면이다. 공통 서비스 개체는 공통 서비스 기능(Common Service Function)의 셋과 인에이블러 기능(Enabler Function)의 셋을 포함한다. 인에이블러 기능은 서비스 확장 인에이블러(Service Extension Enabler)와 그 외 인에이블러(Other enabler)로 구성되며, 서비스 확장 인에이블러는 CSE가 Mca, Mcc 참조점을 통하여 M2M 서비스를 제공하는 것을 가능하게 한다. 서비스 확장 인에이블러는 다음의 기능을 제공한다. i) 모듈 인증을 체크하며(Check module authentication), ii) 노드 리스스를 체크하며(Check node resources) iii) 존재하는 모듈간의 상호동작성을 체크하며(Check interoperability with existing modules), iv) 충돌을 어떻게 다룰 것인지를 결정하기 위해 폴리시와 권한을 체크하는데, 이는 새로운 모듈을 등록하지 않거나 존재하는 모듈의 등록을 해제할 수 있다(Check policy and rights to determine how to handle conflicts e.g. Do not register new module or deregister existing module, etc.), 또한 v) 새로운 모듈을 등록시키고(Register new module), vi) 새로운 모듈이 서비스 리스트에 추가되므로 새로운 서비스를 추가하며(Add new service(s) due to new module to list of services.) vii) 새로운 서비스 능력을 반영하여 API를 변경하며(Modify API support to reflect new service capabilities), viii) 새로운 모듈을 결합하기 위해 모듈간 통신을 변경한다(Modify inter-module communications to incorporate new module )
oneM2M은 시스템을 구현하기 위해 충족시켜야 할 요구사항으로 전반적인 시스템 요구사항(Overall System Requirements), 관리 요구사항(Management Requirements), 데이터 모델과 의미 요구사항(Data Model & Semantics Requirements), 보안 요구사항(Security Requirements), 과금 요구사항(Charging Requirements), 운영 요구사항(Operational Requirements)을 제시하고 있다.
본 명세서에서는 M2M, 특히 oneM2M을 중심으로 설명한다. 그러나 이러한 설명이 M2M에만 한정되는 것은 아니며, 기기간 통신, 즉 사물 통신을 제공하는 모든 시스템 및 구조와 이들 시스템에서 발생하는 통신에 적용 가능하다.
oneM2M 환경에서 사물간 통신을 할 때 전제 조건으로 서로 간 Local CSE와 애플리케이션이 서로 등록과정을 거쳐야 한다. 이 때 애플리케이션 인스턴스가 생성되며 이 정보는 애플리케이션 리소스 형태로 저장이 된다. 애플리케이션 리소스의 구성 요소는 애플리케이션에 대한 상태 정보를 포함하고 있으며, 실제 Local CSE가 애플리케이션 인스턴스와 통신을 할 때 사용 가능성 여부를 애플리케이션 리소스 정보를 참고로 하여 확인할 수 있다. 따라서 본 발명은 애플리케이션 리소스 정보를 바탕으로 사용 가능한 장치를 찾을 수 있는 방법을 제시하였으며, 그 방법으로 검색 범위를 포함할 경우, 검색 대상만을 포함한 경우로 나뉘어 제시한다.
도 7은 본 발명의 일 실시예에 의한 애플리케이션 리소스의 구성 형태를 나타내 주는 도면이다.
애플리케이션 리소스는 속성 값으로 expirationTime, accessRightID, creationTime, lastModificationTime, creator, lifeCycleStatus, searchStrings, ReachabilityStatus, AppId, App-Inst-Id 등의 속성 값을 포함하고 있으며, Group, Subscription Resource 등 하위 리소스를 포함하고 있다.
애플리케이션 리소스는 애플리케이션에 대한 정보를 저장하고 있으며, 생성시기는 애플리케이션 인스턴스가 Local CSE와 성공적인 등록과정을 수행한 결과로써 생성된다. 애플리케이션 리소스는 CRUD(Create, Retrieve, Update, Delete) 오퍼레이션을 적용할 수 있다. 즉, 애플리케이션 생성 요청에 의해 생성될 수 있으며, 검색될 수 있고, 속성들이 업데이트 되거나, 삭제될 수 있다. 애플리케이션 리소스에는 expirationTime 속성이 지정되어 있어, 시간이 만기되면 애플리케이션은 삭제될 수 있다. 또한 애플리케이션 요소 중에 lifeCycleStatus가 존재하여 애플리케이션이 생성되고 멈추기까지 과정을 상태 값으로 가지고 있다. 일 실시예로 상기 lifeCycleStatus가 가질 수 있는 값으로, Deployed, Install, Start, Stop, Uninstall과 같이 애플리케이션의 설치에서 제거까지의 상태를 모두 포함할 수 있다. 혹은 애플리케이션의 실행에서 중지까지의 Idle, Start, Stop과 같은 상태를 가질 수 있다. 또한 "ReachabilityStatus" 요소는 Local CSE에서 보낸 메시지를 받을 수 있는 상태여부를 나타내는 것으로써, 값이 도달 가능하다는 의미를 지닌 "OK" 또는 "True" 등의 값을 가질 경우, 해당 애플리케이션 인스턴스는 메시지를 현재 수신할 수 있는 상태임을 나타낸다. 애플리케이션 요소인 lifeCycleStatus와 ReachabilityStatus는 현재 애플리케이션의 상태를 알 수 있는 요소로써 이를 활용하여 사용 가능한 애플리케이션 인스턴스를 선별할 수 있다. 따라서, 검색 과정에서 애플리케이션의 사용 가능성에 중점을 두어 검색할 경우 위의 lifeCycleStatus와 ReachabilityStatus의 값을 확인할 수 있다. 이외에도 expirationTime 도 검색과정에서 확인할 수 있는데, 이미 만료된 경우에는 검색 결과에서 제외되며, 뿐만 아니라, 만료가 임박한 경우에도 검색 결과에서 제외시킬 수 있다. 예를 들어 10분 이내에 만료될 것으로 설정된 경우, 실행하는데 1시간이 걸리는 애플리케이션의 검색 요청에 대해서는 검색 결과에 포함시키지 않도록 구성할 수 있다.
애플리케이션 리소스는 그룹 리소스와 Subscription 리소스를 하위 리소스로 가지고 있으며, 애플리케이션은 특정 그룹에 속할 수 있고, 구독될 수 있다.
도면 8은 본 발명의 실시예에 의한 애플리케이션 리소스의 하위 리소스 구성 요소들을 보여준다.
그룹 리소스는 애플리케이션이 속하는 그룹을 나타내며 그룹이 없는 경우도 있고, 그룹에 속할 경우에는 그룹 명을 정할 수 있다. 또한 애플리케이션 리소스는 구독 요청에 의해 생성될 수 있다.
도면 9는 본 발명의 실시예에 의한 애플리케이션 리소스의 속성 값들에 대해 자세한 설명을 보여준다.
expirationTime은 애플리케이션의 만기 시간을 나타내며, 만기 시간이 설정되어 있을 경우에는 만기 시간이 되었을 때 애플리케이션이 정지 혹은 삭제 될 수 있다. 검색 과정에서 애플리케이션의 사용 가능성에 있어서 상기 만기 시간을 검색 조건으로 사용할 수 있다. 앞서 살펴본 바와 같이 1시간 이상 사용할 애플리케이션이라면 expirationTime 이 1시간 이내로 설정된 애플리케이션은 검색 결과에서 제외시킬 수 있다. accessRightID는 애플리케이션에 접근할 수 있는 권한을 의미하며, 애플리케이션에 대한 CRUD 요청이 수신되면, 가장 먼저 accessRightID를 통해 접근 권한을 확인한다. creationTime은 애플리케이션 리소스의 생성 시간을 말하며 lastModifiedTime은 애플리케이션 리소스에 수정 사항이 발생되면 기록된다. creator는 애플리케이션 생성자를 말하며, lifeCycleStatus는 애플리케이션의 현재 lifetime 상태에 대한 값을 가지고 있다. searchStrings는 애플리케이션 리소스에 대한 키워드 등이 들어갈 수 있으며 애플리케이션 리소스가 검색될 수 있도록 값을 가질 수 있다. ReachabilityStatus는 Local CSE로부터 애플리케이션 인스턴스가 현재 메시지를 받을 수 있는 상태인지 나타내는 값이다. App-Id는 애플리케이션에 대한 식별자 값을 나타내며, App-Inst-Id는 실행 환경에서 실제 작동되고 있는 애플리케이션 인스턴스를 말하며 이 값이 1인 경우에는 해당 애플리케이션 리소스는 애플리케이션 인스턴스 상태임을 말한다. 또는 App-Inst-Id는 별도의 애플리케이션 인스턴스를 식별하는 정보를 포함할 수 있다.
도 10은 본 발명의 실시예에 의한 사용 가능한 장비 검색 요청을 수행하는 과정을 보여주는 도면이다.
1010은 검색 범위를 포함하는 사용 가능한 장비 검색을 요청하는 과정을 보여주며, 1050은 검색 범위를 포함하지 않는 사용 가능한 장비 검색을 요청하는 과정을 보여준다.
1010의 검색 과정을 살펴보면 다음과 같다. ASN 1(1012)은 특정 위치에서 검색 범위를 기반으로 사용 가능한 장치 등을 검색하고자 기반 노드)1(1014)에게 검색 요청 메시지를 전달하게 된다(S1021). 검색 요청 메시지에는 ASN 1(1012)의 위치 정보와 검색 범위 정보, 사용 가능한 장치의 애플리케이션 상태 정보를 포함하게 된다. ASN 1(1012)의 검색 요청 메시지 중 위치 정보와 검색 범위 정보는 옵션으로 들어가며, 애플리케이션 상태 정보는 애플리케이션 리소스 정보 중 애플리케이션 상태를 알 수 있는 속성 값을 말한다.
검색 요청 메시지에 검색 범위 등의 조건이 포함되어 기반 노드 1(1014)에게 전달되는 경우 기반 노드 1(1014)은 검색 요청 메시지를 확인하여 검색 요청을 한 ASN 1(1012)을 기준으로 제일 가까운 MN 1(1016)을 찾고 MN 1(1016)에게 검색 요청 메시지를 전달한다(S1022). MN 1(1016)은 검색 요청 메시지를 확인 후 브로드캐스트(Broadcast)를 수행하게 된다(S1023). 브로드캐스트 메시지를 수신하는 ASN 2(1018)는 자신의 애플리케이션 현재 상태와 위치 정보를 포함하는 애플리케이션 리소스를 요청한 MN 1(1016)에게 전달한다(S1026). MN 1(1016)은 기반 노드 1(1014)에게 응답 결과를 전달하고(S1027), 기반 노드 1(1014)은 응답 결과에서 검색 요청 조건에 맞는 응답 결과를 선별하여 ASN 1(1012)에게 응답 결과를 전달한다(S1028).
1010의 검색 과정을 정리하면, 검색을 요청하는 노드가 검색 요청 메시지를 전송하면, 이를 수신한 기반 노드 또는 중간 노드는 검색을 요청한 노드의 위치 정보를 이용하여 검색 범위 내에 존재하는 검색 대상이 되는 노드들에게 검색 요청 메시지를 브로드캐스트로 전송할 수 있다.
검색 요청 메시지에서 검색 조건에 검색 범위 조건이 포함되어 있지 않은 경우의 1050의 검색 과정을 살펴보면 다음과 같다. ASN1(1052)로부터 검색 요청 메시지를 S1061과 같이 받는 기반 노드 1(1054)이 검색 대상의 애플리케이션 상태를 알기 위해 검색 대상에 검색 요청 메시지를 전달한다(S1062, S1063). 검색 요청을 받은 검색 노드 ASN 2(1058)는 검색 요청 메시지를 확인하고 애플리케이션 리소스 정보에 현재 애플리케이션 상태 정보를 포함하여 응답 결과를 기반 노드 1(1054)에게 전달한다(S1066, S1067). 기반 노드 1(1054)은 응답 결과를 확인하여 검색 요청 조건에 맞는 응답 결과를 ASN 1(1052)에게 전달한다(S1068). 기반 노드 1(1054)이 ASN 2(1058)에게 검색 요청을 전달하는 경우에 만약 ASN 2(1058)가 멀리 있다면 중간 노드 MN 1(1056) 등을 통해 검색 요청을 전달할 수 있다(S1062). 또한 검색 요청 메시지를 포함하는 ASN 1의 검색 요청에 대해 대상 노드인 ASN 2(1058)가 직접 요청 메시지를 받아 확인하고 해당하는 애플리케이션 리소스 정보를 응답 결과로써 ASN 1(1052)에게 다시 전달할 수 있다.
도 10의 1050에서 기반 노드인 IN 1(1054)와 중간 노드 MN 1(1056)는 선택적으로 구성될 수 있으므로 점선으로 표시하였다.
도 11, 12, 13은 본 발명의 일 실시예에 의한 사용 가능한 장비 검색 요청을 수행하는 세부 과정을 보여주는 도면이다.
ASN 1(1102)은 검색하고자 하는 대상(예를 들어 애플리케이션 ID, 그룹 URI, 또는 애플리케이션 검색 문구 등)에 대한 정보, 그리고 검색 범위는 옵션 형태로 구성되는 검색 요청 메시지를 생성한다. ASN 1(1102)은 상기 검색 요청 메시지를 기반 노드인 IN 1(1104)로 전송한다(S1110). IN 1(1104)은 디스커버리부가 검색 요청 메시지를 확인하여(S1111) 검색 요청 메시지에 검색 범위 조건이 옵션으로 들어가 있는지 판단한다(S1112). 만약 검색 범위 요청 조건이 포함되어 있다면 검색 요청한 오리지네이터(originator)인 ASN 1(1102)과 가장 가까운 MN을 찾기 위해 데이터관리저장부(DMR)에 검색 요청을 한다(S1113). 데이터관리저장부는 가장 가까운 MN 1(1106)의 접근 정보를 응답해 주고(S1114), 디스커버리부는 MN 1(1106)에게 브로드캐스트 요청 메시지를 포함하여 MN 1(1106)에게 검색 요청 메시지를 전달한다(S1115, S1120).
MN 1(1106)은 IN 1(1104)로부터 받은 검색 요청 메시지를 디스커버리부가 확인하고(S1121), 검색 조건을 포함하는 브로드캐스트를 수행해 달라고 요청한다(S1122). MN 1(1106)은 검색 요청 메시지를 포함하는 브로드캐스트를 수행하게 된다(S1123, S1130).
연결하여 도 12에서 프로세스가 진행된다.
브로드캐스트 형태로 검색 요청 메시지를 받는 ASN 2(1108)는 검색 요청 메시지를 디스커버리부가 확인하고(S1241) 애플리케이션 서비스 관리부에게 애플리케이션 상태 정보를 포함하는 애플리케이션 리소스 요청을 한다(S1242). 애플리케이션 서비스 관리부는 검색 요청 메시지의 조건에 맞는 애플리케이션 리소스에 대한 정보를 구성하여 응답 결과를 MN 1(1106)에게 돌려준다(S1243, S1245). 이 때, 애플리케이션 인스턴스가 없는 경우이거나 애플리케이션 인스턴스가 모두 가능한 상태가 아닐 경우에는 애플리케이션 인스턴스를 생성하여 애플리케이션 리소스 정보를 구성하여 응답 결과를 MN 1(1106)에게 돌려준다.
MN 1(1106)은 응답 결과를 IN 1(1104)에게 전달하며(S1245) IN 1(1104)은 응답 결과로부터 검색 요청 조건에 맞는 항목 만을 선별하여 ASN 1(1102)에게 검색 결과를 돌려 준다(S1246).
만약 ASN 1(1102)이 검색 요청 메시지에 검색 범위 조건이 없는 메시지 구성일 경우(도 11의 S1112에서 '아니오'인 경우)에는 검색 요청 메시지를 받는 IN 1(1104)의 디스커버리부에서 S1111, S1112 과정이 동일하게 수행된 후에 검색 범위 조건이 없는 경우 디스커버리부는 검색 요청 메시지에 있는 검색 대상 정보에 해당하는 ASN 2(1108)에게 검색 요청 메시지를 전달한다(S1247). ASN 2(1108)는 검색 요청에 메시지를 확인하여 CSE가 검색 요청 메시지의 조건에 맞는 현재 애플리케이션 정보를 애플리케이션 리소스(Application Resource) 형태로 저장하여 응답 결과를 되돌려 준다(S1254). 이 때, 애플리케이션 인스턴스가 없는 경우이거나 애플리케이션 인스턴스가 모두 가능한 상태가 아닐 경우에는 애플리케이션 인스턴스를 생성하여 애플리케이션 리소스 정보를 구성하여 응답 결과를 MN 1(1106)에게 돌려준다(S1260). 응답 결과를 받은 IN 1(1104)은 검색 요청 조건에 맞는 항목만을 디스커버리부가 선별하여 응답 결과를 ASN 1(1102)에게 되돌려 준다(S1270).
연결하여 도 13에서 프로세스가 진행된다.
ASN 1(1102)이 범위 검색을 포함하지 않는 검색 요청을 MN 1(1106)에게 전달하는 경우 MN 1(1106)은 검색 요청 메시지를 확인하여 검색 요청을 검색 대상인 ASN 2(1108)에게 전달한다(S1324). 검색 요청 메시지를 받은 ASN 2(1108)는 검색 요청에 메시지를 확인하여 CSE가 검색 요청 메시지의 조건에 맞는 현재 애플리케이션 인스턴스 정보를 애플리케이션 리소스 형태로 저장하여 응답 결과를 되돌려 준다(S1335, S1339). 이 때, 애플리케이션 인스턴스가 없는 경우이거나 애플리케이션 인스턴스가 모두 가능한 상태가 아닐 경우에는 애플리케이션 인스턴스를 생성하여 애플리케이션 리소스 정보를 구성하여 응답 결과를 MN 1(1106)에게 돌려준다. 응답 결과를 받은 MN 1(1106)은 검색 요청 조건에 맞는 항목만을 디스커버리부가 선별하여 응답 결과를 ASN 1(1102)에게 돌려준다(S1345, S1346).
ASN 1(1102)이 범위 검색을 포함하지 않는 검색 요청을 검색 대상인 ASN 2(1108)에게 전달하는 경우 검색 요청 메시지를 받은 ASN 2(1108)는 검색 요청에 메시지를 확인하여 CSE가 검색 요청 메시지의 조건에 맞는 현재 애플리케이션 정보를 애플리케이션 리소스 형태로 저장하여 응답 결과를 되돌려 준다(S1356). 이 때, 애플리케이션 인스턴스가 없는 경우이거나 애플리케이션 인스턴스가 모두 가능한 상태가 아닐 경우에는 애플리케이션 인스턴스를 생성하여 애플리케이션 리소스 정보를 구성하여 응답 결과를 MN 1(1106)에게 돌려준다. 응답 결과를 받은 MN 1(1106)은 검색 요청 조건에 맞는 항목만을 디스커버리부가 선별하여 응답 결과를 ASN 1(1102)에게 돌려준다(S1391).
도 11 내지 도 13의 내용을 정리하면 다음과 같다.
M2M 시스템을 구성하는 요소로 요청 메시지를 송수신하고 검색하는 검색 노드(IN1, MN1), 대상 노드(IN1, MN1, ASN2), 요청 노드(ASN1)이 있다. IN1과 MN1은 검색 노드이자 대상 노드가 되는데, 이는 ASN1으로부터 검색 요청 메시지를 수신하므로 IN1은 대상 노드가 되며, MN1으로 상기 검색 요청 메시지를 전달하므로 IN1은 검색 노드가 된다. 마찬가지로 IN1으로부터 검색 요청 메시지를 수신하므로 MN1은 대상 노드가 되며, ASN2로 상기 검색 요청 메시지를 전달하므로 MN1은 검색 노드가 된다.
요청 노드가 IN1이며, 검색 노드가 MN1, 대상 노드가 ASN2인 경우에 도 11 내지 도 13을 정리하면 다음과 같다.
요청 노드(1104)는 검색 요청 메시지를 포함하는 애플리케이션 리소스의 검색 요청 메시지를 생성하여 상기 검색 노드(1106)로 전송한다. 그리고 검색 노드(1106)는 상기 수신한 메시지가 사용 가능한 애플리케이션의 검색을 지시한 경우, 애플리케이션 리소스의 상태 정보를 이용하여 검색을 수행하며, 상기 대상 노드(1108)로 상기 수신한 메시지를 전달하고, 상기 대상 노드(1108)로부터 애플리케이션 리소스를 포함하는 검색 결과를 수신한다. 한편, 대상 노드(1108)는 애플리케이션 리소스의 상태 정보를 이용하여 검색을 수행하게 된다.
상기 검색 노드는 기반 노드 또는 중간 노드가 될 수 있으며, 상기 대상 노드는 중간 노드 또는 애플리케이션 서비스 노드가 될 수 있다. 그리고 애플리케이션 리소스와 관련하여서는 애플리케이션 아이디(AppId), 애플리케이션 인스턴스 아이디(App-Inst-Id), 서비스 만료 시간(expirationTime), 접근권한(accessRightID), 생성 시간(creationTime), 리소스 마지막 수정 시간(lastModifiedTime), 생성자(creator), 상기 애플리케이션이 현재 가지는 라이프타임(lifetime) 상태정보(lifecyclestatus), 검색 키워드(searchStrings), CSE로부터 메시지를 받을 수 있는지 여부, 애플리케이션 상태 정보(reachabilityStatus), 그룹 정보(group), 구독 정보(subscription) 중 어느 하나 이상을 포함할 수 있다.
상기 사용 가능한 장치는 상기 장치를 구성하는 노드(Node), CSE, 애플리케이션(Application) 모두 사용 가능한 상태, 노드(Node) 또는 CSE가 요청 메시지를 받아 처리할 수 있는 상태, 또는 CSE로부터 애플리케이션 인스턴스가 요청 메시지를 받아 처리할 수 있는 상태 중 어느 하나 이상가 될 수 있다.
또한, 상기 애플리케이션 리소스의 상태 정보는 상기 애플리케이션 인스턴스의 상태로 lifeCycleStatus 또는 reachabilityStatus 상태 중 어느 하나를 포함할 수 있다.
S1112에서 살펴본 바와 같이 상기 검색 요청 메시지는 검색 범위를 포함하며, 상기 검색 노드는 상기 검색 범위 내의 대상 노드로 상기 메시지를 전달할 수 있다.
도 14 내지 도 19는 본 발명의 일 실시예에 의한 메시지의 구성을 보여주는 도면이다.
도 14 및 도 15의 1400 및 1500은 검색 요청을 할 경우 사용 가능한 메시지의 구성이다(도 11에서 S1110). 검색범위를 포함하는 검색 요청 메시지의 경우 op는 명령어를 의미하며 "RETRIEVE"가 지시되어 있다. "fr"은 메시지의 발신자 정보로 1400, 1500에는 발신자인 ASN 1(1102)의 CSE-ID 정보가 포함된다. "to"는 메시지의 수신자 정보로 IN 1의 CSE-ID가 포함되어 있다. 그리고 "cn"은 메시지의 콘텐츠, 즉 내용이 들어있는데, 검색 범위를 포함하는 검색 요청 메시지의 경우(1400), 검색 범위(Search Range), 검색 키워드(Search Keyword), 발신자 위치(Originator LOC), 애플리케이션 상태 정보(Application Resource lifecycleStatus, Application Resource Reachability) 등이 포함되어 있다. 만약 검색 범위를 포함하고 있지 않은 검색 요청 메시지의 경우(1500)에는 검색 요청자 위치 및 검색 범위가 포함되어 있지 않다.
도 16의 1600은 검색범위를 포함하는 검색 요청 메시지의 경우 IN 1(1104)이 MN 1(1106)에게 브로드캐스트 검색 요청을 지시하는 검색 요청 메시지이다(도 11에서 S1120). IN 1(1104)은 ASN 1(1102)으로부터 받은 검색 요청 메시지에 MN 1(1106)에게 검색 방법(Search Method)를 포함하여 MN 1(1106)에게 전달한다. 브로드캐스트 검색 요청 메시지는 오리지네이터의 위치 정보(Originator_LOC: (10, 30))를 포함한다.
도 17의 1700은 MN 1(1106)이 브로드캐스트를 수행할 때 포함되는 메시지 형태를 말한다(도 11에서 S1130). 검색 키워드로 애플리케이션 ID, 그룹 URI 및 searchStrings 정보가 포함되어 있다.
도 18의 1800은 ASN 1(1102)이 검색 요청 메시지를 IN 1(1104)에게 전달되었을 때 검색 범위 요청 조건이 들어있지 않은 경우 IN 1(1104)이 검색 키워드에 명시되어 있는 대상에게 검색 요청 메시지를 전달할 때 구성되는 메시지 형태이다(도 12에서 S1250). "mi"는 검색 요청 메시지의 메타정보로 "rt"는 응답 결과 형태를 지정하는 것이며, "da"는 검색 요청 대상까지 메시지를 전달할 때 딜리버리(delivery) 형태로 전달할 수 있도록 해준다. "rt"는 애플리케이션 리소스 형태로 받을 수 있으며, "da"는 ON으로 설정되어 있어 IN 1이 ASN2까지 전달할 때 딜리버리 형태로 전달할 수 있도록 해준다.
도 19의 1901 및 1902는 ASN2(1108)가 검색 요청 메시지에 대한 응답 결과 메시지를 보여준다(도 12에서 각각 S1245, S1260). "cn" 항목에 애플리케이션 리소스를 응답 결과로 받으며, 범위를 포함하는 검색 요청으로 브로드캐스트 형태로 수신된 검색 요청 메시지에 대한 응답 결과는 1901로 구성된다. 그 외에 경우에는 1902 형태로 구성된다.
도 13에서의 메시지 전송과 응답에 대해 도 14 내지 도 19를 이용하여 설명하면 도 13에서 S1307은 1500, S1328은 1800, S1339는 1902, S1350은 1500, S1361은 1902의 모습과 동일하다.
도 20은 본 발명의 일 실시예에 의한 응답되는 애플리케이션 리소스의 예를 보여주는 도면이다.
애플리케이션 리소스(2000)의 요소 중에 lifeCycleStatus가 Deployed, Install, Stop, Uninstall 등을 예제로 애플리케이션 본연의 기능을 수행할 수 있는 단계가 아닌 상태를 제외한 값과 reachabilityStatus가 "OK" 상태로 CSE로부터 애플리케이션 인스터스가 메시지를 받을 수 있는 상태임을 나타내는 경우, 그리고 App-Inst-Id가 존재하여 애플리케이션 인스턴스임을 말하고 있을 때 본 애플리케이션 인스턴스는 사용 가능한 상태라 말한다. 만약 reachabilityStatus가 "OK" 가 아닌 받지 못하는 상황을 나타내는 값을 지닌 경우 혹은 lifeCycleStatus의 값이 실제 애플리케이션이 동작할 수 있는 상황이 아닌 경우에는 해당 애플리케이션 인스턴스는 사용 불가능한 상태임을 말한다.
지금까지 살펴본 본 발명에서는 사용 가능한 장치에 대한 정의 및 애플리케이션(Application)의 상태 정보를 담고 있는 리소스 타입(Resource Type)에 대해 정의하고 이를 활용한 검색에 대한 실시 예를 살펴보았다. 이에 보다 상세히 상기 장치와 과정을 살펴보고자 한다.
먼저, 사용 가능한 장치라 함은 장치를 구성하는 요소인 노드(Node), CSE, 애플리케이션(Application)들이 사용 가능한 상태를 말한다. 검색 요청 메시지를 수신하는 장치가 검색 요청 메시지를 처리하고 있는 상태일 때는 검색 요청 메시지를 수신하여 명령어를 수행하고 있는 과정이므로 노드 및 CSE가 사용 가능한 상태라 할 수 있다. 그러나, 노드, CSE는 사용 가능한 상태이고, 애플리케이션이 사용 가능하지 않다면 이 장치는 사용 가능하지 않은 상태라 할 수 있다. 따라서 본 명세서에서는 노드 및 CSE는 검색 요청을 받아 메시지를 처리하는 과정이 있으므로 노드 및 CSE는 사용 가능한 상태를 전제로 애플리케이션의 사용 가능한 상태를 알아 냄으로써 사용 가능한 장치를 찾아내는 방법을 제시한다.
장치 안에서 작동되는 애플리케이션에 대한 정보는 애플리케이션 리소스에 저장되며, 애플리케이션 리소스 생성 시점은 Local CSE와 성공적인 등록과정(Registration)의 결과로써 생성된다. 또한 애플리케이션 리소스는 CRUD(Create, Retrieve, Update, Delete) 될 수 있다. 애플리케이션 리소스를 구성하는 요소 중에 현재 lifetime 정보를 가지는 "lifeCycleStatus" 와 CSE로부터 메시지를 받을 수 있는 상태를 나타내는 "ReachabilityStatus" 요소를 포함하고 있다. "lifeCycleStatus"와 "ReachabilityStatus" 요소는 애플리케이션의 상태를 알 수 있는 정보로 활용된다. 하나의 장치 안에는 여러 애플리케이션이 존재할 수 있으므로 애플리케이션 리소스를 구별할 수 있는 "App-Id", "App-Inst-Id" 값을 구성 요소도 가지고 있다. 실행환경에 존재하는 애플리케이션일 경우에는 "App-Inst-Id" 값을 가지며 이를 애플리케이션 인스턴스라고 한다.
사용 가능한 장치를 찾기 위한 실시 예는 검색 범위를 포함하는 사용 가능한 장치 검색과 검색 대상을 지정하여 사용 가능한 장치를 검색하는 경우로 크게 2가지로 나뉘어져 있다. 검색 대상을 지정하여 사용 가능한 장치를 검색하는 경우에는 세부 실시 예로 각각 기반 노드, 중간 노드, 검색 대상 노드에게 검색 요청을 하는 경우로 나뉘어져 있다.
검색 범위를 포함하는 사용 가능한 장치를 검색하는 실시 예는 다음과 같다. 기반 노드로 구성된 M2M 시스템을 구성하는 제 1 기반 노드는 요청 애플리케이션(Application) 서비스 노드를 최초 발송자(오리지네이터, Originator)로 하는 검색 요청 메시지를 확인하여 범위 검색 여부 판단, 요청 애플리케이션 서비스 노드에 가장 가까운 중간 노드를 찾고자 데이터관리저장(Data Management & Repository)부에 요청 및 중간 노드에게 Braodcast 방식으로 검색 요청하는 디스커버리(Discovery)부, 제 1 기반 노드에서 서비스하는 중간 노드 목록을 가지고 있는 데이터관리지정부를, 그리고 상기 검색 요청을 수행한 결과를 제 1 애플리케이션 서비스 노드에게 전달하는 단계를 포함한다.
그리고, 상기 제 1 기반 노드로부터 검색 요청 메시지를 받는 제 1 중간 노드는 검색 요청 메시지를 확인하고 브로드캐스트(Broadcast) 요청을 하는 디스커버리부, 브로드캐스트를 수행하는 통신관리전달핸들링(Communication Management / Delivery Handling)부를 포함하며, 브로드캐스트 메시지를 확인하는 제 2 애플리케이션 서비스 노드는 브로드캐스트 메시지를 확인하여 애플리케이션 상태를 요청하는 디스커버리부, 현재 애플리케이션 상태를 확인하고 애플리케이션 리소스 형태로 정보를 제공하는 CSE, 상기 수신한 결과를 제 1 중간노드를 거쳐 제 1 기반 노드에게 전송하는 단계, 제 1 중간노드로 부터 수신한 결과에서 검색 요청 조건에 맞는 정보만을 제 1 애플리케이션 서비스 노드에게 전달하는 단계를 포함한다.
검색 대상을 지정하여 사용 가능한 장치 검색 요청에 대한 실시예로 기반 노드로 구성된 M2M 시스템을 구성하는 제 1 기반 노드는 요청 애플리케이션 서비스 노드를 최초 발송자로 하는 검색 요청 메시지를 확인하여 사용 가능한 상태 확인 요청을 검색 대상인 제 2 애플리케이션 서비스 노드에 전달하는 단계, 사용 가능한 상태 요청 메시지를 수신하는 제 2 애플리케이션 서비스 노드가 CSE에게 사용 가능한 상태를 요청하는 단계, 상기 수행한 결과를 제 1 기반 노드에게 전달하는 단계, 제 2 애플리케이션 서비스 노드가 검색 요청 조건에 맞는 정보만을 제 1 애플리케이션 서비스 노드에게 전달하는 단계를 포함한다.
검색 대상을 지정하여 사용 가능한 장치 검색 요청에 대한 또 다른 실시예로 중간 노드로 구성된 M2M 시스템을 구성하는 제 1 중간 노드는 요청 애플리케이션 서비스 노드를 최초 발송자로 하는 검색 요청 메시지를 확인하여 사용 가능한 상태 확인 요청을 검색 대상인 제 2 애플리케이션 서비스 노드에 전달하는 단계, 사용 가능한 상태 요청 메시지를 수신하는 제 2 애플리케이션 서비스 노드가 CSE에게 사용 가능한 상태를 요청하는 단계, 상기 수행한 결과를 제 1 중간 노드에게 전달하는 단계, 이를 수신하는 제 1 중간 노드가 검색 요청 조건에 맞는 정보만을 제 1 애플리케이션 서비스 노드에게 전달하는 단계를 포함한다.
검색 대상을 지정하여 사용 가능한 장치 검색 요청에 대한 또 다른 실시예로 제 1 애플리케이션 서비스 노드를 최초 발송자로 검색 대상인 제 2 애플리케이션 서비스 노드가 검색 요청 메시지를 확인하는 단계, 제 2 애플리케이션 서비스 노드가 CSE에게 사용 가능한 상태를 요청하는 단계, 상기 수행한 결과를 제 1 애플리케이션 서비스 노드에게 전달하는 단계, 이를 수신하는 제 1 애플리케이션 서비스 노드가 검색 조건에 맞는 정보만을 선별하는 단계를 포함한다.
도 21은 본 발명의 일 실시예에 의한 검색을 수행하는 검색 노드와 검색 대상이 되는 대상 노드의 구성을 보여주는 도면이다.
검색을 수행하는 노드(2110, 검색 노드)는 중간 노드 또는 기반 노드를 의미하며, 검색 대상이 되는 노드(2120)는 앞서 ASN2와 같이 검색하고자 하는 애플리케이션을 보유한 노드 또는 상기 검색을 수행하는 노드(2110)로부터 검색 요청 메시지를 수신하는 중간 노드 또는 기반 노드를 의미한다.
검색 요청 메시지를 송신하는 요청 노드(오리지네이터 또는 오리지네이터로부터 검색 요청 메시지를 수신하여 전달하는 기반 노드를 포함) 및 검색 결과를 제공하는 대상 노드(검색 대상 노드, 2120)를 포함하는 M2M 시스템을 구성하는 M2M 노드(2110)의 구성을 살펴보면 다음과 같다.
검색 요청 메시지를 요청 노드로부터 수신하고 대상 노드(검색 대상 노드)로부터 애플리케이션 리소스를 포함하는 검색 결과를 수신하는 디스커버리(Discovery)부(2112)가 있으며, 상기 수신한 메시지가 사용 가능한 애플리케이션의 검색을 지시한 경우, 상기 대상 노드로 상기 수신한 메시지를 전달하는 통신관리전달핸들링(Communication Management / Delivery Handling)부(2116), 그리고 애플리케이션 리소스의 상태 정보를 이용하여 검색을 수행하도록 상기 디스커버리부(2112)와 상기 통신관리전달핸들링부(2116)를 제어하는 제어부(2118)를 포함하며, M2M 노드(2110)는 M2M 환경에서 사용 가능한 장치를 검색한다.
보다 상세히 살펴보면, 상기 디스커버리부(2112)는 상기 검색 요청 메시지가 위치 기반 범위 검색을 요청하는 메시지인 경우 상기 검색 요청 메시지의 오리지네이터인 노드에 가장 가까운 중간 노드의 정보를 데이터관리저장부(Data Management and Repository)(2114)에서 검색할 수 있다.
또한, 상기 M2M 노드(2110)는 기반 노드 또는 중간 노드가 될 수 있다. 대상 노드(2120)는 중간 노드 또는 애플리케이션 서비스 노드가 될 수도 있다. 또한 기반 노드가 다른 기반 노드로 검색 요청 메시지를 전달할 수 있는 구조인 경우 또는 애플리케이션 서비스 노드로부터 검색 요청을 받아 검색을 수행한다면 상기 대상 노드(2120)는 기반 노드가 될 수도 있다.
상기 애플리케이션 리소스의 상태 정보는 상기 애플리케이션 인스턴스의 상태로 lifeCycleStatus 또는 reachabilityStatus 상태 중 어느 하나를 포함하도록 하여, 검색 시 애플리케이션 인스턴스의 상태에 따라 검색 결과에 포함시키거나, 혹은 포함시키지 않도록 제어할 수 있다. 그리고 상기 검색 요청 메시지는 검색 범위를 포함하며, 상기 M2M 노드(2110)는 상기 검색 범위 내의 대상 노드(2120)로 상기 메시지를 전달할 수 있다.
다음으로 검색 대상 노드(2120)에 대해 살펴본다. 검색 대상 노드(2120)는 기반 노드, 중간 노드 또는 애플리케이션 서비스 노드 중 어느 하나가 되며, 검색 요청 메시지를 수신하여 검색 결과를 제공하는 M2M 노드(2120)이다. 구성을 살펴보면, 검색 요청 메시지를 수신하는 통신관리전달핸들링(Communication Management / Delivery Handling)부(2124), 상기 수신한 메시지가 사용 가능한 애플리케이션의 검색을 지시한 경우, 상기 애플리케이션의 설치 또는 사용 가능을 확인하는 데이터관리저장부(Data Management and Repository)(2122) 및 상기 애플리케이션이 설치되었으며 상기 애플리케이션이 사용 가능한 경우 상기 검색 요청 메시지를 송신한 노드에게 상기 애플리케이션 리소스의 상태 정보를 전송하도록 상기 통신관리전달핸들링(Communication Management / Delivery Handling)부(2124)를 제어하는 제어부(2126)를 포함하며, 상기 M2M 노드(2120)는 M2M 환경에서 사용 가능한 애플리케이션 리소스를 제공한다. 상기 제어부(2126)는 상기 애플리케이션의 서비스 만료 시간 정보를 확인하여 상기 애플리케이션 서비스가 만료되지 않은 상기 애플리케이션 리소스의 상태 정보를 전송한다. 여기서 서비스 만료 시간 정보의 확인 과정에서 비록 서비스 만료 시간은 되지 않았으나 곧 서비스가 만료할 경우에도 서비스가 만료된 것으로 간주할 수 있다.
도 21의 검색 노드(2110)와 대상 노드(2120) 공통으로 적용되는 사항으로 보다 상세히, 상기 애플리케이션 리소스는 애플리케이션 아이디(AppId), 애플리케이션 인스턴스 아이디(App-Inst-Id), 서비스 만료 시간(expirationTime), 접근권한(accessRightID), 생성 시간(creationTime), 리소스 마지막 수정 시간(lastModifiedTime), 생성자(creator), 상기 애플리케이션이 현재 가지는 라이프타임(lifetime) 상태정보(lifecyclestatus), 검색 키워드(searchStrings), CSE로부터 메시지를 받을 수 있는지 여부, 애플리케이션 상태 정보(reachabilityStatus), 그룹 정보(group), 구독 정보(subscription) 중 어느 하나 이상을 포함한다.
또한, 상기 사용 가능한 장치는 상기 장치를 구성하는 노드(Node), CSE, 애플리케이션(Application) 모두 사용 가능한 상태, 노드(Node) 또는 CSE가 요청 메시지를 받아 처리할 수 있는 상태, 또는 CSE로부터 애플리케이션 인스턴스가 요청 메시지를 받아 처리할 수 있는 상태 중 어느 하나 이상이 될 수 있다. 그리고 상기 애플리케이션 리소스의 상태 정보는 상기 애플리케이션 인스턴스의 상태로 lifeCycleStatus 또는 reachabilityStatus 상태 중 어느 하나를 포함할 수 있다.
도 22는 본 발명의 일 실시예에 의한 검색 노드를 중심으로 M2M 환경에서 사용 가능한 장치를 검색하는 과정에 대해 살펴본다. 검색 노드는 앞서 도 11 내지 도 13의 IN1 또는 MN1이 될 수 있다.
검색 노드가 애플리케이션 리소스의 검색 요청 메시지를 수신하면(S2210), 검색 노드는 상기 검색 요청 메시지가 사용 가능한 애플리케이션의 검색을 지시하는지 확인하고, 상기 검색 요청 메시지가 사용 가능한 애플리케이션의 검색을 지시한 경우, 상기 검색 노드는 대상 노드로 상기 검색 요청 메시지를 전달한다(S2220). 이후 상기 검색 노드 또는 대상 노드는 애플리케이션 리소스의 상태 정보를 이용하여 검색을 수행한다(S2230). 보다 상세히 상기 검색 노드는 기반 노드 또는 중간 노드이고, 상기 대상 노드는 중간 노드 또는 애플리케이션 서비스 노드가 될 수 있으며, 상기 애플리케이션 리소스는 애플리케이션 아이디(AppId), 애플리케이션 인스턴스 아이디(App-Inst-Id), 서비스 만료 시간(expirationTime), 접근권한(accessRightID), 생성 시간(creationTime), 리소스 마지막 수정 시간(lastModifiedTime), 생성자(creator), 상기 애플리케이션이 현재 가지는 라이프타임(lifetime) 상태정보(lifecyclestatus), 검색 키워드(searchStrings), CSE로부터 메시지를 받을 수 있는지 여부, 애플리케이션 상태 정보(reachabilityStatus), 그룹 정보(group), 구독 정보(subscription) 중 어느 하나 이상을 포함할 수 있다.
그리고, 상기 사용 가능한 장치는 상기 장치를 구성하는 노드(Node), CSE, 애플리케이션(Application) 모두 사용 가능한 상태, 노드(Node) 또는 CSE가 요청 메시지를 받아 처리할 수 있는 상태, 또는 CSE로부터 애플리케이션 인스턴스가 요청 메시지를 받아 처리할 수 있는 상태 중 어느 하나 이상이 될 수 있다.
그리고 상기 애플리케이션 리소스의 상태 정보는 상기 애플리케이션 인스턴스의 상태로 lifeCycleStatus 또는 reachabilityStatus 상태 중 어느 하나를 포함할 수 있다.
한편, 상기 검색 요청 메시지는 검색 범위를 포함할 수 있으며, 검색 범위를 포함할 경우 상기 검색 노드는 상기 검색 범위 내의 대상 노드로 상기 메시지를 전달한다.
지금까지 살펴본 본 발명의 일 실시예는 M2M 시스템에서 사용 가능한 장치들을 검색하는 방법에 관한 것으로, 검색 대상, 애플리케이션 상태 정보, 요청 범위 등을 포함하여 검색 요청을 하는 ASN1과 검색 요청을 수신하고 처리하는 IN 1, MN 1, 애플리케이션 상태 요청을 수신하여 결과를 제공하는 ASN 2로 구성되어 있으며, 사용 가능한 장치를 검색하고자 하는 이벤트(event)가 발생했을 때, 이를 찾을 수 있게 해주는 방법을 제시한다.
ASN 1을 최초 발송자로 하는 검색 요청 메시지를 수신하는 IN 1에서 검색 대상 노드 및 ASN 1과 제일 가까운 MN 1을 선별하여 검색 요청을 전달하게 된다. 혹은 ASN 1을 최초 발송자로 하는 검색 요청 메시지를 수신하는 MN1에서 검색 대상 노드에게 검색 요청을 전달하거나 ASN 1을 최초 발생자로 검색 대상인 ASN 2에게 검색 요청 메시지를 전달하게 된다. 검색 대상 노드가 검색 요청 메시지를 수신하는 경우에는 현재 애플리케이션의 상태를 포함하는 정보를 포함하여 결과를 되돌려 준다. 범위를 기반으로 하는 검색 요청일 경우에는 검색 요청을 하는 IN 1이 ASN 1과 가장 가까운 MN 1에게 검색 요청을 전달하고, MN 1은 브로드캐스트를 수행하고, 이를 수신하는 ASN 2는 애플리케이션의 상태를 포함하는 정보를 포함하여 결과를 되돌려 준다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.