KR19990082753A - 비동기클라이언트/서버컴퓨팅시스템에서의데이터처리장치,방법및서버그룹에관하여작업부하관리를수행하기위한컴퓨터프로그램제품 - Google Patents

비동기클라이언트/서버컴퓨팅시스템에서의데이터처리장치,방법및서버그룹에관하여작업부하관리를수행하기위한컴퓨터프로그램제품 Download PDF

Info

Publication number
KR19990082753A
KR19990082753A KR1019990008875A KR19990008875A KR19990082753A KR 19990082753 A KR19990082753 A KR 19990082753A KR 1019990008875 A KR1019990008875 A KR 1019990008875A KR 19990008875 A KR19990008875 A KR 19990008875A KR 19990082753 A KR19990082753 A KR 19990082753A
Authority
KR
South Korea
Prior art keywords
availability data
server
group
work request
received
Prior art date
Application number
KR1019990008875A
Other languages
English (en)
Other versions
KR100324976B1 (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 KR19990082753A publication Critical patent/KR19990082753A/ko
Application granted granted Critical
Publication of KR100324976B1 publication Critical patent/KR100324976B1/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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

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 Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관하여 작업부하 관리를 수행하기 위한 데이터 처리 장치를 제공하며, 클라이언트 애플리케이션으로부터 작업 요청을 수신하기 위한 수단; 서버 그룹에 관한 가용성 데이터를 조사(consulting)하고, 조사된 가용성 데이터에 기초하여 수신된 작업 요청을 충족시키기 위해 이용될 상기 그룹의 특정 서버를 선택하기 위한 수단 - 여기서, 조사된 가용성 데이터는 상기 그룹의 각 서버에 관한 가용성 데이터가 수신되었는지에 상관없이 상기 그룹의 서버를 선택하기 위해 작업 요청이 수신되는 현상태에서 항상 이용됨 -; 및 상기 그룹의 특정 서버로의 전송을 기다리는 전송 큐에 상기 수신된 작업 요청을 배치하기 위한 수단을 가진다.

Description

비동기 클라이언트/서버 컴퓨팅 시스템에서의 데이터 처리 장치, 방법 및 서버 그룹에 관하여 작업부하 관리를 수행하기 위한 컴퓨터 프로그램 제품{DATA PROCESSING APPARATUS, METHOD AND COMPUTER PROGRAM PRODUCT FOR CARRYING OUT WORKLOAD MANAGEMENT WITH RESPECT TO A GROUP OF SERVERS IN AN ASYNCHRONOUS CLIENT/SERVER COMPUTING SYSTEM}
본 발명은 컴퓨터 시스템 분야에 관한 것으로서, 특히 클라이언트/서버("분산"으로 알려져 있음)" 컴퓨팅 시스템에 관한 것이며, 여기서 한쪽의 컴퓨팅 장치("클라이언트")는 다른쪽의 컴퓨팅 장치("서버")에게 클라이언트의 작업을 수행하도록 요청한다.
클라이언트/서버 컴퓨팅은 정보 기술 분야에서 지난 몇 년에 걸쳐 중요해졌다. 이러한 유형의 분산 컴퓨팅은 예를 들어, 어느 머신(machin)이 작업을 수행하는데 보다 적합한 다른 머신으로 작업의 일부를 보낼 수 있게 한다. 예로서, 서버는 방대한 양의 데이터의 기억을 관리하는 데이터베이스 프로그램을 실행시키는 고출력 컴퓨터(high-powered computer)일 수 있고, 반면에 클라이언트는 단지 클라이언트의 로컬 프로그램 중 하나에서 이용하는 데이터베이스의 정보를 요청하는 데스크탑 퍼스널 컴퓨터(PC)이다.
메시지 큐잉(메시지 중개로 알려져 있음) 데이터 처리 기술은 오늘날의 클라이언트/서버 컴퓨터망에서 더욱더 일반화되어 있다. 이러한 기술은 비록 클라이언트 및 서버의 컴퓨터 시스템이 운영 체계(operation system), 데이터 포맷(data format) 및 통신 프로토콜(communication protocol)의 면에서 서로 다르더라도 클라이언트 컴퓨터 시스템이 서버 컴퓨터 시스템과 통신하게 한다. 특히, 이러한 기술의 비동기적인 성질 때문에, 클라이언트는 서버로 메시지를 전송할 수 있고, 서버가 메시지를 큐에 저장할 수 있으며, 차후에 메시지를 처리하여 응답할 수 있다.이는 클라이언트 및 서버가 실시간적으로 통신하도록 요구하는 동기적인 클라이언트/서버 모델과는 아주 상이하다(예를 들면, 클라이언트가 다른 작업을 수행하기 전에 서버가 응답하기를 기다림).
메시지 큐잉 및 상용 메시지 큐잉 제품들이 1994년에 McGraw-Hill에서 발간한 B.Blakeley, H.Harris & R.Lewis의 "Messaging and Queuing Using the MQI"와, IBM사로부터 이용 가능해진 "A Introduction to Messaging and Queuing" (IBM 문서번호 GC33-0805-00) 및 "MQSeries - Message Queue Interface Technical Reference" (IBM 문서 번호 SC33-0850-01)의 간행물에 설명되어 있다. "IBM" 및 "MQSeries"는 IBM사의 상표이다. IBM의 MQ 시리즈(MQSeries) 메시징 소프트웨어 제품은 시스템 또는 통신 실패시에도 단 한번에 메시지를 확실히 전달하여 주는 메시징 프로토콜에 따른 작업의 논리 유닛(logical units)내에서 메시지를 동기화시키면서 트랜잭션의 메시징 지원을 제공한다. MQ 시리즈 제품은 수신 시스템에 의해 안전하게 저장되었는지 확인될 때까지 송신 시스템의 기억장소에서 마지막까지 메시지를 삭제하지 않고, 정교한 복원 설비를 이용함으로써 확실한 전달을 제공한다. 성공적인 기억의 확인으로 메시지 전달을 완료하기 전에는, 송신 시스템 기억장소에서의 메시지 삭제와 수신 시스템 기억 장소에서의 메시지 삽입 모두가 불확정적으로 유지되며, 실패시 자동적으로 철회될 수 있다. 이러한 메시지 전송 프로토콜과, 관련 트랜잭션의 개념 및 복원 설비는 참고로 여기서 인용되는 국제특허출원 W0 95/10805 및 미국 특허 5465328에 설명되어 있다.
메시지 및 큐잉 소프트웨어 아키텍처를 이용하는 것과 같은 비동기적인 클라이언트/서버 망에서, 그룹의 각 서버가 클라이언트의 요청을 충족시킬 수 있는 서버들의 그룹을 제공하는 것이 일반화되고 있다. 이러한 경우에 클라이언트의 요청은 하나의 서버가 사용중일때 다른 서버로 전송될 수 있기 때문에 보다 빠르게 제공될 수 있다. 전형적으로, 클라이언트측의 작업부하 관리 유닛은 결정을 위한 기본적인 것으로서 각 서버로부터 가용성 데이터를 이용하면서, 어느 서버가 특정 요청을 처리하기 위해 할당되어야 하는지에 관한 결정을 한다. 만일 이러한 모든 가용성 데이터가 아직 이용 가능하지 않으면, 작업 관리 유닛은 이러한 데이터를 수신할 때까지 대기하고 나서, 서버에 관한 결정을 하기 위해 일련의 완전한 데이터를 이용한다. 이때, 작업부하 관리 유닛에 의해 선택된 서버에 관한 추가 지시 정보(an appended indication)를 가지는 클라이언트 요청이 선택된 서버로의 전송을 대기하는 전송 큐에 배치된다. 또한, 서버가 전송된 클라이언트 요청을 수신하지 못하는 전송 문제가 발생하면, 이러한 요청이 클라이언트에서 서버로 다시 전송될 수 있도록 로컬 기억장소에 선택된 서버의 지시 정보를 포함하는 대기 요청에 관한 정보를 기록한다.
이러한 분야에서의 현재 기술 상태는 언제 이러한 모든 데이터가 서버로부터 완전히 수신되는지를 결정하기 위해 각 서버에 관한 서버 가용성 데이터의 상태를 계속적으로 점검하는 복잡한 소프트웨어 부분을 수반해야 한다는 단점이 있다. 이러한 복잡한 소프트웨어 프로그래밍은 전체 시스템에 대해 상당한 부가비용을 추가시킨다.
더구나, 모든 서버 가용성 데이터가 아직 수신되지 않았다면, 어떠한 요청도서버 그룹에 전송될 수 없으므로 클라이언트측에서 데이터 전송 처리가 지연될 수 있다. 이는 특별히 빠른 전송 속도가 아주 중요시되는 환경에서 큰 단점이다.
첫번째 측면(aspect)에 따르면, 본 발명은 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관하여 작업부하 관리를 수행하기 위한 데이터 처리 장치를 제공하며, 상기 데이터 처리 장치는 클라이언트 애플리케이션으로부터 작업 요청을 수신하기 의한 수단; 서버 그룹에 관한 가용성 데이터를 조사(consulting)하고, 조사된 가용성 데이터에 기초하여 수신된 작업 요청을 충족시키기 위해 이용될 그룹의 특정 서버를 선택하기 위한 수단 - 여기서, 조사된 가용성 데이터는 그룹의 각 서버에 대한 가용성 데이터가 수신되었는지에 상관없이 그룹의 서버를 선택하기 위해 작업 요청이 수신되는 현상태에서 항상 이용됨 -; 및 상기 그룹의 특정 서버로의 전송을 기다리는 전송 큐에 수신된 작업 요청을 배치하기 위한 수단을 가진다.
바람직하게, 상기 데이터 처리 장치는, 작업 요청이 수신된 후에 가용성 데이터가 변경되었는지를 결정하기 위한 수단; 및 가용성 데이터가 변경되었으면, 변경된 가용성 데이터를 조사하고, 변경된 가용성 데이터에 기초하여 수신된 작업 요청을 충족시키기 위해 상기 그룹에서 서버를 선택하기 위한 수단; 및 변경된 가용성 데이터에 기초하여 선택된 서버가 특정 서버와 상이하면, 작업 요청이 상기 특정 서버와 다른 그룹의 서버로 전송되도록 전송 큐에서 작업 요청을 갱신하기 위한 수단을 더 가진다.
더욱더 바람직하게, 상기 변경된 가용성 데이터는 작업 요청이 우선 수신되었을 경우에 이용가능한 가용성 데이터를 가지고 있지 않은 그룹의 서버에 대한 추가 가용성 데이터(adding availability data)를 구비한다. 또한, 변경된 가용성 데이터는 작업 요청이 우선 수신되었을 경우에 이용가능한 가용성 데이터를 가지는 그룹의 서버에 대한 변경 가용성 데이터(modifying availability data)를 구비한다.
두번째 측면에 따르면, 본 발명은 상기 첫번째 측면에서 설명된 작업부하 관리 유닛의 기능을 수행하기 위한 방법을 제공한다.
세번째 측면에 따르면, 본 발명이 컴퓨터에서 실행될 경우에 상기 첫번째 측면의 기능을 수행하기 위한, 컴퓨터 판독가능 기억 매체에 저장된 컴퓨터 프로그램 제품을 제공한다.
따라서, 본 발명에 있어, 작업부하 관리 유닛 소프트웨어는 모든 서버 가용성 데이터가 수신되었는지를 지속적으로 점검할 필요가 없기 때문에 아주 간소화될 수 있다. 그 대신에, 간단한 소프트웨어 아키텍처는 모든 클라이언트 요청이 평등하게 취급될 경우에 이용될 수 있는데, 즉 요청이 클라이언트에 의해 발행되자마자 서버 가용성 데이터의 현재 상태를 이용하여 결정이 이루어지고 그 요청이 전송 큐로 전송된다. 또한, 목적지(destination)는 클라이언트 요청 자체를 기록하는 동일 동작의 일부로서 안정된 기억장소에 기록된다.
요청이 전송 큐에서 선택된 서버로 전송되기 전에 신규 가용성 데이터가 이용가능하면, 서버의 새로운 선택이 이루어질 수 있으며, 대기된 요청이 갱신되어다른 서버에 전송될 수 있다. 하지만, 요청이 전송 큐에서 전송되기 전에 어떤 신규 가용성 데이터도 이용가능하지 않으면, 그룹의 각 서버의 가용성 데이터가 이용가능한지에 상관없이 요청이 선택된 서버에 전송된다. 따라서, 부가적인 장점은 각 서버로부터의 가용성 데이터가 이용가능할 때까지 기다려야 하는 작업 관리 유닛으로 인한 전송 지연이 없는 것이다. 본 발명은, 그룹의 어느 서버가 선택되어야 하는지에 관한 초기 결정을 하기 위해 작업 요청이 수신되는 시점에서, 현재의 이용가능한 가용성 데이터를 이용한다. 신규 가용성 데이터는 특별한 환경에서만 나타나며, 신규 레코드는 목적지로 이루어지는 것이 요구된다.
도1은 본 발명의 바람직한 실시예에 따른 기본적인 클라이언트/서버 환경을 나타낸 블록도.
도2는 본 발명의 바람직한 실시예에 따른 메시징 및 큐잉 유닛에 의해 취해진 단계를 나타낸 흐름도.
도3은 본 발명의 바람직한 실시예에 따른 메시징 및 큐잉 유닛의 작업부하 관리 유닛에 의해 조사된 가용성 데이터를 나타낸 테이블.
*도면의 주요부분에 대한 부호의 설명
11 : 클라이언트 12 : 서버 그룹
111 : 클라이언트 애플리케이션 112a : 작업부하 관리 유닛
112b : 전송 큐 121 : 서버 1
122 : 서버 2 123 : 서버 3
이하에서 본 발명의 바람직한 실시예를 도면을 참조하면서 상세히 설명할 것이다.
도1에서 클라이언트 데이터 처리 장치(11)는 통신망(13)을 통해 일군(12)의 서버 데이터 처리 장치들(121, 122, 123)과 통신한다. 상기 클라이언트(11) 및 서버 그룹(12)은 클라이언트와 서버간에 비동기 통신이 행해지도록 IBM의 MQ 시리즈와 같은 메시징 및 큐잉 소프트웨어 제품을 실행시킨다. 즉, 클라이언트가 작업요청을 서버로 전송할 때, 서버가 동작 가능할 필요는 없다. 상기 요청이 큐에 배치될 것이고, 서버가 동작 가능해진 후에 대기된 요청을 검색할 수 있다. 상기 메시징 및 큐잉 제품은 또한 클라이언트(11)로 하여금 통신망을 통하여 서버그룹(12)과 통신할 수 있도록 임의의 필요한 통신 프로토콜 변환을 수행한다.
비록, 상기 바람직한 실시예에서 클라이언트 및 서버는 통신망(13)에 의해연결되어 있는 분리된 처리 장치에 위치하지만, 본 발명은 이러한 아키텍처에 결코 한정되지 않는다. 클라이언트 및 서버 그룹은 동일한 데이터 처리 장치에 위치될 수도 있다.
클라이언트(11)는 작업부하 관리 유닛(112a) 및 전송 큐(112b)를 구비하는 메시징 및 큐잉 소프트웨어 시스템(112)과, 클라이언트 애플리케이션(111)을 포함한다. 클라이언트 애플리케이션(111)은 서버로 작업 요청을 발행하는 컨수밍 소프트웨어부(consuming software portion)이다. 일단 서버가 요청된 작업을 수행하였으면, 결과가 클라이언트 애플리케이션(111)으로 반송될 수 있다. 전송 큐(112b)는 메시징 및 큐잉 소프트웨어 구성의 일부이며, 작업 요청이 통신망(13)을 통해 서버그룹(12)으로 전달되기 전에 클라이언트 애플리케이션(111)으로부터 수신된 작업 요청을 기다리기 위해 이용된다. 또한, 메시징 및 큐잉 소프트웨어의 일부인 작업부하 관리 유닛(112a)은 클라이언트 애플리케이션(112)으로부터 수신된 각 작업 요청을 위해 서버 그룹(12)에서 서버들(121, 122, 123) 중 하나를 선택하는 것을 담당하는 소프트웨어 요소이다.
작업부하 관리 유닛(112a)은 통신망(13)을 통해 그룹에서 각 서버(121, 122, 123) 관련 데이터(이하, "가용성 데이터"라 함)를 수신한다. 이러한 데이터는 각 서버가 클라이언트로부터 새로운 작업 요청을 수용할 준비가 되었는지에 관한 각 서버의 현재의 가용성을 나타낸다. 작업부하 관리 유닛은 서버(121, 122, 123) 중 어느 서버가 특정 작업 요청을 충족시키는데 선택되어야 하는지를 결정하기 위해 이러한 가용성 데이터를 이용한다.
메시징 및 큐잉 시스템(112)의 동작은 도2의 흐름도와 함께 설명될 것이다.
단계(21)에서 메시징 및 큐잉 시스템(112)은 클라이언트 애플리케이션(111)으로부터 작업 요청을 수신한다. 단계(22)에서 작업부하 관리 유닛(112a)은 수신된 작업 요청을 처리하기 위해 상기 그룹(12)내 서버들의 가용성을 결정하기 위해 데이터 가용성 테이블(도3 참조)을 조사한다.
도3에서, 작업 요청이 막 수신된 시점은 타임 1로 언급된다. 가용성 테이블은 타임 1에서 서버 1(121)이 작업 요청을 수신하는데 이용가능함(타임 1 및 서버 1이 교차하는 란에 "이용가능함(available)"을 나타내기 위해 영문자 A가 표시됨)을 나타낸다. 상기 가용성 테이블은 타임 1에서 서버 2(122)가 작업 요청을 수신 하는데 이용가능하지 않음(타임 1 및 서버 2가 교차하는 란에서 "이용가능하지 않음(not available)"을 나타내기 위해 영문자 NA가 표시됨)을 나타낸다. 타임 1에서, 서버 3에 대한 도3 테이블의 입력 사항이 없으므로, 서버 3이 가용성 데이터를 클라이언트(11)의 메시징 및 큐잉 소프트웨어(112)로 아직 제공하지 않고 있음을 나타냄에 유의하여야 한다.
타임 1에서 이러한 상태의 가용성 데이터가 주어진다면, 서버 1은 이용가능하고, 서버 2는 이용가능하지 않고, 서버 3은 이용가능한지 여부가 알려져 있지 않기 때문에, 작업부하 관리 유닛(112a)은 서버 1(121)이 작업 요청에 할당되도록 선택한다(단계 23). 이후, 상기 작업 요청이 전송 큐(112b)에 배치되고(단계 24), 작업 요청이 서버 1(121)로 전송됨을 나타내기 위해 상기 작업 요청에 제어 지시정보(control indication)가 부가된다. 이후, 작업 요청은 서버 1(121)이 요청을 수신할 준비가 되었음을 지시할 때까지 큐(112b)에 위치한다(서버 1이 클라이언트(11)와 다른 시간대(time zone)에 있고 타임 1에서 동작 가능하지 않은 경우일 것임).
타임 1 직후의 타임 2에서, 클라이언트(11)는 갱신된 서버 가용성 데이터를 수신하며, 이러한 수신은 단계(25)에서 메시징 및 큐잉 소프트웨어(112)에 의해 결정된다. 따라서, 제어 루프는 작업부하 관리 유닛(112a)이 다시 가용성 데이터를 조사하고, 서버 1이 여전히 이용가능한지(타임 2 및 서버 1이 교차하는 란에서 "이용가능함"을 나타내기 위해 영문자 A가 표시됨)와, 서버 2가 이제 이용가능한지(타임 2 및 서버 2가 교차하는 란에서 "이용가능함"을 나타내기 위해 영문자 A가 표시됨)와, 서버 3이 이용가능하지 않은지(타임 2 및 서버 3이 교차하는 란에서 "이용가능하지 않음"을 나타내기 위해 영문자 NA가 표시됨)를 결정할 경우에 단계(22)로 돌아간다. 이런식으로, 타임 1 및 타임 2사이의 구간에서는, 서버 2가 가용성 데이터를 변경하고 서버 3이 이전에 제공하지 않았던 가용성 데이터를 제공하는, 신규 가용성 데이터가 서버 그룹(12)으로부터 클라이언트(11)로 전송된다.
따라서, 단계(23)에서, 작업부하 관리 유닛(112a)은 갱신된 가용성 데이터를 이용하여 3개의 서버 중 하나를 선택한다. 어떠한 프로그래밍된 작업부하 밸런싱 방식(workload balancing scheme)도 이용될 수 있지만, 전송 큐(112b)에 위치하고 있는 작업 요청을 수정하기 위해 처리 능력을 확장해야 하는 것을 방지하기 위해서는, 2개의 서버가 이용가능하고 하나의 서버는 흐름도의 직전 상태에서 미리 선택되어 이 서버가 유지되는 경우가 가장 효율적이다. 이 경우 역시 데이터 기록 동작을 로컬 기억장소에 보관하는데, 그 이유는 전송 실패의 경우에 각 대기된 작업 요청을 위한 선택된 서버가 복원용 로컬 기억장소에 로깅되어야 하기 때문이다. 따라서, 이 경우에 단계(24)는 대기된 작업 요청이 갱신되지 않도록 한다.
타임 2 이후의 타임 3에서, 작업 요청이 여전히 큐(112b)에 위치하고 있으며, 새로운 서버 가용성 데이터가 수신되고, 이러한 데이터의 수신은 단계(25)에서 메시징 및 큐잉 소프트웨어(112)에 의해 통지된다. 따라서, 제어 루프는 신규 가용성 데이터에 기초하여 선택된 서버를 변경할 필요가 있는지를 결정하기 위해 도3의 가용성 테이블이 다시 조사될 경우에 단계(22)로 돌아간다. 도3에 도시된 바와 같이, 서버 1은 이제 이용가능하지 않고, 서버 2는 여전히 이용가능하며, 서버 3은 이제 이용가능하다. 그러므로, 단계(23)에서 작업부하 관리 유닛(112a)이 서버 2 또는 서버 3을 선택한다. 또한, 일반적인 작업부하 밸런싱 알고리즘(workload balancing algorithm)이 이들 2개의 서버중 어느 서버가 이용되어야 하는지를 선택하기 위해 이용될 수 있다. 라운드 로빈(round robin) 방식에 따라서, 서버 2가 서버 1 이후의 라인에서 그 다음에 존재하기 때문에 선택된다(또한, 서버 3은 차후 실행에서 선택되기 위한 라인의 그 다음에 존재함).
그리고 나서, 단계(24)에서, 상기 작업 요청은 현재 작업 요청의 목적지가 서버 1보다는 서버 2라는 지시 정보를 포함하도록 전송 큐(112b)에서 갱신된다. 이것 또한 필요한 경우에, 데이터 복원용 레코드를 제공하기 위해 로컬 기억장소에서 쓰기를 수행해야 하는 것을 수반한다.
이러한 동작중의 어떤 시점에서, 선택된 서버가 전송 큐(112b)로부터 작업요청을 가져오고, 요청이 통신망(13)을 통해 서버 2로 전송되어 특정 작업 요청에 대해 도2의 순환 흐름을 종료한다.
본 발명은 서버 가용성 데이터가 빈번히 변경되지 않으며, 단계(25)에서 도3의 테이블을 다시 조사하기 위해 "예"(YES)를 선택하여 단계(22)로 돌아갈 필요가 좀처럼 존재하지 않음을 기본적으로 가정하고 있음을 주지하여야 한다. 따라서, 서버의 초기 선택은 요청이 클라이언트 애플리케이션에 의해 발행된 후에 매우 빠르게 이루어진다. 이것은 작업 요청이 서버 그룹으로의 전송을 위해 빠르고 효율적으로 처리될 수 있도록, 현재 이용가능한 서버 가용성 데이터를 이용하면서 가능한한 빠르게 작업 요청을 전송 큐(112b)에 배치시킨다. 단지 서버 가용성 데이터가 변경되는 경우에만 초기 서버 선택을 수정할 필요가 있을 것이다.
따라서, 본 발명은 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관하여 작업부하 관리를 수행함에 있어서 작업 요청이 서버 그룹으로의 전송을 위해 빠르고 효율적으로 처리될 수 있도록, 현재 이용가능한 서버 가용성 데이터를 이용하면서 가능한 빠르게 작업 요청을 전송 큐에 배치시킬 수 있는 효과가 있다.

Claims (12)

  1. 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관하여 작업부하 관리를 수행하기 위한 데이터 처리 장치에 있어서,
    클라이언트 애플리케이션으로부터 작업 요청을 수신하기 위한 수단;
    상기 서버 그룹에 관한 가용성 데이터를 조사(consulting)하고, 상기 조사된 가용성 데이터에 기초하여 상기 수신된 작업 요청을 충족시키기 위해 이용될 상기 그룹의 특정 서버를 선택하기 위한 수단 - 여기서, 상기 조사된 가용성 데이터는 상기 그룹의 각 서버에 대한 가용성 데이터가 수신되었는지에 상관없이 상기 그룹의 서버를 선택하기 위해 상기 작업 요청이 수신되는 현상태에서 항상 이용됨 -; 및
    상기 그룹의 상기 특정 서버로의 전송을 대기하는 전송 큐에 상기 수신된 작업 요청을 배치하기 위한 수단을 포함하는 데이터 처리 장치.
  2. 제 1항에 있어서,
    상기 작업 요청이 수신된 후에 상기 가용성 데이터가 변경되었는지를 결정하기 위한 수단;
    상기 가용성 데이터가 변경되었으면, 상기 변경된 가용성 데이터를 조사하고, 상기 변경된 가용성 데이터에 기초하여 상기 수신된 작업 요청을 충족시키기 위해 상기 그룹에서 서버를 선택하기 위한 수단; 및
    상기 변경된 가용성 데이터에 기초하여 선택된 상기 서버가 상기 특정 서버와 상이하면, 상기 작업 요청이 상기 특정 서버와 다른 상기 그룹의 서버로 전송되도록 상기 전송 큐에서 작업 요청을 갱신하기 위한 수단을 더 포함하는 데이터 처리 장치.
  3. 제 2 항에 있어서,
    상기 변경된 가용성 데이터는,
    상기 작업 요청이 처음 수신되었을 때에 이용가능한 가용성 데이터를 가지고 있지 않은 상기 그룹의 서버에 대한 추가 가용성 데이터를 구비하는 데이터 처리 장치.
  4. 제 2 항에 있어서,
    상기 변경된 가용성 데이터는,
    상기 작업 요청이 처음 수신되었을 때에 이용가능한 가용성 데이터를 가지는 상기 그룹의 서버에 대한 변경 가용성 데이터를 구비하는 데이터 처리 장치.
  5. 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관하여 작업부하 관리를 수행하기 위한 데이터 처리 방법에 있어서,
    클라이언트 애플리케이션으로부터 작업 요청을 수신하는 단계;
    상기 서버 그룹에 관한 가용성 데이터를 조사하고, 상기 조사된 가용성 데이터에 기초하여 상기 수신된 작업 요청을 충족시키기 위해 이용될 상기 그룹의 특정 서버를 선택하는 단계 - 여기서, 상기 조사된 가용성 데이터는 상기 그룹의 각 서버에 대한 가용성 데이터가 수신되었는지에 상관없이 상기 그룹의 서버를 선택하기 위해 상기 작업 요청이 수신되는 현상태에서 항상 이용됨 -; 및
    상기 그룹의 상기 특정 서버로의 전송을 대기하는 전송 큐에 상기 수신된 작업 요청을 배치하는 단계를 포함하는 데이터 처리 방법.
  6. 제 5 항에 있어서,
    상기 작업 요청이 수신된 후에 가용성 데이터가 변경되었는지를 결정하는 단계;
    상기 가용성 데이터가 변경되었으면, 상기 변경된 가용성 데이터를 조사하고, 상기 변경된 가용성 데이터에 기초하여 상기 수신된 작업 요청을 충족시키기 위해 상기 그룹에서 서버를 선택하는 단계;및
    상기 변경된 가용성 데이터에 기초하여 선택된 상기 서버가 상기 특정 서버와 상이하면, 상기 작업 요청이 상기 특정 서버와 다른 상기 그룹의 서버로 전송되도록 상기 전송 큐에서 작업 요청을 갱신하는 단계를 더 포함하는 데이터 처리 방법.
  7. 제 6 항에 있어서,
    상기 변경된 가용성 데이터는,
    상기 작업 요청이 처음 수신되었을 때에 이용가능한 가용성 데이터를 가지고 있지 않은 상기 그룹의 서버에 대한 추가 가용성 데이터를 구비하는 데이터 처리 방법.
  8. 제 6 항에 있어서,
    상기 변경된 가용성 데이터는,
    상기 작업 요청이 처음 수신되었을 때에 이용가능한 가용성 데이터를 가지는 상기 그룹의 서버에 대한 변경 가용성 데이터를 구비하는 데이터 처리 방법.
  9. 컴퓨터에서 실행될 경우에 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관하여 작업부하 관리를 수행하는 데이터 처리 방법을 실행시키기 위한 컴퓨터 판독가능 기억 매체에 저장된 컴퓨터 프로그램 제품에 있어서,
    클라이언트 애플리케이션으로부터 작업 요청을 수신하는 단계;
    상기 서버 그룹에 관한 가용성 데이터를 조사하고, 상기 조사된 가용성 데이터에 기초하여 상기 수신된 작업 요청을 충족시키기 위해 이용될 상기 그룹의 특정 서버를 선택하는 단계 - 여기서, 상기 조사된 가용성 데이터는 그룹의 각 서버에 대한 가용성 데이터가 수신되었는지에 상관없이 그룹의 서버를 선택하기 위해 상기 작업 요청이 수신되는 현상태에서 항상 이용됨 -; 및
    상기 그룹의 상기 특정 서버로의 전송을 기다리는 전송 큐에 상기 수신된 작업 요청을 배치하는 단계를 포함하는 컴퓨터 프로그램 제품.
  10. 제 9 항에 있어서,
    상기 작업 요청이 수신된 후에 상기 가용성 데이터가 변경되었는지를 결정하는 단계;
    상기 가용성 데이터가 변경되었으면, 상기 변경된 가용성 데이터를 조사하고, 상기 변경된 가용성 데이터에 기초하여 상기 수신된 작업 요청을 충족시키기 위해 상기 그룹에서 서버를 선택하는 단계; 및
    상기 변경된 가용성 데이터에 기초하여 선택된 서버가 상기 특정 서버와 상이하면, 상기 작업 요청이 상기 특정 서버와 다른 상기 그룹의 서버로 전송되도록 상기 전송 큐에서 상기 작업 요청을 갱신하는 단계를 더 포함하는 컴퓨터 프로그램 제품.
  11. 제 10 항에 있어서,
    상기 변경된 가용성 데이터는,
    상기 작업 요청이 처음 수신되었을 때에 이용가능한 가용성 데이터를 가지고 있지 않은 상기 그룹의 서버에 대한 추가 가용성 데이터를 구비하는 컴퓨터 프로그램 제품.
  12. 제 10 항에 있어서,
    상기 변경된 가용성 데이터는,
    상기 작업 요청이 처음 수신되었을 때에 이용가능한 가용성 데이터를 가지는 상기 그룹의 서버에 대한 변경 가용성 데이터를 구비하는 컴퓨터 프로그램 제품.
KR1019990008875A 1998-04-14 1999-03-16 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관한 작업부하 관리를 수행하는 데이터 처리 장치, 방법 및 컴퓨터 프로그램 제품 KR100324976B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9807683A GB2336449A (en) 1998-04-14 1998-04-14 A server selection method in an asynchronous client-server computer system
GB9807683.9 1998-04-14

Publications (2)

Publication Number Publication Date
KR19990082753A true KR19990082753A (ko) 1999-11-25
KR100324976B1 KR100324976B1 (ko) 2002-02-20

Family

ID=10830152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990008875A KR100324976B1 (ko) 1998-04-14 1999-03-16 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관한 작업부하 관리를 수행하는 데이터 처리 장치, 방법 및 컴퓨터 프로그램 제품

Country Status (7)

Country Link
US (1) US5987502A (ko)
EP (1) EP0950952A3 (ko)
JP (1) JP3762846B2 (ko)
KR (1) KR100324976B1 (ko)
CN (1) CN1143228C (ko)
GB (1) GB2336449A (ko)
TW (1) TW380223B (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2348985A (en) * 1999-04-15 2000-10-18 Ibm Centralized affinity maintenance in a workload managed client/server system
US6928477B1 (en) * 1999-11-18 2005-08-09 International Business Machines Corporation Availability and scalability in clustered application servers by transmitting expected loads of clients to load balancer
US6681251B1 (en) * 1999-11-18 2004-01-20 International Business Machines Corporation Workload balancing in clustered application servers
US6970932B1 (en) 1999-12-14 2005-11-29 Microsoft Corporation Non-delegable client requests to servers storing local information only
US7010611B1 (en) * 1999-12-21 2006-03-07 Converged Access, Inc. Bandwidth management system with multiple processing engines
KR101015341B1 (ko) 2000-04-24 2011-02-16 비자 인터내셔날 써비스 어쏘시에이션 온라인 지불인 인증 서비스
JP4292693B2 (ja) * 2000-07-07 2009-07-08 株式会社日立製作所 計算機資源分割装置および資源分割方法
WO2002039327A2 (en) * 2000-10-30 2002-05-16 Tririga, Inc. Method for associating graphical objects with non-graphical data
US7047273B2 (en) 2000-11-28 2006-05-16 Navic Systems, Inc. Load balancing in set top cable box environment
WO2002044920A1 (en) 2000-11-28 2002-06-06 Navic Systems, Inc. Load balancing in set top cable box environment
US7213049B2 (en) * 2001-07-17 2007-05-01 Bea Systems, Inc. System and method for transaction processing with transaction property feature
US7080119B2 (en) * 2001-07-17 2006-07-18 Bea Systems, Inc. System and method for transaction processing with delegated commit feature
US7337441B2 (en) * 2001-07-17 2008-02-26 Bea Systems, Inc. System and method for prepreparing a transaction process involving a chain of servers in a circular flow
US7305397B2 (en) * 2002-01-31 2007-12-04 Tririga Llc Caching data communications to reduce latency
KR100453052B1 (ko) 2002-06-07 2004-10-15 삼성전자주식회사 전송 패킷을 이용하여 다기능을 수행하기 위한 통신 방법 및 장치
US8275883B2 (en) 2002-10-08 2012-09-25 My Telescope.Com Systems and methods for accessing telescopes
US8380822B2 (en) * 2002-12-10 2013-02-19 Sharp Laboratories Of America, Inc. Systems and methods for object distribution in a communication system
WO2004077220A2 (en) * 2003-01-30 2004-09-10 Vaman Technologies (R & D) Limited System and method of managing and caching data irrespective of server functionality
KR20040074752A (ko) * 2003-02-18 2004-08-26 엘지엔시스(주) 금융업무 서버시스템의 부하 분산장치 및 분산방법
JP2005073236A (ja) * 2003-08-06 2005-03-17 Matsushita Electric Ind Co Ltd 中継サーバ、中継サーバのサービス管理方法、サービス提供システム、およびプログラム
US7580905B2 (en) * 2003-12-15 2009-08-25 Intel Corporation Adaptive configuration of platform
US7475403B2 (en) * 2004-10-28 2009-01-06 International Business Machines Corporation Method for optimizing Web services binding
CN100438501C (zh) * 2005-03-07 2008-11-26 明基电通股份有限公司 动态信息传送方法及系统
JP2006331123A (ja) * 2005-05-26 2006-12-07 Sony Corp コンテンツ再生システム
US20070184903A1 (en) * 2006-02-08 2007-08-09 Derek Liu Network-based game system capable of serving massive number of game players
US7929419B2 (en) * 2006-08-04 2011-04-19 Tekelec Methods, systems, and computer program products for inhibiting message traffic to an unavailable terminating SIP server
CN101090569B (zh) * 2006-10-18 2010-08-04 中兴通讯股份有限公司 Ip多媒体子系统的归属用户服务器的自动选择方法
US20080115202A1 (en) * 2006-11-09 2008-05-15 Mckay Michael S Method for bidirectional communication in a firewalled environment
US20110320530A1 (en) 2010-06-29 2011-12-29 International Business Machines Corporation Method for processing a unit of work
US9071512B2 (en) 2010-08-06 2015-06-30 Tekelec, Inc. Methods, systems, and computer readable media for distributing diameter network management information
TWI457652B (zh) * 2011-05-12 2014-10-21 Wistron Corp 全平面觸控面板
CN103425519B (zh) * 2012-05-16 2016-10-05 富士通株式会社 分布式计算方法和分布式计算系统
US10078533B2 (en) * 2014-03-14 2018-09-18 Amazon Technologies, Inc. Coordinated admission control for network-accessible block storage
US10778527B2 (en) 2018-10-31 2020-09-15 Oracle International Corporation Methods, systems, and computer readable media for providing a service proxy function in a telecommunications network core using a service-based architecture
US11018971B2 (en) 2019-10-14 2021-05-25 Oracle International Corporation Methods, systems, and computer readable media for distributing network function (NF) topology information among proxy nodes and for using the NF topology information for inter-proxy node message routing
US11528334B2 (en) 2020-07-31 2022-12-13 Oracle International Corporation Methods, systems, and computer readable media for preferred network function (NF) location routing using service communications proxy (SCP)
US11570262B2 (en) 2020-10-28 2023-01-31 Oracle International Corporation Methods, systems, and computer readable media for rank processing for network function selection

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE151183T1 (de) * 1989-02-24 1997-04-15 Digital Equipment Corp Makler für die auswahl von rechnernetzwerkservern
US5185861A (en) * 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling 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
JPH07334468A (ja) * 1994-06-07 1995-12-22 Toshiba Corp 負荷分散方式
EP0694837A1 (en) * 1994-07-25 1996-01-31 International Business Machines Corporation Dynamic workload balancing
US5761507A (en) * 1996-03-05 1998-06-02 International Business Machines Corporation Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system

Also Published As

Publication number Publication date
JPH11328132A (ja) 1999-11-30
GB2336449A (en) 1999-10-20
CN1232218A (zh) 1999-10-20
EP0950952A2 (en) 1999-10-20
JP3762846B2 (ja) 2006-04-05
CN1143228C (zh) 2004-03-24
GB9807683D0 (en) 1998-06-10
US5987502A (en) 1999-11-16
KR100324976B1 (ko) 2002-02-20
TW380223B (en) 2000-01-21
EP0950952A3 (en) 2003-11-12

Similar Documents

Publication Publication Date Title
KR100324976B1 (ko) 비동기 클라이언트/서버 컴퓨팅 시스템에서 서버 그룹에 관한 작업부하 관리를 수행하는 데이터 처리 장치, 방법 및 컴퓨터 프로그램 제품
JP4144897B2 (ja) 共通作業キュー環境における最適格サーバ
US5887168A (en) Computer program product for a shared queue structure for data integrity
US5341499A (en) Method and apparatus for processing multiple file system server requests in a data processing network
US5530905A (en) Temporary state preservation for a distributed file service which purges virtual circuit control information after expiration of time limit of inactivity
US7647595B2 (en) Efficient event notification in clustered computing environments
US7464138B2 (en) Mirror queue in a shared queue environment
US6801603B1 (en) Online aggregation
US5960178A (en) Queue system and method for point-to-point message passing having a separate table for storing message state and identifier of processor assigned to process the message
US8037153B2 (en) Dynamic partitioning of messaging system topics
US6094694A (en) System for storing new messages in both full-length and abbreviated versions of message expiration data, and eliminating old, expired messages when a message is retrieved
US6421741B1 (en) Switching between active-replication and active-standby for data synchronization in virtual synchrony
EP0108233B1 (en) Electronic document distribution network with dynamic document interchange protocol generation
US8141103B2 (en) Solution for modifying a queue manager to support smart aliasing which permits extensible software to execute against queued data without application modifications
US7143128B1 (en) Interactive data processor controlled display interface for tracking of allocated messages in a dynamic workload balancing communication system
US7249163B2 (en) Method, apparatus, system and computer program for reducing I/O in a messaging environment
US7266543B2 (en) System and method for accessing resources in a database
US7089265B1 (en) Database management system for implementing independent database actions in response to events of interest
US7484215B2 (en) Method, system and program product for processing a transaction
US20020143947A1 (en) Interactive data processor controlled display interface for tracking allocated messages in a dynamic workload balancing communication system
JPH07182263A (ja) 分散処理制御システム
AU690247B2 (en) Data storage
JPH0226430A (ja) 同送処理方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee