KR20000004988A - 제한된 메모리 컴퓨터 시스템에서의 클라이언트관리흐름제어를 위한 방법과 장치 - Google Patents

제한된 메모리 컴퓨터 시스템에서의 클라이언트관리흐름제어를 위한 방법과 장치 Download PDF

Info

Publication number
KR20000004988A
KR20000004988A KR1019980707599A KR19980707599A KR20000004988A KR 20000004988 A KR20000004988 A KR 20000004988A KR 1019980707599 A KR1019980707599 A KR 1019980707599A KR 19980707599 A KR19980707599 A KR 19980707599A KR 20000004988 A KR20000004988 A KR 20000004988A
Authority
KR
South Korea
Prior art keywords
client node
server
request
nonblocking
node
Prior art date
Application number
KR1019980707599A
Other languages
English (en)
Other versions
KR100383381B1 (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 KR20000004988A publication Critical patent/KR20000004988A/ko
Application granted granted Critical
Publication of KR100383381B1 publication Critical patent/KR100383381B1/ko

Links

Classifications

    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Communication Control (AREA)

Abstract

서버와 논블락킹 클라이언트 노드(non-blocking client node)를 가지는 것으로서, 상기 클라이언트 노드는 상기 서버로부터 수신한 요구를 떨어뜨리지 않는 그러한 네트워크상에서의 데이터의 흐름을 제어하는 방법과 장치. 상기 논블락킹 클라이언트 노드에서 프로세스는 논블락킹 클라이언트 노드상의 자원을 할당하고 할당된 자원을 서버에 알린다. 상기 서버는 다음 상기 서버상의 어플리케이션에 의한 요구를 수행하기 위하여 필요한 상기 논블락킹 클라이언트 노드상의 자원을 결정하고 상기 어플리케이션에 의한 상기 요구를 만족시키기 위하여 충분한 자원이 상기 논블락킹 클라이언트 노드상에서 활용가능한가를 판별한다. 만일 충분한 자원이 활용 가능하면, 상기 서버는 상기 클라이언트 노드에 상기 요구를 보내고, 만일 충분한 자원이 존재하지 않는다면 서버는 상기 요구를 상기 논블락킹 클라이언트 노드에 발행하기 위한 충분한 자원이 존재할 때까지 기다린다.

Description

제한된 메모리 컴퓨터 시스템에서의 클라이언트 관리 흐름제어를 위한 방법과 장치
현대의 컴퓨터 네트워크는, 노드(node)라 불리는, 복수개의 컴퓨터로 구성되는데, 이들은 일련의 통신 링크(communication link)에 걸쳐서 데이터 패킷(packets of data)을 보내므로서 서로간에 통신한다. 상기 컴퓨터들은 일반적으로 통신 프로토콜(communication protocol)로 명명된 일련의 규칙(rule)에 따라 통신한다. 통신 프로토콜의 일 모델은 각각이 특수한 기능을 가지는 일련의 계층(layers)을 나타낸다. 최하부의 세 개의 프로토콜 계층은 일반적으로 네트워크 서비스(network services)로 명명된다.
네크워크 서비스의 최하부의 프로토콜 계층은 물리적 계층(physical layer)으로 명명된다. 물리적 계층은 통신 링크의 물리적 특징을 지배하는 표준의 세트(set)로서, 데이터가 전송되는 전압들 그리고 데이터 펄스가 통신 링크에 가해지는 주파수를 포함한다. 상기 물리적 계층상의 프로토콜 계층은 데이터 링크 계층(data link layer)이다.
데이터 링크 계층은 전송 노드(transmitting node)에서 본래의 데이터를 패킷(packet)들로 분할하고 수신노드(receiving node)에서 그 데이터 패킷들을 본래의 데이터로 재결합시키는 역할을 한다. 게다가, 상기 데이터 링크 계층은 데이터의 오류 없는 전송(the error free transmission of data)을 책임진다. 상기 데이터 링크 계층은 패킷 또는 패킷의 그룹이 수신 될 때마다 상기 수신노드가 전송 노드에 응답(acknowledgement)을 하도록 하므로서 이를 달성한다. 만일 데이터 링크 계층이 응답을 수신하지 못하면, 일정 시간 후, 전송에 반응하여, 데이터 링크 계층은 데이터 패킷이 수신노드에 도달하지 못한 것으로 통상 간주하고 패킷을 다시 전송한다. 응답의 사용은 흐름 제어기구(flow control mechanism)로서 작용하여 데이터가 너무 빠르게 수신노드로 전송되어지는 것을 방지한다.
데이터 패킷의 보증된 정확한 전달(delivery)의 보장과 함께, 소형 컴퓨터들의 컴퓨터 네트워크는 일단 큰 메인 프레임(main frame)에 관련된 태스크를 실행하도록 사용되어질 수 있다. 그러한 네트워크에서 클라이언트(client)라 불리는 노드들은 서버(servers)라 불리는 다른 노드들로부터 서비스를 요구한다. 예를 들어, 클라이언트 노드상의 사용자는 서버 노드상의 테이터에 접근할 수 있고, 그러므로서 사용자 노드상에서 그 데이터를 위한 저장의 필요성을 피할 수 있다.
선행기술에서 알려진 통상의 어플리케이션에서, 어플리케이션을 실행하는 클라이언트 노드는 국부적으로 파일 서버 노드(file server node)로부터 데이터를 요구한다. 만일 파일 서버 노드가 필요로 하는 데이터를 전송하기에 불충분한 버퍼(buffers)를 가지고 있음을 발견하면, 파일 서버 노드는 단순히 차단하고(block), 전송 버퍼의 유용성(availability)을 기다린다. 완전한 운용 체계(operating system)와 충분한 메모리를 가지는, 파일 서버 노드는 다른 태스크(task)상에서 계속하여 처리를 하면서 일 클라이언트에 데이터를 제공하는 일 태스크를 차단할 수 있다. 전송 버퍼들이 유용하게 되면, 파일 서버 노드는 차단을 해지하고 버퍼 데이터를 클라이언트 노드로 전송한다.
다른 통상적이지 않은 어플리케이션에서, 클라이언트 노드는, 네트워크 어플리케이션 실행 서버(network application execution server)라 불리는, 다른 네트 워크 노드 상에 위치한 어플리케이션을 실행한다. 이 경우 클라이언트 노드는 단순히 네트워크 어플리케이션 실행 서버를 위한 입력 및 출력 장치로서만 작용한다. 왜냐하면 클라이언트 노드는 데이터 입력과 디스플레이(display)를 위하여 주로 사용되기 때문에 그러한 클라이언트 노드는 통상적으로 완전한 운영체계보다는 작고 적은 용량의 메모리를 갖는 소규모(less powerful) 컴퓨터이다. 네트워크 어플리케이션 실행 서버상에서 실행하는 어플리케이션이 데이터를 필요로 하면, 통상적으로 반드시 그 데이터를 클라이언트로부터 요구한다. 따라서, 이러한 어플리케이션에서 클라이언트와 서버의 일반적인 역할은 전송데이터에 관하여 바뀌어져 있다.
좀더 작고 소규모(less powerful) 컴퓨터의 사용은 만일 클라이언트가 유용한 전송 버퍼가 불충분할 경우 이것은 버퍼가 유용해질 때까지 기다리면서 막지를 못한다. 이것은 클라이언트 노드가 한번에 한 태스크만을 할 수 있기 때문이며 그리고 단일 태스크상에서의 차단은 컴퓨터가 다른 태스크를 하는 것을 방지할 것이다. 나아가서, 클라이언트는 요구를 단순히 중지(drop)할 수 없으며 네트워크 어플리케이션 실행 서버가 휴식하도록 허락할 수도 없는데, 왜냐하면 작은 메모리 클라이언트 노드상의 충분한 버퍼의 부족은 자주 발생하며 그렇게 함은 작동능력의 저하를 초래할 수 있기 때문이다.
본 발명은 요구를 중지하지 않는 논블락킹(non-blocking) 클라이언트를 가지는 네크워크에서 흐름 제어를 제공하는 방법과 장치를 제공한다.
발명의 요약
본 발명의 일 실시예는 서버와 논블락킹 클라이언트 노드(non-blocking client node)를 가지며 여기서 상기 클라이언트 노드는 상기 서버로부터 수신된 요구(request)를 중지하지 않는 이러한 네트워크상에서 데이터 흐름을 제어하는 방법과 관련된다. 상기 방법은 상기 논블락킹 클라이언트 노드상의 자원(resource)을 할당하고 상기 서버에 할당된 자원을 통지하는 단계들을 포함한다. 상기 서버는 상기 서버상의 어플리케이션에 의한 요구를 충족시키기 위하여 필요한 상기 논블락킹 클라이언트상의 자원을 결정하고 상기 어플리케이션에 의한 요구를 만족시키기 위하여 상기 논블락킹 클라이언트 상에 충분한 자원이 활용가능한가를 결정한다. 만일 상기 논블락킹 클라이언트 노드상에서 상기 요구를 만족시키는 자원이 충분하다면, 상기 서버는 상기 요구를 상기 클라이언트 노드로 보내고, 만일 충분한 자원이 존재하지 않는다면, 상기 서버는 충분한 자원이 존재하여 상기 요구를 상기 논블락킹 클라이언트 노드에 발행(issue)할 때까지 기다린다. 다른 실시예에서는, 상기 서버는 가분의(divisible) 요구를 상기 논블락킹 클라이언트 노드상에서 활용 가능한 자원에 의하여 만족되어지는 부요구(subrequest)로 분할한다.
또 다른 실시예에서, 본 발명은 통신 링크에 의하여 상호 연결된 서버 노드와 논블락킹 클라이언트 노드를 포함하는 네트워크상의 흐름 제어기(flow controller)에 관련된다. 상기 논블락킹 클라이언트 노드는 메모리와 프로세서를 포함한다. 상기 논블락킹 클라이언트 노드상의 프로세서는 자원을 할당하고 상기 통신링크를 건너서 활용 가능한 자원을 상기 서버 노드에 통지한다. 어플리케이션을 실행하는 서버 노드상의 흐름 제어 프로세스는 상기 논블락킹 클라이언트 노드를 향한 상기 어플리케이션으로부터 요구를 수신한다. 서버 흐름 제어 프로세스는 상기 논블락킹 클라이언트 노드 상에 상기 요구를 서비스하기 위한 충분한 자원이 활용가능한가를 결정한다. 만일 충분한 자원이 활용 가능하면 상기 서버 흐름 제어 프로세스는 상기 어플리케이션으로부터의 요구를 상기 통신 링크를 건너서 상기 논블락킹 클라이언트 노드로 보낸다. 만일 충분한 자원이 활용가능하지 않는다면, 상기 서버 프로세스는 상기 논블락킹 클라이언트 노드로부터 상기 어플리케이션으로부터의 요구를 서비스할 정도로 충분한 자원이 활용 가능하다는 정보를 수신할 때까지 상기 요구를 보유한다.
본 발명은 일반적 컴퓨터를 위한 통신 시스템(communication systems)에 관한 것으로서, 더욱 상세히는 컴퓨터 네트워크를 위한 통신시스템에 관한 것이다.
본 발명은 클레임에서 정의된다. 상기의 그리고 앞으로의 본 발명의 이점은 첨부된 도면을 참고로 하여 설명되는 상기 상세한 설명에 의하여 더욱 잘 이해될 것이다. 여기서:
도 1은 본 발명인 어플리케이션에 따른 네크워크에서 통신링크에 의하여 연결된 서버 노드와 논블락킹 클라이언트 노드의 실시예의 블락도; 그리고
도 2와 2a는 본 발명의 방법의 일 실시예의 흐름선도.
전반적으로 살펴보면, 도 1을 참고로, 본 발명에 따라 구성된 네트워크는 서버노드 10과, 논블락킹 클라이언트 노드 18과 그리고 통신 링크 26을 포함한다. 상기 서버노드 10은 마이크로프로세서 34와 메모리 42를 가진다. 상기 서버 마이크로프로세서 34는 어플리케이션 프로세스 50과 흐름 제어 프로세스 58을 실행한다. 상기 서버노드 10은 메모리 42내의 자원 계수기(resource counter) 66을 또한 가진다. 상기 논블락킹 클라이언트 노드 18은 클라이언트 프로세스 82를 실행하고 제한된 메모리 90을 가지는 마이크로프로세서 74를 또한 포함한다. 제한된 메모리에 의하여, 상기 노드가 수신하는 수개의 요구를 다룰 수 있는 통신 버퍼 공간이 불충분하다는 것을 의미한다. 선행기술에서 이러한 조건은 통상 요구 또는 연관된 회답을 떨어뜨리는 결과를 초래했다.
부팅(booting)시, 상기 클라이언트 프로세스 82는 활용 가능한 버퍼 메모리 90을 98(a)-(c)와 같은 할당 가능한 자원으로 분할한다. 이것은 주어진 서비스에 대한 메모리가 클라이언트-호스트 연결 베이시스(client-host connection basis)에서 활용 가능한 것을 보장한다.
동작중, 상기 클라이언트 노드 18은 상기 통신 링크 26을 넘어서 서버 노드 10으로 상기 클라이언트 노드 18이 활용 가능하며 각각 버퍼의 최대 사이즈를 가지는 자원 98(a)-(c)의 양을 가리키는 메시지(message)를 보낸다. 상기 흐름 제어 프로세스 58은 이 숫자를 그 연결을 기술하는 데이터 구조의 메모리에 위치한 자원 계수기 66에 로드(load)한다. 상기 클라이언트 노드 18은 다음 상기 서버 노드 10에 상기 클라이언트 노드 18을 위한 어플리케이션 프로세스 50을 실행하도록 요구한다. 예를 들어, 상기 어플리케이션 프로세스는 회계 프로그램(accounting program)일 수 있다.
상기 어플리케이션 프로세스 50이 실행되면 이것은 상기 클라이언트 노드 18로부터 데이터를 받을 필요가 있을 수 있고 이것은 그러한 요구를 흐름 제어 프로세스 58에 한다. 예를 들어, 어플리케이션 프로그램 50은 디스크 114 상의 기억(storage) 106으로부터의 상기 클라이언트 노드 18로부터 수신되어지는 데이터를 요구할 수 있다. 흐름 제어 프로세스 58은 상기 클라이언트 노드 18이 메모리 42의 자원 계수기 66을 검사하므로서 요구를 서비스 할 정도로 충분한 자원을, 예를 들면 98(a)-(c)의 버퍼들, 가지고 있는 가를 결정한다. 만일 충분한 98(a)-(c)의 버퍼가 상기 클라이언트 노드 18상에 존재를 한다면, 상기 서버 노드 10은 요구를 클라이언트 노드 18로 보내고, 그리고 자원 계수기 66에서 활용 가능한 자원의 수를 감소시킨다.
만일 충분한 자원 98(a)-(c)가 상기 클라이언트 노드 18상에 존재하지 않는다면, 상기 흐름 제어 프로세스 58은 어플리케이션 프로세스 50으로부터의 요구가 복수개의 클라이언트 노드 19상에 충분한 자원이 존재할 수 있는 작은 요구로 분할 될 수 있는지를 판단한다. 예를 들어, 만일 어플리케이션 50이 클라이언트 노드 18로부터 5개 버퍼의 정보를 필요로 하였고 그리고 상기 클라이언트 노드는 단지 세 개의 활용 가능한 버퍼를 가진다면, 상기 흐름 제어 프로세스 58은 상기 요구를 클라이언트 노드 18로부터의 세 개의 버퍼의 데이터를 위한 요구로 분할한다. 흐름 제어 프로세스 58은 다음 잔여의 두 개의 버퍼를 위한 부요구(subrequest)를 그 자원들이 상기 클라이언트 노드 18에서 활용 가능해질 때까지 보유한다. 일단 클라이언트 노드 18이 어플리케이션 프로세스 50으로 데이터의 전송을 끝마치고 따라서 재사용을 위하여 버퍼들을 해방(release)하면, 상기 서버노드 10은 세 개의 버퍼의 도착을 알아차리고 상기 클라이언트 노드 18에서 활용 가능한 세 개의 가리키는 추가의 자원에 의하여 자원 계수기 66을 늘린다. 그러나, 클라이언트의 단일 스레디드 속성(single threaded nature) 때문에, 전송은 바르게 되어지지 않을 수 있고, 그 결과로 상기 요구 그리고/또는 응답이 전송이 완료될 때까지 할당전의 버퍼에 남아 있게 된다.
상기 과정을 도 2 및 2a를 참조로 더욱 자세히 고려하면, 상기 클라이언트 노드 18은 활용 가능한 버퍼 메모리를 전송 및 수신 버퍼들로 분할하므로서 버퍼들을 할당한다.(스텝 10) 상기 클라이언트 18은 다음 상기 클라이언트 노드 18이 데이터 전송을 위하여 활용 될 수 있음을 가리키고 클라이언트 노드 18이 활용 가능한 전송 버퍼 98(a)-(c)의 숫자를 가리키는 메시지를 상기 통신 링크 26을 건너서 서버 노드 10에 보낸다.(스텝 18) 상기 서버 노드 10상의 흐름 제어 프로세스 58은 이 메시지를 수신하고(스텝 26) 활용 가능한 버퍼의 숫자를 그 메모리 42에 저장한다.(스텝 34) 일단 서버노드 10상의 어플리케이션 50이 작동하면(스텝 42), 흐름 제어 프로세스 58은 어플리케이션 50으로부터의 그리고 클라이언트 노드 18에서 행하여진 데이터를 위한 요구를 수신한다.(스텝 50)
상기 흐름 제어 프로세스 58은 상기 요구를 서비스 할 정도로 충분한 버퍼 98(a)-(c)를 클라이언트 노드 18이 가지고 있는지를 판별한다.(스텝 58) 상기 흐름 제어 프로세스 58은 메모리 42에 저장된 버퍼들의 숫자를 검사하므로서 이를 행한다. 만일 흐름 제어 프로세스 58이 클라이언트 노드 18상에 충분한 버퍼 98(a)-(c)가 존재한다고 결정하면(스텝 64), 상기 서버 노드 10은 상기 요구를 클라이언트 노드 18로 보내고, 그리고 메모리 42에 기술된 활용 가능한 버퍼들의 숫자를 줄인다.(스텝 72)
만일 흐름 제어 프로세스 58이 충분한 버퍼 98(a)-(c)가 클라이언트 노드 18상에 존재하지 않는다고 결정을 하면(스텝 80), 흐름 제어 프로세스 58은 다음 상기 요구가 분할 될 수 있는지를 결정한다.(스텝 88) 만일 상기 요구가 분할 될 수 있다면(스텝 96), 상기 분할된 요구를 위하여 필요한 버퍼의 양(스텝 58)은 전술한바와 같이 결정된다. 만일 상기 요구가 추가로 분할되지 않는다면(스텝 104) 상기 흐름 제어 프로세스는 다음 상기 분할된 요구를 위한 활용 가능한 버퍼의 충분한 수를 기다린다.(스텝 112)
일단 클라이언트 노드 18이 상기 요구를 수신하고(스텝 120) 그리고 요구된 데이터를 서버노드 10으로 보내면(스텝 128), 클라이언트 노드 18은 재사용을 위하여 버퍼를 해방한다. 일단 서버 노드 10이 상기 데이터를 수신하면(스텝 136), 이것은 버퍼들이 상기 클라이언트 노드 18에서 비어졌음을 알고 메모리 42에서 활용 가능한 버퍼의 수를 늘린다.(스텝 144) 이러한 방식으로 상기 서버 노드 10은 클라이언트 노드 18상에서 활용 가능한 버퍼의 수의 어카운트(account)를 유지하고, 상기 클라이언트 노드가 블락(block)되고 요구들을 떨어뜨림이 없이, 데이터가 손실되는 것을 방지하기 위하여 필요한 흐름 제어를 제공한다.
본 발명의 바람직한 실시예를 기술하였지만, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게는 본 발명의 사상을 구현하는 다른 실시예가 명백할 것이다. 그러므로, 본 발명의 실시예는 공개된 것에만 한하지 않고 다음의 청구범위의 사상과 범위에 따를 것이다.

Claims (7)

  1. 서버와 논블락킹 클라이언트 노드(non-blocking client node)를 가지는 것으로서, 상기 클라이언트 노드는 상기 서버로부터 수신한 요구를 떨어뜨리지 않는 그러한 네트워크 상에서의 흐름을 제어하는 방법으로서,
    상기 논블락킹 노드에 의하여 상기 논블락킹 클라이언트 노드상에 자원을 할당하는 단계와;
    상기 논블락킹 클라이언트 노드에 의하여 상기 할당된 자원을 상기 서버에 알리는 단계와;
    상기 서버를 실행하는 어플리케이션의 요구를 만족시키기 위하여 필요한 상기 논블락킹 클라이언트 노드상의 자원을 상기 서버에 의하여 결정하는 단계와;
    상기 어플리케이션의 상기 요구를 수행하기 위하여 상기 논블락킹 클라이언트 노드상에서 충분한 자원이 활용 가능한가를 상기 서버에 의하여 판별하는 단계와;
    만일 충분한 자원이 상기 요구를 수행하기 위하여 상기 논블락킹 클라이언트 노드상에서 활용 가능한 경우 상기 서버에 의하여 상기 어플리케이션의 상기요구를 상기 논블락킹 클라이언트 노드에 보내는 단계를 포함하여 이루어지는 상기 네트워크 상에서의 흐름을 제어하는 방법.
  2. 제 1 항에 있어서,
    상기 서버상에서 상기 논블락킹 클라이언트 노드의 상기 할당된 자원의 상기 알림을 저장하며, 여기서 상기 알림은 상기 논블락킹 클라이언트 노드상의 활용 가능한 할당된 자원에 관한 정보를 포함하는 단계를 더욱 포함하여 이루어지는 상기 흐름 제어 방법.
  3. 제 2 항에 있어서,
    상기 논블락킹 클라이언트 노드로 보내진 상기 어플리케이션으로부터의 상기 요구에 반응하여 상기 서버에 의하여 상기 알림 정보를 업데이트(update)하는 단계를 더욱 포함하여 이루어지는 상기 흐름 제어방법.
  4. 제 1 항에 있어서,
    만일 상기 요구를 수행하기 위한 상기 논블락킹 클라이언트 노드상의 충분한 활용 가능한 자원이 유용하지 않은 경우 상기 서버에 의하여 상기 요구가 분할 가능한가를 판별하는 단계와;
    만일 상기 요구가 분할 가능한 경우 상기 요구를 부요구로 분할하고, 여기서 상기 부요구의 수는 적어도 하나의 상기 부요구를 만족시킬 수 있도록 충분한 자원이 상기 논블락킹 클라이언트 노드상에서 유용한 그러한 단계와; 그리고
    상기 논블락킹 클라이언트 노드상에서 상기 자원에 의하여 수행되어질 수 있는 상기 부요구를 상기 서버에 의하여 상기 논블락킹 클라이언트 노드로 보내는 단계를 더욱 포함하여 이루어지는 상기 흐름 제어방법.
  5. 제 2 항에 있어서,
    이전의 요구에 대한 상기 논블락킹 클라이언트 노드로부터의 응답을 상기 서버에 의하여 수신하는 단계와; 그리고
    상기 응답에 반응한 상기 서버노드상에 저장된 상기 알림을 업데이트(update)하는 단계를 더욱 포함하여 이루어지는 상기 흐름 제어방법.
  6. 복수개의 자원으로 이루어지는 것으로서, 요구들을 떨어뜨릴 수 없는 상기 논블락킹 클라이언트 노드와;
    상기 논블락킹 클라이언트 노드와 통신하는 서버노드로서,
    상기 서버노드상에서 실행되는 어플리케이션 프로세스와;
    상기 서버 노드상에서 실행되는 흐름 제어 프로세스와;
    상기 논블락킹 클라이언트 노드상에 위치한 활용 가능한 자원에 해당되는 자원정보로 구성되는 메모리를 포함하여 이루어지는 상기 서버노드를 포함하여 이루어지는 네트워크.
  7. 제 6 항에 있어서,
    상기 서버노드는 자원정보에 반응하여 상기 어플리케이션 프로세스로부터의 요구를 상기 논블락킹 클라이언트 노드로 보내며 그리고 상기 보내진 요구에 응하여 상기 자원정보를 업데이트하고 그리고 버퍼들은 상기 논블락킹 클라이언트 노드로부터 수신하는 상기 네트워크.
KR10-1998-0707599A 1996-03-25 1997-03-14 제한된메모리컴퓨터시스템에서의클라이언트관리흐름제어를위한방법과장치 KR100383381B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/621,848 US5748892A (en) 1996-03-25 1996-03-25 Method and apparatus for client managed flow control on a limited memory computer system
US08/621,848 1996-03-25

Publications (2)

Publication Number Publication Date
KR20000004988A true KR20000004988A (ko) 2000-01-25
KR100383381B1 KR100383381B1 (ko) 2003-08-19

Family

ID=24491899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-1998-0707599A KR100383381B1 (ko) 1996-03-25 1997-03-14 제한된메모리컴퓨터시스템에서의클라이언트관리흐름제어를위한방법과장치

Country Status (11)

Country Link
US (1) US5748892A (ko)
EP (1) EP0891585B1 (ko)
JP (1) JP3382953B2 (ko)
KR (1) KR100383381B1 (ko)
AT (1) ATE195186T1 (ko)
AU (1) AU711393B2 (ko)
CA (1) CA2250108C (ko)
DE (1) DE69702708T2 (ko)
ES (1) ES2148957T3 (ko)
IL (1) IL126324A (ko)
WO (1) WO1997036231A1 (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555529B2 (en) * 1995-11-13 2009-06-30 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US6950991B2 (en) * 1995-11-13 2005-09-27 Citrix Systems, Inc. Interacting with software applications displayed in a web page
US6088515A (en) 1995-11-13 2000-07-11 Citrix Systems Inc Method and apparatus for making a hypermedium interactive
JPH09231143A (ja) * 1996-02-23 1997-09-05 Sony Corp 通信制御方法
JPH09270793A (ja) 1996-04-03 1997-10-14 Sony Corp 通信制御方法
US5951648A (en) * 1997-03-03 1999-09-14 Mylex Corporation Reliable event delivery system
US6366945B1 (en) * 1997-05-23 2002-04-02 Ibm Corporation Flexible dynamic partitioning of resources in a cluster computing environment
US6138251A (en) * 1997-06-30 2000-10-24 Sun Microsystems, Inc. Method and system for reliable remote object reference management
DE19807076A1 (de) * 1998-02-20 1999-08-26 Cit Alcatel Datenbereitstellungsystem
US5930472A (en) * 1998-04-29 1999-07-27 Motorola, Inc. Method and apparatus in a wireless communication system for splitting a browser functionality between a wireless client and an infrastructure portion
US6928469B1 (en) * 1998-12-29 2005-08-09 Citrix Systems, Inc. Apparatus and method for determining a program neighborhood for a client node in a client-server network using markup language techniques
US6341338B1 (en) * 1999-02-04 2002-01-22 Sun Microsystems, Inc. Protocol for coordinating the distribution of shared memory
WO2000057296A1 (en) * 1999-03-23 2000-09-28 Cornice Communications, Inc. A network resource administration server for provisioning services over a network
US7703102B1 (en) * 1999-08-23 2010-04-20 Oracle America, Inc. Approach for allocating resources to an apparatus based on preemptable resource requirements
US7035989B1 (en) 2000-02-16 2006-04-25 Sun Microsystems, Inc. Adaptive memory allocation
WO2001075610A1 (en) * 2000-03-31 2001-10-11 Siebel Systems, Inc. Thin client method and system for generating page delivery language output from applets, views, and screen definitions
US6802057B1 (en) 2000-05-03 2004-10-05 Sun Microsystems, Inc. Automatic generation of fortran 90 interfaces to fortran 77 code
US6785713B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for communicating among a network of servers utilizing a transport mechanism
US6785726B1 (en) 2000-05-08 2004-08-31 Citrix Systems, Inc. Method and apparatus for delivering local and remote server events in a similar fashion
US6789112B1 (en) 2000-05-08 2004-09-07 Citrix Systems, Inc. Method and apparatus for administering a server having a subsystem in communication with an event channel
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
US6986130B1 (en) 2000-07-28 2006-01-10 Sun Microsystems, Inc. Methods and apparatus for compiling computer programs using partial function inlining
US7117239B1 (en) 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US6910107B1 (en) 2000-08-23 2005-06-21 Sun Microsystems, Inc. Method and apparatus for invalidation of data in computer systems
US7035912B2 (en) * 2000-08-28 2006-04-25 Abaco.P.R., Inc. Method and apparatus allowing a limited client device to use the full resources of a networked server
GB2367913A (en) * 2000-09-16 2002-04-17 Motorola Inc Processor resource scheduler
WO2002025461A1 (en) * 2000-09-20 2002-03-28 Uteina Corporation A method and system for ipv6/h.323 protocol based on-demand/multidirectional multimedia communication, in a local broadband network infrastructure
US8108543B2 (en) 2000-09-22 2012-01-31 Axeda Corporation Retrieving data from a server
US7185014B1 (en) 2000-09-22 2007-02-27 Axeda Corporation Retrieving data from a server
US7406681B1 (en) 2000-10-12 2008-07-29 Sun Microsystems, Inc. Automatic conversion of source code from 32-bit to 64-bit
US6957208B1 (en) 2000-10-31 2005-10-18 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for performance analysis using semantic knowledge
US20020093161A1 (en) * 2001-01-12 2002-07-18 Enor Corporation Scooter
US7222177B2 (en) * 2001-05-21 2007-05-22 Hewlett-Packard Development Company, L.P. Methods and structure for implementing web server quality-of-service control
US7254601B2 (en) 2001-12-20 2007-08-07 Questra Corporation Method and apparatus for managing intelligent assets in a distributed environment
US8135843B2 (en) 2002-03-22 2012-03-13 Citrix Systems, Inc. Methods and systems for providing access to an application
US7178149B2 (en) 2002-04-17 2007-02-13 Axeda Corporation XML scripting of soap commands
US7966418B2 (en) 2003-02-21 2011-06-21 Axeda Corporation Establishing a virtual tunnel between two computer programs
US7827556B2 (en) * 2003-07-17 2010-11-02 Silicon Graphics International Method for equitable resource sharing between local and network filesystems
FR2858074A1 (fr) * 2003-07-21 2005-01-28 France Telecom Procede de gestion de l'execution d'au moins un programme sur plusieurs calculateurs
GB2412754B (en) * 2004-03-30 2007-07-11 Hewlett Packard Development Co Provision of resource allocation information
US7627627B2 (en) * 2004-04-30 2009-12-01 Hewlett-Packard Development Company, L.P. Controlling command message flow in a network
US9210073B2 (en) * 2004-04-30 2015-12-08 Hewlett-Packard Development Company, L.P. System and method for message routing in a network
EP1603271A1 (de) * 2004-06-01 2005-12-07 Siemens Aktiengesellschaft Topology handler
US7450128B2 (en) * 2004-11-15 2008-11-11 Hewlett-Packard Development Company, L.P. Systems and methods of providing image copy and modify commands to a receiver with an associated display
CN1859217A (zh) 2005-06-30 2006-11-08 华为技术有限公司 一种设备管理中处理任务的方法、系统及装置
US7817849B2 (en) * 2005-08-18 2010-10-19 Hewlett-Packard Development Company, L.P. Method and apparatus for graphical data compression
CN100421389C (zh) * 2005-11-10 2008-09-24 华为技术有限公司 一种设备管理中定制任务处理方法
US20070255814A1 (en) * 2006-04-27 2007-11-01 Securetek Group Inc. System for server consolidation and mobilization
US8370479B2 (en) 2006-10-03 2013-02-05 Axeda Acquisition Corporation System and method for dynamically grouping devices based on present device conditions
US8065397B2 (en) 2006-12-26 2011-11-22 Axeda Acquisition Corporation Managing configurations of distributed devices
US11128575B2 (en) 2018-07-20 2021-09-21 Bank Of America Corporation System for increasing processing efficiency through automated resource field transformation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2585535B2 (ja) * 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法
US5367688A (en) * 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US5014221A (en) * 1988-01-29 1991-05-07 Digital Equipment Corporation Mechanism for arbitrating client access to a networked print server
EP0381645A3 (en) * 1989-01-18 1992-08-05 International Business Machines Corporation System and method for communicating between a plurality of processors
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5305440A (en) * 1989-05-15 1994-04-19 International Business Machines Corporation File extension by clients in a distributed data processing system
JPH05158847A (ja) * 1991-12-02 1993-06-25 Nec Corp ローカルエリアネットワーク用データバッファリング装置
US5349682A (en) * 1992-01-31 1994-09-20 Parallel Pcs, Inc. Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
US5465351A (en) * 1992-08-14 1995-11-07 Noblenet Inc. Client-side memory management process for client-server computing
US5440719A (en) * 1992-10-27 1995-08-08 Cadence Design Systems, Inc. Method simulating data traffic on network in accordance with a client/sewer paradigm
US5329619A (en) * 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
JP3408850B2 (ja) * 1992-12-09 2003-05-19 三菱電機株式会社 クライアント・サーバシステムおよびその制御方法、並びにクライアント機装置
US5325527A (en) * 1993-01-19 1994-06-28 Canon Information Systems, Inc. Client/server communication system utilizing a self-generating nodal network
JPH06348637A (ja) * 1993-06-11 1994-12-22 Oki Electric Ind Co Ltd クライアントサーバシステム
US5515508A (en) * 1993-12-17 1996-05-07 Taligent, Inc. Client server system and method of operation including a dynamically configurable protocol stack
DE69525556T2 (de) * 1994-03-21 2002-09-12 Avid Technology Inc Gerät und Verfahren ausgeführt auf einem Rechner für Echtzeit Multimedia Datenübertragung in einer verteilten Rechneranordnung

Also Published As

Publication number Publication date
ATE195186T1 (de) 2000-08-15
IL126324A0 (en) 1999-05-09
CA2250108A1 (en) 1997-10-02
DE69702708D1 (de) 2000-09-07
IL126324A (en) 2002-07-25
ES2148957T3 (es) 2000-10-16
DE69702708T2 (de) 2000-12-28
JP2000507428A (ja) 2000-06-13
CA2250108C (en) 2000-09-05
EP0891585A1 (en) 1999-01-20
EP0891585B1 (en) 2000-08-02
AU2330397A (en) 1997-10-17
JP3382953B2 (ja) 2003-03-04
US5748892A (en) 1998-05-05
AU711393B2 (en) 1999-10-14
KR100383381B1 (ko) 2003-08-19
WO1997036231A1 (en) 1997-10-02

Similar Documents

Publication Publication Date Title
KR100383381B1 (ko) 제한된메모리컴퓨터시스템에서의클라이언트관리흐름제어를위한방법과장치
US5526492A (en) System having arbitrary master computer for selecting server and switching server to another server when selected processor malfunctions based upon priority order in connection request
US5805827A (en) Distributed signal processing for data channels maintaining channel bandwidth
CN102369688B (zh) 资源动态调整方法和调度设备
US20080301294A1 (en) Method and Apparatus for Operating an Open API Network Having a Proxy
US5872929A (en) Method and system for managing terminals in a network computing system using terminal information including session status
US20080019351A1 (en) Method And System For Affinity Management
US6119173A (en) System and method for communications and process management in a distributed telecommunications switch
WO2021057666A1 (zh) 传输控制方法、网管服务器、基站及存储介质
CN110535811B (zh) 远端内存管理方法及系统、服务端、客户端、存储介质
US7111063B1 (en) Distributed computer network having a rotating message delivery system suitable for use in load balancing and/or messaging failover
US20030028640A1 (en) Peer-to-peer distributed mechanism
CN114024968B (zh) 一种基于中间设备的报文发送方法、装置和电子设备
US20050265362A1 (en) Message relay program and message relay device
CN114064317A (zh) 分布式系统中的节点调用方法及相关装置
CN113765871A (zh) 堡垒机管理的方法和装置
JP2002342193A (ja) データ転送先サーバ選定方法及び装置及びデータ転送先サーバ選定プログラム及びデータ転送先サーバ選定プログラムを格納した記憶媒体
JP6595419B2 (ja) Api提供装置及びapiリクエスト制御方法
CN111190544A (zh) 一种用于分布式存储的流控方法和装置
JP6488557B2 (ja) 通信制御システム、通信システム、通信制御方法および通信制御プログラム
US11336592B2 (en) Flexible link level retry for shared memory switches
JP6571614B2 (ja) 振分装置、通信システム及びデータ振分方法
KR100442599B1 (ko) 교환 시스템에서 워크스테이션의 분산 객체를 이용한메시지 처리 장치 및 방법
JP2820942B2 (ja) 通信プロトコル処理方法
CN114579321A (zh) 分布式锁的实现方法及装置

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
FPAY Annual fee payment