KR101956320B1 - 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 - Google Patents

트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 Download PDF

Info

Publication number
KR101956320B1
KR101956320B1 KR1020147010310A KR20147010310A KR101956320B1 KR 101956320 B1 KR101956320 B1 KR 101956320B1 KR 1020147010310 A KR1020147010310 A KR 1020147010310A KR 20147010310 A KR20147010310 A KR 20147010310A KR 101956320 B1 KR101956320 B1 KR 101956320B1
Authority
KR
South Korea
Prior art keywords
transactional
message queue
server
message
machine
Prior art date
Application number
KR1020147010310A
Other languages
English (en)
Other versions
KR20140070611A (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 KR20140070611A publication Critical patent/KR20140070611A/ko
Application granted granted Critical
Publication of KR101956320B1 publication Critical patent/KR101956320B1/ko

Links

Images

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
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2012Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant and using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

트랜잭셔널 미들웨어 시스템은 로컬 메시지 전달과 같은 방식으로 짧은 레이턴시를 달성하기 위해 RDMA(Remote Direct Memory Access) 프로토콜을 이용하여 로컬 머신과 원격 머신 간에 메시지들을 교한할 수 있다. 트랜잭셔널 미들웨어 머신 환경은 단일 포인트 병목을 방지할 수 있다. 트랜잭셔널 미들웨어 머신 환경은 제1 트랜잭셔널 머신 내의 서버와 관련된 제1 메시지 큐를 포함하고, 상기 서버는 상기 제1 메시지 큐 내의 큐 어드레스를 이용하여 액세스되는 동작을 한다. 상기 트랜잭셔널 미들웨어 머신 환경은 제2 트랜잭셔널 머신 내의 클라이언트와 관련된 제2 메시지 큐를 더 포함한다. 상기 클라이언트는 상기 제1 메시지 큐를 이용하여 상기 서버에 직접적으로 서비스 요청 메시지를 보내는 동작을 하고, 상기 서버는 상기 제1 메시지 큐로부터 상기 서비스 요청 메시지를 수신하고 상기 제2 메시지 큐를 이용하여 상기 클라이언트에 직접적으로 서비스 응답 메시지를 보내는 동작을 한다.

Description

트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법{SYSTEM AND METHOD FOR PREVENTING SINGLE-POINT BOTTLENECK IN A TRANSACTIONAL MIDDLEWARE MACHINE ENVIRONMENT}
저작권 공지
본 명세서에서 개시된 부분은 저작권 보호를 받는 내용을 포함한다. 저작권자는 미국특허상표청의 특허 파일 또는 기록에 나타난 대로 본 특허 문서 또는 특허 개시내용을 어느 누군가가 팩시밀리 재생하는 것은 반대하지 않지만, 그 밖의 모든 것은 저작권으로 보호된다.
기술분야
본 발명은 일반적으로, 미들웨어와 같은 컴퓨터 시스템들 및 소프트웨어에 관한 것이며, 특히 트랜잭셔널 미들웨어 머신 환경(transactional middleware machine environment)을 지원하는 것에 관한 것이다
트랜잭셔널 미들웨어 시스템 또는 트랜잭션 지향 미들웨어(transaction oriented middleware)는 조직 내에서 다양한 트랜잭션들을 프로세스할 수 있는 기업 어플리케이션 서버들을 포함한다. 고성능 네트워크 및 멀티프로세서 컴퓨터와 같은 새로운 기술들의 발달에 따라, 트랜잭셔널 미들웨어의 성능을 더 향상시킬 필요가 있다. 이러한 것들은 대체로 본 발명의 실시예들이 해결하도록 의도된 영역들이다.
RDMA(Remote Direct Memory Access) 프로토콜을 이용하여 트랜잭셔널 미들웨어 머신 환경에서 로컬 머신과 원격 머신 간에 메시지들을 교환하는 것을 지원하는 시스템 및 방법이 개시된다. 상기 트랜잭셔널 미들웨어 머신 환경은 단일 포인트 병목을 방지하고 로컬 메시지 전달과 같은 방식으로 짧은 레이턴시를 달성한다. 상기 트랜잭셔널 미들웨어 머신 환경은 제1 메시지 큐 및 제2 메시지 큐를 포함한다. 상기 제1 메시지 큐는 상기 제1 메시지 큐 내의 큐 어드레스를 이용하여 액세스될 수 있는 제1 트랜잭셔널 머신 내의 서버와 관련된다. 상기 제2 메시지 큐는 제2 트랜잭셔널 머신 내의 클라이언트와 관련된다. 상기 클라이언트는 상기 제1 메시지 큐를 이용하여 서버에 직접적으로 서비스 요청 메시지를 보낼 수 있고, 상기 서버는 상기 제1 메시지 큐로부터 서비스 요청 메시지를 수신하고 상기 제2 메시지 큐를 이용하여 상기 클라이언트에 직접적으로 서비스 응답 메시지를 보낼 수 있다.
도 1은 본 발명의 실시예에 따른 직접 메시지 전달을 제공할 수 있는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
도 2는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하기 위한 예시적인 흐름도를 도시한다.
도 3은 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 바이패스 브릿지 프로세스 특징을 셋업하는 것의 예를 도시한다.
도 4는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서의 기능적 구성을 도시한다.
도 5는 본 발명의 실시예에 따른 트랜잭셔널 서버의 기능 블록도이다.
도 6은 본 발명의 실시예에 따른 클라이언트 서버의 기능 블록도이다.
복수의 프로세서들을 가진 고속 머신들 및 고성능 네트워크 연결의 장점을 취할 수 있는 Tuxedo와 같은 트랜잭셔널 미들웨어 시스템을 지원하는 시스템 및 방법이 본 명세서에 기술된다. 트랜잭셔널 미들웨어 시스템은 로컬 메시지 전달과 유사한 방식으로 짧은 레이턴시를 달성하기 위해 RDMA 프로토콜을 이용하여 로컬 머신과 원격 머신 간에 메시지들을 교환할 수 있다. 트랜잭셔널 미들웨어 머신 환경은 제1 트랜잭셔널 머신 내의 서버와 관련된 제1 메시지 큐를 포함하고, 상기 서버는 상기 제1 메시지 큐 내의 큐 어드레스를 이용하여 액세스되는 동작을 한다. 트랜잭셔널 미들웨어 머신 환경은 제2 트랜잭셔널 머신 내의 클라이언트와 관련된 제2 메시지 큐를 더 포함한다. 상기 클라이언트는 상기 제1 메시지 큐를 이용하여 서버에 직접적으로 서비스 요청 메시지를 보내는 동작을 하고, 상기 서버는 상기 제2 메시지 큐를 이용하여 상기 클라이언트에 직접적으로 서비스 응답 메시지를 보낸다.
본 발명의 실시예에 따르면, 시스템은, 신속하게 준비될 수 있고 수요에 따라 스케일링될 수 있는 대량의 병렬 인-메모리 그리드(massively parallel in-memory grid)를 포함하는 완전한 Java EE 어플리케이션 서버 컴플렉스를 제공하기 위해 WebLogic Suite와 같은 어플리케이션 서버 또는 미들웨어 환경과 함께 고성능 하드웨어, 예컨대 64-비트 프로세서 기술, 고성능 대용량 메모리 및 리던던트 인피니밴드(redundant InfiniBand) 및 이더넷 네트워킹의 조합을 포함한다. 실시예에 따르면, 시스템은 전체, 절반 또는 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 페브릭 및 미들웨어 어플리케이션을 호스팅하는 데 요구되는 모든 다른 컴포넌트들을 포함하는 "박스 내의 그리드"이다. 상당한 성능이 예컨대, 리얼 어플리케이션 클러스터(Real Application Cluster)들 및 엑사로직 오픈 스토리지(Exalogic Open storage)를 이용하여 대량의 병렬 그리드 구조를 활용함으로써 모든 타입의 미들웨어 어플리케이션들에 제공될 수 있다. 시스템은 선형적 I/O 확장성(scalability)을 포함하는 개선된 성능을 제공하고, 사용 및 관리하기에 간단하며, 작업상 중대한(mission-critical) 가용성 및 신뢰성을 제공한다.
본 발명의 실시예에 따르면, Tuxedo는 고성능, 분산형 비즈니스 어플리케이션들의 구성, 실행 및 관리(administration)를 할 수 있는 소프트웨어 모듈들의 세트이며, 다수의 다단(multi-tier) 어플리케이션 개발 툴들에 의해 트랜잭셔널 미들웨어로서 사용되었다. Tuxedo는 분산형 컴퓨팅 환경들에서 분산형 트랜잭션 프로세싱을 관리하는 데 사용될 수 있는 미들웨어 플랫폼이다. 이는, 기업의 레거시 어플리케이션들을 언락킹하고 상기 어플리케이션들을 서비스 지향식 구조로 확장하면서도 비제한적 확장성 및 표준-기반의 상호운용성을 제공하기 위한 검증된 플랫폼이다.
본 발명의 실시예에 따르면, Tuxedo 시스템과 같은 트랜잭셔널 미들웨어 시스템은 엑사로직 미들웨어 머신과 같은 복수의 프로세서들을 가진 고속 머신들 및 인피니밴드(IB) 네트워크와 같은 고성능 네트워크 연결의 장점을 취할 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 미들웨어 시스템은 로컬 메시지 전달과 유사한 방식으로 짧은 레이턴시를 달성하기 위해 RDMA 프로토콜을 이용하여 로컬 머신과 원격 머신 간에 메시지들을 교환할 수 있다.
직접 메시지 전달 제공
본 발명의 실시예에 따르면, 엑사로직 미들웨어 머신 환경과 같은 미들웨어 머신 환경은 Tuxedo 어플리케이션과 같은 트랜잭셔널 어플리케이션에 대한 단단히 결합되고 로직적으로 균일한 환경일 수 있다. 상기 트랜잭셔널 미들웨어 머신 환경에서 머신들 간에 메시지들을 전달함에 있어 어떠한 단일 포인트 병목도 존재하지 않는다.
도 1은 본 발명의 실시예에 따른 직접 메시지 전달을 제공할 수 있는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다. 도 1에 도시된 바와 같이, 상기 트랜잭셔널 미들웨어 머신 환경은 복수의 트랜잭셔널 머신들 즉, 머신 A(101) 및 머신 B(102)를 포함한다. 각각의 트랜잭셔널 미들웨어 머신은 광고 테이블(advertized table)(112 또는 113) 예컨대, Tuxedo에서의 게시판(BB)을 포함한다. 상기 광고 테이블은 여러 가지 서로 다른 머신들에 의해 공유될 수 있다.
도 1에 도시된 바와 같이, 머신 B(102) 상의 클라이언트 B는 클라이언트 B가 필요로 하는 서비스를 제공하는 서버를 광고 테이블에서 찾아볼 수 있다. 이 타겟 서버는 머신 B(102) 상의 서버 B와 같은 로컬 서버이거나 또는 머신 A(101) 상의 서버 A와 같은 원격 서버일 수 있다.
만일 서비스가 로컬 서버 상에 있으면, 클라이언트 B는 머신 B(102) 상의 IPC(Inter-process Communication) 큐 B(108)와 같은 하나 이상의 시스템 V IPC 큐들을 통해 타겟 서버에 서비스 요청 메시지를 보내고 서비스 응답 메시지를 수신할 수 있다.
한편, 만일 서비스가 머신 A(101) 상의 서버 A와 같은 원격 서버 상에 있으면, 클라이언트 B는 비록 RDMA 메시지 큐들이 복수의 머신들 간에 물리적으로 분산되어 있더라도 메시지를 직접적으로 교환하기 위해 상기 RDMA 메시지 큐들을 사용할 수 있다. RDMA 큐는 IB 네트워크와 같은 고성능 네트워크 상에서 동작하는(running) RDMA 프로토콜에 기반하는, 메시지들을 보내고 수신할 수 있는 라이브러리일 수 있다.
도 1에 도시된 바와 같이, 클라이언트 서버 B(106)는 트랜잭셔널 서버 A(103)와 관련된 머신 A(101) 상의 RDMA 큐 A(110) 내로 직접적으로 서비스 요청 메시지를 입력할 수 있다. 트랜잭셔널 서버 A(103)는 RDMA 큐 A(110)로부터 서비스 요청 메시지를 획득할 수 있고 서비스 요청을 프로세스한다. 그 다음, 트랜잭셔널 서버 A(103)는 클라이언트 B와 관련된 머신 B(102) 상의 RDMA 큐 B(111) 내로 직접적으로 서비스 응답 메시지를 입력할 수 있어서, 클라이언트 B는 서비스 응답을 획득할 수 있다.
대안적으로는, 도 1에 도시된 바와 같이, 머신 A(101) 상에 브릿지 프로세스 A(114)가 존재할 수 있고 머신 B(102) 상에 브릿지 프로세스 B(115)가 존재할 수 있다. 이 브릿지 프로세스들을 이용하여, 머신 B(102) 상의 클라이언트 B가 원격 머신 A(101)에 메시지를 타겟팅할 때, 클라이언트 B는 먼저, 로컬 브릿지 프로세스 즉, 브릿지 프로세스 B(115)와 관련된 시스템 V IPC 큐 B(108)에 서비스 요청 메시지를 보낼 수 있다. 그 다음, 상기 브릿지 프로세스 B(115)는 네트워크를 통해 이 메시지를 원격 타겟 머신 A(101) 상의 다른 브릿지 프로세스 즉, 브릿지 프로세스 A(114)에 포워딩할 수 있다. 마지막으로, 원격 타겟 머신 A(101)에서의 브릿지 프로세스 A(114)는 타겟 트랜잭셔널 서버 A(103)와 관련된 시스템 V IPC 큐 A(107)에 메시지를 보낼 수 있다. 그러나, 이 절차는 시간 소비적일 수 있고, 상대적으로 긴 레이턴시를 도입할 수 있다. 또한, 각각의 브릿지 프로세스는 과부하(heavy load) 하에서 매우 바쁠(busy) 수 있고, 전체 시스템의 스루풋(throughput)에 영향을 줄 수 있는 단일 포인트 병목이 될 수 있다.
도 1에 도시된 바와 같이, 트랜잭셔널 서버 A(103)는 여러 가지 서로 다른 스레드들에서 동시에 시스템 V IPC 큐 A(107) 및 RDMA 큐 A(110) 모두를 청취할 수 있다. 클라이언트 B와 같은 메시지 전송기는 트랜잭셔널 서버 A(103)에 메시지를 보내기 위해 보다 빠른 방식을 선택할 수 있다. 일반적으로, RDMA 큐는 원격 메시지 전달을 위해 사용될 수 있고, 시스템 V IPC 큐는 RDMA 큐가 로컬 메시지 전달에 대해 시스템 V IPC 큐보다 느릴 수 있기 때문에 로컬 메시지 전달을 위해 사용될 수 있다.
도 2는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하기 위한 예시적인 흐름도를 도시한다. 도 2에 도시된 바와 같이, 단계(201)에서, 제1 메시지 큐가 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버와 관련되도록 제공된다. 그 다음, 단계(202)에서, 상기 트랜잭셔널 서버는 상기 트랜잭셔널 미들웨어 머신 환경에서 광고 테이블에 제1 메시지 큐를 게제(publich)할 수 있다. 마지막으로, 단계(203)에서, 제2 트랜잭셔널 머신 내의 클라이언트 서버가 상기 광고 테이블에서 제1 메시지 큐를 발견하고, 상기 제1 메시지 큐를 이용하여 상기 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버와의 연결을 확립할 수 있다.
RDMA 프로토콜을 이용하여 Tuxedo 에서 브릿지 프로세스를 바이패싱
본 발명의 실시예에 따르면, 트랜잭셔널 미들웨어 시스템은 Tuxedo에서의 MSGQ 큐 라이브러리와 같은 RDMA 프로토콜을 통한 RDMA 큐를 이용하여 로컬 머신과 원격 머신 간에 메시지들을 교환할 수 있다. 상기 RDMA 프로토콜은 고성능 IB 네트워크 상에서 동작하는 머신들에 걸쳐 데이터를 전달하기 위해 사용될 수 있다. RDMA 프로토콜을 사용하여, 메시지 전송기 및 수신기는 비록 이들이 복수의 머신들 간에 물리적으로 분산되어 있더라도 메시지를 직접적으로 교환할 수 있다.
Tuxedo는 클래스 분산형 클라이언트 서버 구조(class distributed client-server structure)를 갖는 트랜잭셔널 미들웨어이다. 각각의 Tuxedo 서버는 도메인 전반에 걸쳐 광고되는 테이블 내에 자신의 MSGQ 큐 네임을 게재할 수 있다. 클라이언트 서버는 광고 테이블 내의 타겟 서버의 큐 네임을 발견하고, 만일 처음으로 연결이 이루어지는 경우 타겟 서버와의 연결을 확립할 수 있다. 그 다음, 클라이언트 서버 및 타겟 서버는 이 큐 네임에 따라 연결을 확립하고 확립된 연결을 통해 메시지를 보낼 수 있다.
추가적으로, Tuxedo는 머신들에 걸쳐 메시지들을 교환하기 위해 도메인 내의 각각의 머신에서 브릿지 프로세스를 사용할 수 있다. 브릿지 프로세스를 사용하여, 원격 머신을 타겟팅하는 모든 메시지는 먼저, 로컬 브릿지 프로세스와 관련된 시스템 V IPC 큐에 보내질 수 있다. 그 다음, 로컬 브릿지 프로세스는 네트워크를 통해 원격 타겟 머신에서의 원격 브릿지 프로세스에 이 메시지를 포워딩할 수 있다. 마지막으로, 원격 타겟 머신에서의 원격 브릿지 프로세스는 타겟 시스템 V IPC 큐에 메시지를 보낼 수 있다.
본 발명의 실시예에 따르면, RDMA 큐 라이브러리는 시스템 V 스타일을 이용하여 구현되는 일련의 메시지 전달 API들을 이용하여, 최소의 코드 변경으로 구현될 수 있다. 이 메시지 전달 API들은 시스템 V IPC 큐가 제공하는 것과 유사한 기능들 예컨대, 우선순위를 갖는 큐로부터 메시지들을 수신하는 기능을 제공할 수 있다.
도 3은 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 바이패스 브릿지 프로세스 기능을 셋업하는 것의 예를 도시한다. 도 3에 도시된 바와 같이, 단계(301)에서, 사용자(311)는 먼저, DAEMON 프로세스를 시작할 수 있다. 상기 DAEMOM 프로세스(313)는 Tuxedo 어플리케이션과 같은 트랜잭셔널 어플리케이션과 별개인 어플리케이션일 수 있다. 또한, Tuxedo의 예에서, 적어도 하나의 DAEMON 프로세스는 각각의 Tuxedo 머신에 대해 시작될 수 있다. 그 다음, 단계들(302 및 303)에서, 사용자는 어플리케이션 서버 및 트랜잭셔널 어플리케이션(Tuxedo)을 각각 구성할 수 있다. 마지막으로, 단계(304)에서, 사용자는 바이패스 브릿지 특징을 사용하기 위해 Tuxedo 어플리케이션들을 시작할 수 있고, 단계(305)에서, 사용자는 프로세스들 간에 메시지들을 교환하기 위한 통신을 할 수 있다.
다음의 표 1은 Tuxedo에서 DAEMON 프로그램을 실행하기 위한 여러 가지 서로 다른 옵션들을 도시한다.
옵션들 설명
-i 인피니밴드 인터페이스의 IP 어드레스, 이 IP 어드레스의 값은 RDMADAEMONIP와 동일.
-p 데몬이 요청을 수락하는 포트, 이 포트의 값은 RDMADAEMONPORT와 동일.
-m 데몬을 위해 할당된 공유 메모리의 사이즈, 상기 사이즈의 값은 큐들의 수 * (remotename을 이용하여 연결되는 IP들의 수 +1) * qsize보다 큼.
-k 데몬에 의해 사용될 공유 메모리 키.
예를 들어, DAEMON 프로그램은 다음의 커맨드를 이용하여 시작될 수 있다.
Msgq_daemon -i 192.168.10.4 -p 4040 -m 100000000 -k 9100
추가적으로, 여러 가지 종류의 파라미터들이 메시지 큐를 이용하기 위해 Tuxedo 어플리케이션들에 대해 구성된다. 이 파라미터들은 적어도, 메시지 큐의 파라미터들 및, Tuxedo 어플리케이션들 내의 프로세스들이 DAEMON 프로세스와 통신하기 위해 사용하는 파라미터들을 포함한다. 이 파라미터들은 Tuxedo UBB 파일과 같은 구성 파일의 MACHINES 섹션에 구성될 수 있다. 다음의 표 2는 이러한 환경 변수들(environmental variables)을 도시한다.
UBB 파라미터들 설명
RDMADAEMONIP DAEMON과 통신하기 위한 IP 어드레스.
RDMADAEMONPORT DAEMON과 통신하기 위한 포트.
RDMAQSIZE 메시지 큐의 최대 사이즈, 디폴트 값은 1Mbyte이다. 이 파라미터는 (서버 옵션 "-b"를 이용하여) NACHINES 섹션 또는 SERVERS 섹션에 구성될 수 있다. MACHINES 섹션의 이 파라미터의 값은 모든 큐들에 대한 디폴트 값을 구성한다. SERVERS 섹션의 이 파라미터의 값은 오직 서버에 의해 생성된 큐를 구성한다.
RDMAQENTRIES 메시지 큐의 최대 입력들, 디폴트 값은 1024이다. 이 파라미터는 (서버 옵션 "-c"를 이용하여) NACHINES 섹션 또는 SERVERS 섹션에 구성될 수 있다. MACHINES 섹션의 이 파라미터의 값은 모든 큐들에 대한 디폴트 값을 구성한다. SERVERS 섹션의 이 파라미터의 값은 오직 서버에 의해 생성된 큐를 구성한다.
다음의 목록 1은 예시적인 Tuxedo 구성 파일의 몇몇 섹션들을 포함한다.
[목록 1]
Figure 112014036752259-pct00001

다음의 목록 2는 Tuxedo 구성 파일에서의 RESOURCES 섹션의 예이다.
[목록 2]
Figure 112014036752259-pct00002

상기 예에 도시된 바와 같이, EXALOGIC 및 RDMA는 Tuxedo 구성 파일의 RESOURCES 섹션의 항목 OPTIONS에 추가될 수 있다. 만일, OPTIONS이 RMMA 및 EXALOGIC 모두를 포함하면, 바이패스 특징은 활성화되고, 로컬 브릿지 프로세스들은 바이패스된다. 그렇지 않으면, 바이패스 특징은 턴 오프(turn off)된다. 만일 RDMA 옵션을 인에이블(enable)시킬 필요가 있으면, EXALOGIC 옵션이 먼저 인에이블된다. RESOURCES 섹션의 RDMA 옵션을 인에이블시킨 이후에, MACHINES 섹션의 속성 "TYPE"은 설정될 수 없는 바, 그 이유는 디폴트에 의해 MP 모드 내의 어떤 머신들이 RDMA 특징을 지원하도록 하는 (동일한 타입을 갖는) 엑사로직 머신이기 때문이다.
도 4를 참조하면, 본 발명의 실시예에 다른 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템(400)이 기술될 것이다. 도 4는 시스템(400)의 기능적 구성을 도시한다. 시스템(400)은 제공 유닛(410), 게재 유닛(420), 메모리(430), 메시지 큐 파인더(440) 및 연결 확립 유닛(connection establishment unit)(450)을 포함한다.
제공 유닛은 머신 B(103)과 같은 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버와 관련된 제1 메시지 큐를 제공하도록 구성된다. 게재 유닛(420)은 트랜잭셔널 미들웨어 머신 환경에서 트랜잭셔널 서버에 의해 광고 테이블에 제1 메시지 큐를 게재하도록 구성된다. 메모리(430)는 광고 테이블을 저장하도록 구성된다. 메시지 큐 파인더(440)는 광고 테이블에서 제1 메시지 큐를 발견하도록 구성된다. 연결 확립 유닛(450)은 제1 메시지 큐를 이용하여 제1 트랜잭셔널 머신 내의 트잭셔널 서버와의 연결을 확립하도록 구성된다. 메시지 큐 파인더(440) 및 연결 확립 유닛(450)은 클라이언트 서버에서 실현될 수 있다.
본 발명의 실시예에 따르면, 도 5 및 도 6은 상기 기술된 바와 같은 본 발명의 원리들에 따라 구성된 트랜잭셔널 서버(500) 및 클라이언트 서버(600)의 기능 블록도를 도시한다. 트랜잭셔널 서버 및 클라이언트 서버의 기능 블록들은 본 발명의 원리들을 시행하기 위해 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다. 도 5 및 도 6에 기술된 기능 블록도들이 상기에 기술된 바와 같은 본 발명의 원리들을 구현하기 위해 결합되거나 또는 서브-블록들로 분리될 수 있음이 이 기술분야의 숙련자들에게 이해된다. 그러므로, 본 명세서의 상세한 설명은 본 명세서에 기술된 기능 블록들의 어떤 가능한 결합 또는 분리 또는 추가의 정의를 지지할 수 있다.
도 5에 도시된 바와 같이, 트랜잭셔널 미들웨어 머신 환경에서 제1 트랜잭셔널 머신에서의 사용을 위한 트랜잭셔널 서버(500)는 게재 유닛(510) 및 연결을 확립하는 유닛(establishing connection unit)(520)을 포함한다. 게재 유닛(510)은 트랜잭셔널 미들웨어 머신 환경에서 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버(500)와 관련된 제1 메시지 큐를 광고 테이블에 게재하도록 구성된다. 제2 트랜잭셔널 머신 내의 클라이언트 서버가 광고 테이블에서 제2 메시지 큐를 발견하는 동작을 함에 응답하여, 연결을 확립하는 유닛(520)은 제1 메시지 큐를 사용하여 제2 트랜잭셔널 머신 내의 클라이언트 서버와의 연결을 확립하도록 구성된다.
일부 실시예들에서, 클라이언트 서버는 제2 트랜잭셔널 머신 내의 제2 메시지 큐와 관련되고, 클라이언트 서버는 상기 제2 메시지 큐를 이용하여 메시지들을 수신하는 동작을 한다.
일부 실시예들에서, 클라이언트 서버는 상기 제1 메시지 큐를 사용하여 트랜잭셔널 서버(500)에 직접적으로 서비스 요청 메시지를 보내는 동작을 한다.
일부 실시예들에서, 트랜잭셔널 서버(500)는 제1 통신 유닛(530)을 더 포함한다. 제1 통신 유닛(530)은 제1 메시지 큐로부터 서비스 요청 메시지를 수신하고, 제2 트랜잭셔널 머신 내의 클라이언트 서버와 관련된 제2 메시지 큐를 이용하여 클라이언트 서버에 직접적으로 서비스 응답 메시지를 보내도록 구성된다.
일부 실시예들에서, 상기 트랜잭셔널 미들웨어 머신 환경에서 머신들 간에 메시지를 전달함에 있어서 어떤 단일 포인트 병목도 존재하지 않는다.
일부 실시예들에서, 제1 메시지 큐는 고성능 네트워크 상에서 동작하는 머신들에 걸쳐 데이터를 전달하기 위해 네트워크 프로토콜을 사용한다.
일부 실시예들에서, 네트워크 프로토콜은 IB 네트워크를 위한 RDMA 프로토콜이다.
일부 실시예들에서, 트랜잭셔널 서버(500)는 제2 통신 유닛(540)을 더 포함한다. 제2 통신 유닛(540)은 제1 트랜잭셔널 머신 내의 로컬 클라이언트와의 통신을 위해 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버(500)와 관련된 제2 메시지 큐를 사용하도록 구성된다.
일부 실시예들에서, 제2 메시지 큐는 로컬 브릿지 프로세스와 관련된 IPC 큐이다.
일부 실시예들에서, 트랜잭셔널 서버(400)는 청취 유닛(550)을 더 포함한다. 청취 유닛(550)은 여러 가지 서로 다른 스레드들에서 동시에 제1 메시지 큐 및 제2 메시지 큐 모두를 청취하도록 구성되고, 메시지를 보내기 위해 보다 빠른 라우트를 선택한다.
도 6에 도시된 바와 같이, 트랜잭셔널 미들웨어 머신 환경에서 제2 트랜잭셔널 머신에서의 사용을 위한 클라이언트 서버(600)는 파인딩 유닛(610) 및 연결을 확립하는 유닛(620)을 포함한다. 파인딩 유닛(610)은 트랜잭셔널 미들웨어 머신 환경에서 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버과 관련되고 상기 트랜잭셔널 서버에 의해 광고 테이블에 게재되는 제1 메시지 큐를 발견하도록 구성된다. 연결을 확립하는 유닛(620)은 제1 메시지 큐를 이용하여 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버와의 연결을 확립하도록 구성된다.
일부 실시예들에서, 클라이언트 서버(600)는 제2 트랜잭셔널 머신 내의 클라이언트 서버와 관련된 제2 메시지 큐를 이용하여 메시지들을 수신하도록 구성된 수신 유닛(630)을 더 포함한다. 일부 실시예들에서, 클라이언트 서버(600)는 제1 메시지 큐를 이용하여 트랜잭셔널 서버에 직접적으로 서비스 요청 메시지를 보내도록 구성된 전송 유닛(640)을 더 포함한다.
일부 실시예들에서, 트랜잭셔널 서버는 제1 메시지 큐로부터 서비스 요청 메시지를 수신하고, 제2 트랜잭셔널 머신 내의 클라이언트 서버(600)와 관련된 제2 메시지 큐를 이용하여 클라이언트 서버(600)에 직접적으로 서비스 응답 메시지를 보내는 동작을 한다.
일부 실시예들에서, 상기 트랜잭셔널 미들웨어 머신 환경에서 머신들 간에 메시지들을 전달함에 있어서 어떤 단일 포인트 병목도 존재하지 않는다.
일부 실시예들에서, 제1 메시지 큐는 고성능 네트워크 상에서 동작하는 머신들에 걸쳐 데이터를 전달하기 위해 네트워크 프로토콜을 사용한다.
일부 실시예들에서, 네트워크 프로토콜은 IB 네트워크에 대한 RDMA 프로토콜이다.
일부 실시예들에서, 트랜잭셔널 서버는 상기 제1 트랜잭셔널 머신 내의 로컬 클라이언트와의 통신을 위해 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버와 관련된 제2 메시지 큐를 사용한다.
일부 실시예들에서, 제2 메시지 큐는 로컬 브릿지 프로세스와 관련된 IPC 큐이다.
일부 실시예들에서, 트랜잭셔널 서버는 여러 가지 서로 다른 스레드들에서 동시에 제1 메시지 큐 및 제2 메시지 큐 모두를 청취하고, 메시지를 보내기 위해 보다 빠른 라우트를 선택한다.
본 발명은 본 발명의 교시들에 따라 프로그램된 하나 이상의 프로세서들, 메모리 및/또는 컴퓨터 판독가능 스토리지 매체를 포함하는 하나 이상의 종래의 범용 또는 특수 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로프로세서를 이용하여 통상적으로 구현될 수 있다. 적절한 소프트웨어 코딩은 소프트웨어 기술 분야의 숙련자들에게 분명할 바와 같이, 본 발명의 교시들에 근거하여 숙련된 프로그래머들에 의해 쉽게 준비될 수 있다.
일부 실시예들에서, 본 발명은 본 발명의 프로세스들 중 어느 것을 수행하도록 컴퓨터를 프로그램하는 데 사용될 수 있는 명령어들이 저장된 스토리지 매체 또는 컴퓨터 판독가능 매체(들)인 컴퓨터 프로그램 제품을 포함한다. 스토리지 매체는 이들로만 한정되는 것은 아니지만, 플로피 디스크(disk)들, 광학 디스크(disc)들, DVD, CD-ROM들, 마이크로드라이브 및 자기-광학 디스크(disk)들을 포함하는 어떤 타입의 디스크, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광학 카드들, (분자 메모리 IC들을 포함하는)나노시스템들 또는, 명령어들 및/또는 데이터를 저장하기에 적절한 어떤 타입의 매체 또는 디바이스를 포함할 수 있다.
본 발명의 상기 상세한 설명은 예시 및 설명을 위해 제공되었다. 본 설명은 완전한 것이거나 또는 정확히 개시된 형태들로만 본 발명을 제한하고자 의도된 것이 아니다. 많은 수정들 및 변형들이 이 기술분야의 숙련자에게 분명할 것이다. 상기 변형들은 본 명세서에 개시된 둘 이상의 특징들의 조합을 포함할 수 있다. 위 실시예들은 본 발명의 원리 및 이의 실용적 응용을 가장 잘 설명하기 위해 선택 및 기술되었으며, 그럼으로써 이 기술분야의 숙련자들은 본 발명에 대한 다양한 실시예들 및 고려되는 특별한 사용에 적합한 다양한 수정들을 이해할 수 있다. 본 발명의 범위는 다음의 특허 청구 범위 및 이의 균등물에 의해 한정되어야 함이 의도된다.

Claims (24)

  1. 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달(direct message transfer)을 제공하는 시스템으로서,
    서로 다른 메시징 프로토콜들에 따라 동작하는 제1 메시지 큐와 제2 메시지 큐, 각 큐는 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버와 관련되며, 상기 트랜잭셔널 서버는 하나 이상의 트랜잭셔널 서비스들을 제공하며; 및
    상기 트랜잭셔널 미들웨어 머신 환경에서의 광고 테이블(advertized table)을 포함하며, 상기 트랜잭셔널 서버는 상기 광고 테이블에 상기 하나 이상의 트랜잭셔널 서비스들 및 상기 트랜잭셔널 서버와 관련된 상기 제1 메시지 큐와 상기 제2 메시지 큐를 게재(publish)하도록 동작하며;
    상기 트랜잭셔널 서버는 상기 제1 메시지 큐와 상기 제2 메시지 큐 둘 모두를 청취(listen)하며; 그리고
    제2 트랜잭셔널 머신 내의 클라이언트 서버는
    상기 하나 이상의 트랜잭셔널 서비스를 제공하는 상기 트랜잭셔널 서버에 대한 상기 광고 테이블을 조회(look up)하며,
    상기 광고 테이블에서 상기 트랜잭셔널 서버와 관련된 상기 제1 메시지 큐와 상기 제2 메시지 큐를 발견(find)하며,
    상기 제1 메시지 큐와 상기 제2 메시지 큐 중 어느 것이 더 높은 전달의 기대율을 가질 가능성이 큰 지 결정하고, 그리고
    상기 결정에 기초하여 상기 제1 메시지 큐 또는 상기 제2 메시지 큐 중 어느 하나를 사용하여 상기 제1 트랜잭셔널 머신 내의 상기 트랜잭셔널 서버와의 연결을 확립하고 하나 이상의 메시지들을 직접적으로 교환하도록 동작하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 클라이언트 서버는 상기 제1 메시지 큐 또는 상기 제2 메시지 큐 중 어느 하나를 사용하여 상기 트랜잭셔널 서버에 직접적으로(directly) 서비스 요청 메시지를 보내도록 동작하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  4. 제3항에 있어서,
    상기 트랜잭셔널 서버는 상기 제1 메시지 큐로부터 상기 서비스 요청 메시지를 수신하고, 상기 제2 트랜잭셔널 머신 내의 상기 클라이언트 서버와 관련된 상기 제2 메시지 큐를 이용하여 상기 클라이언트 서버에 직접적으로 서비스 응답 메시지를 보내도록 동작하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  5. 제1항에 있어서,
    상기 트랜잭셔널 미들웨어 머신 환경에서 머신들 간에 메시지들을 전달함에 있어서 어떤 단일 포인트 병목(single-point bottleneck)도 존재하지 않는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  6. 제1항에 있어서,
    상기 제1 메시지 큐는 고성능 네트워크 상에서 동작(running)하는 머신들에 걸쳐 데이터를 전달하기 위해 메시징 프로토콜을 사용하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  7. 제6항에 있어서,
    상기 메시징 프로토콜은 IB(Infiniband) 네트워크에 대한 RDMA(remote direct memory access) 프로토콜인 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  8. 제1항에 있어서,
    상기 트랜잭셔널 서버는 상기 제1 트랜잭셔널 머신 내의 로컬 클라이언트와의 통신을 위해 상기 제2 메시지 큐를 사용하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  9. 제8항에 있어서,
    상기 제2 메시지 큐는 로컬 브릿지 프로세스(local bridge process)와 관련된 IPC(inter-process communication) 큐인 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 시스템.
  10. 삭제
  11. 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법으로서,
    서로 다른 메시징 프로토콜들에 따라 동작하는 제1 메시지 큐와 제2 메시지 큐를 제공하는 단계, 각 큐는 제1 트랜잭셔널 머신 내의 트랜잭셔널 서버와 관련되며, 상기 트랜잭셔널 서버는 하나 이상의 트랜잭셔널 서비스들을 제공하며;
    상기 트랜잭셔널 서버를 통해, 상기 트랜잭셔널 미들웨어 머신 환경에서의 광고 테이블(advertized table)에 상기 하나 이상의 트랜잭셔널 서비스들 및 상기 트랜잭셔널 서버와 관련된 상기 제1 메시지 큐와 상기 제2 메시지 큐를 게재하는 단계;
    상기 트랜잭셔널 서버를 통해, 상기 제1 메시지 큐와 상기 제2 메시지 큐 둘 모두를 청취하는 단계; 그리고
    제2 트랜잭셔널 머신 내의 클라이언트 서버를
    상기 하나 이상의 트랜잭셔널 서비스를 제공하는 상기 트랜잭셔널 서버에 대한 상기 광고 테이블을 조회(look up)하며,
    상기 광고 테이블에서 상기 트랜잭셔널 서버와 관련된 상기 제1 메시지 큐와 상기 제2 메시지 큐를 발견(find)하며,
    상기 제1 메시지 큐와 상기 제2 메시지 큐 중 어느 것이 더 높은 전달의 기대율을 가질 가능성이 큰 지 결정하고, 그리고
    상기 결정에 기초하여 상기 제1 메시지 큐 또는 상기 제2 메시지 큐 중 어느 하나를 사용하여 상기 제1 트랜잭셔널 머신 내의 상기 트랜잭셔널 서버와의 연결을 확립하고 하나 이상의 메시지들을 직접적으로 교환하도록 동작하게 하는 단계를 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  12. 삭제
  13. 제11항에 있어서,
    상기 클라이언트 서버는 상기 제1 메시지 큐를 사용하여 상기 트랜잭셔널 서버에 직접적으로 서비스 요청 메시지를 보내도록 동작하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  14. 제13항에 있어서,
    상기 트랜잭셔널 서버는 상기 제1 메시지 큐로부터 상기 서비스 요청 메시지를 수신하고, 상기 제2 트랜잭셔널 머신 내의 상기 클라이언트 서버와 관련된 제2 메시지 큐를 사용하여 상기 클라이언트 서버에 직접적으로 서비스 응답 메시지를 보내도록 동작하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  15. 제11항에 있어서,
    상기 트랜잭셔널 미들웨어 머신 환경에서 머신들 간에 메시지들을 전달함에 있어서 단일 포인트 병목을 방지하는 것을 더 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  16. 제11항에 있어서,
    상기 제1 메시지 큐는 고성능 네트워크 상에서 동작하는 머신들에 걸쳐 데이터를 전달하기 위해 메시징 프로토콜을 사용하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  17. 제16항에 있어서,
    상기 메시징 프로토콜은 IB 네트워크에 대한 RDMA 프로토콜인 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  18. 제11항에 있어서,
    상기 트랜잭셔널 서버는 상기 제1 트랜잭셔널 머신 내의 상기 트랜잭셔널 서버와 관련된 제2 메시지 큐를 제공하도록 동작하며, 상기 트랜잭셔널 서버는 상기 제1 트랜잭셔널 머신 내의 로컬 클라이언트와의 통신을 위해 제2 메시지 큐를 사용하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  19. 제18항에 있어서,
    상기 제2 메시지 큐는 로컬 브릿지 프로세스와 관련된 IPC 큐인 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  20. 제18항에 있어서,
    상기 트랜잭셔널 서버는 서로 다른 스레드들에서 동시에 상기 제1 메시지 큐 및 상기 제2 메시지 큐 모두를 청취하고, 메시지를 보내기 위해 빠른 라우트를 선택하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 직접 메시지 전달을 제공하는 방법.
  21. 청구항 제11항, 제13항 내지 20항 중 어느 한 항에 기재된 방법을 수행하도록 하나 이상의 컴퓨터 시스템에 의해 실행되기 위한 프로그램 명령어들을 저장하는 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 저장 매체.
  22. 삭제
  23. 삭제
  24. 삭제
KR1020147010310A 2011-09-29 2012-09-24 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 KR101956320B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161541054P 2011-09-29 2011-09-29
US61/541,054 2011-09-29
US13/415,670 2012-03-08
US13/415,670 US9116761B2 (en) 2011-09-29 2012-03-08 System and method for preventing single-point bottleneck in a transactional middleware machine environment
PCT/US2012/056945 WO2013048970A1 (en) 2011-09-29 2012-09-24 System and method for preventing single-point bottleneck in a transactional middleware machine environment

Publications (2)

Publication Number Publication Date
KR20140070611A KR20140070611A (ko) 2014-06-10
KR101956320B1 true KR101956320B1 (ko) 2019-03-08

Family

ID=47993667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147010310A KR101956320B1 (ko) 2011-09-29 2012-09-24 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법

Country Status (6)

Country Link
US (1) US9116761B2 (ko)
EP (1) EP2761453B1 (ko)
JP (1) JP6088528B2 (ko)
KR (1) KR101956320B1 (ko)
CN (1) CN103827830B (ko)
WO (1) WO2013048970A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495325B2 (en) 2013-12-30 2016-11-15 International Business Machines Corporation Remote direct memory access (RDMA) high performance producer-consumer message processing
US9749445B2 (en) * 2014-04-28 2017-08-29 Oracle International Corporation System and method for updating service information for across-domain messaging in a transactional middleware machine environment
CN104539661B (zh) * 2014-12-11 2018-11-06 曙光信息产业(北京)有限公司 消息队列处理方法和装置
US10528759B2 (en) * 2017-10-17 2020-01-07 Aagey Holding, LLC Application programming interface bridge for transporting a local request from a local client system to a target server system, and method thereof
CN113420076A (zh) * 2021-06-02 2021-09-21 浪潮软件股份有限公司 一种政务服务平台的服务调度方法及调度模型系统
CN114553956B (zh) * 2022-01-04 2024-01-09 北京国电通网络技术有限公司 基于uep中间件的数据传输方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002512400A (ja) * 1998-04-22 2002-04-23 ユニシス コーポレイシヨン 第1のトランザクション処理環境におけるコンポーネントを能動化して別の環境におけるリソースにアクセスするための方法および装置
US7281030B1 (en) * 1999-09-17 2007-10-09 Intel Corporation Method of reading a remote memory
JP2010165022A (ja) 2009-01-13 2010-07-29 Ricoh Co Ltd プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
US20100238796A1 (en) * 2009-03-20 2010-09-23 Supalov Alexander V Transparent failover support through pragmatically truncated progress engine and reversed complementary connection establishment in multifabric MPI implementation

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5133053A (en) * 1987-02-13 1992-07-21 International Business Machines Corporation Interprocess communication queue location transparency
FI980985A (fi) 1998-05-04 1999-11-05 Sonera Oy Järjestelmä ja menetelmä palvelupyynnön hajauttamiseksi
US6615282B1 (en) * 1999-05-21 2003-09-02 Intel Corporation Adaptive messaging
US6766358B1 (en) 1999-10-25 2004-07-20 Silicon Graphics, Inc. Exchanging messages between computer systems communicatively coupled in a computer system network
US7171484B1 (en) 2000-05-24 2007-01-30 Krause Michael R Reliable datagram transport service
US6611883B1 (en) 2000-11-16 2003-08-26 Sun Microsystems, Inc. Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US6938138B2 (en) 2001-01-11 2005-08-30 International Business Machines Corporation Method and apparatus for managing access to memory
US7185105B2 (en) 2001-05-11 2007-02-27 Bea Systems, Inc. Application messaging system with flexible message header structure
US7711793B1 (en) 2001-07-17 2010-05-04 Adaptec, Inc. No single point of failure RAID box using SATA drives
US6789143B2 (en) 2001-09-24 2004-09-07 International Business Machines Corporation Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries
US8005966B2 (en) 2002-06-11 2011-08-23 Pandya Ashish A Data processing system using internet protocols
GB0308991D0 (en) * 2003-04-17 2003-05-28 Psion Digital Ltd A data access replication or communication system comprising a distributed software application
US7631314B2 (en) 2003-08-26 2009-12-08 International Business Machines Corporation Method and system for dynamically associating type information and creating and processing meta-data in a service oriented architecture
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US7383290B2 (en) * 2004-03-09 2008-06-03 Hewlett-Packard Development Company, L.P. Transaction processing systems and methods utilizing non-disk persistent memory
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
US20050220128A1 (en) 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
US7574536B2 (en) 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7464189B2 (en) 2005-05-23 2008-12-09 International Business Machines Corporation System and method for creation/deletion of linear block address table entries for direct I/O
US7865684B2 (en) 2005-06-27 2011-01-04 Ab Initio Technology Llc Managing message queues
US8116312B2 (en) 2006-02-08 2012-02-14 Solarflare Communications, Inc. Method and apparatus for multicast packet reception
WO2007149742A2 (en) * 2006-06-19 2007-12-27 Liquid Computing Corporation Methods and systems for reliable data transmission using selective retransmission
US8233380B2 (en) 2006-11-06 2012-07-31 Hewlett-Packard Development Company, L.P. RDMA QP simplex switchless connection
US7895601B2 (en) * 2007-01-10 2011-02-22 International Business Machines Corporation Collective send operations on a system area network
US7864787B2 (en) * 2007-03-26 2011-01-04 Voltaire Ltd. Device, system and method of multicast communication
US8527577B2 (en) 2007-05-22 2013-09-03 Oracle International Corporation System and method for configuration-driven deployment
US7805551B2 (en) * 2007-09-27 2010-09-28 Integrated Device Technology, Inc. Multi-function queue to support data offload, protocol translation and pass-through FIFO
CN101227379B (zh) * 2008-01-25 2012-07-04 中兴通讯股份有限公司 一种实现数据同步的系统和方法
US8312190B2 (en) * 2008-03-06 2012-11-13 Integrated Device Technology, Inc. Protocol translation in a serial buffer
US20100183024A1 (en) 2009-01-21 2010-07-22 Brocade Communications Systems, Inc Simplified rdma over ethernet and fibre channel
JP5541292B2 (ja) * 2009-10-15 2014-07-09 日本電気株式会社 分散システム、通信手段選択方法および通信手段選択プログラム
US8839267B2 (en) 2011-02-21 2014-09-16 Universidade Da Coruna-Otri Method and middleware for efficient messaging on clusters of multi-core processors

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002512400A (ja) * 1998-04-22 2002-04-23 ユニシス コーポレイシヨン 第1のトランザクション処理環境におけるコンポーネントを能動化して別の環境におけるリソースにアクセスするための方法および装置
US7281030B1 (en) * 1999-09-17 2007-10-09 Intel Corporation Method of reading a remote memory
JP2010165022A (ja) 2009-01-13 2010-07-29 Ricoh Co Ltd プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
US20100238796A1 (en) * 2009-03-20 2010-09-23 Supalov Alexander V Transparent failover support through pragmatically truncated progress engine and reversed complementary connection establishment in multifabric MPI implementation

Also Published As

Publication number Publication date
CN103827830B (zh) 2017-06-09
EP2761453B1 (en) 2020-05-20
WO2013048970A1 (en) 2013-04-04
CN103827830A (zh) 2014-05-28
KR20140070611A (ko) 2014-06-10
EP2761453A1 (en) 2014-08-06
US9116761B2 (en) 2015-08-25
US20130086148A1 (en) 2013-04-04
JP2014528611A (ja) 2014-10-27
JP6088528B2 (ja) 2017-03-01

Similar Documents

Publication Publication Date Title
US8756329B2 (en) System and method for parallel multiplexing between servers in a cluster
EP2893689B1 (en) System and method for supporting a scalable message bus in a distributed data grid cluster
US9558048B2 (en) System and method for managing message queues for multinode applications in a transactional middleware machine environment
US9723110B2 (en) System and method for supporting a proxy model for across-domain messaging in a transactional middleware machine environment
KR101956320B1 (ko) 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법
US10826977B2 (en) System and method for supporting asynchronous request/response in a network environment
KR102059121B1 (ko) 트랜잭셔널 미들웨어 머신 환경에서 컴플렉스 메시지 헤더를 지원하기 위한 시스템 및 방법
KR101983331B1 (ko) 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 시스템 및 방법
JP2014528612A5 (ko)

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