KR101540868B1 - 유비쿼터스 컴퓨팅 환경에서의 장치 발견 - Google Patents

유비쿼터스 컴퓨팅 환경에서의 장치 발견 Download PDF

Info

Publication number
KR101540868B1
KR101540868B1 KR1020137007514A KR20137007514A KR101540868B1 KR 101540868 B1 KR101540868 B1 KR 101540868B1 KR 1020137007514 A KR1020137007514 A KR 1020137007514A KR 20137007514 A KR20137007514 A KR 20137007514A KR 101540868 B1 KR101540868 B1 KR 101540868B1
Authority
KR
South Korea
Prior art keywords
devices
computer
computing environment
attributes
hash
Prior art date
Application number
KR1020137007514A
Other languages
English (en)
Other versions
KR20130056315A (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 KR20130056315A publication Critical patent/KR20130056315A/ko
Application granted granted Critical
Publication of KR101540868B1 publication Critical patent/KR101540868B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • H04L41/0856Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

유비쿼터스 컴퓨팅 환경에서 장치 발견을 위한 방법들, 명령어들, 및 클라이언트 애플리케이션들을 위해 기술들이 일반적으로 설명된다. 일부 예들에서, 그러한 방법들, 명령어들, 및 클라이언트 애플리케이션들은 유비쿼터스 컴퓨팅 환경 내에서 장치들의 특징들을 일련의 계층적인 해시 번호들로 조직화하는 것, 장치들 각각에 상응하는 상기 계층적인 해시 번호들을 정렬하는 것, 및 상기 유비쿼터스 컴퓨팅 환경에서의 장치들 중 하나의 장치에서 정렬된 계층적인 해시 번호들에 대해서 해싱된 탐색 기준을 매칭시키기 위한 시도에 의해서 상기 장치들 중 특정 장치를 탐색하는 것을 용이하게 한다.

Description

유비쿼터스 컴퓨팅 환경에서의 장치 발견{DEVICE DISCOVERY IN A UBIQUITOUS COMPUTING ENVIRONMENT}
일반적으로, 본 명세서에 개시된 구현예들 및 실시예들은 일반적으로 유비쿼터스 컴퓨팅 환경에서 탐색하는 것에 관한 것이다.
유비쿼터스 컴퓨팅 환경, 특히 피어-투-피어(peer-to-peer; P2P) 컴퓨팅 환경은, 태스크들 및 리소스들을 네트워크 노드들(nodes) 사이에서 분할(partition)하는 분산형 아키텍쳐(decentralized architecture)를 채용한다. 네트워크 노드들, 또는 피어들(peers)은 모두 데이터 및 스토리지를 포함하는 리소스들의 공급자이고 고객들이다. 또한, 그러한 환경에서, 리소스들은 통상적으로 기본적인 인터넷 프로토콜(그 대신에 "IP"로서 지칭된다)에 걸쳐서 직접적으로 교환된다.
분배된 해시 테이블(distributed hash table)(그 대신에, "DHTs"로서 지칭된다)은 피어-투-피어 컴퓨팅 환경에서 리소스들에 대한 룩업(lookup) 서비스를 제공하는 분산형의 분배된 시스템들의 분류(class)이다. 데이터 발견 및 관리를 위해서 이용되는 DHT-기반의 네트워크들은 Chord 프로젝트(project), PAST 스토리지 유틸리티, P-Grid, 및 CoopNet 콘텐츠 분배 시스템을 포함한다.
유비쿼터스 컴퓨팅 환경에서 장치를 발견할 필요가 존재한다.
분산형 컴퓨팅 환경에서 장치들의 피쳐들(features)을 일련의 계층적인(hierarchical) 해시 번호들로 조직하는 것을 돕기 위한 방법들, 및 프로그램들을 클라이언트 애플리케이션이 구현하여, 각각의 장치에 상응하는 상기 계층적 해시 번호들을 정렬하고(ordering), 그리고 분산형 컴퓨팅 환경의 장치들 중 하나의 장치에서 해싱된(hashed) 탐색 기준을 정렬된 계층적 해시 번호들에 대해서 매칭시키기 위한 시도에 의해서 장치들 중 특별한 하나의 장치를 탐색한다.
전술한 요약은 단지 설명적인 것이고 어떠한 방식으로든 제한하기 위한 것이 아니다. 전술한 설명을 위한 양태들, 실시예들, 및 특징들에 더하여, 추가적인 양태들, 실시예들 및 특징들은 도면들 및 이하의 상세한 설명을 참조함으로써 명확해질 수 있을 것이다.
이하의 상세한 설명에서, 실시예들이 예시적인 것들로서 설명되어 있는데, 이는 여러 가지 변화들 및 변경들이 이하의 상세한 설명으로부터 당업자들에게 자명해질 것이기 때문이다. 상이한 도면들에서 동일한 참조 번호들의 이용은 유사한 또는 동일한 항목들을 나타낸다.
도 1은, 본 명세서에 개시된 실시예들에 따라서, 장치 발견이 실행될 수 있는 피어-투-피어 즉, 유비쿼터스 컴퓨팅 환경의 예를 도시한다.
도 2는 유비쿼터스 컴퓨팅 환경에서의 장치 발견을 위한, 클라이언트 애플리케이션 및 그에 상응하는 인터페이스의 예시적인 실시예를 도시한다.
도 3은 유비쿼터스 컴퓨팅 환경에서 장치 발견의 여러 가지 실시예들에서 이용되는 수치 테이블(figure table)의 예를 도시한다.
도 4는 유비쿼터스 컴퓨팅 환경에서의 여러 가지 장치 발견 실시예들에 대한 샘플 프로세싱 흐름을 도시한다.
도 5는 유비쿼터스 컴퓨팅 환경에서의 여러 가지 장치 발견 실시예들이 구현되는 샘플 컴퓨팅 장치를 도시한다.
이하의 상세한 설명에서, 이러한 설명의 일부를 구성하는 첨부 도면들을 참조한다. 도면들에서, 다른 기재 내용이 없는 경우에, 유사한 심볼들은 통상적으로 유사한 성분들을 식별한다. 또한, 달리 주지하는 바가 없다면, 각각의 연속되는 도면에 대한 설명은, 현재의 예시적인 실시예의 보다 명료한 상황 및 보다 실질적인 설명을 위해서 이전의 도면들 중 하나 이상의 도면으로부터의 특징들을 참조할 수 있을 것이다. 또한, 상세한 설명, 도면들 및 청구항들에 기술된 예시적인 실시예들은 제한적인 것을 의미하지 않는다. 본 명세서에서 제시된 청구 대상의 사상 및 범위로부터 벗어나지 않고도, 다른 실시예들이 이용될 수 있을 것이고, 다른 변화들이 만들어질 수 있을 것이다. 본 명세서에서 전반적으로 설명되고 도면들에서 도시된 본 개시(disclosure)의 양태들은 넓은 범위의 다른 구성들로 정렬, 치환, 조합, 분리, 및 디자인될 수 있을 것이고, 그러한 것 모두는 본 명세서에서 명백하게 예상된다.
도 1은, 본 명세서에서 개시된 실시예들에 따라서, 장치 발견이 구현될 수 있는 유비쿼터스 컴퓨팅 환경(100)의 예를 도시한다.
대안적으로, 유비쿼터스 컴퓨팅 환경(100)은 피어-투-피어 네트워크(100)로서 간주될 수 있는데, 이는 본 명세서에서 설명된 장치 발견의 실시예들이, 피어 노드들, 또는 장치들이 컴퓨팅 환경 내의 다른 노드들에 대해서 클라이언트들 및 서버들 모두로서 작용하는 분산형 컴퓨팅 환경의 상황 내에서 구현되기 때문이다.
대안적으로 "장치들(102)"로서 통칭될 수 있는 또는 "장치(102)"로 총칭될 수 있는 장치들(102(a), 102(b), 102(c), 102(d), 102(e), ..., 102(n))은 분산형 피어-투-피어 네트워크(100) 상의 참가(participating) 노드들이다. 장치들(102) 각각은 피어-투-피어 네트워크(100) 상의 통신 종료점 또는 단말기 설비로서 간주될 수 있을 것이다. 장치들(102) 각각은 피어-투-피어 네트워크(100)를 통해 정보를 전송, 수신, 또는 포워딩할 수 있는 능동적 전자 장치로서 추가적으로 간주될 수 있을 것이다. 그러한 능동적 전자 장치들의 예는 모바일(또는 셀룰러) 전화기들, 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 태블릿/슬레이트 컴퓨터들, 서버들, 모뎀들, 허브들, 브릿지들, 또는 프린터들/복사기들을 포함하나, 이러한 것으로 제한되는 것은 아니다. 장치들(102)의 전술한 예들 중 적어도 일부에 따라서, 유비쿼터스 컴퓨팅 환경(100)이 대안적으로 무선 통신 네트워크로서 구현될 수 있을 것이다.
도 1에 도시된 바와 같이, 모든 장치들(102)이 서로 직접적으로 통신가능하게 연결되는 것은 아니다. 또한, 피어-투-피어 네트워크(100)의 개체수(population)는 동적이고; 즉, 모든 장치들(102)이 피어-투-피어 네트워크(100) 내에서 유지되는 것은 아니다. 그 대신에, 장치들(102(a), 102(b), 102(c), 102(d), 102(e), ..., 102(n)) 중 여러 가지 장치들이 피어-투-피어 네트워크(100)로부터 이탈(drop out)될 수 있고, 또는 하나 이상의 동적인 장치들이 피어-투-피어 네트워크(100)에 추가될 수 있을 것이고; 그리고 피어-투-피어 네트워크(100)에 대한 삭제 및 추가가 서로 대칭적이거나, 비례적이거나, 또는 동시적일 필요는 없다.
도 1에 추가적으로 도시된 바와 같이, 피어-투-피어 네트워크(100) 상의 장치들(102(a), 102(b), 102(c), 102(d), 102(e), ..., 102(n))의 각각에서 상응하는 클라이언트 애플리케이션(104(a)-(n))이 상주하고(residing), 상기 애플리케이션은 대안적으로 "애플리케이션들(104)"로서 통칭될 수 있거나, "애플리케이션(104)"으로 총칭될 수 있을 것이다. 각각의 수치 테이블(대안적으로, "분배 테이블"로서 간주되거나 지칭될 수 있을 것이다)을 각각 더 포함하는 애플리케이션들(104)은, 본 명세서에서 설명된 실시예들에 따라서 구현되는 장치 발견 수단이다.
도 2는 유비쿼터스 컴퓨팅 환경(100)에서의 장치 발견을 위한, 클라이언트 애플리케이션(104) 및 그에 상응하는 인터페이스(200)의 예시적인 실시예를 도시한다.
본 명세서에서 설명된 유비쿼터스 컴퓨팅 환경에서의 장치 발견의 실시예들에 따라서, 피어-투-피어 네트워크(100) 상의 각각의 장치들(102(a), 102(b), 102(c), 102(d), 102(e), ..., 102(n))이 각각의 장치의 기능을 설명하기 위한 표제어(headword)뿐만 아니라 각각의 장치의 일부 다른 특징 또는 기능성을 추가적으로 설명하기 위한 하나 이상의 설명적인 단어들, 또는 속성들을 가질 수 있을 것이다. 이러한 다른 특징들의 비-제한적인 예들에는 장치 브랜드, 모델, 기능성 또는 심지어 지리적 위치를 포함할 수 있을 것이다.
또한, 각각의 장치들(102(a), 102(b), 102(c), 102(d), 102(e), ..., 102(n))이 클라이언트 애플리케이션(104)의 상주 인스턴스(resident instance)를 가질 수 있을 것이고, 이러한 상주 인스턴스 상에 대화형 인터페이스(200) 및 수치 테이블( 250)이 상주할 수 있을 것이다. 인터페이스(200)는 기능 데이터 필드(205)를 포함할 수 있을 것이고, 상기 기능 데이터 필드 내로 장치들(102)의 각각의 사용자가, 피어-투-피어 네트워크(100)에서 탐색되는 특정 장치의 기능, 예를 들어, "프린터"를 입력하거나 지정할 수 있다. 인터페이스(200)는 데이터 필드들(210(a), 210(b), 210(c) 210(n))을 더 포함할 수 있을 것이고, 그러한 데이터 필드들은 대안적으로 "속성 데이터 필드들(210)"로서 통칭될 수 있을 것이고, 그러한 속성 데이터 필드들 내로 장치들(102)의 각각의 사용자가 피어-투-피어 네트워크(100) 상에서 탐색되는 장치의 추가적인 속성들을 입력하거나 지정할 수 있다. 대안적으로, 장치들(102)의 각각의 속성들이, 예를 들어, 각각의 장치(102)가 피어-투-피어 네트워크(100)에 연결될 때, 사용자의 개입 없이 자동적으로, 속성 데이터 필드들(210) 내로 입력될 수 있다. 이는, 장치 발견의 여러 가지 실시예들에 대해서, 장치들(102) 및 심지어는 장치들(102) 중 특정 장치에 대한 탐색 기준이 조직될 수 있는 즉, 분류될 수 있는, 속성 데이터 필드들(210(a)-210(n)) 및 기능 데이터 필드(205)에 의한 것이다.
그에 따라, 만약 탐색되는 장치가 프린터라면, 기능 데이터 필드(205) 내로 입력되는 기능적 속성이 "프린터"로서 입력되거나 지정될 수 있을 것이고, 이어서 미리 구성된 속성 데이터 필드들(210)이 탐색된 프린터의 기능성 및 기타 특징들을 추가적으로 설명하는 속성들을 수신할 수 있다. 데이터 필드(205)로 입력되거나 지정된 "프린터"와 관련하여, 이러한 추가적인 설명들의 비-제한적인 예들은 "Toshiba," "650C," "레이저," "컬러," 또는 "제2층"을 포함할 수 있을 것이다. 전술한 바와 같이, 속성 데이터 필드들(210(a)-210(n))은, 예를 들어, 장치 브랜드, 모델, 기능성, 또는 위치를 포함할 수 있는 속성 데이터를 수신하도록 미리-구성될 수 있다. 각각의 속성 데이터가 속성 데이터 필드들(210) 중 어느 특정 필드에 입력되거나 지정될지를 결정하는 사전-구성(pre-configuration)은 동적(dynamic)일 수 있고, 실시예마다 다를 수 있다. 또한, 속성 데이터 필드들(210)은 특정 타입들의 장치들에 고유하게 미리 구성될 수 있고, 이는 기능 데이터 필드(205)로의 입력값에 의해서 식별될 수 있다. 그러므로, 비-제한적인 예로서 전술된 속성들을 이용하면, "Toshiba"는 속성 데이터 필드(210(a))에 입력 또는 지정될 수 있고, "650C"는 속성 데이터 필드(210(b))에 입력 또는 지정될 수 있고, "레이저"는 속성 데이터 필드(210(c))에 입력 또는 지정될 수 있고, "컬러"는 속성 데이터 필드(210(d))에 입력 또는 지정될 수 있고, 그리고 "제2층"은 속성 데이터 필드(210(g))에 입력 또는 지정될 수 있다.
따라서, 상황(context)으로 전술한 예들을 이용하면, 모든 속성 데이터 필드들(210)이 기능 데이터 필드(205)로의 입력(entry)에 상응하도록 채워질 필요는 없는데, 이는, 예를 들어, 탐색되는 장치의 속성들의 모두가 장치들(102) 중 현재의 장치의 사용자에게 알려지는 것은 아니기 때문이다. 상기 예에서, 속성 데이터 필드들((210(e), 210(f))로의, 또는 속성 데이터 필드(210(g)) 이후의 속성 데이터 필드로의 입력이 없다. 특정 속성이 장치들(102) 중 현재의 장치의 사용자에게 알려지지 않았을 때, 이 특정 속성을 수용하기 위한 데이터 필드들(210) 중 미리 구성된 하나의 필드가 "넌(none)", "널(null)" 또는 일부 그 변형들로 채워져서 상응하는 속성이 값을 가지지 않는다는 것을 표시할 수 있다.
기능 데이터 필드(205) 또는 속성 데이터 필드들(210(a)-210(n)) 중 적어도 하나의 필드에 대한 데이터 진입을 수신할 때, 장치들(102) 각각 상에서의 클라이언트 애플리케이션(104)이 데이터 앤트리들을 해싱할 수 있고, 그에 따라 누적적인 탐색 해시 번호(search hash number; SHN)를 생성 수 있다.
보다 특히, 클라이언트 애플리케이션(104)의 일부 실시예들에서, 기본 해시 함수, 예를 들어, SHA-1을 이용하여 기능 데이터 필드(205) 및 속성 데이터 필드들(210(a)-210(n)) 각각을 해시 데이터 필드들(215) 및 해시 데이터 필드들((220(a)-220(n)) 내의 길이 M의 상응하는 해시 값으로 독립적으로 맵핑(map)하도록 이용될 수 있고, 대안적으로 그 후자는 "해시 데이터 필드들(220)"로서 통칭될 수 있다. 그에 따라, 기능 데이터 필드(205)로의 진입의 해시 값이 해시 데이터 필드들(215)에 대해서 맵핑될 수 있을 것이고; 속성 데이터 필드들(210(a)-210(n))로의 입력값의 해시 값들이 해시 데이터 필드들((220(a)-220(n))에 대해 각각 맵핑될 수 있다. "넌(none)", "널(null)" 또는 일부 그 변형들의 값을 가지는 그러한 속성 데이터 필드들(210(a)-210(n))에 대해서, 해시 데이터 필드들((220(a)-220(n)) 중 상응하는 하나의 필드가 영(zero)의 값으로 채워질(populated) 수 있다.
다른 기본 해시 함수들이 장치 발견의 여러 실시예들에서 이용될 수 있을 것이고, 그러므로, SHA-1의 예는 임의의 방식으로 제한되는 것으로 의도되지 않는다는 것을 주지하여야 한다.
해시 데이터 필드들(215 및 220(a)-220(n))이 접합될(concatenated) 수 있을 것이고, 그에 따라 전술한 누적적인 탐색 해시 번호(SHN)로서 간주될 수 있을 것이다. SHN은 장치 발견을 초래하는 수치 테이블(250)의 내용들에 대한 비교를 위한 척도(measure), 또는 기준이다. 수치 테이블(250)의 콘텐츠들은, 적어도, 피어-투-피어 네트워크(100) 상의 장치들(102)의 적어도 일부에 대한 누적적인 장치 해시 번호들(device hash number; DHN)을 포함한다.
도 3은 유비쿼터스 컴퓨팅 환경(100)에서 장치 발견의 다양한 실시예에서 이용되는 예시적인 테이블, 즉, 수치 테이블 또는 분배 테이블(250)을 보여 준다.
테이블(250)은 피어-투-피어 네트워크(100) 상에서의 미리 결정된 개수의 장치들(102)의 적어도 DHN 및 IP 어드레스를 저장할 수 있다. 보다 특히, N개의 장치들 또는 노드들로 채워진 피어-투-피어 네트워크(100)에서, 수치 테이블(250)이 분배되기 때문에, 각각의 장치들(102)이 피어-투-피어 네트워크(100) 상에서의 N-1개의 다른 장치들(102) 중 단지 일부와만 통신함으로써 기본 해시 함수를 해결할(resolve) 수 있을 것이다. 그에 따라, 정상 상태(steady state)에서, 수치 테이블(250)의 각각의 인스턴스는 대략적으로 단지 0(log N)의 다른 장치들에 대해서만 DHN 및 IP 어드레스들을 유지한다.
보다 특히, 피어-투-피어 네트워크(100) 상의 장치들(102(a), 102(b), 102(c), 102(d), 102(e), ..., 102(n)) 중 임의의 하나의 장치에 대한 DHN은, SHN이 장치들(102) 중 하나의 장치의 사용자에 의해서 탐색된 장치에 대해서 결정되는 것과 같은 방식으로 결정될(resolve) 수 있을 것이다. 다시 말해서, 장치들(102) 중 특정 장치에 대한 이용가능한 속성 데이터 및 기능 데이터 즉, 표제어가 미리 구성된 데이터 필드들(205 및 210(a)-210(n)) 중의 상응하는 필드에 입력될 수 있고, 이어서 해시 데이터 필드들((215 및 220(a)-220(n))과 유사한 필드들 내의 상응하는 해시 값들로 개별적으로 해싱될 수 있을 것이다. 이어서, 결과적인 해시 데이터 필드들((215 및 220(a)-220(n))이 SHN과 동일한 포맷으로 수치 테이블(250)에 대해서 접합되고(concatenated) 입력될 수 있을 것이다.
그에 따라, 수치 테이블(250)은, 예를 들어, 0(log N)에 대해서, 또는 피어-투-피어 네트워크(100) 상의 다른 장치들(102)에 대해서 적어도 DHN을 묘사(depict)하는 추가적인 컬럼들(columns)을 포함할 수 있을 것이다. 보다 특히, SHN 저장에 더하여, 테이블(250)이 하나 이상의 장치들(102)에 대해서 적어도 DHN 및 IP 어드레스를 저장할 수 있을 것이고, 그리고 피어-투-피어 네트워크(100) 상의 장치들(102(a), 102(b), 102(c), 102(d), 102(e), ..., 102(n)) 중 특별한 하나에 대해서 탐색하기 위한 플랫폼으로서의 역할을 할 수 있을 것이다.
전술한 바와 같이, 피어-투-피어 네트워크(100) 상의 장치들(102)의 실질적으로 모두가 그 네트워크 상에서 상주하는 클라이언트 애플리케이션(104)의 인스턴스를 포함할 수 있을 것이다. 클라이언트 애플리케이션(104)의 각각의 인스턴스가, 다시, 인터페이스(200)의 인스턴스 및 내부에 포함된 수치 테이블(250)의 인스턴스를 가진다. 그러나, 전술한 바와 같이, 수치 테이블(250)의 모든 인스턴스들이 피어-투-피어 네트워크(100) 상의 모든 장치들(102)에 대해서 DHN을 가지는 것은 아니다. 예를 들어, 도 3의 예에서 도시된 수치 테이블(250)은 장치들(102(a), 102(b), 102(d), 102(e), 및 102(n)까지의 다양한 장치들에 대한 SHN 및 DHN을 포함한다.
또한, 전술한 바와 같이, "넌(none)", "널(null)" 또는 일부 그 변형들의 값을 가지는 그러한 속성 데이터 필드들(210(a)-210(n))에 대해서, 해시 데이터 필드들((220(a)-220(n)) 중 상응하는 필드가 영(zero)의 값으로 채워질(populated) 수 있을 것이다. 영이 아닌 값을 가지는 해시 데이터 필드들(220) 중 마지막 필드에 선행하는 영의 값을 가지는 해시 데이터 필드들(220(a)-220(n-1)) 중의 해시 데이터 필드들이 예를 들어 "빈 사전-속성(empty pre-attribute) 데이터 필드들"로서 지칭될 수 있을 것이고; 그리고 영이 아닌 값을 가지는 해시 데이터 필드들(220) 중 마지막 필드에 후행하는 영의 값을 가지는 해시 데이터 필드들(220(a)-220(n)) 중의 해시 데이터 필드들이 예를 들어 "빈 사후-속성(empty post-attribute) 데이터 필드들"로서 지칭될 수 있을 것이다.
따라서, 수치 테이블(250)을 채울 때, 빈 사전-속성 데이터 필드들이 영의 값을 유지하는 한편 빈 사후-속성 데이터 필드들은 값 2M-1로 채워질 수 있을 것이고, "M"은 다시 해시 데이터 필드들(220)의 각각에서의 해시 값들의 길이를 지칭한다. 물론, 대안적인 실시예들은 빈 사전-속성 데이터 필드들 및 빈 사후-속성 데이터 필드들에 대해서 값들의 초기 할당을 반전시킬 수 있을 것이다. 그러나, 본 실시예에 대한 설명은, 빈 사전-속성 데이터 필드들이 영의 값을 가지고 빈 사후-속성 데이터 필드들이 값 2M-1을 가지는 것을 유지할 것이다. 이러한 수치 테이블(250)의 구성의 양태는 도 4의 설명과 관련된 피어-투-피어 네트워크(100) 상의 장치들(102) 중의 특정 장치에 대한 탐색을 참조하여 이하에서 설명될 것이다.
도 4는 유비쿼터스 컴퓨팅 환경(100)에서의 장치 발견의 다양한 실시예들에 대한 샘플 프로세싱 흐름(400)을 도시한다. 샘플 프로세싱 흐름(400)은 도 1 내지 도 3의 비-제한적인 예들과 관련하여 설명된 특징들을 참조하여 이하에서 설명된다. 동작들이 샘플 프로세싱 흐름에서 설명된 순서는 제한으로서 해석되도록 의도된 것이 아니고, 그리고 설명된 블록들의 임의 번호는 각각의 프로세스를 구현하기 위해서 임의의 순서로 및/또는 병렬로 조합될 수 있을 것이다. 또한, 도 4의 블록들은 하드웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있는 동작들일 수 있을 것이다. 소프트웨어의 상황에서, 블록들은, 하나 이상의 프로세서에 의해서 실행될 때, 하나 이상의 프로세서로 하여금 인용된 동작들을 실행하도록 하는 컴퓨터-실행가능 명령어들을 나타낸다. 일반적으로, 컴퓨터-실행가능 명령어들은, 특별한 기능들이 수행될 수 있게 하는 또는 특별한 추상 데이터 타입들이 구현될 수 있게 하는 루틴들, 프로그램들, 객체들, 성분들, 및 데이터 구조들, 등을 포함한다.
삭제
또한, 전술한 바와 같이, 이러한 상세한 설명, 도면들, 및 청구항들에서 기술된 예시적인 실시예들은 제한을 의미하지 않는다. 본 명세서에서 제시된 청구 대상의 사상 또는 범위로부터 벗어나지 않고도, 다른 실시예들이 이용될 수 있을 것이고, 그리고 다른 변화들이 이루어질 수 있을 것이다. 그에 따라, 애플리케이션(104)의 각각의 인스턴스가 대안적으로 "분배 테이블(250)"로서 간주되거나 지칭될 수 있는 수치 테이블(250)의 인스턴스를 포함할 수 있는 이전의 개시 내용에 비추어 볼 때, 도 4의 설명은 "분배 테이블(250)"로 지칭될 것이다.
블록(402)은 DHN, 및 장치 발견의 적어도 일부 실시예들에 따라서, SHN의 조직화를 언급한다. 블록(402)은 블록(404) 및 블록(406)을 포함한다.
블록(404)(장치(들)의 특징들을 조직화)은 피어-투-피어 네트워크(100) 상의 장치들(102)의 적어도 부분 집합(subset)의 특징들을 조직화하는 것을 특히 언급하며, 이는 클라이언트 애플리케이션(104)의 특별한 인스턴스가 상주하는 장치들(102) 중의 각각에서, 또는, 그 대신에, 장치들(102) 중의 다른 장치들에서 구현될 수 있을 것이다. 전자의 시나리오에서, 다른 장치들(102)의 미리 규정된 번호의 기능 데이터 및 속성 데이터가 미리 규정된 데이터 필드들(205 및 210(a) - 210(n)) 내의 클라이언트 애플리케이션(104)에 의해서 수신될 수 있을 것이다. 후자의 시나리오에서, 각각의 다른 장치들(102)의 기능 데이터 및 속성 데이터가 각각의 장치(102)에서 클라이언트 애플리케이션(104)의 각각의 인스턴스 내의 미리 구성된 데이터 필드들(205 및 210(a) - 210(n))에 의해서 조직화될 수 있을 것이다. 프로세싱이 블록(404)으로부터 블록(406)으로 계속될 수 있을 것이다.
블록(406)(장치(들)의 해시 속성들)은 해싱되는 개별적인 장치들(102)의 기능 데이터 및 속성 데이터를 언급한다.
블록(404)에서의 제 1 시나리오에 후속하여, 블록(406)이, 각각, 다른 장치들(102)의 미리 결정된 번호의 속성 데이터 필드들(210(a)-210(n))에 대한 입력값(entries) 및 기능 데이터 필드(205)에 대한 입력값을 해싱하는 것을 포함한다. 각각의 값이 길이(M)를 가지는 해시 데이터 필드들(205 및 210(a) - 210(n))이 접합되어(concatenated) 각각의 다른 장치들(102)에 대한 DHN을 형성할 수 있을 것이다.
블록(404)에서의 제 2 시나리오에 후속하여, 블록(406)이 미리 결정된 수의 다른 장치들(102)의 속성 데이터 및 기능 데이터를 해싱하는 것을 포함할 수 있을 것이다. 해시 데이터 필드들(205 및 210(a) - 210(n))이 접합되어 각각의 장치들(102)에 대한 DHN을 형성할 수 있고, 이는 각각의 장치들(102)이 통신하는 클라이언트 애플리케이션(104)의 인스턴스로 전송될 수 있을 것이다. 프로세싱은 블록(406)으로부터 블록(408)으로 계속될 수 있을 것이다.
블록(408)(장치(들)에 대한 해시 번호들 정렬(order))은 각각의 다른 장치들(102)의 DHN을 분배 테이블(250)의 인스턴스로 조직화 및/또는 정렬하는 것을 언급한다. 각각의 다른 장치들(102)에 대한 DHN의 정렬은 계층적인 방식으로 구현될 수 있을 것이고, 이에 의해서 DHN이 분배 테이블(250) 내에 순차적으로 즉, 증가되는 또는 감소되는 해시 값들에 따라서 저장된다. 대안적으로, 분배 테이블(250)에서 각각의 장치들(102)의 DHN의 순서가 여러 가지 다른 기준에 따라서, 예를 들어 특정 장치가 다른 장치들(102)에 의해서 요청(sought-after)되는 빈도수에 따라서, 클라이언트 애플리케이션(104)의 특별한 인스턴스가 상주하는 장치(102)와의 근접도에 따라서, 등등으로 구현될 수 있을 것이다. 프로세싱이 블록(408)으로부터 블록(410)으로 계속될 수 있을 것이다.
블록(410)(특별한 장치(들)에 대한 탐색)은 피어-투-피어, 즉 유비쿼터스 네트워크(100) 상의 장치들(102) 중 임의의 특정 장치에 대한 탐색을 구현하는 것을 지칭한다.
찾아진 장치의 기능적인 속성을 기능 데이터 필드(205) 내로 입력하고 이어서 찾아진 장치를 기술하는 속성들을 미리 구성된 속성 데이터 필드들(210(a)-210(n)) 중의 적절한 속성 데이터 필드로 입력함으로써, 탐색에 대한 기초, 또는 기준이 되는 SHN이 조직화될 수 있을 것이다. 다시 한번, 속성 데이터 필드들(210(a)-210(n))가, 비-제한적인 예들로서, 장치 브랜드, 모델, 기능성 및 위치를 포함할 수 있는 속성 데이터를 수신하도록 미리 구성될 수 있을 것이다. 또한, 각각의 속성 데이터가 입력될 특정 속성 데이터 필드(210)를 결정하는 사전 구성이 동적일 수 있을 것이고, 실시예마다 다를 수 있을 것이며; 속성 데이터 필드들(210)은 특정 타입들의 장치들에 대해서 독특하게 미리 구성될 수 있을 것이다.
또한, 블록(410)에서 동작을 구현할 때, 모든 속성 데이터 필드들(210)이 기능 데이터 필드(205)에 대한 각각의 입력을 위해서 반드시 채워질 필요는 없을 것이다. 찾아진 장치의 특정 속성이 알려지지 않은 경우에, 이러한 특정 속성을 수신하도록 의도된 속성 데이터 필드들(210) 중 미리 구성된 필드가 상응하는 속성이 어떠한 값도 가지고 있지 않다는 것을 표시하기 위해서 "넌(none)", "널(null)" 또는 일부 그 변형들로 채워질 수 있다.
적어도 하나의 속성 데이터 필드들(210(a)-210(n)) 및 기능 데이터 필드(205)에 대한 데이터 입력값들을 수신하면, 장치들(102) 중의 각각의 클라이언트 애플리케이션(104)이 데이터 입력값들에 대해 기본 해시 함수를 구현할 수 있고, 그에 따라 누적적인(cumulative) SHN를 초래할 수 있을 것이다. 즉, 각각의 기능 데이터 필드(205) 및 속성 데이터 필드들(210(a)-210(n))가 해시 필드들(215 및 210(a) - 210(n)) 내의 상응하는 해시 값에 대해서 맵핑될 수 있을 것이다. 분배 테이블을 채우는 DHN과 마찬가지로, 빈 사전-속성 데이터 필드들이 영의 값을 유지할 수 있을 것이고, 그리고 빈 사후-속성 데이터 필드들이 값 2M-1을 포함할 수 있을 것이다.
이어서, 블록(410)에서의 탐색은 분배 테이블(250)을 채우는 DHN에 SHN을 매칭시키기 위한 시도를 포함할 수 있을 것이다. 만약, SHN과 전술한 DHN 중 하나 사이의 정확한 매칭이 존재한다면, 클라이언트 애플리케이션(104)의 특별한 인스턴스가 상주하는 장치(102) 상에서 결과의 통지가 이루어진다.
만약, SHN과 전술한 DHN 중 하나의 번호 사이의 정확한 매칭이 존재하지 않는다면, SHN에 가장 근접하게 매칭되는 DHN에 대해서 계속적으로 탐색한다. 장치 발견의 다른 실시예들에서는, DHN가 SHN의 값을 초과하지 않고 SHN에 가장 근접하게 매칭될 때 비-매칭 DHN 및 SHN 사이의 가장 근접한 매칭을 고려할 수 있을 것이고, 또는 가장 근접한 DHN 매칭이 SHN의 값을 초과하는 가장 근접한 DHN 값이 되는 것을 고려할 수 있을 것이다.
또한, 분배 테이블(250)이 채우는 DHN과 SHN 사이의 가장 근접한 매칭을 찾기 위한 시도는 클라이언트 애플리케이션(104)의 특별한 인스턴스가 상주하는 장치(102)의 상응하는 값들로 비어 있는 사전-속성 데이터 필드들을 채울 수 있을 것이다. 물론, 대안적인 실시예들에서 값 2M-1을 가지는 빈 사전-속성 데이터 필드들 및 영의 값을 가지는 비어 있는 사후-속성 데이터 필드들로 분배 테이블(250)을 초기에 채웠으면, 현재의 작용은 현재의 장치(102)의 상응하는 값들로 채워지는 빈 사후-속성 데이터 필드들을 포함할 것이다.
전술한 바와 같이, 모든 장치들(102)이 서로 직접적으로 통신 가능하게 연결되는 것은 아니다. 또한, 피어-투-피어 네트워크(100)의 개체수는 동적일 수 있을 것이다. 그에 따라, SHN에 대한 매칭 탐색을 다른 장치로 전달하는 것은 피어-투-피어 네트워크(100)를 채우는 보다 많은 장치들(102)로 탐색을 확장한다.
만약 테이블(250)을 채우는 DHN 중 임의의 하나의 번호와 SHN 사이의 정확한 매칭이 발견되지 않는다면, 장치 발견의 적어도 하나의 실시예가 탐색 작업 중단을 초래할 수 있을 것이다. 비교될 장치들(102) 중 다른 장치에서 클라이언트 애플리케이션(104)의 인스턴스 상에 분배 테이블(250)을 채우는 DHN에 대해서 비교되도록 SHN를 장치들(102) 중 다른 하나의 장치로 전송하거나, 또는 그렇치 않으면, 전달되게 함으로써, 장치 발견의 다른 실시예들은 탐색 작업의 계속을 초래할 수 있을 것이다. 이어서, 프로세스(400)가 그곳에서 반복될 수 있을 것이고, 이때 그러한 장치들(102)의 DHN는 다른 분배 테이블(250)을 채우는 다른 장치(102)와 통신한다. 미리 결정된 수의 반복 후에 만약 특정 SHN와의 정확한 매칭이 미리 결정된 개수의 장치들(102)에서 발견되지 않는다면, 클라이언트 애플리케이션(104)이 탐색을 종료하도록 구성될 수 있을 것이다.
전술한 설명에 따라서, 기본 해시 함수(base hash function)를 이용하여 피어-투-피어, 즉 유비쿼터스 컴퓨팅 환경에서 장치 발견이 구현될 수 있을 것이다.
당업자는, 본 명세서에서 개시된 이러한 그리고 다른 프로세스들 및 방법들을 위해, 프로세스들 및 방법들에서 수행된 기능들이 상이한 순서로 구현될 수 있다는 것을 이해할 수 있을 것이다. 또한, 개시된 실시예들의 본질로부터 벗어나지 않고도, 개략적으로 설명된 단계들 및 동작들은 단지 예들로서 제공된 것이고, 그리고 일부 단계들 및 동작들 중 일부가 선택적일 수 있고, 보다 적은 수의 단계들 및 동작들로 조합될 수 있으며, 또는 추가적인 단계들 및 동작들로 확장될 수 있을 것이다.
또한, 본 개시는 여러 가지 양태들의 설명으로서 의도된 본 출원에서 설명된 특별한 실시예들과 관련하여 제한되지 않는다. 당업자들에게 자명한 바와 같이, 많은 변경들 및 변형들이 본 출원의 사상 및 범위 내에서 이루어질 수 있을 것이다. 본 개시에서 나열된 방법들 및 장치들에 더하여, 본 개시의 범위 내의 기능적으로 균등한 방법들 및 장치들이 이하의 설명들로부터 당업자들에게 자명하게 될 것이다. 그러한 변경들 및 변형들은 청구된 청구항들의 범위 내에 포함될 것이다. 본 개시는, 첨부된 청구항들의 기재에 따른 균등물들의 전체 범위와 함께, 첨부된 청구항들과 관련하여서만 제한될 것이다. 이러한 개시 내용은, 물론 변화될 수 있는, 특별한 방법들, 반응물들, 화합물들, 조성물들 또는 생물학적 시스템들로 제한되지 않는다는 것을 이해할 수 있을 것이다. 또한, 본 개시에서 사용된 용어들은 단지 특별한 실시예들을 설명하기 위한 것이고, 제한적인 것을 의미하지 않는다는 것을 이해할 수 있을 것이다.
도 5는 유비쿼터스 컴퓨팅 환경에서 장치 발견의 여러 가지 실시예들이 구현될 수 있는 샘플 컴퓨팅 장치(500)를 도시한다. 보다 구체적으로, 도 5는 예증적인 컴퓨팅 실시예를 도시하며, 그러한 실시예에서, 본 명세서에서 설명된 임의의 동작들, 프로세스들 등이 컴퓨터-판독가능 매체에 저장된 컴퓨터-판독가능 명령어들로서 구현될 수 있을 것이다. 컴퓨터-판독가능 명령어들은, 예를 들어, 모바일 유닛, 네트워크 요소, 및/또는 임의의 다른 컴퓨팅 장치의 프로세서에 의해서 실행될 수 있을 것이다.
매우 기본적인 구성(502)에서, 컴퓨팅 장치(500)는 전형적으로 하나 이상의 프로세서(504) 및 시스템 메모리(506)를 포함한다. 프로세서(504)와 시스템 메모리(506) 사이의 통신을 위해서 메모리 버스(508)가 이용될 수 있을 것이다.
희망하는 구성에 따라서, 프로세서(504)가 마이크로프로세서(μP), 마이크로제어기(μC), 디지털 신호 프로세서(DSP), 또는 이들의 임의의 조합을 포함하는 임의 타입이 될 수 있을 것이나, 이러한 것으로 제한되는 것은 아니다. 프로세서(504)는, 레벨 1 캐시(level one cache)(510) 및 레벨 2 캐시(512), 프로세서 코어(514), 및 레지스터들(516)과 같은 하나 이상의 레벨의 캐싱을 포함할 수 있을 것이다. 예시적인 프로세서 코어(514)가 산술적 로직 유닛(ALU), 부동소숫점 유닛(floating point unit; FPU), 디지털 신호 처리 코어(DSP Core), 또는 이들의 임의의 조합을 포함할 수 있을 것이다. 예시적인 메모리 제어기(518)가 또한 프로세서(504)와 함께 이용될 수 있을 것이고, 또는 일부 구현예들에서 메모리 제어기(518)가 프로세서(504)의 내부 부분이 될 수 있을 것이다.
희망하는 구성에 따라서, 시스템 메모리(506)가 휘발성 메모리(예를 들어, RAM), 비-휘발성 메모리(예를 들어, ROM, 플래시 메모리 등), 또는 이들의 임의 조합이 될 수 있을 것이다. 시스템 메모리(506)는 운영체제(520), 하나 이상의 애플리케이션(522), 및 프로그램 데이터(524)를 포함할 수 있을 것이다.
애플리케이션(522)은, 도 1-4와 관련하여 전술한 것들을 포함하는, 본 명세서에서 설명된 기능들을 수행하도록 구성된 클라이언트 애플리케이션(104)을 포함할 수 있을 것이다. 프로그램 데이터(524)는 테이블(250)을 포함할 수 있을 것이고, 대안적으로, 그러한 테이블은 "수치 테이블(250)" 또는 "분배 테이블(250)"로서 지칭될 수 있을 것이며, 이는 본 본 명세서에서 설명된 바와 같은 장치 발견을 구현하기 위해서 유용할 수 있을 것이다.
컴퓨팅 장치(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)는 또한 버스/인터페이스 제어기(530)를 통해서, 여러 가지 인터페이스 장치들로부터, 예를 들어, 출력 장치들(542), 주변장치 인터페이스들(544), 및 통신 장치들(546)로부터 기본적인 구성(502)으로의 통신을 돕기 위한 인터페이스 버스(540)를 포함할 수 있을 것이다. 예시적인 출력 장치들(542)은 그래픽 처리 유닛(548) 및 음향 처리 유닛(550)을 포함할 수 있으며, 그러한 처리 유닛들은 하나 이상의 A/V 포트들(552)을 통해서 디스플레이 또는 스피커들과 같은 여러 가지 외부 장치들로 통신하도록 구성될 수 있을 것이다. 예시적인 주변장치 인터페이스들(544)은 직렬 인터페이스 제어기(554) 또는 병렬 인터페이스 제어기(556)를 포함할 수 있을 것이고, 그러한 제어기들은 하나 이상의 I/O 포트들(458)을 통해서 입력 장치들(예를 들어, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 다른 주변 장치들(예를 들어, 프린터, 스캐너, 등)과 같은 외부 장치들과 통신하도록 구성될 수 있을 것이다. 예시적인 통신 장치(546)는 네트워크 제어기(560)를 포함할 수 있고, 그러한 네크워크 제어기(560)는 하나 이상의 통신 포트(564)를 통해서 네크워크 통신 링크에 걸쳐 하나 이상의 다른 컴퓨팅 장치들(562)과의 통신을 돕도록 구성될 수 있을 것이다.
삭제
네크워크 통신 링크가 통신 매체의 하나의 예일 수 있을 것이다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 캐리어 파동이나 다른 전달 메커니즘과 같은 변조된 데이터 신호 내의 다른 데이터에 의해서 구현될 수 있고, 그리고 임의의 정보 전달 매체를 포함할 수 있을 것이다. "변조된 데이터 신호"는 신호 내에서 정보를 인코딩하는 방식으로 변화된 또는 그 특성 세트들 중 하나 이상의 세트를 가지는 신호일 수 있을 것이다. 예로서, 그리고 비제한적으로, 통신 매체는 유선 네트워크 또는 직접-유선(wired) 연결과 같은 유선 매체, 그리고 음파, 무선 주파수(RF), 마이크로파, 적외선(IR) 및 기타 무선 매체와 같은 무선 매체를 포함할 수 있을 것이다. 본 명세서에서 사용된 바와 같은 컴퓨터 판독가능 매체라는 용어는 스토리지 매체 및 통신 매체 모두를 포함할 수 있을 것이다.
컴퓨팅 장치(500)는 셀 폰, 개인용 정보 단말기(PDA), 개인용 매체 재생 장치, 무선 웹-와치(web-watch) 장치, 개인용 헤드셋 장치, 애플리케이션 전용(specific) 장치, 또는 전술한 기능들 중 임의의 기능을 포함하는 하이브리드 장치와 같은 작은-형상 인자(form factor)의 휴대용(또는 모바일) 전자 장치의 일부로서 구현될 수 있을 것이다.
시스템들의 양태들의 하드웨어 구현과 소프트웨어 구현 사이에는 거의 차이가 없고; 하드웨어 또는 소프트웨어의 이용은 일반적으로 비용 대 효율 상쇄효과들을 나타내는 디자인 선택 사항이다(그러나, 특정 상황에서 하드웨어와 소프트웨어 사이의 선택이 중요할 수 있다는 점에서 항상 그러한 것은 아니다). 본 명세서에 설명된 프로세스들 및/또는 시스템들 및/또는 다른 기술들이 구현될 수 있는 여러 가지 매개물들(vehicles), 예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어가 존재하고, 그리고 바람직한 매개물이 프로세스들 및/또는 시스템들 및/또는 기타 기술들이 전개되는 상황에 따라서 달라질 수 있을 것이다. 예를 들어, 만약 실행자가 속도 및 정확도를 최우선으로 결정한다면, 실행자는 하드웨어 및/또는 펌웨어 매개물을 주로 선택할 수 있을 것이고; 만약 탄력성(flexibility)이 최우선이라면, 실행자는 주로 소프트웨어 구현을 선택할 수 있을 것이고; 또는 또 다른 대안으로서 해당 실행자는 하드웨어, 소프트웨어 및/또는 펌웨어의 임의의 조합을 선택할 수 있을 것이다.
앞서서 상세하게 기술한 설명은 블록도들, 흐름도들 및/또는 예들의 사용을 통해서 장치 발견을 위한 장치들 및/또는 프로세스들의 다양한 실시예들을 설명하였다. 당업자는, 그러한 블록도들, 흐름도들 및/또는 예들이 하나 이상의 기능 및/또는 동작들을 포함하는 한, 그러한 블록도들, 흐름도들 또는 예들 내의 각 기능 및/또는 동작이 광범위한 하드웨어, 소프트웨어, 펌웨어 혹은 사실상 이들의 임의의 조합에 의해서 개별적으로 및/또는 집합적으로 구현될 수 있음을 이해할 것이다. 일 실시형태에서, 본 명세서에서 설명된 청구 대상의 몇 가지 부분들은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(digital signal processor) 혹은 다른 통합형 포맷을 통해서 구현 가능하다. 그러나 당업자는, 본 명세서에서 설명된 실시예들의 일부 양태들이, 전체적으로 또는 부분적으로, 하나 이상의 컴퓨터들 상에서 실행되는 하나 이상의 컴퓨터 프로그램으로서(예를 들어, 하나 이상의 컴퓨터 시스템 상에서 실행되는 하나 이상의 프로그램으로서), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램으로서(예컨대, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램으로서), 펌웨어로서, 또는 이들의 사실상 임의의 조합으로서, 집적 회로들 내에서 동등하게 구현될 수 있으며, 소프트웨어 및/또는 펌웨어에 대한 코드를 작성하고 및/또는 회로를 디자인하는 것이 본 개시에 비추어 볼 때 당업자의 기술 내에서는 용이하게 이루어질 것임을 이해할 수 있을 것이다. 또한, 당업자는, 본 명세서에서 설명된 청구 대상의 메커니즘이 다양한 형태의 프로그램 제품으로서 분배되어 있을 수 있으며, 실제로 그러한 분배를 실제로 실행하는데 사용되는 신호 포함 매체의 특정 타입에 관계없이 본 명세서에서 설명된 청구 대상의 예시적인 실시예가 적용된다는 것을 이해할 것이다. 신호 포함 매체의 예들에는, 비 제한적으로, 플로피디스크, 하드디스크 드라이브, CD, DVD, 디지털 테이프, 컴퓨터 메모리 등과 같은 기록 가능한 타입의 매체; 및 디지털 및/또는 아날로그 통신 매체와 같은 전송 타입의 매체(예컨대, 광섬유 케이블, 도파관, 유선 통신 링크, 무선 통신 링크 등)가 포함된다.
당업자는, 장치 및/또는 프로세스를 본 명세서에서 설명한 방식으로 기술하는 것, 그리고 그 후에 이와 같이 기술된 장치 및/또는 프로세스를 데이터 처리 시스템에 통합하기 위하여 엔지니어링 실무들(practices)을 이용하는 것이 해당 기술 내에서 일반적이라는 것을 인지할 것이다. 즉, 본 명세서에서 설명된 장치들 및/또는 프로세스들의 적어도 일부는 합리적인 횟수의 실험을 통해서 데이터 처리 시스템에 통합될 수 있다. 당업자는, 통상적인 데이터 처리 시스템이 일반적으로 하나 이상의 시스템 유닛 하우징(system unit housing), 비디오 디스플레이 장치, 휘발성 및 비-휘발성 메모리와 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서와 같은 프로세서, 운영 시스템들, 드라이버들, 그래픽 사용자 인터페이스들(graphical user interfaces) 및 어플리케이션 프로그램들과 같은 컴퓨터 엔터티들(entities), 터치 패드 또는 스크린과 같은 하나 이상의 인터액션 장치들, 및/또는 피드백 루프 및 제어 모터들(예컨대, 위치 및/또는 속도를 감지하기 위한 피드백; 성분들 및/또는 양들을 조정 및/또는 이동시키기 위한 제어 모터)를 포함하는 제어 시스템을 구비한다는 것을 인지할 것이다. 통상적인 데이터 처리 시스템은 데이터 연산/통신 및/또는 네트워크 연산/통신 시스템들에서 일반적으로 발견되는 것과 같이, 상업적으로 이용가능한 임의의 적합한 성분들을 이용하여 구현될 수 있을 것이다.
본 명세서에서 설명된 청구 대상은 종종 다양한 다른 성분들과 연결되거나 그 내부에 포함되는 그와 다른 성분들을 설명한다. 이와 같이 제시된 아키텍처들은 단지 예시적인 것이며, 동일한 기능성을 달성하는 많은 다른 아키텍처들이 사실상 구현 가능하다는 것이 이해될 것이다. 개념적인 견지에서, 동일한 기능성을 달성하기 위한 임의의 성분들의 구성이 효과적으로 "연관"되며, 그에 따라 원하는 기능성이 얻어질 수 있을 것이다. 그에 따라, 특별한 기능을 달성하기 위해 본 명세서에서 조합된 임의의 2개의 성분들이 서로 "연관"되는 것으로 보여질 수 있을 것이며, 그에 따라, 아키텍처들 또는 중간의(intermedial) 성분들에 관계 없이, 희망하는 기능성이 성취될 수 있다. 유사하게, 이렇게 연관된 임의의 2개의 성분들이 또한 희망하는 기능을 달성하기 위하여 서로 "동작적으로 연결"되거나 "동작적으로 커플링"될 수 있다는 것을 이해할 수 있을 것이고, 이렇게 연관될 수 있는 임의의 2개의 성분들이 또한 희망하는 기능을 달성하기 위해서 서로 "동작적으로 커플링될" 수 있다는 것을 이해할 수 있을 것이다. 동작적으로 커플링될 수 있다는 것의 특정 예들에는, 비제한적으로, 물리적으로 정합 가능하고(mateable) 및/또는 물리적으로 상호 작용하는 성분들 및/또는 무선으로 상호 작용 가능한 및/또는 무선으로 상호 작용하는 성분들 및/또는 논리적으로 상호 작용하고 및/또는 논리적으로 상호 작용 가능한 성분들이 포함된다.
마지막으로, 본 명세서에서 실질적으로 임의의 복수형 및/또는 단수형 용어들의 사용과 관련하여, 당업자라면, 문맥 및/또는 적용예에 적합하게, 복수형을 단수형으로 및/또는 단수형을 복수형으로 변환할 수 있다. 명확하게, 여러 가지 단수형/복수형의 치환들이 본 명세서에서 명료하게 설명될 수 있을 것이다.
당업자는, 전반적으로, 본 명세서에서, 그리고 특히 첨부된 청구항들에서, 예를 들어, 첨부된 청구항들의 실체들(bodies)에서 사용된 용어들은 일반적으로 "개방형" 용어들로서 의도된 것이고, 예를 들면, "포함하는"이라는 용어는 "포함하나 제한적이지 않은"으로서 해석되어야 하고, "가지는"이라는 용어는 "적어도 가지는"으로 해석되어야 하며, "포함한다"는 용어는 "포함하지만 제한적이지 않은" 등으로 해석되어야 한다는 것을 이해할 수 있을 것이다. 또한, 당업자는, 만약 특정 수의 도입된 청구항 기재(recitation)가 의도된다면, 그러한 의도는 그 청구항에서 명시적으로 기재될 것이고, 그와 같은 기재가 존재하지 않을 때 그러한 의도는 없을 것임을 이해할 것이다. 예로서, 이해를 돕기 위해, 이하의 첨부된 청구항들은 청구항 기재들을 도입하기 위해서 "적어도 하나의" 및 "하나 이상의"라는 도입 문구들의 어법을 포함할 수 있을 것이다. 그러나, 그러한 문구들의 이용이, 부정관사들("a" 또는 "an")에 의한 청구항 기재의 도입이 그러한 도입된 청구항 기재를 포함하는 임의의 특별한 청구항이 단지 하나의 그러한 기재를 포함하는 실시예들로 제한된다는 것을 의미하는 것으로 해석되지 않아야 할 것이고, 심지어는 동일한 청구항이 그러한 도입 문구들을 포함하는 경우에도, "하나 이상" 또는 "적어도 하나" 및 부정관사들(예를 들어, "a" 또는 "an"(예를 들어, "a" 및/또는 "an"))이 "적어도 하나" 또는 "하나 이상" 을 의미하는 것으로 해석되어야 하며; 이는 청구항 기재들을 도입하기 위해서 이용된 정관사들의 이용의 경우에도 마찬가지이다. 또한, 도입되는 청구항 기재의 구체적 수가 명시적으로 기재된 경우에도, 당업자는, 그러한 기재가, 적어도 기재된 숫자를, 예를 들어, 다른 변경자들(modifiers) 없이, "2개의 기재들"의 그대로의 (bare) 기재를, 적어도 2개의 기재들의 수단(means), 또는 둘 이상의 기재들을 의미하는 것으로 해석되어야 한다는 것을 인지할 것이다. 또한, "A, B 및 C 중 적어도 하나 등" 과 유사한 관습적인 용어(convention)가 사용되는 경우들에서, 일반적으로, 당업자가 그와 같은 관습적인 용어를 이해하는 것과 같은 의미로 그와 같은 구성이 의도되며, 예를 들어, "A, B 및 C 중 적어도 하나를 가지는 시스템은 A 만을, B 만을, C 만을, A와 B를 함께, A와 C를 함께, B와 C를 함께, 및/또는 A, B 및 C를 함께, 등을 가지는 시스템들을 포함할 것이지만 이러한 것으로 제한되지 않는다. "A, B 또는 C 중 적어도 하나 등"과 유사한 관습적인 표현의 경우들에서, 일반적으로, 당업자가 그와 같은 관습적인 용어를 이해하는 것과 같은 의미로 그와 같은 구성이 의도되며, 예를 들어, "A, B 또는 C 중 적어도 하나를 가지는 시스템"은 A 만을, B 만을, C 만을, A와 B를 함께, A와 C를 함께, B와 C를 함께 및/또는 A, B 및 C를 함께, 등을 가지는 시스템들을 포함할 것이지만 이러한 것으로 제한되는 것은 아니다. 또한, 당업자는, 상세한 설명, 청구항들, 또는 도면들 중 어디에서든지 간에, 2 이상의 선택적인 용어들을 제시하는 사실상 모든 이접적인(disjunctive) 단어 및/또는 문구가 그 용어들 중 하나의 용어, 그 용어들 중 어느 하나의 용어, 또는 그 용어들 양자 모두를 포함할 가능성을 고려하는 것으로 이해할 수 있을 것이다. 예를 들어, "A 또는 B"라는 문구는 "A" 또는 "B" 또는 "A 및 B"의 가능성들을 포함하는 것으로 이해될 것이다.
또한, 본 개시의 특징들 또는 양태들이 마커시(Markush) 그룹들과 관련하여 설명된 경우에, 당업자는 본 개시가 또한 마커시 그룹의 그룹들의 하위 그룹 또는 임의의 개별적인 그룹과 관련하여 설명된 것임을 인지할 수 있을 것이다.
본 개시의 여러 가지 실시예들이 설명을 위해서 본 명세서에서 설명되었고, 그러한 여러 가지 변경들은 본 개시의 범위 및 사상으로부터 벗어나지 않고도 이루어질 수 있다는 것을 이해할 수 있을 것이다. 따라서, 본 명세서에서 개시된 여러 가지 실시예들은 제한적인 것으로 의도되지 않은 것이며, 그 진정한 범위 및 사상은 이하의 청구항들에 의해서 표시된다.
인용
1. Stoica, 등, Chord: A Scalable-Peer-to-peer Lookup Service for Internet Applications, SIGCOMM '01, August 27-31, 2001, San Diego, CA, USA.
104: 클라이언트 애플리케이션 250: 테이블
500: 컴퓨팅 장치 502: 기본 구성
504: 프로세서 506: 시스템 메모리
508: 메모리 버스 510: 레벨 1 캐시
512: 레벨 2 캐시 514: 프로세서 코어 ALU/FPU/DSP
516: 레지스터들 518: 메모리 제어기
520: 운영체제 522: 애플리케이션
524: 프로그램 데이터 530: 버스/인터페이스 제어기
532: 스토리지 장치들 534: 스토리지 인터페이스
536: 분리가능한 스토리지 538: 분리가 불가능한 스토리지
540: 인터페이스 버스 542: 출력 장치들
544: 주변 장치 인터페이스들 546: 통신 장치들
548: 그래픽 처리 유닛 550: 음향 처리 유닛
552: A/V 포트(들) 554: 직렬 인터페이스 제어기
556: 병렬 인터페이스 제어기 558: I/O 포트(들)
560: 네트워크 제어기 562: 기타 컴퓨팅 장치(들)
564: 통신 포트(들)

Claims (24)

  1. 유비쿼터스 컴퓨팅 환경 내의 하나 이상의 장치들에 의한 장치 발견을 위한 방법에 있어서,
    상기 유비쿼터스 컴퓨팅 환경 내의 장치들의 특징들을 개별적으로 일련의 계층적인 해시 번호들로 해싱하는 단계로서, 상기 장치들 각각의 특징들은 상기 각각의 장치들의 기능적 명칭 및 적어도 하나의 설명적인(descriptive) 속성을 포함하는 것인, 상기 해싱하는 단계;
    상기 장치들 중 하나의 장치의 상기 기능적 명칭 및 적어도 하나의 설명적인 속성을 각각의 미리 구성된 데이터 필드들에 수신하고, 상기 각각의 미리 구성된 데이터 필드들을 해싱 - 상기 해싱은 상기 수신된 속성들 각각에 대해 상기 각각의 미리 구성된 데이터 필드들 중 비어있는 필드를 미리 결정된 값으로 채우는 것을 포함함 - 함으로써, 상기 각각의 해시 번호들을 상기 일련의 계층적인 해시 번호들로 조직화하는 단계;
    상기 장치들 중 특정 장치가 상기 장치들 중 적어도 다른 하나의 장치에 의해 요청(sought-after)되는 빈도수에 따라서 또는 상기 장치들 중 상기 특정 장치에 대한 상기 장치들 각각의 근접도에 따라서 상기 장치들 각각에 대응하는 계층적인 해시 번호들을 순차적으로 정렬(ordering)하는 단계; 및
    상기 유비쿼터스 컴퓨팅 환경 내에서의 장치들 중 하나의 장치에서 상기 정렬된 계층적인 해시 번호들에 해싱된 탐색 기준을 매칭시키기 위한 시도에 의해서 상기 장치들 중 상기 특정 장치를 탐색(search)하는 단계
    를 포함하고, 상기 장치들 각각에 대한 상기 계층적인 해시 번호들이, 상기 각각의 장치들의 상기 기능적인 명칭 및 하나 이상의 설명적인 속성들의 기본 해시 표현(base hash representation)의 접합(concatenation)을 포함하는 것인, 장치 발견을 위한 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 조직화하는 단계는 상기 해싱된 데이터 필드들을 접합시키는 단계를 포함하는 것인, 장치 발견을 위한 방법.
  5. 제1항에 있어서,
    상기 조직화하는 단계가,
    기능적 명칭 및 적어도 하나의 설명적인 속성 - 상기 기능적 명칭 및 적어도 하나의 설명적인 속성은 각각의 미리 구성된 데이터 필드들 내로 입력됨 - 에 따라 상기 장치들 각각을 개별적으로 분류하는 단계; 및
    상기 각각의 데이터 필드들을 해싱하는 단계를
    포함하고,
    상기 정렬 단계가,
    상기 장치들의 적어도 일부에 대해서 집합적인 해싱된 데이터 필드들을, 상기 유비쿼터스 컴퓨팅 환경 내의 장치들 중 하나의 장치에 저장된 분배된 테이블 내에 계층적으로 정렬하는 단계를 포함하는 것인, 장치 발견을 위한 방법.
  6. 제1항에 있어서, 상기 유비쿼터스 컴퓨팅 환경이 분산된 피어-투-피어 네트워크인 것인, 장치 발견을 위한 방법.
  7. 제1항에 있어서, 상기 장치들이 무선 통신 네트워크 상의 하드웨어 장치들인 것인, 장치 발견을 위한 방법.
  8. 제1항에 있어서, 상기 정렬 단계는 상기 장치들 모두의 적어도 일부에 대해서 계층적인 해시 값들을 상기 장치들 중 하나의 장치에서의 수치 테이블(figure table) 내에 순차적 순서로 저장하는 단계를 포함하는 것인, 장치 발견을 위한 방법.
  9. 제1항에 있어서, 상기 장치들 각각은 상기 유비쿼터스 컴퓨팅 환경 내에서 미리 결정된 개수의 다른 장치들에 대해서 상기 정렬된 계층적인 해시 값들 및 IP 어드레스를 포함하는 수치 테이블을 저장하는 것인, 장치 발견을 위한 방법.
  10. 제1항에 있어서, 상기 해싱된 탐색 기준은 탐색 되는 장치의 기능적 명칭 및 하나 이상의 설명적인 속성들의 기본 해싱 표현의 접합을 포함하는 것인, 장치 발견을 위한 방법.
  11. 제1항에 있어서, 상기 탐색하는 단계가,
    찾아진 장치의 적어도 설명적인 기능 및 적어도 하나의 설명적인 속성을 각각의 미리 구성된 데이터 필드들 내로 수신하는 단계;
    상기 미리 구성된 데이터 필드들 각각을 해싱하는 단계;
    상기 해싱된 데이터 필드들을 접합하는 단계; 및
    상기 접합된 해싱된 데이터 필드들을 상기 장치들의 적어도 일부에 상응하는 계층적인 해시 번호들 상에 맵핑하는 단계를
    포함하는 것인, 장치 발견을 위한 방법.
  12. 컴퓨터-실행가능 명령어들을 저장하는 컴퓨터-판독가능 매체에 있어서,
    상기 컴퓨터-실행가능 명령어들은, 실행될 때, 하나 이상의 프로세서로 하여금,
    분산된 컴퓨팅 환경에서 장치의 속성들을 수신하게 하고;
    상기 수신된 속성들 각각에 대한 각각의 데이터 필드 상에 기본 해시 함수를 실행하게 하고, 상기 수신된 속성들 각각에 대한 상기 각각의 데이터 필드들 중 비어있는 필드를 미리 결정된 값으로 채우게 하는 명령어들을 실행함으로써, 상기 수신된 속성들을 개별적으로 해싱하며;
    상기 장치에 대한 상기 해싱된 속성들을 조합하고;
    상기 장치들 중 특정 장치가 상기 장치들 중 적어도 다른 하나의 장치에 의해 요청되는 빈도수에 따라서 또는 상기 장치들 중 상기 특정 장치에 대한 상기 장치들 각각의 근접도에 따라서 상기 해싱된 속성들을 정렬하며;
    상기 분산된 컴퓨팅 환경 내의 나머지 장치들의 적어도 일부에 대해서 상기 정렬된 해시 속성들을 저장하고;
    해싱된 탐색 기준을 수신하고;
    상기 분산된 컴퓨팅 환경 상의 장치들의 일부의 저장된 해시 속성들에 대해서 상기 저장된 해시 속성들 상으로 상기 수신된 해싱 탐색 기준을 맵핑하게 하는 것인, 컴퓨터-판독가능 매체.
  13. 제12항에 있어서, 상기 저장된 컴퓨터-실행가능 명령어들은 상기 분산된 컴퓨팅 환경 내의 복수의 장치들 상에 상주하는 소프트웨어 클라이언트 내에 포함되는 것인, 컴퓨터-판독가능 매체.
  14. 제12항에 있어서,
    상기 수신된 속성들이 상기 장치의 기능적 명칭 및 적어도 하나의 설명적인 속성을 포함하는 것인, 컴퓨터-판독가능 매체.
  15. 제12항에 있어서, 상기 하나 이상의 프로세서로 하여금 상기 해싱된 속성들을 정렬하게 하는 상기 컴퓨터-실행가능 명령어들은 상기 하나 이상의 프로세서로 하여금 상기 분산된 컴퓨팅 환경 내의 나머지 장치들의 적어도 일부의 조합된 해싱된 속성들과 함께 분배된 테이블 내에서 조합된 해싱된 속성들을 조직화하게 하는 것인, 컴퓨터-판독가능 매체.
  16. 제12항에 있어서,
    상기 저장된 컴퓨터-실행가능 명령어들은 상기 분산된 컴퓨팅 환경 내의 복수의 장치들 상에 상주하는 소프트웨어 클라이언트 내에 포함되고,
    상기 소프트웨어 클라이언트가 상주하는 상기 분산된 컴퓨팅 환경 내의 모든 장치는, 상기 분산된 컴퓨팅 환경 내의 나머지 장치들의 적어도 일부 및 상기 장치들 각각의 IP 어드레스들 및 상기 해싱된 속성들이 저장되는 분배된 테이블을 저장하는 것인, 컴퓨터-판독가능 매체.
  17. 제12항에 있어서,
    상기 컴퓨터-판독가능 매체는 추가적인 컴퓨터-실행가능 명령어들을 저장하고,
    상기 추가적인 컴퓨터-실행가능 명령어들은, 실행될 때, 상기 하나 이상의 프로세서로 하여금, 상기 수신된 해시 탐색 기준과 매칭되는 상기 저장된 정렬된 해시 속성들 중 하나의 속성에 상응하는 분산된 컴퓨팅 환경 내의 장치를 식별하는 것인, 컴퓨터-판독가능 매체.
  18. 제12항에 있어서,
    상기 컴퓨터-판독가능 매체는 컴퓨터-실행가능 명령어들을 저장하고,
    상기 컴퓨터-실행가능 명령어들은, 실행될 때, 상기 하나 이상의 프로세서로 하여금, 또한, 상기 수신된 해시 탐색 기준과 가장 근접하게 상응되는 상기 저장된 정렬된 해시 속성들 중 하나의 속성에 상응하는 분산된 컴퓨팅 환경 내의 장치를 식별하게 하는 것인, 컴퓨터-판독가능 매체.
  19. 제12항에 있어서,
    상기 저장된 컴퓨터-실행가능 명령어들은 상기 분산된 컴퓨팅 환경 내의 복수의 장치들 상에 상주하는 소프트웨어 클라이언트 내에 포함되고,
    상기 컴퓨터-판독가능 매체는 추가적인 컴퓨터-실행가능 명령어들을 저장하고, 상기 추가적인 컴퓨터-실행가능 명령어들은, 실행될 때, 상기 하나 이상의 프로세서로 하여금 상기 수신된 해싱된 탐색 기준이 상기 소프트웨어 클라이언트가 상주하는 상기 분산된 컴퓨팅 환경 내의 장치들 중 다른 장치로 전송되게 하는 것인, 컴퓨터-판독가능 매체.
  20. 컴퓨터-실행가능 명령어들을 저장하는 클라이언트 소프트웨어 애플리케이션이 기록된 컴퓨터-판독가능 기록매체에 있어서,
    상기 컴퓨터-실행가능 명령어들은, 실행될 때, 하나 이상의 프로세서로 하여금,
    피어-투-피어(peer-to-peer) 컴퓨팅 환경 내의 장치의 설명적인 속성들을 수신하기 위한 장치 설명 데이터 필드들을 가지는 인터페이스를 디스플레이하고;
    미리 결정된 값으로 상기 장치 설명 데이터 필드들 중 비어 있는 필드를 채우게 하는 명령어들을 실행함으로써, 상기 장치 설명 데이터 필드들 각각 내로 입력된 각각의 설명적인 속성을 해싱하며;
    상기 장치들 중 특정 장치가 상기 장치들 중 적어도 다른 하나의 장치에 의해 요청되는 빈도수에 따라서 또는 상기 장치들 중 상기 특정 장치에 대한 상기 장치들 각각의 근접도에 따라서 상기 각각의 해싱된 설명적인 속성을 정렬하고;
    상기 해싱된 설명적인 속성들을 접합시키고(concatenate);
    상기 접합된 해싱된 설명적인 속성들이 상기 클라이언트에서의 수치 테이블(figure table)로 저장된 어떤 해싱된 문자열들(strings)과 매칭되는지를 결정하게 하는 것인, 컴퓨터-판독가능 기록매체.
  21. 제20항에 있어서, 상기 장치 설명 데이터 필드들이 찾아진 장치의 기능적 명칭 및 적어도 하나의 설명적인 속성을 수신하도록 미리 구성되는 것인, 컴퓨터-판독가능 기록매체.
  22. 삭제
  23. 제20항에 있어서, 상기 클라이언트에서의 상기 수치 테이블은 상기 피어-투-피어 컴퓨팅 환경 내의 미리 결정된 개수의 장치들의 IP 어드레스들 및 설명적인 속성들의 해싱된 문자열들을 포함하는 것인, 컴퓨터-판독가능 기록매체.
  24. 제20항에 있어서, 상기 하나 이상의 프로세서로 하여금 결정하게 하는 상기 컴퓨터-실행가능 명령어들은 또한, 상기 하나 이상의 프로세서로 하여금 상기 소프트웨어 애플리케이션이 상주하는 상기 피어-투-피어 컴퓨팅 환경 내의 장치들 중 다른 장치로 상기 접합된 해싱된 설명적인 속성들을 전송하게 하는 것인, 컴퓨터-판독가능 기록매체.
KR1020137007514A 2010-12-17 2010-12-17 유비쿼터스 컴퓨팅 환경에서의 장치 발견 KR101540868B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/079911 WO2012079240A1 (en) 2010-12-17 2010-12-17 Device discovery in a ubiquitous computing environment

Publications (2)

Publication Number Publication Date
KR20130056315A KR20130056315A (ko) 2013-05-29
KR101540868B1 true KR101540868B1 (ko) 2015-07-30

Family

ID=46243982

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137007514A KR101540868B1 (ko) 2010-12-17 2010-12-17 유비쿼터스 컴퓨팅 환경에서의 장치 발견

Country Status (5)

Country Link
US (1) US8850021B2 (ko)
JP (1) JP2014500551A (ko)
KR (1) KR101540868B1 (ko)
CN (1) CN103229163B (ko)
WO (1) WO2012079240A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190135688A (ko) * 2018-05-29 2019-12-09 삼성에스디에스 주식회사 디바이스 식별 장치 및 그 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8819127B1 (en) 2013-04-12 2014-08-26 Fmr Llc Ensemble computing
GB2532988B (en) 2014-12-04 2021-03-03 Arm Ip Ltd Method and device for scanning for data processing devices
JP6291435B2 (ja) * 2015-02-20 2018-03-14 日本電信電話株式会社 プログラムおよびクラスタシステム
CN108563589A (zh) * 2018-04-08 2018-09-21 深圳市沃特沃德股份有限公司 终端设备获取输入设备类型的方法及装置
US11334546B2 (en) * 2019-05-31 2022-05-17 Cisco Technology, Inc. Selecting interfaces for device-group identifiers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134341A (ja) * 2007-11-28 2009-06-18 Mitsubishi Electric Corp ピア検索方法および通信装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1107512A1 (en) * 1999-12-03 2001-06-13 Sony International (Europe) GmbH Communication device and software for operating multimedia applications
JP2008269141A (ja) * 2007-04-18 2008-11-06 Nec Corp オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
US20080294639A1 (en) * 2007-05-21 2008-11-27 American Express Travel Related Services Company, Inc. System and Method For Delegating Program Management Authority
US7961708B2 (en) * 2007-07-10 2011-06-14 Qualcomm Incorporated Coding methods of communicating identifiers in peer discovery in a peer-to-peer network
CN101543017B (zh) 2008-05-21 2013-04-24 香港应用科技研究院有限公司 加入对等网络的设备和方法
CN101640623A (zh) * 2008-07-31 2010-02-03 国际商业机器公司 在对等网络中搜索资源的方法和设备
CN101399778B (zh) 2008-10-30 2011-08-31 北京邮电大学 一种无线对等网络中节点的组织方法及资源发现方法
JP2010199842A (ja) * 2009-02-24 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュ設計システムと方法およびプログラム
US8645543B2 (en) * 2010-10-13 2014-02-04 International Business Machines Corporation Managing and reconciling information technology assets in a configuration database

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134341A (ja) * 2007-11-28 2009-06-18 Mitsubishi Electric Corp ピア検索方法および通信装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190135688A (ko) * 2018-05-29 2019-12-09 삼성에스디에스 주식회사 디바이스 식별 장치 및 그 방법
KR102427443B1 (ko) 2018-05-29 2022-07-29 삼성에스디에스 주식회사 디바이스 식별 장치 및 그 방법

Also Published As

Publication number Publication date
US8850021B2 (en) 2014-09-30
US20120179691A1 (en) 2012-07-12
JP2014500551A (ja) 2014-01-09
KR20130056315A (ko) 2013-05-29
CN103229163A (zh) 2013-07-31
WO2012079240A1 (en) 2012-06-21
CN103229163B (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
RU2400806C2 (ru) Организация стыковки запросов на ресурс с соответствующими ресурсами
KR101540868B1 (ko) 유비쿼터스 컴퓨팅 환경에서의 장치 발견
WO2019200714A1 (zh) 服务器连接方法、计算机可读存储介质、终端设备及装置
US7289520B2 (en) Method, apparatus, and system for expressway routing among peers
JP5551270B2 (ja) ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
US20100046399A1 (en) Rendezvousing resource requests with corresponding resources
JP2008516528A (ja) ネットワークのサービスノードの特定
EP1748604B1 (en) A communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
WO2015027406A1 (zh) 一种无线传感网络中首选父节点的选择方法及装置
CN103069781A (zh) 用于分布式哈希表中的内容的对等业务局域化
JP2008234563A (ja) オーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラム
CN113641869B (zh) 一种人机物融合环境下的数字对象访问方法和系统
CN101606374A (zh) 在对等式覆盖网中分配负载的方法
US7266082B2 (en) Expressway routing among peers
US8738801B2 (en) Methods and apparatus for updating index information while adding and updating documents in a distributed network
Kang et al. A Semantic Service Discovery Network for Large‐Scale Ubiquitous Computing Environments
CN112637351B (zh) 一种文件下载方法及装置
KR20050074903A (ko) 임의적인 ip 범위 구성으로 고속 규칙 검색
Xu et al. A novel multilevel index model for distributed service repositories
US20110196984A1 (en) Distributed parallel discovery
EP1813074A1 (en) Method, apparatus and program products for management of information about shared files in a mobile network
Lin et al. A P2P framework for developing bioinformatics applications in dynamic cloud environments
Mitra Technological networks
JP2008234536A (ja) ノード装置、転送ノード決定方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 4