JMX 기술의 이해

Similar documents
Network Programming

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

JAVA PROGRAMMING 실습 08.다형성

[Brochure] KOR_TunA

Spring Boot/JDBC JdbcTemplate/CRUD 예제

gnu-lee-oop-kor-lec06-3-chap7

쉽게 풀어쓴 C 프로그래밊

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

rmi_박준용_final.PDF

TTA Journal No.157_서체변경.indd

PowerPoint Presentation

JAVA PROGRAMMING 실습 09. 예외처리

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

슬라이드 1

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - 03-TCP Programming.ppt

PowerPoint Presentation

Microsoft PowerPoint - RMI.ppt

제11장 프로세스와 쓰레드

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

신림프로그래머_클린코드.key

PowerPoint Presentation

슬라이드 1

Intro to Servlet, EJB, JSP, WS

PowerPoint 프레젠테이션

JDBC 소개및설치 Database Laboratory

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

제8장 자바 GUI 프로그래밍 II

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345])

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

PowerPoint Presentation

PowerPoint Presentation

Microsoft Word - src.doc

Spring Boot

Spring Data JPA Many To Many 양방향 관계 예제

JAVA PROGRAMMING 실습 05. 객체의 활용

FileMaker ODBC and JDBC Guide

KNOM_Conference_2008_start.ppt

gnu-lee-oop-kor-lec10-1-chap10

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Chap12

쉽게 풀어쓴 C 프로그래밍

JUNIT 실습및발표

FileMaker ODBC and JDBC Guide

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES ActiveX 컴포넌트가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

MasoJava4_Dongbin.PDF

PowerPoint 프레젠테이션

슬라이드 1

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

No Slide Title

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

PowerPoint 프레젠테이션

Design Issues

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

PowerPoint Presentation

Cluster management software

The Pocket Guide to TCP/IP Sockets: C Version

FileMaker ODBC 및 JDBC 가이드

Microsoft PowerPoint - 2강

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Secure Programming Lecture1 : Introduction

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint - CSharp-10-예외처리

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

JVM 메모리구조

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Chapter #01 Subject

PowerPoint Template

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

기술문서 작성 XXE Attacks 작성자 : 인천대학교 OneScore 김영성 I. 소개 2 II. 본문 2 가. XML external entities 2 나. XXE Attack 3 다. 점검방법 3 라.

Windows 8에서 BioStar 1 설치하기

No Slide Title

자바-11장N'1-502

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

게시판 스팸 실시간 차단 시스템

PowerPoint 프레젠테이션

JMF3_심빈구.PDF

어댑터뷰

FileMaker 15 ODBC 및 JDBC 설명서

교육2 ? 그림

4장.문장

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

쉽게 풀어쓴 C 프로그래밍

Class Loader 엑셈컨설팅본부 /APM 팀김다운 개요 클래스 loader 는자바의기능중하나로써런타임에클래스파일을찾고로딩하는임무를맡는다. WAS 마다 Class Loading 의방식에조금씩차이가있으며, Intermax 설치시에 classpath 옵션을 WAS 에추

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

교육자료

슬라이드 1

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

No Slide Title

Transcription:

JMX 기술의이해 JMX(Java Management Extensions) 는프로그래머들에게자바어플리케이션의모니터링과관리기능을제공한다. 실제로이 API는웹서버에서네트워크디바이스, 웹폰에이르기까지자바로이용가능한것은어느것이든로컬혹은원격으로처리할수있게한다. JMX 기술은 JCP(Java Community Process) 에의해개발된밀접한관계의두스펙, Java Specification Request (JSR) 3: Java Management Extensions (JMX) Specification 와 JSR 160: Java Management Extensions (JMX) Remote API 1.0에의해정의된다. 이번테크팁에서는 JMX 아키텍처를소개하고간단한 MBean(Managed Beans) 을생성하는방법을소개하기로한다. JMX 기술을사용하면 MBean(Managed Bean) 으로알려진하나이상의사용자 JavaBean 오브젝트를통해 ( 리소스를호출하는 ) 한기계안의애플리케이션, 디바이스, 또는서비스를원격으로제어할수있다. 이 MBean 들은그후핵심관리오브젝트서버 (MBean 서버 ) 에등록된다. MBean 서버는리소스에접근하기원하는모든원격매니저에대한관리에이전트역할을한다. JMX 환경 JMX 스펙은아키텍처를세개의티어 (tier) 로정의하고있다. 먼저설명할두레벨은 JSR 3 에서정의된 instrumentation tier 와 agent tier 이다.

Instrumentation Tier. 어플리케이션, 디바이스, 서비스와같은리소스들은 MBean (Managed Bean) 이라고불리는자바오브젝트를이용하여설치된다. MBean 은원격으로관리하고모니터링하는 JMX 에이전트를통해속성과연산으로구성된관리인터페이스를보여준다. Agent Tier. JMX 에이전트의주요컴포넌트는 MBean 서버이며, 이는 Mbean 이등록되는코어관리에이전트오브젝트서버이다. JMX 에이전트는또한 MBean 을핸들링하기위한서비스들을포함하고있다. JMX 에이전트는직접적으로리소스를제어하고관리가가능하도록한다. 세번째티어인원격관리레벨은 JSR 160 에부분적으로정의되어있다. Remote Management Tier. 이티어는에이전트 JVM(Java Virtual Machine) 외부의원격관리어플리케이션으로부터접근가능한 JMX 에이전트를만드는프로토콜어덥터 (adaptor) 와커넥터 (connector) 를정의한다.(JSR160 에는단지커넥터만정의.) 커넥터는원격클라이언트가 JMX-aware 이고로컬클라이언트가보게될것과같은 JMX API 를볼때사용된다. 어덥터는원격클라이언트가 SNMP (Simple Network Management Protocol) 나 CIM/WBEM(Common Information Model and Web Based Enterprise Management) 같은일반관리프로포콜을이용할때사용된다.

일반적으로 JMX 를사용하는개발자는다음의세분류로나누어진다. 리소스를관리하기위해 MBean 을작성하는개발자. 이때, JMX 기술은관리를위해보여지는인터페이스를정의한다. 개발자는 MBean 과리소스자체간의 " 접착체 " 책임을가진다. 에이전트를생성하고배치하는개발자. 다음과같은전형적인몇개의태스크를수행한다 : o MBean 서버를생성하거나플랫폼에의해제공되어지는것을사용한다. o MBean 네이밍컨벤션을이용하여리소스를나타내는 MBean 들을등록한다. o 플랫폼 (RMI/SNMP) 에의해공급된커넥터와프로토콜어뎁터를형성하거나, 리소스가원격으로접근되었을때는커스텀커넥터나어덥터를추가한다 원격매니저를작성하는개발자. JMX 에이전트와상호작용하는커넥터나프로토콜을선택하고, 나타난 MBean 을통해원격으로관리되는리소스의뷰를구축한다.

다음은 JMX 스펙에의해정의된 MBean 의네가지타입이다. 표준 Mbean (Standard MBean): 표준 Mbean 은그메소드의이름에나타나듯이관리인터페이스이다. 메소드는인터페이스의내성에의해보여진다다. 표준 MBeans 은 MBean 의가장일반적인타입이다. 대부분의개발자는이외의 MBean 타입을생성할필요가없다. 다이나믹 MBean(Dynamic MBean): 다이나믹 MBean 은메소드이름의 introspection 을통하는대신 javax.management. DynamicMBean 인터페이스를이용하여관리인터페이스를프로그램적으로구현한다. 이를위해서는관리를위해나타나는속성과작용을표현하는정보클래스에의존한다. Dynamic MBean 은 MBean 의관리인터페이스가컴파일시알려지지않았을때-예를들어, XML 파일을파싱하는데결정되었을때-종종사용된다. 모델 MBean(Model MBean): 모델 MBean 은일반적이고형성가능한 MBean 으로써어플리케이션이어떤리소스든지다이나믹하게설치하는데사용한다. 본질적으로, 관리인터페이스와실제리소스가프로그램적으로설정되도록구현되어온것이다이나믹 MBean 이다. 이로인해 Java 다이나믹관리에이전트에연결된어떤매니저라도 MBean 모델을다이나믹하게실증하고형성할수있다. 오픈 MBean(Open MBean): 오픈 MBean 은데이터타입에특정제한을가진다이나믹 MBean 이며,

이는관리어플리케이션과이들의관리자들이런타임시발견되는새로운관리오브젝트들을이해하고사용할수있게한다. 오픈 MBean 은 JMX 스펙에따르는넓은범위의애플리케이션에오픈될필요가있는리소스를설치하는데있어유동적인수단을제공한다. JMX 관련관리인터페이스를생성하는데에는전형적으로최소두단계의과정으로진행된다. 첫번째단계에서는 Mbean 을 MBean 서버와함께등록하는에이전트는물론, MBean 인터페이스를생성한다. 두번째단계는원격관리어플리케이션을사용하여 MBean 을관리하는것이다. JMX 스펙은사용자가원격관리어플리케이션으로부터 JMX 에이전트를접근하는것을허락하는커넥터들의표준을정의한다. 이는다른프로토콜을사용하는 JMX 커넥터들이같은관리인터페이스를제공하기때문에유용하다. 이로써관리애플리케이션이커뮤니케이션프로토콜의사용유무에관계없이투과성있게리소스를관리할수있다. JMX 에이전트는또한 JMX 스펙에는따르지않으나 JMX 에이전트를지원하는시스템혹은어플리케이션에의해사용될수있다. 표준 Mbean 인터페이스만들기 가상의온도계장치를위한 MBean 을만들어보자. 소스코드는이테크팁의샘플아카이브 (ttfeb2005jmx.jar) 를참조하기바란다. 첫번째로해야할것은, MBean 인터페이스를생성하여리소스를 " 설치 " 하는것이다. 다시말하자면, 리소스의설치에접근을구현하기위해서는 Mbean 을생성해야하는것이다. 다음은간단한 MBean 의예제이다. public interface ThermometerMBean {

// Attributes public double gettemperature(); public double getmaximumtemperature(); public double getminimumtemperature(); // Operations public void resetmaxandmin(); MBean 의인터페이스는일반적으로읽고쓸수있는 ( 또는둘다 ) 이름별, 타입별속성들과활성화될수있는이름별, 타입별작용들로구성되어있다. JMX 기술은또한 Java 이벤트모델을기반으로하는일반적노티피케이션모델을정의한다. JMX 에이전트와 MBeans 는이노티피케이션모델을사용하여관리애플리케이션이나다른 Mbean 들과같이필요로하는곳에중요한정보를전송할수있다. 그러나이예제에서는노티피케이션을사용하지않는다. 다음단계는 MBean 인터페이스의구현을생성하는것인데, 이것은꽤간단하다. 여기서우리는단순하게가상의 static 싱글톤접근자를호출하는 Thermometer 라는클래스를생성한다. 접근자는온도데이터를

갖고있는오브젝트에대해레퍼런스를얻는다. 표준 Mbean 을위해서, 구현클래스의이름과 MBean 인터페이스의이름은마지막부분의 "MBean" 을빼고는반드시같아야한다. ( 예를들어 ThermometerMBean 은 Thermometer 이다.) public class Thermometer implements ThermometerMBean { // Attributes public double gettemperature() { return getmystaticdeviceinterface().gettemperature(); public double getmaximumtemperature() { return getmystaticdeviceinterface().getmax(); public double getminimumtemperature() { return getmystaticdeviceinterface().getmin();

// Operations public void resetmaxandmin() { getmystaticdeviceinterface().resetmaxandmin(); //... JMX 에이전트생성하기 리소스가 MBean 에의해설치된후에는 JMX 에이전트를통해관리될수있다. MBean 은같이작용하는 JMX 에이전트에대해별다른지식을필요로하지않는다. 이로써애플리케이션, 시스템, 네트워크의개발자들은복잡한관리시스템에대한이해필요없이표준방법으로제품을관리할수있다. 에이전트는서버에위치한서비스들로부터도움을받는다. 에이전트서비스는 MBean 서버에등록된 Mbean 에서의관리작용을수행할

수있는오브젝트이다. 에이전트에관리지능을포함시킴으로써, JMX 기술은좀더강력한관리어플리케이션을허용하게된다. JMX 에이전트의핵심컴포넌트는 MBean 서버이며, Mbean 이등록되는관리오브젝트서버이다. JMX 에이전트는또한 Mbean 을관리하기위한서비스들과관리어플리케이션에의해접근허락이되는적어도하나의커뮤니케이션커넥터를포함한다. 다음은간단한에이전트를위한소스코드이다. import java.lang.management.*; import javax.management.*; public class ThermometerAgent { private MBeanServer server = null; public ThermometerAgent() { server = ManagementFactory.getPlatformMBeanServer(); Thermometer tbean = new Thermometer();

ObjectName tbeanname = null; try { tbeanname = new ObjectName( "ThermometerAgent:type=Thermometer"); server.registermbean(tbean, tbeanname); catch(exception e) { e.printstacktrace(); public static void main(string argv[]) { ThermometerAgent agent = new ThermometerAgent(); System.out.println( "Agent is ready... Press Enter to close"); try { System.in.read(); catch (Exception e) {

e.printstacktrace(); 예제구동하기 예제를구동하기위해서는 J2SE 1.5 가필요하다. 1. 이번테크팁에대한샘플아카이브 (ttfeb2005jmx.jar) 를다운로드한다. 2. 예제압축파일을다운로드받은디렉토리를변경하고, 다음과같이샘플아카이브에대한 JAR 파일의압축을푼다. 3. jar xvf ttfeb2005jmx.jar 예제를위한소스코드가나타날것이다.

4. 표준 javac 컴파일러를사용하여클래스들을컴파일한다. 5. 다음명령어를사용하여에이전트클래스를구동시킨다. 6. java -Dcom.sun.management.jmxremote ThermometerAgent 7. 새로운쉘이나명령프롬프트의경우 jconsole 툴 (J2SE bin 디렉토리에있음 ) 을시작하기바란다. 에이전트가등록되면, 다음과비슷한화면이나타난다. 6. JMX 에이전트에접속한다. MBeans 탭을클릭하고왼쪽에있는트리중 ThermometerAgent 엔트리의 Thermometer MBean 을선택한다. Attributes 탭을선택하면최고, 최저, 현재

온도에대한온도계속성이나타날것이다. 7. Operations 탭을클릭하면 resetmaxandmin() 버튼을보게될것이다.