KR20010024837A - 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅시스템에서의 사용을 위한 클라이언트 처리 장치, 서버처리 장치, 클라이언트 처리 방법, 서버 처리 방법 및컴퓨터 프로그램 제품 - Google Patents

트랜잭션을 수행하는 클라이언트/서버 컴퓨팅시스템에서의 사용을 위한 클라이언트 처리 장치, 서버처리 장치, 클라이언트 처리 방법, 서버 처리 방법 및컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20010024837A
KR20010024837A KR1020007007505A KR20007007505A KR20010024837A KR 20010024837 A KR20010024837 A KR 20010024837A KR 1020007007505 A KR1020007007505 A KR 1020007007505A KR 20007007505 A KR20007007505 A KR 20007007505A KR 20010024837 A KR20010024837 A KR 20010024837A
Authority
KR
South Korea
Prior art keywords
transaction
client
server
context
command
Prior art date
Application number
KR1020007007505A
Other languages
English (en)
Other versions
KR100403659B1 (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 KR20010024837A publication Critical patent/KR20010024837A/ko
Application granted granted Critical
Publication of KR100403659B1 publication Critical patent/KR100403659B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 클라이언트 처리 장치는 트랜잭션의 개시을 통지하기 위해 개시 커맨드를 발행하며, 원격 서버에 실질적인 트랜잭셔널 커맨드를 발행 - 상기 커맨드는 트랜잭션이 개시되었지만 트랜잭션을 표현하는 트랜잭션 객체가 아직은 생성되지 않았음을 도시하는 특정값을 갖는 트랜잭션 문맥을 포함함 - 하고, 일단 상기 원격 서버가 상기 트랜잭션 객체를 생성하면, 상기 원격 서버로부터 수정된 트랜잭션 문맥을 수신함이 개시되어진다.

Description

트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 클라이언트 처리 장치, 서버 처리 장치, 클라이언트 처리 방법, 서버 처리 방법 및 컴퓨터 프로그램 제품{AN APPARATUS, METHOD AND COMPUTER PROGRAM PRODUCT FOR CLIENT/SERVER COMPUTING WITH INTELLIGENT LOCATION OF TRANSACTION OBJECTS}
클라이언트/서버 컴퓨팅은 정보 기술 세계에서 과거 몇 년보다 더욱 더 중요하게 되었다. 이 분산 컴퓨팅 유형은 하나의 머신이 그것의 작업 중 일부를, 예를 들면 그 작업을 수행하기에 보다 적합할 수 있는 또 다른 머신에게 위임하도록 허락한다. 예를 들면, 클라이언트가 단순히 그것의 로컬 프로그램(local programs) 중 하나를 사용하기 위해 데이터베이스로부터 정보를 요청하는 데스트탑 퍼스널 컴퓨터(PC)일 지라도, 서버는 막대한 양의 데이터의 저장을 관리하는 데이터베이스 프로그램을 실행시키는 고-파워 컴퓨터일 수도 있다.
클라이언트/서버 컴퓨팅의 이점은 객체-지향형 프로그램밍(OOP)이라 불려지는 잘 알려진 컴퓨터 프로그래밍 기술을 사용하여 매우 강화되어 왔으며, 이것은 클라이언트 및 서버가 상이한(이종:heterogeneous) "플랫폼"상에 위치되도록 허락한다. 플랫폼은 머신이 그것의 작업을 행하기 위해 사용하는 특정 하드웨어/소프트웨어/운영 체제/통신 프로토콜의 조합이다. OOP는 클라이언트 애플리케이션 프로그램 및 서버 애플리케이션 프로그램은 클라이어트 애플리케이션의 작업 요청이 서버 애플리케이션에 의해 어떠한 방식으로 통신하며 받아들일 것인가에 대한 걱정 없이 이들 자신의 플랫폼상에서 연산하도록(operate) 허락한다. 마찬가지로, 서버 애플레이션은 OOP 시스템이 어떠한 방법으로 요청 클라이언트 애플리케이션에 뒤따르는 서버 애플리케이션의 처리 결과를 수신하며, 변역하고, 전송할 것인가에 대해 걱정할 필요가 없다.
OOP 기술이 어떠한 방식으로 이종 클라이언트/서버 시스템과 통합되어 왔는지에 대한 상세한 기술이 미국 특허 출원 제 5,440,744 및 유럽 특허 출원 제 EP 0 677,943 A2에서 설명되어 진다. 이들 최근의 두 개의 특허는 본 명세서에서 참조로써 인용되어 진다. 그러나, 기본 아키덱쳐의 실례가 본 발명 환경의 전후관계 이해를 위해 후술되어 질 것이다.
도 1 에 도시된 바와 같이, 클라이언트 컴퓨터(10)(예를 들면, 거기에 인스톨된 IBM OS/2 운영 체제를 구비한 퍼스널 컴퓨터)는 자신의 운영 체제("IBM" 및 "OS/2"는 인터내셔널 비즈니스 머신사의 등록상표임)상에서 실행하는 애플리케이션 프로그램(40)을 구비한다. 애플리케이션 프로그램(40)은 애플리케이션 프로그램(40)에 의한 후속적인 사용을 위해 작업이 서버 컴퓨터(20)상에서 수행되도록/또는 데이터가 서버(20)로부터 복귀(return)되도록 주기적으로 요청할 것이다. 서버 컴퓨터(20)는 예를 들면 IBM사의 MVS 운영체제상에서 실행하는 고-파워의 대형 컴퓨터(main-frame computer)일 수도 있다. 본 발명의 경우에, 서버에 의해 수행되어 질 통신 서비스에 대한 요청이 제 1 애플리케이션 프로그램(40)과의 사용자 상호작용에 의해 발생되는지(instigated) 또는, 애플리케이션 프로그램(40)이 프로그램 실행 동안 사용자 상호작용과 독립적으로 작용하여 자동적으로 요청이 수행되는지는 문제가되지 않는다.
클라이언트 컴퓨터(10)가 서버 컴퓨터(20)의 서비스에 대해서 요청하기를 원할 때, 제 1 애플리케이션 프로그램은 요청된 서비스를 제 1 로직 수단(50)에게 통지한다. 그것은 예를 들면 입력 및 출력 파라미터 리스트에 따른 원격 프로시쥬어(procedure)의 이름을 제 1 로직 수단에 전송함으로써 이것을 수행할 수 있다. 이후에 제 1 로직 수단(50)은 저장 디바이스(60)내에 저장된 사용가능한 통신 서비스의 정의에 관하여 제 2 컴퓨터(20)와의 필요한 통신을 설정하는 작업(task)을 처리한다. 모든 가능한 서비스가 객체 클래스(object classes:70)의 응집성 프레임 워크(cohesive framework)로써 정의되어지며, 이들 클래스는 단일 객체 클래스로부터 유도되어진다. 이러한 방식으로 서비스를 정의하는 것은 성능 및 재사용(performance and reusability) 관점에 있어서 다수의 장점을 발생시킨다.
서버(20)와의 필요한 통신을 설정하기 위해, 제 1 로직 수단(50)은 프레임워크에서 객체 클래스가 사용될 필요가 있는지를 결정하며, 이후에, 그 객체가 자신의 메쏘드(method) 중 하나를 호출하도록 메시지가 그 객체에 전송되어지는 서버에서 그 객체의 인스탄스를 생성한다. 이것은 접속 수단(80)을 통해 서버 컴퓨터(20)와의 접속을 설정하도록 하여, 제 2 로직 수단(90)으로의 요청을 실질적으로 전송한다.
이후에 제 2 로직 수단(90)은 서버 컴퓨터(20)상에서 실행하는 제 2 애플리케이션 프로그램(100)(이후에 서비스 애플리케이션이라 불려짐)에 그 요청을 돌려주며, 서비스 애플리케이션(100)은 요청에 의해 요청된 특정 작업(예를 들면, 데이터 회수 프로시쥬어를 실행시키는 것과 같은 작업)을 수행할 수 있다. 일단 이 작업이 완성되어지면, 서비스 애플리케이션(100)은 제 1 컴퓨터(10)에 뒤따르는 결과를 전송할 필요가 있다. 서버 애플리케이션(100)은 요청된 작업이 수행되는 동안 그리고 결과가 제 1 컴퓨터(10)에 뒤따라 전송되어 질 때 제 2 로직 수단(90)과 상호작용한다. 제 2 로직 수단(90)은 객체의 인스탄스를 설정하며, 이들 객체의 적당한 메쏘드를 호출하며, 서버 애플리케이션(100)에 의해 요청되었을 때, 객체 인스탄스가 저장부 디바이스(110)에 저장된 객체 클래스의 응집성 프레임워크로부터 생성되어진다.
상위의 기술을 사용함으로써, 클라이언트 애플리케이션 프로그램(40)이 통신 구조에 노출되지 않는다. 또한 서비스 애플리케이션(100)은 자신의 환경에 대한 표준 메커니즘을 통해 호출되어된다. 그것이 원격으로 호출되어지는 알려져 있지 않다.
객체 관리 그룹(OMG)은 도 1에 도시된 바와 같이 분산 객체와의 이종플랫폼상의 클라이언트/서버 컴퓨팅의 다양한 측면과 연관된 기구의 국제적 협회이다. OMG는 클라이언트 컴퓨터(예를 들면 10)가 서버 머신(예를 들면 20)과 (OOP 형태로) 통신함으로써 공표된 표준을 설정한다. 이들 표준의 일부로써, 객체 요청 브로커(소위 CORBA-범용 객체 요청 브로커 아키덱쳐라 불리움)가 정의되어지며, 클라이언트 및 서버 머신간에 객체 지향형 브리지(object-oriented bridge)를 제공한다. ORB는 제 1 로직 수단 및 제 2 로직 수단(50,90) 및 접속 수단(80)의 작업 중 적어도 일부를 수행하는 객체 지향 구현 세부사항으로부터 클라이언트 및 서버 애플리케이션을 분리시킨다.
CORBA 소프트웨어 구조의 부분에 따르면, OMG는 "트랜잭션"과 연관된 표준을 설정하며 이들 표준은 OTS 또는 트랜잭션 서비스로써 알려져 있다. 예를 들어, CORBA 객체 트랜잭션 서비스 사양 1.0, OMG 문서 94.8.4를 참조한다. 컴퓨터 구형 트랜잭션 처리 시스템은 다수의 산업 분야에서 크리티컬 비즈니스 작업용으로 사용되어진다. 트랜잭션은 동작(action)없이 완전히 완성되거나 또는 완전히 제거되어야 하는 단일 작업 단위를 정의한다. 예를 들면, 현금을 인출(issue)하는 동작에 있어서, 고객이 현금을 은행 자동 인출기(bank automated teller machine)로부터 인출하려는 경우, 즉 머신이 소유하고 있는 현금 잔액을 감소시키는 것과 고객의 예금 잔액을 감소시키는 것이 모두 발생하거나 또는 그들 중 어떠한 것도 발생해서는 안된다. 부속 동작(subordinate actions) 중 하나라도 결함이 있으면 기록 및 실제 사건간의 불일치가 유도될 수 있다.
분산 트랜잭션 처리는 2개 이상의 물리적 또는 논리적 위치에서 자원에 영향을 미치는 트랜잭션을 수반한다. 상위의 실례에서, 트랜잭션은 로컬 현금 인출기에 의해 관리되는 자원 및 은행의 주 컴퓨터에 의해 관리된 예금 잔액에 영향을 미친다. 이러한 트랜잭션은 서버에 의해 프로세스되는 일련의 클라이언트 요청내내 하나의 특정 서버 컴퓨터(예를 들면, 20)와 통신하는 하나의 특정 클라이언트 컴퓨터(예를 들면 10)를 수반한다. OMG의 OTS는 이들 분산 트랜잭션를 조정하는 역할을 한다.
통상적으로, 클라이언트 프로세스상에 실행되는 애플리케이션은 다수의 상이한 서버의 호출을 수반할 수 있는 트랜잭션을 개시하며, 이들 각각은 트랜잭션에 포함된 인스트럭션에 따라 그것의 로컬 데이터베이스를 변화시키는 서버 프로세스를 초기화할 것이다. 트랜잭션을 수행하거나(따라서 모든 서버는 자신의 로컬 데이터베이스에 대한 변화를 완료시킴) 또는 트랜잭션을 중단함(따라서 모든 서버는 자신의 로컬 데이터베이스에 대한 변화를 "롤백 (rollback)"하거나 또는 무시함)으로서 트랜잭션이 완료된다. 트랜잭션 동안 서버와 통신하기 위해 (예를 들면 그들에게 트랜잭션에서의 그들의 부분을 수행하거나 또는 중단하도록 지시함) 수반된 프로세스 중 하나는 트랜잭션에 대한 상태 데이터를 관리해야 한다. 이것은 통상적으로 일련의 트랜잭션 객체를 셋업시키기 위한 프로세스를 수반하며, 이들 중 하나는 다양한 서버에 대해 트랜잭션을 조정하는 코디네이터 객체(coordinator object)가 된다.
1997, 5월 소개된 제품인 인터내셔널 비즈니스 머신사에 의해 개발되었으며, 그것의 컴포넌트 브로커 씨리즈(IBM상의 등록상표임)에 포함되는 OTS의 통상적인 구현이 도 2에 도시되어진다. 트랜잭션을 개시하기를 원하는 클라이언트 프로세스(21)는 트랜잭션의 상태를 유지할 수 있는 트랜잭션 객체를 생성하고 유지시킬 수 프로세스를 위치시킬 필요가 있다. 최근의 경향은 "두께가 작은(thin)(따라서 최소의 기능성만을 구비함)" 클라이언트를 생성함에 따라, 클라이언트 프로세스(21)는 통상적으로 트랜잭션 객체를 로컬적으로 유지할 수 없으며 이 목적을 위해서는 서버 프로세스를 감시해야 한다.
종래 기술의 접근 방법에 따르면, OTS(또는 CORBA 생활 주기 서비스와 같은 다른 서비스)는 (코디네이터, 제어 및 터미네이터 객체를 포함하는) 트랜잭션 객체(221)를 생성하기 위해 서버 프로세스를 검색한다. 동일한 서버 프로세스(도 2의 서버 A 프로세스)가 종래 기술에 따라 항상 선택되어진다. 서버 A 프로세스(22)를 위치시킬 때, 클라이언트 프로세스(21)는 (원으로 둘러싸인 번호 2에 따른 화살표) 서버 A 프로세스에 메시지를 전송하여 서버 A 프로세스(22)가 트랜잭션 객체 (221)를 생성하도록 지시한다. 이후에, 서버 A 프로세스(22)는 트랜잭션 객체(221)를 생성하며 트랜잭션 문맥을 포함하는 (원으로 둘러싸인 번호 2에 따른 화살표)응답을 클라이언트(21)에 전송한다. 이후에 클라이언트(21)는 데빗 은행 예금 커맨드(debit bank account command)(원으로 둘러싸인 번호 3에 따른 화살표)를 서버 B 프로세스(23)(클라이언트 프로세스(21)가 현금을 인출하기를 원하는 은행 계좌 객체(231)를 포함하는 프로세스)에 전송한다. 이 후자 커맨드는 서버 A 프로세스(22)에 의해 클라이언트(21)에 공급된 트랜잭션 문맥을 구비한다. 이러한 방식으로, 프로세스(23)에서의 은행 계좌 객체(231)는 프로세스(22)에서의 트랜잭션 객체(221)로 그 자신을 등록할 수 있으며, 은행 계좌 객체(231)는 트랜잭션 결말에서 트랜잭션 객체(221)에 의해 수행되거나 또는 롤백되도록 (원으로 둘러싸인 번호 5에 따른 화살표) 커맨드될 수 있다.
이 구현은 적어도 두가지 측면에서 불필요한다. 첫 번째 측면은, 클라이언트가 트랜잭션 객체를 생성하며 유지하기 위해 원격 프로세스에 위치했을 때 항상 동일한 서버 프로세스가 사용되므로 이 서버 프로세스는 곧 과부하(overload)되며, 따라서 효율적으로 자신의 작업(예를 들면, 로컬 자원의 컨텐트를 갱신함)을 수행할 수 없다. 둘째, 교차 처리(cross process) 흐름은 트랜잭션에 수반된 다양한 프로세스 사이에 존재한다. 트랜잭션 객체가 임의 서버(random server)상에서 생성되고 유지될지라도, 다수의 교차 서버 호출의 문제점은 여전히 존재한다.
발명의 개요
첫 번째 측면에 따르면, 본 발명은 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 클라이언트 처리 장치를 제공하며, 상기 장치는 트랜잭션의 개시를 통지하도록 개시 통지를 발행(issue)하는 수단과, 원격 서버(remote server)에 실질적인 트랜잭셔널 커맨드를 전송하는 수단 - 상기 커맨드는 트랜잭션이 개시되지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정값을 구비한 트랜잭션 문맥을 포함함 - 및, 일단 상기 원격 서버가 상기 트랜잭션 객체를 생성하면, 상기 원격 서버로부터 수정된 트랜잭션 문맥을 수신하는 수단을 포함한다.
두 번째 측면에 따르면, 본 발명은 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 서버 처리 장치를 제공하며, 상기 장치는 클라이언트로부터 실질적인 트랜잭셔널 커맨드를 수신하는 수단 - 상기 커맨드는 트랜잭션은 클라이언트에 의해 개시되지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정값을 구비한 트랜잭션 문맥을 포함함 - 및, 트랜잭션 문맥에서 특정 값을 인식하며, 상기 특정 값에 응답하여 상기 트랜잭션 객체를 로컬적으로 생성하는 수단을 포함한다.
세 번째 측면에 따르면, 본 발명은 제 1 측면에서 상술된 클라이언트의 기능성(functionality)을 수행하는 방법을 제공한다.
네 번째 측면에 따르면, 본 발명은 제 2 측면에 상술된 서버의 기능성을 수행하는 방법을 제공한다.
다섯 번째 측면에 따르면, 본 발명이 컴퓨터상에서 실행될 때, 제 1 측면의 기능성을 수행하는 컴퓨터 프로그램 제품을 제공한다.
제 6 측면에 따르면, 본 발명이 컴퓨터상에서 실행될 때, 제 2 측면의 기능성을 수행하는 컴퓨터 프로그램 제품을 제공한다.
트랜잭션 객체는 클라이언트 프로세스가 트랜잭션을 수행하는 것과 실질적으로 연관(예를 들면, 트랜잭션과 연관된 자원을 가짐)될 수 있는 서버 프로세스에 실질적인 트랜잭션 커맨드를 전송할 때까지 생성되지 않으므로 교차 프로세스 흐름의 수가 크게 감소한다. 이것은 본 발명의 도 2(종래 기술) 및 3(본 발명의 바람직한 실시예)의 간단한 비교에 의해 더욱 명확해질 수 있다. 도 3은 단지 두 개의 교차 프로세스 호출을 가지는 반면 도 2는 다섯 개의 교차 프로세스 호출을 갖는다.
또 다른 장점은 도 2의 종래 기술에서 원으로 둘러싸인 번호 (1)에 따른 화살표에서와 같이 클라이언트 프로세스는 전용 방식(dedicated fashion)에서 트랜잭션의 생성을 커맨드하는 것과 연관된 오버헤드를 발생시키지 않는다. 본 발명의 경우, 클라이언트가 연관되는 한, 트랜잭션 생성은 클라이언트의 실질적인 트랜잭셔널 커맨드(예를 들면, 은행 계좌를 기입함)와 조합한다. 그러므로 클라이언트가 원격 서버 프로세스에 위치할 필요가 없으며 이 위치된 프로세스상에 생성 방법을 발행할 필요도 없다.
본 발명은 클라이언트/서버 (또는 "분산(distributed"으로 알려진) 컴퓨팅 분야에 관한 것으로, 하나의 컴퓨팅 디바이스("클라이언트")가 또 다른 컴퓨팅 디바이스("서버")에게 클라이언트의 작업 중 일부를 수행해줄 것을 요청한다. 클라이언트 및 서버가 또한 동일한 물리적 컴퓨팅 디바이스상에 둘 다 위치될 수 있다.
이하 도면을 참조하며 후술될 바람직한 실시예의 도면을 참조하면 본 발명이 보다 잘 이해될 수 있다.
도 1은 본 발명의 바람직한 실시예가 적용될 수 있는 문맥에서 객체 기술을 사용한 잘 알려진 이종 클라이언트/서버 아키텍쳐의 블록도,
도 2는 통상적인 OTS 구현을 도시하는 블록도,
도 3은 본 발명의 바람직한 실시예에 따른 OTS 구현을 도시하는 블록도,
도 4는 도 3의 OTS 구현에 따라 클라이언트가 개시 커맨드를 발행할 때 발생할 수 있는 단계를 도시하는 흐름도.
범용 객체 요청 브로커(CORBA) 객체 트랜잭션 서비스(OTS)는 기초를 이루는 소프트웨어층에 트랜잭션의 개시를 알리기 위해 클라이언트 애플리케이션 프로그램(소스 코드)에 의해 사용된 "개시(begin)" 방법을 포함한 "전류(current)"로써 알려진 인터페이스 객체를 공급한다. 본 발명의 바람직한 실시예에 따르면, 클라이언트 애플리케이션이 특정 클라이언트 구조상에서 형성되거나 또는 실행되며, "개시"방법을 포함할 때, 기초를 이루는 소프트웨어가 적절하게 진행되어 트랜잭션과 실질적으로 연관된 서버(예를 들면, 트랜잭션과 연관된 서버 자원을 갖는 서버)에서 트랜잭션 상태 객체를 설정함으로써 트랜잭션을 생성할 것이다.
본 발명의 바람직한 실시예에서, 클라이언트 프로세서(31)(도 3을 참조할 것)에서 실행하는 애플리케이션은 평소와 마찬가지로 전류 인터페이스 객체상에서 "개시" 방법을 호출함으로서 트랜잭션을 시작한다. 이후에 클라이언트 프로세스는 예를 들면, 객체의 최소 집합을 생성함으로써 이 커맨드를 발행한다는 사실을 기록한다. 상위의 동작은 도 4의 흐름도 단계 (41)에서 예시되어진다. 이 예시적인 실시예에서, 수행되어지는 트랜잭션은 전세계적으로, 일상 생활에 기초하여 수행되어지는 범용 트랜잭셔널 기능인 자동 현금 인출 예금 장치(ATM)를 클라이언트로서 사용하여 은행 계좌로부터 예금을 인출할 수 있다고 가정할 수 있다.
종래 기술에서는 이 단계에서 원격 프로세스(22)가 위치되며, 트랜잭션 객체(도 2의 221)가 그 원격 프로세스(22)에서 생성되어짐을 유의하여야 한다. 본 발명은 후술되어 질 바와 같이, 최근까지 이들 트랜잭션 객체의 생성을 지연한다.
이후에 클라이언트 프로세스(31)에서 실행하는 애플리케이션은 서버 B 프로세스(33)의 은행 계좌 객체(331)에, 제 1 인출 트랜잭션의 실질적인 부분으로써 데빗 커맨드를 발행한다. 이 실시예에서, 데빗 커맨드는 "개시" 커맨드를 발행한 후에, 클라이언트 프로세스가 트랜잭션에서 만드는 제 1 원격 흐름이다. 이 커맨드를 만들 때, 클라이언트 프로세스는 커맨드에서 몇 가지 트랜잭션 문맥을 포함해야하므로, 은행 계좌 객체(331)는 이 커맨드가 트랜잭션의 일부임을 알 수 있으며, 특정 트랜잭션을 식별한다.
종래 기술(도 2)에 있어서, 트랜잭션 객체(221)로부터 트랜잭션 문맥에 수신된 클라이언트 프로세스(21)는 원격 프로세스(22)에서 셋업된다. 그러나, 본 발명의 바람직한 실시예에 있어서, 트랜잭션 객체가 아직 생성되지는 않았으며 따라서, 클라이언트 프로세스에 트랜잭션 문맥을 제공할 수 없다. 따라서, 본 발명의 바람직한 실시예에 있어서, 클라이언트 프로세스(31)가 원격 프로세스(33)의 은행 계좌 객체(331)에 데빗 커맨드를 통지할 때, 특정 트랜잭션 문맥(예를 들면, 널(NULL) 트랜잭션 문맥)이 커맨드(도 3에 있어서 원으로 둘러싸인 번호 1에 따른 화살표)에 포함되어진다. 널 트랜잭션 문맥 수단에서, 모든 트랜잭션 문맥의 필드는 0으로 설정된다. 이 특정 트랜잭션 문맥은 트랜잭션이 개시되었지만 트랜잭션 객체는 아직 생성되지 않았음을 통지한다. 이 후자의 기능은 도 4의 흐름도의 단계(42)에서 예시되어진다.
서버 B 프로세스(33)가 이 특정 트랜잭션 문맥(예를 들면, 널 트랜잭션 문맥)을 인식할 때, 그것은 트랜잭션이 개시되지만 트랜잭션 객체가 아직 생성되지는 않았음을 통지한다. 이후에 서버 B 프로세스(33)는 트랜잭션 객체(332)를 로컬적으로 생성한다(단계 43). 트랜잭션 객체(332)가 생성되므로, 트랜잭션은 이제 유효의 트랜잭션 문맥을 포함하며, 이러한 유효의 트랜잭션 문맥이 트랜잭션에 할당되어진다. 이후에, 서버 B 프로세스는 클라이언트 프로세스(31)에 응답(원으로 둘러싸인 번호 2에 따른 화살표)을 전송하여 클라이언트 프로세스(31)에 유효의 트랜잭션 문맥을 통지한다. 이제, 클라이언트 프로세스는 완전히 생성된 트랜잭션의 지식(knowledge)을 갖는다.
이 단계에서, 이러한 통신이 전부 동일한 프로세스내에서 발생하며 따라서 어떠한 교차 프로세스 흐름도 이러한 통신을 요구하지 않는다는 것을 제외하면 은행 계좌 객체(331)는 평소와 같은 방법으로 트랜잭션 객체(332)와 통신한다. 본 실시예에 있어서, 발생된 통신은 트랜잭션 객체(332)에 기록된 은행 계좌 객체(331)를 수반하며, 트랜잭션이 종료되었을 때, 트랜잭션 객체(332)는 수행 또는 롤백 커맨드를 은행 계좌 객체(331)에 전송한다.
다른 실시예에 있어서, 서버 B 프로세스(33)는 예를 들면, 자원 등록 동안, 널 트랜잭션 문맥이 서버 B 프로세스(33)로 곧바로 접속되기보다는 좀 더 이후에 트랜잭션 객체를 생성할 수 있다.
널 트랜잭션 문맥(모든 필드가 0으로 설정됨)이 예시적인 실시예에서 사용될 지라도, 트랜잭션 문맥의 다른 특정 값이 또한 사용될 수 있다. 예를 들면, 트랜잭션 문맥의 전용 데이터 필드가 특정 값으로 설정될 수 있다.

Claims (8)

  1. 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 클라이언트 처리 장치에 있어서,
    상기 장치는
    트랜잭션의 개시를 통지하기 위한 개시 커맨드를 발행하는 수단과,
    원격 서버(remote server)에 실질적인 트랜잭셔널 커맨드를 전송하는 수단 - 상기 커맨드는 트랜잭션이 개시되었지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정값을 구비한 트랜잭션 문맥을 포함함 - 및,
    일단 상기 원격 서버가 상기 트랜잭션 객체를 생성하면, 상기 원격 서버로부터 수정된 트랜잭션 문맥을 수신하는 수단을 포함하는 클라이언트 처리 장치.
  2. 제 1 항에 있어서,
    상기 특정 값은 널(NULL) 값인 클라이언트 처리 장치.
  3. 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 서버 처리 장치에 있어서,
    상기 장치는
    클라이언트로부터 실질적인 트랜잭셔널 커맨드를 수신하는 수단 - 상기 커맨드는 트랜잭션은 클라이언트에 의해 개시되지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정 값을 구비한 트랜잭션 문맥을 포함함 - 및,
    트랜잭션 문맥에서 특정 값을 인식하며, 상기 특정 값에 응답하여 상기 트랜잭션 객체를 로컬적으로 생성하는 수단을 포함하는 서버 처리 장치.
  4. 제 3 항에 있어서,
    로컬 트랜잭셔널(a local transactionally)로 연관된 자원을 로컬적으로 생성된 트랜잭션 객체로 등록하는 수단을 더 포함하는 서버 처리 장치.
  5. 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 서버 처리 방법에 있어서,
    상기 방법은
    트랜잭션의 개시를 통지하기 위해 개시 커맨드를 발행하는 단계와,
    원격 서버(remote server)에 실질적인 트랜잭셔널 커맨드를 전송하는 단계 - 상기 커맨드는 트랜잭션이 개시되었지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정값을 구비한 트랜잭션 문맥을 포함함 - 및,
    일단 상기 원격 서버가 상기 트랜잭션 객체를 생성하면, 상기 원격 서버로부터 수정된 트랜잭션 문맥을 수신하는 단계를 포함하는 서버 처리 방법.
  6. 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 서버 처리 방법에 있어서,
    상기 방법은
    클라이언트로부터 실질적인 트랜잭셔널 커맨드를 수신하는 단계 - 상기 커맨드는 트랜잭션은 클라이언트에 의해 개시되지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정 값을 구비한 트랜잭션 문맥을 포함함 - 및,
    트랜잭션 문맥에서 특정 값을 인식하며, 상기 특정 값에 응답하여 상기 트랜잭션 객체를 로컬적으로 생성하는 단계를 포함하는 서버 처리 장치.
  7. 컴퓨터상에서 실행될 때, 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 클라이언트 처리 방법을 수행하는 컴퓨터 판독 가능 저장 매체상에 저장된 컴퓨터 프로그램 제품에 있어서,
    상기 방법은
    트랜잭션의 개시를 통지하기 위해 개시 커맨드를 발행하는 단계와,
    원격 서버(remote server)에 실질적인 트랜잭셔널 커맨드를 전송하는 단계 - 상기 커맨드는 트랜잭션이 개시되었지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정값을 구비한 트랜잭션 문맥을 포함함 - 및,
    일단 상기 원격 서버가 상기 트랜잭션 객체를 생성하면, 상기 원격 서버로부터 수정된 트랜잭션 문맥을 수신하는 단계를 포함하는 컴퓨터 프로그램 제품.
  8. 컴퓨터상에서 실행될 때, 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅 시스템에서의 사용을 위한 클라이언트 처리 방법을 수행하는 컴퓨터 판독 가능 저장 매체상에 저장된 컴퓨터 프로그램 제품에 있어서,
    상기 방법은
    클라이언트로부터 실질적인 트랜잭셔널 커맨드를 수신하는 단계 - 상기 커맨드는 트랜잭션은 클라이언트에 의해 개시되지만 트랜잭션을 표현하는 트랜잭션 객체가 아직 생성되지 않았음을 나타내는 특정 값을 구비한 트랜잭션 문맥을 포함함 - 및,
    트랜잭션 문맥에서 특정 값을 인식하며, 상기 특정 값에 응답하여 상기 트랜잭션 객체를 로컬적으로 생성하는 단계를 포함하는 컴퓨터 프로그램 제품.
KR10-2000-7007505A 1998-01-16 1998-12-18 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체 KR100403659B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9800830.3 1998-01-16
GB9800830A GB2333379A (en) 1998-01-16 1998-01-16 Client/server computing

Publications (2)

Publication Number Publication Date
KR20010024837A true KR20010024837A (ko) 2001-03-26
KR100403659B1 KR100403659B1 (ko) 2003-10-30

Family

ID=10825335

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7007505A KR100403659B1 (ko) 1998-01-16 1998-12-18 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체

Country Status (10)

Country Link
US (1) US6301606B1 (ko)
EP (1) EP1046107B1 (ko)
JP (1) JP3548030B2 (ko)
KR (1) KR100403659B1 (ko)
CN (1) CN1143207C (ko)
DE (1) DE69806065T2 (ko)
GB (1) GB2333379A (ko)
IL (1) IL136582A0 (ko)
PL (1) PL193583B1 (ko)
WO (1) WO1999036853A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813013B1 (ko) * 2007-05-29 2008-03-13 주식회사 비투엔컨설팅 오디엑스 데이타를 이용한 트랜잭션 처리 소프트웨어프레임 웍
US9705998B2 (en) 2007-11-14 2017-07-11 Qualcomm Incorporated Method and system using keyword vectors and associated metrics for learning and prediction of user correlation of targeted content messages in a mobile environment
KR20200085798A (ko) * 2018-02-27 2020-07-15 알리바바 그룹 홀딩 리미티드 블록체인에 기반한 트랜잭션을 실행하기 위한 방법, 장치, 및 전자 디바이스

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213049B2 (en) * 2001-07-17 2007-05-01 Bea Systems, Inc. System and method for transaction processing with transaction property feature
WO2003063009A1 (en) * 2002-01-18 2003-07-31 Bea Systems, Inc. System, method and interface for controlling server lifecycle
US7805333B2 (en) * 2003-02-14 2010-09-28 Ds-Iq, Inc. Techniques for using loyalty cards and redeeming accumulated value
US9110712B2 (en) * 2005-06-10 2015-08-18 International Business Machines Corporation Method for encapsulating logical units of work using business objects
CN100410884C (zh) * 2005-09-06 2008-08-13 大连海事大学 一种基于pid思想的小组协同处理事务的事务分配方法
US9485322B2 (en) 2007-07-07 2016-11-01 Qualcomm Incorporated Method and system for providing targeted information using profile attributes with variable confidence levels in a mobile environment
US9392074B2 (en) 2007-07-07 2016-07-12 Qualcomm Incorporated User profile generation architecture for mobile content-message targeting
US20090157512A1 (en) 2007-12-14 2009-06-18 Qualcomm Incorporated Near field communication transactions with user profile updates in a mobile environment
US9984096B2 (en) * 2015-03-31 2018-05-29 Oracle International Corporation System and method for reducing communications overhead in a distributed transactions environment by modifying implementation of the transaction start function

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5089954A (en) 1988-08-08 1992-02-18 Bell Communications Research, Inc. Method for handling conversational transactions in a distributed processing environment
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US5745748A (en) * 1994-12-09 1998-04-28 Sprint Communication Co. L.P. System and method for direct accessing of remote data
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
EP0737922B1 (en) * 1995-03-22 2003-05-14 Sun Microsystems, Inc. Method and apparatus for managing computer processes
US5872969A (en) * 1995-06-23 1999-02-16 International Business Machines Corporation System and method for efficiently synchronizing cache and persistent data in an object oriented transaction processing system
JP3574231B2 (ja) * 1995-08-21 2004-10-06 富士通株式会社 計算機ネットワークのシミュレータ装置
US5937415A (en) * 1995-12-13 1999-08-10 Sybase, Inc. Data base development system with methods facilitating copying of data from one data source to another
GB2308468A (en) * 1995-12-20 1997-06-25 Ibm Data processing systems and methods providing interoperability between data processing resources
JPH09198437A (ja) * 1996-01-18 1997-07-31 Hitachi Ltd 電子認証の管理方法
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
GB2311391A (en) * 1996-03-19 1997-09-24 Ibm Restart and recovery of OMG compliant transaction systems
WO1997040457A2 (en) 1996-04-19 1997-10-30 Intergraph Corporation System and method for data access
US5933816A (en) * 1996-10-31 1999-08-03 Citicorp Development Center, Inc. System and method for delivering financial services
GB2320594A (en) * 1996-12-20 1998-06-24 Ibm Dispatching client method calls to parallel execution threads within a server
US5925095A (en) * 1997-05-12 1999-07-20 International Business Machines Corporation Method and a computer program product for client/server computing with support for both recoverable and non-recoverable clients
US5958004A (en) * 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US5890161A (en) * 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100813013B1 (ko) * 2007-05-29 2008-03-13 주식회사 비투엔컨설팅 오디엑스 데이타를 이용한 트랜잭션 처리 소프트웨어프레임 웍
US9705998B2 (en) 2007-11-14 2017-07-11 Qualcomm Incorporated Method and system using keyword vectors and associated metrics for learning and prediction of user correlation of targeted content messages in a mobile environment
KR20200085798A (ko) * 2018-02-27 2020-07-15 알리바바 그룹 홀딩 리미티드 블록체인에 기반한 트랜잭션을 실행하기 위한 방법, 장치, 및 전자 디바이스

Also Published As

Publication number Publication date
US6301606B1 (en) 2001-10-09
CN1225471A (zh) 1999-08-11
IL136582A0 (en) 2001-06-14
PL193583B1 (pl) 2007-02-28
GB9800830D0 (en) 1998-03-11
PL341731A1 (en) 2001-05-07
DE69806065D1 (de) 2002-07-18
JP3548030B2 (ja) 2004-07-28
WO1999036853A1 (en) 1999-07-22
EP1046107B1 (en) 2002-06-12
DE69806065T2 (de) 2003-02-06
GB2333379A (en) 1999-07-21
CN1143207C (zh) 2004-03-24
EP1046107A1 (en) 2000-10-25
JPH11265362A (ja) 1999-09-28
KR100403659B1 (ko) 2003-10-30

Similar Documents

Publication Publication Date Title
US6052731A (en) Apparatus, method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources
US20030005172A1 (en) Apparatus, method and computer program product for client/server computing with improved correspondence between transaction identifiers when supporting subordinate resource manager(s)
US6038589A (en) Apparatus, method and computer program product for client/server computing with a transaction representation located on each transactionally involved server
GB2348985A (en) Centralized affinity maintenance in a workload managed client/server system
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
US6374283B1 (en) Apparatus, method &amp; computer program product for client/server computing with client selectable location of transaction objects
US6138169A (en) System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions
KR20010024837A (ko) 트랜잭션을 수행하는 클라이언트/서버 컴퓨팅시스템에서의 사용을 위한 클라이언트 처리 장치, 서버처리 장치, 클라이언트 처리 방법, 서버 처리 방법 및컴퓨터 프로그램 제품
US6237018B1 (en) Apparatus method and computer program product for client/server computing with improved transactional interface
GB2346983A (en) Minimising inter-machine data transfers in a distributed transaction processing system
GB2346990A (en) Client/server transaction processing system with automatic distributed co-ordinator set-up into a linear chain for use of linear commit optimisation
US6324589B1 (en) Apparatus, method and computer program product for client/server computing with reduced cross-process calls
GB2335516A (en) Failure recovery in distributed transaction avoids heuristic damage
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
GB2330431A (en) Client/server computing with failure detection
GB2339621A (en) Client/server computing system provides extension to basic transaction service
CZ20002585A3 (cs) Zařízení, způsob a produkt počítačového programu pro výpočetní operace klient/server s inteligentním hledáním transakčních objektů

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: 20100824

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee