KR19990064246A - 월드 와이드 웹상에 페이지를 위치 설정하고 네트워크 컴퓨터로부터 문서를 위치 설정하는 시스템 및 그 방법 - Google Patents

월드 와이드 웹상에 페이지를 위치 설정하고 네트워크 컴퓨터로부터 문서를 위치 설정하는 시스템 및 그 방법 Download PDF

Info

Publication number
KR19990064246A
KR19990064246A KR1019980702734A KR19980702734A KR19990064246A KR 19990064246 A KR19990064246 A KR 19990064246A KR 1019980702734 A KR1019980702734 A KR 1019980702734A KR 19980702734 A KR19980702734 A KR 19980702734A KR 19990064246 A KR19990064246 A KR 19990064246A
Authority
KR
South Korea
Prior art keywords
web
entries
entry
data set
web page
Prior art date
Application number
KR1019980702734A
Other languages
English (en)
Other versions
KR100330576B1 (ko
Inventor
엠. 모니어 루이스
Original Assignee
피셔, 아더 더블유.
디지탈 이큅먼트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 피셔, 아더 더블유., 디지탈 이큅먼트 코포레이션 filed Critical 피셔, 아더 더블유.
Publication of KR19990064246A publication Critical patent/KR19990064246A/ko
Application granted granted Critical
Publication of KR100330576B1 publication Critical patent/KR100330576B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

월드 와이드 웹상에서 또는 네트워크를 통해 접속된 컴퓨터로부터 웹 페이지를 신속히 인출하여 분석하는 웹 크롤러 시스템 및 방법은 랜덤 액세스 메모리(RAM)에 기억된 해시 테이블과 순차 웹 정보 디스크 파일을 포함한다. 시스템에 알려진 모든 웹 페이지에 대하여, 웹 크롤러 시스템은 순차 디스크 파일에 하나의 엔트리를 기억시킬 뿐만 아니라, 해시 테이블에는 더욱 작은 엔트리를 기억시킨다. 해시 테이블 엔트리는 지문값과, 대응하는 웹 페이지가 성공적으로 인출되었을 때에만 참으로 설정되는 인출 플래그와, 순차 디스크 파일내에서 대응하는 엔트리가 기억되는 장소를 나타내는 파일 위치 지시기를 포함한다. 순차 디스크 파일 엔트리는 각각 대응하는 웹 페이지의 URL에 덧붙여 상기 웹 페이지에 관한 인출 상태 정보도 포함한다. 웹 정보 디스크 파일로의 모든 액세스는 다수의 엔트리가 단일 I/O 동작에 따라 순차 디스크 파일로부터 입력 버퍼로 이동하는 것처럼, 입력 버퍼를 통하여 순차적으로 액세스된다. 그 후에, 순차 디스크 파일은 입력 버퍼로부터 액세스된다. 마찬가지로, 순차 디스크 파일에 부가될 모든 신규 엔트리들은 부가 버퍼에 기억되어, 부가 버퍼가 채워지면 이 부가 버퍼의 내용은 순차 디스크 파일엔트리의 마지막에 부가된다. 이러한 방식으로, 웹 정보 디스크 파일로의 랜덤 액세스가 제거되어, 디스크 액세스 한계에 의해 야기되는 대기 시간이 최소화된다.

Description

월드 와이드 웹상에 페이지를 위치 설정하고 네트워크 컴퓨터로부터 문서를 위치 설정하는 시스템 및 그 방법
본 명세서에서 웹 페이지로 불리우는 웹 문서는 인터넷에 접속된 수많은 서버 컴퓨터(이하, "서버"라 함)에 기억된다. 웹상의 페이지에는 각각 독특한 URL(범용 자원 위치자)이 있다. 웹 서버에 기억된 대다수의 문서들은 소위 HTML(하이퍼텍스트 마크업 언어)로 불리우는 표준 문서 기재 언어로 기록된다. HTML을 이용하여, 웹 문서 작성자는 문서내에 특정 워드나 구(句)로 하이퍼텍스트 링크 또는 주석문을 구성하고 웹 페이지의 시각적 형식 및 내용을 기재한다. 하이퍼텍스트 링크는 워드 또는 구와 관련된 정보를 제공하는 다른 웹 문서의 URL 또는 동일 문서중의 다른 부분을 식별한다.
유저는 인터넷에 접속된 웹 클라이언트상에서 운용되는 웹 브라우저(HTML 문서를 디스플레이하고 웹 서버와 통신하기 위해 고안된 컴퓨터 프로그램)를 이용하여 월드 와이드 웹상에 기억된 문서를 액세스한다. 통상, 이러한 액세스는 유저가 웹 브라우저를 통해 보여지는 문서내에서 하이퍼텍스트 링크(통상 강조된 워드 또는 구로서 웹 브라우저에 의해 디스플레이 됨)를 선택함으로써 행해진다. 웹 브라우저는 리퀘스트된 문서의 URL로써 식별되는 웹 서버에 리퀘스트된 문서에 대한 HTTP(하이퍼텍스트 전송 프로토콜) 리퀘스트 명령을 발행한다. 응답시, 지정된 웹 서버는 역시 HTTP를 이용하여 리퀘스트된 문서를 웹 브라우저에 귀환시킨다.
1995년 말기에는, 월드 와이드 웹(본 명세서에서는 이하 "웹"이라 함)으로서 알려진 인터넷상의 페이지 수는 과거 일년간의 페이지 수의 몇 배로 증가하여 적어도 3천만개의 페이지가 되었다. 본 발명은 지속적인 웹 페이지의 성장에 따라 웹 페이지상의 트랙을 관리하는 시스템에 관한 것이다.
웹상에 페이지를 위치 설정하는 시스템으로서 "웹 크롤러", "웹 스파이더" 및 "웹 스쿠터"와 같은 시스템들이 다양하게 알려져 있다. 본 발명은 "웹 스쿠터"를 개선한 것이며, 그 이유는 웹 스쿠터가 지금까지 알려져 있는 모든 웹 크롤러보다 훨씬 빠르기 때문이다. "웹 크롤러", "웹 스파이더", "웹 스쿠터", "웹 크롤러 컴퓨터 시스템" 및 "웹 스쿠터 컴퓨터 시스템" 등의 표현은 본 명세서에서는 상호 호환적으로 사용될 수 있다.
종래의 웹 크롤러는 통상적으로 다음과 같이 동작한다. 공지된 웹 페이지의 루트 세트에서 개시하여, 모든 공지된 웹 페이지에 대해 개개의 엔트리를 가진 디스크 파일을 생성한다. 추가의 웹 페이지가 인출되고, 다른 페이지로의 인출 페이지의 링크가 분석되면, 이전에는 웹 크롤러에 알려지지 않은 웹 페이지를 참조하도록 추가의 엔트리가 디스크 파일내에 작성된다. 각 엔트리는 대응하는 웹 페이지가 처리되었는지의 여부는 물론이고 다른 상태 정보까지도 나타낸다. 아직 처리되지 않은 모든 식별 웹 페이지가 처리될 웹 페이지의 목록 또는 다른 동등한 데이터 구조체에 부가되도록 웹 크롤러는 (A)처리되고 있는 페이지내의 다른 웹 페이지를 향한 모든 링크를 식별하여, 관련 정보를 기억시키고, (B)상기 웹 페이지를 인덱서 또는 다른 문서 처리 시스템에 전송함으로써 웹 페이지를 처리한다.
디스크 파일의 정보량이 랜덤 액세스 메모리(RAM)에 기억되기에는 너무 크기 때문에, 이미 처리된 웹 페이지에 관한 정보는 통상 디스크 파일에 기억된다. 예컨대, 평균 100byte의 정보가 웹 페이지 엔트리에 각각 기억된다면, 3천만개의 웹 페이지를 나타내는 데이터 파일은 실제 RAM의 기억 용량으로는 지나치게 큰, 약 3기가바이트를 점유할 것이다.
다음으로, 하나의 웹 페이지를 처리할 때 발생하는 디스크 I/O를 고려하자. 본격적인 논의를 위해, 통상의 웹 페이지는 다른 웹 페이지에 대해 20개의 레퍼런스를 보유하고, 디스크 기억 장치는 초당 50개 미만의 시크(seek)를 처리할 수 있다고 가정하자. 웹 크롤러는 처리되는 페이지내의 20개의 페이지 레퍼런스를 각각 평가하여 이러한 페이지들에 대하여 웹 크롤러가 이미 알고 있는지를 결정한다. 이를 위해, 웹 크롤러는 웹 정보 디스크 파일로부터 20개의 레코드를 검색해야 한다. 특정 페이지 레퍼런스에 관한 레코드가 이미 존재하면, 더 이상의 처리가 필요없기 때문에 그 레퍼런스는 버려진다. 그러나, 특정 페이지에 관한 레코드가 발견되지 않으면, 페이지 어드레스의 가능한 별명(alias)에 대해 각각 레코드를 위치 설정해야 하므로, 평균 페이지당 약 50개의 디스크 시크로 웹 페이지를 분석하는데 필요한 평균 디스크 레코드 시크의 수를 증가시킨다.
특정 페이지 레퍼런스에 관한 디스크 파일 레코드가 이미 존재하고 있지 않다면, 참조된 페이지에 관한 새로운 레코드가 생성되어 디스크 파일에 부가되고, 이 페이지 레퍼런스가 처리될 페이지들의 큐에 부가되거나 디스크 파일 엔트리 자체가 상기 페이지가 인출 및 처리되지 않았음을 나타내는데 사용된다.
그러므로, 단일 웹 페이지를 처리하는데는 대략 20개의 디스크 시크(존재하고 있는 레코드를 판독하고 신규 레코드를 기록하기 위한)가 요구된다. 결과적으로, 초당 50개의 디스크 시크로 제한하면, 초당 오직 1개 정도의 웹 페이지만이 처리될 수 있다.
또한, 네트워크 액세스 대기 시간의 문제도 있다. 평균적으로, 하나의 웹 페이지를 검색하는데는 약 3초가 소요되지만, 이 소요 시간은 웹 서버의 위치와, 웹 서버 및 웹 크롤러 컴퓨터에 모두 사용되는 특정한 하드웨어 및 소프트웨어에 따라서 크게 변할 수 있다. 네트워크 대기 시간은 또한, 종래의 웹 크롤러로 처리될 수 있는 웹 페이지의 수를 초당 약 0.33개의 웹 페이지로 제한하는 경향이 있다. 디스크 "시크" 한계, 네트워크 대기 시간 및 다른 지연 요인 때문에, 통상적인 종래의 웹 크롤러는 하루에 약 30,000개 이상의 웹 페이지는 처리할 수 없다.
상기 웹에 웹 페이지가 추가되는 비율과 상기 웹에서 웹 페이지가 삭제되고 수정되는 비율 때문에, 하루에 30,000개의 웹 페이지를 처리한다는 것은 웹 상의 전체 웹 페이지의 현재 디렉토리 또는 인덱스를 유지하기에는 충분하지 못하다. 이상적으로는, 웹 크롤러는 하루에 적어도 2천 5백만개의 웹 페이지를 방문(즉, 인출 및 분석)할 수 있어야 한다.
그러므로, 이러한 고속 처리 능력을 갖춘 웹 크롤러를 구비하는 것이 요구된다. 따라서, 본 발명은 하루에 수백만개의 웹 페이지를 처리할 수 있는 진보된 웹 크롤러를 제공하는 것을 목적으로 한다. 본 발명의 관련 목적은 웹 크롤러의 동작 속도가 주로 웹 크롤러의 CPU의 처리 속도에 의해서만 제한되도록 전술된 디스크 "시크" 한계 및 네트워크 대기 시간의 한계를 해결한, 개선된 웹 크롤러를 제공하는 것이다. 본 발명의 또다른 목적은 평균적으로는 초당 적어도 30개의 웹 페이지를 바람직하게는, 초당 적어도 100개의 웹 페이지를 인출 및 처리할 수 있는 웹 크롤러 시스템을 제공하는 것에 있다.
본 발명은 통상, 월드 와이드 웹(WWW)상에서 소위 페이지라 일컬어지는 문서를 액세스하여 네트워크 컴퓨터로부터 문서를 위치 설정하는 시스템 및 그 방법에 관한 것이며, 특히, 월드 와이드 웹상의 페이지를 신속하게 위치 설정하여 분석하는 시스템 및 방법에 관한 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 웹 크롤러 시스템의 블록도.
도 2는 본 발명의 바람직한 실시예에 이용되는 해시 테이블 메커니즘의 블록도.
도 3은 본 발명의 바람직한 실시예에 이용되는 순차 웹 정보 디스크 파일 및 관련 데이터 구조체의 블록도.
도 4A 내지 4B는 본 발명의 바람직한 실시예에 이용되는 웹 크롤러 처리부의 플로우 차트.
본 발명의 범위는 청구항 제1항에 기재된 바와 같은 웹 페이지 위치 설정 시스템 및 청구항 제6항에 기재된 바와 같은 웹 페이지 위치 설정 방법에 귀속된다.
이하에, 월드 와이드 웹상에 웹 페이지의 디렉토리를 신속하게 위치 설정하고 작성하는 시스템 및 그 방법이 개시된다. 웹 크롤러 시스템은 랜덤 액세스 메모리(RAM)에 기억된 해시 테이블과 통상은 디스크 기억 장치인 보조 기억 장치에 기억된 순차 파일(명세서에서는 "순차 디스크 파일" 또는 "웹 정보 디스크 파일"로 칭함)을 포함한다. 상기 시스템에 알려진 모든 웹 페이지들에 대하여, 상기 웹 크롤러 시스템은 순차 디스크 파일에 하나의 엔트리를 기억시킬 뿐만 아니라, 해시 테이블에는 더욱 작은 엔트리를 기억시킨다. 해시 테이블 엔트리는 지문값과, 대응하는 웹 페이지가 성공적으로 인출된 경우에만 참으로 설정되는 인출 플래그와, 순차 디스크 파일내에서 대응하는 웹 페이지가 기억되는 장소를 나타내는 파일 위치 지시기를 포함한다. 순차 디스크 파일 엔트리는 각각 대응하는 웹 페이지의 URL에 덧붙여 상기 웹 페이지에 관한 인출 단계 정보도 포함한다.
웹 정보 디스크 파일에 대한 모든 액세스는 다수의 엔트리가 단일 I/O 동작으로서 상기 순차 디스크 파일로부터 상기 입력 버퍼로 이동되는 것처럼, 입력 버퍼를 통하여 순차적으로 액세스된다. 그 후에, 순차 디스크 파일은 입력 버퍼로부터 액세스된다. 마찬가지로, 순차 파일에 더해지는 모든 신규 엔트리는 부가 버퍼에 기억되어, 상기 부가 버퍼가 채워지면 부가 버퍼의 내용은 순차 디스크 파일의 마지막에 더해진다. 이러한 방식으로, 웹 정보 디스크 파일로의 랜덤 액세스가 제거되어, 디스크 액세스 한계 때문에 야기되는 대기 시간이 최소화된다.
웹 페이지 위치 설정 및 처리 절차는 순차 파일내의 모든 엔트리를 순차적으로 검토하는 단계와 확정된 선택 기준에 부합하는 차기 엔트리를 선택하는 단계로 이루어진다. 처리할 차기 파일 엔트리를 선택할 때, 해시 테이블은 상기 웹 페이지가 별명하에 인출되었는지의 여부를 결정하기 위해 현재 대기 엔트리의 모든 공지 별명에 대해서 점검된다. 웹 페이지가 별명하에 인출되었다면, 순차 파일 엔트리의 오류 타입 필드는 "미선택 별명"으로 표시되고 대기 엔트리는 선택되지 않는다.
일단, 차기 웹 페이지 레퍼런스 엔트리가 선택되었으면, 웹 크롤러 시스템은 대응하는 웹 페이지를 인출할 수 있다. 인출에 실패한 경우, 상기 웹 페이지에 대한 순차 파일 엔트리의 인출 단계 정보는 웹 크롤러에 귀환되는 오류 귀환 코드에 따라 인출 실패로 표시된다. 인출 성공시에는, 웹 페이지에 대한 해시 테이블 엔트리의 인출 플래그는 웹 페이지에 대한 순차 디스크 파일 엔트리(입력 버퍼)의 인출 플래그와 흡사하게 설정된다. 또한, 인출된 웹 페이지의 각 URL 링크가 분석된다. 링크에 의해 참조된 URL 또는 임의로 규정된 별명의 URL에 대한 엔트리가 이미 해시 테이블에 존재하는 경우, 추가의 URL 링크 처리는 필요없다. 해시 테이블에서 이러한 엔트리가 발견되지 않으면, 그 URL은 웹 페이지의 웹 크롤러 데이터베이스에 포함되지 않았던 "신규" 웹 페이지를 나타내므로, 새로운 웹 페이지에 대한 엔트리가 순차 디스크 파일에 더해진다(즉, 부가 버퍼내의 디스크 파일 부분에 더해진다). 신규 디스크 파일 엔트리는 처리되는 링크에 의해 참조된 URL을 포함하고, "미인출"로 표시된다. 또한, 대응하는 신규 엔트리는 해시 테이블에 더해지고, 이 엔트리의 인출 플래그는 대응하는 웹 페이지가 인출되지 않았음을 나타내기 위해 소거된다. 인출된 페이지내의 모든 URL 링크를 처리하는 것 이외에, 웹 크롤러는 추가의 처리를 위해 인출된 페이지를 인덱서에 전송한다.
본 발명은 첨부된 도면과 함께, 이하에 예시의 방식으로 제공된 바람직한 실시예의 설명으로부터 더욱 용이하게 이해될 수 있을 것이다.
도 1은 웹 스쿠터 컴퓨터 시스템(102)을 구비한 분산형 컴퓨터 시스템(100)을 도시한다. 웹 스쿠터는 통신 인터페이스(104)와, 1조의 인터넷과 인터넷으로의 다른 네트워크와의 접속부(106)와, 웹 페이지 인덱싱 컴퓨터(108)에 의해 접속된다. 몇가지 실시예에서, 웹 페이지 인덱싱 컴퓨터(108)는 지역 또는 광역 네트워크 접속을 이용함이 없이, 개인 통신 채널을 통하여 웹 스쿠터(102)에 직접 연결된다. 웹 스쿠터(102)가 접속되는 인터넷의 부분들은 (A)웹 페이지를 기억하는 웹 서버(110)와, (B)분산형 네임 서비스(DNS)로서 알려진 서비스에 상응하는 서버들이다(본 명세서에서는 참조 번호 (112)로써 뭉뚱그려서 표시하였다). 이 문서의 용도에 있어서, DNS(112)는 임의의 인터넷 호스트 네임에 대해 모두 규정된 별명들로 된 임의의 리퀘스터를 제공하는데, 이 인터넷 호스트 네임 및 그 별명들은 모든 URL의 접두 부호 부분을 형성한다.
바람직한 실시예에서, 웹 스쿠터(102)는 Digital Equipment Corporation사의 Alpha 워크스테이션 컴퓨터이지만, 실제로는 어떤 형태의 컴퓨터라도 웹 스쿠터 컴퓨터로서 이용될 수 있다. 바람직한 실시예에서, 웹 스쿠터(102)는 CPU(114), 전술한 통신 인터페이스(104), 유저 인터페이스(116), 랜덤 액세스 메모리(RAM: 118) 및 디스크 메모리(disk: 120)를 구비한다. 바람직한 실시예에서, 통신 인터페이스(104)는 초당 적어도 30개의 웹 페이지 평균 인출 처리 능력을 가지고서, 1000개 이상의 중첩 통신 리퀘스트를 처리할 수 있는 매우 고성능의 통신 인터페이스이다.
바람직한 실시예에서, 웹 스쿠터의 RAM에는 Gigabyte급의 랜덤 액세스 메모리가 있으며,
· 멀티태스킹 오퍼레이팅 시스템(122);
· 웹 페이지 인출은 물론이고 DNS(112)로부터 별명 정보까지도 인출하기 위한 인터넷 통신 관리자 프로그램(124);
· 호스트 네임에 대한 규정된 별명들을 나타내는 정보를 기억하는 호스트 네임 테이블(126);
· 웹 정보 해시 테이블(130);
· 해시 테이블 관리자 처리부(132);
· 입력 버퍼(134) 및 부가 버퍼(136);
· 해시 테이블(130), 입력 버퍼(134) 및 부가 버퍼(136)로의 액세스를 제어하기 위한 뮤텍스(138);
· 웹 스쿠터 처리부(140); 및
· T1이 웹 스쿠터 컴퓨터 시스템(102)의 오퍼레이터에 의해 선택 가능한 정수(예컨대, T1은 바람직한 실시예에서 값 1000으로 설정됨)일 때, 실행을 스래드(thread)하는 T1을 규정하기 위한 스래드 데이터 구조체(142)를 기억한다.
디스크 기억 장치(120)는 이하에 더욱 상세하게 설명되는 바와 같이, 입력 버퍼(134)와 부가 버퍼(136)를 통하여 순차로 액세스되는 웹 정보 디스크 파일(150)을 기억한다.
호스트 네임 테이블(126)은 무엇보다도 DNS(112)에 알려진 각 호스트 네임의 모든 별명을 나타내는 정보를 기억한다. 이 별명들은 특정 웹 페이지에 대해 별명 URL의 세트를 형성하기 위해 특정 웹 페이지의 URL의 호스트 네임 부분에 대한 웹 스쿠터 처리부(140)를 대신하는 1 세트의 URL 접두부가 된다.
전술한 데이터 구조체 및 처리부들의 사용 및 동작은 도 1 내지 도 4A 내지 도 4B와 표 1 및 표 2를 참조하여 이하에 설명될 것이다. 표 1 및 표 2는 모두 웹 스쿠터 처리부의 의사 부호 표현을 포함하고 있다. 본 명세서에서 사용되는 의사 부호는 명세서의 설명을 위해 창안된 것이지만, 이 의사 부호는 일반 컴퓨터 언어 협정을 이용하며, 당업계의 숙련된 컴퓨터 프로그래머에게 용이하게 이해될 수 있도록 고안된 것이다.
웹 정보 해시 테이블
도 2를 참조하면, 웹 정보 해시 테이블(130)은 웹 스쿠터 시스템에 의해 인출 및 분석된 각각의 웹 페이지는 물론이고 인출 및 분석된 웹 페이지에서 URL 링크에 의해 참조되는 각각의 웹 페이지를 위한 개별 엔트리(160)를 포함한다. 이러한 엔트리는,
· 대응하는 웹 페이지에 대해 고유 지문값(162);
· 대응하는 웹 페이지가 웹 스쿠터에 의해 인출 및 분석되었는지의 여부를 나타내는 1비트의 "인출 플래그"; 및
· 웹 정보 디스크 파일(150)내에서 대응하는 엔트리의 위치를 나타내는 파일 위치값(166)을 포함한다.
바람직한 실시예에서, 지문값은 각각 63비트 길이이며, 파일 위치값은 각각 32비트 길이이다. 결과적으로, 바람직한 실시예에서 각각의 해시 테이블 엔트리(160)는 정확히 12바이트를 점유한다. 해시 테이블 엔트리의 정확한 크기는 중요하지 않지만, 각각의 해시 테이블(160)이 대응하는 디스크 파일 엔트리보다 상당히 작다(예컨대, 평균으로 적어도 75% 작다)는 것은 중요하다.
해시 테이블 관리자(132)는 "인터페이스"(170)를 통해, 웹 스쿠터 처리부(140)로부터 2가지 타입의 절차 호출인,
· 특정 URL을 위한 엔트리가 존재하는지의 여부를 해시 테이블 관리자(132)에게 묻고, 존재하는 경우에는 레코드의 인출 플래그가 대응하는 웹 페이지가 과거에 인출 및 분석되었음을 나타내는지의 여부를 묻는 제1 리퀘스트와;
· 특정 URL과 특정 디스크 파일 위치에 대해 해시 테이블(130)에 신규 엔트리를 기억할 것인지를 해시 테이블 관리자에게 묻는 제2 리퀘스트를 수신한다.
해시 테이블 관리자(132)는 지문 해시 함수(172)를 이용하여 해시 테이블 관리자에 제공되는 전체 URL에 대한 63비트의 지문값을 계산한다. 지문 해시 함수(172)는 모든 고유한 URL이 마찬가지로 고유 지문값으로 확실히 매핑되도록 고안되었다. 상기 지문 함수는 임의의 특정 웹 페이지 URL의 압축 부호화 신호를 발생시킨다. 적당한 지문 함수의 설계를 당업계의 당업자는 이해할 수 있을 것이다. 상기 함수에는 약 225내지 226개의 웹 페이지가 있지만, 지문들은 263개의 개별값을 가질 수 있음을 주목하자.
웹 스쿠터 처리부(140)가 해시 테이블에 특정 URL에 대한 엔트리가 이미 존재하는지의 여부를 해시 테이블 관리자(132)에게 묻는 경우, 해시 테이블 관리자는 (A)전술한 지문 해시 함수(172)를 이용하여 특정 URL의 지문값을 발생시키고, (B)해시 테이블 위치 함수(174)에 이 값을 통과시켜 지문값을 가진 엔트리가 해시 테이블(130)내에서 기억될 곳을 결정하고, (C)상기의 엔트리가 해시 테이블내에 실제로 기억되는지의 여부를 결정하고, (D)매칭 엔트리가 발견되지 않는 경우에, 실패값(예컨대, -1)으로 귀환하고, (E)엔트리가 해시 테이블에서 발견되면, 성공값(예컨대, 0)과 엔트리의 인출 플래그값 및 디스크 위치값으로 귀환한다.
바람직한 실시예에서, 해시 테이블 위치 함수(174)는 소정수의 낮은 차수 비트 지문값에 기초하여 해시 테이블 엔트리의 위치를 결정한 다음, 동일한 낮은 차수 비트의 모든 지문값에 대하여 엔트리 블록들의 체인을 이행한다. 해시 테이블(130)내의 소정값의 낮은 차수 비트의 엔트리(160)는 B1이 조정 가능한 파라미터라고 할 때, 블록마다 B1 엔트리의 블록들에 할당된다. 바람직한 실시예에 사용된 상기 구성은 해시 테이블(130)내에 매우 조밀하게 데이터를 기억시킨다는 이점이 있다. 당업계의 숙련된 기술자가 이해하는 바와 같이, 기타의 수많은 해시 테이블 위치 함수를 이용할 수 있다.
웹 스쿠터 처리부(140)가 해시 테이블 관리자(132)에게 특정 URL 및 특정 디스크 파일 위치에 대해 신규 해시 테이블 엔트리를 기억할 것인지를 묻는 경우, 해시 테이블 관리자는 (A)전술된 지문 해시 함수(172)를 이용하여 특정 URL의 지문을 발생시키고, (B)해시 테이블 위치 함수(174)에 이 값을 통과시켜 지문값을 가진 엔트리가 해시 테이블(130)내에서 기억될 곳을 결정하고, (C)대응하는 웹 페이지가 인출되지 않았음을 나타내고, 또한 지문값 및 특정 디스크 파일 위치를 포함하는 인출 플래그값을 가진 신규 엔트리(160)를 해시 테이블내의 결정된 위치에 기억시킨다.
웹 정보 디스크 파일 및 버퍼
도 3과 표 2를 참조하면, 디스크 액세스 동작은 RAM에 위치되는 입력 버퍼(134)와 부가 버퍼(136)를 사용함으로써 최소화된다. 입력 버퍼와 부가 버퍼의 관리는 디스크 파일 관리자로서 알려진 백그라운드 순차 디스크 파일 및 버퍼 핸들러 처리부에 의해 행해진다.
바람직한 실시예에서, 입력 버퍼 및 부가 버퍼는 각각 50 내지 100메가바이트 크기이다. 입력 버퍼(134)는 웹 정보 디스크 파일(150)의 순차적으로 정렬된 연속 부분을 기억하는데 사용된다. 웹 스쿠터 처리부는 처리될 입력 버퍼내의 차기 엔트리에 포인터(176)를 유지하고, 입력 버퍼(134)에 전송될 웹 정보 디스크 파일(150)내의 차기 엔트리(180)에 포인터(178)를 유지할 뿐만 아니라, 입력 버퍼(134), 부가 버퍼(136) 및 디스크 파일(150)을 조화시켜 사용하는데 필요한 다수의 다른 북키핑 포인터들을 유지한다.
웹 정보 디스크 파일(150)에 대한 모든 액세스는 순차 디스크 파일로부터의 다수의 엔트리가 단일 I/O 동작에 따라 입력 버퍼로 이동하는 것처럼, 입력 버퍼(134)를 통하여 순차적으로 액세스된다. 이 순차 디스크 파일(150)은 입력 버퍼로부터 액세스된다. 마찬가지로, 상기 순차 파일에 더해지는 모든 신규 엔트리들은 부가 버퍼(136)에 기억되고, 부가 버퍼의 내용은 부가 버퍼가 채워지면 순차 파일의 마지막에 더해진다. 이러한 방식으로, 웹 정보 디스크 파일에 대한 랜덤 액세스는 제거되고, 디스크 액세스 한계에 의해 야기되는 대기 시간이 최소화된다.
입력 버퍼(134)내의 모든 엔트리가 웹 스쿠터에 의해 스캔될 때마다, 입력 버퍼내의 엔트리에 대한 모든 갱신값들은 웹 정보 디스크 파일(150)에 다시 기억되고 부가 버퍼(136)내의 모든 엔트리들은 디스크 파일(150)의 마지막에 부가된다. 또한, 부가 버퍼(136)가 소거되고, 입력 버퍼(134)에 최종 엔트리의 세트가 카피된 직후에 개시하는(포인터(178)로써 표시된 바와 같이) 디스크 파일내의 차기 엔트리의 세트가 입력 버퍼(134)에 카피된다. 디스크 파일내의 최종 엔트리가 웹 스쿠터 처리부에 의해 스캐닝되었을 때, 스캐닝은 디스크 파일(150)의 개시부에서 다시 시작된다.
부가 버퍼(136)가 신규 엔트리로 채워지면, 그 내용은 디스크 파일(150)의 마지막에 부가되어 부가 버퍼는 신규 엔트리들을 수신하도록 소거된다.
웹 정보 디스크 파일(150)내의 엔트리(180)는 각각,
· 엔트리에 의해 참조되는 웹 페이지에 대하여 URL을 기억하는 가변 길이 URL 필드;
· 대응하는 웹 페이지가 웹 스쿠터에 의해 인출 및 분석되었는지의 여부를 나타내는 인출 플래그(184);
· 참조 웹 페이지가 인출, 분석 및 인덱스된 날짜와 시간을 나타내는 타임스탬프(186);
· 웹 페이지의 크기를 나타내는 크기값(188);
· 오류의 타입이 참조 웹 페이지를 인출하기 위한 시도가 행해졌던 마지막 시간에 기인한 것인지, 또는 상기 엔트리가 무시될 복제(즉, 별명 URL) 엔트리를 나타내는 것인지를 나타내는 오류 타입값(190); 및
· 이와 상관없는 기타의 인출 상태 파라미터(192)를 기억한다.
URL 필드(182)는 길이가 변화될 수 있기 때문에, 웹 정보 디스크 파일(150)내의 레코드 또한 길이가 변화할 수 있다.
웹 스쿠터 처리부
도 1 내지 도 4A 내지 도 4B와 표 1의 의사 부호를 참조하면, 바람직한 실시예의 웹 스쿠터 처리부(140)는 다음과 같이 동작한다. 웹 스쿠터 처리부가 실행을 개시하면,
· 기존의 웹 정보 디스크 파일(150)을 통하여 스캐닝하여, 모든 엔트리에 대하여 해시 테이블(130)의 엔트리를 순차 디스크 파일로 초기화하는 단계;
· 디스크 파일(150)로부터 입력 버퍼(134)로 순차 디스크 엔트리의 제1 배치분을 카피하는 단계;
· 신규 순차 파일 엔트리에 대하여 공(空) 부가 버퍼(136)를 규정하는 단계; 및
· 입력 버퍼(134), 부가 버퍼(136) 및 해시 테이블(130)로의 액세스를 제어하기 위해 뮤텍스(138)를 규정하는 단계에 의해, 시스템의 데이터 구조체를 초기화한다(200).
웹 스쿠터 초기화부는 동일한 스쿠터 처리를 각각 실행하는 T1 스래드(예컨대, 바람직한 실시예에서는 1000개의 스래드가 시작됨)를 시작한다.
웹 스쿠터 초기화 처리의 실행전에, 기존의 웹 정보 디스크 파일(150)내의 엔트리의 세트는 알고 있는 웹 페이지의 "루트 세트"(144)로 불리운다. "액세스 가능한" 웹 페이지의 세트는 상기 루트 세트내의 URL 링크에 의해 참조되는 모든 웹 페이지와 다른 액세스 가능한 웹 페이지내의 URL 링크에 의해 참조되는 모든 웹 페이지로 구성된다. 따라서, 상기 루트 세트와 이러한 "액세스 불가능" 웹 페이지간에 URL 링크 접속이 없음으로 인해, 일부 웹 페이지들은 웹 스쿠터(102)에 대해 액세스가 불가능 할 수도 있다.
이와 같은 웹 페이지들에 대한 정보를 다양한 채널을 통하여 이용할 수 있는 경우, 웹 정보 디스크 파일(150)은 추가 엔트리의 "수동" 삽입 또는 과거의 액세스 불가 웹 페이지를 액세스 가능하게 하도록 추가의 엔트리를 포함시키기 위한 다른 메커니즘에 의해 확장될 수 있다(이로써, 루트 세트(144)를 확장함).
다음은 모든 동시 구동 스래드에 의해 실행되는 웹 스쿠터 처리부에 관한 설명이다. 처리의 제1 단계는 뮤텍스에 대한 리퀘스트 및 대기 단계(202)이다. 2개의 스래드가 동일한 디스크 파일 엔트리를 처리하지 않도록, 그리고 2개의 스래드가 동시에 해시 테이블, 입력 버퍼, 부가 버퍼 또는 디스크 파일에 정보를 기록하지 못하도록 뮤텍스의 소유권이 요구된다. 해시 테이블(130), 입력 버퍼(134), 부가 버퍼(136) 및 디스크 파일(150)은 뮤텍스를 사용함으로써 일괄적으로 보호되기 때문에, 본 명세서에서는 뭉뚱그려서 "보호된 데이터 구조체"라고 부른다. 일단, 스래드가 뮤텍스를 소유하면, 스래드는 스캐닝되지 않은 차기 엔트리에서 시작하여(포인터(176)에 의해 나타낸 바와 같은), 확정된 선택 기준에 부합하는 엔트리가 위치 설정 및 선택될 때까지 입력 버퍼에 디스크 파일 엔트리를 스캐닝한다(204).
예를 들면, 디폴트 선택 기준은 그 오류 타입 필드가 상기 엔트리가 복제 엔트리(즉, 이하에 설명되는 바와 같이 "비선택 별명"인)임을 나타내는 엔트리를 제외하고는, 인출된 적이 없거나, H1 시간보다 더 이전에 최종 인출 및 분석된(여기서, H1은 오퍼레이터가 선택할 수 있는 값) 엔트리로써 표시되는 웹 페이지를 참조하는 어떠한 엔트리라도 가능하다. H1이 168로 설정되면, 1주일보다 더 전에 최종 인출 및 분석된 웹 페이지를 참조하는 모든 엔트리들은 상기 선택 기준에 부합한다. 선택 기준에 대한 또다른 예로서, 웹 페이지 크기가 고려된 선택 기준은 그 오류 타입 필드가 상기 엔트리가 "비선택 별명"임을 나타내는 엔트리일 때를 제외하고는, 인출된 적이 없는 웹 페이지나, H1 시간보다 더 이전에 최종 인출 및 분석된 S1의 크기보다 큰 웹 페이지나, H2 시간보다 더 이전에 최종 인출 및 분석된 S1의 크기보다 작은 웹 페이지를 나타내는 엔트리이다(여기서, S1, H1 및 H2는 오퍼레이터가 선택할 수 있는 값이다).
처리할 차기 엔트리를 선택할 때, 해시 테이블은 하나의 별명하에 웹 페이지가 이미 인출되었는지의 여부를 결정하기 위해 대기하고 있는 현 엔트리의 모든 공지된 별명에 대하여 점검된다. 특히, 엔트리가 확정된 선택 기준에 부합하는 경우, 상기 엔트리에 대한 모든 공지된 별명의 URL은 호스트 네임 테이블(126)의 정보를 사용하여 발생되고, 해시 테이블(130)은 임의의 별명 엔트리에 대하여 참조 웹 페이지가 별명 URL하에 인출되었는지를 나타내는 인출 플래그로 엔트리를 기억하는지의 여부를 알기 위해 점검된다. 입력 버퍼내에 대기하는 현재 엔트리에 의해 참조되는 웹 페이지가 별명 URL하에 이미 인출되었다고 결정된 경우, 입력 버퍼 엔트리의 오류 타입 필드(190)는 이 엔트리가 이 때 및 미래에 추가의 처리를 위해 선택되지 않게 하는 "비선택 별명"임을 나타내도록 수정된다.
일단 웹 페이지 참조 엔트리가 선택되면, 상기 뮤텍스는 다른 스래드가 보호 데이터 구조체를 액세스할 수 있도록 해제된다(206). 그리고나서, 웹 스쿠터 처리부는 대응하는 웹 페이지를 인출하고자 한다(208). 이러한 인출이 완료 또는 실패한 후, 상기 처리부는 다시 한번 보호 데이터 구조체를 이용하기 위해 또 한번 뮤텍스를 리퀘스트 및 대기한다(210).
상기 인출이 성공되지 않은 경우(212-N), 웹 페이지에 대한 순차 파일 엔트리의 인출 상태 정보는 웹 크롤러로 귀환하는 오류 귀환 코드에 따라 인출 실패로서 표시된다(214). 상기 인출이 성공한 경우(212-Y), 웹 페이지에 관한 해시 테이블(160)내의 인출 플래그(164)가 설정되고, 마찬가지로, 순차 디스크 파일 엔트리(180)(입력 버퍼에서)내의 인출 플래그(184)가 웹 페이지에 관하여 설정된다. 또한, 인출된 웹 페이지의 URL 링크가 각각 분석된다(216).
상기 인출 웹 페이지가 분석된 후에, 또는 인출 웹 페이지가 입력 버퍼 엔트리에 기록된 후에, 뮤텍스는 다른 스래드가 보호 데이터 구조체를 액세스 할 수 있도록 해제된다(218).
인출된 웹 페이지내의 URL 링크를 분석하기 위한 절차가 도 4B를 참조하여 다음에 설명되었다. 여기서, 웹 페이지는 인덱싱 시스템(108)에 의한 인덱싱에 적합한 정보를 포함하지 않는, 이미지 파일과 같은 문서에 대한 URL 링크를 포함할 수 있음을 유의해야 한다. 이러한 참조 문서들은 이들을 참조하는 웹 페이지의 구성 요소로서 이용되기도 한다. 이 문서의 목적에 있어서, 이미지 파일 및 다른 비인덱서블 파일과 같은 성분 파일로의 URL 링크는 "다른 웹 페이지로의 URL 링크"가 아니다. 이러한 비인덱서블 파일로의 URL 링크는 웹 스쿠터 처리부에 의해 무시된다.
일단 다른 웹 페이지로의 모든 URL 링크가 처리된 경우(230), 인출된 웹 페이지는 인덱싱을 위해 인덱서에 전송되고(232) 웹 스쿠터에 의한 상기 인출 웹 페이지의 처리가 완료된다. 한편, 웹 페이지로의 차기 URL 링크가 선택된다(234). 이 선택 링크에 관련한 URL 링크에 대해 해시 테이블 엔트리가 이미 존재하는 경우(236), 상기 링크의 추가의 처리가 필요없게 되어, 분석되는 웹 페이지내에 미처리된 URL 링크가 남아있는 경우에 차기 URL 링크가 선택된다(234).
상기 선택 링크에 관련한 URL 링크에 대해 해시 테이블 엔트리가 이미 존재하지 않는 경우(236), 상기 엔트리에 대한 모든 공지된 별명의 URL이 호스트 네임 테이블(126)내의 정보를 사용하여 발생된 후, 해시 테이블(130)은 임의의 별명 URL에 대한 엔트리를 기억하고 있는지의 여부를 확인하기 위해 점검된다(238). 해시 테이블에 임의의 별명 URL에 대한 엔트리가 존재하면, 상기 링크의 추가의 처리가 필요없게 되어, 분석되는 웹 페이지내에 미처리된 URL 링크가 남아있는 경우에 차기 URL 링크가 선택된다(234).
선택된 링크의 URL 또는 임의의 별명들에 대한 엔트리가 해시 테이블내에서 발견되지 않는 경우, URL은 웹 페이지의 웹 크롤러 데이터베이스에 과거에 포함되지 않았던 "신규" 웹 페이지를 나타내므로, 신규 웹 페이지에 대한 엔트리는 부가 버퍼에서 디스크 파일의 부분에 더해진다(240). 이 새로운 디스크 파일 엔트리는 처리되는 링크에 의해 참조되는 URL을 포함하고, "미인출"로 표시된다. 또한, 대응하는 신규 엔트리가 해시 테이블에 더해지고, 이 엔트리의 인출 플래그는 대응하는 웹 페이지가 인출되지 않았음을 나타내기 위해 소거된다(240). 그리고나서, 웹 페이지내에 미처리 URL 링크가 남아있는 경우에는 웹 페이지내에서 차기 미처리 URL 링크로 웹 페이지의 처리를 계속한다(234).
해시 테이블(130)이 각각의 공지된 웹 페이지에 대하여 디스크 파일 위치 설정값을 포함하고 있으므로, 웹 정보 디스크 파일(150)로의 인덱스와 같이 웹 정보 해시 테이블(130)이 본 명세서의 범위를 벗어나는 용도 및 동작을 가진 처리부에 의해 사용된다. 다시 말해, 웹 정보 디스크 파일내의 엔트리가 웹 정보 해시 테이블내의 대응하는 엔트리에서 우선 디스크 파일 어드레스를 판독함으로써 액세스되고 나서, 이 어드레스에서 웹 정보 디스크 파일 엔트리가 판독된다.
대체 실시예
평형 트리, 스킵 리스트 등과 같이, 웹 정보 해시 테이블(130)과 동일한 특성을 가진 임의의 데이터 구조체가 바람직한 실시예의 해시 테이블 구조체(130) 대신에 사용될 수 있다.
결과적으로, 본 발명은 종래의 웹 크롤러의 속도 한계를 극복하기 위해 3개의 주 메커니즘을 이용한다.
첫째, 웹 페이지 디렉토리 테이블은 과거에 웹 크롤러에 알려지지 않은 신규 웹 페이지를 나타내는 웹 페이지 링크를 결정하기에 충분한 정보를 가진 RAM에 기억되어, 수신된 웹 페이지가 디스크 파일을 액세스하지 않고서도 분석될 수 있게 한다.
둘째, 더욱 완전한 웹 페이지 디렉토리가 단지 순차로 액세스되고, 큰 입력 버퍼와 부가 버퍼를 통하여 이러한 액세스를 행함으로써 상기 포인트에 행해지는 디스크 액세스의 수를 감소시키는데, 상기 디스크 액세스는 웹 크롤러의 속도 성능에 심각한 손상을 주지 않는다.
셋째, 웹 스쿠터 처리부를 실행하기 위해 다수의 액티브 스래드를 동시에 사용함으로써, 그리고 웹 서버에 비슷한 수의 동시 통신 채널을 처리할 수 있는 통신 인터페이스를 제공함으로써, 본 발명은 네트워크 액세스 대기 시간에 의해 야기되는 지연을 방지할 수 있다.
특히, 다수의 스래드가 웹 페이지 인출 리퀘스트에 대한 응답을 기다리는 동안, 그 밖의 다른 스래드가 수신된 웹 페이지들을 분석한다. 모두 동일한 웹 스쿠터 처리 절차를 행하는 다수의 스래드를 사용함으로써, 평균적으로 수신된 웹 페이지로 이루어진 1큐의 스래드가 수신된 웹 페이지를 처리할 수 있도록 뮤텍스를 기다리는 경향이 발생한다. 또한, 웹 페이지 인출은 시간에 대하여 엇갈리게 되는 경향이 있다. 그 결과, 웹 스쿠터는 웹 페이지를 수신하기 위해 대기하고 아무것도 할게 없는 상태에 남아있기가 힘들어진다. 웹 스쿠터의 처리량은 멀티프로세서 워크스테이션을 이용함으로써 더욱 증가될 수 있어서, 웹 스쿠터 처리를 동시에 실행하는 스래드의 수를 더욱 증가시킬 수 있다.
본 발명이 몇가지의 구체 실시예를 참조하여 설명되었지만, 상기 설명은 본 발명의 예시일 뿐이며, 본 발명의 제한으로서 해석되지 않는다. 다양한 변형 실시예가 본 명세서에 제공되고 주장된 바와 같은 본 발명의 범위를 벗어나지 않고서 행해질 수 있다.
웹 스쿠터 처리부의 의사 부호 표현처리부: 웹 스쿠터{/*초기화 단계*/기존의 웹 정보 디스크 파일을 통하여 스캐닝하고 모든 엔트리에 대해 해시 테이블의 엔트리를 순차 파일로 초기화입력 버퍼로의 제1 배치의 순차 디스크 엔트리를 RAM에서 판독신규 순차 파일 엔트리들에 대한 공(空) 부가 버퍼 규정입력 버퍼, 부가 버퍼 및 해시 테이블로의 액세스를 제어하기 위한 뮤텍스 규정각각 동일한 스쿠터 처리를 실행하는 1000개의 스래드를 시작}처리부: 스쿠터{영구 실행:{뮤텍스 리퀘스트 및 대기처리를 위해 신규 URL이 확정된 URL 선택 기준에 따라 선택될 때까지 순차 파일(입력 버퍼에서)을 판독. 처리를위해 차기 URL을 선택할 때, 웹 페이지가 별명하에 이미 인출되었는지의 여부를 결정하기 위해 모든 공지된별명의 URL에 대해 해시 테이블을 점검하고, 웹 페이지가 별명하에 인출되었다면 순차 파일 엔트리의 오류타입 필드를 "비선택 별명"으로서 표시한다./*선택 기준의 예: URL은 한 번도 인출되지 않았거나, H1 시간보다 이전에 최종 인출되었고, 비선택 별명이아님*/뮤텍스 해제선택 웹 페이지 인출뮤텍스 리퀘스트 및 대기인출이 성공적인 경우{입력 버퍼내의 해시 테이블 및 순차 파일 엔트리에서 인출될 때의 페이지를 표시/*인출 페이지 분석*/페이지내의 각 URL 링크에 대해{URL 또는 임의의 규정된 별명이 해시 테이블에 이미 존재하는 경우{ Do Nothing }Else{/*URL은 데이터베이스에 포함되지 않았던 "신규" 웹 페이지를 나타냄*/부가 버퍼에 대응하는 웹 페이지에 대한 신규 엔트리를 더하여, 엔트리를 "미인출"로 표시해시 테이블에 엔트리를 더하여, 엔트리를 "미인출"로 표시}}처리를 위해 인출 페이지를 인덱서로 전송}Else{수신된 귀환 코드에 기초하여 적당한 "인출 실패" 오류 지시기로 현재 처리되는 입력 버퍼내의 엔트리를 표시}뮤텍스 해제} /*영구 실행 루프의 종료*/}
백그라운드 순차 파일 버퍼 핸들러를 위한 의사 부호 표현처리부: 백그라운드 순차 파일 버퍼 핸들러(a/k/a 디스크 파일 관리자){"순차 파일 판독" 명령시마다 입력 버퍼 오버 플로우{입력 버퍼를 순차 디스크 파일에 다시 카피엔트리의 차기 세트를 입력 버퍼로 판독부가 버퍼의 내용을 순차 디스크 파일의 마지막에 부가신규 엔트리를 준비하기 위해 부가 버퍼 소거}"순차 파일에 엔트리 추가"시마다 부가 버퍼 오버 플로우{부가 버퍼의 내용을 순차 디스크 파일의 마지막에 부가신규 엔트리를 준비하기 위해 부가 버퍼 소거계류중인 신규 엔트리를 부가 버퍼의 시작부에 추가}}

Claims (20)

  1. 원격지에서 액세스 가능한 컴퓨터상에 기억되고, 고유 URL(범용 자원 위치자)을 각각 가지며, 적어도 일부는 다른 웹 페이지로의 URL 링크를 구비한 웹 페이지를 포함하는 데이터 세트를 위치 설정하는 시스템에 있어서,
    대응하는 URL에 따라 상기 원격지 컴퓨터로부터 웹 페이지들 중 특정 웹 페이지를 인출하기 위한 통신 인터페이스와;
    대응하는 웹 페이지에 대해, 각각 URL 및 인출 상태 정보를 나타내는 엔트리들의 세트를 가진 웹 정보 파일과;
    대응하는 웹 페이지에 대해, 각각 지문값과 인출 상태 정보를 나타내는 엔트리들의 세트를 가지고, RAM(랜덤 액세스 메모리)에 기억되는 웹 정보 테이블과;
    웹 페이지를 인출하고 분석하기 위해, 상기 위치 설정 시스템에 의해 실행되는 웹 스쿠터 처리부를 구현하기 위한 수단을 포함하는데, 상기 웹 스쿠터 처리부는 웹 페이지의 웹 정보 파일 엔트리가 상기 인출 상태 정보에 기초한 소정의 선택 기준에 부합하는 웹 페이지를 인출하고, 각각의 수신된 웹 페이지내의 각각의 URL 링크에 대해 대응하는 엔트리가 웹 정보 테이블에 이미 존재하는지를 결정하고, 웹 정보 테이블에 대응 엔트리가 없는 각각의 URL 링크에 대해서는 웹 정보 테이블에 신규 엔트리를, 웹 정보 파일에는 대응하는 신규 엔트리를 부가하기 위한 명령을 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 시스템.
  2. 제1항에 있어서, 오버래핑 시간 동안 웹 스쿠터 처리부를 각각 실행하는 다수의 스래드를 포함하고, 상기 스래드의 일부는 웹 페이지를 인출하고, 상기 스래드의 나머지는 인출된 웹 페이지를 분석하는 수단을 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 시스템.
  3. 제2항에 있어서, 뮤텍스를 포함하며, 상기 웹 스쿠터 처리부는 웹 정보 테이블 및 웹 정보 파일을 액세스하기 전에 상기 뮤텍스를 리퀘스트하고 대기하는 명령을 포함하는 스래드에 의해 각각 실행되는 것을 특징으로 하는 데이터 세트 위치 설정 시스템.
  4. 제3항에 있어서,
    입력 버퍼 및 부가 버퍼와;
    웹 정보 파일로부터 순차 정렬된 엔트리의 블록들을 입력 버퍼에 기억시키기 위한 파일 관리자를 포함하고;
    상기 웹 스쿠터 처리부는 상기 소정의 선택 기준에 부합하는 상기 웹 정보 파일 엔트리들을 위치 설정하기 위해 입력 버퍼내의 웹 정보 파일 엔트리들을 스캐닝 및 분석하고;
    상기 웹 스쿠터 처리부는 상기 부가 버퍼에 모든 엔트리들을 기억하여 웹 정보 파일에 추가시키고;
    상기 파일 관리자는 부가 버퍼내의 다수의 엔트리들을 웹 정보 파일로 이동시키는 것을 특징으로 하는 데이터 세트 위치 설정 시스템.
  5. 제1항에 있어서, 보조 기억 장치내의 엔트리들은 주기억 장치내의 대응하는 엔트리의 어드레스를 각각 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 시스템.
  6. 원격지에서 액세스 가능한 컴퓨터상에 기억되고, 고유 URL(범용 자원 위치자)을 각각 가지며, 적어도 일부는 다른 웹 페이지로의 URL 링크를 구비한 웹 페이지를 포함하는 데이터 세트를 위치 설정하는 방법에 있어서,
    대응하는 웹 페이지에 대해 각각 URL 및 인출 상태 정보를 나타내는 엔트리들의 세트를 가진 웹 정보 파일을 기억하는 단계와;
    대응하는 웹 페이지에 대해 각각 지문값과 인출 상태 정보를 나타내는 엔트리들의 세트를 가진 웹 정보 테이블을 RAM(랜덤 액세스 메모리)에 기억시키는 단계와;
    웹 페이지들을 인출하고 분석하기 위해, (A)상기 엔트리들이 소정의 선택 기준에 부합하는지의 여부를 결정하도록 웹 정보 파일내의 엔트리들을 순차로 스캐닝하는 단계와, (B)웹 페이지의 웹 정보 파일 엔트리들이 상기 소정의 선택 기준에 부합할 때, 상기 웹 페이지를 인출하는 단계와, (C)수신된 각각의 웹 페이지내의 또다른 웹 페이지로의 각 URL 링크에 대해, 대응하는 엔트리가 웹 정보 테이블에 이미 존재하는지의 여부를 결정하는 단계와, (D)웹 정보 테이블에 대응하는 엔트리가 없는 각 URL 링크에 대해, 웹 정보 테이블에 신규 엔트리를 추가하고 웹 정보 파일에는 대응하는 신규 엔트리를 추가하는 단계를 구비하여 웹 스쿠터 처리부를 실행하는 단계를 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  7. 제6항에 있어서, 다수의 스래드에서 오버래핑 시간 동안 상기 웹 스쿠터 처리부를 각각 실행하는 단계를 포함하며, 상기 스래드의 일부는 웹 페이지를 인출하고, 상기 스래드의 나머지는 인출된 웹 페이지를 분석하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  8. 제7항에 있어서, 뮤텍스를 규정하는 단계와;
    상기 각각의 스래드에서 상기 웹 스쿠터 처리부를 실행하면서, 웹 정보 테이블 및 웹 정보 파일을 액세스하기 전에 상기 뮤텍스를 리퀘스트하고 대기하는 단계를 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  9. 제8항에 있어서, 상기 RAM에 "입력 버퍼"와 "부가 버퍼"를 형성하는 단계와;
    웹 정보 파일로부터 순차로 정렬된 엔트리들의 블록들을 상기 입력 버퍼에 기억시키는 단계와;
    웹 정보 파일내의 엔트리들을 순차로 스캐닝하는 상기 단계는 상기 웹 정보 파일 엔트리가 상기 소정의 선택 기준에 부합하는지의 여부를 결정하기 위해 상기 입력 버퍼내의 웹 정보 파일 엔트리들을 스캐닝하는 단계를 포함하고;
    상기 파일에 추가될 모든 엔트리들을 상기 부가 버퍼에 기억시키는 단계와;
    상기 부가 버퍼내의 다수의 엔트리들을 웹 정보 파일로 이동시키는 단계를 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  10. 제6항에 있어서, 웹 정보 테이블내의 엔트리들은 웹 정보 파일내의 대응하는 엔트리의 어드레스를 각각 포함하고,
    상기 데이터 세트 위치 설정 방법은 웹 정보 테이블내의 대응하는 엔트리의 어드레스를 판독한 후, 상기 어드레스에서 상기 웹 정보 파일의 상기 엔트리를 판독함으로써 상기 웹 정보 파일내의 상기 엔트리들 중 하나를 액세스하는 단계를 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  11. 네트워크를 통해 접속되는 컴퓨터상에 기억되고, 어드레스에 의해 가각 고유 식별되며, 적어도 일부는 상기 컴퓨터상에 기억되는 다른 데이터 세트의 하나 이상의 링크 어드레스를 포함하는 데이터 세트를 위치 설정하는 장치에 있어서,
    식별된 데이터 세트에 대해 식별된 데이터 세트의 어드레스를 각각 포함하는 리퀘스트를 컴퓨터에 전송하고, 상기 리퀘스트에 응답하여 데이터 세트를 수신하기 위해 네트워크에 접속된 통신 인터페이스와;
    대응하는 데이터 세트의 어드레스 및 대응하는 데이터 세트에 대한 상태 정보를 각각 포함하는 엔트리들의 제1 세트를 기억하는 주기억 장치와;
    대응하는 데이터 세트의 어드레스의 부호화 신호와, 대응하는 데이터 세트에 대한 상태 정보의 부호화 신호를 각각 포함하는 엔트리들의 제2 세트를 기억하는 보조 기억 장치와;
    상기 주기억 장치 및 보조 기억 장치와 통신 인터페이스에 결합되고, 제1 세트의 엔트리를 순차적으로 판독하여 상기 제1 세트에 소정의 상태에 기초한 선택 기준에 부합하는 대응 엔트리를 갖는 데이터 세트중 식별된 데이터 세트에 대해 리퀘스트를 발생시키며, 상기 식별된 데이터 세트 수신에 응답하여 상기 제2 세트에 어떠한 대응 엔트리도 없는 상기 수신된 데이터 세트 중 적어도 서브세트의 어드레스에 각각 대응하는 상기 제1 및 제2 세트에 새로운 엔트리를 생성하는 스래드 수단을 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 장치.
  12. 제11항에 있어서, 제2 세트의 엔트리는 상기 제1 세트에 대응하는 엔트리의 어드레스를 각각 포함하고, 상기 제2 세트의 엔트리는 상기 제1 세트의 엔트리를 인덱싱하는 것을 특징으로 하는 데이터 세트 위치 설정 장치.
  13. 제11항에 있어서, 다수의 상기 스래드 수단을 포함하며, 일부의 상기 스래드 수단은 상기 리퀘스트를 발생시키고 상기 식별된 데이터 세트를 수신하며, 나머지 상기 스래드 수단은 상기 주기억 장치 및 보조 기억 장치에 새로운 엔트리를 생성하는 것을 특징으로 하는 데이터 세트 위치 설정 장치.
  14. 제13항에 있어서, 뮤텍스를 포함하며, 상기 스래드 수단은 상기 주기억 장치 및 보조 기억 장치를 액세스하기 전에 상기 뮤텍스를 리퀘스트하고 대기하는 로직을 각각 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 장치.
  15. 제14항에 있어서, 상기 보조 기억 장치에 위치 설정되는 입력 버퍼 및 부가 버퍼와;
    상기 주기억 장치에 순차적으로 정렬된 그룹의 엔트리를 상기 입력 버퍼에 기억시키는 관리자를 포함하며;
    상기 스래드 수단은 상기 입력 버퍼의 엔트리를 스캐닝하고 분석하여 상기 소정의 상태에 기초한 선택 기준에 부합하는 상기 엔트리를 위치 설정하는 수단을 각각 포함하고;
    상기 스래드 수단은 상기 주기억 장치에 부가될 모든 엔트리를 상기 부가 버퍼에 각각 기억시키며;
    상기 관리자는 상기 부가 버퍼의 다수의 엔트리를 상기 주기억 장치로 이동시키는 수단을 추가로 갖는 것을 특징으로 하는 데이터 세트 위치 설정 장치.
  16. 네트워크를 통해 접속되는 컴퓨터상에 기억되고, 어드레스에 의해 가각 고유 식별되며, 적어도 일부는 상기 컴퓨터상에 기억되는 다른 데이터 세트의 하나 이상의 링크 어드레스를 포함하는 데이터 세트를 위치 설정하는 방법에 있어서,
    (A) 주기억 장치에 제1 엔트리 세트를 기억시키는 단계를 포함하는데, 상기 제1 세트의 각각의 엔트리는 대응하는 데이터 세트에 대한 상태 정보 및 대응하는 데이터의 어드레스를 포함하고;
    (B) 보조 기억 장치에 제2 엔트리 세트를 기억시키는 단계를 포함하는데, 상기 제1 세트의 각각의 엔트리는 대응하는 데이터 세트에 대한 상태 정보 및 대응하는 데이터의 어드레스를 포함하고;
    (C) 상기 제1 세트의 엔트리를 순차적으로 판독하는 단계와;
    (D) 상기 제1 세트에 소정의 상태에 기초한 선택 기준에 부합하는 대응 엔트리를 갖는 데이터 세트 중 식별된 세트에 대하여 상기 네트워크를 통해 상기 컴퓨터에 리퀘스트를 전송하는 단계와;
    (E) 상기 데이터 세트 중 식별된 세트 수신에 응답하여, 상기 제2 세트에 어떠한 대응 엔트리도 없는 수신된 데이터 세트 중 적어도 서브세트의 어드레스에 대응하는 상기 제1 및 제2 세트에 새로운 엔트리를 생성하는 단계를 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  17. 제16항에 있어서, 상기 단계 B는 상기 제1 세트의 대응 엔트리의 어드레스를 상기 제2 세트의 엔트리에 각각 기억하는 단계를 포함하고, 상기 제2 세트의 엔트리는 상기 제1 세트의 엔트리를 인덱싱하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  18. 제16항에 있어서, 다수의 스래드에서 오버래핑 시간 동안 단계 C, D 및 E를 행하는 단계를 포함하고, 일부의 스래드는 데이터 세트를 인출하고, 나머지 데이터 세트는 인출된 데이터 세트를 분석하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  19. 제18항에 있어서, 뮤텍스를 형성하는 단계를 포함하며;
    상기 스래드는 주기억 장치 및 보조 기억 장치의 상기 제1 및 제2 세트의 엔트리를 액세스하기 전에 상기 뮤텍스를 각각 리퀘스트하고 대기하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
  20. 제19항에 있어서, 상기 보조 기억 장치에 입력 버퍼 및 부가 버퍼를 형성하는 단계와;
    상기 제1 세트의 엔트리부터 순차로 정렬된 엔트리의 블록들을 상기 입력 버퍼에 기억시키는 단계를 포함하고;
    상기 순차 판독 단계는 상기 입력 버퍼의 엔트리들을 순차로 판독하는 단계와 상기 입력 버퍼 엔트리가 상기 소정의 상태에 기초한 선택 기준에 부합하는지의 여부를 결정하는 단계를 포함하고;
    상기 주기억 장치에 부가될 모든 엔트리를 상기 부가 버퍼에 기억시키는 단계와;
    상기 부가 버퍼의 다수의 엔트리를 상기 주기억 장치로 이동시키는 단계를 포함하는 것을 특징으로 하는 데이터 세트 위치 설정 방법.
KR1019980702734A 1995-12-13 1996-12-10 컴퓨터네트워크로부터월드와이드웹상의페이지위치을파악하고문서위치를파악하는시스템및방법 KR100330576B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US8/571748 1995-12-13
US08/571,748 US5974455A (en) 1995-12-13 1995-12-13 System for adding new entry to web page table upon receiving web page including link to another web page not having corresponding entry in web page table
US08/571748 1995-12-13
PCT/US1996/019831 WO1997022069A1 (en) 1995-12-13 1996-12-10 System and method for locating pages on the world wide web and for locating documents from a network of computers

Publications (2)

Publication Number Publication Date
KR19990064246A true KR19990064246A (ko) 1999-07-26
KR100330576B1 KR100330576B1 (ko) 2002-05-09

Family

ID=24284878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980702734A KR100330576B1 (ko) 1995-12-13 1996-12-10 컴퓨터네트워크로부터월드와이드웹상의페이지위치을파악하고문서위치를파악하는시스템및방법

Country Status (11)

Country Link
US (2) US5974455A (ko)
EP (3) EP0867007A1 (ko)
JP (1) JP3160719B2 (ko)
KR (1) KR100330576B1 (ko)
CN (2) CN1192317C (ko)
AU (1) AU694386B2 (ko)
BR (1) BR9611149A (ko)
CA (1) CA2240350A1 (ko)
TW (1) TW311996B (ko)
WO (1) WO1997022069A1 (ko)
ZA (1) ZA9610561B (ko)

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778367A (en) 1995-12-14 1998-07-07 Network Engineering Software, Inc. Automated on-line information service and directory, particularly for the world wide web
US7349892B1 (en) * 1996-05-10 2008-03-25 Aol Llc System and method for automatically organizing and classifying businesses on the World-Wide Web
US6415319B1 (en) * 1997-02-07 2002-07-02 Sun Microsystems, Inc. Intelligent network browser using incremental conceptual indexer
US5897637A (en) * 1997-03-07 1999-04-27 Apple Computer, Inc. System and method for rapidly identifying the existence and location of an item in a file
US6222847B1 (en) * 1997-10-08 2001-04-24 Lucent Technologies Inc. Apparatus and method for retrieving data from a network site
US6253240B1 (en) 1997-10-31 2001-06-26 International Business Machines Corporation Method for producing a coherent view of storage network by a storage network manager using data storage device configuration obtained from data storage devices
JP2996937B2 (ja) * 1997-12-01 2000-01-11 三菱電機株式会社 サーバ
US6145003A (en) * 1997-12-17 2000-11-07 Microsoft Corporation Method of web crawling utilizing address mapping
US6119171A (en) * 1998-01-29 2000-09-12 Ip Dynamics, Inc. Domain name routing
US6345304B1 (en) * 1998-04-01 2002-02-05 Xerox Corporation Obtaining network addresses from identifiers
US6457060B1 (en) * 1998-04-30 2002-09-24 Openwave Systems Inc. Method and apparatus for flexibly linking to remotely located content on a network server through use of aliases
US6727923B1 (en) * 1998-05-08 2004-04-27 Apple Computer, Inc. Creation and manipulation of internet location objects in a graphical user interface environment
US6638314B1 (en) * 1998-06-26 2003-10-28 Microsoft Corporation Method of web crawling utilizing crawl numbers
US6424966B1 (en) * 1998-06-30 2002-07-23 Microsoft Corporation Synchronizing crawler with notification source
US6553372B1 (en) * 1998-07-13 2003-04-22 Microsoft Corporation Natural language information retrieval system
US6393428B1 (en) * 1998-07-13 2002-05-21 Microsoft Corporation Natural language information retrieval system
US6336116B1 (en) * 1998-08-06 2002-01-01 Ryan Brown Search and index hosting system
US6735585B1 (en) 1998-08-17 2004-05-11 Altavista Company Method for search engine generating supplemented search not included in conventional search result identifying entity data related to portion of located web page
US6654813B1 (en) * 1998-08-17 2003-11-25 Alta Vista Company Dynamically categorizing entity information
US6510467B1 (en) * 1998-09-16 2003-01-21 International Business Machines Corporation Method for transferring data files between a user and an internet server
SE514376C2 (sv) * 1998-09-24 2001-02-19 Mirror Image Internet Inc Ett internet-cachningssystem samt ett förfarande och anordning i ett sådant system
US6145000A (en) * 1998-10-06 2000-11-07 Ameritech Corporation System and method for creating and navigating a linear hypermedia resource program
US6195707B1 (en) * 1998-10-28 2001-02-27 International Business Machines Corporation Apparatus for implementing universal resource locator (URL) aliases in a web browser and method therefor
US6314460B1 (en) 1998-10-30 2001-11-06 International Business Machines Corporation Method and apparatus for analyzing a storage network based on incomplete information from multiple respective controllers
US6289375B1 (en) * 1998-10-30 2001-09-11 International Business Machines Corporation Method and apparatus for invoking network agent functions using a hash table
US6411950B1 (en) * 1998-11-30 2002-06-25 Compaq Information Technologies Group, Lp Dynamic query expansion
US7131062B2 (en) * 1998-12-09 2006-10-31 International Business Machines Corporation Systems, methods and computer program products for associating dynamically generated web page content with web site visitors
US6374294B1 (en) * 1998-12-23 2002-04-16 Nortel Networks Limited Method and apparatus for negating invalid networking addresses
US6993531B1 (en) * 1999-02-04 2006-01-31 Naas Aaron J System and method of routine navigation
GB2339516B (en) * 1999-04-06 2000-07-05 Iesearch Limited An inter-computer communications apparatus
US6830196B1 (en) * 1999-05-25 2004-12-14 Silverbrook Research Pty Ltd Identity-coded surface region
US6341306B1 (en) * 1999-08-13 2002-01-22 Atomica Corporation Web-based information retrieval responsive to displayed word identified by a text-grabbing algorithm
US7162477B1 (en) * 1999-09-03 2007-01-09 International Business Machines Corporation System and method for web or file system asset management
US6321265B1 (en) 1999-11-02 2001-11-20 Altavista Company System and method for enforcing politeness while scheduling downloads in a web crawler
US6377984B1 (en) * 1999-11-02 2002-04-23 Alta Vista Company Web crawler system using parallel queues for queing data sets having common address and concurrently downloading data associated with data set in each queue
US6301614B1 (en) * 1999-11-02 2001-10-09 Alta Vista Company System and method for efficient representation of data set addresses in a web crawler
US6263364B1 (en) * 1999-11-02 2001-07-17 Alta Vista Company Web crawler system using plurality of parallel priority level queues having distinct associated download priority levels for prioritizing document downloading and maintaining document freshness
US7082454B1 (en) * 1999-11-15 2006-07-25 Trilogy Development Group, Inc. Dynamic content caching framework
CA2390080A1 (en) * 1999-11-18 2001-05-25 Netstock Direct Corporation Method and apparatus for aggregated securities brokerage service
US6826725B1 (en) * 1999-12-16 2004-11-30 Microsoft Corporation Techniques for invoking system commands from within a mark-up language document
WO2001050320A1 (en) * 1999-12-30 2001-07-12 Auctionwatch.Com, Inc. Minimal impact crawler
US6883135B1 (en) 2000-01-28 2005-04-19 Microsoft Corporation Proxy server using a statistical model
WO2001059623A2 (en) * 2000-02-08 2001-08-16 Onepage, Inc. System and method for dynamic aggregation of content distributed over a computer network
US7240067B2 (en) * 2000-02-08 2007-07-03 Sybase, Inc. System and methodology for extraction and aggregation of data from dynamic content
US7506034B2 (en) * 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
KR100314388B1 (ko) * 2000-03-28 2001-11-29 김연종 자동 페이징을 지원하는 웹 브라우저와 웹 브라우저의 멀티뷰 생성방법 및 그 프로그램 소스를 저장한 기록매체
US7305610B1 (en) 2000-04-06 2007-12-04 Google, Inc. Distributed crawling of hyperlinked documents
EP1154356A1 (en) * 2000-05-09 2001-11-14 Alcatel Caching of files during loading from a distributed file system
WO2001093071A2 (en) * 2000-05-29 2001-12-06 Saora Kabushiki Kaisha System and method for saving browsed data
US7082470B1 (en) * 2000-06-28 2006-07-25 Joel Lesser Semi-automated linking and hosting method
US6952730B1 (en) * 2000-06-30 2005-10-04 Hewlett-Packard Development Company, L.P. System and method for efficient filtering of data set addresses in a web crawler
US6675159B1 (en) 2000-07-27 2004-01-06 Science Applic Int Corp Concept-based search and retrieval system
US6618717B1 (en) * 2000-07-31 2003-09-09 Eliyon Technologies Corporation Computer method and apparatus for determining content owner of a website
US6832220B1 (en) * 2000-08-03 2004-12-14 Microsoft Corporation Method and apparatus for file searching, accessing file identifiers from reference page
US6959326B1 (en) * 2000-08-24 2005-10-25 International Business Machines Corporation Method, system, and program for gathering indexable metadata on content at a data repository
US20020165952A1 (en) * 2000-10-20 2002-11-07 Sewell James M. Systems and methods for remote management of diagnostic devices and data associated therewith
US8122236B2 (en) 2001-10-24 2012-02-21 Aol Inc. Method of disseminating advertisements using an embedded media player page
KR20030044008A (ko) 2000-10-24 2003-06-02 톰슨 라이센싱 소시에떼 아노님 내장형 미디어 플레이어 페이지의 크기 조정 방법
US7027974B1 (en) 2000-10-27 2006-04-11 Science Applications International Corporation Ontology-based parser for natural language processing
AU2001215798A1 (en) * 2000-10-31 2002-05-15 Netscape Communications Corporation Click-to-add, jot-it-down, and add banner
US7139747B1 (en) * 2000-11-03 2006-11-21 Hewlett-Packard Development Company, L.P. System and method for distributed web crawling
JP2002149699A (ja) * 2000-11-10 2002-05-24 Hitachi Ltd データ検索装置
US20020103920A1 (en) 2000-11-21 2002-08-01 Berkun Ken Alan Interpretive stream metadata extraction
US6981030B2 (en) * 2000-11-29 2005-12-27 Ncr Corporation Private data protection method for a network kiosk
US6766316B2 (en) 2001-01-18 2004-07-20 Science Applications International Corporation Method and system of ranking and clustering for document indexing and retrieval
US20020127530A1 (en) * 2001-03-06 2002-09-12 Weakly Mark A. System and method for tracking and displaying a user's progress in a distance learning environment
US7158971B1 (en) * 2001-03-07 2007-01-02 Thomas Layne Bascom Method for searching document objects on a network
US7386792B1 (en) 2001-03-07 2008-06-10 Thomas Layne Bascom System and method for collecting, storing, managing and providing categorized information related to a document object
US7555561B2 (en) * 2001-03-19 2009-06-30 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data broadcasting method
ATE363693T1 (de) * 2001-03-23 2007-06-15 Siemens Ag Methode zum auffinden von dokumenten
US7739327B2 (en) * 2001-04-05 2010-06-15 Playstream Inc. Distributed link processing system for delivering application and multi-media content on the internet
US20020147775A1 (en) * 2001-04-06 2002-10-10 Suda Aruna Rohra System and method for displaying information provided by a provider
US20020176611A1 (en) * 2001-05-23 2002-11-28 Dong Mimi C. Fingerprint addressing system and method
NO20013308L (no) * 2001-07-03 2003-01-06 Wide Computing As Apparat for söking på Internett
US7089233B2 (en) * 2001-09-06 2006-08-08 International Business Machines Corporation Method and system for searching for web content
DE60232732D1 (de) * 2001-09-20 2009-08-06 Hitwise Pty Ltd Verfahren und system zur charakterisierung des online-verhaltens
US20040133629A1 (en) * 2002-02-01 2004-07-08 Brian Reynolds Methods, systems and devices for automated web publishing and distribution
JP2003337699A (ja) * 2002-03-13 2003-11-28 Saora Inc 情報処理装置及びその方法、及びそのプログラムを記憶した記憶媒体
US7120641B2 (en) * 2002-04-05 2006-10-10 Saora Kabushiki Kaisha Apparatus and method for extracting data
US20030195896A1 (en) * 2002-04-15 2003-10-16 Suda Aruna Rohra Method and apparatus for managing imported or exported data
WO2003107206A1 (en) * 2002-05-08 2003-12-24 You Networks, Inc. Delivery system and method for uniform display of supplemental content
US7937471B2 (en) * 2002-06-03 2011-05-03 Inpro Network Facility, Llc Creating a public identity for an entity on a network
US8234358B2 (en) 2002-08-30 2012-07-31 Inpro Network Facility, Llc Communicating with an entity inside a private network using an existing connection to initiate communication
US7139828B2 (en) * 2002-08-30 2006-11-21 Ip Dynamics, Inc. Accessing an entity inside a private network
US7716322B2 (en) * 2002-09-23 2010-05-11 Alcatel-Lucent Usa Inc. Automatic exploration and testing of dynamic Web sites
US7509645B2 (en) * 2002-10-17 2009-03-24 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed network attached storage system
US8412766B1 (en) * 2002-10-17 2013-04-02 Cisco Technology, Inc. Method and apparatus for tracking client navigation among multiple resources in communication session information saved by a server
US7949785B2 (en) 2003-03-31 2011-05-24 Inpro Network Facility, Llc Secure virtual community network system
JPWO2004111877A1 (ja) * 2003-05-19 2006-07-20 サオラ株式会社 情報処理方法及びその装置、及びそのプログラム
US7331038B1 (en) * 2003-07-02 2008-02-12 Amazon.Com, Inc. Predictive prefetching to improve parallelization of document generation subtasks
US20050050021A1 (en) * 2003-08-25 2005-03-03 Sybase, Inc. Information Messaging and Collaboration System
US20050204173A1 (en) * 2004-03-10 2005-09-15 Giga-Byte Technology Co., Ltd. Method for automatically filling in user data using fingerprint identification
US7584221B2 (en) * 2004-03-18 2009-09-01 Microsoft Corporation Field weighting in text searching
GB2417342A (en) * 2004-08-19 2006-02-22 Fujitsu Serv Ltd Indexing system for a computer file store
US7606793B2 (en) * 2004-09-27 2009-10-20 Microsoft Corporation System and method for scoping searches using index keys
US7827181B2 (en) * 2004-09-30 2010-11-02 Microsoft Corporation Click distance determination
US7739277B2 (en) * 2004-09-30 2010-06-15 Microsoft Corporation System and method for incorporating anchor text into ranking search results
US7761448B2 (en) 2004-09-30 2010-07-20 Microsoft Corporation System and method for ranking search results using click distance
US7716198B2 (en) * 2004-12-21 2010-05-11 Microsoft Corporation Ranking search results using feature extraction
US20060200460A1 (en) * 2005-03-03 2006-09-07 Microsoft Corporation System and method for ranking search results using file types
US7792833B2 (en) * 2005-03-03 2010-09-07 Microsoft Corporation Ranking search results using language types
US20060212806A1 (en) * 2005-03-18 2006-09-21 Microsoft Corporation Application of presentation styles to items on a web page
US7444597B2 (en) * 2005-03-18 2008-10-28 Microsoft Corporation Organizing elements on a web page via drag and drop operations
US20060212792A1 (en) * 2005-03-18 2006-09-21 Microsoft Corporation Synchronously publishing a web page and corresponding web page resources
US8538969B2 (en) * 2005-06-03 2013-09-17 Adobe Systems Incorporated Data format for website traffic statistics
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US7599917B2 (en) * 2005-08-15 2009-10-06 Microsoft Corporation Ranking search results using biased click distance
US8095565B2 (en) * 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
US7680789B2 (en) * 2006-01-18 2010-03-16 Microsoft Corporation Indexing and searching numeric ranges
US9633356B2 (en) 2006-07-20 2017-04-25 Aol Inc. Targeted advertising for playlists based upon search queries
US9165040B1 (en) 2006-10-12 2015-10-20 Google Inc. Producing a ranking for pages using distances in a web-link graph
US8745183B2 (en) * 2006-10-26 2014-06-03 Yahoo! Inc. System and method for adaptively refreshing a web page
US20080104502A1 (en) * 2006-10-26 2008-05-01 Yahoo! Inc. System and method for providing a change profile of a web page
US20080104257A1 (en) * 2006-10-26 2008-05-01 Yahoo! Inc. System and method using a refresh policy for incremental updating of web pages
US20080263193A1 (en) * 2007-04-17 2008-10-23 Chalemin Glen E System and Method for Automatically Providing a Web Resource for a Broken Web Link
US20090055436A1 (en) * 2007-08-20 2009-02-26 Olakunle Olaniyi Ayeni System and Method for Integrating on Demand/Pull and Push Flow of Goods-and-Services Meta-Data, Including Coupon and Advertising, with Mobile and Wireless Applications
CN101409634B (zh) * 2007-10-10 2011-04-13 中国科学院自动化研究所 基于信息检索的互联网新闻影响力定量分析工具及方法
US7840569B2 (en) * 2007-10-18 2010-11-23 Microsoft Corporation Enterprise relevancy ranking using a neural network
US20090106221A1 (en) * 2007-10-18 2009-04-23 Microsoft Corporation Ranking and Providing Search Results Based In Part On A Number Of Click-Through Features
US9348912B2 (en) * 2007-10-18 2016-05-24 Microsoft Technology Licensing, Llc Document length as a static relevance feature for ranking search results
US20090210423A1 (en) * 2008-02-15 2009-08-20 Yahoo! Inc. Methods and systems for maintaining personal data trusts
US8812493B2 (en) * 2008-04-11 2014-08-19 Microsoft Corporation Search results ranking using editing distance and document information
CN101309292B (zh) * 2008-06-06 2012-02-15 中国联合网络通信集团有限公司 一种无线互联网sp业务url的记录方法及系统
CN102216945B (zh) * 2008-08-21 2013-04-17 杜比实验室特许公司 通过媒体指纹进行联网
US8677018B2 (en) * 2008-08-25 2014-03-18 Google Inc. Parallel, side-effect based DNS pre-caching
CN102264563A (zh) * 2008-10-23 2011-11-30 Bsst有限责任公司 带有热电装置的多模式hvac系统
US8738635B2 (en) 2010-06-01 2014-05-27 Microsoft Corporation Detection of junk in search result ranking
US8484373B2 (en) * 2010-10-25 2013-07-09 Google Inc. System and method for redirecting a request for a non-canonical web page
US8793706B2 (en) 2010-12-16 2014-07-29 Microsoft Corporation Metadata-based eventing supporting operations on data
US9495462B2 (en) 2012-01-27 2016-11-15 Microsoft Technology Licensing, Llc Re-ranking search results
CA2779235C (en) 2012-06-06 2019-05-07 Ibm Canada Limited - Ibm Canada Limitee Identifying unvisited portions of visited information
CN102831249A (zh) * 2012-09-19 2012-12-19 河南锐之旗信息技术有限公司 一种静态页面生成方法
CN103678571B (zh) * 2013-12-09 2017-01-25 中国科学院深圳先进技术研究院 应用于单台多核处理器主机的多线程网络爬虫执行方法
CN104331511B (zh) * 2014-11-24 2018-02-09 飞狐信息技术(天津)有限公司 静态页面更新方法及装置
US9916320B2 (en) * 2015-04-26 2018-03-13 International Business Machines Corporation Compression-based filtering for deduplication
US10268465B2 (en) * 2016-10-24 2019-04-23 International Business Machines Corporation Executing local function call site optimization
CN110008392A (zh) * 2019-03-07 2019-07-12 北京华安普特网络科技有限公司 一种基于网络爬虫技术的网页篡改检测方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4323968A (en) * 1978-10-26 1982-04-06 International Business Machines Corporation Multilevel storage system having unitary control of data transfers
US4847830A (en) * 1987-12-02 1989-07-11 Network Equipment Technologies, Inc. Method and apparatus for automatic loading of a data set in a node of a communication network
US5291601A (en) * 1989-06-01 1994-03-01 Hewlett-Packard Company Shared libraries implemented with linking program loader
US5010344A (en) * 1989-12-28 1991-04-23 International Business Machines Corporation Method of decoding compressed data
US5604899A (en) * 1990-05-21 1997-02-18 Financial Systems Technology Pty. Ltd. Data relationships processor with unlimited expansion capability
EP0463874A2 (en) * 1990-06-29 1992-01-02 Digital Equipment Corporation Cache arrangement for file system in digital data processing system
US5204958A (en) * 1991-06-27 1993-04-20 Digital Equipment Corporation System and method for efficiently indexing and storing a large database with high data insertion frequency
US5357617A (en) * 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
EP0651898A4 (en) * 1993-05-20 2003-01-08 Moore Business Forms Inc COMPUTER INTEGRATION NETWORK FOR ROUTING CLIENT ORDERS FROM A CENTRAL COMPUTER TO DIFFERENT SUPPLIERS
US5493676A (en) * 1993-06-29 1996-02-20 Unisys Corporation Severe environment data recording system
US5467264A (en) * 1993-06-30 1995-11-14 Microsoft Method and system for selectively interdependent control of devices
US5708780A (en) * 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5712979A (en) * 1995-09-20 1998-01-27 Infonautics Corporation Method and apparatus for attaching navigational history information to universal resource locator links on a world wide web page

Also Published As

Publication number Publication date
EP3086246A3 (en) 2016-11-30
KR100330576B1 (ko) 2002-05-09
EP1241594A2 (en) 2002-09-18
TW311996B (ko) 1997-08-01
US6032196A (en) 2000-02-29
EP3086246A2 (en) 2016-10-26
CN1202257A (zh) 1998-12-16
AU1417597A (en) 1997-07-03
ZA9610561B (en) 1998-07-08
CN1192317C (zh) 2005-03-09
BR9611149A (pt) 1999-03-30
CN1811757B (zh) 2010-12-22
AU694386B2 (en) 1998-07-16
EP1241594A3 (en) 2005-03-09
CA2240350A1 (en) 1997-06-19
CN1811757A (zh) 2006-08-02
JPH10512699A (ja) 1998-12-02
WO1997022069A1 (en) 1997-06-19
JP3160719B2 (ja) 2001-04-25
US5974455A (en) 1999-10-26
EP0867007A1 (en) 1998-09-30

Similar Documents

Publication Publication Date Title
KR100330576B1 (ko) 컴퓨터네트워크로부터월드와이드웹상의페이지위치을파악하고문서위치를파악하는시스템및방법
US6754799B2 (en) System and method for indexing and retrieving cached objects
US10210256B2 (en) Anchor tag indexing in a web crawler system
US6754800B2 (en) Methods and apparatus for implementing host-based object storage schemes
US8463846B2 (en) File bundling for cache servers of content delivery networks
US6304872B1 (en) Search system for providing fulltext search over web pages of world wide web servers
US6301614B1 (en) System and method for efficient representation of data set addresses in a web crawler
US6928452B2 (en) Tiered and content based database searching
US6996680B2 (en) Data prefetching method
JP4944008B2 (ja) ファイルシステム内での効率的なファイルコンテンツをサーチするためのシステム、方法及びコンピュータアクセス可能な記録媒体
EP0843267A2 (en) Processing multiple database transactions in the same process to reduce process overhead and redundant retrieval from database servers
US20040117398A1 (en) Prefetch appliance server
US20080040538A1 (en) File readahead method with the use of access pattern information attached to metadata
US20090222454A1 (en) Method and data processing system for restructuring web content
US10515078B2 (en) Database management apparatus, database management method, and storage medium
US20070022133A1 (en) Method and apparatus for automatically and configurably adjusting allocated database resources to avoid denial of service
CN112306957A (zh) 获取索引节点号的方法、装置、计算设备和存储介质
US7870129B2 (en) Handling error documents in a text index
US8818990B2 (en) Method, apparatus and computer program for retrieving data
WO2021017655A1 (zh) 获取索引节点号的方法、装置、计算设备和存储介质
US20040249827A1 (en) System and method of retrieving a range of rows of data from a database system
JP2004086841A (ja) 情報処理装置および方法
JPH01166247A (ja) 分散システムのデータ参照方式
JPH05274199A (ja) ファイルシステムにおけるレコード格納方式

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: 20130219

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140220

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160219

Year of fee payment: 15

EXPY Expiration of term