KR101992419B1 - 자바 응용을 관제하는 자바 응용 관제 장치 및 방법 - Google Patents

자바 응용을 관제하는 자바 응용 관제 장치 및 방법 Download PDF

Info

Publication number
KR101992419B1
KR101992419B1 KR1020170097364A KR20170097364A KR101992419B1 KR 101992419 B1 KR101992419 B1 KR 101992419B1 KR 1020170097364 A KR1020170097364 A KR 1020170097364A KR 20170097364 A KR20170097364 A KR 20170097364A KR 101992419 B1 KR101992419 B1 KR 101992419B1
Authority
KR
South Korea
Prior art keywords
information
java application
extracting
control
code
Prior art date
Application number
KR1020170097364A
Other languages
English (en)
Other versions
KR20190014282A (ko
Inventor
이봉국
박재호
한병전
Original Assignee
주식회사 티맥스 소프트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 티맥스 소프트 filed Critical 주식회사 티맥스 소프트
Priority to KR1020170097364A priority Critical patent/KR101992419B1/ko
Publication of KR20190014282A publication Critical patent/KR20190014282A/ko
Application granted granted Critical
Publication of KR101992419B1 publication Critical patent/KR101992419B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에 의한 자바 응용(Java Application)을 관제하는 자바 응용 관제 장치는 상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기와, 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부 및 상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기와, 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성되는 것을 특징으로 한다.

Description

자바 응용을 관제하는 자바 응용 관제 장치 및 방법{APPARATUS AND METHOD FOR MONITORING JAVA APPLICATION}
본 발명은 자바 응용을 관제하는 자바 응용 관제 장치 및 방법에 관한 것이다.
통상적인 기업의 시스템을 운영하는 데에 사용되는 자바 응용은 무중단 운영을 원칙으로 하며, 장애 상황에 대한 인지를 빠르게 할 수 있도록 자체적인 관제 기능을 탑재하거나, 별도의 관제를 위한 관제 응용을 요구한다.
표준화 기구를 통해서 제정된 국제적인 표준을 준수하는 자바 응용에 대한 관제는 관제 요구사항에 대한 기준을 세우는 것이 가능하며, 대부분의 관제 응용이 표준에 근거하여 동작한다. 하지만, 표준을 준수하지 않는 자바 응용의 경우 관제 요구사항에 대한 기준을 세울 수 없을 뿐만 아니라, 대부분의 자바 응용 관제에 사용되는 함수 후킹 방법도 관제 대상에 따라 상이하다. 따라서, 관제하고자 하는 자바 응용에 맞추어 별도로 개발해야 하며, 추가적인 관제 요구사항이 나올 때 마다 에이전트에 대한 수정 및 자바 응용의 재기동이 이루어지게 된다.
본 발명은 자바 응용 관제에 필요한 요구사항들을 수용하여 구현 가능하며, 추가적인 요구사항이 발생하더라도 별도의 에이전트 수정 없이, 그리고 관제 대상인 자바 응용을 다시 기동하지 않고 관제 기능을 추가할 수 있는 자바 응용 관제를 위한 방법 및 장치를 제공한다.
본 발명의 일 실시예에 따른 자바 응용(Java Application) 관제 장치는, 상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기, 및 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부, 및 상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기, 및 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성된다.
일 실시예에 있어서, 상기 관제 대상 정보는, 상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 있어서, 상기 정보 추출 코드는, 룰(rule) 기반 관제 정책 또는 사용자 요청에 의한 관제 정책을 기반으로 상기 관제 대상 정보를 추출하기 위한 자바 코드로 작성될 수 있다.
일 실시예에 있어서, 상기 컴파일기는, 상기 정보 추출기를 실행하는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 정보 추출 코드를 컴파일하고, 상기 컴파일에 의해 상기 정보 추출 코드를 수행하는 클래스를 생성할 수 있다.
일 실시예에 있어서, 상기 마스터부는, 상기 정보 추출기에 의해 추출된 관제 대상 정보를 획득하여 조회하는 정보 조회기를 포함할 수 있다.
일 실시예에 있어서, 상기 에이전트부는, 상기 자바 응용과 동일한 프로세스에서 실행될 수 있다.
일 실시예에 있어서, 상기 정보 추출기는, 상기 관제 대상 정보를 추출하기 위한 각각의 스레드를 실행하여 상기 업무 정보, 상기 상태 정보 및 상기 요청 정보 중 적어도 하나를 추출할 수 있다.
일 실시예에 있어서, 상기 정보 추출기는, 상기 업무 처리 로직으로부터 상기 업무 정보를 추출하는 업무정보 추출기를 포함할 수 있으며, 이 경우 상기 업무정보 추기는 상기 업무 정보 추출을 위한 코드를 상기 컴파일기에 의해 컴파일하여 생성된 클래스를 기반으로 상기 업무 정보를 추출하며, 상기 컴파일기는 상기 업무정보 추출기에서 실행되는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 업무 정보 추출을 위한 코드를 컴파일할 수 있다.
일 실시예에 있어서, 상기 정보 추출기는, 상기 상태 정보를 추출하는 상태정보 추출기를 포함할 수 있으며, 이 경우 상기 상태정보 추출기는 상기 상태 정보 추출을 위한 코드를 상기 컴파일기에 의해 컴파일하여 생성된 클래스를 기반으로 상기 상태 정보를 추출하며, 상기 컴파일기는 상기 상태정보 추출기에서 실행되는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 상태 정보 추출을 위한 코드를 컴파일할 수 있다.
일 실시예에 있어서, 상기 정보 추출기는, 상기 요청 정보를 추출하는 요청정보 추출기를 포함할 수 있으며, 이 경우 상기 요청정보 추출기는 상기 요청 정보 추출을 위한 코드를 상기 컴파일기에 의해 컴파일하여 생성된 클래스를 기반으로 상기 요청 정보를 추출하며, 상기 컴파일기는 상기 요청정보 추출기에서 실행되는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 요청 정보 추출을 위한 코드를 컴파일할 수 있다.
일 실시예에 있어서, 상기 정책 관리기는, 상기 상태 정보 및 상기 요청 정보 중 적어도 하나를 상기 에이전트부로 요청하여 상기 관제 정책에 반영할 수 있다.
일 실시예에 있어서, 상기 정보 추출기는, 상기 컴파일에 의해 생성된 클래스를 호출하는 호출 코드를 상기 자바 응용의 클래스 내에서 상기 관제 대상 정보를 추출하고자 하는 위치에 삽입할 수 있다.
본 발명의 다양한 실시예에 따라 마스터부 및 에이전트부를 포함하는 자바 응용 관제 장치에서의 자바 응용 관제 방법은, 상기 마스터부가 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하는 단계, 상기 마스터부가 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 단계, 상기 에이전트부가 상기 정보 추출 코드를 컴파일하는 단계, 및 상기 에이전트부가 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 단계를 포함한다.
일 실시예에 있어서, 상기 관제 대상 정보는, 상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 있어서, 상기 정보 추출 코드를 생성하는 단계는, 룰(rule) 기반 관제 정책 또는 사용자 요청에 의한 관제 정책을 기반으로 상기 관제 대상 정보를 추출하기 위한 자바 코드로 상기 정보 추출 코드를 작성하는 단계를 포함할 수 있다.
일 실시예에 있어서, 상기 정보 추출 코드를 컴파일하는 단계는, 상기 에이전트부에서 상기 관제 대상 정보를 추출하기 위해 실행하는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 정보 추출 코드를 컴파일하는 단계를 포함할 수 있다.
본 발명에 따른 자바 응용 관제 방법은, 상기 에이전트부가 상기 컴파일에 의해 생성된 클래스를 호출하는 호출 코드를 상기 자바 응용의 클래스 내에서 상기 관제 대상 정보를 추출하고자 하는 위치에 삽입하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 의한 방법을 컴퓨터에서 실행시키기 위하여 매체에 저장된 프로그램을 포함한다.
본 발명은, 본 발명의 일 실시예에 의한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 포함한다.
본 발명에 의하면, 관제 대상이 되는 자바 응용의 모든 정보를 획득할 수 있으며, 자바 응용의 업무 처리 스레드에 대한 부하를 최소화할 수 있다. 또한, 추가되는 관제 요구사항에 대해 유연하게 대응할 수 있다.
본 발명에 의하면, 관제 목적에 맞는 자바 코드를 자동으로 생성하고, 자바 코드를 컴파일하기 위한 클래스 경로 설정을 최소화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 자바 응용 관제 장치의 개략적인 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 자바 응용 관제 장치의 마스터부를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 자바 응용 관제 장치의 에이전트부를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 자바 응용 관제 방법을 설명하기 위한 순서도이다.
이하에서 본 발명의 기술적 사상을 명확화하기 위하여 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명하도록 한다. 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성요소에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략할 것이다. 도면들 중 실질적으로 동일한 기능구성을 갖는 구성요소들에 대하여는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들을 부여하였다. 설명의 편의를 위하여 필요한 경우에는 장치와 방법을 함께 서술하도록 한다.
도 1은 본 발명의 일 실시예에 따른 자바 응용 관제 장치의 개략적인 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 자바 응용 관제 장치(10)는 자바 응용(Java Application)을 관제하기 위한 것으로, 마스터부(100), 에이전트부(200) 및 데이터 처리부(300)를 포함할 수 있다. 자바 응용은 특정한 목적을 수행하기 위하여 자바 코드로 구현된 자바 프로그램일 수 있다.
마스터부(100)는 적어도 하나의 에이전트부(200)와 연결된다. 마스터부(100)는 에이전트부(200)에서 실행되고 있는 자바 응용을 관제하기 위한 관제 정책을 설정할 수 있다. 마스터부(100)는 관제 정책을 기반으로 자바 코드로 작성된 정보 추출 코드를 생성하고, 생성된 정보 추출 코드를 에이전트부(200)로 전송할 수 있다.
실시예에 따라, 마스터부(100)는 에이전트부(200)에 대하여 현재 상태에 대한 정보를 요청하고 마스터부(100)의 주기적인 정보 수집 정책을 전달할 수 있다.
일 실시예에 있어서, 마스터부(100)는 에이전트부(200)와 연결되어 데이터를 송수신하기 위해서 데이터 종류 또는 자바 응용에 따라 TCP 또는 UDP를 이용할 수 있다.
에이전트부(200)는 마스터부(100)에 의해 생성된 정보 추출 코드를 수신하여 컴파일하고, 컴파일에 의해 클래스 파일을 생성할 수 있다. 에이전트부(200)는 클래스 파일을 기반으로 자바 응용으로부터 관제 대상 정보를 추출할 수 있다. 이때, 에이전트부(200)는 관제 대상이 되는 자바 응용과 동일한 프로세스에서 실행될 수 있다.
에이전트부(200)는 자바 응용으로부터 원하는 관제 대상 정보를 추출하기 위해서, 컴파일기(210)의 컴파일에 의해 생성된 클래스(정보 추출 클래스)를 기반으로 자바 응용의 이진 코드에 반영할 수 있다. 일 실시예에 있어서, 에이전트부(200)는 자바 응용의 클래스 내에서 관제 대상 정보를 추출하고자 하는 위치에 정보 추출 클래스(예를 들어, 정보 추출 클래스에서 관제 대상 정보를 추출하기 위한 실제 동작을 수행하는 메서드)를 호출하는 코드를 삽입할 수 있다. 이에 따라 에이전트부(200)가 자바 응용으로부터 정보 추출 클래스의 호출을 통해 실제 정보 추출 클래스가 실행됨으로써 관제 대상 정보를 추출할 수 있다.
본 발명의 실시예에 따른 자바 응용 관제 장치(10)는 복수 개의 에이전트부(200)를 포함할 수도 있으며, 복수 개의 에이전트부(200)는 각각의 자바 응용을 실행시킬 수 있다.
데이터 처리부(300)는 자바 응용 관제에 필요한 데이터를 저장하고 관리하는 데이터베이스일 수 있다. 예를 들어, 데이터 처리부(300)는 마스터부(100)에서 작성된 관제 정책, 정보 추출 코드 등과 에이전트부(200)에서 생성된 클래스 파일, 관제 대상 정보 등의 데이터를 저장하고 관리할 수 있다. 데이터 처리부(300)는 자바 응용 관제 장치(10)의 내부에 구비될 수도 있고, 별도의 데이터베이스 서버로 구비되어 관리될 수도 있다.
이하에서 도 1에 도시된 마스터부(100) 및 에이전트부(200)의 구성에 대해 도 2 및 도 3을 참조하여 구체적으로 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 자바 응용 관제 장치의 마스터부를 나타내는 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 마스터부(100)는 정책 관리기(110), 코드 생성기(120) 및 정보 조회기(130)를 포함할 수 있다.
정책 관리기(110)는 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리한다.
일 실시예에 있어서, 자바 응용으로부터 추출할 관제 대상 정보는 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 자바 응용에 대한 상태 정보 및 사용자 혹은 마스터부(100)로부터의 요청에 의한 요청 정보 중 적어도 하나를 포함할 수 있다. 정책 관리기(110)는 상기 업무 정보, 상태 정보, 요청에 의한 요청 정보에 대응하는 관제 대상 정보를 추출하기 위한 룰(rule) 기반 관제 정책을 자동으로 설정하거나, 사용자 요청에 따라 관제 정책을 수동으로 설정할 수 있다.
정책 관리기(110)는 에이전트부(200)에서 추출된 관제 대상 정보를 요청하고, 요청에 대한 응답으로 에이전트부(200)로부터 관제 대상 정보를 수신하여 이를 관제 정책을 설정하는데 반영할 수 있다. 또한, 정책 관리기(110)는 관제 정책을 에이전트부(200)로 전달하고, 에이전트부(200)에서는 관제 정책을 자바 응용에 대한 정보를 추출할 때 적용할 수 있다.
코드 생성기(120)는 정책 관리기(110)에 의해 설정된 관제 정책을 기반으로 정보 추출 코드를 자동으로 생성할 수 있다. 일 실시예에 있어서, 정보 추출 코드는 룰 기반 관제 정책이나 사용자 요청에 의한 관제 정책에 따라 관제 대상 정보를 추출하기 위한 명령 코드를 포함하는 자바 코드로 작성될 수 있다. 코드 생성기(120)는 자바 코드로 작성된 정보 추출 코드를 에이전트부(200)로 전송한다. 예를 들어, 코드 생성기(120)는 관제 정책을 기반으로 업무 처리 로직으로부터 업무 정보를 추출하기 위한 업무 정보 추출 코드를 생성할 수 있고, 관제 정책을 기반으로 자바 응용의 상태 정보를 추출하기 위한 상태 정보 추출 코드를 생성할 수 있으며, 관제 정책을 기반으로 요청에 의한 요청 정보를 추출하기 위한 요청 정보 추출 코드를 생성할 수 있다. 관제 대상 정보에 따라 각각 생성된 정보 추출 코드는 에이전트부(200)로 전송될 수 있다.
정보 조회기(130)는 에이전트부(200)에서 추출한 관제 대상 정보를 획득하여 조회할 수 있다. 일 실시예에 있어서, 에이전트부(200)가 관제 대상 정보를 추출하여 데이터 처리부(300)에 저장하면, 정보 조회기(130)는 데이터 처리부(300)로부터 관제 대상 정보를 요청하여 조회할 수 있다. 본 발명에 따르면 마스터부(100)는 정보 조회기(130)로부터 조회된 관제 대상 정보를 통해서 자바 응용에 대한 여러 가지 정보를 파악함으로써 자바 응용의 서비스가 안정적으로 제공되고 있는지 판단할 수 있다.
실시예에 따라, 마스터부(100)는 적어도 하나의 에이전트부(200)와 연결되어 통신하기 위한 통신 수단을 구비한 채널 관리기(140)를 더 포함할 수 있다. 마스터부(100)는 채널 관리기(140)를 통해서 적어도 하나의 에이전트부(200)와 관제 정책, 정보 추출 코드, 관제 대상 정보 등의 데이터를 송수신할 수 있다. 마스터부(100)는 데이터 처리부(300)와 채널 관리기(140)를 통해 통신하여 자바 응용 관제에 필요한 데이터를 송수신할 수 있다.
도 3은 본 발명의 일 실시예에 따른 자바 응용 관제 장치의 에이전트부를 나타내는 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 에이전트부(200)는 컴파일기(210) 및 정보 추출기(220)를 포함할 수 있다.
컴파일기(210)는 마스터부(100)의 코드 생성기(120)로부터 관제 대상 정보를 추출하기 위한 정보 추출 코드를 수신하여 컴파일할 수 있다. 컴파일기(210)는 관제 대상 정보의 추출을 수행하는 해당 스레드(정보 추출기(220)의 스레드)의 콘텍스트 클래스 로더를 사용하여 컴파일을 할 수 있다.
자바 코드를 컴파일 하기 위해서는 해당 자바 코드에서 사용하고 있는 클래스를 참조해야 하며, 이를 위해서는 해당 클래스 경로를 추가하여야 한다. 본 발명의 실시예에 따르면, 관제 대상 정보의 추출을 위해서 현재 실행되고 있는 스레드의 클래스 로더를 이용하므로, 상기 클래스 로더에 의해 관제 대상 정보 추출 시에 사용되는 클래스들이 자바 가상 머신(JVM)에 로드된 상태이다. 따라서, 정보 추출 코드의 컴파일 시에 자바 가상 머신에 로드된 클래스들을 참조할 수 있으므로, 클래스들의 중복적인 참조를 피할 수 있고 클래스 경로 설정을 최소화할 수 있다.
일 실시예에 있어서, 마스터부(100)의 코드 생성기(120)가 자바 응용의 업무 처리 로직의 정보를 추출하기 위한 업무 정보 추출 코드를 생성하여 전송한 경우, 컴파일기(210)는 업무 정보의 추출을 수행하는 스레드(업무정보 추출기(221)의 스레드)의 콘텍스트 클래스 로더를 사용하여 업무 정보 추출 코드를 컴파일할 수 있다. 이 경우, 업무 처리 로직에 사용되는 클래스들이 현재 실행 중인 스레드의 콘텍스트 클래스 로더에 의해 자바 가상 머신에 로드된 상태이므로, 컴파일기(210)는 로드된 클래스의 경로 설정 정보를 이용하여 업무 정보 추출 코드를 컴파일할 수 있다. 실시예에 따라, 자바 가상 머신에 로드되지 않은 외부 파일을 참조할 경우, 컴파일기(210)는 컴파일을 위한 클래스 경로를 추가하거나 별도의 클래스 로더를 사용할 수도 있다.
다른 실시예에 있어서, 마스터부(100)의 코드 생성기(120)가 자바 응용의 상태 정보를 추출하기 위한 상태 정보 추출 코드를 생성하여 전송한 경우, 컴파일기(210)는 상태 정보의 추출을 수행하는 스레드(상태정보 추출기(222)의 스레드)의 콘텍스트 클래스 로더를 사용하여 상태 정보 추출 코드를 컴파일할 수 있다. 이 경우, 상태 정보 추출에 사용되는 클래스들이 현재 실행 중인 스레드의 콘텍스트 클래스 로더에 의해 자바 가상 머신에 로드된 상태이므로, 컴파일기(210)는 로드된 상태 정보 추출 시 사용되는 클래스의 경로 설정 정보를 이용하여 상태 정보 추출 코드를 컴파일할 수 있다. 만일, 자바 가상 머신에 로드되지 않은 외부 파일을 참조할 경우, 컴파일기(210)는 컴파일을 위한 클래스 경로를 추가하거나 별도의 클래스 로더를 사용할 수도 있다.
또 다른 실시예에 있어서, 마스터부(100)에 포함된 코드 생성기(120)가 요청에 의한 정보를 추출하기 위한 요청 정보 추출 코드를 생성하여 전송한 경우, 컴파일기(210)는 요청 정보의 추출을 수행하는 스레드(요청정보 추출기(223)의 스레드)의 콘텍스트 클래스 로더를 사용하여 요청 정보 추출 코드를 컴파일할 수 있다. 이 경우, 요청 정보 추출에 사용되는 클래스들이 현재 실행 중인 스레드의 콘텍스트 클래스 로더에 의해 자바 가상 머신에 로드된 상태이므로, 컴파일기(210)는 로드된 요청 정보 추출 시 사용되는 클래스의 경로 설정 정보를 이용하여 요청 정보 추출 코드를 컴파일할 수 있다. 만일, 자바 가상 머신에 로드되지 않은 외부 파일을 참조할 경우, 컴파일기(210)는 컴파일을 위한 클래스 경로를 추가하거나 별도의 클래스 로더를 사용할 수도 있다.
컴파일기(210)는 동기 모드 또는 비동기 모드를 지원하여 자바 코드의 컴파일 시기를 조정할 수 있다. 예를 들어, 동기 모드를 지원하는 경우, 컴파일기(210)가 관제 대상 정보의 추출을 수행하는 해당 스레드(정보 추출기(220)의 스레드)의 콘텍스트 클래스 로더를 사용하여 해당 스레드에서 동적으로 컴파일을 실행할 수 있다. 이 경우, 컴파일 실행으로 인해 해당 스레드의 일시적 멈춤 현상이 발생할 수 있으나, 컴파일 후 옵션 적용 및 스레드의 기동 시점부터 모든 관제 대상 정보를 추출할 수 있다. 비동기 모드를 지원하는 경우, 컴파일기(210)가 관제 대상 정보의 추출을 수행하는 해당 스레드(정보 추출기(220)의 스레드)의 콘텍스트 클래스 로더를 다른 스레드로 전달하여 다른 스레드에서 컴파일을 실행할 수 있다. 이 경우, 컴파일 실행으로 인해 해당 스레드가 중단되는 현상은 발생하지 않지만, 다른 스레드에서의 컴파일로 인해 일부 관제 대상 정보가 추출되지 못하는 경우가 발생할 수도 있다.
컴파일기(210)는 자바 코드로 작성된 정보 추출 코드를 컴파일하여 바이트 코드(byte code)로 이루어진 자바 클래스 파일을 생성할 수 있다. 일 실시예에 있어서, 컴파일기(210)는 마스터부(100)의 코드 생성기(120)에서 생성된 정보 추출 코드, 예를 들어 업무 정보 추출 코드, 상태 정보 추출 코드, 요청 정보 추출 코드를 컴파일하여 각 정보 추출 코드에 대응되는 각각의 자바 클래스를 생성할 수 있다. 본 발명의 실시예에 따르면, 마스터부(100)의 코드 생성기(120)가 관제 대상 정보에 따라 객체화된 자바 코드를 생성하고, 이에 따라 에이전트부(200)의 컴파일기(210)가 객체화된 클래스 파일을 생성할 수 있다. 따라서, 자바 응용과는 별개로 객체화된 클래스 파일을 생성하여 실행함으로써 자바 응용에 대한 관제를 수행할 수 있다. 본 발명에 따르면 자바 응용의 소스 코드를 수정할 필요 없이 관제 대상 목적에 맞게 자바 코드를 생성하여 컴파일할 수 있어서 특정한 목적이나 추가적인 요구사항을 반영하기 용이하며 자바 응용의 재기동 없이도 관제 서비스를 제공할 수 있다.
정보 추출기(220)는 컴파일기(210)로부터 생성된 자바 클래스 파일을 기반으로 자바 응용으로부터 관제 대상 정보를 추출할 수 있다.
일 실시예에 있어서, 정보 추출기(220)는 추출할 관제 대상 정보에 따라 별도의 추출기를 구비할 수 있다. 예를 들어, 정보 추출기(220)는 업무 정보를 추출하기 위한 업무정보 추출기(221), 상태 정보를 추출하기 위한 상태정보 추출기(222) 및 요청에 의한 요청 정보를 추출하기 위한 요청정보 추출기(223)를 포함할 수 있다.
업무정보 추출기(221)는 업무 정보 추출을 위한 업무 정보 추출 코드를 컴파일하여 변환된 클래스 파일을 기반으로 자바 응용의 업무 처리 로직으로부터 정보를 추출할 수 있다. 업무 처리 로직은 특정한 값을 얻기 위해 데이터의 처리를 수행하는 응용 프로그램의 일부를 말한다. 일례로, 업무정보 추출기(221)는 자바 응용에서 수행되는 데이터 처리 과정에서 입출력 되는 여러 가지 정보들을 업무 정보로 추출할 수 있다. 이때, 업무정보 추출기(221)는 자바 응용의 업무 처리 로직이 실행되고 있는 스레드에서 업무 처리 로직과 동시에 업무 정보 추출을 수행할 수 있다. 또는 업무정보 추출기(221)는 별도의 스레드를 생성하여 업무 정보를 추출할 수도 있다.
상태정보 추출기(222)는 자바 응용에 대한 상태 정보 추출을 위한 상태 정보 추출 코드를 컴파일하여 변환된 클래스 파일을 기반으로 자바 응용의 상태 정보를 추출할 수 있다. 예를 들어, 자바 응용에 대한 상태 정보는 자바 응용의 성능 정보(예를 들어, 자바 응용 수행 시의 CPU, 메모리, 스레드, 자바 가상 머신 등 사용 정보), 현재 서비스 상태, 통계 정보 등을 포함할 수 있다. 또한, 상태 정보는 주기적으로 추출되어 수집될 수 있다. 상태정보 추출기(222)는 자바 응용의 상태 정보를 추출하기 위한 스레드를 생성하여 실행될 수 있다.
요청정보 추출기(223)는 사용자 요청 혹은 마스터부(100) 요청에 의한 요청 사항을 추출하기 위해 작성된 요청 정보 추출 코드를 컴파일하여 변환된 클래스 파일을 기반으로 요청 정보를 추출할 수 있다. 예를 들어, 마스터부(100) 또는 사용자로부터 자바 응용에 대한 특정 정보(예를 들어, 자바 응용의 상태 정보, 통계 정보 등)의 요청이 수신되면, 요청정보 추출기(223)는 요청된 특정 정보를 추출하여 마스터부(100)로 전송할 수 있다. 요청정보 추출기(223)는 자바 응용의 요청 정보를 추출하기 위한 스레드를 생성하여 실행될 수 있다.
정보 추출기(220)는 자바 응용으로부터 원하는 관제 대상 정보를 추출하기 위해서, 컴파일기(210)의 컴파일에 의해 생성된 클래스(정보 추출 클래스)를 기반으로 자바 응용의 이진 코드에 반영할 수 있다. 일 실시예에 있어서, 정보 추출기(220)는 자바 응용의 클래스 내에서 관제 대상 정보를 추출하고자 하는 위치에 정보 추출 클래스(예를 들어, 정보 추출 클래스에서 관제 대상 정보를 추출하기 위한 실제 동작을 수행하는 메서드)를 호출하는 코드를 삽입할 수 있다. 따라서, 정보 추출기(220)는 자바 응용으로부터 정보 추출 클래스의 호출을 통해 원하는 관제 대상 정보를 추출할 수 있다. 다음과 같은 코드가 존재하는 경우를 예를 들어 설명하도록 한다.
자바 응용의 클래스 = ClasseA
자바 응용의 메서드 = ClassA#service()
정보 추출 클래스 = ClassB implements Super
정보 추출 메서드 = Super#extract()
여기서, ClassA는 자바 응용에서 실행되는 자바 클래스로, 예컨대 자바 응용의 업무 처리 로직일 수 있다. ClassA#service()는 자바 응용의 ClassA에 포함된 service() 메서드로, 예컨대 자바 응용의 특정 업무를 수행하는 메서드일 수 있다. ClassB는 관제 대상 정보를 추출하기 위한 자바 클래스로, 예컨대 자바 응용으로부터 업무 정보를 추출하기 위해 실행되는 자바 클래스일 수 있다. Super#extract()는 ClassB에 포함된 extract() 메서드로, 자바 응용으로부터 관제 대상 정보를 추출하기 위한 실제 동작을 수행하는 메서드일 수 있다.
이때, 정보 추출기(220)는 자바 응용에서 실행되고 있는 ClassA의 service() 메서드로부터 관제 대상 정보를 추출하기 위해서, ClassA의 service() 메서드의 시작과 끝 부분에 정보 추출 메서드 Super#extract()를 삽입할 수 있다. 따라서, 자바 응용이 실행될 때, ClassB의 Super#extract() 메서드를 통해 ClassA의 service() 메서드로부터 필요한 관제 대상 정보를 추출할 수 있다.
일 실시예로, 업무정보 추출기(221)는 업무 정보 추출 코드를 컴파일하여 변환된 클래스(업무 정보 추출 클래스)를 기반으로 자바 응용의 업무 처리 로직에 반영할 수 있다. 예를 들어, 자바 응용의 업무 처리 로직 내에서 관제 대상 정보를 추출하고자 하는 위치(예를 들어, 상기 service() 메서드의 시작과 끝 부분)에 업무 정보 추출 클래스(예를 들어, 상기 extract() 메서드)를 호출하는 코드를 삽입할 수 있다. 따라서, 자바 응용의 업무 처리 로직이 수행되면, 업무정보 추출기(221)가 자바 응용의 업무 처리 로직 내 삽입된 업무 정보 추출 클래스의 호출 코드를 통해 실제 업무 정보 추출 클래스의 실행 코드가 실행됨으로써 자바 응용으로부터 관제 대상 정보(업무 정보)를 추출 할 수 있다.
상술한 바와 같이, 정보 추출기(220)는 각각의 스레드를 생성하여 자바 응용에 대한 업무 정보, 상태 정보, 및 요청 정보를 추출할 수도 있으며, 도 3에 도시된 것처럼 업무정보 추출기(221)를 실행하여 업무 정보를 추출하도록 처리하는 업무정보 처리기(224), 상태정보 추출기(222)를 실행하여 상태 정보를 추출하도록 처리하는 상태정보 처리기(225), 요청정보 추출기(223)를 통해 정보를 추출하여 요청에 대한 응답을 처리하는 요청정보 처리기(226)를 포함하여 구성될 수도 있다. 이 경우, 업무정보 추출기(221)는 업무정보 처리기(224)의 스레드에서, 상태정보 추출기(222)는 상태정보 처리기(225)의 스레드에서, 요청정보 추출기(223)는 요청정보 처리기(226)의 스레드에서 수행될 수 있다.
실시예에 따라, 에이전트부(200)는 마스터부(100)와 연결되어 통신하기 위한 통신 수단을 구비한 채널 관리기(230)를 더 포함할 수 있다. 에이전트부(200)는 채널 관리기(230)를 통해서 마스터부(100)와 관제 정책, 정보 추출 코드, 관제 대상 정보 등의 데이터를 송수신할 수 있다. 에이전트부(200)는 데이터 처리부(300)와 채널 관리기(230)를 통해 통신하여 자바 응용 관제에 필요한 데이터를 송수신할 수 있다.
도 4는 본 발명의 일 실시예에 따른 자바 응용 관제 방법을 설명하기 위한 순서도이다. 도 4의 방법은 상술한 도 1 내지 도 3의 자바 응용 관제 장치(10)에 의해 수행될 수 있다.
도 4를 참조하면, 마스터부(100)의 정책 관리기(110)는 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정할 수 있다(S400). 마스터부(100)의 정책 관리기(110)는 관제 대상 정보를 추출하기 위한 룰(rule) 기반 관제 정책을 자동으로 설정하거나, 사용자 요청에 따라 관제 정책을 수동으로 설정할 수 있다.
일 실시예에 있어서, 마스터부(100)의 정책 관리기(110)는 에이전트부(200)의 정보 추출기(220)에서 추출한 관제 대상 정보를 요청하고, 요청에 대한 응답으로 에이전트부(200)의 정보 추출기(220)로부터 관제 대상 정보를 수신하여 이를 관제 정책을 설정하는데 반영할 수 있다.
마스터부(100)의 정책 관리기(110)는 설정된 관제 정책을 에이전트부(200)의 정보 추출기(220)로 전달할 수 있다. 에이전트부(200)의 정보 추출기(220)에서는 관제 정책을 기반으로 자바 응용에 대한 정보를 추출할 때 적용할 수 있다.
마스터부(100)의 코드 생성기(120)는 설정된 관제 정책을 기반으로 정보 추출 코드를 생성할 수 있다(S410).
일 실시예에 있어서, 자바 응용의 업무 처리 로직에 대한 업무 정보를 관제 대상 정보로 요청하는 관제 정책인 경우, 마스터부(100)의 코드 생성기(120)는 업무 정보를 추출하기 위한 자바 코드를 생성할 수 있다. 자바 응용의 상태 정보를 관제 대상 정보로 요청하는 관제 정책인 경우, 마스터부(100)의 코드 생성기(120)는 상태 정보를 추출하기 위한 자바 코드를 생성할 수 있다. 사용자의 요청사항에 따라 관제 정책이 설정된 경우, 마스터부(100)의 코드 생성기(120)는 사용자의 요청사항에 관한 정보를 추출하기 위한 자바 코드를 생성할 수 있다.
에이전트부(200)의 컴파일기(210)는 마스터부(100)의 코드 생성기(120)로부터 정보 추출 코드를 수신하여 컴파일할 수 있다(S420). 상술한 바와 같이, 에이전트부(200)의 컴파일기(210)는 관제 대상 정보의 추출을 수행하는 해당 스레드의 콘텍스트 클래스 로더를 사용하여 컴파일을 할 수 있다.
일 실시예에 있어서, 업무 정보를 추출하기 위한 자바 코드를 컴파일 할 경우, 에이전트부(200)의 컴파일기(210)는 업무 정보의 추출을 수행하는 스레드의 콘텍스트 클래스 로더를 사용할 수 있다. 상태 정보를 추출하기 위한 자바 코드를 컴파일 할 경우, 에이전트부(200)의 컴파일기(210)는 상태 정보의 추출을 수행하는 스레드의 콘텍스트 클래스 로더를 사용할 수 있다. 사용자의 요청사항에 관한 정보를 추출하기 위한 자바 코드를 컴파일 할 경우, 에이전트부(200)의 컴파일기(210)는 요청 정보의 추출을 수행하는 스레드의 콘텍스트 클래스 로더를 사용할 수 있다.
에이전트부(200)의 컴파일기(210)는 컴파일에 의해 정보 추출 코드를 자바 클래스 파일로 변환할 수 있다.
에이전트부(200)의 정보 추출기(220)는 자바 클래스 파일을 기반으로 자바 응용으로부터 관제 대상 정보를 추출할 수 있다(S430).
일 실시예에 있어서, 관제 대상 정보가 자바 응용의 업무 처리 로직에 대한 업무 정보인 경우, 에이전트부(200)의 정보 추출기(220)는 자바 응용의 업무 처리 로직이 실행되고 있는 스레드를 통해 업무 정보를 추출할 수 있다. 관제 대상 정보가 자바 응용의 상태 정보인 경우, 에이전트부(200)의 정보 추출기(220)는 자바 응용의 상태 정보를 추출하기 위한 스레드를 실행시켜 동작할 수 있다. 관제 대상 정보가 마스터부(100) 또는 사용자로부터 요청된 자바 응용에 대한 특정 정보(예를 들어, 자바 응용의 상태 정보, 통계 정보 등)인 경우, 에이전트부(200)의 정보 추출기(220)는 자바 응용의 요청 정보를 추출하기 위한 스레드를 실행시켜 동작할 수 있다.
에이전트부(200)의 정보 추출기(220)는 자바 응용으로부터 원하는 관제 대상 정보를 추출하기 위해서, 컴파일기(210)의 컴파일에 의해 생성된 클래스(정보 추출 클래스)를 기반으로 자바 응용의 이진 코드에 반영할 수 있다. 일 실시예에 있어서, 에이전트부(200)의 정보 추출기(220)는 자바 응용의 클래스 내에서 관제 대상 정보를 추출하고자 하는 위치에 정보 추출 클래스(예를 들어, 정보 추출 클래스에서 관제 대상 정보를 추출하기 위한 실제 동작을 수행하는 메서드)를 호출하는 코드를 삽입할 수 있다. 이에 따라 에이전트부(200)의 정보 추출기(220)가 자바 응용으로부터 정보 추출 클래스의 호출을 통해 실제 정보 추출 클래스가 실행됨으로써 관제 대상 정보를 추출할 수 있다. 이에 대해서는 도 3의 에이전트부(200)에서 상세히 설명한 바 있으므로, 여기서는 상세한 설명을 생략하도록 한다.
마스터부(100)의 정보 조회기(130)는 에이전트부(200)의 정보 추출기(220)에서 추출한 관제 대상 정보를 조회하고, 이를 이용하여 자바 응용에 대한 관제를 수행할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 마그네틱 저장 매체, 광학적 판독 매체 등 모든 저장매체를 포함한다. 또한, 본 발명에서 사용되는 메시지의 데이터 포맷을 기록매체에 기록하는 것이 가능하다.
지금까지 본 발명에 대하여 도면에 도시된 바람직한 실시예들을 중심으로 상세히 살펴보았다. 이러한 실시예들은 이 발명을 한정하려는 것이 아니라 예시적인 것에 불과하며, 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 진정한 기술적 보호범위는 전술한 설명이 아니라 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다. 비록 본 명세서에 특정한 용어들이 사용되었으나 이는 단지 본 발명의 개념을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 본 발명의 각 단계는 반드시 기재된 순서대로 수행되어야 할 필요는 없고, 병렬적, 선택적 또는 개별적으로 수행될 수 있다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 특허청구범위에서 청구하는 본 발명의 본질적인 기술사상에서 벗어나지 않는 범위에서 다양한 변형 형태 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 균등물은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 구성요소를 포함하는 것으로 이해되어야 한다.

Claims (18)

  1. 자바 응용(Java Application)을 관제하는 자바 응용 관제 장치에 있어서,
    상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기, 및 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부; 및
    상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기, 및 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성되며,
    상기 컴파일기는,
    상기 정보 추출기를 실행하는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 정보 추출 코드를 컴파일하고, 상기 컴파일에 의해 상기 정보 추출 코드를 수행하는 클래스를 생성하는 것을 특징으로 하는 자바 응용 관제 장치.
  2. 제1항에 있어서,
    상기 관제 대상 정보는,
    상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 자바 응용 관제 장치.
  3. 제1항에 있어서,
    상기 정보 추출 코드는,
    룰(rule) 기반 관제 정책 또는 사용자 요청에 의한 관제 정책을 기반으로 상기 관제 대상 정보를 추출하기 위한 자바 코드로 작성된 것을 특징으로 하는 자바 응용 관제 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 마스터부는,
    상기 정보 추출기에 의해 추출된 관제 대상 정보를 획득하여 조회하는 정보 조회기를 포함하는 것을 특징으로 하는 자바 응용 관제 장치.
  6. 제1항에 있어서,
    상기 에이전트부는,
    상기 자바 응용과 동일한 프로세스에서 실행되는 것을 특징으로 하는 자바 응용 관제 장치.
  7. 자바 응용(Java Application)을 관제하는 자바 응용 관제 장치에 있어서,
    상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기, 및 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부; 및
    상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기, 및 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성되며,
    상기 관제 대상 정보는,
    상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함하고,
    상기 정보 추출기는,
    상기 관제 대상 정보를 추출하기 위한 각각의 스레드를 실행하여 상기 업무 정보, 상기 상태 정보 및 상기 요청 정보 중 적어도 하나를 추출하는 것을 특징으로 하는 자바 응용 관제 장치.
  8. 자바 응용(Java Application)을 관제하는 자바 응용 관제 장치에 있어서,
    상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기, 및 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부; 및
    상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기, 및 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성되며,
    상기 관제 대상 정보는,
    상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함하고,
    상기 정보 추출기는,
    상기 업무 처리 로직으로부터 상기 업무 정보를 추출하는 업무정보 추출기를 포함하며,
    상기 업무정보 추출기는,
    상기 업무 정보 추출을 위한 코드를 상기 컴파일기에 의해 컴파일하여 생성된 클래스를 기반으로 상기 업무 정보를 추출하며,
    상기 컴파일기는,
    상기 업무정보 추출기에서 실행되는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 업무 정보 추출을 위한 코드를 컴파일하는 것을 특징으로 하는 자바 응용 관제 장치.
  9. 자바 응용(Java Application)을 관제하는 자바 응용 관제 장치에 있어서,
    상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기, 및 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부; 및
    상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기, 및 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성되며,
    상기 관제 대상 정보는,
    상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함하고,
    상기 정보 추출기는,
    상기 상태 정보를 추출하는 상태정보 추출기를 포함하며,
    상기 상태정보 추출기는,
    상기 상태 정보 추출을 위한 코드를 상기 컴파일기에 의해 컴파일하여 생성된 클래스를 기반으로 상기 상태 정보를 추출하며,
    상기 컴파일기는,
    상기 상태정보 추출기에서 실행되는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 상태 정보 추출을 위한 코드를 컴파일하는 것을 특징으로 하는 자바 응용 관제 장치.
  10. 자바 응용(Java Application)을 관제하는 자바 응용 관제 장치에 있어서,
    상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기, 및 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부; 및
    상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기, 및 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성되며,
    상기 관제 대상 정보는,
    상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함하고,
    상기 정보 추출기는,
    상기 요청 정보를 추출하는 요청정보 추출기를 포함하며,
    상기 요청정보 추출기는,
    상기 요청 정보 추출을 위한 코드를 상기 컴파일기에 의해 컴파일하여 생성된 클래스를 기반으로 상기 요청 정보를 추출하며,
    상기 컴파일기는,
    상기 요청정보 추출기에서 실행되는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 요청 정보 추출을 위한 코드를 컴파일하는 것을 특징으로 하는 자바 응용 관제 장치.
  11. 자바 응용(Java Application)을 관제하는 자바 응용 관제 장치에 있어서,
    상기 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하고 관리하는 정책 관리기, 및 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 코드 생성기를 포함하는 마스터부; 및
    상기 마스터부로부터 수신한 상기 정보 추출 코드를 컴파일하는 컴파일기, 및 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 정보 추출기를 포함하는 에이전트부로 구성되며,
    상기 관제 대상 정보는,
    상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함하고,
    상기 정책 관리기는,
    상기 상태 정보 및 상기 요청 정보 중 적어도 하나를 상기 에이전트부로 요청하여 상기 관제 정책에 반영하고,
    상기 컴파일기는,
    상기 정보 추출기를 실행하는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 정보 추출 코드를 컴파일하고, 상기 컴파일에 의해 상기 정보 추출 코드를 수행하는 클래스를 생성하는 것을 특징으로 하는 자바 응용 관제 장치.
  12. 제1항에 있어서,
    상기 정보 추출기는,
    상기 컴파일에 의해 생성된 클래스를 호출하는 호출 코드를 상기 자바 응용의 클래스 내에서 상기 관제 대상 정보를 추출하고자 하는 위치에 삽입하는 것을 특징으로 하는 자바 응용 관제 장치.
  13. 마스터부 및 에이전트부를 포함하는 자바 응용 관제 장치에서의 자바 응용 관제 방법에 있어서,
    상기 마스터부가 자바 응용으로부터 관제 대상 정보를 추출하기 위한 관제 정책을 설정하는 단계;
    상기 마스터부가 상기 관제 정책을 기반으로 정보 추출 코드를 생성하는 단계;
    상기 에이전트부가 상기 관제 대상 정보를 추출하기 위해 실행하는 스레드의 콘텍스트 클래스 로더를 사용하여 상기 정보 추출 코드를 컴파일하는 단계; 및
    상기 에이전트부가 상기 컴파일에 의해 생성된 클래스를 기반으로 상기 자바 응용으로부터 관제 대상 정보를 추출하는 단계를 포함하는 것을 특징으로 하는 자바 응용 관제 방법.
  14. 제13항에 있어서,
    상기 관제 대상 정보는,
    상기 자바 응용에서 수행되는 업무 처리 로직에 의한 업무 정보, 상기 자바 응용에 대한 상태 정보, 및 요청에 의한 요청 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 자바 응용 관제 방법.
  15. 제13항에 있어서,
    상기 정보 추출 코드를 생성하는 단계는,
    룰(rule) 기반 관제 정책 또는 사용자 요청에 의한 관제 정책을 기반으로 상기 관제 대상 정보를 추출하기 위한 자바 코드로 상기 정보 추출 코드를 작성하는 단계를 포함하는 것을 특징으로 하는 자바 응용 관제 방법.
  16. 삭제
  17. 제13항에 있어서,
    상기 에이전트부가 상기 컴파일에 의해 생성된 클래스를 호출하는 호출 코드를 상기 자바 응용의 클래스 내에서 상기 관제 대상 정보를 추출하고자 하는 위치에 삽입하는 단계를 더 포함하는 것을 특징으로 하는 자바 응용 관제 방법.
  18. 제13항 내지 제15항, 및 제17항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020170097364A 2017-07-31 2017-07-31 자바 응용을 관제하는 자바 응용 관제 장치 및 방법 KR101992419B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170097364A KR101992419B1 (ko) 2017-07-31 2017-07-31 자바 응용을 관제하는 자바 응용 관제 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170097364A KR101992419B1 (ko) 2017-07-31 2017-07-31 자바 응용을 관제하는 자바 응용 관제 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20190014282A KR20190014282A (ko) 2019-02-12
KR101992419B1 true KR101992419B1 (ko) 2019-06-27

Family

ID=65369386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170097364A KR101992419B1 (ko) 2017-07-31 2017-07-31 자바 응용을 관제하는 자바 응용 관제 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101992419B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005730A1 (en) * 2002-01-18 2008-01-03 Bea Systems, Inc. Flexible and extensible java bytecode instrumentation system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798557B2 (en) * 2012-08-24 2017-10-24 Ca, Inc. Injection of updated classes for a java agent

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005730A1 (en) * 2002-01-18 2008-01-03 Bea Systems, Inc. Flexible and extensible java bytecode instrumentation system

Also Published As

Publication number Publication date
KR20190014282A (ko) 2019-02-12

Similar Documents

Publication Publication Date Title
US8332845B2 (en) Compile timing based on execution frequency of a procedure
CN111831287B (zh) 用于确定执行代码段所需的资源的方法、设备和程序产品
KR101366402B1 (ko) 가상 실행 시스템 및 가상 실행 시스템의 성능 향상 방법
CN102187313B (zh) 高速缓存运行时生成的代码
TWI229269B (en) Method and device for creating and using pre-internalized program files
US8539464B2 (en) Distributed just-in-time compilation
US7765537B2 (en) Profiling interface assisted class loading for byte code instrumented logic
US8997040B2 (en) Variable closure
US20060265469A1 (en) XML based scripting framework, and methods of providing automated interactions with remote systems
US20100229165A1 (en) Controlling java virtual machine component behavior on a per-classloader basis
JP2007226799A (ja) 入出力作業によってブロッキングされたスレッドを強制終了する装置および方法
US20180052667A1 (en) Emulation device, emulation method, and recording medium storing emulation program
US20190087211A1 (en) Re-Playable Execution Optimized for Page Sharing in a Managed Runtime Environment
KR20220055151A (ko) 식별 아이디 생성 방법, 그리고 이를 구현하기 위한 장치
JP2006065462A (ja) ソフトウェア・システム、ソフトウェア停止方法、プログラム、及び、記憶媒体
KR101992419B1 (ko) 자바 응용을 관제하는 자바 응용 관제 장치 및 방법
CN113111666A (zh) 一种实现应用程序的多语言翻译的系统及方法
CN106484375B (zh) 一种指令块加载方法、软交换设备及系统
KR102456017B1 (ko) 응용 프로그램간 파일 공유 장치 및 방법
US10474568B2 (en) Re-playable execution optimized for page sharing in a managed runtime environment
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
KR100617755B1 (ko) Nand 플래시 메모리를 구비한 이동 통신 단말의 부팅방법 및 장치
CN114138371A (zh) 配置动态加载方法、装置及计算机设备、存储介质
US8468511B2 (en) Use of name mangling techniques to encode cross procedure register assignment
CN111061538A (zh) 一种多Lua虚拟机内存优化方法及其系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant