KR101599076B1 - A system and method for providing quality-of-services in a multi-event processing environment - Google Patents

A system and method for providing quality-of-services in a multi-event processing environment Download PDF

Info

Publication number
KR101599076B1
KR101599076B1 KR1020100108208A KR20100108208A KR101599076B1 KR 101599076 B1 KR101599076 B1 KR 101599076B1 KR 1020100108208 A KR1020100108208 A KR 1020100108208A KR 20100108208 A KR20100108208 A KR 20100108208A KR 101599076 B1 KR101599076 B1 KR 101599076B1
Authority
KR
South Korea
Prior art keywords
event
service
quality
function
processing
Prior art date
Application number
KR1020100108208A
Other languages
Korean (ko)
Other versions
KR20110049705A (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 KR20110049705A publication Critical patent/KR20110049705A/en
Application granted granted Critical
Publication of KR101599076B1 publication Critical patent/KR101599076B1/en

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/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2869Operational details of access network equipments
    • H04L12/287Remote access server, e.g. BRAS
    • H04L12/2876Handling of subscriber policies
    • 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/12Avoiding congestion; Recovering from congestion
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

다중 처리 데이터베이스 환경에서 동시 이벤트 처리 애플리케이션에 서비스 품질(QoS) 기능을 제공하는 시스템 및 방법에 관한 것이다. 시스템은 처리되는 이벤트에 적용가능한 서비스 품질 기능을 판정하는 이벤트 리스너 인터페이스와 판정된 서비스 품질 기능을 호출하는 이벤트 서비스 인터페이스를 포함한다. 이벤트 서비스 인터페이스는 서비스 품질 기능을 로드하고 초기화하고 기동시킨다. 서비스 품질 기능은 서비스 정의에 기초를 둔다. 이벤트 서비스 인터페이스는 또한 서비스 제공자를 초기화하고, 서비스 품질 지원을 필요로 하는 이벤트들을 각각의 서비스 제공자에게 보내어 처리하게 한다. 서비스 품질 기능은 이벤트 시퀀싱, 이벤트 분리, 높은 가용성, 이벤트 필터링 및 유동 제어와 같이 클러스터화 이벤트 처리 데이터베이스 시스템에서 통상적으로 요구되는 서비스들을 포함한다. 본 발명에서 제공하는 것과 동일한 인터페이스를 이용해서 데이터베이스 시스템에 다른 서비스 품질 기능이 추가될 수 있다.To a system and method for providing quality of service (QoS) functionality to concurrent event processing applications in a multi-processing database environment. The system includes an event listener interface that determines a quality of service capability applicable to the event being processed and an event service interface that invokes the determined quality of service function. The event service interface loads, initializes, and invokes the quality of service function. The quality of service function is based on the service definition. The event service interface also initializes the service provider and sends events requiring service quality support to each service provider for processing. The quality of service function includes services typically required in a clustered event processing database system such as event sequencing, event isolation, high availability, event filtering and flow control. Other service quality functions may be added to the database system using the same interface provided by the present invention.

Figure R1020100108208
Figure R1020100108208

Description

다중 이벤트 처리 환경에서 서비스 품질들을 제공하는 시스템 및 방법{A SYSTEM AND METHOD FOR PROVIDING QUALITY-OF-SERVICES IN A MULTI-EVENT PROCESSING ENVIRONMENT}[0001] SYSTEM AND METHOD FOR PROVIDING QUALITY OF SERVICES IN A MULTI-EVENT PROCESSING ENVIRONMENT [0002]

본 발명은 일반적으로 데이터베이스에 관한 것이고, 특히 다중 처리 데이터베이스 환경에서 동시발생적 이벤트 처리 애플리케이션에 서비스 품질(Quality-of-Service; QoS)를 제공하는 시스템 및 방법에 관한 것이다.The present invention relates generally to databases and, more particularly, to a system and method for providing Quality of Service (QoS) to concurrent event processing applications in a multi-processing database environment.

이벤트 처리는 데이터베이스 애플리케이션에 있어서 온라인 예약 및 금융 거래를 취급하는 것과 같은 핵심 작업이다. 은행 데이터베이스 시스템에 있어서, 고객의 은행 계좌와 관련한 많은 이벤트들은 그 계좌에 대하여 처리 및 갱신이 동시에 수행될 필요가 있을 수 있다. 예를 들면, 은행의 자동 청구대금 결제(bill-payment) 서비스에 의해 고객의 대금 결제를 처리하는 동안에 고객이 서비스 창에서 동일 계좌에 예금을 진행할 수 있다. 대금 결제와 계좌 예금 거래는 둘 다 은행 시스템에 의해 처리될 때 계좌 잔액(account balance)에 영향을 주고 시스템의 동시발생적 이벤트 처리 애플리케이션에 의해 처리될 필요가 있는 이벤트들이다. 또한, 이러한 거래의 결과들은 계좌 잔액을 정확히 반영하기 위하여 은행 데이터베이스에서 정확하게 갱신되어야 한다.Event handling is a key task for database applications, such as handling online bookings and financial transactions. In a bank database system, many events related to a customer's bank account may need to be processed and updated simultaneously for that account. For example, the customer may proceed to the same account in the service window while the customer's bill payment is being processed by the bank's automatic bill payment service. Both payment settlement and account deposit transactions are events that affect the account balance when they are processed by the banking system and need to be processed by the system's concurrent event handling application. In addition, the results of such transactions must be accurately updated in the banking database to accurately reflect the balance of the account.

점차적으로, 데이터베이스 애플리케이션은 다량의 변화하는 워크로드를 수용하고 기업 네트워크의 다수의 컴퓨터를 지원하도록 전형적으로 클러스터화 컴퓨터 환경에서 호스트된다. 이러한 컴퓨터 클러스터는 사용자 요구에 따른 워크로드 조정(workload balancing) 및 시스템 스케일링(system scaling)을 용이하게 한다. 예를 들면, 은행 데이터베이스 시스템은 은행의 각 지점을 지원하는 수 개의 서버에서 구동하는 이벤트 처리 애플리케이션의 많은 인스턴스를 가질 것이다. 이 서버들은 은행 네트워크에 연결되고 서로 다른 물리적 위치 또는 동일한 물리적 위치에 있을 수 있다.Gradually, database applications are hosted in a clustered computer environment, typically to accommodate a large number of changing workloads and to support multiple computers in an enterprise network. These computer clusters facilitate workload balancing and system scaling according to user needs. For example, a bank database system will have many instances of event processing applications running on several servers supporting each branch of the bank. These servers can be connected to a bank network and can be in different physical locations or in the same physical location.

대안적으로, 하나의 서버가 주(main) 처리 서버로서 기능하는 동안 다른 서버들은 상기 주 서버에 대한 백업 시스템으로서 작용할 수 있다. 또한, 거래량의 대량 증가가 예상되는 금요일 또는 매월의 마지막 수 일처럼 사용자 수요가 높은 기간 동안에 이벤트 처리 애플리케이션의 다른 인스턴스들이 시스템에 추가될 수 있다.Alternatively, while one server functions as a main processing server, other servers may act as a backup system for the main server. In addition, other instances of the event processing application may be added to the system during periods of high user demand, such as Friday or the last few days of the month where a large increase in transaction volume is anticipated.

이벤트 처리 애플리케이션들의 동시발생적때문에, 서비스 품질의 특징(feature)들은 일반적으로 이벤트가 처리되는 동안에 불균형한 워크로드 할당에 의해 야기되는 페일오버(failover), 경쟁 상태(racing condition) 및 빈약한 시스템 성능과 같은 시스템 문제점들을 취급하도록 요구된다. 일반적으로, 이러한 서비스 품질 기능들은 개별적으로 개발되어 이벤트 처리 애플리케이션 또는 이 애플리케이션을 지원하는 미들웨어에 내장된다. 예를 들면, 미국 뉴욕주 아몽크에 소재하는 인터내셔널 비즈니스 머신즈 코포레이션에서 제작한 웹스피어 제품에서 이 서비스들은 개별적으로 취급되고 제품에 내장된다.Because of the concurrent occurrence of event processing applications, the quality of service features are generally associated with failover, racing condition, and poor system performance caused by unbalanced workload allocation during event processing It is required to handle the same system problems. In general, these quality of service functions are individually developed and embedded in an event processing application or middleware that supports the application. For example, in a WebSphere product manufactured by International Business Machines Corporation, Armonk, NY, these services are individually handled and embedded in the product.

지금까지의 설명으로부터, 전술한 바와 같은 단점들을 제거하고 데이터베이스 환경에서 동시발생적 이벤트 처리 애플리케이션에 서비스 품질 기능을 제공하기 위한 시스템 및 방법의 필요성이 있다는 것을 알 수 있다.From the foregoing, it can be seen that there is a need for a system and method for eliminating the aforementioned drawbacks and for providing a quality of service function to a concurrent event processing application in a database environment.

본 발명은 동시에 구동하는 다수의 이벤트 처리 애플리케이션들을 갖는 다중 처리 환경에서 서비스 품질 기능을 제공하는 시스템 및 방법에 관한 것이다. 각각의 이벤트 처리 애플리케이션은 이벤트 리스너(Event-Listener) 인터페이스와 이벤트 서비스 인터페이스를 포함한다. 이벤트 서비스 인터페이스는 이벤트 리스너 인터페이스로부터 액세스가능하다. 인입하는(incoming) 이벤트를 처리하는 동안에, 이벤트 리스너 인터페이스는 서비스 품질 기능을 필요로하는 이벤트들을 식별하고 이벤트 서비스 인터페이스를 기동시켜서 적용가능한 서비스 품질 기능을 제공한다. 이벤트 서비스 인터페이스는 이 이벤트들을 적당한 서비스 제공자에게 보내어 서비스 제공자가 소정의 서비스 품질 특징을 이러한 서비스 품질 특징을 필요로 하는 이벤트 처리 애플리케이션에 공급하게 한다.The present invention relates to a system and method for providing a quality of service function in a multiprocessing environment having a plurality of concurrently running event processing applications. Each event processing application includes an event-listener interface and an event service interface. The event service interface is accessible from the event listener interface. During the processing of an incoming event, the event listener interface identifies events that require quality of service functionality and invokes the event service interface to provide applicable quality of service features. The event service interface sends these events to the appropriate service provider so that the service provider can supply the desired service quality characteristics to the event processing applications that require these service quality features.

이벤트 서비스 인터페이스는 서비스 품질 기능을 메모리에 로드하고 이벤트 서비스 인터페이스가 지원을 제공하도록 호출될 때 상기 기능을 기동시키는 구성요소를 포함한다. 서비스 품질 기능은 일반적으로 이벤트가 처리될 때 특정의 문제점들을 금지 또는 취급하는데 도움을 주어서 시스템의 전체 성능을 개선하도록 하는 서비스이다. 예를 들면, 서비스 품질 기능은 동시발생적 애플리케이션에 의해 처리되는 이벤트의 순서를 관리하기 위한 이벤트 시퀀싱(Event-Sequencing) 서비스일 수 있다. 금융 거래와 같은 특정 유형의 이벤트에 있어서, 처리되는 이벤트의 순서는 그 순서가 가끔은 처리 결과에 영향을 주기 때문에 매우 중요하다. 다른 하나의 서비스 품질 기능은 시스템에서 잠재적으로 경쟁 상태(racing condition)를 야기할 수 있는 관련 이벤트들의 처리를 긴밀하게 관리하기 위한 이벤트 분리(Event-Isolation) 기능일 수 있다. 경쟁 상태는 시스템 자원들이 2개의 이벤트를 동시에 정확하게 처리할 수 없을 때 발생한다. 2개 이벤트의 동시 처리는 일관되지 않은 결과들을 생성하게 될 것이다. 경쟁 상태를 피하기 위해, 하나의 이벤트의 처리는 다른 이벤트의 처리가 종료된 후에만 시작할 수 있다.The event service interface includes components that load the quality of service functionality into memory and invoke the function when the event service interface is called to provide support. The quality of service function is generally a service that helps improve the overall performance of the system by helping to prevent or treat certain problems when the event is processed. For example, the quality of service function may be an Event-Sequencing service for managing the order of events processed by concurrent applications. For certain types of events, such as financial transactions, the order of the events being processed is very important because the ordering sometimes affects the processing results. The other service quality function may be an event-isolation function for closely managing the processing of related events that may cause potentially racing conditions in the system. A race condition occurs when system resources can not process two events correctly at the same time. Simultaneous processing of two events will produce inconsistent results. To avoid a race condition, the processing of one event can only start after the processing of another event has ended.

시스템은 이벤트 및 이중화 이벤트의 손실을 회피하기 위해 페일오버 조건을 취급하기 위한 높은 가용성(High-Availability)의 서비스 품질 기능을 또한 포함한다. 본 발명의 시스템에 의해 제공되는 다른 하나의 서비스 품질 기능은 모든 인입 이벤트들에 대해서가 아닌 부분집합의 이벤트들에 서비스 품질 기능을 선택적으로 인가하여 시스템의 전체 성능을 개선하는 이벤트 필터링(Event-Filtering) 서비스이다. 또한, 애플리케이션에 의해 처리되는 인입 이벤트의 속도를 감시 및 제어하여 시스템이 이벤트의 대량 유입에 의해 압도(overwhelm)되지 않도록 유동 제어(Flow-Control)의 서비스 품질 기능이 제공된다.The system also includes a High-Availability Quality of Service feature for handling failover conditions to avoid loss of events and duplication events. Another quality of service function provided by the system of the present invention is event-filtering which improves the overall performance of the system by selectively applying a quality of service function to a subset of events rather than to all incoming events ) Service. In addition, a flow-control quality of service function is provided to monitor and control the rate of incoming events processed by the application so that the system is not overwhelmed by the mass inflow of events.

본 발명의 다른 태양에 있어서, 동시에 구동하는 다수의 동시발생적 이벤트 처리 애플리케이션을 가진 다중 처리 환경에서 서비스 품질 기능을 제공하는 컴퓨터 구현 방법이 제공된다. 이 방법은, 바람직하게, 이벤트 리스너 인터페이스를 통해 애플리케이션에 적용가능한 서비스 품질 기능을 식별하는 단계와 이벤트 서비스 인터페이스를 통하여 서비스 품질 기능을 호출하는 단계를 포함한다. 이벤트 리스너 인터페이스는 이벤트 처리 애플리케이션과 연관되고 이벤트 서비스 인터페이스에 액세스한다.In another aspect of the present invention, a computer implemented method is provided for providing a quality of service function in a multiprocessing environment having a plurality of concurrent event processing applications running concurrently. The method preferably includes identifying a quality of service function applicable to the application via an event listener interface and invoking a quality of service function via an event service interface. The event listener interface is associated with the event processing application and accesses the event service interface.

본 발명의 양호한 실시예에 있어서, 상기 방법은 동시발생적 이벤트 처리 애플리케이션에 의해 공통적으로 요구되는 일련의 서비스 품질 기능을 제공한다. 양호한 실시예의 서비스 품질 기능은 이벤트 시퀀싱, 이벤트 분리, 높은 가용성, 이벤트 필터링 및 유동 제어를 포함한다. 추가적인 서비스 품질 기능은 이벤트 리스너 인터페이스 및 이벤트 서비스 인터페이스를 이용하여 유사하게 구현 및 호출될 수 있다.In a preferred embodiment of the present invention, the method provides a set of service quality functions commonly required by concurrent event processing applications. The quality of service features of the preferred embodiment include event sequencing, event isolation, high availability, event filtering and flow control. Additional quality of service functions may similarly be implemented and invoked using an event listener interface and an event service interface.

상기 방법은 이벤트 서비스 인터페이스가 서비스 품질 기능을 호출할 때 서비스 품질 기능을 로드 및 기동시키는 단계를 더 포함한다. 서비스 품질 기능의 기동은 선언된 서비스의 초기화를 포함한다. 이벤트가 서비스 품질 기능을 필요로 한다고 이벤트 서비스 인터페이스가 결정하면, 본 발명의 방법은 해당 서비스 기능과 연관된 서비스 제공자를 로드하고 이벤트를 서비스 제공자에게 보내어 처리하게 한다.The method further comprises loading and activating a quality of service function when the event service interface invokes a quality of service function. Activation of the quality of service function involves initialization of the declared service. If the event service interface determines that the event requires a quality of service function, the method of the present invention loads the service provider associated with that service function and sends the event to the service provider for processing.

본 발명의 다른 하나의 태양에 있어서, 다중 처리 환경에서 동시발생적 이벤트 처리 애플리케이션에 서비스 품질 기능을 제공하기 위한 컴퓨터 프로그램 제품이 설명된다. 컴퓨터 프로그램 제품은 판독가능한 프로그램 코드를 저장하는 컴퓨터 사용가능한 기억 매체를 포함한다. 프로그램 코드는 이벤트 리스너 인터페이스를 통하여 이벤트 처리 애플리케이션에 적용가능한 서비스 품질 기능을 식별하고, 이벤트 서비스 인터페이스를 통하여 상기 서비스 기능을 호출한다. 이벤트 리스너 인터페이스와 이벤트 서비스 인터페이스는 이벤트 처리 애플리케이션과 연관되고, 이때 이벤트 서비스 인터페이스는 인입 이벤트의 처리 중에 이벤트 리스너 인터페이스로부터 액세스가능하다.In another aspect of the present invention, a computer program product for providing a quality of service function to a concurrent event processing application in a multiprocessing environment is described. The computer program product includes a computer usable storage medium for storing the readable program code. The program code identifies a service quality function applicable to an event processing application through an event listener interface and invokes the service function through an event service interface. The event listener interface and the event service interface are associated with the event processing application, wherein the event service interface is accessible from the event listener interface during the processing of the incoming event.

본 발명의 실시예의 구성 및 동작과 같은 본 발명의 양호한 실시예의 상세에 대해서는 첨부 도면을 참조하여 이 명세서의 '발명을 실시하기 위한 구체적인 내용' 부분에서 설명되며, 첨부 도면에 있어서 동일한 참조 번호는 동일한 부분을 지칭한다. '과제의 해결 수단'은 청구범위에 기재된 발명 주제의 핵심 특징을 나타내고 있지만, 이것은 청구범위에 기재된 발명 주제의 범위를 제한하는 용도로 의도되지는 않는다.The details of a preferred embodiment of the present invention, such as the configuration and operation of an embodiment of the present invention, are described in the Detailed Description section of the specification with reference to the accompanying drawings, wherein like reference numerals refer to like Quot; &Quot; Solution to the problem " represents a core feature of the inventive subject matter recited in the claims, but is not intended to limit the scope of the inventive subject matter recited in the claims.

동시에 구동하는 다수의 이벤트 처리 애플리케이션들을 갖는 다중 처리 환경에서 서비스 품질 기능을 제공하는 시스템 및 방법이 제공된다.A system and method for providing a quality of service function in a multiprocessing environment having multiple event processing applications running concurrently is provided.

도 1은 본 발명의 태양들을 적용할 수 있는 데이터베이스 환경을 나타낸 블록도.
도 2는 본 발명의 태양들이 제공된 쿼리 처리 애플리케이션을 각각 구동시키는, 클러스터 내에서 동작하는 다수의 서버를 가진 데이터베이스 환경을 나타낸 블록도.
도 3은 본 발명의 태양에 따라서, 서비스 품질 기능을 제공하기 위한, 클러스터 환경에서 각각의 쿼리 처리 애플리케이션 내의 핵심 인터페이스를 보인 블록도.
도 4는 본 발명의 태양에 따라서, 클러스터 환경에서 쿼리 처리 애플리케이션을 지원하는 이벤트 시퀀싱 서비스 품질 기능을 보인 블록도.
도 5는 본 발명의 태양에 따라서, 클러스터 환경에서 쿼리 처리 애플리케이션을 지원하는 이벤트 시퀀싱 및 이벤트 분리 서비스 품질 기능을 보인 블록도.
도 6은 본 발명의 태양에 따라서, 클러스터 환경에서 쿼리 처리 애플리케이션을 지원하는 이벤트 시퀀싱, 이벤트 분리 및 이벤트 필터링 서비스 품질 기능을 보인 블록도.
도 7은 본 발명의 태양에 따라서, 클러스터 환경에서 쿼리 처리 애플리케이션을 지원하는 이벤트 시퀀싱, 이벤트 분리, 이벤트 필터링 및 높은 가용성의 서비스 품질 기능을 보인 블록도.
도 8은 본 발명의 태양에 따라서, 클러스터 환경에서 쿼리 처리 애플리케이션을 지원하는 이벤트 시퀀싱, 이벤트 분리, 이벤트 필터링, 높은 가용성 및 유동 제어의 서비스 품질 기능을 보인 블록도.
도 9는 본 발명의 태양에 따라서, 이벤트 리스너 인터페이스, 이벤트 서비스 인터페이스 및 일련의 서비스 품질 기능의 예시적인 실시예를 나타낸 블록도.
도 10은 본 발명의 태양에 따라서, 이벤트 처리 애플리케이션에 서비스 품질 기능을 제공하는 예시적인 프로세스를 나타낸 흐름도.
도 11은 본 발명의 태양에 따라서, 도 10에 나타낸 서비스 품질 기능을 제공하는 프로세스 및 높은 가용성의 서비스 품질 기능을 제공하는 예시적인 프로세스를 더욱 구체적으로 보여주는 흐름도.
1 is a block diagram illustrating a database environment in which aspects of the present invention may be applied;
2 is a block diagram illustrating a database environment having multiple servers running in a cluster, each running a query processing application provided with aspects of the present invention;
3 is a block diagram illustrating a core interface within each query processing application in a clustered environment for providing quality of service functionality, in accordance with an aspect of the present invention.
4 is a block diagram illustrating an event sequencing service quality function supporting a query processing application in a clustered environment, in accordance with an aspect of the present invention.
5 is a block diagram illustrating event sequencing and event isolation service quality functionality supporting a query processing application in a clustered environment, in accordance with an aspect of the present invention.
6 is a block diagram illustrating event sequencing, event isolation, and event filtering service quality functions supporting a query processing application in a cluster environment, in accordance with an aspect of the present invention.
Figure 7 is a block diagram illustrating event sequencing, event isolation, event filtering, and high availability quality of service functionality supporting query processing applications in a clustered environment, in accordance with an aspect of the present invention.
Figure 8 is a block diagram illustrating event sequencing, event isolation, event filtering, high availability, and flow control quality of service features supporting query processing applications in a clustered environment, in accordance with an aspect of the present invention.
9 is a block diagram illustrating an exemplary embodiment of an event listener interface, an event service interface, and a set of quality of service functions, in accordance with an aspect of the present invention.
10 is a flow diagram illustrating an exemplary process for providing a service quality function to an event processing application in accordance with an aspect of the present invention.
Figure 11 is a flow chart illustrating, in more detail, an exemplary process for providing a service quality feature as shown in Figure 10 and a service quality feature with high availability, in accordance with an aspect of the present invention.

본 발명은 일반적으로 데이터베이스 환경에서 이벤트 처리 애플리케이션에 서비스 품질 기능을 제공하기 위한 시스템 및 방법에 관한 것이다. 더욱 구체적으로 말하면, 본 발명은 다중 처리 데이터베이스 환경에서 이벤트 처리 애플리케이션용의 서비스 품질 기능을 식별하고 호출하기 위한 프레임워크를 제공한다.The present invention generally relates to systems and methods for providing quality of service functionality to event processing applications in a database environment. More specifically, the present invention provides a framework for identifying and invoking quality of service features for event processing applications in a multi-processing database environment.

이 기술에 숙련된 사람이라면 알 수 있는 바와 같이, 본 발명의 태양들은 시스템, 방법 및 컴퓨터 프로그램 제품으로써 구현될 수 있다. 따라서, 본 발명의 태양들은 완전한 하드웨어 실시예의 형태, 완전한 소프트웨어 실시예의 형태(펌웨어, 상주 소프트웨어(resident software), 마이크로 코드 등을 포함함) 또는 소프트웨어 태양과 하드웨어 태양을 혼합한 실시예의 형태를 취할 수 있으며, 이 모든 형태에 대하여 이 명세서에서는 "회로", "모듈" 또는 "시스템"이라는 용어를 사용하겠다. 또한, 본 발명의 태양들은 컴퓨터 판독가능 프로그램 코드가 수록된 하나 이상의 컴퓨터 판독가능 매체로 구체화된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.As one of ordinary skill in the art will appreciate, aspects of the present invention may be implemented as systems, methods, and computer program products. Accordingly, aspects of the present invention may take the form of a complete hardware embodiment, a form of complete software embodiment (including firmware, resident software, microcode, etc.), or an embodiment of a mixture of software and hardware , And for all these types we will use the terms "circuit", "module" or "system" in this specification. Further, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable media embodying computer readable program code.

하나 이상의 컴퓨터 판독가능 매체로 이루어진 어떠한 조합도 사용할 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 신호 매체 또는 컴퓨터 판독가능 기억 매체일 수 있다. 컴퓨터 판독가능 기억 매체는, 비제한적인 예를 들자면, 전자식, 자기식, 광학식, 전자기식, 적외선식, 또는 반도체 시스템, 장치 또는 소자, 또는 전술한 것들의 임의의 적당한 조합일 수 있다. 컴퓨터 판독가능 기억 매체의 더 구체적인 예(비휘발성 목록)로는 하나 이상의 배선을 가진 전기 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거가능한 프로그래머블 읽기 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 읽기 전용 메모리(CD-ROM), 광학식 기억 소자, 자기식 기억 소자, 또는 전술한 것들의 임의의 적당한 조합이 있다. 이 명세서의 내용에서, 컴퓨터 판독가능 기억 매체는 명령 실행 시스템, 장치 또는 소자에 의해서 또는 이들과 접속되어 사용되는 프로그램을 내포 또는 저장할 수 있는 임의의 유형 매체(tangible medium)일 수 있다.Any combination of one or more computer readable media may be used. The computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. The computer-readable storage medium can be, for example and without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or element, or any suitable combination of the foregoing. A more specific example (non-volatile list) of computer-readable storage media includes, but is not limited to, an electrical connection with one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read only memory (ROM), an erasable programmable read- (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage element, a magnetic storage element, or any suitable combination of the foregoing. In the context of this specification, the computer-readable storage medium can be any tangible medium that can contain or store a program used by or in connection with an instruction execution system, apparatus, or element.

컴퓨터 판독가능 신호 매체는 컴퓨터 판독가능한 프로그램 코드가 예컨대 기저대역에 또는 반송파 부분으로서 내장되어 있는 피전파(propagated) 데이터 신호를 포함할 수 있다. 이러한 피전파 신호는, 비제한적인 예를 들자면, 전자기식, 광학식 또는 이들의 적당한 조합을 포함한 각종 형태 중에서 임의의 형태를 취할 수 있다. 컴퓨터 판독가능 신호 매체는 컴퓨터 판독가능 기억 매체가 아닌, 명령 실행 시스템, 장치 또는 소자에 의해 또는 이들과 접속하여 사용되는 프로그램을 통신, 전파 또는 운송할 수 있는 임의의 컴퓨터 판독가능 매체일 수 있다.The computer-readable signal medium may include a propagated data signal in which the computer readable program code is embedded, e.g., in the baseband or as a carrier portion. Such a radio wave signal may take any form among various forms including, for example, electromagnetic, optical, or a proper combination thereof, for non-limiting examples. The computer-readable signal medium may be any computer-readable medium that can communicate, propagate, or transport a program used by or in connection with an instruction execution system, apparatus, or element, but not a computer-readable storage medium.

컴퓨터 판독가능 매체에서 구체화되는 프로그램 코드는, 비제한적인 예를 들자면, 무선, 유선, 광섬유 케이블, RF 등, 또는 이들의 임의의 적당한 조합을 포함한 임의의 적당한 매개체를 이용하여 전송될 수 있다.The program code embodied in the computer readable medium may be transmitted using any suitable medium including, but not limited to, wireless, wired, fiber optic cable, RF, etc., or any suitable combination thereof.

본 발명의 태양들의 동작을 실행하기 위한 컴퓨터 프로그램 코드는 자바, 스몰토크, C++ 등과 같은 객체 지향형 프로그래밍 언어와 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어와 같은 종래의 절차적 프로그래밍 언어를 포함한 하나 이상의 프로그래밍 언어의 임의 조합으로 기록될 수 있다. 프로그램 코드는 독립형 소프트웨어 패키지로서 사용자 컴퓨터에서 전체를 실행하거나, 사용자 컴퓨터에서 일부를 실행하거나, 사용자 컴퓨터에서 일부를 실행하고 원격 컴퓨터에서 일부를 실행하거나 또는 원격 컴퓨터 또는 서버에서 전체를 실행할 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 근거리 통신망(LAN)이나 광역 통신망(WAN)을 비롯한 임의 유형의 네트워크를 통하여 사용자 컴퓨터에 접속될 수 있고, 또는 상기 접속은 (예를 들면, 인터넷 서비스 제공자를 이용하는 인터넷을 통하여) 외부 컴퓨터에 대하여 행하여질 수 있다.Computer program code for performing the operations of aspects of the present invention may be implemented in one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C ++, etc., and conventional procedural programming languages such as "C" May be recorded in any combination. The program code is a stand-alone software package that can run entirely on a user's computer, run some on a user's computer, run some on a user's computer, run some on a remote computer, or run entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN) Lt; / RTI > to the external computer).

이하에서는 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하면서 본 발명의 태양들을 설명한다. 흐름도 및/또는 블록도의 각 블록 및 흐름도 및/또는 블록도 내의 블록들의 조합은 컴퓨터 프로그램 명령에 의해 구현될 수 있다. 이 컴퓨터 프로그램 명령들은 머신을 생성하도록 범용 컴퓨터, 특수 용도 컴퓨터 또는 다른 프로그램가능한 데이터 처리 장치의 프로세서에 제공되어, 컴퓨터 또는 다른 프로그램가능한 데이터 처리 장치의 프로세서를 통해 실행하는 명령들이 흐름도 및/또는 블록도의 단일 블록 또는 복수 블록으로 특정된 기능들/작용들을 구현하는 수단을 생성하게 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following, aspects of the present invention are described with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. The blocks of the flowcharts and / or block diagrams and combinations of blocks in the flowchart illustrations and / or block diagrams may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to create a machine so that instructions executing via a processor of the computer or other programmable data processing apparatus may be stored in a flow diagram and / Thereby creating means for implementing functions / acts specified in a single block or multiple blocks of < RTI ID = 0.0 >

이 컴퓨터 프로그램 명령들은 컴퓨터, 다른 프로그램가능한 데이터 처리 장치, 또는 다른 소자들을 특수한 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독가능 매체에 또한 저장될 수 있고, 컴퓨터 판독가능 매체에 저장된 명령들은 흐름도 및/또는 블록도의 단일 블록 또는 복수 블록으로 특정된 기능/작용을 구현하는 명령들을 포함한 제조 품목을 생성한다.These computer program instructions may also be stored in a computer readable medium, which may direct a computer, other programmable data processing apparatus, or other components to function in a particular manner, and instructions stored in the computer readable medium may be stored in a computer- A manufacturing item is generated that includes instructions that implement a function / action specified in a single block or multiple blocks of the block diagram.

컴퓨터 프로그램 명령들은 컴퓨터, 다른 프로그램가능한 데이터 처리 장치, 또는 다른 소자에 또한 로드되어 일련의 동작 단계들이 컴퓨터 구현 프로세스를 생성하도록 컴퓨터, 다른 프로그램가능한 장치 또는 기타 소자에서 수행될 수 있고, 컴퓨터 또는 다른 프로그램가능한 장치에서 실행하는 명령들은 흐름도 및/또는 블록도의 단일의 블록 또는 복수의 블록으로 특정된 기능들/작용들을 구현하는 프로세스를 제공한다.The computer program instructions may also be loaded into a computer, other programmable data processing apparatus, or other device so that a series of operating steps may be performed on the computer, other programmable apparatus, or other device to create a computer implemented process, The instructions executing on a possible device provide a process for implementing functions / acts specified in a single block or multiple blocks of a flowchart and / or block diagram.

뒤에서 설명하는 도면들의 흐름도 및 블록도는 본 발명의 각종 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현예의 구성, 기능 및 동작을 보여준다. 이 점에서, 흐름도 또는 블록도의 각 블록은 특정의 논리 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령들을 포함하는 모듈, 세그멘트, 또는 코드 부분을 나타낼 수 있다. 일부 대안적인 실시예에서는 블록에 표시된 기능들이 도면에 표시된 것과는 다른 순서로 발생할 수 있다는 것을 또한 주목하여야 한다. 예를 들면, 연속적으로 도시된 2개의 블록이 사실상은 실질적으로 동시에 실행될 수 있고, 또는 복수의 블록들이 가끔은 관련 기능에 따라서 역순으로 실행될 수도 있다. 블록도 및/또는 흐름도의 각 블록, 및 블록도 및/또는 흐름도의 복수 블록의 조합은 특정 기능 또는 작용을 수행하는 특수 용도 하드웨어 기반 시스템에 의해, 또는 특수 용도 하드웨어와 컴퓨터 명령의 조합에 의해 구현될 수 있다는 것도 또한 주목하여야 한다.The flowcharts and block diagrams of the figures described below illustrate the structure, function, and operation of possible implementations of systems, methods, and computer program products in accordance with various embodiments of the present invention. In this regard, each block of the flowchart or block diagram may represent a module, segment, or portion of code that includes one or more executable instructions for implementing a particular logical function (s). It should also be noted that in some alternative embodiments, the functions indicated in the blocks may occur in an order different from that shown in the figures. For example, two consecutively shown blocks may in fact be executed substantially concurrently, or a plurality of blocks may sometimes be executed in reverse order according to the associated function. Each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a special purpose hardware-based system that performs a particular function or function, or by a combination of special purpose hardware and computer instructions It should also be noted.

도 1은 본 발명의 태양들을 포함하는 다중 처리 데이터베이스 환경의 하이레벨 블록도이다. 기초 소프트웨어 레벨에서 컴퓨터(115)는 운영체제(114)와 인터페이스 접속된다. 전형적으로 미들웨어 플랫폼(112)이 설치되어 있고, 이 미들웨어 플랫폼을 통하여 다수의 상이한 사용자 애플리케이션이 운영체제(114)와 상호작용한다. 미들웨어 플랫폼(112)의 예로는 미국 뉴욕주 아몽크에 소재하는 인터내셔널 비즈니스 머신즈 코포레이션에서 제조한 웹스피어 제품군(WebSphere product line) 이 있다.1 is a high-level block diagram of a multi-processing database environment including aspects of the present invention. At the base software level, the computer 115 interfaces with the operating system 114. Typically, a middleware platform 112 is installed, through which a number of different user applications interact with the operating system 114. An example of a middleware platform 112 is the WebSphere product line manufactured by International Business Machines Corporation, Armonk, NY, USA.

미들웨어 플랫폼(112)과 인터페이스 접속되어 동시에 구동하는 다수의 이벤트 처리 애플리케이션(110)이 도시되어 있다. 미들웨어 플랫폼(112)은 이벤트 저장부(113)에 액세스(access)하여 이벤트 저장부(113)로부터 데이터 항목(item)들을 검색하거나, 새로운 데이터 항목을 데이터 저장부(113)에 저장하거나, 또는 데이터 저장부(113) 내의 기존 데이터 항목들을 갱신할 수 있다. 이벤트의 처리 중에, 미들웨어 플랫폼(112)은 데이터 저장부(113)로부터 데이터를 획득하여 그 데이터를 이벤트 처리 애플리케이션에 제공할 수 있을 뿐만 아니라 이벤트 처리 애플리케이션(110)으로부터 데이터를 수신하여 그 데이터를 데이터 저장부(113)에 저장할 수 있다.A number of event processing applications 110 are illustrated that are interfaced with and running concurrently with the middleware platform 112. The middleware platform 112 accesses the event storage unit 113 to retrieve data items from the event storage unit 113 or to store new data items in the data storage unit 113, The existing data items in the storage unit 113 can be updated. During the processing of the event, the middleware platform 112 can obtain data from the data store 113 and provide the data to the event processing application, as well as receive data from the event processing application 110, And may be stored in the storage unit 113.

도 2는 본 발명의 태양들이 실시되는 클러스터화 컴퓨팅 환경을 보여주는 블록도이다. 일 예로서, 도 2의 클러스터화 컴퓨팅 환경은 3개의 서버(210, 211, 212)를 포함하고 있지만, 사용자 및 환경의 필요에 따라서 더 많은 서버를 가질 수도 있다. 각 서버는 미들웨어 플랫폼의 상부에서 구동하는 이벤트 처리 애플리케이션의 인스턴스를 갖는다. 미들웨어 플랫폼은 서버의 운영체제에 인터페이스 접속한다. 예를 들면, 서버(210)에 있어서, 이벤트 처리 애플리케이션(213)은 미들웨어 플랫폼(216)과 상호작용하고, 미들웨어 플랫폼(216)은 서버의 운영체제(219)와 인터페이스 접속한다. 유사하게, 서버(211, 212)는 각각 이벤트 처리 애플리케이션(214, 215)을 호스트한다. 애플리케이션(214, 215)은 각각 미들웨어 플랫폼(217, 218)을 통하여 운영체제(220, 221)와 상호작용한다.2 is a block diagram illustrating a clustered computing environment in which aspects of the present invention are implemented. As an example, the clustered computing environment of FIG. 2 includes three servers 210, 211, and 212, but may have more servers depending on the needs of the user and environment. Each server has an instance of an event processing application running on top of the middleware platform. The middleware platform interfaces to the operating system of the server. For example, in the server 210, the event processing application 213 interacts with the middleware platform 216 and the middleware platform 216 interfaces with the operating system 219 of the server. Similarly, servers 211 and 212 host event processing applications 214 and 215, respectively. The applications 214 and 215 interact with the operating systems 220 and 221 through the middleware platforms 217 and 218, respectively.

도 2에는 이벤트 처리 애플리케이션(210-212)에 의해 생성된 이벤트 데이터를 유지할 뿐만 아니라 애플리케이션이 이벤트를 처리하는 동안 상기 애플리케이션에 데이터를 제공하는 이벤트 저장부(222)가 또한 도시되어 있다. 이벤트 저장부(222)는 가끔 데이터 저장부 또는 일반적으로 데이터베이스라고 부른다.Figure 2 also shows an event store 222 that not only holds event data generated by the event processing application 210-212 but also provides data to the application while the application processes the event. The event storage unit 222 is sometimes called a data storage unit or a database in general.

도 3은 본 발명에 따라서 다중 처리 환경에서 서비스 품질 기능을 제공하기 위한 이벤트 처리 시스템의 양호한 실시예를 보여주는 블록도이다. 도 2의 시스템과 유사하게, 도 3의 컴퓨팅 환경은 3개의 서버(310-312)를 가진 클러스터화 컴퓨팅 환경이다. 각 서버(310-312)는 이벤트 처리 애플리케이션(313-315)을 호스트한다. 이벤트 처리 애플리케이션(313-315)은 이벤트 데이터를 이벤트 저장부(322)에 저장하기도 하고 이벤트 저장부(322)로부터 데이터를 검색하기도 한다.3 is a block diagram illustrating a preferred embodiment of an event processing system for providing a quality of service function in a multiprocessing environment in accordance with the present invention. Similar to the system of FIG. 2, the computing environment of FIG. 3 is a clustered computing environment with three servers 310-312. Each server 310-312 hosts an event processing application 313-315. The event processing application 313-315 may store the event data in the event storage unit 322 or retrieve data from the event storage unit 322. [

이벤트 처리 애플리케이션(313-315)은 서비스 품질 기능 지원을 필요로 하는 애플리케이션에 의해 처리되는 이벤트를 식별하기 위한 이벤트 리스너 인터페이스를 각각 포함하는 것이 좋다. 또한, 이벤트 처리 애플리케이션(313-315)은 처리되는 이벤트에 대한 적당한 서비스 품질 기능을 호출하는 이벤트 서비스 인터페이스를 각각 갖는 것이 좋다. 예를 들면, 이벤트 처리 애플리케이션(313)은 이벤트 리스너 인터페이스(316)와 이벤트 서비스 인터페이스(319)를 포함한다. 마찬가지로, 이벤트 처리 애플리케이션(314, 315)은 이벤트 리스너 인터페이스(317, 318)와 이벤트 서비스 인터페이스(320, 321)를 각각 포함한다. 이벤트 리스너 인터페이스(316-318)와 이벤트 서비스 인터페이스(319-321)의 더 구체적인 내용은 도 9 내지 도 11을 참조하여 뒤에서 설명한다. The event processing application 313-315 preferably includes an event listener interface for identifying an event to be processed by an application that requires service quality function support. In addition, the event processing application 313-315 preferably has an event service interface that invokes an appropriate quality of service function for the event to be processed. For example, the event processing application 313 includes an event listener interface 316 and an event service interface 319. Similarly, event processing applications 314 and 315 include event listener interfaces 317 and 318 and event service interfaces 320 and 321, respectively. More specific contents of the event listener interface 316-318 and the event service interface 319-321 will be described later with reference to Figs. 9 to 11. Fig.

도 4는 이벤트 처리 애플리케이션(413-415)을 지원하는, 이벤트 시퀀싱이라고 부르는 서비스 품질 기능(423)을 가진 본 발명의 양호한 실시예를 보여주는 블록도이다. 이벤트 처리 애플리케이션(413-415)은 이벤트 리스너 인터페이스(416-418)와 이벤트 서비스 인터페이스(419-421)를 각각 포함한다. 이 인터페이스들은 도 3을 참조하여 위에서 설명하였다. 이벤트 시퀀싱 서비스 품질 기능(423)은 명확히 하고 또한 이벤트 처리 애플리케이션(413-415) 사이에서 그 공동성(commonality)을 보이기 위해 이벤트 처리 애플리케이션(413-415)과 분리하여 도시하였다. 대안적으로, 이벤트 시퀀싱 서비스 품질 기능(423)은 데이터베이스 콘테이너의 일부일 수 있다. 본 발명의 다른 실시예에서, 이벤트 시퀀싱 서비스 품질 기능(423)은 이벤트 처리 애플리케이션을 지원하는 미들웨어의 일부일 수 있다.Figure 4 is a block diagram illustrating a preferred embodiment of the present invention having a quality of service function 423 called event sequencing, supporting the event processing applications 413-415. The event processing application 413-415 includes an event listener interface 416-418 and an event service interface 419-421, respectively. These interfaces have been described above with reference to FIG. The event sequencing service quality function 423 is shown separately from the event processing applications 413-415 to clarify and show its commonality among the event handling applications 413-415. Alternatively, the event sequencing service quality function 423 may be part of a database container. In another embodiment of the present invention, the event sequencing service quality function 423 may be part of the middleware supporting the event processing application.

이벤트 시퀀싱 서비스 품질 기능(423)은 일관성있는 처리 결과를 보장하기 위해 이벤트 처리 애플리케이션(413-415)에 의해 처리되는 인입 이벤트의 순서를 관리하는 책임을 갖는다. 처리되는 이벤트의 순서를 보장하기 위한 몇가지 옵션이 있다. 한가지 옵션은 시스템에 대한 엔트리 포인트에서 처리되도록 단일 스레드(single thread)의 이벤트를 사용하는 것이다. 다른 하나의 옵션은 태그 또는 타임스탬프를 그 소스에서 각 이벤트와 연관시키고, 처리되는 이벤트의 순서를 결정하기 위해 이벤트 태그 또는 이벤트 타임스탬프를 신뢰하는 것이다. 그러나, 집적된 이벤트 처리 시스템에 있어서, 일부 이벤트의 소스와 데이터 저장부는 런타임 중에 가끔 미들웨어의 통제하에 있지 않게 된다. 그 결과, 모든 이벤트를 태그하거나 타임스탬핑하는 것이 가능하지 않을 수 있다. 따라서, 단일 이벤트 스레드는 이벤트 시퀀싱 서비스 품질 기능을 구현하기 위한 양호한 옵션이다.The event sequencing service quality function 423 is responsible for managing the sequence of incoming events processed by the event processing application 413-415 to ensure a consistent processing result. There are several options to ensure the order of the events being processed. One option is to use a single-threaded event to be processed at the entry point to the system. The other option is to associate a tag or timestamp with each event at its source, and to trust the event tag or event timestamp to determine the order of events to be processed. However, in an integrated event processing system, the source of some events and the data store are sometimes not under the control of middleware during runtime. As a result, it may not be possible to tag or timestamp all events. Thus, a single event thread is a good option for implementing the event sequencing service quality function.

도 5는 도 4에 도시한 시스템과 유사하게 서비스 품질을 제공하는 시스템이지만 이벤트 분리라고 하는 추가의 서비스 품질 기능(524)을 가진 시스템의 양호한 실시예를 보인 블록도이다. 도 4에서처럼, 서버(510)는 서버(511, 512)가 백업 시스템인 동안에 능동 서버(active server)이다. 도 5에 도시한 시스템의 다른 구성요소에 대해서는 도 4를 참조하여 위에서 설명하였으므로 여기에서 반복 설명하지 않는다. 이벤트 분리 서비스 품질 기능(524)의 주 목적은 이벤트 처리 중에 경쟁 상태를 방지하는 것이다. 경쟁 상태는 2개의 이벤트의 동시 처리가 부정확하거나 일관되지 않은 결과를 생성하는 상황을 말한다. 그 결과, 하나의 이벤트의 처리는 다른 이벤트의 처리가 종료될 때까지 시작되지 않을 것이다. 경쟁 상태가 발생하는 하나의 예는 동일한 은행 계좌를 함께 갱신하는 2개의 은행 거래를 처리하는 경우이다. 2개의 거래가 2개의 별도의 이벤트 처리 애플리케이션에 의해 동시에 처리되는 경우, 이들 애플리케이션에 의해 생성된 계좌 관련 결과는 가끔 일관성이 없고 신뢰할 수 없게 된다.FIG. 5 is a block diagram illustrating a preferred embodiment of a system with an additional quality of service function 524, which is a system that provides quality of service similar to that shown in FIG. As shown in FIG. 4, the server 510 is an active server while the servers 511 and 512 are backup systems. Other components of the system shown in Fig. 5 have been described above with reference to Fig. 4 and will not be repeated here. The main purpose of the event separation service quality function 524 is to prevent contention during event processing. A race condition is a situation where concurrent processing of two events produces inaccurate or inconsistent results. As a result, the processing of one event will not start until the processing of another event is finished. One example where a race condition occurs is when two bank transactions are processed that update the same bank account together. If two transactions are processed simultaneously by two separate event processing applications, the account related results generated by these applications are sometimes inconsistent and unreliable.

도 6은 도 5에 도시한 시스템과 유사하게 서비스 품질을 제공하는 시스템이지만 이벤트 필터링이라고 하는 추가의 서비스 품질 기능(625)을 가진 시스템의 양호한 실시예를 보인 블록도이다. 도 5에서처럼, 서버(610)는 서버(611, 612)가 서버(610)에 대한 백업 시스템인 동안에 능동 서버이다. 시스템의 다른 구성요소에 대해서는 도 4 및 도 5를 참조하여 위에서 설명하였다. 이벤트 필터링 기능(625)은 이벤트 처리 애플리케이션(613-615)에 의해 호출되고 특수한 서비스 품질 기능을 인입 이벤트의 선택된 부분집합의 처리에 적용하여 전체 시스템 성능을 개선한다. 이 서비스 품질 기능은 처리되는 다른 인입 이벤트와 관련이 없는 것으로 간주될 수 있고, 따라서 이들 이벤트에 대해서는 호출되지 않는다. 그 결과, 시스템의 컴퓨팅 자원이 실제로 서비스를 필요로 하는 이벤트에 효율적으로 지향될 수 있다.FIG. 6 is a block diagram illustrating a preferred embodiment of a system with an additional quality of service function 625, which is a system that provides quality of service similar to the system shown in FIG. 5, but with event filtering. As shown in FIG. 5, the server 610 is an active server while the servers 611 and 612 are backup systems for the server 610. Other components of the system have been described above with reference to Figures 4 and 5. The event filtering function 625 is invoked by the event processing application 613-615 and applies special quality of service functions to the processing of the selected subset of the incoming events to improve overall system performance. This quality of service function may be considered to be unrelated to other incoming events being processed and therefore not invoked for these events. As a result, the computing resources of the system can be efficiently directed to events that actually require service.

예를 들면, 위에서 설명한 이벤트 시퀀싱 기능(623)과 이벤트 분리 기능(624)은 은행 계좌에서처럼 단일 계좌 또는 개인에 대한 정보를 갱신하는 이벤트를 애플리케이션이 처리할 때 전형적으로 필요로 한다. 이러한 유형의 이벤트는 애플리케이션에 의해 처리되는 인입 이벤트의 단지 작은 부분만을 떠맡는다. 따라서, 이벤트 필터링 서비스(625)는 모든 이벤트에 대해서 보다는 계좌 또는 개인에 대한 정보를 갱신하는 소그룹의 이벤트에 대하여 상기 2가지 서비스 품질을 선택적으로 적용함으로써 시스템의 성능을 크게 개선할 수 있다.For example, the event sequencing function 623 and the event separation function 624 described above are typically needed when an application processes an event that updates information for a single account or individual, such as in a bank account. This type of event takes on only a small part of the incoming events handled by the application. Accordingly, the event filtering service 625 can greatly improve the performance of the system by selectively applying the two service qualities to a small group of events that update information on an account or an individual rather than on all events.

도 7은 도 6에 도시한 시스템과 유사하게 서비스 품질을 제공하는 시스템이지만 높은 가용성이라고 하는 추가의 서비스 품질 기능(726)을 가진 시스템의 양호한 실시예를 보인 블록도이다. 시스템의 다른 구성요소에 대해서는 도 4 내지 도 6을 참조하여 위에서 설명하였으므로 여기에서 반복 설명하지 않는다. 높은 가용성의 서비스 품질 기능(726)은 이벤트 처리 애플리케이션(713-715)에 의해 사용되어 시스템의 페일오버 조건을 취급하고 이벤트의 손실 및 동일한 이벤트의 이중 처리를 회피하게 한다.FIG. 7 is a block diagram illustrating a preferred embodiment of a system with an additional quality of service function 726, which is a system that provides quality of service similar to the system depicted in FIG. 6 but high availability. Other components of the system have been described above with reference to FIGS. 4 to 6 and will not be repeated here. The highly available quality of service function 726 is used by the event processing applications 713-715 to handle the failover conditions of the system and to avoid loss of events and duplicate processing of the same event.

일 예로서, 애플리케이션(713-715)에 의해 호출되어 이벤트의 처리 순서를 제어하고 2개 이벤트의 동시 처리를 회피하는 이벤트 시퀀싱(723) 및 이벤트 분리(724)의 서비스 품질 기능을 생각하자. 이러한 목적을 달성하기 위한 하나의 가능한 방법은 시스템이 단일 스레드에서 인입 이벤트를 검색하는 것이다. 그러나, 이러한 단일 이벤트 스레드는 시스템 페일오버, 즉 시스템에서 싱글 포인트 고장을 받기 쉽고, 이러한 고장은 일부 이벤트가 손실되게 하며 시스템이 페일오버로부터 복구된 후에 다른 이벤트들이 1회 이상 처리되게 한다. 높은 가용성의 서비스 품질 기능(726)은 이벤트 처리 애플리케이션(714, 715)으로부터 높은 가용성의 서비스 품질 기능(726)까지의 경로로 표시한 것처럼 백업 처리 채널을 제공함으로써 페일오버 조건을 해결한다.As an example, consider a service quality function of event sequencing 723 and event separation 724 that is called by applications 713-715 to control the processing order of events and avoid concurrent processing of two events. One possible way to achieve this goal is for the system to retrieve incoming events from a single thread. However, this single event thread is susceptible to system failover, i.e., single point failure in the system, which causes some events to be lost and other events to be processed more than once after the system has recovered from failover. The highly available quality of service function 726 resolves the failover condition by providing a backup processing channel as indicated by the path from the event processing application 714, 715 to the highly available quality of service function 726.

도 8은 도 7에 도시한 시스템과 유사하게 서비스 품질을 제공하는 시스템이지만 추가로 유동 제어 서비스 품질 기능(827)을 가진 시스템의 양호한 실시예를 보인 블록도이다. 시스템의 다른 구성요소에 대해서는 도 4 내지 도 7을 참조하여 위에서 설명하였다. 유동 제어 서비스 품질 기능(827)은 이벤트 처리 애플리케이션(813-815)에서 사용되어 이들 애플리케이션에 의해 처리되는 인입 이벤트의 속도를 관리한다. 각각의 이벤트 처리 애플리케이션(813-815)에 사용가능한 컴퓨팅 자원 및 그 용량에 따라서, 애플리케이션은 유동 제어 기능(827)을 이용하여 애플리케이션에 의해 처리되는 이벤트의 속도를 증가시키거나 감소시킬 수 있다.FIG. 8 is a block diagram illustrating a preferred embodiment of a system with a flow control quality of service function 827, although it is a system that provides quality of service similar to the system shown in FIG. Other components of the system have been described above with reference to Figures 4-7. The flow control service quality function 827 is used in the event processing applications 813-815 to manage the rate of incoming events processed by these applications. Depending on the computing resources available to each of the event processing applications 813-815 and their capacity, the application may use the flow control function 827 to increase or decrease the rate of events processed by the application.

도 9는 본 발명의 태양에 따라서, 이벤트 리스너 인터페이스 및 이벤트 서비스 인터페이스를 호출하기 위한, 이벤트 처리 애플리케이션(918) 내의 이벤트 리스너 베이스의 양호한 실시예를 보여주는 블록도이다. 이벤트 리스너 베이스(910)는 애플리케이션(918)을 갖고 있고 자신의 이벤트 리스너 인터페이스(911)에 결합되어 인입 이벤트의 처리를 시험한다. 만일 하나 이상의 서비스 품질 기능이 이 애플리케이션에 적용가능하다고 이벤트 리스너 베이스(910)가 판정하면, 이벤트 리스너 베이스(910)는 이벤트 서비스 인터페이스(912)를 호출한다. 필요로 하는 서비스 품질의 유형에 따라서, 하나 이상의 서비스 품질 기능이 이벤트 서비스 인터페이스(912)에 의해 개시될 수 있다. 예를 들면, 도 9는 이벤트 시퀀싱(913), 이벤트 분리(914), 이벤트 필터링(915), 높은 가용성(916) 및 유동 제어(917)의 서비스 품질 기능을 보여주고 있다. 상기 서비스 품질 기능들은 도 4 내지 도 8을 참조하여 위에서 설명하였다. 동일한 이벤트 리스너 베이스(910), 이벤트 리스너 인터페이스(911) 및 이벤트 서비스 인터페이스(912)를 이용하는 다른 서비스 품질 기능이 시스템의 이벤트 처리 애플리케이션을 지원하도록 시스템에 추가될 수 있다.9 is a block diagram illustrating a preferred embodiment of an event listener base in an event processing application 918 for invoking an event listener interface and an event service interface in accordance with aspects of the present invention. The event listener base 910 has an application 918 and is coupled to its own event listener interface 911 to test the processing of incoming events. If event listener base 910 determines that more than one service quality function is applicable to this application, event listener base 910 calls event service interface 912. Depending on the type of quality of service required, one or more quality of service functions may be initiated by the event service interface 912. For example, FIG. 9 shows the quality of service features of event sequencing 913, event separation 914, event filtering 915, high availability 916, and flow control 917. The service quality functions are described above with reference to FIGS. Other service quality functions using the same event listener base 910, event listener interface 911 and event service interface 912 may be added to the system to support event processing applications in the system.

도 10은 지금까지 설명한 바와 같이 동시에 구동하는 다수의 이벤트 처리 애플리케이션을 가진 다중 처리 환경에서 서비스 품질 기능을 제공하는 예시적인 프로세스를 나타내는 흐름도이다. 블록 1010에서, 이벤트 처리 애플리케이션을 호스트하는 서버가 처리를 시작한다. 블록 1011에서, 이벤트 서비스 인터페이스가 부트스트랩된다. 블록 1012에서, 이벤트 서비스 인터페이스는 이벤트 처리 애플리케이션이 시작되기 전에 이벤트 처리 애플리케이션을 시험한다. 블록 1013에서, 이벤트 서비스 인터페이스는 이벤트 처리 애플리케이션이 이벤트 리스너 인터페이스를 포함하고 있는지를 판정한다. 만일 이벤트 리스너 인터페이스가 없으면, 통상대로 이벤트 처리 애플리케이션이 시작된다(블록 1014). 이벤트 리스너 인터페이스가 있으면, 이벤트 리스너 인터페이스가 초기화된다(블록 1015). 이벤트 처리 애플리케이션을 지원하는 서비스 제공자가 또한 초기화된다(블록 1016). 블록 1017에서, 이벤트 리스너 인터페이스가 시작한다. 블록 1018에서, 이벤트 서비스 인터페이스는 애플리케이션을 지원하는 이벤트 저장부에 등록하여 이벤트 저장부가 서비스 제공자에 의해 발생된 이벤트 데이터를 받아들일 준비를 하게 한다. 블록 1019에서, 서비스 품질 기능을 필요로 하는 이벤트들은 처리를 위해 이벤트 서비스 인터페이스에 의해 서비스 제공자에게 보내진다.10 is a flow diagram illustrating an exemplary process for providing a quality of service function in a multiprocessing environment having multiple event processing applications running concurrently as described hereinabove. At block 1010, the server hosting the event processing application begins processing. At block 1011, the event service interface is bootstrapped. At block 1012, the event service interface tests the event processing application before the event processing application starts. At block 1013, the event service interface determines whether the event processing application includes an event listener interface. If there is no event listener interface, the event processing application is started normally (block 1014). If there is an event listener interface, the event listener interface is initialized (block 1015). A service provider supporting the event processing application is also initialized (block 1016). At block 1017, the event listener interface begins. At block 1018, the event service interface registers with the event store that supports the application to allow the event store to prepare to accept event data generated by the service provider. At block 1019, events requiring a quality of service function are sent to the service provider by the event service interface for processing.

도 11은 다중 처리 환경에서 서비스 품질 기능을 제공하는 예시적인 프로세스에 대하여, 도 10에서 수행되는 동작을 더욱 구체적으로 보인 흐름도이다. 블록 1110에서, 이벤트 리스너 인터페이스의 초기화의 일환으로서, 이벤트 리스너 인터페이스는 선언된 서비스를 로드한다(블록 1115). 그 다음에, 선언된 서비스가 초기화된다(블록 1116). 흐름은 블록 1111로 진행하여 이 블록에서 서비스 제공자가 초기화된다. 본 발명의 양호한 실시예에 있어서, 서비스 제공자의 초기화는 XML 정의에 기초한 서비스의 준비를 포함한다(블록 1117). 또한, 서비스 제공자는 서비스 그룹을 합류시키고(블록 1118) 서비스 그룹의 제어하에 오게 된다(블록 1119). 블록 1111에서 일단 서비스 제공자의 초기화가 완료되면, 블록 1112에서 이벤트 리스너 인터페이스가 시작된다. 이벤트 리스너는 다음에 블록 1113에서 이벤트 저장부에 등록한다. 서비스 품질 지원을 요구하는 모든 이벤트들은, 그 다음에, 적용가능한 서비스 제공자에게 보내져서 서비스하게 한다(블록 1114).11 is a flow chart that more specifically illustrates operations performed in FIG. 10 for an exemplary process for providing a quality of service function in a multiprocessing environment. In block 1110, as part of initializing the event listener interface, the event listener interface loads the declared service (block 1115). The declared service is then initialized (block 1116). The flow proceeds to block 1111 where the service provider is initialized. In a preferred embodiment of the present invention, the initialization of the service provider includes the provision of services based on the XML definition (block 1117). The service provider also joins the service groups (block 1118) and comes under the control of the service group (block 1119). Once initialization of the service provider is completed at block 1111, an event listener interface is started at block 1112. The event listener then registers in the event storage unit at block 1113. [ All events requiring quality of service support are then sent to the applicable service provider for service (block 1114).

전술한 본 발명의 실시예는 단지 설명을 위해 제공된 것이므로 본 발명의 구성을 제한하는 것으로 해석되어서는 안된다. 이 기술에 숙련된 사람이라면 전술한 구성요소 및 동작을 뒤에서 기재하는 청구범위에서 정의한 본 발명의 정신 및 범위를 벗어나지 않고 다양하게 변환 및 치환할 수 있을 것이며, 본 발명의 범위는 그러한 변환 및 등가적 구성을 포괄하도록 가장 넓게 해석되어야 한다. 이 기술에 숙련된 사람이라면 알 수 있는 바와 같이, 이 명세서에서 설명한 시스템, 방법 및 절차들은 프로그램가능한 컴퓨터, 컴퓨터 실행가능한 소프트웨어, 또는 디지털 회로로 구체화될 수 있다. 소프트웨어는 컴퓨터 판독가능한 매체에 저장될 수 있다. 예를 들면, 컴퓨터 판독가능한 매체는 플로피 디스크, RAM, ROM, 하드디스크, 탈착식 매체, 플래시 메모리, 메모리 스틱, 광학 매체, 자기-광학 매체, CD-ROM 등을 포함할 수 있다.The embodiments of the present invention described above are provided for explanation purposes only and should not be construed as limiting the scope of the present invention. It will be apparent to those skilled in the art that various changes and modifications may be made therein without departing from the spirit and scope of the invention as defined in the following claims and their equivalents, And should be interpreted broadly to cover the configuration. As will be appreciated by those skilled in the art, the systems, methods and procedures described herein may be embodied in a programmable computer, computer-executable software, or digital circuitry. The software may be stored on a computer readable medium. For example, the computer readable medium can include a floppy disk, RAM, ROM, hard disk, removable media, flash memory, memory stick, optical media, magneto-optical media, CD-ROM,

110, 313-315, 413-415, 513-515, 613-615, 713-715, 813-815: 이벤트 처리 애플리케이션,
112, 216-218: 미들웨어,
113, 222, 322, 422, 522, 622, 722, 822: 이벤트 저장부,
114, 219-221: 운영체제,
115: 컴퓨터,
210-212, 310-312, 410-412, 510-512, 610-612, 710-712, 810-812: 서버,
316-318, 416-418, 516-518, 616-618, 716-718, 816-818, 911: 이벤트 리스너 인터페이스,
319-321, 419-421, 519-521, 619-621, 719-721, 819-821, 912: 이벤트 서비스 인터페이스,
423, 523, 623, 723, 823, 913: 이벤트 시퀀싱 서비스 품질 기능,
524, 624, 724, 824, 914: 이벤트 분리 서비스 품질 기능,
625, 725, 825, 915: 이벤트 필터링 서비스 품질 기능,
726, 826, 916: 높은 가용성의 서비스 품질 기능,
827, 917: 유동 제어 서비스 품질 기능,
910: 이벤트 리스너 베이스.
110, 313-315, 413-415, 513-515, 613-615, 713-715, 813-815:
112, 216-218: Middleware,
113, 222, 322, 422, 522, 622, 722, 822:
114, 219-221: operating system,
115: Computer,
210-212, 310-312, 410-412, 510-512, 610-612, 710-712, 810-812: server,
316-318, 416-418, 516-518, 616-618, 716-718, 816-818, 911: Event Listener Interface,
319-321, 419-421, 519-521, 619-621, 719-721, 819-821, 912: Event service interface,
423, 523, 623, 723, 823, 913: event sequencing service quality function,
524, 624, 724, 824, 914: event separation service quality function,
625, 725, 825, 915: event filtering service quality function,
726, 826, 916: Highly available quality of service features,
827, 917: flow control service quality function,
910: Event listener base.

Claims (10)

서비스 품질(Quality-of-Service) 기능들을 제공하는 다중 처리 데이터베이스 시스템(a multi-processing database system)에 있어서,
프로세서; 및
상기 프로세서 상에서 동작 가능한(operable) 복수의 동시발생적 데이터베이스 이벤트 처리 애플리케이션들(a plurality of concurrent database event-processing applications) ― 상기 복수의 이벤트 처리 애플리케이션들 각각은 대응 이벤트 리스너 인터페이스(corresponding event-listener interface)와 이벤트 서비스 인터페이스(event-service interface)를 포함함 ― 을 포함하되,
상기 복수의 이벤트 리스너 인터페이스들 각각은 상기 대응 이벤트 처리 애플리케이션들 각각에 적용할 수 있는 서비스 품질 기능을 식별하도록 구성되고, 상기 서비스 품질 기능은 상기 대응 데이터베이스 이벤트 처리 애플리케이션들 각각에 의해서 처리되는 금융 관련 거래 이벤트들의 순서를 관리하기 위한 이벤트-시퀀싱 서비스를 포함하며, 그리고
상기 복수의 이벤트 서비스 인터페이스들 각각은 상기 데이터베이스 이벤트-처리 애플리케이션들 각각에 서비스 품질 기능을 제공하기 위해 상기 동일 대응 이벤트-처리 애플리케이션에 속하는 상기 복수의 이벤트 리스너 인터페이스들 각각으로부터 액세스가능한, 시스템.
In a multi-processing database system that provides Quality-of-Service functions,
A processor; And
A plurality of concurrent database event-processing applications operable on the processor, each of the plurality of event processing applications having a corresponding event-listener interface, And an event-service interface,
Wherein each of the plurality of event listener interfaces is configured to identify a service quality function that is applicable to each of the corresponding event processing applications, An event-sequencing service for managing the order of events, and
Wherein each of the plurality of event service interfaces is accessible from each of the plurality of event listener interfaces belonging to the same corresponding event-processing application to provide a service quality function to each of the database event-processing applications.
제1항에 있어서, 상기 이벤트-서비스 인터페이스는 상기 식별된 서비스 품질 기능을 로드하고 기동시키기 위한(for loading and activating) 컴포넌트를 포함하는, 시스템.7. The system of claim 1, wherein the event-service interface comprises a component for loading and activating the identified quality of service function. 복수의 이벤트 처리 애플리케이션들 각각이 대응 이벤트 리스너 인터페이스(corresponding event-listener interface)와 이벤트 서비스 인터페이스(event-service interface)를 포함하는 복수의 동시발생적 이벤트 처리 애플리케이션들을 갖는 다중 처리 데이터베이스 시스템(a multi-processing database system)에서의 서비스 품질(Quality-of-Service) 기능들을 제공하는 컴퓨터 구현 방법에 있어서, 상기 방법은:
상기 이벤트 리스너 인터페이스들 각각을 사용하여 데이터베이스 이벤트-처리 애플리케이션에 대해 적용 가능한 서비스 품질 기능을 식별하는 단계(identifying) ― 상기 서비스 품질 기능은 상기 데이터베이스 이벤트 처리 애플리케이션들 각각에 의해서 처리되는 금융 관련 거래 이벤트들의 순서를 관리하기 위한 이벤트-시퀀싱 서비스를 포함함 ―; 및
상기 이벤트 서비스 인터페이스들 각각을 사용하여 상기 서비스 품질 기능을 호출하는 단계(invoking) ― 상기 이벤트-서비스 인터페이스들 각각은 상기 이벤트 리스너 인터페이스들 각각으로부터 액세스가능함 ― 를 포함하는, 컴퓨터 구현 방법.
Each of the plurality of event processing applications is a multi-processing system having a plurality of concurrent event processing applications including a corresponding event-listener interface and an event-service interface. 1. A computer-implemented method for providing Quality-of-Service functions in a database system, the method comprising:
Identifying an applicable quality of service function for a database event-processing application using each of the event listener interfaces, the quality of service function identifying a financial transaction event that is to be processed by each of the database event processing applications An event-sequencing service for managing the sequence; And
Invoking a service quality function using each of the event service interfaces, wherein each of the event-service interfaces is accessible from each of the event listener interfaces.
제3항에 있어서, 상기 서비스 품질 기능은 서비스 정의들의 세트에 기초하여 제공되는 것인, 컴퓨터 구현 방법.4. The computer implemented method of claim 3, wherein the quality of service function is provided based on a set of service definitions. 제3항에 있어서, 상기 이벤트 서비스 인터페이스가 상기 서비스 품질 기능을 호출할 때 상기 서비스 품질 기능을 로드하는 단계와;
상기 서비스 품질 기능을 기동시키는 단계
를 더 포함하는 컴퓨터 구현 방법.
4. The method of claim 3, further comprising: loading the service quality function when the event service interface calls the service quality function;
Activating the service quality function
Lt; / RTI >
제3항에 있어서, 컴퓨터 구현 방법은: 상기 서비스 품질 기능과 관련된 서비스 제공자(a service provider)를 로드하는 단계(loading); 및
처리를 위해 상기 서비스 제공자에 이벤트를 보내는 단계(sending)를 더 포함하는, 컴퓨터 구현 방법.
4. The computer-implemented method of claim 3, further comprising: loading a service provider associated with the quality of service function; And
Further comprising: sending an event to the service provider for processing.
제3항에 있어서, 상기 서비스 품질 기능은 상기 애플리케이션들간의 경쟁 상태(a racing condition)를 회피하도록 상기 금융 관련 거래 데이터베이스 이벤트들의 처리를 관리하는 이벤트-분리 서비스(an Event-Isolation service)인, 컴퓨터 구현 방법.4. The system of claim 3, wherein the quality of service function is an Event-Isolation service that manages processing of the financial transaction database events to avoid a racing condition between the applications. Implementation method. 제3항에 있어서, 상기 서비스 품질 기능은 상기 이벤트-처리 애플리케이션들로부터 백업 처리 채널들(backup processing channels)을 제공함으로써 페일-오버 상태들(fail-over conditions)을 취급하는 높은-가용성의 서비스(a High-Availability service)인, 컴퓨터 구현 방법.4. The method of claim 3, wherein the quality of service function is a high-availability service that handles fail-over conditions by providing backup processing channels from the event- a High-Availability service. 제3항에 있어서, 상기 서비스 품질 기능은 시스템 성능을 개선하도록 인입 데이터베이스 이벤트들의 서브세트(a subset of incoming database events)에 다른 서비스 품질 기능을 선택적으로 적용하는 이벤트-필터링 서비스(an Event-Filtering service)인, 컴퓨터 구현 방법.4. The method of claim 3, wherein the quality of service function comprises an Event-Filtering service () that selectively applies a different quality of service function to a subset of incoming database events to improve system performance ). ≪ / RTI > 복수의 동시발생적 이벤트 처리 애플리케이션들 ― 상기 복수의 이벤트 처리 애플리케이션들 각각은 대응 이벤트 리스너 인터페이스(corresponding event-listener interface)와 이벤트 서비스 인터페이스(event-service interface)를 포함함 ― 을 갖는 다중 처리 데이터베이스 시스템에서 사용하기 위한 판독가능 프로그램 코드가 내장된 비-일시적인 컴퓨터 사용가능 저장 매체에 있어서, 상기 매체는, 컴퓨터에서 실행될 때,
상기 이벤트 리스너 인터페이스들 각각을 사용하여 데이터베이스 이벤트-처리 애플리케이션들 각각에 대해 적용 가능한 서비스 품질 기능을 식별하고(identify) ― 상기 서비스 품질 기능은 상기 데이터베이스 이벤트 처리 애플리케이션들 각각에 의해서 처리되는 금융 관련 거래 이벤트들의 순서를 관리하기 위한 이벤트-시퀀싱 서비스를 포함함 ―; 그리고
상기 이벤트 서비스 인터페이스들 각각을 사용하여 상기 서비스 품질 기능을 호출하도록(invoke) ― 상기 이벤트-서비스 인터페이스들 각각은 상기 이벤트 리스너 인터페이스들 각각으로부터 액세스가능함 ― 동작하는 컴퓨터 프로그램 코드를 포함하는, 컴퓨터 사용가능 매체.
A plurality of concurrent event processing applications, each of the plurality of event processing applications comprising a corresponding event-listener interface and an event-service interface, 17. A non-transitory computer usable storage medium having embedded therein readable program code for use, the medium comprising:
Identifying an applicable quality of service function for each of the database event-processing applications using each of the event listener interfaces, the quality of service function further comprising: An event-sequencing service for managing the order of the events; And
Wherein the event-service interfaces are invoked by using each of the event service interfaces, and wherein each of the event-service interfaces is accessible from each of the event listener interfaces. media.
KR1020100108208A 2009-11-04 2010-11-02 A system and method for providing quality-of-services in a multi-event processing environment KR101599076B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/612,624 US9047144B2 (en) 2009-11-04 2009-11-04 System and method for providing Quality-of-Services in a multi-event processing environment
US12/612,624 2009-11-04

Publications (2)

Publication Number Publication Date
KR20110049705A KR20110049705A (en) 2011-05-12
KR101599076B1 true KR101599076B1 (en) 2016-03-14

Family

ID=43926797

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100108208A KR101599076B1 (en) 2009-11-04 2010-11-02 A system and method for providing quality-of-services in a multi-event processing environment

Country Status (3)

Country Link
US (1) US9047144B2 (en)
JP (1) JP5794513B2 (en)
KR (1) KR101599076B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630559B2 (en) * 2011-09-27 2020-04-21 UST Global (Singapore) Pte. Ltd. Virtual machine (VM) realm integration and management
KR101644219B1 (en) * 2013-11-29 2016-08-01 주식회사 포스코아이씨티 System and Method for Managing Factory
CN104054457B (en) * 2014-07-09 2015-11-11 衢州图艺工业设计有限公司 One is climbed tree machine for picking fruits
US9699023B2 (en) * 2014-07-18 2017-07-04 Fujitsu Limited Initializing a network interface based on stored data
US10791134B2 (en) * 2016-12-21 2020-09-29 Threat Stack, Inc. System and method for cloud-based operating system event and data access monitoring

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002229606A (en) * 2001-01-31 2002-08-16 Nec Corp State transition model executing device, state transition model executing method and program
US6871224B1 (en) 1999-01-04 2005-03-22 Cisco Technology, Inc. Facility to transmit network management data to an umbrella management system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6349333B1 (en) * 1998-12-04 2002-02-19 Sun Microsystems, Inc. Platform independent alarm service for manipulating managed objects in a distributed network management system
DE60036295T2 (en) * 2000-12-08 2008-05-29 Sony Deutschland Gmbh High-level interface for service quality based mobile multimedia applications
US8732566B2 (en) * 2006-11-29 2014-05-20 Omtool, Ltd. Methods and apparatus for digital content handling
US7424717B2 (en) * 2002-05-01 2008-09-09 Bea Systems, Inc. Systems and methods for business process plug-in development
US7647523B2 (en) * 2002-06-12 2010-01-12 International Business Machines Corporation Dynamic binding and fail-over of comparable web service instances in a services grid
US8200775B2 (en) * 2005-02-01 2012-06-12 Newsilike Media Group, Inc Enhanced syndication
US7509653B2 (en) * 2004-01-22 2009-03-24 International Business Machines Corporation Efficient and scalable event partitioning in business integration applications using multiple delivery queues
US7912004B2 (en) * 2006-07-14 2011-03-22 Kineto Wireless, Inc. Generic access to the Iu interface
US20080097805A1 (en) * 2006-10-23 2008-04-24 Wells R Scott Transaction processing method
TW200827798A (en) * 2006-12-20 2008-07-01 Inventec Multimedia & Telecom Switching device of light-beam channel of optical fiber network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6871224B1 (en) 1999-01-04 2005-03-22 Cisco Technology, Inc. Facility to transmit network management data to an umbrella management system
JP2002229606A (en) * 2001-01-31 2002-08-16 Nec Corp State transition model executing device, state transition model executing method and program

Also Published As

Publication number Publication date
US9047144B2 (en) 2015-06-02
US20110107354A1 (en) 2011-05-05
JP2011100448A (en) 2011-05-19
JP5794513B2 (en) 2015-10-14
KR20110049705A (en) 2011-05-12

Similar Documents

Publication Publication Date Title
US11182220B2 (en) Proactive high availability in a virtualized computer system
US10289438B2 (en) Techniques for coordination of application components deployed on distributed virtual machines
US20180145923A1 (en) Multi-cloud resource allocation
US10394663B2 (en) Low impact snapshot database protection in a micro-service environment
US8874457B2 (en) Concurrent scheduling of plan operations in a virtualized computing environment
US11327821B2 (en) Systems and methods to facilitate infrastructure installation checks and corrections in a distributed environment
US20180157512A1 (en) Apparatus and methods to incorporate external system to approve deployment provisioning
US20110178946A1 (en) Systems and methods for redundancy using snapshots and check pointing in contact handling systems
KR101599076B1 (en) A system and method for providing quality-of-services in a multi-event processing environment
TW201229795A (en) Web service patterns for globally distributed service fabric
JP2016513305A (en) Instance host configuration
US11281459B2 (en) Safe deployment of configurations to server fleets
CN109445937B (en) Componentized programming and seamless execution method
US9588685B1 (en) Distributed workflow manager
US8276141B2 (en) Selection of transaction managers based on transaction metadata
US9596157B2 (en) Server restart management via stability time
US10379916B2 (en) Integrating transaction processing system interfaces with event-driven polyglot runtime modules
US20180052754A1 (en) Performance metric contextualization in a distributed computing environment
US10397130B2 (en) Multi-cloud resource reservations
CN117076096A (en) Task flow execution method and device, computer readable medium and electronic equipment
WO2019112816A1 (en) Automatic subscription management of computing services
CN113469814A (en) Method and device for determining transaction duration data
US11997021B1 (en) Automated provisioning techniques for distributed applications with independent resource management at constituent services
US20230251956A1 (en) Regional capability aware proxy testing
US20230273816A1 (en) Reentrant service deployments

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
LAPS Lapse due to unpaid annual fee