KR100875636B1 - 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법 - Google Patents

그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법 Download PDF

Info

Publication number
KR100875636B1
KR100875636B1 KR1020070095444A KR20070095444A KR100875636B1 KR 100875636 B1 KR100875636 B1 KR 100875636B1 KR 1020070095444 A KR1020070095444 A KR 1020070095444A KR 20070095444 A KR20070095444 A KR 20070095444A KR 100875636 B1 KR100875636 B1 KR 100875636B1
Authority
KR
South Korea
Prior art keywords
web
deep
web crawler
crawler service
page
Prior art date
Application number
KR1020070095444A
Other languages
English (en)
Inventor
송지환
최동훈
이윤준
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Priority to KR1020070095444A priority Critical patent/KR100875636B1/ko
Application granted granted Critical
Publication of KR100875636B1 publication Critical patent/KR100875636B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은, 웹 페이지를 크롤링하기 위해 가장 적은 비용이 드는 그리드 컴퓨팅 자원을 선택하고, 해당 웹 페이지가 서피스웹인 경우, 선택된 컴퓨팅 자원을 이용하여 해당 페이지의 인덱스를 생성하거나, 해당 웹 페이지가 딥웹인 경우, 선택된 컴퓨팅 자원을 이용하여 해당 웹 페이지의 검색 폼을 찾고, 해당 검색 폼에 적당한 질의를 선택하고, 해당 검색 폼에 선택된 질의를 입력하여 검색 결과로 생성된 웹 페이지의 인덱스를 생성하며, 생성된 인덱스와 웹 페이지의 매핑 정보를 저장하도록 하는, 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법에 관한 것으로서, 본 발명에 따른 그리드 컴퓨팅 기반 웹 크롤링 방법은, (a) 크롤링할 웹 페이지가 서피스웹에 해당하는 경우, 웹 페이지를 크롤링하기 위해 최적의 서피스웹 크롤러 서비스 팩토리를 호출하여 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 이를 통해 상기 웹 페이지의 인덱스를 생성하는 서피스웹 크롤링 단계; (b) 크롤링할 웹 페이지가 딥웹에 해당하는 경우, 상기 웹 페이지에서 딥웹 검색폼을 찾기 위해 최적의 딥웹 크롤러 서비스 팩토리를 호출하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 생성된 상기 딥웹 크롤러 서비스 인스턴스에서 딥웹 검색폼을 추출하는 검색폼 추출 단계; 및 (c) 상기 딥웹 검색폼에 적당한 질의를 입력해서 결과 페이지를 생성하며, 상기 결과 페이지의 키워드를 추출하여 페이지의 인덱스를 생성해 호출자에게 리턴하는 딥웹 크롤링 단계;를 포함한다.
딥웹, 서피스웹, 그리드 컴퓨팅, 인덱스, 크롤러, 웹 페이지, URL

Description

그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법{Web crawler system based on grid computing, and method thereof}
본 발명이 속하는 기술 분야는 웹을 효율적으로 검색하기 위한 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법에 관한 것이다.
최근, 웹(Web)의 빠른 성장과 더불어 엄청난 양의 정보들이 웹을 통해 제공되고 있다. 웹이 처음 등장하였을 때에는 웹이 갖고 있는 정보의 양이 상대적으로 매우 적었기 때문에 이러한 초기의 웹은 정적 페이지(static page) 형태로 표현되었다. 이러한 정적 페이지의 URL(Uniform Resource Locator)은 대개 지속적으로 존재함으로 하이퍼링크(hyperlink)를 따라 방문이 가능했다. 이러한 특징을 갖는 웹을 서피스웹(Surface Web)이라 부른다. 이러한 서피스웹을 검색하기 위해 많은 검색 엔진들이 개발되었다. 이러한 검색 엔진들은 크롤러(crawler)라 불리는 프로그램을 이용하여 하이퍼링크를 따라 웹 페이지를 방문하고 방문한 웹 페이지의 인덱스를 생성한다. 이때, 생성된 인덱스는 사용자의 질의를 만족하는 페이지를 찾는데 사용된다.
그러나 현재의 웹은 초기의 웹보다 훨씬 많은 정보들을 갖고 있다. 이러한 정보들을 효율적으로 관리하고 검색하기 위해 현재 웹은 자신의 후단(back-end) 데이터베이스(database)에 정보들을 저장한다. 일반적으로 웹 후단의 데이터베이스로부터 정보를 가져오기 위해 사용자들은 웹 사이트의 검색 기능을 이용한다. 여기서, 웹사이트들은 이러한 검색 기능을 HTML(Hypertext Markup Language)의 <FORM> 태그를 사용하여 제공한다. HTML의 <FORM> 태그는 사용자의 입력을 웹 서버에 전달하는 역할을 한다. 즉, 사용자가 검색 폼(search form)에 찾고자 하는 질의를 입력하면 웹 사이트는 이러한 질의와 연관된 정보들을 자신의 후단 데이터베이스에서 검색한다. 웹 사이트는 검색된 결과들을 포함한 페이지를 동적으로 생성하고, 이 페이지를 사용자에게 보여준다. 따라서, “깊은(deep)” 혹은 “숨겨진(hidden)” 데이터베이스로부터 정보가 검색되어 나오기 때문에 이러한 웹을 "딥웹(Deep Web)" 혹은 "히든웹(Hidden Web)"이라 부른다.
현재 서피스웹 크롤링을 위해 많은 검색 엔진 기업들은 엄청난 양의 분산된 컴퓨팅 자원을 사용하고 있다. 예를 들어, 구글(Google, http://www.google.com)은 수십만 대의 컴퓨터들을 전 세계에 직접 설치하여 서피스웹 크롤링에 이용하고 있다. 이러한 엄청난 양의 컴퓨팅 자원을 이용하는 구글이 단지 서피스웹의 접근 가능한 일부 페이지들을 한 번씩 방문하기 위해 최소 2주에서 4주 정도가 필요했다. 이와 같이, 실제 환경에서 더 빠른 크롤링을 위해 “분산 크롤링 방법”과 “선택 크롤링 방법”이 제안되고 있다. 분산 크롤링 방법은 분산된 여러 컴퓨팅 자원들을 이용하여 크롤링 작업을 동시에 수행하는 것이다. 분산된 컴퓨팅 자원들은 적게는 수십 대에서 많게는 수십만 대에 이른다. 이러한 분산 크롤링 방법의 기본 개념은 더 많은 자원을 사용하여 더 많은 페이지들을 동시에 크롤링하는 것이다.
분산 크롤링 방법은 다시 “부분 분산 크롤링 방법”과 “Peer-to-Peer(P2P) 크롤링 방법”(혹은 “완전 분산 크롤링 방법”)으로 나뉜다. 부분 분산 크롤링 방법은 중앙 서버와 클라이언트들(크롤러들)로 구성된다. 중앙 서버는 방문할 URL들을 크롤러들의 개수를 고려하여 나누고, 나눠진 URL들을 크롤러들에게 할당한다. 크롤러들은 할당 받은 URL 목록을 이용하여 웹 페이지들을 방문하고 방문된 페이지들로부터 새로운 URL들을 수집한다. 수집된 URL들을 중앙 서버로 보내고, 중앙 서버는 수집된 URL들에서 중복된 URL을 제거한다. 중앙 서버는 방문할 URL 목록을 만들고 새로 방문할 URL들을 크롤러들에게 할당하는 과정부터 다시 반복한다. P2P 크롤링 방법은 각각의 크롤러들이 모든 크롤링 과정을 독자적으로 수행한다. 즉, 각각의 크롤러들은 스스로 방문할 페이지들을 결정하고, 결정된 페이지들을 방문한다. 방문된 페이지들로부터 하이퍼링크를 추출하고, 앞으로 방문할 자신의 URL 목록을 갱신한다. 이러한 분산 크롤링 방법은 크롤링 주기를 짧게 만들 수 있는 반면, 기업 혹은 기관들은 엄청나게 큰 분산 컴퓨팅 자원을 자체적으로 구축해야 하는 어려움을 갖고 있다.
한편, 선택 크롤링 방법은 크롤러의 정책에 맞는 웹 페이지를 선택하여 그 페이지들에 대해서만 크롤링을 수행한다. 이러한 방법은 필요 없는 크롤링을 줄여 컴퓨팅 자원을 절약하고, 선택된 중요한 페이지들만의 크롤링에만 이러한 자원을 집중시킨다. 선택 크롤링 방법은 다시 “링크 제한 크롤링 방법”과 “집중 크롤링 방법”으로 구분된다. 링크 제한 크롤링 방법은 오직 허가된 Multipurpose Internet Mail Extensions(MIME) 타입(예, text/plain)의 페이지들만 방문한다. 집중 크롤링 방법은 크롤러들이 오직 중요하다고 여기는 페이지들에 대해서만 크롤링을 수행한다. 하지만 중요한 페이지들을 결정하는 것은 어려운 문제 중 하나이다. 이러한 선택적 크롤링 방법은 컴퓨팅 자원을 아낄 수 있지만 접근 가능한 극히 일부 페이지들만 방문하게 한다. 또한 크롤러들의 잘못된 정책 때문에 사용자들은 크롤링되지 않은 페이지의 중요한 정보를 검색하지 못할 수 있다.
최근 조사에 따르면, 전체 웹 정보의 약 95% 이상이 딥웹 형태로 저장되고 있다. 그럼에도 불구하고 현재 많이 사용되는 검색 엔진들은 정적인 웹 페이지에 포함된 하이퍼링크를 따라 웹 페이지를 방문하는 크롤링(서피스웹 크롤링) 방법을 사용하기 때문에, 사용자의 질의로부터 동적으로 생성되는 딥웹의 페이지들을 검색하지 못한다. 이러한 문제를 해결하기 위해, 최근 몇 년 동안 딥웹 검색의 필수 요소인 딥웹 크롤링 방법에 대한 연구들이 진행되어 왔다. 이러한 연구들은 딥웹 크롤링을 위해 적당한 질의를 생성하여 그 질의를 딥웹의 검색 폼에 입력하고, 그 결과로 생성된 동적 페이지를 인덱싱(indexing)하는 방법을 일반적으로 사용한다. 이러한 크롤링 방법을 검색 기반 크롤링이라고도 한다. 하지만 실제 딥웹 검색을 위해 이러한 크롤링 방법은 몇 개의 딥웹 사이트에만 부분적으로 응용되고 있다. 그 이유는 딥웹이 서피스웹 보다 약 500배 더 크기 때문에 크롤링을 위한 대규모의 컴퓨팅 자원을 확보하는데 많은 어려움이 있기 때문이다. 게다가 동적으로 생성된 페 이지들은 오랜 시간 지속되지 않는 URL을 갖고 있어서 더 자주 검색 기반의 크롤링을 해야 사용자에게 최신 정보를 전달할 수 있기 때문이다.
다른 한편, 딥웹 크롤링의 비용을 줄이기 위해 “사이트맵(sitemap) 기반 크롤링”이 구글에 의해 제안되었다. 사이트맵 크롤링을 지원하기 위해서는 웹 사이트가 자신의 최상위 디렉토리(directory)에 사이트맵 파일을 반드시 저장해야 한다. 이러한 사이트맵 파일은 XML(Extensible Markup Language) 문서로서 사이트에 포함된 모든 페이지들에 대한 URL 목록이다. 사이트맵 파일을 작성하기 위해 웹 마스터 혹은 웹 서버가 각각의 페이지들이 마지막으로 언제 갱신되었는지, 얼마나 종종 바뀌는지, 사이트 안에서 다른 URL들과의 관계에서 얼마나 중요한지 등을 나타내는 추가 정보를 입력해야 한다. 이러한 사이트맵 기반 크롤링은 검색 엔진들이 좀 더 지능적이고 효율적으로 딥웹 사이트들을 크롤링할 수 있게 하지만, 웹마스터나 웹 서버가 능동적으로 이러한 사이트맵 파일을 생성하고 관리해야 하는 부담이 발생하며, 현재 대부분의 웹 사이트들이 사이트맵 파일을 제공하지 않는다는 문제점을 갖고 있다. 또한 이러한 방법은 크롤러들의 공정하고 독자적인 크롤링을 제한하고 사이트맵 파일에 크롤러들을 종속시킨다.
종래의 딥웹 크롤링 기술은, 딥웹 크롤링을 위해 제안된 최첨단 기술들을 사용하더라도, 딥웹의 일부만 검색할 수 있다. 따라서, 검색해야 할 딥웹의 크기가 너무나 크고, 비용이 비싼 검색 기반의 크롤링을 해야 하며, 하나의 기관이 엄청난 컴퓨팅 자원을 소유하는 것이 비현실적이기 때문에 크롤링 작업에 제약이 따르는 문제점이 있다.
한편, 국내등록특허 제0514149호(데이터 네트워크의 정보 검색 및 분석 방법)는 데이터 네트워크의 액세스 포인트에서 정보 흐름으로부터 추출된 데이터 형태로 정보를 수집하는 단계; 수집된 정보를 인덱싱하고 인덱싱된 정보를 검색하는 단계; 및 검색 단계에 기초하여 정보를 찾아내는(retrieving) 단계로 이루어진다.
전술한 국내등록특허 제0514149호는 분산 트래픽 크롤링과 집중화된 트래픽 크롤링을 이용하여, 최근의 문서 업데이트 또는 문서 생성과 검색 서비스에서 검색 가능한 시간 사이의 지연 면에서 문서들의 "새로고침" 기능을 향상시키고, 쓸모 없이 링크된 문서들의 검출 및 능동 객체들의 수집을 가능하게 하지만, 딥웹 크롤링이나 서피스웹 크롤링의 방법을 제공하고 있지 않다.
또한, 국내공개특허 제2006-0041874호(결정 이론 웹 크롤링, 및 웹 페이지 변경의 예측)는 웹-크롤링을 실행할 것인지의 여부, 언제 실행할지, 및 어떻게 실행할지를 결정하는 것과 관련하여 예측 분석(predictive analysis)을 수행하는 관리 컴포넌트; 및 예측 분석의 함수로서 웹 페이지의 서브세트들을 크롤링하는 웹-크롤링 컴포넌트로 구성된다.
전술한 국내공개특허 제2006-0041874호는 예상되는 이득을 최대화하기 위해 다운로드 할 페이지를 선택적으로 고르기 위해 결정-이론 웹 크롤링 방식을 이용하며, 이 결정-이론 방식을 통해 취해질 가능한 액션 세트, 액션의 가능한 결과 세트, 특정 결과가 특정 액션으로부터 생길 확률 및 결과 값을 획득하는 각각의 결과에 대한 이용률에 기초하여 크롤링하기 위한 페이지 선택을 용이하게 한다.
그러나, 국내공개특허 제2006-0041874호는 웹 크롤링 속도 및 효율성을 개선 할 수 있으나, 서피스웹 크롤링 방법과 딥웹 크롤링 방법을 제공하지 않는다.
전술한 문제점을 해결하기 위한 본 발명은, 웹 페이지의 지리적 위치를 고려하여 가장 적은 비용이 드는 그리드 컴퓨팅 자원을 선택하고, 해당 웹 페이지가 서피스웹인 경우 선택된 컴퓨팅 자원을 이용하여 해당 웹 페이지의 인덱스를 생성하며, 해당 웹 페이지가 딥웹인 경우 선택된 컴퓨팅 자원을 이용하여 해당 웹 페이지의 검색 폼을 찾아서, 웹 페이지 및 후단 데이터베이스와 관련된 질의를 선택하고 해당 검색 폼에 선택된 질의를 입력하여, 검색 결과로 생성된 동적 웹 페이지의 인덱스를 생성하며, 이렇게 생성된 인덱스와 웹 페이지의 매핑 정보를 저장하도록 하는, 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법을 제공함에 기술적 목적이 있다.
전술한 목적을 달성하기 위한 본 발명에 따른 그리드 컴퓨팅 기반 웹 크롤링 방법은, (a) 크롤링할 웹 페이지가 서피스웹인 경우, 해당 웹 페이지를 서피스웹 크롤링하기 위해 최적의 서피스웹 크롤러 서비스 팩토리를 호출하여 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 이를 통해 상기 웹 페이지의 인덱스를 생성하는 서피스웹 크롤링 단계; (b) 상기 웹 페이지가 딥웹인 경우, 해당 웹 페이지에서 딥웹 검색폼을 찾기 위한 최적의 딥웹 크롤러 서비스 팩토리를 호출하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 생성된 상기 딥웹 크롤러 서비스 인스턴스에서 딥웹 검색폼을 추출하는 검색폼 추출 단계; 및 (c) 상기 딥웹 검색폼에 적당한 질의를 입력해서 결과 페이지를 생성하며, 상기 결과 페이지의 키워드를 추출하여 페이지의 인덱스를 생성해 호출자에게 리턴하는 딥웹 크롤링 단계;를 포함한다.
또한, 본 발명에 따른 그리드 컴퓨팅 기반 서피스웹 크롤링 방법은, (a) 웹 주소 집합에서 크롤링 해야 할 페이지의 주소를 선택하는 단계; (b) 상기 선택된 페이지의 주소를 서피스웹 크롤링하기 위한 최적의 서피스웹 크롤러 서비스 팩토리를 호출하고, 호출된 상기 서피스웹 크롤러 서비스 팩토리를 이용하여 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하는 단계; (c) 상기 생성된 서피스웹 크롤러 서비스 인스턴스를 이용하여 상기 페이지의 인덱스를 생성하는 단계; 및 (d) 생성된 상기 페이지의 인덱스를 저장하는 단계;를 포함한다.
또한, 본 발명에 따른 그리드 컴퓨팅 기반 딥웹 크롤링 방법은, (a) 검색폼이 포함된 페이지를 선택하는 단계; (b) 선택된 상기 페이지에서 딥웹 검색폼을 가장 적은 비용으로 찾아줄 수 있는 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하기 위해 최소 비용의 딥웹 크롤러 서비스 팩토리를 호출하는 단계; (c) 호출된 상기 딥웹 크롤러 서비스 팩토리를 이용하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하는 단계; (d) 생성된 상기 딥웹 크롤러 서비스 인스턴스의 딥웹 검색폼 정보 추출 프로시저를 호출하여 상기 딥웹 검색폼 정보를 추출하는 단계; 및 (e) 검색된 상기 딥웹 검색폼 정보를 저장하는 단계;를 포함한다.
또한, 본 발명에 따른 그리드 컴퓨팅 기반 딥웹 크롤링 방법은, (a) 검색폼 정보를 입력받는 단계; (b) 상기 검색폼 정보를 바탕으로 해당 딥웹의 도메인을 결정하는 단계; (c) 결정된 상기 도메인에서 임의의 질의를 선택하고, 선택된 상기 질의를 상기 검색폼에 입력하는 단계; (d) 상기 질의 입력 결과로 생성된 결과 페이지를 제1 결과 집합에 추가하는 단계; (e) 상기 제1 결과 집합의 페이지들의 키워드를 추출하여 페이지의 인덱스를 생성하는 단계; (f) 생성한 상기 페이지의 인덱스를 호출자에게 리턴하는 단계;를 포함한다.
그리고, 본 발명에 따른 그리드 웹 크롤러 시스템은, 딥웹 및 서피스웹의 크롤링 작업을 분산된 그리드 컴퓨팅 노드들에게 할당하고, 크롤링 작업 후 생성되는 웹 페이지들의 인덱스(index)를 저장하고 관리하는 그리드 웹 크롤러 관리 서브시스템; 웹 크롤링을 위한 그리드 기반의 미들웨어로서, 상기 그리드 웹 크롤러 관리 서브시스템으로부터 할당 받은 크롤링 작업을 실제 그리드 노드들에서 수행하는 그리드 웹 크롤러 미들웨어 서브시스템; 및 서피스웹 크롤러 서비스 팩토리 및 딥웹 크롤러 서비스 팩토리의 등록 및 검색 서비스를 제공하는 그리드 웹 크롤러 레지스트리 서브시스템;을 포함한다.
본 발명에 의하면, 웹 크롤링 어플리케이션 개발의 용이성 및 웹 크롤링을 위한 시스템 구축 및 유지 비용을 절감할 수 있다. 즉, 웹 크롤링을 구현하고자 하는 개발자들이 본 발명을 이용하여 그리드 웹 크롤러 미들웨어 서브시스템이 제공하는 표준 규약을 통해 손쉽게 웹 크롤링 어플리케이션을 개발할 수 있고, 전 세계 의 유휴 컴퓨팅 리소스들을 손쉽게 이용할 수 있다. 그로 인해, 딥웹 크롤러 시스템 구축에 들어가는 컴퓨팅 자원의 비용을 대폭 절감할 수 있다.
또한, 웹 크롤링의 분산 처리 및 작업량에 대한 유연성을 증대시킬 수 있다. 즉, 웹 크롤링할 사이트와 지역적으로 가깝고 부하가 적은 그리드 노드들을 선택하여 크롤링 작업을 분산 처리한다. 만약 어떤 사이트의 웹 크롤링을 위해 많은 리소스가 필요하다면, 그리드 기술을 이용하여, 더 많은 컴퓨팅 자원을 동적으로 할당할 수 있다. 따라서 작업량이 갑자기 증가하더라도 부하 균형을 유지할 수 있으며 시스템 유연성이 그 만큼 증대된다.
또한, 크롤링 성능 제고 및 크롤링 빈도 증가에 따라 정보의 품질을 제고할 수 있다. 즉, 독자적으로 구축된 단일 서버 혹은 분산 서버들이 아닌 전 세계에 퍼져있는 유휴 컴퓨팅 자원을 이용하기 때문에 아주 높은 성능을 발휘할 수 있으며, 이러한 성능을 기반으로 좀 더 자주 딥웹 크롤링을 수행할 수 있기 때문에 웹 검색을 통해 사용자에게 제공되는 정보의 최신성을 제고할 수 있다.
또한, 그리드 컴퓨팅 기술을 손쉽게 이용할 수 있다. 즉, 그리드 컴퓨팅 기술의 응용에 익숙하지 않은 시스템 관리자 혹은 개발자들이 그리드 기반의 크롤러 시스템을 손쉽게 설치하거나 개발할 수 있도록 그리드 웹 크롤러 미들웨어 서브시스템을 제공한다.
또한, 개방형 그리드 서비스 아키텍처(OGSA: Open Grid Services Architecture) 기반의 인터페이스를 제공할 수 있다. 즉, 다양한 플랫폼에서 그리드 웹 크롤러 시스템을 개발하고 운영할 수 있도록 그리드 웹 크롤러 미들웨어 서 브시스템과 그리드 웹 크롤러 글로벌 레지스트리 서브시스템은 웹 서비스 인터페이스 표준을 지향하는 개방형 그리드 서비스 아키텍처 기반의 서비스 인터페이스를 제공한다.
또한, 그리드 웹 크롤러 관리 서브시스템, 그리드 웹 크롤러 미들웨어 서브시스템, 그리고 그리드 웹 크롤러 글로벌 레지스트리 서브시스템이 독립적인 계층적(layered) 구조로 설계되었기 때문에 그리드 웹 크롤러 시스템의 관리자 및 개발자는 그리드 웹 크롤러 관리 서브시스템을 다른 서브시스템들의 수정 없이 자신의 응용에 맞게 자유롭게 확장 혹은 축소시킬 수 있다. 또한 그리드 웹 크롤러 미들웨어 서브시스템과 그리드 웹 크롤러 글로벌 레지스트리 서브시스템 역시 다른 서브시스템의 변경 없이 다양한 기능을 추가하거나 기존 기능을 향상시킬 수 있다.
또한, 본 발명은 다음과 같은 기능을 제공할 수 있다.
1) 그리드 컴퓨팅 기반의 서피스웹 크롤러 서비스를 제공할 수 있다. 즉, 그리드 웹 크롤러 미들웨어 서브시스템의 서피스웹 크롤러 서비스 팩토리를 이용하여 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성시킨다. 이러한 서피스웹 크롤러 서비스는 그리드 컴퓨팅 자원을 효율적으로 이용하여 기존의 서피스웹 크롤링 작업을 수행할 수 있다.
2) 그리드 컴퓨팅 기반의 딥웹 크롤러 서비스를 제공할 수 있다. 즉, 그리드 웹 크롤러 미들웨어 서브시스템의 딥웹 크롤러 서비스 팩토리를 이용하면 딥웹 크롤러 서비스 인스턴스를 동적으로 생성시킬 수 있다. 이러한 딥웹 크롤러 서비스는 그리드 컴퓨팅 자원을 효율적으로 이용하여 많은 비용이 들어가는 딥웹 크롤링 작 업을 수행할 수 있다.
3) 그리드 컴퓨팅 기반의 웹 크롤러 서비스에 대한 글로벌 레지스트리 서비스를 제공할 수 있다. 그리드 웹 크롤러 글로벌 레지스트리 서브시스템은 개방형 그리드 서비스 아키텍쳐 기반의 레지스트리 서비스로서 전 세계에 산재된 서피스웹 혹은 딥웹 크롤러 서비스 팩토리를 등록할 수 있으며 서피스웹 혹은 딥웹 크롤러 서비스가 필요한 그리드 웹 크롤러 관리 서브시스템에게 서피스웹 혹은 딥웹 크롤러 서비스 팩토리 리스트를 제공할 수 있다.
또한, 본 발명은 다음과 같은 성능을 이용할 수 있다.
1) 효율적인 컴퓨팅 자원을 이용할 수 있다. 즉, 서피스웹 혹은 딥웹의 크롤링 작업이 필요할 때, 서피스웹 혹은 딥웹 크롤러 관리자는 서피스웹 혹은 딥웹 크롤러 서비스 팩토리에 서피스웹 혹은 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하라고 요청한다. 또한, 크롤링 작업 종료 후, 서피스웹 혹은 딥웹 크롤러 관리자는 서피스웹 혹은 딥웹 크롤러 서비스 인스턴스를 명시적으로 소멸시킨다. 이러한 방법의 자원 사용은 필요할 때 유휴 컴퓨팅 자원을 빌려와 필요한 작업을 수행하고, 이러한 작업이 끝나면 다시 컴퓨팅 자원을 되돌려준다. 따라서, 환원된 컴퓨팅 자원은 다른 곳에 사용될 수 있기 때문에 컴퓨팅 자원을 효율적으로 이용할 수 있다. 반면에, 기업 혹은 기관에서 자체적으로 구축하여 사용하는 분산 컴퓨팅 자원은 타 기업 혹은 타 기관과 거의 공유하지 않는다.
2) 시스템 설치 비용을 낮게 할 수 있다. 서피스웹 혹은 딥웹 크롤링 작업에 참여를 원하는 그리드 컴퓨팅 자원들을 각자 그리드 웹 크롤러 미들웨어 서브시스 템을 설치하여 서피스웹 혹은 딥웹 크롤링 작업에 동참할 수 있다. 따라서, 기관이나 기업 또는 심지어 개인이 무료 혹은 매우 저렴한 비용을 지불하고 이러한 그리드 컴퓨팅 자원을 이용하기 때문에 시스템 설치에 소요되는 비용을 대폭 절감할 수 있다.
3) 높은 크롤링 성능을 이용할 수 있다. 그리드 웹 크롤러 관리 서브시스템은 서피스웹 혹은 딥웹의 크롤링 작업에 가장 적합한 서피스웹 혹은 딥웹 크롤러 서비스 팩토리를 선택하여 서피스웹 혹은 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하기 때문에 항상 높은 크롤링 성능을 보장할 수 있다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하 상세한 설명에 의해 보다 명확하게 이해될 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.
보통 그리드 컴퓨팅 기술은 엄청난 컴퓨팅 처리 사이클을 요구하거나 매우 큰 데이터에 접근이 필요한 과학 기술 문제를 풀기 위해 최근에 등장하였다. 그리드 컴퓨팅 기술은 네트워크로 연결된 자발적으로 참여한 많은 컴퓨터들을 동시에 이용하는 분산 컴퓨팅 기술이다. 게다가, 개인용 컴퓨터의 성능이 높아지고 네트워크의 대역폭이 넓어지는 최근 경향은 그리드 컴퓨팅에 더 많은 관심이 집중되고 있다.
도 1은 본 발명의 일 실시예에 따른 그리드 웹 크롤러 시스템의 컴포넌트들을 나타낸 구성도이다.
도 1을 참조하면, 본 발명에 따른 그리드 웹 크롤러 시스템(130)은 인터넷이나, LAN(Lacal Area Network), WAN(Wide Area Network), 지점간 전화 연결(Peer-to-Peer Dial-up Connection) 등과 같은 통신 링크(100)에 연결되어 있다. 이 통신 링크(100)에는 다수의 딥웹 사이트들(110)과 다수의 서피스웹 사이트들(120)이 연결되어 있다. 또한, 다수의 딥웹 사이트들(110)은 정보를 저장 및 관리하는 데이터베이스들(111)을 각각 자신의 후단에 포함하고 있다.
그리드 웹 크롤러 시스템(130)은 통신 링크(100)를 통해 딥웹 사이트(110) 혹은 서피스웹 사이트(120)에 접근하여 웹 크롤링 작업을 수행한다.
또한, 그리드 웹 크롤러 시스템(130)은 그리드 웹 크롤러 관리 서브시스템(140), 그리드 웹 크롤러 미들웨어 서브시스템(150), 그리드 웹 크롤러 글로벌 레지스트리 서브시스템(160)을 포함한다.
여기서, 그리드 웹 크롤러 관리 서브시스템(140)은 딥웹 및 서피스웹의 크롤링 작업을 분산된 그리드 컴퓨팅 노드들에게 할당하고, 웹 크롤링 작업 후 생성되는 웹 페이지들의 인덱스(index)를 저장하고 관리한다.
이러한 그리드 웹 크롤러 관리 서브시스템(140)은 다시 키워드/페이지 인덱스 저장소(141), 딥웹 검색 폼 저장소(142), 서피스웹 크롤러 관리자(143), 딥웹 크롤러 관리자(144)로 구성된다.
키워드/페이지 인덱스 저장소(141)는 크롤링된 페이지들로부터 추출된 키워 드와 해당 페이지 간의 매핑 정보를 저장한다. 이러한 인덱스는 검색 엔진이 사용자의 질의와 연관된 페이지를 찾는데 이용된다.
딥웹 검색 폼 저장소(142)는 딥웹 사이트의 검색 폼 정보와 폼을 포함한 페이지를 저장한다. 여기서, 검색 폼 정보란 검색 폼의 URL, 검색 폼의 속성, 각 속성의 기본값을 말한다. 예컨대, 아마존 사이트(www.amazon.com)의 도서 검색 폼의 정보를 예로 들면, 검색 폼의 URL은 "http://amazon.com/s/ref=nb_ss_b/002-6277991-6184817"이고, 검색 폼의 속성은 "url"과 "field-keywords"이며, "url" 속성의 기본값은 "search-alias%3Dstripbooks"이다.
폼을 포함한 페이지란 잠재적으로 딥웹 서버(110)와 연결할 수 있는 페이지로서 입력폼과 검색폼으로 나뉜다. 입력폼은 로긴을 위한 폼, 작성한 글을 올리기 위한 폼 등을 말하며, 검색폼은 딥웹 서버(110)의 후단 데이터베이스(111)를 검색하기 위한 폼이다. 바로 이러한 검색 폼이 딥웹을 검색하는데 사용된다.
서피스웹 크롤러 관리자(143)는 서피스웹 크롤링 작업을 그리드 컴퓨팅 자원들에게 할당하고 관리한다. 서피스웹 크롤러 관리자(143)는 서피스웹 크롤링 작업이 끝난 후 생성되는 정적 페이지들의 인덱스를 키워드/페이지 인덱스 저장소(141)에 저장한다.
딥웹 크롤러 관리자(144)는 딥웹의 검색 폼을 찾는 작업 및 실제 딥웹을 크롤링하는 작업을 관리한다. 딥웹 크롤러 관리자(144)는 딥웹의 검색 폼을 찾는 작업이 끝나면, 그 결과 생성된 딥웹 검색 폼 정보를 딥웹 검색폼 저장소(142)에 저장한다. 또한, 딥웹 크롤링 작업이 끝난 후 생성되는 동적 페이지들의 인덱스를 키 워드/페이지 인덱스 저장소(141)에 저장한다.
그리드 웹 크롤러 미들웨어 서브시스템(150)은 웹 크롤링을 위한 그리드 기반의 미들웨어로서 서피스웹 크롤러 관리자(143) 혹은 딥웹 크롤러 관리자(144)로부터 할당 받은 크롤링 작업을 실제 그리드 노드들에서 수행한다.
이러한 그리드 웹 크롤러 미들웨어 서브시스템(150)은 다시 서피스웹 크롤러 서비스 팩토리(151), 딥웹 크롤러 서비스 팩토리(152), 서피스웹 크롤러 서비스(153), 딥웹 크롤러 서비스(154)를 포함한다.
서피스웹 크롤러 서비스 팩토리(151)는 지속적인(persistent) 그리드 팩토리 서비스로서 자신이 담당하는 그리드 컴퓨팅 자원들의 정보, 예컨대, 그리드 서비스를 사용할 때 발생하는 비용, 그리드 서비스와 서피스웹 사이트 간의 통신 비용, 그리드 서비스의 부하 정도에 관한 정보를 알려주는 기능 및 서피스웹 크롤링을 수행하는 일시적인(transient) 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하는 기능을 제공한다.
서피스웹 크롤러 관리자(143)는 서피스웹 크롤러 서비스 팩토리(151)가 제공하는 그리드 컴퓨팅 자원들의 정보를 고려하여 서피스웹 크롤러 서비스 팩토리(151)를 선택하고, 선택된 서피스웹 크롤러 서비스 팩토리(151)를 이용하여 서피스웹 크롤링 작업을 수행할 서피스웹 크롤러 서비스 인스턴스를 서피스웹 크롤러 서비스(153)를 통해 동적으로 생성한다. 이렇게 생성된 서피스웹 크롤러 서비스는 하이퍼링크 기반으로 서피스웹 사이트(120)에서 제공하는 서피스웹을 방문하여 크롤링 작업을 수행하게 된다.
크롤링 작업 후 생성된 페이지의 인덱스는 서피스웹 크롤러 관리자(143)에게 전달한다. 서피스웹 크롤러 관리자(143)는 서피스웹 크롤링이 종료된 후 더 이상 필요 없는 서피스웹 크롤러 서비스 인스턴스를 명시적으로 소멸시킨다.
딥웹 크롤러 서비스 팩토리(152)는 서피스웹 크롤러 서비스 팩토리(151)와 마찬가지로 지속적인 그리드 팩토리 서비스로서 자신이 담당하는 그리드 컴퓨팅 자원들의 정보를 알려주는 기능 및 딥웹 크롤링을 수행하는 딥웹 크롤러 서비스 인스턴스를 딥웹 크롤러 서비스(154)를 통해 동적으로 생성하는 기능을 제공한다.
서피스웹 크롤러 관리자(143)와 비슷하게 딥웹 크롤러 관리자(144) 역시 그리드 컴퓨팅 자원들의 정보를 고려하여 딥웹 크롤러 서비스 팩토리(152)를 선택하고, 선택된 딥웹 크롤러 서비스 팩토리(152)가 딥웹 크롤러 서비스 인스턴스를 동적으로 생성한다. 생성된 딥웹 크롤러 서비스 인스턴스는 딥웹 검색 폼을 찾거나 딥웹 크롤링 작업을 수행한다. 이러한 작업에 의해 생성된 딥웹 검색 폼 정보 및 페이지 인덱스는 딥웹 크롤러 관리자(144)에게 전달한다. 딥웹 크롤러 관리자(144)는 모든 작업이 종료된 딥웹 크롤러 서비스 인스턴스를 명시적으로 소멸시킨다.
그리드 웹 크롤러 레지스트리 서브시스템(160)은 지속적인 그리드 레지스트리 서비스로서 전 세계에 분산된 서피스웹 크롤러 서비스 팩토리(151) 및 딥웹 크롤러 서비스 팩토리(152)의 등록 및 검색 서비스를 제공하여 서피스웹 크롤러 관리자(143) 및 딥웹 크롤러 관리자(144)가 이러한 팩토리들을 쉽게 찾을 수 있게 한다.
한편, 본 발명의 실시예에서, "컴포넌트"라는 용어는 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행 중인 소프트웨어와 같은 컴퓨터 관련 엔티티(entity)를 칭하고자 사용된 것이다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 오브젝트, 실행가능 파일, 실행 스레드, 프로그램, 및/또는 컴퓨터일 수 있지만, 이것에 제한되는 것은 아니다. 예를 들어, 서버 상에서 실행되는 어플리케이션 및 서버는 컴퓨터 컴포넌트일 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 하나의 컴포넌트는 하나의 컴퓨터 상에 국한될 수 있고/있거나, 2개 이상의 컴퓨터 사이에서 분산될 수 있다.
도 2는 개방형 그리드 서비스 아키텍처(OGSA: Open Grid Services Architecture)에서의 그리드 웹크롤러 시스템의 컴포넌트들의 위치를 나타내는 블럭 다이어그램이다.
도 2를 참조하면, 개방형 그리드 서비스 아키텍처는 웹 서비스의 개념과 기술을 기반으로 기존 그리드 컴퓨팅 시스템 구조를 웹 서비스 형태로 발전시킨 서비스 지향 아키텍처(SOA: Services Oriented Architecture)를 말한다.
이로 인해, 그리드 컴퓨팅 기반의 응용프로그램들은 웹 서비스의 표준을 이용하여 분산되어 있는 이질적인 시스템의 리소스에 접근하고 이용할 수 있게 되었다. 이러한 OGSA에서 호스팅 환경 컴포넌트(210)는 프로그래밍 모델과 언어뿐만 아니라 그리드 서비스를 구현하는데 이용되는 개발 및 디버깅 툴을 정의하는 구체적인 실행 환경을 갖는다. 따라서, 개개인이 시용하는 일반 PC에서부터 메인 프레임 컴퓨터까지, 임베디드 운영체제에서부터 대형 운영체제까지 다양한 호스팅 환경에서 그리드 서비스를 만들 수 있다.
웹 서비스 컴포넌트(220)는 클라이언트와 서비스 간의 서비스 지향 아키텍처 프로토콜(SOAP:Service Oriented Architecture Protocol) 메시지 교환을 책임진다. 여기서, SOAP 메시지는 웹 서비스에서 메시지를 주고 받는 통신 규약을 말한다. 따라서, OGSA에서 웹 서비스는 그리드 응용프로그램과 그리드 서비스 간의 통신 메시지를 처리하여 주는 역할을 한다.
개방형 그리드 서비스 구조(OGSI:Open Grid Services Infrastructure) 컴포넌트(230)는 추상적으로 정의된 OGSA의 구현을 위한 구조이다. OGSI 컴포넌트(230)는 그리드 서비스의 생성, 등록, 검색, 소멸 등에 대한 기본적인 서비스들을 구체적으로 정의한다.
그리드 미들웨어(240)는 OGSI의 구조를 여러 호스팅 환경에서 구현하여 그리드 기반의 서비스를 쉽고 빠르게 만들 수 있게 해준다. 대표적인 그리드 미들웨어로는 Globus Toolkit 3, MS.NETGrid, OGSI.NET, OGSI::Lite, PyOGSI 등이 있다. 이러한 미들웨어는 그리드 컴퓨팅에 필요한 보안 기능, 시스템 관리 기능, 자원 관리 기능 등과 같은 부가적인 기능을 제공하기도 한다.
여기서, 그리드 웹 크롤러 미들웨어 서브시스템(150) 및 그리드 웹 크롤러 레지스트리 서브시스템(160)은 이러한 그리드 미들웨어(240)를 이용하여 웹 크롤링 서비스 및 웹 크롤러 글로벌 레지스트리 서비스를 제공한다. 이로 인해, 다양한 그리드 컴퓨팅 환경에서 그리드 웹 크롤러 미들웨어 서브시스템(150) 및 그리드 웹 크롤러 레지스트리 서브시스템(160)을 빠르고 쉽게 제공할 수 있게 된다.
그리고, 그리드 웹 크롤러 관리 서브시스템(140)은 그리드 응용프로그램으로서 분산된 그리드 컴퓨팅 노드들에서 그리드 서비스 형태로 제공되는 그리드 웹 크롤러 미들웨어 서브시스템(150) 및 그리드 웹 크롤러 레지스트리 서브시스템(160)을 이용하여 딥웹 혹은 서피스웹을 크롤링하여 인덱스를 생성하고, 생성된 인덱스를 저장하는 작업을 수행한다.
한편, 그리드 웹 크롤러 시스템(130)의 동작은 그리드 컴퓨팅 기반의 서피스웹 크롤링, 딥웹 검색 폼 찾기, 그리고 딥웹 크롤링과 같이 크게 세 가지로 나뉜다. 이하에서 세가지 동작에 대해 순차적으로 설명한다.
도 3은 본 발명의 실시예에 따라 서피스웹 크롤러 관리자가 서피스웹의 크롤링 작업을 관리하는 과정을 나타낸 흐름도이다.
도 3을 참조하면, 서피스웹 크롤러 관리자(143)는 크롤링해야 할 페이지들의 URL 주소 집합에서 크롤링해야 할 URL 주소를 선택한다(S302).
이때, 크롤링해야 할 페이지들의 URL 주소가 이미 모두 선택되었다면(S304-YES), 서피스웹 크롤링 작업을 종료한다.
그러나, 서피스웹 크롤러 관리자(143)는 URL 주소가 모두 선택되지 않았다면(S304-NO), 선택된 페이지의 URL 주소들을 가장 적은 비용으로 서피스웹 크롤링을 수행할 수 있는 서피스웹 크롤러 서비스 인스턴스를 생성하기 위해 “최소 비용의 서피스웹 크롤러 서비스 팩토리 선택”프로시저를 호출한다(S306).
이때, 서피스웹 크롤러 관리자(143)는 선택된 페이지의 URL을 서피스웹 크롤러 서비스 팩토리 선택 프로시저에게 함께 전달한다. 호출된 서피스웹 크롤러 서비스 팩토리 선택 프로시저는 서피스웹 크롤러 서비스 팩토리(151)를 리턴(return)한다. 리턴된 서피스웹 크롤러 서비스 팩토리(151)는 자신이 동적으로 생성하는 서피스웹 크롤러 서비스 인스턴스가 가장 적은 비용으로 서피스웹을 크롤링할 수 있도록 보장한다.
서피스웹 크롤러 관리자(143)는 S306 단계에서 선택된 최소 비용의 서피스웹 크롤러 서비스 팩토리(151)를 이용하여 서피스웹 크롤러 서비스(153)를 통해 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성한다(S308).
서피스웹 크롤러 관리자(143)는 생성된 서피스웹 크롤러 서비스 인스턴스를 이용하여 페이지의 인덱스를 생성하고, 페이지를 포함하고 있는 URL 주소들을 추출하는 작업을 수행한다(S310). 이러한 작업 후, 서피스웹 크롤러 관리자(143)는 더 이상 필요 없게 된 서피스웹 크롤러 서비스 인스턴스를 명시적으로 소멸시킨다.
서피스웹 크롤러 관리자(143)는 생성된 페이지 인덱스를 키워드/페이지 인덱스 저장소(141)에 저장한다(S312).
서피스웹 크롤러 관리자(143)는 해당 페이지가 검색 폼을 포함하고 있는지를 판단하고(S314), 해당 페이지가 검색 폼을 포함하고 있으면(S314-YES), 검색 폼을 포함하고 있는 페이지의 URL 주소를 딥웹 검색폼 저장소(142)에 저장한다(S316).
그리고, 서피스웹 크롤러 관리자(143)는 검색 폼을 포함하고 있는 페이지의 URL 주소를 딥웹 검색폼 저장소(142)에 저장한 후 S302 단계로 복귀하여 URL 주소 집합에서 크롤링해야 할 URL 주소를 선택하는 과정을 수행한다.
한편, 서피스웹 크롤러 관리자(143)는 해당 페이지가 검색 폼을 포함하고 있지 않으면(S314-NO), S302 단계로 복귀하여 URL 주소 집합에서 크롤링해야 할 URL 주소를 선택하는 과정을 수행한다.
전술한 바와 같이, 본 발명의 일 실시예에서 서피스웹 크롤러 관리자(143)가 서피스웹을 크롤링하는 과정은 서피스웹 크롤러 관리자(143)가 최소 비용의 서피스웹 크롤러 서비스 인스턴스를 이용하여 서피스웹을 크롤링하고, 그 결과로 생성된 페이지의 인덱스를 키워드/페이지 인덱스 저장소(141)에 저장하고, 검색 폼(form)을 포함한 페이지의 URL을 딥웹 검색폼 저장소(142)에 저장한다. 여기서, 그리드 컴퓨팅을 이용하거나 검색 폼을 포함한 페이지의 URL을 저장하는 부분을 제외한 서피스웹 크롤링 방법은 기존의 부분 분산 크롤링 방법을 사용할 수 있다.
도 4a는 본 발명의 실시예에 따라 "최소 비용의 서피스웹 크롤러 서비스 팩토리 선택" 프로시저를 나타낸 흐름도이다. 다시 말해, 최소 비용의 서피스웹 크롤러 서비스 인스턴스를 생성할 수 있는 서피스웹 크롤러 서비스 팩토리를 선택하는 과정을 나타낸 흐름도이다.
도 4a를 참조하면, 최소 비용의 서피스웹 크롤러 서비스 팩토리 선택 프로시저는 서피스웹 크롤링이 수행되어야 할 페이지의 URL 정보를 입력 받는다(S402).
서피스웹 크롤러 서비스 팩토리 선택 프로시저는 그리드 웹 크롤러 레지스트리 서브시스템(160)으로부터 사용 가능한 서피스웹 크롤러 서비스 팩토리들의 리스 트를 가져온다(S404).
서피스웹 크롤러 서비스 팩토리 선택 프로시저는 서피스웹 크롤러 서비스 팩토리 리스트에서 서피스웹 크롤러 서비스 팩토리를 선택한다(S406).
여기서, 서피스웹 크롤러 서비스 팩토리 선택 프로시저는 리스트에서 임의의 서피스웹 크롤러 서비스 팩토리가 모두 선택되었는지를 판단하고(S408), 이미 리스트의 모든 서피스웹 크롤러 서비스 팩토리를 선택하였다면 S410 단계를 수행하고, 그렇지 않으면 S412 단계를 수행한다.
서피스웹 크롤러 서비스 팩토리 선택 프로시저는 리스트에서 임의의 서피스웹 크롤러 서비스 팩토리가 모두 선택되면(S408-YES), 지정된 최소 비용 서피스웹 크롤러 서비스 팩토리를 호출자에게 리턴하고 종료한다(S410).
서피스웹 크롤러 서비스 팩토리 선택 프로시저는 이미 리스트의 모든 서피스웹 크롤러 서비스 팩토리가 선택되지 않은 경우(S408-NO), 임의의 서피스웹 크롤러 서비스 팩토리에서 제공하는 “서피스웹 크롤러 서비스 상태 검색”기능을 이용하여 해당 서피스웹 크롤러 서비스 팩토리가 생성할 서피스웹 크롤러 서비스의 상태 정보를 얻는다(S412).
여기서, 서피스웹 크롤러 서비스의 상태란 서피스웹 크롤러 서비스를 사용할 때 발생하는 비용, 딥웹 서피스웹 크롤러 서비스 노드와 웹 사이트 간의 통신 비용, 그리고 서피스웹 크롤러 서비스 노드의 부하(load) 정도를 포함한다.
이어, 서피스웹 크롤러 서비스 팩토리 선택 프로시저는 다음 수학식1을 이용하여 선택된 서피스웹 크롤러 서비스 팩토리가 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하여 크롤링 작업을 수행할 때 들어갈 비용을 계산한다(S414).
비용=α×Cost(Si) + β×CommunicationCost(Si) + γ×Capacity(Si)
단, α≥0, β≥0, γ≥0, α+β+γ=1
여기서, Si는 서피스웹 크롤러 서비스를 나타내고, Cost(Si)는 서피스웹 크롤러 서비스(Si)를 사용할 때 발생하는 비용을 나타낸다. 만약 이 비용이 한계값 m 보다 크면, 이 값은 항상 1이 되고, 그렇지 않으면 이 값은 (Si를 사용할 때 들어가는 비용) / m이 된다. CommunicationCost(Si)는 서피스웹 크롤러 서비스 Si와 웹 사이트 간의 통신 비용을 나타낸다. 만약 이 비용이 한계값 n 보다 크면, 이 값은 항상 1이 되고, 그렇지 않으면 이 값은 (Si와 웹사이트 간의 통신 비용) / n이 된다. Capacity(Si)는 서피스웹 크롤러 서비스 Si의 현재 부하 정도를 나타낸다. 이 값은 (Si의 현재 부하) / (Si의 최대 허용 부하)이다. α, β, 그리고 γ는 어떤 요소에 가중치를 둘 지를 결정한다. 가중치 α, β, γ와 한계값 m, n은 응용 프로그램의 특성을 고려하여 시스템 관리자 혹은 개발자가 결정할 수 있다.
서피스웹 크롤러 서비스 팩토리 선택 프로시저는 수학식1과 같이 계산된 비용이 지금까지 구한 비용보다 작은 경우(S416-YES), 가장 적은 비용을 갖는 서피스웹 크롤러 서비스 팩토리를 최소 비용 팩토리로 지정한다(S418).
그리고, 서피스웹 크롤러 서비스 팩토리 선택 프로시저는 S406 단계로 복귀하여 서피스웹 크롤러 서비스 팩토리 리스트에서 서피스웹 크롤러 서비스 팩토리를 선택하는 과정을 수행한다.
그러나, 전술한 바와 같이 계산된 비용이 지금까지 구한 비용보다 큰 경우(S416-NO), 서피스웹 크롤러 서비스 팩토리 선택 프로시저는 S406 단계로 복귀하여 서피스웹 크롤러 서비스 팩토리 리스트에서 서피스웹 크롤러 서비스 팩토리를 선택하는 과정을 반복한다.
전술한 바와 같이, 본 발명의 실시예에 따른 최소 비용의 서피스웹 크롤러 서비스 팩토리 선택 프로시저는 사용 가능한 서피스웹 크롤러 서비스 팩토리 리스트에서 적당한 서피스웹 크롤러 서비스 팩토리를 찾아준다. 이때, 선택된 서피스웹 크롤러 서비스 팩토리는 동적으로 생성한 서피스웹 크롤러 서비스 인스턴스가 최소 비용으로 서피스웹 크롤링할 수 있어야 한다는 조건을 만족해야 한다. 또한, 이때 생성된 서피스웹 크롤러 서비스 인스턴스는 그리드 컴퓨팅 기반의 일시적인(transient) 서비스이다.
도 4b는 본 발명의 실시예에 따라 "최소 비용의 딥웹 크롤러 서비스 팩토리 선택" 프로시저를 나타낸 흐름도이다. 다시 말해, 최소 비용의 딥웹 크롤러 서비스 인스턴스를 생성할 수 있는 딥웹 크롤러 서비스 팩토리를 선택하는 과정을 나타낸 흐름도이다.
도 4b를 참조하면, 최소 비용의 딥웹 크롤러 서비스 팩토리 선택 프로시저는 딥웹 크롤링이 수행되어야 할 검색 폼 정보를 입력 받는다(S420).
딥웹 크롤러 서비스 팩토리 선택 프로시저는 그리드 웹 크롤러 레지스트리 서브시스템(160)으로부터 사용 가능한 딥웹 크롤러 서비스 팩토리들의 리스트를 가 져온다(S422).
딥웹 크롤러 서비스 팩토리 선택 프로시저는 딥웹 크롤러 서비스 팩토리 리스트에서 딥웹 크롤러 서비스 팩토리를 선택한다(S424).
여기서, 딥웹 크롤러 서비스 팩토리 선택 프로시저는 리스트에서 임의의 딥웹 크롤러 서비스 팩토리가 모두 선택되었는지를 판단하고(S426), 이미 리스트의 모든 딥웹 크롤러 서비스 팩토리를 선택하였다면 S428 단계를 수행하고, 그렇지 않으면 S430 단계를 수행한다.
딥웹 크롤러 서비스 팩토리 선택 프로시저는 리스트에서 임의의 딥웹 크롤러 서비스 팩토리가 모두 선택되면(S426-YES), 지정된 최소 비용 딥웹 크롤러 서비스 팩토리를 호출자에게 리턴하고 종료한다(S428).
딥웹 크롤러 서비스 팩토리 선택 프로시저는 이미 리스트의 모든 딥웹 크롤러 서비스 팩토리가 선택되지 않은 경우(S426-NO), 임의의 딥웹 크롤러 서비스 팩토리에서 제공하는 “딥웹 크롤러 서비스 상태 검색”기능을 이용하여 해당 딥웹 크롤러 서비스 팩토리가 생성할 딥웹 크롤러 서비스의 상태 정보를 얻는다(S430).
여기서, 딥웹 크롤러 서비스의 상태란 딥웹 크롤러 서비스를 사용할 때 발생하는 비용, 딥웹 크롤러 서비스 노드와 웹 사이트 간의 통신 비용, 그리고 딥웹 크롤러 서비스 노드의 부하(load) 정도를 포함한다.
이어, 딥웹 크롤러 서비스 팩토리 선택 프로시저는 전술한 수학식1을 이용하여 선택된 딥웹 크롤러 서비스 팩토리가 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하여 크롤링 작업을 수행할 때 들어갈 비용을 계산한다(S432).
전술한 수학식1에서, α≥0, β≥0, γ≥0, α+β+γ=1 이고, Si는 딥웹 크롤러 서비스를 나타내며, Cost(Si)는 딥웹 크롤러 서비스(Si)를 사용할 때 발생하는 비용을 나타낸다. 만약 이 비용이 한계값 m 보다 크면, 이 값은 항상 1이 되고, 그렇지 않으면 이 값은 (Si를 사용할 때 들어가는 비용) / m이 된다. CommunicationCost(Si)는 딥웹 크롤러 서비스 Si와 웹 사이트 간의 통신 비용을 나타낸다. 만약 이 비용이 한계값 n 보다 크면, 이 값은 항상 1이 되고, 그렇지 않으면 이 값은 (Si와 웹사이트 간의 통신 비용) / n이 된다. Capacity(Si)는 딥웹 크롤러 서비스 Si의 현재 부하 정도를 나타낸다. 이 값은 (Si의 현재 부하) / (Si의 최대 허용 부하)이다. α, β, 그리고 γ는 어떤 요소에 가중치를 둘 지를 결정한다. 가중치 α, β, γ와 한계값 m, n은 응용 프로그램의 특성을 고려하여 시스템 관리자 혹은 개발자가 결정할 수 있다.
딥웹 크롤러 서비스 팩토리 선택 프로시저는 수학식1과 같이 계산된 비용이 지금까지 구한 비용보다 작은 경우(S434-YES), 가장 적은 비용을 갖는 딥웹 크롤러 서비스 팩토리를 최소 비용 팩토리로 지정한다(S436).
그리고, 딥웹 크롤러 서비스 팩토리 선택 프로시저는 S424 단계로 복귀하여 딥웹 크롤러 서비스 팩토리 리스트에서 딥웹 크롤러 서비스 팩토리를 선택하는 과정을 수행한다.
그러나, 전술한 바와 같이 계산된 비용이 지금까지 구한 비용보다 큰 경우(S434-NO), 딥웹 크롤러 서비스 팩토리 선택 프로시저는 S424 단계로 복귀하여 딥웹 크롤러 서비스 팩토리 리스트에서 딥웹 크롤러 서비스 팩토리를 선택하는 과 정을 반복한다.
전술한 바와 같이, 본 발명의 실시예에 따른 최소 비용의 딥웹 크롤러 서비스 팩토리 선택 프로시저는 사용 가능한 딥웹 크롤러 서비스 팩토리 리스트에서 적당한 딥웹 크롤러 서비스 팩토리를 찾아준다. 이때, 선택된 딥웹 크롤러 서비스 팩토리는 동적으로 생성한 딥웹 크롤러 서비스 인스턴스가 최소 비용으로 딥웹 크롤링할 수 있어야 한다는 조건을 만족해야 한다. 또한, 이때 생성된 딥웹 크롤러 서비스 인스턴스는 그리드 컴퓨팅 기반의 일시적인(transient) 서비스이다.
도 5는 본 발명의 실시예에 따라 딥웹 크롤러 관리자가 딥웹의 검색 폼을 찾아 그 정보를 저장하는 과정을 나타낸 흐름도이다.
도 5를 참조하면, 딥웹 크롤러 관리자(144)는 딥웹 검색폼 저장소(142)에서 검색 폼을 포함한 페이지를 선택한다(S502).
이러한 검색 폼을 포함한 페이지들은 서피스웹 크롤링 과정에서 이미 딥웹 검색 폼 저장소(142)에 저장되었다.
딥웹 크롤러 관리자(144)는 검색 폼을 포함한 페이지가 이미 모두 선택된 경우(S504-YES), 딥웹 검색 폼 찾기에 관한 프로시저를 종료하게 된다.
그러나, 검색 폼을 포함한 페이지가 모두 선택되지 않은 경우(S504-NO), 딥웹 크롤러 관리자(144)는 선택된 페이지에서 딥웹 검색 폼을 가장 적은 비용으로 찾아줄 수 있는 딥웹 크롤러 서비스 인스턴스를 생성하기 위해 “최소 비용의 딥웹 크롤러 서비스 팩토리 선택” 프로시저를 호출한다(S506).
이때, 딥웹 크롤러 관리자(144)는 선택된 페이지의 URL을 딥웹 크롤러 서비스 팩토리 선택 프로시저로 함께 전달한다.
호출된 딥웹 크롤러 서비스 팩토리 선택 프로시저는 가장 적은 비용으로 딥웹 검색 폼을 찾을 수 있는 딥웹 크롤러 서비스 인스턴스를 동적으로 생성할 수 있는 딥웹 크롤러 서비스 팩토리(152)를 리턴한다.
딥웹 크롤러 관리자(144)는 선택된 최소 비용의 딥웹 크롤러 서비스 팩토리를 이용하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성한다(S508).
딥웹 크롤러 관리자(144)는 생성된 딥웹 크롤러 서비스의 “딥웹 검색 폼 정보 추출”프로시저를 호출하여 딥웹 검색 폼의 정보를 추출한다(S510).
딥웹 크롤러 관리자(144)는 딥웹 검색 폼 정보를 추출한 후, 더 이상 필요 없게 된 딥웹 크롤러 서비스 인스턴스를 명시적으로 소멸시키고, 추출된 딥웹 검색 폼 정보를 딥웹 검색 폼 저장소(142)에 저장한다(S512).
그리고, 딥웹 크롤러 관리자(144)는 S502 단계로 복귀하여 딥웹 검색폼 저장소(142)로부터 검색 폼을 포함한 페이지를 선택하는 과정을 수행한다.
전술한 바와 같이, 본 발명의 실시예에 따른 딥웹 크롤러 관리자(144)는 최소 비용의 딥웹 크롤러 서비스 인스턴스를 생성하여 딥웹 검색 폼의 정보를 추출하고, 추출된 그 정보를 딥웹 검색폼 저장소(142)에 저장하게 되는 것이다.
도 6은 본 발명의 실시예에 따라 "딥웹 검색 폼 정보 추출" 프로시저를 나타낸 흐름도이다. 다시 말해, 딥웹 크롤러 서비스가 딥웹 검색 폼 정보를 추출하는 과정을 나타낸 흐름도이다.
도 6을 참조하면, 딥웹 크롤러 서비스(154)는 호출자로부터 페이지의 URL 정보를 전달받는다(S602).
딥웹 크롤러 서비스(154)는 호출자로부터 전달받은 페이지의 URL을 이용하여 해당 페이지에 접근하여 검색 폼들을 추출한다(S604).
딥웹 크롤러 서비스(154)는 페이지에서 이미 모든 검색 폼들이 추출되었는지를 판단하여(S606), 검색 폼들이 모두 추출되었으면(S606-YES) 임시 저장소에 저장된 검색폼들의 정보를 호출자에게 리턴한다(S608).
딥웹 크롤러 서비스(154)는 검색 폼들이 모두 추출되지 않은 경우(S606-NO), 추출된 검색 폼이 검색폼인지 입력폼인지를 결정한다(S610).
이때, 딥웹 크롤러 서비스(154)는 이러한 결정을 하기 위해 Barbosa, L. and Freire, J., “Combining Classifiers to Identify Online Databases”, In Proceedings of International World Wide Web Conferences, 2007에서 제안한 검색 폼 구별 방법을 사용한다.
만약 추출된 폼이 검색 폼이라면(S610-YES), 딥웹 크롤러 서비스(154)는 해당 검색 폼의 정보를 추출하여 임시 저장소에 저장한다(S612).
그리고, 딥웹 크롤러 서비스(154)는 S604 단계로 복귀하여 전달받은 페이지의 URL을 이용하여 해당 페이지에 접근하여 폼을 추출하는 과정을 수행한다.
그러나, 추출한 폼들이 검색폼이 아니고 입력폼에 해당하는 경우에(S610-NO), 딥웹 크롤러 서비스(154)는 S604 단계로 복귀하여 전달받은 페이지의 URL을 이용하여 해당 페이지에 접근하여 폼을 추출하는 과정을 수행한다.
전술한 바와 같이, 본 발명의 실시예에 따른 딥웹 크롤러 서비스(154)는 일시적인(transient) 그리드 컴퓨팅 기반의 딥웹 크롤러 서비스는 주어진 페이지에서 검색 폼들만을 골라 그 정보를 추출하고 호출자에게 추출된 정보를 리턴한다.
도 7은 본 발명의 실시예에 따라 딥웹 크롤러 관리자가 딥웹 크롤링 작업을 관리하는 과정을 나타낸 흐름도이다.
도 7을 참조하면, 딥웹 크롤러 관리자(144)는 딥웹 검색폼 저장소(142)에서 적당한 딥웹 검색폼을 선택한다(S702).
이때, 선택된 딥웹 검색 폼은 검색 폼들의 딥웹 크롤링 우선 순위를 나타내는 다음 수학식2의 값이 가장 커야하는 조건을 만족해야 한다.
이 조건은 검색폼의 사용 빈도수와, 최근 일정 시간 동안 검색폼이 얼마나 오랫동안 방문되지 않았는지를 나타내는 최근방문지수 및 사용 빈도수와 최근방문지수의 값들 중 어떤 값에 더 비중을 둘 지를 결정하는 가중치의 조합으로 이루어진다.
α×Popularity(SFi) + (1-α)×LeastRecentlyVisited(SFi)
단, 0≤α≤1.
여기서, Popularity(SFi)는 검색 폼 SFi의 사용 빈도수를 나타낸다. 이 값은 최근 t 시간 안에 (SFi의 사용 회수)/(모든 검색 폼들 중 최대 사용 회수)이다. 만 약 모든 검색 폼들 중 최대 사용 회수가 0이라면 Popularity(SFi)는 0이 된다. LeastRecentlyVisited(SFi)는 최근 s 시간 동안 검색 폼 SFi가 얼마나 오랫동안 방문되지 않았는지를 나타낸다. 만약 최근 s 시간 동안 크롤러가 해당 검색 폼을 한번도 방문하지 않았다면 이 값은 1이 되고, 그렇지 않다면 이 값은 (현재 시간 - SFi의 최근 방문 시간)/s가 된다. α는 Popularity(SFi)와 LeastRecentlyVisited(SFi) 값들 중 어떤 값에 더 비중을 둘 지를 결정하는 가중치이다. α가 커지면 Popularity(SFi)의 값이 검색 폼들의 우선 순위에 더 영향을 주고, 그 반대의 경우에는 LeastRecentlyVisited(SFi)가 더 영향을 주게 된다. 시간 t, s와 α는 응용프로그램의 특성에 따라 시스템 관리자 혹은 개발자에 의해 결정될 수 있다.
딥웹 크롤러 관리자(144)는 크롤링해야 할 딥웹 검색 폼을 모두 선택하였다면(S704-YES), 딥웹 크롤링 프로시저를 종료하게 된다.
그렇지 않다면(S704-NO), 딥웹 크롤러 관리자(144)는 선택된 딥웹 검색 폼에서 가장 적은 비용으로 딥웹 크롤링을 수행할 수 있는 딥웹 크롤러 서비스 인스턴스를 동적으로 생성할 수 있는 딥웹 크롤러 서비스 팩토리를 선택하기 위해 최소 비용의 “딥웹 크롤러 서비스 팩토리 선택” 프로시저를 호출한다(S706).
이때, 딥웹 크롤러 관리자(144)는 검색 폼 정보를 “딥웹 크롤러 서비스 팩토리 선택” 프로시저에게 함께 전달한다. 호출된 “딥웹 크롤러 서비스 팩토리 선택” 프로시저는 가장 적은 비용으로 딥웹 크롤링을 수행할 수 있는 딥웹 크롤러 서비스 인스턴스를 동적으로 생성할 수 있는 딥웹 크롤러 서비스 팩토리(152)를 리 턴한다.
딥웹 크롤러 관리자(144)는 선택된 최소 비용의 딥웹 크롤러 서비스 팩토리를 이용하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성한다(S708).
딥웹 크롤러 관리자(144)는 생성된 딥웹 크롤러 서비스의 딥웹 크롤링 프로시저를 호출하여 딥웹 페이지의 인덱스를 생성한다(S710).
딥웹 크롤링 후, 딥웹 크롤러 관리자(144)는 더 이상 필요 없게 된 딥웹 크롤러 서비스 인스턴스를 명시적으로 소멸시킨다.
딥웹 크롤러 관리자(144)는 생성된 딥웹 페이지의 인덱스를 키워드/페이지 인덱스 저장소(141)에 저장한다(S712).
그리고, 딥웹 크롤러 관리자(144)는 S702 단계로 복귀하여 딥웹 검색폼 저장소(142)로부터 적당한 딥웹 검색폼을 선택하는 과정을 수행한다.
전술한 바와 같이, 본 발명의 실시예에 따른 딥웹 크롤러 관리자(144)는 최소 비용의 그리드 서비스 기반의 딥웹 크롤러 서비스 인스턴스를 생성하여 딥웹 크롤링 작업을 지시하고, 그 결과로 생성된 딥웹 페이지의 인덱스를 딥웹 검색폼 저장소(142)에 저장한다.
도 8은 본 발명의 실시예에 따라 딥웹 크롤러 서비스가 딥웹 크롤링을 수행하는 과정을 나타낸 흐름도이다.
도 8을 참조하면, 딥웹 크롤러 서비스(154)는 사용자로부터 검색 폼 정보를 입력받는다(S802).
이어, 딥웹 크롤러 서비스(154)는 입력받은 검색 폼 정보를 바탕으로 해당 딥웹의 도메인을 결정하고 이에 알맞은 질의 집합을 선택한다(S804).
딥웹의 도메인을 결정하는 기술은 “키워드 검색 기반 도메인 결정 기술”(Ipeirotis, P.G., Gravano, L. and Sahami, M., “Probe, Count, and Classify: Categorizing Hidden-Web Databases”, In Proceedings of ACM SIGMOD Conference, 2001 참고)과 “검색 폼 속성 기반 도메인 결정 기술”(Barbosa, L., Freire, J., and Silva, A., “Organizing Hidden-Web Databases by Clustering Visible Web Documents”, In Proceedings of International Conference on Data Engineering, 2007 참고)이 있다.
키워드 검색 기반 도메인 결정 기술은 딥웹의 도메인을 결정하기 위해 도메인 키워드를 사용한다. 이 기술을 사용하기 위해서는 도메인 키워드 리스트를 미리 만들어 놓는다. 예를 들어, 스포츠 도메인의 경우 야구, 농구, ESPN, NBA 등이 도메인 키워드 리스트에 속할 수 있으며, 도서 도메인의 경우 소설, 시, 해리포터 등이 도메인 키워드 리스트에 속할 수 있다. 이러한 도메인 키워드를 검색 폼에 입력하여 도메인 키워드 그룹 별 결과의 개수를 센다. 각 그룹별 결과의 개수를 기반으로 해당 딥웹의 도메인을 결정한다. 여기서, 가장 많은 결과를 만들어 내는 도메인 키워드 리스트의 도메인을 해당 딥웹의 도메인으로 결정한다.
검색 폼 기반 도메인 결정 기술은 딥웹의 도메인을 결정하기 위해 검색 폼의 속성을 이용한다. 예를 들면, 도서 도메인의 경우, 저자, 제목, ISBN 등을 검색 폼의 속성으로 가질 수 있다. 이 기술을 사용하기 위해서는 검색 폼의 속성으로 미리 훈련된 분류자(classifier)를 만들어야 한다. 이러한 분류자를 이용하여 검색 폼을 포함하는 딥웹의 적당한 도메인을 결정할 수 있다.
키워드 검색 기반 도메인 결정 기술은 일반적으로 좋은 결과를 만들어내지만, 검색을 위한 시간이 부가적으로 더 들어간다. 검색 폼 기반 도메인 결정 기술은 빠르게 결과를 만들어 내지만, 때때로 만족스럽지 않은 결과를 만들 수도 있다. 본 발명에서는 응용프로그램의 특성을 고려하여 시스템 관리자 혹은 개발자가 적당한 기술을 선택하여 도메인을 결정하는데 이용할 수 있다.
딥웹 크롤러 서비스(154)는 결정된 도메인에서 가장 적당한 질의를 선택하고 선택된 질의를 검색 폼에 입력한다(S806).
이때, 질의 집합에서 가장 많은 결과를 만들어 낼 가능성이 높은 질의를 선택하기 위해 Wu, P., Wen, J.R., Liu, H., and Ma, W.Y., “Query Selection Techniques for Efficient Crawling of Structured Web Sources”, In Proceedings of International Conference on Data Engineering, 2006의 기술을 이용할 수 있다.
딥웹 크롤러 서비스(154)는 질의 입력 결과로 동적으로 생성된 결과 페이지를 새로운 결과 집합에 추가한다(S808).
딥웹 크롤러 서비스(154)는 새로운 결과 집합의 페이지들의 키워드를 추출하여 페이지에 대한 인덱스를 생성하고 생성된 페이지 인덱스를 페이지 인덱스 집합에 추가하거나 기존 페이지 인덱스를 갱신한다(S810).
딥웹 크롤러 서비스(154)는 추출된 키워드들 중 도메인 키워드에 해당하는 키워드들을 기존 질의 집합에 추가한다(S812).
딥웹 크롤러 서비스(154)는 지금까지 검색된 페이지들이 포함된 결과 집합과 새로운 결과 집합의 교집합을 계산한다(S814).
딥웹 크롤러 서비스(154)는 계산된 교집합과 새로운 결과 집합의 차집합을 계산한다(S816).
딥웹 크롤러 서비스(154)는 새로운 결과 집합을 결과 집합에 추가한다(S818).
딥웹 크롤러 서비스(154)는 계산된 차집합의 원소의 개수가 N보다 큰가를 판단하고(S820), 차집합의 원소의 갯수가 N보다 크면(S820-YES) S806 단계로 복귀하여 결정된 도메인에서 가장 적당한 질의를 선택하고 선택된 질의를 검색 폼에 입력하는 과정을 수행한다. 이때, N은 응용프로그램의 특성을 고려하여 시스템 관리자 혹은 개발자가 정할 수 있다.
그러나, 딥웹 크롤러 서비스(154)는 차집합의 원소의 갯수가 N보다 크지 않으면(S820-NO), 페이지 인덱스 집합을 호출자에게 리턴하고 종료한다(S822).
전술한 바와 같이, 본 발명의 실시예에 따른 딥웹 크롤러 서비스(154)는 일시적인(transient) 그리드 서비스로서 입력 받은 검색 폼 정보를 바탕으로 딥웹의 도메인을 결정하고, 해당 도메인에 적합한 질의를 선택한다. 그리고 나서, 딥웹 크롤러 서비스(154)는 선택된 질의를 검색 폼에 입력하여 딥웹 후단의 데이터베이스로부터 정보를 추출하고, 그 결과 동적으로 생성된 페이지의 인덱스를 만들어 호출자에게 리턴하게 된다.
이상에서 설명한 바와 같이 본 발명에 의하면, 딥웹 사이트의 지리적 위치와 서피스웹 혹은 딥웹 크롤러 서비스를 사용할 때 발생하는 비용, 서피스웹 혹은 딥웹 크롤러 서비스 노드와 웹 사이트 간의 통신 비용, 그리고 서피스웹 혹은 딥웹 크롤러 서비스 노드의 부하(load) 정도를 고려하여 가장 적은 비용이 드는 그리드 컴퓨팅 자원을 선택하고, 선택된 컴퓨팅 자원을 이용하여 해당 웹 페이지의 검색 폼을 찾아서, 웹 페이지 및 후단 데이터베이스와 관련된 질의를 선택하고 해당 검색 폼에 선택된 질의를 입력하여, 검색 결과로 생성된 동적 웹 페이지의 인덱스를 생성하며, 생성된 인덱스와 웹 페이지의 매핑 정보를 저장하도록 하는, 그리드 컴퓨팅 기반의 딥웹 크롤러 시스템 및 그 방법을 실현할 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명은 개방형 그리드 서비스 아키텍처(OGSA: Open Grid Services Architecture) 기반의 딥웹 크롤링 시스템 및 방법에 적용할 수 있다.
또한, 그리드 컴퓨팅 기술의 응용이나 그리드 기반의 크롤러 시스템에 적용할 수 있으며, 그리드 컴퓨팅 기반의 딥웹이나 서피스웹 크롤러 서비스를 제공하는 시스템 및 방법에 적용할 수 있다.
도 1은 본 발명의 일 실시예에 따른 그리드 웹 크롤러 시스템의 컴포넌트들을 나타낸 구성도,
도 2는 개방형 그리드 서비스 아키텍처(OGSA)에서의 그리드 웹크롤러 시스템의 컴포넌트들의 위치를 나타내는 블럭 다이어그램,
도 3은 본 발명의 일 실시예에 따라 서피스웹 크롤러 관리자가 서피스웹의 크롤링 작업을 관리하는 과정을 나타낸 흐름도,
도 4는 본 발명의 실시예에 따라 "최소 비용의 서피스웹 혹은 딥웹 크롤러 서비스 팩토리 선택" 프로시저를 나타낸 흐름도,
도 5는 본 발명의 일 실시예에 따라 딥웹 크롤러 관리자가 딥웹의 검색 폼을 찾아 그 정보를 저장하는 과정을 나타낸 흐름도,
도 6은 본 발명의 실시예에 따라 "딥웹 검색 폼 정보 추출" 프로시저를 나타낸 흐름도,
도 7은 본 발명의 일 실시예에 따라 딥웹 크롤러 관리자가 딥웹의 크롤링 작업을 관리하는 과정을 나타낸 흐름도, 그리고
도 8은 본 발명의 일 실시예에 따라 딥웹 크롤러 서비스가 딥웹 크롤링을 수행하는 과정을 나타낸 흐름도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
100 : 통신 링크 110 : 딥웹 사이트
120 : 서피스웹 사이트 130 : 그리드 웹 크롤러 시스템
140 : 그리드 웹 크롤러 관리 서브 시스템
141 : 키워드/페이지 인덱스 저장소 142 : 딥웹 검색폼 저장소
143 : 서피스웹 크롤러 관리자 144 : 딥웹 크롤러 관리자
150 : 그리드 웹 크롤러 미들웨어 서브 시스템
151 : 서피스웹 크롤러 서비스 팩토리
152 : 딥웹 크롤러 서비스 팩토리
153 : 서피스웹 크롤러 서비스 154 : 딥웹 크롤러 서비스
160 : 그리드 웹 크롤러 레지스트리 서브 시스템
210 : 호스팅 환경 컴포넌트 220 : 웹 서비스 컴포넌트
230 : OGSI 컴포넌트 240 : 그리드 미들웨어

Claims (32)

  1. (a) 크롤링할 웹 페이지가 서피스웹인 경우, 해당 웹 페이지를 서피스웹 크롤링하기 위해 서피스웹 크롤러 서비스 팩토리를 호출하여 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 이를 통해 상기 웹 페이지의 인덱스를 생성하는 서피스웹 크롤링 단계;
    (b) 상기 웹 페이지가 딥웹인 경우, 해당 웹 페이지에서 딥웹 검색폼을 찾기 위한 딥웹 크롤러 서비스 팩토리를 호출하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 생성된 상기 딥웹 크롤러 서비스 인스턴스에서 딥웹 검색폼을 추출하는 검색폼 추출 단계; 및
    (c) 상기 딥웹 검색폼에 질의를 입력해서 결과 페이지를 생성하며, 상기 결과 페이지의 키워드를 추출하여 페이지의 인덱스를 생성해 호출자에게 리턴하는 딥웹 크롤링 단계;
    를 포함하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  2. 제 1 항에 있어서,
    상기 서피스웹 크롤링 단계는,
    상기 서피스웹 크롤링이 수행되어야 할 페이지 주소를 입력받는 과정;
    사용 가능한 서피스웹 크롤러 서비스 팩토리의 리스트를 가져오는 과정;
    상기 리스트에서 임의의 서피스웹 크롤러 서비스 팩토리를 선택하는 과정;
    상기 서피스웹 크롤러 서비스 팩토리에서 제공하는 서피스웹 크롤러 서비스 상태 검색 기능을 이용하여 서피스웹 크롤러 서비스의 상태 정보를 얻는 과정;
    상기 상태 정보를 근거로 상기 서피스웹 크롤러 서비스를 동적으로 생성하여 크롤링 작업에 들어갈 비용을 계산하는 과정; 및
    가장 적은 비용을 갖는 서피스웹 크롤러 서비스 팩토리를 최소 비용 팩토리로 지정하는 과정;
    을 포함하는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  3. 제 2 항에 있어서,
    상기 서피스웹 크롤러 서비스의 상태 정보는,
    상기 서피스웹 크롤러 서비스를 사용할 때 발생하는 비용, 서피스웹 크롤러 서비스 노드와 웹 사이트 간의 통신 비용, 서피스웹 크롤러 서비스 노드의 부하(load)를 포함하는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  4. 제 2 항에 있어서,
    상기 크롤링 작업에 들어갈 비용은,
    비용=α×Cost(Si) + β×CommunicationCost(Si) + γ×Capacity(Si)
    의 수학식으로 계산하되, 상기 수학식중 α, β, γ는 α≥0, β≥0, γ≥0, α+β+γ=1의 조건을 만족하는 가중치, Si는 서피스웹 크롤러 서비스, Cost(Si)는 서피스웹 크롤러 서비스(Si)를 사용할 때 발생하는 비용, CommunicationCost(Si)는 서피스웹 크롤러 서비스 Si와 웹 사이트 간의 통신 비용, Capacity(Si)는 서피스웹 크롤러 서비스 Si의 현재 부하 정도인 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  5. 제 1 항에 있어서,
    상기 검색폼 추출 단계는,
    생성된 상기 딥웹 크롤러 서비스의 딥웹 검색폼 정보 추출 프로시저를 호출하여 딥웹 검색폼 정보를 추출하고, 추출된 상기 딥웹 검색폼 정보를 임시로 저장하며, 임시로 저장된 상기 딥웹 검색폼 정보를 호출자에게 리턴하는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  6. 제 1 항에 있어서,
    상기 검색폼 추출 단계는,
    상기 딥웹 검색폼을 선택하고, 선택된 상기 딥웹 검색폼에서 상기 딥웹 크롤러 서비스 팩토리를 호출하며, 상기 딥웹 크롤러 서비스 팩토리를 이용하여 상기 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 생성된 상기 딥웹 크롤러 서비스 인스턴스의 딥웹 크롤링 프로시저를 호출하여 상기 웹 페이지의 인덱스를 생성해 저장하는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  7. 제 1 항에 있어서,
    상기 딥웹 크롤링 단계는,
    상기 딥웹 검색폼의 정보를 입력받고, 상기 딥웹 검색폼의 정보를 바탕으로 딥웹의 도메인을 결정하며, 결정된 상기 도메인에서 임의의 질의를 선택하고, 선택된 상기 질의를 상기 딥웹 검색폼에 입력하며,
    상기 질의를 상기 딥웹 검색폼에 입력한 결과로 생성된 결과 페이지를 제1 결과 집합에 추가하고, 상기 제1 결과 집합의 페이지들의 키워드를 추출하여 페이지의 인덱스를 생성하여 호출자에게 리턴하는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  8. 제 7 항에 있어서,
    추출된 상기 키워드 중 도메인 키워드에 해당하는 키워드들을 질의 집합에 추가하는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  9. 제 7 항에 있어서,
    상기 제1 결과 집합과, 검색된 페이지들이 포함된 제2 결과 집합의 교집합을 계산하고, 계산된 상기 교집합과 상기 제1 결과 집합의 차집합을 계산하며, 상기 제1 결과 집합을 상기 제2 결과 집합에 추가하는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  10. 제 1 항에 있어서,
    상기 딥웹 검색폼은, 검색폼들의 딥웹 크롤링 우선 순위를 나타내는 조건을 만족하며,
    상기 조건은 상기 검색폼의 사용 빈도수와, 최근 일정 시간 동안 검색폼이 얼마나 오랫동안 방문되지 않았는지를 나타내는 최근방문지수 및 상기 사용 빈도수와 상기 최근방문지수의 값들 중 어떤 값에 더 비중을 둘 지를 결정하는 가중치의 조합으로 이루어지는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  11. 제 10 항에 있어서,
    상기 딥웹 검색폼은,
    검색폼들의 딥웹 크롤링 우선 순위를 나타내는 조건 α×Popularity(SFi) + (1-α)×LeastRecentlyVisited(SFi)를 만족하며, 여기서 α는 Popularity(SFi)와 LeastRecentlyVisited(SFi) 값들 중 어떤 값에 더 비중을 둘 지를 결정하는 가중치이고 0≤α≤1이며, Popularity(SFi)는 검색 폼 SFi의 사용 빈도수를 나타내고, LeastRecentlyVisited(SFi)는 최근 s 시간 동안 검색 폼 SFi가 얼마나 오랫동안 방문되지 않았는지를 나타내는 것을 특징으로 하는 그리드 컴퓨팅 기반 웹 크롤링 방법.
  12. (a) 웹 주소 집합에서 크롤링 해야 할 페이지의 주소를 선택하는 단계;
    (b) 상기 선택된 페이지의 주소를 서피스웹 크롤링하기 위한 서피스웹 크롤러 서비스 팩토리를 호출하고, 상기 호출된 서피스웹 크롤러 서비스 팩토리를 이용하여 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하는 단계;
    (c) 상기 생성된 서피스웹 크롤러 서비스 인스턴스를 이용하여 상기 선택된 페이지의 인덱스를 생성하는 단계; 및
    (d) 상기 생성된 페이지의 인덱스를 저장하는 단계;
    를 포함하는 그리드 컴퓨팅 기반 서피스웹 크롤링 방법.
  13. 제 12 항에 있어서,
    (e) 상기 페이지가 검색폼을 포함하는 경우에 상기 페이지의 주소를 저장하 는 단계;
    를 추가로 포함하는 것을 특징으로 하는 그리드 컴퓨팅 기반 서피스웹 크롤링 방법.
  14. 제 12 항에 있어서,
    상기 (b) 단계는,
    서피스웹 크롤링이 수행되어야 할 페이지의 주소를 입력받는 과정;
    사용 가능한 서피스웹 크롤러 서비스 팩토리 리스트를 가져오는 과정;
    상기 리스트에서 임의의 서피스웹 크롤러 서비스 팩토리를 선택하는 과정;
    상기 서피스웹 크롤러 서비스 팩토리에서 제공하는 서피스웹 크롤러 서비스 상태 검색 기능을 이용하여 서피스웹 크롤러 서비스의 상태 정보를 얻는 과정;
    상기 상태 정보를 근거로 상기 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하여, 생성된 인스턴스로 크롤링 작업에 들어갈 때 발생하는 비용을 계산하는 과정; 및
    가장 적은 비용을 갖는 서피스웹 크롤러 서비스 팩토리를 최소 비용 팩토리로 지정하는 과정;
    을 포함하는 것을 특징으로 하는 그리드 컴퓨팅 기반 서피스웹 크롤링 방법.
  15. 제 14 항에 있어서,
    상기 서피스웹 크롤러 서비스의 상태 정보는,
    상기 서피스웹 크롤러 서비스를 사용할 때 발생하는 비용, 서피스웹 크롤러 서비스 노드와 웹 사이트 간의 통신 비용, 서피스웹 크롤러 서비스 노드의 부하(load)를 포함하는 것을 특징으로 하는 그리드 컴퓨팅 기반 서피스웹 크롤링 방법.
  16. 제 14 항에 있어서,
    상기 크롤링 작업에 들어갈 때 발생하는 비용은
    비용=α×Cost(Si) + β×CommunicationCost(Si) + γ×Capacity(Si)
    의 수학식으로 계산하되, 상기 수학식중 α, β, γ는 α≥0, β≥0, γ≥0, α+β+γ=1의 조건을 만족하는 가중치, Si는 서피스웹 크롤러 서비스, Cost(Si)는 서피스웹 크롤러 서비스(Si)를 사용할 때 발생하는 비용, CommunicationCost(Si)는 서피스웹 크롤러 서비스 Si와 웹 사이트 간의 통신 비용, Capacity(Si)는 서피스웹 크롤러 서비스 Si의 현재 부하 정도인 것을 특징으로 하는 그리드 컴퓨팅 기반 서피스 웹 크롤링 방법.
  17. (a) 검색폼이 포함된 페이지를 선택하는 단계;
    (b) 선택된 상기 페이지에서 딥웹 검색폼을 찾아줄 수 있는 딥웹 크롤러 서비스 인스턴스를 생성하기 위해 딥웹 크롤러 서비스 팩토리를 호출하는 단계;
    (c) 호출된 상기 딥웹 크롤러 서비스 팩토리를 이용하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하는 단계;
    (d) 생성된 상기 딥웹 크롤러 서비스 인스턴스의 딥웹 검색폼 정보 추출 프로시저를 호출하여 상기 딥웹 검색폼 정보를 추출하는 단계; 및
    (e) 검색된 상기 딥웹 검색폼 정보를 저장하는 단계;
    를 포함하는 그리드 컴퓨팅 기반 딥웹 크롤링 방법.
  18. 제 17 항에 있어서,
    상기 (d) 단계는,
    상기 페이지에 접근하여 검색폼을 추출하는 과정;
    추출된 상기 검색폼을 저장하는 과정; 및
    저장된 상기 검색폼들의 정보를 호출자에게 리턴하는 과정;
    을 포함하는 것을 특징으로 하는 그리드 컴퓨팅 기반 딥웹 크롤링 방법.
  19. (a) 딥웹 검색폼을 선택하는 단계;
    (b) 선택된 상기 딥웹 검색폼에서 딥웹 크롤링을 수행하기 위해 딥웹 크롤러 서비스 팩토리를 호출하는 단계;
    (c) 상기 딥웹 크롤러 서비스 팩토리를 이용하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하는 단계;
    (d) 생성된 상기 딥웹 크롤러 서비스 인스턴스의 딥웹 크롤링 프로시저를 호출하여 딥웹 페이지의 인덱스를 생성하는 단계; 및
    (e) 생성된 상기 딥웹 페이지의 인덱스를 저장하는 단계;
    를 포함하는 그리드 컴퓨팅 기반 딥웹 크롤링 방법.
  20. 제 19 항에 있어서,
    상기 딥웹 검색폼은,
    검색폼들의 딥웹 크롤링 우선 순위를 나타내는 조건 α×Popularity(SFi) + (1-α)×LeastRecentlyVisited(SFi)를 만족하며, 여기서 α는 Popularity(SFi)와 LeastRecentlyVisited(SFi) 값들 중 어떤 값에 더 비중을 둘 지를 결정하는 가중치이고 0≤α≤1이며, Popularity(SFi)는 검색 폼 SFi의 사용 빈도수를 나타내고, LeastRecentlyVisited(SFi)는 최근 s 시간 동안 검색 폼 SFi가 얼마나 오랫동안 방문되지 않았는지를 나타내는 것을 특징으로 하는 그리드 컴퓨팅 기반 딥웹 크롤링 방법.
  21. (a) 검색폼 정보를 입력 받는 단계;
    (b) 상기 검색폼 정보를 바탕으로 해당 딥웹의 도메인을 결정하는 단계;
    (c) 결정된 상기 도메인에서 임의의 질의를 선택하고, 선택된 상기 질의를 상기 검색폼에 입력하는 단계;
    (d) 상기 질의 입력 결과로 생성된 결과 페이지를 제1 결과 집합에 추가하는 단계;
    (e) 상기 제1 결과 집합의 페이지들의 키워드를 추출하여 페이지의 인덱스를 생성하는 단계;
    (f) 생성한 상기 페이지의 인덱스를 호출자에게 리턴하는 단계;
    를 포함하는 그리드 컴퓨팅 기반 딥웹 크롤링 방법.
  22. 제 21 항에 있어서,
    상기 (e) 단계는, 추출된 키워드 중 도메인 키워드에 해당하는 키워드들을 질의 집합에 추가하는 것을 특징으로 하는 그리드 컴퓨팅 기반 딥웹 크롤링 방법.
  23. 제 21 항에 있어서,
    상기 (e) 단계는,
    검색된 페이지들이 포함된 제2 결과 집합과 상기 제1 결과 집합의 교집합을 계산하는 과정;
    계산된 상기 교집합과 상기 제1 결과 집합의 차집합을 계산하는 과정; 및
    상기 제1 결과 집합을 상기 제2 결과 집합에 추가하는 과정;
    을 포함하는 것을 특징으로 하는 그리드 컴퓨팅 기반 딥웹 크롤링 방법.
  24. 딥웹 및 서피스웹의 크롤링 작업을 분산된 그리드 컴퓨팅 노드들에게 할당하고, 크롤링 작업 후 생성되는 웹 페이지들의 인덱스(Index)를 저장하고 관리하는 그리드 웹 크롤러 관리 서브시스템;
    웹 크롤링을 위한 그리드 기반의 미들웨어로서, 상기 그리드 웹 크롤러 관리 서브시스템으로부터 할당받은 크롤링 작업을 실제 그리드 노드들에서 수행하는 그리드 웹 크롤러 미들웨어 서브시스템; 및
    서피스웹 크롤러 서비스 팩토리 및 딥웹 크롤러 서비스 팩토리의 등록 및 검색 서비스를 제공하는 그리드 웹 크롤러 레지스트리 서브시스템;
    을 포함하는 그리드 웹 크롤러 시스템.
  25. 제 24 항에 있어서,
    상기 그리드 웹 크롤러 관리 서브시스템은,
    크롤링된 페이지들로부터 추출된 키워드와 해당 페이지 간의 매핑 정보를 저장하는 키워드/페이지 인덱스 저장소;
    딥웹 사이트의 검색 폼 정보와 폼을 포함한 페이지를 저장하는 딥웹 검색 폼 저장소;
    서피스웹 크롤링 작업을 그리드 컴퓨팅 자원들에게 할당하고 관리하는 서피스웹 크롤러 관리자; 및
    딥웹의 검색 폼을 찾는 작업 및 실제 딥웹을 크롤링하는 작업을 관리하는 딥웹 크롤러 관리자;
    를 포함하는 것을 특징으로 하는 그리드 웹 크롤러 시스템.
  26. 제 25 항에 있어서,
    상기 서피스웹 크롤러 관리자는, 서피스웹 크롤링 작업이 끝난 후 생성되는 정적 페이지들의 인덱스를 상기 키워드/페이지 인덱스 저장소에 저장하는 것을 특징으로 하는 그리드 웹 크롤러 시스템.
  27. 제 25 항에 있어서,
    상기 딥웹 크롤러 관리자는, 딥웹의 검색 폼을 찾는 작업이 끝나면, 그 결과 생성된 딥웹 검색 폼 정보를 상기 딥웹 검색폼 저장소에 저장하고, 딥웹 크롤링 작 업이 끝난 후 생성되는 동적 페이지들의 인덱스를 상기 키워드/페이지 인덱스 저장소에 저장하는 것을 특징으로 하는 그리드 웹 크롤러 시스템.
  28. 제 25 항에 있어서,
    상기 서피스웹 크롤러 관리자는,
    웹 주소 집합에서 크롤링 해야 할 페이지의 주소를 선택하고, 선택된 페이지의 주소를 가장 적은 비용으로 서피스웹 크롤링하기 위한 최소 비용의 서피스웹 크롤러 서비스 팩토리를 호출하며, 호출된 상기 서피스웹 크롤러 서비스 팩토리를 이용하여 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 생성된 상기 서피스웹 크롤러 서비스 인스턴스를 이용하여 상기 페이지의 인덱스를 생성하며, 생성된 상기 페이지의 인덱스를 상기 키워드/페이지 인덱스 저장소에 저장하는 것을 특징으로 하는 그리드 웹 크롤러 시스템.
  29. 제 25 항에 있어서,
    상기 딥웹 크롤러 관리자는,
    검색폼이 포함된 페이지를 선택하고, 선택된 상기 페이지에서 딥웹 검색폼을 가장 적은 비용으로 찾아줄 수 있는 딥웹 크롤러 서비스 인스턴스를 생성하기 위해 최소 비용의 딥웹 크롤러 서비스 팩토리를 호출하며, 호출된 상기 딥웹 크롤러 서 비스 팩토리를 이용하여 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하고, 생성된 상기 딥웹 크롤러 서비스 인스턴스의 딥웹 검색폼 정보 추출 프로시저를 호출하여 상기 딥웹 검색폼 정보를 추출하고, 검색된 상기 딥웹 검색폼 정보를 상기 딥웹 검색폼 저장소에 저장하는 것을 특징으로 하는 그리드 웹 크롤러 시스템.
  30. 제 24 항에 있어서,
    상기 그리드 웹 크롤러 미들웨어 서브시스템은,
    지속적인(persistent) 그리드 팩토리 서비스로서 자신이 담당하는 그리드 컴퓨팅 자원들의 정보를 알려주는 기능 및 서피스웹 크롤링을 수행하는 일시적인(transient) 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하는 기능을 제공하는 서피스웹 크롤러 서비스 팩토리;
    지속적인 그리드 팩토리 서비스로서 자신이 담당하는 그리드 컴퓨팅 자원들의 정보를 알려주는 기능 및 딥웹 크롤링을 수행하는 딥웹 크롤러 서비스 인스턴스를 동적으로 생성하는 기능을 제공하는 딥웹 크롤러 서비스 팩토리;
    상기 서피스웹 크롤러 서비스 팩토리를 이용하여 상기 서피스웹 크롤러 서비스 인스턴스를 생성하는 서피스웹 크롤러 서비스; 및
    상기 딥웹 크롤러 서비스 팩토리를 이용하여 상기 딥웹 크롤러 서비스 인스턴스를 생성하는 딥웹 크롤러 서비스;
    를 포함하는 것을 특징으로 하는 그리드 웹 크롤러 시스템.
  31. 제 30 항에 있어서,
    상기 그리드 컴퓨팅 자원들의 정보는, 그리드 서비스를 사용할 때 발생하는 비용, 그리드 서비스와 서피스웹 사이트 간의 통신 비용, 그리드 서비스의 부하 정도에 관한 정보를 포함하는 것을 특징으로 하는 그리드 웹 크롤러 시스템.
  32. 제 30 항에 있어서,
    상기 서피스웹 크롤러 서비스는, 상기 서피스웹 크롤러 서비스 팩토리에서 제공하는 서피스웹 크롤러 서비스 상태 검색 기능을 이용하여 서피스웹 크롤러 서비스의 상태 정보를 얻고, 상기 상태 정보를 근거로 상기 서피스웹 크롤러 서비스 인스턴스를 동적으로 생성하여, 생성된 인스턴스로 크롤링 작업에 들어갈 때 발생하는 비용을 계산하며, 상기 크롤링 작업에 들어갈 때 발생하는 비용은,
    비용=α×Cost(Si) + β×CommunicationCost(Si) + γ×Capacity(Si)
    의 수학식으로 계산하되, 상기 수학식 중 α, β, γ는 α≥0, β≥0, γ≥0, α+β+γ=1의 조건을 만족하는 가중치, Si는 서피스웹 크롤러 서비스, Cost(Si)는 서피스웹 크롤러 서비스(Si)를 사용할 때 발생하는 비용, CommunicationCost(Si)는 서피스웹 크롤러 서비스 Si와 웹 사이트 간의 통신 비용, Capacity(Si)는 서피스웹 크롤러 서비스 Si의 현재 부하 정도인 것을 특징으로 하는 그리드 웹 크롤러 시스템.
