KR101411239B1 - 멀티-프로세서 멀티모드 네트워크 디바이스들을 위한 계층적 라우팅 및 인터페이스 선택 - Google Patents

멀티-프로세서 멀티모드 네트워크 디바이스들을 위한 계층적 라우팅 및 인터페이스 선택 Download PDF

Info

Publication number
KR101411239B1
KR101411239B1 KR1020127021901A KR20127021901A KR101411239B1 KR 101411239 B1 KR101411239 B1 KR 101411239B1 KR 1020127021901 A KR1020127021901 A KR 1020127021901A KR 20127021901 A KR20127021901 A KR 20127021901A KR 101411239 B1 KR101411239 B1 KR 101411239B1
Authority
KR
South Korea
Prior art keywords
processor
available
interface
network
remote
Prior art date
Application number
KR1020127021901A
Other languages
English (en)
Other versions
KR20120124458A (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 KR20120124458A publication Critical patent/KR20120124458A/ko
Application granted granted Critical
Publication of KR101411239B1 publication Critical patent/KR101411239B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • 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/12Protocol engines
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/16Performing reselection for specific purposes
    • H04W36/18Performing reselection for specific purposes for allowing seamless reselection, e.g. soft reselection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/18Selecting a network or a communication service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W74/00Wireless channel access
    • H04W74/002Transmission of channel access control information
    • H04W74/004Transmission of channel access control information in the uplink, i.e. towards network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

실시형태들은, 네트워크 연결의 실제 근접성을 추출하는 계층적 라우팅 층을 제공함으로써, 현재 방법들의 결함들을 해결하며 현재와 미래의 무선 통신 디바이스들에 대한 애플리케이션들의 개발을 단순화한다. 애플리케이션은 확립된 실제 연결의 세부사항들을 다루지 않고도 하나의 타입의 네트워크 연결을 요청 및 수신할 수 있다. 계층적 라우팅 층은 컴퓨팅 디바이스 내의 각각의 프로세서의 소프트웨어 아키텍처 내에 제공된다. 상기 계층적 라우팅 층은 프록시 네트워크 인터페이스들을 이용하여 애플리케이션들로부터 모뎀 상에서의 네트워크 연결의 실제 근접성을 추출한다. 각각의 프로세서상에서의 계층적 라우팅 층들은 애플리케이션 네트워크 요청에 대하여 최상의 네트워크 인터페이스를 식별하기 위해 협력한다. 상기 라우팅 층은 네트워크 인터페이스가 애플리케이션 호스트 프로세서상에 제공되었는지 또는 다른 프로세서상에 제공되었는지의 여부에 상관없이 간단한 방식으로 네트워크 인터페이스에 대한 애플리케이션 요청에 대한 응답을 가능하게 한다.

Description

멀티-프로세서 멀티모드 네트워크 디바이스들을 위한 계층적 라우팅 및 인터페이스 선택 {HIERARCHICAL ROUTING AND INTERFACE SELECTION FOR MULTI-PROCESSOR MULTIMODE NETWORK DEVICES}
관련 출원들
본 출원은 2010년 1월 22일에 "Hierarchical Routing and Interface Selection for Multi-processor Multimode Network Devices" 라는 명칭으로 출원된 미국 특허 가출원 제 61/297,338 호를 우선권 주장하며, 상기 가출원의 전체 내용들은 여기에서 참조로서 포함된다.
발명의 기술분야
본 발명은 일반적으로 컴퓨팅 디바이스들에서의 네트워킹에 관한 것이고, 특히, 멀티-프로세서 멀티모드 네트워크 디바이스들에서 네트워크 인터페이스들을 선택하는 방법들 및 디바이스들에 관한 것이다.
역사적으로, 데이터 카드들, 셀룰러 전화기들, 무선 동글들 (dongles) 등과 같은 무선 통신 디바이스들은, 모뎀으로서의 기능과 사용자 인터페이스들과 애플리케이션들을 위한 프로세싱 전력을 제공하는 기능 양자를 수행하는 단일 프로세서를 이용하여 개발되어 왔다. 그 결과, 기본 아키텍처가 단일 대안만을 제공하였으므로, 애플리케이션을 지원하기 위해 특정 네트워크 인터페이스를 선택할 필요는 없었다. 그러나, 네트워크 속도들이 증가하고, 모바일 컴퓨팅 디바이스들 상에서의 실행에 이용가능한 애플리케이션들의 포트폴리오들이 확장되면, 네트워크 연결들을 관리하기 위한 종래의 아키텍처들은 비효율적이 된다.
대부분의 현대의 무선 통신 디바이스들은 이제 별도의 애플리케이션 프로세서를 특징으로 한다. 이러한 별도의 애플리케이션 프로세서는 스마트폰들과 같은 모바일 멀티미디어 컴퓨팅 디바이스들용으로 점점 인기를 끌고 있는 어드밴스드 (advanced) 애플리케이션들의 증가된 중앙 프로세서 유닛 컴퓨팅 요구들을 처리해야 한다. 이렇게 하여, 예를 들면, 스마트폰들, 개인 휴대 정보 단말기들 (PDA), 넷북들등과 같은, 애플리케이션 프로세서와 적어도 하나의 모뎀 프로세서가 특징인 무선 통신 디바이스들은 이제 지극히 평범한 디바이스들이다.
새로운 기술들이 진화를 계속하면서, 종래의 무선 통신 디바이스들은 다수의 통신 네트워크들 전체에 걸쳐 심리스 사용자 로밍 (seamless user roaming) 과 이동성을 지원하기 위해 다양한 타입들의 네트워크 기술들을 포함하는 것으로 예상된다. 더욱 신속한 개발과 상품 통합을 가능하게 하기 위해 상이한 무선 기술들이 멀티-모뎀 디바이스 아키텍처들을 포함한 여러 가지의 상이한 방식들로 통합될 수 있다. 따라서, 무선 통신 디바이스들은 다수의 모뎀 프로세서들과 그 모뎀 프로세서들의 다양한 상호연결들의 관점에서 볼 때 점점 더 복잡해지고 있으며, 이것은 그러한 디바이스들상에서 사용되는 애플리케이션들의 개발을 복잡하게 한다.
실시형태들은 컴퓨팅 디바이스 내의 애플리케이션에 대한 네트워크 연결을 선택하는 시스템들과 방법들을 포함한다. 다양한 실시형태들은 네트워크 액세스 요청에 대응하여 최상의 네트워크 인터페이스를 선택하기 위해 몇몇 프로세서들 중에서의 계층적 절차를 포함한다.
추가의 실시형태들은 애플리케이션으로부터 네트워크 액세스 요청을 수신하고 이러한 네트워크 액세스 요청을 프록시 인터페이스를 통하여 제 2 프로세서들 또는 원격 프로세서들로 포워딩하는 제 1 프로세서 또는 로컬 프로세서를 포함한다. 각각의 제 2 프로세서 또는 원격 프로세서는 네트워크 액세스 요청을 최상으로 충족시키는 네트워크 인터페이스를 선택하여 이러한 네트워크 인터페이스에 관한 정보를 제 1 프로세서로 리턴시킬 수도 있다. 제 1 프로세서는 자체 인터페이스들과 임의의 제 2 프로세서들에 의해 선택된 인터페이스들을 평가하여 전반적으로 최상의 네트워크 인터페이스를 결정할 수도 있다.
추가의 실시형태들은 제 3 프로세서들로 네트워크 액세스 요청을 포워딩하는 제 2 프로세서들과 연관된다. 제 2 프로세서들과 유사하게, 제 3 프로세서들은 네트워크 액세스 요청을 최상으로 충족시키는 네트워크 인터페이스를 선택하여 이러한 네트워크 인터페이스에 관한 정보를 제 2 프로세서(들)로 리턴시킬 수도 있다. 제 2 프로세서들은 제 3 프로세서들로부터 리턴된 정보를 제 2 프로세서의 선택 프로세스에서 고려할 수도 있다. 이러한 계층적 선택 프로세스는 프로세서들의 다수의 레벨들을 통하여 확장될 수도 있다.
추가의 실시형태들은 로컬 프로세서와 선택된 전반적으로 최상의 네트워크 인터페이스 사이의 네트워크 구성을 개시하는 것과 연관될 수 있다. 연결 설정은 애플리케이션 또는 관리자에 의해 개시될 수도 있거나, 자동으로 개시될 수도 있다. 그 결과로 발생되는, 로컬 프로세서와 선택된 최상의 네트워크 인터페이스 사이의 데이터 경로는 다수의 프로세서들 전체에 걸친 인터페이스들의 체인일 수도 있다.
여기에 포함되고 본 명세서의 일부를 구성하는 첨부된 도면들은 본 발명의 예시적인 실시형태들을 도시하며, 상기의 일반적인 설명과 하기의 상세한 설명과 함께 발명의 특징들을 설명하기 위해 사용된다.
도 1 은 다양한 실시형태들과 함께 사용하기 적합한 컴퓨팅 아키텍처에 대한 시스템 아키텍처 다이어그램이다.
도 2 내지 도 7 은 다양한 실시형태들과 함께 사용하기 적합한 애플리케이션 프로세서와 하나 이상의 모뎀 프로세서들을 포함하는, 컴퓨팅 디바이스들의 대안적인 구성들의 시스템 및 소프트웨어 아키텍처 다이어그램들이다.
도 8a 는 애플리케이션 인터페이스 요청에 대한 응답으로 네트워크 인터페이스를 선택하는 실시형태 방법의 프로세스 흐름도이다.
도 8b 는 도 8a 에 도시된 방법의 일부의 프로세스 흐름도이다.
도 9 는 애플리케이션 프로세서로부터의 네트워크 인터페이스 정보 요청들에 응답하는 방법의 일 실시형태의 프로세스 흐름도이다.
도 10 은 일 실시형태에서의 사용에 적합한 모바일 디바이스의 컴포넌트 블록도이다.
도 11 은 일 실시형태에서의 사용에 적합한 구성에서의 모바일 디바이스에 커플링된 퍼스널 컴퓨터의 컴포넌트 블록도이다.
다양한 실시형태들이 첨부된 도면들을 참조하여 상세히 설명될 것이다. 가능한 경우에, 도면들 전체에 걸쳐서 동일하거나 유사한 부분들을 참조하기 위해 동일한 참조 부호들을 사용할 것이다. 특별한 예들과 구현들에 대한 참조들은 예시적인 목적들을 위한 것이며, 발명 또는 청구항들의 범위를 제한하고자 하는 것은 아니다.
여기에서 사용된 "예시적인" 이라는 단어는 " 예, 경우 또는 실례로서 사용된" 을 의미한다. 여기에서 "예시적인" 것으로 설명된 임의의 실시형태는 다른 실시형태들에 대하여 반드시 우선적이거나 유리한 것으로 해석되는 것은 아니다.
여기에서 사용된 "모바일 디바이스" 및 "컴퓨팅 디바이스" 라는 용어들은 퍼스널 컴퓨터들, 랩탑 컴퓨터들, 셀룰러 전화기들, 개인 휴대 정보 단말기들 (PDA's), 팜탑 컴퓨터들, 무선 전자 메일 수신기들 (예를 들면, Blackberry® 및 Treo® devices), 멀티미디어 인터넷 인에이블 셀룰러 전화기들 (예를 들면, Blackberry Storm®), 글로벌 포지셔닝 시스템 (GPS) 수신기들, 무선 게임 컨트롤러들 및 프로그래머블 프로세서, 메모리 및 하나 이상의 네트워크 인터페이스들을 포함하는 유사 개인 전자 디바이스들 중 임의의 하나 또는 모두를 지칭한다.
새로운 무선 기술들이 진화를 계속함에 따라, 종래의 무선 통신 디바이스들은 다수의 통신 네트워크들에 걸쳐서 심리스 사용자 로밍과 이동성을 지원하기 위해 다양한 타입들의 네트워크 기술들을 포함하는 것으로 예상된다. 더욱 신속한 개발과 상품 통합을 가능하게 하기 위해 상이한 무선 기술들이 멀티-모뎀 디바이스 아키텍처들을 포함한 여러 가지의 상이한 방식들로 통합될 수 있다. 따라서, 무선 통신 디바이스들은 점점 더 복잡해지고 있으며, 이것은 그러한 디바이스들상에서 사용되는 애플리케이션들의 개발을 복잡하게 한다. 현재의 애플리케이션 설계 기술들과 소프트웨어 아키텍처들을 사용함으로써, 애플리케이션 개발자들은 특정 애플리케이션 네트워킹 요구들에 대한 최적 연결을 제공할 수 있는 다수의 모뎀 인터페이스들을 지속적으로 추적해야하는 어려운 과제에 직면한다. 또한, 예를 들어 새로운 통신 기술들 또는 모뎀들의 추가와 같은 컴퓨팅 디바이스의 아키텍처의 변화들은 광범위한 애플리케이션 재기록 (rewriting) 및 테스팅을 요구할 수도 있다. 이것은 애플리케이션들을 위한 다수의 통신 서비스들을 제공하기 위하여 상이한 네트워크 기술들에 의존하는 네트워킹 애플리케이션들에 대해서 특히 적용된다.
현재와 미래의 컴퓨팅 디바이스들에서 발생 가능한 복잡성이, 3 개의 모뎀 프로세서들 (즉, 모뎀 프로세서들 (1, 2, 3)) 에 연결된 애플리케이션 프로세서 (10) 를 포함하는 컴퓨팅 디바이스 아키텍처를 보여주는, 도 1 에 도시된다. 모뎀 프로세서들 (1, 2, 3) 각각은 내부 모뎀을 포함할 수도 있으며, 예를 들어 제 2 모뎀들 (1, 2, 3) 과 같은 제 2 모뎀에 연결될 수도 있다. 예를 들어 주변 디바이스들 (1, 2, 3) 과 같은 여러 가지의 주변 디바이스들은, 예를 들어 주변 디바이스 (1) 의 경우에서와 같이 애플리케이션 프로세서 (10) 로의 연결, 모뎀 프로세서 (1) 에 연결된 주변 디바이스 (2) 의 경우에서와 같이 모뎀 프로세서로의 연결, 제 2 모뎀 (3) 에 연결된 주변 디바이스 (3) 와 같이 제 2 모뎀들로의 연결과 같은 다양한 연결들을 통해, 컴퓨팅 디바이스에 연결될 수도 있다. 애플리케이션 프로세서 (10) 에 모뎀 프로세서들을 결합하는 데 있어서의 그러한 융통성은 매우 다양한 상이한 종류들의 컴퓨터 아키텍처들의 구축을 가능하게 한다. 따라서, 애플리케이션 개발자들은 네트워크 연결성을 요구하는 애플리케이션에 대해 구현될 수도 있는 모든 가능한 컴퓨터 아키텍처들을 예측할 수 없다.
다양한 실시형태들은, 네트워크 연결의 실제 근접성을 추출하는 계층적 라우팅 층을 제공함으로써, 전술한 현재 방법들의 결함들을 해결하며 현재와 미래의 무선 통신 디바이스들에 대한 애플리케이션들의 개발을 단순화한다. 다양한 실시형태들을 사용함으로써, 애플리케이션은 확립된 실제 연결의 세부사항들 또는 컴퓨팅 디바이스의 구성에 대해 다루거나 아니면 연관되지 않고도 특정 타입의 네트워크 연결을 요청 및 수신할 수 있도록 구성될 수 있다.
다양한 실시형태들에서, 컴퓨팅 디바이스의 하드웨어 아키텍처 및 프로세서 토폴로지는 애플리케이션들에게는 은닉되어 (hidden) 있다. 애플리케이션의 관점에서, 애플리케이션은 동일한 애플리케이션 프로그래밍 인터페이스들 (API) 을 사용하고, 예를 들어 단일 모뎀 컴퓨팅 디바이스들에서 일반적인 방법들과 같은, 현재 정책기반의 네트워크 액세스 라우팅 방법들과 동일한 인터페이스 거동을 가정하여 네트워크 연결을 액세스할 수 있다. 네트워킹 애플리케이션의 관점에서, 애플리케이션은 특정 네트워크에 연결하는 네트워크 인터페이스를 관리하고 그 네트워크 인터페이스와 연관된 소켓들로 데이터를 판독/기록한다. 계층적 라우팅 층은 컴퓨팅 디바이스내의 프로세서들 (즉, 애플리케이션 프로세서 및 하나 이상의 모뎀 프로세서들) 각각의 소프트웨어 아키텍처 내에 제공된다
상기 계층적 라우팅 층은 프록시 네트워크 인터페이스들을 이용하여 애플리케이션들로부터 모뎀 상에서의 네트워크 연결의 실제 근접성을 추출한다. 각각의 디바이스 프로세서상에서의 계층적 라우팅 층들은 특정 애플리케이션 네트워크 요청에 대하여 최상의 네트워크 인터페이스를 식별하기 위해 협력한다. 계층적 라우팅 층은 또한 네트워크 인터페이스가 애플리케이션 호스트 프로세서, 다른 프로세서 (예를 들어, 모뎀 프로세서), 또는 중개 프로세서를 통하여 또 다른 프로세서상에 제공되었는지의 여부에 상관없이 간단한 방식으로 애플리케이션 요청이 네트워크 인터페이스에 연결되는 것을 가능하게 한다.
"프록시 네트워크 인터페이스" 는 메인 애플리케이션 프로세서상에 위치하며, 또 다른 프로세서상에 위치한 실제 네트워크 인터페이스를 나타내는 애플리케이션이다. 하나 이상의 프록시 인터페이스들이 있을 수 있으며, 각각의 프록시 인터페이스는 제 2 프로세서상의 상이한 실제 인터페이스를 나타낸다. 일반적으로, 프록시 인터페이스는 동일한 인터넷 프로토콜 (IP) 구성을 복제하여 대응하는 실제 네트워크 인터페이스에 의해 지원되는 동일한 네트워크 동작들을 허용한다.
참조의 용이성을 위하여, 애플리케이션이 실행되는 프로세서는 애플리케이션의 관점에서 로컬이므로 여기에서 "로컬 프로세서" 라고 지칭된다. 그러므로, 네트워크 인터페이스가 애플리케이션과 동일한 프로세서에 위치하면, 네트워크 인터페이스는 로컬 프로세서상에서 사용가능하다고 한다.
다양한 실시형태들에서, 애플리케이션이 임의의 네트워크 타입 (예를 들면, 통신 네트워크 기술) 으로의 연결을 요청하면, 애플리케이션 프로세서상의 라우팅 층은 애플리케이션의 요구들에 대해 최상으로 매칭되는 인터페이스를 선택하기 위하여 계층적 인터페이스 선택 절차를 수행한다. 아래에서 도 8 및 도 9 를 참조하여 더욱 상세히 설명된 이러한 인터페이스 선택 절차는 애플리케이션 프로세서로 하여금, 다수의 프로세서들에서 사용가능한 복수의 인터페이스들 중에서 애플리케이션의 식별된 네트워크 파라미터들에 최상의 매칭을 제공하는 하나의 인터페이스로 리턴할 수 있도록 한다.
선택된 최상의 인터페이스로의 애플리케이션의 연결은 선택된 인터페이스가 로컬인지 또는 또 다른 프로세서상에서 사용가능한지의 여부에 의존한다. 이러한 네트워크 연결이 로컬 프로세서로부터 직접적으로 액세스 가능하면 (즉, 네트워크 인터페이스가 애플리케이션과 동일한 프로세서상에 위치하면), 실제 네트워크 인터페이스에 대한 핸들은 애플리케이션으로 리턴된다. 네트워크 연결이 상이한 프로세서로부터 액세스 가능하면, 즉, 인터페이스가 상이한 프로세서상에 위치하면, 프록시 인터페이스에 대한 핸들은 애플리케이션으로 리턴된다. 네트워크 연결이 원격 프로세서상에서 사용가능하기는 하지만, 이러한 프록시 인터페이스는 애플리케이션이 원래 요청한 동일한 물리적 네트워크를 나타내며 그 동일한 물리적 네트워크로 연결된다. 다시 말하면, 네트워크가 로컬 프로세서를 통하여 연결되면, 애플리케이션은 실제 네트워크 인터페이스로 직접 연결된다. 그러나, 네트워크가 원격 프로세서를 통하여 연결되면, 애플리케이션은 프록시 인터페이스로 연결될 것이다. 둘 중 어느 경우에도, 애플리케이션은 네트워크 연결의 실제 위치를 인식하지 못하며, 연결의 근접성을 알아야할 필요 없이 애플리케이션에 제공된 네트워크 인터페이스를 계속 사용한다.
주지된 바와 같이, 프로세서들은 Rm 타입 인터페이스 및 Um 타입 인터페이스의 2 개 타입의 인터페이스들을 가질 수도 있다. Um 타입 인터페이스는 인터넷 또는 다른 로컬 또는 글로벌 서비스 도메인들로의 연결을 제공하는, 예를 들어 무선 WAN/LAN/MAN 네트워크와 같은, 무선 네트워크로 연결된다. Rm 타입 인터페이스들은 상이한 타입들의 상호 연결들을 통하여 주변 디바이스들에 연결되는 인터페이스들이다. 이러한 Rm 타입의 상호 연결들은, 예를 들면, 유니버설 직렬 버스 (USB), 직렬 주변장치 인터페이스 (SPI), 범용 비동기 송/수신기 (UART), 보안 디지털 입력 출력 (SDIO), 등의 직렬 유선 연결들, 예를 들면, 블루투스 (BT) 인터페이스, 또는 공유 메모리와 같은 직렬 무선 연결들일 수도 있다. Rm 타입 인터페이스는, 예를 들면, BT PAN 및 WiFi 와 같은 다른 무선 연결을 위해 사용될 수 있다. Rm 인터페이스들은 네트워크 연결을, 예를 들면, 범용 집적 회로 카드들 (UICC), 랩탑들, 다른 코-호스팅된 (co-hosted) 프로세서들 등과 같은 주변 디바이스로 확장하기 위해 사용될 수 있다. 다수의 Rm 인터페이스들이 네트워크 어드레스 변환 (NAT) 또는 IP 라우팅 메카니즘들을 이용하여 하나의 Um 타입 인터페이스에 의해 제공될 수도 있지만, 각각의 Rm 인터페이스는 IP 구성을 획득하기 위하여 고유의 Um 인터페이스에 연결된다. Um 타입 인터페이스가 Rm 타입 인터페이스에 배타적으로 연결되면, 인터페이스들은 패킷 라우팅 모듈을 통하여 패킷들을 라우팅하지 않고, 효율적인 패킷 포워딩을 위해 서로 브리지될 수 있다.
프록시 인터페이스들은 Rm 인터페이스들로 연결될 수도 있으며, 그러므로, 연결중인 모뎀 프로세서에 주변 디바이스로서의 역할을 할 수도 있다. 인터페이스의 다른 면에서는, 프록시 인터페이스는 액티브하고 유용한 IP 구성을 제공하는 Um 타입 인터페이스로서의 역할을 할 수도 있다. 이러한 프록시 인터페이스들은 로컬 프로세서에서 실행되는 애플리케이션에 의해 직접적으로 사용될 수 있거나, 예를 들면, 랩탑 또는 다른 모뎀과 같은 로컬 프로세서 외부의 다른 주변 디바이스들에 의해 사용될 수 있다. 그러므로, 다양한 실시형태들로 컴퓨팅 디바이스에서 프로세서 토폴로지의 전체 네트워크를 구축하는 것이 가능하다. 이러한 프로세서 토폴로지는 상이한 네트워크 기술들을 액세스하기 위해 임의의 개수의 주변 디바이스들이 임의의 개수의 사용가능한 모뎀 프로세서들에 연결되도록 허용할 수 있다. 프로세서 토폴로지는 또한 임의의 개수의 모뎀/애플리케이션 프로세서들이 직렬 또는 병렬 방식으로 함께 연결될 수 있도록 한다. 이렇게 하여, 애플리케이션들은 원격 프로세서들을 통해 액세스 가능한 무선 네트워크들에 액세스하여, 컴퓨팅 디바이스 내의 임의의 프로세서 (모뎀 프로세서들 또는 애플리케이션 프로세서 중 어느 하나) 에서 실행될 수 있다,
이렇게 하여, 다양한 실시형태들은 애플리케이션 개발을 더욱 복잡하게 만들거나 애플리케이션들이 특정 디바이스 구성들을 위해 개발되는 것을 요구하지 않고, 애플리케이션들이 도 2 내지 도 7 에 도시한 디바이스 아키텍처 구성들 중 어느 하나에서 네트워크 인터페이스들을 요청하고 획득할 수 있도록 한다.
도 2 내지 도 7 에 있어서, 다양한 실시형태들은 컴퓨팅 디바이스내의 애플리케이션 프로세서와 각각의 모뎀 프로세서의 소프트웨어 프로토콜 스택 (20) 내에 포함된 라우팅 층 (22) 의 형태로 구현될 수도 있다.
도 2 는 예를 들면, 랩탑 컴퓨터 (12) 와 같은 단말기가 상호연결 (24) 에 의해 모뎀 프로세서 (1) 에 커플링된 구현을 위한 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시한다. 이러한 아키텍처에서, 상호연결 (24) 은, 무선 로컬 영역 네트워크/무선 중간 영역 네트워크 (WLAM/WMAN) (32) 에 연결하기 위한 무선 (Um) 인터페이스 (28) 로의 결합을 위한 인터페이스 브리지 (27) 를 제공할 수 있는 실제 (Rm) 인터페이스 (26) 를 통하여 모뎀 프로세서 (1) 에 연결될 수도 있다. 모뎀 프로세서 (1) 는 무선 광역 네트워크 (WWAN) (34) 에 연결하기 위한 제 2 무선 (Um) 인터페이스 (30) 를 포함할 수도 있다. 도 2 내지 도 7 에 도시된 인터페이스들은 USB, SPI, UART, SDIO, BT, 공유 메모리 및 UICC 를 포함한 임의의 알려진 시그널링 또는 데이터 인터페이스일 수도 있다.
도 3 은 모뎀 프로세서 (1) 에 커플링된 애플리케이션들 프로세서 (10) 를 포함하는 구현을 위한 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시한다. 이 구현에서, 애플리케이션들 프로세서 (10) 는 로컬 실제 (Rm) 인터페이스 (40), 무선 인터페이스 (42), 및 프록시 인터페이스 (44) 를 포함한다. 모뎀 프로세서 (1) 의 연결은 모뎀 프로세서 (1) 로의 프록시 인터페이스 (44) 와 데이터 인터페이스 (26) 를 통하여 상호연결 (46) 에 의하여 이루어진다. 데이터 인터페이스 (26) 는 무선 인터페이스 (30) 로의 인터페이스 브리지 (29) 를 제공할 수도 있다.
도 4 는 도 3 에 도시된 구현과 유사한 구현을 위한 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시하며, 랩탑 컴퓨터 (12) 로의 상호연결 (24) 이 추가된다. 인터페이스 브리지 (41) 는 실제 인터페이스 (40) 를 프록시 인터페이스 (44) 로 연결한다. 도 5 는 도 4 에 도시된 구현과 유사한 구현을 위한 하드웨어 및 소프트웨어 아키텍처를 도시하며, 모뎀 프로세서 (1) 는 다수의 인터페이스 브리지들 (29, 49) 과, 애플리케이션 프로세서 (10) 의 프록시 인터페이스들 (44, 48) 로의 다수의 상호연결들 (46, 47) 을 포함한다.
도 6 은 애플리케이션 프로세서 (10) 가 4 개의 모뎀 프로세서 (즉, 모뎀 프로세서들 (1 내지 4)) 에 커플링된 구현을 위한 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시한다. 이 아키텍처에서, 애플리케이션 프로세서 (10) 는 모뎀 프로세서 (1) 및 모뎀 프로세서 (3) 에 직접 연결된다. 모뎀 프로세서 (2) 는 상호연결을 통하여 모뎀 프로세서 (1) 에 연결되고, 모뎀 프로세서 (4) 는 상호연결을 통하여 모뎀 프로세서 (3) 에 연결된다. 이렇게 하여, 애플리케이션 프로세서 (10) 는 모뎀 프로세서들 (1 및 3) 각각을 통한 프록시 연결들을 통해서만 모뎀 프로세서들 (2, 4) 에 연결될 수 있다.
도 7 은 도 6 에 도시된 구현과 유사한 구현을 위한 컴퓨터 하드웨어 및 소프트웨어 아키텍처를 도시하며, 모뎀 프로세서 (3) 가 애플리케이션 프로세서 (10) 에 연결된 2 개의 연결들 (52, 54) 을 포함하는 것이 추가된다. 이 구현에서, 애플리케이션 ("app 1") (50) 은 모뎀 프로세서상에서 호스팅된다. 이 구성에서, 프록시 연결 (52) 은 애플리케이션 프로세서 (10) 에 의해 제공된 인터페이스로의 연결을 위하여 모뎀 프로세서 (3) 상에 제공된다.
로컬 프로세서상의 애플리케이션이 네트워크 인터페이스를 요청하면, 로컬 프로세서상의 라우팅 층 (22) 은 애플리케이션으로 리턴될 특정 네트워크 인터페이스를 선택하기 위하여 계층적 라우팅 알고리즘을 구현할 수도 있다. 계층적 라우팅 알고리즘은 컴퓨팅 디바이스 내의 각각의 프로세서의 라우팅 층 내에 계층적 라우팅 모듈 (HRM) 의 형태로 구현될 수도 있다. 프로세서의 각각의 라우팅 층들에서 HRM 에 의해서 계층적 라우팅 알고리즘 내에서 실행될 수도 있는 동작들의 예는 아래에 설명된 도 8a, 8b 및 9 에 도시된다.
도 8a 는 로컬 프로세서 (즉, 네트워크 연결을 요청하는 애플리케이션을 호스팅하는 프로세서) 내에서 실행될 수도 있는 계층적 라우팅 알고리즘의 예시적인 방법 (100) 을 도시한다. 단계 (102) 에서, 프로세서는 특정 네트워크로의 연결에 대한 애플리케이션 요청을 수신한 것에 대한 응답으로 계층적 라우팅 알고리즘을 개시할 수도 있다. 애플리케이션의 네트워크 연결 요청은 예를 들면, 선호 기술 (예를 들면, 셀룰러, WiFi, 블루투스, 등.), 데이터 레이트 요건들, 서비스 품질 (QOS), 원하는 네트워크 능력, 등과 같은 네트워크 선택 정책 파라미터들을 포함할 수도 있다. 단계 (104) 에서, 로컬 프로세서는 프로세서의 구성들을 평가하고 로컬 프로세서에 직접 연결된 사용가능한 프로세서들의 리스트 {Pr} 를 열거할 수도 있다. 단계 (106) 에서, 로컬 프로세서는 로컬 프로세서 자체의 사용가능한 네트워크 인터페이스들의 리스트를 열거할 수도 있다. 이 리스트는 실제 인터페이스들 {Ir} 및 프록시 인터페이스들 {Ip} 의 리스트를 포함할 수도 있다. 루프 스패닝 (loop spanning) 단계들 (108 내지 112) 에서, 로컬 프로세서는, 사용가능한 프로세서들의 리스트 {Pr} 내의 각각의 프로세서 x 에 대하여, {Ipx} 라고 지칭되는, 각각의 직접 연결된 원격 프로세서상의 인터페이스를 나타내는 모든 프록시 인터페이스들의 리스트를 열거할 수도 있다. 다시 말하면, 단계 (108) 에서, 로컬 프로세서는 사용가능한 직접 연결된 프로세서들 중 특정한 하나 (x) 를 평가를 위해서 선택하고, 단계 (110) 에서, 그 프로세서에 대해, 인터페이스를 나타내는 모든 프록시 인터페이스들의 리스트 {Ipx} 를 열거하고, 최종 프로세서 x 가 평가될 때까지 (즉, 판정 단계 (112) = "예" 가 될 때까지) 이러한 동작들을 반복할 수도 있다.
루프 스패닝 단계들 (114 내지 122) 에서, 로컬 프로세서는 애플리케이션을 위한 최상의 인터페이스를 선택하기 위해 사용될 수 있는 네트워크 인터페이스 적합성 정보를 각각의 연결된 프로세서로부터 획득할 수도 있다. 상세히 설명하면, 단계 (114) 에서, 로컬 프로세서는 직접 연결된 프로세서들 중 하나 (x) 를 평가를 위해서 선택할 수도 있다. 단계 (116) 에서, 로컬 프로세서는 네트워크 선택 정책 파라미터들의 모두를 포함한 인터페이스 선택 요청을 {Ipx} 내의 프록시 인터페이스들 중 하나 (g) 를 통하여 선택된 프로세서로 포워딩할 수도 있다. 선택된 프록시 인터페이스는 현재 사용가능한 임의의 인터페이스일 수도 있다 (즉, 프록시 인터페이스는 세트 {Ipx} 로부터 임의로 선택될 수도 있다). 로컬 프로세서에 커플링된 프로세서들이 없는 경우, (즉, 사용가능한 프로세서들의 리스트 {Pr} 가 널 세트이면), 단계들 (116 내지 118) 은 생략될 것이다. 단계 (118) 에서, 로컬 프로세서는 선택된 프로세서 x 로부터 그 프로세서상에서 사용가능한, 네트워크 선택 정책 파라미터들에 최상으로 매칭되는 인터페이스에 관한 정보를 다시 수신할 것이다. 이 정보는, 대응하는 (세트 {Ipx} 중의 인터페이스들 중 하나인) 프록시 인터페이스 Mpi 로 매핑되는 인터페이스 식별자인 최상으로 매칭되는 인터페이스 Mi; 및 네트워크 인터페이스가 요청된 네트워크 정책을 지원할 수 있는 정도를 나타내는 정수 값일 수도 있는 매치 인덱스 I 를 포함할 수도 있다. 일 실시형태에서, 식별된 네트워크 인터페이스가 네트워크 선택 정책 파라미터들에 잘 매칭될수록, 매치 인덱스 I 의 값은 높아진다. 매치 인덱스 값을 제공하는 것은 기존의 네트워크 조건들에서 애플리케이션의 네트워크 정책 파라미터들을 최적으로 매칭하는 복수의 모뎀 프로세서들을 통해 사용가능한 복수의 네트워크 인터페이스들 중에서 사용가능한 네트워크 인터페이스를 식별하는 것을 용이하게 한다.
도 9 를 참조하여 아래에 설명한 바와 같이, 단계 (118) 에서 로컬 프로세서로 다시 보고된 정보는 라우팅 층 라우팅 알고리즘에서 선택된 프로세서 x 에 의해 생성될 수도 있다. 단계 (118) 에서 로컬 프로세서로 다시 보고된 정보는 단계 (120) 에서 4 개의-튜플 [x, Mpi, Mi, I] 로서 로컬 프로세서 라우팅 층에 의해 저장될 수도 있다. 이 4 개의-튜플 [x, Mpi, Mi, I] 값은 선택된 프로세서 x 가 매치 인덱스 I 를 가진 프록시 인터페이스 Mpi 를 통하여 원하는 네트워크 연결을 제공할 수 있다는 것과, 원격 프로세서 상의 인터페이스 Mi 가 이러한 연결을 제공하기 위해 사용될 것이라는 것을 나타낸다.
판정 단계 (122) 에서, 로컬 프로세서는 선택된 프로세서가 리스트 {Pr} 내의 최종 프로세서인지의 여부를 판정한다. 평가할 또 다른 프로세서가 있는 경우, (즉, 판정 단계 (122) = "아니오"), 프로세서는 리스트 {Pr} 내에서 다음 프로세서 x 를 선택하기 위해 단계 (114) 로 리턴할 수도 있다.
모든 프로세서들이 평가되면 (즉, 판정 단계 (122) = "예"), 루프 스패닝 단계들 (124 내지 130) 에서 프로세서는 각각의 인터페이스 (즉, 리스트 {Ir}) 내의 로컬 프로세서에서 사용가능한 인터페이스들) 를 평가할 수도 있다. 상세히 설명하면, 단계 (124) 에서, 로컬 프로세서는 로컬 프로세서에 연결된 실제 인터페이스들의 리스트 {Ir} 내의 하나 (h) 의 인터페이스를 선택할 수도 있다. 단계 (126) 에서, 선택된 인터페이스에 대한 매치 인덱스 I 값을 결정하기 위해 네트워크 선택 정책 파라미터들은 선택된 인터페이스 h 특징들에 대조하여 평가된다. 원하는 네트워크 능력과 네트워크 정책 파라미터들에 대한 로컬 인터페이스들의 평가는 통상의 기술을 가진 당업자에게 잘 알려진 여러 가지 방법들 중 임의의 하나를 사용하여 이루어질 수 있다. 로컬 인터페이스가 인터페이스 선택 요청을 충족시키는 정도에 관한 정보는 4 개의-튜플 [0, Null, h, I] 값으로 저장될 수도 있다. 이 4 개의-튜플 [0, Null, h, I] 값은 ("0" 값으로 나타낸) 로컬 프로세서가 매치 인덱스 I 값을 가지는 실제 인터페이스 h 를 이용하여 원하는 네트워크 연결을 지원할 수 있다는 것을 나타낸다. 판정 단계 (130) 에서, 로컬 프로세서는 선택된 로컬 인터페이스 h 가 리스트 {Ir} 내에서 최종 로컬 인터페이스인지를 판정한다. 평가할 또 다른 로컬 인터페이스가 있다면 (즉, 판정 단계 (130) = "아니오"), 프로세서는 리스트 {Ir} 내에서 다음 로컬 인터페이스 h 를 선택하기 위해 단계 (124) 로 리턴할 수도 있다.
모든 로컬 인터페이스들이 평가되면 (즉, 판정 단계 (130) = "예"), 로컬 프로세서는 단계 (132) 에서 사용되기 위해 선택된 가장 높은 매치 인덱스 I 를 가진 인터페이스를 식별하기 위해, 저장된 4 개의-튜플 값들을 평가한다. 단계 (132) 의 일부로서, 선택된 인터페이스의 4 개의-튜플 내의 정보는 메모리로부터 리콜된다.
판정 단계 (134) 에서, 로컬 프로세서는, 예를 들면, 선택된 인터페이스가 로컬임을 나타내는, 프로세서 ID (즉, 4 개의-튜플의 첫 번째 값) 가 "0" 인지 아닌지의 여부를 판정함으로써, 선택된 인터페이스가 원격 인터페이스 인지 또는 로컬 인터페이스인지를 판정한다. 선택된 인터페이스가 로컬 인터페이스이면 (즉, 판정 단계 (134) = "예"), 단계 (136) 에서, 선택된 인터페이스의 네트워크 구성은 네트워크 정의된 방식으로 개시된다.
선택된 인터페이스가 원격 인터페이스이면 (즉, 판정 단계 (134) = "아니오" 이고 프로세서 ID 는 "0" 이 아닌 값이면), 단계 (138) 에서, 프록시 인터페이스 Mpi 는 원격 프로세서와 연관되도록 구성된다. 프록시 인터페이스 Mpi 의 이 구성은 프록시 인터페이스를 구성하고 원격 프로세서 (즉, 원격 모뎀) 의 선택된 인터페이스로의 연결을 확립함으로써 이루어질 수도 있다.
단계 (138) 에서, 다양한 실시형태들은 프록시 인터페이스 Mpi 와 선택된 인터페이스 Mi 사이에 연결 설정을 개시하기 위한 상이한 방법들을 구현할 수도 있다. 제 1 방법에서, 애플리케이션 또는 연결 관리자는 연결 설정을 개시할 수도 있다. 계층적 라우팅 모듈 (HRM) 에 의해 리턴된 선택된 인터페이스 Mi 에 기초하여, 애플리케이션 또는 연결 관리자는 네트워크 연결 요청을 발행할 수도 있다. 인터페이스의 구성이 이 프로세스의 일부로 발생할 수도 있다. 제 2 방법에서, 최상으로 매칭되는 인터페이스가 사용가능하게 되자마자 또는 다른 트리거링 이벤트에 기초하여 연결 설정은 자동으로 발생할 수도 있다. 인터페이스의 구성은 그 후에 발생한다.
도 8b 에 추가로 도시된 바와 같이, 단계 (138) 에서, 두 가지 경우 모두에서, 연결 설정 및 구성 프로세스가 진행될 수도 있다. 연결 설정이 시작된 후에, 단계 (152) 에서, 프록시 인터페이스 Mpi 에 대응하는 원격 프로세서상의 인터페이스는 원격 프로세서상의 대응하는 Rm 인터페이스에 결합되는 프록시 인터페이스 Mpi 에 의해 구성될 수도 있다. 단계 (154) 에서, 이 Rm 인터페이스는 실제 인터페이스 또는 다른 프록시 인터페이스일 수도 있는, 동일한 원격 프로세서상의 Um 인터페이스에 커플링된다. Um 인터페이스가 실제이면 (즉, 판정 단계 ( 156) = "실제"), 단계 (158) 에서, 원격 프로세서는 인터페이스 구성 정보를 로컬 프로세서로 전송할 수도 있으며, 단계 (160) 에서, 로컬 프로세서상의 프록시 인터페이스 Mpi 는 원격 프로세서에 의해 로컬 프로세서로 전송된 구성 정보에 기초하여 구성될 수도 있다. 이로써, 단계 (136) 에서 네트워크 연결 설정이 완료된다.
도 8b 에 도시한 바와 같이, 이 구성 프로세스는 계층적이며, 다수의 연결 설정된 프로세서들의 체인을 따라 반복될 수도 있다. 이렇게 하여, 프록시 인터페이스 Mpi 가 프록시 Um 인터페이스에 결합되면 (즉, 판정 단계 (156) = "프록시"), 프로세스는 다음 인터페이스를 다음 프로세서 x 로 선택하기 위하여 도 8a 의 단계 (114) 로 리턴함으로써 반복될 수도 있다. 단계 (152) 내지 단계 (156) 를 반복함으로써, 선택된 인터페이스는 이러한 방식으로, 또 다른 Um 인터페이스에 커플링된 프록시 Um 인터페이스 (즉, 또 다른 원격 프로세서의 대응하는 Rm 인터페이스) 와 결합될 수도 있다. 결합 인터페이스들의 이 체인은 실제 물리적 네트워크에 연결을 제공할 수도 있는 실제 Um 인터페이스에 도달할 때까지 계속되어 데이터 경로 설정을 완료할 수도 있다. 일단 실제 Um 인터페이스가 결합되면 (즉, 판정 단계 (156) = "실제"), 단계 (158) 에서, 각각의 원격 프로세서는 인터페이스 구성 정보를 선행 "로컬" 프로세서에 전송할 수도 있고, 단계 (160) 에서, 로컬 프로세서상의 프록시 인터페이스 Mpi 는 구성 정보에 기초하여 구성될 수도 있으며, 인터페이스 구성 정보를 전송하고 각각의 프록시 인터페이스를 구성하는 프로세스를, 인터페이스들의 체인 내의 모든 프록시 인터페이스들이 구성될 때까지 계속한다. 이로써, 단계 (136) 에서 네트워크 연결 설정이 완료된다. 그 후에, 애플리케이션으로부터 송신된 모든 패킷들은 이 데이터 경로에 설정된 인터페이스들의 체인 전체를 트래블 (travel) 할 수도 있다.
동일한 기본적 계층적 라우팅 알고리즘이 라우팅 층의 각각의 프로세서상에서 구현될 수도 있다. 이 실시형태는 컴퓨터 아키텍처에서 함께 연결 설정된 프로세서들의 임의적 네트워크를 지원하고, 프로세서들 중 임의의 하나의 프로세서에서 실행중인 애플리케이션들이 임의의 모뎀을 통하여 임의의 네트워크에 액세스할 수 있도록 한다. 이렇게 하여, 단계 (114) 에서 네트워크 선택 요청이 다음 프로세서로 포워딩되면, 동일한 기본적 알고리즘이 상기 다음 (즉, 원격) 프로세서상의로컬 및 프록시 인터페이스들 세트에 대해 다시 실행된다. 인터페이스 선택 요청은 프록시 인터페이스 g 에 연결된 Rm 링크를 통하여 도착될 것이다. Rm 인터페이스는 상기 요청을 라우팅 층으로 포워딩하고 계층적 라우팅 알고리즘을 적용할 것이다. Rm 인터페이스 관점에서, 이 프로세스는 인터페이스가 단일 모뎀 디바이스들 (예를 들면, 도 2) 또는 이중 프로세서 디바이스들 (예를 들면, 도 3) 에서 주변 연결 설정을 지원하는 방법이다. 각각의 프로세서상에서 동일한 라우팅 인터페이스 선택 알고리즘이 반복되면서, 네트워크 인터페이스는 프로세서에서 프로세서로 컴퓨팅 디바이스 아키텍처 전체에 걸쳐 재귀적인 방식 (또는 다른 트리 순회 방법 (tree traversal method)) 으로 진행될 수 있다.
애플리케이션들은, 예를 들면, 도 2 내지 도 7 에 도시한 컴퓨터 아키텍처들과 같은 컴퓨팅 디바이스 아키텍처 내의 임의의 프로세서상에서 실행될 수도 있으므로, 인터페이스에 대한 요청이 로컬 애플리케이션으로부터 수신되었는지 또는 연결 설정된 프로세서로부터 수신되었는지에 상관없이 (즉, 프로세서가 로컬 프로세서인지 또는 연결 설정된 프로세서인지에 상관없이) 최상의 네트워크 인터페이스를 선택하는 동일한 기본적 프로세스를 구현하는 라우팅 층들을 이용하여 다양한 실시형태들이 구현될 수도 있다. 이것은 전술한 단계 (116) 에서 로컬 프로세서에 의해 포워딩된 인터페이스 선택 요청에 응답하기 위하여 원격 프로세서 x 상에서 구현될 수도 있는 예시적인 방법 (200) 을 보여주는 도 9 에 도시된다.
도 9 를 참조하면, 단계 (202) 에서 정책 파라미터들을 포함한 인터페이스 선택 요청을 수신한 것에 대한 응답으로, 단계 (204) 에서 원격 프로세서는 프로세서의 구성들을 평가하고 원격 프로세서에 직접 연결 설정된 사용가능한 프로세서들의 리스트 {Pr} 를 열거할 수도 있다. 원격 프로세서에 사용가능한 프로세서들의 이 리스트는 인터페이스 선택 요청을 전송한 프로세서는 포함하지 않을 수도 있다. 단계 (206) 에서, 원격 프로세서는 원격 프로세서상에서 사용가능한 네트워크 인터페이스들의 리스트를 열거할 수도 있다. 이 리스트는 원격 프로세서상에서 사용가능한 실제 인터페이스들 {Ir} 및 프록시 인터페이스들 {Ip} 의 리스트를 포함할 수도 있다. 루프 스패닝 단계들 (208 내지 212) 에서, 원격 프로세서는, 사용가능한 프로세서들의 리스트 {Pr} 내의 각각의 프로세서 x 에 대하여, {Ipx} 라고 지칭되는, 직접 연결 설정된 (즉, 이중 원격) 프로세서 각각에 대한 인터페이스를 나타내는 모든 프록시 인터페이스들의 리스트를 열거할 수도 있다. 다시 말하면, 단계 (208) 에서, 원격 프로세서는 평가를 위해 사용가능한 직접 연결된 이중 원격프로세서들 중에서 특정한 하나 (x) 를 선택하고, 단계 (210) 에서, 그 프로세서에 대하여 인터페이스를 나타내는 모든 프록시 인터페이스들의 리스트 {Ipx} 를 열거하고, 최종 이중 원격 프로세서 x 가 평가될 때까지 (즉, 판정 단계 (212) = "예") 이러한 동작들을 반복할 수도 있다.
루프 스패닝 단계들 (214 내지 222) 에서, 원격 프로세서는 인터페이스 선택 요청에 응답하기 위한 최상의 인터페이스를 선택하기 위해 사용될 수 있는, 네트워크 인터페이스 적합성 정보를 각각의 연결된 이중 원격 프로세서로부터 획득할 수도 있다. 상세히 설명하면, 단계 (214) 에서, 인터페이스 적합성 정보 수신에 대하여 원격 프로세서는 사용가능한 직접 연결된 이중 원격 프로세서들 중 하나 (x) 를 평가를 위해 선택할 수도 있다. 단계 (216) 에서, 원격 프로세서는 네트워크 선택 정책 파라미터들의 모두를 포함하는 인터페이스 선택 요청을 {Ipx} 내의 프록시 인터페이스들 중 하나 (g) 를 통하여, 선택된 이중 원격 프로세서 x 로 포워딩할 수도 있다. 선택된 프록시 인터페이스는 현재 사용가능한 임의의 인터페이스일 수도 있다 (즉, 프록시 인터페이스는 세트 {Ipx} 로부터 임의로 선택될 수도 있다). 원격 프로세서에 커플링된 이중 원격 프로세서들이 없는 경우, 즉, 사용가능한 프로세서들의 리스트 {Pr} 가 널 세트 (null set) 인 경우, 단계 (216) 은 생략될 것이다. 단계 (218) 에서, 원격 프로세서는 선택된 이중 원격 프로세서 x 로부터 그 프로세서상에서 사용가능한, 네트워크 선택 정책 파라미터들에 최상으로 매칭되는 인터페이스에 관한 정보를 다시 수신할 것이다. 이 정보는, 대응하는 (세트 {Ipx} 중의 인터페이스들 중 하나인) 프록시 인터페이스 Mpi 로 매핑되는 인터페이스 식별자인 최상으로 매칭되는 인터페이스 Mi; 및 네트워크 인터페이스가 요청된 네트워크 정책을 지원할 수 있는 정도를 나타내는 정수 값일 수도 있는 매치 인덱스 I 를 포함할 수도 있다. 단계 (218) 에서 원격 프로세서로 다시 보고된 정보는, 단계 (220) 에서 4 개의-튜플 [x, Mpi, Mi, I] 로서 원격 프로세서 라우팅 층에 의해 저장될 수도 있다. 판정 단계 (222) 에서, 원격 프로세서는 선택된 이중 원격 프로세서가 리스트 {Pr} 내의 최종 프로세서인지의 여부를 판정한다. 평가할 또 다른 이중 원격 프로세서가 있는 경우 (즉, 판정 단계 (222) = "아니오"), 리스트 {Pr} 내의 다음 프로세서 x 를 선택하기 위해 프로세서는 단계 (214) 로 리턴할 수도 있다.
모든 이중 원격 프로세서들이 평가되면 (즉, 판정 단계 (222) = "예"), 루프 스패닝 단계들 (224 내지 230) 에서, 원격 프로세서는 각각의 실제 인터페이스 (즉, 리스트 {Ir} 내의 원격 프로세서에서 사용가능한 인터페이스들) 를 평가할 수도 있다. 상세히 설명하면, 단계 (224) 에서, 원격 프로세서는 원격 프로세서에 연결된 실제 인터페이스들의 리스트 {Ir} 내의 하나 (h) 의 인터페이스를 선택할 수도 있다. 단계 (226) 에서, 선택된 인터페이스에 대한 매치 인덱스 I 값을 결정하기 위해 네트워크 선택 정책 파라미터들은 선택된 인터페이스 h 특징들에 대하여 평가된다. 원하는 네트워크 능력과 네트워크 정책 파라미터들에 대한 로컬 인터페이스들의 평가는 통상의 기술을 가진 당업자에게 잘 알려진 여러 가지 방법들 중 임의의 하나를 사용하여 이루어질 수 있다. 로컬 인터페이스가 인터페이스 선택 요청을 충족시키는 정도에 관한 정보는 4 개의-튜플 [0, Null, h, I] 값으로 저장될 수도 있다. 이 4 개의-튜플 [0, Null, h, I] 값은 ("0" 값으로 나타낸) 원격 프로세서가 매치 인덱스 I 값을 가지는 실제 인터페이스 h 를 이용하여 원하는 네트워크 연결을 지원할 수 있다는 것을 나타낸다.
판정 단계 (230) 에서, 원격 프로세서는 선택된 로컬 인터페이스 h 가 리스트 {Ir} 내의 최종 로컬 인터페이스인지의 여부를 판정한다. 평가할 또 다른 로컬 인터페이스가 있는 경우 (즉, 판정 단계 (230) = "아니오"), 원격 프로세서는 리스트 {Ir} 내에서 다음 로컬 인터페이스 h 를 선택하기 위해 단계 (224) 로 리턴할 수도 있다.
모든 로컬 인터페이스들이 평가되면 (즉, 판정 단계 (230) = "예"), 원격 프로세서는 단계 (232) 에서 선택된 가장 높은 매치 인덱스 I 를 가진 인터페이스를 식별하기 위하여 저장된 4개의-튜플 값들을 평가한다. 단계 (234) 에서, 원격 프로세서는, 프록시 인터페이스 식별자 Mpi 및 인터페이스 매치 인덱스 I 를 포함한 인터페이스 선택 정보를 로컬 프로세서 (즉, 인터페이스 선택 요청을 발행한 프로세서) 로 리턴한다. 선택된 인터페이스가 로컬이면 (즉, 원격 프로세서상에 위치하면), 인터페이스 식별자 h 는 프록시 인터페이스 식별자 Mpi 로서 리턴된다.
전술한 바와 같이 컴퓨팅 디바이스 내에 존재하거나 또는 컴퓨팅 디바이스와 연결된 모든 프로세서들 상의 유사한 라우팅 층 모듈들을 사용한 분산된 계층적 결정 아키텍처로 다양한 실시형태들을 구현함으로써, 다양한 실시형태들은 프로세서들의 임의의 개수의 상이한 층들을 가진 컴퓨팅 디바이스들을 포함하여 사용될 수 있다. 또한, 하나의 컴퓨팅 디바이스 아키텍처에 대해 기록된 애플리케이션들은 코드를 변경하거나 구성 호환성을 위한 테스팅을 수행할 필요없이 훨씬 더 복잡한 멀티프로세서 아키텍처들을 가진 컴퓨팅 디바이스들 상에서 구현될 수도 있다. 게다가, 다양한 실시형태들은 네트워크 연결 요청을 발행한 애플리케이션을 어느 프로세서가 호스팅하는지에 상관없이 동일하게 동작한다.
다양한 실시형태 절차들은 계층적이며 컴퓨터의 아키텍처 내의 모든 프로세서들을 포괄할 수 있다. 일반적으로, 계층적 라우팅 알고리즘은 프로세스가 정확하게 기능을 수행하도록 하면서, 임의의 레벨의 복잡도를 포함하기 위하여 도 1 에 도시한 바와 같은 트리와 같은 구조로 디바이스 토폴로지가 나타내어질 수 있도록 한다. 전술한 실시형태에 대한 설명들은 프로세서들의 폴링 (polling) 이 인터페이스로부터 인터페이스로, 그리고 결합된 프로세서로부터 결합된 프로세서로 이동하며 연속적으로 진행되는 구현을 상정하고 있다. 그러나, 이것은 프로세서들에 대한 질의를 제기할 수도 있는 방법에 대한 하나의 예에 불과하며, 임의의 개수의 다른 방법들이 사용될 수도 있다. 예를 들면, 부착된 프로세서들이 사용가능한 인터페이스들에 대한 그들 자체의 평가를 동시에 수행하고 평가 완료시에 결과들을 다시 보고할 수 있도록 인터페이스 선택 요청은 로컬 프로세서에 의해 모든 부착된 프로세서들로 동시에 발행될 수도 있다. 도 6 및 도 7 에 도시한 바와 같은 복합 컴퓨터 아키텍처들에 적합할 수도 있는 또 다른 실시형태에서, 계층적 라우팅 알고리즘은 여기에 설명한 기본적인 절차의 방향을 전환시키지 않으면서 몇 개의 트리 순회 알고리즘들 중 하나를 이용하여 구현될 수 있다.
다양한 실시형태들은 애플리케이션들이 다양한 모뎀 프로세서들 상에서 실행될 수도 있지만 메인 애플리케이션 프로세서상에서는 실행되지 않을 수도 있는 구현들을 지원한다. 이것은 여러 가지 이유들로 인해 발생할 수도 있다. 우선 하나의 이유로, 애플리케이션은, 이제 애플리케이션 프로세서에 연결된 특정 모뎀 프로세서에 대해 개발되고 테스트되었을 수도 있다. 시간이 흐르면서 추가적인 네트워크 연결을 지원하기 위해 다른 프로세서들이 추가되면, 애플리케이션이 특정 모뎀 프로세서상에서 계속 실행되도록 함으로써 새로운 프로세서 환경들에서 기존 애플리케이션들을 재통합할 필요성을 회피할 수도 있다. 게다가, 특정 무선 기능은 소정의 모뎀 프로세서들 상에서만 사용가능할 수도 있거나, 특별한 모뎀 프로세서를 통하여 보다 최적으로 액세스 가능할 수도 있다. 나아가, 인터페이스 관리 및 구성을 위하여 모뎀 프로세서상에서 실행되어야할 필요가 있는 시스템 애플리케이션들은 애플리케이션 프로세서보다 모뎀의 프로세서상에서 호스팅될 수도 있다.
소정의 시나리오들에서, 모뎀 프로세서들 상에서 실행되는 애플리케이션들은 다른 모뎀 프로세서들에 의해 제공되는 무선 연결을 사용하기를 원할 수도 있다. 다양한 실시형태들의 계층적 라우팅 알고리즘들은 그러한 시나리오들을 해결하기 위해 사용될 수 있다. 도 7 에 도시한 바와 같이, 모뎀 프로세서 (3) 에서 동작하는 애플리케이션 (50) ("app 1") 은 모뎀 프로세서 (2) 를 통하여 연결된 무선 네트워크를 사용하기를 원할 수도 있다. 이 예에서, 모뎀 프로세서 (3) 와 모뎀 프로세서 (2) 사이에 직접적인 연결은 없다. 요청된 네트워크 액세스를 app 1 에 제공하기 위하여, 다른 프록시 인터페이스들이 추가될 수도 있으며 애플리케이션들 프로세서로 다시 연결된다. 뿐만 아니라, 이 연결은 주변 디바이스가 애플리케이션 프로세서로 연결되는 방식과 동일한 방식으로 설정될 수도 있다. 시스템내의 모든 모뎀 프로세서들이 특유의 방식으로 인덱싱되면, 계층적 라우팅 알고리즘은 애플리케이션 (50) 이 모뎀 프로세서 (3) 에서 동작중일 경우에도 애플리케이션 (50) 에 적합한 인터페이스를 발견하기 위하여 변경 없이 실행될 수 있다.
실시형태들을 계층적 결정 아키텍처로 구현함으로써, 컴퓨팅 디바이스 내의 각각의 프로세서는 요청된 네트워크 연결에 대하여 최상으로 연결된 로컬 인터페이스에 대한 자체 판정을 할 수 있으며, 자신의 최상의 로컬 연결 특징을, 요청하는 애플리케이션 또는 요청을 포워딩하는 프로세서 (즉, 차상위층 프로세서) 로 중계할 수 있다. 이러한 분산된 계층적 결정 아키텍처는 도 6 을 참조한 예로서 설명될 수도 있다. 도 6 에 도시한 컴퓨터 아키텍처에서, 애플리케이션 프로세서 (10) 는 2 개의 모뎀 프로세서들 (즉, 모뎀 프로세서 (1) 및 모뎀 프로세서 (3)) 에 결합되며, 이러한 2 개의 모뎀 프로세서들 각각은 또 다른 모뎀 프로세서에 연결된다 (즉, 모뎀 프로세서 (1) 는 모뎀 프로세서 (2) 에 연결되고, 모뎀 프로세서 (3) 는 모뎀 프로세서 (4) 에 연결된다). 각각의 프로세서상에서 계층적 라우팅 알고리즘을 구현하는 것은, 각각의 프로세서가 자신의 최상으로 사용가능한 인터페이스를 식별할 수 있도록 인터페이스 선택 요청 파라미터들을 각각의 프로세서로 포워딩하는 결과를 초래한다. 이렇게 하여, 인터페이스 선택 요청에 대한 응답으로, 모뎀 프로세서 (2) 는 Um 인터페이스 (62) 가 특별한 매치 인덱스 값 I 을 사용하여 WWAN (36) 을 액세스하기 위한 인터페이스 요청을 충족시킬 수 있다는 것을 모뎀 프로세서 (1) 에 확인시킨다. 다음으로, 모뎀 프로세서 (1) 는 WWAN (34) 을 액세스하기 위한 자체의 로컬 Um 인터페이스 (28) 를 평가하여 로컬 Um 인터페이스 (28) 의 매치 인덱스 값 I 을 결정하고, 2 개의 인터페이스들 중에서 애플리케이션 프로세서 (10) 에 보고할 더 나은 인터페이스를 선택하기 위하여, 그 값을 모뎀 프로세서 (2) 의 Um 인터페이스 (62) 에 대한 수신된 매치 인덱스와 비교할 것이다. 마찬가지로, 모뎀 프로세서 (4) 는 WWAN (36) 을 액세스하기 위한 인터페이스 (72) 에 대한 매치 인덱스 값 I 을 모뎀 프로세서 (3) 에 제공하고, 모뎀 프로세서 (3) 는 로컬 인터페이스 (66) 와 프록시 인터페이스 (72) 중에서 애플리케이션 프로세서 (10) 에 보고할 더 나은 인터페이스를 선택할 것이다. 이렇게 하여, 애플리케이션 요청에 대한 응답으로, 애플리케이션 프로세서 (10) 는 프록시 인터페이스 (44) 를 통하여 모뎀 프로세서 (1) 로부터 수신한 매치 인덱스 I, 프록시 인터페이스 (42) 를 통하여 모뎀 프로세서 (3) 로부터 수신한 매치 인덱스 I, 및 로컬 인터페이스 (40) 중에서 최상의 인터페이스를 선택할 수도 있다.
데이터 경로의 구성 및 설정도 또한 계층적 접근법을 따를 수도 있다. 예를 들면, 도 6 을 다시 참조하여, 애플리케이션 프로세서 (10) 로부터의 애플리케이션 요청에 대한 응답으로 모뎀 프로세서 (2) 의 Um 인터페이스 (62) 가 최상의 인터페이스로 선택되면, 연결 설정 및 구성 동작들이 시작될 수도 있다. 연결 설정 동작은 애플리케이션에 의해, 또는 자동으로 개시될 수도 있지만, 둘 중 어느 방법으로 개시되어도, 프록시 인터페이스 (44) 와 그에 대응하는 Rm 인터페이스 (26) 는 애플리케이션 프로세서와 모뎀 프로세서 (1) 사이에 전송된 정보를 기초로 구성될 수도 있다. 구성을 위한 프로세스는 선택된 Um 인터페이스 (62) 로의 데이터 경로를 설정하기 위해 인터페이스들의 체인에 걸쳐서 반복될 수도 있다. 이렇게 하여, 프록시 인터페이스 (44) 는 Rm 인터페이스 (26) 와 결합될 수도 있으며, Rm 인터페이스 (26) 는 다시 인터페이스 (30) 와 결합될 수도 있다. 인터페이스 (30) 는 실제 인터페이스가 아니고 프록시 인터페이스이므로, 인터페이스 (30) 는 Rm 인터페이스 (60) 와 결합될 수도 있으며, Rm 인터페이스 (60) 는 선택된 Um 인터페이스 (62) 와 결합될 수도 있다. 선택된 Um 인터페이스 (62) 는 실제 물리적 네트워크로의 연결을 제공할 수도 있으며, 이로써 데이터 경로를 완성한다.
게다가, 인터페이스 체인들은 하나의 요청하는 프로세서로부터 원하는 네트워크 또는 소스로의 실제 인터페이스를 포함하는 또 다른 프로세서로의 역방향으로 유사한 방식으로 설정될 수도 있다. 이렇게 하여, 인터페이스들의 하나의 체인내의 제 2 프로세서는, 인터페이스들의 제 2 체인의 일부로서 제 2 프로세서와의 사이에 설정된 상이한 프록시 인터페이스 연결을 이미 가질 수도 있는 제 3 프로세서와의 사이에 설정된 프록시 인터페이스 연결을 설정할 수도 있다. 이러한 상황에서, 제 2 프로세서와 제 3 프로세서 사이의 프록시 인터페이스 연결들 둘 다는 도 8a, 도 8b 및 도 9 를 참조한 전술한 동작들과 동일한 동작들을 이용하여 설정될 수도 있으며, 인터페이스들의 각각의 체인은 유사하거나 상이한 네트워크 선택 정책 파라미터들을 명시한 상이한 개시 프로세서에 의해 개시된다.
실시형태들은 컴퓨팅 아키텍처들의 방대한 어레이와 애플리케이션 시나리오들에 적용될 수 있으며, 그리하여 전술한 실시형태들의 예에 제한되지 않는다. 나아가, 각각의 프로세서에 의해 지원되어야 하는 프록시 인터페이스들과 실제 (Rm) 인터페이스들의 수는 시스템에 따라 가변될 것이며, 정적으로 또는 동적으로 구성될 수 있다. 일 실시형태에서, 부팅 (boot-up) 프로세스 중에 정적 구성 테이블이 모뎀으로 입력될 수도 있으며, 모뎀 프로세서는 그러한 구성 정보에 기초하여 원하는 개수의 인터페이스들을 생성할 수 있다. 대안적인 실시형태에서, Rm 인터페이스들은 필요시마다 동적으로 생성될 수 있다. 프록시 인터페이스들 및 Um 인터페이스들은 특정 컴퓨터 디바이스에서 사용가능한 가능 연결 옵션들을 모두 나타내기 위하여 일반적으로 미리 생성된다.
애플리케이션들은 네트워크 연결들의 근접성을 인식하지 못하지만, 그 연결들이 다수의 프로세서들을 포괄하면 애플리케이션들은 추가적인 지연들을 관측할 수도 있다. 이를 수행하기 위하여, 실시형태들은 프로세서간 통신 지연들을 가능하면 많이 감소시킴으로써 그 영향을 최소화할 수도 있다.
다양한 실시형태들을 지원하기 위하여, 인터페이스 선택 요청을 송신하고 결과들을 다시 수신하는 상이한 프로세서들의 다양한 계층적 라우팅 모듈들 또는 라우팅 층들 사이의 통신을 지원하기 위하여 시그널링 메카니즘 또는 시그널링 채널이 요구된다. 이러한 목적을 위하여, 예를 들면, QMI 메시징 프로토콜과 같은 임의의 적절한 시그널링 메카니즘 또는 시그널링 채널이 사용될 수 있다. 시그널링 메카니즘은, USB 인터페이스들에서 제공된 것처럼, 시그널링 메카니즘을 통해 발생하는 시그널링과 IP 트래픽을 통한 데이터 송신과 함께, 동일한 물리적 상호연결에 대하여 수행될 수도 있다는 것에 유의해야 한다.
여기에 설명된 다양한 구현 절차들은, 동일한 컴퓨팅 디바이스 내에서 가변할 수 있는, 상이한 프로세서들 사이에 사용된 상호연결들의 타입들에 상관없이 기능을 수행하여야 한다. 이렇게 하여, 실시형태들은 임의의 특정 컴퓨팅 아키텍처, 프로세서간 통신 프로토콜 또는 연결, 또는 무선 통신 기술에 구속되거나 제한되지 않는다.
추가적인 실시형태에서, 후속 애플리케이션 네트워크 액세스 요청들을 지원하기 위하여 최상의 인터페이스 선택 결정 또는 인터페이스 매치 인덱스 값들 및 4개의-튜플들은 애플리케이션 프로세서 (10) 의 메모리에 저장될 수도 있다. 이 실시형태는 계층적 라우팅 알고리즘이 수행된 마지막 시간 이후로 디바이스 구성, 네트워크 특징 또는 네트워크 선택 정책 파라미터들에 변경이 발생하지 않은 경우에 프로세싱 시간을 절약하는데 유용할 수도 있다. 이 실시형태에서, 애플리케이션 프로세서는 네트워크 선택 정책 파라미터들이 이전에 완료된 네트워크 선택으로부터의 파라미터들과 동일한지를 판정하기 위해 네트워크 선택 정책 파라미터들을 이전에 완료된 네트워크 선택으로부터의 파라미터들과 비교할 수도 있으며, 저장된 선택된 인터페이스 구성 정보에 따라 네트워크 선택을 구성할 수도 있다.
다양한 실시형태들에 사용하기에 적합한 일반적인 모바일 디바이스들 (300) 은 도 10 에 도시된 컴포넌트들을 공통적으로 가질 것이다. 예를 들면, 예시적인 무선 수신기 (300) 는 내부 메모리 (302) 에 커플링된 애플리케이션 프로세서 (301) 및 디스플레이 (303) 를 포함할 수도 있다. 게다가, 모바일 디바이스 (300) 는 애플리케이션 프로세서 (301) 에 커플링된 하나 이상의 트랜시버들 (310, 312, 314, 316) 에 연결된 전자기적 방사를 전송 및 수신하는 안테나 (304) 를 가질 수도 있다. 전술한 바와 같이, 애플리케이션 프로세서 (301) 와 프로세서 (310 및 314) 에 각각 결합된 프로세서들 (312, 316) 에 대해 설명한 바와 같이, 일부 모뎀 프로세서들은 애플리케이션 프로세서 (301) 에 직접적으로 연결될 수도 있다. 무선 모바일 디바이스 (300) 는 일반적으로 또한 사용자 입력들을 수신하기 위한 키 패드 (306) 또는 미니어처 키보드와 선택 버튼들 또는 로커 스위치들 (307) 를 포함한다. 무선 모바일 디바이스 (300) 는 또한, 외부 네트워크들과, 예를 들면, 랩탑 컴퓨터 (12) 와 같은 다른 컴퓨팅 디바이스들로의 연결을 위하여, 예를 들면, USB 또는 FireWire® 커넥터 소켓과 같은 유선 네트워크 인터페이스 (318) 를 포함할 수도 있다.
전술한 본 발명의 다양한 양태들은 예를 들면, 랩탑 컴퓨터 (400) 와 같은 다양한 모바일 컴퓨팅 디바이스들 중 임의의 모바일 컴퓨팅 디바이스 상에서 구현될 수도 있다. 일반적으로, 이러한 컴퓨팅 디바이스들은 도 11 에 도시한 컴포넌트들을 공통적으로 가질 것이다. 예를 들면, 랩탑 컴퓨터 (400) 는 내부 메모리 (403) (예를 들면, 하드 디스크 메모리) 에 커플링된 프로세서 (402) 와, 예를 들면, 액정 디스플레이 (LCD) 와 같은 디스플레이 (409) 를 포함할 수도 있으며, 이들은 모두 케이스 또는 하우징 (406) 에 포함된다. 랩탑 컴퓨터 (400) 는 프로세서 (402) 에 커플링된 키보드 (408) 내에 포인팅 디바이스 (407) 를 일반적으로 포함할 것이다. 프로세서 (401) 는, 예를 들면, (전술한 바와 같은) 무선 모바일 디바이스 (300) 로의 연결과 같은, 무선 모바일 디바이스 (300) 의 유선 네트워크 인터페이스 (318) 에 연결된 케이블 (410) 을 통한 프로세서 (401) 와 외부 모뎀 또는 프로세서의 상호연결을 위한, 예를 들면, USB 또는 FireWire® 커넥터 소켓과 같은 유선 네트워크 인터페이스 (404) 에 더 연결될 수도 있다. 게다가, 랩탑 컴퓨터 (400) 는, 예를 들면, 안테나 (412) 를 통하여 무선 네트워크 통신을 설정하기 위한 내부 모뎀 (405) 을 포함할 수도 있다. 이러한 내부 무선 통신 모뎀 (405) 은, 프로세서 (401) 와 모뎀 (405) 사이의 연결이 내부 상호연결 (24) 인 도 2 에 도시된 아키텍처에 따라 구성될 수도 있다.
이러한 다양한 프로세서들 (301, 310, 312, 314, 316, 401) 은, 여기에 설명된 다양한 실시형태들의 기능들을 포함한 여러 가지 기능들을 수행하기 위하여 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 임의의 프로그래머블 마이크로프로세서, 마이크로컴퓨터 또는 다수의 프로세서 칩 또는 칩들일 수도 있다. 일부 모바일 디바이스들에서, 예를 들면, 하나의 프로세서는 무선 통신 기능들을 위한 전용 프로세서이고 하나의 프로세서는 다른 애플리케이션들을 실행하기 위한 전용 프로세서와 같은 방식으로, 다수의 프로세서들 (301, 310, 312, 314, 316, 401) 이 제공될 수도 있다. 일반적으로, 소프트웨어 애플리케이션들은 액세스되고 프로세서 (301) 에 로딩되기 전에 내부 메모리 (302, 402) 에 저장될 수도 있다. 일부 모바일 디바이스들에서, 프로세서들 (301, 310, 312, 314, 316, 401) 은 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수도 있다. 많은 컴퓨팅 디바이스들 (300, 400) 에서, 내부 메모리 (302, 402) 는 휘발성 메모리 또는 플래쉬 메모리와 같은 비휘발성 메모리, 또는 휘발성 메모리와 비휘발성 메모리의 혼합체일 수도 있다. 이 설명을 위하여, 메모리에 대한 일반적인 참조는, 내부 메모리 (302, 402), 무선 수신기 (300, 400) 에 플러그된 탈부착가능 메모리 및 프로세서들 (301, 310, 312, 314, 316, 401) 자체의 내부의 메모리를 포함한, 프로세서들 (301, 310, 312, 314, 316, 401) 에 의해 액세스가능한 모든 메모리를 지칭한다.
다양한 실시형태들은 컴퓨팅 디바이스들을 위한 여러 가지 혜택들을 제공한다. 임의의 컴퓨터 아키텍처 또는 프로세서 토폴로지는 계층적 라우팅 알고리즘의 단일 분산 구현을 이용하여 지원될 수도 있다. 애플리케이션들은 컴퓨팅 디바이스내의 임의의 프로세서상에 상주할 수도 있으며, 애플리케이션이 무선 네트워크의 근접성을 주지하도록 요구하지 않고 다른 프로세서를 통하여 네트워크들로 액세스할 수도 있다. 기존의 애플리케이션들은 새롭게 부상하는 네트워크 기술들과 컴퓨팅 디바이스 아키텍처들에 적응하기 위하여 변경, 재기록 또는 재통합될 필요는 없다. 디바이스 제조자들은 새로운 모뎀들을 추가함으로써 기존의 네트워크와 통신 애플리케이션들에 크게 영향을 주지 않고 추가적 네트워크 능력들을 추가할 수 있다. 상이한 제조자들로부터의 프로세서들은 더욱 신속한 디바이스 통합과 새로운 통신 기술들의 더욱 빠른 타임-투-마켓 (time-to-market) 구현을 위해 함께 결합되고 연결될 (joined) 수 있다. 이러한 모든 혜택들은, 애플리케이션 개발자를 복합 컴퓨팅 디바이스 내의 네트워크 인터페이스들을 추적하고 관리해야하는 의무로부터 자유롭게 함으로써 가능한 애플리케이션 개발 시간의 상당한 절약에 부가되는 것이다.
전술한 방법에 대한 설명들과 프로세스 흐름도들은 단지 예시적인 실시예들로서 제공되었을 뿐이며, 다양한 실시형태들의 단계들이 반드시 제시된 순서로 수행될 것을 요구하거나 수반하도록 의도한 것은 아니다. 통상의 기술을 가진 자에 의해 인정되듯이, 전술한 실시형태들의 단계들의 순서는 임의의 순서로 수행될 수도 있다. 예를 들면, "그 후에 (thereafter)", "그 다음에 (then)", "다음으로 (next)" 등과 같은 단어들은 단계들의 순서를 제한하고자 하는 것은 아니다; 이러한 단어들은 방법들의 설명을 통해 독자를 가이드하기 위해 사용되었다. 나아가, 예를 들면, 관사들 "a," "an" 또는 "the" 를 사용하는 것과 같이, 엘리먼트들을 단수로 주장하는 임의의 참조는 엘리먼트를 단수형으로 제한하는 것으로 이해되어서는 안된다.
여기에 개시된 실시형태들과 연관되어 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어 또는 그 둘의 조합들로서 구현될 수도 있다. 이러한 하드웨어 및 소프트웨어의 상호교환 가능성을 명확히 예시하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능성의 측면에서 전술되었다. 그러한 기능성이 하드웨어로 구현될지 또는 소프트웨어로 구현될지는 전체 시스템상에 부과된 특정 애플리케이션 및 설계상의 제약들에 좌우된다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수도 있지만, 그러한 구현에 대한 결정들이 본 발명의 범위의 이탈을 초래하는 것으로 해석되어서는 안된다.
여기에 개시된 양태들과 연관되어 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들, 및 회로들을 구현하기 위해 사용된 하드웨어는 여기에 설명된 기능들을 수행하기 위해 설계된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합을 이용하여 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로는, 프로세서는 임의의 종래 프로세서, 컨트롤러, 마이크로컨트롤러, 또는 상태 머신일 수도 있다. 프로세서는 또한, 예를 들면, DSP 와 마이크로프로세서의 조합과 같은 컴퓨팅 디바이스들의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다. 대안적으로, 일부 단계들 또는 방법들은 주어진 기능에 특정된 회로에 의해 수행될 수도 있다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 하드웨어로 구현되면, 기능은 무선 수신기/송신기 또는 모바일 디바이스에서 사용되기에 적합할 수도 있는 무선 신호 프로세싱 회로의 회로 내에서 구현될 수도 있다. 그러한 무선 신호 프로세싱 회로는 다양한 실시형태들에서 설명된 신호 측정 및 산출 단계들을 완수하기 위한 회로들을 포함할 수도 있다. 소프트웨어로 구현되면, 기능들은 하나 이상의 명령들 또는 코드로서 프로세서 판독가능 매체 상에 저장되거나 프로세서 판독가능 매체를 통하여 송신될 수도 있다. 여기에 개시된 방법 또는 알고리즘의 단계들은 프로세서 판독가능 저장 매체 상에 상주할 수도 있는 프로세서 실행가능 소프트웨어 모듈로 구현될 수도 있다. 저장 매체는 프로세서 또는 컴퓨터에 의해 액세스될 수도 있는 임의의 사용가능한 유형의 (tangible) 저장 매체일 수도 있다. 제한되지 않는 예로써, 그러한 프로세서 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장장치, 자기 디스크 저장장치 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하기 위해 사용될 수도 있고 프로세서 또는 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함한다. 여기에서 사용된 디스크 (disk) 와 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크 (blu-ray disc) 를 포함하며, 여기에서 디스크들 (disks) 은 일반적으로 데이터를 자기로 재생하고 디스크들 (discs) 은 레이저들을 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들은 또한 프로세서 판독가능 매체의 범위 내에 포함되어야 한다. 게다가, 방법 또는 알고리즘의 동작들은, 컴퓨터 프로그램 제품으로 통합될 수도 있는, 기계 판독가능 저장 매체 및/또는 프로세서 판독가능 저장 매체 상의 코드들 및/또는 명령들의 하나 또는 임의의 조합 또는 세트로 상주할 수도 있다.
개시된 실시형태들의 전술한 설명은 해당 기술 분야의 숙련된 임의의 당업자로 하여금 본 발명을 제작 또는 이용할 수 있도록 하기 위하여 제공되었다. 이러한 실시형태들에 대한 다양한 변경들은 해당 기술 분야의 숙련된 당업자들에게 매우 명백할 것이며, 여기에 정의된 일반적인 원칙들은 본 발명의 사상 또는 범위를 벗어나지 않고 다른 실시형태들에 적용될 수도 있다. 그러므로, 본 발명은 여기에 나타낸 실시형태들에 제한되는 것으로 의도되지 않고 이하의 청구항들과 여기에 개시된 원칙들과 새로운 특징들에 부합하는 가장 넓은 범위를 따른다.

Claims (60)

  1. 컴퓨팅 디바이스 내의 제 1 프로세서상에서 실행중인 애플리케이션에 대한 네트워크 연결을 선택하는 방법으로서,
    상기 애플리케이션으로부터의 네트워크 인터페이스 선택 요청을 상기 제 1 프로세서에서 수신하는 단계에서, 상기 네트워크 인터페이스 선택 요청은 네트워크 선택 정책 파라미터들을 포함하는, 상기 애플리케이션으로부터의 네트워크 인터페이스 선택 요청을 상기 제 1 프로세서에서 수신하는 단계; 및
    복수의 프로세서들 중에서 계층적 인터페이스 선택 절차를 수행하는 단계를 포함하고,
    상기 계층적 인터페이스 선택 절차는,
    상기 제 1 프로세서상의 사용가능한 실제 인터페이스들의 리스트를 열거하는 단계;
    상기 제 1 프로세서에 직접 커플링된 사용가능한 원격 프로세서들의 리스트를 열거하는 단계;
    사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 프록시 인터페이스들의 리스트를 열거하는 단계로서, 각각의 상기 프록시 인터페이스는 상기 원격 프로세서상의 대응하는 인터페이스를 표시하는, 사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 상기 프록시 인터페이스들의 리스트를 열거하는 단계; 및
    상기 사용가능한 실제 인터페이스들 및 프록시 인터페이스들 중으로부터 상기 네트워크 선택 정책 파라미터들에 최상으로 매칭하는 네트워크 인터페이스를 선택하는 단계를 포함하는,네트워크 연결을 선택하는 방법.
  2. 제 1 항에 있어서,
    상기 계층적 인터페이스 선택 절차는,
    상기 네트워크 인터페이스 선택 요청을 적어도 하나의 프록시 인터페이스를 통하여 상기 사용가능한 원격 프로세서들 중 적어도 하나로 포워딩하는 단계를 더 포함하는, 네트워크 연결을 선택하는 방법.
  3. 제 2 항에 있어서,
    상기 계층적 인터페이스 선택 절차는,
    상기 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 상기 각각의 사용가능한 원격 프로세서로부터 상기 제 1 프로세서에서 수신하는 단계; 및
    상기 제 1 프로세서상에서 각각의 사용가능한 상기 실제 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계를 더 포함하고,
    상기 수신된 네트워크 선택 정책 파라미터들에 최상으로 매칭하는 상기 네트워크 인터페이스를 선택하는 단계는:
    사용가능한 상기 원격 프로세서 각각으로부터 수신된 상기 선택된 최상의 네트워크인터페이스에 관한 정보; 및
    상기 제 1 프로세서상에서 사용가능한 상기 실제 인터페이스 각각이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도의 상기 평가에 기초하여
    최상으로 매칭하는 네트워크 인터페이스를 선택하는 단계를 포함하는, 네트워크 연결을 선택하는 방법.
  4. 제 3 항에 있어서,
    상기 계층적 인터페이스 선택 절차는, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 단계를 더 포함하는, 네트워크 연결을 선택하는 방법.
  5. 제 4 항에 있어서,
    애플리케이션 또는 연결 관리자는 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는, 네트워크 연결을 선택하는 방법.
  6. 제 4 항에 있어서,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 단계는,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스인지 또는 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능한 인터페이스인지 여부를 판정하는 단계;
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스임을 판정한 것에 대한 응답으로, 표준 네트워크 구성을 개시하는 단계; 및
    선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 단계를 포함하는, 네트워크 연결을 선택하는 방법.
  7. 제 6 항에 있어서,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 단계는,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합 (binding) 하는 단계; 및
    상기 사용가능한 원격 프로세서들 중의 상기 하나상의 상기 대응하는 인터페이스를 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 결합하는 단계를 포함하는, 네트워크 연결을 선택하는 방법.
  8. 제 7 항에 있어서,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합하는 단계는, 상기 프록시 인터페이스와 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스 사이의 다수의 프로세서들에 걸쳐 일련의 인터페이스들을 결합하는 단계를 포함하는, 네트워크 연결을 선택하는 방법.
  9. 제 7 항에 있어서,
    상기 프록시 인터페이스는 주변 디바이스에 의해 사용되는, 네트워크 연결을 선택하는 방법.
  10. 제 9 항에 있어서,
    상기 주변 디바이스는 랩탑 컴퓨터인, 네트워크 연결을 선택하는 방법.
  11. 제 3 항에 있어서,
    상기 적어도 하나의 프록시 인터페이스를 통하여 상기 각각의 사용가능한 원격 프로세서에서 상기 포워딩된 네트워크 인터페이스 선택 요청을 수신하는 단계;
    상기 각각의 사용가능한 원격 프로세서상에서, 각각의 사용가능한 상기 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계;
    상기 각각의 사용가능한 원격 프로세서상에서, 상기 사용가능한 네트워크 인터페이스들이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도에 기초하여, 상기 애플리케이션 요청에 대한 최상의 사용가능한 네트워크 인터페이스를 선택하는 단계; 및
    상기 원격 프로세서상에서 사용가능한 상기 선택된 최상의 네트워크 인터페이스에 관한 상기 정보를, 각각의 사용가능한 상기 원격 프로세서로부터, 상기 제 1 프로세서로 전송하는 단계를 더 포함하는, 네트워크 연결을 선택하는 방법.
  12. 제 11 항에 있어서,
    상기 제 1 프로세서상에서 각각의 상기 사용가능한 실제 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계는, 상기 사용가능한 실제 인터페이스들의 각각에 대한 인터페이스 매치 인덱스 I 를 산출하는 단계를 포함하고; 그리고
    각각의 상기 원격 프로세서상에서 각각의 상기 사용가능한 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계는, 상기 사용가능한 네트워크 인터페이스들의 각각에 대한 인터페이스 매치 인덱스 I 를 산출하는 단계를 포함하고,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스는, 가장 큰 인터페이스 매치 인덱스 I 와 연관된, 네트워크 연결을 선택하는 방법.
  13. 제 11 항에 있어서,
    상기 네트워크 인터페이스 선택 요청을 제 1 원격 프로세서로부터 상기 제 1 원격 프로세서에 커플링된 적어도 하나의 제 2 원격 프로세서로 포워딩하는 단계로서, 상기 제 1 원격 프로세서는 상기 제 1 프로세서에 커플링된 사용가능한 원격 프로세서를 포함하는, 상기 네트워크 인터페이스 선택 요청을 상기 제 1 원격 프로세서로부터 상기 제 1 원격 프로세서에 커플링된 적어도 하나의 상기 제 2 원격 프로세서로 포워딩하는 단계; 및
    상기 제 2 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 각각의 상기 사용가능한 제 2 원격 프로세서로부터 상기 제 1 원격 프로세서에서 수신하는 단계를 더 포함하며,
    상기 제 1 원격 프로세서상에서 상기 애플리케이션 요청에 대한 상기 최상의 사용가능한 네트워크 인터페이스를 선택하는 단계는, 상기 각각의 사용가능한 제 2 원격 프로세서로부터 수신된, 선택된 최상의 네트워크 인터페이스에 관한 상기 정보에 더 기초하는, 네트워크 연결을 선택하는 방법.
  14. 제 12 항에 있어서,
    상기 제 1 원격 프로세서상의 프록시 인터페이스를 상기 사용가능한 제 2 원격 프로세서들 중 하나상의 상기 선택된 최상의 네트워크 인터페이스에 결합하는 단계를 더 포함하는, 네트워크 연결을 선택하는 방법.
  15. 제 14 항에 있어서,
    상기 사용가능한 제 2 원격 프로세서들 중의 하나는 상기 제 1 원격 프로세서와 함께 확립된 다른 프록시 인터페이스를 포함하는, 네트워크 연결을 선택하는 방법.
  16. 모바일 디바이스로서,
    제 1 프로세서;
    상기 제 1 프로세서에 커플링된 메모리; 및
    상기 제 1 프로세서에 커플링되고 무선 통신 네트워크로부터 신호들을 수신하도록 구성된 무선 수신기 회로를 포함하며,
    상기 제 1 프로세서는,
    애플리케이션으로부터 네트워크 인터페이스 선택 요청을 수신하는 단계로서, 상기 네트워크 인터페이스 선택 요청은 네트워크 선택 정책 파라미터들을 포함하는 상기 애플리케이션으로부터 상기 네트워크 인터페이스 선택 요청을 수신하는 단계; 및
    복수의 프로세서들 중에서 계층적 인터페이스 선택 절차를 수행하는 단계를 포함하고,
    상기 계층적 인터페이스 선택 절차는
    상기 제 1 프로세서상의 사용가능한 실제 인터페이스들의 리스트를 열거하는 단계;
    상기 제 1 프로세서에 직접 커플링된 사용가능한 원격 프로세서들의 리스트를 열거하는 단계;
    사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 프록시 인터페이스들의 리스트를 열거하는 단계로서, 각각의 상기 프록시 인터페이스는 상기 원격 프로세서상의 대응하는 인터페이스를 표시하는, 사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 상기 프록시 인터페이스들의 리스트를 열거하는 단계; 및
    상기 사용가능한 실제 인터페이스들 및 프록시 인터페이스들 중으로부터 상기 네트워크 선택 정책 파라미터들에 최상으로 매칭되는 네트워크 인터페이스를 선택하는 단계를 포함하는, 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  17. 제 16 항에 있어서,
    상기 제 1 프로세서는,
    상기 계층적 인터페이스 선택 절차가,
    상기 네트워크 인터페이스 선택 요청을 적어도 하나의 프록시 인터페이스를 통하여 상기 사용가능한 원격 프로세서들 중 적어도 하나로 포워딩하는 단계
    를 더 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  18. 제 17 항에 있어서,
    상기 제 1 프로세서는,
    상기 계층적 인터페이스 선택 절차를 수행하는 단계가,
    상기 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 상기 각각의 사용가능한 원격 프로세서로부터 상기 제 1 프로세서에서 수신하는 단계; 및
    상기 제 1 프로세서상에서 각각의 사용가능한 상기 실제 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계를 더 포함하도록 하고,
    상기 수신된 네트워크 선택 정책 파라미터들에 최상으로 매칭하는 상기 네트워크 인터페이스를 선택하는 단계는:
    사용가능한 상기 원격 프로세서 각각으로부터 수신된 상기 선택된 최상의 네트워크인터페이스에 관한 정보; 및
    상기 제 1 프로세서상에서 사용가능한 상기 실제 인터페이스 각각이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도의 상기 평가
    에 기초하여 최상으로 매칭하는 네트워크 인터페이스를 선택하는 단계를 더 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  19. 제 18 항에 있어서,
    상기 제 1 프로세서는,
    상기 계층적 인터페이스 선택 절차가,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 단계
    를 더 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  20. 제 19 항에 있어서,
    상기 제 1 프로세서는,
    애플리케이션 또는 연결 관리자가 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  21. 제 19 항에 있어서,
    상기 제 1 프로세서는,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 단계가,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스인지 또는 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능한 인터페이스인지 여부를 판정하는 단계;
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스임을 판정한 것에 대한 응답으로, 표준 네트워크 구성을 개시하는 단계; 및
    선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 단계
    를 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  22. 제 21 항에 있어서,
    상기 제 1 프로세서는,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 단계가,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합하는 단계; 및
    상기 사용가능한 원격 프로세서들 중의 상기 하나상의 상기 대응하는 인터페이스를 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 결합하는 단계
    를 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  23. 제 22 항에 있어서,
    상기 제 1 프로세서는,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합하는 단계가, 상기 프록시 인터페이스와 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스 사이의 다수의 프로세서들에 걸쳐 일련의 인터페이스들을 결합하는 단계를 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  24. 제 22 항에 있어서,
    상기 제 1 프로세서는,
    상기 프록시 인터페이스가 주변 디바이스에 의해 사용되도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  25. 제 24 항에 있어서,
    상기 주변 디바이스는 랩탑 컴퓨터인, 모바일 디바이스.
  26. 제 18 항에 있어서,
    상기 각각의 사용가능한 원격 프로세서는,
    상기 적어도 하나의 프록시 인터페이스를 통하여 상기 제 1 프로세서로부터 상기 포워딩된 네트워크 인터페이스 선택 요청을 수신하는 단계;
    각각의 사용가능한 상기 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계;
    상기 사용가능한 네트워크 인터페이스들이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도에 기초하여, 상기 애플리케이션 요청에 대한 최상의 사용가능한 네트워크 인터페이스를 선택하는 단계; 및
    사용가능한 상기 선택된 최상의 네트워크 인터페이스에 관한 상기 정보를 상기 제 1 프로세서로 전송하는 단계
    를 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  27. 제 26 항에 있어서,
    상기 제 1 프로세서는,
    상기 제 1 프로세서상에서 각각의 상기 사용가능한 실제 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계가, 상기 사용가능한 실제 인터페이스들의 각각에 대한 인터페이스 매치 인덱스 I 를 산출하는 단계를 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되고, 그리고;
    각각의 상기 사용가능한 원격 프로세서는,
    각각의 상기 사용가능한 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계가, 상기 사용가능한 네트워크 인터페이스들의 각각에 대한 인터페이스 매치 인덱스 I 를 산출하는 단계를 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되고,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가, 가장 큰 인터페이스 매치 인덱스 I 와 연관된, 모바일 디바이스.
  28. 제 26 항에 있어서,
    상기 제 1 프로세서에 커플링된 상기 적어도 하나의 사용가능한 원격 프로세서의 제 1 원격 프로세서는,
    상기 네트워크 인터페이스 선택 요청을 상기 제 1 원격 프로세서에 커플링된 적어도 하나의 사용가능한 제 2 원격 프로세서로 포워딩하는 단계; 및
    상기 제 2 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 각각의 상기 사용가능한 제 2 원격 프로세서로부터 수신하는 단계
    를 더 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되고,
    상기 제 1 원격 프로세서는,
    상기 제 1 원격 프로세서상에서 상기 애플리케이션 요청에 대한 상기 최상의 사용가능한 네트워크 인터페이스를 선택하는 단계가, 각각의 상기 사용가능한 제 2 원격 프로세서로부터 수신된, 선택된 최상의 네트워크 인터페이스에 관한 상기 정보에 더 기초하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  29. 제 27 항에 있어서,
    상기 제 1 원격 프로세서는,
    상기 제 1 원격 프로세서상의 프록시 인터페이스를 상기 사용가능한 제 2 원격 프로세서들 중 하나상의 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 결합하는 단계
    를 더 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  30. 제 29 항에 있어서,
    상기 사용가능한 제 2 원격 프로세서들 중의 하나는 상기 제 1 원격 프로세서와 함께 확립된 다른 프록시 인터페이스를 포함하는, 모바일 디바이스.
  31. 모바일 디바이스로서,
    애플리케이션으로부터 네트워크 인터페이스 선택 요청을 제 1 프로세서에서 수신하는 수단으로서, 상기 네트워크 인터페이스 선택 요청은 네트워크 선택 정책 파라미터들을 포함하는 상기 애플리케이션으로부터 상기 네트워크 인터페이스 선택 요청을 상기 제 1 프로세서에서 수신하는 수단; 및
    복수의 프로세서들 중에서 계층적 인터페이스 선택 절차를 수행하는 수단을 포함하고,
    상기 계층적 인터페이스 선택 절차를 수행하는 수단은,
    상기 제 1 프로세서상의 사용가능한 실제 인터페이스들의 리스트를 열거하는 수단;
    상기 제 1 프로세서에 직접 커플링된 사용가능한 원격 프로세서들의 리스트를 열거하는 수단;
    사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 프록시 인터페이스들의 리스트를 열거하는 단계로서, 각각의 상기 프록시 인터페이스는 상기 원격 프로세서상의 대응하는 인터페이스를 표시하는, 사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 상기 프록시 인터페이스들의 리스트를 열거하는 수단; 및
    상기 사용가능한 실제 인터페이스들 및 프록시 인터페이스들 중으로부터 상기 네트워크 선택 정책 파라미터들에 최상으로 매칭되는 네트워크 인터페이스를 선택하는 수단을 포함하는, 모바일 디바이스.
  32. 제 31 항에 있어서,
    상기 계층적 인터페이스 선택 절차를 수행하는 수단은,
    상기 네트워크 인터페이스 선택 요청을 적어도 하나의 프록시 인터페이스를 통하여 상기 사용가능한 원격 프로세서들 중 적어도 하나로 포워딩하는 수단을 더 포함하는, 모바일 디바이스.
  33. 제 32 항에 있어서,
    상기 계층적 인터페이스 선택 절차를 수행하는 수단은,
    상기 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 상기 각각의 사용가능한 원격 프로세서로부터 상기 제 1 프로세서에서 수신하는 수단; 및
    상기 제 1 프로세서상에서 각각의 사용가능한 상기 실제 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 수단을 더 포함하고;
    상기 수신된 네트워크 선택 정책 파라미터들에 최상으로 매칭하는 상기 네트워크 인터페이스를 선택하는 상기 수단은:
    사용가능한 상기 원격 프로세서 각각으로부터 수신된 상기 선택된 최상의 네트워크 인터페이스에 관한 정보; 및
    상기 제 1 프로세서상에서 사용가능한 상기 실제 인터페이스 각각이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도
    에 기초하여 최상으로 매칭하는 네트워크 인터페이스를 선택하는 수단을 포함하는, 모바일 디바이스.
  34. 제 33 항에 있어서,
    상기 계층적 인터페이스 선택 절차를 수행하는 수단은, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 수단을 더 포함하는, 모바일 디바이스.
  35. 제 34 항에 있어서,
    애플리케이션 또는 연결 관리자는 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는, 모바일 디바이스.
  36. 제 34 항에 있어서,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 수단은,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스인지 또는 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능한 인터페이스인지 여부를 판정하는 수단;
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스임을 판정한 것에 대한 응답으로, 표준 네트워크 구성을 개시하는 수단; 및
    선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 수단을 포함하는, 모바일 디바이스.
  37. 제 36 항에 있어서,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 수단은,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합하는 수단; 및
    상기사용가능한 원격 프로세서들 중의 상기 하나상의 상기 대응하는 인터페이스를 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 결합하는 수단을 포함하는, 모바일 디바이스.
  38. 제 37 항에 있어서,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합하는 수단이, 상기 프록시 인터페이스와 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스 사이의 다수의 프로세서들에 걸쳐 일련의 인터페이스들을 결합하는 수단을 포함하도록 하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 모바일 디바이스.
  39. 제 37 항에 있어서,
    상기 프록시 인터페이스는 주변 디바이스에 의해 사용되는, 모바일 디바이스.
  40. 제 39 항에 있어서,
    상기 주변 디바이스는 랩탑 컴퓨터인, 모바일 디바이스.
  41. 제 33 항에 있어서,
    상기 적어도 하나의 프록시 인터페이스를 통하여 상기 각각의 사용가능한 원격 프로세서에서 상기 포워딩된 네트워크 인터페이스 선택 요청을 수신하는 수단;
    상기 각각의 사용가능한 원격 프로세서상에서, 각각의 사용가능한 상기 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 수단;
    상기 각각의 사용가능한 원격 프로세서상에서, 상기 사용가능한 네트워크 인터페이스들이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도에 기초하여, 상기 애플리케이션 요청에 대한 최상의 사용가능한 네트워크 인터페이스를 선택하는 수단; 및
    상기 원격 프로세서상에서 사용가능한 상기 선택된 최상의 네트워크 인터페이스에 관한 상기 정보를, 각각의 사용가능한 상기 원격 프로세서로부터, 상기 제 1 프로세서로 전송하는 수단을 더 포함하는, 모바일 디바이스.
  42. 제 41 항에 있어서,
    상기 제 1 프로세서상에서 각각의 상기 사용가능한 실제 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 수단은, 상기 사용가능한 실제 인터페이스들에 대한 인터페이스 매치 인덱스 I 를 산출하는 수단을 포함하고; 그리고
    각각의 상기 원격 프로세서상에서 각각의 상기 사용가능한 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 수단은, 상기 사용가능한 네트워크 인터페이스들에 대한 인터페이스 매치 인덱스 I 를 산출하는 수단을 포함하고,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스는, 가장 큰 인터페이스 매치 인덱스 I 와 연관된, 모바일 디바이스.
  43. 제 41 항에 있어서,
    상기 네트워크 인터페이스 선택 요청을 제 1 원격 프로세서로부터 상기 제 1 원격 프로세서에 커플링된 적어도 하나의 제 2 원격 프로세서로 포워딩하는 수단으로서, 상기 제 1 원격 프로세서는 상기 제 1 프로세서에 커플링된 사용가능한 원격 프로세서를 포함하는, 상기 네트워크 인터페이스 선택 요청을 상기 제 1 원격 프로세서로부터 상기 제 1 원격 프로세서에 커플링된 적어도 하나의 상기 제 2 원격 프로세서로 포워딩하는 수단; 및
    상기 제 2 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 각각의 상기 사용가능한 상기 제 2 원격 프로세서로부터 상기 제 1 원격 프로세서에서 수신하는 수단을 더 포함하며,
    상기 제 1 원격 프로세서상에서 상기 애플리케이션 요청에 대한 상기 최상의 사용가능한 네트워크 인터페이스를 선택하는 수단은, 각각의 상기 사용가능한 제 2 원격 프로세서로부터 수신된, 선택된 최상의 네트워크 인터페이스에 관한 상기 정보에 기초하여, 최상의 상기 사용가능한 네트워크 인터페이스를 선택하는 수단을 포함하는, 모바일 디바이스.
  44. 제 42 항에 있어서,
    상기 제 1 원격 프로세서상의 프록시 인터페이스를 상기 사용가능한 제 2 원격 프로세서들 중의 하나상의 상기 선택된 최상의 네트워크 인터페이스에 결합하는 수단을 더 포함하는, 모바일 디바이스.
  45. 제 44 항에 있어서,
    상기 사용가능한 제 2 원격 프로세서들 중의 하나는 상기 제 1 원격 프로세서와 함께 확립된 다른 프록시 인터페이스를 포함하는, 모바일 디바이스.
  46. 저장된 프로세서 실행가능 명령들을 포함하는 비-일시적 (non-transitory) 프로세서 판독가능 저장 매체로서,
    상기 저장된 프로세서 실행가능 명령들은, 프로세서로 하여금,
    제 1 프로세서에서, 상기 제 1 프로세서상에서 수행중인 애플리케이션으로부터 네트워크 인터페이스 선택 요청을 수신하는 단계로서, 상기 네트워크 인터페이스 선택 요청은 네트워크 선택 정책 파라미터들을 포함하는 상기 제 1 프로세서상에서 수행되는 상기 애플리케이션으로부터 상기 네트워크 인터페이스 선택 요청을 수신하는 단계; 및
    복수의 프로세서들 중에서 계층적 인터페이스 선택 절차를 수행하는 단계를 포함하고,
    상기 계층적 인터페이스 선택 절차는,
    상기 제 1 프로세서상의 사용가능한 실제 인터페이스들의 리스트를 열거하는 단계;
    상기 제 1 프로세서에 직접 커플링된 사용가능한 원격 프로세서들의 리스트를 열거하는 단계;
    사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 프록시 인터페이스들의 리스트를 열거하는 단계로서, 각각의 상기 프록시 인터페이스는 상기 원격 프로세서상의 대응하는 인터페이스를 표시하는, 사용가능한 상기 원격 프로세서 각각에 대한 사용가능한 상기 프록시 인터페이스들의 리스트를 열거하는 단계; 및
    상기 사용가능한 실제 인터페이스들 및 프록시 인터페이스들 중으로부터 상기 네트워크 선택 정책 파라미터들에 최상으로 매칭되는 네트워크 인터페이스를 선택하는 단계를 포함하는, 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  47. 제 46 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 계층적 인터페이스 선택 절차가,
    상기 네트워크 인터페이스 선택 요청을 적어도 하나의 프록시 인터페이스를 통하여 상기 사용가능한 원격 프로세서들 중 적어도 하나로 포워딩하는 단계
    를 더 포함하도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  48. 제 47 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 계층적 인터페이스 선택 절차를 수행하는 단계가,
    상기 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 상기 각각의 사용가능한 원격 프로세서로부터 상기 제 1 프로세서에서 수신하는 단계; 및
    상기 제 1 프로세서상에서 각각의 사용가능한 상기 실제 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계를 더 포함하도록 하고,
    상기 수신된 네트워크 선택 정책 파라미터들에 최상으로 매칭하는 상기 네트워크 인터페이스를 선택하는 단계는:
    사용가능한 상기 원격 프로세서 각각으로부터 수신된 상기 선택된 최상의 네트워크인터페이스에 관한 정보; 및
    상기 제 1 프로세서상에서 사용가능한 상기 실제 인터페이스 각각이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도에 기초하여
    최상으로 매칭하는 네트워크 인터페이스를 선택하는 단계를 포함하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  49. 제 48 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 계층적 인터페이스 선택 절차를 수행하는 단계가,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 단계를 더 포함하도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  50. 제 49 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    애플리케이션 또는 연결 관리자는 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  51. 제 49 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 대한 네트워크 구성을 개시하는 단계가,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스인지 또는 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능한 인터페이스인지 여부를 판정하는 단계;
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 제 1 프로세서상에서 사용가능한 인터페이스임을 판정한 것에 대한 응답으로, 표준 네트워크 구성을 개시하는 단계; 및
    선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 단계
    를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  52. 제 51 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가 상기 사용가능한 원격 프로세서들 중의 하나상에서 사용가능함을 판정한 것에 대한 응답으로, 상기 선택된 가장 높게 매칭한 네트워크 인터페이스로 데이터 경로를 자동으로 연결하는 단계가,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합하는 단계; 및
    상기 사용가능한 원격 프로세서들 중의 상기 하나상의 상기 대응하는 인터페이스를 상기 선택된 가장 높게 매칭한 네트워크 인터페이스에 결합하는 단계
    를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  53. 제 52 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 제 1 프로세서의 프록시 인터페이스를 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스에 결합하는 단계가,
    상기 프록시 인터페이스와 상기 사용가능한 원격 프로세서들 중의 상기 하나상의 대응하는 인터페이스 사이의 다수의 프로세서들에 걸쳐 일련의 인터페이스들을 결합하는 단계
    를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  54. 제 52 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 프록시 인터페이스가 주변 디바이스에 의해 사용되도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  55. 제 54 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 주변 디바이스가 랩탑 컴퓨터이도록 하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  56. 제 48 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 적어도 하나의 프록시 인터페이스를 통하여 상기 각각의 사용가능한 원격 프로세서에서 상기 포워딩된 네트워크 인터페이스 선택 요청을 수신하는 단계;
    상기 각각의 사용가능한 원격 프로세서상에서, 각각의 사용가능한 상기 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계;
    상기 각각의 사용가능한 원격 프로세서상에서, 상기 사용가능한 네트워크 인터페이스들이 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도에 기초하여, 상기 애플리케이션 요청에 대한 최상의 사용가능한 네트워크 인터페이스를 선택하는 단계; 및
    상기 원격 프로세서상에서 사용가능한 상기 선택된 최상의 네트워크 인터페이스에 관한 상기 정보를, 각각의 사용가능한 상기 원격 프로세서로부터 상기 제 1 프로세서로 전송하는 단계
    를 더 포함하는 동작들을 수행하게 하도록 구성된, 비-일시적 프로세서 판독가능 저장 매체.
  57. 제 56 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 제 1 프로세서상에서 각각의 상기 사용가능한 실제 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계가, 상기 사용가능한 실제 인터페이스들의 각각에 대한 인터페이스 매치 인덱스 I 를 산출하는 단계를 포함하고; 그리고
    각각의 상기 원격 프로세서상에서 각각의 상기 사용가능한 네트워크 인터페이스가 상기 네트워크 선택 정책 파라미터들을 충족시키는 정도를 평가하는 단계는, 상기 사용가능한 네트워크 인터페이스들의 각각에 대한 인터페이스 매치 인덱스 I 를 산출하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성되고,
    상기 선택된 가장 높게 매칭한 네트워크 인터페이스가, 가장 큰 인터페이스 매치 인덱스 I 와 연관되는, 비-일시적 프로세서 판독가능 저장 매체.
  58. 제 56 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 네트워크 인터페이스 선택 요청을 제 1 원격 프로세서로부터, 상기 제 1 원격 프로세서에 커플링된 적어도 하나의 제 2 원격 프로세서로 포워딩하는 단계로서, 상기 제 1 원격 프로세서는 상기 제 1 프로세서에 커플링된 사용가능한 원격 프로세서를 포함하는, 상기 네트워크 인터페이스 선택 요청을 상기 제 1 원격 프로세서로부터, 상기 제 1 원격 프로세서에 커플링된 적어도 하나의 상기 제 2 원격 프로세서로 포워딩하는 단계; 및
    상기 제 2 원격 프로세서상에서 사용가능한 선택된 최상의 네트워크 인터페이스에 관한 정보를 각각의 상기 사용가능한 제 2 원격 프로세서로부터 상기 제 1 원격 프로세서에서 수신하는 단계
    를 더 포함하는 동작들을 수행하게 하도록 구성되며,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 제 1 원격 프로세서상에서 상기 애플리케이션 요청에 대한 상기 최상의 사용가능한 것을 선택하는 단계가, 각각의 상기 사용가능한 제 2 원격 프로세서로부터 수신된, 선택된 최상의 네트워크 인터페이스에 관한 상기 정보에 더 기초하도록 하는 동작들을 수행하게 하도록 구성되는, 비-일시적 프로세서 판독가능 저장 매체.
  59. 제 57 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 제 1 원격 프로세서상의 프록시 인터페이스를 상기 사용가능한 제 2 원격 프로세서들 중 하나상의 상기 선택된 최상의 네트워크 인터페이스에 결합하는 단계
    를 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적 프로세서 판독가능 저장 매체.
  60. 제 59 항에 있어서,
    상기 저장된 프로세서 실행가능 명령들은, 상기 프로세서로 하여금,
    상기 사용가능한 제 2 원격 프로세서들 중의 하나가 상기 제 1 원격 프로세서와 함께 확립된 다른 프록시 인터페이스를 포함하도록 하는 동작들을 수행하게 하도록 구성되는, 비-일시적 프로세서 판독가능 저장 매체.
KR1020127021901A 2010-01-22 2011-01-21 멀티-프로세서 멀티모드 네트워크 디바이스들을 위한 계층적 라우팅 및 인터페이스 선택 KR101411239B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US29733810P 2010-01-22 2010-01-22
US61/297,338 2010-01-22
US13/010,773 US9411647B2 (en) 2010-01-22 2011-01-20 Hierarchical routing and interface selection for multi-processor multimode network devices
US13/010,773 2011-01-20
PCT/US2011/022045 WO2011091242A2 (en) 2010-01-22 2011-01-21 Hierarchical routing and interface selection for multi-processor multimode network devices

Publications (2)

Publication Number Publication Date
KR20120124458A KR20120124458A (ko) 2012-11-13
KR101411239B1 true KR101411239B1 (ko) 2014-06-24

Family

ID=44342604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127021901A KR101411239B1 (ko) 2010-01-22 2011-01-21 멀티-프로세서 멀티모드 네트워크 디바이스들을 위한 계층적 라우팅 및 인터페이스 선택

Country Status (6)

Country Link
US (1) US9411647B2 (ko)
EP (1) EP2526734B1 (ko)
JP (1) JP5619182B2 (ko)
KR (1) KR101411239B1 (ko)
CN (1) CN102714886B (ko)
WO (1) WO2011091242A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8141784B2 (en) 2009-09-25 2012-03-27 Hand Held Products, Inc. Encoded information reading terminal with user-configurable multi-protocol wireless communication interface
IL207180A (en) * 2010-07-25 2016-03-31 Elta Systems Ltd A system for switching application processors in cellular systems
US8676258B2 (en) 2011-02-15 2014-03-18 David Goren Systems and methods of transferring user information to different devices
US10944866B2 (en) 2011-02-15 2021-03-09 David Goren Systems and methods of transferring user information to different devices
US8918841B2 (en) * 2011-08-31 2014-12-23 At&T Intellectual Property I, L.P. Hardware interface access control for mobile applications
US8898459B2 (en) 2011-08-31 2014-11-25 At&T Intellectual Property I, L.P. Policy configuration for mobile device applications
WO2013089736A1 (en) * 2011-12-15 2013-06-20 Intel Corporation IMPLEMENTING AN INTER-PROCESSOR COMMUNICATION IN A MULTI-CORE SYSTEM USING mmWAVE RADIOS
US9191699B2 (en) * 2011-12-29 2015-11-17 Sonos, Inc. Systems and methods for connecting an audio controller to a hidden audio network
US9356804B1 (en) * 2012-06-12 2016-05-31 Amazon Technologies, Inc. Policy-based network connection resource selection
US9059869B2 (en) * 2012-10-09 2015-06-16 Qualcomm Incorporated Interface selection in a hybrid communication device
US8855625B2 (en) 2012-12-10 2014-10-07 At&T Mobility Ii Llc Dynamic steering of traffic across radio access networks
US9294246B2 (en) * 2013-03-19 2016-03-22 Electronics And Telecommunications Research Institute Wireless communication device using common control channel and wireless communication method using the same
US9491678B2 (en) 2013-09-04 2016-11-08 At&T Mobility Ii Llc Cell broadcast for smart traffic steering across radio technologies with improved radio efficiency
US9542196B2 (en) * 2014-02-28 2017-01-10 Intel Corporation Communication terminal and method for providing configuration data for a modem with system boot firmware
US10313925B2 (en) * 2014-03-12 2019-06-04 Beartooth Radio, Inc. Long-range voice and data transmission using LoRa modulation and sensitivity-enhancing buffering techniques
DE102014003949A1 (de) * 2014-03-20 2015-09-24 Audi Ag Vernetzungssteuergerät für ein Kraftfahrzeug und Kraftfahrzeug
US9900845B2 (en) 2014-09-23 2018-02-20 At&T Intellectual Property I, L.P. Battery saving with radio control based on cellular condition data
US10002345B2 (en) 2014-09-26 2018-06-19 At&T Intellectual Property I, L.P. Conferencing auto agenda planner
CN104955049A (zh) * 2015-06-29 2015-09-30 南京熊猫电子股份有限公司 用mini UICC卡实现二次加密的模块电路及方法
KR102389003B1 (ko) 2015-10-13 2022-04-22 삼성전자주식회사 이종망간 전환시 멀티미디어 서비스 제공 장치 및 방법
CN105554742B (zh) * 2015-12-08 2018-12-28 南京熊猫电子股份有限公司 一种实现rfid加密通信的wapi模块电路及加密方法
US20170295598A1 (en) * 2016-04-07 2017-10-12 Qualcomm Incorporated Relaying based on service-type indicator and network availability
US10182387B2 (en) 2016-06-01 2019-01-15 At&T Intellectual Property I, L.P. Method and apparatus for distributing content via diverse networks
US10270888B2 (en) * 2016-12-05 2019-04-23 Parallels International Gmbh System and method for selecting connection mode between a client and a server
EP3818617A4 (en) * 2018-07-03 2022-04-13 Schneider Electric IT Corporation SYSTEMS AND METHODS OF PROVIDING NETWORK CONNECTION RESILIENCE IN POWER DEVICES

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
US7254639B1 (en) * 2002-05-20 2007-08-07 Cisco Technology, Inc. Methods and apparatus for directing packets among a group of processors
US20100184440A1 (en) 2009-01-22 2010-07-22 Microsoft Corporation Mobile device network selection
US20110085498A1 (en) 2009-08-24 2011-04-14 Kabushiki Kaisha Toshiba Plmn selection and inter-system mobility policy conflict resolution for multi-interface user

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327138T2 (de) * 1992-07-06 2000-04-27 Microsoft Corp Verfahren zur Namensgebung und zur Bindung von Objekten
US5608638A (en) 1995-02-06 1997-03-04 Advanced Micro Devices Device and method for automation of a build sheet to manufacture a packaged integrated circuit
JPH09186723A (ja) * 1995-12-29 1997-07-15 Hitachi Ltd ネットワーク通信処理方式
US6983463B1 (en) * 1998-10-02 2006-01-03 Microsoft Corporation Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment
JP2003101245A (ja) 2001-09-25 2003-04-04 Ind Technol Res Inst 積層回路の形成方法および形成装置
WO2003034776A1 (fr) 2001-10-11 2003-04-24 Fujitsu Limited Dispositif destine a etre utilise dans un systeme fournissant un service et ayant des composants integres dans un reseau ad hoc
US7257105B2 (en) * 2002-10-03 2007-08-14 Cisco Technology, Inc. L2 method for a wireless station to locate and associate with a wireless network in communication with a Mobile IP agent
US20050188070A1 (en) * 2004-01-28 2005-08-25 Sun Microsystems, Inc. Vertical perimeter framework for providing application services
US7522579B1 (en) * 2004-05-03 2009-04-21 Sprint Communications Company Lp Cable system providing SIP-based proxy services
EP1747520B1 (en) 2004-05-07 2018-10-24 Mentor Graphics Corporation Integrated circuit layout design methodology with process variation bands
US20060026268A1 (en) * 2004-06-28 2006-02-02 Sanda Frank S Systems and methods for enhancing and optimizing a user's experience on an electronic device
JP2006050515A (ja) 2004-06-30 2006-02-16 Ntt Docomo Inc 移動ノードおよび移動ノードの制御方法並びに移動ノード制御プログラム
DE602004020329D1 (de) 2004-07-01 2009-05-14 Alcatel Lucent Verfahren zur Auswahl zwischen Netzwerkschnittstellen, Gerät mit mehreren Netzwerkschnittstellen und Verarbeitungsschicht
JP4576965B2 (ja) 2004-07-14 2010-11-10 日本電気株式会社 通信端末装置及びそれに用いるネットワーク選択方法並びにそのプログラム
US7688792B2 (en) 2005-04-21 2010-03-30 Qualcomm Incorporated Method and apparatus for supporting wireless data services on a TE2 device using an IP-based interface
US8526463B2 (en) * 2005-06-01 2013-09-03 Qualcomm Incorporated System and method to support data applications in a multi-homing, multi-mode communication device
WO2007078663A2 (en) * 2005-12-16 2007-07-12 Interdigital Technology Corporation Mobility middleware architecture for multiple radio access technology apparatus
JP4623592B2 (ja) * 2006-06-12 2011-02-02 富士通株式会社 データ処理システムの試験方法、試験プログラム及び試験装置
US20080263194A1 (en) * 2007-04-17 2008-10-23 International Business Machines Corporation Method and system for optimal binding selection for service oriented architectures
JP4833911B2 (ja) 2007-04-25 2011-12-07 株式会社ソニー・コンピュータエンタテインメント プロセッサユニットおよび情報処理方法
US7724707B2 (en) * 2007-06-26 2010-05-25 Motorola, Inc. Network for a cellular communication system and a method of operation therefor
US8452954B2 (en) * 2010-04-08 2013-05-28 Intel Corporation Methods and systems to bind a device to a computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
US7254639B1 (en) * 2002-05-20 2007-08-07 Cisco Technology, Inc. Methods and apparatus for directing packets among a group of processors
US20100184440A1 (en) 2009-01-22 2010-07-22 Microsoft Corporation Mobile device network selection
US20110085498A1 (en) 2009-08-24 2011-04-14 Kabushiki Kaisha Toshiba Plmn selection and inter-system mobility policy conflict resolution for multi-interface user

Also Published As

Publication number Publication date
US9411647B2 (en) 2016-08-09
CN102714886A (zh) 2012-10-03
JP2013517586A (ja) 2013-05-16
KR20120124458A (ko) 2012-11-13
WO2011091242A3 (en) 2011-09-22
CN102714886B (zh) 2016-01-20
US20110191484A1 (en) 2011-08-04
WO2011091242A2 (en) 2011-07-28
JP5619182B2 (ja) 2014-11-05
EP2526734A2 (en) 2012-11-28
EP2526734B1 (en) 2016-01-06

Similar Documents

Publication Publication Date Title
KR101411239B1 (ko) 멀티-프로세서 멀티모드 네트워크 디바이스들을 위한 계층적 라우팅 및 인터페이스 선택
US9910806B2 (en) Universal serial bus (USB) hub for switching downstream ports between host mode and slave mode
US11258667B2 (en) Network management method and related device
US9860680B2 (en) Automatic connection of bluetooth human interface devices
US9094483B2 (en) System and method for collecting and evaluating statistics to establish network connections
WO2019024828A1 (en) RESOURCE CONFIGURATION METHOD, MOBILE TERMINAL, AND INFORMATION CARRIER
WO2016173349A1 (zh) 一种网络接入方法及移动通信终端
WO2022152089A1 (zh) 一种信息传输方法及其装置
US8873527B2 (en) System and method for managing routers and communication interfaces on a computing device
US20220206979A1 (en) Communications for field programmable gate array device
US20200364169A1 (en) Technologies for fast mausb enumeration
WO2014146229A1 (zh) Nfc设备通信方法、装置和nfc设备
WO2019015036A1 (zh) 一种中继器桥接方法和网关
WO2022001298A1 (zh) 通信方法和通信装置
RU2373565C2 (ru) Автоматическая генерация кода моделирования схемы обмена сообщениями
US9686820B2 (en) Transferring data between mobile devices having heterogeneous wireless communication interfaces
WO2019100924A1 (zh) 一种网络性能保障方法及装置
WO2023081202A1 (en) Mec dual edge apr registration on behalf of edge platform in dual edge deployments
JP7238157B2 (ja) 通信方法、端末、及びネットワークデバイス
JP2020194988A (ja) 通信制御方法および通信システム
CN109743237A (zh) 一种app的鉴权方法及网关
WO2024027398A1 (zh) 一种通信方法和装置
WO2023246104A1 (zh) 通信方法及相关装置
CN116208942A (zh) 近域通信中继节点发现方法及相关设备
CN115996370A (zh) 数据传输方法、装置、设备、存储介质及程序

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: 20170330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 6