KR101001844B1 - 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법 - Google Patents

위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법 Download PDF

Info

Publication number
KR101001844B1
KR101001844B1 KR1020080055948A KR20080055948A KR101001844B1 KR 101001844 B1 KR101001844 B1 KR 101001844B1 KR 1020080055948 A KR1020080055948 A KR 1020080055948A KR 20080055948 A KR20080055948 A KR 20080055948A KR 101001844 B1 KR101001844 B1 KR 101001844B1
Authority
KR
South Korea
Prior art keywords
hilbert curve
clocking
grid
hilbert
user
Prior art date
Application number
KR1020080055948A
Other languages
English (en)
Other versions
KR20090129837A (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 전북대학교산학협력단
Priority to KR1020080055948A priority Critical patent/KR101001844B1/ko
Publication of KR20090129837A publication Critical patent/KR20090129837A/ko
Application granted granted Critical
Publication of KR101001844B1 publication Critical patent/KR101001844B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters

Landscapes

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

Abstract

위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역 생성 시스템 및 방법을 제공한다. 클로킹 영역 생성 시스템은 사용자로부터 클로킹 영역을 생성할 사용자 수를 입력 받는 입력부와, 힐버트 커브 그리드 정보 테이블로부터 힐버트 커브의 특성을 분석하는 분석부와, 상기 분석된 힐버트 커브의 특성을 이용하여 이웃 셀의 힐버트 커브 값을 계산하는 계산부 및 상기 계산된 힐버트 커브 값을 이용하여 상기 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 생성부를 포함한다.
클로킹, 위치 기반, 위치 정보, 힐버트 커브

Description

위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역 생성 시스템 및 방법{SYSTEM AND METHOD FOR GENRATING CLOAKING AREA TO CLOAK POSITION INFORAMTION OF USER IN LOCATION BASED SERVICE}
본 발명은 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 클로킹 영역 생성 시스템 및 방법에 관한 것으로, 더욱 상세하게는 힐버트 커브의 특성을 분석하고 이를 통해 이웃 셀의 힐버트 커브 값을 계산하여 최소화된 클로킹 영역을 생성하는 클로킹 영역 생성 시스템 및 방법에 관한 것이다.
최근 무선 통신과 모바일 위치 측정(mobile positioning) 기술의 발전으로 인해 위치 기반 서비스(Location-Based Service)의 이용이 확산되고 있다.
일반적으로 위치 기반 서비스는 이동 중인 사용자의 위치 정보를 다른 유용한 정보와 실시간으로 결합하여 사용자가 필요로 하는 다양한 부가적인 응용 서비스를 제공하는 것이다. 이러한 위치 기반 서비스를 사용하는 사용자는 GPS 위치 측정 장치를 이용하여 사용자의 위치 정보를 데이터베이스 서버에 보내어 교통 정보, 친구 찾기, 인접한 POI(Point Of Interest) 찾기 등과 같은 다양한 종류의 위 치 기반 서비스를 이용할 수 있다.
그러나 사용자의 정확한 위치 정보를 가지고 데이터베이스 서버에 서비스를 요청하는 것은 심각한 개인 정보 누출의 위협이 될 수 있다. 일례로 종래 위치 기반 서비스를 이용하는 상대방(adversary)은 서비스 이용자들이 어떤 장소에 자주 방문하는지 또한 이러한 방문이 어떤 시간대에 주로 이루어지는지를 파악하여 생활 스타일, 질병 정보, 종교 등의 개인 정보를 획득할 수 있으므로 사생활 침해의 소지가 높은 문제점이 있다. 이로 인하여 모바일 사용자의 안전하고 편리한 위치 기반 서비스의 사용을 위한 개인 정보 보호가 필요해짐에 따라 사용자의 위치 정보를 보호하는 방안이 요청되고 있는 실정이다.
종래 사용자의 위치 정보를 클로킹(cloaking)하기 위해 제안된 알고리즘은 사용자의 위치 정보를 기반으로 하여 사용자에게 식별자를 부여하고, 식별자 번호순으로 사용자를 검색하고, 검색된 사용자를 포함하는 클로킹 영역을 생성하여 사용자의 위치 정보를 클로킹한다.
도 1은 종래 사용자의 위치 정보를 클로킹하기 위해 제안된 알고리즘의 수행 순서도를 나타낸다.
도 1을 참조하면, 단계(S101)에서 종래 클로킹 시스템은 사용자로부터 클로킹 영역을 구성할 사용자의 수를 입력 받는다.
단계(S102)에서 종래 클로킹 시스템은 공간을 그리드(grid)로 색인하고, 상기 색인된 그리드상에서 힐버트 커브(Hilbert curve)를 생성하여 사용자의 위치에 해당하는 힐버트 커브 값(H)을 식별자로 부여한다. 상기 힐버트 커브 값은 변 수(H)에 복사되어 클로킹 영역 생성에 사용된다.
단계(S103)에서 종래 클로킹 시스템은 클로킹 영역을 생성하기 위해 힐버트 커브 값(H)을 임의로 증가 또는 감소시켜 H'에 저장한다.
단계(S104)에서 종래 클로킹 시스템은 상기 저장된 힐버트 커브 값(H')이 그리드에 부여된 최대 힐버트 커브 값(Hmax)을 초과하는지 여부를 판단한다.
상기 저장된 힐버트 커브 값(H')이 상기 최대 힐버트 커브 값 Hmax을 초과하면, 단계(S105)에서 종래 정보 클로킹 시스템은 H'값에서 상기 최대 힐버트 커브 값(Hmax)을 감산한다(H' = H' - Hmax).
사용자들은 무선 네트워크상에 있기 때문에 H'셀에 해당하는 사용자는 분산되어 있다. 따라서 이를 검색하기 위해 단계(S106)에서 종래 클로킹 시스템은 H'셀에 해당하는 클러스터를 현재 클러스터의 대표 노드에 저장된 선행자(predecessor) 또는 후행자(successor) 정보를 통해 접근한다. 클러스터 구성은 먼저 힐버트 커브 값을 기반으로 가상 링 구조를 형성하여 대표 노드를 결정하고, 노드는 링 구조상에서 시계 방향으로 대표 노드의 클러스터에 삽입한다. 여기서, 상기 선행자는 선행 클러스터의 대표 노드를 나타내며, 상기 후행자는 후행 클러스터의 대표 노드를 나타낸다.
단계(S107)에서 종래 클로킹 시스템은 해당 클러스터를 검색하여 H'에 해당하는 사용자의 수(M)를 검색한다.
단계(S108)에서 종래 클로킹 시스템은 현재까지 검색한 셀들의 모든 사용자 수(M)를 저장한 변수(M')와 합산한다(M' = M' + M).
단계(S109)에서 종래 클로킹 시스템은 상기 모든 사용자의 수(M')가 사용자가 요구한 사용자 k를 만족하는지 여부를 판단한다.
종래 클로킹 시스템은 상기 모든 사용자의 수(M')가 사용자가 요구한 사용자 k를 만족할 때까지 단계(S103)에서 단계(S108)까지의 작업을 반복한다.
단계(S109)까지의 모든 작업이 수행되면, 단계(S110)에서 종래 클로킹 시스템은 검색한 사용자를 포함하는 클로킹 영역을 위치 기반 서비스 서버로 반환한다.
도 2는 종래 클로킹 알고리즘을 수행하기 위한 그리드의 전체 모습의 일례를 나타내는 도면이다.
도 2를 참조하면, 사용자는 자신 이외에 3명의 사용자를 포함하는 클로킹 영역 생성을 요청하였다(k=4). 클로킹 알고리즘을 요청한 사용자(q)는 힐버트 커브 값 '10'을 부여 받고, H'를 '11'로 저장한다. 그리고 힐버트 커브 값을 가지고 자신의 클러스터 대표 노드에 접근한다. 클러스터는 가상 링 구조상에서 시계 방향으로 구성되므로 힐버트 커브 값 '10'을 갖는 노드의 대표 노드는 도 3에서 N14에 해당한다. N14에는 도 4에 도시된 것과 같이 선행자, 후행자, 핑거 테이블(finger table)이 저장되어 있다. 상기 핑거 테이블은 네트워크상에 노드의 삽입 시 클러스터 접근을 빠르게 하기 위해, 현재 대표 노드에서 21, 22, ... , 2n(n: 힐버트 커브 최대값이 가지는 비트 수)의 거리에 있는 노드의 대표 노드를 저장한다. H'에 해당하는 선행자 또는 후행자는 N21이므로 N21 노드에 접근하여 사용자를 탐색한 다. N21에 사용자가 없다면, H'를 기준으로 위의 과정을 반복한다. 따라서 위 과정을 통해 N21, N32, N42, N51, N1의 노드를 순차적으로 방문한다. 이는 k를 만족할 때까지 사용자를 탐색하기 때문에 도 2에 도시된 것과 같이 사용자가 셀 11, 31, 53에 존재할 경우, 셀 53의 대표 노드의 N1 노드까지 탐색한다. 결과적으로 도 2에 도시된 것과 같이 빗금친 사각형 영역을 클로킹(cloaking) 영역으로 생성한다.
하지만 종래 P2P(Peer To Peer) 클로킹 알고리즘은 다음과 같은 두 가지의 문제점을 가진다.
첫째로 종래 P2P 클로킹 알고리즘은 사용자가 요청한 k를 만족할 때까지 힐버트 커브를 따라 사용자를 검색하므로 도 2에 도시된 것과 같이 사용자의 이웃 셀에 사용자가 존재하여도 그 영역의 크기가 매우 커질 수 있다. 그러므로, 종래 P2P 클로킹 알고리즘은 영역의 크기가 커지면, 종래 위치 기반 서비스 서버에서는 클로킹 영역을 기반으로 서비스를 위한 질의 처리를 수행하기 때문에 질의 처리 결과가 부정확해지는 문제점이 있다.
두 번째로 종래 P2P 클로킹 알고리즘은 k를 만족할 때까지 이웃 클러스터 노드를 후행자 또는 선행자에 따라 순차 방문하기 때문에 최악의 경우 하나의 사용자 위치를 클로킹하기 위해 네트워크의 거의 모든 대표 노드를 방문하게 되므로 네트워크에서 통신 비용을 증가시키는 단점을 초래한다.
따라서, 상술한 바와 같은 종래 P2P 클로킹 알고리즘의 문제점을 해결할 수 있는 사용자의 위치 정보를 클로킹할 수 있는 방안이 요청되는 실정이다.
본 발명은 종래 클로킹 알고리즘의 문제점인 커다란 크기의 클로킹 영역 생성을 방지하기 위해서 힐버트 커브의 특성을 분석하고 이를 통해 이웃 셀의 힐버트 커브 값을 계산하여 최소화된 클로킹 영역을 생성하는 클로킹 영역 생성 시스템 및 방법을 제공한다.
또한 본 발명은 종래 클로킹 알고리즘의 다른 문제점인 네트워크 통신 비용을 줄이기 위해 대표 노드에 저장된 핑거 테이블을 개선하고 이를 이용하여 다른 클러스터에 접근함으로써 적은 클러스터 접속 횟수로도 검색하고자 하는 사용자의 수를 획득할 수 있는 클로킹 영역 생성 시스템 및 방법을 제공한다.
본 발명의 일실시예에 따른 클로킹 영역 생성 시스템은 사용자로부터 클로킹 영역을 생성할 사용자 수를 입력 받는 입력부와, 힐버트 커브 그리드 정보 테이블로부터 힐버트 커브의 특성을 분석하는 분석부와, 상기 분석된 힐버트 커브의 특성을 이용하여 이웃 셀의 힐버트 커브 값을 계산하는 계산부 및 상기 계산된 힐버트 커브 값을 이용하여 상기 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 생성부를 포함한다.
본 발명의 일실시예에 따른 클로킹 영역 생성 방법은 사용자로부터 클로킹 영역을 생성할 사용자 수를 입력 받는 단계와, 힐버트 커브 그리드 정보 테이블로부터 힐버트 커브의 특성을 분석하는 단계와, 상기 분석된 힐버트 커브의 특성을 이용하여 이웃 셀의 힐버트 커브 값을 계산하는 단계 및 상기 계산된 힐버트 커브 값을 이용하여 상기 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 단계를 포함한다.
본 발명에 따르면, 종래 클로킹 알고리즘의 문제점인 커다란 크기의 클로킹 영역 생성을 방지하기 위해서 힐버트 커브의 특성을 분석하고 이를 통해 이웃 셀의 힐버트 커브 값을 계산하여 최소화된 클로킹 영역을 생성하는 클로킹 영역 생성 시스템 및 방법을 제공할 수 있다.
또한 본 발명에 따르면, 종래 클로킹 알고리즘의 다른 문제점인 네트워크 통신 비용을 줄이기 위해 대표 노드에 저장된 핑거 테이블을 개선하고 이를 이용하여 다른 클러스터에 접근함으로써 적은 클러스터 접속 횟수로도 검색하고자 하는 사용자의 수를 획득할 수 있는 클로킹 영역 생성 시스템 및 방법을 제공할 수 있다.
이하 첨부된 도면들을 참조하여 클로킹 영역 생성 시스템 및 방법을 상세하게 설명하기로 한다.
도 5는 본 발명의 일실시예에 따른 클로킹 영역 생성 시스템의 구조를 나타내는 도면이다.
도 5를 참조하면, 사용자(510)는 클로킹 영역 생성 장치(520)를 통해 클로킹(Cloaking) 영역에 대한 생성을 요청하고, 클로킹 영역 생성 장치(520)는 클로킹 영역을 생성하여 이를 위치 기반 서비스 서버(530)로 전송한다. 일례로 클로킹 영 역 생성 장치(520)는 사용자(510)가 휴대하고 다니는 모바일 통신이 가능한 개인 휴대 단말기일 수 있다.
클로킹 영역 생성 시스템(500)은 크게 사용자(510)의 클로킹 영역 생성 장치(520) 및 P2P(Peer To Peer) 무선 네트워크(540)상에서 클로킹 영역 생성 장치(520)가 속해 있는 클러스터로 구성된다.
클로킹 영역 생성 장치(520)는 클로킹 영역 생성 알고리즘(521)에 따라 동작하여 사용자(510)가 요청한 클로킹 영역을 생성하며, 힐버트 커브 그리드 정보(522), 힐버트 커브 기본 순서 배열(523) 및 힐버트 커브 기본 방향 배열(524)을 저장한다.
클로킹 영역 생성 장치(520)가 위치해 있는 클러스터의 대표 노드(541)는 다른 클러스터로 접근하기 위한 핑거 테이블(542)을 저장한다.
도 6은 본 발명의 일실시예에 따른 클로킹 영역 생성 장치의 구성을 나타내는 도면이다.
도 6을 참조하면, 클로킹 영역 생성 장치(520)는 입력부(610), 분석부(620), 저장부(630), 계산부(640), 생성부(650) 및 전송부(660)를 포함한다.
입력부(610)는 사용자로부터 클로킹 영역을 생성할 사용자 수를 입력 받는다.
분석부(620)는 힐버트 커브 그리드 정보 테이블로부터 힐버트 커브의 특성을 분석한다. 상기 힐버트 커브 그리드 정보 테이블은 힐버트 커브를 통해 생성된 사용자 식별자, 현재 사용자가 위치한 그리드상에 셀 정보, 힐버트 커브의 차수 또는 힐버트 커브 타입을 포함한다. 분석부(620)는 상기 힐버트 커브 그리드 정보 테이블로부터 힐버트 커브 값과 좌표간의 관계를 분석한다. 분석부(620)는 상기 힐버트 커브 그리드 정보 테이블에서 힐버트 커브 방향과 힐버트 커브 차수를 분석한다.
저장부(630)는 힐버트 커브 그리드 정보, 힐버트 커브 기본 순서 배열 또는 힐버트 커브 기본 방향 배열을 저장한다. 상기 힐버트 커브 기본 순서 배열은 상기 힐버트 커브의 최소 단위인 그리드를 구성하는 힐버트 커브의 셀 ID를 포함하고, 상기 힐버트 커브는 시작 위치 및 종료 위치에 따라 각기 다른 타입의 커브가 생성된다. 상기 힐버트 커브의 타입은 상기 그리드의 아래 방향에서 시작 및 종료되는 타입, 상기 그리드의 위 방향에서 시작 및 종료되는 타입, 상기 그리드의 왼쪽 방향에서 시작 및 종료되는 타입 또는 상기 그리드의 오른쪽 방향에서 시작 및 종료되는 타입을 포함한다.
분석부(620)는 저장부(630)에 저장된 상기 힐버트 커브 그리드 정보, 상기 힐버트 커브 기본 순서 배열 또는 상기 힐버트 커브 기본 방향 배열로부터 상기 힐버트 커브의 특성을 분석할 수 있다.
계산부(640)는 상기 분석된 힐버트 커브의 특성을 이용하여 이웃 셀의 힐버트 커브 값을 계산한다. 계산부(640)는 상기 힐버트 커브 그리드 정보 테이블에 저장된 정보를 이용하여 상기 사용자가 위치한 셀의 이웃 셀의 힐버트 커브 값을 계산한다. 계산부(640)는 상기 그리드에 할당된 최대 힐버트 커브 값에서 각 타입에 저장된 값을 감산하여 상기 이웃 셀의 힐버트 커브 값을 계산한다. 계산 부(640)는 상기 힐버트 커브 값을 좌표로 표현하고, 상기 좌표를 비트별로 분해하고 이를 힐버트의 기본 타입에 대입한 후 해당하는 서브 그리드의 크기를 곱하고 더하여 상기 힐버트 커브 값을 상기 좌표를 통해 직접 계산한다. 계산부(640)는 현재 셀의 좌표를 이용하여 이웃 셀의 좌표를 계산하고, 상기 이웃 셀의 좌표를 비트로 표현하고, 상기 힐버트 커브 차수만큼 이동하여 비트 연산을 수행하여 수학식 1에 따라 1차 배열에서의 인덱스 값을 계산한다.
[수학식 1]
Figure 112008042490652-pat00001
여기서, I는 맵핑되는 인덱스를 나타내고, X와 Y는 그리드상의 좌표를 나타낸다.
상기 인덱스 값은 수학식 2와 같이 표현된다.
[수학식 2]
Figure 112008042490652-pat00002
생성부(650)는 상기 계산된 힐버트 커브 값을 이용하여 상기 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성한다.
전송부(660)는 상기 생성된 클로킹 영역을 위치 기반 서비스 서버(530)로 전송한다. 즉, 전송부(660)는 상기 생성된 클로킹 영역을 위치 기반 서비스 서버(530)로 전송함으로써 상기 클로킹 영역을 반환할 수 있다.
이와 같이, 본 발명에 따른 클로킹 영역 생성 시스템(500)은 종래 클로킹 알 고리즘의 문제점인 커다란 크기의 클로킹 영역 생성을 방지하기 위해서 힐버트 커브의 특성을 분석하고 이를 통해 이웃 셀의 힐버트 커브 값을 계산하여 최소화된 클로킹 영역을 생성할 수 있다.
또한 본 발명에 따른 클로킹 영역 생성 시스템(500)은 종래 클로킹 알고리즘의 다른 문제점인 네트워크 통신 비용을 줄이기 위해 대표 노드에 저장된 핑거 테이블을 개선하고 이를 이용하여 다른 클러스터에 접근함으로써 적은 클러스터 접속 횟수로도 검색하고자 하는 사용자의 수를 획득할 수 있다.
도 7은 힐버트 커브를 확장시키는 일례를 나타내는 도면이다.
도 7을 참조하면, 생성부(650)는 기본적으로 n*n의 정사방형 그리드(grid) 상에서 기본 힐버트 커브를 생성한다. 일례로 생성부(650)는 2*2의 정사방형 그리드 상에 힐버트 커브의 기본 단위(700)를 생성하고, 4*4의 정사방형 그리드 상에 기본 단위의 힐버트 커브를 복사하며(710), 상기 힐버트 커브를 좌우로 대칭시킨 커브를 복사하며(720), 각각의 힐버트 커브를 연결하여(730) 상기 힐버트 커브를 확장하여 상기 클로킹 영역을 생성할 수 있다. 4*4 그리드는 22*22 이므로 이 커브를 2차수 힐버트 공간 채움 커브(2-order Hilbert space filling curve)라 한다. 상기 힐버트 커브는 이 규칙을 바탕으로 보다 더 큰 그리드로 확장된다.
도 8은 힐버트 커브 그리드 정보 테이블의 일례를 나타내는 도면이다.
도 8을 참조하면, 상기 힐버트 커브 그리드 정보 테이블은 상기 사용자가 위치한 셀의 이웃 셀을 계산할 때 사용되는 정보가 저장된다. 상기 힐버트 커브 그 리드 정보 테이블은 힐버트 커브를 통해 생성된 사용자 식별자, 현재 사용자가 위치한 그리드상의 셀 정보, 힐버트 커브의 차수, 힐버트 커브 타입으로 구성된다.
도 9는 힐버트 커브 기본 순서 배열 테이블의 일례를 나타내는 도면이다.
도 9를 참조하면, 힐버트 커브 기본 순서 배열 테이블은 2*2 그리드를 구성하는 힐버트 커브의 셀 ID를 저장한다. 2*2 그리드는 힐버트 커브의 최소 단위이며, 상기 힐버트 커브는 시작 위치 및 종료 위치에 따라 4가지 타입의 커브가 생성된다.
도 10은 힐버트 커브 기본 방향 배열 테이블의 일례를 나타내는 도면이다.
도 10을 참조하면, 상기 힐버트 커브 기본 방향 배열 테이블은 2*2 그리드를 구성하는 힐버트 커브의 각 타입을 저장한다. 상기 힐버트 커브 기본 타입은 시작 및 종료의 방향에 따라 B(그리드 아래 방향에서 시작 및 종료됨), T(그리드 위 방향에서 시작 및 종료됨), R(그리드 오른쪽 방향에서 시작 및 종료됨), L(그리드 왼쪽 방향에서 시작 및 종료됨)로 정의된다. 시작 및 종료 위치가 바뀌는 경우 각 타입에 따라 B-1, T-1, L-1, R-1로 정의된다. 상기 각 타입들의 힐버트 커브 값은 2*2그리드에 할당된 최대 힐버트 커브 값에서 B, T, L, R 타입에 저장된 값을 감산하여 계산된다. 각 타입에 생성된 힐버트 커브 값을 1차원 배열에 맵핑하기 위하여 상기 수학식 1과 같은 맵핑 함수가 사용된다.
도 11은 대표 노드의 핑거 테이블의 일례를 나타내는 도면이다.
도 11을 참조하면, 대표 노드의 핑거 테이블은 클러스터 구성원 정보와 현재 대 표 노드에서 전후로 20, 21, ... ,2N-1(여기서, N은 그리드의 차수 8*8 그리드는 N=6) 거리에 있는 셀이 포함된 클러스터 대표 노드를 저장한다. 상기 구성원 정보는 사용자가 있는 셀 ID와 셀에 존재하는 사용자 수(m)를 저장한다. 상기 핑거 테이블은 클러스터 대표 노드까지 빠르게 접근하기 위해 유지되고, 셀과 이웃 셀의 차이가 전체 그리드 크기의 1/2이상 커지지 않기 때문에 23*23=26/2=25까지의 거리에 있는 셀의 대표 노드를 저장한다.
도 12는 힐버트 커브 기본 순서 배열의 일례를 나타내는 도면이다.
도 12를 참조하면, 힐버트 커브 기본 타입(1210)은 2*2 그리드에서 시작 및 종료의 방향에 따라 B(그리드 아래(Bottom) 방향에서 시작 및 종료됨), T(그리드 위(Top) 방향에서 시작 및 종료됨), R(그리드 오른쪽(Right) 방향에서 시작 및 종료됨), L(그리드 왼쪽(left) 방향에서 시작 및 종료됨)로 나뉜다. 일례로 B 타입의 힐버트 커브(1220)는 1차원 배열에 매핑하면, 0(0,0), 3(1,0), 1(0,1), 2(1,1)과 같이 나타낼 수 있다.
도 13은 4*4 그리드에서 4가지 힐버트 커브 타입의 일례를 나타내는 도면이다.
도 13을 참조하면, 4*4 그리드에서 4가지 힐버트 커브 타입(1310~1340)은 4개의 2*2 그리드의 힐버트 커브로 구성되며, 시작 및 종료의 방향에 따라 B(그리드 아래(Bottom) 방향에서 시작 및 종료됨)(1310), T(그리드 위(Top) 방향에서 시작 및 종료됨)(1320), R(그리드 오른쪽(Right) 방향에서 시작 및 종료됨)(1330), L(그 리드 왼쪽(left) 방향에서 시작 및 종료됨)(1340)로 나뉜다. 일례로 4*4 그리드에서 힐버트 커브를 구성하고 있는 2*2 그리드 힐버트 커브 타입을 표시하면 도 14에 도시된 것과 같다. 일반적으로 정방향 그리드에서 그리드를 4등분하면, 각 그리드에 대한 타입은 도 14에 도시된 것과 같다.
도 14는 4*4 그리드에서 힐버트 커브 기본 방향 배열의 일례를 나타내는 도면이다.
도 14를 참조하면, 힐버트 커브 기본 방향 배열은 B(1410), T(1420), L(1430), R(1440) 타입만 저장하며, B-1, T-1, L-1, R-1 타입은 저장된 타입 구성을 역변환하여 계산된다. 예를 들어 B={B, B, L-1, R}이므로 B-1은 B-1={B-1, B-1, L, R-1}이 된다.
도 15는 8*8 그리드의 힐버트 커브 생성 모습의 일례를 나타내는 도면이다.
도 15를 참조하면, 8*8 그리드에서 (4,3)의 좌표에 해당하는 힐버트 커브 값은 '53'이다. 분석부(620)는 상기 규칙에 따라 그리드를 분할해 가면서 힐버트 커브 값을 분석한다. 먼저 8*8 그리드를 4등분한다고 가정할 때 힐버트 커브 값(53)은 4사분면에 위치한다. 상기 4사분면은 각 사분면만을 좌표로 표현했을 때 (1,0)에 해당한다. 다시 상기 4사분면의 그리드 즉, 4*4 그리드에서 이를 4등분하면 상기 힐버트 커브 값(53)은 1사분면에 위치하고, 이를 다시 4등분해도 그리드의 1사분면에 위치한다. 상기 1사분면은 좌표로 표현하면, (0,1)에 해당한다. 즉, 상기 힐버트 커브 값(53)을 사분면으로 분할하였을 때 각 분할 지점에서 좌표는 8*8 그 리드에서 (1,0)이고, 4*4 그리드에서 (0,1)이고, 2*2 그리드에서 (0,1)이다. 이는 (4,3)을 비트로 표현한 (100,011) 좌표를 비트별로 분할한 것과 동일하다. 8*8의 서브 그리드는 4*4 그리드이고, 그 크기는 '16'이다. 이를 토대로 상기 힐버트 커브 값(53)을 계산하면, '48+4+1 = 16*3+4*1+1+1*1'이 된다. 이는 힐버트 커브 타입 중에서 B타입에 속하며, 각각을 계산하면 다음과 같다.
8*8 그리드(1,0) → 3, B
4*4 그리드(0,1) → 1, R
2*2 그리드(0,1) → 1, R
즉, 계산부(640)는 좌표를 비트별로 분해하고 이를 힐버트의 기본 타입에 대입한 후 해당하는 서브 그리드의 크기를 곱하여 더하면 힐버트 커브 값을 좌표를 통해 직접 계산할 수 있다.
도 16은 8*8 그리드에서 각 서브 그리드의 시작 및 종료 힐버트 커브 값의 일례를 나타내는 도면이다.
도 16을 참조하면, 8*8 그리드에서 각 서브 그리드의 시작 및 종료 힐버트 커브 값은 0, 15, 16, 31, 32, 47, 48, 51, 52, 53, 54, 55, 56, 59, 60, 63이다.
도 17 및 도 18은 본 발명의 일실시예에 따른 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 알고리즘의 수행 순서도를 나타내는 도면이다.
도 17 및 도 18을 참조하면, 본 발명의 일실시예에 따른 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 알고리즘은 크게 사용자 셀의 이웃 셀을 계산하는 부분과 이웃 셀에 있는 사용자를 탐색하는 부분으로 구성된다.
단계(S1701)에서 클로킹 영역 생성 시스템은 사용자로부터 클로킹 영역을 생성할 사용자 수를 입력 받는다.
단계(S1702)에서 상기 클로킹 영역 생성 시스템은 개인 휴대 단말기의 힐버트 커브 그리드 정보 테이블에서 힐버트 커브 방향(D)와 힐버트 커브 차수(G)를 입력 받는다.
단계(S1703)에서 상기 클로킹 영역 생성 시스템은 현재 셀의 좌표(H)를 이용하여 이웃 셀의 좌표를 계산한다.
단계(S1704)에서 상기 클로킹 영역 생성 시스템은 상기 계산된 이웃 셀 좌표를 비트로 표현하고 반복 횟수를 카운트(count)하는 변수(i)를 초기화한다.
단계(S1705)에서 상기 클로킹 영역 생성 시스템은 상기 비트를 힐버트 커브 차수(G-1)만큼 이동(shift)하여 1과 AND 비트 연산을 취하고 수학식의 맵핑 함수에 따라 1차 배열에서의 인덱스 값(Ri)으로 변환한다. 이를 표현하면 상기 수학식 2와 같다.
단계(S1706)에서 상기 클로킹 영역 생성 시스템은 상기 인덱스 값이 계산되면, 상기 개인 휴대 단말기에 저장된 힐버트 커브 기본 순서 배열 중에서 힐버트 커브 방향(D)에 해당하는 타입에 따라 비트 연산된 좌표에 해당하는 값(V)을 검색한다.
단계(S1707)에서 상기 클로킹 영역 생성 시스템은 상기 힐버트 커브 방향(D)에 해당하는 힐커브 커브 방향 배열에서 해당 값을 검색한 결과를 저장한다.
단계(S1708)에서 상기 클로킹 영역 생성 시스템은 반복 횟수 카운트(i)를 증가시키고, 단계(S1709)에서 상기 반복 횟수 카운트(i)가 상기 힐버트 커브 차수(G)와 동일한지 여부를 판단한다.
상기 반복 횟수 카운트(i)가 상기 힐버트 커브 차수(G)와 동일하지 않은 경우, 상기 클로킹 영역 생성 시스템은 단계(S1705)부터 단계(S1709)까지의 동작을 반복 수행한다. 즉, 힐버트 커브 기본 방향 배열에서 비트 연산된 좌표에 해당하는 값을 다시 힐버트 커브 방향(D)에 저장한 후 상기 힐버트 커브 차수(G)를 감소시켜 단계(S1705)부터 단계(S1709)까지의 작업을 반복 수행한다. 상기 작업은 상기 힐버트 커브 차수(G)가 '0'보다 작아질 때까지 반복한다.
상기 반복 횟수 카운트(i)가 상기 힐버트 커브 차수(G)와 동일한 경우, 단계(S1710)에서 상기 킬로킹 영역 생성 시스템은 각 힐버트 커브 차수에서 검색한 힐버트 커브 값(V)를 합산한다(C). 상기 힐버트 커브 기본 순서 배열의 값을 얻어오는 함수를 OHilb(Row, Column), 힐버트 커브 기본 방향 배열의 값을 얻어오는 함수를 DHilb(Row, Column)라 하면, 이웃 셀 C의 값은 각 과정에서 계산된 V의 값을 각 반복 단계에서 서브 그리드 크기와 곱하여 이를 모두 합산한 값이다. 이에 관한 계산 과정은 수학식 3 내지 수학식 5과 같다.
[수학식 3]
Figure 112008042490652-pat00003
[수학식 4]
Figure 112008042490652-pat00004
[수학식 5]
Figure 112008042490652-pat00005
단계(S1711)에서 상기 클로킹 영역 생성 시스템은 상기 이웃 셀을 방향 별로 모두 계산하였는지 여부를 판단한다.
상기 이웃 셀을 모두 계산하지 않은 경우, 상기 클로킹 영역 생성 시스템은 단계(S1703)부터 단계(S1711)까지의 동작을 상기 이웃 셀을 방향 모두 계산이 완료될 때까지 반복 수행한다.
상기 이웃 셀을 모두 계산하였다면, 단계(S1712)에서 상기 클로킹 영역 생성 시스템은 각 이웃 셀에 대하여 사용자를 탐색한다. 상기 이웃 셀 탐색 순서는 수학식 6과 같이 현재 셀과 가장 가까운 힐버트 커브 값의 순서로 계산하며, 만일 최소값이 하나 이상일 경우에는 힐버트 커브 값이 작은 것부터 탐색한다.
단계(S1713)에서 상기 클로킹 영역 생성 시스템은 셀 탐색 순서에 따라 셀을 선택한다(Cj).
상기 탐색할 셀이 선택되면, 단계(S1714)에서 상기 클로킹 영역 생성 시스템 은 현재 사용자가 속해 있는 대표 노드의 핑거 테이블을 검색하여 탐색할 셀(Cj)에 해당하는 클러스터를 결정한다. 즉, 단계(S1714)에서 상기 클로킹 영역 생성 시스템은 상기 클러스터를 결정하기 위해 클러스터 대표 노드의 힐버트 커브 값에서 탐색할 셀의 값을 감산하여 그 값이 가장 작은 값을 선택한다. 이때, 감산 시 음수로 계산되면, 힐버트 커브 최대값을 더하여 보정하며, 이는 링 구조로 힐버트 커브 값이 순환하기 때문이다. 클러스터 대표 노드를 N이라 할 때 클러스터 결정 식은 수학식 7 및 수학식 8과 같다. 여기서, n은 핑거 테이블의 클러스터 대표 노드의 개수이다.
[수학식 7]
Figure 112008042490652-pat00006
[수학식 8]
Figure 112008042490652-pat00007
접근해야 할 클러스터가 결정되면, 단계(S1715)에서 상기 클로킹 영역 생성 시스템은 해당 클러스터에 접근하여 탐색할 셀의 사용자 수(M)를 검색한다.
단계(S1716)에서 상기 클로킹 영역 생성 시스템은 누적 사용자 수(M')를 합산하여 계산한다(M' = M'+M).
단계(S1717)에서 상기 클로킹 영역 생성 시스템은 상기 합산된 사용자 수(M')가 상기 사용자로부터 입력된 상기 클로킹 영역을 구성할 사용자 수(k)보다 크거나 같은지 여부를 판단한다.
상기 합산된 사용자 수(M')가 상기 클로킹 영역을 구성할 사용자 수(k)보다 크거나 같지 않은 경우, 단계(S1718)에서 상기 클로킹 영역 생성 시스템은 이웃 셀을 모두 탐색하였는지 여부를 판단한다.
상기 이웃 셀을 모두 탐색하여 탐색할 이웃 셀이 없다면, 단계(S1719)에서 상기 클로킹 영역 생성 시스템은 확장할 기준 셀을 선택하고, 단계(S1713) 동작으로 진입한다.
상기 이웃 셀을 모두 탐색하지 않은 경우, 상기 클로킹 영역 생성 시스템은 단계(S1713)부터의 동작을 다시 수행한다.
상기 합산된 사용자 수(M')가 상기 클로킹 영역을 구성할 사용자 수(k)보다 크거나 같은 경우, 단계(S1720)에서 상기 클로킹 영역 생성 시스템은 검색한 사용자를 포함하는 클로킹 영역을 위치 기반 서비스 서버에게 전송하여 상기 클로킹 영역을 반환한다.
이와 같이, 본 발명에 따른 클로킹 영역 생성 방법은 종래 클로킹 알고리즘의 문제점인 커다란 크기의 클로킹 영역 생성을 방지하기 위해서 힐버트 커브의 특성을 분석하고 이를 통해 이웃 셀의 힐버트 커브 값을 계산하여 최소화된 클로킹 영역을 생성할 수 있다.
또한 본 발명에 따른 클로킹 영역 생성 방법은 종래 클로킹 알고리즘의 문제 점인 네트워크 통신 비용을 줄이기 위해 대표 노드에 저장된 핑거 테이블을 개선하고 이를 이용하여 다른 클러스터에 접근함으로써 적은 클러스터 접속 횟수로도 검색하고자 하는 사용자의 수를 획득할 수 있다.
이하 사용자가 클로킹 영역을 구성할 사용자 수(k)를 '4'로 입력한 경우를 예로 들어 설명하기로 한다.
도 19는 본 발명에 따른 클로킹 영역을 생성하는 알고리즘에 따른 가상 링 구조에서 클러스터 대표 노드 구성의 일례를 나타내는 도면이다.
도 19를 참조하면, 가상 링 구조에서 클러스트 대표 노드 구성은 사용자가 클로킹 영역을 구성할 사용자 수(k)를 '4'로 입력한 경우이다.
도 20은 도 19에 도시된 클러스터 대표 노드에 따른 힐버트 커브 그리드 정보 테이블의 일례를 나타내는 도면이다.
도 20을 참조하면, 상기 사용자가 클로킹 영역을 구성할 사용자 수(k)를 '4'로 입력한 경우 힐버트 커브 그리드 정보 테이블에서 힐버트 커브 방향(D)과 힐버트 커브 차수(G)를 검색한다. 상기 힐버트 커브 방향(D)는 'B'이고, 상기 힐버트 커브 차수(G)는 '3'이다.
상기 사용자의 현재 셀 위치가 C8(10)로 좌표가 (3,3)의 위치에 있다. 따라서, 상기 사용자의 이웃 셀은 도 22에 도시된 것과 같이 빗금 친 영역의 셀이 되며, 좌표는 각각 (3,2), (2,3), (3,4), (4,3)이 된다. 이를 비트로 표현하면 (011,010), (010,011), (011,100), (100,011)이 된다. 예를 들어 (010,011)의 경우는 수학식 2에 따라 힐버트 커브 순서 및 방향 배열의 인덱스를 계산하면, 다음 과 같다.
R0=((011>>2)&1)+2*(010>>2&1)=0+0=0
R1=((011>>1)&1)+2*(010>>1&1) =3
R2=(011>>0&1)+2*(010>>0&1)=1
상기 인덱스를 계산한 후 수학식 3 내지 수학식 5에 따라 해당 배열의 인덱스에서 값을 가져오면 각 값은 다음과 같다.
V0=OHilb(R0,D0)=OHilb(0,D)=OHilb(0,B)=0,
V1=OHilb(R1,D1)=OHilb(3,DHilb(R0,D0))=OHilb(3,DHilb(0,B))=OHilb(3,L-1)=2
V2=OHilb(R2,D2)=OHilb(1, DHilb(R1,D1))= OHilb(1,DHilb(3,L-1))=OHilb(1,L-1)=1
이를 서브 그리드의 크기와 곱하여 합산하면 최종적으로 셀의 ID는 다음과 같다.
C=V0*22(3-1)+V1*22(3-2)+ V2*22(3-3)=0*16+2*4+1=9
이와 같이, 상기 이웃 셀을 계산하면 (3,2), (2,3), (3,4), (4,3)은 각각 9, 11, 31, 53이 된다. 상기 이웃 셀이 계산되면, 클러스터의 대표 노드에 접근하여 각 셀의 클러스터를 검색한다. 이웃 셀 탐색 순서는 상기 사용자 셀과 가까운 ID 순으로 9, 11, 31, 53이다. 상기 대표 노드의 핑거 테이블에는 도 21에 도시된 것과 같이 N1, N8, N14, N21, N32, N42가 저장되어 있다. 셀 9의 클러스터에 해당하는 노드를 검색하기 위해 수학식 7과 수학식 8을 이용하여 계산하면 다음과 같다.
N1: 1-9=-8 ∴ -8+26-1=-8+63=53
N8: 8-9=-1 ∴ -1+26-1=-1+63=62
N14: 14-9=5
N21: 21-9=11
N32: 32-9=23
N42: 42-9=33
따라서 최소 값은 N14이므로 N14를 검색한다. 하지만 도 22에 도시된 것과 같이 N14에는 C9에 해당하는 사용자가 없으므로 다음 이웃 셀을 탐색한다. 11은 N14, 31은 N32, 53은 N1이 셀을 포함한 클러스터이므로 이들에 접근하여 사용자 수를 계산한다. 각 셀에서 1명의 사용자가 존재하므로 이를 포함하는 영역은 최종적으로 도 23에 도시된 것과 같이 빗금친 영역이 된다. 상기 생성된 클로킹 영역은 위치 기반 서비스 서버(530)로 전송된다.
이와 같이, 사용자가 클로킹 영역을 구성할 사용자 수(k)를 '4'로 입력한 경우를 생성된 영역의 셀의 수는 6개이고, 접근하는 클러스터의 수는 2개이다. 하지만 종래 클로킹 알고리즘에서는 영역 셀의 수는 48이고, 접근하는 클러스터의 수는 5개로 본 발명에서 제안하는 알고리즘이 보다 효율적임을 알 수 있다.
한편 본 발명에 따른 클로킹 영역 생성 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해 져야 한다.
도 1은 종래 클로킹 알고리즘에 따른 수행 순서도의 일례를 나타내는 도면이다.
도 2는 종래 클로킹 알고리즘에 따른 그리드의 전체 모습의 일례를 나타내는 도면이다.
도 3은 가상 링 구조에서 클러스터 대표 노드를 구성한 일례를 나타내는 도면이다.
도 4는 도 3에 도시된 것과 같은 클러스터 대표 노드 저장 구조의 일례를 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 클로킹 영역 생성 시스템의 구조를 나타내는 도면이다.
도 6은 본 발명의 일실시예에 따른 클로킹 영역 생성 장치의 구성을 나타내는 도면이다.
도 7은 힐버트 커브를 확장시키는 일례를 나타내는 도면이다.
도 8은 힐버트 커브 그리드 정보 테이블의 일례를 나타내는 도면이다.
도 9는 힐버트 커브 기본 순서 배열 테이블의 일례를 나타내는 도면이다.
도 10은 힐버트 커브 기본 방향 배열 테이블의 일례를 나타내는 도면이다.
도 11은 대표 노드의 핑거 테이블의 일례를 나타내는 도면이다.
도 12는 힐버트 커브 기본 순서 배열의 일례를 나타내는 도면이다.
도 13은 4*4 그리드에서 4가지 힐버트 커브 타입의 일례를 나타내는 도면이 다.
도 14는 힐버트 커브 기본 방향 배열의 일례를 나타내는 도면이다.
도 15는 8*8 그리드의 힐버트 커브 생성 모습의 일례를 나타내는 도면이다.
도 16은 8*8 그리드에서 각 서브 그리드의 시작 및 종료 힐버트 커브 값의 일례를 나타내는 도면이다.
도 17 및 도 18은 본 발명의 일실시예에 따른 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 알고리즘의 수행 순서도를 나타내는 도면이다.
도 19는 본 발명에 따른 클로킹 영역을 생성하는 알고리즘에 따른 가상 링 구조에서 클러스터 대표 노드 구성의 일례를 나타내는 도면이다.
도 20은 도 19에 도시된 클러스터 대표 노드에 따른 힐버트 커브 그리드 정보 테이블의 일례를 나타내는 도면이다.
도 21은 도 19에 도시된 클러스터 대표 노드에 따른 핑거 테이블의 일례를 나타내는 도면이다.
도 22는 본 발명에 따른 클로킹 영역을 생성하는 알고리즘을 수행하는 과정을 나타내는 도면이다.
도 23은 본 발명에 따른 최종 클로킹 영역을 생성한 모습의 일례를 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
500: 클로킹 영역 생성 시스템
510: 사용자
520: 클로킹 영역 생성 장치
530: 위치 기반 서비스 서버
540: 무선 네트워크
541: 대표 노드
542: 핑거 테이블

Claims (27)

  1. 사용자로부터 클로킹 영역을 생성할 사용자 수를 입력 받는 입력부;
    힐버트 커브 그리드 정보 테이블로부터 힐버트 커브의 특성을 분석하는 분석부;
    상기 분석된 힐버트 커브의 특성을 이용하여 이웃 셀의 힐버트 커브 값을 계산하는 계산부; 및
    상기 계산된 힐버트 커브 값을 이용하여 상기 클로킹 영역을 생성할 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 생성부
    를 포함하는 클로킹 영역 생성 시스템.
  2. 제1항에 있어서,
    상기 생성된 클로킹 영역을 위치 기반 서비스 서버로 전송하는 전송부를 더 포함하는 클로킹 영역 생성 시스템.
  3. 제1항에 있어서,
    힐버트 커브 그리드 정보, 힐버트 커브 기본 순서 배열 또는 힐버트 커브 기본 방향 배열을 저장하는 저장부를 더 포함하는 클로킹 영역 생성 시스템.
  4. 제1항에 있어서,
    상기 클로킹 영역을 생성할 사용자가 위치해 있는 클러스터의 대표 노드는 다른 클러스터로 접근하기 위한 핑거 테이블을 저장하는 클로킹 영역 생성 시스템.
  5. 제1항에 있어서,
    상기 계산부는,
    상기 힐버트 커브 그리드 정보 테이블에 저장된 정보를 이용하여 상기 클로킹 영역을 생성할 사용자가 위치한 셀의 이웃 셀의 힐버트 커브 값을 계산하는 클로킹 영역 생성 시스템.
  6. 제1항에 있어서,
    상기 힐버트 커브 그리드 정보 테이블은,
    힐버트 커브를 통해 생성된 사용자 식별자, 현재 상기 클로킹 영역을 생성할 사용자가 위치한 그리드상에 셀 정보, 힐버트 커브의 차수 또는 힐버트 커브 타입을 포함하는 클로킹 영역 생성 시스템.
  7. 제3항에 있어서,
    상기 힐버트 커브 기본 순서 배열은,
    상기 힐버트 커브의 최소 단위인 그리드를 구성하는 힐버트 커브의 셀 ID를 저장하고,
    상기 힐버트 커브는,
    시작 위치 및 종료 위치에 따라 각기 다른 타입의 커브가 생성되는 클로킹 영역 생성 시스템.
  8. 제7항에 있어서,
    상기 힐버트 커브의 타입은,
    상기 그리드의 아래 방향에서 시작 및 종료되는 타입, 상기 그리드의 위 방향에서 시작 및 종료되는 타입, 상기 그리드의 왼쪽 방향에서 시작 및 종료되는 타입 또는 상기 그리드의 오른쪽 방향에서 시작 및 종료되는 타입을 포함하는 클로킹 영역 생성 시스템.
  9. 제8항에 있어서,
    상기 계산부는,
    상기 그리드에 할당된 최대 힐버트 커브 값에서 각 타입에 저장된 값을 감산하여 상기 이웃 셀의 힐버트 커브 값을 계산하는 클로킹 영역 생성 시스템.
  10. 제1항에 있어서,
    상기 분석부는,
    상기 힐버트 커브 그리드 정보 테이블로부터 힐버트 커브 값과 좌표간의 관계를 분석하는 클로킹 영역 생성 시스템.
  11. 제10항에 있어서,
    상기 계산부는,
    상기 힐버트 커브 값을 좌표로 표현하고, 상기 좌표를 비트별로 분해하고 이를 힐버트의 기본 타입에 대입한 후 해당하는 서브 그리드의 크기를 곱하고 더하여 상기 힐버트 커브 값을 상기 좌표를 통해 직접 계산하는 클로킹 영역 생성 시스템.
  12. 제1항에 있어서,
    상기 분석부는,
    상기 힐버트 커브 그리드 정보 테이블에서 힐버트 커브 방향과 힐버트 커브 차수를 분석하는 클로킹 영역 생성 시스템.
  13. 제1항에 있어서,
    상기 계산부는,
    현재 셀의 좌표를 이용하여 이웃 셀의 좌표를 계산하고, 상기 이웃 셀의 좌표를 비트로 표현하고, 상기 힐버트 커브 차수만큼 이동하여 비트 연산을 수행하여 1차 배열에서의 인덱스 값을 계산하는 클로킹 영역 생성 시스템.
  14. 사용자로부터 클로킹 영역을 생성할 사용자 수를 입력 받는 단계;
    힐버트 커브 그리드 정보 테이블로부터 힐버트 커브의 특성을 분석하는 단계;
    상기 분석된 힐버트 커브의 특성을 이용하여 이웃 셀의 힐버트 커브 값을 계산하는 단계; 및
    상기 계산된 힐버트 커브 값을 이용하여 상기 클로킹 영역을 생성할 사용자의 위치 정보를 클로킹하기 위한 클로킹 영역을 생성하는 단계
    를 포함하는 클로킹 영역 생성 방법.
  15. 제14항에 있어서,
    상기 생성된 클로킹 영역을 위치 기반 서비스 서버로 전송하는 단계를 더 포함하는 클로킹 영역 생성 방법.
  16. 제14항에 있어서,
    힐버트 커브 그리드 정보, 힐버트 커브 기본 순서 배열 또는 힐버트 커브 기본 방향 배열을 저장하는 단계를 더 포함하는 클로킹 영역 생성 방법.
  17. 제14항에 있어서,
    상기 클로킹 영역을 생성할 사용자가 위치해 있는 클러스터의 대표 노드는 다른 클러스터로 접근하기 위한 핑거 테이블을 저장하는 클로킹 영역 생성 방법.
  18. 제14항에 있어서,
    상기 이웃 셀의 힐버트 커브 값을 계산하는 단계는,
    상기 힐버트 커브 그리드 정보 테이블에 저장된 정보를 이용하여 상기 클로킹 영역을 생성할 사용자가 위치한 셀의 이웃 셀의 힐버트 커브 값을 계산하는 클로킹 영역 생성 방법.
  19. 제14항에 있어서,
    상기 힐버트 커브 그리드 정보 테이블은,
    힐버트 커브를 통해 생성된 사용자 식별자, 현재 상기 클로킹 영역을 생성할 사용자가 위치한 그리드상에 셀 정보, 힐버트 커브의 차수 또는 힐버트 커브 타입을 포함하는 클로킹 영역 생성 방법.
  20. 제16항에 있어서,
    상기 힐버트 커브 기본 순서 배열은,
    상기 힐버트 커브의 최소 단위인 그리드를 구성하는 힐버트 커브의 셀 ID를 저장하고,
    상기 힐버트 커브는,
    시작 위치 및 종료 위치에 따라 각기 다른 타입의 커브가 생성되는 클로킹 영역 생성 방법.
  21. 제20항에 있어서,
    상기 힐버트 커브의 타입은,
    상기 그리드의 아래 방향에서 시작 및 종료되는 타입, 상기 그리드의 위 방향에서 시작 및 종료되는 타입, 상기 그리드의 왼쪽 방향에서 시작 및 종료되는 타 입 또는 상기 그리드의 오른쪽 방향에서 시작 및 종료되는 타입을 포함하는 클로킹 영역 생성 방법.
  22. 제21항에 있어서,
    상기 이웃 셀의 힐버트 커브 값을 계산하는 단계는,
    상기 그리드에 할당된 최대 힐버트 커브 값에서 각 타입에 저장된 값을 감산하여 상기 이웃 셀의 힐버트 커브 값을 계산하는 클로킹 영역 생성 방법.
  23. 제14항에 있어서,
    상기 힐버트 커브의 특성을 분석하는 단계는,
    상기 힐버트 커브 그리드 정보 테이블로부터 힐버트 커브 값과 좌표간의 관계를 분석하는 클로킹 영역 생성 방법.
  24. 제23항에 있어서,
    상기 이웃 셀의 힐버트 커브 값을 계산하는 단계는,
    상기 힐버트 커브 값을 좌표로 표현하고, 상기 좌표를 비트별로 분해하고 이를 힐버트의 기본 타입에 대입한 후 해당하는 서브 그리드의 크기를 곱하고 더하여 상기 힐버트 커브 값을 상기 좌표를 통해 직접 계산하는 클로킹 영역 생성 방법.
  25. 제14항에 있어서,
    상기 힐버트 커브의 특성을 분석하는 단계는,
    상기 힐버트 커브 그리드 정보 테이블에서 힐버트 커브 방향과 힐버트 커브 차수를 분석하는 클로킹 영역 생성 방법.
  26. 제14항에 있어서,
    상기 이웃 셀의 힐버트 커브 값을 계산하는 단계는,
    현재 셀의 좌표를 이용하여 이웃 셀의 좌표를 계산하고, 상기 이웃 셀의 좌표를 비트로 표현하고, 상기 힐버트 커브 차수만큼 이동하여 비트 연산을 수행하여 1차 배열에서의 인덱스 값을 계산하는 클로킹 영역 생성 방법.
  27. 제14항 내지 제26항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020080055948A 2008-06-13 2008-06-13 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법 KR101001844B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080055948A KR101001844B1 (ko) 2008-06-13 2008-06-13 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080055948A KR101001844B1 (ko) 2008-06-13 2008-06-13 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20090129837A KR20090129837A (ko) 2009-12-17
KR101001844B1 true KR101001844B1 (ko) 2010-12-17

Family

ID=41689718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080055948A KR101001844B1 (ko) 2008-06-13 2008-06-13 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101001844B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101230800B1 (ko) * 2011-08-11 2013-02-06 포항공과대학교 산학협력단 사용자 위치 정보 보호 방법 및 이를 위한 시스템
CN102970652B (zh) * 2012-10-16 2015-10-07 北京航空航天大学 一种面向路网的查询感知的位置隐私保护系统
CN105578412B (zh) * 2015-12-21 2018-11-27 东北大学 一种基于位置服务的位置匿名方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100233365B1 (ko) 1996-12-13 1999-12-01 윤덕용 Hg-트리 색인 구조 및 그의 삽입, 삭제, 검색 방법
KR100823643B1 (ko) 2007-03-22 2008-04-21 고려대학교 산학협력단 무선 환경에서 비트맵 기반의 공간 색인 방법, 그 기록매체 및 무선 환경에서 비트맵 기반의 공간 색인 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100233365B1 (ko) 1996-12-13 1999-12-01 윤덕용 Hg-트리 색인 구조 및 그의 삽입, 삭제, 검색 방법
KR100823643B1 (ko) 2007-03-22 2008-04-21 고려대학교 산학협력단 무선 환경에서 비트맵 기반의 공간 색인 방법, 그 기록매체 및 무선 환경에서 비트맵 기반의 공간 색인 시스템

Also Published As

Publication number Publication date
KR20090129837A (ko) 2009-12-17

Similar Documents

Publication Publication Date Title
US9501577B2 (en) Recommending points of interests in a region
JP5925338B2 (ja) 無線ネットワークアクセスポイントの発見
CA2854874C (en) Method and server for searching for nearby user in social networking services
Yiu et al. Design and analysis of a ranking approach to private location-based services
US20130054647A1 (en) Information processing apparatus, information processing method, and program
Cao et al. KORS: Keyword-aware optimal route search system
CN105026889A (zh) 用于室内导航的金字塔测绘数据结构
US20110202846A1 (en) Estimating shortest distances in graphs
CN108304585B (zh) 一种基于空间关键字搜索的结果数据选取方法及相关装置
KR101001844B1 (ko) 위치 기반 서비스에서 사용자의 위치 정보를 클로킹하기위한 클로킹 영역 생성 시스템 및 방법
JP2011141682A (ja) 地域情報検索サーバ及び地域情報検索方法
JP2012234415A (ja) インデックス管理方法、インデックス管理プログラムおよびインデックス管理装置
Eltarjaman et al. Private retrieval of POI details in top-K queries
Tamilmani et al. Modelling and analysis of semantically enriched simplified trajectories using graph databases
Zhang et al. LPPS-AGC: Location privacy protection strategy based on alt-geohash coding in location-based services
Wang et al. Differential privacy location protection scheme based on Hilbert curve
Lu Fast methods for designing circulant network topology with high connectivity and survivability
CN113361716B (zh) 威胁推理规则构建方法及装置
US20150127302A1 (en) Method and apparatus for optimized routing
Michel et al. Gander: Personalizing search of the here and now
Dewri et al. Beyond the thin client model for location privacy
CN113254724B (zh) 网络空间发现方法、装置、电子设备及存储介质
JP5776403B2 (ja) 領域検索方法、領域検索プログラムおよび情報処理装置
Ku et al. Geo-Store: A framework for supporting semantics-enabled location-based services
US20130262512A1 (en) Data management apparatus and data management method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131202

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141210

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151207

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee