KR101987960B1 - 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법 - Google Patents

트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101987960B1
KR101987960B1 KR1020147008447A KR20147008447A KR101987960B1 KR 101987960 B1 KR101987960 B1 KR 101987960B1 KR 1020147008447 A KR1020147008447 A KR 1020147008447A KR 20147008447 A KR20147008447 A KR 20147008447A KR 101987960 B1 KR101987960 B1 KR 101987960B1
Authority
KR
South Korea
Prior art keywords
transactional
middleware machine
service response
response time
transactional middleware
Prior art date
Application number
KR1020147008447A
Other languages
English (en)
Other versions
KR20140074320A (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 KR20140074320A publication Critical patent/KR20140074320A/ko
Application granted granted Critical
Publication of KR101987960B1 publication Critical patent/KR101987960B1/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/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/505Allocation 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 the load
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level

Abstract

시스템 및 방법이 복수의 트랜잭셔널 미들웨어 머신들을 갖는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱(load balancing)을 지원할 수 있다. 서비스 응답 시간 테이블이 트랜잭셔널 미들웨어 머신 환경에서의 각각의 트랜잭셔널 미들웨어 머신 상에 유지될 수 있고, 여기서 상기 서비스 응답 시간 테이블은 서비스 요청에 대한 라우팅 결정을 내리기 위해 상기 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용되도록 된 것이다. 상기 트랜잭셔널 미들웨어 머신 환경은 복수의 동기화 서버(synchronization server)들을 더 포함하고, 각각의 상기 동기화 서버는 상기 트랜잭셔널 미들웨어 머신 환경에서의 트랜잭셔널 미들웨어 머신과 관련된다. 상기 복수의 동기화 서버들은 상기 트랜잭셔널 미들웨어 머신 환경의 각각의 상기 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 주기적으로 동기화시키는 동작을 한다.

Description

트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR SUPPORTING ACCURATE LOAD BALANCING IN A TRANSACTIONAL MIDDLEWARE MACHINE ENVIRONMENT}
저작권 공지
본 명세서에서 개시된 부분은 저작권 보호를 받는 내용을 포함한다. 저작권자는 미국특허상표청의 특허 파일 또는 기록에 나타난 대로 본 특허 문서 또는 특허 개시내용을 어느 누군가가 팩시밀리 재생하는 것은 반대하지 않지만, 그 밖의 모든 것은 저작권으로 보호된다.
기술분야
본 발명은 일반적으로, 미들웨어와 같은 컴퓨터 시스템들 및 소프트웨어에 관한 것이며, 특히 트랜잭셔널 미들웨어 머신 환경(transactional middleware machine environment)을 지원하는 것에 관한 것이다.
트랜잭셔널 미들웨어 시스템 또는 트랜잭션 지향식 미들웨어(transaction oriented middleware)는 조직 내에서 다양한 트랜잭션들을 프로세스할 수 있는 기업 어플리케이션 서버들을 포함한다. 고성능 네트워크 및 멀티프로세서 컴퓨터와 같은 새로운 기술들의 발달에 따라, 트랜잭셔널 미들웨어의 성능을 더 향상시킬 필요가 있다. 이러한 것들은 대체로 본 발명의 실시예들이 해결하도록 의도된 영역들이다
복수의 트랜잭셔널 미들웨어 머신들을 갖는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱(load balancing)을 지원하기 위한 시스템 및 방법이 본 명세서에 기술된다. 서비스 응답 시간 테이블이 트랜잭셔널 미들웨어 머신 환경에서의 각각의 트랜잭셔널 미들웨어 머신 상에 유지될 수 있고, 여기서 상기 서비스 응답 시간 테이블은 서비스 요청에 대한 라우팅 결정을 내리기 위해 상기 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용되도록 된 것이다. 상기 트랜잭셔널 미들웨어 머신 환경은 복수의 동기화 서버(synchronization server)들을 더 포함하고, 각각의 상기 동기화 서버는 상기 트랜잭셔널 미들웨어 머신 환경에서의 트랜잭셔널 미들웨어 머신과 관련된다. 상기 복수의 동기화 서버들은 상기 트랜잭셔널 미들웨어 머신 환경에서의 각각의 상기 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 주기적으로 동기화시키는 동작을 한다.
도 1은 본 발명의 실시예에 따른 정확한 로드 밸런싱을 지원하는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
도 2는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 예시적인 흐름도를 도시한다.
도 3은 본 발명의 실시예에 따른 정확한 로드 밸런싱을 지원하는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다.
복수의 프로세서들을 가진 고속 머신들 및 고성능 네트워크 연결의 장점을 취할 수 있는 트랜잭셔널 미들웨어 시스템을 지원하기 위한 시스템 및 방법이 본 명세서에 기술된다. 동적 요청 브로커(dynamic request broker)가 정적 로드 대신 동적 로드에 근거하여 복수-머신 환경들에서 트랜잭셔널 서비스들에 대한 정확한 로드 밸런싱을 수행할 수 있다. 트랜잭셔널 미들웨어 머신 환경은 복수의 트랜잭셔널 미들웨어 머신들을 포함할 수 있고, 여기서 각각의 상기 트랜잭셔널 미들웨어 머신은 서비스 요청에 대한 라우팅 결정을 내리기 위해 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용되도록 된 서비스 응답 시간 테이블을 유지한다. 트랜잭셔널 미들웨어 머신 환경은 복수의 동기화 서버들을 더 포함할 수 있고, 여기서 각각의 상기 동기화 서버는 상기 트랜잭셔널 미들웨어 머신 환경에서의 상기 트랜잭셔널 미들웨어 머신과 관련된다. 상기 복수의 동기화 서버들은 상기 복수의 트랜잭셔널 미들웨어 머신들 상의 서비스 응답 시간 테이블들을 주기적으로 동기화시키는 동작을 한다.
본 발명의 실시예에 따르면, 시스템은, 신속하게 준비될 수 있고 수요에 따라 스케일링될 수 있는 대량의 병렬 인-메모리 그리드(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) 네트워크와 같은 고성능 네트워크 연결의 장점을 취할 수 있다.
복수- 머신 환경들에서의 정확한 로드 밸런싱
본 발명의 실시예에 따르면, 엑사로직 미들웨어 머신 환경과 같은 복수-머신 미들웨어 서버 환경은 집중적인 상호-머신 호출(intensive cross-machine call)들을 할 수 있다. 머신들 간의 로드 정보는 복수-머신 환경들에서 보다 정확한 로드 밸런싱을 위해 동기화될 수 있다. 동적 로드는 Tuxedo 서비스들과 같은 트랜잭셔널 서비스들에 대해 도입될 수 있다. 로드 밸런싱은 정적 로드 대신 동적 로드에 근거하여 수행될 수 있다.
도 1은 본 발명의 실시예에 따른 정확한 로드 밸런싱을 지원하는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다. 도 1에 도시된 바와 같이, 트랜잭셔널 미들웨어 머신 환경은 복수의 트랜잭셔널 미들웨어 머신들, 예컨대 머신 A(101) 및 머신 B(102)를 포함한다. 각각의 트랜잭셔널 미들웨어 머신은 각각의 머신에 대한 서비스 응답 시간 정보를 포함하는 서비스 응답 시간 테이블을 유지할 수 있다. 예를 들어, 머신 A는 서비스 응답 시간 테이블 즉, 서비스 응답 시간 테이블 A(103)을 포함하고, 머신 B는 서비스 응답 시간 테이블 즉, 서비스 응답 시간 테이블 B(104)를 포함한다. 예를 들어, 서비스 응답 시간 테이블 A(103)는 머신 A의 스토리지 또는 메모리에 저장될 수 있고, 서비스 응답 시간 테이블 B(104)은 머신 B의 스토리지 또는 메모리에 저장될 수 있다.
추가적으로, 각각의 트랜잭셔널 미들웨어 머신은 트랜잭셔널 미들웨어 머신 환경에서의 다른 트랜잭셔널 미들웨어 머신들과 로드 정보를 동기화시키는 역할을 하는 동기화 서버를 포함할 수 있다. 도 1에 도시된 바와 같은 예에서, 머신 A는 동기화 서버 즉, Sync 서버 A(105)를 포함하고, 머신 B는 동기화 서버 즉, Sync 서버 B(106)를 포함한다. Sync 서버 A 및 Sync 서버 B는 머신 A 및 머신 B 상의 로드 정보를 동기화시키기 위해 서로와 직접적으로 통신할 수 있다. Sync 서버 A(105) 및 Sync 서버 B(106)는 하드웨어 컴퓨트 노드들일 수 있다. Sync 서버 A(105)는 머신 A의 랙(rack)에 제공될 수 있고, Sync 서버 B(106)는 머신 B의 랙에 제공될 수 있다.
또한 도 1에 도시된 바와 같이, 트랜잭셔널 미들웨어 머신 환경은 복수의 트랜잭셔널 도메인들, 예컨대 도메인 A(111) 및 도메인 B(112)를 지원한다. 도메인 A는 두 개의 트랜잭셔널 어플리케이션 서버들 즉, 머신 A 상의 서버 A(109) 및 머신 B 상의 서버 B(110)를 포함한다. 서버 A는 두 개의 트랜잭셔널 서비스들 즉, 서비스 I(121) 및 서비스 II(123)를 제공하고, 서버 B 또한, 두 개의 트랜잭셔널 서비스들 즉, 서비스 I(122) 및 서비스 III(124)를 제공한다. 도메인 B는 단 하나의 트랜잭셔널 서비스 즉, 서비스 III(126)를 제공하는 하나의 트랜잭셔널 어플리케이션 서버 즉, 서버 C(120)를 포함한다. 서버 C(120)는 하드웨어 컴퓨트 노드들일 수 있다. 서버 C(120)는 서버 B의 랙에 제공될 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 미들웨어 머신 상의 클라이언트는 트랜잭셔널 플랫폼에 의해 제공되는 서비스를 요청하는 것에 대한 라우팅 결정들을 내리기 위해 트랜잭셔널 미들웨어 머신 상의 서비스 응답 시간 테이블을 사용할 수 있다. 클라이언트는 어느 트랜잭셔널 서버가 트랜잭셔널 서비스를 최단 서비스 응답 시간으로 제공하는지 결정하기 위해 서비스 응답 시간 테이블을 사용할 수 있다.
예를 들어, 클라이언트 A(107)가 도메인 A의 서비스 I의 위치를 찾기(locate) 원할 때, 클라이언트 A는 서비스 요청 메시지를 보낼 서버를 결정하기 위해 머신 A 상의 서비스 응답 시간 테이블 A(103)을 찾아볼 수 있다. 그 다음, 클라이언트 A는 서비스 응답 시간 테이블 A(103)에 저장된 서버 A 및 서버 B의 현재의 서비스 응답 시간에 근거하여 서버 A 및 서버 B 중에서 빠른 서버를 선택할 수 있다.
본 발명의 실시예에 따르면, 트랜잭셔널 어플리케이션 서버가 서비스를 수행했을 때마다, 그 트랜잭셔널 어플리케이션 서버를 포함하는 트랜잭셔널 미들웨어 머신은 상기 머신 상의 서비스 응답 시간 테이블을 갱신할 수 있다. 머신은 다양한 서버들에 대한 서비스 응답 정보를 갱신하기 위해 동기화 서버들을 사용하여 상기 서비스 응답 시간 테이블을 다른 머신들 상의 다른 서비스 응답 시간 테이블들과 주기적으로 동기화시킬 수 있다. 상기 예에서, 머신 A(101) 상의 서버 A(109)가 클라이언트 A(107)에게 서비스 I(121)를 제공하는 것을 완료할 때, 머신 A(101) 상의 Sync 서버 A(105)는 이에 상응하게 서비스 응답 시간 테이블 A(103)을 갱신할 수 있다.
본 발명의 실시예에 따르면, 동기화 서버들을 통해 서비스 응답 정보를 동기화시키는 대신에, 트랜잭셔널 어플리케이션 서버는 클라이언트에 리턴되는 서비스 응답 메시지에 서비스 응답 시간을 내장(embed)시킬 수 있다. 이 시나리오에서, 클라이언트는 동기화 서버와 독립적이게 서비스 응답 시간 테이블을 갱신할 수 있다.
도 1에 도시된 바와 같은 예에서, 서버 A(109)가 서비스 I(121)를 제공하도록 선택될 때, 서버 A(109)는 클라이언트 A(107)에 되돌려 보내지는 서비스 응답 메시지에 서비스 응답 정보를 내장시킬 수 있는 바, 상기 클라이언트 A(109)는 또한, 서비스 응답 시간 테이블 A(103)을 갱신할 수 있다. 마찬가지로, 서버 B(110)가 서비스 I(122)를 제공하도록 선택될 때, 서버 B(110)는 클라이언트 A(107)에 되돌려 보내지는 서비스 응답 메시지에 서비스 응답 정보를 내장시킬 수 있는 바, 상기 클라이언트 A(109)는 또한, 머신 A와 머신 B 간의 동기화를 기다릴 필요 없이 직접 서비스 응답 시간 테이블 A(103)을 갱신할 수 있다.
도 2는 본 발명의 실시예에 따른 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하는 것에 대한 예시적인 흐름도를 도시한다. 도 2에 도시된 바와 같이, 단계(201)에서, 시스템은 트랜잭셔널 미들웨어 머신 환경에서의 각각의 트랜잭셔널 미들웨어 머신 상에 서비스 응답 시간 테이블을 유지할 수 있다. 각각의 상기 서비스 응답 시간 테이블은 서비스 요청에 대한 라우팅 결정들을 내리기 위해 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용되도록 된 것이다. 그 다음, 단계(202)에서, 트랜잭셔널 미들웨어 머신 환경은 복수의 동기화 서버들을 포함한다. 각각의 상기 동기화 서버는 트랜잭셔널 미들웨어 머신 환경에서의 트랜잭셔널 미들웨어 머신과 관련된다. 마지막으로, 단계(203)에서, 복수의 동기화 서버들은 트랜잭셔널 미들웨어 머신 환경에서의 각각의 상기 트랜잭셔널 미들웨어 머신 상의 서비스 응답 시간 테이블을 주기적으로 동기화시킬 수 있다.
동적 로드에 근거한 로드 밸런싱
본 발명의 실시예에 따르면, 동적 요청 브로커는 Tuxedo와 같은 트랜잭셔널 미들웨어 머신 환경 플랫폼에 동적이고 정확한 로드 밸런싱을 제공하기 위해 트랜잭셔널 미들웨어 머신 환경에 지원될 수 있다.
로드 밸런싱 알고리즘이, 전형적으로 짧은 요청 시간 및 높은 스루풋(throughput)을 요하는 온라인 트랜잭션 프로세싱(OLTP) 어플리케이션들에서의 서버들과 같은 트랜잭셔널 서버들 간의 작업로드의 양호한 분배를 제공할 수 있는 빠른 계산의 세트(quick set of calculation)를 수행하도록 설계될 수 있다. 시스템은 예컨대, 사용자들이 시스템의 효율성을 향상시키기 위해 사용되는 많은 상호-머신 호출들을 이용하는 엑사로직 미들웨어 머신 환경에서의 복수-머신 구성으로부터 많은 이득들을 얻도록 할 수 있다.
본 발명의 실시예에 따르면, 동적 로드에 근거하는 동적 로드 밸런싱 알고리즘들이 트랜잭셔널 서비스들에 제공될 수 있다. 동적 로드 정보는 복수-머신 환경들에서, 보다 정확한 로드 밸런싱을 위해 머신들 간에 동기화될 수 있다.
클라이언트의 관점에서, 로드 밸런싱의 목적은 각각의 요청 호출에 대한 응답 시간을 최소화하는 것이다. 로드 밸런싱 결정들은 서비스 응답 시간들에 근거하여 동적으로 이루어질 수 있다. 다시 말해, 시스템은 서비스 요청 마다(per-service request basis) 응답 시간들을 지속적으로 측정할 수 있고, 후속적인 서비스 요청 라우팅 결정들에 대해 이 정보를 유지할 수 있다.
본 발명의 실시예에 따르면, 클라이언트는 각각의 서비스 요청을 프로세싱하기 위한 모든 후보 서버(candidate server)에 대해 응답 시간을 추정할 수 있다. 추정된 응답 시간은 다음의 공식을 사용하여 계산될 수 있다.
추정된 응답 시간 = 네트워크 시간 + 큐 대기 시간 + 서비스 실행 시간
상기 공식에서 보여지는 바와 같이, 단일 Tuxedo 서비스 요청을 프로세싱하기 위한 응답 시간은 적어도 네트워크 시간, 큐 대기 시간 및 서비스 실행 시간을 포함할 수 있다. 네트워크 시간은 발신 서버 머신(originating server machine)으로부터 서버 머신으로 요청 호출을 전송하고, 그 발신 서버 머신에 대응하는 회신(reply)을 다시 전송하는 데 소요되는 시간이다. 큐 대기 시간은 서비스를 얻기 전에 요청 호출이 서버 큐에서 대기하는 시간이다. 서비스 실행 시간은 서버가 요청을 서빙하는 데 소요되는 시간이다.
추가적으로, 상기 공식에서, 네트워크 시간 및 서비스 실행 시간 둘 모두는 소정의 시간 주기에 걸친 평균 시간일 수 있다. 큐 대기 시간의 경우, 상기 큐 대기 시간은 소정의 주기에 걸친 평균 큐 대기 시간 혹은 최근의 큐 대기 시간일 수 있다. 특별한 서버에 대한 최근의 큐 대기 시간은 서버가 위치된 머신 상에서 지속적으로 유지될 수 있다. 큐 대기 시간이 작업 로드에 따라 현저하게 달라질 수 있기 때문에 최근의 큐 대기 시간을 사용하여 추정되는 응답 시간은 평균 큐 대기 시간을 사용하여 추정되는 응답 시간보다 정확할 수 있다.
Tuxedo의 예에서, 각각의 Tuxedo 머신 상의 전용 동기화 서버는 데이터 수집(collection) 및 동기화에 대한 역할을 할 수 있다. 평균 서비스 실행 시간이 동기화 서버에 의해 수집될 수 있어서, 이 평균 서비스 실행 시간은 피어(peer)들 간에 동기화될 수 있다. 최근의 데이터가 오직 서버가 위치한 노드에서 유지될 수 있기 때문에 유사한 접근법이 큐 대기 시간을 동기화시키기 위해 사용될 수 있다.대안적으로는, 데이터 동기화는 서비스를 요청한 클라이언트에 리턴되는 서비스 회신 메시지 상에 로드 정보를 피기백(piggybacking)함으로써 구현될 수 있다.
추가적으로, 각각의 Tuxedo 머신 상의 동기화 서버는 네트워크 시간을 수집하기 위해 응답할 수 있다. 동기화 서버는 Tuxedo 머신들 간의 네트워크 시간을 측정하도록 다른 Tuxedo 머신들에 특별 요청(special request)을 주기적으로 보낼 수 있다.
정적 로드에 근거한 로드 밸런싱
본 발명의 실시예에 따르면, 트랜잭셔널 미들웨어 머신 환경에서의 로드 밸런싱 알고리즘은 각각의 서비스에 대해 정의되는 정적 로드에 의존할 수 있다. 이 정적 로드 밸런싱 알고리즘은 트랜잭셔널 미들웨어 머신 환경에서 동적 로드 밸런싱 알고리즘과 함께 사용될 수 있다. 예를 들어, 정적 로드는 동적 로드가 이용불가능할 때 사용될 수 있다.
동적 로드 밸런싱 접근법에 비해, 정적 로드 밸런싱 알고리즘은 트레이드-오프(trade-off)들을 갖는 보다 단순한 접근법이다. 예를 들어, 정적 로드는 런타임 시 정확한 실제 로드를 반영하지 못할 수 있고, 정적 로드 밸런싱 알고리즘은 복수-머신 모드에서 정확하지 않을 수 있다.
Tuxedo의 예에서, 정적 로드 밸런싱 알고리즘 구현은 후보 서버들의 세트로 중에서 목적지 서버를 선택하기 위해 Server Wkqueued라 명명된 파라미터를 사용할 수 있다. Server Wkqueued는 요청 큐의 현재의 작업 로드를 나타내는 파라미터이다. 서비스 요청의 라우팅은 모든 서버 후보들에 대한 Server Wkqueued의 값들을 비교한 것에 근거하여 클라이언트 측 상에서 이루어질 수 있다.
추가적으로, 복수-머신 모드에서, 일정한 값일 수 있는 다른 파라미터인 NETLOAD는 비교를 위해 Server Wkqueued 값에 추가될 수 있다. NETLOAD 파라미터는 일 머신으로부터 다른 머신으로 서비스 요청을 보내는 코스트(cost)를 연산할 때 추가될 추가적인 로드를 특정할 수 있다. NETLOAD는 Tuxedo 구성 파일에 특정되는 정적 값일 수 있다.
본 발명의 실시예에 따르면, 두 가지 서로 다른 기법들이 서로 다른 어플리케이션 모델에 따라 Server Wkqueued를 계산하기 위해 사용될 수 있다.
주기적 누적 갱신 접근법(Periodic Accumulative Updating approach)을 이용하여, 시스템은 서비스 요청이 서버의 요청 큐에 추가될 때 서비스의 LOAD 값만큼 Server Wkqueued의 값을 증가시킬 수 있다. Server Wkqueued의 값은 요청이 서버에 의해 완료될 때 감소되지 않는다. Wkqueued 값은 관리 체크(administrative check) 시간 주기 동안 선형적으로 증가될 수 있고, Tuxedo의 서버들의 세너티 스캔(sanity scan)과 같은 관리 체크의 시간에 리셋될 수 있다. 이 접근법의 일 예는 복수-머신 모드에서 사용될 수 있는 라운드 로빈(RR) 알고리즘을 이용하여 Server Wkqueued의 값을 갱신하는 것이다.
실시간 갱신 접근법을 사용하여, 시스템은 서비스 요청이 요청 큐에 추가될 때 서비스의 LOAD 값만큼 Server Wkqueued의 값을 증가시킬 수 있다. Server Wkqueued의 값은 서버에 의한 요청의 완료 시 서비스의 LOAD 값만큼 감소된다. 이 갱신 방법은 실시간 모드에서 Server Wkqueued를 유지하고, 첫 번째 접근법보다 정확하게 현재의 큐잉된 작업을 반영할 수 있다. 이 접근법의 일 예는 단일 머신 모드에서 사용될 수 있는 실시간(RT) 알고리즘을 이용하여 Server Wkqueued의 값을 갱신하는 것이다.
서비스의 LOAD 값은 Tuxedo 구성 파일에 특정된 정적 값일 수 있는 바, 예를 들어 LOAD에 대한 디폴트 값은 70으로 설정될 수 있다. 추가적으로, 서비스의 LOAD 값은 서비스 인스턴스와 관련된 상대적인 로드 인자(factor)로서 특정될 수 있다.
본 발명의 실시예에 따르면, 정적 로드 밸런싱 알고리즘은 동적 요청 브로커를 간략화시키기 때문에 이 정적 로드 밸런싱 알고리즘과 관련된 트레이드오프들이 존재할 수 있다.
첫째로, 동적 요청 브로커의 서비스 실행 시간은 정적 로드 밸런싱 알고리즘의 일정한 서비스 LOAD로 감소된다. 컴퓨팅 리소스들에 대한 서비스의 필요성이 이 리소스의 활성 수명(active lifetime)에 걸쳐 달라지기 때문에, 정적인 일정한 값이 서비스의 실시간 작업 로드 레벨을 반영하지 못할 수 있다. 추가적으로, 서비스 LOAD 값이 구성 파일에서 Tuxedo 관리자에 의해 할당될 수 있기 때문에, 상기 서비스 LOAD 값은 서비스에 대한 적용가능한 LOAD 값을 선택하기 위해 관리자의 실험(experiment)에 매우 의존한다.
둘째로, 동적 요청 브로커의 평균 네트워크 시간은 정적 로드 밸런싱 알고리즘의 일정한 NETLOAD로 감소된다. NETLOAD 파라미터는 여러 가지 서로 다른 타겟 노드들에 대한 네트워크 코스트가 네트워크 토폴로지 마다 달라질 수 있다는 사실을 고려하지 않는다. 그리고, 네트워크 코스트는 로드에 민감(load sensitive)할 수 있고, 그러므로 일정하지 않을 수 있다.
셋째로, 복수-머신 모드에서, 라운드 로빈 알고리즘은 실시간 서버 로드 레벨이 아니라 서버 로드 레벨의 통계만을 얻을 수 있다. 추가적으로, 클라이언트는 원격 노드들에 위치된 후보 서버들의 실재(true) 및 현재 상황(current picture)을 얻지 못할 수 있는 바, 그 이유는 노드들 간에 어떤 싱크-업 메커니즘(sync-up mechanism)도 존재하지 않기 때문이다. 따라서, 로컬 노드 내의 원격 큐의 작업로드 값은 덜 정확할 수 있다.
도 3은 본 발명의 실시예에 따른 정확한 로드 밸런싱을 지원하는 트랜잭셔널 미들웨어 머신 환경의 예를 도시한다. 도 1의 컴포넌트들과 동일한 도 3의 일부 컴포넌트들은 동일한 도면 부호로 나타내지고, 이들의 세부적인 설명은 생략된다.
도 1과 유사한 트랜잭셔널 미들웨어 머신 환경은 복수의 트랜잭셔널 미들웨어 머신들, 예컨대 머신 A(101) 및 머신 B(102)을 포함한다. 각각의 트랜잭셔널 미들웨어 머신은 각각의 머신에 대한 서비스 응답 시간 정보를 포함하는 서비스 응답 시간 테이블을 유지할 수 있다. 예를 들어, 머신 A는 서비스 응답 시간 테이블 즉, 서비스 응답 시간 테이블 A(103)을 포함하고, 머신 B는 서비스 응답 시간 테이블 즉, 서비스 응답 시간 테이블 B(104)를 포함한다. 특히, 머신 A의 서비스 응답 시간 테이블 유지 유닛(1103)은 서비스 응답 시간 테이블 A(103)을 유지하거나 혹은 저장하며, 머신 B의 서비스 응답 시간 테이블 유지 유닛(1104)은 서비스 응답 시간 테이블 B(104)을 유지하거나 혹은 저장한다. 이 기술분야의 숙련자들이 쉽게 이해할 수 있는 바와 같이, 서비스 응답 시간 테이블 유지 유닛들은 데이터베이스, 스토리지, 서버 또는 서비스 응답 시간 테이블들을 유지하기 위한 어떤 다른 수단일 수 있다.
일 실시예에 따르면, 트랜잭셔널 미들웨어 머신 환경에 트랜잭셔널 미들웨어 머신이 존재하는 바, 상기 트랜잭셔널 미들웨어 머신은, 상기 트랜잭셔널 미들웨어 머신 상에서 유지되고 서비스 요청에 대한 라우팅 결정들을 내리기 위해 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용되도록 된 서비스 응답 시간 테이블과, 상기 트랜잭셔널 미들웨어 머신 환경에서의 상기 트랜잭셔널 미들웨어 머신 상의 서비스 응답 시간 테이블을 상기 트랜잭셔널 미들웨어 머신 환경에서의 다른 트랜잭셔널 미들웨어 머신들 상의 다른 서비스 응답 시간 테이블들과 주기적으로 동기화시키는 동작을 하는 동기화 서버를 포함한다.
일 실시예에 따르면, 상기 트랜잭셔널 미들웨어 머신은 상기 트랜잭셔널 미들웨어 머신 상에 상주하는 트랜잭셔널 서버를 더 포함하고, 여기서 트랜잭셔널 미들웨어 머신 환경은 하나 이상의 트랜잭셔널 도메인들을 포함하며, 적어도 하나의 트랜잭셔널 도메인은 상기 트랜잭셔널 미들웨어 머신 상에 상주하는 상기 트랜잭셔널 서버 및 다른 트랜잭셔널 미들웨어 머신들 상에 상주하는 다른 트랜잭셔널 서버들을 포함한다.
일 실시예에 따르면, 상기 트랜잭셔널 미들웨어 머신은 적어도 하나의 트랜잭셔널 서비스가 제공되는 트랜잭셔널 서버를 더 포함한다.
일 실시예에 따르면, 상기 서비스 응답 시간 테이블은 어느 트랜잭셔널 서버가 트랜잭셔널 서비스를 최단 서비스 응답 시간으로 제공하는지 결정하기 위해 클라이언트에 의해 사용된다.
일 실시예에 따르면, 상기 트랜잭셔널 미들웨어 머신은 트랜잭셔널 미들웨어 서버가 트랜잭셔널 서비스를 수행하는 것을 완료한 이후에 상기 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 갱신하는 상기 트랜잭셔널 미들웨어 서버를 더 포함한다.
일 실시예에 따르면, 상기 서비스 응답 시간 테이블 내의 서비스 응답 시간은 동적 로드 및 정적 로드 중 적어도 하나에 근거하여 추정된다.
일 실시예에 따르면, 상기 트랜잭셔널 미들웨어 머신은 다른 트랜잭셔널 미들웨어 머신들 상의 다른 클라이언트들에 리턴되는 서비스 응답 메시지에 서비스 응답 시간을 내장시키는 트랜잭셔널 서버를 더 포함한다.
일 실시예에 따르면, 상기 클라이언트는 상기 서비스 응답 시간의 정보를 사용하여 다른 트랜잭셔널 미들웨어 머신들 상의 다른 서비스 응답 시간 테이블들을 갱신하는 동작을 한다.
일 실시예에 따르면, 트랜잭셔널 서비스에 대한 서비스 응답 시간 테이블 내의 서비스 응답 시간은 서비스 실행 시간, 큐 대기 시간 및 네트워크 시간의 합(sum)이다.
일 실시예에 따르면, 동기화 서버는 머신들 간의 네트워크 시간을 주기적으로 측정하는 역할을 한다.
일 실시예에 따르면, 트랜잭셔널 미들웨어 머신 환경에서의 트랜잭셔널 미들웨어 머신을 위한 방법이 제공되는 바, 상기 방법은, 상기 트랜잭셔널 미들웨어 머신 상에 서비스 응답 시간 테이블을 유지시키는 단계와, 여기서 상기 서비스 응답 시간 테이블은 서비스 요청에 대한 라우팅 결정들을 내리기 위해 상기 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용되도록 된 것이고, 동기화 서버를 제공하는 단계와, 동기화 서버에 의해, 상기 트랜잭셔널 미들웨어 머신 환경에서의 상기 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 상기 트랜잭셔널 미들웨어 머신 환경에서의 다른 트랜잭셔널 미들웨어 머신들 상의 다른 서비스 응답 시간 테이블들과 주기적으로 동기화시키는 단계를 포함한다.
일 실시예에 따르면, 상기 방법은 상기 트랜잭셔널 미들웨어 머신 상에 상주하는 트랜잭셔널 서버를 제공하는 단계를 더 포함하고, 여기서 트랜잭셔널 미들웨어 머신 환경은 하나 이상의 트랜잭셔널 도메인들을 포함하며, 적어도 하나의 트랜잭셔널 도메인은 상기 트랜잭셔널 미들웨어 머신 상에 상주하는 상기 트랜잭셔널 서버 및 다른 트랜잭셔널 미들웨어 머신들 상에 상주하는 다른 트랜잭셔널 서버들을 포함한다.
일 실시예에 따르면, 상기 방법은 적어도 하나의 트랜잭셔널 서비스가 제공되는 트랜잭셔널 서버를 제공하는 것을 더 포함한다.
일 실시예에 따르면, 상기 방법은 어느 트랜잭셔널 서버가 트랜잭셔널 서비스를 최단 서비스 응답 시간으로 제공하는지 결정하기 위해 상기 서비스 응답 시간 테이블을 사용하는 것을 더 포함한다.
일 실시예에 따르면, 상기 방법은 트랜잭셔널 미들웨어 서버가 트랜잭셔널 서비스를 수행하는 것을 완료한 이후에 상기 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 갱신하는 것을 더 포함한다.
일 실시예에 따르면, 상기 방법은 동적 로드 및 정적 로드 중 적어도 하나에 근거하여 상기 서비스 응답 시간 테이블 내의 서비스 응답 시간을 추정하는 것을 더 포함한다.
일 실시예에 따르면, 상기 방법은 상기 트랜잭셔널 미들웨어 머신 상의 트랜잭셔널 서버가 다른 트랜잭셔널 미들웨어 머신들 상의 다른 클라이언트에게 리턴되는 서비스 응답 메시지에 서비스 응답 시간을 내장시키도록 하는 것을 더 포함한다.
일 실시예에 따르면, 상기 방법은 상기 서비스 응답 시간의 정보를 사용하여 다른 상기 트랜잭셔널 미들웨어 머신들 상의 다른 서비스 응답 시간 테이블들을 갱신하는 것을 더 포함한다.
일 실시예에 따르면, 상기 방법은 트랜잭셔널 서비스에 대한 서비스 응답 시간 테이블 내의 서비스 응답 시간이 서비스 실행 시간, 큐 대기 시간 및 네트워크 시간의 합이 되도록 하는 것을 더 포함한다.
일 실시예에 따르면, 상기 방법은 머신들 간의 네트워크 시간을 주기적으로 측정하는 것을 더 포함한다.
본 발명은 본 발명의 교시들에 따라 프로그램된 하나 이상의 프로세서들, 메모리 및/또는 컴퓨터 판독가능 스토리지 매체를 포함하는 하나 이상의 종래의 범용 또는 특수 디지털 컴퓨터, 컴퓨팅 디바이스, 머신 또는 마이크로프로세서를 이용하여 통상적으로 구현될 수 있다. 적절한 소프트웨어 코딩은 소프트웨어 기술 분야의 숙련자들에게 분명할 바와 같이, 본 발명의 교시들에 근거하여 숙련된 프로그래머들에 의해 쉽게 준비될 수 있다.
일부 실시예들에서, 본 발명은 본 발명의 프로세스들 중 어느 것을 수행하도록 컴퓨터를 프로그램하는 데 사용될 수 있는/명령어들이 저장된 스토리지 매체 또는 컴퓨터 판독가능 매체(들)인 컴퓨터 프로그램 제품을 포함한다. 스토리지 매체는 이들로만 한정되는 것은 아니지만, 플로피 디스크(disk)들, 광학 디스크(disc)들, DVD, CD-ROM들, 마이크로드라이브 및 자기-광학 디스크(disk)들을 포함하는 어떤 타입의 디스크, ROM들, RAM들, EPROM들, EEPROM들, DRAM들, VRAM들, 플래시 메모리 디바이스들, 자기 또는 광학 카드들, (분자 메모리 IC들을 포함하는)나노시스템들 또는, 명령어들 및/또는 데이터를 저장하기에 적절한 어떤 타입의 매체 또는 디바이스를 포함할 수 있다.
본 발명의 상기 상세한 설명은 예시 및 설명을 위해 제공되었다. 본 설명은 완전한 것이거나 또는 정확히 개시된 형태들로만 본 발명을 제한하고자 의도된 것이 아니다. 많은 수정들 및 변형들이 이 기술분야의 숙련자에게 분명할 것이다. 위 실시예들은 본 발명의 원리 및 이의 실용적 응용을 가장 잘 설명하기 위해 선택 및 기술되었으며, 그럼으로써 이 기술분야의 숙련자들은 본 발명에 대한 다양한 실시예들 및 고려되는 특별한 사용에 적합한 다양한 수정들을 이해할 수 있다. 본 발명의 범위는 다음의 특허 청구 범위 및 이의 균등물에 의해 한정되어야 함이 의도된다.

Claims (22)

  1. 복수의 트랜잭셔널 미들웨어 머신들을 포함하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템으로서, 상기 시스템은,
    복수의 서비스 응답 시간 테이블들과,
    여기서 상기 트랜잭셔널 미들웨어 머신 환경에서의 각각의 트랜잭셔널 미들웨어 머신은 적어도 하나의 트랜잭셔널 서버 및 서비스 응답 시간 테이블을 포함하고,
    각각의 상기 서비스 응답 시간 테이블은 상기 트랜잭셔널 미들웨어 머신 환경에 배치되는 각각의 상기 트랜잭셔널 서버에 대한 서비스 응답 시간들을 포함하고,
    각각의 상기 서비스 응답 시간 테이블은, 서비스 요청에 대한 라우팅 결정들을 내리기 위해, 관련된 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용가능하고; 그리고
    복수의 동기화 서버(synchronization server)들을 포함하여 구성되며,
    여기서 각각의 상기 동기화 서버는 상기 트랜잭셔널 미들웨어 머신 환경에서의 트랜잭셔널 미들웨어 머신과 관련되고,
    상기 복수의 동기화 서버들은 상기 트랜잭셔널 미들웨어 머신 환경에서의 상기 복수의 서비스 응답 시간 테이블들에 포함된 상기 트랜잭셔널 서버의 응답 시간들을 주기적으로 동기화시키는 동작을 하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  2. 제1항에 있어서,
    상기 트랜잭셔널 미들웨어 머신 환경은 하나 이상의 트랜잭셔널 도메인들을 포함하고, 적어도 하나의 트랜잭셔널 도메인은 상기 트랜잭셔널 미들웨어 머신 환경에서의 여러 가지 서로 다른 트랜잭셔널 미들웨어 머신들에 상주하는 복수의 상기 트랜잭셔널 서버들을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  3. 제1항에 있어서,
    상기 트랜잭셔널 미들웨어 머신 환경에서의 여러 가지 서로 다른 트랜잭셔널 미들웨어 머신들에 상주하는 여러 가지 서로 다른 트랜잭셔널 서버들 상에서 적어도 하나의 트랜잭셔널 서비스가 제공되는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  4. 제1항에 있어서,
    상기 서비스 응답 시간 테이블은 어느 트랜잭셔널 서버가 트랜잭셔널 서비스를 최단 서비스 응답 시간으로 제공하는지 결정하기 위해 상기 클라이언트에 의해 사용되는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  5. 제1항에 있어서,
    상기 트랜잭셔널 미들웨어 서버는 상기 트랜잭셔널 미들웨어 서버가 트랜잭셔널 서비스를 수행하는 것을 완료한 이후에, 관련된 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 갱신하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  6. 제1항에 있어서,
    상기 서비스 응답 시간 테이블 내의 각각의 상기 서비스 응답 시간은 동적 로드(dynamic load) 및 정적 로드(static load) 중 적어도 하나에 근거하여 추정되는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  7. 제1항에 있어서,
    관련된 트랜잭셔널 미들웨어 머신 상의 트랜잭셔널 서버는 다른 트랜잭셔널 미들웨어 머신 상의 클라이언트에게 리턴(return)되는 서비스 응답 메시지에 서비스 응답 시간을 내장(embed)시키는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  8. 제7항에 있어서,
    상기 클라이언트는 상기 서비스 응답 시간의 정보를 이용하여 상기 다른 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 갱신하는 동작을 하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  9. 제1항에 있어서,
    서비스에 대한 상기 서비스 응답 시간 테이블 내의 서비스 응답 시간은 서비스 실행 시간과 큐 대기 시간과 네트워크 시간의 합(sum)이고,
    여기서 상기 네트워크 시간은, 요청이 트랜잭셔널 서버로 전송되기 위해 요구되는 시간과 상기 트랜잭셔널 서버에 의해 발생되어 전송되는 회신(reply)이 수신되기 위해 요구되는 시간의 합인 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  10. 제9항에 있어서,
    동기화 서버는 머신들 간의 상기 네트워크 시간을 주기적으로 측정하는 역할을 하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 로드 밸런싱을 지원하기 위한 시스템.
  11. 복수의 트랜잭셔널 미들웨어 머신들을 포함하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법으로서, 상기 방법은,
    복수의 서비스 응답 시간 테이블들을 유지시키는 단계와,
    여기서 상기 트랜잭셔널 미들웨어 머신 환경에서의 각각의 트랜잭셔널 미들웨어 머신은 적어도 하나의 트랜잭셔널 서버 및 서비스 응답 시간 테이블을 포함하고,
    각각의 상기 서비스 응답 시간 테이블은 상기 트랜잭셔널 미들웨어 머신 환경에 배치되는 각각의 상기 트랜잭셔널 서버에 대한 서비스 응답 시간들을 포함하고,
    각각의 상기 서비스 응답 시간 테이블은, 서비스 요청에 대한 라우팅 결정들을 내리기 위해, 관련된 트랜잭셔널 미들웨어 머신 상의 클라이언트에 의해 사용가능하고; 그리고
    복수의 동기화 서버들을 제공하는 단계와,
    여기서 각각의 상기 동기화 서버는 상기 트랜잭셔널 미들웨어 머신 환경에서의 트랜잭셔널 미들웨어 머신과 관련되고; 그리고
    상기 복수의 동기화 서버들을 통해, 상기 트랜잭셔널 미들웨어 머신 환경에서의 상기 복수의 서비스 응답 시간 테이블들에 포함된 상기 트랜잭셔널 서버의 응답 시간들을 주기적으로 동기화시키는 단계를 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  12. 제11항에 있어서,
    상기 방법은 또한, 상기 트랜잭셔널 미들웨어 머신 환경이 하나 이상의 트랜잭셔널 도메인들을 포함하도록 하는 것을 포함하고, 여기서 적어도 하나의 트랜잭셔널 도메인은 상기 트랜잭셔널 미들웨어 머신 환경에서의 여러 가지 서로 다른 트랜잭셔널 미들웨어 머신들에 상주하는 복수의 트랜잭셔널 서버들을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  13. 제11항에 있어서,
    상기 방법은 또한, 상기 트랜잭셔널 미들웨어 머신 환경에서의 여러 가지 서로 다른 트랜잭셔널 미들웨어 머신들에 상주하는 여러 가지 서로 다른 트랜잭셔널 서버들 상에서 적어도 하나의 트랜잭셔널 서비스를 제공하는 것을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  14. 제11항에 있어서,
    상기 방법은 또한, 어느 트랜잭셔널 서버가 트랜잭셔널 서비스를 최단 서비스 응답 시간으로 제공하는지 결정하기 위해 상기 서비스 응답 시간 테이블을 이용하는 것을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  15. 제11항에 있어서,
    상기 방법은 또한, 상기 트랜잭셔널 미들웨어 서버가 트랜잭셔널 서비스를 수행하는 것을 완료한 이후에, 관련된 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 갱신하는 것을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  16. 제11항에 있어서,
    상기 방법은 또한, 동적 로드 및 정적 로드 중 적어도 하나에 근거하여 상기 서비스 응답 시간 테이블 내의 각각의 상기 서비스 응답 시간을 추정하는 것을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  17. 제11항에 있어서,
    상기 방법은 또한, 관련된 트랜잭셔널 미들웨어 머신 상의 트랜잭셔널 서버가 다른 트랜잭셔널 미들웨어 머신 상의 클라이언트에게 리턴되는 서비스 응답 메시지에 서비스 응답 시간을 내장시키도록 하는 것을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  18. 제17항에 있어서,
    상기 방법은 또한, 상기 서비스 응답 시간의 정보를 이용하여 상기 다른 트랜잭셔널 미들웨어 머신 상의 상기 서비스 응답 시간 테이블을 갱신하는 것을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  19. 제11항에 있어서,
    상기 방법은 또한, 서비스에 대한 상기 서비스 응답 시간 테이블 내의 서비스 응답 시간이 서비스 실행 시간과 큐 대기 시간과 네트워크 시간의 합이 되게 하는 것을 포함하고,
    여기서 상기 네트워크 시간은, 요청이 트랜잭셔널 서버로 전송되기 위해 요구되는 시간과 상기 트랜잭셔널 서버에 의해 발생되어 전송되는 회신이 수신되기 위해 요구되는 시간의 합인 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  20. 제19항에 있어서,
    상기 방법은 또한, 머신들 간의 상기 네트워크 시간을 주기적으로 측정하는 것을 포함하는 것을 특징으로 하는 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템에 의해 수행되는 방법.
  21. 삭제
  22. 컴퓨터로 하여금 청구항 제11항 내지 20항 중 어느 한 항의 방법을 수행하도록 하는 프로그램을 저장한 컴퓨터 판독가능 비-휘발성 매체.
KR1020147008447A 2011-09-29 2012-09-26 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법 KR101987960B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161541063P 2011-09-29 2011-09-29
US61/541,063 2011-09-29
US13/410,128 US8898271B2 (en) 2011-09-29 2012-03-01 System and method for supporting accurate load balancing in a transactional middleware machine environment
US13/410,128 2012-03-01
PCT/US2012/057369 WO2013049232A1 (en) 2011-09-29 2012-09-26 System and method for supporting accurate load balancing in a transactional middleware machine environment

Publications (2)

Publication Number Publication Date
KR20140074320A KR20140074320A (ko) 2014-06-17
KR101987960B1 true KR101987960B1 (ko) 2019-09-30

Family

ID=47993726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147008447A KR101987960B1 (ko) 2011-09-29 2012-09-26 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US8898271B2 (ko)
JP (1) JP6151701B2 (ko)
KR (1) KR101987960B1 (ko)
CN (1) CN103842964B (ko)
WO (1) WO2013049232A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103825830B (zh) * 2014-02-24 2017-02-01 北京南天软件有限公司 基于tuxedo中间件的系统实现流量管控的方法和装置
US9569224B2 (en) * 2014-05-06 2017-02-14 Oracle International Corporation System and method for adaptively integrating a database state notification service with a distributed transactional middleware machine
US9524186B2 (en) 2014-04-28 2016-12-20 Oracle International Corporation System and method for supporting common transaction identifier (XID) optimization based on resource manager (RM) instance awareness in a transactional environment
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
US20170353888A1 (en) * 2014-12-18 2017-12-07 Nokia Solutions And Networks Oy Network Load Balancer
WO2017066966A1 (en) * 2015-10-22 2017-04-27 Oracle International Corporation System and method for providing mssq notifications in transactional processing environment
WO2017066953A1 (en) 2015-10-22 2017-04-27 Oracle International Corporation System and method for providing distributed caching in transactional processing environment
US20230141570A1 (en) * 2021-11-08 2023-05-11 Microsoft Technology Licensing, Llc Query admission control for online data systems based on response time objectives

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US20030037173A1 (en) 2000-09-01 2003-02-20 Pace Charles P. System and method for translating an asset for distribution over multi-tiered networks
US20050027862A1 (en) 2003-07-18 2005-02-03 Nguyen Tien Le System and methods of cooperatively load-balancing clustered servers
US7062556B1 (en) * 1999-11-22 2006-06-13 Motorola, Inc. Load balancing method in a communication network
US7620687B2 (en) 2004-06-25 2009-11-17 Telcordia Technologies, Inc. Distributed request routing

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3422400B2 (ja) * 1996-03-28 2003-06-30 三菱電機株式会社 分散処理システム
US6324580B1 (en) * 1998-09-03 2001-11-27 Sun Microsystems, Inc. Load balancing for replicated services
US6985940B1 (en) * 1999-11-12 2006-01-10 International Business Machines Corporation Performance testing of server systems
US6928477B1 (en) * 1999-11-18 2005-08-09 International Business Machines Corporation Availability and scalability in clustered application servers by transmitting expected loads of clients to load balancer
US6484143B1 (en) * 1999-11-22 2002-11-19 Speedera Networks, Inc. User device and system for traffic management and content distribution over a world wide area network
JP2002091936A (ja) * 2000-09-11 2002-03-29 Hitachi Ltd 負荷分散装置及び負荷見積もり方法
US6985956B2 (en) * 2000-11-02 2006-01-10 Sun Microsystems, Inc. Switching system
US7421509B2 (en) * 2001-09-28 2008-09-02 Emc Corporation Enforcing quality of service in a storage network
US7454458B2 (en) * 2002-06-24 2008-11-18 Ntt Docomo, Inc. Method and system for application load balancing
US7461166B2 (en) * 2003-02-21 2008-12-02 International Business Machines Corporation Autonomic service routing using observed resource requirement for self-optimization
US7475108B2 (en) * 2003-06-26 2009-01-06 International Business Machines Corporation Slow-dynamic load balancing method
US7774312B2 (en) * 2003-09-04 2010-08-10 Oracle International Corporation Self-managing performance statistics repository for databases
US7493380B2 (en) * 2003-12-02 2009-02-17 International Business Machines Corporation Method for determining load balancing weights using application instance topology information
US8046464B2 (en) * 2004-03-10 2011-10-25 The Boeing Company Quality of service resource management apparatus and method for middleware services
GB2412980A (en) * 2004-04-07 2005-10-12 Hewlett Packard Development Co A method of distributing load amongst two or more computer system resources
KR20080057483A (ko) * 2006-12-20 2008-06-25 삼성전자주식회사 서버, 클라이언트, 로드 밸런싱 시스템 및 그의 로드밸런싱 방법
JP2010009449A (ja) * 2008-06-30 2010-01-14 Nec Corp 分散情報配置システム
US8261266B2 (en) * 2009-04-30 2012-09-04 Microsoft Corporation Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
US8276004B2 (en) * 2009-12-22 2012-09-25 Intel Corporation Systems and methods for energy efficient load balancing at server clusters

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327622B1 (en) * 1998-09-03 2001-12-04 Sun Microsystems, Inc. Load balancing in a network environment
US7062556B1 (en) * 1999-11-22 2006-06-13 Motorola, Inc. Load balancing method in a communication network
US20030037173A1 (en) 2000-09-01 2003-02-20 Pace Charles P. System and method for translating an asset for distribution over multi-tiered networks
US20050027862A1 (en) 2003-07-18 2005-02-03 Nguyen Tien Le System and methods of cooperatively load-balancing clustered servers
US7620687B2 (en) 2004-06-25 2009-11-17 Telcordia Technologies, Inc. Distributed request routing

Also Published As

Publication number Publication date
WO2013049232A1 (en) 2013-04-04
JP2014528615A (ja) 2014-10-27
CN103842964B (zh) 2017-06-13
KR20140074320A (ko) 2014-06-17
US20130086238A1 (en) 2013-04-04
US8898271B2 (en) 2014-11-25
JP6151701B2 (ja) 2017-06-21
CN103842964A (zh) 2014-06-04

Similar Documents

Publication Publication Date Title
KR101987960B1 (ko) 트랜잭셔널 미들웨어 머신 환경에서 정확한 로드 밸런싱을 지원하기 위한 시스템 및 방법
US9495392B2 (en) System and method for parallel multiplexing between servers in a cluster
US10701141B2 (en) Managing software licenses in a disaggregated environment
US9723110B2 (en) System and method for supporting a proxy model for across-domain messaging in a transactional middleware machine environment
Cheng et al. An in-memory object caching framework with adaptive load balancing
TWI282228B (en) Method and apparatus for autonomic failover
KR102340296B1 (ko) 트랜잭셔널 환경에서 리소스 관리자(rm) 인스턴스 인지에 기초하여 공통 트랜잭션 식별자(xid) 최적화 및 트랜잭션 친화성을 지원하기 위한 시스템 및 방법
US20040243709A1 (en) System and method for cluster-sensitive sticky load balancing
US9104488B2 (en) Support server for redirecting task results to a wake-up server
Kang et al. A cluster-based decentralized job dispatching for the large-scale cloud
JP6154385B2 (ja) トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするためのシステムおよび方法
JP6088528B2 (ja) トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法
US8230086B2 (en) Hidden group membership in clustered computer system
US11616725B1 (en) Hierarchical token buckets
Mao et al. A Load Balancing and Overload Controlling Architecture in Clouding Computing
US20240069970A1 (en) System and method for sharing vitals among service replicas to enable processing of long running automation workflows in a container orchestration system
US11907752B1 (en) Work distribution service
Malik et al. Crash me inside the cloud: a fault resilient framework for parallel and discrete event simulation
Tao et al. Delay sensitive distributed sensor data exchange for an IoT
Li et al. Accommodate Apache YARN to long-lived services

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