KR19990072256A - 클라이언트/서버컴퓨터시스템에서서버내의클라이언트요청들의디스패칭시에시맨틱동시제어를수행하는장치및방법 - Google Patents

클라이언트/서버컴퓨터시스템에서서버내의클라이언트요청들의디스패칭시에시맨틱동시제어를수행하는장치및방법 Download PDF

Info

Publication number
KR19990072256A
KR19990072256A KR1019990000885A KR19990000885A KR19990072256A KR 19990072256 A KR19990072256 A KR 19990072256A KR 1019990000885 A KR1019990000885 A KR 1019990000885A KR 19990000885 A KR19990000885 A KR 19990000885A KR 19990072256 A KR19990072256 A KR 19990072256A
Authority
KR
South Korea
Prior art keywords
request
server
buffer
client
semantics
Prior art date
Application number
KR1019990000885A
Other languages
English (en)
Other versions
KR100322224B1 (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 KR19990072256A publication Critical patent/KR19990072256A/ko
Application granted granted Critical
Publication of KR100322224B1 publication Critical patent/KR100322224B1/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
    • 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/465Distributed object oriented systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

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)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이종의(heterogeneous) 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭(dispatching)하기 위한 장치를 제공하는데, 상기 장치는 상기 클라이언트 요청을 상기 장치로 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼(request-holding buffer)와, 상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드(threads)와, 상기 버퍼에 있는 요청의 시맨틱(semantics) 및 상기 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하고, 상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭하는 경우 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타낼 때, 상기 요청이 디스패칭되는 것을 지연시키기 위한 시맨틱 동시 제어 수단(semantic concurrency control means)을 포함한다.

Description

클라이언트/서버 컴퓨터 시스템에서 서버 내의 클라이언트 요청들의 디스패칭시에 시맨틱 동시 제어를 수행하는 장치 및 방법{APPARATUS AND METHOD FOR PERFORMING SEMANTIC CONCURRENCY CONTROL IN DISPATCHING CLIENT REQUESTS WITHIN A SERVER IN A CLIENT/SERVER COMPUTER SYSTEM}
본 발명은 한 컴퓨팅 장치("클라이언트")가 다른 컴퓨팅 장치("서버")에게 클라이언트 작업의 일부를 수행하도록 요청하는 클라이언트/서버 (또한 "분산"으로 알려짐) 컴퓨팅 분야에 관한 것이다.
클라이언트/서버 컴퓨팅은 정보 기술 분야에서 최근 몇 년 동안 점점 중요해지고 있다. 이러한 형태의 분산 컴퓨팅은 한 머쉰(machine)이 일부의 작업을 그 작업을 수행하기에 더 적합한 다른 머쉰에게 맡기는 것을 허용한다.
클라이언트/서버 컴퓨팅의 장점은, 클라이언트 및 서버가 상이한(이종의) "플랫폼"상에 위치되도록 허용하는 객체-지향 프로그래밍(OOP)이라고 명명되는 공지된 컴퓨터 프로그래밍 기술의 사용에 의해 더 향상되어져 왔다. 플랫폼은 머쉰이 그 작업을 하는데 사용되는 특정한 하드웨어/소프트웨어/운영체제/통신 프로토콜의 결합이다. 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)은 도 1에 도시된 바와 같이 이종의 플랫폼 상의 클라이언트/서버 컴퓨팅의 다양한 분야에 관련된 조직의 국제적인 컨소시움이다. OMG는 클라이언트 컴퓨터(예 10)가 서버 머쉰(예 20)과 통신할 (OOP 형식으로) 경우에 기준이 되는 공개된 표준을 발표했다. 이러한 표준의 일부로서, 클라이언트와 서버 머쉰간의 객체-지향 브리지를 제공하는 객체 요청 브로커가 정의되어 있다. ORB는 접속 수단(80) 뿐만 아니라 제1 및 제2 논리 수단(50 및 90)의 작업의 적어도 일부를 수행하면서, 객체 지향 구현의 상세한 사항으로부터 클라이언트 및 서버 어플리케이션을 분리한다.
도 2는 이러한 시스템에 대한 종래의 구조를 도시한다. 일단 클라이언트 요청이 ORB(21)를 통하여 서버 내로 그들의 경로를 발견하고 나면, ORB는 그 요청의 실행이 가능한 특정 서버 객체를 찾아서 그 요청을 상기 서버 객체의 객체 어댑터(22) (이 또한 OMG 표준에 의해 정의됨)로 전송한다. 상기 요청은 서버 객체 어댑터 버퍼 내에 저장되어 서버 객체에 의한 처리를 기다린다. 서버 객체는 복수의 병렬 실행 스레드(thread, 23a, 23b, 23c)를 가지는데, 서버 객체는 상기 스레드 중의 어느 한 스레드 상에 자신의 인스턴스를 실행시킬 수 있다. 이러한 방법으로, 서버 객체는 동시에 복수의 요청을 처리할 수 있다. 객체 어댑터(22)는 병렬 실행 스레드 중에서 어느 것이 다른 요청을 처리할 수 있는지를 살피다가, 요청들 중의 하나를 다음 번 사용 가능한 실행 스레드에 할당한다. 이는 서버가 대기하고 있는 요청들을 실행 스레드로 디스패칭하는 "디스패칭(dispatching)" 메카니즘으로서, 상술된 미국 특허에 설명되어 있다.
도 2의 OMG-표준 서버 구조는 트랜색션(transaction) 프로세싱 분야에서 특히 사용된다. 트랜색션 프로세싱 시스템으로 구현된 컴퓨터는 다수의 산업 분야에서 중요한 비즈니스 업무용으로 사용된다. 트랜색션은 액션없이(without action) 완전히 완료되거나 일소되어야 하는 단일 작업 유닛을 정의한다. 예를 들면, 고객이 돈을 인출하는 은행 ATM(automatic teller machine)의 경우, 돈을 지급하는 액션, 머쉰에서 바로 금액의 잔고를 감소시키는 액션 및 고객의 은행 잔고를 감소시키는 액션이 모두 발생하거나 아니면 아무 액션도 발생하지 않아야 한다. 부속한 액션 중의 하나라도 잘못될 경우 기록과 실제 발생된 사건간에 불일치가 생긴다.
물리적 또는 논리적인 한 장소에서보다 분산된 트랜색션 프로세싱은 자원에 더 영향을 미치는 트랜색션을 포함한다. 상술된 예에서, 트랜색션은 은행의 메인 컴퓨터에 의해 관리되는 은행 잔고뿐만 아니라 로컬 ATM 장치에서 관리되는 자원에도 영향을 미친다. 이러한 트랜색션은 서버에 의해 처리될 일련의 클라이언트 요청들에 대해 한 특정 서버 컴퓨터와 통신할 한 특정 클라이언트 컴퓨터를 필요로 한다.
전형적인 클라이언트/서버 시스템에 있어서, 클라이언트 및 서버 시스템의 각각이 상기 트랜색션의 전체적인 프로세싱에 기여한다. 또한, 다수의 상이한 클라이언트가 동일 서버를 개별 트랜색션에 관련되어 사용하려고 동시에 시도할 수도 있다. 예를 들어, 다수의 상이한 뱅킹 ATM (클라이언트 시스템)이 은행의 대형 중앙 서버에서 실행되는 유명한 데이터베이스 프로그램으로부터 데이터를 억세스하기 위해 동시에 트랜색션을 시작하려고 시도할 수도 있다. 이러한 상황 중 일부에서는, 동시 발생된 트랜색션들이 서로 영향을 미치지 않도록 서로를 분리할 수 있어야 한다. 즉, 한 트랜색션이 완료될 때 (모든 부분들이 수행되거나 모든 부분들이 포기될 때)까지 동일 서버에 억세스하려는 다른 트랜색션들은 대기하도록 하여야 한다.
예를 들면, 남편이 도시의 한 편에 있는 은행의 ATM에서 가계 수표 계좌로부터 $2000을 고율의 이자를 지급하는 저축 계좌로 송금하고자 하고 그의 아내는 도시의 다른 편에 있는 다른 ATM (다른 은행 소유의)에서 동일한 트랜색션을 수행하려고 시도할 경우, 서버는 이러한 상황을 효과적으로 처리하여 두 개의 동시 발생 트랜색션이 데이터베이스 서버를 소유한 은행에 문제를 일으키지 않도록 해야 한다.
이러한 문제가 전형적으로 해결되는 방법은 서버 데이터베이스 프로그램이 동시 발생 억세스에 대해 트랜색션 록(transactional locking)을 실행하는 것이다. 즉, 일단 첫번째 클라이언트 (예로서, 남편이 사용하는 ATM)가 억세스를 요청하고 나면 서버의 데이터베이스 관리 시스템(DBMS)은 데이터베이스에 저장된 가족 계좌 데이터에 대한 이 후의 억세스를 금지시킨다. 그 다음, 아내의 트랜색션이 동시에 요청되고 있지만 남편의 트랜색션은 별도로 진행된다. 남편의 클라이언트 ATM이 이미 데이터에 대한 록을 가지고 있으므로 아내의 클라이언트 ATM은 상기 데이터로의 억세스 허락이 나지 않을 것이다.
동시 제어 책임을 서버 어플리케이션 (즉, DBMS)에 두는 방법은 복잡한 록 기술을 관리 시스템 소프트웨어에 포함한 데이터베이스 서버의 경우에는 잘 동작하였다. 그러나, 다른 형태의 어플리케이션이 사용되면, 상술된 시스템은 서버 어플리케이션 프로그래머가 객체 지향 프로그램을 작성하면서 복잡한 록 스킴(lock scheme)을 그 프로그램에 포함시켜야 할 것을 요구한다. 또한, 프로그래머는 적당한 트랜색션 환경을 그 프로그램의 동시 제어 특징에 포함시킬 수 있기 위해 트랜색션 이론에 대한 깊은 지식을 가져야만 한다.
이러한 문제점을 극복하기 위해, 인터내셔날 비즈니스 머쉰 코포레이션(IBM)은 ORB(도 2의 21) 내에서 트랜색션 록이 실행되는 방법을 공개하는 특허 출원 (영국 특허 출원 번호 제9701566.3)을 1997년 1월 25일에 출원하였다. 즉, 각각의 클라이언트 요청이 ORB(21)를 통해 객체 어댑터(22)에 도달할 때, 상기 방법은 서버 자원에 대한 록이 필요한지를 결정하고 상기 록이 현재 보유된 록과 충돌하지 않을 경우 상기 록을 획득한다. 만약 충돌이 존재하면, 인입 요청은 현재 보유되어 충돌을 일으키는 록 (이전 요청으로부터의 록)이 해제될 때까지 기다려야 한다.
그러나, 이러한 종래의 두 가지 접근 방법에 있어서, 동시 제어를 수행하기 위해 서버 자원에 대한 록을 획득하는 것이 필요하다. 상기 록을 획득하는데 포함된 프로세싱 단계는 다음과 같다. 먼저, 인입 요청은 사용 가능한 스레드로 디스패칭되어 서버 객체의 인스턴스가 구체화된다(is instantiated). 두번째로, 서버 객체의 이 특정 인스턴스를 위한 로컬 저장 장치가 이 스레드를 위해 획득된다. 세번째로, 서버 객체와 관련된 프로그램 및 데이터가 저장 장치로 로딩된다. 네번째로, 관련 파일이 실행을 위해 억세스된다. 마지막으로, 상술된 4 단계 모두 실행된 후에, 상기 요청 후의 요청들이 서버 객체의 자원에 대한 상기 요청의 억세스와 확실히 충돌하지 않도록 하기 위해 서버 객체에 대한 록이 획득된다. 다음으로 디스패칭되는 요청의 경우, 처음 4 단계가 실행되고 이 요청이 이미 록된 자원에의 억세스를 요구하면, 서버 객체에 대한 첫번째 요청으로부터의 록이 해제될 때까지 이 요청은 기다려야 한다.
동시 제어를 수행하기 위한 록의 사용은, 특히 동시 발생 요청의 수가 증가할수록 중앙 처리 장치(CPU) 자원의 비효율적인 사용을 초래한다. 예를 들면, 2000 명의 사용자가 동일한 환율(exchange rate) 객체를 공유하고 그 중의 1999 명이 인기 환율 (예로서, 미국 달러에 대한 영국 파운드화의 비율)의 가장 최근 값을 알고자 하는 클라이언트인데 1 명의 사용자는 환율을 갱신하고자 요청하고 있다고 가정해 보자. 록의 사용은 2000 개의 스레드가 사용되고 2000 개의 로컬 저장 장치가 할당되는 결과를 낳는다. 이러한 많은 요청들을 스레드로 디스패칭하고, 동수의 저장 영역을 획득하며, 많은 프로그램을 로딩하고, 많은 수의 파일들에 억세스하는데 매우 많은 횟수의 CPU 프로세싱 사이클이 요구된다. 그래서, 클라이언트 요청을 디스패칭하기 위한 더욱 효과적인 방법에 대한 절실한 필요성이 있다.
본 발명의 제1 특징에 따르면, 본 발명은 이종의(heterogeneous) 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭(dispatching)하기 위한 장치를 제공하는데, 상기 장치는 상기 클라이언트 요청을 상기 장치로 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼(request-holding buffer)와, 상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드(threads)와, 상기 버퍼에 있는 요청의 시맨틱(semantics) 및 상기 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하고, 상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키기 위한 시맨틱 동시 제어 수단(semantic concurrency control means)을 포함한다.
바람직하게는, 상기 버퍼는 객체 어댑터 내에 포함된다.
바람직하게는, 상기 통신 채널은 객체 요청 브로커(broker)를 포함한다.
바람직하게는, 상기 시맨틱 동시 제어 수단은, 상기 버퍼에 있는 요청을 디스패칭하는 것이 이미 스레드에 디스패칭되어 있는 요청과 충돌하는지 여부를 결정함에 있어 상기 서버 객체의 상태를 고려한다.
본 발명의 제2 특징에 따르면, 본 발명은 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭하는 방법을 제공하는데, 상기 방법은 상기 클라이언트 요청을 상기 장치에 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼에 있는 요청의 시맨틱을 조사하는 단계와, 상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하는 단계와, 상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키는 단계를 포함한다.
본 발명의 제3 특징에 따르면, 본 발명은 컴퓨터에서 수행될 경우, 본 발명의 제2 특징의 방법을 실행하는 컴퓨터 프로그램 제품(product)을 제공한다.
따라서, 본 발명의 경우, 서버 객체 자원에 대한 록을 획득할 필요가 없기 때문에, 서버에 수신된 클라이언트 요청들에 대한 서버 객체의 동시 제어가 CPU 프로세싱 사이클을 횟수를 상당히 줄이면서도 매우 효과적인 방법으로 실행될 수 있다. 특히, 록이 획득될 경우, 버퍼에 있는 모든 요청들은 스레드로 디스패칭되고, 저장 영역이 각각의 디스패칭된 요청에 대해 할당되며 다른 관련된 프로세싱이 각각의 디스패칭된 요청에 대해 발생한다. 그러나, 본 발명의 경우, 한 요청이 스레드에서 현재 실행되고 있는 다른 요청과 관련된 서버 객체 자원에서 충돌을 일으키는 억세스를 포함하지 않는다고 결정될 때까지는 상기 요청은 버퍼로부터 디스패칭되지 않는다 (그리고 저장 영역도 상기 요청에 할당되지 않음).
도 1은 본 발명이 적용될 수 있는 환경에서, 객체 기술을 사용하는 잘 알려진 이종의 클라이언트/서버 구조의 블록도.
도 2는 종래의 디자인에 따른 서버 구조의 블록도.
도 3은 본 발명의 바람직한 실시예에 따른 서버 구조의 블록도.
도 4는 본 발명의 바람직한 실시예에 따른 프로세싱 단계를 도시하는 플로우 차트.
<도면의 주요 부분에 대한 부호의 설명>
10 : 클라이언트 컴퓨터
20 : 인터페이스
30 : 서버 컴퓨터
31 : 객체 요청 브로커(ORB ; Object Request Broker)
32 : 객체 어댑터
33a, 33b, 33c : 실행 스레드
34 : 동시 제어 유닛
도 3의 바람직한 실시예에서, 클라이언트 프로세스로부터 서버 프로세스에 수신된 요청은 서버의 ORB(31)에 의하여 먼저 수신된다. 그런 다음 ORB(31)는 특정한 서버 객체에 대한 요청을 서버 객체의 객체 어댑터(32)로 전송한다. 이 서버 객체는 많은 수의 클라이언트 요청을 실행하기 위하여, 서버 객체의 상이한 인스턴스가 병렬로 실행할 수 있는 복수의 병렬 실행 스레드(33a, 33b, 및 33c)를 가진다. 이것은 상술된 도 2의 종래 기술과 유사하다.
도 3의 본 발명의 바람직한 실시예에 따라, 특별한 소프트웨어 유닛이 도 2의 종래 기술에 추가된다. 이 특별 유닛은, 객체 어댑터(32) 및 실행 스레드(33a 내지 33c)의 각각으로부터 입력을 수신하고 객체 어댑터(32)에 출력을 제공하는 동시 제어 유닛(34)이다. 동시 제어 유닛(34)은 객체 어댑터(32) 내의 클라이언트 요청이 실행 스레드로 디스패칭되는 것이 서버 객체 자원에의 억세스시 충돌을 일으키는 경우 상기 클라이언트 요청이 디스패칭되지 않도록 하는 기능을 수행한다.
이러한 바람직한 실시예의 동작을 설명하기 위하여 이하에 제시될 실례에서, 서버 객체는 은행 예금 계좌를 나타낼 것이다. 따라서, 객체 어댑터(32)에서 대기하고 있는 다양한 요청들은 특정 은행 예금 계좌에 엑세스하기 위한 요청이다. 첫번째 요청은 이 계좌로부터 자금을 인출하기 위한, 클라이언트 ATM으로부터의 요청이다. 이 요청은 소정의 자금을 인출하려는 계좌 소유자로부터의 요청이다. 두번째 요청은 은행 계좌와 관련된 당좌 대월액(the amount of overdraft)을 알아내기 위한 은행 직원의 요청이다. 세번째 요청은 계좌의 잔액을 조회하기 위한, 다른 클라이언트 ATM으로부터의 요청이다. 이 요청은 다른 클라이언트 ATM에서의, 소유자로부터 떨어져 마을의 다른 편에 있는 계좌 소유자의 부인으로부터의 요청이다.
동시 제어 유닛(34)은 객체 어댑터(32) 내의 버퍼의 최상위에 있는 요청 (이 요청은 실행 스레드로 디스패칭될 바로 다음 요청임)으로부터 입력을 취하여 이 요청의 시맨틱(semantics)을 결정한다. 즉, 동시 제어 유닛(34)은 이 요청이 은행 계좌 객체로의 판독 억세스를 요청하는지, 기록 억세스를 요청하는지 아니면 둘 다 아닌지를 결정한다.
동시 제어 유닛(34)은 실행스레드(33a, 33b, 및 33c)의 각각으로부터도 입력을 취하여 현재 스레드 상에서 실행되고 있는 요청들의 시맨틱을 결정한다. 즉, 동시 제어 유닛(34)은 스레드 상에서 실행되고 있는 각 요청이 은행 계좌 객체로의 판독 억세스를 포함하는지, 기록 억세스를 포함하는지 아니면 둘 다 포함하지 않는지를 결정한다.
그 다음, 동시 제어 유닛(34)은 객체 어댑터(32) 버퍼의 최상위에 있는 요청의 시맨틱을 각각의 실행 스레드(33a, 33b 및 33c) 상에서 현재 실행되고 있는 각각의 요청의 시맨틱과 비교한다. 동시 제어 유닛(34)은 최상위 요청이 버퍼로부터 사용 가능한 스레드로 디스패칭되는 것이 서버 객체 자원에의 억세스시 충돌을 일으키지 않을 경우에만 상기 요청의 디스패칭을 허용한다.
예를 들어, 버퍼의 최상위 요청이 은행 계좌의 잔고를 조회하려는 아내의 요청이라면, 동시 제어 유닛(34)은 이 요청의 시맨틱을 체크하고 이 요청이 판독 요청인지를 결정한다. 이 요청이 단지 은행 계좌의 잔고를 판독하려는 것이다 (이 계좌와 관련된 데이터베이스의 데이터값을 변경하는 것이 아님). 실행 스레드 중의 어느 하나(스레드 33a) 상에서 실행되고 있는 유일한 요청이 계좌에 대한 예정된 당좌 대월을 체크하는 은행 직원의 요청이라면, 동시 제어 유닛(34)은 이 요청의 시맨틱을 체크하고 이 요청이 판독 요청 (단순히 당좌 대월액을 취해 은행 직원에게 알려주는 것을 위해 저장값이 변경될 필요는 없음)인지를 다시 결정한다. 상기 두 요청이 모두 판독 요청이기 때문에, 동시 제어 유닛(34)은 객체 어댑터(32)의 최상위 요청을 다른 스레드 중의 하나 (예로서, 스레드 33b)로 디스패칭한다.
그러나, 계좌 소유자가 돈을 인출하려는 요청이 스레드(33a) 상에서 현재 실행되고 있고 객체 어댑터(32)의 최상위 요청은 이 계좌의 잔고를 조회하려는 계좌 소유자의 아내의 요청이라면, 다른 결과가 얻어진다. 스레드(33a) 상에서 실행되고 있는 요청의 시맨틱은 이 요청이 기록 요청 (이 요청은 은행 계좌의 잔고를 감소시킴)이므로, 객체 어댑터 버퍼의 최상위 요청 (단지 동일값을 판독하려는 요청)은 스레드로 디스패칭되지 않고, 스레드(33a) 상에서 실행되고 있는 요청이 끝날 때까지 대기해야 한다.
본 발명의 바람직한 실시예에 의하여 실행되는 단계가 도 4의 플로우 차트에 도시되어 있다.
단계(41)에서, 동시 제어 유닛(34)은 객체 어댑터(32)의 버퍼에 있는 최상위 요청의 시맨틱을 조사한다. 즉, 동시 제어 유닛(34)은 이 요청이 서버 객체 자원에의 판독 억세스를 요청하는지, 기록 억세스를 요청하는지를 결정한다.
단계(42)에서, 동시 제어 유닛(34)은 각각의 스레드(33a, 33b 및 33c) 상에서 현재 실행되고 있는 요청들의 시맨틱을 조사한다. 즉, 동시 제어 유닛(34)은 이 요청들의 각각이 서버 객체 자원에의 판독 억세스를 수행하는지, 기록 억세스를 수행하는지를 결정한다.
단계(43)에서, 동시 제어 유닛(34)은 단계(41 및 42)로부터 모은 정보를 사용하여, 최상위 요청이 사용 가능한 실행 스레드 중의 하나로 디스패칭될 수 있는지, 현재 실행 중인 요청들 중의 적어도 하나의 실행이 서버 객체 자원에의 억세스를 완료할 때까지 대기하도록 하여야 할지를 결정한다. 대기하고 있는 버퍼의 최상위 요청이 판독 요청이고 현재 실행 중인 요청들이 모두 판독 요청일 경우, 동일한 서버 객체 자원 상의 동시 판독 동작간에는 충돌이 없기 때문에 최상위 판독 요청은 동시 실행을 위해 사용 가능한 스레드로 디스패칭될 수 있다. 그러나, 기록 동작이 다른 기록 동작 또는 판독 동작과 함께 동시에 실행되고 있는 경우에는 충돌이 생긴다. 그래서, 후자의 조건인 상황일 경우 동시 제어 유닛(34)은 객체 어댑터(32) 내의 최상위 요청의 디스패칭을 지연한다.
서버 객체의 특성에 따라, 클라이언트 요청이 디스패칭되는 것을 허용할 것인가를 결정함에 있어 동시 제어 유닛(34)은 서버 객체의 현재 상태도 또한 고려한다. 예를 들면, 서버 객체가 대기열인데, 이 대기열의 각각의 요소가 판독/기록 목적을 위해 개별적으로 어드레싱 가능하다고 가정해 보자. 첫번째 트랜색션으로부터의 첫번째 요청은 대기열의 전면에 있는 요소를 판독하는 요청인데 이 요청은 이미 실행 스레드로 디스패칭되었다. 이 때, 두번째 요청이 현재 첫번째 요청에게 판독 억세스를 할 수 있는 허가가 주어진 동일한 서버 객체로의 기록 억세스를 요청한다할지라도 (상기 대기열이 비어 있지 않다고 가정함), 대기열의 맨 마지막 요소에 기입하려고 요청하는 두번째 요청 (즉, 디스패칭을 대기하고 있는 요청)은 동일 서버 객체로 동시에 디스패칭될 수 있다. 이는 두번째 요청이 비록 기록 요청이지만 판독 요청인 첫번째 요청과 충돌하지 않기 때문이다. 서버 객체가 복수의 요소로 구성되었기 때문에, 이 요소들의 각각은 서로 충돌함이 없이 상이한 요청들에 의해 개별적으로 억세스될 수 있다.
또한, 동시 제어 유닛(34)은 디스패칭을 위한 다음 후보로서 항상 최상위 요청만을 고려할 필요는 없다. 동시 제어 유닛(34)은 버퍼에 있는 요청들을 모두 조사할 수 있고 순서 상관없이 디스패칭을 위한 요청을 취할 수도 있다.
본 발명의 경우, 서버 객체 자원에 대한 록을 획득할 필요가 없기 때문에, 서버에 수신된 클라이언트 요청들에 대한 서버 객체의 동시 제어가 CPU 프로세싱 사이클을 횟수를 상당히 줄이면서도 매우 효과적인 방법으로 실행될 수 있다. 특히, 록이 획득될 경우, 버퍼에 있는 모든 요청들은 스레드로 디스패칭되고, 저장 영역이 각각의 디스패칭된 요청에 대해 할당되며 다른 관련된 프로세싱이 각각의 디스패칭된 요청에 대해 발생한다. 그러나, 본 발명의 경우, 한 요청이 스레드에서 현재 실행되고 있는 다른 요청과 관련된 서버 객체 자원에서 충돌을 일으키는 억세스를 포함하지 않는다고 결정될 때까지는 상기 요청은 버퍼로부터 디스패칭되지 않는다.

Claims (10)

  1. 이종의(heterogeneous) 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭(dispatching)하기 위한 장치에 있어서,
    상기 클라이언트 요청을 상기 장치로 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼(request-holding buffer)와,
    상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드(threads)와,
    상기 버퍼에 있는 요청의 시맨틱(semantics) 및 상기 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하고, 상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키기 위한 시맨틱 동시 제어 수단(semantic concurrency control means)
    을 포함하는 장치.
  2. 제1항에 있어서,
    상기 버퍼는 객체 어댑터 내에 포함된 장치.
  3. 제1항에 있어서,
    상기 통신 채널은 객체 요청 브로커(broker)를 포함하는 장치.
  4. 제1항에 있어서,
    상기 시맨틱 동시 제어 수단은, 상기 버퍼에 있는 요청을 디스패칭하는 것이 이미 스레드에 디스패칭되어 있는 요청과 충돌하는지 여부를 결정함에 있어 상기 서버 객체의 상태를 고려하는 장치.
  5. 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭하는 방법에 있어서,
    상기 클라이언트 요청을 상기 장치에 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼에 있는 요청의 시맨틱을 조사하는 단계와,
    상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하는 단계와,
    상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키는 단계
    를 포함하는 방법.
  6. 제5항에 있어서,
    상기 버퍼는 객체 어댑터 내에 포함된 방법.
  7. 제5항에 있어서,
    상기 통신 채널은 객체 요청 브로커를 포함하는 방법.
  8. 컴퓨터 판독 가능한 저장 매체에 저장되어, 컴퓨터에서 수행될 경우, 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭하는 방법을 수행하는 컴퓨터 프로그램 제품(product)에 있어서, 상기 방법이
    상기 클라이언트 요청을 상기 장치에 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼에 있는 요청의 시맨틱을 조사하는 단계와,
    상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하는 단계와,
    상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키는 단계
    를 포함하는 컴퓨터 프로그램 제품.
  9. 제8항에 있어서,
    상기 버퍼는 객체 어댑터 내에 포함된 컴퓨터 프로그램 제품.
  10. 제8항에 있어서,
    상기 통신 채널은 객체 요청 브로커를 포함하는 컴퓨터 프로그램 제품.
KR1019990000885A 1998-02-04 1999-01-14 클라이언트/서버 컴퓨터 시스템에서 서버 내의 클라이언트 요청들의 디스패칭시에 시맨틱 동시 제어를 수행하는 장치 및 방법 KR100322224B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9802298.1 1998-02-04
GB9802298A GB2334117A (en) 1998-02-04 1998-02-04 Performing semantic concurrency control in dispatching server computer client requests

Publications (2)

Publication Number Publication Date
KR19990072256A true KR19990072256A (ko) 1999-09-27
KR100322224B1 KR100322224B1 (ko) 2002-02-07

Family

ID=10826390

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990000885A KR100322224B1 (ko) 1998-02-04 1999-01-14 클라이언트/서버 컴퓨터 시스템에서 서버 내의 클라이언트 요청들의 디스패칭시에 시맨틱 동시 제어를 수행하는 장치 및 방법

Country Status (7)

Country Link
US (1) US6289343B1 (ko)
EP (1) EP0936544A3 (ko)
JP (1) JPH11272484A (ko)
KR (1) KR100322224B1 (ko)
CN (1) CN1225473A (ko)
GB (1) GB2334117A (ko)
TW (1) TW373146B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100899527B1 (ko) * 2002-06-25 2009-05-27 주식회사 케이티 웹 서비스의 멀티쓰레드 운용 시스템 및 방법

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7140018B1 (en) 2000-06-20 2006-11-21 International Business Machines Corporation Method of using a distinct flow of computational control as a reusable abstract data object
US6507903B1 (en) 2000-06-20 2003-01-14 International Business Machines Corporation High performance non-blocking parallel storage manager for parallel software executing on coordinates
US6763520B1 (en) * 2000-08-24 2004-07-13 Cognos Incorporated Fair assignment of processing resources to queued requests
CA2322604C (en) * 2000-10-06 2005-06-28 Ibm Canada Limited - Ibm Canada Limitee Deadlock management in database systems with demultiplexed connections
CA2460208A1 (en) * 2001-09-28 2003-04-10 British Telecommunications Public Limited Company An integrity manager for delaying client service requests
US7093230B2 (en) * 2002-07-24 2006-08-15 Sun Microsystems, Inc. Lock management thread pools for distributed data systems
US6986010B2 (en) * 2002-12-13 2006-01-10 Intel Corporation Cache lock mechanism with speculative allocation
US7404067B2 (en) * 2003-09-08 2008-07-22 Intel Corporation Method and apparatus for efficient utilization for prescient instruction prefetch
US8176117B2 (en) * 2003-12-19 2012-05-08 Stmicroelectronics, Inc. Accelerator for object-oriented communications and method
CN100444566C (zh) * 2004-02-20 2008-12-17 中兴通讯股份有限公司 一种多用户并发接入装置及其方法
KR100683172B1 (ko) * 2005-02-14 2007-02-15 삼성전기주식회사 그룹 상황 정보 관리를 위한 추상적 서비스의 의미를 이용한 응용 프로그램간의 충돌 제어 방법 및 그 시스템
CN1327662C (zh) * 2005-07-07 2007-07-18 浙江大学 分布式图案协同设计中的动态多光标感知方法
US7823158B2 (en) 2005-08-18 2010-10-26 International Business Machines Corporation Adaptive scheduling and management of work processing in a target context in resource contention
US7720891B2 (en) * 2006-02-14 2010-05-18 Oracle America, Inc. Synchronized objects for software transactional memory
US8799213B2 (en) * 2007-07-31 2014-08-05 Oracle International Corporation Combining capture and apply in a distributed information sharing system
US7801852B2 (en) * 2007-07-31 2010-09-21 Oracle International Corporation Checkpoint-free in log mining for distributed information sharing
US9230002B2 (en) 2009-01-30 2016-01-05 Oracle International Corporation High performant information sharing and replication for single-publisher and multiple-subscriber configuration
JP2010218506A (ja) * 2009-03-19 2010-09-30 Olympus Corp 分散処理システム、コントロール・ユニット、及びクライアント
US8046633B2 (en) * 2009-12-10 2011-10-25 International Business Machines Corporation Improving data availability during failure detection and recovery processing in a shared resource system
WO2012070727A1 (ko) * 2010-11-23 2012-05-31 경상대학교 산학협력단 Arinc-653 기반 항공기용 컴퓨터 시스템에서 멀티 스레드 프로그램의 경합 치유 방법 및 시스템
US20140249927A1 (en) 2013-03-04 2014-09-04 Michael De Angelo System and method for cyclic recognition-primed notifications and responsive situational awareness in an advertising display network
US11573823B2 (en) * 2019-11-18 2023-02-07 International Business Machines Corporation Parallel execution of applications

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2898012B2 (ja) 1989-04-28 1999-05-31 富士通株式会社 計算機資源の排他制御方式
JP2915074B2 (ja) 1990-05-16 1999-07-05 日本電信電話株式会社 マルチタスク処理システムにおけるイベントデキューイング方法
US5129152A (en) * 1990-12-20 1992-07-14 Hughes Aircraft Company Fast contact measuring machine
JPH05158777A (ja) 1991-12-05 1993-06-25 Hitachi Ltd データ管理システム
JPH0659917A (ja) 1992-08-05 1994-03-04 Hitachi Ltd 共用資源の排他制御方式
US5999942A (en) * 1993-02-11 1999-12-07 Appage Corporation Method and apparatus for enforcement of behavior of application processing systems without modifying application processing systems
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
US5758184A (en) * 1995-04-24 1998-05-26 Microsoft Corporation System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads
JPH09511858A (ja) 1995-08-18 1997-11-25 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン Osiエージェントにおける要求の並列実行
US5734909A (en) * 1995-09-01 1998-03-31 International Business Machines Corporation Method for controlling the locking and unlocking of system resources in a shared resource distributed computing environment
US6112253A (en) * 1995-10-12 2000-08-29 International Business Machines Corporation Object-oriented method maintenance mechanism that does not require cessation of the computer system or its programs
US5778378A (en) * 1996-04-30 1998-07-07 International Business Machines Corporation Object oriented information retrieval framework mechanism
FR2751106B1 (fr) * 1996-07-11 1999-01-08 Alsthom Cge Alcatel Methode de planification de transactions distribuees
US6041383A (en) * 1996-07-22 2000-03-21 Cabletron Systems, Inc. Establishing control of lock token for shared objects upon approval messages from all other processes
GB2320594A (en) * 1996-12-20 1998-06-24 Ibm Dispatching client method calls to parallel execution threads within a server
GB2321540A (en) 1997-01-25 1998-07-29 Ibm Automatic transactional locking using object request broker
GB2327134B (en) * 1997-07-08 2002-04-03 Ibm Apparatus,method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100899527B1 (ko) * 2002-06-25 2009-05-27 주식회사 케이티 웹 서비스의 멀티쓰레드 운용 시스템 및 방법

Also Published As

Publication number Publication date
CN1225473A (zh) 1999-08-11
GB2334117A (en) 1999-08-11
TW373146B (en) 1999-11-01
EP0936544A3 (en) 2006-07-26
GB9802298D0 (en) 1998-04-01
JPH11272484A (ja) 1999-10-08
KR100322224B1 (ko) 2002-02-07
EP0936544A2 (en) 1999-08-18
US6289343B1 (en) 2001-09-11

Similar Documents

Publication Publication Date Title
KR100322224B1 (ko) 클라이언트/서버 컴퓨터 시스템에서 서버 내의 클라이언트 요청들의 디스패칭시에 시맨틱 동시 제어를 수행하는 장치 및 방법
US6052731A (en) Apparatus, method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources
US6505250B2 (en) Apparatus and method for scheduling and dispatching queued client requests within a server in a client/server computer system
US6178440B1 (en) Distributed transaction processing system implementing concurrency control within the object request broker and locking all server objects involved in a transaction at its start
EP0849921B1 (en) Apparatus and method for dispatching client method calls within a server computer system
US6044404A (en) Apparatus, method and computer program for providing arbitrary locking modes for controlling concurrent access to server resources
US6038589A (en) Apparatus, method and computer program product for client/server computing with a transaction representation located on each transactionally involved server
KR100404786B1 (ko) 클라이언트/서버 컴퓨팅 시스템에서 이용되는 클라이언트/서버 프로세싱 장치 및 방법과 기록 매체
US6345316B1 (en) Apparatus, method and computer program product for client/server computing with the ability to select which servers are capable of creating transaction state data
KR100403659B1 (ko) 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체
JP3628577B2 (ja) サーバ・データ処理装置、操作方法および記憶装置
US6829632B1 (en) Apparatus, method and computer program product for client/server computing with timing of creation of coordinator transaction state object being based on triggering events

Legal Events

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

Payment date: 20070104

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee