Home
manual de utilização
Contents
1. Finish Cancel Help Figura 17 Tela de defini o de Tipos e Op es do MBeans No painel Specify Attributes Especifica o de Atributos ser especificado um atributo para o MBean que guardar o tempo gasto na an lise da resolu o de um anagrama Para criar o atributo deve se selecionar o bot o Add Attribute Para o exemplo deve se colocar as seguintes informa es nos respectivos campos Attribute Name TempoGastoPensando Type int Access ReadOnly Description Tempo Gasto para Resolver A figura 18 apresenta a tela Specify Attributes Especifica o de Atributos com os campos preenchidos com os dados listados anteriormente Ap s definir as informa es do atributo deve se selecionar o bot o Next 31 4 New JMX MBean Steps Specify Attributes Choose File Type Specify attributes to be included in the MBean Name and Location Se o Type and Options Attribute Name Type Specify Attributes Specify Operations Implement Notification Emitter Interface Specify JUnit Test Access Description TempoGastoPensando int v ReadOnly w Tempo Gasto para Resoly Add Attribute Remove Attribute Figura 18 Tela de especifica o de atributos com os campos preenchidos No painel Specify Operations Especifica o de Opera es sera especificado uma opera o m todo que restaura o estado do MBean Para criar a opera o deve se selecionar o bot o Add Operation P
2. Ap s a realiza o das altera es o c digo fonte da classe MBeanStatusAnagramaTest java dever ser semelhante ao que apresentado na figura 33 por m sem alguns coment rios 1 package com toy anagrams mbeans 2 import junit framework 47 import javax management import java lang management ManagementFactory public class MBeanStatusAnagramaTest extends TestCase public MBeanStatusAnagramaTest String testName super testName public void testNumAnagramasResolvidosAttribute throws Exception System out printin testNumAnagramasResolvidosAttribute Integer val Integer getAttribute NumAnagramasResolvidos assertTrue O n mero de Anagramas resolvidos deve ser igual a 0 val 0 public void testTempoGastoPensandoAttribute throws Exception System out printin testTempoGastoPensandoAttribute Integer val Integer getAttribute TempoGastoPensando assertTrue O tempo gasto analisado deve ser igual a 0 val 0 public void testZerarTodosOperation throws Exception System out printin testzerarTodosOperation String signature new String L Object params new Object Z invoke zerarTodos params signature assertTrue M todo invocado com sucesso true public Object createMBean return new MBeanStatusAnagrama protected void setUp throws Exception jmxinit protected void tearDown thr
3. 3 10 Gerenciamento da Aplica o via JConsole 3 10 1 Monitora o da Aplica o Gerenci vel 3 10 1 1 Simula o do uso do Jogo para a Monitora o de Notifica es 3 10 1 2 Simula o da Monitora o do Recurso de Mem ria Teste Realizado 41 Defini o e Implementa o da Aplica o Java 4 2 Implementa o dos Recursos para Gerenciamento da Aplica o Java 4 3 Gerenciamento do Teste Implementado Utilizando o JConsole Considera es Finais Refer ncias Bibliogr ficas 7 Anexos 85 Lista de Figuras Figura 1 Arquitetura do JMX FRANCISCO 2001 p 3 11 Figura 2 Plataforma Java Standart Edition SUN 2006 online 13 Figura 3 Tela com a licen a de uso do J2SE 14 Figura 4 Tela de customiza o da instala o do J2SE JDK 15 Figura 5 Tela de customiza o da instala o do J2SE JRE 16 Figura 6 Tela com a licen a de uso do NetBeans 17 Figura 7 Tela de escolha de diret rio de instala o do NetBeans 18 Figura 8 Tela de escolha do compilador JDK 19 Figura 9 Tela de inicial do NetBeans com menu Tools expandido 20 Figura 10 Tela de sele o de m dulos de conex o para atualiza o do NetBeans 21 Figura 11 Tela de sele o de m dulo para instala o do NetBeans 22 Figura 12 Tela de visualiza o de certificados e instala o do m dulo no NetBeans 23 Figura 13 Tela inicial de execu o do NetBeans com o menu File expandido 25
4. 63 private void initManagement throws Exception try Criar o Agente com toy anagrams agent Agente MX agente com toy anagrams agent Agente MX getDefault Quando o jogo dos Anagrams exibido pela primeira vez deve se notificar o MBean que um novo anagrama foi proposto agente getMBeanStatusAnagrama startThinking 0 catch Exception e e printStackTrace 1 Figura 50 M todo initManagement da classe Anagrams java Para obter dados da experi ncia do usu rio na resolu o do anagrama ser necess rio alterar o c digo de dois m todos o nextTrialActionPerformed e guessedWordActionPerformed Para cada vez que um novo anagrama proposto ao usu rio deve se calcular o tempo de in cio isto ser realizado no m todo nextTrialActionPerformed e cada vez que um anagrama for suposto corretamente necess rio notificar ao MBean o tempo gasto pensando na suposi o do anagrama Isto ser realizado no m todo guessedWord ActionPerformed Para alterar o m todo nextTrialActionPerformed deve se substitu lo com o c digo apresentado na figura 51 e para alterar o m todo guessedWordActionPerformed deve se substitu lo com o c digo apresentado na figura 52 private void nextTrialActionPerformed java awt event ActionEvent evt wordldx wordldx 1 WordLibrary getSize 1 2 3 4 feedbackLabel setText 5 scrambledWord setText WordLibrary getScrambledWord wordl d
5. bastava fornecer alguma aplica o Java para ser gerenciada 75 OO O Un E UKM A for int i 0 i lt N i for int j 0 j lt N j if N 2 resultado num i num j resultado n quant else for int k 0 k lt N k if N 3 resultado num i num j num k resultado n quant else for int I 0 I lt N 1 if N 4 resultado num i num j num k num k resultado quant else for int m 0 mM lt N m resultado numl i o num j num k num l num m resultado Le quant resultado n Figura 61 Techo de c digo da aplica o gerenciada Combinac es java Como pode se notar na figura 61 este c digo far compara es dimensionais uma vez que ele apresenta la os de repeti o for dentro de um outro la o de repeti o for provocando assim alto consumo de recursos f sicos quando for executado Logo esta aplica o supre a expectativa para o gerenciamento proposto na escolha da aplica o para ser testada 4 2 Implementa o dos Recursos para Gerenciamento da Aplica o Java 76 Antes de iniciar a implementa o dos objetos necess rios para o gerenciamento da aplica o escolhida na se o 4 1 foram analisadas as informa es a serem manipuladas na aplica o Como o objetivo do teste e o de obter informa es referentes capacidade tolerarada pelos recursos f s
6. e selecionar 0 MBean MBeanStatusAnagrama E em seguida deve se selecionar o bot o OK A figura 42 apresenta a tela Select Class Selecione a Classe com o MBeanStatus Anagrama selecionado 57 Select Class Select Class Sources S4GQ Source Packages E com toy anagrams agent Z com toy anagrams lib com toy anagrams mbeans S E com toy anagrams ui 4 Test Packages Figura 42 Tela de sele o da classe com o MBeanStatusAnagrama selecionado Ap s selecionar o bot o OK a caixa de di logo Instantiate and Register MBean Instanciar e Registrar um MBean ter os dados atualizados com o MBean selecionado Os campos ObjectName e Construtor respectivamente ser o preenchidos automaticamente com os dados mbeans anagrams toy com type MBeanStatus Anagrama e MBeanStatus Anagrama Deve se manter os dados preenchidos automaticamente assim como apresenta a figura 43 com os campos MBean Class ObjectName e Construtor preenchidos e selecionar o bot o OK 58 Instantiate and Register MBean Choose what to register Register Existing MBean MBean Class com toy anagrams mbeans MBeanStatus4nagrama Register Java Object wrapped in a StandardMBean Specify MBean ObjectName and constructor ObjectName mbeans anagrams toy com type MBeanStatusAnagrama Constructor MBeanStatus nagrama Figura 43 Tela de Instancia
7. o do NetBeans com o menu Management expandido 43 Figura 31 Tela do assistente de cria o de um JUnit de teste 44 Figura 32 Classe gerada na cria o do teste JUnit MBeanStatus AnagramaTest java 46 Figura 33 C digos da classe de teste JUnit MBeanStatus AnagramaTest java ap s altera es 48 Figura 34 Tela de execu o do NetBeans com o menu Run expandido e a op o 2999 Run MBeansStatusAnagramaTest java selecionada 49 Figura 35 Tela de execu o do NetBeans com os resultados no campo JUnit Test Results 50 Figura 36 Tela de execu o do NetBeans com o menu File expandido 51 Figura 37 Tela de Sele o de Tipo de Arquivo com o JMX Agent selecionado 52 Figura 38 Tela de adi o de nome e localiza o do Agente JMX com os campos preenchidos e a op o Create Main Method desativada 53 Figura 39 Classe gerada na cria o do Agente JMX AgenteJMX java 54 Figura 40 Coment rio retirado do m todo init da classe AgenteJMX java __ 54 Figura 41 Tela de Instancia o e Registro de um MBean 56 Figura 42 Tela de sele o da classe com o MBeanStatusAnagrama selecionado 57 Figura 43 preenchidos Tela de Instancia o e Registro de um MBean com os campos 58 Figura 44 Classe do Agente JMX AgenteJMX java ap s a instancia o e registro do MBean Figura 45 Trecho de c digo que importa a classe
8. que esta API trabalha com outros padr es de gerenciamento de redes multiplataforma possui v rias ferramentas de implementa o est vel e bem documentada 83 6 Refer ncias Bibliograficas FRANCISCO 2001 Adell P ricas Ger ncia Din mica de Rede Baseada na Tecnologia Java JMX Disponivel em http www inf furb br pericas publicacoes GerenciaDinamicaJMX pdf Pagina 03 Acessado 05 10 2006 INDRUSIAK 1996 Leandro Soares Linguagem Java Dispon vel em http www inf ufrgs br tools java introjava pdf Cap tulo 02 P gina 03 05 Acessado 05 10 2006 NETBEANS 2006 NetBeans org NetBeans Dispon vel em http www netbeans org products ide Acessado 18 09 2006 NETBEANS 2006 NetBeans org Adding Java Management Extensions JMX Instrumentation to a Java Application Disponivel em http www netbeans org kb articles jmx tutorial html Acessado 18 09 2006 SUN 2004 Sun Microsystems Java Management Extensions JMX Technology Overview Dispon vel em http java sun com j2se 1 5 0 docs guide jmx overview architecture html wp996882 Acessado 18 09 2006 SUN 2006 Sun Microsystems JavaTM Management Extensions JMX Specification version 1 4 Dispon vel em http download java net jdk6 docs technotes guides jmx JMX 1 4 specification pdf Acessado 05 12 2006 84 SUN 2006 Sun Microsystems Java Management Extensions JMX Disponivel em http java
9. 1 905 Operating System Total physical memory 522 800 kbytes Free physical memory 115 032 kbytes Committed virtual memory 22 304 kbytes Figura 55 Tela da Aplica o de Gerenciamento JConsole Para a realiza o do exemplo proposto deve se configurar primeiramente a aplica o de gerenciamento e somente ap s a configura o do ambiente da aplica o de gerenciamento deve se come ar a jogar o Jogo de Anagramas 68 Para configurar o ambiente de gerenciamento e monitorar o desempenho do Jogador visualizando as informa es definidas na instrumenta o do Jogo na cria o do MBean MBeanStatusAnagrama deve se selecionar a aba MBeans e no campo MBeans expandir o caminho Tree mbeans anagrams toy com MBeanStatus Anagrama A figura 56 apresenta a tela do JConsole na aba MBeans com o MBeanStatus Anagrama selecionado J2SE 5 0 Monitoring amp Management Console 3548 localhost Connection Summary Memory Threads Classes MBeans vm MBeans je Tree Attributes Operations Notifications 5 JMimplementation Name amp CH java lang NumAnagramasResolvidos gt C java util logging TempoGastoPensando q Ci mbeans anagrams toy com MBeanStatusAnagrama Figura 56 Tela do JConsole na aba MBeans com o MBeanStatus Anagrama selecionado A seguir deve se
10. AN f R CENTRO UNIVERSITARIO LUTERANO DE PALMAS E L lt S Memo COMUNIDADE EVANG LICA LUTERANA S O PAULO Credenciado pelo Decreto de 06 07 2000 D O U n 130 de 07 07 2000 IVO S CRATES MORAES DE OLIVEIRA GER NCIA DE APLICA ES COM A API JMX MANUAL DE UTILIZA O Palmas TO 2006 seo CENTRO UNIVERSIT RIO LUTERANO DE PALMAS ULBRA COMUNIDADE EVANG LICA LUTERANA S O PAULO Credenciado pelo Decreto de 06 07 2000 D O U n 130 de 07 07 2000 IVO S CRATES MORAES DE OLIVEIRA GER NCIA DE APLICA ES COM A API JMX MANUAL DE UTILIZA O Trabalho apresentado como requisito parcial da disciplina Est gio Supervisionado do Curso de Sistemas de Informa o supervisionado pela Prof MSc Madianita Bogo Palmas 2006 1 2 5 6 Sum rio Introdu o JMX Java Management Extensions 21 Arquitetura do JMX 2 2 Ambiente de Desenvolvimento JMX 2 2 1 Instala o do J2SE 2 2 2 Instala o do NetBeans 2 2 3 Configura o do NetBeans Exemplo de Utiliza o do JMX no NetBeans 31 Criando um Projeto 3 2 Criando um MBean para a Aplica o 3 3 Configurando o MBean para a Aplica o 3 4 Implementando o MBean para a Aplica o 3 5 Criando um JUnit de Teste para o MBeans 3 6 Configurando o JUnit para Testar o MBeans 3 7 Gerando um Agente JMX 3 8 Adicionando o MBean no Agente 3 9 Conectando a Aplica o Gerenci vel ao Gerenciamento JMX
11. dispositivos em tempo de execu o desenvolvida pela Sun Microsystem e oferecida gratuitamente no kif J2SE Atrav s do JConsole poss vel gerenciar recursos instrumentados atrav s de MBeans contidos na arquitetura da tecnologia JMX e a M quina Virtual Java JVM Dentro da arquitetura do JMX o JConsole representa a aplica o de ger ncia no N vel de Gerente que faz conex o com o Agente JMX atrav s de adaptadores e conex es permitindo ligar a aplica o de ger ncia com os recursos e os servi os instrumentados O uso do JConsole n o obrigat rio para o gerenciamento utilizando a API JMX podem se desenvolver ferramentas personalizadas que substituem o seu uso ou ainda podem se utilizar outras ferramentas j implementadas Por m dependendo da aplica o que ser gerenciada n o vantajosa a implementa o de uma aplica o de ger ncia e monitora o pois o desenvolvimento de uma aplica o com caracter sticas semelhantes a do JConsole complexa As vantagens de se utilizar o JConsole que este distribu do 65 com o pacote Java gratuitamente de f cil utiliza o possui interface gr fica bem definida e est vel O JConsole pode se conectar a um Agente JMX em execu o de 3 tr s maneiras distintas Localmente conecta se a processo de uma aplica o Java em execu o no sistema local o qual ser executado com o mesmo nome do usu rio O JConsole conecta se na plataforma do servi
12. es java Techo da Interface do MBean Techo de c digo com o registro do MBean no Agente JMX Tela do JConsole durante o gerenciamento da aplica o 60 61 62 63 63 64 66 67 67 68 69 71 72 73 75 76 77 78 Tela do JConsole na aba de opera es com a opera o instrumentada na Figura 65 aplica o 79 Tela do JConsole na aba de opera es com a opera o instrumentada na 80 1 Introdu o O prop sito da tecnologia de informa o permitir o bom uso das aplica es para o processamento de dados Atualmente existem in meras aplica es sem nenhum suporte de gerenciamento e as poucas que possuem gerenciamento sofrem com as dificuldades impostas pela heterogeneidade de software e hardware existentes no mercado Este problema estende se aos meios de interliga o os quais s o respons veis pelas comunica es entre recursos e servi os As aplica es que n o possuem gerenciamento em sua maioria s o vulner veis a falhas por falta de recursos computacionais necess rios no ambiente em que s o executadas De forma an loga temos problemas quanto ao desperd cio de recursos ou seja em determinados ambientes existem aplica es que possuem grande quantidade de recursos por m n o s o utilizados pelas aplica es caracterizando assim uma m distribui o dos recursos computacionais As funcionalidades que envolvem o gerenciamento de redes e aplica o podem a
13. vel perceber a amplitude das informa es que podem ser trabalhadas nas aplica es Java com a utiliza o da API JMX que v o das informa es de componente f sicos locais ao alto n vel das aplica es Java que podem ser gerenciadas localmente ou remotamente Um exemplo da amplitude da capacidade de gerenciamento pode ser percebida na ger ncia do servidor de aplica o JBoss servidor este desenvolvido pela Sun Microsysten para ser totalmente gerenciado utilizando a API JMX e que possui como caracter stica a estabilidade mesmo em ambientes com alto n mero de acesso e servi os Atualmente in meras corpora es fazem uso deste servidor de aplica o inclusive a Secretaria da Fazenda do Estado do Tocantins No exemplo apresentado na se o 3 not vel a facilidade de implementa o e uso do gerenciamento de aplica es utilizando a API JMX E no teste evidenciou se ainda mais esta simplicidade do gerenciamento e ainda mostrou o n vel das informa es que podem ser trabalhadas utilizando at mesmo aplica es de gerenciamento pr definidas gratuitas como o caso do JConsole A partir do teste e do estudo realizado sobre a API JMX poss vel perceber que as maiores dificuldades encontradas no desenvolvimento de gerenciamento em aplica es Java utilizando esta API a an lise e defini o do gerenciamento da aplica o Para a defini o da aplica o alguns itens dever o ser destacados entre eles como se dese
14. visualizada no projeto da IDE assim como apresenta a figura 49 com a tela de execu o do NetBeans e com a classe Anagrams java aberta 62 NetBeans IDE 5 0 AnagramaGerenciavel HEHE File Edit View Navigate Source Refactor Build Run CVS Management Tools Window Help BC Bi 8 nr RS gt B Projects 0 x Files Runtime Welcome X a Anagrams java X E WordLibrary java x MBeanstat gt Palette D x E AnagramaGerenciavel A E Ao ER ei E ii ih Swing SQ Source Packages a JLabel W E com toy anagrams agent FA Design View Alt Shift Right or Alt Shift Left EE Button com toy anagrams lib T S T E JToggleButton H E com toy anagrams mbeans Scrambled Word E com toy anagrams ui E m JCheckBox n E Anagrams Java Your Guess JRadioButton SG Test Packages ButtonGroup com toy anagrams lib gt bi B com toy anagrams mbeans RSR E MBeanstatusAnagramaTestjava Eue e a i Navigator Anagrams Inspector a x 0 JTextField L El Form Anagrams Anagrams java Properties D x X EH Other Components Properties a E JFrame Name Anagrams All Files File Size Modification Time E Text Encoding U g E Classpaths v Y Anagrams java D us E IE m JUnit Test Results X Output anagrams test single st Ou its an 3 tests passed gt com toy anagrams mbeans MBeanStatus nagramaT
15. Configuration File IS Mx Manager E Y Lea Figura 16 Tela de Sele o de Tipo de Arquivo com o JMX MBean selecionado Para determinar o nome da classe o local e em qual pacote sera armazenada basta alterar respectivamente as informa es Class Name Location e Package e selecionar o bot o Nexr Para o exemplo deve se colocar as seguintes informa es e Class Name MBeanStatusAnagrama e Location AnagramaGerenciavel e Package com toy anagrams mbeans No painel Type and Options Tipo e Op es deve se selecionar Standard MBean como um tipo de MBean E no campo Description deve se adicionar uma descri o algo do tipo Monitorando e Gerenciando um Jogo de Anagramas assim como apresenta a figura 177 que exibe o painel Type and Options Tipo e Op es do assistente do NetBeans Para prosseguir com a cria o do MBean necess rio selecionar o bot o Next 4 New JMX MBean Steps Choose File Type Name and Location Type and Options Specify Attributes Specify Operations Implement Notification Emitter Interface Specify JUnit Test 30 Type and Options ni Specify the MBean Type 3 Standard MBean Extended StandardMBean Dynamic MBean Interface File C JMX AnagramaGerenciavel src MBeanStatusAnagramaMBean java Description Monitorando e Gerenciando um Jogo de Anagramas d Implement MBeanRegistration Interface 5er
16. Edit View Navigate Source Refactor Build Run CYS Management Tools Window Help G 6 R Nm R S DA VB Projects a x Files Runtime ava E MBeanStatusAnagramaMBean java X MBeanStatusAnagramaTest java 4 IS AnagramaGerenciavel ab PRE SG 99 D iq Source Packages AIT ES Log f Test Packages 7 9 g ib 47 O public void testZerarTodosOperation throws Exception E comtoy anagrams l 48 Systen out println testzerarTodos0peration E com toy anagrams mbeans 43 12 MBeanStatusAnagramatest java 50 i Operation signature a Libraries 51 String signature new String Test Libraries 52 1 53 54 Object params new Object 55 ye Navigator ax 56 57 Invoke JMX MBean Operation 58 invoke zerarTodos params signature 59 so 7 TODO add your test code below by replacing the default call to fail 61 assertTrue M todo invocado com sucesso true 62 63 64 H public Object createMBean 65 return new MBeanStatusAnagrama s6 61 58 ns JUnit Test Results ex st Ou T All 3 tests passed gt com toy anagrams mbeans MBeanStatusAnagramaTest passed testNumAnagramasResolvidosAttribute passed 0 171 s testTempoGastoPensando ttribute passed 0 016 s testZerarTodosOperation passed 0 0 s B Output Finished building anagrams test single Figura 35 Tela de execu o do NetBeans com os resultados no c
17. Figura 14 Tela de Sele o de Projeto com o Anagram Game Managed with JMX selecionado 26 Figura 15 Tela de execu o do NetBeans com o menu File expandido 28 Figura 16 Tela de Sele o de Tipo de Arquivo com o JMX MBean selecionado 29 Figura 17 Tela de defini o de Tipos e Op es do MBeans 30 Figura 18 Tela de especifica o de atributos com os campos preenchidos 31 Figura 19 Tela de especifica o de opera es com os campos preenchidos 32 Figura 20 Tela de cria o de interface para emiss o de notifica o com os campos preenchidos 33 Figura 21 Interface gerada na implementa o do MBean MBeanStatus AnagramaMBean java 34 Figura 22 Classe gerada na implementa o do MBean MBeanStatus Anagrama java 35 Figura 23 Tela de execu o do NetBeans com o menu Management expandido 36 Figura 24 Tela de adi o de atributos ao MBean com algumas informa es declaradas 37 Figura 25 Interface do MBean MBeanStatusAnagramaMBean java alterada 37 Figura 26 Classe do MBean MBeanStatus Anagrama java alterada 38 Figura 27 C digo com atribui o de valores a ser inserido no corpo do m todo zerarTodos 39 Figura 28 C digo com m todos que exp e os componentes do Anagrama a ser inserido no corpo da classe MBeanStatusA nagrama 40 Figura 29 C digo completo da classe MBeanStatusAnagrama ap s altera es 42 Figura 30 Tela de execu
18. MBeanStatusAnagrama _ 59 59 Figura 46 Trecho de c digo que permite acesso classe MBeanStatusAnagrama 60 Figura 47 Trecho de c digo do m todo Init que instancia um MBean e atualiza a declara o do registro Figura 48 Figura 49 Figura 50 Figura 51 Figura 52 Figura 53 Figura 54 Figura 55 Figura 56 Classe do Agente JMX AgenteJMX java ap s altera es Tela de execu o do NetBeans com a classe Anagrams java aberta __ M todo initManagement da classe Anagrams java M todo initManagement da classe Anagrams java M todo initManagement da classe Anagrams java Tela de execu o do NetBeans com o menu Run expandido Tela do Jogo de Anagramas Anagrams Tela da Aplica o de Gerenciamento JConsole Tela do JConsole na aba MBeans com o MBeanStatusAnagrama selecionado Figura 57 formato de gr fico Figura 58 formato de gr fico representando o resultado da an lise das jogadas Figura 59 Tela do JConsole na aba Attributes com alguns atributos expostos no formato de gr fico Figura 60 Figura 61 Figura 62 Figura 63 Figura 64 Figura 65 aplica o Tela do JConsole na aba Attributes com os atributos expostos no Tela do JConsole na aba Attributes com os atributos expostos no Tela do JConsole na aba Memory Techo de c digo da aplica o gerenciada Combina
19. Main Project with JConsole ssAnagrama getMBeanServer 9 Debug Main Project with JConsole invoke String opName Object params String signature e ei FE Start JConsole rows Exception l imxTerminate Remote Management Ro setattribute Attribute att 70 jmxInit 1 7 setUp 71 TODO add your ow init code here O suite 72 tearDown 723 O testNumA nagramasResolvidosattribute protected void tearDown throws Exception O testTempoGastoPensandoAttribute 75 JMX termination O testZerarTodosOperation v 76 jmxTerminate s marara Lo TODO add vour nim terminate code here Mi Fiters 68 a 8 sua ms o CA output E JUnit Test Results Finished building anagrams test single Figura 34 Tela de execu o do NetBeans com o menu Run expandido e a op o Run 55 55 MBeanStatusAnagramaTest java selecionada Logo ap s s o realizados testes para verificar o funcionamento do MBean Os resultados dos testes s o apresentados na janela JUnit Test Results assim como apresenta a figura 35 que exibe a tela de execu o do NetBeans com os resultados no campo JUnit Test Results O resultado do teste dever apresentar a informa o passed em todos os itens caso contr rio deve se revisar os passos descritos na cria o do MBean MBeanStatus Anagrama para verificar erros na implementa o 50 A NetBeans IDE 5 0 AnagramaGerenciavel File
20. Project Location e selecionar o bot o Finish Para o exemplo deve se colocar as seguintes informa es e Project Name AnagramaGerenciavel e Project Location CN MX Ao selecionar o bot o Finish criado um diret rio como o nome do projeto e dentro do diret rio alguns c digos fonte de classes Java que representam o modelo do Jogo de Anagramas por serem padr es ser o listados ao final da documenta o na se o 5 em anexo Pode se implementar o exemplo aproveitando todos os c digos gerados e fazendo apenas altera o nos mesmos Por m para melhor entendimento s ser aproveitado o c digo principal do projeto a classe Anagrams java que representa a classe Main 27 principal do Jogo de Anagramas e a classe WordLibrary java que define as informa es para classe principal Inicialmente a classe Anagrams java implementa a tela principal do Jogo de Anagramas Como esta classe foi gerada pelo NetBeans com o prop sito de se realizar o gerenciamento com a utiliza o da API JMX esta ser criada com alguns c digos desnecess rios sujeiras em rela o ao c digo necess rios para o teste Esses c digos desnecess rios podem ser exclu dos para a realiza o do teste O c digo da classe WordLibrary java n o possui c digos desnecess rios sujeiras e estar preparado para a realiza o do teste Logo pode se concluir que qualquer aplica o Java poder ser gerenciada neces
21. deve especificar um dom nio antes do ObjectName uma refer ncia impl cita para nomea o de dom nio padr o A utiliza o destas Best Practices Melhores Pr ticas traz a formalidade necess ria para a implementa o de MBeans O ObjectName que est sendo criado para o exemplo type MBeanStatusAnagrama Para instanciar e Registrar o MBean no Agente JMX deve se explorar a rea do campo Project expandir o caminho AnagramaGerenciavel Source Package com toy anagrams agent e selecionar a classe AgenteJMX java A seguir deve se selecionar a op o Instantiate and Register MBean no menu Management Aparecer a tela Instantiate and Register MBean Instanciar e Registrar um MBean Para Registrar um MBean existente deve se selecionar a op o Register Existing MBean e selecionar o bot o Browse A figura 41 apresenta a tela Instantiate and Register MBean Instanciar e Registrar um MBean 56 Instantiate and Register MBean Choose what to register MBean Class Register Java Object wrapped in a StandardMBean Specify MBean ObjectName and constructor Figura 41 Tela de Instancia o e Registro de um MBean Ap s selecionar a op o Browse aparecer a tela Select Class Selecione a Classe com a rvore do projeto atual indicada deve se expandir o caminho Sources Source Packages com toy anagrams mbeans
22. deve se selecionar a aba MBeans na Tela da Aplica o de Gerenciamento JConsole e expandir o caminho Tree java lang OperatingSystem no campo MBeans Em seguida para exibir o gr fico deve se clicar duas vezes nos valores da coluna Value e nas seguintes linhas FreePhysicalMemorySize Tamanho da Mem ria F sica Livre e TotalPhysicalMemorySize Tamanho Total da Mem ria F sica A figura 59 apresenta os gr ficos com consumo de mem ria do computador em que est executando a aplica o J2SE 5 0 Monitoring amp Management Console 508 localhost Connection Summary Memory Threads Classes MBeans VM MBeans Tree C JMimplementation c3 java lang ClassLoading Compilation amp C GarbageCollector Memory gt CI MemoryManager 5 MemoryPool gt OperatingSystem Runtime Threading java util logging mbeans anagrams toy com 3 mea Attributes Operations Notifications Name Arch x86 AvailahleProcessors 1 CommittedVirtualMemorysize 23609344 FreePhysicalMemorySize 200 000 000 150 000 000 100 000 000 50 000 000 0 Discard chart FreePhysical MemorySize 480 Be 4 116 756 FreeSwapSpaceSize 790913024 Name Windows XP ProcessCpuTime 6625000000 TotalPhysicalMemorySize 600 000 000 500 000 000 TotalSwa
23. do NetBeans Para prosseguir com a atualiza o necess rio concordar com o termo de uso do m dulo para o qual basta selecionar o bot o Accept Logo ap s o NetBeans far o download do m dulo JMX para o computador Quando terminar a transfer ncia da c pia do m dulo aparecer tela View Certificates and Install Modules Visualiza o de Certificados e Instala o do M dulo semelhante tela que a figura 12 apresenta Em seguida deve se selecionar a op o da coluna Global para que todos os usu rios do computador tenham acesso a esse m dulo A Update Center Wizard Steps 1 2 3 4 Select Location of Modules Select Modules to Install Download Modules and Check Digital Signatures View Certificates and Install Modules 23 View Certificates and Install Modules Select the modules you wish to install If a module is signed you must view and accept its certificate Modules to Install Incl Module Name Global JMX version 1 2 Trusted a View Certificate Save Copy Figura 12 Tela de visualiza o de certificados e instala o do m dulo no NetBeans Posteriormente aparecer uma tela que questionar a sele o da op o de instala o do m dulo JMX de forma global Deve se selecionar o bot o Yes para confirmar a instala o de forma global Por fim deve se selecionar o bot o Finish para concluir o uso do assistente de instala o do m d
24. faz se necess ria inclus o de pelo menos um MBeans ao agente uma vez que o principal prop sito da cria o de Agentes JMX o de propiciar acesso a recursos instrumentados pelo MBeans para agentes de gerenciamento remoto na pr xima se o ser o abordados os passos necess rios para a inclus o de MBeans em um Agente JMX 3 6 Adicionando o MBean no Agente Nesta se o ser adicionado um MBean MBeanStatusAnagrama em um Agente JMX AgenteJMX Adicionar um MBean a um agente envolve tr s etapas Instancia o do MBean Chamada ao MBean e registro do MBean no Servidor de MBeans Para aperfei oar e padronizar o desenvolvimentos de aplica es utilizando a tecnologia JMX a Sun Microsystem confeccionou um documento chamado Best Practices 55 neste documento constam as melhores pr ticas de desenvolvimento de aplica es utilizando a tecnologia JMX para prosseguir com a cria o do exemplo importante observar alguns itens referentes a nomea o de MBeans deve se verificar que e Ao nomear um MBean deve se utilizar o tipo chave O valor desta chave deve ser a classe do MBean no exemplo deve se utilizar MBeanStatusAnagrama e No exemplo de um nico MBean um MBean que tenha uma nica inst ncia dentro de sua aplica o ele possuir a chave nica que suficiente para a nomea o e N o se deve colocar nomes de dom nios grandes demais Poder ser feito reutiliza o do nome de dom nio padr es N o se
25. fragment 21 hexadecimal 22 implementation 23 indistinguishable 24 inheritance 25 internet 26 java 27 localization 28 microprocessor 29 navigation 30 optimization 31 parameter 32 patrick 33 pickle 89 polymorphic rigorously simultaneously specification structure lexical likewise management manipulate mathematics hotjava vertex unsigned traditional private static final String SCRAMBLED_WORD_LIST batsartcoin maibuguos ratimhteci abkclssha ibmtpa iccrmutsnaec ocbmnitaoni ocsnqeeutnyl ocsnroitmu edrcmeneitgn edepdnneyc idasbmgiauet ydanicm neacsplutaoni qeiuaveltn xerpseisno aficilatet rfgaemtn ehaxedicalm milpmeneatitno niidtsniugsiahleb niehiratcen nietnret ajav olacilazitno imrcpoorecssro anivagitno poitimazitno aparemert aprtcki ipkcel opylomprich irogorsuyl isumtinaoesuyl osceficitaoni tsurtcreu elixalc ilekiwse amanegemtn aminupalet amhtmetacsi 90 ohjtvaa evtrxe nuisngde rtdatioialn private WordLibrary public static String getWord int idx return WORD LIST idx public static String getScrambledWord int idx return SCRAMBLED WORD LIST idx public static int getSize return WORD LIST length public static boolean
26. int numAnagramasResolvidos private int tempoGastoPensando 38 NotificationFilter filter Object handback throws lllegalArgumentException ListenerNotFoundException NotificationFilter filter Object handback throws ListenerNotFoundException NotificationBroadcasterSupport public MBeanStatusAnagrama public int getTempoGastoPensando return tempoGastoPensando public void zerarTodos public void addNotificationListener NotificationListener listener broadcaster addNotificationListener listener filter handback public MBeanNotification nfo getNotificationInfo return new MBeanNotificationl nfo new MBeanNotificationl nfo new String AttributeChangeNotification ATTRIBUTE CHANGE javax management AttributeChangeNotification class getName Anagrama foi Resolvido k public void removeNotificationListener NotificationListener listener throws broadcaster removeNotificationListener listener public void removeNotificationListener NotificationListener listener broadcaster removeNotificationListener listener filter handback private synchronized long getNextSeqNumber return seqNumber private long seqNumber private final NotificationBroadcasterSupport broadcaster new public int getNumAnagramasResolvidos return numAnagramasResolvidos Figura 26 Classe do MBean MBeanStatusAnagrama java alterad
27. management MBeanServer 5 import java lang management ManagementFactory 6 7 public class Agente MX 8 9 public void init throws Exception 10 11 12 public synchronized static Agente MX getDefault throws Exception 13 if singleton null 14 singleton new Agente MX 15 singleton init 16 17 return singleton 18 54 20 public MBeanServer getMBeanServer 21 return mbs 22 23 24 private final MBeanServer mbs 25 ManagementFactory getPlatformMBeanServer 26 27 private static Agente MX singleton 28 L Figura 39 Classe gerada na cria o do Agente JMX AgenteJMX java Dentre os coment rios gerados juntos com a classe do Agente JMX importante manter o coment rio que h dentro do m todo init pois neste coment rio exemplificado a forma de registro de um MBean manualmente A figura 40 apresenta o coment rio retirado do m todo init da classe AgenteJMX java 1 SAMPLE REGISTRATION EXAMPLE 2 3 Instantiate CounterMonitor MBean 4 javax management monitor CounterMonitor mbean 5 new javax management monitor CounterMonitor 6 ObjectName mbeanName new ObjectName type CounterMonitor 7 Register the CounterMonitor MBean 8 getMBeanServer registerMBean mbean mbeanName 9 oy Figura 40 Coment rio retirado do m todo init da classe AgenteJMX java Ap s a cria o do Agente JMX
28. o de um JUnit de teste ser abordada minuciosamente na se o 2 3 5 e 2 3 6 sendo necess rio apenas selecionar o bot o Finish para finalizar a cria o do MBean Assim como na cria o do projeto criado um c digo Java de implementa o do MBean As figuras 21 e 22 apresentam os c digos gerados na execu o da cria o do MBean Foram retirados apenas os coment rios E UKM A package com toy anagrams mbeans public interface MBeanStatusAnagramaMBean public int getTempoGastoPensando 34 5 public void zerarTodos 6 Figura 21 Interface gerada na implementa o do MBean MBeanStatusAnagramaMBean java 1 package com toy anagrams mbeans 2 import javax management 3 4 public class MBeanStatusAnagrama implements MBeanStatusAnagramaMBean 5 NotificationEmitter 6 7 private int tempoGastoPensando 8 9 public MBeanStatusAnagrama 10 11 12 public int getTempoGastoPensando 13 return tempoGastoPensando 14 15 16 public void zerarTodos 17 18 19 public void addNotificationListener NotificationListener listener 20 NotificationFilter filter Object handback throws lllegalArgumentException 21 broadcaster addNotificationListener listener filter handback 22 23 24 public MBeanNotification nfo getNotificationInfo 25 return new MBeanNotificationl nfo 26 new MBeanNotificationl nfo new String 27 AttributeChangeNotification ATTRIBUT
29. o e Registro de um MBean com os campos preenchidos Ap s selecionar o bot o OK o m todo init do AgenteJMX ser atualizado com o c digo de registro do MBean A figura 44 apresenta todo o c digo da classe do AgenteJMX ap s a instancia o e registro do MBean 1 package com toy anagrams agent 2 3 import javax management ObjectName 4 import javax management MBeanServer 5 import java lang management ManagementFactory 6 7 public class Agente MX 8 9 public void init throws Exception 10 SAMPLE REGISTRATION EXAMPLE 11 12 Instantiate CounterMonitor MBean 13 javax management monitor CounterMonitor mbean 14 new javax management monitor CounterMonitor 15 ObjectName mbeanName new ObjectName 16 type CounterMonitor 17 Register the CounterMonitor MBean 18 getMBeanServer registerMBean mbean mbeanName 19 20 getMBeanServer registerMBean 21 new com toy anagrams mbeans MBeanStatusAnagrama 22 new 23 ObjectName mbeans anagrams toy com type MBeanStatusAnagrama 59 24 25 26 public synchronized static Agente MX getDefault throws Exception 27 if singleton null 28 singleton new Agente MX 29 singleton init 30 31 return singleton 32 33 34 public MBeanServer getMBeanServer 35 return mbs 36 37 38 private final MBeanServer mbs 39 ManagementFactory getPlatformMBeanServer 40 41 private stat
30. return new MBeanStatusAnagrama protected void setUp throws Exception jmxinit protected void tearDown throws Exception jmxTerminate public static Test suite TestSuite suite new TestSuite MBeanStatusAnagramaTest class return suite private Object getAttribute String attName throws Exception return getMBeanServer getAttribute mbeanName attName private void setAttribute Attribute att throws Exception getMBeanServer setAttribute mbeanName att private Object invoke String opName Object params String signaturel throws Exception return getMBeanServer invoke mbeanName opName signature private void jmxinit throws Exception mbeanName new ObjectName type MBeanStatusAnagrama Object mbean createMBean server ManagementFactory getPlatformMBeanServer server registerMBean mbean mbeanName private void jmxTerminate throws Exception server unregisterMBean mbeanName private MBeanServer getMBeanServer return server private MBeanServer server private ObjectName mbeanName params 46 82 83 Figura 32 Classe gerada na cria o do teste JUnit MBeanStatusAnagramaTest java 3 6 Configurando o JUnit para Testar o MBeans Nesta se o abordada a configura o do JUnit que baseada na altera o da classe JUnit MBeanStatus AnagramaTest java Deve se adicionar elementos e
31. selecionar a aba Notifications Notifica es e selecionar o bot o Subscribe Subscreva para que o JConsole receba e guarde uma notifica o nova cada vez que um anagrama for resolvido Logo ap s deve se selecionar a aba Attributes e clicar duas vezes nos valores da coluna value com os nomes de atributos Num AnagramasResolvidos e TempoGastoPensando para exibir os gr ficos da an lise Em seguida pode se iniciar o jogo 69 A cada resposta correta no Jogo de Anagramas o gerenciamento JMX ira contar o n mero de Anagramas resolvidos atrav s do atributo NumAnagramasResolvidos e calcular o tempo gasto pelo jogador para responder corretamente o anagrama proposto atrav s do atributo TempoGastoPensando Ambos os atributos Num AnagramasResolvidos e TempoGastoPensando foram declarados no MBeanStatus Anagrama A figura 57 apresenta a tela do JConsole na aba MBeans com o MBeanStatus Anagrama selecionado e com os gr ficos dos atributos dispostos J2SE 5 0 Monitoring amp Management Console 3548 localhost Connection Threads Classes MBeans vm Attributes Operations Notifications 0 Name Value Discard chart C JMimplementation c3 java lang CH java util logging 4 mbeans anagrams toy com dB MBeanStatusAnagrama NumAnagramasResolvidos NumAnagramas Resolvidos 0 Discard chart TempoGastoPensando Tempo Gasto Pensand
32. ser habilitado Para criar uma nova notifica o necess rio selecionar este bot o Para a execu o do exemplo deve se colocar as seguintes informa es nos respectivos campos e Notification Class javax management AttributeChange e Description Anagrama foi Resolvido e Notification Type ATTRIBUTE_CHANGE 33 A figura 20 apresenta a tela Implement Notification Emitter Interface Implementa o de Interface do Emissor de Notifica o com as op es ativadas e os campos preenchidos com os dados listados anteriormente A New File Steps Choose File Type Name and Location Type and Options Specify Attributes Specify Operations Implement Notification Emitter Interface Specify JUnit Test Implement Notification Emitter Interface Implement NotificationEmitter Interface Generate Delegation to Broadcaster Generate Private Seq Number and Accessor Notifications Notification Class Description Notification Type javax management Attributet FSET EME ATTRIBUTE CHANG Add Notification Remove Notification Figura 20 Tela de cria o de interface para emiss o de notifica o com os campos preenchidos Ap s o preenchimento das informa es da Interface do Emissor de Notifica o o MBean estar conclu do mas poss vel especificar um JUnit Java Unit Tests de teste ou seja um ambiente de teste de m dulos de c digos Java escolhendo a op o Next Por m a cria
33. sun com j2se 1 5 0 docs guide jmx index html Acessado 18 09 2006 SUN 2006 Sun Microsystems Java SE Technologies at a Glance Disponivel em http java sun com javase technologies index jsp Acessado 05 10 2006 VAZ 2003 Rodrigo Cardoso JUnit Framework para Testes em Java Dispon vel em http www ulbra to br ensino 43020 artigos relatorios2003 2 TCC JUnit pdf P ginas 16 e 17 Acessado 20 10 2006 7 Anexos O anexo 1 apresenta o c digo da classe Anagrams java criada na se o 3 1 package com toy anagrams ui import com toy anagrams lib WordLibrary import java awt Dimension import java awt Point import java awt Toolkit import java awt event ActionListener import java awt event WindowListener import javax swing Frame OO O Un E UKM KA 11 import com toy anagrams agent MXAgent 12 import com toy anagrams mbeans 13 14 public class Anagrams extends J Frame 15 public static void main String args throws Exception 16 new Anagrams setVisible true 17 18 private int wordldx O 19 public Anagrams throws Exception 20 initComponents 21 getRootPane setDefaultButton guessButton 22 scrambledWord setText WordLibrary getScrambledWord wordl dx 23 pack 24 guessedWord requestFocusinWindow 25 Dimension screenSize Toolkit getDefaultToolkit getScreenSize 26 Dimension frameSize getSize 27 setLocation new Point screenSize wi
34. toy anagrams mbeans MBeanStatusAnagrama 7 8 public class Agente MX 9 private MBeanStatusAnagrama mbean 10 11 public MBeanStatusAnagrama getMBeanStatusAnagrama 12 return mbean 13 61 14 15 public void init throws Exception 16 mbean new MBeanStatusAnagrama 17 getMBeanServer registerMBean mbean 18 new 19 ObjectName mbeans anagrams toy com type MBeanStatusAnagrama 20 21 22 public synchronized static Agente MX getDefault throws Exception 23 if singleton null 24 singleton new Agente MX 25 singleton init 26 27 return singleton 28 29 30 public MBeanServer getMBeanServer 31 return mbs 32 33 34 private final MBeanServer mbs 35 ManagementFactory getPlatformMBeanServer 36 37 private static Agente MX singleton 38 L Figura 48 Classe do Agente JMX AgenteJMX java ap s altera es Falta apenas criar a conex o do Jogo de Anagramas com o gerenciamento JMX para possibilitar a realiza o da monitora o utilizando o JConsole 3 9 Conectando a Aplica o Gerenciavel ao Gerenciamento JMX Nesta se o ser abordada a forma de acesso ao MBean e a forma de implementa o do gerenciamento Para isso deve se explorar a rea do campo Project expandir o caminho AnagramaGerenciavel Source Packages com toy anagrams ui e clicar duas vezes sobre a classe Anagrams java A seguir a classe ser
35. AnagramsStatsTest java X K ig AnagramGameManagedwithIMx Implement MBeanRegistration Interface L E x on LL SG Source Packages e Create JUnit Test A 9 89 com toy anagrams agent cationListener listener filter handback 78 H E com toy anagrams lib B E com toy anagrams mbeans B anagramsStats java anagramsStatsMBean java anagramsStatsTest java T B anagramsStatsTestMBean java W com toy anagrams ui 7 private synchronized long getNextSegHumber 1 return seqNumber Fees private long seqNumber E amp Test Packages private final NotificationBroadcasterSupport broadcaster new NotificationBroadcaste S Libraries Test Libraries Get Number of solved anagrams P public int getNumSolvedAnagrams return nunSolvedinagrams Navigator AnagramsStatsTest ax Members View v jr 9 AnagramsStatsTest a Add O addNotificationListener NotificationListener listener Notificar N gement with data O getLastThinkingTime o getNextSeqNumber private long startTine O getNotificationInfo getNumSolvedAnagrams new Anagram is proposed to the user User starts thinking O removeNotificationListener Notif 7 icationLi Notifi r Nol k laaa otil o public void startThinking startThinkina startTime System currentTimeMillis stopThinking L broadcaster NotificationBroa 189 last Thinking Trn Be mrimGaluadimanrame int A
36. Developer Collaboration Sun x Profiler Mobility Figura 13 Tela inicial de execu o do NetBeans com o menu File expandido Para a cria o do projeto JMX necess rio expandir o diret rio Samples no campo Categories Dentre os v rios novos subdiret rios que aparecer deve se selecionar o subdiret rio Management e no campo Projects deve se selecionar o Projeto Anagram Game Managed with JMX como apresenta a figura 14 que exibe a tela Choose Project Sele o de Projeto com o Anagram Game Managed with JMX Jogo de 26 Anagrama Gerenci vel com JMX selecionado Por fim ser necess rio selecionar o bot o Next para prosseguir com a cria o do projeto 4 New Project Steps Choose Project 1 Choose Project Categories Projects Ei ao D General S Anagram Game Managed with JMX Web Enterprise NetBeans Plug in Modules 3 Samples O Management O General web NetBeans Plug in Modules 5 Java Blueprints Solutions Description An Anagrams game managed with JMX JMX MBean and Agent Wizards have been used to instrument this application Call Run Main project with JConsole action to visualize Beans Figura 14 Tela de Sele o de Projeto com o Anagram Game Managed with JMX selecionado Para determinar o nome do projeto e o local onde ser armazenado basta alterar respectivamente as informa es nos campos Project Name e
37. E CHANGE 28 javax management AttributeChangeNotification class getName 29 Anagrama foi Resolvido 30 31 32 33 public void removeNotificationListener NotificationListener listener throws 34 ListenerNotFoundException 35 broadcaster removeNotificationListener listener 36 37 38 public void removeNotificationListener NotificationListener listener 39 NotificationFilter filter Object handback throws ListenerNotFoundException 40 broadcaster removeNotificationListener listener filter handback 41 42 43 private synchronized long getNextSeqNumber 44 return seqNumber 45 46 47 private long seqNumber 48 49 private final _NotificationBroadcasterSupport broadcaster new 35 50 NotificationBroadcasterSupport 51 52 Figura 22 Classe gerada na implementa o do MBean MBeanStatusAnagrama java Para a cria o de classes de MBeans Agentes JMX e Aplica es de Gerenciamento JMX faz se necess rio o uso de interfaces Esta pr tica comum no desenvolvimento de c digos orientada a objeto que corresponde a exposi o dos m todos e atributos abstratos ao demais objetos permitindo identificar fun es que podem ser realizadas pelo objeto A figura 21 representa o c digo fonte da interface do MBean gerado nesta se o e a figura 22 representa o c digo do MBean propriamente dito 3 3 Configurando o MBean para a Aplica o Na se o anterior foi criada a estrutura do MBe
38. Resolvidos e Type int e Access ReadOnly e Description Numero de Anagramas Resolvidos A figura 24 apresenta a tela Add MBeans Attributes Adi o de Atributos ao MBean com os campos preenchidos com os dados listados anteriormente Ap s definir as informa es do atributo deve se selecionar o bot o OK para adicionar um novo atributo F Add MBean Attributes Attributes Attribute Name Access Description TempoGastoPensando Ji ReadOnly Attribute exposed For m NumAnagramasResolvi ReadOnly wv N mero de Anagramas F Add Attribute Remove Attribute Figura 24 Tela de adi o de atributos ao MBean com algumas informa es declaradas O m todo getNumAnagramasResolvidos ser adicionado na extremidade final da classe MBeanStatusAnagrama java e em sua interface ou seja na classe MBeanStatusAnagramaMBean java como apresentam as figuras 25 e 26 respectivamente com os c digos fonte das classes citadas 1 package com toy anagrams mbeans 2 public interface MBeanStatusAnagramaMBean 3 4 4 public int getTempoGastoPensando 5 public void zerarTodos 6 public int getNumAnagramasResolvidos 713 Figura 25 Interface do MBean MBeanStatusAnagramaMBean java alterada OO OO Un E WW NH package com toy anagrams mbeans import javax management public class MBeanStatusAnagrama implements MBeanStatusAnagramaMBean NotificationEmitter private
39. Try a new word 196 getRootPane setDefaultButton nextTrial 197 else 198 feedbackLabel setText Incorrect Try again 199 guessedWord setText 200 201 guessedWord requestFocusinWindow 202 203 private void exitForm java awt event WindowEvent evt 204 System exit 0 205 206 private javax swing J Menultem aboutMenultem 207 private javax swing Panel buttonsPanel 208 private javax swing Menultem exitMenultem 209 private javax swing Label feedbackLabel 210 private javax swing Menu fileMenu 211 private javax swing Button guessButton 212 private javax swing Label guessLabel 213 private javax swing TextField guessedWord 214 private lav ax Swing MenuBar mainMenu 215 private javax swing Panel mainPanel 216 private javax swing Button nextTrial 217 private javax swing Label scrambledLabel 218 private javax swing TextField scrambledWord 219 Anexo 1 C digo inicial da classe Anagrams java O anexo 2 apresenta o c digo da classe WordLibrary java criada na se o 3 1 1 public final class WordLibrary 2 private static final String WORD_LIST 3 abstraction 4 ambiguous 5 arithmetic 6 backslash 7 bitmap 8 circumstance 9 combination 10 consequently 11 consortium 12 decrementing 13 dependency 14 disambiguate 15 dynamic 16 encapsulation 17 equivalent 18 expression 19 facilitate 20
40. a O MBean atualizado com um novo atributo Na pr xima se o ser o feitas algumas altera es no MBean Estas altera es proporcionar o um funcionamento completo ao MBean 39 3 4 Implementando o MBean para a Aplicacao Nesta se o ser o inseridos elementos que proporcionam gerenciamento ao MBean MBeanStatusAnagrama Inicialmente deve se observar que os atributos Num AnagramasResolvidos e TempoGastoPensando n o necessitam de qualquer atualiza o Por m o m todo zerarTodos necessita ser implementado pois est vazio Quando o m todo zerar Todos for chamado os contadores ser o ajustados para O zero Para a realiza o do exemplo deve se inserir os c digos apresentados na figura 27 no corpo do m todo zerar Todos da classe MBeanStatus Anagrama 1 tempoGastoPensando 0 2 numAnagramasResolvidos 0 Figura 27 C digo com atribui o de valores a ser inserido no corpo do m todo zerarTodos Para a realiza o do exemplo al m de inserir atribui o de valores no corpo do m todo zerar Todos deve se inserir alguns m todos na classe MBeanStatus Anagrama Isso para que a classe Anagrams notifique o MBean que um novo anagrama foi proposto para o usu rio ou que um anagrama foi resolvido O c digo apresentado na figura 28 servir para criar e enviar uma notifica o quando um anagrama for resolvido este deve ser inserido antes do lti
41. adr o para a qual basta selecionar o bot o Next 16 fe J2SE Runtime Environment 5 0 Update 8 Custom Setup Custom Setup Select the program Features you want installed The J25E Runtime Environment with support For European languages will be installed Select optional features to install from the list below Feature Description The J25E Runtime Environment with European languages This requires 131 MB on your hard drive Install to C 4rquivos de programas Javaljre1 5 0_081 Figura 5 Tela de customiza o da instala o do J2SE JRE Antes de terminar a instala o obrigat ria a sele o de pelo menos um navegador compat vel com o Plug in Java Isso necess rio pois o Java utilizar o navegador selecionado nessa etapa para executar alguns testes Logo ap s ser informado que a instala o foi conclu da com sucesso Deve se selecionar o bot o Finish para finalizar o processo de instala o 2 2 2 Instala o do NetBeans A IDE NetBeans um ambiente de desenvolvimento livre e sem restri es de uso completamente escrita em Java que permite escrever compilar verificar erros e instalar programas em diversas linguagens de programa o NETBEANS 2006 online A ltima vers o homologada at o per odo de elabora o deste documento a 5 0 Para instalar a IDE NetBeans 5 0 necess rio acessar o endere o http www netbeans org selecionar a op o Dow
42. agrama getMBeanStatusAnagrama return mbean On LH E LU KJ KA Figura 46 Trecho de c digo que permite acesso classe MBeanStatusAnagrama Deve se substituir todo o c digo do m todo Init da classe MBeanStatusAnagrama pelo apresentado na figura 47 que instancia um MBean e atualiza a declara o do registro 1 mbean new MBeanStatusAnagrama 2 Atualiza o m todo Init 3 getMBeanServer registerMBean mbean 4 new 5 ObjectName mbeans anagrams toy com type MBeanStatusAnagrama 6 SAMPLE REGISTRATION EXAMPLE 7 J 8 Instantiate CounterMonitor MBean 9 javax management monitor CounterMonitor mbean 10 new javax management monitor CounterMonitor 11 ObjectName mbeanName new ObjectName 12 type CounterMonitor 13 Register the CounterMonitor MBean 14 getMBeanServer registerMBean mbean mbeanName 15 F Figura 47 Trecho de c digo do m todo Init que instancia um MBean e atualiza a declara o do registro Ap s a altera o do c digo o Agente JMX estar instrumentado pois nesta etapa foi realizada a instancia o e o registro do MBean bem com a libera o de acesso ao MBean A figura 48 apresenta todo o c digo da classe do AgenteJMX ap s altera es 1 package com toy anagrams agent 2 3 import javax management ObjectName 4 import javax management MBeanServer 5 import java lang management ManagementFactory 6 import com
43. ampo JUnit Test Results Ap s os passos de atualiza o e execu o de um teste JUnit JMX que permite a confirma o do funcionamento do MBean deve se criar um recipiente para guardar e invocar os recursos oferecidos pelos MBeans Este recipiente ser o Agente JMX que ser abordado nas pr ximas se es 3 7 Gerando um Agente JMX Nesta se o ser apresentado o desenvolvimento de um Agente JMX que ser respons vel por controlar diretamente recursos e torn los acess veis por agentes de gerenciamento remoto Por padr o um Agente JMX poder ser uma classe execut vel que contenha um m todo principal em que abrigar a classe gerenci vel ou uma classe n o execut vel que ser utilizada apenas para atribuir gerenciamento a classes pr existentes No teste ser abordado um agente n o execut vel uma vez que a classe principal Anagrams java j 51 existe Assim ser o atribu dos apenas meios para que ela seja gerenci vel Um Agente JMX pode oferecer e M todo para criar e registrar Mbeans e Acesso ao Servidor de MBeans e Simplicidade ao projeto modelado pois permite f cil acesso a um agente inicializado Um agente inicializado um agente que possui todos os MBeans registrados Para iniciar a cria o do Agente JMX deve se escolher a op o New File no menu File ou utilizar a tecla de atalho Ctrl N A figura 36 apresenta a tela de execu o do NetBeans c
44. an que apresenta os c digos fonte dos atributos e opera es m todos Nesta se o apresentado o passo para a adi o do atributo NumAnagramasResolvidos ao MBean gerado previamente O atributo NumAnagramasResolvidos permitir contar o n mero de anagramas que foram resolvidos Este pode ser implementado utilizando o assistente do NetBeans n o sendo necess ria a altera o manual dos c digos e tornando a inser o de atributos e opera es m todos uma tarefa f cil e pr tica Para criar um novo atributo seguindo o assistente deve se explorar a rea do campo Project expandir o caminho AnagramaGerenciavel Source Package com toy anagrams mbeans e selecionar o MBean MBeanStatusAnagrama criado anteriormente A seguir deve se selecionar no menu Management a op o Add MBeans Attributes A figura 23 ilustra a tela apresentada antes da sele o da op o Add MBeans Attributes com o menu Management expandido 36 NetBeans IDE 5 0 AnagramaGerenciavel BAIE File Edit View Navigate Source Refactor Build Run cvs GENESIS Tools Window Help P E a o Add MBean Attributes K gt o gt gt ES Add MBean Operations Projects a x Files Runtime K atus nagrama java x E MBeanStatusAnagramaMBean java x 4 5 ig AnagramaGerenciavel a Implement MBeanRegistration Interface m re nlt a SQ Sour
45. ans Para escolher o m dulo de atualiza o JMX deve se expandir o caminho NetBeans Update Center e Features al m de selecionar a op o JMX que se encontra no campo Available Updates and New Module Logo ap s deve se selecionar o bot o Add Nessa etapa o m dulo JMX aparecer no campo Include in Install assim como exibe a figura 11 que apresenta a Select Modules to Install Sele o de M dulo para Instala o Deve se selecionar o bot o Next para confirmar a op o e prosseguir com a atualiza o 22 A Update Center Wizard Steps Select Modules to Install Select Location of Modules Available Updates and New Modules Include in Install 1 2 Select Modules to Install 3 Download Modules and Check NetBeans Update Center Digital Signatures Features 4 View Certificates and Install ZN Ant 1 6 5 Documentation Modules ZN API Documentation add all gt ke Module Development Environr Lx Developer Collaboration Remove All L Sun Java System Application ke JBuilder Project Importer Pa Eclipse Project Importer v gt Total Size 529 KB Available Version 1 2 Installed version None Module Size 529 KB Release date 2006 04 27 JMX MBean Agent and Manager Development Java 1 5 M amp M support Debug Run applications with IConsole Figura 11 Tela de sele o de m dulo para instala o
46. aplica o ap s seu o uso Para utiliz la foi necess rio apenas selecionar a op o Perform GC implementada na aba Memory do JConsole O garbage collector uma ferramenta muito eficiente e por isso foi abordada neste teste A figura 66 apresenta o uso da mem ria durante a execu o da aplica o At o per odo das 20 vinte horas e 1 um minuto o consumo de mem ria pela aplica o oscilava entre 2 5Mb a 3 0Mb logo ap s a execu o da opera o do perform garbage collector passou a oscilar entre 1 9 a 2 4 Atrav s dos gr fico apresentado na figura 66 80 p de se ent o comprovar a efici ncia do garbage collector na libera o de mem ria utilizada pela aplica o J2SE 5 0 Monitoring amp Management Console 1624 localhost Connection Summary Memory Threads Classes MBeans jvm Chart Heap Memory Usage v Time Range Perform GC Used 4 2 221 768 20 20 4 0 Mb 3 0 Mb 2 0 Mb 1 0 Mb 19 40 19 45 19 50 19 55 20 00 20 05 20 15 Details Time 2006 12 12 20 24 28 100 Used 2 169 kbytes e Committed 3 928 kbytes Max 65 088 kbytes mr GC time 1 minute seconds on Copy 9 901 collections 25 0 622 seconds seconds on MarkSweepCompact 8 collections o Figura 65 Tela do JConsole na aba de opera es com a opera o instrumentada na aplica o 81 5 Considera es Finais Atrav s do exemplo e do teste realizado neste documento poss
47. aplica o forne a um novo conjunto de letras para suposi o O exemplo aborda a gera o de recursos que propiciam a ger ncia do Jogo de Anagramas de forma a permitir a monitora o do desempenho de um usu rio na tentativa de solucionar os problemas apresentados pelo Jogo cujo c digo pode ser equiparado a qualquer aplica o Java comum que necessite ser gerenciada Para isso basta apenas analisar os par metros a serem gerenciados e posteriormente realizar o desenvolvimento das classes para gerir a aplica o 25 O desenvolvimento do projeto ser descrito nas se es seguintes Os passos apresentados tiveram por base o projeto dispon vel em NETBEANS 2006 online 3 1 Criando um Projeto Para a execu o do exemplo faz se necess ria a cria o de um projeto que facilitar o uso dos testes e sua organiza o Para a cria o de um projeto no NetBeans deve se escolher a op o New Project no menu File ou utilizar a tecla de atalho Ctrl Shift N A figura 13 apresenta a tela inicial de execu o do NetBeans com o menu File expandido E NetBeans IDE 5 0 SON Edit View Navigate Source Refactor Build Run CVS Management Tools Window Help TE New Project Ctrl Shift N gt Open Project Ctrl Shift 0 itime Welcome X U Open File Ctrl O Refresh All Files Page Setup Exit Navigator ax What s New Gg netBeans IDE gt Getting Started NetBeans Platform
48. ar que m dulos do JDK devam ser instalados Por padr o todos os m dulos estar o selecionados para a instala o como apresenta a figura 4 N o haver preju zo na utiliza o da API JMX caso se retire os seguintes m dulos Demos e Source Code No entanto conv m mant los pois poder o servir como aux lio da linguagem Java provendo recursos para pesquisas que facilitam o entendimento de uso da linguagem Logo para instalar todos os m dulos e prosseguir com a instala o necess rio apenas selecionar o bot o Next ie J2SE Development Kit 5 0 Update 8 Custom Setup Custom Setup Select the program features you want installed Select optional Features to install from the list below You can change your choice of features after installation by using the Add Remove Programs utility in the Control Panel Feature Description Development Tools TOE Development Kit 5 0 Demos including private JRE 5 0 This will require 264 MB on your hard Source Code drive Public JRE Install to C 4rquivos de programas Javaljdk1 5 0_081 Figura 4 Tela de customiza o da instala o do J2SE JDK O pr ximo passo da instala o determinar que m dulos do JRE devam ser instalados Por padr o todos os m dulos estar o selecionados para a instala o assim como apresenta a figura 5 fim de que n o haja problemas de suporte a idiomas m dias e ou fontes torna se necess rio manter a instala o p
49. ara o exemplo deve se colocar as seguintes informa es nos respectivos campos e Operation Name zerarTodos e Returns void e Parameters e Exceptions e Description Restaura o Estado do MBean A figura 19 apresenta a tela Specify Operations Especifica o de Opera es com os campos preenchidos com os dados listados anteriormente Ap s definir as informa es da opera o deve se selecionar o bot o Next A New JMX MBean Steps Choose File Type Name and Location Type and Options Specify Attributes Specify Operations Implement Notification Emitter Interface Specify JUnit Test 32 Specify Operations Specify operations to be included in the MBean Operation Name Return Type Parameters Exceptions Description erarTodos v Est Restaura o Estado Add Operation Remove Operation Figura 19 Tela de especifica o de opera es com os campos preenchidos No Painel Implement Notification Emitter Interface Implementa o da Interface do Emissor de Notifica o ser necess rio ativar cada uma das op es citadas a seguir para a realiza o dos testes Estas op es permitir o respectivamente criar notifica es delegar difus o da notifica o e privar acessos notifica o e Implement NotificationEmitter Interface e Generate Delegation to Broadcaster e Generate Private Seq Number and Accessor Ap s ativar as op es o bot o Add Notification
50. atform Manager Library Manager Palette Manager Template Manager Options Module Manager Update Center Navigator What s New Gg netBeans IDE Getting Started NetBeans Platform Developer Collaboration amp Sun Profiler Mobility Figura 9 Tela de inicial do NetBeans com menu Tools expandido Posteriormente aparecer a tela de Sele o de M dulos Nela deve se desmarcar as op es NetBeans Hotfix Update Center e Third party Update Center e manter apenas a op o NetBeans Update Center marcada pois o pacote de atualiza o que ser instalado encontra se no M dulo NetBeans Update Center A figura 10 apresenta a sele o do m dulo Para prosseguir com a atualiza o deve se selecionar o bot o Next A Update Center Wizard Steps Select Location of Modules Select Modules to Install Download Modules and Check Digital Signatures view Certificates and Install Modules 21 Select Location of Modules Check the Web for Available Updates and New Modules Select Update Center s to connect Update Center NetBeans Update Center L NetBeans Hotfix Update Center o Third party Update Center Fi NetBeans Update Center Beta Proxy Configuration To initiate connection to the Update Center server click Next Install Manually Downloaded Modules nbm Files Figura 10 Tela de sele o de m dulos de conex o para atualiza o do NetBe
51. ce Packages Create JUnit Test i i E md acl 72 com toy anagrams agent W E com toy anagrams lib 7 package con toy anagrams mbeans lt com toy anagrams mbeans Ei jeanStatusAnagrama java a 8 MBeanStatusAnagramaMBean java B E com toy anagrams ui H E Test Packages w Libraries H E Test Libraries LA Navigator MBeanStatusAnagrama java ax Members View v eue S S MBeanstatusAnagrama F 17 N Get Tempo Gasto para Resolver O addNotificationListener NotificationListener listener Notificar oe si amp getNextSeqhumber 19 public int getTempoGastoPensando O getNotificationInfo D O getTempoGastoPensando 21 0 mi O removeNotificationListener 22 Restaura o Estado do MBean O removeNotificationListener Not onListene No 23 ty 1 sararTadaci 24 public void zerarTodos L gt 25 PR ua v Filters amp nu 2 8 persia fs JUnit Test Results Output vx TD Sad Figura 23 Tela de execu o do NetBeans com o menu Management expandido Ap s a sele o da op o Add MBeans Attributes apresentada a tela Add MBeans Attributes Adi o de Atributos ao MBean onde necess rio adicionar um novo atributo ao MBeans para a realiza o do teste Para criar um novo atributo deve se selecionar o bot o Add Attribute no painel Add MBeans Attributes Para o exemplo deve se colocar as seguintes informa es nos respectivos campos e Attribute Name NumAnagramas
52. dies Optional comments to be added to the test class Javadoc Comments Figura 31 Tela do assistente de cria o de um JUnit de teste Ap s selecionar o bot o OK o NetBeans abrir no editor de c digo com a classe de teste JUnit MBeanStatus AnagramaTest que foi gerada A figura 32 apresenta o c digo fonte da classe de teste JUnit criado 1 package com toy anagrams mbeans 2 import junit framework 3 import javax management 4 import java lang management ManagementFactory 5 6 public class MBeanStatusAnagramaTest extends TestCase 7 8 public MBeanStatusAnagramaTest String testName 9 super testName 10 11 12 public void testNumAnagramasResolvidosAttribute throws Exception 13 System out printin testNumAnagramasResolvidosAttribute 14 Integer val Integer getAttribute NumAnagramasResolvidos 15 fail The test case is empty 16 17 18 public void testTempoGastoPensandoAttribute throws Exception 19 System out printin testTempoGastoPensandoAttribute 20 Integer val Integer getAttribute TempoGastoPensando 21 fail The test case is empty 22 23 24 public void testZerarTodosOperation throws Exception 25 System out printIn testzerarTodosOperation 45 String signature new String bject params new Object T invoke zerarTodos params signature fail The test case is empty public Object createMBean
53. dor MBean usando um conector do RMI com uma autentica o que usa a permiss o de acesso do sistema de arquivo Remotamente conecta se a um agente de JMX que usa um conector do RMI Deve se passar o nome do host ou IP do Agente JMX a porta que est esperando a conex o o usu rio e a senha com permiss o de acesso Modo Avan ado conecta se a um agente de JMX com o URL especificado Normalmente se conecta a um agente de JMX que possui um conector implementado de forma personalizada com exce o do conector do RMI que padr o O JConsole possui as seguintes funcionalidades implementadas Memory Mem ria a qual exibe informa es sobre o uso de mem ria pelas aplica es Java Threads Processos em Execu o a qual exibe informa es sobre os Processos de aplica es Java Classes exibe informa es sobre o carregamento das classes Java MBeans exibe informa es sobre dos MBeans dispostos ao JConsole VM M quina Virtual exibe informa es sobre a M quina Virtual Java JVM trazendo informa es de recursos de hardware importantes A seguir s o apresentados alguns exemplos de uso de gerenciamento JMX utilizando o JConsole baseado na implementa o de gerenciamento do Jogo de Anagramas 66 3 10 1 Monitora o da Aplicacao Gerenciavel Ap s conectar a aplica o gerenci vel deve se compilar e executar o projeto AnagramaGerenciavel para compila o das classes geradas em todas as se
54. dth frameSize width 2 28 screenSize height frameSize width 2 29 initManagement 30 31 private void initManagement throws Exception 32 J MXAgent agent J MXAgent getDefault 33 agent getAnagramsStats startThinking 34 35 _agent getAnagramsStats setCurrentAnagram WordLibrary getScrambledWor 85 d wordi dx private void initComponents java awt GridBagConstraints gridBagConstraints mainPanel new javax swing Panel scrambledLabel new javax swing Label scrambledWord new javax swing TextField guessLabel new javax swing Label guessedWord new javax swing TextField feedbackLabel new javax swing Label buttonsPanel new javax swing Panel guessButton new javax swing Button nextTrial new javax swing Button mainMenu new javax swing MenuBar fileMenu new javax swing Menu aboutMenultem new javax swing J Menultem exitMenultem new javax swing Menultem setTitle Anagrams addWindowListener new java awt event WindowAdapter public void windowClosing java awt event WindowEvent evt exitForm evt mainPanel setLayout new java awt GridBagLayout mainPanel setBorder new javax swing border EmptyBorder new java awt Insets 12 12 12 12 mainPanel setMinimumSize new java awt Dimension 297 200 scrambledLabel setText Scrambled Word gridBagConstraints new java awt GridBagConstrain
55. e apresentado na figura 29 por m com alguns coment rios 1 package com toy anagrams mbeans 2 import javax management 3 4 public class MBeanStatusAnagrama implements MBeanStatusAnagramaMBean 5 NotificationEmitter 6 7 private int numAnagramasResolvidos 8 9 private int tempoGastoPensando 10 11 public MBeanStatusAnagrama 12 13 14 public int getTempoGastoPensando 15 return tempoGastoPensando 16 17 18 public void zerarTodos 19 tempoGastoPensando 0 20 numAnagramasResolvidos 0 21 22 23 public void addNotificationListener NotificationListener listener 24 NotificationFilter filter Object handback throws lllegalArgumentException 25 broadcaster addNotificationListener listener filter handback 41 public MBeanNotificationinfo getNotificationInfo return new MBeanNotificationl nfo new MBeanNotificationl nfo new String AttributeChangeNotification ATTRIBUTE CHANGE javax management AttributeChangeNotification class getName Anagrama foi Resolvido public void removeNotificationListener NotificationListener listener throws ListenerNotFoundException broadcaster removeNotificationListener listener public void removeNotificationListener NotificationListener listener NotificationFilter filter Object handback throws ListenerNotFoundException broadcaster removeNotificationListener listener filter handback T
56. eis Para desenvolvimento de aplica es com a utiliza o do JMX necess ria apenas a instala o do J2SE que respons vel pela compila o das classes Java Mas neste documento ser abordado o uso do J2SE juntamente a IDE NetBeans que proporcionar um ambiente de desenvolvimento organizado e pr tico A prepara o do ambiente apresentada na se o 2 2 2 2 Ambiente de Desenvolvimento JMX Para a prepara o do ambiente de desenvolvimento de aplica es gerenci veis com a utiliza o da tecnologia JMX que permitir a monitora o e o controle de aplica es e dispositivos s o necess rias e Instala o do J2SE e Instala o do NetBeans e Configura o do NetBeans 13 Essas etapas referentes prepara o do ambiente de desenvolvimento de aplica es de gerenciamento remoto com a utiliza o da tecnologia JMX ser o minuciosamente detalhadas nas subse es a seguir A escolha da configura o do ambiente utilizando o Sistema Operacional Windows dada pelo fato de que essa plataforma apresenta maior n mero de fontes de pesquisa e exemplos para testes Os softwares instalados oferecem suporte s plataformas Linux Unix e Solaris 2 2 1 Instala o do J2SE O J2SE Java 2 Standart Edition um kit de ferramentas desenvolvido pela Sun Microsystems para desenvolvimento de softwares na linguagem Java que possui como caracter sticas portabilidade seguran a estabilidade efici ncia s
57. er 11 import javax swing JFrame ou a 12 13 Management imports 14 15 0 16 Main window of the Anagram Game application Ea 18 public class Anagrams extends JFrame 20 7 public static void main String args throws Exception 21 new Anagrams setVisible true 22 L 23 24 private int wordIdx 0 25 lt 10 5 ins Output anagrams clean init deps clean clean BUILD SUCCESSFUL total time 0 seconds Save All finished Figura 15 Tela de execu o do NetBeans com o menu File expandido Para a cria o do MBean necess rio selecionar o diret rio Management no campo Categories e no campo File Types deve se selecionar JMX MBean como apresenta a figura 16 que exibe a tela Choose File Type Sele o de Tipos de Arquivo com o JMX MBean selecionado Por fim ser necess rio selecionar o bot o Next para Deleting directory C JMX AnagramaGerenciavel build prosseguir com a cria o do MBean PRA PAL IZ nac ey lt 4 New File Steps Choose File Type Project L AnagramaGerenciavel 1 Choose File Type Z sva Categories CD Java Classes Java GUI Forms JavaBeans Objects Init Management Web Services xm Ant Build Scripts Other Description Creates a new JMX MBean 29 Eile Types IS mx Agent JMX MBean JU JMX MBean JUnit Test D Management
58. erve para automatizar a cria o de casos de teste evitando testes duplicados e permitindo escrever testes com valores de longo prazo ou seja que possam ser reutiliz veis VAZ 2003 p 16 17 Nesta se o s o abordados os m todos de cria o de um JUnit de teste para um MBean que realizar testes baseados nos atributos e nas opera es m todos do MBean MBeanStatus Anagrama Para o gerenciamento de uma aplica o n o se faz necess ria a cria o do JUnit por m para garantir que o MBean esteja em perfeito funcionamento deve se gerar o JUnit de teste A pr tica de teste em MBean importante para reduzir erros na instrumenta o dos recursos que se pretende gerenciar Para criar um JUnit seguindo o assistente deve se explorar a rea do campo Project expandir o caminho AnagramaGerenciavel Source Package com toy anagrams mbeans e selecionar o MBean MBeanStatus Anagrama criado anteriormente A seguir deve se selecionar no menu Management a op o Create JUnit Test A figura 30 ilustra a tela apresentada antes da sele o da op o Create JUnit Test com o menu Management expandido 43 NetBeans IDE 5 0 AnagramGameManagedwithJMX HE File Edit view Navigate Source Refactor Build Run cvs Buz Tools Window Help BR E a o E Add MBean Attributes E K E gt gt 9 5 Add MBean Operations a Projects 4 x Files Runtime LA
59. es anteriores e a realiza o do gerenciamento do Jogo de Anagramas utilizando o JConsole Para a compila o e execu o do projeto AnagramaGerenciavel deve se selecionar a op o Run Main Project with JConsole no menu Run assim como apresenta a figura 53 com a tela de execu o do NetBeans e com o menu Run expandido Z NetBeans IDE 5 0 AnagramaGerenciavel File Edit View Navigate Source Refactor Build MN CYS Management Tools Window Help BP B E 3 oj gt Run Main Project F6 B By D op gt ES gt YE Debug Main Project F5 Projects 4 x Files Runtime Test AnagramaGerenciavel alt F6 ibrary java X 2 MBeanStatusAnagrama java X S MBeanStatusAn D K Z AnagramaGerenciavel Run File IS PAL S le a amp Ei Attach Debugger im fordLibrary E Step Into F7 istener 4i Run to Cursor F4 istener Navigator Anagrams java Members View Stack gt Anagrams Toggle B int Ctri F8 aboutMenultem ctionPerformed ActionEvent evt bade Breakpain Game application amp extForm WindowEvent evt New Breakpoint Ctrl shift re BS appidcation S exitMenultemActionPerformed s e Q New Watch Ctri Shift F7 JFrame y quessedwordactionPerformed a S initComponents E S initManagement EB Run Main Project with Console tring args throws Exception d LE d ible t 7 9 main String args eb Debug Main Project with JCo
60. est passed testNumAnagramasResolvidosattribute passed 0 063 s O testTempoGastoPensando ttribute passed 0 0 s testZerarTodosOperation passed 0 05 Figura 49 Tela de execu o do NetBeans com a classe Anagrams java aberta Ser necess rio abrir a classe no editor de c digo para alterar a classe Anagrams java Para isso deve se selecionar a aba Source no topo do Editor de C digos ou utilizar a tecla de atalho Alt Shift Right necess rio adicionar no construtor da classe Anagrams uma chamada ao m todo do initManagement para realizar esta opera o basta copiar o seguinte trecho de c digo initManagement para o final do construtor da classe Anagrams O m todo initManagement da classe Anagrams java dever ser implementado para acessar o Agente JMX posteriormente registrar o MBean em seguida acessar o MBean e por fim chamar a fun o startThinking implementada na classe MBeanStatusAnagrama java Isso para que seja calculado o tempo absoluto do in cio da execu o aplica o at a primeira resposta correta do anagrama proposto ao jogador permitindo assim o c lculo completo do desempenho do jogador em rela o ao tempo gasto nas resolu es do jogo Para atribuir o funcionamento necess rio ao m todo initManagement deve se adicionar o c digo apresentado na figura 50 na classe Anagrams java Este c digo criar um Agente JMX e executar uma fun o do MBean
61. gen rico baseado no modelo de eventos Java que prov objetos de notifica es e a interface do transmissor e receptor das notifica es enviadas e recebidas SUN 2006 online As notifica es poder o ser enviadas pelos MBeans ou pelo servidor de MBeans que especificado no N vel Agente do JMX 12 O Nivel Agente tem como componente principal o Servidor MBeans o qual respons vel por controlar os recursos diretamente e torn los acess veis por agentes de gerenciamento remoto Num agente pode se ter um ou mais Servidor MBeans por m comumente utiliza se apenas um por JVM O Nivel Gerente respons vel pela comunica o entre os Agentes e o Gerente Os adaptadores e conectores de um determinado protocolo padr o fornecidos para a conex o tornam um agente JMX acess vel pelas aplica es de ger ncia remota fora da m quina virtual Java do Agente As aplica es de gerenciamento possuem a fun o de configura o e monitora o dos recursos e dispositivos instrumentados SUN 2004 online Dessa forma ao implementar uma aplica o gerenci vel torna se necess ria a implementa o de MBeans Agentes JMX e um Gerente JMX Podem se encontrar facilmente Gerentes JMX j implementados tais como o JConsole MC4J Spring WLS JMX Console e WLST Na se o 3 ser implementado um exemplo que al m de mostrar como utilizar o NetBeans exemplificar os passos necess rios para o desenvolvimento de aplica es gerenci v
62. ic Agente MX singleton 42 1 Figura 44 Classe do Agente JMX AgenteJMX java ap s a instancia o e registro do MBean Para a realiza o do exemplo faz se necess ria a atribui o de acesso a interface do MBean MBeanStatus Anagrama para a aplica o N o obrigat ria a realiza o desta atribui o na cria o de aplica es gerenci veis por m pode ser til quando a aplica o necessitar enviar dados para um MBean Os m todos startThinking e stopThinking s o usados pela aplica o para notificar o MBean que alguns eventos ocorreram Por sua vez o MBean atualiza seu estado Para tornar o MBean MBeanStatusAnagrama acess vel a classe Anagrams java necess rio modificar o m todo init e adicionar no MBean uma permiss o de acesso para o agente Na classe do Agente JMX deve se adicionar o trecho de c digo apresentado na figura 45 na linha abaixo do ltimo import da classe O c digo apresentado na figura 45 importa a classe MBeanStatusAnagrama 1 import com toy anagrams mbeans MBeanStatusAnagrama 2 Importa a classe MBean Figura 45 Trecho de c digo que importa a classe MBeanStatusAnagrama Deve se tamb m adicionar o trecho de c digo apresentado na figura 46 na linha abaixo da instancia o da classe O c digo apresentado na figura 46 permite acesso classe MBeanStatusAnagrama 60 Acessa o MBean private MBeanStatusAnagrama mbean public MBeanStatusAn
63. icos dum determinado ambiente em que ser executada determinada aplica o foram escolhidos alguns par metros dentre eles tempo consumido para o processamento das combina es poss veis e a quantidade de mem ria consumida pela aplica o Em seguida foram desenvolvidas duas classes sendo uma a Interface do MBean e a outra o MBean completo Ambas foram desenvolvidas de modo semelhante ao apresentado na se o 3 A Interface do MBean representa a interface das vari veis e opera es m todos do MBean que ser o apresentadas visualmente ao gerente durante a monitora o da aplica o O MBean foi implementado para disponibilizar o tempo consumido para o processamento das combina es poss veis em mil simos de segundo e a fun o de calcular o tempo consumido para o processamento das combina es poss veis em segundos Uma vez que ser utilizado o JConsole para a realiza o da ger ncia n o necess rio instrumentar recursos relativos ao consumo da mem ria pois estes recursos j ser o oferecidos de forma nativa pelo JConsole tornando inconveniente a recria o da instrumenta o do recurso Todos os m todos e atributos listados na interface do MBean ser o apresentados na aba de MBeans do JConsole permitindo assim o controle e monitora o do objeto gerenciado Para o teste foram listados os atributos tempoDeProcessamentoMilesimos e tempoDeProcessamentoSegundos e a opera o TempoEmSegundos A figura 62 a
64. isCorrect int idx String userGuess return userGuess equals getWord idx Anexo 2 C digo da classe WordLibrary java 91
65. it Team Quit 159 exitMenultem addActionListener new java awt event ActionListener 160 public void actionPerformed java awt event ActionEvent evt 161 exitMenul temActionPerformed evt 162 163 164 fileMenu add exitMenultem 165 mainMenu add fileMenu 166 set MenuBar mainMenu 167 168 private void aboutMenultemActionPerformed java awt event ActionEvent 169 evt 170 new About this setVisible true 171 172 private void nextTrialActionPerformed java awt event ActionEvent evt 173 wordldx wordldx 1 WordLibrary getSize 174 try 175 J MXAgent getDefault getAnagramsStats startThinking 176 JMXAgent getDefault getAnagramsStats setCurrentAnagram WordLibrary g 177 etScrambledWord wordldx 178 catch Exception e e printStackTrace 179 feedbackLabel setText 180 scrambledWord setText WordLibrary getScrambledWord wordl dx 181 guessedWord setText 182 getRootPane setDefaultButton guessButton 183 guessedWord requestFocus nWindow 184 185 private void exitMenultemActionPerformed java awt event ActionEvent evt 186 187 System exit 0 188 189 private void guessedWordActionPerformed java awt event ActionEvent evt 190 191 if WordLibrary isCorrect wordl dx guessedWord getText 192 try 193 J MXAgent getDefault getAnagramsStats stopThinking 194 catch Exception e e printStackTrace L 195 feedbackLabel setText Correct
66. ja gerenciar os recursos e servi os por qual m todo se deseja gerenciar os recursos e servi os se ser de forma local ou remota por quem ser o gerenciados os recursos e servi os se utilizar alguma aplica o pronta como o JConsole MC4J Spring WLS JMX Console ou o WLST ou se desenvolver uma nova aplica o de gerenciamento caso se 82 desenvolva uma nova aplica o de gerenciamento quais os protocolos de comunica o adicionais serao utilizados Enfim as maiores dificuldades surgem com a falta de conhecimento em rela o ao desenvolvimento de sistemas de gerenciamento de redes e aplica es pois estes dever o apresentar estabilidade e seguran a ao administrador que far uso das informa es coletadas e configura es realizadas pelo sistema As ferramentas para implementa o de gerenciamento de aplica es Java s o muito simples e de f cil utiliza o E a API JMX bem est vel e bem documentada e conta com v rias IDE s ambientes de desenvolvimento de c digo que facilitam mais o processo de implementa o de aplica es de gerenciamento As limita es definidas atrav s do estudo e teste da API JMX devem se aos fatos dela trabalhar apenas aplica es Java e possui a necessidade da JVM Java Virtual Machine M quina Virtual Java em todos os dispositivos gerenciados aumentando a necessidade de recursos computacionais no ambiente de gerenciamento Os pontos positivos levantados sobre a API JMX
67. lecionar o bot o Nexf Para o exemplo deve se colocar as seguintes informa es e Class Name Agente MX e Location Source Packages e Package com toy anagrams agent Deve se desmarcar a op o Create Main Method Criar M todo Principal pois no exemplo ser realizada a instrumenta o de uma aplica o que j possui um m todo principal A figura 38 apresenta a tela Name and Location Nome e Localiza o com os campos preenchidos com os dados listados anteriormente e a op o Create Main Method desativada Por fim ser necess rio selecionar o bot o Finish para criar o Agente JMX E New JMX Agent Steps 1 Choose File Type 2 Name and Location 53 Name and Location Class Name AgenteJMx Project AnagramaGerenciavel Location Source Packages Package Lom toy anagrams agent Created File C MX AnagramaGerenciavel srcicomitoy anagramstagenti genteJMX java Add Managed Bean Registration Sample Code e Cana Cee ase Figura 38 Tela de adi o de nome e localiza o do Agente JMX com os campos preenchidos e a op o Create Main Method desativada A classe AgenteJMX ser criada no projeto e aberta no painel do editor de c digo O c digo fonte da classe AgenteJMX java dever ser semelhante ao que apresentado na figura 39 por m sem os coment rios 1 package com toy anagrams agent 2 3 import javax management ObjectName 4 import javax
68. mo s mbolo de fechamento de uma classe 1 2 Os m todos expde os componentes do Anagrams UI para fornecer dados a 3 ger ncia 4 5 6 private long startTime 7 8 Um novo Anagrama proposto ao usu rio O usu rio come a pensar 9 E 10 public void startThinking 11 startTime System currentTimeMillis 12 13 js 14 Um Anagrama foi resolvido 15 16 public void stopThinking 1 40 17 18 Atualiza o n mero de anagramas resolvidos 19 numAnagramasResolvidos 20 21 Calcula o tempo gasto pensando em segundos 22 long stopTime System currentTimeMillis 23 24 tempoGastoPensando int stopTime startTime 1000 25 26 Cria uma notifica o J MX para notificar a defini o do Anagrama 27 Notification notification new 28 Notification AttributeChangeNotification ATTRIBUTE_ CHANGE 29 this 30 getNextSegNumber 31 Anagrama Resolvido 32 33 Envia a notifica o J MX 34 broadcaster sendNotification notification 35 Figura 28 C digo com m todos que exp e os componentes do Anagrama a ser inserido no corpo da classe MBeanStatus Anagrama Deve ser observado que uma notifica o do JMX do tipo ATTRIBUTE CHANGE ser enviada cada vez que um anagrama for resolvido Ap s a realiza o das altera es abordadas nesta se o o c digo fonte da classe MBeanStatusAnagrama java dever ser semelhante ao qu
69. n Anagram has been solved DA gt A nublic void stonThinkina M lt Fiters amp a 89 4 frs Save All finished Figura 30 Tela de execu o do NetBeans com o menu Management expandido Ap s a sele o da op o Create JUnit Test apresentada a tela Create JUnit Test Cria o de um JUnit de Teste onde ser proposta uma nova classe de teste JUnit para testar o MBeans No campo Class to Test Classe para Teste dever aparecer a seguinte informa o com toy anagrams mbeans MBeanStatusAnagrama No campo Created to Test Class Classe Criada para Testar dever conter a seguinte informa o com toy anagrams mbeans MBeanStatus AnagramaTest No campo Location Local dever estar selecionada a op o Test Packages e no campo MBeans Constructor Construtor do MBeans a op o MBeanStatus Anagrama dever estar selecionada A figura 31 apresenta a tela Create JUnit Test Cria o de um JUnit de Teste com as op es ativadas Caso alguma destas op es n o esteja ativada deve se selecion las para a cria o do JUnit e escolher a op o OK 44 Create JUnit Test Class to Test com toy anagrams mbeans MBeanStatus nagrama Created Test Class com toy anagrams mbeans MBeanStatus nagramaTest Location Test Packages v MBean Constructor INS ge a TEA v Optional code to be added to the test class Default Method Bo
70. nit Test Results Z x Output anagrams test single st Ou h w All 3 tests passed 6 com toy anagrams mbeans MBeanStatusAnagramaTest passed testNumAnagramasResolvidosAttribute passed 0 063 s O testTempoGastoPensandoattribute passed 0 05 O testZerarTodosOperation passed 0 05 Figura 36 Tela de execu o do NetBeans com o menu File expandido Para a cria o do Agente JMX necess rio selecionar o diret rio Management no campo Categories e no campo File Types deve se selecionar JMX Agent como apresenta a figura 37 que exibe a tela Choose File Type Sele o de Tipos de Arquivo 52 com o JMX Agent selecionado Por fim ser necess rio selecionar o bot o Next para prosseguir com a cria o do MBean F New File Steps Choose File Type 1 Choose File Type Be poa Project Ss AnagramaGerenciavel Categories File Types G Java Classes B amp C Java GUI Forms JMX MBean CA JavaBeans Objects Ju JMX MBean JUnit Test Unt as Management Configuration File Umer IS Mx Manager Web Services XML Ant Build Scripts Other Description Creates a new JMX Agent class Figura 37 Tela de Sele o de Tipo de Arquivo com o JMX Agent selecionado Para determinar o nome da classe o local e em qual pacote ser armazenado basta alterar respectivamente as informa es Class Name Location e Package e se
71. nloads e logo ap s a op o NetBeans IDE Mobility Pack and Profiler 5 0 downloads Em seguida preciso 17 informar a plataforma que ser instalada e selecionar a op o NetBeans IDE 5 0 Installer para realizar a transfer ncia de uma c pia do programa Em seguida necess ria a execu o do instalador transferido ap s a qual aparecer uma tela de boas vindas ao assistente de instala o do NetBeans Para iniciar a instala o de fato deve se selecionar o bot o Next Em seguida aparecer o termo de licen a de uso do NetBeans IDE 5 0 sendo que para continuar a instala o necess rio concordar com os termos da licen a de uso apresentados Para isso deve se selecionar a op o I accept the terms in the license agreement e o bot o Next A figura 6 apresenta a tela com a licen a de uso do NetBeans IDE 5 0 com a op o I accept the terms in the license agreement selecionada is NetBeans IDE 5 0 Installer Please read the following license agreement carefully NetBeans software is developed and distributed under the Sun Public License SPL NetBeans software also makes use of additional libraries made available for use and distribution by other parties including open source projects SUN PUBLIC LICENSE Version 1 0 1 Definitions 1 0 1 Commercial Use means distribution or otherwise making the Covered Code available to a third party O I do not accep
72. nsfer ncia do J2SE TM Development Kit 5 0 Update 8 necess ria a execu o do instalador transferido Ap s a execu o do instalador aparecer o termo de licen a de uso do programa J2SE que apresenta permiss es e restri es de uso da aplica o conforme mostra a figura 3 Para prosseguir a instala o necess rio concordar com o termo de licen a apresentado selecionando a op o I accept the terms in the license agreement e a op o Next ie J2SE Development Kit 5 0 Update 8 License License Agreement Please read the following license agreement carefully Sun Microsystems Inc Binary Code License Agreement for the JAYA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT 5 0 SUN MICROSYSTEMS INC SUN IS WILLING TO LICENSE THE SOFTWARE IDENTIFIED BELOVY TO YOU ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS COLLECTIVELY AGREEMENT PLEASE READ THE AGREEMENT CAREFULLY BY DOWNLOADING OR INSTALLING THIS SOFTWARE YOU ACCEPT THE TERMS OF THE AGREEMENT INDICATE ACCEPTANCE BY SELECTING THE ACCEPT BUTTON AT THE BOTTOM OF THE AGREEMENT IF YOU ARE NOT WILLING TO BE BOUND BY ALL THE TERMS SELECT THE DECLINE BUTTON AT THE BOTTOM OF THE AGREEMENT AND THE he OI do not accept the terms in the license agreement Figura 3 Tela com a licen a de uso do J2SE 15 O pr ximo passo da instala o do J2SE determin
73. nsole etre nextTrialActionPerformed ActionEvent evt 83 aboutMenultem JMenultem E Start 3Consote M E Remote Management gt Pe I Fiters L as IL 21 fm E OO JUnit Test Results Output ex Figura 53 Tela de execu o do NetBeans com o menu Run expandido O projeto ser compilado e executado com o JConsole Depois dever o aparecer duas novas telas a tela do Jogo de Anagramas Anagrams e a tela da Aplica o de Gerenciamento JConsole A figura 54 apresenta a tela do Jogo de Anagramas Anagrams e a figura 55 apresenta a tela da Aplica o de Gerenciamento JConsole 67 Anagrams File Scrambled Word batsartcoin Your Guess Figura 54 Tela do Jogo de Anagramas Anagrams J2SE 5 0 Monitoring amp Management Console 3548 localhost Connection Summary Threads Classes MBeans VM Summary Uptime 34 797 seconds Process CPU time 1 390 seconds Total compile time 0 171 seconds Threads Live Threads Peak Daemon threads Total started Memory Current heap size 1 491 kbytes Committed memory 1 984 kbytes Maximum heap size 65 088 kbytes Objects pending for finalization 0 Garbage collector Name Copy Collections 17 Total time spent 0 051 seconds Garbage collector Name MarkSweepCompact Collections 0 Total time spent 0 000 seconds Classes Current classes loaded 1 905 Total classes unloaded Total classes loaded
74. o 0 Figura 57 Tela do JConsole na aba Attributes com os atributos expostos no formato de grafico 3 10 1 1 Simula o do uso do Jogo para a Monitora o de Notifica es A seguir apresentada a simula o de uma jogada e a an lise realizada pelo JMX ap s a realiza o da prepara o do JConsole Ap s o in cio do jogo para realizar o teste de 70 gerenciamento deve se tentar resolver o anagrama Para isso faz se necess rio analisar as palavras apresentadas no campo Scrambled Word Palavras Misturadas e responder no campo Your Guess Sua Suposi o na tela do Jogo de Anagramas Anagrams A resposta dever ser baseada na constru o de uma palavra bem formada no idioma ingl s utilizando as mesmas palavras apresentadas no campo Scrambled Word Para realizar a an lise do exemplo deve se inserir a palavra abstraction no campo Your Guess Sua Suposi o e selecionar a op o Guess Suposi o Deve se observar que ser computada a resposta certa e o tempo gasto pra a resolver o anagrama que ser representado no gr fico do JConsole Deve se selecionar a op o New Word Nova Palavra para uma nova jogada Para continuar a realiza o da an lise do exemplo deve se inserir a palavra ambiguous no campo Your Guess Sua Suposi o e selecionar a op o Guess Suposi o O gr fico representar o n mero de anagramas resolvidos e o tem
75. o SUN 2006 online Quanto monitora o com o JMX poss vel descobrir em tempo de execu o que servi os est o ativos e quais os recursos tais servi os est o consumindo J sobre a configura o com o JMX poss vel verificar e modificar valores de par metros de configura o solicitar a inicializa o paralisa o ou reinicializa o de servi os Existem v rias aplica es que s o gerenci veis pelo JMX como por exemplo o JBoss Servidor de Aplica o e o Apache Tomcat Servidor de P ginas Web 11 2 1 Arquitetura do JMX A arquitetura da API JMX que apresentada na figura 1 dividida em tr s nfveis Nivel Instrumenta o Nivel Agente e Nivel Gerente i 1 i Aplica o de Nave pador aplica o de PRC MX HTML Gertocda SNMP a a MB ME o Er 4 Nivel Recurso 1 Recurso 2 Instrumenta o Figura 1 Arquitetura do JMX FRANCISCO 2001 p 3 O N vel de Instrumenta o respons vel pela implementa o de MBeans Management Beans Beans de Gerenciamento que s o objetos Java que representam os recursos a serem gerenciados tais como aplica es dispositivos ou servi os Al m disso os Beans de Gerenciamento exp em interfaces de gerenciamento compostas de atributos e opera es que podem fazer uso dos recursos de notifica es para informar ou atualizar dados referentes aos recursos instrumentados Na especifica o do JMX definido o modelo de notifica es
76. o Jogo de Anagramas que tem por objetivo exemplificar uma aplica o gerenci vel pela API JMX ser realizado com a utiliza o da IDE NetBeans Essa IDE possibilita a cria o de estruturas de m todos e de classes de uma forma simples e r pida pois fornece uma interface de desenvolvimento atrav s de wizards assistentes mas oferece a possibilidade de desenvolvimento tamb m em modo texto 10 2 JMX Java Management Extensions O JMX uma API padr o introduzida no J2SE 5 0 para gerenciamento e monitoramento de recursos tais como aplica es dispositivos servi os e a JMV Java Virtual Machine M quina Virtual Java A tecnologia JMX foi desenvolvida atrav s do JCP Java Community Process Processo Comunit rio Java e dentre suas v rias caracter sticas destacam se SUN 2006 online e O gerenciamento de aplica es Java com baixos investimentos e Uma arquitetura de gerenciamento progressivo e Integra o a solu es existentes de gerenciamento e Desenvolvimento das tecnologias padr o existentes de Java e Desenvolvimento de novos conceitos relacionados a ger ncia e Defini o em m dulos da ger ncia Por padr o a API JMX inclui acesso remoto permitindo que atrav s de outros computadores contendo o kit J2SE instalado seja poss vel gerenciar uma aplica o j instrumentada e tamb m um programa de gerenciamento remoto o JConsole que permite gerenciar aplica es em tempo de execu
77. oDeProcessamentoMilesimos 15 000 4 15 000 Discard chart TempoDeProcessamento Segundos TempoDeProcessamentoSegundos 15 41 Figura 64 Tela do JConsole durante o gerenciamento da aplica o O tempoDeProcessamentoSegundo foi obtido atrav s da invoca o da Opera o tempoEmSegundo que apresentado na figura 65 A opera o transforma o resultado da an lise obtida em mil simos de segundos para segundos 79 amp J2SE 5 0 Monitoring amp Management Console 1624 localhost 10 x Connection Summary Memory Threads Classes MBeans VM MBeans E Tree attributes Operations Notifications 3 Info gt EJ JMirr S o cf java Void tempoEmSegundos gt CY java CH mbe By Figura 65 Tela do JConsole na aba de opera es com a opera o instrumentada na aplica o Em seguida foram analisados e testados os par metros de mem ria E em rela o ao consumo de mem ria durante a execu o da aplica o p de se notar o consumo variando entre 2 5Mb a 3 0Mb Como o JConsole apresenta uma ferramenta nativa do Java o garbage collector ou simplesmente coletores que faz o controle da mem ria do objeto gerenciado que automaticamente libera blocos de mem ria que n o ser o mais usados em uma aplica o Esta ferramenta foi utilizada e testada para verificar o consumo de mem ria da
78. om o menu File expandido NetBeans IDE 5 0 AnagramaGerenciavel ile G New Project Ctrl Shift N Edit view Navigate Source Refactor Build Run CVS Management Tools Window Help E nr Q amp 0 D New File Ctrl N E oject Ctrl Shift O ava E MBeanStatus nagramaMBean java X MBeanStatus nagramaTest java X a AgenteJMX java X RIA hd A a SI Aa P Be eel ealeu Close AnagramaGerenciavel 46 L V im Open File CtriHO 47 0 public void testZerarTodosOperation throws Exception S 48 System out println testzerarTodosOperation Set Main Project U 49 AnagramaGerenciavel Properties so Operation signature 1 String signature new String P sz ye s M 53 Refresh All Files 54 Object params new Object Page Setup S 55 3 Print Ctrl P ax 5 Print to HTML 57 Invoke JMX MBean Operation e v jm Sm 58 invoke zerarTodos params signature Exit S 59 E marere E E J amp setattribute attribute att 60 j TODO add your test code below by replacing the default call to fail setup Soir 61 assertTrue M todo invocado com sucesso true O suite 6a Z tearDown ES O testNumAnagramasResolvidosattribute 64 L public Object createMBean O testTempoGastoPensandoAttribute 65 return new MBeanStatusAnagrama testZerarTodosOperation v 66 mara _67 x Fiters 1 91618 sisi fins JU
79. ombinacoes Un WU N KA Figura 63 Techo de c digo com o registro do MBean no Agente JMX Posteriormente foram criadas algumas chamadas aos m todos do MBean para realizar a contagem de tempo gasto para o processamento das poss veis combina es de um evento estas chamadas foram introduzidas em pontos estrat gicos para que o tempo a ser calculado pelo MBean seja real Logo foi introduzida uma chamada no in cio do c digo apresentado na figura 61 para iniciar a contagem e outro ao final do c digo apresentado na mesma figura para parar a contagem do tempo 4 3 Gerenciamento do Teste Implementado Utilizando o JConsole Inicialmente todas as classes foram compiladas e a classe principal do projeto foi executada juntamente com o JConsole atrav s do NetBeans Foi gerenciado o tempo consumido para processar as combina es poss veis na compara o de n meros fornecidos lt no inicio da execu o da aplica o a vari vel constante do tempo apresentada em 78 mil simos de segundo para exibir com exatid o os valores do tempo A figura 64 apresenta a tela de gerenciamento com alguns resultados obtidos J2SE 5 0 Monitoring amp Management Console 1624 localhost Connection Summary Memory Threads Classes MBeans VM MBeans Attributes Operations Notifications 3 Info Name Value Discard chart Tempo DeProcessamentoMilesimos Temp
80. onstraints 94 feedbackLabel setText 95 gridBagConstraints new java awt GridBagConstraints 96 gridBagConstraints gridx 1 97 gridBagConstraints gridwidth 98 java awt GridBagConstraints REMAINDER 99 gridBagConstraints fill java awt GridBagConstraints HORI ZONTAL 100 gridBagConstraints weightx 1 0 101 gridBagConstraints insets new java awt Insets 0 0 20 0 102 mainPanel add feedbackLabel gridBagConstraints 103 buttonsPanel setLayout new java awt GridBagLayout 104 guessButton setMnemonic G 105 guessButton setText Guess 106 guessButton setToolTipText Guess the scrambled word 107 guessButton addActionListener new java awt event ActionListener 108 public void actionPerformed java awt event ActionEvent evt 109 guessedWordActionPerformed evt 110 111 H 112 gridBagConstraints new java awt GridBagConstraints 113 gridBagConstraints gridheight 114 java awt GridBagConstraints REMAINDER 115 gridBagConstraints anchor java awt GridBagConstraints SOUTHEAST 116 gridBagConstraints weightx 1 0 117 gridBagConstraints weighty 1 0 118 gridBagConstraints insets new java awt Insets 0 0 0 6 119 buttonsPanel add guessButton gridBagConstraints 120 nextTrial setMnemonic N 121 nextTrial setText New Word 122 nextTrial setToolTipText Fetch a new word 123 nextTrial addActionListener new java awt event ActionListener 124 public void actionPerf
81. ormed java awt event ActionEvent evt 125 nextTrialActionPerformed evt 126 127 H 128 gridBagConstraints new java awt GridBagConstraints 129 gridBagConstraints gridwidth 130 java awt GridBagConstraints REMAI NDER 131 gridBagConstraints gridheight 132 java awt GridBagConstraints REMAINDER 133 gridBagConstraints anchor java awt GridBagConstraints SOUTHEAST 134 gridBagConstraints weighty 1 0 135 buttonsPanel add nextTrial gridBagConstraints 136 gridBagConstraints new java awt GridBagConstraints 137 gridBagConstraints gridwidth 138 java awt GridBagConstraints REMAINDER 139 gridBagConstraints gridheight 140 java awt GridBagConstraints REMAINDER 141 gridBagConstraints fill java awt GridBagConstraints BOTH 142 gridBagConstraints weighty 1 0 143 mainPanel add buttonsPanel gridBagConstraints 144 getContentPane add mainPanel java awt BorderLayout CENTER 145 fileMenu setMnemonic F 146 fileMenu setText File 147 aboutMenultem setMnemonic A 148 aboutMenultem setText About 149 aboutMenultem setToolTipText About 150 aboutMenultem addActionListener new java awt event ActionListener 151 public void actionPerformed java awt event ActionEvent evt 152 aboutMenultemActionPerformed evt 153 154 H 155 fileMenu add aboutMenultem 156 exitMenultem setMnemonic E 157 exitMenultem setText Exit 158 exitMenultem setToolTipText Qu
82. ows Exception jmxTerminate public static Test suite TestSuite suite new TestSuite MBeanStatusAnagramaTest class return suite 48 59 60 private Object getAttribute String attName throws Exception 61 return getMBeanServer getAttribute mbeanName attName 62 63 64 private void setAttribute Attribute att throws Exception 65 getMBeanServer setAttribute mbeanName att 66 67 68 private Object invoke String opName Object params 69 String signaturel throws Exception 70 return getMBeanServer invoke mbeanName opName params 71 signature 72 73 74 private void jmxinit throws Exception 75 mbeanName new ObjectName type MBeanStatusAnagrama 76 Object mbean createMBean 77 server ManagementFactory getPlatformMBeanServer 78 server registerMBean mbean mbeanName 79 80 81 private void jmxTerminate throws Exception 82 server unregisterMBean mbeanName 83 84 85 private MBeanServer getMBeanServer 86 return server 87 88 89 private MBeanServer server 90 private ObjectName mbeanName 91 92 Figura 33 C digos da classe de teste JUnit MBeanStatusAnagramaTest java ap s altera es Para a execu o do teste JUnit no MBean deve se explorar a rea do campo Project expandir o caminho AnagramaGerenciavel Test Package com toy anagrams mbeans e selecionar a classe MBeanSta
83. pSpaceSize Version 51 Discard chart Total Physical MemorySize 535 347 200 a 16 15 1309872128 72 Figura 59 Tela do JConsole na aba Attributes com alguns atributos expostos no formato de grafico In meros recursos gastos na execu o de aplica es podem ser monitorados pelo JMX Nesse trabalho foi apresentada a monitora o da mem ria para exemplificar que poss vel a monitora o de recursos atrav s da JVM Como dito na se o 2 3 10 o JConsole apresenta funcionalidades que exibem informa es sobre Threads e Mem ria de forma completa e confi vel Ainda pelo JConsole pode se saber o consumo de recursos em tempo de execu o das aplica es Java que est o sendo executadas Um exemplo disso a informa o disposta atrav s da aba Memory na Tela da Aplica o de Gerenciamento JConsole A figura 60 apresenta as informa es de consumo de mem ria por parte do Jogo de Anagramas J2SE 5 0 Monitoring amp Management Console 3592 localhost Connection Summary Memory Threads Classes MBeans VM Heap Memory Usage A Time Range Perform GC Time 2006 11 26 20 34 02 Used 1 289 kbytes A Committed 1 984 kbytes Max 65 088 kbytes GC time 0 268 seconds seconds on Copy 370 collections 0 000 seconds seconds on MarkSweepCompact 0 collections E Figu
84. po gasto para resolver ambos os atributos ser o alterados Continuando com an lise deve se inserir a palavra arithmetic no campo Your Guess Sua Suposi o e selecionar a op o Guess Suposi o A figura 58 apresenta os resultados dos testes no gr fico por m os valores apresentados no atributo Tempo Gasto Pensando s o relativos e dever ser desconsiderado em rela o a uma nova simula o uma vez que se realizada novamente Tempo Gasto Pensando dever apresentar outro valor 71 J2SE 5 0 Monitoring amp Management Console 3548 localhost Connection Summary Memory Threads Classes MBeans VM MBeans E Tree Attributes Operations Notifications 3 Info 5 JMImplementation gt c java lang x gt CY java util logging pis cans charia C mbeans anagrams toy com MBeanStatusAnagrama NumAnsgranmaResolvidos Name Value NumAnagramasResolvidos 12 16 12 17 Discardchart TempoGastoPensando Tempo Gasto Pensando 10 12 16 12 17 Figura 58 Tela do JConsole na aba Attributes com os atributos expostos no formato de gr fico representando o resultado da an lise das jogadas 3 10 1 2 Simula o da Monitora o do Recurso de Mem ria Para verificar graficamente o total e a quantidade dispon vel de mem ria no computador em que a aplica o est sendo executada
85. presenta interface do MBean que apresentam os recursos que ser o visualizados no momento da ger ncia 1 public interface MBeanCombinacoesMBean 2 public int getTempoDeProcessamentoMilesimos 3 public int getTempoDeProcessamentoSegundos 4 public void tempoEmSegundos 5 Figura 62 Techo da Interface do MBean 77 Para testar o MBean foi implementado um JUnit de teste Esta etapa nao obrigat ria para o desenvolvimento do gerenciamento de aplica es utilizando a API JMX por m essa pr tica torna se importante em aplica es de m dio e grande porte que em caso de erro dificilmente ser detectado causando assim falhas e imprecis es na aplica o de gerenciamento foi abordada neste teste com o intuito de ser uma boa pr tica Em seguida foi implementado o Agente JMX respons vel pelo controle dos recursos e servi os da m quina local isso atrav s do Servidor de MBeans O n vel Agente que ser respons vel pela execu o das tarefas solicitadas pelo gerente sobre os objetos gerenciados Logo na cria o do Agente JMX o MBean foi registrado Sem este registro imposs vel o uso do MBean pela aplica o de gerenciamento o registro uma tarefa simples e de r pido desenvolvimento A figura 63 apresenta o c digo do registro do MBean public void init throws Exception mbean new MBeanCombinacoes getMBeanServer registerMBean mbean new ObjectName mbeans comb toy com type MBeanC
86. private synchronized long getNextSeqNumber 1 return seqNumber private long seqNumber private final NotificationBroadcasterSupport broadcaster new NotificationBroadcasterSupport public int getNumAnagramasResolvidos return numAnagramasResolvidos private long startTime public void startThinking startTime System currentTimeMillis public void stopThinking numAnagramasResolvidos long stopTime System currentTimeMillis tempoGastoPensando int stopTime startTime 1000 Notification notification new Notification AttributeChangeNotification ATTRI BUTE CHANGE Es Anagrama Resolvido broadcaster sendNotification notification 42 82 Figura 29 C digo completo da classe MBeanStatus Anagrama ap s altera es Nas se es anteriores foram explicadas a cria o de um Projeto de um Jogo de Anagramas e a implementa o de um MBean padr o que enfocou duas partes a cria o de atributos e de opera es m todos da ger ncia e a cria o de opera es m todos para permitir atualiza es no estado do MBean Na se o seguinte apresentada a cria o de JUnit de teste para verificar o funcionamento dos atributos e opera es m todos do MBean Esse teste permite saber se o MBean criado est funcionando corretamente 3 5 Criando um JUnit de Teste para o MBeans O JUnit um ambiente de teste de m dulos de c digos Java que s
87. ra 60 Tela do JConsole na aba Memory 74 4 Teste Realizado As subse es seguintes ir o representar o teste realizado com a execu o de cada etapa necess ria para o desenvolvimento do gerenciamento de uma aplica o Java Para o desenvolvimento da aplica o gerenci vel e dos recursos de gerenciamento foi utilizada a IDE NetBeans As etapas abordadas a seguir foram baseadas no exemplo apresentado na se o 3 O objetivo espec fico do teste o de realizar o gerenciamento e an lise de uma simples aplica o que consuma muitos recursos f sicos computacionais possibilitando a f cil percep o do consumo dos recursos utilizados 4 1 Defini o e Implementa o da Aplica o Java Nesta etapa realizou se a an lise e defini o da aplica o a ser gerenciada Dentre v rias aplica es analisadas foi escolhida uma aplica o que apresenta o m ximo de combina es poss veis do acontecimento de um evento determinado por um usu rio A aplica o analisa o maior n mero de combina es poss veis Ela simplesmente receber a quantidade de n meros que ser o comparados entre 2 a 5 e tamb m os n meros que ser o comparados Esta aplica o foi implementada e testada antes de iniciar a implementa o das classes de gerenciamento A figura 61 apresenta o principal trecho do c digo da aplica o que ser gerenciado pelo JMX Esta etapa poderia ser desnecess ria caso n o fosse um teste objetivo Para isso
88. sitando apenas a instrumenta o dos recursos que se deseja gerenciar 3 2 Criando um MBean para a Aplica o Nesta se o ser exemplificada a cria o de um JMX MBean que instrumentar recursos da aplica o e que permitir a monitora o do tempo gasto pelo usu rio para resolver o problema de um novo anagrama Para iniciar a cria o do MBean deve se escolher a op o New File no menu File ou utilizar a tecla de atalho Ctrl N A figura 15 apresenta a tela de execu o do NetBeans com o menu File expandido 4 NetBeans IDE 5 0 AnagramaGerenciavel DEN Edit view Navigate Source Refactor Build Run CVS Management Tools Window Help E New Project Ctrl Shift N 7 New File CHIN Poe Ctrl Shift 0 n nt Proje Close AnagramaGerenciavel Open File Ctrl O Set Main Project U AnagramaGerenciavel Properties pe i Refresh All Files Page Setup Print CHIP Print to HTML i L quessedWord ctionPerformed ActionEs initComponents gt initManagement O main Strinol args S nevtTrial ctionPerformedi ctionFwent ewt Fitters 8 ic EC JUnit Test Results a p Welcome x E Anagrams java X a wordLibrary java x care e renege import java awt Dimension import java avt Point import java awt Toolkit 9 import java amt event ActionListener 10 import java awt event WindowListen
89. ssenciais que permitir o o teste do MBean gerado anteriormente e tamb m ser abordada a execu o do teste do JUnit Inicialmente deve se adicionar uma declara o simples em cada caso de teste Para cada atributo do MBean uma opera o m todo no formato test NomeAtributo Attribute ser gerada Nos m todos os atributos do MBean ser o obtidos e analisados Para a realiza o do teste faz se necess ria a altera o do c digo da classe do JUnit MBeanStatusAnagramaTest java Deve se realizar a substitui o manual do c digo no m todo testTempoGastoPensandoAttribute Substitui se a chamada fail The test case is empty por assertTrue O tempo gasto analisado deve ser igual a 0 val 0 e no m todo testNumAnagramasResolvidosAttribute substitui se a chamada fail The test case is empty por assertTrue O n mero de Anagramas resolvidos deve ser igual a 0 val 0 Para cada opera o m todo do MBean uma opera o m todo no formato test NomeOperacao Operation ser gerada no JUnit Neste m todo a opera o ser chamada Para a realiza o do teste fazem se necess rias altera es no c digo da classe do JUnit MBeanStatusAnagramaTest java Deve se realizar a substitui o manual do c digo no m todo testZerarTodosOperation e faz se necess ria a altera o da chamada fail The test case is empty para assertTrue M todo invocado com sucesso true
90. t the terms in the license agreement InstallShield Figura 6 Tela com a licen a de uso do NetBeans Logo ap s necess rio indicar o local de instala o do NetBeans no computador Por padr o ele vem com DiretorioRaiz DiretorioDeProgramas netbeans 5 0 semelhante ao caminho apresentado na figura 7 Para confirmar a op o do diret rio e instalar o NetBeans no local indicado deve se selecionar o bot o Next 18 18 NetBeans IDE 5 0 Installer Click Next to install NetBeans IDE 5 0 to this directory or click browse to install to a different directory You must choose a new or an empty directory where you have write permission Directory Name CArquivos de programasinetbeans 5 0 Browse InstallShield Figura 7 Tela de escolha de diret rio de instala o do NetBeans Em seguida necess rio selecionar a vers o do J2SE JDK que se deseja utilizar como compilador dos programas que ir o rodar no NetBeans Para isso deve se indicar o local onde o Java est instalado Por padr o ele ja ir listar as vers es existentes no computador de modo semelhante lista apresentada na figura 8 sendo que se deve escolher a vers o mais recente Para confirmar a op o selecionada deve se selecionar o bot o Next 19 18 NetBeans IDE 5 0 Installer Select a Java 2 Standard Edition JDK installed on your machine from the list below You can pick a different JDK by typing in its installa
91. tion directory or using the Browse button J2SE JDK 1 4 2 or later is required J2SE JDK Home Directory C Arquivos de programasiavaljdk1 5 0 08 Browse List of suitable J2SE JDKs found on this machine C Arquivos de programasWavaljdk1 5 0_08 vw 1 5 0 08 InstallShield Figura 8 Tela de escolha do compilador JDK Aparecer uma tela informando o local selecionado para instala o e o espa o total em disco que o NetBeans ocupar Para prosseguir com a instala o necess rio selecionar o bot o Next Posteriormente dever aparecer uma tela do assistente informando a conclus o da instala o Por fim deve se selecionar o bot o Finish 2 2 3 Configura o do NetBeans O NetBeans necessita de um pacote de atualiza o para fornecer um ambiente de desenvolvimento de aplica es de gerenciamento remoto utilizando a API JMX Para a atualiza o faz se necess rio que o computador esteja conectado com a Internet uma vez que ela ser transferida de um servidor externo pertencente ao netbeans org Em seguida com o NetBeans aberto deve se escolher a op o Update Center que se encontra no menu Tools como exibe a figura 9 20 NetBeans IDE 5 0 File Edit View Navigate Source Refactor Build Run CYS EEAS Window Help E f Javadoc Index Search Shift F 1 p Internationalization gt Projects x Files Runtime Welcome Java Platform Manager Server Manager NetBeans Pl
92. ts gridBagConstraints fill java awt GridBagConstraints HORI ZONTAL gridBagConstraints anchor java awt GridBagConstraints WEST gridBagConstraints insets new java awt Insets 0 0 12 6 mainPanel add scrambledLabel gridBagConstraints scrambledWord setColumns 20 scrambledWord setEditable false gridBagConstraints new java awt GridBagConstraints gridBagConstraints gridwidth java awt GridBagConstraints REMAINDER gridBagConstraints fill java awt GridBagConstraints HORI ZONTAL gridBagConstraints weightx 1 0 gridBagConstraints insets new java awt Insets 0 0 12 0 mainPanel add scrambledWord gridBagConstraints guessLabel setDisplayedMnemonic Y guessLabel setLabelFor guessedWord guessLabel setText Your Guess gridBagConstraints new java awt GridBagConstraints gridBagConstraints fill java awt GridBagConstraints HORI ZONTAL gridBagConstraints anchor java awt GridBagConstraints WEST gridBagConstraints insets new java awt Insets 0 0 20 6 mainPanel add guessLabel gridBagConstraints guessedWord setColumns 20 gridBagConstraints new java awt GridBagConstraints gridBagConstraints gridwidth java awt GridBagConstraints REMAINDER gridBagConstraints fill java awt GridBagConstraints HORI ZONTAL gridBagConstraints weightx 1 0 86 92 gridBagConstraints insets new java awt Insets 0 0 20 0 93 mainPanel add guessedWord gridBagC
93. tusAnagramaTest java criada anteriormente A seguir deve se selecionar a op o Run MBeanStatusAnagramaTest java localizada em Run File no menu Run ou utilizar a tecla de atalho Shift F6 A figura 34 apresenta a tela do NetBeans com o menu Run 55 55 expandido e a op o Run MBeanStatusAnagramaTest java selecionada 49 A NetBeans IDE 5 0 AnagramaGerenciavel File Edit view Navigate Source Refactor Build MN CYS Management Tools Window Help 8 B 5 9 lt P Run Main Project F6 E gt op EN 2 YE Debug Main Project FS sl Projects x Files Runtime Test AnagramaGerenciavel Alt F6 a MBeanStatusAnagramatest java X MLC KZ IE amp AnagramaGerenciavel Run File K A Gq Source Packages TEM E Attach Debugger Test Packages p so E com toy anagrams lib aloe lt com toy anagrams mbeans D Pause Z MBeanStatusAnagramaTest java gt Continue E a Libraries E new Stringl a 7 H E Test Libraries amp Step Into F7 Object 4 Run to Cursor F4 F ee peration oar arams signature Stack Toggle Breakpoint Ctri F8 code below by replacing the default call to fail Navigator testZerarTodosOperation New Breakpoint Ctri Shift F8 wocado com sucesso true Members View QD New Watch Ctrl Shift F7 MBeanStatusAnagramaTest String testName ut O createMBean E 3 getattribute String atthlame E Run
94. ulo JMX no NetBeans Conclu da as etapas citadas nas subse es 2 2 1 2 2 2 e 2 2 3 o ambiente de desenvolvimento de aplica es com a utiliza o da API JMX estar preparado para uso na realiza o do exemplo e teste 24 3 Exemplo de Utiliza o do JMX no NetBeans O m dulo NetBeans JMX permite o desenvolvimento r pido de aplica es de ger ncia a inclus o de ger ncia s aplica es existentes o desenvolvimento de aplica es gerenci veis e implementa o de um monitor de estado da m quina virtual Java JVM NETBEANS 2006 online O NetBeans disponibiliza um exemplo de projeto para o uso do JMX um jogo de anagramas que se apresenta como um objeto de teste de desempenho para a API JMX O exemplo fornece classes do jogo implementadas e interfaces para o gerenciamento O Jogo de Anagramas representado pela classe Anagrams java consiste na apresenta o um conjunto de palavras misturadas no campo Scrambled Word Palavras Misturadas que dever ser reapresentado pelo usu rio de forma significativa ou seja no formato de uma palavra com o mesmo n mero de letras e usando as mesmas letras oferecidas Por exemplo se as letras fornecidas s o obtrasat o usu rio dever encontrar a palavra abstrato e digit la no campo Your Guess Sua Suposi o O Jogo de Anagramas fornece as seguintes op es ao usu rio Guess Suposi o para confirmar uma suposi o e New Word Nova Palavra a fim de que a
95. uporte a sistemas distribu dos e implementa o de multithreaded INDRUSIAK 1996 p 3 5 O J2SE inteiramente gr tis e possui sua licen a baseada na Java Internal Use License A API JMX est inserida no pacote do J2SE assim como diversas outras API s como pode ser visto na figura 2 que apresenta a plataforma Java Standart Edition Java Platform Standard Edition java SE Figura 2 Plataforma Java Standart Edition SUN 2006 online A figura 2 apresenta a plataforma Java Standart Edition que ser instalada para a implementa o de aplica es gerenci veis Nela poss vel visualizar o n vel em que se 14 encontra a biblioteca da API JMX A Plataforma Java Standart Edition possui internamente dois kits o primeiro JDK J2SE Development Kit fornece a linguagem Java e ferramentas de desenvolvimento o segundo JRE J2SE Runtime Environment fornece um conjunto de bibliotecas componentes adicionais e a Maquina Virtual Java Todos os recursos gerenciados pela API JMX necessitam do kit JRE instalado no computador para funcionar normalmente A versio J2SE Development Kit 5 0 Update 8 a mais recente at o momento de elabora o deste documento Para instalar o J2SE primeiramente necess rio acessar o endere o www sun com br Em seguida deve se selecionar a op o Downloads e finalmente transferir uma c pia do programa pela op o J2SE TM Development Kit 5 0 Update 8 Ap s a tra
96. uxiliar na tomada de decis es na redu o de custos proporcionando uma maior praticidade na ger ncia e um melhor desempenho e estabilidade do sistema A API JMX Java Management Extensions Extens es de Gerenciamento Java uma tecnologia que apresenta meios para suprir a necessidade de gerenciamento de aplica es e recursos de redes de computadores em plataformas distintas baseando se na JVM Java Virtual Machine M quina Virtual Java Neste documento ser abordado o gerenciamento de aplica es e recursos utilizando a API JMX Para isso ser o apresentados conceitos iniciais sobre essa API bem como sobre sua arquitetura sua instala o que baseada no kit J2SE exemplo de uso e teste de funcionamento Como exemplo ser usada uma aplica o de um Jogo de Anagramas que foi retirado do site do Netbeans org e para o teste ser usada uma aplica o de an lise combinat ria teste este desenvolvido a partir do conhecimento adquirido atrav s do exemplo do Jogo de Anagramas Dentre os conceitos b sicos da API JMX ser o abordadas as informa es iniciais as funcionalidades e a sua arquitetura que proporcionar o subs dios para um melhor entendimento do funcionamento interno da API A instala o do J2SE Java 2 Standart Edition kit com o compilador Java e a IDE de desenvolvimento NetBeans ser o abordados neste documento para prover o ambiente de utiliza o e teste da API JMX O exemplo do desenvolvimento d
97. x 6 guessedWord setText 7 getRootPane setDefaultButton guessButton 8 9 guessedWord requestFocusinWindow 10 11 Notify MBean to store start time 12 try 13 com toy anagrams agent Agente MX getDefault 14 getMBeanStatusAnagrama startThinking 15 catch Exception e e printStackTrace 16 Figura 51 M todo initManagement da classe Anagrams java 1 private void guessedWordActionPerformed java awt event ActionEvent evt 64 2 if WordLibrary isCorrect wordidx guessedWord getText 1 3 4 feedbackLabel setText Correct Try a new word 5 getRootPane setDefaultButton nextTrial 6 7 Notify MBean that the user has resolved Anagram 8 try 9 com toy anagrams agent Agente MX getDefault 10 getMBeanStatusAnagrama stopThinking 11 catch Exception e e printStackTrace 12 13 else 14 feedbackLabel setText Incorrect Try again 15 guessedWord setText 16 17 18 guessedWord requestFocusinWindow 19 Figura 52 M todo initManagement da classe Anagrams java Ao finalizar a substitui o dos m todos ser conclu da a liga o da camada JMX com a camada de aplica o ap s esta etapa a aplica o estar preparada para ser monitorada por uma aplica o de gerenciamento 3 10 Gerenciamento da Aplica o via JConsole O JConsole uma ferramenta de gerenciamento e monitoramento de aplica es e
Download Pdf Manuals
Related Search
Related Contents
Guide d`interprétation des rapports d`observance logiciels Encore Manuel d`utilisateur du canal de transfert Isabel Tecumseh THG1374YXA Performance Data Sheet 6. Inquiry Board - Georgia Christian University Minimate User manual Fujitsu Siemens Computers Primergy RX220 User's Manual Élastique de musculation pour porte Mode d`emploi Copyright © All rights reserved.
Failed to retrieve file