KR19990023317A - 클라이언트측의 비동기적 양식관리 방법 및 그 시스템 - Google Patents

클라이언트측의 비동기적 양식관리 방법 및 그 시스템 Download PDF

Info

Publication number
KR19990023317A
KR19990023317A KR1019980031579A KR19980031579A KR19990023317A KR 19990023317 A KR19990023317 A KR 19990023317A KR 1019980031579 A KR1019980031579 A KR 1019980031579A KR 19980031579 A KR19980031579 A KR 19980031579A KR 19990023317 A KR19990023317 A KR 19990023317A
Authority
KR
South Korea
Prior art keywords
request
stored
response
computer
user input
Prior art date
Application number
KR1019980031579A
Other languages
English (en)
Other versions
KR100289297B1 (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 KR19990023317A publication Critical patent/KR19990023317A/ko
Application granted granted Critical
Publication of KR100289297B1 publication Critical patent/KR100289297B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템에서 실행중인 웹 브라우저와 통신하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다. 본 발명에 의하면, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션으로의 요구는 상기 원격/이동 처리 시스템의 영구적인 요구 큐(persistent request queue)에 저장된다. 상기 클라이언트 애플리케이션으로부터의 요구에 응답하여 상기 웹 브라우저로 잠정 응답(interim response)이 제공된다. 상기 요구를 상기 서버 애플리케이션으로 전송하기 위하여 상기 제 2 컴퓨터로 제공하기 전에 사용자가 상기 요구를 수정할 수 있도록 하기 위하여 상기 저장된 요구를 재호출할 수 있다.

Description

클라이언트측의 비동기적 양식 관리 방법 및 그 시스템 (CLIENT-SIDE ASYNCHRONOUS FORM MANAGEMENT)
본 발명은 원격/이동 컴퓨팅(remote/mobile computing)에 관한 것으로서, 특히 웹 브라우저/웹 서버(web browser/web server) 통신 모델(communication model)을 이용한 원격/이동 컴퓨팅에 관한 것이다.
최근의 정보 고속도로(information superhighway)의 발표와 그에 대한 강조는 대중 통신 매체로서의 인터넷(Internet)의 광범위한 인식과 수용을 가져왔다. 다수의 네트워크를 통한 통신 및 상호작용을 위한 현실적인 매체로서의 인터넷에 관한 이러한 광범위한 인식은, 컴퓨터 네트워크들 사이의 상호작용을 위한 인터넷 표준화 프로토콜(Internet standardized protocols)위에 구축된 거대한 사용자 베이스(user base)를 생산해냈다.
인터넷에 관한 패러다임(paradigm)은 인터넷 클라이언트(브라우저)가 인터넷 서버와 통신하는 클라이언트-서버 관계의 패러다임이다. 인터넷으로의 억세스를 보다 확대하기 위하여, 상기 클라이언트와 서버가 사용하는 통신 프로토콜과 언어가 표준화되었다. 이러한 프로토콜로서, 클라이언트와 서버 사이의 통신을 위하여 사용되는 통신 프로토콜인 하이퍼텍스트 전송 프로토콜(Hyper-Text Transfer Protocol)(HTTP)과, 전송 제어 프로토콜/인터넷 프로토콜(Transfer Control Protocol/Internet Protocol)(TCP/IP) - 상기 TCP/IP 프로토콜의 TCP 부분은 컴퓨터들 또는 애플리케이션들 사이의 통신을 위한 전송 고유 프로토콜(transfer specific protocol)임 - 등이 포함된다. 또한, 하이퍼텍스트 마크업 언어(Hypertext Markup Language)(HTML)라 불리는 언어도 표준화되었는데, 이를 통하여 클라이언트와 서버가 통신하게 된다.
월드 와이드 웹(World Wide Web) 클라이언트/서버 애플리케이션에 있어서는, 클라이언트는 사용자 인터페이스(user interface)로서 기능하는 웹 브라우저(web browser)가 될 수 있다. 웹 브라우저는 적절한 웹 서버에 사용자의 요구를 송신하고, 상기 웹 서버로부터 회신된 HTML 데이터를 포맷하여 디스플레이한다. 또한, 상기 웹 브라우저는, 그 브라우저에 의하여 시동될 후속 브라우저 요구를 요청하는 하이퍼링크 문구가 상기 HTML 데이터에 삽입되었는지의 여부를 판단하기 위하여 상기 HTML 데이터를 평가한다. 웹 서버는 상기 클라이언트에 대한 서버로서 기능하며, 상기 웹 브라우저의 요구를 처리하고 그 요구된 응답을 HTTP 데이터 스트림의 HTML 부분으로서 회신한다.
인터넷 기반 시스템을 위한 기본적인 통신 구조를 도 1에 도시하였다. 도 1에 도시된 바와 같이, 웹 서버(10)는 통신 링크(communication link)(15)를 통해 웹 서버(20)와 통신한다. 이러한 통신 링크는 일반적으로 국지 영역 네트워크 접속(local area network connection), 광역 네트워크 접속(wide area network connection), 전화 회선(telephone lines)을 통한 접속 또는 이들의 조합 등이다. 상기 웹 브라우저(10)는 TCP/IP를 사용하여 상기 웹 서버(20)와 통신한다. 대부분의 인터넷 통신에서는, 웹 브라우저와 웹 서버 사이의 TCP/IP 링크를 통해 그들 사이에 전송되는 범용 통신 프로토콜인 HTTP를 사용하여 웹 브라우저와 웹 서버가 통신한다. 상기한 바와 같이, 실제로 상기 웹 서버(10)와 웹 브라우저(20) 사이에 전송되는 데이터는 HTTP 데이터 객체(data object)(예를 들어, HTML 데이터)이다. 상기 웹 서버(20)는 다수의 웹 브라우저로부터의 웹 브라우저 통신을 수신하여 적절한 서버로 경로를 지정하는 프록시(proxy)일 수 있다.
웹 브라우저/웹 서버, 그들의 공통 정보 및 전송 프로토콜, 즉 HTML과 HTTP의 대중성은 정보로의 네트워크 억세스를 위한 범용 인터페이스로서의 웹 기술의 수용을 빠르게 이끌어왔다. 또한, 웹 브라우저와 웹 서버 사이의 통신을 위한 프로토콜 및 언어가 표준화됨에 따라, 사용자가 네트워크 정보에 억세스하기 위하여 넷스케이프 네비게이터TM, NCSA 모자이크TM, 웹 익스플로러TM또는 어떠한 다른 웹 브라우저를 그들의 웹 브라우저로 사용하든, 그 통신 프로토콜과 언어는 동일한 것이 된다. 따라서, 인터넷과의 접속성(connectivity)과 결합된 웹 브라우저를 위하여 설치된 대규모의 사용자 기반과, HTTP로 정의된 공통 게이트웨이 인터페이스(Common Gateway Interface)(CGI)를 사용하여 웹 애플리케이션 서버를 용이하게 기록할 수 있다는 점에 의하여, 웹 기술은 대규모의 양식 기반 애플리케이션들의 부류(class of form-based applications)에 매우 매력적인 것으로 되었다.
인터넷이 인기를 끌며 수용됨과 동시에, 이동 컴퓨팅도 또한 대중성을 획득하고 있었다. 랩톱(laptop), 노트북(notebook), 개인 디지털/휴대 통신(Personal Digital/Communication Assistant)(PDA/PCA) 및 기타의 휴대용 장치들은 무선 통신(wireless communication)의 수요를 증가시켰다. 그러나, 무선 광역 네트워크, 셀룰러 통신(cellular communication) 및 패킷 라디오(packet radio) 등은 웹 환경에 사용될 경우 공통적인 한계를 갖는다. 바이트당 높은 통신비용, 느린 응답 시간, 낮은 대역폭 및 낮은 신뢰도 등은 모두 월드 와이드 웹의 무상태(stateless) 통신 프로토콜을 위하여 무선 기술을 사용하는 것을 방해한다. 또한, 상기 웹 프로토콜이 무상태이므로, 단위 요구당 데이터의 양과 무선 접속을 통해 전송되는 통신 요구의 수가, 그 통신이 독립식(self-contained)이 아닌 경우에 소요되는 양과 비교하여 많아지게 된다.
나아가, 웹 브라우징(browsing)에 내재된 메카니즘과 프로토콜은 전통적인 네트워크 모델을 염두에 두고 개발되었다. 이러한 메카니즘은, 관여하는 컴퓨터들이 높은 대역폭의, 저렴하고 신뢰할만한 링크를 통하여 접속되었다는 묵시적인 가정을 기초로 하여 개발되었다. 그러나, 유선 LAN 또는 유선 WAN 환경과는 대조적으로, 이동 링크는 전형적으로 낮은 대역폭을 가지며 고가이고 신뢰하기 어렵다. 일부 이동 접속들은 다른 것에 비하여 보다 덜 부담스럽다. 예를 들면, 간단한 전화 모뎀은 패킷 라디오에 비하여 빠르고 값싸다. 그러나, 이 모든 것들은 LAN의 해당 장치에 비하여 심각하게 느리다. 이동 접속들은 또한, 신뢰성이 떨어진다. 즉, 신호 열화(signal degradation), 차단(blockage) 및 다른 문제들로 인한 접속의 실패(dropped connection)가 드문 것은 아니다. 그리하여, LAN 환경을 향한 웹 브라우저와 같은 애플리케이션들은, 종종 네트워크에 종속된 설정에서 매우 열등한 성능을 보인다.
또한, 상기 이동 환경(mobile environment)은 단선(disconnection)시의 동작 문제를 야기시킨다. 기존의 많은 네트워크 애플리케이션과 함께 표준적인 웹 브라우징은 단선을 상대적으로 드문 오류의 경우로 가정한다. 클라이언트가 서버로부터 단선되었을 때에는, 일반적으로 동작은 실패하게 된다.
열악한 접속성과 단선의 가능성은 이동성 문제를 제 3의 국면으로 이끈다. 즉, 사용자의 접속성이 갖는 동적 속성(dynamic nature)이다. 서로 다른 시간에, 한 사용자가 강하게 접속되어 있을 수도 있고(LAN), 약하게 접속되었을 수도 있으며(셀룰러 또는 다른 이동 링크), 단선되어 있을 수도 있다.
무선 통신에 전형적인 자원 한정적(resource-constrained)이거나 신뢰할 수 없는 통신 환경에서 브라우저를 사용할 때, 몇 가지의 요소들에 의하여 열악한 유용성이 야기되며 사용자 생산성이 감소된다. 먼저, 브라우저 프로토콜은 동기적(synchronous)인데, 이것은, 하나의 요구가 완료될 때까지 기다린 이후에야 사용자가 다른 요구를 할 수 있게 된다는 것을 의미한다. 느린 무선 전송, 정체된 인터넷이나 인트라넷(intranet) 트래픽, 또는 과부하가 걸린 웹 서버 등에 의하여 지연이 길어지는 경우에, 사용자는 좌절하게 되거나 비생산적이게 된다.
두 번째로, 동기적 요구/응답 방식에 내재된 일시폭발성(burstiness)은 느린 링크상에서 심각한 문제를 일으킬 수 있다. 유선 LAN상에서는, 서버의 응답 시간이 보통 주된 관심사이나, 무선 환경에서는 대역폭(bandwidth)과 잠복시간(latency)이 전형적으로 지배적인 요소가 된다. (패킷 라디오 네트워크에서의 잠복시간은 수 초(second) 대에 이를 수도 있다.) 세 번째로, 일반적인 동기적 요구/응답 모델은 자발적이거나 비자발적인 단선에 직면하는 경우에는 전혀 작동할 수 없다는 것이다. 만약 하나의 요구를 즉시 만족시킬 수 없다면, 전형적으로 오류 코드(error code)를 회신할 것이고, 사용자는 명백히 이후에 상기 요구를 재시도하여야 할 것이다.
상기한 바와 같이, 접속 성능과 신뢰도의 다양한 수준으로 특징지워지는 이동 컴퓨팅 환경에서 웹 브라우저/웹 서버의 동작을 향상시키기 위한 필요성이 존재한다.
상기한 바에 비추어 볼 때, 본 발명의 목적은, 약한 접속 환경 또는 단선 환경에서 브라우저 통신의 동기적 성질에 의한 영향을 감소시키는 것이다.
본 발명의 다른 목적은, 전송 시간, 잠복시간 또는 기타의 통신 한계에 의하여 브라우저/서버 통신의 응답성(responsiveness)이 저하되는 원격 또는 이동 환경에서의 브라우저의 한계를 극복하는 것이다.
본 발명의 또 다른 목적은, 환경의 성질이 사용자에게 투명한(transparent) 이동 환경에서의 브라우저의 기능을 제공하는 것이다.
본 발명의 또 다른 목적은, 기존의 브라우저를 이동 환경에서 사용할 수 있도록 접속 스테이트(connection status)를 브라우저에 투명하게 하는 것이다.
도 1은 전형적인 웹 브라우저/웹 서버 시스템을 도시한 블록도.
도 2는 본 발명에 의한 클라이언트 인터셉트 및 서버 인터셉트를 사용하는 웹 브라우저/웹 서버 시스템의 한 실시예를 도시한 블록도.
도 3은 본 발명에 의한 원격/이동 데이터 처리 시스템을 도시한 블록도.
도 4는 본 발명에 의한 단선된 또는 연기된 처리 동작을 도시한 흐름도.
도 5는 본 발명에 의한 원격/이동 데이터 프로세스 시스템에서 브라우저 요구에 대한 응답을 수신하는 것에 관련된 동작을 도시한 흐름도.
도 6은 본 발명에 의한 요구를 교정하는 것과 관련된 동작을 도시한 흐름도.
도면의 주요 부분의 부호의 설명
5 : 제 1 컴퓨터 6 : 제 2 컴퓨터
10 : 웹 브라우저 20 : 웹 서버
30 : 클라이언트측 인터셉트 35 : 통신 링크
40 : 서버측 인터셉트
상기의 목적을 달성하기 위하여 본 발명은, 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템에서 실행중인 웹 브라우저와 통신하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다. 본 발명에 의하면, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션으로의 요구는 상기 원격/이동 처리 시스템의 영구적 요구 큐(persistent request queue)에 저장된다. 상기 클라이언트 애플리케이션으로부터의 요구에 응답하여 상기 웹 브라우저로 잠정 응답(interim response)이 제공된다. 상기 요구를 상기 서버 애플리케이션으로 전송하기 위하여 상기 제 2 컴퓨터로 제공하기 전에, 사용자가 상기 요구를 수정할 수 있도록 하기 위하여 상기 저장된 요구를 재호출할 수 있다.
또한, 상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 접속되었을 때 상기 저장된 요구를 상기 제 2 컴퓨터로 전송하며, 상기 제 2 컴퓨터를 통하여 상기 서버로부터의 응답을 수신한다. 상기 요구에 대한 응답은 상기 저장된 요구와 연관된 원격/이동 처리 시스템에 저장된다. 상기 저장된 응답은 상기 클라이언트 애플리케이션에 제공될 수 있다.
요구 큐에 요구를 저장하고 웹 브라우저에 잠정 응답을 제공함으로써, 웹 브라우저의 비동기적 동작이 이루어질 수 있다. 나아가, 접속이 확립될 때까지 요구를 저장함으로써, 사용자는 상기 요구가 처리되기 전에 상기 요구를 재호출하고 편집하여 변경할 수 있다. 따라서, 본 발명은 약한 접속의 한계를 극복할 수 있다. 또한, 본 발명에 의하면, 느린 속도의 환경에서는 사용자가 통신이 백그라운드(background)에서 수행되는 동안 작업을 계속할 수 있다.
본 발명의 한 실시예에 의하면, 사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공한다. 상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들이고, 상기 사용자의 입력에 기초하여 상기 저장된 요구의 목록중에서 선택된 요구에 대하여 연관된 응답을 상기 웹 브라우저에 제공한다.
본 발명의 다른 실시예에 의하면, 상기 응답이 상기 원격/이동 데이터 처리 시스템에 의하여 수신되었을 때, 상기 수신된 응답의 활용가능성에 관하여 상기 사용자에게 통지하고, 만약 사용자가 상기 응답을 요구하면 상기 응답을 상기 웹 브라우저에 제공한다.
본 발명의 또 다른 실시예에 의하면, 상기 요구와 연관된 HTML 양식과 상기 요구에 연관된 사용자의 입력을 저장한다. 상기 저장된 사용자 입력은 상기 저장된 HTML 양식과 연관된다. 그리하여, 상기 요구를 생성한 원래의 양식과 상기 요구의 사용자 입력을 저장함으로써, 사용자는 수정이나 확인을 위하여 상기 요구를 재호출할 수 있다. 상기와 같은 재호출은, 사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하고 상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들임으로써 달성될 수 있다. 그 다음에, 저장된 요구중에 상기 사용자의 입력에 의하여 선택된 것은 상기 요구를 작성한 원래 양식으로 사용자에게 제공된다.
상기 요구의 원래 양식은 상기 요구와 연관된 저장된 양식과 상기 요구와 연관된 저장된 사용자 입력을 재호출함으로써 작성된다. 그 다음에, 상기 재호출된 양식과 재호출된 사용자 입력은, 상기 사용자 입력과 함께 상기 양식을 재생성하도록 상기 웹 브라우저에 제공된다. 상기 재호출된 양식과 사용자 입력은, 상기 재호출된 양식의 네임드 필드(named field)에 대하여 상기 재호출된 양식을 스캐닝(scanning)하고, 상기 사용자 입력의 명칭/값 쌍(name/value pair)에 대하여 상기 재호출된 사용자 입력을 스캐닝함으로써 결합될 수 있다. 그 다음에, 상기 재호출된 양식의 상기 네임드 필드의 디폴트(default) 선택이나 사용자 입력은, 상기 사용자 입력으로부터의 정합된 명칭/값 쌍의 값으로 대체될 수 있다.
본 발명의 또 다른 실시예에 의하면, 저장되어 재호출된 요구에 대한 응답이 상기 원격/이동 데이터 처리 시스템에 저장되었는지의 여부를 판단한다. 그 다음에, 상기 저장된 응답을 재호출하기 위한 하이퍼링크를 사용자에게 제공하기 위하여, 상기 재호출된 양식에 대한 저장된 응답으로의 링크를 제공한다.
또한, 상기 사용자의 입력에 의하여 수정된 원래의 요구에 기초하여 교정된 요구를 제공하도록 상기 웹 브라우저로부터의 원래의 요구를 교정하기 위한 사용자 입력을 받아들인다. 그 다음에, 상기 교정된 요구를 상기 요구 큐에 저장한다. 상기 요구 큐의 요구는 선택에 따라 상기 교정된 요구로 대체될 수 있다.
본 발명의 또 다른 실시예에 의하면, 상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터와 링크되었는지의 여부에 관하여 판단한다. 상기 실시예에 의하면, 상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 링크되지 않은 경우에만 상기 요구를 저장한다.
본 발명의 기술 분야의 통상의 지식을 가진 자라면, 본 발명이 방법, 장치/시스템 및 컴퓨터 프로그램 제품으로서 구현될 수 있음을 이해할 수 있을 것이다.
본 발명은, 그 실시예가 도시된 첨부 도면들을 참조하여 이하에서 보다 상세히 설명될 것이다. 그러나, 본 발명은 다른 여러 가지 형태로 실시될 수 있으므로 이하에서 개시된 실시예에 한정되는 것으로 해석되어서는 안된다. 즉, 이하의 실시예들은, 본 발명의 기술 분야의 통상의 지식을 가진 자들에게 본 발명의 기술 사상을 전체적으로 완전하게 전달하기 위한 것이다. 동일한 구성요소는 동일한 도면부호를 사용하였다. 본 발명의 기술 분야의 통상의 지식을 가진 자라면, 본 발명이 방법 또는 장치로 실시될 수 있음을 이해할 것이다. 따라서, 본 발명은 전적으로 하드웨어만의 실시 형태를 취할 수도 있으며, 전적으로 소프트웨어만의 실시 형태를 취할 수도 있고, 소프트웨어와 하드웨어의 양상이 결합된 실시 형태를 취할 수도 있다.
도 2는 본 발명의 한 실시예를 도시한 블록도이다. 도 2에 도시된 바와 같이, 웹 브라우저(10)는 클라이언트측 인터셉트 모듈(client-side intercept module)(30)과 통신한다. 상기 웹 서버(20)는 서버측 인터셉트 모듈(server-side intercept module)(40)과 통신한다. 그 다음에, 상기 클라이언트측 인터셉트 모듈(30)은 통신 링크(35)를 통해 상기 서버측 인터셉트 모듈(40)과 통신한다. 상기 웹 브라우저(10)와 상기 서버측 인터셉트 모듈(30)은 제 1 컴퓨터(5)에 포함될 수 있다. 상기 서버측 인터셉트 모듈(40)과 상기 웹 서버(20)는 제 2 컴퓨터(6)에 포함될 수 있다. 상기 제 1 컴퓨터(5)와 상기 제 2 컴퓨터(6)는 외부 통신 링크를 통해 통신한다. 상기 제 1 컴퓨터(5)는 원격/이동 데이터 처리 시스템인 것이 바람직하다. 여기서, 원격/이동(remote/mobile)이라 함은 일시적이며 간헐적으로 링크된(temporarily and intermittently linked)이라는 의미이며, 상기 간헐적이라 함은 연속적이 아니라 때때로 또는 이따금 오고 가는(coming and going at intervals, not continuous, or occasional)이라는 의미이다. 원격/이동 데이터 처리 시스템은 또한, 예컨대 네트워크를 통하여 다른 시스템으로 원격 억세스하는 데이터 처리 시스템을 포함할 수 있다.
상기 웹 브라우저(10)는, 하이퍼텍스트 전송 프로토콜(HTTP)과 하이퍼텍스트 마크업 언어(HTML)를 사용하는 인터넷 웹 서버(20)와 통신하기 위하여 HTTP와 HTML을 사용하는 인터넷 웹 브라우저인 것이 바람직하다. 동작중에, 상기 웹 브라우저(10)는 상기 클라이언트측 인터셉트 모듈(30)에 의하여 인터셉트 (intercept)되는 HTTP 데이터 스트림(data stream)을 출력한다. 상기 클라이언트측 인터셉트 모듈에 의한 HTTP 데이터 스트림의 인터셉트는, 클라이언트측 인터셉트 모듈(30)이, 예컨대 127.0.0.1과 같은 127 네트워크 번호를 갖는 IP 어드레스에 존재하는 TCP/IP 루프백(loop-back) 기능(feature)을 사용함으로써 달성될 수 있다. 그 다음에, 상기 클라이언트측 인터셉트 모듈(30)은 상기 HTTP 데이터 스트림을 클라이언트/서버 고유 프로토콜(client/server specific protocol)로 변환하고, 상기 클라이언트/서버 고유 데이터 스트림을 외부 통신 링크(35)로 전달한다. 상기 서버측 인터셉트 모듈(40)은 상기 클라이언트/서버 고유 데이터 스트림을 수신하여, 상기 웹 브라우저로부터 시발된 통신에 해당하는 원래의 HTTP 데이터를 복원한다. 그 다음에, 이 복원된 HTTP 데이터 스트림은 상기 웹 서버(20)로 전송된다. 상기 웹 서버(20)는 인터넷 웹 서버의 일반적인 방식으로 상기 HTTP 데이터 스트림에 응답한다. 본 발명의 기술분야의 통상의 지식을 가진 자라면, 상기 웹 서버(20)는 다수의 브라우저가 인터넷에 접속할 수 있게 하는 프록시(proxy)일 수도 있다.
예를 들어, 특정한 URL 홈 페이지(home page)에 대한 브라우저의 요구에 응답하여 상기 웹 브라우저로 전달하도록 상기 웹 서버(20)에 정보가 수신될 때, 상기 웹 서버(20)는 상기 웹 브라우저(10)로 송신될 통신에 해당하는 HTTP 데이터 스트림을 출력한다. 이 웹 서버로부터 시발된 통신은 상기 서버측 인터셉트 모듈(40)에 의하여 인터셉트되고, 클라이언트/서버 고유 데이터 스트림으로 변환된다. 그 다음에, 상기 웹 서버로부터 시발된 통신에 해당하는 상기 클라이언트/서버 고유 데이터 스트림은 상기 외부 통신 링크를 통해 상기 제 2 컴퓨터로부터 상기 제 1 컴퓨터로 송신된다. 상기 클라이언트/서버 고유 데이터 스트림은 상기 클라이언트측 인터셉트 모듈(30)에 의하여 수신되고, 상기 웹 서버로부터 시발된 통신에 해당하는 원래의 HTTP 데이터 스트림은 재구축되어 상기 웹 브라우저(10)로 제공된다.
본 발명의 한 실시예에 의하면, 상기 외부 통신 링크(35)는 무선 통신 링크이다. 이 경우에는, 사용자가 수용할 만한 시스템 성능을 획득하기 위하여, 통신 주파수 및 상기 통신 링크(35)를 통하여 전송되어야 하는 정보의 양 모두의 면에 있어서, 상기 외부 통신 링크(35)를 통한 통신의 양을 감소시켜야 한다. 따라서, 본 발명은 상기 외부 통신 링크(35)를 통하여 요구되는 통신의 양을 최소화하기 위하여, 캐싱(caching) 기술, 차분(differencing) 기술 및 프로토콜 감축(protocol reduction) 기술 등을 사용한다. 이러한 기술들은, HTTP의 무상태 프로토콜(stateless protocol) 또는 추계적 프로토콜(stochastic protocol)을, 통신의 양과 주파수를 감소시키기 위하여 클라이언트와 서버에 고유한 정보를 사용하는 클라이언트/서버 고유 프로토콜로 변환시킴으로써 달성될 수 있다.
동작중에 상기 클라이언트측 인터셉트(30)와 서버측 인터셉트(40)는 웹 브라우저와 웹 (프록시) 서버 모두에 투명하며, 따라서 임의의 웹 서버에 채용될 수 있다. 상기 SSI(40) 및 CSI(30) 모두는 그래픽 객체(graphic object)와 HTML 객체를 캐시에 저장한다. 만약 브라우저 요구의 URL이 상기 CSI의 캐시의 객체를 규정한다면, 그것은 브라우저 응답으로서 즉시 회신될 것이다. 상기 캐싱 기능(caching function)은 클라이언트 규정 시간 간격(client-specified time interval)내에서의 캐시의 보전성(cache integrity)을 보장한다. 상기 SSI 캐시에는 요구된 웹 서버로부터의 응답이 밀집되어 있다. CSI로부터 수신된 요구 URL이 상기 SSI 캐시에 저장되어 있다면, 그것은 상기 요구에 대한 응답으로서 회신된다.
본 발명에 의하면, 본 발명의 출원인의 미국 특허출원 제 08/601,804 호인 CLIENT/SERVER COMMUNICATION SYSTEM에 개시된 바와 같은 가상 소켓 시스템(virtual socket system)을 사용하는 것이 바람직하다. 또한, 본 발명에 의하면, 본 발명의 출원인의 미국 특허출원 제 08/601,753 호인 TIME COHERENT CACHING SYSTEM 및 제 08/601,903 호인 DIFFERENCING COMMUNICATION SYSTEM에 개시된 데이터 감축기술을 사용하는 것이 바람직하다. 상기 세 건의 미국 특허출원은 이들을 참조로서 본출원에서 인용한다.
본 발명은 하나의 웹 브라우저 애플리케이션과 하나의 웹 서버 애플리케이션의 관점에서 기술되지만, 본 발명의 기술 분야의 통상의 지식을 가진 자라면, 본 발명의 장점과 이점은 하나의 웹 서버에 연관된 다수의 웹 브라우저에 관하여도 마찬가지로 달성될 수 있음을 이해할 수 있을 것이다. 그리하여, 본 발명의 방법, 장치 및 프로그램 제품에 의하면, 각각 클라이언트측 인터셉트 모듈과 통신하는 다수의 브라우저에 관하여, 상기 클라이언트측 인터셉트 모듈은 다시 상기 웹 서버 또는 웹 프록시의 서버측 인터셉트 모듈과 통신한다.
나아가, 본 발명은 클라이언트측 인터셉트 모듈과 서버측 인터셉트 모듈 모두의 관점에서 기술되지만, 본 발명의 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 의하여는 단지 클라이언트측 인터셉트만이 요구된다는 것을 이해할 수 있을 것이다. 그리하여, 본 발명은 클라이언트측 인터셉트 모듈과 서버측 인터셉트 모듈 모두를 가진 시스템에 한정되는 것으로 해석되어서는 안된다.
본 발명은, 이전의 요구가 완료되지 않았을지라도 사용자가 계속하여 요구를 발할 수 있도록 하기 위한 비동기적 요구 및 응답 처리(asynchronous request and response processing)를 제공한다. 요구는 백그라운드 처리(background processing)를 위하여 내부적으로 기록된다. 요구가 완료되면, 그 결과를 저장하고, 비동기적으로 스테이트(status)를 갱신한다. 사용자는 (선택에 따라) 요구가 완료된 때 통지를 받으며, 언제라도 하나 또는 그 이상의 요구의 스테이트를 검토하기 위하여 스테이트 페이지(status page)로 전환할 수 있다. 각 요구에 대한 스테이트 엔트리(status entry)는 상기 요구의 상태(state)(미개시, 처리중, 완료됨)를 전하며, 상기 요구가 완료된 경우에는 그 응답 페이지로의 링크를 포함한다.
본 발명은 또한, 상기 원격/이동 데이터 처리 시스템이 서버 애플리케이션으로의 억세스를 가진 컴퓨터와 링크되지 않은 때의 단선 동작(disconnected operation)을 제공한다. 사용자는 동기 모드(synchronous mode) 또는 비동기 모드(asynchronous mode)의 어느 하나로 동작할 수 있다. 어느 경우에든, 접속이 손실된 것을 감지한 때에나 또는 통신이 불가능한 경우(예컨대, 신호 범위에서 벗어난 경우)에는, 요구를 큐에 저장하고 이후의 처리를 기다릴 수 있다. 통신이 다시 확립된 때에는, 큐에 저장된 요구는 백그라운드에서 자동적으로 처리된다. 이 성능은 사용자로 하여금 오프라인 상태에서도 계속하여 생산적일 수 있게 한다. 나아가, 많은 경우에, 하나의 트랜잭션(transaction)을 위하여 필요한 모든 페이지들은 로컬 캐시(local cache)에 저장될 수 있으며, 통신을 요구하지는 않는다. 이러한 동작들을 도 3 및 도 4 내지 도 6의 흐름도를 참조하여 이하에서 설명하기로 한다.
도 3은 본 발명의 한 실시예에 의한 원격/이동 데이터 처리 시스템을 도시한 블록도이다. 도시된 바와 같이, 원격/이동 데이터 처리 시스템(5)은 그 시스템에서 실행되는 웹 브라우저(10)와 같은 애플리케이션을 포함한다. 상기 브라우저(10)로부터의 요구는 HTTP 요구 인터셉터(31)에 의하여 인터셉트되어 요구 큐(32)에 위치한다. 상기 요구 큐(32)의 요구는, 상기 요구에서 규정된 서버로의 억세스를 갖는 제 2 컴퓨터로의 접속이 확립될 때 상기 요구를 수행하는 HTTP 요구 큐 프로세서(HTTP request queue processor)(33)에 의하여 처리된다. 이러한 요구들이 처리될 때, 상기 요구들을 수행하도록 각 요구에 대하여 서비스 쓰레드(service thread)(34)를 초기화한다. 상기 요구에 대한 응답을 상기 캐시(35)에 위치시키고, 상기 요구를 작성했던 요구 큐로부터의 요구와 연관시킨다. 도 3에서, 점선으로 이러한 연관을 나타내었다. 도 3에서, 상기 요구 큐로부터 상기 캐시로의 실선은 상기 요구 엔트리와 상기 요구를 생성하는데 사용된 양식(form) 사이의 연관을 나타낸다. 상기와 같은 연관에 의하여, 사용자는 상기 요구가 작성된 이후에라도 상기 요구를 편집할 수 있게 된다. 선택 사양으로는, 상기 요구와 응답 모두를 상기 큐의 엔트리와 연관시켜 상기 요구 및 응답 모두를 사용자에게 제공할 수 있다.
상기 요구 큐(32)는, 상기 브라우저로부터 상기 HTTP 요구 인터셉터(31)에 의하여 스테이트 정보 및 제어 정보와 함께 수신된 요구의 목록이다.
각 요구 요소(request element)에는 상기 브라우저로부터 수신된 모든 정보들(HTTP 헤더(header) 및 모든 본문(body))이 포함된다. 이렇게 함으로써, 상기 요구를 이후에 네트워크로 재연할 수 있게 된다. 또한, 각 요구 요소는 상기 요구와 연관된 상태 정보(state information)를 보유한다. 여기에는 상기 요구를 처리하며 만들어진 진도 요약(summary of progress)과 수행되어야 할 잔류 작업 목록이 포함된다.
특별한 처리 명령(processing instruction)들도 또한 상기 요구 큐의 요구와 연관될 수 있다. 예를 들어, 무선 환경에서 어떤 페이지에 삽입된 그래픽을 다운로드하는 것은 일반적으로 지나치게 비싸다. 만약 이 요구에 대하여 그래픽이 유예되었다면, 이 처리 제어 정보(processing control information)가 상기 요구 요소에 포함될 것이다. 상기 요구 큐는 클라이언트 세션(client session)에 걸쳐 지속된다.
내부적으로는, 요구는 일련의 속성(attribute)들을 포함한다. 각 속성은 명칭-값으로 구성된 쌍이다. 요구가 생성되었을 때 브라우저의 요구를 포함하는 것은 미리 주어진 속성(given attribute)이다. 처리가 진행됨에 따라, 진도, 브라우저로부터 회신되는 임의의 상태 정보 등을 기술하는 속성들이 추가된다. 진도 지시(progress indication)와 같은 어떤 속성들은 요구당 하나가 된다. 속성들은 또한 큐(queue)당 하나가 될 수도 있으며, 이 경우에 속성들은 상기 큐에 추가된 모든 요소에 대한 처리를 제어한다. 큐당 하나인 속성들은, 그 출처나 상기 요구의 특성에 기초하여 여러 가지 방법으로 요구를 처리하는 다수의 큐를 지원하기 위하여 사용된다. 그리하여, 본 발명에 의하면, 하나 이상의 요구 큐가 생성될 수 있고, 요구들이 상기 클라이언트측 인터셉트에 의하여 수신되거나 사용자의 입력에 의하여 수동적으로 정렬될 때, 상기 요구들은 자동으로 정렬되어 적절한 큐로 저장된다.
본 발명에 의하면, 동기적 온라인(on-line) 처리를 위하여 설계된 브라우저와 같은 애플리케이션을 사용한 오프라인(off-line) 처리가 가능하므로, 단선된 비동기적 동작을 위하여는 새로운 사용자 인터페이스가 요구된다. 따라서, 본 발명에 의하면, 만약 사용자의 요구를 캐시로부터 만족시킬 수 있다면, 응답은 즉시 제공되며, 상기 표준 브라우저 인터페이스는 변경되지 않는다. 그러나, 캐시 미스(cache miss)인 경우에는, 상기 브라우저의 의미는 본 발명의 오프라인 처리와 연관된 인터페이스 및 메카니즘으로 확장될 수 있다.
상기 브라우저는 본 발명의 관점에서는 변경되지 않는 코드의 일부이므로, 상기 원격/이동 데이터 처리 시스템이 제 2 컴퓨터와 비동기적으로 동작하거나 그와 단선되어 있고, 캐시로부터 사용자의 요구를 만족시킬 수 없을 때에는 언제나 대용 페이지(stand-in page)가 회신된다. 이 페이지에는 어떤 일이 발생했는지에 관한 설명 - 당신의 요구는 이후의 처리를 위하여 큐에 저장되었습니다. - 이 포함되며, 요구된 경우에는 모든 현안인 요구의 현재 스테이트가 디스플레이된다. 상기 브라우저에 관한 한, 이 대용 페이지는 그 요구에 대한 응답이라는 점을 주의하여야 한다. 다시 말하면, 상기 브라우저는 상기 요구/응답 메카니즘을 간직하지만, 본 발명을 사용하는 상기 인터셉트 모듈이 상기 요구에 응답하는 상세를 처리한다. 나아가, 상기 요구에 대한 응답으로서 정보를 담은 페이지가 상기 브라우저로 회신된다는 점에서, 단선된 비동기적 요구에도 동일한 메카니즘이 사용될 수 있다.
또는, 중간의 통지(intermediate acknowledgement)를 제시하는 대신에 현재 페이지를 회신하는 선택사항(option)을 사용할 수도 있다. 이 선택사항은 브라우저에게 코드 204를 회신함으로써 구현할 수 있다. 사용자의 관점에서는, 링크는 클릭되었지만 브라우저는 같은 페이지에 남아있다. 그러나, 본 발명에 의한 인터셉트 모듈이 상기 요구를 백그라운드에서 큐에 저장한다.
이제, 본 발명의 한 실시예를 기술하는 흐름도인 도 4 내지 도 6을 참조하여 본 발명을 설명한다. 상기 흐름도의 각 블록 및 블록들의 조합은 컴퓨터 프로그램 명령에 의하여 구현될 수 있음을 이해하여야 한다. 이러한 프로그램 명령들은 머신(machine)을 생성하기 위한 프로세서(processor)로 제공되어, 이 프로세서에서 실행되는 명령들이 상기 흐름도의 블록에 규정된 기능들을 구현하기 위한 수단을 생성한다. 컴퓨터로 구현된 프로세스를 산출하기 위하여 일련의 동작 단계들이 상기 프로세서에 의하여 수행되도록 상기 프로세서에서 상기 컴퓨터 프로그램 명령들을 수행하고, 그리하여 상기 프로세서에서 실행되는 명령들이 상기 흐름도의 블록에서 규정된 기능들을 구현하는 단계들을 제공한다.
따라서, 흐름도의 블록들은, 규정된 기능을 수행하기 위한 수단의 조합, 규정된 기능을 수행하는 단계의 조합 및 규정된 기능을 수행하기 위한 프로그램 명령 수단 등을 지원한다. 상기 흐름도의 각 블록과 블록의 조합은 규정된 기능 또는 단계를 수행하는 전용 하드웨어 기반 시스템 또는 전용 하드웨어와 컴퓨터 명령의 조합에 의하여 구현될 수 있다.
도 4는 본 발명에 의한 클라이언트측 인터셉트 동작을 도시한 흐름도이다. 도시된 바와 같이, 상기 클라이언트측 인터셉트(30)는 브라우저(10)로부터의 요구를 인터셉트한다(블록 50). 그 다음에, 상기 클라이언트측 인터셉트는, 상기 요구에 대한 응답이 상기 캐시에 존재하는지에 관하여 판단하고(블록 52), 만약 그렇다면, 캐시에 저장된 응답을 상기 웹 브라우저로 회신한다(블록 54).
만약 상기 응답이 캐시에 존재하지 않는다면, 상기 클라이언트측 인터셉트는 상기 데이터 처리 시스템이 상기 서버로의 억세스를 위한 상기 제 2 컴퓨터에 접속되었는지에 관하여 판단한다(블록 56). 만약 상기 데이터 처리 시스템이 접속되었고, 요구가 연기되지 않았다면(블록 58), 상기 요구는 상기 제 2 컴퓨터로 송신된다(블록 60). 그러나, 만약 상기 데이터 처리 시스템이 접속되지 않았거나, 요구 처리가 연기되었다면, 상기 요구는 요구 큐에 저장되고, 상기 요구에 대한 응답으로서 잠정 응답이 상기 브라우저에 제공된다(블록 62).
큐에 저장된 요구의 처리는, 상기 클라이언트측 인터셉트의 어떤 다른 행위와도 무관하게 실행되는 쓰레드(thread)에 의하여 처리된다. 상기 큐의 요구들은 일반적으로 선입선출(first-in, first-out) 방식으로 처리된다. 그러나, 선택된 요구들을 보류된 것으로 표시할 수 있으나, 모든 새로운 요구들은 보류되어야 한다(블록 58 참조). 이렇게 함으로써, 사용자는, 접속할 수 있을지라도 이러한 요구들에 관한 처리를 이후로 연기하여야 한다는 것을 지시할 수 있게 된다. 예를 들어, 어떤 요구들은 무선 링크에서 처리하기에는 지나치게 비쌀 수 있으며, 따라서 사용자는 그들에 대한 처리를 LAN 또는 전화 접속이 가능할 때까지 연기하고 싶어할 수 있다. 보류 속성(hold attribute)은 또한, 사용자가 처음 시작할 때 잔류하고 있는 큐에 저장된 임의의 미해결인 요구에 적용될 수 있다. 이렇게 함으로써, 저렴한 링크로부터 잠재적으로 훨씬 더 비싼 무선 링크로 전환함에 따른 놀라움을 피할 수 있다.
도 4에 도시된 바와 같이, 큐에 저장된 요구를 처리하는 첫 번째 단계는, 그 요구의 서버로의 억세스를 가진 제 2 컴퓨터로의 접속을 획득하는 것이다(블록 64). 요구를 처음 수신할 때에는 접속을 획득하기 위한 시도를 하고, 만약 접속이 확립되지 않았다면(블록 66), 큐 프로세서(queue processor)나 다른 활동에 의존하여 접속이 확립될 때까지 계속하여 시도한다(블록 70 및 블록 64). 접속 시도간의 지연을 제어하기 위하여 지수적 백오프 프로시져(exponential backoff procedure)를 사용한다(블록 68). 그리하여, 시도 횟수가 증가함에 따라 접속하기 위한 시도간의 시간도 증가한다. 통신 고장(communication failure)이 장기적일 경우 네트워크에 가해질 부담 없이 그것이 일시적일 때에, 이러한 백오프 프로시져는 응답성을 제공한다.
일단 접속이 확립되면, 상기 브라우저로부터 원래 저장되어 상기 요구 큐에 저장된 정보는 상기 요구를 재구성하는 데에 사용되며, 상기 요구는 상기 제 2 컴퓨터로 송신된다(블록 72). 이 시점에서, 상기 요구는 마치 그것이 브라우저로부터 직접 온 것처럼 서버에 나타난다. 만약 상기 요구가 상기 무선 링크의 고장으로 인하여 실패하게 되면(블록 74), 이후에 다음 시도를 하게 된다. 재시도된 요구는 일시적인 통신 고장을 투명하게 마스크한다. 다른 타입의 고장도 또한 이후에 사용자에게 회신되기 위하여 기록될 수 있다.
도 5는 이전에 큐에 저장된 요구에 대한 응답이 수신되었을 때, 상기 클라이언트측 인터셉트 모듈의 동작을 도시한 도면이다. 도 5에 도시된 바와 같이, 상기 서버로부터 응답을 수신한다(블록 80). 그러나, 그래픽, 애플릿(applet) 및 기타의 삽입물(embed) 등을 사용하는 것은 이제 웹 페이지에서는 거의 보편적인 것이다. 만약 사용자가 이 정보를 보고자하였다면, 회신된 페이지는 삽입물에 대하여 분석된다(블록 82). 그 다음에, 각 삽입물을 리트리브하고(블록 84), 상기 원래의 응답과 함께 캐시에 저장한다(블록 86). 상기 응답은 상기 요구와 연관되며, 상기 응답과 함께 회신된 모든 스테이트 정보는 상기 요구와 연관된다(블록 88). 이 시점에서, 상기 요구가 완료되고, 사용자는 그것을 활용할 수 있다는 통지를 받을 수 있게 된다(블록 90).
본 발명에 의하면, 투명한 HTTP 프록시가 제공되기 때문에, 그것은 임의의 브라우저와 작업할 수 있다. 백그라운드 처리를 위하여 큐에 요구를 저저장하는 것은 브라우저가 기대하는 모델과 정합되지 않으며, 따라서 상기 브라우저와 사용자가 계속할 수 있도록 HTML 또는 HTTP 코드를 통한 잠정 응답이 상기 브라우저로 회신된다(도 4의 블록 62를 참조). 이와 유사하게, 브라우저의 독립성을 유지하기 위한 스테이트를 기록하기 위하여, HTML 페이지와 삽입된 HTML 정보를 사용할 수 있다.
미해결인 요구의 스테이트는 다음과 같은 임의의 방법으로 기록될 수 있다. 즉, 선택사양인 완료 팝업(completion popup), 회신된 웹 페이지의 상단에 삽입된 선택사양인 스테이트 막대기(status bar), 또는 상기 큐의 상태를 요약한 HTML 페이지 등이 그것이다.
상기 팝업은, 사용자들이 백그라운드 페이지에 살펴볼 새로이 완료된 페이지가 있다는 것을 알게 해주며, 상기 페이지의 URL을 나열한다. 이러한 팝업들중의 하나는 새로운 정보가 활용가능하게 될 때 작성되며, 그 다음에는 사용자가 상기 페이지를 방문하여 그 정보를 살펴볼 때까지 추가적인 메시지들은 유예된다. 이렇게 함으로써, 사용자는 보다 빠른 링크에서 당황하지 않고 비동기적인 완료 통지를 받을 수 있게 된다.
또한, 사용자는 회신된 각 페이지에 상기 클라이언트측 인터셉트의 상태를 기술하는 스테이트 막대기를 삽입할 것을 선택할 수 있다. 이 스테이트 막대기에는, 완료된 요구의 개수, 미해결된 요구의 개수 및 보유중인 요구의 개수 등이 포함된다. 또한, 새로운 결과를 활용할 수 있다는 것을 알리는 상기 팝업의 텍스트 버전(text version)과, 다양하게 작성된 스테이트 페이지로의 링크도 포함된다.
이러한 링크들중의 하나는 상기 요구의 상태를 요약하는 페이지로 사용자를 안내할 수 있다. 상기 페이지는, 요구당 한 줄로 상기 큐를 디스플레이한다. 각 요구에는, 교통 신호등 모델과 같은 시각적 지시를 사용하여, 상기 요구를 처리하며 만들어진 진척도의 그래픽 표현이 포함된다. 즉,
·빨강(Red) : 요구가 아직 송신되지 않았음.
·노랑(Yellow) : 기본 페이지가 수신되었고 그 삽입물을 처리중임.
·녹색(Green) : 요구가 완료되었음.
그래픽들은 또한 그 색상과는 별도로 특유의 외양을 갖는 바, 빨강은 속이 빈 원이고, 노랑은 반달형이며 녹색은 속이 찬 원 등이다. 오류가 발생한 경우(예컨대, 요구는 송신되었으나 기본 페이지를 리트리브할 수 없는 경우)에는, 고장을 지시하기 위하여 X 표시를 상기 교통 신호등 심볼에 겹쳐 배치한다.
스테이트 그래픽과 함께, 요구를 삭제하거나 보류하기 위한 선택사양도 디스플레이될 수 있다. 양식(form)의 경우에는, 사용자는 상기 요구를 다시 보거나 재편집할 수 있다. 만약 상기 요구가 완료되었다면, 캐시에 저장된 결과로의 링크도 이 페이지에 포함될 수 있다.
상기 백그라운드 큐와 다른 내부적으로 작성된 페이지로의 URL 기반 억세스를 제공하기 위하여, 상기 클라이언트측 인터셉트의 도메인 명(domain name)(예컨대, artour.web.express)이 다른 적절한 선택사양과 결합되어 사용될 수 있다. 예를 들어, 상기 백그라운드 큐는 http://artour.web.express/HTEP/라는 URL을 통해 억세스될 수 있다. 표준 브라우저는 생소한 프로토콜을 거부하기 때문에, 상기 요구에 대한 독점적인 프로토콜 명을 정의하기 보다는 HTTP와 예약된 도메인 명을 사용한 것이다.
또한, 요구 처리의 진척도를 사용자에게 보고할 수 있다. 요구들은 처리됨에 따라, 제출되면서 시작되어 처리 개시, 최초 페이지 리트리브, 최종적으로 완료되는 일련의 상태를 거쳐 이동한다. 요구가 하나의 상태로 진입함에 따라, 그 이행을 기술하는 이벤트(event)가 내부 이벤트 관리자(internal event manager)로 송신된다. 상기 내부 이벤트 관리자는 요구의 스테이트를 수신하고, 다른 구성장치나 애플리케이션으로 스테이트 정보를 전달한다. 다른 구성장치는, 이벤트 상태 및 기타의 기준에 의하여 여과된 이벤트를 수신하기 위하여 상기 이벤트 관리자와 함께 등록된다. 이벤트의 처리는 상기 클라이언트측 인터셉트와의 동적 인터페이스를 작성하는 데에 사용될 수 있다. 상기 팝업 통지는 이러한 이벤트를 사용하는 한 예이다.
응답을 수신한 다음, 이후에 사용자가 오프라인으로 볼 수 있도록 상기 응답을 저장할 필요가 있다. 그러나, 브라우저가 요구를 발하고 응답을 수신할 때, 전형적으로 두 가지 방식중의 하나로 처리한다. 만약 상기 응답이 상대적으로 정적인 것으로 예상된다면, 그것은 브라우저에 의하여 캐시에 저장되어 그 페이지에 대한 이후의 요구를 신속히 처리할 수 있다. 그러나, 만약 상기 페이지가 양식 요구에 대한 응답이거나, 또는 달리 작성된 것(소위, cgi-bin 응답)이라면, 전형적으로 하나의 cgi-bin 응답과 다른 cgi-bin 응답이 다르기 때문에, 상기 브라우저는 단지 상기 응답을 디스플레이할 뿐이며 그것을 캐시에 저장하지 않는다. 또한, 출처 서버(source server)가 캐시 없음(no-cache)이라고 표시한 객체인 경우에도, 이 지시문을 따르는 브라우저와 프록시는 이러한 아이템(item)을 저장하지 않는다. 그러나, 큐에 저장된 요구의 처리의 일부로서 리트리브된 것인 경우에는, 이후에 보기 위하여 반드시 저장되어야 한다.
이러한 일반적으로 일시적인 객체는 캐시 정보의 새로운 카테고리인 사용자 데이터로서 저장된다(블록 86). 이것은 사용자의 요구에 응답하여 리트리브된 데이터이며, 그 요구와의 관계에서만 의미를 갖는다. 정규 웹 데이터와는 달리, 사용자 데이터 객체는 큐 스테이트 페이지의 응답으로서만 억세스할 수 있다. 그것들은 일시적이거나 요구감지적(request-sensitive)인 응답이기 때문에 다른 요구를 처리하는 데에는 사용되지 않는다. 사용자 데이터는 캐시를 관리하기 위하여 사용되는 일반적인 결합 및 노화 알고리즘(coherency and aging algorithm)을 따르지 않는다. 그것들은 사용자가 삭제할 때까지 유효하게 존속된다.
웹 페이지 설계자들은 종종 단순한 상호작용만을 요하는 데이터 엔트리를 위하여 HTML 양식을 채용한다. HTML 양식 태그(tag)는 웹과의 상호작용을 위한 전자 양식을 편리하게 구축할 수 있게 한다. HTML 양식 태그에 의하면, 웹 사용자는 목록으로부터 선택할 수도 있으며, 온/오프 상자(on/off box)에 체크할 수도 있고, 라디오 버튼(radio button)으로부터 선택할 수도 있고, 텍스트 필드(text field) 또는 커다란 다열 텍스트 영역에 텍스트를 입력할 수도 있고, 실행 버튼(action button)을 누를 수도 있다. 사용자가 실행 버튼을 누르면, 입력된 데이터는 명칭/값 쌍을 가진 동작에 의하여 지정된 웹 서버로 송신된다. 여기서, 상기 명칭은 입력 필드를 나타내며, 각 값은 상기 필드의 사용자 입력을 나타낸다. 또한, 숨겨진 필드(hidden field)도 있을 수 있는데, 여기에는 웹 서버가 상기 양식과 함께 송신하는 미리 조절된 값이 수반된다. 이러한 숨겨진 값은 가시 필드의 값과 함께 서버로 다시 송신된다.
어떠한 HTML 페이지와 마찬가지로, HTML 양식도 이후의 사용을 위하여 캐시에 저장될 수 있다. 본 발명에 의하면, 캐시에 저장된 HTML 양식은 이후에 제출하거나 다른 사용자 입력과 함께 다시 제출하기 위하여 편집될 수 있다. 예를 들면, 검색 입력 양식은 다른 검색 요구를 송신하기 위하여 여러번에 걸쳐 편집될 수 있다. 이와 유사하게, 환자 입원 양식과 같은 인트라넷 데이터 엔트리 양식(intranet data entry form)은 데이터 엔트리의 오류를 정정하거나 다른 환자에 대한 새로운 데이터를 다시 제출하기 위하여 편집될 수 있다. 대부분의 양식들은 간단한 단일 양식 상호작용 모델을 갖거나 또는 자족적인(self-sufficient) 숨겨진 필드를 포함하여, 상기 웹 애플리케이션이 고립된 상태에서의 제출을 수용할 수 있기 때문에, 이후의 독자적인 제출을 위하여 의미있게 캐시에 저장될 수 있다.
이동 환경에서는, 단선된 양식 제출에 의하여 서버에 도달할 수 없을지라도 사용자의 생산성을 향상시킬 수 있다. 이렇게 함으로써, 어떠한 네트워크에도 접속하지 않은 채로 다수의 데이터 엔트리 페이지를 채울 수 있다. 또한, 본 발명의 재편집 기능(re-editing function)에 의하여, 사용자는 몇 가지 양식을 기안하여, 그것들이 최종적으로 서버에 송신되기 전에 검토, 승인하거나 편집할 기회를 가질 수 있게 된다.
상기한 바와 같이, 양식은 임의의 HTML 페이지와 같이 다루어질 수 있고, 채워진 양식에 해당하는 요구 큐의 엔트리를 생성하기 위하여 도 4에 도시된 동작이 수행될 수 있다. 보통의 HTML 페이지와 마찬가지로, 사용자는 URL을 사용하여 캐시에 저장된 HTML 양식을 획득할 수 있다. 사용자는 양식을 채우고, 실행 버튼중의 하나를 사용하여 그것을 제출한다. 양식을 제출할 때, 시발된 양식 URL과 함께 명칭/값 쌍이 저장되고 큐로 옮겨진다. 만약 사용자가 동일한 URL 양식을 다시 요구하여 새로운 결과를 제출한다면, 그 새로운 제출은 이전의 제출과는 별개로 유지된다. 접속이 활용가능하게 되었을 때 자동으로 제출하기 위하여, 모든 제출은 큐에서 개별적인 엔트리로서 계수된다. 이러한 엔트리는 사용자에 의하여 삭제될 때까지 저장된다.
도 6은 본 발명에 의한 양식의 재편집 프로세스를 도시한 흐름도이다. 이 재편집에서는 도 4에 도시된 큐의 양식을 이용한다. 도시된 바와 같이, 큐에서 활용가능한 양식의 목록이 브라우저에 제공되고(블록 100), 큐 엔트리를 선택하는 사용자 입력을 획득한다(블록 102). 하이퍼링크를 사용하여 억세스될 수 있는 큐의 엔트리를 디스플레이하기 위하여 사용자에게 HTML 페이지를 제시할 수 있다.
사용자의 입력에 기초하여, 상기 큐에 저장된 요구를 작성하는 데에 사용된 양식의 URL에 해당하는 양식을 로컬 캐시로부터 획득한다(블록 104). 기초 양식은 양식의 시발점을 지시하는 이전에 게재된 데이터에 기초하여 리트리브될 수 있다. 빈 양식(blank form)이 먼저 서버로부터 인출될 때, 상기 클라이언트측 인터셉트는 상기 페이지를 상기 브라우저로 회신하기 전에 숨겨진 값을 상기 HTML에 포함시킨다. 상기 숨겨진 정보는 시발된 URL과 페이지내의 양식 번호 모두를 포함한다. 상기 양식을 재편집하기 위하여는, 요구와 그 요구를 작성한 양식을 연관시키기 위하여 상기 요구와 함께 요구 큐에 저장된 상기 양식의 URL을 포함하는 숨겨진 값을 사용하여 상기 빈 양식을 리트리브한다.
상기 요구의 명칭/값 쌍이 정합되는가에 관하여 상기 양식과 상기 큐에 저장된 요구를 스캔한다(블록 106). 정합되는 것이 발견되면, 디폴트인 선택 또는 입력 값은 사용자의 제출을 반영하기 위하여 변경된다(블록 108). 다수의 HTML 양식을 포함하는 웹 페이지는 서로 다른 부양식(subform)에 동일한 필드명을 사용할 수 있으므로, 특별히 주의하여야 한다. 따라서, 본 발명에 의하면, 원래의 요구를 재생성하기 위하여 올바른 양식이 재호출되도록 하기 위하여, 부양식들에는 고유한 식별자를 할당하여 추적한다. 그리하여, 원래의 입력 양식과 데이터를 복원한다. 만약 요구에 대한 응답을 이미 수신하였다면(블록 110), 그 다음에는, 선택사양으로서, 제출 버튼은 상기 응답으로의 링크로 대체되어 사용자가 그 제출의 결과를 볼 수 있게 한다(블록 112). 그렇지 않으면, 상기 복원된 요구를 사용자가 편집할 수 있도록 상기 브라우저로 제공한다(블록 114). 만약 다시 제출된 기존의 큐 엔트리가 새로운 데이터에 의하여 덮여 씌어졌거나 또는, 선택사양으로서, 사용자가 그것을 선택하였다면, 상기 큐의 새로운 엔트리를 제공한다. 이러한 특색에 의하여, 사용자는 단지 사소한 추가 입력만으로 유사한 데이터를 가진 추가적인 요구를 생성하기 위한 템플릿으로서 채워진 양식을 사용할 수 있게 된다.
도면과 상세한 설명에서 본 발명의 전형적인 바람직한 실시예를 개시하며 특정의 용어를 채용하였으나, 그것들은 일반적이고 기술적인 의미로만 사용되었을 뿐이며 한정의 목적을 가진 것은 아니며, 본 발명의 범위는 이하의 특허청구범위에 의하여 결정된다.
본 발명에 의하면, 약한 접속 환경 또는 단선 환경에서 브라우저 통신의 동기적 성질에 의한 영향을 감소시킬 수 있으며, 브라우저/서버 통신의 응답성(responsiveness)이 저하되는 원격 또는 이동 환경에서의 브라우저의 한계를 극복할 수 있다. 또한, 본 발명에 의하면, 기존의 브라우저를 이동 환경에서 사용할 수 있도록 접속 스테이트(connection status)를 브라우저에 투명하게 할 수 있다.

Claims (39)

  1. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 방법에 있어서,
    상기 원격/이동 처리 시스템의 영구적인 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하는 단계;
    클라이언트 애플리케이션(client application)으로부터의 요구에 응답하여 상기 웹 브라우저에 잠정 응답(interim response)을 제공하는 단계; 및
    상기 요구를 상기 서버 애플리케이션으로 전송하기 위하여 상기 제 2 컴퓨터로 제공하기 전에 사용자가 상기 요구를 수정할 수 있도록 하기 위하여, 상기 저장된 요구를 재호출하는 단계
    를 포함하는 통신 방법.
  2. 제 1 항에 있어서,
    상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 접속되었을 때 상기 저장된 요구를 상기 제 2 컴퓨터로 전송하는 단계;
    상기 제 2 컴퓨터를 통하여 상기 서버로부터 상기 요구에 대한 응답을 수신하는 단계;
    상기 원격/이동 처리 시스템에 상기 요구에 대한 응답을 저장하는 단계; 및
    상기 저장된 요구와 상기 저장된 응답을 연관시키는 단계
    를 더 포함하는 통신 방법.
  3. 제 2 항에 있어서,
    상기 저장된 응답을 상기 클라이언트 애플리케이션에 제공하는 단계
    를 더 포함하는 통신 방법.
  4. 제 2 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하는 단계;
    상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들이는 단계; 및
    상기 사용자의 입력에 기초하여 상기 저장된 요구의 목록중에서 선택된 요구에 대하여 연관된 응답을 상기 웹 브라우저에 제공하는 단계
    를 더 포함하는 통신 방법.
  5. 제 2 항에 있어서,
    상기 응답이 상기 원격/이동 데이터 처리 시스템에 의하여 수신되었을 때, 상기 수신된 응답의 활용가능성에 관하여 상기 사용자에게 통지하는 단계; 및
    만약 사용자가 상기 응답을 요구하면 상기 응답을 상기 웹 브라우저에 제공하는 단계
    를 더 포함하는 통신 방법.
  6. 제 1 항에 있어서,
    상기 웹 브라우저로부터의 요구를 저장하는 단계가,
    상기 요구와 연관된 HTML 양식을 저장하는 단계;
    상기 요구에 연관된 사용자의 입력을 저장하는 단계; 및
    상기 저장된 사용자 입력을 상기 저장된 HTML 양식과 연관시키는 단계
    를 포함하는 통신 방법.
  7. 제 6 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하는 단계;
    상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들이는 단계
    를 더 포함하며;
    상기 재호출하는 단계는 상기 사용자 입력에 의하여 선택된 저장된 요구를 재호출하는
    통신 방법.
  8. 제 7 항에 있어서,
    상기 저장된 요구를 재호출하는 단계가,
    상기 요구와 연관된 저장된 양식을 재호출하는 단계;
    상기 요구와 연관된 저장된 사용자 입력을 재호출하는 단계; 및
    상기 사용자 입력과 함께 상기 양식을 재생성하도록 상기 재호출된 양식과 재호출된 사용자 입력을 상기 웹 브라우저에 제공하는 단계
    를 포함하는 통신 방법.
  9. 제 8 항에 있어서,
    상기 재호출된 양식과 재호출된 사용자 입력을 제공하는 단계가,
    상기 재호출된 양식의 네임드 필드(named field)에 대하여 상기 재호출된 양식을 스캐닝(scanning)하는 단계;
    상기 사용자 입력의 명칭/값 쌍(name/value pair)에 대하여 상기 재호출된 사용자 입력을 스캐닝하는 단계; 및
    상기 재호출된 양식의 상기 네임드 필드의 디폴트(default) 선택이나 사용자 입력을, 상기 사용자 입력으로부터의 정합된 명칭/값 쌍의 값으로 대체하는 단계
    를 포함하는 통신 방법.
  10. 제 8 항에 있어서,
    저장되어 재호출된 요구에 대한 응답이 상기 원격/이동 데이터 처리 시스템에 저장되었는지의 여부를 판단하는 단계; 및
    상기 저장된 응답을 재호출하기 위한 하이퍼링크를 사용자에게 제공하기 위하여, 저장된 응답으로의 링크를 상기 재호출된 양식에 부가하는 단계
    를 더 포함하는 통신 방법.
  11. 제 8 항에 있어서,
    상기 사용자의 입력에 의하여 수정된 원래의 요구에 기초하여 교정된 요구를 제공하도록, 상기 웹 브라우저로부터의 원래의 요구를 교정하기 위한 사용자 입력을 받아들이는 단계; 및
    상기 교정된 요구를 상기 요구 큐에 저장하는 단계
    를 더 포함하는 통신 방법.
  12. 제 11 항에 있어서,
    상기 교정된 요구를 저장하는 단계가,
    상기 요구 큐의 요구를 상기 교정된 요구로 대체하는 단계
    를 포함하는 통신 방법.
  13. 제 1 항에 있어서,
    상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터와 링크되었는지의 여부를 판단하는 단계
    를 더 포함하며,
    상기 판단하는 단계에서 상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 링크되지 않은 것으로 판단된 경우에 상기 저장하는 단계 및 상기 제공하는 단계가 수행되는
    통신 방법.
  14. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 시스템에 있어서,
    상기 원격/이동 처리 시스템의 영구적인 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하기 위한 수단;
    상기 클라이언트 애플리케이션(client application)으로부터의 요구에 응답하여 상기 웹 브라우저에 잠정 응답(interim response)을 제공하기 위한 수단; 및
    상기 요구를 상기 서버 애플리케이션으로 전송하기 위하여 상기 제 2 컴퓨터로 제공하기 전에 사용자가 상기 요구를 수정할 수 있도록 하기 위하여, 상기 저장된 요구를 재호출하기 위한 수단
    을 포함하는 통신 시스템.
  15. 제 14 항에 있어서,
    상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 접속되었을 때 상기 저장된 요구를 상기 제 2 컴퓨터로 전송하기 위한 수단;
    상기 제 2 컴퓨터를 통하여 상기 서버로부터 상기 요구에 대한 응답을 수신하기 위한 수단;
    상기 원격/이동 처리 시스템에 상기 요구에 대한 응답을 저장하기 위한 수단; 및
    상기 저장된 요구와 상기 저장된 응답을 연관시키기 위한 수단
    을 더 포함하는 통신 시스템.
  16. 제 15 항에 있어서,
    상기 저장된 응답을 상기 클라이언트 애플리케이션에 제공하기 위한 수단
    을 더 포함하는 통신 시스템.
  17. 제 15 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하기 위한 수단;
    상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들이기 위한 수단; 및
    상기 사용자의 입력에 기초하여 상기 저장된 요구의 목록중에서 선택된 요구에 대하여 연관된 응답을 상기 웹 브라우저에 제공하기 위한 수단
    을 더 포함하는 통신 시스템.
  18. 제 15 항에 있어서,
    상기 응답이 상기 원격/이동 데이터 처리 시스템에 의하여 수신되었을 때, 상기 수신된 응답의 활용가능성에 관하여 상기 사용자에게 통지하기 위한 수단; 및
    만약 사용자가 상기 응답을 요구하면 상기 응답을 상기 웹 브라우저에 제공하기 위한 수단
    을 더 포함하는 통신 시스템.
  19. 제 14 항에 있어서,
    상기 웹 브라우저로부터의 요구를 저장하기 위한 수단이,
    상기 요구와 연관된 HTML 양식을 저장하기 위한 수단;
    상기 요구에 연관된 사용자의 입력을 저장하기 위한 수단; 및
    상기 저장된 사용자 입력을 상기 저장된 HTML 양식과 연관시키기 위한 수단
    을 포함하는 통신 시스템.
  20. 제 19 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하기 위한 수단;
    상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들이기 위한 수단
    을 더 포함하며;
    상기 재호출하기 위한 수단은 상기 사용자 입력에 의하여 선택된 저장된 요구를 재호출하는
    통신 시스템.
  21. 제 20 항에 있어서,
    상기 저장된 요구를 재호출하기 위한 수단이,
    상기 요구와 연관된 저장된 양식을 재호출하기 위한 수단;
    상기 요구와 연관된 저장된 사용자 입력을 재호출하기 위한 수단; 및
    상기 사용자 입력과 함께 상기 양식을 재생성하도록 상기 재호출된 양식과 재호출된 사용자 입력을 상기 웹 브라우저에 제공하기 위한 수단
    을 포함하는 통신 시스템.
  22. 제 21 항에 있어서,
    상기 재호출된 양식과 재호출된 사용자 입력을 제공하기 위한 수단이,
    상기 재호출된 양식의 네임드 필드(named field)에 대하여 상기 재호출된 양식을 스캐닝(scanning)하기 위한 수단;
    상기 사용자 입력의 명칭/값 쌍(name/value pair)에 대하여 상기 재호출된 사용자 입력을 스캐닝하기 위한 수단; 및
    상기 재호출된 양식의 상기 네임드 필드의 디폴트(default) 선택이나 사용자 입력을, 상기 사용자 입력으로부터의 정합된 명칭/값 쌍의 값으로 대체하기 위한 수단
    을 포함하는 통신 시스템.
  23. 제 21 항에 있어서,
    저장되어 재호출된 요구에 대한 응답이 상기 원격/이동 데이터 처리 시스템에 저장되었는지의 여부를 판단하기 위한 수단; 및
    상기 저장된 응답을 재호출하기 위한 하이퍼링크를 사용자에게 제공하기 위하여, 저장된 응답으로의 링크를 상기 재호출된 양식에 부가하기 위한 수단
    을 더 포함하는 통신 시스템.
  24. 제 21 항에 있어서,
    상기 사용자의 입력에 의하여 수정된 원래의 요구에 기초하여 교정된 요구를 제공하도록, 상기 웹 브라우저로부터의 원래의 요구를 교정하기 위한 사용자 입력을 받아들이기 위한 수단; 및
    상기 교정된 요구를 상기 요구 큐에 저장하기 위한 수단
    을 더 포함하는 통신 시스템.
  25. 제 24 항에 있어서,
    상기 교정된 요구를 저장하기 위한 수단이,
    상기 요구 큐의 요구를 상기 교정된 요구로 대체하기 위한 수단
    을 포함하는 통신 시스템.
  26. 제 14 항에 있어서,
    상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터와 링크되었는지의 여부를 판단하기 위한 수단
    을 더 포함하며,
    상기 판단하기 위한 수단에 의하여 상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 링크되지 않은 것으로 판단된 경우에 상기 저장하기 위한 수단 및 상기 제공하기 위한 수단이 상기 요구를 저장하고 제공하는
    통신 시스템.
  27. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 컴퓨터 프로그램 제품에 있어서,
    컴퓨터로 판독 가능한 프로그램 코드 수단이 구현된 컴퓨터로 판독 가능한 저장 매체를 포함하며,
    상기 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    상기 원격/이동 처리 시스템의 영구적인 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 클라이언트 애플리케이션(client application)으로부터의 요구에 응답하여 상기 웹 브라우저에 잠정 응답(interim response)을 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 요구를 상기 서버 애플리케이션으로 전송하기 위하여 상기 제 2 컴퓨터로 제공하기 전에 사용자가 상기 요구를 수정할 수 있도록 하기 위하여, 상기 저장된 요구를 재호출하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  28. 제 27 항에 있어서,
    상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 접속되었을 때 상기 저장된 요구를 상기 제 2 컴퓨터로 전송하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 제 2 컴퓨터를 통하여 상기 서버로부터 상기 요구에 대한 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 원격/이동 처리 시스템에 상기 요구에 대한 응답을 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 저장된 요구와 상기 저장된 응답을 연관시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  29. 제 28 항에 있어서,
    상기 저장된 응답을 상기 클라이언트 애플리케이션에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  30. 제 28 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들이기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 사용자의 입력에 기초하여 상기 저장된 요구의 목록중에서 선택된 요구에 대하여 연관된 응답을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  31. 제 28 항에 있어서,
    상기 응답이 상기 원격/이동 데이터 처리 시스템에 의하여 수신되었을 때, 상기 수신된 응답의 활용가능성에 관하여 상기 사용자에게 통지하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    만약 사용자가 상기 응답을 요구하면 상기 응답을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  32. 제 27 항에 있어서,
    상기 웹 브라우저로부터의 요구를 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단이,
    상기 요구와 연관된 HTML 양식을 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 요구에 연관된 사용자의 입력을 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 저장된 사용자 입력을 상기 저장된 HTML 양식과 연관시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  33. 제 32 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 저장된 요구의 목록중의 하나를 선택하기 위한 사용자의 입력을 받아들이기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하며;
    상기 재호출하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은 상기 사용자 입력에 의하여 선택된 저장된 요구를 재호출하는
    컴퓨터 프로그램 제품.
  34. 제 33 항에 있어서,
    상기 저장된 요구를 재호출하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단이,
    상기 요구와 연관된 저장된 양식을 재호출하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 요구와 연관된 저장된 사용자 입력을 재호출하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 사용자 입력과 함께 상기 양식을 재생성하도록 상기 재호출된 양식과 재호출된 사용자 입력을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  35. 제 34 항에 있어서,
    상기 재호출된 양식과 재호출된 사용자 입력을 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단이,
    상기 재호출된 양식의 네임드 필드(named field)에 대하여 상기 재호출된 양식을 스캐닝(scanning)하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 사용자 입력의 명칭/값 쌍(name/value pair)에 대하여 상기 재호출된 사용자 입력을 스캐닝하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 재호출된 양식의 상기 네임드 필드의 디폴트(default) 선택이나 사용자 입력을, 상기 사용자 입력으로부터의 정합된 명칭/값 쌍의 값으로 대체하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  36. 제 34 항에 있어서,
    저장되어 재호출된 요구에 대한 응답이 상기 원격/이동 데이터 처리 시스템에 저장되었는지의 여부를 판단하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 저장된 응답을 재호출하기 위한 하이퍼링크를 사용자에게 제공하기 위하여, 저장된 응답으로의 링크를 상기 재호출된 양식에 부가하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  37. 제 34 항에 있어서,
    상기 사용자의 입력에 의하여 수정된 원래의 요구에 기초하여 교정된 요구를 제공하도록, 상기 웹 브라우저로부터의 원래의 요구를 교정하기 위한 사용자 입력을 받아들이기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 교정된 요구를 상기 요구 큐에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  38. 제 37 항에 있어서,
    상기 교정된 요구를 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단이,
    상기 요구 큐의 요구를 상기 교정된 요구로 대체하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  39. 제 27 항에 있어서,
    상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터와 링크되었는지의 여부를 판단하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하며,
    상기 판단하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단에 의하여 상기 원격/이동 데이터 처리 시스템이 상기 제 2 컴퓨터에 링크되지 않은 것으로 판단된 경우에, 상기 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단 및 상기 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단이 상기 요구를 저장하고 제공하는
    컴퓨터 프로그램 제품.
KR1019980031579A 1997-08-28 1998-08-03 클라이언트측의 비동기적 양식관리 방법 및 그 시스템 KR100289297B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/920,252 1997-08-28
US08/920,252 US6035324A (en) 1997-08-28 1997-08-28 Client-side asynchronous form management

Publications (2)

Publication Number Publication Date
KR19990023317A true KR19990023317A (ko) 1999-03-25
KR100289297B1 KR100289297B1 (ko) 2001-05-02

Family

ID=25443439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980031579A KR100289297B1 (ko) 1997-08-28 1998-08-03 클라이언트측의 비동기적 양식관리 방법 및 그 시스템

Country Status (6)

Country Link
US (1) US6035324A (ko)
JP (1) JP4233638B2 (ko)
KR (1) KR100289297B1 (ko)
GB (1) GB2330502B (ko)
SG (2) SG71145A1 (ko)
TW (1) TW463112B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100699630B1 (ko) * 2004-01-16 2007-03-23 엘지전자 주식회사 광디스크 장치의 무신호 구간 녹화 관리방법 및 재생방법및 편집방법

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7342581B2 (en) 1996-07-18 2008-03-11 Computer Associates Think, Inc. Method and apparatus for displaying 3-D state indicators
US7680879B2 (en) * 1996-07-18 2010-03-16 Computer Associates Think, Inc. Method and apparatus for maintaining data integrity across distributed computer systems
US5958012A (en) * 1996-07-18 1999-09-28 Computer Associates International, Inc. Network management system using virtual reality techniques to display and simulate navigation to network components
US7003587B1 (en) * 1996-07-18 2006-02-21 Computer Associates Think, Inc. Method and apparatus for maintaining data integrity across distributed computer systems
US20030023721A1 (en) * 1997-07-15 2003-01-30 Computer Associates Think, Inc. Method and apparatus for generating context-descriptive messages
US20030018771A1 (en) * 1997-07-15 2003-01-23 Computer Associates Think, Inc. Method and apparatus for generating and recognizing speech as a user interface element in systems and network management
US7315893B2 (en) * 1997-07-15 2008-01-01 Computer Associates Think, Inc. Method and apparatus for filtering messages based on context
JP3561139B2 (ja) * 1998-01-27 2004-09-02 シャープ株式会社 ファイルオブジェクト中継方法、ファイルオブジェクト中継方法のプログラムを記録したコンピュータで読取り可能な記録媒体、およびゲートウェイ計算機
US6343318B1 (en) * 1998-05-29 2002-01-29 Palm, Inc. Method and apparatus for communicating information over low bandwidth communications networks
US6412015B1 (en) * 1998-06-24 2002-06-25 New Moon Systems, Inc. System and method for virtualizing and controlling input and output of computer programs
US6757705B1 (en) * 1998-08-14 2004-06-29 Microsoft Corporation Method and system for client-side caching
US6397253B1 (en) * 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6279041B1 (en) * 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6658167B1 (en) * 1999-01-31 2003-12-02 Hewlett-Packard Development Company, L.P. On the fly server for modifying data characteristics for client-server network applications
AU5121700A (en) * 1999-02-10 2000-08-29 Tibersoft Corporation Internet system with speed enhancer and off-line enabler
US7437750B1 (en) * 1999-04-12 2008-10-14 Matsushita Electric Industrial Co., Ltd. Data transceiving system and method therefor
MXPA01010798A (es) * 1999-04-26 2003-09-04 Nokia Mobile Phones Ltd Terminal de radio para examinar "internet".
GB2349545A (en) * 1999-04-26 2000-11-01 Nokia Mobile Phones Ltd Terminal for providing an application using a browser
US6665704B1 (en) * 1999-06-18 2003-12-16 Sun Microsystems, Inc. Bounding delays and reducing threading overheads in caching
GB2351573A (en) * 1999-06-26 2001-01-03 Ibm Using webdav with an asynchronous transport
US6330719B1 (en) * 1999-06-30 2001-12-11 Webtv Networks, Inc. Interactive television receiver unit browser that waits to send requests
US6766298B1 (en) * 1999-09-03 2004-07-20 Cisco Technology, Inc. Application server configured for dynamically generating web pages for voice enabled web applications
US20010047394A1 (en) * 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
US6421717B1 (en) 1999-09-10 2002-07-16 Avantgo, Inc. System, method, and computer program product for customizing channels, content, and data for mobile devices
US20020052781A1 (en) * 1999-09-10 2002-05-02 Avantgo, Inc. Interactive advertisement mechanism on a mobile device
US8595308B1 (en) 1999-09-10 2013-11-26 Ianywhere Solutions, Inc. System, method, and computer program product for server side processing in a mobile device environment
US7987420B1 (en) 1999-09-10 2011-07-26 Ianywhere Solutions, Inc. System, method, and computer program product for a scalable, configurable, client/server, cross-platform browser for mobile devices
US7392308B2 (en) * 1999-09-10 2008-06-24 Ianywhere Solutions, Inc. System, method, and computer program product for placement of channels on a mobile device
US20080215672A1 (en) * 1999-09-10 2008-09-04 Sybase 365, Inc. System, Method, and Computer Program Product for a Scalable, Configurable, Client/Server, Cross-Platform Browser for Mobile Devices
US6687745B1 (en) 1999-09-14 2004-02-03 Droplet, Inc System and method for delivering a graphical user interface of remote applications over a thin bandwidth connection
US6877036B1 (en) 1999-09-24 2005-04-05 Akamba Corporation System and method for managing connections between a client and a server
US6308238B1 (en) * 1999-09-24 2001-10-23 Akamba Corporation System and method for managing connections between clients and a server with independent connection and data buffers
US6633919B1 (en) * 1999-11-18 2003-10-14 International Business Machines Corporation Method, system and program product for managing the flow of data between senders and receivers of a computing environment
US6775537B1 (en) * 2000-02-04 2004-08-10 Nokia Corporation Apparatus, and associated method, for facilitating net-searching operations performed by way of a mobile station
US6615276B1 (en) * 2000-02-09 2003-09-02 International Business Machines Corporation Method and apparatus for a centralized facility for administering and performing connectivity and information management tasks for a mobile user
US6707942B1 (en) * 2000-03-01 2004-03-16 Palm Source, Inc. Method and apparatus for using pressure information for improved computer controlled handwriting recognition, data entry and user authentication
US6466937B1 (en) * 2000-03-10 2002-10-15 Aether Systems, Inc. System, method and apparatus for utilizing transaction databases in a client-server environment
US20020004803A1 (en) * 2000-04-07 2002-01-10 Oleg Serebrennikov Method and apparatus for the dynamic modification of relational information in electronic documents such as HTML pages and the like
US6865593B1 (en) * 2000-04-12 2005-03-08 Webcollege, Inc. Dynamic integration of web sites
US8843590B2 (en) * 2000-05-31 2014-09-23 Ebm/Ip, Llc Systems, methods and computer program products for facilitating display of content within application programs executing on electronic devices
JP4950389B2 (ja) * 2000-06-21 2012-06-13 マイクロソフト コーポレーション ネットワークベースのアプリケーション、それを処理するためのアーキテクチャ及びシステム、ならびにそれを実行するための方法
US20020156881A1 (en) * 2000-10-03 2002-10-24 Klopp Lemon Ana H. Von HTTP transaction monitor with replay capacity
US7099939B2 (en) * 2000-10-03 2006-08-29 Sun Microsystems Inc. HTTP transaction monitor with sequence replay capacity
US20020065911A1 (en) * 2000-10-03 2002-05-30 Von Klopp Ana H. HTTP transaction monitor with edit and replay capacity
US7076275B1 (en) * 2000-10-13 2006-07-11 Palmsource, Inc. Method and system for single-step enablement of telephony functionality for a portable computer system
US20020147809A1 (en) * 2000-10-17 2002-10-10 Anders Vinberg Method and apparatus for selectively displaying layered network diagrams
JP3632756B2 (ja) * 2000-11-22 2005-03-23 日本電気株式会社 通信システム、サーバ、その方法及び記録媒体
US20020103974A1 (en) * 2000-11-29 2002-08-01 Giacomini Peter Joseph Method and apparatus for economical cache population
US7203756B2 (en) * 2001-04-27 2007-04-10 International Business Machines Corporation Mechanism to cache references to Java RMI remote objects implementing the unreferenced interface
US7272232B1 (en) * 2001-05-30 2007-09-18 Palmsource, Inc. System and method for prioritizing and balancing simultaneous audio outputs in a handheld device
TW535066B (en) * 2001-09-14 2003-06-01 Inventec Tomorrow Studio Corp Method for sharing data between cable platform and wireless platform and system thereof
US7761535B2 (en) * 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US7962565B2 (en) * 2001-09-29 2011-06-14 Siebel Systems, Inc. Method, apparatus and system for a mobile web client
CA2462165A1 (en) * 2001-10-11 2003-04-17 Visual Sciences, Llc System, method, and computer program product for processing and visualization of information
US7143359B2 (en) * 2002-01-03 2006-11-28 International Business Machines Corporation Emulating advanced graphical user interface elements in a hypermedia content browser
US7275105B2 (en) * 2002-01-16 2007-09-25 Laszlo Systems, Inc. Enabling online and offline operation
EP1330094A1 (en) * 2002-01-21 2003-07-23 Hewlett-Packard Company Process and apparatus for performing data transfer with a network
US20030149720A1 (en) * 2002-02-06 2003-08-07 Leonid Goldstein System and method for accelerating internet access
US8566698B1 (en) * 2002-03-05 2013-10-22 Hyland Software, Inc. Document management system and method
DE60314748T2 (de) * 2002-05-02 2009-10-08 Giesecke & Devrient Gmbh Kommunikationssystem, Mobileinrichtung und Verfahren zur Speicherung von Seiten in einer Mobileinrichtung
US7249313B2 (en) 2002-06-26 2007-07-24 International Business Machines Corporation Creating and utilizing a wizard to capture an application's interdependencies between web pages and data accesses for running the application's downloadable dynamic web pages off-line
US7200645B2 (en) * 2002-06-26 2007-04-03 International Business Machines Corporation Running dynamic web pages off-line with a wizard
US7353453B1 (en) * 2002-06-28 2008-04-01 Microsoft Corporation Method and system for categorizing data objects with designation tools
US7751623B1 (en) 2002-06-28 2010-07-06 Microsoft Corporation Writing guide for a free-form document editor
US7079713B2 (en) * 2002-06-28 2006-07-18 Microsoft Corporation Method and system for displaying and linking ink objects with recognized text and objects
US8245128B1 (en) * 2002-07-17 2012-08-14 Oracle International Corporation Intelligent client agent for a hybrid online/offline application
WO2004017177A2 (en) * 2002-08-19 2004-02-26 Macrosolve, Inc. System and method for data management
US20040039991A1 (en) * 2002-08-22 2004-02-26 International Business Machines Corporation System, method, and computer program product in a data processing system for dynamic variable definition within an input form
US7945846B2 (en) * 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7454423B2 (en) 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US7912899B2 (en) * 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7899879B2 (en) * 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US8165993B2 (en) * 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7941542B2 (en) * 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US8255454B2 (en) * 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7401158B2 (en) * 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7668917B2 (en) * 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
US7426059B2 (en) * 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
US20040153440A1 (en) * 2003-01-30 2004-08-05 Assaf Halevy Unified management of queries in a multi-platform distributed environment
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
JP2004295262A (ja) * 2003-03-25 2004-10-21 Toudai Tlo Ltd スクリプトの実行方法およびサーバ・クライアントシステム
US7146563B2 (en) * 2003-05-29 2006-12-05 International Business Machines Corporation Maintaining screen and form state in portlets
US7873353B2 (en) * 2003-09-30 2011-01-18 Ianywhere Solutions, Inc. Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices
US7200615B2 (en) * 2003-10-16 2007-04-03 Xerox Corporation Viewing tabular data on small handheld displays and mobile phones
GB0328576D0 (en) * 2003-12-10 2004-01-14 Ibm Method and apparatus for browsing a list of data items
US7721226B2 (en) * 2004-02-18 2010-05-18 Microsoft Corporation Glom widget
WO2005083934A1 (en) * 2004-02-27 2005-09-09 Research In Motion Limited System and method for communicating asynchronously with web services using message set definitions
US7659890B2 (en) * 2004-03-19 2010-02-09 Microsoft Corporation Automatic height adjustment for electronic highlighter pens and mousing devices
US7565538B2 (en) * 2004-04-05 2009-07-21 Microsoft Corporation Flow token
US20050223080A1 (en) * 2004-04-05 2005-10-06 Microsoft Corporation Updatable user experience
US7594022B2 (en) * 2004-04-21 2009-09-22 Microsoft Corporation Regulating client requests in an electronic messaging environment
US8135803B2 (en) * 2004-08-23 2012-03-13 Ianywhere Solutions, Inc. Method, system, and computer program product for offline advertisement servicing and cycling
US20060064470A1 (en) * 2004-09-23 2006-03-23 Sargent Antony J Method, system, and computer program product for improved synchronization efficiency for mobile devices, including database hashing and caching of web access errors
US7363742B2 (en) * 2004-11-12 2008-04-29 Taser International, Inc. Systems and methods for electronic weaponry having audio and/or video recording capability
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
WO2007055774A1 (en) * 2005-11-09 2007-05-18 Wms Gaming Inc. Information flow control for gaming machines requiring server support
US7526737B2 (en) * 2005-11-14 2009-04-28 Microsoft Corporation Free form wiper
US8812978B2 (en) * 2005-12-22 2014-08-19 Xerox Corporation System and method for dynamic zoom to view documents on small displays
JP4245016B2 (ja) * 2006-08-18 2009-03-25 ブラザー工業株式会社 電子メール通信装置及びコンピュータプログラム
US7756937B2 (en) * 2006-08-18 2010-07-13 Brother Kogyo Kabushiki Kaisha Network device
JP2009020548A (ja) * 2007-07-10 2009-01-29 Brother Ind Ltd コンテンツ配信システム、閲覧端末およびコンテンツ配信要求制御プログラム
US8127233B2 (en) * 2007-09-24 2012-02-28 Microsoft Corporation Remote user interface updates using difference and motion encoding
US8619877B2 (en) * 2007-10-11 2013-12-31 Microsoft Corporation Optimized key frame caching for remote interface rendering
US8121423B2 (en) * 2007-10-12 2012-02-21 Microsoft Corporation Remote user interface raster segment motion detection and encoding
US8106909B2 (en) * 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
US7835309B2 (en) * 2008-12-16 2010-11-16 Microsoft Corporation Multiplexed communication for duplex applications
US8514749B2 (en) * 2010-03-10 2013-08-20 Microsoft Corporation Routing requests for duplex applications
US8694998B2 (en) 2011-08-29 2014-04-08 Microsoft Corporation Cancellable command application programming interface (API) framework
US20130086437A1 (en) * 2011-09-30 2013-04-04 Microsoft Corporation Communicating unexpected collaboration server responses on reconnection
US20130346107A1 (en) 2012-06-20 2013-12-26 Oracle International Corporation Mobile clinical research associate framework for offline capability
CN103686684A (zh) * 2012-09-20 2014-03-26 腾讯科技(深圳)有限公司 离线缓存的方法及装置
US9747010B2 (en) 2014-01-16 2017-08-29 Xerox Corporation Electronic content visual comparison apparatus and method
US10122539B2 (en) 2016-04-13 2018-11-06 Facebook, Inc. URL replication for live broadcast streaming
US10798205B2 (en) * 2016-04-13 2020-10-06 Facebook, Inc. Cache system for live broadcast streaming
US10620996B2 (en) * 2017-04-26 2020-04-14 Servicenow, Inc. Batching asynchronous web requests
US10795747B2 (en) * 2018-05-17 2020-10-06 Microsoft Technology Licensing, Llc File synchronizing service status monitoring and error handling
EP3767965A1 (en) * 2019-07-19 2021-01-20 THEO Technologies Client web application with embedded streaming protocol converter

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4438511A (en) * 1980-11-10 1984-03-20 Telebit Corporation Packetized ensemble modem
US4897781A (en) * 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US5021949A (en) * 1988-02-29 1991-06-04 International Business Machines Corporation Method and apparatus for linking an SNA host to a remote SNA host over a packet switched communications network
US4893307A (en) * 1988-02-29 1990-01-09 International Business Machines Corporation Method and apparatus for linking SNA terminals to an SNA host over a packet switched communications network
US5473772A (en) * 1991-04-02 1995-12-05 International Business Machines Corporation Automatic update of static and dynamic files at a remote network node in response to calls issued by or for application programs
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
US5220501A (en) * 1989-12-08 1993-06-15 Online Resources, Ltd. Method and system for remote delivery of retail banking services
JP2511591B2 (ja) * 1990-10-29 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション 無線光通信システムの動作方法および光通信システム
US5241625A (en) * 1990-11-27 1993-08-31 Farallon Computing, Inc. Screen image sharing among heterogeneous computers
US5611038A (en) * 1991-04-17 1997-03-11 Shaw; Venson M. Audio/video transceiver provided with a device for reconfiguration of incompatibly received or transmitted video and audio information
US5224098A (en) * 1991-07-17 1993-06-29 International Business Machines Corporation Compensation for mismatched transport protocols in a data communications network
US5481721A (en) * 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects
DE4131133B4 (de) * 1991-09-19 2005-09-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten in Datenverarbeitungsanlagen
JPH05250112A (ja) * 1992-03-04 1993-09-28 Hitachi Ltd プリント出力制御方式
US5442633A (en) * 1992-07-08 1995-08-15 International Business Machines Corporation Shortcut network layer routing for mobile hosts
JPH06242893A (ja) * 1993-02-15 1994-09-02 Hitachi Ltd 出力制御システム
US5737536A (en) * 1993-02-19 1998-04-07 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5511208A (en) * 1993-03-23 1996-04-23 International Business Machines Corporation Locating resources in computer networks having cache server nodes
JPH06324928A (ja) * 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
US5446736A (en) * 1993-10-07 1995-08-29 Ast Research, Inc. Method and apparatus for connecting a node to a wireless network using a standard protocol
JPH07129498A (ja) * 1993-10-29 1995-05-19 Matsushita Electric Ind Co Ltd 問い合わせ型遠隔手続き処理装置
US5412654A (en) * 1994-01-10 1995-05-02 International Business Machines Corporation Highly dynamic destination-sequenced destination vector routing for mobile computers
US5446888A (en) * 1994-01-14 1995-08-29 Pyne; Charles F. Remote file transfer method and apparatus
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5572528A (en) * 1995-03-20 1996-11-05 Novell, Inc. Mobile networking method and apparatus
US5581558A (en) * 1995-03-29 1996-12-03 Lucent Technologies Inc. Apparatus for bridging non-compatible network architectures
US5701451A (en) * 1995-06-07 1997-12-23 International Business Machines Corporation Method for fulfilling requests of a web browser
US5829023A (en) * 1995-07-17 1998-10-27 Cirrus Logic, Inc. Method and apparatus for encoding history of file access to support automatic file caching on portable and desktop computers
US5850517A (en) * 1995-08-31 1998-12-15 Oracle Corporation Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server
JPH0981455A (ja) * 1995-09-11 1997-03-28 Toshiba Corp クライアント装置、サーバ装置及び記憶装置制御方法
US5572643A (en) * 1995-10-19 1996-11-05 Judson; David H. Web browser with dynamic display of information objects during linking
US5737619A (en) * 1995-10-19 1998-04-07 Judson; David Hugh World wide web browsing with content delivery over an idle connection and interstitial content display
US5867661A (en) * 1996-02-15 1999-02-02 International Business Machines Corporation Method and apparatus of using virtual sockets for reducing data transmitted over a wireless communication link between a client web browser and a host web server using a standard TCP protocol
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US5878213A (en) * 1996-02-15 1999-03-02 International Business Machines Corporation Methods, systems and computer program products for the synchronization of time coherent caching system
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
US5673322A (en) * 1996-03-22 1997-09-30 Bell Communications Research, Inc. System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks
JPH09270794A (ja) * 1996-03-29 1997-10-14 Mitsubishi Electric Corp ネットワーク管理装置
US5764910A (en) * 1996-04-02 1998-06-09 National Semiconductor Corporation Method and apparatus for encoding and using network resource locators
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US5857201A (en) * 1996-06-18 1999-01-05 Wright Strategies, Inc. Enterprise connectivity to handheld devices
US5870558A (en) * 1996-06-25 1999-02-09 Mciworldcom, Inc. Intranet graphical user interface for SONET network management
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100699630B1 (ko) * 2004-01-16 2007-03-23 엘지전자 주식회사 광디스크 장치의 무신호 구간 녹화 관리방법 및 재생방법및 편집방법

Also Published As

Publication number Publication date
JP4233638B2 (ja) 2009-03-04
JPH11134277A (ja) 1999-05-21
US6035324A (en) 2000-03-07
SG97884A1 (en) 2003-08-20
TW463112B (en) 2001-11-11
KR100289297B1 (ko) 2001-05-02
GB2330502B (en) 2002-05-29
SG71145A1 (en) 2000-03-21
GB2330502A (en) 1999-04-21
GB9816998D0 (en) 1998-09-30

Similar Documents

Publication Publication Date Title
KR100289297B1 (ko) 클라이언트측의 비동기적 양식관리 방법 및 그 시스템
US6070184A (en) Server-side asynchronous form management
JP3491011B2 (ja) 差分化通信システム
US6112240A (en) Web site client information tracker
US6571295B1 (en) Web page annotating and processing
JP3290377B2 (ja) 無状態ネットワーク・プロトコルにおける状態の保存方法および装置
US6112235A (en) Method and apparatus for remotely managing a network hardware device having an embedded server with a client computer across a network
US6199104B1 (en) Server-based host monitor
US8793341B2 (en) Web page content translator
CA2467656C (en) Servicing requests that are issued in a protocol other than the protocol expected by the service
Floyd et al. Mobile web access using eNetwork Web Express
Chang et al. Web browsing in a wireless environment: Disconnected and asynchronous operation in artour web express
US6880010B1 (en) Methods, systems, and computer program products that request updated host screen information from host systems in response to notification by servers
US20020116534A1 (en) Personalized mobile device viewing system for enhanced delivery of multimedia
US20040168122A1 (en) System, method and computer readable medium for transferring and rendering a web page
US7827238B2 (en) Exchanging data using programmatic conversion to emulated HTML form data
JPH11502047A (ja) 時間コヒーレント・キャッシュ・システム
US8291032B2 (en) Email system
US20010047397A1 (en) Method and system for using pervasive device to access webpages
US20020143861A1 (en) Method and apparatus for managing state information in a network data processing system
EP1235407A2 (en) A method of media streaming based on a protocol for wireless devices
US20020059459A1 (en) System and method of sending chunks of data over wireless devices
KR100523703B1 (ko) 컬래버레이션 시스템, 컬래버레이션 서버, 문서 파일의전송 방법, 기억 매체 및 프로그램 전송 장치
US6934734B2 (en) Method and apparatus for managing and presenting changes to an object in a data processing system
JP2002073594A (ja) 外字情報の受取り方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120201

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130124

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee