KR102267367B1 - Reducing overlapping geofences - Google Patents

Reducing overlapping geofences Download PDF

Info

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

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
    • 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)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

다양한 실시형태들은 동일한 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑/지리적으로 가까운 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위한 시스템들 및 방법들을 제공한다. 각각의 지오펜스-인에이블드 애플리케이션은 블렌딩된 지오펜스를 모니터링할 수도 있어서, 컴퓨팅 디바이스가 블렌딩된 지오펜스를 만족할 때 블렌딩된 지오펜스가 만족되었다는 것을 복수의 지오펜스-인에이블드 애플리케이션들이 동시에 또는 거의 동시에 검출할 수도 있다. 따라서, 복수의 지오펜스-인에이블드 애플리케이션들 각각이 블렌딩된 지오펜스가 횡단될 때를 동시에 또는 거의 동시에 검출하기 때문에 복수의 지오펜스-인에이블드 애플리케이션 각각은 동시에 위치-감지 라디오들의 출력을 소비하거나 및/또는 지오펜스 서버와 통신할 수도 있다. 따라서, 복수의 지오펜스-인에이블드 애플리케이션의 지오펜스 영역들을 블렌딩하는 것에 의해, 다양한 실시형태들은 배터리 수명을 개선시키거나 및/또는 정확도의 작은 감소에 대해 리소스들을 절약하여 컴퓨팅 디바이스에 대한 전체 사용자 경험이 개선되도록 할 수도 있다.Various embodiments provide systems and methods for combining overlapping/geographically close geofences associated with a plurality of geofence-enabled applications running on the same computing device into a single blended geofence. Each geofence-enabled application may monitor the blended geofence so that when the computing device satisfies the blended geofence, a plurality of geofence-enabled applications can simultaneously or They can be detected almost simultaneously. Thus, each of the plurality of geofence-enabled applications concurrently consumes the output of the location-sensing radios because each of the plurality of geofence-enabled applications simultaneously or nearly simultaneously detects when a blended geofence is traversed. and/or communicate with a geofence server. Accordingly, by blending the geofence areas of a plurality of geofence-enabled applications, various embodiments may improve battery life and/or save resources for small reductions in accuracy for the entire user to the computing device. It can also make the experience better.

Description

오버래핑 지오펜스들의 감소{REDUCING OVERLAPPING GEOFENCES}REDUCING OVERLAPPING GEOFENCES

현재, 컴퓨팅 디바이스들 상에서 동작하는 많은 애플리케이션들 (예를 들어, 스마트 폰, 태블릿 컴퓨터, 글로벌 포지셔닝 시스템 ("Global Positioning System; GPS") 컴퓨팅 디바이스, PDA 등) 및 컴퓨팅 디바이스들이 내부에 내장된 대형 시스템들 (예를 들어, 차량들, 비행기들, 트럭들, 보트들 등) 은, "지오펜스 (geofence) 들" 로서 보통 알려진 미리 결정된 영역 또는 영역들에 컴퓨팅 디바이스가 진입하거나, 그 내측에 잔류하거나, 이탈하거나 및/또는 없을 때 컴퓨팅 디바이스의 위치를 추적하고 컴퓨팅 디바이스의 현재 위치에 특정된 정보를 사용자에게 알리는 능력을 포함한다.Currently, many applications running on computing devices (eg, smart phones, tablet computers, Global Positioning System (“GPS”) computing devices, PDAs, etc.) and large systems with computing devices embedded therein. Elements (eg, vehicles, planes, trucks, boats, etc.) may be in a predetermined area or areas, commonly known as "geofences", into which a computing device enters, remains inside, or , the ability to track the location of the computing device when evacuated and/or absent and inform the user of information specific to the current location of the computing device.

용어 "지오펜스" 는, 만족되었을 때, 일부의 연관된 기능성 (예를 들어, 그 장소에의 사용자의 존재를 기록하는 것, 정보를 푸시하는 것, 경보를 전송하는 것, 액션 또는 애플리케이션을 트리거링하는 것 등) 을 개시하는 위치, 영역, 또는 경계를 정의하는 지리적 좌표들의 세트를 지칭한다. 지오펜스는 좌표들 사이의 복잡한 다각형들 또는 라인들로 이루어질 수 있고, 그에 따라 용어 "지오펜스" 는 2D 또는 3D 영역 또는 주변을 정의하기 위해 주변, 중심 포인트 플러스 반경, 벡터 공간, 및 임의의 다른 데이터 구조를 정의하는 포인트들 또는 좌표들의 세트들일 수도 있다. 지오펜스는 위도, 경도, 및 고도 값들에 의해 정의된 포인트들에 의해 특정될 수도 있지만, 이 포인트들은 또한 거리 주소, 도로들의 교차점들 등에 의해서도 정의될 수도 있다.The term "geofence" refers to some associated functionality (eg, recording the user's presence at the location, pushing information, sending an alert, triggering an action or application, when satisfied). etc.) refers to a set of geographic coordinates that define a location, area, or boundary A geofence may consist of complex polygons or lines between coordinates, so that the term "geofence" is used to define a 2D or 3D area or perimeter, a perimeter, a center point plus a radius, a vector space, and any other It may be a set of points or coordinates that define a data structure. A geofence may be specified by points defined by latitude, longitude, and elevation values, but these points may also be defined by street addresses, intersections of roads, and the like.

다양한 보안, 광고, 자산 추적, 재고 통제 (inventory control), 및 컴퓨팅 디바이스 상에서 동작하는 다양한 다른 애플리케이션들 또는 지오-기반 시스템들 (본 명세서에서 "지오펜스-인에이블드 애플리케이션 (geofence-enabled application) 들" 이라고 지칭됨) 에서 지오펜스들이 구현될 수도 있다. 예를 들어, 사용자의 스마트폰 상의 영화관용 지오펜스-인에이블드 애플리케이션은, 그 영화관을 포함하고 쇼핑 몰의 전체 영역 또는 부분들을 포함하는 지오펜스를 갖는 그 쇼핑 몰로 사용자가 걸어갈 때 사용자에게 할인된 티켓 가격들을 알릴 수도 있다.Various security, advertising, asset tracking, inventory control, and various other applications or geo-based systems running on computing devices (“geofence-enabled applications” herein) Geofences may be implemented in For example, a geofence-enabled application for a movie theater on the user's smartphone may provide a discount to the user when the user walks to the shopping mall that includes the movie theater and has a geofence that includes an entire area or portions of the shopping mall. It may also inform you of the updated ticket prices.

지오펜스 경계들 및 서비스들은 지오펜스 서버에 의해 제공될 수도 있는데, 그 예는 퀄컴에 의해 지원되는 Gimbal® 서버이다. 지오펜스-인에이블드 애플리케이션은 지오펜스 서버로부터 인근의 지오펜스(들) 의 지리적 특성들/위치를 수신한다. 컴퓨팅 디바이스 상에서 실행하는 동안, 지오펜스-인에이블드 애플리케이션은 계속적으로 그의 위치를 - 예를 들어, 컴퓨팅 디바이스의 GPS 수신기를 통해 및/또는 Wi-Fi (예를 들어, 미리 맵핑된 Wi-Fi 액세스 포인트 위치들) 및/또는 셀룰러 연결들 (예를 들어, 미리 맵핑된 셀 타워 위치들) 을 통해 - 결정하고 그의 위치를 알려진 지오펜스들의 위치와 비교하여 지오펜스 기준 (예를 들어, 지오펜스에 진입하는 것, 지오펜스를 이탈하는 것, 지오펜스 경계를 횡단하는 것 등) 이 만족되는지 여부를 결정한다. 지오펜스-인에이블드 애플리케이션이 지오펜스 기준이 만족되었다고 결정할 때, 그 애플리케이션은 지오펜스 서버로의 통신을 개시하여 서버에게 지오펜스 이벤트를 통지할 수도 있거나, 또는 그 애플리케이션은 그 지오펜스를 로컬로 소비할 수도 있다. 서버에 전송되었을 때, 지오펜스 서버는 컴퓨팅 디바이스에게 일부 적절한 콘텐츠 (예를 들어, 광고 또는 쿠폰) 또는 명령들을 전송하거나, 및/또는 그 위치에서의 지오펜스들의 업데이트된 리스트를 전송한다. 컴퓨팅 디바이스 상에서 로컬로 소비되었을 때, 지오펜스-인에이블드 애플리케이션은 컴퓨팅 디바이스 상에서 이미 콘텐츠를 사용자에게 제시할 수도 있거나 (예를 들어, 위치에 관련된 캐싱된 콘텐츠, 기존 콘텐츠의 재소팅, 캐싱된 광고 등) 및/또는 콘텐츠에 대해 콘텐츠 서버에 질의할 수도 있다.Geofence boundaries and services may be provided by a geofence server, an example of which is the Gimbal ® server supported by Qualcomm. The geofence-enabled application receives the geographic characteristics/location of the nearby geofence(s) from the geofence server. While running on the computing device, the geofence-enabled application continuously records its location—eg, via the computing device's GPS receiver and/or via Wi-Fi (eg, pre-mapped Wi-Fi access). point locations) and/or cellular connections (eg pre-mapped cell tower locations) - determine and compare its location with the location of known geofences to a geofence criterion (eg to a geofence entering, leaving the geofence, crossing the geofence boundary, etc.) is satisfied. When a geofence-enabled application determines that the geofence criteria have been met, the application may initiate communication to the geofence server to notify the server of a geofence event, or the application may locally may consume. When sent to the server, the geofence server sends some suitable content (eg, advertisement or coupon) or commands to the computing device, and/or sends an updated list of geofences at the location. When consumed locally on a computing device, a geofence-enabled application may present content to a user already on the computing device (eg, cached content related to location, re-sorting of existing content, cached advertisements) etc.) and/or query the content server for content.

다양한 실시형태들은 동일한 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑/지리적으로 가까운 지오펜스들을 단일의 블렌딩된 지오펜스 (blended geofence) 에 결합하기 위한 시스템들 및 시스템에서 구현되는 방법들을 제공한다. 일 실시형태에서, 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 블렌딩된 지오펜스를 모니터링할 수도 있어서, 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때 블렌딩된 지오펜스가 만족되었다는 것을 하나 이상의 지오펜스-인에이블드 애플리케이션들이 동시에 또는 거의 동시에 검출할 수도 있다. 따라서, 하나 이상의 애플리케이션들 각각이 블렌딩된 지오펜스가 만족될 때를 동시에 또는 거의 동시에 검출하기 때문에 하나 이상의 지오펜스-인에이블드 애플리케이션 각각은 지오펜스 서버와 동시에 통신할 수도 있다. 따라서, 지오펜스-인에이블드 애플리케이션의 지오펜스 영역들 중 하나 이상을 블렌딩하는 것에 의해, 다양한 실시형태들은 지오펜스 서버와 통신하기 위해 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 필요한 데이터, 위치 감지, 및/또는 프로세싱 리소스들의 전체량을 감소시켜서, 그에 의해 컴퓨팅 디바이스에 대한 전체 사용자 경험 및 배터리 수명을 개선시킬 수도 있다.Various embodiments are implemented in systems and systems for combining overlapping/geo-near geofences associated with one or more geofence-enabled applications running on the same computing device into a single blended geofence. provides ways to In an embodiment, each of the one or more geofence-enabled applications may monitor the blended geofence, such that when the computing device traverses the blended geofence, it determines that the blended geofence has been satisfied. -enabled applications may detect simultaneously or nearly simultaneously. Accordingly, each of the one or more geofence-enabled applications may concurrently communicate with the geofence server because each of the one or more applications simultaneously or nearly simultaneously detects when a blended geofence is satisfied. Accordingly, by blending one or more of the geofence areas of the geofence-enabled application, various embodiments provide for the data, location, and location needed for one or more geofence-enabled applications to communicate with the geofence server It may reduce the overall amount of sensing, and/or processing resources, thereby improving overall user experience and battery life for the computing device.

실시형태의 방법들은 소프트웨어로 구현될 수도 있고, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버에 의해 실행될 수도 있다. 추가 실시형태들에서, 실시형태의 방법들은 지오펜스 서버 및/또는 컴퓨팅 디바이스 상의 하드웨어로 (예를 들어, 하드웨어 컴포넌트 또는 시스템-온-칩의 형태로) 구현될 수도 있다.The methods of the embodiments may be implemented in software, and may be executed by a computing device processor and/or a geofence server executing a geofence management unit. In further embodiments, the methods of an embodiment may be implemented in hardware (eg, in the form of a hardware component or system-on-chip) on a geofence server and/or computing device.

일 실시형태에서, 동일한 컴퓨팅 디바이스 상에서 동작하는 다수의 지오펜스-인에이블드 애플리케이션들에게 블렌딩된 지오펜스를 제공하는 것은 지오펜스 서버에 의해 달성될 수도 있다. 지오펜스 서버는 컴퓨팅 디바이스 상에서 동작하는 모든 지오펜스-인에이블드 애플리케이션들에게 알릴 수도 있고, 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 가깝게 근접하거나 또는 오버래핑되는 지오펜스들을 식별하기 위해 이 정보를 이용할 수도 있다. 지오펜스 서버는 또한 인접하거나 및/또는 오버래핑되는 것으로 결정된 이들 지오펜스들 중 일부 또는 전부를 포함하는 단일의 블렌딩된 지오펜스를 도출할 수도 있다. 다른 실시형태에서, 지오펜스 서버는, 블렌딩된 지오펜스에 관한 정보를, 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각에게 제공하여, 그에 의해 이들 하나 이상의 애플리케이션들로 하여금 공통 지오펜스 영역을 공유하게 할 수도 있다.In one embodiment, providing a blended geofence to multiple geofence-enabled applications running on the same computing device may be accomplished by a geofence server. The geofence server may inform all geofence-enabled applications running on the computing device, and identify closely proximate or overlapping geofences for one or more geofence-enabled applications running on the computing device. We may use this information to The geofence server may also derive a single blended geofence that includes some or all of these geofences determined to be adjacent and/or overlapping. In another embodiment, the geofence server provides information regarding the blended geofence to each of the one or more geofence-enabled applications on the computing device associated with the geofence included in the blended geofence, so that it may allow these one or more applications to share a common geofence area.

일 실시형태에서, 지오펜스 서버는 예컨대 모바일 컴퓨팅 디바이스의 현재 위치에서 함께 지리적으로 가까운 지오펜스들을 결정하고 이들 지오펜스들을 함께 블렌딩하는 것에 의해, 모바일 컴퓨팅 디바이스의 현재 위치에 기초하여 지오펜스들을 블렌딩된 지오펜스들에 결합할 수도 있다. 대안적인 실시형태에서, 지오펜스 서버는 더 일반적으로는, 모바일 디바이스의 현재 위치와 관계없이, 지오펜스들을 블렌딩된 지오펜스들에 결합할 수도 있다. 구체적으로는, 지오펜스 서버는 컴퓨팅 디바이스의 현재 위치에 상관없이 서로 지리적으로 가까운 것으로 결정되는 지오펜스들의 그룹들로부터 블렌딩된 지오펜스들을 생성하도록 구성될 수도 있다. 따라서, 이러한 실시형태들에서, 지오펜스 서버는 다양한 지리적 영역들 (예를 들어, 국가의 전체 구역 또는 주 (state)) 에 대한 전량 (full complement) 의 블렌딩된 지오펜스들을 미리 주기적으로 생성 및 저장할 수도 있고, 필요에 따라, 예컨대 업데이트된 지오펜스 정보에 대한 요구를 수신한 것에 응답하여 또는 선제적으로 컴퓨팅 디바이스에 전송된 "푸시된" 데이터의 형태로 이들 저장된 블렌딩된 지오펜스들 중 하나 이상을 컴퓨팅 디바이스에 전송할 수도 있다.In one embodiment, the geofence server blends the geofences based on the current location of the mobile computing device, such as by determining geofences that are geographically close together at the current location of the mobile computing device and blending these geofences together. It can also be coupled to geofences. In an alternative embodiment, the geofence server may more generally combine geofences into blended geofences, regardless of the mobile device's current location. Specifically, the geofence server may be configured to generate blended geofences from groups of geofences determined to be geographically close to each other regardless of the current location of the computing device. Thus, in such embodiments, the geofence server periodically generates and stores in advance a full complement of blended geofences for various geographic regions (eg, an entire region or state of a country). may, as needed, retrieve one or more of these stored blended geofences, such as in the form of “pushed” data sent to the computing device preemptively or in response to receiving a request for updated geofence information. It may be transmitted to a computing device.

추가 실시형태들에서, 동일한 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-애플리케이션들에 대한 공통의 블렌딩된 지오펜스를 생성하는 동작들은 실시형태의 방법들의 동작들을 수행하도록 프로세서 실행가능 명령들로 구성된 컴퓨팅 디바이스 프로세서에 의해 달성될 수도 있다. 이러한 실시형태들에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는, 예컨대 지오펜스-인에이블드 애플리케이션들 그 자체로부터 또는 지오펜스 서버로부터, 지오펜스-인에이블드 애플리케이션들 각각에 대한 지오펜스들에 관한 정보를 수신할 수도 있다. 이 정보를 이용하여, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 이들 지오펜스-인에이블드 애플리케이션들 중 하나 이상에 대한 지오펜스들을 단일의 블렌딩된 지오펜스에 재도출/결합할 수도 있고, 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 각각에 블렌딩된 지오펜스를 전송할 수도 있다.In further embodiments, the operations of generating a common blended geofence for one or more geofence-applications executing on the same computing device are configured with processor-executable instructions to perform the operations of the methods of the embodiment. This may be accomplished by a processor. In such embodiments, the computing device processor executing the geofence management unit is configured to apply geofences for each of the geofence-enabled applications, such as from the geofence-enabled applications themselves or from the geofence server. You may also receive information about Using this information, the computing device processor executing the geofence management unit may re-derive/combine the geofences for one or more of these geofence-enabled applications into a single blended geofence, and blend The blended geo-fence may be transmitted to each of the geo-fence-enabled applications associated with the geo-fence included in the used geo-fence.

다른 실시형태에서, 컴퓨팅 디바이스 상의 지오펜스 관리 유닛을 실행하는 프로세서는 모바일 컴퓨팅 디바이스의 현재 위치와 관계없이 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스들 (또는 모든 이용가능한 블렌딩된 지오펜스들의 특정 서브세트) 을 주기적으로 생성 및 저장할 수도 있다. 따라서, 추가 실시형태에서, 컴퓨팅 디바이스 상의 애플리케이션으로부터 업데이트된 지오펜스 정보에 대한 요구를 수신한 것에 응답하여 또는 자체적으로, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션과 연관된 저장된 블렌딩된 지오펜스에 빨리 액세스할 수도 있고, 저장된 블렌딩된 지오펜스를 그 애플리케이션에 전송할 수도 있다. 다시 말해, 지오펜스 관리 유닛을 실행하는 프로세서는 지오펜스-인에이블드 애플리케이션들에 대해 미리 생성된 블렌딩된 지오펜스들을 준비할 수도 있고, 필요 또는 요구에 따라 이들 미리 만들어진 블렌딩된 지오펜스들을 애플리케이션들에 전송할 수도 있다.In another embodiment, the processor executing the geofence management unit on the computing device is capable of all possible blended geofences available for geofence-enabled applications operating on the computing device regardless of the current location of the mobile computing device. (or a specific subset of all available blended geofences) may be created and stored periodically. Accordingly, in a further embodiment, in response to or itself receiving a request for updated geofence information from an application on the computing device, the processor executing the geofence management unit is configured to communicate with the geofence-enabled application on the computing device. An associated stored blended geofence may be quickly accessed, and the stored blended geofence may be sent to the application. In other words, the processor executing the geo-fence management unit may prepare pre-generated blended geo-fences for geo-fence-enabled applications, and apply these pre-made blended geo-fences to applications as needed or required. can also be sent to

다른 실시형태에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-인에이블드 애플리케이션들 대신에 프록시 지오펜스 서버로서 기능할 수도 있다. 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들의 리스트를 지오펜스 서버에 전송할 수도 있고, 이에 응답하여 블렌딩된 지오펜스를 수신할 수도 있다. 지오펜스 관리 유닛은 또한 (예를 들어, GPS 를 통해) 컴퓨팅 디바이스의 위치를 모니터링하여 블렌딩된 지오펜스가 횡단된 때를 검출할 수도 있다. 블렌딩된 지오펜스가 횡단될 때, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는, 블렌딩된 지오펜스 기준이 만족된다는 통지를, 그 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는, 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있다. 지오펜스 관리 유닛은 또한 지오펜스 서버에 통지를 전송할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 지오펜스 애플리케이션들 각각에 블렌딩된 지오펜스를 전송할 수도 있고, 이들 지오펜스-인에이블드 애플리케이션들은 그 후에, 이들이 블렌딩된 지오펜스를 지오펜스 서버로부터 직접 수신한 것처럼 동작할 수도 있다.In another embodiment, a geofence management unit operating on the computing device may function as a proxy geofence server in lieu of one or more geofence-enabled applications executing on the computing device. The geofence management unit may send a list of geofence-enabled applications running on the computing device to the geofence server, and in response receive the blended geofence. The geofence management unit may also monitor the location of the computing device (eg, via GPS) to detect when a blended geofence has been traversed. When the blended geofence is traversed, the computing device processor executing the geofence management unit executes on the computing device a notification that the blended geofence criterion is satisfied, associated with the geofence included in the blended geofence. may be sent to each geofence-enabled application. The geofence management unit may also send a notification to the geofence server. In an alternative embodiment, the geofence management unit may send the blended geofence to each of the geofence applications associated with the geofence included in the blended geofence, which geofence-enabled applications then: They may act as if they received the blended geofence directly from the geofence server.

일 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버는 지리적으로 가까운 지오펜스들이 이들 지오펜스들을 결합하기 전에 블렌딩하기에 "적합" 한지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버는 (예를 들어, 지오펜스들의 형상들, 사이즈들, 관련 메타데이터 등에 기초하여) 지오펜스들을 블렌딩하는 것이 기본 지오펜스-인에이블드 애플리케이션들의 위치-기반 서비스들을 실질적으로 저하시키는 블렌딩된 지오펜스를 발생시킬지 여부를 평가하도록 지리적으로 가까운 지오펜스들의 분석을 수행할 수도 있다.In an embodiment, the computing device processor and/or geofence server executing the geofence management unit may determine whether geographically close geofences are “suitable” for blending before combining these geofences. For example, the computing device processor and/or the geofence server executing the geofence management unit may be configured to blend the geofences (eg, based on shapes, sizes, related metadata, etc. of the geofences, etc.) An analysis of geofences that are geographically close may be performed to evaluate whether to generate a blended geofence that substantially degrades location-based services of fence-enabled applications.

다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서 및/또는 지오펜스 서버는 지리적으로 가까운 지오펜스들이 이들이 연관된 지오펜스-인에이블드 애플리케이션들에 의해 블렌딩되도록 허용되는지 여부를 결정할 수도 있다. 예를 들어, 특정 지오펜스-인에이블드 애플리케이션에 대한 지오펜스를 정의하는 프로세스 동안, 지오펜스-인에이블드 애플리케이션의 개발자는 그 지오펜스가 다른 지오펜스와 블렌딩되지 않을 수도 있다는 것을 특정할 수도 있다. 추가 예에서, 지오펜스-인에이블드 애플리케이션은 그 애플리케이션과 연관된 하나 이상의 지오펜스들이 블렌딩되도록 허용되는지 여부를 지오펜스 서버 및/또는 컴퓨팅 디바이스 프로세서에 나타내는 플래그 또는 다른 값을 포함할 수도 있다.In another embodiment, the computing device processor and/or geofence server executing the geofence management unit may determine whether geographically close geofences are allowed to be blended by geofence-enabled applications with which they are associated. For example, during the process of defining a geofence for a particular geofence-enabled application, the developer of the geofence-enabled application may specify that that geofence may not be blended with other geofences. . In a further example, a geofence-enabled application may include a flag or other value that indicates to the geofence server and/or computing device processor whether one or more geofences associated with the application are allowed to be blended.

다른 실시형태는 컴퓨팅 디바이스가 그 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블 애플리케이션들의 리스트를 지오펜스 서버에 전송하는 상술된 컴퓨팅 디바이스 및 지오펜스 서버를 포함하는 시스템이고, 지오펜스 서버는 상술된 바와 같이 블렌딩된 지오펜스를 생성하고, 상술된 바와 같이 컴퓨팅 디바이스 상에서 실행하는 지오펜스 관리 유닛에 의한 이용을 위해 블렌딩된 지오펜스를 다시 컴퓨팅 디바이스에 전송한다.Another embodiment is a system comprising the above-described computing device and a geofence server that the computing device sends a list of geofence-enabled applications executing on the computing device to a geofence server, the geofence server as described above Create a blended geofence and send the blended geofence back to the computing device for use by a geofence management unit executing on the computing device as described above.

본 명세서에 포함되고 이 명세서의 부분을 구성하는 첨부 도면들은 본 발명의 예시적인 실시형태들을 예시하고, 위에 제공된 일반적 설명 및 아래에 제공된 상세한 설명과 함께, 본 발명의 피처들을 설명하도록 기능한다.
도 1 은 다양한 양태들에서의 이용에 적합한 예시적인 통신 시스템의 네트워크 컴포넌트들을 예시하는 통신 시스템 블록 다이어그램이다.
도 2 는 애플리케이션 개발자, 지오펜스 서버, 및 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션 사이의 통상적인 시그널링 및 호 플로우이다.
도 3a 는 일 위치에서 상이한 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑 지오펜스들의 예시이다.
도 3b 는 일 실시형태에 따른, 일 위치에서 다수의 오버래핑 지오펜스들로부터 생성된 블렌딩된 지오펜스의 예시이다.
도 4a 는 컴퓨팅 디바이스의 현재 위치에 기초하여 컴퓨팅 디바이스 상에서 동작하는 리포팅 애플리케이션에 대해 지오펜스 서버 상에서 블렌딩된 지오펜스를 생성하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 4b 는 컴퓨팅 디바이스에 대해 지오펜스 서버 상에서 블렌딩된 지오펜스를 생성하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 5 는 리포팅 애플리케이션과 연관된 컴퓨팅 디바이스를 지오펜스 서버에 등록하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 6 은 블렌딩된 지오펜스 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할지 여부를 결정하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 7a 및 도 7b 는 현재 위치와 연관된 블렌딩된 지오펜스를 생성 및 저장하고 현재 위치와 연관된 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램들이다.
도 8 은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대한 블렌딩된 지오펜스들을 결정, 생성, 및/또는 관리하도록 구성된 일 실시형태의 컴퓨팅 디바이스에서의 예시적인 논리 컴포넌트들 및 정보 플로우들을 예시하는 블록 다이어그램이다.
도 9a 는 컴퓨팅 디바이스의 현재 위치에 기초하여 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 9b 는 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 전송하기 위한 다른 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 10a 는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들 대신에 블렌딩된 지오펜스가 만족될 때를 지오펜스 서버에게 통지하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 10b 는 지오펜스 서버로부터 수신된 블렌딩된 지오펜스가 횡단될 때에 대해 모니터링하고 그것을 리포팅하기 위해 컴퓨팅 디바이스 상에서 프록시 서버 애플리케이션을 구현하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 11 은 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에게 블렌딩된 지오펜스를 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 12 는 컴퓨팅 디바이스 상에서 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 13 은 지오펜스 관리 유닛으로부터의 블렌딩된 지오펜스 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할지 여부를 결정하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램이다.
도 14a 및 도 14b 는 지오펜스 관리 유닛으로 컴퓨팅 디바이스의 현재 위치와 연관된 블렌딩된 지오펜스를 생성 및 저장하고 현재 위치와 연관된 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위한 일 실시형태의 방법을 예시하는 프로세스 플로우 다이어그램들이다.
도 15a 내지 도 15c 는 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 예시들이다.
도 16 은 일 실시형태에서의 이용에 적합한 컴퓨팅 디바이스의 컴포넌트 블록 다이어그램이다.
도 17 은 일 양태에서의 이용에 적합한 네트워크 서버 컴퓨팅 디바이스의 컴포넌트 블록 다이어그램이다.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the invention and, together with the general description provided above and the detailed description provided below, serve to explain features of the invention.
1 is a communication system block diagram illustrating network components of an example communication system suitable for use in the various aspects.
2 is a typical signaling and call flow between an application developer, a geofence server, and a geofence-enabled application running on a computing device.
3A is an illustration of overlapping geofences associated with different geofence-enabled applications at a location.
3B is an illustration of a blended geofence created from multiple overlapping geofences at a location, according to one embodiment.
4A is a process flow diagram illustrating an embodiment method for generating a blended geofence on a geofence server for a reporting application running on the computing device based on the current location of the computing device.
4B is a process flow diagram illustrating an embodiment method for generating a blended geofence on a geofence server for a computing device.
5 is a process flow diagram illustrating an embodiment method for registering a computing device associated with a reporting application with a geofence server.
6 is a process flow diagram illustrating an embodiment method for determining whether to send blended or unblended geofence information to a reporting application.
7A and 7B are process flow diagrams illustrating an embodiment method for generating and storing a blended geofence associated with a current location and sending a stored blended geofence associated with a current location to a reporting application.
8 illustrates example logical components and information flows in a computing device of an embodiment configured to determine, create, and/or manage blended geofences for geofence-enabled applications running on the computing device. This is an example block diagram.
9A is a process flow diagram illustrating an embodiment method for sending a blended geofence from a geofence management unit to geofence-enabled applications operating on a computing device based on a current location of the computing device; to be.
9B is a process flow diagram illustrating another embodiment method for sending a blended geofence from a geofence management unit to geofence-enabled applications running on a computing device.
10A is a process flow diagram illustrating an embodiment method for notifying a geofence server when a blended geofence is satisfied on behalf of geofence-enabled applications running on a computing device.
10B is a process flow diagram illustrating an embodiment method for implementing a proxy server application on a computing device to monitor for and report when a blended geofence received from a geofence server is traversed.
11 is a process flow diagram illustrating an embodiment method for sending a blended geofence to geofence-enabled applications associated with geofences included in the blended geofence.
12 is a process flow diagram illustrating an embodiment method for sending a blended geofence from a geofence management unit to a reporting application on a computing device.
13 is a process flow diagram illustrating an embodiment method for determining whether to send blended or unblended geofence information from a geofence management unit to a reporting application.
14A and 14B illustrate an embodiment method for generating and storing a blended geofence associated with a current location of a computing device with a geofence management unit and sending the stored blended geofence associated with the current location to a reporting application These are process flow diagrams.
15A to 15C are examples of combining geographically close geofences into a blended geofence.
16 is a component block diagram of a computing device suitable for use in one embodiment.
17 is a component block diagram of a network server computing device suitable for use in an aspect.

다양한 실시형태들이 첨부 도면들을 참조하여 상세히 설명될 것이다. 가능하다면 어디서든지, 동일한 참조 부호들이 도면들 전반에 걸쳐 사용되어 동일하거나 유사한 부분들을 지칭할 것이다. 특정 예들 및 구현들에 대해 이루어진 언급들은 예시적인 목적들을 위한 것이며, 청구항들 또는 본 발명의 범위를 제한하려고 의도된 것이 아니다.Various embodiments will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. References made to specific examples and implementations are for illustrative purposes and are not intended to limit the scope of the claims or the invention.

다수의 상이한 셀룰러 및 모바일 통신 서비스들 및 표준들은 장래에 이용가능하거나 또는 고려되고, 이들 모두는 다양한 실시형태들을 구현하고 이 다양한 양태들로부터 이익을 얻을 수도 있다. 이러한 서비스들 및 표준들은, 예를 들어, 제 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) 를 포함한다. 이들 기술들 각각은, 예를 들어, 음성, 데이터, 시그널링, 및/또는 콘텐츠 메시지들의 송신 및 수신을 수반한다. 산업적 전기통신 표준 또는 기술에 관련된 전문용어 및/또는 기술적 상세들에 대한 임의의 언급들은 오직 예시적인 목적들을 위한 것이고, 청구항 언어에서 구체적으로 인용되지 않는다면 청구항들의 범위를 특정 통신 시스템 또는 기술로 제한하도록 의도된 것이 아니라는 것이 이해되어야 한다.A number of different cellular and mobile communication services and standards are available or contemplated in the future, all of which may implement various embodiments and benefit from these various aspects. These services and standards are, for example, 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE) systems, 3rd Generation Wireless Mobile Communication Technology (3G), 4th Generation Wireless Mobile Communication Technology (4G). , Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), 3GSM, General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA) systems (e.g., cdmaOne), GSM Evolution enhanced data rates for GSM evolution (EDGE), advanced mobile phone system (AMPS), digital AMPS (IS-136/TDMA), evolution-data optimized EV-DO), digital enhanced cordless telecommunications (DECT), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Local Area Network (WLAN), Wi-Fi Protected Access I & II (WPA, WPA2), and integrated digital enhanced network (iden). Each of these techniques involves, for example, the transmission and reception of voice, data, signaling, and/or content messages. Any references to terminology and/or technical details related to an industrial telecommunications standard or technology are for illustrative purposes only and are intended to limit the scope of the claims to a particular communication system or technology unless specifically recited in the claim language It should be understood that this is not intended.

본 명세서에서 용어 "컴퓨팅 디바이스" 는 셀룰러 전화기들, 스마트폰들, 퍼스널 또는 모바일 멀티미디어 플레이어들, 개인 휴대 정보 단말기 (PDA) 들, 랩톱 컴퓨터들, 태블릿 컴퓨터들, 스마트북들, 차량 컴퓨팅 시스템들, 지상, 해상 및 항공 내비게이션 시스템들, 울트라북들, 팜탑 컴퓨터들, 무선 전자 메일 수신기들, 멀티미디어 인터넷 인에이블드 셀룰러 전화기들, 무선 게이밍 제어기들, 그리고 메모리, 프로그래밍가능 프로세서, 및 현재 위치를 결정하는 GPS 수신기 또는 다른 수단을 포함하는 유사한 퍼스널 전자 컴퓨팅 디바이스들 중 임의의 하나 또는 전부를 지칭한다. 용어 "컴퓨팅 디바이스" 는 또한, 자전거들, 자동차들, 오토바이들, 항공기, 보트들, 선박들 등 내에 통합된 내비게이션 시스템들 및/또는 컴퓨팅 시스템들과 같은, 대형 컴퓨팅 디바이스들 또는 차량들 내에 포함되는 현재 위치를 결정하기 위한 프로세서 및 수단이 내장된 컴퓨팅 디바이스들을 포함한다.The term "computing device" as used herein refers to cellular telephones, smartphones, personal or mobile multimedia players, personal digital assistants (PDAs), laptop computers, tablet computers, smartbooks, vehicle computing systems, land, sea and air navigation systems, ultrabooks, palmtop computers, wireless e-mail receivers, multimedia Internet-enabled cellular telephones, wireless gaming controllers, and memory, programmable processor, and to any one or all of similar personal electronic computing devices including a GPS receiver or other means. The term “computing device” is also encompassed within large computing devices or vehicles, such as navigation systems and/or computing systems integrated within bicycles, automobiles, motorcycles, aircraft, boats, ships, etc. computing devices having an embedded processor and means for determining a current location.

본 명세서에서 용어 "지오펜스-인에이블드 애플리케이션 (geofence-enabled application)" 은 지오펜싱을 포함하는 위치-기반 서비스들에 참여하거나 또는 활용할 수도 있는 컴퓨팅 디바이스 상에서 동작하는 애플리케이션을 지칭한다. 다양한 실시형태들에서, 지오펜스-인에이블드 애플리케이션은 하나 이상의 지오펜스들에 관한 정보 (예를 들어, 지오펜스들의 형상, 영역, 주변 등) 를 지오펜스 서버 및/또는 지오펜스 관리 유닛으로부터 수신할 수도 있고, 일 양태에서, 지오펜스-인에이블드 애플리케이션은 이러한 정보를 이용하여 특정 영역에서의 하나 이상의 지오펜스들을 모니터링하여 그의 컴퓨팅 디바이스가 이들 지오펜스들의 경계를 횡단하거나 또는 이들 지오펜스들 중 하나를 만족시킬 때를 결정할 수도 있다.The term “geofence-enabled application” herein refers to an application running on a computing device that may participate in or utilize location-based services including geofencing. In various embodiments, a geofence-enabled application receives information about one or more geofences (eg, shape, area, perimeter, etc. of geofences) from a geofence server and/or geofence management unit. may, and in one aspect, a geofence-enabled application may use this information to monitor one or more geofences in a particular area so that its computing device traverses the boundaries of these geofences or one of these geofences You can also decide when to satisfy one.

각각의 지오펜스-인에이블드 애플리케이션을 별도로 다루는 것은 일반적인 관행인데, 이는 그 애플리케이션의 지오펜스 경계가 컴퓨팅 디바이스 상의 다른 지오펜스-인에이블드 애플리케이션들과 연관된 하나 이상의 다른 지오펜스 경계들에 가깝게 근접하거나 또는 오버래핑되는지 여부에 상관없이 그의 지오펜스 경계가 만족되었는지 여부를 결정하기 위해 컴퓨팅 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션이 요구될 수도 있다는 것을 의미한다. 가깝게 근접한 지오펜스 영역들을 핸들링하기 위한 이러한 일관성없는 접근법의 결과로서, 종래의 컴퓨팅 디바이스는 많은 인근의 그리고 오버래핑 지오펜스들이 존재하는 영역에 진입할 때 보다 높은 배터리 방전과 같은 상당한 성능 감소를 경험하는데, 이는 컴퓨팅 디바이스가 인근의 또는 오버래핑 지오펜스들을 동시에 추적하고 횡단된 각각의 지오펜스에 대해 지오펜스 서버와 통신해야 하기 때문이다. 이러한 상황은 또한, 애플리케이션에 대한 애플리케이션 개발자가 몇몇 오버래핑 또는 인근 지오펜스들을 도출할 때 단일의 지오펜스-인에이블드 애플리케이션에 영향을 미칠 수도 있다.It is common practice to treat each geofence-enabled application separately, where the application's geofence boundary is in close proximity to one or more other geofence boundaries associated with other geofence-enabled applications on the computing device, or or that each geofence-enabled application running on the computing device may be required to determine whether its geofence boundary has been satisfied, whether or not they overlap. As a result of this inconsistent approach to handling closely proximate geofence areas, conventional computing devices experience significant performance degradation, such as higher battery discharge, when entering an area where many nearby and overlapping geofences exist. This is because the computing device must simultaneously track nearby or overlapping geofences and communicate with the geofence server for each geofence traversed. This situation may also affect a single geofence-enabled application when the application developer for the application derives some overlapping or neighboring geofences.

개요에서, 다양한 실시형태들은 동일한 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들과 연관된 오버래핑/지리적으로 가까운 지오펜스들을 단일의 블렌딩된 지오펜스 (blended geofence) 에 결합하기 위한 시스템들 및 시스템에서 구현되는 방법들을 제공한다. 일 실시형태에서, 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 블렌딩된 지오펜스를 모니터링할 수도 있어서, 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때 블렌딩된 지오펜스가 만족되었다는 것을 하나 이상의 지오펜스-인에이블드 애플리케이션들이 동시에 또는 거의 동시에 검출할 수도 있다. 따라서, 하나 이상의 애플리케이션들 각각이 블렌딩된 지오펜스가 만족될 때를 동시에 또는 거의 동시에 검출하기 때문에 하나 이상의 지오펜스-인에이블드 애플리케이션 각각은 지오펜스 서버와 동시에 통신할 수도 있다. 따라서, 지오펜스-인에이블드 애플리케이션의 지오펜스 영역들 중 하나 이상을 블렌딩하는 것에 의해, 다양한 실시형태들은 지오펜스 서버와 통신하기 위해 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 필요한 데이터, 위치 감지, 및/또는 프로세싱 리소스들의 전체량을 감소시켜서, 그에 의해 컴퓨팅 디바이스에 대한 전체 사용자 경험 및 배터리 수명을 개선시킬 수도 있다.In overview, various embodiments provide systems for combining overlapping/geographically close geofences associated with one or more geofence-enabled applications running on the same computing device into a single blended geofence, and Methods implemented in the system are provided. In an embodiment, each of the one or more geofence-enabled applications may monitor the blended geofence, such that when the computing device traverses the blended geofence, it determines that the blended geofence has been satisfied. -enabled applications may detect simultaneously or nearly simultaneously. Accordingly, each of the one or more geofence-enabled applications may concurrently communicate with the geofence server because each of the one or more applications simultaneously or nearly simultaneously detects when a blended geofence is satisfied. Accordingly, by blending one or more of the geofence areas of the geofence-enabled application, various embodiments provide for the data, location, and location needed for one or more geofence-enabled applications to communicate with the geofence server It may reduce the overall amount of sensing, and/or processing resources, thereby improving overall user experience and battery life for the computing device.

실시형태의 방법들은 소프트웨어로 구현되고 지오펜스 서버에 의해 실행될 수도 있다. 추가 실시형태들에서, 실시형태의 방법들은 하드웨어 컴포넌트 또는 시스템-온-칩의 형태로 하드웨어로 구현될 수도 있다.The methods of the embodiment may be implemented in software and executed by a geofence server. In further embodiments, the methods of the embodiment may be implemented in hardware in the form of a hardware component or a system-on-chip.

일 실시형태에서, 동일한 컴퓨팅 디바이스 상에서 동작하는 다수의 지오펜스-인에이블드 애플리케이션들에게 블렌딩된 지오펜스를 제공하는 것은 지오펜스 서버 내에서 달성될 수도 있다. 지오펜스 서버는 컴퓨팅 디바이스 상에서 동작하는 모든 지오펜스-인에이블드 애플리케이션들 (예를 들어, 지오펜스 서버에 등록된 모든 애플리케이션들) 에게 알릴 수도 있고, 컴퓨팅 디바이스 상에서 동작하는 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대해 가깝게 근접하거나 또는 오버래핑되는 지오펜스들을 식별하기 위해 이 정보를 이용할 수도 있다. 지오펜스 서버는 이 정보를 이용하여 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대한 인접한 그리고 오버래핑 지오펜스들 중 일부 또는 전부를 포함하는 단일의 블렌딩된 지오펜스를 도출할 수도 있다.In one embodiment, providing a blended geofence to multiple geofence-enabled applications running on the same computing device may be accomplished within a geofence server. The geofence server may inform all geofence-enabled applications running on the computing device (eg, all applications registered with the geofence server), and one or more geofence-enabled applications running on the computing device. This information may be used to identify closely proximate or overlapping geofences for de applications. The geofence server may use this information to derive a single blended geofence that includes some or all of adjacent and overlapping geofences for one or more geofence-enabled applications.

다른 실시형태에서, 지오펜스 서버는, 블렌딩된 지오펜스에 관한 정보를, 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각에게 제공하여, 그에 의해 하나 이상의 애플리케이션들로 하여금 공통 지오펜스 영역을 공유하게 할 수도 있다. 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각이 공통 지오펜스 영역을 공유하기 때문에, 각각의 애플리케이션은 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였다는 것을 동시에 또는 거의 동시에 검출하여, 컴퓨팅 디바이스를 인에이블시켜서 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각에 대해 블렌딩된 지오펜스를 만족시킨 것을 지오펜스 서버에 동시에 또는 거의 동시에 리포팅할 수도 있다. 그 결과, 컴퓨팅 디바이스는 덜 빈번하게 지오펜스 서버와 통신하거나 및/또는 위치를 감지하려고 시도하여, 그에 의해 시스템 리소스들 및 배터리 전력을 절약할 수도 있다.In another embodiment, the geofence server provides information about the blended geofence to each of the one or more geofence-enabled applications on the computing device, thereby causing the one or more applications to connect to a common geofence area. You can also share it. Because each of the one or more geofence-enabled applications shares a common geofence area, each application detects at the same time or near the same time that the computing device has traversed the blended geofence, enabling the computing device Satisfying the blended geofence for each of the one or more geofence-enabled applications may be reported to the geofence server simultaneously or nearly simultaneously. As a result, the computing device may attempt to sense location and/or communicate with the geofence server less frequently, thereby saving system resources and battery power.

일 실시형태에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션 (즉, "리포팅 애플리케이션") 으로부터 지오펜스 횡단 통지를 수신한 것에 응답하여, 지오펜스 서버는, 리포팅 애플리케이션의 컴퓨팅 디바이스 상에서, 컴퓨팅 디바이스의 현재 위치에 근접하게 가까운 (예를 들어, 오버래핑되는) 지오펜스-인에이블드 애플리케이션들 중 하나 이상과 연관된 지오펜스들을 결정할 수도 있다. 지오펜스 서버는 이들 지오펜스들을 단일의 블렌딩된 지오펜스 영역에 결합/재도출할 수도 있고, 지오펜스 서버는 블렌딩된 지오펜스에 대한 정보를 리포팅 애플리케이션에 전송할 수도 있다. 지오펜스 서버는 동시에 또는 추후에 동일한 블렌딩된 지오펜스 정보를 동일한 컴퓨팅 디바이스 상의 다른 지오펜스-인에이블드 애플리케이션들에게 전송하여, 그에 의해 결국에는, 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각이 공통 지오펜스 (즉, 블렌딩된 지오펜스) 를 모니터링한다는 것을 보장할 수도 있다. 따라서, 이러한 실시형태들은 컴퓨팅 디바이스가 지오펜스 서버와 통신하거나 및/또는 그의 컴퓨팅 디바이스의 위치를 감지하려고 시도해야 하는 시간량을 감소시킬 수도 있는데, 이는, 결국에는, 하나 이상의 지오펜스-인에이블드 애플리케이션들이 블렌딩된 지오펜스를 동시에 횡단하고 이들 횡단들을 지오펜스 서버에 동시에 또는 거의 동시에 리포팅할 수도 있기 때문이다.In one embodiment, in response to receiving a geofence traversal notification from a geofence-enabled application running on the computing device (ie, a “reporting application”), the geofence server is configured to: Geofences associated with one or more of the proximate (eg, overlapping) geofence-enabled applications that are proximate to the device's current location may be determined. The geo-fence server may combine/re-derive these geo-fences into a single blended geo-fence area, and the geo-fence server may transmit information about the blended geo-fence to the reporting application. The geofence server simultaneously or later sends the same blended geofence information to other geofence-enabled applications on the same computing device so that each of the one or more geofence-enabled applications is in common It may be guaranteed to monitor geofences (ie, blended geofences). Accordingly, such embodiments may reduce the amount of time the computing device must attempt to communicate with and/or sense the location of the computing device to a geofence server, which, in turn, may result in one or more geofence-enabled This is because applications may traverse blended geofences simultaneously and report these traversals to the geofence server simultaneously or nearly simultaneously.

일 실시형태에서, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들의 가깝게 근접한 지오펜스들 또는 오버래핑 지오펜스들을 블렌딩하기 위한 다양한 전략들을 구현할 수도 있다. 일 실시형태에서, 지오펜스 서버는 오버래핑/가까운 근접도의 지오펜스들을 다양한 형상들로 결합할 수도 있다. 예를 들어, 지오펜스 서버는 지오펜스 주변들에 기초하여 결합된 형상을 형성하거나, 개개의 지오펜스들을 캡슐화하는 보다 큰 지오펜스를 생성하거나, 및/또는 결합된 지오펜스들의 가중된 평균 형상을 결정할 수도 있다. 가중치들은 펜스를 위반할 확률, 펜스의 사이즈, 유스 케이스 (use case) 에 대해 요구된 정확도, 유스 케이스에 대해 요구된 배터리 절약 등을 포함할 수도 있다.In an embodiment, the geofence server may implement various strategies for blending closely proximate geofences or overlapping geofences of a plurality of geofence-enabled applications running on the same computing device. In one embodiment, the geofence server may combine overlapping/close proximity geofences into various shapes. For example, the geofence server may form a combined shape based on the geofence perimeters, create a larger geofence encapsulating individual geofences, and/or generate a weighted average shape of the combined geofences. may decide The weights may include the probability of breaking the fence, the size of the fence, the required accuracy for the use case, the battery saving required for the use case, and the like.

추가 실시형태들에서, 동일한 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-애플리케이션들에 대한 공통의 블렌딩된 지오펜스를 생성하는 동작들은 실시형태의 방법들의 동작들을 수행하도록 프로세서 실행가능 명령들로 구성된 컴퓨팅 디바이스 프로세서에 의해 달성될 수도 있다. 이 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 실행하는 하나 이상의 지오펜스-인에이블드 애플리케이션들 대신에 프록시 지오펜스 서버로서 작용하도록 컴퓨팅 디바이스 상에서 실행할 수도 있다. 이 실시형태에서, 지오펜스 관리 유닛은, 지오펜스-인에이블드 애플리케이션들 그 자체로부터, 또는 지오펜스 서버로부터, 지오펜스-인에이블드 애플리케이션들 각각에 대한 현재 위치에서의 지오펜스들에 관한 정보를 수신할 수도 있다. 이 정보를 이용하여, 지오펜스 관리 유닛은, 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대한 현재 위치에서의 지오펜스들을 단일의 블렌딩된 지오펜스에 재도출/결합할 수도 있다.In further embodiments, the operations of generating a common blended geofence for one or more geofence-applications executing on the same computing device are configured with processor-executable instructions to perform the operations of the methods of the embodiment. This may be accomplished by a processor. In this embodiment, the geofence management unit may execute on the computing device to act as a proxy geofence server in lieu of one or more geofence-enabled applications executing on the computing device. In this embodiment, the geofence management unit provides information about geofences at the current location for each of the geofence-enabled applications, either from the geofence-enabled applications themselves, or from the geofence server. may receive. Using this information, the geofence management unit may re-derive/combine geofences at the current location for one or more geofence-enabled applications into a single blended geofence.

일 실시형태에서, 컴퓨팅 디바이스의 프로세서 상에서 실행하는 지오펜스 관리 유닛은 컴퓨팅 디바이스의 위치를 모니터링하여 블렌딩된 지오펜스가 횡단될 때를 검출할 수도 있다. 블렌딩된 지오펜스가 횡단될 때, 지오펜스 관리 유닛은, 지오펜스 기준이 만족된다는 통지를, 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있다. 지오펜스 관리 유닛은 또한 지오펜스 서버에 통지를 전송할 수도 있다. 이것은 각각의 애플리케이션을 인에이블시켜서 그것이 그 자신의 지오펜스가 횡단되었다는 것을 결정한 것처럼 독립적으로 작용할 수도 있다. 지오펜스 관리 유닛이 지오펜스-인에이블드 애플리케이션들에게 동시에 통지하므로, 지오펜스 서버로의 단일 연결이 확립되어 애플리케이션들 전부를 지원할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛은 재도출된 지오펜스를 컴퓨팅 디바이스 상의 다른 지오펜스 애플리케이션들 각각에게 전송할 수도 있고, 이 다른 지오펜스 애플리케이션들은 그 후에, 이들이 블렌딩된 지오펜스를 지오펜스 서버로부터 수신한 것처럼 상술된 바와 같이 동작할 수도 있다.In an embodiment, a geofence management unit executing on a processor of the computing device may monitor the location of the computing device to detect when a blended geofence is traversed. When the blended geofence is traversed, the geofence management unit may send a notification to each geofence-enabled application running on the computing device that the geofence criterion is met. The geofence management unit may also send a notification to the geofence server. This may enable each application to act independently as if it has determined that its own geofence has been traversed. Since the geofence management unit notifies the geofence-enabled applications at the same time, a single connection to the geofence server may be established to support all of the applications. In an alternative embodiment, the geofence management unit may send the re-derived geofence to each of the other geofence applications on the computing device, which other geofence applications can thereafter send the blended geofence from the geofence server It may operate as described above as received.

일 실시형태에서, 지오펜스 관리 유닛은 독립형 애플리케이션 또는 소프트웨어 서비스로서 또는 오퍼레이팅 시스템의 부분으로서 구현되거나 또는 컴퓨팅 디바이스에서 특수화된 하드웨어에서 (예를 들어, GPS 칩 내측에서) 구현되는 것 등이 있을 수도 있다.In an embodiment, the geofence management unit may be implemented as a standalone application or software service or as part of an operating system or may be implemented in specialized hardware (eg, inside a GPS chip) in a computing device, etc. .

다양한 실시형태들은 도 1 에 예시되는 예시적인 통신 시스템 (100) 과 같은 다양한 통신 시스템들 내에서 구현될 수도 있다. 통신 시스템 (100) 은 다양한 기법들을 이용하여 자신의 위치를 결정하도록 구성될 수도 있는 컴퓨팅 디바이스 (102) 를 포함할 수도 있다.The various embodiments may be implemented within various communication systems, such as the example communication system 100 illustrated in FIG. 1 . The communication system 100 may include a computing device 102 that may be configured to determine its location using various techniques.

일 실시형태에서, 컴퓨팅 디바이스 (102) 는 GPS 위성들 (104) 로부터 무선 통신물들 (118) 을 수신하도록 구성된 GPS 칩셋을 포함할 수도 있고, 이들 수신된 통신물들 (118) 에 기초하여 그의 현재 위치 정보를 결정할 수도 있다. 컴퓨팅 디바이스 (102) 는 또한 지원된 GPS (A-GPS) 기능성을 포함할 수도 있다.In one embodiment, computing device 102 may include a GPS chipset configured to receive wireless communications 118 from GPS satellites 104 , based on its current location based on these received communications 118 . information can also be determined. Computing device 102 may also include supported GPS (A-GPS) functionality.

다른 실시형태에서, 컴퓨팅 디바이스 (102) 는 그의 현재 위치를 결정하기 위한 다양한 알려진 로컬 포지셔닝 시스템들, 예컨대 Wi-Fi 포지셔닝 시스템 또는 모바일-네트워크-기반 포지셔닝 시스템을 활용할 수도 있다. 예를 들어, 컴퓨팅 디바이스 (102) 는 무선 연결 (120) 을 통해 (도 1 에서 무선 액세스 포인트 (108) 로서 예시된) 무선 액세스 포인트들과 통신할 수도 있고, 컴퓨팅 디바이스 (102) 는 무선 액세스 포인트 (108) 의 알려진 위치에 기초하여 그의 현재 위치를 결정할 수도 있다. 다른 예에서, 컴퓨팅 디바이스 (102) 는 이와 유사하게, 위치가 알려진 기지국으로부터 (예컨대 기지국 (106) 으로부터) 수신된 무선 신호들 (122) 에 기초하여 그의 현재 위치를 결정할 수도 있다.In another embodiment, computing device 102 may utilize various known local positioning systems to determine its current location, such as a Wi-Fi positioning system or a mobile-network-based positioning system. For example, computing device 102 may communicate with wireless access points (illustrated as wireless access point 108 in FIG. 1 ) via wireless connection 120 , and computing device 102 is a wireless access point. Based on the known location of 108 may determine its current location. In another example, computing device 102 may similarly determine its current location based on wireless signals 122 received from a base station with a known location (eg, from base station 106 ).

컴퓨팅 디바이스 (102) 는 또한 GPS 와 로컬-포지셔닝 시스템들의 조합을 이용하여 컴퓨팅 디바이스 (102) 가 그의 위치를 결정하는 하이브리드-포지셔닝 시스템들을 활용할 수도 있다. GPS 가 개방된 영역들에서는 더 정밀할 수도 있지만 실내들에서 또는 고층 빌딩들 사이에서는 열악하게 작동할 수도 있기 때문에, 컴퓨팅 디바이스 (102) 는 하나 이상의 다른 포지셔닝 기술들, 예컨대 셀 타워 신호들, 무선 인터넷 신호들, 블루투스 비콘들, 또는 다른 로컬 포지셔닝 시스템들과 조합하여 GPS 를 활용하여 GPS 단독으로 이용하는 것의 제한들을 극복하도록 구성될 수도 있다. 예를 들어, 컴퓨팅 디바이스 (102) 는, 빌딩들 또는 악천후에 의해 방해받지 않는, 셀 타워 신호들에 기초한 로컬-포지셔닝 시스템들을 이용할 수도 있다. 다른 예에서, 컴퓨팅 디바이스 (102) 는 높은 Wi-Fi 밀도를 갖는 도시 영역들에서 매우 정확한 포지셔닝을 부여하기 위해 GPS 에 부가적으로 Wi-Fi 포지셔닝 시스템들을 레버리징할 수도 있다.Computing device 102 may also utilize hybrid-positioning systems in which computing device 102 determines its location using a combination of GPS and local-positioning systems. Because GPS may be more precise in open areas but may perform poorly indoors or between high-rise buildings, computing device 102 may employ one or more other positioning technologies, such as cell tower signals, wireless Utilizing GPS in combination with signals, Bluetooth beacons, or other local positioning systems may be configured to overcome limitations of using GPS alone. For example, computing device 102 may use local-positioning systems based on cell tower signals, undisturbed by buildings or inclement weather. In another example, computing device 102 may leverage Wi-Fi positioning systems in addition to GPS to impart highly accurate positioning in urban areas with high Wi-Fi density.

컴퓨팅 디바이스 (102) 는 인터넷 (112) 에 연결하도록 구성될 수도 있다. 예를 들어, 컴퓨팅 디바이스 (102) 는 Wi-Fi 액세스 포인트와 같은 무선 액세스 포인트 (108) 를 통해 확립된 무선 연결 (120) 을 통해 인터넷 (112) 에 연결하도록 구성될 수도 있다. 무선 액세스 포인트 (108) 는 유선 연결 (124) 을 통해 인터넷 (112) 과 연결할 수도 있다. 부가적으로, 컴퓨팅 디바이스 (102) 및 셀룰러 타워 또는 기지국 (106) 은 CDMA, TDMA, GSM, PCS, 3G, 4G, LTE, 또는 임의의 다른 타입의 셀룰러 연결일 수도 있는 셀룰러 연결 (122) 을 통해 데이터를 교환할 수도 있다. 셀룰러 타워 또는 기지국 (106) 은 유선 연결 (126) 을 통해 인터넷 (112) 과 연결할 수도 있다.The computing device 102 may be configured to connect to the Internet 112 . For example, computing device 102 may be configured to connect to Internet 112 via wireless connection 120 established via wireless access point 108 , such as a Wi-Fi access point. The wireless access point 108 may connect with the Internet 112 via a wired connection 124 . Additionally, computing device 102 and cellular tower or base station 106 may connect via cellular connection 122, which may be CDMA, TDMA, GSM, PCS, 3G, 4G, LTE, or any other type of cellular connection. Data can also be exchanged. The cellular tower or base station 106 may connect with the Internet 112 via a wired connection 126 .

일 실시형태에서, 컴퓨팅 디바이스 (102) 는 하나 이상의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 그 특정 지오펜스-인에이블드 애플리케이션과 연관된 하나 이상의 지오펜스들 (즉, 실세계의 지리적 영역들과 연관된 가상 주변들) 을 관리할 수도 있다. 하나 이상의 지오펜스-인에이블드 애플리케이션들 각각은 컴퓨팅 디바이스 (102) 가 그의 지오펜스들 중 하나의 지오펜스의 주변을 횡단했는지 (즉, 지오펜스를 만족시켰는지) 여부를 결정하기 위해 컴퓨팅 디바이스 (102) 의 포지셔닝 능력들을 활용할 수도 있다. 컴퓨팅 디바이스 (102) 가 지오펜스-인에이블드 애플리케이션과 연관된 지오펜스를 만족시켰을 때, 그 애플리케이션은 그 횡단을 지오펜스 서버 (114) 에 리포팅하고, 컴퓨팅 디바이스 (102) 의 현재 위치에 가까운 지오펜스들의 위치와 같은, 업데이트된 지오펜스 정보를 요구할 수도 있다.In an embodiment, computing device 102 may include one or more geofence-enabled applications. Each of the one or more geofence-enabled applications may manage one or more geofences (ie, virtual perimeters associated with geographic regions of the real world) associated with that particular geofence-enabled application. Each of the one or more geofence-enabled applications is configured to determine whether computing device 102 has traversed the perimeter of one of its geofences (ie, satisfied the geofence) 102) may be utilized. When computing device 102 satisfies a geofence associated with a geofence-enabled application, the application reports the traversal to geofence server 114 , and a geofence close to the current location of computing device 102 . You may also request updated geofence information, such as their location.

일 실시형태에서, 지오펜스 서버 (114) 는 컴퓨팅 디바이스 (102) 와 같은 다양한 컴퓨팅 디바이스들 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스 정보를 관리 및 업데이트하도록 구성될 수도 있다. 지오펜스 서버 (114) 는 특정 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스 영역들을 저장할 수도 있는 지오펜스 정보 데이터베이스 (116) 와 통신할 수도 있다. 지오펜스 서버 (114) 는 유선 연결 (130) 을 통해 인터넷 (112) 에 연결할 수도 있어서 그에 따라 지오펜스-인에이블드 애플리케이션들로부터 지오펜스 정보 요구들을 수신하고 업데이트된 지오펜스 정보를 지오펜스-인에이블드 애플리케이션들에 전송하는 것이 가능할 수도 있다.In an embodiment, the geofence server 114 may be configured to manage and update geofence information for geofence-enabled applications operating on various computing devices, such as computing device 102 . The geofence server 114 may communicate with a geofence information database 116 that may store geofence areas associated with particular geofence-enabled applications. The geofence server 114 may connect to the Internet 112 via a wired connection 130 so as to receive geofence information requests from geofence-enabled applications and send updated geofence information to geofence-in accordingly. It may be possible to send to enabled applications.

도 2 는 알려진 기법들에 따라 지오펜스-인에이블드 애플리케이션에 대한 위치-기반 서비스들을 구현하기 위한 시그널링 및 호 플로우 (200) 를 예시한다.2 illustrates a signaling and call flow 200 for implementing location-based services for a geofence-enabled application according to known techniques.

현재, 애플리케이션 개발자는 지오펜스 서버 (114) 상에서 동작하는 지오펜싱 서비스 (예를 들어, 퀄컴에 의한 Gimbal® 플랫폼) 에 애플리케이션을 등록할 수도 있다. 애플리케이션 개발자의 컴퓨터 (202) 및 지오펜스 서버 (114) 는 다양한 애플리케이션 등록 통신물들 (207) 을 교환할 수도 있다. 예를 들어, 애플리케이션 개발자는 지오펜스 서버 (114) 에 그의 애플리케이션에 관한 다양한 상세들을 제공할 수도 있고; 지오펜스 서버는 애플리케이션이 지오펜싱 서비스와 양립가능한지 여부를 테스트하기 위해 다양한 확인, 검증, 및/또는 품질 보증 테스트들을 수행할 수도 있으며; 승인을 수신한 후에, 애플리케이션 개발자는 개발자의 애플리케이션을 인에이블시켜서 지오펜스 서버 (114) 와 통신하도록 (즉, 지오펜싱 능력들을 인에이블시키도록) 애플리케이션에 내장하기 위한, 지오펜싱 서비스로부터 수신된 코드 또는 명령들 (예를 들어, 소프트웨어 개발 키트 또는 SDK) 을 포함할 수도 있다.At present, the application developer can register the application to the geofencing service (e.g., Gimbal ® platform by Qualcomm) operating on the geofence server 114. The application developer's computer 202 and the geofence server 114 may exchange various application registration communications 207 . For example, an application developer may provide the geofence server 114 with various details regarding its application; The geofence server may perform various verification, validation, and/or quality assurance tests to test whether the application is compatible with the geofencing service; After receiving the authorization, the application developer enables the developer's application to communicate with the geofence server 114 (ie, enable geofencing capabilities) to embed into the application the code received from the geofencing service. or instructions (eg, a software development kit or SDK).

등록 프로세스 후에, 애플리케이션 개발자의 컴퓨터 (202) 는 관리 포털 또는 애플리케이션 프로그래밍 인터페이스 (API) 들을 통해 지오펜스 서비스에 액세스하여 애플리케이션 (206) 에 대한 하나 이상의 지오펜스들을 정의할 수도 있다. 예를 들어, 애플리케이션 개발자의 컴퓨터 (202) 는 지오펜스의 주변, 형상, 사이즈 등을 설명하는 정보 (예를 들어, 하나 이상의 지오펜스 정의들 (208)) 를 지오펜스 서버 (114) 에 전송할 수도 있다. 지오펜스 서버 (114) 는 동작 210 에서 하나 이상의 지오펜스 정의들 (208) 을 개발자의 애플리케이션 (206) 과 연관시킬 수도 있다.After the registration process, the application developer's computer 202 may access the geofence service through a management portal or application programming interfaces (APIs) to define one or more geofences for the application 206 . For example, the application developer's computer 202 may send information describing the perimeter, shape, size, etc. of the geofence (eg, one or more geofence definitions 208 ) to the geofence server 114 . have. The geofence server 114 may associate one or more geofence definitions 208 with the developer's application 206 in operation 210 .

어느 포인트에서, 컴퓨팅 디바이스 (102) 의 사용자는 애플리케이션 개발자의 컴퓨터 (202) 가 생성한 지오펜스-인에이블드 애플리케이션 (206) 을 컴퓨팅 디바이스 (102) 상으로 다운로드할 수도 있다. 사용자는 또한 지오펜스-인에이블드 애플리케이션 (206) 을 인에이블시켜서 지오펜스 서버 (114) 와 통신하도록 지오펜스-인에이블드 애플리케이션 (206) 을 작동시킬 수도 있다. 예를 들어, 지오펜스-인에이블드 애플리케이션 (206) 은 지오펜스 서버 (114) 와 통신하고, 하나 이상의 지오펜스 정의들 (208) 을 포함하는 지오펜스 정보 (212) 를 수신할 수도 있다.At some point, a user of computing device 102 may download onto computing device 102 a geofence-enabled application 206 generated by application developer's computer 202 . A user may also enable the geofence-enabled application 206 to run the geofence-enabled application 206 to communicate with the geofence server 114 . For example, a geofence-enabled application 206 may communicate with a geofence server 114 and receive geofence information 212 including one or more geofence definitions 208 .

지오펜스 정보 (212) 를 수신한 후에, 애플리케이션 (206) 은 동작들 214 에서 컴퓨팅 디바이스 (102) 의 현재 위치 (예를 들어, 위도 및 경도) 를 결정한다. 도 1 을 참조하여 상술된 바와 같이, 애플리케이션 (206) 은, GPS 또는 Wi-Fi-기반 위치 서비스들과 같은, 컴퓨팅 디바이스 (102) 상에서 이용가능한 다양한 위치-기반 시스템들 또는 능력들을 활용할 수도 있다. 애플리케이션 (206) 은 그 후에 동작 216 에서 컴퓨팅 디바이스 (102) 의 현재 위치에 기초하여 지오펜스 횡단이 발생하였는지 여부를 결정한다. 지오펜스-인에이블드 애플리케이션 (206) 은 컴퓨팅 디바이스가 지오펜스를 만족시켰다고 결정할 때까지 컴퓨팅 디바이스의 현재 위치를 계속 모니터링한다.After receiving the geofence information 212 , the application 206 determines a current location (eg, latitude and longitude) of the computing device 102 in operations 214 . As described above with reference to FIG. 1 , application 206 may utilize various location-based systems or capabilities available on computing device 102 , such as GPS or Wi-Fi-based location services. The application 206 then determines whether a geofence traversal has occurred based on the current location of the computing device 102 in operation 216 . The geofence-enabled application 206 continues to monitor the current location of the computing device until it determines that it has satisfied the geofence.

애플리케이션 (206) 이 컴퓨팅 디바이스가 지오펜스 (예를 들어, 하나 이상의 지오펜스 정의들 (208) 에 정의된 지오펜스) 를 횡단하였다는 것을 인지한 후에, 지오펜스-인에이블드 애플리케이션 (206) 은 지오펜스 횡단 통지 (218) 를 지오펜스 서버 (114) 에 전송할 수도 있다. 지오펜스 횡단 통지 (218) 는 지오펜스 횡단에 관련된 액션이 발생해야 한다는 것 (예를 들어, 컴퓨팅 디바이스의 사용자에게 통지를 푸시하는 것) 을 지오펜스 서버에게 알릴 수도 있다. 또한, 지오펜스 서버 (114) 는 애플리케이션 개발자의 컴퓨터 (202) 로부터의 하나 이상의 지오펜스 정의들 (208) 에 기초하여 컴퓨팅 디바이스 (102) 의 현재 위치에 있는 다른 지오펜스들 또는 최근에 부가된 지오펜스들에 관한 정보를 포함할 수도 있는 업데이트된 지오펜스 정보 (220) 를 지오펜스-인에이블드 애플리케이션 (206) 에 전송할 수도 있다.After the application 206 recognizes that the computing device has traversed a geofence (eg, a geofence defined in one or more geofence definitions 208 ), the geofence-enabled application 206 A geofence traversing notification 218 may be sent to the geofence server 114 . Geofence traversing notification 218 may inform the geofence server that an action related to geofence traversal should occur (eg, pushing a notification to a user of the computing device). In addition, the geofence server 114 may be configured to use a recently added geofence or other geofences at the current location of the computing device 102 based on one or more geofence definitions 208 from the application developer's computer 202 . Updated geofence information 220 , which may include information regarding fences, may be sent to geofence-enabled application 206 .

도 3a 및 도 3b 는 서로 가깝게 근접하거나 또는 오버래핑되는 지오펜스 영역들의 예시적인 표현들의 오버헤드 다이어그램들 (300, 320) 을 예시한다.3A and 3B illustrate overhead diagrams 300 , 320 of example representations of geofence regions that closely proximate or overlap each other.

도 3a 는 동일한 컴퓨팅 디바이스 상의 상이한 지오펜스-인에이블드 애플리케이션들와 연관된 개개의 지오펜스들의 오버헤드 다이어그램 (300) 을 예시한다.3A illustrates an overhead diagram 300 of individual geofences associated with different geofence-enabled applications on the same computing device.

위에서 논의된 바와 같이, 컴퓨팅 디바이스 (102) 는 다양한 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 지오펜스-인에이블드 애플리케이션은 다양한 기구들, 비즈니스들, 이벤트들 등에 의해 개발되거나 및/또는 이들과 연관될 수도 있다. 예를 들어, 특정 상점의 소유자들은 상점의 현재 재고 및 상점에서의 일일 판매들을 소비자들에게 알리기 위해 지오펜스-인에이블드 애플리케이션을 개발하였을 수도 있다.As discussed above, computing device 102 may include various geofence-enabled applications. A geofence-enabled application may be developed by and/or associated with various organizations, businesses, events, and the like. For example, owners of a particular store may have developed a geofence-enabled application to inform consumers of the store's current inventory and daily sales at the store.

일 예에서, 컴퓨팅 디바이스 (102) 는 3 개의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 제 1 지오펜스-인에이블드 애플리케이션은 특정 소매 상점에 대한 애플리케이션일 수도 있고, 제 1 지오펜스-인에이블드 애플리케이션은 그 소매 상점 (즉, 상점 (302)) 의 물리적 위치를 둘러싸는 제 1 지오펜스 (308) 를 모니터링하고 있을 수도 있다. 도 2 를 참조하여 상술된 바와 같이, 상점의 소유자는 지오펜싱 서비스를 갖는 지오펜스 (308) 를 이전에 정의하였을 수도 있고, 지오펜싱 서비스와 연관된 지오펜싱 서버는 제 1 지오펜스-인에이블드 애플리케이션을 인에이블시켜서 지오펜스 (308) 를 모니터링하는 것을 시작하도록 (즉, 상점 (302) 에 대한 위치-기반 서비스들을 구현하는 것을 시작하도록) 지오펜스 정보를 제 1 지오펜스-인에이블드 애플리케이션에 전송했을 수도 있다.In one example, computing device 102 may include three geofence-enabled applications. The first geofence-enabled application may be an application for a particular retail store, and the first geofence-enabled application may include a first geofence-enabled application surrounding the physical location of the retail store (ie, store 302 ). It may be monitoring the fence 308 . As described above with reference to FIG. 2 , the owner of the store may have previously defined a geofence 308 with a geofencing service, and the geofencing server associated with the geofencing service is the first geofence-enabled application. send geofence information to the first geofence-enabled application to enable it to begin monitoring the geofence 308 (ie, to begin implementing location-based services for the store 302 ) may have done

이와 유사하게, 제 2 지오펜스-인에이블드 애플리케이션은 극장 (304) 을 둘러싸는 제 2 지오펜스 (310) 를 모니터링하고 있을 수도 있고, 제 3 지오펜스-인에이블드 애플리케이션은 음식점 (306) 을 둘러싸는 제 3 지오펜스 (312) 를 모니터링하고 있을 수도 있다. 다른 실시형태에서, 지오펜스들 (308, 310, 312) 은 몰에 대해 개발자에 의해 생성된 애플리케이션과 같은 단일 지오펜스-인에이블드 애플리케이션과 연관될 수도 있다.Similarly, the second geofence-enabled application may be monitoring the second geofence 310 surrounding the theater 304 , and the third geofence-enabled application may be monitoring the restaurant 306 . It may be monitoring the enclosing third geofence 312 . In another embodiment, geofences 308 , 310 , 312 may be associated with a single geofence-enabled application, such as an application created by a developer for a mall.

