KR100322724B1 - 클라이언트/서버 컴퓨터 시스템에서 서버 내의 대기 중인 클라이언트 요청들을 스케줄링 및 디스패칭하는 장치 및 방법 - Google Patents

클라이언트/서버 컴퓨터 시스템에서 서버 내의 대기 중인 클라이언트 요청들을 스케줄링 및 디스패칭하는 장치 및 방법 Download PDF

Info

Publication number
KR100322724B1
KR100322724B1 KR1019990000884A KR19990000884A KR100322724B1 KR 100322724 B1 KR100322724 B1 KR 100322724B1 KR 1019990000884 A KR1019990000884 A KR 1019990000884A KR 19990000884 A KR19990000884 A KR 19990000884A KR 100322724 B1 KR100322724 B1 KR 100322724B1
Authority
KR
South Korea
Prior art keywords
request
client
object
server
scheduling
Prior art date
Application number
KR1019990000884A
Other languages
English (en)
Other versions
KR19990072255A (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
Priority to GB9802294A priority Critical patent/GB2334116A/en
Priority to GB9802294.0 priority
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR19990072255A publication Critical patent/KR19990072255A/ko
Application granted granted Critical
Publication of KR100322724B1 publication Critical patent/KR100322724B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Abstract

본 발명은 이종의(heterogeneous) 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 스케줄링 및 디스패칭(dispatching)하기 위한 장치를 제공하는데, 상기 장치는 상기 클라이언트 요청을 상기 장치로 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼(request-holding buffer)와, 상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드(threads)와, 상기 버퍼에 저장된 상기 클라이언트 요청을 상기 복수의 실행 스레드로 배분하기 위한 스케줄링 수단을 포함하고, 상기 장치는, 상기 스케줄링 수단이 상기 버퍼에 저장된 클라이언트 요청을 상기 복수의 실행 스레드의 상태 및 상기 저장된 요청의 특성을 고려하는 우선 순위 결정 규칙에 기초한 우선 순위로 배치한다.

Description

클라이언트/서버 컴퓨터 시스템에서 서버 내의 대기 중인 클라이언트 요청들을 스케줄링 및 디스패칭하는 장치 및 방법{APPARATUS AND METHOD FOR SCHEDULING AND DISPATCHING QUEUED CLIENT REQUESTS WITHIN A SERVER IN A CLIENT/SERVER COMPUTER SYSTEM}

본 발명은 한 컴퓨팅 장치('클라이언트')가 다른 컴퓨팅 장치('서버')에게 클라이언트 작업의 일부를 수행하도록 요청하는 클라이언트/서버 (또한 '분산'으로 알려짐) 컴퓨팅 분야에 관한 것이다.

클라이언트/서버 컴퓨팅은 정보 기술 분야에서 최근 몇 년 동안 점점 중요해지고 있다. 이러한 형태의 분산 컴퓨팅은 한 기계(machine)가 일부의 작업을 그 작업을 수행하기에 더 적합한 다른 기계에게 맡기는 것을 허용한다.

클라이언트/서버 컴퓨팅의 장점은, 클라이언트 및 서버가 상이한(이종의) '플랫폼'상에 위치되도록 허용하는 객체-지향 프로그래밍(객체 지향 프로그래밍(OOP): Object Oriented Programming)이라고 명명되는 공지된 컴퓨터 프로그래밍 기술의 사용에 의해 더 향상되어져 왔다. 플랫폼은 기계가 그 작업을 하는데 사용되는 특정한 하드웨어/소프트웨어/운영체제/통신 프로토콜의 결합이다. 객체 지향 프로그래밍(OOP)은 어떻게 클라이언트 어플리케이션 작업 요청이 서버 어플리케이션에 의해 통신되고 수신될 것인지 고민할 필요없이 클라이언트 어플리케이션 프로그램 및 서버 어플리케이션 프로그램이 그들 자신의 플랫폼 상에서 동작하도록 허용한다. 마찬가지로, 서버 어플리케이션은 어떻게 객체 지향 프로그래밍(OOP) 시스템이 작업 요청을 수신하고 변환하여 서버 어플리케이션의 프로세싱 결과를 클라이언트 어플리케이션으로 전송할 것인지에 대하여 고민할 필요가 없다.

객체 지향 프로그래밍(OOP) 기술이 이종의(heterogeneous) 클라이언트/서버 시스템과 통합되어 온 과정에 대한 상세 내용이 미국 특허 제5,440,744호 및 유럽 특허 출원 공보 제EP 0 677,943 A2호에 설명되어 있다. 이러한 최근의 두 공보가 참조 문헌으로 포함되었다. 그러나, 기본 구조의 예는 본 발명 환경의 상황적인 이해를 위하여 아래에서 제시될 것이다.

도 1에 도시된 바와 같이, 클라이언트 컴퓨터(10) (예를 들어, IBM OS/2 운영 체제가 탑재된 개인용 컴퓨터)는 그 운영 체제 ('IBM' 및 'OS/2'는 인터내셔날 비즈니스 머쉰즈 코포레이션의 트레이드 마크임) 상에서 동작하는 어플리케이션 프로그램(40)을 구비한다. 어플리케이션 프로그램(40)은 서버 컴퓨터(20) 상에서 수행되는 작업 및/또는 어플리케이션 프로그램(40)에 의한 차후의 사용을 위해 서버(20)로부터 리턴되는 데이터를 주기적으로 요청할 것이다. 예를 들어, 서버 컴퓨터(20)는 IBM의 MVS ('MVS'는 또한 IBM사의 트레이드 마크임) 운영 체제 상에서 동작하는 고성능 메인프레임 컴퓨터가 될 수 있다. 본 발명의 목적을 위하여, 서버에 의해 실행되는 통신 서비스에 대한 요청이 제1 어플리케이션 프로그램(40)과의 사용자 상호작용에 의해 유발되든지, 어플리케이션 프로그램(40)이 사용자 상호작용과는 무관하게 동작하고 프로그램이 동작하는 동안 자동적으로 요청하는지는 무관하다.

클라이언트 컴퓨터(10)가 서버 컴퓨터(20)의 서비스에 대한 요청을 생성하기를 원할 때, 제1 어플리케이션 프로그램(40)은 제1 논리 수단(50)에게 요구되는 서비스를 통지한다. 예를 들면, 제1 논리 수단에게 입력 및 출력 파라미터의 리스트와 함께 원격 프로시저(procedure)의 이름을 전송함으로써 이를 수행할 수 있다. 그런 다음, 제1 논리 수단(50)은 저장 장치(60) 내에 저장된 사용 가능한 통신 서비스의 정의를 참조하여 제2 컴퓨터(20)와 필요한 통신이 되게 하는 임무를 처리한다. 가능한 모든 서비스는 객체 클래스들(70)의 결집된 프레임워크(cohesive framework of object classes)로서 정의되며, 이러한 클래스들은 단일 객체 클래스로부터 유래한다. 이러한 방법으로 서비스를 정의하는 것에는 성능 및 재사용의 측면에서 많은 장점이 있다.

서버(20)와의 필요한 통신이 되도록 하기 위하여, 제1논리 수단(50)이 프레임워크 내의 어떤 객체 클래스가 사용될 필요가 있는지를 결정하고, 그런 다음 상기 객체의 인스턴스(instance) 즉, 상기 객체가 그 방법 중의 하나를 기동(invoke)하도록 상기 객체로 전송되는 메세지를 생성한다. 이는 접속 수단(80)을 통하여 서버 컴퓨터(20)와의 접속을 구축하고, 이어서 요청을 제2 논리 수단(90)으로 전송한다.

그런 다음, 제2 논리 수단(90)은, 서비스 어플리케이션(100)이 데이터 검색 프로시저를 실행하는 것과 같은, 요청에 의해 요구되는 특정 임무를 수행할 수 있도록 서버 컴퓨터(20)상에서 동작하는 제2 어플리케이션 프로그램(100) (이후로 서비스 어플리케이션으로 불려짐)으로 요청을 전달한다. 일단 이 임무가 완료되면, 서비스 어플리케이션은 제1 컴퓨터(10)로 결과를 역전송할 필요가 있을 수도 있다. 요청된 임무가 실행되는 동안, 그리고 결과가 제1 컴퓨터(10)로 역전송될 때, 서버 어플리케이션(100)은 제2 논리 수단(90)과 상호작용을 한다. 제2 논리 수단(90)은, 서버 어플리케이션(100)에 의해 요청될 때 객체의 인스턴스를 개시(establish)하고 이러한 객체의 적당한 방법을 기동한다. 상기 객체 인스턴스는 저장 장치(110) 내에 저장된 객체 클래스의 결집된 프레임워크로부터 생성된다.

상기 기술을 사용하여, 클라이언트 어플리케이션 프로그램(40)은 통신 구조에 노출되지 않는다. 게다가 서버 어플리케이션(100)은 그 환경에 대한 표준 메카니즘을 통하여 기동된다. 이것이 원격으로 기동될 것이라고 아무도 알지 못한다.

객체 관리 그룹(OMG: Object Management Group)은 도 1에 도시된 바와 같이 이종의 플랫폼 상의 클라이언트/서버 컴퓨팅의 다양한 분야에 관련된 조직의 국제적인 컨소시움이다. 객체 관리 그룹(OMG)은 클라이언트 컴퓨터(예 10)가 서버 기계(예 20)와 통신할 (객체 지향 프로그래밍(OOP) 형식으로) 경우에 기준이 되는 공개된 표준을 발표했다. 이러한 표준의 일부로서, 클라이언트와 서버 기계간의 객체-지향 브리지(object-oriented bridge)를 제공하는 객체 요청 브로커(ORB: Object Request Broker)가 정의되어 있다. 객체 요청 브로커(ORB)는 접속 수단(80) 뿐만 아니라 제1 및 제2 논리 수단(50 및 90)의 작업의 적어도 일부를 수행하면서, 객체 지향 구현의 상세한 사항으로부터 클라이언트 및 서버 어플리케이션을 분리한다.

도 2는 이러한 시스템에 대한 종래의 구조를 도시한다. 일단 클라이언트 요청이 객체 요청 브로커(ORB)(21)를 통하여 서버 내로 그들의 경로를 발견하고 나면, 객체 요청 브로커(ORB)는 그 요청의 실행이 가능한 특정 서버 객체를 찾아서 그 요청을 상기 서버 객체의 객체 어댑터(22) (이 또한 객체 관리 그룹(OMG) 표준에 의해 정의됨)로 전송한다. 상기 요청은 서버 객체 어댑터 버퍼 내에 저장되어 서버 객체에 의한 처리를 기다린다. 상기 버퍼는 한 쪽 끝에서 버퍼로 첫번째로 수신된 요청이 다른 쪽 끝에서 첫번째로 빠져나가는 것을 의미하는 퍼스트-인-퍼스트-아웃(First-In-First-Out) 대기열(queue)이다. 서버 객체는 복수의 병렬 실행 스레드(thread, 23a, 23b, 23c)를 가지는데, 서버 객체는 상기 스레드 중의 어느 한 스레드 상에 자신의 인스턴스를 실행시킬 수 있다. 이러한 방법으로, 서버 객체는 동시에 복수의 요청을 처리할 수 있다. 객체 어댑터(22)는 병렬 실행 스레드 중에서 어느 것이 다른 요청을 처리할 수 있는지를 살피다가, 버퍼의 맨 끝에 위치한 요청을 다음 번 사용 가능한 실행 스레드에 할당한다. 이는 서버가 대기하고 있는 요청들을 실행 스레드로 디스패칭하는 '디스패칭(dispatching)' 메카니즘으로서, 상술된 미국 특허에 설명되어 있다.

종래의 구조가 가진 한 가지 중요한 문제는 클라이언트 요청의 실행에 대한 예상 응답 시간을 아는 것이 불가능하다는 것이다. 즉, 특정한 클라이언트 요청이 서버 객체의 객체 어댑터 대기열 (22)내에서 많은 수의 다른 요청 뒤에 위치할 수도 있고, 다른 시간에는, 상기 특정한 클라이언트 요청만이 대기열 내의 요청이 될 수도 있다. 응답을 기다리는 클라이언트는 서버 객체로부터의 응답이 언제 수신될 지 예측할 수 없다. 다른 문제는 매우 중요한 클라이언트 요청이 객체 어댑터 대기열 내에서 그리 중요하지 않는 요청의 뒤에서 기다려야 한다는 것이다.

이러한 예측 가능성의 문제는 이종의 클라이언트/서버 시스템의 사용을 단념케하여. 이러한 분산 처리는 보증되고 예측 가능하며 일관된 실행 환경이 요청되는 동종의 클라이언트/서버 구조(호스트 메인프레임 컴퓨터를 처리하는 컴퓨터 터미널과 같은) 상에서만 실행되고 있다.

본 발명의 제1 특징에 따르면, 본 발명은 이종의(heterogeneous) 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 스케줄링 및 디스패칭(dispatching)하기 위한 장치를 제공하는데, 상기 장치는 상기 클라이언트 요청을 상기 장치로 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼(request-holding buffer)와, 상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드(threads)와, 상기 버퍼에 저장된 상기 클라이언트 요청을 상기 복수의 실행 스레드로 배분하기 위한 스케줄링 수단을 포함하고, 상기 장치는, 상기 스케줄링 수단이 상기 버퍼에 저장된 클라이언트 요청을 상기 복수의 실행 스레드의 상태 및 상기 저장된 요청의 특성을 고려하는 우선 순위 결정 규칙에 기초한 우선 순위로 배치하는 것을 특징으로 한다.

바람직하게는, 상기 버퍼는 객체 어댑터 내에 포함된다.

바람직하게는, 상기 스케줄링 수단은, 상기 우선 순위 결정 규칙을 적용하여 우선 순위값을 상기 버퍼에 있는 각각의 요청에 할당하고, 최고 우선 순위값의 요청이 상기 서버 객체에 의한 실행에 대해 바로 다음이 되도록 상기 버퍼에서 더 높은 우선 순위값의 요청을 더 낮은 우선 순위값의 요청의 앞에 배치한다.

본 발명의 제2 특징에 따르면, 본 발명은 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 스케줄링 및 디스패칭하는 방법을 제공하는데, 상기 방법은 대기 중인(queued) 복수의 인입 클라이언트 요청의 각각에 대한 정보를 결정하는 단계와, 상기 서버 객체의 복수의 병렬 실행 스레드의 각각에 대한 정보를 결정하는 단계와, 우선 순위 결정 규칙을 상기 결정 단계들에서 얻어진 상기 정보에 적용하는 단계와, 상기 우선 순위 결정 규칙 적용 단계의 결과에 기초하여 대기 중인 복수의 요청들의 대기열로부터 디스패칭하는 순서를 스케줄링하는 단계를 포함한다.

본 발명의 제3 특징에 따르면, 본 발명은 컴퓨터에서 수행될 경우, 본 발명의 제2 특징의 방법을 실행하는 컴퓨터 프로그램 제품(product)을 제공한다.

따라서, 본 발명으로, 대기하고 있는 클라이언트 요청은 더 효과적이고 제어 가능한 방법으로 처리되어, 클라이언트에게 리턴되는 처리 결과의 예측 가능성을 크게 향상시킬 수 있다. 높은 우선 순위의 클라이언트 요청은 낮은 우선 순위의 요청 보다 먼저 처리될 수 있고 실행 스레드간의 작업부하 관리가 효과적으로 되어, 대기하고 있는 요청들을 효과적이고 예측 가능하게 처리한다.

도 1은 본 발명이 적용될 수 있는 환경에서, 객체 기술을 사용하는 잘 알려진 이종의 클라이언트/서버 구조의 블록도.

도 2는 종래의 디자인에 따른 서버 구조의 블록도.

도 3은 본 발명의 바람직한 실시예에 따른 서버 구조의 블록도.

도 4는 본 발명의 바람직한 실시예에 따른 프로세싱 단계를 도시하는 플로우 차트.

도 5는 본 발명의 바람직한 실시예에 따라서, 우선 순위가 할당된 후의 객체 어댑터의 대기열 내의 요청들을 도시한다.

도 6은 본 발명의 바람직한 실시예에 따라서, 할당된 우선 순위에 따라 요청들이 재배열된 후의 객체 어댑터의 대기열 내의 요청들을 도시한다.

<도면의 주요 부분에 대한 부호의 설명>

10 : 클라이언트 컴퓨터

20 : 인터페이스

30 : 서버 컴퓨터

31 : 객체 요청 브로커(ORB ; Object Request Broker)

32 : 객체 어댑터

33a, 33b, 33c : 실행 스레드

34 : 우선 순위 결정 유닛

35 : 요청 재배열 유닛

도 3의 바람직한 실시예에서, 클라이언트 프로세스로부터 서버 프로세스에 수신된 요청은 서버의 객체 요청 브로커(ORB)(31)에 의하여 먼저 수신된다. 그런 다음 객체 요청 브로커(ORB)(31)는 특정한 서버 객체에 대한 요청을 서버 객체의 객체 어댑터(32)로 전송한다. 이 서버 객체는 많은 수의 클라이언트 요청을 실행하기 위하여, 서버 객체의 상이한 인스턴스가 병렬로 실행할 수 있는 복수의 병렬 실행 스레드(33a, 33b, 및 33c)를 가진다. 이것은 상술된 도 2의 종래 기술과 유사하다.

도 3의 본 발명의 바람직한 실시예에 따라, 특별한 소프트웨어 유닛이 도 2의 종래 기술에 추가된다. 이러한 특별 유닛은 우선 순위 결정 유닛(priority determining unit)(34) 및 요청 재배열 유닛(priority reordering unit)(35)이다. 우선 순위 결정 유닛(34)은 객체 어댑터(32)로부터의 입력을 수신하고 또한 각각의 실행 스레드 (33a 내지 33c)로부터의 입력을 수신하며 객체 어댑터(32)에 출력을 제공한다. 요청 재배열 유닛(35)은 객체 어댑터(32)로/로부터의 입력/출력 접속을 구비하고 있다.

이러한 바람직한 실시예의 동작을 설명하기 위하여 이하에 제시될 실예에서, 서버 객체는 은행 예금 계좌를 나타낼 것이다. 따라서, 객체 어댑터(32)에서 대기하고 있는 다양한 요청들은 특정 은행 예금 계좌에 엑세스하기 위한 요청이다. 대기하고 있는 요청 중의 하나는 이 계좌로부터 자금을 인출하기 위한, 클라이언트 현금 지급기(ATM)로부터의 요청이다. 이 요청은 소정의 자금을 인출하려는 계좌 소유자로부터의 요청이다. 대기하고 있는 요청 중의 두번째 요청은 직접 예금 급료 지급자 클라이언트로부터의 요청이다. 이 요청은 예금 소유자의 고용주로부터의 요청인데, 고용주는 고용주의 매달 급료를 계좌 소유자의 은행 예금 계좌로 송금하고 있다. 대기하고 있는 요청 중의 세번째 요청은 계좌의 잔액을 조회하기 위한, 다른 클라이언트 현금 지급기(ATM)로부터의 요청이다. 이 요청은 다른 클라이언트 현금 지급기(ATM)에서 소유자로부터 떨어져 마을의 다른 편에 있는 계좌 소유자의 부인으로부터의 요청이다. 대기하고 있는 요청 중의 네번째 요청은 계좌 소유자의 가정에 전기를 공급하는 전기 회사로부터의 직접 데빗(debit) 요청이다. 요청은 매달 전기 요금의 액수에 대한 계좌의 데빗이다.

우선 순위 결정 유닛(34)은 서버 객체에 의한 실행을 기다리고 있는 객체 어댑터(32)내에서 대기하고 있는 요청들의 우선 순위를 결정하기 위하여 프로그램된 규칙에 따라 동작한다. 예를 들어, 규칙의 한 부분은 계좌의 잔액을 조회하는 요청에는 낮은 우선 순위값이 주어져야 한다는 것이다. 왜냐하면, 이 요청에 대한 응답이 대기중인 다른 요청이 먼저 실행된 후에 주어진다면, 클라이언트에게 더 최근의 정보가 될 것이다. 즉, 만약 큰 금액이 직접 데빗에 의해 계좌로부터 차변될 예정이라면, 직접 데빗 이전보다 직접 데빗 후의 잔액이 계좌의 잔액 조회 요청자에게 주어지는 것이 더 낫다. 이는 잔액 조회를 요청하는 사람에게 잔액의 더 최근 상태를 제공하기 때문이다.

규칙의 다른 부분은, 스레드(33a, 33b, 및 33c)가 과부하이면 (일반적인 것과 비하여 높은 수준의 프로세싱을 실행하는), 더 가벼운 프로세싱 부하를 요하는 요청에 더 높은 우선 순위값이 주어진다는 것이다. 예를 들어, 계좌 소유자의 월급을 추가하는 요청은 돈을 인출하는 요청이 아니라 돈을 계좌에 추가하는 요청이기 때문에, 클라이언트를 입증하기 위한 개인 식별 번호(PIN: personal identification number) 체크 루틴과 같이 클라이언트와의 상호작용을 많이 포함하지 않는다. 따라서, 실행 스레드가 과부하인 동안, 이 요청은 더 가벼운 프로세싱 부하를 포함할 수 있으므로 더 높은 우선 순위가 주어져야 한다.

규칙의 또 다른 부분은, 대기열에서 다른 클라이언트보다 어떤 클라이언트로부터의 요청에 우선 순위가 주어져야 한다는 것이다. 예를 들어, 직접 데빗 및 직접 예금 요청보다 현금 지급기(ATM)에서 기다리고 있는 은행 예금 계좌의 소유자에게 우선 순위가 주어질 수 있다. 대안적으로, 데빗을 지불할 수 있는 충분한 자금이 될 수 있는 기회를 증가시키기 위하여 임의의 데빗 요청보다 직접 예금 요청에 우선 순위가 주어질 수 있다.

규칙의 정확한 상세 사항은 프로그래머가 원하는 특별한 방법으로 설정될 수 있다. 따라서 우선 순위 결정 유닛(34)에 의하여 수행되는 우선 순위 결정에 관한 매우 탄력적인 제어를 허용한다.

따라서, 우선 순위 결정 유닛(34)은 대기하고 있는 각각의 요청의 특성을 결정하기 위하여 객체 어댑터(32)에서 대기하고 있는 요청들로부터 입력을 취한다. 또한, 우선 순위 결정 유닛(34)은 실행 스레드의 현재 상태를 결정하기 위하여 각각의 실행 스레드(33a,33b, 및 33c)로부터 입력을 선택한다. 그런 다음, 우선 순위 결정 유닛(34)은 가장 높은 값에서 가장 낮은 값까지 분포되어 있는 우선 순위값의 범위로부터 우선 순위값을 대기하고 있는 각각의 요청에게 할당한다.

그런 다음, 가장 높은 우선 순위값의 요청이 실행 스레드에 다음으로 디스패칭되도록 대기열의 최상위에 위치되고 다른 요청들은 내림차순의 우선 순위값을 따라 내림차순으로 위치되도록, 요청 재배열 유닛(35)은 대기하고 있는 각각의 요청에 할당된 우선 순위값을 검사하고 그들의 우선 순위값에 따라 대기하고 있는 요청들을 재배열한다.

대기하고 있는 요청의 순서는 동적으로 변경될 수 있다는 것, 즉 만약 시스템의 상태가 변경됐다면, 요청 재배열 유닛(35)이 요청을 재배열한 후에도 요청의 순서가 변경될 수 있다는 것을 주목해야한다. 예를 들어, 요청 재배열 유닛(35)이 대기하고 있는 요청들을 재배열한 후 스레드(33b)가 갑자기 사용 가능하게(free) 될 경우, 우선 순위 결정 유닛(34)은, 스레드(33b)가 사용 가능하게 되면 연산-집중적인 요청 (예로서, 현금 지급기(ATM)로부터 자금을 인출하려는 계좌 소유자의 요청, 상기 요청은 개인 식별 번호(PIN) 조회 및 다른 클라이언트 상호작용을 필요로 함)에 높은 우선 순위값이 주어져야 한다는 프로그램된 규칙의 한 부분을 따른다. 이는, 스레드(33b)가 과도란 프로세싱 부하를 처리하기 위하여 특별히 잘 적합화되어, 사용 가능하게 될 경우 가능한 한 스레드간의 효과적인 작업부하의 균형을 제공하기 위하여 스레드(33b) 상에서의 실행이 가능하게 되자마자 적당한 요청이 스케줄링된다는 것이다. 이와 관련하여, 우선 순위 결정 유닛이 규칙을 입력에 적용하는 빈도는 프로그래머에 의하여 설정될 수 있다. 한 선택은 새로운 요청이 대기열에 수신되는 각 시간이 될 수 있다. 다른 선택은 요청이 대기열로부터 디스패칭되는 각 시간이 될 수 있다. 세번째 선택은 선정된 시간 (예로써, 5초)이 경과한 다음이 될 수 있다.

우선 순위 결정 유닛(34)이 따르는 규칙은 프로그래머의 정확한 의도에 적합하게 다시 프로그램될 수 있다. 예를 들어, 프로그래머가 클라이언트에게 가장 최근 계좌 잔액 정보를 주는 것보다 작업부하를 효과적으로 균형잡는 것이 더 중요하다고 결정한다면, 스레드(33b)가 사용 가능하게 될 때, 계좌 잔액 조사 요청에 비하여 과도한 프로세싱을 요하는 요청에 더 높은 우선 순위를 부여하도록 우선 순위의 정확한 레벨이 설정될 수 있다.

본 발명의 바람직한 실시예에 의하여 실행되는 단계가 도 4의 플로우 차트에 도시되어 있다.

단계(41)에서, 우선 순위 결정 유닛(34)은 객체 어댑터(32)의 대기열 내에 있는 각각의 요청을 조사한다. 단계(42)에서, 우선 순위 결정 유닛(34)는 각각의 실행 스레드(33a, 33b, 및 33c)의 상태를 조사한다. 단계(43)에서, 우선 순위 결정 유닛은 우선 순위 결정 규칙의 입력으로서 단계(41 및 42)로부터 수집된 정보를 사용한다. 상술된 바와 같이, 이 규칙은 프로그래머에 의해 요구된 우선 순위 결정을 반영하도록 프로그램되었다.

단계(44)에서, 우선 순위 결정 유닛(34)은, 단계(43)에서 우선 순위 결정 규칙을 대기하고 있는 요청에 적용한 결과를 토대로, 대기하고 있는 각각의 요청에 우선 순위값을 할당한다. 특히, 객체 어댑터(32)의 대기열 내에 있는 각각의 요청에 그 요청에 대한 우선 순위 결정 규칙의 적용 결과에 따른 값과 같은 수치값이 할당된다.

예를 들어, 도 5에 도시된 바와 같이, 객체 어댑터(32)의 대기열 내에 세 개의 요청 즉, 요청_1 (종래의 FIFO 시스템이 사용된다면, 대기열을 떠날 다음 요청이 될), 요청_2 (요청_1의 바로 뒤에 있는) 및 요청_3 (요청_2의 바로 뒤에 있는)이 있다. 만약, 규칙이 단계(43)에서 적용될 때, 요청_1에 우선 순위값 2가 할당되고 요청_2에 우선 순위값 3이 할당되며 요청_3에 우선 순위값 1이 할당된다면, 이러한 값들은 대기하고 있는 각각의 요청을 기입한 칼럼(501)을 따라 위치한칼럼(502)에 저장된다.

단계(45)에서, 가장 높은 우선 순위인 요청(요청_3)이 칼럼(501, 도 6 참조)의 최상위에 위치하고 다른 두 요청은 그들에게 할당된 우선 순위에 따라 제1 요청의 뒤에 순서대로 위치되도록, 요청 재배열 유닛(35)은 객체 어댑터(32)의 대기열의 칼럼(502)을 조사하고 칼럼(501) 내의 요청을 재배열한다.

따라서 본 발명은, 분산 배치된 이종의 프로세싱 플랫폼 환경에서 오늘날의 상업적 프로세싱 환경에 의해 요구되는 고도로 예측 가능하고 효과적인 결과를 제공한다. 따라서, 시스템-와이드(system wide) 작업부하 밸런싱을 통하여 많은 수의 클라이언트에게 사용 가능한 서버 자원의 효과적인 사용이 부여될 수 있다. 또한, 클라이언트가 이종의 플랫폼 상에 위치한 서버 객체를 기동하는 각각의 경우, 보증된 처리 시간 내에 서버로부터 일관되고 고도로 예측 가능한 결과가 클라이언트에게 제공된다.

Claims (6)

  1. 이종의(heterogeneous) 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 스케줄링 및 디스패칭(dispatching)하기 위한 장치에 있어서,
    상기 클라이언트 요청을 상기 장치로 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼(request-holding buffer)와,
    상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드(threads)와,
    상기 버퍼에 저장된 상기 클라이언트 요청을 상기 복수의 실행 스레드로 배분하기 위한 스케줄링 수단
    을 포함하되,
    상기 스케줄링 수단은, 상기 복수의 실행 스레드의 상태 및 상기 저장된 요청의 특성을 고려하는 우선 순위 결정 규칙에 기초하여 상기 버퍼에 저장된 클라이언트 요청을 우선 순위의 순서로 배치하는
    스케줄링 및 디스패칭 장치.
  2. 제1항에 있어서,
    상기 버퍼는 객체 어댑터 내에 포함된 스케줄링 및 디스패칭 장치.
  3. 제1항에 있어서,
    상기 스케줄링 수단은, 상기 우선 순위 결정 규칙을 적용하여 우선 순위값을 상기 버퍼에 있는 각각의 요청에 할당하고, 최고 우선 순위값의 요청이 상기 서버 객체에 의한 실행에 대해 바로 다음이 되도록 상기 버퍼에서 더 높은 우선 순위값의 요청을 더 낮은 우선 순위값의 요청의 앞에 배치하는 스케줄링 및 디스패칭 장치.
  4. 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 스케줄링 및 디스패칭하는 방법에 있어서,
    대기 중인(queued) 복수의 인입(incoming) 클라이언트 요청의 각각에 대한 정보를 결정하는 단계와,
    상기 서버 객체의 복수의 병렬 실행 스레드의 각각에 대한 정보를 결정하는 단계와,
    우선 순위 결정 규칙을 상기 결정 단계들에서 얻어진 상기 정보에 적용하는 단계와,
    상기 우선 순위 결정 규칙 적용 단계의 결과에 기초하여 상기 대기 중인 복수의 요청들의 대기열로부터 디스패칭하는 순서를 스케줄링하는 단계
    를 포함하는 스케줄링 및 디스패칭 방법.
  5. 제4항에 있어서,
    상기 우선 순위 결정 규칙 적용 단계가 수행되는 빈도는 프로그래머에 의해 선택되는 스케줄링 및 디스패칭 방법.
  6. 컴퓨터 판독 가능한 저장 매체에 저장되어, 컴퓨터에서 수행될 경우, 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 스케줄링 및 디스패칭하는 방법을 수행하는 컴퓨터 프로그램 제품(product)에 있어서, 상기 방법이
    대기 중인 복수의 인입 클라이언트 요청의 각각에 대한 정보를 결정하는 단계와,
    상기 서버 객체의 복수의 병렬 실행 스레드의 각각에 대한 정보를 결정하는 단계와,
    우선 순위 결정 규칙을 상기 결정 단계들에서 얻어진 상기 정보에 적용하는 단계와,
    상기 우선 순위 결정 규칙 적용 단계의 결과에 기초하여 상기 대기 중인 복수의 요청들의 대기열로부터 디스패칭하는 순서를 스케줄링하는 단계
    를 포함하는 컴퓨터 프로그램 제품.
KR1019990000884A 1998-02-04 1999-01-14 클라이언트/서버 컴퓨터 시스템에서 서버 내의 대기 중인 클라이언트 요청들을 스케줄링 및 디스패칭하는 장치 및 방법 KR100322724B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
GB9802294A GB2334116A (en) 1998-02-04 1998-02-04 Scheduling and dispatching queued client requests within a server computer
GB9802294.0 1998-02-04

Publications (2)

Publication Number Publication Date
KR19990072255A KR19990072255A (ko) 1999-09-27
KR100322724B1 true KR100322724B1 (ko) 2002-02-07

Family

ID=10826386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990000884A KR100322724B1 (ko) 1998-02-04 1999-01-14 클라이언트/서버 컴퓨터 시스템에서 서버 내의 대기 중인 클라이언트 요청들을 스케줄링 및 디스패칭하는 장치 및 방법

Country Status (7)

Country Link
US (1) US6505250B2 (ko)
EP (1) EP0935194A3 (ko)
JP (1) JPH11259443A (ko)
KR (1) KR100322724B1 (ko)
CN (1) CN1225472A (ko)
GB (1) GB2334116A (ko)
TW (1) TW494357B (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976083B1 (en) * 1999-02-19 2005-12-13 International Business Machines Corporation Apparatus for providing direct data processing access using a queued direct input-output device
US7249073B1 (en) * 1999-08-27 2007-07-24 Diversified Human Resources, Inc. Methods and apparatus for a personal financial service provider
EP1081930A1 (en) * 1999-08-31 2001-03-07 Lucent Technologies ECS Limited Method and apparatus for establishing communication
US6665699B1 (en) * 1999-09-23 2003-12-16 Bull Hn Information Systems Inc. Method and data processing system providing processor affinity dispatching
WO2001057665A2 (en) * 2000-02-07 2001-08-09 Epicrealm Operating Inc. Method and apparatus for dynamic data flow control
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
US6874027B1 (en) * 2000-04-07 2005-03-29 Network Appliance, Inc. Low-overhead threads in a high-concurrency system
US6832239B1 (en) 2000-07-07 2004-12-14 International Business Machines Corporation Systems for managing network resources
US6763520B1 (en) * 2000-08-24 2004-07-13 Cognos Incorporated Fair assignment of processing resources to queued requests
US7139792B1 (en) * 2000-09-29 2006-11-21 Intel Corporation Mechanism for locking client requests to a particular server
JP3777302B2 (ja) * 2000-12-21 2006-05-24 富士通株式会社 通信振り分け制御装置、および通信振り分けプログラムを記憶した記憶媒体
US6895585B2 (en) * 2001-03-30 2005-05-17 Hewlett-Packard Development Company, L.P. Method of mixed workload high performance scheduling
US20020169680A1 (en) * 2001-05-10 2002-11-14 International Business Machines Corporation Method and apparatus for building commercial distributed computing networks via computer cost subsidization
US20050044168A1 (en) * 2001-12-03 2005-02-24 Agency For Science Technology And Research Method of connecting a plurality of remote sites to a server
US7346135B1 (en) 2002-02-13 2008-03-18 Marvell International, Ltd. Compensation for residual frequency offset, phase noise and sampling phase offset in wireless networks
US7114156B2 (en) * 2002-03-29 2006-09-26 International Business Machines Corporation System and method for processing multiple work flow requests from multiple users in a queuing system
KR100899527B1 (ko) * 2002-06-25 2009-05-27 주식회사 케이티 웹 서비스의 멀티쓰레드 운용 시스템 및 방법
US8046832B2 (en) * 2002-06-26 2011-10-25 Microsoft Corporation Spam detector with challenges
CN1230737C (zh) * 2002-09-23 2005-12-07 华为技术有限公司 一种设备数据轮询调度方法
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
US7246192B1 (en) 2003-01-10 2007-07-17 Marvell International Ltd. Serial/parallel ATA controller and converter
US20040158637A1 (en) * 2003-02-12 2004-08-12 Lee Timothy Charles Gated-pull load balancer
US7249162B2 (en) * 2003-02-25 2007-07-24 Microsoft Corporation Adaptive junk message filtering system
US7543053B2 (en) * 2003-03-03 2009-06-02 Microsoft Corporation Intelligent quarantining for spam prevention
US7219148B2 (en) 2003-03-03 2007-05-15 Microsoft Corporation Feedback loop for spam prevention
US7483947B2 (en) * 2003-05-02 2009-01-27 Microsoft Corporation Message rendering for identification of content features
US7272853B2 (en) * 2003-06-04 2007-09-18 Microsoft Corporation Origination/destination features and lists for spam prevention
US7711779B2 (en) * 2003-06-20 2010-05-04 Microsoft Corporation Prevention of outgoing spam
US7519668B2 (en) * 2003-06-20 2009-04-14 Microsoft Corporation Obfuscation of spam filter
US8533270B2 (en) 2003-06-23 2013-09-10 Microsoft Corporation Advanced spam detection techniques
JPWO2005003981A1 (ja) * 2003-07-02 2006-08-17 富士通株式会社 ステータス通知装置およびステータス通知方法
US7751315B1 (en) * 2003-07-15 2010-07-06 Microsoft Corporation Shared network path contention reduction
US7373640B1 (en) 2003-07-31 2008-05-13 Network Appliance, Inc. Technique for dynamically restricting thread concurrency without rewriting thread code
CN1314245C (zh) * 2003-08-22 2007-05-02 中国科学院研究生院 虚拟目的地排队交换系统的一种调度方法
US8930583B1 (en) 2003-09-18 2015-01-06 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for controlling data transfer in a serial-ATA system
US20080275992A1 (en) * 2005-02-09 2008-11-06 Access Systems Americas, Inc. System and method of managing connections between a computing system and an available network using a connection manager
US8214438B2 (en) * 2004-03-01 2012-07-03 Microsoft Corporation (More) advanced spam detection features
US20050204006A1 (en) * 2004-03-12 2005-09-15 Purcell Sean E. Message junk rating interface
US20050204005A1 (en) * 2004-03-12 2005-09-15 Purcell Sean E. Selective treatment of messages based on junk rating
US7657892B2 (en) * 2004-05-20 2010-02-02 Bea Systems, Inc. System and method for application server with self-tuned threading model
US7664819B2 (en) * 2004-06-29 2010-02-16 Microsoft Corporation Incremental anti-spam lookup and update service
US7904517B2 (en) * 2004-08-09 2011-03-08 Microsoft Corporation Challenge response systems
US7660865B2 (en) 2004-08-12 2010-02-09 Microsoft Corporation Spam filtering with probabilistic secure hashes
US8230426B2 (en) * 2004-10-06 2012-07-24 Digipede Technologies, Llc Multicore distributed processing system using selection of available workunits based on the comparison of concurrency attributes with the parallel processing characteristics
JP4606142B2 (ja) 2004-12-01 2011-01-05 株式会社ソニー・コンピュータエンタテインメント スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US8352504B2 (en) * 2005-02-24 2013-01-08 International Business Machines Corporation Method, system and program product for managing a workload on a plurality of heterogeneous computing systems
US7930353B2 (en) 2005-07-29 2011-04-19 Microsoft Corporation Trees of classifiers for detecting email spam
US8065370B2 (en) 2005-11-03 2011-11-22 Microsoft Corporation Proofs to filter spam
JP5109250B2 (ja) 2005-11-08 2012-12-26 横河電機株式会社 分散システム
US7752123B2 (en) * 2006-04-28 2010-07-06 Townsend Analytics Ltd. Order management system and method for electronic securities trading
US8224905B2 (en) * 2006-12-06 2012-07-17 Microsoft Corporation Spam filtration utilizing sender activity data
US9588810B2 (en) * 2007-08-08 2017-03-07 Microsoft Technology Licensing, Llc Parallelism-aware memory request scheduling in shared memory controllers
CN101299758B (zh) 2008-05-21 2011-05-11 网御神州科技(北京)有限公司 一种大规模事件处理的规则群组系统及处理方法
CN101295269B (zh) 2008-05-26 2010-06-09 浙江大学 一种基于事务的构件交互同步的方法
US10002161B2 (en) * 2008-12-03 2018-06-19 Sap Se Multithreading and concurrency control for a rule-based transaction engine
CN101604437A (zh) * 2009-07-22 2009-12-16 阿里巴巴集团控股有限公司 账户批量实时处理系统及账户批量实时处理方法
CN101968750B (zh) * 2010-10-15 2012-12-26 珠海举天软件科技有限公司 计算机系统及其工作方法
US9817698B2 (en) 2011-06-17 2017-11-14 Microsoft Technology Licensing, Llc Scheduling execution requests to allow partial results
US8973001B2 (en) 2012-01-11 2015-03-03 Bank Of America Corporation Processing transaction requests using a load balancing utility and multiple operating parameters
TWI506980B (zh) * 2012-08-15 2015-11-01 Dynasafe Technologies Inc 網路服務的隊列處理系統、裝置與方法
CN103164273A (zh) * 2012-09-06 2013-06-19 佳都新太科技股份有限公司 一种利用自扩展的阻塞算法将同步服务调用转换为异步并行式调用的方法
CN103685387B (zh) * 2012-09-12 2017-05-03 中国移动通信集团公司 一种调度http请求的方法和浏览器装置
US20140279451A1 (en) * 2013-03-15 2014-09-18 Fedbid, Inc. Escrow Payment System for Transactions
CN104360965A (zh) * 2014-12-09 2015-02-18 浪潮电子信息产业股份有限公司 一种cfq调度方法
RU2609089C2 (ru) * 2015-02-24 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Система и способ выполнения очереди запросов в отношении цифровых объектов

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU628753B2 (en) 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
US5506987A (en) * 1991-02-01 1996-04-09 Digital Equipment Corporation Affinity scheduling of processes on symmetric multiprocessing systems
US5317568A (en) 1991-04-11 1994-05-31 Galileo International Partnership Method and apparatus for managing and facilitating communications in a distributed hetergeneous network
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
US5437032A (en) * 1993-11-04 1995-07-25 International Business Machines Corporation Task scheduler for a miltiprocessor system
JPH08286962A (ja) 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
US6006247A (en) * 1995-03-21 1999-12-21 International Business Machines Corporation Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US5752031A (en) * 1995-04-24 1998-05-12 Microsoft Corporation Queue object for controlling concurrency in a computer system
US5603029A (en) * 1995-06-07 1997-02-11 International Business Machines Corporation System of assigning work requests based on classifying into an eligible class where the criteria is goal oriented and capacity information is available
US5940612A (en) * 1995-09-27 1999-08-17 International Business Machines Corporation System and method for queuing of tasks in a multiprocessing system
US5826081A (en) * 1996-05-06 1998-10-20 Sun Microsystems, Inc. Real time thread dispatcher for multiprocessor applications
GB2320112B (en) * 1996-12-07 2001-07-25 Ibm High-availability computer server system
GB2320594A (en) * 1996-12-20 1998-06-24 Ibm Dispatching client method calls to parallel execution threads within a server
US6317774B1 (en) * 1997-01-09 2001-11-13 Microsoft Corporation Providing predictable scheduling of programs using a repeating precomputed schedule

Also Published As

Publication number Publication date
US20010039575A1 (en) 2001-11-08
GB9802294D0 (en) 1998-04-01
TW494357B (en) 2002-07-11
CN1225472A (zh) 1999-08-11
JPH11259443A (ja) 1999-09-24
KR19990072255A (ko) 1999-09-27
EP0935194A3 (en) 2006-07-19
US6505250B2 (en) 2003-01-07
EP0935194A2 (en) 1999-08-11
GB2334116A (en) 1999-08-11

Similar Documents

Publication Publication Date Title
US7937705B1 (en) Dynamic job processing based on estimated completion time and specified tolerance time
US7721286B2 (en) Preemptive multi-tasking with cooperative groups of tasks
US8745193B2 (en) Concurrent web based multi-task support for control management system
EP0600235B1 (en) Cooperative processing interface and communication broker for heterogeneous computing environments
US5522070A (en) Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network
US4615001A (en) Queuing arrangement for initiating execution of multistage transactions
US5748468A (en) Prioritized co-processor resource manager and method
JP5336094B2 (ja) クライアント・サーバ又はホスティング環境における計算ジョブの多目的配分
US6986137B1 (en) Method, system and program products for managing logical processors of a computing environment
EP0850444B1 (en) Support for application programs in a distributed environment
US7171470B2 (en) Grid service scheduling of related services using heuristics
US4969092A (en) Method for scheduling execution of distributed application programs at preset times in an SNA LU 6.2 network environment
AU746391B2 (en) Method and system for facilitating distributed software development in a distribution unaware manner
US7461149B2 (en) Ordering provisioning request execution based on service level agreement and customer entitlement
EP0543512B1 (en) Multiprocessor system
EP1971917B1 (en) Load balancing algorithm for servicing client requests
CN1280725C (zh) 分区处理环境中的资源平衡的计算系统和方法
US5706516A (en) System for communicating messages among agent processes
US6651125B2 (en) Processing channel subsystem pending I/O work queues based on priorities
KR100861738B1 (ko) 이동가능한 오브젝트를 가진 그리드 인에이블 가상 머신용방법 및 시스템
DE69822935T2 (de) Vorrichtung und Verfahren zur dynamischen Regelung der Betriebsmittelzuweisung in einem Computersystem
US5870604A (en) Job execution processor changing method and system, for load distribution among processors
US8621031B2 (en) Method and apparatus using connection pools in communication networks
US7203943B2 (en) Dynamic allocation of processing tasks using variable performance hardware platforms
US5062037A (en) Method to provide concurrent execution of distributed application programs by a host computer and an intelligent work station on an sna network

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
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20051213

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee