KR20050084519A - 미들웨어 응답 시간 측정 시스템 및 방법 - Google Patents

미들웨어 응답 시간 측정 시스템 및 방법 Download PDF

Info

Publication number
KR20050084519A
KR20050084519A KR1020057012500A KR20057012500A KR20050084519A KR 20050084519 A KR20050084519 A KR 20050084519A KR 1020057012500 A KR1020057012500 A KR 1020057012500A KR 20057012500 A KR20057012500 A KR 20057012500A KR 20050084519 A KR20050084519 A KR 20050084519A
Authority
KR
South Korea
Prior art keywords
queue
time
message
determining
route
Prior art date
Application number
KR1020057012500A
Other languages
English (en)
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 KR20050084519A publication Critical patent/KR20050084519A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

미들웨어 성능을 모니터하기 위한 시스템 및 방법이 설명되어 있다. 소정의 네트워크 루트를 따라 전송되는 샘플 메시지에 대한 루트 시간이 결정되고, 적어도 하나의 큐 거주 시간이 결정된다. 적어도 하나의 큐 거주 시간은 실제 애플리케이션 메시지가 네트워크 루트를 따라 위치하는 적어도 하나의 각각의 로컬 생산 큐에 저장되어 있는 시간의 양을 반영한다. 루트 시간 및 적어도 하나의 큐 거주 시간에 따라 미들웨어 응답 시간이 계산된다.

Description

미들웨어 응답 시간 측정 시스템 및 방법{SYSTEM AND METHOD FOR MEASURING MIDDLEWARE RESPONSE TIME}
<관련 출원의 상호 참조>
본 출원은 2003년 1월 3일자로 출원된 미국 가출원 번호 60/437,848의 이익을 청구하며, 그 전체 개시 내용은 본 명세서에 참조로 반영된다.
<기술 분야>
본 발명은 메시지 지향 미들웨어 성능 모니터링에 관한 것으로서, 보다 상세하게는 미들웨어 응답 시간을 측정하기 위한 시스템 및 방법에 관한 것이다.
일반적으로, 미들웨어는 소프트웨어 개발자와 운영 체제 특정 애플리케이션 프로그래밍 인터페이스(API)를 격리시키는 것을 돕는 그 자신의 API를 구비한 소프트웨어이다. 미들웨어 계층은 종종 클라이언트 프로세스와 서버 프로세스 사이에 위치한다. 애플리케이션의 미들웨어 계층과 연관된 루트 시간을 측정함으로써 문제를 식별하고 수정하여 개선된 성능 및 가용성을 얻을 수 있다. 현재, 미들웨어 애플리케이션과 연관된 루트 시간은 애플리케이션의 코드 자체를 변경함으로써 측정될 수 있다. 이러한 프로시져는 강제적인 것으로 간주된다. 루트 시간을 측정하는 데 사용되는 다른 공지 프로시져들은 다수의 자원에 의존하며, 다수의 컴포넌트 간의 동기화를 필요로 한다.
따라서, 루트 시간, 및 저장 거주 시간, 예를 들어 메시지가 적어도 하나의 큐에 저장되어 있는 거주 시간을 측정함으로써 미들웨어의 성능을 모니터하는 비강제적인 시스템 및 방법이 필요하다. 결과적으로, 구성의 어느 컴포넌트(들)가 문제인지 또는 잠재적으로 문제인지에 관한 판정이 행해질 수 있다. 또한, 동기화를 요구하지 않고 미들웨어 성능을 모니터하는 것도 필요하다.
<발명의 요약>
본 발명의 한 양태는 미들웨어 성능을 모니터하는 방법을 제공한다. 이 방법은 소정의 네트워크 루트를 따라 전송되는 메시지에 대한 루트 시간을 결정하는 단계; 적어도 하나의 다른 메시지가 상기 소정의 네트워크 루트를 따라 위치하는 적어도 하나의 각각의 큐에 저장되는 시간의 양을 반영하는 적어도 하나의 큐 거주 시간을 결정하는 단계; 및 상기 루트 시간 및 상기 적어도 하나의 큐 거주 시간에 따라 미들웨어 응답 시간을 계산하는 단계를 포함할 수 있다.
본 발명의 다른 양태는 미들웨어 성능을 모니터하는 방법을 제공한다. 이 방법은 사용자 정의 샘플 메시지가 소정의 네트워크 루트를 따라 전송되는 루트 시간을 결정하는 단계-상기 루트 시간은 상기 샘플 메시지가 발신 큐 관리자에서 수신 큐 관리자로 이동한 후 다시 동일 루트를 따라 발신 큐 관리자로 돌아오는 데 걸리는 시간의 양을 반영함-; 적어도 하나의 로컬 생산 큐에 대한 적어도 하나의 큐 거주 시간을 결정하는 단계-상기 적어도 하나의 로컬 생산 큐는 상기 발신 큐 관리자 및/또는 상기 수신 큐 관리자와 연관되며, 상기 적어도 하나의 큐 거주 시간은 실제 애플리케이션 메시지가 상기 적어도 하나의 로컬 생산 큐에 저장되어 있는 시간의 양을 반영함-; 및 상기 적어도 하나의 큐 거주 시간에 상기 루트 시간을 더함으로써 미들웨어 응답 시간을 계산하는 단계를 포함할 수 있다.
본 발명의 또 다른 양태는 미들웨어 성능을 모니터하는 시스템을 제공한다. 이 시스템은 샘플 메시지 및 애플리케이션 메시지를 생성하는 컴퓨터 시스템; 및 상기 컴퓨터 시스템에 전기적으로 접속되고, 명령들이 인코딩되어 있는 컴퓨터 메모리를 포함하고, 상기 명령들은 소정의 네트워크 루트를 따라 전송되는 상기 샘플 메시지에 대한 루트 시간을 결정하는 단계; 상기 애플리케이션 메시지가 상기 소정의 네트워크 루트를 따라 위치하는 적어도 하나의 각각의 큐에 저장되어 있는 시간의 양을 반영하는 적어도 하나의 큐 거주 시간을 결정하는 단계; 및 상기 루트 시간 및 상기 적어도 하나의 큐 거주 시간에 따라 미들웨어 응답 시간을 계산하는 단계를 수행한다.
도 1은 미들웨어 성능을 모니터하기 위한 본 발명의 예시적인 블록도.
도 2는 루트 시간, 큐 거주 시간 및 응답 시간을 결정하기 위한 일 실시예의 예시적인 흐름도.
도 3은 루트 시간을 결정하기 위한 본 발명의 예시적인 블록도.
도 4는 루트 시간을 결정하기 위한 일 실시예의 예시적인 흐름도.
도 5는 예시적인 데이타 구조.
도 6은 큐 거주 시간을 결정하기 위한 본 발명의 예시적인 블록도.
도 7은 큐 거주 시간을 결정하기 위한 일 실시예의 예시적인 흐름도.
도 8a는 루트를 개발하기 위한 본 발명의 예시적인 사용자 인터페이스.
도 8b는 루트 시간을 모니터하기 위한 본 발명의 예시적인 사용자 인터페이스.
도 9a는 큐 임계치를 추가하기 위한 본 발명의 예시적인 사용자 인터페이스.
도 9b는 적어도 하나의 큐를 모니터하기 위한 본 발명의 예시적인 사용자 인터페이스.
본 발명의 실시예에서, 메시지 지향 미들웨어("MOM") 기반 애플리케이션에 대한 애플리케이션 미들웨어 응답 시간은 각각의 애플리케이션(들)에 대한 변경 없이 추정될 수 있으며, 따라서 전술한 바와 같이 비강제적이다. 이러한 MOM 기반 애플리케이션의 일례는 WebSphere MQ라는 라벨로 IBM에 의해 판매되는 e 비즈니스 기반 구조 소프트웨어이다. WebSphere MQ는 이종 환경들에서 비즈니스 애플리케이션들을 상호 접속하기 위한 미들웨어 솔루션이다. 미들웨어 응답 시간은 본 명세서에서 2개의 컴포넌트, 즉 루트 시간 및 저장 거주 시간들 각각의 합으로 이루어지는 것으로 설명된다. 저장 거주 시간이 본 명세서에서 큐 거주 시간으로 지칭되지만, 실시예들은 큐 외에 추가적인 저장 매체에 동일하게 적용될 수 있다. 또한, 애플리케이션 처리 시간은 본 명세서에 상세히 설명되는 바와 같이 미들웨어 응답 시간을 결정함에 있어 고려되지 않는다. 그러나, 대안으로, 처리 시간이 응답 시간 결정에 포함될 수 있다.
도 1은 예시적인 MOM 네트워크(100)를 나타낸다. MOM 네트워크(100)는 큐 관리자들, 즉 큐 관리자 105a, 큐 관리자 105b 및 큐 관리자 105c로서 지칭되는 3개의 예시적인 큐 관리자("Qmgr") 또는 MOM 제어기를 포함한다. 큐 관리자들(105a, 105b, 105c)은 노드 A(150a), 노드 B(150b), 노드 C(150c) 및 로컬 생산 큐들(110a, 110b, 110c)에 각각 연관되어 있다. 또한, 큐 관리자들(105a, 105b, 105c)은 에이젼트들(115, 125, 130) 및 전송 큐들(120a, 120b, 120c)에 각각 연관되어 있다. MOM 네트워크(100) 내의 큐 관리자의 수 및 각각의 큐 관리자와 연관된 큐의 수 및 타입은 단지 예시적인 것이다. 데이타는 노드 A(150a), 노드 B(150b) 및 노드 C(150c)에서 수집점(130)으로 전송될 수 있다. 수집점(130)은 메모리 유닛(140) 및 처리 유닛(145)을 포함한다.
각각의 전송 큐는 도 1에서 알 수 있듯이 대응하는 원격 큐 정의와 연관되어 있다. 원격 큐 정의는 실제 큐는 아니지만, 실제 큐인 것처럼 제어되는 별명이다. 원격 큐 정의의 효과는 물리적 수신 큐의 명칭 및 큐 관리자 명칭을 정의하는 것이다. 원격 큐 정의의 사용은 당업자에게 공지되어 있으며, 따라서 본 명세서에서는 상세히 설명하지 않는다.
후술하는 바와 같이, 샘플 메시지는 모니터될 애플리케이션에 의해 사용되는 바와 같이 MOM 네트워크(100) 내의 동일 경로 또는 네트워크 루트를 따라 큐 관리자(105a)로부터, 그리고 큐 관리자(105a)로 전송되며, 샘플 메시지는 네트워크 루트를 따라 각각의 전송 큐(120a, 120b, 120c)에 일시 저장된다. 샘플 메시지는 루트 시간을 결정하는 데 사용된다. 또한, 실제 애플리케이션 메시지는 각각의 큐 거주 시간을 결정하기 위해 각각의 로컬 생산 큐(110a, 110b, 110c)에 저장된다.
도 2는 MOM 애플리케이션의 애플리케이션 미들웨어 응답 시간을 추정하기 위한 예시적인 흐름도이다. MOM 애플리케이션의 추정 응답 시간을 측정하기 위하여, 루트 시간 및 적어도 하나의 큐 거주 시간이 결정될 필요가 있다. 애플리케이션 미들웨어 응답 시간("AMRT")을 결정하기 위한 예시적인 방정식은 다음과 같다:
AMRT=루트 시간+∑(큐 거주 시간들)
방정식의 루트 시간 컴포넌트를 결정하기 위하여, 205에서 샘플 메시지가 생성된다. 일 실시예에서, 샘플 메시지는 함께 배치화된 다수의 메시지를 포함한다. 다수의 메시지 각각의 크기는 같거나 다른 크기를 가질 수 있다. 대안으로, 샘플 메시지는 단일 메시지이다. 바람직하게는, 샘플 메시지는 MOM 네트워크(100) 내에서 전송되는 실제 메시지를 복제한다. 샘플 메시지 내에 배치화된 메시지들의 수 및 메시지들 각각의 크기는 예를 들어 적어도 하나의 사용자 인터페이스와 상호작용함으로써 사용자에 의해 제어된다.
210에서 샘플 메시지가 저장된다. 큐 관리자(105a)와 연관된 에이전트(115)는 샘플 메시지를 전송 큐(120a) 내에 넣는다. 전송 큐(120a)는 큐 관리자(105b)에 거주하는 애플리케이션의 다른 부분으로 전송될 샘플 메시지를 일시 저장한다. 전송 큐(120a)와 연관된 원격 큐 정의는 큐 관리자(105b) 및 구체적으로 전송 큐(120b) 및 그와 관련된 원격 큐 정의를 지시하거나 식별한다. 메시지가 전송되기 전에, 215에서 에이전트(115)에 의해 개시 시간이 결정된다. 개시 시간은 도 5에 도시된 바와 같이 샘플 메시지(500)의 필드(505)에 저장되며, 220에서 샘플 메시지는 MOM 네트워크(100) 내에서 전송된다.
도 4는 샘플 메시지의 전송 및 루트를 따르는 적어도 하나의 도착 시간 및 적어도 전송 시간의 결정을 보다 상세히 설명하고 있다. 405에서, 샘플 메시지는 중개 큐 관리자(105b)를 통해 발신 큐 관리자(105a)에서 수신 큐 관리자(105c)로 전송된다. 구체적으로, 샘플 메시지는 먼저 전송 큐(120b)로 전송되어 임시 저장되는데, 이는 전송 큐(120a)와 연관된 원격 큐 정의가 전송 큐(120b)를 지시하기 때문이다. 노드 B(150b)에서, 410에서, 에이전트(125)와 연관된 채널 또는 메시지 출구들은 샘플 메시지가 전송 큐(120b)에 들어가고 나갈 때에 대한 타임스탬프들, 즉 도달 시간 및 전송 시간으로 각각 지칭되는 타임스탬프들을 결정한다. 도달 시간 및 전송 시간은 도 5에 도시된 바와 같이 필드(510a) 및 필드(510b) 각각에서 샘플 메시지에 추가된다.
이어서, 에이전트(125)와 연관된 큐 관리자(105b) 상의 애플리케이션 컴포넌트는 전송 큐(120b)에 임시 저장된 샘플 메시지를 검색하고, 각각의 원격 큐 정의에 따라 샘플 메시지를 수신 큐 관리자(105c) 상의 다른 애플리케이션 컴포넌트로 전송한다. 수신 큐 관리자(105c)에서, 샘플 메시지는 전송 큐(120c)에 임시 저장된다. 마찬가지로, 노드 C(105c)에서, 410에서, 에이전트(130)와 연관된 채널 또는 메시지 출구들은 샘플 메시지가 전송 큐(120c)에 들어가고 나갈 때에 대한 타임스탬프들, 즉 도달 시간 및 전송 시간으로 각각 지칭되는 타임스탬프들을 결정한다. 도달 시간 및 전송 시간은 도 5에 도시된 바와 같이 필드(515a) 및 필드(515b) 각각에서 샘플 메시지에 추가된다.
에이전트(130)와 연관된 큐 관리자(105c) 상의 애플리케이션 컴포넌트는 전송 큐(120c)에 임시 저장된 메시지를 검색하고, 415에서 각각의 원격 큐 정의에 따라 샘플 메시지를 중개 큐 관리자(105b)를 통해 발신 큐 관리자(105a)로 역전송한다. 일 실시예에서, 샘플 메시지는 샘플 메시지가 수신 큐 관리자(105c)에 도달하도록 이동한 동일 루트를 따라 발신 큐 관리자(105a)로 역전송되는데, 그 목적은 후술한다. 샘플 메시지의 예시적인 루트가 도 3에 도시되어 있다. 대안적인 샘플 메시지의 루트도 후술한다. 420에서는 410에서와 같이, 샘플 메시지의 도달 시간 및 전송 시간이 중개 큐 관리자(105b)에 대해 결정된다. 도달 시간 및 전송 시간은 도 5에 도시된 바와 같이 샘플 메시지의 필드(520a) 및 필드(520b)에 저장된다. 샘플 메시지가 발신 큐 관리자(105a)에 다시 도달하면, 에이전트(115)는 225에서 종료 시간을 결정하며, 종료 시간은 샘플 메시지의 필드(525)에 저장된다. 일 실시예에서, 에이전트(115)는 각각의 수신 메시지의 필드 내에 저장된 식별자를 비교함으로써 큐 관리자(105a)로부터 전송된 샘플 메시지가 수신 메시지와 동일한지를 결정한다.
도 5에 도시된 다양한 타임스탬프를 나타내는 데이타가 수집점(135)으로 전송된다. 230에서, 수집점(135)의 처리 유닛(145)은 루트 시간을 결정한다. 루트 시간은, 샘플 메시지가 메시지를 발하는 큐 관리자, 예를 들어 큐 관리자(105a)에서 임의의 중개 큐 관리자를 통해 수신 큐 관리자, 예를 들어 큐 관리자(105c)로 전송된 후 동일 루트를 따라 수신 큐 관리자(105c)에서 발신 큐 관리자로 다시 전송되는 데 걸리는 시간으로 정의된다. 일 실시예에서, 루트 시간의 측정은 측정될 애플리케이션과 동일한 경로를 이용하여 MOM 네트워크(100)를 통해 샘플 메시지를 전송하는 독립 프로세스에 의존한다. 전술한 바와 같이, 루트 시간 컴포넌트는 측정에 수반되는 모든 큐 관리자, 예를 들어 큐 관리자들(105a, 105b, 105c)에 대해 일련의 데이지 체인 원격 큐 정의를 생성함으로써 측정된다.
230에서, 필드(505)에 저장된 발신 타임스탬프 및 필드(525)에 저장된 종료 타임스탬프에 기초하여, 처리 유닛(145)은 루트 시간을 결정한다. 구체적으로, 루트 시간은 발신 타임스탬프와 종료 타임스탬프의 차를 취함으로써 결정된다. 발신 타임스탬프 및 종료 타임스탬프는 동일 큐 관리자(105a)와 연관되어 있으므로, 동기화는 문제가 되지 않는다. 루트 시간은 수집점(135)의 메모리 유닛(140)에 저장된다.
또한, 필드들(510a...520b)에 저장된 중개 큐 관리자(105b) 및 수신 큐 관리자(105c)에 대한 도달 타임스탬프 및 전송 타임스탬프에 기초하여, 인트라-큐 관리자 시간들이 처리 유닛(145)에 의해 결정된다. 구체적으로, 각각의 큐 관리자에 대한 도달 타임스탬프와 대응 전송 타임스탬프 간의 차이는 인트라-큐 관리자 시간을 나타낸다. MOM 네트워크(100)를 따른 인트라-큐 관리자 시간들의 합은 총 큐 관리자 처리 시간을 나타낸다. 일 실시예에서, MOM 네트워크(100)를 따른 인트라-큐 관리자 시간들의 평균치도 계산될 수 있다. 인트라-큐 관리자 시간들을 나타내는 데이타도 메모리 유닛(140)에 저장된다.
루트 시간 컴포넌트를 결정하는 것에 더하여, 235에서 미들웨어 응답 시간을 계산하기 위해 큐 거주 시간도 필요하다. 도 6 및 7은 큐 거주 시간과, 본 발명의 실시예에서 큐 거주 시간이 어떻게 결정되는지를 나타낸다. 큐 거주 시간은 도 6에 도시된 바와 같이 실제 애플리케이션 메시지가 로컬 생산 큐(110a)에, 로컬 생산 큐(110b)에, 그리고 로컬 생산 큐(110c)에 저장되어 있는 시간으로서 정의된다. 큐 거주 시간들의 합은 총 큐 거주 시간으로서 지칭된다. 일 실시예에서, 큐 거주 시간들의 측정은, 각각의 에이전트가 각각의 로컬 생산 큐에 넣어지는 실제 애플리케이션 메시지를 샘플링하고, 샘플링된 메시지를 채널 메시지 출구를 통해 식별하고, 이 메시지가 로컬 생산 큐로부터 인출되는 시점을 캡쳐하는 독립 프로세스에 의존한다. 일 실시예에서, 메시지는 조절 가능한 속도로 샘플링된다. 메시지들의 샘플 세트에 기초하여, 도 7을 참조하여 후술하는 바와 같이 큐 거주 시간이 계산된다.
에이전트(115, 125, 130)는 로컬 생산 큐(110a, 110b, 110c) 각각에 대한 큐 거주 시간을 결정한다. 본 명세서에서는 MOM 네트워크(100) 내의 노드 B(150b) 및 노드 C(150c)에서 동일한 프로시져가 이어지므로, 큐 거주 시간을 결정하는 프로시져는 에이전트(115) 및 로컬 생산 큐(110a)만을 참조하여 설명된다. 애플리케이션이 로컬 생산 큐(110a)에 실제 메시지를 넣을 때, 메시지 출구 및 API 출구와 같은 수집 컴포넌트는 705에서 메시지들 중 적어도 하나의 샘플을 취한다. 에이전트(115)는 710에서 샘플링된 메시지와 연관된 식별자(ID)를 결정하고 저장하며, 715 및 720에서 각각 저장 타임스탬프를 결정하고 저장한다. 저장 타임스탬프는 샘플링된 메시지가 로컬 생산 큐(110a)에 넣어진 시간을 나타낸다. 일 실시예에서, ID는 샘플링된 메시지의 필드에 위치한다. 메시지들이 애플리케이션 컴포넌트에 의해 로컬 생산 큐(110a)로부터 검색될 때, 각각의 검색된 메시지들의 ID들과 샘플링된 메시지의 저장된 ID 간의 비교가 725에서 수행된다. 일치하는 경우, 취득 타임스탬프로서 지칭되는 다른 타임스탬프가 730에서 결정된다. 취득 타임스탬프는 샘플링된 메시지가 로컬 생산 큐(110a)로부터 검색된 시간을 나타낸다. 이어서, 735에서 에이전트(115)에 의해 로컬 생산 큐(110a)에 대한 큐 거주 시간이 결정된다. 일 실시예에서, 큐 거주 시간은 각각의 취득 타임스탬프와 각각의 저장 타임스탬프 간의 차이와 동일하다. 계산된 큐 거주 시간은 740에서 수집점(135)으로 전송된다. 각각의 큐 관리자(105a, 105b, 105c)와 연관된 큐 거주 시간들은 수집점(135)으로 전송된다. 처리 유닛(145)은 큐 거주 시간들을 더하여 총 큐 거주 시간을 결정하며, 개별 큐 거주 시간들 및 총 큐 거주 시간을 메모리 유닛(140)에 저장한다. 다른 실시예에서, 각각의 에이전트는 큐에 저장된 다수의 메시지를 샘플링하고 샘플링된 메시지들에 대응하는 저장 타임스탬프 및 취득 타임스탬프를 결정하고 다수의 큐 거주 시간을 계산하고 하나의 인터벌에 대해 큐 거주 시간들을 평균화함으로써 각각의 큐 거주 시간을 계산한다.
총 큐 거주 시간을 결정하기 위하여, MOM 네트워크(100) 내의 큐 관리자들(105a, 105b, 105c)은 동기화될 필요가 없는데, 이는 샘플링된 메시지에 대한 저장 타임스탬프와 샘플링된 메시지에 대한 취득 타임스탬프 사이의 차이가 각각의 로컬 생산 큐에 대해 결정되기 때문이다.
샘플 메시지가 미들웨어 네트워크를 통해 이동하는 시간, 즉 루트 시간으로 지칭되는 시간과, 샘플링된 메시지들이 로컬 생산 큐들(110a, 110b, 110c)에 거주하는 시간으로 구성되는 추정 애플리케이션 미들웨어 응답 시간이 240에서 결정된다. 이어서, 루트 시간을 큐 거주 시간들의 합과 조합함으로써 응답 시간이 결정된다. 또한, 루트 시간에서 총 인트라-큐 관리자 시간을 감산함으로써 네트워크 시간이 결정될 수 있다.
루트 시간을 결정하기 위한 본 발명의 실시예들은 로컬 생산 큐들과 별개로 유지되는 체인 전송 큐들을 참조하여 설명된다. 전송 큐를 사용하여, 실제 애플리케이션 메시지가 MOM 네트워크(100)를 통해 전송되는 성능이 시뮬레이션된다. 그러나, 실시예들은 로컬 생산 큐들 및/또는 실제 애플리케이션 메시지들을 이용하여 루트 시간 및 따라서 응답 시간을 결정하는 것에도 동일하게 적용될 수 있다.
데이타를 수집점(135)에 전송하고 이 데이타를 메모리 유닛(140)에 저장함으로써, 예를 들어 큐 통계와 관련된 추가 성능 정보가 얻어질 수 있다. 이러한 큐 통계는 평균 큐 거주 시간, 높고 낮은 큐 거주 시간, 취득 타임스탬프의 수 및 저장 타임스탬프의 수를 포함한다. 또한, 경보를 발생시키기 위한 임계치가 설정되어, 예를 들어 큐 거주 시간이 임계치보다 클 때 경보가 각각의 큐에 대해 전송되도록 할 수 있다.
또한, MOM 네트워크(100)의 성능이 모니터될 수 있도록 하나 이상의 사용자 인터페이스가 개발될 수 있다. 사용자는 응답 시간, 큐 거주 시간 및 루트 시간이 소정의 파라미터 내에 있는지, 임계치, 샘플 메시지 내의 메시지 수 및 각 메시지의 크기를 초과하는지에 관계없이 이들 시간을 모니터할 수 있다. 예를 들어, 하나 이상의 큐의 성능을 모니터하기 위한 사용자 인터페이스가 개발되어 사용될 수 있다.
도 8b는 본 발명의 적어도 하나의 큐를 모니터하는 예시적인 사용자 인터페이스를 나타낸다. 또한, 도 7b는 본 발명의 루트 시간을 모니터하는 예시적인 사용자 인터페이스를 나타낸다. 사용자 인터페이스는 모든 큐의 리스트, 각 큐의 상태 및 각각의 메트릭에 대한 임계치 및 현재 값을 포함할 수 있다. 원하는 파라미터 및 임계치는 하나 이상의 추가 사용자 인터페이스를 통해 사용자에 의해 입력될 수 있다. 도 7a는 샘플 메시지가 이동하는 루트를 개발하기 위해 에이전트에 의해 사용되는 예시적인 사용자 인터페이스를 나타내며, 도 8a는 특정 큐에 대한 큐 임계치를 추가하기 위한 예시적인 사용자 인터페이스를 나타낸다.
일 실시예에서는 샘플 메시지에 대한 경로를 정의하기 위해 루트 구축 애플리케이션이 사용된다. 루트 구축 애플리케이션에 의해 각각의 루트가 명명되고 개별 큐 관리자가 추가된다. 본 발명의 실시예들에서, 샘플 메시지는 도 3에 도시된 바와 같이 발신 큐 관리자(105a)에서 중개 큐 관리자(105b)를 통해 수신 큐 관리자(105c)로 전송된 후 정확히 동일한 경로를 따라 발신 큐 관리자(105a)로 돌아온다. 따라서, 루트 시간을 결정하기 위해 발신 큐 관리자(105a), 중개 큐 관리자(105b) 및 수신 큐 관리자(105c)가 동기화될 필요는 없다. 대안으로, 수신 큐 관리자(105c)와 연관된 원격 큐 정의를 변경함으로써, 샘플 메시지는 다른 경로를 통해 발신 큐 관리자(105a)로 돌아갈 수 있다. 유사하게, 샘플 메시지는 발신 큐 관리자(105a)로 돌아가므로, 큐 관리자들은 동기화될 필요가 없다. 그러나, 샘플 메시지가 발신 큐 관리자(105a)와 다른 큐 관리자로 돌아가는 경우, 그 큐 관리자 및 발신 큐 관리자(105a)는 루트 시간을 결정하기 위해서는 동기화되어야 한다.
다른 대체 실시예에서, 샘플 메시지가 발신 큐 관리자(105a)에서 수신 큐 관리자(105c)로 이동하는 시간인 단방향 루트 시간이 결정될 수 있다. 루트 시간을 정확하게 추정하기 위해서는 발신 큐 관리자(105a) 및 수신 큐 관리자(105c)가 동기화되어야 한다. 수집점(135)에서 각각의 큐 관리자로부터 데이타가 수집되며, 처리 유닛(145)에 의해 루트 시간이 결정된다.
전술한 실시예들은 본 발명의 설명을 위한 예일 뿐이며, 본 발명이 이러한 특정 실시예들로 한정되는 것으로 해석되지 않아야 한다. 첨부된 청구범위에 정의된 바와 같은 본 발명의 사상 또는 범위를 벗어나지 않고 당업자에 의해 다양한 변경 및 수정이 이루어질 수 있다.

