KR20000010691A - 컴퓨터 네트워크에서의 통신 접속 장치 및 방법 - Google Patents

컴퓨터 네트워크에서의 통신 접속 장치 및 방법 Download PDF

Info

Publication number
KR20000010691A
KR20000010691A KR1019980708764A KR19980708764A KR20000010691A KR 20000010691 A KR20000010691 A KR 20000010691A KR 1019980708764 A KR1019980708764 A KR 1019980708764A KR 19980708764 A KR19980708764 A KR 19980708764A KR 20000010691 A KR20000010691 A KR 20000010691A
Authority
KR
South Korea
Prior art keywords
response
request
program
session
communication
Prior art date
Application number
KR1019980708764A
Other languages
English (en)
Other versions
KR100275403B1 (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 KR20000010691A publication Critical patent/KR20000010691A/ko
Application granted granted Critical
Publication of KR100275403B1 publication Critical patent/KR100275403B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/01Protocols
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명에 의하면 서로 다른 통신 모델들을 접속하는 게이트웨이(gateway)가 제공된다. 서버 시스템(server system)상에 설치가능한 컴퓨터 프로그램에서 구현될 수 있는 게이트웨이는 동기식 통신 세션(synchronous communications sessions)이 필요한 컴퓨터 프로그램과 비동기식 통신 모델을 기반으로 하는 컴퓨터 시스템간의 상호 작용을 용이하게 한다. 본 발명은 동기식 접속 클라이언트가 서버 및 비동기식 통신 프로그램과 상호 작용을 재수행할 수 있도록 함으로써, 하나 이상의 애플리케이션과 상호 작용을 하고, 장시간 실행되는 애플리케이션의 요청-응답쌍을 서로 연관시킨다. 특히, 본 발명은 인터넷 WWW(World Wide Web) 서비스와 상용 메시지 전달 시스템을 서로 접속할 수 있는 장치 및 방법을 제공한다.

Description

컴퓨터 네트워크에서의 통신 접속 장치 및 방법
컴퓨터 '네트워크'는 서로 정보를 교환할 수 있는 다수의 컴퓨터일 수 있다. (예컨대, 전화선 또는 다른 통신 시스템으로) 컴퓨터들을 서로 접속하여, 이들간에 정보를 상호 교환할 수 있게 하는 소정의 방법이 존재하는 한, 컴퓨터들을 소정의 구성으로 배열하여, 동일한 방 또는 서로 다른 국가에 위치시킬 수 있다. 컴퓨터들을 서로 연결하여 네트워크를 형성할 수 있듯이, 브리지(bridge) 및 게이트웨이(gateway)로 알려진 툴(tools)을 이용하여 네트워크들도 서로 연결될 수 있다. 이들 툴로 인해 하나의 네트워크내의 컴퓨터와 다른 네트워크내의 컴퓨터간에 정보 교환이 가능하다. 인터넷(Internet)은 단일한 소유자 또는 제어자가 없고, 크고 작은 공중 및 개인 네트워크를 포함하는 네트워크들의 네트워크이며, 인터넷에 있어 인터넷 프로토콜 소프트웨어(Internet Protocol software)를 실행하는 소정의 접속된 컴퓨터는 보안 제어(security controls)에 따르고, 인터넷에 또한 접속되어 있는 소정의 다른 컴퓨터와 정보를 교환할 수 있다. 서로 접속하는데 동의한 네트워크들을 복합적으로 서로 연결하는 데는 단일 전송 매체에만 의존하지 않는다(예를 들면, 양방향 통신은 위성 링크(satellite links), 광섬유 트렁크 라인(fiberoptic trunk lines), 전화선, 케이블 TV 배선 및 국부 무선 링크(local radio links)를 통하여 일어날 수 있다).
WWW(World Wide Web) 인터넷 서비스는 방대한 양의 네트워크 액세스가능 정보(network-accessible information)에 대한 액세스를 제공하고, 인터넷에 접속된 컴퓨터들간에 저비용의 통신을 제공할 수 있는 광역 정보 검색 설비(wide area information retrieval facility)이다. WWW에 관한 정보는 앤드류 포드(Andrew Ford)의 "Spinning the Web"(International Thomson Publishing, London 1995)과, 존 디셈버(John December) 및 닐 란달(Neil Randall)의 "The World Wide Web Unleashed"(SAMS Publishing, Indianapolis 1994)에서 찾을 수 있다. 대화형 멀티미디어 표현(interactive multimedia presentation) 능력과 결부된, 유연성(flexibility), 휴대가능성(portability) 및 사용의 간편성(ease-of-use)으로 인해, WWW의 사용이 폭발적인 속도로 증가하고 있다. WWW는 소정의 컴퓨터를 인터넷에 접속할 수 있도록 해주며, 적절한 소프트웨어 및 하드웨어 구성을 구비하여 인터넷상의 모든 곳에서 이용가능한 소정의 문서를 검색할 수 있게 해준다. WWW상에서 검색가능한 문서에는 '하이퍼미디어(HyperMedia)' 문서가 있는데, 이 문서는 텍스트 문서(text documents)이거나, 혹은 음성 및 이미지와 같은 다른 형태의 매체일 수 있으며, 다른 문서들에 대한 링크('하이퍼링크(hyperlinks)')를 구비한다. WWW상의 텍스트 문서의 포맷은 HTML(HyperText Markup Language)로 이루어진 표준 포맷이므로, 소정 운영 체제(operating system) 및 하드웨어 플랫폼(platform)상에서 생성된 문서는 웹 브라우저(Web Browser)(이하 참조)를 갖고 있는 다른 플랫폼상의 사용자에 의해 쉽게 판독될 수 있게 한다. 이미지들은, 예를 들면, 표준 GIF 또는 JPEG 포맷으로, 별도의 그래픽 파일내에 저장되며, HTML 텍스트내에 참조되어 있으면, 사용자가 이를 지시할 경우 HTML 텍스트 뿐만 아니라 지정된 이미지 파일도 검색할 수 있게 해준다.
사용자들은 사용자의 컴퓨터상에 설치된 소프트웨어로서, 인터넷을 통해 웹 서버(Web Server)로부터 문서를 제공하거나 검색하는 설비를 갖춘 '웹 브라우저' 또는 '웹 클라이언트(Web client)'를 이용하여 이러한 정보에 액세스한다. 현재 이용가능한 웹 브라우저에는 IBM사의 웹익스플로러(WebExplorer) 및 NCSA의 모자이크(Mosaic) 등이 있다. 이러한 브라우저들은 디렉토리 및 탐색 툴을 포함하고, HTML 및 다른 WWW 표준 포맷들을 이해하며, 파일을 이들 포맷으로 정확하게 디스플레이 또는 출력할 수 있다. 이들 웹 브라우저의 사용자 인터페이스는 그래픽 '포인팅 앤드 클릭(point-and-click)' 인터페이스이다(즉, 그래픽 디스플레이상에서 커서(cursor)를 이동시킨 후, 마우스(mouse) 버튼을 누름으로써 항목(items)을 선택할 수 있음). WWW는 각각이 일정한 URL(Universal Resource Locator)을 갖는 페이지(page) 또는 파일로서 구성된다. URL은 서버 머신(server machine) 및 그 머신상의 일정한 파일 혹은 페이지를 모두 나타낸다. 사용자는 일정한 URL을 지정하든지, 아니면 '하이퍼링크(hyperlinks)'에 의해 하나의 URL로부터 이와 연관된 URL로 이동하든지 할 수 있다. 즉, 페이지상의 워드(word) 또는 심볼(symbol)은, 선택가능한 다른 URL과 연관되어 있어서, 예를 들면, 관련 위치에서 마우스를 클릭하면, 브라우저가 관련 페이지를 검색 및 디스플레이할 수 있게 해준다. 단일의 서버상에 많은 페이지들이 상주할 수 있으며, 하이퍼링크된 관련 페이지들은 서로 다른 서버들상에 위치할 수 있다. URL이 "http:"를 시작할 경우, 이는 파일이 하이퍼링크를 포함하고 있음을 나타낸다.
사용자가 자신의 웹 브라우저를 이용하여 웹 서버 시스템상의 페이지에 대한 URL을 선택할 경우, 그 페이지에 지정된 동작을 수행하는 관련 서버로 단발 요청(one-shot request)이 전송된다. 여러 경우에 있어서, 서버는 요청에 응답하여, 저장된 페이지들의 데이터베이스로부터 요청된 페이지를 검색하고, 인터넷을 통해 WWW 클라이언트로 HTML 페이지를 역으로 전송하여, 사용자에게 디스플레이되도록 해준다. 이것은 단일의 종점간 동기식 통신 세션(end-to-end synchronous communication session)의 영역내에서 수행된다. 즉, 브라우저는 그 요청을 전송한 후, 임의의 또다른 처리로 진행하기 전에, 혹은 다른 요청을 개시하기 전에 응답을 기다린다. 브라우저는 요청된 응답을 기다리는 동안, '차단(blocked)' 또는 '중지(suspended)'되었다고 한다. 일부 경우에 있어서, 브라우저의 요청에 의해 서버가 HTML을 생성하는 애플리케이션을 개시할 것이지만, 브라우저가 병행적인 통신 세션을 제공하지 않기 때문에, 브라우저로부터의 상기 단발 요청은 현존 동기식 통신 세션의 영역내에서 또다시 응답을 요구하게 되며, 따라서 어떠한 애플리케이션 상태 정보도 요청들간에는 유지되지 않는다. 브라우저에 의해 요청된 페이지를 액세스하지 못한 경우, 이러한 사실을 사용자의 단말기상에 디스플레이되는 에러 메시지에 의해 사용자에게 알릴 수 있지만, 만일 서버가 단지 응답이 느린 경우라면, 브라우저는 무기한 중지된 상태로 유지된다. 실제로, 사용자가 그러한 지연을 수용할 수 없는 경우에는 통신 시도를 포기할 수 있다. 웹 브라우저내에는 자동적으로 요청을 재시도하는 설비가 없다.
현대의 기업들은 기업내의 다른 부서들과, 다른 국가에 존재할 수도 있는 고객 또는 공급자와 같은 관련된 기업들과 통신하기 위한 설비를 필요로 한다. WWW 인터넷 서비스는 회사간 통신에 대해 효율적인 비용의 통신 매체를 제공하면서, 이러한 요구 사항을 일부 해결할 수 있지만, 요청된 정보가 수용가능한 시간내에 이용될 수 없다면, WWW 인터넷 서비스의 단발 요청-응답 통신 모델(one-shot request-response communication model)과, 브라우저로부터의 병렬 요청에 대한 대책의 부족은 심각한 한계를 드러낼 것이다. 송신자 시스템이 무한정 중지되는 것이 종종 용납되지 않을 수 있고, 중요한 비지니스 애플리케이션의 성공이, 서버 애플리케이션이 요청에 제때 응답하는지 여부에 달려 있는 것은 용납될 수 없다. WWW 인터넷 서비스는 여러 가지 중요한 비지니스 애플리케이션의 요구 사항인 확실한 메시지 전달을 위한 설비를 제공하지 않는다(즉, 애플리케이션은 자신이 전송한 메시지가 목적지로 전달되는 도중에 손실될지의 여부와, 그 메시지가 단지 한 번만 전달되는지의 여부를 알 필요가 있음). 또한, 비지니스 애플리케이션은 많은 요청-응답쌍으로 이루어진 대화(conversation)를 포함할 수 있으며, 웹 브라우저 요청들간에 전달되는 임의의 문맥 정보(context information)가 부족하다는 것은 동일한 비지니스 애플리케이션의 일부분인 요청들을 서로 관련시키는 설비가 없다는 것을 의미한다.
동기식 시간 의존적(synchronous, time-dependent) '요청 및 응답 대기(request and await response)' 모델에 대한 대안적인 통신 모델은 비동기식 메시지 전달(asynchronous messaging)이다. 수신자 프로그램으로 메시지를 전송하는 프로그램은 수신자로부터의 응답을 기다리도록 차단될 필요는 없으므로, 실행을 계속할 수 있고, 송신자 및 수신자는 서로 동기화(순차화)되어 있지 않다. 전형적으로, 비동기식 프로그램간 메시지 전달은 중간 저장 장치로서 메시지 큐를 사용하며, 제 1 프로그램으로부터 전송된 메시지는 이 큐내에 저장되고, 수신자 프로그램이 준비되면, 이 프로그램에 의해 이 메시지가 검색될 수 있다. 프로그램들 사이에는 이들에 전용되는 논리적인 접속이 존재하지 않는다. 메시지를 큐에 저장한 후, 송신자 프로그램은 네트워크의 다른 프로그램들에 대한 메시지 전송을 포함할 수도 있는 다른 작업(task)으로 진행할 수 있다. 본 발명의 기술 분야에서는, 이질적인 네트워크간에 프로그램간 통신을 지원하고, 네트워크의 복잡성 및 메시지 큐에 대한 유지 및 위치 설정의 작업으로부터 (일정한 운영 체제 환경하에서 작성된) 애플리케이션 프로그램을 차폐시키는, 비동기식 메시지 전달 시스템을 제공하는 것에 대해 공지되어 있다. 이러한 메시지 전달 시스템은 여러 가지 비지니스 애플리케이션 프로그램들간에 효율적인 상호 작용(interoperation)을 달성할 필요가 있으나, 그 데이터 프로세스 자원이 전혀 상이한 다수의 운영 체제 및 하드웨어 환경으로 이루어지는, 여러 상업적인 기업들에 중요한 것이다.
메시지 큐잉(queuing) 및 상업적으로 이용가능한 메시지 큐잉 제품은 비. 블레이크리(B. Blakeley), 에이치 해리스(H. Harris) 및 알. 레위스(R. Lewis)에 의한 "Messaging and Queuing Using the MQI"(McGraw-Hill, 1994년)와, IBM사로부터의 "An Introduction to Messaging and Queuing"(IBM 문서 번호 GC33-0805-00) 및 "MQSeries-Message Queue Interface Technical Reference"(IBM 문서 번호 SC33-0850-01)에 기술되어 있다. IBM 및 MQSeries는 IBM사의 상표이다. IBM의 MQSeries 메시지 전달 소프트웨어 제품은 트랜잭션 메시지 전달 지원(transactional messaging support)을 제공하고, 시스템 또는 통신 고장시에도 오직 한 번만 메시지를 확실히 전달하는 메시지 전달 프로토콜에 따라 논리적인 작업 유닛내에서 메시지 동기화를 제공한다. MQSeries 제품은 송신된 메시지가 수신자 시스템에 의해 안전하게 저장된 것으로 확인될 때까지는 송신자 시스템상의 저장 매체로부터 메시지를 최종적으로 삭제하지 않음으로써, 그리고 정교한 회복 설비를 이용함으로써, 확실한 메시지 전달을 제공한다. 성공적인 저장의 확인시 메시지의 전송을 행하기 이전에, 송신자 시스템의 저장 매체로부터의 메시지 삭제 및 수신자 시스템의 저장 매체로의 메시지 삽입은 모두 '불확실한(in doubt)' 상태이며, 실패한 경우에 자동적으로 되돌아갈 수 있다. 이러한 메시지 전송 프로토콜, 관련 트랜잭션 개념 및 회복 설비는 국제 특허 출원(international patent application) WO 95/10805 및 미국 특허 제 546528 호에 개시되어 있다.
WWW 인터넷 서비스의 클라이언트 시스템과 같은, 동기식 통신에 적합한 계산 자원들에 비동기식(오프 라인(off-line)) 처리의 이점을 제공하고, 바람직하게는, 현존 동기식 자원에 커다란 변화를 요구하지 않으면서, 비동기식 통신 모델을 기반으로 하는 자원과 동기식 모델을 기반으로 하는 자원간에 상호 작용이 가능하게 하는 것이 바람직하다. 또한, 동기 접속된 클라이언트 시스템으로부터의 비동기식 메시지의 진행에 대한 추적을 용이하게 하는 것이 바람직하다.
회사들은 그들의 계산 자원을 인터넷에 접속하는 것 이외에도, '인트라넷', 즉 인터넷의 표준을 따르는 특정한 기업의 컴퓨터 네트워크내에서 인터넷 표준(인터넷 프로토콜, HTML의 사용 등)이 유리하게 구현됨을 또한 알고 있다. 브라우저 소프트웨어는 이제 인트라넷(intranets)내에서 이용가능하다.
상기 요구 사항들은 사용자들이 서로 다른 환경에 대해 적응되어 있는지 또는 서로 다른 통신 모델 혹은 아키텍처를 기반으로 하는지의 여부에 관계없이, 그들의 서로 다른 자원들간의 상호 작용가능성을 위한 데이터 프로세스 자원의 여러 사용자들의 요구 사항을 예시한다. 상이한 운영 체제에 대해 작성되거나 상이한 통신 모델 혹은 패러다임(paradigms)을 기반으로 하는 애플리케이션 프로그램과, 서로 다른 통신 프로토콜, 데이터 포맷, 언어, 혹은 통신 모드를 이용하는 컴퓨터 및 다른 통신 시스템은 단말 사용자가 상호 작용의 복잡성을 모르는 상태에서 중단없이 상호 작용하도록 점점 더 요구되고 있다. 본 발명은 서로 다른 자원들간에 링크를 제공하면서, 상호 작용이 요구되는 자원들간에 존재하는 일정한 고유의 비호환성 문제를 해결한다.
발명의 요약
본 발명의 제 1 측면에 따르면, 통신 네트워크의 데이터 통신 서버 시스템―여기서, 서버 시스템은 네트워크의 서버 시스템과 클라이언트 시스템간에 동기식 통신을 지원하는 설비를 가지며, 또한 네트워크의 서버 시스템 또는 다른 시스템상의 (애플리케이션 프로그램과 같은) 프로그램과의 비동기식 통신을 지원하는 설비를 가짐―이 제공되며, 상기 서버 시스템은,
클라이언트 시스템과 서버 시스템간의 동기식 통신 세션내에서 상기 클라이언트 시스템으로부터의 요청에 응답하여, (클라이언트의 요청에 관련된) 요청을 상기 네트워크의 서버 시스템 또는 다른 시스템상의 프로그램에 비동기식 통신으로 전송하는 수단과,
상기 비동기식 통신에 대한 응답의 수신에 응답하여, 상기 응답과 클라이언트 시스템으로부터의 요청을 연관시켜 클라이언트 시스템으로 응답이 전송될 수 있게 하는 수단과,
상기 비동기식 통신에 대한 응답을 수신하기 전에 예비 응답(preliminary reply)을 생성하는 수단과,
상기 동기식 통신 세션내에서 상기 클라이언트 시스템에 적어도 하나의 예비 응답을 전송하는 수단을 포함한다.
따라서, 본 발명에 따른 시스템은, 비록 비동기식 요청에 대해 아무런 응답도 아직 수신하지 않았을지라도, 동기식 통신 세션내에서 클라이언트에게 적어도 하나의 예비 응답을 전송하는 수단을 갖는다.
본 발명의 제 2 측면은 전술한 바와 같은 서버 시스템의 설비를 이용하여, 클라이언트 시스템과, 네트워크의 서버 시스템 또는 다른 시스템상의 프로그램간에 프로그램간 통신 방법을 제공한다.
본 발명은, 클라이언트 프로세스가 프로그램간 통신을 위해 전용 동기식 통신 세션을 요구하더라도, 클라이언트 시스템의 프로세스가 비동기식 통신 프로그램과 통신할 수 있게 해준다. 네트워크의 서버 시스템 또는 다른 시스템상의 프로그램은, 아무런 전용 통신 세션없이, 비동기식 메시지를 수신 및 송신하는데 적합한 애플리케이션 프로그램일 수 있다. 또한, 초기 동기식 세션내에서 클라이언트 시스템에 전송되는 예비 응답은 서버 시스템이 요청을 수신했음을 확인하는 수단을 제공한다. 서버 시스템이 서버들간 메시지의 확실한 전달을 제공하는 서버 네트워크의 일부이지만, 동기 접속된 클라이언트 시스템이 클라이언트와 접속 서버간 통신 호프(hop)를 위한 확실한 전달을 지원하지 않는다면, 요청이 성공적으로 서버에 도착했는지 여부를 추적하는 것, 즉, 통신 경로의 불확실한 링크를 통한 통신을 추적하는 것이 매우 바람직하다.
'예비 응답'은 바람직하게 사전설정된 시간내에(예를 들면, 시스템 관리자에 의해 정의된 시간내에) '완전 응답(full reply)'을 클라이언트 시스템에 전송하는데 이용할 수 없는 경우에만 전송된다. 즉, 사전설정된 시간이 종료되었을 때, 비동기식 통신 애플리케이션 프로그램으로부터 응답이 아직 수신되지 않아, 서버가 아직은 요청된 완전 응답을 제공할 수 없다면, 서버 시스템의 프로세스가 기동(trigger)되어, 클라이언트 시스템으로 예비 응답을 전송하게 된다. 바람직하게, 예비 응답은 서버 시스템에 의해 할당되고, 서버 시스템내에서 고유한 세션 식별자(session identifier)를 포함한다.
클라이언트 시스템에 대한 예비 응답내에 세션 식별자를 포함하면, 시간 종료 이전에 애플리케이션 프로그램 또는 다른 비동기식 통신 프로그램으로부터 예상되는 완전 응답을 수신하지 못한 클라이언트 시스템(또는, 클라이언트 시스템에서 작업하는 단말 사용자(end user))은 나중에 다시 서버와 접촉할 수 있고, 이 식별자를 이용하여 그 세션 식별자와 관련된 응답이 아직 이용가능한지 여부를 판정할 수 있다. 따라서, 예비 응답을 수신한 클라이언트는 이 세션 식별자를 이용하여 다른 처리 작업을 진행할 수 있고, 그 다음 소정의 시간 후에 서버와 상호 작용을 재수행할 수 있다. 이것은 위와 같이 하지 않을 경우 발생될 문제점으로서, 동기식 접속 클라이언트 프로세스가 응답을 기다리도록 무기한 중단된 상태로 유지되거나, 또는 응답을 매우 신속하게 이용할 수 없는 경우 애플리케이션을 포기해야 하는 문제점을 해결한다.
본 발명의 바람직한 실시예에 따르면, 타이머의 종료에 응답하여 클라이언트 시스템에 전송된 통신에 의하여, 클라이언트 시스템의 프로세스 또는 사용자는 클라이언트 시스템의 동기식 접속 프로세스가 (즉, 현재의 세션을 유지하면서) 중지된 상태에 있어야 하는지, 또는 이 세션이 포기되어야 하는지 여부에 관해 용이하게 결정할 수 있다. 세션이 포기되면, 클라이언트의 프로세스는 세션 식별자에 의해 이전의 상호 작용을 재수행할 수 있으며, 클라이언트 시스템으로 전송된 식별자는 서버 시스템으로 전송되는 차후의 요청에 포함될 수 있어, 서버가 동일한 세션 식별자를 갖는 이전 요청에 대한 소정의 이용가능한 응답을 식별할 수 있게 해준다. 따라서, 시간이 종료된 후, 전용 통신 세션을 필요로 하는 클라이언트는 서버와 그 동기식 접속을 유지할 것인지 또는 관련 동기식 세션을 사용하여 사실상 서버와 비동기식 통신하는 것으로 전환할 것인지, 또는 단지 영원히 통신을 포기할 것인지 여부를 결정할 수 있다. 따라서, 클라이언트에게는 무기한 정지된 상태로 유지되거나, 또는 애플리케이션을 포기하는 경우 이외의 다른 옵션(options)들이 제공된다.
클라이언트가 이전의 상호 작용을 재수행할 수 있게 할 뿐만 아니라, 클라이언트에게 특정한 상호 작용을 위한 세션 식별자를 제공함으로써, 클라이언트 시스템에서의 통신 프로세스가 단발 요청-응답 모델을 기반으로 하는 경우라도, 클라이언트가 용이하게 대화의 많은 요청-응답쌍과 함께 연관시킬 수 있게 된다. 이는 또한, 클라이언트가 응답을 기다리는 동안, 클라이언트와 서버간의 연결이 끊어질 수 있는 문제를 해결하는데 도움이 된다. 이는 또한, 대화들간을 구별할 수 있는 수단을 제공하여, 클라이언트의 프로세스 또는 사용자가 수 개의 다른 애플리케이션과 상호 작용할 수 있게 해주며, 하나 이상의 사용자가 동시에 동일한 애플리케이션에 액세스할 수 있게 해준다. 세션 식별자는 전술한 바와 같이 차후의 사용을 위해, 예비 응답을 수신시 클라이언트 시스템에 의해 자동적으로 저장될 수 있다.
상기의 '클라이언트' 및 '서버'라는 용어는 단지 일정한 상호 작용에서 맡은 역할을 구별하는데 사용된다. 즉, 클라이언트는 요청을 발행하고, 서버는 요청에 응답하여 동작을 취한다. 다른 컴퓨터의 요청시에 소정의 작업을 수행하는 임의의 컴퓨터가 서버이다. '클라이언트-서버'라는 용어는 종종 데이터 처리 분야에서, 클라이언트(예를 들면, 워크스테이션)는 단지 단말 사용자의 상호 작용을 위한 기능만을 제공하지만, 반면에 서버(예를 들면, 메인프레임 컴퓨터)는 데이터 저장 및 액세스를 제공하고, 복잡한 처리를 수행하는 환경을 지칭하는데 사용된다. 본 발명은 이러한 '클라이언트-서버' 환경에 적용할 수 있으며, 또한 통신 시스템들에 의해 제공되는 기능들간에 이와 같은 구분이 없는 '피어 투 피어(peer-to-peer)' 환경에도 적용할 수 있다. 본 발명은, 제 1 시스템상의 컴퓨터 프로그램이 특히 동기식 통신을 위한 것이고, 웹 브라우저가 메시지 큐잉 시스템을 통해 비동기식 애플리케이션 프로그램과 상호 작동하는 것이 요구되는 경우에서와 같이, 상기 프로그램이 서로 다른 시스템상에서 실행되는, 비동기식 프로그램간 통신을 위한 소정 애플리케이션 프로그램과 통신하는 것이 요구되는 상황에서 특히 유용하다.
본 발명의 바람직한 실시예에 따르면, 사전설정된 시간이 종료되기 전에 서버가 그 비동기식 요청에 대한 응답을 수신할 경우, 서버는 동기식 세션내에서 클라이언트로 전송되는 클라이언트 시스템으로의 응답내에 상기 수신된 응답으로부터의 정보를 포함시킬 것이다. 따라서, 애플리케이션 프로그램으로부터의 응답이 매우 신속하게 이용될 수 있다면, 클라이언트에게 애플리케이션 프로그램과의 통신의 비동기 특성을 보이지 않게 하면서, 그 후 클라이언트에게 동기식 세션내에서 완전 응답을 전송할 수 있게 된다.
본 발명의 이와 다른 실시예에 의하면, 타이머의 종료를 기다리지 않고서, 클라이언트의 요청의 수신에 대한 예비 확인 신호를 클라이언트 시스템으로 반환함으로써, 클라이언트 프로세스의 중단을 피할 수 있다. 요청 수신의 확인 신호에는 서버 시스템의 프로세스에 의해 할당된 세션 식별자(예를 들면, 고유 참조 번호)가 포함된다. 이러한 경우, 클라이언트는 그 확인 신호를 수신한 때에는 완전 응답 또는 타이머의 종료를 기다리도록 중지됨이 없이, 다른 작업으로 진행할 수 있다. 차후에, 클라이언트가 할당된 세션 식별자를 포함하는 또다른 통신을 서버에게 전송할 때까지, 이 응답은 서버의 저장 매체내에 저장 및 유지된다. 서버는 저장된 응답의 세션 식별자와 새로운 요청을 매칭시킨 후, 저장된 응답을 클라이언트에게 전송한다.
요청의 특성에 따라 클라이언트의 요청에 대한 응답의 타입이 결정되는 것 또한 본 발명의 범주내에 포함된다. 상품 주문과 같은 일부 요청들은 할당된 주문 번호로 즉시 수신 확인―이는 클라이언트 프로세스가 중지되는 시간을 최소화함―할 것을 요구할 수가 있다. 은행 예금 잔고 문의(bank balance query)와 같은 다른 요청들은 요청된 정보를 제공하기 이전에 요청의 수신에 대한 확인을 요구하지 않는데, 이는 요청된 정보가 즉시 이용가능하면 단지 이 정보만이 요구될 뿐이기 때문이다. 이러한 예에 있어서는, 클라이언트가 소정의 시간동안 완전 응답을 기다리는 것이 적절하다. 즉각적인 확인을 전송할 것인지 여부에 대한 결정은, 요청 서식(form)내에 선택가능 필드 또는 파라미터를 제공하는 것과 같이, 단말 사용자에게 확인 요망(a desire of confirmation)을 나타내는 수단을 제공하고, 이러한 필드내의 항목(entry)에 응답하는 수단을 제공함으로써 바람직하게 구현된다.
바람직하게, 애플리케이션 프로그램으로 전송할 관련 비동기식 요청내에 세션 식별자를 내장시키는 서버 시스템의 소정 프로세스는 세션 식별자를 클라이언트 시스템으로부터의 요청과 연관시킨다. 따라서, 비동기식 서버의 요청에는, 최초 클라이언트 요청으로부터의 정보 및 할당된 식별자가 포함된다. 차후에, 서버 시스템이 애플리케이션 프로그램으로부터 이러한 세션 식별자를 포함하는 응답을 수신하면, 서버는 이 응답을 클라이언트 시스템으로부터의 요청과 연관시킨 다음, 세션 식별자를 포함하는 응답을 클라이언트 시스템으로 전송한다. 서버는 자체로는 다중 병행 세션을 지원하지 않는 클라이언트 프로세스와의 상호 작용에 대해 세션 식별자를 할당할 수 있다. 세션 식별자를 교환하고, 클라이언트 시스템에 반환된 세션 식별자를 저장하는데 클라이언트 시스템의 저장 장치를 사용하면, 이들 식별자를 이용하여 병행 세션들을 구별할 수 있게 된다. 클라이언트는 애플리케이션 구별 수단을 갖기 때문에 복수의 서로 다른 애플리케이션들과 상호 작용할 수 있으며, 서버는 비동기식 메시지에 대한 응답과 각각의 요청을 쉽게 관련시킬 수 있다. 이와 같이, 애플리케이션을 병행, 즉 병렬 처리하면, 비지니스의 효율을 크게 증가시킬 수 있다.
본 발명에 의하면, 단발 동기식 통신용으로 설계된 통신 자원들과 비동기식 통신을 이용하는 자원들이 상호 작용할 수 있다.
본 발명에 따른 시스템 및 방법이 클라이언트 시스템과 애플리케이션 프로그램간의 상호 작용의 순차화를 지원하는 것이 바람직하다. 이것은 클라이언트로 다시 전달될 애플리케이션 프로그램으로부터의 메시지에 포함되는 (현재의 대화내에서의 그 상호 작용의 위치를 식별하는 순번(sequence number)과 같은) 세션 상태 정보에 의해 구현될 수 있다. 클라이언트 시스템으로부터 추가적인 입력을 요구하는 애플리케이션은 그 응답내의 세션 상태 정보에 의해 이러한 요구를 지시하며, 이러한 정보는 서버 및 클라이언트 시스템 중 하나 또는 모두에게 식별가능하다. 세션 식별자 및 세션 상태 정보에 의해, 다수의 연속적인 사용자 상호 작용을 포함할 수 있는 특정한 애플리케이션의 연관된 요청-응답쌍을 식별하고, 한 세션내의 여러 통신들을 정확하게 순번화함을 보증할 수 있다.
바람직하게, 세션 식별자는 타이머 종료후에 클라이언트에게 전송되는 통신 및 클라이언트와의 또다른 상호 작용을 기대하는 애플리케이션으로부터 클라이언트에게 전송되는 응답내에 모두 포함된다. 일실시예에 따르면, 서버 시스템에서는 응답내에 세션 식별자 정보를 포함시킬 것인지 여부를 판정하며, 바람직하게, 이 판정 프로세스는 통신 애플리케이션 프로그램으로부터 전송된 세션 상태 정보 및 타이머의 종료에 응답한다. 클라이언트로부터(즉, 클라이언트 시스템에서의 단말 사용자 또는 프로세스로부터) 더 이상의 입력이 예상되지 않는다면, 서버 시스템은 클라이언트로 소정의 응답을 전달할 때, 소정의 지정된 세션 자원(session-specific resources)을 방출하며, 어떠한 세션 식별자도 요구되지 않는다.
이러한 판정 프로세스는 필요 이상으로 긴 시간동안 세션을 유지함에 따른 잠재적 문제점들을 고려하면 바람직할런지도 모른다. 첫째, 세션을 유지하는 데에는 서버 시스템 자원이 이용된다. 둘째, 일련의 요청-응답 상호 작용들 중 마지막 상호 작용내에 식별자 정보를 반환하는 데에는 식별자 정보를 클라이언트 시스템의 저장 매체에 무기한 저장해 두는 것이 수반될 수 있다. 이것은 클라이언트의 자원을 사용할 뿐만 아니라 보안을 노출시킬 수 있다. 식별자 정보가 클라이언트 시스템으로 항상 반환된다면(즉, 전술한 판정 프로세스가 구현되어 있지 않다면), 적절한 시간이 지난 후에 클라이언트 시스템으로부터의 상태 정보를 삭제함으로써 전술한 문제들을 해결한다.
본 발명의 바람직한 실시예는 인터넷 월드 와이드 웹(WWW) 서버 소프트웨어가 그 위에 설치된 서버 시스템과, 인터넷에 접속된 서버 시스템으로 요청을 발하는 WWW 브라우저 소프트웨어가 그 위에 설치된 클라이언트 시스템을 갖는 데이터 통신 시스템을 제공한다. 또한, 서버 시스템은 애플리케이션 프로그램들간에 비동기식 메시지 통신을 지원하는 설비를 갖는다. 서버 시스템이 비동기식 통신용으로 설계된 애플리케이션 프로그램과의 상호 작용을 요구하는 (동기식 통신 세션내의) 상기 클라이언트 단말기로부터 HTML 요청을 수신하면, 서버 시스템의 소정 프로세스는 애플리케이션 프로그램의 입력 큐로 전송되는 메시지로서 이 요청을 애플리케이션 프로그램으로 전달한다. 애플리케이션 프로그램이 HTML을 해석할 수 없다면, 서버의 상기 프로세스는 또한, 수신된 HTML 요청을 애플리케이션 프로그램이 인식할 수 있는 메시지 포맷으로 변환한 후, 변환된 메시지를 전달한다. 사전설정된 시간이 종료되기 전에, 애플리케이션 프로그램으로부터의 응답 메시지 수신에 응답하여, 서버 시스템의 프로세스는 (필요한 경우) 응답 메시지를 다시 HTML로 변환한 후, 클라이언트 단말기에 대한 응답으로서 생성된 HTML 페이지를 전송한다. WWW 클라이언트의 시각에서 볼 때, 타임 아웃 기간의 종료 이전에 응답을 이용할 수 있다면, 응답은 원래의 동기식 통신 세션내에 존재한다.
서버 시스템은 상기 클라이언트 시스템에 전송되는 응답내에 포함된 HTML 페이지내에 세션 식별자 정보를 내장하는 수단을 포함한다. 바람직하게, 서버 시스템은 비동기식 요청에 대한 애플리케이션 프로그램의 응답에 포함된 세션 상태 정보에 응답하여, HTML 페이지내에 단말 사용자가 완성할 하나 이상의 HTML 서식을 포함하는 수단을 또한 포함하며, 이들 서식은 그 안에 내장된 세션 식별자를 갖는다. 또한, 세션 상태 정보는 HTML 페이지내에 내장될 수 있다.
서버는 애플리케이션 프로그램으로부터의 응답 메시지의 수신 전에, WWW 클라이언트 단말기에 통신(즉, HTML의 한 페이지)을 전송함으로써 시간의 종료에 응답한다. 이러한 통신에는 세션 식별자 및 바람직하게는 세션 상태의 식별자가 포함된다. 클라이언트에게 다시 전송된 통신은 그 동기식 HTTP 세션을 종료하고, WWW 클라이언트는 더 이상 중지되지 않지만, 게이트웨이와의 클라이언트의 보다 긴 실행 통신 '세션'은 WWW 클라이언트와 게이트웨이 프로그램간의 상호 작용의 재수행을 가능하게 하는 정보가 유지된다는 점에서 여전히 논리적으로 존재한다. 단말 사용자는 추가적인 기간동안 정지 상태로 재진입하여, 새로운 동기식 세션을 시작할 것인지 여부를 판정할 수 있다. WWW 페이지를 캐싱하는데 WWW 클라이언트의 설비를 이용하여, 세션 식별자 및 상태 정보를 WWW 클라이언트 시스템의 캐시 메모리(cache memory)내에 저장한다. WWW 클라이언트는 이러한 캐싱된 정보를 이용해, 이전의 상호 작용을 재수행할 수 있고, 나중에 애플리케이션 프로그램으로부터의 응답 메시지가 서버에서 이용가능한지의 여부를 체크할 수 있다. 원래의 세션과 관련된 서버에 대한 차후의 요청에 세션 식별자 및 세션 상태 정보를 포함시킴으로써, 클라이언트는 서버가 서로 다른 세션들간을 구별할 수 있게 하고, 동일한 애플리케이션의 일부인 서로 다른 요청들간을 구별할 수 있게 해준다.
전술한 본 발명의 실시예는 알려진 기술을 이용하여 HTML을 비 HTML 메시지 포맷으로 변환한다. 기동될 애플리케이션이 HTML을 해석할 수 있는 경우, 이러한 변환은 불필요하다.
따라서, 바람직한 실시예에서의 본 발명은 WWW의 동기식 환경과 메시지 전달 시스템의 비동기식 환경들간에 연결을 제공한다. 본 발명은 인터넷의 서버 시스템을 통하여 애플리케이션 프로그램과 통신하는데 브라우저 소프트웨어를 사용하는 경우에도 똑같이 적용할 수 있다.
본 발명은 네트워크내에서 데이터 통신들(data communications) 및/또는 데이터 처리 자원들(data processing resources)을 서로 연결하는 것에 관한 것으로서, 구체적으로는 서로 다른 통신 환경들을 연결하는 것에 관한 것이다.
도 1은 인터넷상에서 클라이언트와 서버 시스템간의 통신을 도시하는 개략도이다.
도 2는 비동기식 메시지 전달 및 큐잉을 이용한 프로그램간 통신을 도시하는 개략도이다.
도 3은 본 발명의 실시예에 따라, 동기식 접속된 웹 브라우저와 비동기식 통신을 위한 애플리케이션 프로그램간의 상호 작용을 위한, 서버 시스템상에 설치된 게이트웨이 프로그램을 도시하는 도면이다.
도 4는 본 발명의 제 2 실시예에 따라, 게이트웨이, 브라우저 및 애플리케이션 프로그램간의 상호 작용을 도시하는 도면이다.
도 5는 본 발명의 실시예에 따라, 웹 브라우저 프로그램으로부터 요청이 전송된 때, 주로 서버 시스템의 게이트웨이 프로그램에 의해 수행되는 동작을 도시하는 흐름도이다.
바람직한 실시예의 기술
본 발명은 첨부한 도면을 참조하면서, 예를 통해 보다 상세히 기술될 것이다.
본 발명은 서로 다른 환경들간에 연결이 요구되는 많은 상이한 데이터 처리 시스템 및 통신 시스템내에서 구현될 수 있다. 본 발명은 일정한 컴퓨터 하드웨어나 운영 체제, 또는 일정한 타입의 통신 링크에 국한되지 않으며, 하드웨어나 소프트웨어로 구현되거나, 하드웨어와 소프트웨어 구성 요소들을 결합하여 구현될 수도 있다.
본 발명의 바람직한 실시예는 비동기식 메시지 전달 및 큐잉 환경과 WWW의 동기식 환경간에 연결을 제공하는, 서버 시스템의 소프트웨어로 구현된 구성 요소를 포함한다.
도 1에 도시되고, 전술한 바와 같이, 인터넷의 단말 사용자는 인터넷 액세스 및 그 위에 설치된 웹 브라우저 소프트웨어(20)를 구비하는 컴퓨터(10)를 갖추고 있다. 웹 서버 시스템(30)은 인터넷에 부착되어 (IBM 인터넷 접속 서버와 같은) 웹 서버 소프트웨어(40)를 실행하는 (예를 들면, Windows NT 운영 시스템 소프트웨어 또는 UNIX 운영 시스템 소프트웨어를 실행하는 시스템이거나, 또는 OS/2 운영 시스템 소프트웨어를 실행하는 IBM PS/2 모델 80 컴퓨터이거나, 또는 IBM의 MVS 운영 시스템을 지원하는 메인프레임 시스템일 수 있는) 컴퓨터 시스템으로 구성된다. OS/2, MVS 및 PS/2는 IBM사의 상표이다. 웹 서버 소프트웨어는 웹 브라우저로부터의 HTTP(HyperText Transfer Protocol) 요청을 서비스하며, 이 요청이 정적(static) HTML 페이지에 대한 요청인지, 아니면 실행가능한 프로그램에 대한 요청인지를 분석하고, 웹 브라우저로 (예를 들면, 디스크 저장 매체내에 보관된) 이용가능한 HTML 페이지를 전송하든가, 아니면 프로그램(50)을 웹 서버 시스템 혹은 다른 시스템상에서 실행시켜, HTML을 생성하게 하든가 함으로써 응답한다. 프로그램들은 CGI(Common Gateway Interface)(60) 또는 웹 서버에 의해 구현되는 다른 인터페이스를 통해 웹 서버에 의해 기동된다(대부분의 웹 서버는 두 개의 인터페이스를 지원하며, 그 중 하나는 CGI임).
도 2는 IBM의 MQSeries 프로그램과 같은 큐 관리자 프로그램(queue manager programs)의 네트워크의 제어하에 비동기식 메시지 전달 및 큐잉을 이용한 프로그램간 통신에 대한 개략도이다. 큐 관리자는 애플리케이션에 의해 사용되는 메시지 큐잉 설비를 제공하는 시스템 서비스이다. 도 2에 도시된 바와 같이, 논리적 큐 관리자 프로그램(120)과, 원격 시스템(remote system)(160)상에서 실행되는 통신 큐 관리자(130)의 제어하에, 시스템(110)상의 제 1 애플리케이션 프로그램(100)은 큐(140)로 메시지를 입력하도록 하는 커맨드(command)를 발행한다. 서비스 제공 애플리케이션 프로그램(serving application program)(150)은 메시지를 처리할 준비가 되었을 때, 차후에 큐(140)로부터 메시지를 인출한다. 비지니스 애플리케이션은, 예를 들면, 은행 자금 이체(banking funds transfer) 또는 비행기 좌석 예약 애플리케이션일 수 있다. 메시지 큐는 그 내부에 메시지가 축적되고, 나중에 이로부터 메시지가 제거되는 일정한 명칭의 객체(named objects)이다.
일정한 큐의 유지는 하나의 일정한 큐 관리자의 몫이다. 메시지 큐는 단지 스택(stack)이 아니다. 즉, 큐에 메시지가 추가될 때, 메시지는 끝에 추가되며, 큐로부터 메시지가 인출될 때는 일반적으로 앞에서부터 제거된다. 메시지 큐의 물리적인 표현은 환경에 따라 다르지만, 메인 저장 매체내의 버퍼 혹은 버퍼들, 디스크나 다른 영구(permanent) 저장 장치상의 파일 또는 파일들, 또는 이들 모두일 수 있다. 메시지 큐의 물리적인 관리는 전적으로 큐 관리자 프로그램의 몫이며, 이러한 세부 내용은 애플리케이션 프로그램에 명확하게 알려져 있지 않다. 애플리케이션은 메시지 큐를 메시지가 축적되는 단순한 '블랙 박스(black box)'로서 생각할 수 있다. 애플리케이션은 메시지 큐잉 API 호출을 이용해 메모리 큐에 액세스하여 동일한 시스템상에 애플리케이션으로서 설치된 큐 관리자(즉, 국부 큐 관리자)와 통신하게 된다.
애플리케이션 프로그램은 일정한 명칭의 메시지 큐를 사용하기로 합의하고, 판독하기로 합의를 본 일정한 목표 큐에 메시지를 전송함으로써 통신한다. 메시지를 전송한 애플리케이션이 이들 큐의 위치를 알 필요는 없다. 즉, 각각의 애플리케이션은 자신의 국부 큐 관리자와만 상호 작용을 하며, 의도한 큐로 메시지를 전달하는 것은 상호접속된 큐 관리자의 네트워크의 몫이다. 각각의 큐 관리자는 네트워크내에 다른 큐 관리자들을 위치 지정하기 위한 국부 경로 배정표(local routing tables)를 유지한다. 이러한 방식으로, 애플리케이션 지원 메시지 큐잉 소프트웨어(application-supporting message queuing software)는, 애플리케이션 프로그램 스스로 복잡한 통신 제어를 구현해야 하는 필요성을 제거하여, 애플리케이션 프로그램에서 요구되는 복잡도의 레벨을 크게 감소시킨다.
본 발명은 자신의 국부 시스템상에 큐 관리자 프로그램이 설치되지 않은 사용자를 위해, 이러한 상호접속된 큐 관리자의 네트워크에 대한 액세스를 제공한다. 또한, 본 발명은 IBM의 MQSeries 제품과 같은 현존하는 애플리케이션인에이블링 미들웨어 프로그램(application-enabling middleware programs)의 서비스가 쓸모가 있는 복잡한, 신뢰성있는 WWW 애플리케이션의 개발을 위한 환경을 제공한다.
소프트웨어로 구현된 연결 구성 요소(link component)는 서버상에 설치되어 동기식 접속된 단말 사용자를 대신하여 메시지를 발행 및 수신한다. 이러한 연결 구성 요소(이하, 게이트웨이 프로그램이라 지칭함)는 전술한 바와 같이 웹 브라우저로부터의 요청에 의해 기동된다. 게이트웨이 프로그램은, 예를 들면, 표준 CGI를 통해 WWW 서버와 인터페이스한다. 게이트웨이 프로그램은 이하에 기술된 바와 같이, 복수의 병행 사용자 및 그들의 상태를 관리할 수 있도록 해주고, 동기식 HTTP와 비동기식 메시지간의 차이를 관리하며, 브라우저를 대신하여 자신이 발행한 비동기식 메시지의 진행에 관한 정보를 갖는 동기식 접속된 웹 브라우저에 제공한다. 또한, 게이트웨이 프로그램은 확실한 메시지 전달 시스템과 불확실한 HTTP 통신간의 연결을 관리한다. 서로 다른 아키텍처 및 하드웨어 플랫폼은 상이한 데이터 표현 및 파라미터를 갖기 때문에 (ASCII에서 EBCDIC로의 변환과 같은) 데이터 변환이 필요하지만, 이러한 변환은 기술 분야에 공지되어 있으며, 공지된 메시지 전달 소프트웨어 제품이 변환을 행하기 때문에 게이트웨이 프로그램에 의해 구현될 필요는 없다. 또한, 게이트웨이 프로그램에는 포괄적인 보안 설비를 제공할 필요가 없는데, 이는 이러한 설비가 공지된 메시지 전달 소프트웨어 및 (IBM의 보안 인터넷 서버(Secure Internet Servers)와 같은) WWW 서버에 구현되어 있기 때문이다.
도 3은 컴퓨터 시스템(230)상에 설치된 메시지 큐 관리자 프로그램(210)과 웹 서버 프로그램(220)간에 인터페이스하는 게이트웨이 프로그램(200)을 도시하고 있다. 본 실시예에서 도시된 바와 같이, 게이트웨이 프로그램은 서버 시스템(230)이 아닌 다른 머신(machine)상에서 실행될 수 있는 메시지 큐잉 애플리케이션 프로그램(240)과 웹 서버간에 인터페이스를 제공하는데 사용될 수 있다. 이러한 경우, 서버 시스템상에는 어떠한 애플리케이션 소프트웨어도 필요하지 않다. 메시지 큐잉 애플리케이션이 실행되는 이 시스템은 인터넷 또는 다른 통신 네트워크를 통해서 서버 시스템에 접속될 수 있다. 본 실시예의 애플리케이션 프로그램은 웹 브라우저(250)로부터의 HTML 서식의 데이터를 해석하여, 응답으로 HTML 페이지를 생성할 수 있다.
도 4에는 웹 서버 시스템상에 설치된 포맷 변환 애플리케이션 구성 요소(260)와 관련하여 게이트웨이 프로그램을 유사하게 사용하는 것이 도시되어 있다. 변환 구성 요소는 브라우저의 HTML 요청 및 응답과, HTML을 해석할 수 없는 애플리케이션 프로그램(270)의 내부 메시지 구조간에 변환을 제공한다. 따라서, 이러한 변환 구성 요소(260)는 본 발명에 따른 게이트웨이 프로그램(200')이 기존 메시지 큐잉 애플리케이션과 함께 사용될 수 있게 해준다. 또한, 소정의 서버 구성 요소는 여러 목표 애플리케이션에 대한 요청들과 웹 브라우저에 대한 응답을 단일 작업 유닛내에서 조정할 수 있다. HTML 변환에 대해서는 본 발명의 기술 분야에 잘 알려져 있으므로, 본 명세서에서는 더 이상 기술하지 않는다.
이제, 도 5를 참조하여, 웹 브라우저와 비동기식 애플리케이션 프로그램간의 통신의 흐름 및 게이트웨이 프로그램을 기술한다. 게이트웨이 프로그램과 연관된 각각의 메시지 큐잉 애플리케이션 프로그램에 대해 하나 이상의 애플리케이션 입력 큐가 정의된다. 이러한 애플리케이션 및 그 입력 큐는, 웹 서버 머신상에 위치하거나, 또는 메시지 큐잉 미들웨어의 지원을 이용하여 서버와 통신하려고 접속된 소정의 머신상에 위치할 수 있다. 게이트웨이는 애플리케이션 프로그램으로부터 전송된 메시지를 위해, 서버상에 위치하고, 국부 큐 관리자 프로그램에 의해 관리되는 응답 큐를 구비한다.
사용자는 그들이 사용하고자 하는 메시지 큐잉 애플리케이션 또는 서비스의 명칭을 지시하는 HTML 기입 서식 GET 혹은 POST 요청(HTML fill-in form GET or POST request)(300)을 통해 게이트웨이 프로그램과 상호 작용을 한다. 본 발명의 바람직한 실시예에서, 이 명칭은 애플리케이션 큐 명칭을 포함하지만, 이와 다른 실시예에서는, 이 큐 명칭은 애플리케이션 명칭으로부터 게이트웨이 프로그램에 의해 유도된다.
사용자가 애플리케이션을 기동할 때 사용하는 커맨드의 예는 다음과 같다.
<form method="post" action="/mig-bin/migcgi/MQApp">
메시지 큐잉 시스템을 지정한다:
<input type="input"; name="QMName"; size="48"; max length="48">
그리고, 애플리케이션을 지정한다:
<input type="input"; name="QName"; size="48"; max length="48">
<input type="submit"; value="Click here to start the application">
</form>
QName은 생성된 비동기식 메시지를 위한 목적지를 지정하는데 필요하며, 통상적으로 애플리케이션 그 자체로 식별된다. QMName은 선택적이다. 만약 지정되면, 이는 QName과 더불어 메시지의 목적지를 지정하는데 사용된다. 지정되지 않았다면, 공백 명칭이 사용된다. 통상적인 메시지 전달 시스템 명칭 분석 규칙이 적용될 수 있다. 애플리케이션 지정 문자 포맷 데이터를 포함하는 추가적인 필드가 서식 요청에 포함될 수 있다. 이들 필드는 게이트웨이에 의해 제공된 메시지내에서 애플리케이션으로 전달된다.
사용자가 애플리케이션과 하게 되는 제 1 상호 작용(애플리케이션 '엔트리 포인트(entry point)')은 전형적으로 정적 HTML 웹 페이지로부터 발생된다. 사용자는 일정한 URL을 다시 참조하거나(de-reference), 또는 게이트웨이 프로그램과 상호 작용하는 HTML 서식을 제시한다(300). 브라우저의 최초의 HTML 요청에는 세션 식별자가 포함되지 않는다. 사용자가 먼저 이러한 엔트리 포인트를 전달하고(즉, 이미 존재하는 세션에 속하지 않는 HTML 요청이 전송되고), 애플리케이션을 시작할 때, 게이트웨이 프로그램은 게이트웨이내의 고유한 세션 식별자에 의해 식별되는 소정의 세션을 구성하여(340), 사용자 요청 애플리케이션과 요청의 인스탄스(instance)를 함께 나타낸다. 세션 식별자는 각각의 세션이 전체 네트워크에 대해 유일함을 보증하기 위해, 충분히 랜덤하게 또는 고유 서버 식별표(identification)를 이용하여 생성되지만, 이것이 본질적인 것은 아니다. (IBM의 MQSeries 프로그램과 같은) 기존 메시지 큐 관리자 프로그램은 고유 식별자를 생성하는 설비를 가지며, 바람직한 실시예의 게이트웨이 프로그램은 이 설비를 이용한다.
게이트웨이는 클라이언트 시스템 혹은 사용자 식별 정보와 함께 세션 식별자 정보를 (예를 들면, OS/2 또는 AIX 운영 시스템 프로그램을 실행하는 서버 시스템의 교차 처리 공유 메모리(cross-processed shared memory)에 유지되거나, 또는 디스크 저장 매체에 기록되는 메시지 큐상의 엔트리로서 구현된) 세션 테이블에 추가한다(350). OS/2 및 AIX는 IBM사의 상표이다. 이하에 기술된 바와 같이, 이 테이블은 차후에 세션 식별자를 사용자 요청 및 애플리케이션 프로그램 응답과 관련시키는데 사용된다. 소정의 애플리케이션을 개시하는 데에는 이러한 방식으로 애플리케이션 엔트리 포인트를 통과하는 것 이외에 다른 방법이 없다. 사용자 상호 작용은 단지 하나의 세션에 속할 수 있다.
사용자의 상호 작용에 세션 식별자를 할당한 후, 게이트웨이 프로그램은 애플리케이션 프로그램의 정의된 입력 큐에 메시지를 입력하고(360), 타이머를 동작시키고(370), 애플리케이션 프로그램으로부터 응답 메시지를 수신하기 위해, 소정의 프로세스를 개시한다(370). 응답의 수신에 대해서는 이하에 기술될 것이다. 메시지는 요청하는 클라이언트 프로세스와 애플리케이션 프로그램간의 전체 통신내에서의 이러한 상호 작용의 위치를 식별하는 순번 형태로 상태 정보를 포함하며, 웹 브라우저로부터 제공된 입력 데이터 뿐만 아니라 사용자 또는 클라이언트 시스템의 식별표를 포함한다. 이러한 데이터는 적절한 문자 세트 및 코드 페이지로 애플리케이션에 제시된다(이와 함께, 전술한 바와 같이, 변환은 게이트웨이 프로그램 그 자체와는 별개인 서버 시스템상의 프로세스에 의해 수행됨). 메시지의 목적지는 장시간 실행되는 메시지 큐잉 애플리케이션일 수 있으며, 그 메시지의 도착은 메시지 큐잉 애플리케이션을 기동시켜 가동시키는데 사용될 수 있다. 전술한 바와 같이, 본 발명은 '웹 어웨어(Web aware)'(즉, HTML 페이지를 이해 및 생성할 수 있는)인 애플리케이션 및 HTML 변환을 필요로 하는 애플리케이션과 함께 사용하기 위해 구현될 수 있다. 본 발명의 실시예에 대한 이하의 기술은 웹 어웨어 애플리케이션과의 상호 작용의 예와 관련된 것이다.
메시지 큐잉 애플리케이션은 HTML 페이지를 게이트웨이 프로그램의 응답 큐로 전송함으로써 수신된 메시지에 응답해야 한다. 전술한 바와 같이, 게이트웨이 프로그램은 메시지가 수신되었을 때, 이미 큐로부터의 이들 응답을 인출하는 프로세스를 기동한 상태이다. 이것은 상호 작용 메시지 큐잉 프로그램의 알려진 설비를 이용하여 구현되며, 이러한 설비에 의해, 큐로부터 메시지를 획득하기 위한 커맨드는, Get 동작(Get operation)이 처음 시도된 때 응답이 즉시 이용될 수 없는 경우, 선택에 의해 지정된 기간동안 대기하라는 커맨드를 포함할 수 있다. IBM의 MQSeries 큐 관리자 제품에서, 이러한 설비는 이전에 인용된 간행물 "MQSeries-Message Queue Interface Technical Reference"(IBM 문서 번호 SC33-0850-01)에 기술된 바와 같이, 메시지 획득(Get Message) API 커맨드상의 옵션, "MQGET_Wait"로서 기동된다. 따라서, 게이트웨이 프로그램은, 메시지를 전송하고, 커맨드를 발행하여(370) 응답 메시지를 검색하며, 큐 관리자 프로그램이 응답 큐로부터 HTML 페이지를 검색하고(420), 이를 게이트웨이로 전달하는 실제 메시지 획득 동작을 제어하도록 맡겨 둔다. 그 후, 게이트웨이 프로그램은 HTML내의 은닉 필드로서 현재의 세션 식별자를 포함하는 HTML을 브라우저에 전송한다(420).
게이트웨이 프로그램이 응답 메시지를 획득하기 이전에 메시지 획득 동작의 대기 간격이 종료되면, 메시지 획득 커맨드가 반환되고, 게이트웨이 프로그램은 예비 응답 메시지를 브라우저에게 전송(390, 400)함으로써 응수(react)한다. 이러한 예비 응답은 이 동기식 세션을 종료시키지만, 이 예비 응답이 세션 식별자를 포함하기 때문에 이 세션은 나중에 '재시동(restarted)'될 수가 있다(엄격히 말하면 새로운 세션의 시작이지만, 이는 동일한 브라우저와 게이트웨이 프로그램간에 상호 작용을 수반하며, 동일한 세션 식별자를 참조하기 때문에 원 세션의 재시작으로 볼 수 있음). 응답을 수신하기 전에 WWW 브라우저와 게이트웨이 접속 WWW 서버 프로그램간의 동기식 세션이 이와 달리 포기된다면, 게이트웨이는 소정의 불확실한(in-doubt) 메시지 획득 동작을 취소할 것이다. 타임 아웃 이후, 또는 세션의 포기 이후에 게이트웨이 프로그램의 응답 큐상에 위치하는 임의의 응답 메시지는 WWW 브라우저가 관련 응답 메시지를 찾으려고 게이트웨이와 다시 상호 작용할 때까지 그곳에 유지될 것이다. 이러한 후속 WWW 브라우저 요청이 수신되면, 게이트웨이 프로그램은 (대기 간격을 갖는) 메시지 획득 동작을 다시 기동시킬 것이다.
세션내에서 클라이언트에게 전송되는 모든 통신이 세션 식별자를 포함할 필요는 없지만, 또다른 클라이언트 상호 작용이 예상될 때는 식별자가 포함된다. 이는 일반적으로, 시간 종료 이후 및 애플리케이션의 응답이 이용가능하기 전에 통신이 전송(400)될 때, 또는 애플리케이션 응답이 수신되고, 포함된 세션 상태 정보를 통해 또다른 클라이언트 상호 작용이 예상될 때 그러하다. 게이트웨이 프로그램은 일반적으로, 애플리케이션 프로그램으로부터 응답이 수신될 때, 관련 세션에 대한 세션 상태 정보로 그 세션 테이블을 갱신한다(420). 그러나, 애플리케이션이 클라이언트 시스템의 사용자 또는 프로세스로부터 더 이상 상호 작용을 필요로 하지 않는다면, 게이트웨이 프로그램은 페이지를 브라우저로 전달할 때, 소정의 지정된 세션 자원을 방출(420)할 것이다.
현재의 애플리케이션 프로그램은, 또다른 클라이언트 상호 작용을 '예상(expects)' 또는 요구하는 경우(즉, 그 전체 애플리케이션이 종료되기 전에 클라이언트가 현재의 애플리케이션 프로그램 또는 다른 애플리케이션 프로그램과 상호 작용할 것으로 예상되는 경우), 그 응답내의 플래그(flag)에 의해 이를 서버에게 알린다. 현재의 애플리케이션 프로그램은 또한, 클라이언트에게 전송되는 HTML 페이지내에 또다른 HTML 서식들을 포함하되, 그 동적으로(dynamically) 생성된 HTML 서식들 각각에 그 세션 식별자가 내장된다.
웹 브라우저는 페이지를 캐싱(cashing)(410)하는 설비를 갖고 있으므로, 그 내장된 세션 식별자를 저장할 수 있고, 이로 인해 단일 사용자가 하나 이상의 오픈(open) 세션을 가질 수 있다. 이들 세션은 서로 겹쳐지거나 중첩될 수 있다. 세션 식별자를 포함하는 소정의 서식이 후속적으로 브라우저에서 채워질 때(300), 세션 식별자는 서버의 게이트웨이 프로그램으로 다시 흘러가, 게이트웨이 프로그램이 그 후속 수신된 서식을 올바른 세션과 연관시킬 수 있게 해준다(320, 330). 세션 식별자는 그 요청을 다른 사용자로부터의 다른 요청과, 상이한 애플리케이션에 대한 동일한 사용자로부터의 다른 요청과 구별하는데 사용된다. 게이트웨이 프로그램의 일부인 소정 프로세스는 세션 테이블을 스캐닝하여(320), 소정의 테이블 엔트리를 수신된 요청의 세션 식별자 및 세션 상태 정보와 매칭시킨다. 세션 및 상태 정보가 애플리케이션과의 기존 상호 작용과 대응하지 않는다면, 게이트웨이 프로그램은 전술한 바와 같이 애플리케이션 입력 큐상의 메시지로서 상태 정보 및 입력 데이터를 입력한다(360). 그러나, 수신된 요청의 세션 및 상태 정보와 세션 테이블내의 엔트리를 비교하여 일치하면, 이는 틀림없이 이전 요청의 재시도이며, 이 때 응답은 이미 이용가능할 수도 있다. 그러면, 새로운 메시지는 애플리케이션에 전송되어서는 안되는데, 이는 관련 큐 관리자 또는 관리자들에 의존하여, 이전 전송된 메시지를 확실하게 단지 한 번만 전달할 것이기 때문이다. 게이트웨이 프로그램은 대기 간격을 구비한 획득 동작(Get with Wait operation)을 기동(370)하여, 예상된 응답 메시지가 있는지 그 응답 큐를 체크한다.
따라서, 브라우저로 반환되어 그곳에 저장되는 세션 식별자를 사용자 상호 작용에 할당함은 여러 가지 기술적인 문제들을 해결한다. 첫째, 하나 이상의 사용자가 동일한 애플리케이션 또는 서비스에 동시에 액세스할 수 있되, 게이트웨이는 자신이 수신한 응답들을 서로 구별할 수 있다. 둘째, 소정 애플리케이션의 장시간 실행되는 대화의 복수의 요청-응답쌍들을 함께 연관시키기 위해, 각각의 사용자에 의해 각각의 서버 애플리케이션에게 발행된 연속적인 요청들간에 충분한 문맥 정보(context information)가 전달되도록 보장한다. 셋째, 애플리케이션들을 구별하는 메카니즘을 제공함으로써, 사용자가 여러 상이한 애플리케이션과 상호 작용할 수 있게 해준다. 넷째, 아마 서버 또는 게이트웨이 프로그램에 아무런 통지없이 임의의 단계에서 사용자가 소정 애플리케이션을 포기할 가능성에 대비하며, 사용자와 서버간 연결 실패의 가능성을 해결한다.
동적으로 생성된 HTML은 세션 식별자를 포함할 뿐만 아니라, 현재 세션내의 상호 작용의 위치를 식별하는 순번을 포함할 것이다. 이는 다음 브라우저의 요청에 의해 게이트웨이 프로그램으로 반환되며, 게이트웨이 프로그램은 예상된 값인지 이를 체크한다(320). 테이블화된 세션 식별자 및 순번을 이용하여 데이터 및 실행 상태 문맥을 유지하는 이러한 메카니즘은 서로 의존하는 일련의 클라이언트 요청들의 수행을 가능하게 한다(서비스 제공(serving) 애플리케이션은 동일한 세션내의 복수의 메시지들을 서로 구별할 수 있음).
세션은 다음의 방식 중 어느 하나의 방식으로 종료될 수 있다.
- 서버 애플리케이션은 사용자 입력이 더 이상 요청되지 않음을 그 응답 메시지상에 나타내고, 게이트웨이는 지정된 세션 자원을 방출(420)함으로써 응답한다.
- 하나의 서식을 포함하는 HTML 페이지가 사용자에게 전송되지만, 관리자 정의 시간(administrator-defined time period)내에 채워지거나 반환되지 않는다. 게이트웨이는 (미종료 서비스 제공 애플리케이션의 불필요한 유지를 피하면서) 사용자로부터의 응답을 기다리는 서비스 제공 애플리케이션에 종료 메시지를 전송한다.
- 서비스 제공 애플리케이션이 수용가능한 시간내에 메시지에 응답하지 않는 때, 사용자는 게이트웨이 프로그램과의 대화를 통해 그 애플리케이션을 포기하기로 결심한다. 게이트웨이 프로그램은 자신이 전송한 메시지를 검색하려고 한다. 이러한 검색을 할 수 없다면, 게이트웨이 프로그램은 서비스 제공 애플리케이션 프로그램으로 취소 메시지를 전송한다.
세션 종료에 의해, 게이트웨이 프로그램 및 서비스 제공 애플리케이션은, 그들이 할당한 임의의 지정된 세션 자원을 방출할 수 있다. 세션이 종료된 후에, 세션 식별자가 사용자 또는 제공 애플리케이션으로부터 게이트웨이로 전송되면, 이 세션 식별자는 거부될 것이다(즉, 거부 통지 이외에 또다른 통신이 일어나지 않을 것임). 서버 제어형 타임 아웃 기간의 종료는 클라이언트 프로세스가 정지된 채로 유지되어야 하는 기간을 결정하지만, 세션을 자동적으로 종료시키지는 않음을 유의하자. 그러므로, 이러한 타임 아웃 이후에도, 게이트웨이 프로그램은 세션 식별 및 상태 정보를 여전히 유지할 것이다.
메시지 큐 관리자 프로그램은 게이트웨이 프로그램으로부터의 메시지가 애플리케이션 입력 큐로 전달되는 것과, 게이트웨이 프로그램으로 응답이 반환되는 것을 보증하는 설비를 갖고 있는 것으로 알려져 있다(이하 참조). 그러나, 메시지 큐 관리자 프로그램은 통신 링크가 특정한 시간에 기능을 발휘하는 것, 또는 애플리케이션 그 자체가 브라우저로부터의 요청을 처리하도록 실행하는 것을 보장할 수 없다. 또한, 큐 관리자 프로그램은 큐 관리자의 네트워크에 접속하는 웹 브라우저에 확실한 전달을 제공할 수 없다. 전술한 바와 같이, 게이트웨이 프로그램은 서버 애플리케이션의 입력 큐에 메시지를 입력함으로써, 수신된 웹 브라우저 요청에 반응한다. 우선, 메시지가 큐에 놓이면, 게이트웨이 프로그램은 카운트다운 타이머를 개시하고(370), 서버 애플리케이션으로부터의 응답을 기다린다. 애플리케이션으로부터의 소정의 응답이 수신되기 전에 타이머가 종료되면, 게이트웨이 프로그램은 HTML의 페이지를 생성하여(390) 사용자에게 종료를 알린다(400).
따라서, 게이트웨이 프로그램은 시스템 관리자 정의 시간의 종료 이전에 애플리케이션으로부터 응답을 수신하지 않은 경우, 그 자신의 응답을 브라우저로 전송하도록 구성되어 있다. 설정될 최대 클라이언트 정지 시간(10 초 또는 1 초가 적절함)은 관련 애플리케이션에 따라 다르다. 이러한 응답의 주된 목적은 클라이언트 시스템의 사용자 또는 통신 프로세스에 정보를 제공하여, 응답을 기다리도록 현재의 통신 세션을 유지할 것인지, 아니면 세션을 단절하고(그러나, 세션과 관련된 정보는 유지함), 다른 작업 항목으로 진행할 것인지 여부를 결정할 수 있게 하는 것이다. 클라이언트에 대한 이러한 응답은 단순히 단말 사용자에 대한 프롬프트(예를 들면, 타이머의 종료와 관련된 스크린 메시지를 기동함)일 수 있지만, 본 발명의 바람직한 실시예에 따른 브라우저에 대한 타이머 기동형(timer-triggered) 응답은 목표 머신에 의해 요청이 수신되었는지의 여부 및 애플리케이션이 요청을 판독하였는지의 여부를 또한 나타낸다. 메시지 큐 관리자 프로그램은 도착 확인 및 전달 확인 리포트 작성(Confirm On Arrival and Confirm On Delivery reporting)을 제공하는 것으로 알려져 있다. 본 발명의 바람직한 실시예에 따른 게이트웨이 프로그램은 이용가능한 리포트 작성 설비를 사용하여, 그 세션에 대한 통신의 진행에 관한 모든 이용가능한 정보가 종료 통지 내용에 포함되도록, 그 타이머 종료 통지를 구성한다.
클라이언트 시스템으로부터의 요청의 게이트웨이에 의한 수신의 즉각적인 확인으로서 예비 응답을 구현하는 것은 본 발명의 영역에 포함된다. 이러한 확인은 현재의 동기식 세션을 종료시키지만, 세션 식별자를 포함함으로써, 클라이언트가 나중에 상호 작용을 재수행할 수 있도록 한다. 비록, 클라이언트 프로세스는 이러한 경우에 있어, 비동기식으로 요청된 프로그램으로부터의 응답을 기다리도록 정지되지는 않지만, 통신 링크 또는 통신 시스템 그 자체의 문제로 인해, 요청과 수신 확인간에 지연 가능성이 남아 있다. 클라이언트의 타임 아웃 기간은 확인이 수신되지 않은 경우 언제 클라이언트 요청이 포기되어야 하는지를 자동화하는데 사용될 수 있으나, 기존 브라우저 소프트웨어의 사용자에 잘 알려진 바와 같이, 소정의 애플리케이션의 경우 언제 클라이언트 요청을 포기해야 하는지 여부는 단말 사용자가 결정할 일이다.
또한, 클라이언트 시스템으로부터 수신된 요청 '타입'에 응답하여, 즉각적인 예비 응답이 필요한지 여부 또는 이용가능한 경우 설정된 기간내에 완전 응답을 제공할 목적으로 설정된 정지 기간 혹은 타임 아웃 기간이 사용되어야 하는지 여부를 결정하는 게이트웨이 프로그램내의 프로세스를 제공하는 것도 본 발명의 영역에 포함된다. 본 발명의 특정한 일실시예에 따르면, 게이트웨이 프로그램은 기본값(default)으로 사용하는 구성가능한 타임 아웃값을 갖는다. 이 값은 게이트웨이 프로그램이 설치되는 서버 시스템상의 구성 파일(configuration file)에 보관되고, 게이트웨이 프로그램이 설치될 때 설정될 수 있으며, 차후에 시스템 관리자에 의해 변경될 수 있다. HTML 서식 요청에 이러한 기본값을 무시하는 (QName 및 QMName 파라미터와 유사한) 선택적인 파라미터가 포함될 수 있다. 전술한 실시예를 이용하면, 요청의 수신을 확인하는 신속한 응답을 필요로 하는 상품 주문을 제시하는 HTML 서식을 설계할 경우, 요청 서식내에 작은 타임 아웃값이 코딩되지만, 이러한 신속한 확인이 필요하지 않은 은행 예금 잔고(bank balance)에 대한 정보를 요청하는 경우, 보다 높은 값(아마도, 사용자가 기다릴 수 있다고 예상되는 가장 긴 대기 기간에 대응하는 값)이 코딩될 것이다.
국제 특허 출원 WO 95/10805 및 UK 특허 출원 제 9606183.3 호에는 확실한 메시지의 전달을 제공하는 메시지 전송 프로토콜이 기술되어 있다. 비록, 기본 네트워크 지원부는 전형적으로, 신뢰할 수 없는 통신 매체를 통하여 머신들간에 신뢰할 수 있는 패킷(packets) 전달을 보장하지만, 통상적으로는 확실한 전달을 할 수 없다. 데이터가 한 번 및 단지 한 번만 전송되고, 주요한 머신 또는 네트워크 장애 후에 통신이 재시작되고 적절하게 복원되는 것을 보장하기 위해서는, 패킷을 전달하는 기본 네트워크 지원부 이상의 것이 필요하다. 특히, 확실한 전달 시스템에서의 양측은 어떠한 데이터가 성공적으로 전송 및 '강화(hardened)'되었는지를 기억해야 한다. 강화(hardening)는 디스크와 같은 저장 매체에 데이터를 기록하고, 하드웨어 고장이 존재하더라도 데이터가 복원 가능함을 보증하는 프로세스이다. 비. 블레이크리, 에이치 해리스 및 알. 레위스에 의한 "Messaging and Queuing Using the MQI"(McGraw-Hill, 1994년)에는 메시지 큐잉 시스템에서의 자원 복원을 제공하는 것에 대해 기술되어 있다.
비지니스 애플리케이션은 그 활동이 트랜잭션 방식으로 조정될 필요가 있는 수개의 서비스 제공 애플리케이션을 포함할 수 있다. 이러한 문제는 서버 시스템내의 메시지 큐 관리자 프로그램으로 해결할 수 있다.
게이트웨이 프로그램은 단일의 메시지 큐잉 제어 애플리케이션 프로그램(a single controlling message queuing application program)으로 메시지를 전송하고, 메시지 큐잉 제어 애플리케이션 프로그램은 필요에 따라 이 메시지를 각각의 서비스 제공 애플리케이션에 대한 개개의 요청들로 분해한다. 이들 메시지는 전송된 후, 트랜잭션 제어하에서 메시지 큐 관리자 프로그램에 의해 재조합된다. 이러한 거리 제어를 제공하는 설비를 갖는 메시지 전달 프로그램(예를 들면, IBM의 MQSeries 메시지 전달 프로그램)은 본 기술 분야에 공지되어 있다.
증가하는 요구에 대처하도록 별도의 서비스 제공 애플리케이션을 추가할 수 있게, 게이트웨이 프로그램을 구성할 수 있다. 즉, 본 발명의 바람직한 실시예에 따른 방안은 스케일가능하다. 이는 게이트웨이 프로그램이 각각의 비동기식 메시지의 메시지 기술자(message descriptor) 부분내에 세션 식별자를 포함시킴으로써 이루어진다. 메시지 기술자는 메시지의 특성을 정의하는 정보를 포함하고, 이 정보는 메시지 큐잉 서비스에 의해 메시지 처리 방법을 결정하는데 사용된다. 메시지 그 자체는 두 별개의 성분, 즉, 애플리케이션 데이터 부분 및 애플리케이션 데이터에 부속된 메시지 기술자 정보를 포함하는 메시지 헤더 부분을 포함한다. 이에 인해, 수 개의 서비스 제공 애플리케이션 프로그램이 단일의 작업 큐에 대해 병렬적으로 실행될 수 있다. 애플리케이션은 연속적인 상호 작용들 사이에 그 자신의 문맥 정보를 유지할 필요가 있는 경우, 그 세션 식별자와 매칭하는 메시지를 검색할 수 있다. 문맥 정보를 유지하지 않는다면, 서비스 제공 애플리케이션의 인스탄스들은 그들이 발견한 제 1 메시지를 검색 및 처리할 수 있다.
그러므로, 본 발명에 따른 바람직한 실시예에 따르면, 기존 웹 브라우저를 변경하지 않으면서, 인터넷 WWW 서비스와 범용 메시지 전달 시스템을 용이하게 연결할 수 있다. 그러나, 본 발명이 이러한 구현에 한정되는 것은 아니다. 본 발명은 하나의 시스템상에 설치된 컴퓨터 프로그램이 동기식 통신을 필요로 하는 반면, 다른 시스템상에 설치된 프로그램은 비동기형의 통신을 필요로 하는 소정의 두 개의 데이터 프로세스 시스템간에 링크를 제공하도록 구현될 수 있다. 또한, IBM의 MQSeries는 TCP/IP, APPC 및 NetBIOS 통신 프로토콜을 지원하기 때문에, IBM의 MQSeries 제품과 같은 메시지 전달 소프트웨어와 연관된 본 바람직한 구현에 따른 본 발명은, 인터넷 프로토콜(internet protocol; IP)을 지원하지 않는 네트워크에 대한 브리지를 제공한다. 따라서, 본 발명에 의하면 IP 네트워크상의 애플리케이션과 비 IP 네트워크상의 애플리케이션간의 통신이 용이해진다.
전술한 바람직한 실시예는 메시지 전달 시스템과 관련하여 별개로 설치가능한 게이트웨이 프로그램을 포함한다. 이와 다른 실시예에서는 큐 관리자 프로그램의 내부 성분으로서 게이트웨이가 구현된다. 세션 식별자 및 세션 상태 테이블은 큐 관리자의 제어하에 메시지 큐로서 바람직하게 구현될 수 있다. MQSeries 큐 관리자내에 이미 구현된 메시지 ID(MessageID) 및 코렐 ID(CorelID) 식별자는, 큐 스캐닝시에 적절한 탐색 정보로서 사용될 수 있다. 그러나, 엔트리를 큐 관리자 제어형 큐에 그대로 둔 채로 변경할 수는 없기 때문에, 큐 관리자 제어형 큐에 저장된 엔트리의 갱신은 큐로부터 엔트리를 제거하는 단계, 변경 및 큐상에서 교체하는 단계를 필요로 함을 알아야 한다. 공유 메모리에 저장된 테이블내의 엔트리의 갱신은 단순히 이전 엔트리에 덧쓰기하는 것일 수 있다. '이벤트(즉, 응답) 또는 타임 아웃 대기' 동작을 위해 메시지 큐 관리자 프로그램의 설비를 이용하는 데에는 이점이 있지만, 전형적으로 이러한 기능은 멀티 스레드(multi-threaded) 운영 체제에 의해 제공되며, 메시지 큐 관리자 프로그램은 하위 운영 체제의 이러한 기능을 실제로 이용할는지 모른다. 이와 다른 실시예에서는, 새로운 응답 메시지가 먼저 응답 큐에 놓일 때마다 게이트웨이 프로그램을 기동시킬 수 있지만, 클라이언트 시스템과의 현재의 활성 세션이 없는 경우 이러한 기동은 바람직하지 않으므로, 이것은 바람직한 구현이 아니다. 본 발명의 또다른 실시예는 '대기 시간을 구비한 획득(Get with Wait)' 동작을 시동시키는 대신에 새로운 응답 메시지가 있는지 응답 큐를 주기적으로 스캐닝하는 것을 구현할 수 있다.
전술한 바람직한 실시예에서, 세션 식별자는 웹 브라우저의 캐시 저장 매체에 (HTML 페이지내의 내장된 필드로서) 자동적으로 저장된다. 그러나, 세션 식별자는 이와 달리 디스플레이 스크린상에서 단말 사용자에게 디스플레이될 수 있으며, 사용자는 후속 관련 요청을 생성할 때 이 세션 식별자를 타이핑 입력할 필요가 있을런지도 모른다. 타임 아웃 이후에 클라이언트 시스템에 대한 예비 응답이, 자동적으로 저장되지도 않고, 차후의 요청에 자동적으로 포함되지도 않고서 사용자에게 단지 디스플레이만 되는 실시예에서, 현재의 세션을 유지해야 하는지, 또는 차후의 요청 재시도를 위해 그 식별자를 저장해 두고 세션을 종료해야 하는지 여부를 결정하는 것은 단말 사용자이다. 또한, 전술한 예시적인 실시예는, 브라우저로 다시 전송되는 소정의 통신내에만 세션 식별자 및 세션 상태 정보가 단지 포함되는 특징을 갖지만, 명백하게 본 발명의 범주에 속하는 이와 다른 실시예는 모든 응답내에 적어도 그 세션 식별자를 포함하는 것을 수반한다.
전술한 바람직한 실시예의 특징은 게이트웨이 프로그램에 의해 상태 데이터를 유지한다는 것이며, 본 발명의 이와 다른 실시예는 애플리케이션 프로그램이 모든 순서화(sequencing) 문제를 처리하도록 하고, 게이트웨이 프로그램은 세션 상태 정보를 유지하는데 관여하지 못하게 한다.

Claims (21)

  1. 통신 네트워크를 위한 데이터 통신 서버 시스템―상기 서버 시스템(server system)은 네트워크의 서버 시스템과 클라이언트 시스템(client system)간에 동기식 통신(synchronous communication)을 지원하는 설비를 구비하며, 또한 네트워크의 서버 시스템 또는 다른 시스템상의 프로그램과의 비동기식 통신(asynchronous communication)을 지원하는 설비를 구비함―에 있어서,
    ① 상기 클라이언트 시스템과 상기 서버 시스템간의 동기식 통신 세션(session)내의 상기 클라이언트 시스템으로부터의 요청에 응답하여, 비동기식 통신으로서 상기 네트워크의 상기 서버 시스템 또는 다른 시스템상의 프로그램에 요청(request)을 전송하는 수단과,
    ② 상기 비동기식 통신에 대한 응답의 수신에 응답하여, 상기 응답과, 상기 클라이언트 시스템으로부터의 요청을 연관시켜 상기 클라이언트 시스템으로 응답을 전송할 수 있게 해주는 수단과,
    ③ 상기 비동기식 통신에 대한 응답을 수신하기 전에 예비 응답(preliminary reply)을 생성하는 수단과,
    ④ 상기 동기식 통신 세션내에서 적어도 하나의 예비 응답을 상기 클라이언트 시스템으로 전송하는 수단
    을 포함하는 데이터 통신 서버 시스템.
  2. 제 1 항에 있어서,
    상기 예비 응답은 상기 서버 시스템에 의해 할당되는 세션 식별자(session identifier)를 포함하는 데이터 통신 서버 시스템.
  3. 제 2 항에 있어서,
    상기 클라이언트 시스템으로부터의 상기 요청에 응답하여 타이머(timer)를 가동시키는 수단을 포함하고, 상기 클라이언트 시스템에 응답을 전송하는 상기 수단은 상기 비동기식 요청에 대한 응답이 수신되기 전에 사전설정된 시간이 종료될 때, 상기 클라이언트 시스템으로 예비 응답을 전송하도록 기동(trigger)되는 데이터 통신 서버 시스템.
  4. 제 1 내지 제 3 항 중 어느 한 항에 있어서,
    상기 클라이언트 시스템에 응답을 전송하는 상기 수단은 사전설정된 시간의 종료 이전에 상기 비동기식 요청에 대한 응답의 수신에 응답하여, 상기 동기식 세션내에서 전송되는 상기 클라이언트 시스템으로의 상기 응답내에 상기 수신된 응답으로부터의 정보를 포함시키는 데이터 통신 서버 시스템.
  5. 제 1 항에 있어서,
    세션 식별자를 상기 클라이언트 시스템으로부터의 요청에 할당하는 상기 서버 시스템의 프로세스를 포함하고, 프로그램으로 전송되는 상기 비동기식 요청내에 세션 식별자를 포함―상기 서버 시스템은 상기 세션 식별자를 포함하는 상기 비동기식 요청에 대한 응답의 상기 프로그램으로부터의 수신에 응답하여, 상기 세션 식별자를 이용해 상기 프로그램으로부터의 상기 응답과 상기 클라이언트 시스템으로부터의 요청을 연관시키고, 상기 클라이언트 시스템으로 전송되는 응답내에 상기 세션 식별자를 포함시킴―하는 데이터 통신 서버 시스템.
  6. 제 5 항에 있어서,
    상기 비동기식 요청에 대한 상기 프로그램의 응답에 포함된 세션 상태 정보(session state information)에 응답하여, 상기 클라이언트 시스템으로 전송되는 상기 응답내에 세션 상태 정보를 포함하는 수단을 포함시키는 데이터 통신 서버 시스템.
  7. 제 5 또는 제 6 항에 있어서,
    상기 서버 시스템은 클라이언트 시스템상에 설치된 WWW 브라우저(Browser) 소프트웨어로부터의 요청에 응답하는, 그 위에 설치된 인터넷 WWW 서버 소프트웨어(Internet World Wide Web Server software)를 구비하며, 클라이언트 시스템으로 전송되는 응답에 포함되는 HTML 페이지(pages)내에 세션 식별자 정보를 내장(embedding)시키는 수단을 포함하는 데이터 통신 서버 시스템.
  8. 제 7 항에 있어서,
    상기 서버 시스템은 상기 비동기식 요청에 대한 상기 프로그램의 응답에 포함된 세션 상태 정보에 응답하여, 상기 HTML 페이지내에 단말 사용자에 의해 완성될 하나 이상의 HTML 서식(form)―상기 서식에는 상기 세션 식별자가 내장됨―을 포함하는 데이터 통신 서버 시스템.
  9. 제 7 또는 제 8 항에 있어서,
    상기 서버 시스템은 상기 비동기식 요청에 대한 상기 프로그램의 응답에 포함된 세션 상태 정보에 응답하여, 상기 클라이언트 시스템으로 전송되는 상기 HTML 페이지내에 세션 상태 정보를 내장시키는 데이터 통신 서버 시스템.
  10. 제 7 내지 제 9 항 중 어느 한 항에 있어서,
    클라이언트 요청의 HTML 데이터를 상기 프로그램이 해석가능한 포맷으로 변환하고, 상기 프로그램으로부터의 응답에 포함된 정보를 HTML로 변환하여 이를 상기 클라이언트 시스템으로의 상기 응답내에 포함시키는 수단을 포함하는 데이터 통신 서버 시스템.
  11. 제 3 항에 있어서,
    상기 서버 시스템은 도착 확인(confirm on arrival; COA) 및/또는 전달 확인(confirm on delivery; COD) 리포트 작성을 구현하고, 상기 사전설정된 시간의 종료 이전에 COA 또는 COD 리포트의 수신에 응답하여, 상기 사전설정된 시간의 종료시 상기 클라이언트 시스템으로 전송되는 상기 통신내에 상기 COA 또는 COD 리포트를 포함시키는 데이터 통신 서버 시스템.
  12. 제 1 내지 제 11 항 중 어느 한 항에 있어서,
    상기 서버 시스템은 상기 비동기식 요청에 대한 상기 프로그램의 응답에 포함된 상기 세션 상태의 식별에 응답하여, 상기 클라이언트 시스템으로의 상기 응답내에 세션 식별 정보를 포함할지의 여부를 결정하는 데이터 통신 서버 시스템.
  13. 제 6 항에 있어서,
    상기 클라이언트 시스템으로의 응답내에 세션 상태 정보를 포함시키는 상기 수단은 상기 세션 상태에 따라 상기 세션 상태 정보를 포함할지의 여부를 결정하는 수단을 포함하는 데이터 통신 서버 시스템.
  14. 제 3 항에 있어서,
    상기 클라이언트 시스템으로부터의 요청에 응답하여, 예비 응답으로서 수신의 확인을 상기 클라이언트에게 전송할지 또는 상기 타이머를 가동할지 여부를 결정하는 수단을 포함하는 데이터 통신 서버 시스템.
  15. 통신 네트워크를 위한 데이터 통신 클라이언트 시스템에 있어서,
    ① 특정한 동기식 통신 세션내에서 상기 네트워크의 서버 시스템으로 요청을 전송하는 수단과,
    ② 상기 서버 시스템으로부터 응답을 수신하는 수단과,
    ③ 수신된 응답에 응답하여, 상기 서버 시스템의 프로세스에 의해 할당되어, 상기 응답내에 포함된 세션 식별자 정보를 저장하는 수단과,
    ④ 상기 서버 시스템과의 차후의 상호 작용(interaction)에 사용하기 위해 상기 저장된 정보를 검색하는 수단
    을 포함하는 데이터 통신 클라이언트 시스템.
  16. 제 15 항에 있어서,
    상기 검색 수단은,
    ① 클라이언트 요청을 전송하기 전에, 상기 클라이언트 요청에 대한 입력 정보와 수신된 응답의 저장 정보를 비교하는 수단과,
    ② 상기 입력 정보와 상기 저장 정보간의 일치(match) 판정에 응답하여, 상기 저장 정보를 검색하고, 상기 클라이언트 요청내에 상기 저장된 세션 식별자 정보를 포함시키는 수단
    을 포함하는 데이터 통신 클라이언트 시스템.
  17. 제 15 또는 제 16 항에 있어서,
    상기 서버 시스템으로부터의 응답에 포함된 세션 상태 정보에 따라, 언제 상기 세션 식별자 정보를 상기 클라이언트 시스템에 저장할지를 결정하는 수단을 포함하는 데이터 통신 클라이언트 시스템.
  18. 제 15 내지 제 17 항 중 어느 한 항에 있어서,
    ① 상기 세션 상태 정보가 상기 클라이언트 시스템에 저장될 때 타이머를 가동시키는 수단과,
    ② 상기 타이머의 종료시에 상기 세션 상태 정보를 삭제하는 수단
    을 포함하는 데이터 통신 클라이언트 시스템.
  19. 통신 네트워크의 제 1 시스템의 제 1 컴퓨터 프로그램과, 상기 네트워크의 제 2 시스템을 통해 액세스가능한 제 3 컴퓨터 프로그램간의 데이터 통신 방법에 있어서,
    ① 동기식 통신 세션내에서 상기 제 1 프로그램으로부터의 요청을 상기 제 2 시스템이 수신함에 따라, 비동기식 통신으로서 상기 제 3 프로그램에 요청을 전송하는 단계―상기 비동기식 요청은 상기 제 2 시스템의 제 2 프로그램에 의해 할당된 세션 식별자를 포함함―와,
    ② 상기 비동기식 통신에 대한 응답을 상기 제 2 시스템이 수신한 때, 상기 세션 식별자를 이용하여, 상기 응답을 상기 제 1 프로그램으로부터의 상기 요청과 연관시켜, 상기 제 1 프로그램으로 응답이 전송될 수 있게 하는 단계
    를 포함하는 데이터 통신 방법.
  20. 통신 네트워크의 제 1 시스템의 제 1 컴퓨터 프로그램과, 상기 네트워크의 제 2 시스템의 제 2 컴퓨터 프로그램을 통해 액세스가능한 제 3 컴퓨터 프로그램간의 데이터 통신 방법에 있어서,
    ① 동기식 통신 세션내에서 상기 제 1 프로그램으로부터의 제 1 요청을 상기 제 2 프로그램으로 전송하는 단계와,
    ② 상기 제 1 프로그램으로부터의 상기 동기식 요청을 상기 제 2 시스템이 수신함에 따라, 비동기식 통신으로서 상기 제 3 프로그램에 요청을 전송하는 단계―상기 비동기식 요청은 상기 제 2 시스템의 제 2 프로그램에 의해 할당된 세션 식별자를 포함함―와,
    ③ 상기 비동기식 통신에 대한 응답을 상기 제 2 시스템이 수신한 때, 상기 세션 식별자를 이용하여, 상기 응답을 상기 제 1 프로그램으로부터의 상기 요청과 연관시켜, 상기 제 1 프로그램으로 응답이 전송될 수 있게 하는 단계와,
    ④ 상기 동기식 통신 세션내에서 상기 제 1 프로세스로 응답을 전송하는 단계―상기 제 1 프로세스의 상기 응답은, 상기 비동기식 통신에 대한 응답이 수신되기 전에 전송된다면, 상기 세션 식별자를 포함하는 예비 응답을 이룸―
    를 포함하는 데이터 통신 방법.
  21. 제 20 항에 있어서,
    사전설정된 시간이 종료되기 전에 상기 비동기식 통신에 대한 응답이 전혀 수신되지 않은 경우, 상기 제 1 프로세스로 상기 예비 응답이 전송되는 데이터 통신 방법.
KR1019980708764A 1996-05-24 1997-05-19 컴퓨터 네트워크에서의 통신 접속 장치 및 방법 KR100275403B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9610898.0 1996-05-24
GB9610898A GB2313524A (en) 1996-05-24 1996-05-24 Providing communications links in a computer network
PCT/GB1997/001384 WO1997045798A1 (en) 1996-05-24 1997-05-19 Providing communications links in a computer network

Publications (2)

Publication Number Publication Date
KR20000010691A true KR20000010691A (ko) 2000-02-25
KR100275403B1 KR100275403B1 (ko) 2000-12-15

Family

ID=10794249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980708764A KR100275403B1 (ko) 1996-05-24 1997-05-19 컴퓨터 네트워크에서의 통신 접속 장치 및 방법

Country Status (13)

Country Link
US (1) US6336135B1 (ko)
EP (1) EP0978056B1 (ko)
JP (1) JP3578221B2 (ko)
KR (1) KR100275403B1 (ko)
CN (1) CN1117333C (ko)
CZ (1) CZ381198A3 (ko)
DE (1) DE69731318T2 (ko)
ES (1) ES2227692T3 (ko)
GB (1) GB2313524A (ko)
HU (1) HUP9902190A3 (ko)
MY (1) MY123071A (ko)
PL (1) PL329935A1 (ko)
WO (1) WO1997045798A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100397495B1 (ko) * 2000-06-24 2003-09-13 엘지전자 주식회사 실시간처리 운영체제의 주제어부와 부제어부간의접속해제를 안정화하기 위한 제어방법
KR101292442B1 (ko) * 2006-02-16 2013-07-31 마이크로소프트 코포레이션 커맨드-라인 쉘 처리 세션 확립 방법과 이를 구현하는컴퓨터 프로그램 제품, 및 커맨드용 원격 처리 세션을확립하는 방법
US8745489B2 (en) 2006-02-16 2014-06-03 Microsoft Corporation Shell input/output segregation

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073695B1 (en) 1992-12-09 2011-12-06 Adrea, LLC Electronic book with voice emulation features
US9053640B1 (en) 1993-12-02 2015-06-09 Adrea, LLC Interactive electronic book
US20040264402A9 (en) * 1995-06-01 2004-12-30 Padcom. Inc. Port routing functionality
US6418324B1 (en) * 1995-06-01 2002-07-09 Padcom, Incorporated Apparatus and method for transparent wireless communication between a remote device and host system
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6253061B1 (en) * 1997-09-19 2001-06-26 Richard J. Helferich Systems and methods for delivering information to a transmitting and receiving device
US6636733B1 (en) 1997-09-19 2003-10-21 Thompson Trust Wireless messaging method
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
JP2000036822A (ja) * 1998-07-16 2000-02-02 Nec Corp コンピュータネットワーク及びサーバ
US8060656B2 (en) * 1998-10-09 2011-11-15 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7293107B1 (en) * 1998-10-09 2007-11-06 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8078727B2 (en) * 1998-10-09 2011-12-13 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US7136645B2 (en) * 1998-10-09 2006-11-14 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US6434605B1 (en) * 1999-04-05 2002-08-13 Worldcom, Inc. Automatic detection and recovery for problems arising with interconnected queue managers
US6779107B1 (en) * 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US7882247B2 (en) 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US6976077B1 (en) * 1999-07-06 2005-12-13 Microsoft Corporation Automatic and transparent synchronization of server-side state information with a client application
US6701367B1 (en) * 1999-09-24 2004-03-02 Sun Microsystems, Inc. Mechanism for enabling customized session managers to interact with a network server
US6766349B1 (en) 1999-09-24 2004-07-20 Sun Microsystems, Inc. Mechanism for obtaining a thread from, and returning a thread to, a thread pool without attaching and detaching
AU2112301A (en) * 1999-09-24 2001-04-24 Sun Microsystems, Inc. Mechanism for enabling session information to be shared across multiple processes
US6895584B1 (en) 1999-09-24 2005-05-17 Sun Microsystems, Inc. Mechanism for evaluating requests prior to disposition in a multi-threaded environment
US6587827B1 (en) * 1999-10-22 2003-07-01 Hewlett-Packard Development Company, L.P. Order fulfillment processing system
US6871203B1 (en) * 1999-10-29 2005-03-22 International Business Machines Corporation Data processing system
US7107325B1 (en) * 1999-11-15 2006-09-12 Insweb Corporation System and method for optimizing and processing electronic pages in multiple languages
US20010034782A1 (en) * 2000-01-14 2001-10-25 Ian Kinkade Efficient web based proxy message method and apparatus for message queuing middleware resident on a server computer
US20060235945A1 (en) * 2000-01-14 2006-10-19 Frietas Nathaniel X Software architecture for wireless data and method of operation thereof
US8756342B1 (en) 2000-02-07 2014-06-17 Parallel Networks, Llc Method and apparatus for content synchronization
US7454457B1 (en) * 2000-02-07 2008-11-18 Parallel Networks, Llc Method and apparatus for dynamic data flow control using prioritization of data requests
JP2001216262A (ja) * 2000-02-07 2001-08-10 Fujitsu Ltd サーバ
IL135150A0 (en) * 2000-03-17 2001-05-20 Avner Geller A method and a system for secured identification of user's identity
US20030070074A1 (en) * 2000-03-17 2003-04-10 Avner Geller Method and system for authentication
US20040105122A1 (en) * 2000-03-20 2004-06-03 Schaeffer Richard J. Printer control and document management system
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
EP1334587A1 (en) * 2000-08-31 2003-08-13 Padcom Inc. Method and apparatus for routing data over multiple wireless networks
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US6810430B1 (en) * 2000-09-29 2004-10-26 Abb Automation Inc. Network communications coupler
US7830399B2 (en) * 2000-10-04 2010-11-09 Shutterfly, Inc. System and method for manipulating digital images
JP3803707B2 (ja) * 2000-12-28 2006-08-02 フューチャーシステムコンサルティング株式会社 フレームワークシステム
US6862628B2 (en) * 2001-01-05 2005-03-01 Microsoft Corporation Enhancing application performance in dynamic networks
US7689711B2 (en) * 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US9948644B2 (en) 2001-03-26 2018-04-17 Salesforce.Com, Inc. Routing messages between applications
US7788399B2 (en) 2001-03-26 2010-08-31 Salesforce.Com, Inc. System and method for mapping of services
US7516191B2 (en) * 2001-03-26 2009-04-07 Salesforce.Com, Inc. System and method for invocation of services
US7447802B2 (en) * 2001-03-30 2008-11-04 Oracle International Corporation Method and system for maintaining a configuration state
US7249195B2 (en) 2001-03-30 2007-07-24 Minor Ventures, Llc Apparatus and methods for correlating messages sent between services
US20020188666A1 (en) * 2001-05-23 2002-12-12 Lemon Michael J. Lightweight dynamic service conversation controller
US7562146B2 (en) * 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US20050198379A1 (en) * 2001-06-13 2005-09-08 Citrix Systems, Inc. Automatically reconnecting a client across reliable and persistent communication sessions
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US7801941B2 (en) * 2001-07-09 2010-09-21 Palm, Inc. Apparatus and method for exchanging data between two devices
US20030037102A1 (en) * 2001-08-14 2003-02-20 Philippe Eckert Message broker
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7146617B2 (en) 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US7870492B2 (en) 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US7003570B2 (en) * 2001-10-05 2006-02-21 Bea Systems, Inc. System for integrating java servlets with asynchronous messages
US20030101291A1 (en) * 2001-11-23 2003-05-29 Mussack Christopher Joseph Application programming interface for provision of DICOM services
DE10162986B4 (de) * 2001-12-20 2004-01-15 Siemens Ag Anbindung von Netzwerken mit unterschiedlichen Protokollen
US20030126109A1 (en) * 2002-01-02 2003-07-03 Tanya Couch Method and system for converting message data into relational table format
US6950959B2 (en) * 2002-02-12 2005-09-27 Fulcrum Microystems Inc. Techniques for facilitating conversion between asynchronous and synchronous domains
US7444410B1 (en) * 2002-02-15 2008-10-28 Oracle International Corporation Application platform execution environment
US7984157B2 (en) * 2002-02-26 2011-07-19 Citrix Systems, Inc. Persistent and reliable session securely traversing network components using an encapsulating protocol
US7661129B2 (en) * 2002-02-26 2010-02-09 Citrix Systems, Inc. Secure traversal of network components
US7558196B2 (en) * 2002-04-08 2009-07-07 Alcatel-Lucent Usa Inc. Method and apparatus for system resource management in a communications system
CN100478943C (zh) * 2002-05-31 2009-04-15 国际商业机器公司 访问不同类型后端数据存储器的系统和方法
JP4225743B2 (ja) * 2002-07-04 2009-02-18 株式会社東芝 無線端末及び通信制御方法
CN100426812C (zh) * 2002-08-15 2008-10-15 中兴通讯股份有限公司 一种基于分组数据业务流程的仿真系统
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
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
US7272660B1 (en) 2002-09-06 2007-09-18 Oracle International Corporation Architecture for general purpose near real-time business intelligence system and methods therefor
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
US7454423B2 (en) 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
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
US7243124B1 (en) 2002-09-06 2007-07-10 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
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
US7401158B2 (en) * 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7426059B2 (en) 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
JP3880513B2 (ja) 2002-12-16 2007-02-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバ
US7305554B2 (en) * 2002-12-16 2007-12-04 Alcatel Canada Inc. Dynamic acquisition of state during security system reconfiguration
US7480657B1 (en) * 2003-01-06 2009-01-20 Cisco Technology, Inc. Caching information for multiple service applications
US7769881B2 (en) * 2003-01-24 2010-08-03 Hitachi, Ltd. Method and apparatus for peer-to peer access
US8359393B2 (en) 2003-02-13 2013-01-22 Transunion Interactive, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
WO2004072830A2 (en) * 2003-02-13 2004-08-26 Truelink, Inc. Methods, apparatuses and systems facilitating seamless, virtual integration of online membership models and services
US7966418B2 (en) * 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US20040170181A1 (en) * 2003-02-27 2004-09-02 Padcom, Inc. Prioritized alternate port routing
JP4305004B2 (ja) * 2003-02-28 2009-07-29 ソニー株式会社 情報処理装置、およびコンテンツ情報処理方法、並びにコンピュータ・プログラム
US7904823B2 (en) * 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
KR100925198B1 (ko) * 2003-03-17 2009-11-06 엘지전자 주식회사 대화형 디스크 플레이어간의 사용자 메시지 교환방법
JP2004295262A (ja) * 2003-03-25 2004-10-21 Toudai Tlo Ltd スクリプトの実行方法およびサーバ・クライアントシステム
US7676580B2 (en) * 2003-03-27 2010-03-09 Microsoft Corporation Message delivery with configurable assurances and features between two endpoints
US7113964B1 (en) 2003-06-05 2006-09-26 Iteration Software, Inc. Method and apparatus for archiving data in a relational database system
US7548989B2 (en) * 2003-07-01 2009-06-16 International Business Machines Corporation Method and system for maintaining consistency during multi-threaded processing of LDIF data
US8429249B2 (en) * 2003-07-11 2013-04-23 Ca, Inc. System and method for configuring servlet-based components as dynamic content components
US7349968B2 (en) * 2003-07-31 2008-03-25 International Business Machines Corporation Method, system and program product for asynchronously processing requests
US7380009B2 (en) * 2003-08-07 2008-05-27 Interantional Business Machines, Incorporated Method, system and program product for delayed disconnection of a client from a server
US7478122B2 (en) * 2003-08-18 2009-01-13 Hostopia.Com Inc. Web server system and method
GB2405228B8 (en) * 2003-08-19 2007-09-13 Ibm A method, apparatus and computer program for verifying the order of a queue of work items
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
US20050080903A1 (en) * 2003-09-30 2005-04-14 Moshe Valenci Method, system, and program for maintaining a link between two network entities
US20050080759A1 (en) * 2003-10-08 2005-04-14 International Business Machines Corporation Transparent interface to a messaging system from a database engine
US8453196B2 (en) 2003-10-14 2013-05-28 Salesforce.Com, Inc. Policy management in an interoperability network
US7904882B2 (en) 2003-10-16 2011-03-08 Salesforce.Com, Inc. Managing virtual business instances within a computer network
US8229996B2 (en) * 2003-11-26 2012-07-24 Microsoft Corporation Asynchronous processing of task components in connection with rights management system and the like
US8775654B2 (en) * 2003-12-19 2014-07-08 Salesforce.Com, Inc. Apparatus and methods for mediating messages
US7650380B2 (en) * 2004-02-12 2010-01-19 International Business Machines Corporation System and method for messaging and collaborating in an intranet environment
CA2556862C (en) * 2004-02-27 2010-07-20 Research In Motion Limited System and method for communicating asynchronously with web services using message set definitions
US7496500B2 (en) * 2004-03-01 2009-02-24 Microsoft Corporation Systems and methods that determine intent of data and respond to the data based on the intent
US7739351B2 (en) 2004-03-23 2010-06-15 Salesforce.Com, Inc. Synchronous interface to asynchronous processes
US7590685B2 (en) * 2004-04-07 2009-09-15 Salesforce.Com Inc. Techniques for providing interoperability as a service
US7437169B2 (en) * 2004-06-07 2008-10-14 Microsoft Corporation System and method for optimizing network communication in response to network conditions
US8280948B1 (en) * 2004-06-08 2012-10-02 Persony Inc. System and method for enabling online collaboration amongst a plurality of terminals using a web server
US20060015622A1 (en) * 2004-07-14 2006-01-19 International Business Machines Corporation Enabling asynchronous transaction interactions on Web browsers
US20060026214A1 (en) * 2004-07-29 2006-02-02 International Business Machines Corporation Switching from synchronous to asynchronous processing
US7725605B2 (en) 2004-08-06 2010-05-25 Salesforce.Com, Inc. Providing on-demand access to services in a wide area network
US9645712B2 (en) 2004-10-01 2017-05-09 Grand Central Communications, Inc. Multiple stakeholders for a single business process
US7752671B2 (en) * 2004-10-04 2010-07-06 Promisec Ltd. Method and device for questioning a plurality of computerized devices
US7657618B1 (en) * 2004-10-15 2010-02-02 F5 Networks, Inc. Management of multiple client requests
US20060093125A1 (en) * 2004-11-02 2006-05-04 Dezonno Anthony J Messaging presence for non-messaging devices
US20060106840A1 (en) * 2004-11-04 2006-05-18 International Business Machines Corporation System and method for tracking notifications in a publish subscribe system
US7681074B2 (en) * 2005-04-29 2010-03-16 Microsoft Corporation Transport high availability
US7693071B2 (en) * 2005-05-27 2010-04-06 Microsoft Corporation System and method for routing messages within a messaging system
US7660850B2 (en) * 2005-05-27 2010-02-09 Microsoft Corporation Supporting a serial and a parallel invitation protocol
US7882176B2 (en) * 2005-05-27 2011-02-01 Microsoft Corporation Establishing a multiparty session by sending invitations in parallel
JP4725955B2 (ja) * 2005-06-30 2011-07-13 株式会社リコー 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
EP1775911B1 (en) * 2005-10-13 2018-02-28 BlackBerry Limited System and method for providing asynchronous notifications using synchronous data
US8095599B2 (en) * 2005-10-20 2012-01-10 International Business Machines Corporation Mail-based web application and document delivery
US20070094336A1 (en) * 2005-10-24 2007-04-26 Microsoft Corporation Asynchronous server synchronously storing persistent data batches
US8077699B2 (en) * 2005-11-07 2011-12-13 Microsoft Corporation Independent message stores and message transport agents
US8223777B2 (en) * 2005-11-15 2012-07-17 Oracle International Corporation Gateway for achieving low latency and high availability in a real time event processing system
US7921165B2 (en) * 2005-11-30 2011-04-05 Microsoft Corporation Retaining mail for availability after relay
US8751579B1 (en) * 2006-03-02 2014-06-10 Salesforce.Com, Inc. Method and system of maintaining a browser in a design application workflow
US20090133129A1 (en) * 2006-03-06 2009-05-21 Lg Electronics Inc. Data transferring method
CN101390084B (zh) * 2006-03-06 2012-04-11 Lg电子株式会社 域管理方法、域扩展方法和参考点控制器选择方法
US7805532B2 (en) * 2006-04-29 2010-09-28 724 Software Solutions, Inc. Platform for interoperability
WO2007130312A2 (en) * 2006-04-29 2007-11-15 724 Solutions Software Inc. Channel selection/translation based on user-preference
US8327024B2 (en) * 2006-04-29 2012-12-04 724 Solutions Software, Inc. System and method for SMS/IP interoperability
US9112808B2 (en) * 2007-02-06 2015-08-18 At&T Intellectual Property Ii, L.P. Devices, systems, and methods for providing data
KR100862354B1 (ko) * 2007-04-10 2008-10-13 전자부품연구원 비동기 검색 환경을 지원하는 멀티미디어 검색 방법
US8626951B2 (en) * 2007-04-23 2014-01-07 4Dk Technologies, Inc. Interoperability of network applications in a communications environment
US8635069B2 (en) 2007-08-16 2014-01-21 Crimson Corporation Scripting support for data identifiers, voice recognition and speech in a telnet session
US8478880B2 (en) * 2007-08-31 2013-07-02 Palm, Inc. Device profile-based media management
US8560669B2 (en) * 2007-09-26 2013-10-15 Quantcast Corporation Tracking identifier synchronization
US8515903B2 (en) 2007-10-03 2013-08-20 Database Logic Inc. Collaboration of plural databases by interaction through universal index
US20090094229A1 (en) * 2007-10-03 2009-04-09 Mark Warne Ferrel Method and apparatus for exploiting 'trace' function to support database integration
US8214847B2 (en) * 2007-11-16 2012-07-03 Microsoft Corporation Distributed messaging system with configurable assurances
US8200836B2 (en) * 2007-11-16 2012-06-12 Microsoft Corporation Durable exactly once message delivery at scale
US7792997B2 (en) 2007-12-31 2010-09-07 Accenture Global Services Gmbh Freight backbone messaging architecture
US20090210822A1 (en) * 2008-02-18 2009-08-20 Microsoft Corporation Locating meeting users
US9143540B2 (en) * 2008-04-24 2015-09-22 Oracle International Corporation System and method for providing service correlation in a service access gateway environment
US7970814B2 (en) 2008-05-20 2011-06-28 Raytheon Company Method and apparatus for providing a synchronous interface for an asynchronous service
EP2304924A1 (en) 2008-05-20 2011-04-06 Raytheon Company System and method for maintaining stateful information
ES2575006T3 (es) 2008-05-20 2016-06-23 Raytheon Company Sistema y método para filtrar mensajes
EP2281387A4 (en) 2008-05-20 2013-03-20 Raytheon Co SYSTEM AND METHOD FOR COLLABORATIVE MESSAGE TRANSMISSION AND DATA DISTRIBUTION
US7752261B1 (en) 2008-06-27 2010-07-06 Quant cast Corporation System and method for multibeaconing
US8949344B2 (en) * 2008-09-15 2015-02-03 Microsoft Corporation Asynchronous queued messaging for web applications
US8156203B2 (en) 2008-09-15 2012-04-10 Microsoft Corporation Dye injected request generation
CN101686245B (zh) * 2008-09-28 2014-06-11 国际商业机器公司 用于隔离超文本传输协议会话的方法和系统
US8005923B2 (en) * 2009-02-23 2011-08-23 International Business Machines Corporation System and method of obfuscating queue management
US9536222B2 (en) * 2009-12-28 2017-01-03 Sap Se Progress information in a service-oriented architecture
US8739166B2 (en) * 2009-12-28 2014-05-27 Sap Ag Progress-driven progress information in a service-oriented architecture
US9015136B2 (en) * 2010-01-22 2015-04-21 Microsoft Technology Licensing, Llc Storing temporary state data in separate containers
EP2595058A4 (en) * 2010-07-13 2014-03-12 Fujitsu Ltd DEVICE, SYSTEM, PROGRAM, AND METHOD FOR PROCESSING MULTIPLE PATHS
US8453127B2 (en) * 2010-09-20 2013-05-28 Sap Ag Systems and methods providing a token synchronization gateway for a graph-based business process model
CN102158518B (zh) * 2010-12-03 2014-04-30 华为技术有限公司 一种cdn网络中的数据传输方法、网络节点及系统
US9602287B2 (en) * 2011-06-02 2017-03-21 Sap Se Method and system for signed stateless data transfer
US8694998B2 (en) 2011-08-29 2014-04-08 Microsoft Corporation Cancellable command application programming interface (API) framework
US20130191500A1 (en) * 2012-01-19 2013-07-25 Ebay Inc. Methods and systems for providing a synchronous interface over an asynchronous message bus
US9253011B2 (en) * 2012-09-27 2016-02-02 Intuit Inc. Session-server affinity for clients that lack session identifiers
CN104184635B (zh) * 2014-08-19 2018-02-13 烽火通信科技股份有限公司 家庭网关基于Android RIL实现一对多数据通讯的方法及装置
US10033797B1 (en) * 2014-08-20 2018-07-24 Ivanti, Inc. Terminal emulation over HTML
JP6447224B2 (ja) * 2015-02-20 2019-01-09 日本電気株式会社 通信装置、中継装置、通信方法及び通信プログラム
US9961112B2 (en) * 2015-04-20 2018-05-01 Bomgar Corporation Method and apparatus for enforcing realtime access controls for endpoints
US10320906B2 (en) 2016-04-29 2019-06-11 Netapp, Inc. Self-organizing storage system for asynchronous storage service
US11100278B2 (en) 2016-07-28 2021-08-24 Ivanti, Inc. Systems and methods for presentation of a terminal application screen
US10397185B1 (en) * 2016-12-23 2019-08-27 EMC IP Holding Company LLC Scalable cloud hosted metadata service
US10574521B2 (en) * 2017-06-19 2020-02-25 Cisco Technology, Inc. Method and apparatus to predict configuration viability and dynamically manage multi-dimensional system scale in MSDC switches
US11516154B2 (en) * 2017-07-13 2022-11-29 Apple Inc. Systems for managing messaging conversations
CN111143745A (zh) * 2019-12-27 2020-05-12 中冶建筑研究总院有限公司 基于html的数据同步和交互的方法和系统
US11271968B2 (en) 2020-03-04 2022-03-08 International Business Machines Corporation Zero round trip time transmission for anticipatory request messages
CN112487218B (zh) * 2020-11-27 2023-07-14 北京百度网讯科技有限公司 内容处理方法、系统、装置、计算设备和存储介质
CN112395359B (zh) * 2020-11-30 2023-03-31 武汉烽火众智数字技术有限责任公司 一种基于数据库数据同步来实现http代理的方法和系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530848A (en) * 1992-10-15 1996-06-25 The Dow Chemical Company System and method for implementing an interface between an external process and transaction processing system
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
GB2276737A (en) * 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
EP0706685B1 (en) * 1993-06-28 1997-12-03 Dow Benelux N.V. An integrated plant environment system having a PROGRAM-TO-PROGRAM COMMUNICATION SERVER and method
CA2148459C (en) * 1993-10-08 2000-01-11 Paul Clarke Message transmission across a network
GB9406477D0 (en) 1994-03-31 1994-05-25 D2B Systems Co Ltd Interconnection of local communication bus systems
GB2288477A (en) * 1994-04-05 1995-10-18 Ibm Communications system for exchanging data between computers in a network.
JP2507235B2 (ja) * 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
US5889957A (en) * 1995-06-07 1999-03-30 Tandem Computers Incorporated Method and apparatus for context sensitive pathsend
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US6216151B1 (en) * 1995-12-13 2001-04-10 Bea Systems, Inc. Saving connection time by obtaining result of request at later reconnection with server supplied associated key
US5754772A (en) * 1996-03-26 1998-05-19 Unisys Corporation Transaction service independent HTTP server-to-transaction gateway
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US5961601A (en) * 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
JP3672208B2 (ja) * 1996-07-02 2005-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 階層化トランザクション処理方法
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6108689A (en) * 1996-10-11 2000-08-22 International Business Machines Corporation Method and system for processing messages in a distributed computing environment
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
US6088728A (en) * 1997-06-11 2000-07-11 Oracle Corporation System using session data stored in session data storage for associating and disassociating user identifiers for switching client sessions in a server
US6068661A (en) * 1997-10-01 2000-05-30 Micron Electronics, Inc. Method of emulating synchronous communication
US6085247A (en) * 1998-06-08 2000-07-04 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions using different computers
US6055564A (en) * 1998-03-11 2000-04-25 Hewlett Packard Company Admission control where priority indicator is used to discriminate between messages

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100397495B1 (ko) * 2000-06-24 2003-09-13 엘지전자 주식회사 실시간처리 운영체제의 주제어부와 부제어부간의접속해제를 안정화하기 위한 제어방법
KR101292442B1 (ko) * 2006-02-16 2013-07-31 마이크로소프트 코포레이션 커맨드-라인 쉘 처리 세션 확립 방법과 이를 구현하는컴퓨터 프로그램 제품, 및 커맨드용 원격 처리 세션을확립하는 방법
US8745489B2 (en) 2006-02-16 2014-06-03 Microsoft Corporation Shell input/output segregation

Also Published As

Publication number Publication date
US6336135B1 (en) 2002-01-01
DE69731318D1 (de) 2004-11-25
CZ381198A3 (cs) 1999-10-13
DE69731318T2 (de) 2006-03-09
CN1219257A (zh) 1999-06-09
HUP9902190A2 (hu) 1999-11-29
WO1997045798A1 (en) 1997-12-04
GB2313524A (en) 1997-11-26
CN1117333C (zh) 2003-08-06
PL329935A1 (en) 1999-04-26
KR100275403B1 (ko) 2000-12-15
MY123071A (en) 2006-05-31
EP0978056A1 (en) 2000-02-09
GB9610898D0 (en) 1996-07-31
EP0978056B1 (en) 2004-10-20
ES2227692T3 (es) 2005-04-01
JP3578221B2 (ja) 2004-10-20
JPH11510632A (ja) 1999-09-14
HUP9902190A3 (en) 2000-03-28

Similar Documents

Publication Publication Date Title
KR100275403B1 (ko) 컴퓨터 네트워크에서의 통신 접속 장치 및 방법
US6023722A (en) High-availability WWW computer server system with pull-based load balancing using a messaging and queuing unit in front of back-end servers
JP3290377B2 (ja) 無状態ネットワーク・プロトコルにおける状態の保存方法および装置
US6718390B1 (en) Selectively forced redirection of network traffic
US6199104B1 (en) Server-based host monitor
EP1449345B1 (en) Servicing requests that are issued in a protocol other than the protocol expected by the service
CA2494480C (en) Methods and apparatus for utilizing user software to communicate with network-resident services
US20090013035A1 (en) System for Factoring Synchronization Strategies From Multimodal Programming Model Runtimes
JPH11134277A (ja) クライアント側非同期フォーム管理方法および装置
US20020083035A1 (en) System and method for wireless delivery of text data
JPH11120108A (ja) サーバ側非同期フォーム管理方法および装置
US20050108299A1 (en) Real-time Web sharing system
JP2003505760A (ja) ダイナミクス・マネージャを備えたコンピュータ・システムによるアクティビティに基づくコラボレーションのための方法及びその装置
US7373424B2 (en) Exactly once protocol for message-based collaboration
US20020194327A1 (en) Method for sensing the status of a client from a server
US6915341B2 (en) System for sending messages to all users in a web hosting environment
JPH10105451A (ja) マルチメディアデータ通信システム
JP2002163184A (ja) 端末、通信方法および記録媒体
KR19990031814A (ko) 웹을 통해 제품정보를 관리하는 제품정보관리시스템
JP2001282750A (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: 20120824

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20130827

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20150827

Year of fee payment: 16

LAPS Lapse due to unpaid annual fee