KR102072727B1 - 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 시스템 및 방법 - Google Patents

트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102072727B1
KR102072727B1 KR1020147034348A KR20147034348A KR102072727B1 KR 102072727 B1 KR102072727 B1 KR 102072727B1 KR 1020147034348 A KR1020147034348 A KR 1020147034348A KR 20147034348 A KR20147034348 A KR 20147034348A KR 102072727 B1 KR102072727 B1 KR 102072727B1
Authority
KR
South Korea
Prior art keywords
service
version
transactional
application
entry
Prior art date
Application number
KR1020147034348A
Other languages
English (en)
Other versions
KR20150023354A (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 오라클 인터내셔날 코포레이션
Priority claimed from PCT/US2013/045717 external-priority patent/WO2013188691A1/en
Publication of KR20150023354A publication Critical patent/KR20150023354A/ko
Application granted granted Critical
Publication of KR102072727B1 publication Critical patent/KR102072727B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/20Network management software packages
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

시스템 및 방법은 트랜잭셔널 미들웨어 머신 환경에서 어플리케이션 버저닝을 지원할 수 있다. 트랜잭셔널 서비스 제공자는 복수의 서비스 버전들과 연관되는 적어도 하나의 서비스를 디스패치할 수 있다. 시스템은 하나 이상의 어플리케이션들을 하나 이상의 어플리케이션 존들로 파티셔닝할 수 있으며, 상기 어플리케이션 존 각각은 적어도 하나의 서비스의 특정 요청 버전과 연관된다. 이후, 트랜잭셔널 서비스 제공자는 상기 어플리케이션 존 내의 서비스 요청자가 상기 어플리케이션 존과 연관되는 서비스 버전을 가진 적어도 하나의 서비스에 액세스하도록 한다.

Description

트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR SUPPORTING IMPLICIT VERSIONING IN A TRANSACTIONAL MIDDLEWARE MACHINE ENVIRONMENT}
본 특허문헌의 개시내용의 일부분은 저작권 보호를 받는 자료를 포함한다. 저작권자는 특허상표청의 특허 파일 또는 기록들에 나타난 대로 본 특허 문헌 또는 특허 개시내용을 어느 누군가가 팩시밀리 재생하는 것은 반대하지는 않지만, 그 밖의 모든 것은 저작권으로 보호된다.
본 발명은 일반적으로 컴퓨터 시스템들 및 소프트웨어에 관한 것이며, 특히 트랜잭셔널 미들웨어 머신 환경을 지원하는 것에 관한 것이다.
엔터프라이즈 IT 아키텍처를 사용하여 다양한 서비스들을 제공하는 비지니스 시스템들은 복잡하고 많은 스테이지들을 수반할 수 있다. 이들 비지니스 시스템들은 최종 사용자들에 대한 서비스 계약을 변경하는 것, 새로운 커스토머들에게 새로운 서비스 계약들을 제공하는 것, 논-스톱 모드로 구(old) 서비스들을 새로운 서비스들로 업그레이드하는 것 및 일부 기존 커스토머들에 대하여 구 서비스들을 유지하는 것과 같은 다양한 시나리오들을 핸들링할 필요가 있을 수 있다. 더욱이, IT 서비스 제공자들은 여러 서비스 버전들을 병렬로 제공하고 특정 변형들을 특정 커스토머들에 제공하기를 원할 수 있다. 부가적으로, 일부 서비스 요청자들은 유니폼 방식(uniform manner)으로 상이한 서비스 버전들에 액세스하거나 또는 심지어 런타임에 상이한 서비스 버전들 사이를 스위칭하기를 원할 수 있는 반면에, 다른 서비스 요청자들은 상이한 서비스 버전들을 명시적으로 다루는 것을 원하지 않을 수도 있다. 이는 본 발명의 실시예들이 다루도록 의도된 일반적인 분야이다.
본원에 설명된 것은 트랜잭셔널 미들웨어 머신 환경에서 어플리케이션 버저닝을 지원하기 위한 시스템들 및 방법이다. 트랜잭셔널 서비스 제공자는 복수의 서비스 버전들과 연관되는 적어도 하나의 서비스를 디스패치(dispatch)할 수 있다. 시스템은 하나 이상의 어플리케이션들을 하나 이상의 어플리케이션 존(zone)들로 파티셔닝(partitioning)할 수 있으며, 상기 어플리케이션 존 각각은 적어도 하나의 서비스의 특정 요청 버전과 연관된다. 이후, 트랜잭셔널 서비스 제공자는 상기 어플리케이션 존 내의 서비스 요청자가 상기 어플리케이션 존과 연관되는 서비스 버전을 가진 적어도 하나의 서비스에 액세스하도록 한다.
본 발명의 예시적인 실시예에서, 트랜잭셔널 미들웨어 머신 환경에서 어플리케이션 버저닝을 지원하기 위한 시스템은 트랜잭셔널 서비스 제공자를 포함한다. 트랜잭셔널 서비스 제공자는 복수의 서비스 버전들과 연관되는 적어도 하나의 서비스를 디스패치하기 위한 디스패칭 유닛, 하나 이상의 어플리케이션들을 하나 이상의 어플리케이션 존들로 파티셔닝하기 위한 파티셔너(partitioner) ― 상기 어플리케이션 존 각각은 적어도 하나의 서비스의 특정 요청 버전과 연관됨 ―,및 상기 어플리케이션 존 내의 서비스 요청자가 상기 어플리케이션 존과 연관되는 서비스 버전을 가진 적어도 하나의 서비스에 액세스하도록 하는 액세싱 유닛을 포함한다.
또 다른 실시예에서, 트랜잭셔널 서비스 제공자는 트랜잭셔널 서비스 어플리케이션 구성에 기반하여 서비스 요청에 대한 서비스 버전을 결정하는 결정 유닛을 더 포함할 수 있다.
또 다른 실시예에서, 트랜잭셔널 서비스 제공자는 원격 서비스로부터의 적어도 하나의 서비스에 대한 서비스 요청을 수신하도록 동작하는 수신 유닛을 더 포함할 수 있다.
도 1은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 어플리케이션 서비스 버저닝을 지원하는 예시를 도시한다.
도 2는 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하는 예시를 도시한다.
도 3은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 예시적인 흐름도를 예시한다.
도 4는 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 버전 컨텍스트를 지원하는 예시를 도시한다.
도 5는 본 발명의 실시예에 따라, 멀티-프로세스(MP) 환경에서 디플로이되는 Tuxedo 어플리케이션을 지원하는 예시를 도시한다.
도 6은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 버전 기반 라우팅(VBR)을 지원하는 예시를 도시한다.
도 7은 본 발명의 실시예에 따라, 분산형 트랜잭셔널 미들웨어 머신 환경에서 버전 기반 라우팅(VBR)을 지원하기 위한 예시적인 시퀀스 챠트를 도시한다.
도 8은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 버전 기반 라우팅(VBR)을 지원하기 위한 예시적인 흐름도를 예시한다.
도 9는 일부 실시예에 따른 트랜잭셔널 서비스 제공자의 기능 블록도를 예시한다.
도 10은 본 발명의 실시예에 따른 트랜잭셔널 서비스 제공자의 예시적인 블록도를 예시한다.
본 발명은 유사한 참조 부호들이 유사한 엘리먼트들을 표시하는 첨부 도면들의 도면들에서 제한이 아닌 예로서 예시된다. 이 개시내용에서 "하나" 또는 "일부" 실시예(들)에 대한 참조들이 반드시 동일한 실시예에 대한 것이 아니며 이러한 참조들이 실시예(들) 중 적어도 하나를 의미한다는 것에 유의해야 한다.
본원에 설명된 것은 미들웨어 머신 또는 유사한 플랫폼을 제공하기 위한 시스템 및 방법이다. 본 발명의 실시예에 따르면, 시스템은, 신속하게 준비될 수 있고 요구에 따라 스케일링될 수 있는 대용량 병렬 인-메모리 그리드(massively parallel in-memory grid)를 포함하는 complete Java EE 어플리케이션 서버 컴플렉스를 제공하기 위해, WebLogic Suite와 같은 어플리케이션 서버 또는 미들웨어 환경과 함께 고성능 하드웨어, 예를 들어 64-비트 프로세서 기술, 고성능 대용량 메모리 및 리던던트 인피니밴드(redundant InfiniBand) 및 이더넷 네트워킹의 조합을 포함한다. 실시예에 따르면, 시스템은 전체(full), 절반(half) 또는 1/4 랙(rack) 또는 다른 구성으로 디플로이될 수 있고, 어플리케이션 서버 그리드, 스토리지 영역 네트워크 및 인피니밴드(IB) 네트워크를 제공한다. 미들웨어 머신 소프트웨어는 예를 들어, WebLogic Server, JRockit 또는 Hotspot JVM, Oracle Linux 또는 Solaris, 및 Oracle VM과 같은 어플리케이션 서버, 미들웨어 및 다른 기능을 제공할 수 있다. 실시예에 따르면, 시스템은 IB 네트워크를 통해 서로간에 통신하는 복수의 컴퓨팅 노드들, IB 스위치 게이트웨이 및 스토리지 노드들 또는 유닛들을 포함할 수 있다. 랙 구성으로 구현될 때, 랙의 사용되지 않은 부분들은 비어있는 채로 있거나 또는 필러(filler)들에 의해 채워질 수 있다.
"Sun Oracle Exalogic" 또는 "Exalogic"으로 본원에서 지칭되는 본 발명의 실시예에 따르면, 시스템은 Oracle Middleware SW suite 또는 Weblogic과 같은 미들웨어 또는 어플리케이션 서버 소프트웨어를 호스팅하기 위한 디플로이가 용이한 솔루션(easy-to-deploy solution)이다. 본원에서 설명된 바와 같이, 실시예에 따르면, 시스템은 하나 이상의 서버들, 스토리지 유닛들, 스토리지 네트워킹을 위한 IB 패브릭 및 미들웨어 어플리케이션을 호스팅하는데 필요한 모든 다른 컴포넌트들을 포함하는 "박스 내의 그리드(grid in a box)"이다. 예를 들어, 리얼 어플리케이션 클러스터(Real Application Cluster)들 및 엑사로직 오픈 스토리지(Exalogic Open storage)를 이용하여 대용량 병렬 그리드 아키텍처를 레버리지(leverage) 함으로써 모든 타입들의 미들웨어 어플리케이션들에 상당한 성능이 제공될 수 있다. 시스템은 선형적 I/O 스케일러빌리티(scalability)를 포함하는 개선된 성능을 제공하고, 사용 및 관리하기에 간단하며, 그리고 작업상 중대한(mission-critical) 가용성 및 신뢰성을 제공한다.
본 발명의 실시예에 따르면, Tuxedo는 C, C++ 및 COBOL을 위한 트랜잭셔널 프로세싱 시스템 또는 트랜잭션 지향 미들웨어 또는 엔터프라이즈 어플리케이션 서버이다. 이는 고성능, 분산형 비즈니스 어플리케이션들의 구성, 실행 및 관리(administration)를 가능하게 하는 소프트웨어 모듈들의 세트이며, 다수의 다단(multi-tier) 어플리케이션 개발 툴들에 의해 트랜잭셔널 미들웨어로서 사용되었다. 부가적으로, Tuxedo 시스템과 같은 트랜잭셔널 미들웨어 시스템은 엑사로직 미들웨어 머신과 같은 다수의 프로세서들을 가진 고속 머신들 및 인피니밴드(IB) 네트워크와 같은 고성능 네트워크 연결의 장점을 취할 수 있다.
이하의 본 발명의 설명은 트랜잭션 프로세싱 시스템에 대한 예로서 Tuxedo 시스템을 사용한다. 다른 타입들의 트랜잭션 프로세싱 시스템이 제한없이 사용될 수 있다는 것이 이 기술분야의 숙련자에게 명백할 것이다.
어플리케이션 서비스 버저닝
본 발명의 실시예에 따르면, 트랜잭션 미들웨어 머신 환경은 클라이언트 및 서버 개발 노력을 감소시키기 위하여 서비스 버저닝을 지원할 수 있다. 트랜잭셔널 서비스 제공자, 예를 들어 Tuxedo는 서비스 이름과 서비스가 지원하는 버전 둘다에 따라 상이한 서비스들을 디스패치할 수 있다. 또한, 서비스 요청자, 예를 들어 트랜잭셔널 서비스를 요청하는 클라이언트 또는 서버/서비스는 단지 대응 버전을 지원하는 서비스 엔트리에만 액세스할 수 있다.
도 1은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 어플리케이션 서비스 버저닝을 지원하는 예시를 도시한다. 도 1에 도시된 바와같이, 트랜잭션 미들웨어 머신 환경(100)의 트랜잭셔널 서비스 제공자(110)는 트랜잭셔널 서비스들 A-B(111-112)와 같은 다양한 서비스들을 제공할 수 있다. 트랜잭셔널 서비스 A(111)는 다수의 서비스 엔트리들, 예를 들어 버전들 I-III(121-123)을 포함할 수 있는 반면에, 트랜잭셔널 서비스 B(112)는 또한 다수의 서비스 엔트리들, 예를 들어 버전들 I-II(131-132)을 포함할 수 있다.
더욱이, 트랜잭셔널 미들웨어 머신 환경(100)에서의 서비스 버저닝은 클라이언트 어플리케이션들에 대한 개발자들(예를 들어, 클라이언트들 A-B(101-102)), 운영 또는 관리 팀, 디플로이먼트 팀(103) 및 서비스들의 개발자들(104)과 같은 상이한 사람들을 수반할 수 있다. 이들 당사자들 각각은 그들 자신의 상이한 서비스 버전 요건들을 가질 수 있다.
도 1에 도시된 바와같이, 클라이언트 A(101)은 트랜잭셔널 서비스 A(111)의 버전 I(121)에 액세스할 수 있는 반면에, 클라이언트 B(102)는 트랜잭셔널 서비스 A(111)의 버전 II(122) 및 트랜잭셔널 서비스 B(112)의 버전 II(132)에 액세스할 수 있다. 따라서, 클라이언트 어플리케이션들의 개발자들A-B(101-102)은 동일한 서비스 이름을 가진 상이한 트랜잭셔널 어플리케이션 서비스 버전들로 클라이언트 요청들을 파티셔닝할 수 있다. 또한, 클라이언트 어플리케이션들의 개발자들 A-B(101-102)은 클라이언트 입력에 따라 동일한 트랜잭셔널 어플리케이션에 상이한 비지니스 로직을 적용하기 위해 현재의 요청 컨텍스트를 스위칭할 수 있다.
부가적으로, 런타임에서, 디플로이먼트 팀(103)은 버전들 I-II(121-122)에서 구 서비스 로직을 연속적으로 핸들링하면서 논-스톱 모드에서 트랜잭셔널 서비스 A(111)의 버전 III(123)에서 트랜잭셔널 어플리케이션 로직을 업그레이드할 수 있다. 또한, 서비스 개발자들(104)은 동일한 서비스 이름을 가진 버전 II(132)의 현재 활성 서비스를 방해하지 않고 런타임에서 트랜잭셔널 서비스 B(112)의 버전 I(131)에서 서비스 로직을 업데이트할 수 있다.
묵시적 버저닝
본 발명의 실시예에 따르면, 트랜잭셔널 미들웨어 머신 환경은 묵시적 버저닝을 지원할 수 있으며, 묵시적 버저닝은 구동되는 구성일 수 있으며 사용자가 어플리케이션 버저닝을 지원하기 위한 유연한 방식(flexible way)을 제공할 수 있다.
도 2는 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하는 예시를 도시한다. 도 2에 도시된 바와같이, 트랜잭셔널 미들웨어 머신 환경(200)의 트랜잭셔널 서버(201)는 상이한 버전들, 예를 들어 버전들 I-III(211-213)에서 트랜잭셔널 서비스 A(210)를 제공할 수 있다.
본 발명의 실시예에 따르면, 묵시적 버저닝을 지원하기 위하여 하나 이상의 구성 파일들(209)이 사용될 수 있다. 예를 들어, 구성 파일(209)은 관리 계층구조에서 상이한 레벨들 간의 계층구조 관계를 정의할 수 있다.
도 2에 도시된 바와같이, 사용자는 버전 범위들에 기반하여, 다양한 어플리케이션들을 상이한 가상 존들, 예를 들어 어플리케이션 존들 A-B(203-204)로 파티셔닝할 수 있다. 어플리케이션 존들 A-B(203-204) 각각은 특정 버전 번호를 가진 서비스 요청들을 핸들링하도록 구성될 수 있다. 예를 들어, 어플리케이션 존 A(203)은 요청 버전 A(223)(예를 들어, 버전 I)을 가진 서비스 요청들을 핸들링할 수 있고, 어플리케이션 존 B(204)는 요청 버전 B(224)(예를 들어, 버전 II)를 가진 서비스 요청들을 핸들링할 수 있다.
부가적으로, 사용자는 런타임에서 클라이언트 요청 버전 및 서비스 버전 범위를 변경할 수 있다. Tuxedo에서 관리 인터페이스 유닛, 예를 들어 MIB 인터페이스/API 인터페이스를 통해 수행될 수 있는 이러한 변경은 런타임에서 즉시 효과를 볼 수 있다.
더욱이, 사용자들은 구성 파일(209)을 통해 어플리케이션 버저닝 피쳐(feature)를 인에이블/디스에이블할 수 있다. 만일 어플리케이션 버저닝이 디스에이블되면, 기존 시스템에 영향을 미치지 않을 수 있다. 만일 어플리케이션 버저닝이 인에이블되면, 시스템은 사용자들이 클라이언트/서비스 버전을 세팅하고 상이한 레벨들에서, 예를 들어 어플리케이션에서 그리고/또는 그룹 레벨에서 서비스 지원 버전 범위를 구성하는 방식을 제공할 수 있다.
예를 들어, Tuxedo에서, 묵시적 어플리케이션 버저닝을 지원하기 위하여 UBB 구성 파일들 및 DMCONFIG 구성 파일들이 사용될 수 있다. 커스토머는 UBB 구성 파일의 OPTIONS 섹션에서 새로운 어플리케이션 옵션, 즉 APPVER을 특정함으로써 어플리케이션 버저닝 피쳐를 인에이블할 수 있다. 부가적으로, UBB 구성 파일들 및 DMCONFIG 구성 파일들은 구성된 Tuxedo 관리 엔티티에서 버전들 및 허용가능 버전 범위들을 특정하기 위한 REQUEST_VERSION, VERSION_POLICY 및 VERSlON_RANGE와 같은 속성들을 포함할 수 있다.
만일 어플리케이션 버저닝 피쳐가 인에이블되면, 사용자는 UBB 구성 파일 및 도메인 구성 파일들에서 어플리케이션 버전 관련 정보를 구성할 수 있다. 다른 한편으로, 만일 어플리케이션 버저닝 피쳐가 인에이블되지 않으면, 사용자는 UBB 구성 파일에서 또는 MIB 인터페이스를 통해 어플리케이션 버전 피쳐 관련 구성을 구성하지 않을 수 있다. 또한, 만일 커스토머가 UBB 구성 파일에서 어플리케이션 버저닝 피쳐를 디스에이블하면, 도메인 구성의 어플리케이션 버전 정보는 영향을 받지 않을 수 있다.
도 2에 도시된 바와같이, 클라이언트 어플리케이션들 A-B(206-207)는 트랜잭셔널 서버(201)상에 제공되는 트랜잭션 서비스 A(210)에 대한 요청을 수행할 수 있다. 사용자는 구성 파일(209)을 통해 클라이언트 요청 버전 및 서비스 범위를 제어할 수 있다. 예를 들어, Tuxedo에서, 사용자는 UBB 구성 파일에서 도메인 레벨 및 그룹 레벨로 어플리케이션 버전 관련 정보를 구성할 수 있다.
UBB 구성 파일의 REQUEST_VERSION은 요청을 송신하는 클라이언트의 버전을 결정하기 위하여 사용될 수 있다. REQUEST_VERSlON의 값은 그것이 0과 동일하거나 또는 0보다 크고 65535(USHRT_MAX)와 동일하거나 또는 이 미만일 때 유효한 숫자 일 수 있다. 부가적으로, REQUEST_VERSlON에 대한 디폴트 값은 "*"일 수 있으며, "*"는 요청 버전이 임의의 버전 범위에 의해 받아들여질 수 있고 임의의 버저닝된 서비스를 호출할 수 있다는 것을 표시한다.
UBB 구성 파일의 VERSION_RANGE는 서비스들에 대한 허용가능한 버저닝된 요청의 범위를 결정하는데 사용될 수 있다. 예를 들어, Tuxedo 사용자는 "low_version_number-high_version_number"의 포맷을 사용하여, UBB 구성을 단순화하기 위하여 서비스 선택을 위한 그룹 레벨로 Tuxedo 어플리케이션에 대한 버전 범위를 세팅할 수 있으며, 상기 포맷은 low_version_number <= VERSION_RANGE <= high_version_number임을 표시한다.
UBB 구성 파일의 VERSION_POLICY는 버전 제어 정책을 결정하기 위해 사용될 수 있다. 예를 들어, 값은 "PROPAGATE"일 수 있으며, "PROPAGATE"는 서비스가 새로운 요청이 시작될 때 자기 자신의 요청 버전을 사용하는 대신에 인입 요청 버전을 전파해야 한다는 것을 표시한다.
VERSlON_POUCY는 서비스 디스패칭 동안 REQUEST_VERSlON에 선행할 수 있는 바, 즉 REQUEST_VERSlON 및 VERSlON_POLlCY 속성들 둘다가 서비스에 대해 구성되는 경우에, 서비스는 새로운 요청이 시작될 때 인입 요청 버전을 전파할 수 있다.
이하의 리스팅 1은 Tuxedo 구성 파일들로 어플리케이션 버전들을 특정하기 위한 다양한 예들을 포함한다.
Figure 112014118814046-pct00001
리스팅 1
도 2에 도시된 바와같이, 원격 도메인 A(202)의 원격 서비스 A(220)는 로컬 도메인의 트랜잭션 서비스 A(210)의 버전에 대한 요청을 수행할 수 있다. 또한, 로컬 도메인의 트랜잭셔널 서비스 A(210)는 원격 도메인 A(202)의 원격 서비스 A(220)(즉, 버전 I(221) 또는 버전 II(222))을 요청할 수 있다.
본 발명의 실시예에 따르면, 사용자는 임포트된 서비스(imported service)에 대한 서비스 버전 범위를 구성하고 원격 도메인으로부터 유래하는 서비스 요청 버전을 구성하기 위하여 구성 파일(209)을 사용할 수 있다. 예를 들어, Tuxedo에서, 사용자는 도메인 구성 파일들에서 새로운 속성들 REQUEST_VERSlON, VERSlON_RANGE 및 VERSION_POLICY를 도입함으로써 원격 서비스를 구성할 수 있다.
DMCONFIG 구성 파일의 REQUEST_VERSION은 특정 원격 도메인, 예를 들어 원격 도메인 A(202)으로부터의 인입 서비스 요청 버전을 로컬 도메인의 구성된 요청 버전에 매핑시키는 방법을 정의하기 위하여 사용될 수 있다. 도메인 게이트웨이는 사용자가 도메인 구성 파일에 REQUEST_VERSION을 구성할 때 인입 요청 버전을 변경시킬 수 있으며, 그렇지 않은 경우에 도메인 게이트웨이는 인입 요청 버전을 전파할 수 있다.
DMCONFIG 구성 파일의 VERSION_RANGE은 임포트된 원격 서비스의 버전 범위를 표시하기 위하여 사용될 수 있다. 임포트된 원격 서비스의 이러한 버전 범위는 대응하는 엑스포트된 서비스(exported service)의 버전 범위와 동일할 수 있다. 그렇지 않은 경우에, 호출은 그것이 로컬 도메인에서 받아들여질 수 있을 때 조차 원격 도메인에서 받아들여지지 않을 수 있다.
부가적으로, DMCONFIG 구성 파일의 VERSION_POLICY는 버전 제어 정책을 결정하기 위해 사용될 수 있다. 예를 들어, 값은 "PROPAGATE"일 수 있으며, "PROPAGATE"는 도메인 게이트웨이가 특정 원격 도메인으로부터의 인입 클라이언트 요청의 요청 버전을 구성된 요청 버전에 전파/매핑할 것인지의 여부를 결정하기 위하여 사용될 수 있다. 버전 정책은 DMCONFIG 구성 파일의 요청 버전을 오버라이드(override)할 수 있으며, 즉 버전 정책은 VERSlON_POLlCY 및 REQUEST_VERSlON 둘다가 구성될 때 우선권(precedence)을 얻을 수 있다. 더욱이, 만일 피쳐가 인에이블되고 사용자가 도메인 구성 파일에서 요청 버전을 구성하지 않으면, 디폴트로, 도메인 게이트웨이는 도메인 게이트웨이를 통해 클라이언트 요청 버전을 전파할 수 있다.
이하의 리스팅 2는 예시적인 Tuxedo 도메인 구성 파일이다.
Figure 112014118814046-pct00002
리스팅 2
앞의 도메인 구성은 REMOTEDOM1로부터 유래한 서비스 요청에 대한 요청 버전이 도메인 게이트웨이에 의해 변경되지 않을 수 있음을 표시하는 반면에, REMOTEDOM2로부터 유래한 서비스 요청에 대한 요청 버전은 도메인 게이트웨이에 의해 4로 변경될 수 있다.
더욱이, 도메인 게이트웨이는 이러한 범위내의 요청 버전을 가진 클라이언트만이 로컬 도메인의 R_SVCl를 호출할 수 있음을 표시하는 1-3으로 세팅된 버전 범위를 가진 REMOTEDOM1로부터 원격 서비스, 즉 R_SVC1를 임포트할 수 있다. 도메인 게이트웨이는 또한 4-6으로 세팅된 버전 범위를 가진 REMOTEDOM2로부터 원격 서비스, 즉 R_SVC2를 임포트할 수 있으며, 따라서 그 범위의 요청 버전을 가진 클라이언트만이 로컬 도메인의 R_SVC2를 호출할 수 있다.
도 3은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 예시적인 흐름도를 예시한다. 도 3에 도시된 바와같이, 단계(301)에서, 트랜잭셔널 서비스 제공자는 복수의 서비스 버전들과 연관되는 적어도 하나의 서비스를 디스패치할 수 있다. 더욱이, 단계(302)에서, 시스템은 하나 이상의 어플리케이션들을 하나 이상의 어플리케이션 존들로 파티셔닝할 수 있으며, 각각의 상기 어플리케이션 존은 적어도 하나의 서비스의 특정 요청 버전과 연관된다. 이후, 단계(303)에서, 시스템은 상기 어플리케이션 존 내의 서비스 요청자가 상기 어플리케이션 존과 연관되는 서비스 버전을 가진 적어도 하나의 서비스에 액세스하도록 한다.
실시예에 따르면, 다양한 서비스 버전들은 클라이언트들에 병렬로 제공될 수 있다. 시스템은 상이한 서비스 버전들에 대하여 클라이언트 요청들을 빠르게 스케줄링할 수 있다. 따라서, (예를 들어, 컴퓨터 시스템에서 구현되거나 또는 컴퓨터 시스템으로서 구현되는) 시스템의 동작 효율이 개선될 수 있다.
버전 컨텍스트
본 발명의 실시예에 따르면, 버전 컨텍스트는 버전 개시자가 버저닝된 어플리케이션에 가입(join)하는 방법에 따라 요청 개시자에 의해 묵시적으로 생성될 수 있다.
도 4는 본 발명의 실시예에 따라 트랜잭셔널 미들웨어 머신 환경에서 버전 컨텍스트를 지원하는 예시를 도시한다. 도 4에 도시된 바와같이, 버저닝된 어플리케이션(400)은 다수의 그룹들 A-B(411-412)을 가진 도메인(401)과 같은 다수의 레벨들을 가진 관리 계층구조를 사용하여 관리될 수 있다.
더욱이, 도메인(401)은 도메인 요청 버전(410)으로 구성될 수 있고, 그룹 A(411)는 그룹 요청 버전 A(413)으로 구성될 수 있다. 따라서, 그룹 A(411)의 서비스들 A1-A3(421-423)은 그룹 요청 버전 A(413)와 일치하는 요청 버전을 가질 수 있다.
부가적으로, 그룹 B(412)가 특정된 요청 버전을 갖지 않기 때문에(또는 비활성화된 그룹 요청 버전 B(414)을 가지기 때문에), 서비스들 B1-B4(431-434)는 도메인 요청 버전(410)으로부터 인계받은 서비스 버전 번호를 가질 수 있다.
본 발명의 실시예에 따르면, 초기 서비스 요청자는 버저닝 어플리케이션에 조인(join)할 때 버전 컨텍스트에 묵시적으로 들어가게(put into)될 수 있다. 따라서, 묵시적 버저닝은 서비스 요청자가 버저닝된 어플리케이션에 조인하는 방법에 계층적으로(hierarchically) 의존할 수 있다. 또한, 사용자는 후속 서비스 라우팅 및 디스패칭을 포함하여, 버전 정보가 서비스 요청의 전체 라이프사이클(lifecycle)에서 전파될 수 있는지의 여부를 제어하기 위하여 버전 컨텍스트를 사용할 수 있다.
도 4에 도시된 바와같이, 클라이언트 A(402)는 그룹 A(411)에서, 버저닝된 어플리케이션(400)에 조인할 수 있으며, 자신이 그룹 A(411)에 조인할 때 버전 컨텍스트(432)와 묵시적으로 연관될 수 있다. 또한, 클라이언트 B(403)는 그룹 B(412)에서, 버저닝된 어플리케이션(400)에 조인할 수 있다. 따라서, 클라이언트 B(403)는 자신이 그룹 B(412)에 조인할 때 버전 컨텍스트(433)와 묵시적으로 연관될 수 있다.
더욱이, 서버(404)는 런타임에서 서버(404)가 새로운 서비스 요청을 개시할 때 버전 컨텍스트(434)로 묵시적으로 버저닝될 수 있으며, 서비스(405)는 런타임에서 서비스(405)가 새로운 요청을 개시할 때 버전 컨텍스트(435)로 묵시적으로 버저닝될 수 있다.
본 발명의 실시예에 따르면, 묵시적 버저닝은 상이한 예외들을 가질 수 있다. 예를 들어, Tuxedo는 예를 들어 tpforward를 호출할 때 포워드된 요청 메시지의 요청 버전 번호를 변경시키지 못할 수 있으며, tpforward는 특정 서비스에 입력 메시지를 포워드한다.
Tuxedo 묵시적 버저닝 예
Tuxedo에서, 상이한 서비스 요청자들(예를 들어, 다양한 서버들 및/또는 서비스들, 네이티브 클라이언트들, 워크스테이션 클라이언트들 및 JOLT 클라이언트들)은 요청을 시작할 때 UBB 구성에 따라 버전 컨텍스트 값을 묵시적으로 획득할 수 있다. 예를 들어, 버전 컨텍스트 값은 Tuxedo 클라이언트, 서버 또는 서비스가 개시자로서 요청을 시작할 때 UBB 구성 파일에 따라 단지 평가될 수 있는 런타임 값일 수 있다.
도 5는 본 발명의 실시예에 따라 Tuxedo 멀티-프로세스(MP) 환경을 지원하는 예시를 도시한다. 도 5에 도시된 바와같이, Tuxedo 어플리케이션은 다수의 머신들, 예를 들어 MACH1(501) 및 MACH2(502)를 가진 멀티-프로세스(MP) 환경(500)으로 디플로이될 수 있다. 더욱이, 구성 파일은 MP 환경(500)을 구성하기 위하여 사용될 수 있다.
이하의 리스팅 3은 예시적인 UBB 구성 파일을 도시한다.
Figure 112014118814046-pct00003
Figure 112014118814046-pct00004
리스팅 3
리스트 3에 도시된 바와같이, REQUEST_VERSION, VERSION_POLICY 및 VERSION_RANGE 속성들은 UBB 구성 파일의 RESOURCE, GROUPS 섹션들로 구성될 수 있다.
예를 들어, 그룹 GRP_Ll는 VERSlON_RANGE, REQUEST_VERSlON 및 VERSION_POLCIY 속성들로 구성된다. 따라서, 이러한 그룹에서 모든 서버들 및 서비스들의 VERSION_RANGE, REQUEST_VERSION 및 VERSION_POLICY는 그룹 구성에 내재된 것으로 결정될 수 있다. 결과로서, GRP_L1에서 서버들, 즉 SVR_L1(533) 및 SVR_L2(541)에 대한 VERSION_RANGE 속성들의 값은 "1-40"이다. 또한, SVR_L1(533) 및 SVR_L2(541)에 대한 REQUEST_VERSION 속성들의 값은 20인 반면에, SVR_L1(533) 및 SVR_L2(541) 둘다는 인입 요청 버전을 전파할 수 있다.
다른 한편으로, 그룹 GRP_L2에 대하여 버저닝 속성들이 구성되지 않으며, 버저닝 속성들은 (RESOURCE 섹션에서 특정된) 도메인 레벨에 내재된 것으로서 결정될 수 있다. 따라서, 이러한 그룹에서 모든 서버들 및/또는 서비스들의 VERSlON_RANGE은 "0-2000"이고, 이러한 그룹에서 모든 서버들 및/또는 서비스들의 REQUEST_VERSlON는 1이다. 도메인 레벨에서는 VERSlON_POLlCY이 없기 때문에, 이러한 그룹에서 모든 서버들 및/또는 서비스들은 인입 요청 버전을 전파하는 대신에 요청 버전 1을 사용할 수 있다.
워크스테이션 클라이언트로부터의 요청 버전은 관련된 WSL 서버가 속하는 그룹의 요청 버전에 따라 결정될 수 있다. 만일 그렇지 않으면, 워크스테이션 클라이언트로부터의 요청 버전은 도메인에 대한 요청 버전(즉, RESOURCES 및 WSL 그룹의 REQUEST_VERSION 값)에 따라 결정될 수 있다.
도 5에 도시된 바와같이, 워크스테이션 클라이언트들, 예를 들어 /WS-01(511) 및 /WS-01(521)은 서버 청취자, 즉 WSGRP_L1_1:WSL(517) 및 WSGRP_L1_2: WSL(518)에 의해 각각 관리되는 WSH_01(514) 및 WSH_02(515)과 같은 핸들러들을 통해 MACH1(501)상의 서비스에 액세스할 수 있다. 부가적으로, 워크스테이션 클라이언트, 즉 /WS-01(521)은 서버 청취자들, 즉 WSGRP_L1_2:WSL(525)에 의해 관리되는 핸들러, 즉 WSH_01(523)을 통해 MACH2(502)상의 서비스에 액세스할 수 있다.
따라서, 워크스테이션 클라이언트, 즉 /WS-01(511)은 WSGRP_L1_1의 요청 버전 구성에 의해 결정되는, WSGRP_Ll_l:WSL(517)과 동일한 REQUEST_VERSION 컨텍스트 값을 묵시적으로 소유할 수 있다. 여기서, WSGRP_Ll_l의 버전 번호가 "4"로서 구성되기 때문에, /WS-01(511)에 대한 묵시적 버전 컨텍스트 값은 또한 4일 수 있으며, 이는 /WS-01(511)로부터의 워크스테이션 클라이언트가 요청을 시작할 때 자신의 요청 버전 값이 4임을 의미한다.
더욱이, REQUEST_VERSlON 키워드 값이 WSGRP_Ll_2에 대해 특정되지 않기 때문에, /WS-02(512)는 RESOURCE 섹션에서 특정되는 로컬 도메인과 동일한 버전 번호를 가진다. 따라서, 버전 계층구조에 따라, /WS-02(512)의 버전 컨텍스트 번호는 1일 수 있으며, 이는 /WS-02(512)의 워크스테이션 클라이언트가 새로운 요청을 시작할 때, 요청의 요청 버전이 1임을 의미한다.
부가적으로, /JC-01(513) 또는 /JC-01(522)상의 상이한 Jolt 클라이언트들로부터의 서비스 요청은 JSH_01(516) 또는 JSH_01(524)과 같은 상이한 핸들러들에 의해 핸들링될 수 있다.
유사하게, Jolt 클라이언트, 예를 들어 /JC-01(513)로부터의 서비스 요청에 대한 요청 버전은 Jolt 서버 청취자(JSL), 즉 JGRP_L1:JSL(519)가 속하는 그룹, 즉 JGRP_L1의 요청 버전에 따라 결정될 수 있다. 또한, Jolt 클라이언트, 예를 들어 /JC-01(522)로부터의 서비스 요청에 대한 요청 버전은 JGRP_L2:JSL(526)가 속하는 그룹, 즉 JGRP_L2의 요청 버전에 따라 결정될 수 있다.
다른 한편으로, 만일 JSL 그룹이 요청 버전으로 특정되지 않으면, Jolt 클라이언트로부터의 서비스 요청에 대한 요청 버전은 RESOURCE 섹션에서 특정된, 로컬 도메인의 요청 버전에 기반한다.
더욱이, 네이티브 클라이언트가 새로운 요청을 시작할 때, 네이티브 클라이언트는 만일 네이티브 클라이언트가 특정 그룹을 가진 어플리케이션에 조인하면 그룹/도메인 계층구조 트리로부터 런타임에서 요청 버전 값을 획득할 수 있다. 만약 그렇지 않으면, 네이티브 클라이언트는 도메인 레벨로부터 요청 버전 값을 획득할 수 있다.
도 5에 도시된 바와같이, 예를 들어 MACH1(501)상의 서버 XASVR_L1(532)를 요청하는 네이티브 클라이언트는 특정 그룹, 예를 들어 XAGRP_Ll을 가진 어플리케이션에 조인할 수 있다. 따라서, 네이티브 클라이언트는 런타임에서 11인 요청 버전 값을 그룹 구성으로부터 획득할 수 있다. 다른 한편으로, 만일 네이티브 클라이언트가 특정 그룹이 없는 어플리케이션에 조인하면, 네이티브 클라이언트는 런타임에서 그룹/도메인 계층구조 트리로부터 요청 버전 값을 획득할 수 있다.
본 발명의 실시예에 따르면, 서버/서비스가 새로운 요청을 시작할 때, 런타임에서, 서버/서비스는 서버가 속하는 그룹 레벨로부터 요청 버전 값을 획득할 수 있거나 또는 요청 버전이 그룹 레벨에서 정의되지 않을 때 도메인 레벨로부터 요청 버전 값을 획득할 수 있다.
사용자 정의 서버의 경우에, 묵시적 버전은 도메인 레벨에서 RESOURCES의 REQUEST_VERSlON 값 및 서버 그룹의 REQUEST_VERSlON 값에 의해 결정될 수 있다. 이러한 버전은 서버 초기화 또는 서버 종료 동안 서버가 다른 서비스들을 호출할 때 요청 버전으로서 사용될 수 있다.
서비스의 경우에, 묵시적 버전은 도메인 레벨에서 RESOURCES의 REQUEST_VERSlON 값 및 서버 그룹의 REQUEST_VERSlON 값에 의해 결정될 수 있다. 이는 또한 VERSlON_POLlCY 구성에 의해 영향을 받을 수 있다. 이러한 버전은 서비스 수명 동안 서비스가 다른 서비스들을 호출할 때 요청 버전으로서 사용될 수 있다. 만일 서비스가 인입 요청 버전을 전파하면, 서비스는 다른 서비스들을 호출할 때 초기 요청 버전으로서 인입 요청 버전을 사용한다.
부가적으로, 시스템 서버들(예를 들어, DBBL(535), BBL(536 및 542), BRIDGE(510 및 520), DMGRP:GWT(534) 및 이벤트 브로커들), TMS 서버(예를 들어, TMS_XAGRP_L1(531)), TLISTEN 프로세스들(551 및 561) 및 다른 인터페이스 프로세스들(예를 들어, CLI_L1_1(552), CLI_L1_1(562), CLI_L1_2(553) 및 CLI_L1_2(563))는 버저닝되지 않을 수 있다. 이들 시스템 서버들은 항상 임의의 값인 디폴트 버전 값을 사용할 수 있다.
또한, Tuxedo 대화 통화(conversation call)의 경우, 요청 버전 및 버전 범위는 대화 연결 셋업 페이즈(phase) 동안(즉, tpconnect()에서) 셋업될 수 있다. 설정된 연결시 (즉, tpsend()/tprecv()에서) 대화 절차에서는 버전 체크(version check)가 존재하지 않을 수 있다. Tuxedo/Q에 대하여, 시스템은 FORWARD 큐에서의 버전 콘셉트(version concept)를 지원할 수 있으며, 클라이언트들은, FORWARD 큐로/FORWARD 큐로부터, tpdequeue()/tpenqueue() 메시지들을 송신할 수 있다. 따라서, 클라이언트가 FORWARD 큐내에 메시지를 입력할 때, FORWARD 큐는 클라이언트 요청 버전을 지원하는 서비스에 큐잉된(queued) 메시지를 포워드할 수 있다.
버전 기반 라우팅
본 발명의 실시예에 따르면, 버전 기반 라우팅(VBR)은 트랜잭셔널 미들웨어 머신 환경에서 지원될 수 있다.
도 6은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 버전 기반 라우팅(VBR)을 지원하는 예시를 도시한다. 도 6에 도시된 바와같이, 트랜잭셔널 미들웨어 머신 환경(600)의 트랜잭셔널 서비스 제공자(609)는 상이한 트랜잭셔널 서버들, 예를 들어 트랜잭셔널 서버들 A-B(601-602)상에 트랜잭셔널 서비스 A(610)를 제공할 수 있다.
예를 들어, 트랜잭셔널 서버 A(601)는 버전들 I-II(611-612)의 서비스 엔트리들(즉, 1-2의 버전 범위를 가짐)을 제공하고, 트랜잭셔널 서버 B(602)는 버전들 III-IV(613-614)의 서비스 엔트리들(즉, 3-4의 버전 범위를 가짐)을 제공할 수 있다.
더욱이, 트랜잭셔널 서비스 제공자(609)는 상이한 서비스 요청자들, 예를 들어 서비스 요청자들 A-B(605-606)로부터 서비스 요청들을 수신할 수 있다. 트랜잭셔널 서비스 제공자(609)는 이용가능한 다양한 서비스 엔트리들과 서비스 요청자들 A-B(605-606)에서 수신된 서비스 요청들의 요청된 서비스 이름을 매칭시킬 수 있다. 도 6에 도시된 바와같이, 트랜잭셔널 서비스 제공자(609)는 트랜잭셔널 서버들 A-B(601-602) 둘다가 트랜잭셔널 서비스 A(610)를 제공하기 때문에 트랜잭셔널 서버들 A-B(601-602)을 로케이팅(locating)할 수 있다.
이후, 트랜잭셔널 서비스 제공자(609)는 서비스 요청의 요청된 서비스 이름과 매칭되는 하나 이상의 서비스 엔트리들이 발견될 수 있는 이후에, 서비스 라우팅 결정을 수행하기 위해 버전 기반 라우팅(VBR)(620) 메커니즘을 사용할 수 있다. 예를 들어, VBR(620)은 트랜잭셔널 서버 A(601) 및 트랜잭셔널 서버 B(602) 둘다에 대한 버전 범위의 2개의 경계값들과, 서비스 요청자, 예를 들어 서비스 요청자 A(605) 또는 서비스 요청자 B(606)로부터 수신된 서비스 요청의 요청 버전 번호의 수치적 비교를 수행할 수 있다.
여기서, 서비스 요청자 A(605) 또는 서비스 요청자 B(606)로부터 수신되는 서비스 요청은 요청 버전 번호를 명시적으로 특정하지 않을 수 있다. 묵시적 버저닝 구성에 기반하여, 트랜잭셔널 서비스 제공자(609)는 각각의 서비스 요청과 연관된 요청된 서비스 버전을 결정할 수 있다. 도 6에 도시된 바와같이, 어플리케이션 존 A(603)의 서비스 요청자 A(605)는 요청 버전 A(615)(예를 들어, 버전 I)와 연관되고, 어플리케이션 존 B(604)의 서비스 요청자 B(606)는 요청 버전 B(616)(예를 들어, 버전 III)와 연관된다.
도 6에 도시된 바와같이, VBR(620)은 어플리케이션 존 A(603)의 서비스 요청자 A(605)로부터 수신된 서비스 요청을 트랜잭셔널 서버 A(601)에 라우팅할 수 있으며, 트랜잭셔널 서버 A(601)는 트랜잭셔널 서비스 A(610)의 버전 I(611)를 제공한다. 또한, VBR(620)은 어플리케이션 존 B(604)의 서비스 요청자 B(606)로부터 수신된 서비스 요청을 트랜잭셔널 서버 B(602)에 라우팅할 수 있으며, 트랜잭셔널 서버 B(602)는 트랜잭셔널 서비스 A(610)의 버전 III(613)를 제공한다. 부가적으로, VBR은 요청된 서비스 이름과 매칭되는 모든 서비스들이 버저닝된 서비스 요청에 적합하지 않을 때 호출자에게 "엔트리가 발견되지 않았다"는 에러를 리턴(return)시킬 수 있다.
부가적으로, VBR(620)은 다른 라우팅 메커니즘들과 함께 사용될 수 있다. 예를 들어, Tuxedo에서, VBR(620)은 DDR(데이터 종속 라우팅)(621), TAR(트랜잭션 친화성 라우팅)(622) 및 RAR(요청 친화성 라우팅)(623)과 같은 여러 라우팅 메커니즘과 함께 사용될 수 있다.
예를 들어, VBR(620)은 기존 라우팅 알고리즘들에 대한 기능들과 유사한 기능들을 사용하여 구현될 수 있다. Tuxedo는 다수의 라우팅 메커니즘들이 존재할 때 모든 기준들과 매칭되는 서비스들을 선정할 수 있다. 또한, 사용자는 다수의 라우팅 메커니즘들이 함께 사용될 때 이들 라우팅 메커니즘들이 어떻게 작용하는지에 대한 자신들의 이해에 기반하여 더 복잡한 라우팅 방식을 구현할 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 서비스 제공자, 예를 들어 Tuxedo는 사용자들에게 다양한 서비스 선택 및 라우팅 알고리즘들을 제공할 수 있으며, 따라서 사용자들은 자신들의 어플리케이션들을 계획하고, 개발하며, 스케일링하며, 디플로이하며 업그레이드할 수 있다. 어플리케이션 버저닝은 특별한 라우팅 컨텍스트들의 사용을 회피하고 다양한 파티션 요건들을 충족시키기 위하여 사용될 수 있다. 예를 들어, Tuxedo는, 오라클 퓨전 미들웨어 패밀리의 인프라스트럭처 제품들의 부분으로서, 코어 프레임워크에서 서비스 버저닝 콘셉트를 지원할 수 있다.
도 7는 본 발명의 실시예에 따라, 분산형 트랜잭셔널 미들웨어 머신 환경에서 버전 기반 라우팅(VBR)을 지원하기 위한 예시적인 시퀀스 챠트를 도시한다. 도 7에 도시된 바와같이, 트랜잭셔널 미들웨어 머신 환경(700)은 다양한 서비스들(예를 들어, SVC1, SVC2 및 SVC3)을 상이한 클라이언트들(예를 들어, 클라이언트(711))에 제공할 수 있는 여러 트랜잭셔널 서버들(예를 들어, SERVER1(712), SERVER2(713), 및 SERVER1 3(714))을 포함할 수 있다.
더욱이, Tuxedo UBB 구성 파일 및 Tuxedo DUBB 구성 파일과 같은 하나 이상의 구성 파일들은 트랜잭셔널 미들웨어 머신 환경(700)을 구성하기 위하여 사용될 수 있다.
이하의 리스팅 4는 예시적인 Tuxedo UBB 구성 파일이다.
Figure 112014118814046-pct00005
리스팅 4
이하의 리스팅 5는 예시적인 Tuxedo DUBB 구성 파일이다.
Figure 112014118814046-pct00006
리스팅 5
도 7에 도시된 바와같이, 단계(701)에서, SERVER 1(712)은 "1-2"의 버전 범위를 가진 서비스들, 즉 SVC1 및 SVC2를 시작하여 알리며(advertise), 단계(702)에서 SERVER2(713)는 "3-4"의 버전 범위를 가진 서비스들, 즉 SVC1, SVC2 및 SVC3을 시작하여 알린다.
단계(703)에서, SERVER3(714)는 예를 들어 "tpcall SVC2"을 호출하는 것을 통해 SVC2의 서비스를 시작하여 요청할 수 있다. 앞의 리스팅 4에 기반하여, SERVER3(714)는 그룹 "GRP3"에 속하며, 그룹 "GRP3"의 요청 버전은 "3"으로 평가된다. 따라서, 시스템은 서비스 요청과 연관된 요청 버전 "3"가 SERVER2(703)에 의해 알려진 SVC2의 버전 범위와 매칭되기 때문에 SERVER2(713)에 서비스 요청을 라우팅할 수 있다. 이후, 단계(704)에서, SERVER2(713)는 SERVER3(704)가 "1-3"의 버전 범위를 가진 서비스들, 즉 SVC2 및 SVC3를 알릴 수 있기 전에 SVC2을 실행할 수 있다.
더욱이, 단계(705)에서, 클라이언트(711)는 예를 들어 "tpcall SVC1"을 호출하는 것을 통해 요청 버전 "1"을 가진 SVC1에 대한 서비스 요청을 가진 트랜잭션을 초기화할 수 있다. 시스템은 SERVER1(712)에 이러한 서비스 요청을 라우팅할 수 있으며, 이 서비스 요청의 버전 범위는 클라이언트(711)로부터 수신되는 서비스 요청의 요청 버전 "1"과 매칭된다.
이후, 단계(706)에서, SERVER1(712)는 SVC1을 실행할 수 있으며, 또한 SVC1는 "tpcall SVC3"을 호출한다. 시스템은 SERVER3(714)에 이러한 호출을 라우팅할 수 있다. 단계(707)에서, SERVER3(714)는 SVC3를 실행할 수 있으며, 예를 들어 "tpcall R_SVC1"을 호출하는 것을 통해 요청 버전 3을 가진 서비스 R_SVC1에 대한 호출을 REMOTEDOM1(715)에 신청할 수 있다. 따라서, 시스템은 리스팅 5에 표시된 바와같이 REMOTEDOM1(715)에 이러한 서비스 요청을 라우팅할 수 있다. 단계(708)에서, REMOTEDOM1(715)는 원격 서비스, 즉 R_SVC1를 실행할 수 있다.
부가적으로, 로컬 도메인은 원격 도메인들(예를 들어, REMOTEDOM1(715) 및 REMOTEDOM2(716))로부터의 서비스 요청들을 수신할 수 있다. 도 7에 도시된 바와같이, REMOTEDOM1(715) 및 REMOTEDOM2(716) 둘다는 각각 단계들(709 및 710)에서 "tpcall SVC1"의 서비스 요청 동작을 개시한다.
리스팅 5의 구성에 기반하여, "2"의 원래의 요청 버전을 가진, REMOTEDOM1(715)로부터 수신된 서비스 요청이 전파될 수 있다. 따라서, 시스템은 SERVER1(712)에 이러한 서비스 요청을 라우팅할 수 있다. 이후, 시스템은 REMOTEDOM1(715)에서 서비스 요청자에게, 요청된 서비스를 제공하기 위한 단계들(706-708)을 수행할 수 있다.
또한, "6"의 원래의 요청 버전을 가진, REMOTEDOM1(716)로부터 수신되는 서비스 요청은 "4"의 요청 버전을 가지도록 변경될 수 있다. 따라서, 시스템은 SERVER2(703)에 이러한 서비스 요청을 라우팅할 수 있으며 단계(724)에서, 요청된 서비스, 즉 SVC1을 실행할 수 있다.
도 8은 본 발명의 실시예에 따라, 트랜잭셔널 미들웨어 머신 환경에서 버전 기반 라우팅(VBR)을 지원하기 위한 예시적인 흐름도를 예시한다. 도 8에 도시된 바와같이, 단계(801)에서, 트랜잭셔널 서비스 제공자는 상이한 서비스 버전들을 가진 복수의 서비스 엔트리들을 사용하여 적어도 하나의 서비스를 디스패치할 수 있다. 더욱이, 단계(302)에서, 트랜잭셔널 서비스 제공자는 서비스 엔트리와 연관된 서비스 버전이 서비스 요청자로부터 수신된 서비스 요청과 연관된 요청된 서비스 버전과 매칭되는지의 여부를 결정할 수 있다. 이후, 단계(803)에서, 트랜잭셔널 서비스 제공자는 서비스 요청자가 서비스 요청과 연관된 요청된 서비스 버전과 매칭되는 서비스 엔트리에 액세스하도록 한다.
일부 실시예들에 따르면, 도 9는 앞서 설명된 바와같이 본 발명의 원리들에 따라 구성되는 트랜잭셔널 서비스 제공자(900)의 기능 블록도를 예시한다. 디바이스의 기능 블록들은 본 발명의 원리들을 실행하도록 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다. 도 9에서 설명된 기능 블록들이 앞서 설명된 바와 같은 본 발명의 원리들을 구현하도록 결합되거나 또는 서브-블록들로 분리될 수 있다는 것이 이 기술분야의 숙련자에 의해 이해된다. 따라서, 본원의 설명은 본원에서 설명된 기능 블록들의 임의의 가능한 조합 또는 분리 또는 추가 정의를 지원할 수 있다.
도 9에 도시된 바와같이, 본 발명의 예시적인 실시예는 트랜잭셔널 서비스 제공자(900)를 제공한다. 트랜잭셔널 서비스 제공자(900)는 앞서 설명된 바와같이 트랜잭셔널 미들웨어 머신 환경에서 어플리케이션 버저닝을 지원하기 위한 시스템에서 사용될 수 있다. 트랜잭셔널 서비스 제공자(900)는 디스패칭 유닛(910), 파티셔너(920) 및 액세싱 유닛(930)을 포함할 수 있다. 디스패칭 유닛(910)은 복수의 서비스 버전들과 연관되는 적어도 하나의 서비스를 디스패치하도록 동작할 수 있다. 파티셔너(920)는 하나 이상의 어플리케이션들을 하나 이상의 어플리케이션 존들로 파티셔닝하도록 동작할 수 있다. 어플리케이션 존 각각은 적어도 하나의 서비스의 특정 요청 버전과 연관될 수 있다. 액세싱 유닛(930)은 상기 어플리케이션 존 내의 서비스 요청자가 상기 어플리케이션 존과 연관되는 서비스 버전을 가진 적어도 하나의 서비스에 액세스하도록 할 수 있다.
다른 실시예에서, 트랜잭셔널 서비스 제공자(900)는 결정 유닛(940)을 더 포함할 수 있다. 결정 유닛(940)은 트랜잭셔널 서비스 어플리케이션 구성에 기반하여 서비스 요청에 대한 서비스 버전을 결정하도록 동작할 수 있다.
또 다른 실시예에서, 트랜잭셔널 서비스 제공자(900)는 수신 유닛(950)을 더 포함할 수 있다. 수신 유닛(950)은 원격 서비스로부터 적어도 하나의 서비스에 대한 서비스 요청을 수신하도록 동작할 수 있다.
도 10은 본 발명의 실시예에 따른 트랜잭셔널 서비스 제공자(110)의 예시적인 블록도를 예시한다. 트랜잭셔널 서비스 제공자(110)는 디스패처(1010), 파티셔닝 모듈(1020) 및 액세스 제어기(1030)를 포함한다. 디스패처(1010)는 복수의 서비스 버전들과 연관되는 적어도 하나의 서비스(1040)를 디스패치한다. 파티셔닝 모듈(1020)은 하나 이상의 어플리케이션들이 하나 이상의 어플리케이션 존들(1050)로 파티셔닝되도록 한다. 각각의 어플리케이션 존(1050)은 적어도 하나의 서비스(1040)의 특정 요청 버전과 연관된다. 액세스 제어기(1030)는 어플리케이션 존(1050)내의 서비스 요청자(1060)가 어플리케이션 존(1050)과 연관되는 서비스 버전을 가진 적어도 하나의 서비스(1040)에 액세스하도록 한다.
본 발명은 본 개시내용의 교시들에 따라 프로그램된 하나 이상의 프로세서들, 메모리 및/또는 컴퓨터 판독가능 저장 매체를 포함하는 하나 이상의 종래의 범용 또는 특수화된 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로프로세서를 이용하여 통상적으로 구현될 수 있다. 적절한 소프트웨어 코딩은 소프트웨어 기술 분야의 숙련자들에게 분명할 바와 같이, 본 개시내용의 교시들에 기반하여 숙련된 프로그래머들에 의해 쉽게 준비될 수 있다.
일부 실시예들에서, 본 발명은 본 발명의 프로세스들 중 임의의 것을 수행하도록 컴퓨터를 프로그램하는데 사용될 수 있는 명령어들이 저장된 저장 매체 또는 컴퓨터 판독가능 매체(매체들)인 컴퓨터 프로그램 제품을 포함한다. 저장 매체는 이들로만 한정되는 것은 아니지만, 플로피 디스크(disk)들, 광학 디스크(disc)들, DVD, CD-ROM들, 마이크로드라이브 및 자기-광학 디스크(disk)들을 포함하는 임의의 타입의 디스크, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광학 카드들, (분자 메모리 IC들을 포함하는) 나노시스템들, 또는 명령어들 및/또는 데이터를 저장하기에 적절한 임의의 타입의 매체 또는 디바이스를 포함할 수 있다.
본 발명의 전술한 설명은 예시 및 설명을 위하여 제공되었다. 본 설명은 완전한 것으로 의도되거나 또는 개시된 정확한 형태들로만 본 발명을 제한하고자 의도된 것이 아니다. 많은 수정들 및 변형들이 이 기술분야의 숙련자에게 명백할 것이다. 수정들 및 변형들은 개시된 기술적 특징들의 임의의 관련 조합을 포함할 수 있다. 실시예들은 본 발명의 원리들 및 이의 실용적 응용을 가장 잘 설명하기 위하여 선택 및 설명되었으며, 그럼으로써 이 기술분야의 숙련자는 다양한 실시예들에 대한 발명 및 고려되는 특별한 용도에 적합한 다양한 수정들을 이해할 수 있다. 본 발명의 범위는 다음의 특허 청구범위 및 이의 균등물에 의해 한정되어야 함이 의도된다.

Claims (23)

  1. 트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝(implicit application versioning)을 지원하기 위한 방법으로서,
    트랜잭셔널 서버에서 실행되는 트랜잭셔널 서비스 제공자에 의해, 복수의 서비스 엔트리들을 갖는 서비스를 디스패치(dispatch)하는 단계 - 상기 복수의 서비스 엔트리들 각각은 상기 서비스의 상이한 버전에 대응하고, 상기 복수의 서비스 엔트리들은 상기 트랜잭셔널 미들웨어 머신 환경 내의 제1 서버에서 실행되는 상기 서비스의 제1 버전에 대응하는 제1 서비스 엔트리, 상기 트랜잭셔널 미들웨어 머신 환경 내의 제2 서버에서 실행되는 상기 서비스의 제2 버전에 대응하는 제2 서비스 엔트리, 및 상기 트랜잭셔널 미들웨어 머신 환경에서 상기 서비스의 제3 버전에 대응하는 제3 서비스 엔트리를 포함하고, 상기 서비스의 제1 버전, 제2 버전 및 제3 버전은 서로 상이하며 - 와;
    연관된 제1 서비스 요청자로부터 상기 서비스에 대한 제1 서비스 요청을 수신하는 단계 - 상기 연관된 제1 서비스 요청자는 복수의 어플리케이션 존들( application zones)로 분할된 연관된 서비스 어플리케이션의 상기 복수의 어플리케이션 존들 중 제1 어플리케이션 존에 상주하며, 상기 복수의 어플리케이션 존들 중 각각의 상기 어플리케이션 존은 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 특정 요청 서비스 버전과 연관되고, 상기 복수의 어플리케이션 존들은 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 제1 요청 서비스 버전과 연관된 상기 제1 어플리케이션 존 및 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 제2 요청 서비스 버전과 연관된 제2 어플리케이션 존을 포함하며 - 와;
    상기 연관된 제1 서비스 요청자와 상이한 연관된 제2 서비스 요청자로부터, 상기 서비스에 대한 제2 서비스 요청을 수신하는 단계 - 상기 연관된 제2 서비스 요청자는 상기 연관된 서비스 어플리케이션의 복수의 어플리케이션 존들 중 상기 제1 어플리케이션 존과 상이한 상기 연관된 서비스 어플리케이션의 복수의 어플리케이션 존들 중 상기 제2 어플리케이션 존에 상주하며 - 와;
    상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다는 것을, 상기 트랜잭셔널 서비스 제공자에 의해 결정하는 단계와;
    상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다는 것을, 상기 트랜잭셔널 서비스 제공자에 의해 결정하는 단계와;
    상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다고 결정한 것에 기반하여, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리 중 선택된 제1 서비스 엔트리를 통해 상기 제1 서버에서 실행중인 상기 서비스의 제1 버전에 연관된 제1 서비스 요청을, 상기 트랜잭셔널 서비스 제공자에 의해 라우팅하고, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리는 상기 결정된 제1 어플리케이션 존과 연관된 요청 서비스 버전를 가지며, 이를 통해, 상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다는 것을 상기 트랜잭셔널 서비스 제공자가 결정할 때, 상기 연관된 제1 서비스 요청자가 상기 제1 서비스 엔트리를 통해 상기 제1 서버에서 실행중인 서비스의 제1 버전에 액세스할 수 있도록 하는 단계와;
    상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다고 결정한 것에 기반하여, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리 중 선택된 제2 서비스 엔트리를 통해 상기 제2 서버에서 실행중인 상기 서비스의 제2 버전에 연관된 제2 서비스 요청을, 상기 트랜잭셔널 서비스 제공자에 의해 라우팅하고, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리는 상기 결정된 제2 어플리케이션 존과 연관된 요청 서비스 버전를 가지며, 이를 통해, 상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다는 것을 상기 트랜잭셔널 서비스 제공자가 결정할 때, 상기 연관된 제2 서비스 요청자가 상기 제2 서비스 엔트리를 통해 상기 제2 서버에서 실행중인 서비스의 제2 버전에 액세스할 수 있도록 하는 단계와;
    구성 파일에 의해 버전 범위를 임포트된 서비스(imported service)에 할당하여 상기 트랜잭셔널 서버에서 실행하기 위해 원격 도메인에서 임포트된 상기 임포트된 서비스를 구성하기 위해 적어도 하나의 구성 파일을 사용하는 단계 - 상기 버전 범위 내의 요청 버전을 갖는 서비스 요청자들만이 상기 트랜잭셔널 서버상에서 상기 임포트된 서비스를 호출할 수 있으며 - 와;
    상기 제1 어플리케이션 존과 연관된 상기 제1 요청 서비스 버전이 상기 구성 파일에서 상기 임포트된 서비스에 할당된 버전 범위 내에 있음을 결정하는 것에 기반하여 상기 제1 서비스 요청자가 상기 임포트된 서비스를 호출하는 것을 선택적으로 허용하는 단계와;
    상기 제2 어플리케이션 존과 연관된 상기 제2 요청 서비스 버전이 상기 구성 파일에서 상기 임포트된 서비스에 할당된 버전 범위 내에 있음을 결정하는 것에 기반하여 상기 제2 서비스 요청자가 상기 임포트된 서비스를 호출하는 것을 선택적으로 허용하는 단계와;
    상기 임포트된 서비스로부터 요청 서비스 버전을 수신하고, 상기 구성 파일 내의 속성에 기초하여 상기 임포트된 서비스로부터 수신된 상기 요청 서비스 버전을 상기 제1 요청 서비스 버전으로 변경하며, 그리고 상기 임포트된 서비스를 상기 제1 서버에서 실행중인 상기 서비스의 상기 제1 버전으로 라우팅함으로써, 상기 임포트된 서비스가 상기 제1 서버에서 실행되는 서비스의 제1 버전으로 라우팅되도록 허용하는 단계와; 그리고
    상기 트랜잭셔널 미들웨어 머신 환경에서 상기 서비스의 제3 버전의 트랜잭셔널 어플리케이션 로직 또는 서비스 로직 중 하나 이상을 상기 서비스의 수정된 제3 버전으로 변경하는 단계를 포함하고,
    상기 변경하는 단계는, 상기 서비스의 제1 버전 및 제2 버전이 상기 제1 서버 및 제2 서버에서 실행되는 동안 상기 서비스의 제3 버전의 트랜잭셔널 어플리케이션 로직을 업그레이드하는 단계 또는 상기 서비스의 제1 버전 및 제2 버전이 상기 제1 서버 및 제2 서버에서 실행되는 동안 상기 서비스의 제3 버전의 서비스 로직을 업데이트하는 단계를 포함하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  2. 제1항에 있어서,
    상기 트랜잭셔널 서비스 제공자는 트랜잭셔널 서비스 어플리케이션 구성에 기반하여 상기 제1 서비스 요청에 대한 상기 제1 요청 서비스 버전을 결정하도록 동작하고, 그리고
    상기 트랜잭셔널 서비스 제공자는 트랜잭셔널 서비스 어플리케이션 구성에 기반하여 상기 제2 서비스 요청에 대한 상기 제2 요청 서비스 버전을 결정하도록 동작하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  3. 제2항에 있어서,
    상기 트랜잭셔널 서비스 어플리케이션 구성을 제공하기 위하여 적어도 하나의 구성 파일이 사용되는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  4. 제3항에 있어서,
    상기 적어도 하나의 구성 파일은:
    상기 요청 서비스 버전의 서비스 버전,
    상기 요청 서비스 버전의 서비스 버전 범위, 및
    상기 요청 서비스 버전의 버전 정책 중 적어도 하나를 특정하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  5. 제3항에 있어서,
    상기 방법을 수행하도록 하는 시스템은,
    관리 인터페이스에 의해, 런타임에서 상기 적어도 하나의 구성 파일을 선택적으로 변경하고, 그리고
    상기 제1 서비스 엔트리, 상기 제2 서비스 엔트리 및 상기 제3 서비스 엔트리 중 상기 제3 서비스 엔트리를 통해 상기 연관된 제1 서비스 요청을 상기 서비스의 수정된 제3 버전으로 라우팅함으로써, 상기 연관된 제1 서비스 요청자가 상기 제3 서비스 엔트리를 통해 상기 서비스의 수정된 제3 버전에 액세스할 수 있도록 하거나 또는
    상기 제1 서비스 엔트리, 상기 제2 서비스 엔트리 및 상기 제3 서비스 엔트리 중 상기 제3 서비스 엔트리를 통해 상기 연관된 제2 서비스 요청을 상기 서비스의 수정된 제3 버전으로 라우팅함으로써, 상기 연관된 제2 서비스 요청자가 상기 제3 서비스 엔트리를 통해 상기 서비스의 수정된 제3 버전에 액세스할 수 있도록 하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  6. 제2항에 있어서,
    상기 트랜잭셔널 서비스 어플리케이션 구성은 상이한 관리 레벨들과의 계층구조 관계(hierarchy relationship)를 특정하며, 하위 레벨(lower level) 트랜잭셔널 서비스 어플리케이션 구성은 상위 레벨(higher level) 트랜잭셔널 서비스 어플리케이션 구성을 오버라이드(override)할 수 있는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  7. 제1항에 있어서,
    상기 트랜잭셔널 서비스 제공자는, 원격 서비스로부터 상기 서비스에 대한 제2 서비스 요청을 수신하도록 동작하고; 그리고
    상기 제2 서비스 요청은 상기 트랜잭셔널 서비스 제공자의 로컬 도메인 내의 로컬 서비스 요청에 매핑되는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  8. 제1항에 있어서,
    적어도 하나의 구성 파일이, 연관된 원격 도메인으로부터 수신되는 클라이언트 요청을 구성하기 위하여 사용하는 되는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  9. 제1항에 있어서,
    상기 연관된 제1 서비스 요청자가 버저닝된 어플리케이션에 조인(join)하는 것에 응답하여, 상기 트랜잭셔널 서비스 제공자에 의해, 상기 연관된 제1 서비스 요청자와 버전 컨텍스트를 선택적으로 연관시키는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  10. 제1항에 있어서,
    상기 서비스 요청을 수신하는 단계는:
    상기 서비스 요청에 상기 적어도 하나의 서비스의 이름만을 포함하는 상기 서비스 요청을 수신하는 단계를 포함하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 방법.
  11. 트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템으로서,
    하나 이상의 마이크로 프로세서들을 포함하는 트랜잭셔널 서버와; 그리고
    상기 하나 이상의 마이크로프로세서들에서 실행되는 트랜잭셔널 서비스 제공자를 포함하며;
    상기 트랜잭셔널 서비스 제공자는,
    복수의 서비스 엔트리들을 갖는 서비스를 디스패치하도록 하고, 상기 복수의 서비스 엔트리들 각각은 상기 서비스의 상이한 버전에 대응하고, 상기 복수의 서비스 엔트리들은 상기 트랜잭셔널 미들웨어 머신 환경 내의 제1 서버에서 실행되는 상기 서비스의 제1 버전에 대응하는 제1 서비스 엔트리, 상기 트랜잭셔널 미들웨어 머신 환경 내의 제2 서버에서 실행되는 상기 서비스의 제2 버전에 대응하는 제2 서비스 엔트리, 및 상기 트랜잭셔널 미들웨어 머신 환경에서 상기 서비스의 제3 버전에 대응하는 제3 서비스 엔트리를 포함하고, 상기 서비스의 제1 버전, 제2 버전 및 제3 버전은 서로 상이하며,
    연관된 제1 서비스 요청자로부터 상기 서비스에 대한 제1 서비스 요청을 수신하도록 하며, 상기 연관된 제1 서비스 요청자는 복수의 어플리케이션 존들( application zones)로 분할된 연관된 서비스 어플리케이션의 상기 복수의 어플리케이션 존들 중 제1 어플리케이션 존에 상주하며, 상기 복수의 어플리케이션 존들 중 각각의 상기 어플리케이션 존은 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 특정 요청 서비스 버전과 연관되고, 상기 복수의 어플리케이션 존들은 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 제1 요청 서비스 버전과 연관된 상기 제1 어플리케이션 존 및 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 제2 요청 서비스 버전과 연관된 제2 어플리케이션 존을 포함하며,
    상기 연관된 제1 서비스 요청자와 상이한 연관된 제2 서비스 요청자로부터, 상기 서비스에 대한 제2 서비스 요청을 수신하고, 상기 연관된 제2 서비스 요청자는 상기 연관된 서비스 어플리케이션의 복수의 어플리케이션 존들 중 상기 제1 어플리케이션 존과 상이한 상기 연관된 서비스 어플리케이션의 복수의 어플리케이션 존들 중 상기 제2 어플리케이션 존에 상주하며,
    상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다는 것을 결정하고,
    상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다는 것을 결정하고,
    상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다고 결정한 것에 기반하여, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리 중 선택된 제1 서비스 엔트리를 통해 상기 제1 서버에서 실행중인 상기 서비스의 제1 버전에 연관된 제1 서비스 요청을 라우팅하고, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리는 상기 결정된 제1 어플리케이션 존과 연관된 요청 서비스 버전를 가지며, 이를 통해, 상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다는 것을 상기 트랜잭셔널 서비스 제공자가 결정할 때, 상기 연관된 제1 서비스 요청자가 상기 제1 서비스 엔트리를 통해 상기 제1 서버에서 실행중인 서비스의 제1 버전에 액세스할 수 있도록 하고,
    상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다고 결정한 것에 기반하여, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리 중 선택된 제2 서비스 엔트리를 통해 상기 제2 서버에서 실행중인 상기 서비스의 제2 버전에 연관된 제2 서비스 요청을 라우팅하고, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리는 상기 결정된 제2 어플리케이션 존과 연관된 요청 서비스 버전를 가지며, 이를 통해, 상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다는 것을 상기 트랜잭셔널 서비스 제공자가 결정할 때, 상기 연관된 제2 서비스 요청자가 상기 제2 서비스 엔트리를 통해 상기 제2 서버에서 실행중인 서비스의 제2 버전에 액세스할 수 있도록 하고,
    구성 파일에 의해 버전 범위를 임포트된 서비스에 할당하여 상기 트랜잭셔널 서버에서 실행하기 위해 원격 도메인에서 임포트된 상기 임포트된 서비스를 구성하기 위해 적어도 하나의 구성 파일을 사용하고, 상기 버전 범위 내의 요청 버전을 갖는 서비스 요청자들만이 상기 트랜잭셔널 서버상에서 상기 임포트된 서비스를 호출할 수 있으며,
    상기 제1 어플리케이션 존과 연관된 상기 제1 요청 서비스 버전이 상기 구성 파일에서 상기 임포트된 서비스에 할당된 버전 범위 내에 있음을 결정하는 것에 기반하여 상기 제1 서비스 요청자가 상기 임포트된 서비스를 호출하는 것을 선택적으로 허용하고,
    상기 제2 어플리케이션 존과 연관된 상기 제2 요청 서비스 버전이 상기 구성 파일에서 상기 임포트된 서비스에 할당된 버전 범위 내에 있음을 결정하는 것에 기반하여 상기 제2 서비스 요청자가 상기 임포트된 서비스를 호출하는 것을 선택적으로 허용하고,
    상기 임포트된 서비스로부터 요청 서비스 버전을 수신하고, 상기 구성 파일 내의 속성에 기초하여 상기 임포트된 서비스로부터 수신된 상기 요청 서비스 버전을 상기 제1 요청 서비스 버전으로 변경하며, 그리고 상기 임포트된 서비스를 상기 제1 서버에서 실행중인 상기 서비스의 상기 제1 버전으로 라우팅함으로써, 상기 임포트된 서비스가 상기 제1 서버에서 실행되는 서비스의 제1 버전으로 라우팅되도록 허용하며, 그리고
    상기 트랜잭셔널 미들웨어 머신 환경에서 상기 서비스의 제3 버전의 트랜잭셔널 어플리케이션 로직 또는 서비스 로직 중 하나 이상을 상기 서비스의 수정된 제3 버전으로 변경하며,
    상기 변경하는 것은, 상기 서비스의 제1 버전 및 제2 버전이 상기 제1 서버 및 제2 서버에서 실행되는 동안 상기 서비스의 제3 버전의 트랜잭셔널 어플리케이션 로직을 업그레이드하는 것 또는 상기 서비스의 제1 버전 및 제2 버전이 상기 제1 서버 및 제2 서버에서 실행되는 동안 상기 서비스의 제3 버전의 서비스 로직을 업데이트하는 것을 포함하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  12. 제11항에 있어서,
    상기 트랜잭셔널 서비스 제공자는 트랜잭셔널 서비스 어플리케이션 구성에 기반하여 상기 제1 서비스 요청에 대한 상기 제1 요청 서비스 버전을 선택적으로 결정하도록 동작하고, 그리고
    상기 트랜잭셔널 서비스 제공자는 트랜잭셔널 서비스 어플리케이션 구성에 기반하여 상기 제2 서비스 요청에 대한 상기 제2 요청 서비스 버전을 선택적으로 결정하도록 동작하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  13. 제12항에 있어서,
    상기 트랜잭셔널 서비스 어플리케이션 구성을 제공하기 위하여 적어도 하나의 구성 파일이 사용되는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  14. 제13항에 있어서,
    상기 적어도 하나의 구성 파일은:
    상기 요청 서비스 버전의 서비스 버전,
    상기 요청 서비스 버전의 서비스 버전 범위, 및
    상기 요청 서비스 버전의 버전 정책 중 적어도 하나를 특정하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  15. 제13항에 있어서,
    상기 시스템은,
    런타임에서 상기 적어도 하나의 구성 파일을 선택적으로 변경하기 위해 관리 인터페이스를 사용하고, 그리고
    상기 제1 서비스 엔트리, 상기 제2 서비스 엔트리 및 상기 제3 서비스 엔트리 중 상기 제3 서비스 엔트리를 통해 상기 연관된 제1 서비스 요청을 상기 서비스의 수정된 제3 버전으로 라우팅함으로써, 상기 연관된 제1 서비스 요청자가 상기 제3 서비스 엔트리를 통해 상기 서비스의 제3 버전에 액세스할 수 있도록 하거나 또는
    상기 제1 서비스 엔트리, 상기 제2 서비스 엔트리 및 상기 제3 서비스 엔트리 중 상기 제3 서비스 엔트리를 통해 상기 연관된 제2 서비스 요청을 상기 서비스의 수정된 제3 버전으로 라우팅함으로써, 상기 연관된 제2 서비스 요청자가 상기 제3 서비스 엔트리를 통해 상기 서비스의 제3 버전에 액세스할 수 있도록 하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  16. 제12항에 있어서,
    상기 트랜잭셔널 서비스 어플리케이션 구성은 상이한 관리 레벨들과의 계층구조 관계를 특정하며, 하위 레벨 트랜잭셔널 서비스 어플리케이션 구성은 상위 레벨 트랜잭셔널 서비스 어플리케이션 구성을 오버라이드할 수 있는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  17. 제11항에 있어서,
    상기 트랜잭셔널 서비스 제공자는, 원격 서비스로부터 상기 서비스에 대한 제2 서비스 요청을 수신하도록 동작하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  18. 제11항에 있어서,
    적어도 하나의 구성 파일이, 연관된 원격 도메인으로부터 수신되는 클라이언트 요청 또는 임포트된 서비스를 구성하기 위하여 사용하는 되는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  19. 제11항에 있어서,
    상기 서비스 요청자는, 상기 연관된 제1 서비스 요청자가 버저닝된 애플리케이션에 조인할 때 버전 컨텍스트를 묵시적으로 생성하도록 동작하는 것을 특징으로 하는
    트랜잭셔널 미들웨어 머신 환경에서 묵시적인 어플리케이션 버저닝을 지원하기 위한 시스템.
  20. 명령어들이 저장된 비-일시적 머신 판독가능 저장 매체로서,
    상기 명령어들은, 실행시, 시스템으로 하여금, 하기의 단계들을 수행하도록 하고, 하기의 단계들은:
    트랜잭셔널 서버에서 실행되는 트랜잭셔널 서비스 제공자에 의해, 복수의 서비스 엔트리들을 갖는 서비스를 디스패치하는 단계 - 상기 복수의 서비스 엔트리들 각각은 상기 서비스의 상이한 버전에 대응하고, 상기 복수의 서비스 엔트리들은 트랜잭셔널 미들웨어 머신 환경 내의 제1 서버에서 실행되는 상기 서비스의 제1 버전에 대응하는 제1 서비스 엔트리, 트랜잭셔널 미들웨어 머신 환경 내의 제2 서버에서 실행되는 상기 서비스의 제2 버전에 대응하는 제2 서비스 엔트리, 및 트랜잭셔널 미들웨어 머신 환경에서 상기 서비스의 제3 버전에 대응하는 제3 서비스 엔트리를 포함하고, 상기 서비스의 제1 버전, 제2 버전 및 제3 버전은 서로 상이하며 - 와;
    연관된 제1 서비스 요청자로부터 상기 서비스에 대한 제1 서비스 요청을 수신하는 단계 - 상기 연관된 제1 서비스 요청자는 복수의 어플리케이션 존들로 분할된 연관된 서비스 어플리케이션의 상기 복수의 어플리케이션 존들 중 제1 어플리케이션 존에 상주하며, 상기 복수의 어플리케이션 존들 중 각각의 상기 어플리케이션 존은 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 특정 요청 서비스 버전과 연관되고, 상기 복수의 어플리케이션 존들은 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 제1 요청 서비스 버전과 연관된 상기 제1 어플리케이션 존 및 상기 트랜잭셔널 서비스 제공자에 의해 상기 서비스의 제2 요청 서비스 버전과 연관된 제2 어플리케이션 존을 포함하며 - 와;
    상기 연관된 제1 서비스 요청자와 상이한 연관된 제2 서비스 요청자로부터, 상기 서비스에 대한 제2 서비스 요청을 수신하는 단계 - 상기 연관된 제2 서비스 요청자는 상기 연관된 서비스 어플리케이션의 복수의 어플리케이션 존들 중 상기 제1 어플리케이션 존과 상이한 상기 연관된 서비스 어플리케이션의 복수의 어플리케이션 존들 중 상기 제2 어플리케이션 존에 상주하며 - 와;
    상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다는 것을, 상기 트랜잭셔널 서비스 제공자에 의해 결정하는 단계와;
    상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다는 것을, 상기 트랜잭셔널 서비스 제공자에 의해 결정하는 단계와;
    상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다고 결정한 것에 기반하여, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리 중 선택된 제1 서비스 엔트리를 통해 상기 제1 서버에서 실행중인 상기 서비스의 제1 버전에 연관된 제1 서비스 요청을, 상기 트랜잭셔널 서비스 제공자에 의해 라우팅하고, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리는 상기 결정된 제1 어플리케이션 존과 연관된 요청 서비스 버전를 가지며, 이를 통해, 상기 연관된 제1 서비스 요청자가 상기 제1 어플리케이션 존에 상주한다는 것을 상기 트랜잭셔널 서비스 제공자가 결정할 때, 상기 연관된 제1 서비스 요청자가 상기 제1 서비스 엔트리를 통해 상기 제1 서버에서 실행중인 서비스의 제1 버전에 액세스할 수 있도록 하는 단계와;
    상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다고 결정한 것에 기반하여, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리 중 선택된 제2 서비스 엔트리를 통해 상기 제2 서버에서 실행중인 상기 서비스의 제2 버전에 연관된 제2 서비스 요청을, 상기 트랜잭셔널 서비스 제공자에 의해 라우팅하고, 상기 제1 서비스 엔트리, 제2 서비스 엔트리 및 제3 서비스 엔트리는 상기 결정된 제2 어플리케이션 존과 연관된 요청 서비스 버전를 가지며, 이를 통해, 상기 연관된 제2 서비스 요청자가 상기 제2 어플리케이션 존에 상주한다는 것을 상기 트랜잭셔널 서비스 제공자가 결정할 때, 상기 연관된 제2 서비스 요청자가 상기 제2 서비스 엔트리를 통해 상기 제2 서버에서 실행중인 서비스의 제2 버전에 액세스할 수 있도록 하는 단계와;
    구성 파일에 의해 버전 범위를 임포트된 서비스에 할당하여 상기 트랜잭셔널 서버에서 실행하기 위해 원격 도메인에서 임포트된 상기 임포트된 서비스를 구성하기 위해 적어도 하나의 구성 파일을 사용하는 단계 - 상기 버전 범위 내의 요청 버전을 갖는 서비스 요청자들만이 상기 트랜잭셔널 서버상에서 상기 임포트된 서비스를 호출할 수 있으며 - 와;
    상기 제1 어플리케이션 존과 연관된 상기 제1 요청 서비스 버전이 상기 구성 파일에서 상기 임포트된 서비스에 할당된 버전 범위 내에 있음을 결정하는 것에 기반하여 상기 제1 서비스 요청자가 상기 임포트된 서비스를 호출하는 것을 선택적으로 허용하는 단계와;
    상기 제2 어플리케이션 존과 연관된 상기 제2 요청 서비스 버전이 상기 구성 파일에서 상기 임포트된 서비스에 할당된 버전 범위 내에 있음을 결정하는 것에 기반하여 상기 제2 서비스 요청자가 상기 임포트된 서비스를 호출하는 것을 선택적으로 허용하는 단계와;
    상기 임포트된 서비스로부터 요청 서비스 버전을 수신하고, 상기 구성 파일 내의 속성에 기초하여 상기 임포트된 서비스로부터 수신된 상기 요청 서비스 버전을 상기 제1 요청 서비스 버전으로 변경하며, 그리고 상기 임포트된 서비스를 상기 제1 서버에서 실행중인 상기 서비스의 상기 제1 버전으로 라우팅함으로써, 상기 임포트된 서비스가 상기 제1 서버에서 실행되는 서비스의 제1 버전으로 라우팅되도록 허용하는 단계와; 그리고
    트랜잭셔널 미들웨어 머신 환경에서 상기 서비스의 제3 버전의 트랜잭셔널 어플리케이션 로직 또는 서비스 로직 중 하나 이상을 상기 서비스의 수정된 제3 버전으로 변경하는 단계를 포함하고,
    상기 변경하는 단계는, 상기 서비스의 제1 버전 및 제2 버전이 상기 제1 서버 및 제2 서버에서 실행되는 동안 상기 서비스의 제3 버전의 트랜잭셔널 어플리케이션 로직을 업그레이드하는 단계 또는 상기 서비스의 제1 버전 및 제2 버전이 상기 제1 서버 및 제2 서버에서 실행되는 동안 상기 서비스의 제3 버전의 서비스 로직을 업데이트하는 단계를 포함하는 것을 특징으로 하는
    명령어들이 저장된 비-일시적 머신 판독가능 저장 매체.
  21. 삭제
  22. 삭제
  23. 삭제
KR1020147034348A 2012-06-13 2013-06-13 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 시스템 및 방법 KR102072727B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261659307P 2012-06-13 2012-06-13
US61/659,307 2012-06-13
US13/915,482 US10291486B2 (en) 2012-06-13 2013-06-11 System and method for supporting implicit versioning in a transactional middleware machine environment
US13/915,495 2013-06-11
US13/915,482 2013-06-11
US13/915,495 US10263854B2 (en) 2012-06-13 2013-06-11 System and method for supporting version based routing in a transactional middleware machine environment
PCT/US2013/045717 WO2013188691A1 (en) 2012-06-13 2013-06-13 System and method for supporting implicit versioning in a transactional middleware machine environment

Publications (2)

Publication Number Publication Date
KR20150023354A KR20150023354A (ko) 2015-03-05
KR102072727B1 true KR102072727B1 (ko) 2020-03-02

Family

ID=49775383

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020147033885A KR102103493B1 (ko) 2012-06-13 2013-06-13 트랜잭셔널 미들웨어 기계 환경에서 버전 기반 라우팅을 지원하는 시스템 및 방법
KR1020147034348A KR102072727B1 (ko) 2012-06-13 2013-06-13 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020147033885A KR102103493B1 (ko) 2012-06-13 2013-06-13 트랜잭셔널 미들웨어 기계 환경에서 버전 기반 라우팅을 지원하는 시스템 및 방법

Country Status (3)

Country Link
US (2) US10291486B2 (ko)
KR (2) KR102103493B1 (ko)
CN (2) CN104272259B (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262150B2 (en) 2012-09-22 2016-02-16 Avaya Inc. Services versioning
US9519509B2 (en) * 2014-10-21 2016-12-13 Oracle International Corporation System and method for supporting transaction affinity based request handling in a middleware environment
US10284646B2 (en) 2014-12-17 2019-05-07 International Business Machines Corporation Application multi-versioning in a traditional language environment
KR102285422B1 (ko) 2015-02-16 2021-08-04 주식회사 만도 긴급 제동 시스템 및 그의 제동 제어 방법
US10447103B2 (en) 2015-06-28 2019-10-15 Linear Labs, LLC Multi-tunnel electric motor/generator
US10476362B2 (en) 2015-06-28 2019-11-12 Linear Labs, LLC Multi-tunnel electric motor/generator segment
US9736259B2 (en) * 2015-06-30 2017-08-15 Iheartmedia Management Services, Inc. Platform-as-a-service with proxy-controlled request routing
US10305731B2 (en) 2015-07-07 2019-05-28 Oracle International Corporation System and method for provisioning cloud services across heterogeneous environments using partitioned provisioning instructions stored on a configuration management server
US10530892B2 (en) * 2015-09-28 2020-01-07 Microsoft Technology Licensing, Llc Processing request for multi-versioned service
US20170228252A1 (en) * 2016-02-10 2017-08-10 Qualcomm Incorporated System and method for multi-tile data transactions in a system on a chip
US10353750B2 (en) 2017-03-03 2019-07-16 International Business Machines Discovery and exposure of transactional middleware server-based applications as consumable service endpoints
CN108628642B (zh) * 2017-03-20 2021-07-30 北京京东尚科信息技术有限公司 切换系统的版本的方法和装置以及存储介质
CN110704295B (zh) * 2018-07-10 2023-04-11 阿里巴巴集团控股有限公司 一种数据调用方法、装置、设备及系统
US11755311B1 (en) * 2023-02-15 2023-09-12 Snowflake Inc. Versioned schema

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050030939A1 (en) 2003-08-07 2005-02-10 Teamon Systems, Inc. Communications system including protocol interface device for use with multiple operating protocols and related methods
US20060174252A1 (en) * 2004-11-18 2006-08-03 Besbris David G Service versioning
US20080281969A1 (en) * 2000-12-15 2008-11-13 Horton John C Controlling access to versions of application software by a server, based on site ID
KR100894813B1 (ko) 2004-12-23 2009-04-24 에스지어드밴텍(주) 특정 프로그램의 효율적 자동 배포 및 설치를 위한 네트워크 배포 영역의 피어-투-피어(Peer To Peer) 분산 방법 및 시스템
US20100169497A1 (en) * 2008-12-31 2010-07-01 Sap Ag Systems and methods for integrating local systems with cloud computing resources

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212557B1 (en) 1990-01-29 2001-04-03 Compaq Computer Corporation Method and apparatus for synchronizing upgrades in distributed network data processing systems
US5572675A (en) * 1991-05-29 1996-11-05 Alcatel N.V. Application program interface
WO2002069608A2 (en) * 2001-01-16 2002-09-06 Akamai Technologies, Inc. Using virtual domain name service (dns) zones for enterprise content delivery
FI20010828A (fi) * 2001-04-23 2002-10-24 Nokia Corp Erilaisten palveluversioiden käsitteleminen palvelimessa
AU2003297764A1 (en) * 2002-12-09 2004-06-30 Bea Systems, Inc. System and method for single security administration
US7277453B2 (en) 2003-05-30 2007-10-02 Motorola, Inc. Inter private network communications between IPv4 hosts using IPv6
WO2005010650A2 (en) 2003-07-03 2005-02-03 Ebay Inc. Method and system for managing data transaction requests
CN100432998C (zh) 2003-08-07 2008-11-12 蒂蒙系统公司 包括使用多种操作协议的协议接口设备的通信系统及相关方法
KR20050057910A (ko) * 2003-12-11 2005-06-16 (주)엠엑스텐 실시간 트랜잭션을 지원하는 모바일 미들웨어 시스템 및모바일 비즈니스 방법, 그리고 모바일 비즈니스 개발 지원방법
US7124062B2 (en) 2003-12-30 2006-10-17 Sap Ag Services search method
US7797698B2 (en) 2004-11-17 2010-09-14 International Business Machines Corporation Method and apparatus for dynamic middleware assembly
US20060155857A1 (en) 2005-01-06 2006-07-13 Oracle International Corporation Deterministic session state management within a global cache array
US7506336B1 (en) 2005-06-29 2009-03-17 Emc Corporation System and methods for version compatibility checking
WO2007044230A2 (en) 2005-10-07 2007-04-19 Citrix Systems, Inc. Methods for selecting between a predetermined number of execution methods for an application program
US7779034B2 (en) 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US7783666B1 (en) * 2007-09-26 2010-08-24 Netapp, Inc. Controlling access to storage resources by using access pattern based quotas
US8131872B2 (en) * 2008-05-30 2012-03-06 International Business Machines Corporation Affinity-based transaction processing
US8301717B2 (en) 2009-06-09 2012-10-30 Deshpande Enterprises, Inc. Extended virtual memory system and method in a computer cluster
US8543676B2 (en) * 2009-06-16 2013-09-24 International Business Machines Corporation Delegated resource use in a content based routing environment
CN101977220B (zh) 2010-10-14 2015-06-03 中兴通讯股份有限公司 一种功能子系统间不同版本功能模块的匹配方法及装置
US9391949B1 (en) * 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080281969A1 (en) * 2000-12-15 2008-11-13 Horton John C Controlling access to versions of application software by a server, based on site ID
US20050030939A1 (en) 2003-08-07 2005-02-10 Teamon Systems, Inc. Communications system including protocol interface device for use with multiple operating protocols and related methods
US20060174252A1 (en) * 2004-11-18 2006-08-03 Besbris David G Service versioning
KR100894813B1 (ko) 2004-12-23 2009-04-24 에스지어드밴텍(주) 특정 프로그램의 효율적 자동 배포 및 설치를 위한 네트워크 배포 영역의 피어-투-피어(Peer To Peer) 분산 방법 및 시스템
US20100169497A1 (en) * 2008-12-31 2010-07-01 Sap Ag Systems and methods for integrating local systems with cloud computing resources

Also Published As

Publication number Publication date
CN104272259B (zh) 2018-01-02
CN104272259A (zh) 2015-01-07
CN104272258A (zh) 2015-01-07
KR102103493B1 (ko) 2020-04-23
US10291486B2 (en) 2019-05-14
US10263854B2 (en) 2019-04-16
US20140033190A1 (en) 2014-01-30
KR20150023335A (ko) 2015-03-05
CN104272258B (zh) 2018-06-05
US20130346607A1 (en) 2013-12-26
KR20150023354A (ko) 2015-03-05

Similar Documents

Publication Publication Date Title
KR102072727B1 (ko) 트랜잭셔널 미들웨어 머신 환경에서 묵시적 버저닝을 지원하기 위한 시스템 및 방법
US10216545B2 (en) Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment
US8010651B2 (en) Executing programs based on user-specified constraints
US9015177B2 (en) Dynamically splitting multi-tenant databases
US20240176672A1 (en) Systems and methods providing serverless dns integration
CN106663033B (zh) 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法
JP2005524147A (ja) 分散形アプリケーションサーバおよび分散された機能を実施するための方法
US20120102220A1 (en) Routing traffic in an online service with high availability
US11461091B2 (en) System and method for creating or updating tenant artifacts by a multi-tenant cloud service
US20200379818A1 (en) Managed computing resource placement as a service for dedicated hosts
US10715472B2 (en) System and method for unit-of-order routing
Alliance Service-based architecture in 5G
US9760370B2 (en) Load balancing using predictable state partitioning
WO2022007908A1 (zh) 网元设备间业务协同的方法和网元设备
US20220129303A1 (en) Managing failures in edge computing environments
WO2013188697A1 (en) System and method for supporting version based routing in a transactional middleware machine environment
US11307912B1 (en) Forward message compatibility safety in producer-consumer systems
US11656957B1 (en) Managing nodes of a DBMS
WO2018120222A1 (zh) 一种管理vnffg的方法、装置和系统
CN117519911B (zh) 自动注入系统、方法、设备、集群以及介质
US20200089544A1 (en) Managing computer resources
CN117130733A (zh) 一种数据中台对接大数据集群的数据请求适配方法和装置

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