Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

MBean이란?

MBean (Managed Bean) 란?

MBean은 관리대상 Java 오브젝트며, 그 설계 패턴은 JMX 사양의 계측 레벨의 규정에 따른다.MBean을 사용해 디바이스, 어플리케이션, 또는 관리가 필요한 모든 자원을 나타낼 수 있다. JMX 사양에서는 표준 MBean, 동적 MBean, Open MBean, Model MBean 총 4가지 종류가 있다.

두 개의 서로 다른 가상 머신 사이의 MBean 호출 프로세스

MBean을 통해 관리

  • JINI Connector로 래퍼조회 서비스프록시를 등록한다.

MBean 에이전트 발견

  • 표준 MBean에 에이전트를 발견하기 위한 모든 솔루션을 제공하지는 않는다 대신 JINI 조회 및 서비스 위치 프로토콜(SLP)같은 전통적인 서비스 검색 프로세스를 시도할 수 있다. SLP는 네트워크 응용 프로그램의 존재, 위치 및 네트워크의 네트워크 서비스 구성을 할 수 있도록 하기위한 프레임 워크를 제공하는 IETF표준이다.

발견 에이전트에 대한 레지

서비스 등록

원격 에이전트에 액세스

MBean은 서비스를 관리하기 위해 강력한 인터페이스를제공한다. JINI 클라이언트가 네트워크에서 JMX 에이전트를 통해 MBean 기능을 확장한다.에이전트 실패 알림, 이벤트 사서함 및 동적 서비스 재구성과 같은 다른 이점은 관리 및 지능형 네트워크를 가능하게 한다.

VM 1

에이전트의 작동 원리

Resource

에이전트의 작동원리를 알았으니 표준 MBean의 예외 MBean을 관리하는 간단한 JMX 에이전트를 샘플 코드로 분석해보자.

관리자 측

에이전트 측

자원의 관리

MBean 인터페이스

MBean 의 실장

1. 표준 MBean

극히 기본적인 MBean으로 인터페이스 규칙에 실장하는 Java 클래스 이름 뒤에 MBean을 더해 이름을 구성한다. 이 경우 HelloBean이라는 이름이 된다.

JMX 사양에 의하면 MBean 인터페이스는 이름과 형태의 지정된 읽기가 가능해 경우에 따라서는 기입이 가능한 속성과 MBean이 관리하는 어플리케이션에 의해 호출하는 것이 가능한 이름과 형태의 지정된 조작으로부터 구성된다.

Name속성을 취득하는 메소드와 cacheSize 속성을 취득해 설정하는 메소드도 정의된다.

여기서는 Name 속성값은 바뀌지 않는다. 실제의 장면에서는 관리 대상 자원의 실행에 의해 바뀌는 경우가 있다. 예를 들면 속성은 가동 시간이나 메모리의 사용량등의 통계를 나타내는 경우가 있다. 여기서는 Reginald라는 이름 속성을 눈여겨 보자.

setCacheSize메소드를 호출하면,

cacheSize 속성의 값이 선언된 디폴트의 값 200으로부터 변경할 수 있다. 실제로는 cacheSize속성을 변경하는 경우는 엔트리의 파기나 새로운 엔트리가 할당하고 기타 등등 다른 조작을 실행하지 않으면 안된다. 여기서는 캐쉬 사이즈가 변경된 것을 확인하는 메시지만 인쇄된다.

표준 MBean의

예제의 실행

HelloMBean 그리고 선언되는 2개의 속성 가운데 Name은 읽기 전용의 캐릭터 라인으로,

CacheSize는 읽기와 기입의 양쪽 모두가 가능한 정수다. 취득 메소드와 설정 메소드는 관리대상 어플리케이션에 속성의 값에의 액세스와 경우에 따라서는 값의 변경을 허가하기 위해서 선언된다. JMX 사양에 정의되도록 취득 메소드는 get으로부터 이름이 시작되어, void를 돌려주지 않는 모든 public메소드다. 취득 메소드를 사용하면 매니저는 돌려주어진 오브젝트의 형태와 일치하는 속성의 값을 읽어들일 수 있다. 설정 메소드는 이름이 set로부터 시작되어, 단일의 파라미터를 취하는 모든 public 메소드다. 설정 메소드를 사용하면 매니저는 파라미터와 같은 형태의 값을 속성에 새롭게 기입할 수 있다.

자원의 관리는 JMX 에이전트에 의해 행해진다. JMX 에이전트의 코어 컴포넌트는 MBean을 등록하는 관리 대상 오브젝트 서버인 MBean 서버다. JMX 에이전트에는 MBean을 관리하기 위한 일련의 서비스도 포함된다. 여기서는 기본적인 JMX 에이전트 Main을 나타내고 있다. 모든 JMX MBean에 오브젝트명이 정의될 필요가 있다. 오브젝트명은 JMX클래스 ObjectName의 인스턴스이며, 도메인과 키프로파티의 리스트를 반드시 포함하는 등 JMX 사양으로 정의되는 구문에 따를 필요가 있다.

main 그리고 정의되는 오브젝트명.name 도메인은 com.example.mbeans

키프로파티는 이 오브젝트가 Hello형태인 것을 선언한다.

Hello 오브젝트 mbean은 오브젝트명 name을 사용해 MBean server mbs MBean으로 등록된다. 이 때문에, 오브젝트와 오브젝트명을 건네주어 JMX 메소드 MBeanServer.registerMBean()을 호출한다. Hello MBean을 MBean 서버에 등록한 후 Main은 관리조작이 Hello로 실행되는 것을 대기한다.

간단한 HelloMBean과 그 인터페이스를 정의하면 다음의 섹션에 나타내도록 HelloMBean이라고 인터페이스로 나타내지는 자원을 HelloMBean과 인터페이스를 용해 관리할 수 있다.

MBean 인터페이스

MBean 의 실장

자원의 관리

표준 MBean의

예제의 실행

JMX Agent

Standard MBean : 변경이 많지 않은 시스템을 관리하기 위한 MBean이 필요할 경우 사용한다.

SNMP 와 같은 프로토콜 어댑터를 통해서 JMX 에이전트를 모니터링 하는 관리용 애플리케이션

프로토콜

어댑터

MBean Server

2. 동적 MBean

JINI Connector

JVM

Dynamic MBean : 애플리케이션이 자주 변경되는 시스템을 관리하기 위한 MBean이 필요한 경우 사용된다.

모니터

JINI

Lookup

3. 모델 MBean

JINI Service

Model MBean : 어떤 리소스나 동적으로 설치가 가능한 MBean이 필요한 경우 사용한다.

JVM으로

관리 가능한

애플리케이션

리소스 1

4. 오픈 MBean

커넥터

서버

VM 2

리소스 2

JINI

File

Server

커넥터

클라이언트

MBean 서버

Open MBean : 실행 중에 발견되는 객체의 정보를 확인하기 위한 MBean이 필요할 때 사용한다. JMX의 스펙에 지정된 타입만 리턴해야 한다.

JINI Client

Discover Lookup

각각의 MBean은 에이전트 서비스를 통해 MBean 서버에 데이터를 전달하게 된다. 이 MBean 서버를 통해서 클라이언트에서 서버의 상황을 모니터링 할 수 있다. 에이전트가 제공해야 하는 기능이다.

에이전트 서비스 MBean

  • MBean의 속성값을 얻고, 변경한다.
  • MBean의 메소드를 수행한다.
  • 모든 MBean에서 수행된 정보를 받는다.
  • 기존 클래스나 새로 다운로드된 클래스의 새로운 MBean을 초기화하고 등록한다.
  • 기존 MBean들의 구현과 관련된 관리 정책을 처리하기 위해서 에이전트 서비스를 사용되도록 한다.

JMX에서 관리하는 리소스 MBean

Dynamic Class Loading

가상머신 사이의 MBean 호출

Learn more about creating dynamic, engaging presentations with Prezi