KR19990072256A - 클라이언트/서버컴퓨터시스템에서서버내의클라이언트요청들의디스패칭시에시맨틱동시제어를수행하는장치및방법 - Google Patents
클라이언트/서버컴퓨터시스템에서서버내의클라이언트요청들의디스패칭시에시맨틱동시제어를수행하는장치및방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 24
- 239000000872 buffer Substances 0.000 claims abstract description 37
- 238000004891 communication Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 3
- 239000012536 storage buffer Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 14
- 230000009471 action Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, 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
본 발명은 한 컴퓨팅 장치("클라이언트")가 다른 컴퓨팅 장치("서버")에게 클라이언트 작업의 일부를 수행하도록 요청하는 클라이언트/서버 (또한 "분산"으로 알려짐) 컴퓨팅 분야에 관한 것이다.
클라이언트/서버 컴퓨팅은 정보 기술 분야에서 최근 몇 년 동안 점점 중요해지고 있다. 이러한 형태의 분산 컴퓨팅은 한 머쉰(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)
- 이종의(heterogeneous) 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭(dispatching)하기 위한 장치에 있어서,상기 클라이언트 요청을 상기 장치로 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼(request-holding buffer)와,상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드(threads)와,상기 버퍼에 있는 요청의 시맨틱(semantics) 및 상기 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하고, 상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키기 위한 시맨틱 동시 제어 수단(semantic concurrency control means)을 포함하는 장치.
- 제1항에 있어서,상기 버퍼는 객체 어댑터 내에 포함된 장치.
- 제1항에 있어서,상기 통신 채널은 객체 요청 브로커(broker)를 포함하는 장치.
- 제1항에 있어서,상기 시맨틱 동시 제어 수단은, 상기 버퍼에 있는 요청을 디스패칭하는 것이 이미 스레드에 디스패칭되어 있는 요청과 충돌하는지 여부를 결정함에 있어 상기 서버 객체의 상태를 고려하는 장치.
- 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭하는 방법에 있어서,상기 클라이언트 요청을 상기 장치에 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼에 있는 요청의 시맨틱을 조사하는 단계와,상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하는 단계와,상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키는 단계를 포함하는 방법.
- 제5항에 있어서,상기 버퍼는 객체 어댑터 내에 포함된 방법.
- 제5항에 있어서,상기 통신 채널은 객체 요청 브로커를 포함하는 방법.
- 컴퓨터 판독 가능한 저장 매체에 저장되어, 컴퓨터에서 수행될 경우, 이종의 객체 지향 클라이언트/서버 컴퓨팅 환경에서 서버 객체에 의한 실행에 대한 클라이언트 요청을 디스패칭하는 방법을 수행하는 컴퓨터 프로그램 제품(product)에 있어서, 상기 방법이상기 클라이언트 요청을 상기 장치에 전송하는 통신 채널에 접속된 입력, 및 출력을 구비한 요청-저장 버퍼에 있는 요청의 시맨틱을 조사하는 단계와,상기 버퍼의 상기 출력에 접속된 복수의 병렬 실행 스레드 중의 어느 하나에서 현재 실행되고 있는 각각의 요청의 시맨틱을 조사하는 단계와,상기 요청의 상기 조사된 시맨틱이 상기 요청을 상기 버퍼로부터 실행 스레드로 디스패칭할 때 상기 서버 객체의 자원(resources)으로의 억세스에 충돌이 일어난다는 것을 나타내는 경우, 상기 요청이 디스패칭되는 것을 지연시키는 단계를 포함하는 컴퓨터 프로그램 제품.
- 제8항에 있어서,상기 버퍼는 객체 어댑터 내에 포함된 컴퓨터 프로그램 제품.
- 제8항에 있어서,상기 통신 채널은 객체 요청 브로커를 포함하는 컴퓨터 프로그램 제품.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100899527B1 (ko) * | 2002-06-25 | 2009-05-27 | 주식회사 케이티 | 웹 서비스의 멀티쓰레드 운용 시스템 및 방법 |
Families Citing this family (22)
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)
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 |
-
1998
- 1998-02-04 GB GB9802298A patent/GB2334117A/en not_active Withdrawn
- 1998-06-06 TW TW087108994A patent/TW373146B/zh active
- 1998-09-17 US US09/154,804 patent/US6289343B1/en not_active Expired - Fee Related
- 1998-12-31 CN CN98125973A patent/CN1225473A/zh active Pending
-
1999
- 1999-01-14 KR KR1019990000885A patent/KR100322224B1/ko not_active IP Right Cessation
- 1999-01-18 JP JP11009173A patent/JPH11272484A/ja active Pending
- 1999-02-03 EP EP99300783A patent/EP0936544A3/en not_active Withdrawn
Cited By (1)
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 |