Claims (9)

  1. 미들웨어 성능을 모니터하는 방법에 있어서,
    소정의 네트워크 루트를 따라 전송되는 메시지에 대한 루트 시간을 결정하는 단계;
    적어도 하나의 다른 메시지가 상기 소정의 네트워크 루트를 따라 위치하는 적어도 하나의 각각의 큐에 저장되는 시간의 양을 반영하는 적어도 하나의 큐 거주 시간을 결정하는 단계; 및
    상기 루트 시간 및 상기 적어도 하나의 큐 거주 시간에 따라 미들웨어 응답 시간을 계산하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 루트 시간을 결정하는 단계는 상기 메시지가 상기 소정의 네트워크 루트를 따라 소스 노드에서 목적 노드로 이동한 후 다시 상기 소스 노드로 돌아오는 데 걸리는 시간의 양을 결정하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 루트 시간을 결정하는 단계는
    상기 메시지가 상기 소스 노드에서 전송된 때를 나타내는 발신 타임스탬프를 결정하는 단계;
    상기 메시지의 필드에 상기 발신 타임스탬프를 저장하는 단계;
    상기 소스 노드가 상기 목적 노드로부터 상기 메시지를 수신한 때를 나타내는 종료 타임스탬프를 결정하는 단계;
    상기 메시지 필드에 상기 종료 타임스탬프를 저장하는 단계; 및
    상기 발신 타임스탬프와 상기 종료 타임스탬프 간의 차를 결정함으로써 상기 루트 시간을 계산하는 단계
    를 포함하는 방법.
  4. 제1항에 있어서, 상기 적어도 하나의 질의 거주 시간을 결정하는 단계는
    복수의 애플리케이션 메시지를 샘플링하는 단계;
    상기 샘플링된 메시지에 대한 식별자를 결정하는 단계-상기 식별자는 상기 샘플링된 메시지의 필드에 저장됨-;
    상기 샘플링된 메시지의 식별자를 저장하는 단계;
    상기 샘플링된 메시지에 대한 배치 타임스탬프를 결정하는 단계-상기 배치 타임스탬프는 상기 샘플링된 메시지가 로컬 생산 큐에 배치된 때를 나타냄-;
    상기 로컬 생산 큐로부터 검색된 메시지와 연관된 식별자를 상기 샘플링된 메시지의 식별자와 비교하는 단계;
    일치하는 것으로 결정된 경우, 상기 샘플링된 메시지에 대한 취득 타임스탬프를 결정하는 단계-상기 취득 타임스탬프는 상기 샘플링된 메시지가 상기 로컬 생산 큐로부터 검색된 때를 나타냄-; 및
    상기 배치 타임스탬프와 상기 취득 타임스탬프 사이의 차를 결정함으로써 큐 거주 시간을 계산하는 단계
    를 포함하는 방법.
  5. 제1항에 있어서, 상기 미들웨어 응답 시간을 계산하는 단계는 상기 루트 시간 및 상기 적어도 하나의 큐 거주 시간을 더하는 단계를 포함하는 방법.
  6. 제1항에 있어서, 상기 메시지는 실제 애플리케이션 메시지를 복사한 사용자 정의 샘플 메시지인 방법.
  7. 제6항에 있어서, 상기 사용자 정의 샘플 메시지는 함께 배치(batch)화된 복수의 메시지이고, 상기 복수의 메시지는 동일하거나 다른 크기를 갖는 방법.
  8. 미들웨어 성능을 모니터하는 방법에 있어서,
    사용자 정의 샘플 메시지가 소정의 네트워크 루트를 따라 전송되는 루트 시간을 결정하는 단계-상기 루트 시간은 상기 샘플 메시지가 발신 큐 관리자에서 수신 큐 관리자로 이동한 후 다시 동일 루트를 따라 발신 큐 관리자로 돌아오는 데 걸리는 시간의 양을 반영함-;
    적어도 하나의 로컬 생산 큐에 대한 적어도 하나의 큐 거주 시간을 결정하는 단계-상기 적어도 하나의 로컬 생산 큐는 상기 발신 큐 관리자 및/또는 상기 수신 큐 관리자와 연관되며, 상기 적어도 하나의 큐 거주 시간은 실제 애플리케이션 메시지가 상기 적어도 하나의 로컬 생산 큐에 저장되어 있는 시간의 양을 반영함-; 및
    상기 적어도 하나의 큐 거주 시간에 상기 루트 시간을 더함으로써 미들웨어 응답 시간을 계산하는 단계
    를 포함하는 방법.
  9. 미들웨어 성능을 모니터하기 위한 시스템에 있어서,
    샘플 메시지 및 애플리케이션 메시지를 생성하는 컴퓨터 시스템; 및
    상기 컴퓨터 시스템에 전기적으로 접속되고, 명령들이 인코딩되어 있는 컴퓨터 메모리
    를 포함하고, 상기 명령들은
    소정의 네트워크 루트를 따라 전송되는 상기 샘플 메시지에 대한 루트 시간을 결정하는 단계;
    상기 애플리케이션 메시지가 상기 소정의 네트워크 루트를 따라 위치하는 적어도 하나의 각각의 큐에 저장되어 있는 시간의 양을 반영하는 적어도 하나의 큐 거주 시간을 결정하는 단계; 및
    상기 루트 시간 및 상기 적어도 하나의 큐 거주 시간에 따라 미들웨어 응답 시간을 계산하는 단계
    를 수행하는 미들웨어 성능 모니터 시스템.
KR1020057012500A 2003-01-03 2003-12-30 미들웨어 응답 시간 측정 시스템 및 방법 KR20050084519A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43784803P 2003-01-03 2003-01-03
US60/437,848 2003-01-03

Publications (1)

Publication Number Publication Date
KR20050084519A true KR20050084519A (ko) 2005-08-26

Family

ID=32713239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057012500A KR20050084519A (ko) 2003-01-03 2003-12-30 미들웨어 응답 시간 측정 시스템 및 방법

Country Status (11)

Country Link
US (1) US7386613B2 (ko)
EP (1) EP1581883B1 (ko)
JP (1) JP2006512687A (ko)
KR (1) KR20050084519A (ko)
CN (1) CN1833235A (ko)
AT (1) ATE465454T1 (ko)
AU (1) AU2003300172A1 (ko)
BR (1) BR0317903A (ko)
CA (1) CA2512466A1 (ko)
DE (1) DE60332274D1 (ko)
WO (1) WO2004063858A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060285509A1 (en) * 2005-06-15 2006-12-21 Johan Asplund Methods for measuring latency in a multicast environment
US8015277B2 (en) * 2009-02-18 2011-09-06 International Business Machines Corporation Method and system for simulating latency between layers of multi-tier applications
US20120072358A1 (en) * 2010-09-16 2012-03-22 Cisco Technology, Inc. Customer care replies on social media
US8938534B2 (en) 2010-12-30 2015-01-20 Ss8 Networks, Inc. Automatic provisioning of new users of interest for capture on a communication network
US9058323B2 (en) 2010-12-30 2015-06-16 Ss8 Networks, Inc. System for accessing a set of communication and transaction data associated with a user of interest sourced from multiple different network carriers and for enabling multiple analysts to independently and confidentially access the set of communication and transaction data
US8972612B2 (en) 2011-04-05 2015-03-03 SSB Networks, Inc. Collecting asymmetric data and proxy data on a communication network
US9350762B2 (en) 2012-09-25 2016-05-24 Ss8 Networks, Inc. Intelligent feedback loop to iteratively reduce incoming network data for analysis
US9304896B2 (en) * 2013-08-05 2016-04-05 Iii Holdings 2, Llc Remote memory ring buffers in a cluster of data processing nodes
US9313110B2 (en) * 2014-01-22 2016-04-12 International Business Machines Corporation Managing processing branches in an operator graph
US9830593B2 (en) 2014-04-26 2017-11-28 Ss8 Networks, Inc. Cryptographic currency user directory data and enhanced peer-verification ledger synthesis through multi-modal cryptographic key-address mapping
US10572319B2 (en) * 2017-11-03 2020-02-25 Dell Products, L.P. Optimization of message oriented middleware monitoring in heterogenenous computing environments
US10579449B1 (en) 2018-11-02 2020-03-03 Dell Products, L.P. Message queue architectures framework converter
US12033212B2 (en) * 2021-06-08 2024-07-09 Citigroup Technology, Inc. Systems and methods for non-intrusive monitoring of intra-process latency of application

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430615B1 (en) * 1998-03-13 2002-08-06 International Business Machines Corporation Predictive model-based measurement acquisition employing a predictive model operating on a manager system and a managed system
US6711137B1 (en) * 1999-03-12 2004-03-23 International Business Machines Corporation System and method for analyzing and tuning a communications network
WO2001045291A1 (en) * 1999-12-17 2001-06-21 Nokia Corporation A delay measurement system in a packet network
US7225259B2 (en) * 2001-02-21 2007-05-29 Nokia Inc. Service tunnel over a connectionless network
US6768968B2 (en) * 2002-04-18 2004-07-27 International Business Machines Corporation Method and system of an integrated simulation tool using business patterns and scripts
US7489635B2 (en) * 2004-09-24 2009-02-10 Lockheed Martin Corporation Routing cost based network congestion control for quality of service

Also Published As

Publication number Publication date
JP2006512687A (ja) 2006-04-13
EP1581883A4 (en) 2009-01-07
CA2512466A1 (en) 2004-07-29
EP1581883A2 (en) 2005-10-05
WO2004063858A3 (en) 2005-01-06
US7386613B2 (en) 2008-06-10
EP1581883B1 (en) 2010-04-21
WO2004063858A2 (en) 2004-07-29
CN1833235A (zh) 2006-09-13
BR0317903A (pt) 2005-11-29
ATE465454T1 (de) 2010-05-15
DE60332274D1 (de) 2010-06-02
US20050055439A1 (en) 2005-03-10
AU2003300172A1 (en) 2004-08-10

Similar Documents

Publication Publication Date Title
US11387925B2 (en) System for establishing and maintaining a clock reference indicating one-way latency in a data network
US6868094B1 (en) Method and apparatus for measuring network data packet delay, jitter and loss
US5627766A (en) Performance and status monitoring in a computer network
EP1936867B1 (en) Delay measurements in network traffic
US7843815B2 (en) Estimation of time-varying latency based on network trace information
EP2242236B1 (en) Method for measuring frame loss, system for measuring frame loss, and device for measuring frame loss
KR20050084519A (ko) 미들웨어 응답 시간 측정 시스템 및 방법
US20020006115A1 (en) Non-deterministic software delay estimation method and system for packet based data network systems
US7286482B2 (en) Decentralized SLS monitoring in a differentiated service environment
US20120127866A1 (en) Real-time network measurement
Mutschler et al. Distributed low-latency out-of-order event processing for high data rate sensor streams
US20090310508A1 (en) Real-time network measurement
US20240331038A1 (en) Systems and methods for non-intrusive monitoring of intra-process latency of application
WO2014018813A1 (en) A distributed aggregation of real-time metrics for large scale distributed systems
US20220247651A1 (en) System and method for network and computation performance probing for edge computing
Weiss et al. A dataset and a comparison of out-of-order event compensation algorithms
US9112927B2 (en) Network system and communication device
JP3866647B2 (ja) パケット損失率測定方法及びシステム
Chauhan et al. SMQTT: A Lightweight Clock Synchronization Algorithm for IoT Devices Using MQTT
Jerzak et al. Fail-aware publish/subscribe
Tierney et al. Using NetLogger for distributed systems performance analysis of the BaBar data analysis system
Carvalho et al. Architecture for the interconnection of prototypical medical instrument via cloud services
CN117768358A (zh) 一种设备能力的获取方法以及相关设备
Grimaldi Workload measurement method into a Distributed Measurement Laboratory

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid