KR101983331B1 - 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 시스템 및 방법 - Google Patents
트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 시스템 및 방법 Download PDFInfo
- Publication number
- KR101983331B1 KR101983331B1 KR1020147009727A KR20147009727A KR101983331B1 KR 101983331 B1 KR101983331 B1 KR 101983331B1 KR 1020147009727 A KR1020147009727 A KR 1020147009727A KR 20147009727 A KR20147009727 A KR 20147009727A KR 101983331 B1 KR101983331 B1 KR 101983331B1
- Authority
- KR
- South Korea
- Prior art keywords
- queue
- ipc
- rdma
- transactional
- queues
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 3
- 241000677635 Tuxedo Species 0.000 description 22
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
시스템 및 방법이 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원할 수 있다. 상기 트랜잭셔널 미들웨어 머신 환경은 제1 큐 테이블 및 제2 큐 테이블로 구성된 광고 테이블(advertized table)을 포함하며, 상기 제1 큐 테이블은 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 상기 제2 큐 테이블은 제2 메시지 큐에 관한 어드레스 정보를 저장한다. 상기 광고 테이블은 또한, 트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 제1 트랜잭셔널 클라이언트에 의해 사용되도록 된 것이다. 상기 제1 트랜잭셔널 클라이언트는 상기 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보를 나타내는 키를 상기 제1 큐 테이블에서 찾아 보는 동작을 한다.
Description
저작권 공지
본 명세서에서 개시된 부분은 저작권 보호를 받는 내용을 포함한다. 저작권자는 미국특허상표청의 특허 파일 또는 기록에 나타난 대로 본 특허 문서 또는 특허 개시내용을 어느 누군가가 팩시밀리 재생하는 것은 반대하지 않지만, 그 밖의 모든 것은 저작권으로 보호된다.
기술분야
본 발명은 일반적으로, 미들웨어와 같은 컴퓨터 시스템들 및 소프트웨어에 관한 것이며, 특히 트랜잭셔널 미들웨어 머신 환경(transactional middleware machine environment)을 지원하는 것에 관한 것이다.
트랜잭셔널 미들웨어 시스템 또는 트랜잭션 지향 미들웨어(transaction oriented middleware)는 조직 내에서 다양한 트랜잭션들을 프로세스할 수 있는 기업 어플리케이션 서버들을 포함한다. 고성능 네트워크 및 멀티프로세서 컴퓨터와 같은 새로운 기술들의 발달에 따라, 트랜잭셔널 미들웨어의 성능을 더 향상시킬 필요가 있다. 이러한 것들은 대체로 본 발명의 실시예들이 해결하도록 의도된 영역들이다.
트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 시스템 및 방법이 본 명세서에 개시된다. 상기 트랜잭셔널 미들웨어 머신 환경은 제1 큐 테이블 및 제2 큐 테이블로 구성된 광고 테이블(advertized table)을 포함하며, 상기 제1 큐 테이블은 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 상기 제2 큐 테이블은 제2 메시지 큐에 관한 어드레스 정보를 저장한다. 상기 광고 테이블은 또한, 트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기(locate) 위해 제1 트랜잭셔널 클라이언트에 의해 사용되도록 된 것이다. 상기 제1 트랜잭셔널 클라이언트는 상기 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보를 나타내는 키를 상기 제1 큐 테이블에서 찾아 보는 동작을 한다.
도 1은 본 발명의 실시예에 따른 여러 가지 서로 다른 메시지 큐들을 지원하는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
도 2는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 예시적인 흐름도를 도시한다.
도 3은 본 발명의 실시예에 따른 바이패스 브릿지 특징(bypass bridge feature)이 활성화된 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
도 4는 본 발명의 실시예에 따른 바이패스 브릿지 특징이 활성화되지 않는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
도 5는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경의 기능도를 도시한다.
도 6은 본 발명의 실시예에 따른 트랜잭셔널 서버의 구조를 예시하는 블록도이다.
도 7은 본 발명의 실시예에 따른 트랜잭셔널 클라이언트의 구조를 예시하는 블록도이다.
도 2는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 예시적인 흐름도를 도시한다.
도 3은 본 발명의 실시예에 따른 바이패스 브릿지 특징(bypass bridge feature)이 활성화된 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
도 4는 본 발명의 실시예에 따른 바이패스 브릿지 특징이 활성화되지 않는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
도 5는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경의 기능도를 도시한다.
도 6은 본 발명의 실시예에 따른 트랜잭셔널 서버의 구조를 예시하는 블록도이다.
도 7은 본 발명의 실시예에 따른 트랜잭셔널 클라이언트의 구조를 예시하는 블록도이다.
복수의 프로세서들을 가진 고속 머신들 및 고성능 네트워크 연결의 장점을 취할 수 있는 Tuxedo와 같은 트랜잭셔널 미들웨어 시스템을 지원하기 위한 시스템 및 방법이 본 명세서에 기술된다. 광고 서비스 테이블은 메시지 큐의 위치를 찾기 위해, IPC(Inter-process Communication)를 통하는 대신 RDMA(Remote Direct Memory Access) 프로토콜을 통해 메시지들을 보내고 수신할 수 있는 트랜잭셔널 서버에 의해 사용될 수 있다. 상기 트랜잭셔널 미들웨어 머신 환경은 제1 메시지 큐 및 제2 메시지 큐를 청취(listen)하는 서버를 포함한다. 상기 트랜잭셔널 미들웨어 머신 환경은 제1 큐 테이블 및 제2 큐 테이블로 구성된 광고 테이블을 더 포함하고, 상기 제1 큐 테이블은 상기 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 상기 제2 큐 테이블은 상기 제2 메시지 큐에 관한 어드레스 정보를 저장한다. 상기 광고 테이블은 상기 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 클라이언트에 의해 사용되도록 된 것이다. 상기 제1 큐 테이블은 상기 제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) 네트워크와 같은 고성능 네트워크 연결의 장점을 취할 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 미들웨어 시스템은 예컨대, 브릿지 프로세스를 바이패싱하고 단일 포인트 병목(bottlenck)을 방지하는 로컬 메시지 전달과 같은 방식으로 짧은 레이턴시를 달성하도록 RDMA(Remote Direct Memory Access) 프로토콜을 이용하여 로컬 머신과 원격 머신 사이에서 메시지들을 교환할 수 있다. RDMA 프로토콜을 이용하여 로컬 머신과 원격 머신 사이에서 메시지들을 교환하는 것은 2012년 3월 8일자로 출원된 발명의 명칭이 "SYSTEM AND METHOD FOR PREVENTING SINGLE-POINT BOTTLENECK IN A TRANSACTIONAL MIDDLEWARE MACHINE ENVIRONMENT"인 미국 특허 출원 제13/415,670호에서 개시되며, 상기 출원은 본 명세서에 그 전체가 참조로서 포함된다.
여러 가지 서로 다른 메시지 큐들을 지원
본 발명의 실시예에 따르면, RDMA 메시지 큐 및 시스템 V IPC(Inter-process Communication) 메시지 큐와 같은 여러 가지 서로 다른 메시지 큐들은 머신들 간에 메시지들을 전달할 시 단일 포인트 병목을 방지하기 위해 트랜잭셔널 미들웨어 머신 환경에서 지원될 수 있다.
도 1은 본 발명의 실시예에 따른 여러 가지 서로 다른 메시지 큐들을 지원하는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다. 도 1에 도시된 바와 같이, 트랜잭셔널 서버(106)는 Tuxedo의 게시판(bulletin board)과 같은 광고 테이블(101)에 하나 이상의 트랜잭셔널 서비스들(110)을 게재(publish)할 수 있다. 광고 테이블은 하나 이상의 클라이언트들(104 및 105)에 의해 사용되어, 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾도록 된 것이다.
본 발명의 실시예에 따르면, 광고 서비스 테이블은 IPC 큐 테이블(102)에 더하여 RDMA 큐 테이블(103)을 포함할 수 있다. IPC 큐는 IPC 메시지 큐(107)에 관한 어드레스 정보를 저장하고, 상기 IPC 큐에 트랜잭셔널 서비스의 위치를 찾기 위해 트랜잭셔널 클라이언트 서버(105)에 의해 사용될 수 있다. 추가적으로, RDMA 큐 테이블은 RDMA 메시지 큐(108)에 관한 어드레스 정보를 저장하고, RDMA 큐에 트랜잭셔널 서비스의 위치를 찾기 위해 트랜잭셔널 클라이언트 서버(104)에 의해 사용될 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 서버는 동시에 IPC 큐 및 RDMA 큐를 청취할 수 있다. RDMA 큐 테이블은 RDMA 큐가 시스템 V IPC 큐와 동시에 그리고 일관되게 사용될 수 있도록 구현될 수 있다.
트랜잭셔널 클라이언트는 자신이 필요로 하는 서비스의 위치 정보를 획득하기 위해 광고 테이블의 큐 테이블들을 찾아볼 수 있다. 상기 클라이언트는 먼저, 광고 테이블(101) 예컨대, Tuxedo BB(Bulletin Board)의 IPC 큐 테이블(102)을 찾아 볼 수 있다. 획득된 어드레스 정보가 실제 IPC 큐 어드레스, 예컨대 긍정(positive) 값 111을 갖는 어드레스 1이면, 클라이언트는 요청된 트랜잭셔널 서비스들에 대해 IPC 큐(107)를 사용하여 트랜잭셔널 서버에 액세스하기 위해 이 IPC 큐 어드레스를 사용할 수 있다.
한편, 트랜잭셔널 클라이언트는 실제 IPC 큐 어드레스 대신 키(113)를 획득할 수 있다. 예를 들어, 획득된 어드레스 정보는 부정(negative) 값을 가진 "가짜(faked)" IPC 큐 어드레스일 수 있다. 클라이언트는 RDMA 큐 내의 큐 어드레스(114)에 대한 "가짜" IPC 큐 어드레스를 이용하여 차례로 RDMA 큐 테이블을 찾아볼 수 있다. 그 다음, 클라이언트는 RDMA 큐를 이용하여 요청된 트랜잭셔널 서비스들에 대한 트랜잭셔널 서버에 액세스할 수 있다.
도 2는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 예시적인 흐름도를 도시한다. 도 2에 도시된 바와 같이, 단계(201)에서, 제1 큐 테이블 및 제2 큐 테이블로 구성된 광고 테이블이 제공되고, 여기서 상기 제1 큐 테이블은 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 제2 큐 테이블은 제2 메시지 큐에 관한 어드레스 정보를 저장한다. 그 다음, 단계(202)에서, 광고 테이블은 트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 제1 트랜잭셔널 클라이언트에 의해 사용될 수 있다. 마지막으로, 단계(203)에서, 제1 트랜잭셔널 클라이언트는 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보를 나타내는 키를 제1 큐 테이블에서 찾아볼 수 있다.
Tuxedo
BB
에서
MSGQ
큐 정보를 참조
본 발명의 실시예에 따르면, Tuxedo 어플리케이션은 브릿지 프로세스들을 바이패싱하고 로컬 메시지 전달과 유사한 방식으로 짧은 레이턴시를 달성하기 위해, RDMA 프로토콜의 장점을 취하고 RDMA 큐인 MSGQ 큐를 사용할 수 있다.
바이패스 브릿지 특징이 활성화될 때, Tuxedo 클라이언트는 Tuxedo 서버에 메시지들을 보내는 데 시스템 V IPC 큐 대신 MSGQ 큐를 사용할 수 있다. 바이패스 브릿지 특징이 활성화되지 않을 때, Tuxedo 클라이언트는 Tuxedo 서버에 메시지들을 보내기 위해 MSGQ 큐 대신 시스템 V IPC 큐를 사용할 수 있다.
본 발명의 실시예에 따르면, 여러 가지 버젼들의 Tuxedo는 다중-프로세스 구성에 공존할 수 있다. 바이패스 브릿지 특징이 없는 일 버젼의 Tuxedo로 인스톨된 머신의 프로세스들은 Tuxedo BB의 내부 구조가 변경되지 않은 채로 유지되더라도 문제 없이 바이패스 브릿지 특징을 갖는 버젼의 Tuxedo에서 광고 테이블(또는 게시판)에 액세스할 수 있다.
예를 들어, 바이패스 브릿지 특징이 없는 일 버젼의 Tuxedo에서, 공유 메모리 내의 게시판은 시스템 V IPC 큐 어드레스만을 포함하고, 상기 어드레스의 각각은 8-비트의 "긴" 변수이다. 한편, 바이패스 브릿지 특징을 갖는 버젼의 Tuxedo에서, RDMA MSGQ 어드레스는 128 바이트의 어레이일 수 있다. 따라서, Tuxedo BB가 변경되면, 여러 가지 바이너리들의 게시판 필드들의 오프셋(offset)은 틀릴 수 있고, 바이너리 호환성이 깨지게 된다.
도 3은 본 발명의 실시예에 따른 바이패스 브릿지 특징이 활성화된 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다. 도 3에 도시된 바와 같이, MSGQ 큐 테이블(304)은 바이패스 브릿지 특징이 활성화되면 Tuxedo에 생성될 수 있다. 이 MSGQ 큐 테이블(306 또는 308)의 각각의 입력(entry)은 MSGQ/시스템 V IPC 큐들의 쌍에 관한 정보: {MSGQ 큐 이름, MSGQ 큐 키, 시스템 V IPC 큐 어드레스}를 포함한다.
바이패스 브릿지 특징이 활성화되기 때문에, IPC 큐 테이블(303)은 RDMA 큐의 위치가 RDMA 큐 테이블에 저장됨을 나타내는 가짜 시스템 V IPC 큐 어드레스(305 또는 307)를 포함할 수 있다. 예를 들어, 가짜 시스템 V IPC 큐 어드레스는 음의 값일 수 있다. 그 다음, 클라이언트는 큐 정보를 획득하기 위해 RDMA 큐 테이블을 조사할 수 있다.
도 3에 도시된 바와 같이, 게시판 데이터 구조는 바이패스 브릿지 특징이 구현되는 경우 변경되지 않은 채로 유지될 수 있다. 128-바이트의 MSGQ 어드레스 입력들의 테이블을 포함하는 별개의 섹션이 게시판의 말미(end)에 추가되어 생성될 수 있다. 입력의 색인은 본래의 게시판의 대응하는 입력의 시스템 V IPC 큐 어드레스 필드에 저장될 수 있다. 최대 65536개의 RDMA MSGQ 큐들이 존재하기 때문에, 색인은 16 비트를 필요로 할 수 있고, 다른 16 비트는 이 큐 어드레스가 시스템 V IPC 큐 어드레스인지 RDMA MSGQ 큐 어드레스에 대한 색인인지 구분하기 위해 사용될 수 있다.
도 4는 본 발명의 실시예에 따른 바이패스 브릿지 특징이 활성화되지 않은 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다. 도 4에 도시된 바와 같이, 바이패스 브릿지 특징이 활성화되지 않을 때, 어떤 MSGQ 섹션도 생성되지 않고, 게시판의 내부 구조는 변경되지 않은 채로 유지된다. 따라서, 클라이언트는 바이패스 브릿지 특징이 활성화되지 않을 때 IPC 큐 테이블(402)에서 긍정 시스템 V IPC 큐 어드레스(404 및 406)만을 볼 수 있다. 게시판 내의 큐 어드레스들은 시스템 V IPC 큐 어드레스들을 나타내어서, 바이너리들은 게시판 내의 어떤 필드의 정확한 오프셋들을 가질 수 있다.
본 발명의 실시예에 따르면, 데이터 구조 변경은 고립(isolated)될 수 있어서, 코드 변경은 적은 범위로 제한될 수 있는 바, 그 이유는 광고 서비스 테이블의 데이터 구조는 변경될 필요가 없기 때문이다. 더욱이, C 기반 어플리케이션인 Tuxedo에서 바이패스 브릿지 특징에 의해 도입된 데이터 구조 변경은 여러 가지 버젼의 Tuxedo 간의 상호 운용성을 유지한다.
도 5를 참조하면, 본 발명의 실시예에 따른 시스템(500)이 기술된다. 도 5는 시스템(500)에 의해 실현되는 기능을 나타내는 기능도이다. 시스템(500)은 메모리(500), 로케이터(520) 및 룩업(look-up) 유닛(530)을 포함한다. 메모리(500)는 제1 큐 테이블 및 제2 큐 테이블을 포함하는 광고 테이블을 제공하도록 구성된다. 제1 큐 테이블은 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 제2 큐 테이블은 제2 메시지 큐에 관한 어드레스 정보를 저장한다.
로케이터(520)는 광고 테이블이 트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 제1 트랜잭셔널 클라이언트에 의해 사용되게 하도록 구성된다. 룩업 유닛(530)은 제1 트랜잭셔널 클라이언트가 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보를 나타내는 키를 제1 큐 테이블에서 찾아보게 하도록 구성된다.
도 6은 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 트랜잭셔널 서버(610)의 구조를 예시하는 블록도이다. 트랜잭셔널 서버(610)의 블록들은 본 발명의 원리들을 시행하도록 하드웨어, 소프트웨어 또는, 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다. 도 6에 기술된 블록들이 상술된 바와 같은 본 발명의 원리들을 구현하도록 결합되거나 또는 서브-블록들로 분리될 수 있음이 이 기술분야의 숙련자들에게 이해된다. 그러므로, 본 명세서에서의 설명은 본 명세서에 기술된 기능 블록들의 가능한 결합 또는 분리 또는 추가의 정의를 지지할 수 있다.
도 6에 도시된 바와 같이, 트랜잭셔널 서버(610)는 광고 테이블(미도시)에 하나 이상의 트랜잭셔널 서비스들의 어드레스 정보를 게재하기 위한 게재 유닛(621)을 포함할 수 있다. 상술된 바와 같이, 광고 테이블은 제1 큐 테이블 및 제2 큐 테이블을 포함할 수 있고, 여기서 제1 큐 테이블은 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 제2 큐 테이블은 제2 메시지 큐에 관한 어드레스 정보를 저장한다. 광고 테이블은 하나 이상의 트랜잭셔널 서비스들 중 트랜잭셔널 서비스의 위치를 찾기 위해 제1 트랜잭셔널 클라이언트(미도시)에 의해 사용되도록 된 것이다. 제1 트랜잭셔널 클라이언트는 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보를 나타내는 키를 제1 큐 테이블에서 찾아보는 동작을 할 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 서버(610)는 제1 메시지 큐 및 제2 메시지 큐 모두를 청취하기 위한 청취 유닛(612)을 더 포함할 수 있다.
본 발명의 실시예에 따르면, 제1 트랜잭셔널 클라이언트는 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보에 근거하여, 제2 메시지 큐를 통해 트랜잭셔널 서버에 메시지를 보내는 동작을 할 수 있다.
본 발명의 실시예에 따르면, 광고 테이블은 하나 이상의 트랜잭셔널 서비스들 중 트랜잭셔널 서비스의 위치를 찾기 위해 제2 트랜잭셔널 클라이언트(미도시)에 의해 사용되도록 된 것이다. 제2 트랜잭셔널 클라이언트는 제1 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보에 근거하여, 제1 메시지 큐를 이용하여 로컬 브릿지 프로세스를 통해 트랜잭셔널 서버에 메시지를 보내는 동작을 할 수 있다.
본 발명의 실시예에 따르면, 제1 메시지 큐는 IPC 큐일 수 있고, 제2 메시지 큐는 RDMA 큐일 수 있다. 키는 가짜 IPC 큐 어드레스일 수 있다.
본 발명의 실시예에 따르면, 제2 큐 테이블은 제1 큐 테이블만을 가진 기존 광고 테이블의 말미에 추가될 수 있다.
본 발명의 실시예에 따르면, 제2 큐 테이블의 각각의 입력은 제1 메시지 큐 및 제2 메시지 큐에 대한 정보에 관한 정보를 포함할 수 있다.
도 7은 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 트랜잭셔널 클라이언트(710)의 구조를 예시하는 블록도이다. 트랜잭셔널 클라이언트(710)의 블록들은 본 발명의 원리들을 시행하도록 하드웨어, 소프트웨어 또는, 하드웨어 및 소프트웨어의 조합에 의해 구현될 수 있다. 도 7에 기술된 블록들이 상술된 바와 같은 본 발명의 원리들을 구현하도록 결합되거나 또는 서브-블록들로 분리될 수 있음이 이 기술분야의 숙련자들에게 이해된다. 그러므로, 본 명세서에서의 설명은 본 명세서에 기술된 기능 블록들의 가능한 결합 또는 분리 또는 추가의 정의를 지지할 수 있다.
도 7에 도시된 바와 같이, 트랜잭셔널 서버(710)는 상기 하나 이상의 트랜잭셔널 서비스들 중 트랜잭셔널 서비스의 위치를 찾기 위해 광고 테이블(미도시)을 사용하기 위한 사용 유닛(711)을 포함할 수 있고, 상기 광고 테이블에 하나 이상의 트랜잭셔널 서비스들의 어드레스 정보가 트랜잭셔널 서버(미도시)에 의해 게재된다. 상술된 바와 같이, 광고 테이블은 제1 큐 테이블 및 제2 큐 테이블을 포함할 수 있다. 제1 큐 테이블은 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 제2 큐 테이블은 제2 메시지 큐에 관한 어드레스 정보를 저장한다. 트랜잭셔널 서버(710)는 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보를 나타내는 키를 제1 큐 테이블에서 찾아보기 위한 룩업 유닛(712)을 더 포함할 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 클라이언트(710)는 제2 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보에 근거하여, 제2 메시지 큐를 통해 트랜잭셔널 서버에 메시지를 보내기 위한 전송 유닛(713)을 더 포함할 수 있다.
본 발명의 실시예에 다르면, 트랜잭셔널 클라이언트는 제1 큐 테이블에 저장된 트랜잭셔널 서비스의 어드레스 정보에 근거하여, 제1 메시지 큐를 이용하여 로컬 브릿지 프로세스를 통해 트랜잭셔널 서버에 메시지를 보내기 위한 전송 유닛(713)을 더 포함할 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 서버는 제1 메시지 큐 및 제2 메시지 큐 모두를 청취할 수 있다.
본 발명의 실시예에 따르면, 제1 메시지 큐는 IPC 큐이고 제2 메시지 큐는 RDMA 큐일 수 있다. 키는 가짜 IPC 큐 어드레스일 수 있다.
본 발명의 실시예에 따르면, 제2 큐 테이블은 제1 큐 테이블만을 가진 기존 광고 테이블의 말미에 추가될 수 있다.
본 발명의 실시예에 따르면, 제2 큐 테이블의 각각의 입력은 제1 메시지 큐 및 제2 메시지 큐에 대한 정보에 관한 정보를 포함할 수 있다.
다른 실시예는 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 시스템을 포함하고, 상기 시스템은 제1 큐 테이블 및 제2 큐 테이블로 구성된 광고 테이블을 제공하기 위한 수단과, 여기서 상기 제1 큐 테이블은 제1 메시지 큐에 관한 어드레스 정보를 저장하고, 상기 제2 큐 테이블은 제2 메시지 큐에 관한 어드레스 정보를 저장하며, 광고 테이블이 트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 제1 트랜잭셔널 클라이언트에 의해 사용되도록 하기 위한 수단과, 그리고 상기 제1 트랜잭셔널 클라이언트가 상기 제2 큐 테이블에 저장된 상기 트랜잭셔널 서비스의 상기 어드레스 정보를 나타내는 키를 상기 제1 큐 테이블에서 찾아보게 하기 위한 수단을 포함한다.
다른 실시예는 상기 트랜잭셔널 서버가 상기 제1 메시지 큐 및 상기 제2 메시지 큐 모두를 청취하게 하기 위한 수단을 더 포함하는 시스템을 포함한다.
다른 실시예는 상기 제1 트랜잭셔널 클라이언트가 상기 제2 큐 테이블에 저장된 상기 트랜잭셔널 서비스의 상기 어드레스 정보에 근거하여, 상기 제2 메시지 큐를 통해 상기 트랜잭셔널 서버에 메시지를 보내게 하기 위한 수단을 더 포함하는 시스템을 포함한다.
다른 실시예는 광고 테이블이 트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 제2 트랜잭셔널 클라이언트에 의해 사용되도록 하기 위한 수단을 더 포함하는 시스템을 포함한다.
다른 실시예는 상기 제2 트랜잭셔널 클라이언트가 상기 제1 큐 테이블에 저장된 상기 트랜잭셔널 서비스의 상기 어드레스 정보에 근거하여, 상기 제1 메시지 큐를 사용하여 로컬 브릿지 프로세스를 통해 상기 트랜잭셔널 서버에 메시지를 보내게 하기 위한 수단을 더 포함하는 시스템을 포함한다.
다른 실시예는 시스템을 포함하고, 여기서 상기 제1 메시지 큐는 IPC 큐이고, 상기 제2 메시지 큐는 RDMA 큐이다.
다른 실시예는 시스템을 포함하고, 여기서 상기 키는 가짜 IPC 큐 어드레스이다.
다른 실시예는 상기 제2 큐 테이블이 상기 제1 큐 테이블만을 가진 기존의 광고 테이블의 말미에 추가되게 하기 위한 수단을 더 포함하는 시스템을 포함한다.
다른 실시예는 상기 트랜잭셔널 서버가 상기 광고 테이블에 상기 트랜잭셔널 서비스의 어드레스 정보를 게재하게 하기 위한 수단을 더 포함하는 시스템을 포함한다.
다른 실시예는 상기 제2 큐 테이블의 각각의 입력이 상기 제1 메시지 큐 및 상기 제2 메시지 큐에 대한 정보에 관한 정보를 포함하게 하기 위한 수단을 더 포함하는 시스템을 포함한다.
본 발명은 본 발명의 교시들에 따라 프로그램된 하나 이상의 프로세서들, 메모리 및/또는 컴퓨터 판독가능 스토리지 매체를 포함하는 하나 이상의 종래의 범용 또는 특수 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로프로세서를 이용하여 통상적으로 구현될 수 있다. 적절한 소프트웨어 코딩은 소프트웨어 기술 분야의 숙련자들에게 분명할 바와 같이, 본 발명의 교시들에 근거하여 숙련된 프로그래머들에 의해 쉽게 준비될 수 있다.
일부 실시예들에서, 본 발명은 본 발명의 프로세스들 중 어느 것을 수행하도록 컴퓨터를 프로그램하는 데 사용될 수 있는/명령어들이 저장된 스토리지 매체 또는 컴퓨터 판독가능 매체(들)인 컴퓨터 프로그램 제품을 포함한다. 스토리지 매체는 이들로만 한정되는 것은 아니지만, 플로피 디스크(disk)들, 광학 디스크(disc)들, DVD, CD-ROM들, 마이크로드라이브 및 자기-광학 디스크(disk)들을 포함하는 어떤 타입의 디스크, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광학 카드들, (분자 메모리 IC들을 포함하는)나노시스템들 또는, 명령어들 및/또는 데이터를 저장하기에 적절한 어떤 타입의 매체 또는 디바이스를 포함할 수 있다.
본 발명의 상기 상세한 설명은 예시 및 설명을 위해 제공되었다. 본 설명은 완전한 것이거나 또는 정확히 개시된 형태들로만 본 발명을 제한하고자 의도된 것이 아니다. 많은 수정들 및 변형들이 이 기술분야의 숙련자에게 분명할 것이다. 위 실시예들은 본 발명의 원리 및 이의 실용적 응용을 가장 잘 설명하기 위해 선택 및 기술되었으며, 그럼으로써 이 기술분야의 숙련자들은 본 발명에 대한 다양한 실시예들 및 고려되는 특별한 사용에 적합한 다양한 수정들을 이해할 수 있다. 본 발명의 범위는 다음의 특허 청구 범위 및 이의 균등물에 의해 한정되어야 함이 의도된다.
Claims (21)
- 트랜잭셔널 미들웨어 머신 환경(transactional middleware machine environment)에서 IPC(Inter-process Communication) 큐 및 RDMA(Remote Direct Memory Access) 큐를 지원하기 위한 시스템으로서,
하나 이상의 마이크로프로세서상에서 동작하는 복수의 트랜잭셔널 클라이언트들 및 하나 이상의 마이크로프로세서상에서 동작하는 복수의 트랜잭셔널 서버들에 의해 액세스 가능한 컴퓨터 메모리; 및
IPC 큐 테이블 및 RDMA 큐 테이블을 포함하는, 상기 컴퓨터 메모리 내의 광고 테이블(advertized table)을 포함하고,
상기 IPC 큐 테이블은, IPC 메시지들에 대한 IPC 메시지 큐에 관한 IPC 큐 어드레스들을 저장하고,
상기 RDMA 큐 테이블은, RDMA 메시지들에 대한 RDMA 메시지 큐에 관한 RDMA 큐 어드레스들을 저장하고,
상기 IPC 큐 어드레스들은 상기 RDMA 큐 어드레스들과 상이한 포맷이고,
IPC 큐 테이블은 또한 RDMA 큐 어드레스들을 나타내는 키들을 상기 RDMA 큐 테이블에 저장하고,
트랜잭셔널 서버의 트랜잭셔널 서비스에 액세스하기 위한 제1 트랜잭셔널 클라이언트로부터의 IPC 요청에 응답하여, 상기 IPC 큐 테이블은 상기 IPC 큐 어드레스들 중 하나 또는 상기 키들 중 하나를 제공하며,
IPC 큐 어드레스가 상기 IPC 큐 테이블에 의해 제공되면, 상기 트랜잭셔널 클라이언트는 상기 트랜잭셔널 서버에 액세스하기 위해 IPC 큐 어드레스를 사용할 수 있고,
키가 상기 IPC 큐 테이블에 의해 제공되면, 상기 클라이언트는 상기 RDMA 큐 테이블의 RDMA 큐 어드레스를 식별하기 위해 상기 키를 사용할 수 있고 그리고 이후 상기 트랜잭셔널 서버에 액세스하기 위해 상기 식별된 RDMA 큐 어드레스를 사용할 수 있는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제1항에 있어서,
상기 트랜잭셔널 서버는 상기 IPC 큐 및 상기 RDMA 큐 모두를 청취(listen)하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제1항에 있어서,
상기 제1 트랜잭셔널 클라이언트는 상기 RDMA 큐 테이블에 저장된 상기 트랜잭셔널 서비스의 어드레스 정보에 근거하여, 상기 RDMA 메시지 큐를 통해 상기 트랜잭셔널 서버에 메시지를 보내는 동작을 하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제1항에 있어서,
상기 광고 테이블은 트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 제2 트랜잭셔널 클라이언트에 의해 사용되는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제4항에 있어서,
상기 제2 트랜잭셔널 클라이언트는 상기 IPC 큐 테이블에 저장된 상기 트랜잭셔널 서비스의 어드레스 정보에 근거하여, 상기 IPC 메시지 큐를 이용하여 로컬 브릿지 프로세스(local bridge process)를 통해 상기 트랜잭셔널 서버에 메시지를 보내는 동작을 하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제1항에 있어서,
상기 키들은 음의 값들을 갖는 IPC 큐 어드레스들인 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제6항에 있어서,
상기 키는 가짜(faked) IPC 큐 어드레스인 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제1항에 있어서,
상기 RDMA 큐 테이블은 상기 IPC 큐 테이블의 말미(end)에 추가되는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제1항에 있어서,
상기 트랜잭셔널 서버는 상기 광고 테이블에 상기 트랜잭셔널 서비스의 어드레스 정보를 게재(publish)하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 제1항에 있어서,
상기 RDMA 큐 테이블의 각각의 입력은 상기 IPC 메시지 큐 및 상기 RDMA 메시지 큐에 대한 정보를 포함하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 시스템. - 트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법으로서,
IPC 큐 테이블 및 RDMA 큐 테이블로 구성된 광고 테이블을 제공하는 단계 -
상기 IPC 큐 테이블은, IPC 메시지들에 대한 IPC 메시지 큐에 관한 IPC 큐 어드레스들을 저장하고,
상기 RDMA 큐 테이블은, RDMA 메시지들에 대한 RDMA 메시지 큐에 관한 RDMA 큐 어드레스들을 저장하고,
상기 IPC 큐 어드레스들은 상기 RDMA 큐 어드레스들과 상이한 포맷이고,
IPC 큐 테이블은 또한 RDMA 큐 어드레스들을 나타내는 키들을 상기 RDMA 큐 테이블에 저장하며 - 와; 그리고
트랜잭셔널 서버의 트랜잭셔널 서비스에 액세스하기 위한 제1 트랜잭셔널 클라이언트로부터의 IPC 요청에 응답하여, 상기 IPC 큐 테이블로부터 상기 IPC 큐 어드레스들 중 하나 또는 상기 키들 중 하나를 제공하는 단계를 포함하고,
IPC 큐 어드레스가 상기 IPC 큐 테이블에 의해 제공되면, 상기 트랜잭셔널 클라이언트는 상기 트랜잭셔널 서버에 액세스하기 위해 IPC 큐 어드레스를 사용할 수 있고,
키가 상기 IPC 큐 테이블에 의해 제공되면, 상기 클라이언트는 상기 RDMA 큐 테이블의 RDMA 큐 어드레스를 식별하기 위해 상기 키를 사용할 수 있고 그리고 이후 상기 트랜잭셔널 서버에 액세스하기 위해 상기 식별된 RDMA 큐 어드레스를 사용할 수 있는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제11항에 있어서,
상기 트랜잭셔널 서버가 상기 IPC 메시지 큐 및 상기 RDMA 메시지 큐 모두를 청취하게 하는 것을 더 포함하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제11항에 있어서,
상기 제1 트랜잭셔널 클라이언트가 상기 RDMA 큐 테이블에 저장된 상기 트랜잭셔널 서비스의 RDMA 어드레스에 근거하여, 상기 RDMA 메시지 큐를 통해 상기 트랜잭셔널 서버에 메시지를 보내도록 하는 것을 더 포함하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제11항에 있어서,
트랜잭셔널 서버에 의해 제공되는 트랜잭셔널 서비스의 위치를 찾기 위해 상기 광고 테이블이 제2 트랜잭셔널 클라이언트에 의해 사용되게 하는 것을 더 포함하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제14항에 있어서,
상기 제2 트랜잭셔널 클라이언트가 상기 IPC 큐 테이블에 저장된 상기 트랜잭셔널 서비스의 어드레스 정보에 근거하여, 상기 IPC 메시지 큐를 이용하여 로컬 브릿지 프로세스를 통해 상기 트랜잭셔널 서버에 메시지를 보내도록 하는 것을 더 포함하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제11항에 있어서,
상기 키들은 음의 값들을 갖는 IPC 큐 어드레스들인 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제16항에 있어서,
상기 키는 가짜 IPC 큐 어드레스인 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제11항에 있어서,
상기 IPC 큐 테이블을 포함하는 기존 광고 테이블의 말미에 상기 RDMA 큐 테이블을 추가함으로써 상기 광고 테이블을 생성하는 것을 더 포함하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 제11항에 있어서,
상기 트랜잭셔널 서버가 상기 광고 테이블에 상기 트랜잭셔널 서비스의 어드레스 정보를 게재하도록 하는 것을 더 포함하는 것을 특징으로 하는
트랜잭셔널 미들웨어 머신 환경에서 IPC 큐 및 RDMA 큐를 지원하기 위한 방법. - 삭제
- 트랜잭셔널 미들웨어 머신 환경에서 상이한 메시지 큐들을 지원하기 위한 명령어들의 세트를 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어들은 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 단계들을 수행하도록 하고, 상기 단계들은,
IPC 큐 테이블 및 RDMA 큐 테이블로 구성된 광고 테이블을 제공하는 단계 -
상기 IPC 큐 테이블은, IPC 메시지들에 대한 IPC 메시지 큐에 관한 IPC 큐 어드레스들을 저장하고,
상기 RDMA 큐 테이블은, RDMA 메시지들에 대한 RDMA 메시지 큐에 관한 RDMA 큐 어드레스들을 저장하고,
상기 IPC 큐 어드레스들은 상기 RDMA 큐 어드레스들과 상이한 포맷이고,
IPC 큐 테이블은 또한 RDMA 큐 어드레스들을 나타내는 키들을 상기 RDMA 큐 테이블에 저장하고 - 와; 그리고
트랜잭셔널 서버의 트랜잭셔널 서비스에 액세스하기 위한 제1 트랜잭셔널 클라이언트로부터의 IPC 요청에 응답하여, 상기 IPC 큐 테이블로부터 상기 IPC 큐 어드레스들 중 하나 또는 상기 키들 중 하나를 제공하는 단계를 포함하며,
IPC 큐 어드레스가 상기 IPC 큐 테이블에 의해 제공되면, 상기 트랜잭셔널 클라이언트는 상기 트랜잭셔널 서버에 액세스하기 위해 IPC 큐 어드레스를 사용할 수 있고,
키가 상기 IPC 큐 테이블에 의해 제공되면, 상기 클라이언트는 상기 RDMA 큐 테이블의 RDMA 큐 어드레스를 식별하기 위해 상기 키를 사용할 수 있고 그리고 이후 상기 트랜잭셔널 서버에 액세스하기 위해 상기 식별된 RDMA 큐 어드레스를 사용할 수 있는 것을 특징으로 하는
비 일시적 컴퓨터 판독 가능 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161541055P | 2011-09-29 | 2011-09-29 | |
US61/541,055 | 2011-09-29 | ||
US13/415,700 US8832217B2 (en) | 2011-09-29 | 2012-03-08 | System and method for supporting different message queues in a transactional middleware machine environment |
US13/415,700 | 2012-03-08 | ||
PCT/US2012/056950 WO2013048971A1 (en) | 2011-09-29 | 2012-09-24 | System and method for supporting different message queues in a transactional middleware machine environment |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140069143A KR20140069143A (ko) | 2014-06-09 |
KR101983331B1 true KR101983331B1 (ko) | 2019-05-28 |
Family
ID=47993701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147009727A KR101983331B1 (ko) | 2011-09-29 | 2012-09-24 | 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 시스템 및 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8832217B2 (ko) |
EP (1) | EP2761822B1 (ko) |
JP (1) | JP6151699B2 (ko) |
KR (1) | KR101983331B1 (ko) |
CN (1) | CN103843290B (ko) |
IN (1) | IN2014CN02102A (ko) |
WO (1) | WO2013048971A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516905B (zh) * | 2013-09-24 | 2015-08-19 | 北京奇虎科技有限公司 | 服务定位方法和服务定位器 |
US9723110B2 (en) * | 2014-04-28 | 2017-08-01 | Oracle International Corporation | System and method for supporting a proxy model for across-domain messaging in a transactional middleware machine environment |
CN108762945A (zh) * | 2018-05-14 | 2018-11-06 | 浪潮通用软件有限公司 | 一种支持多种消息队列的实现方法 |
CN113626221B (zh) * | 2021-08-10 | 2024-03-15 | 迈普通信技术股份有限公司 | 一种消息入队方法及装置 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1124945A (ja) * | 1997-06-30 | 1999-01-29 | Nec Corp | 複数プロセス間におけるデータ転送方法及び方式 |
FI980985A (fi) | 1998-05-04 | 1999-11-05 | Sonera Oy | Järjestelmä ja menetelmä palvelupyynnön hajauttamiseksi |
JP2000020490A (ja) * | 1998-07-01 | 2000-01-21 | Fujitsu Ltd | 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体 |
US6615282B1 (en) | 1999-05-21 | 2003-09-02 | Intel Corporation | Adaptive messaging |
US7281030B1 (en) * | 1999-09-17 | 2007-10-09 | Intel Corporation | Method of reading a remote memory |
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 |
US7376755B2 (en) * | 2002-06-11 | 2008-05-20 | Pandya Ashish A | TCP/IP processor and engine using RDMA |
US7418505B2 (en) * | 2003-05-26 | 2008-08-26 | Ewha University Industry Collaboration Foundation | IP address lookup using either a hashing table or multiple hash functions |
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 |
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 |
KR100978083B1 (ko) * | 2006-01-31 | 2010-08-26 | 후지쯔 가부시끼가이샤 | 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 |
US8116312B2 (en) | 2006-02-08 | 2012-02-14 | Solarflare Communications, Inc. | Method and apparatus for multicast packet reception |
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 |
JP2010165022A (ja) * | 2009-01-13 | 2010-07-29 | Ricoh Co Ltd | プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体 |
US20100183024A1 (en) | 2009-01-21 | 2010-07-22 | Brocade Communications Systems, Inc | Simplified rdma over ethernet and fibre channel |
US8305883B2 (en) * | 2009-03-20 | 2012-11-06 | Intel Corporation | Transparent failover support through pragmatically truncated progress engine and reversed complementary connection establishment in multifabric MPI implementation |
WO2011045919A1 (ja) | 2009-10-15 | 2011-04-21 | 日本電気株式会社 | 分散システム、通信手段選択方法および通信手段選択プログラム |
US8839267B2 (en) * | 2011-02-21 | 2014-09-16 | Universidade Da Coruna-Otri | Method and middleware for efficient messaging on clusters of multi-core processors |
-
2012
- 2012-03-08 US US13/415,700 patent/US8832217B2/en active Active
- 2012-09-24 KR KR1020147009727A patent/KR101983331B1/ko active IP Right Grant
- 2012-09-24 EP EP12835235.8A patent/EP2761822B1/en active Active
- 2012-09-24 WO PCT/US2012/056950 patent/WO2013048971A1/en active Application Filing
- 2012-09-24 JP JP2014533633A patent/JP6151699B2/ja active Active
- 2012-09-24 CN CN201280047477.4A patent/CN103843290B/zh active Active
- 2012-09-24 IN IN2102CHN2014 patent/IN2014CN02102A/en unknown
Also Published As
Publication number | Publication date |
---|---|
JP2014528612A (ja) | 2014-10-27 |
EP2761822A1 (en) | 2014-08-06 |
WO2013048971A1 (en) | 2013-04-04 |
IN2014CN02102A (ko) | 2015-05-29 |
CN103843290A (zh) | 2014-06-04 |
US8832217B2 (en) | 2014-09-09 |
KR20140069143A (ko) | 2014-06-09 |
JP6151699B2 (ja) | 2017-06-21 |
US20130086196A1 (en) | 2013-04-04 |
CN103843290B (zh) | 2017-08-04 |
EP2761822B1 (en) | 2020-03-11 |
EP2761822A4 (en) | 2015-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10091333B2 (en) | System and method for supporting a bypass-domain model for across-domain messaging in a transactional middleware machine environment | |
US20130086199A1 (en) | System and method for managing message queues for multinode applications in a transactional middleware machine environment | |
US8756329B2 (en) | System and method for parallel multiplexing between servers in a cluster | |
KR102340296B1 (ko) | 트랜잭셔널 환경에서 리소스 관리자(rm) 인스턴스 인지에 기초하여 공통 트랜잭션 식별자(xid) 최적화 및 트랜잭션 친화성을 지원하기 위한 시스템 및 방법 | |
US10331613B2 (en) | Methods for enabling direct memory access (DMA) capable devices for remote DMA (RDMA) usage and devices therof | |
KR102059121B1 (ko) | 트랜잭셔널 미들웨어 머신 환경에서 컴플렉스 메시지 헤더를 지원하기 위한 시스템 및 방법 | |
KR101956320B1 (ko) | 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법 | |
KR101983331B1 (ko) | 트랜잭셔널 미들웨어 머신 환경에서 여러 가지 서로 다른 메시지 큐들을 지원하기 위한 시스템 및 방법 | |
WO2021198803A1 (en) | Multi-level cache-mesh-system for multi-tenant serverless environments | |
JP2014528612A5 (ko) | ||
CN116367092A (zh) | 一种通信方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |