Java Management Extension

Autor: José Luís Vieira Carvilhe - GSO

INTRODUÇÃO

Dando continuidade ao tema gerência corporativa via WEB, neste artigo será apresentada a iniciativa JMX da Sun Microsystems para a gerência corporativa via WEB.

Conforme detalhado em [1][4] a JMX (Java Management Extension), conhecida anteriormente por JMAPI, define uma arquitetura de gerência, APIs, e serviços de gerência, todos sobre uma única especificação. A especificação para JMX foi desenvolvida pela SUN junto com os principais líderes da indústria de gerência, seguindo a Comunidade Java.

A JMX [1][4] fornece uma maneira simples para instrumentação de objetos Java. A instrumentação JMX tem muito poucas limitações porque é totalmente independente da infra-estrutura de gerência. Isto significa que um recurso pode ser gerenciado sem a preocupação de como seu gerente é implementado, se é implementado, por exemplo, sobre TMN ou SNMP.

A JMX permite que os desenvolvedores de aplicações baseadas em tecnologia Java criem os agentes inteligentes e gerentes na linguagem Java. Estas aplicações podem ser integradas às soluções em sistemas de gerência existentes. A arquitetura JMX é dividida em três níveis, nível de instrumentação, nível de agente e nível de gerente.

A JMX fornece ainda vários APIs Java para os protocolos padrões existentes. São as APIs de protocolos de gerência adicionais. Estas APIs foram especificadas de forma independente do modelo da arquitetura de três níveis, contudo elas são essenciais porque elas permitem que as aplicações JMX escritas em Java se integrem com as tecnologias de gerência existentes.

ARQUITETURA JMX

A arquitetura JMX [1][4] é construída de acordo com uma modelo de três níveis. O nível de instrumentação, agente e gerente. Conforme detalhado na figura 1, esta divisão traz flexibilidade, permitindo que subconjuntos da especificação sejam utilizados individualmente por diferentes comunidades de desenvolvedores que utilizam a tecnologia Java.

O nível de instrumentação fornece a gerência imediata de qualquer objeto baseado em tecnologia Java. Este nível é direcionado a toda a comunidade de desenvolvedores que utiliza tecnologia Java.

O nível agente fornece os agentes de gerência. Os agentes JMX são recipientes que contêm a base dos serviços de gerência. Esta base pode ser facilmente estendida adicionando-se recursos JMX. Este nível é direcionado para a comunidade de desenvolvedores de soluções de gerência e fornece o gerenciamento através da tecnologia Java.

O nível gerente fornece os componentes de gerência que podem operar como gerente ou agente para distribuição e consolidação dos serviços de gerência. Este nível é direcionado para a comunidade de desenvolvedores de soluções de gerência e complementa a gerência através da tecnologia Java provida pelo nível agente. As APIs de protocolos de gerência adicionais são direcionadas para comunidade de desenvolvedores de soluções de gerência e proporcionam a integração com as soluções de gerência existentes.

COMPONENTES JMX

1. Recurso Gerenciável

Um recurso gerenciável [1][4] é um recurso que foi instrumentado conforme o nível de especificação de instrumentação. Um recurso gerenciável pode ser uma aplicação de negócio, um dispositivo, ou uma implementação de "software" de um serviço ou política. Para ser instrumentado, um recurso pode ser escrito na linguagem de programação Java ou somente oferecer uma capa de tecnologia baseada em Java.

Qualquer coisa que precisa ser gerenciada, de forma imediata ou no futuro, pode ser instrumentada e pode ser considerado como um recurso potencial.

Um Objeto Mbean é um objeto Java que representa um recurso JMX gerenciável. Os objetos MBeans seguem o modelo JavaBeans e permitem o mapeamento entre os componentes JavaBeans e o seu gerenciamento. Os objetos Mbeans podem ser adaptados a qualquer agente JMX, pois permitem a instrumentação de forma padrão dos recursos gerenciados.


Figura 1 - Arquitetura JMX 

2. Agente JMX

Um agente JMX é uma entidade de gerência implementada conforme a especificação de agente JMX. Um Agente JMX é composto de um servidor de MBean, um Kit MBeans que representa os recursos gerenciados e por, pelo menos, um adaptador de protocolo. Um Agente JMX pode conter serviços de gerência, que são representados como MBeans.

O servidor de MBean corresponde a um registro para MBeans no agente. O servidor de MBean é o componente que fornece os serviços que permitem a manipulação de objetos MBeans. Todas as operações de gerência executadas no MBeans são realizadas por interfaces baseadas em tecnologia Java no servidor de MBean.

Os adaptadores de protocolos e conectores permitem que as aplicações de gerência tenham acesso a um agente JMX e manipulem os seus objetos MBeans. Os adaptadores de protocolo permitem a representação dos objetos MBeans de forma direta sobre os protocolos HTML ou SNMP. Os conectores incluem um componente remoto que permite as comunicações com o agente sobre uma variedade de protocolos, entre eles HTTP, HTTPS, IIOP. Como todos os conectores possuem a mesma interface baseada em tecnologia Java, as aplicações de gerência utilizam o conector mais apropriado ao ambiente de rede e mudam de forma transparente os conectores quando necessário.

3. Gerente JMX

Um gerente JMX é uma entidade de gerência implementada conforme a especificação de gerência JMX. Um gerente JMX fornece uma interface para que as aplicações de gerência possam interagir com o agente, distribuir ou consolidar informação de gerência, e prover segurança. Os gerentes JMX podem controlar qualquer número de agentes, simplificando a estrutura de gerência de sistemas complexos e sistemas distribuídos.

4. Serviços de Gerência

Os Agentes e gerentes JMX integram serviços que lhes dão autonomia e inteligência. Estes serviços permitem que os agentes manipulem os seus recursos e transfiram informações entre os agentes e a aplicação de gerência. Os agentes são mais autônomos porque podem incorporar certas tarefas de gerência como "polling".

A inteligência é incorporada em lógicas simples que podem impedir que os gerentes manipulem alarmes sem importância. Isto permite a redução do tráfego na rede e melhoria da resistência das aplicações às paradas. Na arquitetura JMX os serviços são objetos MBeans que podem ser adicionados ou removidos conforme a necessidade. Isto dá escalabilidade aos agentes e gerentes, o que é crítico quando estes são implementados em clientes magros.

A especificação JMX define atualmente a interface para tais serviços básicos como: um registro para MBeans, "queries" destes registros, operações sobre os recursos e transmissão de eventos de volta aos gerentes, carga dinâmica de um novo MBean, criação de relações e dependências entre MBeans, funções de tempo e monitoração de atributos. Outros serviços de administração que serão integrados na especificação incluem "bootstrapping" e persistência, gerência de políticas de redes, descoberta de agentes e gerentes na rede e segurança.

5. APIs para outros Protocolos de Gerência

O objetivo das APIs para outros protocolos é fornecer uma forma padrão para que a gerência de aplicações Java possa interagir com tecnologias de gerência existentes. Desta forma a aplicação usará uma destas APIs para ter acesso a um sistema legado e expor seus atributos como um recurso gerenciável JMX. Este recurso permitirá a qualquer aplicação de gerência padrão JMX administrar os sistemas legados através de um agente JMX. Estas APIs criam uma ponte entre as tecnologias existentes e as tecnologias futuras. A especificação JMX incluirá uma API para um gerente SNMP, APIs para gerentes e provedores WBEM, Gerente TMN, APIs para Alarmes e topologias.

CONCLUSÃO

Neste artigo foi descrita a iniciativa Java Management Extension, sua arquitetura e componentes. A Java Management Extension (JMX) [1][4] define uma arquitetura de gerência, APIs e serviços de gerência, todos sobre uma única especificação. Para isto, a arquitetura de JMX utiliza um modelo de três níveis, instrumentação, agente e gerente.

No próximo artigo será apresentada a iniciativa Web-Based Enterprise Management (WEBEM) [1][2][3], para a construção de frameworks de gerência corporativa via WEB.

REFERÊNCIAS BIBLIOGRÁFICAS

[1] CARVILHE, J. L. V. A utilização de tecnologias web em sistemas de gerência corporativa. Curitiba: PUC-PR, 2000. (Monografia apresentada no Curso de Especialização em Sistemas Distribuídos).

[2] DISTRIBUTED management task force. Disponível na Internet. http://www.dmtf.org/wbem/index.htmlll. Dez. 1999 .

[3] HARNEDY, S. Web-based management for the enterprise. New Jersey: Prentice Hall, 1999.

[4] JAVA management extension. Disponível na Internet. http://www.javasoft.com/ products/JavaManagement/wp/. Dez. 1999.