후술하는 설명에서, 여러 특정한 세부사항들이 본 발명의 실시예들에 대한 철저한 이해를 돕기 위해 제공된다. 그러나, 당해 기술분야의 숙련자는 본 발명의 실시예들이 하나 이상의 특정한 세부사항 없이 또는 다른 구성요소 등과 결합하여 실시될 수 있음을 인식할 것이다. 다른 경우에, 주지의 구현들 또는 동작들은 다양한 실시예들의 양상들의 모호함을 피하기 위해 상세히 설명되거나 도시되지 않는다.
무선 오프로딩 기법은 제1 네트워크로부터 제2 네트워크로 오프로딩하도록 가입자를 독려 또는 유도하기 위해 서비스 제공자에게 툴을 제공한다. 이러한 도입부의 예를 위해, 서비스 제공자는 셀룰러 서비스 제공자로 지칭될 수 있고, 제1 네트워크는 셀룰러 네트워크로 지칭될 수 있으며, 제2 네트워크는 Wi-Fi 네트워크로 지칭될 수 있다.
셀룰러 서비스 제공자는 네트워크 데이터를 이용하여 개인 또는 그룹 단위로 셀룰러 가입자들을 위한 무선 오프로딩 우선순위를 판단할 수 있다. 무선 오프로딩 우선순위를 판단하기 위해, 셀룰러 서비스 제공자는 자신이 보유한 무선 네트워크 데이터 및/또는 자신이 무선 장치들(액티브 스캔 또는 Wi-Fi 네트워크들의 비컨 프레임들로부터 Wi-Fi 네트워크 데이터를 획득하여, 셀룰러 서비스 제공자에게 보고할 수 있음)로부터 네트워크들에 관해 학습한 무선 네트워크 데이터를 이용할 수 있다. 보고 태스크가 가입자들 사이에 공유되거나 데이터의 갭들을 채우도록 조정되는 것을 보장하기 위해, 각각의 무선 장치에는 스캔 할당이 주어질 수 있다. 네트워크 데이터로, 셀룰러 서비스 제공자는 개인 또는 그룹 단위의 무선 장치들을 위한 유용한 우선순위화 네트워크 리스트들을 생성할 수 있다. 이러한 우선순위화 네트워크 리스트들은 네트워크맵으로 표현될 수 있다.
셀룰러 서비스 제공자는 네트워크 데이터 이상의 것을 획득할 수 있다. 예컨대, 무선 장치들은 인증 요청이 최종 연결로 이어질 확률 또는 액세스 허가가 지연될 확률과 같은 연결 데이터를 제공할 수 있다. 무선 장치는, 서비스 제공자로 하여금 어떻게 네트워크가 또는 다른 경우엔 해당 특성들이 예컨대 시각(time of day) 또는 요일에 따라 변화될 수 있는지를 판단할 수 있게 하기 위해, 소정의 데이터에 타임스탬핑할 수 있다. 다른 데이터는 상이한 성능 또는 다른 특성을 가진 서비스 영역에 대한 커버리지 구역을 판단하는 데 유용한 데이터를 제공할 수 있는 무선 장치의 위치를 포함할 수 있다. 타임스탬프 및 위치 데이터의 조합을 이용하여, 서버가 이동 궤적을 얻어낼 수 있거나, 또는 가입자의 이동 속도를 나타내는 이동 궤적이 가입자들에 의해 명시적으로 제공될 수 있다. 이러한 데이터 모두가 무선 장치들을 위한 더 유용한 우선순위화 리스트들을 생성하는 데 유용할 수 있다.
셀룰러 서비스 제공자는 또한 가입자-특정 데이터를 획득할 수 있다. 몇몇의 이러한 데이터는 서비스 플랜의 파라미터들 또는 가입자 계정으로부터 유효할 수 있다. 그 밖의 이러한 데이터는 무선 장치에 대한 성능 이력 또는 사용자 선호도의 형태일 수 있다. 네트워크 우선순위를 조정하기 위한 규칙들은 구현, 구성, 또는 선호도에 따라 변화될 수 있는 파라미터들을 가진 비용 함수를 고려할 수 있다. 선호도는 예컨대 셀룰러 네트워크로부터 Wi-Fi 네트워크로 오프로딩하도록 인센티브 제안(incentive offer)의 형태로 가입자들을 독려할 수 있다. 인센티브 제안은 서비스 요금 할인이나 추가 또는 개선된 서비스의 제공을 포함할 수 있다.
도 1은 무선 네트워크 오프로딩 엔진(106)을 포함하는 시스템(100)을 도시하는 도면이다. 시스템(100)은 무선 장치들(102-1~102-N, 전체적으로 무선 장치들(102)로 지칭됨), 무선 네트워크들(104-1~104-N, 전체적으로 무선 네트워크들(104)로 지칭됨), 및 무선 네트워크 오프로딩 엔진(106)을 포함한다.
무선 장치들(102)은 최소한 프로세서, 메모리(프로세서 내에 구현될 수 있음), 라디오, 및 라디오 인터페이스(라디오의 “일부”로 구현될 수 있음)를 포함할 것이다. 무선 장치들(120)은 통상, 적용 가능하다면 입출력 인터페이스를 포함하는, 하나 이상의 입력 장치 및 하나 이상의 출력 장치를 구비할 것이다.
무선 장치들(102)은 스테이션들로 구현될 수 있다. 본원에 사용된 바와 같이, 스테이션은 예컨대 IEEE 802.11 규격에 순응하는 무선 매체에 대한 물리층(PHY) 인터페이스 및 매체 액세스 제어(MAC) 어드레스를 가진 장치로 지칭될 수 있다. IEEE 802.11 규격에 대한 순응이 명시적이도록 의도된 경우(즉, 장치가 IEEE 802.11 규격의 적어도 일부에 기재된 바와 같이 동작하는 경우), 스테이션은 “IEEE 802.11-순응형”으로 기술될 수 있다. 당해 기술분야의 숙련자는 오늘날 IEEE 802.11 규격이 포함하고 있는 바와, IEEE 802.11 규격이 시간의 경과에 따라 변화될 수 있다는 것을 이해할 것이며, 적용 가능한 변화가 이루어지면, 본 명세서에 설명된 기법들을 IEEE 802.11 규격의 미래 형태에 순응하여 적용할 것으로 예상할 것이다. IEEE 규격 802.11™-2007(IEEE 규격 802.11-1999의 개정안)이 참조로서 통합된다. IEEE 802.11k-2008, IEEE 802.11n-2009, IEEE 802.11p-2010, IEEE 802.11r-2008, IEEE 802.11w-2009, 및 IEEE 802.11y-2008 역시 참조로서 통합된다.
대안적인 실시예들에서, 하나 이상의 무선 장치(102)는 어떤 다른 규격에 순응하거나 또는 아무 규격에도 순응하지 않을 수 있고, 무선 매체 또는 다른 매체에 대한 상이한 인터페이스들을 구비할 수 있다. 모든 규격들이 무선 장치들을 “스테이션들”로 지칭하는 것은 아니라는 것을 주목해야 하고, 그러나 이 용어가 본 명세서에서 사용된 경우에는, 유사 유닛이 모든 적용 가능한 무선 네트워크들 상에 존재하리라는 것을 이해해야 한다. 그러므로, “스테이션”이라는 용어의 사용은, 무선 장치들을 스테이션들로 기술하고 있는 실시예의 범주를, 상기 용어를 명시적으로 사용하고 있는 규격에 한정하는 것이 설명의 맥락에서 적절하지 않으면, 이와 같이 한정하는 것으로 해석되지 않아야 한다.
무선 네트워크(104)는 통상, 무선 네트워크들(104) 중 해당 무선 네트워크 상의 무선 장치들을 유선 LAN과 같은 다른 네트워크와 상호 연결하는 인터네트워킹 유닛(IWU)을 포함할 것이다. IWU는 종종 무선 액세스 포인트(WAP)로 지칭된다. IEEE 802.11 규격 내에서, WAP는 스테이션으로도 정의된다. 따라서, 스테이션은 비-WAP 스테이션 또는 WAP 스테이션일 수 있다. 셀룰러 네트워크에서, WAP는 종종 기지국으로 지칭된다.
무선 네트워크들(104)은 네트워크 유형 또는 다른 방식에 따라 상이할 수 있는 임의의 적용 가능한 기술을 이용하여 구현될 수 있다. 무선 네트워크들(104)은 임의의 적절한 크기(예컨대, 도시권 네트워크(MAN), 개인 네트워크(PAN) 등)로 이루어질 수 있다. 광대역 무선 MAN들은 참조로서 통합되는 IEEE 802.16에 순응할 수도 있고, 그렇지 않을 수도 있다. 무선 PAN들은 참조로서 통합되는 IEEE 802.15에 순응할 수도 있고, 그렇지 않을 수도 있다. 무선 네트워크들(104)은 네트워크 유형(예컨대, 2G, 3G, 4G, Wi-Fi), 서비스 제공자, WAP/기지국 ID(예컨대, Wi-Fi SSID, 기지국 및 섹터 ID), 지리-위치, 또는 다른 식별 기준에 의해 식별 가능할 수 있다.
무선 네트워크들(104)은 중간 네트워크를 통해 서로 연결될 수도 있고, 그렇지 않을 수도 있다. 중간 네트워크는 인터넷, 공중전화교환망(PSTN), 또는 기반구조망(예컨대, 사설 LAN)을 포함하지만 이에 제한되지 않는 실제로 모든 유형의 통신망들을 포함할 수 있다. 본원에 사용된 바와 같이, “인터넷”이란 용어는 TCP/IP 프로토콜과 같은 소정의 프로토콜들, 및 가능하게는 월드와이드웹(웹)을 구성하는 하이퍼텍스트 마크업 언어(HTML) 문서들을 위한 하이퍼텍스트 트랜스퍼 프로토콜(HTTP)과 같은 다른 프로토콜들을 이용하는 네트워크들의 네트워크를 지칭한다.
도 1의 예에서, 무선 네트워크 오프로딩 엔진(106)은 무선 장치(102-1)에 연결된다. 특정한 구현예에서, 무선 네트워크 오프로딩 엔진(106)은 서버 상에 구현되며, 인터넷을 통해 무선 장치(102-1)에 연결된다. 그러나, 도 2를 참조하여 보다 상세히 후술되는 무선 네트워크 오프로딩 엔진(106)의 적어도 일부는, 무선 네트워크 오프로딩 엔진(106)의 다른 부분(예컨대, 서버 부분)을 포함하는 서버 연결이 있든 없든, 대안으로 무선 장치(102-1) 상에 구현될 수 있다.
동작예에서, 주기적으로, 때때로, 또는 지시 받은 경우, 무선 장치(102-1)는 유효 네트워크 특성화 스캔(available network characterization scan, ANCS)을 하나 이상의 무선 네트워크(104)에 수행한다. 무선 장치(102-2)와 같은 다른 장치들 또는 어떤 다른 스테이션 역시 ANCS를 수행할 수도 있고, 그렇지 않을 수도 있다. ANCS는 각각의 네트워크에 대한 유효 성능(예컨대, 데이터율, 비트율 가변성, 레이턴시, 레이턴시 지터, 서비스 품질(QoS), 응답 시간 등)을 특성화하기 위해 사용될 수 있다.
성능을 측정하기 위한 몇몇 객관적인 기준(예컨대, 처리량)이 존재한다. 지능형 네트워크 감시는 무선 네트워크(예컨대, 라디오 액세스 네트워크 및/또는 코어 네트워크)의 (예컨대, 패킷 레벨/층, 네트워크 스택 응용 인터페이스 레벨/층 및/또는 응용 레벨/층에서의) 네트워크 서비스 이용의 실시간 감시를 가능하게 하여, (예컨대, 수용 가능한 사용자 경험을 여전히 유지하는 한편) 네트워크 용량을 보호하도록 네트워크 서비스 이용을 효과적으로 관리할 수 있다. 장치들의 네트워크 서비스 이용 감시를 제공하기 위해 장치 보조 서비스(DAS) 기법을 이용하여 그리고 일부 경우에는 네트워크 보조/기반 기법을 이용하여, 네트워크 캐리어들/오퍼레이터들은 어떤 장치인지, 어떤 사용자인지, 어떤 응용인지, 언제 어디서 네트워크 혼잡 문제가 일어나는지를 더 잘 알 수 있게 되어, 오퍼레이터들은 필요한 경우 소정의 영역들에 추가적인 자원들을 지능적으로 추가하여(예컨대, 팸토셀들 또는 WiFi 핫스팟들 상으로 데이터 트래픽을 오프로딩하고, 더 많은 네트워크 자원들을 추가함), 예컨대 네트워크 비지(busy) 상태에 기반하여 네트워크 서비스 이용을 차별적으로 과금하고/과금하거나, 네트워크 서비스 이용을 차별적으로 제어하여, 네트워크 용량을 보호할 수 있다.
성능은 네트워크 성능에만 기반할 필요는 없다. 예컨대, 가입자는 경제적 성능(예컨대, 가격)에 관심이 있을 수 있다. 따라서, 본 명세서에서, 네트워크 성능, 경제적 성능, 신뢰성을 포함하는 다양한 파라미터들 및/또는 사용자 또는 서비스 제공자의 선호도를 나타내는 다른 파라미터들을 포함할 수 있는 성능은 종종 비용 함수를 이용하여 특성화된다. 특정한 유형의 성능이 적용 가능한 경우, 그 의미는 (예컨대, 단지 “성능”이 아닌 “네트워크 성능”을 참조함으로써) 명시적이 될 수 있거나, 또는 문맥상 유추될 수 있다.
무선 장치(102-1)는 무선 네트워크들(104)의 각 스캔된 네트워크에 대해 유효 성능을 특성화하기 위해 ANCS의 결과를 이용하여 ANCS 보고서를 생성한다. ANCS 보고서는 또한 무선 장치(102-1)에 대해 현재 유효 네트워크들의 ID, 위치, 시간, 및 잠재적인 몇몇 성능 특성화를 포함할 수 있다. 무선 장치(102-1)는 ANCS 보고서를 무선 네트워크 오프로딩 엔진(106)에 유효하게 만든다. 무선 장치(102-1)는 위치, 성능 임계치, 이동 궤적, 다른 장치들 또는 간섭에 대한 지식, 성능 이력, 응용들(예컨대, VoIP 또는 스트리밍 매체 응용), 언제 장치가 네트워크에 연결 또는 오프로딩되는지에 관한 장치-특정 규칙들(예컨대, 신뢰성, 성능 상태, 혼잡 상태, QoS, 인센티브 상태 등에 기반함), 또는 비용 함수(예컨대, 신호 강도, 채널 강도, 기본 라디오 비트율, 네트워크 속도, 네트워크 처리량, 속도 지터, 처리량 지터, 네트워크 지연, 지연 지터, 네트워크 유효성, 액세스 허가 백분율에서의 네트워크 신뢰성, 액세스 허가 지연 시의 네트워크 신뢰성, 위치 함수로서의 성능 변화 등에 기반함)와 같은 장치-특정 정보를 유효하게 만들 수도 있다. 대안으로, 몇몇 장치-특정 정보는 무선 네트워크 오프로딩 엔진(106)과 공유될 수도 있고, 그렇지 않을 수도 있으며, 무선 장치(102-1)에서 생성되거나 수신되는 우선순위 리스트 또는 다차원 네트워크맵을 맞춤화하기 위해 사용될 수 있다.
무선 네트워크 오프로딩 엔진(106)은 ANCS 보고서 및/또는 무선 네트워크 오프로딩 엔진(106)에 알려진 다른 데이터로부터 다차원 네트워크맵을 생성한다. 무선 네트워크 오프로딩 엔진(106)은 다차원 네트워크맵을 무선 장치(102-1)에 제공할 수 있고, 무선 장치(102-1)는 이로부터 무선 동작 명령어 세트를 생성하거나 수정할 수 있다. 대안으로, 무선 네트워크 오프로딩 엔진(106)은 다차원맵으로부터 명령어 세트를 생성할 수 있고, 이를 무선 장치(102)에 유효하게 만든다. 명령어 세트는 수신된 후 무선 장치(102-1)에 의해 맞춤화된 일반적인 알고리즘의 구현일 수 있거나, 또는 명령어 세트는 무선 장치(102-1) 또는 무선 장치(102-1)를 포함하는 장치들의 세트를 위해 특별하게 생성되어, 장치-특정 파라미터들(예컨대, 절전 설정, 위치, 시각 등)에 따라 장치 상에서 실행될 수 있다. 유리하게는, 무선 장치(102-1)는 명령어 세트를 이용하여 무선 네트워크들(104) 중 하나로부터 다른 하나로 무선 장치(102-1)의 지능형 오프로딩을 가능하게 할 수 있다. 몇몇 실시예들에서, 무선 장치(102-1)는 네트워크 선택 결정을 내리기 전에 다차원 네트워크맵을 수정할 수 있다. 무선 네트워크 오프로딩 엔진은 네트워크 선택 결정을 내리기 위해 무선 장치(102-1)에 하나 이상의 파라미터 및/또는 알고리즘을 제공할 수 있다.
네트워크 용량을 보호하기 위한 차별적인 네트워크 액세스 제어는, 어떤 네트워크(예컨대, 2G, 3G, 4G, 홈 또는 로밍, WiFi, 케이블, DSL, 섬유, 유선 WAN 및/또는 다른 유선 또는 무선 또는 액세스 네트워크)에 서비스 활동이 연결되어야 하는지를 판단하기 위해 정책들을 적용하는 단계, 및 어떤 네트워크에 서비스 활동이 연결되어 있는지에 따라 차별적인 네트워크 액세스 제어 규칙들(예컨대, 트래픽 제어 규칙들)을 적용하는 단계를 포함한다. 몇몇 실시예들에서, 네트워크 용량을 보호하기 위한 차별적인 네트워크 액세스 제어는, 서비스 이용 제어 정책 및 사용자 입력(예컨대, 사용자 선택 또는 사용자 선호도)에 기반하여 네트워크 서비스 이용 활동들을 차별적으로 제어하는 단계를 포함한다. 구현에 따라, 네트워크 서비스 이용 제어 정책은, 몇 가지 언급하자면, 대안적인 네트워크들의 유효성, 대안적인 네트워크들을 선택하기 위한 정책 규칙들, 대안적인 네트워크들의 네트워크 비지 상태 또는 유효성 상태, 소정의 네트워크 서비스 활동 또는 네트워크 서비스 활동들의 세트를 위한 특정한 네트워크 선택 또는 선호도 정책들을 고려할 수 있다.
특정한 구현예에서, 무선 장치(102)는 장치가 경험한 네트워크 비지 상태(예컨대, 하나 이상의 네트워크 용량 제어 서비스에 대해 네트워크 액세스 제어 정책을 판단하기 위해 사용될 수 있음)의 판단(예컨대, 측정 및/또는 특성화)을 돕는다. 예컨대, 장치가 경험한 네트워크 비지 상태는 장치에 의해 기록될 수 있으며, 네트워크 요소/기능(예컨대, 본원에 설명된 바와 같은 무선 네트워크 오프로딩 엔진(106))에 송신되는 네트워크 비지 상태 보고서에 포함될 수 있다. 예로서 몇 가지 언급하자면, 네트워크 비지 상태 보고서는 예컨대 데이터율, 평균 처리량, 최소 처리량, 처리량 지터, 레이턴시, 레이턴시 지터, 비트 에러율, 데이터 에러율, 패킷 에러율, 패킷 드롭율, 액세스 시도 횟수, 액세스 성공 횟수, 액세스 실패 횟수, QoS 레벨 유효성, QoS 레벨 성능, 선행하는 파라미터들 중 임의의 파라미터의 가변성 및/또는 선행하는 파라미터들 중 임의의 파라미터의 과거 통계를 포함할 수 있다. 예로서 몇 가지 언급하자면, 네트워크 요소에 대한 네트워크 비지 상태 보고서와 연관된 에지 네트워크 요소를 식별하기 위해, 네트워크 비지 상태 보고서는 예컨대 2G, 3G, 4G 또는 WiFi 기지국 ID, SSID, 셀 섹터 ID, CDMA ID, FDMA 채널 ID, TDMA 채널 ID, GPS 위치 및/또는 물리적 위치를 포함할 수 있다. 특정한 구현예에서, 네트워크 비지 상태를 측정하고/측정하거나 보고할 수 있는 하나 이상의 네트워크 요소(예컨대, 무선 네트워크 오프로딩 엔진(106), BTS, BTSC, 액세스 포인트, 기지국 모니터 및/또는 방송 모니터)에 의해, 네트워크 비지 상태를 감시한다.
명확한 예시적인 실시예로서, 무선 장치(102)(예컨대, 장치 상의 네트워크 성능 특성화 소프트웨어 또는 하드웨어 에이전트)는 대안적인 네트워크 액세스 포인트 또는 기지국 자원의 네트워크 비지 상태를 특성화하기 위해 네트워크 요소(예컨대, 무선 네트워크 오프로딩 엔진(106))와 함께 동작한다. 이러한 실시예들에서, 장치는 유효한 대안적인 네트워크를 감지하고, 대안적인 네트워크를 통해 네트워크 요소(예컨대, 무선 네트워크 오프로딩 엔진(106))에 연결되고, 네트워크 성능 감시 중에 다운로드 및/또는 업로드 시퀀스를 수행하고, 이후 성능이 특성화 또는 기록되게 할 수 있다. 성능은 네트워크 요소(예컨대, 무선 네트워크 오프로딩 엔진(106)), 무선 장치(102)(예컨대, 네트워크 성능 특성화 소프트웨어 또는 하드웨어 에이전트), 또는 양자에 의해 특성화될 수 있다.
다른 명확한 실시예로서, 무선 장치(102)(예컨대, 장치 상의 네트워크 성능 특성화 소프트웨어 또는 하드웨어 에이전트)는 유효한 대안적인 네트워크를 감지하고, 대안적인 네트워크에 연결되며, 사용자가 네트워크 연결 서비스를 이용할 수 있게 하고, 최종 네트워크 성능을 감시하며, 성능 결과를 기록할 수 있다.
특정한 구현예에서, 하나 이상의 메인 네트워크 및/또는 대안적인 네트워크들 상에서 무선 서비스들을 이용하는 하나 이상의 무선 장치는 대안적인 네트워크 성능, 비지 상태 및/또는 QoS 상태 정보를 수집하기 위해 본원에 설명된 바와 같이 사용된다.
특정한 구현예에서, 메인 네트워크들 및/또는 대안적인 네트워크들은, 하나 이상의 대안적인 네트워크 기지국 또는 액세스 포인트 근처에 영구적으로 위치되며 무선 네트워크 오프로딩 엔진(106)과 통신하도록 구성된 장치들에 의해 감시 및 특성화될 수 있다. 영구적으로 위치된 이동 단말기는, 예컨대 네트워크 비지 상태를, 예컨대 하나 이상의 네트워크 커버리지 영역에 대해 네트워크 비지 상태를 판단하기 위해 이러한 네트워크 비지 상태 정보를 수집할 수 있는 무선 네트워크 오프로딩 엔진(106)과 같은 중앙 네트워크 요소에 보고하기 위한 네트워크 모니터들을 제공할 수 있다.
예컨대, 방송 모니터들 및/또는 기지국 모니터들은, 이동 단말기들이 무선 네트워크 오프로딩 엔진(106), 근거리 기지국 및/또는 다른 네트워크 요소(들)/기능(들)에 대한 네트워크 비지 상태 감시 및 보고를 수행하도록, 하나 이상의 기지국 및/또는 기지국 섹터(예컨대, 여기서 섹터는 지향성 안테나와 주파수 채널의 조합임)의 커버리지 영역 내에 (예컨대, 일시적 또는 영구적으로) 설치되는 부착형(affixed) 이동 단말기들(예컨대, 추가적인 네트워크 비지 상태 감시 및/또는 보고 기능을 포함할 수 있는 신뢰(trusted) 단말기들)과 같이, 하나 이상의 기지국 및/또는 기지국 섹터 및/또는 WiFi 액세스 포인트의 커버리지 영역에서 네트워크 비지 상태의 신뢰할 수 있는 특성화를 촉진하기 위해 제공될 수 있다. 몇몇 실시예들에서, 영구적으로 부착된 이동 단말기들은, 예컨대 네트워크 비지 상태(또는 성능, 신뢰성 또는 QoS)를, 예컨대 하나 이상의 네트워크 커버리지 영역에 대해 네트워크 비지 상태를 판단하기 위해 이러한 네트워크 비지 상태 정보를 모을 수 있는 무선 네트워크 오프로딩 엔진(106)과 같은 중앙 네트워크 요소에 보고하기 위한 네트워크 모니터들을 제공한다. 몇몇 실시예들에서, 이동 단말기들은 항상 설치된 위치에 있으며 항상 온-상태(예컨대, 네트워크 감시를 수행함)이고, 신뢰될 수 있다(예컨대, 이동 단말기들은 다양한 하드웨어 및/또는 소프트웨어 인증서로 로딩될 수 있다). 예컨대, 이동 단말기들을 이용하여, 네트워크 비지 상태의 신뢰할 수 있는 특성화가 제공될 수 있고, 이는 이후 중앙 네트워크 요소에 보고되며 수집되어, 다양한 실시예들과 관련하여 본원에 설명된 바와 같은 다양한 네트워크 비지 상태 관련 기법들을 수행할 수 있다.
특정한 구현예에서, 무선 네트워크 오프로딩 엔진(106)은 동일한 대안적인 네트워크에 연결된 영구적인 이동 단말기들 및/또는 사용자 장치들로부터의 네트워크 비지 상태 보고서(또는 성능 보고서 또는 QoS 보고서)를 이용하여, 장치에 연결된 대안적인 네트워크 에지 요소에 대한 네트워크 비지 상태를 판단한다.
몇몇 실시예들에서, 네트워크 요소/기능(예컨대, 무선 액세스 포인트 또는 기지국)은 네트워크 에지 요소에 대한 비지 상태 보고서를 장치(예컨대, 장치 및 동일한 네트워크 에지 요소에 연결된 다른 장치들)에 송신하고, 이후 상기 장치는 이를 이용하여 네트워크 비지 상태에 기반한 (예컨대, 네트워크 용량 제어 서비스를 위한) 차별적인 네트워크 액세스 제어 정책들을 구현할 수 있다. 몇몇 실시예들에서, 네트워크 비지 상태는 네트워크 요소(예컨대, 무선 네트워크 오프로딩 엔진(106) 또는 서비스 클라우드)에 의해 제공되며, 장치에 방송된다(예컨대, 무선 장치(102)에 확실히 전달된다).
몇몇 실시예들에서, 무선 장치(102)(예컨대, 네트워크 성능 특성화 소프트웨어 또는 하드웨어 에이전트)는 유효한 대안적인 WWAN, WLAN, WPAN, Ethernet 및/또는 DSL 네트워크 연결들 가운데 어떤 네트워크를 장치가 선택해야 하는지를 판단하는 네트워크 서비스 프로파일 설정에 따라 액세스 네트워크 연결을 선택한다. 이러한 선택은 하나 이상의 대안적인 네트워크의 성능, 신뢰성, 비지 상태, 또는 QoS 능력에 기반할 수 있다. 대안적인 네트워크들의 특성화는 OTA(over the air) 또는 RF 성능만이 아니라 단대단 성능에 기반할 수 있다. 예컨대, 서비스 프로파일 설정은, Wi-Fi(예컨대, Wi-Fi 또는 DSL/케이블, 위성 또는 T-1과 같은 임의의 다른 네트워크)가 아닌 경우, Wi-Fi 다음으로 실제 액세스 네트워크(예컨대, 홈 DSL/케이블, 커피숍, 쇼핑 센터, 공용 WiFi 핫스팟, 또는 작업 네트워크)의 성능에 기반할 수 있고, 이는 커피숍에서 Wi-Fi 네트워크에 액세스하는 것과 다르게 관찰된다. 예컨대, DSL 또는 T-1 백홀 상에 상당수의 사용자들이 있는 Wi-Fi 핫스팟 상황에서는, 무선 네트워크 오프로딩 엔진(106)이 서비스 제공자 클라우드 또는 MVNO 클라우드 내에 안착될 수 있고, 서비스 제어가 서비스 제공자에 의해 제안된 VSP 능력에 의해 제공될 수 있거나, 또는 무선 네트워크 오프로딩 엔진(106)이 액세스 네트워크 서비스 제공자와 어떤 연관도 없이 스스로 무선 네트워크 오프로딩 엔진(106)을 이용하는 핫스팟 서비스 제공자에 의해 소유될 수 있다.
도 2는 무선 네트워크 상의 스테이션들에 우선순위화 네트워크 리스트를 제공하기 위한 시스템(200)의 일례를 도시하는 도면이다. 도 2의 예에서, 시스템(200)은 네트워크(202), PoP(point-of-presence, 204), 네트워크 스위치(206), 무선 네트워크들(208-1~208-N, 전체적으로 무선 네트워크들(208)로 지칭됨), 및 통신 서비스 제공자(CSP, 210)를 포함한다. 무선 네트워크(208-1)는 WAP(212), 및 동작 중에 스테이션들(214-1~214-N, 전체적으로 스테이션들(214)로 지칭됨)을 포함한다. CSP(210)는 우선순위화 네트워크 리스트 제공 엔진(216)을 포함한다.
네트워크(202)는 스테이션(214-1)을 CSP(210)에 연결할 수 있는 임의의 적용 가능한 네트워크를 포함할 수 있다. PoP(204)가 네트워크(202)에 연결된다. “PoP”라는 용어는 종종 인터넷 상의 PoP를 나타내도록 사용된다. 그러나, 도 2를 참조하여 사용된 용어는 네트워크 유형과 무관하게 네트워크(202) 상의 PoP를 의미하도록 의도된다. 네트워크 스위치(206)는 WAP(212)를 LAN과 같은 (통상적으로) 유선의 네트워크에 연결하기 때문에 무선 네트워크 스위치로 지칭될 수 있다. “WAP”라는 용어는 종종 IEEE 802.11-호환 네트워크 내의 AP 스테이션들을 참조하여 사용된다. 그러나, 이 용어는 무선 네트워크가 어떤 다른 액세스 기술을 이용할 때 해당 노드를 포함하는 것으로 해석되어야 한다(예컨대, “기지국”이라는 용어는 종종 셀룰러 네트워크의 액세스 노드를 나타내도록 사용된다). 일부 경우에, PoP(204), 네트워크 스위치(206), WAP(212) 중 하나 이상이 같은 장소에 위치될 수 있다.
무선 네트워크들(208)은 적용 가능한 주지의 또는 편리한 무선 네트워크 유형으로 이루어질 수 있다. 기본 서비스 세트(BSS)는 서로 통신하는 스테이션들의 그룹을 지칭하기 위해 IEEE 802.11에서 사용되는 용어이다. 기본 서비스 영역은 무선 매체의 전파 특성들에 의해 정의된다. (“영역”이라는 용어는 통상적으로 기본 서비스 영역의 3차원 공간을 설명하기 위해 사용됨을 주목한다.) 기본 서비스 영역 내의 스테이션은 BSS 내의 다른 스테이션들과 통신할 수 있다. 무선 네트워크(208-1)에 대해 도 2의 예에서 설명된 바와 같이 WAP를 가진 BSS는 기반구조 BSS로 지칭될 수 있다. 독립형 BSS(애드 혹 BSS로도 알려져 있음)를 나타내는 약어인 IBSS와의 혼동을 피하기 위해, 기반구조 BSS는 IBSS로 지칭되지 않는다. 기반구조 BSS는 WAP으로부터의 거리에 의해 정의된다; 따라서 무선 네트워크(208-1) 상에 있는 모든 스테이션들(214)은 WAP(212)가 닿는 곳에 있다(도시된 바와 같이, 스테이션들(214)은 무선 네트워크(208-1)와 연관된 클라우드 내에 있다). 기반구조 BSS에서, 스테이션들은 네트워크 서비스를 획득하기 위해 WAP와 연관되어야 한다. 스테이션들은 통상 프로세스를 개시하고, WAP는 연관 요청의 콘텐츠들에 기반하여 액세스를 허락 또는 거부할 것인지를 결정한다. 이러한 프로세스가 IEEE 802.11 언어의 맥락에서 설명되었지만, 유사한 설명이 다른 무선 네트워크 기술들에 적용 가능하다.
무선 네트워크(208-1)는 WAP(212)의 범위에 의해 크기가 제한되지만, 다수의 WAP들(미도시)을 이용하여 무선 네트워크(208-1)의 크기를 증가시킬 수 있다. 확장 서비스 세트(ESS)는 다수의 BSS들을 포함할 수 있고, 이들 각각은 백본 네트워크에 연결된다. ESS 내의 WAP들 모두에는 동일한 서비스 세트 식별자(SSID)가 부여되며, 이는 무선 네트워크의 “명칭”으로 간주될 수 있다. 기본 서비스 영역들이 확장 서비스 영역 내에서 중첩되는 정도는 구현-특정이고/이거나 기술-특정이다.
WAP(212)는 동일한 라디오로 다수의 무선 네트워크들을 지원할 수도 있고, 그렇지 않을 수도 있다. WAP(212) 내에서 각각의 SSID는 가상 LAN(VLAN)과 연관될 수 있다. 이것의 비교적 일반적인 구현은 WAP(212)가 게스트 네트워크(제1 VLAN) 및 내부 네트워크(제2 VLAN)를 지원하는 경우이다. 스테이션들(214)은 라디오 도메인 내의 별개의 두 네트워크를 볼 수 있을 것이다. 그러므로, 무선 네트워크(218)는 별개의 WAP들을 구비할 수도 있고, 그렇지 않을 수도 있다. 다수의 네트워크들을 지원하는 WAP는, 특히 방송 파워 또는 주파수 대역이 상이하다면, 각각의 네트워크에 대해 동일한 범위를 가질 수도 있고, 그렇지 않을 수도 있다(예컨대, WAP는 802.11a 및 802.11b/g-호환형일 수 있다).
도 2의 예에서, 스테이션들(214)은 무선 네트워크들(208)의 서비스 영역 내에 있다. 예로서 도시된 바와 같이, 스테이션들 중 몇몇, 예컨대 스테이션(214-N)은 다른 스테이션들(214)과 상이한 무선 네트워크, 예컨대 무선 네트워크(208-N)의 서비스 영역 내에 있을 수 있다. 스테이션들(214)이 무선 네트워크들(208)의 각각의 서비스 영역들에 있다면, 스테이션들(214)은 무선 네트워크(208)의 서브세트에 관한 정보를 송신할 수 있다. 서브세트에 의해, 구현 또는 스테이션 능력에 따라, 스테이션은 각각의 서비스 영역들에 있는 경우 무선 네트워크들(208) 모두에 관한 정보를 송신할 수도 있고, 그렇지 않을 수도 있으며, 무선 네트워크들(208) 중 임의의 하나에 관한 정보를 송신할 수도 있고, 그렇지 않을 수도 있도록 의도된다. 구현 또는 스테이션 능력에 따라, 스테이션은 예컨대 WAP가 실패하거나 스테이션이 서비스 영역을 벗어나는 경우와 같이 무선 네트워크의 서비스 영역 내에 더 이상 있지 않은 경우, 네트워크에 관한 정보를 송신할 수도 있고, 그렇지 않을 수도 있다. 예로서 도시된 바와 같이, 스테이션(214-1)은 무선 네트워크들(208-1, 208-2)의 서비스 영역 내에 있다. 따라서, 스테이션(214-1)은 무선 네트워크들(208-1, 208-2)에 관한 정보 또는 무선 네트워크(208-1)와 무선 네트워크(208-2) 중 어느 하나에 관한 정보를 송신하거나, 무선 네트워크들(208-1, 208-2) 중 어느 것에 관한 정보도 송신하지 않을 수 있다; 스테이션(214-1)이 현재 무선 네트워크(208-N)의 서비스 영역 내에 있지 않더라도, 스테이션(214-1)은 예컨대 과거 데이터, 스테이션(214-N)으로부터 수신된 데이터, 또는 다른 소스로부터 수신된 데이터에 기반하여 무선 네트워크(208-N)에 관한 정보를 송신할 수도 있고, 그렇지 않을 수도 있다.
스테이션들(214)은 WAP(212)를 통해 CSP(210)에 연결되어 동작한다. CSP(210)가 무선 네트워크(208-1)를 포함하는 기업 네트워크의 일부인 경우, CSP(210)는 WAP(212)가 연결되어 있는 유선 백본 네트워크 상에 있을 수 있기 때문에, 스테이션들(214)은 PoP(204)를 통해 CSP(210)에 실제로 연결될 수도 있고, 그렇지 않을 수도 있다. 그러나, 이러한 관찰은 당해 기술분야의 숙련자가 도 2의 예를 이해하는 것을 어렵게 만들지 않는다.
CSP(210)는 예컨대 전기통신(지상선 또는 무선), 인터넷, 케이블, 위성 및/또는 관리 서비스 사업 내의 공용 또는 사설 개체의 일부일 수 있다. CSP들은 종종 전기통신, 엔터테인먼트 및 미디어, 인터넷/웹 서비스와 같은 산업에서 특화되지만, 서비스 제공자들은 다양한 영역에서 활동할 수 있다. CSP에 유효한 데이터로 인해 CSP가 우선순위화 네트워크 리스트 제공 엔진(216)을 가장 잘 구현할 수 있는 가능성이 높지만, 스테이션들 또는 CSP들 또는 아마도 CSP 또는 어떤 다른 개체를 대신하여 서비스를 제공하는 관리 서비스 제공자(MSP)로부터 충분한 데이터가 응용 서비스 제공자(ASP)에 주어지면, 상기 ASP를 통해 우선순위화 네트워크 리스트 제공 엔진(216)을 제공하는 것도 가능하다. 대안으로, 우선순위화 네트워크 리스트 제공 엔진(216)은 사설 네트워크 또는 어떤 다른 서버 상에 구현될 수 있다.
도 2의 예에서는, 스테이션들(214)이 CSP(210)에 알려져 있다고 가정한다. CSP(210)가 각각의 스테이션(214)에 서비스를 제공한다면, CSP(210)는 각각의 스테이션(214)과 연관된 계정 정보를 가질 수 있고, 장치-특정 데이터(예컨대, 로밍, 대역폭 소비, 응용 이용 등)를 인식할 수 있으며, 시간의 경과에 따라 스테이션들(214) 및/또는 스테이션들(214) 근처의 네트워크들과 연관된 추가 정보를 수신할 수 있다. 어떻게 스테이션들(214)이 알려지는지와 어떤 정보가 CSP(210)에 유효하게 되는지는 구현에 따라 좌우될 수 있다. 예컨대, CSP(210)는 예컨대 4G 네트워크 상의 스테이션들(214)에 셀룰러 서비스를 제공하는 이동 무선 통신 회사에 의해 제어될 수 있다. (전술한 바와 같이, 몇몇 서비스들은 ASP를 통해 제공될 수 있다; 따라서, 이는 단지 하나의 예에 불과함을 명심해야 하고, 다른 적용 가능한 구현예들은 적절한 변경이 있다고 이해되어야 한다.)
도 2의 예에서, 우선순위화 네트워크 리스트 제공 엔진(216)은 스테이션들(214)에 우선순위화 네트워크 리스트를 제공하며, 이는 도 2의 예에 파선(218)으로 나타나 있다. 리스트가 각각의 스테이션(214)에 대해 동일할 필요는 없다. 예컨대, 우선순위화 네트워크 리스트 제공 엔진(216)은 계정 파라미터들, 현재 장치-특정 파라미터들, 또는 과거 장치-특정 파라미터들에 기반하여 스테이션(214-1)으로 송신된 리스트를 맞춤화할 수 있다. 대안으로, 각각의 스테이션(214)에 송신된 리스트는 스테이션들(214)에서 맞춤화될 수 있다(또는 맞춤화될 수 없다).
우선순위화 리스트는 적용 가능한 채널을 통해 제공될 수 있다. 예컨대, 우선순위화 네트워크 리스트 제공 엔진(216)은 CSP(210)를 제어하는 회사에 의해 제공된 셀룰러 네트워크를 통해, 회사의 제어 밖의 공용 네트워크를 통해, 사설 네트워크를 통해, 또는 어떤 다른 채널을 통해 스테이션으로 우선순위화 리스트를 밀어낼 수 있다. 스테이션은 또한 우선순위화 네트워크 리스트 제공 엔진(216)으로부터 우선순위화 리스트를 끌어당길 수 있다. 우선순위화 리스트가 주기적으로 또는 필요 시에 무선 네트워크 상에 제공될 가능성이 높지만, 우선순위화 리스트를 사전에 제공하는 것 역시 가능한데, 이는 예컨대, 무선 장치가 우선순위화 리스트를 제공받았거나 획득할 수 있는 컴퓨터에 무선 연결된 경우에, 제공될 수 있음을 의미한다.
유리하게는, 우선순위화 리스트는 소정의 시점에 스테이션들(214)에 유효하지 않은 정보를 포함할 수 있다. 예컨대, 스테이션들(214)은 예를 들어 근처의 네트워크 서비스 영역들의 수동 스캔을 수행할 수 있다. 스테이션들(214)은 각각의 무선 네트워크에 대해 수신 신호 강도 표시(RSSI)에 기반하여 적용 가능한 무선 네트워크들의 리스트를 분류할 수 있다. 이러한 리스트 유형은 본 명세서에서 “분류” 리스트로 지칭되며, 이는 현재 주요 값에 따라 분류된 리스트를 의미하도록 의도된다. 그러나, 무선 네트워크들의 리스트를 분류할 때 소정의 데이터가 사용되지 않는다. 소정의 데이터는 무선 네트워크들의 서브세트의 특성들에 관한 사전 획득 데이터인 “과거 데이터”, 및 하나 이상의 스테이션(214)이 스스로 수집하지 않은 데이터인 “원격 획득 데이터”로 분류될 수 있다. (스테이션에 의해 수집된 데이터는 “근거리 획득 데이터”로 지칭될 수 있다) “우선순위화 리스트”는 과거 데이터 및/또는 원격 획득 데이터를 이용하여 추가로 분류된 분류 리스트로 정의된다. 우선순위화 리스트의 유형을 명시적으로 나타내는 것이 바람직한 경우, 우선순위화 리스트는 과거 및 현재 우선순위화 리스트, 원격 및 근거리 우선순위화 리스트, 또는 (두 데이터 유형 모두 우선순위화 리스트를 생성하기 위해 사용된 경우) 과거, 현재, 원격, 및 근거리 우선순위화 리스트로 지칭될 수 있다. 이러한 유형들 중 임의의 유형을 포함할 수 있는 우선순위화 리스트가 “우선순위화 리스트”로 지칭된다. 유리하게는, 스테이션들(214)은 우선순위화 네트워크 리스트 제공 엔진(216)으로부터 제공된 우선순위화 리스트를 이용하여 네트워크 연관 거동을 안내할 수 있다.
스테이션들(214)은 스캔에 의해 데이터를 획득할 수 있다. 수동 스캔은 무선 네트워크에 관한 몇몇 정보를 포함하는 비컨 프레임들을 이용하는 무선 네트워크들을 식별할 수 있다. 능동 스캔은 일반적으로 수동 스캔보다 더 많은 데이터를 획득할 수 있다. 획득된 데이터는 우선순위화 리스트를 수정하기 위해 사용될 수 있다. 스테이션이 (예컨대, CSP(210) 상에서 우선순위화 네트워크 리스트 제공 엔진(216)으로부터 우선순위화 리스트를 수신하는 것 외에 또는 그 대신에) 자신의 우선순위화 리스트를 생성할 수 있는 실시예에서는, 스테이션이 스캔으로 축적된 과거 데이터를 이용할 것이며, 추가적인 과거 및/또는 원격 획득된 데이터가 서버 또는 다른 소스로부터 제공될 수 있다.
스테이션들(214)이 CSP(210) 또는 다른 통신 서비스 제공자에 의해 서비스되는 예에서, CSP(210)는 그룹 단위의 스테이션들(214)을 위한 용량을 최적화할 수 있다. 스테이션들(214)을 위한 용량은, 네트워크들(208)에 관한 정보를 가지며 각각의 스테이션(214)을 위한 우선순위화 리스트를 결정하는 CSP(210)에 의해 그룹 단위의 스테이션들을 위해 최적화될 수 있고, 그 결과로 스테이션들(214)은 총계로 더 나은 성능을 갖도록 네트워크들(208)과의 연결을 선택한다. CSP(210)는 우선순위화 네트워크 리스트 제공 엔진(216)에 의해 스테이션들(214)에 제공되는 우선순위화 리스트들을 생성할 때 네트워크들(208) 상의 네트워크 부하를 고려할 수 있다. 이런 방식으로, CSP(210)는 어떤 네트워크(208)가 더 많은 유효 대역폭을 가지는지를 판단할 수 있고, 스테이션들(214)이 우선순위화 리스트들을 이용한 후 네트워크들(208)의 부하가 어떻게 되는지를 선택적으로 판단할 수 있다. 유리하게는, CSP(210)는 현재 네트워크 부하를 이용하여, 스테이션들에 의해 제공된 데이터, 과거 데이터, 및 아직 송신되지 않은 우선순위화 리스트들에 기반하여 네트워크들(208) 상의 부하를 예측할 수 있다. CSP(210)는 우선순위화 리스트들을 생성하는 방식을 결정할 때, 사용 중인 응용, QoS 요건, 과거 대역폭 소비, 비용 함수 등과 같은 스테이션-특정 데이터를 고려할 수도 있다.
스테이션들(214)은 알고리즘이 용량을 최적화하기 위해 구현되는 네트워크 최적화 엔진(미도시)을 구비할 수 있다. 네트워크 최적화 엔진은 장치-특정 파라미터들 및/또는 사용자 선호도들에 기반하여 우선순위화 리스트를 재구성할 수 있다.
도 3은 시간적으로 조절된 우선순위화 네트워크 리스트들을 생성하기 위한 시스템(300)의 일례를 도시하는 도면이다. 도 2의 예에서, 시스템(300)은 네트워크 인터페이스(302), 네트워크 통계 데이터 저장부(304), 네트워크 통계 특성화 엔진(306), 가입자 데이터 저장부(308), 가입자-특정 특성화 엔진(310), 시간적 조절 엔진(312), 및 우선순위화 네트워크 리스트 생성 엔진(314)을 포함한다.
네트워크 인터페이스(302)는 네트워크에 대한 적용 가능한 주지의 또는 편리한 인터페이스를 포함하도록 의도된다. 네트워크 인터페이스(302)는 네트워크 인터페이스 카드(NIC), 모뎀, 또는 네트워크와의 상호 연결을 용이하게 하는 어떤 다른 기술을 포함하는 다양한 구현들이 있을 수 있다.
네트워크 통계 데이터 저장부(304) 및 본 명세서에 설명된 다른 데이터 저장부들은 예컨대 범용 또는 특수용 기계 상의 컴퓨터-판독 가능한 물리적 매체, 펌웨어, 하드웨어, 이들의 조합, 또는 적용 가능한 주지의 또는 편리한 장치 또는 시스템 내에 실시되는 소프트웨어로서 구현될 수 있다. 본 명세서의 데이터 저장부들은 표, 콤마 구분식(CSV) 파일, 종래의 데이터베이스(예컨대, SQL), 또는 다른 적용 가능한 주지의 또는 편리한 조직적 포맷을 포함하는 임의의 데이터 구성을 포함하도록 의도된다. 데이터베이스 인터페이스와 같은 데이터 저장부-연관 구성요소들은 데이터 저장부의 “일부”, 어떤 다른 시스템 구성요소의 일부, 또는 이들의 조합으로 고려될 수 있지만, 데이터 저장부-연관 구성요소들의 물리적 위치 및 다른 특성들은 본 명세서에 설명된 기법들을 이해하는 데 중요하지 않다.
네트워크 통계 데이터 저장부(304)는 네트워크 통계 데이터 구조들을 저장할 수 있다. 본 명세서에서 설명된 바와 같이, 데이터 구조는 데이터가 소정의 문맥 내에서 효율적으로 사용될 수 있도록 데이터를 컴퓨터에 저장 및 조직화하는 특별한 방식과 연관된다. 데이터 구조들은 일반적으로 메모리 내의 임의의 장소에서 데이터를 인출 및 저장하는 컴퓨터의 능력에 기반하며, 어드레스, 즉 그 자체가 메모리 내에 저장될 수 있고 프로그램에 의해 조작될 수 있는 비트 스트링에 의해 명시된다. 그러므로, 몇몇 데이터 구조들은 연산 동작들로 데이터 항목들의 어드레스들을 계산하는 단계에 기반한다; 반면 다른 데이터 구조들은 구조 그 자체 내에 데이터 항목들의 어드레스들을 저장하는 단계에 기반한다. 다수의 데이터 구조들은 두 원리를 종종 비자명한(non-trivial) 방식으로 결합하여 이용한이다. 데이터 구조의 구현은 보통 상기 구조의 인스턴스들을 생성 및 조작하는 절차들의 세트를 기입하는 단계를 수반한다.
네트워크 통계 데이터 저장부(304)는 네트워크 상의 스테이션들로부터 수신 및 유추된 데이터를 구비한 데이터 구조들을 저장할 수 있다. 스테이션에 의해 획득되어 시스템(300)에 제공될 수 있는 데이터의 양은 스테이션의 능력, 네트워크 유형, 장치-특정 설정(예컨대, 능동 스캔 설정), 및 다른 인자들에 따라 좌우될 것이다. 몇 가지 언급하자면, 데이터는 이러한 값들을 RSSI, 채널 강도, 기본 라디오 비트율, 부하, 네트워크 속도, 네트워크 처리량, 속도 지터, 처리량 지터, 네트워크 지연, 지연 지터, 네트워크 유효성, 성공적인 네트워크 액세스 허가, 액세스 허가의 지연, 위치로서 포함할 수 있다. 네트워크 통계 데이터 저장부(304)는 원격 획득 데이터의 데이터 저장부를 생성하기 위해 복수의 스테이션들로부터의 데이터를 저장할 수 있다. 시간의 경과에 따라, 네트워크 통계 데이터 저장부(304)는 다량의 과거 데이터를 획득할 수 있다.
네트워크 통계 특성화 엔진(306)은 네트워크 통계를 이용하여 네트워크들을 특성화할 수 있다. 예컨대, 네트워크 통계 특성화 엔진(306)은 예컨대 성능 변화를 위치 함수로 판단하기 위해 스테이션들에 대한 위치 및 RSSI를 분석하고, 액세스 허가 가능성을 판단하기 위해 액세스 허가 데이터를 분석하며, 네트워크에 대한 유효 용량 등을 판단하기 위해 네트워크에 연결된 스테이션들의 개수, 스테이션들에서 사용 중인 응용들, 및 네트워크의 용량을 분석할 수 있다. 따라서, 네트워크 통계 특성화 엔진(306)은 표준 네트워크 측정치들을 취하고, 네트워크 측정치들을 과거 네트워크 데이터 및 특정한 스테이션에 대해 원격 획득된 네트워크 데이터와 결합하며, 네트워크 통계를 더 유용한 형태로 변형할 수 있다. 특성화된 네트워크 통계 데이터 구조들은 네트워크 통계 데이터 저장부(304) 내에 저장될 수 있다(화살표는 이러한 저장이 설명의 흐름을 중단시키지 않기 위해 도 3의 예에 도시되지 않았음을 나타낸다).
시스템(300)이 서비스 제공자(예컨대, 이동 서비스 제공자)에 의해 관리되는 사설 네트워크 상에 있는 경우, 가입자들은 통상 계정을 가질 것이다. 가입자 데이터 저장부(308)는 계정 데이터 구조들(또는 가입자 데이터 구조들)을 저장할 수 있다. 유리하게, 계정 데이터 구조들은 우선순위화 리스트들을 생성하는 데 유용한 데이터를 포함할 수 있다. 예컨대, 계정은 가입자가 하나의 네트워크로부터 다른 네트워크로 오프로딩하길 바라는 때를 나타내는 비용 함수 파라미터들을 포함할 수 있다. 이러한 데이터는 특정한 가입자를 위한 우선순위화 네트워크 리스트를 맞춤화하기 위해 사용될 수 있다. 다른 예로, 계정은 가입자 선호도에 기반한 네트워크들의 우선순위화를 가능하게 하는 유리한 네트워크 선호도 또는 성능을 포함할 수 있다. 또 다른 예로, 가입자 데이터 저장부(308)는 커버리지 영역들 간의 이동을 예측하는 데 유용한 이동 궤적을 포함할 수 있다. 가입자 데이터 저장부(308)의 콘텐츠들의 전부 또는 일부가 대신 장치 상에 저장될 수 있고, 우선순위화 리스트가 장치-특정 설정, 이동(예컨대, 이동 궤적), 또는 환경에 기반하여 맞춤화될 수 있음을 주목해야 한다.
가입자-특정 특성화 엔진(310)은 가입자-특정 데이터를 이용하여 네트워크 리스트 우선순위를 수정할 수 있다. 예컨대, 가입자는 이동 장치 상에서 어떤 응용들이 사용되는지를 나타낼 수 있다. 가입자-특정 특성화 엔진(310)은 응용의 동작 파라미터들을 고려할 때 어떤 네트워크들이 더 바람직한지를 응용들로부터 판단할 수 있다.
다른 예로, 이동 궤적이 가입자가 비교적 빠르게 이동하고 있으므로 기차를 타고 있음을 암시한다면, 가입자-특정 특성화 엔진(310)은 더 짧은 범위의 네트워크(예컨대, Wi-Fi)보다 셀룰러 네트워크를 강력히 우선순위화할 수 있다. “비교적 빠르게”라는 표현은, 가입자의 이동으로 인해 하나의 네트워크로부터 다른 네트워크로의 핸드오프(hand-off)가 비교적 높은 확률로 요구될 것임을 암시하는 속도로, 가입자가 이동 중이라는 것을 의미한다. 이동 궤적이 비교적 높은 속도를 보이지만, 비교적 낮은 핸드오프 가능성을 보이는 것 역시 가능하다(예컨대, 가입자가 회전목마를 타고 있는 경우에 그러하다). 네트워크의 하나의 액세스 포인트로부터 동일한 네트워크의 다른 액세스 포인트로의 핸드오프는 하나의 네트워크 유형(예컨대, Wi-Fi)으로부터 다른 네트워크 유형(예컨대, 셀룰러)으로의 핸드오프 또는 동일한 유형의 두 상이한 네트워크들(예컨대, 제1 사설 Wi-Fi 네트워크 및 제2 사설 Wi-Fi 네트워크)의 핸드오프만큼 큰 사건은 아닐 수 있다. 이동 궤적 자체는 가입자 데이터 저장부(308)가 예컨대 가입자의 이동 장치로부터 위치 데이터를 수신할 수 있다는 점에서 가입자-특정 특성화로 여겨질 수 있고, 가입자-특정 특성화 엔진(310)은 시간의 경과에 따른 위치 변화로부터 속도를 판단하여, 가입자가 비교적 빠르게 이동하고 있다는 것을 밝혀낼 수 있다.
시간적 조절 엔진(312)은 예컨대 시각에 기반하여 네트워크 우선순위를 조절할 수 있다. 예컨대, 네트워크 통계 데이터 저장부(304)가 소정의 네트워크들이 소정의 시각에 높은 부하를 가진다는 것을 보여주는 과거 데이터를 가지고 있다면, 시간적 조절 엔진(312)은 근미래에 부하가 감소하는 네트워크들을 우선순위화할 수 있다. 시간적 조절 엔진(312)은 가입자 데이터 저장부(308)로부터의 데이터를 이용하여 우선순위를 변화시킬 수도 있다. 예컨대, 가입자가 일단 연결된 네트워크를 전환하고 싶지 않다는 선호도를 나타내면, 시간적 조절 엔진(312)은 가입자의 과거 활동을 이용하여 가입자가 네트워크에 연결될 예상 시간량을 판단하고, 네트워크의 과거 데이터를 이용하여 그 시간 동안 다양한 네트워크들 상의 예상 부하를 판단하며, 가입자가 연결 시간 동안 최소 성능 선호도를 만족하는 네트워크에 연결될 수 있도록 네트워크들을 우선순위화할 수 있다.
가입자 데이터 저장부(308)가 클라이언트 장치 상에 있는 한, 시간적 조절 엔진(312)은 시간에 기반하여 우선순위를 제공할 수 있고, 클라이언트 장치는 우선순위화 네트워크 리스트를 맞춤화할 수 있다. 대안적인 구현예에서, 시간적 조절 엔진(312)은 클라이언트 장치 상에 있고, 클라이언트 장치는 상이한 시간에 상이한 우선순위화 리스트들을 수신하며, 이후 시간적 조절 엔진(312)은 현재 시간에 기반하여 우선순위화 리스트를 맞춤화한다(또는 적절한 우선순위화 리스트를 고른다).
우선순위화 네트워크 리스트 생성 엔진(314)은 네트워크 통계 특성화 엔진(306)에 따라, 그리고 적용 가능하다면, 가입자-특정 특성화 엔진(310) 및 시간적 조절 엔진(312)에 따라 네트워크 리스트를 생성한다. 우선순위화 네트워크 리스트는 네트워크 인터페이스(302)를 통해 장치들에 제공될 수 있다.
유리하게는, 시스템(300)은 네트워크에 대한 유효 용량의 통계를 특성화하고, 임의의 신뢰할 수 있는 용량이 상기 네트워크 상에서 일반적으로 유효하다면 어느 정도의 용량인지를 판단할 수 있다. 이는 장치들이 네트워크 데이터, 예컨대 얼마나 많은 장치들이 네트워크에 연결되어 있는지를 보고함으로써 달성되며, 시스템(300)에 의해 서비스되는 장치들의 그룹에 제공되는 (예컨대, 평균, 최악, 중간 등의) 용량을 최적화하기 위해, 하나 이상의 장치가 알고리즘에 기반하여 네트워크에 연결되거나 분리되도록 네트워크를 우선순위화한다. 알고리즘은 우선순위화 네트워크 리스트를 송신하기 전에 또는 다른 경우라면 네트워크에 연결 또는 분리되도록 장치와 통신하기 전에, 하나 이상의 대안적인 네트워크의 부하를 고려할 수 있다. 그로 인해, 시스템(300)은 유효 용량의 통계를 특성화하고, 유효 용량 계수를 조절하기 위해 시간의 함수로서 신뢰할 수 있는 용량을 가진 우선순위화 네트워크 리스트들을 제공한다. 이러한 기법은 총계로 최적화된 하나 이상의 장치에 적용 가능하다.
도 4는 우선순위화 네트워크 리스트들의 성능을 감시하기 위한 시스템(400)의 일례를 도시하는 도면이다. 도 4의 예에서, 시스템(400)은 라디오 인터페이스(402), 라디오(404), 지리-위치 엔진(406), 지리-우선순위화 네트워크 데이터 저장부(408), 지리-분석 연결 엔진(410), 성능 임계치 데이터 저장부(412), 선택적 네트워크 감시 엔진(414), 및 ANCS 보고 엔진(416)을 포함한다.
도 4의 예에서, 라디오 인터페이스(402)는 무선 장치가 라디오를 이용하여 무선 네트워크에 연결될 수 있게 하는 적용 가능한 주지의 또는 편리한 기술을 포함한다. 라디오 외의 것을 이용한 장치들도 이론적으로 가능하다; “라디오 인터페이스”라는 용어는 통신 장치가 전자기(EM) 스펙트럼, 즉 전파의 특정한 서브세트에 제한될 수도 있고, 그렇지 않을 수도 있다는 이해 하에 사용된다. 라디오 인터페이스(402)는 다수의 라디오들 및/또는 다양한 무선 주파수들 또는 무선 프로토콜들과 사용되는 다수의 인터페이스들을 포함할 수 있다.
도 4의 예에서, 라디오 인터페이스(402)는 라디오(404)에 연결된다. 라디오(404)는 다양한 무선 주파수들 또는 무선 프로토콜들과 사용되는 다수의 라디오들을 포함할 수 있다. 설명의 간단함을 위해, 라디오(404)는 일반적으로 (아마도 다수의 서브채널들을 가진) 하나의 채널 상에서 계속해서 동작하는 것처럼 다루어질 수 있다. 대안으로, 라디오(404)는 하나의 주파수 상에서 스캔하거나 보고서를 송신할 수 있고, 다른 주파수 상에서 다른 통신을 송수신할 수 있다.
도 4의 예에서, 지리-위치 엔진(406)은 우선순위화 리스트를 수신하고, 장치 위치를 이용하여 상기 리스트를 수정한다. 지리-위치 엔진(406)은 위치를 이용하여, 어떤 네트워크들이 네트워크 리스트 상에 포함되어야 하는지와, 네트워크들의 어떤 우선순위가 있어야 하는지를 판단할 수 있다. 특정한 구현예에서, 지리-위치 엔진(406)은 지리-우선순위화 리스트를 송신하는 서버와 함께 사용될 수 있되, 지리-위치 엔진(406)은 상기 리스트를 장치에서 맞춤화한다. 예컨대, 서버는 지리-위치 엔진(406)이 현재 장치 위치 및/또는 이동 궤적에 따라 조절하거나 사용할 수 있는 지리-영역에 대한 지리-우선순위화 리스트를 송신할 수 있다. 지리-우선순위화는 비용 함수에 따라 이루어질 수 있고, 여기서 비용 함수의 파라미터들은 위치에 따라 변화된다(예컨대, 네트워크 성능은 위치 함수로 변화될 수 있다).
대안으로, 지리-위치 엔진(406)은 서버 상에서 구현될 수 있고, 가입자들에게 제공하기 위한 지리-우선순위화 네트워크 리스트들을 생성하기 위해 사용될 수 있다. 장치들의 주지의 위치들을 이용하여, 서버는 구현에 따라 장치 인근의 근거리 지리적 영역 또는 장치가 과거에 빈번하게 있던 지리적 영역에 대한 지리-우선순위화 네트워크 리스트를 송신할 수 있다.
도 4의 예에서, 지리-우선순위화 네트워크 데이터 저장부(408)는 우선순위에 의해 정리된 네트워크 데이터 구조들을 포함하되, 우선순위 판단은 장치 위치에 대한 고려를 포함한다. 우선순위화 리스트는 초기에 지리-우선순위화 네트워크 데이터 저장부(408)에 데이터 구조들로 저장될 수 있고, 데이터 구조들이 이후 지리-위치 데이터에 따라 변형될 수 있거나, 또는 데이터 구조들이 해당 우선순위로 생성될 수 있다. 어느 경우이든, 장치 위치가 충분히 변화된 경우, 지리-우선순위가 변화될 것이고, 데이터 구조들은 업데이트된 지리-우선순위를 갖도록 변형될 수 있다(또는 새로운 데이터 구조들이 생성될 수 있다).
도 4의 예에서, 지리-분석 연결 엔진(410)은 지리-우선순위화 네트워크 데이터 저장부(408)에 저장된 지리-우선순위화 네트워크 리스트를 이용하여, 유효한 최고 우선순위 네트워크에 연결되도록 라디오(404)에 지시한다. 대안으로, 지리-분석 연결 엔진(410)은 서버로부터 수신된 우선순위화 리스트를 이용하여 연결을 생성하고, 후속 연결 판단을 위해 지리-우선순위화 네트워크 리스트를 이용할 수 있다. 전술한 바와 같이, 지리-위치 엔진(406)이 적어도 부분적으로 서버에 위치될 수 있고, 네트워크 리스트를 우선순위화할 때 우선순위화 리스트가 장치 위치를 포함할 수 있는 것 역시 가능하다.
장치 위치가 변화됨에 따라, 네트워크의 성능도 변화될 수 있다. 위치 분석 연결 엔진(410)은 성능 임계치 데이터 저장부(412)를 이용하여 성능이 성능 임계치 아래로 떨어졌는지를 판단할 수 있다. 성능이 성능 임계치 아래로 떨어진 경우, 위치 분석 연결 엔진(410)은 제2 네트워크에 연결될 수 있다. 제2 네트워크는 지리-우선순위화 네트워크 리스트 상의 다음 네트워크일 수 있다. 지리-위치 엔진(406)은 장치가 제1 네트워크에 연결되어 있는 동안 네트워크 우선순위가 변화되도록 지리-우선순위화 네트워크 데이터 저장부(408)를 업데이트할 수 있다는 것을 주목할 수 있다. 그러므로, 성능이 성능 임계치 아래로 떨어진 경우, 지리-분석 연결 엔진(410)은 업데이트된 지리-우선순위화 네트워크 리스트를 이용하여, 유효한 최고 우선순위 네트워크를 찾을 수 있고, 상기 네트워크에 연결되도록 라디오(404)에 지시할 수 있다. 따라서, 제2 네트워크는 제1 네트워크에 대한 연결이 이루어졌을 때 사용된 지리-우선순위화 리스트 내의 2번째로 높은 우선순위 네트워크일 수도 있고, 아닐 수도 있다.
유리하게는, 성능 임계치 설정은 네트워크들 간의 빈번한 호핑(hopping) 을 방지할 수 있다. 제2 네트워크가 장치가 현재 연결되어 있는 제1 네트워크보다 더 높은 지리-우선순위를 가질지라도, 성능이 제1 및 제2(또는 다른) 네트워크에 대해 변동됨에 따라 이리저리 전환해야 할 가능성 때문에, 전환이 바람직하지 않을 수 있다. 그러므로, 성능 임계치는, 제2 네트워크의 예측된 성능이 제1 네트워크의 성능을 넘어설지라도, “충분히 양호한” 성능을 나타낼 수 있다.
성능 임계치는 동적으로 조절될 수 있다. 네트워크들 간의 빈번한 호핑을 방지하는 것이 바람직하지만, 위치 변화로 인해 제2 네트워크 상의 성능이 현저히 더 높을 수 있다. 제1 네트워크의 성능이 “충분히 양호”할지라도, 제2 네트워크의 잠재적 성능 개선이 빈번한 호핑을 방지하고자 하는 의도를 능가할 정도로, 제2 네트워크의 예측된 성능이 충분히 우월할 수 있다. 따라서, 성능 임계치는 성능 임계치 네트워크 전환 선호도 외에 또는 그 대신에, 제1 네트워크 상의 현재 성능 및 제2 네트워크의 예측된 성능의 함수일 수 있다.
성능 임계치가 장치가 연결되어 있는 제1 네트워크의 성능 및 제2 네트워크의 성능을 고려한 경우, 제1 네트워크 및 제2 네트워크의 성능 파라미터들은 동일할 필요가 없다. 예컨대, 제2 네트워크의 성능이 액세스 허가 신뢰성 파라미터 및 액세스 허가 파라미터의 예측된 지연을 포함할 수 있는 반면, 이러한 파라미터들은 제1 네트워크의 성능을 특성화하기 위해 사용되지 않는다. 양 네트워크를 특성화하기 위해 다른 파라미터들(예컨대, 연결후 네트워크 성능 파라미터들 또는 경제적 성능 파라미터들)을 고려할 수도 있고, 그렇지 않을 수도 있다.
도 4의 예에서, 선택적 네트워크 감시 엔진(414)은 가입자가 연결되어 있는 제1 네트워크 외의 네트워크들을 감시할 수 있다. 감시는 WAP로부터의 비컨 프레임들에 대한 리스닝(또는 상응하는 전송)을 수반하는 수동 스캔을 포함할 수 있다. 비컨 프레임들로부터의 유효한 정보는 네트워크-특정 변수들에 따라 변화될 수 있다. 능동 스캔이 일반적으로 더 많은 네트워크 정보를 생성하지만, 더 많은 자원들(예컨대, 무선 대역폭, 배터리 전력 등)을 소모한다.
선택적 네트워크 감시 엔진(414)은 지리-우선순위화 네트워크 리스트 상에 있는 네트워크들을 감시할 수 있다. 감시할 네트워크를 판단할 때 모든 네트워크들이 반드시 동일하게 다루어지지는 않으며, 이것이 선택적 네트워크 감시 엔진(414)이 “선택적”이라 불리는 이유이다. 예컨대, 우선순위화 리스트는 소정의 네트워크들을 감시하기 위한 선호도를 나타낸다(네트워크의 우선순위에 반드시 기반하는 것은 아니다). 소정의 네트워크들의 선택적 감시는, 서로 비교적 가까운 복수의 장치들 각각에 의해 스캔되는 네트워크들의 개수를 제한하고, 성능이 변화되었는지를 확인하기 위해 열악한 성능자(performer)로 플래깅된 네트워크를 체크하며, 현재 네트워크의 성능이 성능 임계치 아래로 떨어진 경우 장치가 비교적 높은 우선순위 네트워크들을 계속 인식하게 하고, 네트워크에 대한 추가 정보 등을 얻기 위해 이루어질 수 있다.
선택적 네트워크 감시 엔진(414)은 지리-분석 연결 엔진(410)과 협력하여 동작할 수 있다. 예컨대, 선택적 감시는 네트워크 우선순위를 가능한 한 최신의 것으로 유지하기 위해 지리-우선순위화 네트워크 리스트 상의 높은 네트워크들에 대해 이루어질 수 있다. 선택적 네트워크 감시 엔진(414)은 동적 성능 임계치가 가장 최신의 네트워크 데이터로 업데이트되도록 보장할 수도 있다. 선택적 네트워크 감시로부터의 날짜는 장치에서 사용되거나 서버로 송신되고, 서버에서의 처리 후에 우선순위화 리스트의 형태로 제공될 수 있다.
ANCS 보고 엔진(416)은 선택적 네트워크 감시 엔진(414)의 ANCS로부터 보고서를 생성한다. ANCS 보고 엔진(416)은 ANCS 보고서를 라디오(404)에 제공하여, 라디오 인터페이스(402)를 통해 서버에 전송되도록 한다. 서버는 미래의 우선순위화 리스트들이 비교적 최신의 것이 되도록 보장하며, 표시가 장치에서의 규칙들로부터 유추된 것이 아니라 서버에 의해 제공된 것이라고 가정할 때, 선택적 네트워크 스캔 표시자들이 장치로 하여금 다른 장치들과 협력하거나 또는 적어도 자원들을 헛되이 소비함 없이 네트워크들을 스캔할 수 있도록 보장할 수 있는데, 이는 서버가 가입자들을 위한 우선순위화 네트워크 리스트들을 보다 효과적으로 준비하기 위해 사용할 수 있는 네트워크들에 관한 더 유용한 데이터에 비해 덜 유용한 데이터를 제공함으로써 가능하다.
유리하게는, 시스템(400)은 서버가 ANCS 보고서를 송신하는 장치 및 다른 가입자들(다른 가입자들도 ANCS 보고서를 전송하는지 여부와 무관함)을 위해 위치 및 ANCS 보고서를 이용하여 우선순위화 네트워크 리스트를 생성할 수 있도록, 위치 데이터 및 ANCS 보고서를 서버에 제공한다. 도 2의 CSP(210)는 예컨대 이러한 서버를 포함할 수 있다.
유리하게는, 시스템(400)은 장치의 현재 위치를 이용하여 우선순위화 네트워크 리스트들을 맞춤화할 수 있다. 예컨대, 지리-위치 엔진(406)은 장치의 현재 위치, 이동 궤적(예컨대, 미래 위치 예측자), 또는 과거 네트워크 연결 선호도에 관한 지식에 따라 넓은 지리적 영역에 대해 우선순위화 네트워크 리스트들을 맞춤화할 수 있다. 대안으로, 지리-위치 엔진(406)은 장치의 현재 위치 및/또는 과거 네트워크 연결 선호도에 따라 근거리 지리적 영역에 대한 우선순위화 네트워크 리스트를 수신할 수 있다. 대안으로, 지리-위치 엔진(406)은 장치의 현재 위치 및/또는 과거 네트워크 연결 선호도에 따라 다수의 근거리 지리적 영역 네트워크맵들 간에 선택할 수 있다.
유리하게는, 시스템(400)은 소정의 지리적 영역에서 장치가 연결되기에 가장 최적인 네트워크들을 식별하기 위해 우선순위화 네트워크 리스트 상의 네트워크들의 선택적 감시를 가능하게 한다. 장치는 우선순위화 네트워크 리스트를 이용하여 최적의 네트워크를 판단하기 위해, 이행된 규칙들을 적용할 수 있다. 장치는 또한 다른 네트워크들을 선택적으로 스캔하여, 발견된 내용에 따라 우선순위화 네트워크 리스트를 업데이트할 수 있다. 이는 장치와 다른 가입자들 모두에게 이익이 될 수 있다.
유리하게는, 시스템(400)은 네트워크 우선순위 리스트가 변화되거나 또는 소정의 네트워크 상의 성능이 시간의 경과에 따라 변동될 때 하나의 네트워크로부터 다른 네트워크로의 빈번한 점핑 가능성을 줄일 수 있다. 지리-분석 연결 엔진(410)은 성능이 최소 성능 임계치 아래로 떨어질 때까지 장치가 네트워크에 연결된 상태로 유지되도록 보장할 수 있다.
도 5는 이동 궤적을 이용하여 네트워크맵 상의 네트워크들을 우선순위화하기 위한 시스템(500)의 일례를 도시하는 도면이다. 도 5의 예에서, 시스템(500)은 위치 검출 엔진(502), 위치 데이터 저장부(504), 위치 궤적 생성 엔진(506), 위치 궤적 데이터 저장부(508), 위치 궤적 보고 엔진(510), 라디오(512), 라디오 인터페이스(514), 및 위치 궤적 적용 엔진(516)을 포함한다.
도 5의 예에서, 위치 검출 엔진(502)은 장치의 현재 위치를 판단할 수 있다. 본 명세서에서는 장치의 위치가 주지의 값으로서 다루어지지만, 위치 검출은 종종 현재 위치의 측정치라는 것을 이해해야 한다. 예컨대, GPS 시스템이 항상 정밀한 정확성을 가진 것은 아니다. 다른 예로, 3개의 WAP들이 장치로부터 3개의 상이한 신호 강도를 가진 3개의 신호들을 검출할 수 있고, 예컨대 RSSI가 나타내는 바와 같은 거리에 기반하여 위치를 판단할 수 있지만, 이러한 삼각 측량 기법(triangulation technique)은 일반적으로 꽤 부정확하다. 그러나, 본 명세서에서 위치 검출과 관련하여 설명된 기법들의 적용이 가능할 정도로 정확하기만 하다면, 정확도와 무관하게, 임의의 적용 가능한 주지의 또는 편리한 위치 측정 기법이 충분할 수 있다.
도 5의 예에서, 위치 검출 엔진(502)은 위치 데이터 저장부(504) 내에 검출 위치를 저장한다. 위치 데이터 저장부(504)의 데이터 구조들은 2차원 또는 3차원 공간의 좌표들만큼 간단할 수 있다. 네트워크들이 3차원 공간 내로 연장되는 범위를 갖지만, (통상적으로 지면 또는 건물 바닥 위의 오버레이로서) 2차원 공간으로 단순화하는 것이 유용할 수 있음을 주목할 수 있다. z축 성분(고도)의 기록 여부보다 더 중요한 것은 소정의 위치에 대한 타임스탬프이다. 그러므로, 최소한의 위치 데이터 구조는 x축 성분(예컨대, 경도), y축 성분(예컨대, 위도), 및 타임스탬프를 포함할 것이고, 유용한 변형예는 z축 성분(고도)을 포함할 수 있다. 축 성분들의 단위가 동일할 필요는 없다. 예컨대, x축 및 y축 성분들은 GPS 좌표일 수 있고, x축 성분은 피트(또는 미터) 또는 건물 바닥과 같은 더 추상적인 값일 수 있다.
도 5의 예에서, 위치 궤적 생성 엔진(506)은 과거 위치 데이터를 이용하여 시간의 경과에 따른 위치 변화를 판단할 수 있다. 제1 타임스탬프와 연관된 위치를 제2 타임스탬프와 연관된 위치와 비교함으로써, 거리뿐만 아니라 속도 판단도 가능하다.
속도는 위치 궤적 데이터 저장부(508) 내의 벡터 데이터 구조에 기록될 수 있다. 일반적으로 본 명세서에 설명된 데이터 저장부들에 해당되듯이, 위치 데이터 저장부(504) 및 위치 궤적 데이터 저장부(508)는 동일한 데이터 저장부로 구현될 수 있다. 예컨대, 위치 검출 엔진(502)에 의해 측정된 위치들은 노드들로 저장될 수 있고, 위치 궤적 생성 엔진(506)에 의해 계산된 벡터들은 단일 데이터 저장부 내의 시간적으로 인접한 노드들 간의 에지들로 저장될 수 있다. 대안으로, 에지들은 플라이(fly) 상에서 계산될 수 있고, 그에 따라 타임스탬프를 가진 노드들만이 비휘발성 메모리에 저장된다.
위치 궤적 보고 엔진(510)은 서버용 보고서를 생성할 수 있다. 보고서의 콘텐츠는 구현에 기반하여 다소 변화될 수 있지만, 최소한의 보고서는 적어도 장치의 현재 위치 및 타임스탬프를 포함할 것이다. 서버는 위치 궤적을 생성할 수도 있고, 그렇지 않을 수도 있으며, 이는 대안으로 위치 궤적 생성 엔진(506)의 적어도 일부가 서버에 위치될 수 있다는 것을 의미한다.
라디오(512)는 서버에 라디오 인터페이스(514)를 통해 위치 궤적 보고서를 송신할 수 있다. 위치 궤적 보고서의 수신에 응하여, 서버는 네트워크맵을 제공할 수 있다. 대안으로, 서버는 네트워크맵을 제공하기 위해 위치 궤적을 수신할 필요가 없다; 따라서, 네트워크맵은 위치 궤적의 수신에 응하여 제공되지 않는다. 네트워크맵은 장치 또는 다른 장치들로부터의 ANCS 보고서를 이용하여 생성될 수 있다. 네트워크맵은 장치의 위치 궤적을 이용하여 서버에서 맞춤화될 수도 있고, 그렇지 않을 수도 있다.
네트워크맵은 장치가 연결될 수 있는 네트워크들의 다차원맵이다. 차원들은 2개 또는 3개의 공간적 차원들, 시간, 네트워크 연속성, 스테이션 속도, 장치-특정 이력, 또는 다른 파라미터들을 포함할 수 있다. 유리하게는, 네트워크맵은 그 안에 나타낸 무선 네트워크들로의/로부터의 지능형의 신뢰할 수 있는 전환을 가능하게 하는 장치-특정 특성들과 결합될 수 있다.
도 5의 예에서, 위치 궤적 적용 엔진(516)은 네트워크맵 및 위치 궤적들을 이용하여, 네트워크맵으로부터 연결용 맵을 선택할 수 있다. 구체적으로, 위치 궤적 적용 엔진(516)은 이동 궤적을 이용하여 네트워크 서비스 영역 내외로의 이동을 예측하고, 예측된 이동에 적합한 네트워크들을 선택할 수 있다. 속도 판단을 넘어선 위치 궤적들의 추가적인 처리가 유용할 수 있다. 예컨대, 높은 속도가 짧은 휴식 기간으로 이어지면, 주행 중인 차량이 정지 신호에서 멈춘 것을 나타낼 수 있다. 이러한 경우, 가입자가 정지 상태일지라도 오프로딩을 방지하는 것이 바람직할 수 있다. 다른 예로, 연결 이력은 통상적으로 몇몇 위치들을 꽤 빠르게 통과하는 것을 보여주기 위해 사용될 수 있다(예컨대, 가입자가 작업을 위해 소정의 영역들을 통과하는 것일 수 있으므로, 가입자가 비교적 금방 네트워크를 통과하리라는 가능성 때문에, 소정의 네트워크들은 오프로딩을 위한 타겟으로 매력이 없게 된다).
특정한 구현예에서, 네트워크맵은 접촉 또는 분리될 수 있는 신뢰할 만한 커버리지 구역들을 포함할 수 있다. 그러므로, 위치 궤적 적용 엔진(516)은 신뢰할 수 있는 네트워크들의 네트워크맵 및 장치의 위치(또는 위치 궤적)를 이용하여, 장치가 신뢰성 임계치보다 더 빠르게 커버리지 내외로 이동할 가능성이 높은 네트워크들을 제거할 수 있다. 신뢰성 임계치 데이터 저장부(518)는 휴지 또는 느린 이동 후 얼마나 빠르게 다른 네트워크로 오프로딩하는지에 대한 가입자 또는 서비스 제공자의 선호도를 포함할 수 있는 데이터 구조를 저장할 수 있다. 위치 궤적 속도가 신뢰성 임계치를 초과한다면, 장치는 소정의 네트워크들(예컨대, 더 짧은 범위의 네트워크들)로 오프로딩하지 않을 것이다.
전술한 바와 같이, 위치 궤적 적용 엔진(516)은 판단에 있어 구성적 속도(constructive velocity)를 이용하기 위해, 가입자에 대한 연결 이력, 자동차 또는 대중 교통 내에 있는지를 나타내는 활동 등과 같은 다른 정보를 활용할 수 있다. 따라서, 가입자의 실제 속도가 ‘0’일지라도(예컨대, 가입자가 정지 신호에 걸린 경우), 구성적 속도는 예측된 미래 속도를 나타내는 더 높은 값을 가질 수 있다. 구성적 속도는 전후 이동과 같이(예컨대, 가입자가 왔다 갔다 하는 경우) 소정의 시간 주기에 걸쳐 벡터들을 추가함으로써 알아낸 “순속도(net velocity)”일 수도 있다. 다시 말하면, 비교적 짧은 시간에 걸친 가입자의 절대 속도는 신뢰성 임계치와의 비교를 위해 순속도만큼 중요하지 않을 수 있다.
장치가 연결될 수 있는 최고 우선순위 네트워크를 발견하기 위해 위치 궤적을 네트워크맵에 적용한 경우, 라디오(512)는 선택된 네트워크를 인증 및 연결하도록 지시 받을 수 있다. 그러므로, 장치의 위치 궤적 및 다차원 네트워크맵을 이용하여, 하나의 네트워크로부터 다른 네트워크로의 오프로딩을 달성할 수 있다.
도 6은 가입자 네트워크 연결들에 대한 지식을 이용하여 가입자들을 위한 네트워크 리스트들을 우선순위화하기 위한 시스템(600)의 일례를 도시하는 도면이다. 도 6의 예에서, 시스템(600)은 가입자들(602-1~602-N, 전체적으로 가입자들(602)), 무선 네트워크들(604-1~604-N, 전체적으로 무선 네트워크들(604)), 가입자 인터페이스(606), 연결 추적 엔진(608), 가입자 연결 데이터 저장부(610), 및 우선순위화 네트워크 리스트 제공 엔진(612)을 포함한다.
도 6의 예에서, 가입자들(602)은 무선 네트워크들에 연결될 수 있는 스테이션들을 포함할 수 있다. 문맥에 따라, 가입자는 장치 또는 장치의 사용자를 지칭할 수 있다. 장치의 사용자에 관한 데이터를 포함할 수 있는 가입자 데이터를 참조하는 것이 설명을 위해 가끔 편리하며, 가입자 기록의 존재가 반드시 장치의 존재를 나타내는 것은 아니다. 그러나, 본 명세서에 설명된 기법들은 일반적으로 무선 네트워크에 연결될 수 있는 가입자에 적용 가능하다. 따라서, 적어도 동작의 설명에서 사용된 바와 같이, 가입자는 항상 장치를 포함할 것이다.
도 6의 예에서, 무선 네트워크들(604)은 다양한 유형의 네트워크들을 포함할 수 있다. 예컨대, 무선 네트워크(604-1)는 Wi-Fi 네트워크일 수 있고, 무선 네트워크(604-2)는 3G(셀룰러) 네트워크일 수 있다.
도 6의 예에서, 가입자 인터페이스(606)는 서버 상에 있다고 가정된다. 가입자들(602)이 가입자 인터페이스(606)에 어떻게 연결되는지에 관한 세부사항이 생략된 것을 주목해야 한다. 예컨대, 가입자들(602) 간의 연결은 인터넷 및/또는 PSTN을 포함하는 중재 네트워크들을 통해 이루어질 수 있다. 가입자들(602)이 무선 네트워크들(604) 중 하나에 연결되기 위해, 가입자들(602)은 WAP 또는 기지국을 통해 연결되어야 할 수도 있다. 대안으로, 가입자 인터페이스(606)는 피어 장치(예컨대, IBSS 내의 스테이션) 상에 있을 수 있다.
도 6의 예에서, 연결 추적 엔진(608)은 가입자들(602)로부터 데이터를 수신할 수 있다. 데이터는 ANCS 보고서 및 인증 데이터를 포함할 수 있지만, 본 예를 위해, 데이터는 가입자들(602)이 연결되어 있는 무선 네트워크들(604)을 식별하기에 충분한 데이터를 포함한다. 예컨대, 가입자들(602-1, 602-2)은 무선 네트워크(604-1), 본 예에서는 Wi-Fi 네트워크에 연결되어 있음을 나타낼 수 있다. 일부 가입자들(602)은 소정의 시점에 어느 무선 네트워크(604)에도 연결되지 않을 수 있지만, 그럼에도 인증 시도, 무선 전송, 유선 연결, 또는 다른 적용 가능한 이유로 인해 서버에 알려져 있다.
도 6의 예에서, 가입자 연결 데이터 저장부(610)는 가입자들(602)이 연결되어 있는 무선 네트워크들(604)을 식별하기에 충분한 데이터를 포함하는 데이터 구조를 저장한다. 연결 추적 엔진(608)은 가입자들(602) 중 하나가 무선 네트워크들(604) 중 하나와 분리 또는 연결되는 경우 해당 데이터 구조를 수정할 수 있다. 데이터 구조는 가입자들이 범위 내에 있는 네트워크들과 연관된 데이터를 포함할 수도 있고, 그렇지 않을 수도 있지만, 이러한 정보는 가입자의 위치에 대한 지식 및 네트워크맵에서 유추될 수도 있다.
도 6의 예에서, 우선순위화 네트워크 리스트 제공 엔진(612)은 가입자 연결 데이터 저장부(610)로부터의 데이터를 이용하여, 예컨대 얼마나 많은 가입자들(602)이 무선 네트워크(604-1)와 같은 소정의 네트워크에 연결되어 있는지를 판단할 수 있다. 우선순위화 네트워크 리스트를 생성할 때, 우선순위화 네트워크 리스트 제공 엔진(612)은 이러한 정보를 이용하여, 가입자들을 비교적 많은 수의 연결이 있는 무선 네트워크들로부터 멀어지게 하고/하거나, 비교적 적은 수의 연결이 있는 무선 네트워크들로 향하게 한다. 유사한 유형의 기법이 종종 네트워크 부하 밸런싱으로 참조된다.
예컨대, 가입자들(602-1~602-2)이 무선 네트워크(604-1, 본 예에서는 Wi-Fi 네트워크)에 연결되어 있으며, 가입자(602-N)가 무선 네트워크(604-2, 본 예에서는 셀룰러 네트워크)로부터 무선 네트워크(604-1)로 오프로딩할 수 있다고 가정한다. 우선순위화 네트워크 리스트 제공 엔진(612)은 장치들(602-1, 602-2)의 개수에 대한 지식을 이용하여, 가입자(602-N)에게 제공될 우선순위화 네트워크 리스트에서 무선 네트워크(604-1)를 우선순위화할 수 있다. 본 예를 위해, 가입자(602-N)는 각각의 무선 네트워크(604)의 서비스 영역 내에 있다; 따라서, 우선순위화 네트워크 리스트는 잠재적으로 무선 네트워크들(604)의 일부 또는 전부를 포함할 수 있다. 우선순위화 네트워크 리스트 제공 엔진(612)이 무선 네트워크(604-1)에 연결되어 있는 장치들의 개수가 최적의 연결 개수 임계치를 초과한다고 판단한다면, 무선 네트워크(604-1)는 가입자(602-N)에게 제공되는 우선순위화 리스트에서 우선순위가 감소될 수 있다(또는 무선 네트워크(604-1)는 우선순위화 리스트에서 생략될 수 있다). 이런 방식으로, 서버는 제1 네트워크에 연결되어 있는 장치들의 개수에 기반하여 제1 네트워크에 대한 연결을 고려하는 장치들에게 효과적으로 어드바이스할 수 있다.
도 6의 예에서, 연결 임계치(614)는 허용 가능한 연결들의 개수를 나타내는 데이터 구조를 포함한다. 허용 가능한 연결들의 개수는 네트워크에 따라 변화될 수도 있고, 그렇지 않을 수도 있다. 예컨대, 몇몇 네트워크들은 다수의 연결들을 지원할 수 있다. 또한, 일부 네트워크들은 가입자 연결들에 의해 더욱 예측 가능하게 영향을 받을 수 있으므로(예컨대, 비교적 다수의 가입자들에게 서비스하는 네트워크는, 가입자들을 위한 연결 정보를 수신하지만 네트워크 상의 다른 무선 장치들에 대한 연결 정보를 수신하지 않는 서버에 대해 예측 가능성을 개선할 수 있음), 연결 데이터는 네트워크들에 대한 우선순위를 판단하기 위해 사용된 다양한 인자들을 가감할 때 우선순위화 네트워크 리스트 제공 엔진(612)에 더욱 유용하게 된다.
도 7은 성능 이력을 이용하여 우선순위화 네트워크 리스트를 맞춤화하기 위한 시스템(700)의 일례를 도시하는 도면이다. 도 7의 예에서, 시스템(700)은 우선순위화 리스트 데이터 저장부(702), 과거 성능 평가 엔진(704), 성능 이력 엔진(706), 네트워크 연결 엔진(708), 라디오(710), 성능 감시 엔진(712), 및 신뢰성 임계치 데이터 저장부(714)를 포함한다.
도 7의 예에서, 우선순위화 리스트 데이터 저장부(702)는 우선순위화 네트워크 데이터 구조를 포함한다. 본 예를 위해, 우선순위화 리스트 데이터 저장부(702)는 시스템(700)이 적어도 부분적으로 구현된 장치가 위치하는 서비스 영역들을 가진 네트워크들, 및 상기 네트워크들의 우선순위를 식별하기에 충분한 데이터를 가진 데이터 구조들을 포함하는 것으로 다루어진다. 물론, 우선순위화 리스트 데이터 저장부(702)의 실제 구현예는 추가 데이터를 포함할 수 있다. 우선순위화 리스트 데이터 저장부(702)에는, 우선순위화 네트워크 리스트를 송신하는 서버(미도시)가 장착될 수 있고, 우선순위화 리스트는 장치에서 생성될 수 있거나, 또는 우선순위화 리스트는 어떤 다른 방식으로 획득될 수 있다.
도 7의 예에서, 과거 성능 평가 엔진(704)은 우선순위화 리스트 데이터 저장부(702) 내의 우선순위화 리스트를 맞춤화할 수 있다. 이런 방식으로, 신뢰성, 위치, 시각, 또는 본 명세서의 다른 부분에서 설명된 다른 인자들에 기반하여 우선순위화된 우선순위화 리스트를 이용하는 것 외에도, 장치는 장치 상의 데이터(on-device data)를 이용하여 우선순위화 리스트를 미세 조정할 수 있다.
도 7의 예에서, 성능 이력 데이터 저장부(706)는 소정의 네트워크에 대한 과거 성능을 나타내는 데이터 구조를 포함한다. 네트워크 데이터 구조가 우선순위화 리스트 데이터 저장부(702) 및 성능 이력 데이터 저장부(706) 모두에 존재하는 한, 과거 성능 평가 엔진(704)은 네트워크의 우선순위를 실제 성능 이력과 비교할 수 있다. 우선순위화 리스트 데이터 저장부(702) 및 성능 이력 데이터 저장부(706) 내의 다른 네트워크들이 유사하게 비교될 수 있다. 구현에 따라, 우선순위화 리스트 데이터 저장부(702)는 과거 성능에 기반하여 우선순위화 리스트 내의 네트워크들을 조절하는 맞춤화된 우선순위화 리스트로 업데이트될 수 있다. 탁월한 네트워크 성능을 가진 네트워크가 반드시 최고 우선순위를 가질 필요는 없으며(예컨대, 탁월한 경제적 성능이 더 중요할 수 있음), 구현에 따라, 가입자는 네트워크들의 우선순위화의 변화와 관련될 때 성능 선호도를 조절할 수 있을 것이다.
도 7의 예에서, 네트워크 연결 엔진(708)은 (현재) 맞춤화된 우선순위화 리스트를 이용하여 네트워크를 선택할 수 있다. 선택을 하기 위해 사용된 규칙들은 맞춤화된 우선순위화 네트워크 리스트로부터 최고 우선순위 네트워크를 선택하는 것만큼 간단할 수 있다. 그러나, 네트워크 연결 엔진(708)은 예컨대 셀룰러 네트워크로부터 Wi-Fi 네트워크로 오프로딩하기 위해 만족되어야 하는 예컨대 오프로딩 우선순위 임계치를 가질 수도 있다. 다시 말하면, 셀룰러 네트워크는 디폴트일 수 있고, 다른 네트워크들은 예컨대 우선순위화와 무관하게 오프로딩할 만한 가치가 있는 성능상의 이점을 가져야 할 것이다. 네트워크 연결 엔진(708)은 또한 (맞춤화 전에) 우선순위화 네트워크 리스트의 최고 우선순위 네트워크에 연결되며, 소정의 성능 감시 후에 맞춤화된 우선순위 리스트만을 사용하도록 구성될 수 있다.
도 7의 예에서, 라디오(710)는 네트워크 연결 엔진에 의해 선택된 네트워크에 연결되도록 지시 받는다. 시간의 경과에 따라, 라디오(710)는 선택된 네트워크 상의 성능을 감시하기 위해 사용될 수 있는 (예컨대, 무선 매체 상에서 수신된 패킷들로부터의) 적어도 몇몇 네트워크 데이터를 수신할 것이다. 라디오(710)는 본 명세서의 다른 부분에서 설명된 바와 같이 다른 네트워크들을 스캔하도록 지시 받을 수도 있고, 획득된 데이터는 다른 네트워크들 상의 성능을 감시하기 위해 사용될 수 있다.
도 7의 예에서, 성능 감시 엔진(712)은 적어도 선택된 네트워크 상의 성능을 감시하며, 다른 네트워크들 상의 성능을 감시할 수도 있고, 그렇지 않을 수도 있다. 획득된 데이터는 성능 이력 데이터 저장부(706)에 저장되며, 우선순위화 리스트를 맞춤화하기 위해 과거 성능 평가 엔진(704)에 의해 사용될 수 있다. 과거 성능 평가 엔진(704) 및 성능 감시 엔진(712)은 병렬로 또는 어떤 다른 방식으로 동작할 수 있다.
도 7의 예에서, 신뢰성 임계치 데이터 저장부(714)는 성능 감시 엔진(712)이 네트워크 연결 엔진(708)으로 하여금 네트워크를 전환하도록 유발하는 때를 나타내는 데이터 구조를 포함한다. 성능 감시 엔진(712)이 네트워크가 예컨대 충분히 신뢰할 수 있다고 판단한 경우, 네트워크 연결 엔진(708)은 예컨대 셀룰러 네트워크로부터 예컨대 충분히 신뢰할 수 있는 Wi-Fi 네트워크로 오프로딩할 수 있다. “충분히 신뢰할 수 있는”이라는 표현은, 신뢰성 임계치가 신뢰성에 대한 사용자 선호도, 네트워크 구성, 또는 만족되는 경우 오프로딩 타겟에 대한 충분한 신뢰성을 나타내는 다른 인자들에 기반하여 설정된다는 것을 의미한다. 신뢰성 임계치는 본 명세서의 다른 부분에서 설명된다.
유리하게는, 시스템(700)은 장치가 네트워크로의 연결을 결정하기 전에 네트워크 성능 평가를 수행할 수 있게 한다. 이후, 시스템(700)은 제1 네트워크로부터 충분히 신뢰할 수 있는 제2 네트워크로 오프로딩할 수 있다. 이후, 장치는 성능을 계속 평가하고, 성능에 기반하여 다른 네트워크로 전환할 것인지를 결정할 수 있다. 도 8은 네트워크 우선순위화에 기반하여 네트워크 연결을 선택하기 위한 시스템(800)의 일례를 도시하는 도면이다. 도 8의 예에서, 시스템(800)은 가입자 사용자 인터페이스(UI, 802), 선호도 선택 엔진(804), 성능 선호도 데이터 저장부(806), 인센티브 네트워크 선택 엔진(808), 우선순위화 리스트(810), 네트워크 연결 엔진(812), 및 라디오(814)를 포함한다.
가입자 UI(802)는 사용자가 네트워크, 선호도, 및 인센티브에 관한 정보를 보고, 장치에 의해 사용되는 데이터를 입력할 수 있게 한다. 이로써, UI는 표시 장치(적용 가능하다면, 드라이버들을 구비함) 및 입력 장치(적용 가능하다면, 드라이버들을 구비함)를 포함한다고 가정된다. 예로서 그러나 이에 제한됨 없이, 가입자 UI(802)는 터치스크린 입출력(I/O) 장치, 액정 표시 장치(LCD), 및 키패드, 또는 어떤 다른 적용 가능한 주지의 또는 편리한 I/O 장치(들)의 조합 또는 집합을 포함할 수 있다.
선호도 선택 엔진(804)은 가입자 UI 상에 옵션들을 표시한다. 옵션들은 예컨대 네트워크 유형 또는 네트워크로/로부터 전환할 때를 지시하는 규칙들을 포함할 수 있다. 예컨대, 사용자는 신뢰성, 혼잡 상태, QoS, 성능, 또는 어떤 다른 파라미터 값을 정의할 수 있다. 사용자는 또한 인센티브 상태들을 정의할 수 있다. 이러한 설정은 특정한 네트워크와 연관될 수 있거나(예컨대, 가입자가 명시적으로 식별될 수 있는 홈 또는 오피스 Wi-Fi 네트워크로 오프로딩하는 것에 대한 높은 선호도를 가질 수 있음), 또는 네트워크 유형과 연관될 수 있다(예컨대, 가입자가 802.11a 네트워크 또는 802.11b/g/n 네트워크로 오프로딩하는 것에 대해 상이한 선호도들을 가질 수 있음).
성능 선호도 데이터 저장부(806)는 선호도 선택 엔진(804)에서 선택된 인센티브 설정 및/또는 성능을 나타내는 데이터 구조들을 저장한다. 특정한 구현예에서, 사용자는 예컨대 메뉴 선택을 가진 선호도 선택 엔진(804)을 기동함으로써 언제든지 선호도를 업데이트할 수 있다. 성능 선호도는 동작 변화에 따라 변화될 수 있는 동적 설정일 수도 있다. 예컨대, 선호도는 장치가 완전 충전된 경우와 장치가 전력을 다 쓴 경우에 다를 수 있다. 그러므로, 선호도는 장치의 동작을 제어하기 위한 규칙들(본 예에서 구체적으로 장치에 의한 네트워크 연결 선택)과 함께 사용될 수 있거나, 이러한 규칙들로서 저장될 수 있다.
인센티브 네트워크 선택 엔진(808)은 우선순위화 리스트 데이터 저장부(810) 내에 저장될 수 있는 우선순위화 네트워크 리스트, 및 성능 선호도 데이터 저장부(806) 내의 우선순위들 및/또는 규칙들을 이용하여, 네트워크를 선택하고, 네트워크 연결 엔진(812)으로 하여금 라디오(814)를 선택된 네트워크에 연결되도록 제어하게 한다. 도 8의 예에서, 가입자 UI(802)에 표시되는 옵션들이 가입자에게 제공될 수 있고, 가입자는 이러한 옵션들과 연관된 데이터를 입력할 수 있다. 가입자에게 제공된 정보량은 구현에 따라 변화될 수 있지만, 모든 유효 네트워크들, 모든 신뢰할 수 있는 유효 네트워크들, 표시된 네트워크들에 대한 네트워크 성능의 하나 이상의 양상 등의 리스트를 포함할 수 있다.
도 9는 인센티브 네트워크 선택과 연관된 개념적인 표시(900)를 도시한다. 표시(900)는 우선순위화 네트워크들(902-1~902-N)의 리스트(전체적으로 우선순위화 네트워크 리스트(902)), 라디오 버튼들(904), 및 상태 표시자들(906)을 포함한다. 우선순위화 네트워크 리스트(902)는 구현-특정 또는 구성-특정 파라미터들에 따라 모든 유효 네트워크들을 포함할 수도 있고, 그렇지 않을 수도 있다. 예컨대, 가입자는 상기 리스트를 소정의 성능 또는 인센티브 내역을 만족하는 네트워크들로만 제한할 수도 있고, 그렇지 않을 수도 있고, 또는 서비스 제공자는 유효 네트워크들의 리스트를 줄이는 유사한 능력을 가질 수도 있고, 그렇지 않을 수도 있다. 도 9의 예에서는, 우선순위화 네트워크 리스트(902)가 우선순위에 따라 순서대로 놓인다고 가정되지만, 순서가 아닌 우선순위 표시자가 대신 사용될 수 있다(예컨대, 우선순위는 열 내의 번호, 텍스트 또는 백그라운드 컬러 등에 의해 표시될 수 있다).
도 9의 예에서, 라디오 버튼들(904)은 네트워크 선택 메커니즘을 도시하도록 의도된다. 우선순위화 네트워크 리스트(902)의 네트워크들 중 하나를 선택하기 위한 적용 가능한 주지의 또는 편리한 메커니즘이 대신 사용될 수 있다(예컨대, 사용자가 네트워크 상에서 “클릭”했으면 상기 네트워크가 선택되도록, 우선순위화 네트워크 리스트(902)의 텍스트가 선택될 수 있다). 특정한 구현예에서, 네트워크의 선택은 언제 네트워크에 연결될지 또는 언제 새로운 네트워크로 전환될지에 관해 가입자에 의해 결정된 규칙들의 세트에 기반하여 장치에 의해 이루어질 수 있다는 것을 주목해야 한다.
도 9의 예에서, 상태 표시자들(906)은 우선순위화 네트워크 리스트 표시와 연관되어 제공될 수 있는 정보를 도시하도록 의도된다. 도 9의 예에서, 상태 표시자들(906)은 성능들(908-1~908-N)의 열(전체적으로 성능 상태들(908)), 유효성들(910-1~910-N)의 열(전체적으로 네트워크 유효성 상태들(910)), 및 인센티브들(912-1~912-N)의 열(전체적으로 인센티브 상태들(912))을 포함한다. 상태 표시자들(906)이 열 또는 표 형태로 표시될 필요는 없다(예컨대, 데이터는 우선순위화 네트워크 리스트(902) 내의 네트워크 상의 호버링(hovering)에 의해 표시될 수 있다. 데이터는 또한 컬러-코딩에 의해 표현될 수 있거나(예컨대, 우선순위화 네트워크 리스트(902) 내의 네트워크들은, 네트워크의 대응하는 혼잡 상태가 높으면 적색 텍스트로 표시될 수 있고, 네트워크의 대응하는 혼잡 상태가 낮으면 녹색 텍스트로 표시될 수 있음), 또는 어떤 다른 적절한 주지의 또는 편리한 기법을 이용하여 네트워크의 상태에 관한 정보를 전달함으로써 표현될 수 있다.
본 명세서의 다른 부분에서 전술한 바와 같이, 성능은 매우 다양한 의미(예컨대, 네트워크 성능, 경제적 성능, 액세스 허가 성능 등)를 가질 수 있다. 따라서, 성능 상태들(908)의 하나의 열이 있지만, 다양한 유형의 성능에 대한 추정치 또는 상태를 나타내기 위한 여러 열이 있을 수도 있다. 각각의 성능 유형 내에서, 추가적인 하위 범주가 있을 수 있다(예컨대, 네트워크 성능은 처리량, QoS, 혼잡도 등을 포함하는 2가지 이상의 방식으로 측정될 수 있다). 성능은 가입자를 위해 요약되고, 단일 값(예컨대, 네트워크의 상대 성능을 나타내는 숫자)으로 제시될 수 있거나, 또는 보다 명시적인 데이터(예컨대, 네트워크의 기본 라디오 비트율)가 제공될 수 있다.
네트워크 유효성 상태들(910)은 성능에 관한 것이지만, 약간의 차이로 인해 별개의 열로 나타낸다. 성능은 대응하는 네트워크와의 연결이 이루어지면 기대할 수 있는 것을 나타낼 수 있다. 유효성은 연결이 이루어질 가능성을 나타낼 수 있다. 신뢰성(미도시)은, 성능이 일관될 것 또는 연결이 시간의 경과에 따라 (예컨대, 시각에 기반하여 신뢰성 구역 또는 이동 궤적을 고려하여) 유지될 수 있을 것이라는 가능성을 나타내기 때문에 구별될 수 있고, 성능 및 유효성 모두와 어느 정도 다르다. 신뢰성은 우선순위화 네트워크 리스트(902) 내에 신뢰할 수 있는 네트워크들만이 있는 구현예에서는 표시자로서 제거될 수 있다.
인센티브 상태들(912)은 우선순위와 무관하게 하나의 네트워크를 선택하도록 가입자를 유도할 수 있는 “인센티브 제안”을 가입자에게 나타낼 수 있다.
도 10은 네트워크에 연결되도록 가입자에게 인센티브를 제공하기 위한 시스템(1000)의 일례를 도시하는 도면이다. 도 10의 예에서, 시스템(1000)은 라디오 인터페이스(1002), 라디오(1004), 인센티브 네트워크 선택 엔진(1006), 가입자 UI(1008), 및 네트워크 연결 엔진(1010)을 포함한다.
라디오(1004)는 라디오 인터페이스(1002)를 통해 네트워크로부터 또는 네트워크 대신 인센티브 제안을 수신한다. 인센티브 제안은 비컨 프레임, “인센티브 프레임”으로 식별 가능한 프레임, 메시지의 바디 또는 헤더 등과 같은 다수의 다양한 방식으로 제공될 수 있다. 통상, 네트워크의 서비스 영역에 있는 장치들에 인센티브를 송신하는 것이 더 유용하지만, 구현에 따라, 연결 이력 또는 이동 궤적에 기반한 아마도 근미래의 예측된 이동에 기반하여 인센티브들을 송신할 수 있다. 대안으로, 인센티브 제안은 라디오 인터페이스(1002) 상에서 수신되지 않으며, 대신 인센티브 네트워크 선택 엔진(1006)(또는 인센티브 제안 생성 엔진, 미도시) 내의 시스템(1000)에서 생성된다.
인센티브 네트워크 선택 엔진(1006)은 사용자가 가입자 UI(1008)를 통해 인센티브 네트워크를 선택할 수 있게 한다. 선택은 가입자 또는 서비스 제공자에 의해 사전 입력된 규칙들 또는 선호도들에 기반하여 이루어질 수도 있다. 네트워크 선택 옵션은 사용자가 인센티브 제안 대신 적용 가능한 네트워크에 연결될지를 선택하게 하는 팝업창으로 제시될 수 있다. 대안으로, 인센티브 제안은 도 9에 예로서 도시된 표시와 유사한 표시를 유발할 수 있다. 가입자에게 선택을 제공하기 위해 사용된 메커니즘과 무관하게, 네트워크 연결 엔진(1010)은 가입자의 선택에 따라 네트워크에 연결될 수 있다.
유리하게는, 서비스 제공자는 가입자로 하여금 오프로딩하길 바라는 하나 이상의 네트워크(예컨대, Wi-Fi 네트워크)를 식별할 수 있다. 셀룰러 제공자의 경우, 이로 인해, 서비스 제공자는 셀룰러 네트워크 상의 부하를 감소시킬 수 있다. 오프로딩에 인센티브를 제공함으로써, 서비스 제공자는 인센티브를 제공하지 않은 경우보다 더 많은 수의 가입자들이 오프로딩할 것으로 예상할 수 있다. 인센티브 제안은 네트워크 전환의 이점을 가입자에게 설명할 수 있는데, 예컨대, 교통 요금이 무료이거나 저렴하고, 예컨대 셀룰러 상에서 더 낮은 성능을 갖거나 유효하지 않은 하나 이상의 서비스 능력 또는 활동이 예컨대 Wi-Fi 상에서 유효하거나, 가입자가 전환에 대한 할인 또는 크레딧을 얻는 것 등을 포함할 수 있다.
도 11은 반복적으로 성능 시험을 통과하기 위한 시스템(1100)의 일례를 도시하는 도면이다. 도 11의 예에서, 시스템(1100)은 라디오 인터페이스(1102), 라디오(1104), 우선순위화 네트워크 선택 엔진(1106), 네트워크 연결 엔진(1108), 선택적 네트워크 감시 엔진(1110), 및 ANCS 보고 엔진(1112)을 포함한다.
라디오(1104)는 라디오 인터페이스(1102)를 통해 서버로부터 우선순위화 리스트를 수신한다. 우선순위화 리스트는 대안으로 시스템(1100)이 구현된 장치에서 적어도 부분적으로 생성될 수 있다.
우선순위화 네트워크 선택 엔진(1106)은 본 명세서에 사전 설명된 임의의 기법에 따라 우선순위 네트워크를 선택한다. 네트워크 연결 엔진(1108)은 적용 가능한 네트워크에 연결되도록 라디오(1104)를 제어한다. 네트워크 연결 엔진(1108)은 우선순위화 리스트의 획득 전/후에 유효 네트워크들을 판단하기 위해 스캔을 수행할 수 있다.
선택적 네트워크 감시 엔진(1110)은 유효 네트워크들의 서브세트에 대해 하나 이상의 네트워크 성능 검사를 통과할 수 있다. ANCS 보고 엔진(1112)은 검사 결과를 라디오(1104) 및 라디오 인터페이스(1102)를 통해 서버에 보고할 수 있다. 이후, 서버는 네트워크 선택 비용 함수를 가장 잘 만족하는 네트워크를 선택하기 위해 선택 알고리즘을 수행하고, 그에 따라 네트워크를 우선순위화하며, 다른 우선순위화 리스트를 제공할 수 있다. 대안으로, 시스템(1100)을 구현하는 장치는 ANCS를 이용하여 우선순위화 리스트를 맞춤화할 수 있다. 우선순위화 네트워크 선택 엔진(1106)이 새로운 네트워크를 선택한다면, 네트워크 연결 엔진(1108)은 선택된 네트워크에 연결되도록 라디오(1104)를 제어할 수 있다.
선택적 네트워크 감시 엔진(1110)은 우선순위화 리스트가 계속 업데이트되도록 ANCS를 반복적으로 생성할 수 있다. 대안으로, ANCS 보고서는 서비스 제어기 기능에 업로딩될 수 있다.
도 1 내지 도 11에 도시된 실시예들은 서로 선택적으로 결합될 수 있는 구성요소들을 포함한다. 다양한 실시예들의 비용 함수들은, 몇 가지 언급하자면, 신호 강도, 채널 강도, 기본 라디오 비트율, 네트워크 속도, 네트워크 처리량, 속도 지터, 처리량 지터, 네트워크 지연, 지연 지터, 네트워크 유효성, 성공적인 네트워크 액세스 허가 백분율에서의 네트워크 신뢰성, 액세스 허가 지연, 성능 함수로서의 성능 변화 등과 같은 파라미터들을 포함할 수 있다.
도 12는 무선 네트워크 오프로딩이 가능하며, 캐리어들이 무선 네트워크 오프로딩 서비스를 설정할 수 있게 하는 시스템(1200)의 일례를 도시하는 도면이다. 도 12의 예에서, 시스템(1200)은 네트워크(1202), 서버(1204), 지능형 무선 오프로딩 클라이언트(1206), 및 서비스 디자인 센터(SDC, 1208)를 포함한다. 네트워크(1202)는 지능형 무선 오프로딩 클라이언트(1206)가 연결되는 무선 네트워크를 포함할 것이지만, 다른 경우엔 시스템(1200)의 구성요소들을 연결하는 데 적합한 임의의 적용 가능한 주지의 또는 편리한 네트워크를 포함할 수 있다. 서버(1204)는 CSP 또는 다른 서비스 제공자의 서버일 수 있다. 지능형 무선 오프로딩 클라이언트(1206)는 무선 장치의 능력들을 포함할 수 있고, 본 명세서에 설명된 기법들의 임의의 서브세트의 구현을 포함할 수 있다.
일 실시예에서, SDC(1208)는 서비스 제공자들이 무선 네트워크 오프로딩 기능을 위한 서비스 플랜 파라미터들을 설정할 수 있도록 포탈로 작용할 수 있다. SDC(1208)는 서비스 제공자들이 Wi-Fi 네트워크에 대한 과금요율, 3G 네트워크에 대한 과금요율, 4G 네트워크에 대한 과금요율 등과 같이 다양한 무선 네트워크 연결들 각각에 대해 과금요율을 설정할 수 있게 한다. 각각의 서비스 제공자는 동일 또는 상이한 네트워크 연결들에 대해 상이한 과금요율을 설정할 수 있다. 각각의 서비스 제공자는 상이한 서비스 플랜들을 만들 수 있고, 이들 각각은 상이한 무선 연결들에 대해 상이한 과금요율을 가진다. 예컨대, 서비스 제공자는 셀 연결들에 대해 덜 과금하는, 고이동성 사용자에게 유리한 서비스 플랜을 가질 수 있다. 서비스 제공자는 셀 연결들의 이용 감소를 예상하는 사용자들에게 유리한 서비스 플랜을 가질 수 있다.
일 실시예에서, SDC(1208)는 서비스 제공자들이 통지 파라미터들을 설정할 수 있도록 포탈로 작용한다. 예컨대, 각각의 서비스 제공자는 무선 연결들 간에 전환하도록 사용자들에게 동기 부여하는 상이한 통지들을 설정할 수 있다. 이러한 통지들 및 인센티브들은 시간적, 지리-특정, 서비스 플랜 특정 등일 수 있다.
일 실시예에서, SDC(1208)는 서비스 제공자들이 액세스 파라미터들을 설정할 수 있도록 포탈로 작용한다. 예컨대, 각각의 서비스 제공자는 다양한 장치들이 소정의 네트워크 연결 등으로만 오프로딩하도록 유효 네트워크 연결들의 서브세트에만 액세스할 수 있게 한다.
SDC(1208)는 서버(1204) 또는 지능형 무선 오프로딩 클라이언트(1206)에 의해 제공되지 않을 수 있는 기능을 추가로 제공할 수 있다. 예컨대, SDC(1208)는 클라이언트 또는 서버에서 사용되는 알고리즘을 로딩하고, 클라이언트에 의한 스캔의 주기성을 설정하며, 행렬을 설정하고, 네트워크들의 지리적 경계를 설정하며, 보고의 주기성 등을 설정할 수 있다.
SDC(1208)의 예들은 본원에 참조로서 포함되는 하기의 관련 공개 출원들에서 발견될 수 있다: “검증 가능한 장치 보조 서비스 정책 이행(Verifiable Device Assisted Service Policy Implementation)”이라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0188975호, “사용자 선호도, 조절 가능한 정책, 네트워크 중립 및 사용자 프라이버시를 이용한 장치 보조 서비스 프로파일 관리(Device Assisted Service Profile Management with User Preference, Adaptive Policy, Network Neutrality, and User Privacy)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0192170호, “보고, 동기화 및 통지를 이용한 검증 가능한 장치 보조 서비스 이용 감시(Verifiable Device Assisted Service Usage Monitoring with Reporting, Synchronization, and Notification)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0191612호, “통합 정산, 중간 정산 및 다중 계정을 이용한 검증 가능한 장치 보조 서비스 이용 요금 청구(Verifiable Device Assisted Service Usage Billing with Integrated Accounting, Mediation Accounting, and Multi-Account)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0191576호, “네트워크 중립 및 사용자 프라이버시를 이용한 네트워크 기반 서비스 정책 이행(Network Based Service Policy Implementation with Network Neutrality and User Privacy)”이라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0188991호, “사용자 선호도, 조절 가능한 정책, 네트워크 중립 및 사용자 프라이버시를 이용한 네트워크 기반 서비스 프로파일 관리(Network Based Service Profile Management with User Preference, Adaptive Policy, Network Neutrality and User Privacy)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0188990호, “자동화된 장치 권한 설정 및 활성화(Automated Device Provisioning and Activation)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0192212호, “장치 보조 엠비언트 서비스(Device Assisted Ambient Services)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0191604호, “네트워크 기반 엠비언트 서비스(Network Based Ambient Services)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0191575호, “서비스의 분석, 설계, 검사 및 생산을 위한 네트워크 툴(Network Tools for Analysis, Design, Testing, and Production of Services)”이라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0188993호, “로밍 서비스 네트워크 및 오버레이 네트워크(Roaming Services Network and Overlay Networks)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0190470호, “액세스 서비스 제공자를 위한 개방형 개발 시스템(Open Development System for Access Service Providers)”이라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0192120호, “가상 서비스 제공자 시스템(Virtual Service Provider Systems)”이라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0192207호, “개방형 거래 중앙 요금 청구 시스템(Open Transaction Central Billing System)”이라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0191613호, “중간 네트워킹 장치를 위한 검증 가능하고 정확한 서비스 이용 감시(Verifiable and Accurate Service Usage Monitoring for Intermediate Networking Devices)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0188995호, “중간 네트워킹 장치를 위한 검증 가능한 서비스 요금 청구(Verifiable Service Billing for Intermediate Networking Devices)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0188994호, “중간 네트워킹 장치를 위한 검증 가능한 서비스 정책 이행(Verifiable Service Policy Implementation for Intermediate Networking Devices)”이라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0191846호, “중간 네트워킹 장치에 대하여 사용자 선호도, 조절 가능한 정책, 네트워크 중립 및 사용자 프라이버시를 이용한 서비스 프로파일 관리(Service Profile Management with User Preference, Adaptive Policy, Network Neutrality and User Privacy for Intermediate Networking Devices)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0188992호, “단순화된 서비스 네트워크 아키텍쳐(Simplified Service Network Architecture)”라는 명칭으로 2009년 3월 2일에 출원된 미국 공개번호 제2010/0191847호, “장치 보조 CDR 생성, 집계, 중재 및 요금 청구(Device Assisted CDR Creation, Aggregation, Mediation, and Billing)”라는 명칭으로 2010년 1월 27일에 출원된 미국 공개번호 제2010/0197266호, “조절 가능한 엠비언트 서비스(Adaptive Ambient Services)”라는 명칭으로 2010년 1월 27일에 출원된 미국 공개번호 제2010/0198698호, “장치 보조 서비스를 위한 보안 기술(Security Techniques for Device Assisted Services)”이라는 명칭으로 2010년 1월 27일에 출원된 미국 공개번호 제2010/0199325호, “장치 그룹 파티션 및 결산 플랫폼(Device Group Partitions and Settlement Platform)”이라는 명칭으로 2010년 1월 27일에 출원된 미국 공개번호 제2010/0197267호, “장치 보조 서비스 설치(Device Assisted Services Install)”라는 명칭으로 2010년 1월 27일에 출원된 미국 공개번호 제2010/0198939호, “장치 보조 서비스를 위한 서비스 품질(Quality of Service for Device Assisted Services)”이라는 명칭으로 2010년 1월 27일에 출원된 미국 공개번호 제2010/0195503호, 및 “장치 보조 서비스 및 프록시를 갖는 개선된 로밍 서비스 및 통합 캐리어 네트워크(Enhanced Roaming Services and Converged Carrier Networks with Device Assisted Services and a Proxy)”라는 명칭으로 2010년 1월 28일에 출원된 미국 공개번호 제2010/0197268호.
도 13은 본 명세서에 설명된 기법들이 구현될 수 있는 컴퓨터 시스템(1300)의 일례를 도시한다. 컴퓨터 시스템(1300)은 무선 클라이언트 또는 워크스테이션과 같은 클라이언트 컴퓨터 시스템이나 서버 컴퓨터 시스템으로 사용될 수 있는 종래의 컴퓨터 시스템일 수 있다. 컴퓨터 시스템(1300)은 컴퓨터(1302), I/O 장치들(1304), 및 표시 장치(1306)를 포함한다. 컴퓨터(1302)는 프로세서(1308), 통신 인터페이스(1310), 메모리(1312), 표시 제어기(1314), 비휘발성 저장 장치(1316), 및 I/O 제어기(1318)를 포함한다. 컴퓨터(1302)는 I/O 장치들(1304) 및 표시 장치(1306)에 연결되거나 이들을 포함할 수 있다.
컴퓨터(1302)는 모뎀 또는 네트워크 인터페이스를 포함할 수 있는 통신 인터페이스(1310)를 통해 외부 시스템과 상호작용할 수 있다. 통신 인터페이스(1310)는 컴퓨터 시스템(1300)의 일부 또는 컴퓨터(1302)의 일부로 고려될 수 있음을 이해할 것이다. 통신 인터페이스(1310)는 아날로그 모뎀, ISDN 모뎀, 케이블 모뎀, 토큰링 인터페이스, 위성 전송 인터페이스(예컨대, “direct PC”), 또는 컴퓨터 시스템을 다른 컴퓨터 시스템들에 연결할 수 있는 다른 인터페이스들일 수 있다.
프로세서(1308)는 예컨대 인텔 펜티엄 마이크로프로세서 또는 모토로라 파워 PC 마이크로프로세서와 같은 종래의 마이크로프로세서일 수 있다. 메모리(1312)는 버스(1370)에 의해 프로세서(1308)에 연결된다. 메모리(1312)는 동적 랜덤 액세스 메모리(DRAM)일 수 있고, 정적 랜덤 액세스 메모리(SRAM)를 포함할 수도 있다. 버스(1370)는 프로세서(1308)를 메모리(1312)에 연결하며, 비휘발성 저장 장치(1316), 표시 제어기(1314), 및 I/O 제어기(1318)에도 연결한다.
I/O 장치들(1304)은 키보드, 디스크 드라이브, 프린터, 스캐너, 및 마우스 또는 다른 포인팅 장치를 포함하는 입출력 장치들일 수 있다. 표시 제어기(1314)는 예컨대 음극선관(CRT) 또는 액정 표시 장치(LCD)일 수 있는 표시 장치(1306) 상에서 종래의 방식으로 표시를 제어할 수 있다. 표시 제어기(1314) 및 I/O 제어기(1318)는 종래의 주지의 기술로 구현될 수 있다.
비휘발성 저장 장치(1316)는 종종 자기 하드 디스크, 광 디스크, 또는 대량의 데이터를 위한 다른 형태의 저장 장치이다. 이러한 데이터 중 일부는 종종 컴퓨터(1302) 내의 소프트웨어의 실행 동안 직접 메모리 액세스 프로세스에 의해 메모리(1312)에 기입된다. 당해 기술분야의 숙련자는 “기계-판독 가능한 매체” 또는 “컴퓨터-판독 가능한 매체”라는 용어들이 프로세서(1308)에 의해 액세스 가능한 임의의 유형의 저장 장치를 포함하며, 데이터 신호를 부호화하는 반송파 역시 포함한다는 것을 즉각적으로 인식할 것이다.
컴퓨터 시스템(1300)은 상이한 아키텍쳐들을 가진 다수의 가능한 컴퓨터 시스템들 중 일례이다. 예컨대, 인텔 마이크로프로세서에 기반하는 개인용 컴퓨터는 종종 다수의 버스들을 구비하되, 이들 중 하나는 주변 장치들을 위한 I/O 버스일 수 있고, 프로세서(1308)와 메모리(1312)를 직접 연결한다(종종 메모리 버스로 지칭된다). 버스들은 상이한 버스 프로토콜로 인해 모든 필요한 해석을 수행하는 브리지 부품들을 통해 서로 연결된다.
네트워크 컴퓨터들은 본원에 제공된 교시와 함께 사용될 수 있는 다른 유형의 컴퓨터 시스템이다. 네트워크 컴퓨터들은 보통 하드 디스크 또는 다른 대용량 저장 장치를 포함하지 않으며, 실행 가능한 프로그램들은 네트워크 연결로부터 메모리(132)로 로딩되어 프로세서(1308)에 의해 실행된다. 당해 기술분야에 알려진 웹 TV 시스템 역시 컴퓨터 시스템으로 고려되지만, 소정의 입출력 장치와 같은 도 13에 도시된 특징부들 중 몇몇이 없을 수 있다. 통상의 컴퓨터 시스템은 일반적으로 적어도 프로세서, 메모리, 및 메모리를 프로세서에 연결하는 버스를 포함할 것이다.
또한, 컴퓨터 시스템(1300)은 디스크 운영 시스템과 같은 파일 관리 시스템을 일부로서 포함하는 운영 시스템 소프트웨어에 의해 제어된다. 연관된 파일 관리 시스템 소프트웨어를 구비한 운영 시스템 소프트웨어의 일례로, 마이크로소프트사(워싱턴주 레드몬드 소재)의 Windows®로 알려진 일 군의 운영 시스템들 및 이들의 연관된 파일 관리 시스템들이 있다. 연관된 파일 관리 시스템 소프트웨어를 구비한 운영 시스템 소프트웨어의 다른 예로, 리눅스 운영 시스템들 및 이들의 연관된 파일 관리 시스템들이 있다. 파일 관리 시스템은 통상 비휘발성 저장 장치(1316)에 저장되며, 프로세서(1308)로 하여금, 비휘발성 저장 장치(1316)에 파일을 저장하는 것을 포함하여, 데이터를 메모리에 저장하고 데이터를 입출력하기 위해 운영 시스템이 요구하는 다양한 작업들을 실행하게 한다.
전술한 설명의 몇몇 부분들은 컴퓨터 메모리 내의 데이터 비트 동작들에 대한 상징적 표현 및 알고리즘의 관점에서 제시되었다. 이러한 알고리즘식 설명 및 표현은 데이터 처리분야의 숙련자들이 자신들의 작업의 요지를 당해 기술분야의 다른 숙련자들에게 가장 효과적으로 전달하기 위해 이용한 수단이다. 알고리즘은, 여기서 그리고 일반적으로, 원하는 결과를 가져오는 동작들의 자기모순 없는 시퀀스로 여겨진다. 동작들은 물리량들의 물리적 조작을 요구하는 동작들이다. 보통, 이러한 양들은 저장, 전달, 결합, 비교, 및 다른 경우엔 조작될 수 있는 전기 또는 자기 신호들의 형태를 취하지만, 반드시 그런 것은 아니다. 주로 일반적인 사용을 위해, 이러한 신호들을 비트, 값, 요소, 기호, 문자, 용어, 숫자 등으로 나타내는 것이 때때로 편리하다고 입증되었다.
당해 기술분야의 숙련자들은 사용된 용어들이 적절한 물리량과 연관되어야 하며 이러한 양들에 적용되는 편리한 명칭들에 불과하다는 것을 인식해야 한다. 구체적으로 달리 명시되지 않는 한, 후술하는 논의에서 명백한 바와 같이, 설명 전반에 걸쳐, “처리(processing)” 또는 “산정(computing)” 또는 “계산(calculating)” 또는 “판단(determining)” 또는 “표시(displaying)” 등과 같은 용어들을 이용한 논의가 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 작용 및 프로세스를 나타냄은 물론이고, 이는 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리(전자)량으로 표현된 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장, 전송 또는 표시 장치들 내의 물리량으로 유사하게 표현된 다른 데이터로 조작 및 변형한다.
몇몇 실시예들에서, 본 발명은 또한 본원의 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 요구된 목적을 위해 특별히 구성될 수 있거나, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), EPROM, EEPROM, 자기 또는 광 카드, 플로피 디스크, 광 디스크, CD-ROM, 및 자기-광 디스크를 포함하는 임의의 유형의 디스크, 또는 전자 명령어를 저장하는 데 적합한 임의의 유형의 매체를 포함하지만 이들에 제한되지 않은 컴퓨터 판독 가능한 저장 매체에 저장될 수 있고, 이들 각각은 컴퓨터 시스템 버스에 연결된다.
본원에 제시된 알고리즘들 및 표시들은 본질적으로 어떤 특정한 컴퓨터 또는 다른 장치와 관련된 것이 아니다. 다양한 범용 시스템들이 본원의 교시에 따른 프로그램들과 사용될 수 있거나, 또는 요구된 방법 단계들을 수행하기 위해서는 더욱 전문화된 장치를 구성하는 것이 편리하다고 입증될 수 있다. 이러한 다양한 시스템들을 위해 필요한 구조들이 후술하는 설명에 나타날 것이다. 또한, 본 발명은 임의의 특정한 프로그램 언어를 참조하여 설명되지 않으며, 그에 따라 다양한 실시예들이 다양한 프로그램 언어를 이용하여 구현될 수 있다.
도 14는 우선순위화 무선 오프로딩을 위한 방법의 일례를 보여주는 흐름도(1400)이다. 상기 방법은 흐름도(1400)의 모듈들의 시퀀스로 구성된다. 그러나, 본원에 설명된 다른 방법들과 연관된 이러한 모듈들 및 다른 모듈들이 병렬 실행을 위해 재정리되거나 상이한 모듈 시퀀스로 재정리될 수 있음을 이해해야 한다.
도 14의 예에서, 흐름도(1400)는 무선 네트워크 데이터를 획득하는 모듈(1402)에서 시작한다. 무선 네트워크 데이터는 무선 장치에서 ANCS를 통해 획득될 수 있다. ANCS는 무선 장치에서 사용될 수 있고/있거나 ANCS 보고서로 서버에 제공될 수 있다. 서버를 활용하는 구현예에서, 서버는 다수의 무선 장치들로부터 ANCS 보고서를 수신할 수 있다. 이로 인해, 서버는 가입자에 대해 원격으로 획득되는 네트워크 데이터를 활용하여 가입자들을 위한 우선순위화 리스트들을 생성할 수 있다.
도 14의 예에서, 흐름도(1400)는 무선 네트워크 데이터로부터 우선순위화 네트워크 리스트를 생성하는 모듈(1404)로 진행된다. 서버를 활용하는 구현예에서, 서버는 서버와 연관된 서비스 제공자의 가입자들의 그룹에 대한 용량을 최적화하기 위해 메모리 내의 알고리즘을 수행할 수 있다. 최적화는, 몇 가지 언급하자면, 네트워크 부하, 무선 장치 위치, 무선 장치 연결, 성능 이력(예컨대, 네트워크에 대한 특정한 성능과 연관된 시각을 포함함), 지리적 영역 상의 네트워크맵, 무선 장치들의 이동 궤적, 가입자 선호도, 인센티브, 및 비용 함수를 고려할 수 있다. 우선순위화 리스트는 네트워크맵의 형태를 취할 수 있고, 이는 우선순위화 리스트의 서브세트(지리-위치 성분이 추가됨)로서 다루어질 수 있다.
도 14의 예에서, 흐름도(1400)는 우선순위화 네트워크 리스트의 네트워크에 연결되는 모듈(1406)로 진행된다. 장치는 장치-특정 파라미터들에 따라 서버로부터 제공된 우선순위화 네트워크 리스트를 맞춤화할 수도 있고, 그렇지 않을 수도 있다. 맞춤화가 일어나지 않는 경우, 서버는 우선순위화 리스트를 생성할 때 장치-특정 파라미터들(및 예컨대 계정-특정 파라미터들)을 고려할 수 있다. 맞춤화가 일어난 경우, 서버를 포함하는 구현예에서, 우선순위화 리스트는 여전히 서버에서 부분적으로 맞춤화될 수 있다. 맞춤화는, 몇 가지 언급하자면, 장치, 가입자-특화 규칙, 서비스 제공자-특화 규칙, 위치 궤적, 성능 이력, 환경 조건, 비용 함수, 또는 인센티브의 범위 내에서 네트워크들의 감시된 성능에 따라 이루어질 수 있다.
도 14의 예에서, 흐름도(1400)는 네트워크 성능을 감시하는 모듈(1408)로 진행된다. 감시는 장치가 연결되어 있는 네트워크에 대해 이루어질 수 있다. 장치는 네트워크 감시 규칙들에 따라 수동 또는 능동적으로 다른 네트워크들을 감시할 수도 있다. 규칙들은 서비스 제공자, SDC에 의해 제공되거나, 직접 입력될 수 있다.
도 14의 예에서, 흐름도(1400)는 모듈(1402)로 복귀하여, 전술한 바와 같이 진행된다. 동일한 요소들이 반드시 동일한 태스크를 수행할 필요는 없다. 예컨대, 서버는 초기에 우선순위화 네트워크 리스트를 생성할 수 있지만(1404), 2번째 반복에서는, 무선 장치가 서버로부터 새로운 우선순위화 리스트를 수신함 없이 (맞춤화된) 우선순위화 네트워크 리스트를 생성할 수 있다. 또한, 2번째 반복에서는 더 많거나 더 적은 작용들 또는 판단들이 이루어질 수 있다. 예컨대, 장치가 최초로 네트워크에 연결된 경우(1406), 네트워크의 성능 또는 어떤 다른 파라미터를 임계치와 비교하여, 다른 네트워크로 전환할 것인지를 판단할 필요가 없을 수 있지만, 장치가 하나의 네트워크로부터 다른 네트워크로의 전환을 고려하는 경우, 현재 성능을 임계치와 비교하여, (현재) 더 높은 우선순위의 네트워크로 전환할 “가치가 있음”을 확실히 하는 것이 바람직할 수 있다.
도 15는 장치 보조 서비스(DAS)를 이용하여 무선 오프로딩을 용이하게 하기 위한 방법의 일례의 흐름도(1500)를 도시한다. 도 15의 예에서, 흐름도(1500)는 장치의 네트워크 서비스 이용 활동들을 감시하는 모듈(1402)에서 시작한다. 네트워크 서비스 이용 활동들은 입증된/입증 가능한 네트워크 성능 특성화 소프트웨어(하드웨어에 구현됨) 또는 하드웨어 에이전트로 감시될 수 있다. 에이전트는 당해의 장치 또는 다른 장치 상에 구현될 수 있고, 2개 이상의 장치 상에 구현되는 구성요소들을 가질 수 있다. 감시는 라디오를 이용하여 이루어질 수 있고, 선택적일 수 있다. 선택적 감시를 수행하는 에이전트의 예로, 각각 도 4 및 도 11을 참조하여 예로서 설명된 선택적 네트워크 감시 엔진(414) 또는 선택적 네트워크 감시 엔진(1110), 또는 도 7을 참조하여 예로서 설명된 성능 감시 엔진(712)이 있다.
도 15의 예에서, 흐름도(1500)는 감시된 네트워크 서비스 이용 활동들에 기반하여 네트워크 비지 상태를 판단하는 모듈(1504)로 진행된다. 네트워크 통계가 도 3을 참조하여 예로서 설명된 네트워크 통계 데이터 저장부(304)와 같은 네트워크 통계 데이터 저장부에 저장될 수 있다. 네트워크 비지 상태는 네트워크 통계 데이터 저장부에 저장되거나, 또는 네트워크 통계 데이터 저장부에 저장된 통계로부터 유추될 수 있다. 네트워크 비지 상태는 네트워크 용량, 유효성 및/또는 성능의 측정치를 포함할 수 있고, 본 명세서에 설명된 기법들을 이용하여 유추될 수 있다. 네트워크 비지 상태는 장치가 경험한 네트워크 비지 상태를 측정하고/측정하거나 특성화할 수 있는 네트워크 성능 특성화 소프트웨어(하드웨어에 구현됨) 또는 하드웨어 에이전트로 판단될 수 있다. 네트워크 비지 상태 판단을 수행하는 에이전트의 예로, 도 3을 참조하여 예로서 설명된 바와 같은 네트워크 통계 특성화 엔진(306), 또는 도 7을 참조하여 예로서 설명된 바와 같은 과거 성능 평가 엔진(704)이 있다.
도 15의 예에서, 흐름도(1500)는 네트워크 비지 상태를 네트워크 요소/기능에 보고하는 모듈(1506)로 진행된다. 네트워크 비지 상태는 본 명세서에 설명된 임의의 보고서(예컨대, 네트워크 비지 상태 보고서, ANCS 보고서 등)에 포함될 수 있다. 구현에 따라, 네트워크 비지 상태는, 네트워크 서비스 이용 활동들을 적어도 부분적으로 감시하고/감시하거나 네트워크 비지 상태를 판단한 무선 장치와 같은 무선 장치, 서버, 또는 어떤 다른 적용 가능한 장치 상의 네트워크 요소/기능에 의해 사용될 수 있다. 이러한 네트워크 요소/기능의 예로, 도 1을 참조하여 예로서 설명된 바와 같은 무선 네트워크 오프로딩 엔진(106)이 있다.
도 15의 예에서, 흐름도(1500)는 네트워크 비지 상태를 이용하여 하나 이상의 네트워크 용량 제어 서비스들에 대한 네트워크 액세스 제어 정책을 설정하는 모듈(1508)로 진행된다. 네트워크 액세스 제어 정책은, 각각 도 4, 도 7, 도 8, 도 10, 도 11을 참조하여 예로서 설명된 바와 같은, 지리-분석 연결 엔진(410), 네트워크 연결 엔진(708), 인센티브 네트워크 선택 엔진(808) 및/또는 네트워크 연결 엔진(812), 인센티브 네트워크 선택 엔진(1006) 및/또는 네트워크 연결 엔진(1010), 우선순위화 네트워크 선택 엔진(1106) 및/또는 네트워크 연결 엔진(1108)에 의해 이행될 수 있다.
무선 네트워크 상의 데이터는 종종 암호화된다. 그러나, 원한다면, 데이터가 암호화되지 않고 송신될 수도 있다. 암호화된 데이터에 관하여, 로그 장치(rogue device)는 로그에 대처하는 조치가 취해지기 전에 클라이언트로부터 임의의 정보(예컨대, 암호 등)를 알아내기가 매우 어려울 것이다. 로그는 클라이언트를 혼란하게 할 수 있고, 아마도 몇몇 암호화된 데이터를 취할 수 있지만, 위험성은 미미하다(심지어 몇몇 유선 네트워크들보다 더 적다).
후술하는 예는 이러한 시스템의 가능한 이점들을 설명한다. 일 실시예에서, 가입자는 스마트폰을 켜고, 스마트폰은 가입자의 홈 네트워크가 유효함을 알린다. 가입자가 셀룰러 네트워크에 연결되어 있고 홈 네트워크에 연결되어 있지 않다고 가정한다면, 셀룰러 서비스 제공자는 가입자에게 인센티브 제안(가입자가 셀룰러 네트워크로부터 홈 네트워크로 오프로딩한다면 서비스 요금이 감소함)을 송신한다.
출근을 위해 이동 시에, 스마트폰은 가입자가 더 이상 홈 네트워크의 서비스 영역에 있지 않지만, 이웃들의 홈 네트워크들 중 3개의 홈 네트워크와 셀룰러 네트워크의 서비스 영역에 있다는 것을 인식한다. 스마트폰은 가입자의 이동 궤적(속도)에 의해 가입자가 이웃들의 홈 네트워크들 중 3개의 홈 네트워크 전체의 범위를 빠르게 벗어나리라는 것을 인식한다. 그러므로, 스마트폰은 셀룰러 네트워크에 연결되도록 설정될 수 있다. 스마트폰이 예컨대 정지 신호에서 정지한 것을 인식할 때, 스마트폰은 (특히, 스마트폰이 가입자가 이동 중이었음을 알고 있다면) Wi-Fi 네트워크로의 오프로딩을 고려하기 전에 소정의 시간 동안 대기하도록 설정될 수 있다. 따라서, 스마트폰은 셀룰러 네트워크에 연결된 상태를 유지하도록 설정될 수 있다.
목적지에 도달 시에, 스마트폰은 이동 궤적이 정지되거나 비교적 느리다는 것과, 스마트폰이 2개의 근거리 Wi-Fi 네트워크에 인접하다는 것을 인식한다. 일 실시예에서, 제1 Wi-Fi 네트워크의 비컨 프레임들이 더 높은 수신 신호 강도 표시(RSSI)를 가질 수 있다. 그러나, 다른 가입자들이 제1 네트워크가 현시점에 보통 매우 혼잡하다는 것을 나타내는 제1 네트워크에 관한 네트워크 데이터를 제공했을 수 있다. 그러므로, 스마트폰은 높은 RSSI에도 불구하고 제2 네트워크가 제1 네트워크보다 더 높은 우선순위를 가진다는 것을 나타내도록 설정될 수 있다.
몇몇 실시예들에서, 스마트폰은 제2 네트워크가 제1 네트워크보다 더 높은 우선순위를 가진다는 것을 나타낸 우선순위화 네트워크 리스트를 수신한다. 몇몇 실시예들에서, 스마트폰은 인센티브 제안에 따라 무선 네트워크에 연결되거나, 가입자에 의해 설정된 선호도에 기반하여 연결되거나, 또는 가입자가 우선순위화 네트워크 리스트로부터 네트워크를 선택하는 것을 대기하도록 설정된다.
정보 수집을 돕기 위해, 스마트폰은 다른 근거리 무선 네트워크, 예컨대 제1 무선 네트워크에 관한 정보를 수집하도록 설정될 수 있고, 상기 정보를 셀룰러 서비스 제공자에게 보고할 수 있다. 스마트폰은 다른 근거리 무선 네트워크의 범위에 있는 동안, 다른 네트워크를 수동 또는 능동적으로 스캔할 수 있다. 몇몇 실시예들에서, 스마트폰은 전원에 연결되어 있을 때만 능동 스캔을 수행하도록 설정된다.