도 3a 에 예시된 바와 같이, 개발자들은 지오펜스들 (308, 310, 312) 의 경계들을 정의하여 다양한 상이한 형상들 및 사이즈들을 생성할 수도 있다. 예를 들어, 지오펜스 (308) 는 직사각형이고, 지오펜스 (310) 는 다이아몬드형이고, 지오펜스 (312) 는 원형이다. 도시되지 않았지만, 지오펜스가 거의 임의의 2 차원 또는 3 차원 형상에 따를 수도 있다는 것이 예상된다.As illustrated in FIG. 3A , developers may define the boundaries of geofences 308 , 310 , 312 to create a variety of different shapes and sizes. For example, geo-fence 308 is rectangular, geo-fence 310 is diamond-shaped, and geo-fence 312 is circular. Although not shown, it is contemplated that the geofence may conform to almost any two-dimensional or three-dimensional shape.

실제로, 지오펜스 영역들은 구현의 제한들로 인해 최소 유효 반경을 가질 수도 있다. 예를 들어, GPS 를 이용하는 컴퓨팅 디바이스는 오직 50 미터의 최소 유효 범위를 가질 수도 있다. 그 결과, 지오펜스들은, 몰들 및 다운타운 영역들과 같은, 특히 밀집한 위치들에서, 다른 인근의 지오펜스 영역들과 빈번하게 오버래핑될 수도 있다. 따라서, 도 3a 에 예시된 바와 같이, 지오펜스들 (308, 310, 312) 중 2 개 이상이 오버래핑되거나 또는 그렇지 않으면 가깝게 근접한 영역들이 존재할 수도 있다.In practice, geofence areas may have a minimum effective radius due to implementation limitations. For example, a computing device using GPS may have a minimum effective range of only 50 meters. As a result, geofences may frequently overlap other nearby geofence areas, particularly in densely populated locations, such as malls and downtown areas. Accordingly, as illustrated in FIG. 3A , there may be regions where two or more of the geofences 308 , 310 , 312 overlap or otherwise closely proximate.

지오펜스들은 컴퓨팅 디바이스들이 아니라 애플리케이션들에 특정될 수도 있어서, 컴퓨팅 디바이스 상의 다수의 애플리케이션들이 지오펜싱을 구현하고 있을 때, 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션은 독립적으로, 그것이 그의 지오펜스들 중 하나를 횡단하였는지 여부를 결정하고 지오펜스를 횡단한 후에 업데이트된 지오펜스 파라미터 정보를 위해 지오펜스 서버에 콘택한다. 예를 들어, 컴퓨팅 디바이스는 몰 영역에서 몇몇 지오펜스들을 독립적으로 모니터링하고 있는 다수의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있다. 지오펜스-인에이블드 애플리케이션들에 의해 모니터링된 지오펜스들 중 일부 또는 전부가 오버래핑될 수도 있거나 또는 가깝게 근접할 수도 있기 때문에, 지오펜스들은 위치-감지 라디오 (location-sensing radio) 들 (예를 들어, GPS, Wi-Fi, 블루투스, 셀룰러 등) 을 독립적으로 이용하여 지오펜스가 횡단되었는지를 결정하고 이들의 각각의 지오펜스가 횡단될 때마다 단시간 내에 지오펜스 서버에 콘택하여, 그에 따라 컴퓨팅 디바이스 상의 프로세싱 리소스들 및/또는 배터리 전력의 상당한 양을 잠재적으로 소비할 수도 있다. 다시 말해, 컴퓨팅 디바이스가 오버래핑 또는 가까운 지오펜스 영역들을 독립적으로 추적하는 애플리케이션들을 포함할 때, 컴퓨팅 디바이스는 위치-감지 라디오들을 반복적으로 이용하여 업데이트된 포지션 픽스를 획득해야 할 수도 있는데, 이것은 배터리 전력을 소비하고, 일부 애플리케이션들에서는 또한 몇몇 인근 지오펜스들의 위치에 접근할 때 지오펜스 서버와 통신하고 지오펜스 서버로부터 업데이트된 지오펜스 파라미터 정보를 수신해야 할 수도 있는데 (즉, 만족된 지오펜스를 갖는 각각의 애플리케이션에 대해 적어도 한 번), 이것도 또한 배터리 전력을 소비한다. 이 상황은 또한, 각각의 상점에 대한 지오펜스들을 포함하는 몰에 대한 애플리케이션과 같은 단일 지오펜스-인에이블드 애플리케이션이 동일한 영역에서 다수의 오버래핑되는 또는 거의 오버래핑되는 지오펜스들을 가질 때 발생할 수도 있다.Geofences may be specific to applications rather than computing devices, so that when multiple applications on the computing device are implementing geofencing, each geofence-enabled application on the computing device can independently determine if it After traversing the geofence after determining whether one of them has been traversed, the geofence server is contacted for updated geofence parameter information. For example, a computing device may include multiple geofence-enabled applications that are independently monitoring several geofences in a mall area. Because some or all of the geofences monitored by geofence-enabled applications may overlap or be in close proximity, geofences are , GPS, Wi-Fi, Bluetooth, cellular, etc.) to determine whether a geo-fence has been traversed and contact the geo-fence server within a short time whenever their respective geo-fences are traversed, so that the It may potentially consume a significant amount of processing resources and/or battery power. In other words, when the computing device includes applications that independently track overlapping or nearby geofence areas, the computing device may have to repeatedly use location-sensing radios to obtain an updated position fix, which consumes battery power. consumption, and some applications may also need to communicate with and receive updated geofence parameter information from the geofence server when accessing the location of several nearby geofences (ie, each with a satisfied geofence at least once for its application), it also consumes battery power. This situation may also occur when a single geofence-enabled application, such as an application to a mall that includes geofences for each store, has multiple overlapping or nearly overlapping geofences in the same area.

도 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) 중 하나를 통과할 때마다 한 번) 통신해야 할 수도 있다.As illustrated in FIG. 3A , as the user 316 walks along path 314 to the store 302 , the user's computing device (not shown) uses location-sensing radios to create a geofence 308 , Detect traversing 310 , 312 , and each time the geofence 308 , 310 , 312 is traversed for any of the first, second, and third geofence-enabled applications, the geofence server may need to communicate with Additionally, because the geofences 308 , 310 , 312 overlap, the computing device uses location-sensing radios at a high frequency as the user 316 walks along the path 314 . 308, 310, 312 may have to detect, and the computing device may also need to communicate with the geofence server several times in a short amount of time, thereby causing a loss of power to the computing device's wireless transceivers, processor, and battery. creates excessive demands on For example, as the user 316 walks to the store 302 , the computing device detects 5 geofence traversals and 5 times in a row with the geofence server (ie, the computing device detects 5 geofence traversal sites 318a to 318e) may need to communicate once per each pass).

도 3b 는 동일한 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들과 연관된 다수의 오버래핑 또는 인근 지오펜스들 (308, 310, 및 312) 을 결합하는 것에 의해 생성된 단일의 블렌딩된 지오펜스 (322) 의 다이어그램 (320) 을 예시한다.3B illustrates a single blended geofence 322 created by combining multiple overlapping or neighboring geofences 308 , 310 , and 312 associated with one or more geofence-enabled applications on the same computing device. ) illustrates a diagram 320 of

일 실시형태에서, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상의 하나 이상의 지오펜스-인에이블드 애플리케이션들이 오버래핑 또는 인근 지오펜스들을 가질 때를 인지할 수도 있고, 이들 지오펜스들을 블렌딩하여 단일의 블렌딩된 지오펜스를 생성할 수도 있다. 별개의 오버래핑 또는 가까운 지오펜스들을 블렌딩하는 것에 의해, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션 간의 동기화를 감소 및/또는 개선시켜서, 그에 의해 컴퓨팅 디바이스를 인에이블시켜 지오펜스 횡단을 검출하거나 및/또는 지오펜스-인에이블드 애플리케이션들 대신에 지오펜스 서버와 통신하는데 시간 및/또는 전력을 덜 소비할 수도 있다.In one embodiment, the geofence server may be aware when one or more geofence-enabled applications on the same computing device have overlapping or nearby geofences, and blends these geofences to create a single blended geofence. You can also create By blending separate overlapping or nearby geofences, the geofence server reduces and/or improves synchronization between geofence-enabled applications running on the same computing device, thereby enabling the computing device to create geofences. Less time and/or power may be consumed detecting traversing and/or communicating with a geofence server instead of geofence-enabled applications.

추가 실시형태들에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛 애플리케이션은 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션의 지오펜스들을 블렌딩할 수도 있다.In further embodiments, a geofence management unit application running on a computing device may blend geofences of a geofence-enabled application running on the same computing device.

도 3b 에 예시된 바와 같이, 지오펜스 서버는 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들이 컴퓨팅 디바이스 상에서 동작하고 있다는 것을 인지할 수도 있고, 지오펜스들 (308, 310, 312) 을 단일의 블렌딩된 지오펜스 (322) 에 결합할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 15a 내지 도 15c 를 참조하여 아래에 추가로 설명되는 바와 같이 다수의 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위해 다양한 기법들을 이용할 수도 있다.As illustrated in FIG. 3B , the geofence server may be aware that first, second, and third geofence-enabled applications are running on the computing device, and the geofences 308 , 310 , 312 ) may be combined into a single blended geofence 322 . In an embodiment, the geofence server may use various techniques to combine multiple geofences into a single blended geofence as further described below with reference to FIGS. 15A-15C .

지오펜스들 (308, 310, 312) 을 결합한 후에, 지오펜스 서버 (또는 지오펜스 관리 유닛) 는 블렌딩된 지오펜스 (322) 를 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션에 업데이트된 지오펜스 정보로서 전송할 수도 있다. 따라서, 일 실시형태에서, 지오펜스 서버는 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들의 별개의 지오펜스들 (308, 310, 312) 을 블렌딩된 지오펜스 (322) 로 대체할 수도 있는데, 이는 각각의 애플리케이션이 블렌딩된 지오펜스 (322) 를 모니터링하는 것을 시작할 수도 있다는 것을 의미한다.After combining the geofences 308, 310, 312, the geofence server (or geofence management unit) sends the blended geofence 322 to the first, second, and third geofence-enabled applications. It may be transmitted as updated geofence information. Thus, in one embodiment, the geofence server replaces the separate geofences 308 , 310 , 312 of the first, second, and third geofence-enabled applications with the blended geofence 322 . may, which means that each application may start monitoring the blended geofence 322 .

제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들이 동일한 블렌딩된 지오펜스 (322) 를 모니터링할 수도 있기 때문에, 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들은 블렌딩된 지오펜스 (322) 가 횡단될 때를 동시에 또는 거의 동시에 인지할 수도 있고, 컴퓨팅 디바이스는 지오펜스 횡단들을 제 1, 제 2, 및 제 3 지오펜스-인에이블드 애플리케이션들 대신에 지오펜스 서버에 동시에 또는 거의 동시에 리포팅하여, 그에 의해 위치-감지 라디오들을 이용하여 지오펜스 횡단을 검출하고 지오펜스 서버와 통신하는데 컴퓨팅 디바이스가 소비할 수도 있는 시간 및/또는 전력의 양을 감소시킬 수도 있다.Because the first, second, and third geofence-enabled applications may monitor the same blended geofence 322 , the first, second, and third geofence-enabled applications are blended may simultaneously or nearly simultaneously recognize when the geofence 322 is traversed, and the computing device sends the geofence traversals to the geofence server instead of the first, second, and third geofence-enabled applications. Reporting simultaneously or near-simultaneously may thereby reduce the amount of time and/or power the computing device may consume to detect geo-fence traversal using location-sensitive radios and communicate with the geo-fence server.

예를 들어, 도 3b 에 예시된 바와 같이, 사용자 (316) 가 경로 (314) 를 따라 상점 (302) 으로 걸어감에 따라, 사용자 (316) 의 컴퓨팅 디바이스는 하나의 지오펜스 횡단 사이트 (324) 에서 블렌딩된 지오펜스 (322) 를 횡단할 수도 있고, 이 때 지오펜스 경계는 컴퓨팅 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션에 대해 만족될 수도 있다. 따라서, 위에서 도 3a 에 예시된 바와 같이 5 개의 별개의 지오펜스 횡단 사이트들 (318a 내지 318e) 을 검출하고 지오펜스 횡단 사이트들 (318a 내지 318e) 각각에서 지오펜스 서버와 5 회 통신하기보다는, 컴퓨팅 디바이스는 그 대신에 단지 하나의 횡단 사이트를 검출하고 (예를 들어, 동일한 송신에서) 지오펜스-인에이블드 애플리케이션들 각각에 대해 지오펜스 서버와 한 번 통신할 필요가 있을 수도 있는데, 이는 지오펜스-인에이블드 애플리케이션들은 동일한 블렌딩된 지오펜스 (322) 를 모니터링하고 있어서 그에 따라 블렌딩된 지오펜스 (322) 가 횡단될 때를 동시에 또는 거의 동시에 인지하기 때문이다.For example, as illustrated in FIG. 3B , as the user 316 walks along the path 314 to the store 302 , the user's 316 computing device becomes one geofence crossing site 324 . may traverse the blended geofence 322 in , where the geofence boundary may be satisfied for each geofence-enabled application operating on the computing device. Thus, rather than detecting five distinct geofence traversing sites 318a - 318e and communicating with a geofence server at each of geofence traversing sites 318a - 318e five times as illustrated in FIG. 3A above, computing The device may instead need to detect only one crossing site and communicate with the geofence server once for each of the geofence-enabled applications (eg, in the same transmission), which is a geofence - Because enabled applications are monitoring the same blended geofence 322 and accordingly know when the blended geofence 322 is traversed at the same time or nearly simultaneously.

도 4a 및 도 4b 는 지오펜스들이 블렌딩된 지오펜스에 포함되는 애플리케이션들 대신에 블렌딩된 지오펜스를 모니터링하는 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 또는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 의한 이용을 위해 블렌딩된 지오펜스들을 생성하기 위해 서버 상에서 실행하는 프로세서에 의해 수행될 수도 있는 실시형태의 방법들 (400, 430) 을 예시한다.4A and 4B illustrate a geofence-enabled operating on a computing device or by a geofence management unit operating on a computing device that monitors a blended geofence instead of applications included in the blended geofence; It illustrates embodiment methods 400 , 430 that may be performed by a processor executing on a server to generate blended geofences for use by applications.

방법 (400) 의 동작들은 서버가 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 것으로 결정된 지오펜스들을 블렌딩할 수도 있는 일 실시형태를 구현한다. 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들에 포커싱함으로써, 서버는 적절한 수의 유용한 블렌딩된 지오펜스들을 생성하기 위해 비교적 작은 지리적 구역 내에 머무르려는 대부분의 컴퓨팅 디바이스 사용자들의 경향을 레버리징할 수도 있다. 예를 들어, 전국에 걸쳐 놓여진 지오펜스들을 결합하기보다는, 서버는 사용자의 집 또는 근무처에 가까운 지오펜스들만을 단지 결합할 수도 있다.The operations of method 400 implement an embodiment in which the server may blend geofences determined to be geographically close to the current location of the computing device. By focusing on geofences that are geographically close to the computing device's current location, the server may leverage the tendency of most computing device users to stay within a relatively small geographic area to create an appropriate number of useful blended geofences. have. For example, rather than combining geofences placed across the country, the server may only combine geofences that are close to the user's home or work place.

도 4b 를 참조하여 아래에 설명된 것들과 같은 추가 실시형태들에서, 지오펜스 서버는 더 일반적으로는, 모바일 디바이스의 현재 위치와 관계없이, 지오펜스들을 블렌딩된 지오펜스들에 결합할 수도 있다. 구체적으로는, 지오펜스 서버는 컴퓨팅 디바이스의 현재 위치에 상관없이 서로 지리적으로 가까운 것으로 결정되는 지오펜스들의 그룹들로부터 블렌딩된 지오펜스들을 생성하도록 구성될 수도 있다. 따라서, 이러한 실시형태들에서, 지오펜스 서버는 다양한 지리적 영역들 (예를 들어, 국가의 전체 구역 또는 주) 에 대한 전량의 블렌딩된 지오펜스들을 미리 생성할 수도 있고, 필요에 따라, 예컨대 지오펜스 횡단 통지들을 수신한 것에 응답하여 또는 선제적으로 "푸시된" 데이터의 형태로 이들 저장된 블렌딩된 지오펜스들 중 하나 이상을 컴퓨팅 디바이스에 전송할 수도 있다.In further embodiments, such as those described below with reference to FIG. 4B , the geofence server may more generally combine geofences to the blended geofences, regardless of the mobile device's current location. Specifically, the geofence server may be configured to generate blended geofences from groups of geofences determined to be geographically close to each other regardless of the current location of the computing device. Thus, in such embodiments, the geofence server may pre-create the full amount of blended geofences for various geographic areas (eg, an entire region or state of a country), as needed, such as In response to receiving the traversing notifications or preemptively, one or more of these stored blended geofences may be sent to the computing device in the form of “pushed” data.

설명의 용이를 위해, 도 4a 내지 도 7b 를 참조하여 아래에 설명된 것들과 같은 다양한 실시형태들은, 컴퓨팅 디바이스의 현재 위치를 포함하거나 그 현재 위치에 의존하는 동작들을 포함할 수도 있다. 그러나, 컴퓨팅 디바이스의 현재 위치에 대한 임의의 언급 또는 의존성은 청구항들에서 명시적으로 인용되지 않는다면 청구항들의 범위를 제한하려고 의도된 것이 아니다.For ease of explanation, various embodiments, such as those described below with reference to FIGS. 4A-7B , may include operations that include or depend on the current location of the computing device. However, any reference or reliance on the current location of the computing device is not intended to limit the scope of the claims unless explicitly recited in the claims.

도 4a 는 동일한 컴퓨팅 디바이스 상에서 동작하는 상이한 지오펜스-인에이블드 애플리케이션과 연관된 다수의 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위해 지오펜스 서버 상에서 구현될 수도 있는 일 실시형태의 방법 (400) 을 예시한다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스를 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있어서, 지오펜스-인에이블드 애플리케이션들은 동일한 지오펜스를 모니터링하여, 그에 따라, 블렌딩된 지오펜스가 만족될 때를 동시에 또는 거의 동시에 검출한다.4A illustrates an embodiment method 400 that may be implemented on a geofence server to combine multiple geofences associated with different geofence-enabled applications running on the same computing device into a single blended geofence. to exemplify In one embodiment, the geofence server may send the blended geofence to geofence-enabled applications running on the same computing device, such that the geofence-enabled applications monitor the same geofence, and accordingly , detect when the blended geofence is satisfied simultaneously or almost simultaneously.

블록 402 에서, 지오펜스 서버는 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다. 일 실시형태에서, 리포팅 애플리케이션은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션일 수도 있고, 리포팅 애플리케이션은 위치-감지 라디오들을 통해 결정된 컴퓨팅 디바이스의 현재 위치에 기초하여 지오펜스가 횡단되었다는 것을 검출하였을 수도 있다. 지오펜스가 횡단되었다는 것을 검출한 것에 응답하여, 리포팅 애플리케이션은 도 2 를 참조하여 상술된 바와 같이 지오펜스 횡단 통지 (예를 들어, 메시지) 를 지오펜스 서버에 전송할 수도 있다.At block 402 , the geofence server may monitor for geofence traversing notifications from the reporting application. In one embodiment, the reporting application may be a geofence-enabled application running on the computing device, the reporting application would have detected that the geofence was traversed based on the current location of the computing device determined via location-sensitive radios. may be In response to detecting that the geo-fence has been traversed, the reporting application may send a geo-fence traversing notification (eg, a message) to the geo-fence server as described above with reference to FIG. 2 .

다른 실시형태에서, 지오펜스 횡단 통지는 위치-기반 서비스들을 리포팅 애플리케이션에 제공하기 위해 지오펜스 서버가 요구할 수도 있는 정보를 포함할 수도 있다. 예를 들어, 지오펜스 횡단 통지는 리포팅 애플리케이션의 아이덴티티, 리포팅 애플리케이션의 컴퓨팅 디바이스의 아이덴티티, 컴퓨팅 디바이스의 현재 위치, 사용자의 아이덴티티 (예를 들어, 사용자의 전화 번호 및 이메일 주소) 등을 포함할 수도 있다.In another embodiment, the geofence traversal notification may include information that the geofence server may require to provide location-based services to the reporting application. For example, the geofence crossing notification may include the identity of the reporting application, the identity of the computing device of the reporting application, the current location of the computing device, the identity of the user (e.g., the user's phone number and email address), etc. .

결정 블록 404 에서, 지오펜스 서버는 그 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 결정할 수도 있다. 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하지 못하였다고 지오펜스 서버가 결정할 때 (즉, 결정 블록 404 = "아니오"), 지오펜스 서버는 결정 블록 404 에서의 프로세스를 계속적으로 반복하여 그 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였을 때를 인지할 수도 있다. 일 실시형태에서, 지오펜스 서버는 그 지오펜스 서버가 지오펜스 횡단 통지를 수신할 때까지 아이들 (idle) 또는 저전력 상태에 남아있을 수도 있다.At decision block 404 , the geofence server may determine whether the geofence server has received a geofence traversal notification from the reporting application. When the geofence server determines that the geofence server has not received a geofence traversing notification from the reporting application (ie, determination block 404 = “No”), the geofence server continuously repeats the process at decision block 404 to The geofence server may recognize when it receives a geofence crossing notification from the reporting application. In one embodiment, a geofence server may remain in an idle or low power state until the geofence server receives a geofence traversing notification.

지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했다고 지오펜스 서버가 결정할 때 (즉, 결정 블록 404 = "예"), 블록 406 에서 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스가 지오펜스 서버에 이전에 등록되지 않았을 때 리포팅 애플리케이션의 컴퓨팅 디바이스를 등록할 수도 있다. 일 실시형태에서, 지오펜스 서버는 지오펜스 횡단 통지에 포함된 컴퓨팅 디바이스의 식별 정보를 기록하고 컴퓨팅 디바이스를 리포팅 애플리케이션과 연관시키는 것에 의해 리포팅 애플리케이션의 컴퓨팅 디바이스를 등록할 수도 있다. 컴퓨팅 디바이스를 등록하는 것은 도 5 를 참조하여 아래에 추가로 설명된다.When the geofence server determines that the geofence server has received a geofence traversing notification from the reporting application (ie, determination block 404 = “Yes”), in block 406 the geofence server determines that the reporting application's computing device has transferred to the geofence server. You may register the computing device of the reporting application when it is not registered with In an embodiment, the geofence server may register the computing device of the reporting application by recording the identification information of the computing device included in the geofence crossing notification and associating the computing device with the reporting application. Enrolling a computing device is further described below with reference to FIG. 5 .

블록 408 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 결정할 수도 있다. 상술된 바와 같이, 지오펜스 서버는 리포팅 애플리케이션으로부터 수신된 지오펜스 횡단 통지의 부분으로서 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 수신할 수도 있다. 다른 실시형태에서, 지오펜스 서버는 그의 컴퓨팅 디바이스의 현재 위치를 요구하는 신호를 리포팅 애플리케이션에 전송할 수도 있다.At block 408 , the geofence server may determine a current location of the computing device of the reporting application. As described above, the geofence server may receive the current location of the computing device of the reporting application as part of a geofence traversal notification received from the reporting application. In another embodiment, the geofence server may send a signal to the reporting application requesting the current location of its computing device.

블록 410 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들을 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블록 406 을 참조하여 상술된 바와 같이 지오펜스-인에이블드 애플리케이션들의 컴퓨팅 디바이스들을 등록하는 것과 같은, 지오펜스-인에이블드 애플리케이션들과 이들의 컴퓨팅 디바이스들 사이의 연관을 유지할 수도 있고, 지오펜스 서버는 이들 연관들을 이용하여 리포팅 애플리케이션의 컴퓨팅 디바이스 상에 포함되는 (즉, 그 컴퓨팅 디바이스와 연관되는) 다른 지오펜스-인에이블드 애플리케이션들을 결정할 수도 있다. 예를 들어, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 식별 기준들을 이용하여 데이터베이스 룩업 (lookup) 을 수행하여 컴퓨팅 디바이스와 연관되는 지오펜스-인에이블드 애플리케이션들 (리포팅 애플리케이션을 포함함) 을 결정할 수도 있다.At block 410 , the geofence server may determine geofence-enabled applications associated with the computing device of the reporting application. In one embodiment, the geofence server is configured to provide a link between geofence-enabled applications and their computing devices, such as registering the computing devices of geofence-enabled applications as described above with reference to block 406 . The association may be maintained, and the geofence server may use these associations to determine other geofence-enabled applications to be included on (ie, associated with) the computing device of the reporting application. For example, the geofence server may perform a database lookup using the reporting application's computing device's identification criteria to determine geofence-enabled applications (including the reporting application) associated with the computing device. have.

블록 412 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 결정할 수도 있다. 예를 들어, 도 3a 를 참조하여 위에 예시된 바와 같이, 리포팅 애플리케이션 (예를 들어, 제 1 지오펜스-인에이블드 애플리케이션) 에 부가적으로, 지오펜스 서버는 컴퓨팅 디바이스 상에서 동작하는 2 개의 다른 지오펜스-인에이블드 애플리케이션들 (예를 들어, 제 2 및 제 3 지오펜스-인에이블드 애플리케이션들) 이 존재한다는 것 그리고 각각의 지오펜스-인에이블드 애플리케이션이 하나 이상의 지오펜스들을 갖는다는 것을 결정할 수도 있다. 다른 실시형태에서, 지오펜스들은 단일의 지오펜스-인에이블드 애플리케이션과 연관될 수도 있다.At block 412 , the geofence server may determine geofences associated with geofence-enabled applications on the computing device of the reporting application. For example, as illustrated above with reference to FIG. 3A , in addition to a reporting application (eg, a first geofence-enabled application), a geofence server may include two other geofence servers operating on the computing device. determine that fence-enabled applications (eg, second and third geofence-enabled applications) exist and that each geofence-enabled application has one or more geofences may be In another embodiment, geofences may be associated with a single geofence-enabled application.

블록 414 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 결정할 수도 있다. 실시형태에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스들이 오버래핑되는지 및/또는 가깝게 근접한지 (즉, 지리적으로 가까운지) 여부를 결정하기 위해 다양한 계산들을 수행할 수도 있다. 예를 들어, 지오펜스 서버는 컴퓨팅 디바이스의 현재 영역에서의 지오펜스들 각각의 영역 및/또는 주변을 결정할 수도 있고, 복수의 지오펜스들이 오버래핑되거나 또는 거의 오버래핑되는 영역들 및/또는 주변들을 갖는지 여부를 결정할 수도 있다. 추가 실시형태에서, 지오펜스들은, 예컨대 2 개의 지오펜스들이 서로 소정 거리 내에 있을 때, 오버래핑 없이 지리적으로 가까울 수도 있다.At block 414 , the geofence server may determine geofences that are geographically close to the current location of the computing device of the reporting application. In an embodiment, the geofence server performs various calculations to determine whether geofences for geofence-enabled applications on the reporting application's computing device overlap and/or are in close proximity (ie, geographically close). can also perform For example, the geofence server may determine the area and/or perimeter of each of the geofences in the current area of the computing device, and whether the plurality of geofences have overlapping or near-overlapping areas and/or perimeters. may decide In a further embodiment, geofences may be geographically close without overlapping, such as when two geofences are within a certain distance of each other.

블록 416 에서, 지오펜스 서버는 현재 위치에서 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 지오펜스 서버는 지오펜스들을 결합하기 위해 다양한 기법들을 구현할 수도 있다. 예를 들어, 지오펜스 서버는 지리적으로 가까운 별개의 지오펜스들 각각을 포함하는 블렌딩된 지오펜스를 생성할 수도 있거나, 또는 지오펜스 서버는 지오펜스들의 형상들의 가중된 평균을 이용하여 지오펜스들의 중심화된 형상을 표현하는 블렌딩된 지오펜스를 생성할 수도 있다. 지오펜스들을 블렌딩된 지오펜스에 결합하는 것은 도 15a 내지 도 15c 를 참조하여 아래에 추가로 설명된다.At block 416 , the geofence server may combine geofences that are geographically close to the current location into the blended geofence. A geofence server may implement various techniques to combine geofences. For example, the geofence server may create a blended geofence that includes each of separate geofences that are geographically close, or the geofence server uses a weighted average of the geofences' shapes to centralize the geofences. It is also possible to create a blended geofence that represents the shape of the object. Coupling geofences to blended geofences is further described below with reference to FIGS. 15A-15C .

블록 418 에서, 지오펜스 서버는 블렌딩된 지오펜스를 컴퓨팅 디바이스에, 예컨대 리포팅 애플리케이션에 전송할 수도 있다. 따라서, 일 실시형태에서, 블렌딩된 지오펜스를 수신한 후에, 리포팅 애플리케이션은 리포팅 애플리케이션의 개발자에 의해 정의된 지오펜스들 대신에 블렌딩된 지오펜스를 이용하여 지오펜스 횡단들에 대해 모니터링하는 것을 시작할 수도 있다.At block 418 , the geofence server may send the blended geofence to the computing device, such as to a reporting application. Thus, in one embodiment, after receiving a blended geofence, the reporting application may start monitoring for geofence traversals using the blended geofence instead of the geofences defined by the developer of the reporting application. have.

다른 실시형태에서, 옵션적 블록 420 에서 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스와 연관된 다른 지오펜스-인에이블드 애플리케이션들에 블렌딩된 지오펜스를 전송할 수도 있다. 예를 들어, 지오펜스 서버는 블렌딩된 지오펜스를 동일한 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 "푸시" 할 수도 있어서, 이들 지오펜스-인에이블드 애플리케이션들은 동일한 지오펜스를 즉시 모니터링하는 것을 시작한다.In another embodiment, in optional block 420 the geofence server may send the blended geofence to other geofence-enabled applications associated with the computing device of the reporting application. For example, a geofence server may “push” a blended geofence to each geofence-enabled application on the same computing device so that these geofence-enabled applications immediately monitor the same geofence. start something

지오펜스 서버는 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다. 일 실시형태에서, 지오펜스 서버는 동일한 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션으로부터 지오펜스 횡단 통지들을 궁극적으로 수신할 수도 있고, 실시형태의 프로세스를 수행하여 이들 지오펜스-인에이블 애플리케이션들 각각에게 모니터링하기 위한 공통의 블렌딩된 지오펜스를 전송할 수도 있다. 따라서, 컴퓨팅 디바이스의 현재 영역에서의 지오펜스를 갖는 지오펜스-인에이블 애플리케이션들 각각은 동일한 블렌딩된 지오펜스를 공유할 수도 있고, 컴퓨팅 디바이스는 지오펜스-인에이블드 애플리케이션들이 동일한 지오펜스를 모니터링한 결과로서 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때 지오펜스-인에이블드 애플리케이션들 대신에 지오펜스 서버와의 통신들을 조화/동기화시킬 수도 있다.The geofence server may execute the process of the embodiment in a continuous loop returning to block 402 , such that the geofence server continuously monitors whether the geofence server has received a geofence traversal notification from another reporting application. In an embodiment, the geofence server may ultimately receive geofence traversal notifications from each geofence-enabled application on the same computing device, and perform the process of the embodiment to deploy these geofence-enabled applications. It is also possible to send each one a common blended geofence to monitor. Thus, each of the geofence-enabled applications that have a geofence in the current area of the computing device may share the same blended geofence, and the computing device determines that the geofence-enabled applications monitor the same geofence. As a result, the computing device may coordinate/synchronize communications with the geofence server instead of geofence-enabled applications when traversing the blended geofence.

추가 실시형태에서, 지오펜스 서버는 단일의 지오펜스-인에이블드 애플리케이션에 대한 다수의 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하기 위해 상술된 동작들을 수행하여, 그에 의해 단일의 지오펜스-인에이블드 애플리케이션을 인에이블시켜서 다수의 개별 지오펜스들보다는 단일의 블렌딩된 지오펜스를 모니터링할 수도 있다.In a further embodiment, the geofence server performs the operations described above to combine multiple geographically close geofences for a single geofence-enabled application into a blended geofence, whereby the single geofence- An enabled application may be enabled to monitor a single blended geofence rather than multiple individual geofences.

위에서 언급된 바와 같이, 도 4b 는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 의한 이용을 위해 디바이스의 현재 위치에 대한 고려 없이 블렌딩된 지오펜스들을 생성하기 위해 지오펜스 서버에 의해 구현될 수도 있는 일 실시형태의 방법 (430) 을 예시한다.As mentioned above, FIG. 4B illustrates a diagram to be implemented by a geofence server to create blended geofences without regard to the current location of the device for use by geofence-enabled applications running on the computing device. An embodiment method 430 that may be illustrated is illustrated.

일 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스 상에서 실행하는 모든 가능한 지오펜스-인에이블드 애플리케이션들에 대한 모든 가능한 지오펜스들로의 액세스를 가질 수도 있다. 이러한 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스들을 주기적으로 (예를 들어, 밤마다 또는 매주) 생성 및 저장할 수도 있다. 따라서, 추가 실시형태에서, 컴퓨팅 디바이스 상의 애플리케이션으로부터 지오펜스 횡단 통지 또는 지오펜스 정보에 대한 다른 요구를 수신한 것에 응답하여, 지오펜스 서버는 저장된 블렌딩된 지오펜스에 빨리 액세스하고 그것을 요구한 애플리케이션에 전송할 수도 있다. 다시 말해, 지오펜스 서버는 애플리케이션들에 대해 미리 생성된 블렌딩된 지오펜스들을 준비할 수도 있고, 요구 또는 필요에 따라 이들 미리 만들어진 블렌딩된 지오펜스들을 애플리케이션들에 전송할 수도 있다.In one embodiment, the geofence server may have access to all possible geofences for all possible geofence-enabled applications running on the computing device. In such an embodiment, the geofence server may periodically (eg, nightly or weekly) generate and store all possible blended geofences available for geofence-enabled applications on the computing device. Thus, in a further embodiment, in response to receiving a geofence traversal notification or other request for geofence information from an application on the computing device, the geofence server quickly accesses the stored blended geofence and transmits it to the requesting application may be In other words, the geofence server may prepare pre-created blended geofences for applications, and may send these pre-made blended geofences to applications as required or necessary.

블록 432 에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 406 에서 상술된 바와 같이 컴퓨팅 디바이스를 등록할 수도 있다. 지오펜스 서버는 또한, 예컨대 블록 432 에서의 등록 프로세스의 부분으로서 컴퓨팅 디바이스와 연관되는 하나 이상의 지오펜스-인에이블드 애플리케이션들을 식별하는 것에 의해, 블록 434 에서 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들을 결정할 수도 있다.At block 432 , the geofence server may register the computing device as described above at block 406 of the method 400 described with reference to FIG. 4A . The geofence server also identifies one or more geofence-enabled applications associated with the computing device as part of the registration process at block 432 , eg, at block 434 a geofence-enabled application associated with the computing device. may decide

블록 436 에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 412 의 동작들을 참조하여 일반적으로 설명된 바와 같이 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션과 연관된 지오펜스들을 식별할 수도 있다. 예를 들어, 지오펜스 서버는 지오펜스 데이터베이스 (116) 에서 룩업 동작들을 수행하여 모바일 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션과 연관된 하나 이상의 지오펜스들을 발견할 수도 있다. 추가 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스의 소정 거리 내에 있는 지오펜스들만을 단지 식별할 수도 있다. 예를 들어, 지오펜스 서버는 컴퓨팅 디바이스의 100 마일 내의 지오펜스들만을 단지 식별하여 프로세싱 리소스들을 절약할 수도 있다. 다른 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스의 현재 위치에 상관없이 블록 434 에서 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들과 연관된 모든 지오펜스를 식별할 수도 있다.At block 436 , the geofence server identifies geofences associated with the geofence-enabled application on the computing device as generally described with reference to the operations of block 412 of the method 400 described with reference to FIG. 4A . may be For example, the geofence server may perform lookup operations in the geofence database 116 to discover one or more geofences associated with each geofence-enabled application running on the mobile device. In a further embodiment, the geofence server may only identify geofences that are within a certain distance of the computing device. For example, the geofence server may only identify geofences within 100 miles of the computing device to conserve processing resources. In another embodiment, the geofence server may identify all geofences associated with geofence-enabled applications associated with the computing device at block 434 regardless of the current location of the computing device.

지오펜스 서버는 또한, 블록 438 에서 서로 지리적으로 가까운 식별된 지오펜스들을 결정할 수도 있다. 일 실시형태에서, 지오펜스들은 이들의 개별 영역들이 서로로부터 소정 거리 내에 있을 때 또는 이들의 영역들이 미리 정의된 임계치를 초과하여 오버래핑될 때 (예를 들어, 10% 초과 오버랩) 서로 지리적으로 가까울 수도 있다. 예를 들어, 지오펜스 서버는 도 3a 를 참조하여 상술된 지오펜스들 (308, 310, 312) 이 이들의 영역들이 오버래핑되기 때문에 서로 지리적으로 가깝다는 것을 결정할 수도 있다. 블록 440 에서, 서버는 또한 블록 438 에서 지리적으로 가까운 것으로 결정되는 식별된 지오펜스들을 그룹화할 수도 있다.The geofence server may also determine identified geofences that are geographically close to each other at block 438 . In an embodiment, geofences may be geographically close to each other when their respective regions are within a certain distance from each other or when their regions overlap by more than a predefined threshold (eg, more than 10% overlap). have. For example, the geofence server may determine that the geofences 308 , 310 , 312 described above with reference to FIG. 3A are geographically close to each other because their regions overlap. At block 440 , the server may also group the identified geofences determined to be geographically close at block 438 .

블록 442 에서, 지오펜스 서버는 각각의 그룹의 식별된 지오펜스들을 결합하는 것에 의해, 예컨대 도 4a 를 참조하여 상술된 방법 (400) 의 블록 416 의 동작들과 유사한 동작들을 수행하는 것에 의해, 식별된 지오펜스들의 각각의 그룹에 대한 블렌딩된 지오펜스를 생성할 수도 있다. 일 실시형태에서, 블록 442 의 동작들을 수행하는 것에 의해, 지오펜스 서버는 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스 - 또는, 대안적으로, 모든 가능한 블렌딩된 지오펜스들의 특정 서브세트 (예를 들어, 소정의 영역에 대한 블렌딩된 지오펜스들) - 를 생성할 수도 있다. 블록 444 에서, 지오펜스 서버는 또한 추후 이용을 위해 블록 442 에서 생성된 각각의 블렌딩된 지오펜스를 저장할 수도 있다. 지오펜스 서버는 옵션적으로, 블록 452 에서 소정 기간 (예를 들어, 24 시간, 1 주일, 또는 몇 개월 등) 대기할 수도 있다. 지오펜스 서버는 또한 블록 434 에서 시작하는 상술된 동작들을 반복할 수도 있다. 따라서, 일 실시형태에서, 지오펜스 서버는 현재 저장된 지오펜스들의 세트를 유지하기 위해 위에서의 동작들을, 예를 들어, 정기적 작업 (job) 또는 루틴의 부분으로서 반복할 수도 있다.At block 442 , the geofence server identifies by combining the identified geofences of each group, such as by performing operations similar to those of block 416 of the method 400 described above with reference to FIG. 4A , A blended geofence may be created for each group of geofences. In one embodiment, by performing the operations of block 442 , the geofence server causes all possible blended geofences available for geofence-enabled applications—or, alternatively, all possible blended geofences. A specific subset of s (eg, blended geofences for a given area) - may be created. At block 444 , the geofence server may also store each blended geofence generated at block 442 for later use. The geofence server may optionally wait at block 452 for a period of time (eg, 24 hours, a week, or several months, etc.). The geofence server may also repeat the operations described above starting at block 434 . Thus, in one embodiment, the geofence server may repeat the above operations, eg, as part of a regular job or routine, to maintain a currently stored set of geofences.

추가 실시형태들에서, 지오펜스 서버는 상술된 동작들과 동시에 또는 그 후에 발생할 수도 있는 다른 동작들을 수행할 수도 있다. 옵션적 블록 446 에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 402 에서 상술된 바와 같이 컴퓨팅 디바이스 상에서 동작하는 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 옵션적으로 모니터링할 수도 있다.In further embodiments, the geofence server may perform other operations that may occur concurrently with or after the operations described above. At optional block 446 , the geofence server may optionally monitor for a geofence traversing notification from a reporting application running on the computing device as described above at block 402 of the method 400 described with reference to FIG. 4A . have.

옵션적 결정 블록 448 에서, 지오펜스 서버는 상술된 바와 같이 그 지오펜스 서버가 컴퓨팅 디바이스로부터, 예컨대 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 결정할 수도 있다. 지오펜스 서버가 지오펜스 횡단 통지를 수신하지 못하였다고 지오펜스 서버가 결정할 때 (즉, 옵션적 결정 블록 448 = "아니오"), 그 서버는 옵션적 블록 446 에서 시작하는 프로세스를 계속적으로 반복하여 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였을 때를 인지할 수도 있다. 일 실시형태에서, 지오펜스 서버는 그 지오펜스 서버가 지오펜스 횡단 통지를 수신할 때까지 아이들 또는 저전력 상태에 남아있을 수도 있다.At optional decision block 448 , the geofence server may determine whether the geofence server has received a geofence traversal notification from a computing device, such as from a reporting application, as described above. When the geofence server determines that the geofence server has not received a geofence traversal notification (ie, optional decision block 448 = “No”), the server continuously repeats the process starting at optional block 446 to The fence server may recognize when it receives a geofence crossing notification from the reporting application. In an embodiment, a geofence server may remain in an idle or low power state until the geofence server receives a geofence traversing notification.

지오펜스 서버가 지오펜스 횡단 통지를 수신하였다고 지오펜스 서버가 결정할 때 (즉, 옵션적 결정 블록 448 = "예"), 그 서버는 옵션적 블록 450 에서 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 리포팅 애플리케이션에 전송되는 저장된 블렌딩된 지오펜스는 리포팅 애플리케이션과 연관될 수도 있다 (즉, 리포팅 애플리케이션과 연관된 지오펜스들은 블록 442 에서 상술된 바와 같이 블렌딩된 지오펜스를 생성하는데 이용되었을 수도 있다). 지오펜스 서버는 또한 옵션적 블록 446 에서 시작하는 위에서의 동작들을 반복할 수도 있다.When the geofence server determines that the geofence server has received a geofence traversal notification (ie, optional determination block 448 = “yes”), the server may send the stored blended geofence to the reporting application in optional block 450 . have. In one embodiment, the stored blended geofences sent to the reporting application may be associated with the reporting application (ie, geofences associated with the reporting application may have been used to generate the blended geofences as described above in block 442 ). have). The geofence server may also repeat the above operations starting at optional block 446 .

옵션적 블록 450 의 동작들의 다른 실시형태에서, 지오펜스 서버는 지오펜스 횡단 통지를 수신하는 일 없이 하나 이상의 블렌딩된 지오펜스들을 컴퓨팅 디바이스에 선제적으로 전송할 수도 있다. 예를 들어, 지오펜스 서버는 블렌딩된 지오펜스들을 컴퓨팅 디바이스에 푸시하여, 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들을 인에이블시켜서 이들 블렌딩된 지오펜스들을 거의 즉시 모니터링하는 것을 시작할 수도 있다. 따라서, 이러한 실시형태에서, 컴퓨팅 디바이스가 블렌딩된 지오펜스에 의해 커버된 영역으로 이동할 때, 그 영역을 모니터링하는 지오펜스-인에이블드 애플리케이션은 지오펜스 서버로부터의 업데이트된 지오펜스 정보를 요구해야 하는 일 없이 블렌딩된 지오펜스 정보에 빨리 액세스할 수도 있다.In another embodiment of the operations of optional block 450 , the geofence server may preemptively send one or more blended geofences to the computing device without receiving a geofence traversal notification. For example, the geofence server may push the blended geofences to the computing device to enable geofence-enabled applications on the computing device to begin monitoring these blended geofences almost immediately. Thus, in this embodiment, when a computing device moves to an area covered by a blended geofence, a geofence-enabled application monitoring that area should request updated geofence information from the geofence server. You can also quickly access blended geofence information without any work.

도 5 는 리포팅 애플리케이션과 연관되도록 컴퓨팅 디바이스를 등록하기 위해 지오펜스 서버에 의해 구현될 수도 있는 일 실시형태의 방법 (500) 을 예시한다. 방법 (500) 의 동작들은 도 4a 를 참조하여 상술된 방법 (400) 의 블록 406 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 서버는 그 지오펜스 서버가 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였다고 결정한 후에 (즉, 결정 블록 404 = "예") 방법 (500) 을 수행하는 것을 시작할 수도 있다.5 illustrates an embodiment method 500 that may be implemented by a geofence server to register a computing device to be associated with a reporting application. The operations of method 500 implement an embodiment of the operations of block 406 of method 400 described above with reference to FIG. 4A . Thus, in one embodiment, the geofence server may begin performing the method 500 after determining that the geofence server has received a geofence traversing notification from a reporting application (ie, determination block 404 = “Yes”). .

블록 502 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스에 관한 정보를 수신할 수도 있다. 일 실시형태에서, 지오펜스 서버는 컴퓨팅 디바이스의 지오펜스 횡단 통지를 리포팅하는 부분으로서 리포팅 애플리케이션의 컴퓨팅 디바이스에 관한 정보를 수신할 수도 있거나, 또는 지오펜스 서버는 지오펜스 횡단 통지를 수신한 후에 컴퓨팅 디바이스에 대한 식별 정보를 제공하도록 리포팅 애플리케이션에게 별도로 요구할 수도 있다.At block 502 , the geofence server may receive information regarding a computing device of the reporting application. In an embodiment, the geofence server may receive information regarding the computing device of the reporting application as part of reporting the geofence traversing notification of the computing device, or the geofence server may receive the geofence traversing notification after receiving the computing device You may separately request the reporting application to provide identification information for

결정 블록 504 에서, 지오펜스 서버는 리포팅 애플리케이션이 컴퓨팅 디바이스와 이미 연관된 것인지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 서버는 이전에 이 특정 컴퓨팅 디바이스 상에서 리포팅 애플리케이션이 지오펜스 횡단 통지를 리포팅한 적이 있었는지 여부를 결정할 수도 있다. 일 실시형태에서, 다른 컴퓨팅 디바이스들 상에 리포팅 애플리케이션의 다수의 카피들이 존재할 수도 있으므로, 지오펜스 서버가 동일한 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들의 추적을 유지할 수도 있다는 것을 보장하기 위해 지오펜스 서버는 리포팅 애플리케이션을 그것이 동작하고 있는 특정 컴퓨팅 디바이스와 연관시킬 수도 있다. 일 실시형태에서, 지오펜스 서버는 (예를 들어, 컴퓨팅 디바이스 상에서 제 1 시간에 대해 단지 인스톨되고 작동된 결과로서) 이전에 그 컴퓨팅 디바이스 상에서 리포팅 애플리케이션이 지오펜스 서버와 전혀 통신하지 않았을 때 리포팅 애플리케이션과 컴퓨팅 디바이스 사이의 연관이 이미 존재하지 않는다는 것을 결정할 수도 있다.At decision block 504 , the geofence server may determine whether the reporting application is already associated with the computing device. In other words, the geofence server may determine whether a reporting application has previously reported a geofence traversal notification on this particular computing device. In one embodiment, the geofence server may keep track of geofence-enabled applications running on the same computing device as there may be multiple copies of the reporting application on different computing devices. The fence server may associate the reporting application with the particular computing device on which it is running. In one embodiment, the geofence server (eg, as a result of being installed and operated only for the first time on the computing device) is the reporting application when the reporting application has not previously communicated with the geofence server on that computing device and the computing device may determine that an association does not already exist.

지오펜스 서버가 리포팅 애플리케이션이 컴퓨팅 디바이스와 이미 연관된다고 결정할 때 (즉, 결정 블록 504 = "예"), 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 결정하는 것에 의해 도 4a 를 참조하여 상술된 방법 (400) 의 블록 408 에서의 프로세스를 수행하는 것을 계속할 수도 있다.When the geofence server determines that the reporting application is already associated with the computing device (ie, determination block 504 = “Yes”), the geofence server determines the current location of the computing device of the reporting application by determining the current location of the computing device of the reporting application as detailed with reference to FIG. 4A . may continue performing the process at block 408 of the described method 400 .

리포팅 애플리케이션의 컴퓨팅 디바이스가 이미 등록된 것이 아니라고 지오펜스 서버가 결정할 때 (즉, 결정 블록 504 = "아니오"), 지오펜스 서버는 블록 506 에서 리포팅 애플리케이션을 그의 컴퓨팅 디바이스와 연관시킬 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 1 을 참조하여 상술된 바와 같이 리포팅 애플리케이션과 컴퓨팅 디바이스 사이의 연관을 지오펜스 정보 데이터베이스 (116) 에 기록하는 것에 의해 이 동작을 달성한다.When the geofence server determines that the computing device of the reporting application is not already registered (ie, determination block 504 = “No”), the geofence server may associate the reporting application with its computing device in block 506 . In one embodiment, the geofence server accomplishes this operation by recording the association between the reporting application and the computing device in the geofence information database 116 as described above with reference to FIG. 1 .

지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치를 결정하는 것에 의해 도 4a 를 참조하여 상술된 방법 (400) 의 블록 408 에서의 프로세스를 수행하는 것을 계속할 수도 있다.The geofence server may continue performing the process at block 408 of the method 400 described above with reference to FIG. 4A by determining the current location of the computing device of the reporting application.

도 6 은 블렌딩하기에 적합하거나 또는 블렌딩하는 것과 양립가능한 현재 위치에서의 다수의 지오펜스들이 존재한다 (즉, 지오펜스는 지오펜스 또는 애플리케이션의 동작 또는 기능성을 실질적으로 저하시키는 일 없이 블렌딩될 수 있다) 는 것을 결정한 것에 응답하여 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위해 지오펜스 서버 상에서 구현될 수도 있는 일 실시형태의 방법 (600) 을 예시한다. 방법 (600) 의 동작들은 도 4a 를 참조하여 상술된 방법 (400) 의 동작들의 일 실시형태를 구현한다. 따라서, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 414 에서 지리적으로 가까운 지오펜스들이 컴퓨팅 디바이스의 현재 위치에 존재한다는 것을 결정한 후에 방법 (600) 을 수행하는 것을 시작할 수도 있다.6 shows that there are multiple geofences at the current location suitable for or compatible with blending (ie, geofences can be blended without substantially degrading the operation or functionality of the geofence or application). ) illustrates an embodiment method 600 that may be implemented on a geofence server to send the blended geofence to a reporting application in response to determining that The operations of method 600 implement one embodiment of the operations of method 400 described above with reference to FIG. 4A . Accordingly, the geofence server may begin performing the method 600 after determining in block 414 of the method 400 described above with reference to FIG. 4A that geographically nearby geofences exist at the current location of the computing device.

결정 블록 602 에서, 지오펜스 서버는 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스를 생성하기 위해 현재 위치에 있는 오버래핑되거나 또는 거의 오버래핑되는 (즉, 지리적으로 가까운) 적어도 2 개의 지오펜스들을 요구할 수도 있다. 예를 들어, 컴퓨팅 디바이스가 4 개의 지오펜스-인에이블드 애플리케이션들을 포함할 수도 있지만, 이들 지오펜스-인에이블드 애플리케이션들 중 단 하나만이 컴퓨팅 디바이스의 현재 영역에 지오펜스를 가질 수도 있다. 이 예에서, 지오펜스 서버는 블렌딩된 지오펜스를 생성하는 것이 불가능할 수도 있는데, 이는 현재 위치에 단 하나의 지오펜스만이 존재하기 때문이다.At decision block 602 , the geofence server may determine whether a plurality of geographically close geofences exist at the current location. In an embodiment, the geofence server may require at least two overlapping or near overlapping (ie, geographically close) geofences at the current location to create a blended geofence. For example, a computing device may include four geofence-enabled applications, but only one of these geofence-enabled applications may have a geofence in a current area of the computing device. In this example, the geofence server may not be able to create a blended geofence because there is only one geofence at the current location.

지오펜스 서버가 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 602 = "아니오"), 지오펜스 서버는 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 2 를 참조하여 상술된 바와 같이 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 따라서, 이 예에서, 리포팅 애플리케이션은 리포팅 애플리케이션의 개발자들에 의해 원래 정의된 대로 지오펜스들을 수신할 수도 있다. 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.When the geofence server determines that a plurality of geographically close geofences do not exist at the current location (ie, determination block 602 = “No”), the geofence server transmits the unblended geofence information to the reporting application at block 614 . may be In one embodiment, the geofence server may send unblended geofence information to the reporting application as described above with reference to FIG. 2 . Thus, in this example, the reporting application may receive geofences as originally defined by the developers of the reporting application. The geofence server may execute the process of the embodiments in a continuous loop returning to block 402 of the method 400 described above with reference to FIG. 4A , such that the geofence server causes the geofence server to traverse the geofence from another reporting application. Continuously monitor whether notifications have been received.

지오펜스 서버가 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 602 = "예"), 지오펜스 서버는 블록 604 에서 복수의 지리적으로 가까운 지오펜스들 중 어떤 것이 블렌딩하기에 적합한지를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 지리적으로 가까운 지오펜스들이 함께 블렌딩되는 것이 가능한지 여부를 결정하기 위해 지리적으로 가까운 지오펜스들 각각을 조사할 수도 있다. 지오펜스 서버는 개개의 지오펜스 특성들 (예를 들어, 특정 지오펜스가 전혀 블렌딩되지 않거나 또는 소정의 조건들 하에서만 블렌딩되도록 리포팅 애플리케이션의 개발자가 요구하였는지 여부), 전체로서 복수의 지리적으로 가까운 지오펜스들, 및 지오펜스들, 이들 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들, 및 이들 지오펜스-인에이블드 애플리케이션들의 개발자들을 둘러싼 다양한 다른 정보를 검토할 수도 있다.When the geofence server determines that a plurality of geographically close geofences exist at the current location (ie, determination block 602 = “Yes”), the geofence server determines at block 604 which of the plurality of geographically close geofences is blended. You can also decide if it is suitable for you. In one embodiment, the geofence server may examine each of the geographically close geofences to determine whether it is possible for them to be blended together. The geofence server can determine the individual geofence characteristics (eg, whether a particular geofence is not blended at all or whether the developer of the reporting application has requested that it be blended only under certain conditions), as a whole, a plurality of geographically nearby geofences. You may review fences, and various other information surrounding geofences, geofence-enabled applications associated with these geofences, and developers of these geofence-enabled applications.

일 실시형태에서, 지오펜스 서버는 지오펜스들의 형상들에 기초하여 지리적으로 가까운 지오펜스들이 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 서버는 지오펜스들의 형상들 중 2 개 이상이 블렌딩하기 위해 "양립가능" 한지 여부를 평가하기 위해 지리적으로 가까운 지오펜스들의 형상 분석을 수행할 수도 있다. 일 실시형태에서, 연관된 지오펜스 애플리케이션들의 성능, 기능성 또는 반응성에 대한 실질적 영향 없이 지오펜스 서버가 지오펜스 형상들을 결합하는 것이 가능할 때 지오펜스 형상들은 블렌딩하기에 적합할 수도 있다. 다시 말해, 지오펜스 서버는 2 개 이상의 지오펜스들을 블렌딩하는 것이 기본 지오펜스-인에이블드 애플리케이션들의 위치-기반 서비스들을 실질적으로 저하시키는 블렌딩된 지오펜스를 발생시킬지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 서버는 겨우 오버래핑되는 정사각형 지오펜스 및 원형 지오펜스가 양립불가능할 수도 있다는 것을 결정할 수도 있는데, 이는, 이들 지오펜스를 결합하는 것이, 원형 또는 정사각형 지오펜스들보다 상당히 더 크거나 또는 오리지널 지오펜스들에 의해 커버되는 일부 영역들을 제외시키도록 하는 방법으로 형상화되는 단일의 블렌딩된 지오펜스를 생성할 수도 있기 때문이다. 다른 실시형태에서, 결과적인 블렌딩된 지오펜스가 오리지널 지오펜스들의 사이즈들에 기초하여 사이즈 임계치를 초과하거나 (예를 들어, 블렌딩된 지오펜스가 오리지널 지오펜스들의 결합된 영역의 150% 보다 더 크지 않을 수도 있음) 및/또는 오리지널 지오펜스들에 의해 커버된 영역들에 기초하여 영역-커버된 임계치를 초과하지 않을 때 (예를 들어, 블렌딩된 지오펜스가 오리지널 지오펜스들의 영역들의 적어도 85% 를 커버하도록 요구될 수도 있음), 지오펜스 서버는 형상들이 블렌딩하기에 부적합하다는 것을 결정할 수도 있다.In an embodiment, the geofence server may determine whether geographically close geofences are suitable for blending based on the shapes of the geofences. For example, the geofence server may perform shape analysis of geofences that are geographically close to evaluate whether two or more of the geofences' shapes are “compatible” for blending. In an embodiment, geofence shapes may be suitable for blending when a geofence server is capable of combining geofence shapes without substantially impacting the performance, functionality or responsiveness of the associated geofence applications. In other words, the geofence server may determine whether blending two or more geofences will result in a blended geofence that substantially degrades location-based services of native geofence-enabled applications. For example, the geofence server may determine that square geofences and circular geofences that only overlap may be incompatible, if combining these geofences is significantly larger than circular or square geofences, or This is because it is also possible to create a single blended geofence that is shaped in a way to exclude some areas covered by the original geofences. In another embodiment, the resulting blended geofence does not exceed a size threshold based on the sizes of the original geofences (eg, the blended geofence will not be greater than 150% of the combined area of the original geofences) may) and/or do not exceed an area-covered threshold based on the areas covered by the original geofences (eg, the blended geofence covers at least 85% of the areas of the original geofences) ), the geofence server may determine that the shapes are unsuitable for blending.

일 실시형태에서, 지오펜스 서버는 지오펜스들이 블렌딩하기에 적합한지 여부를 결정하기 위해 지오펜스 메타데이터를 참조할 수도 있다. 지오펜스 서버는 지오펜스들의 타입 (예를 들어, 도보 지오펜스, 드라이빙 지오펜스, 비즈니스 지오펜스, 상업 지오펜스 등) 각각을 결정할 수도 있고 양립가능한 타입들을 갖는 지오펜스들만을 단지 결합할 수도 있다. 다시 말해, 지오펜스 서버는 위치-기반 서비스들의 타깃/목적이 지오펜스들을 결합하는 것에 의해 실질적으로 저하되지 않을 때에만 단지 이들 지오펜스들을 블렌딩할 수도 있다. 예를 들어, 몰 내의 상점에서 일일 거래들을 보행자들에게 알리도록 설계된 지오펜스는, 주유소의 오일-교환 특별가를 몰 옆을 지나가는 드라이버들에게 알리도록 설계된 지오펜스와는 양립불가능할 수도 있다.In an embodiment, the geofence server may consult geofence metadata to determine whether geofences are suitable for blending. The geofence server may determine each of the types of geofences (eg, walking geofence, driving geofence, business geofence, commercial geofence, etc.) and may only combine geofences with compatible types. In other words, the geofence server may only blend these geofences when the target/purpose of location-based services is not substantially degraded by combining these geofences. For example, a geofence designed to inform pedestrians of daily deals at a store within a mall may be incompatible with a geofence designed to inform drivers passing by the mall of special oil-change prices at gas stations.

다른 실시형태에서, 지오펜스 서버는 개발자-설정 특성들/파라미터들에 기초하여 지리적으로 가까운 지오펜스들이 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 애플리케이션에 대한 지오펜스를 정의하는 프로세스 동안, 개발자는 그 지오펜스가 다른 지오펜스와 블렌딩되지 않을 수도 있다는 것을 특정할 수도 있다. 예를 들어, 개발자는 예컨대 결승선에 지오펜스를 갖는 마라톤 애플리케이션에 대해, 지오펜스에 대한 개발자의 목표를 달성하기 위해 최대 정밀도를 요구할 수도 있다. 이러한 예에서, 지오펜스의 목적 (예를 들어, 사용자가 마라톤을 달리는 것을 끝냈을 때를 자동적으로 나타내기 위한 것) 은 블렌딩의 결과로서 지오펜스의 영역/정밀도가 변화되는 경우 좌절될 수도 있다. 일 실시형태에서, 지오펜스 서버는 개발자가 특정 지오펜스의 블렌딩을 허용하는지 여부를 나타내는 개발자 플래그 또는 다른 값을 체크할 수도 있다.In another embodiment, the geofence server may determine whether geographically close geofences are suitable for blending based on developer-set characteristics/parameters. During the process of defining a geofence for an application, the developer may specify that the geofence may not be blended with other geofences. For example, a developer may require maximum precision to achieve the developer's goals for the geofence, such as for a marathon application with a geofence at the finish line. In this example, the purpose of the geofence (eg, to automatically indicate when a user has finished running a marathon) may be frustrated if the area/precision of the geofence changes as a result of blending. In one embodiment, the geofence server may check a developer flag or other value indicating whether the developer allows blending of a particular geofence.

결정 블록 606 에서, 지오펜스 서버는 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 예를 들어, 컴퓨팅 디바이스의 현재 영역에 수 개의 지리적으로 가까운 지오펜스들이 존재할 수도 있지만, 이들 중 어떤 것도 블렌딩하기에 적합하지 않을 수도 있는데, 이는 양립불가능한 형상들, 타입들 등 때문이다.At decision block 606 , the geofence server may determine whether there are multiple geofences suitable for blending in the plurality of geographically close geofences. For example, there may be several geographically close geofences in the current area of the computing device, but none of them may be suitable for blending because of incompatible shapes, types, and the like.

지오펜스 서버가 복수의 지리적으로 가까운 지오펜스들에서 양립가능한 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 606 = "아니오"), 지오펜스 서버는 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 상술된 바와 같이, 지오펜스 서버가 지오펜스들을 결합하지 않을 때 지오펜스 서버는 리포팅 애플리케이션의 개발자들에 의해 원래 정의된 지오펜스들에 대한 업데이트된 지오펜스를 전송하지 않을 수도 있다. 지오펜스 서버는 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.When the geofence server determines that there are no compatible geofences in the plurality of geographically close geofences (ie, determination block 606 = “No”), the geofence server reports the unblended geofence information at block 614 . It can also be sent to the application. As described above, the geofence server may not send updated geofences for geofences originally defined by the developers of the reporting application when the geofence server does not combine geofences. The geofence server may execute the process of the embodiment in a continuous loop returning to block 402 , such that the geofence server continuously monitors whether the geofence server has received a geofence traversal notification from another reporting application.

지오펜스 서버가 복수의 지리적으로 가까운 지오펜스들에서 양립가능한 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 606 = "예"), 지오펜스 서버는 블록 608 에서 블렌딩하기에 적합한 다수의 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 416 에서 상술된 프로세스와 유사한 방식으로 다수의 양립가능한 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 예를 들어, 지오펜스 서버는 다수의 양립가능한 지오펜스들의 형상들의 가중된 평균을 취득하고, 그 가중된 평균에 기초하여 단일의 지오펜스를 생성할 수도 있다.When the geofence server determines that compatible geofences exist in a plurality of geographically close geofences (ie, determination block 606 = “Yes”), the geofence server selects a plurality of geofences suitable for blending at block 608 It can also be bound to blended geofences. In one embodiment, the geofence server may combine multiple compatible geofences to the blended geofence in a manner similar to the process described above at block 416 of method 400 described above with reference to FIG. 4A . For example, the geofence server may obtain a weighted average of shapes of multiple compatible geofences, and generate a single geofence based on the weighted average.

옵션적 블록 610 에서, 지오펜스 서버는, 블렌딩된 지오펜스를, 다수의 양립가능 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스를 블렌딩하기에 적합한 다수의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 선제적으로 푸시하여, 이들 애플리케이션들을 인에이블시켜서 블렌딩된 지오펜스를 모니터링하는 것을 즉시 시작할 수도 있다. 따라서, 지오펜스 서버는 이들 애플리케이션들 각각으로부터 지오펜스 횡단 통지들을 수신한 것에 응답하여 블렌딩된 지오펜스를 이들 지오펜스-인에이블드 애플리케이션들에 전송해야 하는 것을 회피할 수도 있다.At optional block 610 , the geofence server may send the blended geofence to geofence-enabled applications associated with multiple compatible geofences. In one embodiment, the geofence server preemptively pushes to geofence-enabled applications associated with multiple geofences suitable for blending the blended geofence to enable these applications to enable the blended geofence. monitoring can be started immediately. Thus, the geofence server may avoid having to send the blended geofence to these geofence-enabled applications in response to receiving geofence traversing notifications from each of these applications.

결정 블록 612 에서, 지오펜스 서버는 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 서버는 결정 블록 606 을 참조하여 상술된 바와 같이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한 다수의 지오펜스들에 포함되는지 여부를 결정할 수도 있다.At decision block 612 , the geofence server may determine whether a geofence of the reporting application is suitable for blending. In other words, the geofence server may determine whether the geofence of the reporting application is included in a plurality of geofences suitable for blending as described above with reference to decision block 606 .

지오펜스 서버가 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하지 않다고 결정할 때 (즉, 결정 블록 612 = "아니오"), 지오펜스 서버는 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 서버는 리포팅 애플리케이션의 지오펜스들에 대한 업데이트된 지오펜스 정보만을 단지 전송할 수도 있다. 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.When the geofence server determines that the geofence of the reporting application is not suitable for blending (ie, determination block 612 = “No”), the geofence server may send unblended geofence information to the reporting application at block 614 . . In one embodiment, the geofence server may only send updated geofence information for geofences of the reporting application. The geofence server may execute the process of the embodiments in a continuous loop returning to block 402 of the method 400 described above with reference to FIG. 4A , such that the geofence server causes the geofence server to traverse the geofence from another reporting application. Continuously monitor whether notifications have been received.

지오펜스 서버가 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하다고 결정할 때 (즉, 결정 블록 612 = "예"), 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블록 418 에서 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 지오펜스 서버는 또한 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.When the geofence server determines that the geofence of the reporting application is suitable for blending (ie, determination block 612 = “yes”), the geofence server applies the blended geofence at block 418 as described above with reference to FIG. 4A , as described above with reference to FIG. 4A . It can also be sent to a reporting application. The geofence server may also execute the process of an embodiment in a continuous loop returning to block 402 of the method 400 described above with reference to FIG. 4A , such that the geofence server allows the geofence server to use the geofence server from other reporting applications. Continuously monitor whether crossing notifications have been received.

도 7a 및 도 7b 는 블렌딩된 지오펜스를 생성하고 추후 이용을 위해 블렌딩된 지오펜스를 저장하기 위해 지오펜스 서버 상에서 구현될 수도 있는 일 실시형태의 방법 (700) 을 예시한다. 방법 (700) 의 동작들은 도 4a 를 참조하여 상술된 방법 (400) 의 동작들의 일 실시형태를 구현한다. 따라서, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 414 에서 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 결정한 후에 방법 (700) 을 수행하는 것을 시작할 수도 있다.7A and 7B illustrate an embodiment method 700 that may be implemented on a geofence server to generate a blended geofence and store the blended geofence for later use. The operations of method 700 implement one embodiment of the operations of method 400 described above with reference to FIG. 4A . Accordingly, the geofence server may begin performing the method 700 after determining geofences that are geographically close to the current location of the computing device of the reporting application at block 414 of the method 400 described above with reference to FIG. 4A .

도 7a 를 참조하면, 결정 블록 702 에서, 지오펜스 서버는 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는, 이전에 생성된 블렌딩된 지오펜스들을, 다른 지오펜스-인에이블드 애플리케이션들에 의한 추후 이용을 위해 특정 영역과 연관시킬 수도 있다. 다시 말해, 다양한 컴퓨팅 디바이스들 상에서 동작하는 다수의 지오펜스-인에이블드 애플리케이션들에 대해 특정 영역에 대한 동일한 블렌딩된 지오펜스를 생성하기보다는, 지오펜스 서버는 블록들 706 및 708 을 참조하여 아래에 추가로 설명된 바와 같이 이전에 생성된 블렌딩된 지오펜스들을 보유할 수도 있고, 지오펜스 서버는 매번 스크래치 (scratch) 로부터 블렌딩된 지오펜스를 생성해야 하는 일 없이 블렌딩된 지오펜스를 동일한 컴퓨팅 디바이스 상의 다른 지오펜스-인에이블드 애플리케이션들에게 전송할 수도 있다.Referring to FIG. 7A , at decision block 702 , the geofence server may determine whether a current location of the computing device of the reporting application is associated with a stored blended geofence. In one embodiment, the geofence server may associate previously created blended geofences with a particular area for later use by other geofence-enabled applications. In other words, rather than generating the same blended geofence for a particular area for multiple geofence-enabled applications running on various computing devices, the geofence server is configured with reference to blocks 706 and 708 below It may retain previously created blended geofences as further described, and the geofence server transfers the blended geofence to another on the same computing device without having to create a blended geofence from scratch each time. It can also be sent to geofence-enabled applications.

지오펜스 서버가 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 702 = "예"), 프로세스는 도 7b 를 참조하여 아래에 설명된 블록 722 에서의 동작들을 수행할 수도 있다.When the geofence server determines that the current location of the reporting application's computing device is associated with the stored blended geofence (ie, determination block 702 = “Yes”), the process proceeds at block 722 described below with reference to FIG. 7B . actions may be performed.

지오펜스 서버가 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되지 않는다고 결정할 때 (즉, 결정 블록 702 = "아니오"), 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블록 416 에서 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다.When the geofence server determines that the current location of the reporting application's computing device is not associated with the stored blended geofence (ie, determination block 702 = "No"), the geofence server blocks the block as described above with reference to FIG. 4A . Geofences that are geographically close to the current location may be combined into the blended geofence at 416 .

블록 706 에서, 지오펜스 서버는 블렌딩된 지오펜스를 저장할 수도 있다. 일 실시형태에서, 지오펜스 서버는 블렌딩된 지오펜스뿐만 아니라 블렌딩된 지오펜스와 연관된 애플리케이션들 및 지오펜스들의 식별자들을 지오펜스 정보 데이터베이스 (116) 와 같은 지오펜스 정보 데이터베이스에 저장할 수도 있다. 블록 708 에서, 지오펜스 서버는 블렌딩된 지오펜스를 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치와 연관시킬 수도 있다. 따라서, 결정 블록 702 를 참조하여 상술된 바와 같이, 지오펜스 서버는 현재 위치에서의 지오펜스들을 재블렌딩해야 하는 일 없이 장래에 다른 지오펜스-인에이블드 애플리케이션들에 전송하기 위해 저장된 블렌딩된 지오펜스를 재호출하는 것이 가능할 수도 있다. 일 실시형태에서, 각각의 저장된 블렌딩된 지오펜스는 도 7b 를 참조하여 아래에 추가로 설명되는 바와 같이 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들의 특정 결합과 연관될 수도 있다.At block 706 , the geofence server may store the blended geofence. In an embodiment, the geofence server may store the blended geofence as well as applications associated with the blended geofence and identifiers of geofences in a geofence information database, such as geofence information database 116 . At block 708 , the geofence server may associate the blended geofence with the current location of the computing device of the reporting application. Thus, as described above with reference to decision block 702 , the geofence server stores the blended geofences stored for transmission to other geofence-enabled applications in the future without having to re-blend the geofences at the current location. It may be possible to recall In one embodiment, each stored blended geofence may be associated with a specific combination of geofences and geofence-enabled applications on the computing device of the reporting application as further described below with reference to FIG. 7B . have.

블록 418 에서, 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 402 에서의 동작들을 수행하기 위해 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.At block 418 , the geofence server may send the blended geofence to the reporting application as described above with reference to FIG. 4A . The geofence server may execute the process of the embodiment in a continuous loop returning to perform the operations in block 402 of the method 400 described above with reference to FIG. 4A , such that the geofence server can be configured to Continuously monitor whether a geofence crossing notification is received from the reporting application.

도 7b 를 참조하면, 지오펜스 서버가 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 702 = "예"), 지오펜스 서버는 블록 722 에서 저장된 블렌딩된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 및 지오펜스들의 리스트를 생성할 수도 있다. 상술된 바와 같이, 저장된 블렌딩된 지오펜스는 지오펜스-애플리케이션들 및 이들의 각각의 지오펜스들의 특정 결합과 연관될 수도 있다.Referring to FIG. 7B , when the geofence server determines that the current location of the computing device of the reporting application is associated with the stored blended geofence (ie, determination block 702=“Yes”), the geofence server determines in block 722 the stored blending A list of geofence-enabled applications and geofences associated with a given geofence may be created. As noted above, a stored blended geofence may be associated with a specific combination of geofence-applications and their respective geofences.

일 실시형태에서, 저장된 블렌딩된 지오펜스는 정확한 매치가 존재할 때 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 이용에만 단지 적합할 수도 있는데, 이는 저장된 블렌딩된 지오펜스가 이와 달리 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치에서 지리적으로 가까운 지오펜스들에 대해 생성된 블렌딩된 지오펜스를 정확히 표현하지 못할 수도 있기 때문이다. 예를 들어, 지오펜스-인에이블드 애플리케이션들 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 를 정확히 표현하지 못할 수도 있는데, 이는 또한 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 위치-기반 서비스들의 정확도에 크게 영향을 미칠 수도 있다.In one embodiment, the stored blended geofence may only be suitable for use on the computing device of the reporting application when an exact match exists, which means that the stored blended geofence would otherwise be geographically at the current location of the computing device of the reporting application. This is because the blended geofences generated for nearby geofences may not be accurately represented. For example, a stored blended geofence representing geofence-enabled applications A, B, and C and geofences 1, 2, and 3 can be stored by the computing device only when the computing device is geofence-enabled at the current location. When including only applications A and B and only geofences 1 and 2 may significantly degrade the accuracy of location-based services on the computing device of the reporting application. In another example, the stored blended application may include geofence-enabled applications A, B, and C and geofences 1, 2, and 3, although the computing device of the reporting application is geofence-enabled de applications A, B, C, and D and geofences 1, 2, 3, 4, and 5. Thus, in this example, the stored blended geofence may not accurately represent geofence-enabled application D and geofences 4 and 5, which is also a geofence-enabled application on the computing device of the reporting application. It may significantly affect the accuracy of location-based services for

그에 따라, 결정 블록 724 에서, 지오펜스 서버는, 리스트에서의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과, 리포팅 애플리케이션의 컴퓨팅 디바이스와 현재 연관된 지오펜스-인에이블드 애플리케이션들 및 지리적으로 가까운 지오펜스들과의 사이에 정확한 매치가 존재하는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버는 도 4a 를 참조하여 설명된 방법 (400) 의 블록 410 에서 리포팅 애플리케이션의 컴퓨팅 디바이스와 현재 연관된 것으로 결정된 지오펜스-인에이블드 애플리케이션들을 리스트에서의 지오펜스-인에이블드 애플리케이션들과 비교하는 것에 의해 이 동작을 달성할 수도 있다. 이와 유사하게, 지오펜스 서버는 도 4a 를 참조하여 상술된 방법 (400) 의 블록 414 에서의 동작들에서 지리적으로 가까운 것으로 결정된 지오펜스들을 리스트에서의 지오펜스들과 비교할 수도 있다.Accordingly, at decision block 724 , the geofence server selects the geofence-enabled applications and geofences in the list, the geofence-enabled applications currently associated with the computing device of the reporting application and the geofence-enabled applications that are geographically close. It may be determined whether there is an exact match between the geofences. In one embodiment, the geofence server geofence-enables in the list geofence-enabled applications determined to be currently associated with the computing device of the reporting application in block 410 of the method 400 described with reference to FIG. 4A . You can also achieve this behavior by comparing it to de applications. Similarly, the geofence server may compare the geofences determined to be geographically close to the geofences in the list in the operations at block 414 of the method 400 described above with reference to FIG. 4A .

지오펜스 서버가 정확한 매치가 존재하지 않는다고 결정할 때 (즉, 결정 블록 724 = "아니오"), 지오펜스 서버는 도 6 을 참조하여 상술된 방법 (600) 의 블록 614 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 다시 말해, 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치와 연관된 블렌딩된 지오펜스가 존재하더라도, 리포팅 애플리케이션은 리포팅 애플리케이션의 컴퓨팅 디바이스와 연관된 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과 리스트에 포함된 것들과의 사이에 정확한 매치가 존재하지 않을 때 블렌딩된 지오펜스를 수신하지 못할 수도 있는데, 이는 저장된 블렌딩된 지오펜스가 상술된 바와 같이 리포팅 애플리케이션의 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 의한 이용에 적합하지 않을 수도 있기 때문이다. 따라서, 블렌딩된 지오펜스를 전송하는 대신에, 지오펜스 서버는 리포팅 애플리케이션의 개발자들에 의해 원래 정의된 대로 리포팅 애플리케이션의 지오펜스들에 관한 업데이트 정보를 전송할 수도 있다.When the geofence server determines that an exact match does not exist (ie, determination block 724 = “No”), the geofence server returns the unblended geofence information at block 614 of the method 600 described above with reference to FIG. 6 . It can also be sent to a reporting application. In other words, even if there is a blended geofence associated with the current location of the computing device of the reporting application, the reporting application is associated with the geofence-enabled applications and geofences associated with the computing device of the reporting application and those included in the list. You may not receive a blended geofence when there is no exact match between Because it may not be suitable. Thus, instead of sending the blended geofences, the geofence server may send update information about the geofences of the reporting application as originally defined by the developers of the reporting application.

지오펜스 서버가 정확한 매치가 존재한다고 결정할 때 (즉, 결정 블록 724 = "예"), 지오펜스 서버는 블록 728 에서 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 블렌딩된 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송한 후에, 지오펜스 서버는 도 4a 를 참조하여 상술된 바와 같이 블록 402 에서의 동작들을 수행하는 것에 의해 계속적인 루프에서 방법 (400) 의 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 서버는 그 지오펜스 서버가 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하였는지 여부를 계속적으로 모니터링한다.When the geofence server determines that an exact match exists (ie, determination block 724 = “yes”), the geofence server may send the stored blended geofence to the reporting application at block 728 . After sending the blended or unblended geofence information to the reporting application, the geofence server implements the method 400 in a continuous loop by performing the operations in block 402 as described above with reference to FIG. 4A . form process, the geofence server continuously monitors whether the geofence server has received a geofence traversing notification from another reporting application.

추가 실시형태들에서, 컴퓨팅 디바이스는 블렌딩된 지오펜스들을 관리하거나 및/또는 블렌딩된 지오펜스들을 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들에 전송하도록 구성될 수도 있는 지오펜스 관리 유닛을 포함할 수도 있다.In further embodiments, the computing device may be configured to manage blended geofences and/or send the blended geofences to a plurality of geofence-enabled applications operating on the computing device. may include

일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상의 다른 지오펜스 애플리케이션들 대신에 프록시 지오펜스 서버로서 작용하도록 컴퓨팅 디바이스 상에서 실행할 수도 있다. 이 실시형태에서, 지오펜스 관리 유닛은 애플리케이션들 그 자체로부터 또는 지오펜스 서버로부터 지오펜스-인에이블드 애플리케이션들 각각에 대한 지오펜스 파라미터 정보를 수신할 수도 있다. 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션들의 지오펜스들을 단일의 블렌딩된 지오펜스에 결합할 수도 있다.In an embodiment, the geofence management unit may execute on the computing device to act as a proxy geofence server on behalf of other geofence applications on the computing device. In this embodiment, the geofence management unit may receive geofence parameter information for each of the geofence-enabled applications from the applications themselves or from a geofence server. The geofence management unit may combine geofences of geofence-enabled applications into a single blended geofence.

다른 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스가 만족될 때를 검출하기 위해 컴퓨팅 디바이스의 포지션을 모니터링할 수도 있고, 그것이 있을 때, 블렌딩된 지오펜스가 횡단되었다는 통지를 컴퓨팅 디바이스 상의 각각의 애플리케이션에 거의 동시에 전송할 수도 있다. 이것은 각각의 애플리케이션을 인에이블시켜서 그것이 그의 지오펜스가 횡단되었다는 것을 결정한 것처럼 독립적으로 작용할 수도 있다. 애플리케이션들이 동시에 통지되므로, 위치-감지 라디오들의 이용이 최소화되고 지오펜스 서버로의 단일 연결이 확립되어 애플리케이션들 모두를 지원할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 각각에게 전송할 수도 있고, 이 지오펜스-인에이블드 애플리케이션들은 그 후에, 이들이 재도출된 지오펜스를 지오펜스 서버로부터 수신한 것처럼 상술된 바와 같이 동작할 수도 있다.In another embodiment, the geofence management unit may monitor the position of the computing device to detect when a blended geofence is satisfied, and when it is there, it may send a notification to each on the computing device that the blended geofence has been traversed. It can also be sent almost simultaneously to the application. This may enable each application to act independently as if it has determined that its geofence has been traversed. Because applications are notified at the same time, the use of location-aware radios is minimized and a single connection to the geofence server may be established to support all of the applications. In an alternative embodiment, the geofence management unit may send the blended geofence to each of the geofence-enabled applications on the computing device, which geofence-enabled applications are thereafter followed by the geofence from which they were re-derived. It may operate as described above as if the fence was received from the geofence server.

도 8 은 하나 이상의 지오펜스-인에이블드 애플리케이션들의 지오펜스들을 관리 및 블렌딩함에 있어서의 이용을 위해 지오펜스 관리 유닛 (812) 을 포함하는 일 실시형태의 컴퓨팅 디바이스 (800) 의 컴포넌트 블록 다이어그램이다.8 is a component block diagram of a computing device 800 in one embodiment that includes a geofence management unit 812 for use in managing and blending geofences of one or more geofence-enabled applications.

일 실시형태에서, 컴퓨팅 디바이스 (800) 는 프로세서 (802) 를 포함할 수도 있다. 프로세서 (802) 는 멀티-코어 호스트 프로세서일 수도 있고, 프로세서 (802) 는 애플리케이션들 및/또는 이러한 애플리케이션들을 관리하기 위한 오퍼레이팅 시스템들을 작동시키는 것이 가능한 다양한 프로그래밍가능 프로세서들 중 임의의 것일 수도 있다. 예를 들어, 프로세서 (802) 는 하이-레벨 오퍼레이팅 시스템 (즉, OS (806)) 을 지속적으로 실행할 수도 있고, 수많은 루틴들을 수행하여 컴퓨팅 디바이스 (800) 의 소프트웨어 및 컴포넌트들을 활용할 수도 있다. 프로세서 (802) 는 또한 외부에 있거나 및/또는 온-칩 메모리일 수도 있는 메모리 컴포넌트 (804) 내에 데이터를 저장하고 그 메모리 컴포넌트 (804) 로부터 데이터를 취출할 수도 있다.In one embodiment, computing device 800 may include a processor 802 . Processor 802 may be a multi-core host processor, and processor 802 may be any of a variety of programmable processors capable of operating applications and/or operating systems for managing such applications. For example, the processor 802 may continuously run the high-level operating system (ie, the OS 806 ) and may perform numerous routines to utilize the software and components of the computing device 800 . The processor 802 may also store data in and retrieve data from the memory component 804 , which may be external and/or on-chip memory.

다른 실시형태에서, 하나 이상의 지오펜스-인에이블드 애플리케이션들 (808) 은 OS (806) 의 상부에서 동작할 수도 있고 프로세서 (802) 에 의해 실행될 수도 있다. 지오펜스-인에이블드 애플리케이션들 (808) 은 다양한 기법들을 이용하여 컴퓨팅 디바이스 (800) 의 현재 위치를 결정할 수도 있다. 예를 들어, 지오펜스-인에이블드 애플리케이션들 (808) 은 옵션적 GPS 수신기 (810) 로부터 컴퓨팅 디바이스 (800) 의 현재 위치를 수신할 수도 있다. 다른 예에서, 지오펜스-인에이블드 애플리케이션들 (808) 은 예컨대 다수의 Wi-Fi 액세스 포인트들, 블루투스 비콘들, 셀 사이트들, 기지국들 등으로부터 신호들을 수신하기 위해 하나 이상의 안테나들 (816) 및 무선-주파수 트랜시버 (814) 를 활용하는 것에 의해, 다양한 로컬 포지셔닝 시스템들을 이용하여 컴퓨팅 디바이스 (800) 의 현재 위치를 결정할 수도 있다. 다른 실시형태에서, 지오펜스-인에이블드 애플리케이션들은 GPS 와 다양한 로컬 포지셔닝 시스템들 양쪽을 활용할 수도 있다.In another embodiment, one or more geofence-enabled applications 808 may operate on top of the OS 806 and executed by the processor 802 . Geofence-enabled applications 808 may use various techniques to determine the current location of computing device 800 . For example, geofence-enabled applications 808 may receive the current location of computing device 800 from optional GPS receiver 810 . In another example, geofence-enabled applications 808 use one or more antennas 816 to receive signals, such as from multiple Wi-Fi access points, Bluetooth beacons, cell sites, base stations, etc. and by utilizing the radio-frequency transceiver 814 , various local positioning systems may be used to determine the current location of the computing device 800 . In another embodiment, geofence-enabled applications may utilize both GPS and various local positioning systems.

다른 실시형태에서, 컴퓨팅 디바이스 (800) 는 지오펜스-인에이블드 애플리케이션들 (808) 에 대한 지오펜스들을 관리 및/또는 블렌딩하도록 구성된 지오펜스 관리 유닛 (812) 을 포함할 수도 있다. 지오펜스 관리 유닛 (812) 은 지오펜스-인에이블드 애플리케이션들 (808) 로부터 또는 지오펜스 서버 (미도시) 로부터 지오펜스-인에이블드 애플리케이션들의 지오펜스들에 관한 정보를 수신할 수도 있다. 지오펜스 관리 유닛 (812) 은 또한 상술된 바와 같이 지오펜스 서버에 기인된 것으로서 지오펜스들을 블렌딩하는 동일한 또는 유사한 방법들을 이용하여 현재 위치에 가깝게 근접하는 및/또는 오버래핑되는 지오펜스-인에이블드 애플리케이션들 (808) 의 지오펜스들을 결합할 수도 있다.In another embodiment, the computing device 800 may include a geofence management unit 812 configured to manage and/or blend geofences for geofence-enabled applications 808 . The geofence management unit 812 may receive information about geofences of geofence-enabled applications from the geofence-enabled applications 808 or from a geofence server (not shown). The geofence management unit 812 may also use the same or similar methods of blending geofences as attributed to the geofence server as described above for geofence-enabled applications that closely approximate and/or overlap the current location. Geofences of fields 808 may be combined.

다른 실시형태에서, 지오펜스 관리 유닛 (812) 은 (예를 들어, GPS 및/또는 로컬 포지셔닝 시스템들을 이용하여) 상술된 바와 같이 컴퓨팅 디바이스 (800) 의 현재 위치를 결정할 수도 있고, 지오펜스-인에이블드 애플리케이션들 (808) 에게 블렌딩된 지오펜스가 횡단되었을 때를 한 번에 알릴 수도 있어서, 지오펜스-인에이블드 애플리케이션들 (808) 은 지오펜스 서버와 동시에 또는 거의 동시에 통신할 수도 있다. 대안적인 실시형태에서, 지오펜스 관리 유닛 (812) 은 지오펜스-인에이블드 애플리케이션들 (808) 과 지오펜스 서버 사이의 중개자 (intermediary) 로서 기능하도록 구성될 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛 (812) 은 지오펜스 서버로부터 지오펜스-인에이블드 애플리케이션들 (808) 에 대한 지오펜스 정보를 수신하고, 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하고, 블렌딩된 지오펜스가 횡단될 때까지 컴퓨팅 디바이스 (800) 의 현재 위치를 모니터링하고, 지오펜스 서버에게 지오펜스 횡단을 통지하며, 지오펜스-인에이블드 애플리케이션들 (808) 대신에 지오펜스 서버로부터 업데이트된 지오펜스 정보를 수신할 수도 있다.In another embodiment, the geofence management unit 812 may determine the current location of the computing device 800 as described above (eg, using GPS and/or local positioning systems), and the geofence-in The enabled applications 808 may be notified at once when a blended geofence has been traversed, such that the geofence-enabled applications 808 may communicate with the geofence server concurrently or nearly simultaneously. In an alternative embodiment, the geofence management unit 812 may be configured to function as an intermediary between the geofence-enabled applications 808 and the geofence server. In this embodiment, the geofence management unit 812 receives geofence information for geofence-enabled applications 808 from the geofence server, combines the geofences into a single blended geofence, Monitors the current location of the computing device 800 until the blended geofence is traversed, notifies the geofence server of the geofence traversal, and updates from the geofence server instead of the geofence-enabled applications 808 . Geofence information may be received.

지오펜스 관리 유닛 (812) 이 도 8 에서 컴퓨팅 디바이스 (800) 상에 포함된 별개의 컴포넌트로서 예시되지만, 지오펜스 관리 유닛은 컴퓨팅 디바이스 (800) 상에서 다양한 방법들로 구현될 수도 있다. 예를 들어, 지오펜스 관리 유닛 (812) 은 OS (806) 의 상부에서 작동하는 독립형 프로그램 또는 지오펜스-인에이블드 애플리케이션들 (808) 중 하나일 수도 있고, 컴퓨팅 디바이스 (800) 상에 포함된 프로세서 (예를 들어, 프로세서 (802)) 에 의해 실행될 수도 있다. 다른 예에서, 지오펜스 관리 유닛은 백그라운드 프로세스 또는 서비스와 같은 OS (806) 의 부분으로서 구현될 수도 있다. 다른 예에서, 지오펜스 관리 유닛은 옵션적 GPS 수신기 (810) 에 또는 프로세서 (802) 에 포함된 로직 회로와 같은 하드웨어로 구현될 수도 있다. 그러나, 지오펜스 관리 유닛 (812) 은 그것이 구현되는 특정 방식에 상관없이 동일한 능력으로 기능할 수도 있다는 것이 예상된다.Although the geofence management unit 812 is illustrated as a separate component included on the computing device 800 in FIG. 8 , the geofence management unit may be implemented on the computing device 800 in various ways. For example, the geofence management unit 812 may be a standalone program running on top of the OS 806 or one of the geofence-enabled applications 808 , and is included on the computing device 800 . may be executed by a processor (eg, processor 802 ). In another example, the geofence management unit may be implemented as part of the OS 806 , such as a background process or service. In another example, the geofence management unit may be implemented in hardware, such as logic circuitry included in the optional GPS receiver 810 or in the processor 802 . However, it is contemplated that the geofence management unit 812 may function with the same capabilities regardless of the particular manner in which it is implemented.

추가로, 설명의 용이를 위해, 지오펜스 관리 유닛은 아래에 설명된 실시형태의 방법들 중 하나 이상의 실시형태의 방법의 하나 이상의 동작들을 수행하는 것으로서 설명될 수도 있다. 그러나, 지오펜스 관리 유닛이 소프트웨어로 구현되는 실시형태들에서, 이러한 동작들은 지오펜스 관리 유닛 소프트웨어를 실행하는 컴퓨팅 디바이스 프로세서 (예를 들어, 프로세서 (802)) 에 의해 수행될 수도 있다는 것이 이해되어야 한다.Additionally, for ease of description, the geofence management unit may be described as performing one or more operations of one or more of the method of the embodiment described below. However, it should be understood that in embodiments where the geofence management unit is implemented in software, these operations may be performed by a computing device processor (eg, processor 802 ) executing the geofence management unit software. .

컴퓨팅 디바이스 (800) 상에 포함될 수도 있는 다른 컴포넌트들은 도 16 을 참조하여 아래에 추가로 설명된다.Other components that may be included on computing device 800 are further described below with reference to FIG. 16 .

도 9a 및 도 9b 는 컴퓨팅 디바이스 상에서 로컬로 블렌딩된 지오펜스들을 생성하기 위해 컴퓨팅 디바이스 상의 지오펜스 관리 유닛을 실행하는 프로세서에 의해 수행될 수도 있는 실시형태의 방법들 (900, 920) 을 예시한다.9A and 9B illustrate embodiment methods 900 , 920 that may be performed by a processor executing a geofence management unit on the computing device to generate locally blended geofences on the computing device.

도 4a 및 도 4b 를 참조하여 상술된 바와 같이, 설명의 용이를 위해, 도 9a 내지 도 15c 를 참조하여 아래에 설명된 것들과 같은 다양한 실시형태들은, 컴퓨팅 디바이스의 현재 위치를 포함하거나 그 현재 위치에 의존하는 동작들을 포함할 수도 있다. 그러나, 컴퓨팅 디바이스의 현재 위치에 대한 임의의 언급 또는 의존성은 청구항들에서 명시적으로 인용되지 않는다면 청구항들의 범위를 제한하려고 의도된 것이 아니다.As described above with reference to FIGS. 4A and 4B , for ease of explanation, various embodiments, such as those described below with reference to FIGS. 9A-15C , include or include a current location of a computing device. It may include operations that depend on However, any reference or reliance on the current location of the computing device is not intended to limit the scope of the claims unless explicitly recited in the claims.

도 9a 는 동일한 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들을 관리하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (900) 을 예시한다. 일 실시형태에서, 지오펜스 관리 유닛은, 컴퓨팅 디바이스의 현재 위치에서의 오버래핑 또는 가까운 지오펜스들을, 지오펜스 관리 유닛이 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있는 단일의 블렌딩된 지오펜스에 결합할 수도 있다.9A illustrates an embodiment method 900 that may be implemented by a geofence management unit operating on a computing device to manage a plurality of geofence-enabled applications operating on the same computing device. In one embodiment, the geofence management unit may send overlapping or nearby geofences at the current location of the computing device to a plurality of geofence-enabled applications for which the geofence management unit operates on the computing device. It can also be bound to blended geofences.

블록 902 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 실행하는 복수의 지오펜스-인에이블드 애플리케이션들을 식별할 수도 있다. 일 실시형태에서, 각각의 지오펜스-인에이블드 애플리케이션은 지오펜스 관리 유닛에 등록할 수도 있다. 예를 들어, 각각의 지오펜스-인에이블드 애플리케이션은 그의 식별 정보 (예를 들어, 애플리케이션 ID, 지오펜스 서버 ID 등) 를 지오펜스 관리 유닛에 전송하도록 지오펜스-인에이블드 애플리케이션을 구성하는 명령들을 포함할 수도 있다.At block 902 , the geofence management unit may identify a plurality of geofence-enabled applications executing on the computing device. In one embodiment, each geofence-enabled application may register with a geofence management unit. For example, each geofence-enabled application sends its identification information (eg, application ID, geofence server ID, etc.) to the geofence management unit, an instruction for configuring the geofence-enabled application may include

블록 904 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 위에서 논의된 바와 같이 컴퓨팅 디바이스의 현재 위치를 결정하기 위해 컴퓨팅 디바이스의 GPS 수신기 및/또는 컴퓨팅 디바이스 상의 다양한 로컬-포지셔닝 컴포넌트들을 활용할 수도 있다.At block 904 , the geofence management unit may determine a current location of the computing device. In an embodiment, the geofence management unit may utilize a GPS receiver of the computing device and/or various local-positioning components on the computing device to determine the current location of the computing device as discussed above.

블록 906 에서, 지오펜스 관리 유닛은 각각의 식별된 지오펜스-인에이블드 애플리케이션에 대한 현재 위치에서의 지오펜스들에 관한 정보를 획득할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 지오펜스 서버와 통신하고, 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 요구할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛은 복수의 지오펜스-인에이블드 애플리케이션들로부터 지오펜스 정보를 요구할 수도 있고, 이 복수의 지오펜스-인에이블드 애플리케이션들은 이러한 지오펜스 정보를 지오펜스 서버로부터 수신할 수도 있다. 다른 실시형태에서, 복수의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스 정보는 지오펜스들의 형상들, 주변들, 지리적 위치들, 및 사이즈들에 관한 정보를 포함할 수도 있다.At block 906 , the geofence management unit may obtain information regarding geofences at the current location for each identified geofence-enabled application. In an embodiment, the geofence management unit may communicate with a geofence server and request geofences associated with a plurality of geofence-enabled applications running on the computing device. In another embodiment, the geofence management unit may request geofence information from a plurality of geofence-enabled applications, the plurality of geofence-enabled applications receiving such geofence information from a geofence server You may. In another embodiment, geofence information for a plurality of geofence-enabled applications may include information regarding shapes, perimeters, geographic locations, and sizes of geofences.

블록 908 에서, 지오펜스 관리 유닛은 지오펜스 정보에 기초하여 지리적으로 가까운 현재 위치에서의 지오펜스들을 결정할 수도 있다. 일 실시형태에서, 지오펜스 서버를 참조하여 위에서 논의된 바와 같이, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스들이 오버래핑되는지 및/또는 가깝게 근접한지 여부를 결정하기 위해 다양한 계산들을 수행할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 영역에서의 지오펜스들 각각의 영역 및/또는 주변을 결정할 수도 있고, 복수의 지오펜스들이 오버래핑되거나 또는 거의 오버래핑되는 영역들 및/또는 주변들을 갖는지 여부를 결정할 수도 있다.At block 908 , the geofence management unit may determine geofences at the current geographically nearby location based on the geofence information. In one embodiment, as discussed above with reference to the geofence server, the geofence management unit is configured to determine whether geofences for geofence-enabled applications on the computing device overlap and/or are in close proximity. Various calculations may be performed for this purpose. For example, the geofence management unit may determine an area and/or perimeter of each of the geofences in the current area of the computing device, and whether the plurality of geofences have overlapping or near-overlapping areas and/or perimeters. You may decide whether to

블록 910 에서, 지오펜스 관리 유닛은 현재 위치에서 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 지오펜스 관리 유닛은 지오펜스들을 결합하기 위해 다양한 기법들을 구현할 수도 있다. 예를 들어, 지오펜스 관리 유닛은, 별개의 오버래핑 지오펜스들 각각을 포함하거나 또는 지오펜스들의 형상들의 가중된 평균을 이용하여 지오펜스들의 중심화된 형상을 표현하는 블렌딩된 지오펜스를 생성할 수도 있다. 지오펜스들을 블렌딩된 지오펜스에 결합하는 것은 도 15a 내지 도 15c 를 참조하여 아래에 추가로 설명된다.At block 910 , the geofence management unit may combine geofences that are geographically close to the current location into the blended geofence. The geofence management unit may implement various techniques to combine geofences. For example, the geofence management unit may generate a blended geofence that includes each of the separate overlapping geofences or that represents the centralized shape of the geofences using a weighted average of the geofences' shapes. . Coupling geofences to blended geofences is further described below with reference to FIGS. 15A-15C .

블록 912 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 식별된 지오펜스-인에이블드 애플리케이션들 각각에 전송할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션들 각각을 인에이블시켜서 블렌딩된 지오펜스를 모니터링할 수도 있는 블렌딩된 지오펜스에 관한 정보를 전송할 수도 있다. 그 결과, 복수의 지오펜스-인에이블드 애플리케이션들은 위치-감지 라디오들의 출력을 동시에 활용하여 블렌딩된 지오펜스가 횡단될 때를 인지할 수도 있고, 복수의 지오펜스-인에이블드 애플리케이션들 각각은 지오펜스 서버와 동시에 또는 거의 동시에 통신할 수도 있다.At block 912 , the geofence management unit may send the blended geofence to each of the identified geofence-enabled applications associated with the geofence included in the blended geofence. For example, the geofence management unit may transmit information about the blended geofence that may monitor the blended geofence by enabling each of the geofence-enabled applications. As a result, a plurality of geofence-enabled applications may simultaneously utilize the output of the location-sensing radios to recognize when a blended geofence is traversed, and each of the plurality of geofence-enabled applications may It can also communicate with the fence server at the same time or almost simultaneously.

결정 블록 914 에서, 지오펜스 관리 유닛은 현재 위치가 변화되었는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 상이한 지오펜스들이 존재할 수도 있는 상이한 위치로 컴퓨팅 디바이스가 이동하였는지 여부를 주기적으로 체크할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 몰 위치로부터 주차 지역 위치로 이동하였는지 여부를 결정할 수도 있다.At decision block 914 , the geofence management unit may determine whether the current location has changed. In an embodiment, the geofence management unit may periodically check whether the computing device has moved to a different location where different geofences may exist. For example, the geofence management unit may determine whether the computing device has moved from a mall location to a parking area location.

지오펜스 관리 유닛이 현재 위치가 변화되지 않았다고 결정할 때 (즉, 결정 블록 914 = "아니오"), 지오펜스 관리 유닛은 현재 위치가 변화되었을 때를 인지하기 위해 결정 블록 914 에서의 프로세스를 계속적으로 반복할 수도 있다. 지오펜스 관리 유닛이 현재 위치가 변화되었다고 결정할 때 (즉, 결정 블록 914 = "예"), 지오펜스 관리 유닛이 블록 904 에서 컴퓨팅 디바이스의 현재 위치를 결정하는 것을 계속할 수도 있으므로 지오펜스 관리 유닛은 루프에서 이 프로세스를 수행하는 것을 계속할 수도 있다.When the geofence management unit determines that the current location has not changed (ie, decision block 914 = “No”), the geofence management unit continues to repeat the process at decision block 914 to recognize when the current location has changed. You may. When the geofence management unit determines that the current location has changed (ie, determination block 914 = “yes”), the geofence management unit may continue to determine the current location of the computing device at block 904 so that the geofence management unit loops may continue to perform this process in .

추가 실시형태에서, 지오펜스 관리 유닛은 단일의 지오펜스-인에이블드 애플리케이션에 대한 다수의 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하기 위해 상술된 동작들을 수행하여, 그에 의해 단일의 지오펜스-인에이블드 애플리케이션을 인에이블시켜서 다수의 개별 지오펜스들보다는 단일의 블렌딩된 지오펜스를 모니터링할 수도 있다.In a further embodiment, the geofence management unit performs the operations described above to combine multiple geographically close geofences for a single geofence-enabled application into a blended geofence, whereby the single geofence -You can also enable the enabled application to monitor a single blended geofence rather than multiple individual geofences.

도 9b 는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스들의 지리적으로 가까운 그룹들을 블렌딩하기 위해 컴퓨팅 디바이스 상에서 지오펜스 관리 유닛을 실행하는 프로세서에 의해 구현될 수도 있는 일 실시형태의 방법 (920) 을 예시한다. 일 실시형태에서, 컴퓨팅 디바이스 프로세서는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들과 연관된 지리적으로 가까운 지오펜스들을 선제적으로 함께 그룹화할 수도 있고, 프로세서는 지오펜스들이 블렌딩된 지오펜스에 포함되는 애플리케이션들 대신에 블렌딩된 지오펜스를 모니터링하는 지오펜스 관리 유닛에 의한 또는 이들 애플리케이션들 중 하나 이상에 의한 이용을 위해 가까운 지오펜스들의 이들 그룹들 각각을 블렌딩된 지오펜스에 결합할 수도 있다.9B illustrates an embodiment method that may be implemented by a processor executing a geofence management unit on a computing device to blend geographically close groups of geofences for geofence-enabled applications on the computing device ( 920) is illustrated. In an embodiment, the computing device processor may preemptively group together geographically close geofences associated with geofence-enabled applications running on the computing device, wherein the processor includes the geofences included in the blended geofence. Each of these groups of nearby geofences may be bound to the blended geofence for use by one or more of these applications or by a geofence management unit monitoring the blended geofence instead of the applications being used.

다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에 대해 이용가능한 모든 가능한 블렌딩된 지오펜스들을 주기적으로 (예를 들어, 밤마다 또는 매주) 생성 및 저장할 수도 있다. 따라서, 추가 실시형태에서, 컴퓨팅 디바이스 상의 애플리케이션으로부터 지오펜스 정보에 대한 지오펜스 횡단 통지 또는 다른 요구를 수신한 것에 응답하여 또는 자체적으로, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션과 연관된 저장된 블렌딩된 지오펜스에 빨리 액세스할 수도 있고, 저장된 블렌딩된 지오펜스를 그 애플리케이션에 전송할 수도 있다. 다시 말해, 지오펜스 관리 유닛을 실행하는 프로세서는 애플리케이션들에 대해 미리 생성된 블렌딩된 지오펜스들을 준비할 수도 있고, 필요 또는 요구에 따라 이들 미리 만들어진 블렌딩된 지오펜스들을 애플리케이션들에 전송할 수도 있다.In another embodiment, the processor executing the geofence management unit periodically (eg, nightly or weekly) all possible blended geofences available for geofence-enabled applications running on the computing device. It can also be created and saved. Thus, in a further embodiment, in response to or itself receiving a geofence traversal notification or other request for geofence information from an application on the computing device, the processor executing the geofence management unit is a geofence-in on the computing device. A stored blended geofence associated with an enabled application may be quickly accessed, and a stored blended geofence may be sent to the application. In other words, the processor executing the geo-fence management unit may prepare pre-generated blended geo-fences for applications, and may send these pre-made blended geo-fences to the applications according to need or demand.

블록 902 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 도 9a 를 참조하여 상술된 바와 같이 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 식별할 수도 있다. 지오펜스 관리 유닛을 실행하는 프로세서는 또한, 예컨대 지오펜스 서버로부터 애플리케이션들에 관한 지오펜스 정보를 요구하는 것에 의해 또는 애플리케이션들로부터 지오펜스 정보를 직접 요구하는 것에 의해, 블록 924 에서 식별된 지오펜스-인에이블드 애플리케이션과 연관된 지오펜스들에 관한 정보를 획득할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 모바일 디바이스로부터 소정 거리 내의 지오펜스들에 대한 또는 특정 영역 (예를 들어, 주 또는 구역의 소정 부분) 과 연관된 지오펜스들에 대한 정보를 단지 획득할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 이들의 위치들에 상관없이 지오펜스들에 대한 정보를 수신할 수도 있다.At block 902 , the processor executing the geofence management unit may identify geofence-enabled applications executing on the device as described above with reference to FIG. 9A . The processor executing the geofence management unit may also include: the geofence identified in block 924 - by requesting geofence information about the applications from the geofence server or directly from the applications, eg, by requesting geofence information from the applications. Information about geofences associated with the enabled application may be obtained. In one embodiment, the processor executing the geofence management unit only receives information about geofences within a certain distance from the mobile device or about geofences associated with a particular area (eg, a certain portion of a state or district). may be obtained. In another embodiment, a processor executing a geofence management unit may receive information about geofences regardless of their locations.

블록 926 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 지오펜스 정보에 기초하여 서로 지리적으로 가까운 식별된 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 결정할 수도 있다. 일반적으로 상술된 바와 같이, 지오펜스들은 이들의 주변들이 서로 소정 거리 내에 있을 때 또는 이들의 영역들이 소정 정도의 오버랩을 가질 때 서로 지리적으로 가까울 수도 있다. 블록 928 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 블록 926 에서 지리적으로 가까운 것으로 결정된 이들 지오펜스들을 그룹화할 수도 있다.At block 926 , the processor executing the geofence management unit may determine geofences associated with the identified geofence-enabled applications that are geographically close to each other based on the geofence information. As generally described above, geofences may be geographically close to each other when their perimeters are within a certain distance of each other or when their areas have some degree of overlap. At block 928 , the processor executing the geofence management unit may group those geofences determined to be geographically close at block 926 .

블록 930 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 각각의 그룹에서의 지오펜스들을 결합하는 것에 의해 지오펜스들의 각각의 그룹에 대한 블렌딩된 지오펜스를 생성할 수도 있다. 일 실시형태에서, 블록 930 의 동작들을 수행하는 것에 의해, 지오펜스 관리 유닛을 실행하는 프로세서는 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 이용가능한 모든 가능한 블렌딩된 지오펜스 (또는 가능한 블렌딩된 지오펜스들의 특정 서브세트) 를 생성할 수도 있다. 블록 932 에서, 지오펜스 관리 유닛을 실행하는 프로세서는 또한 추후 이용을 위해 블록 930 에서 생성되는 각각의 블렌딩된 지오펜스를 저장할 수도 있다.At block 930 , the processor executing the geofence management unit may generate a blended geofence for each group of geofences by combining the geofences in the respective group. In one embodiment, by performing the operations of block 930 , the processor executing the geofence management unit causes all possible blended geofences (or possible blended geofences) available to geofence-enabled applications on the computing device. a specific subset of fences). At block 932 , the processor executing the geofence management unit may also store each blended geofence generated at block 930 for later use.

옵션적 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 옵션적 블록 938 에서 소정 기간 대기할 수도 있고, 블록 924 에서 시작하는 상술된 동작들을 반복할 수도 있다. 다시 말해, 지오펜스 관리 유닛을 실행하는 프로세서는 저장된 블렌딩된 지오펜스들이 최신의 것이라는 것을 보장하기 위해 소정 기간이 경과한 후에 위에서의 동작들을 주기적으로 반복할 수도 있다.In an optional embodiment, the processor executing the geofence management unit may wait a period of time at optional block 938 and repeat the above-described operations starting at block 924 . In other words, the processor executing the geofence management unit may periodically repeat the above operations after a predetermined period of time has elapsed to ensure that the stored blended geofences are up to date.

