KR20020063602A - 서버기반형 액티브 문서 제어 - Google Patents

서버기반형 액티브 문서 제어 Download PDF

Info

Publication number
KR20020063602A
KR20020063602A KR1020027008175A KR20027008175A KR20020063602A KR 20020063602 A KR20020063602 A KR 20020063602A KR 1020027008175 A KR1020027008175 A KR 1020027008175A KR 20027008175 A KR20027008175 A KR 20027008175A KR 20020063602 A KR20020063602 A KR 20020063602A
Authority
KR
South Korea
Prior art keywords
active document
client
server
communication channel
dom
Prior art date
Application number
KR1020027008175A
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 사이트릭스 시스템스, 인크.
Publication of KR20020063602A publication Critical patent/KR20020063602A/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/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

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)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 서버(14)상에서 액티브 문서(10)의 실행부(34)를 보유하여 실행시키는 도안 클라이언트(18) 상에서 액티브 문서(10)의 콘텐트를 디스플레이하기 위한 장치 및 방법에 관한 것이다. 일실시예에서, 방법은 서버로부터 클라이언트에 액티브 문서의 콘텐트부를 전송하는 단계를 포함한다. 서버는 액티브 문서의 실행부를 실행시켜서 액티브 문서와 연관된 출력 데이터를 생성한다. 서버는 이 출력데이터를 클라이언트에 의해 디스플레이되는 액티브 문서의 조작을 위해 전송한다.

Description

서버기반형 액티브 문서 제어{SERVER-BASED ACTIVE DOCUMENT CONTROL}
컴퓨터통신망은 전형적으로 하나 이상의 서버 노드 및 하나 이상의 클라이언트 노드를 포함한다. 서버 노드는 클라이언트 노드로부터 요청을 수신하면 클라이언트 노드에 서비스를 제공한다. 서비스의 일례는 클라이언트 노드에 디스플레이용 웹페이지를 제공하는 것이다.
인터랙티브 웹 페이지는 액티브 문서(active document)라 지칭될 수 있다. 도 1에 도시된 바와 같이, 일반적으로 액티브 문서(10)는 적어도 2개의 부분인 "콘텐츠(contents)부"(38)와 "실행(executable)부"(34)를 포함한다. 액티브문서의 콘텐츠부는 텍스트 스트링(38a), 이미지(38b), 테이블(38c) 또는 불렛포인트(38d)와 같은 웹페이지의 구성요소 또는 콘텐츠를 포함한다. 콘텐츠 구성요소는 또한 문서(10)가 보여질때 표시되어질 그래픽 또는 액티브 문서(10)와 연관된 스타일 시트(style sheets)를 포함할 수도 있다. 액티브 문서(10)의 실행부(34)는 사용자가 액티브 문서(10)와 상호작용하는 동안 문서(10)와 연관된 콘텐츠 구성요소를 변화시킨다. 실행부(34)는 실행코드(34a)를 포함한다. 문서(10)의 실행부(34)는, 애플릿, 스크립트 또는 실행코드의 기타 다른 형태로서 제공될 수 있다.
간단한 예로서, 도 1에 도시된 실시예를 참조하면, 액티브 문서(10)는 처음에는 검게 표시되는 텍스트 요소(38a)를 포함한다. 실행코드(34a)는 디스플레이상의 커서 움직임을 모니터링하다가 커서가 텍스트 요소(38a) 위에 위치하면, 텍스트 요소(38a)의 콘텐츠를 변경하고, 글자 색상을 검은색에서 빨간색으로 변경한다. 따라서, 텍스트 요소(38a)의 변화는 디스플레이된 액티브 문서(10) 위의 커서 움직임에 응답하여 발생한다.
도 2에 도시된 바와 같이, 클라이언트(18)가 액티브 문서(10)을 요청하면, 서버(14)는 클라이언트(18)에 액티브 문서(10)의 콘텐츠부(38) 및 실행부(34) 모두를 전송한다. 전술한 간단한 예에서와 같은 문서 처리는 일반적으로 클라이언트(18)를 실행시키는 브라우저 어플리케이션(22)에서 발생한다. 액티브 문서(10)의 생성자는 액티브 문서(10)를 디스플레이하기 위해 이용될 브라우저 어플리케이션(22)에 대한 제어권이 없기 때문에, 액티브 문서(10)의 실행부(34)에 대한 배치, 보안, 관리 문제등과 싸워야만 한다. 한편, 다수의 상이한 브라우저 어플리케이션(22)들은 액티브 문서(10)의 실행부가 다수의 브라우저 어플리케이션(22)들에 의한 액세스를 허용하도록 실행될 수 있는 단일화되고 안정적인 환경에 대한 필요성을 야기 시킨다. 본원 발명은 이러한 필요성을 해결하고자 한 것이다.
<발명의 요약>
본 발명은 클라이언트/서버 환경에서 액티브 문서를 액세스하고, 디스플레이하고 및 변화시키기 위한 장치 및 방법에 관한 것이다. 더욱 구체적으로, 본 발명은 서버상에서 액티브 문서의 실행부를 실행시켜 액티브 문서를 처리 및 조작하고, 상기 처리 및 조작된 결과를 클라이언트에 디스플레이하는 것에 관한 것이다. 서버상에서 액티브 문서의 실행코드부를 실행시킴으로써 실행환경이 알려지고 안정되는 것을 보증할 수 있다. 이러한 시스템에서, 실행 프로그램은 오직 한번만 테스트되면 된다. 또한, 이로 인해 액티브 문서의 실행부는 콘텐츠가 디스플레이되는 플랫폼에 상관없이 콘텐츠를 조작할 수 있다. 따라서, 보완 및 관리 문제는 최소화된다. 본 발명의 또다른 장점은 클라이언트에 다운로드되어야 하는 코드량이 최소화된다는 점이다. 이는 액티브 문서의 전송 속도를 증가시키고, 서버상에 실행부를 저장함으로써 전용(proprietary) 코드가 클라이언트상의 사용자에게 드러나지 않도록 해준다. 또한, 서버상에서 실행될 실행코드(예를 들면, 스크립트 및 애플릿)들은 필요하면 클라이언트 브라우저상에서도 또한 실행될 수 있기 때문에 취소불가능한 배치 결정은 없다. 따라서, 본 발명은 액티브 문서가 다양한 범주의 개인용 컴퓨터, 인터넷 응용품, PDA 및 기타 유사한 다른 클라이언트 장치들에 전달되는 것을 가능하게 해준다.
일실시에 의하면, 본 발명은 통신 채널을 통해 액티브 문서를 클라이언트에 제공해주는 방법에 관한 것으로, 액티브 문서는 콘텐츠부와 실행부를 포함한다. 이러한 방법은 통신채널을 통해 적어도 액티브 문서의 콘텐츠부의 일부를 클라이언트에 전송하는 단계와, 상기 액티브 문서의 실행부로부터 출력 데이터를 생성하는 단계와, 클라이언트에 의해 상기 액티브 문서의 상기 전송된 컨텐츠부의 일부를 변화시키도록 통신채널을 통해 상기 생성된 출력 데이터를 클라이언트에 전송하는 단계를 포함한다. 또다른 실시예에서, 상기 방법은 액티브 문서의 콘텐츠부를 전송하기 이전에 클라이언트로부터 상기 액티브 문서를 식별하는 요청을 수신하는 단계를 또한 포함한다. 또다른 실시예에서, 클라이언트로부터의 요청은 액티브 문서를 식별하는 유니폼 리소스 로케이터(Uniform Resource Locator:URL)을 수신하는 단계를 또한 포함한다. 또다른 실시예에서, 상기 방법은 클라이언트로부터 데이터를 수신하는 단계와, 상기 수신된 데이터에 응답하여 상기 액티브 문서의 실행부로부터 출력 데이터를 생성하는 단계를 또한 포함한다. 또다른 실시예에서, 상기 방법은 상기 수신된 데이터에 응답하여 액티브 문서의 콘텐츠부의 적어도 일부를 변화시키는 단계를 또한 포함한다. 또다른 실시예에서, 상기 방법은 또한 액티브 문서의 실행부를 실행시키는 단계와 상기 액티브 문서의 실행부의 실행에 응답하여 상기 액티브 문서의 콘텐츠부의 적어도 일부를 변화시키는 단계를 또한 포함한다. 또다른 실시예에서, 상기 방법은 상기 액티브 문서와 상호작용하는 제2 어플리케이션을 실행시키는 단계와 상기 제2 어플리케이션의 실행에 응답하여 상기 액티브 문서의 콘텐츠부의 적어도 일부를 변화시키는 단계를 또한 포함한다.
또한, 본 발명은 통신채널을 통해 액티브 문서를 클라이언트에 제공하는 서버에 관한 것이다. 일실시예에서, 서버는 출력데이터생성기 및 트랜시버를 포함한다. 출력데이터생성기는 액티브 문서의 실행부에 응답하여 출력 데이터를 생성한다. 트랜시버는 통신채널을 통해 전송하기 위해 상기 생성된 출력 데이터를 수신하며, 액티브 문서의 콘텐츠부를 조작하기 위한 어플리케이션 프로그램 인터페이스(Application Program Interface: API)를 포함한다. 또다른 실시예에서, 출력데이터생성기는 통신 채널을 통해 수신된 입력 데이터에 응답하여 출력데이터를 생성한다. 또다른 실시예에서, 서버 API는 도큐멘트 오브젝트 모델(Document Object Model: DOM) API를 포함한다. 또다른 실시예에서, 서버 트랜시버는 생성된 출력 데이터를 통신 채널을 통해 전송한다.
본 발명은 또한 통신채널을 통해 액티브 문서를 수신하고 디스플레이하기 위한 클라이언트에 관한 것이다. 클라이언트는 브라우저 인터페이스 및 트랜시버를 포함한다. 브라우저 인터페이스는 브라우저 어플리케이션과 통신한다. 트랜시버는 통신채널을 통해 데이터를 수신하고 수신된 데이터를 브라우저 인터페이스에 전송한다.
본 발명은 첨부된 청구항들에 특별히 정의되어 있다. 전술한 본 발명의 장점 및 기타 다른 장점들은 첨부된 도면들과 연관된 이하의 설명을 참조하면 쉽게 이해될 것이다. 도면에서 유사한 도면 부호는 전체 도면에 걸쳐 동일한 부분을 지칭한다. 또한, 도면들은 필수적으로 크기 조절되거나 강조된 것은 아니며, 본 발명의 원칙을 예시하는 것에 따라 도시된 것이다.
본 발명은 일반적으로 클라이언트/서버 환경에서 액티브 문서(active document)를 액세스하고, 변경하고, 표시하기 위한 방법 및 장치에 관한 것으로, 구체적으로는 서버상에서 액티브 문서를 처리하고 클라이언트상에 그 결과를 표시하는 장치 및 방법에 관한 것이다.
도 1은 액티브 문서의 실시예를 도시한 블록도이다.
도 2는 종래 기술에 공지된 바와 같이 서버 노드로부터 클라이언트 노드에액티브 문서를 전송하는 프로세스를 도시한 블록도이다.
도 3은 액티브 문서의 콘텐츠 구성요소를 처리하기 위한 어플리케이션-프로그래밍 인터페이스가 제공된 액티브 문서의 실시예를 도시한 논리도이다.
도 4는 클라이언트/서버 호나경에서 액티브 문서를 제공하고 디스플레이하기 위한 시스템 실시예를 도시한 블록도이다.
도 5는 도 4에 도시된 본 발명의 실시예를 도시한 블록도이다.
도 6은 본 발명과 관련하여 유용한 DAM 동작의 일 실시예를 도시한 상태도.
도 7은 본 발명과 관련하여 유용한 DOM 프록시 동작의 일실시예를 도시한 상태도.
도 8은 인터랙티브 웹페이지의 구체적인 예를 좀 더 자세히 예시한, 본 발명의 일실시예의 스크린샷.
이제 도 3을 참조하면, 액티브 문서(10)는 (일반적으로 콘텐츠부(38)이라 지칭되는) 다수의 상이한 콘텐츠 구성요소(38a, 38b, ...., 38n)을 포함하며, 각각의 콘텐츠 구성요소(38)는 액티브 문서(10)의 실행부(34)에 의해 생성되고 변경될 수 있다. 일실시예에서, 각각의 콘텐츠 구성요소(38)는 도큐먼트 오브젝트 모델(Document Object Model:DOM)에 의해 기술되고 DOM은 어플리케이션 프로그래밍 인터페이스(DOM API, 42)를 실행부(34)에 드러낸다. 이하에서 좀더 상세하게 설명되겠지만, 액티브 문서(10)의 실행부(34)는 서버(14)상에 남고 콘텐츠부(38)만이 클라이언트(18)에 전송되며, 따라서 DOM API(42) 기능들은 통신채널(30)을 통해 수행된다. DOM API(42)는 실행부(34)가 액티브 문서(10)의 콘텐츠 구성요소(38)를 표준방식으로 처리할 수 있도록 해준다. DOM API는 표준화되어 있기 때문에, 콘텐츠 구성요소(38)는 액티브 문서(10)를 디스플레이하기 위해 이용되는 브라우저 어플리케이션(22)에 상관없이 표준 방식으로 처리될 수 있다.
넓은 관점에서, 그리고 도 4를 참조하면, 본 발명에 따라 구축된 시스템은 클라이언트 컴퓨터(18)상에서 작업하는 사용자로 하여금 액티브 문서(10)를 액세스 하기 위해 (네트워크로도 지칭될 수 있는) 통신 채널(30)을 통해 서버 컴퓨터(14)와 통신할 수 있도록 한다. 이러한 실시예에서, 콘텐츠 구성요소(38)만이 클라이언트(18)에 전송된다. 액티브 문서(10)의 실행부(34)는 서버(14)상에 남게 된다. 액티브 문서(10)에 대한 클라이언트(18)로부터의 사용자 요청에 응답하여, 서버(14)는 통신채널(30)을 통해 액티브 문서(10)의 콘텐츠 구성요소(38)를 클라이언트(18)에 전송한다. 콘텐츠 구성요소(38)들은 모두 함께 전송될 수 있거나, 또는 브라우저가 필요할 때 전송될 수 있다(즉, 구성요소들이 "온디멘드(on demand)" 방식으로 전송될 수 있다).
서버(14)는 DOM 프록시(50)을 제공하는데,이는 DOM API(42)를 포함한다. 액티브 문서(10)의 실행부(34)는 자신이 브라우저 어플리케이션(22)에 의해 제공되는 DOM API와 직접적으로 상호작용하는 것처럼 DOM 프록시(50)에 명령을 발송하고 DOM 프록시(50)로부터 출력을 수신한다. DOM 프록시(50)은 DOM API가 하는 것보다 더 많은 명령을 받을 수 있다. 이 실시예에서, DOM 프록시는 부가적인 명령들을 DOM API가 제공하는 하나 이상의 명령으로 변환한다. 어떠한 실시예에서는, DOM 프록시(50)에 의해 제공되는 DOM API(42)가 부가적인 기능성을 제공하기 위해 기능향상되거나, 또는 월드와이드웹 콘소시움에 의해 공표된 DOM 레벨 0 사양 또는 레벨 1 사양에 따른다.
DOM 프록시(50)는 액티브 문서(10)의 실행부로부터 명령을 수신하고 이를 통신채널(30)을 통해 클라이언트 노드(18)에 전송한다. DOM 프록시(50)은 또한 통신채널(30)을 통해 클라이언트 노드(18)로부터 데이터를 수신하고 수신된 데이터를 액티브 문서(10)의 실행부(34)에 제공한다. DOM 프록시(50)는 서블렛(servlet) 또는 어플리케이션 프로그램으로서 제공될 수 있다. 예를 들어, DOM 프록시(50)은 JAVA 빈(bean) 또는 액티브 엑스 콘트롤(Active X control)로서 제공될 수 있다. 대안적으로, DOM 프록시(50)는 DOM API 명령의 결과물을 시각적 디스플레이로서 만드는 대신에 통신채널(30)을 통해 데이터를 전송하도록 브라우저 어플리케이션(22)을 변경함으로써 제공될 수 있다.
클라이언트 노드(18) 및 서버 노드(14)는, 표준전화선, LAN 또는 WAN 링크(예, T1, T3, 56kb, X.25), 브로드밴드 접속(ISDN, 프레임릴레이, ATM) 및 무선접속 등을 포함하는 다양한 네트워크 접속을 이용하고 서로 통신할 수 있다. 접속은 다양한 통신 프로토콜(예, TCP/IP, HTTP, IPX, SPX, NetBIOS, 이더넷, RS322 및 직접 비동기 접속)들을 이용하여 확립될 수 있다.
클라이언트(18)은 DOM 액세스 모듈(DOM Access Module:DOM, 46)을 포함한다. DAM(46)은 통신채널(30)을 통해 DOM 프록시(50)와 통신한다. DAM(46)은 통신채널(30)을 통해 DOM 프록시(50)로부터 수신된 데이터에 응답하여 브라우저에의해 제공되는 DOM API(42)에 대한 DOM API 호출을 발송한다. DOM 프록시(50) 및 DAM(46)은 통신채널(30)을 통한 전송을 위해 데이터를 팩(pack)하거나 언팩(unpack)할 수 있다. 대안적으로, DOM 프록시(50) 및 DAM(46)은 데이터 전송을 위해 표준 프로토콜을 향상시키거나 그들 자신의 프로토콜을 제공할 수 있다. DAM(46)은, 스크립트, 애플릿, 플러그-인 또는 어플리케이션 프로그램으로서 제공될 수 있다. 예를 들어, DAM(46)은 JAVA 빈 또는 액티브 엑스 콘트롤로서 제공될 수 있다.
도 5는 도 4의 시스템을 좀더 자세하게 도시하고 있다. 도시된 실시예에서, 클라이언트(18)는 통신채널(30)을 이용하여 서버(14)상에 위치한 웹서버 소프트웨어(18)와 초기 접속(30a)를 개설하는 브라우저(22)를 실행시킨다. 브라우저(22)는, 미국 캘리포니아주 마운튼뷰에 위치하는 네스케이프 커뮤니케이션사에서 제조한 네스케이프 네비게이터(NETSCAPE NAVIGATOR), 또는 미국 워싱톤 레드몬드에 위치하는 마이크로소프트 코포레이션에 의해 제조된 인터넷 익스플로러(INTERNET EXPLORER)와 같은 임의의 적절한 브라우저 어플리케이션일 수 있다. 서버(14)는 미국 매릴랜드 포레스트 힐에 위치한 아파치 파운데이션에 의해 코디네이트된 오픈-소스 웹서버의 일종인 아파치 웹 서버(APACHE WEB SERVER) 또는 마이크로소프트사에 의해 제조된 인터넷 정보 서버(INTERNET INFORMATION SEVER)와 같은 웹서버 소프트웨어(54)를 실행시킨다. 웹서버 소프트웨어(54)는 클라이언트상에서 실행되는 클라이언트 브라우저(22)로부터 액티브 문서(10)에 대한 요청을 수신하고 요청된 액티브 문서(10)을 검색한다. 서버(14)는, 테이프, 자기디스크, 광학디스크, 또는 CD-ROM과 같은 대용량 저장장치로부터 액티브 문서(10)를 검색한다. 대안적으로, 서버(14)는 RAM 또는 ROM, 또는 네트워크 접속을 통해 또다른 서버로부터 문서(10)를 검색해올 수 있다.
일단 브라우저(22)가 클라이언트(18)과 서버(14)간의 초기 접속을 확립하면, 클라이언트와 서버간의 액티브 문서(10) 데이터 전송은 제2 채널(30b)를 통해 발생한다. 이러한 제2 채널(30b)은 클라이언트(18)상의 DAM(46)과 서버(14)상의 DOM 프록시(50)간에 설립된 통신 채널이다. 액티브 문서 데이터의 송수신도 이 채널(30b)를 통해 발생한다. DAM(46) 및 DOM 프록시(50)는 액티브 문서의 개별 요소들이 식별되고 표시되어 임의의 개별 요소의 변경이 DAM(46)과 DOM 프록시(50)간에 통신될 수 있는 프로토콜을 이용하여 통신한다. 어떠한 실시예에서는, 숫자처리부호 또는 "티켓(ticket)"이 각각의 구성요소를 식별해준다.
일실시예에서, DAM(46)과 DOM 프록시(50)에 의해 이용되는 프로토콜은 DOM 프록시(50)가 클라이언트(18)상에서 발생하는 임의의 이벤트에 대한 통지를 수신해야 함을 나타내는것을 허용한다. 이러한 실시예에서, DOM 프록시(50)는 "마우스클릭" 이벤트와 같은 자신이 흥미를 갖는 이벤트를 식별해주는 티켓과 핸들러 루틴(handler routine)을 연관시킨다. 클라이언트(18)상에서 해당 이벤트가 발생하면, DAM(46)은 DOM 프록시(50)에게 통지해준다. 실시예에서, DAM(46)은 DOM 프록시(50)에 이벤트가 발생했음을 알리고 티켓 및 선택적으로는 이벤트 설명을 포함하는 메시지를 전송함으로써 DOM 프록시(50)에 통지한다. DOM 프록시는 또한 이벤트를 식별하는 티켓을 포함하는 메시지를 DAM(46)에 전송함으로써 이벤트에 더 이상 흥미가 없음을 나타낼 수 있다. 특정 실시예에서, DAM(46)은 승인(acknowledge)으로 이러한 메시지에 응답함으로써, DOM 프록시(50)가 티켓과 이에 연관된 핸들러간의 구속관계를 해제할 수 있다. 예를 들어, DOM 프록시(50)는 핸들러 및 이벤트를 연관시킨 테이블내의 엔트리를 삭제한다.
도 6 및 7은 본발명과 관련하여 유용한 프로토콜을 구현한 DAM 동작 및 DOM 프록시 동작을 설명한 일실시예를 도시한다. 클라이언트(18)가 서버(14)와 초기 접속을 이루면, DAM(46)은 초기상태(60)에 있고 DOM 프록시(50)은 초기상태(80)에 있다. DAM(46)은 액티브 문서(10)가 콘텐트 요소와 관련된 실행부(34)를 식별할때까지 초기상태(60)로 남아 있는다. 실행부(34)가 식별되면, DAM(46)은 서버(14)상의 DOM 프록시(50)과 접속을 초기화하고(화살표 62) 접속진행상태(64)에 들어간다.
일실시예에서, 접속의 초기화(화살표 62)는 접속이 요청됨을 나타내는 메시지를 서버(14)에 전송함으로써 성취된다. 임의의 실시예에서, 접속 메시지는 접속 요청이 관계되는 액티브 문서(10), 접속중에 지정될 수 있는 콘텐츠 구성요소의 최대갯수, 콘텐츠 구성요소에 관련된 정보를 전송하는 바람직한 속도, 및 데이터전송시에 암호화의 여부등과 같은 요청된 접속에 관련된 정보를 포함할 수 있다.
DOM 프록시(50)가 접속요청을 수신하면, DAM(46)은 접속 요청을 승인하는 하나 이상의 메시지를 DOM 프록시(50)로부터 수신한다(도 7의 화살표 82 및 도 6의 화살표 66). DAM(46)은 접속상태(68)로 전이하고 DOM 프록시(50)는 접속상태(84)로 전이한다. DOM 프록시(50)로부터 수신한 승인메시지는 DAM(46)이 액티브 문서(10)의 하나 이상의 콘텐츠 구성요소를 변화시키도록 지시하는 하나 이상의 명령어를 포함하는 어플리케이션 초기화 결과를 포함할 수 있다.
DOM 프록시(50)가 접속요청을 거절하거나 또는 물리적 매체 장애, 서버(14)로부터의 응답 부재, 서버 장애 또는 서버 응답 분실을 나타내는 로컬 전송 메커니즘으로부터의 명백한 신호와 같은 그밖의 다른 이유로 인해 접속에 실패하면, DAM(46)은 초기상태(50)로 복귀한다.
DAM(46) 및 DOM 프록시(50) 각각이 접속상태(68, 84) 각각에 있는 동안, 이들 모두는 동기 및 비동기 메시지를 초기화할 수 있다. 동기 메시지는 완료 승인을 요구하는 반면에, 비동기 메시지는 어떠한 승인도 요구하지 않는다. 이하의 표 1은 서버에 의해 생성될 수 있는 다수의 예시적인 메시지를 열거한다.
<표 1>
메시지명 (비)동기 데이터 의미
Event_Done 비동기 어플리케이션이 이벤트 처리를 완료함
동일 동기 요소X용 티켓요소Y용 티켓 요소X와 요소Y가 동일한 요소인지를 리턴함
Get_Cookie 동기 쿠키명 페이지의 쿠키값을 리턴함
Set_Cookie 비동기 쿠키명쿠키값만료일적용경로적용도메인 페이지 쿠키를 설정함
Remove_Cookie 비동기 쿠키명적용경로적용도메인 페이지 쿠키를 제거함
Get_Prop 동기 요소용 티켓속성명 요소 속성값을 리턴함
CGet_Prop 비동기 결과용 티켓요소용 티켓속성명 T에 대하여 티켓 캐쉬에 요소 속성값을 저장
Set_Prop 비동기 요소용 티켓속성명속성값 요소 속성값을 설정
Remove_Prop 비동기 요소용티켓속성명 요소 속성을 제거
Call 동기 요소용 티켓메소드명메소드 인자 요소 메소드 호출, 인자 전달,결과 리턴
VCall 비동기 요소용 티켓메소드명메소드 인자 요소 메소드 호출, 인자 전달
CCall 비동기 결과용 티켓요소용 티켓메소드명메소드 인자 요소 메소드 호출, 인자 전달. T에 대하여 티켓 캐쉬에 결과 저장
Register 비동기 요소용 티켓이벤트 유형명 이벤트상에서 발생하는 지정된 유형의 이벤트의 관심 등록; 클라이언트로부터 '이벤트' 메시지예상
UnRegister 비동기 요소용 티켓이벤트 유형명 이벤트상에서 발생하는 지정된 유형의 이벤트에 대한 관심정지; 미래의 임의의 시점에 클라이언트로부터 '미등록' 메시지기대
Forget 비동기 요소용 티켓 티켓캐쉬로부터 요소 및 티켓 제거
Create 비동기 결과용 티켓 비시각적요소를 생성하여 T에 대하여 이를 티켓 캐쉬에 저장
Bind 비동기 결과용 티켓요소 식별자 식별자를 이용하여 문서내의 요소를 찾고, T에 대하여 이를 티켓 캐쉬에 저장
Scedule 비동기 요소용 티켓시간 기간(N) 매 N 밀리초마다 요소에 대한 이벤트 "호출"을 트리거하도록 준비, 이러한 준비의 결과로서 클라이언트로부터 '이벤트'메시지 예상
DOM 프록시(50)는 임의의 순서로 DAM(46)에 전송될 수 있는 다수의 비동기 명령어를 생성할 수 있다. 비동기 명령어를 DAM(46)에 전송할 때, DOM 프록시(50)는 접속상태(85)에 남아있고(화살표 86), DAM(46)도 마찬가지이다(화살표 70). DOM 프록시(50)가 동기 이벤트를 DAM(46)에 전송할 때, DOM 프록시는 클라이언트비지상태(90)에 들어간다(화살표 88). 이 상태에서, DOM 프록시(50)는 DAM(46)이 동기 명령어에 응답하기를 기다린다. DOM 프록시(50)는 DAM(46)으로부터 메시지를 수신하면 접속 상태(84)에 복귀한다(화살표 92). DAM은 DOM 프록시(50)로부터의동기 메시지에 응답할 때 접속상태(68)에 있다(화살표 72). DAM(46) 응답의 예는 이하의 표 2에 도시되어 있다.
<표 2>
클라이언트에 의해 생성된 예시적 메시지들
메시지명 (비)동기 데이터 의미
Unregister 비동기 요소용 티켓이벤트 유형명 요소에 대한 지정된 유형의 이벤트에 대해 더이상의 이벤트 메시지가 전송되지 않을 것에 대한 확인
Result 비동기 몇몇 요청으로부터 서버에 의해 요구된 결과
Event 동기 요소용 티켓이벤트 유형명이벤트 속성 지정된 유형의 이벤트가 요소에 대해 발생했음. 이벤트를 처리하는 서버로부터 발생하는 메시지가 앞선 후에, 서버로부터 "EventDone"메시지 예상.
DOM 프록시(50)가 흥미있는 것으로 식별했다는 사용자로부터의 입력이 브라우저(22)로부터 DOM 프록시(50)에 전송하기 위해 DAM(46)에 보내진다. DAM(46)은 DOM 프록시(50)에 동기 이벤트 메시지를 전송하고, 이벤트 전송상태(76)로 전이한다(화살표 74). DOM 프록시가 DAM(46)으로부터 동기 메시지를 수신할 때, 이벤트 수신상태(96)로 전이한다(화살표 94). DAM(46)은 이벤트 전송상태(76)에 있는동안, 접속상태(68)에 있는 것처럼 DOM 프록시(50)간에 메시지를 수신하고 응답할 수 있는 상태로 남아 있다(화살표 72', 70'). 그러나, DAM(46)은 이벤트 전송상태(76)에 있는동안, 부가적인 이벤트 메시지를 생성하지 않으므로, 브라우저(22)는 사용자 입력에 응답하지 않을 것이다.
DAM(46)이 DOM 프록시(50)에 동기 이벤트 메시지를 전송할 때, DOM 프록시(50)는 이벤트 수신상태(96)로 전이한다(화살표 94). 이 상태에서, DOM 프록시(50)는 액티브 문서(10)의 실행부와 상호작용하여 액티브 문서를 갱신한다.일단 액티브 문서가 사용자 입력에 따라 갱신되면, DOM 프록시(50)는 이벤트가 처리되었음을 나타내는 메시지를 DAM(46)에 전송하고 접속상태(84)로 전이한다(화살표 98). 유사하게, DAM은 그의 접속상태(68)로 전이한다(화살표 78).
액티브 문서(10)와 연관된 데이터가 DOM 프록시(50)에 의해 수신되고 액티브 문서(10)의 실행부(34) 및/또는 서버(14)상에 있는 다른 어플리케이션(58)에 전달된다. 유사하게, 클라이언트(18)로 목적지가 정해진 액티브 문서(10)와 연관된 데이터는 전송을 위해 DOM 프록시(50)에 전송된다.
예시적인 실시예에서, 도 8은 부동산 웹페이지(100)인 액티브 문서(10)을 도시하고 있다. 이 웹페이지의 한가지 특징은 사용자의 선택 조건에 따라 액티브 문서(10) 내에 테이블(120)을 생성하는 것이다. 이 웹페이지(100)는 클라이언트(18)에 전송될 액티브 문서의 콘텐츠부(38)의 일부로서 포함될 여러 구성요소(104,108,112,116,120)을 표시한다.
하나의 구성요소는 영국(104)의 이미지 지도이다. 이는 특정 지역을 선택하는데 이용된다. 사용자가 검색에 이용될 조건을 식별하기 위해 체크박스 구성요소(108)의 여러 인스턴스들도 있다. 사용자가 일군의 항목들로부터 선택하기 위한 4개의 선택 구성요소(112) 인스턴스가 있다. 사용자가 가격을 선택하기 위한 2개의 텍스트 필드 구성요소(116) 인스턴스가 있다. 테이블 구성요소(120)는 액티브 문서(10)의 콘텐츠부(38)의 일부로서 초기에 전송될 때 공백으로 되어 있다.
사진요소(124)는 콘텐츠부(38)의 일부로서 클라이언트(18)에 초기에 전송되지 않는다. 전술한 바와 같이, 콘텐츠부(38)의 구성요소를 변경시키는 것에 부가하여, 실행부(34)는 또한 콘텐츠(38)로부터 구성요소를 추가하거나 삭제할 수 있다. 사진 요소(124)는 임의의 사용자 입력이 있을 때까지는 클라이언트(18)에 전송되지 않는 구성요소의 일례를 보여준다.
웹페이지(100)의 실행부(34)는 서버(14)에 남아 있다. 실행부(34)는 사용자 입력을 감시하고(즉, 콘텐츠부(38)의 구성요소(104,108,112 및 116)을 감시하고), 이들 사용자의 선택에 응답하여 테이블요소(120)를 생성한다. 선택하는데 이용되는 부동산의 이용가능한 데이터베이스는 실행부(34)의 일부이거나 다른 어플리케이션(58)의 일부일 수 있다.
또한, 실행부는 콘텐츠부(38)의 다른 구성요소를 변경시킬 수 있다. 예를 들어, 커서가 영국 지도 이미지(104) 내의 지역위로 움직이고 마우스 클릭이 발생할 때, 실행부(34)는 선택된 지역에 부합하도록 도시선택구성요소(112a)의 도시 리스트를 변경한다. 좀더 자세히, 이러한 변화에 영향을 주기 위해, 다음 단계들이 발생한다. 클라이언트(18)는 통신채널(34), 인터넷을 통해 서버(14)와 초기 통신을 설립한다. 브라우저(22)는 웹서버소프트웨어(54)에 부동산웹페이지(100)에 대응하는 URL을 전송한다. 웹서버 소프트웨어는 그의 저장소로부터 웹페이지(100)(즉, 액티브 문서(10)을 검색해온다. 웹페이지는 DOM 레벨 1 사양에 따라 정의되어 있다. 서버(14)는 웹페이지(100)의 콘텐츠부(38)를 클라이언트(18)에 전송한다. 브라우저(22)는 DOM API(42)를 이용하여 웹페이지의 콘텐츠부(38)에 액세스하고 콘텐츠부(38)의 각 구성요소(104, 108, 112, 116 및 120)를 디스플레이함으로써 웹페이지(100)를 디스플레이한다.
웹페이지(100)와 연관된 데이터 전송에 대해, 브라우저(22)는 DAM(46)을 초기화하고, 초기화되지 않으면 DAM(46)간의 데이터 전송을 위해 통신채널(30b)을 설립한다. 클라이언트가 DAM(46)을 갖고 있지 않은 경우에, 웹페이지의 콘텐츠부(18)과 함께 몇가지 방법으로 서버로부터 다운로딩될 수 있다. 웹페이지(100)과 연관된 데이터전송을 위해, 웹페이지 서버소프트웨어(54)는 DOM 프록시(50)를 초기화하고, 초기화되지 않는다면, DOM 프록시(50)와의 데이터 전송을 위해 통신채널(30b)를 설립한다.
클라이언트(18)상의 사용자가 영국 지도 이미지(104) 상의 한 지역을 마우스로 클릭하면, 이 이벤트가 클라이언트-기반 DOM API(42)에 의해 캡쳐되고 DAM(46)에 전송된다. DAM(46)은 이러한 이벤트를 나타내는 데이터를 팩하고 이를, 예를 들어, 도 6에 도시된 단계들에 따라, DOM 프록시(50)에 전송한다. DOM 프록시(50)는 데이터를 언팩하고, 이를 서버(14) 기반 DOM API(42)를 통해 실행부(34)에 전송한다. 이러한 이벤트에 응답하여, 실행부(34)는 선택된 지역에 부합하는 리스트를 만들기 위해 콘텐츠부(38)에 도시선택리스트 구성요소(112a)를 변경하는 명령어를 생성한다. 실행부는 적용가능한 도시 리스트를 검색한다. 실행부(34)는 선택리스트 구성요소(112a)를 검색된 리스트로 변경하라는 명령을 발송한다. DOM 프록시(50)는 이러한 명령어를 나타내는 데이터를 팩하여 DAM(46)에 전송한다. DAM(46)은 데이터를 언팩하고 명령어를 클라이언트(18) 기반 DOM API(42)에 전송한다. 클라이언트-기반 DOM API(42)는 이러한 명령어를 마치 서버-기반형 DOMAPI(42)를 위해 발송된 것처럼 용이하게 이해한다. 전송지연 이외에, 이는 실행부(34)가 클라이언트(18)로부터 원격 실행되더라도 끊임없는 동작을 생성해준다. 클라이언트-기반 DOM API(42)는 명령어에 따라 구성요소(112a)를 변경하고 선택 리스트가 갱신된다. DOM API가 그의 저장소의 구성요소(112a)를 변경하면, 브라우저는 이에 따라 디스플레이를 변경한다.
본 발명은 본 발명의 근본 특징을 벗어남없이 몇가지 다른 형태로 구현될 수 있다. 따라서, 전술한 설명은 본원발명을 한정하는 것이 아니라 단지 예시적인 측면에서 서술된 것이다. 본 발명의 범위는 전술한 설명에 의해서가 아니라 첨부된 청구범위에 의해 정의되며, 따라서 청구항의 균등범위내에서 발생하는 모든 변화는 청구범위내에 포함될 것이다.

Claims (12)

  1. 통신채널을 통해 클라이언트에 콘텐츠부와 실행부를 포함하는 액티브 문서를 제공하는 방법에 있어서,
    (a) 상기 통신채널을 통해 상기 클라이언트에 상기 액티브 문서의 상기 콘텐츠부의 적어도 일부를 전송하는 단계와,
    (b) 상기 액티브 문서의 상기 실행부로부터 출력 데이터를 생성하는 단계와,
    (c) 상기 전송된 액티브 문서의 상기 콘텐츠부의 적어도 일부를 상기 클라이언트에 의해 변경시키기 위해 상기 통신채널을 통해 상기 클라이언트에 상기 생성된 출력 데이터를 전송하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 클라이언트로부터 상기 액티브 문서를 식별하는 요청을 수신하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 클라이언트로부터 상기 액티브 문서를 식별하는 URL 주소를 수신하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 단계(b)는
    (b-a) 상기 클라이언트로부터 데이터를 수신하는 단계와,
    (b-b) 상기 수신된 데이터에 응답하여, 상기 액티브 문서의 상기 실행부로부터 출력 데이터를 생성하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서, 서버상에 상기 액티브 문서의 상기 실행부를 유지하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    a) 상기 액티브 문서의 상기 실행부를 실행시키는 단계와,
    b) 상기 액티브문서의 상기 실행부의 실행에 응답하여 상기 액티브 문서의 상기 콘텐츠부의 적어도 일부를 변경시키는 단계
    를 더 포함하는 방법.
  7. 제1항에 있어서,
    a) 상기 액티브 문서와 상호작용하는 제2 어플리케이션을 실행시키는 단계와,
    b) 상기 제2 어플리케이션의 상기 실행에 응답하여 상기 액티브 문서의 상기 콘텐츠부의 적어도 일부를 변경시키는 단계
    를 더 포함하는 방법.
  8. 통신채널을 통해 클라이언트에 콘텐츠부와 실행부를 포함하는 액티브 문서를 제공하기 위한 서버에 있어서,
    상기 액티브 문서의 상기 실행부에 응답하여 출력 데이터를 생성하기 위한 출력데이터생성기와,
    상기 통신채널을 통해 전송하기 위해 상기 생성된 출력데이터를 수신하는 송수신기 - 상기 송수신기는 상기 액티브 문서의 상기 콘텐츠부를 처리하기 위한 API를 포함함 -
    를 포함하는 서버.
  9. 제8항에 있어서, 상기 출력데이터생성기는 상기 통신채널로부터 수신된 입력 데이터에 응답하여 출력 데이터를 생성하는 서버.
  10. 제9항에 있어서, 상기 API는 DOM API를 포함하는 서버.
  11. 제9항에 있어서, 상기 송수신기는 상기 통신채널을 통해 상기 생성된 출력 데이터를 전송하는 서버.
  12. 통신채널을 통해 콘텐츠부와 실행부를 포함하는 액티브문서를 수신하고 표시하기 위한 클라이언트에 있어서,
    브라우저 어플리케이션과 통신하는 브라우저 인터페이스와,
    상기 통신채널을 통해 데이터를 수신하고 수신된 데이터를 상기 브라우저 인터페이스에 전송하는 송수신기
    를 포함하는 클라이언트.
