KR102093524B1 - 무선 네트워크 연결을 위한 확장 가능한 프레임워크 - Google Patents

무선 네트워크 연결을 위한 확장 가능한 프레임워크 Download PDF

Info

Publication number
KR102093524B1
KR102093524B1 KR1020147022787A KR20147022787A KR102093524B1 KR 102093524 B1 KR102093524 B1 KR 102093524B1 KR 1020147022787 A KR1020147022787 A KR 1020147022787A KR 20147022787 A KR20147022787 A KR 20147022787A KR 102093524 B1 KR102093524 B1 KR 102093524B1
Authority
KR
South Korea
Prior art keywords
plug
authentication plug
computing device
network
mobile computing
Prior art date
Application number
KR1020147022787A
Other languages
English (en)
Other versions
KR20140116502A (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 KR20140116502A publication Critical patent/KR20140116502A/ko
Application granted granted Critical
Publication of KR102093524B1 publication Critical patent/KR102093524B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/16Performing reselection for specific purposes
    • H04W36/22Performing reselection for specific purposes for handling the traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/043Key management, e.g. using generic bootstrapping architecture [GBA] using a trusted network node as an anchor
    • H04W12/0431Key distribution or pre-distribution; Key agreement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Landscapes

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

Abstract

셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 무선 네트워크에 오프로딩하는 확장 가능한 프레임워크는 소프트웨어 플러그인, 통상적으로 모바일 디바이스 운영 체제의 일부인 플러그인 호스트, 및 플러그인 호스트가 플러그인과 통신하는 플러그인 인터페이스를 포함한다. 플러그인은 하나 이상의 모바일 운영자들과 연관된다. 프레임워크는 하나 이상의 플러그인들을 포함할 수 있지만, 통상적으로 오직 한번에 하나의 플러그인이 활성화된다. 프레임워크는 활성 플러그인과 연관된 모바일 운영자와 연관된 무선 네트워크들을 자동적으로 검출하여 접속할 수 있다. 플러그인은 접속된 무선 네트워크를 통해 모바일 운영자를 이용하여 모바일 디바이스 또는 모바일 디바이스 사용자를 자동적으로 인증할 수 있다. 플러그인은 무선 네트워크를 검출하고 이에 접속하며 이에 대한 접속을 끊는데 책임이 있는 운영 체제 기능에 대한 액세스가 허용되지 않아서, 모바일 운영 체제 안정성 및 배터리 수명을 개선할 수 있다.

Description

무선 네트워크 연결을 위한 확장 가능한 프레임워크{EXTENSIBLE FRAMEWORK FOR WIRELESS NETWORK CONNECTIVITY}
셀룰러 네트워크는 콘텐츠, 특히 비디오 콘텐츠에 대한 가입자 수요가 증가함에 따라 이를 유지하는데 어려움을 겪고 있다. 이러한 문제를 다루는데 이용되는 한 가지 기법은 Wi-Fi 오프로딩(offloading)으로, 여기서, 모바일 네트워크 운영자는 셀룰러 네트워크로부터의 트래픽을 Wi-Fi 네트워크로 오프로딩한다.
이 요약은 아래의 상세한 설명에서 더욱 기술되는 개념들의 선택을 간략화된 형태로 소개하기 위해서 제공된다. 이 요약은 특허청구되는 주제의 중요 특징 또는 필수 특징을 식별하기 위한 것이 아니고, 특허청구되는 주제의 범위를 제한하기 위해 이용되는 것도 아니다.
애플리케이션 개발자가 셀룰러 데이터를 Wi-Fi 핫스팟에 오프로딩하기 위해 모바일 운영자 특유의 로직으로 소프트웨어 플러그인을 구현하는 것을 허용하는 확장 가능한 프레임워크가 기술된다. 프레임워크는, 선호하는 Wi-Fi 네트워크들을 지정하고, 인증을 시도하며, 접속 시도의 성공 또는 실패를 사용자 및 플랫폼에 알리는데 플러그인이 이용할 수 있는 콜백 및 인터페이스를 포함한다. 모바일 디바이스가 상이한 네트워크들에서 이용될 수 있기 때문에, 단일 디바이스는 가입자 신원 또는 네트워크 특성에 따라 활성화되는 다수의 플러그인들을 포함할 수 있다.
셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 방법의 일 실시예에서, 플러그인 호스트가 모바일 디바이스에 의해 검출된 네트워크들에 관한 정보를 활성 플러그인에 보낸다. 활성 플러그인 및 검출된 네트워크들은 특정 모바일 운영자와 연관된다. 플러그인은 검출된 네트워크들로부터 선택된 선호하는 네트워크들에 관한 정보를 반환한다. 모바일 디바이스는 선호하는 네트워크들 중 하나에 접속되고, 플러그인 호스트는 활성 플러그인이 모바일 디바이스 또는 모바일 디바이스 사용자를 인증하도록 요청한다. 인증이 성공적이었음을 나타내는 정보가 활성 플러그인으로부터 수신되고, 데이터 트래픽은 셀룰러 네트워크로부터 접속된 무선 네트워크로 오프로딩된다.
개시된 기술들의 전술한 목적, 특징 및 장점과, 다른 목적, 특징 및 장점은 첨부 도면들을 참조하여 진행하는 다음의 상세한 설명으로부터 더욱 명백해질 것이다.
도 1은 예시적인 모바일 컴퓨팅 디바이스를 도시하는 시스템 다이어그램이다.
도 2는 기술된 실시예들, 기법들 및 기술들이 구현될 수 있는 적합한 구현 환경의 일반화된 예를 나타낸다.
도 3은 셀룰러 네트워크 및 무선 네트워크를 통해 클라우드에 접속된 예시적인 모바일 컴퓨팅 디바이스의 블록도이다.
도 4는 확장 가능한 프레임워크의 예시적인 구현의 블록도이다.
도 5는 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 제 1 예시적인 방법의 흐름도이다.
도 6은 본 명세서에 기술된 확장 가능한 프레임워크를 이용하는 모바일 컴퓨팅 디바이스의 블록도이다.
도 7은 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 제 2 예시적인 방법의 흐름도이다.
도 8는 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 제 3 예시적인 방법의 흐름도이다.
본 명세서에 기술된 기술들은 스마트 폰 또는 태블릿 컴퓨터와 같은 모바일 컴퓨팅 디바이스에/로부터 셀룰러 네트워크를 통해 보내지는 데이터 트래픽이 Wi-Fi LAN(Local Area Network; 근거리 네트워크)와 같은 다른 무선 네트워크에 오프로딩되도록 허용한다. 오프로딩은 모바일 컴퓨팅 디바이스에 구현된 확장 가능한 프레임워크에 의해 가능하게 된다. 프레임워크는 무선 네트워크로의 자동 접속 및 모바일 디바이스(또는 모바일 디바이스 사용자)의 자동 인증을 제공한다. 프레임워크는 플러그인 호스트(인증 소프트웨어 모듈 호스트 또는 인증 플러그인 호스트) 및 하나 이상의 소프트웨어 플러그인들(인증 소프트웨어 모듈들 또는 인증 플러그인들)을 포함한다. 소프트웨어 플러그인들은 통상적으로 모바일 네트워크 운영자(MO) 또는 ISV(independent software vendor; 독립된 소프트웨어 업자)에 의해 공급되고, 자동 접속 및 인증에 필요한 정보를 포함한다. 본 명세서에 기술된 네트워크 오프로딩 기술을 이용하여 구현된 모바일 컴퓨팅 디바이스는 사용자 개입 없이 셀룰러 데이터 트래픽을 오프로딩하기 위해 Wi-Fi 핫스팟에 자동 접속할 수 있다. 본 명세서에 이용되는 용어 "핫스팟"은 네트워크, 통상적으로 인터넷에 대한 액세스를 제공하는 사이트를 의미한다.
도 1은 본 명세서에 기술된 방법들 중 임의의 방법을 수행하도록 이용될 수 있는 예시적인 모바일 컴퓨팅 디바이스(모바일 디바이스)(100)를 도시하는 시스템 다이어그램이다. 모바일 컴퓨팅 디바이스(100)는 다양한 선택적인 하드웨어 및 소프트웨어 컴포넌트(105)를 포함할 수 있다. 일반적으로, 컴포넌트(105)는 다른 컴포넌트들과 통신할 수 있지만, 설명의 용이함을 위해 모든 접속이 도시되지 않는다. 모바일 디바이스(100)는 셀 폰, 스마트 폰, 휴대용 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 태블릿 디바이스, 슬레이트(slate) 디바이스, 미디어 플레이어, 가전 디바이스(예컨대, 네트워크 사용 가능한 카메라, 비디오 카메라)와 같은 다양한 모바일 컴퓨팅 디바이스들 중 임의의 것일 수 있고, Wi-Fi, 셀룰러 또는 위성 네트워크와 같은 하나 이상의 네트워크들과의 유선 통신 또는 무선 통신을 허용할 수 있다. "모바일" 컴퓨팅 디바이스가 일컬어지지만, 일부 실시예들에서, 모바일 디바이스(100)는 데스크 탑 컴퓨터 또는 서버와 같은 통상적으로 모바일이 아닌 것으로 고려되는 컴퓨팅 디바이스일 수 있다.
모바일 디바이스(100)는 신호 코딩, 그래픽 처리, 데이터 처리, 입출력 처리, 전력 제어 및/또는 다른 기능들과 같은 작업을 수행하기 위해 제어기 또는 프로세서(110)[예컨대, 신호 프로세서, 그래픽 처리 유닛(graphics processing unit; GPU), 마이크로프로세서, ASIC, 또는 다른 제어 및 처리 로직 회로 또는 소프트웨어]를 포함할 수 있다. 운영 체제(112)는 컴포넌트(105)의 할당 및 사용을 제어할 수 있고, 하나 이상의 애플리케이션 프로그램(113)을 지원할 수 있다. 애플리케이션 프로그램(113)은 공통 모바일 컴퓨팅 애플리케이션들(예컨대, 이메일 애플리케이션, 달력, 연락처, 웹 브라우저, 메시지 애플리케이션)은 물론 다른 컴퓨팅 애플리케이션들도 포함할 수 있다.
모바일 컴퓨팅 디바이스(100)는 메모리(120)를 포함할 수 있다. 메모리(120)는 고정식 메모리(non-removable memory)(122) 및 착탈식 메모리(removable memory)(124)를 포함할 수 있다. 고정식 메모리, 즉, 임베디드 메모리(122)는 RAM, ROM, 플래시 메모리, 하드 드라이브, 또는 다른 잘 알려진 메모리 저장 기술을 포함할 수 있다. 착탈식 메모리(124)는 GSM(Global System for Mobile Communication) 시스템에서 잘 알려진 가입자 식별 모듈(Subscriber Identity Module; SIM) 카드, 메모리 스틱, 플래시 메모리 카드[예컨대, SD(Secure Digital; 보안 디지털) 카드], 또는 "스마트 카드"와 같은 다른 잘 알려진 메모리 저장 기술을 포함할 수 있다. 메모리(120)는 운영 체제(112), 애플리케이션 프로그램(113), 플러그인 호스트(114) 및 플러그인(115)을 디바이스(100) 상에서 작동시키기 위한 컴퓨터 실행 가능 명령어 및/또는 데이터를 저장하는데 이용될 수 있다. 플러그인 호스트(114)는 운영 체제(112)의 일부일 수 있다. 예시적인 데이터에는 하나 이상의 유선 또는 무선 네트워크들을 통해 모바일 컴퓨팅 디바이스(100)에 의해 다른 디바이스들 또는 하나 이상의 네트워크 서버들로부터 수신 및/또는 이들에 보내지는, 웹 페이지, 텍스트, 이미지, 사운드 파일, 비디오 데이터, 무선 네트워크 데이터베이스 또는 다른 데이터 세트를 포함할 수 있다. 메모리(120)는 국제 이동국 가입자 식별번호(International Mobile Subscriber Identity; IMSI)와 같은 가입자 식별자, 및 국제 모바일 기기 식별코드(International Mobile Equipment Identifier; IMEI)와 같은 장비 식별자를 저장하는데 이용될 수 있다. 이와 같은 식별자들은 사용자 및 장비를 식별하기 위해 네트워크 서버에 전송될 수 있다. 컴퓨팅 디바이스(100)는 또한 외부 하드 드라이브와 같은 외부 메모리(도시되지 않음)에 대한 액세스를 가질 수 있다.
모바일 디바이스(100)는 터치 스크린(132), 마이크로폰(134), 카메라(136), 물리적 키보드(138) 및/또는 트랙볼(139)과 같은 하나 이상의 입력 디바이스들(130), 및 스피커(142) 및 디스플레이(144)와 같은 하나 이상의 출력 디바이스들(140)을 지원할 수 있다. 다른 가능한 출력 디바이스들(도시되지 않음)은 압전기 또는 다른 촉각 출력 디바이스들을 포함할 수 있다. 임의의 입력 디바이스(130) 및 임의의 출력 디바이스(140)는 컴퓨팅 디바이스(100) 내부에 있거나, 컴퓨팅 디바이스(100) 외부에 있거나, 또는 컴퓨팅 디바이스(100)에 탈부착이 가능할 수 있다. 외부 입력 디바이스(130) 및 외부 출력 디바이스(140)는 유선 접속 또는 무선 접속을 통해 컴퓨팅 디바이스(100)와 통신할 수 있다. 이와 같은 디바이스들은 하나 보다 많은 입출력 기능을 제공할 수 있다. 예를 들어, 터치스크린(132) 및 디스플레이(144)는 단일 입출력 디바이스에 결합될 수 있다.
무선 셀룰러 모뎀(160)이 셀룰러 모뎀 안테나(162)에 결합될 수 있고, 모바일 컴퓨팅 디바이스(100)와 모바일 셀룰러 통신 네트워크 사이에 양방향 통신을 지원할 수 있다. 모바일 디바이스(100)는 Wi-Fi 모뎀(163) 또는 블루투스 모뎀(164)과 같은 다른 무선 기반 모뎀들을 포함할 수 있고, 이들 각각은 그 자신의 안테나[예컨대, Wi-Fi 안테나(168), 블루투스 안테나(169)]에 결합될 수 있다. 셀룰러 모뎀(160)은 통상적으로 단일 셀룰러 네트워크 내에서, 또는 셀룰러 네트워크들 사이에서, 또는 모바일 컴퓨팅 디바이스와 공중 전화 교환망(public switched telephone network; PSTN) 사이에서 데이터 통신 및 음성 통신을 위해 GSM 네트워크와 같은 하나 이상의 셀룰러 네트워크들과 통신하도록 구성된다.
모바일 컴퓨팅 디바이스(100)는 물리적 커넥터들(172)을 포함하는 적어도 하나의 입출력 포트(170)[이것은, 예를 들어, USB 포트, IEEE 1394(파이어와이어) 포트 및/또는 RS-232 포트일 수 있음], 전원 장치(174), 및 GPS 수신기(175)와 같은 위성 항법 시스템 수신기를 더 포함할 수 있다. GPS 수신기(175)는 GPS 안테나(179)에 결합될 수 있다. 다양한 안테나들이 모바일 컴퓨팅 디바이스(100)의 별도의 하드웨어 컴포넌트로서 도시되지만, 이들은 다른 컴포넌트들에 통합될 수 있다. 예를 들어, GPS 안테나(179)는 GPS 수신기(175)에 통합될 수 있다. 게다가, 도 1에 별도로 도시된 안테나들은 단일 안테나로서 구현될 수 있다.
예시된 컴포넌트들(105)은 임의의 컴포넌트들이 삭제되거나 다른 컴포넌트들이 추가될 수 있기 때문에, 모두 요구되거나 포함되지 않는다.
도 2는 기술된 실시예들, 기법들 및 기술들이 구현될 수 있는 적합한 구현 환경(200)의 일반화된 예를 나타낸다.
예시적인 환경(200)에서, 다양한 유형의 서비스들(예컨대, 컴퓨팅 서비스)이 클라우드(210)에 의해 제공된다. 예를 들어, 클라우드(210)는 인터넷과 같은 네트워크들을 통해 접속된 다양한 유형의 사용자들 및 디바이스들에 클라우드 기반 서비스를 제공하고, 중앙에 배치되거나 분산될 수 있는, 한 무리의 컴퓨팅 디바이스들을 포함할 수 있다. 구현 환경(200)은 컴퓨팅 작업을 완수하기 위해 상이한 방식으로 이용될 수 있다. 예를 들어, 일부 작업(예컨대, 사용자 입력 처리 및 사용자 인터페이스 제시)은 로컬 컴퓨팅 디바이스[예컨대, 접속된 디바이스들(230, 240, 250)]에서 수행될 수 있지만, 다른 작업(예컨대, 후속 처리, 모바일 디바이스 또는 사용자 인증에 이용될 데이터의 저장)은 클라우드(210)에서 수행될 수 있다.
예시적인 환경(200)에서, 클라우드(210)는 다양한 스크린 능력을 갖는 접속된 디바이스들(230, 240, 250)에 서비스를 제공한다. 접속된 디바이스(230)는 컴퓨터 스크린[예컨대, 중간 크기의 스크린(235)]을 갖는 디바이스를 나타낸다. 예를 들어, 접속된 디바이스(230)는 데스크 탑, 랩톱, 노트북, 넷북 또는 태블릿 컴퓨터 등일 수 있다. 접속된 디바이스(240)는 모바일 컴퓨팅 디바이스 스크린(245)(예컨대, 소형 스크린)을 갖는 모바일 컴퓨팅 디바이스를 나타낸다. 예를 들어, 접속된 디바이스(240)는 모바일 폰, 스마트 폰, 개인 휴대 정보 단말기 등일 수 있다. 접속된 디바이스(250)는 큰 스크린(255)을 갖는 디바이스를 나타낸다. 예를 들어, 접속된 디바이스(250)는 인터넷 연결성을 갖는 텔레비전이거나, 셋톱 박스, 게임 콘솔 등과 같이 클라우드에 접속할 수 있는 다른 디바이스에 접속된 텔레비전일 수 있다. 스크린 능력이 없는 디바이스들이 또한 예시적인 환경(200)에 이용될 수 있다. 예를 들어, 클라우드(210)는 디스플레이가 없는 하나 이상의 컴퓨터들(예컨대, 서버 컴퓨터)에 서비스를 제공할 수 있다.
서비스는 서비스 제공자(220)를 통해, 또는 온라인 서비스의 다른 제공자(도시되지 않음)를 통해 클라우드(210)에 의해 제공될 수 있다. 예를 들어, 클라우드 서비스는 특정 접속된 디바이스[예컨대, 접속된 디바이스들(230, 240, 250)]의 스크린 크기, 디스플레이 능력, 및/또는 터치 스크린 능력에 맞춤화될 수 있다. 서비스 제공자(220)에 의해 제공될 수 있는 서비스는, 예를 들어, 이메일, 단문 메시지 서비스(Short Message Service; SMS), 멀티미디어 메시지 서비스(Multimedia Message Service; MMS), 소셜 네트워킹 및 웹 사이트 호스팅을 포함한다. 서비스 제공자는 인증 플러그인 및 플러그인 업그레이드와 같은 매우 다양한 상품 및 서비스, 및 구입에 상관없이 클라우드로부터 다운로드되거나 우편물을 통해 배달되는 사용자에 의해 획득될 수 있는 미디어 콘텐츠를 제공하는 온라인 시장을 호스팅할 수 있다.
예시적인 환경(200)에서, 클라우드(210)는 서비스 제공자(220)를, 적어도 부분적으로 이용하여, 다양한 접속된 디바이스들(230, 240, 250)에 본 명세서에 기술된 해결책 및 기술을 제공한다. 예를 들어, 서비스 제공자(220)는 다양한 클라우드 기반 서비스를 위해 중앙 집중형 해결책을 제공할 수 있다. 서비스 제공자(220)는 사용자들 및 디바이스들[예컨대, 접속된 디바이스들(230, 240, 250) 및 각각의 사용자들]의 서비스 가입을 관리할 수 있다.
도 3은 셀룰러 네트워크(320) 및 무선 네트워크(330)를 통해 클라우드(310)에 접속된 모바일 컴퓨팅 디바이스(300)의 블록도이다. 본 명세서에 기술된 오프로딩 방법을 이용하면, 셀룰러 네트워크(320)를 통해 이동하는 클라우드(310)와 모바일 디바이스(300) 사이의 데이터 트래픽(333)은 무선 네트워크(330)를 통해 이동하는 데이터 트래픽(336)으로서 오프로딩될 수 있다. 무선 네트워크(330)는 하나 이상의 Wi-Fi 네트워크 액세스 포인트들(Wi-Fi 핫스팟들)에 의해 액세스되는 Wi-Fi 네트워크와 같은, 임의의 무선 WLAN(Wireless Local Area Network; 무선 근거리 네트워크)일 수 있다. 본 명세서에 기술된 기술들은 일반적으로 무선 네트워크에 데이터 트래픽을 오프로딩하는 것에 대하여 논의되지만, 모바일 디바이스에 대한 유선 접속(예컨대, 이더넷, USB, 동축 케이블)이 이용 가능하다면, 셀룰러 트래픽은 유선 네트워크에 오프로딩될 수 있다.
본 명세서에서 이용되는 용어 "데이터 트래픽"은 오디오 및 비디오 데이터를 포함하는, 모바일 디바이스(300)와 클라우드(310) 사이에 교환될 수 있는 임의의 유형의 정보를 포함한다.
본 명세서에서 이용되는 용어 "오프로딩"은 클라우드(310)와 모바일 디바이스(330) 사이에 흐르는 데이터 트래픽의 적어도 일부를 셀룰러 네트워크(320)로부터 무선 네트워크(330)로 방향을 바꾸는 것을 의미한다. 일부 실시예들에서, 데이터 트래픽은 거의 소량의 데이터 트래픽만이 셀룰러 네트워크(320)을 통해 이동하도록 무선 네트워크에 오프로딩될 수 있다. 다른 실시예들에서, 오프로딩은 셀룰러 네트워크 데이터 트래픽이 간단히 감소되는 것을 포함하고, 이는 셀룰러 네트워크(320)를 통해 전달되는 데이터의 양 또는 셀룰러 네트워크 데이터 레이트를 제한하거나, 셀룰러 네트워크(320)를 통해 보내지는 데이터의 유형을 제한하거나, 특정한 유형의 데이터 트래픽을 오프로딩하거나, 또는 다른 방식으로 수행될 수 있다. 예를 들어, 오프로딩은 무선 네트워크(330)에 비디오 데이터를 오프로딩하는 것을 포함할 수 있다. 또 다른 실시예들에서, 데이터 트래픽은 모바일 디바이스가 무선 네트워크(330)에 접속된 이후에도 셀룰러 네트워크(320)를 계속해서 통과하고, 데이터 트래픽이 특정한 문턱값을 초과하는 경우에 오프로딩이 발생한다. 다른 오프로딩 방식들이 이용될 수 있다.
모바일 디바이스(300)는 운영 체제(340) 및 플러그인(350)을 포함한다. 본 명세서에 기술된 확장 가능한 프레임워크(프레임워크)는 플러그인(350) 및 운영 체제(340)의 일부를 포함한다. 운영 체제(340)는 플러그인(350)에 의해 호출될 수 있는 애플리케이션 프로그램 인터페이스(application program interface; API) 및 플러그인(350)을 호출하는 콜백을 포함한다. 운영 체제(340)의 API 및 콜백은, 예를 들어, 오프로딩을 위한 무선 네트워크를 지정하고, 인증 결과를 보고하고, 모바일 디바이스 사용자에게 제시할 메시지를 운영 체제(340)에 제공하기 위해, 플러그인(350)에 의해 이용될 수 있다. 일반적으로, 개별 플러그인은 가상 모바일 네트워크 운영자와 같은, 단일 MO 또는 MO의 파트너에 의해 소유되거나, 운영되거나 또는 차용된 무선 네트워크와 연관된 작업을 오프로딩하는 것을 지원한다. 또한, 플러그인은 Wi-Fi 핫스팟 집합자(aggregator)(그러나, 일부 경우에, 핫스팟 집합자는 MO의 사업 파트너일 수 있음)와 직접적으로 연관되는 네트워크들과 같은, MO와 연관되지 않은 무선 네트워크들과 연관된 작업들을 오프로딩하는 것을 지원할 수 있다. 다양한 실시예들에서, 활성 플러그인은 모바일 운영자와 연관된 플러그인으로서, 모바일 운영자의 무선 네트워크에 모바일 디바이스 또는 모바일 디바이스 사용자가 접속할 수 있다. 활성 플러그인을 결정하는 것은, 모바일 컴퓨팅 디바이스가 (예컨대, 부팅 절차의 일부로서) 턴온되는 경우에, 모바일 컴퓨팅 디바이스가 무선 네트워크들에 대해 스캔하고 검출하는 경우에, 또는 다른 시간에 결정될 수 있다.
모바일 디바이스들이 하나보다 많은 모바일 운영자와 연관된 무선 네트워크들을 이용할 수 있기 때문에, 모바일 디바이스(300)는 모바일 디바이스가 데이터 트래픽을 보내고 받거나, 접속하기를 원하는 셀룰러 네트워크(320)의 특성 또는 가입자(모바일 디바이스 및/또는 사용자) 신원에 따라 활성화되는 다수의 플러그인(350)을 포함할 수 있다. 따라서, 하나보다 많은 활성 플러그인이 존재할 수 있다. 어느 플러그인을 활성화하는가의 선택은, IMSI, 모바일 국가 코드(Mobile Country Code; MCC), 모바일 네트워크 코드(Mobile Network Code; MNC) 또는 모바일 가입 식별 번호(Mobile Subscription Identifier Number; MSIN)와 같은 SIM 카드에 저장된 특성; 국제 모바일 기기 식별코드(International Mobile Equipment Identifier; IMEI), 장치 일련 번호(Electronic Serial Number; ESN) 또는 모바일 장비 식별자(Mobile Equipment Identifier; MEID)와 같은 모바일 디바이스의 메모리에 저장된 특성; 및 2개의 서로 다른 유형의 모바일 컴퓨팅 디바이스 스마트 카드인, 착탈식 사용자 식별 모듈(Removable User Identity Module; R-UIM) 또는 범용 집적 회로 카드(Universal Integrated Circuit Card; UICC)에 저장된 특성에 기초할 수 있다. 플러그인(350)은 그것이 가입자 및/또는 네트워크 식별자 정보에 기초하여 활성화될 것인지의 여부에 대한 표시를 운영 체제(340)에 제공할 수 있다. 일부 실시예들에서, 활성 인증 플러그인을 선택하는 것은, 모바일 디바이스에 설치된 인증 플러그인을 질의하는 것, 및 질의에 긍정적으로 응답하는 제 1 인증 플러그인(또는, 다수의 활성 인증 플러그인들이 허용되면 질의에 긍정적으로 응답하는 제 1 N개의 인증 플러그인들)을 활성 인증 플러그인(또는 플러그인들)으로서 선택하는 것을 포함한다.
따라서, 다수의 플러그인들이 상이한 모바일 네트워크들에 대한 Wi-Fi 핫스팟 연결성을 지원하기 위해 모바일 디바이스에 설치될 수 있다. 대안적으로, 단일 플러그인이 다수의 모바일 운영자들의 무선 네트워크들에 대한 접속을 지원할 수 있다. 모바일 디바이스(300)는, 예를 들어, SIM 카드가 교환되거나, 모바일 디바이스가 다른 식으로 하나의 셀룰러 네트워크에서부터 다른 셀룰러 네트워크로 스위칭하는 경우, 하나의 플러그인에서부터 다른 플러그인으로 스위칭할 수 있다. 또한, 모바일 디바이스는(300)는 예컨대, 모바일 디바이스(300)가 제 1 모바일 운영자에 의해 운영되는 무선 네트워크에서부터 제 2 모바일 운영자에 의해 운영되는 무선 네트워크로 스위칭하도록 나타내는 입력을 사용자가 제공하는 경우에, 사용자 입력에 응답하여 플러그인을 스위칭할 수 있다.
운영 체제(340)는 다양한 오프로딩 및 네트워크 작업을 수행한다. 다양한 실시예들에서, 이러한 작업들은 플러그인 호스트에 의해 수행된다. 예를 들어, 운영 체제(340)는 모바일 디바이스의 물리적 위치로 인해 모바일 디바이스(300)에 의해 현재 검출될 수 없지만, 이용 가능한 것으로 추정되는 네트워크[이는 위성 항법 시스템 수신기[예컨대, GPS 수신기(175)]를 통해 수신된 정보를 통해 결정되거나, 셀 타워들 간의 삼각층량에 의해 결정되거나, 또는 모바일 디바이스의 부근에 있는 Wi-Fi 라우터들의 공지된 위치에 기초하여 결정될 수 있음]에 관하여 물어보기 위해 플러그인(350)을 호출할 수 있다.
예를 들어, 모바일 컴퓨팅 디바이스는 4개의 Wi-Fi 핫스팟 근처에 있을 수 있고, 이들 중 3개는 모바일 디바이스가 접속할 수 있지만, 모바일 디바이스에 설치된 소프트웨어 플러그인들과 연관된 모바일 운영자와 연관된 네트워크들에 대한 액세스 포인트가 아니다. 제 4 무선 핫스팟은 모바일 컴퓨팅 디바이스의 무선 통신 범위를 벗어나 있고, 활성 플러그인과 연관된 MO에 의해 운영된다. 이와 같은 상황에서, 프레임워크는 MO와 연관된 인근의 Wi-Fi 네트워크들의 존재를 사용자에게 통지할 수 있다. 이와 같은 통지는 오디오, 텍스트 또는 비디오를 통해 이루어질 수 있다. 일 실시예에서, 사용자에게 인근의 MO Wi-Fi 핫스팟이 통지되는데, 사용자가 MO Wi-Fi 핫스팟에 더욱 가까이 이동해야 한다는 권고 및 핫스팟에 도달하는 방법에 대한 지침과 함께, 사용자의 현재 위치 및 인근의 MO Wi-Fi 핫스팟의 위치를 도시하는 맵이 디스플레이를 통해 통지된다. MO Wi-Fi 핫스팟은 맵 상에 도시된 다른 MO Wi-Fi 핫스팟들로부터 그것을 구별하기 위해 강조되거나 달리 표시될 수 있다.
또한, 운영 체제(340)는 Wi-Fi 핫스팟으로서 식별된 라우터와 같은, 디바이스의 무선 통신 범위 내에 있는 특정 무선 네트워크에 접속하기 위한 사용자 요청에 응답하여 그 네트워크에 대한 검증 및 인증을 수행하도록 플러그인(350)에 지시할 수 있다. 따라서, 프레임워크는 자동 네트워크 접속(예컨대, 플러그인에 의해 지원되는 무선 네트워크 데이터베이스에 포함된 무선 네트워크로의 접속) 및 수동 네트워크 접속(예컨대, 사용자에 의해 지정된 네트워크로의 접속) 양자 모두를 지원할 수 있다. 더욱이, 운영 체제(340)는 사용자 선호도, 배터리 수명, 시스템 상태 또는 다른 요인들에 기초하여, 무선 네트워크들에 대해 스캔할지의 여부를 결정할 수 있다. 예를 들어, 사용자는 특정한 네트워크들에는 접속되지 않도록 나타내거나, 디바이스가 무선 네트워크들에 대해 스캔하는 빈도를 나타낼 수 있다. 일부 실시예들에서, 모바일 디바이스(300)는 모바일 디바이스의 추정된 배터리 수명이 문턱값(이는 디폴트값 또는 사용자 지정값일 수 있음)을 초과하여 남아있으면, 네트워크들에 대해 스캔하도록 구성될 수 있다. 본 명세서에서 이용되는 구절 "무선 통신 범위"는 모바일 컴퓨팅 디바이스로부터의 거리를 의미하고, 이 범위에서 모바일 컴퓨팅 디바이스는 네트워크 컴퓨팅 디바이스(예컨대, 라우터)와 같은 다른 컴퓨팅 디바이스, 또는 다른 무선 컴퓨팅 디바이스(예컨대, 스마트 폰)와 무선으로 통신할 수 있다.
또한, 운영 체제(340)는, 네트워크에 대한 사용자의 데이터 계획이 데이터 트래픽 오프로딩을 지원하는데 부적합하거나 불충분하거나, 사용자가 무선 네트워크의 운영자의 고객 지원 서비스를 접촉해야 하는 것과 같이, 사용자의 주의를 요구할 수 있는 상태에 대해 사용자에게 통지하기 위한 인터페이스를 제공한다. 운영 체제(340)는, 이와 같은 통지가 사용자에게 제시되는 때, 그 빈도 및 어떤 매체를 통하는지를 결정할 수 있다. 통지 특성은 사용자에 의해 역시 지정될 수 있다. 통상적으로, 플러그인은 사용자에게 제시될 통지를 직접적으로 야기할 수 없다. 플러그인으로부터의 사용자 통지를 운영 체제를 통과하여 전달시킴으로써, 메시지는 운영 체제를 통해 사용자에게 전달될 수 있어, 이에 의해, 플러그인 생성 메시지는 일관된 사용자 경험을 유지하기 위해 운영 체제에 의해 제공되는 다른 메시지들과 일치하는 방식으로 전달될 수 있다.
운영 체제(340)는 또한 플러그인(350)에 의해 지원되는 무선 네트워크들에 관한 정보를 플러그인(350)으로부터 수신할 수 있다. 무선 통신 범위에 있는 하나 이상의 무선 네트워크들의 존재를 검출한 이후에, 운영 체제(340)는 어느 플러그인들이 활성 플러그인들이고, 작업(예컨대, 검출된 네트워크들 중 선호하는 네트워크들의 리스트를 제공하고, 무선 네트워크에 대한 접속이 이루어진 이후에 모바일 컴퓨팅 디바이스 또는 사용자를 인증함)을 오프로딩하는데 이용될 것인지를 결정할 수 있다. 따라서, 플러그인(350)은 모바일 운영자가 선호하는 무선 네트워크들의 리스트를 미리 구성하도록 허용한다.
다양한 네트워크 오프로딩 기능들을 수행하는 플러그인(350)은 소프트웨어 모듈이고, 통상적으로, 모바일 디바이스의 운영 체제로부터 분리되어 있다. 플러그인(350)은, 예를 들어, 모바일 운영자 또는 독립된 소프트웨어 업자(ISV)에 의해 제공될 수 있고, 모바일 컴퓨팅 디바이스 상에 설치되거나, 설치를 위해 모바일 컴퓨팅 디바이스 사용자에 의해 다운로드될 수 있다. 플러그인은, 모바일 컴퓨팅 디바이스를 네트워크에 접속하는데 필요한 정보, 모바일 디바이스가 특정 네트워크에 자동적으로 접속되는지의 여부, 어떤 무선 네트워크가 선호되는지, 및 네트워크들에 대한 접속 우선 순위 정보와 같은, 하나 이상의 무선 네트워크들의 특징을 운영 체제(340)에 알릴 수 있다. 예를 들어, T-Mobile® Wi-Fi 핫스팟을 지원하는 제 1 플러그인 및 AT&T® Wi-Fi 핫스팟과 연동하는 제 2 플러그인을 포함하는 2개의 플러그인들을 포함하는 모바일 컴퓨팅 디바이스를 고려한다. 모바일 디바이스는 디바이스 상의 AT&T®SIM 카드 또는 T-Mobile® SIM 카드가 검출되었는지의 여부에 따라, 또는 사용자가 AT&T®핫스팟 또는 T-Mobile® 핫스팟에 접속하기를 시도한다면, 적절한 플러그인을 활성화시킬 수 있다. 플러그인(350)은 또한 네트워크에 대한 접속이 SIM 카드의 존재를 요구하는지의 여부를 운영 체제(340)에 알릴 수 있다. 접속 우선 순위 정보는 모바일 디바이스에 의해 검출된 무선 네트워크들의 리스트에 대한 접속 순서를 플러그인 호스트에 제공하기 위해 플러그인에 의해 이용될 수 있는 임의의 정보일 수 있다. 예를 들어, 무선 네트워크는 네트워크의 대역폭 용량과 같은 요인에 기초하여 우선 순위(예컨대, "1", "2", "3"... 또는 "A", "B","C"...)를 가질 수 있다.
플러그인(350)은 모바일 디바이스(300)의 무선 통신 범위 내에서 검출된 무선 네트워크들의 리스트를 수신하여 운영 체제(340)에 선호하는 네트워크들의 리스트, 모바일 디바이스(300)가 선호하는 네트워크들에 접속을 시도하는 순서, 및 선호하는 네트워크들에 대한 접속 및 인증 정보를 반환하도록 구성될 수 있다. 일부 실시예들에서, 운영 체제(340)는 사용자 설정(예컨대, 사용자가 선호하는 Wi-Fi 네트워크들 또는 네트워크 접속 순서) 및 다른 요인에 기초하여 선호하는 네트워크들 중 접속할 네트워크를 선택할 수 있다. 오프로딩 프레임워크 내에 지정된 사용자 설정을 가짐으로써, 사용자는 한 그룹의 사용자 선호도를 설정하고 다수의 소프트웨어 애플리케이션들(예컨대, 다수의 플러그인들) 내에 설정 및 선호도를 지정할 필요가 없어 오프로딩 선호도를 관리할 수 있다.
플러그인(350)은 숨겨진 네트워크들을 지원하도록 역시 구성될 수 있다. 숨겨진 네트워크들은 사전에 자신의 존재를 브로드캐스팅하지 않는 네트워크들을 포함한다. 숨겨진 네트워크들은 오프로딩에 독점적이거나 또는 오프로딩에 주로 전용인 네트워크들일 수 있다. 숨겨진 네트워크들을 지원하기 위해서, 플러그인(350)은 모바일 디바이스가 사전 검색한 숨겨진 네트워크들의 네트워크 식별자(예컨대, SSID)를 제공할 수 있다. 모바일 디바이스는 사용자 설정(예컨대, 시스템은 사용자가 숨겨진 네트워크를 검색하거나 숨겨진 네트워크에 접속할 수 없도록 구성될 수 있음), 소비 전력 속도, 배터리 수준 등에 기초하여 이러한 숨겨진 네트워크들을 검색할지의 여부를 결정할 수 있다. 예를 들어, 모바일 컴퓨팅 디바이스는, 소비 전력 속도 문턱값보다 낮은 모바일 컴퓨팅 디바이스의 소비 전력 속도, 배터리 레벨 문턱값보다 낮은 모바일 컴퓨팅 디바이스의 배터리 레벨, 또는 모바일 디바이스의 무선 통신 범위 내에서 임의의 다른 무선 네트워크들을 검출할 수 없는 무능력에 응답하여, 숨겨진 무선 네트워크들에 대한 스캔을 개시할 수 있다.
모바일 디바이스가 성공적으로 네트워크에 접속했다는 운영 체제(340)로부터의 통지에 응답하여, 플러그인(350)은 네트워크의 신원을 검증하거나, 사용자를 인증하거나, 셀룰러 트래픽을 오프로딩하기 위해 Wi-Fi 접속 동작을 만드는데 요구되는 임의의 다른 활동을 수행할 수 있다. 이러한 동작들 중 임의의 동작이 실패하면, 플러그인(350)은 네트워크와 접속을 끊도록 운영 체제(340)에 통지할 수 있다. 통상적으로, 시스템 안정성을 개선하기 위해서, 플러그인은 모바일 컴퓨팅 디바이스가 Wi-Fi 네트워크들에 대해 스캔하도록 하거나, 무선 네트워크에 접속하도록 하거나, 무선 네트워크와 접속을 끊게 하도록 할 수 없다. 플러그인은 또한 통상적으로 모바일 컴퓨팅 디바이스에서 백그라운드 작업을 실행하도록 허용되지 않는다.
일부 실시예들에서, 플러그인(350)은 사용자 응답을 요구하는 다양한 통지가 사용자에게 제시되도록 구성될 수 있다. 예를 들어, 플러그인은 네트워크가 오프로딩에 이용되기 전에, 예를 들어, 네트워크에 대한 이용 조건 또는 프라이버시 설정과 같은 특정 네트워크 특성에 대한 설정을 사용자가 수락할지의 여부를 물어보는 질의가 모바일 디바이스 디스플레이에 제시되도록 할 수 있다. 이러한 통지는 또한 사용자에 의해 단순히 종료될 수 있는 통지 정보를 포함할 수 있다. 예를 들어, 플러그인은 모바일 디바이스가 광고에 의해 지원되는 특정 네트워크에 접속할 때, 하나 이상의 광고들이 모바일 디바이스에 나타나도록 할 수 있다. 광고는, 예를 들어, 광고 창에 있는 "OK" 버튼을 클릭하거나 또는 광고 창을 닫음으로써 종료될 수 있다. 일부 실시예들에서, 플러그인은 접속된 네트워크가 네트워킹에 이용되기 전에 플러그인 호스트에 사용자 질의 요청을 전송함으로써 사용자 응답을 요구하는 통지가 제시되도록 할 수 있다. 사용자 질의 요청은 사용자가 승인하거나 동의할 정보(예컨대, 이용 조건의 텍스트) 또는 이와 같은 정보에 대한 참조(예컨대, 이용 조건이 발견될 수 있는 위치에 대한 링크)를 포함할 수 있다. 이에 대한 답으로, 플러그인 호스트는 사용자가 사용자 질의 요청에 포함되거나 이에 참조되는 정보를 승인하거나 동의할지의 여부를 나타내는 정보를 플러그인에 보낼 수 있다.
플러그인(350)은 플러그인이 충돌하는 경우 운영 체제의 실패를 방지하기 위해 설정된 특권을 갖는 전용 프로세서로서 모바일 디바이스(300) 상에서 작동할 수 있다. 플러그인이 충돌하면, 플러그인 프로세스는 시스템 안정성에 영향을 미치지 않고 재시작될 수 있다.
플러그인(350)은 또한, 운영 체제(340)가 주기적으로(또는 다른 시간 단위로) 플러그인에 콜백을 발행할 것을 지정하도록 구성될 수 있어, 플러그인이 임의의 이용 가능한 플러그인 업데이트를 검색하도록 한다. 모바일 디바이스(300)은 미리 설치된 하나 이상의 플러그인(350)이 딸려 있을 수 있고, 추가의 플러그인이 필요에 따라 또는 이들이 이용 가능하게 되는 것에 따라 디바이스에 추가될 수 있다. 일 실시예에서, 프레임워크는 다음 플러그인 인터페이스들 중 하나 이상을 포함할 수 있다: 초기화 인터페이스, 체크 네트워크 인터페이스, 마스크 인터페이스, 사전 접속 인터페이스, 인증 인터페이스, 킵 얼라이브(keep alive) 인터페이스, 접속 실패 인터페이스, 리셋 인터페이스 및 제어 인터페이스.
초기화 인터페이스는 등록 상태(즉, 셀룰러 네트워크에서의 모바일 디바이스의 등록 상태), 플러그인이 업데이트되는 빈도(예컨대, 플러그인 업데이트 빈도)(예컨대, 새로운 핫스팟의 위치, 더 이상 존재하지 않거나 다른 MO에 의해 지금 소유되거나 운영되는 핫스팟의 제거 등과 같은, 모바일 운영자에 대한 Wi-Fi 핫스팟 정보의 업데이트), 접속 정보(예컨대, 네트워크 프로토콜), 인증 정보(예컨대, 네트워크들에 대해 이용되는 인증 스키마), 및 모바일 디바이스와 무선 네트워크 간의 접속을 유지하기 위해 킵 얼라이브 메시지가 보내지는 빈도(예컨대, 킵 얼라이브 메시지 빈도)를 반환할 수 있다. 플러그인이 수십 개, 수백 개 또는 심지어 수천 개의 무선 네트워크들에 대한 정보를 포함하는 네트워크 데이터베이스를 포함할 수 있기 때문에, 네트워크 데이터베이스는 가끔씩 업데이트될 필요가 있다. 플러그인 업데이트 빈도 또는 킵 얼라이브 메시지 빈도를 수신하는 것에 응답하여, 플러그인 호스트는 실질적으로 적어도 주기적 업데이트 빈도로 또는 킵 얼라이브 메시지 업데이트 빈도로 각각 플러그인 업데이트 명령 또는 킵 얼라이브 메시지 명령을 보낼 수 있다. 예를 들어, 플러그인이 3일의 주기적 업데이트 빈도를 플러그인 호스트에 제공하면, 플러그인 호스트는 적어도 대략 3일마다 플러그인에 주기적 업데이트 명령을 보낼 수 있다.
체크 네트워크 인터페이스(예컨대, Check_SSID 인터페이스)는 인터페이스에 공급된 하나 이상의 네트워크 식별자(예컨대, SSID)들과 연관된 네트워크들이 플러그인에 알려져 있는지, 그리고 오프로딩에 이용될 수 있는지의 여부를 결정할 수 있다. 체크 네트워크 인터페이스는, 예를 들어, 공급된 네트워크 식별자가 오프로딩에 이용될 수 있는 무선 네트워크와 연관되면 "1"을 반환하고, 그렇지 않으면 "0"을 반환함으로써, 공급된 네트워크 식별자가 오프로딩에 이용될 수 있는 무선 네트워크와 연관되어 있음을 나타낼 수 있다. 하나보다 많은 네트워크 식별자들이 공급되면, 체크 네트워크 인터페이스는 하나 이상의 선호하는 무선 네트워크들, 선호하는 무선 네트워크들에 대한 접속 정보 및 하나 이상의 선호하는 무선 네트워크들에 대한 접속 순서를 반환할 수 있다.
마스크 인터페이스(예컨대, Get_Network_Mask)는 플러그인에 공급되는 네트워크 식별자(예컨대, SSID)에 대한 "마스크"를 반환한다. 마스크는 무선 네트워크에 대한 더욱 "사용하기 쉬운(user-friendly)" 설명자이다. 예를 들어, 마스크 인터페이스는 공급된 SSID "ATTWIFI"에 대해 마스크 "AT&T Wi-Fi 핫스팟"을 반환할 수 있고, 마스크 "AT&T Metro Wi-Fi"는 공급된 SSID "ATTMETROWIFI"에 대해 반환될 수 있다.
사전 접속 인터페이스는 네트워크 접속을 시도하기 전에 플러그인이 임의의 사전 접속 초기화 또는 준비 작업을 수행할 수 있도록 호출될 수 있다.
인증 인터페이스(예컨대, Attempt_Authentication 인터페이스)는 모바일 운영자 인증 데이터베이스에 대해 모바일 디바이스 또는 모바일 디바이스 사용자를 인증하는 것과 같은 인증 작업을 수행하도록 플러그인에 지시하기 위해 모바일 디바이스가 무선 네트워크에 접속된 이후에 호출될 수 있다. 인증 인터페이스는 인증이 성공적이었는지의 여부에 대한 표시를 반환할 수 있다. 킵 얼라이브 인터페이스(에컨대, Send_Keep_Alive_Message 인터페이스)는 무선 네트워크 접속을 유지하기 위해, 킵 얼라이브 메시지를 보내도록 플러그인에 지시하기 위해 호출될 수 있다. 접속 실패 인터페이스(예컨대, Connection_Failure 인터페이스)는 플러그인이 표시된 네트워크에 대한 네트워크 원격 측정 데이터를 수집하고 보고하게 하도록 호출될 수 있다. 주기적 업데이트 인터페이스(예컨대, Periodic_Update 인터페이스)는 플러그인이 데이터베이스 업데이트를 수행하고 원격 서버에 원격 측정 데이터를 보내게 한다. 리셋 인터페이스는 초기 상태로 리셋하도록 플러그인에게 요청할 수 있다. 제어 인터페이스는 모바일 디바이스가 임의의 플러그인 특유 명령을 플러그인에게 보내도록 허용할 수 있다.
다양한 실시예들에서, 프레임워크는 위에 나열된 것보다 더 많거나 적은 플로그인 인터페이스들을 포함할 수 있고, 인터페이스들은 위에 이용된 것과 다른 명칭, 또는 위의 인터페이스들의 변형을 가질 수 있다. 예를 들어, 초기화 인터페이스는 위에 논의된 초기화 인터페이스에 의해 반환된 정보의 서브세트를 반환할 수 있고, 체크 네트워크 인터페이스는 플러그인과 연관된 무선 네트워크 데이터베이스에 포함된 모든 무선 네트워크들의 리스트를 반환할 수 있다.
도 4는 확장 가능한 프레임워크(400)의 예시적인 구현의 블록도이다. 프레임워크(400)는 WLAN 프로토콜 스택(WLAN 스택)(410), 플러그인 호스트(인증 소프트웨어 모듈 호스트)(420), 플러그인(인증 소프트웨어 모듈)(430) 및 사용자 인터페이스 제어기(497) 사이에 전달되는 메시지 및 정보를 도시한다. 모바일 컴퓨팅 디바이스가 복수의 플러그인들을 포함하면, 플러그인(430)은 활성 인증 플러그인 (또는 다수의 플러그인들이 활성화되도록 허용되면, 활성 플러그들인 중 하나)일 수 있다. 통상적으로, WLAN 스택(410), 플러그인 호스트(420) 및 사용자 인터페이스 제어기(497)는 모바일 디바이스 운영 체제의 일부이다. 따라서, 플러그인 호스트(420)는 통상적으로 플러그인(430)과 통신하는 모바일 컴퓨팅 디바이스 운영 체제의 컴포넌트를 포함한다. 프레임워크(400)에서의 정보의 예시적인 흐름에서, 먼저, 모바일 디바이스는 WLAN 스택(410)을 통해 WLAN 네트워크들에 대해 스캔한다. 이용 가능하거나 검출된 WLAN 네트워크들의 리스트(440)가 플러그인 호스트(420)에 보내진다. 플러그인 호스트(420)는, 예를 들어, 사용자 설정을 체크함으로써, 임의의 네트워크들이 리스트(440)에서 제거되는지의 여부를 결정할 수 있다. 예를 들어, 사용자는 특정 네트워크가 이용 가능한 경우라도 접속되지 않을 것임을 나타낼 수 있다. 네트워크 리스트(440)의 절단 버전(truncated version)일 수 있는 네트워크 리스트(450)가 플러그인(430)에 배달될 수 있다. 네트워크 리스트는 검출된 네트워크 리스트에 대응하는 임의의 정보를 포함할 수 있다. 플러그인(430)은 오프로딩에 이용될 수 있는 하나 이상의 선호하는 무선 네트워크들의 네트워크 정보(460)(예컨대, SSID)를 반환한다. 선호하는 네트워크들은 플러그인 호스트(420)에 의해 공급되는 검출된 네트워크들로부터 선택된다. 하나보다 많은 선호하는 무선 네트워크들이 플러그인(430)에 의해 제공되었으면, 플러그인 호스트(420)는 접속을 위해 하나를 선택한다. 그런 다음, 플러그인 호스트(420)는 선택된 무선 네트워크에 접속하도록 WLAN 스택(410)에 지시하는 접속 명령(470)을 보낸다. 예를 들어, 플러그인 호스트(420)는 플러그인(430)에 의해 공급된 접속 순서 및/또는 사용자 지정 접속 순서에 기초하여 접속할 무선 네트워크를 선택할 수 있다.
하나보다 많은 활성 인증 플러그인들이 있는 실시예들에서, 네트워크 리스트(450)가 플러그인 호스트(420)에 의해 활성 플러그인에 제공될 수 있다. 동일한 네트워크 리스트(450)가 다수의 활성 플러그인들에 보내지거나, 또는 특정 플러그인과 연관된 모바일 운영자와 연관된 무선 네트워크들에만 대응하는 정보를 포함하는 네트워크 리스트(450)가 보내질 수 있다. 그런 다음, 플러그인 호스트(420)는 활성 플러그인(430)으로부터 선호하는 네트워크들에 대한 네트워크 정보(460)를 수신할 수 있다. 그런 다음, 플러그인 호스트(420)는 다수의 활성 플러그인들에 의해 제공되는 선호하는 네트워크들로부터 접속할 네트워크를 선택할 수 있다.
모바일 디바이스가 동시에 다수의 네트워크 접속을 지원할 수 있으면, 확장 가능한 프레임워크는 오프로딩을 위해 하나보다 많은 네트워크에 모바일 디바이스를 접속할 수 있다. 확장 가능한 프레임워크는 다음과 같이 오프로딩을 위해 다수의 네트워크 접속을 만들 수 있다. 모바일 디바이스는 모바일 디바이스가 접속할 수 있는 다양한 모바일 운영자들과 연관된 네트워크들을 검출할 수 있다. 검출된 네트워크들의 리스트가 WLAN 컴포넌트 또는 서브시스템에 의해 플러그인 호스트에 전달된다. 플러그인 호스트는 모바일 디바이스가 접속할 수 있는 네트워크들에 대한 모바일 운영자와 연관된 활성 플러그인들에 네트워크 리스트를 보낸다. 이에 대한 답으로, 활성 플러그인들 각각은 하나 이상의 선호하는 네트워크들에 관한 정보를 플러그인 호스트에 보낼 수 있다. 그런 다음, 플러그인 호스트는 활성 플러그인들에 의해 제공된 각각의 선호하는 네트워크 리스트에서 네트워크를 선택하고, 선택된 네트워크들에 접속하도록 WLAN 컴포넌트에 지시한다. 선택된 네트워크들에 대한 접속이 이루어진 이후에, 각각의 접속마다, 적절한 활성 플러그인이 통지된다. 그런 다음, 활성 플러그인들은 선택된 네트워크들과 연관된 모바일 디바이스 또는 모바일 디바이스 사용자를 인증하도록 시도하고, 인증 결과를 플러그인 호스트에 다시 보고한다. 접속된 네트워크들의 인증이 성공적이면, 모바일 디바이스는 오프로딩을 위해 접속된 네트워크들 중 임의의 하나를 이용할 수 있다.
선택된 네트워크에 대한 접속이 이루어진 이후에, 플러그인 호스트(420)는 접속 중인 플러그인(430)에 접속 통지(480)를 보내고, 모바일 디바이스의 사용자 또는 모바일 디바이스의 인증을 요청한다. 그런 다음, 플러그인(430)은 선택된 네트워크와 연관된 모바일 운영자에 기초하여, 네트워크에서 인증을 수행하도록 시도하고, 비동기식 응답일 수 있는 인증 결과(490)를 플러그인 호스트(420)에 반환하여 인증 시도의 상태를 보고한다. 인증은, 예를 들어, 802.11 개방형 인증, HTTPS 기반 인증, EAP-SIM(Extensible Authentication Protocol-SIM) 또는 EAP-AKA(Extensible Authentication Protocol-Authentication and Key Management) 인증 또는 다른 인증 방식을 이용하여 수행될 수 있다. 인증이 성공적이면, 플러그인 호스트(420)는 데이터 트래픽을 접속된 무선 네트워크에 로딩할 수 있다.
WLAN 스택(410)은 또한 디바이스가 선택된 네트워크에 접속되었음을 사용자에게 알기기 위해 모바일 디바이스의 사용자 인터페이스 제어기(479)에 접속 통지를 보낼 수 있다(495). 사용자 인터페이스 제어기(497)는 네트워크의 SSID와는 상이할 수 있는 무선 네트워크 디스플레이 명칭의 사용하기 쉬운 버전(예컨대, Get_Network_Mask 인터페이스를 이용함)에 대해 플러그인(430)에게 질의할 수 있고(499), 이에 대한 응답으로 사용하기 쉬운 버전의 무선 네트워크 디스플레이 명칭을 수신할 수 있다.
인증 시도가 성공하지 못했으면, 플러그인 호스트(420)는 무선 네트워크로부터 모바일 디바이스의 접속을 끊을 수 있다. 하나보다 많은 선호하는 네트워크 및 접속 순서가 플러그인(430)에 의해 지정되었으면, 플러그인 호스트(420)는 접속 순서에 따라 다음 무선 네트워크에 접속하도록 시도할 수 있다. 사용자의 데이터 계획 적격성으로 인해 또는 사용자에 의해 정정될 수 있는 다른 이유로 인해 인증이 실패하면, 플러그인(430)은 고객 지원 서비스에 접촉하거나 사용자의 데이터 계획을 업그레이드하는 것과 같은, 사용자가 문제를 해결하는 방법을 조언하는 통지를 플러그인 호스트(420)에 전달할 수 있다.
일부 실시예들에서, 모바일 컴퓨팅 디바이스는 사용자가 오프로딩 프레임워크의 양태에 대해 제어하는 것을 허용하도록 구성될 수 있다. 예를 들어, 모바일 디바이스는 사용자가 개별 Wi-Fi 핫스팟에 대한 연결을 가능하게 하거나 또는 불가능하게 하고, 핫스팟 네트워크에 수동적으로 접속하게 하며, 모바일 운영자의 핫스팟 연결이 사용자에 의해 불가능하면, 사용자가 핫스팟 네트워크로의 접속을 위해 사용자 프로파일을 구성하는 것을 허용하도록 구성될 수 있다. 예를 들어, 사용자는 특정 Wi-Fi 핫스팟과 연관된 모바일 운영자에 대한 핫스팟 연결이 사용자에 의해 불가능하게 되었더라도 특정 Wi-Fi 핫스팟 네트워크가 접속되도록 사용자 프로파일을 구성할 수 있다. 더욱이, 사용자는 네트워크에 자동적 데이터 트래픽 오프로딩을 허용하고, 게다가 플러그인이 이에 대한 접속 정보를 포함하도록 프레임워크를 구성할 수 있다. 또한, 모바일 컴퓨팅 디바이스는 사용자가 자동적 Wi-Fi 네트워크 오프로딩을 가능하게 하거나 불가능하게 하는 것을 허용하도록 구성될 수 있다.
도 5는 셀룰러 네트워크로부터 무선 네트워크로 모바일 컴퓨팅 디바이스 데이터 트래픽을 오프로딩하는 제 1 예시적인 방법(500)의 흐름도이다. 방법(500)은, 예를 들어, AT&T® 셀룰러 네트워크 및 무선 네트워크와 동작하도록 구성되고 AT&T® 무선 네트워크에 데이터 트래픽을 오프로딩하고 자동 접속을 가능하게 하는 AT&T® 인증 플러그인 및 인증 플러그인 호스트를 포함하는 스마트 폰에 의해 수행될 수 있다. 510에서, 모바일 컴퓨팅 디바이스 데이터 트래픽은 셀룰러 네트워크를 통해 송신 및/또는 수신된다. 예에서, 스마트 폰은 AT&T® 셀룰러 네트워크를 통해 데이터 트래픽을 송신 및/또는 수신한다. 520에서, 하나 이상의 검출된 무선 네트워크들이 모바일 컴퓨팅 디바이스의 범위 내에서 검출된다. 예에서, 사용자는 커피숍에 도착하고, 스마트 폰은 2개의 Wi-Fi 핫스팟들을 검출하는데, 하나는 커피숍에 기반을 두고, 다른 하나는 옆 사무실에 기반을 둔다. 커피숍 Wi-Fi 핫스팟은 AT&T® Wi-Fi 핫스팟이다. 530에서, 선택된 무선 네트워크가 하나 이상의 검출된 무선 네트워크들로부터 선택된다. 선택된 무선 네트워크는 모바일 운영자와 연관된다. 예에서, 스마트 폰은 AT&T® Wi-Fi 핫스팟과 연관된 무선 네트워크를 선택한다. 540에서, 무선 통신 디바이스는 선택된 무선 네트워크에 자동적으로 접속된다. 예에서, 스마트 폰은 AT&T® Wi-Fi 핫스팟에 자동적으로 접속한다. 550에서, 모바일 운영자를 이용하여 모바일 컴퓨딩 디바이스의 사용자 또는 모바일 컴퓨팅 디바이스의 인증이 자동적으로 개시된다. 예에서, 스마트 폰은 AT&T®를 이용하여 스마트 폰의 인증을 자동적으로 개시한다. 인증을 개시하는 것은, AT&T® Wi-Fi 무선 네트워크를 통해 원격 AT&T® 서버에 정보를 보내는 것을 포함한다. 560에서, 모바일 컴퓨팅 디바이스의 사용자 또는 모바일 컴퓨팅 디바이스의 인증이 성공적인 것으로 결정된다. 예에서, 스마트 폰은, 스마트 폰이 접속된 네트워크에서의 사용에 대해 인증되었음을 나타내는 정보를 원격 AT&T® 서버로부터 수신하거나, 인증이 성공적인 것으로 결정하는데 스마트 폰이 이용할 수 있는 정보를 수신할 수 있다. 570에서, 데이터 트래픽은 선택된 무선 네트워크에 오프로딩된다. 예에서, 스마트 폰은 AT&T® 무선 네트워크에 데이터 트래픽의 적어도 일부를 오프로딩한다. 따라서, 스마트 폰은 AT&T® 무선 네트워크를 자동적으로 검출하여 이에 접속하고, 사용자 개입 없이, AT&T® 셀룰러 네트워크로부터 AT&T® 무선 네트워크로 데이터 트래픽을 자동적으로 오프로딩한다. 일부 실시예들에서, 방법(500)은 도 5에 도시된 활동들 보다 더 적은 활동들을 포함할 수 있다.
본 명세서에 기술된 확장 가능한 프레임워크는 적어도 다음의 예시적인 장점들을 제공한다. 코어 시스템 API들에 대한 액세스를 제어함으로써, 모바일 디바이스 운영 체제 안정성은 개선될 수 있고 배터리 수명은 연장될 수 있다. 예를 들어, 플러그인 또는 플러그인과 상호 작용하는 다른 소프트웨어 애플리케이션들과 같은, 모바일 디바이스 상에서 실행하는 소프트웨어 애플리케이션들이 무선 네트워크들의 존재에 대해 스캔하는 시스템 기능에 대해 제한받지 않고 액세스하는 것을 방지함으로써, 애플리케이션들에서 배터리 수명을 줄일 수 있는 계속적이고 또는 빈번한 무선 네트워크들에 대한 스캔이 방지된다.
또한, 현재 모바일 운영자의 에코시스템이 더욱 세분화되고, 상이한 모바일 운영자들은 셀룰러 데이터를 Wi-Fi 핫스팟에 오프로딩하는 상이한 해결책 및 프로토콜을 계속해서 이용하기 때문에, 플랫폼 개발자들이 모든 모바일 운영자들의 요건을 만족시키고 최신 상태를 유지하는 오프로딩 해결책을 개발하고 유지하는 것이 아주 힘들어지고 있다. 모바일 디바이스 상에 다수의 플러그인들이 설치되는 것을 허용하고, 새로운 플러그인이 설치되는 것을 허용하며, 설치된 플러그인들이 업데이트되는 것을 허용함으로써, 프레임워크는 네트워크 통신 프로토콜의 변화, 새로운 프로토콜의 개발, 새로운 핫스팟의 존재, 및 모바일 운영자의 사업 조망의 변화(예컨대, 새로운 모바일 운영자들의 출현, 모바일 운영자들의 합병, 모바일 운영자들의 폐업)에 적응할 수 있는 동적이고 확장 가능한 프레임워크이다.
게다가, 본 명세서에 기술된 오프로딩 프레임워크는 모바일 컴퓨팅 디바이스가 네트워크 스캔에 대한 액세스를 허용하지 않음으로써 시스템 성능 및 안정성을 유지하고, 피처들(features)에 접속하고 피처들과의 접속을 끊을 수 있으며, 동시에 애플리케이션 개발자들(MO 및 ISV)이 모바일 운영자의 사양에 따라 Wi-Fi 오프로딩 해결책을 구현할 수 있는 프레임워크를 제공할 수 있다.
또한, 시스템 플랫폼 개발자들은 코어 시스템 API에 대한 액세스를 허용하고 시스템 성능, 안정성 및 최종 사용자 경험에 부정적인 영향을 미치는 API를 제재함으로써 ISV에 유연성을 제공하는 것에 균형을 맞춰야 한다. 본 명세서에 기술된 확장 가능한 프레임워크는 모바일 디바이스들이 시스템 성능 및 안정성을 유지할 수 있도록 하고, 동시에 애플리케이션 개발자들이 모바일 운영자의 사양에 따라 Wi-Fi 오프로딩 해결책을 구현하는 수단을 제공할 수 있다.
도 6은 본 명세서에 기술된 확장 가능한 프레임워크를 이용하는 모바일 컴퓨팅 디바이스(600)의 블록도이다. 모바일 컴퓨팅 디바이스(600)는 하나 이상의 프로세서(610), 운영 체제(620), 플러그인 인터페이스(630) 및 인증 플러그인(640)을 포함한다. 운영 체제(620)는 인증 플러그인(640)과 통신하기 위해 플러그인 인터페이스(630)를 이용하는 인증 플러그인 호스트(650)를 포함한다. 플러그인 인터페이스(630)는 본 명세서에 기술된 플러그인 인터페이스들(예컨대, 초기화, 인증, 체크 네트워크) 중 임의의 플러그인 인터페이스들의 하나 이상은 물론, 다른 인터페이스들도 포함할 수 있다.
도 7은 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 제 2 예시적인 방법(700)의 흐름도이다. 방법(700)은, 예를 들어, 인증 플러그인 호스트를 포함하는 운영 체제를 갖고, 활성 인증 플러그인인 모바일 운영자 A와 연관된 플러그인과 함께 다수의 플러그인들을 저장하는 태블릿 컴퓨팅 디바이스에 의해 수행될 수 있다.
710에서, 하나 이상의 검출된 무선 네트워크들에 대응하는 정보가 인증 플러그인 호스트로부터 활성 인증 플러그인에 보내진다. 하나 이상의 검출된 무선 네트워크들 및 활성 인증 플러그인은 모바일 운영자와 연관된다. 예에서, 태블릿의 인증 플러그인 호스트는 모바일 운영자 A와 연관된 검출된 무선 네트워크들 X, Y 및 Z에 대한 SSID들을 활성 인증 플러그인에 보낸다.
720에서, 하나 이상의 검출된 무선 네트워크들로부터 선택된 하나 이상의 선호하는 무선 네트워크들에 대응하는 정보가 인증 플러그인 호스트에서 활성 인증 플러그인으로부터 수신된다. 예에서, 태블릿의 인증 플러그인 호스트는 선호하는 무선 네트워크 X 및 Z에 대한 SSID들을 활성 플러그인으로부터 수신한다. 무선 네트워크 X가 무선 네트워크 Z이전에 접속될 것을 나타내는 접속 순서가 또한 인증 플러그인 호스트에 보내진다.
730에서, 모바일 컴퓨팅 디바이스는 하나 이상의 선호하는 무선 네트워크들 중 하나에 접속한다. 모바일 컴퓨팅 디바이스가 접속되는 선호하는 무선 네트워크는 접속된 무선 네트워크이다. 예에서, 태블릿은 무선 네트워크 X에 접속한다. 740에서, 접속된 무선 네트워크에서 모바일 컴퓨팅 디바이스 또는 모바일 컴퓨팅 디바이스의 사용자를 인증하기 위한 요청이 활성 인증 플러그인에 보내진다. 예에서, 태블릿의 인증 플러그인 호스트는 무선 네트워크 X에서 태블릿을 인증하기 위한 요청을 활성 플러그인에 보낸다.
750에서, 인증이 성공적이었음을 나타내는 정보를 활성 인증 플러그인으로부터 수신한다. 예에서, 인증 플러그인 호스트는 태블릿이 모바일 운영자 A에 의해 인증되었다는 확인을 모바일 운영자 A 플러그인으로부터 수신한다.
760에서, 데이터 트래픽의 적어도 일부분이 접속된 무선 네트워크에 오프로딩된다. 예에서, 태블릿은 셀룰러 네트워크를 통해 송수신하는 데이터 트래픽의 적어도 일부를 무선 네트워크 X에 오프로딩한다.
도 8는 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 제 3 예시적인 방법의 흐름도이다. 810에서, 인증 플러그인 호스트, 활성 인증 플러그인을 포함하는 복수의 인증 플러그인들을 포함하는 확장 가능한 프레임워크, 인증 인터페이스 및 체크 네트워크 인터페이스가 제공된다.
820에서, 인증 플러그인 호스트로부터 인증 인터페이스에 대한 적어도 하나의 호출을 수신하는 것에 응답하여, 활성 인증 플러그인은 모바일 컴퓨팅 디바이스가 접속된 네트워크에서 모바일 컴퓨팅 디바이스 및 모바일 컴퓨팅 디바이스의 사용자의 인증을 시도하여 시도된 인증이 성공적이었는지의 여부에 대한 표시를 반환한다. 830에서, 하나 이상의 검출된 무선 네트워크들에 대응하는 정보를 포함하는 체크 네트워크 인터페이스에 대한 적어도 하나의 호출을 수신하는 것에 응답하여, 활성 인증 플러그인은 하나 이상의 선호하는 무선 네트워크들에 대응하는 정보 및 선호하는 무선 네트워크들에 대한 접속 순서를 반환한다.
개시된 방법들 중 임의의 방법들은 컴퓨터 실행 가능 명령어 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 컴퓨터 실행 가능 명령어 또는 컴퓨터 프로그램 제품은 물론 개시된 실시예들의 구현 동안에 생성되고 이용되는 임의의 데이터가 하나 이상의 컴퓨터 판독 가능 저장 매체[예컨대, 하나 이상의 광 디스크 매체(예를 들어, DVD 또는 CD)와 같은 비일시적 컴퓨터 판독 가능 저장 매체, 휘발성 메모리 컴포넌트(예를 들어, DRAM 또는 SRAM), 또는 비휘발성 메모리 컴포넌트(예를 들어, 플래시 메모리 또는 하드 드라이브)]에 저장될 수 있고, 컴퓨터(예컨대, 임의의 상업적으로 이용 가능한 컴퓨터로서, 스마트 폰, 또는 컴퓨팅 하드웨어를 포함하는 다른 컴퓨팅 디바이스들을 포함함) 상에서 실행될 수 있다. 컴퓨터 판독 가능 저장 매체는 신호를 전파하는 것을 포함하지 않는다. 컴퓨터 실행 가능 명령어는, 예를 들어, 전용 소프트웨어 애플리케이션, 또는 웹 브라우저를 통해 액세스되거나 다운로드되는 소프트웨어 애플리케이션, 또는 다른 소프트웨어 애플리케이션(예를 들어, 원격 컴퓨팅 애플리케이션)의 일부일 수 있다. 이와 같은 소프트웨어는, 예를 들어, 단일 로컬 컴퓨터(예컨대, 임의의 적합한 상업적으로 이용 가능한 컴퓨터)에서, 또는 하나 이상의 네트워크 컴퓨터들을 이용하는 네트워크 환경[예컨대, 인터넷, 광역 네트워크, 근거리 네트워크, 클라이언트-서버 네트워크(예를 들어, 클라우드 컴퓨팅 네트워크), 또는 다른 네트워크를 통해]에서 실행될 수 있다.
명료성을 위해, 소프트웨어 기반 구현들 중 오직 특정하게 선택된 양태들만이 기술된다. 당해 분야에 잘 공지된 다른 세부 사항들은 생략된다. 예를 들어, 개시된 기술은 임의의 특정한 컴퓨터 언어 또는 프로그램으로 제한되지 않는다는 것이 이해될 것이다. 예를 들어, 개시된 기술은 C++, 자바, 펄, 자바스크립트, 어도비 플래시, 또는 임의의 다른 적합한 프로그래밍 언어로 기록된 소프트웨어에 의해 구현될 수 있다. 마찬가지로, 개시된 기술은 임의의 특정 컴퓨터 또는 하드웨어 유형으로 제한되지 않는다. 적합한 컴퓨터 또는 하드웨어의 특정한 세부 사항들은 잘 공지되어 있으므로 본 발명개시에서 상세하게 기재될 필요가 없다.
더욱이, 소프트웨어 기반 실시예들(예를 들어, 컴퓨터가 개시된 방법들 중 임의의 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함함) 중 임의의 실시예는 적합한 통신 수단을 통해 업로드되거나, 다운로드되거나, 원격 액세스될 수 있다. 이와 같은 적합한 통신 수단은, 예를 들어, 인터넷, 월드 와이드 웹, 인트라넷, 케이블(광섬유 케이블을 포함함), 자기 통신, 전자기 통신(RF, 마이크로웨이브 및 적외선 통신을 포함함), 전자 통신, 또는 다른 통신 수단을 포함한다.
개시된 방법들은 또한 개시된 방법들 중 임의의 방법을 수행하도록 구성되는 전문화된 컴퓨팅 하드웨어에 의해 구현될 수 있다. 예를 들어, 개시된 방법들은 집적 회로[예컨대, 주문형 반도체(application specific integrated circuit; "ASIC"), 또는 필드 프로그램 가능 게이트 어레이(field programmable gate array; "FPGA")와 같은 프로그램 가능 로직 디바이스(programmable logic device; "PLD")]에 의해 (전체적으로 또는 적어도 부분적으로) 구현될 수 있다. 집적 회로는 확장 가능한 프레임워크를 구현하기 위해 모바일 컴퓨팅 디바이스에 내장되거나 모바일 컴퓨팅 디바이스에 직접 결합될 수 있다.
본 명세서에 개시된 다양한 방법들은 또한 프로그램 모듈에 포함된 컴퓨터 실행 가능 명령어와 같은, 프로세서에 의해 컴퓨팅 환경에서 실행되는 일반적인 문맥의 컴퓨터 실행 가능 명령어로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조 등을 포함한다. 프로그램 모듈의 기능은 다양한 실시예들에서 원하는 바에 따라 조합되거나 프로그램 모듈들 간에 분할될 수 있다. 프로그램 모듈에 대한 컴퓨터 실행 가능 명령어는 로컬 컴퓨팅 환경 또는 분산 컴퓨팅 환경에서 실행될 수 있다.
본 명세서 및 청구범위에서 사용된 바와 같이, 단수형 표현은 문맥에서 명백히 달리 나타내지 않는 한 복수형 표현을 포함한다. 유사하게, 단어 "또는(or)"은 문맥에서 명백히 달리 나타내지 않는 한 "및(and)"을 포함하도록 의도된다. 용어 "포함하는(comprising)"은 "구비하는(including)"을 포함하므로, "A 또는 B를 포함한다"는 것은 A 또는 B는 물론, A 및 B를 함께 구비하는 것을 의미한다. 부가적으로, 용어 "구비하다"는 "포함하다"를 의미한다. 또한, 본 명세서에서 이용되는 용어 "및/또는"은 구에서 임의의 항목들 중 임의의 하나의 항목 또는 이들의 조합을 의미한다.
개시된 방법들, 장치들 및 시스템들은 어떤 식으로든 제한하는 것으로 해석되어서는 안된다. 대신에, 본 발명개시는 단독으로 그리고 서로의 다양한 조합 및 하위 조합의, 다양한 개시된 실시예들의 신규하고 자명한 특징 및 양태 모두에 관한 것이다. 개시된 방법들, 장치들 및 시스템들은 임의의 특정한 양태 또는 특징 또는 이들의 조합으로 제한되지 않고, 개시된 실시예들은 임의의 하나 이상의 특정한 장점들이 존재하거나 문제들이 해결되도록 요구하지 않는다.
본 발명개시의 장치들 또는 방법들을 참조하여 본 명세서에 나타난 동작 이론, 과학적 원리 또는 다른 이론적 설명은 더욱 양호한 이해를 목적으로 제공된 것으로 범위를 제한하도록 의도된 것이 아니다. 첨부된 특허청구범위의 장치들 및 방법들은 동작 이론과 같은 것에 의해 설명된 방식으로 기능하는 장치들 및 방법들로 제한되지 않는다.
개시된 방법들 중 일부 방법들의 동작이 편리한 표시를 위해 특정한 순차적 순서로 기술되었지만, 특정 순서가 여기에 명시된 특정한 언어에 의해 요구되지 않는 한 이런 방식의 설명은 재배열을 포함한다는 것이 이해되어야 한다. 예를 들어, 순차적으로 기술된 동작은 일부 경우에 재배열되거나 동시에 수행될 수 있다. 더욱이, 간결함을 위해, 첨부된 도면들은 개시된 방법들이 다른 방법들과 함께 사용될 수 있는 다양한 방식을 도시할 수 없다.
예시된 실시예들의 원리를 나타내고 설명하였지만, 이러한 실시예들은 앞서 기술된 개념에 충실하면서 다양한 배열로 변형될 수 있다. 예시된 실시예들의 원리가 적용될 수 있는 많은 가능한 실시예들의 관점에서, 예시된 실시예들은 단지 예이며 본 발명개시의 범위를 제한하는 것으로 간주되어서는 안된다는 것을 인식해야 한다. 첨부된 특허청구범위 내에 있는 모든 것을 주장한다.

Claims (18)

  1. 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 방법에 있어서,
    하나 이상의 검출된 무선 네트워크에 대응하는 정보를 인증 플러그인 호스트로부터 활성 인증 플러그인에 보내는 단계 - 상기 하나 이상의 검출된 무선 네트워크 및 상기 활성 인증 플러그인은 모바일 운영자와 연관됨 - ;
    상기 인증 플러그인 호스트에서 상기 활성 인증 플러그인으로부터 하나 이상의 선호하는 무선 네트워크에 대응하는 정보를 수신하는 단계 - 상기 하나 이상의 선호하는 무선 네트워크는 상기 모바일 컴퓨팅 디바이스에서 선호되는 것으로 지정되는 것임 - ;
    상기 하나 이상의 선호하는 무선 네트워크 중 하나의 선호하는 무선 네트워크에 상기 모바일 컴퓨팅 디바이스를 접속하는 단계 - 상기 모바일 컴퓨팅 디바이스가 접속되는 상기 하나 이상의 선호하는 무선 네트워크 중 상기 하나의 선호하는 무선 네트워크는 접속된 무선 네트워크이고, 상기 하나 이상의 검출된 무선 네트워크로부터 선택되는 것임 - ;
    상기 접속된 무선 네트워크 상에서 상기 모바일 컴퓨팅 디바이스 또는 상기 모바일 컴퓨팅 디바이스의 사용자를 인증하도록 상기 활성 인증 플러그인에 요청을 보내는 단계;
    인증이 성공적이었음을 나타내는 정보를 상기 활성 인증 플러그인으로부터 수신하는 단계;
    상기 접속된 무선 네트워크에 상기 데이터 트래픽의 적어도 일부를 오프로딩하는 단계;
    상기 활성 인증 플러그인으로부터 상기 인증 플러그인 호스트에 플러그인 업데이트 빈도를 보내는 단계; 및
    적어도 상기 플러그인 업데이트 빈도로 상기 인증 플러그인 호스트로부터 상기 활성 인증 플러그인에 플러그인 업데이트 명령(plugin update command)들을 보내는 단계
    를 포함하는, 데이터 트래픽을 오프로딩하는 방법.
  2. 제 1 항에 있어서, 상기 하나 이상의 선호하는 무선 네트워크에 대응하는 정보는 접속 순서를 포함하는 것인, 데이터 트래픽을 오프로딩하는 방법.
  3. 제 2 항에 있어서, 상기 방법은,
    상기 접속 순서에 적어도 부분적으로 기초하여 상기 하나 이상의 선호하는 무선 네트워크로부터 상기 접속된 무선 네트워크를 선택하는 단계
    를 더 포함하는, 데이터 트래픽을 오프로딩하는 방법.
  4. 제 1 항에 있어서,
    복수의 모바일 운영자들과 연관된 복수의 인증 플러그인들로부터 상기 활성 인증 플러그인을 선택하는 단계
    를 더 포함하는, 데이터 트래픽을 오프로딩하는 방법.
  5. 제 4 항에 있어서, 상기 선택하는 단계는,
    상기 복수의 인증 플러그인들에 질의(query)하는 단계; 및
    긍정적으로 응답하는 제 1 인증 플러그인을 상기 활성 인증 플러그인으로서 선택하는 단계를 포함하는 것인, 데이터 트래픽을 오프로딩하는 방법.
  6. 제 4 항에 있어서, 상기 복수의 인증 플러그인들과는 상이한 인증 플러그인을 상기 활성 인증 플러그인으로서 선택하는 단계를 더 포함하는 것인, 데이터 트래픽을 오프로딩하는 방법.
  7. 제 1 항에 있어서,
    상기 인증 플러그인 호스트에서 상기 활성 인증 플러그인으로부터 하나 이상의 숨겨진 네트워크에 대한 정보를 수신하는 단계; 및
    상기 하나 이상의 숨겨진 네트워크 중 적어도 하나의 숨겨진 네트워크에 대해 스캔하는 단계
    를 더 포함하는, 데이터 트래픽을 오프로딩하는 방법.
  8. 제 7 항에 있어서, 상기 하나 이상의 검출된 무선 네트워크는 상기 적어도 하나의 숨겨진 네트워크를 포함하는 것인, 데이터 트래픽을 오프로딩하는 방법.
  9. 제 1 항에 있어서,
    하나 이상의 추가의 인증 플러그인을 다운로드하는 단계; 및
    상기 모바일 컴퓨팅 디바이스에서 상기 하나 이상의 추가의 인증 플러그인을 설치하는 단계
    를 더 포함하는, 데이터 트래픽을 오프로딩하는 방법.
  10. 제 1 항에 있어서,
    상기 오프로딩하는 단계 이전에,
    질의 정보 또는 상기 질의 정보에 대한 참조를 포함하는 사용자 질의 요청을 상기 활성 인증 플러그인으로부터 수신하는 단계 - 상기 사용자가 상기 질의 정보 또는 상기 질의 정보에 대한 참조를 승인하거나 동의하는지의 여부가 상기 사용자에게 질의됨 - ; 및
    상기 사용자가 상기 질의 정보를 승인하였거나 동의하였음을 나타내는 정보를 상기 활성 인증 플러그인에 보내는 단계
    를 더 포함하는, 데이터 트래픽을 오프로딩하는 방법.
  11. 제 10 항에 있어서,
    상기 질의 정보는 상기 접속된 무선 네트워크에 대한 이용 조건(terms of use)을 포함하는 것인, 데이터 트래픽을 오프로딩하는 방법.
  12. 컴퓨터 실행 가능 명령어들을 저장하는 컴퓨터 판독 가능 저장 디바이스에 있어서,
    상기 컴퓨터 실행 가능 명령어들은 모바일 컴퓨팅 디바이스가 방법을 수행하게 하고, 상기 방법은,
    인증 플러그인 호스트, 활성 인증 플러그인을 포함한 복수의 인증 플러그인들, 인증 인터페이스, 및 체크 네트워크 인터페이스를 포함하는 확장 가능한 프레임워크를 제공하는 단계;
    상기 인증 플러그인 호스트로부터 상기 인증 인터페이스에 대한 적어도 하나의 호출을 수신하는 것에 응답하여, 상기 활성 인증 플러그인이, 상기 모바일 컴퓨팅 디바이스가 접속된 네트워크 상에서 상기 모바일 컴퓨팅 디바이스 또는 상기 모바일 컴퓨팅 디바이스의 사용자의 인증을 시도하고, 상기 시도된 인증이 성공적이었는지의 여부의 표시를 반환하는 단계; 및
    하나 이상의 검출된 무선 네트워크에 대응하는 정보를 포함하는 상기 체크 네트워크 인터페이스에 대한 적어도 하나의 호출을 수신하는 것에 응답하여, 상기 활성 인증 플러그인이, 하나 이상의 선호하는 무선 네트워크에 대응하는 정보 및 상기 하나 이상의 선호하는 무선 네트워크에 대한 접속 순서를 반환하는 단계
    를 포함하고,
    상기 하나 이상의 선호하는 무선 네트워크는 상기 모바일 컴퓨팅 디바이스에서 미리 선호되는 것으로 지정되어 유지되는 것이고,
    상기 확장 가능한 프레임워크는 주기적 업데이트 인터페이스를 더 포함하고, 상기 방법은, 상기 인증 플러그인 호스트로부터 상기 주기적 업데이트 인터페이스에 대한 호출에 응답하여, 상기 활성 인증 플러그인이 자신을 업데이트하는 단계를 더 포함하는 것인, 컴퓨터 판독 가능 저장 디바이스.
  13. 제 12 항에 있어서,
    한번에 상기 복수의 인증 플러그인들 중 오직 하나의 인증 플러그인만 활성화되는 것인, 컴퓨터 판독 가능 저장 디바이스.
  14. 제 12 항에 있어서,
    상기 복수의 인증 플러그인들은 복수의 모바일 운영자들과 연관되는 것인, 컴퓨터 판독 가능 저장 디바이스.
  15. 제 12 항에 있어서,
    상기 방법은 상기 복수의 인증 플러그인들 중에서 상기 활성 인증 플러그인을 결정하는 단계를 더 포함하는 것인, 컴퓨터 판독 가능 저장 디바이스.
  16. 제 12 항에 있어서,
    상기 복수의 인증 플러그인들은, 상기 모바일 컴퓨팅 디바이스가 무선 네트워크들에 대해 스캔하게 하도록 구성되지 않고, 또한 상기 모바일 컴퓨팅 디바이스가 무선 네트워크에 접속하게 하거나 접속을 끊게 하도록 구성되지 않고, 직접적으로 상기 모바일 컴퓨팅 디바이스의 디스플레이에 통지가 제시되게 하지 않는 것인, 컴퓨터 판독 가능 저장 디바이스.
  17. 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 방법에 있어서,
    하나 이상의 검출된 무선 네트워크에 대응하는 정보를 인증 플러그인 호스트로부터 활성 인증 플러그인에 보내는 단계 - 상기 하나 이상의 검출된 무선 네트워크 및 상기 활성 인증 플러그인은 모바일 운영자와 연관됨 - ;
    상기 인증 플러그인 호스트에서 하나 이상의 선호하는 무선 네트워크에 대응하는 정보를 상기 활성 인증 플러그인으로부터 수신하는 단계 - 상기 하나 이상의 선호하는 무선 네트워크는 상기 모바일 컴퓨팅 디바이스에서 선호되는 것으로 지정되는 것임 - ;
    상기 하나 이상의 선호하는 무선 네트워크 중 하나의 선호하는 무선 네트워크에 상기 모바일 컴퓨팅 디바이스를 접속하는 단계 - 상기 모바일 컴퓨팅 디바이스가 접속되는 상기 하나 이상의 선호하는 무선 네트워크 중 상기 하나의 선호하는 무선 네트워크는 접속된 무선 네트워크이고 상기 하나 이상의 검출된 무선 네트워크로부터 선택되는 것임 - ;
    상기 접속된 무선 네트워크 상에서 상기 모바일 컴퓨팅 디바이스 또는 상기 모바일 컴퓨팅 디바이스의 사용자를 인증하도록 상기 활성 인증 플러그인에 요청을 보내는 단계;
    인증이 성공적이었음을 나타내는 정보를 상기 활성 인증 플러그인으로부터 수신하는 단계;
    상기 접속된 무선 네트워크에 상기 데이터 트래픽의 적어도 일부를 오프로딩하는 단계;
    상기 활성 인증 플러그인으로부터 상기 인증 플러그인 호스트에 킵 얼라이브 메시지 빈도를 보내는 단계; 및
    적어도 상기 보내진 킵 얼라이브 메시지 빈도로 상기 인증 플러그인 호스트로부터 상기 활성 인증 플러그인에 킵 얼라이브 메시지 명령들을 보내는 단계
    를 포함하는, 데이터 트래픽을 오프로딩하는 방법.
  18. 컴퓨터 실행 가능 명령어들을 저장하는 컴퓨터 판독 가능 저장 디바이스에 있어서,
    상기 컴퓨터 실행 가능 명령어들은 모바일 컴퓨팅 디바이스가 셀룰러 네트워크를 통해 모바일 컴퓨팅 디바이스에 보내지는 데이터 트래픽을 오프로딩하는 방법을 수행하게 하고, 상기 방법은,
    하나 이상의 검출된 무선 네트워크에 대응하는 정보를 인증 플러그인 호스트로부터 활성 인증 플러그인에 보내는 단계 - 상기 하나 이상의 검출된 무선 네트워크 및 상기 활성 인증 플러그인은 모바일 운영자와 연관됨 - ;
    상기 인증 플러그인 호스트에서 하나 이상의 선호하는 무선 네트워크에 대응하는 정보를 상기 활성 인증 플러그인으로부터 수신하는 단계 - 상기 하나 이상의 선호하는 무선 네트워크는 상기 모바일 컴퓨팅 디바이스에서 선호되는 것으로 지정되는 것임 - ;
    상기 하나 이상의 선호하는 무선 네트워크 중 하나의 선호하는 무선 네트워크에 상기 모바일 컴퓨팅 디바이스를 접속하는 단계 - 상기 모바일 컴퓨팅 디바이스가 접속되는 상기 하나 이상의 선호하는 무선 네트워크 중 상기 하나의 선호하는 무선 네트워크는 접속된 무선 네트워크이고 상기 하나 이상의 검출된 무선 네트워크로부터 선택되는 것임 - ;
    상기 접속된 무선 네트워크 상에서 상기 모바일 컴퓨팅 디바이스 또는 상기 모바일 컴퓨팅 디바이스의 사용자를 인증하도록 상기 활성 인증 플러그인에 요청을 보내는 단계;
    인증이 성공적이었음을 나타내는 정보를 상기 활성 인증 플러그인으로부터 수신하는 단계;
    상기 접속된 무선 네트워크에 상기 데이터 트래픽의 적어도 일부를 오프로딩하는 단계;
    상기 활성 인증 플러그인으로부터 상기 인증 플러그인 호스트에 킵 얼라이브 메시지 빈도를 보내는 단계; 및
    적어도 상기 보내진 킵 얼라이브 메시지 빈도로 상기 인증 플러그인 호스트로부터 상기 활성 인증 플러그인에 킵 얼라이브 메시지 명령들을 보내는 단계
    를 포함하는 것인, 컴퓨터 판독 가능 저장 디바이스.
KR1020147022787A 2012-01-16 2013-01-10 무선 네트워크 연결을 위한 확장 가능한 프레임워크 KR102093524B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261586966P 2012-01-16 2012-01-16
US61/586,966 2012-01-16
US13/631,520 US8897782B2 (en) 2012-01-16 2012-09-28 System and method for offloading traffic from cellular networks using plugins
US13/631,520 2012-09-28
PCT/US2013/020917 WO2013109452A1 (en) 2012-01-16 2013-01-10 Extensible framework for wireless network connectivity

Publications (2)

Publication Number Publication Date
KR20140116502A KR20140116502A (ko) 2014-10-02
KR102093524B1 true KR102093524B1 (ko) 2020-03-25

Family

ID=48780301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022787A KR102093524B1 (ko) 2012-01-16 2013-01-10 무선 네트워크 연결을 위한 확장 가능한 프레임워크

Country Status (6)

Country Link
US (2) US8897782B2 (ko)
EP (1) EP2805457B1 (ko)
JP (1) JP6161076B2 (ko)
KR (1) KR102093524B1 (ko)
CN (1) CN104067571B (ko)
WO (1) WO2013109452A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102038392B1 (ko) * 2012-04-12 2019-11-01 한양대학교 산학협력단 소프트웨어 정의 라디오 어플리케이션의 배포, 설치 및 실행 방법
US20150173000A1 (en) * 2012-05-21 2015-06-18 Telefonaktiebolaget L M Ericsson (Publ) Mobile Station and a Wireless Access Point and Methods Therein in a Wireless Communications Network
US10009764B2 (en) * 2012-09-21 2018-06-26 Apple Inc. Apparatus and methods for controlled switching of electronic access clients without requiring network access
US9882594B2 (en) 2012-09-21 2018-01-30 Apple Inc. Apparatus and methods for controlled switching of electronic access clients without requiring network access
US10684838B2 (en) * 2012-10-02 2020-06-16 Razer (Asia-Pacific) Pte. Ltd. Dynamic application deployment
US8925050B2 (en) 2012-10-29 2014-12-30 Oracle International Corporation Communication between authentication plug-ins of a single-point authentication manager and client systems
US9232434B2 (en) * 2012-11-07 2016-01-05 Futurewei Technologies, Inc. System and method for WiFi offload
US9110758B2 (en) 2013-03-15 2015-08-18 Western Digital Technologies, Inc. Cross-platform software framework for embedded systems on data storage device
US9992704B2 (en) 2013-04-12 2018-06-05 Provenance Asset Group Llc Radio access network based traffic steering to non-cellular access
JP6110024B2 (ja) * 2013-05-30 2017-04-05 エンパイア テクノロジー ディベロップメント エルエルシー 無線通信を提供するための方式
US10223156B2 (en) 2013-06-09 2019-03-05 Apple Inc. Initiating background updates based on user activity
US9392393B2 (en) 2013-06-09 2016-07-12 Apple Inc. Push notification initiated background updates
CN108667699B (zh) * 2013-08-06 2021-07-20 华为终端(深圳)有限公司 一种终端设备与网关设备间的互联方法和装置
JP6208491B2 (ja) * 2013-08-07 2017-10-04 京セラ株式会社 ユーザ端末、方法、及びプロセッサ
KR102143441B1 (ko) * 2013-11-15 2020-08-11 삼성전자주식회사 전자장치 및 전자장치의 인증정보 업데이트 방법
US9585177B2 (en) 2013-12-11 2017-02-28 At&T Intellectual Property I, L.P. Cellular connection sharing
IN2014MU01113A (ko) * 2014-03-28 2015-10-02 Tech Mahindra Ltd
US9537846B2 (en) * 2014-04-15 2017-01-03 Ciena Corporation Integrity check optimization systems and methods in live connectivity frames
US9432796B2 (en) 2014-05-30 2016-08-30 Apple Inc. Dynamic adjustment of mobile device based on peer event data
US9813990B2 (en) * 2014-05-30 2017-11-07 Apple Inc. Dynamic adjustment of mobile device based on voter feedback
US9876792B2 (en) 2014-10-30 2018-01-23 Dell Products, Lp Apparatus and method for host abstracted networked authorization
US10560880B2 (en) * 2014-11-10 2020-02-11 Investel Capital Corporation Mobile operator-mediated telephony-over-data system and implementation, and mobile smartphone-over-data device and computer-implemented environment therefor
US9338652B1 (en) 2014-11-13 2016-05-10 International Business Machines Corporation Dynamic password-less user verification
US10491708B2 (en) 2015-06-05 2019-11-26 Apple Inc. Context notifications
US10140443B2 (en) * 2016-04-13 2018-11-27 Vmware, Inc. Authentication source selection
US10439279B2 (en) * 2016-05-12 2019-10-08 Electronics Controlled Systems, Inc. Self-pointing Wi-Fi antenna
US10079919B2 (en) 2016-05-27 2018-09-18 Solarflare Communications, Inc. Method, apparatus and computer program product for processing data
CN106535092A (zh) * 2016-11-01 2017-03-22 惠州Tcl移动通信有限公司 一种网络共享方法、接入网络方法及系统
US10469453B2 (en) * 2017-02-10 2019-11-05 Juniper Networks, Inc. Granular offloading of a proxied secure session
JP7177823B2 (ja) * 2018-03-09 2022-11-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 機器、及び、方法
CN109814943B (zh) * 2018-12-21 2022-04-22 北京城市网邻信息技术有限公司 服务构建方法、加载方法及装置、电子设备、存储介质
US11432143B2 (en) * 2019-08-21 2022-08-30 Lenovo (Singapore) Pte. Ltd. Authentication based on network connection history
KR102237385B1 (ko) * 2019-10-17 2021-04-06 고려대학교 산학협력단 신뢰성을 보장하는 단말 간 오프로딩 방법
KR20220113484A (ko) * 2019-12-11 2022-08-12 구글 엘엘씨 다중 네트워크 연결을 위한 스마트폰 토글
CN114936049B (zh) * 2022-05-17 2023-09-29 浙江大学 一种可热插拔的数据融合平台算子动态扩展方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100290424A1 (en) * 2008-02-04 2010-11-18 Robert Collingrige Method and system for automatic connection to a network

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146130B2 (en) * 2003-02-24 2006-12-05 Qualcomm Incorporated Wireless local access network system detection and selection
US7440755B2 (en) * 2003-06-17 2008-10-21 Telefonaktiebolaget L M Ericsson (Publ) System and method for locating a wireless local area network
ES2314298T3 (es) * 2003-10-14 2009-03-16 Telecom Italia S.P.A. Procedimiento y sustema para controlar recursos mediante un terminal movil, una red asociada y un producto de programa informatico del mismo.
ATE349833T1 (de) * 2004-01-07 2007-01-15 Research In Motion Ltd System und verfahren zur auswahl eines zellularen netzes in einem drahtlosen lokalen netz (wlan)
US7647048B2 (en) * 2005-03-31 2010-01-12 Alcatel-Lucent Usa Inc. Selecting a hidden network to connect a user to a wireless local area network
US7593730B2 (en) * 2005-06-17 2009-09-22 Qualcomm Incorporated System selection and acquisition for WWAN and WLAN systems
JP4983195B2 (ja) * 2006-10-11 2012-07-25 日本電気株式会社 無線通信端末、無線通信ネットワークシステム、ハンドオーバータイミング決定方法
US7957357B2 (en) 2006-12-22 2011-06-07 Research In Motion Limited Method and system for presenting lists of wireless local area network Profile information
US8107939B2 (en) 2007-12-14 2012-01-31 Microsoft Corporation Software defined radio architecture
US8023425B2 (en) * 2009-01-28 2011-09-20 Headwater Partners I Verifiable service billing for intermediate networking devices
US8635335B2 (en) 2009-01-28 2014-01-21 Headwater Partners I Llc System and method for wireless network offloading
US20090318124A1 (en) 2008-06-23 2009-12-24 At&T Mobility Ii Llc Mobile device management through an offloading network
US8693367B2 (en) 2009-09-26 2014-04-08 Cisco Technology, Inc. Providing offloads in a communication network
KR101719365B1 (ko) * 2009-10-30 2017-03-23 삼성전자주식회사 영상 통화 방법 및 장치
US8996649B2 (en) 2010-02-05 2015-03-31 Qualcomm Incorporated Utilizing policies for offload and flow mobility in wireless communications
US20110222523A1 (en) * 2010-03-12 2011-09-15 Mediatek Inc Method of multi-radio interworking in heterogeneous wireless communication networks
CA2800184C (en) * 2010-05-25 2019-03-19 Headwater Partners I Llc System and method for wireless network offloading
GB201010821D0 (en) 2010-06-28 2011-03-30 Nokia Oyj Mehtod and apparatus for communicating via a gateway
US8532074B2 (en) 2010-07-29 2013-09-10 Microsoft Corporation Energy-efficient on-the-fly Wi-Fi hotspot using mobile devices
CN102348206B (zh) * 2010-08-02 2014-09-17 华为技术有限公司 密钥隔离方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100290424A1 (en) * 2008-02-04 2010-11-18 Robert Collingrige Method and system for automatic connection to a network

Also Published As

Publication number Publication date
CN104067571B (zh) 2017-05-31
US9756540B2 (en) 2017-09-05
JP6161076B2 (ja) 2017-07-12
WO2013109452A1 (en) 2013-07-25
EP2805457B1 (en) 2017-04-12
JP2015508613A (ja) 2015-03-19
US20130183935A1 (en) 2013-07-18
EP2805457A4 (en) 2015-06-24
KR20140116502A (ko) 2014-10-02
CN104067571A (zh) 2014-09-24
US20150016406A1 (en) 2015-01-15
EP2805457A1 (en) 2014-11-26
US8897782B2 (en) 2014-11-25

Similar Documents

Publication Publication Date Title
KR102093524B1 (ko) 무선 네트워크 연결을 위한 확장 가능한 프레임워크
US10659952B2 (en) Network slice selection policy updating method and apparatus
EP3731495B1 (en) Method and electronic device for edge computing service
US8880040B2 (en) Mobile network operator identification
US10212537B2 (en) D2D communication discovery method, apparatus, and system
US20230401084A1 (en) System and method for implementing network experience shifting
US10764349B2 (en) Self-organizing network communication
US20160242033A1 (en) Communication service using method and electronic device supporting the same
CN106131816B (zh) 虚拟sim卡管理方法及终端
CN113825121B (zh) 延迟向订阅蜂窝无线服务的辅助移动无线设备传送eSIM
WO2018010425A1 (zh) Wifi热点信息推送方法、接收方法、装置及存储介质
US11627466B2 (en) Updating automatic access parameters for wireless local area networks
KR20140010206A (ko) 라디오 주파수 대역을 고려한 무선네트워크 접속 장치 및 방법
US11089641B2 (en) Session continuity between software-defined network-controlled and non-software-defined network-controlled wireless networks
US9900835B2 (en) Terminal device, communication method, and storage medium
US11950098B2 (en) Automatic connectivity for voice over WI-FI calls
GB2559469A (en) Controlling access and accessing a traffic network in a high density environment
CN109327517B (zh) 获取无线接入点网络状态的方法及设备
US10602437B2 (en) Intelligent network selection
US20230084923A1 (en) Carrier controlled cellular telephone network migration
US20230396980A1 (en) Dual subscriber identity module (sim) configuration
US10097974B1 (en) Opportunistic content presentation during temporary operation modes of a mobile communication device
WO2023043731A9 (en) Carrier controlled cellular telephone network migration

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant