KR19990023318A - 서버측의 비동기적 양식관리 방법 및 그 시스템 - Google Patents

서버측의 비동기적 양식관리 방법 및 그 시스템 Download PDF

Info

Publication number
KR19990023318A
KR19990023318A KR1019980031580A KR19980031580A KR19990023318A KR 19990023318 A KR19990023318 A KR 19990023318A KR 1019980031580 A KR1019980031580 A KR 1019980031580A KR 19980031580 A KR19980031580 A KR 19980031580A KR 19990023318 A KR19990023318 A KR 19990023318A
Authority
KR
South Korea
Prior art keywords
request
response
stored
providing
received
Prior art date
Application number
KR1019980031580A
Other languages
English (en)
Other versions
KR100318781B1 (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 KR19990023318A publication Critical patent/KR19990023318A/ko
Application granted granted Critical
Publication of KR100318781B1 publication Critical patent/KR100318781B1/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]
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

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

Abstract

본 발명은, 웹 브라우저로부터 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션으로의 요구를 상기 제 2 컴퓨터의 영구적 요구 큐에 저장함으로써, 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템에서 실행중인 웹 브라우저와 통신하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다. 또한, 서버측 인터셉트 모듈에 의하여 수행되는 웹 브라우저의 비동기적 동작을 달성하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다.

Description

서버측의 비동기적 양식 관리 방법 및 그 시스템
본 발명은 원격/이동 컴퓨팅(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는 본 발명에 의한 클라이언트측 인터셉트 모듈로부터의 요구를 수신하는 서버 인터셉트 모듈의 동작을 도시한 흐름도.
도 5a는 본 발명에 의한 클라이언트로부터의 요구를 수신하는 서버 인터셉트 모듈의 동작을 도시한 흐름도.
도 6은 본 발명에 의한 서버 인터셉트 모듈의 클라이언트로의 접속 동작을 도시한 흐름도.
도 7은 본 발명에 의한 단선된 또는 연기된 처리 동작을 도시한 흐름도.
도 8은 본 발명에 의한 원격/이동 데이터 프로세스 시스템에서 브라우저 요구에 대한 응답을 수신하는 것에 관련된 동작을 도시한 흐름도.
도 9는 본 발명에 의한 요구를 교정하는 것과 관련된 동작을 도시한 흐름도.
도면의 주요 부분에 대한 부호의 설명
5 : 제 1 컴퓨터 6 : 제 2 컴퓨터
10 : 웹 브라우저 20 : 웹 서버
30 : 클라이언트측 인터셉트 35 : 통신 링크
40 : 서버측 인터셉트
상기의 목적을 달성하기 위하여 본 발명은, 웹 브라우저로부터 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션으로의 요구를 상기 제 2 컴퓨터의 영구적 요구 큐에 저장함으로써, 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템에서 실행중인 웹 브라우저와 통신하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품을 제공한다. 상기 클라이언트 애플리케이션으로부터의 요구에 응답하여 상기 웹 브라우저에 잠정 응답(interim response)이 제공된다. 상기 저장된 요구는 상기 서버 애플리케이션에 제공되며 상기 서버 애플리케이션으로부터의 응답을 수신한다. 그 다음에, 상기 수신된 응답은 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공된다.
제 2 컴퓨터(서버측) 요구 큐에 요구를 저장하고 웹 브라우저에 잠정 응답을 제공함으로써, 웹 브라우저의 비동기적 동작이 이루어질 수 있다. 나아가, 통신의 서버측에 상기 요구를 저장함으로써, 상기 원격/이동 처리 시스템과의 접속이 종료된 후에 상기 요구를 처리할 수 있다. 따라서, 본 발명은 약한 접속의 한계를 극복할 수 있다. 또한, 본 발명에 의하면, 느린 속도의 환경에서는 사용자가 요구에 대한 응답을 기다리지 않고 몇 개의 요구를 업로드(upload)하여, 상기 요구가 백그라운드(background)에서 처리되는 동안 작업을 계속할 수 있다.
본 발명의 한 실시예에 의하면, 상기 브라우저로부터 수신된 요구가 지연된 처리 요구인지에 관하여 판단한다. 만약 상기 요구가 지연된 처리 요구가 아니라면, 상기 요구는 저장되지 않고 직접 처리되며, 그 응답을 상기 브라우저에 제공한다.
일단 상기 제 2 컴퓨터의 요구 큐에 상기 요구가 수신되어 저장되면, 상기 원격/이동 데이터 프로세서는 상기 제 2 컴퓨터로부터의 접속을 끊는다. 이 경우에는, 상기 원격/이동 처리 시스템은 상기 저장된 요구에 대한 응답을 수신하기 위하여 상기 제 2 컴퓨터로 재접속할 것이다. 본 발명의 한 실시예에 의하면, 사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공한다. 사용자는, 상기 웹 브라우저를 통하여 상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대하여 요구할 수 있다. 상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대하여 연관된 응답은, 이를 사용자에게 제시하기 위하여 상기 웹 브라우저에 제공된다. 또한, 사용자는 상기 제 2 컴퓨터에 의하여 수신중인 응답에 이어 상기 수신된 응답의 활용가능성에 관하여 통지 받을 수 있다. 그 다음에, 만약 사용자가 상기 응답을 요구하면, 상기 응답은 상기 웹 브라우저에 제공될 수 있다.
본 발명의 다른 실시예에 의하면, 요구를 송신하고 수신하기 위하여 다수의 접속을 사용할 수 있기 때문에, 사용자 식별자(user identifier)와 연관된 영구적 요구 큐를 확립한다. 이 경우에, 상기 원격/이동 데이터 프로세서가 상기 제 2 컴퓨터와 재접속될 때, 상기 원격/이동 데이터 처리 시스템은 상기 제 2 컴퓨터에 사용자 식별자를 제공할 수 있다. 그 다음에, 상기 수신된 사용자 식별자와 연관된 영구적 요구 큐로부터의 요구에 대해 수신된 응답을 상기 원격/이동 데이터 처리 시스템에 제공한다. 그리하여, 요구 큐와 사용자 식별자를 연관시킴으로써, 다수의 사용자들이 동일한 제 2 컴퓨터에 접속하여 그들만의 요구 큐에 억세스할 수 있다. 따라서, 요구 큐 또는 요구 큐와 연관된 응답으로 인증없이 억세스하는 것을 막기 위하여, 보안 응답 및 요구 큐(secure response and request queue)를 제공할 수 있다.
본 발명의 다른 실시예에 의하면, 수신된 응답에 적어도 하나의 요구가 삽입되었는지를 판단하기 위하여, 수신된 응답을 분석한다. 만약 상기 수신된 응답에 요구가 삽입되었다면, 상기 삽입된 요구는 그에 의하여 지정되는 서버로 공급된다. 상기 삽입된 요구에 대한 응답은 상기 제 2 컴퓨터에 수신되어 저장된다. 그 다음에, 상기 저장된 응답은 상기 영구적 요구 큐에 저장된 요구와 연관된다. 그 다음에, 상기 수신되어 저장된 응답과 상기 삽입된 요구에 대하여 저장된 응답을 상기 웹 브라우저에 제공한다.
본 발명의 다른 실시예에 의하면, 요구에 대한 응답은 상기 제 2 컴퓨터에 저장되어, 사용자 식별자와 연관된 영구적 요구 큐에 저장된 요구와 연관된다. 그리하여, 다수의 영구적 요구 큐를 설정하고, 상기 각 영구적 요구 큐는 사용자 식별자와 연관된다. 이렇게 함으로써, 다수의 웹 브라우저로부터의 요구들을 다수의 영구적 요구 큐에 저장하여, 웹 브라우저의 사용자로부터의 요구를 그 사용자의 사용자 식별자와 연관된 영구적 요구 큐에 저장할 수 있게 된다. 그 다음에, 상기 다수의 요구들은, 연관된 웹 서버에 제공되고, 다수의 응답은 상기 연관된 웹 서버로부터 수신된다. 상기 수신된 다수의 응답은 상기 다수의 웹 브라우저에 제공되어, 요구에 대한 응답은 그 요구가 수신된 웹 브라우저에 제공된다.
본 발명의 또 다른 실시예에 의하면, 제 2 컴퓨터에 일시적으로 또한 간헐적으로 접속된 원격/이동 처리 시스템에서 실행중인 웹 브라우저는, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션으로의 요구를, 상기 제 2 컴퓨터의 영구적 요구 큐에 저장함으로써 통신한다. 클라이언트 식별자(client identification)를 상기 저장된 요구와 연관시키고, 상기 저장된 요구를 상기 서버 애플리케이션에 제공한다. 상기 서버 애플리케이션으로부터 응답을 수신하고, 상기 제 2 컴퓨터에 존재하는 서버측 캐시에 상기 응답을 저장한다. 그 다음에, 상기 수신되어 저장된 응답은 상기 저장된 요구에 연관되고, 상기 저장된 요구에 연관된 클라이언트 식별자와 연관된 웹 브라우저에 제공된다.
본 발명의 다른 국면에 의하면, 상기 저장된 요구는 상기 클라이언트 식별자와 연관된 웹 브라우저의 다음 번 접속중에 제공된다. 또한, 상기 요구에 대한 수정은, 상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 전에 수신된다. 상기 저장된 요구를 수정된 요구로 대체하기 위하여, 상기 요구 큐에 저장된 요구를 수정할 수 있다.
본 발명의 다른 실시예에 의하면, 상기 브라우저로부터 수신된 요구가 지연된 처리 요구인지에 관하여 판단한다. 만약 상기 요구가 지연된 처리 요구라면, 상기 요구를 상기 요구 큐에 저장하고 그에 따라 처리한다.
본 발명의 다른 실시예에 의하면, 서버로부터의 다수의 응답은 상기 영구적 요구 큐의 하나의 엔트리와 연관된다. 상기 영구적 요구 큐의 하나의 엔트리에 연관된 다수의 응답은, 상기 하나의 엔트리에 대한 요구에 응답하여 상기 원격/이동 데이터 처리 시스템에 제공된다.
본 발명의 기술 분야의 통상의 지식을 가진 자라면, 본 발명이 방법, 장치/시스템 및 컴퓨터 프로그램 제품으로서 구현될 수 있음을 이해할 수 있을 것이다.
본 발명은, 그 실시예가 도시된 첨부 도면들을 참조하여 이하에서 보다 상세히 설명될 것이다. 그러나, 본 발명은 다른 여러 가지 형태로 실시될 수 있으므로 이하에서 개시된 실시예에 한정되는 것으로 해석되어서는 안된다. 즉, 이하의 실시예들은, 본 발명의 기술 분야의 통상의 지식을 가진 자들에게 본 발명의 기술 사상을 전체적으로 완전하게 전달하기 위한 것이다. 동일한 구성요소는 동일한 도면부호를 사용하였다. 본 발명의 기술 분야의 통상의 지식을 가진 자라면, 본 발명이 방법 또는 장치로 실시될 수 있음을 이해할 것이다. 따라서, 본 발명은 전적으로 하드웨어만의 실시 형태를 취할 수도 있으며, 전적으로 소프트웨어만의 실시 형태를 취할 수도 있고, 소프트웨어와 하드웨어의 양상이 결합된 실시 형태를 취할 수도 있다.
%173%이제, 본 발명의 한 실시예를 기술하는 흐름도인 도 4 내지 도 6을 참조하여 본 발명을 설명한다. %174%상기 흐름도의 각 블록 및 블록들의 조합은 컴퓨터 프로그램 명령에 의하여 구현될 수 있음을 이해하여야 한다. %175%이러한 프로그램 명령들은 머신(machine)을 생성하기 위한 프로세서(processor)로 제공되어, 이 프로세서에서 실행되는 명령들이 상기 흐름도의 블록에 규정된 기능들을 구현하기 위한 수단을 생성한다. %176%컴퓨터로 구현된 프로세스를 산출하기 위하여 일련의 동작 단계들이 상기 프로세서에 의하여 수행되도록 상기 프로세서에서 상기 컴퓨터 프로그램 명령들을 수행하고, 그리하여 상기 프로세서에서 실행되는 명령들이 상기 흐름도의 블록에서 규정된 기능들을 구현하는 단계들을 제공한다.
%177%따라서, 흐름도의 블록들은, 규정된 기능을 수행하기 위한 수단의 조합, 규정된 기능을 수행하는 단계의 조합 및 규정된 기능을 수행하기 위한 프로그램 명령 수단 등을 지원한다. %178%상기 흐름도의 각 블록과 블록의 조합은 규정된 기능 또는 단계를 수행하는 전용 하드웨어 기반 시스템 또는 전용 하드웨어와 컴퓨터 명령의 조합에 의하여 구현될 수 있다.
도 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)는 웹 브라우저와 웹 (프록시) 서버 모두에 투명하며, 따라서 임의의 웹 서버에 채용될 수 있다. 상기 서버측 인터셉트(40) 및 클라이언트측 인터셉트(30) 모두는 그래픽 객체(graphic object)와 HTML 객체를 캐시에 저장한다. 만약 브라우저 요구의 URL이 상기 클라이언트측 인터셉트의 캐시의 객체를 규정한다면, 그것은 브라우저 응답으로서 즉시 회신될 것이다. 상기 캐싱 기능(caching function)은 클라이언트 규정 시간 간격(client-specified time interval)내에서의 캐시의 보전성(cache integrity)을 보장한다. 상기 서버측 인터셉트 캐시에는 요구된 웹 서버로부터의 응답이 밀집되어 있다. 클라이언트측 인터셉트로부터 수신된 요구 URL이 상기 서버측 인터셉트 캐시에 저장되어 있다면, 그것은 상기 요구에 대한 응답으로서 회신된다.
본 발명에 의하면, 본 발명의 출원인의 미국 특허출원 제 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)를 제공한다. 상기 비동기적 요구 및 응답 처리는, 사용자에게 높은 유연성을 제공하고 성능의 이점을 달성하기 위하여, 클라이언트측 인터셉트와 서버측 인터셉트 모두 사이에 통합되는 것이 바람직하다. 클라이언트측 인터셉트, 또는 서버측 인터셉트, 또는 모두에 의한 백그라운드 처리를 위하여 요구를 내부적으로 기록한다. 요구가 완료되면, 그 결과를 저장하고, 비동기적으로 스테이터스(status)를 갱신한다. 사용자는 (선택에 따라) 요구가 완료된 때 통지를 받으며, 언제라도 하나 또는 그 이상의 요구의 스테이터스를 검토하기 위하여 스테이터스 페이지(status page)로 전환할 수 있다. 각 요구에 대한 스테이터스 엔트리(status entry)는 상기 요구의 상태(state)(미개시, 처리중, 완료됨)를 전하며, 상기 요구가 완료된 경우에는 그 응답 페이지로의 링크를 포함한다.
본 발명은 또한, 상기 원격/이동 데이터 처리 시스템이 서버 애플리케이션으로의 억세스를 가진 컴퓨터와 링크되지 않은 때의 단선 동작(disconnected operation)을 제공한다. 사용자는 동기 모드(synchronous mode) 또는 비동기 모드(asynchronous mode)의 어느 하나로 동작할 수 있다. 어느 경우에든, 접속이 손실된 것을 감지한 때에나 또는 통신이 불가능한 경우(예컨대, 신호 범위에서 벗어난 경우)에는, 요구를 큐에 저장하고 이후의 처리를 기다릴 수 있으며, 또는, 단선된 기간중에 처리하고 재접속시에 응답을 리트리브(retrieve)하기 위하여 상기 요구들을 서버측 인터셉트 큐에 저장할 수 있다. 이 성능은 사용자로 하여금 오프라인 상태에서도 계속하여 생산적일 수 있게 한다. 이러한 동작들을 도 3 및 도 4와, 도 5 내지 도 10의 흐름도를 참조하여 이하에서 설명하기로 한다.
도 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는, 본 발명에 의한 도 2의 제 2 컴퓨터(6)에 존재할 수 있는 서버측 인터셉트 모듈(40)의 실시예를 도시한 도면이다. 클라이언트측 인터셉트 모듈(30)로부터의 통신, 또는 선택적으로 브라우저(10)로부터의 직접적인 통신은, 인입 데이터 프로세서(Incoming Data Processor)(200)에 의하여 수신되며, 요구 큐(230)에 선택적으로 배치된다. 서버측 인터셉트 모듈은 다수의 클라이언트측 모듈 또는 브라우저로부터의 통신을 수신하기 때문에, 상기 서버측 인터셉트 모듈은 비동기적 처리를 사용하는 각 클라이언트에 대한 요구 큐를 유지하는 것이 바람직하다. 다른 클라이언트와 연관된 요구 큐들(230, 231 및 232)을 도 4에 도시하였다. 이러한 요구 큐들은 그 요구와 연관된 클라이언트 식별자가 서로 다르다는 것 이외에는, 요구 큐(230)와 동일한 방식으로 구성된다.
상기 요구 큐(230, 231 및 232)의 요구들은, 그 요구에서 지정된 서버(즉, 프록시)로의 억세스를 갖는 제 2 컴퓨터와의 접속이 확립되거나, 또는 상기 서버로의 직접적인 접속이 확립되었을 때 상기 요구를 수행하는 HTTP 요구 큐 프로세서에 의하여 처리된다. 이러한 요구들이 처리될 때, 상기 요구를 수행하기 위하여 각 요구에 대하여 서비스 쓰레드(234)를 초기화한다. 요구에 대한 응답은 캐시(210)에 배치되고, 상기 요구를 작성한 요구 큐로부터의 요구와 연관된다. 도 4에서는 점선으로 이러한 연관을 도시하였다.
도 4의 상기 요구 큐의 엔트리로부터 상기 캐시로의 실선은 상기 요구 엔트리와 상기 요구를 생성하는데 사용된 양식 사이의 연관을 나타낸다. 상기와 같은 연관에 의하여, 상기 요구를 작성한 이후에도 서버 단독 구성(server-only configuration)을 사용하는 사용자가 요구를 수정하거나 취소할 수 있게 된다. 또는, 요구 및 응답 모두를 큐의 엔트리와 연관시켜, 상기 요구 및 응답 모두를 사용자에 제공할 수 있다.
상기 요구 큐(230)는, 상기 클라이언트측 인터셉트 또는 브라우저로부터 상기 인입 데이터 프로세서(200)에 의하여 스테이터스 정보 및 제어 정보와 함께 수신된 요구의 목록이다. 각 요구 요소에는 상기 브라우저로부터 수신된 모든 정보들(HTTP 헤더(header) 및 모든 본문(body))이 포함된다. 이렇게 함으로써, 상기 요구를 이후에 네트워크로 재연할 수 있게 된다. 또한, 각 요구 요소는 상기 요구와 연관된 상태 정보(state information)를 보유한다. 여기에는 상기 요구를 처리하며 만들어진 진도 요약(summary of progress)과 수행되어야 할 잔류 작업 목록이 포함된다.
서버측 인터셉트에 관하여 상기한 바와 같은 요구 큐 엔트리 포맷(request queue entry format)은 클라이언트측에 의하여도 사용될 수 있다. 그러나, 상기 요구를 상기 서버측 인터셉트 모듈로 전송할 때, 요구 ID - 이것은 클라이언트에 의하여 국지적으로 작성된다 - 를 그 요구와 연관시킨다. 또는, 접속이 확립되었을 때, 그 접속 기간 동안을 위한 사용자 식별자를 확립할 수 있다. 그리하여, 그 접속으로부터 수신된 모든 요구와 사용자 ID를 연관시킨다. 요구를 하는 동안 접속을 끊을 수 있으므로, 서로 다른 처리 시기(processing phase)에 서로 다른 소켓(socket)이 관여할 수 있다. 요구를 서버측 인터셉트로 전송하기 전에 각 요구에 클라이언트ID/요구ID 쌍을 첨부시킴으로써, 소켓 접속과 무관하게 결과를 전달하는 것을 통합시킬 수 있다. 또한, 상기 요구ID는 이후에 그 결과와 함께 쌍이 되도록, 처리를 위해 상기 서버측 인터셉트로 송신된 요구에 대하여 상기 클라이언트측에 기록되어야 한다. 상기 클라이언트ID 보안을 만듦으로써, 다른 클라이언트의 요구가 서버측 인터셉트 모듈에 저장되어 있음에도 불구하고 억세스될 수 없도록 유지된다.
동작중에, 사용자가 이후에 리트리브하기 위하여 단선된 중에 현안인 요구가 서버에서 처리되기를 원하며 단선하려고 할 때, 상기 클라이언트는 단선된 중에 처리되도록 상기 요구를 상기 서버측 인터셉트로 전송하는 명령을 내린다. 상기와 같은 명령은 클라이언트측의 API flush() 명령일 수 있다. 상기 API flush() 명령은 통신 링크의 서버측에서 처리되도록 큐에 저장된 요구들을 서버로 송신한다. 전송된 아이템들은 클라이언트 요구 큐에서 명칭/값 쌍을 사용하여 플러시(flush)된 것으로 표시된다. 이러한 것들에는 최소한 세 가지의 flush() 함수의 형식이 있다. 즉,
flush() 보류된 것으로 표시되지 않은 모든 아이템을 전송(기본);
flush(all) 보류된 것을 포함한 모든 아이템을 전송; 및
flush(item) 특정의 아이템을 전송
등이다. 또한, 보류 요구(즉, 사용자에 의하여 특정된 이후의 시간에 처리되도록 지정된 요구)는 단선중의 처리를 위하여 서버측으로 전송될 수도 있지만, 요구를 보류하는 주된 이유는 충분한 대역폭이 활용가능할 때까지 결과의 전송을 연기시키는 것이다. 사용자는 오랫동안 결과를 요구하지 않을 수 있기 때문에, 보류된 요구를 단선중에 처리하는 것은 바람직하지 않다. 그리하여, 그 요구를 처리하고 요구되지 않는 결과를 저장하는 것에 서버 자원이 소비된다.
또는, 브라우저 대 서버측 인터셉트 구성에서는, 서버측 인터셉트로부터 만족되지 않는 모든 요구들은 서버측 인터셉트에서 큐에 저장될 수 있다. 따라서, 만약 간헐적인 접속 실패가 발생한다면, 상기 요구는 브라우저가 단선중인 동안 상기 서버측 인터셉트에 의하여 계속하여 처리될 것이다. 상기와 같은 시스템은 또한, 일단 브라우저에 제공될 응답의 큐가 확립되면 통신 링크의 부동 시간(dead time)이 감소되기 때문에, 브라우저와 서버측 인터럽트의 접속을 완전히 이용할 수 있다는 장점도 갖는다.
본 발명에서는, 클라이언트측에 저장된 요구의 변화도 또한 고려되었다. 만약 서버측 인터셉트에서 특정의 아이템이 큐에 저장되었다면, 클라이언트 요구 큐에서 그 아이템에 대한 모든 변화는 서버로 전파된다. 예를 들어, 사용자가 상기 클라이언트 요구 큐로부터 플러시된 요구를 삭제하였다면, 상기 서버측 인터셉트는 그에 관하여 통지를 받아, (필요한 경우) 처리를 중단하고, 현안인 결과는 폐기되며, 서버측에서의 클라이언트 요구 큐로부터 그 아이템을 제거한다. 이와 유사하게, 만약 플러시된 아이템의 스테이터스가 보류 또는 비보류로 변경되었다면, 상기 서버측 요구 큐에게도 알려 필요한 대로 처리를 중단하거나 시작할 수 있다. 그리하여, 단선되면, 상기 클라이언트측에서 플러시된 아이템의 변경된 동작들을 기록에 남겨 서버측 인터셉트 모듈에 재접속된 경우 즉각 재연할 수 있도록 하는 것이 바람직하다.
일단 서버측 처리에 의하여 응답이 생성되면, 클라이언트로 되돌아 전파되는 데이터는 규칙에 기반을 둔다. 단선중의 요구에 대하여 다음에 접속되었을 때 클라이언트에게 맹목적으로 전송되는 응답은 바람직하지 못하다. 상기 클라이언트는 좁은 대역폭의 링크에서 높은 우선권을 가진 무언가를 하고 있는 중일 수 있으며, 사용자는 처음 접속한 때를 낡은 요구에 대한 응답을 전송하는 것으로 낭비하고 싶지 않을 수도 있다. 따라서, 클라이언트가 데이터의 전송을 최적화할 수 있도록 일단의 구성 가능한 규칙과 함수들을 제공할 수 있다.
그러한 함수의 하나로서, GetDigest() 함수가 있다. GetDigest()는 이 클라이언트에 대하여 요구된 서버측 큐에 축적된 정보의 간략한 요약(summary)을 회신한다. 그리하여, GetDigest() 함수에 응답하여 다음을 포함한 정보가 제공된다. 즉, URL, 제목, 크기, 요구 완료 시간 및 스테이터스 등이다. GetDigest() 함수의 호출에 응답하여 회신된 스테이터스에 의하여, 완료, 처리중, 보류, 기타 등을 알 수 있다. 따라서, 상기 스테이터스에 의하여 서버측 인터셉트가 상기 요구의 처리를 얼마나 진행하였는지를 알 수 있다. 클라이언트는 어떻게 진행할 것인지를 결정하기 위하여 상기 개요(digest)를 사용할 수 있다. 저장된 응답을 리트리브하기 위하여, 상기한 바와 같은 flush() 동작에 해당하는 sync() 함수를 다음과 같이 제공할 수 있다. 즉,
sync() 보류된 것으로 표시되지 않은 모든 아이템을 획득(기본);
sync(all) 보류된 것을 포함한 모든 아이템을 획득; 및
sync(item) 특정의 아이템을 획득
등이다. 이러한 명시적인 요구에 추가하여, 사용자는, 접속중에 또는 재접속 프로세스중에, 자동적으로 동기화되도록 조치할 수 있다. 즉,
GetPrefs() 이 클라이언트의 선택설정(preference)의 현재 목록을 회신;
SetPrefs(list) 새로운 선택설정의 목록을 정의; 및
UpdatePrefs(list) 특정의 선택설정만을 갱신
등이다.
상기 선택설정 목록은, 데이터를 자동으로 전송하여야 하는 규칙을 규정하는 일련의 명칭/값 쌍으로 구성된다. 그 속성의 일부로는 우선순위, 크기, 출처(source) 등이 포함된다. 그리하여, 자동 전송뿐만 아니라 사용자의 지시에 의한 실행의 조합을 포함하는 클라이언트측 상호작용에 의하여 서버측 처리에 기반을 둔 비동기적 동작을 관리할 수 있다.
이제, 도 5, 도 5a 및 도 6을 참조하여 서버측 인터셉트의 동작을 설명한다. 도 5는 서버측 인터셉트 모듈이 클라이언트측 인터셉트 모듈로부터의 전송을 수신할 때의 동작을 도시한 흐름도이다. 블록 250에 도시된 바와 같이, 상기 서버측 인터셉트는 클라이언트측 인터셉트 모듈로부터의 요구를 수신한다. 이 정보는 일반적으로 두 개의 형식을 가질 수 있는데, 즉 표준 브라우저 요구(standard browser request), 또는 서버측 인터셉트 자체에 의하여 처리되는 요구(예를 들어, 상기한 GetDigest() 또는 SetPrefs() 함수를 참조하라.)이다. 그리하여, 상기 서버측 인터셉트는, 상기 인터셉트된 전송이 서버로의 요구인지 또는 서버측 인터셉트로의 요구인지를 판단하고(블록 252), 만약 상기 요구가 서버측 인터셉트로의 요구라면, 그에 따라 요구를 처리한다(블록 254). 인터셉트 통신의 타입의 예는 상기한 바와 같다.
만약 인터셉트된 전송이 상기 서버측 인터셉트 모듈 자체로의 인터셉트 통신이 아니라면, 상기 서버측 인터셉트 모듈은, 상기 요구가 상기 서버측 인터셉트 모듈에 의하여 단선중에 처리되어야 할 동작을 위한 것인지를 판단한다(블록 256). 만약 상기 요구가 단선중의 동작을 위한 것이 아니라면, 상기 요구는 다른 임의의 요구와 같이 처리된다(블록 258). 또한, 상기 서버측 인터셉트는 상기 요구가 클라이언트로부터의 최초의 요구인지를 판단하고(블록 264), 만약 그렇다면, 그 사용자를 위한 요구 큐 - 상기 요구 큐에는 클라이언트 식별자(클라이언트 ID)가 포함됨 - 를 생성(블록 266)하여, 이후의 통신을 적절한 큐에 저장하고, 인증되지 않은 사용자에게 사용자의 요구와 응답이 제공되지 않도록 보안을 유지한다. 요구 큐를 생성한 다음에, 또는 큐가 이미 존재하는 경우에, 상기 요구를 상기 클라이언트의 요구 큐에 저장하고(블록 268), 오프라인으로 처리한다. 상기 오프라인 처리는 이하에서 기술될 클라이언트측 인터셉트에서의 그것과 유사하다.
도 5a는 클라이언트측 인터셉트가 존재하지 않고 서버측 인터셉트가 브라우저와 통신할 때(서버측 단독인 경우)의 서버측 인터셉트의 동작을 도시한 흐름도이다. 도시된 바와 같이, 상기 서버측 인터셉트 모듈은 상기 브라우저로부터의 요구를 수신한다(블록 350). 그 다음에, 상기 서버측 인터셉트는 그 요구가 연기되었는지(즉, 그 요구가 단선중의 동작을 위한 것인지)를 판단한다(블록 356). 또는, 상기 서버측 단독인 경우에는, 모든 요구를 서버측 인터셉트 모듈에서 연기되어 큐에 저장된 것으로 취급할 수 있다. 어떤 경우에든, 상기 요구가 연기된 동작을 위한 것이 아니라면, 그 요구는 정규적으로 처리된다(블록 358). 그러나, 만약 상기 요구가 단선중의 처리를 위한 것이라면, 그 브라우저가 처리할 수 있도록 그에 해당하는 응답을 필요로 한다. 그리하여, 상기 서버측 인터셉트는 상기 브라우저에 잠정 응답을 제공한다(블록 362). 상기 잠정 응답은, 요구를 수신하였고 오프라인으로 처리된다는 것을 알려주는 한 페이지 정도로 간단할 수도 있으며, 또는 모든 처리중인 오프라인 처리 요구의 완전한 스테이터스를 제공하는 정도로 복잡할 수도 있다.
또한, 서버측 단독인 경우에, 상기 서버측 인터셉트는, 상기 요구가 클라이언트로부터의 최초의 요구인지를 판단(블록 364)하고, 만약 그렇다면, 그 사용자를 위한 요구 큐 - 상기 요구 큐에는 클라이언트 식별자(클라이언트 ID)가 포함됨 - 를 생성(블록 366)하여, 이후의 통신을 적절한 큐에 저장하고, 인증되지 않은 사용자에게 사용자의 요구와 응답이 제공되지 않도록 보안을 유지한다. 요구 큐를 생성한 다음에, 또는 큐가 이미 존재하는 경우에, 상기 요구를 상기 클라이언트의 요구 큐에 저장하고(블록 368), 오프라인으로 처리한다. 상기 오프라인 처리는 이하에서 기술될 클라이언트측 인터셉트에서의 그것과 유사하다.
도 6은 비동기적 서버측 처리를 사용하는 클라이언트가 서버측 인터셉트 모듈에 접속하였을 때, 상기 서버측 인터셉트 모듈의 동작을 도시한 흐름도이다. 도 6은 클라이언트측/서버측 양용인 경우와 서버측 단독인 경우 모두에 대한 서버측 인터셉트 모듈의 동작을 일반적으로 기술하고 있다. 그러나, 본 발명의 기술 분야의 통상의 지식을 가진 자라면 이해할 수 있는 바와 같이, 서버측 단독인 경우에 정보를 클라이언트에 제시하는 것은 상기 웹 브라우저가 해석할 수 있는 포맷을 취해야 하며, 반면에 클라이언트측/서버측 양용인 경우에는, 상기 클라이언트측 인터셉트 모듈과 통신하는 브라우저에 의하여 해석될 수 있는 포맷으로 번역될 수 있도록 상기 클라이언트 인터셉트 모듈에 의하여 해석될 수 있는 임의의 적당한 방식으로 정보를 제공할 수 있다.
도 6에 도시된 바와 같이, 클라이언트의 클라이언트 ID를 확인(블록 270)하고, 서버측 인터셉트는, 상기 클라이언트 큐와 연관된 임의의 관리 동작이 상기 클랑이언트에 의하여 규정되었는지에 관하여 판단한다(블록 272). 만약 그렇다면, 그 관리 기능이 수행된다(블록 274). 이러한 관리 기능에는, 상기 한 바와 같이, 사용자의 선택설정을 세팅(setting)하거나, 클라이언트가 단선중인 동안에 큐의 요구에 가한 수정을 반영시키기 위하여 큐를 갱신하는 것 등이 포함될 수 있다.
관리 기능을 수행하는 것에 추가하여, 상기 큐에 엔트리가 존재하는지를 판단하기 위하여 상기 클라이언트 ID에 연관된 큐를 검사한다(블록 276). 만약 상기 큐에 엔트리가 존재한다면, 상기 클라이언트에게 상기 큐에 엔트리가 존재한다는 것을 통지하기 위하여, 상기 클라이언트에게 프롬프트(prompt)를 송신한다(블록 278). 이 프롬프트는 복잡할 수도, 간단할 수도 있으며, 사용자의 선택설정에 의하여 규정될 수 있다. 그 다음에, 사용자는 적절한 방식으로 상기 프롬프트에 대하여 응답할 수 있고, 상기 큐의 엔트리는 그에 따라 처리된다. 예를 들어, 상기 사용자는 모든 완료된 요구를 브라우저로 송신할 것을 요구할 수 있다. 또는, 그러한 동작을 이후의 접속시로 연기하거나, 또는 현재의 접속중의 이후로 연기할 수도 있다.
또한, 사용자 식별자와 연관된 응답을 상호간에 연관시켜, 하나의 사용자 요구에 기초한 블록으로서 상기 클라이언트측 인터셉트 또는 브라우저에 제공할 수 있다. 이 경우에는, 상기 서버측 인터셉트가 상기 정보를 구성하고, 예컨대 상기 요구 큐의 하나의 엔트리와 연관시켜, 상기 하나의 엔트리가 다수의 응답을 대표하도록 할 수 있다. 그 다음에, 상기 엔트리가 요구되면, 다수의 응답이 하나의 그룹으로서 상기 클라이언트로 송신된다. 그 다음에, 상기 브라우저는 그 연쇄된 응답들을 찾아갈 수 있다. 그리하여, 상기 서버측 인터셉트는 상기 브라우저에 다수의 응답을 제공한 요구 큐의 하나의 엔트리를 생성할 수 있다. 나아가, 사용자는 어떤 응답들이 하나의 블록으로서 그룹화될 것인지를 규정할 수 있고, 이렇게 함으로써, 사용자는 웹 브라우저에 의하여 어떻게 응답을 수신할 것인지를 제어할 수 있게 된다.
도 7은 본 발명에 의한 클라이언트측 인터셉트 동작을 도시한 흐름도이다. 도시된 바와 같이, 상기 클라이언트측 인터셉트(30)는 브라우저(10)로부터의 요구를 인터셉트한다(블록 50). 그 다음에, 상기 클라이언트측 인터셉트는, 상기 요구에 대한 응답이 상기 캐시에 존재하는지에 관하여 판단하고(블록 52), 만약 그렇다면, 캐시에 저장된 응답을 상기 웹 브라우저로 회신한다(블록 54).
만약 상기 응답이 캐시에 존재하지 않는다면, 상기 클라이언트측 인터셉트는 상기 데이터 처리 시스템이 상기 서버로의 억세스를 위한 상기 제 2 컴퓨터에 접속되었는지에 관하여 판단한다(블록 56). 만약 상기 데이터 처리 시스템이 접속되었고, 요구가 연기되지 않았다면(블록 58), 상기 요구는 상기 제 2 컴퓨터로 송신된다(블록 60). 그러나, 만약 상기 데이터 처리 시스템이 접속되지 않았거나, 요구 처리가 연기되었다면, 상기 요구는 요구 큐에 저장되고, 상기 요구에 대한 응답으로서 잠정 응답이 상기 브라우저에 제공된다(블록 62).
큐에 저장된 요구의 처리는, 본 발명에 의한 인터셉트 모듈의 어떤 다른 행위와도 무관하게 실행되는 쓰레드(thread)에 의하여 처리된다. 상기 큐의 요구들은 일반적으로 선입선출(first-in, first-out) 방식으로 처리된다. 그러나, 선택된 요구들을 보류된 것으로 표시할 수 있으나, 모든 새로운 요구들은 보류되어야 한다(블록 58 참조). 이렇게 함으로써, 사용자는, 접속할 수 있을지라도 이러한 요구들에 관한 처리를 이후로 연기하여야 한다는 것을 지시할 수 있게 된다. 예를 들어, 어떤 요구들은 무선 링크에서 처리하기에는 지나치게 비쌀 수 있으며, 따라서 사용자는 그들에 대한 처리를 LAN 또는 전화 접속이 가능할 때까지 연기하고 싶어할 수 있다. 보류 속성(hold attribute)은 또한, 사용자가 처음 시작할 때 잔류하고 있는 큐에 저장된 임의의 미해결인 요구에 적용될 수 있다. 이렇게 함으로써, 저렴한 링크로부터 잠재적으로 훨씬 더 비싼 무선 링크로 전환함에 따른 놀라움을 피할 수 있다.
도 7에 도시된 바와 같이, 큐에 저장된 요구를 처리하는 첫 번째 단계는, 그 요구의 서버로의 억세스를 가진 제 2 컴퓨터로의 접속을 획득하는 것이다(블록 64). 요구를 처음 수신할 때에는 접속을 획득하기 위한 시도를 하고, 만약 접속이 확립되지 않았다면(블록 66), 큐 프로세서(queue processor)나 다른 활동에 의존하여 접속이 확립될 때까지 계속하여 시도한다(블록 70 및 블록 64). 접속 시도간의 지연을 제어하기 위하여 지수적 백오프 프로시져(exponential backoff procedure)를 사용한다(블록 68). 그리하여, 시도 횟수가 증가함에 따라 접속하기 위한 시도간의 시간도 증가한다. 통신 고장(communication failure)이 장기적일 경우 네트워크에 가해질 부담 없이 그것이 일시적일 때에, 이러한 백오프 프로시져는 응답성을 제공한다.
일단 접속이 확립되면, 상기 브라우저로부터 원래 저장되어 상기 요구 큐에 저장된 정보는 상기 요구를 재구성하는 데에 사용되며, 상기 요구는 상기 제 2 컴퓨터로 송신된다(블록 72). 이 시점에서, 상기 요구는 마치 그것이 브라우저로부터 직접 온 것처럼 서버에 나타난다. 만약 상기 요구가 상기 무선 링크의 고장으로 인하여 실패하게 되면(블록 74), 이후에 다음 시도를 하게 된다. 재시도된 요구는 일시적인 통신 고장을 투명하게 마스크한다. 다른 타입의 고장도 또한 이후에 사용자에게 회신되기 위하여 기록될 수 있다.
도 8은 이전에 큐에 저장된 요구에 대한 응답이 수신되었을 때, 상기 클라이언트측 인터셉트 모듈의 동작을 도시한 도면이다. 도 8에 도시된 바와 같이, 상기 서버로부터 응답을 수신한다(블록 80). 그러나, 그래픽, 애플릿(applet) 및 기타의 삽입물(embed) 등을 사용하는 것은 이제 웹 페이지에서는 거의 보편적인 것이다. 만약 사용자가 이 정보를 보고자하였다면, 회신된 페이지는 삽입물에 대하여 분석된다(블록 82). 그 다음에, 각 삽입물을 리트리브하고(블록 84), 상기 원래의 응답과 함께 캐시에 저장한다(블록 86). 상기 응답은 상기 요구와 연관되며, 상기 응답과 함께 회신된 모든 스테이터스 정보는 상기 요구와 연관된다(블록 88). 이 시점에서, 상기 요구가 완료되고, 사용자는 그것을 활용할 수 있다는 통지를 받을 수 있게 된다(블록 90). 서버측 인터셉트의 경우에는, 이 통지는 사용자가 재접속할 때까지 연기될 수 있다.
본 발명에 의하면, 투명한 HTTP 프록시가 제공되기 때문에, 그것은 임의의 브라우저와 작업할 수 있다. 백그라운드 처리를 위하여 큐에 요구를 저장하는 것은 브라우저가 기대하는 모델과 정합되지 않으며, 따라서 상기 브라우저와 사용자가 계속할 수 있도록 HTML 또는 HTTP 코드를 통한 잠정 응답이 상기 브라우저로 회신된다(도 5의 블록 262와 도 7의 블록 55를 참조). 이와 유사하게, 브라우저의 독립성을 유지하기 위한 스테이터스를 기록하기 위하여, 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 페이지와 같이 다루어질 수 있고, 채워진 양식에 해당하는 요구 큐의 엔트리를 생성하기 위하여 도 5 또는 도 7에 도시된 동작이 수행될 수 있다. 보통의 HTML 페이지와 마찬가지로, 사용자는 URL을 사용하여 캐시에 저장된 HTML 양식을 획득할 수 있다. 사용자는 양식을 채우고, 실행 버튼중의 하나를 사용하여 그것을 제출한다. 양식을 제출할 때, 시발된 양식 URL과 함께 명칭/값 쌍이 저장되고 큐로 옮겨진다. 만약 사용자가 동일한 URL 양식을 다시 요구하여 새로운 결과를 제출한다면, 그 새로운 제출은 이전의 제출과는 별개로 유지된다. 접속이 활용가능하게 되었을 때 자동으로 제출하기 위하여, 모든 제출은 큐에서 개별적인 엔트리로서 계수된다. 이러한 엔트리는 사용자에 의하여 삭제될 때까지 저장된다.
도 9는 본 발명에 의한 양식의 재편집 프로세스를 도시한 흐름도이다. 이 재편집에서는 도 7에 도시된 큐의 양식을 이용한다. 도시된 바와 같이, 큐에서 활용가능한 양식의 목록이 브라우저에 제공되고(블록 100), 큐 엔트리를 선택하는 사용자 입력을 획득한다(블록 102). 하이퍼링크를 사용하여 억세스될 수 있는 큐의 엔트리를 디스플레이하기 위하여 사용자에게 HTML 페이지를 제시할 수 있다.
사용자의 입력에 기초하여, 상기 큐에 저장된 요구를 작성하는 데에 사용된 양식의 URL에 해당하는 양식을 로컬 캐시로부터 획득한다(블록 104). 기초 양식은 양식의 시발점을 지시하는 이전에 게재된 데이터에 기초하여 리트리브될 수 있다. 빈 양식(blank form)이 먼저 서버로부터 인출될 때, 상기 클라이언트측 인터셉트는 상기 페이지를 상기 브라우저로 회신하기 전에 숨겨진 값을 상기 HTML에 포함시킨다. 상기 숨겨진 정보는 시발된 URL과 페이지내의 양식 번호 모두를 포함한다. 상기 양식을 재편집하기 위하여는, 요구와 그 요구를 작성한 양식을 연관시키기 위하여 상기 요구와 함께 요구 큐에 저장된 상기 양식의 URL을 포함하는 숨겨진 값을 사용하여 상기 빈 양식을 리트리브한다.
상기 요구의 명칭/값 쌍이 정합되는가에 관하여 상기 양식과 상기 큐에 저장된 요구를 스캔한다(블록 106). 정합되는 것이 발견되면, 디폴트인 선택 또는 입력 값은 사용자의 제출을 반영하기 위하여 변경된다(블록 108). 다수의 HTML 양식을 포함하는 웹 페이지는 서로 다른 부양식(subform)에 동일한 필드명을 사용할 수 있으므로, 특별히 주의하여야 한다. 따라서, 부양식들에는 그들을 추적할 고유한 식별자를 할당한다. 그리하여, 원래의 입력 양식과 데이터를 복원한다. 만약 요구에 대한 응답을 이미 수신하였다면(블록 110), 그 다음에는, 선택사양으로서, 제출 버튼은 상기 응답으로의 링크로 대체되어 사용자가 그 제출의 결과를 볼 수 있게 한다(블록 112). 그렇지 않으면, 상기 복원된 요구를 사용자가 편집할 수 있도록 상기 브라우저로 제공한다(블록 114). 만약 다시 제출된 기존의 큐 엔트리가 새로운 데이터에 의하여 덮여 씌어졌거나 또는, 선택사양으로서, 사용자가 그것을 선택하였다면, 상기 큐의 새로운 엔트리를 제공한다. 이러한 특색에 의하여, 사용자는 단지 사소한 추가 입력만으로 유사한 데이터를 가진 추가적인 요구를 생성하기 위한 템플릿으로서 채워진 양식을 사용할 수 있게 된다.
상기한 바와 같이, 만약 클라이언트가 요구를 수정하였다면, 상기 수정은 관리 기능의 일부로서 상기 서버측 인터셉트에 제공된다. 또한, 도 9의 교정 동작은 클라이언트측에서 수행되는 것이 바람직하지만, 이러한 프로시져등은 통신 링크의 서버측에서 구현될 수도 있다.
도면과 상세한 설명에서 본 발명의 전형적인 바람직한 실시예를 개시하며 특정의 용어를 채용하였으나, 그것들은 일반적이고 기술적인 의미로만 사용되었을 뿐이며 한정의 목적을 가진 것은 아니며, 본 발명의 범위는 이하의 특허청구범위에 의하여 결정된다.
본 발명에 의하면, 약한 접속 환경 또는 단선 환경에서 브라우저 통신의 동기적 성질에 의한 영향을 감소시킬 수 있으며, 브라우저/서버 통신의 응답성(responsiveness)이 저하되는 원격 또는 이동 환경에서의 브라우저의 한계를 극복할 수 있다. 또한, 본 발명에 의하면, 기존의 브라우저를 이동 환경에서 사용할 수 있도록 접속 스테이터스(connection status)를 브라우저에 투명하게 할 수 있다.