KR1020027008175A 1999-12-23 2000-12-20 서버기반형 액티브 문서 제어 KR20020063602A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US47082599A 1999-12-23 1999-12-23
US09/470,825 1999-12-23
PCT/US2000/034848 WO2001046863A1 (en) 1999-12-23 2000-12-20 Server-based active document control

Publications (1)

Publication Number Publication Date
KR20020063602A true KR20020063602A (ko) 2002-08-03

Family

ID=23869211

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027008175A KR20020063602A (ko) 1999-12-23 2000-12-20 서버기반형 액티브 문서 제어

Country Status (8)

Country Link
EP (1) EP1240603A1 (ko)
JP (1) JP2003518297A (ko)
KR (1) KR20020063602A (ko)
AU (1) AU2448001A (ko)
CA (1) CA2392799A1 (ko)
HK (1) HK1047985A1 (ko)
IL (1) IL150107A0 (ko)
WO (1) WO2001046863A1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
WO1998006033A1 (en) * 1996-08-08 1998-02-12 Agranat Systems, Inc. Embedded web server

Also Published As

Publication number Publication date
AU2448001A (en) 2001-07-03
HK1047985A1 (zh) 2003-03-14
EP1240603A1 (en) 2002-09-18
JP2003518297A (ja) 2003-06-03
WO2001046863A1 (en) 2001-06-28
IL150107A0 (en) 2002-12-01
CA2392799A1 (en) 2001-06-28

Similar Documents

Publication Publication Date Title
US7490126B2 (en) Method and apparatus for generating data change requests containing data consistency information in a peer-to-peer collaborative computer system
US8370370B2 (en) Bridging real-world web applications and 3D virtual worlds
US7930362B2 (en) Techniques for delivering personalized content with a real-time routing network
KR100534816B1 (ko) 대화식하이퍼미디윰을작성하기위한방법및장치
US6446113B1 (en) Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
US7464381B1 (en) Content update proxy method
US7725906B2 (en) Method and device for executing a function with selection and sending of multiple results in a client-server environment
EP1808789B1 (en) Improvements in and relating to remote user interfaces
EP1811747B1 (en) Method and apparatus for storing and restoring state information of remote user interface
CN104426925B (zh) 网页资源获取方法及装置
US20060031282A1 (en) Techniques for updating live objects at clients using a dynamic routing network
CZ381198A3 (cs) Zajišťování komunikačních spojů v počítačové síti
US7685258B2 (en) Disconnectible applications
US6968356B1 (en) Method and apparatus for transferring data between a client and a host across a firewall
KR20020063602A (ko) 서버기반형 액티브 문서 제어
KR20010006794A (ko) 애플리케이션 프리젠테이션 동기 장치
EP1457882B1 (en) Method and computer system for enabling flexible request-response cycles
JP2000148620A (ja) サーバ・クライアントシステム
AU782757B2 (en) Distributed process for synchronizing the delivery of data from multiple web servers
WO2017051916A1 (ja) 携帯端末にプッシュ通知を行うための通知方法及び通知サーバ
WO2002029582A1 (en) Systems and methods of internet chat sessions among multiple users visiting any designated website

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid