KR20020096519A - 인터넷 상의 정보수집 시스템 - Google Patents

인터넷 상의 정보수집 시스템 Download PDF

Info

Publication number
KR20020096519A
KR20020096519A KR1020010035079A KR20010035079A KR20020096519A KR 20020096519 A KR20020096519 A KR 20020096519A KR 1020010035079 A KR1020010035079 A KR 1020010035079A KR 20010035079 A KR20010035079 A KR 20010035079A KR 20020096519 A KR20020096519 A KR 20020096519A
Authority
KR
South Korea
Prior art keywords
item
information
html
user
node
Prior art date
Application number
KR1020010035079A
Other languages
English (en)
Other versions
KR100446209B1 (ko
Inventor
공훈의
Original Assignee
주식회사 머니투데이
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 머니투데이 filed Critical 주식회사 머니투데이
Priority to KR10-2001-0035079A priority Critical patent/KR100446209B1/ko
Publication of KR20020096519A publication Critical patent/KR20020096519A/ko
Application granted granted Critical
Publication of KR100446209B1 publication Critical patent/KR100446209B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

각각의 클라이언트들에게 제공되는 정보수집 에이전트를 통하여 정보제공서버의 웹페이지로부터 사용자가 원하는 정보를 지시하는 HTML 엘리먼트를 아이템으로 지정하면, 이 아이템들의 내용을 사용자에게 일괄적으로 보여주고, 동시에 일반 웹브라우저 기능을 수행하며, 지정된 아이템들의 내용을 지속적으로 갱신해줌과 동시에 아이템의 갱신된 내용들을 계속 저장한다. 더욱이, 관리서버는 사용자가 지정한 아이템 정보들을 인터넷을 통해 수집하고, 이 정보들을 데이터베이스를 통해 유지/관리하며, 관리자에 의해 지정된 아이템들을 업데이트하고 이 내용을 클라이언트 정보수집 에이전트에 직접 전송시킨다.
따라서, 사용자에게는 인터넷의 여러 웹페이지에 중에서 자신이 원하는 정보들만을 선택하여 별도의 노력없이 지속적으로 갱신되는 내용을 총괄적으로 볼 수 있게 되는 편의성이 제공되고, 관리자에게는 사용자가 관심을 갖는 정보들에 대한 정확한 데이터를 보유하게 하여 마케팅이나 사이트 운영의 발전에 도움을 주게 한다.

Description

인터넷 상의 정보수집 시스템{System for collecting information based on internet}
본 발명은 인터넷 상의 정보수집 시스템에 관한 것으로, 보다 상세하게는 인터넷에 연결된 각각의 정보제공서버들로부터 사용자가 원하는 정보만을 선택적으로 그리고 일정주기로 갱신하여 제공하도록 한 정보수집 시스템에 관한 것이다.
일반적으로 인터넷을 통하여 사용자가 정보를 수집하고자 하는 경우에는 해당정보를 제공하는 서버에 접속하여 검색을 통하여 해당정보를 얻는다. 가령, 데이 트레이딩(day trading)을 주로 하는 사용자는 각종 언론매체가 운영하는 뉴스 서비스 사이트를 주기적으로 방문하여 헤드라인 기사나 스폿뉴스 등을 수시로 확인하는 것이 필수적이다. 그러나, 이러한 정보수집을 몇 분이나 몇 초 단위로 반복하여 수행한다는 것은 상당히 곤란하며, 정보수집의 대상 사이트가 많아질수록 더욱 그러하다. 더욱이, 이러한 작업이 동시에 이루어져야 하는 경우에는 실제적으로 불가능하다.
따라서, 사용자가 관심을 갖는 정보만을 선택적으로 인터넷에 연결된 다수의 정보제공서버들로부터 동시에 실시간으로 얻을 수 있게 해주고, 지속적으로 일정 시간단위로 갱신해주는 기능을 제공하는 것이 사용자 편의를 위해 필요하게 되었다.
그러나, 이러한 기능을 구현하기 위해서는 몇 가지의 전제조건이 선결되어야 한다.
첫째, 사용자가 얻고자 하는 정보에 대응하는 정보제공서버내의 아이템이 어떤 것인지, 또한 해당 아이템의 갱신여부를 체크하기 위해 어느 정도의 주기가 필요한지 등을 쉽게 설정할 수 있는 사용자 인터페이스가 제공되어야 한다.
둘째, 정보제공서버의 웹페이지는 HTML 언어로 이루어져 있고 HTML은 엘리먼트(element; 태그)를 노드(node)로 하는 다중 트리의 구조를 갖는데, 사용자가 지정한 아이템에 대해 다중 트리 내에서의 위치를 기억시키고 찾아내는 알고리즘이 필요하다. 즉, 계속적으로 HTML의 내용이 갱신되는 웹페이지의 경우, 이 다중 트리의 형태가 바뀔 수 있기 때문이다. 예를 들어, 한 그루의 나무의 특정 나뭇가지에 있는 한 개의 특정 나뭇잎을 찾기 위해서는 뿌리에서 시작해 그 나뭇잎까지 이르는 모든 가지들의 특징과 경로를 제대로 기억해야 다른 가지들의 변형이나 추가 또는 삭제와 관계없이 찾아낼 수 있다.
셋째, 다수의 정보제공서버들의 웹페이지를 동시에 분석하기 위해서는 HTML 문서를 빠르게 다중 트리로 만들고 각 노드에 접근할 수 있게 하는 알고리즘이 필요하다. 즉, 태그로 이루어진 일반 HTML 문서를 프로그램적으로 접근할 수 있도록 각 태그를 노드를 기준으로 하는 다중 트리 형태를 만들고, 각 노드의 특성과 내용을 원래의 HTML 문서의 문법에 관계없이 알 수 있게 하거나 변경, 추가시킬 수 있게 해주는 Document Object Model(DOM)이 있는데, 대부분의 DOM들은 웹브라우저 상에서의 HTML 출력과 사용자 인터페이스 위주로 디자인되어 많은 기능을 대비하느라 다중 트리를 생성하는데 비교적 많은 시간이 소요된다.
넷째, 사용자가 지정한 아이템들의 정보를 계속적으로 갱신해 주는 프로세스와 갱신되는 정보들을 보존하여 일정 시점부터 현재까지의 모든 내용을 일괄적으로 파악할 수 있게 하는 저장기능이 요구된다.
한편, 인터넷 사용자들의 성향과 관심 분야를 알아내고 분석하는 것은 회사 운영에 있어서 반드시 필요한 것이지만, 실제로 상당히 어렵고 많은 비용을 필요로 한다.
그러나, 상기한 바와 같은 기능을 사용자에게 제공하고, 사용자별로 설정된 관심 아이템에 관한 데이터를 제공받는다면, 이 데이터를 기반으로 사용자별 성향이나 관심분야를 적은 비용으로 효율적으로 분석할 수 있으며, 실제 오차율이 적은 양질의 결과를 얻을 수 있다.
더욱이, 상기한 기능이 전적으로 클라이언트측에서 수행된다면, 인터넷 접속속도나 컴퓨터 처리속도 등의 사용자의 인터넷 인프라에 따라 기능의 제약을 받을 가능이 많아지므로, 사용자별 관심 아이템에 대한 데이터를 제공받아 서버 시스템을 통하여 정보를 수집하여 해당 사용자에게 전송함으로서 사용자는 자신의 인터넷 환경을 넘어서는 양질의 정보를 제공받을 수 있다.
본 발명의 목적은 인터넷을 통하여 연결된 다수의 정보제공서버들로부터 사용자가 관심을 갖는 정보만을 선택적으로 동시에 얻을 수 있게 해주고, 지속적으로 일정 시간단위로 갱신해주는 정보수집시스템을 제공하는데 있다.
본 발명의 다른 목적은 사용자 자신들이 설정하여 수집하는 아이템에 관한데이터를 제공받아 이 데이터를 기반으로 사용자별 성향이나 관심분야를 적은 비용으로 효율적으로 분석함으로서 오차율이 적은 양질의 결과를 얻음과 동시에 사용자를 대신하여 정보를 수집하여 제공하는 정보수집시스템을 제공하는 있다.
본 발명의 다른 목적들과 특징들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.
도 1은 본 발명이 적용되는 인터넷 구성도이고,
도 2는 본 발명에 따른 클라이언트 정보수집 에이전트의 구성을 나타내는 블록도이고,
도 3은 본 발명의 서버 시스템의 구성을 나타내는 블록도이고,
도 4는 정보제공서버의 웹페이지로부터 HTML 엘리먼트를 지정하는 과정을 설명하고,
도 5는 도 4로부터 지정된 엘리먼트를 아이템으로 브라우징하는 것을 보여주며,
도 6은 본 발명에 따라 아이템 생성모듈에 의해 아이템이 생성되는 과정을 설명하는 플로우챠트이고,
도 7은 특정 웹페이지의 HTML 문서의 트리 구조를 설명하는 블록도이고,
도 8은 본 발명에 따른 클라이언트로부터의 정보수집방법을 나타내는 플로우챠트이다.
본 발명에 일측면에 따르면, 다수의 클라이언트들과, 이 클라이언트를 회원으로 등록하여 관리하는 관리서버와, 다수의 정보제공서버들이 인터넷을 통하여 상호 연결되고, 클라이언트들 각각에는 사용자가 필요로 하는 정보만을 정보제공서버들로부터 선택적, 주기적으로 수집하기 위한 정보수집 에이전트가 내장되며, 정보수집 에이전트는 일반 웹브라우저 기능을 수행함과 동시에 정보제공서버의 웹페이지의 단위정보인 HTML 엘리먼트를 사용자가 지정하도록 하고, HTML 문서에 대해 다중 트리 형태의 DOM(Document Object Model) 메커니즘에 접근할 수 있는 기능을 제공하며, 사용자가 지정한 엘리먼트에 대응하는 아이템들의 내용을 보여주는 웹브라우저 제어모듈과, HTML 문서의 다중 트리 구조를 빠르고 효율적으로 생성해주는 HTML 트리 생성모듈과, 사용자가 지정한 엘리먼트를 하나의 아이템으로 만들어주는 아이템 생성모듈과, 하나의 아이템이 HTML 트리 생성모듈에 의해 만들어진 다중 트리에서 유효한 값을 지니는지 검사하는 아이템 검사모듈과, 아이템이 가리키는 엘리먼트의 내용이 갱신될 때, 갱신된 내용들을 데이터베이스에 계속적으로 보관하는아이템 저장모듈 및 아이템 리스트를 가지고 리스트에서 아이템을 추가 또는 삭제하고, 타이머를 통해 검사될 아이템의 HTML을 인터넷을 통해 다운로드하며, 아이템 리스트의 저장과 로드, 관리서버로의 전송, 사용자에게 보여줄 내용의 제작을 관리하는 클라이언트 아이템 매니저를 포함하는 인터넷 상의 정보수집 시스템이 개시된다.
바람직하게, 관리서버는 인터넷을 통하여 상기 클라이언트 정보수집 에이전트와의 직접적인 정보 입출력을 담당하는 네트워크 입출력 제어모듈과, 클라이언트들로부터 전송된 아이템 정보를 DB 서버에 저장하는 서버 아이템 저장모듈과, HTML 문서의 다중 트리 구조를 빠르고 효율적으로 생성해주는 서버 HTML 트리 생성모듈과, 하나의 아이템이 서버 HTML 트리 생성모듈에 의해 만들어진 다중 트리에서 유효한 값을 지니는지 검사하는 아이템 검사모듈 및 관리서버가 직접 검사해야 할 아이템들의 리스트를 가지고 이 중에서 검사가 이루어져야 할 아이템의 HTML 문서를 인터넷을 통해 다운로드하며 클라이언트로 전송될 내용의 제작 등을 관리하는 서버 아이템 매니저를 포함한다.
본 발명의 아이템에는 해당 웹페이지내의 위치정보, 대응하는 엘리먼트가 지정된 웹페이지의 URL, 엘리먼트의 텍스트 및 아이템의 조회주기가 저장된다.
바람직하게, 아이템의 위치정보는 아이템의 HTML 엘리먼트에 대응하는 노드로부터 해당 웹페이지의 트리구조의 최상위 노드까지 노드 특징과 부모노드와의 관계에 대한 정보를 포함한다.
본 발명의 다른 측면에 따르면, 다수의 클라이언트들과, 클라이언트를 회원으로 등록하여 관리하는 관리서버와, 다수의 정보제공서버들이 인터넷을 통하여 상호 연결되고, 클라이언트들 각각에는 사용자가 필요로 하는 정보만을 정보제공서버들로부터 선택적, 주기적으로 수집하기 위한 정보수집 에이전트가 내장되는 인터넷 상의 정보수집 시스템에 적용되며, 사용자가 상기 정보제공서버의 특정 웹페이지에서 선택된 HTML 엘리먼트를 아이템으로 지정하는 단계, 정보수집 에이전트의 HTML 트리 생성모듈을 통해 해당 웹페이지의 트리 구조를 생성하는 단계, 사용자에 의해 지정된 HTML 엘리먼트의 정보를 동적 HTML 객체모델을 통해 얻은 후, 이 HTML 엘리먼트에 일치되는 목표 엘리먼트 노드를 생성된 트리 구조에서 찾는 단계, 일치된 노드로부터 트리 구조의 최상위 노드까지 해당노드 특징과 부모노드와의 관계에 대한 정보를 아이템에 저장하는 단계 및 HTML 엘리먼트가 지정된 웹페이지의 URL, 엘리먼트의 텍스트, 아이템의 조회주기를 아이템에 저장하는 단계를 포함하는 인터넷 상의 정보수집 방법이 개시된다.
또한, 클라이언트의 아이템 정보를 관리서버에 전송하여 관리서버로부터 정보를 받게되는 아이템들을 구별하는 단계, 클라이언트에 검사할 아이템이 존재하는지를 판단하고, 존재하는 경우 해당 아이템에 지정된 URL의 HTML 스트링을 인터넷을 통해 다운로드받고, HTML 트리 생성모듈을 통해 다운로드받은 HTML의 트리 구조를 생성한 후, 정보수집 에이전트의 아이템 검사 모듈로 아이템이 유효한지를 확인하는 단계, 엘리먼트가 무효화되었는지를 판단하여, 무효화되었으면 이를 사용자에게 출력하여 통보하고, 무효화되지 않았으면 변경되었는지를 판단하여, 변경되었으면, 갱신된 아이템 내용을 사용자에게 출력하는 단계 및 관리서버로부터 받은 아이템 정보가 있는지를 판단하여, 아이템 정보가 있으면, 해당 아이템의 갱신된 내용을 사용자에게 출력하는 단계를 더 포함할 수 있다.
본 발명을 설명하는데 있어, 사용되는 용어에 대해서 미리 정의하면, 다음과 같다.
사용자가 웹브라우저 상의 하나의 웹페이지에서 특정 아이템을 지정한다는 표현에 있어서 아이템(item), HTML 문서에서의 태그(Tag), DOM 메커니즘에서의 엘리먼트(element), 다중 트리에서의 노드(node), 아래에 설명될 HTML 트리 생성모듈에서의 엘리먼트노드(element node) 등은 모두 약간씩 다르지만 대체적으로 동일한 의미를 갖는다.
또한, 도 4에 도시된 바와 같이, 사용자가 특정 웹페이지중의 엘리먼트(30)를 선택하여 도 5에 도시된 바와 같이, 자신의 아이템(50)으로 지정한다는 것은 해당 정보에 대해 지속적으로 갱신되는 정보를 제공받는다는 것을 의미한다.
즉, 본 발명에서 사용되는 아이템이란 사용자가 원하는 정보가 포함되어 있는 객체를 뜻하는데, 엘리먼트 자체에 대한 정보나 해당 웹페이지의 다중 트리안에서의 엘리먼트의 위치정보 등이 들어 있다.
도 1은 본 발명이 적용되는 인터넷 구성도를 나타내고 있다.
다수의 클라이언트들(100)은 본 발명에 따른 정보수집 에이전트(150)를 내장하면 인터넷(200)을 통하여 각각의 정보제공서버들(300)과 정보수집 에이전트를 제공하며 DB서버(450)가 연결된 관리서버(400)에 연결된다.
클라이언트(100)는 일반적인 웹브라우징이 가능한 컴퓨터 시스템이나 개인용휴대단말장치를 포함할 수 있다. 사용자는 관리서버(400)에 회원으로 등록되어 정보수집 에이전트를 제공받거나 다른 서비스를 제공받을 수 있다.
정보수집 에이전트(150)는 윈도우즈를 OS로 하는 일반 인터넷 사용자를 위한 프로그램이거나 무선 PDA나 IMT-2000 단말장치에 적용되는 OS 기반의 프로그램일 수 있다.
도 2를 참조하면, 본 발명에 따른 클라이언트 정보수집 에이전트를 보여주는 블록도가 도시되어 있다.
도시된 바와 같이, 본 발명에 따른 클라이언트 정보수집 에이전트는 일반 웹브라우저 기능을 수행함과 동시에 정보제공서버의 웹페이지에서 엘리먼트를 지정하고 HTML 문서에 대해 다중 트리형태의 DOM 메커니즘에 접근할 수 있는 기능을 제공할 수 있으며, 사용자가 지정한 아이템들의 내용을 보여주는 웹브라우저 제어모듈
(153)과, HTML문서의 다중 트리 구조를 빠르고 효율적으로 생성해주는 HTML 트리 생성모듈(155)과, 사용자가 지정한 엘리먼트(30)를 하나의 아이템(50)으로 만들어주는 아이템 생성모듈(156), 하나의 아이템(50)이 HTML 트리 생성모듈(155)에 의해 만들어진 다중 트리에서 유효한 값을 지니는지 검사하는 아이템 검사모듈(154)과, 아이템이 가리키는 엘리먼트의 내용이 갱신될 때, 이 갱신된 내용들을 데이터베이스(160)에 계속적으로 보관하는 아이템 저장모듈(157) 및 아이템 리스트를 가지고 리스트에서 아이템을 추가 또는 삭제하며, 타이머를 통해 검사될 아이템의 HTML을 인터넷을 통해 다운로드하며, 아이템 리스트의 저장과 로드, 관리서버(400)로의 전송, 사용자에게 보여줄 내용의 제작 등을 관리하는 클라이언트 아이템 매니저(152)를 포함한다.
웹브라우저 제어모듈(153)은 두 개의 구성요소로 이루어지는데, 하나는 웨브라우저 컨트롤(WebBrowser Control)과 HTML 컴포넌트를 포함한다.
웹브라우저 컨트롤러는 사용자에게 정보를 직접 표현해주고 사용자의 요구를 마우스나 키보드를 통해 받아들일 수 있는 인터페이스를 기본적으로 제공하는 기능을 한다.
하나의 어플리케이션이 기본적으로 웹서핑을 할 수 있게 하려면 HTML문서로 되어 있는 것을 사용자가 시각적으로 이해할 수 있게 표현해 주고 사용자가 원하는 URL을 지정할 수 있게 해주는 인터넷 익스플로러나 넷스케이프와 같은 웹브라우저가 필요하다. 본 발명에서는 필수적인 웹브라우저의 기능을 제공하기 위해 마이크로 소프트사의 윈도우에 기본적으로 제공되는 액티브X 컨트롤(ActiveX control) 중 하나인 웹브라우저 컨트롤을 사용한다.
인터넷 익스플로러와 같은 브라우저를 실행했을 때, 메뉴나 툴바를 제외한 웹문서를 보여주는 윈도우 부분이 바로 웹브라우저 컨트롤이다. 실제 인터넷 익스플로러를 작동시키면 Iexplore.exe라는 아주 작은 프로그램이 실행되어 대부분의 기능을 담당하는 웹브라우저 컨트롤을 불러오고 대부분의 기능은 웹브라우저에 의해 제어된다. 즉, 웹브라우저 컨트롤을 사용한다는 것은 인터넷 익스플로러와 같은 브라우저에서 나타나는 대부분의 기능이 가능하다는 것을 의미하며, 이것이 본 발명에서 웹브라우저 컨트롤을 사용하는 이유이다.
웹브라우저 컨트롤은 기본적인 웹브라우저의 기능외에 HTML 문서가 로드될때 발생되는 이벤트들을 처리할 수 있는 기능을 제공하는데 이 기능의 변형을 통해 웹서핑시의 변형된 기능을 추가할 수도 있다.
HTML 컴포넌트는 마이크로 소프트사에서 제공하는 인터넷 기술의 가장 기본이 되는 컴포넌트중 하나로 웹브라우저 액티브X 컨트롤에 의해 자동적으로 호스팅될 수도 있고, Active Document server interfaces를 구축해 놓았기 때문에 일반적인 통신 인터페이스를 통해 호스팅되어 사용될 수 있는데 본 발명에서는 정보수집 에이전트에 포함된다.
HTML 컴포넌트는 액티브X 스크립트 엔진(ActiveX Script Engine), 자바 애플릿(Java Applet), 플러그-인(Plug-Ins) 등과 HTML 문서에 의해 사용될 수 있는 오브젝트들을 호스팅하여 HTML 문서의 파싱, 동적 HTML 객체 모델(Dynamic HTML Object Model)이라 불리는 Document Object Model의 구축과 인터페이스 및 웹브라우저 컨트롤로의 렌더링 루틴 등의 세 가지 기본적인 기능을 제공한다.
HTML 컴포넌트를 호스팅함으로서 상기한 세 가지 기능외에 추가적으로 어떤 컨트롤들을 함수형태를 통해 제공받는데 이러한 것에는 standard connection point interfaces, IDocHostUIHandler Interface, ICustomDoc Interface 등이 있다.
(1) 동적 HTML 객체 모델 인터페이스
사용자가 웹브라우저의 웹페이지중 하나의 엘리먼트를 아이템으로 지정할 때, 지정된 엘리먼트가 구체적으로 원래의 HTML 문서중 어떤 태그에 해당하는지 알기 위해서는 동적 HTML 객체 모델과의 인터페이스를 연결해야 하고, 이를 통해 해당 엘리먼트의 태그 이름, 태그 특성, 태그에 포함된 오브젝트 및 태그에 포함된 텍스트 등의 정보를 얻거나 변형하게 된다.
(2) ICustomDoc 인터페이스
기본적으로 웹브라우저에서 하나의 엘리먼트를 핀포인트 아이템으로 지정하고자 할 때, 목적이 되는 엘리먼트를 마우스로 선택하고 웹브라우저 밖의 메뉴를 통하여 아이템으로 지정하도록 할 수도 있지만, 좀더 향상되고 편리한 형태의 사용자 인터페이스를 지원할 필요가 있는데, 이때 ICustomDoc 인터페이스를 통해 웨브라우저 컨트롤에서 사용되는 기본적인 유저 인터페이스 핸들러(UI handler)를 원하는 형태로 바꿀 수 있다.
(3) IDocHostUIHandler
방금 위에서 설명된 유저 인터페이스 핸들러의 정의된 명칭으로 본 발명에서는 독립적인 유저 인터페이스 핸들러를 제공하게 된다. 즉, 도 4에 도시된 바와 같이, 웹브라우저에서 우측 마우스 버튼을 눌렀을 때 원래 웹브라우저용 컨텍스트 윈도우 메뉴가 나오는 것을 변형하여 아이템으로 지정할 수 있게 하는 기능을 갖는다. 본 발명에 적용되는 새로운 유저 인터페이스 핸들러는 상기한 IcustomDoc 인터페이스를 통해 세팅된다.
(4) standard connection point interfaces
웹브라우저 컨트롤없이 HTML 컴포넌트를 사용하여 HTML문서를 실행없이 로드하여 다중 트리 형태의 DOM 메카니즘에 접근할 때(UI-less HTML 파서로서의 기능) 등에 사용하는 방법으로서 안정적인 측면은 있으나 속도와 시스템 할당 측면에서 단점이 있다.
상기한 바와 같이, 사용자가 특정 웹페이지에서 특정 엘리먼트를 지정한다는 것은 지정된 엘리먼트의 내용이 자동적으로 계속 갱신되기를 원한다는 것이고, 이를 위해 필요한 정보들을 모아놓은 단위를 아이템이라고 한다. 도 2의 50은 하나의 아이템이 사용자에게 표현된 예로서, 첫 번째 줄의 굵은 글씨는 도 1의 30과 같이 지정된 한 엘리먼트의 최근 갱신된 내용을 나타내는 것이고, 두 번째 줄의 중괄호 안에 있는 것은 엘리먼트가 지정된 웹페이지의 제목을 나타내는 것이며, 마지막 세 번째 줄의 내용은 해당 엘리먼트의 조회 간격이나 최근에 갱신된 시각 등의 정보를 보여주는 것이다.
아이템에는 기본적으로 지정된 엘리먼트의 웹페이지 주소와 이 웹페이지에서 엘리먼트의 위치를 찾을 수 있게 하는 해당 HTML의 다중 트리 구조에서의 위치 정보를 저장하게 된다. HTML 문서는 HTML의 태그를 하나의 트리 노드로 하는 다중 트리 구조를 갖게 되고 이를 DOM 형식으로 해석하면 노드의 단위가 태그 대신 엘리먼트로 불리게 된다. 본 발명에서는 위치 정보를 구하기 위해 다중 트리 구조를 참조할 때, DOM의 형식이 아닌 차후에 설명될 HTML 트리 생성 모듈에 의해 생성된 트리 구조를 사용하게 되는데 DOM의 형태와 트리 구조는 동일하며, 여기서의 노드는 엘리먼트 노드라는 명칭을 사용하게 된다.
도 6을 참조하여 아이템 생성모듈(156)에 의해 아이템이 생성되는 과정을 설명한다.
먼저, 도 4에 도시된 바와 같이, 본 발명의 유저 인터페이스 핸들러의 메뉴 형식(32)을 통해 사용자로부터 특정 웹페이지에서 선택된 HTML 엘리먼트를 아이템으로 지정해 달라는 요구를 받는다(단계 S10).
이어 HTML 트리 생성모듈(155)을 통해 해당 웹페이지의 트리 구조를 생성하고(단계 S20), 사용자에 의해 지정된 HTML 엘리먼트의 정보를 동적 HTML 객체모델을 통해 얻은 후, 이 HTML 엘리먼트에 일치되는 목표 엘리먼트 노드를 생성된 트리 구조에서 찾는다(단계 S30).
일치된 노드로부터 트리구조의 최상위 노드까지 해당노드 특징과 부모노드와의 관계에 대한 정보를 아이템에 저장한다(단계 S40).
여기서 본 발명에서 사용하게 될 위치 정보 저장 방식을 설명하기 전에 위치 정보의 간단한 예를 들어 보겠다. 어떤 HTML 문서가 도 7과 같은 형태로 다중 트리를 이룬다고 하고 모든 노드는 태그이름이 있고 크기와 바탕색이라는 특징을 갖는다고 가정하자(태그의 특성은 이보다 훨씬 많고 복잡하다). 이때 노드15의 위치 정보로 "15번째 있는 노드"라고 사용할 수 있다. 하지만 이 방법은 가령 노드4의 자식 노드가 한 개 추가되기만 해도 원래의 노드15의 위치 정보는 무효로 된다. 즉, 원래의 목표 노드인 노드15와는 관계없는 노드4의 작은 변화에도 목표 노드를 찾지 못하게 되는 것이다. 이러한 단점들을 피하고 효율적인 위치 정보를 얻기 위해 본 발명은 다음과 같은 방법으로 위치 정보를 저장한다.
(1) 목표 노드부터 최상위 노드까지 각 노드의 정보를 연속적으로 저장한다.
위에서처럼 노드15의 위치정보를, 예를 들면, 노드15 - 노드6 - 노드3 - 노드1 의 순서대로 태그의 이름과 특징을 저장한다.
(2) 태그의 종류에 따라 각 특징이 유효한지 정의하여 이를 저장한다.
이는 HTML문서가 변경되었을 때 이것이 변하기 전과 비교해서 실질적으로 변경되었는가를 판단하는 기준으로 사용된다. 가령, 어떤 HTML 문서의 한 테이블의 색깔과 넓이가 변경되었다고 가정하면, 이것이 실질적으로 바뀌었다고 판단할 것인지 아닌지를 판단하는데 사용한다는 것이다. 물론 실질적으로 바뀌었을 수도 있는 것이고 아닐 수도 있는 것인데, 유효한 특징이 많이 정의될수록 작은 변화도 알아차릴 수 있지만, HTML 제공자가 실질적인 의미를 바꾸지 않은 것들을 바꾼 것으로 판단하게 된다. 예를 들면, 도 7에서 TABLE을 태그이름으로 할 때 바탕색 특징을 유효한 것으로 정의하면, 노드4와 노드5는 다른 형태를 지니는 것이 되고, 유효하지 않은 것으로 정의하면 노드4와 노드5는 같은 형태로 판단된다.
(3) 부모 노드의 자식 노드들 중 자신의 형태와 같은 노드가 존재하는 개수를 저장하여 자신의 위치를 파악한다.
이러한 방식으로 위치 정보를 저장한 다음, 엘리먼트가 지정된 웹페이지의 URL, 엘리먼트의 텍스트, 아이템의 조회주기 등을 아이템에 저장하여(단계 S50) 하나의 아이템을 완성한다.
한편, 아이템에는 사용자가 지정한 엘리먼트의 HTML 문서상의 위치 정보가 포함되고, 이를 위해 HTML 문서의 다중 트리 구조가 필요함은 앞에서 설명되었다.
기계어로 작성된 다른 실행파일 들과는 달리, HTML 문서는 일반 텍스트 모드로 작성되어 있다가 브라우저를 통해 실행될 때에 컴퓨터가 이해할 수 있는 형태로 전환되는 스크립트 언어이다.
HTML이 브라우저에서 실행되었을 때, 사용자에게 보여진 어떤 한 부분의 특성을 얻거나 내용을 바꾸는 것을 HTML문서를 통해 직접 제어하려고 한다면, HTML이 단지 연속된 텍스트 정보인 이유로 아주 어려운 것이 된다. 그래서 프로그램적으로 이러한 기능을 사용할 수 있도록 하는 메커니즘이 고안되었고 이를 Document Object Model(DOM) 메커니즘이라 한다.
일반적으로 가장 많이 사용하는 브라우저는 인터넷 익스플로러와 넷스케이프가 있고 이 브라우저들은 각각의 DOM 서비스를 제공하는데, 두 DOM의 형태가 대부분은 일치하지만 일부는 다르다. DOM을 통해 접근할 수 있는 오브젝트들을 엘리먼트라 부르는데, 이는 HTML 문서의 태그에 해당되고, 모든 엘리먼트들은 하나의 다중 트리 구조로 존재하게 되며, DOM을 통해 각각의 Element의 정보를 얻거나 변형할 수 있다.
일 예로, 인터넷 익스플로러가 사용하는 웹브라우저를 사용하므로서 동적 HTML 객체 모델이라 명칭된 DOM을 통해 엘리먼트에 접근할 수 있고, 이를 아이템 생성에 있어서 사용할 수 있지만 웹브라우저에서 제공하는 DOM은 풍부한 기능을 제공해 주는 대신 시스템의 리소스를 많이 사용하고 속도가 느린 단점으로 인해 많은아이템을 생성하고 갱신하는 본 발명의 특성상 적합하지 않다.
그래서 본 발명에서는 일반 DOM의 기능 중, 본 발명에 필요한 기능만을 수행할 수 있되 생성과 실행이 빠르고 상대적으로 적은 시스템 리소스를 사용하는 HTML 트리 생성모듈을 적용한다.
본 발명의 HTML 트리 생성모듈에 의해 생성된 트리 구조의 각 노드의 기능은 일반 DOM에서의 엘리먼트 기능과 동일하지만, 트리를 생성하는 과정에서는 노드라는 것이 HTML 문서중 하나의 태그를 의미한다. 예를 들어 <A href=xxx>AAA</A>라는 HTML 문장이 있을 때, 원래의 노드는 문장 전체를 의미하지만 본 발명의 HTML 트리 생성모듈에서는 <A href=xxx>와 </A>를 의미하는 두 개의 노드가 생성되고, 해석과정에서 본래의 의미로 해석된 후, </A>와 같이 태그의 종료를 의미하는 노드는 트리 구조에서 제외되는데 이러한 노드를 종료노드라 정의한다.
본 발명의 HTML 트리 생성모듈의 특징을 살펴보면 다음과 같다.
(1) HTML 문서의 파싱(Parsing) 없이 트리 구조를 생성한다.
즉, HTML문서 중 태그의 시작(<)과 끝(>) 문자만을 찾아서 트리 구조를 생성하기 때문에 트리 구조가 생성되는 시간이 빠르다.
일반 브라우저의 DOM은 사용자에게 모든 내용을 보여주는데 목적이 있기 때문에 모든 HTML 내용이 파싱되지만, 본 발명은 트리 구조가 일차적으로 필요하게 때문에 이 특징을 이용하여 생성 속도를 높인 것이다.
(2) 트리 구조를 이루는 노드의 구성이 간단하다.
하나의 노드는 HTML문서에서 한 노드에 대응되는 태그가 시작되는 태그시작위치, HTML문서에서 한 노드에 대응되는 태그가 종료되는 태그종료위치, 한 노드에 대한 종료 노드의 위치인 종료노드위치 및 트리 구조에 있어서 한 노드의 상위 노드 위치인 부모노드위치만을 갖는다. 따라서, 이러한 간단한 구조로 인해 트리 생성 속도와 메모리 사용의 향상에 기여한다.
(3) 아이템과 관련된 노드의 내용만을 파싱한다.
아이템에서 지정된 목적 노드만이 본 발명에 사용되기 때문에, 목적 노드와 관련된 노드의 내용만을 분석하면 된다.
본 발명의 HTML 트리 생성모듈에 의해 트리를 생성하는 과정을 설명하면, 다음과 같다.
생성과정이 시작되면 HTML 문서의 첫 글자부터 시작해서 마지막 글자까지의 값을 가지고 다음을 수행한다. 여기서 현재값이란 현재 검사중이 HTML 문서의 글자를 의미하고, 현재부모노드란 노드의 부모노드위치를 지정하기 위한 것으로 초기값은 0이다.
(1) 현재값이 "<" 이면, 현재노드의 태그시작위치에 현재값의 위치를 지정하고,
(2) 현재값이 ">" 이면, 현재노드의 태그종료위치에 현재값의 위치를 지정하고, 현재노드가 종료노드인지 확인하여 현재노드가 종료노드이면, 현재노드와 짝이 되는 노드를 현재부모노드의 부모노드위치를 참고로 찾아내어 현재노드를 찾은 노드의 종료노드위치에 지정하고, 현재부모노드에 찾은 노드의 부모노드위치를 지정하며, 현재노드가 종료노드가 아니면 현재노드의 부모노드위치에 현재부모노드를지정하여 새로운 노드를 생성하고 이를 현재 노드로 지정한 후,
(3) 현재값을 HTML의 다음 글자로 이동한다.
이와 같이 하여 노드리스트가 생성된다.
생성된 노드리스트를 해석하는 방법으로는 한 노드에 해당하는 태그의 정보를 이용하는 방법으로 노드의 태그시작위치부터 태그종료위치가 태그의 내용이다. 또한, 자식노드를 참조하는 방법이 있는 바, 한 노드의 첫 번째 자식노드는 노드리스트에서 해당노드의 다음에 있고, 두 번째부터는 노드리스트에서 앞 자식노드의 종료노드위치 다음에 있다. 이러한 식으로 해당노드의 종료노드위치까지 찾으면 된다. 또한, 노드의 내용을 얻는 방법이 있으며, HTML문서에서 한 노드의 종료태그위치부터 종료노드위치에 해당하는 노드의 시작태그위치까지의 내용중 태그들을 제외한 부분이 해당 노드의 내용이다.
생성된 아이템은 아이템 정보에 기록된 검사 간격에 따라 주기적으로 유효한지 검사하고 유효하다면 현재 아이템에 기록된 웹페이지의 현재의 HTML중 아이템에 지정된 엘리먼트의 내용이 갱신되었는지를 검사하게 되는데 아이템 검사모듈(154)이 이를 수행한다.
아이템이 유효하다는 것은 저장된 URL의 웹페이지가 존재하고, 그 웹페이지의 다중 트리 구조에 지정된 목적 노드와 일치되는 노드가 존재한다는 것을 의미한다.
목적 노드를 찾는 방법은 위의 아이템 생성모듈에 의해 연속적으로 저장된 노드들의 태그이름과 유효한 특징을 근거로 새로운 웹페이지의 다중 트리중 태그이름과 유효한 특징들이 일치되는 노드들을 최상위 노드부터 목적노드까지 찾아내는 것이다.
아이템이 유효하면, 아이템의 목적노드에 대응하는 트리 구조에서의 노드로부터 텍스트 정보를 가져와 아이템에 있는 텍스트 정보와 비교하여 텍스트가 다를 경우 이 아이템이 갱신된 것으로 판단한다.
클라이언트 아이템 매니저(152)는 사용자가 지정한 아이템들을 적절히 검사하고 이 결과의 출력을 담당한다. 지정된 아이템 리스트중 일부는 관리서버(400)를 통해 갱신된 내용을 제공받는데, 이 아이템 매니저(152)는 관리서버와의 정보 입출력에 대한 처리도 담당한다.
이하, 도 8을 참조하여 클라이언트 정보수집방법에 대해 설명한다.
클라이언트 아이템 매니저가 구동되면, 클라이언트의 아이템 정보를 관리서버(400)에 전송하여 관리서버(400)로부터 정보를 받게되는 아이템들을 구별한다(단계 S100).
클라이언트(100)에 검사할 아이템이 존재하는지를 판단하여(단계 S110), 아이템이 존재하는 경우에는 해당 아이템에 지정된 URL의 HTML 스트링을 인터넷을 통해 다운로드받고(단계 S120), HTML 트리 생성모듈을 통해 다운로드받은 HTML의 트리구조를 생성한 후(단계 S130), 아이템 검사 모듈로 아이템의 유효한지를 확인한다(단계 S140).
이어 엘리먼트가 무효화 되었는지를 판단하여(단계 S150), 무효화되었음을 사용자에게 출력하여 통보하고(단계 S155), 무효화되지 않았으면, 변경되었는지를판단하여(단계 S160), 변경되었으면, 갱신된 아이템 내용을 사용자에게 출력한다(단계 S165).
또한, 관리서버로부터 받은 아이템 정보가 있는지를 판단하여(단계 S170), 아이템 정보가 있으면, 해당 아이템의 갱신된 내용을 사용자에게 출력한다(단계 S175).
종료요청이 있는지 판단하여(단계 S180) 종료요청이 없으면 상기의 단계들을 반복하고 종료요청이 있으면, 프로세스 종료를 관리서버에 통보하고(단계 S190) 종료한다.
클라이언트 정보수집 에이전트의 구현에 있어 시각적, 기능적으로 가장 중점을 두는 부분은 인터넷 익스플로러와 유사한 형태로 구성함으로서 사용자가 에이전트의 작동방법을 학습하는데 용이하도록 한다는 점이다. 이를 위해 시각적으로는 브라우저로서 마이크로소프트사의 웹브라우저 컨트롤을 사용하는 것 외에 도 4에 보여지듯 앞으로, 뒤로, 중지, 새로고침 등과 같은 툴바 인터페이스를 제공하고, 기능적으로는 동작이 시작되면 아이템에 관련되어 대부분의 기능을 담당하는 클라이언트 아이템 매니저 프로세스를 백그라운드 프로세스로 구동시켜 숨기고, 표면상으로는 일반 웹브라우저 기능으로서의 처리를 주로 하게 된다.
또한, 클라이언트 정보수집 에이전트의 목적에 따라 사용자가 웹페이지에서 엘리먼트를 지정할 때, 지정할 수 있는 웹페이지의 제약함으로 열린 서비스(Open Service)나 제한적 서비스(Closed Service)의 형태로 구현할 수 있다.
열린 서비스란 지정할 수 있는 웹페이지의 제약이 없는 형태로, 사용자로부터 웹페이지 주소를 받게 하는 입력창을 통해 웹페이지를 이동하거나 웹페이지 안의 앵커 태그를 마우스로 클릭함으로 제약없이 직접 다른 웹페이지로 이동하는 형식을 말한다. 즉 일반 브라우저와 동일한 기능을 의미한다.
제한적 서비스란 입력창 없이 사용자가 지정할 수 있는 웹페이지를 운영자가 지정하여 이 지정된 페이지만 지정할 수 있게 하고, 웹페이지안의 앵커 태그를 통해 이동할 때는 웹브라우저 컨트롤에서 제공하는 이벤트를 통해 이동되는 페이지의 주소를 얻은 후, 이 주소를 운영자가 지정해준 페이지들과 비교 선택적으로 이동할 수 있게 하는 것을 말한다. 도 4와 도 5는 제한적 서비스의 형태로 구현된 예를 보여주는데 채널이라고 나타난 부분이 운영자가 제공한 웹페이지 주소들이고, 이곳을 클릭하면 채널에 해당하는 주소의 리스트들이 보여진다.
일반적인 브라우저 기능을 하는 열린 서비스가 아닌 제한적 서비스를 제공함으로 사용자에게는 정보수집 에이전트의 목적에 따라 수많은 웹사이트 중에서 유효한 것들에 대한 가이드 역할을 해 주는 기능을 갖게 하고, 운영자에게는 자신이 원하는 목적을 지정할 수 있게 해 준다. 예를 들어, 자신의 웹사이트안에서 사용자는 자신이 원하는 정보를 모아서 볼 수 있게 하고, 이를 통해 자신의 웹사이트중 사용자가 선호하는 부분을 알고자 할 때 사용자는 제한적 서비스로서 자신의 웹사이트에 있는 웹페이지들만을 지정하게 된다.
도 3을 참조하면, 본 발명에 적용되는 관리서버 시스템(400)의 구성이 도시되어 있다.
관리서버 시스템(400)은 네트워크 망을 통해 클라이언트 정보수집 에이전트(150)와의 직접적인 정보 입출력을 담당하는 네트워크 입출력 제어모듈(403)과, 클라이언트들로부터 전송된 아이템 정보를 DB 서버(450)에 저장하는 서버 아이템 저장모듈(406)과, 클라이언트 정보수집 에이전트에서와 같이 HTML 문서의 다중 트리 구조를 빠르고 효율적으로 생성해주는 서버 HTML 트리 생성모듈(405)과, 서버 아이템 검사모듈(404) 및 관리서버가 직접 검사해야 할 아이템들의 리스트를 가지고 이중 검사가 이루어져야 할 아이템의 HTML 문서를 인터넷을 통해 다운로드하며 클라이언트로 전송될 내용의 제작 등을 관리하는 서버 아이템 매니저(402)로 이루어진다.
관리서버 시스템(400)은 크게 두 가지의 기능을 갖는 바, 첫째는 클라이언트로부터 지정된 아이템의 정보들을 축적하여 서버 운영자에게 유익한 데이터를 제공해 주는 것이고, 둘째는 클라이언트 정보수집 에이전트에서 아이템의 정보를 갱신해주는 기능을 보강하여 더 좋은 서비스를 제공하는 것이다.
첫 번째의 기능에 있어서, 클라이언트 정보수집 에이전트가 사용자에게 배포될 때, 사용자는 자신의 신상에 관한 정보를 서버에 알려주도록 하고, 에이전트가 구동되거나 종료될 때, 사용자에 의해 아이템이 추가되거나 삭제될 때 아이템의 정보를 서버에 알려주면 서버는 이 정보들을 DB서버에 축적하게 된다. 신상에 관한 데이터로부터 성별, 지역, 나이, 취향과 같은 정보를 얻고 실시간으로 전해지는 아이템 정보로부터 시간, 현재 사용자가 사용하는 웹사이트, 웹페이지, 웹페이지의 엘리먼트, 엘리먼트의 클릭 비율(지정된 엘리먼트가 앵커 엘리먼트이고 사용자에게 아이템의 갱신된 내용을 보여주는 화면에서 사용자가 아이템의 내용을 클릭하면 연결된 앵커를 보여주는 기능이 구축되었을 경우) 등을 얻음으로 운영자는 오차율이 낮고 아주 유용한 정보를 얻게 되는 것이다.
이렇게 얻을 수 있는 정보의 예를 들면,
- 특정 웹사이트중 사용자가 시간대별로 가장 많이 보는 페이지
- 여러 신문사 웹페이지중 경기지역 사용자가 가장 즐겨 보는 웹페이지
- 6개월에 걸친 사용자의 전체 인터넷에서의 선호도 변동 상황 등과 같은 것들이다.
두 번째의 기능에 있어서, 클라이언트 정보수집 에이전트의 활용도는 지정되는 아이템의 수가 많을수록, 지정된 아이템의 조회주기가 짧을수록 좋지만 사용자가 보유한 네트워크 속도에 의해 제약을 받게 되고 사용자가 본 발명의 정보수집 에이전트 외에도 인터넷과 관련된 다른 어플리케이션을 동시에 사용할 수 있다는 점을 고려해야 한다. 특히, 본 발명은 사용자가 지정한 웹페이지의 HTML 문서를 다운로드 하는데 이 문서의 크기가 이미지를 제외하고도 약 30K에서 1M 바이트로서 비교적 큰 편이다. 가령, 다운로드받는 웹페이지가 60K 바이트라고 가정하고, 사용자 인터넷의 속도가 일반 가정용 전용선의 속도인 초당 2M 비트중 다른 인터넷관련 어플리케이션을 고려하여 50%만 사용한다고 하면, 이는 5초의 조회주기를 가진 아이템을 최대 10개 정도까지 지정할 수 있게 된다는 것을 의미하고 이 결과는 조회주기나 지정될 수 있는 개수의 측면에서 충분하다고 하기는 어렵다. 이러한 제약을 보강하기 위해 관리서버 시스템에서는 등록된 아이템중의 일부를 직접 검사하여 업데이트 되었을 때의 결과만을 클라이언트에 보내는 서비스를 행한다. 서버 시스템의 통신망 속도와 시스템을 상용자가 원하는 만큼 확보하여 활용할 수 있고 하나의 아이템 검사로 많은 클라이언트들이 새로운 정보를 받을 수 있다
관리서버 시스템(400)에서 서버 아이템 매니저(402)는 클라이언트 정보수집 에이전트로부터 제공된 아이템들을 적절히 검사하고 이 결과의 출력을 담당한다.
대략적으로 검사할 아이템을 선정 -> 해당 웹페이지 다운로드 -> HTML 트리 생성 -> 아이템 검사 -> 결과 출력의 순서를 가지는 서버 아이템 매니저의 작동 방식은 클라이언트 아이템 매니저의 작동 방식과 대부분 일치하지만 다음과 같은 차이점이 있다.
먼저, 아이템의 검사 결과를 출력하는 경우, 클라이언트 아이템 매니저는 사용자가 확인할 수 있도록 모니터 스크린에 출력되는 것에 비해 서버 아이템 매니저는 출력 내용을 클라이언트에 보내기 위해 네트워크 입출력 제어모듈(403)에 출력한다.
또한, 아이템에 포함된 정보에 있어서, 서버 시스템에서는 원래 아이템의 정보 외에 해당 아이템을 참조하는 클라이언트의 총 숫자와 클라이언트들의 정보를 포함하는데, 이는 아이템의 갱신된 내용을 클라이언트들에게 보낼 때 주소를 참조 하기 위함이다.
또한, 검사할 아이템을 선택함에 있어서, 클라이언트 아이템 매니저는 아이템에 지정된 조회주기를 보고 검사될 아이템을 선택하지만 관리서버에서는 클라이언트로부터 많이 지정된 순서에 따라 아이템이 선택된다.
한편, 서버 아이템 매니저에서 사용되는 아이템 검사모듈과 HTML 트리 생성모듈은 클라이언트에서 사용하는 모듈들과 동일한 것이어야 한다.
위에서 설명되었듯이 본 발명의 서버 기능 중 하나는 클라이언트 정보수집 에이전트가 해야 할 아이템의 검사중 일부를 서버에서 대신 수행함으로, 클라이언트 정보수집 에이전트의 성능을 높이는 것이다.
서버 시스템에는 다수의 클라이언트로부터 지정된 아이템들의 정보가 전달되는데, 이 아이템들을 특별한 법칙없이 단순히 차례대로 선택하여 검사하는 것은 효율적인 방법이 아니다. 본 발명의 서버 시스템에서는 효율적으로 클라이언트를 지원을 위해 사용자로부터 가장 많이 지정된 아이템 순서대로 일정 수만큼만 아이템을 선택하여 검사하는 방법을 사용한다.
검사될 아이템의 수와 조회주기는 운영자의 시스템이나 목적에 맞게 조정될 수 있는데, 예를 들어, 검사될 아이템의 수는 단순히 일정한 값일 수도 있고, 검사될 아이템의 선택된 합이 전체 아이템 개수에서 일정 비율을 차지할 때까지가 기준이 될 수도 있으며, 검사될 아이템의 조회주기는 선택된 횟수가 많을수록 짧을 수도 있고, 일정한 값일 수도 있다.
서버 시스템에는 이 방법을 위한 아이템의 선택과 관련된 몇 개의 부수적인 요소가 있는데, 아이템 리스트, 사용자 리스트 및 선택된 리스트이다. 아이템 리스트는 클라이언트에서 전달된 모든 아이템들의 정보를 보유하는 곳으로서 리스트중 하나의 노드에는 아이템의 정보와 이 아이템을 지정한 사용자의 수와 이들 사용자에 대한 사용자 리스트에서의 위치 정보를 가지며, 일반 아이템의 추가/삭제/찾기 등이 용이하도록 정렬되어 있다. 사용자 리스트는 서버에 아이템을 전송한 사용자들에 대한 정보로 하나의 노드에는 해당 사용자의 주소와 이 사용자가 선택한 아이템들의 수와 아이템 리스트에서의 위치를 저장한 정보가 들어있다. 또한, 선택된 리스트는 실지로 서버 아이템 매니저가 검사를 해야 하는 아이템들의 포인터 리스트이다. 아이템 리스트의 각 노드들은 해당 노드가 선택된 리스트에 있는지 여부를 기록한다.
이하, 클라이언트로부터 새로운 아이템이 서버 시스템에 등록되거나 특정 아이템이 제거되는 방식을 설명한다.
(1) 새로운 아이템이 클라이언트로부터 등록되는 경우
- 아이템 리스트에서 새로운 아이템에 해당하는 노드를 구한다. 만일 없다면 새로운 노드를 생성하여 추가하고 이를 해당 노드로 한다.
- 사용자 리스트에서 새로운 아이템을 보낸 사용자에 해당하는 노드를 구한다. 만일 없다면 새로운 노드를 생성하여 추가하고 이를 해당 노드로 한다.
- 아이템 리스트의 해당 노드에 있는 사용자 지정 수와 사용자 리스트의 해당 노드에 있는 아이템 보유 수를 증가시킨 후, 서로의 위치를 기록한다.
- 아이템 리스트의 해당 노드가 선택된 리스트에 추가될 수 있는지 검사하고 추가될 경우 선택된 리스트에 있다는 정보를 기록한다. 이 추가로 인해 선택된 리스트에서 제거되는 노드가 있는 경우, 이 노드의 선택된 리스트에 있다는 정보를 제거한다.
(2) 특정 아이템이 클라이언트로부터 제거되는 경우
- 아이템 리스트에서 제거되는 아이템이 해당하는 노드를 구하고 이를 해당노드로 한다.
- 사용자 리스트에서 제거되는 아이템을 보유한 노드를 구하고 이를 해당 노드로 한다.
- 아이템 리스트의 해당 노드에 있는 사용자 지정 수와 사용자 리스트의 해당 노드에 있는 아이템 보유 수를 감소시킨 후, 서로의 위치가 기록된 것을 제거한다.
- 아이템 리스트의 해당 노드에 있는 사용자 지정 수가 0이면 해당 노드를 제거하고, 사용자 리스트의 해당 노드에 있는 아이템 보유 수가 0이면 해당 노드를 제거한다.
본 발명에 따르면, 각각의 클라이언트들에게 제공되는 정보수집 에이전트를 통하여 정보제공서버의 웹페이지로부터 사용자가 원하는 정보를 지시하는 HTML 엘리먼트를 아이템으로 지정하면, 이 아이템들의 내용을 사용자에게 일괄적으로 보여주고, 동시에 일반 웹브라우저 기능을 수행하며, 지정된 아이템들의 내용을 지속적으로 갱신해줌과 동시에 아이템의 갱신된 내용들을 계속 저장한다.
따라서, 사용자에게는 인터넷의 여러 웹페이지에 중에서 자신이 원하는 정보들만을 선택하여 별도의 노력없이 지속적으로 갱신되는 내용을 총괄적으로 볼 수 있게 되는 편의성이 제공되는 이점이 있다.
더욱이, 관리서버는 사용자가 지정한 아이템 정보들을 인터넷을 통해 수집하고, 이 정보들을 데이터베이스를 통해 유지/관리하며, 관리자에 의해 지정된 아이템들을 업데이트하고 이 내용을 클라이언트 정보수집 에이전트에 직접 전송시킨다.
따라서, 관리자에게는 사용자가 관심을 갖는 정보들에 대한 정확한 데이터를 보유하게 하여 마케팅이나 사이트 운영의 발전에 도움을 주게 한다.

Claims (6)

  1. 다수의 클라이언트들과, 상기 클라이언트를 회원으로 등록하여 관리하는 관리서버와, 다수의 정보제공서버들이 인터넷을 통하여 상호 연결되고, 상기 클라이언트들 각각에는 사용자가 필요로 하는 정보만을 상기 정보제공서버들로부터 선택적, 주기적으로 수집하기 위한 정보수집 에이전트가 내장되며, 상기 정보수집 에이전트는
    일반 웹브라우저 기능을 수행함과 동시에 상기 정보제공서버의 웹페이지의 단위정보인 HTML 엘리먼트를 사용자가 지정하도록 하고, HTML 문서에 대해 다중 트리 형태의 DOM(Document Object Model) 메커니즘에 접근할 수 있는 기능을 제공하며, 사용자가 지정한 엘리먼트에 대응하는 아이템들의 내용을 보여주는 웹브라우저 제어모듈과;
    HTML 문서의 다중 트리 구조를 빠르고 효율적으로 생성해주는 HTML 트리 생성모듈과;
    상기 사용자가 지정한 엘리먼트를 하나의 아이템으로 만들어주는 아이템 생성모듈과;
    하나의 아이템이 상기 HTML 트리 생성모듈에 의해 만들어진 다중 트리에서 유효한 값을 지니는지 검사하는 아이템 검사모듈과;
    상기 아이템이 가리키는 엘리먼트의 내용이 갱신될 때, 상기 갱신된 내용들을 데이터베이스에 계속적으로 보관하는 아이템 저장모듈; 및
    아이템 리스트를 가지고 리스트에서 아이템을 추가 또는 삭제하고, 타이머를 통해 검사될 아이템의 HTML을 인터넷을 통해 다운로드하며, 아이템 리스트의 저장과 로드, 상기 관리서버로의 전송, 사용자에게 보여줄 내용의 제작을 관리하는 클라이언트 아이템 매니저를 포함하는 것을 특징으로 하는 인터넷 상의 정보수집 시스템.
  2. 제 1 항에 있어서, 상기 관리서버는
    상기 인터넷을 통하여 상기 클라이언트 정보수집 에이전트와의 직접적인 정보 입출력을 담당하는 네트워크 입출력 제어모듈과;
    상기 클라이언트들로부터 전송된 아이템 정보를 DB 서버에 저장하는 서버 아이템 저장모듈과;
    HTML 문서의 다중 트리 구조를 빠르고 효율적으로 생성해주는 서버 HTML 트리 생성모듈과;
    하나의 아이템이 상기 서버 HTML 트리 생성모듈에 의해 만들어진 다중 트리에서 유효한 값을 지니는지 검사하는 아이템 검사모듈; 및
    상기 관리서버가 직접 검사해야 할 아이템들의 리스트를 가지고 이 중에서 검사가 이루어져야 할 아이템의 HTML 문서를 인터넷을 통해 다운로드하며 상기 클라이언트로 전송될 내용의 제작 등을 관리하는 서버 아이템 매니저를 포함하는 것을 특징으로 하는 인터넷 상의 정보수집 시스템.
  3. 제 1 항에 있어서, 상기 아이템에는 해당 웹페이지내의 위치정보, 대응하는 엘리먼트가 지정된 웹페이지의 URL, 엘리먼트의 텍스트 및 아이템의 조회주기가 저장되는 것을 특징으로 하는 인터넷 상의 정보수집 시스템.
  4. 제 3 항에 있어서, 상기 아이템의 위치정보는 상기 아이템의 HTML 엘리먼트에 대응하는 노드로부터 해당 웹페이지의 트리구조의 최상위 노드까지 노드 특징과 부모노드와의 관계에 대한 정보를 포함하는 것을 특징으로 하는 인터넷 상의 정보수집 시스템.
  5. 다수의 클라이언트들과, 상기 클라이언트를 회원으로 등록하여 관리하는 관리서버와, 다수의 정보제공서버들이 인터넷을 통하여 상호 연결되고, 상기 클라이언트들 각각에는 사용자가 필요로 하는 정보만을 상기 정보제공서버들로부터 선택적, 주기적으로 수집하기 위한 정보수집 에이전트가 내장되는 인터넷 상의 정보수집 시스템에 적용되며,
    사용자가 상기 정보제공서버의 특정 웹페이지에서 선택된 HTML 엘리먼트를 아이템으로 지정하는 단계;
    상기 정보수집 에이전트의 HTML 트리 생성모듈을 통해 해당 웹페이지의 트리구조를 생성하는 단계;
    상기 사용자에 의해 지정된 HTML 엘리먼트의 정보를 동적 HTML 객체모델을 통해 얻은 후, 이 HTML 엘리먼트에 일치되는 목표 엘리먼트 노드를 상기 생성된 트리 구조에서 찾는 단계;
    일치된 노드로부터 상기 트리 구조의 최상위 노드까지 해당노드 특징과 부모노드와의 관계에 대한 정보를 상기 아이템에 저장하는 단계; 및
    상기 HTML 엘리먼트가 지정된 웹페이지의 URL, 엘리먼트의 텍스트, 아이템의 조회주기를 상기 아이템에 저장하는 단계를 포함하는 것을 특징으로 하는 인터넷 상의 정보수집 방법.
  6. 제 5 항에 있어서,
    상기 클라이언트의 아이템 정보를 상기 관리서버에 전송하여 상기 관리서버로부터 정보를 받게되는 아이템들을 구별하는 단계;
    상기 클라이언트에 검사할 아이템이 존재하는지를 판단하고, 존재하는 경우 해당 아이템에 지정된 URL의 HTML 스트링을 상기 인터넷을 통해 다운로드받고, 상기 HTML 트리 생성모듈을 통해 다운로드받은 HTML의 트리 구조를 생성한 후, 상기 정보수집 에이전트의 아이템 검사 모듈로 아이템이 유효한지를 확인하는 단계;
    상기 엘리먼트가 무효화되었는지를 판단하여, 무효화되었으면 이를 사용자에게 출력하여 통보하고, 무효화되지 않았으면 변경되었는지를 판단하여, 변경되었으면, 갱신된 아이템 내용을 사용자에게 출력하는 단계; 및
    상기 관리서버로부터 받은 아이템 정보가 있는지를 판단하여, 아이템 정보가 있으면, 해당 아이템의 갱신된 내용을 사용자에게 출력하는 단계를 더 포함하는 것을 특징으로 하는 인터넷 상의 정보수집 방법.
KR10-2001-0035079A 2001-06-20 2001-06-20 인터넷 상의 정보수집 시스템 KR100446209B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0035079A KR100446209B1 (ko) 2001-06-20 2001-06-20 인터넷 상의 정보수집 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0035079A KR100446209B1 (ko) 2001-06-20 2001-06-20 인터넷 상의 정보수집 시스템

Publications (2)

Publication Number Publication Date
KR20020096519A true KR20020096519A (ko) 2002-12-31
KR100446209B1 KR100446209B1 (ko) 2004-08-30

Family

ID=27710139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0035079A KR100446209B1 (ko) 2001-06-20 2001-06-20 인터넷 상의 정보수집 시스템

Country Status (1)

Country Link
KR (1) KR100446209B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030079826A (ko) * 2003-07-21 2003-10-10 함승진 웹사이트의 내용 변경 자동 통지 방법
WO2008137961A1 (en) * 2007-05-07 2008-11-13 Listspinner Inc. System enabling social networking through user-generated lists
KR101046446B1 (ko) * 2008-11-18 2011-07-04 주식회사 엘지유플러스 웹페이지 로딩 방법 및 시스템
KR20210113582A (ko) * 2019-10-15 2021-09-16 쿠팡 주식회사 배송 날짜 추정을 이용하여 웹페이지들을 수정하기 위한 시스템들 및 방법들

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101006980B1 (ko) * 2008-09-25 2011-01-12 주식회사 테크리드 웹브라우저 상에서 원하는 컨텐츠를 선택추출하여 클론 오브젝트를 생성하고 재생하는 방법 및 시스템
KR101364403B1 (ko) * 2013-10-21 2014-02-17 김용문 데이터 분석/제공 방법, 및 이를 이용한 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000030249A (ko) * 2000-02-15 2000-06-05 안창현 사용자주문형 정보게시판 서비스시스템
KR20000049581A (ko) * 2000-04-12 2000-08-05 장성동 인터넷상의 실시간 맞춤 정보 서비스 장치 및 방법
KR20000050217A (ko) * 2000-05-26 2000-08-05 신종섭 통신매체를 이용한 실시간 맞춤정보 이용가입, 생성 및제공방법
KR20000054312A (ko) * 2000-06-01 2000-09-05 최우석 맞춤 웹정보 구축 제공 방법
KR20000059142A (ko) * 2000-07-18 2000-10-05 우제찬 사용자 요구 사항에 대한 최적 정보의 신속한 제공 시스템
KR100455929B1 (ko) * 2001-04-17 2004-11-08 (주)인포캐스트 인터넷 등재 정보의 자동 수집 서비스 시스템 및 그 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030079826A (ko) * 2003-07-21 2003-10-10 함승진 웹사이트의 내용 변경 자동 통지 방법
WO2008137961A1 (en) * 2007-05-07 2008-11-13 Listspinner Inc. System enabling social networking through user-generated lists
KR101046446B1 (ko) * 2008-11-18 2011-07-04 주식회사 엘지유플러스 웹페이지 로딩 방법 및 시스템
KR20210113582A (ko) * 2019-10-15 2021-09-16 쿠팡 주식회사 배송 날짜 추정을 이용하여 웹페이지들을 수정하기 위한 시스템들 및 방법들

Also Published As

Publication number Publication date
KR100446209B1 (ko) 2004-08-30

Similar Documents

Publication Publication Date Title
US11863642B2 (en) Method and system for monitoring an activity of a user
JP6410280B2 (ja) ウェブサイト・アクセス方法、装置、およびウェブサイト・システム
US7702811B2 (en) Method and apparatus for marking of web page portions for revisiting the marked portions
US20030005159A1 (en) Method and system for generating and serving multilingual web pages
US8762556B2 (en) Displaying content on a mobile device
US7885950B2 (en) Creating search enabled web pages
US9268547B2 (en) Conditional logic for delivering computer-executable program instructions and content
US20070288488A1 (en) Message Catalogs for Remote Modules
US8516111B2 (en) System for enabling rich network applications
US20120117494A1 (en) System and method for expediting information display
AU2007243143A1 (en) Independent actionscript analytics tools and techniques
CN102597993A (zh) 利用统一资源标识符管理应用状态信息
CN112612943A (zh) 一种基于异步处理框架的具有自动测试功能的数据爬取方法
KR100446209B1 (ko) 인터넷 상의 정보수집 시스템
JP5393242B2 (ja) データ提供方法および中間サーバ装置
US8239522B1 (en) Dynamic variables for tracking wireless device website usage
CN101383838B (zh) 一种Web界面在线评估的方法、***和装置
Panum et al. Kraaler: A user-perspective web crawler
CN115525305A (zh) 数据处理、应用启动方法、装置、计算机设备和存储介质
JP4805199B2 (ja) シナリオ作成プログラム及びシナリオ作成装置
CN112835793B (zh) 一种网页调试方法及装置
Koder Increasing Full Stack Development Productivity via Technology Selection
CA2428004A1 (en) Method of dynamically creating a web page according to user preferences
JP5276903B2 (ja) 閲覧システム、プラグインプログラム、ならびに、紹介プログラム
JP2008117339A (ja) Webアプリケーションの任意の機能に対するショートカットを定義する方法および装置

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

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130807

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140818

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150811

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160819

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20170818

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20180808

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20190819

Year of fee payment: 16