Claims (45)

  1. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 방법에 있어서,
    상기 제 2 컴퓨터의 영구적 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하는 단계;
    상기 클라이언트 애플리케이션(client application)으로부터의 요구에 응답하여 상기 웹 브라우저에 잠정 응답(interim response)을 제공하는 단계;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하는 단계;
    상기 서버 애플리케이션으로부터의 응답을 수신하는 단계; 및
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하는 단계
    를 포함하는 통신 방법.
  2. 제 1 항에 있어서,
    상기 브라우저로부터 수신된 요구가 지연된 처리 요구인지에 관하여 판단하는 단계를 더 포함하며,
    만약 상기 판단하는 단계에서 상기 수신된 요구가 지연된 처리 요구인 것으로 판단되었다면, 상기 영구적 요구 큐에 저장하는 단계 및 상기 잠정 응답을 제공하는 단계가 수행되는
    통신 방법.
  3. 제 1 항에 있어서,
    상기 잠정 응답을 제공하는 단계는 상기 원격/이동 데이터 프로세서를 상기 제 2 컴퓨터로부터 단선시키는 단계 이전에 수행되며,
    상기 수신된 응답을 상기 웹 브라우저에 제공하는 단계는 상기 원격/이동 데이터 프로세서를 상기 제 2 컴퓨터에 재접속시키는 단계 이후에 수행되는
    통신 방법
  4. 제 3 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하는 단계;
    상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대한 요구를 상기 웹 브라우저로부터 수신하는 단계; 및
    사용자의 입력에 기초하여, 상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대하여 연관된 응답을 상기 웹 브라우저에 제공하는 단계
    를 더 포함하는 통신 방법.
  5. 제 3 항에 있어서,
    상기 제 2 컴퓨터에 의하여 수신중인 응답에 이어 상기 수신된 응답의 활용가능성에 관하여 사용자에게 통지하는 단계; 및
    만약 사용자가 상기 응답을 요구하면, 상기 응답을 상기 웹 브라우저에 제공하는 단계
    를 더 포함하는 통신 방법.
  6. 제 3 항에 있어서,
    상기 영구적 요구 큐에 저장하는 단계는 사용자 식별자와 연관된 영구적 요구 큐를 설정하는 단계 이후에 수행되며,
    상기 원격/이동 데이터 프로세서를 재접속시키는 단계는,
    상기 원격/이동 데이터 처리 시스템을 상기 제 2 컴퓨터에 접속시키는 단계; 및
    상기 원격/이동 데이터 처리 시스템으로부터 사용자 식별자를 수신하는 단계
    를 포함하며,
    상기 수신된 응답을 제공하는 단계는
    상기 수신된 사용자 식별자와 연관된 영구적 요구 큐로부터의 요구에 대하여 수신된 응답을 제공하는 단계를 포함하는
    통신 방법.
  7. 제 6 항에 있어서,
    상기 수신된 응답에 적어도 하나의 요구가 삽입되었는지를 판단하기 위하여 상기 수신된 응답을 분석하는 단계;
    상기 삽입된 요구에 의하여 지정된 서버에 상기 수신된 응답에 삽입된 적어도 하나의 요구를 제공하는 단계;
    상기 삽입된 요구에 대한 응답을 수신하는 단계;
    상기 삽입된 요구에 대한 응답을 수신하여 상기 제 2 컴퓨터에 저장하는 단계; 및
    상기 삽입된 요구에 대하여 수신되어 저장된 응답을 상기 영구적 요구 큐에 저장된 요구와 연관시키는 단계
    를 더 포함하며,
    상기 수신된 응답을 상기 웹 브라우저에 제공하는 단계는,
    상기 수신되어 저장된 응답과 상기 삽입된 요구에 대하여 저장된 응답을 상기 웹 브라우저에 제공하는 단계
    를 포함하는
    통신 방법.
  8. 제 6 항에 있어서,
    상기 요구에 대한 응답을 상기 제 2 컴퓨터에 저장하는 단계; 및
    상기 사용자 식별자와 연관된 영구적 요구 큐에 저장된 요구와 상기 저장된 응답을 연관시키는 단계
    를 더 포함하는 통신 방법.
  9. 제 8 항에 있어서,
    상기 영구적 요구 큐를 설정하는 단계는,
    다수의 영구적 요구 큐 - 상기 각 영구적 요구 큐는 사용자 식별자와 연관됨 - 를 설정하는 단계
    를 포함하며;
    상기 영구적 요구 큐에 저장하는 단계는,
    웹 브라우저의 사용자로부터의 요구를 그 사용자의 사용자 식별자와 연관된 상기 영구적 요구 큐의 하나에 저장할 수 있도록, 다수의 웹 브라우저로부터의 요구들을 상기 다수의 영구적 요구 큐에 저장하는 단계
    를 포함하며;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하는 단계는,
    상기 다수의 요구들을 연관된 웹 서버에 제공하는 단계
    를 포함하며;
    상기 서버 애플리케이션으로부터의 응답을 수신하는 단계는,
    상기 연관된 웹 서버로부터 다수의 응답을 수신하는 단계
    를 포함하며;
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하는 단계는,
    요구에 대한 응답이 그 요구를 수신한 웹 브라우저에 제공되도록, 상기 수신된 다수의 응답을 상기 다수의 웹 브라우저에 제공하는 단계
    를 포함하는 통신 방법.
  10. 제 1 항에 있어서,
    서버로부터의 다수의 응답을 상기 영구적 요구 큐의 하나의 엔트리와 연관시키는 단계; 및
    상기 영구적 요구 큐의 하나의 엔트리에 연관된 다수의 응답을 상기 원격/이동 데이터 처리 시스템에 제공하는 단계
    를 더 포함하는 통신 방법.
  11. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 방법에 있어서,
    상기 제 2 컴퓨터의 영구적 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하는 단계;
    클라이언트 식별자(client identification)를 상기 저장된 요구와 연관시키는 단계;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하는 단계;
    상기 서버 애플리케이션으로부터의 응답을 수신하는 단계;
    상기 서버로부터 수신된 응답을 상기 제 2 컴퓨터에 존재하는 서버측 캐시에 저장하는 단계;
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관시키는 단계; 및
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하는 단계
    를 포함하는 통신 방법.
  12. 제 11 항에 있어서,
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하는 단계는,
    다음 번 접속중에 상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하는 단계
    를 포함하는 통신 방법.
  13. 제 11 항에 있어서,
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하는 단계 이전에, 상기 요구에 대한 수정을 수신하는 단계; 및
    상기 저장된 요구를 상기 수정된 요구로 대체하기 위하여 상기 요구 큐에 저장된 요구를 수정하는 단계
    를 더 포함하는 통신 방법.
  14. 제 11 항에 있어서,
    상기 브라우저로부터 수신된 요구가 지연된 처리 요구인지에 관하여 판단하는 단계를 더 포함하며,
    만약 상기 판단하는 단계에서 상기 요구가 지연된 처리 요구인 것으로 판단되었다면, 상기 영구적 캐시에 저장하는 단계가 수행되는
    통신 방법.
  15. 제 11 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하는 단계;
    상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대한 요구를 상기 웹 브라우저로부터 수신하는 단계
    를 더 포함하며,
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하는 단계는,
    사용자의 입력에 기초하여, 상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대하여 연관되어 저장된 응답을 상기 웹 브라우저에 제공하는 단계
    를 포함하는
    통신 방법.
  16. 제 11 항에 있어서,
    상기 제 2 컴퓨터에 의하여 수신중인 응답에 이어 상기 수신되어 저장된 응답의 활용가능성에 관하여 사용자에게 통지하는 단계
    를 더 포함하며,
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하는 단계는,
    만약 사용자가 상기 수신된 응답을 요구하면, 상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하는 단계
    를 포함하는
    통신 방법.
  17. 제 11 항에 있어서,
    상기 수신된 응답에 적어도 하나의 요구가 삽입되었는지를 판단하기 위하여 상기 수신된 응답을 분석하는 단계;
    상기 삽입된 요구에 의하여 지정된 서버에 상기 수신된 응답에 삽입된 적어도 하나의 요구를 제공하는 단계;
    상기 삽입된 요구에 대한 응답을 수신하는 단계;
    상기 삽입된 요구에 대한 응답을 수신하여 상기 제 2 컴퓨터에 존재하는 캐시에 저장하는 단계; 및
    상기 삽입된 요구에 대하여 수신되어 저장된 응답을 상기 영구적 요구 큐에 저장된 요구와 연관시키는 단계
    를 더 포함하며,
    상기 수신된 응답을 상기 웹 브라우저에 제공하는 단계는, 상기 수신되어 저장된 응답과 상기 삽입된 요구에 대하여 저장된 응답을 상기 웹 브라우저에 제공하는 단계를 포함하는
    통신 방법.
  18. 제 11 항에 있어서,
    상기 영구적 요구 큐에 저장하는 단계는,
    웹 브라우저의 사용자로부터의 요구를 상기 저장된 요구와 연관된 클라이언트 식별자와 연관된 상기 영구적 요구 큐의 하나에 저장할 수 있도록, 다수의 웹 브라우저로부터의 요구들을 상기 다수의 영구적 요구 큐에 저장하는 단계
    를 포함하며;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하는 단계는,
    상기 다수의 요구들을 연관된 웹 서버에 제공하는 단계
    를 포함하며;
    상기 서버 애플리케이션으로부터의 응답을 수신하는 단계는,
    상기 연관된 웹 서버로부터 다수의 응답을 수신하는 단계
    를 포함하며;
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하는 단계는,
    요구에 대한 응답이 상기 저장된 요구와 연관된 상기 클라이언트 식별자에 해당하는 웹 브라우저에 제공되도록, 상기 수신된 다수의 응답을 상기 다수의 웹 브라우저에 제공하는 단계
    를 포함하는 통신 방법.
  19. 제 11 항에 있어서,
    서버로부터의 다수의 응답을 상기 영구적 요구 큐의 하나의 엔트리와 연관시키는 단계; 및
    상기 영구적 요구 큐의 하나의 엔트리에 연관된 다수의 응답을 상기 원격/이동 데이터 처리 시스템에 제공하는 단계
    를 더 포함하는 통신 방법.
  20. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 시스템에 있어서,
    상기 제 2 컴퓨터의 영구적 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하기 위한 수단;
    상기 클라이언트 애플리케이션(client application)으로부터의 요구에 응답하여 상기 웹 브라우저에 잠정 응답(interim response)을 제공하기 위한 수단;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 수단;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 수단; 및
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하기 위한 수단
    을 포함하는 통신 시스템.
  21. 제 20 항에 있어서,
    상기 브라우저로부터 수신된 요구가 지연된 처리 요구인지에 관하여 판단하기 위한 수단을 더 포함하며,
    상기 영구적 요구 큐에 저장하기 위한 수단 및 상기 잠정 응답을 제공하기 위한 수단이 상기 판단하기 위한 수단과 동작가능하게 연관된
    통신 시스템.
  22. 제 20 항에 있어서,
    상기 원격/이동 데이터 프로세서를 상기 제 2 컴퓨터로부터 단선시키기 위한 수단; 및
    상기 원격/이동 데이터 프로세서를 상기 제 2 컴퓨터에 재접속시키기 위한 수단
    을 더 포함하는 통신 시스템.
  23. 제 22 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하기 위한 수단;
    상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대한 요구를 상기 웹 브라우저로부터 수신하기 위한 수단; 및
    사용자의 입력에 기초하여, 상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대하여 연관된 응답을 상기 웹 브라우저에 제공하기 위한 수단
    을 더 포함하는 통신 시스템.
  24. 제 22 항에 있어서,
    상기 제 2 컴퓨터에 의하여 수신중인 응답에 이어 상기 수신된 응답의 활용가능성에 관하여 사용자에게 통지하기 위한 수단; 및
    만약 사용자가 상기 응답을 요구하면, 상기 응답을 상기 웹 브라우저에 제공하기 위한 수단
    을 더 포함하는 통신 시스템.
  25. 제 22 항에 있어서,
    사용자 식별자와 연관된 영구적 요구 큐를 설정하기 위한 수단
    을 더 포함하며;
    상기 원격/이동 데이터 프로세서를 재접속시키기 위한 수단은
    상기 원격/이동 데이터 처리 시스템을 상기 제 2 컴퓨터에 접속시키기 위한 수단; 및
    상기 원격/이동 데이터 처리 시스템으로부터 사용자 식별자를 수신하기 위한 수단
    을 포함하며;
    상기 수신된 응답을 제공하기 위한 수단은
    상기 수신된 사용자 식별자와 연관된 영구적 요구 큐로부터의 요구에 대하여 수신된 응답을 제공하기 위한 수단
    을 포함하는
    통신 시스템.
  26. 제 25 항에 있어서,
    상기 수신된 응답에 적어도 하나의 요구가 삽입되었는지를 판단하기 위하여 상기 수신된 응답을 분석하기 위한 수단;
    상기 삽입된 요구에 의하여 지정된 서버에 상기 수신된 응답에 삽입된 적어도 하나의 요구를 제공하기 위한 수단;
    상기 삽입된 요구에 대한 응답을 수신하기 위한 수단;
    상기 삽입된 요구에 대한 응답을 수신하여 상기 제 2 컴퓨터에 저장하기 위한 수단; 및
    상기 삽입된 요구에 대하여 수신되어 저장된 응답을 상기 영구적 요구 큐에 저장된 요구와 연관시키기 위한 수단
    을 더 포함하며,
    상기 수신된 응답을 상기 웹 브라우저에 제공하기 위한 수단은
    상기 수신되어 저장된 응답과 상기 삽입된 요구에 대하여 저장된 응답을 상기 웹 브라우저에 제공하기 위한 수단
    을 포함하는
    통신 시스템.
  27. 제 25 항에 있어서,
    상기 요구에 대한 응답을 상기 제 2 컴퓨터에 저장하기 위한 수단; 및
    상기 사용자 식별자와 연관된 영구적 요구 큐에 저장된 요구와 상기 저장된 응답을 연관시키기 위한 수단
    을 더 포함하는 통신 시스템.
  28. 제 27 항에 있어서,
    상기 영구적 요구 큐를 설정하기 위한 수단은,
    다수의 영구적 요구 큐 - 상기 각 영구적 요구 큐는 사용자 식별자와 연관됨 - 를 설정하기 위한 수단
    을 포함하며;
    상기 영구적 요구 큐에 저장하기 위한 수단은,
    웹 브라우저의 사용자로부터의 요구를 그 사용자의 사용자 식별자와 연관된 상기 영구적 요구 큐의 하나에 저장할 수 있도록, 다수의 웹 브라우저로부터의 요구들을 상기 다수의 영구적 요구 큐에 저장하기 위한 수단
    을 포함하며;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 수단은,
    상기 다수의 요구들을 연관된 웹 서버에 제공하기 위한 수단
    을 포함하며;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 수단은,
    상기 연관된 웹 서버로부터 다수의 응답을 수신하기 위한 수단
    을 포함하며;
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하기 위한 수단은,
    요구에 대한 응답이 그 요구를 수신한 웹 브라우저에 제공되도록, 상기 수신된 다수의 응답을 상기 다수의 웹 브라우저에 제공하기 위한 수단
    을 포함하는
    통신 시스템.
  29. 제 20 항에 있어서,
    서버로부터의 다수의 응답을 상기 영구적 요구 큐의 하나의 엔트리와 연관시키기 위한 수단; 및
    상기 영구적 요구 큐의 하나의 엔트리에 연관된 다수의 응답을 상기 원격/이동 데이터 처리 시스템에 제공하기 위한 수단
    을 더 포함하는 통신 시스템.
  30. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 시스템에 있어서,
    상기 제 2 컴퓨터의 영구적 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하기 위한 수단;
    클라이언트 식별자(client identification)를 상기 저장된 요구와 연관시키기 위한 수단;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 수단;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 수단;
    상기 서버로부터 수신된 응답을 상기 제 2 컴퓨터에 존재하는 서버측 캐시에 저장하기 위한 수단;
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관시키기 위한 수단; 및
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하기 위한 수단
    을 포함하는 통신 시스템.
  31. 제 30 항에 있어서,
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하기 위한 수단은,
    다음 번 접속중에 상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하기 위한 수단
    을 포함하는 통신 시스템.
  32. 제 30 항에 있어서,
    상기 영구적 요구 큐에 저장하기 위한 수단은,
    웹 브라우저의 사용자로부터의 요구를 상기 저장된 요구와 연관된 클라이언트 식별자와 연관된 상기 영구적 요구 큐의 하나에 저장할 수 있도록, 다수의 웹 브라우저로부터의 요구들을 상기 다수의 영구적 요구 큐에 저장하기 위한 수단
    을 포함하며;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 수단은,
    상기 다수의 요구들을 연관된 웹 서버에 제공하기 위한 수단
    을 포함하며;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 수단은,
    상기 연관된 웹 서버로부터 다수의 응답을 수신하기 위한 수단
    을 포함하며;
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하기 위한 수단은,
    요구에 대한 응답이 상기 저장된 요구와 연관된 상기 클라이언트 식별자에 해당하는 웹 브라우저에 제공되도록, 상기 수신된 다수의 응답을 상기 다수의 웹 브라우저에 제공하기 위한 수단
    을 포함하는 통신 시스템.
  33. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 컴퓨터 프로그램 제품에 있어서,
    상기 제 2 컴퓨터의 영구적 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 클라이언트 애플리케이션(client application)으로부터의 요구에 응답하여 상기 웹 브라우저에 잠정 응답(interim response)을 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  34. 제 33 항에 있어서,
    상기 브라우저로부터 수신된 요구가 지연된 처리 요구인지에 관하여 판단하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단을 더 포함하며,
    상기 영구적 요구 큐에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단 및 상기 잠정 응답을 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은 상기 판단하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단과 동작가능하게 연관된
    컴퓨터 프로그램 제품.
  35. 제 33 항에 있어서,
    상기 원격/이동 데이터 프로세서를 상기 제 2 컴퓨터로부터 단선시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 원격/이동 데이터 프로세서를 상기 제 2 컴퓨터에 재접속시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  36. 제 35 항에 있어서,
    사용자에게 제시하기 위하여 저장된 요구의 목록을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대한 요구를 상기 웹 브라우저로부터 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    사용자의 입력에 기초하여, 상기 저장된 요구의 목록중에서 선택된 하나의 요구에 대하여 연관된 응답을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  37. 제 35 항에 있어서,
    상기 제 2 컴퓨터에 의하여 수신중인 응답에 이어 상기 수신된 응답의 활용가능성에 관하여 사용자에게 통지하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    만약 사용자가 상기 응답을 요구하면, 상기 응답을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  38. 제 35 항에 있어서,
    사용자 식별자와 연관된 영구적 요구 큐를 설정하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하며;
    상기 원격/이동 데이터 프로세서를 재접속시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은
    상기 원격/이동 데이터 처리 시스템을 상기 제 2 컴퓨터에 접속시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 원격/이동 데이터 처리 시스템으로부터 사용자 식별자를 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 수신된 응답을 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은
    상기 수신된 사용자 식별자와 연관된 영구적 요구 큐로부터의 요구에 대하여 수신된 응답을 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는
    컴퓨터 프로그램 제품.
  39. 제 38 항에 있어서,
    상기 수신된 응답에 적어도 하나의 요구가 삽입되었는지를 판단하기 위하여 상기 수신된 응답을 분석하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 삽입된 요구에 의하여 지정된 서버에 상기 수신된 응답에 삽입된 적어도 하나의 요구를 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 삽입된 요구에 대한 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 삽입된 요구에 대한 응답을 수신하여 상기 제 2 컴퓨터에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 삽입된 요구에 대하여 수신되어 저장된 응답을 상기 영구적 요구 큐에 저장된 요구와 연관시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하며,
    상기 수신된 응답을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은
    상기 수신되어 저장된 응답과 상기 삽입된 요구에 대하여 저장된 응답을 상기 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는
    컴퓨터 프로그램 제품.
  40. 제 38 항에 있어서,
    상기 요구에 대한 응답을 상기 제 2 컴퓨터에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 사용자 식별자와 연관된 영구적 요구 큐에 저장된 요구와 상기 저장된 응답을 연관시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  41. 제 40 항에 있어서,
    상기 영구적 요구 큐를 설정하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    다수의 영구적 요구 큐 - 상기 각 영구적 요구 큐는 사용자 식별자와 연관됨 - 를 설정하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 영구적 요구 큐에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    웹 브라우저의 사용자로부터의 요구를 그 사용자의 사용자 식별자와 연관된 상기 영구적 요구 큐의 하나에 저장할 수 있도록, 다수의 웹 브라우저로부터의 요구들을 상기 다수의 영구적 요구 큐에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    상기 다수의 요구들을 연관된 웹 서버에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    상기 연관된 웹 서버로부터 다수의 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    요구에 대한 응답이 그 요구를 수신한 웹 브라우저에 제공되도록, 상기 수신된 다수의 응답을 상기 다수의 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는
    컴퓨터 프로그램 제품.
  42. 제 33 항에 있어서,
    서버로부터의 다수의 응답을 상기 영구적 요구 큐의 하나의 엔트리와 연관시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 영구적 요구 큐의 하나의 엔트리에 연관된 다수의 응답을 상기 원격/이동 데이터 처리 시스템에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 더 포함하는 컴퓨터 프로그램 제품.
  43. 제 2 컴퓨터에 일시적으로(temporarily) 또한 간헐적으로(intermittently) 접속된 원격/이동 처리 시스템(remote/mobile processing system)에서 실행중인 웹 브라우저(web browser)와 통신하기 위한 시스템에 있어서,
    상기 제 2 컴퓨터의 영구적 요구 큐(request queue)에, 상기 웹 브라우저로부터 상기 제 2 컴퓨터에 억세스할 수 있는 서버 애플리케이션(server application)으로의 요구를 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    클라이언트 식별자(client identification)를 상기 저장된 요구와 연관시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 서버로부터 수신된 응답을 상기 제 2 컴퓨터에 존재하는 서버측 캐시에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단;
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관시키기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단; 및
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    를 포함하는 컴퓨터 프로그램 제품.
  44. 제 43 항에 있어서,
    상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    다음 번 접속중에 상기 수신되어 저장된 응답을 상기 저장된 요구에 연관된 상기 클라이언트 식별자와 연관된 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
  45. 제 43 항에 있어서,
    상기 영구적 요구 큐에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    웹 브라우저의 사용자로부터의 요구를 상기 저장된 요구와 연관된 클라이언트 식별자와 연관된 상기 영구적 요구 큐의 하나에 저장할 수 있도록, 다수의 웹 브라우저로부터의 요구들을 상기 다수의 영구적 요구 큐에 저장하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 저장된 요구를 상기 서버 애플리케이션에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    상기 다수의 요구들을 연관된 웹 서버에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 서버 애플리케이션으로부터의 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    상기 연관된 웹 서버로부터 다수의 응답을 수신하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하며;
    상기 수신된 응답을 상기 원격/이동 처리 시스템에서 실행중인 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단은,
    요구에 대한 응답이 상기 저장된 요구와 연관된 상기 클라이언트 식별자에 해당하는 웹 브라우저에 제공되도록, 상기 수신된 다수의 응답을 상기 다수의 웹 브라우저에 제공하기 위한 컴퓨터로 판독 가능한 프로그램 코드 수단
    을 포함하는 컴퓨터 프로그램 제품.
