KR101752266B1 - 신뢰성 있는 위치 애플리케이션 및 위치 제공자 통신을 위한 기술들 - Google Patents

신뢰성 있는 위치 애플리케이션 및 위치 제공자 통신을 위한 기술들 Download PDF

Info

Publication number
KR101752266B1
KR101752266B1 KR1020157025595A KR20157025595A KR101752266B1 KR 101752266 B1 KR101752266 B1 KR 101752266B1 KR 1020157025595 A KR1020157025595 A KR 1020157025595A KR 20157025595 A KR20157025595 A KR 20157025595A KR 101752266 B1 KR101752266 B1 KR 101752266B1
Authority
KR
South Korea
Prior art keywords
location
trusted
application
provider
aps
Prior art date
Application number
KR1020157025595A
Other languages
English (en)
Other versions
KR20150120462A (ko
Inventor
조나단 세게브
이타이 스테이너
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20150120462A publication Critical patent/KR20150120462A/ko
Application granted granted Critical
Publication of KR101752266B1 publication Critical patent/KR101752266B1/ko

Links

Images

Classifications

    • H04W4/04
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/0009Transmission of position information to remote stations
    • G01S5/0018Transmission from mobile station to base station
    • G01S5/0027Transmission from mobile station to base station of actual mobile position, i.e. position determined on mobile
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0205Details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0205Details
    • G01S5/0244Accuracy or reliability of position solution or of measurements contributing thereto
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/63Location-dependent; Proximity-dependent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/33Services specially adapted for particular environments, situations or purposes for indoor environments, e.g. buildings

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

다양한 실시예들은 일반적으로 위치 정보를 신뢰되지 않은 위치 애플리케이션에 제공하지 않도록 위치 정보를 모바일 디바이스 내의 위치 제공자 및 신뢰성 있는 위치 애플리케이션 사이에서 신뢰성 있는 통신들을 통해 전달하는 기술들에 관한 것이다. 장치는 프로세서 구성요소; 및 프로세서 구성요소에 의해 실행되는 위치 제공자를 포함하고, 위치 제공자는 어떤 장소의 위치 네트워크로부터 수신되는 무선 신호들에 기초하여 이 장소 내에서의 현재의 위치를 결정하는 위치 베이스밴드, 적어도 신뢰성 있는 위치 애플리케이션으로부터 수신되는 크레댄셜들에 기초하여 이 장소와 연관되는 신뢰성 있는 위치 애플리케이션을 검증하는 검증 구성요소 및 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 현재 위치를 나타내는 위치 정보를 암호화하고 이 위치 정보를 위치 제공자 및 신뢰성 있는 위치 애플리케이션 사이에 개재되는 위치 관리자를 통해 신뢰성 있는 위치 애플리케이션에 전달하는 암호화 구성요소를 포함한다. 다른 실시예들이 기술되고 청구된다.

Description

신뢰성 있는 위치 애플리케이션 및 위치 제공자 통신을 위한 기술들{TECHNIQUES FOR TRUSTED LOCATION APPLICATION AND LOCATION PROVIDER COMMUNICATIONS}
본원에서 개시되는 실시예들은 일반적으로 위치 정보에 대한 비인가 사용을 방지하기 위해 모바일 디바이스의 구성요소들 사이에서 위치 정보를 교환할 때 신뢰성 있게 통신을 설정하고 사용하는 것에 관한 것이다.
모바일 디바이스들은 다수의 전지구적 위치추적 시스템(global positioning system; GPS) 또는 전지구적 내비게이션 위성 시스템(global navigation satellite system; GNSS) 위성들로부터의 무선 신호들을 수신하고 분석하는 것을 통해 지표(surface of the Earth)에 대하여 자기 자신들의 위치를 추적하는 능력을 오래전부터 구비해 왔다. 그러므로, 그와 같은 컴퓨팅 디바이스(computing device)들의 사용자들은 그것들을 자신들이 지니든 아니면 또는 차량들 내에 설치하든지 간에, 임의의 소정의 순간에 자신들이 지표 상에 어디에 있는지에 대한 시각적 프리젠테이션(presentation)을 오래 전부터 볼 수 있어 왔다. 더욱이, 현재의 좌표들의 세트와 같은 단순히 위치 정보를 제시하는 것을 넘어서, 모바일 디바이스들은 다른 서비스들을 제공할 때(예를 들어, 현재 위치에 대한 날씨 예보들을 제공하고; 현재 있는 장소 가까이에 있는 상점 또는 주유소들의 위치들을 그 상점 또는 주유소들의 가격들 등과 함께 제공하는) 그와 같은 위치 정보를 사용하도록 위치 애플리케이션(location application)들을 오래 전부터 통합해 왔다. 이러한 종래기술은, 예를 들어, 2013년 3월 14일자로 공개된 미국특허공개공보 제2013-0067232호 등에 개시되어 있다.
더 최근에, 모바일 디바이스들에는, 한 장소(venue)의 내부(예를 들어, 쇼핑센터, 매장, 공항 터미널 등의 내부)에 관한 자기 자신의 위치를, 위성들로부터 오지만 그와 같은 구조들의 부분들을 뚫고 이 구조들 내부들에 도달하는 것이 가능하지 않을 수 있는 신호들을 사용하여 가능한 것보다 더 세밀한 위치 정확도 레벨로 추적하는 능력을 제공해 왔다. 이것은 때때로 쌍곡선 내비게이션(hyperbolic navigation) 원리들에 기초하여, 그와 같은 장소 내에 위치 네트워크를 형성하는 무선 네트워크 액세스 포인트(access point; AP)들로부터 나오는 무선 신호들을 수신 및 분석함으로써 전형적으로 행해진다. 더욱이, 그와 같은 모바일 디바이스들은 사용자들이 어떤 장소 내에서 구매할 수 있는 제품들, 신상품들 및/또는 프로모션들이 제공되는 제품들과 같이, 상기 장소 내에 있는 특정한 관심 아이템들의 위치들로 안내하기 위해 그와 같은 위치 네트워크에 의해 제공되는 위치 서비스들과 협력하는 위치 애플리케이션들을 최근에 통합하게 되었다. 그와 같은 위치 애플리케이션들은 방들, 통로들, 복도들, 진열대들, 키오스크(kiosk)들, 안내 데스크들, 휴게실 등에 관한 모바일 디바이스의 현재 위치를 결정하기 위하여 하나의 장소 내에 그와 같은 위치 서비스들을 제공하는 그러한 위치 네트워크와 상호 작용하도록 구성된 모바일 디바이스의 위치 제공자에 의존한다. 위치 제공자는 그 후에 상기 장소와 연관되고 관심 아이템들을 상기 관심 아이템들이 상기 장소 내에서 제공되고 있는 위치들과 상관시키는 위치 애플리케이션에 현재 위치를 제공한다. 그와 같은 상관들은 사용자를 관심 아이템들로 안내하고/하거나 상기 아이템들과 연관되는 현재의 프로모션들(예를 들어, 할인들)을 제시하는 데 사용된다.
불행하게도, 그와 같은 모바일 디바이스들 내의 전형적인 시스템 아키텍처들은 다른 위치 애플리케이션들에 의해 그와 같은 위치 정보에 대한 한 형태의 "하이잭킹(hijacking)"이 가능한 것으로 밝혀져서, 이 다른 위치 애플리케이션은 사용자들이 경쟁 장소를 향하여 이 장소를 떠날 것을 권장하도록 의도되는 경쟁 정보를 사용자들에게 제시하기 위해 그와 같은 위치 정보를 사용할 수 있다. 더 구체적으로, 한 장소 내에서의 현재의 위치를 나타내는 위치 정보는 사용자에게 경쟁 장소에서 제공되는 경쟁 제품들 또는 서비스들에 관한 광고들(때로는 "쇼룸 밀기 위협(showroom push threat)"라 칭해짐)을 제시하기 위해 경쟁 장소의 위치 애플리케이션에 의해서 사용될 수 있다.
그와 같은 아키텍처들에서, 모바일 디바이스의 임의의 위치 제공자로부터의 위치 정보는 전형적으로 모바일 디바이스의 위치 관리자에 의해서 이 위치 관리자로부터 위치 자료를 요청하는 임의의 위치 애플리케이션으로 자유로이 배포된다. 위치 관리자는 위치 애플리케이션들에 플랫폼 불가지 인터페이스(platform agnostic interface)를 제공하기 위해 전형적으로 위치 제공자들 및 위치 애플리케이션들 사이에 개재된다. 그와 같이 위치 관리자가 원래 자유로이 위치 정보를 제공하는 것이 이익인 것으로 구상되었을지라도, 이 상황들에서는, 하나의 위치 애플리케이션이 다른 위치 애플리케이션에 대한 악의적 행위가 가능하다고 판명되었다. 더욱이, 위치 관리자가 전형적으로 모바일 디바이스의 운영 시스템(operating system; OS)의 구성요소라는 사실은 위치 관리자가 하이잭킹이 가능하도록 손상되는 데에 취약해지는 것으로 알려져 있다.
도 1은 위치 시스템의 하나의 실시예를 도시하는 도면이다.
도 2는 하나의 실시예에 개시되는 장소의 하나의 예를 도시하는 도면이다.
도 3 내지 도 4는 하나의 실시예에 따른 위치 정보의 전달을 도시하는 도면이다.
도 5 내지 도 7은 각각 위치 시스템의 하나의 실시예의 일부를 도시하는 도면이다.
도 8 내지 도 10은 각각 하나의 실시예에 따른 논리 흐름도를 도시하는 도면이다.
도 11은 하나의 실시예에 따라 프로세싱 아키텍처를 도시하는 도면이다.
다양한 실시예들은 일반적으로 위치 정보를 신뢰되지 않는 위치 애플리케이션에 제공하는 것을 방지하기 위해 신뢰성 있는 통신들을 통해 모바일 디바이스 내의 위치 제공자 및 신뢰성 있는 위치 애플리케이션 사이에 위치 정보를 전달하는 기술들에 관한 것이다. 위치 제공자는 모바일 디바이스 내에 통합되어 있는 다수의 위치 제공자들 중 하나일 수 있고, 다수의 위치 제공자들의 각각은 모바일 디바이스의 현재 위치를 결정하기 위하여 상이한 기술을 사용한다(예를 들어, GPS, GNSS, 모션 감지, 신호원들로부터의 삼각 측량(triangulation), 와이파이 기반 수신 신호 세기(Received Singnal strength indication; RSSI) 또는 비행시간(time of flight) 등). 신뢰성 있는 위치 애플리케이션은 모바일 디바이스의 위치 제공자들 중 하나 이상에서 오는 수 개(piece)의 위치 정보를 이용해 다양한 기능들을 수행하기 위하여, 모바일 디바이스의 사용자에 의해 모바일 디바이스 내에 저장되는 다수의 위치 애플리케이션들 중 하나일 수 있다. 신뢰성 있는 위치 애플리케이션은 사용자에게 신뢰성 있는 위치 애플리케이션과 연관되는 장소 내에서 제공되는(예를 들어, 세일, 렌트 등을 위해 제공되는) 아이템들의 위치에 대한 표시를 제공하고/하거나 사용자가 상기 장소 내에서 돌아 다니는 방식에 기초해 사용자에 대한 관심 아이템을 결정하기 위하여 위치 제공자로부터 수신되는 위치 정보를 사용할 수 있다.
위치 제공자는 장소 내의 하나 이상의 무선 네트워크 액세스 포인트(AP)들 그리고/또는 장소 내의 다른 스테이션(station; ST)들로부터 수신되는 무선 신호들의 특성들을 분석하여 장소 내에서의 모바일 디바이스의 현재 위치를 결정하기 위하여, 장소 내의 위치 네트워크와 협력한다. 위치 제공자는 위치 네트워크의 하나 이상의 AP들의 위치들 및/또는 특성들을 명시하는 위치 네트워크의 AP로부터 위치 알마낙(almanac)을 수신함으로써, 현재의 위치를 명시하는 데 상대적으로 더 높은 위치 정확도 레벨이 가능할 수 있다(예를 들어, 1 미터 내의 정확도).
상술한 바와 같이, 하나 이상의 위치 제공자들에게서 온 여러 개의 위치 정보들을 위치 정보를 요청하는 하나 이상의 위치 애플리케이션들에 분배하기 위하여, 위치 관리자는 위치 제공자 및 신뢰성 있는 위치 애플리케이션 사이에 개재될 수 있다. 불행하게도, 또한 상술한 바와 같이, 위치 관리자가 손상되어서 이 위치 관리자가 신뢰성 있는 것으로 간주되는 것이 가능하지 않을 수 있다. 대안으로 또는 추가로, 위치 애플리케이션들 중 하나는 사용자가 경쟁 장소를 향하여 이 장소를 떠날 것을 유도하는 시도를 행할 때 사용자에게 경쟁 장소에서 제공되는 아이템들에 관한 정보를 제시하기 위해 이 장소와 연관되는 위치 정보를 사용하도록 구성되는 신뢰되지 않는 위치 애플리케이션일 수 있다.
신뢰성 있는 통신들은 신뢰되지 않는 위치 애플리케이션 및/또는 위치 관리자 자체가 위치 정보를 수신하고/하거나 이 위치 정보를 이용하는 것을 허용하지 않는 방식으로 위치 제공자 및 신뢰성 있는 위치 애플리케이션 사이에서 위치 정보를 교환하는 것이 가능하도록 이들 사이의 위치 관리자를 통해 설정될 수 있다. 그와 같은 신뢰성 있는 통신들을 설정하는 것의 서두로서, 위치 제공자는 신뢰성 있는 위치 애플리케이션을 위치 정보를 수신하는 데 신뢰할 수 있는 것으로 검증하기 위해 신뢰성 있는 위치 애플리케이션 및/또는 위치 네트워크로부터 수신되는 크리덴셜(credential)들의 결합들을 사용할 수 있다. 그리고 나서, 위치 제공자 및 신뢰성 있는 위치 애플리케이션 중 하나 또는 이 둘 모두는 위치 정보를 다수의 위치 애플리케이션들에 분배하는 대신, 위치 제공자로부터 단지 신뢰성 있는 위치 애플리케이션에게만 라우팅(routing)하라는 요청으로 위치 관리자에게 시그널링할 수 있다.
그러나, 많은 모바일 디바이스들에서, 위치 관리자는 모바일 디바이스용 운영 시스템(OS)의 구성요소이므로, OS의 무결성(integrity)이 손상되는 것은(예를 들어, 바이러스 등을 통해) 드물지 않다. 그러므로, 위치 관리자는 신뢰되지 않는 것으로 간주될 수 있고 그 결과 위치 관리자가 위치 정보를 신뢰성 있는 위치 애플리케이션에만 라우팅하라는 요청을 준수할지가 불확실해진다. 위치 관리자에게 그와 같은 요청을 했음에도 불구하고 경쟁 장소와 관련되는 신뢰되지 않은 위치 애플리케이션이 여전히 위치 정보를 제공받을 수 있을 가능성을 무효화하기 위하여, 위치 제공자 및 신뢰성 있는 위치 애플리케이션은 자신들 사이에서 위치 정보를 교환할 때 암호화(encryption)를 사용할 수 있다.
전반적으로 본원에서 사용되는 표기법들 및 명명법들과 관련하여, 이후의 상세한 설명의 일부분들은 컴퓨터 또는 컴퓨터들의 네트워크 상에서 실행되는 프로그램 절차들로 제시될 수 있다. 이 절차 설명들 및 표현들은 다른 당업자에게 자신들의 작업의 본질을 가장 효율적으로 전달하기 위해서 당업자에 의해 사용된다. 절차는 여기서, 그리고 일반적으로, 원하는 결과를 가져오는 자체 모순 없는 동작들의 시퀀스인 것으로 이해된다. 이 동작들은 물리적 양들에 대한 물리적 조작들을 필요로 하는 동작들이다. 통상적으로, 반드시는 아닐지라도, 이 양들은 저장되고, 전달되고, 결합되고, 비교되고, 그리고 이와 다른 방식으로 조작될 수 있는 전기, 자기 또는 광 신호들의 형태를 취한다. 이 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등으로 언급하는 것은 주로 일반적으로 사용되기 때문에 때로는 편리한 것으로 판명된다. 그러나, 이들 그리고 유사한 용어들 모두는 적절한 물리적 양들과 연관될 수 있고 단지 상기 양들에 적용되는 편리한 라벨들임이 주목되어야 한다.
더욱이, 이 조작들은 흔히 가산 또는 비교하는 것과 같이, 일반적으로 사람 조작자에 의해 수행되는 정신 작용들과 연관되는 용어들로 흔히 칭해진다. 그러나, 그와 같은 사람 조작자의 능력은 본원에서 기술되는 하나 이상의 실시예들의 일부를 형성하는 동작들 중 임의의 동작에서, 대부분의 경우들에서, 필요하지 않거나 바람직하지 않다. 오히려, 이 동작들은 머신 동작들이다. 다양한 실시예들의 동작들을 수행하기 위한 유용한 머신들은 내부에 저장되고 본원에서의 내용들에 따라 기록되는 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 구성되는 바에 따른 범용 디지털 컴퓨터들을 포함하고/하거나 필요한 목적들을 위해 특수하게 구성되는 장치를 포함한다. 다양한 실시예들은 또한 이 동작들을 수행하기 위한 장치 또는 시스템을 포함한다. 이 장치는 필요한 목적을 위해 특수하게 구성될 수 있거나 또는 범용 컴퓨터를 포함할 수 있다. 다양한 이 머신들에 대해 필요한 구조는 제공된 설명으로부터 자명할 것이다.
이제 도면들이 참조되고, 여기서 동일한 참조번호들은 전체에 걸쳐 동일한 요소들을 칭하는 데 사용된다. 다음의 기술에서, 설명을 위해, 이의 철저한 이해를 제공하기 위해 많은 구체적 세부사항들이 진술된다. 그러나, 신규의 실시예들이 이 구체적 세부사항들 없이 실시될 수 있음이 명백할 것이다. 다른 예들에서, 널리 공지되어 있는 구조들 및 디바이스들은 이들의 설명을 용이하게 하기 위해 블록도 형태로 도시된다. 본 발명은 모든 수정들, 등가들 및 대체들을 청구항들의 범위 내에서 커버할 수 있다.
도 1은 모바일 디바이스(100), 위치 서버(300), 애플리케이션 서버(500) 및 크리덴셜 서버(700) 중 하나 이상을 통합하는 위치 시스템(1000)의 하나의 실시예의 블록도이다. 이 컴퓨팅 디바이스들의 각각은 제한 없이, 데스크탑 컴퓨터 시스템, 데이터 입력 단말기, 랩탑 컴퓨터, 넷북 컴퓨터, 태브릿 컴퓨터, 소형 개인 데이터 보조장치(personal data assistant), 스마트폰, 디지털 카메라, 의류 통합형 신체 착용 컴퓨팅 디바이스, 차량(예를 들어, 자동차, 자전거, 휠체어 등) 통합형 컴퓨팅 디바이스, 서버, 서버들의 클러스터(cluster), 서버 팜(server farm) 등을 포함하는 다양한 유형들의 컴퓨팅 디바이스 중 임의의 디바이스일 수 있다.
사용자가 모바일 디바이스(100)를 지니고 위치 서버(300)와 연관되고 아이템들이 제공되는(예를 들어, 세일, 렌트 등을 위해 제공되는) 장소(409) 내로 들어갈 수 있다. 하나 이상의 액세스 포인트들(494a 내지 494c)과 협력하여, 위치 서버(300)는 위치 서비스들을 제공하는 위치 네트워크(499)를 제공할 수 있다. 대안으로, 스테이션(STA)의 역할을 행하는 단일 디바이스는 위치 서비스들을 제공할 수 있다(예를 들어, 위치 서버(300)는 위치 네트워크(499)에 제공할 무선 신호들을 직접 방출할 수 있다). 모바일 디바이스(100)의 위치 제공자(170a)는 장소(409) 내의 모바일 디바이스(100)의 현재 위치를 결정하기 위해 액세스 포인트들(494a 내지 494c)로부터 나오는 무선 신호들을 사용할 수 있다. 애플리케이션 서버(500)는 모바일 디바이스(100)에 신뢰성 있는 위치 애플리케이션(510)을 제공하고 위치 제공자(170a)와 협력해서 이 위치 제공자(170a)에 의해 결정된 바에 따른 현재 위치에 기초하여 장소(409) 내에 제공되어 있는 아이템들에 관한 정보를 제시할 수 있다. 네트워크(999)를 통하여 신뢰성 있는 위치 애플리케이션(510)이 제공될 수 있다. 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510)은, 신뢰되지 않는 위치 애플리케이션(110)이 위치 정보를 수신하고/하거나 이 위치 정보를 사용하는 것을 방지하는 방식으로 자신들 사이에서 현재의 정보를 나타내는 위치 정보의 교환이 가능하도록, 위치 관리자(140)를 통해 자신들 사이에 신뢰성 있는 통신들을 설정할 수 있다. 크리덴셜 서버(700)는 그와 같은 신뢰성 있는 통신들을 설정하기 위해 적어도 신뢰성 있는 위치 애플리케이션(150)의 신뢰도를 검증할 수 있도록 모바일 디바이스(100), 위치 서버(300) 및 애플리케이션 서버(500) 중 하나 이상에 크리덴셜들을 제공할 수 있다.
도시된 바와 같이, 이 컴퓨팅 디바이스들(100, 300, 500 및/또는 700)의 서브세트들은 네트워크들(499 및 999) 중 하나 또는 이 둘 모두를 통하여 장소(409) 내에서의 모바일 디바이스(100)의 현재 위치를 결정하는 것과 연관되는 신호를 교환한다. 그러나, 이 컴퓨팅 디바이스들 중 하나 이상은 네트워크들(499 및 999) 중 하나 또는 이 둘 모두를 통하여 임의의 컴퓨팅 디바이스의 현재의 위치를 결정하는 것과 전혀 관련 없는 다른 데이터를 서로 그리고/또는 또 다른 컴퓨팅 디바이스들(도시되지 않음)과 교환할 수 있다. 다양한 실시예들에서, 위치 네트워크(499)는 장소(409)의 내부에 펼쳐져 있는 무선 네트워크일 수 있다. 네트워크(499)는 미국, 뉴욕주, New York의 전기 전자 기술자 협회(Institute of Electrical and Electronics Engineers; IEEE)에 의해 공표된 802.11 사양들의 군, 미국 워싱턴주, Kirkland의 Bluetooth® 분과회(Speical Interest Group)(Bluetooth SIG)에 의해 공표된 Bluetooth® 사양의 버전들, 미국 텍사스주, Austin의 Wi-Fi™ 연합(Wi-Fi™ Alliance)에 의해 공표된 Wi-Fi™ 사양의 버전, 및 핀란드의 Espoo의 인-로케이션 연합(In-Location Alliance)에 의해 개발 중인 사양 중 하나 이상을 포함하고 이들로 제한되지 않는 다양한 무선 네트워킹 사양들 중 임의의 사양을 준수하도록 구성될 수 있다. 다양한 실시예들에서, 네트워크(999)는 단일 건물 또는 다른 상대적으로 제한된 에어리어(area) 내에서만 펼쳐 지는 것이 가능한 단일 네트워크이거나 상당한 거리로 연장되는 것이 가능한 접속 네트워크들의 결합일 수 있고/있거나 인터넷을 포함할 수 있다. 그러므로, 네트워크(999)는 신호들이 교환될 수 있는 다양한 통신 기술들(또는 이들의 결합) 중 임의의 통신에 기초할 수 있고, 이 기술들은 전기 및/또는 광 전도 케이블링(cabling)을 사용하는 유선 기술들 및 적외선, 무선 주파수 또는 다른 형태들의 무선 전송을 사용하는 무선 기술들을 제한 없이 포함한다.
다양한 실시예들에서, 모바일 디바이스(100)은 프로세서 구성요소(150), 저장소(160), 위치 제공자들(170a 및 170b), 제어들(120), 디스플레이(180) 및 모바일 디바이스를 네트워크들(499 및 999) 중 하나 또는 이 둘 모두에 결합하는 인터페이스(190) 중 하나 이상을 통합한다. 저장소(160)는 위치 관리자(140), 신뢰성 있는 위치 애플리케이션(510), 위치 데이터(333), 신뢰되지 않는 위치 애플리케이션(110) 및 경쟁 데이터(133) 중 하나 이상을 저장한다. 신뢰성 있는 위치 애플리케이션(510)은 크리덴셜들(537)을 포함할 수 있다. 위치 제공자들(170a 및 170b0)은 각각 위치 엔진(174a 및 174b) 및 위치 베이스밴드(179a 및 179b)를 각각 통합한다. 또한, 위치 제공자들(170a 및 170b)의 각각은 크리덴셜들(137)을 통합할 수 있고/있거나 위치 제공자(170a)는 추가로 위치 알마낙(334)을 통합할 수 있다.
더 상세하게 설명되는 바와 같이, 위치 제공자들(170a 내지 170b)의 각각은 프로세서 구성요소(예를 들어, 프로세서 구성요소(150)), 회로(프로그램 가능하던 또는 가능하지 않던 간에) 또는 이들의 결합물에 의해 실행 가능한 명령들로 구성될 수 있다. 위치 제공자들(170a 내지 170b)의 각각의 적어도 일부분이 실행가능한 명령들(예를 들어, 위치 엔진들(174a 내지 174b)이 실행 가능한 명령들로 구성되는 경우)을 적어도 일부 통합한 실시예들에서, 이 일부분들이 저장소(160) 내에 저장될 수 있다. 위치 제공자들(170a 내지 170b)의 각각의 적어도 일부분이 회로를 통합한 실시예들에서, 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두는 각각 인터페이스(190)의 또는 별개의 등가의 인터페이스들의 적어도 일부분을 통합할 수 있다.
위치 제공자들(170a 내지 170b)의 각각이 구현될 수 있는 정확한 방식에 관계 없이, 위치 제공자들(170a 내지 170b)의 각각은 모바일 디바이스(100)의 현재 위치를 결정하는 다양한 기술들 중 하나 이상을 사용한다. 두 위치 제공자들, 구체적으로 본원에서 위치 제공자들(170a 내지 170b)이 구체적으로 도시되고 설명될지라도, 다른 양들의 위치 제공자들을 통합한 실시예들이 가능하다는 점 또한 주의되어야 한다. 위치 제공자들의 양은 지원하는 것이 바람직하다고 간주되는 모바일 디바이스(100)의 현재 위치를 결정하기 위한 기술들의 유형들 및/또는 수에 의해 결정될 수 있다. 예로서, 하나의 위치 제공자는 위성들로부터 수신되는 무선 신호들을 사용할 수 있고(예를 들어, GPS 또는 GNSS), 다른 위치 제공자는 움직임을 검출하는 가속도계들 및/또는 자이로스코프들을 사용할 수 있고, 또 다른 위치 제공자는 셀룰러 전화기 통신 타워들로부터 수신되는 무선 신호들을 사용할 수 있고, 더 또 다른 위치 제공자는 장소 내부에 배치되는 액세스 포인트들(예들 들어, 장소(409)의 AP들(494a 내지 494c)로부터 수신되는 무선 신호들을 사용할 수 있다. 더욱이, 둘 이상의 위치 제공자들은 자신들의 동작을 강화하기 위해(예를 들어, 전력 소비를 낮추고/낮추거나 정확도를 개선하는) 데이터를 공유할 수 있다. 예로서, 위성 신호들(예를 들어, GPS 또는 GNSS)을 사용하는 위치 제공자는 더 높은 정확성을 제공하기 위해(예를 들어, 측정 에러들을 걸러내기 위해) 가속도계들 및/또는 자이로스코프들을 사용하는 다른 위치 제공자로부터 데이터를 수신할 수 있다.
인터페이스(190)는 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두에 의해 사용되는 무선 신호들을 수신하기 위해 회로(예를 들어, 복조기들, 무선 주파수 신호 증폭기들 등)를 포함할 수 있다. 위치 베이스밴드들(179a 내지 179b)의 각각은 현재의 위치를 나타내는 윈 데이터(raw data)를 도출하기 위해 수신된 무선 신호들의 특성들(예를 들어, 비행 시간, 도착 시간의 차, 상대적 비틀림(relative skew), 강도, 도착 또는 출발의 방향/각 등)을 분석할 수 있다. 위치 엔진들(174a 내지 174b)의 각각은 하나 이상의 위치 애플리케이션들(예를 들어, 위치 애플리케이션들(110 및 510))에 제공하기 위하여 널리 사용되는 기준 시스템(예를 들어, GPS 좌표들 또는 RSSI 핑거프린팅(fingerpriting)과 같은 좌표 시스템)을 준수하는 방식으로 현재의 위치를 명시하는 여러 개의 위치 정보들로 원 데이터를 변환할 수 있다.
위치 관리자(140)는 다양한 기능들을 수행하는 논리를 구현하기 위하여 프로세서 구성요소(150)가 주 프로세서 구성요소 역할을 할 때 이 프로세서 구성요소(150) 상에서 동작하는 명령들의 시퀀스를 통합한다. 위치 관리자(140)를 실행할 때, 프로세서 구성요소(150)는 모바일 디바이스(100)의 현재 위치를 나타내는 위치 정보에 대한 요청들을 하나 이상의 위치 애플리케이션들(예를 들어, 위치 애플리케이션들(110 및 510))로부터 수신하고, 하나 이상의 위치 제공자들(예를 들어, 위치 제공자들(170a 내지 170b)로부터 위치 정보를 수신한다. 프로세서 구성요소(550)는 위치 제공자들 중 하나 이상으로부터의 위치 정보를 위치 애플리케이션들 중 하나 이상에 분배할 수 있다. 위치 관리자(140)를 실행할 때, 프로세서 구성요소(550)는 하나의 위치 제공자로부터의 위치 정보를 다수의 위치 애플리케이션들로 분배할 수 있고/있거나 다수의 위치 제공자들로부터의 위치 정보를 하나의 위치 애플리케이션에 제공할 수 있다.
위치 관리자(140)를 실행할 때, 프로세서 구성요소(550)는 또한 위치 애플리케이션으로부터, 위치 애플리케이션에 제공될 임의의 위치 정보에 필요한 위치 정확도 레벨의 표시를 수신할 수 있다. 예를 들어, 모바일 디바이스(100)의 현재의 위치에 대한 날씨 예보들을 제시하는 위치 애플리케이션은 모바일 디바이스(100)의 현재의 위치를 모바일 디바이스(100)의 실제의 현재 위치의 1 킬로미터 또는 수 킬로미터 이내의 정확도로 명시하는 것이 충분할 수 있도록 상대적으로 낮은 위치 정확도만을 요구할 수 있다. 그러나, 거리 맵 상에서의 모바일 디바이스(100)의 현재의 위치를 제시하는 위치 애플리케이션은 다소 더 높은 위치 정확도를 요구할 수 있어서 모바일 디바이스(100)의 현재 위치를 모바일 디바이스(100)의 실제의 현재 위치의 수 미터 이내의 정확도로 명시할 능력이 필요할 수 있게 된다.
위치 관리자(140)를 실행하는 것을 계속하면, 프로세서 구성요소(550)는 위치 제공자로부터 위치 제공자에 의해 제공될 수 있는 위치 정확도 레벨의 표시를 더 수신할 수 있다. 예를 들어, GPS 위성 신호들을 사용하는 위치 제공자는 모바일 디바이스(100)의 현재 위치가 모바일 디바이스(100)의 실제의 현재 위치의 수 미터 내로 명시될 수 있을 만큼 충분히 높은 위치 정확도 레벨로 위치 정보를 제공하는 것이 가능할 수 있다. 그와 같은 위치 정확도 레벨은 현재 위치에 대한 날씨 예보를 제시하거나 거리 맵 상에서의 현재 위치의 표시를 제시하는 데 사용하는 데에는 충분한 것 이상일 수 있다. 그러나, 그와 같은 위치 정확도 레벨은 장소(예를 들어, 장소(409)의 방들, 통로들, 복도들 등 중에 있는 모바일 디바이스(100)의 현재 위치를 제시하는 데 사용하는 데에는 충분하지 않을 수 있다.
프로세서 구성요소(550)는 상이한 정도의 위치 정확도를 가지는 상이한 위치 제공자들로부터 수신되는 위치 정보를 위치 애플리케이션이 요구하는 위치 정확도의 정도에 기초하여 위치 애플리케이션들에 선택적으로 배분할 수 있다. 더욱이, 프로세서 구성요소(550)는 상이한 위치 제공자들로부터 수신되는 위치 정보를, 어떤 위치 제공자(들)가 임의의 소정의 시간에 위치 정보를 제공할 수 있는지에 기초하여 상이한 위치 애플리케이션에 선택적으로 분배할 수 있다. 당업자에게 익숙한 바와 같이, 위성들, 셀룰러 타원들 및/또는 무선 네트워크들의 AP들 중로부터의 무선 신호들 중 상이한 신호들은 상이한 장소들에서 상이한 시간들에서 이용 가능할 수 있다. 예를 들어, 구조물(예를 들어, 집 또는 건물) 내로 들어가면 위성들로부터의 무선 신호들의 수신이 차단될 수 있다.
위치 애플리케이션들(110 및 510)의 각각은 프로세서 구성요소(150)가 논리를 구현하여 다양한 기능들을 수행하기 위해 주 프로세서 구성요소 역할을 할 때 이 프로세서 구성요소(150) 상에서 동작하는 명령들의 시퀀스를 통합한다. 위치 애플리케이션들(110 및 510)의 각각을 실행할 때, 프로세서 구성요소(150)는 위치 관리자(140)에 의해 위치 애플리케이션들(110 및 510)의 각각에 배분되는 위치 정보 내에 표시되는 모바일 디바이스(100)의 현재 위치에 기초하여 기능을 수행하기 위해 그와 같은 위치 정보를 사용할 수 있다. 신뢰성 있는 위치 애플리케이션(510)의 신뢰도를 유지하기 위해, 프로세서 구성요소(150)는 신뢰성 있는 위치 애플리케이션(510)을, 보안 모드로 그리고/또는 신뢰성 있는 위치 애플리케이션(510)이 저장되는 저장소(160)의 일부에 액세스하는 것에 대해 여러 제한들을 두고(예를 들어, "샌드박싱(sandboxing)" 또는 "안전 보호구역(secure enclave)") 실행할 수 있다.
신뢰성 있는 위치 애플리케이션(510)은 장소(409)와 연관될 수 있다. 신뢰성 있는 위치 애플리케이션(510)을 실행할 때, 프로세서 구성요소(550)는 장소(409)의 디스플레이(180) 상에(예를 들어, 시각적으로 제시되는 맵으로) 통로들, 방들, 복도들, 진열대들, 키오스크들, 안내 데스크들, 휴게실들, 체크아웃 카운터들 등 중에 있는 모바일 디바이스(100)의 현재 위치의 표시를 시각적으로 제시할 수 있다. 프로세서 구성요소(550)는 장소(409) 내에 제공되어 있는(예를 들어, 세일, 렌트 등을 위하여 제공되어 있는) 아이템들, 이들의 장소(409)와의 위치 및/또는 상기 아이템들과 연관되는 다양한 프로모션들(예를 들어, 세일들, 할인들, 쿠폰들 등)에 관한 정보를 사용자에게 제시할 수 있다.
신뢰성 있는 위치 애플리케이션(510)을 실행할 때, 프로세서 구성요소(550)는 사용자가 모바일 디바이스(100)를 지니고 있는 동안 장소(409)의 내부 주위에서 이동할 때 모바일 디바이스(100)의 이동들들 모니터링할 수 있다(모바일 디바이스가 수신하는 위치 정보에 표시되는 바와 같이). 사용자가 장소(409) 내에서 정지하고/하거나 특정 위치들에서 서성이는 것처럼 보이는 경우들은 사용자가 이 특정한 장소들에 위치되어 있는 하나 이상의 아이템들에 관심이 있다는 표시로 간주될 수 있다. 응답으로, 프로세서 구성요소(550)는 이 특정한 위치들에 있는 아이템들과 연관되는 다양한 프로모션들을 시각적으로 제시할 수 있다(예를 들어, 사용자에게 상기 아이템들 중 하나를 렌트, 구매 또는 이와는 달리 이용할 것을 권장하기 위해).
모바일 디바이스(100)의 사용자는 애플리케이션 서버(500)로부터 신뢰성 있는 위치 애플리케이션(510)을 획득할 수 있다. 더 구체적으로, 사용자는 네트워크(999)를 통해 애플리케이션 서버(500)에 액세스하고, 이로부터 신뢰성 있는 위치 애플리케이션(510)을 다운로드하고, 이 애플리케이션을 저장소(160) 내에 저장하기 위해 모바일 디바이스를 동작시켰을 수 있다(예를 들어, 제어들(120) 및 디스플레이(180)를 통해). 사용자는 장소(409) 내에서 아이템들을 찾고/찾거나 상기 아이템들과 연관되는 프로모션들을 고지받도록 신뢰성 있는 위치 애플리케이션(510)을 사용할 수 있는 편리성으로부터 기인하는 혜택들로 인해 그와 같이 행하는 것을 선택했었을 수 있다.
신뢰되지 않는 위치 애플리케이션(110)은 영리, 정부 또는 비영리이든 장소(409)와 연관될 수 있는 어떠한 엔티티(entity)의 경쟁자와 연관될 수 있다. 모바일 디바이스(100)의 사용자는 장소(409) 및 경쟁자와 연관되는 경쟁 장소 모두의 고객일 수 있고, 따라서 신뢰성 있는 위치 애플리케이션(510)에 의해 제공되는 것들과 유사할 수 있는 신뢰되지 않는 위치 애플리케이션(110)에 의해 제공되는 혜택들을 사용하기 위해 신뢰성 있는 위치 애플리케이션(510) 외에 신뢰되지 않는 위치 애플리케이션(110)을 다운로드할 것을 선택할 수 있다.
그러나, 신뢰되지 않은 위치 애플리케이션(110)을 실행할 때, 프로세서 구성요소(550)는 단지 사용자가 신뢰되지 않는 위치 애플리케이션(예를 들어, 경쟁 장소를 지나도록 안내되는)을 다운로드하도록 유도했던 혜택들을 제공하는 것보다 더 많은 것을 하게 될 수 있다. 신뢰되지 않은 위치 애플리케이션(110)을 실행할 때, 프로세서 구성요소(550)는 프로세서 구성요소(550)에 의해 신뢰성 있는 위치 애플리케이션(510)이 실행될 때 사용되도록 의도된 위치 정보를 동일하게 사용하는 시도를 행할 수 있다. 더 구체적으로, 프로세서 구성요소(550)는 자신이 신뢰되지 않는 위치 애플리케이션(110)을 실행함으로써 위치 제공자(170a)에 의해 생성되고 장소(409) 내에 있는 모바일 디바이스의 위치를 나타내는 위치 정보를 사용하여 경쟁 장소에서 이용가능한 유사한 아이템들의 경쟁 프로모션들을 선택 및 제시하게 될 수 있다.
다양한 실시예들에서, 애플리케이션 서버(500)는 프로세서 구성요소(550), 저장소(560) 및 애플리케이션 서버(500)를 최소한 네트워크(999)에 결합하는 인터페이스(590) 중 하나 이상을 통합한다. 저장소(560)는 제어 루틴(540) 및 신뢰성 있는 위치 애플리케이션(510) 중 하나 이상을 저장한다. 다시, 신뢰성 있는 위치 애플리케이션(510)은 크리덴셜들(537)을 통합할 수 있다. 제어 루틴(540)은 다양한 기능들을 수행하는 논리를 구현하기 위하여 프로세서 구성요소(550)가 주 프로세서 구성요소 역할을 할 때 이 프로세서 구성요소(550) 상에서 동작한 명령들의 시퀀스를 통합한다. 제어 루틴(540)을 실행할 때, 프로세서 구성요소(550)는 신뢰성 있는 위치 애플리케이션(510)을 모바일 디바이스(100)에 제공하기 위해 모바일 디바이스(100)로부터 네트워크(999)를 통해 신호를 수신할 수 있다. 응답으로, 프로세서 구성요소(550)는 신뢰성 있는 위치 애플리케이션을 모바일 디바이스(100)로 제공할 수 있다.
애플리케이션 서버(500)는 장소(409)와 연관되는 엔티티와 연관될 수 있어서, 신뢰되지 않는 위치 애플리케이션(110)은 상기 엔티티와 연관되지 않는 서버로부터 다운로드했었을 수 있게 된다. 대안으로, 서버(500)는 위치 애플리케이션들(110 및 510) 모두를 포함한 다운로드를 행하기 위해 다양한 상이한 장소들과 연관되는 다양한 위치 애플리케이션들을 제공하는 완전히 상이한 엔티티와 연관될 수 있다.
다양한 실시예들에서, 위치 서버(300)는 프로세서 구성요소(350), 저장소(360) 및 위치 서버(300)를 최소한 위치 네트워크(499)에 결합하는 인터페이스(390) 중 하나 이상을 통합한다. 저장소(360)는 제어 루틴(340), 위치 알마낙(334), 위치 데이터(333) 및 크리덴셜들(337) 중 하나 이상을 저장한다. 상술한 바와 같이, 위치 서버(300)는 위치 네트워크(499)에 의해 AP들(494a 내지 494c)에 결합되어 위치 네트워크(499)를 형성한다. 사용자가 장소(409)로 이동하자마자, 모바일 디바이스(100)는 또한 위치 네트워크(499)와 결합될 수 있다.
제어 루틴(340)은 다양한 기능들을 수행하는 논리를 구현하기 위해 프로세서 구성요소(350)가 주 프로세서 구성요소 역할을 할 때 이 프로세서 구성요소(350) 상에서 동작한 명령들의 시퀀스를 통합한다. 제어 루틴(340)을 실행할 때, 프로세서 구성요소(350)는 모바일 디바이스(100)가 위치 네트워크(499)에 결합되었음을 나타내는 신호를 AP들(494a 내지 494c) 중 하나 이상으로부터 수신할 수 있다. 응답으로, 프로세서 구성요소(350)는 위치 알마낙(334) 및 위치 데이터(333)를 모바일 디바이스(100)에 전송할 AP들(494a 내지 494c) 중 적어도 하나에 제공할 수 있다.
위치 알마낙(334)는 위치 제공자(170a)가 AP들(494a 내지 494c)에 의해 전송되는 무선 신호들을 분석하여 장소(409)의 내부 내에 있는 모바일 디바이스(100)의 위치를 결정할 수 있도록 AP들(494a 내지 494c)의 다양한 특성들 및/또는 위치들의 표시들을 제공한다. 도 2는 장소(409) 내에 있는 벽들, 출입구들, 복도들 및 체크아웃 카운터들에 대한 AP들(494a 내지 494c)의 각각의 위치들을 포함하는, 장소(409)의 예의 층 배치(floor plan)를 도시한다. 위치 알마낙(334)을 제공함으로써 위치 제공자(170a)는 AP들(494a 내지 494c)의 각각에 의해 전송되는 신호들의 강도, 방향 및/또는 타이밍 특징들(예를 들어, 신호들의 부분들 사이의 비틀림, 비행시간, 도착 시간차, 도착 또는 출발 각도 등)을 사용하여 AP들(494a 내지 494c)에 대한 모바일 디바이스(100)의 위치를 삼각 측량하는 것이 가능하다. 본래, 위치 알마낙(334)은 임의의 수효의 위치 네트워크들과 함께 사용할 수 있는 위치 제공자(170a)(구체적으로, 이의 위치 베이스밴드(179a))에게 위치 네트워크(499)와 함께 작업하도록 구체적으로 구성되는 위치 제공자가 되는 방법을 "알려준다".
모바일 디바이스(100)의 AP들(494a 내지 494c)에 대한 현재 위치를 결정하는 데 있어서, 위치 제공자(170a)는 이에 의해 장소(409) 내에서의 그리고 이 내부에서 방들, 통로들, 복도들, 진열대들 등에 대한 모바일 디바이스(100)의 현재 위치를 결정한다. 본원에서 3개의 수량의 AP들(494a 내지 494c)이 도시되고 설명될지라도, 더 적거나 더 많은 AP들을 가지는 다른 실시예들이 가능하다는 것이 주의되어야 한다. 실시예에 통합되는 AP들의 양은 AP들에 의해 전송되는 신호들로부터 위치를 결정하는 데 사용되는 기술들 및 AP들이 사용되고 있는 장소의 크기에 대비되는 각각의 AP의 전송 범위를 포함하나 이로 제한되지 않는 많은 요인들에 부분적으로 좌우될 수 있다.
도 1로 돌아가서, 위치 데이터(333)는 장소(409)의 층 배치를 규정하는 벽들, 출입구들, 복도들, 진열대들, 체크아웃 카운터들 등의 위치들의 표시들을 제공할 수 있다. 그와 같은 정보는 신뢰성 있는 위치 애플리케이션(510)에 의해 디스플레이(180) 상의 장소(409)의 내부의 맵 상에 모바일 디바이스(100)의 현재 위치를 시각적으로 제시하기 위해 사용될 수 있다. 위치 데이터(333)는 또한 장소(409) 내에서 이용 가능한 아이템들, 장소 내에서의 아이템들의 위치들 및/또는 아이템들과 연관되는 현재의 프로모션들의 표시들을 제공할 수 있다. 위치 데이터(333)를 제공함으로써 신뢰성 있는 위치 애플리케이션(510)은 아이템들의 위치들 및 현재 프로모션들의 표시들을 사용자에게 제시할 수 있다. 위치 데이터(333)를 제공함으로써 프로세서 구성요소(150)는 또한 신뢰성 있는 위치 애플리케이션(510)을 실행할 때, 사용자가 장소(409)를 지나면서 이동한 방식의 양태들로부터 사용자가 장소(409) 내에서 제공되고 있는 아이템들 중 어떤 것에 관심이 있을 수 있는지를 결정할 수 있다. 예로서, 사용자가 특정한 아이템의 위치에 잠시 멈춰선 경우, 위치 데이터(333)는 프로세서 구성요소(150)가 이 위치를 상기 아이템과 상관시키고 그 후에 사용자에게 상기 아이템과 연관되는 프로모션의 표시를 제시할 수 있게 한다.
불행하게도, 그리고 상술한 바와 같이, 프로세서 구성요소(150)가 위치 관리자(140)를 실행한 결과로 위치 제공자(170a)에 의해 위치 정보가 생성되고 이 위치 정보는 장소(409) 내에서의 모바일 디바이스(100)의 현재 위치가 신뢰성 있는 위치 애플리케이션(510) 뿐만 아니라 신뢰되지 않는 위치 애플리케이션(110)에 의해서도 사용되고 있음을 나타낸다. 신뢰되지 않는 위치 애플리케이션(110)과 연관되는 경쟁자와 연관되는 사람은 장소(409) 도처에 있는 다양한 아이템들의 위치들을 기록하기 위해 장소(409)의 내부를 돌아다니고 있을 가능성이 있을 수 있다. 이 사람이 기록한 것은 그 후에 신뢰되지 않는 위치 애플리케이션(110)과 함께 모바일 디바이스(100)에 제공되는 경쟁 데이터(133) 내에 통합됨으로써, 장소(409) 내의 아이템들 및 장소(409) 내의 이 아이템들의 위치들에 대한 상관을 제공할 수 있고, 이 상관은 위치 데이터(333)에 의해 제공되는 상관과 유사할 수 있다. 경쟁 데이터(133)는 또한 장소(409)에서 구입 가능할 수 있는 것과 유사한 아이템들에 대한 경쟁 장소에서의 프로모션들에 관한 정보를 포함할 수 있다.
신뢰되지 않는 위치 애플리케이션(110)을 실행할 때, 프로세서 구성요소(550)는 장소(409) 내에서 발견되는 아이템들과 관련되는 정보의 프리젠테이션을 경쟁 장소에 있는 아이템들과 관련되는 정보의 경쟁 프리젠테이션으로 혼란시키기 위하여 신뢰성 있는 위치 애플리케이션(510)용으로 의도된 위치 정보 및 경쟁 데이터(133) 이 둘 모두를 사용할 수 있다. 본질적으로, 사용자가 장소(409) 내에서 돌아다닐 때, 위치 애플리케이션들(510 및 110) 이 둘 모두의 제어 하에 사용자에게 경쟁 프리젠테이션들이 행해진다. 사용자가 이동할 때 장소(409) 내의 아이템에 할 수 있는 관심을 보인 것들에 응답하여, 위치 데이터(333) 및 경쟁 데이터(133) 모두가 위치를 관심 아이템일 수 있는 것과 상관시키는 데 사용되고 상기 관심 아이템과 연관되는 프로모션들에 대한 경쟁 프리젠테이션들이 행해진다. 본질적으로, 장소(409) 내에 위치 네트워크(499)를 제공하기 위해 행해지는 기반구조의 투자는 이 투자가 행해진 장소(409)와 연관되는 엔티티에 우호적으로 그리고 적대적으로 사용된다.
그와 같은 상충하는 프리젠테이션들을 방지하기 위한 노력으로, 모바일 디바이스(100)의 하나 이상의 위치 제공자들(예를 들어, 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두)은 신뢰성 있는 위치 애플리케이션들(예를 들어, 신뢰성 있는 위치 애플리케이션(510))과의 신뢰성 있는 통신들을 설정하고 이 통신에 의해 위치 정보가 상기 신뢰성 있는 위치 애플리케이션들 중 선택된 애플리케이션(들)에만 제공될 수 있도록 구성된다. 그와 같은 신뢰성 있는 통신들의 설정이 가능하도록, 모바일 디바이스의 하나 이상의 위치 제공자들(예를 들어, 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두)은 신뢰성 있는 위치 애플리케이션의 신뢰도를 검증하도록 구성된다. 당업자에게 익숙한 바와 같이, 컴퓨팅 디바이스의 다른 구성요소에 의해 컴퓨팅 디바이스의 하나의 구성요소의 신뢰도를 검증하는 것은 다양한 방식들 중 임의의 방식으로 수행될 수 있다.
논의된 바와 같이, 크리덴셜들(137, 337 및 537) 중 하나 이상은 위치 제공자들(170a 및/또는 170b), 위치 서버(300) 및 신뢰성 있는 위치 애플리케이션(510) 중 하나 이상에 통합될 수 있다. 크리덴셜들(137, 337 및 537)의 각각은 크리덴셜 서버(700) 및/또는 모바일 디바이스(100)의 제조사에 의해 허용되는 하나 이상의 크리덴셜 발행 기관들과 연관되는 다른 컴퓨팅 디바이스들, 위치 제공자들(170a 내지 170b)의 공급자, 신뢰성 있는 위치 애플리케이션(510)의 공급자 및/또는 장소(409)와 연관되는 엔티티에 의해 제공될 수 있다. 크리덴셜들(137, 337 및 537)의 각각은 다양한 공개-사설 키 생성 기술들 중 임의의 기술을 포함하여, 당업자에게 공지되어 있는 다양한 보안 크리덴셜 생성 알고리즘들 중 임의의 알고리즘을 사용하는 방식으로 성생될 수 있다.
크리덴셜들(137, 337 및 537) 중 하나 이상은 적어도 신뢰성 있는 위치 애플리케이션(510)의 신뢰도를 장소(409)와 그리고/또는 장소와 연관되는 엔티티와 연관되는 위치 애플리케이션으로서 검증하는 데 사용될 수 있다. 예로서, 크리덴셜들(537)은 키를 포함할 수 있고, 키는 신뢰성 있는 위치 애플리케이션(510)에 직접 통합될 수 있거나 또는 신뢰성 있는 위치 애플리케이션(510)은 이 키로 디지털 서명될 수 있다. 또한, 크리덴셜들(537)은 크리덴셜들(537)의 키와 관련되는 키를 포함할 수 있다. 위치 제공자(170a)는 모바일 디바이스(100)가 위치 네트워크(499)에 결합될 때 AP들(494a 내지 494c) 중 하나의 AP를 통해 위치 서버(300)로부터 크리덴셜들(337)을 수신할 수 있고, 위치 제공자(170a)는 신뢰성 있는 위치 애플리케이션(510)의 신뢰도를 검증하기 위해 크리덴셜들(337)의 키를 사용할 수 있다. 그와 같은 검증은 신뢰성 있는 위치 애플리케이션(510) 내에 임베딩(embedding)된 크리덴셜들(537)의 키를 사용하여 이 신뢰성 있는 위치 애플리케이션(510)에 의해 생성된 서명을 검증함으로써, 또는 신뢰성 있는 위치 애플리케이션(510) 자체가 디지털 서명인 경우 이 신뢰성 있는 위치 애플리케이션(510)의 적어도 일부를 직접 검증함으로써 수행될 수 있다. 위치 제공자(170a)는 그 후에 위치 네트워크(499)를 통해 위치 서버(300)에 검증의 결과들에 대한 표시를 시그널링할 수 있다.
대안의 예로서, 프로세서 구성요소(350)는 자체가 제어 루틴(340)을 실행하는 것을 통해, 신뢰성 있는 위치 애플리케이션(510)의 신뢰도의 검증을 수행할 수 있다. 그와 같은 검증을 수행하는 데 있어서 제어 루틴(340)의 신뢰성을 유지하기 위해, 프로세서 구성요소(350)는 제어 루틴(340)을 보안 모드에서 그리고/또는 제어 루틴(340)이 저장되는 저장소(360)의 일부에 액세스하는 것에 대해 여러 제한들을 두고(예를 들어, "샌드박싱" 또는 "안전 보호구역") 수행할 수 있다. 프로세서 구성요소(350)는 위치 제공자(170a)가 크리덴셜들(537)의 키를 사용하여 신뢰성 있는 위치 애플리케이션(510)에 의해 생성된 디지털 서명 또는 신뢰성 있는 위치 애플리케이션(510) 자체가 그와 같은 키에 의해 디지털 서명된 경우 적어도 신뢰성 있는 위치 애플리케이션(510)의 일부를 위치 서버(300)에 제공할 것을 요청할 수 있다. 프로세서 구성요소(350)는 그 후에 위치 제공자(170a)에게 검증의 결과들에 대한 표시를 시그널링할 수 있다.
프로세서 구성요소(350)는 신뢰성 있는 위치 애플리케이션(510)의 신뢰도의 검증 결과들에 근거하여 위치 알마낙(334) 및 위치 데이터(333) 중 하나 또는 이 둘 모두를 모바일 디바이스(100)에 조건적으로 제공할 수 있다. 대안으로 또는 추가로, 위치 제공자(170a)는 신뢰성 있는 위치 애플리케이션(510)의 검증 결과들에 근거하여 장소(409)에 있는 위치 네트워크(499)에 의해 제공되는 위치 서비스들과 연관되는 위치 정보를 신뢰성 있는 위치 애플리케이션(510)에 조건적으로 제공할 수 있다.
일부 실시예들에서, 위치 제공자들(170a 내지 170b)은 각각 자신들 어느 것이든지 이의 무결성을 손상하려는 수고들을 실질적으로 방지하고/방지하거나 이 수고들을 어렵게 하는 방식으로 모바일 디바이스(100) 내에 구성되고/되거나 통합될 수 있다. 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두를 구성하는 실행 가능한 명령들은 이 위치 제공자들의 무결성을 손상하는 방식으로 중첩기록(overwrite)되는 것을 실질적으로 방지하는 방식으로 저장소(160)의 비휘발성 부분 내에 저장될 수 있다. 위치 제공자들(170a 내지 170b)은 모바일 디바이스(100)를 제조한 기업 또는 다른 엔티티에 의해 저장소(160)의 그와 같은 비휘발성 부분 내에 로딩되는 것이 가능할 수 있다. 대안으로 또는 추가로, 위치 제공자들(170a 내지 170b) 중 하나 이상은 프로세서 구성요소(150)에 의해 실행될 수 있는 임의의 악성 코드에 의해 중첩 기록되거나 또는 다른 방식으로 방해되는 것을 실질적으로 배제하도록 프로세서 구성요소(150)와 충분히 분리되어 있는 회로 및/또는 프로세서 구성요소에 의해 구현될 수 있다. 그러므로, 일부 실시예들에서, 위치 제공자들(170a 내지 170b)은 신뢰할 수 있어서 이 위치 제공자들(170a 내지 170b)은 자신에 대한 검증 없이 신뢰성 있는 위치 애플리케이션(510)에 대한 상술한 검증을 수행하도록 신뢰되는 것이 가정될 수 있다.
그러나, 다른 실시예들에서, 서버(300)의 프로세서 구성요소(350)는, 제어 루틴(340)을 실행할 때, 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두의 신뢰도를 검증할 수 있다. 그와 같은 검증을 가능하게 하기 위해, 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두에는 크리덴셜들(137)이 제공될 수 있다. 크리덴셜들(137)은 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두의 실행 가능한 명령들(예를 들어, 위치 엔진(174a 및/또는 174b))의 일부분 내에 임베딩될 수 있거나, 또는 그와는 다른 방식으로, 위치 제공자들(170a 내지 170b) 내에 저장될 수 있다. 대안으로, 크리덴셜들(137)은 키를 포함할 수 있거나 위치 제공자들(170a 내지 170b)의 구성요소 중 하나 또는 둘 모두는 그와 같은 키에 의해 디지털 서명될 수 있다. 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두를 검증할 때, 프로세서 구성요소(350)는 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두가 위치 서버(300)에 크리덴셜들(137) 또는 이들의 키의 파생(예를 들어, 그와 같은 키로 생성되는 디지털 서명)을 제공하라고 요청할 수 있다. 프로세서 구성요소(350)는 그 후에 위치 제공자(170a)에 위치 제공자들(170a 내지 170b) 중 하나 또는 이 둘 모두의 신뢰도의 검증 결과의 표시를 시그널링할 수 있고/있거나 이 결과들을 근거로 하여 위치 알마낙(334) 및 위치 데이터(333) 중 하나 또는 이 둘 모두를 모바일 디바이스(100)에 조건적으로 제공할 수 있다.
위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510) 중 하나 또는 이 둘 모두를 성공적으로 검증하면, 이 둘 모두는 신뢰할 수 있는 것으로 취해지고/취해지거나 판명된 것으로 간주된다. 달리 말하면, 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510) 중 하나 또는 이 둘 모두의 신뢰성을 검증하면, 위치 서버(300), 위치 제공자(170a 및 신뢰성 있는 위치 애플리케이션(510) 사이에 신뢰 레벨이 설정된다. 이 신뢰 레벨이 설정되면, 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510)은 위치 정보의 안전한 교환이 가능하도록 위치 관리자(140)를 통해 자신들 사이에 신뢰성 있는 통신들을 설정한다.
그와 같은 신뢰성 있는 통신들은 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510) 중 하나 또는 이 둘 모두가 위치 제공자(170a)에 의해 생성된 위치 정보를 신뢰성 있는 위치 애플리케이션(510)에만 전달하고 신뢰되지 않는 위치 애플리케이션(110)을 포함하는 어떠한 다른 위치 애플리케이션에도 전달하지 말라는 요청으로 위치 관리자(140)에 시그널링함으로써 설정될 수 있다. 그러나, 이전에 논의된 바와 같이, 위치 관리자(140)가 속해 있을 수 있는 OS가 손상될 수 있어서 이 위치 관리자(140)는 그와 같은 위치 정보를 오로지 신뢰성 있는 위치 애플리케이션(510)에만 라우팅하지 않을 수도 있게 된다. 위치 관리자(140)는 위치 제공자들(170a 내지 170b)과는 달리, 이 OS의 나머지와 함께, 상대적으로 용이하게 대체되거나 전적으로 교체가 가능할 가능성이 있다.
그러므로, 그와 같은 위치 관리자(140)에 대한 요청을 행하는 것에 대한 대안으로 또는 그와 같이 행하는 것 이외에, 그러한 신뢰성 있는 통신들은 위치 제공자(170a)가 위치 데이터를 자신이 암호화하고(encrypt)하여 이 위치 데이터를 자신이 신뢰성 있는 위치 애플리케이션(510)에 송신하고 그리고 신뢰성 있는 위치 애플리케이션(510)이 이 위치 데이터를 복호화(decrypt)함으로써 설정될 수 있다. 그와 같은 암호화의 사용으로, 위치 관리자(140)가 위치 정보를 신뢰성 있는 위치 애플리케이션(510)에만 제공하라는 요청을 무시할지라도, 신뢰되지 않는 위치 애플리케이션(110)을 포함하는 어떠한 다른 위치 애플리케이션도 위치 정보를 이용할 수 없다. 그와 같은 암호화를 사용하는 것이 가능하도록, 크리덴셜들(337 및 537)은 그와 같은 위치 정보의 암호화 및 복호화에 각각 사용되는 관련 키들을 포함할 수 있다. 더욱이, 이 키들은 신뢰성 있는 위치 애플리케이션(510)의 신뢰도를 검증하는 데 사용되는 동일한 키들일 수 있다.
함께 취해지는 도 3 및 도 4는 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510) 사이의 신뢰성 있는 통신의 예의 실시예를 도시한다. 이전에 논의된 바와 같이, 위치 관리자(140)는 프로세서 구성요소(150)에 의해 실행되는 OS의 구성요소일 수 있다. 다시, OS가 악성 코드(예를 들어, 바이러스, 웜(worm) 등)에 의해 손상되어서 모바일 디바이스(100)의 OS가 신뢰할 수 없는 것으로 간주될 수 있는 것이 드문 것은 아니다. 그러므로, 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510) 사이의 안전한 통신들을 설정하는 데 있어서, 모바일 디바이스(100)의 OS의 위치 관리자(140) 및 다른 구성요소들은 신뢰되지 않는 위치 애플리케이션(110) 및 위치 제공자(170b)와 함께 신뢰할 수 없는 구성요소들인 것으로 간주된다. 장소(409) 내에서의 현재 위치를 나타내는 위치 정보를 교환하기 위하여 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510)만이 신뢰할 수 있는 구성요소들(102)인 것으로 간주될 수도 있다.
그러나, 이전에 논의된 바와 같이, 위치 관리자(140)는 위치 정보가 이 위치 관리자(140)를 통해 위치 제공자(170a)로부터 신뢰성 있는 위치 애플리케이션(510)으로 교환될 수 있도록 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510) 사이에 개재될 수 있다. 더욱이, 그와 같은 위치 정보의 그와 같은 교환들이 행해지는 상기 OS의 다른 부분들이 있을 수 있다. 예로서, OS는 위치 관리자(140) 및 적어도 위치 제공자(170a)가 상호 작용하는 하드웨어 추상화 계층(hardware abstraction layer; HAL)을 포함할 수 있다. 당업자에게 익숙한 바와 같이, OS의 일부분들은 상기 OS의 일부분들을 다수의 상이한 컴퓨팅 디바이스들의 각각의 다양한 디바이스 특정 양태들과 분리하는 일관된 인터페이스를 제공하는 고유 HAL을 컴퓨팅 디바이스 별로 사용하는 것을 통하여, 다수의 상이한 컴퓨팅 디바이스들에 걸쳐 상용 가능하게 제작될 수 있다(또한 "이동 가능(portable)"하게 제작되는 것으로 공지되어 있다). 그러므로, 신뢰성 있는 구성요소들(102) 사이에 개재되는 다수의 신뢰되지 않는 구성요소들(104)이 있을 수 있다.
도 4에서 더 구체적으로 도시되는 바와 같이, 위치 관리자(140)는 위치 제공자(170a)에 의해 생성되는 위치 정보를 신뢰성 있는 위치 애플리케이션(510)에만 전달하기 위해 신뢰성 있는 구성요소(102)(예를 들어, 위치 제공자(170a) 또는 신뢰성 있는 위치 애플리케이션(510)) 중 하나에 의해 시그널링될 수 있다. 위치 관리자(140)가 손상되지 않으면, 위치 관리자(140)는 상기 요청을 따를 수 있고, 그러므로, 그와 같은 신뢰성 있는 위치 정보는 신뢰성 있는 위치 애플리케이션(510)에만 전달될 수 있다. 그러나, 위치 관리자(140)가 손상되면, 위치 제공자(170a) 및 신뢰성 있는 위치 애플리케이션(510) 사이에서 신뢰성 있는 통신들을 설정하는 것은 신뢰되지 않는 위치 애플리케이션(110)이 위치 관리자(140)에 의해 제공될지라도 그와 같은 신뢰성 있는 위치 정보를 사용할 수 없도록 그러한 신뢰성 있는 위치 정보를 암호화하는 것이 필요할 수 있다.
이전에 논의된 바와 같이, 위치 제공자(170a)는 위치 제공자(170a)가 장소(409) 내에서의 모바일 디바이스(100)의 현재 위치를 결정하는 데 사용되도록 모바일 디바이스(100)가 장소(409) 내에서 운반되는 시간 동안을 제외하고, 장소(409)와 연관되는 엔티티와 연관되지 않는다. 그러므로, 모바일 디바이스(100)가 신뢰되지 않는 위치 애플리케이션(110)과 연관되는 엔티티와 연관되는 경쟁 장소 내로 운반되는 시간들을 포함하여, 모바일 디바이스(100)가 장소(409) 내에서 운반되지 않는 다른 시간들에서, 위치 제공자(170a)는 신뢰되지 않는 위치 애플리케이션(110)을 포함하여, 신뢰성 있는 위치 애플리케이션(510) 이외의 위치 애플리케이션들에 대하여 위치 정보를 생성하는 데 이용될 수 있다.
다양한 실시예들에서, 프로세서 구성요소들(150, 350 및 550)의 각각은 상업적으로 입수 가능한 광범위한 프로세서들 중 임의의 프로세서들을 포함할 수 있다. 더욱이, 이 프로세서 구성요소들 중 하나 이상은 다수의 프로세서들, 멀티 스레드(multi-thread) 형 프로세서, 멀티 코어(multi-core) 프로세서(다수의 코어들이 동일한 다이(die) 상에 함께 공존하든 또는 별개의 다이들 상에서 공존하든 간에) 및/또는 물리적으로 별개인 다수의 프로세서들이 어떻게든 링크되는 어떤 다른 변형의 멀티 프로세서 아키텍처를 포함할 수 있다.
다양한 실시예들에서, 저장소들(160, 360 및 560)의 각각은 가능하다면 중단없는 전력의 제공을 요구하는 휘발성 기술들을 포함하고, 그리고 가능하다면 제거 가능할 수 있거나 제거 가능할 수 없는 머신 판독 가능 저장 매체를 사용할 것을 수반하는 기술들을 포함하는, 광범위한 정보 저장 기술들 중 임의의 기술에 기초할 수 있다. 그러므로, 이 저장소들의 각각은 제한 없이, 판독 전용 메모리(read-only memory; ROM), 랜덤 액세스 메모리(random access memory; RAM), 동적 RAM(dynamic RAN; DRAM), 더블 데이터 레이트 DRAM(Double-Data-Rate DRAM; DDR-DRAM), 동기 DRAM(synchronous DRAM; SDRAM), 정적 RAM(static RAM; SRAM), 프로그램 가능 ROM(programmable ROM; PROM), 소거 가능 프로그램 가능 ROM(erasable programmable ROM; EPROM), 전기적 소거 가능 프로그램 가능 ROM(electrically erasable programmable ROM; EEPROM), 플래시 메모리, 중합체 메모리(polymer memory)(예를 들어, 강유전성 중합체 메모리), 오보닉 메모리(ovonic memory), 상 변화 또는 강유전성 메모리, 실리콘-옥사이드-나이트라이드-옥사이드-실리콘(silicon-oxide-nitride-oxide-silicon; SONOS) 메모리, 자기 또는 광 카드들, 하나 이상의 개별 강자성 디스크 드라이브들 또는 하나 이상의 어레이(array)들(예를 들어, 복수 배열 독립 디스크(redundant array of independent disk) 어레이, 또는 RAID 어레이로 조직되는 다수의 강자성 디스크 드라이브들)로 조직되는 복수의 저장 디바이스들을 포함하는 광범위한 유형들의(또는 유형들이 결합된) 저장 디바이스 중 임의의 디바이스를 포함할 수 있다. 이 저장소들의 각각이 단일 블록으로 도시될지라도, 이것들 중 하나 이상은 상이한 저장 기술들에 기초할 수 있는 다수의 저장 디바이스들을 포함할 수 있음이 주의되어야 한다. 그러므로, 예를 들어, 이 도시된 저장소들의 각각의 하나 이상은 프로그램들 및/또는 데이터가 어떤 형태의 머신 판독가능 저장 매체 상에서 저장되고 전달되는 광 드라이브 또는 플레시 메모리 카드 판독기, 프로그램들 및/또는 데이터를 상대적으로 연장된 기간 동안 국지적으로 저장하는 강자성 디스크 드라이브 및 프로그램들 및/또는 데이터에 비교적 빠르게 액세스하는 것이 가능한 하나 이상의 휘발성 고체 메모리 디바이스들(예를 들어, SRAM 또는 DRAM)의 결합을 표현할 수 있다. 또한 이 저장소들의 각각이 동일한 저장 기술에 기초하지만 전문화하여 사용하는 결과로서 별개로 유지될 수 있는 다수의 저장 구성요소들로 구성될 수 있음이 주목되어야 한다(예를 들어, 일부 DRAM 디바이스들은 주 저장소로서 사용되고 반면에 다른 DRAM 디바이스는 그래픽 제어기의 구별되는 프레임 버퍼로서 사용된다).
다양한 실시예들에서, 인터페이스들(190, 390 및 590)의 각각은 컴퓨팅 디바이스들이 설명된 바와 같이 다른 디바이스들과 결합되도록 할 수 있는 광범위한 시그널링 기술들 중 임의의 기술을 사용할 수 있다. 이 인터페이스들의 각각은 그와 같은 결합을 가능하게 하는 필수 기능 중 적어도 일부를 제공하는 회로를 포함할 수 있다. 그러나, 이 인터페이스들의 각각은 또한 적어도 부분적으로 프로세서 구성요소들 중 대응하는 구성요소들에 의해 실행되는 명령들의 시퀀스들에 의해 구현될 수 있다(예를 들어, 프로토콜 스택(protocol stack) 또는 다른 특징들을 구현하기 위하여). 전기 및/또는 광 전도 케이블링(cabling)이 사용되는 경우, 이 인터페이스들은 제한 없이, RS-232C, RS-422, USB, 이더넷(IEEE-802.3) 또는 IEEE--1394를 포함하는 다양한 산업 표준들 중 임의의 표준에 따르는 시그널링 및/또는 프로토콜들을 사용할 수 있다. 무선 신호 전송을 사용하는 것이 수반되는 경우, 이 인터페이스들은 제한 없이, IEEE 802.11a, 802.11b, 802.11g, 802.16, 802.20(흔히 "모바일 광대역 무선 액세스"로 칭해진다); 블루투스; 지그비(ZigBee); 또는 범용 패킷 무선 서비스에 의한 GSM(GSM with General Packet Radio Service; GSM/GPRS), CDMA/1xRTT, 전체 진화를 위한 강화된 데이터 레이트(enhanced data rates for global evolution; EDGE), 진화 데이터 전용/최적화(Evolution Data Only/Optimized; EV-DO), 데이터 및 음성에 대한 진화(Evolution For Data and Voice; EV-DV), 고속 다운링크 패킷 액세스(High Speed Downlink Packet Access; HSDPA), 고속 업링크 패킷 액세스(High Speed Uplink Packet Access; HSUPA), 4G LTE 등을 포함하는 다양한 산업 표준들 중 임의의 표준에 따른 시그널링 및/또는 프로토콜들을 사용할 수 있다.
도 5, 도 6 및 도 7은 각각 위치 시스템(1000)의 하나의 실시예의 일부분의 블록도를 더 상세하게 도시한다. 더 구체적으로, 도 5는 프로세서 구성요소(350)가 제어 루틴(340)을 실행할 때, 위치 서비스들을 모바일 디바이스들(예를 들어, 모바일디바이스(100))에 제공하기 위해 AP들(494a 내지 494c)과 협력하는 위치 서버(300)의 동작 환경의 양태들을 도시한다. 도 6은 프로세서 구성요소(150)가 위치 제공자(170a 및/또는 170b), 위치 관리자(140) 및/또는 신뢰성 있는 위치 애플리케이션(510) 중 하나 이상을 실행할 때, 장소(예를 들어, 장소(409)) 내의 위치들을 이 장소 내에서 제공되는 아이템들과 상관시키고, 관련 정보를 사용자에게 제시하는 모바일 디바이스(100)의 하나의 실시예의 동작 환경의 양태들을 도시한다. 도 7은 다양한 프로세서 구성요소들(150, 250a 및 250b)이 위치 제공자(170a 및/또는 170b), 위치 관리자(140) 및/또는 신뢰성 있는 위치 애플리케이션(510) 중 하나 이상을 별도로 실행할 때 도 6의 실시예와 동일한 기능들을 수행하는 모바일 디바이스(100)의 대안의 실시예의 동작 환경의 양태들을 도시한다. 당업자에게 인정될 수 있는 바와 같이, 각각 구성되어 있는 구성요소들을 포함하는 제어 루틴(340), 위치 제공자들(170a 및/또는 170b)의 실행 가능한 부분들, 위치 관리자(140) 및 신뢰성 있는 위치 애플리케이션(510)은 프로세서 구성요소들(150, 250a, 250b 및 350)의 대응하는 것들을 구현하기 위해 선택되는 프로세서 또는 프로세서들이 어떤 유형이던지 간에 그 프로세서 또는 프로세서들 상에서 동작하도록 선택된다.
더 구체적으로 도 5로 전환해서, 제어 루틴(340)은 인터페이스(390)가 위치 알마낙(334) 및 위치 데이터(333) 중 하나 또는 이 둘 모두를 AP들(494a 내지 494c) 중 적어도 하나에 전송하고, 순차적으로, 이 적어도 하나의 AP가 알마나(334) 및 위치 데이터(333) 중 하나 또는 이 둘 모두를 모바일 디바이스(예를 들어, 모바일 디바이스(100))에 전송하도록 동작시키기 위해 위치 서비스 구성요소(343)를 포함할 수 있다. 이와 같이 행하는 데 있어서, 위치 서비스 구성요소로 인해 모바일 디바이스는 AP들(494a 내지 494c)에 의해 자신에게 전송되는 신호들을 분석함으로써 장소(409) 내에서의 자신의 현재 위치를 결정하고 장소 내에서 제공되는(예를 들어, 세일, 렌트 등을 위해 제공되는) 아이템들을 장소(409) 내에서의 상기 아이템들의 위치들과 상관시키는 것이 가능하다.
제어 루틴(340)은 최소한 모바일 디바이스의 신뢰성 있는 위치 애플리케이션(예를 들어, 모바일 디바이스(100)의 신뢰성 있는 위치 애플리케이션(510))의 검증을 보조하는 검증 구성요소(345)를 포함할 수 있다. 논의된 바와 같이, 검증 구성요소(345)는 모바일 디바이스의 위치 제공자(예를 들어, 모바일 디바이스(100)의 위치 제공자(170a))의 크리덴셜들을 요청하고 상기 위치 제공자를 검증하기 위해 이 크리덴셜들을 크리덴셜들(337)과 함께 사용할 수 있다. 검증 구성요소(345)는 모바일 디바이스의 신뢰성 있는 위치 애플리케이션(예를 들어, 모바일 디바이스(100)의 신뢰성 있는 위치 애플리케이션(510))의 크리덴셜들을 요청하고 상기 신뢰성 있는 위치 애플리케이션을 검증하기 위해 이 크리덴셜들을 크리덴셜들(337)과 함께 사용할 수 있다. 검증 구성요소(345)는 상기 모바일 디바이스의 위치 제공자(예를 들어, 모바일 디바이스(100)의 위치 제공자(170a))가 모바일 디바이스의 신뢰성 있는 위치 애플리케이션(예를 들어, 신뢰성 있는 위치 애플리케이션(510))를 검증하는 것이 가능하도록 상기 모바일 디바이스에 크리덴셜들(337)을 제공할 수 있다. 검증 구성요소(345)는 크리덴셜들(337), 위치 알마낙(334) 또는 위치 데이터(333) 중 하나 이상이 상기 모바일 디바이스로 전송되는 것을 허용할지를 결정하기 위하여 그와 같은 검증들 중 하나 이상의 결과들을 사용할 수 있다.
더 구체적으로 도 6으로 전환하여, 위치 제공자들(170a 및 170b)의 각각은 모바일 디바이스(100) 내에 저장되는 신뢰성 있는 위치 애플리케이션(예를 들어, 저장소(160) 내에 저장되는 신뢰성 있는 위치 애플리케이션(510))을 검증하기 위해 각각 검증 구성요소(175a 또는 175b)를 포함할 수 있다. 논의된 바와 같이, 검증 구성요소(175a 및 175b)는 상기 신뢰성 있는 위치 애플리케이션과 연관되는 장소의 위치 네트워크로부터 그와 같은 검증에 사용될 크리덴셜들(예를 들어, 신뢰성 있는 위치 애플리케이션(510)과 연관되는 위치 네트워크(499)로부터 수신되는 크리덴셜들(337))을 수신할 수 있다. 검증 구성요소(175a 또는 175b)는 신뢰성 있는 위치 애플리케이션으로부터의 크리덴셜들을 요청하고 상기 신뢰성 있는 위치 애플리케이션에 대한 검증을 수행하기 위해 이 크리덴셜들을 위치 네트워크로부터 수신된 크리덴셜들과 함께 사용할 수 있다. 검증 구성요소(175a 또는 175b)는 장소 내에서의 모바일 디바이스의 현재 위치를 나타내는 위치 정보가 상기 신뢰성 있는 위치 애플리케이션으로 전달되는 것을 허용할지를 결정하기 위해 검증의 결과들을 사용할 수 있다.
위치 제공자들(170a 및 170b)의 각각은 장소(예를 들어, 장소(409)) 내에서의 모바일 디바이스(100)의 현재 위치를 나타내는 위치 데이터를 위치 관리자(140)를 통해 신뢰성 있는 위치 애플리케이션(예를 들어, 신뢰성 있는 위치 애플리케이션(510))에 전달하기 전에 이 위치 데이터를 암호화하기 위해 각각 암호화 구성요소(177a 또는 177b)를 포함할 수 있다. 이전에 설명된 바와 같이, 위치 제공자들(170a 내지 170b), 위치 관지자(140) 및 임의의 위치 애플리케이션들(신뢰성 있든 또는 신뢰되지 않던 간에)이 상이한 소스(source)들로부터 제공될 수 있음이 예상된다. 또한 설명되는 바와 같이, 위치 제공자들(170a 내지 170b)이 신뢰할 수 있는 것으로 취해질 수 있고, 위치 애플리케이션들 중 하나 이상이 신뢰할 수 있는 것으로 검증될 수 있을지라도, 모바일 디바이스들의 전형적인 아키텍처는 결과적으로 위치 관리자(140)가 OS의 구성요소이므로 위치 관리자(140)의 신뢰도를 의심스럽게 만들 수 있다. 그러므로, 위치 관리자(140)에게 위치 제공자들(170a 또는 170b0) 중 하나 또는 다른 하나로부터의 위치 정보를 단 하나의 신뢰성 있는 위치 애플리케이션에만 라우팅하라는 요청이 시그널링될지라도, 그와 같은 위치 정보는 위치 관리자(140)가 그와 같은 요청을 준수하지 않을 가능성을 처리하기 위해 암호화될 수 있다.
더 구체적으로 도 7로 전환해서, 도 7의 모바일 디바이스의 대안의 실시예의 동작 환경은 많은 방식들에서 도 6의 실시예의 동작 환경들과 실질적으로 유사하다. 그러므로, 논의의 간소화 및 이해를 위해, 실질적으로 유사한 구성요소들에는 동일한 참조 번호들이 주어졌다.
도 7의 실시예는 위치 제공자들(170a 및 170b)의 각각이 각각 별개의 프로세서 구성요소들(250a 및 250b)에 의해 구현되는 점에서 도 6의 실시예와 상이하다. 프로세서 구성요소들(250a 및 250b)은 서로 완전히 독립적으로 그리고/또는 프로세스 구성요소(150)와 완전히 독립적으로 동작한다. 이전에 설명된 바와 같이, 위치 제공자들(170a 및 170b)의 각각의 신뢰도는 이 위치 제공자들(170a 및 170b) 중 하나 또는 이 둘 모두의 무결성을 손상시키는 것을 상당히 어렵게 하도록 각 위치 제공자가 프로세서 구성요소(150)의 동작으로부터 충분히 격리되도록 구성된 결과로서 취해질 수 있다. 위치 제공자들(170a 및 170b)의 각각에 독립 프로세서 구성요소(250a 및 250b)를 각각 제공하는 것은 그와 같은 충분한 격리를 제공하는 데 취해지는 조치들의 일부일 수 있다.
도 7의 실시예는 또한 위치 제공자들(170a 및 170b)의 각각이 도 6에 도시된 바와 같이 단일 인터페이스(190)를 공유하는 대신, 각각 인터페이스들(190a 및 190b) 중 별개의 인터페이스들로 구현되는 점에서 도 6의 실시예와 상이하다. 위치 제공자들(170a 및 170b)의 각각은 완전히 별개인 인터페이스 구성요소들(예를 들어, 복조기들, 무선 주파수 증폭기들 등)을 제공하는 것을 필요로 하고/하거나 실용적으로 만들도록 충분히 상이한 기술들(예를 들어, 충분히 상이한 주파수 및/또는 다른 특성의 무선 신호들을 수신하는)을 사용할 수 있다. 더욱이, 논의된 바와 같이, 위치 제공자들(170a 및 170b)의 각각의 상당한 부분들은 회로로 구현될 수 있고 그와 같은 회로 내내 위치 제공자 별로 별개의 인터페이스를 포함하는 것이 바람직한 것으로 간주될 수 있다.
도 8은 논리 흐름도(2100)의 하나의 실시예를 도시한다. 논리 흐름도(2100)는 본원에서 설명되는 하나 이상의 실시예들에 의해 실행되는 동작들 중 일부 또는 모두를 표현할 수 있다. 더 구체적으로, 논리 흐름도(2100)는 적어도 제어 루틴(340)을 실행할 때 프로세서 구성요소(350)에 의해 수행되는 그리고/또는 위치 서버(300)의 다른 구성요소(들)에 의해 실행되는 동작들을 설명할 수 있다.
2110에서, 위치 서비스들을 제공하는 위치 네트워크에 결합되고 장소와 연관되는 위치 서버의 프로세서 구성요소(예를 들어, 장소(409)의 위치 네트워크(499)에 결합되는 위치 서버(300)의 프로세서 구성요소(350))는 위치 네트워크에 결합되는 모바일 디바이스(예를 들어, 모바일 디바이스(100))의 표시를 수신한다. 이전에 논의된 바와 같이, 위치 네트워크(409)는 적어도 부분적으로, 모바일 디바이스의 위치 제공자(예를 들어, 위치 제공자(170a)가 장소(409) 내에서의 모바일 디바이스의 위치를 결정할 수 있도록 하는 신호들을 전송하는 다수의 AP들(예를 들어, AP들(494a 내지 494c)에 의해 구성된다.
2120에서, 신호의 수신에 응답하여, 크리덴셜들은 장소와 연관되는 신뢰성 있는 위치 애플리케이션(예를 들어, 위치 애플리케이션(510))의 신뢰도를 검증하기 위해 모바일 디바이스의 위치 제공자의 일부분(예를 들어, 검증 구성요소(175a))에 의해 사용되도록 모바일 디바이스에 제공된다. 이전에 논의된 바와 같이, 서버(300) 및 신뢰성 있는 위치 애플리케이션(510) 모두에는 관련되는 크리덴셜들(예를 들어, 각각 크리덴셜들(337 및 537))이 제공되어서, 양 크리덴셜들 모두는 신뢰성 있는 위치 애플리케이션을 검증하기 위해 함께 사용될 수 있게 된다. 또한 논의된 바와 같이, 신뢰성 있는 위치 애플리케이션의 크리덴셜들은 내부에 임베딩될 수 있거나 신뢰성 있는 위치 애플리케이션은 자신과 연관되는 크리덴셜들로 디지털 서명될 수 있다. 그러므로, 검증을 수행하기 위해 위치 제공자에 제공되는 특정한 크리덴셜들은 신뢰성 있는 위치 애플리케이션 자체의 일부분일 수 있고/있거나 신뢰성 있는 위치 애플리케이션에 의해 자체와 연관되는 크리덴셜들을 사용하여 생성되는 서명일 수 있다.
2130에서, 위치 서버는 위치 네트워크를 통해 신뢰성 있는 위치 애플리케이션의 검증의 결과들의 표시를 수신한다. 2130에서, 신뢰성 있는 위치 애플리케이션이 검증되었음을 이 결과들이 표시하면, 위치 알마낙 및/또는 위치 데이타는 위치 네트워크를 통해 모바일 디바이스로 전송된다. 이전에 설명된 바와 같이, 위치 알마낙은 위치 제공자에게 장소 내에서의 모바일 디바이스의 위치를 결정하는 방법을 효율적으로 "알려주기" 위해 장소 내에서의 위치 네트워크의 각각의 AP의 위치들 및 각각의 AP의 하나 이상의 특성들을 표시를 제공한다.
도 9는 논리 흐름도(2200)의 하나의 실시예를 도시한다. 논리 흐름도(2200)는 본원에서 설명된 하나 이상의 실시예들에 의해 실행되는 동작들의 일부 또는 모두를 표현할 수 있다. 더 구체적으로, 논리 흐름도(2200)는 위치 제공자(170a)의 하나 이상의 실행 가능한 부분들을 실행할 때 프로세서 구성요소(150 또는 250a) 중 어느 하나에 의해 수행되고/수행되거나 모바일 디바이스(100)의 다른 구성요소(들)에 의해 수행되는 동작들을 도시할 수 있다.
2210에서, 장소의 위치 네트워크에 결합되었던 모바일 디바이스의 프로세서 구성요소(예를 들어, 장소(409)의 위치 네트워크(499)에 결합된 모바일 디바이스(100)의 프로세서 구성요소(150 또는 250a), 맵 통합 시스템(1000)의 컴퓨팅 디바이스(300))는 신뢰성 있는 위치 애플리케이션(예를 들어, 신뢰성 있는 위치 애플리케이션(510))의 신뢰도를 검증하는 데 사용되는 크리덴셜들을 위치 네트워크로부터 수신한다. 2220에서, 프로세서 구성요소는 또한 신뢰성 있는 위치 애플리케이션으로부터 검증될 크리덴셜들을 수신한다. 다시, 이전에 논의된 바와 같이, 위치 네트워크로부터 그리고 신뢰성 있는 위치 애플리케이션과 연관되는 크리덴셜들이 생성되어서 이 크리덴셜은 신뢰성 있는 위치 애플리케이션을 검증하기 위해 함께 사용되는 것이 가능하도록 관련된다.
2230에서, 양 크리덴셜 모두는 그렇게 사용되고 2240에서 결과들에 대한 체크가 행해진다. 2240에서, 신뢰성 있는 위치 애플리케이션이 그렇게 검증되면, 위치 관리자에게는 2250에서 위치 제공자에 의해 생성되는 위치 정보를 신뢰성 있는 위치 애플리케이션에만 라우팅하라는 요청이 시그널링된다. 그러나, 이전에 논의된 바와 같이, 위치 관리자는 이 요청을 준수하지 않도록 손상되었을 수 있다.
위치 관리자가 그렇게 손상될 가능성에 응답하여, 위치 정보는 2270에서 자신이 위치 관리자를 통해 신뢰성 있는 위치 애플리케이션에 전달되기 전에 2260에서 위치 제공자에 의해 암호화된다. 논의된 바와 같이, 위치 정보를 암호화하기 위해 위치 제공자에 의해 사용되는 키는 위치 네트워크로부터 수신될 수 있다(예를 들어, 위치 네트워크와 연관되는 위치 서버에 의해 제공되는). 또한, 위치 정보를 암호화하기 위해 위치 제공자에 의해 사용되는 모든 키는 위치 네트워크로부터 수신되는 크리덴셜들 내로 통합될 수 있고 위치 정보를 복호화하기 위해 신뢰성 있는 위치 애플리케이션에 의해 사용되는 키 둘 모두는 신뢰성 있는 위치 애플리케이션과 연관되는 크리덴셜들 내로 통합될 수 있다.
도 10은 논리 흐름도(2300)의 하나의 실시예를 도시한다. 논리 흐름도(2300)는 본원에서 설명된 하나 이상의 실시예들에 의해 실행되는 동작들 중 일부 또는 모두를 표현할 수 있다. 더 구체적으로, 논리 흐름도(2200)는 위치 제공자(170a)의 하나 이상의 실행 가능한 부분들을 실행할 때 프로세서 구성요소(150 또는 250a) 중 어느 하나에 의해 수행되고/되거나 모바일 디바이스(100)의 다른 구성요소(들)에 의해 수행되는 동작들을 도시할 수 있다.
2310에서, 장소의 위치 네트워크에 결합되었던 모바일 디바이스의 프로세서 구성요소(예를 들어, 장소(409)의 위치 네트워크에 결합된 모바일 디바이스(100)의 프로세서 구성요소(150 또는 250a), 맵 통합 시스템(1000)의 컴퓨팅 디바이스(300))는 위치 네트워크로부터 크리덴셜들에 대한 요청을 수신한다. 프로세서 구성요소는 이 요청에 따라, 2320에서 요청된 크리덴셜을 위치 네트워크 상으로 전송한다. 논의된 바와 같이, 위치 네트워크와 연관되는 위치 서버(예를 들어, 위치 네트워크(499)에 결합되는 위치 서버(300))는 모바일 디바이스에 의해 상기 위치 네트워크와 함께 사용되는 위치 제공자(예를 들어, 위치 네트워크(499)와 함께 사용되는 위치 제공자(170a))의 신뢰도를 검증하기 위해 크리덴셜들을 요청할 수 있다.
2330에서, 모바일 디바이스는 자신의 위치 제공자의 검증의 결과들을 수신한다. 위치 제공자가 2340에서 검증되었다면, 모바일 디바이스는 위치 네트워크의 장소와 연관되고 모바일 디바이스 내에 저장되는 신뢰성 있는 위치 애플리케이션(예를 들어, 저장소(160) 내에 저장되는 신뢰성 있는 위치 애플리케이션(510))의 신뢰도를 검증할 때 위치 제공자에 의해 사용되기 위해 위치 네트워크로부터 크리덴셜들을 수신한다.
2360에서, 신뢰성 있는 위치 애플리케이션의 크리덴셜들은 신뢰성 있는 위치 애플리케이션을 검증할 때 위치 제공자에 의해 사용되기 위해 검색된다. 2370에서, 위치 네트워크로부터 수신되고 신뢰성 있는 위치 애플리케이션으로부터 검색된 크리덴셜들은 신뢰성 있는 위치 애플리케이션을 검증하기 위해 위치 제공자에 의해 사용된다.
도 11은 이전에 설명된 바와 같이 다양한 실시예들을 구현하는 데 적합한 예시의 프로세싱 아키텍처(3000)의 하나의 실시예를 도시한다. 더 구체적으로, 프로세싱 아키텍처(3000)(또는 이의 변형들)는 컴퓨팅 디바이스(300)의 일부로서 구현될 수 있다. 프로세싱 아키텍처(3000)의 구성요소들에는 마지작 두 자릿수가 이전에 도시되고 컴퓨팅 디바이스들(100, 300 또는 500) 중 하나 이상의 일부로서 설명된 구성요소들의 적어도 일부의 참조 숫자들의 마지막 두 자릿수에 대응하는 참조 번호들이 제공되는 점이 주의되어야 한다. 이것은 각각의 구성요소들을 상관시키는 데에 대한 보조로서 행해진다.
프로세싱 아키텍처(3000)는 제한 없이, 하나 이상의 프로세서들, 멀티 코어 프로세서들, 코 프로세서들, 메모리 유닛들, 칩셋들, 제어기들, 주변장치들, 인터페이스들, 오실레이터들, 타이밍 디바이스들, 비디오 카드들, 오디오 카드들, 멀티미디어 입력/출력(iput/output; I/O) 구성요소들, 전력 공급기들 등을 포함하여, 디지털 프로세싱에 흔히 사용되는 다양한 요소들을 포함한다. 본 출원에서 사용되는 바와 같이, 용어들 "시스템" 및 "구성요소"는 디지털 프로세싱이 실행되는 컴퓨팅 디바이스의 엔티티를 칭하도록 의도되고, 이 엔티티는 하드웨어, 하드웨어 및 소프트웨어의 결합, 소프트웨어 또는 실행 중 소프트웨어이고, 이의 예들은 이 도시된 실례의 프로세싱 아키텍처에 의해서 제공된다. 예를 들어, 구성요소는 프로세서 구성요소 상에서 작동하는 프로세스, 프로세서 구성요소 자체, 광 및/또는 자기 저장 매체를 사용할 수 있는 저장 디바이스(예를 들어, 하드 디스크 드라이브, 어레이로의 다수의 저장 디바이스들 등), 소프트웨어 객체, 실행 가능한 명령들의 시퀀스, 실행 스레드(thread of execution), 프로그램 및/또는 전체 컴퓨팅 디바이스(예를 들어, 전체 컴퓨터)일 수 있으나 이로 제한되지 않는다. 실례로, 서버 상에서 작동하는 애플리케이션 및 서버 이 둘 모두는 구성요소일 수 있다. 하나 이상의 구성요소들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 구성요소는 하나의 컴퓨팅 디바이스 상에 국지화되고/되거나 둘 이상의 컴퓨팅 디바이스들 사이에 분포될 수 있다. 더욱이, 구성요소들은 동작들을 조정하기 위해 다양한 유형들의 통신 메체에 의해 서로 통싱적으로 결합될 수 있다. 이 조정은 정보의 단방향 또는 양방향 교환을 수반할 수 있다. 예를 들어, 구성요소들은 통신 매체를 통해 통신되는 신호들의 형태로 정보를 통신할 수 있다. 정보는 하나 이상의 신호 라인들에 할당되는 신호들로서 구현될 수 있다. 메시지(명령, 상태, 어드레스 또는 데이터 메시지를 포함하는)는 그와 같은 신호들 중 하나일 수 있거나 복수의 그와 같은 신호들일 수 있고, 다양한 접속들 및/또는 인터페이스들 중 임의의 접속 및/또는 인터페이스를 통해 연속해서 또는 실질적으로 동시에 전송될 수 있다.
도시되는 바와 같이, 프로세싱 아키텍처(3000)를 구현하는 데 있어서, 컴퓨팅 디바이스는 적어도 프로세서 구성요소(950), 저장소(960), 다른 디바이스들로의 인터페이스(990) 및 커플링(955)을 포함할 수 있다. 설명되는 바와 같이, 컴퓨팅 디바이스의 사용 의도 및/또는 사용 여건을 포함하여, 프로세싱 아키텍처(3000)를 구현하는 컴퓨팅 디바이스의 다양한 양태들에 따라, 그와 같은 컴퓨팅 디바이스는 제한 없이 디스플레이 인터페이스(985)와 같은 추가 구성요소들을 더 포함할 수 있다.
커플링(955)은 하나 이상의 버스들, 포인트 대 포인트 상호접속부들, 송수신기들, 버퍼들, 크로스포인트 스위치들 및/또는 적어도 프로세서 구성요소(950)를 저장소(960)에 통신적으로 결합하는 다른 컨턱터들 및/또는 논리를 포함할 수 있다. 커플링(955)은 프로세서 구성요소(950)를 인터페이스(990), 오디오 서브시스템(970) 및 디스플레이 인터페이스(985) 중 하나 이상에 더 결합할 수 있다(이들 그리고/또는 다른 구성요소들 중 어떤 구성요소가 또한 존재하는지에 좌우된다). 프로세서 구성요소(950)가 커플링들(955)에 의해 그렇게 결합되면, 상술한 컴퓨팅 디바이스들 중 어느 디바이스(들)든지 프로세싱 아키텍처(3000)를 구현하므로, 프로세서 구성요소(950)는 위에 소상하게 기술된 업무들 중 다양한 업무들을 수행할 수 있다. 커플링(955)은 신호들이 광학적으로 그리고/또는 전기적으로 전달되는 다양한 기술들 또는 기술들의 결합들 중 임의의 기술로 구현될 수 있다. 더욱이, 커플링들(955)의 적어도 일부분들은 제한 없이, 가속 그래픽 포트(Accelerated Graphics Port; AGP), 카드버스(CardBus), 확장 산업 표준 아키텍처(Extended Industry Standard Interconnect; E-ISA), 마이크로 채널 아키텍처(Micro Channel Architecture; MCA), 누버스(NuBus), 주변장치 구성요소 상호 접속(확장형)(Peripheral Component Interconnect; PCI-X), PCI 익스프레스(PCI-Express; PCI-E), 개인용 컴퓨터 메모리 카드 국제 협회(Personal Computer Memory Card International Association; PCMCIA) 버스, HyperTransport™, 퀵패스(QuickPath) 등을 포함하는 광범위한 산업 표준들 중 임의의 표준을 따르는 타이밍들 및/또는 프로토콜들을 사용할 수 있다.
이전에 논의된 바와 같이, 프로세서 구성요소(950)(프로세서 구성요소들(150 및 350) 중 하나 이상에 대응하는)는 광범위하게 상업적으로 구입 가능하고 광범위한 기술들 중 임의의 기술을 사용하고 다수의 방식들 중 임의의 방식으로 물리적으로 결합되는 하나 이상의 코어들로 구현되는 프로세서들 중 임의의 프로세서를 포함한다.
이전에 논의된 바와 같이, 저장소(960)(저장소들(160 및 360) 중 하나 이상에 대응하는)는 광범위한 기술들 또는 기술들의 결합들 중 임의의 기술에 기초하여 하나 이상의 별개의 저장 디바이스들로 구성될 수 있다. 더 구체적으로, 도시된 바와 같이, 저장소(960)는 휘발성 저장소(961)(예를 들어, RAM 기술의 하나 이상의 형태들에 기초하는 고체 저장소), 비휘발성 저장소(962)(예를 들어, 자체의 내용들을 보전하기 위해 전력을 계속 공급할 필요가 없는 고체, 강자성체 또는 다른 저장소) 및 제거 가능 매체 저장소(963)(예를 들어, 정보가 컴퓨팅 디바이스들 사이에서 전달될 수 있는 제거 가능 디스크 또는 고체 메모리 카드 저장소) 중 하나 이상을 포함할 수 있다. 이 저장소(960)를 가능하면 다수의 별개의 유형들의 저장소를 포함하는 것으로 도시한 것은 컴퓨팅 디바이스들에서 하나보다 더 많은 저장 디바이스가 흔히 사용되어 이 컴퓨터 디바이스들에서 하나의 유형이 프로세서 구성요소(950)에 의해 데이터를 더 신속하게 조작하는 것이 가능한 상대적으로 빠른 판독 및 기록 능력들을 제공하고(그러나 전력을 끊임없이 요구할 가능성이 있는 "휘발성" 기술을 사용한다) 반면에 다른 유형이 상대적으로 높은 비휘발성 저장 밀도를 제공하는(그러나, 상대적으로 느린 판독 및 기록 능력들을 제공할 가능성이 있다) 것을 인정하는 것이다.
상이한 기술들을 사용하는 상이한 저장 디바이스들의 흔히 상이한 특성들의 경우, 그와 같은 상이한 저장 디바이스들은 상이한 저장 제어기들이 상이한 인터페이스들을 통해 자체의 상이한 저장 디바이스들에 결합되는 것을 통해 컴퓨팅 디바이스의 다른 부분들에 결합되는 것 또한 흔히 있는 일이다. 예로서, 휘발성 저장소(961)가 존재하고 이 휘발성 저장소가 RAM 기술에 기초하는 경우, 휘발성 저장소(961)는 아마도 행 또는 열 어드레싱(addressing)을 사용하는 휘발성 저장소(961))에 적절한 인터페이스를 제공하는 저장 제어기(965a)를 통해 커플링(955)에 통신적으로 결합될 수 있고, 여기서 저장 제어기(965a)는 휘발성 저장소(961) 내에 저장되어 있는 정보를 보존하는 것을 보조하기 위해 행 리프레싱(refreshing) 및/또는 다른 유지관리 업무들을 수행할 수 있다. 다른 예로서, 비휘발성 저장소(962)가 존재하고 이 비휘발성 저장소가 하나 이상의 강자성체 및/또는 고체 디스크 드라이브들을 포함하는 경우, 비휘발성 저장소(962)는 아마도 정보의 블록들 및/또는 실린더들 및 섹터들의 어드레싱을 이용하는 비휘발성 저장소(962)에 적절한 인터페이스를 제공하는 저장 제어기(965b)를 통해 커플링(955)에 통신적으로 결합될 수 있다. 또 다른 예로서, 제거 가능 매체 저장소(963)가 존재하고 이 제거 가능 매체 저장소가 머신 판독 가능 저장 매체(969)의 하나 이상의 피스(piece)를 사용하는 하나 이상의 광 및/또는 고체 디스크 드라이브들을 포함하는 경우, 제거 가능 매체 저장소(963)는 아마도 정보의 블록들의 어드레싱을 사용하는 제거 가능 매체 저장소(963)에 적절한 인터페이스를 제공하는 저장 제어기(965c)를 통해 커플링(955)에 통신적으로 결합될 수 있고, 여기서 저장 제어기(965c)는 머신 판독 저장 매체(969)의 수명을 연장하는 데 특정한 방식으로 판독, 소거 및 기록 동작들을 조정할 수 있다.
휘발성 저장소(961) 또는 비휘발성 저장소(962) 중 하나 또는 다른 하나는 제조 물품을 각각이 기초하고 있는 기술에 따라 머신 판독 가능 저장 매체의 형태로 포함할 수 있고, 이 머신 판독 가능 저장 매체 상에는 다양한 실시예들을 구현하기 위해 프로세서 구성요소(950)에 의해 실행 가능한 명령들의 시퀀스를 포함하는 루틴이 저장될 수 있다. 예로서, 비휘발성 저장소(962)가 강자성 기반 디스크 드라이브들(예를 들어, 소위 "하드 드라이브")를 포함하는 경우, 각각의 그와 같은 디스크 드라이브는 전형적으로 하나 이상의 회전 플래터(platter)들을 사용하고 이 플래터 상에는 자기 반응(magnetically responsive) 입자들의 코딩이 증착되고 자기적으로 다양한 패턴들로 배향되어서 플로피 디스크와 같은 저장 매체와 유사한 방식으로 명령들의 시퀀스와 같은 정보를 저장한다. 다른 예로서, 비휘발성 저장소(962)는 고체 저장 디바이스들의 뱅크(bank)들로 구성되어 컴팩트 플래시 카드와 유사한 방식으로 명령들의 시퀀스들과 같은 정보를 저장할 수 있다. 다시, 실행 가능한 루틴들 및/또는 데이터를 저장하기 위해 컴퓨팅 디바이스 내의 상이한 유형들의 저장 디바이스들을 상이한 시간들에서 사용하는 것은 흔한 일이다. 그러므로, 다양한 실시예들을 구현하는 프로세서 구성요소(950)에 의해 실행될 명령들의 시퀀스를 포함하는 루틴은 초기에 머신 판독 가능 저장 매체(969) 상에 저장될 수 있고, 제거 가능 매체 저장소(963)는 후속해서 머신 판독 가능 저장 매체(969)가 계속해서 있어야 할 필요가 없는 장기 저장을 위한 비휘발성 저장소(962) 및/또는 상기 루틴이 실행될 때 프로세서 구성요소(950)에 의해 더 신속하게 액세스하는 것이 가능한 휘발성 저장소(961)에 상기 루틴을 카피하는 데 사용될 수 있다.
이전에 논의된 바와 같이, 인터페이스(990)(가능하면 인터페이스들(190 및 390) 중 하나 이상에 대응하는)는 컴퓨팅 디바이스를 하나 이상의 다른 디바이스들에 통신적으로 결합하는 데 사용될 수 있는 다양한 통신 기술들 중 임의의 기술에 대응하는 다양한 시그널링 기술들 중 임의의 기술을 사용할 수 있다. 다시, 다양한 형태들의 유선 또는 무선 시그널링 중 하나 또는 이 둘 모두는 프로세서 구성요소(950)가 가능하면 네트워크(예를 들어, 네트워크(999)) 또는 상호 접속된 네트워크들의 세트를 통해, 입력/출력 디바이스들(예를 들어, 도시된 예의 키보드(920) 또는 프린터(925)) 및/또는 다른 컴퓨팅 디바이스들과 상호 작용하는 것을 가능하게 하는 데 이용될 수 있다. 흔히 임의의 하나의 컴퓨팅 디바이스에 의해 지원되어야 하는 흔히 매우 상이한 특성의 다수의 유형들의 시그널링 및/또는 프로토콜들 을 인정하여, 인터페이스(990)는 다수의 상이한 인터페이스 제어기들(995a, 995b 및 995c)을 포함하는 것으로 도시된다. 인터페이스 제어기(995a)는 도시된 키보드(920)와 같은 사용자 입력 디바이스들로부터 연속해서 전송되는 메시지들을 수신하기 위해 다양한 유형들의 무선 디지털 직렬 인터페이스 또는 무선 주파수 무선(wireless) 인터페이스 중 임의의 인터페이스를 사용할 수 있다. 인터페이스 제어기(995b)는 도시된 네트워크(999)(아마도 하나 이상의 링크들, 더 작은 네트워크들 또는 아마도 인터넷으로 구성되는 네트워크)를 통해 다른 컴퓨팅 디바이스들과 액세스하기 위해 다양한 케이블링 기반 또는 무선 시그널링, 타이밍들 및/또는 프로토콜들 중에서 임의의 어떤 것을 사용할 수 있다. 더 구체적으로, 인터페이스 제어기(995b)는 도시된 네트워크(999) 상에서의 무선 통신들의 일부로서 RF 무선 신호들을 하나 이상의 다른 디바이스들의 안테나(들)와 교환하기 위해 하나 이상의 무선 주파수(radio frequency; RF) 송수신기들을 통합할 수 있고/있거나 하나 이상의 안테나들(991)(인터페이스(990)의 일부분에 통합될 수 있다)에 결합될 수 있다. 인터페이스(995c)는 연속 또는 동시 신호 전송을 사용하여 데이터를 도시된 프린터(925)에 전달하는 것을 가능하게 하는 다양한 전기 도전 케이블링 중 임의의 케이블링을 사용할 수 있다. 인터페이스(990)의 하나 이상의 인터페이스 제어기들을 통해 통신적으로 결합될 수 있는 다른 디바이스들의 예들은 제한 없이, 마이크로폰들, 리모트 콘트롤들, 스타일러스 펜들, 카드 판독기들, 지문 판독기들, 가상 현실 상호작용 글러브(glove)들, 그래픽 입력 태블릿들, 조이스틱들, 다른 키보드들, 홍체 스캐너들, 터치 스크린들의 터치 입력 구성요소, 트랙볼들, 다양한 센서들, 제스처들 및/또는 얼굴 표정들을 통해 사람들에 의해 시그널링되는 명령들 및/또는 데이터를 수용하기 위해 이 사람들의 움직임을 모니터링하는 카메라 또는 카메라 어레이, 레이저 프린터들, 잉크젯 프린터들, 메카닉 로봇들, 밀링 머신(milling machine)들 등을 포함한다.
컴퓨팅 디바이스는 디스플레이(예를 들어, 디스플레이들(180 및 380) 중 하나 이상에 대응하는 도시된 예의 디스플레이(980))에 통신적으로 결합될 수 있는(또는 아마도, 실제로는 통합하는) 경우, 프로세싱 아키텍처(3000)를 구현하는 그와 같은 컴퓨팅 디바이스는 또한 디스플레이 인터페이스(985)를 포함할 수 있다. 더 일반화된 유형들의 인터페이스가 디스플레이에 통신적으로 결합하는 데 사용될 수 있을지라도, 디스플레이 상에 다양한 형태들의 컨텐츠를 시각적으로 디스플레이하는 데 흔히 필요한 어느 정도 전문화된 추가 프로세싱뿐만 아니라 사용되는 케이블 기반 인터페이스의 어느 정도 전문화된 특성으로 인해 종종 별개의 디스플레이 인터페이스를 제공하는 것이 바람직하다. 디스플레이(980)의 통신 결합 시에 디스플레이 인터페이스(985)에 의해 이용될 수 있는 유선 및/또는 무선 시그널링 기술들은 제한 없이 다양한 아날로그 비디어 인터페이스들, 디지털 비디오 인터페이스(Digital Video Interface; DVI), 디스플레이포트(DisplayPort) 등 중에 있는 임의의 것을 포함하여, 다양한 산업 표준들 중 임의의 표준을 따르는 시그널링 및/또는 프로토콜들을 사용할 수 있다.
보다 일반적으로, 본원에서 설명되고 도시되는 컴퓨팅 디바이스들의 다양한 요소들은 다양한 하드웨어 요소들, 소프트웨어 요소들 또는 이 둘의 결합을 포함할 수 있다. 하드웨어 요소들의 예들은 디바이스들, 논리 디바이스들, 구성요소들, 프로세서들, 마이크로프로세서들, 회로들, 프로세서 구성요소들, 회로 요소들(예를 들어, 트랜지스터들, 저항들, 커패시터들, 인덕터들 등), 집적 회로들, 주문형 반도체(application specific integrated circuit; ASIC)들, 프로그램 가능 논리 디바이스(programmable logic device; PLD)들, 디지털 신호 프로세서(digital signal processor; DSP)들, 필프 프로그램 가능 게이트 어레이(field programmable gate array; FPGA), 메모리 유닛들, 논리 레이트들, 레지스터(register)들, 반도체 디바이스, 칩들, 마이크로칩들, 칩셋들 등을 포함할 수 있다. 소프트웨어 요소들의 예들은 소프트웨어 구성요소들, 프로그램들, 애플리케이션들, 컴퓨터 프로그램들, 애플리케이션 프로그램들, 시스템 프로그램들, 소프트웨어 개발 프로그램들, 머신 프로그램들, 운영 시스템 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈들, 루틴들, 서브루틴들, 기능들, 방법들, 절차들, 소프트웨어 인터페이스들, 애플리케이션 프로그램 인터페이스(application program interface; API)들, 명령어 세트들, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트(code segment)들, 컴퓨터 코드 세그먼트들, 워드들, 값들, 심볼들 또는 이들의 임의의 결합을 포함할 수 있다. 그러나, 하나의 실시예가 하드웨어 요소들 및/또는 소프트웨어 요소들을 사용하여 구현되는지를 결정하는 것은 소정의 구현에 바람직할 때, 원하는 계산율, 전력 레벨들, 열 내성들, 프로세싱 사이클 버짓(cycle budget), 입력 데이터 레이트들, 출력 데이터 레이트들, 메모리 자원들, 데이터 버스 속도들 및 다른 설계 또는 성능 제약들과 같은 임의의 수효의 요인들에 따라 변할 수 있다.
일부 실시예들은 표현 "하나의 실시예" 또는 "실시예"를 이들의 파생어들과 함께 사용하여 기술될 수 있다. 이 용어들은 실시예들과 관련하여 기술되는 특정한 특징, 구조 또는 특성이 적어도 하나의 실시예 내에 포함되는 것을 의미한다. 본 명세서 내의 다양한 장소들에서 등장하는 어구 "하나의 실시예에서"는 반드시 모두 동일한 실시예를 칭하고 있는 것은 아니다. 더욱이, 일부 실시예들은 표현 "결합되는" 및 "접속되는"을 이들의 파생어들과 함께 사용하여 기술될 수 있다. 이 용어들은 반드시 서로에 대한 동의어로서 의도되지는 않는다. 예를 들어, 일부 실시예들은 둘 이상의 요소들이 서로 물리적으로 또는 전기적으로 직접 접촉되는 것을 나타내기 위해 용어들 "접속되는" 및/또는 "결합되는"을 사용하여 기술될 수 있다. 그러나, 용어 "결합되는"은 또한 둘 이상의 요소들이 서로 직접적으로 접촉되지 않으나, 계속해서 서로 협력하거나 상호작용하는 것을 의미할 수 있다. 더욱이, 상이한 실시예들로부터의 양태들 또는 요소들은 결합될 수 있다.
본 발명의 요약서는 독자가 기술 내용의 성격을 신속하게 확인하는 것이 가능하도록 제공되는 것이 강조된다. 이 요약서는 청구항들의 범위 또는 의미를 해석 또는 제한하는 데 사용되지 않을 것임을 이해할 수 있게 제출된다. 게다가, 상술한 상세한 설명에서는, 본 발명을 간소화하기 위해 다양한 특징들이 단일 실시예 내에서 함께 그룹화될 수 있음이 확인될 수 있다. 이 개시 방법은 주장되는 실시예들이 각각의 청구항들에서 명백하게 설명되는 것보다 더 많은 특징들을 요구하는 것을 의도한다는 것을 반영하는 것으로 해석되서는 안 된다. 오히려, 다음의 청구항들이 반영하는 바와 같이, 발명의 특허주제는 단일 개시된 실시예들의 모든 특징들보다 더 적은 특징들에 있다. 그러므로, 다음의 청구항들은 이에 의해 상세한 설명에 통합되고, 각각의 청구항은 자기 자체로 개별 실시예로서 독립된다. 첨부된 청구항들에서, 용어들 "including" 및 "in which"는 각각, 각각의 용어들 "comprising" 및 "wherein"의 평이한 영어(plain English) 등가들로서 사용될 수 있다. 더욱이, 용어들 "제 1", "제 2", "제 3" 등은 단지 라벨들로서 사용되고 이들의 물체들에 수치적인 요건들을 부과하도록 의도되지 않는다.
상술한 것들은 개시된 아키텍처의 예들을 포함한다. 물론, 구성요소들 및/또는 방법론들의 모든 착상 가능한 결합을 기술하는 것을 가능하지 않지만, 당업자는 많은 추가 결합들 및 변경들이 가능하다는 것을 인식할 수 있다. 따라서, 신규의 아키텍처는 첨부된 청구항들의 사상 및 범위 내에 해당되는 모든 그와 같은 변형들, 수정들 및 변형들을 포함하도록 의도된다. 상세한 설명은 이제 추가 실시예들에 관한 예들을 제공하는 것으로 전환된다. 아래 제공되는 예들은 제한하는 것으로 의도되지 않는다.
일부 실시예들에서, 위치를 결정하기 위한 장비는 프로세서 구성요소 및 프로세서 구성요소에 의해 실행되는 위치 제공자를 포함할 수 있다. 위치 제공자는 어떤 장소의 위치 네트워크로부터 수신되는 무선 신호들에 기초하여 이 장소 내에서의 현재의 위치를 결정하는 위치 베이스밴드, 위치 네트워크 및 신뢰성 있는 위치 애플리케이션으로부터 수신되는 크리덴셜들에 기초하여 이 장소와 연관되는 신뢰성 있는 위치 애플리케이션을 검증하는 검증 구성요소 및 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 현재 위치를 나타내는 위치 정보를 암호화하고 이 위치 정보를 위치 제공자 및 신뢰성 있는 위치 애플리케이션 사이에 개재되는 위치 관리자를 통해 신뢰성 있는 위치 애플리케이션으로 전달하는 암호화 구성요소를 포함할 수 있다. 그와 같은 예들은 장소의 위치 네트워크로부터 무선 신호들을 수신하기 위해 안테나 및 이 안테나에 결합되는 인터페이스를 더 포함할 수 있고, 베이스밴드는 인터페이스에 결합될 수 있다.
추가로 또는 대안으로, 위치 제공자는 무선 신호들로부터의 위치 베이스밴드에 의해 생성되고 현재 위치를 나타내는 원 데이터를 위치 정보로 변환하기 위해 위치 엔진을 포함할 수 있다.
추가로 또는 대안으로, 장치는 무선 신호들을 수신하는 인터페이스를 포함하고, 무선 신호들은 장소에 배치되는 위치 네트워크의 스테이션(station; STA)에 의해 전송되고, 무선 신호들은 크리덴셜들을 전달할 수 있다.
추가로 또는 대안으로, 장치는 무선 신호들을 수신하는 인터페이스를 포함하고, 무선 신호들은 위치 네트워크의 하나 이상의 액세스 포인트(access point; AP)들에 의해 전송되고, 하나 이상의 AP들은 장소 주위에 배치될 수 있다.
추가로 또는 대안으로, 위치 베이스밴드는 하나 이상의 AP들의 AP로부터 위치 알마낙을 수신하고, 위치 알마낙은 장소 내에서의 하나 이상의 AP들의 위치들 및 하나 이상의 AP들의 적어도 하나의 특성을 나타낼 수 있다.
추가로 또는 대안으로, 적어도 하나의 특성은 하나 이상의 AP들에 의해 전송되는 무선 신호들의 무선 신호의 신호 강도, 비행 시간, 도착 시간의 차, 도착 각도, 출발 각도를 포함할 수 있다.
추가로 또는 대안으로, 검증 구성요소는 하나 이상의 AP들의 AP로부터 크리덴셜들을 수신하고 적어도 신뢰성 있는 위치 애플리케이션 및 AP로부터 수신되는 크리덴셜들에 기초하여 신뢰성 있는 위치 애플리케이션을 검증할 수 있다.
추가로 또는 대안으로, 장치는 위치 관리자를 포함할 수 있고, 위치 관리자는 위치 정보를 다수의 위치 애플리케이션들에 분배할 수 있고, 그리고 다수의 위치 애플리케이션들은 신뢰성 있는 위치 애플리케이션 및 신뢰되지 않는 위치 애플리케이션을 포함할 수 있다.
추가로 또는 대안으로, 위치 관리자는 프로세서 구성요소에 의한 실행을 위한 것일 수 있다.
추가로 또는 대안으로, 위치 제공자는 신뢰성 있는 위치 애플리케이션을 제외한 어떠한 다른 위치 애플리케이션에도 위치 정보를 전달하지 말라는 요청으로 위치 관리자에게 시그널링(signalling)할 수 있다.
추가로 또는 대안으로, 장치는 신뢰성 있는 위치 애플리케이션을 포함할 수 있고, 신뢰성 있는 위치 애플리케이션은 신뢰성 있는 위치 애플리케이션을 제외한 어떠한 다른 애플리케이션에도 위치 정보를 전달하지 말라는 요청으로 위치 관리자에게 시그널링할 수 있다.
추가로 또는 대안으로, 신뢰성 있는 위치 애플리케이션은 프로세서 구성요소에 의한 실행을 위한 것일 수 있다.
추가로 또는 대안으로, 장치는 신뢰성 있는 위치 애플리케이션을 포함할 수 있고, 신뢰성 있는 위치 애플리케이션은 검증 구성요소에 크리덴셜들을 제공하고 위치 관리자로부터 위치 정보를 수신할 수 있고, 그리고 신뢰성 있는 위치 애플리케이션은 위치 정보를 복호화(decrypt)하는 복호화 구성요소를 포함할 수 있다.
추가로 또는 대안으로, 위치 네트워크는 장소 주위에 배치되는 다수의 AP들을 포함할 수 있고, 위치 제공자는 장소 내에 제공되어 있는 아이템들 및 장소 내에서의 아이템들의 위치들을 나타내는 위치 데이터를 다수의 AP들의 AP로부터 수신할 수 있고, 위치 제공자는 신뢰성 있는 위치 애플리케이션에 위치 데이터를 전달할 수 있고, 그리고 신뢰성 있는 위치 애플리케이션은 현재 위치를 장소 내에 제공되어 있는 아이템들의 아이템과 상관시키는 상관 구성요소를 포함할 수 있다.
추가로 또는 대안으로, 장치는 디스플레이를 포함할 수 있고, 신뢰성 있는 위치 애플리케이션은 장소의 맵(map) 및 맵 상에 현재 위치를 시각적으로 제시하는 프리젠테이션(presentation) 구성요소를 포함할 수 있다.
추가로 또는 대안으로, 신뢰성 있는 위치 애플리케이션은 장소 내에 제공되는 아이템들의 아이템과 연관되는 프로모션의 표시를 제시하는 프리젠테이션 구성요소를 포함할 수 있다.
추가로 또는 대안으로, 위치 제공자는 위치 네트워크로부터 제 1 키(key)를 수신할 수 있고, 암호화 구성요소는 제 1 키를 사용하여 위치 정보를 암호화한다.
추가로 또는 대안으로, 장치는 신뢰성 있는 위치 애플리케이션을 포함할 수 있고, 신뢰성 있는 위치 애플리케이션은 위치 관리자로부터 위치 정보를 수신하고 제 1 키와 관련되는 제 2 키를 사용하여 위치 정보를 복호화할 수 있다.
추가로 또는 대안으로, 위치 네트워크로부터 수신되는 크리덴셜들은 제 1 키를 포함할 수 있고 신뢰성 있는 위치 구성요소의 크리덴셜들은 제 2 키를 포함할 수 있다.
일부 예들에서, 위치를 결정하는 장치는 프로세서 구성요소와, 프로세서 구성요소를 장소의 위치 네트워크에 통신적으로 결합하는 인터페이스와, 그리고 위치 네트워크를 통해 크리덴셜들을 장소 내에 있는 모바일 디바이스로 전송하고, 크리덴셜들을 사용한 모바일 디바이스의 신뢰성 있는 위치 애플리케이션의 검증의 결과들에 대한 표시를 모바일 디바이스로부터 수신하고 모바일 디바이스로의 위치 데이터의 전송을 이 결과들을 조건으로 하기 위하여 프로세서 구성요소에 의해 실행되는 검증 구성요소를 포함할 수 있고, 위치 데이터는 장소 내에서 제공되는 아이템들 및 장소 내에 있는 아이템들의 위치들을 표시한다.
추가로 또는 대안으로, 검증 구성요소는 모바일 디바이스로의 위치 알마낙의 전송을 상기 결과들을 조건으로 할 수 있고, 위치 알마닉은 장소 주위에 배치되는 위치 네트워크의 다수의 액세스 포인트들(AP들)의 위치들 및 다수의 AP들의 적어도 하나의 특성을 나타낸다.
추가로 또는 대안으로, 적어도 하나의 특성은 다수의 AP들에 의해 전송되는 무선 신호들의 무선 신호의 신호 강도를 포함할 수 있다.
추가로 또는 대안으로, 장치는 모바일 디바이스가 장소 내에 있는 모바일 디바이스의 현재 위치를 결정하는 것이 가능하도록 무선 신호들을 송신하는 위치 네트워크의 다수의 액세스 포인트들(AP들)과 협력하기 위해 프로세서 구성요소에 의해 실행되는 위치 서비스 구성요소를 포함할 수 있고, 다수의 AP들은 장소 주위에 배치된다.
추가로 또는 대안으로, 검증 구성요소는 AP가 크리덴셜들을 모바일 디바이스로 전송하는 것이 가능하도록 크리덴셜들을 다수의 AP들의 AP에 전송할 수 있다.
추가로 또는 대안으로, 크리덴셜들은 모바일 디바이스의 위치 제공자가 모바일 디바이스의 위치 관리자를 통해 신뢰성 있는 위치 애플리케이션으로 전달될 현재 위치를 나타내는 위치 정보를 암호화하는 것이 가능하도록 제 1 키를 포함할 수 있고, 제 1 키는 신뢰성 있는 위치 애플리케이션이 위치 정보를 복호화하는 것이 가능하도록 신뢰성 있는 위치 애플리케이션과 연관되는 제 2 키와 관련된다.
일부 예들에서, 위치를 결정하기 위한 컴퓨터 구현 방법은 모바일 디바이스에서, 장소의 위치 네트워크로부터 수신되는 무선 신호들에 기초하여 장소 내에서의 모바일 디바이스의 현재 위치를 결정하는 단계; 모바일 디바이스에서, 위치 네트워크로부터 제 1 크리덴셜들을 수신하는 단계; 제 1 크리덴셜들 및 신뢰성 있는 위치 애플리케이션의 제 2 크리덴셜들을 사용하여 모바일 디바이스의 신뢰성 있는 위치 애플리케이션을 검증하는 단계; 및 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 현재 위치를 나타내는 위치 정보를 암호화하고 위치 정보를 모바일 디바이스의 위치 관리자를 통해 신뢰성 있는 위치 애플리케이션에 전달하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 방법은 위치 네트워크의 하나 이상의 액세스 포인트들(AP들)로부터 무선 신호들을 수신하는 단계를 포함하고, 하나 이상의 AP들은 장소 주위에 배치될 수 있다.
추가로 또는 대안으로, 방법은 하나 이상의 AP들의 AP로부터 위치 알마낙을 수신하는 단계를 포함하고, 위치 알마낙은 장소 내에서의 하나 이상의 AP들의 위치들 및 하나 이상의 AP들의 적어도 하나의 특성을 나타낼 수 있다.
추가로 또는 대안으로, 적어도 하나의 특성은 하나 이상의 AP들에 의해 전송되는 무선 신호들의 무선 신호의 신호 강도를 포함할 수 있다.
추가로 또는 대안으로, 방법은 하나 이상의 AP들의 AP로부터 제 1 크리덴셜들을 수신하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 위치 관리자는 위치 정보를 다수의 위치 애플리케이션들에 분배할 수 있고, 다수의 위치 애플리케이션들은 신뢰성 있는 위치 애플리케이션 및 신뢰되지 않는 위치 애플리케이션을 포함할 수 있다.
추가로 또는 대안으로, 방법은 위치 정보를 신뢰성 있는 위치 애플리케이션을 제외한 어떠한 다른 위치 애플리케이션에도 전달하는 말라는 요청으로 위치 관리자에게 시그널링하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 방법은 신뢰성 있는 위치 애플리케이션으로부터 제 2 크리덴셜들을 수신하는 단계와; 그리고 신뢰성 있는 위치 애플리케이션에서 위치 정보를 복호화하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 위치 네트워크는 장소 주위에 배치되는 다수의 AP들을 포함할 수 있고; 방법은 장소 내에 제공되어 있는 아이템들 및 장소 내에서의 아이템들의 위치들을 나타내는 위치 데이터를 다수의 AP들의 Ap로부터 수신하는 단계, 위치 데이터를 신뢰성 있는 위치 애플리케이션에 전달하는 단계; 및 신뢰성 있는 위치 애플리케이션에서 현재 위치를 장소 내에 제공되어 있는 아이템들의 아이템과 상관시키는 단계를 포함할 수 있다.
추가로 또는 대안으로, 방법은 장소의 맵 및 맵 상에 현재 위치를 시각적으로 제시하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 방법은 장소 내에 제공되어 있는 아이템들의 아이템과 연관되는 프로모션의 표시를 제시하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 방법은 위치 네트워크로부터 제 1 키를 수신하는 단계 및 제 1 키를 사용하여 위치 정보를 암호화하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 방법은 제 1 키와 관련되는 제 2 키를 사용하여 위치 정보를 복호화하는 단계를 포함할 수 있다.
추가로 또는 대안으로, 제 1 크리덴셜들은 제 1 키를 포함할 수 있고 제 2 크리덴셜들은 제 2 키를 포함할 수 있다.
일부 예들에서, 적어도 하나의 머신 판독 가능 저장 매체는 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금, 모바일 디바이스에서 장소의 위치 네트워크로부터 수신되는 무선 신호들에 기초하여 장소 내의 모바일 디바이스의 현재 위치를 결정하고, 모바일 디바이스에서 위치 네트워크로부터 제 1 크리덴셜들을 수신하고, 제 1 크리덴셜들 및 신뢰성 있는 위치 애플리케이션의 제 2 크리덴셜들을 사용하여 모바일 디바이스의 신뢰성 있는 위치 애플리케이션을 검증하고, 그리고 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 현재 위치를 나타내는 위치 정보를 암호화하고 위치 정보를 모바일 디바이스의 위치 관리자를 통해 신뢰성 있는 위치 애플리케이션에 전달하도록 하는 명령들을 포함할 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 위치 네트워크의 하나 이상의 액세스 포인트들(AP들)로부터 무선 신호를 수신하게 되고, 하나 이상의 AP들은 장소 주위에 배치될 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 하나 이상의 AP들의 AP로부터 위치 알마낙을 수신하게 되고, 위치 알마낙은 장소 내의 하나 이상의 AP들의 위치들 및 하나 이상의 AP들의 최소한 하나의 특성을 나타낼 수 있다.
추가로 또는 대안으로, 적어도 하나의 특성은 하나 이상의 AP들에 의해 전송되는 무선 신호들의 무선 신호의 신호 강도를 포함할 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 하나 이상의 AP들의 AP로부터 제 1 크리덴셜들을 수신하게 될 수 있다.
추가로 때는 대안으로, 위치 관리자는 위치 정보를 다수의 위치 애플리케이션들로 분배할 수 있고, 다수의 위치 애플리케이션들은 신뢰성 있는 위치 애플리케이션 및 신뢰되지 않는 위치 애플리케이션을 포함할 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 신뢰성 있는 위치 애플리케이션을 제외하고 어떠한 위치 애플리케이션에도 위치 정보를 전달하지 말라는 요청으로 위치 관리자에게 시그널링하게 될 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 신뢰성 있는 위치 애플리케이션으로부터 제 2 크리덴셜들을 수신하고 신뢰성 있는 위치 애플리케이션에서 위치 정보를 복호화하게 될 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 장소 내에 제공되어 있는 아이템들 및 장소 내에 있는 아이템들의 위치들을 나타내는 위치 데이터를 위치 네트워크의 다수의 AP들의 AP로부터 수신하고, 위치 데이터를 신뢰성 있는 위치 애플리케이션에 전달하고, 신뢰성 있는 위치 애플리케이션에서 현재의 위치를 장소 내에 제공되어 있는 아이템들의 아이템과 상관시키게 될 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 장소의 맵 및 맵 상에 현재 위치를 시각적으로 제시하게 될 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 장소 내에 제공되어 있는 아이템들의 아이템과 연관되는 프로모션의 표시를 제시하게 될 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 위치 네트워크로부터 제 1 키를 수신하고 제 1 키를 사용하여 위치 정보를 암호화하게 될 수 있다.
추가로 또는 대안으로, 컴퓨팅 디바이스는 제 1 키와 관련되는 제 2 키를 사용하여 위치 정보를 복호화하게 될 수 있다.
추가로 또는 대안으로, 제 1 크리덴셜들은 제 1 키를 포함할 수 있고 제 2 크리덴셜들은 제 2 키를 포함할 수 있다.
일부 예들에서, 적어도 하나의 머신 판독가능 저장 매체는 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨터 디바이스로 하여금 상술한 것 중 임의의 하나를 수행하도록 하는 명령들을 포함할 수 있다.
일부 예들에서, 업무 부분들을 수행하기 위해 프로세서 구성요소 코어들을 할당하는 장치는 상술한 것들 중 임의의 하나를 수행하는 수단을 포함할 수 있다.

Claims (25)

  1. 프로세서 구성요소와,
    상기 프로세서 구성요소에 의한 실행을 위한 위치 제공자를 포함하되,
    상기 위치 제공자는,
    장소의 위치 네트워크로부터 수신되는 무선 신호에 기초하여 상기 장소 내에서의 현재 위치를 결정하는 위치 베이스밴드(baseband)와,
    상기 위치 네트워크 및 신뢰성 있는 위치 애플리케이션으로부터 수신되는 크리덴셜(credential)에 기초하여 상기 장소와 연관되는 신뢰성 있는 위치 애플리케이션을 검증하는 검증 구성요소와,
    상기 위치 제공자와 상기 신뢰성 있는 위치 애플리케이션 사이에 개재되는 위치 관리자에게, 상기 신뢰성 있는 위치 애플리케이션이, 상기 현재 위치를 신뢰되지 않는 애플리케이션들로 전달하지 않도록 요청하는 것에 응답하여, 현재 위치를 나타내는 위치 정보를 암호화하고, 상기 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 상기 위치 정보를 상기 위치 관리자를 통해 상기 신뢰성 있는 위치 애플리케이션에 전달하는 암호화 구성요소
    를 포함하는 장치.
  2. 제 1 항에 있어서,
    상기 위치 관리자를 포함하되, 상기 위치 관리자는 상기 위치 정보를 다수의 위치 애플리케이션에 분배하고, 상기 다수의 위치 애플리케이션은 상기 신뢰성 있는 위치 애플리케이션 및 신뢰되지 않는 위치 애플리케이션을 포함하는
    장치.
  3. 제 2 항에 있어서,
    상기 신뢰성 있는 위치 애플리케이션을 포함하되, 상기 신뢰성 있는 위치 애플리케이션은 상기 신뢰성 있는 위치 애플리케이션을 제외한 어떠한 다른 애플리케이션에도 상기 위치 정보를 전달하지 말라는 요청으로 상기 위치 관리자에게 시그널링하는
    장치.
  4. 제 1 항에 있어서,
    상기 신뢰성 있는 위치 애플리케이션을 포함하되, 상기 신뢰성 있는 위치 애플리케이션은 상기 검증 구성요소에 크리덴셜을 제공하고 상기 위치 관리자로부터 상기 위치 정보를 수신하고, 상기 신뢰성 있는 위치 애플리케이션은 상기 위치 정보를 복호화(decrypt)하는 복호화 구성요소를 포함하는
    장치.
  5. 제 4 항에 있어서,
    상기 위치 네트워크는 상기 장소 주위에 배치되는 다수의 AP를 포함하고, 상기 위치 제공자는 상기 장소 내에 제공되어 있는 아이템 및 상기 장소 내에서의 상기 아이템의 위치를 나타내는 위치 데이터를 상기 다수의 AP 중 한 AP로부터 수신하고, 상기 위치 제공자는 상기 신뢰성 있는 위치 애플리케이션에 상기 위치 데이터를 전달하고, 상기 신뢰성 있는 위치 애플리케이션은 상기 현재 위치를 상기 장소 내에 제공되어 있는 상기 아이템 중 한 아이템과 상관시키는 상관 구성요소를 포함하는
    장치.
  6. 제 5 항에 있어서,
    디스플레이를 포함하되, 상기 신뢰성 있는 위치 애플리케이션은 상기 장소의 맵(map) 및 상기 맵 상의 상기 현재 위치를 시각적으로 제시하는 프리젠테이션(presentation) 구성요소를 포함하는
    장치.
  7. 제 1 항에 있어서,
    상기 위치 제공자는 상기 위치 네트워크로부터 제 1 키(key)를 수신하고, 상기 암호화 구성요소는 상기 제 1 키를 사용하여 상기 위치 정보를 암호화하는
    장치.
  8. 제 7 항에 있어서,
    상기 신뢰성 있는 위치 애플리케이션을 포함하되, 상기 신뢰성 있는 위치 애플리케이션은 상기 위치 관리자로부터 상기 위치 정보를 수신하고 상기 제 1 키와 관련되는 제 2 키를 사용하여 상기 위치 정보를 복호화하는
    장치.
  9. 안테나와,
    상기 안테나에 결합되어 장소의 위치 네트워크로부터 무선 신호를 수신하는 인터페이스와,
    프로세서 구성요소와,
    상기 프로세서 구성요소에 의한 실행을 위한 위치 제공자를 포함하되,
    상기 위치 제공자는,
    상기 인터페이스에 결합되어 상기 무선 신호에 기초하여 상기 장소 내에서의 현재 위치를 결정하는 위치 베이스밴드와,
    상기 위치 네트워크 및 상기 장소와 연관되는 신뢰성 있는 위치 애플리케이션로부터 수신되는 크리덴셜에 기초하여 상기 신뢰성 있는 위치 애플리케이션을 검증하는 검증 구성요소와,
    상기 위치 제공자와 상기 신뢰성 있는 위치 애플리케이션 사이에 개재되는 위치 관리자에게, 상기 신뢰성 있는 위치 애플리케이션이, 상기 현재 위치를 신뢰되지 않는 애플리케이션들로 전달하지 않도록 요청하는 것에 응답하여, 현재 위치를 나타내는 위치 정보를 암호화하고, 상기 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 상기 위치 정보를 상기 위치 관리자를 통해 상기 신뢰성 있는 위치 애플리케이션에 전달하는 암호화 구성요소
    를 포함하는 장치.
  10. 제 9 항에 있어서,
    상기 인터페이스는 상기 위치 네트워크의 하나 이상의 액세스 포인트(AP)로부터 상기 무선 신호를 수신하고, 상기 하나 이상의 AP는 상기 장소 주위에 배치되는
    장치.
  11. 제 10 항에 있어서,
    상기 검증 구성요소는 상기 하나 이상의 AP 중 한 AP로부터 크리덴셜을 수신하고 적어도 상기 신뢰성 있는 위치 애플리케이션 및 상기 AP로부터 수신되는 크리덴셜에 기초하여 상기 신뢰성 있는 위치 애플리케이션을 검증하는
    장치.
  12. 컴퓨터로 구현되는 방법으로서,
    모바일 디바이스에서, 장소의 위치 네트워크로부터 수신되는 무선 신호에 기초하여 상기 장소 내에서의 상기 모바일 디바이스의 현재 위치를 결정하는 단계와,
    상기 모바일 디바이스에서, 상기 위치 네트워크로부터 제 1 크리덴셜을 수신하는 단계와,
    상기 제 1 크리덴셜 및 신뢰성 있는 위치 애플리케이션의 제 2 크리덴셜을 사용하여 상기 모바일 디바이스의 신뢰성 있는 위치 애플리케이션을 검증하는 단계와,
    위치 제공자와 상기 신뢰성 있는 위치 애플리케이션 사이에 개재되는 위치 관리자에게, 상기 신뢰성 있는 위치 애플리케이션이, 상기 현재 위치를 신뢰되지 않는 애플리케이션들로 전달하지 않도록 요청하는 것에 응답하여, 현재 위치를 나타내는 위치 정보를 암호화하고, 상기 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 상기 위치 정보를 상기 위치 관리자를 통해 상기 신뢰성 있는 위치 애플리케이션에 전달하는 단계
    를 포함하는 컴퓨터 구현 방법.
  13. 제 12 항에 있어서,
    상기 위치 네트워크의 하나 이상의 액세스 포인트(AP)로부터 상기 무선 신호를 수신하는 단계를 포함하되, 상기 하나 이상의 AP는 상기 장소 주위에 배치되는
    컴퓨터 구현 방법.
  14. 제 13 항에 있어서,
    상기 하나 이상의 AP 중 한 AP로부터 위치 알마낙(almanac)을 수신하는 단계를 포함하되, 상기 위치 알마낙은 상기 장소 내에서의 상기 하나 이상의 AP의 위치 및 상기 하나 이상의 AP의 적어도 하나의 특성을 나타내는
    컴퓨터 구현 방법.
  15. 제 12 항에 있어서,
    상기 위치 관리자는 상기 위치 정보를 다수의 위치 애플리케이션에 분배하고, 상기 다수의 위치 애플리케이션은 상기 신뢰성 있는 위치 애플리케이션 및 신뢰되지 않는 위치 애플리케이션을 포함하는
    컴퓨터 구현 방법.
  16. 제 15 항에 있어서,
    상기 위치 정보를 상기 신뢰성 있는 위치 애플리케이션을 제외한 어떠한 다른 위치 애플리케이션에도 전달하지 말라는 요청으로 상기 위치 관리자에게 시그널링하는 단계를 포함하는
    컴퓨터 구현 방법.
  17. 제 12 항에 있어서,
    상기 신뢰성 있는 위치 애플리케이션으로부터 상기 제 2 크리덴셜을 수신하는 단계와,
    상기 신뢰성 있는 위치 애플리케이션에서 상기 위치 정보를 복호화하는 단계를 포함하는
    컴퓨터 구현 방법.
  18. 명령어를 포함하는 적어도 하나의 머신 판독 가능 저장 매체로서,
    상기 명령어는 컴퓨팅 디바이스에 의해 실행될 때 상기 컴퓨팅 디바이스로 하여금,
    모바일 디바이스에서, 장소의 위치 네트워크로부터 수신되는 무선 신호에 기초하여 상기 장소 내에서의 상기 모바일 디바이스의 현재 위치를 결정하게 하고,
    상기 모바일 디바이스에서, 상기 위치 네트워크로부터 제 1 크리덴셜을 수신하게 하고,
    위치 제공자와 신뢰성 있는 위치 애플리케이션 사이에 개재되는 위치 관리자에게, 상기 신뢰성 있는 위치 애플리케이션이, 상기 현재 위치를 신뢰되지 않는 애플리케이션들로 전달하지 않도록 요청하는 것에 응답하여, 현재 위치를 나타내는 위치 정보를 암호화하게 하고, 상기 신뢰성 있는 위치 애플리케이션의 검증에 기초하여 상기 위치 정보를 상기 위치 관리자를 통해 상기 신뢰성 있는 위치 애플리케이션에 전달하게 하는
    머신 판독 가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 상기 위치 네트워크의 하나 이상의 액세스 포인트(AP)로부터 상기 무선 신호를 수신하게 하되, 상기 하나 이상의 AP는 상기 장소 주위에 배치되는
    머신 판독 가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 상기 하나 이상의 AP 중 한 AP로부터 위치 알마낙(almanac)을 수신하게 하되, 상기 위치 알마낙은 상기 장소 내에서의 상기 하나 이상의 AP의 위치 및 상기 하나 이상의 AP의 적어도 하나의 특성을 나타내는
    머신 판독 가능 저장 매체.
  21. 제 20 항에 있어서,
    상기 적어도 하나의 특성은 상기 하나 이상의 AP에 의해 전송되는 상기 무선 신호 중 한 무선 신호의 신호 강도를 포함하는
    머신 판독 가능 저장 매체.
  22. 제 19 항에 있어서,
    상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 상기 하나 이상의 AP 중 한 AP로부터 상기 제 1 크리덴셜을 수신하게 하는
    머신 판독 가능 저장 매체.
  23. 제 18 항에 있어서,
    상기 명령어는 상기 컴퓨팅 디바이스로 하여금,
    상기 신뢰성 있는 위치 애플리케이션으로부터 제 2 크리덴셜을 수신하게 하고,
    상기 신뢰성 있는 위치 애플리케이션에서 상기 위치 정보를 복호화하게 하는
    머신 판독 가능 저장 매체.
  24. 제 18 항에 있어서,
    상기 명령어는 상기 컴퓨팅 디바이스로 하여금,
    상기 위치 네트워크로부터 제 1 키를 수신하게 하고,
    상기 제 1 키를 사용하여 상기 위치 정보를 암호화하게 하는
    머신 판독 가능 저장 매체.
  25. 제 24 항에 있어서,
    상기 명령어는 상기 컴퓨팅 디바이스로 하여금, 상기 제 1 키와 관련되는 제 2 키를 사용하여 상기 위치 정보를 복호화하게 하는
    머신 판독 가능 저장 매체.
KR1020157025595A 2013-04-19 2013-09-27 신뢰성 있는 위치 애플리케이션 및 위치 제공자 통신을 위한 기술들 KR101752266B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361813761P 2013-04-19 2013-04-19
US61/813,761 2013-04-19
PCT/US2013/062318 WO2014171967A1 (en) 2013-04-19 2013-09-27 Techniques for trusted location application and location provider communications

Publications (2)

Publication Number Publication Date
KR20150120462A KR20150120462A (ko) 2015-10-27
KR101752266B1 true KR101752266B1 (ko) 2017-07-11

Family

ID=51731733

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157025595A KR101752266B1 (ko) 2013-04-19 2013-09-27 신뢰성 있는 위치 애플리케이션 및 위치 제공자 통신을 위한 기술들

Country Status (7)

Country Link
US (2) US9420429B2 (ko)
EP (1) EP2987002A4 (ko)
JP (1) JP5876190B2 (ko)
KR (1) KR101752266B1 (ko)
CN (1) CN104321666B (ko)
AU (1) AU2013386840B2 (ko)
WO (1) WO2014171967A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH708199A2 (de) * 2013-05-29 2014-12-15 Kaba Ag Verfahren zur Verwaltung von Medien für die drahtlose Kommunikation.
US9565578B2 (en) * 2014-06-18 2017-02-07 Google Inc. Method for collecting and aggregating network quality data
US9763044B2 (en) * 2014-09-16 2017-09-12 Intel IP Corporation Method, system and apparatus for enabling location determination using multiple simultaneous location databases
US10541986B2 (en) * 2014-12-31 2020-01-21 Onespan North America Inc. Method and apparatus for securing an application using a measurement of a location dependent physical property of the environment
US20160247132A1 (en) * 2015-02-25 2016-08-25 Ebay Inc. Affiliated individual identification and account recoupment
EP3272150B1 (en) 2015-03-17 2024-01-10 Nokia Technologies Oy Wireless routing
US10021618B2 (en) 2015-04-30 2018-07-10 Google Technology Holdings LLC Apparatus and method for cloud assisted wireless mobility
CN108012581A (zh) * 2015-06-23 2018-05-08 飞利浦照明控股有限公司 用于保护位置信息的系统
US10257782B2 (en) 2015-07-30 2019-04-09 Google Llc Power management by powering off unnecessary radios automatically
US9641489B1 (en) * 2015-09-30 2017-05-02 EMC IP Holding Company Fraud detection
US9883479B2 (en) 2015-10-28 2018-01-30 Google Llc Generating and publishing validated location information
US10810571B2 (en) * 2016-10-13 2020-10-20 Paypal, Inc. Location-based device and authentication system
CN108668216B (zh) * 2017-03-27 2020-07-31 中国移动通信有限公司研究院 一种终端位置定位的防伪方法、防伪终端及系统
CN108282907B (zh) * 2018-01-29 2023-04-07 深圳市同科联赢科技有限公司 电子设备、无线组网系统、装置及其控制方法和存储装置
US11917070B2 (en) 2018-02-17 2024-02-27 Carrier Corporation Method and system for managing a multiplicity of credentials
US11317414B2 (en) * 2018-06-05 2022-04-26 Qualcomm Incorporated Exchanging location information of a base station that is associated with a plurality of different transmission point locations
CN110740353B (zh) * 2018-07-20 2021-07-09 阿里巴巴(中国)有限公司 请求识别方法及装置
US11388467B1 (en) * 2019-07-17 2022-07-12 Walgreen Co. Media content distribution platform
CN112269195B (zh) * 2020-08-24 2023-12-12 江苏中智腾飞信息科技有限公司 北斗导航信号的相关、捕获方法及其设备
US11540202B2 (en) 2020-11-06 2022-12-27 Cisco Technology, Inc. Secure cloud edge interconnect point selection

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040224702A1 (en) 2003-05-09 2004-11-11 Nokia Corporation System and method for access control in the delivery of location information
US20060173612A1 (en) 2002-11-20 2006-08-03 Steel Christopher G Method of distributing the location data of a mobile device
US20130067232A1 (en) 2011-09-09 2013-03-14 Kai Chung CHEUNG METHOD AND SYSTEM FOR CREDENTIAL MANAGEMENT AND DATA ENCRYPTION FOR iOS BASED DEVICES

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030159066A1 (en) 2002-02-15 2003-08-21 Kdms International Llc Method and apparatus for network user location verification
JP4252440B2 (ja) 2003-12-22 2009-04-08 エヌ・ティ・ティ・コムウェア株式会社 展示物解説システム、展示物解説情報管理サーバ、及び展示物解説方法
MX2007010137A (es) 2005-04-30 2007-09-27 Lg Electronics Inc Metodo para suministrar un servicio de informacion de ubicacion en un sistema movil de comunicaciones.
US9185123B2 (en) * 2008-02-12 2015-11-10 Finsphere Corporation System and method for mobile identity protection for online user authentication
US20080238676A1 (en) * 2007-03-30 2008-10-02 Symbol Technologies, Inc. Location based security data provisioning and management via RFID tags
US8914905B2 (en) 2009-11-09 2014-12-16 Nec Corporation Access control system, communication terminal, server, and access control method
US8681741B1 (en) * 2010-05-07 2014-03-25 Qualcomm Incorporated Autonomous hybrid WLAN/GPS location self-awareness
US8370629B1 (en) * 2010-05-07 2013-02-05 Qualcomm Incorporated Trusted hybrid location system
US8898759B2 (en) * 2010-08-24 2014-11-25 Verizon Patent And Licensing Inc. Application registration, authorization, and verification
US9432381B2 (en) * 2010-12-01 2016-08-30 Microsoft Technology Licensing, Llc Managed dissemination of location data
US8656454B2 (en) * 2010-12-01 2014-02-18 Microsoft Corporation Data store including a file location attribute
CN103020531B (zh) * 2012-12-06 2015-05-27 中国科学院信息工程研究所 Android智能终端运行环境可信控制方法及系统
US20140229603A1 (en) * 2013-02-08 2014-08-14 International Business Machines Corporation Validation of service management requests of a mobile device in a geographically bounded space
US9843895B2 (en) * 2014-05-30 2017-12-12 Apple Inc. Location-based services for calendar events

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060173612A1 (en) 2002-11-20 2006-08-03 Steel Christopher G Method of distributing the location data of a mobile device
US20040224702A1 (en) 2003-05-09 2004-11-11 Nokia Corporation System and method for access control in the delivery of location information
US20130067232A1 (en) 2011-09-09 2013-03-14 Kai Chung CHEUNG METHOD AND SYSTEM FOR CREDENTIAL MANAGEMENT AND DATA ENCRYPTION FOR iOS BASED DEVICES

Also Published As

Publication number Publication date
AU2013386840A1 (en) 2015-09-10
EP2987002A4 (en) 2016-12-28
WO2014171967A1 (en) 2014-10-23
JP2015528141A (ja) 2015-09-24
US20150030157A1 (en) 2015-01-29
EP2987002A1 (en) 2016-02-24
CN104321666B (zh) 2017-06-13
US20170195296A1 (en) 2017-07-06
AU2013386840B2 (en) 2016-07-21
US9420429B2 (en) 2016-08-16
CN104321666A (zh) 2015-01-28
JP5876190B2 (ja) 2016-03-02
KR20150120462A (ko) 2015-10-27

Similar Documents

Publication Publication Date Title
KR101752266B1 (ko) 신뢰성 있는 위치 애플리케이션 및 위치 제공자 통신을 위한 기술들
US10237682B2 (en) Multi-signal geometric location sensing for access control
US11042168B2 (en) Drone sourced content authoring using swarm attestation
US11831710B2 (en) Tracking and certification of digital media via distributed ledger
US8190885B2 (en) Non-volatile memory sub-system integrated with security for storing near field transactions
US9635557B2 (en) Reliability for location services
KR20170087968A (ko) 신뢰 체인을 통해 무선 메쉬 네트워크를 보안
CN104662599A (zh) 用于从移动计算装置向计算机监视器传送图像和信息以用于显示的系统和方法
KR101686982B1 (ko) 재프로그램 가능한 보안 암호화 장치
JP6698707B2 (ja) バイナリ併合装置、その方法及び該コンピュータプログラム
US10999258B2 (en) Dynamic transmission of encrypted data
US20190213581A1 (en) Utilizing a transaction card to provide secondary authentication for accessing a secure application with a user device
US11847609B2 (en) Container touch-pairing device
WO2016205336A1 (en) Resource protection using tokenized information
KR101641328B1 (ko) 전자 펜과 이를 포함하는 전자 서명 시스템과 전자 서명 방법
KR20180039532A (ko) 사용자와 기기의 위치 정보를 이용한 사용자 인증 장치 및 그 방법

Legal Events

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