위에서의 동작들과 동시에 또는 그 후에 발생할 수도 있는 추가 실시형태들에서, 지오펜스 관리 유닛을 실행하는 프로세서는 옵션적 블록 934 에서 지오펜스-인에이블드 애플리케이션으로부터 업데이트된 지오펜스 정보 (예를 들어, 지오펜스 횡단 통지) 에 대한 요구를 수신할 수도 있다. 지오펜스 관리 유닛을 실행하는 프로세서는 또한, 옵션적 블록 936 에서 지오펜스-인에이블드 애플리케이션과 연관된 저장된 블렌딩된 지오펜스를 그 애플리케이션에 전송할 수도 있다. 예를 들어, 지오펜스 관리 유닛을 실행하는 프로세서는 블록 930 에서 상술된 바와 같이 블렌딩된 지오펜스를 형성하는데 이용되었던 하나 이상의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션에 저장된 블렌딩된 지오펜스를 전송할 수도 있다. 프로세서는 옵션적 블록 934 에서 시작하는 루프에서 위에서의 동작들을 반복할 수도 있다.In further embodiments that may occur concurrently with or after the operations above, the processor executing the geofence management unit may in optional block 934 update geofence information from the geofence-enabled application (e.g., geofence crossing notification). The processor executing the geofence management unit may also send a stored blended geofence associated with the geofence-enabled application to the application in optional block 936 . For example, a processor executing a geofence management unit may generate a blended geofence stored in a geofence-enabled application associated with one or more geofences that were used to form the blended geofence as described above in block 930 . can also be transmitted. The processor may repeat the above operations in a loop starting at optional block 934 .

따라서, 일 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 블록 932 에서 블렌딩된 지오펜스들을 메모리에 저장할 수도 있고, 필요에 따라 (예를 들어, 도 12 를 참조하여 아래에 일반적으로 설명되는 바와 같이 리포팅 애플리케이션으로부터의 리포팅 통지에 응답하여) 옵션적 블록 936 에서 블렌딩된 지오펜스들을 지오펜스-인에이블드 애플리케이션들에게 전송할 수도 있다. 옵션적 블록 936 의 동작들의 다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 프로세서는 (예를 들어, "푸시" 동작에서) 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에게 저장된 블렌딩된 지오펜스들을 선제적으로 전송하여 이들 애플리케이션들을 인에이블시켜서 블렌딩된 지오펜스를 즉시 모니터링하는 것을 시작할 수도 있다. 추가 실시형태 (미도시) 에서, 지오펜스 관리 유닛은 지오펜스들이 블렌딩된 지오펜스에 포함되는 애플리케이션들 대신에 저장된 블렌딩된 지오펜스들을 모니터링할 수도 있고, 저장된 블렌딩된 지오펜스가 횡단되었을 때를 이들 애플리케이션들에게 시그널링할 수도 있다.Thus, in one embodiment, the processor executing the geofence management unit may store the geofences blended at block 932 in memory, as needed (eg, as generally described below with reference to FIG. 12 ) The blended geofences may also be sent to geofence-enabled applications in optional block 936 (in response to a reporting notification from the reporting application as well). In another embodiment of the operations of optional block 936 , the processor executing the geofence management unit (eg, in a “push” operation) transfers the stored blended geofences to geofence-enabled applications on the computing device (eg, in a “push” operation). You can also start monitoring blended geofences immediately by sending them proactively to enable these applications. In a further embodiment (not shown), the geofence management unit may monitor the stored blended geofences instead of applications for which the geofences are included in the blended geofence, and determine when the stored blended geofence is traversed. It can also signal to applications.

도 10a 는 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였을 때를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에게 통지하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1000) 을 예시한다. 일 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 생성하고, 블렌딩된 지오펜스를 모니터링하며, 블렌딩된 지오펜스가 횡단될 때를 지오펜스-인에이블드 애플리케이션 대신에 지오펜스 서버에게 통지하는 것에 의해 지오펜스-인에이블드 애플리케이션들과 지오펜스 서버 사이의 중개자로서 기능할 수도 있다.10A is an embodiment that may be implemented by a geofence management unit operating on a computing device to notify geofence-enabled applications running on the computing device when the computing device has traversed a blended geofence. method 1000 of In one embodiment, the geofence management unit generates a blended geofence, monitors the blended geofence, and notifies the geofence server on behalf of the geofence-enabled application when the blended geofence is traversed. may serve as an intermediary between the geofence-enabled applications and the geofence server.

일 실시형태에서, 방법 (1000) 의 동작들은 도 9a 를 참조하여 상술된 방법 (900) 의 블록 912 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 관리 유닛은 도 9a 를 참조하여 상술된 방법 (900) 의 블록 910 에서 현재 위치에서 오버래핑 또는 거의 오버래핑되는 지오펜스들을 블렌딩된 지오펜스에 결합한 후에 방법 (1000) 을 수행하는 것을 시작할 수도 있다.In one embodiment, the operations of method 1000 implement an embodiment of the operations of block 912 of method 900 described above with reference to FIG. 9A . Thus, in one embodiment, the geofence management unit performs the method 1000 after combining the overlapping or near-overlapping geofences at the current location to the blended geofence in block 910 of the method 900 described above with reference to FIG. 9A . You can even start doing it.

옵션적 결정 블록 1002 에서, 지오펜스 관리 유닛은 현재 위치가 변화되었는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치를 이전에 결정된 위치와 비교하여 컴퓨팅 디바이스가 이동하였는지 여부를 결정할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 소정의 임계 거리를 이동하였을 때 현재 위치가 변화되었다는 것을 결정할 수도 있다.At optional decision block 1002 , the geofence management unit may determine whether the current location has changed. In other words, the geofence management unit may compare the current location of the computing device with the previously determined location to determine whether the computing device has moved. In another embodiment, the geofence management unit may determine that the current location has changed when the computing device has moved a predetermined threshold distance.

지오펜스 관리 유닛이 현재 위치가 변화되었다고 결정할 때 (즉, 옵션적 결정 블록 1002 = "예"), 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치를 결정하는 것에 의해 도 9a 를 참조하여 상술된 방법 (900) 의 블록 904 에서의 프로세스를 수행하는 것을 계속할 수도 있다. 일 실시형태에서, 각각의 위치는 상이한 포지션들에서의 상이한 지오펜스들을 포함할 수도 있고, 각각의 지오펜스 관리 유닛은 각각의 위치에서의 지오펜스들을 상이하게 결합하여 그 영역에 대한 블렌딩된 지오펜스를 생성할 필요가 있을 수도 있다.When the geofence management unit determines that the current location has changed (ie, optional determination block 1002 = “Yes”), the geofence management unit determines the current location of the computing device by determining the current location of the computing device in the method described above with reference to FIG. 9A ( 900) may continue with performing the process at block 904. In an embodiment, each location may include different geofences at different positions, and each geofence management unit differently combines the geofences at each location to create a blended geofence for that area. It may be necessary to create

지오펜스 관리 유닛이 현재 위치가 변화되지 않았다고 결정할 때 (즉, 옵션적 결정 블록 1002 = "아니오"), 지오펜스 관리 유닛은 블록 1004 에서 블렌딩된 지오펜스의 횡단에 대해 모니터링할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 블렌딩된 지오펜스의 경계를 횡단하였는지 여부를 모니터링할 수도 있다.When the geofence management unit determines that the current location has not changed (ie, optional determination block 1002 = “no”), the geofence management unit may monitor for traversal of the blended geofence at block 1004 . In other words, the geo-fence management unit may monitor whether the computing device has crossed the boundary of the blended geo-fence.

결정 블록 1006 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 GPS 및/또는 로컬-포지셔닝 시스템들 (예를 들어, Wi-Fi, 셀 타워 신호들 등) 을 활용하여 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하지 않았다고 결정할 때 (즉, 결정 블록 1006 = "아니오"), 지오펜스 관리 유닛은 옵션적 결정 블록 1002 에서의 프로세스를 수행하는 것을 계속할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 상술된 바와 같이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 계속적으로 결정할 수도 있다.At decision block 1006 , the geofence management unit may determine whether the computing device has traversed the blended geofence. In one embodiment, the geofence management unit utilizes GPS and/or local-positioning systems (eg, Wi-Fi, cell tower signals, etc.) to determine whether the computing device has traversed the blended geofence. may be When the geofence management unit determines that the computing device has not traversed the blended geofence (ie, decision block 1006 = “No”), the geofence management unit may continue performing the process at optional decision block 1002 . . In one embodiment, the geofence management unit may continuously determine whether the current location of the computing device has changed as described above.

컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1006 = "예"), 지오펜스 관리 유닛은 블록 1007 에서 블렌딩된 지오펜스가 횡단되었음을 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 식별된 복수의 지오펜스-인에이블드 애플리케이션들 각각에게 통지할 수도 있다. 지오펜스 관리 유닛은 또한, 블록 1008 에서 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 대신에 블렌딩된 지오펜스가 횡단되었음을 지오펜스 서버에게 통지할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 복수의 지오펜스-인에이블드 애플리케이션들 각각 대신에 지오펜스 위반들에 대해 모니터링하는 것을 담당하여, 그에 의해 위치-감지 라디오들의 이용을 최소화할 수도 있고, 지오펜스 관리 유닛은 복수의 지오펜스-인에이블드 애플리케이션들 각각 대신에 블렌딩된 지오펜스가 횡단될 때를 지오펜스 서버에게 알릴 수도 있다. 추가 실시형태에서, 지오펜스 관리 유닛은 하나의 통신에서 블렌딩된 지오펜스 횡단을 지오펜스 서버에게 통지하여, 그에 의해 컴퓨팅 디바이스 상의 리소스들 (예를 들어, 전력) 및/또는 시간을 절약할 수도 있다.When the geofence management unit determines that the computing device has traversed the blended geofence (ie, determination block 1006 = “Yes”), the geofence management unit includes in the blended geofence that the blended geofence has been traversed at block 1007 . Each of the identified plurality of geofence-enabled applications associated with the identified geofence may be notified. The geofence management unit may also notify the geofence server that the blended geofence has been traversed instead of geofence-enabled applications associated with the geofence included in the blended geofence at block 1008 . In an embodiment, the geofence management unit may be responsible for monitoring for geofence violations on behalf of each of a plurality of geofence-enabled applications, thereby minimizing the use of location-sensing radios, The fence management unit may notify the geofence server when the blended geofence is traversed on behalf of each of the plurality of geofence-enabled applications. In a further embodiment, the geofence management unit may notify the geofence server of the blended geofence traversal in one communication, thereby saving resources (eg, power) and/or time on the computing device. .

옵션적 결정 블록 1002 에서 지오펜스 관리 유닛이 현재 위치가 변화되었는지 여부를 결정하는 것을 계속할 수도 있으므로 프로세스가 루프에서 계속될 수도 있다.The process may continue in a loop as the geofence management unit may continue to determine whether the current location has changed at optional decision block 1002 .

도 10b 는 블렌딩된 지오펜스가 횡단되었을 때를 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들에게 통지하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1020) 을 예시한다.10B illustrates an embodiment method that may be implemented by a geofence management unit operating on a computing device to notify geofence-enabled applications operating on the computing device when a blended geofence has been traversed; 1020) is exemplified.

일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 프로세서 상에서 실행하고 디바이스 프로세서 상에서 또한 실행하는 하나 이상의 지오펜스-인에이블드 애플리케이션들에 대한 프록시 서버로서 기능하는 애플리케이션일 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 지오펜스 서버로부터 블렌딩된 지오펜스를 요구하고, 지오펜스-인에이블드 애플리케이션들 대신에 컴퓨팅 디바이스의 현재 위치를 모니터링하며, 블렌딩된 지오펜스가 횡단될 때를 블렌딩된 지오펜스에 포함된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 각각에게 통지할 수도 있다.In an embodiment, the geofence management unit may be an application executing on the processor of the computing device and functioning as a proxy server for one or more geofence-enabled applications that also run on the device processor. In this embodiment, the computing device processor executing the geofence management unit requests the blended geofence from the geofence server, monitors the current location of the computing device in lieu of geofence-enabled applications, and monitors the blended geofence. Each of the geofence-enabled applications associated with the geofence included in the blended geofence may be notified when the fence is to be traversed.

블록 902 에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 도 9a 를 참조하여 상술된 바와 같이 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 식별할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 블록 1022 에서 식별된 지오펜스-인에이블드 애플리케이션들의 리스트를 지오펜스 서버에 전송할 수도 있다. 일 실시형태에서, 리스트는, 도 4a 내지 도 7b 를 참조하여 상술된 다양한 실시형태들을 참조하여 위에서 일반적으로 논의된 바와 같이, 지오펜스 서버를 인에이블시켜서 리스팅된 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들을 식별하고, 지리적으로 가까운 식별된 지오펜스들을 결정하고, 이들 지리적으로 가까운 지오펜스들에 기초하여 블렌딩된 지오펜스를 생성하며, 생성된 블렌딩된 지오펜스를 컴퓨팅 디바이스에 전송할 수도 있다.At block 902 , the computing device processor executing the geofence management unit may identify geofence-enabled applications executing on the device as described above with reference to FIG. 9A . The computing device processor executing the geofence management unit may send the list of geofence-enabled applications identified in block 1022 to the geofence server. In one embodiment, the list includes the geofence-enabled applications listed by enabling the geofence server, as generally discussed above with reference to the various embodiments described above with reference to FIGS. 4A-7B , and It may identify associated geofences, determine geographically close identified geofences, generate a blended geofence based on these geographically close geofences, and send the generated blended geofence to the computing device.

옵션적 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 블록 1024 에서 디바이스의 현재 위치를 결정할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 옵션적 블록 1026 에서 디바이스의 현재 위치를 지오펜스 서버에 전송하여, 그에 의해 지오펜스 서버를 인에이블시켜서 디바이스의 현재 위치에 지리적으로 가까운 지오펜스-인에이블드 애플리케이션들의 지오펜스들에 대한 블렌딩된 지오펜스를 생성할 수도 있다.In an optional embodiment, the computing device processor executing the geofence management unit may determine a current location of the device at block 1024 . The computing device processor executing the geofence management unit sends, in optional block 1026 , the current location of the device to the geofence server, thereby enabling the geofence server to enable geofences that are geographically close to the current location of the device. It is also possible to create blended geofences for geofences of de applications.

블록 1028 에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 리스팅된 지오펜스-인에이블드 애플리케이션들 중 하나 이상과 연관된 지오펜스들을 포함하는 블렌딩된 지오펜스를 지오펜스 서버로부터 수신할 수도 있다. 일 실시형태에서, 블렌딩된 지오펜스는 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 포함할 수도 있다. 다른 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 모든 가능한 블렌딩된 지오펜스 또는 블렌딩된 지오펜스들의 특정 서브세트 (예를 들어, 특정 지리적 구역 또는 영역에 대한 블렌딩된 지오펜스들) 를 표현하는 하나 이상의 블렌딩된 지오펜스들을 수신할 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 아래에 추가로 설명되는 바와 같이 컴퓨팅 디바이스의 현재 위치에 관련된 블렌딩된 지오펜스를 식별하고, 식별된 (즉, 관련된) 블렌딩된 지오펜스를 모니터링하는 것을 시작할 수도 있다.At block 1028 , the computing device processor executing the geofence management unit may receive a blended geofence including geofences associated with one or more of the listed geofence-enabled applications from the geofence server. In an embodiment, the blended geofences may include geofences that are geographically close to the current location of the computing device. In another embodiment, the computing device processor executing the geofence management unit computes all possible blended geofences or a particular subset of blended geofences (eg, blended geofences for a particular geographic region or region). It may receive one or more blended geofences representing it. In such an embodiment, the computing device processor executing the geofence management unit identifies a blended geofence related to the current location of the computing device as further described below, and the identified (ie, related) blended geofence You can start monitoring the

블록 1028 에서 지오펜스 서버로부터 블렌딩된 지오펜스를 수신한 후에, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 옵션적 결정 블록 1030 에서 업데이트된 블렌딩된 지오펜스가 요구되는지 여부를 옵션적으로 결정할 수도 있다. 예를 들어, 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 지오펜스 서버로부터 이전에 수신된 블렌딩된 지오펜스가 더 이상 관련되지 않거나 또는 유용하지 않다는 것을 결정할 수도 있는데, 이는 컴퓨팅 디바이스가 블렌딩된 지오펜스에 의해 커버되지 않은 다른 영역으로 이동하였기 때문이다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 업데이트된 블렌딩된 지오펜스가 요구된다고 결정할 때 (즉, 옵션적 결정 블록 1030 = "예"), 프로세서는 업데이트된 블렌딩된 지오펜스를 요구하기 위해 블록 1022 에서 시작하는 위에서의 동작들을 반복할 수도 있다.After receiving the blended geofence from the geofence server at block 1028 , the computing device processor executing the geofence management unit may optionally determine whether an updated blended geofence is required at optional decision block 1030 . . For example, a computing device processor executing a geofence management unit may determine that a blended geofence previously received from a geofence server is no longer relevant or useful, which may indicate that the computing device is a blended geofence This is because it has moved to another area not covered by When the computing device processor executing the geofence management unit determines that an updated blended geofence is required (ie, optional determination block 1030 = “yes”), the processor is configured to request an updated blended geofence in block 1022 You may repeat the above operations starting with .

지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 업데이트된 블렌딩된 지오펜스가 요구되지 않는다고 결정할 때 (즉, 옵션적 결정 블록 1030 = "아니오"), 프로세서는 도 10a 를 참조하여 상술된 바와 같이 블록 1004 에서 블렌딩된 지오펜스의 횡단에 대해 모니터링할 수도 있다.When the computing device processor executing the geofence management unit determines that the updated blended geofence is not required (ie, optional determination block 1030 = “No”), the processor executes block 1004 as described above with reference to FIG. 10A . traversal of the blended geofences can also be monitored.

지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서는 또한 도 10a 를 참조하여 상술된 바와 같이 결정 블록 1006 에서 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하였는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단하지 않았다고 결정할 때까지 (즉, 결정 블록 1006 = "아니오" 동안), 프로세서는 옵션적 결정 블록 1030 에서 시작하는 위에서의 동작들을 반복할 수도 있다. 지오펜스 관리 유닛을 실행하는 컴퓨팅 디바이스 프로세서가 블렌딩된 지오펜스를 횡단하였다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1006 = "예"), 프로세서는 도 10a 를 참조하여 추가로 상술된 바와 같이 블록 1007 에서 블렌딩된 지오펜스가 횡단되었음을 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 식별된 복수의 지오펜스-인에이블드 애플리케이션들 각각에게 통지할 수도 있다.The computing device processor executing the geofence management unit may also determine whether the computing device has traversed the blended geofence in decision block 1006 as described above with reference to FIG. 10A . Until the computing device processor executing the geofence management unit determines that the computing device has not traversed the blended geofence (ie, during decision block 1006 = “No”), the processor may The actions may be repeated. When the geofence management unit determines that the computing device processor executing the geofence management unit has traversed the blended geofence (ie, determination block 1006=“Yes”), the processor may Each of the identified plurality of geofence-enabled applications associated with the geofence included in the blended geofence may be notified at block 1007 that the blended geofence has been traversed.

도 11 은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 대해 양립가능한 지오펜스들을 결합하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1100) 을 예시한다. 방법 (1100) 의 동작들은 도 9a 를 참조하여 상술된 방법 (900) 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 관리 유닛은 방법 (900) 의 블록 908 에서 지오펜스 정보에 기초하여 지리적으로 가까운 현재 위치에서의 지오펜스들을 결정한 후에 방법 (1100) 을 수행하는 것을 시작할 수도 있다.11 illustrates an embodiment method 1100 that may be implemented by a geofence management unit operating on a computing device to combine compatible geofences for geofence-enabled applications on the computing device. . The operations of method 1100 implement one embodiment of the operations of method 900 described above with reference to FIG. 9A . Thus, in one embodiment, the geofence management unit may begin performing the method 1100 after determining geofences at the current geographically nearby location based on the geofence information at block 908 of the method 900 .

결정 블록 1102 에서, 지오펜스 관리 유닛은 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 그 지오펜스 관리 유닛이 현재 위치에서의 임의의 지오펜스들을 결합하는 것이 가능한지 여부를 결정할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 현재 위치에 단 하나의 지오펜스만이 존재하거나 또는 서로 가깝지 않은 복수의 지오펜스들이 영역에 존재할 때 현재 위치에서의 지오펜스들을 결합하는 것이 불가능할 수도 있다.At decision block 1102 , the geofence management unit may determine whether a plurality of geographically close geofences exist at the current location. In other words, the geofence management unit may determine whether the geofence management unit is capable of combining any geofences at the current location. For example, the geofence management unit may not be able to combine geofences at the current location when only one geofence exists at the current location or when a plurality of geofences that are not close to each other exist in an area.

지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1102 = "아니오"), 프로세스는 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 결정할 때 도 9a 를 참조하여 상술된 방법 (900) 의 결정 블록 914 에서 계속될 수도 있다.When the geofence management unit determines that a plurality of geographically close geofences do not exist at the current location (ie, determination block 1102 = “No”), the process determines whether the geofence management unit determines whether the current location of the computing device has changed. The determination may continue at decision block 914 of the method 900 described above with reference to FIG. 9A .

지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1102 = "예"), 지오펜스 관리 유닛은 블록 1104 에서 복수의 지리적으로 가까운 지오펜스들 중 어떤 것이 블렌딩하기에 적합한지를 결정할 수도 있다. 도 6 을 참조하여 상술된 방법 (600) 에서 블록 604 를 참조하여 상술된 바와 같이, 오버래핑 및/또는 가까운 지오펜스들은 그럼에도 불구하고 다양한 이유로 블렌딩하기에 부적합할 수도 있다. 예를 들어, 지오펜스는 (예를 들어, 의도된 대로 기능하도록 높은 정도의 위치-기반 정확도를 요구하는 애플리케이션에 대해) 블렌딩하기에 부적절한 것으로서 지오펜스를 마킹하는 개발자에 의해 부가된 메타데이터를 포함할 수도 있다. 다른 양립불가능성들은 양립불가능한 지오펜스 형상들 (예를 들어, 정사각형 지오펜스 및 원형 지오펜스) 또는 양립불가능한 지오펜스 타입들 (예를 들어, "도보" 지오펜스 및 "드라이빙" 지오펜스) 을 포함할 수도 있다.When the geofence management unit determines that a plurality of geographically close geofences exist at the current location (ie, determination block 1102 = “Yes”), the geofence management unit determines at block 1104 which one of the plurality of geographically close geofences You may also decide if it is suitable for blending. As described above with reference to block 604 in method 600 described above with reference to FIG. 6 , overlapping and/or near geofences may nevertheless be unsuitable for blending for various reasons. For example, a geofence includes metadata added by a developer that marks the geofence as unsuitable for blending (eg, for applications that require a high degree of location-based accuracy to function as intended). You may. Other incompatibilities include incompatible geofence shapes (eg, square geofence and circular geofence) or incompatible geofence types (eg, "walking" geofence and "driving" geofence) You may.

결정 블록 1106 에서, 지오펜스 관리 유닛은 복수의 오버래핑 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 결합되기에 적절한 적어도 2 개의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1106 = "아니오"), 프로세스는 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 결정할 때 도 9a 를 참조하여 상술된 방법 (900) 의 결정 블록 914 에서 계속될 수도 있다.At decision block 1106 , the geofence management unit may determine whether there are multiple geofences suitable for blending in the plurality of overlapping geofences. In other words, the geo-fence management unit may determine whether there are at least two geo-fences suitable to be coupled to the blended geo-fence. When the geofence management unit determines that there are no multiple geofences suitable for blending in the plurality of geographically close geofences (ie, determination block 1106 = “No”), the process determines that the geofence management unit Decision block 914 of the method 900 described above with reference to FIG. 9A may continue when determining whether the current location has changed.

지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1106 = "예"), 지오펜스 관리 유닛은 블록 1108 에서 다수의 양립가능한 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 일 실시형태에서, 다수의 양립가능한 지오펜스들이 존재할 때, 지오펜스 관리 유닛은 이들을 블렌딩된 지오펜스에 결합하는 것이 가능할 수도 있다.When the geofence management unit determines that there are multiple geofences suitable for blending in the plurality of geographically close geofences (ie, determination block 1106 = “Yes”), the geofence management unit determines at block 1108 the multiple compatible geofences. Possible geofences can also be combined into blended geofences. In an embodiment, when multiple compatible geofences exist, the geofence management unit may be able to combine them into a blended geofence.

블록 1110 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩하기에 적합한 다수의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있다. 다시 말해, 블렌딩하기에 적합한 현재 위치에서의 지오펜스들을 갖는 이들 애플리케이션들만이 블렌딩된 지오펜스들을 수신할 수도 있고, 다른 지오펜스-인에이블드 애플리케이션들은 블렌딩된 지오펜스를 수신하지 못할 수도 있다. 일 실시형태에서, 다른 지오펜스-인에이블드 애플리케이션들은 이들의 애플리케이션 개발자들에 의해 원래 정의된 지오펜스들을 모니터링하는 것을 계속할 수도 있는데, 이는 이들 지오펜스들이 블렌딩된 지오펜스에 결합되지 않았기 때문이다.At block 1110 , the geofence management unit may send the blended geofence to geofence-enabled applications associated with multiple geofences suitable for blending. In other words, only those applications that have geofences at the current location suitable for blending may receive the blended geofences, and other geofence-enabled applications may not receive the blended geofences. In one embodiment, other geofence-enabled applications may continue to monitor geofences originally defined by their application developers as these geofences are not bound to the blended geofence.

프로세스는 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 변화되었는지 여부를 결정할 때 도 9a 를 참조하여 상술된 방법 (900) 의 결정 블록 914 에서 계속될 수도 있다.The process may continue at decision block 914 of the method 900 described above with reference to FIG. 9A when the geofence management unit determines whether the current location of the computing device has changed.

도 12 는 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신한 것에 응답하여 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1200) 을 예시한다. 추가 실시형태들에서, 지오펜스 관리 유닛은 지오펜스 서버와 컴퓨팅 디바이스 상에서 동작하는 복수의 지오펜스-인에이블드 애플리케이션들 사이의 중개자로서 기능할 수도 있다.12 is an embodiment method 1200 that may be implemented by a geofence management unit operating on a computing device to send a blended geofence to a reporting application in response to receiving a geofence traversing notification from a reporting application. exemplifies In further embodiments, the geofence management unit may function as an intermediary between the geofence server and a plurality of geofence-enabled applications running on the computing device.

블록 1202 에서, 지오펜스 관리 유닛은 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다. 일 실시형태에서, 지오펜스-인에이블드 애플리케이션들은 지오펜스 횡단들에 대해 개별적으로 모니터링될 수도 있고 지오펜스 횡단 통지를 지오펜스 관리 유닛에 (즉, 직접적으로 지오펜스 서버 대신에) 전송하는 것에 의해 지오펜스가 횡단되었을 때를 나타낼 수도 있고, 지오펜스 관리 유닛은 아래에 설명된 바와 같이 이에 응답하여 블렌딩된 지오펜스들에 대한 정보를 복수의 지오펜스-인에이블드 애플리케이션에 리턴할 수도 있다.At block 1202 , the geofence management unit may monitor for geofence traversing notifications from the reporting application. In one embodiment, geofence-enabled applications may be individually monitored for geofence traversals and by sending a geofence traversal notification to the geofence management unit (ie, directly instead of the geofence server). It may indicate when a geofence has been traversed, and the geofence management unit may return information about the blended geofences to the plurality of geofence-enabled applications in response thereto, as described below.

결정 블록 1204 에서, 지오펜스 관리 유닛은 그 지오펜스 관리 유닛이 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신하지 않았다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1204 = "아니오"), 프로세스는 지오펜스 관리 유닛이 지오펜스 횡단 통지를 수신할 때까지 블록 1202 에서 방법 (1200) 을 수행하는 것을 계속할 수도 있으므로 루프에서 계속될 수도 있다.At decision block 1204 , the geofence management unit may determine whether the geofence management unit has received a geofence traversal notification from the reporting application. When the geofence management unit determines that the geofence management unit has not received a geofence traversing notification from the reporting application (ie, determination block 1204 = “No”), the process proceeds when the geofence management unit receives a geofence traversing notification In block 1202 , the method 1200 may continue to perform so may continue in a loop.

지오펜스 관리 유닛이 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했다고 지오펜스 관리 유닛이 결정할 때 (즉, 결정 블록 1204 = "예"), 지오펜스 관리 유닛은 블록 1206 에서 지오펜스 횡단 통지를 지오펜스 서버에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션과 지오펜스 서버 사이의 중개자로서 기능할 수도 있다. 이러한 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션이 지오펜스를 횡단할 때를 지오펜스 서버에게 알릴 수도 있고, 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션 대신에 지오펜스 서버로부터 업데이트된 지오펜스 정보를 수신할 수도 있다. 다른 실시형태에서, 상술된 바와 같이, 지오펜스 관리 유닛은 또한 동일한 컴퓨팅 디바이스 상에서 동작하는 다른 지오펜스-인에이블드 애플리케이션들에 대한 지오펜스 정보를 수신하고, 동일한 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 의해 모니터링되는 블렌딩된 지오펜스를 생성할 수도 있다.When the geofence management unit determines that the geofence management unit has received a geofence traversing notification from the reporting application (ie, determination block 1204 = “Yes”), the geofence management unit sends a geofence traversing notification at block 1206 to the geofence server can also be sent to In one embodiment, the geofence management unit may function as an intermediary between the reporting application and the geofence server. In such an embodiment, the geofence management unit may inform the geofence server when a geofence-enabled application on the computing device is traversing the geofence, and the geofence management unit instead of the geofence-enabled application The updated geofence information may be received from the geofence server. In another embodiment, as described above, the geofence management unit also receives geofence information for other geofence-enabled applications running on the same computing device, and each geofence-in on the same computing device. You can also create blended geofences that are monitored by enabled applications.

지오펜스 관리 유닛은 도 9a 를 참조하여 상술된 방법 (900) 의 블록 902 내지 910 에서 상술된 바와 같이 방법 (1200) 의 블록들 902 내지 910 에서의 동작들을 수행하는 것에 의해 방법 (1200) 을 수행하는 것을 계속할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스 상에서 동작하는 지오펜스-인에이블드 애플리케이션들을 식별하고, 컴퓨팅 디바이스의 현재 위치를 결정하고, 각각의 식별된 지오펜스-인에이블드 애플리케이션에 대한 현재 위치에 대한 지오펜스 정보를 (예를 들어, 지오펜스 서버로부터) 획득하고, 지오펜스 정보에 기초하여 지리적으로 가까운 현재 위치에 존재하는 지오펜스들을 결정하며, 현재 위치에서의 오버래핑 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다.The geofence management unit performs the method 1200 by performing the operations in blocks 902 - 910 of the method 1200 as described above at blocks 902 - 910 of the method 900 described above with reference to FIG. 9A . may continue to do so. In one embodiment, the geofence management unit identifies geofence-enabled applications running on the computing device, determines a current location of the computing device, and a current location for each identified geofence-enabled application Obtain geofence information for (eg, from a geofence server), determine geofences existing in a geographically close current location based on the geofence information, and blend overlapping geofences at the current location It can also be attached to a fence.

블록 910 에서 블렌딩된 지오펜스를 생성한 후에, 지오펜스 관리 유닛은 블록 1208 에서 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션들에 대해 방법 (1200) 을 수행하는 것을 계속할 수도 있다. 따라서, 결국에는, 지오펜스 관리 유닛은 현재 위치에 대한 블렌딩된 지오펜스를 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있고, 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션은 컴퓨팅 디바이스가 블렌딩된 지오펜스를 횡단할 때를 동시에 또는 거의 동시에 검출하는 것이 가능할 수도 있다.After generating the blended geofence at block 910 , the geofence management unit may send the blended geofence to the reporting application at block 1208 . In an embodiment, the geofence management unit may continue to perform the method 1200 for other reporting applications. Thus, in the end, the geofence management unit may send the blended geofence for the current location to each geofence-enabled application on the computing device, and each geofence-enabled application on the computing device It may be possible to simultaneously or nearly simultaneously detect when a device traverses a blended geofence.

추가 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션과 연관된 다수의 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하기 위해 상술된 동작들을 수행하여, 그에 의해 리포팅 애플리케이션을 인에이블시켜서 다수의 개별 지오펜스들보다는 단일의 블렌딩된 지오펜스를 모니터링할 수도 있다.In a further embodiment, the geofence management unit performs the operations described above to combine a plurality of geographically close geofences associated with a reporting application to a blended geofence, thereby enabling a reporting application to thereby enable a plurality of individual geofences. It is also possible to monitor a single blended geofence rather than a single one.

도 13 은 블렌딩된 지오펜스 또는 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할지 여부를 결정하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1300) 을 예시한다. 방법 (1300) 의 동작들은 도 12 를 참조하여 상술된 방법 (1200) 의 동작들의 일 실시형태를 구현한다. 따라서, 일 실시형태에서, 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 908 에서 지오펜스 정보에 기초하여 오버래핑되거나 및/또는 가깝게 근접한 현재 위치에서의 지오펜스들을 결정한 후에 방법 (1300) 을 수행하는 것을 시작할 수도 있다.13 illustrates an embodiment method 1300 that may be implemented by a geofence management unit operating on a computing device to determine whether to send blended or unblended geofence information to a reporting application. do. The operations of method 1300 implement one embodiment of the operations of method 1200 described above with reference to FIG. 12 . Thus, in one embodiment, the geofence management unit determines the geofences at the overlapping and/or closely proximate current location based on the geofence information in block 908 of the method 1200 described above with reference to FIG. 12 , after determining the method We may begin to perform ( 1300 ).

결정 블록 1102 에서, 지오펜스 관리 유닛은 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 도 11 을 참조하여 상술된 바와 같이, 지오펜스 관리 유닛은 그 지오펜스 관리 유닛이 현재 위치에서의 임의의 지오펜스들을 결합하는 것이 가능한지 여부를 결정할 수도 있다.At decision block 1102 , the geofence management unit may determine whether a plurality of geographically close geofences exist at the current location. In other words, as described above with reference to FIG. 11 , the geo-fence management unit may determine whether the geo-fence management unit is capable of combining any geo-fences at the current location.

지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1102 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치에 복수의 지오펜스들이 존재하지 않을 때 블렌딩된 지오펜스를 생성하는 것이 불가능할 수도 있는데, 이는 2 개 이상의 지오펜스가 블렌딩된 지오펜스를 생성하기 위해 필요하기 때문이다. 다른 실시형태에서, 프로세스는 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있으므로 도 12 를 참조하여 상술된 방법 (1200) 에서의 블록 1202 에서 계속될 수도 있다.When the geofence management unit determines that a plurality of geographically close geofences do not exist at the current location (ie, determination block 1102 = “No”), the geofence management unit returns the unblended geofence information to the reporting application in block 1304 . can also be sent to In an embodiment, the geofence management unit may not be able to generate a blended geofence when a plurality of geofences do not exist at the current location of the computing device, which generates a blended geofence of two or more geofences. because it is necessary to In another embodiment, the process may continue at block 1202 in the method 1200 described above with reference to FIG. 12 as the geofence management unit may monitor for geofence traversing notifications from other reporting applications.

지오펜스 관리 유닛이 현재 위치에 복수의 지리적으로 가까운 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1102 = "예"), 도 6 을 참조하여 상술된 방법 (600) 에서의 블록 604 를 참조하여 상술된 바와 같이 지오펜스 관리 유닛은 블록 1104 에서 복수의 지리적으로 가까운 지오펜스들 중 어떤 것이 블렌딩하기에 적합한지를 결정할 수도 있다.When the geofence management unit determines that a plurality of geographically close geofences exist at the current location (ie, determination block 1102 = “Yes”), with reference to block 604 in the method 600 described above with reference to FIG. 6 . As described above, the geofence management unit may determine which of a plurality of geographically nearby geofences is suitable for blending at block 1104 .

결정 블록 1106 에서, 지오펜스 관리 유닛은 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 결합되기에 적절한 적어도 2 개의 지오펜스들이 존재하는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재하지 않는다고 결정할 때 (즉, 결정 블록 1106 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 프로세스는 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있으므로 도 12 를 참조하여 상술된 방법 (1200) 에서의 블록 1202 에서 계속될 수도 있다.At decision block 1106 , the geofence management unit may determine whether there are multiple geofences suitable for blending in the plurality of geographically close geofences. In other words, the geo-fence management unit may determine whether there are at least two geo-fences suitable to be coupled to the blended geo-fence. When the geofence management unit determines that there are no multiple geofences suitable for blending in the plurality of geographically close geofences (ie, determination block 1106 = “No”), the geofence management unit does not blend at block 1304 . It is also possible to transmit non-geo-fence information to the reporting application. The process may continue at block 1202 in the method 1200 described above with reference to FIG. 12 as the geofence management unit may monitor for geofence traversing notifications from other reporting applications.

지오펜스 관리 유닛이 복수의 지리적으로 가까운 지오펜스들에서 블렌딩하기에 적합한 다수의 지오펜스들이 존재한다고 결정할 때 (즉, 결정 블록 1106 = "예"), 지오펜스 관리 유닛은 블록 1108 에서 블렌딩하기에 적합한 다수의 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 예를 들어, 지오펜스 관리 유닛은 양립가능한 지오펜스들의 가중된 평균들에 기초하여 단일 지오펜스를 생성할 수도 있다.When the geofence management unit determines that there are multiple geofences suitable for blending in a plurality of geographically close geofences (ie, determination block 1106 = “Yes”), the geofence management unit selects to blend in block 1108 . Multiple suitable geofences may be combined into a blended geofence. For example, the geofence management unit may generate a single geofence based on weighted averages of compatible geofences.

옵션적 블록 1302 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩하기에 적합한 다수의 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스에 포함된 지오펜스를 갖는 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션을 업데이트할 수도 있다. 일 실시형태에서, 블렌딩된 지오펜스를 다수의 양립가능한 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들에 선제적으로 푸시하는 것에 의해, 지오펜스 관리 유닛은 즉시 이들 애플리케이션들을 인에이블시켜서 블렌딩된 지오펜스를 모니터링하는 것을 시작할 수도 있다. 따라서, 지오펜스 서버는 추후의 시간에 이들 애플리케이션들 각각으로부터 지오펜스 횡단 통지들을 수신한 것에 응답하여 블렌딩된 지오펜스를 이들 지오펜스-인에이블드 애플리케이션들에 전송해야 하는 것을 회피할 수도 있다.At optional block 1302 , the geofence management unit may send the blended geofence to geofence-enabled applications associated with multiple geofences suitable for blending. In one embodiment, the geofence management unit may update each geofence-enabled application on the computing device having a geofence included in the blended geofence. In one embodiment, by preemptively pushing the blended geofence to geofence-enabled applications associated with multiple compatible geofences, the geofence management unit immediately enables these applications to create a blended geofence. You can also start monitoring geofences. Thus, the geofence server may avoid having to send the blended geofence to these geofence-enabled applications in response to receiving geofence traversing notifications from each of these applications at a later time.

결정 블록 1306 에서, 지오펜스 관리 유닛은 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한지 여부를 결정할 수도 있다. 다시 말해, 지오펜스 관리 유닛은 결정 블록 1106 을 참조하여 상술된 바와 같이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한 다수의 지오펜스들에 포함되는지 여부를 결정할 수도 있다.At decision block 1306 , the geofence management unit may determine whether a geofence of the reporting application is suitable for blending. In other words, the geofence management unit may determine whether the geofence of the reporting application is included in a plurality of geofences suitable for blending as described above with reference to decision block 1106 .

지오펜스 관리 유닛이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하지 않다고 결정할 때 (즉, 결정 블록 1306 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합한 다수의 지오펜스들에 포함되지 않을 때 다수의 지오펜스들을 블렌딩하지 않는 것으로 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 리포팅 애플리케이션의 지오펜스들에 대한 업데이트된 지오펜스 정보만을 단지 전송할 수도 있다. 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 1202 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다.When the geofence management unit determines that the geofence of the reporting application is not suitable for blending (ie, determination block 1306 = “No”), the geofence management unit transmits the unblended geofence information to the reporting application in block 1304 . may be In an embodiment, the geofence management unit may determine not to blend the multiple geofences when the geofences of the reporting application are not included in the multiple geofences suitable for blending. In one embodiment, the geofence management unit may only send updated geofence information for geofences of the reporting application. The geofence management unit may execute the process of the embodiment in a continuous loop returning to block 1202 of the method 1200 described above with reference to FIG. 12 , such that the geofence management unit responds to the geofence traversal notification from another reporting application. can also be monitored.

지오펜스 관리 유닛이 리포팅 애플리케이션의 지오펜스가 블렌딩하기에 적합하다고 결정할 때 (즉, 결정 블록 1306 = "예"), 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블록 1208 에서 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다.When the geofence management unit determines that the geofences of the reporting application are suitable for blending (ie, determination block 1306=“Yes”), the geofence management unit determines the geofences blended in block 1208 as described above with reference to FIG. 12 . Fences can also be sent to a reporting application.

지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 1202 로 리턴하는 계속적인 루프에서 실시형태의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다.The geofence management unit may execute the process of the embodiment in a continuous loop returning to block 1202 of the method 1200 described above with reference to FIG. 12 , such that the geofence management unit responds to the geofence traversal notification from another reporting application. can also be monitored.

도 14a 및 도 14b 는 컴퓨팅 디바이스의 현재 위치와 함께 저장된 블렌딩된 지오펜스가 존재할 때 저장된 블렌딩된 지오펜스들을 생성하고 저장된 블렌딩된 지오펜스들을 리포팅 애플리케이션에 전송하기 위해 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛에 의해 구현될 수도 있는 일 실시형태의 방법 (1400) 을 예시한다. 방법 (1400) 의 동작들은 도 12 를 참조하여 상술된 방법 (1200) 의 동작들의 일 실시형태를 구현한다. 따라서, 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 방법 (1200) 의 블록 908 에서 지리적으로 가까운 현재 위치에서의 지오펜스들을 결정한 후에 방법 (1400) 을 수행하는 것을 시작할 수도 있다.14A and 14B illustrate a geofence management unit operating on a computing device to generate stored blended geofences and send the stored blended geofences to a reporting application when there is a stored blended geofence with the current location of the computing device; illustrates an embodiment method 1400 that may be implemented by The operations of method 1400 implement one embodiment of the operations of method 1200 described above with reference to FIG. 12 . Accordingly, the geofence management unit may begin performing the method 1400 after determining the geofences at the current geographically close location at block 908 of the method 1200 described above with reference to FIG. 12 .

도 14a 를 참조하면, 결정 블록 1402 에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되는지 여부를 결정할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은, 이전에 생성된 블렌딩된 지오펜스들을, 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들에 의한 추후 이용을 위해 특정 영역과 연관시킬 수도 있다. 다시 말해, 지오펜스 관리 유닛은 도 7a 및 도 7b 를 참조하여 상술된 바와 같이 컴퓨팅 디바이스 상의 각각의 지오펜스-인에이블드 애플리케이션에 대해 스크래치로부터 블렌딩된 지오펜스를 생성해야 하는 일 없이 동일한 영역에 대한 블렌딩된 지오펜스를 재이용할 수도 있다. 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 1402 = "예"), 지오펜스 관리 유닛은 도 14b 를 참조하여 아래에 설명된 블록 1422 에서의 동작들을 수행할 수도 있다.Referring to FIG. 14A , at decision block 1402 , the geofence management unit may determine whether a current location of the computing device is associated with a stored blended geofence. In an embodiment, the geofence management unit may associate previously created blended geofences with a particular area for later use by geofence-enabled applications on the computing device. In other words, the geofence management unit can generate a geofence blended from scratch for each geofence-enabled application on the computing device as described above with reference to FIGS. 7A and 7B for the same area without having to generate a blended geofence. Blended geofences can also be reused. When the geofence management unit determines that the current location of the computing device is associated with the stored blended geofence (ie, determination block 1402 = “Yes”), the geofence management unit determines at block 1422 described below with reference to FIG. 14B . operations may be performed.

지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관되지 않는다고 결정할 때 (즉, 결정 블록 1402 = "아니오"), 지오펜스 관리 유닛은 도 9a 를 참조하여 상술된 바와 같이 블록 910 에서 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합할 수도 있다. 예를 들어, 지오펜스 관리 유닛은, 지오펜스들을, 지오펜스들의 영역들 중 대부분 또는 전부를 포함하는 블렌딩된 지오펜스에 결합할 수도 있다.When the geofence management unit determines that the current location of the computing device is not associated with the stored blended geofence (ie, determination block 1402 = “No”), the geofence management unit performs block 910 as described above with reference to FIG. 9A . may combine geofences that are geographically close to the current location in the blended geofence. For example, a geofence management unit may combine geofences into a blended geofence that includes most or all of the areas of the geofences.

블록 1406 에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 저장할 수도 있다. 일 실시형태에서, 지오펜스 관리 유닛은 컴퓨팅 디바이스에 포함된 비휘발성 메모리에 블렌딩된 지오펜스를 저장할 수도 있다. 블록 1408 에서, 지오펜스 관리 유닛은 블렌딩된 지오펜스를 컴퓨팅 디바이스의 현재 위치와 연관시킬 수도 있다. 따라서, 결정 블록 1402 를 참조하여 상술된 바와 같이, 지오펜스 관리 유닛은 지오펜스들을 재블렌딩해야 하는 일 없이 장래에 다른 지오펜스-인에이블드 애플리케이션들에 전송하기 위해 컴퓨팅 디바이스의 현재 위치에 대한 저장된 블렌딩된 지오펜스를 재호출하는 것이 가능할 수도 있다.At block 1406 , the geofence management unit may store the blended geofence. In one embodiment, the geofence management unit may store the blended geofence in non-volatile memory included in the computing device. At block 1408 , the geofence management unit may associate the blended geofence with the current location of the computing device. Thus, as described above with reference to decision block 1402 , the geofence management unit stores a stored value of the current location of the computing device for transmission to other geofence-enabled applications in the future without having to re-blend the geofences. It may be possible to recall a blended geofence.

블록 1208 에서, 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송할 수도 있다. 다른 실시형태 (미도시) 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 컴퓨팅 디바이스 상에서 동작하는 각각의 지오펜스-인에이블드 애플리케이션에 전송할 수도 있다. 추가 실시형태 (미도시) 에서, 지오펜스 관리 유닛은, 블렌딩된 지오펜스를, 블렌딩된 지오펜스와 연관된 지오펜스들을 현재 갖는 지오펜스-인에이블드 애플리케이션들에만 단지 전송할 수도 있다.At block 1208 , the geofence management unit may send the blended geofence to the reporting application as described above with reference to FIG. 12 . In another embodiment (not shown), the geofence management unit may send the blended geofence to each geofence-enabled application running on the computing device. In a further embodiment (not shown), the geofence management unit may only send the blended geofence to geofence-enabled applications that currently have geofences associated with the blended geofence.

지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블록 1202 에서의 동작들을 수행하는 것에 의해 계속적인 루프에서 실시형태의 방법 (1200) 의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛은 다른 리포팅 애플리케이션으로부터의 지오펜스 횡단 통지에 대해 모니터링할 수도 있다.The geo-fence management unit may execute the process of the embodiment method 1200 in a continuous loop by performing the operations in block 1202 as described above with reference to FIG. 12 , such that the geo-fence management unit may execute the other reporting application You can also monitor for geofence crossing notifications from

도 14b 를 참조하면, 지오펜스 관리 유닛이 컴퓨팅 디바이스의 현재 위치가 저장된 블렌딩된 지오펜스와 연관된다고 결정할 때 (즉, 결정 블록 1402 = "예"), 지오펜스 관리 유닛은 블록 1422 에서 저장된 블렌딩된 지오펜스와 연관되는 지오펜스-인에이블드 애플리케이션들 및 지오펜스들의 리스트를 생성할 수도 있다. 상술된 바와 같이, 저장된 블렌딩된 지오펜스는 지오펜스-애플리케이션들 및 이들의 각각의 지오펜스들의 특정 결합과 연관될 수도 있다.Referring to FIG. 14B , when the geofence management unit determines that the current location of the computing device is associated with the stored blended geofence (ie, determination block 1402 = “Yes”), the geofence management unit determines at block 1422 the stored blended geofence You may create a list of geofence-enabled applications and geofences associated with the geofence. As noted above, a stored blended geofence may be associated with a specific combination of geofence-applications and their respective geofences.

도 7a 및 도 7b 를 참조하여 상술된 바와 같이, 저장된 블렌딩된 지오펜스가, 지리적으로 가까운 지오펜스들, 및 컴퓨팅 디바이스 상에 현재 존재하는 이들 지리적으로 가까운 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들을 정확히 반영할 때에만, 저장된 블렌딩된 지오펜스가 유용할 수도 있다. 예를 들어, 지오펜스 관리 유닛이 블렌딩된 지오펜스를 저장한 후에 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 및/또는 지오펜스들이 부가, 제거, 또는 변화되어, 그에 의해 저장된 블렌딩된 지오펜스가 쓸모없고 어쩌면 현재 위치에서 지리적으로 가까운 지오펜스들을 잘못 표현하게 된다. 예를 들어, 지오펜스 관리 유닛은 지오펜스-인에이블드 애플리케이션들 X, Y, 및 Z 의 지오펜스들 7, 8, 및 9 각각에 대한 블렌딩된 지오펜스를 생성 및 저장할 수도 있다. 그러나, 컴퓨팅 디바이스의 사용자는 지오펜스-인에이블드 애플리케이션 Y 를 언인스톨하여, 그에 의해 지오펜스-인에이블드 애플리케이션들 X, Y, 및 Z 에 대해 이전에 저장된 블렌딩된 지오펜스가 컴퓨팅 디바이스 상에 존재하는 현재 애플리케이션들 및 지오펜스들에서의 이용에 부적합하게 될 수도 있다.As described above with reference to FIGS. 7A and 7B , a stored blended geofence is geofence-enabled that is associated with geographically close geofences, and those geographically close geofences currently present on the computing device. Only when accurately reflecting applications, a stored blended geofence may be useful. For example, after the geofence management unit stores the blended geofence, geofence-enabled applications and/or geofences on the computing device may be added, removed, or changed such that the stored blended geofence is thereby Useless and possibly misrepresenting geofences that are geographically close to your current location. For example, the geofence management unit may generate and store a blended geofence for each of geofences 7, 8, and 9 of geofence-enabled applications X, Y, and Z. However, the user of the computing device uninstalls the geofence-enabled application Y, whereby the previously stored blended geofence for the geofence-enabled applications X, Y, and Z exists on the computing device. may become unsuitable for use in current applications and geofences.

그에 따라, 결정 블록 1424 에서, 지오펜스 관리 유닛은, 리스트에서의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과, 컴퓨팅 디바이스 상에 현재 존재하는 지오펜스-인에이블드 애플리케이션들 및 지리적으로 가까운 지오펜스들과의 사이에 정확한 매치가 존재하는지 여부를 결정할 수도 있다. 지오펜스 관리 유닛은, 리스트에서의 지오펜스-인에이블드 애플리케이션들을, 도 12 를 참조하여 설명된 방법 (1200) 의 블록 902 에서 식별된 지오펜스-인에이블드 애플리케이션들과 비교하는 것에 의해 이 동작을 수행할 수도 있다. 이와 유사하게, 지오펜스 관리 유닛은, 리스트에서의 지오펜스들을, 도 12 를 참조하여 상술된 방법 (1200) 의 블록 908 의 동작들에서 지리적으로 가까운 것으로 결정된 이들 지오펜스-인에이블드 애플리케이션들과 연관된 지오펜스들과 비교할 수도 있다.Accordingly, at decision block 1424 , the geofence management unit determines the geofence-enabled applications and geofences in the list, the geofence-enabled applications currently present on the computing device, and the geofence-enabled applications that are geographically nearby. It may be determined whether there is an exact match between the geofences. The geofence management unit does this by comparing the geofence-enabled applications in the list to the geofence-enabled applications identified in block 902 of the method 1200 described with reference to FIG. 12 . can also be performed. Similarly, the geofence management unit is configured to combine the geofences in the list with those geofence-enabled applications determined to be geographically close in the operations of block 908 of the method 1200 described above with reference to FIG. 12 . It can also be compared with associated geofences.

지오펜스 관리 유닛이 정확한 매치가 존재하지 않는다고 결정할 때 (즉, 결정 블록 1424 = "아니오"), 지오펜스 관리 유닛은 블록 1304 에서 블렌딩되지 않은 지오펜스 정보를 리포팅 애플리케이션에 전송할 수도 있다. 다시 말해, 리포팅 애플리케이션의 컴퓨팅 디바이스의 현재 위치와 연관된 블렌딩된 지오펜스가 존재하더라도, 리포팅 애플리케이션은 컴퓨팅 디바이스 상의 지오펜스-인에이블드 애플리케이션들 및 지오펜스들과 리스트에 포함된 것들과의 사이에 정확한 매치가 존재하지 않을 때 블렌딩된 지오펜스를 수신하지 못할 수도 있다. 지오펜스 관리 유닛은 도 12 를 참조하여 상술된 바와 같이 블록 1202 에서의 동작들을 수행하는 것에 의해 계속적인 루프에서 실시형태의 방법 (1200) 의 프로세스를 실행할 수도 있어서, 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 지오펜스 관리 유닛이 계속적으로 모니터링한다.When the geofence management unit determines that an exact match does not exist (ie, determination block 1424 = “No”), the geofence management unit may send the unblended geofence information to the reporting application at block 1304 . In other words, even if there is a blended geofence associated with the current location of the computing device of the reporting application, the reporting application is accurate between geofence-enabled applications and geofences on the computing device and those included in the list. You may not receive a blended geofence when no match exists. The geofence management unit may execute the process of the method 1200 of the embodiment in a continuous loop by performing the operations in block 1202 as described above with reference to FIG. 12 , such that the geofence management unit may execute other reporting applications The geo-fence management unit continuously monitors whether a geo-fence crossing notification is received from the

지오펜스 관리 유닛이 정확한 매치가 존재한다고 결정할 때 (즉, 결정 블록 1424 = "예"), 지오펜스 관리 유닛은 블록 1428 에서 저장된 블렌딩된 지오펜스를 리포팅 애플리케이션에 전송하고, 도 12 를 참조하여 상술된 바와 같이 방법 (1200) 의 블록 1202 에서의 동작들을 수행하는 것으로 리턴하여, 지오펜스 관리 유닛이 다른 리포팅 애플리케이션으로부터 지오펜스 횡단 통지를 수신했는지 여부를 지오펜스 관리 유닛이 계속적으로 모니터링하도록 할 수도 있다.When the geofence management unit determines that an exact match exists (ie, determination block 1424 = “Yes”), the geofence management unit sends the stored blended geofence to the reporting application at block 1428 , as detailed with reference to FIG. 12 . Returning to performing the operations at block 1202 of the method 1200 as described above may allow the geofence management unit to continuously monitor whether the geofence management unit has received a geofence traversal notification from another reporting application. .

도 15a 내지 도 15c 는 지오펜스들을 단일의 블렌딩된 지오펜스에 결합하기 위한 다양한 전략들의 예시들이다.15A-15C are illustrations of various strategies for combining geofences into a single blended geofence.

일 실시형태에서, 다수의 지오펜스들로부터 블렌딩된 지오펜스를 생성할 때, 지오펜스 서버 또는 지오펜스 관리 유닛은 가깝게 근접한/오버래핑되는 지오펜스들의 패턴을 분석하고, 효과적인 입상도를 유지하는 것에 의해 (예를 들어, 너무 많은 정밀도를 손실시키지 않는 것에 의해) 지오펜스들의 일반적인 유용성에 크게 영향을 미치는 일 없이 컴퓨팅 디바이스에 대한 작업부하를 밸런싱하는 (즉, 위치-감지 라디오들의 이용 및 서버 통신들의 수를 감소시키는) 블렌딩된 지오펜스를 생성할 수도 있다. 예를 들어, 지오펜스 서버는 도시 사이즈의 거대한 블렌딩된 지오펜스를 생성하지 않을 수도 있는데, 이는 지오펜스 서버가 위치-감지 라디오들의 이용 및/또는 서버 통신들의 수를 감소시킬 것이지만, 위치-기반 서비스들의 정확도가 크게 영향받을 것이기 때문에 거대한 지오펜스 영역은 각각의 애플리케이션에 대해 매우 제한된 효용성을 가질 것이기 때문이다. 따라서, 일 실시형태에서, 지오펜스 서버 및/또는 지오펜스 관리 유닛은 컴퓨팅 디바이스의 작업부하 (예를 들어, 위치-감지 라디오들의 이용 및/또는 서버와의 통신들의 수) 를 블렌딩된 지오펜스의 유용성 (예를 들어, 기능적 위치-기반 서비스들을 용이하게 하는 그의 능력) 과 밸런싱하도록 하는 방법으로 블렌딩된 지오펜스들을 생성할 수도 있다.In one embodiment, when generating a blended geofence from multiple geofences, the geofence server or geofence management unit analyzes the pattern of closely adjacent/overlapping geofences by Balancing the workload on the computing device (ie, use of location-sensing radios and number of server communications) without significantly affecting the general utility of geofences (eg, by not losing too much precision). It is also possible to create a blended geofence that reduces For example, a geofence server may not create a large blended geofence of city size, which would reduce the number of server communications and/or the use of location-sensing radios for the geofence server, but a location-based service This is because a large geofence area will have very limited utility for each application, as their accuracy will be greatly affected. Thus, in one embodiment, the geofence server and/or geofence management unit controls the workload of the computing device (eg, the use of location-sensing radios and/or the number of communications with the server) of the blended geofence. Blended geofences may be created in a way that balances usability (eg, its ability to facilitate functional location-based services).

일 실시형태에서, 컴퓨팅 디바이스 상에서 동작하는 지오펜스 관리 유닛 또는 지오펜스 서버는 3 개의 지오펜스 영역들 (1502, 1504, 1506) 이 동일한 위치에 존재하고 오버래핑되는 것을 결정할 수도 있고, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 과 연관된 위치-기반 서비스들에 과도하게 그리고 부정적으로 영향을 주지 않는 블렌딩된 지오펜스를 생성하기 위해 지오펜스 영역들 (1502, 1504, 1506) 을 어떻게 결합할지를 결정하기 위한 다양한 계산들을 수행할 수도 있다.In one embodiment, a geofence management unit or geofence server operating on the computing device may determine that the three geofence areas 1502 , 1504 , 1506 exist at the same location and overlap, and the geofence server or geofence server The fence management unit is configured to create a blended geofence that does not unduly and negatively affect location-based services associated with the geofence areas 1502 , 1504 , 1506 . ) may be performed various calculations to determine how to combine them.

도 15a 에 예시된 예에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 의 주변들에 기초하여 블렌딩된 지오펜스 (1515) 를 생성하기 위해 지오펜스 영역들 (1502, 1504, 1506) 에 대한 블렌딩 동작들 (1520a) 을 수행할 수도 있다. 일 실시형태에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스들 중에서 실질적인 오버랩이 존재할 때 지오펜스 주변들에 기초하여 블렌딩된 지오펜스 (1515) 를 생성하도록 선정할 수도 있는데, 이는 위치-감지 라디오들의 이용 및/또는 지오펜스 서버와의 통신의 관점에서 컴퓨팅 디바이스의 작업부하를 크게 줄이면서 위치-기반 서비스들에 대한 영향이 아주 조금 영향받을 수도 있기 때문이다.In the example illustrated in FIG. 15A , the geofence server or geofence management unit is configured to generate a blended geofence 1515 based on the perimeters of the geofence areas 1502 , 1504 , 1506 ( Blending operations 1520a may be performed for 1502 , 1504 , 1506 . In an embodiment, the geofence server or geofence management unit may elect to generate a blended geofence 1515 based on geofence perimeters when there is substantial overlap among the geofences, which is a location-sensitive radio This is because the impact on location-based services may be slightly affected while greatly reducing the workload of the computing device in terms of their use and/or communication with the geofence server.

도 15b 에 예시된 다른 예에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 의 영역들의 가중된 평균들에 기초하여 블렌딩된 지오펜스 (1508) (예를 들어, 직사각형) 를 생성하기 위해 지오펜스 영역들 (1502, 1504, 1506) 에 대한 블렌딩 동작들 (1520b) 을 수행할 수도 있다. 이러한 예에서, 블렌딩된 지오펜스 (1508) 는 얼마간의 위치-기반 정확도를 손실시킬 수도 있지만, 가중된 평균들을 취하는 것은 지오펜스 서버에 대해 이루어진 통신들의 수 및/또는 위치-감지 라디오들의 이용을 충분히 감소시킬 수도 있다.In another example illustrated in FIG. 15B , the geofence server or geofence management unit is a geofence 1508 (eg, blended based on weighted averages of the regions of the geofence regions 1502 , 1504 , 1506 ). , a rectangle) may perform blending operations 1520b on the geofence regions 1502 , 1504 , 1506 . In this example, the blended geofence 1508 may lose some location-based accuracy, but taking the weighted averages is sufficient for the number of communications made to the geofence server and/or the use of location-aware radios. may be reduced.

도 15c 에 예시된 또 다른 예에서, 지오펜스 서버 또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 에 대한 블렌딩 동작들 (1520c) 을 수행할 수도 있고, 지오펜스 영역들 (1502, 1504, 1506) 이 약간 오버래핑되더라도 블렌딩된 지오펜스를 생성하지 않는 것으로 결정할 수도 있다. 이 예에서, 블렌딩된 지오펜스는 지오펜스 영역들 (1502, 1504, 1506) 의 영역들을 충분히 커버하도록 지오펜스 영역들 (1502, 1504, 1506) 보다 상당히 더 클 필요가 있을 것이다. 그에 따라, 지오펜스 영역들 (1502, 1504, 1506) 에 대한 임의의 블렌딩된 지오펜스는 위치-기반 서비스들의 정확도를 크게 감소시킬 것이다. 다시 말해, 지오펜스 서버 및/또는 지오펜스 관리 유닛은 지오펜스 영역들 (1502, 1504, 1506) 이 블렌딩하기에 부적합하다고 결정할 수도 있다.In another example illustrated in FIG. 15C , a geofence server or geofence management unit may perform blending operations 1520c on geofence areas 1502 , 1504 , 1506 , and geofence areas 1502 . , 1504, 1506) may decide not to create a blended geofence even if they slightly overlap. In this example, the blended geofence would need to be significantly larger than the geofence regions 1502 , 1504 , 1506 to sufficiently cover the regions of the geofence regions 1502 , 1504 , 1506 . As such, any blended geofence for geofence areas 1502 , 1504 , 1506 will greatly reduce the accuracy of location-based services. In other words, the geofence server and/or geofence management unit may determine that the geofence areas 1502 , 1504 , 1506 are unsuitable for blending.

다양한 실시형태들은 다양한 컴퓨팅 디바이스들 중 임의의 컴퓨팅 디바이스에서 구현될 수도 있고, 그 예가 도 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) 을 포함할 수도 있다.The various embodiments may be implemented in any of a variety of computing devices, an example of which is illustrated in FIG. 16 . For example, the computing device 1600 may include a processor 1602 coupled to an internal memory 1604 . Internal memory 1604 may be volatile or non-volatile memory, and may also be secure and/or encrypted memory, or non-secure and/or non-encrypted memory, or any combination thereof. The processor 1602 may also be coupled to a touch screen display 1606 , such as a resistive-sensitive touch screen, a capacitive-sensitive touch screen, an infrared sensitive touch screen, or the like. Additionally, the display of the computing device 1600 need not have touch screen capability. Additionally, the computing device 1600 has one or more antennas 1608 for transmitting and receiving electromagnetic radiation that may be coupled to a cellular telephone transceiver 1616 and/or a wireless data link coupled to the processor 1602 . may be Computing device 1600 may also include physical buttons 1612a and 1612b for receiving user inputs. The computing device 1600 may also include a power button 1618 for turning the computing device 1600 on and off. The computing device 1600 may optionally have a GPS transceiver 1620 for determining a geographic location of the computing device. The computing device 1600 may be powered by a battery 1622 coupled to various electronic components. The computing device 1600 may also include speakers 1614 for providing audio outputs.

실시형태의 방법들의 부분들은, 이 실시형태의 방법들을 실행하는 동안 컴퓨팅 디바이스 프로세서에 의해 액세스될 수도 있는 서버에서 정상 동작 거동들의 데이터베이스들을 유지하는 것과 같은 프로세싱의 일부가 발생는 클라이언트-서버 아키텍처에서 달성될 수도 있다. 이러한 실시형태들은 도 17 에 예시된 서버 (1700) 와 같은 다양한 상업적으로 입수가능한 서버 컴퓨팅 디바이스들 중 임의의 서버 컴퓨팅 디바이스 상에서 구현될 수도 있다. 이러한 서버 (1700) 는 통상적으로, 디스크 드라이브 (1703) 와 같은 대용량 비휘발성 메모리 및 휘발성 메모리 (1702) 에 커플링된 프로세서 (1701) 를 포함한다. 서버 (1700) 는 또한 프로세서 (1701) 에 커플링된 플로피 디스크 드라이브, 콤팩트 디스크 (CD) 또는 DVD 디스크 드라이브 (1704) 를 포함할 수도 있다. 서버 (1700) 는 또한 다른 브로드캐스트 시스템 컴퓨터들 및 서버들에 커플링된 로컬 영역 네트워크와 같은 네트워크 (1706) 와의 데이터 커넥션들을 확립하기 위해 프로세서 (1701) 에 커플링된 네트워크 액세스 포트들 (1705) 을 포함할 수도 있다. 프로세서 (1701) 는 상술된 다양한 실시형태들의 기능들을 포함하는, 다양한 기능들을 수행하도록 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 임의의 프로그래밍가능 마이크로프로세서, 마이크로컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 통상적으로, 소프트웨어 애플리케이션들은 프로세서 (1701) 에 액세스되어 로딩되기 전에 내부 메모리 (1702, 1703) 에 저장될 수도 있다. 프로세서 (1701) 는 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수도 있다.Portions of the methods of an embodiment may be accomplished in a client-server architecture in which some of the processing, such as maintaining databases of normal operating behaviors at a server that may be accessed by a computing device processor while executing the methods of this embodiment, occurs. may be Such embodiments may be implemented on any of a variety of commercially available server computing devices, such as server 1700 illustrated in FIG. 17 . Such a server 1700 typically includes a processor 1701 coupled to the volatile memory 1702 and a large capacity non-volatile memory, such as a disk drive 1703 . The server 1700 may also include a floppy disk drive, compact disk (CD), or DVD disk drive 1704 coupled to the processor 1701 . The server 1700 also has network access ports 1705 coupled to the processor 1701 to establish data connections with a network 1706 , such as a local area network coupled to other broadcast system computers and servers. may include The processor 1701 may be any programmable microprocessor, microcomputer or multiprocessor chip or chips that can be configured by software instructions (applications) to perform various functions, including those of the various embodiments described above. may be Typically, software applications may be stored in internal memory 1702 , 1703 before being accessed and loaded by processor 1701 . The processor 1701 may include internal memory sufficient to store application software instructions.

전술한 방법 설명들 및 프로세스 플로우 다이어그램들은 단지 예시적인 예들로서 제공된 것일 뿐이고, 다양한 실시형태들의 단계들이 제시된 순서로 수행되어야 함을 요구하거나 암시하려고 의도된 것이 아니다. 당업자에 의해 인식되는 바와 같이, 전술한 실시형태들에서의 단계들의 순서는 임의의 순서로 수행될 수도 있다. "그 후", "그 후에", "그 다음에" 등과 같은 단어들은 단계들의 순서를 제한하려고 의도된 것이 아니다; 이러한 단어들은 단지 방법들의 설명을 통해 독자를 가이드하기 위해 사용된다. 추가로, 예를 들어, "a", "an" 또는 "the" 와 같은 관사들을 사용한, 청구항 엘리먼트들에 대한 단수로의 임의의 언급은 그 엘리먼트를 단수로 제한하는 것으로 해석되어서는 안된다.The foregoing method descriptions and process flow diagrams are provided as illustrative examples only, and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by those skilled in the art, the order of steps in the embodiments described above may be performed in any order. Words such as "then", "after", "then", etc. are not intended to limit the order of steps; These words are only used to guide the reader through the description of the methods. Additionally, any reference to claim elements in the singular, eg, using articles such as "a", "an" or "the", shall not be construed as limiting the element to the singular.

본 출원에서 사용되는 바와 같이, 용어들 "컴포넌트", "유닛", "제어기", "시스템", "엔진", "생성기", "관리자" 등은 특정 동작들 또는 기능들을 수행하도록 구성되는 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어와 같은, 그러나 이들로 제한되지 않는, 컴퓨터 관련 엔티티를 포함하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행하는 프로세스, 프로세서, 오브젝트, 실행가능물, 실행 스레드, 프로그램 및/또는 컴퓨터일 수도 있지만 이들로 제한되지 않는다. 예시에 의해, 프로그래밍 컴퓨팅 디바이스 상에서 실행하는 애플리케이션과 프로그래밍 컴퓨팅 디바이스 양쪽은 컴포넌트라고 지칭될 수도 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수도 있으며 컴포넌트는 하나의 프로세서 또는 코어 상에서 로컬화되거나 및/또는 2 개 이상의 프로세서들 또는 코어들 사이에서 분산될 수도 있다. 또한, 이들 컴포넌트들은 다양한 명령들 및/또는 데이터 구조들을 저장하고 있는 다양한 비일시적 컴퓨터 판독가능 매체들로부터 실행할 수도 있다. 컴포넌트들은 로컬 및/또는 원격 프로세스들, 함수 또는 프로시저 호출들, 전자 신호들, 데이터 패킷들, 메모리 판독/기입들, 및 다른 알려진 네트워크, 컴퓨터, 프로세서, 및/또는 프로세스 관련된 통신 방법론들을 통해 통신할 수도 있다.As used herein, the terms “component,” “unit,” “controller,” “system,” “engine,” “generator,” “manager,” etc. refer to hardware configured to perform particular operations or functions. It is intended to include computer-related entities such as, but not limited to, firmware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application executing on a programming computing device and a programming computing device may be referred to as a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one processor or core and/or distributed between two or more processors or cores. Additionally, these components may execute from various non-transitory computer-readable media having various stored thereon instructions and/or data structures. Components communicate via local and/or remote processes, function or procedure calls, electronic signals, data packets, memory reads/writes, and other known network, computer, processor, and/or process-related communication methodologies. You may.

본 명세서에 개시된 실시형태들과 관련되어 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들 양쪽의 조합들로서 구현될 수도 있다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들을 그들의 기능성 관점에서 일반적으로 상술되었다. 이러한 기능성이 하드웨어로서 또는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과되는 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자들은 각각의 특정 애플리케이션에 대한 다양한 방법들로 설명된 기능성을 구현할 수도 있지만, 이러한 구현 판정들은 본 발명의 범위로부터의 벗어남을 야기시키는 것으로 해석되어서는 안된다.The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

본 명세서에 개시된 실시형태들과 관련되어 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들, 및 회로들을 구현하기 위해 이용된 하드웨어는, 본 명세서에서 설명된 기능들을 수행하도록 설계된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 이들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 멀티프로세서일 수도 있지만, 대안적으로는, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예를 들어, DSP 및 멀티프로세서의 조합, 복수의 멀티프로세서들, DSP 코어와 협력하는 하나 이상의 멀티프로세서들, 또는 임의의 다른 이러한 구성으로도 구현될 수도 있다. 대안적으로, 일부 단계들 또는 방법들은 주어진 기능에 특정된 회로부에 의해 수행될 수도 있다.The hardware used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the embodiments disclosed herein includes a general purpose processor designed to perform the functions described herein, a digital be implemented or performed in a signal processor (DSP), application specific integrated circuit (ASIC), field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof may be A general purpose processor may be a multiprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a multiprocessor, a plurality of multiprocessors, one or more multiprocessors in cooperation with a DSP core, or any other such configuration. Alternatively, some steps or methods may be performed by circuitry specific to a given function.

하나 이상의 예시적인 실시형태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령들 또는 코드로서 비일시적 컴퓨터 판독가능 매체 또는 비일시적 프로세서 판독가능 매체 상에 저장될 수도 있다. 본 명세서에 개시된 방법 또는 알고리즘의 단계들은, 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체 상에 상주할 수도 있는 프로세서 실행가능 소프트웨어 모듈에서 구현될 수도 있다. 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수도 있는 임의의 저장 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 매체들은 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 컴퓨팅 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 이용될 수도 있으며 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체들을 포함할 수 있다. 디스크 (disk) 및 디스크 (disc) 는, 본 명세서에서 사용되는 바와 같이, 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서 디스크 (disk) 들은 데이터를 자기적으로 보통 재생하지만, 디스크 (disc) 들은 레이저로 데이터를 광학적으로 재생한다. 상기의 조합들도 또한 비일시적 컴퓨터 판독가능 및 프로세서 판독가능 매체들의 범위 내에 포함된다. 부가적으로, 방법 또는 알고리즘의 동작들은 컴퓨터 프로그램 제품에 포함될 수도 있는 비일시적 프로세서 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상의 코드들 및/또는 명령들의 하나 또는 임의의 조합 또는 세트로서 상주할 수도 있다.In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable medium or a non-transitory processor-readable medium. The steps of a method or algorithm disclosed herein may be implemented in a processor-executable software module, which may reside on a non-transitory computer-readable or processor-readable storage medium. Non-transitory computer-readable or processor-readable storage media may be any storage media that may be accessed by a computer or processor. By way of example, and not limitation, such non-transitory computer-readable or processor-readable media may include RAM, ROM, EEPROM, flash memory, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage computing devices, or instructions or any other media that may be used to store desired program code in the form of data structures and that may be accessed by a computer. Disc and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disc and Blu-ray disc, wherein the disc Disks normally reproduce data magnetically, but discs optically reproduce data with a laser. Combinations of the above are also included within the scope of non-transitory computer-readable and processor-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory processor-readable medium and/or computer-readable medium, which may be included in a computer program product. .

개시된 실시형태들의 이전 설명은 당업자가 본 발명을 제조하거나 이용하는 것을 가능하게 하도록 제공된다. 이들 실시형태들에 대한 다양한 변경들은 당업자들에게 쉽게 명백할 것이며, 본 명세서에 정의된 일반적 원리들은 본 발명의 사상 또는 범위로부터 벗어남이 없이 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 본 명세서에 보여진 실시형태들로 제한되도록 의도된 것이 아니라, 본 명세서에 개시된 원리들과 신규한 피처들 및 다음의 청구항들에 부합하는 가장 넓은 범위를 부여받게 하려는 것이다.The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Accordingly, the present invention is not intended to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein and the following claims.

Claims (29)

컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션 (geofence-enabled application) 들을 관리하는 방법으로서,
상기 컴퓨팅 디바이스 상에서 실행하는 상이한 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 단계;
식별된 상기 지오펜스들이 블렌딩된 지오펜스 (blended geofence) 로 결합하기 위해 양립가능한 지오펜스 타입들인지 여부를 결정하기 위해 상기 상이한 지오펜스-인에이블드 애플리케이션들과 연관되는 상기 식별된 지오펜스들의 메타데이터를 비교하는 단계;
상기 식별된 지오펜스들이 상기 블렌딩된 지오펜스로 결합하기 위해 양립가능한 지오펜스 타입들이라는 결정에 응답하여 함께 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 단계; 및
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계로서, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는 상기 지오펜스-인에이블드 애플리케이션들과 연관된 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스로 대체하는 단계를 포함하는, 상기 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계
를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
A method for managing geofence-enabled applications running on a computing device, comprising:
identifying geofences that are associated with and are geographically close to different geofence-enabled applications executing on the computing device;
Metadata of the identified geofences associated with the different geofence-enabled applications to determine whether the identified geofences are compatible geofence types to combine into a blended geofence comparing them;
combining the identified geofences geographically close together to the blended geofence in response to determining that the identified geofences are compatible geofence types to combine into the blended geofence; and
enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is to be traversed, when the blended geofence is to be traversed; Enabling each geofence-enabled application associated with a geofence to notify comprises replacing the identified geofences associated with the geofence-enabled applications with the blended geofence , enabling each of the geofence-enabled applications;
A method for managing geofence-enabled applications running on a computing device, comprising:
제 1 항에 있어서,
상기 함께 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 단계를 더 포함하고,
상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 블렌딩되도록 허용되고 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
The method of claim 1,
further comprising determining whether each of the identified geofences that are geographically close together are allowed to be blended by an associated geofence-enabled application;
On a computing device, combining the identified geofences that are geographically close together to a blended geofence comprises combining the identified geofences that are allowed to be blended and are geographically close together to a blended geofence. How to manage running geofence-enabled applications.
제 1 항에 있어서,
상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 지오펜스 서버에서, 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하고,
상기 방법은, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하는 단계를 더 포함하고,
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는,
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 단계로서, 상기 컴퓨팅 디바이스가, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 단계; 및
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여 블렌딩되지 않은 지오펜스 정보를 상기 컴퓨팅 디바이스에 전송하는 단계
를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
The method of claim 1,
Combining the identified geofences that are geographically close together to a blended geofence may include, at a geofence server, geofences associated with the geofence-enabled applications and geographically close together to a blended geofence. comprising the step of combining,
The method includes geofence-enabled applications in a list of geofence-enabled applications executing on the computing device, and geofence-enabled associated with geofences included in the blended geofence. determining whether an exact match exists between the applications;
Enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed includes:
There is an exact match between geofence-enabled applications in the list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. sending the blended geofence to the computing device, in response to determining that the geofence is associated with a geofence included in the blended geofence and executing on the computing device; sending the blended geofence to the computing device, providing the blended geofence to an enabled application; and
There is an exact match between geofence-enabled applications in the list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. sending unblended geofence information to the computing device in response to a determination not to do so.
A method for managing geofence-enabled applications running on a computing device, comprising:
제 1 항에 있어서,
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는,
지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 단계로서, 상기 지오펜스 관리 유닛은 상기 컴퓨팅 디바이스 상에서 동작하는 프록시 서버 애플리케이션인, 상기 지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 단계;
상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 지오펜스 관리 유닛으로 상기 블렌딩된 지오펜스가 횡단되었는지 여부를 결정하는 단계; 및
상기 블렌딩된 지오펜스가 횡단되었다는 결정에 응답하여 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 각각에게 상기 지오펜스 관리 유닛으로 통지하는 단계
를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
The method of claim 1,
Enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed includes:
receiving the blended geofence from a geofence server to a geofence management unit, wherein the geofence management unit receives the blended geofence from the geofence server, which is a proxy server application running on the computing device. Receiving to the geo-fence management unit;
determining whether the blended geofence has been traversed with the geofence management unit instead of each geofence-enabled application associated with a geofence included in the blended geofence; and
notifying each of geofence-enabled applications associated with a geofence included in the blended geofence to the geofence management unit in response to determining that the blended geofence has been traversed;
A method for managing geofence-enabled applications running on a computing device, comprising:
제 1 항에 있어서,
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는,
상기 컴퓨팅 디바이스의 현재 위치를 결정하는 단계;
상기 컴퓨팅 디바이스가 상기 블렌딩된 지오펜스를 횡단하였는지 여부를 결정하는 단계; 및
상기 블렌딩된 지오펜스가 횡단될 때를 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 통지하는 단계
를 포함하고,
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 단계는, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 단계를 포함하고;
상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
The method of claim 1,
Enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed includes:
determining a current location of the computing device;
determining whether the computing device has traversed the blended geofence; and
notifying each geofence-enabled application associated with a geofence included in the blended geofence when the blended geofence is traversed;
including,
Identifying geofences that are associated with and are geographically close to geofence-enabled applications running on the computing device may include: identifying geofences that are geographically close to the current location;
wherein combining the identified geofences that are geographically close together to a blended geofence comprises combining the identified geofences that are geographically close to the current location into a blended geofence. How to manage geofence-enabled applications that
제 5 항에 있어서,
상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 블렌딩된 지오펜스가 횡단될 때를 지오펜스 서버에 통지하는 단계를 더 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
6. The method of claim 5,
and notifying a geofence server when the blended geofence is traversed on behalf of each geofence-enabled application associated with a geofence included in the blended geofence. How to manage geofence-enabled applications.
제 5 항에 있어서,
상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 지오펜스 서버에서, 상기 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하고,
상기 컴퓨팅 디바이스의 현재 위치를 결정하는 단계는, 상기 지오펜스 서버에서, 상기 컴퓨팅 디바이스로부터 상기 컴퓨팅 디바이스의 현재 위치를 메시지로 수신하는 단계를 포함하고;
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 단계는,
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 컴퓨팅 디바이스로부터 상기 지오펜스 서버에서 수신하는 단계; 및
리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 수신된 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 단계
를 포함하고; 그리고
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 단계는, 상기 블렌딩된 지오펜스를 상기 지오펜스 서버로부터 상기 컴퓨팅 디바이스로 전송하는 단계를 포함하고,
상기 컴퓨팅 디바이스는, 상기 블렌딩된 지오펜스에 포함된 지오펜스과 연관된 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
6. The method of claim 5,
Combining the identified geofences geographically close to the current location to the blended geofence comprises, at a geofence server, combining geofences geographically close to the current location to the blended geofence;
The determining of the current location of the computing device includes, at the geo-fence server, receiving the current location of the computing device from the computing device as a message;
identifying geofences that are associated with geofence-enabled applications running on the computing device and are geographically close to the current location,
receiving a list of geofence-enabled applications executing on the computing device from the computing device at the geofence server; and
identifying geofences associated with the listed geofence-enabled applications and geographically close to the received current location of the computing device;
comprising; And
Enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is to be traversed includes: transferring the blended geofence to the geofence server transmitting to the computing device from
The computing device provides the blended geo-fence to each geo-fence-enabled application associated with a geo-fence included in the blended geo-fence. Managing geo-fence-enabled applications executing on the computing device. Way.
제 7 항에 있어서,
상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 단계를 더 포함하고,
상기 지오펜스 서버에서, 상기 현재 위치에 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계는, 블렌딩되도록 허용되고 상기 현재 위치에 지리적으로 가까운 이들 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 단계를 포함하는, 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들을 관리하는 방법.
8. The method of claim 7,
determining whether each of the identified geofences that are geographically close to the current location are allowed to be blended by an associated geofence-enabled application;
In the geofence server, combining geofences geographically close to the current location to a blended geofence comprises: combining these identified geofences that are allowed to be blended and are geographically close to the current location into the blended geofence A method for managing geofence-enabled applications running on a computing device, comprising the steps of:
컴퓨팅 디바이스로서,
메모리;
트랜시버; 및
상기 메모리 및 상기 트랜시버에 커플링된 프로세서
를 포함하고,
상기 프로세서는,
상기 컴퓨팅 디바이스 상에서 실행하는 상이한 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하고;
식별된 상기 지오펜스들이 블렌딩된 지오펜스로 결합하기 위해 양립가능한 지오펜스 타입들인지 여부를 결정하기 위해 상기 상이한 지오펜스-인에이블드 애플리케이션들과 연관되는 상기 식별된 지오펜스들의 메타데이터를 비교하고;
상기 식별된 지오펜스들이 상기 블렌딩된 지오펜스로 결합하기 위해 양립가능한 지오펜스 타입들이라는 결정에 응답하여 함께 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하며; 그리고
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것으로서, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것은 상기 지오펜스-인에이블드 애플리케이션들과 연관된 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스로 대체하는 것을 포함하는, 상기 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키도록
프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
A computing device comprising:
Memory;
transceiver; and
a processor coupled to the memory and the transceiver
including,
The processor is
identify geofences that are geographically close together and associated with different geofence-enabled applications executing on the computing device;
compare metadata of the identified geofences associated with the different geofence-enabled applications to determine whether the identified geofences are compatible geofence types to combine into a blended geofence;
combine the identified geofences geographically close together to the blended geofence in response to determining that the identified geofences are compatible geofence types for combining into the blended geofence; And
enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed, to notify when the blended geofence is to be traversed; Enabling a respective geofence-enabled application associated with a geo-fence to prevent each of the geofences comprises replacing the identified geofences associated with the geofence-enabled applications with the blended geofence. to enable the geofence-enabled application of
A computing device configured with processor-executable instructions.
제 9 항에 있어서,
상기 프로세서는 또한, 상기 함께 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하도록 프로세서 실행가능 명령들로 구성되고;
상기 프로세서는 또한, 블렌딩되도록 허용되고 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것에 의해, 상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
10. The method of claim 9,
the processor is further configured with processor-executable instructions to determine whether each of the identified geofences that are geographically close together are allowed to be blended by an associated geofence-enabled application;
The processor is also processor executable to combine the identified geofences that are allowed to be blended and are geographically close together to a blended geofence, thereby combining the identified geofences that are geographically close together to a blended geofence. A computing device configured with instructions.
제 9 항에 있어서,
상기 프로세서는 또한, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하도록 프로세서 실행가능 명령들로 구성되고;
상기 프로세서는 또한, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을,
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는 것; 및
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 블렌딩되지 않은 지오펜스 정보를 제공하는 것
에 의해 인에이블시키도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
10. The method of claim 9,
The processor is further configured to: enable geofence-enabled applications in the list of geofence-enabled applications executing on the computing device, and geofence-enabled associated with geofences included in the blended geofence. processor-executable instructions to determine whether there is an exact match between the program and the application;
The processor is further configured to: each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed;
There is an exact match between geofence-enabled applications in the list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. providing the blended geofence to each geofence-enabled application executing on the computing device and associated with a geofence included in the blended geofence; and
There is an exact match between geofence-enabled applications in the list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. in response to a determination not to, provide unblended geofence information to each geofence-enabled application executing on the computing device and associated with a geofence included in the blended geofence.
A computing device configured with processor-executable instructions to enable by
제 9 항에 있어서,
상기 프로세서는 또한, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는 것을 포함하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
10. The method of claim 9,
The processor is further configured to enable each geofence-enabled application associated with a geofence included in the blended geofence to notify the blended geofence when traversing the blended geofence. and providing the blended geofence to each geofence-enabled application associated with an included geofence.
제 9 항에 있어서,
상기 프로세서는 또한, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을,
지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 것으로서, 상기 지오펜스 관리 유닛은 상기 컴퓨팅 디바이스 상에서 동작하는 프록시 서버 애플리케이션인, 상기 지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 것;
상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 지오펜스 관리 유닛으로 상기 블렌딩된 지오펜스가 횡단되었는지 여부를 결정하는 것; 및
상기 블렌딩된 지오펜스가 횡단되었다는 결정에 응답하여 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 각각에게 상기 지오펜스 관리 유닛으로 통지하는 것
에 의해 인에이블시키도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
10. The method of claim 9,
The processor is further configured to: each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed;
receiving the blended geofence from a geofence server to a geofence management unit, wherein the geofence management unit is a proxy server application running on the computing device. receiving to the fence management unit;
determining whether the blended geofence has been traversed to the geofence management unit on behalf of each geofence-enabled application associated with a geofence included in the blended geofence; and
notifying each of geofence-enabled applications associated with a geofence included in the blended geofence to the geofence management unit in response to determining that the blended geofence has been traversed;
A computing device configured with processor-executable instructions to enable by
제 9 항에 있어서,
상기 프로세서는 또한,
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을,
상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것;
상기 컴퓨팅 디바이스가 상기 블렌딩된 지오펜스를 횡단하였는지 여부를 결정하는 것; 및
상기 블렌딩된 지오펜스가 횡단될 때를 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 통지하는 것
에 의해 인에이블시키고;
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것이, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것을 포함하며; 그리고
상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록
프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
10. The method of claim 9,
The processor is also
each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed;
determining a current location of the computing device;
determining whether the computing device has traversed the blended geofence; and
notifying each geofence-enabled application associated with a geofence included in the blended geofence when the blended geofence is traversed;
enabled by;
Identifying geofences that are geographically close together and associated with geofence-enabled applications executing on the computing device is associated with geofence-enabled applications executing on the computing device and is associated with the current state of the computing device. identifying geofences that are geographically close to the location; And
so that combining the identified geofences that are geographically close together to a blended geofence includes combining the identified geofences that are geographically close to the current location into a blended geofence
A computing device configured with processor-executable instructions.
제 14 항에 있어서,
상기 프로세서는, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 블렌딩된 지오펜스가 횡단될 때를 지오펜스 서버에 통지하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
15. The method of claim 14,
the processor is configured with processor-executable instructions to notify a geofence server when the blended geofence is traversed on behalf of each geofence-enabled application associated with a geofence included in the blended geofence. being a computing device.
제 14 항에 있어서,
상기 프로세서는 또한, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하도록 프로세서 실행가능 명령들로 구성되고;
상기 프로세서는 또한, 블렌딩되도록 허용되고 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것에 의해 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하도록 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스.
15. The method of claim 14,
the processor is further configured with processor-executable instructions to determine whether each of the identified geofences geographically close to the current location are allowed to be blended by an associated geofence-enabled application;
The processor is further configured to combine the identified geofences geographically close to the current location to the blended geofences by combining the identified geofences that are allowed to be blended and are geographically close to the current location into the blended geofences. A computing device configured with processor-executable instructions to couple to.
지오펜스 서버로서,
동작들을 수행하도록 서버 실행가능 명령들로 구성된 서버 프로세서를 포함하고,
상기 동작들은,
컴퓨팅 디바이스 상에서 실행하는 상이한 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것;
식별된 상기 지오펜스들이 블렌딩된 지오펜스로 결합하기 위해 양립가능한 지오펜스 타입들인지 여부를 결정하기 위해 상기 상이한 지오펜스-인에이블드 애플리케이션들과 연관되는 상기 식별된 지오펜스들의 메타데이터를 비교하는 것;
상기 식별된 지오펜스들이 상기 블렌딩된 지오펜스로 결합하기 위해 양립가능한 지오펜스 타입들이라는 결정에 응답하여 함께 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것; 및
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것으로서, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것은 상기 지오펜스-인에이블드 애플리케이션들과 연관된 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스로 대체하는 것을 포함하는, 상기 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것
을 포함하는, 지오펜스 서버.
As a geofence server,
a server processor configured with server executable instructions to perform operations;
The actions are
identifying geofences that are geographically close together and associated with different geofence-enabled applications executing on the computing device;
comparing the metadata of the identified geofences associated with the different geofence-enabled applications to determine whether the identified geofences are compatible geofence types to combine into a blended geofence ;
combining the identified geofences geographically close together to the blended geofence in response to determining that the identified geofences are compatible geofence types to combine into the blended geofence; and
enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed, to notify when the blended geofence is traversed; Enabling a respective geofence-enabled application associated with a geo-fence to prevent each of the geofences comprises replacing the identified geofences associated with the geofence-enabled applications with the blended geofence. to enable the geofence-enabled application of
Including, geofence server.
제 17 항에 있어서,
상기 서버 프로세서는, 상기 함께 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
상기 서버 프로세서는, 상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것이, 블렌딩되도록 허용되고 함께 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
18. The method of claim 17,
The server processor is configured to: execute server-executable instructions to perform operations further comprising: determining whether each of the identified geofences that are geographically close together are allowed to be blended by an associated geofence-enabled application. composed;
the server processor, wherein combining the identified geofences that are geographically close together to the blended geofence includes combining the identified geofences that are geographically close together that are allowed to be blended to the blended geofence A geofence server, configured with server executable instructions to perform operations that cause
제 17 항에 있어서,
상기 서버 프로세서는, 상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
상기 서버 프로세서는, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되며;
상기 서버 프로세서는, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것으로서, 상기 컴퓨팅 디바이스가, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관되고 상기 컴퓨팅 디바이스 상에서 실행하는 각각의 지오펜스-인에이블드 애플리케이션에 상기 블렌딩된 지오펜스를 제공하는, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것; 및
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여 블렌딩되지 않은 지오펜스 정보를 상기 컴퓨팅 디바이스에 전송하는 것
을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
18. The method of claim 17,
The server processor is configured to: combine the identified geofences that are geographically close together to a blended geofence is associated with the geofence-enabled applications and combine geofences that are geographically close together into a blended geofence. configured with server executable instructions to perform operations to include;
The server processor is configured to: geofence-enabled applications in a list of geofence-enabled applications executing on the computing device, and geofence-enabled associated with geofences included in the blended geofence. server-executable instructions to perform operations further comprising determining whether an exact match exists between the de-applications;
wherein the server processor enables each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed;
There is an exact match between geofence-enabled applications in the list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. in response to a determination to do so, send the blended geofence to the computing device, each geofence-in associated with a geofence included in the blended geofence and executing on the computing device. sending the blended geofence to the computing device, providing the blended geofence to an enabled application; and
There is an exact match between geofence-enabled applications in the list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. sending unblended geofence information to the computing device in response to a determination not to do so.
A geofence server configured with server executable instructions to perform operations that cause
제 17 항에 있어서,
상기 서버 프로세서는, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것;
상기 컴퓨팅 디바이스가 상기 블렌딩된 지오펜스를 횡단하였는지 여부를 결정하는 것; 및
상기 블렌딩된 지오펜스가 횡단될 때를 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션에 통지하는 것
을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
상기 서버 프로세서는,
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것이, 상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것을 포함하고;
상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록
하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
18. The method of claim 17,
wherein the server processor enables each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed;
determining a current location of the computing device;
determining whether the computing device has traversed the blended geofence; and
notifying each geofence-enabled application associated with a geofence included in the blended geofence when the blended geofence is traversed;
configured with server executable instructions to perform operations to include;
The server processor,
Identifying geofences that are geographically close together and associated with geofence-enabled applications executing on the computing device is associated with geofence-enabled applications executing on the computing device and is associated with the current state of the computing device. identifying geofences that are geographically close to the location;
so that combining the identified geofences that are geographically close together to a blended geofence includes combining the identified geofences that are geographically close to the current location into a blended geofence
A geofence server configured with server-executable instructions to perform operations to:
제 20 항에 있어서,
상기 서버 프로세서는,
상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것이, 상기 컴퓨팅 디바이스로부터 상기 컴퓨팅 디바이스의 현재 위치를 메시지로 수신하는 것을 포함하고;
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것이,
상기 컴퓨팅 디바이스 상에서 실행하는 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 컴퓨팅 디바이스로부터 수신하는 것; 및
리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 수신된 상기 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것
을 포함하고; 그리고
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것을 포함하도록
하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
21. The method of claim 20,
The server processor,
determining the current location of the computing device includes receiving the current location of the computing device in a message from the computing device;
identifying geofences that are associated with geofence-enabled applications executing on the computing device and are geographically close to the current location;
receiving from the computing device a list of geofence-enabled applications executing on the computing device; and
identifying geofences that are associated with the listed geofence-enabled applications and are geographically close to the received current location of the computing device.
comprising; And
Enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed sends the blended geofence to the computing device. to include doing
A geofence server configured with server-executable instructions to perform operations to:
제 21 항에 있어서,
상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것이, 블렌딩되도록 허용되고 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 지오펜스 서버.
22. The method of claim 21,
the server processor is configured to: determine whether each of the identified geofences that are geographically close to the current location are allowed to be blended by an associated geofence-enabled application. composed of;
The server processor is configured to combine the identified geofences that are geographically close to the current location to the blended geofence, the blended geofences that are allowed to be blended and are geographically close to the current location. A geofence server configured with server executable instructions to perform operations that cause the server to include binding to.
시스템으로서,
서버 프로세서를 포함하는 지오펜스 서버; 및
컴퓨팅 디바이스
를 포함하고,
상기 컴퓨팅 디바이스는,
메모리;
상기 지오펜스 서버에 커플링된 네트워크와 통신하도록 구성된 트랜시버; 및
상기 메모리 및 상기 트랜시버에 커플링된 컴퓨팅 디바이스 프로세서
를 포함하고,
상기 컴퓨팅 디바이스 프로세서는,
상기 컴퓨팅 디바이스 상에서 실행하는 상이한 지오펜스-인에이블드 애플리케이션들을 식별하는 것; 및
식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 지오펜스 서버에 전송하는 것
을 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되고;
상기 서버 프로세서는,
식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트를 상기 컴퓨팅 디바이스로부터 수신하는 것;
리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것;
식별된 상기 지오펜스들이 블렌딩된 지오펜스로 결합하기 위해 양립가능한 지오펜스 타입들인지 여부를 결정하기 위해 상기 리스팅된 지오펜스-인에이블드 애플리케이션들과 연관되는 상기 식별된 지오펜스들의 메타데이터를 비교하는 것;
상기 식별된 지오펜스들이 상기 블렌딩된 지오펜스로 결합하기 위해 양립가능한 지오펜스 타입들이라는 결정에 응답하여 함께 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것; 및
상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것
을 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되며;
상기 컴퓨팅 디바이스 프로세서는,
상기 블렌딩된 지오펜스를 상기 지오펜스 서버로부터 수신하는 것; 및
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것으로서, 상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것은 상기 지오펜스-인에이블드 애플리케이션들과 연관된 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스로 대체하는 것을 포함하는, 상기 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것
을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 시스템.
As a system,
a geofence server comprising a server processor; and
computing device
including,
The computing device is
Memory;
a transceiver configured to communicate with a network coupled to the geofence server; and
a computing device processor coupled to the memory and the transceiver
including,
The computing device processor,
identifying different geofence-enabled applications running on the computing device; and
sending a list of identified geofence-enabled applications to the geofence server
configured with processor-executable instructions to perform operations comprising;
The server processor,
receiving a list of identified geofence-enabled applications from the computing device;
identifying geofences associated with and geographically close to the listed geofence-enabled applications;
comparing the metadata of the identified geofences associated with the listed geofence-enabled applications to determine whether the identified geofences are compatible geofence types to combine into a blended geofence. that;
combining the identified geofences geographically close together to the blended geofence in response to determining that the identified geofences are compatible geofence types to combine into the blended geofence; and
sending the blended geofence to the computing device.
configured with server executable instructions to perform operations including;
The computing device processor,
receiving the blended geofence from the geofence server; and
enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed, to notify when the blended geofence is traversed; Enabling a respective geofence-enabled application associated with a geo-fence to prevent each of the geofences comprises replacing the identified geofences associated with the geofence-enabled applications with the blended geofence. to enable the geofence-enabled application of
and processor-executable instructions to perform operations further comprising:
제 23 항에 있어서,
상기 서버 프로세서는, 상기 함께 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
상기 서버 프로세서는, 상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩되도록 허용되고 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
24. The method of claim 23,
The server processor is configured to: execute server-executable instructions to perform operations further comprising: determining whether each of the identified geofences that are geographically close together are allowed to be blended by an associated geofence-enabled application. composed;
and the server processor is configured to: combine the identified geofences geographically close together to a blended geofence comprising combining the identified geofences that are allowed to be blended and are geographically close together to a blended geofence A system configured with server executable instructions to perform operations.
제 23 항에 있어서,
상기 서버 프로세서는, 식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스에 포함된 지오펜스들과 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고; 그리고
상기 서버 프로세서는, 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것이,
상기 컴퓨팅 디바이스 상에서 실행하는 식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재한다는 결정에 응답하여 상기 블렌딩된 지오펜스를 상기 컴퓨팅 디바이스에 전송하는 것; 및
상기 컴퓨팅 디바이스 상에서 실행하는 식별된 상기 지오펜스-인에이블드 애플리케이션들의 리스트에서의 지오펜스-인에이블드 애플리케이션들과, 상기 블렌딩된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들과의 사이에 정확한 매치가 존재하지 않는다는 결정에 응답하여 블렌딩되지 않은 지오펜스 정보를 상기 컴퓨팅 디바이스에 전송하는 것
을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
24. The method of claim 23,
The server processor is configured to: identify geofence-enabled applications in the list of geofence-enabled applications and geofence-enabled applications associated with geofences included in the blended geofence. server executable instructions to perform operations further comprising determining whether an exact match exists between the And
The server processor, transmitting the blended geofence to the computing device,
between geofence-enabled applications in the identified list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. sending the blended geofence to the computing device in response to determining that a match exists; and
between geofence-enabled applications in the identified list of geofence-enabled applications executing on the computing device and geofence-enabled applications associated with the blended geofence. sending unblended geofence information to the computing device in response to determining that a match does not exist.
A system configured with server executable instructions to perform operations that cause the system to include:
제 23 항에 있어서,
상기 컴퓨팅 디바이스 프로세서는,
상기 블렌딩된 지오펜스를 상기 지오펜스 서버로부터 수신하는 것이, 상기 지오펜스 서버로부터의 상기 블렌딩된 지오펜스를 지오펜스 관리 유닛으로 수신하는 것을 포함하고, 상기 지오펜스 관리 유닛은 상기 컴퓨팅 디바이스 상에서 동작하는 프록시 서버 애플리케이션이고;
상기 블렌딩된 지오펜스가 횡단될 때를 알리도록 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션을 인에이블시키는 것이,
상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 지오펜스 관리 유닛으로 상기 블렌딩된 지오펜스가 횡단되었는지 여부를 결정하는 것; 및
상기 블렌딩된 지오펜스가 횡단되었다는 결정에 응답하여 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 지오펜스-인에이블드 애플리케이션들 각각에게 상기 지오펜스 관리 유닛으로 통지하는 것
을 포함하도록 하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 시스템.
24. The method of claim 23,
The computing device processor,
Receiving the blended geo-fence from the geo-fence server includes receiving the blended geo-fence from the geo-fence server to a geo-fence management unit, wherein the geo-fence management unit operates on the computing device. is a proxy server application;
enabling each geofence-enabled application associated with a geofence included in the blended geofence to notify when the blended geofence is traversed;
determining whether the blended geofence has been traversed to the geofence management unit on behalf of each geofence-enabled application associated with a geofence included in the blended geofence; and
notifying each of geofence-enabled applications associated with a geofence included in the blended geofence to the geofence management unit in response to determining that the blended geofence has been traversed;
A system configured with processor-executable instructions to perform operations that cause the system to include:
제 23 항에 있어서,
상기 컴퓨팅 디바이스 프로세서는,
상기 컴퓨팅 디바이스의 현재 위치를 결정하는 것; 및
상기 컴퓨팅 디바이스의 현재 위치를 상기 지오펜스 서버에 전송하는 것
을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되고;
상기 서버 프로세서는, 상기 컴퓨팅 디바이스의 현재 위치를 상기 컴퓨팅 디바이스로부터 수신하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되며;
상기 서버 프로세서는,
리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 함께 지리적으로 가까운 지오펜스들을 식별하는 것이, 리스팅된 상기 지오펜스-인에이블드 애플리케이션들과 연관되고 상기 컴퓨팅 디바이스의 현재 위치에 지리적으로 가까운 지오펜스들을 식별하는 것을 포함하고;
상기 함께 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것을 포함하도록
하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
24. The method of claim 23,
The computing device processor,
determining a current location of the computing device; and
transmitting the current location of the computing device to the geo-fence server
configured with processor-executable instructions to perform operations further comprising;
the server processor is configured with server executable instructions to perform operations further comprising receiving from the computing device a current location of the computing device;
The server processor,
Identifying geofences that are associated with the listed geofence-enabled applications and are geographically close together may include: geofences associated with the listed geofence-enabled applications and geographically close to the current location of the computing device. including identifying fences;
so that combining the identified geofences that are geographically close together to a blended geofence includes combining the identified geofences that are geographically close to the current location into a blended geofence
A system configured with server executable instructions to perform operations to:
제 27 항에 있어서,
상기 컴퓨팅 디바이스 프로세서는, 상기 블렌딩된 지오펜스에 포함된 지오펜스와 연관된 각각의 지오펜스-인에이블드 애플리케이션 대신에 상기 블렌딩된 지오펜스가 횡단될 때를 상기 지오펜스 서버에 통지하는 것을 더 포함하는 동작들을 수행하도록 프로세서 실행가능 명령들로 구성되는, 시스템.
28. The method of claim 27,
wherein the computing device processor further comprises notifying the geofence server when the blended geofence is traversed instead of each geofence-enabled application associated with a geofence included in the blended geofence. A system configured with processor-executable instructions to perform operations.
제 27 항에 있어서,
상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들 각각이 연관된 지오펜스-인에이블드 애플리케이션에 의해 블렌딩되도록 허용되는지 여부를 결정하는 것을 더 포함하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되고;
상기 서버 프로세서는, 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 블렌딩된 지오펜스에 결합하는 것이, 블렌딩되도록 허용되고 상기 현재 위치에 지리적으로 가까운 상기 식별된 지오펜스들을 상기 블렌딩된 지오펜스에 결합하는 것을 포함하도록 하는 동작들을 수행하도록 서버 실행가능 명령들로 구성되는, 시스템.
28. The method of claim 27,
the server processor is configured to: determine whether each of the identified geofences that are geographically close to the current location are allowed to be blended by an associated geofence-enabled application. composed of;
The server processor is configured to combine the identified geofences that are geographically close to the current location into a blended geofence, add the identified geofences that are allowed to be blended and are geographically close to the current location to the blended geofence. A system configured with server executable instructions to perform operations that include combining.
KR1020167028349A 2014-04-01 2015-03-24 Reducing overlapping geofences KR102267367B1 (en)

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 KR20160138987A (en) 2016-12-06
KR102267367B1 true KR102267367B1 (en) 2021-06-18

Family

ID=53039569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028349A KR102267367B1 (en) 2014-04-01 2015-03-24 Reducing overlapping geofences

Country Status (6)

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

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3961995A1 (en) 2013-12-11 2022-03-02 Ademco Inc. Building automation control systems
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
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
US10802469B2 (en) 2015-04-27 2020-10-13 Ademco Inc. Geo-fencing with diagnostic feature
US20170118591A1 (en) * 2015-08-02 2017-04-27 Aegex Technologies, Llc Configuring and Managing Mobile Devices in Predefined Geographic Locations
KR102374438B1 (en) * 2015-08-10 2022-03-15 삼성전자주식회사 Method for managing geo-fence and electronic device thereof
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
US10415987B2 (en) 2016-06-24 2019-09-17 Google Llc 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 (en) * 2016-07-29 2020-09-30 株式会社Nttドコモ Terminal management device
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
JP6570607B2 (en) * 2017-12-20 2019-09-04 ヤフー株式会社 Information processing program, information processing apparatus, and information processing method
JP7039989B2 (en) * 2017-12-20 2022-03-23 富士通株式会社 Control program, control method and control device
US10064007B1 (en) * 2018-01-22 2018-08-28 International Business Machines Corporation Cognitive geofence updates
CN110351662B (en) * 2018-04-04 2021-08-20 华为技术有限公司 Method, platform and device for end cloud cooperation
US10433107B1 (en) * 2018-05-23 2019-10-01 Futurewei Technologies, Inc. System and method for enabling polygon geofence services on mobile devices
CN108965401A (en) * 2018-06-25 2018-12-07 千寻位置网络有限公司 The geo-fencing system and working method of support level extension
JP7328985B2 (en) * 2018-10-18 2023-08-17 株式会社Nttドコモ Check-in determination device
US10939231B2 (en) * 2019-06-28 2021-03-02 Ooma, Inc. Geofencing
US11363409B2 (en) 2019-09-17 2022-06-14 In-Telligent Properties Llc Emergency alert systems with tracked user interactions
WO2022204488A1 (en) * 2021-03-25 2022-09-29 Tg-17, Inc. System and method to register improved accuracy geofences
US11582392B2 (en) * 2021-03-25 2023-02-14 International Business Machines Corporation Augmented-reality-based video record and pause zone creation

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 (en) * 2001-01-31 2002-08-16 Fujitsu Ltd Server device for space information service and method for providing the same, and accounting device and method for space information service
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
EP2859740A2 (en) * 2012-06-11 2015-04-15 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
KR20160138987A (en) 2016-12-06
JP2017513397A (en) 2017-05-25
CN106134224A (en) 2016-11-16
JP6479847B2 (en) 2019-03-06
US20150281889A1 (en) 2015-10-01
CN106134224B (en) 2019-11-15
EP3127356A1 (en) 2017-02-08
US9288620B2 (en) 2016-03-15
WO2015153203A1 (en) 2015-10-08

Similar Documents

Publication Publication Date Title
KR102267367B1 (en) Reducing overlapping geofences
GB2531206B (en) Mobile network based geofencing
EP2767125B1 (en) Power-aware tiered geofencing and beacon watchlists
CN113615217B (en) Method for determining that terminal equipment is located inside geo-fence and terminal equipment
KR101523862B1 (en) Method for discovery of indoor location context identifier based on approximate location
US8374623B2 (en) Location based, software control of mobile devices
EP3592002A1 (en) Passive dynamic geofencing for mobile devices
US9131338B2 (en) Method and apparatus for providing an alert on a user equipment entering an alerting area
US9648455B2 (en) Method for optimizing mobile device region monitoring and region management for an anonymous mobile device
US20130143584A1 (en) System and method for user control of location determination
CN105657789A (en) Device and method for network search in roaming state
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
CN111767971A (en) Terminal control method and device based on electronic tag, terminal and readable storage medium
US9686734B2 (en) Determining content availability based on selective use of an active location system
US9420397B1 (en) Configuring a mobile device to scan for available wireless access points when wireless data communication is disabled
JP2017034371A (en) Electronic apparatus and information notification program
Wang EFFICIENT CELLULAR RADIO ACCESS MANAGEMENT FOR MOBILE COMPUTING DEVICES

Legal Events

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