KR20120099775A - 애드 혹 피어-투-피어 접속을 위한 분산형 메시지 버스를 이용하는 방법 및 장치 - Google Patents

애드 혹 피어-투-피어 접속을 위한 분산형 메시지 버스를 이용하는 방법 및 장치 Download PDF

Info

Publication number
KR20120099775A
KR20120099775A KR1020127018442A KR20127018442A KR20120099775A KR 20120099775 A KR20120099775 A KR 20120099775A KR 1020127018442 A KR1020127018442 A KR 1020127018442A KR 20127018442 A KR20127018442 A KR 20127018442A KR 20120099775 A KR20120099775 A KR 20120099775A
Authority
KR
South Korea
Prior art keywords
remote
bus node
endpoint
local
endpoints
Prior art date
Application number
KR1020127018442A
Other languages
English (en)
Other versions
KR101495968B1 (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 KR20120099775A publication Critical patent/KR20120099775A/ko
Application granted granted Critical
Publication of KR101495968B1 publication Critical patent/KR101495968B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/165Combined use of TCP and UDP protocols; selection criteria therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

애드 혹 피어-투-피어 분산형 메시지 버스를 이용하는 방법 및 장치가 제공된다. 그 방법은 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하는 단계, 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 원격 버스 노드로부터 접속 정보를 획득하는 단계로서, 그 접속 정보는 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는, 상기 접속 정보를 획득하는 단계, 하나 이상의 로컬 가상 종단점들을 생성하는 단계를 포함할 수도 있으며, 여기서, 하나 이상의 로컬 가상 종단점들 각각은 하나 이상의 원격 종단점들 각각에 대응하고, 여기서, 원격 종단점은 그 원격 종단점에 고유한 주지의 네임을 참조하여 기술된다.

Description

애드 혹 피어-투-피어 접속을 위한 분산형 메시지 버스를 이용하는 방법 및 장치{METHODS AND APPARATUS FOR USING A DISTRIBUTED MESSAGE BUS FOR AD HOC PEER-TO-PEER CONNECTIVITY}
관련 출원(들) 에 대한 상호 참조
본 특허출원은 "METHODS AND APPARATUS FOR USING A DISTRIBUTED MESSAGE BUS FOR AD HOC PEER-TO-PEER CONNECTIVITY" 의 명칭으로 2009년 12월 15일자로 출원되어 그 내용들이 본 명세서에 참조로 명백히 통합되는 가출원 제61/286,585호를 우선권 주장한다.
본 개시는 일반적으로 다중의 디바이스들 간의 통신에 관한 것으로서, 더 상세하게는, 단수로 또는 결합하여 무선 또는 유선 프로토콜들을 통해 확립된 접속들을 이용하여 다양한 디바이스들의 구동하는 애플리케이션들 등으로 하여금 위치, 모션, 접속 상태, 배터리 레벨, 무선 신호 강도, 입력된 이벤트 등과 같은 문맥상 정보, 애플리케이션 특정 정보, 및 일반 시스템 정보를 공유할 수 있게 하는 애드 혹 피어-투-피어 분산형 메시지 버스를 이용하는 것에 관한 것이다.
기술에 있어서의 진보들은 더 소형이고 더 강력한 개인용 컴퓨팅 디바이스들을 발생시켰다. 예를 들어, 각각이 소형이고 경량이며 사용자들에 의해 용이하게 휴대될 수 있는 휴대형 무선 전화기들, 개인용 디지털 보조기(PDA)들 및 페이징 디바이스들과 같은 무선 컴퓨팅 디바이스들을 포함하는 다양한 휴대형 개인용 컴퓨팅 디바이스들이 현재 존재한다. 더 상세하게, 휴대형 무선 전화기들은 예를 들어, 무선 네트워크들 상으로 음성 및 데이터 패킷들을 통신하는 셀룰러 전화기들을 더 포함한다. 또한, 다수의 그러한 셀룰러 전화기들은 컴퓨팅 능력들에 있어서의 상대적으로 큰 증가들로 제조되고 있고, 그에 따라, 소형 개인용 컴퓨터들 및 핸드헬드 PDA들에서도 마찬가지가 되고 있다.
더 추가로, 그러한 디바이스의 사용자들은 그 디바이스를 사용하여 다른 디바이스들, 웹 기반 컨텐츠, 서비스들 등에 액세스하는데 관심이 있다. 현재, 디바이스들은 제한된 피어-투-피어 접속들을 통해 통신할 수도 있으며, 여기서, 그러한 접속들은 접속 기술 및 엄격한 접속 프로토콜들에 의해 제한된다. 예를 들어, 블루투스, WiFi 등과 같은 현재 기술들은, 상이한 디바이스들 (예를 들어, 핸드셋, 랩탑, 데스크탑 등) 및/또는 상이한 오퍼레이팅 시스템들 상에서 구동하는 애플리케이션들 간의 피어-투-피어 (P2P) 통신을 가능케 하도록 기대하는 애플리케이션 개발자들에 대한 지원을 거의 제공하지 못한다. 또한, 현재, 모바일 플랫폼들은, 상기 언급된 P2P 애플리케이션들을 개발하기 위한 지원을 애플리케이션 개발자들에게 제공하는 API 들을 노출하지 않을 수도 있으며, API 들을 종종 노출하는 일부 플랫폼들은 임의의 기본 네트워크들 및 프로토콜들의 광범위한 전문기술 및 지식을 갖는 이들 개발자들에게만 이용가능하다.
따라서, 기본 네트워크들 및 프로토콜의 광범위한 전문기술 및 지식없이도 애플리케이션들 사이에서 애드 혹 P2P 통신을 가능케 하는 크로스-플랫폼의 언어 독립적인 솔루션들을 제공하는 개선된 장치 및 방법들이 요구된다.
다음은 하나 이상의 양태들에 대한 기본적인 이해를 제공하기 위하여 그 하나 이상의 양태들의 간략화된 개요를 제시한다. 이러한 개요는 모든 고려된 양태들의 광범위한 개관이 아니며, 모든 양태들의 중요한 또는 결정적인 엘리먼트들을 식별하지도 않고 임의의 또는 모든 양태들의 범위를 기술하지도 않도록 의도된다. 이 개요의 유일한 목적은 하나 이상의 양태들의 일부 개념들을, 이하 제시되는 더 상세한 설명에 대한 서두로서 간략화된 형태로 제시하는 것이다.
하나 이상의 양태들 및 그 대응하는 개시에 따라, 애드 혹 피어-투-피어 분산형 메시지 버스를 이용함에 있어서 다양한 양태들이 설명된다. 일 양태에 따르면, 애드 혹 피어-투-피어 분산형 메시지 버스를 이용하는 방법이 제공된다. 그 방법은 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하는 단계를 포함할 수 있다. 또한, 그 방법은 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 원격 버스 노드로부터 접속 정보를 획득하는 단계를 포함할 수 있고, 여기서, 접속 정보는 원격 버스 노드와 연관된 하나 이상의 원격 종단점(endpoint)들에 대한 접속 정보를 포함한다. 더욱이, 그 방법은 하나 이상의 로컬 가상 종단점들을 생성하는 단계를 포함할 수 있으며, 여기서, 하나 이상의 로컬 가상 종단점들 각각은 하나 이상의 원격 종단점들 각각에 대응하고, 여기서, 원격 종단점은 그 원격 종단점에 고유한 주지의 네임 (name) 을 참조하여 기술된다.
다른 양태는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품에 관련된다. 컴퓨터 판독가능 매체는, 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하도록 실행가능한 코드를 포함한다. 또한, 컴퓨터 판독가능 매체는, 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 원격 버스 노드로부터 접속 정보를 획득하도록 실행가능한 코드를 포함하고, 여기서, 접속 정보는 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함한다. 더욱이, 컴퓨터 판독가능 매체는 하나 이상의 로컬 가상 종단점들을 생성하도록 실행가능한 코드를 포함하며, 여기서, 하나 이상의 로컬 가상 종단점들 각각은 하나 이상의 원격 종단점들 각각에 대응하고, 여기서, 원격 종단점은 그 원격 종단점에 고유한 주지의 네임을 참조하여 기술된다.
또 다른 양태는 장치에 관련된다. 그 장치는, 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하는 수단을 포함할 수 있다. 또한, 그 장치는 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 원격 버스 노드로부터 접속 정보를 획득하는 수단을 포함할 수 있고, 여기서, 접속 정보는 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함한다. 더욱이, 그 장치는 하나 이상의 로컬 가상 종단점들을 생성하는 수단을 포함할 수 있으며, 여기서, 하나 이상의 로컬 가상 종단점들 각각은 하나 이상의 원격 종단점들 각각에 대응하고, 여기서, 원격 종단점은 그 원격 종단점에 고유한 주지의 네임을 참조하여 기술된다.
다른 양태는 장치에 관련된다. 그 장치는, 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하고, 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 원격 버스 노드로부터 접속 정보를 획득하는 것으로서, 그 접속 정보는 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는, 상기 접속 정보를 획득하며, 그리고 하나 이상의 로컬 가상 종단점들을 생성하기 위해 동작가능한 통신 모듈을 포함할 수 있으며, 여기서, 하나 이상의 로컬 가상 종단점들 각각은 하나 이상의 원격 종단점들 각각에 대응하고, 여기서, 원격 종단점은 그 원격 종단점에 고유한 주지의 네임을 참조하여 기술된다.
전술한 목적 및 관련 목적의 달성을 위해, 하나 이상의 양태들은, 이하 충분히 설명되고 특허청구범위에 특별히 기재된 특징들을 포함한다. 다음의 설명 및 첨부 도면들은 하나 이상의 양태들의 특정 예시적인 특징들을 상세히 설명한다. 하지만, 이들 특징들은, 다양한 양태들의 원리들이 채용될 수도 있는 다양한 방법들 중 매우 조금을 나타내며, 이 설명은 그러한 모든 양태들 및 그 균등물들을 포함하도록 의도된다.
개시된 양태들은, 개시된 양태들을 예시하고 제한하지 않도록 제공된 첨부 도면들과 결합하여 이하 설명될 것이며, 도면에 있어서, 동일한 명칭들은 동일한 엘리먼트들을 나타낸다.
도 1 은 일 양태에 따른 통신 네트워크의 블록 다이어그램을 예시한다.
도 2 는 도 1 에 도시된 양태의 동작의 메시지 시퀀스 차트를 예시한다.
도 3 은 도 2 에 도시된 메시지 시퀀스 차트에 따른 양태에서 사용하기 위한 하이 레벨 오브젝트 모델을 예시한다.
도 4 는 도 2 에 도시된 메시지 시퀀스 차트에 따른 양태에서 사용하기 위한 또 다른 하이 레벨 오브젝트 모델을 예시한다.
도 5 는 일 양태에 따른 통신 네트워크의 일 양태의 플로우차트를 예시한다.
도 6 은 통신 디바이스의 블록 다이어그램 예시 아키텍처를 예시한다.
도 7 은 또 다른 양태에 따른 애드 혹 피어-투-피어 분산형 메시지 버스를 이용할 수 있는 예시적인 통신 시스템의 블록 다이어그램을 예시한다.
이제, 다양한 양태들이 도면을 참조하여 설명된다. 다음의 설명에 있어서, 설명의 목적으로, 다수의 특정 상세들이 하나 이상의 양태들의 철저한 이해를 제공하기 위해 설명된다. 하지만, 그러한 양태(들)는 이들 특정 상세들없이도 실시될 수 있음이 자명할 수도 있다.
일반적으로, 단일 플랫폼 상에서 애플리케이션들 사이 등의 통신은 리눅스 및 다른 오퍼레이팅 시스템들 상에서 발견된 DBus 와 같은 프로세스간 통신 프로토콜 (IPC) 프레임워크를 이용하여 용이하게 될 수도 있다. DBus 는 데스크탑 환경에서 애플리케이션-투-애플리케이션 통신을 가능케 하도록 이용되는 소프트웨어 버스를 포함하며, 여기서, 애플리케이션들은 버스에 등록하여 다른 애플리케이션들로 서비스들을 제공하고, 다른 애플리케이션들은 등록된 애플리케이션들에 관한 정보에 대해 버스에게 질의한다. 그러한 프로토콜은 비동기식 통지들 및 원격 절차 호출 (RPC) 들을 제공할 수도 있다. 즉, 신호 메시지들 (예를 들어, 통지들) 은 포인트 투 포인트 또는 브로드캐스트식일 수도 있고, 메소드 호출 (method call) 메시지들 (예를 들어, RPC들) 은 동기식 또는 비동기식일 수도 있으며, 버스 (예를 들어, "데몬" 버스) 프로세스는 메시지 라우팅을 처리할 수도 있다. 또한, DBus 프레임워크는 언어 중립적이다 (예를 들어, API들보다 와이어-프로토콜로서 특정됨). 또한, 일반적으로, DBus 프로토콜에서 사용되는 2 타입의 버스 데몬들이 존재한다: 즉, HAL 및 시스템 컴포넌트들과 통신하기 위한 시스템 버스 및 로그인 세션 동안 데스크탑 애플리케이션들 간의 통신을 위한 세션 버스. 시스템 버스는 디바이스의 부팅 시간에 론칭될 수도 있고, 애플리케이션들을 소켓들 (예를 들어, UNIX 소켓들) 에 접속시킬 수도 있고, 크리덴션 (credential) 들을 이용하여 소켓 레벨에서 보안성을 제공할 수도 있고, 플러그 인되고/되거나 언플러깅되는 하드웨어에 관한 통지를 제공할 수도 있으며, 하드웨어 능력들 및/또는 상태들에 관한 지원 질의들을 제공할 수도 있다. 세션 버스는 사용자에 대한 로그인 시간에 론칭될 수도 있고, TCP/IP 또는 UNIX 소켓들 상으로 애플리케이션들을 접속시킬 수도 있으며, 애플리케이션들이 그 버스에 접속할 경우에 보안 메커니즘들을 제공할 수도 있다. 또한, 네임들 및 식별자들은, 각각의 버스에게 고유한 네임이 할당되는 다양한 명명법들, 및 자신의 주지의 네임들을 등록하는 애플리케이션들을 이용하여 정의된 ASCII 스트링들이다. 더 추가로, 오브젝트 경로들이 오브젝트 네임들에 기초한 프리픽스들을 이용하여 명명된 하나 이상의 오브젝트들을 통하여 애플리케이션 기능이 노출될 수도 있다.
본 명세서에서 사용되는 바와 같이, 오브젝트는 하나 이상의 인터페이스들을 구현할 수도 있으며, 여기서, 인터페이스는 관련 메소드 및 신호 메시지들을 캡슐화할 수도 있고, 여기서, 오브젝트는 구현될 수도 있는 인터페이스들의 네임들을 획득하도록 질의될 수 있다. 또한, 오브젝트 경로들과 같은 인터페이스 네임들은 "획득", "핑(ping)" 등과 같은 특정한 및/또는 일반적인 기능들을 기술할 수도 있다. 또한, 본 명세서에서 사용되는 바와 같이, 멤버 네임은 메소드 및/또는 신호 메시지들에 대한 단순한 네임들을 기술할 수도 있다. 일 양태에 있어서, 인터페이스는 하나 이상의 멤버들을 포함할 수도 있다. 더 추가로, 본 명세서에서 사용되는 바와 같이, 에러 네임들은 에러들에 대한 네임 스페이스들을 제공할 수도 있으며 인터페이스 네임들과 유사하다.
이제, DBus 메시지들로 돌아가면, 그러한 메시지들은 강하게 타이핑될 수도 있고 헤더 및 본문을 포함할 수도 있으며, 여기서, 헤더에 대한 타입 서명은 미리정의될 수도 있다. 헤더는 메시지 타입 (예를 들어, 메소드 호출, 메소드 반환, 신호 또는 에러), 전송자 (예를 들어, 메시지 버스에 의해 할당된 고유한 네임), 목적지, 반대 경로 및 서명과 같은 다중의 필드들을 포함할 수도 있다. 본문은 메시지 아규먼트들을 포함할 수도 있다. 또한, 서명 ASCII 스트링은 메시지 데이터에 대한 데이터 타입들을 정의할 수도 있다. 예를 들어, 타입들은 정수와 같은 기본 타입들일 수 있거나, 또는 구조체들, 어레이들, 및 딕셔너리들과 같은 복합 타입들일 수 있다. 더 추가로, 배열화의 용이함 및 속도를 위해, 그 타입이 배열되는 자연적 경계들 상에 정렬시키기 위해 데이터에 제로가 패딩된다. 기본 서명 타입들은 8, 16, 32, 및 64 비트의 부호표시형 및 부호미표시형 정수들, 더블들 (예를 들어, 64비트 부동소수점), 스트링들 등을 포함할 수도 있다. 또한, 복합 타입들은 기본 타입들로부터 그리고 다른 복합 타입들로부터 형성될 수도 있다. 더 추가로, 변형 타입 (variant type) 서명은 런타임 타이핑을 허용할 수도 있다. 표 1 은 다양한 서명들의 예들을 제공한다.
Figure pct00001
<표 1 서명 예들>
또한, 애플리케이션들 등은 단일 디바이스 내에서 또는 다중의 디바이스들 사이에서 서로 통신하도록 시도할 수도 있다. 단일 디바이스 내에서, 애플리케이션들은 통신을 용이하게 하도록 메시지 버스 (MBus) 프로토콜을 이용할 수도 있다. 그러한 MBus 프로토콜은 DBus 기반 프로토콜에 비해 확장된 기능 및 개선된 성능을 제공할 수도 있다. 예를 들어, MBus 프로토콜 기반 통신은 유연한 버스 토폴로지들 (예를 들어, 단지 DBus 스타 토폴로지만은 아님), 버스-투-버스 기능, 및 포인트-투-포인트 인증 및/또는 암호화를 허용할 수도 있다. 또한, MBus 프로토콜 기반 통신은 무선 및 온-프로세서 접속 (예를 들어, 로컬 UNIX 소켓들, 공유 메모리, 블루투스, TCP/IP) 을 허용할 수도 있고, 사용자는 웹 서버 (140) 로부터 액세스가능한 컨텐츠를 디바이스 (110) 로부터 취출하도록 시도할 수도 있다. 일 양태에 있어서, 디바이스 (110) 는 무선 통신 디바이스 (WCD), 유선 및 무선 양자의 다중의 디바이스들을 포함할 수도 있다. 예를 들어, 다중의 디바이스들은 네트워크 등으로서 동시에 작동할 수도 있다. 그러한 예에 있어서, 디바이스 (110) 는 요청된 1차 컨텐츠 아이템, 예를 들어, 사용자에 의한 액세스를 위한 메인 웹 페이지를 획득할 수도 있다. 부가적으로, 디바이스 (110) 는 프록시 서버 (130) 와 통신하여, 1차 컨텐츠 아이템과 연관된 2차 컨텐츠 아이템들을, 예를 들어, 1차 컨텐츠 아이템에 링크된 웹 페이지, 오브젝트 등을, 사용자가 그러한 2차 컨텐츠 아이템들을 요청하기 전에 획득할 수도 있다. 이들 2차 컨텐츠 아이템들의 취출은 특정 프로토콜을 이용하여 수행될 수도 있다. 이하 제 2 프로토콜이라고 지칭되는 특정 프로토콜은 컨텐츠 아이템 요청들 및 대응하는 확인응답들의 시리즈의 라운드 트립 시간을, 그 요청들이 이전 요청의 임의의 관련 확인응답으로부터 디커플링되게 허용함으로써 감소시킨다. 그와 같이, 제 2 프로토콜을 이용하여, 복수의 요청들은, 이전 요청으로부터의 수신 확인응답의 대기와 연관된 임의의 지연들에 의해 방해받지 않은 단일의 접속 경로 상으로 전송될 수도 있다.
도 1 을 참조하면, 일 양태에 따른 통신 네트워크 (100) 의 블록 다이어그램이 예시된다. 통신 네트워크 (100) 는 분산형 버스 (125) 를 통해 접속된 통신 디바이스들 (110, 130, 140) 을 포함할 수도 있다. 일 양태에 있어서, 분산형 버스 (125) 는 다양한 전송 프로토콜들, 예를 들어, 블루투스, TCP/IP, WiFi, CDMA 네트워크, GPRS 네트워크, UMTS 네트워크, 및 다른 타입들의 통신 프로토콜들에 의해 지원될 수도 있다. 다른 양태에 있어서, 통신 디바이스 (110) 는 분산형 버스 노드 (112) 및 하나 이상의 로컬 종단점들 (114) 을 포함할 수도 있다. 분산형 버스 노드는 통신 디바이스 (110) 와 연관된 로컬 종단점들 (114) 과 분산형 버스 (125) 를 통해 액세스가능한 다른 통신 디바이스들 (130, 140) 과 연관된 다른 로컬 종단점들 (134, 144) 사이의 통신을 용이하게 할 수도 있다. 본 명세서에서 사용되는 바와 같이, 분산형 버스는 대칭적 다중 디바이스 네트워크 토폴로지들을 지원할 수도 있고, 디바이스 드롭-아웃의 존재 시 강인한 동작을 제공할 수도 있다. 분산형 버스 (125) 와 연관된 접속 및 통신 프로세스의 추가 설명은 도 2 를 참조하여 제공된다.
그와 같이, 기본 전송 프로토콜 (예를 들어, 블루투스, TCP/IP, WiFi 등) 에 독립적인 가상 분산형 버스 (125) 는, 디바이스들이 서로의 범위로 들어올 경우, 어떠한 간섭 사용없이도 디바이스들과의 자발적인 접속을 용이하게 하면서, 와이드 오픈형으로부터 인증 및 암호화형으로의 보안 옵션들의 범위가 사용되게 허용할 수도 있다.
도 2 를 참조하면, 도 1 에 도시된 대상물의 메시지 시퀀스 다이어그램의 형태로의 동작이 예시된다. 일반적으로, 디바이스 (A) (202) 는 디바이스 (B) (208) 와 통신하도록 요청될 수도 있다. 일 양태에 있어서, 디바이스 (A) (202) 는, 통신하도록 요청하게 할 수도 있는 로컬 애플리케이션, 서비스 등과 같은 로컬 종단점 (A) (204), 및 그러한 통신을 용이하게 하는 것을 보조할 수도 있는 버스 노드 (A) (206) 를 포함할 수도 있다. 또한, 디바이스 (B) (208) 는 로컬 종단점 (A) 과 통신하도록 시도하고 있을 수도 있는 로컬 종단점 (B) (210), 및 로컬 종단점 (A) (204) 와 로컬 종단점 (B) (212) 사이의 통신을 용이하게 하는 것을 보조할 수도 있는 버스 노드 (B) (210) 를 포함할 수도 있다.
일 양태에 있어서, 버스 노드들 ((A) 및 (B)) 은, 시퀀스 단계 214 에서, 발견 메커니즘들을 수행할 수도 있다. 예를 들어, 블루투스, TCP/IP, UNIX 등에 의해 지원되는 접속들을 발견하기 위한 메커니즘들이 이용될 수도 있다. 시퀀스 단계 216 에서, 로컬 종단점 (A) (204) 은 버스 노드 (A) (206) 를 통해 이용가능한 엔터티, 서비스, 종단점 등에 접속하길 요청할 수도 있다. 일 양태에 있어서, 그러한 요청은 로컬 종단점 (A) (204) 와 버스 노드 (A) (206) 간의 요청 및 응답 프로세스를 포함할 수도 있다. 시퀀스 단계 218 에서, MBus 서버 (예를 들어, 버스 노드 (A) (206)) 는 하나 이상의 다른 MBus 서버들 (예를 들어, 버스 노드 (B) (210)) 에 접속할 수도 있다. 일 양태에 있어서, 통신은 MBus, DBus 와이어-프로토콜과 같은 프로토콜, 또는 다른 IPC 메커니즘들 등을 이용하여 용이하게 될 수도 있다. 예를 들어, MBus 기반 종단점들은 DBus 기반 프로토콜을 통하여 다른 서버와 접속할 수도 있다. 다른 양태에 있어서, 버스 노드 (A) (206) 는 DBus 기반 종단점들 및 서버들 (예를 들어, SASL) 에서 이용가능한 것과 같은 메커니즘들을 이용하여 다른 MBus 서버들과의 접속들을 인증할 수도 있다. SASL 인증으로, 클라이언트는 인증 커맨드를 전송하여 인증 대화를 개시할 수도 있다. 인증 커맨드는 클라이언트의 인증 메커니즘들을 리스팅할 수도 있다. 서버는 인증 커맨드를 거부할 수도 있고 자신의 인증 메커니즘들을 리스팅할 수도 있다. 클라이언트는 대화의 시작 시에 인증 메커니즘을 선택할 수도 있다. 또한, 인증 결과는 일련의 도전들 및 응답들일 수도 있다. 인증이 실패하면, 클라이언트는 다른 메커니즘들을 시도하거나 접속해제할 수도 있다. 성공적인 인증 이후, 클라이언트는 헬로우 (Hello) 메소드 호출 메시지를 전송할 수도 있다. 그 후, 메소드 메시지가 서버로부터 반환되어 고유의 id 를 클라이언트로 발행할 수도 있다. 그와 같이, 클라이언트는 전송자 id 를 갖고 다른 메소드 메시지 호출들을 수행할 수도 있다.
본 명세서에서 사용되는 바와 같이, MBus 는, 단절된 다중 종단점 MBus 인스턴스가 단일 인스턴스를 형성하기 위해 함께 조인하게 허용할 수도 있는 DBus 프로토콜들의 익스텐션일 수도 있다. 일 양태에 있어서, 그러한 인스턴스는 비-스타 (non-star) 기반 토폴로지를 이용하여 지원될 수도 있다. 또한, MBus 서버 (버스 노드들) 는, 기본 전송 메커니즘들과 연관된 제한없이 그리고 중앙 라우터로 포워딩되지 않고도, MBus 메시지들이 다른 목적지들로 직접 흘러가게 허용할 수도 있다. 또한, MBus 인에이블드 디바이스들은 비MBus 인에이블드 디바이스들 간의 통신을 용이하게 할 수도 있다.
또한, 그러한 접속들은 양 방향에서 인증될 수도 있다. 즉, 인증 커맨드들 및 응답들은 양 방향에서 교환될 수도 있다. 더 추가로, 시퀀스 단계 218 동안, 버스 노드들 ((A) 및 (B)) 은 다른 가용 종단점들에 관한 정보를 교환할 수도 있다. 그러한 양태에 있어서, 버스 노드에 의해 유지된 각각의 종단점은 다른 버스 노드들에게 기술될 수도 있으며, 여기서, 그러한 기술은 고유의 종단점 네임들, 전송 타입들, 접속 파라미터들을 포함할 수도 있다.
더 추가로, 버스 노드들은 다양한 보안 메커니즘들을 용이하게 할 수도 있다. 예를 들어, 애플리케이션은 버스 노드로 인증할 수도 있고, 인증은 접속 시간에서 협상될 수도 있으며, 인증은 상기 서술된 SASL 모델을 수반할 수도 있다. 또한, 버스 노드는, 인증없음에 대한 "익명" 필드, 파일 시스템 액세스 권한에 기반한 사용자 인증에 대한 "쿠키" 필드, 커널 소켓 보안을 이용한 사용자 인증에 대한 "외부" 필드와 같은 빌트인 인증 메커니즘들을 제공할 수도 있다.
시퀀스 단계 220 에서, 각각의 버스 노드 (예를 들어, 버스 노드 (A) (206) 및 버스 노드 (B) (210)) 는, 다양한 버스 노드들을 통해 이용가능한 실제 획득된 종단점들을 나타낼 수도 있는 가상 종단점들을 생성하기 위해 획득된 종단점 정보를 이용할 수도 있다. 일 양태에 있어서, 버스 노드 (A) (206) 상으로 라우팅하는 메시지는 실제 및 가상의 종단점들을 이용하여 메시지들을 전달할 수도 있다. 또한, 원격 디바이스들 (예를 들어, 디바이스 (B) (208)) 에 존재하는 모든 종단점에 대한 하나의 로컬 가상 종단점이 존재할 수도 있다. 더 추가로, 그러한 가상 종단점들은 MBus 접속 (예를 들어, 버스 노드 (A) (206) 와 버스 노드 (B) (210) 간의 접속) 을 통해 전송된 메시지들을 멀티플렉싱 및/또는 디멀티플렉싱할 수도 있다. 일 양태에 있어서, 가상 종단점들은 실제 종단점들과 같이, 로컬 버스 노드로부터 메시지들을 수신할 수도 있고, 종단점과 연관된 MBus 접속체로 메시지들을 포워딩할 수도 있다. 그러한 양태에 있어서, 가상 종단점들은 종단점 멀티플렉싱된 MBus 접속체로부터 로컬 버스 노드로 메시지들을 포워딩할 수도 있다. 더 추가로, 다른 양태에 있어서, 원격 디바이스 상의 가상 종단점들에 대응하는 가상 종단점들은 특정 전송 타입들의 원하는 토폴로지들을 수용할 어느 때라도 재접속될 수도 있다. 그러한 양태에 있어서, UNIX 기반 가상 종단점들은 로컬로 고려될 수도 있고, 그와 같이, 재접속을 위한 후보들로는 고려되지 않을 수도 있다. 또한, TCP 기반 가상 종단점들은 원하는 MBus 서버로의 1 홉 (one hop) 라우팅에 대해 최적화될 수도 있다 (예를 들어, 각각의 MBus 버스 노드는 각각의 다른 MBus 버스 노드에 직접 접속될 수도 있음). 더 추가로, 블루투스 기반 가상 종단점들은 단일 피코넷 (예를 들어, 하나의 마스터 및 n개의 슬레이브들) 에 대해 최적화될 수도 있다. 그러한 양태에 있어서, 블루투스 기반 마스터는 로컬 MBus 마스터 노드와 동일한 버스 노드일 수도 있다.
시퀀스 단계 222 에서, MBus 기반 서버들 (예를 들어, 버스 노드 (A) (206) 및 버스 노드 (B) (210)) 은 버스 인스턴스들을 병합하도록 버스 상태 정보를 교환할 수도 있다. 일 양태에 있어서, 상태 정보는 고유의 종단점 네임 맵, 매치 룰들, 및 라우팅 그룹들에 주지된 것으로 이루어질 수도 있다. 일 양태에 있어서, 상태 정보는, DBus 기반 로컬 네임을 이용하여 통신되는 로컬 종단점들과의 MBus 기반 인터페이스를 이용한 MBus 서버 인스턴스들 사이에서 통신될 수도 있다. 다른 양태에 있어서, 각각의 MBus 서버 (예를 들어, 버스 노드 (A) (206)) 는, DBus 기반 피드백을 담당하는 자신의 버스 제어기를 유지할 수도 있다. 그러한 양태에 있어서, 버스 제어기는 글로벌 MBus 메소드들 및 신호들을 표준 로컬 DBus 메소드들 및 신호들로 변경할 수도 있다.
시퀀스 단계 224 에서, MBus 기반 서버들 (예를 들어, 버스 노드 (A) (206) 및 버스 노드 (B) (210)) 은, 상기 설명된 바와 같이, 버스 노드 접속 동안 도입된 변경들을 로컬 종단점들 (예를 들어, 로컬 종단점 (A) (204), 로컬 종단점 (B) (212) 등) 에게 통지하기 위한 신호들을 통신 (예를 들어, 브로드캐스트) 할 수도 있다. 일 양태에 있어서, 새롭고/새롭거나 제거된 글로벌 및/또는 변경된 네임들은 네임 소유자 변경된 신호들로 표시될 수도 있다. 또한, 네임 충돌로 인해 (국부적으로) 손실될 수도 있는 글로벌 네임들은 네임 손실된 신호들로 표시될 수도 있다. 더 추가로, 네임 충돌로 인해 변형된 글로벌 네임들은 네임 소유자 변경된 신호들로 표시될 수도 있다. 더 추가로, 2개의 버스들이 접속해제될 경우에 사라지는 고유의 네임들은 네임 소유자 변경된 신호들로 표시될 수도 있다.
상기 사용된 바와 같이, 주지의 네임들이 로컬 종단점들을 고유하게 기술하기 위해 사용될 수도 있다. 일 양태에 있어서, 다중의 디바이스들 사이에서 통신이 발생할 경우, 상이한 타입들의 주지의 네임들이 사용될 수도 있다. 예를 들어, 디바이스 로컬 네임은, 직접 접속된 특정 디바이스의 버스 노드에만 존재할 수도 있다. 다른 예에 있어서, 글로벌 네임은 모두 공지된 버스 노드들에 존재할 수도 있으며, 여기서, 그 네임의 오직 하나의 소유자만이 모든 버스 세그먼트들에 존재할 수도 있다. 즉, 버스들이 조인되고 충돌이 발생할 경우, 소유자들 중 하나는 글로벌 네임을 손실할 수도 있다. 또 다른 예에 있어서, 클라이언트가 가상 버스와 연관된 다른 버스 노드들에 접속될 경우에 변경된 네임이 사용될 수도 있다. 그러한 양태에 있어서, 변경된 네임은 부가된 종단을 포함할 수도 있다 (예를 들어, 주지의 네임 org.foo 를 갖는 로컬 종단점 (A) 은 MBus 서버에 접속될 수도 있고, GUID=1234 는 GUID=1234 이외의 MBus 서버들에 접속된 클라이언트들에 의해 "G1234.org.foo" 로서 보일 수도 있음).
시퀀스 단계 226 에서, MBus 기반 서버들 (예를 들어, 버스 노드 (A) (206) 및 버스 노드 (B) (210)) 은 종단점 버스 토폴로지들에 대한 변경들을 다른 버스 노드들에게 통지하기 위한 신호들을 통신 (예를 들어, 브로드캐스트) 할 수도 있다. 그 후, 종단점 (예를 들어, 로컬 종단점 (A) (204)) 으로부터의 트래픽이 가상 종단점들을 통해 이동하여 원격 디바이스들 (예를 들어, 디바이스 (B) (208)) 상의 의도된 제거 종단점들 (예를 들어, 로컬 종단점 (B) (212)) 에 도달할 수도 있다.
또한, 동작에 있어서, 종단점들 (예를 들어, 로컬 종단점 (A) (204), 로컬 종단점 (B) (212) 등) 간의 통신은 라우팅 그룹들을 이용할 수도 있다. 일 양태에 있어서, 라우팅 그룹들은 종단점들로 하여금 종단점들의 서브세트로부터 신호들, 메소드 호출 등을 수신하게 할 수도 있다. 그러한 양태에 있어서, 라우팅 네임은 버스 노드에 접속된 애플리케이션에 의해 결정될 수도 있다. 예를 들어, P2P 애플리케이션은 애플리케이션에 형성된 고유한 주지의 라우팅 그룹 네임을 사용할 수도 있다. 또한, 버스 노드들은 종단점들의 라우팅 그룹들로의 등록 및/또는 등록해제를 지원할 수도 있다. 일 양태에 있어서, 라우팅 그룹들은 현재 버스 인스턴스 초과의 지속성을 갖지 않을 수도 있다. 다른 양태에 있어서, 애플리케이션들은 버스에 접속할 때마다 선호된 라우팅 그룹들에 등록할 수도 있다. 더 추가로, 그룹들은 개방형이거나 (예를 들어, 임의의 종단점이 조인할 수 있음) 또는 폐쇄형일 수도 있다 (예를 들어, 그룹의 생성자만이 그룹을 변경할 수 있음). 더 추가로, 버스 노드는 라우팅 그룹으로 및/또는 라우팅 그룹으로부터 종단점들의 추가, 제거 등 또는 다른 원격 버스 노드들에게 통지하기 위한 신호들을 전송할 수도 있다. 그러한 양태에 있어서, 버스 노드는, 멤버가 그룹으로부터 추가되고/되거나 제거될 때마다 라우팅 그룹 변경 신호를 다른 그룹 멤버들에게 전송할 수도 있다. 또한, 버스 노드는, 라우팅 그룹으로부터 먼저 제거하지 않고도, 버스로부터 접속해제하는 종단점으로 라우팅 그룹 변경 신호를 자동으로 전송할 수도 있다.
도 3 을 참조하면, 예시적인 하이 레벨 오브젝트 모델 (300) 이 도시된다. 일 양태에 있어서, 하이 레벨 오브젝트 모델은 메시지 버스 (MBus; 302) 를 포함할 수도 있다. 도시된 바와 같이, MBus (302) 는 MBus 오브젝트 (304), MBus 전송부 (306) 및 MBus 라우터 (308) 와 연관될 수도 있다. 일 양태에 있어서, MBus 전송부는 로컬 전송부, UNIX 전송부, 블루투스 전송부, TCP/IP 전송부 등과 같은 다양한 전송부들을 포함할 수도 있으며, 각각의 전송부는 적어도 하나의 관련 종단점에 대해 이용가능하다.
일 양태에 있어서, MBus 오브젝트 (302) 는 미리정의된 네임들, 오브젝트 경로들, 인터페이스 네임들, 및 멤버 네임들을 통해 빌트인 기능을 제공할 수도 있다. 그러한 기능을 결정하는 것은, 오브젝트의 인터페이스들 및/또는 네스팅된 오브젝트들의 설명 (예를 들어, XML 설명) 을 제공하는 인트로스펙션 (introspection) 으로서 기술될 수도 있다. 일 양태에 있어서, 인터페이스는 네임 관리 (예를 들어, RequestName, ReleaseName, HasOwner 등) 및/또는 라우트 관리 (예를 들어, AddMatch, RemoveMatch 등) 를 위한 메소드들을 제공할 수도 있다.
도 4 를 참조하면, 또 다른 예시적인 하이 레벨 오브젝트 모델 (400) 이 도시된다. 일 양태에 있어서, 하이 레벨 오브젝트 모델 (400) 은 MBus 오브젝트 (402) 를 포함할 수도 있다. MBus 오브젝트 (402) 는 MBus 인터페이스 (404), MBus 라우터 (408) 와 연관될 수도 있는 MBus 로컬 종단점 (406), MBus 신호 메시지 처리자 (410) 및 MBus 메소드 메시지 처리자 (412) 와 연관될 수도 있다.
도 5 는 청구 대상물에 따른 다양한 방법들을 예시한다. 설명의 간략화를 위해, 방법들이 일련의 동작들로서 도시 및 설명되지만, 일부 동작들이 본 명세서에 도시 및 설명된 동작과는 상이한 순서들로 및/또는 다른 동작들과 동시에 발생할 수도 있으므로, 청구 대상물은 그 동작들의 순서에 의해 한정되지 않음을 이해 및 인식해야 한다. 예를 들어, 당업자는 방법이 상태 다이어그램에서와 같이 일련의 상호관련된 상태들 또는 이벤트들로서 대안적으로 표현될 수도 있음을 이해 및 인식할 것이다. 더욱이, 예시된 동작들 전부가 청구 대상물에 따른 방법을 구현하는데 요구되는 것은 아닐 수도 있다. 부가적으로, 이하 및 본 명세서 전반에 걸쳐 개시된 방법들은 그러한 방법들을 컴퓨터들로 전송 및 전달하는 것을 용이하게 하도록 제조 물품 상에 저장될 수 있음을 또한 인식해야 한다. 본 명세서에서 사용되는 바와 같은 제조 물품이라는 용어는 임의의 컴퓨터 판독가능 디바이스, 캐리어, 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포괄하도록 의도된다.
이제, 도 5 로 돌아가면, 애드 혹 피어-투-피어 분산형 메시지 버스를 이용하는 예시적인 방법 (500) 이 예시된다. 참조부호 502 에서, 원격 노드가 이용가능할 수도 있다고 결정한다. 일 양태에 있어서, 그 결정은 로컬 버스 노드에 의해 수행될 수도 있다. 다른 양태에 있어서, 그 결정은 임의의 기본 전송 프로토콜 (예를 들어, 블루투스, TCP/IP, WiFi 등) 에 독립적일 수도 있으며, 디바이스들이 서로의 범위로 들어올 경우, 어떠한 간섭 사용없이도 디바이스들과의 자발적인 접속을 용이하게 하면서, 와이드 오픈형으로부터 인증 및 암호화형으로의 보안 옵션들의 범위가 사용되게 허용할 수도 있다.
참조부호 504 에서, 원격 버스 노드와 연관된 원격 종단점들에 대한 접속 정보를 포함한 접속 정보가 원격 버스 노드로부터 획득될 수도 있다. 일 양태에 있어서, 발견 메커니즘들이 접속 정보를 획득하는 것을 보조하기 위해 이용될 수도 있다. 예를 들어, 블루투스, TCP/IP, UNIX 도메인 소켓들 등에 의해 지원되는 접속을 발견하기 위한 메커니즘들이 이용될 수도 있다.
참조부호 506 에서, 로컬 가상 종단점이 각각의 획득된 원격 종단점에 대해 생성될 수도 있다. 그와 같이, 로컬 가상 종단점들의 이용을 통해, 비-스타 기반 네트워크 토폴로지가 달성될 수도 있다. 동작에 있어서, 가상 종단점들은 실제 종단점들과 같이, 로컬 버스 노드로부터 메시지들을 수신할 수도 있고, 종단점과 연관된 MBus 접속체로 메시지들을 포워딩할 수도 있다. 그러한 양태에 있어서, 가상 종단점들은 종단점 멀티플렉싱된 MBus 접속체로부터 로컬 버스 노드로 메시지들을 포워딩할 수도 있다. 더 추가로, 다른 양태에 있어서, 원격 디바이스 상의 가상 종단점들에 대응하는 가상 종단점들은 특정 전송 타입들의 원하는 토폴로지들을 수용할 어느 때라도 재접속될 수도 있다. 그러한 양태에 있어서, UNIX 기반 가상 종단점들은 로컬로 고려될 수도 있고, 그와 같이, 재접속을 위한 후보들로는 고려되지 않을 수도 있다. 또한, TCP 기반 가상 종단점들은 원하는 MBus 서버로의 1 홉 라우팅에 대해 최적화될 수도 있다 (예를 들어, 각각의 MBus 버스 노드는 각각의 다른 MBus 버스 노드에 직접 접속될 수도 있음). 더 추가로, 블루투스 기반 가상 종단점들은 단일 피코넷 (예를 들어, 하나의 마스터 및 n개의 슬레이브들) 에 대해 최적화될 수도 있다. 그러한 양태에 있어서, 블루투스 기반 마스터는 로컬 MBus 마스터 노드와 동일한 버스 노드일 수도 있다.
더 추가로, 일 양태에 있어서, 다양한 정의된 메시지 타입들이 버스 노드들 간의 통신을 용이하게 하기 위해 이용될 수도 있다. 그러한 메시지들은 신호들, 메소드들 등과 같은 다양한 타입들로 카테고리화될 수도 있다. 예를 들어, 일부 메소드 타입 메시지들은 다음을 포함할 수도 있다: "AddToGroup" 은 명명된 그룹에 그 자신을 추가하기 위해 종단점에 의해 전송될 수도 있음; "RemoveFromGroup" 은 명명된 그룹으로부터 그 자신을 제거하기 위해 종단점에 의해 전송될 수도 있음; "ConnectToBus" 는 다른 버스 노드로 접속 및 조인하도록 시도하기 위해 전송될 수도 있음; "RequestName" 은 특정 타입의 주지의 네임 (예를 들어, 로컬, 글로벌, 변경형 등) 을 요청하기 위해 종단점에 의해 전송될 수도 있음; 그리고, "GetTranslatedNames" 는 종단점이 특정 기본 네임에 대한 변경된 주지의 네임들을 수신하도록 허용될 수도 있음. 추가 예로서, 일부 신호 타입 메시지들은 다음을 포함할 수도 있다: "GroupChanged" 는 명명된 그룹에 조인하고/하거나 이탈하는 종단점들을 통지하기 위해 모든 그룹 멤버들에게 전송될 수도 있음; 그리고, "ConnectionChanged" 는 버스 노드 접속이 추가 및/또는 드롭되었음을 종단점들에게 통지하기 위해 전송될 수도 있음.
도 1 을 여전히 참조하지만 이제 도 6 으로 또한 전환하면, 통신 디바이스 (110) 의 예시적인 아키텍처가 예시된다. 도 6 에 도시된 바와 같이, 디바이스 (600) 는, 예를 들어 수신 안테나 (도시안함) 로부터 신호를 수신하고 수신된 신호에 대한 통상의 액션들 (예를 들어, 필터링, 증폭, 하향변환 등) 을 수행하고 조정된 신호를 디지털화하여 샘플들을 획득하는 수신기 (602) 를 포함한다. 수신기 (602) 는, 수신된 심볼들을 복조하여 채널 추정을 위해 프로세서 (606) 에 제공할 수 있는 복조기 (604) 를 포함할 수 있다. 프로세서 (606) 는 수신기 (602) 에 의해 수신된 정보를 분석하고/하거나 송신기 (620) 에 의한 송신용 정보를 생성하도록 전용된 프로세서, 모바일 디바이스 (600) 의 하나 이상의 컴포넌트들을 제어하는 프로세서, 및/또는 수신기 (602) 에 의해 수신된 정보를 분석하고 송신기 (620) 에 의한 송신용 정보를 생성하며 모바일 디바이스 (600) 의 하나 이상의 컴포넌트들을 제어하는 것 모두를 수행하는 프로세서일 수 있다.
모바일 디바이스 (600) 는 부가적으로, 프로세서 (606) 에 동작가능하게 커플링되고 또한 송신될 데이터, 수신된 데이터, 가용 채널들에 관련된 정보, 분석된 신호 및/또는 간섭 강도와 관련된 데이터, 할당된 채널, 전력, 레이트 등에 관련된 정보, 및 채널을 추정하고 그 채널을 통해 통신하는 임의의 다른 적절한 정보를 저장할 수 있는 메모리 (608) 를 포함할 수 있다. 일 양태에 있어서, 메모리 (608) 는, 분산형 버스 모듈 (630) 을 통해 연관된 다른 디바이스들 및/또는 디바이스 (600) 상에서 종단점 애플리케이션들, 서비스들 등과 통신하려고 할 수도 있는 로컬 종단점 애플리케이션들 (610) 을 포함할 수 있다. 메모리 (608) 는 부가적으로, (예를 들어, 성능 기반, 용량 기반 등으로) 채널을 추정 및/또는 활용하는 것과 연관된 프로토콜들 및/또는 알고리즘들을 저장할 수 있다.
또한, 프로세서 (606) 는 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하는 수단, 제 2 전력 레벨 통신 프로토콜을 이용하여 원격 버스 노드로부터 접속 정보를 로컬 버스 노드에 의해 획득하는 수단으로서, 그 접속 정보는 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는, 상기 접속 정보를 획득하는 수단, 및 하나 이상의 로컬 가상 종단점들을 생성하는 수단을 제공할 수 있으며, 여기서, 하나 이상의 로컬 가상 종단점들 각각은 하나 이상의 원격 종단점들 각각에 대응하고, 여기서, 원격 종단점은 그 원격 종단점에 고유한 주지의 네임을 참조하여 기술된다.
본 명세서에 설명된 데이터 저장부 (예를 들어, 메모리 (608)) 는 휘발성 메모리 또는 비휘발성 메모리일 수 있거나, 또는 휘발성 및 비휘발성 메모리 양자를 포함할 수 있음을 인식할 것이다. 제한이 아닌 예시로서, 비휘발성 메모리는 판독전용 메모리 (ROM), 프로그래머블 ROM (PROM), 전기적 프로그래머블 ROM (EPROM), 전기적 소거가능 PROM (EEPROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리는 외부 캐시 메모리로서 기능하는 랜덤 액세스 메모리 (RAM) 를 포함할 수 있다. 제한이 아닌 예시로서, RAM 은 동기식 RAM (SRAM), 동적 RAM (DRAM), 동기식 DRAM (SDRAM), 더블 데이터 레이트 SDRAM (DDR SDRAM), 인핸스드 SDRAM (ESDRAM), 싱크링크 DRAM (SLDRAM), 및 다이렉트 램버스 RAM (DRRAM) 과 같은 다수의 형태들로 이용가능하다. 본 시스템들 및 방법들의 메모리 (608) 는 이들 및 임의의 다른 적절한 타입들의 메모리를 제한되지 않고 포함할 수도 있다.
모바일 디바이스 (600) 는, 디바이스 (600) 와 같은 다른 디바이스들과의 접속을 확립하는 것을 용이하게 하기 위해 분산형 버스 모듈 (630) 을 더 포함할 수 있다. 분산형 버스 모듈 (630) 은, 다중의 디바이스들 간의 통신을 관리하는 분산형 버스 모듈 (630) 을 보조하기 위해 버스 노드 모듈 (632) 을 더 포함할 수도 있다. 일 양태에 있어서, 버스 노드 모듈 (632) 은, 버스 노드 모듈 (632) 이 다른 디바이스들과 연관된 종단점 애플리케이션들 (610) 과의 네이밍 충돌을 회피하는 것을 보조하기 위해 오브젝트 네이밍 모듈 (634) 을 더 포함할 수도 있다. 더 추가로, 분산형 버스 모듈 (630) 은, 로컬 종단점들이 확립된 분산형 버스를 통해 다른 디바이스들에 액세스 가능한 종단점들 및/또는 다른 로컬 종단점들과 통신하는 것을 보조하기 위해 종단점 모듈 (636) 을 포함할 수도 있다. 다른 양태에 있어서, 분산형 버스 모듈 (630) 은 다중의 가용 전송부들 (예를 들어, 블루투스, UNIX 도메인 소켓들, TCP/IP, WiFi 등) 을 통한 디바이스 간 및/또는 디바이스 내 통신을 용이하게 할 수도 있다.
부가적으로, 모바일 디바이스 (600) 는 사용자 인터페이스 (640) 를 포함할 수도 있다. 사용자 인터페이스 (640) 는 통신 디바이스 (600) 로의 입력들을 생성하는 입력 메커니즘 (642), 및 통신 디바이스 (600) 의 사용자에 의한 소비에 대한 정보를 생성하는 출력 메커니즘 (642) 을 포함할 수도 있다. 예를 들어, 입력 메커니즘 (642) 은 키 또는 키보드, 마우스, 터치 스크린 디스플레이, 마이크로폰 등과 같은 메커니즘을 포함할 수도 있다. 또한, 예를 들어, 출력 메커니즘 (644) 은 디스플레이, 오디오 스피커, 햅틱 피드백 메커니즘, 개인 영역 네트워크 (PAN) 트랜시버 등을 포함할 수도 있다. 예시된 양태들에 있어서, 출력 메커니즘 (644) 은 이미지 또는 비디오 포맷인 미디어 컨텐츠를 제시하도록 동작가능한 디스플레이, 또는 오디오 포맷인 미디어 컨텐츠를 제시하기 위한 오디오 스피커를 포함할 수도 있다.
도 7 을 참조하면, 일 양태에 따른 애드 혹 피어-투-피어 분산형 메시지 버스를 이용하는 시스템 (700) 이 예시된다. 예를 들어, 시스템 (700) 은 WCD, UE 등 내에 적어도 부분적으로 상주할 수 있다. 다른 예시적인 양태에 따르면, 시스템 (700) 은 액세스 단말기 내에 적어도 부분적으로 상주할 수 있다. 시스템 (700) 은 프로세서, 소프트웨어, 또는 이들의 조합 (예를 들어, 펌웨어) 에 의해 구현되는 기능들을 나타내는 기능 블록들일 수 있는 기능 블록들을 포함하는 것으로서 나타내짐을 인식해야 한다.
시스템 (700) 은 결합하여 작동할 수 있는 수단의 논리 그룹핑 (702) 을 포함한다. 예를 들어, 논리 그룹핑 (702) 은 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하는 수단 (704) 을 포함할 수 있다. 일 양태에 있어서, 제 2 전력 레벨 통신 프로토콜은 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용할 수도 있다. 이에 따라, 제 2 전력 레벨 통신 프로토콜은 제 1 전력 레벨 통신 프로토콜보다 사용될 더 높은 데이터 레이트들을 허용할 수도 있다. 또한, 논리 그룹핑 (702) 은 제 2 전력 레벨 통신 프로토콜을 이용하여, 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는 접속 정보를 원격 버스 노드로부터 로컬 버스 노드에 의해 획득하는 수단 (706) 을 포함할 수 있다. 일 양태에 있어서, 상기 획득하는 수단은 원격 버스 노드가 이용가능하다는 결정에 응답하여 접속 요청을 자동으로 송신하는 수단, 및 송신된 요청에 응답하여 접속 정보를 수신하는 수단을 포함할 수도 있다.
또한, 논리 그룹핑 (702) 은 하나 이상의 로컬 가상 종단점들을 생성하는 수단으로서, 하나 이상의 로컬 가상 종단점들 각각은 하나 이상의 원격 종단점들 각각에 대응하고, 원격 종단점은 그 원격 종단점에 고유한 주지의 네임을 참조하여 기술되는, 상기 생성하는 수단 (708) 을 포함할 수 있다. 일 양태에 있어서, 주지의 네임은 또한, 원격 버스 노드를 기술하는 주지의 네임의 제 1 부분, 및 원격 종단점을 기술하는 주지의 네임의 제 2 부분을 포함할 수도 있다. 다른 양태에 있어서, 주지의 네임은 전송 타입 및 하나 이상의 접속 파라미터들을 포함할 수도 있다. 하나의 그러한 양태에 있어서, 전송 타입은 블루투스 기반 전송 프로토콜, UNIX 기반 전송 프로토콜, TCP 기반 전송 프로토콜, 유니버셜 직렬 버스 기반 전송 프로토콜 등 중 적어도 하나를 포함할 수도 있다. 예를 들어, 전송 타입이 TCP 기반 전송 프로토콜인 경우, 하나 이상의 접속 파라미터들은 원격 종단점과 연관된 원격 버스 노드로의 최적화된 1 홉 라우팅을 포함할 수도 있다. 다른 예로서, 전송 타입이 블루투스 기반 전송 프로토콜인 경우, 하나 이상의 접속 파라미터들은 단일 피코 넷 구조에 대한 최적화된 접속 정보를 포함할 수도 있다.
부가적으로, 시스템 (700) 은 수단들 (704, 706 및 708) 과 연관된 기능들을 실행하기 위한 명령들을 보유한 메모리 (710) 를 포함할 수 있다. 메모리 (710) 외부에 있는 것으로서 도시되지만, 수단들 (704, 706 및 708) 중 하나 이상은 메모리 (710) 내에 존재할 수 있음을 이해해야 한다.
본 출원에서 사용되는 바와 같이, 용어들 "컴포넌트", "모듈", "시스템" 등은 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어와 같지만 이에 제한되지 않는 컴퓨터 관련 엔티티를 포함하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 구동하는 프로세스, 프로세서, 오브젝트, 실행 가능물 (executable), 실행 쓰레드 (thread of execution), 프로그램, 및/또는 컴퓨터일 수 있지만, 이에 제한되지 않는다. 예시로서, 컴퓨팅 디바이스 상에서 구동하는 애플리케이션 및 컴퓨팅 디바이스 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 쓰레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨터에 국부화되고/되거나 2 이상의 컴퓨터들 사이에서 분산될 수도 있다. 부가적으로, 이들 컴포넌트들은 다양한 데이터 구조들이 저장된 다양한 컴퓨터 판독가능 매체로부터 실행할 수 있다. 컴포넌트들은, 로컬 시스템에서, 분산 시스템에서 및/또는 신호를 통한 다른 시스템들과의 인터넷과 같은 네트워크 상으로 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터와 같은, 하나 이상의 데이터 패킷들을 갖는 신호에 따라 로컬 및/또는 원격 프로세스들을 통해 통신할 수도 있다.
또한, 다양한 양태들이, 유선 단말기 또는 무선 단말기일 수 있는 단말기와 관련하여 본 명세서에서 설명된다. 단말기는 또한, 시스템, 디바이스, 가입자 유닛, 가입자국, 이동국, 모바일, 모바일 디바이스, 원격국, 원격 단말기, 액세스 단말기, 사용자 단말기, 단말기, 통신 디바이스, 사용자 에이전트, 사용자 디바이스, 또는 사용자 장비 (UE) 라 지칭될 수 있다. 무선 단말기는 셀룰러 전화기, 위성 전화기, 코드리스 전화기, 세션 개시 프로토콜 (SIP) 전화기, 무선 로컬 루프 (WLL) 스테이션, 개인용 디지털 보조기 (PDA), 무선 접속 능력을 갖는 휴대형 디바이스, 컴퓨팅 디바이스, 또는 무선 모뎀에 접속된 다른 프로세싱 디바이스일 수도 있다. 더욱이, 다양한 양태들이 기지국과 관련하여 본 명세서에 설명된다. 기지국은 무선 단말기(들)와 통신하기 위해 활용될 수도 있고, 또한, 액세스 포인트, 노드B 또는 일부 다른 용어로서 지칭될 수도 있다.
더욱이, 용어 "또는" 은 배타적 "또는" 보다는 포괄적 "또는" 을 의미하도록 의도된다. 즉, 달리 특정되지 않거나 문맥으로부터 명백하지 않다면, 어구 "X 는 A 또는 B 를 채용한다" 는 것은 임의의 자연스런 포괄적 치환을 의미하도록 의도된다. 즉, 어구 "X 는 A 또는 B 를 채용한다" 는 것은 다음의 경우들 중 임의의 경우에 의해 만족된다: X 는 A 를 채용한다; X 는 B 를 채용한다; 또는 X 는 A 와 B 양자를 채용한다. 부가적으로, 본 출원 및 첨부된 청구항들에서 사용되는 바와 같은 단수표현 (관사 "a" 및 "an") 은, 단수 형태를 지향하도록 달리 특정되지 않거나 문맥으로부터 명백하지 않으면 "하나 이상" 을 의미하도록 일반적으로 해석되어야 한다.
본 명세서에 설명된 기술들은 CDMA, TDMA, FDMA, OFDMA, SC-FDMA 및 다른 시스템들과 같은 다양한 무선 통신 시스템들을 위해 사용될 수 있다. 용어들 "시스템" 및 "네트워크" 는 종종 상호 대체가능하게 사용된다. CDMA 시스템은 UTRA (Universal Terrestrial Radio Access), cdma2000 등과 같은 무선 기술을 구현할 수도 있다. UTRA 는 광대역-CDMA (W-CDMA) 및 CDMA의 다른 변형들을 포함한다. 또한, cdma2000 은 IS-2000, IS-95 및 IS-856 표준들을 커버한다. TDMA 시스템은 모바일 통신용 글로벌 시스템 (GSM) 과 같은 무선 기술을 구현할 수도 있다. OFDMA 시스템은 진화된 UTRA (E-UTRA), UMB (Ultra Mobile Broadband), IEEE 802.11(Wi-Fi), IEEE 802.16(WiMAX), IEEE 802.20, 플래시-OFDM™ 등과 같은 무선 기술을 구현할 수도 있다. UTRA 및 E-UTRA 는 유니버셜 모바일 통신 시스템 (UMTS) 의 일부이다. 3GPP 롱텀 에볼루션 (LTE) 은, 다운 링크에서 OFDMA 및 업링크에서 SC-FDMA 를 채용하는, E-UTRA 를 사용하는 UMTS 의 릴리즈이다. UTRA, E-UTRA, UMTS, LTE 및 GSM 은 "제3세대 파트너십 프로젝트" (3GPP) 라고 명명된 조직으로부터의 문헌들에서 설명된다. 부가적으로, cdma2000 및 UMB는 "제3세대 파트너십 프로젝트 2" (3GPP2) 라고 명명된 조직으로부터의 문헌들에서 설명된다. 또한, 그러한 무선 통신 시스템들은 부가적으로 언페어드 무허가 스펙트럼들, 802.xx 무선 LAN, 블루투스, 및 임의의 다른 단거리 또는 장거리 무선 통신 기술들을 종종 이용하는 피어-투-피어 (예를 들어, 모바일-투-모바일) 애드 혹 네트워크 시스템들을 포함할 수도 있다.
다양한 양태들 또는 특징들이, 다수의 디바이스들, 컴포넌트들, 모듈들 등을 포함할 수도 있는 시스템들의 관점에서 제시될 것이다. 다양한 시스템들은 부가적인 디바이스들, 컴포넌트들, 모듈들 등을 포함할 수도 있고/있거나 도면과 관련하여 설명되는 디바이스들, 컴포넌트들, 모듈들 등의 모두를 포함하지 않을 수도 있음을 이해 및 인식해야 한다. 이들 접근법들의 조합이 또한 이용될 수도 있다.
본 명세서에 개시된 양태들과 관련하여 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들, 및 회로들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA), 또는 다른 프로그래머블 로직 디바이스, 별개의 게이트 또는 트랜지스터 로직, 별개의 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계되는 이들의 임의의 조합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안에 있어서, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성물로서 구현될 수도 있다. 부가적으로, 적어도 하나의 프로세서는 상기 설명된 단계들 및/또는 액션들 중 하나 이상을 수행하도록 동작가능한 하나 이상의 모듈들을 포함할 수도 있다.
또한, 본 명세서에 개시된 양태들과 관련하여 설명된 방법 또는 알고리즘의 단계들 및/또는 액션들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서, 또는 이들 양자의 조합에서 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈가능 디스크, CD-ROM, 또는 당업계에 공지된 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있도록 프로세서에 커플링될 수도 있다. 대안에 있어서, 저장 매체는 프로세서에 통합될 수도 있다. 또한, 일부 양태들에 있어서, 프로세서 및 저장 매체는 ASIC 에 상주할 수도 있다. 부가적으로, ASIC 은 사용자 단말기에 상주할 수도 있다. 대안에 있어서, 프로세서 및 저장 매체는 사용자 단말기에 별개의 컴포넌트들로서 상주할 수도 있다. 부가적으로, 일부 양태들에 있어서, 방법 또는 알고리즘의 단계들 및/또는 액션들은, 컴퓨터 프로그램 제품에 통합될 수도 있는 머신 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상의 코드들 및/또는 명령들 중 하나 또는 그 임의의 조합 또는 그 세트로서 상주할 수도 있다.
하나 이상의 양태들에 있어서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수 있다. 소프트웨어에서 구현된다면, 그 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상으로 저장 또는 전송될 수도 있다. 컴퓨터 판독가능 매체는, 일 장소로부터 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 저장 매체 및 통신 매체 양자를 포함한다. 저장 매체는, 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 제한이 아닌 예로서, 그러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장부 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 반송 또는 저장하는데 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속체가 컴퓨터 판독가능 매체로 명명될 수도 있다. 예를 들어, 동축 케이블, 광섬유 케이블, 꼬임쌍선, 디지털 가입자 라인 (DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 소프트웨어가 송신된다면, 동축 케이블, 광섬유 케이블, 꼬임쌍선, DSL, 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 본 명세서에서 사용되는 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, DVD (digital versatile disc), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 통상적으로 데이터를 자기적으로 재생하지만 디스크 (disc) 는 데이터를 레이저로 광학적으로 재생한다. 상기의 조합들은 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
상기 개시는 예시적인 양태들 및/또는 양태들을 설명하지만, 다양한 변경들 및 변형들이 설명된 양태들 및/또는 첨부 청구항들에 의해 정의된 바와 같은 양태들의 범위로부터 일탈함없이 본 명세서에서 실시될 수 있음을 유의해야 한다. 또한, 설명된 양태들 및/또는 양태들의 엘리먼트들이 단수로 설명 또는 청구될 수도 있더라도, 단수로의 한정이 명시적으로 언급되지 않는다면 복수가 고려된다. 부가적으로, 임의의 양태 및/또는 양태의 모두 또는 그 일부는, 달리 언급되지 않는다면, 임의의 다른 양태 및/또는 양태의 모두 또는 그 일부로 활용될 수도 있다.

Claims (40)

  1. 종단점 통신을 용이하게 하는 방법으로서,
    제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하는 단계;
    상기 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 상기 원격 버스 노드로부터 접속 정보를 획득하는 단계로서, 상기 접속 정보는 상기 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는, 상기 접속 정보를 획득하는 단계; 및
    하나 이상의 로컬 가상 종단점들을 생성하는 단계를 포함하고,
    상기 하나 이상의 로컬 가상 종단점들 각각은 상기 하나 이상의 원격 종단점들 각각에 대응하고, 상기 원격 종단점은 상기 원격 종단점에 고유한 주지의 네임 (name) 을 참조하여 기술되는, 종단점 통신을 용이하게 하는 방법.
  2. 제 1 항에 있어서,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 종단점 통신을 용이하게 하는 방법.
  3. 제 1 항에 있어서,
    상기 주지의 네임은 상기 원격 버스 노드를 기술하는 상기 주지의 네임의 제 1 부분, 및 상기 원격 종단점을 기술하는 상기 주지의 네임의 제 2 부분을 더 포함하는, 종단점 통신을 용이하게 하는 방법.
  4. 제 1 항에 있어서,
    상기 주지의 네임은 전송 타입 및 하나 이상의 접속 파라미터들을 더 포함하는, 종단점 통신을 용이하게 하는 방법.
  5. 제 4 항에 있어서,
    상기 전송 타입은,
    블루투스 기반 전송 프로토콜;
    UNIX 기반 전송 프로토콜;
    TCP 기반 전송 프로토콜; 및
    유니버셜 직렬 버스 기반 전송 프로토콜
    중 적어도 하나를 더 포함하는, 종단점 통신을 용이하게 하는 방법.
  6. 제 4 항에 있어서,
    상기 전송 타입은 블루투스 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 단일 피코 넷 구조에 대한 최적화된 접속 정보를 포함하는, 종단점 통신을 용이하게 하는 방법.
  7. 제 4 항에 있어서,
    상기 전송 타입은 TCP 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 상기 원격 종단점과 연관된 상기 원격 버스 노드로의 최적화된 1 홉 (one hop) 라우팅을 포함하는, 종단점 통신을 용이하게 하는 방법.
  8. 제 1 항에 있어서,
    상기 접속 정보를 획득하는 단계는,
    상기 원격 버스 노드가 이용가능하다는 결정에 응답하여 접속 요청을 자동으로 송신하는 단계; 및
    상기 송신된 요청에 응답하여 상기 접속 정보를 수신하는 단계를 더 포함하는, 종단점 통신을 용이하게 하는 방법.
  9. 제 1 항에 있어서,
    상기 로컬 버스 노드에 의해, 상기 하나 이상의 로컬 가상 종단점들 중 적어도 하나와 통신하기 위한 요청을 로컬 종단점으로부터 수신하는 단계;
    상기 요청을, 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로 송신하는 단계;
    상기 원격 종단점으로의 로컬 종단점 액세스를 허여하는 액세스 메시지를 상기 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로부터 수신하는 단계; 및
    상기 액세스 메시지에 응답하여 상기 로컬 종단점과 상기 원격 종단점 간의 통신 세션을 확립하는 단계를 더 포함하는, 종단점 통신을 용이하게 하는 방법.
  10. 제 9 항에 있어서,
    상기 통신 세션을 확립하는 단계는 상기 제 2 전력 레벨 통신 프로토콜을 이용하는 단계를 포함하고,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 종단점 통신을 용이하게 하는 방법.
  11. 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 판독가능 매체는,
    컴퓨터로 하여금 제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하게 하는 제 1 코드 세트;
    상기 컴퓨터로 하여금 상기 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 상기 원격 버스 노드로부터 접속 정보를 획득하게 하는 제 2 코드 세트로서, 상기 접속 정보는 상기 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는, 상기 제 2 코드 세트; 및
    상기 컴퓨터로 하여금 하나 이상의 로컬 가상 종단점들을 생성하게 하는 제 3 코드 세트를 포함하고,
    상기 하나 이상의 로컬 가상 종단점들 각각은 상기 하나 이상의 원격 종단점들 각각에 대응하고, 상기 원격 종단점은 상기 원격 종단점에 고유한 주지의 네임을 참조하여 기술되는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  12. 제 11 항에 있어서,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  13. 제 11 항에 있어서,
    상기 주지의 네임은 상기 원격 버스 노드를 기술하는 상기 주지의 네임의 제 1 부분, 및 상기 원격 종단점을 기술하는 상기 주지의 네임의 제 2 부분을 더 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  14. 제 11 항에 있어서,
    상기 주지의 네임은 전송 타입 및 하나 이상의 접속 파라미터들을 더 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  15. 제 14 항에 있어서,
    상기 전송 타입은,
    블루투스 기반 전송 프로토콜;
    UNIX 기반 전송 프로토콜;
    TCP 기반 전송 프로토콜; 및
    유니버셜 직렬 버스 기반 전송 프로토콜
    중 적어도 하나를 더 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  16. 제 14 항에 있어서,
    상기 전송 타입은 블루투스 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 단일 피코 넷 구조에 대한 최적화된 접속 정보를 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  17. 제 14 항에 있어서,
    상기 전송 타입은 TCP 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 상기 원격 종단점과 연관된 상기 원격 버스 노드로의 최적화된 1 홉 라우팅을 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  18. 제 1 항에 있어서,
    상기 접속 정보를 획득하게 하는 제 2 코드 세트는,
    상기 원격 버스 노드가 이용가능하다는 결정에 응답하여 접속 요청을 자동으로 송신하기 위한 코드; 및
    상기 송신된 요청에 응답하여 상기 접속 정보를 수신하기 위한 코드를 더 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  19. 제 1 항에 있어서,
    상기 컴퓨터 판독가능 매체는,
    상기 로컬 버스 노드에 의해, 상기 하나 이상의 로컬 가상 종단점들 중 적어도 하나와 통신하기 위한 요청을 로컬 종단점으로부터 수신하기 위한 코드;
    상기 요청을, 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로 송신하기 위한 코드;
    상기 원격 종단점으로의 로컬 종단점 액세스를 허여하는 액세스 메시지를 상기 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로부터 수신하기 위한 코드; 및
    상기 액세스 메시지에 응답하여 상기 로컬 종단점과 상기 원격 종단점 간의 통신 세션을 확립하기 위한 코드를 더 포함하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  20. 제 19 항에 있어서,
    상기 통신 세션을 확립하기 위한 코드는 상기 제 2 전력 레벨 통신 프로토콜을 이용하기 위한 코드를 포함하고,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품.
  21. 종단점 통신을 용이하게 하는 장치로서,
    제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하는 수단;
    상기 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 상기 원격 버스 노드로부터 접속 정보를 획득하는 수단으로서, 상기 접속 정보는 상기 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는, 상기 접속 정보를 획득하는 수단; 및
    하나 이상의 로컬 가상 종단점들을 생성하는 수단을 포함하고,
    상기 하나 이상의 로컬 가상 종단점들 각각은 상기 하나 이상의 원격 종단점들 각각에 대응하고, 상기 원격 종단점은 상기 원격 종단점에 고유한 주지의 네임을 참조하여 기술되는, 종단점 통신을 용이하게 하는 장치.
  22. 제 21 항에 있어서,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 종단점 통신을 용이하게 하는 장치.
  23. 제 21 항에 있어서,
    상기 주지의 네임은 상기 원격 버스 노드를 기술하는 상기 주지의 네임의 제 1 부분, 및 상기 원격 종단점을 기술하는 상기 주지의 네임의 제 2 부분을 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  24. 제 21 항에 있어서,
    상기 주지의 네임은 전송 타입 및 하나 이상의 접속 파라미터들을 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  25. 제 24 항에 있어서,
    상기 전송 타입은,
    블루투스 기반 전송 프로토콜;
    UNIX 기반 전송 프로토콜;
    TCP 기반 전송 프로토콜; 및
    유니버셜 직렬 버스 기반 전송 프로토콜
    중 적어도 하나를 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  26. 제 24 항에 있어서,
    상기 전송 타입은 블루투스 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 단일 피코 넷 구조에 대한 최적화된 접속 정보를 포함하는, 종단점 통신을 용이하게 하는 장치.
  27. 제 24 항에 있어서,
    상기 전송 타입은 TCP 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 상기 원격 종단점과 연관된 상기 원격 버스 노드로의 최적화된 1 홉 라우팅을 포함하는, 종단점 통신을 용이하게 하는 장치.
  28. 제 21 항에 있어서,
    상기 접속 정보를 획득하는 수단은,
    상기 원격 버스 노드가 이용가능하다는 결정에 응답하여 접속 요청을 자동으로 송신하는 수단; 및
    상기 송신된 요청에 응답하여 상기 접속 정보를 수신하는 수단을 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  29. 제 21 항에 있어서,
    상기 로컬 버스 노드에 의해, 상기 하나 이상의 로컬 가상 종단점들 중 적어도 하나와 통신하기 위한 요청을 로컬 종단점으로부터 수신하는 수단;
    상기 요청을, 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로 송신하는 수단;
    상기 원격 종단점으로의 로컬 종단점 액세스를 허여하는 액세스 메시지를 상기 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로부터 수신하는 수단; 및
    상기 액세스 메시지에 응답하여 상기 로컬 종단점과 상기 원격 종단점 간의 통신 세션을 확립하는 수단을 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  30. 제 29 항에 있어서,
    상기 통신 세션을 확립하는 것은 상기 제 2 전력 레벨 통신 프로토콜을 이용하는 것을 포함하고,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 종단점 통신을 용이하게 하는 장치.
  31. 종단점 통신을 용이하게 하는 장치로서,
    제 1 전력 레벨 통신 프로토콜을 이용하여 로컬 버스 노드에 의해, 원격 버스 노드가 이용가능하다고 결정하고;
    상기 로컬 버스 노드에 의해, 제 2 전력 레벨 통신 프로토콜을 이용하여 상기 원격 버스 노드로부터 접속 정보를 획득하는 것으로서, 상기 접속 정보는 상기 원격 버스 노드와 연관된 하나 이상의 원격 종단점들에 대한 접속 정보를 포함하는, 상기 접속 정보를 획득하고; 그리고
    하나 이상의 로컬 가상 종단점들을 생성하기 위해
    동작가능한 통신 모듈을 포함하고,
    상기 하나 이상의 로컬 가상 종단점들 각각은 상기 하나 이상의 원격 종단점들 각각에 대응하고, 상기 원격 종단점은 상기 원격 종단점에 고유한 주지의 네임을 참조하여 기술되는, 종단점 통신을 용이하게 하는 장치.
  32. 제 31 항에 있어서,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 종단점 통신을 용이하게 하는 장치.
  33. 제 31 항에 있어서,
    상기 주지의 네임은 상기 원격 버스 노드를 기술하는 상기 주지의 네임의 제 1 부분, 및 상기 원격 종단점을 기술하는 상기 주지의 네임의 제 2 부분을 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  34. 제 31 항에 있어서,
    상기 주지의 네임은 전송 타입 및 하나 이상의 접속 파라미터들을 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  35. 제 34 항에 있어서,
    상기 전송 타입은,
    블루투스 기반 전송 프로토콜;
    UNIX 기반 전송 프로토콜;
    TCP 기반 전송 프로토콜; 및
    유니버셜 직렬 버스 기반 전송 프로토콜
    중 적어도 하나를 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  36. 제 34 항에 있어서,
    상기 전송 타입은 블루투스 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 단일 피코 넷 구조에 대한 최적화된 접속 정보를 포함하는, 종단점 통신을 용이하게 하는 장치.
  37. 제 34 항에 있어서,
    상기 전송 타입은 TCP 기반 전송 프로토콜이며,
    상기 하나 이상의 접속 파라미터들은 상기 원격 종단점과 연관된 상기 원격 버스 노드로의 최적화된 1 홉 라우팅을 포함하는, 종단점 통신을 용이하게 하는 장치.
  38. 제 31 항에 있어서,
    상기 원격 버스 노드가 이용가능하다는 결정에 응답하여 접속 요청을 자동으로 송신하고; 그리고
    상기 송신된 요청에 응답하여 상기 접속 정보를 수신하기 위해
    동작가능한 트랜시버를 더 포함하는, 종단점 통신을 용이하게 하는 장치.
  39. 제 31 항에 있어서,
    상기 로컬 버스 노드에 의해, 상기 하나 이상의 로컬 가상 종단점들 중 적어도 하나와 통신하기 위한 요청을 로컬 종단점으로부터 수신하고;
    상기 요청을, 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로 송신하고; 그리고
    상기 원격 종단점으로의 로컬 종단점 액세스를 허여하는 액세스 메시지를 상기 하나 이상의 대응하는 원격 종단점들 중 적어도 하나로부터 수신하기 위해
    동작가능한 트랜시버를 더 포함하고,
    상기 통신 모듈은 또한, 상기 액세스 메시지에 응답하여 상기 로컬 종단점과 상기 원격 종단점 간의 통신 세션을 확립하기 위해 동작가능한, 종단점 통신을 용이하게 하는 장치.
  40. 제 39 항에 있어서,
    상기 통신 모듈은 또한, 상기 제 2 전력 레벨 통신 프로토콜을 이용하기 위해 동작가능하고,
    상기 제 2 전력 레벨 통신 프로토콜은 상기 제 1 전력 레벨 통신 프로토콜보다 더 큰 전력량을 사용하는, 종단점 통신을 용이하게 하는 장치.
KR20127018442A 2009-12-15 2010-11-09 애드 혹 피어-투-피어 접속을 위한 분산형 메시지 버스를 이용하는 방법 및 장치 KR101495968B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US28658509P 2009-12-15 2009-12-15
US61/286,585 2009-12-15
US12/900,178 US9043478B2 (en) 2009-12-15 2010-10-07 Methods and apparatus for using a distributed message bus for ad hoc peer-to-peer connectivity
US12/900,178 2010-10-07
PCT/US2010/056035 WO2011075238A1 (en) 2009-12-15 2010-11-09 Methods and apparatus for using a distributed message bus for ad hoc peer-to-peer connectivity

Publications (2)

Publication Number Publication Date
KR20120099775A true KR20120099775A (ko) 2012-09-11
KR101495968B1 KR101495968B1 (ko) 2015-02-25

Family

ID=44144139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20127018442A KR101495968B1 (ko) 2009-12-15 2010-11-09 애드 혹 피어-투-피어 접속을 위한 분산형 메시지 버스를 이용하는 방법 및 장치

Country Status (7)

Country Link
US (1) US9043478B2 (ko)
EP (1) EP2514147B1 (ko)
JP (1) JP5392873B2 (ko)
KR (1) KR101495968B1 (ko)
CN (1) CN102687469B (ko)
ES (1) ES2435920T3 (ko)
WO (1) WO2011075238A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259701A (zh) * 2012-12-04 2013-08-21 中国科学院沈阳自动化研究所 面向复杂生产过程管理系统的消息总线实现方法
US10491458B2 (en) * 2013-01-31 2019-11-26 Dell Products L.P. System and method for reporting peer-to-peer transfer events
KR101471911B1 (ko) * 2013-06-17 2014-12-24 (주) 엔소울즈 분산 접속 방법 및 이를 이용한 메시지 교환 시스템
US20150134481A1 (en) * 2013-11-08 2015-05-14 Qualcomm Incorporated Systems and methods to facilitate joint purchases and track joint purchase ownership distributions
WO2015096120A1 (en) * 2013-12-27 2015-07-02 Intel Corporation Techniques for implementing a secure mailbox in resource-constrained embedded systems
US9244665B1 (en) * 2014-07-17 2016-01-26 Google Inc. Optimized execution of dynamic languages
US10025571B1 (en) 2014-07-17 2018-07-17 Google Llc Optimized execution of dynamic languages
US20160036908A1 (en) * 2014-08-01 2016-02-04 Qualcomm Incorporated Adaptive advertisement by host devices and discovery by embedded devices
EP3704593A1 (en) 2017-11-03 2020-09-09 Coherent Logix, Inc. Memory network processor
US10813169B2 (en) 2018-03-22 2020-10-20 GoTenna, Inc. Mesh network deployment kit
CN114679371B (zh) * 2022-02-24 2023-08-15 中资互联网科技有限公司 一种信息安全通讯一体机

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725311B1 (en) * 2000-09-14 2004-04-20 Microsoft Corporation Method and apparatus for providing a connection-oriented network over a serial bus
US20030137948A1 (en) * 2001-06-19 2003-07-24 Sridhar Komandur Retransmission control in wireless packet data networks
US7577857B1 (en) * 2001-08-29 2009-08-18 3Com Corporation High speed network interface with automatic power management with auto-negotiation
JP2003086233A (ja) 2001-09-07 2003-03-20 Mitsubishi Electric Corp 平板型電池およびその製法
JP2003124862A (ja) 2001-10-19 2003-04-25 Sharp Corp 通信装置
KR100712047B1 (ko) 2002-10-31 2007-04-27 노키아 코포레이션 이동 애드 혹 통신 네트워크를 위한 장치 검출과 서비스발견 시스템 및 방법
US7542138B2 (en) * 2003-07-18 2009-06-02 Chemimage Corporation Sample container and system for a handheld spectrometer and method for using therefor
KR100795441B1 (ko) 2003-10-10 2008-01-16 노키아 코포레이션 짧은 대기시간의 인터럽트 및 제어 신호, 핫플러그 에러 검출 및 복구, 그리고 대역폭 할당을 하는 통신 버스
CN1277361C (zh) * 2003-10-11 2006-09-27 中兴通讯股份有限公司 码分多址基站接收移动台反向信道质量指示的方法
CN1973504A (zh) 2004-06-07 2007-05-30 99有限公司 用于对通信进行路由的方法和装置
JP4735202B2 (ja) 2005-11-15 2011-07-27 Kddi株式会社 アドホックネットワークについてルーティングプロトコルを選択する携帯端末及びプログラム
CN101207621B (zh) 2007-11-29 2010-12-01 上海交通大学 Af-dstc协作通信协议中降低中断概率的功率分配方法
CN101237264A (zh) 2008-03-05 2008-08-06 中科院嘉兴中心微系统所分中心 基于无线传感网的虚拟mimo功率分配传输方案
US8024596B2 (en) * 2008-04-29 2011-09-20 Bose Corporation Personal wireless network power-based task distribution
US9313791B2 (en) * 2009-05-14 2016-04-12 Qualcomm Incorporated System and method for dropping and adding an air interface in a wireless communication system
TW201104561A (en) * 2009-07-23 2011-02-01 Young Optics Inc Projection system and method thereof

Also Published As

Publication number Publication date
CN102687469B (zh) 2015-01-21
JP5392873B2 (ja) 2014-01-22
EP2514147A1 (en) 2012-10-24
CN102687469A (zh) 2012-09-19
EP2514147B1 (en) 2013-09-11
JP2013514001A (ja) 2013-04-22
KR101495968B1 (ko) 2015-02-25
ES2435920T8 (es) 2014-11-06
US9043478B2 (en) 2015-05-26
ES2435920T3 (es) 2013-12-26
US20110145423A1 (en) 2011-06-16
WO2011075238A1 (en) 2011-06-23

Similar Documents

Publication Publication Date Title
KR101495968B1 (ko) 애드 혹 피어-투-피어 접속을 위한 분산형 메시지 버스를 이용하는 방법 및 장치
US11991255B2 (en) Interworking service for the restful internet of things
EP2807868B1 (en) Method and apparatus for automatic service discovery and connectivity
EP3259898B1 (en) Message bus service directory
JP6473500B2 (ja) サービス層を介する第三者サービスへのアクセスを可能にするシステムおよび方法
EP2817942B1 (en) Internet protocol connectivity over a service-oriented architecture bus
JP6397044B2 (ja) 拡張分散リソースディレクトリ
Alam et al. Design and implementation of an Ad Hoc Network among Android smart devices
JP2017525293A (ja) デバイス管理プロトコルを用いるインターワーキングライトウェイトマシンツーマシンプロトコル
US20090157829A1 (en) Peer-to-peer service system and method using e-mail service
KR20150129308A (ko) 서비스 지향 아키텍처 버스를 통한 인터넷 라우팅
EP3114821B1 (en) Method and devices for establishing a connection between a seeker device and a target device
Horozov et al. Moby-a mobile peer-to-peer service and data network
US8738801B2 (en) Methods and apparatus for updating index information while adding and updating documents in a distributed network
Felisberto et al. UDP4US: Universal device pipe for ubiquitous services
JP2014209341A (ja) アンサンブルコンピューティング
Al-Madani et al. A novel mobility-aware data transfer service (MADTS) based on DDS standards
Luo Design and Implement Voice Application over Ad Hoc Networks Using UPnP

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee