KR20140112545A - 무선 네트워크 액세스 포인트를 찾는 방법 - Google Patents

무선 네트워크 액세스 포인트를 찾는 방법 Download PDF

Info

Publication number
KR20140112545A
KR20140112545A KR1020147022380A KR20147022380A KR20140112545A KR 20140112545 A KR20140112545 A KR 20140112545A KR 1020147022380 A KR1020147022380 A KR 1020147022380A KR 20147022380 A KR20147022380 A KR 20147022380A KR 20140112545 A KR20140112545 A KR 20140112545A
Authority
KR
South Korea
Prior art keywords
geographic
access points
cell
cells
location information
Prior art date
Application number
KR1020147022380A
Other languages
English (en)
Other versions
KR101598743B1 (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 KR20140112545A publication Critical patent/KR20140112545A/ko
Application granted granted Critical
Publication of KR101598743B1 publication Critical patent/KR101598743B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0011Control or signalling for completing the hand-off for data sessions of end-to-end connection
    • H04W36/0016Hand-off preparation specially adapted for end-to-end data sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0252Radio frequency fingerprinting
    • G01S5/02521Radio frequency fingerprinting using a radio-map
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0252Radio frequency fingerprinting
    • G01S5/02521Radio frequency fingerprinting using a radio-map
    • G01S5/02524Creating or updating the radio-map
    • G01S5/02525Gathering the radio frequency fingerprints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/0009Transmission of position information to remote stations
    • G01S5/0018Transmission from mobile station to base station
    • G01S5/0027Transmission from mobile station to base station of actual mobile position, i.e. position determined on mobile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/0005Control or signalling for completing the hand-off
    • H04W36/0055Transmission or use of information for re-establishing the radio link
    • H04W36/0061Transmission or use of information for re-establishing the radio link of neighbour cell information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/16Discovering, processing access restriction or access information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

무선 네트워크 액세스 포인트들을 찾기 위한 방법, 컴퓨터 판독가능 매체 및 컴퓨터 시스템들. 지리적 영역 내의 컴퓨터 시스템의 지리적 위치를 나타내는 지리적 위치 정보가 수신된다. 다수의 지리적 셀을 정의하는 정보, 및 각 셀에 대하여, 다수의 무선 네트워크 액세스 포인트들을 정의하는 정보를 저장하는 저장 매체로부터, 지리적 위치 정보에 의해 나타나는 지리적 위치가 그 내에 위치하는 특정 지리적 셀이 식별된다. 특정 지리적 셀 내의 액세스 포인트들이 식별되며, 지리적 위치 정보의 수신에 응답하여 제공된다.

Description

무선 네트워크 액세스 포인트를 찾는 방법{FINDING WIRELESS NETWORK ACCESS POINTS}
본 특허 출원의 발명 대상은 일반적으로 무선 네트워크에 관한 것이다.
예를 들어 셀룰러 전화, 태블릿 컴퓨터, 핫스팟 라우터, 랩톱 컴퓨터 등과 같은 모바일 디바이스들을 포함하는 컴퓨터 시스템은, 무선 네트워크, 예컨대, Wi-Fi 네트워크 및 셀룰러 네트워크를 검출하여 그에 접속하도록 구성될 수 있다. 모바일 디바이스는, 예를 들어 디바이스들의 사용자들에 의해 지리적 영역 내의 다수의 지리적 위치로 이동될 수 있다. 무선 네트워크 서비스 공급자들은 인프라(예를 들어, 다수의 무선 네트워크 서비스 제공 구조)를 구축하여 지리적 영역에 걸쳐 모바일 디바이스들에 무선 네트워크 서비스들을 제공할 수 있다. 예를 들어, 셀룰러 네트워크 서비스 공급자들 및 Wi-Fi 서비스 공급자들은 지리적 영역 내의 상이한 지리적 위치들에서, 셀룰러 네트워크 타워들 및 라우터들, 각각 또는 둘 모두를 구축할 수 있다. 무선 네트워크 제공 구조들 중 하나 이상은 특정 지리적 위치 내의 모바일 디바이스에 서비스를 제공할 수 있다. 모바일 디바이스가 특정 지리적 위치로부터 다른 지리적 위치로, 예를 들어, 인접한 지리적 위치로 이동되는 경우, 특정 지리적 위치 내에 구축된 구조들은, 인접한 지리적 위치 내에 구축된 구조들로 모바일 디바이스를 핸드오프(hand-off)하여 모바일 디바이스가 무선 네트워크로의 접속을 상실하지 않게 할 수 있다.
본 명세서는 무선 네트워크 액세스 포인트들(access points)을 찾는 것에 관련된 기술들을 설명한다.
일반적으로, 본 명세서에 기술된 발명 대상의 혁신적인 하나의 양태는 데이터 처리 장치(data processing apparatus)에 의해 수행되는 방법으로서 구현될 수 있다. 지리적 영역 내의 컴퓨터 시스템의 지리적 위치를 나타내는 지리적 위치 정보가 수신된다. 컴퓨터 판독가능 저장 매체에 액세스한다. 매체는 다수의 지리적 셀을 정의하는 정보를 저장하며, 이때 각 셀은 지리적 영역의 일부를 나타낸다. 매체는, 각 셀에 대하여, 하나 이상의 액세스 포인트를 정의하는 정보를 저장하며, 이때 각 액세스 포인트는 컴퓨터 시스템들에 무선 네트워크 서비스를 제공하는 지점(point)이며, 각자의 셀 내에 위치하고 있다. 컴퓨터 판독가능 저장 매체로부터, 지리적 위치 정보에 의해 나타나는 지리적 위치가 그 내에 위치하는 특정 지리적 셀이 식별된다. 저장 매체로부터, 특정 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트가 식별된다. 식별된 하나 이상의 액세스 포인트는 지리적 위치 정보의 수신에 응답하여 제공된다.
이러한 양태 및 다른 양태들은 다음의 특징들 중 하나 이상을 포함할 수 있다. 지리적 영역 내의 하나 이상의 인접한 지리적 셀이 식별될 수 있다. 하나 이상의 인접한 지리적 셀 각각은 특정 지리적 셀에 인접한다. 하나 이상의 인접한 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트가 식별될 수 있다. 하나 이상의 인접한 지리적 셀 내에 위치하는 식별된 하나 이상의 액세스 포인트는 지리적 위치 정보의 수신에 응답하여 제공될 수 있다. 하나 이상의 인접한 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트 각각이 지리적 위치로부터의 임계 거리를 만족하는지가 판단될 수 있다. 하나 이상의 인접한 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트 각각이 지리적 위치로부터의 임계 거리를 만족하는지가 판단될 수 있다. 하나 이상의 인접한 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트 각각이 임계 무선 네트워크 서비스 정확도 파라미터(threshold wireless network service accuracy parameter)를 만족하는지가 판단될 수 있다. 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것은, 다수의 지리적 셀을 동시에 식별하는 것을 포함하며, 이때 특정 셀이 다수의 지리적 셀에 대해 실질적으로 중심에 위치할 수 있다. 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것은, 특정 지리적 셀에 인접하는 제1 인접 셀을 식별하는 것, 및 인접 셀로부터 시작하는 특정 셀 주위의 나선형 경로(spiral path)를 횡단함(traversing)으로써 하나 이상의 추가 인접 셀을 식별하는 것을 포함할 수 있다. 각 지리적 셀은 각자의 셀에 의해 나타나는 지리적 영역의 각자의 부분의 지리적 경계를 나타내는 각자의 지리적 경계 정보와 연관될 수 있다. 다수의 지리적 셀을 정의하는 정보 및 하나 이상의 액세스 포인트를 정의하는 정보가 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다. 정보를 저장하는 것은, 지리적 영역을 다수의 지리적 셀로 분할하는 것, 지리적 영역 내에 위치하는 하나 이상의 액세스 포인트 및 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보를 수신하는 것, 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보에 기초하여 다수의 셀들 중 하나 이상의 액세스 포인트 각각이 위치하고 있는 지리적 셀을 결정하는 것, 및 그 결정에 응답하여 하나 이상의 액세스 포인트 각각을 각자의 셀 내에 포함하는 것을 포함할 수 있다. 다수의 지리적 셀은 실질적으로 균일한 형상을 가질 수 있다. 하나 이상의 액세스 포인트 각각을 각자의 셀 내에 포함하는 것은, 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보의 해시(hash)를 생성하는 것을 포함할 수 있다. 컴퓨터 판독가능 저장 매체는, 각각 각자의 셀 내의 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보의 해시를 포함하는 제1 해시 테이블(hash table), 및 각각 각자의 셀 내의 하나 이상의 액세스 포인트 각각을 나타내는 해시를 포함할 수 있는 제2 해시 테이블을 저장할 수 있다. 지리적 영역은 지구일 수 있다. 컴퓨터 시스템은 모바일 디바이스, 무선 핫스팟 디바이스, 또는 랩톱 컴퓨터 중 적어도 하나일 수 있다. 지리적 위치 정보는 위도 및 경도를 포함할 수 있다.
본 명세서에 기술된 발명 대상의 다른 혁신적인 양태는 본 명세서에 기술된 동작들을 수행하도록 데이터 처리 장치에 의해 실행가능한 컴퓨터 소프트웨어 명령어들을 저장하는 비일시적(non-transitory) 컴퓨터 판독가능 매체로서 구현될 수 있다. 본 명세서에 기술된 발명 대상의 또 다른 혁신적인 양태는 데이터 처리 장치 및 본 명세서에 기술된 동작들을 수행하도록 데이터 처리 장치에 의해 실행가능한 컴퓨터 소프트웨어 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체를 포함하는 시스템으로서 구현될 수 있다.
본 명세서에 기술된 발명 대상의 하나 이상의 구현예의 상세항목은 첨부 도면 및 하기 기재에서 설명된다. 발명 대상의 다른 특징, 양태, 및 이점은 본 명세서, 도면, 및 특허청구범위로부터 명백해질 것이다.
<도 1>
도 1은 컴퓨터 시스템이 지리적 영역 내에서 무선 네트워크 서비스를 제공하는 액세스 포인트들을 탐색(search)하는 예시적인 환경을 도시하는 도면.
<도 2>
도 2는 각각이 지리적 위치를 나타내는 다수의 셀로 분할된 지구의 일례를 도시하는 도면.
<도 3>
도 3은 액세스 포인트들을 나타내는 정보를 포함하는 해시 테이블들을 저장하는 컴퓨터 판독가능 저장 디바이스의 일례를 도시하는 도면.
<도 4a 내지 도 4d>
도 4a 내지 도 4d는 지리적 영역 내의 셀들 내의 액세스 포인트들의 예시적인 탐색을 도시하는 도면.
<도 5>
도 5는 무선 네트워크 액세스 포인트들을 찾기 위한 예시적인 프로세스의 흐름도.
다양한 도면들에서 동일한 도면 부호들 및 명칭들은 동일한 요소들을 나타낸다.
본 개시 내용은, 각각이 무선 네트워크 서비스를 제공하며, 무선 네트워크 서비스를 탐색하고 있는 컴퓨터 시스템 근처에 위치하는, 무선 액세스 포인트들을 찾기 위한, 컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨터 시스템들을 설명한다. 컴퓨터 시스템은 셀룰러 전화, 태블릿 컴퓨터, 핫스팟 디바이스, 랩톱 컴퓨터 등과 같은 모바일 디바이스들을 포함할 수 있다. 액세스 포인트는 셀룰러 네트워크 타워, Wi-Fi 라우터, 이들의 조합, 또는 컴퓨터 시스템에 무선 네트워크 서비스를 제공하도록 구성된 임의의 디바이스를 포함할 수 있다. 일부 구현예에서, 액세스 포인트들은, 컴퓨터 시스템의 지리적 위치를 나타내는 지리적 위치 정보(예를 들어, 위도/경도 좌표)와 지리적 영역에 걸쳐 분산된 다수의 액세스 포인트들의 지리적 위치를 나타내는 지리적 위치 정보(예를 들어, 위도/경도 좌표)를 비교함으로써 탐색될 수 있다. 이러한 기법들은, 일관된 해싱(consistent hashing) 방법들을 사용하여 액세스 포인트들을 찾는 것에 관련하여 설명되지만, 이들은 위도 및 경도를 포함하는 지리적 위치 정보에 기초하는 임의의 공간적 액세스 애플리케이션에 적용가능하다.
컴퓨터 시스템 근처의 액세스 포인트들을 찾는 것에 대한 전 단계(precursor)로서, 지리적 영역에 걸쳐 분산된 다수의 액세스 포인트들의 지리적 위치를 나타내는 데이터베이스가 생성되고 컴퓨터 판독가능 저장 디바이스에 저장될 수 있다. 그렇게 하기 위하여, 일부 구현예에서, 지리적 영역은 다수의 지리적 셀(또는 그리드)로 분할될 수 있으며, 이때 각 셀은 지리적 영역의 일부를 나타낸다. 각 셀은 지리적 경계에 의해 정의될 수 있고, 이는 각자의 지리적 위치 정보(예를 들어, 위도/경도/높이 좌표)에 의해 식별될 수 있다. 알려진 각 액세스 포인트는 또한 각자의 지리적 위치 정보에 의해 식별될 수 있고, 셀에 연관될 수 있다. 일부 구현예에서, 각 액세스 포인트는 또한 액세스 포인트가 송출하는 무선 신호(또는 신호들)의 특징들에 의해 식별될 수 있다. 각 액세스 포인트를 셀과 연관시키기 위하여, 일부 구현예에서, 이하 설명되는 바와 같이, 각 액세스 포인트의 지리적 위치는 정규화되고 셀에 구속(constrained)될 수 있다. 이어서, 액세스 포인트들과 셀들 사이에 형성된 연관성은 하나 이상의 해시 테이블로서 컴퓨터 판독가능 저장 디바이스에 저장될 수 있다. 특정 셀, 및 특정 셀 내에 위치하는 액세스 포인트들은 해시 테이블 룩업 알고리즘(look-up algorithm)을 구현함으로써 식별될 수 있다.
컴퓨터 시스템은 컴퓨터 시스템의 지리적 위치를 나타내는 지리적 위치 정보를 제공함으로써 근처의 액세스 포인트들에 대한 요청을 송신할 수 있다. 액세스 포인트들에 대한 요청이 컴퓨터 시스템으로부터 수신될 때, 컴퓨터 시스템 근처의 액세스 포인트들을 찾기 위해 컴퓨터 판독가능 저장 디바이스 내에 저장된 데이터베이스가 탐색될 수 있다. 그렇게 하기 위하여, 예를 들어 해시 테이블 룩업 알고리즘을 구현함으로써, 컴퓨터 시스템이 그 내에 위치하는 셀을 식별하기 위해 데이터베이스가 탐색될 수 있다. 이어서, 유사하게 컴퓨터 시스템에 무선 네트워크 서비스를 제공할 수 있는 셀 내의 액세스 포인트들을 식별하기 위해 셀이 탐색될 수 있다. 일부 구현예에서, 컴퓨터 시스템 근처에 존재하는 것으로서 식별되는 액세스 포인트들의 임계 수가 지정될 수 있다. 셀 내의 모든 액세스 포인트들의 수가 임계 수보다 크면, 모든 액세스 포인트들보다 적은 수의 액세스 포인트는 컴퓨터 시스템 근처에 존재하는 것으로서 식별될 수 있다. 대안적으로, 셀 내의 모든 액세스 포인트들의 수가 임계 수보다 적으면, 하나 이상의 다른 셀, 예를 들어 컴퓨터 시스템이 그 내에 위치하는 셀에 인접한 셀들을, 컴퓨터 시스템에 무선 네트워크 서비스를 제공할 수 있는 액세스 포인트들에 대하여, 탐색할 수 있다. 또한, 셀 내의 액세스 포인트들의 수가 다른 임계 수보다 적으면, 셀은 하나 이상의 인접 셀과 결합되어, 그 내의 액세스 포인트들의 수가 다른 임계 수보다 큰 셀들의 서브-군(sub-group)을 형성할 수 있다.
본 명세서에 설명된 기법들을 구현함으로써, 모바일 디바이스의 위도/경도 좌표의 수신에 응답하여 모바일 디바이스들에 무선 네트워크 서비스를 제공할 수 있는 액세스 포인트들이 식별될 수 있다. 셀들을 나타내는 지리적 위치 정보 및 각 셀 내의 액세스 포인트들을 나타내는 지리적 정보 위치를 정규화하고 해시 테이블들 내에 저장함으로써, 트리 데이터 구조들(예를 들어, 쿼드 트리(quad tree), r-트리(r-tree) 등) 내에 셀들 및 액세스 포인트들을 저장하는 것 및 액세스 포인트들을 탐색하는 것에 비하여 액세스 포인트들의 탐색 동안 셀들 및 액세스 포인트들가 식별될 수 있는 속도를 향상시킬 수 있다. 향상된 탐색 속도는 또한 컴퓨터 시스템이 위치하고 있는 셀에 인접한 하나 이상의 셀 내의 액세스 포인트들을 탐색하는 것도 가능하게 할 수 있다.
도 1은 컴퓨터 시스템(102)이 지리적 영역 내에서 무선 네트워크 서비스를 제공하는 액세스 포인트들을 탐색하고 있는 예시적인 환경(100)을 도시한다. 컴퓨터 시스템(102), 예를 들어, 모바일 디바이스는, 유선 또는 무선 네트워크(108), 예컨대 인터넷, 셀룰러 전화 네트워크 등을 통해 액세스 포인트 엔진(access points engine)(106)에 접속된다. 컴퓨터 시스템(102)은 무선 네트워크 서비스의 수신, 및 지리적 위치 정보를 포함하는 정보의 송신 등을 포함하는 동작들을 수행하도록 소프트웨어, 하드웨어, 펌웨어 또는 이들의 조합을 구현할 수 있다. 액세스 포인트 엔진(106)은 본 명세서에서 설명되는 동작들을 수행하기 위해 컴퓨터 판독가능 매체(116) 상에 저장된 컴퓨터 소프트웨어 명령어들을 실행하도록 구성된 데이터 처리 장치(114)를 포함하는 컴퓨터 시스템을 포함한다. 액세스 포인트 엔진(106)은, 셀들을 나타내는 지리적 정보를 예를 들어, 컴퓨터 판독가능 저장 디바이스일 수 있는 지리적 셀 저장 장치(110)에 저장할 수 있다. 또한, 액세스 포인트 엔진(106)은 셀들 내의 액세스 포인트들의 수정 - 예를 들어, 추가, 삭제 - 을 반영하기 위하여 지리적 셀 저장 장치(110)를 주기적으로 업데이트할 수 있다. 일부 구현예에서, 액세스 포인트 엔진(106)은, 컴퓨터 시스템의 지리적 위치를 추적할 수 있는 지리적 위치 시스템(104), 예컨대, 글로벌 포지셔닝 시스템(Global Positioning System, GPS) 위성, 장거리 항법(Long Range Navigation, LORAN) 시스템 등에 접속될 수 있다. 액세스 포인트 엔진(106)은 액세스 포인트 저장 장치(112)에 접속될 수 있고, 이는 액세스 포인트들의 지리적 위치 정보를 저장하는 데이터베이스일 수 있다. 액세스 포인트 저장 장치(112)는 액세스 포인트 엔진(106)과는 별개로 저장될 수 있거나 그의 일부일 수 있다.
일부 구현예에서, 액세스 포인트 엔진(106)은 지리적 영역 내에서의 컴퓨터 시스템(102)의 지리적 위치를 나타내는 지리적 위치 정보 - 위도, 경도 좌표 등 - 를 수신할 수 있다. 액세스 포인트 엔진(106)은, 각각이 지리적 영역의 일부를 나타내는 다수의 지리적 셀을 정의하는 정보를 저장하고, 각 셀에 대하여, 각자의 셀 내에 위치하는 하나 이상의 액세스 포인트를 정의하는 정보를 저장하는 지리적 셀 저장 장치(110)에 액세스할 수 있다. 지리적 셀 저장 장치(110)로부터, 액세스 포인트 엔진(106)은, 컴퓨터 시스템(102)으로부터 수신된 지리적 위치 정보에 의해 나타나는 지리적 위치가 그 내에 위치하는 특정 셀을 식별할 수 있다. 또한, 지리적 셀 저장 장치(110)로부터, 액세스 포인트 엔진(106)은 특정 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트를 식별할 수 있다. 액세스 포인트 엔진(106)은 컴퓨터 시스템(102)으로부터의 지리적 위치 정보의 수신에 응답하여 식별된 하나 이상의 액세스 포인트를 제공할 수 있다. 이러한 방식에서, 모바일 디바이스는 근처에 있고 모바일 디바이스에 무선 네트워크 서비스를 제공할 수 있는 하나 이상의 액세스 포인트를 수신할 수 있다.
일부 구현예에서, 지리적 셀 저장 장치(110) 및 액세스 포인트 저장 장치(112)는, 이하 설명되는 바와 같이, 각각, 셀들 및 액세스 포인트들로 채워질(populated) 수 있다. 액세스 포인트들을 포함하는 것으로 알려진 지리적 영역은 다수의 셀들로 분할될 수 있다. 도 2는 각각이 지리적 위치를 나타내는 다수의 셀들(예를 들어, 제1 셀(202), 제2 셀(204), 제3 셀(206))로 분할된, 지구의 일례를 도시한다. 일부 구현예에서, 다수의 셀들의 크기 및 형상은, 예를 들어 적도에서 예를 들어, 0.005' x 0.005' 정방형, 50 m x 50 m 정방형, 100 m x 100 m 에 상관없이 균일하고, 어느 장소의 도수(degree)에서도 동일한 크기로 할 수 있다. 지구와 관련해서는, 셀들의 형상, 특히 극들(poles) 근처의 셀들의 형상은, 지구의 형상을 설명하기 위해 조정될 수 있다. 이러한 구현예들에서, 셀들 내의 액세스 포인트들의 밀도에 상관 없이 모든 셀들은 실질적으로 동일한 크기이다. 예를 들어, 특정 셀은 5개의 액세스 포인트들(액세스 포인트들(208, 210, 212, 214 및 216))을 포함할 수 있는 한편, 다른 셀은 4개의 액세스 포인트들(액세스 포인트들(218, 220, 222 및 224))을 포함할 수 있지만, 그럼에도 불구하고 실질적으로 동일한 크기이다.
지리적 셀 저장 장치(110)는 지구 상의 모든 지리적 위치들을 정의하는 지리적 위치 정보(예를 들어, 위도, 경도 좌표)를 저장할 수 있다. 지리적 셀 저장 장치(110)는 각자의 셀들에 대한 지리적 경계를 나타내는 지리적 경계 정보를 추가적으로 포함할 수 있다. 액세스 포인트 엔진(106)은 액세스 포인트 저장 장치(112)로부터 다수의 액세스 포인트들에 연관된 지리적 위치 정보를 수신하고, 액세스 포인트가 위치하고 있는 셀을 결정하고, 액세스 포인트들과 셀들 사이의 연관성을 생성할 수 있다. 예를 들어, 액세스 포인트가 셀 내에 존재하는지를 판단하기 위하여, 액세스 포인트 엔진(106)은 액세스 포인트의 위도, 경도 좌표가 셀의 지리적 경계 범위 내에 포함되는지를 판단할 수 있다. 일부 구현예에서, 액세스 포인트 엔진(106)은 셀의 지리적 경계 범위 내에 포함되는 액세스 포인트의 위도, 경도 좌표에 기초하여 일관된 해싱을 생성하고, 액세스 포인트를 셀과 연관시킬 수 있다. 액세스 포인트 엔진(106)은 액세스 포인트들, 및 액세스 포인트들이 그 내에 위치하는 셀들을 지리적 셀 저장 장치(110) 내에 저장할 수 있다.
도 3은 액세스 포인트들을 나타내는 정보를 포함하는 해시 테이블들을 저장하는 컴퓨터 판독가능 저장 디바이스(예를 들어, 지리적 셀 저장 장치(110))의 일례를 도시한다. 일부 구현예에서, 지리적 셀 저장 장치(110)는, 제1 열(304) 내의 액세스 포인트들에 연관된 식별자들 및 제2 열(306) 내의 액세스 포인트들에 연관된 대응하는 값들을 저장하는, 제1 해시 테이블(302)을 포함한다. 제2 해시 테이블(308) 내에는, 지리적 셀 저장 장치(110)는 셀 위치들(310), 및 하나 이상의 제2 열(312) 내의 이들 그리드 위치들에서의 액세스 포인트들의 대응하는 값을 저장한다. 액세스 포인트 엔진(106)은, 제1 해시 테이블(302) 및 제2 해시 테이블(308) 내에 저장되는, 지리적 셀들 및 액세스 포인트들의 식별자의 일관된 해시를 생성하기 위해 일관된 해시 알고리즘을 구현할 수 있는 해시 생성기(314)를 포함할 수 있다. 해시 생성기(314)는 액세스 포인트가 위치하고 있는 셀에 인덱스를 제공할 수 있다. 하기 설명하는 바와 같이, 액세스 포인트 엔진(106)은 제1 해시 테이블(302) 및 제2 해시 테이블(308)의 일정한 시간 룩업(constant time look-up)에 의해 주어진 액세스 포인트 또는 지리적 위치 근처의 액세스 포인트들을 찾을 수 있다. 2개의 해시 테이블 내에, 액세스 포인트들 및 액세스 포인트들을 포함하는 지리적 셀들의 리스트가 저장되어 있기 때문에, 액세스 포인트 엔진(106)은 특정 지리적 위치 근처의 액세스 포인트들에 대한 요청들에 응답들을 제공할 수 있다.
도 4a 내지 도 4d는 지리적 영역에서 셀들 내의 액세스 포인트들의 예시적인 탐색을 도시한다. 예시적인 탐색은 특정 지리적 영역(400)(예를 들어, 캘리포니아 주) 주위의 다수의 셀에 관련하여 설명하지만, 탐색은 특정 지리적 영역(400)보다 작은 지리적 영역, 또는 큰 지리적 영역 내에서 구현될 수 있다. 또한, 지리적 영역(400)은 보다 적은 셀 또는 보다 많은 셀들로 분할될 수 있다. 도 4a에 도시된 바와 같이, 액세스 포인트들을 탐색하고 있는 컴퓨터 시스템은 영역(400) 내에 위치하는 셀(402) 내에 위치하고 있다. 컴퓨터 시스템, 예를 들어 모바일 디바이스는 네트워크(108)를 통해 액세스 포인트 엔진(106)에 자신의 위도, 경도 좌표를 송신하도록 구성될 수 있다.
액세스 포인트 엔진(106)은, 컴퓨터 시스템의 지리적 위치 근처의 액세스 포인트들에 대한 컴퓨터 시스템으로부터의 요청인, 근처의 요청들을 처리할 수 있다. 요청은 하이퍼텍스트 전송 규약(hypertext transfer protocol, HTTP) POST 요청들로서 구현될 수 있다. 근처의 요청을 처리하기 위하여, 액세스 포인트 엔진(106)은 위도, 경도 좌표를 수신하며 예를 들어 그 좌표를 셀의 크기로 나눔으로써 그 좌표를 정규화하여, X 값(예를 들어, 1000) 및 Y 값(예를 들어, 2000)를 획득할 수 있다. 정규화된 값들을 사용하여, 액세스 포인트 엔진(106)은 컴퓨터 시스템의 위도, 경도 좌표가 범위 내에 포함되는 셀로서 셀(402)을 식별할 수 있다. 셀(402)이 식별되면, 액세스 포인트 엔진(106)은 제1 해시 테이블(302) 및 제2 해시 테이블(308)에 대해서 해시 테이블 룩업 알고리즘을 구현하여, 셀(402) 내에 위치하는 액세스 포인트들을 식별할 수 있다.
일부 구현예에서, 액세스 포인트 엔진(106)은 자바 서블릿(Java servelet) 및 룩업 오브젝트를 포함하도록 구현될 수 있다. 서블릿은, 예를 들어 protobuf 요청의 추출, protobuf 응답의 구성 및 관리 인터페이스의 제공을 포함하는, HTTP 관련 태스크들에 관여할 수 있다. 룩업 오브젝트는 모든 서블릿 인스턴스들(instances)에 의해 공유될 수 있는 싱글톤(singleton)으로서 구현될 수 있고 주어진 위치에 근접한 액세스 포인트들, 또는 위치 요청에 관련하여 하기 설명되는 바와 같이 주어진 액세스 포인트에 근접한 액세스 포인트들을 찾는 것에 관여할 수 있다.
일부 구현예에서, 컴퓨터 시스템으로부터의 근처의 액세스 포인트들에 대한 요청에 응답하여, 액세스 포인트들(106)은 컴퓨터 시스템이 위치하고 있는 동일한 지리적 셀 내에 존재하는 모든 액세스 포인트들을 컴퓨터 시스템에 제공할 수 있다. 또한, 때때로, 액세스 포인트 엔진(106)은 근처의 셀들 내에 존재하는 액세스 포인트들을 제공할 수 있다. 예를 들어, 컴퓨터 시스템이 위치하고 있는 특정 셀 내의 액세스 포인트들의 수가 임계 수를 만족하지 않으면(예를 들어, 임계 수 미만임), 액세스 포인트 엔진(106)은, 다른 셀들, 예를 들어 특정 셀들에 인접한 셀들 내의 액세스 포인트들을 식별할 수 있다. 액세스 포인트 위치들을 요청하는 컴퓨터 시스템은 임계 수, 예를 들어 1600개의 액세스 포인트들을 특정할 수 있다.
예를 들어, 액세스 포인트 엔진(106)은 중심 셀로서 셀(402)을 지정하고, 셀(402)과 경계를 공유하는 셀들로서 인접 셀들(예를 들어, 도 4b에 도시된 셀(404), 셀(406), 셀(408), 셀(410))을 동시에 식별한다. 인접 셀들을 식별하기 위하여, 액세스 포인트 엔진(106)은 원의 픽셀 근사와 유사한 기법을 구현할 수 있다. 지리적 셀 저장 장치(110)를 사용하여, 액세스 포인트 엔진(106)은 그 다음에 셀(404), 셀(406), 셀(408) 및 셀(410)의 각각의 내에서 액세스 포인트들을 식별하고, 컴퓨터 시스템으로부터의 요청에 응답하여 셀(402) 내의 액세스 포인트들과 함께 그 액세스 포인트들을 제공할 수 있다. 5개의 셀(셀(402), 셀(404), 셀(406), 셀(408) 및 셀(410)) 내의 액세스 포인트들의 수가 임계 수를 만족하지 않으면, 액세스 포인트 엔진(106)은 탐색을 1개의 층만큼 확장하여 추가 셀들(도 4c에 도시된 셀(412), 셀(414), 셀(416), 셀(418), 셀(420), 셀(422), 셀(424) 및 셀(426))을 식별하고, 전술한 액세스 포인트 식별 기법들을 반복할 수 있다. 액세스 포인트 엔진(106)은 식별된 액세스 포인트들의 수가 임계 수를 만족할 때까지 이러한 기법들을 반복할 수 있다.
도 4c에 관하여 설명된 다른 예에서, 액세스 포인트 엔진(106)은 나선형 룩업 기법을 구현함으로써 추가 액세스 포인트들을 식별하기 위해 인접 셀들을 식별할 수 있다. 그렇게 하기 위해, 액세스 포인트 엔진(106)은 셀(402)에 인접한 셀, 예를 들어 셀(402)과 경계를 공유하는 셀(404)을 우선 식별할 수 있다. 액세스 포인트 엔진(106)은 셀(404) 내의 액세스 포인트들을 식별하고, 셀(402) 및 셀(404) 내의 액세스 포인트들의 수가 임계 수를 만족하는지의 여부를 판단할 수 있다. 임계 수가 만족되지 않으면, 액세스 포인트 엔진(106)은, 셀(402)을 중심으로서 셀(404)로부터 시계 방향 또는 반시계 방향의 어느쪽이든으로 나선형 경로를 횡단함으로써, 다른 셀, 예를 들어 셀(406)을 식별하여, 추가 액세스 포인트들을 식별하기 위한 기법들을 반복할 수 있다. 대안적으로, 엔진(106)은 셀(02)로부터 시작하는 나선형 경로를 횡단할 수 있다. 필요에 따라, 액세스 포인트 엔진(106)은 추가로 셀(408)을 식별하고 셀 내의 액세스 포인트들을 식별할 수 있다. 지리적 셀 저장 장치(110)는 액세스 포인트들 및 셀들에 대한 정보를 해시 테이블들 내에 저장하고 있기 때문에, 추가 셀들의 탐색은, 쿼드 트리 또는 r-트리 데이터 구조와 같은, 트리 데이터 구조 내에 저장된 액세스 포인트들 및 지리적 셀의 탐색의 구현과 비교하여 보다 빠르고, 보다 연산 집약도가 낮을 수 있는, 해시 테이블 룩업에 의해 구현될 수 있다. 예를 들어, 해시 생성기(314)는 액세스 포인트들을 포함하는 각 셀을 식별할 수 있다.
일부 구현예에서, 액세스 포인트 엔진(106)은 액세스 포인트들의 임계 수가 만족될 때까지 주변으로부터 동심의 수의 셀들을 추가함으로써 추가 액세스 포인트들을 식별하기 위해 인접 셀들을 식별할 수 있다. 그 후, 액세스 포인트 엔진(106)은 주변의 액세스 포인트들 중 가장 정확한 것을 식별할 수 있다. 일부 구현예에서, 액세스 포인트 엔진(106)은 액세스 포인트들의 임계 수가 만족될 때까지, 주변으로부터 동심의 수의 셀들을 추가하고, 그 다음에 액세스 포인트들의 디스크 전체의 가장 정확한 것을 사용할 수 있다. 일부 구현예에서, 액세스 포인트 엔진(106)은 액세스 포인트들의 임계 수가 만족될 때까지 주변으로부터 무작위로 셀을 추가할 수 있다.
일부 구현예에서, 액세스 포인트 엔진(106)은 컴퓨터 시스템이 위치하고 있는 셀 내에 존재한다고 판단된 액세스 포인트를 필터링(filter)할 수 있다. 예를 들어, 셀 내의 각 액세스 포인트에 대하여, 액세스 포인트 엔진(106)은, 그 액세스 포인트에 의해 송신되는 무선 신호의 강도에 종속하는 액세스 포인트의 무선 정확도 파라미터를 수신하거나, 판단하거나, 또는 추적할 수 있다. 액세스 포인트 엔진(106)이 무선 정확도 파라미터가 임계치를 만족하지 않는(예를 들어, 특정 액세스 포인트의 신호 강도가 임계 신호 강도 미만임) 것을 판단하면, 액세스 포인트 엔진(106)은 컴퓨터 시스템으로부터의 요청에 응답하여 제공되는 액세스 포인트로부터 그 특정 액세스 포인트를 제외시킬 수 있다. 액세스 포인트들을 필터링하기 위한 파라미터로서 신호 강도를 사용하는 것에 대한 대안으로서, 액세스 포인트 엔진(106)은 거리를 사용하여 액세스 포인트들을 필터링할 수 있다. 예를 들어, 컴퓨터 시스템이 정방형 셀의 중심이 아니라 특정 에지 부근에 위치하는 경우에는, 대각선 상에서 반대측의 에지 부근의 액세스 포인트는 그 특정 에지 부근의 인접 셀 내의 다른 액세스 포인트보다 컴퓨터 시스템으로부터 멀리 이격되어 있을 가능성이 있다.
도 4b 및 도 4c에 관하여 설명된 액세스 포인트 엔진(106)이 다수의 셀을 동시에 탐색하는 기법을 구현하는 다른 예에서는, 액세스 포인트 엔진(106)은 거리와 신호 강도를 조합하여 액세스 포인트들을 식별할 수 있다. 모바일 디바이스는 그 지리적 위치 근처의 1600개의 액세스 포인트를 요청하고 있을 수도 있다. 액세스 포인트 엔진(106)은 도 4b에 도시된 셀 내에서 1500개의 액세스 포인트를 식별하고 있을 수도 있고, 도 4c에 도시된 추가 셀 내에서 500개의 액세스 포인트를 식별하고 있을 수도 있다. 컴퓨터 시스템의 지리적 위치에 가장 가까운 100개의 셀을 식별하는 것이 아니라, 액세스 포인트 엔진(106)은 거리에 상관없이 최대의 신호 강도를 갖는 100개의 셀을 식별할 수 있다. 액세스 포인트들의 필터링에 더하여, 액세스 포인트 엔진(106)은 필터링된 액세스 포인트에 점수를 할당할 수 있어, 각 점수는 필터링된 액세스 포인트가 컴퓨터 시스템에 제공할 수 있는 무선 네트워크 서비스의 평가 척도를 나타낸다.
모바일 디바이스가 정지하고 있지 않고, 특정 방향으로 이동하고 있는 상황에서는, 액세스 포인트 엔진(106)은 그 이동의 방향에, 부분적으로, 기초하여 액세스 포인트들을 추가로 필터링할 수 있다. 예를 들어, 액세스 포인트 엔진(106)은, 모바일 디바이스가 셀 A 내에 존재하고 있는 것을 나타내는, 위도, 경도의 좌표, 및 그 모바일 디바이스가 셀 B 내에 존재할 예정인 것을 나타내는 속도 벡터를 모바일 디바이스로부터 수신할 수 있다. 이 위도, 경도의 좌표, 및 속도 벡터에 기초하여, 액세스 포인트 엔진(106)은 모바일 디바이스가 셀 B에 도달할 경우에, 최대 수의 액세스 포인트를 가지게 되는 셀(또는 셀들)을 결정할 수 있다. 이러한 양태는 이동 방향의 빈번한 변화 또는 갑작스런 변화를 고려하기 위하여 모바일 디바이스의 속도 벡터, 특히 방향 성분의, 빈번한 모니터링을 필요로 할 수 있다.
일부 상황에서는, 모바일 디바이스의 위도, 경도의 좌표와 모바일 디바이스의 이동 방향을 특정하는 맵을 결합시켜, 셀(또는 셀들) 및 셀 내의 액세스 포인트를 식별할 수 있다. 예를 들어, 모바일 디바이스가 고속도로 구간 상에서 모바일 디바이스가 이동하고 있는 것을 나타내는 맵을 포함하고, 액세스 포인트 엔진(106)이 그 고속도로 구간 상에서 모바일 디바이스가 머물 가능성이 있다는 것을 판단할 수 있는(예를 들어, 그 구간에 출구가 존재하지 않기 때문에) 경우에는, 복수의 셀을 탐색하는 것이 아니라, 액세스 포인트 엔진(106)이 그 고속도로 구간을 따라 존재하는 셀 내의 액세스 포인트만을 탐색할 수 있다.
도 5는 무선 네트워크 액세스 포인트들을 찾기 위한 예시적인 프로세스(500)의 흐름도이다. 단계(502)에서, 예를 들어, 모바일 디바이스로부터 지리적 위치 정보를 수신한다. 단계(504)에서, 해시 테이블들, 예를 들어 지리적 셀 저장 장치(110) 내에 저장된 해시 테이블들에 액세스한다. 단계(506)에서, 모바일 디바이스의 위치가 위치하고 있는 지리적 셀을 식별한다. 단계(508)에서, 식별된 지리적 셀 내의 액세스 포인트들을 식별한다. 단계(510)에서, 최소 수의 셀들이 식별되고 있는지의 여부를 판단하기 위한 확인을 한다. 최소 수의 셀들이 식별되어 있지 않는다면(판단 분기 "아니오"), 단계(512)에서, 인접 셀을 식별한다. 단계(514)에서, 인접 셀 내의 액세스 포인트들을 식별한다. 단계(510)에서, 수행되는 확인을 반복한다. 최소 수의 셀들이 식별되면(판단 분기 "예"), 단계(516)에서, 식별된 액세스 포인트들에 점수들을 할당한다. 단계(518)에서, 점수에 의해 순위화된 액세스 포인트들이 모바일 디바이스로부터의 지리적 위치 정보의 수신에 응답하여 제공된다.
셀들을 나타내는 지리적 위치 정보를 해시 테이블들 내에 저장하고 해시 테이블 룩업 알고리즘을 구현함으로써 셀들을 탐색하기 위한 기법들이 무선 네트워크 서비스들을 제공하는 액세스 포인트들의 탐색에 관련하여 설명된다. 그러나, 이러한 기법들은 지리적 위치들을 나타내는 셀들을 탐색할 필요가 있는 임의의 환경에서도 구현될 수 있다. 예를 들어, 액세스 포인트들과 셀들 사이의 연관성을 저장하는 것을 대신하여 또는 그에 더하여, 관심 지역과 셀들 사이의 새로운 연관성이 해시 테이블 내에 저장될 수 있다. 관심 지역에 대한 요청이 컴퓨터 시스템으로부터 수신될 때, 해시 테이블 룩업 알고리즘을 구현하여, 요청이 수신된 컴퓨터 시스템 근처의 관심 지역들을 탐색할 수 있다.
일부 구현예에서, 액세스 포인트 엔진(106)은 룩업 요청들을 처리할 수 있다. 이러한 구현예들에서, 위도, 경도 좌표를 송신하는 것을 대신하여 또는 그에 더하여, 모바일 디바이스는 액세스 포인트 엔진(106)에 무선 신호 어드레스(예를 들어, Wi-Fi 어드레스)를 송신할 수 있다. 액세스 포인트 엔진(106)은 위치 룩업 알고리즘을 구현하여, 무선 신호 어드레스를 제공하는 액세스 포인트를 식별할 수 있다. 액세스 포인트가 식별되면, 액세스 포인트 엔진(106)은, 계속하여 전술한 기법들을 구현함으로써 식별된 액세스 포인트들 근처의 추가 액세스 포인트들을 식별할 수 있다.
본 명세서에 기술된 동작들 및 발명 대상의 구현예들은, 디지털 전자 회로에서, 또는 본 명세서에서 개시되는 구조들 및 이들의 구조적 등가물을 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서, 또는 이들 중 하나 이상의 조합들에서 구현될 수 있다. 본 명세서에 기술된 발명 대상의 구현예들은, 데이터 처리 장치에 의한 실행을 위해, 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 저장 매체, 예컨대 비일시적인 컴퓨터 판독가능 매체 상에 인코딩된 하나 이상의 컴퓨터 프로그램, 즉 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하도록 생성되는 인위적으로 생성된 전파된 신호, 예를 들어 기계-생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다. 컴퓨터 저장 매체, 예를 들어 컴퓨터 판독가능 매체는, 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 또는 이에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파된 신호는 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 송신지(source) 또는 수신지(destination)일 수 있다. 컴퓨터 저장 매체는, 또한 하나 이상의 별도의 물리적 및/또는 비일시적 컴포넌트들 또는 매체(예를 들어, 다수의 CD, 디스크, 또는 다른 저장 디바이스)일 수 있거나, 이에 포함될 수 있다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들 상에 저장되는 또는 다른 송신지들로부터 수신되는 데이터에 대하여 데이터 처리 장치, 예를 들어 데이터 처리 장치에 의해 수행되는 동작들로서 구현될 수 있다. 용어 "데이터 처리 장치"는, 예를 들어, 프로그램가능한 프로세서, 컴퓨터, 시스템 온 칩, 또는 전술 항목들 중 다수개 또는 이들의 조합들을 포함하는, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스들 및 머신들을 포함한다. 장치는 전용 논리 회로, 예를 들어, FPGA(필드 프로그램가능 게이트 어레이) 또는 ASIC(주문형 집적회로)를 포함할 수 있다. 장치는 또한 하드웨어에 추가하여 해당(in question) 컴퓨터 프로그램을에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 교차-플랫폼 런타임 환경(cross-platform runtime environment), 가상 머신, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 다양한 상이한 컴퓨팅 모델 인프라, 예를 들어 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라를 실현할 수 있다.
컴퓨터 프로그램(또한, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로서 알려짐)은 컴파일된 언어 또는 해석된 언어, 선언 언어 또는 절차 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 이는 독립형 프로그램으로서, 또는 모듈, 컴포넌트, 서브루틴, 오브젝트 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛으로서의 형태를 포함하는 임의의 형태로 배포(deploy)될 수 있다. 컴퓨터 프로그램은 파일 시스템 내의 파일에 대응할 수 있지만, 그럴 필요는 없다. 프로그램은 다른 프로그램들 또는 데이터(예로서, 마크업 언어 문서에 저장되는 하나 이상의 스크립트)를 보유하는 파일의 일부에, 해당 프로그램에 대한 전용인 단일 파일에, 또는 다수의 조정된 파일(예로서, 하나 이상의 모듈, 서브프로그램 또는 코드의 일부를 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 하나의 사이트에 위치되거나 다수의 사이트에 걸쳐 분산되고 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터 상에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은, 입력 데이터에 대하여 동작하고 출력을 생성함으로써 동작들을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍가능 프로세서에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 전용 논리 회로, 예를 들어 FPGA(필드 프로그램가능 게이트 어레이) 또는 ASIC(주문형 집적회로)에 의해 수행될 수 있으며, 장치가 또한 이들로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은, 예를 들어 범용 및 전용 둘 모두의 마이크로프로세서들, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은 명령어들에 따라 동작들을 수행하기 위한 프로세서, 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어 자기, 광자기 디스크 또는 광 디스크를 포함하거나, 이들로부터 데이터를 수신하거나, 이들에 데이터를 전송하거나, 이 둘 모두를 수행하기 위해 동작상으로 결합될 것이다. 그러나, 컴퓨터는 이러한 디바이스들을 가질 필요는 없다. 또한, 컴퓨터는 다른 디바이스, 예를 들어 단지 몇몇 예로서 모바일 전화, PDA(personal digital assistant), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(GPS) 수신기 또는 휴대용 저장 디바이스(예로서, USB(universal serial bus) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장에 적절한 디바이스들은, 예를 들어, 반도체 메모리 디바이스들, 예컨대, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 예로서 내장형 하드 디스크 또는 이동식 디스크; 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함하는, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 전용 논리 회로에 의해 보완되거나 또는 이에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 본 명세서에 기술된 발명 대상의 실시예들은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스들이 또한 사용자와의 상호작용을 제공하기 위해 사용될 수 있으며; 예를 들어 사용자에게 제공되는 피드백은 임의의 형태의 지각 피드백(sensory feedback), 예를 들어 시각적 피드백, 청각적 피드백 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성(speech) 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 이로부터 문서들을 수신함으로써; 예를 들어 웹 브라우저로부터 수신되는 요청들에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹페이지들을 전송함으로써, 사용자와 상호작용할 수 있다.
본 명세서에 기술된 발명 대상의 구현예들은, 예를 들어 데이터 서버로서 백-엔드 컴포넌트를 포함하거나, 또는 미들웨어 컴포넌트, 예를 들어 응용 서버를 포함하거나, 또는 프론트-엔드 컴포넌트, 예를 들어 사용자가 본 명세서에 기술된 발명 대상의 구현예와 상호작용할 수 있는 웹 브라우저 또는 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터, 또는 하나 이상의 이러한 백-엔드, 미들웨어, 또는 프론트-엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어, 통신 네트워크, 예컨대 네트워크(126)에 의해 상호접속될 수 있다. 통신 네트워크들의 예들은 근거리 네트워크("LAN") 및 광역 네트워크("WAN"), 인터-네트워크(예를 들어, 인터넷), 및 피어 투 피어(peer-to-peer) 네트워크들(예를 들어, 애드 혹(ad hoc) 피어 투 피어 네트워크들)을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 원격이며, 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 개별 컴퓨터 상에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 구현예에서, 서버는 (예를 들어, 클라이언트 디바이스와 상호작용하는 사용자에 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신할 목적으로) 클라이언트 디바이스에 데이터(예를 들어, HTML 페이지)를 송신한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 상호작용의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다.
세만틱 추출(semantic abstraction)은 기초가 되는 기본 데이터 소스(base data source)를 나타내는 세만틱 레이어(semantic layer)에 관한 용어이다. 세만틱 추출은 관계형(relational) 온라인 분석 처리(Online Analytical Processing, OLAP), 또는 다른 데이터 소스, 또는 2개 이상의 기존의 세만틱 레이어들의 조합에 기초하는 추출의 레벨일 수 있다. 유니버스(universe)는 특정 형태의 세만틱 추출이며, 이때 세만틱 추출은 기초가 되는 데이터 소스를 나타내고 그 기초가 되는 데이터 소스에 적용할 수 있는 측도, 속성, 및 차원을 정의하는 데이터 모델 오브젝트와 기초가 되는 데이터 소스에의 접속, 기초가 되는 데이터 소스에 관한 구조, 및 기초가 되는 데이터 소스의 양태들을 나타내는 데이터 기반 메타데이터를 포함한다. 데이터 모델 오브젝트는 세만틱 도메인 범위 내에서 정의되는 오브젝트이고, 기초가 되는 데이터 소스의 차원을 나타내거나, 차원들 요소들과 속성들 사이의 관계를 나타내거나, 기초가 되는 데이터 소스로부터의 산출, 그로부터의 산출, 또는 그에 적용되도록 설계된 산출을 제공한다. 전형적으로, 유니버스 내에서, 데이터 모델 오브젝트는, 사용자가 쿼리를 구축하거나, 또는 다른 방식에서 데이터에 액세스하는 경우에, 기초가 되는 데이터 소스의 특정 논리를 이해할 필요가 없지만, 숙지한 용어법으로 작업을 할 수 있도록, 일반적인 비지니스 용어를 할당할 수 있다. 일반적인 비지니스 용어의 예로서는, 고객, 고용자, 제품 라인, 세입, 이익, 삭감, 회계 연도, 4분기 등을 포함한다.
본 명세서는 많은 구체적인 구현 상세항목을 포함하지만, 이들은 임의의 구현들의 범주 또는 청구될 수 있는 것의 범주에 대한 제한들로서가 아니라, 오히려 특정 구현예들의 특정 구현예들에 대해 특징들의 기재로서 해석되어야 한다. 별도의 구현예들의 상황에서 본 명세서에서 기술된 특정 특징들은 또한 단일 구현예 내에서 조합하여 구현될 수 있다. 반면, 단일 구현예의 상황에서 기술된 다양한 특징들은 또한 별도의 다수의 실시예들에서, 또는 임의의 적절한 하위 조합에서 구현될 수 있다. 또한, 특징들이 특정 조합들에서 동작하고 따라서 심지어 초기에 청구된 것으로서 위에서 기술될 수 있지만, 청구된 조합들로부터의 하나 이상의 특징들은 일부 경우에서, 조합으로부터 삭제될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형예에 관한 것일 수 있다.
유사하게, 도면들에는 동작들이 특정 순서로 도시되지만, 이는 바람직한 결과들을 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행되는 것을 요구하는 것으로서 이해되지 않아야 한다. 특정 상황들에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술된 구현예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서 이러한 분리를 요구하는 것으로서 이해되지 않아야 하며, 기술된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품에서 함께 집적되거나 또는 다수의 소프트웨어 제품들로 패키지화될 수 있다는 점이 이해되어야 한다.
따라서, 발명 대상의 특정 구현예들이 기술되었다. 다른 구현예들이 하기 특허청구범위의 범주 내에 있다. 일부 경우에, 특허청구범위에 인용된 동작들이 상이한 순서로 수행되면서 여전히 바람직한 결과들을 달성할 수 있다. 또한, 첨부 도면들에 도시된 프로세스들은, 바람직한 결과들을 달성하기 위해, 도시된 특정 순서, 또는 순차적 순서를 반드시 필요로 하는 것은 아니다. 일부 구현예들에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (45)

  1. 데이터 처리 장치(data processing apparatus)에 의해 수행되는 방법으로서,
    지리적 영역 내의 컴퓨터 시스템의 지리적 위치를 나타내는 지리적 위치 정보를 수신하는 단계;
    컴퓨터 판독가능 저장 매체에 액세스하는 단계로서, 상기 컴퓨터 판독가능 저장 매체는,
    복수의 지리적 셀(geographic cells)을 정의하는 정보 - 각 셀은 상기 지리적 영역의 일부를 나타냄 - , 및
    각 셀에 대하여, 하나 이상의 액세스 포인트(access points)를 정의하는 정보 - 각 액세스 포인트는 컴퓨터 시스템들에 무선 네트워크 서비스를 제공하는 지점(point)이며 각자의 셀 내에 위치함 - 를 저장하는, 상기 액세스하는 단계;
    상기 컴퓨터 판독가능 저장 매체로부터,
    상기 지리적 위치 정보에 의해 나타나는 상기 지리적 위치가 그 내에 위치하는 특정 지리적 셀을 식별하고,
    상기 특정 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트를 식별하는 단계; 및
    상기 지리적 위치 정보를 수신하는 단계에 응답하여 상기 식별된 하나 이상의 액세스 포인트를 제공하는 단계
    를 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  2. 제1항에 있어서,
    상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 단계 - 이들 각각은 상기 특정 지리적 셀에 인접함 - ; 및
    상기 하나 이상의 인접한 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트를 식별하는 단계를 더 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  3. 제2항에 있어서, 상기 지리적 위치 정보를 수신하는 단계에 응답하여 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 식별된 하나 이상의 액세스 포인트를 제공하는 단계를 더 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  4. 제3항에 있어서, 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 하나 이상의 액세스 포인트 각각이 상기 지리적 위치로부터의 임계 거리를 만족하는지를 판단하는 단계를 더 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  5. 제3항에 있어서, 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 하나 이상의 액세스 포인트 각각이 임계 무선 네트워크 서비스 정확도 파라미터(threshold wireless network service accuracy parameter)를 만족하는지를 판단하는 단계를 더 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  6. 제2항에 있어서, 상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 단계는 다수의 지리적 셀을 동시에 식별하는 단계를 포함하며, 상기 특정 셀이 상기 다수의 지리적 셀에 대해 실질적으로 중심에 위치하는, 데이터 처리 장치에 의해 수행되는 방법.
  7. 제2항에 있어서, 상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 단계는,
    상기 특정 지리적 셀에 인접한 제1 인접 셀을 식별하는 단계; 및
    상기 제1 인접 셀로부터 시작하는 상기 특정 셀 주위의 나선 경로(spiral path)를 횡단함(traversing)으로써 하나 이상의 추가 인접 셀을 식별하는 단계를 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  8. 제1항에 있어서, 각 지리적 셀이 각자의 셀에 의해 나타나는 상기 지리적 영역의 각자의 부분의 지리적 경계를 나타내는 각자의 지리적 경계 정보와 연관되는, 데이터 처리 장치에 의해 수행되는 방법.
  9. 제1항에 있어서, 상기 복수의 지리적 셀을 정의하는 정보 및 상기 하나 이상의 액세스 포인트를 정의하는 정보를 상기 컴퓨터 판독가능 저장 매체 상에 저장하는 단계를 더 포함하며, 상기 정보를 저장하는 단계는,
    상기 지리적 영역을 상기 복수의 지리적 셀로 분할하는 단계;
    상기 지리적 영역 내에 위치하는 하나 이상의 액세스 포인트 및 상기 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보를 수신하는 단계;
    상기 하나 이상의 액세스 포인트 각각과 연관된 상기 지리적 위치 정보에 기초하여 상기 복수의 셀 중 상기 하나 이상의 액세스 포인트 각각이 위치하고 있는 지리적 셀을 결정하는 단계; 및
    상기 결정하는 단계에 응답하여 상기 하나 이상의 액세스 포인트 각각을 각자의 셀에 포함하는 단계를 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  10. 제9항에 있어서, 상기 복수의 지리적 셀이 실질적으로 균일한 형상을 갖는, 데이터 처리 장치에 의해 수행되는 방법.
  11. 제9항에 있어서, 상기 하나 이상의 액세스 포인트 각각을 각자의 셀에 포함하는 단계는 상기 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보의 해시(hash)를 생성하는 단계를 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  12. 제9항에 있어서, 상기 컴퓨터 판독가능 저장 매체는 각각 각자의 셀 내의 상기 하나 이상의 액세스 포인트 각각과 연관된 상기 지리적 위치 정보의 상기 해시를 포함하는 제1 해시 테이블, 및 각각 각자의 셀 내의 상기 하나 이상의 액세스 포인트 각각을 나타내는 해시를 포함하는 제2 해시 테이블을 저장하는, 데이터 처리 장치에 의해 수행되는 방법.
  13. 제1항에 있어서, 상기 지리적 영역은 지구인, 데이터 처리 장치에 의해 수행되는 방법.
  14. 제1항에 있어서, 상기 컴퓨터 시스템은 모바일 디바이스, 무선 핫스팟 디바이스, 또는 랩톱 컴퓨터 중 적어도 하나인, 데이터 처리 장치에 의해 수행되는 방법.
  15. 제1항에 있어서, 상기 지리적 위치 정보는 위도 및 경도를 포함하는, 데이터 처리 장치에 의해 수행되는 방법.
  16. 동작들을 수행하도록 하나 이상의 데이터 처리 장치에 의해 실행가능한 명령어들을 저장하는 비일시적(non-transitory) 컴퓨터 판독가능 매체로서, 상기 동작들은,
    지리적 영역 내의 컴퓨터 시스템의 지리적 위치를 나타내는 지리적 위치 정보를 수신하는 것;
    컴퓨터 판독가능 저장 매체에 액세스하는 것으로서, 상기 컴퓨터 판독가능 저장 매체는,
    복수의 지리적 셀을 정의하는 정보 - 각 셀은 상기 지리적 영역의 일부를 나타냄 - , 및
    각 셀에 대하여, 하나 이상의 액세스 포인트를 정의하는 정보 - 각 액세스 포인트는 컴퓨터 시스템들에 무선 네트워크 서비스를 제공하는 지점이며 각자의 셀 내에 위치함 - 를 저장하는, 상기 액세스하는 것;
    상기 컴퓨터 판독가능 저장 매체로부터,
    상기 지리적 위치 정보에 의해 나타나는 상기 지리적 위치가 그 내에 위치하는 특정 지리적 셀을 식별하고,
    상기 특정 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트를 식별하는 것; 및
    상기 지리적 위치 정보를 수신하는 것에 응답하여 상기 식별된 하나 이상의 액세스 포인트를 제공하는 것
    을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  17. 제16항에 있어서, 상기 동작들은,
    상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것 - 이들 각각이 상기 특정 지리적 셀에 인접함 - ; 및
    상기 하나 이상의 인접한 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트를 식별하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  18. 제17항에 있어서, 상기 동작들은, 상기 지리적 위치 정보를 수신하는 것에 응답하여 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 식별된 하나 이상의 액세스 포인트를 제공하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  19. 제18항에 있어서, 상기 동작들은, 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 하나 이상의 액세스 포인트 각각이 상기 지리적 위치로부터의 임계 거리를 만족하는지를 판단하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  20. 제18항에 있어서, 상기 동작들은, 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 하나 이상의 액세스 포인트 각각이 임계 무선 네트워크 서비스 정확도 파라미터를 만족하는지를 판단하는 것을 더 포함하는, 비일시적 컴퓨터 판독가능 매체.
  21. 제17항에 있어서, 상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것은 다수의 지리적 셀을 동시에 식별하는 것을 포함하며, 상기 특정 셀은 상기 다수의 지리적 셀에 대해 실질적으로 중심에 위치하는, 비일시적 컴퓨터 판독가능 매체.
  22. 제17항에 있어서, 상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것은,
    상기 특정 지리적 셀에 인접한 제1 인접 셀을 식별하는 것; 및
    상기 제1 인접 셀로부터 시작하는 상기 특정 셀 주위의 나선 경로를 횡단함으로써 하나 이상의 추가 인접 셀을 식별하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  23. 제16항에 있어서, 각 지리적 셀은 각자의 셀에 의해 나타나는 상기 지리적 영역의 각자의 부분의 지리적 경계를 나타내는 각자의 지리적 경계 정보와 연관되는, 비일시적 컴퓨터 판독가능 매체.
  24. 제16항에 있어서, 상기 동작들은, 상기 복수의 지리적 셀을 정의하는 정보 및 상기 하나 이상의 액세스 포인트를 정의하는 정보를 상기 컴퓨터 판독가능 저장 매체 상에 저장하는 것을 더 포함하며, 상기 정보를 저장하는 것은,
    상기 지리적 영역을 상기 복수의 지리적 셀로 분할하는 것;
    상기 지리적 영역 내에 위치하는 하나 이상의 액세스 포인트 및 상기 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보를 수신하는 것;
    상기 하나 이상의 액세스 포인트 각각과 연관된 상기 지리적 위치 정보에 기초하여 상기 복수의 셀 중 상기 하나 이상의 액세스 포인트 각각이 위치하고 있는 지리적 셀을 결정하는 것; 및
    상기 결정하는 것에 응답하여 상기 하나 이상의 액세스 포인트 각각을 각자의 셀에 포함하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  25. 제24항에 있어서, 상기 복수의 지리적 셀은 실질적으로 균일한 형상을 갖는, 비일시적 컴퓨터 판독가능 매체.
  26. 제24항에 있어서, 상기 하나 이상의 액세스 포인트 각각을 각자의 셀에 포함하는 것은 상기 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보의 해시를 생성하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  27. 제24항에 있어서, 상기 컴퓨터 판독가능 저장 매체는 각각 각자의 셀 내의 상기 하나 이상의 액세스 포인트 각각과 연관된 상기 지리적 위치 정보의 상기 해시를 포함하는 제1 해시 테이블, 및 각각 각자의 셀 내의 상기 하나 이상의 액세스 포인트 각각을 나타내는 해시를 포함하는 제2 해시 테이블을 저장하는, 비일시적 컴퓨터 판독가능 매체.
  28. 제16항에 있어서, 상기 지리적 영역은 지구인, 비일시적 컴퓨터 판독가능 매체.
  29. 제16항에 있어서, 상기 컴퓨터 시스템은 모바일 디바이스, 무선 핫스팟 디바이스, 또는 랩톱 컴퓨터 중 적어도 하나인, 비일시적 컴퓨터 판독가능 매체.
  30. 제16항에 있어서, 상기 지리적 위치 정보는 위도 및 경도를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  31. 시스템으로서,
    하나 이상의 데이터 처리 장치; 및
    동작들을 수행하도록 상기 하나 이상의 데이터 처리 장치에 의해 실행가능한 명령어들을 저장하는 컴퓨터 판독가능 매체
    를 포함하며, 상기 동작들은,
    지리적 영역 내의 컴퓨터 시스템의 지리적 위치를 나타내는 지리적 위치 정보를 수신하는 것;
    컴퓨터 판독가능 저장 매체에 액세스하는 것으로서, 상기 컴퓨터 판독가능 저장 매체는,
    복수의 지리적 셀을 정의하는 정보 - 각 셀은 상기 지리적 영역의 일부를 나타냄 - , 및
    각 셀에 대하여, 하나 이상의 액세스 포인트를 정의하는 정보 - 각 액세스 포인트는 컴퓨터 시스템들에 무선 네트워크 서비스를 제공하는 지점이며 각자의 셀 내에 위치함 - 를 저장하는, 상기 액세스하는 것;
    상기 컴퓨터 판독가능 저장 매체로부터,
    상기 지리적 위치 정보에 의해 나타나는 상기 지리적 위치가 그 내에 위치하는 특정 지리적 셀을 식별하고,
    상기 특정 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트를 식별하는 것; 및
    상기 지리적 위치 정보를 수신하는 것에 응답하여 상기 식별된 하나 이상의 액세스 포인트를 제공하는 것
    을 포함하는, 시스템.
  32. 제31항에 있어서, 상기 동작들은,
    상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것 - 이들 각각은 상기 특정 지리적 셀에 인접함 - ; 및
    상기 하나 이상의 인접한 지리적 셀 내에 위치하는 하나 이상의 액세스 포인트를 식별하는 것을 더 포함하는, 시스템.
  33. 제32항에 있어서, 상기 동작들은, 상기 지리적 위치 정보를 수신하는 것에 응답하여 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 식별된 하나 이상의 액세스 포인트를 제공하는 것을 더 포함하는, 시스템.
  34. 제33항에 있어서, 상기 동작들은, 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 하나 이상의 액세스 포인트 각각이 상기 지리적 위치로부터의 임계 거리를 만족하는지를 판단하는 것을 더 포함하는, 시스템.
  35. 제33항에 있어서, 상기 동작들은, 상기 하나 이상의 인접한 지리적 셀 내에 위치하는 상기 하나 이상의 액세스 포인트 각각이 임계 무선 네트워크 서비스 정확도 파라미터를 만족하는지를 판단하는 것을 더 포함하는, 시스템.
  36. 제32항에 있어서, 상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것은 다수의 지리적 셀을 동시에 식별하는 것을 포함하며, 상기 특정 셀은 상기 다수의 지리적 셀에 대해 실질적으로 중심에 위치하는, 시스템.
  37. 제32항에 있어서, 상기 지리적 영역 내의 하나 이상의 인접한 지리적 셀을 식별하는 것은,
    상기 특정 지리적 셀에 인접한 제1 인접 셀을 식별하는 것; 및
    상기 제1 인접 셀로부터 시작하는 상기 특정 셀 주위의 나선 경로를 횡단함으로써 하나 이상의 추가 인접 셀을 식별하는 것을 포함하는, 시스템.
  38. 제31항에 있어서, 각 지리적 셀은 각자의 셀에 의해 나타나는 상기 지리적 영역의 각자의 부분의 지리적 경계를 나타내는 각자의 지리적 경계 정보와 연관되는, 시스템.
  39. 제31항에 있어서, 상기 동작들은, 상기 복수의 지리적 셀을 정의하는 정보 및 상기 하나 이상의 액세스 포인트를 정의하는 정보를 상기 컴퓨터 판독가능 저장 매체 상에 저장하는 것을 더 포함하며, 상기 정보를 저장하는 것은,
    상기 지리적 영역을 상기 복수의 지리적 셀로 분할하는 것;
    상기 지리적 영역 내에 위치하는 하나 이상의 액세스 포인트 및 상기 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보를 수신하는 것;
    상기 하나 이상의 액세스 포인트 각각과 연관된 상기 지리적 위치 정보에 기초하여 상기 복수의 셀 중 상기 하나 이상의 액세스 포인트 각각이 위치하고 있는 지리적 셀을 결정하는 것; 및
    상기 결정하는 것에 응답하여 상기 하나 이상의 액세스 포인트 각각을 각자의 셀 내에 포함하는 것을 포함하는, 시스템.
  40. 제39항에 있어서, 상기 복수의 지리적 셀은 실질적으로 균일한 형상을 갖는, 시스템.
  41. 제39항에 있어서, 상기 하나 이상의 액세스 포인트 각각을 각자의 셀에 포함하는 것은 상기 하나 이상의 액세스 포인트 각각과 연관된 지리적 위치 정보의 해시를 생성하는 것을 포함하는, 시스템.
  42. 제39항에 있어서, 상기 컴퓨터 판독가능 저장 매체는 각각 각자의 셀 내의 상기 하나 이상의 액세스 포인트 각각과 연관된 상기 지리적 위치 정보의 상기 해시를 포함하는 제1 해시 테이블, 및 각각 각자의 셀 내의 상기 하나 이상의 액세스 포인트 각각을 나타내는 해시를 포함하는 제2 해시 테이블을 저장하는, 시스템.
  43. 제31항에 있어서, 상기 지리적 영역은 지구인, 시스템.
  44. 제31항에 있어서, 상기 컴퓨터 시스템은 모바일 디바이스, 무선 핫스팟 디바이스, 또는 랩톱 컴퓨터 중 적어도 하나인, 시스템.
  45. 제31항에 있어서, 상기 지리적 위치 정보는 위도 및 경도를 포함하는, 시스템.
KR1020147022380A 2012-01-13 2013-01-08 무선 네트워크 액세스 포인트를 찾는 방법 KR101598743B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/350,215 2012-01-13
US13/350,215 US8897803B2 (en) 2012-01-13 2012-01-13 Finding wireless network access points
PCT/US2013/020677 WO2013106330A1 (en) 2012-01-13 2013-01-08 Finding wireless network access points

Publications (2)

Publication Number Publication Date
KR20140112545A true KR20140112545A (ko) 2014-09-23
KR101598743B1 KR101598743B1 (ko) 2016-02-29

Family

ID=47678991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022380A KR101598743B1 (ko) 2012-01-13 2013-01-08 무선 네트워크 액세스 포인트를 찾는 방법

Country Status (8)

Country Link
US (1) US8897803B2 (ko)
EP (1) EP2777332A1 (ko)
JP (1) JP5925338B2 (ko)
KR (1) KR101598743B1 (ko)
CN (1) CN104041133A (ko)
AU (1) AU2013208180B2 (ko)
BR (1) BR112014017027A8 (ko)
WO (1) WO2013106330A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160041577A (ko) * 2014-10-08 2016-04-18 주식회사 케이티 지오펜싱 영역 설정 시스템, 방법 및 컴퓨팅 장치

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4125173B2 (ja) * 2003-04-23 2008-07-30 キヤノン株式会社 情報処理装置の接続制御方法、情報処理装置、及びコンピュータプログラム
JP4136771B2 (ja) 2003-04-23 2008-08-20 キヤノン株式会社 通信システム、通信装置、及びその制御方法、並びにコンピュータプログラム
JP4886463B2 (ja) 2006-10-20 2012-02-29 キヤノン株式会社 通信パラメータ設定方法、通信装置及び通信パラメータを管理する管理装置
CN104704523A (zh) * 2012-09-04 2015-06-10 诺基亚技术有限公司 用于基于位置的发布和订阅的方法和装置
WO2014145059A2 (en) 2013-03-15 2014-09-18 Bell Tyler Apparatus, systems, and methods for analyzing movements of target entities
GB2516461A (en) * 2013-07-23 2015-01-28 Here Global Bv Method and apparatus for associating information with access points with compressed identifiers
US9491645B2 (en) * 2013-08-06 2016-11-08 Google Technology Holdings LLC Method and apparatus for wireless network data collection
AU2013400111A1 (en) * 2013-09-13 2016-02-11 Intel Corporation Indoor location determination of access points using mobile device indoor location information
US9326294B2 (en) 2014-07-29 2016-04-26 Aruba Networks, Inc. System and method for grouping and assigning channels in a network system
CN105554774B (zh) * 2014-10-31 2019-04-23 富士通株式会社 无线网络部署方法和装置
US10009715B2 (en) 2015-01-06 2018-06-26 Microsoft Technology Licensing, Llc Geographic information for wireless networks
US11204946B2 (en) * 2015-02-26 2021-12-21 Red Hat, Inc. Finding objects in a key-based data structure by their approximate location
US9635510B1 (en) 2016-06-24 2017-04-25 Athentek Innovations, Inc. Database for Wi-Fi position estimation
WO2019027979A1 (en) 2017-08-03 2019-02-07 Walmart Apollo, Llc SYSTEMS AND METHODS FOR MONITORING NON-PERMANENT INK MARKERS OF RFID TAGS IN RETAIL ESTABLISHMENT THROUGH
AU2018318925B2 (en) * 2017-08-14 2023-05-11 Sensus Spectrum, Llc Methods, systems and computer program products for identifying endpoints in a network
US10728807B1 (en) * 2019-03-04 2020-07-28 Cisco Technology, Inc. Fast roaming and uniform policy for wireless clients with distributed hashing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070167173A1 (en) * 2006-01-19 2007-07-19 Halcrow Michael A Generating and dynamically updating databases of WIFI hotspots locations and performance metrics via location mappers
WO2009029157A1 (en) * 2007-07-26 2009-03-05 Wefi Inc. System and method for mapping wireless access points
EP2173123A1 (en) * 2007-09-14 2010-04-07 Huawei Technologies Co., Ltd. Method for configuring neighbor cell list and corresponding system and apparatus
US20110177831A1 (en) * 2010-01-15 2011-07-21 Huang Ronald K Determining a location of a mobile device using a location database

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7158798B2 (en) * 2003-02-28 2007-01-02 Lucent Technologies Inc. Location-based ad-hoc game services
JP2004350054A (ja) * 2003-05-22 2004-12-09 Casio Comput Co Ltd ネットワーク接続システム、このシステムに用いられる端末装置及びネットワーク接続方法
US8369264B2 (en) * 2005-10-28 2013-02-05 Skyhook Wireless, Inc. Method and system for selecting and providing a relevant subset of Wi-Fi location information to a mobile client device so the client device may estimate its position with efficient utilization of resources
US7848292B2 (en) * 2006-06-29 2010-12-07 Alcatel-Lucent Usa Inc. Method of dynamically populating a neighbor list in a wireless communication system
US20090061892A1 (en) * 2007-08-27 2009-03-05 Via Telecom, Inc. Location assisted connection to femtocell
US20100020776A1 (en) * 2007-11-27 2010-01-28 Google Inc. Wireless network-based location approximation
US9148831B2 (en) * 2008-11-14 2015-09-29 Qualcomm Incorporated GPS-assisted cell selection for mobile devices
US8433334B2 (en) * 2010-01-15 2013-04-30 Apple Inc. Managing a location database for network-based positioning system
JP5488690B2 (ja) * 2010-03-12 2014-05-14 富士通株式会社 通信品質の測定方法、無線基地局及び移動端末、並びに無線通信システム
US8364172B2 (en) * 2010-12-15 2013-01-29 Google Inc. Peer-to-peer location service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070167173A1 (en) * 2006-01-19 2007-07-19 Halcrow Michael A Generating and dynamically updating databases of WIFI hotspots locations and performance metrics via location mappers
WO2009029157A1 (en) * 2007-07-26 2009-03-05 Wefi Inc. System and method for mapping wireless access points
EP2173123A1 (en) * 2007-09-14 2010-04-07 Huawei Technologies Co., Ltd. Method for configuring neighbor cell list and corresponding system and apparatus
US20110177831A1 (en) * 2010-01-15 2011-07-21 Huang Ronald K Determining a location of a mobile device using a location database

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160041577A (ko) * 2014-10-08 2016-04-18 주식회사 케이티 지오펜싱 영역 설정 시스템, 방법 및 컴퓨팅 장치

Also Published As

Publication number Publication date
CN104041133A (zh) 2014-09-10
US8897803B2 (en) 2014-11-25
JP2015509327A (ja) 2015-03-26
EP2777332A1 (en) 2014-09-17
BR112014017027A8 (pt) 2017-07-04
AU2013208180B2 (en) 2015-09-17
US20130183998A1 (en) 2013-07-18
JP5925338B2 (ja) 2016-05-25
BR112014017027A2 (pt) 2017-06-13
AU2013208180A1 (en) 2014-07-17
WO2013106330A1 (en) 2013-07-18
KR101598743B1 (ko) 2016-02-29

Similar Documents

Publication Publication Date Title
KR101598743B1 (ko) 무선 네트워크 액세스 포인트를 찾는 방법
US10817484B2 (en) Apparatus, systems, and methods for providing location information
CA2854874C (en) Method and server for searching for nearby user in social networking services
US20160232179A1 (en) Recommending points of interests in a region
US9430510B2 (en) Computer implemented methods and systems for multi-level geographic query
US8856115B1 (en) Framework for suggesting search terms
CN108256117B (zh) 用于识别与位置相关联的地点的方法、系统和存储介质
CN103927933B (zh) 一种海量移动目标渲染的方法及装置
Pingley et al. A context-aware scheme for privacy-preserving location-based services
Tiwari et al. Information enrichment for tourist spot recommender system using location aware crowdsourcing
US20150227583A1 (en) Managing search results
Eltarjaman et al. Private retrieval of POI details in top-K queries
US10922321B2 (en) Interpreting user queries based on device orientation
US20170277702A1 (en) Interpreting user queries based on nearby locations
RU2610587C2 (ru) Способ пространственного хранения объекта посредством гибкой иерархической структуры и постоянный носитель информации
US10510095B2 (en) Searching based on a local density of entities
Tang et al. Efficient geo-fencing via hybrid hashing: a combination of bucket selection and in-bucket binary search
US10346477B1 (en) Voronoi-based efficient algorithm for range query monitoring for mobile devices and central database servers
US10210272B1 (en) Window query monitoring for mobile devices and central database servers with a tree-like index
Li et al. Quadtree–based management on semantic cache for mobile computing
Sumi Continuous Spatial Query Processing in Mobile Information Systems
CN116628113A (zh) 目标地址确定方法、装置、设备及存储介质

Legal Events

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