KR1020070095444A 2007-09-19 2007-09-19 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법 KR100875636B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070095444A KR100875636B1 (ko) 2007-09-19 2007-09-19 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070095444A KR100875636B1 (ko) 2007-09-19 2007-09-19 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR100875636B1 true KR100875636B1 (ko) 2008-12-26

Family

ID=40373092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070095444A KR100875636B1 (ko) 2007-09-19 2007-09-19 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100875636B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218429A (zh) * 2013-04-10 2013-07-24 百度在线网络技术(北京)有限公司 网页呈现方法和网页呈现装置
CN105138561A (zh) * 2015-07-23 2015-12-09 中国测绘科学研究院 一种暗网空间数据采集方法及装置
CN105528414A (zh) * 2015-12-04 2016-04-27 北京航空航天大学 一种搜集深网数据全集的爬虫方法和系统
KR20200061812A (ko) 2018-11-26 2020-06-03 (주)유엠로직스 브라우저 모사를 이용한 딥웹 분석 시스템 및 그 분석 방법
KR102147167B1 (ko) * 2020-01-07 2020-08-24 (주)에스투더블유랩 멀티 도메인에서 데이터를 수집하는 방법, 장치 및 컴퓨터 프로그램
WO2020171410A1 (ko) * 2019-02-19 2020-08-27 (주)에스투더블유랩 멀티 도메인에서 데이터를 수집하는 방법, 장치 및 컴퓨터 프로그램
CN113065055A (zh) * 2021-04-21 2021-07-02 平安国际智慧城市科技股份有限公司 新闻资讯抓取方法、装置、电子设备及存储介质
CN113553487A (zh) * 2021-07-28 2021-10-26 恒安嘉新(北京)科技股份公司 网址类型的检测方法、装置、电子设备及存储介质
KR102442535B1 (ko) 2021-12-31 2022-09-13 (주)케이엔랩 크롤링 관리 방법, 크롤링 관리 시스템, 이를 위한 컴퓨터 프로그램

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218429A (zh) * 2013-04-10 2013-07-24 百度在线网络技术(北京)有限公司 网页呈现方法和网页呈现装置
CN105138561A (zh) * 2015-07-23 2015-12-09 中国测绘科学研究院 一种暗网空间数据采集方法及装置
CN105138561B (zh) * 2015-07-23 2018-11-27 中国测绘科学研究院 一种暗网空间数据采集方法及装置
CN105528414A (zh) * 2015-12-04 2016-04-27 北京航空航天大学 一种搜集深网数据全集的爬虫方法和系统
CN105528414B (zh) * 2015-12-04 2019-07-05 北京航空航天大学 一种搜集深网数据全集的爬虫方法和系统
KR20200061812A (ko) 2018-11-26 2020-06-03 (주)유엠로직스 브라우저 모사를 이용한 딥웹 분석 시스템 및 그 분석 방법
US11790016B2 (en) 2019-02-19 2023-10-17 S2W Inc. Method, device and computer program for collecting data from multi-domain
WO2020171410A1 (ko) * 2019-02-19 2020-08-27 (주)에스투더블유랩 멀티 도메인에서 데이터를 수집하는 방법, 장치 및 컴퓨터 프로그램
KR102147167B1 (ko) * 2020-01-07 2020-08-24 (주)에스투더블유랩 멀티 도메인에서 데이터를 수집하는 방법, 장치 및 컴퓨터 프로그램
CN113065055A (zh) * 2021-04-21 2021-07-02 平安国际智慧城市科技股份有限公司 新闻资讯抓取方法、装置、电子设备及存储介质
CN113065055B (zh) * 2021-04-21 2024-04-02 深圳赛安特技术服务有限公司 新闻资讯抓取方法、装置、电子设备及存储介质
CN113553487A (zh) * 2021-07-28 2021-10-26 恒安嘉新(北京)科技股份公司 网址类型的检测方法、装置、电子设备及存储介质
CN113553487B (zh) * 2021-07-28 2024-04-09 恒安嘉新(北京)科技股份公司 网址类型的检测方法、装置、电子设备及存储介质
KR102442535B1 (ko) 2021-12-31 2022-09-13 (주)케이엔랩 크롤링 관리 방법, 크롤링 관리 시스템, 이를 위한 컴퓨터 프로그램

Similar Documents

Publication Publication Date Title
KR100875636B1 (ko) 그리드 컴퓨팅 기반 웹 크롤러 시스템 및 그 방법
Menczer et al. Topical web crawlers: Evaluating adaptive algorithms
EP1654684B1 (en) A system and a method for presenting multiple sets of search results for a single query
CN100527684C (zh) 用于管理多主机环境下的公共信息模型的方法和系统
EP1517250A1 (en) Improved systems and methods for ranking documents based upon structurally interrelated information
US7454779B2 (en) Method, system and computer program for controlling access in a distributed data processing system
JP2013522798A (ja) 仮想ドキュメントを用いたインデックス付与と検索
WO2011053377A1 (en) System for user driven ranking of web pages
Singh et al. Enhancing the performance of web proxy server through cluster based prefetching techniques
Nagarajan et al. A prediction-based dynamic replication strategy for data-intensive applications
Chaitra et al. A study on different types of web crawlers
Sethi An optimized crawling technique for maintaining fresh repositories
Bhatt et al. Focused web crawler
US20040205049A1 (en) Methods and apparatus for user-centered web crawling
Xu Scalable and secure Internet services and architecture
Wang et al. Low-cost web service discovery based on distributed decision tree in P2P environments
Ansari et al. A comparative study of mining web usage patterns using variants of k-means clustering algorithm
Cho et al. Reprint of: Efficient crawling through URL ordering
US10007733B1 (en) High-performance network data capture and storage
Xu et al. Research on Topic Crawler Strategy Based on Web Page Extension and Best Priority Search Algorithm
Jasani et al. Analyzing Different Web Crawling Methods
ElAraby et al. Web Crawler Architecture over Cloud Computing compared with Grid Computing
Rawat Focused crawling: an approach for URL queue optimization using link score
Khan et al. Web Usage Mining and User Behavior Prediction
Angioni et al. User Oriented Information Retrieval in a Collaborative and Context Aware Search Engine

Legal Events

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

Payment date: 20121011

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee