KR100403659B1 - 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체 - Google Patents

서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체 Download PDF

Info

Publication number
KR100403659B1
KR100403659B1 KR10-2000-7007505A KR20007007505A KR100403659B1 KR 100403659 B1 KR100403659 B1 KR 100403659B1 KR 20007007505 A KR20007007505 A KR 20007007505A KR 100403659 B1 KR100403659 B1 KR 100403659B1
Authority
KR
South Korea
Prior art keywords
transaction
client
server
context
command
Prior art date
Application number
KR10-2000-7007505A
Other languages
English (en)
Other versions
KR20010024837A (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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (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)일 수 있다.
상기 클라이언트/서버 컴퓨팅의 장점들은 객체-지향형 프로그래밍(Object-Oriented Programming:OOP)으로서 잘 알려진 컴퓨터 프로그래밍 기술을 사용하여 더욱 보완되어 왔으며, 상기 OOP는 클라이언트 및 서버가 상이한(이종: heterogeneous) "플랫폼(platforms)" 상에서 배치될 수 있도록 한다. 플랫폼은 머신이 그것의 작업을 행하기 위해 사용하는 특정 하드웨어/소프트웨어/운영 체제/통신 프로토콜의 조합이다. 이러한 OOP 기술을 통해, 클라이언트 애플리케이션 프로그램 및 서버 애플리케이션 프로그램은 클라이언트 애플리케이션의 작업 요청이 서버 애플리케이션에 의해 통신되어 접수되는 방식과는 상관없이 그들 자신의 플랫폼 상에서 동작할 수 있다. 마찬가지로, 서버 애플리이션은 상기 OOP 시스템이 서버 애플리케이션의 프로세스 결과를 수신 및 번역하여 상기 요청한 클라이언트 애플리케이션에 재전송하는 방식에 대해 상관할 필요가 없다.
OOP 기술이 어떠한 방식으로 이종 클라이언트/서버 시스템과 통합되어 왔는지에 대한 상세한 기술이 미국 특허 출원 제 5,440,744 및 유럽 특허 출원 제 EP 0 677,943 A2에서 개시된다. 상기 두 개의 특허는 본 명세서에서 참조로서 인용된다. 그러나, 기본 아키텍쳐의 실례가 본 발명의 환경을 문맥적으로 이해하기 위해 후술될 것이다.
도 1에 도시된 바와 같이, 클라이언트 컴퓨터(10)(가령, 자신의 내부에 설치된 IBM OS/2 운영 체제를 구비한 퍼스널 컴퓨터)는 자신의 운영 체제 상에서 동작하는 애플리케이션 프로그램(40)을 구비한다(여기서, "IBM" 및 "OS/2"는 인터내셔널 비즈니스 머신사의 상표임). 애플리케이션 프로그램(40)은 작업이 서버 컴퓨터(20) 상에서 수행되도록/또는 애플리케이션 프로그램(40)에 의한 후속적인 사용을 위해 데이터가 서버(20)로부터 복귀(return)되도록 주기적으로 요청할 것이다. 서버 컴퓨터(20)는 예를 들면 IBM사의 MVS 운영체제 상에서 실행되는 고-전력 대형 컴퓨터(main-frame computer)일 수도 있다. 본 발명에 있어서, 서버에 의해 수행되어질 통신 서비스에 대한 요청이 제 1 애플리케이션 프로그램(40)과 사용자의 상호작용에 의해 발생되는지 아니면, 애플리케이션 프로그램(40)이 사용자와 상호작용하지 않고 동작하여 그 프로그램 실행 시 상기 서비스에 대한 요청을 자동적으로 할지는 중요하지 않다.
클라이언트 컴퓨터(10)가 서버 컴퓨터(20)에게 서비스를 요청하고자 할 때, 제 1 애플리케이션 프로그램(40)은 요청된 서비스를 제 1 로직 수단(50)에게 통지한다. 이와 같은 통지 단계는 입력 및 출력 파라미터 리스트와 함께 원격 프로시쥬어(remote procedure)의 명칭을 상기 제 1 로직 수단(50)에 전송함으로써 수행될 수 있다. 이어서, 상기 제 1 로직 수단(50)은 저장 디바이스(60) 내에 저장된 이용 가능한 통신 서비스의 규정 사항을 참조하여 제 2 컴퓨터(20)와의 필요한 통신을 설정하는 작업(task)을 처리한다. 모든 가능한 서비스가 객체 클래스(object classes)(70)의 응집성 프레임 워크(cohesive framework)로서 규정되며, 이들 클래스는 단일 객체 클래스로부터 유도된다. 이러한 방식으로 서비스를 규정함으로써, 성능 및 재사용(performance and reusability)의 측면에서 많은 장점을 얻을 수 있다.
서버(20)와의 필요한 통신을 설정하기 위해, 제 1 로직 수단(50)은 프레임워크 내에서 어느 객체 클래스가 사용될 필요가 있는지를 결정하고, 이어서 상기 서버에서 상기 결정된 객체의 인스턴스(instance)를 생성하며, 메시지가 상기 상기 객체에 전송되어 상기 객체는 자신의 메소드(method) 중 하나를 호출한다. 이로써, 접속 수단(80)을 통해 서버 컴퓨터(20)와의 접속이 설정되며, 이어서 상기 요청이 제 2 로직 수단(90)에 전송된다.
이어서 제 2 로직 수단(90)은 서버 컴퓨터(20) 상에서 실행되는 제 2 애플리케이션 프로그램(100)(이후부터는 "서비스 또는 서버" 애플리케이션"이라 칭함)에게 상기 요청을 전송하며, 이로써 상기 서비스 애플리케이션(100)은 상기 요청에 의해 요구된, 가령 데이터 검색 프로시쥬어를 실행시키는 작업과 같은 특정 작업을 수행한다. 일단 상기 작업이 완료되면, 서비스 애플리케이션(100)은 작업 결과를 상기 제 1 컴퓨터(10)에 재전송할 필요가 있다. 상기 요청된 작업이 수행되는 동안 그리고 그 결과가 상기 제 1 컴퓨터(10)에 재전송될 예정일 때 서버 애플리케이션(100)은 상기 제 2 로직 수단(90)과 상호작용한다. 상기 제 2 로직 수단(90)은 객체의 인스턴스를 설정하며, 이들 객체에 대한 적합한 메소드를 호출하고, 상기 객체 인스턴스가 서버 애플리케이션(100)에 의해 요구될 경우에는, 객체 인스턴스가 저장 디바이스(110) 내에 저장된 상기 객체 클래스의 응집성 프레임워크로부터 생성된다.
상기 기술을 사용함으로써, 클라이언트 애플리케이션 프로그램(40)이 통신 아키텍쳐에 노출되지 않는다. 또한 서비스 애플리케이션(100)은 자신의 환경에 대한 표준 메커니즘에 의해서 호출된다. 즉, 상기 애플리케이션(100)이 멀리 떨어져서 호출되고 있음이 알려지지 않는다.
객체 관리 그룹(Object Management Group: OMG)은 도 1에 도시된 바와 같은 분산형 객체를 갖는 이종 플랫폼 상에 위치하는 클라이언트/서버 컴퓨팅의 다양한 측면과 관계된 여러 조직들의 국제적 컨소시움(an international consortium)이다. OMG는 클라이언트 컴퓨터(10)가 서버 머신(20)과 (OOP 형태로) 통신하게 하는 여러 공표된 표준 방식을 제안해왔다. 이들 표준 방식 중 하나로서, 객체 요청 브로커(Object Request Broker)(이른바 CORBA(Common Object Request Broker Architecture)로 지칭됨)가 규정되어 왔으며, 이 객체 요청 브로커 방식은 클라이언트와 서버 머신 간에 객체 지향형 브리지(object-oriented bridge)를 제공한다. 상기 ORB(객체 요청 브로커)는 제 1 로직 수단(50) 및 제 2 로직 수단(90) 및 접속 수단(80)의 작업 중 적어도 일부를 수행하는, 객체 지향 구현 세부 단계로부터 클라이언트 및 서버 애플리케이션을 분리시킨다.
CORBA 소프트웨어 구조의 일부로서, OMG는 "트랜잭션(transactions)"과 관련된 표준 방식을 제안해왔으며, 이들 표준 방식은 OTS 또는 객체 트랜잭션 서비스(Object Transaction Service)로 알려져 있다. 이를 위해 가령, CORBA 객체 트랜잭션 서비스 사양 1.0, OMG 문서 94.8.4를 참조하라. 컴퓨터 구현형 트랜잭션 프로세스 시스템은 다수의 산업 분야에서 중요한 비즈니스 작업에서 사용된다. 트랜잭션은 동작(action)없이 완전하게 완료되거나 또는 완전하게 제거되어야 하는 단일 작업 단위를 규정한다. 예를 들면, 고객이 현금을 인출하는 은행 자동 인출기(bank automated teller machine)의 경우에 있어서, 인출기가 현금을 방출하는 단계, 상기 인출기가 소유하고 있는 현금 잔액을 감소시키는 단계, 인출하는 고객의 은행 잔고를 감소시키는 단계가 모두 발생하거나 그렇지 않으면 모두 발생하지 말아야 한다. 상기 동작의 후속 동작들 중 하나라도 실패하면, 은행 기록 및 실제 사건 간의 불일치가 발생할 수 있다.
분산형 트랜잭션 프로세스는 1 개 이상의 물리적 또는 논리적 로케이션(location)에서의 자원(resources)에 대해 영향을 주는 트랜잭션과 관련된다. 상기 실례에서, 트랜잭션은 지역 현금 인출기에 의해 관리되는 자원 및 은행의 메인 컴퓨터에 의해 관리되는 은행 잔고에 영향을 준다. 이러한 트랜잭션에서는, 서버에 의해 처리되는 일련의 클라이언트 요청 사항에 대해서, 하나의 특정 서버 컴퓨터(20)와 통신하는 하나의 특정 클라이언트 컴퓨터(10)가 참여한다. OMG의 OTS는 이러한 분산된 트랜잭션들을 조정하는 역할을 한다.
통상적으로, 클라이언트 프로세스 상에서 실행되는 애플리케이션은 다수의 상이한 서버를 호출하는 단계를 통해 트랜잭션을 시작하며, 상기 각각의 상이한 서버들은 트랜잭션에 포함되는 인스트럭션에 따라 자신의 로컬 데이터베이스를 변경시키기 위해 서버 프로세스를 시작할 것이다. 트랜잭션을 이행하거나(이로써, 모든 서버는 자신의 로컬 데이터베이스를 변경시키는 것을 완료함), 트랜잭션을 중단하므로써(이로써, 모든 서버는 자신의 로컬 데이터베이스를 변경시키는 것을 "롤백 (rollback)"하거나 무시함) 트랜잭션이 완료된다. (가령, 트랜잭션의 일부분이 수행되거나 정지되도록 서버에게 명령하는 것과 같은) 트랜잭션 동안의 서버와의 통신을 위해서, 관련된 프로세스 중 하나는 상기 트랜잭션에 대한 상태 데이터를 계속적으로 보유해야 한다. 이러한 보유 단계는 통상적으로 일련의 트랜잭션 객체를 셋업하는 프로세스를 포함하며, 상기 트랜잭션 객체 중의 하나는 다양한 서버에 대해 트랜잭션들을 조정하는 코디네이터 객체(coordinator object)이다.
인터내셔널 비즈니스 머신사에 의해 개발되었으며 1997년 5월에 공표된 Component Broker Series(IBM의 상표임) 제품 내에 포함된 OTS의 통상적인 구현이 도 2에 도시된다. (가령, 은행 계좌로부터 현금을 인출하는 것과 같은) 트랜잭션을 개시하고자 하는 클라이언트 프로세스(21)는 상기 트랜잭션의 상태를 보유할 트랜잭션 객체를 생성하여 유지할 수 있는 프로세스의 위치를 파악할 필요가 있다. 최근에는 점점 "소형(thin)" 클라이언트를 생성함에 따라(이로써, 오직 최소의 기능만을 구비하게 됨), 클라이언트 프로세스(21)는 통상적으로 트랜잭션 객체를 로컬적으로(locally) 보유할 수 없으며 이 때문에 서버 프로세스를 탐색해야 한다.
종래 기술에 따라, OTS(또는, CORBA 라이프싸이클 서비스와 같은 다른 서비스)는 (코디네이터, 제어 및 터미네이터 객체를 포함하는) 트랜잭션 객체(221)를 어느 프로세스가 생성하는지에 대해 서버 프로세스를 탐색한다. 상기 종래 기술에 따르면, 항상 동일한 서버 프로세스(도 2의 서버 A 프로세스(22))가 선택된다. 상기 서버 A 프로세스(22)의 위치를 파악한 후에, 클라이언트 프로세스(21)는 서버 A 프로세스(22)로 메시지를 전송하여(도 2의 화살표 ①) 서버 A 프로세스(22)가 트랜잭션 객체 (221)를 생성하도록 지시한다. 이후에, 서버 A 프로세스(22)는 트랜잭션 객체(221)를 생성하며 트랜잭션 문맥(transaction context)을 포함하는 응답을 클라이언트(21)에 전송한다(도 2의 화살표 ②). 이후에, 클라이언트(21)는 은행 계좌 데빗 명령(debit bank account command)을 서버 B 프로세스(23)(클라이언트 프로세스(21)가 현금을 인출하기를 원하는 은행 계좌 객체(231)를 포함하는 프로세스)에 전송한다(도 2의 화살표 ③). 상기 은행 계좌 데빗 명령은 서버 A 프로세스(22)에 의해 클라이언트(21)로 공급된 트랜잭션 문맥을 자신과 함께 운반한다. 이러한 방식으로, 프로세스(23) 내의 은행 계좌 객체(231)는 프로세스(22) 내의 트랜잭션 객체(221)에 그 자신을 등록할 수 있으며(도 2의 화살표 ④), 이로써 은행 계좌 객체(231)는 트랜잭션의 종결시에 상기 트랜잭션 객체(221)에 의해 명령을 받아(도2의 화살표 ⑤) 수행되거나 롤백된다.
이러한 구현은 적어도 두가지 측면에서 비효율적이다. 먼저, 클라이언트가 트랜잭션 객체를 생성 및 유지하는 원격 프로세스의 위치를 파악하고 있을 때, 언제나 동일한 서버 프로세스가 사용되기 때문에, 이 서버 프로세스는 곧 과부하 상태가 되며(overload), 따라서 (가령, 로컬 자원의 내용을 갱신하는 것과 같은) 자신의 작업을 효율적으로 수행할 수 없게 된다. 다음으로, 수 많은 교차 프로세스 플로우(cross process flows)가 상기 트랜잭션과 관련된 다양한 프로세스 간에 존재한다. 트랜잭션 객체가 임의의 서버 상에서 생성되고 유지될지라도, 다수의 교차 프로세스 호출(cross process calls)과 관련된 문제가 여전히 존재하게 된다.
발명의 개요제 1 측면에 따라, 본 발명은 트랜잭션들을 수행하는 클라이언트/서버 컴퓨팅 시스템 내에서 사용되는 서버 프로세스 장치를 제공하며, 상기 서버 프로세스 장치는 클라이언트로부터 트랜잭션 명령(a transactional command)━상기 트랙잭션 명령은 트랜잭션이 상기 클라이언트에 의해 시작되었지만 상기 트랜잭션을 표현하는 트랜잭션 객체(332)는 아직 생성되지 않았음을 표시하는 특정 값을 구비한 트랜잭션 문맥(transactional context)을 포함함━을 수신하는 수단과, 상기 트랜잭션 문맥 내의 상기 특정 값을 인식하여 상기 인식된 특정 값에 응답하여 상기 트랜잭션 객체를 로컬적으로(locally) 생성하는 수단과, 상기 트랜잭션과 관계되는 로컬 자원(a local transactionally involved resource)을 상기 로컬적으로 생성된 트랜잭션 객체에 등록하는 수단을 포함한다.제 2 측면에 따라, 본 발명은 상기 제 1 측면에서 상술된 서버의 기능(functionality)을 수행하는 방법을 제공한다.제 3 측면에 따라, 본 발명은 컴퓨터 상에서 실행되어 상기 제 2 측면의 방법을 구현하는 프로그램을 기록한 컴퓨터 판독가능한 기록 매체를 제공한다.상기 클라이언트 프로세스가 트랜잭션을 수행하는데 있어서 실질적으로 참여할 서버 프로세스(가령, 상기 트랜잭션과 관계되는 자원을 가짐)에게 실질적인 트랜잭션 명령을 전송할 때까지 상기 트랜잭션 객체는 생성되지 않기 때문에, 교차 프로세스 플로우의 수가 크게 감소된다. 이러한 현상은 도 2(종래 기술)와 도 3(본 발명의 바람직한 실시예)을 간단하게 비교하면 분명해진다. 도 2는 5 개의 교차 프로세스 호출을 가지지만 도 3은 오직 2 개의 교차 프로세스 호출을 갖는다.본 발명의 다른 장점은 상기 클라이언트 프로세스는 도 2의 종래 기술에서 화살표 ①로 표시된 바와 같이 전용 방식(dedicated fashion)으로 상기 트랜잭션의 생성을 명령하는 것과 관련된 오버헤드를 초래하지 않는다는 것이다. 본 발명에 있어서, 클라이언트가 관계되는 한, 상기 트랜잭션 생성은 (가령, 은행 계좌를 데빗(debit)하라는 명령과 같은) 상기 클라이언트의 실질적인 트랜잭션 명령과 결합된다. 이로써, 상기 클라이언트가 원격 서버 프로세스의 위치를 파악할 필요가 없으며 위치가 파악된 프로세스에 대한 생성 메소드(a create method)를 발행할 필요가 없게 된다.
본 발명은 클라이언트/서버 (또는 "분산형 컴퓨팅"으로 알려진) 컴퓨팅 분야에 관한 것이며, 이러한 컴퓨팅에서는 하나의 컴퓨팅 디바이스("클라이언트")가 다른 컴퓨팅 디바이스("서버")에게 클라이언트의 작업 중 일부를 수행해줄 것을 요청한다. 클라이언트와 서버 모두가 하나의 동일한 물리적 컴퓨팅 디바이스 상에 위치할 수도 있다.
이하 도면을 참조하며 후술될 바람직한 실시예의 도면을 참조하면 본 발명이 보다 잘 이해될 수 있다.
도 1은 본 발명의 바람직한 실시예가 적용될 수 있는 상황에서, 객체 기술을 사용하는 잘 알려진 이종 클라이언트/서버 아키텍쳐의 블록도,
도 2는 통상적인 OTS 구현을 도시하는 블록도,
도 3은 본 발명의 바람직한 실시예에 따른 OTS 구현을 도시하는 블록도,
도 4는 도 3의 OTS 구현에 따라 클라이언트가 시작 명령을 발행할 때 발생할 수 있는 단계들을 도시하는 흐름도.
CORBA OTS(Common Object Request Broker Object Transaction Service)는 트랜잭션의 시작을 신호로 알리기 위해 클라이언트 애플리케이션 프로그램(소스 코드)에 의해 사용되는 "시작" 메소드를 갖는 "커런트(Current)"로 알려진 인터페이스 객체를 그 하부에 존재하는 소프트웨어 층에 공급한다. 본 발명의 바람직한 실시예에 따르면, 클라이언트 애플리케이션이 특정 클라이언트 아키텍쳐 상에서 구축되거나 또는 실행되고, "시작" 메소드를 포함할 때, 그 하부에 존재하는 소프트웨어가 적절하게 실행되어 트랜잭션에 실질적으로 참여하는 서버(가령, 상기 트랜잭션과 관계된 서버 자원을 갖는 서버) 내에 트랜잭션 상태 객체를 셋업함으로써 상기 트랜잭션을 생성할 것이다.
본 발명의 바람직한 실시예에서, 클라이언트 프로세스(31)(도 3 참조)에서 실행되는 애플리케이션은 통상적으로 커런트 인터페이스 객체 상의 "시작" 메소드를 호출함으로써 트랜잭션을 시작한다. 이어서, 상기 클라이언트 프로세스는 가령 최소의 객체 세트를 로컬적으로 생성함으로써 상기 시작 명령을 자신이 발행하였다는 사실을 기록한다. 이러한 동작은 도 4의 흐름도의 단계 (41)에서 도시된다. 이러한 서술식 실례에 있어서, 상기 수행되고 있는 트랜잭션은 세계적으로 매일 매일 수행되는 통상적인 거래 작업과 같은, 클라이언트로서 자동 현금 인출기(ATM)를 사용하여 은행 계좌로부터 현금을 인출하는 것이다.
종래 기술에서는, 이 부분에서, 원격 프로세스(22)의 위치가 파악되며 트랜잭션 객체(도 2의 (221))가 상기 원격 프로세스(22)에서 생성된다. 본 발명은 이하에서 설명되겠지만 시간이 지나도록 상기 트랜잭션 객체를 생성하지 않고 지연한다.
이어서, 상기 클라이언트 프로세스(31)에서 실행되는 애플리케이션은 서버 B 프로세스(33)의 은행 계좌 객체(331)에, 상기 인출 트랜잭션의 제 1의 실질적인 부분으로서 데빗 명령을 발행한다. 본 실시예에서, 데빗 명령은 상기 클라이언트 프로세스가 "시작" 명령를 발행한 후에 트랜잭션 내에서 생성한 제 1 원격 플로우이다. 상기 데빗 명령을 생성할 때, 상기 클라이언트 프로세스는 상기 명령 내부에 몇몇 트랜잭션 문맥을 포함해야 하며, 이로써 상기 은행 계좌 객체(331)는 상기 명령이 트랜잭션의 일부임을 알게 될 것이며 상기 특정 트랜잭션을 식별하게 된다.
종래 기술(도 2)에서는, 클라이언트 프로세스(21)가 상기 원격 프로세스(22)에서 셋업된 트랜잭션 객체(221)로부터 트랜잭션 문맥을 수신한다. 그러나, 본 발명의 바람직한 실시예에서는, 트랜잭션 객체가 아직 생성되지 않았으며 이로써 상기 클라이언트 프로세스에 트랜잭션 문맥을 제공할 수 없다. 이로써, 본 발명의 바람직한 실시예에서는, 클라이언트 프로세스(31)가 원격 프로세스(33) 내의 은행 계좌 객체(331)에 데빗 명령를 전송할 때, 특정 트랜잭션 문맥(가령, 널(NULL) 트랜잭션 문맥)은 상기 명령(도 3에 있어서 화살표 ①)에 포함된다. 널 트랜잭션 문맥은 트랜잭션 문맥의 모든 필드가 0으로 설정됨을 의미한다. 이 특정 트랜잭션 문맥은 트랜잭션이 시작되었지만 트랜잭션 객체가 아직 생성되지 않았음을 명시한다. 이러한 동작은 도 4의 흐름도의 단계(42)에서 도시된다.
서버 B 프로세스(33)가 이 특정 트랜잭션 문맥(가령, 상기 널 트랜잭션 문맥)을 인식할 때, 트랜잭션이 시작되었지만 트랜잭션 객체가 아직 생성되지 않았음을 알게된다. 이어서, 서버 B 프로세스(33)는 트랜잭션 객체(332)를 로컬적으로 생성한다(단계 43). 트랜잭션 객체(332)가 생성되었기 때문에, 트랜잭션은 이제 유효한 트랜잭션 문맥을 갖게되고 이 유효한 트랜잭션 문맥은 트랜잭션에 할당된다. 이어서, 상기 서버 B 프로세스는 클라이언트 프로세스(31)에 응답을 전송하여(도 3에 있어서 화살표 ②), 상기 클라이언트 프로세스(31)에게 상기 유효한 트랜잭션 문맥을 통지한다(도 4에서 단계 (44)). 이로써, 상기 클라이언트 프로세스는 생성된 트랜잭션에 대한 완전한 지식(knowledge)을 갖게 된다.
이 부분에서, 상기 은행 계좌 객체(331)와 상기 트랜잭션 객체(332)와 통신(단계(45))은, 전부 동일한 프로세스 내에서 발생하며 이로써 어떠한 교차 프로세스 플로우도 요구되지 않는다는 점을 제외하면, 통상적인 방식의 통신과 동일하다. 본 실시예에서, 상기 발생한 통신은 상기 트랜잭션 객체(332)에 상기 은행 계좌 객체를 등록하는 단계를 포함하며, 상기 트랜잭션이 완료될 때, 상기 트랜잭션 객체(332)는 이행 또는 롤백 명령을 상기 은행 계좌 객체(331)에 전송한다.
다른 실시예에 있어서, 서버 B 프로세스(33)는 널 트랜잭션 문맥이 서버 B 프로세스(33)로 입력된 후에 바로 트랙잭션 객체를 생성하기보다는 가령 상기 자원 등록 기간과 같은 나중의 시간에 상기 트랜잭션 객체를 생성한다.
(모든 필드가 0으로 설정된) 널 트랜잭션 문맥이 본 실시예에서 사용되었지만, 다른 특정 값을 갖는 트랜잭션 문맥이 사용될 수 있다. 가령, 특정 값으로 전용 데이터 필드(private data fields)를 갖는 트랜잭션 문맥이 설정될 수 있다.

Claims (8)

  1. 트랜잭션들을 수행하는 클라이언트/서버 컴퓨팅 시스템 내에서 사용되는 서버 프로세스 장치(33)에 있어서,
    클라이언트로부터 트랜잭션 명령(a transactional command)━상기 트랙잭션 명령은 트랜잭션이 상기 클라이언트에 의해 시작되었지만 상기 트랜잭션을 표현하는 트랜잭션 객체(332)는 아직 생성되지 않았음을 표시하는 특정 값을 구비한 트랜잭션 문맥(transactional context)을 포함함━을 수신하는 수단과,
    상기 트랜잭션 문맥 내의 상기 특정 값을 인식하여 상기 인식된 특정 값에 응답하여 상기 트랜잭션 객체를 로컬적으로(locally) 생성하는 수단과,
    상기 트랜잭션과 관계되는 로컬 자원(a local transactionally involved resource)(331)을 상기 로컬적으로 생성된 트랜잭션 객체(332)에 등록하는 수단을 포함하는
    서버 프로세스 장치.
  2. 트랜잭션들을 수행하는 클라이언트/서버 컴퓨팅 시스템 내에서 사용되는 서버 프로세스 방법에 있어서,
    클라이언트(31)로부터 트랜잭션 명령(a transactional command)━상기 트랙잭션 명령은 트랜잭션이 상기 클라이언트에 의해 시작되었지만 상기 트랜잭션을 표현하는 트랜잭션 객체(332)는 아직 생성되지 않았음을 표시하는 특정 값을 구비한 트랜잭션 문맥(transactional context)을 포함함━을 수신하는 단계와,
    상기 트랜잭션 문맥 내의 상기 특정 값을 인식하여 상기 인식된 특정 값에 응답하여 상기 트랜잭션 객체를 로컬적으로(locally) 생성하는 단계와,
    상기 트랜잭션과 관계되는 로컬 자원(a local transactionally involved resource)을 상기 로컬적으로 생성된 트랜잭션 객체에 등록하는 단계를 포함하는
    서버 프로세스 방법.
  3. 컴퓨터 상에서 실행될 때, 제 2 항의 서버 프로세스 방법을 구현하는 프로그램을 기록한 컴퓨터 판독가능한 기록 매체.
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  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 KR20010024837A (ko) 2001-03-26
KR100403659B1 true 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)

Families Citing this family (12)

* 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思想的小组协同处理事务的事务分配方法
KR100813013B1 (ko) * 2007-05-29 2008-03-13 주식회사 비투엔컨설팅 오디엑스 데이타를 이용한 트랜잭션 처리 소프트웨어프레임 웍
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
US20090124241A1 (en) 2007-11-14 2009-05-14 Qualcomm Incorporated Method and system for user profile match indication in a mobile environment
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
CN112767158A (zh) * 2018-02-27 2021-05-07 创新先进技术有限公司 基于区块链的交易执行方法及装置、电子设备

Citations (5)

* 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
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
JPH09198437A (ja) * 1996-01-18 1997-07-31 Hitachi Ltd 電子認証の管理方法
WO1997040457A2 (en) * 1996-04-19 1997-10-30 Intergraph Corporation System and method for data access
JPH09319600A (ja) * 1996-03-05 1997-12-12 Internatl Business Mach Corp <Ibm> リモート・プロシージャ・コールを実行する方法及びトランザクション・マネージャ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
GB2311391A (en) * 1996-03-19 1997-09-24 Ibm Restart and recovery of OMG compliant transaction systems
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

Patent Citations (5)

* 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
JPH08286962A (ja) * 1994-12-16 1996-11-01 Internatl Business Mach Corp <Ibm> 処理システム及びオブジェクト活動化をスケジュールする方法
JPH09198437A (ja) * 1996-01-18 1997-07-31 Hitachi Ltd 電子認証の管理方法
JPH09319600A (ja) * 1996-03-05 1997-12-12 Internatl Business Mach Corp <Ibm> リモート・プロシージャ・コールを実行する方法及びトランザクション・マネージャ
WO1997040457A2 (en) * 1996-04-19 1997-10-30 Intergraph Corporation System and method for data access

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
KR20010024837A (ko) 2001-03-26
JPH11265362A (ja) 1999-09-28

Similar Documents

Publication Publication Date Title
US5923833A (en) Restart and recovery of OMG-compliant transaction systems
US6466965B1 (en) Centralized affinity maintenance in a workload managed client/server data processing system
US6038589A (en) Apparatus, method and computer program product for client/server computing with a transaction representation located on each transactionally involved server
EP0707265A2 (en) A system and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators
KR100322224B1 (ko) 클라이언트/서버 컴퓨터 시스템에서 서버 내의 클라이언트 요청들의 디스패칭시에 시맨틱 동시 제어를 수행하는 장치 및 방법
GB2327134A (en) Lock requester arbitration in object oriented systems
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) 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체
US6374283B1 (en) Apparatus, method &amp; computer program product for client/server computing with client selectable location of transaction objects
US6237018B1 (en) Apparatus method and computer program product for client/server computing with improved transactional interface
US6542922B1 (en) Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization
US6499063B1 (en) Client/server computing for transaction processing with superior coordinator optimization
US6324589B1 (en) Apparatus, method and computer program product for client/server computing with reduced cross-process calls
CN114331445A (zh) 用于海量用户接入的api接口、方法、存储介质及电子设备
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

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