KR101616211B1 - 스케일러블 네트워킹된 디바이스의 동적 매핑 - Google Patents

스케일러블 네트워킹된 디바이스의 동적 매핑 Download PDF

Info

Publication number
KR101616211B1
KR101616211B1 KR1020147003914A KR20147003914A KR101616211B1 KR 101616211 B1 KR101616211 B1 KR 101616211B1 KR 1020147003914 A KR1020147003914 A KR 1020147003914A KR 20147003914 A KR20147003914 A KR 20147003914A KR 101616211 B1 KR101616211 B1 KR 101616211B1
Authority
KR
South Korea
Prior art keywords
networked device
scalable networked
scalable
network
name
Prior art date
Application number
KR1020147003914A
Other languages
English (en)
Other versions
KR20140036032A (ko
Inventor
모르데하이 마르가리트
벤자민 마이탈
Original Assignee
엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 filed Critical 엠파이어 테크놀로지 디벨롭먼트 엘엘씨
Publication of KR20140036032A publication Critical patent/KR20140036032A/ko
Application granted granted Critical
Publication of KR101616211B1 publication Critical patent/KR101616211B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크 연결된 그리고 비네트워크 연결된 디바이스들에 대한 디바이스 탐색 알고리즘들을 통해 디바이스들에 대한 최적화된 루트를 가능하게 하는 명명 컨벤션을 이용하여 매핑될 수도 있는 스케일러블 네트워킹된 디바이스들의 시스템을 제공하는 기술들이 일반적으로 설명된다. 명명 컨벤션 및 대응하는 알고리즘들은, 사용자들로 하여금, 원하는 기능성을 탐색할 수 있게 하고, 적합한 스케일러블 네트워킹된 디바이스(들) 에 액세스할 수 있게 하며, 상기 원하는 기능성을 활용할 수 있게 할 수도 있다. 또한, 스케일러블 네트워킹된 디바이스들의 메시를 연속적으로 매핑시키고 업데이팅하기 위해 스파이더 알고리즘이 이용될 수도 있다.

Description

스케일러블 네트워킹된 디바이스의 동적 매핑{SCALABLE NETWORKED DEVICE DYNAMIC MAPPING}
본 명세서에서 달리 나타내지 않는다면, 이 섹션에 기재된 자료들은 본 출원에서 청구항들에 대한 종래기술이 아니고, 이 섹션에 포함되었다고 종래기술이라고 인정된 것은 아니다.
유비쿼터스 컴퓨팅 (유비컴프 (ubicomp)) 은, 정보 프로세싱이 매일의 오브젝트들 및 활동들로 통합되는 인간-컴퓨터 상호작용의 포스트-데스크톱 모델 (post-desktop model) 이다. 이러한 컴퓨팅 모델에 따르면, 유니쿼터스 컴퓨팅을 이용하는 사람은 다수의 컴퓨테이션 디바이스들 및 시스템들 (computational devices and systems) 을 동시에 관여시킬 수도 있고, 이들이 그렇게 하고 있는 것을 반드시 인식할 필요가 없을 수도 있다. 유비쿼터스 컴퓨팅의 다양한 모델들은, 작고, 저렴하고, 강건하고, 네트워킹된 입력 및 프로세싱 디바이스들에 관한 것이고 일상 생활 전반에 걸쳐 다양한 스케일로 분포되며 일반적으로 명백히 평범한 결과들로 전환되는 공통 속성들을 공유한다. 예를 들어, 홈 유비쿼터스 컴퓨팅 환경은 조명 및 환경 제어들을, 의류에 짜 맞춰진 개인용 생체인식 모니터들과 상호연결할 수도 있어서, 방 안의 조도 및 가열 조건들이 연속적으로 그리고 지각불가능하게 변조될 수도 있도록 한다. 또 다른 예는 원거리 위치에서의 온도 또는 유사한 환경 파라미터들에 대한 인터넷 탐색을 수행하는 것을 포함할 수도 있고, 이러한 탐색은 스케일러블 네트워킹된 디바이스 시스템 (scalable networked device system) 을 통해 다수의 센서들로부터 결과들을 취출한다.
유비쿼터스 컴퓨팅은 시스템 설계 및 엔지니어링에서, 시스템 모델링에서, 그리고 사용자 인터페이스 설계에서 도전과제들을 제시한다. 동시적인 인간-컴퓨터 상호작용 모델들은, 커맨드-라인이든지, 메뉴-구동되든지, 또는 그래픽 사용자 인터페이스에 기초하든지 간에, 유비쿼터스 모델에 부적절할 수도 있거나 또는 적합하지 않을 수도 있다. 유비쿼터스 컴퓨팅 네트워크는 매우 많은 개수의 디바이스들을 포함할 수도 있다. 이러한 디바이스들의 위치, 기능성, 네트워크 연결, 및 상태는 매우 가변적일 수도 있다. 따라서, 사용자들이 이러한 디바이스들에 원격으로 액세스하여 디바이스들의 기능성을 활용할 수 있도록 이러한 디바이스들을 연속적으로 매핑시키는 것이 도전과제이다.
일반적으로, 본 개시물은 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 기법들을 설명한다. 일부 실시형태에 따르면, 일 방법은, 제 1 스케일러블 네트워킹된 디바이스에서 네트워크 식별자를 획득하려고 시도하는 것, 및 네트워크 식별자가 획득되는 경우, 제 1 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 및/또는 상태 중 적어도 하나에 기초하여 제 1 스케일러블 네트워킹된 디바이스가 네트워크 내에서 발견가능하게 되도록 제 1 스케일러블 네트워킹된 디바이스 정보를 네트워크 관리 서버에 제공하는 것을 포함할 수도 있다. 또한, 이 방법은, 네트워크 관리 서버에 의한 확인응답시, 제 1 스케일러블 네트워킹된 디바이스에 통신가능하게 커플링되는 적어도 제 2 스케일러블 네트워킹된 디바이스에 대한 탐색을 제 1 스케일러블 네트워킹된 디바이스에서 수행하는 것을 포함할 수도 있다.
또한, 본 개시물은, 명령들을 저장하도록 구성된 메모리, 무선 통신 모듈, 및 저장된 명령들과 함께 네트워크와 통신하도록 구성된 프로세싱 유닛을 포함하는 스케일러블 네트워킹된 디바이스를 설명한다. 이 프로세서는, 네트워크 식별자를 획득하려고 시도하고, 네트워크 식별자가 획득되는 경우, 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 및/또는 상태 중 적어도 하나에 기초하여 스케일러블 네트워킹된 디바이스가 네트워크 내에서 발견가능하게 되도록 정보를 네트워크 관리 서버에 제공하며, 네트워크 관리 서버에 의한 확인응답시, 스케일러블 네트워킹된 디바이스에 통신가능하게 커플링되는 적어도 하나의 다른 스케일러블 네트워킹된 디바이스에 대한 탐색을 수행할 수도 있다.
또한, 본 개시물은, 제 1 서버, 제 2 서버, 및 복수의 스케일러블 네트워킹된 디바이스들을 포함하는 발견가능한 스케일러블 네트워킹된 디바이스들의 시스템을 설명한다. 제 1 서버는, 네트워크에 직접적으로 커플링된 각각의 스케일러블 네트워킹된 디바이스에 네트워크 식별자를 제공할 수도 있다. 제 2 서버는, 네트워크에 직접적으로 커플링된 각각의 스케일러블 네트워킹된 디바이스로부터 디바이스 정보 테이블들을 수신하고, 디바이스 정보 테이블들을 공개함으로써 스케일러블 네트워킹된 디바이스들을 발견가능하게 할 수도 있고, 여기서 디바이스 정보 테이블들은, 네트워크에 직접적으로 또는 간접적으로 커플링된 각각의 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 위치, 및/또는 상태를 포함한다. 각각의 스케일러블 네트워킹된 디바이스의 명칭은 디바이스의 루트 (route) 를 식별할 수도 있다.
또한, 본 개시물은 스케일러블 네트워킹된 디바이스 네트워크 상태를 업데이팅하는 방법을 설명한다. 이 방법은, 스케일러블 네트워킹된 디바이스들의 루트들 내에 제 1 스케일러블 네트워킹된 디바이스의 네트워크 식별자를 포함하는 스케일러블 네트워킹된 디바이스들에게 초기 신호를 브로드캐스팅하는 것, 확인응답의 수신시, 응답하는 스케일러블 네트워킹된 디바이스들로부터 디바이스 정보를 요청하는 것, 및 각각의 응답하는 스케일러블 네트워킹된 디바이스에 대해, 제 1 스케일러블 네트워킹된 디바이스와 연관된 스케일러블 네트워킹된 디바이스들의 계층 (layer) 들이 고갈될 때까지 응답하는 디바이스들에 커플링된 다른 스케일러블 네트워킹된 디바이스들로부터 디바이스 정보를 재귀적으로 요청하는 것을 포함할 수도 있다. 또한, 이 방법은, 스케일러블 네트워킹된 디바이스의 명칭 내에 네트워크 식별자가 없는 스케일러블 네트워킹된 디바이스가 발견되는 경우, 스케일러블 네트워킹된 디바이스를, 제 1 스케일러블 네트워킹된 디바이스의 네트워크 식별자와 연관시키는 것을 포함할 수도 있다.
전술된 요약은 오직 예시적인 것이며, 임의의 방식으로 제한하도록 의도되지 않는다. 상술된 예시적인 양태들, 실시형태들 및 특징들에 부가하여, 추가의 양태들, 실시형태들 및 특징들이 도면들 및 다음의 상세한 설명을 참조하여 명확해질 것이다.
본 개시물의 전술한 특징 및 다른 특징은 첨부 도면들과 함께 취해진 다음의 상세한 설명 및 첨부된 청구항들로부터 더욱 완전히 명백해질 것이다. 이들 도면들이 본 개시물에 따른 단지 몇몇 실시형태들만을 나타내어, 그 범위를 제한하는 것으로 간주되지 않아야 한다는 것을 이해하면서, 본 개시물은 첨부 도면들의 이용을 통해 부가적으로 특정하게 그리고 상세하게 설명될 것이다.
도 1 은 발견가능한 스케일러블 네트워킹된 디바이스들의 일 예시적인 네트워킹된 시스템을 예시한 것이다;
도 2 는 도 1 의 시스템의 또 다른 예시적인 구성을 예시한 것으로, 여기서 일부 스케일러블 네트워킹된 디바이스들은 2개 이상의 루트/명칭으로 정의될 수도 있다;
도 3 은 스케일러블 네트워킹된 디바이스의 예시적인 기능 모듈들을 예시한 것이다;
도 4 는 스케일러블 네트워킹된 디바이스에서 이용될 수도 있는 특수 목적 프로세서를 예시한 것이다;
도 5 는 스케일러블 네트워킹된 디바이스의 동적 매핑을 구현하기 위해 이용될 수도 있는 범용 컴퓨팅 디바이스를 예시한 것이다;
도 6 은 도 1 또는 도 2 의 디바이스들 중 하나의 디바이스와 같은 스케일러블 네트워킹된 디바이스를 기동하는 일 예시적인 방법을 예시한 플로우 다이어그램 (flow diagram) 이다;
도 7 은 도 1 의 디바이스 (110) 와 같은 네트워크 연결된 (network-connected) 스케일러블 네트워킹된 디바이스에 의해 다른 디바이스들을 탐색하는 일 예시적인 방법을 예시한 플로우 다이어그램이다;
도 8 은 도 1 의 디바이스 (115) 와 같은 비네트워크 연결된 (non-network-connected) 스케일러블 네트워킹된 디바이스에 의해 다른 디바이스들을 탐색하는 일 예시적인 방법을 예시한 플로우 다이어그램이다; 그리고
도 9 는 예시적인 컴퓨터 프로그램 제품의 블록 다이어그램을 예시한 것이고, 이들 모두는 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된다.
다음의 상세한 설명에서, 그 일부분을 형성하는 첨부 도면들이 참조된다. 도면들에서, 유사한 도면 부호들은 그 문맥에서 달리 지시되지 않는다면 통상적으로 유사한 컴포넌트들을 식별한다. 상세한 설명, 도면들, 및 청구항들에서 설명되는 예시적인 실시형태들은 제한하려고 의도된 것이 아니다. 본 명세서에서 제시된 주제의 범위 또는 사상을 벗어나지 않고, 다른 실시형태들이 활용될 수도 있고 다른 변경들이 이루어질 수도 있다. 본 명세서에서 일반적으로 설명되고 도면들에 도시되는 것과 같이, 본 개시물의 양태들은 광범위한 상이한 구성들로 배열되고, 치환되고, 결합되고, 분리되고, 설계될 수 있으며, 이러한 구성들 모두가 본 명세서에서 명백하게 고려된다는 것이 용이하게 이해될 것이다.
일반적으로, 본 개시물은, 그 중에서도, 사용자들이 기능성을 탐색할 수 있고, 탐색 결과들에 기초하여 하나 이상의 디바이스들에 액세스할 수 있도록 스케일러블 네트워킹된 디바이스 (scalable networked device) 들을 매핑시키고 관리하는 것, 및 하나 이상의 디바이스들에 의해 제공된 찾아낸 기능성을 활용하는 것에 관한 방법들, 장치, 시스템들, 디바이스들, 및/또는 컴퓨터 프로그램 제품들 대해 작성된 것이다.
간단히 말하면, 스케일러블 네트워킹된 디바이스들의 시스템은 네트워크 연결된 (network-connected) 그리고 비네트워크 연결된 (non-network connected) 디바이스들에 대한 디바이스 탐색 알고리즘들을 통해 디바이스들에 대한 최적화된 루트 (route) 를 가능하게 하는 명명 컨벤션 (naming convention) 을 이용함으로써 매핑될 수도 있다. 명명 컨벤션 및 대응하는 알고리즘들은, 사용자들로 하여금, 원하는 기능성을 탐색할 수 있게 하고, 적합한 스케일러블 네트워킹된 디바이스(들) 에 액세스할 수 있게 하며, 원하는 기능성을 활용할 수 있게 할 수도 있다. 또한, 스케일러블 네트워킹된 디바이스들의 메시 (mesh) 를 연속적으로 매핑시키고 업데이팅하도록 스파이더 알고리즘이 이용될 수도 있다.
본 명세서에 사용되는 바와 같이, 용어 "스케일러블 네트워킹된 디바이스" 는 정보를 검출/수신/프로세싱하고 하나 이상의 네트워크들을 통해 데이터를 다른 컴퓨팅 디바이스들에게 제공하는 것이 가능한 임의의 디바이스를 지칭한다. 이러한 디바이스들은 가변적인 범위의 능력들 및 사이즈들을 가질 수도 있다. 이러한 디바이스들에 대한 제한된 세트의 예시적인 예들로는 센서들, 무선 주파수 식별 (radio frequency identification; RFID) 태그들, 위치 결정 디바이스들, 대화식 화이트보드들 (interactive whiteboards), 모니터링 디바이스들, 및/또는 알람 디바이스들을 포함할 수도 있다. 또한, 이러한 디바이스들은 유비쿼터스 컴퓨팅 디바이스들이라고 지칭될 수도 있다. 네트워크 센터 서버 (Network Center Server; NCS) 는 네트워크 어드레스를 통해 인터넷 또는 유사한 네트워크들을 통해 연결가능한 네트워크 디바이스일 수도 있고, 스케일러블 네트워킹된 디바이스 정보의 저장 및 인덱싱을 위해 이용될 수도 있다. 네트워크 연결된 디바이스 (Network Connected Device; NCD) 는, 네트워크(들) (예를 들어, 인터넷) 에 직접적으로 연결되고 할당된 네트워크 식별자 (예를 들어, IP 어드레스) 를 갖는 유비쿼터스 컴퓨팅 디바이스일 수도 있다. 독립형 디바이스 (Standalone Device; SAD) 는, 네트워크 식별자 (예를 들어, IP 어드레스) 가 없고 네트워크(들) (예를 들어, 인터넷) 에 대한 어떠한 직접적인 연결도 없는 유비쿼터스 컴퓨팅 디바이스일 수도 있다. 따라서, 실시형태들에 따른 시스템 내의 SAD들에 대한 모든 연결들은 하나 이상의 NCD들에 대한 직접적인 또는 간접적인 루트를 통한 것이다.
도 1 은 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 발견가능한 스케일러블 네트워킹된 디바이스들의 일 예시적인 네트워킹된 시스템을 예시한 것이다.
이전에 언급된 바와 같이, 스케일러블 네트워킹된 디바이스들 또는 유비쿼터스 컴퓨팅 디바이스들은 광범위한 디바이스들을 모바일 폰들, 디지털 오디오 플레이어들, 센서들, 무선 주파수 식별 태그들, 위치 결정 디바이스들, 카메라들, 대화식 화이트보드들, 및 유사한 디바이스들을 포함한다. 점점 상호연결되고 있는 세상에서, 스케일러블 네트워킹된 디바이스들은, 통상적으로 복잡한 멀티-컴포넌트 시스템들과 연관되는 큰 오버헤드 없이 광범위한 기능성을 수행할 수도 있다. 예를 들어, 비교적 단순하고 비용-효율적인 기상 센서들은 다수의 위치들에 배치되어, 필요한 네트워킹 인프라스트럭처가 완비된 유선 또는 무선 연결들 및 부착된 센서들을 가진 컴퓨터들 대신에, 요구가 있는 즉시 (on-demand) 액세스될 수도 있다.
스케일러블 네트워킹된 디바이스들의 단순성은 이 디바이스들의 구성에 대해서뿐만 아니라, 이 디바이스들의 용도 및 이러한 디바이스들을 활용하는 네크워킹된 시스템의 아키텍처에 대해서도 제한되지 않는다. 예를 들어, 표준 네트워크 토폴로지들 (standard network topologies) 은, 네트워크와 상호작용하는 모든 컴퓨팅 디바이스에 IP 어드레스와 같은 네트워크 식별자가 할당되도록 요구할 수도 있다. 그러나, 실시형태들에 따른 시스템 내의 스케일러블 네트워킹된 디바이스들은 할당된 네트워크 식별자들을 갖거나 또는 네트워크에 직접적으로 연결될 필요가 없어서, 네트워크에서 아키텍처적으로 유지되어야 하는 다수의 디바이스들의 오버헤드를 경감시킨다. 실시형태들에 따른 스케일러블 네트워킹된 디바이스들의 시스템은 네트워크 연결된 그리고 비네트워크 연결된 디바이스들에 대한 디바이스 탐색 알고리즘들을 통해 디바이스들에 대한 최적화된 루트를 가능하게 하는 명명 컨벤션을 이용하여 매핑될 수도 있다.
도 1 의 다이어그램 (100) 을 참조하면, 일 예시적인 시스템은 다수의 네트워크들 (102-1 내지 102-3), 및 다수의 관리 서버들 (106) (및/또는 라우터들, 방화벽들 등과 같은 특수화된 디바이스들) 을 포함할 수도 있다. 스케일러블 네트워킹된 디바이스들은 네트워크들 (102-1 내지 102-3) 중 하나의 네트워크에 직접적으로 연결되거나 (NCD 라고 지칭됨) 또는 하나 이상의 다른 스케일러블 네트워킹된 디바이스들을 통해 네트워크들 중 하나의 네트워크에 연결될 수도 있다 (SAD 라고 지칭됨). 따라서, NCD 는 네트워크에 직접적으로 연결되고 네트워크 식별자를 가지며, SAD 는 적어도 NCD 및 0개 이상의 SAD들을 통해 네트워크에 연결되고 네트워크 식별자를 갖고 있지 않다.
다이어그램 (100) 에 의해 나타낸 예시적인 시나리오에서, NCD (108) 는 유선 연결을 통해 네트워크 (102-1) 에 연결되는 한편, NCD (110) 는 무선 수단을 통해 네트워크 (102-1) 에 연결된다. SAD (109) 는 NCD (108) 를 통해 네트워크 (102-1) 에 연결된다. NCD들 (112, 114, 및 116) 은 네트워크 (102-3) 에 직접적으로 연결된다. SAD들 (115 및 117) 은 NCD (116) 를 통해 네트워크 (102-3) 에 연결되어, 다수의 SAD들이 단일의 NCD 를 통해 네트워크에 커플링될 수 있다는 것을 예시하고 있다. SAD (113) 가 SAD (115) 및 NCD (116) 를 통해 네트워크 (102-3) 에 연결되어 연속 연결을 예시하고 있다. NCD들 (118, 120, 및 122) 은 네트워크 (102-2) 에 직접적으로 연결되는 한편, SAD들 (121 및 123) 은 NCD (120) 를 통해 네트워크 (102-2) 에 연결된다. 네트워크 동작 및 다른 데이터는 하나 이상의 중앙집중된 또는 분산된 데이터 스토어들 (data stores; 104) 에 저장될 수도 있고, 이 데이터 스토어들 (104) 은 다양한 네트워크들에 연결될 수도 있거나 또는 네트워크들 중 하나의 네트워크 (예를 들어, 다이어그램 (100) 에서의 네트워크 (102-1)) 에 연결될 수도 있다.
SAD들 및 NCD들의 효과적인 매핑을 가능하게 하기 위해, 디바이스 명명법 (device naming nomenclature) 이 적용될 수도 있다. 명명 컨벤션에 따르면, 디바이스 명칭은 두 부분들로 이루어질 수도 있다: NCD 의 네트워크 식별자, 및, 예를 들어, SAD0 이라고 지칭되는 특정 디바이스에 대한 SAD들을 통한 루트. 따라서, [SAD0 의 디바이스 명칭]=[NCD 의 네트워크 식별자][SADN][SADN-1]..[SAD2][SAD1] 이고, 여기서 N 은 SADO 과, SADO 이 네트워크(들) 에 액세스하는 NCD 와의 사이의 디바이스들의 개수이다. 디바이스 명칭은 디바이스에 대한 루트를 정의하고, 디바이스로부터의 정보를 송신 또는 수신하기 위해 이용될 수 있다. 디바이스 명칭이 특정 디바이스에 고유하게 체결되지만, 디바이스가 2개 이상의 명칭 (루트들) 을 가질 수 있다.
새로운 스케일러블 네트워킹된 디바이스에 대한 기동 절차는, 서버로부터의 네트워크 식별자 (예를 들어, DHCP 서버로부터의 IP 어드레스) 를 얻으려고 시도함으로써 네트워크 연결성을 테스트하는 것으로 시작할 수도 있다. 새로운 스케일러블 네트워킹된 디바이스가 네트워크 식별자를 획득할 수 있는 경우, 그 디바이스는 NCD 이고, 디바이스에 관한 기능성, 위치, 상태, 및 유사한 정보와 함께 네트워크 식별자가 새로운 디바이스에 대한 명칭으로서 NCS 에 제공될 수도 있다. NCS 는, 도메인 네임 서버 기능성과 유사하게, 이 정보를 저장하고 네트워크 내에서 지정된 탐색 위치들로 미러링할 수도 있다. NCD 의 위치는 항상 알지 못할 수도 있다. 이러한 경우, 이 위치는, 위치 정보를 갖고 있고 디바이스에 대한 네트워크 연결에 있어서 인접한, 가장 가까운 SAD 또는 NCD 에 의해 결정될 수도 있다. 일단 NCD 가 NCS 에 연결된다면, 또 다른 네트워크 연결된 디바이스에 대한 디바이스 탐색 알고리즘이 개시될 수도 있다. 한편, 새로운 디바이스가 네트워크 식별자를 얻을 수 없는 경우, 비네트워크 연결된 디바이스에 대한 디바이스 탐색 알고리즘이 개시될 수도 있다.
다른 네트워크 연결된 디바이스들에 대한 탐색은, 디폴트로 청취 모드 (listening mode) 에 있을 수도 있는 다른 스케일러블 네트워킹된 디바이스들에 대한 이용가능한 통신 채널들을 탐색하는 것을 포함할 수도 있다. 이러한 탐색은 초기 신호 (예를 들어, "hello" 신호) 로 시작할 수도 있다. hello 신호를 들은 디바이스들은, 예를 들어, 충돌 검출 알고리즘을 이용하여 응답을 전송할 수도 있다. 일단 디바이스가 확인응답하면, 디바이스가 이미 명칭 (루트) 을 갖고 있는 경우, 디바이스는, 그의 명칭을, 탐색하는 NCD 에 전송할 수도 있다. NCD 는 새로운 루트가 기존의 루트보다 더 양호한지를 판정하여, 어떤 루트가 더욱 효과적인지에 따라 새로운 디바이스 명칭을 부가하거나 또는 변경할 수도 있다. 응답하는 디바이스가 아무런 명칭도 갖고 있지 않은 경우, (발견된) 디바이스는 탐색하는 NCD 를 통해 아직 네트워크에 연결되지 않는다. 디바이스 명칭은 hello 신호를 전송하는 NCD 의 디바이스 위치 테이블 내의 위치 및 NCD 의 네트워크 식별자로 설정될 수도 있다. 발견된 디바이스는 이제 네트워크에 연결된다. 네트워크는 발견된 디바이스의 기능성 및 상태에 대해 업데이팅될 수도 있다.
또한, 비네트워크 연결된 디바이스들 (즉, 명칭 내에 어떠한 네트워크 식별자도 없다) 에 대한 디바이스 탐색은 청취하는 디바이스들에 대한 "hello" 신호의 송신으로 시작할 수도 있다. 응답하는 스케일러블 네트워킹된 디바이스가 그의 명칭 내에 네트워크 식별자를 갖는 경우, 탐색하는 디바이스 (SAD) 는 명칭을 선택하고 그 명칭에서 정의된 SAD들의 루트를 통해 기능성 및 상태 정보를 NCD 에 전송함으로써 그 자신을 루트에 부가할 수도 있다. 원한다면 네트워크 연결된 디바이스들의 미리 정의된 개수만큼 재귀적 탐색이 계속될 수도 있다. 한편, 응답하는 스케일러블 네트워킹된 디바이스가 그의 명칭 내에 어떠한 네트워크 식별자도 갖고 있지 않은 경우, 이러한 탐색은 디바이스가 다음 디바이스로 계속되는 것을 무시할 수도 있다. 일단 탐색하는 디바이스가 네트워크에 대한 경로로 명명되었다면, 네트워크 연결된 디바이스에 대한 탐색 알고리즘은 재귀적으로 개시될 수도 있다.
일부 실시형태에서, NCD 의 네트워크 식별자를 디바이스들의 명칭들 내에 포함하는 디바이스들에게 "hello" 신호를 송신함으로써 NCD 에서 스파이더 액션 탐색이 개시될 수도 있다. 각 디바이스의 상태는 질의될 수도 있다. 디바이스가 그의 명칭 내에 네트워크 식별자가 없다는 것이 발견되는 경우, 이 디바이스는 네트워크 및 재귀적으로 개시된 네트워크 연결된 디바이스에 대한 탐색 알고리즘에 부가될 수도 있다. 상이한 네트워크 식별자를 가진 디바이스가 발견되는 경우, 탐색하는 디바이스 (NCD) 는 발견된 디바이스의 기존의 명칭을 유지할지, 명칭을 변경할지, 또는 새로운 명칭을 NCD 의 네트워크 식별자에 부가할지 여부를 결정할 수도 있다.
사용자가 스케일러블 네트워킹된 디바이스에 의해 기능을 수행하기를 원하는 경우, 사용자는, 예를 들어, 탐색 엔진을 이용하는 하나 이상의 네트워크들 (예를 들어, 인터넷) 을 통해 질의를 전송할 수도 있다. 이러한 탐색은 원하는 스케일러블 네트워킹된 디바이스의 기능성 및 위치를 정의할 수도 있다. 이러한 탐색은 NCS 미러들에서 발견된 디바이스 정보 테이블들에 대해 수행되고, 스케일러블 네트워킹된 디바이스의 명칭을 반환할 수도 있다. 이 명칭은 스케일러블 네트워킹된 디바이스에 대한 루트이다. NCD 의 네트워크 식별자를 이용하여, 사용자는 그 후에 질의를 NCD 에 전송할 수 있고, 이 NCD 는, 이 질의를, SAD 루트를 통해, 탐색에 의해 식별된 SAD 에 포워딩한다. 스케일러블 네트워킹된 디바이스는 이 질의에 대한 답을 SAD 루트를 통해 다시 NCD 로 반환할 수도 있다. NCD 는 이 질의에 대한 답을 네트워크(들) 를 통해 사용자에게 다시 포워딩할 수도 있다.
도 2 는 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 도 1 의 시스템의 또 다른 예시적인 구성을 예시한 것으로, 여기서 일부 스케일러블 네트워킹된 디바이스들은 2개 이상의 루트/명칭으로 정의될 수도 있다.
다이어그램 (200) 을 참조하면, 도 1 의 단순화된 버전의 시스템은 관리 서버(들) (206) 및 데이터 스토어들 (204) 을 갖는 네트워크 (202) 를 포함할 수도 있다. NCD들 (208, 210, 및 216) 은 이들 각각의 식별자들에 의해 네트워크 (202) 에 직접적으로 연결된다. SAD들 (211 및 215) 은 NCD (210) 를 통해 네트워크 (202) 에 연결된다. SAD들 (217 및 221) 은 NCD (216) 를 통해 네트워크 (202) 에 연결된다. SAD (213) 는 NCD (210) 및 SAD (211) 를 통해 네트워크 (202) 에 연결된다.
SAD (219) 는 SAD (215) 와 NCD (210) (루트 (224)) 를 통해 또는 SAD (217) 와 NCD (216) (루트 (222)) 를 통해 네트워크 (202) 에 연결할 수도 있다. 따라서, SAD (219) 에 대한 2개의 가능한 루트들 (224, 222) 이 존재한다. 이 가능한 루트들 중 하나의 루트는 대역폭, 연결성, 및/또는 트래픽 이슈들 때문에 다른 루트를 통한 것이 바람직할 수도 있다. 따라서, NCD들 (210 또는 216) 중 하나의 NCD 는 상기 리스팅된 메트릭들 또는 다른 메트릭들에 기초하여 최적화 루트를 결정하고 SAD (219) 의 발견시에 매핑 테이블을 업데이팅할 수도 있다.
도 3 은 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 스케일러블 네트워킹된 디바이스의 예시적인 기능 모듈들을 예시한 것이다.
상술된 바와 같이, 실시형태들은 유비컴프 디바이스들 (스케일러블 네트워킹된 디바이스들) 의 대규모 네트워크들의 명명, 정보의 라우팅, 탐색, 및 업데이팅을 위한 방법들에 관한 것이고, 그 일부는 네트워크에 대한 직접적인 연결을 가질 수도 있고 일부는 하나 이상의 중간 디바이스들을 통해 연결될 수도 있다. 이러한 네트워크의 일 예로는, 거리에 걸쳐 분포된 에너지 하베스팅 센서들 (energy harvesting sensors) 을 갖는 거리일 수도 있고, 이 에너지 하베스팅 센서들은 온도, 압력, 사운드, 습도, 가스들 또는 오염물들, 통행인, 화상 (imagery), 또는 주기적으로 업데이팅되는 저전력 디스플레이들, 예컨대, 공공 운송 정보 또는 다른 이러한 엘리먼트들에 관한 정보를 제공할 수 있다. 또한, 네트워크는 네트워크에 대한 고정된 (무선 또는 유선) 연결을 갖는 적어도 하나의 엘리먼트를 가질 수도 있다. 상기 예에서, 거리에서의 디바이스들은 이러한 하나 이상의 엘리먼트들을 통해 액세스될 수도 있다. 통상적으로, 유비컴프 디바이스들의 브로드캐스팅 범위는 짧아서 (예를 들어, 몇 미터) 브로드캐스팅 전력을 절약할 수도 있다. 그래서, 통상적인 시나리오는 각 디바이스가 브로드캐스팅을 수신한 후에 그것을 그의 목적지로 재송신한다는 것이다. 이러한 네트워크들의 도전과제들 중 하나는 디바이스들의 전체 메시가 브로드캐스팅하기 시작하는 것, 그리고 최악의 경우의 시나리오에서는 타깃 디바이스에 도달하는 일 없이 결코 끝나지 않는 루프로 브로드캐스팅하는 것을 방지하기 위한 라우팅 알고리즘들을 생성하는 것이다.
일부 실시형태에 따른 시스템의 컴포넌트들 중 하나는, 이전에 설명된 바와 같이 루트 내의 독립형 디바이스 (SAD) 들 및 네트워크 연결된 디바이스 (NCD) 의 네트워크 식별자의 조합인 명명 컨벤션이다. SAD 인덱스는 테이블이라고 지칭하고, 이 테이블은 각각의 SAD 각각에서 발견될 수도 있다. 이 테이블은 연결된 SAD들에 대한 식별자를 포함할 수도 있다. 이 테이블은 새로운 SAD 가 그의 주변들을 체크하고 본 명세서에서 설명된 바와 같이 네트워크에 연결할 때 형성될 수도 있다.
다른 실시형태들에 따르면, 스파이더형 알고리즘은 메시를 가로질러 가서, 링크들을 업데이팅하고 최적화하며, 디바이스 상태에 대해 리포트할 수도 있다. 이러한 스파이더가 모은 정보는 웹 상의 서버들에서 유지될 수도 있고 탐색 인덱스 테이블처럼 탐색가능할 수도 있다. 따라서, 사용자가 주어진 위치에서의 온도에 액세스하기를 원하는 경우, 사용자는 온도 및 원하는 위치에 대한 탐색을 수행할 수도 있고, 그 때의 온도를 피드백하라는 커맨드에 의해, 특정 센서에 대한 SAD 루트 및 네트워크 식별자인 링크를 수신할 수도 있다.
IPV6 과 같은 네트워크 식별자 표준들이 네트워킹된 디바이스들에 대한 매우 많은 개수의 네트워크 식별자들을 가능하게 할 수도 있지만, 이러한 컨벤션들을 통한 라우팅과 연관된 복잡성 및 오버헤드는 명명 표준들에 의해 해결되지 않는다. IPV6 과 같은 표준들의 오버헤드 및 복잡성은, 유비컴프 설정시 분포되는, 저전력, 낮은 컴퓨팅 및 메모리 디바이스들에 대한 문제들을 야기시킬 수도 있다. 실시형태들에 따른 시스템은, 일반적인 의미로, 저전력 네트워크들에 대한 분산된 라우팅 테이블을 이용하고 루트들을 최상의 이용가능한 루트로 연속적으로 업데이팅하여 라우팅 방법들을 최적화함으로써 해결할 수도 있다.
SAD 또는 NCD 는 유비쿼터스 컴퓨팅 환경에 관한 특정한 피처들 (features) 및 기능들을 가질 수도 있다. 이러한 피처들 및 기능들은, 센서들 (예를 들어, 온도, 카메라, 압력, 진동, GPS 등), 디바이스의 위치, 디바이스의 전력 상태, 디바이스 및/또는 관련 센서들의 기능성, 디바이스의 컴퓨팅 능력 (computing power), 디바이스의 메모리, 디바이스 상의 상주 애플리케이션들, 디바이스와 연관된 대역폭 및/또는 연결들, 디바이스와 연관된 디스플레이들 또는 다른 입/출력 컴포넌트들을 포함할 수도 있지만, 이들로 제한되지 않는다.
실시형태들에 따른 시스템에서, 사용자들은 상술된 그리고 다른 피처들 및 기능들에 기초하여 SAD들 및 NCD들을 탐색할 수 있고, 이에 응답하여 디바이스에 대한 최적화된 루트를 수신할 수 있게 될 수도 있다. 그 후에, 제공된 루트를 이용하여, 사용자들은 발견된 디바이스(들) 에게 정보에 대해 질의할 수도 있거나 또는 그 발견된 디바이스(들) 에게 하나 이상의 태스크들을 수행하라고 지시할 수도 있다.
다이어그램 (300) 을 참조하면, 일 예시적인 스케일러블 네트워킹된 디바이스의 피처들 중 일부가 예시되어 있다. 스케일러블 네트워킹된 디바이스는 메인 컴퓨팅 컴포넌트 (304) 및 통신 모듈 (306) 을 포함할 수도 있다. 후자는 무선 통신 모듈, 예컨대, WLAN (wireless Local Area Network) 모듈, 셀룰러 통신 모듈, 또는 스케일러블 네트워킹된 디바이스로 하여금 그의 부근에서 무선 수단 (302) 을 통해 다른 디바이스들과 통신할 수 있게 하는 유사물일 수도 있다. 메인 컴퓨팅 컴포넌트 (304) 는, 하나 이상의 상주 애플리케이션들 (312) 이 상주할 수도 있는 메모리 (301) 및 하나 이상의 프로세서들과 같은 컴퓨테이션 모듈들 (computational modules; 314) 을 포함할 수도 있다. 디스플레이(들) (316) 및/또는 입력 디바이스(들) (318) 와 같은 부가적인 모듈들이 메인 컴퓨팅 컴포넌트 (304) 에 통합될 수도 있거나 이 부가적인 모듈들이 외부 컴포넌트들일 수도 있다. 유사하게, 하나 이상의 센서들 (308) 이 메인 컴퓨팅 컴포넌트 (304) 에 통합될 수도 있거나 또는 외부 컴포넌트들로서 이용될 수도 있다.
일 예시적인 시나리오에서, 기상 센서들 (온도, 습도, 압력 등) 을 가진 다수의 스케일러블 네트워킹된 디바이스들은 상이한 도시들 부근에 배치될 수도 있다. 이러한 디바이스들의 라우팅 및 기능성은 사용자가 디바이스의 위치 및 기능성에 기초하여 탐색을 수행할 수 있도록 시스템 내의 분산된 위치에 상술된 바와 같이 저장될 수도 있다. 사용자는 그/그녀의 탐색에 응답하여 루트 (및/또는 기능성) 정보를 수신한 후에, 발견된 디바이스에게 질의하여 스케일러블 네트워킹된 디바이스로부터 특정 위치에 대한 기상 정보를 직접적으로 획득할 수도 있다.
실시형태들이 도 1 내지 도 3 의 특정 예들, 컴포넌트들, 및 구성들을 이용하여 설명되었지만, 이 실시형태들은 유비쿼터스 컴퓨팅 디바이스들과 같은 스케일러블 네트워킹된 디바이스들의 동적 매핑을 가능하게 하는데 이용되도록 일반 가이드라인을 제공하려고 의도된다. 이 예들은 실시형태들에 대한 제한이 되는 것이 아니며, 이 실시형태들은 본 명세서에서 설명된 원리들을 이용하여 다른 컴포넌트들, 모듈들, 및 구성들을 이용하여 구현될 수도 있다. 예를 들어, 스케일러블 네트워킹된 디바이스로서 임의의 적합한 특수 목적 또는 범용 컴퓨팅 디바이스가 이용될 수도 있다. 또한, 상술된 액션들은 다양한 순서로, 특히, 인터레이싱된 방식 (interlaced fashion) 으로 수행될 수도 있다.
도 4 는 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 스케일러블 네트워킹된 디바이스에 이용될 수도 있는 특수 목적 프로세서를 예시한 것이다.
이전에 설명된 바와 같이, 스케일러블 네트워킹된 디바이스들의 시스템은 네트워크 연결된 그리고 비네트워크 연결된 디바이스들에 대한 디바이스 탐색 알고리즘들을 통해 디바이스들에 대한 최적화된 루트를 가능하게 하는 명명 컨벤션을 이용하여 매핑될 수도 있다. 일부 실시형태에 따르면, 스케일러블 네트워킹된 디바이스는 다이어그램 (400) 에 도시된 입/출력 (I/O) 디바이스(들) (458) 및 센서(들) (448) 와 같은 하나 이상의 컴포넌트들 및 프로세서 (450) 를 가진 특수 목적 디바이스로서 구현될 수도 있다. 프로세서 (450) 는 하나 이상의 네트워크들 (446) 및 NCD (442) 를 통해 네트워킹된 시스템의 다양한 양태들 (예를 들어, 라우팅, 탐색 데이터의 저장 등) 을 관리하는 서버들 (444) 과 같은 컴퓨팅 디바이스들과 통신하도록 구성될 수도 있다. 프로세서 (450) 의 스케일러블 네트워킹된 디바이스가 네트워크들 (446) 에 직접적으로 연결되지 않은 경우 (즉, 네트워크 식별자를 갖고 있지 않은 경우), NCD (442) 의 네트워크 식별자가 최적화된 라우팅을 위해 스케일러블 네트워킹된 디바이스의 명칭에서 이용될 수도 있다.
프로세서 (450) 는 그의 메모리 (451) 에 상주 애플리케이션들 (452), 하드코딩된 데이터 (454), 및/또는 수집된/발생된 데이터 (456) 를 저장할 수도 있다. 상주 애플리케이션들 (452) 는 스케일러블 네트워킹된 디바이스의 기능성의 부분으로서 실행될 수도 있는 임의의 애플리케이션들일 수도 있다. 하드코딩된 데이터 (454) 는, 디바이스의 기능성, 능력들, 식별 등의 정의와 같은, 스케일러블 네트워킹된 디바이스의 비휘발성 메모리에 저장된 정보일 수도 있다. 예시적인 시나리오들에서, 스케일러블 네트워킹된 디바이스가 그의 환경 (예를 들어, 센서) 으로부터 데이터를 수집하거나 또는 그의 기능성의 부분으로서 데이터를 발생시킬 수도 있는 경우, 이러한 데이터는 메모리 (451) 에 또한 저장될 수도 있다. 프로세서 (450) 는 스케일러블 네트워킹된 디바이스의 컴포넌트들과 통신하기 위한 통신 모듈 (460) 을 더 포함할 수도 있다.
도 5 는 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 스케일러블 네트워킹된 디바이스의 동적 매핑을 구현하는데 이용될 수도 있는 범용 컴퓨팅 디바이스를 예시한 것이다. 매우 기본적인 구성 (502) 에서, 컴퓨팅 디바이스 (500) 는 통상적으로 하나 이상의 프로세서들 (504) 및 시스템 메모리 (506) 를 포함한다. 프로세서 (504) 와 시스템 메모리 (506) 사이에서 통신하기 위해 메모리 버스 (508) 가 이용될 수도 있다.
원하는 구성에 따라, 프로세서 (504) 는 마이크로프로세서 (μP), 마이크로제어기 (μC), 디지털 신호 프로세서 (DSP), 또는 이들의 임의의 조합을 포함하지만 이들로 제한되지 않는 임의의 타입의 것일 수도 있다. 프로세서 (504) 는 하나 이상의 레벨들의 캐싱, 예컨대, 레벨 캐시 메모리 (512), 프로세서 코어 (514), 및 레지스터들 (516) 을 포함할 수도 있다. 예시적인 프로세서 코어 (514) 는 산술 논리 유닛 (arithmetic logic unit; ALU), 부동 소수점 유닛 (floating point unit; FPU), 디지털 신호 프로세싱 코어 (DSP Core), 또는 이들의 임의의 조합을 포함할 수도 있다. 예시적인 메모리 제어기 (518) 는 또한 프로세서 (504) 와 함께 이용될 수도 있거나, 또는 일부 구현들에서 메모리 제어기 (518) 는 프로세서 (504) 의 내부 부분일 수도 있다.
원하는 구성에 따라, 시스템 메모리 (506) 는 휘발성 메모리 (예컨대, RAM), 비휘발성 메모리 (예컨대, ROM, 플래시 메모리 등) 또는 이들의 임의의 조합을 포함하지만 이들로 제한되지 않는 임의의 타입의 것일 수도 있다. 시스템 메모리 (506) 는 운용 시스템 (520), 하나 이상의 애플리케이션들, 예컨대, 관리 애플리케이션 (522), 및 프로그램 데이터 (524) 를 포함할 수도 있다. 관리 애플리케이션 (522) 은 본 명세서에서 설명된 바와 같이 스케일러블 네트워킹된 디바이스들에 대한 최적화된 라우팅을 가능하게 할 수도 있는 연결 모듈 (526) 을 포함할 수도 있다. 프로그램 데이터 (524) 는, 다른 데이터 중에서, 사용자들을 스케일러블 네트워킹된 디바이스들에게 이 디바이스들의 기능성, 위치, 및 유사한 속성들에 기초하여 라우팅하는 것과 연관된 연결 데이터 (528) 를 포함할 수도 있다. 이 설명된 기본적인 구성 (502) 은 도 5 에서 내부 점선 내의 컴포넌트들에 의해 예시된다.
컴퓨팅 디바이스 (500) 는 기본적인 구성 (502) 과 임의의 필요한 디바이스들 및 인터페이스들 사이의 통신들을 용이하게 하기 위해 부가적인 피처들 또는 기능, 및 부가적인 인터페이스들을 가질 수도 있다. 예를 들어, 버스/인터페이스 제어기 (530) 는 스토리지 인터페이스 버스 (534) 를 통해 기본적인 구성 (502) 과 하나 이상의 데이터 스토리지 디바이스들 (532) 사이의 통신들을 용이하게 하는데 이용될 수도 있다. 데이터 스토리지 디바이스들 (532) 은 착탈식 스토리지 디바이스들 (536), 비착탈식 스토리지 디바이스들 (538), 또는 이들의 조합일 수도 있다. 착탈식 스토리지 및 비착탈식 스토리지 디바이스들의 예들로는, 몇몇 이름을 대자면, 자기적 디스크 디바이스들, 예컨대, 플렉시블 디스크 드라이브들 및 하드 디스크 드라이브들 (HDD), 광 디스크 드라이브들, 예컨대, 콤팩트 디스크 (CD) 드라이브들 또는 디지털 다기능 디스크 (DVD) 드라이브들, 고체 상태 드라이브들 (SSD), 및 테이프 드라이브들을 포함한다. 예시적인 컴퓨터 저장 매체들은, 정보, 예컨대, 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체들을 포함할 수도 있다.
시스템 메모리 (506), 착탈식 스토리지 디바이스들 (536) 및 비착탈식 스토리지 디바이스들 (538) 은 컴퓨터 저장 매체들의 예들이다. 컴퓨터 저장 매체들은, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크들 (DVD) 또는 다른 광학적 스토리지, 자기 카세트들, 자기 테이프, 자기 디스크 스토리지 또는 기타 자기 스토리지 디바이스들, 또는 원하는 정보를 저장하는데 사용될 수도 있고 컴퓨팅 디바이스 (500) 에 의해 액세스될 수도 있는 임의의 다른 매체를 포함하지만, 이들로 제한되지 않는다. 임의의 이러한 컴퓨터 저장 매체들은 컴퓨팅 디바이스 (500) 의 부분일 수도 있다.
컴퓨팅 디바이스 (500) 는 또한 다양한 인터페이스 디바이스들 (예를 들어, 출력 디바이스들 (542), 주변장치 인터페이스들 (544), 및 통신 디바이스들 (546)) 로부터 버스/인터페이스 제어기 (530) 를 통해 기본적인 구성 (502) 으로의 통신을 용이하게 하기 위한 인터페이스 버스 (540) 를 포함할 수도 있다. 일부 예시적인 출력 디바이스들 (542) 은 그래픽 프로세싱 유닛 (548) 과 오디오 프로세싱 유닛 (550) 을 포함하며, 이들은 하나 이상의 A/V 포트들 (552) 을 통해 디스플레이 또는 스피커들과 같은 다양한 외부 디바이스들과 통신하도록 구성될 수도 있다. 예시적인 주변장치 인터페이스들 (544) 은 직렬 인터페이스 제어기 (554) 또는 병렬 인터페이스 제어기 (556) 를 포함하고, 이들은 하나 이상의 I/O 포트들 (558) 을 통해 입력 디바이스들 (예를 들어, 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등) 또는 다른 주변장치 디바이스들 (예를 들어, 프린터, 스캐너 등) 과 같은 외부 디바이스들과 통신하도록 구성될 수도 있다. 일 예시적인 통신 디바이스 (546) 는 네트워크 제어기 (560) 를 포함하고, 이 네트워크 제어기 (560) 는 하나 이상의 통신 포트들 (564) 을 통한 네트워크 통신 링크를 거쳐서 하나 이상의 다른 컴퓨팅 디바이스들 (562) 과의 통신들을 용이하게 하도록 배열될 수도 있다.
네트워크 통신 링크는 통신 매체들의 하나의 예일 수도 있다. 통신 매체들은 통상적으로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 변조된 데이터 신호, 예컨대, 반송파 또는 다른 전송 메커니즘 내의 다른 데이터에 의해 구현될 수도 있고, 임의의 정보 전달 매체들을 포함할 수도 있다. "변조된 데이터 신호" 는 신호 내의 정보를 인코딩하도록 하는 방식으로 설정되거나 또는 변경된 그것의 특성들 중 하나 이상을 갖는 신호일 수도 있다. 비제한적인 예로서, 통신 매체들은 유선 매체들, 예컨대, 유선 네트워크 또는 직접 유선 연결, 및 무선 매체들, 예컨대, 음향, 무선 주파수 (RF), 마이크로파, 적외선 (IR) 및 다른 무선 매체들을 포함할 수도 있다. 본 명세서에서 사용되는 컴퓨터 판독가능 매체들이라는 용어는 저장 매체들 및 통신 매체들 양쪽 모두를 포함할 수도 있다.
컴퓨팅 디바이스 (500) 는 범용 또는 특수화된 서버, 메인프레임, 또는 상기 기능들 중 임의의 것을 포함하는 유사한 컴퓨터의 부분으로서 구현될 수도 있다. 컴퓨팅 디바이스 (500) 는 또한 랩톱 컴퓨터 및 비-랩톱 컴퓨터 구성들 양쪽 모두를 포함하는 개인용 컴퓨터로서 구현될 수도 있다.
예시적인 실시형태들은 또한 방법들을 포함할 수도 있다. 이 방법들은 본 명세서에서 설명된 구조들을 포함하는 임의의 수의 방법들로 구현될 수 있다. 하나의 이러한 방법은 본 개시물에서 설명된 타입의 디바이스들의 머신 동작들에 의한 것이다. 또 다른 옵션적인 방법은 동작들의 일부를 수행하는 한 명 이상의 인간 오퍼레이터들과 함께 수행되는 방법들의 개별적인 동작들 중 하나 이상에 대한 것이지만, 다른 동작들은 머신들에 의해 수행된다. 이러한 인간 오퍼레이터들이 서로 병치될 (collocated) 필요는 없지만, 각각은 단지 프로그램의 일부를 수행하는 머신을 갖고 있을 수 있다. 다른 예들에 있어서, 인간 상호작용은 머신 자동화되는, 예컨대, 미리 선택된 기준들에 의해 자동화될 수 있다.
도 6 은 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 도 1 또는 도 2 의 디바이스들 중 하나의 디바이스와 같은 스케일러블 네트워킹된 디바이스를 기동하는 일 예시적인 방법을 예시한 플로우 다이어그램이다. 예시적인 방법들은 블록들 622, 624, 626, 628, 630, 및/또는 632 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다. 또한, 블록들 622 내지 632 에서 설명된 동작들은 컴퓨팅 디바이스 (610) 의 컴퓨터 판독가능 매체 (620) 와 같은 컴퓨터 판독가능 매체에 컴퓨터 실행가능 명령들로서 저장될 수도 있다.
스케일러블 네트워킹된 디바이스를 기동하는 프로세스는 블록 622 의 "네트워크 식별자를 획득하려고 시도" 로 시작할 수도 있다. 블록 622 에서, 도 1 의 스케일러블 네트워킹된 디바이스들 (110 또는 115) 과 같은 스케일러블 네트워킹된 디바이스는 초기화 프로세스의 부분으로서 식별자를 획득하기 위해 도메인 네임 서버 (DNS) 와 같은 네트워크 서버에 연결하려고 시도할 수도 있다. 이 디바이스가 네트워크에 직접적으로 연결되는 경우, 이 디바이스는 네트워크의 서버로부터, 예컨대, 식별자, 예를 들어, IP 어드레스를 획득할 수도 있다.
블록 622 에 뒤이어서 블록 624 의 "네트워크 식별자가 획득된 경우, 디바이스 정보를 네트워크 관리 서버에 제공" 이 후속할 수도 있다. 블록 624 에서, 스케일러블 네트워킹된 디바이스는, 즉, 이 디바이스가 블록 622 에서 네트워크 식별자를 획득할 수 있었다면, 그의 네트워크 식별자, 속성들, 능력들 등과 같은 디바이스 정보를 네트워크 관리 서버에 제공할 수도 있다.
블록 624 에 뒤이어서 옵션적인 블록 626 의 "위치가 알려져 있지 않은 경우, 부근의 하나 이상의 디바이스들로부터 위치를 결정" 이 후속할 수도 있다. 일부 예에서, 스케일러블 네트워킹된 디바이스의 속성들 중 하나의 속성은 디바이스의 위치를 포함할 수도 있다. 디바이스가 그의 위치를 인식하지 못하는 경우, 블록 626 에서 디바이스 부근의 하나 이상의 유사한 디바이스들로부터 위치 정보가 획득될 수도 있다. 위치 정보는 글로벌 포지셔닝 서비스 (GPS) 데이터, 네트워크 데이터, 또는 유사한 정보를 포함할 수도 있다.
옵션적인 블록 626 에 뒤이어서 블록 628 의 "네트워크 관리 서버로부터 네트워크에 대한 연결의 표시를 수신" 이 후속할 수도 있다. 블록 628 에서, 스케일러블 네트워킹된 디바이스는, 이 디바이스가 네트워크에 연결된 것을 나타내는, 네트워크 관리 서버로부터의 확인응답을 수신할 수도 있다.
블록 628 에 뒤이어서 블록 630 의 "네트워크 연결된 디바이스에 대한 탐색을 시작" 이 후속할 수도 있다. 블록 628 에서 네트워크 연결의 확인응답의 수신시, 스케일러블 네트워킹된 디바이스는 옵션적인 블록 630 에서 다른 네트워크 연결된 스케일러블 디바이스들에 대한 도 7 에서 설명되는 탐색 알고리즘을 개시할 수도 있다.
옵션적인 블록 630 에 뒤이어서 옵션적인 블록 632 의 "네트워크 식별자가 획득되지 않은 경우, 비네트워크 연결된 디바이스에 대한 탐색을 시작" 이 후속할 수도 있다. 스케일러블 네트워킹된 디바이스가 네트워크 식별자를 획득할 수 없는 경우, 스케일러블 네트워킹된 디바이스는 옵션적인 블록 632 에서 다른 비네트워크 연결된 스케일러블 디바이스들에 대한 도 8 에서 설명되는 탐색 알고리즘을 개시할 수도 있다.
도 7 은 본 명세서에서 설명되는 적어도 일부의 실시형태들에 따라 배열된, 도 1 의 디바이스 (110) 와 같은 네트워크 연결된 스케일러블 네트워킹된 디바이스에 의해 다른 디바이스들을 탐색하는 일 예시적인 방법을 예시한 플로우 다이어그램이다. 예시적인 방법들은 블록들 722, 724, 726, 728, 730, 732, 및/또는 734 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다. 또한, 블록들 722 내지 734 에서 설명된 동작들은 컴퓨팅 디바이스 (710) 의 컴퓨터 판독가능 매체 (720) 와 같은 컴퓨터 판독가능 매체에 컴퓨터 실행가능 명령들로서 저장될 수도 있다.
다른 디바이스들을 탐색하는 프로세스는 블록 722 의 "초기 신호를 브로드캐스팅" 으로 시작할 수도 있다. 블록 722 에서, 도 1 의 스케일러블 네트워킹된 디바이스 (110) 와 같은 스케일러블 네트워킹된 디바이스는 초기 "hello" 또는 유시한 신호를 네트워크 내의 임의의 청취 디바이스들에게 브로드캐스팅할 수도 있다.
블록 722 에 뒤이어서 블록 724 의 "하나 이상의 디바이스들로부터 확인응답을 수신" 이 후속할 수도 있다. 블록 724 에서, 도 6 에서 설명된 바와 같이 네트워크 식별자를 획득할 수 있는 스케일러블 네트워킹된 디바이스에서 2개 이상의 스케일러블 네트워킹된 디바이스로부터의 응답들이 수신될 수도 있다.
블록 724 에 뒤이어서 블록 726 의 "응답하는 디바이스가 명칭을 가진 경우, 그 명칭에 의해 정의된 루트가 새로운 것인지를 결정" 이 후속할 수도 있다. 블록 726 에서, 탐색 알고리즘을 수행하는 스케일러블 네트워킹된 디바이스는 응답하는 스케일러블 네트워킹된 디바이스가 명칭을 갖고 있는지 여부를 결정할 수도 있다. 상술된 명명 컨벤션에 따라, 명칭은 발견된 디바이스에 대한 루트를 나타낸다. 발견된 디바이스의 명칭은 탐색을 수행하는 스케일러블 네트워킹된 디바이스에 의해 저장된 테이블에 존재할 수도 있거나 또는 새로운 명칭일 수도 있다. 따라서, 발견된 디바이스의 명칭은 발견된 스케일러블 네트워킹된 디바이스에 대한 기존의 루트와는 상이할 수도 있는 새로운 루트를 나타낼 수도 있다.
블록 726 에 뒤이어서 블록 728 의 "명칭이 새로운 것인 경우, 루트를 기존의 명칭에 의해 정의된 기존의 루트와 비교" 가 후속할 수도 있다. 블록 728 에서, 탐색 알고리즘을 수행하는 스케일러블 네트워킹된 디바이스는, 새롭게 발견된 명칭에 의해 정의된 루트를, 이전에 설명된 명명 컨벤션에 따라 기존의 명칭에 의해 정의된 동일한 디바이스에 대한 기존의 루트와 비교할 수도 있다.
블록 728 에 뒤이어서 블록 730 의 "새로운 루트가 선호된 경우, 디바이스 명칭을 변경" 이 후속할 수도 있다. 블록 730 에서, 탐색 알고리즘을 수행하는 스케일러블 네트워킹된 디바이스는 새롭게 발견된 명칭에 의해 정의된 새로운 루트가 동일한 스케일러블 네트워킹된 디바이스에 대한 하나 이상의 기존의 루트들에 비해 선호되는지를 결정할 수도 있다. 선호도는 거리 (지리학적 또는 네트워크 토폴로지 기반), 네트워크 트래픽, 또는 비교가능한 이유들로 인한 것일 수도 있다. 새로운 루트가 선호되는 경우, 탐색 알고리즘을 수행하는 스케일러블 네트워킹된 디바이스는 발견된 스케일러블 네트워킹된 디바이스에 대해 저장된 명칭을, 선호된 루트를 정의하는 새로운 명칭으로 변경할 수도 있다.
블록 730 에 뒤이어서 블록 732 의 "기존의 명칭이 없거나 또는 디바이스가 명칭을 갖고 있지 않은 경우, 새로운 디바이스 명칭을 부가" 가 후속할 수도 있다. 새롭게 발견된 디바이스가 기존의 명칭을 갖고 있지 않은 경우 (즉, 탐색 알고리즘을 수행하는 스케일러블 네트워킹된 디바이스에서 그 새롭게 발견된 디바이스에 대해 어떠한 루트도 정의되지 않은 경우), 블록 732 에서 탐색 알고리즘을 수행하는 스케일러블 네트워킹된 디바이스에 의해 새로운 명칭 (그리고 정의된 루트) 이 저장될 수도 있다.
블록 732 에 뒤이어서 블록 734 의 "네트워크에 대한 업데이트된 테이블을 공개" 가 후속할 수도 있다. 블록 734 에서, 탐색 알고리즘을 수행하는 스케일러블 네트워킹된 디바이스는 네트워크에 대한 그의 업데이트된 연결 테이블을 공개할 수도 있어서, 새롭게 발견된 스케일러블 네트워킹된 디바이스들을 포함하는 정보가 하나 이상의 서버들에 의해 저장될 수도 있고 새롭게 발견된 디바이스들의 속성들에 기초하여 사용자들에 의해 탐색가능하게 될 수 있다.
도 8 은 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 도 1 의 디바이스 (115) 와 같은 비네트워크 연결된 스케일러블 네트워킹된 디바이스에 의해 다른 디바이스들을 탐색하는 일 예시적인 방법을 예시한 플로우 다이어그램이다. 예시적인 방법들은 블록들 822, 824, 826, 828, 및/또는 830 중 하나 이상에 의해 예시된 바와 같이 하나 이상의 동작들, 기능들 또는 액션들을 포함할 수도 있다. 또한, 블록들 822 내지 830 에서 설명된 동작들은 컴퓨팅 디바이스 (810) 의 컴퓨터 판독가능 매체 (820) 와 같은 컴퓨터 판독가능 매체에 컴퓨터 실행가능 명령들로서 저장될 수도 있다.
비네트워킹된 디바이스에 의한 다른 디바이스들을 탐색하는 프로세스는 블록 822 의 "초기 신호를 브로드캐스팅" 에서 시작할 수도 있다. 블록 822 에서, 도 1 의 스케일러블 네트워킹된 디바이스 (115) 와 같은 네트워크에 직접적으로 연결되지 않은 (즉, 네트워크 식별자를 갖고 있지 않은) 스케일러블 네트워킹된 디바이스는 초기 "hello" 또는 유시한 신호를 임의의 청취 디바이스들에게 브로드캐스팅할 수도 있다.
블록 822 에 뒤이어서 블록 824 의 "하나 이상의 디바이스들로부터 확인응답을 수신" 이 후속할 수도 있다. 블록 824 에서, 도 6 에서 설명된 바와 같이 네트워크 식별자가 없는 스케일러블 네트워킹된 디바이스에서 2개 이상의 다른 디바이스로부터의 응답들이 수신될 수도 있다.
블록 824 에 뒤이어서 블록 826 의 "응답하는 디바이스가 그의 명칭 내에 네트워크 식별자를 가진 경우, 그 자신을 루트에 부가" 가 후속할 수도 있다. 블록 826 에서, 탐색을 수행하고 있는, 네트워크 식별자가 없는 스케일러블 네트워킹된 디바이스는, 응답하는 디바이스가 (루트를 정의하는) 명칭을 가진 경우, 그 자신을, 응답하는 디바이스의 명칭에 의해 정의된 루트에 부가할 수도 있다.
블록 826 에 뒤이어서 블록 828 의 "필요하다면 디바이스들의 미리 정의된 개수만큼 계속" 이 후속할 수도 있다. 블록 828 에서, 탐색을 수행하고 있는, 네트워크 식별자가 없는 스케일러블 네트워킹된 디바이스는, 그 자신을, 발견된 디바이스들의 명칭들에 의해 정의된 루트들에 부가하여 탐색을 미리 정의된 개수만큼 계속할 수도 있다. 실시형태들에 따른 시스템 내의 단일 스케일러블 네트워킹된 디바이스에 대해 다수의 루트들이 정의될 수도 있다. 따라서, 루트들 중 하나가 대역폭, 트래픽 등의 이슈들로 인해 이용가능하지 않거나 또는 바람직하지 않게 되는 경우, 디바이스가 여전히 또 다른 루트를 통해 도달가능하게 될 수도 있다.
블록 828 에 뒤이어서 블록 830 의 "응답하는 디바이스가 그의 명칭 내에 어떠한 네트워크 식별자도 갖고 있지 않은 경우, 다음의 응답하는 디바이스로 계속" 이 후속할 수도 있다. 탐색 동안 응답하는 디바이스들이 어떠한 명칭도 갖고 있지 않아서 디바이스가 네트워크에 대한 어떠한 직접적인 연결도 갖고 있지 않다는 것을 나타내는 경우, 탐색을 수행하고 있는, 네트워크 식별자가 없는 스케일러블 네트워킹된 디바이스는 블록 830 에서 다음의 응답하는 디바이스로 스킵하여 탐색을 계속할 수도 있다.
상술된 프로세스들에 있어서 블록들에서 수행되는 기능들은 예시 목적들을 위한 것이다. 스케일러블 네트워킹된 디바이스들의 동적 매핑은 보다 적거나 또는 부가적인 기능들을 가진 유사한 프로세스들로 구현될 수도 있다. 일부 예에서, 기능들은 상이한 순서로 수행될 수도 있다. 일부 다른 예에서, 다양한 기능들이 제거될 수도 있다. 또 다른 예들에 있어서, 다양한 기능들이 부가적인 기능들로 분할될 수도 있거나, 또는 보다 적은 기능들로 함께 결합될 수도 있다.
도 9 는 본 명세서에서 설명된 적어도 일부의 실시형태들에 따라 배열된, 일 예시적인 컴퓨터 프로그램 제품의 블록 다이어그램을 예시한 것이다. 일부 예에서, 도 9 에 도시된 바와 같이, 컴퓨터 프로그램 제품 (900) 은, 예를 들어, 프로세서에 의해 실행될 때, 도 4 및 도 5 에 대해 상술된 기능성을 제공할 수도 있는 머신 판독가능 명령들 (904) 을 또한 포함할 수도 있는 신호 베어링 매체 (902) 를 포함할 수도 있다. 따라서, 예를 들어, 프로세서 (504) 를 참조하면, 연결 모듈 (526) 은 스케일러블 네트워킹된 디바이스를 기동하는 것, 이 스케일러블 네트워킹된 디바이스에 대한 루트/명칭을 결정하는 것, 디바이스 정보 테이블(들) 을 업데이팅하는 것, 및/또는 계층간 탐색 (layer-by-layer search) 을 통해 스케일러블 네트워킹된 디바이스들로부터 업데이트된 상태를 재귀적으로 발견하고 수신하는 것과 연관된 액션들을 수행하기 위해 신호 베어링 매체 (902) 에 의해 프로세서 (504) 에 전달되는 명령들 (904) 에 응답하여, 도 9 에 도시된 태스크들 중 하나 이상을 착수할 수도 있다.
일부 구현들에서, 도 9 에 나타낸 신호 베어링 매체 (902) 는 하드 디스크 드라이브, 콤팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 디지털 테이프, 메모리 등과 같은, 그러나, 이들로 제한되지 않는, 컴퓨터 판독가능 매체 (906) 를 포함할 수도 있다. 일부 구현들에서, 신호 베어링 매체 (902) 는 메모리, 판독/기입 (R/W) CD들, R/W DVD들 등과 같은, 그러나, 이들로 제한되지 않는, 기록가능 매체 (908) 를 포함할 수도 있다. 일부 구현들에서, 신호 베어링 매체 (902) 는 디지털 및/또는 아날로그 통신 매체 (예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은, 그러나 이들로 제한되지 않는, 통신 매체 (910) 를 포함할 수도 있다. 따라서, 예를 들어, 컴퓨터 프로그램 제품 (900) 은 프로세서 (904) 의 하나 이상의 모듈들로 RF 신호 베어링 매체에 의해 전달될 수도 있으며, 여기서 신호 베어링 매체 (902) 는 무선 통신 매체 (910) (예를 들어, IEEE 802.11 표준에 따르는 무선 통신 매체) 에 의해 전달된다.
일부 예에 따르면, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법은, 제 1 스케일러블 네트워킹된 디바이스에서 네트워크 식별자를 획득하려고 시도하는 것, 및 네트워크 식별자가 획득되는 경우, 제 1 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 및/또는 상태 중 적어도 하나에 기초하여 제 1 스케일러블 네트워킹된 디바이스가 네트워크 내에서 발견가능하게 되도록 제 1 스케일러블 네트워킹된 디바이스 정보를 네트워크 관리 서버에 제공하는 것을 포함할 수도 있다. 또한, 이 방법은, 네트워크 관리 서버에 의한 확인응답시, 제 1 스케일러블 네트워킹된 디바이스에 통신가능하게 커플링되는 적어도 제 2 스케일러블 네트워킹된 디바이스에 대한 탐색을 제 1 스케일러블 네트워킹된 디바이스에서 수행하는 것을 포함할 수도 있다.
네트워크 관리 서버에 제공된 제 1 스케일러블 네트워킹된 디바이스 정보는, 제 1 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 및/또는 상태를 포함할 수도 있다. 이 명칭은 제 1 스케일러블 네트워킹된 디바이스의 네트워크 식별자를 포함할 수도 있다. 네트워크 관리 서버에 제공된 제 1 스케일러블 네트워킹된 디바이스 정보는, 제 1 스케일러블 네트워킹된 디바이스의 위치를 더 포함할 수도 있다.
일부 예에 따르면, 이 방법은 또한, 제 1 스케일러블 네트워킹된 디바이스의 실제 위치가 알려져 있지 않은 경우, 제 1 스케일러블 네트워킹된 디바이스의 부근 내의 하나 이상의 다른 스케일러블 네트워킹된 디바이스들의 위치들로부터 제 1 스케일러블 네트워킹된 디바이스의 위치를 결정하는 것을 더 포함할 수도 있다. 적어도 제 2 스케일러블 네트워킹된 디바이스에 대한 탐색을 수행하는 것은, 초기 신호를 브로드캐스팅하는 것, 초기 신호에 대한 수신된 응답들을 확인응답하는 것, 및 제 2 스케일러블 네트워킹된 디바이스로부터 스케일러블 네트워킹된 디바이스 명칭이 수신되는 경우, 수신된 명칭에 의해 정의된 제 2 스케일러블 네트워킹된 디바이스의 기존의 루트를, 제 1 스케일러블 네트워킹된 디바이스를 통한 새로운 루트와 비교하여, 제 1 스케일러블 네트워킹된 디바이스와 연관된 스케일러블 네트워킹된 디바이스 테이블에서 새로운 루트를 부가하는 것 또는 기존의 루트를 변경시키는 것 중 하나를 포함할 수도 있다. 스케일러블 네트워킹된 디바이스 명칭이 제 2 스케일러블 네트워킹된 디바이스로부터 수신되지 않은 경우, 이 탐색을 수행하는 것은, 스케일러블 네트워킹된 디바이스 테이블을 제 2 스케일러블 네트워킹된 디바이스의 명칭, 위치, 기능성, 및 상태로 업데이트하는 것을 더 포함할 수도 있고, 제 2 스케일러블 네트워킹된 디바이스의 명칭은 제 1 스케일러블 네트워킹된 디바이스의 네트워크 식별자이다.
다른 예들에 따르면, 이 방법은, 적어도 하나의 다른 스케일러블 네트워킹된 디바이스를 통해 제 1 스케일러블 네트워킹된 디바이스에 직접적으로 또는 간접적으로 통신가능하게 커플링된 다른 스케일러블 네트워킹된 디바이스들에 대한 탐색을 재귀적으로 계속 수행하는 것을 더 포함할 수도 있다. 네트워크 식별자가 획득되지 않은 경우, 이 방법은, 초기 신호를 브로드캐스팅하는 것, 또 다른 스케일러블 네트워킹된 디바이스로부터 응답을 수신하는 것을 포함할 수도 있다. 이 응답은 다른 스케일러블 네트워킹된 디바이스의 명칭 내의 네트워크 식별자를 포함하는 경우, 이 방법은, 다른 스케일러블 네트워킹된 디바이스로 하여금, 다른 스케일러블 네트워킹된 디바이스에서의 연결된 스케일러블 네트워킹된 디바이스들의 리스트에 제 1 스케일러블 네트워킹된 디바이스를 부가할 수 있게 하는 것, 그렇지 않으면 추가의 스케일러블 네트워킹된 디바이스로부터의 또 다른 응답을 프로세싱하는 것을 포함할 수도 있다.
제 1 스케일러블 네트워킹된 디바이스의 명칭은, 제 1 스케일러블 네트워킹된 디바이스에 대한 루트를 정의하는, 다른 스케일러블 네트워킹된 디바이스와 제 1 스케일러블 네트워킹된 디바이스 사이의 적어도 하나의 스케일러블 네트워킹된 디바이스의 명칭, 및 다른 스케일러블 네트워킹된 디바이스의 명칭 내의 네트워크 식별자를 포함할 수도 있다. 또한, 이 방법은, 제 1 스케일러블 네트워킹된 디바이스의 명칭, 위치, 기능성, 및 상태 중 적어도 하나가 탐색가능하도록 제 1 스케일러블 네트워킹된 디바이스 정보가 네트워크 내의 복수의 디바이스들에 저장될 수 있게 하는 것을 더 포함할 수도 있다. 제 1 스케일러블 네트워킹된 디바이스의 기능성은, 온도 감지, 습도 감지, 압력 감지, 진동 감지, 위치 결정, 스틸 이미지 캡처, 비디오 캡처, 오디오 캡처, 및/또는 모션 검출의 세트로부터 적어도 포함할 수도 있다. 또한, 제 1 스케일러블 네트워킹된 디바이스의 기능성의 적어도 일 부분은, 제 1 스케일러블 네트워킹된 디바이스에 커플링된 외부 모듈에 의해 수행될 수도 있다.
일부 예에 따르면, 스케일러블 네트워킹된 디바이스는, 명령들을 저장하도록 구성된 메모리, 무선 통신 모듈, 및 저장된 명령들과 함께 네트워크와 통신하도록 구성된 프로세싱 유닛을 포함할 수도 있다. 이 프로세서는, 네트워크 식별자를 획득하려고 시도하고, 네트워크 식별자가 획득되는 경우, 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 및/또는 상태 중 적어도 하나에 기초하여 스케일러블 네트워킹된 디바이스가 네트워크 내에서 발견가능하게 되도록 정보를 네트워크 관리 서버에 제공하며, 네트워크 관리 서버에 의한 확인응답시, 스케일러블 네트워킹된 디바이스에 통신가능하게 커플링되는 적어도 하나의 다른 스케일러블 네트워킹된 디바이스에 대한 탐색을 수행할 수도 있다.
네트워크 관리 서버에 제공된 정보는, 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 및/또는 상태를 포함할 수도 있다. 이 명칭은 스케일러블 네트워킹된 디바이스의 네트워크 식별자를 포함할 수도 있다. 네트워크 관리 서버에 제공된 정보는, 스케일러블 네트워킹된 디바이스의 위치를 더 포함할 수도 있다. 이 프로세서는 또한, 스케일러블 네트워킹된 디바이스의 실제 위치가 알려져 있지 않은 경우, 스케일러블 네트워킹된 디바이스의 부근 내의 하나 이상의 다른 스케일러블 네트워킹된 디바이스들의 위치들로부터 스케일러블 네트워킹된 디바이스의 위치를 결정할 수도 있다. 리포트가, 수행된 분석 태스크들의 요약, 분석된 데이터의 요약, 또는 분석된 데이터 중 하나 이상을 포함할 수도 있다.
다른 예들에 따르면, 프로세서는, 초기 신호를 브로드캐스팅하는 것, 초기 신호에 대한 수신된 응답들을 확인응답하는 것, 및 다른 스케일러블 네트워킹된 디바이스로부터 스케일러블 네트워킹된 디바이스 명칭이 수신되는 경우, 수신된 명칭에 의해 정의된 다른 스케일러블 네트워킹된 디바이스의 기존의 루트를, 스케일러블 네트워킹된 디바이스를 통한 새로운 루트와 비교하여, 스케일러블 네트워킹된 디바이스와 연관된 스케일러블 네트워킹된 디바이스 테이블에서 새로운 루트를 부가하는 것 또는 기존의 루트를 변경시키는 것 중 하나에 의해, 적어도 하나의 다른 스케일러블 네트워킹된 디바이스에 대한 탐색을 수행할 수도 있다. 스케일러블 네트워킹된 디바이스 명칭이 다른 스케일러블 네트워킹된 디바이스로부터 수신되지 않은 경우, 프로세서는, 스케일러블 네트워킹된 디바이스 테이블을 다른 스케일러블 네트워킹된 디바이스의 명칭, 위치, 기능성, 및 상태로 업데이트하는 것에 의해 탐색을 수행할 수도 있고, 여기서 다른 스케일러블 네트워킹된 디바이스의 명칭은 스케일러블 네트워킹된 디바이스의 네트워크 식별자이다.
이 프로세서는, 적어도 하나의 추가의 스케일러블 네트워킹된 디바이스를 통해 스케일러블 네트워킹된 디바이스에 직접적으로 또는 간접적으로 통신가능하게 커플링된 다른 스케일러블 네트워킹된 디바이스들에 대한 탐색을 재귀적으로 계속 수행할 수도 있다. 네트워크 식별자가 획득되지 않은 경우, 프로세서는, 초기 신호를 브로드캐스팅하고, 또 다른 스케일러블 네트워킹된 디바이스로부터 응답을 수신하며, 이 응답이 다른 스케일러블 네트워킹된 디바이스의 명칭 내의 네트워크 식별자를 포함하는 경우, 다른 스케일러블 네트워킹된 디바이스로 하여금, 다른 스케일러블 네트워킹된 디바이스에서의 연결된 스케일러블 네트워킹된 디바이스들의 리스트에 스케일러블 네트워킹된 디바이스를 부가할 수 있게 할 수도 있다. 그렇지 않으면, 프로세서는, 추가의 스케일러블 네트워킹된 디바이스로부터 또 다른 응답을 프로세싱할 수도 있다.
스케일러블 네트워킹된 디바이스의 명칭은, 스케일러블 네트워킹된 디바이스에 대한 루트를 정의하는, 다른 스케일러블 네트워킹된 디바이스와 스케일러블 네트워킹된 디바이스 사이의 적어도 하나의 스케일러블 네트워킹된 디바이스의 명칭, 및 다른 스케일러블 네트워킹된 디바이스의 명칭 내의 네트워크 식별자를 포함할 수도 있다. 스케일러블 네트워킹된 디바이스의 기능성은, 온도 감지, 습도 감지, 압력 감지, 진동 감지, 위치 결정, 스틸 이미지 캡처, 비디오 캡처, 오디오 캡처, 및/또는 모션 검출의 세트로부터 적어도 포함할 수도 있다. 스케일러블 네트워킹된 디바이스의 기능성의 적어도 일 부분은, 스케일러블 네트워킹된 디바이스에 커플링된 외부 모듈 및 통합된 센서 모듈 중 하나에 의해 수행될 수도 있다.
추가의 예들에 따르면, 발견가능한 스케일러블 네트워킹된 디바이스들의 시스템은, 제 1 서버, 제 2 서버, 및 복수의 스케일러블 네트워킹된 디바이스들을 포함할 수도 있다. 제 1 서버는, 네트워크에 직접적으로 커플링된 각각의 스케일러블 네트워킹된 디바이스에 네트워크 식별자를 제공할 수도 있다. 제 2 서버는, 네트워크에 직접적으로 커플링된 각각의 스케일러블 네트워킹된 디바이스로부터 디바이스 정보 테이블들을 수신하고, 디바이스 정보 테이블들을 공개함으로써 스케일러블 네트워킹된 디바이스들을 발견가능하게 할 수도 있고, 여기서 디바이스 정보 테이블들은, 네트워크에 직접적으로 또는 간접적으로 커플링된 각각의 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 위치, 및/또는 상태를 포함한다. 각각의 스케일러블 네트워킹된 디바이스의 명칭은 디바이스의 루트를 식별할 수도 있다.
스케일러블 네트워킹된 디바이스의 명칭은, 스케일러블 네트워킹된 디바이스가 네트워크에 직접적으로 커플링되는 경우, 스케일러블 네트워킹된 디바이스의 네트워크 식별자, 또는 스케일러블 네트워킹된 디바이스가 하나 이상의 스케일러블 네트워킹된 디바이스들을 통해 네트워크에 커플링되는 경우, 임의의 다른 개재된 스케일러블 네트워킹된 디바이스들의 명칭들, 및 스케일러블 네트워킹된 디바이스의 루트 내의, 그리고 네트워크에 직접적으로 커플링된 제 1 스케일러블 네트워킹된 디바이스의 네트워크 식별자를 포함할 수도 있다. 이 시스템은 또한 제 3 서버를 포함할 수도 있다. 이 제 3 서버는, 원하는 스케일러블 네트워킹된 디바이스의 기능성 및 위치를 정의하는, 사용자로부터의 탐색 요청을 수신하고, 디바이스 정보 테이블들에 대한 탐색을 수행함으로써 원하는 스케일러블 네트워킹된 디바이스를 결정하며, 원하는 스케일러블 네트워킹된 디바이스의 명칭에 의해 정의된 원하는 스케일러블 네트워킹된 디바이스의 루트를 사용자에게 반환할 수도 있다. 이 사용자는, 반환된 루트를 이용하여 정의된 기능성과 연관된 데이터에 대해 원하는 스케일러블 네트워킹된 디바이스에게 질의할 수 있게 될 수도 있다.
또 다른 예들에 따르면, 스케일러블 네트워킹된 디바이스 네트워크 상태를 업데이팅하는 방법은, 스케일러블 네트워킹된 디바이스들의 루트들 내에 제 1 스케일러블 네트워킹된 디바이스의 네트워크 식별자를 포함하는 스케일러블 네트워킹된 디바이스들에게 초기 신호를 브로드캐스팅하는 것, 확인응답의 수신시, 응답하는 스케일러블 네트워킹된 디바이스들로부터 디바이스 정보를 요청하는 것, 각각의 응답하는 스케일러블 네트워킹된 디바이스에 대해, 제 1 스케일러블 네트워킹된 디바이스와 연관된 스케일러블 네트워킹된 디바이스들의 계층들이 고갈될 때까지 응답하는 디바이스들에 커플링된 다른 스케일러블 네트워킹된 디바이스들로부터 디바이스 정보를 재귀적으로 요청하는 것을 포함할 수도 있다. 이 방법은 또한, 스케일러블 네트워킹된 디바이스의 명칭 내에 네트워크 식별자가 없는 스케일러블 네트워킹된 디바이스가 발견되는 경우, 스케일러블 네트워킹된 디바이스를, 제 1 스케일러블 네트워킹된 디바이스의 네트워크 식별자와 연관시키는 것을 포함할 수도 있다.
이 디바이스 정보는, 각각의 스케일러블 네트워킹된 디바이스의 명칭, 기능성, 위치, 및/또는 상태를 포함할 수도 있다. 이 방법은, 제 1 스케일러블 네트워킹된 디바이스와 연관된 스케일러블 네트워킹된 디바이스들의 계층들의 고갈시, 초기 신호를, 네트워크 식별자를 가진 제 2 스케일러블 네트워킹된 디바이스와 연관된 하나 이상의 스케일러블 네트워킹된 디바이스들에게 브로드캐스팅하고, 디바이스 정보를 하나 이상의 스케일러블 네트워킹된 디바이스들로부터 요청하는 것을 더 포함할 수도 있다.
시스템들의 양태들의 하드웨어와 소프트웨어 구현들 사이에 약간의 차이점이 있으며; 하드웨어 또는 소프트웨어의 사용은 일반적으로 비용 대 효율 상충관계들을 나타내는 설계 선택이다 (그러나, 어떤 상황들에서, 하드웨어와 소프트웨어 사이의 선택이 중요해질 수도 있다는 점에서, 항상 이렇지는 않다). 본 명세서에서 설명된 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 실시될 수도 있는 다양한 전달수단들 (vehicles) 이 있으며 (예를 들어, 하드웨어, 소프트웨어, 및/또는 펌웨어), 그 선호되는 전달수단은 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 전개되는 상황에 따라 변할 것이다. 예를 들어, 속도 및 정확도가 가장 중요하다고 구현자가 결정하면, 구현자는 주로 하드웨어 및/또는 펌웨어 전달수단을 선택할 수도 있으며; 유연성이 가장 중요하면, 구현자는 주로 소프트웨어 구현을 선택할 수도 있거나; 또는, 또한 다시 대안적으로, 구현자는 하드웨어, 소프트웨어, 및/또는 펌웨어의 일부 조합을 선택할 수도 있다.
전술한 상세한 설명은 블록 다이어그램들, 플로우차트들, 및/또는 예들의 이용을 통해 디바이스들 및/또는 프로세스들의 다양한 실시형태들을 제시하였다. 이러한 블록 다이어그램들, 플로우차트들, 및/또는 예들이 하나 이상의 기능들 및/또는 동작들을 포함하는 한, 이러한 블록 다이어그램들, 플로우차트들, 또는 예들 내에서 각각의 기능 및/또는 동작이 광범위한 하드웨어, 소프트웨어, 펌웨어, 또는 실질적으로 이들의 임의의 조합에 의해 개별적으로 및/또는 집합적으로 구현될 수도 있음을 당업자들은 이해할 것이다. 하나의 실시형태에서, 본 명세서에서 설명된 요지의 몇몇 부분들은 주문형 집적 회로 (ASIC) 들, 필드 프로그래밍가능 게이트 어레이 (FPGA) 들, 디지털 신호 프로세서 (DSP) 들, 또는 다른 통합된 포맷들을 통해 구현될 수도 있다. 그러나, 당업자들은, 본 명세서에 개시된 실시형태들의 일부 양태들은, 전체적으로 또는 부분적으로, 집적 회로들에서, 하나 이상의 컴퓨터들 상에서 실행하는 하나 이상의 컴퓨터 프로그램들로서 (예를 들어, 하나 이상의 컴퓨터 시스템들 상에서 실행하는 하나 이상의 프로그램들로서), 하나 이상의 프로세서들 상에서 실행하는 하나 이상의 프로그램들로서 (예를 들어, 하나 이상의 마이크로프로세서들 상에서 실행하는 하나 이상의 프로그램들로서), 펌웨어로서, 또는 실질적으로 이들의 임의의 조합으로서, 동등하게 구현될 수도 있으며, 회로를 설계하는 것 및/또는 소프트웨어 및 또는 펌웨어에 대한 코드를 기입하는 것은 본 개시물을 감안할 때, 당업자의 기술 내에 분명히 있을 것임을 알 것이다.
본 개시물은 본 출원에서 설명하는 특정 실시형태들에 관하여 제한시키려는 것이 아니라, 다양한 양태들의 예시들로서 의도된다. 당업자들에게 명백한 바와 같이, 본 개시물의 사상 및 범위로부터 벗어남 없이, 많은 변경들 및 변형들이 이루어질 수 있다. 전술한 설명들로부터, 본 명세서에서 열거한 것들에 더해서, 본 개시물의 범위 내에서 기능적으로 동등한 방법들 및 장치들은 당업자들에게 명백할 것이다. 이러한 변경들 및 변형들은 첨부된 청구항들의 범위 내에 들어가는 것으로 의도된다. 본 개시물은 이러한 청구항들에 부여되는 등가물들의 전체 범위와 함께, 오직 첨부된 청구항들의 용어들에 의해서만 제한되는 것이다. 본 개시물은 물론, 변할 수 있는, 특정 방법들, 반응물들, 화합물 조성물들 또는 생물학적 시스템들에 제한되지 않는 것으로 이해될 것이다. 또한, 본 명세서에서 사용되는 전문용어가 특정 실시형태들을 오직 설명하려는 목적을 위한 것이며 제한하려고 의도되지 않는 것으로 이해될 것이다.
또한, 당업자들은 본 명세서에서 설명된 요지의 메커니즘들이 프로그램 제품으로서 다양한 형태들로 배포되는 것이 가능하고 본 명세서에서 설명된 요지의 예시적인 실시형태가 그 배포를 실제로 실행하는데 사용되는 특정 타입의 신호 베어링 매체에 상관없이 적용된다는 것을 알 것이다. 신호 베어링 매체의 예들은, 플로피 디스크, 하드 디스크 드라이브, 콤팩트 디스크 (CD), 디지털 다기능 디스크 (DVD), 디지털 테이프, 컴퓨터 메모리 등과 같은 기록가능 타입 매체 (recordable type medium); 및 디지털 및/또는 아날로그 통신 매체 (예를 들어, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등) 와 같은 송신 타입 매체를 포함하지만, 이들로 제한되지 않는다.
당업자들은, 디바이스들 및/또는 프로세스들을 본 명세서에서 제시된 방식으로 설명하고, 그 후에 이와 같이 설명된 디바이스들 및/또는 프로세스들을 데이터 프로세싱 시스템들에 통합하기 위해 엔지니어링 프랙티스들을 이용하는 것이 당업계 내에서 일반적임을 알 것이다. 즉, 본 명세서에서 설명된 디바이스들 및/또는 프로세스들의 적어도 일 부분은 타당한 양의 실험 과정을 통해 데이터 프로세싱 시스템에 통합될 수도 있다. 당업자들은, 통상적인 데이터 프로세싱 시스템이 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 디바이스, 휘발성 및 비휘발성 메모리와 같은 메모리, 마이크로프로세서들 및 디지털 신호 프로세서들과 같은 프로세서들, 운영 시스템들과 같은 컴퓨테이션 엔티티들, 드라이버들, 그래픽 사용자 인터페이스들, 및 애플리케이션들 프로그램들, 터치 패드 또는 스크린과 같은 하나 이상의 상호작용 디바이스들, 및/또는 피드백 루프들 및 제어 모터들 (예를 들어, 갠트리 시스템들의 포지션 및/또는 속력을 감지하기 위한 피드백; 컴포넌트들 및/또는 분량들을 이동 및/또는 조정하기 위한 제어 모터들) 을 포함한 제어 시스템들 중 하나 이상을 포함하는 것을 알 것이다.
통상적인 데이터 프로세싱 시스템은 임의의 적합한 상업적으로 입수가능한 컴포넌트들, 예컨대, 통상적으로 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템들에서 발견될 수 있는 컴포넌트들을 활용하여 구현될 수도 있다. 본 명세서에서 설명된 요지는 때때로 상이한 다른 컴포넌트들 내에 포함되거나 또는 상이한 다른 컴포넌트들에 연결된 상이한 컴포넌트들을 예시한다. 이와 같이 나타낸 아키텍쳐들은 단지 예시적이고, 동일한 기능성을 달성하는 많은 다른 아키텍쳐들이 사실상 구현될 수도 있는 것으로 이해될 것이다. 개념적인 의미에서, 동일한 기능성을 달성하는 컴포넌트들의 임의의 배열은 원하는 기능성이 달성되도록 효과적으로 "연관된다". 그러므로, 특정 기능성을 달성하기 위해 본 명세서에서 결합되는 임의의 2개의 컴포넌트들은 아키텍쳐들 또는 중간 컴포넌트들과 관계없이 원하는 기능성이 달성되도록 서로 "연관되는" 것으로 간주될 수도 있다. 마찬가지로, 이와 같이 연관된 임의의 2개의 컴포넌트들은 또한 원하는 기능성을 달성하기 위해 서로 "동작가능하게 연결되는", 또는 "동작가능하게 커플링되는" 것으로 간주될 수도 있으며, 이와 같이 연관되는 것이 가능한 임의의 2개의 컴포넌트들은 또한 원하는 기능성을 달성하기 위해 서로 "동작가능하게 커플링가능한" 것으로 간주될 수도 있다. 동작가능하게 커플링가능한 것의 특정의 예들은 물리적으로 연결가능한 및/또는 물리적으로 상호작용하는 컴포넌트들 및/또는 무선으로 상호작용가능한 및/또는 무선으로 상호작용하는 컴포넌트들 및/또는 논리적으로 상호작용하는 및/또는 논리적으로 상호작용가능한 컴포넌트들을 포함하지만 이들로 제한되지 않는다.
본 명세서에서 실질적으로 임의의 복수 및/또는 단수 용어들의 사용에 대해, 당업자들은 상황 및/또는 애플리케이션에 적합하게, 복수로부터 단수로 및/또는 단수로부터 복수로 해석할 수 있다. 본 명세서에서 명확성을 위해 다양한 단수/복수 치환들이 명확하게 제시될 수도 있다.
당업자들은, 일반적으로, 본 명세서에서 그리고 특히 첨부된 청구항들 (예를 들어, 첨부된 청구항들의 본문들) 에서 사용된 용어들은, 일반적으로 "개방되는 (open)" 용어들로서 의도됨을 이해할 것이다 (예를 들어, 용어 "포함하는 (including)" 은 "포함하지만 제한되지 않는" 것으로 해석되어야 하고, 용어 "갖는 (having)" 은 "적어도 갖는" 것으로 해석되어야 하며, 용어 "포함한다 (includes)" 는 "포함하지만 제한되지 않는다" 는 것으로 해석되어야 하는 등). 또한, 당업자들은, 특정 수의 도입된 청구항 인용이 의도되면, 이러한 의도가 청구항에 명시적으로 인용될 것이며 이러한 인용의 부재시에는 이러한 의도가 없다는 것을 이해할 것이다. 예를 들어, 이해를 돕기 위해, 다음의 첨부된 청구항들은 청구항 인용들을 도입하기 위해 도입 (introductory) 어구들 "적어도 하나" 및 "하나 이상" 의 사용을 포함할 수도 있다. 그러나, 이러한 어구들의 사용은 부정 관사들 "a" 또는 "an" 에 의한 청구항 인용의 도입은, 설령 동일한 청구항이 도입 어구들 "하나 이상" 또는 "적어도 하나" 및 "a" 또는 "an" 과 같은 부정 관사들을 포함할 때에도, 이러한 도입된 청구항 인용을 포함하는 임의의 특정 청구항을 오직 하나의 이러한 인용을 포함하는 실시형태들로 제한하는 것으로 의미하도록 해석되어서는 안된다 (예를 들어, "a" 및/또는 "an" 은 "적어도 하나" 또는 "하나 이상" 을 의미하도록 해석되어야 한다); 마찬가지로, 청구항 인용들을 도입하는데 사용되는 정관사들의 사용에도 해당된다. 또한, 비록 특정 개의 도입된 청구항 인용이 명시적으로 인용되더라도, 당업자들은 이러한 인용이 적어도 인용된 수를 의미하도록 해석되어야 함을 알 것이다 (예를 들어, 다른 한정어구들이 없는, "2개의 인용들" 의 기본 (bare) 인용은 적어도 2개의 인용들, 또는 2개 이상의 인용들을 의미한다).
또한, "A, B, 및 C 등 중 적어도 하나" 와 유사한 컨벤션이 사용되는 경우들에서, 일반적으로 이런 구성은 당업자가 그 컨벤션을 이해하는 인식 (sense) 내에서 의도된다 (예를 들어, "A, B, 및 C 중 적어도 하나를 갖는 시스템" 은 A 를 단독으로, B 를 단독으로, C 를 단독으로, A 와 B 를 함께, A 와 C 를 함께, B 와 C 를 함께, 및/또는 A, B, 및 C 를 함께 등을 갖는 시스템들을 포함하지만 이들로 제한되지 않을 것이다). 또한, 당업자들은, 2개 이상의 대안적인 용어들을 제시하는 사실상 임의의 이접 접속사 (disjunctive) 단어 및/또는 어구는, 상세한 설명, 청구항들, 또는 도면들에서든, 용어들 중 하나, 용어들 중 어느 하나, 또는 양자의 용어들을 포함할 가능성들을 고려하도록 이해되어야 하는 것으로 이해될 것이다. 예를 들어, 어구 "A 또는 B" 는 "A" 또는 "B" 또는 "A 및 B" 의 가능성을 포함하는 것으로 이해될 것이다.
또한, 본 개시물의 피쳐들 또는 양태들이 Markush 그룹들의 관점에서 설명되는 경우, 그에 따라, 당업자들은 본 개시물이 또한 Markush 그룹의 멤버들 중 임의의 개개의 멤버 또는 서브 그룹의 관점에서 설명된다는 것을 알 것이다.
당업자가 이해되는 바와 같이, 상세한 설명을 제공하는 관점에서와 같이, 임의의 및 모든 목적들을 위해, 본 명세서에 개시된 모든 범위들은 또한 임의의 및 모든 가능한 부분 범위들 및 이 부분 범위들의 조합들을 포괄한다. 임의의 리스팅된 범위는 동일한 범위가 적어도 2등분, 3등분, 4등분, 5등분, 10등분 등으로 분할되는 것을 충분히 설명하고 가능하게 하는 것으로 용이하게 인식될 수 있다. 비제한적인 예로서, 본 명세서에서 설명된 각각의 범위가 하부 3분의 1, 중간 3분의 1 및 상부 3분의 1 등으로 용이하게 분할될 수 있다. 또한, 당업자에 의해 이해되는 바와 같이, "까지 (up to)", "적어도", "보다 큰 (greater than)", "보다 작은 (less than)", 및 기타 등등과 같은 모든 용어들은 인용되는 수를 포함하며, 상술된 바와 같이 이후에 부분 범위들로 분할될 수 있는 범위들을 지칭한다. 마지막으로, 당업자에 의해 이해되는 바와 같이, 범위는 각각의 개개의 멤버를 포함한다. 따라서, 예를 들어, 1개 내지 3개의 셀들을 갖는 그룹은 1개, 2개, 또는 3개의 셀들을 갖는 그룹들을 지칭한다. 이와 유사하게, 1개 내지 5개의 셀들을 갖는 그룹은 1개, 2개, 3개, 4개, 또는 5개의 셀들, 및 기타 등등을 갖는 그룹들을 지칭한다.
본 명세서에서 다양한 양태들 및 실시형태들이 개시되었지만, 다른 양태들 및 실시형태들이 당업자들에게 명백할 것이다. 본 명세서에 개시된 다양한 양태들 및 실시형태들은 예시의 목적을 위한 것이며 제한하려고 의도되지 않으며, 진정한 범위 및 사상은 다음의 청구항들에 의해 나타낸다.

Claims (29)

  1. 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스 (scalable networked device) 에 대한 방법으로서,
    제 1 스케일러블 네트워킹된 디바이스에서 제 1 네트워크 식별자를 획득하는 것;
    제 1 스케일러블 네트워킹된 디바이스 명칭, 제 1 스케일러블 네트워킹된 디바이스 기능성, 및 제 1 스케일러블 네트워킹된 디바이스 상태 중 적어도 하나에 기초하여 상기 제 1 스케일러블 네트워킹된 디바이스가 상기 네트워크 내에서 발견가능하게 되도록, 상기 제 1 스케일러블 네트워킹된 디바이스 명칭, 상기 제 1 스케일러블 네트워킹된 디바이스 기능성, 및 상기 제 1 스케일러블 네트워킹된 디바이스 상태를 포함하는 제 1 스케일러블 네트워킹된 디바이스 정보를 네트워크 관리 서버에 제공하는 것; 및
    제 2 스케일러블 네트워킹된 디바이스의 제 2 네트워크 식별자가 상기 제 1 네트워크 식별자와 다르다는 결정에 응답하여, 제 2 스케일러블 네트워킹된 디바이스 명칭을 유지하는 것, 상기 제 2 스케일러블 네트워킹된 디바이스 명칭을 변경하는 것, 및 상기 제 2 네트워크 식별자와 연관된 새로운 제 2 스케일러블 네트워킹된 디바이스 명칭을 부가하는 것 중 하나 이상을 할 지를 결정하는 것; 및
    상기 제 2 스케일러블 네트워킹된 디바이스 명칭이 응답에 포함되었다는 결정에 응답하여,
    상기 제 2 스케일러블 네트워킹된 디바이스가, 상기 네트워크 관리 서버에 의해 실행되는 프로세스로, 연결된 스케일러블 네트워킹된 디바이스들의 리스트에 제 1 스케일러블 네트워킹된 디바이스를 부가할 수 있게 하는 것을 포함하고,
    상기 프로세스는,
    상기 제 1 스케일러블 네트워킹된 디바이스에서 브로드캐스팅된 초기 신호를 검출한 것에 응답하여, 충돌 검출 알고리즘의 이용을 통해 상기 제 2 스케일러블 네트워킹된 디바이스로부터 전송된 응답 신호를 검출하는 것;
    상기 제 1 스케일러블 네트워킹된 디바이스의 제 1 루트 (route) 가 상기 제 2 스케일러블 네트워킹된 디바이스의 제 2 루트보다 더 효율적인 것으로 결정하는 비교에 응답하여, 상기 제 2 스케일러블 네트워킹된 디바이스가, 상기 제 1 네트워크 식별자를 부가하고, 상기 제 1 스케일러블 네트워킹된 디바이스 위치를 부가할 수 있게 하되, 상기 비교는 상기 제 1 루트 및 상기 제 2 루트에 연관된 거리 및 네트워크 트래픽 중 하나 이상의 분석을 포함하는 것; 및
    상기 제 1 스케일러블 네트워킹된 디바이스의 상기 제 1 루트가 상기 제 2 스케일러블 네트워킹된 디바이스의 상기 제 2 루트보다 덜 효율적인 것으로 결정하는 비교에 응답하여, 제 3 스케일러블 네트워킹된 디바이스로부터의 다른 응답 신호를 프로세싱하는 것을 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 제 1 스케일러블 네트워킹된 디바이스 명칭은 상기 제 1 스케일러블 네트워킹된 디바이스의 상기 제 1 네트워크 식별자를 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  4. 제 1 항에 있어서,
    상기 네트워크 관리 서버에 제공된 상기 제 1 스케일러블 네트워킹된 디바이스 정보는, 상기 제 1 스케일러블 네트워킹된 디바이스 위치를 더 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  5. 제 4 항에 있어서,
    상기 제 1 스케일러블 네트워킹된 디바이스의 실제 위치가 알려져 있지 않았다는 결정에 응답하여, 글로벌 포지셔닝 서비스 (GPS) 데이터 및 네트워크 데이터중 하나 이상으로부터 상기 제 1 스케일러블 네트워킹된 디바이스 위치를 결정하는 것을 더 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  6. 제 1 항에 있어서,
    상기 제 2 스케일러블 네트워킹된 디바이스에 대한 탐색을 수행하는 것을 더 포함하고,
    상기 제 2 스케일러블 네트워킹된 디바이스에 대한 탐색을 수행하는 것은,
    초기 신호를 브로드캐스팅하는 것;
    상기 초기 신호에 대한 수신된 응답들을 확인응답하는 것;
    상기 제 2 스케일러블 네트워킹된 디바이스에 고유한 것으로서, 상기 제 2 스케일러블 네트워킹된 디바이스에 정보를 송신하고 상기 제 2 스케일러블 네트워킹된 디바이스로부터 정보를 수신하는데 이용되는, 상기 제 2 스케일러블 네트워킹된 디바이스 명칭이 상기 제 2 스케일러블 네트워킹된 디바이스로부터 수신된다는 결정에 응답하여,
    상기 제 1 스케일러블 네트워킹된 디바이스와 연관된 스케일러블 네트워킹된 디바이스 테이블에서 새로운 루트를 부가하는 것 및 기존의 루트를 변경시키는 것 중 하나 이상을 수행하는 것; 그렇지 않으면
    상기 스케일러블 네트워킹된 디바이스 테이블을 상기 제 2 스케일러블 네트워킹된 디바이스 명칭, 제 2 스케일러블 네트워킹된 디바이스 위치, 제 2 스케일러블 네트워킹된 디바이스 기능성, 및 제 2 스케일러블 네트워킹된 디바이스 상태로 업데이트하는 것을 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  7. 제 6 항에 있어서,
    적어도 하나의 다른 스케일러블 네트워킹된 디바이스를 직접적으로 통하는 것 및 상기 적어도 하나의 다른 스케일러블 네트워킹된 디바이스를 간접적으로 통하는 것 중 하나에 의해, 상기 제 1 스케일러블 네트워킹된 디바이스에 통신가능하게 커플링된 또 다른 스케일러블 네트워킹된 디바이스에 대한 탐색을 재귀적으로 계속 수행하는 것을 더 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  8. 제 1 항에 있어서,
    상기 제 1 스케일러블 네트워킹된 디바이스 명칭은,
    상기 제 1 스케일러블 네트워킹된 디바이스에 대한 루트를 정의하는, 또 다른 스케일러블 네트워킹된 디바이스 명칭 내의 상기 제 1 네트워크 식별자 및 상기 제 1 스케일러블 네트워킹된 디바이스에 대한 상기 제 1 루트를 정의하는 상기 제 1 스케일러블 네트워킹된 디바이스와 상기 제 2 스케일러블 네트워킹된 디바이스 사이의 적어도 하나의 스케일러블 네트워킹된 디바이스 명칭을 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  9. 제 1 항에 있어서,
    상기 제 1 스케일러블 네트워킹된 디바이스 명칭, 상기 제 1 스케일러블 네트워킹된 디바이스 위치, 상기 제 1 스케일러블 네트워킹된 디바이스 기능성, 및 상기 제 1 스케일러블 네트워킹된 디바이스 상태 중 적어도 하나가 탐색가능하도록 상기 제 1 스케일러블 네트워킹된 디바이스 정보가 상기 네트워크 내의 디바이스들에 저장될 수 있게 하는 것을 더 포함하고,
    상기 제 1 스케일러블 네트워킹된 디바이스 기능성은 온도 감지, 습도 감지, 압력 감지, 진동 감지, 위치 결정, 스틸 이미지 캡처, 비디오 캡처, 오디오 캡처, 및 모션 검출의 세트로부터 적어도 하나를 포함하는, 네트워크에 합류하기 위한 스케일러블 네트워킹된 디바이스에 대한 방법.
  10. 삭제
  11. 삭제
  12. 스케일러블 네트워킹된 디바이스로서,
    상기 스케일러블 네트워킹된 디바이스는,
    명령들을 저장하도록 구성된 메모리;
    무선 통신 모듈; 및
    저장된 상기 명령들과 함께 네트워크와 통신하도록 구성된 프로세싱 유닛
    을 포함하고,
    상기 프로세싱 유닛은,
    제 1 네트워크 식별자를 획득하고;
    제 1 스케일러블 네트워킹된 디바이스 명칭, 제 1 스케일러블 네트워킹된 디바이스 기능성, 제 1 스케일러블 네트워킹된 디바이스 위치 및 제 1 스케일러블 네트워킹된 디바이스 상태 중 적어도 하나에 기초하여 상기 제 1 스케일러블 네트워킹된 디바이스가 상기 네트워크 내에서 발견가능하게 되도록, 제 1 스케일러블 네트워킹된 디바이스 명칭, 제 1 스케일러블 네트워킹된 디바이스 기능성, 제 1 스케일러블 네트워킹된 디바이스 위치 및 제 1 스케일러블 네트워킹된 디바이스 상태를 포함하는, 정보를 네트워크 관리 서버에 제공하고;
    제 2 스케일러블 네트워킹된 디바이스의 제 2 네트워크 식별자가 상기 제 1 네트워크 식별자와 다르다는 결정에 응답하여, 제 2 스케일러블 네트워킹된 디바이스 명칭을 유지하는 것, 상기 제 2 스케일러블 네트워킹된 디바이스 명칭을 변경하는 것, 및 상기 제 2 네트워크 식별자와 연관된 새로운 제 2 스케일러블 네트워킹된 디바이스 명칭을 부가하는 것 중 하나 이상을 할 지를 결정하며;
    상기 제 2 스케일러블 네트워킹된 디바이스 명칭이 응답에 포함되었다는 결정에 응답하여,
    상기 제 2 스케일러블 네트워킹된 디바이스가, 상기 네트워크 관리 서버에 의해 실행되는 프로세스로, 연결된 스케일러블 네트워킹된 디바이스들의 리스트에 제 1 스케일러블 네트워킹된 디바이스를 부가할 수 있게 하도록 구성되고,
    상기 프로세스는,
    상기 제 1 스케일러블 네트워킹된 디바이스에서 브로드캐스팅된 초기 신호의 검출에 응답하여, 충돌 검출 알고리즘의 이용을 통해 상기 제 2 스케일러블 네트워킹된 디바이스로부터 전송된 응답 신호를 검출하는 것;
    상기 제 1 스케일러블 네트워킹된 디바이스의 제 1 루트 (route) 가 상기 제 2 스케일러블 네트워킹된 디바이스의 제 2 루트보다 더 효율적인 것으로 결정하는 비교에 응답하여, 상기 제 2 스케일러블 네트워킹된 디바이스가, 상기 제 1 네트워크 식별자를 부가하고, 상기 제 1 스케일러블 네트워킹된 디바이스 위치를 부가할 수 있게 하되, 상기 비교는 상기 제 1 루트 및 상기 제 2 루트에 연관된 거리 및 네트워크 트래픽 중 하나 이상의 분석을 포함하는 것; 및
    상기 제 1 스케일러블 네트워킹된 디바이스의 상기 제 1 루트가 상기 제 2 스케일러블 네트워킹된 디바이스의 상기 제 2 루트보다 덜 효율적인 것으로 결정하는 비교에 응답하여, 제 3 스케일러블 네트워킹된 디바이스로부터의 다른 응답 신호를 프로세싱하는 것을 포함하는, 스케일러블 네트워킹된 디바이스.
  13. 삭제
  14. 제 12 항에 있어서,
    상기 제 1 스케일러블 네트워킹된 디바이스 명칭은 상기 제 1 네트워크 식별자를 포함하는, 스케일러블 네트워킹된 디바이스.
  15. 삭제
  16. 제 12 항에 있어서,
    상기 프로세싱 유닛은 또한,
    글로벌 포지셔닝 서비스 (GPS) 데이터 및 네트워크 데이터 중 하나 이상으로부터 상기 제 1 스케일러블 네트워킹된 디바이스 위치를 결정하도록 구성되는, 스케일러블 네트워킹된 디바이스.
  17. 제 16 항에 있어서,
    리포트가, 수행된 분석 태스크들의 요약, 분석된 데이터의 요약, 및 분석된 데이터 중 하나 이상을 포함하는, 스케일러블 네트워킹된 디바이스.
  18. 제 12 항에 있어서,
    상기 프로세싱 유닛은 또한,
    초기 신호를 브로드캐스팅하는 것;
    상기 초기 신호에 대한 수신된 응답들을 확인응답하는 것;
    상기 제 2 스케일러블 네트워킹된 디바이스에 고유한 것으로서, 상기 제 2 스케일러블 네트워킹된 디바이스에 정보를 송신하고 상기 제 2 스케일러블 네트워킹된 디바이스로부터 정보를 수신하는데 이용되는, 상기 제 2 스케일러블 네트워킹된 디바이스 명칭이 상기 제 2 스케일러블 네트워킹된 디바이스로부터 수신된다는 결정에 응답하여,
    상기 제 1 스케일러블 네트워킹된 디바이스와 연관된 스케일러블 네트워킹된 디바이스 테이블에서 새로운 루트를 부가하는 것 및 기존의 루트를 변경시키는 것 중 하나 이상을 수행하는 것; 그렇지 않으면
    상기 스케일러블 네트워킹된 디바이스 테이블을 상기 제 2 스케일러블 네트워킹된 디바이스 명칭, 제 2 스케일러블 네트워킹된 디바이스 위치, 제 2 스케일러블 네트워킹된 디바이스 기능성, 및 제 2 스케일러블 네트워킹된 디바이스 상태로 업데이트하는 것
    에 의해 적어도 하나의 다른 스케일러블 네트워킹된 디바이스에 대한 탐색을 수행하도록 구성되는, 스케일러블 네트워킹된 디바이스.
  19. 제 18 항에 있어서,
    상기 프로세싱 유닛은 또한,
    상기 제 2 스케일러블 네트워킹된 디바이스 및 상기 제 3 스케일러블 네트워킹된 디바이스 중 하나 이상을 직접적으로 또는 간접적으로 통해, 상기 제 1 스케일러블 네트워킹된 디바이스에 통신가능하게 커플링된 상기 제 2 스케일러블 네트워킹된 디바이스에 대한 탐색을 재귀적으로 계속 수행하도록 구성되는, 스케일러블 네트워킹된 디바이스.
  20. 제 12 항에 있어서,
    상기 제 1 스케일러블 네트워킹된 디바이스 명칭은,
    상기 제 2 스케일러블 네트워킹된 디바이스 명칭 내의 상기 제 2 네트워크 식별자 및 상기 제 1 스케일러블 네트워킹된 디바이스에 대한 상기 제 1 루트를 정의하는 상기 제 1 스케일러블 네트워킹된 디바이스와 상기 제 2 스케일러블 네트워킹된 디바이스 사이의 적어도 하나의 스케일러블 네트워킹된 디바이스 명칭을 포함하는, 스케일러블 네트워킹된 디바이스.
  21. 제 12 항에 있어서,
    상기 제 1 스케일러블 네트워킹된 디바이스 기능성은, 온도 감지, 습도 감지, 압력 감지, 진동 감지, 위치 결정, 스틸 이미지 캡처, 비디오 캡처, 오디오 캡처, 및 모션 검출의 세트로부터 적어도 하나를 포함하고,
    상기 제 1 스케일러블 네트워킹된 디바이스 기능성의 적어도 일 부분은 상기 제 1 스케일러블 네트워킹된 디바이스에 커플링된 외부 모듈 및 통합된 센서 모듈 중 하나에 의해 수행되는, 스케일러블 네트워킹된 디바이스.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020147003914A 2011-11-14 2011-11-14 스케일러블 네트워킹된 디바이스의 동적 매핑 KR101616211B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/060580 WO2013074066A1 (en) 2011-11-14 2011-11-14 Scalable networked device dynamic mapping

Publications (2)

Publication Number Publication Date
KR20140036032A KR20140036032A (ko) 2014-03-24
KR101616211B1 true KR101616211B1 (ko) 2016-04-27

Family

ID=48281722

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147003914A KR101616211B1 (ko) 2011-11-14 2011-11-14 스케일러블 네트워킹된 디바이스의 동적 매핑

Country Status (4)

Country Link
US (1) US9270491B2 (ko)
KR (1) KR101616211B1 (ko)
CN (1) CN103907106B (ko)
WO (1) WO2013074066A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069707B2 (en) * 2012-05-29 2018-09-04 Openet Telecom Ltd. System and method for seamless horizontal scaling using logical scalable units
US9735874B2 (en) * 2012-07-18 2017-08-15 Accedian Networks Inc. Programmable small form-factor pluggable module
US8751615B2 (en) 2012-07-18 2014-06-10 Accedian Networks Inc. Systems and methods of discovering and controlling devices without explicit addressing
US9467925B1 (en) * 2016-02-23 2016-10-11 King Fahd University Of Petroleum And Minerals Systems and methods for efficient routing during energy harvesting of wireless sensor networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010618A1 (en) 2002-07-11 2004-01-15 Thomas David Andrew Method and device for use with a virtual network
JP2011100463A (ja) 2010-11-22 2011-05-19 Seiko Epson Corp ウェブサーバ機能を有するネットワークデバイスを介したネットワークデバイスの検索

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442144B1 (en) * 1998-06-15 2002-08-27 Compaq Computer Corporation Method and apparatus for discovering network devices using internet protocol and producing a corresponding graphical network map
US7283538B2 (en) * 2001-10-12 2007-10-16 Vormetric, Inc. Load balanced scalable network gateway processor architecture
JP4235460B2 (ja) * 2002-02-22 2009-03-11 キヤノン株式会社 ネットワークデバイス管理方法、ネットワークデバイス管理プログラム及びネットワーク制御装置
US7028097B2 (en) 2002-03-28 2006-04-11 Intel Corporation Wireless LAN with dynamic channel access management
US9049205B2 (en) * 2005-12-22 2015-06-02 Genesys Telecommunications Laboratories, Inc. System and methods for locating and acquisitioning a service connection via request broadcasting over a data packet network
US8442482B2 (en) * 2006-05-16 2013-05-14 RedSky Technologies, Inc. Method and system for an emergency location information service (E-LIS)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040010618A1 (en) 2002-07-11 2004-01-15 Thomas David Andrew Method and device for use with a virtual network
JP2011100463A (ja) 2010-11-22 2011-05-19 Seiko Epson Corp ウェブサーバ機能を有するネットワークデバイスを介したネットワークデバイスの検索

Also Published As

Publication number Publication date
US9270491B2 (en) 2016-02-23
US20130124706A1 (en) 2013-05-16
KR20140036032A (ko) 2014-03-24
CN103907106B (zh) 2016-03-16
CN103907106A (zh) 2014-07-02
WO2013074066A1 (en) 2013-05-23

Similar Documents

Publication Publication Date Title
US11398952B2 (en) Automated configuration of machine-to-machine systems
Zaidan et al. A survey on communication components for IoT-based technologies in smart homes
US10404601B2 (en) Load balancing in the internet of things
Peng et al. Toward integrated Cloud–Fog networks for efficient IoT provisioning: Key challenges and solutions
CN104904186B (zh) 一种用于与以信息为中心的网络协议层接口的网元
US11638117B2 (en) Beacon addressing
JP2022084814A (ja) 第1のノードがその他のノードに向けてコレクタとしてのそれ自体またはセンサデータをパブリッシュすることができる無線センサネットワークにおける分散データ収集法
Khan et al. A new patient monitoring framework and Energy-aware Peering Routing Protocol (EPR) for Body Area Network communication
JP5957111B2 (ja) サービス指向アーキテクチャ(soa)ネットワークにおけるサービスの発見
JP2016515328A (ja) モノのインターネット(IoT)デバイスグループを確立し、IoTデバイスグループ間の通信を可能にすること
KR101616211B1 (ko) 스케일러블 네트워킹된 디바이스의 동적 매핑
Mainetti et al. A location-aware architecture for heterogeneous building automation systems
Pilloni et al. Consensus-based resource allocation among objects in the internet of things
Oliveira et al. Ubiquitous monitoring solution for Wireless Sensor Networks with push notifications and end-to-end connectivity
Gopikrishnan et al. HSIR: hybrid architecture for sensor identification and registration for IoT applications
Tran et al. A content-guided publish/subscribe mechanism for sensor networks without location information
Yassine et al. Routing approaches in named data network: a survey and emerging research challenges
Balouek-Thomert et al. Platforms for edge computing and internet of things applications: A survey
Li Future IoT network architecture and applications in mobile sensing
Rodríguez Peralta et al. Improving users’ manipulation and control on wsns through collaborative sessions
Kuendig Protocols and Architectures of IoT Networked Systems for Smart Spaces and Crowd Environments.
Shinde Cluster framework for internet of people, things and services
Wang et al. Fault Diagnosis Algorithm for WSN Based on Clustering and Credibility
Aksenov et al. Coping with variability of location sensing in large-scale ubicomp environments
Yao et al. Routing in Three-Dimensional Wireless Sensor Networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 4