KR1019980031580A 1997-08-28 1998-08-03 서버측의비동기적양식관리방법및그시스템 KR100318781B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/919,913 1997-08-28
US08/919,913 US6070184A (en) 1997-08-28 1997-08-28 Server-side asynchronous form management
US08/919,913 1997-08-28

Publications (2)

Publication Number Publication Date
KR19990023318A true KR19990023318A (ko) 1999-03-25
KR100318781B1 KR100318781B1 (ko) 2002-02-19

Family

ID=25442855

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980031580A KR100318781B1 (ko) 1997-08-28 1998-08-03 서버측의비동기적양식관리방법및그시스템

Country Status (7)

Country Link
US (1) US6070184A (ko)
JP (1) JP4041217B2 (ko)
KR (1) KR100318781B1 (ko)
CN (1) CN1113504C (ko)
GB (1) GB2330503B (ko)
SG (1) SG77192A1 (ko)
TW (1) TW386197B (ko)

Families Citing this family (200)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003587B1 (en) 1996-07-18 2006-02-21 Computer Associates Think, Inc. Method and apparatus for maintaining data integrity across distributed computer systems
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
US7342581B2 (en) 1996-07-18 2008-03-11 Computer Associates Think, Inc. Method and apparatus for displaying 3-D state indicators
US7266526B1 (en) * 1996-11-27 2007-09-04 Diebold, Incorporated Automated banking machine system with multiple browsers
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
US20030023721A1 (en) * 1997-07-15 2003-01-30 Computer Associates Think, Inc. Method and apparatus for generating context-descriptive messages
US7315893B2 (en) * 1997-07-15 2008-01-01 Computer Associates Think, Inc. Method and apparatus for filtering messages based on context
US20060193278A1 (en) * 1997-10-15 2006-08-31 Wolfgang Theimer Mobile telephone for Internet applications
US6286046B1 (en) * 1997-12-22 2001-09-04 International Business Machines Corporation Method of recording and measuring e-business sessions on the world wide web
JP3561139B2 (ja) * 1998-01-27 2004-09-02 シャープ株式会社 ファイルオブジェクト中継方法、ファイルオブジェクト中継方法のプログラムを記録したコンピュータで読取り可能な記録媒体、およびゲートウェイ計算機
US6735770B1 (en) * 1998-04-27 2004-05-11 Sun Microsystems, Inc. Method and apparatus for high performance access to data in a message store
US20020176009A1 (en) * 1998-05-08 2002-11-28 Johnson Sandra Marie Image processor circuits, systems, and methods
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
US6330561B1 (en) * 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
US6591305B2 (en) * 1998-06-30 2003-07-08 Sun Microsystems, Inc. Method and system for delivering data from a server object to a client object using a non-proprietary data transfer protocol
US6633914B1 (en) * 1998-08-05 2003-10-14 International Business Machines Corporation Systems, methods and computer program products for handling client requests for server application processing using a thread pool
US6704790B1 (en) * 1998-09-16 2004-03-09 Microsoft Corporation Server-side stream switching
US7159005B1 (en) * 1998-10-16 2007-01-02 International Business Machines Corporation Methods, systems and computer program products for restartable multiplexed file transfers
US6453342B1 (en) * 1998-12-03 2002-09-17 International Business Machines Corporation Method and apparatus for selective caching and cleaning of history pages for web browsers
CN1108578C (zh) * 1999-01-28 2003-05-14 国际商业机器公司 为离线客户请求提供响应的方法及装置
US6434596B1 (en) * 1999-01-29 2002-08-13 Sony Corporation Method and system for distributed queues in a multimedia network with proxies
US7080158B1 (en) * 1999-02-09 2006-07-18 Nortel Networks Limited Network caching using resource redirection
IL146180A0 (en) * 1999-04-26 2002-07-25 Computer Ass Think Inc Method and appratus for maintaining data integrity across distributed computer systems
US6510550B1 (en) * 1999-05-12 2003-01-21 Intel Corporation Method and apparatus for providing intermittent connectivity support in a computer application
US6372494B1 (en) * 1999-05-14 2002-04-16 Advanced Tissue Sciences, Inc. Methods of making conditioned cell culture medium compositions
EP1195059B1 (en) 1999-05-28 2004-11-10 Nokia Corporation Interactive services user interface and server
US7100195B1 (en) 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6766298B1 (en) * 1999-09-03 2004-07-20 Cisco Technology, Inc. Application server configured for dynamically generating web pages for voice enabled web applications
GB2371902B (en) 1999-09-10 2004-11-17 Avantgo Inc System, method, and computer program product for interactive interfacing with mobile devices
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
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
US20010047394A1 (en) * 1999-09-10 2001-11-29 Kloba David D. System, method, and computer program product for executing scripts on mobile devices
US20020052781A1 (en) * 1999-09-10 2002-05-02 Avantgo, Inc. Interactive advertisement mechanism on a mobile device
US7305475B2 (en) * 1999-10-12 2007-12-04 Webmd Health System and method for enabling a client application to operate offline from a server
US6950881B1 (en) * 1999-11-02 2005-09-27 Mshift, Inc. System for converting wireless communications for a mobile device
JP2001134519A (ja) * 1999-11-05 2001-05-18 Toshiba Corp クライアント・サーバーシステム及び業務支援システム
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
CA2400438A1 (en) * 2000-02-16 2001-08-23 Bea Systems, Inc. Open market collaboration system for enterprise wide electronic commerce
US6973498B1 (en) * 2000-03-23 2005-12-06 Microsoft Corporation Local queue creation security
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
US6981028B1 (en) * 2000-04-28 2005-12-27 Obongo, Inc. Method and system of implementing recorded data for automating internet interactions
US8175921B1 (en) 2000-05-30 2012-05-08 Nokia Corporation Location aware product placement and advertising
US8540574B1 (en) 2000-05-30 2013-09-24 Core Wireless Licensing S.A.R.L. Navigation aware news service
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US6996599B1 (en) * 2000-06-21 2006-02-07 Microsoft Corporation System and method providing multi-tier applications architecture
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
GB2364483A (en) * 2000-06-30 2002-01-23 Nokia Oy Ab Accessing more than one item of information from a remote server
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
ES2414650T3 (es) * 2000-08-23 2013-07-22 Gracenote, Inc. Procedimiento y sistema para la obtención de información
TWI244617B (en) * 2000-09-16 2005-12-01 Ibm A client/server-based data processing system for performing transactions between clients and a server and a method of performing the transactions
US7668740B1 (en) 2000-09-22 2010-02-23 Ita Software, Inc. Method, system, and computer program product for interfacing with information sources
US6999992B1 (en) 2000-10-04 2006-02-14 Microsoft Corporation Efficiently sending event notifications over a computer network
US7330876B1 (en) * 2000-10-13 2008-02-12 Aol Llc, A Delaware Limited Liability Company Method and system of automating internet interactions
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
US20020103974A1 (en) * 2000-11-29 2002-08-01 Giacomini Peter Joseph Method and apparatus for economical cache population
IL156521A0 (en) * 2000-12-20 2004-01-04 Ibm Method and system for remote software distribution and installation
US20020083145A1 (en) * 2000-12-22 2002-06-27 Nortel Networks Limited Method and system for online/offline services
JP4307747B2 (ja) * 2001-01-25 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 接続受付システム、受付サーバ、クライアント端末、接続受付管理方法、記憶媒体、コンピュータプログラム
US7734725B2 (en) * 2001-03-30 2010-06-08 International Business Machines Corporation Method and apparatus for server side queuing to control page presentation on web enabled device
US6895005B1 (en) 2001-04-23 2005-05-17 Sprint Spectrum L.P. Business logic server for facilitating the transmission of a data download to a mobile wireless unit
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
US6985746B2 (en) * 2001-04-30 2006-01-10 Ipr Licensing, Inc. Wireless communication system having mobility-based content delivery
US7194551B1 (en) * 2001-04-30 2007-03-20 Sprint Spectrum L.P. System and method for downloading data to a mobile wireless unit using over-the-air parameter administration services
US8095597B2 (en) 2001-05-01 2012-01-10 Aol Inc. Method and system of automating data capture from electronic correspondence
JP4508471B2 (ja) * 2001-05-25 2010-07-21 キヤノン株式会社 プリントシステム及び情報処理装置
US7272232B1 (en) * 2001-05-30 2007-09-18 Palmsource, Inc. System and method for prioritizing and balancing simultaneous audio outputs in a handheld device
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
US6754884B1 (en) 2001-07-02 2004-06-22 Bea Systems, Inc. Programming language extensions for processing XML objects and related applications
US7437710B2 (en) * 2001-07-02 2008-10-14 Bea Systems, Inc. Annotation based development platform for stateful web services
US6918107B2 (en) * 2001-07-02 2005-07-12 Bea Systems, Inc. Programming language extensions for processing data representation language objects and related applications
US8112529B2 (en) 2001-08-20 2012-02-07 Masterobjects, Inc. System and method for asynchronous client server session communication
US7962565B2 (en) * 2001-09-29 2011-06-14 Siebel Systems, Inc. Method, apparatus and system for a mobile web client
AU2002334954B2 (en) * 2001-10-11 2008-07-31 Omniture, Inc. System, method, and computer program product for processing and visualization of information
US7080092B2 (en) 2001-10-18 2006-07-18 Bea Systems, Inc. Application view component for system integration
US7552222B2 (en) * 2001-10-18 2009-06-23 Bea Systems, Inc. Single system user identity
US6859810B2 (en) * 2001-12-10 2005-02-22 Bea Systems, Inc. Declarative specification and engine for non-isomorphic data mapping
US20030145048A1 (en) * 2002-01-18 2003-07-31 Bea Systems, Inc. System and method for HTTP request preprocessing for servlets and application servers
US7516447B2 (en) 2002-02-22 2009-04-07 Bea Systems, Inc. Methods and apparatus for building, customizing and using software abstractions of external entities
AU2002322356B2 (en) * 2002-02-22 2007-12-13 Oracle International Corporation Web service development platform for asynchronous web services
US7257645B2 (en) * 2002-05-01 2007-08-14 Bea Systems, Inc. System and method for storing large messages
US20040078440A1 (en) * 2002-05-01 2004-04-22 Tim Potter High availability event topic
US8135772B2 (en) 2002-05-01 2012-03-13 Oracle International Corporation Single servlets for B2B message routing
US7526519B2 (en) * 2002-05-01 2009-04-28 Bea Systems, Inc. High availability application view deployment
US7424717B2 (en) * 2002-05-01 2008-09-09 Bea Systems, Inc. Systems and methods for business process plug-in development
US7155438B2 (en) * 2002-05-01 2006-12-26 Bea Systems, Inc. High availability for event forwarding
US7493628B2 (en) * 2002-05-02 2009-02-17 Bea Systems, Inc. Shared common connection factory
US7222148B2 (en) 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US7676538B2 (en) 2002-05-02 2010-03-09 Bea Systems, Inc. Systems and methods for application view transactions
US7484224B2 (en) 2002-05-02 2009-01-27 Bae Systems, Inc. Adapter deployment without recycle
US7350184B2 (en) 2002-05-02 2008-03-25 Bea Systems, Inc. System and method for enterprise application interactions
US7627631B2 (en) * 2002-05-02 2009-12-01 Bea Systems, Inc. Systems and methods for collaborative business plug-ins
US8117328B2 (en) 2002-06-25 2012-02-14 Microsoft Corporation System and method for automatically recovering from failed network connections in streaming media scenarios
US6988099B2 (en) * 2002-06-27 2006-01-17 Bea Systems, Inc. Systems and methods for maintaining transactional persistence
US8245128B1 (en) * 2002-07-17 2012-08-14 Oracle International Corporation Intelligent client agent for a hybrid online/offline application
US8010706B1 (en) * 2002-08-05 2011-08-30 Purple Communications, Inc. Method of and system for enabling offline applications
US11336754B1 (en) * 2002-08-06 2022-05-17 Sheng Tai Tsao Method and system for concurrent web based multitasking support
US7418702B2 (en) * 2002-08-06 2008-08-26 Sheng (Ted) Tai Tsao Concurrent web based multi-task support for control management system
CN100411380C (zh) * 2002-08-19 2008-08-13 万达信息股份有限公司 一种网络数据交换中同步与异步间的转换方法
US7650591B2 (en) 2003-01-24 2010-01-19 Bea Systems, Inc. Marshaling and un-marshaling data types in XML and Java
US20040153440A1 (en) * 2003-01-30 2004-08-05 Assaf Halevy Unified management of queries in a multi-platform distributed environment
US7584474B2 (en) * 2003-02-25 2009-09-01 Bea Systems, Inc. Systems and methods for transaction chaining
US20050022164A1 (en) * 2003-02-25 2005-01-27 Bea Systems, Inc. Systems and methods utilizing a workflow definition language
US7293038B2 (en) 2003-02-25 2007-11-06 Bea Systems, Inc. Systems and methods for client-side filtering of subscribed messages
US7774697B2 (en) * 2003-02-25 2010-08-10 Bea Systems, Inc. System and method for structuring distributed applications
US7752599B2 (en) 2003-02-25 2010-07-06 Bea Systems Inc. Systems and methods extending an existing programming language with constructs
US20040230955A1 (en) * 2003-02-26 2004-11-18 Bea Systems, Inc. System for multi-language debugging
US7707564B2 (en) 2003-02-26 2010-04-27 Bea Systems, Inc. Systems and methods for creating network-based software services using source code annotations
US7299454B2 (en) * 2003-02-26 2007-11-20 Bea Systems, Inc. Method for multi-language debugging
US7650276B2 (en) 2003-02-26 2010-01-19 Bea Systems, Inc. System and method for dynamic data binding in distributed applications
US20050108682A1 (en) * 2003-02-26 2005-05-19 Bea Systems, Inc. Systems for type-independent source code editing
US8032860B2 (en) * 2003-02-26 2011-10-04 Oracle International Corporation Methods for type-independent source code editing
US7539985B2 (en) * 2003-02-26 2009-05-26 Bea Systems, Inc. Systems and methods for dynamic component versioning
US7076772B2 (en) * 2003-02-26 2006-07-11 Bea Systems, Inc. System and method for multi-language extensible compiler framework
US20050044173A1 (en) * 2003-02-28 2005-02-24 Olander Daryl B. System and method for implementing business processes in a portal
US7444620B2 (en) 2003-02-28 2008-10-28 Bea Systems, Inc. Systems and methods for a common runtime container framework
US20040225995A1 (en) * 2003-02-28 2004-11-11 Kyle Marvin Reusable software controls
US7636722B2 (en) * 2003-02-28 2009-12-22 Bea Systems, Inc. System and method for describing application extensions in XML
US7650592B2 (en) 2003-03-01 2010-01-19 Bea Systems, Inc. Systems and methods for multi-view debugging environment
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7275216B2 (en) 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US6908058B2 (en) * 2003-03-28 2005-06-21 Suncast Corporation Hose reel cart with elevated crank handle
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7281029B2 (en) * 2003-05-13 2007-10-09 Aol Llc, A Delaware Limited Liability Company Method and system of capturing data for automating internet interactions
JPWO2004102396A1 (ja) 2003-05-14 2006-07-13 富士通株式会社 遅延ストレージ装置および遅延処理方法
JP2004348666A (ja) * 2003-05-26 2004-12-09 Seiko Epson Corp クライアント・サーバシステム、サーバ、および情報処理システム
US20040267962A1 (en) * 2003-06-24 2004-12-30 Nokia Corporation Method and system in wireless data communication network for transferring content to terminal equipment and corresponding terminal equipment, server and browser devices
US7532571B1 (en) * 2003-06-27 2009-05-12 Microsoft Corporation Providing online connectivity across a range of electronic communications systems
US7349968B2 (en) * 2003-07-31 2008-03-25 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
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
US7185238B2 (en) * 2003-09-30 2007-02-27 Sap Ag Data loss prevention
FR2863127A1 (fr) * 2003-12-02 2005-06-03 Canon Kk Procedes et dispositifs pour la delivrance asynchrone de donnees numeriques
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
JP4144882B2 (ja) 2004-05-14 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、情報システム、プロキシ処理方法、及びプログラムと記録媒体
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US20060010173A1 (en) * 2004-06-30 2006-01-12 Kilday Roger W Methods and systems for client-side, on-disk caching
ATE472868T1 (de) * 2004-07-02 2010-07-15 Alcatel Lucent Verfahren zur mehrfachaussendungsdatenübermittlung in einem diskontinuierlichen netz
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US20060015622A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Enabling asynchronous transaction interactions on Web browsers
US20070027991A1 (en) * 2005-07-14 2007-02-01 Mistletoe Technologies, Inc. TCP isolation with semantic processor TCP state machine
US8135803B2 (en) * 2004-08-23 2012-03-13 Ianywhere Solutions, Inc. Method, system, and computer program product for offline advertisement servicing and cycling
JP2006085365A (ja) * 2004-09-15 2006-03-30 Ricoh Co Ltd プロキシ装置、サービス利用装置、プロキシプログラム、サービス利用プログラム、記録媒体及び非同期オペレーション提供方法
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
US20060075336A1 (en) * 2004-09-29 2006-04-06 International Business Machines Corporation Method, system and program product for providing content over a network
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US20060074933A1 (en) * 2004-09-30 2006-04-06 Microsoft Corporation Workflow interaction
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7363742B2 (en) * 2004-11-12 2008-04-29 Taser International, Inc. Systems and methods for electronic weaponry having audio and/or video recording capability
US7712022B2 (en) * 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7509353B2 (en) * 2004-11-16 2009-03-24 Microsoft Corporation Methods and systems for exchanging and rendering forms
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7577749B1 (en) 2004-12-03 2009-08-18 Ux Ltd. Emulation of persistent HTTP connections between network devices
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
CA2596896C (en) * 2005-02-22 2012-09-25 Nextair Corporation Wireless communication device use of application server applications
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US8010515B2 (en) * 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
CN1941771B (zh) * 2005-09-27 2011-09-07 国际商业机器公司 用于面向服务的体系结构应用的Web服务信息管理方法和系统
US7603669B2 (en) * 2005-09-27 2009-10-13 Microsoft Corporation Upgrade and downgrade of data resource components
US7596720B2 (en) * 2005-09-27 2009-09-29 Microsoft Corporation Application health checks
US7676806B2 (en) * 2005-09-27 2010-03-09 Microsoft Corporation Deployment, maintenance and configuration of complex hardware and software systems
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
JP2007272742A (ja) * 2006-03-31 2007-10-18 Ntt Docomo Inc 通信端末及び通信方法
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
JP2008084015A (ja) * 2006-09-27 2008-04-10 Casio Comput Co Ltd ウェブページ閲覧プログラム及び入力フォーム編集装置
US7895332B2 (en) 2006-10-30 2011-02-22 Quest Software, Inc. Identity migration system apparatus and method
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US8200764B2 (en) * 2006-12-19 2012-06-12 International Business Machines Corporation System and method for achieving highly scalable real-time collaboration applications using HTTP
US8055761B2 (en) * 2007-01-31 2011-11-08 International Business Machines Corporation Method and apparatus for providing transparent network connectivity
KR100888478B1 (ko) 2007-03-08 2009-03-12 삼성전자주식회사 액션 처리 방법, 피제어 장치의 제어 방법, 피제어 장치 및제어 포인트
CN101296176B (zh) 2007-04-25 2010-12-22 阿里巴巴集团控股有限公司 一种基于群集的数据处理方法和装置
US20090003387A1 (en) * 2007-06-27 2009-01-01 Microsoft Corporation Synchronization Between Connection Manager and Extension Components
US20090228545A1 (en) * 2008-03-07 2009-09-10 Mendez Jose A Online mobile applications capable of dealing with occasional disconnects
US9122519B1 (en) * 2008-03-12 2015-09-01 Lockheed Martin Corporation Governor for elimination of repetitive requests
CN101296236B (zh) * 2008-06-12 2011-06-08 北京中星微电子有限公司 多用户实时访问多媒体数据的方法、系统及数据客户端
US8949344B2 (en) 2008-09-15 2015-02-03 Microsoft Corporation Asynchronous queued messaging for web applications
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US20110078233A1 (en) * 2009-09-30 2011-03-31 International Business Machines Corporation Apparatus, system, and method for improved performance of real time applications in intermittent connection environments
US8595752B1 (en) * 2011-06-13 2013-11-26 Google Inc. Hybrid application message passing
JP5814284B2 (ja) * 2013-03-22 2015-11-17 ヤフー株式会社 端末装置、表示方法、表示制御プログラム及びサーバ装置
JP6245005B2 (ja) * 2014-03-13 2017-12-13 富士通株式会社 ウェブページ表示システム及びウェブページ表示プログラム
JP6629157B2 (ja) 2016-09-06 2020-01-15 株式会社東芝 システム
US10620996B2 (en) * 2017-04-26 2020-04-14 Servicenow, Inc. Batching asynchronous web requests
CN110912958A (zh) * 2018-09-18 2020-03-24 中国移动通信集团重庆有限公司 Http连接的处理方法、装置、设备和介质
CN111061938A (zh) * 2019-12-17 2020-04-24 深圳前海环融联易信息科技服务有限公司 解决多次触发网络请求的防抖动函数方法、装置、计算机设备及存储介质
CN111565219A (zh) * 2020-04-16 2020-08-21 浙江工业大学 一种模拟真实排队的网络连接池协议的实现方法

Family Cites Families (38)

* 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
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
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
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
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
US5224098A (en) * 1991-07-17 1993-06-29 International Business Machines Corporation Compensation for mismatched transport protocols in a data communications network
DE4131133B4 (de) * 1991-09-19 2005-09-08 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten in Datenverarbeitungsanlagen
US5442633A (en) * 1992-07-08 1995-08-15 International Business Machines Corporation Shortcut network layer routing for mobile hosts
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
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
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
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
US5859971A (en) * 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
US5754774A (en) * 1996-02-15 1998-05-19 International Business Machine Corp. Client/server communication system
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
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

Also Published As

Publication number Publication date
GB2330503B (en) 2002-05-29
JP4041217B2 (ja) 2008-01-30
JPH11120108A (ja) 1999-04-30
GB9817016D0 (en) 1998-09-30
US6070184A (en) 2000-05-30
TW386197B (en) 2000-04-01
KR100318781B1 (ko) 2002-02-19
SG77192A1 (en) 2000-12-19
CN1113504C (zh) 2003-07-02
CN1210409A (zh) 1999-03-10
GB2330503A (en) 1999-04-21

Similar Documents

Publication Publication Date Title
KR100318781B1 (ko) 서버측의비동기적양식관리방법및그시스템
JP4233638B2 (ja) 第2のコンピュータに一時的かつ断続的に接続される第1のコンピュータで実行されているウェブ・ブラウザと第2のコンピュータ内のウェブ・サーバ間で通信する方法、並びにそのシステム及びコンピュータ可読プログラムを記録したコンピュータ可読記録媒体
CA2467656C (en) Servicing requests that are issued in a protocol other than the protocol expected by the service
KR100288490B1 (ko) 상태정보를보존하는컴퓨터화된방법및상태정보보존컴퓨터시스템
JP4634547B2 (ja) リアルタイム情報配信方法
JP3491011B2 (ja) 差分化通信システム
Chang et al. Web browsing in a wireless environment: Disconnected and asynchronous operation in artour web express
EP1811747B1 (en) Method and apparatus for storing and restoring state information of remote user interface
JPH11502047A (ja) 時間コヒーレント・キャッシュ・システム
KR20000010691A (ko) 컴퓨터 네트워크에서의 통신 접속 장치 및 방법
JPH11149448A (ja) ネットワークシステム、クライアント端末及び中継サーバ
US7570942B2 (en) Transactional message-queue communication for wirelessly networked devices system and method
US9342141B2 (en) Audio/video device, apparatus and method for controlling audio/video device
JP2003529974A (ja) 機器を制御するシステム及び方法
JPH10187614A (ja) 複数wwwブラウザの同期ページ表示方法及びそのプログラムを記録した記録媒体
JP3682914B2 (ja) データ通信システムおよびこれに用いるデータ処理装置、ブラウザを利用した接続維持方法、記録媒体
KR100365137B1 (ko) 무선 인터넷 연결 유지 시스템 및 그 방법
JPH10289171A (ja) プログラム間連携システム
JP4714586B2 (ja) 通信装置、データ共有システム、データ共有装置、及びコンピュータプログラム
JP2002099472A (ja) ネットワークデバイスの管理方法

Legal Events

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

Payment date: 20101109

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee