KR100953869B1 - 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법 - Google Patents
데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법 Download PDFInfo
- Publication number
- KR100953869B1 KR100953869B1 KR1020080076211A KR20080076211A KR100953869B1 KR 100953869 B1 KR100953869 B1 KR 100953869B1 KR 1020080076211 A KR1020080076211 A KR 1020080076211A KR 20080076211 A KR20080076211 A KR 20080076211A KR 100953869 B1 KR100953869 B1 KR 100953869B1
- Authority
- KR
- South Korea
- Prior art keywords
- bucket
- data
- tree
- list
- search word
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및 방법이 개시된다. 데이터 버킷 생성부는 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성한다. 인덱스 리스트 생성부는 복수 개의 문서로부터 추출한 검색어 및 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성한다. 리스트 버킷 생성부는 검색어, 검색어가 포함된 문서의 주소 정보 및 검색어가 포함된 문서가 속하는 데이터 버킷의 주소 정보를 포함하는 리스트 버킷을 생성한다. 인덱스 트리 생성부는 검색어 및 검색어가 포함된 리스트 버킷의 주소 정보로 이루어진 인덱스 트리를 생성한다. 트리 버킷 생성부는 인덱스 트리의 노드에 대응되는 검색어, 검색어가 포함된 리스트 버킷의 주소 정보 및 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성한다. 다중화부는 트리 버킷, 리스트 버킷 및 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성한다. 시간 정보 산출부는 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 시간 정보로 변환한다. 본 발명에 따르면, 사용자 단말측에서 무선 전송 채널을 통해 대기시간 및 에너지 소비 면에서 효율적으로 데이터를 검색할 수 있다.
리스트 버킷, 트리 버킷, 복제
Description
본 발명은 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및 방법에 관한 것으로, 보다 상세하게는, 무선 전송 채널을 통해 전송할 데이터를 생성하는 장치 및 방법, 그리고 무선 전송 채널을 통해 수신되는 데이터 스트림으로부터 데이터를 검색하는 장치 및 방법에 관한 것이다.
무선 기술이 널리 보급됨에 따라 무선 정보 시스템은 현재 다양한 분야에서 실현되고 있다. 이러한 무선 정보 시스템에서는 PDA, 스마트 워치(smart watch) 또는 이동전화와 같은 소형의 포켓용 무선 통신 및 정보처리 장치에 설치된 이동 클라이언트(mobile clients)에 의해 시간과 장소에 관계없이 정보에 접근하는 것이 가능하게 된다.
무선 환경에서 서버는 무한한 수의 이동 클라이언트에 정보를 전송할 수 있고(확장성), 모든 클라이언트는 공공 방송 채널을 통하여 정보를 전송받기 때문에 동일한 채널을 공유하며(대역폭 효율), 서버에 요청을 전송하지 않고도 채널을 통해 원하는 정보를 검색할 수 있기 때문에(에너지 효율) 무선 브로드캐스 팅(wireless broadcasting)은 정보 전송에 사용되는 이로운 수단이다.
이러한 무선 데이터 전송에 있어서 인덱스 방법(indexing approach)은 에너지 효율과 대기 시간(latency)의 이유로 인하여 광범위하게 논의되어 왔다. 인덱스 정보는 데이터와 함께 전송되며, 보통 <데이터 id, 주소>의 집합으로 표현되는 디렉토리의 한 종류이다. 이러한 인덱스 정보에 의해 이동 클라이언트는 검색 대상 데이터의 주소에 대한 정보를 얻을 수 있다. 여기서, 주소는 검색 대상 데이터가 무선 채널에 도착할 때의 시간을 나타낸다. 이러한 방법에 의해 클라이언트는 전송되는 전체 무선 데이터 스트림을 검색하지 않고 검색 대상 데이터에 접근할 수 있다.
전문검색(full-text search)은 다양한 정보 시스템에서 가장 대중적으로 사용되는 쿼리(query) 유형의 하나이지만, 전문검색을 위하여 제안된 기존의 방법들은 모두 디스크에 저장된 데이터의 검색을 위한 것이었다. 디스크에 저장된 데이터에 대한 접근 방법의 효율성과 비용은 디스크에 접근하는 횟수에 의해 결정되며, 방송을 통해 전송되는 데이터에 대한 접근 방법의 효율성과 비용은 무선 스트림 상에 위치한 검색 대상 데이터의 검색을 위한 대기 시간과 에너지 소비에 의해 결정된다.
이와 같이 디스크에 저장된 데이터와 방송을 통해 전송되는 데이터에 대한 검색 방법은 데이터에 대한 접근 과정과 성능을 나타내는 척도가 다르기 때문에 전혀 다르게 취급된다. 따라서 디스크 저장 데이터의 검색 방법은 무선 전송 데이터의 검색에 적용할 수 없으며, 기존에 제안되었던 무선 전송 데이터에 대한 인덱스 검색 방법들은 전문검색과는 관련이 없는 방법들이었다. 이에 따라 무선 데이터 전송 시스템에서 사용될 수 있으며 대기 시간과 에너지 소비 면에서 효율적인 인덱스 검색 방법의 필요성이 제기되고 있다.
본 발명이 이루고자 하는 기술적 과제는 사용자 단말측에서 무선 전송 채널을 통해 대기시간 및 에너지 소비 면에서 효율적으로 데이터를 검색할 수 있도록 하기 위한 데이터를 생성할 수 있는 장치 및 그 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 사용자 단말측에서 무선 전송 채널을 통해 대기시간 및 에너지 소비 면에서 효율적으로 데이터를 검색할 수 있도록 하기 위한 데이터를 생성할 수 있는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는 무선 전송 채널을 통하여 수신되는 데이터 스트림을 검색하는 경우에 있어서 무선 전송 채널에 접속하는 시간과 데이터를 다운로드하는 시간을 감소시켜 대기시간 및 에너지 소비 면에서 효율적인 데이터 검색 장치 및 그 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 또 다른 기술적 과제는 무선 전송 채널을 통하여 수신되는 데이터 스트림을 검색하는 경우에 있어서 무선 전송 채널에 접속하는 시간과 데이터를 다운로드하는 시간을 감소시켜 대기시간 및 에너지 소비 면에서 효율적인 데이터 검색 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 생성 장치는, 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성부; 상기 복수 개의 문서로부터 추출한 검색어 및 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성하는 인덱스 리스트 생성부; 상기 검색어, 상기 검색어가 포함된 문서의 주소 정보 및 상기 검색어가 포함된 문서가 속하는 데이터 버킷의 주소 정보를 포함하는 리스트 버킷을 생성하는 리스트 버킷 생성부; 상기 검색어 및 상기 검색어가 포함된 리스트 버킷의 주소 정보로 이루어진 인덱스 트리를 생성하되, 상기 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 상기 검색어가 순차적으로 정렬되는 인덱스 트리 생성부; 상기 인덱스 트리의 노드에 대응되는 검색어, 상기 검색어가 포함된 리스트 버킷의 주소 정보 및 상기 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성하는 트리 버킷 생성부; 상기 트리 버킷, 상기 리스트 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화부; 및 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 데이터량 및 상기 다중화부에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 시간 정보로 변환하는 시간 정보 산출부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 생성 방법은, 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성 단계; 상기 복수 개의 문서로부터 추출한 검색어 및 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성하는 인덱스 리스트 생성 단계; 상기 검색어, 상기 검색어가 포함된 문서의 주소 정보 및 상기 검색어 가 포함된 문서가 속하는 데이터 버킷의 주소 정보를 포함하는 리스트 버킷을 생성하는 리스트 버킷 생성 단계; 상기 검색어 및 상기 검색어가 포함된 리스트 버킷의 주소 정보로 이루어진 인덱스 트리를 생성하되, 상기 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 상기 검색어가 순차적으로 정렬되는 인덱스 트리 생성 단계; 상기 인덱스 트리의 노드에 대응되는 검색어, 상기 검색어가 포함된 리스트 버킷의 주소 정보 및 상기 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성하는 트리 버킷 생성 단계; 상기 트리 버킷, 상기 리스트 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화 단계; 및 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 데이터량 및 상기 다중화 단계에서 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 시간 정보로 변환하는 시간 정보 산출 단계;를 갖는다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 검색 장치는, 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷, 상기 복수 개의 문서로부터 추출한 검색어 및 상기 데이터 버킷 내에서 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트로부터 생성된 리스트 버킷, 그리고 상기 검색어 및 상기 검색어가 속하는 리스트 버킷의 주소 정보로 이루어진 인덱스 트리의 각 노드로부터 생성된 트리 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신부; 상기 데이터 스트림으로부터 추출한 트리 버킷에 포함된 상기 리스트 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 리스트 버킷을 추출하고, 상기 리스트 버킷에 포함된 상기 데이터 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 데이터 버킷을 추출하는 버킷 추출부; 상기 데이터 버킷에 포함된 상기 문서의 주소 정보에 의해 파악되는 수신 시점에 상기 데이터 버킷으로부터 상기 검색어를 포함하는 문서를 추출하는 데이터 추출부; 및 상기 데이터 버킷으로부터 추출한 문서에 포함된 상기 검색어에 별도의 표시를 하여 상기 문서를 출력하는 검색부;를 구비한다.
상기의 또 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 데이터 검색 방법은, 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷, 상기 복수 개의 문서로부터 추출한 검색어 및 상기 데이터 버킷 내에서 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트로부터 생성된 리스트 버킷, 그리고 상기 검색어 및 상기 검색어가 속하는 리스트 버킷의 주소 정보로 이루어진 인덱스 트리의 각 노드로부터 생성된 트리 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신 단계; 상기 데이터 스트림으로부터 추출한 트리 버킷에 포함된 상기 리스트 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 리스트 버킷을 추출하고, 상기 리스트 버킷에 포함된 상기 데이터 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 데이터 버킷을 추출하는 버킷 추출 단계; 상기 데이터 버킷에 포함된 상기 문서의 주소 정보에 의해 파악되는 수신 시점에 상기 데이터 버킷으로부터 상기 검색어를 포함하는 문서를 추출하는 데이터 추출 단계; 및 상기 데이터 버킷으로부터 추출한 문서에 포함된 상기 검색어에 별도의 표시를 하여 상기 문서를 출력하는 검색 단계;를 갖는다.
본 발명에 따른 데이터 생성 장치 및 방법에 의하면, 부호화되어 무선 전송 채널을 통하여 사용자 단말로 전송될 데이터를 생성하는 과정에서 검색어를 포함하는 문서의 인덱스 리스트 및 리스트 버킷을 생성하고, 검색어를 포함하는 리스트 버킷으로 이루어진 인덱스 트리 및 트리 버킷을 생성함으로써, 사용자 단말측에서 모든 데이터를 다운로드하지 않아도 원하는 검색어를 포함하는 문서를 빠르게 검색할 수 있다. 또한 부호화될 데이터 내에 트리 버킷 및 리스트 버킷을 복제하여 여러 번 삽입함으로써, 다음 단위 데이터의 수신 시점까지 대기하지 않고 트리 버킷 또는 리스트 버킷을 빠르게 다운로드할 수 있다. 또한 본 발명에 따른 데이터 검색 장치 및 방법에 의하면, 리스트 버킷 및 트리 버킷을 포함하는 데이터 스트림으로부터 질의어와 일치하는 검색어를 포함하는 문서를 추출할 때 트리 버킷, 리스트 버킷 및 데이터 버킷 순으로 추출함으로써 활동 모드로 동작하는 시간을 줄이고, 에너지 소비량을 감소시킬 수 있다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 데이터 생성 장치에 대한 바람직한 일 실시예의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명에 따른 데이터 전송 장치는, 데이터 버킷 생성 부(110), 인덱스 리스트 생성부(120), 리스트 버킷 생성부(130), 인덱스 트리 생성부(140), 트리 버킷 생성부(150), 다중화부(160) 및 시간 정보 산출부(170)를 구비한다.
데이터 버킷 생성부(110)는 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성한다.
전송 채널을 통하여 전송되는 콘텐츠 데이터는 복수의 문서(document)로 이루어져 있고, 이러한 문서들은 디스크에 저장된 데이터를 표현하는 단위인 블록(block)에 대응하는 버킷(bucket) 단위로 데이터 스트림을 통해 사용자 단말로 전송된다. 따라서 부호화되어 전송될 데이터의 생성 역시 버킷 단위로 이루어져야 한다. 버킷은 헤더(header)와 바디(body) 두 부분으로 구성되며, 바디에 전송하고자 하는 데이터, 즉 문서가 포함되어 있는 버킷을 데이터 버킷 생성부(110)에 의해 생성되는 데이터 버킷이라 한다. 한편, 리스트 버킷 생성부(130)에 의해 생성되는 리스트 버킷은 바디에 인덱스 리스트 생성부(120)에 의해 생성되는 인덱스 리스트의 정보를 포함하며, 트리 버킷 생성부(150)에 의해 생성되는 트리 버킷은 바디에 인덱스 트리 생성부(140)에 의해 생성되는 인덱스 트리 정보를 포함한다. 리스트 버킷과 트리 버킷에 대하여는 뒤에 상세히 설명한다. 버킷의 헤더에는 버킷의 바디에 저장되는 데이터에 관한 정보 및 무선통신 시스템에 특수한 제어 정보가 포함되어 있다.
도 2는 데이터 버킷 생성부(110)에 의해 생성되는 데이터 버킷의 구성을 도시한 도면이다. 도 2를 참조하면, 데이터 버킷(200)은 헤더(210)와 바디(220)로 이 루어져 있으며, 데이터 버킷(200)의 바디(220)에는 복수 개의 문서가 순차적으로 정렬되어 있다. 이때 Doci는 데이터 버킷(200)에 포함되는 복수 개의 문서 중에서 i번째에 위치하는 문서를 나타낸다. 데이터 버킷(200)의 크기가 제한되어 있으므로 저장될 문서의 개수가 많아서 하나의 데이터 버킷(200)에 모두 저장될 수 없을 때에는 복수 개의 데이터 버킷(200)에 나누어져 저장된다.
또한 데이터 버킷 생성부(110)는 위 방법에 의해 생성된 데이터 버킷(200)의 주소 정보 및 데이터 버킷(200) 내에서 각각의 문서의 주소 정보를 시간 정보 산출부(170)에 의해 산출된 시간 정보로 변경하여 출력한다. 시간 정보 산출부(170)의 상세한 동작은 뒤에 설명한다. 여기서 주소 정보는 위치 정보를 말하는 것으로, 데이터 버킷(200)의 주소 정보는 생성된 데이터 버킷(200)을 순차적으로 정렬하였을 때 정렬된 데이터 버킷(200)의 시작 위치부터 각각의 데이터 버킷(200)의 위치까지 몇 비트인지를 나타내는 데이터량, 또는 순차적으로 정렬된 데이터 버킷(200)의 시작 위치부터 몇 번째의 데이터 버킷(200)인지를 나타내는 정보이다. 데이터 버킷 생성부(110)는 각각의 데이터 버킷(200)의 데이터량에 관한 정보를 가지고 있으므로, 데이터 버킷(200)의 주소 정보를 나타내는 앞의 두 가지 경우는 결국 동일한 의미로 사용될 수 있다. 그리고 문서의 주소 정보는 문서가 속하는 데이터 버킷(200)의 시작 위치부터 문서의 위치까지 몇 비트인지를 나타내는 데이터량으로 표현될 수 있다.
이러한 주소 정보는 시간 정보 산출부(170)에 입력되어 시간 정보로 변환되 며, 이때 시간 정보는 다중화부(160)에 의하여 생성된 데이터를 무선 전송 채널 상에서 전송할 때의 전송 시점, 즉 전송된 데이터를 사용자 단말에서 수신할 때의 수신 시점을 나타낸다. 시간 정보로 변경되어 출력된 데이터 버킷의 주소 정보 및 문서의 주소 정보는 사용자 단말에서 수신된 데이터로부터 검색어가 포함된 문서를 추출할 때 사용된다.
인덱스 리스트 생성부(120)는 복수 개의 문서로부터 추출한 검색어 및 데이터 버킷 내에서 이러한 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성한다.
전문검색에 사용되는 검색어는 복수 개의 문서에 동시에 포함될 수 있으며, 검색어가 두 개 이상인 경우에는 한 개의 문서가 복수 개의 검색어를 포함할 수 있다. 인덱스 리스트는 이러한 검색어를 각각의 문서로부터 추출함으로써 생성되는데, 전치사, 조사, 관사 및 접속사 등과 같이 검색어로서 의미가 없는 단어인 불용어(stop words)는 별도의 설정에 의해 검색어 추출 과정에서 제외시킬 수 있다.
특정 검색어를 포함하는 문서를 검색하는 방법에 있어서, 디스크에 저장된 데이터를 검색하는 방법의 효율성과 비용은 검색을 위해 디스크에 접근하는 횟수에 의해 결정되지만, 무선 전송 채널 상에서 데이터를 검색하는 방법의 경우는 데이터 검색에 소요되는 대기 시간과 에너지에 의해 검색 방법의 효율성과 비용이 결정된다. 또한 대기 시간 및 에너지 소비에 대한 성능 측정값은 각각 데이터가 전송되는 무선 전송 채널에 대한 접속 시간(access time)과 동조 시간(tuning time)으로 표현된다. 접속 시간은 사용자 단말에서 무선 전송 채널에 접속하여 검색하고자 하는 목표 정보를 다운로드한 후 접속을 종료할 때까지 걸리는 시간을 말한다. 동조 시간은 사용자 단말이 실제 에너지를 소비하여 목표 정보를 다운로드하는 데 걸리는 시간이며, 이때 사용자 단말은 활동 모드(active mode)로 동작하게 된다.
도 3은 각각 콘텐츠 데이터를 구성하는 문서로만 데이터 스트림을 구성하여 전송되는 경우와 인덱스 리스트가 문서들과 함께 전송되는 경우에 접속 시간과 동조 시간을 비교하여 도시한 도면이다.
도 3을 참조하면, D0에서 Dk까지 k+1개의 문서가 데이터 스트림 상에서 순차적으로 전송될 때, 사용자 단말에서 검색하고자 하는 문서는 D4의 위치에서 전송된다. 인덱스 리스트가 없이 문서들만 데이터 스트림 상에서 전송될 때에는 사용자 단말에서 D4의 전송 시점을 알 수 없기 때문에 무선 전송 채널에 접속한 시점부터 D0를 다운로드하기 시작하여 D4가 다운로드될 때까지 순차적으로 모든 문서를 다운로드하여야 한다. 따라서 인덱스 리스트가 없는 경우에 사용자 단말은 무선 전송 채널에 접속하고 있는 동안 계속 문서를 다운로드하는 활동 모드로 동작하므로 접속 시간과 동조 시간이 동일하게 나타난다.
인덱스 리스트가 문서들과 함께 데이터 스트림 상에서 전송되는 경우에는 인덱스 리스트는 문서들의 앞에 위치하여 전송된다. 따라서 사용자 단말에서는 무선 전송 채널에 접속 후 활동 모드로 상태를 전환하여 인덱스 리스트를 먼저 다운로드하고, 검색어 및 검색어가 포함된 문서의 데이터 스트림 상에서의 위치, 즉 전송 시점에 대한 정보를 얻을 수 있다. 검색하고자 하는 문서 D4의 전송 시점을 알고 있으므로 사용자 단말은 인덱스 리스트를 다운로드한 후에는 모든 문서를 순차적으로 다운로드할 필요가 없게 되어 휴지 모드(doze mode)로 상태를 전환한 후 D4의 전송 시점까지 대기하게 된다. 검색하고자 하는 문서의 다운로드가 완료되지 않았기 때문에 사용자 단말은 여전히 무선 전송 채널에 접속하고 있는 상태이며, 따라서 휴지 모드로 동작하는 시간도 접속 시간에 포함된다. D0부터 문서가 순차적으로 전송되어 D4의 전송 시점이 되면, 사용자 단말은 다시 상태를 활동 모드로 전환하여 전송되는 D4를 다운로드한다. D4의 다운로드가 완료되면 동조 시간과 접속 시간이 동시에 종료된다.
이와 같이 인덱스 리스트가 함께 전송되는 경우의 문서 검색 방법에 있어서 접속 시간은 인덱스 리스트의 다운로드 개시 시점부터 검색하고자 하는 문서인 D4의 다운로드가 완료되는 시점까지로, 인덱스 리스트가 없을 때의 경우에 비하여 인덱스 리스트의 다운로드 시간만큼 증가하였다. 그러나 동조 시간은 인덱스 리스트와 D4를 다운로드하는데 걸리는 시간이므로 인덱스 리스트가 없는 경우에 비하여 현저하게 감소하였다. 따라서 본 발명과 같이 무선 전송 채널을 통해 전송될 데이터를 생성할 때 인덱스 리스트가 있는 경우가 에너지 소비 면에서 효율적임을 알 수 있다.
도 4는 인덱스 리스트 생성부(120)에 의해 생성되는 인덱스 리스트의 구성에 대한 일 예를 도시한 도면이다. 도 4를 참조하면, 인덱스 리스트는 복수 개의 문서로부터 추출한 검색어(410)의 리스트 및 검색어가 속하는 문서(420)의 리스트로 이루어진다. 검색어(410)가 복수 개인 경우에는 각각의 검색어에 대응하는 문서(420)의 리스트가 검색어의 개수와 동일하게 생성된다. 도 4에 도시된 바와 같이, 검색어(410)를 포함하는 문서(420)는 복수 개가 될 수 있으며, 여러 개의 검색어(410)가 동일한 문서(420)에 포함될 수 있다. 여기서 Termi는 인덱스 리스트 내에 복수 개의 검색어(410)가 특정한 기준, 예를 들면 알파벳 순서에 의해 순차적으로 정렬되었을 때 i번째에 위치하는 검색어(410)를 나타낸다.
리스트 버킷 생성부(130)는 검색어(410), 검색어(410)를 포함하고 있는 문서(420)의 데이터 버킷(200) 내에서의 주소 정보 및 검색어(410)를 포함하고 있는 문서(420)가 속하는 데이터 버킷(200)의 주소 정보를 포함하는 리스트 버킷을 생성한다.
도 5는 리스트 버킷 생성부에 의해 생성되는 리스트 버킷의 구성을 도시한 도면이다. 도 5를 참조하면, 리스트 버킷(500)은 헤더(510)와 바디(520)로 이루어져 있으며, 리스트 버킷(500)의 바디(520)에는 인덱스 리스트에 속하는 검색어(410) 및 검색어(410)를 포함하는 문서(420)를 가리키는 포인터(525)의 리스트가 저장된다. 포인터(525)의 구성 요소 중에서 DATA_BUCKET_ADDR는 검색어(410)를 포함하는 문서(420)가 속하는 데이터 버킷(200)의 주소 정보를 시간 정보 산출부(170)에 의해 산출된 시간 정보로 변경한 것, 그리고 OFFSET은 데이터 버킷(200) 내에서 문서(420)의 주소 정보, 즉 문서(420)가 속하는 데이터 버킷(200)의 시작 위치부터 검색어(410)를 포함하는 문서(420)의 위치까지의 데이터량을 시간 정보 산출부(170)에 의해 시간 정보로 변경한 것을 나타낸다.
리스트 버킷(500)은 인덱스 리스트에 포함되는 각각의 검색어(410)에 대해 생성되며, 검색어(410)를 포함하는 문서(420)를 가리키는 포인터(525)의 개수가 많아서 제한된 크기를 가지는 리스트 버킷(500) 하나에 모두 저장될 수 없는 경우에는 하나의 검색어(410)에 대해 복수 개의 리스트 버킷(500)이 생성될 수 있다.
인덱스 트리 생성부(140)는 검색어(410) 및 검색어(410)가 속하는 리스트 버킷(500)의 주소 정보로 이루어진 인덱스 트리를 생성한다. 이러한 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 검색어(410)가 일정한 기준, 예를 들면 알파벳 순서에 의해 순차적으로 정렬된다.
동일한 검색어(410)가 동시에 여러 개의 문서(420)에 포함될 수 있기 때문에 검색어(410) 및 문서(420)의 주소 정보로 이루어진 리스트 버킷(500)은 무선 전송 채널을 통하여 전송되는 데이터 스트림 상에서 많은 부분을 차지할 수 있다. 또한 원하는 검색어(410)를 포함하는 문서(420)를 검색하기 위해 사용자 단말에서는 전송되는 리스트 버킷(500)을 순차적으로 다운로드하여 검색어(410)가 포함되는 문서(420)가 속하는 데이터 버킷(200)의 주소를 확인하여야 한다. 이렇게 사용자 단말에서 원하는 데이터 버킷(200)의 주소를 찾기 위해 다운로드하여야 하는 리스트 버킷(500)의 평균 개수는 리스트 버킷 생성부(130)에 의해 생성된 리스트 버킷(500)의 총 개수의 1/2가 된다. 다운로드되는 리스트 버킷(500)의 개수는 데이터 검색에서의 동조 시간에 영향을 미치므로, 동조 시간을 감소시키기 위한 방안의 필요성이 제기된다.
동조 시간을 줄이는 방안의 하나로 검색어(410)가 계층적 구조로 정렬된 트리 구조를 사용할 수 있고, 데이터 검색 시스템에서 주로 사용되는 트리는 B-트리이다. 이러한 트리 구조를 사용하게 될 경우에 효율적으로 데이터 검색에서의 동조 시간을 감소시키려면 트리의 높이를 줄여야 하며, 트리의 높이를 줄이기 위해서는 트리의 각 노드에 대한 하위 노드의 수를 증가시켜야 한다. 즉, 하나의 노드에 들어갈 수 있는 검색어(410)의 수를 증가시키면 동조 시간이 줄어들게 된다.
B-트리는 각 노드에 검색어(410)에 대응하는 리스트 버킷(500)의 정보를 각각의 검색어(410)와 함께 포함하고 있다. 이와 달리 B+-트리는 트리의 내부 노드에는 검색어(410)에 관한 정보만 포함하고 있으며, 리프 노드에 모든 검색어(410) 및 각각의 검색어(410)에 대응하는 리스트 버킷(500)의 정보를 포함하고 있다. 따라서 B+-트리는 데이터의 삽입 및 삭제가 B-트리에 비하여 용이한 반면, 원하는 데이터를 찾기 위해 최상위 노드부터 출발하여 리프 노드까지 순차적으로 탐색하여야 한다는 단점을 가진다.
이하에서는 B-트리 방식으로 생성된 인덱스 트리와 B+-트리 방식으로 생성된 인덱스 트리에 관해 각각 살펴보고 그 차이점 및 장·단점을 비교한다.
도 6은 인덱스 트리 생성부(140)에 의해 B-트리 방식으로 생성된 인덱스 트리의 일 예를 도시한 도면이다. 도 6을 참조하면, B-트리 방식의 인덱스 트리는 각 노드에 Termi로 표시되는 한 개 이상의 검색어(410) 및 각각의 검색어(410)에 대응하는 리스트 버킷(500)의 주소 정보를 포함한다. 여기서, Li는 Termi에 대응하는 리스트 버킷(500)의 주소 정보를 나타낸다.
이러한 인덱스 트리에서 원하는 검색어(410)가 속하는 리스트 버킷(500)을 찾기 위해서는 인덱스 트리를 구성하는 각 노드를 순회하여 원하는 검색어(410)를 포함하고 있는 노드를 찾아야 한다. 이때 각 노드의 순회 방식은 사용자가 임의로 선택하여 적용할 수 있으나, 전위(pre-order) 순회 방식에 따라 최상위 노드에서 시작하여 차례로 각 노드를 순회하는 것이 바람직하다. 각 노드에는 검색어(410)와 함께 검색어(410)에 대응하는 리스트 버킷(500)의 주소 정보가 포함되어 있으므로 원하는 검색어(410)를 포함하는 노드가 발견되면 즉시 대응하는 리스트 버킷(500)의 주소 정보를 알 수 있다.
도 7은 인덱스 트리 생성부(140)에 의해 B+-트리 방식으로 생성된 인덱스 트리의 일 예를 도시한 도면이다. 도 7을 참조하면, B+-트리 방식의 인덱스 트리는 모든 노드에 동일하게 검색어(410) 및 대응하는 리스트 버킷(500)의 주소 정보를 포함하고 있는 B-트리 방식의 인덱스 트리와는 달리 내부 노드와 리프 노드에 서로 상이한 정보를 포함하고 있다. 즉, 최상위 노드를 포함하는 내부 노드에는 검색어(410)에 관한 정보만 포함되어 있고, 리프 노드에 모든 검색어(410) 및 각각의 검색어(410)에 대응하는 리스트 버킷(500)의 주소 정보가 포함되어 있다. 또한 각각의 리프 노드가 서로 연결되어 있으므로 일단 최상위 노드에서 출발하여 리프 노 드까지 순회한 다음에는 다시 상위 노드로 올라갈 필요 없이 리프 노드를 순차적으로 순회하여 원하는 검색어(410)를 찾을 수 있다.
B+-트리는 리프 노드가 모든 정보를 포함하고 있으며, 정보의 삽입, 삭제 및 검색이 모두 리프 노드에서 이루어지므로 정보의 검색을 위해 모든 노드를 순회하여야 하는 B-트리에 비해 유리한 면을 가진다. 그러나 본 발명에 따른 데이터 생성 장치의 인덱스 트리 생성부(140)에 의해 생성되는 인덱스 트리의 경우, 일단 인덱스 트리가 생성되면 각 노드에 새로운 정보를 삽입하거나 이미 포함되어 있는 정보를 삭제하게 되는 경우가 발생하지 않는다. 또한 B-트리 방식에 의해 생성된 인덱스 트리를 사용하면 사용자 단말측에서 데이터를 검색할 때 리프 노드까지 내려가지 않더라도 중간에 원하는 검색어(410)를 발견하여 즉시 리스트 버킷(500)의 주소 정보를 알 수 있는 경우도 있으므로 B-트리 방식에 의한 인덱스 트리가 더 유리할 수도 있다. 따라서 인덱스 트리 생성부(140)에서는 인덱스 트리를 생성할 때 B-트리 방식이나 B+-트리 방식 중에서 어느 쪽이든 임의로 선택할 수 있다.
트리 버킷 생성부(150)는 인덱스 트리의 노드에 대응되는 검색어(410), 검색어(410)가 포함된 리스트 버킷(500)의 주소 정보 및 각 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성한다.
도 8은 트리 버킷 생성부(150)에 의해 생성되는 트리 버킷의 구성을 도시한 도면이다. 도 8을 참조하면, 트리 버킷(800)은 데이터 버킷(200) 및 리스트 버킷(500)과 마찬가지로 헤더(810)와 바디(820)로 이루어져 있으며, 바디(820)에는 인덱스 트리의 노드에 대응되는 검색어(Termi, 410), 검색어(410)가 포함된 리스트 버킷(500)의 주소 정보(PTR_for_Termi, 824) 및 각 노드의 하위에 위치하는 자식 노드의 주소 정보(PTRi, 822)가 포함된다. 다만, 자식 노드의 주소 정보(822)는 인덱스 트리의 리프 노드로부터 생성된 트리 버킷(800)에는 포함되지 않는다.
또한 트리 버킷(800)의 헤더에는 트리 버킷(800)이 생성된 인덱스 트리의 노드에 포함되는 검색어(410)들을 알파벳 순서로 정렬하였을 때 가장 앞에 위치하는 단어(start_word)와 가장 뒤에 위치하는 단어(end_word)가 포함된다. 따라서 사용자 단말측에서 문서(420)를 검색할 때 원하는 검색어(410)가 현재 트리 버킷(800)에 포함되는지 여부를 트리 버킷(800)의 헤더를 통하여 알 수 있다. 만약 원하는 검색어(410)가 트리 버킷(800)에 포함되어 있지 않다면 검색어(410)가 start_word보다 알파벳 순으로 앞쪽에 위치하는지 또는 end_word보다 뒤쪽에 위치하는지 여부를 확인하여 트리 버킷(800)에 포함된 자식 노드의 주소 정보(822)에 의해 원하는 검색어(410)가 포함된 자식 노드로부터 생성된 트리 버킷(800)을 추출할 수 있다.
원하는 검색어(410)가 포함된 트리 버킷(800)을 추출한 후에는 트리 버킷(800)에 포함된 검색어(410) 및 검색어(410)에 대응하는 리스트 버킷(500)의 주소 정보(824)를 이용하여 검색어(410)를 포함하는 리스트 버킷(500)을 추출할 수 있다. 따라서 인덱스 리스트만 이용하는 경우와 비교하여 인덱스 트리를 이용하는 경우에 사용자 단말측에서 문서(420)를 검색하는데 걸리는 시간 및 소비되는 에너지를 감소시킬 수 있다는 효과가 있다.
다중화부(160)는 트리 버킷(800), 리스트 버킷(500) 및 데이터 버킷(200)을 순차적으로 배치하여 부호화될 데이터를 생성한다.
앞에서 설명한 바와 같은 방법으로 생성된 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)은 일정한 순서에 의해 정렬되어 부호화된 후 데이터 스트림을 형성하여 무선 전송 채널로 보내지게 된다. 이때 데이터 스트림을 수신하는 사용자 단말측에서는 먼저 트리 버킷(800)을 추출하여 검색어(410)를 포함하는 리스트 버킷(500)의 주소 정보를 알아내고, 다음으로 리스트 버킷(500)을 추출하여 검색어(410)를 포함하는 데이터 버킷(200)의 주소 정보를 알아낸 다음 마지막으로 데이터 버킷(200)으로부터 검색어(410)를 포함하는 문서(420)를 추출하는 방식으로 원하는 검색어(410)를 포함하는 문서(420)를 검색한다. 따라서 부호화되어 전송될 데이터를 본 발명에 따른 데이터 생성 장치에서 생성할 때에도 사용자 단말측에서의 검색 절차를 고려하여 트리 버킷(800), 리스트 버킷(500) 및 데이터 버킷(200) 순으로 정렬된 데이터를 생성하는 것이 바람직하다.
도 9a에는 이러한 방법으로 다중화부(160)에 의해 생성된 부호화될 데이터가 도시되어 있다. 여기서 T는 트리 버킷(800), L은 리스트 버킷(500), 그리고 D는 데이터 버킷(200)을 나타낸다. 이때 생성된 트리 버킷(800), 리스트 버킷(500) 또는 데이터 버킷(200)이 복수 개인 경우에는 같은 종류의 버킷이 연속적으로 정렬된다. 버킷의 정렬 기준은 트리 버킷(800)의 경우 B-트리 방식의 인덱스 트리의 각 노드를 특정한 순회 방식, 예를 들면 전위 순회방식으로 순회하여 각 노드로부터 생성된 트리 버킷(800)을 순차적으로 정렬하도록 할 수 있다. 또한 리스트 버킷(500)의 경우에는 인덱스 리스트에 포함되는 검색어(410)를 특정한 기준, 예를 들면 알파벳 순서로 정렬하였을 때 각각의 검색어(410)로부터 생성된 리스트 버킷(500)을 그와 동일한 순서로 정렬되도록 할 수 있다. 마지막으로 데이터 버킷(200)의 경우에는 데이터 버킷(200)에 포함되는 문서(420)의 식별번호 순서대로 데이터 버킷(200)이 정렬되도록 할 수 있다. 이와 같이 모든 트리 버킷(800), 리스트 버킷(500) 및 데이터 버킷(200)이 다중화부(160)에 의해 순차적으로 정렬되어 생성된 하나의 부호화될 데이터를 단위 데이터(bcast)라 한다. 무선 전송 채널을 통해 전송되는 데이터 스트림 상에는 이러한 단위 데이터가 부호화되어 반복적으로 나타나게 된다.
앞에서 설명한 바와 같이 다중화부(160)에 의해 생성되고 부호화되어 무선 전송 채널을 통해 전송되는 데이터를 사용자 단말측에서 수신하여 원하는 검색어(410)를 포함하는 문서(420)를 검색하기 위해서는 가장 먼저 트리 버킷(800)을 추출하여야 한다. 그런데 도 9a에 도시된 바와 같이 하나의 단위 데이터에 트리 버킷(800), 리스트 버킷(500) 및 데이터 버킷(200)이 한 번씩만 포함되어 있는 경우에 트리 버킷(800)을 추출하기 위해 대기하여야 하는 최장시간은 트리 버킷(800)의 일부와 리스트 버킷(500), 그리고 데이터 버킷(200)이 전송되는 데 걸리는 시간이 된다. 따라서 이러한 대기 시간을 감소시킨 효율적인 데이터 생성 및 검색 시스템의 필요성이 제기되었다.
트리 버킷(800)의 추출을 위한 대기 시간을 감소시키기 위한 한 가지 방안은 단위 데이터 내에 트리 버킷(800)을 여러 번 삽입하는 것이다. 도 9b는 트리 버킷(800)과 리스트 버킷(500)이 복제되어 삽입된 단위 데이터의 구성을 도시한 도면 이다. 도 9b에서 α는 리스트 버킷(500)이 데이터 버킷(200)에 대하여 복제되는 횟수를 나타내는 리스트 복제 횟수, 그리고 β는 트리 버킷(800)이 각각의 리스트 버킷(500)에 대하여 복제되는 횟수를 나타내는 트리 복제 횟수이다.
트리 버킷(800)과 리스트 버킷(500)이 복제되는 경우에 다중화부(160)에 의해서 부호화될 데이터가 생성되는 과정을 살펴보면 다음과 같다. 먼저 리스트 버킷(500)이 리스트 복제 횟수만큼 복제되어 데이터 버킷(200) 사이에 삽입된다. 이로 인하여 데이터 버킷(200)은 모두 α개의 부분 데이터 버킷으로 분할되고, 단위 데이터 내에는 리스트 버킷(500)이 모두 α번 나타난다. 다음으로 각각의 리스트 버킷(500)에 대해 트리 버킷(800)이 트리 복제 횟수만큼 복제되어 각각의 부분 데이터 버킷 사이에 삽입된다. 이때 각각의 부분 데이터 버킷은 β개의 부분 데이터 버킷으로 분할되고, 각각의 리스트 버킷(500) 역시 β개의 부분 리스트 버킷으로 분할된다. 따라서 도 9b를 참조하여 단위 데이터 전체로 살펴보았을 때 트리 버킷(800)은 모두 αβ번 나타나고, 리스트 버킷(500)은 β개의 부분 리스트 버킷으로 분할되어 α번 나타난다. 또한 데이터 버킷(200)은 모두 αβ개의 부분 데이터 버킷으로 분할된다. 이와 같이 단위 데이터 앞쪽에 한 번이 아닌 단위 데이터 전체에 걸쳐 트리 버킷(800)을 여러 번 삽입함으로써, 사용자 단말측에서 데이터를 검색할 때 단위 데이터의 중간 부분으로부터 트리 버킷(800)을 추출할 수 있게 되어 대기 시간을 감소시킬 수 있다. 다만, 리스트 및 트리 복제 횟수가 지나치게 많아지면 사용자 단말측에서의 접속 시간이 증가하게 되므로 최적의 복제 횟수를 결정하는 것이 중요하다. 리스트 복제 횟수 및 트리 복제 횟수는 다음의 수학식 1 및 수학식 2에 의해 결정할 수 있다.
여기서, AvgAT(1,α(1,β))는 다중화부(160)에 의하여 생성된 후 부호화되어 전송되는 데이터 스트림을 다운로드하여 검색어(410)가 포함된 문서(420)를 추출하기까지의 시간, SizeOfIndexList는 인덱스 리스트로부터 생성된 리스트 버킷(500)의 수, DBSize는 콘텐츠 데이터로부터 생성된 데이터 버킷(200)의 수, SizeOfIndexTree는 인덱스 트리로부터 생성된 트리 버킷(800)의 수, α는 AvgAT(1,α(1,β))를 최소화시키는 값으로서 리스트 복제 횟수, 그리고 β는 트리 복제 횟수이다.
시간 정보 산출부(170)는 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)의 데이터량 및 다중화부(160)에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)의 주소 정보를 시간 정보로 변환한다.
데이터 버킷 생성부(110), 리스트 버킷 생성부(130) 및 트리 버킷 생성 부(150)에 의해 각각 생성되는 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)에는 검색어(410)가 포함된 문서(420), 검색어(410)가 포함된 문서(420)가 속하는 데이터 버킷(200), 검색어(410)가 포함된 리스트 버킷(500) 및 검색어(410)가 포함된 트리 버킷(800) 등의 주소 정보가 포함되어 있다. 이러한 주소 정보는 각 문서(420) 및 버킷들(200, 500, 800)의 데이터량을 기초로 한 위치 정보에 해당한다. 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)에 포함된 주소 정보를 위치 정보 상태 그대로 유지하여 다중화부(160)에 의해 단위 데이터를 구성하고 이를 부호화하여 전송할 경우, 사용자 단말측에서 데이터를 검색할 때 버킷들(200, 500, 800)에 포함된 주소 정보를 직접 시간 정보로 변환하여 각 버킷(200, 500, 800)의 수신 시점을 알아내야 하므로 기존에 사용되는 사용자 단말과 본 발명에 따른 데이터 생성 장치 간에 호환이 어렵다는 문제가 있다. 따라서 데이터를 전송하는 측에서 주소 정보를 미리 시간 정보로 변환하여 전송하게 되면 사용자 단말측에서는 전송되는 버킷(200, 500, 800)에 포함된 시간 정보만 추출하여 그에 따라 원하는 데이터를 다운로드할 수 있으므로 효율적이다.
시간 정보 산출부(170)는 먼저 데이터 버킷 생성부(110), 리스트 버킷 생성부(130) 및 트리 버킷 생성부(150)로부터 각각 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)의 데이터량을 입력받는다. 다음으로 리스트 복제 횟수와 트리 복제 횟수에 관한 정보가 있어야 전체 단위 데이터의 데이터량 및 각 버킷(200, 500, 800)의 위치를 파악할 수 있으므로 다중화부(160)로부터 부호화될 데이터를 구성하기 위한 리스트 복제 횟수와 트리 복제 횟수를 입력받는다. 또한 무 선 전송 채널을 통하여 전송되는 데이터 스트림은 미리 정해진 일정한 전송 속도로 전송되므로 이들 정보를 이용하여 주소 정보를 시간 정보로 변환할 수 있다.
시간 정보 산출부(170)에 의해 각 버킷(200, 500, 800)의 시간 정보와 데이터 버킷(200) 내에서 검색어(410)를 포함하는 문서(420)의 시간 정보가 산출되면, 데이터 버킷 생성부(110), 리스트 버킷 생성부(130) 및 트리 버킷 생성부(150)는 산출된 시간 정보를 다시 입력받아 버킷(200, 500, 800)에 포함된 주소 정보를 시간 정보로 변경한다. 따라서 앞에서 설명하였던 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)에 포함된 주소 정보는 모두 시간 정보로 변경되어 출력되며, 다중화부(160)에 의해 생성되는 부호화될 데이터에 위치하는 버킷들(200, 500, 800)은 모두 시간 정보를 포함하게 된다.
이와 같이 부호화될 데이터가 각 버킷(200, 500, 800)의 시간 정보를 포함하게 되어 사용자 단말측에서는 원하는 데이터가 언제 수신되는지 알 수 있기 때문에 원하는 데이터의 수신 시점에만 사용자 단말의 상태를 활동 모드로 전환하여 데이터를 다운로드하면 된다. 이에 따라 사용자 단말이 활동 모드로 동작하는 시간이 감소하여 동조 시간을 줄일 수 있고 데이터 검색에 필요한 에너지 소비량도 감소시킬 수 있다.
도 10은 본 발명에 따른 데이터 생성 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도이다.
도 10을 참조하면, 데이터 버킷 생성부(110)는 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷(200)을 생성한다(S1010). 다음으로 인덱스 리 스트 생성부(120)는 복수 개의 문서로부터 추출한 검색어(410) 및 데이터 버킷(200) 내에서 검색어가 포함된 문서(420)의 주소 정보로 이루어진 인덱스 리스트를 생성한다(S1020). 리스트 버킷 생성부(130)는 검색어(410), 검색어(410)가 포함된 문서(420)의 주소 정보 및 검색어(410)가 포함된 문서(420)가 속하는 데이터 버킷(200)의 주소 정보를 포함하는 리스트 버킷(500)을 생성한다(S1030). 다음으로 인덱스 트리 생성부(140)는 검색어(410) 및 검색어(410)가 포함된 리스트 버킷(500)의 주소 정보로 이루어진 인덱스 트리를 생성한다(S1040). 생성된 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 검색어(410)가 일정한 기준, 예를 들면 알파벳 순서에 의해 순차적으로 정렬된다. 또한 인덱스 트리의 형태는 B-트리 또는 B+-트리 등의 여러 가지 형태 중에서 사용자가 임의로 선택할 수 있다. 다음으로 트리 버킷 생성부(150)는 인덱스 트리의 노드에 대응되는 검색어(410), 검색어(410)가 포함된 리스트 버킷(500)의 주소 정보 및 각 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷(800)을 생성한다(S1050). 이때 인덱스 트리가 B-트리 방식에 의한 것일 때에는 전위 순회 방식에 의해 트리 버킷(800)을 생성하는 것이 바람직하다.
다중화부(160)는 트리 버킷(800), 리스트 버킷(500) 및 데이터 버킷(200)을 순차적으로 배치하여 부호화될 데이터를 생성한다(S1060). 부호화될 데이터를 생성할 때 리스트 복제 횟수 및 트리 복제 횟수에 의하여 버킷들(200, 500, 800)을 분할하거나 복제할 수 있으며, 이는 사용자 단말에서 데이터 검색시의 대기 시간 및 에너지 소비를 감소시킬 수 있다. 리스트 복제 횟수 및 트리 복제 횟수는 수학식 1 및 수학식 2에 의하여 결정할 수 있다. 다음으로 시간 정보 산출부(170)는 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)의 데이터량 및 다중화부(160)에서 생성되는 부호화될 데이터의 전송 속도를 기초로 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)의 주소 정보를 시간 정보로 변환한다(S1070). 데이터 버킷 생성부(110), 리스트 버킷 생성부(130) 및 트리 버킷 생성부(150)에서는 시간 정보 산출부(170)에 의해 변환된 시간 정보를 입력받아 데이터 버킷(200), 리스트 버킷(500) 및 트리 버킷(800)의 주소 정보를 시간 정보로 변경한다(S1080). 따라서 최종적으로 생성되는 부호화될 데이터에는 버킷들(200, 500, 800)의 시간 정보가 포함되어 있다.
도 11은 본 발명에 따른 데이터 검색 장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.
도 11을 참조하면, 본 발명에 따른 데이터 검색 장치는, 데이터 수신부(1110), 버킷 추출부(1120), 데이터 추출부(1130), 검색부(1140) 및 제어부(1150)를 구비한다.
데이터 수신부(1110)는 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷(200), 복수 개의 문서로부터 추출한 검색어(410) 및 데이터 버킷(200) 내에서 검색어(410)가 포함된 문서(420)의 주소 정보로 이루어진 인덱스 리스트로부터 생성된 리스트 버킷(500), 그리고 검색어(410) 및 검색어(410)가 속하는 리스트 버킷(500)의 주소 정보로 이루어진 인덱스 트리의 각 노드로부터 생성된 트리 버킷(800)을 포함하는 데이터 스트림을 전송 채널로부터 수신한다. 수신되는 데이 터 스트림은 본 발명에 따른 데이터 생성 장치에 의해 생성되고 부호화되어 무선 전송 채널을 통하여 전송되는 데이터 스트림이 될 수 있다. 데이터 스트림을 수신한 때부터 데이터 검색 장치는 무선 전송 채널에 접속하게 되므로, 이때부터 목표 데이터를 모두 다운로드할 때까지의 시간이 데이터 검색의 접속 시간(access time)이 된다.
버킷 추출부(1120)는 데이터 스트림으로부터 추출한 트리 버킷(800)에 포함된 리스트 버킷(500)의 주소 정보에 의하여 파악되는 수신 시점에 리스트 버킷(500)을 추출하고, 리스트 버킷(500)에 포함된 데이터 버킷(200)의 주소 정보에 의하여 파악되는 수신 시점에 데이터 버킷(200)을 추출한다. 이때 사용자가 원하지 않는 검색어(410)를 기초로 데이터가 검색되는 경우를 방지하기 위하여, 제어부(1150)는 사용자로부터 입력받은 질의어와 검색어(410)가 일치하는 경우에 버킷 추출부(1120)가 동작하도록 할 수 있다.
도 12a 내지 12c는 본 발명에 따른 데이터 검색 장치에 의해 사용되는 데이터 검색 알고리즘의 코드를 나타낸 도면이다. 도 12a 내지 도 12c를 참조하여 본 발명에 따른 데이터 검색 장치에서 원하는 검색어(410)가 포함된 문서(420)를 추출하는 방법을 설명한다.
먼저 버킷 추출부(1120)는 수신되는 데이터 스트림으로부터 트리 버킷(800)을 추출한다. 이때 추출된 트리 버킷(800)이 인덱스 트리의 각각의 노드를 전위 방식으로 순회하여 생성되는 복수의 트리 버킷(800)이 순차적으로 배치된 트리 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 트리 버킷 스트림의 수신 시점 까지 대기한다(3~4열). 다음 트리 버킷 스트림의 수신 시점에 관한 정보는 트리 버킷(800)의 헤더에 포함되어 있다. 데이터 스트림을 구성하는 단위 데이터 내에 트리 버킷(800)이 한 번만 포함되어 있는 경우라면 다음 단위 데이터가 수신될 때까지 대기하여야 한다. 그러나 트리 버킷(800)이 복제되어 단위 데이터 내에 여러 번 삽입되어 있는 경우라면 다음 단위 데이터의 수신 시점까지 기다릴 필요 없이 동일한 단위 데이터 내의 다음 트리 버킷 스트림의 수신 시점까지 기다리면 되므로 데이터 검색 시간이 단축된다.
추출된 트리 버킷(800)이 트리 버킷 스트림의 처음 부분에 해당하는 경우에는 트리 버킷(800)에 포함된 검색어(410)가 사용자로부터 입력된 질의어와 일치하는지 검사한다. 트리 버킷(800)의 헤더에 포함되어 있는 start_word 및 end_word 정보를 기초로 하여 검사한 결과, 질의어와 일치하는 검색어(410)가 현재 추출된 트리 버킷(800) 및 인덱스 트리의 하위 노드로부터 생성된 트리 버킷(800)에도 포함되어 있지 않으면 원하는 데이터가 데이터 스트림에 없다는 것을 의미하므로 데이터 검색을 중지한다(24~26열). 질의어와 일치하는 검색어(410)가 현재 추출된 트리 버킷(800)에는 포함되어 있지 않으나, 인덱스 트리의 하위 노드로부터 생성된 트리 버킷(800)에 포함되어 있는 경우에는 하위 노드의 주소로부터 파악되는 수신 시점에 하위 노드로부터 생성된 트리 버킷(800)을 추출한다(30~31열).
질의어와 일치하는 검색어(410)가 현재 추출된 트리 버킷(800)에 포함되어 있는 경우에는 버킷 추출부(1120)는 검색어(410)에 대응하는 리스트 버킷(500)의 주소 정보로부터 파악된 수신 시점에 리스트 버킷(500)을 추출한다(12~14열). 또는 트리 버킷(800)을 통하여 리스트 버킷(500)을 추출하지 않고 바로 데이터 스트림으로부터 리스트 버킷(500)을 추출할 수도 있다(16~20열). 이때에도 추출된 리스트 버킷(500)이 인덱스 리스트에 포함되어 순차적으로 정렬된 검색어(410)들 중 처음 부분에 해당하는 검색어(410)로부터 생성된 것이 아닌 경우에는 다음 인덱스 리스트의 수신 시점까지 대기한다. 다음 인덱스 리스트의 수신 시점에 대한 정보는 리스트 버킷(500)의 헤더로부터 얻을 수 있다.
추출된 리스트 버킷(500)에 질의어와 일치하는 검색어(410)가 포함되어 있으면 버킷 추출부(1120)는 검색어(410)에 대응하는 데이터 버킷(200)의 주소 정보에 의하여 파악되는 수신 시점에 데이터 스트림으로부터 데이터 버킷(200)을 추출한다(37~38열). 추출된 데이터 버킷(200)은 데이터 버킷(200)내에서 검색어(410)를 포함하는 문서(420)의 주소 정보를 시간 정보로 변경하여 포함하고 있다.
데이터 추출부(1130)는 데이터 버킷(200)에 포함된 문서(420)의 시작 주소에 의해 파악되는 수신 시점에 데이터 버킷(200)으로부터 검색어(410)를 포함하는 문서(420)를 추출한다. 검색어(410)를 포함하는 문서(420)가 모두 추출되면 본 발명에 따른 데이터 검색 장치도 전송 채널로부터 접속을 종료하므로 접속 시간이 끝나게 된다. 이러한 데이터 검색 과정에서 동조 시간은 실제로 데이터 스트림으로부터 버킷(200, 500, 800)을 추출하거나 데이터 버킷(200)으로부터 문서(420)를 추출하는 등 데이터 검색 장치가 활동 모드의 상태에서 동작하는 시간만을 의미한다.
검색부(1140)는 데이터 추출부(1130)에 의해 데이터 버킷(200)으로부터 추출된 문서(420)에 포함된 검색어(410)에 별도의 표시를 하여 추출된 문서(420)를 출 력한다. 이는 사용자의 편의를 위해 사용자가 입력한 질의어와 일치하는 검색어(410)를 포함하는 문서(420)를 추출하였음을 보여주기 위함이다.
도 13은 본 발명에 따른 데이터 검색 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도이다.
도 13을 참조하면, 데이터 수신부(1110)는 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷(200), 복수 개의 문서로부터 추출한 검색어(410) 및 데이터 버킷(200) 내에서 검색어(410)가 포함된 문서(420)의 주소 정보로 이루어진 인덱스 리스트로부터 생성된 리스트 버킷(500), 그리고 검색어(410) 및 검색어(410)가 속하는 리스트 버킷(500)의 주소 정보로 이루어진 인덱스 트리의 각 노드로부터 생성된 트리 버킷(800)을 포함하는 데이터 스트림을 전송 채널로부터 수신한다(S1310). 다음으로 제어부(1150)는 사용자로부터 입력받은 질의어와 검색어(410)가 일치하는지 여부를 판단하여(S1320), 질의어와 검색어(410)가 일치하는 경우에만 다음 과정으로 진행한다.
버킷 추출부(1120)는 데이터 스트림으로부터 추출한 트리 버킷(800)에 포함된 리스트 버킷(500)의 주소 정보에 의하여 파악되는 수신 시점에 리스트 버킷(500)을 추출하고, 리스트 버킷(500)에 포함된 데이터 버킷(200)의 주소 정보에 의하여 파악되는 수신 시점에 데이터 버킷(200)을 추출한다(S1330). 이때 추출된 트리 버킷(800)이 인덱스 트리의 각각의 노드를 전위 방식으로 순회하여 생성되는 복수의 트리 버킷(800)이 순차적으로 배치된 트리 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 트리 버킷 스트림의 수신 시점까지 대기한다. 또한 버킷 추출부(1120)는 데이터 스트림으로부터 리스트 버킷(500)을 직접 추출할 수도 있으며, 이때 추출된 리스트 버킷(500)이 인덱스 리스트에 포함되어 순차적으로 정렬된 검색어(410)들 중 처음 부분에 해당하는 검색어(410)로부터 생성된 것이 아닌 경우에는 다음 인덱스 리스트의 수신 시점까지 대기한다.
데이터 추출부(1130)는 데이터 버킷(200)에 포함된 문서(420)의 주소 정보에 의해 파악되는 수신 시점에 데이터 버킷(200)으로부터 검색어(410)를 포함하는 문서(420)를 추출한다(S1340). 마지막으로 검색부(1140)는 데이터 버킷(200)으로부터 추출한 문서(420)에 포함된 검색어(410)에 별도의 표시를 하여 문서(420)를 출력한다(S1350).
도 14는 본 발명에 따른 데이터 생성 장치에 의하여 부호화될 데이터를 생성할 때의 리스트 복제 횟수 α와 트리 복제 횟수 β에 따라 사용자 단말측에서 데이터를 검색할 때 걸리는 평균 접속 시간을 전송되는 버킷의 수로 나타낸 그래프이다. 위에서 설명한 바와 같이 리스트 복제 횟수와 트리 복제 횟수는 수학식 1 및 수학식 2에 의하여 결정할 수 있는데, 사용자 단말측에서 가장 효율적인 데이터 검색을 위해서는 평균 접속 시간이 최소화되도록 α와 β를 결정하여야 한다. 도 14을 참조하면, α≥1이며 그래프는 α의 값이 증가할수록 평균 접속 시간도 증가하는 형태를 보이고 있다. 따라서 평균 접속 시간을 최소화하는 α의 값은 1로 정할 수 있으며, β의 값은 수학식 2에 따라 결정할 수 있다.
표 1과 같은 환경에서 본 발명에 따른 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및 방법의 성능을 평가하기 위한 실험을 진행하였다. 이때 실험은 인덱스 리스트가 생성되지 않는 경우, 인덱스 리스트만 생성되는 경우 및 인덱스 리스트와 인덱스 트리가 모두 생성되는 경우 등으로 나누어 실시되었다.
파라미터 | 값 |
문서의 개수 | 10,000 개 |
문서의 크기 | 1,024 바이트 |
검색어의 개수 | 4,703 개 |
검색어의 크기 | 16 바이트 |
주소의 크기 | 3 바이트(버킷의 크기≥256 바이트) 2 바이트(버킷의 크기< 256 바이트) |
도 15는 인덱스 리스트가 생성되지 않는 경우, 인덱스 리스트만 생성되는 경우 및 인덱스 리스트와 인덱스 트리가 모두 생성되는 경우에 대하여 접속 시간과 동조 시간을 전송되는 버킷의 수로 나타낸 그래프이다. 도 15를 참조하면, 인덱스 리스트가 생성되지 않고 데이터 스트림이 데이터 버킷(200)으로만 구성되는 경우(1,0), 원하는 데이터의 수신 시점을 알 수 없기 때문에 접속 시간과 동조 시간이 일치한다. 인덱스 리스트가 생성되는 경우(1,1)에는 리스트 버킷 생성부(130)에 의해 생성된 리스트 버킷(500)으로부터 검색어(410)가 포함된 문서(420)가 속하는 데이터 버킷(200)의 수신 시점을 알 수 있기 때문에 데이터 스트림으로부터 데이터를 다운로드하는 시간이 감소되어 동조 시간이 현저하게 감소한다. 한편, 리스트 버킷(500)이 데이터 버킷(200)과 함께 전송되므로 전송되는 데이터의 크기가 증가하여 접속 시간은 약간 증가하게 된다. 인덱스 리스트와 인덱스 트리가 모두 생성되는 경우(1,1(1,1))에는 인덱스 트리로부터 생성된 트리 버킷(800)에 의하여 검색어(410)를 포함하는 리스트 버킷(500)의 수신 시점을 알 수 있고, 리스트 버킷(500)으로부터 검색어(410)가 포함된 문서(420)가 속하는 데이터 버킷(200)의 수신 시점을 알 수 있어서 인덱스 리스트만 생성되는 경우에 비해 동조 시간이 감소한다. 그러나 트리 버킷(800)이 전송되는 데이터에 포함됨으로써 증가하는 접속 시간은 동조 시간의 감소에 비해 무시할 수 있는 수준이다.
도 16a 및 도 16b는 각각 리스트 복제 횟수 및 트리 복제 횟수에 따른 접속 시간을 전송되는 버킷 단위로 나타낸 그래프이다. 도 16a를 참조하면, 리스트 복제 횟수, 즉 α가 5일 때 접속 시간이 최소가 되는 것을 확인할 수 있다. 리스트 복제 횟수가 5일 때의 접속 시간은 리스트 버킷(500)이 복제되지 않은 경우에 비하여 23% 감소하였다. 도 16b를 참조하면, 트리 버킷(800)이 존재하는 경우에는 리스트 복제 횟수가 1일 때, 즉 리스트 버킷(500)이 복제되지 않을 때 접속 시간이 최소가 됨을 확인할 수 있다. 또한 리스트 복제 횟수가 1일 때 트리 복제 횟수, 즉 β가 7인 경우에 접속 시간이 최소화되었다. 이때의 접속 시간은 트리 버킷(800)이 복제되지 않은 경우에 비하여 32% 감소하였다.
도 17a 및 도 17b는 각각 트리 버킷(800)이 복제되어 데이터 스트림에 포함된 경우에 트리 복제 횟수 및 버킷 사이즈에 따른 접속 시간 및 버킷 사이즈에 따른 동조 시간을 나타낸 그래프이다. 도 17a 및 도 17b를 참조하면, 버킷 사이즈가 64 바이트일 때 접속 시간과 동조 시간의 면에서 모두 우수한 성능을 보였다. 이는 버킷 사이즈가 커지게 되면 버킷을 만드는 과정에서 발생하는 내부 단편화(internal fragmentation) 현상으로 인해 공간이 낭비되기 때문이다.
도 18a 및 도 18b는 각각 트리 복제 횟수 및 선택율 값에 따른 접속 시간과 동조 시간을 버킷 단위로 나타낸 그래프이다. 선택율 값은 문서(420) 하나당 포함되는 검색어(410)의 수로 표현할 수 있다. 도 18a 및 도 18b를 참조하면, 선택율 값이 증가할수록 접속 시간과 동조 시간이 증가함을 확인할 수 있다.
도 19a 및 도 19b는 각각 데이터 생성 방법에 따른 대기 시간 및 에너지 소비량을 나타낸 그래프이다. 도 19a 및 도 19b를 참조하면, 리스트 복제 횟수가 1이고 트리 복제 횟수가 7인 경우에 대기 시간이 가장 짧고, 에너지 소비량도 최소임을 확인할 수 있다. 특히 리스트 버킷(500)과 트리 버킷(800)이 모두 없는 경우에는 다른 방법들에 비하여 에너지 소비량이 현저히 높게 나타났다.
위에서 설명한 실험 결과들을 참조하면, 본 발명에 따른 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및 방법이 종래의 방법들에 비하여 대기 시간과 에너지 소비 면에서 효율적이라는 점을 확인할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
도 1은 본 발명에 따른 데이터 생성 장치에 대한 바람직한 일 실시예의 구성을 도시한 블록도,
도 2는 데이터 버킷 생성부(110)에 의해 생성되는 데이터 버킷의 구성을 도시한 도면,
도 3은 각각 콘텐츠 데이터를 구성하는 문서로만 데이터 스트림을 구성하여 전송되는 경우와 인덱스 리스트가 문서들과 함께 전송되는 경우에 접속 시간과 동조 시간을 비교하여 도시한 도면,
도 4는 인덱스 리스트 생성부(120)에 의해 생성되는 인덱스 리스트의 구성에 대한 일 예를 도시한 도면,
도 5는 리스트 버킷 생성부에 의해 생성되는 리스트 버킷의 구성을 도시한 도면,
도 6은 인덱스 트리 생성부(140)에 의해 B-트리 방식으로 생성된 인덱스 트리의 일 예를 도시한 도면,
도 7은 인덱스 트리 생성부(140)에 의해 B+-트리 방식으로 생성된 인덱스 트리의 일 예를 도시한 도면,
도 8은 트리 버킷 생성부(150)에 의해 생성되는 트리 버킷의 구성을 도시한 도면,
도 9a 및 도 9b는 각각 다중화부(160)에 의해 생성된 부호화될 데이터 및 트리 버킷(800)과 리스트 버킷(500)이 복제되어 삽입된 단위 데이터의 구성을 도시한 도면,
도 10은 본 발명에 따른 데이터 생성 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도,
도 11은 본 발명에 따른 데이터 검색 장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 12a 내지 12c는 본 발명에 따른 데이터 검색 장치에 의해 사용되는 데이터 검색 알고리즘의 코드를 나타낸 도면,
도 13은 본 발명에 따른 데이터 검색 방법에 대한 바람직한 실시예의 수행 과정을 도시한 흐름도,
도 14는 본 발명에 따른 데이터 생성 장치에 의하여 부호화될 데이터를 생성할 때의 리스트 복제 횟수 α와 트리 복제 횟수 β에 따라 사용자 단말측에서 데이터를 검색할 때 걸리는 평균 접속 시간을 전송되는 버킷의 수로 나타낸 그래프,
도 15는 인덱스 리스트가 생성되지 않는 경우, 인덱스 리스트만 생성되는 경우 및 인덱스 리스트와 인덱스 트리가 모두 생성되는 경우에 대하여 접속 시간과 동조 시간을 전송되는 버킷의 수로 나타낸 그래프,
도 16a 및 도 16b는 각각 리스트 복제 횟수 및 트리 복제 횟수에 따른 접속 시간을 전송되는 버킷 단위로 나타낸 그래프,
도 17a 및 도 17b는 각각 트리 버킷(800)이 복제되어 데이터 스트림에 포함된 경우에 트리 복제 횟수 및 버킷 사이즈에 따른 접속 시간 및 버킷 사이즈에 따른 동조 시간을 나타낸 그래프,
도 18a 및 도 18b는 각각 트리 복제 횟수 및 선택율에 따른 접속 시간과 동조 시간을 버킷 단위로 나타낸 그래프, 그리고,
도 19a 및 도 19b는 각각 데이터 생성 방법에 따른 대기 시간 및 에너지 소비량을 나타낸 그래프이다.
Claims (20)
- 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성부;상기 복수 개의 문서로부터 추출한 검색어 및 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성하는 인덱스 리스트 생성부;상기 검색어, 상기 검색어가 포함된 문서의 주소 정보 및 상기 검색어가 포함된 문서가 속하는 데이터 버킷의 주소 정보를 포함하는 리스트 버킷을 생성하는 리스트 버킷 생성부;상기 검색어 및 상기 검색어가 포함된 리스트 버킷의 주소 정보로 이루어진 인덱스 트리를 생성하되, 상기 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 상기 검색어가 순차적으로 정렬되는 인덱스 트리 생성부;상기 인덱스 트리의 노드에 대응되는 검색어, 상기 검색어가 포함된 리스트 버킷의 주소 정보 및 상기 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성하는 트리 버킷 생성부;상기 트리 버킷, 상기 리스트 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화부; 및상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 데이터량 및 상기 다중화부에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 시간 정보로 변환하는 시간 정보 산출부;를 포함하며,상기 데이터 버킷 생성부, 상기 리스트 버킷 생성부 및 상기 트리 버킷 생성부는 각각에 대응하는 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 상기 시간 정보 산출부가 산출한 시간 정보로 변경하는 것을 특징으로 하는 데이터 생성 장치.
- 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성부;상기 복수 개의 문서로부터 추출한 검색어 및 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성하는 인덱스 리스트 생성부;상기 검색어, 상기 검색어가 포함된 문서의 주소 정보 및 상기 검색어가 포함된 문서가 속하는 데이터 버킷의 주소 정보를 포함하는 리스트 버킷을 생성하는 리스트 버킷 생성부;상기 검색어로 이루어진 인덱스 트리를 생성하되, 상기 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 상기 검색어가 순차적으로 정렬되며, 상기 인덱스 트리의 리프 노드(leaf node)에는 상기 검색어가 포함된 리스트 버킷의 주소가 포함되는 인덱스 트리 생성부;상기 인덱스 트리의 노드에 대응되는 검색어 및 상기 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성하되, 상기 트리 버킷이 상기 인덱스 트리의 리프 노드로부터 생성된 경우에는 상기 검색어가 포함된 리스트 버킷의 주소 정보를 더 포함하도록 하는 트리 버킷 생성부;상기 트리 버킷, 상기 리스트 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화부; 및상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 데이터량 및 상기 다중화부에 의해 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 시간 정보로 변환하는 시간 정보 산출부;를 포함하며,상기 데이터 버킷 생성부, 상기 리스트 버킷 생성부 및 상기 트리 버킷 생성부는 각각에 대응하는 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 상기 시간 정보 산출부가 산출한 시간 정보로 변경하는 것을 특징으로 하는 데이터 생성 장치.
- 제 1항 또는 제 2항에 있어서,상기 데이터 버킷 생성부는 사전에 설정된 트리 복제 횟수와 리스트 복제 횟수를 곱한 횟수로 상기 데이터 버킷을 분할하여 복수의 부분 데이터 버킷을 생성하고,상기 리스트 버킷 생성부는 상기 트리 복제 횟수로 상기 리스트 버킷을 분할하여 복수의 부분 리스트 버킷을 생성한 후 상기 리스트 복제 횟수에 따라 상기 각각의 부분 리스트 버킷을 복제하고,상기 트리 버킷 생성부는 상기 트리 복제 횟수와 리스트 복제 횟수를 곱한 횟수에 따라 상기 트리 버킷을 복제하며,상기 다중화부는 상기 각각의 트리 버킷, 부분 리스트 버킷 및 부분 데이터 버킷을 순차적으로 반복 배치하여 부호화될 데이터를 생성하는 것을 특징으로 하는 데이터 생성 장치.
- 제 3항에 있어서,상기 트리 복제 횟수 및 리스트 복제 횟수는 다음의 수학식에 의해 결정되는 것을 특징으로 하는 데이터 생성 장치:[수학식 A][수학식 B]여기서, AvgAT(1,α(1,β))는 상기 다중화부에 의하여 생성된 후 부호화되어 전송되는 데이터 스트림을 다운로드하여 상기 검색어가 포함된 문서를 추출하기까지의 시간, SizeOfIndexList는 상기 인덱스 리스트로부터 생성된 상기 리스트 버킷의 수, DBSize는 상기 콘텐츠 데이터로부터 생성된 상기 데이터 버킷의 수, SizeOfIndexTree는 상기 인덱스 트리로부터 생성된 상기 트리 버킷의 수, α는 AvgAT(1,α(1,β))를 최소화시키는 값으로서 상기 리스트 복제 횟수, 그리고 β는 상기 트리 복제 횟수이다.
- 제 1항에 있어서,상기 트리 버킷 생성부는 상기 인덱스 트리의 각 노드를 전위(pre-order) 방식으로 순회하여 상기 트리 버킷을 생성하는 것을 특징으로 하는 데이터 생성 장치.
- 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성 단계;상기 복수 개의 문서로부터 추출한 검색어 및 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성하는 인덱스 리스트 생성 단계;상기 검색어, 상기 검색어가 포함된 문서의 주소 정보 및 상기 검색어가 포함된 문서가 속하는 데이터 버킷의 주소 정보를 포함하는 리스트 버킷을 생성하는 리스트 버킷 생성 단계;상기 검색어 및 상기 검색어가 포함된 리스트 버킷의 주소 정보로 이루어진 인덱스 트리를 생성하되, 상기 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 상기 검색어가 순차적으로 정렬되는 인덱스 트리 생성 단계;상기 인덱스 트리의 노드에 대응되는 검색어, 상기 검색어가 포함된 리스트 버킷의 주소 정보 및 상기 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성하는 트리 버킷 생성 단계;상기 트리 버킷, 상기 리스트 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화 단계; 및상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 데이터량 및 상기 다중화 단계에서 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 시간 정보로 변환하는 시간 정보 산출 단계;를 포함하며,상기 데이터 버킷 생성 단계, 상기 리스트 버킷 생성 단계 및 상기 트리 버킷 생성 단계에서 각각에 대응하는 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 상기 시간 정보 산출 단계에서 산출된 시간 정보로 변경하는 것을 특징으로 하는 데이터 생성 방법.
- 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷을 생성하는 데이터 버킷 생성 단계;상기 복수 개의 문서로부터 추출한 검색어 및 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트를 생성하는 인덱스 리스트 생성 단계;상기 검색어, 상기 검색어가 포함된 문서의 주소 정보 및 상기 검색어가 포함된 문서가 속하는 데이터 버킷의 주소 정보를 포함하는 리스트 버킷을 생성하는 리스트 버킷 생성 단계;상기 검색어로 이루어진 인덱스 트리를 생성하되, 상기 인덱스 트리를 구성하는 각각의 노드에는 한 개 이상의 상기 검색어가 순차적으로 정렬되며, 상기 인 덱스 트리의 리프 노드에는 상기 검색어가 포함된 리스트 버킷의 주소가 포함되는 인덱스 트리 생성 단계;상기 인덱스 트리의 노드에 대응되는 검색어 및 상기 노드의 하위에 위치하는 자식 노드의 주소 정보를 포함하는 트리 버킷을 생성하되, 상기 트리 버킷이 상기 인덱스 트리의 리프 노드로부터 생성된 경우에는 상기 검색어가 포함된 리스트 버킷의 주소 정보를 더 포함하도록 하는 트리 버킷 생성 단계;상기 트리 버킷, 상기 리스트 버킷 및 상기 데이터 버킷을 순차적으로 배치하여 부호화될 데이터를 생성하는 다중화 단계; 및상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 데이터량 및 상기 다중화 단계에서 생성되는 부호화될 데이터의 전송 속도를 기초로 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 시간 정보로 변환하는 시간 정보 산출 단계;를 포함하며,상기 데이터 버킷 생성 단계, 상기 리스트 버킷 생성 단계 및 상기 트리 버킷 생성 단계에서 각각에 대응하는 상기 데이터 버킷, 리스트 버킷 및 트리 버킷의 주소 정보를 상기 시간 정보 산출 단계에서 산출된 시간 정보로 변경하는 것을 특징으로 하는 데이터 생성 방법.
- 제 7항 또는 제 8항에 있어서,상기 데이터 버킷 생성 단계에서 사전에 설정된 트리 복제 횟수와 리스트 복제 횟수를 곱한 횟수로 상기 데이터 버킷을 분할하여 복수의 부분 데이터 버킷을 생성하고,상기 리스트 버킷 생성 단계에서 상기 트리 복제 횟수로 상기 리스트 버킷을 분할하여 복수의 부분 리스트 버킷을 생성한 후 상기 리스트 복제 횟수에 따라 상기 각각의 부분 리스트 버킷을 복제하고,상기 트리 버킷 생성 단계에서 상기 트리 복제 횟수와 리스트 복제 횟수를 곱한 횟수에 따라 상기 트리 버킷을 복제하며,상기 다중화 단계에서 상기 각각의 트리 버킷, 부분 리스트 버킷 및 부분 데이터 버킷을 순차적으로 반복 배치하여 부호화될 데이터를 생성하는 것을 특징으로 하는 데이터 생성 방법.
- 제 8항에 있어서,상기 트리 복제 횟수 및 리스트 복제 횟수는 다음의 수학식에 의해 결정되는 것을 특징으로 하는 데이터 생성 방법:[수학식 A][수학식 B]여기서, AvgAT(1,α(1,β))는 상기 다중화 단계에서 생성된 후 부호화되어 전송 되는 데이터 스트림을 다운로드하여 상기 검색어가 포함된 문서를 추출하기까지의 시간, SizeOfIndexList는 상기 인덱스 리스트로부터 생성된 상기 리스트 버킷의 수, DBSize는 상기 콘텐츠 데이터로부터 생성된 상기 데이터 버킷의 수, SizeOfIndexTree는 상기 인덱스 트리로부터 생성된 상기 트리 버킷의 수, α는 AvgAT(1,α(1,β))를 최소화시키는 값으로서 상기 리스트 복제 횟수, 그리고 β는 상기 트리 복제 횟수이다.
- 제 6항에 있어서,상기 트리 버킷 생성 단계에서 상기 인덱스 트리의 각 노드를 전위(pre-order) 방식으로 순회하여 상기 트리 버킷을 생성하는 것을 특징으로 하는 데이터 생성 방법.
- 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷, 상기 복수 개의 문서로부터 추출한 검색어 및 상기 데이터 버킷 내에서 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트로부터 생성된 리스트 버킷, 그리고 상기 검색어 및 상기 검색어가 속하는 리스트 버킷의 주소 정보로 이루어진 인덱스 트리의 각 노드로부터 생성된 트리 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신부;상기 데이터 스트림으로부터 추출한 트리 버킷에 포함된 상기 리스트 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 리스트 버킷을 추출하고, 상기 리스트 버킷에 포함된 상기 데이터 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 데이터 버킷을 추출하는 버킷 추출부;상기 데이터 버킷에 포함된 상기 문서의 주소 정보에 의해 파악되는 수신 시점에 상기 데이터 버킷으로부터 상기 검색어를 포함하는 문서를 추출하는 데이터 추출부; 및상기 데이터 버킷으로부터 추출한 문서에 포함된 상기 검색어에 별도의 표시를 하여 상기 문서를 출력하는 검색부;를 포함하는 것을 특징으로 하는 데이터 검색 장치.
- 제 11항에 있어서,사용자로부터 입력받은 질의어와 상기 검색어가 일치하는 경우에 상기 버킷 추출부가 동작하도록 하는 제어부를 더 포함하는 것을 특징으로 하는 데이터 검색 장치.
- 제 11항에 있어서,상기 트리 버킷이 상기 인덱스 트리의 각각의 노드를 전위 방식으로 순회하여 생성되는 복수의 트리 버킷이 순차적으로 배치된 트리 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 트리 버킷 스트림의 수신 시점까지 대기하는 것을 특징으로 하는 데이터 검색 장치.
- 제 11항 내지 제 13항 중 어느 한 항에 있어서,상기 리스트 버킷이 상기 인덱스 리스트에 포함되어 순차적으로 정렬된 검색어들 중 처음 부분에 해당하는 검색어로부터 생성된 것이 아닌 경우에는 다음 인덱스 리스트의 수신 시점까지 대기하는 것을 특징으로 하는 데이터 검색 장치.
- 복수 개의 문서로 구성된 콘텐츠 데이터를 포함하는 데이터 버킷, 상기 복수 개의 문서로부터 추출한 검색어 및 상기 데이터 버킷 내에서 상기 검색어가 포함된 문서의 주소 정보로 이루어진 인덱스 리스트로부터 생성된 리스트 버킷, 그리고 상기 검색어 및 상기 검색어가 속하는 리스트 버킷의 주소 정보로 이루어진 인덱스 트리의 각 노드로부터 생성된 트리 버킷을 포함하는 데이터 스트림을 전송 채널로부터 수신하는 데이터 수신 단계;상기 데이터 스트림으로부터 추출한 트리 버킷에 포함된 상기 리스트 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 리스트 버킷을 추출하고, 상기 리스트 버킷에 포함된 상기 데이터 버킷의 주소 정보에 의하여 파악되는 수신 시점에 상기 데이터 버킷을 추출하는 버킷 추출 단계;상기 데이터 버킷에 포함된 상기 문서의 주소 정보에 의해 파악되는 수신 시점에 상기 데이터 버킷으로부터 상기 검색어를 포함하는 문서를 추출하는 데이터 추출 단계; 및상기 데이터 버킷으로부터 추출한 문서에 포함된 상기 검색어에 별도의 표시 를 하여 상기 문서를 출력하는 검색 단계;를 포함하는 것을 특징으로 하는 데이터 검색 방법.
- 제 15항에 있어서,사용자로부터 입력받은 질의어와 상기 검색어가 일치하는 경우에 상기 버킷 추출 단계에서 상기 리스트 버킷 및 데이터 버킷을 추출하도록 하는 제어 단계를 더 포함하는 것을 특징으로 하는 데이터 검색 방법.
- 제 15항에 있어서,상기 트리 버킷이 상기 인덱스 트리의 각각의 노드를 전위 방식으로 순회하여 생성되는 복수의 트리 버킷이 순차적으로 배치된 트리 버킷 스트림의 처음 부분에 해당하지 않는 경우에는 다음 트리 버킷 스트림의 수신 시점까지 대기하는 것을 특징으로 하는 데이터 검색 방법.
- 제 15항 내지 제 17항 중 어느 한 항에 있어서,상기 리스트 버킷이 상기 인덱스 리스트에 포함되어 순차적으로 정렬된 검색어들 중 처음 부분에 해당하는 검색어로부터 생성된 것이 아닌 경우에는 다음 인덱스 리스트의 수신 시점까지 대기하는 것을 특징으로 하는 데이터 검색 방법.
- 제 6항 또는 제 7항에 기재된 데이터 생성 방법을 컴퓨터에서 실행시키기 위 한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 제 15항에 기재된 데이터 검색 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080076211A KR100953869B1 (ko) | 2008-08-04 | 2008-08-04 | 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080076211A KR100953869B1 (ko) | 2008-08-04 | 2008-08-04 | 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100015253A KR20100015253A (ko) | 2010-02-12 |
KR100953869B1 true KR100953869B1 (ko) | 2010-04-20 |
Family
ID=42088408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080076211A KR100953869B1 (ko) | 2008-08-04 | 2008-08-04 | 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100953869B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050066280A (ko) * | 2003-12-26 | 2005-06-30 | 한국전자통신연구원 | 에스씨에이 기반 시스템의 파일 파싱 장치, 그리고 그의파일 파싱 및 데이터 저장 방법 |
KR20060083229A (ko) * | 2003-11-10 | 2006-07-20 | 오버츄어 서비시즈, 인크. | 계층적으로 저장된 인덱스들을 구비한 검색 엔진 |
-
2008
- 2008-08-04 KR KR1020080076211A patent/KR100953869B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060083229A (ko) * | 2003-11-10 | 2006-07-20 | 오버츄어 서비시즈, 인크. | 계층적으로 저장된 인덱스들을 구비한 검색 엔진 |
KR20050066280A (ko) * | 2003-12-26 | 2005-06-30 | 한국전자통신연구원 | 에스씨에이 기반 시스템의 파일 파싱 장치, 그리고 그의파일 파싱 및 데이터 저장 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20100015253A (ko) | 2010-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9792340B2 (en) | Identifying data items | |
Lee et al. | Using signature techniques for information filtering in wireless and mobile environments | |
CN106484877B (zh) | 一种基于hdfs的文件检索系统 | |
KR100921845B1 (ko) | 미디어 아이템들의 관리를 위한 방법, 시스템, 컴퓨터프로그램 및 디바이스 | |
US7640354B2 (en) | Scalable differential compression of network data | |
CN103401795B (zh) | 一种内容中心网络中传输内容冗余的消除方法 | |
US12050578B2 (en) | Distributed database management system with dynamically split B-Tree indexes | |
EP3125501A1 (en) | File synchronization method, server, and terminal | |
CN103678491A (zh) | 一种基于Hadoop中小文件优化和倒排索引的方法 | |
Yao et al. | An energy-efficient and access latency optimized indexing scheme for wireless data broadcast | |
CN110399348A (zh) | 文件重删方法、装置、系统及计算机可读存储介质 | |
CN100574340C (zh) | 一种查找手机短信的方法 | |
CN111324483B (zh) | 一种数据恢复方法、装置以及相关设备 | |
CN100488173C (zh) | 对流分类算法进行自动选择的方法 | |
CN101469989A (zh) | 一种手机网络导航中导航数据的压缩方法 | |
KR100953869B1 (ko) | 데이터 생성 장치 및 방법, 그리고 데이터 검색 장치 및방법 | |
CN116010348B (zh) | 一种分布式海量对象的管理方法和装置 | |
CN115809248B (zh) | 数据查询方法和装置以及存储介质 | |
Hu et al. | A comparison of indexing methods for data broadcast on the air | |
Yang et al. | A novel hash-based streaming scheme for energy efficient full-text search in wireless data broadcast | |
US6243389B1 (en) | Method and apparatus for indexed data broadcast | |
Waluyo et al. | Global index for multi channel data dissemination in mobile databases | |
CN117453986B (zh) | 一种搜索方法、后台服务器及搜索系统 | |
CN110475028A (zh) | 一种千万级联系人的t9搜索方法、电子设备及存储介质 | |
Waluyo et al. | Indexing schemes for multichannel data broadcasting in mobile databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130405 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140304 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |