KR20160138987A - 오버래핑 지오펜스들의 감소 - Google Patents

오버래핑 지오펜스들의 감소 Download PDF

Info

Publication number
KR20160138987A
KR20160138987A KR1020167028349A KR20167028349A KR20160138987A KR 20160138987 A KR20160138987 A KR 20160138987A KR 1020167028349 A KR1020167028349 A KR 1020167028349A KR 20167028349 A KR20167028349 A KR 20167028349A KR 20160138987 A KR20160138987 A KR 20160138987A
Authority
KR
South Korea
Prior art keywords
geofence
blended
computing device
server
enabled
Prior art date
Application number
KR1020167028349A
Other languages
English (en)
Other versions
KR102267367B1 (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 KR20160138987A publication Critical patent/KR20160138987A/ko
Application granted granted Critical
Publication of KR102267367B1 publication Critical patent/KR102267367B1/ko

Links

Images

Classifications

    • 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/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • G06Q10/0833Tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • H04W4/028
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Economics (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

다양한 실시형태들은 동일한 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑/지리적으로 가까운 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위한 시스템들 및 방법들을 제공한다. 각각의 지오펜스-인에이블드 애플리케이션은 블렌딩된 지오펜스를 모니터링할 수도 있어서, 컴퓨팅 디바이스가 블렌딩된 지오펜스를 만족할 때 블렌딩된 지오펜스가 만족되었다는 것을 복수의 지오펜스-인에이블드 애플리케이션들이 동시에 또는 거의 동시에 검출할 수도 있다. 따라서, 복수의 지오펜스-인에이블드 애플리케이션들 각각이 블렌딩된 지오펜스가 횡단될 때를 동시에 또는 거의 동시에 검출하기 때문에 복수의 지오펜스-인에이블드 애플리케이션 각각은 동시에 위치-감지 라디오들의 출력을 소비하거나 및/또는 지오펜스 서버와 통신할 수도 있다. 따라서, 복수의 지오펜스-인에이블드 애플리케이션의 지오펜스 영역들을 블렌딩하는 것에 의해, 다양한 실시형태들은 배터리 수명을 개선시키거나 및/또는 정확도의 작은 감소에 대해 리소스들을 절약하여 컴퓨팅 디바이스에 대한 전체 사용자 경험이 개선되도록 할 수도 있다.

Description

오버래핑 지오펜스들의 감소{REDUCING OVERLAPPING GEOFENCES}
현재, 컴퓨팅 디바이스들 상에서 동작하는 많은 애플리케이션들 (예를 들어, 스마트 폰, 태블릿 컴퓨터, 글로벌 포지셔닝 시스템 ("Global Positioning System; GPS") 컴퓨팅 디바이스, PDA 등) 및 컴퓨팅 디바이스들이 내부에 내장된 대형 시스템들 (예를 들어, 차량들, 비행기들, 트럭들, 보트들 등) 은, "지오펜스 (geofence) 들" 로서 보통 알려진 미리 결정된 영역 또는 영역들에 컴퓨팅 디바이스가 진입하거나, 그 내측에 잔류하거나, 이탈하거나 및/또는 없을 때 컴퓨팅 디바이스의 위치를 추적하고 컴퓨팅 디바이스의 현재 위치에 특정된 정보를 사용자에게 알리는 능력을 포함한다.
용어 "지오펜스" 는, 만족되었을 때, 일부의 연관된 기능성 (예를 들어, 그 장소에의 사용자의 존재를 기록하는 것, 정보를 푸시하는 것, 경보를 전송하는 것, 액션 또는 애플리케이션을 트리거링하는 것 등) 을 개시하는 위치, 영역, 또는 경계를 정의하는 지리적 좌표들의 세트를 지칭한다. 지오펜스는 좌표들 사이의 복잡한 다각형들 또는 라인들로 이루어질 수 있고, 그에 따라 용어 "지오펜스" 는 2D 또는 3D 영역 또는 주변을 정의하기 위해 주변, 중심 포인트 플러스 반경, 벡터 공간, 및 임의의 다른 데이터 구조를 정의하는 포인트들 또는 좌표들의 세트들일 수도 있다. 지오펜스는 위도, 경도, 및 고도 값들에 의해 정의된 포인트들에 의해 특정될 수도 있지만, 이 포인트들은 또한 거리 주소, 도로들의 교차점들 등에 의해서도 정의될 수도 있다.
다양한 보안, 광고, 자산 추적, 재고 통제 (inventory control), 및 컴퓨팅 디바이스 상에서 동작하는 다양한 다른 애플리케이션들 또는 지오-기반 시스템들 (본 명세서에서 "지오펜스-인에이블드 애플리케이션 (geofence-enabled application) 들" 이라고 지칭됨) 에서 지오펜스들이 구현될 수도 있다. 예를 들어, 사용자의 스마트폰 상의 영화관용 지오펜스-인에이블드 애플리케이션은, 그 영화관을 포함하고 쇼핑 몰의 전체 영역 또는 부분들을 포함하는 지오펜스를 갖는 그 쇼핑 몰로 사용자가 걸어갈 때 사용자에게 할인된 티켓 가격들을 알릴 수도 있다.
지오펜스 경계들 및 서비스들은 지오펜스 서버에 의해 제공될 수도 있는데, 그 예는 퀄컴에 의해 지원되는 Gimbal® 서버이다. 지오펜스-인에이블드 애플리케이션은 지오펜스 서버로부터 인근의 지오펜스(들) 의 지리적 특성들/위치를 수신한다. 컴퓨팅 디바이스 상에서 실행하는 동안, 지오펜스-인에이블드 애플리케이션은 계속적으로 그의 위치를 - 예를 들어, 컴퓨팅 디바이스의 GPS 수신기를 통해 및/또는 Wi-Fi (예를 들어, 미리 맵핑된 Wi-Fi 액세스 포인트 위치들) 및/또는 셀룰러 연결들 (예를 들어, 미리 맵핑된 셀 타워 위치들) 을 통해 - 결정하고 그의 위치를 알려진 지오펜스들의 위치와 비교하여 지오펜스 기준 (예를 들어, 지오펜스에 진입하는 것, 지오펜스를 이탈하는 것, 지오펜스 경계를 횡단하는 것 등) 이 만족되는지 여부를 결정한다. 지오펜스-인에이블드 애플리케이션이 지오펜스 기준이 만족되었다고 결정할 때, 그 애플리케이션은 지오펜스 서버로의 통신을 개시하여 서버에게 지오펜스 이벤트를 통지할 수도 있거나, 또는 그 애플리케이션은 그 지오펜스를 로컬로 소비할 수도 있다. 서버에 전송되었을 때, 지오펜스 서버는 컴퓨팅 디바이스에게 일부 적절한 콘텐츠 (예를 들어, 광고 또는 쿠폰) 또는 명령들을 전송하거나, 및/또는 그 위치에서의 지오펜스들의 업데이트된 리스트를 전송한다. 컴퓨팅 디바이스 상에서 로컬로 소비되었을 때, 지오펜스-인에이블드 애플리케이션은 컴퓨팅 디바이스 상에서 이미 콘텐츠를 사용자에게 제시할 수도 있거나 (예를 들어, 위치에 관련된 캐싱된 콘텐츠, 기존 콘텐츠의 재소팅, 캐싱된 광고 등) 및/또는 콘텐츠에 대해 콘텐츠 서버에 질의할 수도 있다.
다양한 실시형태들은 동일한 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑/지리적으로 가까운 지오펜스들을 단일의 블렌딩된 지오펜스 (blended geofence) 에 결합하기 위한 시스템들 및 시스템에서 구현되는 방법들을 제공한다. 일 실시형태에서, 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 블렌딩된 지오펜스를 모니터링할 수도 있어서, 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때 블렌딩된 지오펜스가 만족되었다는 것을 하나 이상의 지오펜스-인에이블드 애플리케이션들이 동시에 또는 거의 동시에 검출할 수도 있다. 따라서, 하나 이상의 애플리케이션들 각각이 블렌딩된 지오펜스가 만족될 때를 동시에 또는 거의 동시에 검출하기 때문에 하나 이상의 지오펜스-인에이블드 애플리케이션 각각은 지오펜스 서버와 동시에 통신할 수도 있다. 따라서, 지오펜스-인에이블드 애플리케이션의 지오펜스 영역들 중 하나 이상을 블렌딩하는 것에 의해, 다양한 실시형태들은 지오펜스 서버와 통신하기 위해 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 필요한 데이터, 위치 감지, 및/또는 프로세싱 리소스들의 전체량을 감소시켜서, 그에 의해 컴퓨팅 디바이스에 대한 전체 사용자 경험 및 배터리 수명을 개선시킬 수도 있다.
실시형태의 방법들은 소프트웨어로 구현될 수도 있고, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버에 의해 실행될 수도 있다. 추가 실시형태들에서, 실시형태의 방법들은 지오펜스 서버 및/또는 컴퓨팅 디바이스 상의 하드웨어로 (예를 들어, 하드웨어 컴포넌트 또는 시스템-온-칩의 형태로) 구현될 수도 있다.
일 실시형태에서, 동일한 컴퓨팅 디바이스 상에서 동작하는 다수의 지오펜스-인에이블드 애플리케이션들에게 블렌딩된 지오펜스를 제공하는 것은 지오펜스 서버에 의해 달성될 수도 있다. 지오펜스 서버는 컴퓨팅 디바이스 상에서 동작하는 모든 지오펜스-인에이블드 애플리케이션들에게 알릴 수도 있고, 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 가깝게 근접하거나 또는 오버래핑되는 지오펜스들을 식별하기 위해 이 정보를 이용할 수도 있다. 지오펜스 서버는 또한 인접하거나 및/또는 오버래핑되는 것으로 결정된 이들 지오펜스들 중 일부 또는 전부를 포함하는 단일의 블렌딩된 지오펜스를 도출할 수도 있다. 다른 실시형태에서, 지오펜스 서버는, 블렌딩된 지오펜스에 관한 정보를, 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각에게 제공하여, 그에 의해 이들 하나 이상의 애플리케이션들로 하여금 공통 지오펜스 영역을 공유하게 할 수도 있다.
일 실시형태에서, 지오펜스 서버는 예컨대 모바일 컴퓨팅 디바이스의 현재 위치에서 함께 지리적으로 가까운 지오펜스들을 결정하고 이들 지오펜스들을 함께 블렌딩하는 것에 의해, 모바일 컴퓨팅 디바이스의 현재 위치에 기초하여 지오펜스들을 블렌딩된 지오펜스들에 결합할 수도 있다. 대안적인 실시형태에서, 지오펜스 서버는 더 일반적으로는, 모바일 디바이스의 현재 위치와 관계없이, 지오펜스들을 블렌딩된 지오펜스들에 결합할 수도 있다. 구체적으로는, 지오펜스 서버는 컴퓨팅 디바이스의 현재 위치에 상관없이 서로 지리적으로 가까운 것으로 결정되는 지오펜스들의 그룹들로부터 블렌딩된 지오펜스들을 생성하도록 구성될 수도 있다. 따라서, 이러한 실시형태들에서, 지오펜스 서버는 다양한 지리적 영역들 (예를 들어, 국가의 전체 구역 또는 주 (state)) 에 대한 전량 (full complement) 의 블렌딩된 지오펜스들을 미리 주기적으로 생성 및 저장할 수도 있고, 필요에 따라, 예컨대 업데이트된 지오펜스 정보에 대한 요구를 수신한 것에 응답하여 또는 선제적으로 컴퓨팅 디바이스에 전송된 "푸시된" 데이터의 형태로 이들 저장된 블렌딩된 지오펜스들 중 하나 이상을 컴퓨팅 디바이스에 전송할 수도 있다.
추가 실시형태들에서, 동일한 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-애플리케이션들에 대한 공통의 블렌딩된 지오펜스를 생성하는 동작들은 실시형태의 방법들의 동작들을 수행하도록 프로세서 실행가능 명령들로 구성된 컴퓨팅 디바이스 프로세서에 의해 달성될 수도 있다. 이러한 실시형태들에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는, 예컨대 지오펜스-인에이블드 애플리케이션들 그 자체로부터 또는 지오펜스 서버로부터, 지오펜스-인에이블드 애플리케이션들 각각에 대한 지오펜스들에 관한 정보를 수신할 수도 있다. 이 정보를 이용하여, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 이들 지오펜스-인에이블드 애플리케이션들 중 하나 이상에 대한 지오펜스들을 단일의 블렌딩된 지오펜스에 재도출/결합할 수도 있고, 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 각각에 블렌딩된 지오펜스를 전송할 수도 있다.
다른 실시형태에서, 컴퓨팅 디바이스 상의 지오펜스 관리 유닛을 실행하는 프로세서는 모바일 컴퓨팅 디바이스의 현재 위치와 관계없이 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스들 (또는 모든 이용가능한 블렌딩된 지오펜스들의 특정 서브세트) 을 주기적으로 생성 및 저장할 수도 있다. 따라서, 추가 실시형태에서, 컴퓨팅 디바이스 상의 애플리케이션으로부터 업데이트된 지오펜스 정보에 대한 요구를 수신한 것에 응답하여 또는 자체적으로, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션과 연관된 저장된 블렌딩된 지오펜스에 빨리 액세스할 수도 있고, 저장된 블렌딩된 지오펜스를 그 애플리케이션에 전송할 수도 있다. 다시 말해, 지오펜스 관리 유닛을 실행하는 프로세서는 지오펜스-인에이블드 애플리케이션들에 대해 미리 생성된 블렌딩된 지오펜스들을 준비할 수도 있고, 필요 또는 요구에 따라 이들 미리 만들어진 블렌딩된 지오펜스들을 애플리케이션들에 전송할 수도 있다.
다른 실시형태에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-인에이블드 애플리케이션들 대신에 프록시 지오펜스 서버로서 기능할 수도 있다. 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들의 리스트를 지오펜스 서버에 전송할 수도 있고, 이에 응답하여 블렌딩된 지오펜스를 수신할 수도 있다. 지오펜스 관리 유닛은 또한 (예를 들어, GPS 를 통해) 컴퓨팅 디바이스의 위치를 모니터링하여 블렌딩된 지오펜스가 횡단된 때를 검출할 수도 있다. 블렌딩된 지오펜스가 횡단될 때, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는, 블렌딩된 지오펜스 기준이 만족된다는 통지를, 그 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는, 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있다. 지오펜스 관리 유닛은 또한 지오펜스 서버에 통지를 전송할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 지오펜스 애플리케이션들 각각에 블렌딩된 지오펜스를 전송할 수도 있고, 이들 지오펜스-인에이블드 애플리케이션들은 그 후에, 이들이 블렌딩된 지오펜스를 지오펜스 서버로부터 직접 수신한 것처럼 동작할 수도 있다.
일 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버는 지리적으로 가까운 지오펜스들이 이들 지오펜스들을 결합하기 전에 블렌딩하기에 "적합" 한지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버는 (예를 들어, 지오펜스들의 형상들, 사이즈들, 관련 메타데이터 등에 기초하여) 지오펜스들을 블렌딩하는 것이 기본 지오펜스-인에이블드 애플리케이션들의 위치-기반 서비스들을 실질적으로 저하시키는 블렌딩된 지오펜스를 발생시킬지 여부를 평가하도록 지리적으로 가까운 지오펜스들의 분석을 수행할 수도 있다.
다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버는 지리적으로 가까운 지오펜스들이 이들이 연관된 지오펜스-인에이블드 애플리케이션들에 의해 블렌딩되도록 허용되는지 여부를 결정할 수도 있다. 예를 들어, 특정 지오펜스-인에이블드 애플리케이션에 대한 지오펜스를 정의하는 프로세스 동안, 지오펜스-인에이블드 애플리케이션의 개발자는 그 지오펜스가 다른 지오펜스와 블렌딩되지 않을 수도 있다는 것을 특정할 수도 있다. 추가 예에서, 지오펜스-인에이블드 애플리케이션은 그 애플리케이션과 연관된 하나 이상의 지오펜스들이 블렌딩되도록 허용되는지 여부를 지오펜스 서버 및/또는 컴퓨팅 디바이스 프로세서에 나타내는 플래그 또는 다른 값을 포함할 수도 있다.
다른 실시형태는 컴퓨팅 디바이스가 그 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블 애플리케이션들의 리스트를 지오펜스 서버에 전송하는 상술된 컴퓨팅 디바이스 및 지오펜스 서버를 포함하는 시스템이고, 지오펜스 서버는 상술된 바와 같이 블렌딩된 지오펜스를 생성하고, 상술된 바와 같이 컴퓨팅 디바이스 상에서 실행하는 지오펜스 관리 유닛에 의한 이용을 위해 블렌딩된 지오펜스를 다시 컴퓨팅 디바이스에 전송한다.
본 명세서에 포함되고 이 명세서의 부분을 구성하는 첨부 도면들은 본 발명의 예시적인 실시형태들을 예시하고, 위에 제공된 일반적 설명 및 아래에 제공된 상세한 설명과 함께, 본 발명의 피처들을 설명하도록 기능한다.
도 1 은 다양한 양태들에서의 이용에 적합한 예시적인 통신 시스템의 네트워크 컴포넌트들을 예시하는 통신 시스템 블록 다이어그램이다.
도 2 는 애플리케이션 개발자, 지오펜스 서버, 및 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션 사이의 통상적인 시그널링 및 호 플로우이다.
도 3a 는 일 위치에서 상이한 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑 지오펜스들의 예시이다.
도 3b 는 일 실시형태에 따른, 일 위치에서 다수의 오버래핑 지오펜스들로부터 생성된 블렌딩된 지오펜스의 예시이다.
도 4a 는 컴퓨팅 디바이스의 현재 위치에 기초하여 컴퓨팅 디바이스 상에서 동작하는 리포팅 애플리케이션에 대해 지오펜스 서버 상에서 블렌딩된 지오펜스를 생성하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 4b 는 컴퓨팅 디바이스에 대해 지오펜스 서버 상에서 블렌딩된 지오펜스를 생성하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 5 는 리포팅 애플리케이션과 연관된 컴퓨팅 디바이스를 지오펜스 서버에 등록하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 6 은 블렌딩된 지오펜스 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할지 여부를 결정하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 7a 및 도 7b 는 현재 위치와 연관된 블렌딩된 지오펜스를 생성 및 저장하고 현재 위치와 연관된 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램들이다.
도 8 은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대한 블렌딩된 지오펜스들을 결정, 생성, 및/또는 관리하도록 구성된 일 실시형태의 컴퓨팅 디바이스에서의 예시적인 논리 컴포넌트들 및 정보 플로우들을 예시하는 블록 다이어그램이다.
도 9a 는 컴퓨팅 디바이스의 현재 위치에 기초하여 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 9b 는 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 전송하기 위한 다른 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 10a 는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들 대신에 블렌딩된 지오펜스가 만족될 때를 지오펜스 서버에게 통지하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 10b 는 지오펜스 서버로부터 수신된 블렌딩된 지오펜스가 횡단될 때에 대해 모니터링하고 그것을 리포팅하기 위해 컴퓨팅 디바이스 상에서 프록시 서버 애플리케이션을 구현하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 11 은 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에게 블렌딩된 지오펜스를 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 12 는 컴퓨팅 디바이스 상에서 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 13 은 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할지 여부를 결정하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 14a 및 도 14b 는 지오펜스 관리 유닛으로 컴퓨팅 디바이스의 현재 위치와 연관된 블렌딩된 지오펜스를 생성 및 저장하고 현재 위치와 연관된 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램들이다.
도 15a 내지 도 15c 는 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 예시들이다.
도 16 은 일 실시형태에서의 이용에 적합한 컴퓨팅 디바이스의 컴포넌트 블록 다이어그램이다.
도 17 은 일 양태에서의 이용에 적합한 네트워크 서버 컴퓨팅 디바이스의 컴포넌트 블록 다이어그램이다.
다양한 실시형태들이 첨부 도면들을 참조하여 상세히 설명될 것이다. 가능하다면 어디서든지, 동일한 참조 부호들이 도면들 전반에 걸쳐 사용되어 동일하거나 유사한 부분들을 지칭할 것이다. 특정 예들 및 구현들에 대해 이루어진 언급들은 예시적인 목적들을 위한 것이며, 청구항들 또는 본 발명의 범위를 제한하려고 의도된 것이 아니다.
다수의 상이한 셀룰러 및 모바일 통신 서비스들 및 표준들은 장래에 이용가능하거나 또는 고려되고, 이들 모두는 다양한 실시형태들을 구현하고 이 다양한 양태들로부터 이익을 얻을 수도 있다. 이러한 서비스들 및 표준들은, 예를 들어, 제 3 세대 파트너십 프로젝트 (3GPP), 롱 텀 에볼루션 (LTE) 시스템들, 제 3 세대 무선 모바일 통신 기술 (3G), 제 4 세대 무선 모바일 통신 기술 (4G), 모바일 통신들을 위한 글로벌 시스템 (GSM), 범용 모바일 전기통신 시스템 (UMTS), 3GSM, 일반 패킷 무선 서비스 (GPRS), 코드 분할 다중 액세스 (CDMA) 시스템들 (예를 들어, cdmaOne), GSM 진화를 위한 인핸스드 데이터 레이트들 (enhanced data rates for GSM evolution; EDGE), 진보된 모바일 폰 시스템 (advanced mobile phone system; AMPS), 디지털 AMPS (IS-136/TDMA), 진화-데이터 최적화 (evolution-data optimized; EV-DO), 디지털 인핸스드 코드리스 전기통신 (digital enhanced cordless telecommunications; DECT), 마이크로파 액세스를 위한 전세계적 상호운용성 (Worldwide Interoperability for Microwave Access; WiMAX), 무선 로컬 영역 네트워크 (WLAN), Wi-Fi 보호된 액세스 I & II (WPA, WPA2), 및 통합된 디지털 인핸스드 네트워크 (integrated digital enhanced network; iden) 를 포함한다. 이들 기술들 각각은, 예를 들어, 음성, 데이터, 시그널링, 및/또는 콘텐츠 메시지들의 송신 및 수신을 수반한다. 산업적 전기통신 표준 또는 기술에 관련된 전문용어 및/또는 기술적 상세들에 대한 임의의 언급들은 오직 예시적인 목적들을 위한 것이고, 청구항 언어에서 구체적으로 인용되지 않는다면 청구항들의 범위를 특정 통신 시스템 또는 기술로 제한하도록 의도된 것이 아니라는 것이 이해되어야 한다.
본 명세서에서 용어 "컴퓨팅 디바이스" 는 셀룰러 전화기들, 스마트폰들, 퍼스널 또는 모바일 멀티미디어 플레이어들, 개인 휴대 정보 단말기 (PDA) 들, 랩톱 컴퓨터들, 태블릿 컴퓨터들, 스마트북들, 차량 컴퓨팅 시스템들, 지상, 해상 및 항공 내비게이션 시스템들, 울트라북들, 팜탑 컴퓨터들, 무선 전자 메일 수신기들, 멀티미디어 인터넷 인에이블드 셀룰러 전화기들, 무선 게이밍 제어기들, 그리고 메모리, 프로그래밍가능 프로세서, 및 현재 위치를 결정하는 GPS 수신기 또는 다른 수단을 포함하는 유사한 퍼스널 전자 컴퓨팅 디바이스들 중 임의의 하나 또는 전부를 지칭한다. 용어 "컴퓨팅 디바이스" 는 또한, 자전거들, 자동차들, 오토바이들, 항공기, 보트들, 선박들 등 내에 통합된 내비게이션 시스템들 및/또는 컴퓨팅 시스템들과 같은, 대형 컴퓨팅 디바이스들 또는 차량들 내에 포함되는 현재 위치를 결정하기 위한 프로세서 및 수단이 내장된 컴퓨팅 디바이스들을 포함한다.
본 명세서에서 용어 "지오펜스-인에이블드 애플리케이션 (geofence-enabled application)" 은 지오펜싱을 포함하는 위치-기반 서비스들에 참여하거나 또는 활용할 수도 있는 컴퓨팅 디바이스 상에서 동작하는 애플리케이션을 지칭한다. 다양한 실시형태들에서, 지오펜스-인에이블드 애플리케이션은 하나 이상의 지오펜스들에 관한 정보 (예를 들어, 지오펜스들의 형상, 영역, 주변 등) 를 지오펜스 서버 및/또는 지오펜스 관리 유닛으로부터 수신할 수도 있고, 일 양태에서, 지오펜스-인에이블드 애플리케이션은 이러한 정보를 이용하여 특정 영역에서의 하나 이상의 지오펜스들을 모니터링하여 그의 컴퓨팅 디바이스가 이들 지오펜스들의 경계를 횡단하거나 또는 이들 지오펜스들 중 하나를 만족시킬 때를 결정할 수도 있다.
각각의 지오펜스-인에이블드 애플리케이션을 별도로 다루는 것은 일반적인 관행인데, 이는 그 애플리케이션의 지오펜스 경계가 컴퓨팅 디바이스 상의 다른 지오펜스-인에이블드 애플리케이션들과 연관된 하나 이상의 다른 지오펜스 경계들에 가깝게 근접하거나 또는 오버래핑되는지 여부에 상관없이 그의 지오펜스 경계가 만족되었는지 여부를 결정하기 위해 컴퓨팅 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션이 요구될 수도 있다는 것을 의미한다. 가깝게 근접한 지오펜스 영역들을 핸들링하기 위한 이러한 일관성없는 접근법의 결과로서, 종래의 컴퓨팅 디바이스는 많은 인근의 그리고 오버래핑 지오펜스들이 존재하는 영역에 진입할 때 보다 높은 배터리 방전과 같은 상당한 성능 감소를 경험하는데, 이는 컴퓨팅 디바이스가 인근의 또는 오버래핑 지오펜스들을 동시에 추적하고 횡단된 각각의 지오펜스에 대해 지오펜스 서버와 통신해야 하기 때문이다. 이러한 상황은 또한, 애플리케이션에 대한 애플리케이션 개발자가 몇몇 오버래핑 또는 인근 지오펜스들을 도출할 때 단일의 지오펜스-인에이블드 애플리케이션에 영향을 미칠 수도 있다.
개요에서, 다양한 실시형태들은 동일한 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑/지리적으로 가까운 지오펜스들을 단일의 블렌딩된 지오펜스 (blended geofence) 에 결합하기 위한 시스템들 및 시스템에서 구현되는 방법들을 제공한다. 일 실시형태에서, 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 블렌딩된 지오펜스를 모니터링할 수도 있어서, 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때 블렌딩된 지오펜스가 만족되었다는 것을 하나 이상의 지오펜스-인에이블드 애플리케이션들이 동시에 또는 거의 동시에 검출할 수도 있다. 따라서, 하나 이상의 애플리케이션들 각각이 블렌딩된 지오펜스가 만족될 때를 동시에 또는 거의 동시에 검출하기 때문에 하나 이상의 지오펜스-인에이블드 애플리케이션 각각은 지오펜스 서버와 동시에 통신할 수도 있다. 따라서, 지오펜스-인에이블드 애플리케이션의 지오펜스 영역들 중 하나 이상을 블렌딩하는 것에 의해, 다양한 실시형태들은 지오펜스 서버와 통신하기 위해 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 필요한 데이터, 위치 감지, 및/또는 프로세싱 리소스들의 전체량을 감소시켜서, 그에 의해 컴퓨팅 디바이스에 대한 전체 사용자 경험 및 배터리 수명을 개선시킬 수도 있다.
실시형태의 방법들은 소프트웨어로 구현되고 지오펜스 서버에 의해 실행될 수도 있다. 추가 실시형태들에서, 실시형태의 방법들은 하드웨어 컴포넌트 또는 시스템-온-칩의 형태로 하드웨어로 구현될 수도 있다.
일 실시형태에서, 동일한 컴퓨팅 디바이스 상에서 동작하는 다수의 지오펜스-인에이블드 애플리케이션들에게 블렌딩된 지오펜스를 제공하는 것은 지오펜스 서버 내에서 달성될 수도 있다. 지오펜스 서버는 컴퓨팅 디바이스 상에서 동작하는 모든 지오펜스-인에이블드 애플리케이션들 (예를 들어, 지오펜스 서버에 등록된 모든 애플리케이션들) 에게 알릴 수도 있고, 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 가깝게 근접하거나 또는 오버래핑되는 지오펜스들을 식별하기 위해 이 정보를 이용할 수도 있다. 지오펜스 서버는 이 정보를 이용하여 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대한 인접한 그리고 오버래핑 지오펜스들 중 일부 또는 전부를 포함하는 단일의 블렌딩된 지오펜스를 도출할 수도 있다.
다른 실시형태에서, 지오펜스 서버는, 블렌딩된 지오펜스에 관한 정보를, 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각에게 제공하여, 그에 의해 하나 이상의 애플리케이션들로 하여금 공통 지오펜스 영역을 공유하게 할 수도 있다. 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각이 공통 지오펜스 영역을 공유하기 때문에, 각각의 애플리케이션은 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였다는 것을 동시에 또는 거의 동시에 검출하여, 컴퓨팅 디바이스를 인에이블시켜서 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각에 대해 블렌딩된 지오펜스를 만족시킨 것을 지오펜스 서버에 동시에 또는 거의 동시에 리포팅할 수도 있다. 그 결과, 컴퓨팅 디바이스는 덜 빈번하게 지오펜스 서버와 통신하거나 및/또는 위치를 감지하려고 시도하여, 그에 의해 시스템 리소스들 및 배터리 전력을 절약할 수도 있다.
일 실시형태에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션 (즉, "리포팅 애플리케이션") 으로부터 지오펜스 횡단 통지를 수신한 것에 응답하여, 지오펜스 서버는, 리포팅 애플리케이션의 컴퓨팅 디바이스 상에서, 컴퓨팅 디바이스의 현재 위치에 근접하게 가까운 (예를 들어, 오버래핑되는) 지오펜스-인에이블드 애플리케이션들 중 하나 이상과 연관된 지오펜스들을 결정할 수도 있다. 지오펜스 서버는 이들 지오펜스들을 단일의 블렌딩된 지오펜스 영역에 결합/재도출할 수도 있고, 지오펜스 서버는 블렌딩된 지오펜스에 대한 정보를 리포팅 애플리케이션에 전송할 수도 있다. 지오펜스 서버는 동시에 또는 추후에 동일한 블렌딩된 지오펜스 정보를 동일한 컴퓨팅 디바이스 상의 다른 지오펜스-인에이블드 애플리케이션들에게 전송하여, 그에 의해 결국에는, 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각이 공통 지오펜스 (즉, 블렌딩된 지오펜스) 를 모니터링한다는 것을 보장할 수도 있다. 따라서, 이러한 실시형태들은 컴퓨팅 디바이스가 지오펜스 서버와 통신하거나 및/또는 그의 컴퓨팅 디바이스의 위치를 감지하려고 시도해야 하는 시간량을 감소시킬 수도 있는데, 이는, 결국에는, 하나 이상의 지오펜스-인에이블드 애플리케이션들이 블렌딩된 지오펜스를 동시에 횡단하고 이들 횡단들을 지오펜스 서버에 동시에 또는 거의 동시에 리포팅할 수도 있기 때문이다.
일 실시형태에서, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들의 가깝게 근접한 지오펜스들 또는 오버래핑 지오펜스들을 블렌딩하기 위한 다양한 전략들을 구현할 수도 있다. 일 실시형태에서, 지오펜스 서버는 오버래핑/가까운 근접도의 지오펜스들을 다양한 형상들로 결합할 수도 있다. 예를 들어, 지오펜스 서버는 지오펜스 주변들에 기초하여 결합된 형상을 형성하거나, 개개의 지오펜스들을 캡슐화하는 보다 큰 지오펜스를 생성하거나, 및/또는 결합된 지오펜스들의 가중된 평균 형상을 결정할 수도 있다. 가중치들은 펜스를 위반할 확률, 펜스의 사이즈, 유스 케이스 (use case) 에 대해 요구된 정확도, 유스 케이스에 대해 요구된 배터리 절약 등을 포함할 수도 있다.
추가 실시형태들에서, 동일한 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-애플리케이션들에 대한 공통의 블렌딩된 지오펜스를 생성하는 동작들은 실시형태의 방법들의 동작들을 수행하도록 프로세서 실행가능 명령들로 구성된 컴퓨팅 디바이스 프로세서에 의해 달성될 수도 있다. 이 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-인에이블드 애플리케이션들 대신에 프록시 지오펜스 서버로서 작용하도록 컴퓨팅 디바이스 상에서 실행할 수도 있다. 이 실시형태에서, 지오펜스 관리 유닛은, 지오펜스-인에이블드 애플리케이션들 그 자체로부터, 또는 지오펜스 서버로부터, 지오펜스-인에이블드 애플리케이션들 각각에 대한 현재 위치에서의 지오펜스들에 관한 정보를 수신할 수도 있다. 이 정보를 이용하여, 지오펜스 관리 유닛은, 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대한 현재 위치에서의 지오펜스들을 단일의 블렌딩된 지오펜스에 재도출/결합할 수도 있다.
일 실시형태에서, 컴퓨팅 디바이스의 프로세서 상에서 실행하는 지오펜스 관리 유닛은 컴퓨팅 디바이스의 위치를 모니터링하여 블렌딩된 지오펜스가 횡단될 때를 검출할 수도 있다. 블렌딩된 지오펜스가 횡단될 때, 지오펜스 관리 유닛은, 지오펜스 기준이 만족된다는 통지를, 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있다. 지오펜스 관리 유닛은 또한 지오펜스 서버에 통지를 전송할 수도 있다. 이것은 각각의 애플리케이션을 인에이블시켜서 그것이 그 자신의 지오펜스가 횡단되었다는 것을 결정한 것처럼 독립적으로 작용할 수도 있다. 지오펜스 관리 유닛이 지오펜스-인에이블드 애플리케이션들에게 동시에 통지하므로, 지오펜스 서버로의 단일 연결이 확립되어 애플리케이션들 전부를 지원할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛은 재도출된 지오펜스를 컴퓨팅 디바이스 상의 다른 지오펜스 애플리케이션들 각각에게 전송할 수도 있고, 이 다른 지오펜스 애플리케이션들은 그 후에, 이들이 블렌딩된 지오펜스를 지오펜스 서버로부터 수신한 것처럼 상술된 바와 같이 동작할 수도 있다.
일 실시형태에서, 지오펜스 관리 유닛은 독립형 애플리케이션 또는 소프트웨어 서비스로서 또는 오퍼레이팅 시스템의 부분으로서 구현되거나 또는 컴퓨팅 디바이스에서 특수화된 하드웨어에서 (예를 들어, GPS 칩 내측에서) 구현되는 것 등이 있을 수도 있다.
다양한 실시형태들은 도 1 에 예시되는 예시적인 통신 시스템 (100) 과 같은 다양한 통신 시스템들 내에서 구현될 수도 있다. 통신 시스템 (100) 은 다양한 기법들을 이용하여 자신의 위치를 결정하도록 구성될 수도 있는 컴퓨팅 디바이스 (102) 를 포함할 수도 있다.
일 실시형태에서, 컴퓨팅 디바이스 (102) 는 GPS 위성들 (104) 로부터 무선 통신물들 (118) 을 수신하도록 구성된 GPS 칩셋을 포함할 수도 있고, 이들 수신된 통신물들 (118) 에 기초하여 그의 현재 위치 정보를 결정할 수도 있다. 컴퓨팅 디바이스 (102) 는 또한 지원된 GPS (A-GPS) 기능성을 포함할 수도 있다.
다른 실시형태에서, 컴퓨팅 디바이스 (102) 는 그의 현재 위치를 결정하기 위한 다양한 알려진 로컬 포지셔닝 시스템들, 예컨대 Wi-Fi 포지셔닝 시스템 또는 모바일-네트워크-기반 포지셔닝 시스템을 활용할 수도 있다. 예를 들어, 컴퓨팅 디바이스 (102) 는 무선 연결 (120) 을 통해 (도 1 에서 무선 액세스 포인트 (108) 로서 예시된) 무선 액세스 포인트들과 통신할 수도 있고, 컴퓨팅 디바이스 (102) 는 무선 액세스 포인트 (108) 의 알려진 위치에 기초하여 그의 현재 위치를 결정할 수도 있다. 다른 예에서, 컴퓨팅 디바이스 (102) 는 이와 유사하게, 위치가 알려진 기지국으로부터 (예컨대 기지국 (106) 으로부터) 수신된 무선 신호들 (122) 에 기초하여 그의 현재 위치를 결정할 수도 있다.
컴퓨팅 디바이스 (102) 는 또한 GPS 와 로컬-포지셔닝 시스템들의 조합을 이용하여 컴퓨팅 디바이스 (102) 가 그의 위치를 결정하는 하이브리드-포지셔닝 시스템들을 활용할 수도 있다. GPS 가 개방된 영역들에서는 더 정밀할 수도 있지만 실내들에서 또는 고층 빌딩들 사이에서는 열악하게 작동할 수도 있기 때문에, 컴퓨팅 디바이스 (102) 는 하나 이상의 다른 포지셔닝 기술들, 예컨대 셀 타워 신호들, 무선 인터넷 신호들, 블루투스 비콘들, 또는 다른 로컬 포지셔닝 시스템들과 조합하여 GPS 를 활용하여 GPS 단독으로 이용하는 것의 제한들을 극복하도록 구성될 수도 있다. 예를 들어, 컴퓨팅 디바이스 (102) 는, 빌딩들 또는 악천후에 의해 방해받지 않는, 셀 타워 신호들에 기초한 로컬-포지셔닝 시스템들을 이용할 수도 있다. 다른 예에서, 컴퓨팅 디바이스 (102) 는 높은 Wi-Fi 밀도를 갖는 도시 영역들에서 매우 정확한 포지셔닝을 부여하기 위해 GPS 에 부가적으로 Wi-Fi 포지셔닝 시스템들을 레버리징할 수도 있다.
컴퓨팅 디바이스 (102) 는 인터넷 (112) 에 연결하도록 구성될 수도 있다. 예를 들어, 컴퓨팅 디바이스 (102) 는 Wi-Fi 액세스 포인트와 같은 무선 액세스 포인트 (108) 를 통해 확립된 무선 연결 (120) 을 통해 인터넷 (112) 에 연결하도록 구성될 수도 있다. 무선 액세스 포인트 (108) 는 유선 연결 (124) 을 통해 인터넷 (112) 과 연결할 수도 있다. 부가적으로, 컴퓨팅 디바이스 (102) 및 셀룰러 타워 또는 기지국 (106) 은 CDMA, TDMA, GSM, PCS, 3G, 4G, LTE, 또는 임의의 다른 타입의 셀룰러 연결일 수도 있는 셀룰러 연결 (122) 을 통해 데이터를 교환할 수도 있다. 셀룰러 타워 또는 기지국 (106) 은 유선 연결 (126) 을 통해 인터넷 (112) 과 연결할 수도 있다.
일 실시형태에서, 컴퓨팅 디바이스 (102) 는 하나 이상의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 그 특정 지오펜스-인에이블드 애플리케이션과 연관된 하나 이상의 지오펜스들 (즉, 실세계의 지리적 영역들과 연관된 가상 주변들) 을 관리할 수도 있다. 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 컴퓨팅 디바이스 (102) 가 그의 지오펜스들 중 하나의 지오펜스의 주변을 횡단했는지 (즉, 지오펜스를 만족시켰는지) 여부를 결정하기 위해 컴퓨팅 디바이스 (102) 의 포지셔닝 능력들을 활용할 수도 있다. 컴퓨팅 디바이스 (102) 가 지오펜스-인에이블드 애플리케이션과 연관된 지오펜스를 만족시켰을 때, 그 애플리케이션은 그 횡단을 지오펜스 서버 (114) 에 리포팅하고, 컴퓨팅 디바이스 (102) 의 현재 위치에 가까운 지오펜스들의 위치와 같은, 업데이트된 지오펜스 정보를 요구할 수도 있다.
일 실시형태에서, 지오펜스 서버 (114) 는 컴퓨팅 디바이스 (102) 와 같은 다양한 컴퓨팅 디바이스들 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스 정보를 관리 및 업데이트하도록 구성될 수도 있다. 지오펜스 서버 (114) 는 특정 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스 영역들을 저장할 수도 있는 지오펜스 정보 데이터베이스 (116) 와 통신할 수도 있다. 지오펜스 서버 (114) 는 유선 연결 (130) 을 통해 인터넷 (112) 에 연결할 수도 있어서 그에 따라 지오펜스-인에이블드 애플리케이션들로부터 지오펜스 정보 요구들을 수신하고 업데이트된 지오펜스 정보를 지오펜스-인에이블드 애플리케이션들에 전송하는 것이 가능할 수도 있다.
도 2 는 알려진 기법들에 따라 지오펜스-인에이블드 애플리케이션에 대한 위치-기반 서비스들을 구현하기 위한 시그널링 및 호 플로우 (200) 를 예시한다.
현재, 애플리케이션 개발자는 지오펜스 서버 (114) 상에서 동작하는 지오펜싱 서비스 (예를 들어, 퀄컴에 의한 Gimbal® 플랫폼) 에 애플리케이션을 등록할 수도 있다. 애플리케이션 개발자의 컴퓨터 (202) 및 지오펜스 서버 (114) 는 다양한 애플리케이션 등록 통신물들 (207) 을 교환할 수도 있다. 예를 들어, 애플리케이션 개발자는 지오펜스 서버 (114) 에 그의 애플리케이션에 관한 다양한 상세들을 제공할 수도 있고; 지오펜스 서버는 애플리케이션이 지오펜싱 서비스와 양립가능한지 여부를 테스트하기 위해 다양한 확인, 검증, 및/또는 품질 보증 테스트들을 수행할 수도 있으며; 승인을 수신한 후에, 애플리케이션 개발자는 개발자의 애플리케이션을 인에이블시켜서 지오펜스 서버 (114) 와 통신하도록 (즉, 지오펜싱 능력들을 인에이블시키도록) 애플리케이션에 내장하기 위한, 지오펜싱 서비스로부터 수신된 코드 또는 명령들 (예를 들어, 소프트웨어 개발 키트 또는 SDK) 을 포함할 수도 있다.
등록 프로세스 후에, 애플리케이션 개발자의 컴퓨터 (202) 는 관리 포털 또는 애플리케이션 프로그래밍 인터페이스 (API) 들을 통해 지오펜스 서비스에 액세스하여 애플리케이션 (206) 에 대한 하나 이상의 지오펜스들을 정의할 수도 있다. 예를 들어, 애플리케이션 개발자의 컴퓨터 (202) 는 지오펜스의 주변, 형상, 사이즈 등을 설명하는 정보 (예를 들어, 하나 이상의 지오펜스 정의들 (208)) 를 지오펜스 서버 (114) 에 전송할 수도 있다. 지오펜스 서버 (114) 는 동작 210 에서 하나 이상의 지오펜스 정의들 (208) 을 개발자의 애플리케이션 (206) 과 연관시킬 수도 있다.
어느 포인트에서, 컴퓨팅 디바이스 (102) 의 사용자는 애플리케이션 개발자의 컴퓨터 (202) 가 생성한 지오펜스-인에이블드 애플리케이션 (206) 을 컴퓨팅 디바이스 (102) 상으로 다운로드할 수도 있다. 사용자는 또한 지오펜스-인에이블드 애플리케이션 (206) 을 인에이블시켜서 지오펜스 서버 (114) 와 통신하도록 지오펜스-인에이블드 애플리케이션 (206) 을 작동시킬 수도 있다. 예를 들어, 지오펜스-인에이블드 애플리케이션 (206) 은 지오펜스 서버 (114) 와 통신하고, 하나 이상의 지오펜스 정의들 (208) 을 포함하는 지오펜스 정보 (212) 를 수신할 수도 있다.
지오펜스 정보 (212) 를 수신한 후에, 애플리케이션 (206) 은 동작들 214 에서 컴퓨팅 디바이스 (102) 의 현재 위치 (예를 들어, 위도 및 경도) 를 결정한다. 도 1 을 참조하여 상술된 바와 같이, 애플리케이션 (206) 은, GPS 또는 Wi-Fi-기반 위치 서비스들과 같은, 컴퓨팅 디바이스 (102) 상에서 이용가능한 다양한 위치-기반 시스템들 또는 능력들을 활용할 수도 있다. 애플리케이션 (206) 은 그 후에 동작 216 에서 컴퓨팅 디바이스 (102) 의 현재 위치에 기초하여 지오펜스 횡단이 발생하였는지 여부를 결정한다. 지오펜스-인에이블드 애플리케이션 (206) 은 컴퓨팅 디바이스가 지오펜스를 만족시켰다고 결정할 때까지 컴퓨팅 디바이스의 현재 위치를 계속 모니터링한다.
애플리케이션 (206) 이 컴퓨팅 디바이스가 지오펜스 (예를 들어, 하나 이상의 지오펜스 정의들 (208) 에 정의된 지오펜스) 를 횡단하였다는 것을 인지한 후에, 지오펜스-인에이블드 애플리케이션 (206) 은 지오펜스 횡단 통지 (218) 를 지오펜스 서버 (114) 에 전송할 수도 있다. 지오펜스 횡단 통지 (218) 는 지오펜스 횡단에 관련된 액션이 발생해야 한다는 것 (예를 들어, 컴퓨팅 디바이스의 사용자에게 통지를 푸시하는 것) 을 지오펜스 서버에게 알릴 수도 있다. 또한, 지오펜스 서버 (114) 는 애플리케이션 개발자의 컴퓨터 (202) 로부터의 하나 이상의 지오펜스 정의들 (208) 에 기초하여 컴퓨팅 디바이스 (102) 의 현재 위치에 있는 다른 지오펜스들 또는 최근에 부가된 지오펜스들에 관한 정보를 포함할 수도 있는 업데이트된 지오펜스 정보 (220) 를 지오펜스-인에이블드 애플리케이션 (206) 에 전송할 수도 있다.
도 3a 및 도 3b 는 서로 가깝게 근접하거나 또는 오버래핑되는 지오펜스 영역들의 예시적인 표현들의 오버헤드 다이어그램들 (300, 320) 을 예시한다.
도 3a 는 동일한 컴퓨팅 디바이스 상의 상이한 지오펜스-인에이블드 애플리케이션들와 연관된 개개의 지오펜스들의 오버헤드 다이어그램 (300) 을 예시한다.
위에서 논의된 바와 같이, 컴퓨팅 디바이스 (102) 는 다양한 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 지오펜스-인에이블드 애플리케이션은 다양한 기구들, 비즈니스들, 이벤트들 등에 의해 개발되거나 및/또는 이들과 연관될 수도 있다. 예를 들어, 특정 상점의 소유자들은 상점의 현재 재고 및 상점에서의 일일 판매들을 소비자들에게 알리기 위해 지오펜스-인에이블드 애플리케이션을 개발하였을 수도 있다.
일 예에서, 컴퓨팅 디바이스 (102) 는 3 개의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 제 1 지오펜스-인에이블드 애플리케이션은 특정 소매 상점에 대한 애플리케이션일 수도 있고, 제 1 지오펜스-인에이블드 애플리케이션은 그 소매 상점 (즉, 상점 (302)) 의 물리적 위치를 둘러싸는 제 1 지오펜스 (308) 를 모니터링하고 있을 수도 있다. 도 2 를 참조하여 상술된 바와 같이, 상점의 소유자는 지오펜싱 서비스를 갖는 지오펜스 (308) 를 이전에 정의하였을 수도 있고, 지오펜싱 서비스와 연관된 지오펜싱 서버는 제 1 지오펜스-인에이블드 애플리케이션을 인에이블시켜서 지오펜스 (308) 를 모니터링하는 것을 시작하도록 (즉, 상점 (302) 에 대한 위치-기반 서비스들을 구현하는 것을 시작하도록) 지오펜스 정보를 제 1 지오펜스-인에이블드 애플리케이션에 전송했을 수도 있다.
이와 유사하게, 제 2 지오펜스-인에이블드 애플리케이션은 극장 (304) 을 둘러싸는 제 2 지오펜스 (310) 를 모니터링하고 있을 수도 있고, 제 3 지오펜스-인에이블드 애플리케이션은 음식점 (306) 을 둘러싸는 제 3 지오펜스 (312) 를 모니터링하고 있을 수도 있다. 다른 실시형태에서, 지오펜스들 (308, 310, 312) 은 몰에 대해 개발자에 의해 생성된 애플리케이션과 같은 단일 지오펜스-인에이블드 애플리케이션과 연관될 수도 있다.
도 3a 에 예시된 바와 같이, 개발자들은 지오펜스들 (308, 310, 312) 의 경계들을 정의하여 다양한 상이한 형상들 및 사이즈들을 생성할 수도 있다. 예를 들어, 지오펜스 (308) 는 직사각형이고, 지오펜스 (310) 는 다이아몬드형이고, 지오펜스 (312) 는 원형이다. 도시되지 않았지만, 지오펜스가 거의 임의의 2 차원 또는 3 차원 형상에 따를 수도 있다는 것이 예상된다.
실제로, 지오펜스 영역들은 구현의 제한들로 인해 최소 유효 반경을 가질 수도 있다. 예를 들어, GPS 를 이용하는 컴퓨팅 디바이스는 오직 50 미터의 최소 유효 범위를 가질 수도 있다. 그 결과, 지오펜스들은, 몰들 및 다운타운 영역들과 같은, 특히 밀집한 위치들에서, 다른 인근의 지오펜스 영역들과 빈번하게 오버래핑될 수도 있다. 따라서, 도 3a 에 예시된 바와 같이, 지오펜스들 (308, 310, 312) 중 2 개 이상이 오버래핑되거나 또는 그렇지 않으면 가깝게 근접한 영역들이 존재할 수도 있다.
지오펜스들은 컴퓨팅 디바이스들이 아니라 애플리케이션들에 특정될 수도 있어서, 컴퓨팅 디바이스 상의 다수의 애플리케이션들이 지오펜싱을 구현하고 있을 때, 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션은 독립적으로, 그것이 그의 지오펜스들 중 하나를 횡단하였는지 여부를 결정하고 지오펜스를 횡단한 후에 업데이트된 지오펜스 파라미터 정보를 위해 지오펜스 서버에 콘택한다. 예를 들어, 컴퓨팅 디바이스는 몰 영역에서 몇몇 지오펜스들을 독립적으로 모니터링하고 있는 다수의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 지오펜스-인에이블드 애플리케이션들에 의해 모니터링된 지오펜스들 중 일부 또는 전부가 오버래핑될 수도 있거나 또는 가깝게 근접할 수도 있기 때문에, 지오펜스들은 위치-감지 라디오 (location-sensing radio) 들 (예를 들어, GPS, Wi-Fi, 블루투스, 셀룰러 등) 을 독립적으로 이용하여 지오펜스가 횡단되었는지를 결정하고 이들의 각각의 지오펜스가 횡단될 때마다 단시간 내에 지오펜스 서버에 콘택하여, 그에 따라 컴퓨팅 디바이스 상의 프로세싱 리소스들 및/또는 배터리 전력의 상당한 양을 잠재적으로 소비할 수도 있다. 다시 말해, 컴퓨팅 디바이스가 오버래핑 또는 가까운 지오펜스 영역들을 독립적으로 추적하는 애플리케이션들을 포함할 때, 컴퓨팅 디바이스는 위치-감지 라디오들을 반복적으로 이용하여 업데이트된 포지션 픽스를 획득해야 할 수도 있는데, 이것은 배터리 전력을 소비하고, 일부 애플리케이션들에서는 또한 몇몇 인근 지오펜스들의 위치에 접근할 때 지오펜스 서버와 통신하고 지오펜스 서버로부터 업데이트된 지오펜스 파라미터 정보를 수신해야 할 수도 있는데 (즉, 만족된 지오펜스를 갖는 각각의 애플리케이션에 대해 적어도 한 번), 이것도 또한 배터리 전력을 소비한다. 이 상황은 또한, 각각의 상점에 대한 지오펜스들을 포함하는 몰에 대한 애플리케이션과 같은 단일 지오펜스-인에이블드 애플리케이션이 동일한 영역에서 다수의 오버래핑되는 또는 거의 오버래핑되는 지오펜스들을 가질 때 발생할 수도 있다.
도 3a 에 예시된 바와 같이, 사용자 (316) 가 경로 (314) 를 따라 상점 (302) 으로 걸어감에 따라, 사용자의 컴퓨팅 디바이스 (미도시) 는 위치-감지 라디오들을 이용하여 지오펜스 (308, 310, 312) 를 횡단하는 것을 검출하고, 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들 중 임의의 것에 대해 지오펜스 (308, 310, 312) 가 횡단될 때마다 지오펜스 서버와 통신해야 할 수도 있다. 추가로, 지오펜스들 (308, 310, 312) 이 오버래핑되기 때문에, 컴퓨팅 디바이스는 사용자 (316) 가 경로 (314) 를 따라 걸어감에 따라 위치-감지 라디오들을 높은 빈도로 이용하여 지오펜스들 (308, 310, 312) 을 횡단하는 것을 검출해야 할 수도 있고, 컴퓨팅 디바이스는 또한 짧은 시간량에서 지오펜스 서버와 수 회 통신해야 할 수도 있어서, 그에 의해 컴퓨팅 디바이스의 무선 트랜시버들, 프로세서, 및 배터리에 대한 과도한 요구를 초래한다. 예를 들어, 사용자 (316) 가 상점 (302) 으로 걸어감에 따라, 컴퓨팅 디바이스는 5 개의 지오펜스 횡단들을 검출하고 지오펜스 서버와 연속적으로 5 회 (즉, 컴퓨팅 디바이스가 지오펜스 횡단 사이트들 (318a 내지 318e) 중 하나를 통과할 때마다 한 번) 통신해야 할 수도 있다.
도 3b 는 동일한 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들과 연관된 다수의 오버래핑 또는 인근 지오펜스들 (308, 310, 및 312) 을 결합하는 것에 의해 생성된 단일의 블렌딩된 지오펜스 (322) 의 다이어그램 (320) 을 예시한다.
일 실시형태에서, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들이 오버래핑 또는 인근 지오펜스들을 가질 때를 인지할 수도 있고, 이들 지오펜스들을 블렌딩하여 단일의 블렌딩된 지오펜스를 생성할 수도 있다. 별개의 오버래핑 또는 가까운 지오펜스들을 블렌딩하는 것에 의해, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션 간의 동기화를 감소 및/또는 개선시켜서, 그에 의해 컴퓨팅 디바이스를 인에이블시켜 지오펜스 횡단을 검출하거나 및/또는 지오펜스-인에이블드 애플리케이션들 대신에 지오펜스 서버와 통신하는데 시간 및/또는 전력을 덜 소비할 수도 있다.
추가 실시형태들에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛 애플리케이션은 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션의 지오펜스들을 블렌딩할 수도 있다.
도 3b 에 예시된 바와 같이, 지오펜스 서버는 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들이 컴퓨팅 디바이스 상에서 동작하고 있다는 것을 인지할 수도 있고, 지오펜스들 (308, 310, 312) 을 단일의 블렌딩된 지오펜스 (322) 에 결합할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 15a 내지 도 15c 를 참조하여 아래에 추가로 설명되는 바와 같이 다수의 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위해 다양한 기법들을 이용할 수도 있다.
지오펜스들 (308, 310, 312) 을 결합한 후에, 지오펜스 서버 (또는 지오펜스 관리 유닛) 는 블렌딩된 지오펜스 (322) 를 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션에 업데이트된 지오펜스 정보로서 전송할 수도 있다. 따라서, 일 실시형태에서, 지오펜스 서버는 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들의 별개의 지오펜스들 (308, 310, 312) 을 블렌딩된 지오펜스 (322) 로 대체할 수도 있는데, 이는 각각의 애플리케이션이 블렌딩된 지오펜스 (322) 를 모니터링하는 것을 시작할 수도 있다는 것을 의미한다.
제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들이 동일한 블렌딩된 지오펜스 (322) 를 모니터링할 수도 있기 때문에, 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들은 블렌딩된 지오펜스 (322) 가 횡단될 때를 동시에 또는 거의 동시에 인지할 수도 있고, 컴퓨팅 디바이스는 지오펜스 횡단들을 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들 대신에 지오펜스 서버에 동시에 또는 거의 동시에 리포팅하여, 그에 의해 위치-감지 라디오들을 이용하여 지오펜스 횡단을 검출하고 지오펜스 서버와 통신하는데 컴퓨팅 디바이스가 소비할 수도 있는 시간 및/또는 전력의 양을 감소시킬 수도 있다.
예를 들어, 도 3b 에 예시된 바와 같이, 사용자 (316) 가 경로 (314) 를 따라 상점 (302) 으로 걸어감에 따라, 사용자 (316) 의 컴퓨팅 디바이스는 하나의 지오펜스 횡단 사이트 (324) 에서 블렌딩된 지오펜스 (322) 를 횡단할 수도 있고, 이 때 지오펜스 경계는 컴퓨팅 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션에 대해 만족될 수도 있다. 따라서, 위에서 도 3a 에 예시된 바와 같이 5 개의 별개의 지오펜스 횡단 사이트들 (318a 내지 318e) 을 검출하고 지오펜스 횡단 사이트들 (318a 내지 318e) 각각에서 지오펜스 서버와 5 회 통신하기보다는, 컴퓨팅 디바이스는 그 대신에 단지 하나의 횡단 사이트를 검출하고 (예를 들어, 동일한 송신에서) 지오펜스-인에이블드 애플리케이션들 각각에 대해 지오펜스 서버와 한 번 통신할 필요가 있을 수도 있는데, 이는 지오펜스-인에이블드 애플리케이션들은 동일한 블렌딩된 지오펜스 (322) 를 모니터링하고 있어서 그에 따라 블렌딩된 지오펜스 (322) 가 횡단될 때를 동시에 또는 거의 동시에 인지하기 때문이다.
도 4a 및 도 4b 는 지오펜스들이 블렌딩된 지오펜스에 포함되는 애플리케이션들 대신에 블렌딩된 지오펜스를 모니터링하는 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 또는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 의한 이용을 위해 블렌딩된 지오펜스들을 생성하기 위해 서버 상에서 실행하는 프로세서에 의해 수행될 수도 있는 실시형태의 방법들 (400, 430) 을 예시한다.
방법 (400) 의 동작들은 서버가 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 것으로 결정된 지오펜스들을 블렌딩할 수도 있는 일 실시형태를 구현한다. 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들에 포커싱함으로써, 서버는 적절한 수의 유용한 블렌딩된 지오펜스들을 생성하기 위해 비교적 작은 지리적 구역 내에 머무르려는 대부분의 컴퓨팅 디바이스 사용자들의 경향을 레버리징할 수도 있다. 예를 들어, 전국에 걸쳐 놓여진 지오펜스들을 결합하기보다는, 서버는 사용자의 집 또는 근무처에 가까운 지오펜스들만을 단지 결합할 수도 있다.
도 4b 를 참조하여 아래에 설명된 것들과 같은 추가 실시형태들에서, 지오펜스 서버는 더 일반적으로는, 모바일 디바이스의 현재 위치와 관계없이, 지오펜스들을 블렌딩된 지오펜스들에 결합할 수도 있다. 구체적으로는, 지오펜스 서버는 컴퓨팅 디바이스의 현재 위치에 상관없이 서로 지리적으로 가까운 것으로 결정되는 지오펜스들의 그룹들로부터 블렌딩된 지오펜스들을 생성하도록 구성될 수도 있다. 따라서, 이러한 실시형태들에서, 지오펜스 서버는 다양한 지리적 영역들 (예를 들어, 국가의 전체 구역 또는 주) 에 대한 전량의 블렌딩된 지오펜스들을 미리 생성할 수도 있고, 필요에 따라, 예컨대 지오펜스 횡단 통지들을 수신한 것에 응답하여 또는 선제적으로 "푸시된" 데이터의 형태로 이들 저장된 블렌딩된 지오펜스들 중 하나 이상을 컴퓨팅 디바이스에 전송할 수도 있다.
설명의 용이를 위해, 도 4a 내지 도 7b 를 참조하여 아래에 설명된 것들과 같은 다양한 실시형태들은, 컴퓨팅 디바이스의 현재 위치를 포함하거나 그 현재 위치에 의존하는 동작들을 포함할 수도 있다. 그러나, 컴퓨팅 디바이스의 현재 위치에 대한 임의의 언급 또는 의존성은 청구항들에서 명시적으로 인용되지 않는다면 청구항들의 범위를 제한하려고 의도된 것이 아니다.
도 4a 는 동일한 컴퓨팅 디바이스 상에서 동작하는 상이한 지오펜스-인에이블드 애플리케이션과 연관된 다수의 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위해 지오펜스 서버 상에서 구현될 수도 있는 일 실시형태의 방법 (400) 을 예시한다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스를 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있어서, 지오펜스-인에이블드 애플리케이션들은 동일한 지오펜스를 모니터링하여, 그에 따라, 블렌딩된 지오펜스가 만족될 때를 동시에 또는 거의 동시에 검출한다.
블록 402 에서, 지오펜스 서버는 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다. 일 실시형태에서, 리포팅 애플리케이션은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션일 수도 있고, 리포팅 애플리케이션은 위치-감지 라디오들을 통해 결정된 컴퓨팅 디바이스의 현재 위치에 기초하여 지오펜스가 횡단되었다는 것을 검출하였을 수도 있다. 지오펜스가 횡단되었다는 것을 검출한 것에 응답하여, 리포팅 애플리케이션은 도 2 를 참조하여 상술된 바와 같이 지오펜스 횡단 통지 (예를 들어, 메시지) 를 지오펜스 서버에 전송할 수도 있다.
다른 실시형태에서, 지오펜스 횡단 통지는 위치-기반 서비스들을 리포팅 애플리케이션에 제공하기 위해 지오펜스 서버가 요구할 수도 있는 정보를 포함할 수도 있다. 예를 들어, 지오펜스 횡단 통지는 리포팅 애플리케이션의 아이덴티티, 리포팅 애플리케이션의 컴퓨팅 디바이스의 아이덴티티, 컴퓨팅 디바이스의 현재 위치, 사용자의 아이덴티티 (예를 들어, 사용자의 전화 번호 및 이메일 주소) 등을 포함할 수도 있다.
결정 블록 404 에서, 지오펜스 서버는 그 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 결정할 수도 있다. 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하지 못하였다고 지오펜스 서버가 결정할 때 (즉, 결정 블록 404 = "아니오"), 지오펜스 서버는 결정 블록 404 에서의 프로세스를 계속적으로 반복하여 그 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였을 때를 인지할 수도 있다. 일 실시형태에서, 지오펜스 서버는 그 지오펜스 서버가 지오펜스 횡단 통지를 수신할 때까지 아이들 (idle) 또는 저전력 상태에 남아있을 수도 있다.
지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했다고 지오펜스 서버가 결정할 때 (즉, 결정 블록 404 = "예"), 블록 406 에서 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스가 지오펜스 서버에 이전에 등록되지 않았을 때 리포팅 애플리케이션의 컴퓨팅 디바이스를 등록할 수도 있다. 일 실시형태에서, 지오펜스 서버는 지오펜스 횡단 통지에 포함된 컴퓨팅 디바이스의 식별 정보를 기록하고 컴퓨팅 디바이스를 리포팅 애플리케이션과 연관시키는 것에 의해 리포팅 애플리케이션의 컴퓨팅 디바이스를 등록할 수도 있다. 컴퓨팅 디바이스를 등록하는 것은 도 5 를 참조하여 아래에 추가로 설명된다.
블록 408 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 결정할 수도 있다. 상술된 바와 같이, 지오펜스 서버는 리포팅 애플리케이션으로부터 수신된 지오펜스 횡단 통지의 부분으로서 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 수신할 수도 있다. 다른 실시형태에서, 지오펜스 서버는 그의 컴퓨팅 디바이스의 현재 위치를 요구하는 신호를 리포팅 애플리케이션에 전송할 수도 있다.
블록 410 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들을 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블록 406 을 참조하여 상술된 바와 같이 지오펜스-인에이블드 애플리케이션들의 컴퓨팅 디바이스들을 등록하는 것과 같은, 지오펜스-인에이블드 애플리케이션들과 이들의 컴퓨팅 디바이스들 사이의 연관을 유지할 수도 있고, 지오펜스 서버는 이들 연관들을 이용하여 리포팅 애플리케이션의 컴퓨팅 디바이스 상에 포함되는 (즉, 그 컴퓨팅 디바이스와 연관되는) 다른 지오펜스-인에이블드 애플리케이션들을 결정할 수도 있다. 예를 들어, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 식별 기준들을 이용하여 데이터베이스 룩업 (lookup) 을 수행하여 컴퓨팅 디바이스와 연관되는 지오펜스-인에이블드 애플리케이션들 (리포팅 애플리케이션을 포함함) 을 결정할 수도 있다.
블록 412 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 결정할 수도 있다. 예를 들어, 도 3a 를 참조하여 위에 예시된 바와 같이, 리포팅 애플리케이션 (예를 들어, 제 1 지오펜스-인에이블드 애플리케이션) 에 부가적으로, 지오펜스 서버는 컴퓨팅 디바이스 상에서 동작하는 2 개의 다른 지오펜스-인에이블드 애플리케이션들 (예를 들어, 제 2 및 제 3 지오펜스-인에이블드 애플리케이션들) 이 존재한다는 것 그리고 각각의 지오펜스-인에이블드 애플리케이션이 하나 이상의 지오펜스들을 갖는다는 것을 결정할 수도 있다. 다른 실시형태에서, 지오펜스들은 단일의 지오펜스-인에이블드 애플리케이션과 연관될 수도 있다.
블록 414 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 결정할 수도 있다. 실시형태에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스들이 오버래핑되는지 및/또는 가깝게 근접한지 (즉, 지리적으로 가까운지) 여부를 결정하기 위해 다양한 계산들을 수행할 수도 있다. 예를 들어, 지오펜스 서버는 컴퓨팅 디바이스의 현재 영역에서의 지오펜스들 각각의 영역 및/또는 주변을 결정할 수도 있고, 복수의 지오펜스들이 오버래핑되거나 또는 거의 오버래핑되는 영역들 및/또는 주변들을 갖는지 여부를 결정할 수도 있다. 추가 실시형태에서, 지오펜스들은, 예컨대 2 개의 지오펜스들이 서로 소정 거리 내에 있을 때, 오버래핑 없이 지리적으로 가까울 수도 있다.
블록 416 에서, 지오펜스 서버는 현재 위치에서 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 지오펜스 서버는 지오펜스들을 결합하기 위해 다양한 기법들을 구현할 수도 있다. 예를 들어, 지오펜스 서버는 지리적으로 가까운 별개의 지오펜스들 각각을 포함하는 블렌딩된 지오펜스를 생성할 수도 있거나, 또는 지오펜스 서버는 지오펜스들의 형상들의 가중된 평균을 이용하여 지오펜스들의 중심화된 형상을 표현하는 블렌딩된 지오펜스를 생성할 수도 있다. 지오펜스들을 블렌딩된 지오펜스에 결합하는 것은 도 15a 내지 도 15c 를 참조하여 아래에 추가로 설명된다.
블록 418 에서, 지오펜스 서버는 블렌딩된 지오펜스를 컴퓨팅 디바이스에, 예컨대 리포팅 애플리케이션에 전송할 수도 있다. 따라서, 일 실시형태에서, 블렌딩된 지오펜스를 수신한 후에, 리포팅 애플리케이션은 리포팅 애플리케이션의 개발자에 의해 정의된 지오펜스들 대신에 블렌딩된 지오펜스를 이용하여 지오펜스 횡단들에 대해 모니터링하는 것을 시작할 수도 있다.
다른 실시형태에서, 옵션적 블록 420 에서 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스와 연관된 다른 지오펜스-인에이블드 애플리케이션들에 블렌딩된 지오펜스를 전송할 수도 있다. 예를 들어, 지오펜스 서버는 블렌딩된 지오펜스를 동일한 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 "푸시" 할 수도 있어서, 이들 지오펜스-인에이블드 애플리케이션들은 동일한 지오펜스를 즉시 모니터링하는 것을 시작한다.
지오펜스 서버는 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다. 일 실시형태에서, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션으로부터 지오펜스 횡단 통지들을 궁극적으로 수신할 수도 있고, 실시형태의 프로세스를 수행하여 이들 지오펜스-인에이블 애플리케이션들 각각에게 모니터링하기 위한 공통의 블렌딩된 지오펜스를 전송할 수도 있다. 따라서, 컴퓨팅 디바이스의 현재 영역에서의 지오펜스를 갖는 지오펜스-인에이블 애플리케이션들 각각은 동일한 블렌딩된 지오펜스를 공유할 수도 있고, 컴퓨팅 디바이스는 지오펜스-인에이블드 애플리케이션들이 동일한 지오펜스를 모니터링한 결과로서 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때 지오펜스-인에이블드 애플리케이션들 대신에 지오펜스 서버와의 통신들을 조화/동기화시킬 수도 있다.
추가 실시형태에서, 지오펜스 서버는 단일의 지오펜스-인에이블드 애플리케이션에 대한 다수의 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하기 위해 상술된 동작들을 수행하여, 그에 의해 단일의 지오펜스-인에이블드 애플리케이션을 인에이블시켜서 다수의 개별 지오펜스들보다는 단일의 블렌딩된 지오펜스를 모니터링할 수도 있다.
위에서 언급된 바와 같이, 도 4b 는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 의한 이용을 위해 디바이스의 현재 위치에 대한 고려 없이 블렌딩된 지오펜스들을 생성하기 위해 지오펜스 서버에 의해 구현될 수도 있는 일 실시형태의 방법 (430) 을 예시한다.
일 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스 상에서 실행하는 모든 가능한 지오펜스-인에이블드 애플리케이션들에 대한 모든 가능한 지오펜스들로의 액세스를 가질 수도 있다. 이러한 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스들을 주기적으로 (예를 들어, 밤마다 또는 매주) 생성 및 저장할 수도 있다. 따라서, 추가 실시형태에서, 컴퓨팅 디바이스 상의 애플리케이션으로부터 지오펜스 횡단 통지 또는 지오펜스 정보에 대한 다른 요구를 수신한 것에 응답하여, 지오펜스 서버는 저장된 블렌딩된 지오펜스에 빨리 액세스하고 그것을 요구한 애플리케이션에 전송할 수도 있다. 다시 말해, 지오펜스 서버는 애플리케이션들에 대해 미리 생성된 블렌딩된 지오펜스들을 준비할 수도 있고, 요구 또는 필요에 따라 이들 미리 만들어진 블렌딩된 지오펜스들을 애플리케이션들에 전송할 수도 있다.
블록 432 에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 406 에서 상술된 바와 같이 컴퓨팅 디바이스를 등록할 수도 있다. 지오펜스 서버는 또한, 예컨대 블록 432 에서의 등록 프로세스의 부분으로서 컴퓨팅 디바이스와 연관되는 하나 이상의 지오펜스-인에이블드 애플리케이션들을 식별하는 것에 의해, 블록 434 에서 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들을 결정할 수도 있다.
블록 436 에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 412 의 동작들을 참조하여 일반적으로 설명된 바와 같이 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션과 연관된 지오펜스들을 식별할 수도 있다. 예를 들어, 지오펜스 서버는 지오펜스 데이터베이스 (116) 에서 룩업 동작들을 수행하여 모바일 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션과 연관된 하나 이상의 지오펜스들을 발견할 수도 있다. 추가 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스의 소정 거리 내에 있는 지오펜스들만을 단지 식별할 수도 있다. 예를 들어, 지오펜스 서버는 컴퓨팅 디바이스의 100 마일 내의 지오펜스들만을 단지 식별하여 프로세싱 리소스들을 절약할 수도 있다. 다른 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스의 현재 위치에 상관없이 블록 434 에서 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들과 연관된 모든 지오펜스를 식별할 수도 있다.
지오펜스 서버는 또한, 블록 438 에서 서로 지리적으로 가까운 식별된 지오펜스들을 결정할 수도 있다. 일 실시형태에서, 지오펜스들은 이들의 개별 영역들이 서로로부터 소정 거리 내에 있을 때 또는 이들의 영역들이 미리 정의된 임계치를 초과하여 오버래핑될 때 (예를 들어, 10% 초과 오버랩) 서로 지리적으로 가까울 수도 있다. 예를 들어, 지오펜스 서버는 도 3a 를 참조하여 상술된 지오펜스들 (308, 310, 312) 이 이들의 영역들이 오버래핑되기 때문에 서로 지리적으로 가깝다는 것을 결정할 수도 있다. 블록 440 에서, 서버는 또한 블록 438 에서 지리적으로 가까운 것으로 결정되는 식별된 지오펜스들을 그룹화할 수도 있다.
블록 442 에서, 지오펜스 서버는 각각의 그룹의 식별된 지오펜스들을 결합하는 것에 의해, 예컨대 도 4a 를 참조하여 상술된 방법 (400) 의 블록 416 의 동작들과 유사한 동작들을 수행하는 것에 의해, 식별된 지오펜스들의 각각의 그룹에 대한 블렌딩된 지오펜스를 생성할 수도 있다. 일 실시형태에서, 블록 442 의 동작들을 수행하는 것에 의해, 지오펜스 서버는 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스 - 또는, 대안적으로, 모든 가능한 블렌딩된 지오펜스들의 특정 서브세트 (예를 들어, 소정의 영역에 대한 블렌딩된 지오펜스들) - 를 생성할 수도 있다. 블록 444 에서, 지오펜스 서버는 또한 추후 이용을 위해 블록 442 에서 생성된 각각의 블렌딩된 지오펜스를 저장할 수도 있다. 지오펜스 서버는 옵션적으로, 블록 452 에서 소정 기간 (예를 들어, 24 시간, 1 주일, 또는 몇 개월 등) 대기할 수도 있다. 지오펜스 서버는 또한 블록 434 에서 시작하는 상술된 동작들을 반복할 수도 있다. 따라서, 일 실시형태에서, 지오펜스 서버는 현재 저장된 지오펜스들의 세트를 유지하기 위해 위에서의 동작들을, 예를 들어, 정기적 작업 (job) 또는 루틴의 부분으로서 반복할 수도 있다.
추가 실시형태들에서, 지오펜스 서버는 상술된 동작들과 동시에 또는 그 후에 발생할 수도 있는 다른 동작들을 수행할 수도 있다. 옵션적 블록 446 에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 402 에서 상술된 바와 같이 컴퓨팅 디바이스 상에서 동작하는 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 옵션적으로 모니터링할 수도 있다.
옵션적 결정 블록 448 에서, 지오펜스 서버는 상술된 바와 같이 그 지오펜스 서버가 컴퓨팅 디바이스로부터, 예컨대 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 결정할 수도 있다. 지오펜스 서버가 지오펜스 횡단 통지를 수신하지 못하였다고 지오펜스 서버가 결정할 때 (즉, 옵션적 결정 블록 448 = "아니오"), 그 서버는 옵션적 블록 446 에서 시작하는 프로세스를 계속적으로 반복하여 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였을 때를 인지할 수도 있다. 일 실시형태에서, 지오펜스 서버는 그 지오펜스 서버가 지오펜스 횡단 통지를 수신할 때까지 아이들 또는 저전력 상태에 남아있을 수도 있다.
지오펜스 서버가 지오펜스 횡단 통지를 수신하였다고 지오펜스 서버가 결정할 때 (즉, 옵션적 결정 블록 448 = "예"), 그 서버는 옵션적 블록 450 에서 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 리포팅 애플리케이션에 전송되는 저장된 블렌딩된 지오펜스는 리포팅 애플리케이션과 연관될 수도 있다 (즉, 리포팅 애플리케이션과 연관된 지오펜스들은 블록 442 에서 상술된 바와 같이 블렌딩된 지오펜스를 생성하는데 이용되었을 수도 있다). 지오펜스 서버는 또한 옵션적 블록 446 에서 시작하는 위에서의 동작들을 반복할 수도 있다.
옵션적 블록 450 의 동작들의 다른 실시형태에서, 지오펜스 서버는 지오펜스 횡단 통지를 수신하는 일 없이 하나 이상의 블렌딩된 지오펜스들을 컴퓨팅 디바이스에 선제적으로 전송할 수도 있다. 예를 들어, 지오펜스 서버는 블렌딩된 지오펜스들을 컴퓨팅 디바이스에 푸시하여, 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들을 인에이블시켜서 이들 블렌딩된 지오펜스들을 거의 즉시 모니터링하는 것을 시작할 수도 있다. 따라서, 이러한 실시형태에서, 컴퓨팅 디바이스가 블렌딩된 지오펜스에 의해 커버된 영역으로 이동할 때, 그 영역을 모니터링하는 지오펜스-인에이블드 애플리케이션은 지오펜스 서버로부터의 업데이트된 지오펜스 정보를 요구해야 하는 일 없이 블렌딩된 지오펜스 정보에 빨리 액세스할 수도 있다.
도 5 는 리포팅 애플리케이션과 연관되도록 컴퓨팅 디바이스를 등록하기 위해 지오펜스 서버에 의해 구현될 수도 있는 일 실시형태의 방법 (500) 을 예시한다. 방법 (500) 의 동작들은 도 4a 를 참조하여 상술된 방법 (400) 의 블록 406 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 서버는 그 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였다고 결정한 후에 (즉, 결정 블록 404 = "예") 방법 (500) 을 수행하는 것을 시작할 수도 있다.
블록 502 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스에 관한 정보를 수신할 수도 있다. 일 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스의 지오펜스 횡단 통지를 리포팅하는 부분으로서 리포팅 애플리케이션의 컴퓨팅 디바이스에 관한 정보를 수신할 수도 있거나, 또는 지오펜스 서버는 지오펜스 횡단 통지를 수신한 후에 컴퓨팅 디바이스에 대한 식별 정보를 제공하도록 리포팅 애플리케이션에게 별도로 요구할 수도 있다.
결정 블록 504 에서, 지오펜스 서버는 리포팅 애플리케이션이 컴퓨팅 디바이스와 이미 연관된 것인지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 서버는 이전에 이 특정 컴퓨팅 디바이스 상에서 리포팅 애플리케이션이 지오펜스 횡단 통지를 리포팅한 적이 있었는지 여부를 결정할 수도 있다. 일 실시형태에서, 다른 컴퓨팅 디바이스들 상에 리포팅 애플리케이션의 다수의 카피들이 존재할 수도 있으므로, 지오펜스 서버가 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들의 추적을 유지할 수도 있다는 것을 보장하기 위해 지오펜스 서버는 리포팅 애플리케이션을 그것이 동작하고 있는 특정 컴퓨팅 디바이스와 연관시킬 수도 있다. 일 실시형태에서, 지오펜스 서버는 (예를 들어, 컴퓨팅 디바이스 상에서 제 1 시간에 대해 단지 인스톨되고 작동된 결과로서) 이전에 그 컴퓨팅 디바이스 상에서 리포팅 애플리케이션이 지오펜스 서버와 전혀 통신하지 않았을 때 리포팅 애플리케이션과 컴퓨팅 디바이스 사이의 연관이 이미 존재하지 않는다는 것을 결정할 수도 있다.
지오펜스 서버가 리포팅 애플리케이션이 컴퓨팅 디바이스와 이미 연관된다고 결정할 때 (즉, 결정 블록 504 = "예"), 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 결정하는 것에 의해 도 4a 를 참조하여 상술된 방법 (400) 의 블록 408 에서의 프로세스를 수행하는 것을 계속할 수도 있다.
리포팅 애플리케이션의 컴퓨팅 디바이스가 이미 등록된 것이 아니라고 지오펜스 서버가 결정할 때 (즉, 결정 블록 504 = "아니오"), 지오펜스 서버는 블록 506 에서 리포팅 애플리케이션을 그의 컴퓨팅 디바이스와 연관시킬 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 1 을 참조하여 상술된 바와 같이 리포팅 애플리케이션과 컴퓨팅 디바이스 사이의 연관을 지오펜스 정보 데이터베이스 (116) 에 기록하는 것에 의해 이 동작을 달성한다.
지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 결정하는 것에 의해 도 4a 를 참조하여 상술된 방법 (400) 의 블록 408 에서의 프로세스를 수행하는 것을 계속할 수도 있다.
도 6 은 블렌딩하기에 적합하거나 또는 블렌딩하는 것과 양립가능한 현재 위치에서의 다수의 지오펜스들이 존재한다 (즉, 지오펜스는 지오펜스 또는 애플리케이션의 동작 또는 기능성을 실질적으로 저하시키는 일 없이 블렌딩될 수 있다) 는 것을 결정한 것에 응답하여 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위해 지오펜스 서버 상에서 구현될 수도 있는 일 실시형태의 방법 (600) 을 예시한다. 방법 (600) 의 동작들은 도 4a 를 참조하여 상술된 방법 (400) 의 동작들의 일 실시형태를 구현한다. 따라서, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 414 에서 지리적으로 가까운 지오펜스들이 컴퓨팅 디바이스의 현재 위치에 존재한다는 것을 결정한 후에 방법 (600) 을 수행하는 것을 시작할 수도 있다.
결정 블록 602 에서, 지오펜스 서버는 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스를 생성하기 위해 현재 위치에 있는 오버래핑되거나 또는 거의 오버래핑되는 (즉, 지리적으로 가까운) 적어도 2 개의 지오펜스들을 요구할 수도 있다. 예를 들어, 컴퓨팅 디바이스가 4 개의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있지만, 이들 지오펜스-인에이블드 애플리케이션들 중 단 하나만이 컴퓨팅 디바이스의 현재 영역에 지오펜스를 가질 수도 있다. 이 예에서, 지오펜스 서버는 블렌딩된 지오펜스를 생성하는 것이 불가능할 수도 있는데, 이는 현재 위치에 단 하나의 지오펜스만이 존재하기 때문이다.
지오펜스 서버가 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 602 = "아니오"), 지오펜스 서버는 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 2 를 참조하여 상술된 바와 같이 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 따라서, 이 예에서, 리포팅 애플리케이션은 리포팅 애플리케이션의 개발자들에 의해 원래 정의된 대로 지오펜스들을 수신할 수도 있다. 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.
지오펜스 서버가 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 602 = "예"), 지오펜스 서버는 블록 604 에서 복수의 지리적으로 가까운 지오펜스들 중 어떤 것이 블렌딩하기에 적합한지를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 지리적으로 가까운 지오펜스들이 함께 블렌딩되는 것이 가능한지 여부를 결정하기 위해 지리적으로 가까운 지오펜스들 각각을 조사할 수도 있다. 지오펜스 서버는 개개의 지오펜스 특성들 (예를 들어, 특정 지오펜스가 전혀 블렌딩되지 않거나 또는 소정의 조건들 하에서만 블렌딩되도록 리포팅 애플리케이션의 개발자가 요구하였는지 여부), 전체로서 복수의 지리적으로 가까운 지오펜스들, 및 지오펜스들, 이들 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들, 및 이들 지오펜스-인에이블드 애플리케이션들의 개발자들을 둘러싼 다양한 다른 정보를 검토할 수도 있다.
일 실시형태에서, 지오펜스 서버는 지오펜스들의 형상들에 기초하여 지리적으로 가까운 지오펜스들이 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 서버는 지오펜스들의 형상들 중 2 개 이상이 블렌딩하기 위해 "양립가능" 한지 여부를 평가하기 위해 지리적으로 가까운 지오펜스들의 형상 분석을 수행할 수도 있다. 일 실시형태에서, 연관된 지오펜스 애플리케이션들의 성능, 기능성 또는 반응성에 대한 실질적 영향 없이 지오펜스 서버가 지오펜스 형상들을 결합하는 것이 가능할 때 지오펜스 형상들은 블렌딩하기에 적합할 수도 있다. 다시 말해, 지오펜스 서버는 2 개 이상의 지오펜스들을 블렌딩하는 것이 기본 지오펜스-인에이블드 애플리케이션들의 위치-기반 서비스들을 실질적으로 저하시키는 블렌딩된 지오펜스를 발생시킬지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 서버는 겨우 오버래핑되는 정사각형 지오펜스 및 원형 지오펜스가 양립불가능할 수도 있다는 것을 결정할 수도 있는데, 이는, 이들 지오펜스를 결합하는 것이, 원형 또는 정사각형 지오펜스들보다 상당히 더 크거나 또는 오리지널 지오펜스들에 의해 커버되는 일부 영역들을 제외시키도록 하는 방법으로 형상화되는 단일의 블렌딩된 지오펜스를 생성할 수도 있기 때문이다. 다른 실시형태에서, 결과적인 블렌딩된 지오펜스가 오리지널 지오펜스들의 사이즈들에 기초하여 사이즈 임계치를 초과하거나 (예를 들어, 블렌딩된 지오펜스가 오리지널 지오펜스들의 결합된 영역의 150% 보다 더 크지 않을 수도 있음) 및/또는 오리지널 지오펜스들에 의해 커버된 영역들에 기초하여 영역-커버된 임계치를 초과하지 않을 때 (예를 들어, 블렌딩된 지오펜스가 오리지널 지오펜스들의 영역들의 적어도 85% 를 커버하도록 요구될 수도 있음), 지오펜스 서버는 형상들이 블렌딩하기에 부적합하다는 것을 결정할 수도 있다.
일 실시형태에서, 지오펜스 서버는 지오펜스들이 블렌딩하기에 적합한지 여부를 결정하기 위해 지오펜스 메타데이터를 참조할 수도 있다. 지오펜스 서버는 지오펜스들의 타입 (예를 들어, 도보 지오펜스, 드라이빙 지오펜스, 비즈니스 지오펜스, 상업 지오펜스 등) 각각을 결정할 수도 있고 양립가능한 타입들을 갖는 지오펜스들만을 단지 결합할 수도 있다. 다시 말해, 지오펜스 서버는 위치-기반 서비스들의 타깃/목적이 지오펜스들을 결합하는 것에 의해 실질적으로 저하되지 않을 때에만 단지 이들 지오펜스들을 블렌딩할 수도 있다. 예를 들어, 몰 내의 상점에서 일일 거래들을 보행자들에게 알리도록 설계된 지오펜스는, 주유소의 오일-교환 특별가를 몰 옆을 지나가는 드라이버들에게 알리도록 설계된 지오펜스와는 양립불가능할 수도 있다.
다른 실시형태에서, 지오펜스 서버는 개발자-설정 특성들/파라미터들에 기초하여 지리적으로 가까운 지오펜스들이 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 애플리케이션에 대한 지오펜스를 정의하는 프로세스 동안, 개발자는 그 지오펜스가 다른 지오펜스와 블렌딩되지 않을 수도 있다는 것을 특정할 수도 있다. 예를 들어, 개발자는 예컨대 결승선에 지오펜스를 갖는 마라톤 애플리케이션에 대해, 지오펜스에 대한 개발자의 목표를 달성하기 위해 최대 정밀도를 요구할 수도 있다. 이러한 예에서, 지오펜스의 목적 (예를 들어, 사용자가 마라톤을 달리는 것을 끝냈을 때를 자동적으로 나타내기 위한 것) 은 블렌딩의 결과로서 지오펜스의 영역/정밀도가 변화되는 경우 좌절될 수도 있다. 일 실시형태에서, 지오펜스 서버는 개발자가 특정 지오펜스의 블렌딩을 허용하는지 여부를 나타내는 개발자 플래그 또는 다른 값을 체크할 수도 있다.
결정 블록 606 에서, 지오펜스 서버는 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 예를 들어, 컴퓨팅 디바이스의 현재 영역에 수 개의 지리적으로 가까운 지오펜스들이 존재할 수도 있지만, 이들 중 어떤 것도 블렌딩하기에 적합하지 않을 수도 있는데, 이는 양립불가능한 형상들, 타입들 등 때문이다.
지오펜스 서버가 복수의 지리적으로 가까운 지오펜스들에서 양립가능한 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 606 = "아니오"), 지오펜스 서버는 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 상술된 바와 같이, 지오펜스 서버가 지오펜스들을 결합하지 않을 때 지오펜스 서버는 리포팅 애플리케이션의 개발자들에 의해 원래 정의된 지오펜스들에 대한 업데이트된 지오펜스를 전송하지 않을 수도 있다. 지오펜스 서버는 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.
지오펜스 서버가 복수의 지리적으로 가까운 지오펜스들에서 양립가능한 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 606 = "예"), 지오펜스 서버는 블록 608 에서 블렌딩하기에 적합한 다수의 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 416 에서 상술된 프로세스와 유사한 방식으로 다수의 양립가능한 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 예를 들어, 지오펜스 서버는 다수의 양립가능한 지오펜스들의 형상들의 가중된 평균을 취득하고, 그 가중된 평균에 기초하여 단일의 지오펜스를 생성할 수도 있다.
옵션적 블록 610 에서, 지오펜스 서버는, 블렌딩된 지오펜스를, 다수의 양립가능 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스를 블렌딩하기에 적합한 다수의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 선제적으로 푸시하여, 이들 애플리케이션들을 인에이블시켜서 블렌딩된 지오펜스를 모니터링하는 것을 즉시 시작할 수도 있다. 따라서, 지오펜스 서버는 이들 애플리케이션들 각각으로부터 지오펜스 횡단 통지들을 수신한 것에 응답하여 블렌딩된 지오펜스를 이들 지오펜스-인에이블드 애플리케이션들에 전송해야 하는 것을 회피할 수도 있다.
결정 블록 612 에서, 지오펜스 서버는 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 서버는 결정 블록 606 을 참조하여 상술된 바와 같이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한 다수의 지오펜스들에 포함되는지 여부를 결정할 수도 있다.
지오펜스 서버가 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하지 않다고 결정할 때 (즉, 결정 블록 612 = "아니오"), 지오펜스 서버는 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 서버는 리포팅 애플리케이션의 지오펜스들에 대한 업데이트된 지오펜스 정보만을 단지 전송할 수도 있다. 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.
지오펜스 서버가 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하다고 결정할 때 (즉, 결정 블록 612 = "예"), 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블록 418 에서 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 지오펜스 서버는 또한 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.
도 7a 및 도 7b 는 블렌딩된 지오펜스를 생성하고 추후 이용을 위해 블렌딩된 지오펜스를 저장하기 위해 지오펜스 서버 상에서 구현될 수도 있는 일 실시형태의 방법 (700) 을 예시한다. 방법 (700) 의 동작들은 도 4a 를 참조하여 상술된 방법 (400) 의 동작들의 일 실시형태를 구현한다. 따라서, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 414 에서 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 결정한 후에 방법 (700) 을 수행하는 것을 시작할 수도 있다.
도 7a 를 참조하면, 결정 블록 702 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는, 이전에 생성된 블렌딩된 지오펜스들을, 다른 지오펜스-인에이블드 애플리케이션들에 의한 추후 이용을 위해 특정 영역과 연관시킬 수도 있다. 다시 말해, 다양한 컴퓨팅 디바이스들 상에서 동작하는 다수의 지오펜스-인에이블드 애플리케이션들에 대해 특정 영역에 대한 동일한 블렌딩된 지오펜스를 생성하기보다는, 지오펜스 서버는 블록들 706 및 708 을 참조하여 아래에 추가로 설명된 바와 같이 이전에 생성된 블렌딩된 지오펜스들을 보유할 수도 있고, 지오펜스 서버는 매번 스크래치 (scratch) 로부터 블렌딩된 지오펜스를 생성해야 하는 일 없이 블렌딩된 지오펜스를 동일한 컴퓨팅 디바이스 상의 다른 지오펜스-인에이블드 애플리케이션들에게 전송할 수도 있다.
지오펜스 서버가 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 702 = "예"), 프로세스는 도 7b 를 참조하여 아래에 설명된 블록 722 에서의 동작들을 수행할 수도 있다.
지오펜스 서버가 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되지 않는다고 결정할 때 (즉, 결정 블록 702 = "아니오"), 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블록 416 에서 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다.
블록 706 에서, 지오펜스 서버는 블렌딩된 지오펜스를 저장할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스뿐만 아니라 블렌딩된 지오펜스와 연관된 애플리케이션들 및 지오펜스들의 식별자들을 지오펜스 정보 데이터베이스 (116) 와 같은 지오펜스 정보 데이터베이스에 저장할 수도 있다. 블록 708 에서, 지오펜스 서버는 블렌딩된 지오펜스를 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치와 연관시킬 수도 있다. 따라서, 결정 블록 702 를 참조하여 상술된 바와 같이, 지오펜스 서버는 현재 위치에서의 지오펜스들을 재블렌딩해야 하는 일 없이 장래에 다른 지오펜스-인에이블드 애플리케이션들에 전송하기 위해 저장된 블렌딩된 지오펜스를 재호출하는 것이 가능할 수도 있다. 일 실시형태에서, 각각의 저장된 블렌딩된 지오펜스는 도 7b 를 참조하여 아래에 추가로 설명되는 바와 같이 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들의 특정 결합과 연관될 수도 있다.
블록 418 에서, 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 에서의 동작들을 수행하기 위해 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.
도 7b 를 참조하면, 지오펜스 서버가 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 702 = "예"), 지오펜스 서버는 블록 722 에서 저장된 블렌딩된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 및 지오펜스들의 리스트를 생성할 수도 있다. 상술된 바와 같이, 저장된 블렌딩된 지오펜스는 지오펜스-애플리케이션들 및 이들의 각각의 지오펜스들의 특정 결합과 연관될 수도 있다.
일 실시형태에서, 저장된 블렌딩된 지오펜스는 정확한 매치가 존재할 때 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 이용에만 단지 적합할 수도 있는데, 이는 저장된 블렌딩된 지오펜스가 이와 달리 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치에서 지리적으로 가까운 지오펜스들에 대해 생성된 블렌딩된 지오펜스를 정확히 표현하지 못할 수도 있기 때문이다. 예를 들어, 지오펜스-인에이블드 애플리케이션들 A, B, 및 C 그리고 지오펜스들 1, 2, 및 3 을 표현하는 저장된 블렌딩된 지오펜스는, 컴퓨팅 디바이스가 단지 현재 위치에서 지오펜스-인에이블드 애플리케이션들 A 및 B 만을 그리고 지오펜스들 1 및 2 만을 포함할 때 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 위치-기반 서비스들의 정확도를 상당히 저하시킬 수도 있다. 다른 예에서, 저장된 블렌딩된 애플리케이션은 지오펜스-인에이블드 애플리케이션들 A, B, 및 C 그리고 지오펜스들 1, 2, 및 3 을 포함할 수도 있지만, 리포팅 애플리케이션의 컴퓨팅 디바이스는 지오펜스-인에이블드 애플리케이션들 A, B, C, 및 D 그리고 지오펜스들 1, 2, 3, 4, 및 5 를 포함할 수도 있다. 따라서, 이 예에서, 저장된 블렌딩된 지오펜스는 지오펜스-인에이블드 애플리케이션 D 그리고 지오펜스들 4 및 5 를 정확히 표현하지 못할 수도 있는데, 이는 또한 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 위치-기반 서비스들의 정확도에 크게 영향을 미칠 수도 있다.
그에 따라, 결정 블록 724 에서, 지오펜스 서버는, 리스트에서의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과, 리포팅 애플리케이션의 컴퓨팅 디바이스와 현재 연관된 지오펜스-인에이블드 애플리케이션들 및 지리적으로 가까운 지오펜스들과의 사이에 정확한 매치가 존재하는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 410 에서 리포팅 애플리케이션의 컴퓨팅 디바이스와 현재 연관된 것으로 결정된 지오펜스-인에이블드 애플리케이션들을 리스트에서의 지오펜스-인에이블드 애플리케이션들과 비교하는 것에 의해 이 동작을 달성할 수도 있다. 이와 유사하게, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 414 에서의 동작들에서 지리적으로 가까운 것으로 결정된 지오펜스들을 리스트에서의 지오펜스들과 비교할 수도 있다.
지오펜스 서버가 정확한 매치가 존재하지 않는다고 결정할 때 (즉, 결정 블록 724 = "아니오"), 지오펜스 서버는 도 6 을 참조하여 상술된 방법 (600) 의 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 다시 말해, 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치와 연관된 블렌딩된 지오펜스가 존재하더라도, 리포팅 애플리케이션은 리포팅 애플리케이션의 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과 리스트에 포함된 것들과의 사이에 정확한 매치가 존재하지 않을 때 블렌딩된 지오펜스를 수신하지 못할 수도 있는데, 이는 저장된 블렌딩된 지오펜스가 상술된 바와 같이 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 의한 이용에 적합하지 않을 수도 있기 때문이다. 따라서, 블렌딩된 지오펜스를 전송하는 대신에, 지오펜스 서버는 리포팅 애플리케이션의 개발자들에 의해 원래 정의된 대로 리포팅 애플리케이션의 지오펜스들에 관한 업데이트 정보를 전송할 수도 있다.
지오펜스 서버가 정확한 매치가 존재한다고 결정할 때 (즉, 결정 블록 724 = "예"), 지오펜스 서버는 블록 728 에서 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 블렌딩된 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송한 후에, 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블록 402 에서의 동작들을 수행하는 것에 의해 계속적인 루프에서 방법 (400) 의 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.
추가 실시형태들에서, 컴퓨팅 디바이스는 블렌딩된 지오펜스들을 관리하거나 및/또는 블렌딩된 지오펜스들을 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들에 전송하도록 구성될 수도 있는 지오펜스 관리 유닛을 포함할 수도 있다.
일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상의 다른 지오펜스 애플리케이션들 대신에 프록시 지오펜스 서버로서 작용하도록 컴퓨팅 디바이스 상에서 실행할 수도 있다. 이 실시형태에서, 지오펜스 관리 유닛은 애플리케이션들 그 자체로부터 또는 지오펜스 서버로부터 지오펜스-인에이블드 애플리케이션들 각각에 대한 지오펜스 파라미터 정보를 수신할 수도 있다. 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션들의 지오펜스들을 단일의 블렌딩된 지오펜스에 결합할 수도 있다.
다른 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스가 만족될 때를 검출하기 위해 컴퓨팅 디바이스의 포지션을 모니터링할 수도 있고, 그것이 있을 때, 블렌딩된 지오펜스가 횡단되었다는 통지를 컴퓨팅 디바이스 상의 각각의 애플리케이션에 거의 동시에 전송할 수도 있다. 이것은 각각의 애플리케이션을 인에이블시켜서 그것이 그의 지오펜스가 횡단되었다는 것을 결정한 것처럼 독립적으로 작용할 수도 있다. 애플리케이션들이 동시에 통지되므로, 위치-감지 라디오들의 이용이 최소화되고 지오펜스 서버로의 단일 연결이 확립되어 애플리케이션들 모두를 지원할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 각각에게 전송할 수도 있고, 이 지오펜스-인에이블드 애플리케이션들은 그 후에, 이들이 재도출된 지오펜스를 지오펜스 서버로부터 수신한 것처럼 상술된 바와 같이 동작할 수도 있다.
도 8 은 하나 이상의 지오펜스-인에이블드 애플리케이션들의 지오펜스들을 관리 및 블렌딩함에 있어서의 이용을 위해 지오펜스 관리 유닛 (812) 을 포함하는 일 실시형태의 컴퓨팅 디바이스 (800) 의 컴포넌트 블록 다이어그램이다.
일 실시형태에서, 컴퓨팅 디바이스 (800) 는 프로세서 (802) 를 포함할 수도 있다. 프로세서 (802) 는 멀티-코어 호스트 프로세서일 수도 있고, 프로세서 (802) 는 애플리케이션들 및/또는 이러한 애플리케이션들을 관리하기 위한 오퍼레이팅 시스템들을 작동시키는 것이 가능한 다양한 프로그래밍가능 프로세서들 중 임의의 것일 수도 있다. 예를 들어, 프로세서 (802) 는 하이-레벨 오퍼레이팅 시스템 (즉, OS (806)) 을 지속적으로 실행할 수도 있고, 수많은 루틴들을 수행하여 컴퓨팅 디바이스 (800) 의 소프트웨어 및 컴포넌트들을 활용할 수도 있다. 프로세서 (802) 는 또한 외부에 있거나 및/또는 온-칩 메모리일 수도 있는 메모리 컴포넌트 (804) 내에 데이터를 저장하고 그 메모리 컴포넌트 (804) 로부터 데이터를 취출할 수도 있다.
다른 실시형태에서, 하나 이상의 지오펜스-인에이블드 애플리케이션들 (808) 은 OS (806) 의 상부에서 동작할 수도 있고 프로세서 (802) 에 의해 실행될 수도 있다. 지오펜스-인에이블드 애플리케이션들 (808) 은 다양한 기법들을 이용하여 컴퓨팅 디바이스 (800) 의 현재 위치를 결정할 수도 있다. 예를 들어, 지오펜스-인에이블드 애플리케이션들 (808) 은 옵션적 GPS 수신기 (810) 로부터 컴퓨팅 디바이스 (800) 의 현재 위치를 수신할 수도 있다. 다른 예에서, 지오펜스-인에이블드 애플리케이션들 (808) 은 예컨대 다수의 Wi-Fi 액세스 포인트들, 블루투스 비콘들, 셀 사이트들, 기지국들 등으로부터 신호들을 수신하기 위해 하나 이상의 안테나들 (816) 및 무선-주파수 트랜시버 (814) 를 활용하는 것에 의해, 다양한 로컬 포지셔닝 시스템들을 이용하여 컴퓨팅 디바이스 (800) 의 현재 위치를 결정할 수도 있다. 다른 실시형태에서, 지오펜스-인에이블드 애플리케이션들은 GPS 와 다양한 로컬 포지셔닝 시스템들 양쪽을 활용할 수도 있다.
다른 실시형태에서, 컴퓨팅 디바이스 (800) 는 지오펜스-인에이블드 애플리케이션들 (808) 에 대한 지오펜스들을 관리 및/또는 블렌딩하도록 구성된 지오펜스 관리 유닛 (812) 을 포함할 수도 있다. 지오펜스 관리 유닛 (812) 은 지오펜스-인에이블드 애플리케이션들 (808) 로부터 또는 지오펜스 서버 (미도시) 로부터 지오펜스-인에이블드 애플리케이션들의 지오펜스들에 관한 정보를 수신할 수도 있다. 지오펜스 관리 유닛 (812) 은 또한 상술된 바와 같이 지오펜스 서버에 기인된 것으로서 지오펜스들을 블렌딩하는 동일한 또는 유사한 방법들을 이용하여 현재 위치에 가깝게 근접하는 및/또는 오버래핑되는 지오펜스-인에이블드 애플리케이션들 (808) 의 지오펜스들을 결합할 수도 있다.
다른 실시형태에서, 지오펜스 관리 유닛 (812) 은 (예를 들어, GPS 및/또는 로컬 포지셔닝 시스템들을 이용하여) 상술된 바와 같이 컴퓨팅 디바이스 (800) 의 현재 위치를 결정할 수도 있고, 지오펜스-인에이블드 애플리케이션들 (808) 에게 블렌딩된 지오펜스가 횡단되었을 때를 한 번에 알릴 수도 있어서, 지오펜스-인에이블드 애플리케이션들 (808) 은 지오펜스 서버와 동시에 또는 거의 동시에 통신할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛 (812) 은 지오펜스-인에이블드 애플리케이션들 (808) 과 지오펜스 서버 사이의 중개자 (intermediary) 로서 기능하도록 구성될 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛 (812) 은 지오펜스 서버로부터 지오펜스-인에이블드 애플리케이션들 (808) 에 대한 지오펜스 정보를 수신하고, 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하고, 블렌딩된 지오펜스가 횡단될 때까지 컴퓨팅 디바이스 (800) 의 현재 위치를 모니터링하고, 지오펜스 서버에게 지오펜스 횡단을 통지하며, 지오펜스-인에이블드 애플리케이션들 (808) 대신에 지오펜스 서버로부터 업데이트된 지오펜스 정보를 수신할 수도 있다.
지오펜스 관리 유닛 (812) 이 도 8 에서 컴퓨팅 디바이스 (800) 상에 포함된 별개의 컴포넌트로서 예시되지만, 지오펜스 관리 유닛은 컴퓨팅 디바이스 (800) 상에서 다양한 방법들로 구현될 수도 있다. 예를 들어, 지오펜스 관리 유닛 (812) 은 OS (806) 의 상부에서 작동하는 독립형 프로그램 또는 지오펜스-인에이블드 애플리케이션들 (808) 중 하나일 수도 있고, 컴퓨팅 디바이스 (800) 상에 포함된 프로세서 (예를 들어, 프로세서 (802)) 에 의해 실행될 수도 있다. 다른 예에서, 지오펜스 관리 유닛은 백그라운드 프로세스 또는 서비스와 같은 OS (806) 의 부분으로서 구현될 수도 있다. 다른 예에서, 지오펜스 관리 유닛은 옵션적 GPS 수신기 (810) 에 또는 프로세서 (802) 에 포함된 로직 회로와 같은 하드웨어로 구현될 수도 있다. 그러나, 지오펜스 관리 유닛 (812) 은 그것이 구현되는 특정 방식에 상관없이 동일한 능력으로 기능할 수도 있다는 것이 예상된다.
추가로, 설명의 용이를 위해, 지오펜스 관리 유닛은 아래에 설명된 실시형태의 방법들 중 하나 이상의 실시형태의 방법의 하나 이상의 동작들을 수행하는 것으로서 설명될 수도 있다. 그러나, 지오펜스 관리 유닛이 소프트웨어로 구현되는 실시형태들에서, 이러한 동작들은 지오펜스 관리 유닛 소프트웨어를 실행하는 컴퓨팅 디바이스 프로세서 (예를 들어, 프로세서 (802)) 에 의해 수행될 수도 있다는 것이 이해되어야 한다.
컴퓨팅 디바이스 (800) 상에 포함될 수도 있는 다른 컴포넌트들은 도 16 을 참조하여 아래에 추가로 설명된다.
도 9a 및 도 9b 는 컴퓨팅 디바이스 상에서 로컬로 블렌딩된 지오펜스들을 생성하기 위해 컴퓨팅 디바이스 상의 지오펜스 관리 유닛을 실행하는 프로세서에 의해 수행될 수도 있는 실시형태의 방법들 (900, 920) 을 예시한다.
도 4a 및 도 4b 를 참조하여 상술된 바와 같이, 설명의 용이를 위해, 도 9a 내지 도 15c 를 참조하여 아래에 설명된 것들과 같은 다양한 실시형태들은, 컴퓨팅 디바이스의 현재 위치를 포함하거나 그 현재 위치에 의존하는 동작들을 포함할 수도 있다. 그러나, 컴퓨팅 디바이스의 현재 위치에 대한 임의의 언급 또는 의존성은 청구항들에서 명시적으로 인용되지 않는다면 청구항들의 범위를 제한하려고 의도된 것이 아니다.
도 9a 는 동일한 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들을 관리하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (900) 을 예시한다. 일 실시형태에서, 지오펜스 관리 유닛은, 컴퓨팅 디바이스의 현재 위치에서의 오버래핑 또는 가까운 지오펜스들을, 지오펜스 관리 유닛이 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있는 단일의 블렌딩된 지오펜스에 결합할 수도 있다.
블록 902 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 실행하는 복수의 지오펜스-인에이블드 애플리케이션들을 식별할 수도 있다. 일 실시형태에서, 각각의 지오펜스-인에이블드 애플리케이션은 지오펜스 관리 유닛에 등록할 수도 있다. 예를 들어, 각각의 지오펜스-인에이블드 애플리케이션은 그의 식별 정보 (예를 들어, 애플리케이션 ID, 지오펜스 서버 ID 등) 를 지오펜스 관리 유닛에 전송하도록 지오펜스-인에이블드 애플리케이션을 구성하는 명령들을 포함할 수도 있다.
블록 904 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 위에서 논의된 바와 같이 컴퓨팅 디바이스의 현재 위치를 결정하기 위해 컴퓨팅 디바이스의 GPS 수신기 및/또는 컴퓨팅 디바이스 상의 다양한 로컬-포지셔닝 컴포넌트들을 활용할 수도 있다.
블록 906 에서, 지오펜스 관리 유닛은 각각의 식별된 지오펜스-인에이블드 애플리케이션에 대한 현재 위치에서의 지오펜스들에 관한 정보를 획득할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 지오펜스 서버와 통신하고, 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 요구할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛은 복수의 지오펜스-인에이블드 애플리케이션들로부터 지오펜스 정보를 요구할 수도 있고, 이 복수의 지오펜스-인에이블드 애플리케이션들은 이러한 지오펜스 정보를 지오펜스 서버로부터 수신할 수도 있다. 다른 실시형태에서, 복수의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스 정보는 지오펜스들의 형상들, 주변들, 지리적 위치들, 및 사이즈들에 관한 정보를 포함할 수도 있다.
블록 908 에서, 지오펜스 관리 유닛은 지오펜스 정보에 기초하여 지리적으로 가까운 현재 위치에서의 지오펜스들을 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버를 참조하여 위에서 논의된 바와 같이, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스들이 오버래핑되는지 및/또는 가깝게 근접한지 여부를 결정하기 위해 다양한 계산들을 수행할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 영역에서의 지오펜스들 각각의 영역 및/또는 주변을 결정할 수도 있고, 복수의 지오펜스들이 오버래핑되거나 또는 거의 오버래핑되는 영역들 및/또는 주변들을 갖는지 여부를 결정할 수도 있다.
블록 910 에서, 지오펜스 관리 유닛은 현재 위치에서 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 지오펜스 관리 유닛은 지오펜스들을 결합하기 위해 다양한 기법들을 구현할 수도 있다. 예를 들어, 지오펜스 관리 유닛은, 별개의 오버래핑 지오펜스들 각각을 포함하거나 또는 지오펜스들의 형상들의 가중된 평균을 이용하여 지오펜스들의 중심화된 형상을 표현하는 블렌딩된 지오펜스를 생성할 수도 있다. 지오펜스들을 블렌딩된 지오펜스에 결합하는 것은 도 15a 내지 도 15c 를 참조하여 아래에 추가로 설명된다.
블록 912 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 식별된 지오펜스-인에이블드 애플리케이션들 각각에 전송할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션들 각각을 인에이블시켜서 블렌딩된 지오펜스를 모니터링할 수도 있는 블렌딩된 지오펜스에 관한 정보를 전송할 수도 있다. 그 결과, 복수의 지오펜스-인에이블드 애플리케이션들은 위치-감지 라디오들의 출력을 동시에 활용하여 블렌딩된 지오펜스가 횡단될 때를 인지할 수도 있고, 복수의 지오펜스-인에이블드 애플리케이션들 각각은 지오펜스 서버와 동시에 또는 거의 동시에 통신할 수도 있다.
결정 블록 914 에서, 지오펜스 관리 유닛은 현재 위치가 변화되었는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 상이한 지오펜스들이 존재할 수도 있는 상이한 위치로 컴퓨팅 디바이스가 이동하였는지 여부를 주기적으로 체크할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 몰 위치로부터 주차 지역 위치로 이동하였는지 여부를 결정할 수도 있다.
지오펜스 관리 유닛이 현재 위치가 변화되지 않았다고 결정할 때 (즉, 결정 블록 914 = "아니오"), 지오펜스 관리 유닛은 현재 위치가 변화되었을 때를 인지하기 위해 결정 블록 914 에서의 프로세스를 계속적으로 반복할 수도 있다. 지오펜스 관리 유닛이 현재 위치가 변화되었다고 결정할 때 (즉, 결정 블록 914 = "예"), 지오펜스 관리 유닛이 블록 904 에서 컴퓨팅 디바이스의 현재 위치를 결정하는 것을 계속할 수도 있으므로 지오펜스 관리 유닛은 루프에서 이 프로세스를 수행하는 것을 계속할 수도 있다.
추가 실시형태에서, 지오펜스 관리 유닛은 단일의 지오펜스-인에이블드 애플리케이션에 대한 다수의 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하기 위해 상술된 동작들을 수행하여, 그에 의해 단일의 지오펜스-인에이블드 애플리케이션을 인에이블시켜서 다수의 개별 지오펜스들보다는 단일의 블렌딩된 지오펜스를 모니터링할 수도 있다.
도 9b 는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스들의 지리적으로 가까운 그룹들을 블렌딩하기 위해 컴퓨팅 디바이스 상에서 지오펜스 관리 유닛을 실행하는 프로세서에 의해 구현될 수도 있는 일 실시형태의 방법 (920) 을 예시한다. 일 실시형태에서, 컴퓨팅 디바이스 프로세서는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들과 연관된 지리적으로 가까운 지오펜스들을 선제적으로 함께 그룹화할 수도 있고, 프로세서는 지오펜스들이 블렌딩된 지오펜스에 포함되는 애플리케이션들 대신에 블렌딩된 지오펜스를 모니터링하는 지오펜스 관리 유닛에 의한 또는 이들 애플리케이션들 중 하나 이상에 의한 이용을 위해 가까운 지오펜스들의 이들 그룹들 각각을 블렌딩된 지오펜스에 결합할 수도 있다.
다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스들을 주기적으로 (예를 들어, 밤마다 또는 매주) 생성 및 저장할 수도 있다. 따라서, 추가 실시형태에서, 컴퓨팅 디바이스 상의 애플리케이션으로부터 지오펜스 정보에 대한 지오펜스 횡단 통지 또는 다른 요구를 수신한 것에 응답하여 또는 자체적으로, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션과 연관된 저장된 블렌딩된 지오펜스에 빨리 액세스할 수도 있고, 저장된 블렌딩된 지오펜스를 그 애플리케이션에 전송할 수도 있다. 다시 말해, 지오펜스 관리 유닛을 실행하는 프로세서는 애플리케이션들에 대해 미리 생성된 블렌딩된 지오펜스들을 준비할 수도 있고, 필요 또는 요구에 따라 이들 미리 만들어진 블렌딩된 지오펜스들을 애플리케이션들에 전송할 수도 있다.
블록 902 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 도 9a 를 참조하여 상술된 바와 같이 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 식별할 수도 있다. 지오펜스 관리 유닛을 실행하는 프로세서는 또한, 예컨대 지오펜스 서버로부터 애플리케이션들에 관한 지오펜스 정보를 요구하는 것에 의해 또는 애플리케이션들로부터 지오펜스 정보를 직접 요구하는 것에 의해, 블록 924 에서 식별된 지오펜스-인에이블드 애플리케이션과 연관된 지오펜스들에 관한 정보를 획득할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 모바일 디바이스로부터 소정 거리 내의 지오펜스들에 대한 또는 특정 영역 (예를 들어, 주 또는 구역의 소정 부분) 과 연관된 지오펜스들에 대한 정보를 단지 획득할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 이들의 위치들에 상관없이 지오펜스들에 대한 정보를 수신할 수도 있다.
블록 926 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 지오펜스 정보에 기초하여 서로 지리적으로 가까운 식별된 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 결정할 수도 있다. 일반적으로 상술된 바와 같이, 지오펜스들은 이들의 주변들이 서로 소정 거리 내에 있을 때 또는 이들의 영역들이 소정 정도의 오버랩을 가질 때 서로 지리적으로 가까울 수도 있다. 블록 928 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 블록 926 에서 지리적으로 가까운 것으로 결정된 이들 지오펜스들을 그룹화할 수도 있다.
블록 930 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 각각의 그룹에서의 지오펜스들을 결합하는 것에 의해 지오펜스들의 각각의 그룹에 대한 블렌딩된 지오펜스를 생성할 수도 있다. 일 실시형태에서, 블록 930 의 동작들을 수행하는 것에 의해, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 이용가능한 모든 가능한 블렌딩된 지오펜스 (또는 가능한 블렌딩된 지오펜스들의 특정 서브세트) 를 생성할 수도 있다. 블록 932 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 또한 추후 이용을 위해 블록 930 에서 생성되는 각각의 블렌딩된 지오펜스를 저장할 수도 있다.
옵션적 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 옵션적 블록 938 에서 소정 기간 대기할 수도 있고, 블록 924 에서 시작하는 상술된 동작들을 반복할 수도 있다. 다시 말해, 지오펜스 관리 유닛을 실행하는 프로세서는 저장된 블렌딩된 지오펜스들이 최신의 것이라는 것을 보장하기 위해 소정 기간이 경과한 후에 위에서의 동작들을 주기적으로 반복할 수도 있다.
위에서의 동작들과 동시에 또는 그 후에 발생할 수도 있는 추가 실시형태들에서, 지오펜스 관리 유닛을 실행하는 프로세서는 옵션적 블록 934 에서 지오펜스-인에이블드 애플리케이션으로부터 업데이트된 지오펜스 정보 (예를 들어, 지오펜스 횡단 통지) 에 대한 요구를 수신할 수도 있다. 지오펜스 관리 유닛을 실행하는 프로세서는 또한, 옵션적 블록 936 에서 지오펜스-인에이블드 애플리케이션과 연관된 저장된 블렌딩된 지오펜스를 그 애플리케이션에 전송할 수도 있다. 예를 들어, 지오펜스 관리 유닛을 실행하는 프로세서는 블록 930 에서 상술된 바와 같이 블렌딩된 지오펜스를 형성하는데 이용되었던 하나 이상의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션에 저장된 블렌딩된 지오펜스를 전송할 수도 있다. 프로세서는 옵션적 블록 934 에서 시작하는 루프에서 위에서의 동작들을 반복할 수도 있다.
따라서, 일 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 블록 932 에서 블렌딩된 지오펜스들을 메모리에 저장할 수도 있고, 필요에 따라 (예를 들어, 도 12 를 참조하여 아래에 일반적으로 설명되는 바와 같이 리포팅 애플리케이션으로부터의 리포팅 통지에 응답하여) 옵션적 블록 936 에서 블렌딩된 지오펜스들을 지오펜스-인에이블드 애플리케이션들에게 전송할 수도 있다. 옵션적 블록 936 의 동작들의 다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 (예를 들어, "푸시" 동작에서) 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에게 저장된 블렌딩된 지오펜스들을 선제적으로 전송하여 이들 애플리케이션들을 인에이블시켜서 블렌딩된 지오펜스를 즉시 모니터링하는 것을 시작할 수도 있다. 추가 실시형태 (미도시) 에서, 지오펜스 관리 유닛은 지오펜스들이 블렌딩된 지오펜스에 포함되는 애플리케이션들 대신에 저장된 블렌딩된 지오펜스들을 모니터링할 수도 있고, 저장된 블렌딩된 지오펜스가 횡단되었을 때를 이들 애플리케이션들에게 시그널링할 수도 있다.
도 10a 는 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였을 때를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에게 통지하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1000) 을 예시한다. 일 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 생성하고, 블렌딩된 지오펜스를 모니터링하며, 블렌딩된 지오펜스가 횡단될 때를 지오펜스-인에이블드 애플리케이션 대신에 지오펜스 서버에게 통지하는 것에 의해 지오펜스-인에이블드 애플리케이션들과 지오펜스 서버 사이의 중개자로서 기능할 수도 있다.
일 실시형태에서, 방법 (1000) 의 동작들은 도 9a 를 참조하여 상술된 방법 (900) 의 블록 912 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 관리 유닛은 도 9a 를 참조하여 상술된 방법 (900) 의 블록 910 에서 현재 위치에서 오버래핑 또는 거의 오버래핑되는 지오펜스들을 블렌딩된 지오펜스에 결합한 후에 방법 (1000) 을 수행하는 것을 시작할 수도 있다.
옵션적 결정 블록 1002 에서, 지오펜스 관리 유닛은 현재 위치가 변화되었는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치를 이전에 결정된 위치와 비교하여 컴퓨팅 디바이스가 이동하였는지 여부를 결정할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 소정의 임계 거리를 이동하였을 때 현재 위치가 변화되었다는 것을 결정할 수도 있다.
지오펜스 관리 유닛이 현재 위치가 변화되었다고 결정할 때 (즉, 옵션적 결정 블록 1002 = "예"), 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치를 결정하는 것에 의해 도 9a 를 참조하여 상술된 방법 (900) 의 블록 904 에서의 프로세스를 수행하는 것을 계속할 수도 있다. 일 실시형태에서, 각각의 위치는 상이한 포지션들에서의 상이한 지오펜스들을 포함할 수도 있고, 각각의 지오펜스 관리 유닛은 각각의 위치에서의 지오펜스들을 상이하게 결합하여 그 영역에 대한 블렌딩된 지오펜스를 생성할 필요가 있을 수도 있다.
지오펜스 관리 유닛이 현재 위치가 변화되지 않았다고 결정할 때 (즉, 옵션적 결정 블록 1002 = "아니오"), 지오펜스 관리 유닛은 블록 1004 에서 블렌딩된 지오펜스의 횡단에 대해 모니터링할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 블렌딩된 지오펜스의 경계를 횡단하였는지 여부를 모니터링할 수도 있다.
결정 블록 1006 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 GPS 및/또는 로컬-포지셔닝 시스템들 (예를 들어, Wi-Fi, 셀 타워 신호들 등) 을 활용하여 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하지 않았다고 결정할 때 (즉, 결정 블록 1006 = "아니오"), 지오펜스 관리 유닛은 옵션적 결정 블록 1002 에서의 프로세스를 수행하는 것을 계속할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 상술된 바와 같이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 계속적으로 결정할 수도 있다.
컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1006 = "예"), 지오펜스 관리 유닛은 블록 1007 에서 블렌딩된 지오펜스가 횡단되었음을 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 식별된 복수의 지오펜스-인에이블드 애플리케이션들 각각에게 통지할 수도 있다. 지오펜스 관리 유닛은 또한, 블록 1008 에서 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 대신에 블렌딩된 지오펜스가 횡단되었음을 지오펜스 서버에게 통지할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 복수의 지오펜스-인에이블드 애플리케이션들 각각 대신에 지오펜스 위반들에 대해 모니터링하는 것을 담당하여, 그에 의해 위치-감지 라디오들의 이용을 최소화할 수도 있고, 지오펜스 관리 유닛은 복수의 지오펜스-인에이블드 애플리케이션들 각각 대신에 블렌딩된 지오펜스가 횡단될 때를 지오펜스 서버에게 알릴 수도 있다. 추가 실시형태에서, 지오펜스 관리 유닛은 하나의 통신에서 블렌딩된 지오펜스 횡단을 지오펜스 서버에게 통지하여, 그에 의해 컴퓨팅 디바이스 상의 리소스들 (예를 들어, 전력) 및/또는 시간을 절약할 수도 있다.
옵션적 결정 블록 1002 에서 지오펜스 관리 유닛이 현재 위치가 변화되었는지 여부를 결정하는 것을 계속할 수도 있으므로 프로세스가 루프에서 계속될 수도 있다.
도 10b 는 블렌딩된 지오펜스가 횡단되었을 때를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에게 통지하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1020) 을 예시한다.
일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 프로세서 상에서 실행하고 디바이스 프로세서 상에서 또한 실행하는 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대한 프록시 서버로서 기능하는 애플리케이션일 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 지오펜스 서버로부터 블렌딩된 지오펜스를 요구하고, 지오펜스-인에이블드 애플리케이션들 대신에 컴퓨팅 디바이스의 현재 위치를 모니터링하며, 블렌딩된 지오펜스가 횡단될 때를 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 각각에게 통지할 수도 있다.
블록 902 에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 도 9a 를 참조하여 상술된 바와 같이 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 식별할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 블록 1022 에서 식별된 지오펜스-인에이블드 애플리케이션들의 리스트를 지오펜스 서버에 전송할 수도 있다. 일 실시형태에서, 리스트는, 도 4a 내지 도 7b 를 참조하여 상술된 다양한 실시형태들을 참조하여 위에서 일반적으로 논의된 바와 같이, 지오펜스 서버를 인에이블시켜서 리스팅된 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 식별하고, 지리적으로 가까운 식별된 지오펜스들을 결정하고, 이들 지리적으로 가까운 지오펜스들에 기초하여 블렌딩된 지오펜스를 생성하며, 생성된 블렌딩된 지오펜스를 컴퓨팅 디바이스에 전송할 수도 있다.
옵션적 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 블록 1024 에서 디바이스의 현재 위치를 결정할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 옵션적 블록 1026 에서 디바이스의 현재 위치를 지오펜스 서버에 전송하여, 그에 의해 지오펜스 서버를 인에이블시켜서 디바이스의 현재 위치에 지리적으로 가까운 지오펜스-인에이블드 애플리케이션들의 지오펜스들에 대한 블렌딩된 지오펜스를 생성할 수도 있다.
블록 1028 에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 리스팅된 지오펜스-인에이블드 애플리케이션들 중 하나 이상과 연관된 지오펜스들을 포함하는 블렌딩된 지오펜스를 지오펜스 서버로부터 수신할 수도 있다. 일 실시형태에서, 블렌딩된 지오펜스는 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 포함할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 모든 가능한 블렌딩된 지오펜스 또는 블렌딩된 지오펜스들의 특정 서브세트 (예를 들어, 특정 지리적 구역 또는 영역에 대한 블렌딩된 지오펜스들) 를 표현하는 하나 이상의 블렌딩된 지오펜스들을 수신할 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 아래에 추가로 설명되는 바와 같이 컴퓨팅 디바이스의 현재 위치에 관련된 블렌딩된 지오펜스를 식별하고, 식별된 (즉, 관련된) 블렌딩된 지오펜스를 모니터링하는 것을 시작할 수도 있다.
블록 1028 에서 지오펜스 서버로부터 블렌딩된 지오펜스를 수신한 후에, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 옵션적 결정 블록 1030 에서 업데이트된 블렌딩된 지오펜스가 요구되는지 여부를 옵션적으로 결정할 수도 있다. 예를 들어, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 지오펜스 서버로부터 이전에 수신된 블렌딩된 지오펜스가 더 이상 관련되지 않거나 또는 유용하지 않다는 것을 결정할 수도 있는데, 이는 컴퓨팅 디바이스가 블렌딩된 지오펜스에 의해 커버되지 않은 다른 영역으로 이동하였기 때문이다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 업데이트된 블렌딩된 지오펜스가 요구된다고 결정할 때 (즉, 옵션적 결정 블록 1030 = "예"), 프로세서는 업데이트된 블렌딩된 지오펜스를 요구하기 위해 블록 1022 에서 시작하는 위에서의 동작들을 반복할 수도 있다.
지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 업데이트된 블렌딩된 지오펜스가 요구되지 않는다고 결정할 때 (즉, 옵션적 결정 블록 1030 = "아니오"), 프로세서는 도 10a 를 참조하여 상술된 바와 같이 블록 1004 에서 블렌딩된 지오펜스의 횡단에 대해 모니터링할 수도 있다.
지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 또한 도 10a 를 참조하여 상술된 바와 같이 결정 블록 1006 에서 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하지 않았다고 결정할 때까지 (즉, 결정 블록 1006 = "아니오" 동안), 프로세서는 옵션적 결정 블록 1030 에서 시작하는 위에서의 동작들을 반복할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 블렌딩된 지오펜스를 횡단하였다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1006 = "예"), 프로세서는 도 10a 를 참조하여 추가로 상술된 바와 같이 블록 1007 에서 블렌딩된 지오펜스가 횡단되었음을 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 식별된 복수의 지오펜스-인에이블드 애플리케이션들 각각에게 통지할 수도 있다.
도 11 은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대해 양립가능한 지오펜스들을 결합하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1100) 을 예시한다. 방법 (1100) 의 동작들은 도 9a 를 참조하여 상술된 방법 (900) 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 관리 유닛은 방법 (900) 의 블록 908 에서 지오펜스 정보에 기초하여 지리적으로 가까운 현재 위치에서의 지오펜스들을 결정한 후에 방법 (1100) 을 수행하는 것을 시작할 수도 있다.
결정 블록 1102 에서, 지오펜스 관리 유닛은 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 그 지오펜스 관리 유닛이 현재 위치에서의 임의의 지오펜스들을 결합하는 것이 가능한지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 현재 위치에 단 하나의 지오펜스만이 존재하거나 또는 서로 가깝지 않은 복수의 지오펜스들이 영역에 존재할 때 현재 위치에서의 지오펜스들을 결합하는 것이 불가능할 수도 있다.
지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1102 = "아니오"), 프로세스는 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 결정할 때 도 9a 를 참조하여 상술된 방법 (900) 의 결정 블록 914 에서 계속될 수도 있다.
지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1102 = "예"), 지오펜스 관리 유닛은 블록 1104 에서 복수의 지리적으로 가까운 지오펜스들 중 어떤 것이 블렌딩하기에 적합한지를 결정할 수도 있다. 도 6 을 참조하여 상술된 방법 (600) 에서 블록 604 를 참조하여 상술된 바와 같이, 오버래핑 및/또는 가까운 지오펜스들은 그럼에도 불구하고 다양한 이유로 블렌딩하기에 부적합할 수도 있다. 예를 들어, 지오펜스는 (예를 들어, 의도된 대로 기능하도록 높은 정도의 위치-기반 정확도를 요구하는 애플리케이션에 대해) 블렌딩하기에 부적절한 것으로서 지오펜스를 마킹하는 개발자에 의해 부가된 메타데이터를 포함할 수도 있다. 다른 양립불가능성들은 양립불가능한 지오펜스 형상들 (예를 들어, 정사각형 지오펜스 및 원형 지오펜스) 또는 양립불가능한 지오펜스 타입들 (예를 들어, "도보" 지오펜스 및 "드라이빙" 지오펜스) 을 포함할 수도 있다.
결정 블록 1106 에서, 지오펜스 관리 유닛은 복수의 오버래핑 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 결합되기에 적절한 적어도 2 개의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1106 = "아니오"), 프로세스는 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 결정할 때 도 9a 를 참조하여 상술된 방법 (900) 의 결정 블록 914 에서 계속될 수도 있다.
지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1106 = "예"), 지오펜스 관리 유닛은 블록 1108 에서 다수의 양립가능한 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 일 실시형태에서, 다수의 양립가능한 지오펜스들이 존재할 때, 지오펜스 관리 유닛은 이들을 블렌딩된 지오펜스에 결합하는 것이 가능할 수도 있다.
블록 1110 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩하기에 적합한 다수의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있다. 다시 말해, 블렌딩하기에 적합한 현재 위치에서의 지오펜스들을 갖는 이들 애플리케이션들만이 블렌딩된 지오펜스들을 수신할 수도 있고, 다른 지오펜스-인에이블드 애플리케이션들은 블렌딩된 지오펜스를 수신하지 못할 수도 있다. 일 실시형태에서, 다른 지오펜스-인에이블드 애플리케이션들은 이들의 애플리케이션 개발자들에 의해 원래 정의된 지오펜스들을 모니터링하는 것을 계속할 수도 있는데, 이는 이들 지오펜스들이 블렌딩된 지오펜스에 결합되지 않았기 때문이다.
프로세스는 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 결정할 때 도 9a 를 참조하여 상술된 방법 (900) 의 결정 블록 914 에서 계속될 수도 있다.
도 12 는 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신한 것에 응답하여 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1200) 을 예시한다. 추가 실시형태들에서, 지오펜스 관리 유닛은 지오펜스 서버와 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들 사이의 중개자로서 기능할 수도 있다.
블록 1202 에서, 지오펜스 관리 유닛은 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다. 일 실시형태에서, 지오펜스-인에이블드 애플리케이션들은 지오펜스 횡단들에 대해 개별적으로 모니터링될 수도 있고 지오펜스 횡단 통지를 지오펜스 관리 유닛에 (즉, 직접적으로 지오펜스 서버 대신에) 전송하는 것에 의해 지오펜스가 횡단되었을 때를 나타낼 수도 있고, 지오펜스 관리 유닛은 아래에 설명된 바와 같이 이에 응답하여 블렌딩된 지오펜스들에 대한 정보를 복수의 지오펜스-인에이블드 애플리케이션에 리턴할 수도 있다.
결정 블록 1204 에서, 지오펜스 관리 유닛은 그 지오펜스 관리 유닛이 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하지 않았다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1204 = "아니오"), 프로세스는 지오펜스 관리 유닛이 지오펜스 횡단 통지를 수신할 때까지 블록 1202 에서 방법 (1200) 을 수행하는 것을 계속할 수도 있으므로 루프에서 계속될 수도 있다.
지오펜스 관리 유닛이 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1204 = "예"), 지오펜스 관리 유닛은 블록 1206 에서 지오펜스 횡단 통지를 지오펜스 서버에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션과 지오펜스 서버 사이의 중개자로서 기능할 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션이 지오펜스를 횡단할 때를 지오펜스 서버에게 알릴 수도 있고, 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션 대신에 지오펜스 서버로부터 업데이트된 지오펜스 정보를 수신할 수도 있다. 다른 실시형태에서, 상술된 바와 같이, 지오펜스 관리 유닛은 또한 동일한 컴퓨팅 디바이스 상에서 동작하는 다른 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스 정보를 수신하고, 동일한 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 의해 모니터링되는 블렌딩된 지오펜스를 생성할 수도 있다.
지오펜스 관리 유닛은 도 9a 를 참조하여 상술된 방법 (900) 의 블록 902 내지 910 에서 상술된 바와 같이 방법 (1200) 의 블록들 902 내지 910 에서의 동작들을 수행하는 것에 의해 방법 (1200) 을 수행하는 것을 계속할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들을 식별하고, 컴퓨팅 디바이스의 현재 위치를 결정하고, 각각의 식별된 지오펜스-인에이블드 애플리케이션에 대한 현재 위치에 대한 지오펜스 정보를 (예를 들어, 지오펜스 서버로부터) 획득하고, 지오펜스 정보에 기초하여 지리적으로 가까운 현재 위치에 존재하는 지오펜스들을 결정하며, 현재 위치에서의 오버래핑 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다.
블록 910 에서 블렌딩된 지오펜스를 생성한 후에, 지오펜스 관리 유닛은 블록 1208 에서 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션들에 대해 방법 (1200) 을 수행하는 것을 계속할 수도 있다. 따라서, 결국에는, 지오펜스 관리 유닛은 현재 위치에 대한 블렌딩된 지오펜스를 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있고, 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션은 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때를 동시에 또는 거의 동시에 검출하는 것이 가능할 수도 있다.
추가 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션과 연관된 다수의 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하기 위해 상술된 동작들을 수행하여, 그에 의해 리포팅 애플리케이션을 인에이블시켜서 다수의 개별 지오펜스들보다는 단일의 블렌딩된 지오펜스를 모니터링할 수도 있다.
도 13 은 블렌딩된 지오펜스 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할지 여부를 결정하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1300) 을 예시한다. 방법 (1300) 의 동작들은 도 12 를 참조하여 상술된 방법 (1200) 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 908 에서 지오펜스 정보에 기초하여 오버래핑되거나 및/또는 가깝게 근접한 현재 위치에서의 지오펜스들을 결정한 후에 방법 (1300) 을 수행하는 것을 시작할 수도 있다.
결정 블록 1102 에서, 지오펜스 관리 유닛은 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 도 11 을 참조하여 상술된 바와 같이, 지오펜스 관리 유닛은 그 지오펜스 관리 유닛이 현재 위치에서의 임의의 지오펜스들을 결합하는 것이 가능한지 여부를 결정할 수도 있다.
지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1102 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치에 복수의 지오펜스들이 존재하지 않을 때 블렌딩된 지오펜스를 생성하는 것이 불가능할 수도 있는데, 이는 2 개 이상의 지오펜스가 블렌딩된 지오펜스를 생성하기 위해 필요하기 때문이다. 다른 실시형태에서, 프로세스는 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있으므로 도 12 를 참조하여 상술된 방법 (1200) 에서의 블록 1202 에서 계속될 수도 있다.
지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1102 = "예"), 도 6 을 참조하여 상술된 방법 (600) 에서의 블록 604 를 참조하여 상술된 바와 같이 지오펜스 관리 유닛은 블록 1104 에서 복수의 지리적으로 가까운 지오펜스들 중 어떤 것이 블렌딩하기에 적합한지를 결정할 수도 있다.
결정 블록 1106 에서, 지오펜스 관리 유닛은 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 결합되기에 적절한 적어도 2 개의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1106 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 프로세스는 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있으므로 도 12 를 참조하여 상술된 방법 (1200) 에서의 블록 1202 에서 계속될 수도 있다.
지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1106 = "예"), 지오펜스 관리 유닛은 블록 1108 에서 블렌딩하기에 적합한 다수의 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 양립가능한 지오펜스들의 가중된 평균들에 기초하여 단일 지오펜스를 생성할 수도 있다.
옵션적 블록 1302 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩하기에 적합한 다수의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 포함된 지오펜스를 갖는 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션을 업데이트할 수도 있다. 일 실시형태에서, 블렌딩된 지오펜스를 다수의 양립가능한 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 선제적으로 푸시하는 것에 의해, 지오펜스 관리 유닛은 즉시 이들 애플리케이션들을 인에이블시켜서 블렌딩된 지오펜스를 모니터링하는 것을 시작할 수도 있다. 따라서, 지오펜스 서버는 추후의 시간에 이들 애플리케이션들 각각으로부터 지오펜스 횡단 통지들을 수신한 것에 응답하여 블렌딩된 지오펜스를 이들 지오펜스-인에이블드 애플리케이션들에 전송해야 하는 것을 회피할 수도 있다.
결정 블록 1306 에서, 지오펜스 관리 유닛은 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 결정 블록 1106 을 참조하여 상술된 바와 같이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한 다수의 지오펜스들에 포함되는지 여부를 결정할 수도 있다.
지오펜스 관리 유닛이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하지 않다고 결정할 때 (즉, 결정 블록 1306 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한 다수의 지오펜스들에 포함되지 않을 때 다수의 지오펜스들을 블렌딩하지 않는 것으로 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션의 지오펜스들에 대한 업데이트된 지오펜스 정보만을 단지 전송할 수도 있다. 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 1202 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다.
지오펜스 관리 유닛이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하다고 결정할 때 (즉, 결정 블록 1306 = "예"), 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블록 1208 에서 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다.
지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 1202 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다.
도 14a 및 도 14b 는 컴퓨팅 디바이스의 현재 위치와 함께 저장된 블렌딩된 지오펜스가 존재할 때 저장된 블렌딩된 지오펜스들을 생성하고 저장된 블렌딩된 지오펜스들을 리포팅 애플리케이션에 전송하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1400) 을 예시한다. 방법 (1400) 의 동작들은 도 12 를 참조하여 상술된 방법 (1200) 의 동작들의 일 실시형태를 구현한다. 따라서, 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 908 에서 지리적으로 가까운 현재 위치에서의 지오펜스들을 결정한 후에 방법 (1400) 을 수행하는 것을 시작할 수도 있다.
도 14a 를 참조하면, 결정 블록 1402 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은, 이전에 생성된 블렌딩된 지오펜스들을, 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 의한 추후 이용을 위해 특정 영역과 연관시킬 수도 있다. 다시 말해, 지오펜스 관리 유닛은 도 7a 및 도 7b 를 참조하여 상술된 바와 같이 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 대해 스크래치로부터 블렌딩된 지오펜스를 생성해야 하는 일 없이 동일한 영역에 대한 블렌딩된 지오펜스를 재이용할 수도 있다. 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 1402 = "예"), 지오펜스 관리 유닛은 도 14b 를 참조하여 아래에 설명된 블록 1422 에서의 동작들을 수행할 수도 있다.
지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되지 않는다고 결정할 때 (즉, 결정 블록 1402 = "아니오"), 지오펜스 관리 유닛은 도 9a 를 참조하여 상술된 바와 같이 블록 910 에서 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 예를 들어, 지오펜스 관리 유닛은, 지오펜스들을, 지오펜스들의 영역들 중 대부분 또는 전부를 포함하는 블렌딩된 지오펜스에 결합할 수도 있다.
블록 1406 에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 저장할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스에 포함된 비휘발성 메모리에 블렌딩된 지오펜스를 저장할 수도 있다. 블록 1408 에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 컴퓨팅 디바이스의 현재 위치와 연관시킬 수도 있다. 따라서, 결정 블록 1402 를 참조하여 상술된 바와 같이, 지오펜스 관리 유닛은 지오펜스들을 재블렌딩해야 하는 일 없이 장래에 다른 지오펜스-인에이블드 애플리케이션들에 전송하기 위해 컴퓨팅 디바이스의 현재 위치에 대한 저장된 블렌딩된 지오펜스를 재호출하는 것이 가능할 수도 있다.
블록 1208 에서, 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 다른 실시형태 (미도시) 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 컴퓨팅 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있다. 추가 실시형태 (미도시) 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩된 지오펜스와 연관된 지오펜스들을 현재 갖는 지오펜스-인에이블드 애플리케이션들에만 단지 전송할 수도 있다.
지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블록 1202 에서의 동작들을 수행하는 것에 의해 계속적인 루프에서 실시형태의 방법 (1200) 의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다.
도 14b 를 참조하면, 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 1402 = "예"), 지오펜스 관리 유닛은 블록 1422 에서 저장된 블렌딩된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 및 지오펜스들의 리스트를 생성할 수도 있다. 상술된 바와 같이, 저장된 블렌딩된 지오펜스는 지오펜스-애플리케이션들 및 이들의 각각의 지오펜스들의 특정 결합과 연관될 수도 있다.
도 7a 및 도 7b 를 참조하여 상술된 바와 같이, 저장된 블렌딩된 지오펜스가, 지리적으로 가까운 지오펜스들, 및 컴퓨팅 디바이스 상에 현재 존재하는 이들 지리적으로 가까운 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들을 정확히 반영할 때에만, 저장된 블렌딩된 지오펜스가 유용할 수도 있다. 예를 들어, 지오펜스 관리 유닛이 블렌딩된 지오펜스를 저장한 후에 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 및/또는 지오펜스들이 부가, 제거, 또는 변화되어, 그에 의해 저장된 블렌딩된 지오펜스가 쓸모없고 어쩌면 현재 위치에서 지리적으로 가까운 지오펜스들을 잘못 표현하게 된다. 예를 들어, 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션들 X, Y, 및 Z 의 지오펜스들 7, 8, 및 9 각각에 대한 블렌딩된 지오펜스를 생성 및 저장할 수도 있다. 그러나, 컴퓨팅 디바이스의 사용자는 지오펜스-인에이블드 애플리케이션 Y 를 언인스톨하여, 그에 의해 지오펜스-인에이블드 애플리케이션들 X, Y, 및 Z 에 대해 이전에 저장된 블렌딩된 지오펜스가 컴퓨팅 디바이스 상에 존재하는 현재 애플리케이션들 및 지오펜스들에서의 이용에 부적합하게 될 수도 있다.
그에 따라, 결정 블록 1424 에서, 지오펜스 관리 유닛은, 리스트에서의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과, 컴퓨팅 디바이스 상에 현재 존재하는 지오펜스-인에이블드 애플리케이션들 및 지리적으로 가까운 지오펜스들과의 사이에 정확한 매치가 존재하는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛은, 리스트에서의 지오펜스-인에이블드 애플리케이션들을, 도 12 를 참조하여 설명된 방법 (1200) 의 블록 902 에서 식별된 지오펜스-인에이블드 애플리케이션들과 비교하는 것에 의해 이 동작을 수행할 수도 있다. 이와 유사하게, 지오펜스 관리 유닛은, 리스트에서의 지오펜스들을, 도 12 를 참조하여 상술된 방법 (1200) 의 블록 908 의 동작들에서 지리적으로 가까운 것으로 결정된 이들 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들과 비교할 수도 있다.
지오펜스 관리 유닛이 정확한 매치가 존재하지 않는다고 결정할 때 (즉, 결정 블록 1424 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 다시 말해, 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치와 연관된 블렌딩된 지오펜스가 존재하더라도, 리포팅 애플리케이션은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과 리스트에 포함된 것들과의 사이에 정확한 매치가 존재하지 않을 때 블렌딩된 지오펜스를 수신하지 못할 수도 있다. 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블록 1202 에서의 동작들을 수행하는 것에 의해 계속적인 루프에서 실시형태의 방법 (1200) 의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 지오펜스 관리 유닛이 계속적으로 모니터링한다.
지오펜스 관리 유닛이 정확한 매치가 존재한다고 결정할 때 (즉, 결정 블록 1424 = "예"), 지오펜스 관리 유닛은 블록 1428 에서 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하고, 도 12 를 참조하여 상술된 바와 같이 방법 (1200) 의 블록 1202 에서의 동작들을 수행하는 것으로 리턴하여, 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 지오펜스 관리 유닛이 계속적으로 모니터링하도록 할 수도 있다.
도 15a 내지 도 15c 는 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위한 다양한 전략들의 예시들이다.
일 실시형태에서, 다수의 지오펜스들로부터 블렌딩된 지오펜스를 생성할 때, 지오펜스 서버 또는 지오펜스 관리 유닛은 가깝게 근접한/오버래핑되는 지오펜스들의 패턴을 분석하고, 효과적인 입상도를 유지하는 것에 의해 (예를 들어, 너무 많은 정밀도를 손실시키지 않는 것에 의해) 지오펜스들의 일반적인 유용성에 크게 영향을 미치는 일 없이 컴퓨팅 디바이스에 대한 작업부하를 밸런싱하는 (즉, 위치-감지 라디오들의 이용 및 서버 통신들의 수를 감소시키는) 블렌딩된 지오펜스를 생성할 수도 있다. 예를 들어, 지오펜스 서버는 도시 사이즈의 거대한 블렌딩된 지오펜스를 생성하지 않을 수도 있는데, 이는 지오펜스 서버가 위치-감지 라디오들의 이용 및/또는 서버 통신들의 수를 감소시킬 것이지만, 위치-기반 서비스들의 정확도가 크게 영향받을 것이기 때문에 거대한 지오펜스 영역은 각각의 애플리케이션에 대해 매우 제한된 효용성을 가질 것이기 때문이다. 따라서, 일 실시형태에서, 지오펜스 서버 및/또는 지오펜스 관리 유닛은 컴퓨팅 디바이스의 작업부하 (예를 들어, 위치-감지 라디오들의 이용 및/또는 서버와의 통신들의 수) 를 블렌딩된 지오펜스의 유용성 (예를 들어, 기능적 위치-기반 서비스들을 용이하게 하는 그의 능력) 과 밸런싱하도록 하는 방법으로 블렌딩된 지오펜스들을 생성할 수도 있다.
일 실시형태에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛 또는 지오펜스 서버는 3 개의 지오펜스 영역들 (1502, 1504, 1506) 이 동일한 위치에 존재하고 오버래핑되는 것을 결정할 수도 있고, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 과 연관된 위치-기반 서비스들에 과도하게 그리고 부정적으로 영향을 주지 않는 블렌딩된 지오펜스를 생성하기 위해 지오펜스 영역들 (1502, 1504, 1506) 을 어떻게 결합할지를 결정하기 위한 다양한 계산들을 수행할 수도 있다.
도 15a 에 예시된 예에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 의 주변들에 기초하여 블렌딩된 지오펜스 (1515) 를 생성하기 위해 지오펜스 영역들 (1502, 1504, 1506) 에 대한 블렌딩 동작들 (1520a) 을 수행할 수도 있다. 일 실시형태에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스들 중에서 실질적인 오버랩이 존재할 때 지오펜스 주변들에 기초하여 블렌딩된 지오펜스 (1515) 를 생성하도록 선정할 수도 있는데, 이는 위치-감지 라디오들의 이용 및/또는 지오펜스 서버와의 통신의 관점에서 컴퓨팅 디바이스의 작업부하를 크게 줄이면서 위치-기반 서비스들에 대한 영향이 아주 조금 영향받을 수도 있기 때문이다.
도 15b 에 예시된 다른 예에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 의 영역들의 가중된 평균들에 기초하여 블렌딩된 지오펜스 (1508) (예를 들어, 직사각형) 를 생성하기 위해 지오펜스 영역들 (1502, 1504, 1506) 에 대한 블렌딩 동작들 (1520b) 을 수행할 수도 있다. 이러한 예에서, 블렌딩된 지오펜스 (1508) 는 얼마간의 위치-기반 정확도를 손실시킬 수도 있지만, 가중된 평균들을 취하는 것은 지오펜스 서버에 대해 이루어진 통신들의 수 및/또는 위치-감지 라디오들의 이용을 충분히 감소시킬 수도 있다.
도 15c 에 예시된 또 다른 예에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 에 대한 블렌딩 동작들 (1520c) 을 수행할 수도 있고, 지오펜스 영역들 (1502, 1504, 1506) 이 약간 오버래핑되더라도 블렌딩된 지오펜스를 생성하지 않는 것으로 결정할 수도 있다. 이 예에서, 블렌딩된 지오펜스는 지오펜스 영역들 (1502, 1504, 1506) 의 영역들을 충분히 커버하도록 지오펜스 영역들 (1502, 1504, 1506) 보다 상당히 더 클 필요가 있을 것이다. 그에 따라, 지오펜스 영역들 (1502, 1504, 1506) 에 대한 임의의 블렌딩된 지오펜스는 위치-기반 서비스들의 정확도를 크게 감소시킬 것이다. 다시 말해, 지오펜스 서버 및/또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 이 블렌딩하기에 부적합하다고 결정할 수도 있다.
다양한 실시형태들은 다양한 컴퓨팅 디바이스들 중 임의의 컴퓨팅 디바이스에서 구현될 수도 있고, 그 예가 도 16 에 예시된다. 예를 들어, 컴퓨팅 디바이스 (1600) 는 내부 메모리 (1604) 에 커플링된 프로세서 (1602) 를 포함할 수도 있다. 내부 메모리 (1604) 는 휘발성 또는 비휘발성 메모리일 수도 있고, 또한 보안 및/또는 암호화된 메모리, 또는 비보안 및/또는 비암호화된 메모리, 또는 이들의 임의의 조합일 수도 있다. 프로세서 (1602) 는 또한 저항-감응성 터치 스크린, 용량성-감지 터치 스크린 적외선 감지 터치 스크린 등과 같은 터치 스크린 디스플레이 (1606) 에 커플링될 수도 있다. 부가적으로, 컴퓨팅 디바이스 (1600) 의 디스플레이는 터치 스크린 능력을 가질 필요는 없다. 부가적으로, 컴퓨팅 디바이스 (1600) 는 프로세서 (1602) 에 커플링된 무선 데이터 링크 및/또는 셀룰러 전화 트랜시버 (1616) 에 연결될 수도 있는 전자기 방사를 전송하고 수신하기 위한 하나 이상의 안테나 (1608) 를 가질 수도 있다. 컴퓨팅 디바이스 (1600) 는 또한 사용자 입력들을 수신하기 위한 물리적 버튼들 (1612a 및 1612b) 을 포함할 수도 있다. 컴퓨팅 디바이스 (1600) 는 또한 컴퓨팅 디바이스 (1600) 를 턴 온 그리고 턴 오프시키기 위한 파워 버튼 (1618) 을 포함할 수도 있다. 컴퓨팅 디바이스 (1600) 는 컴퓨팅 디바이스의 지리적 위치를 결정하기 위한 GPS 트랜시버 (1620) 를 옵션적으로 가질 수도 있다. 컴퓨팅 디바이스 (1600) 는 다양한 전자 컴포넌트들에 커플링된 배터리 (1622) 에 의해 전력공급될 수도 있다. 컴퓨팅 디바이스 (1600) 는 또한 오디오 출력들을 제공하기 위한 스피커들 (1614) 을 포함할 수도 있다.
실시형태의 방법들의 부분들은, 이 실시형태의 방법들을 실행하는 동안 컴퓨팅 디바이스 프로세서에 의해 액세스될 수도 있는 서버에서 정상 동작 거동들의 데이터베이스들을 유지하는 것과 같은 프로세싱의 일부가 발생는 클라이언트-서버 아키텍처에서 달성될 수도 있다. 이러한 실시형태들은 도 17 에 예시된 서버 (1700) 와 같은 다양한 상업적으로 입수가능한 서버 컴퓨팅 디바이스들 중 임의의 서버 컴퓨팅 디바이스 상에서 구현될 수도 있다. 이러한 서버 (1700) 는 통상적으로, 디스크 드라이브 (1703) 와 같은 대용량 비휘발성 메모리 및 휘발성 메모리 (1702) 에 커플링된 프로세서 (1701) 를 포함한다. 서버 (1700) 는 또한 프로세서 (1701) 에 커플링된 플로피 디스크 드라이브, 콤팩트 디스크 (CD) 또는 DVD 디스크 드라이브 (1704) 를 포함할 수도 있다. 서버 (1700) 는 또한 다른 브로드캐스트 시스템 컴퓨터들 및 서버들에 커플링된 로컬 영역 네트워크와 같은 네트워크 (1706) 와의 데이터 커넥션들을 확립하기 위해 프로세서 (1701) 에 커플링된 네트워크 액세스 포트들 (1705) 을 포함할 수도 있다. 프로세서 (1701) 는 상술된 다양한 실시형태들의 기능들을 포함하는, 다양한 기능들을 수행하도록 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 임의의 프로그래밍가능 마이크로프로세서, 마이크로컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 통상적으로, 소프트웨어 애플리케이션들은 프로세서 (1701) 에 액세스되어 로딩되기 전에 내부 메모리 (1702, 1703) 에 저장될 수도 있다. 프로세서 (1701) 는 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수도 있다.
전술한 방법 설명들 및 프로세스 플로우 다이어그램들은 단지 예시적인 예들로서 제공된 것일 뿐이고, 다양한 실시형태들의 단계들이 제시된 순서로 수행되어야 함을 요구하거나 암시하려고 의도된 것이 아니다. 당업자에 의해 인식되는 바와 같이, 전술한 실시형태들에서의 단계들의 순서는 임의의 순서로 수행될 수도 있다. "그 후", "그 후에", "그 다음에" 등과 같은 단어들은 단계들의 순서를 제한하려고 의도된 것이 아니다; 이러한 단어들은 단지 방법들의 설명을 통해 독자를 가이드하기 위해 사용된다. 추가로, 예를 들어, "a", "an" 또는 "the" 와 같은 관사들을 사용한, 청구항 엘리먼트들에 대한 단수로의 임의의 언급은 그 엘리먼트를 단수로 제한하는 것으로 해석되어서는 안된다.
본 출원에서 사용되는 바와 같이, 용어들 "컴포넌트", "유닛", "제어기", "시스템", "엔진", "생성기", "관리자" 등은 특정 동작들 또는 기능들을 수행하도록 구성되는 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어와 같은, 그러나 이들로 제한되지 않는, 컴퓨터 관련 엔티티를 포함하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행하는 프로세스, 프로세서, 오브젝트, 실행가능물, 실행 스레드, 프로그램 및/또는 컴퓨터일 수도 있지만 이들로 제한되지 않는다. 예시에 의해, 프로그래밍 컴퓨팅 디바이스 상에서 실행하는 애플리케이션과 프로그래밍 컴퓨팅 디바이스 양쪽은 컴포넌트라고 지칭될 수도 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수도 있으며 컴포넌트는 하나의 프로세서 또는 코어 상에서 로컬화되거나 및/또는 2 개 이상의 프로세서들 또는 코어들 사이에서 분산될 수도 있다. 또한, 이들 컴포넌트들은 다양한 명령들 및/또는 데이터 구조들을 저장하고 있는 다양한 비일시적 컴퓨터 판독가능 매체들로부터 실행할 수도 있다. 컴포넌트들은 로컬 및/또는 원격 프로세스들, 함수 또는 프로시저 호출들, 전자 신호들, 데이터 패킷들, 메모리 판독/기입들, 및 다른 알려진 네트워크, 컴퓨터, 프로세서, 및/또는 프로세스 관련된 통신 방법론들을 통해 통신할 수도 있다.
본 명세서에 개시된 실시형태들과 관련되어 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들 양쪽의 조합들로서 구현될 수도 있다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들을 그들의 기능성 관점에서 일반적으로 상술되었다. 이러한 기능성이 하드웨어로서 또는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과되는 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자들은 각각의 특정 애플리케이션에 대한 다양한 방법들로 설명된 기능성을 구현할 수도 있지만, 이러한 구현 판정들은 본 발명의 범위로부터의 벗어남을 야기시키는 것으로 해석되어서는 안된다.
본 명세서에 개시된 실시형태들과 관련되어 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들, 및 회로들을 구현하기 위해 이용된 하드웨어는, 본 명세서에서 설명된 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 멀티프로세서일 수도 있지만, 대안적으로는, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 멀티프로세서의 조합, 복수의 멀티프로세서들, DSP 코어와 협력하는 하나 이상의 멀티프로세서들, 또는 임의의 다른 이러한 구성으로도 구현될 수도 있다. 대안적으로, 일부 단계들 또는 방법들은 주어진 기능에 특정된 회로부에 의해 수행될 수도 있다.
하나 이상의 예시적인 실시형태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령들 또는 코드로서 비일시적 컴퓨터 판독가능 매체 또는 비일시적 프로세서 판독가능 매체 상에 저장될 수도 있다. 본 명세서에 개시된 방법 또는 알고리즘의 단계들은, 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체 상에 상주할 수도 있는 프로세서 실행가능 소프트웨어 모듈에서 구현될 수도 있다. 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수도 있는 임의의 저장 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 매체들은 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 컴퓨팅 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 이용될 수도 있으며 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체들을 포함할 수 있다. 디스크 (disk) 및 디스크 (disc) 는, 본 명세서에서 사용되는 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 데이터를 자기적으로 보통 재생하지만, 디스크 (disc) 들은 레이저로 데이터를 광학적으로 재생한다. 상기의 조합들도 또한 비일시적 컴퓨터 판독가능 및 프로세서 판독가능 매체들의 범위 내에 포함된다. 부가적으로, 방법 또는 알고리즘의 동작들은 컴퓨터 프로그램 제품에 포함될 수도 있는 비일시적 프로세서 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상의 코드들 및/또는 명령들의 하나 또는 임의의 조합 또는 세트로서 상주할 수도 있다.
개시된 실시형태들의 이전 설명은 당업자가 본 발명을 제조하거나 이용하는 것을 가능하게 하도록 제공된다. 이들 실시형태들에 대한 다양한 변경들은 당업자들에게 쉽게 명백할 것이며, 본 명세서에 정의된 일반적 원리들은 본 발명의 사상 또는 범위로부터 벗어남이 없이 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 본 명세서에 보여진 실시형태들로 제한되도록 의도된 것이 아니라, 본 명세서에 개시된 원리들과 신규한 피처들 및 다음의 청구항들에 부합하는 가장 넓은 범위를 부여받게 하려는 것이다.

Claims (29)

  1. 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션 (geofence-enabled application) 들을 관리하는 방법으로서,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 단계;
    함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스 (blended geofence) 에 결합하는 단계; 및
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계
    를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  2. 제 1 항에 있어서,
    상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 단계 및 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 단계 중 적어도 하나를 더 포함하고,
    상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  3. 제 1 항에 있어서,
    상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 지오펜스 서버에서, 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하고,
    상기 방법은, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하는 단계를 더 포함하고,
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 단계로서, 상기 컴퓨팅 디바이스는, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 단계; 및
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여 블렌딩되지 않은 지오펜스 정보를 상기 컴퓨팅 디바이스에 전송하는 단계
    를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  4. 제 1 항에 있어서,
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는,
    지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 단계로서, 상기 지오펜스 관리 유닛은 상기 컴퓨팅 디바이스 상에서 동작하는 프록시 서버 애플리케이션인, 상기 지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 단계;
    상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 지오펜스 관리 유닛으로 상기 블렌딩된 지오펜스가 횡단되었는지 여부를 결정하는 단계; 및
    상기 블렌딩된 지오펜스가 횡단되었다는 결정에 응답하여 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 각각에게 상기 지오펜스 관리 유닛으로 통지하는 단계
    를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  5. 제 1 항에 있어서,
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는,
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 단계;
    상기 컴퓨팅 디바이스가 상기 블렌딩된 지오펜스를 횡단하였는지 여부를 결정하는 단계; 및
    상기 블렌딩된 지오펜스가 횡단될 때를 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 통지하는 단계
    를 포함하고,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 단계는, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 단계를 포함하고;
    상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  6. 제 5 항에 있어서,
    상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 블렌딩된 지오펜스가 횡단될 때를 지오펜스 서버에 통지하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  7. 제 5 항에 있어서,
    상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 지오펜스 서버에서, 상기 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하고,
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 단계는, 상기 지오펜스 서버에서, 상기 컴퓨팅 디바이스로부터 상기 컴퓨팅 디바이스의 현재 위치를 메시지로 수신하는 단계를 포함하고;
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 단계는,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 컴퓨팅 디바이스로부터 상기 지오펜스 서버에서 수신하는 단계; 및
    리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 수신된 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 단계
    를 포함하고; 그리고
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는, 상기 블렌딩된 지오펜스를 상기 지오펜스 서버로부터 상기 컴퓨팅 디바이스로 전송하는 단계를 포함하고,
    상기 컴퓨팅 디바이스는, 상기 블렌딩된 지오펜스에 포함된 지오펜스과 연관된 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  8. 제 7 항에 있어서,
    상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 단계 및 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 단계 중 적어도 하나를 더 포함하고,
    상기 지오펜스 서버에서, 상기 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
  9. 컴퓨팅 디바이스로서,
    메모리;
    트랜시버; 및
    상기 메모리 및 상기 트랜시버에 커플링되고, 동작들을 수행하도록 프로세서 실행가능 명령들로 구성된 프로세서
    를 포함하고,
    상기 동작들은,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것;
    함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것; 및
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것
    을 포함하는, 컴퓨팅 디바이스.
  10. 제 9 항에 있어서,
    상기 프로세서는, 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 것 및 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것 중 적어도 하나를 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되고;
    상기 프로세서는, 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  11. 제 9 항에 있어서,
    상기 프로세서는, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되고;
    상기 프로세서는, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는 것; 및
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 블렌딩되지 않은 지오펜스 정보를 제공하는 것
    을 포함하도록 하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  12. 제 9 항에 있어서,
    상기 프로세서는, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는 것을 포함하도록 하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  13. 제 9 항에 있어서,
    상기 프로세서는, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
    지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 것으로서, 상기 지오펜스 관리 유닛은 상기 컴퓨팅 디바이스 상에서 동작하는 프록시 서버 애플리케이션인, 상기 지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 것;
    상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 지오펜스 관리 유닛으로 상기 블렌딩된 지오펜스가 횡단되었는지 여부를 결정하는 것; 및
    상기 블렌딩된 지오펜스가 횡단되었다는 결정에 응답하여 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 각각에게 상기 지오펜스 관리 유닛으로 통지하는 것
    을 포함하도록 하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  14. 제 9 항에 있어서,
    상기 프로세서는,
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것;
    상기 컴퓨팅 디바이스가 상기 블렌딩된 지오펜스를 횡단하였는지 여부를 결정하는 것; 및
    상기 블렌딩된 지오펜스가 횡단될 때를 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 통지하는 것
    을 포함하고;
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것이, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것을 포함하며;
    상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록
    하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  15. 제 14 항에 있어서,
    상기 프로세서는, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 블렌딩된 지오펜스가 횡단될 때를 지오펜스 서버에 통지하는 것을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  16. 제 14 항에 있어서,
    상기 프로세서는, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 것 및 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것 중 적어도 하나를 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되고;
    상기 프로세서는, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
  17. 지오펜스 서버로서,
    동작들을 수행하도록 서버 실행가능 명령들로 구성된 서버 프로세서를 포함하고,
    상기 동작들은,
    컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것;
    함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것; 및
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것
    을 포함하는, 지오펜스 서버.
  18. 제 17 항에 있어서,
    상기 서버 프로세서는, 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 것 및 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것 중 적어도 하나를 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
    상기 서버 프로세서는, 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
  19. 제 17 항에 있어서,
    상기 서버 프로세서는, 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
    상기 서버 프로세서는, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되며;
    상기 서버 프로세서는, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것으로서, 상기 컴퓨팅 디바이스는, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것; 및
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여 블렌딩되지 않은 지오펜스 정보를 상기 컴퓨팅 디바이스에 전송하는 것
    을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
  20. 제 17 항에 있어서,
    상기 서버 프로세서는, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것;
    상기 컴퓨팅 디바이스가 상기 블렌딩된 지오펜스를 횡단하였는지 여부를 결정하는 것; 및
    상기 블렌딩된 지오펜스가 횡단될 때를 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 통지하는 것
    을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
    상기 서버 프로세서는,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것이, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것을 포함하고;
    상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록
    하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
  21. 제 20 항에 있어서,
    상기 서버 프로세서는,
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것이, 상기 컴퓨팅 디바이스로부터 상기 컴퓨팅 디바이스의 현재 위치를 메시지로 수신하는 것을 포함하고;
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것이,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 컴퓨팅 디바이스로부터 수신하는 것; 및
    리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 수신된 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것
    을 포함하고; 그리고
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것을 포함하도록
    하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
  22. 제 21 항에 있어서,
    상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 것 및 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것 중 적어도 하나를 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
    상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
  23. 시스템으로서,
    서버 프로세서를 포함하는 지오펜스 서버; 및
    컴퓨팅 디바이스
    를 포함하고,
    상기 컴퓨팅 디바이스는,
    메모리;
    상기 지오펜스 서버에 커플링된 네트워크와 통신하도록 구성된 트랜시버; 및
    상기 메모리 및 상기 트랜시버에 커플링된 컴퓨팅 디바이스 프로세서
    를 포함하고,
    상기 컴퓨팅 디바이스 프로세서는,
    상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 식별하는 것; 및
    식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 지오펜스 서버에 전송하는 것
    을 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되고;
    상기 서버 프로세서는,
    식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 컴퓨팅 디바이스로부터 수신하는 것;
    리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것;
    함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것; 및
    상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것
    을 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되며;
    상기 컴퓨팅 디바이스 프로세서는,
    상기 블렌딩된 지오펜스를 상기 지오펜스 서버로부터 수신하는 것; 및
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것
    을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 시스템.
  24. 제 23 항에 있어서,
    상기 서버 프로세서는, 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 것 및 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것 중 적어도 하나를 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
    상기 서버 프로세서는, 상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
  25. 제 23 항에 있어서,
    상기 서버 프로세서는, 식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고; 그리고
    상기 서버 프로세서는, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것이,
    상기 컴퓨팅 디바이스 상에서 실행하는 식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것; 및
    상기 컴퓨팅 디바이스 상에서 실행하는 식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여 블렌딩되지 않은 지오펜스 정보를 상기 컴퓨팅 디바이스에 전송하는 것
    을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
  26. 제 23 항에 있어서,
    상기 컴퓨팅 디바이스 프로세서는,
    상기 블렌딩된 지오펜스를 상기 지오펜스 서버로부터 수신하는 것이, 상기 지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 것을 포함하고, 상기 지오펜스 관리 유닛은 상기 컴퓨팅 디바이스 상에서 동작하는 프록시 서버 애플리케이션이고;
    상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
    상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 지오펜스 관리 유닛으로 상기 블렌딩된 지오펜스가 횡단되었는지 여부를 결정하는 것; 및
    상기 블렌딩된 지오펜스가 횡단되었다는 결정에 응답하여 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 각각에게 상기 지오펜스 관리 유닛으로 통지하는 것
    을 포함하도록 하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 시스템.
  27. 제 23 항에 있어서,
    상기 컴퓨팅 디바이스 프로세서는,
    상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것; 및
    상기 컴퓨팅 디바이스의 현재 위치를 상기 지오펜스 서버에 전송하는 것
    을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되고;
    상기 서버 프로세서는, 상기 컴퓨팅 디바이스의 현재 위치를 상기 컴퓨팅 디바이스로부터 수신하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되며;
    상기 서버 프로세서는,
    리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것이, 리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것을 포함하고;
    상기 함께 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록
    하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
  28. 제 27 항에 있어서,
    상기 컴퓨팅 디바이스 프로세서는, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 블렌딩된 지오펜스가 횡단될 때를 상기 지오펜스 서버에 통지하는 것을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 시스템.
  29. 제 27 항에 있어서,
    상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 블렌딩하기에 적합한지 여부를 결정하는 것 및 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들 각각이 그의 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것 중 적어도 하나를 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
    상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩하기에 적합한 것으로 결정된 것 및 블렌딩되도록 허용된 것 중 적어도 하나이고 상기 현재 위치에 지리적으로 가까운 식별된 상기 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
KR1020167028349A 2014-04-01 2015-03-24 오버래핑 지오펜스들의 감소 KR102267367B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/231,946 2014-04-01
US14/231,946 US9288620B2 (en) 2014-04-01 2014-04-01 Reducing overlapping geofences
PCT/US2015/022304 WO2015153203A1 (en) 2014-04-01 2015-03-24 Reducing overlapping geofences

Publications (2)

Publication Number Publication Date
KR20160138987A true KR20160138987A (ko) 2016-12-06
KR102267367B1 KR102267367B1 (ko) 2021-06-18

Family

ID=53039569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028349A KR102267367B1 (ko) 2014-04-01 2015-03-24 오버래핑 지오펜스들의 감소

Country Status (6)

Country Link
US (1) US9288620B2 (ko)
EP (1) EP3127356A1 (ko)
JP (1) JP6479847B2 (ko)
KR (1) KR102267367B1 (ko)
CN (1) CN106134224B (ko)
WO (1) WO2015153203A1 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150159895A1 (en) 2013-12-11 2015-06-11 Honeywell International Inc. Building automation system with user defined lifestyle macros
US9369840B2 (en) 2014-02-20 2016-06-14 Apple Inc. Content geofencing
US10680988B2 (en) * 2014-08-29 2020-06-09 Google Llc Systems and methods for triggering redisplay of a postponed message
US10171934B2 (en) 2014-08-29 2019-01-01 Ebay Inc. Efficient geo-fence data transfer and notifications using a time to reach value
US9712968B2 (en) * 2014-09-30 2017-07-18 Ebay Inc. Super geo-fences and virtual fences to improve efficiency of geo-fences
US9900174B2 (en) 2015-03-06 2018-02-20 Honeywell International Inc. Multi-user geofencing for building automation
US9967391B2 (en) 2015-03-25 2018-05-08 Honeywell International Inc. Geo-fencing in a building automation system
US10802469B2 (en) 2015-04-27 2020-10-13 Ademco Inc. Geo-fencing with diagnostic feature
US9609478B2 (en) * 2015-04-27 2017-03-28 Honeywell International Inc. Geo-fencing with diagnostic feature
US10802459B2 (en) 2015-04-27 2020-10-13 Ademco Inc. Geo-fencing with advanced intelligent recovery
US20170118591A1 (en) * 2015-08-02 2017-04-27 Aegex Technologies, Llc Configuring and Managing Mobile Devices in Predefined Geographic Locations
KR102374438B1 (ko) * 2015-08-10 2022-03-15 삼성전자주식회사 지오펜스 관리 방법 및 그 전자 장치
US10057110B2 (en) 2015-11-06 2018-08-21 Honeywell International Inc. Site management system with dynamic site threat level based on geo-location data
US10516965B2 (en) 2015-11-11 2019-12-24 Ademco Inc. HVAC control using geofencing
US9628951B1 (en) 2015-11-11 2017-04-18 Honeywell International Inc. Methods and systems for performing geofencing with reduced power consumption
US9860697B2 (en) 2015-12-09 2018-01-02 Honeywell International Inc. Methods and systems for automatic adjustment of a geofence size
US9560482B1 (en) 2015-12-09 2017-01-31 Honeywell International Inc. User or automated selection of enhanced geo-fencing
GB2546503B (en) * 2016-01-19 2023-03-15 Bubbl Ltd Method of receiving and delivering content and apparatus and a system therefor
US10605472B2 (en) 2016-02-19 2020-03-31 Ademco Inc. Multiple adaptive geo-fences for a building
US9641972B1 (en) * 2016-03-07 2017-05-02 Facebook, Inc. Associating geographic attributes with a physical location including a threshold portion of a geographic region
US10593074B1 (en) * 2016-03-16 2020-03-17 Liberty Mutual Insurance Company Interactive user interface for displaying geographic boundaries
US10251023B2 (en) 2016-04-29 2019-04-02 In-Telligent Properties Inc. Notification and communication system using geofencing to identify members of a community
WO2017222550A1 (en) 2016-06-24 2017-12-28 Google Inc. Identifying, processing and displaying data point clusters
US10488062B2 (en) 2016-07-22 2019-11-26 Ademco Inc. Geofence plus schedule for a building controller
JP6762162B2 (ja) * 2016-07-29 2020-09-30 株式会社Nttドコモ 端末管理装置
US10306403B2 (en) 2016-08-03 2019-05-28 Honeywell International Inc. Location based dynamic geo-fencing system for security
US10034130B2 (en) 2016-08-22 2018-07-24 International Business Machines Corporation Merging payloads in geofence crowded venues
US10142773B2 (en) 2016-10-12 2018-11-27 Mars, Incorporated System and method for automatically detecting and initiating a walk
US9838843B1 (en) * 2016-10-13 2017-12-05 Adobe Systems Incorporated Generating data-driven geo-fences
US10405137B2 (en) * 2017-03-13 2019-09-03 Kevin R. Imes Mobile application and system for associating actions with independent geographic locations
US10317102B2 (en) 2017-04-18 2019-06-11 Ademco Inc. Geofencing for thermostatic control
US10515392B1 (en) * 2017-05-09 2019-12-24 Sprint Communications Company L.P. System and method for geographic, temporal, and location-based detection and analysis of mobile communication devices in a communication network
US11947769B2 (en) * 2017-05-22 2024-04-02 William D. Mixon Interactive map
US10171940B1 (en) * 2017-09-07 2019-01-01 International Business Machines Corporation Transportation activated geofence
JP7039989B2 (ja) * 2017-12-20 2022-03-23 富士通株式会社 制御プログラム、制御方法及び制御装置
JP6570607B2 (ja) * 2017-12-20 2019-09-04 ヤフー株式会社 情報処理プログラム、情報処理装置および情報処理方法
US10064007B1 (en) * 2018-01-22 2018-08-28 International Business Machines Corporation Cognitive geofence updates
CN110351662B (zh) * 2018-04-04 2021-08-20 华为技术有限公司 一种端云协同的方法、平台和装置
US10433107B1 (en) * 2018-05-23 2019-10-01 Futurewei Technologies, Inc. System and method for enabling polygon geofence services on mobile devices
CN108965401A (zh) * 2018-06-25 2018-12-07 千寻位置网络有限公司 支持水平扩展的地理围栏系统及工作方法
US11812326B2 (en) * 2018-10-18 2023-11-07 Ntt Docomo, Inc. Check-in determining device
US10939231B2 (en) * 2019-06-28 2021-03-02 Ooma, Inc. Geofencing
US11381931B2 (en) 2019-09-17 2022-07-05 In-Telligent Properties Llc Emergency alert systems with secondary alerts
US11582392B2 (en) * 2021-03-25 2023-02-14 International Business Machines Corporation Augmented-reality-based video record and pause zone creation
US20220312148A1 (en) * 2021-03-25 2022-09-29 Tg-17, Inc. System and Method to Register Improved Accuracy Geofences

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1557807A2 (en) * 2004-01-16 2005-07-27 MCI, Inc. Method and system for tracked device location and route adherence monitoring via geofencing
US20120115512A1 (en) * 2010-11-09 2012-05-10 Apple Inc. Beacon-Based Geofencing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229992A (ja) * 2001-01-31 2002-08-16 Fujitsu Ltd 空間情報サービス用のサーバ装置および空間情報サービスの提供方法並びに空間情報サービス用の課金処理装置および課金方法
US7848765B2 (en) 2005-05-27 2010-12-07 Where, Inc. Location-based services
US8536999B2 (en) * 2008-07-16 2013-09-17 Qualcomm Incorporated Method for dynamic creation of a GeoFence in a wireless system
US20100042940A1 (en) 2008-08-14 2010-02-18 Caterpillar Inc. Geofence system with integrated user interface
US8504061B2 (en) * 2010-04-07 2013-08-06 Apple Inc. Multi-tier geofence detection
US8284748B2 (en) * 2010-07-07 2012-10-09 Apple Inc. Ad hoc formation and tracking of location-sharing groups
US20120172027A1 (en) * 2011-01-03 2012-07-05 Mani Partheesh Use of geofences for location-based activation and control of services
US8903426B2 (en) 2011-03-01 2014-12-02 Nexstar Broadcasting, Inc. Geotargeted news and advertisement delivery system
US8810454B2 (en) * 2011-10-13 2014-08-19 Microsoft Corporation Power-aware tiered geofencing and beacon watchlists
US9720555B2 (en) 2011-12-23 2017-08-01 Gary SORDEN Location-based services
US8868254B2 (en) * 2012-06-08 2014-10-21 Apple Inc. Accessory control with geo-fencing
AU2013276279A1 (en) * 2012-06-11 2015-02-05 Georeach Limited Monitoring system, server, mobile device and method
US9769604B2 (en) * 2012-08-22 2017-09-19 Ebay Inc. Passive dynamic geofencing for mobile devices
US20140370909A1 (en) 2013-06-14 2014-12-18 Microsoft Corporation Reduced power location determinations for detecting geo-fences
US9351114B2 (en) * 2013-07-25 2016-05-24 Square, Inc. Generating geofences

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1557807A2 (en) * 2004-01-16 2005-07-27 MCI, Inc. Method and system for tracked device location and route adherence monitoring via geofencing
US20120115512A1 (en) * 2010-11-09 2012-05-10 Apple Inc. Beacon-Based Geofencing

Also Published As

Publication number Publication date
CN106134224A (zh) 2016-11-16
JP2017513397A (ja) 2017-05-25
US9288620B2 (en) 2016-03-15
CN106134224B (zh) 2019-11-15
EP3127356A1 (en) 2017-02-08
WO2015153203A1 (en) 2015-10-08
US20150281889A1 (en) 2015-10-01
KR102267367B1 (ko) 2021-06-18
JP6479847B2 (ja) 2019-03-06

Similar Documents

Publication Publication Date Title
KR102267367B1 (ko) 오버래핑 지오펜스들의 감소
US9998860B2 (en) Mobile network based geofencing
US9071938B2 (en) Location based, software control of mobile devices
US10064003B2 (en) Beacon-based geofencing
KR101523862B1 (ko) 대략적인 로케이션에 기초한 실내 로케이션 콘텍스트 식별자의 발견을 위한 방법
US20140370909A1 (en) Reduced power location determinations for detecting geo-fences
JP6791878B2 (ja) 不要な無線機への電力供給を自動的に停止することによる電力管理
US9648455B2 (en) Method for optimizing mobile device region monitoring and region management for an anonymous mobile device
CN104838706A (zh) 用于在网络数据库之间进行确证且传送信任以获得增强的定位准确性的方法
US20130143584A1 (en) System and method for user control of location determination
US20190253831A1 (en) Method of balance of accuracy and power consumption for geofence
US10009726B2 (en) Battery efficient hybrid mobile device location monitoring
US9161162B2 (en) Estimating the geographical position of an apparatus based on its proximity to other apparatuses
Elghazal et al. Applying location based services for reducing mobile power consumption
US9686734B2 (en) Determining content availability based on selective use of an active location system
US11175373B2 (en) Apparatuses, methods and computer-readable code relating to radiomap data
US9420397B1 (en) Configuring a mobile device to scan for available wireless access points when wireless data communication is disabled
JP2017034371A (ja) 電子機器及び情報通知プログラム
JP2016167672A (ja) 位置デバイスを搭載する携帯端末装置の動作を制御する方法、携帯端末装置およびコンピュータ・プログラム
JP2019533321A (ja) データを伝送する方法及び装置
KR20140088018A (ko) 공간 좌표를 이용한 컨테이너의 위치를 추적하기 위한 방법 및 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant