Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG



Podobne dokumenty
Aplikacje biznesowe Wykład dla studentów Informatyki Stosowanej

JAX-RS czyli REST w Javie. Adam Kędziora

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Aplikacje RMI Lab4

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Aplikacje RMI

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Visual VM, Java Management extension i inne ciekawostki

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Programowanie Komponentowe WebAPI

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Dostęp do komponentów EJB przez usługi Web Services

Enterprise JavaBeans

SYSTEM MONITORINGU PARAMETRÓW WĘZŁÓW PRZECHOWYWANIA DANYCH DLA PROJEKTU KRAJOWY MAGAZYN DANYCH PODRĘCZNIK DEWELOPERA

Systemy Rozproszone - Ćwiczenie 6

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Skalowanie i monitorowanie działania systemu dlibra 5.0

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Klasy abstrakcyjne, interfejsy i polimorfizm

Komponenty sterowane komunikatami

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Tworzenie i wykorzystanie usług sieciowych

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Programowanie obiektowe

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Dokumentacja do API Javy.

Programowanie komponentowe 5

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Laboratorium Programowania Kart Elektronicznych

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Projekt SGI. WP 3.1 Wirtualne laboratorium i teleimersja Jacek Cała. (cala@ics.agh.edu.pl) (luke@ics.agh.edu.pl) Łukasz Czekierda

Klasy abstrakcyjne i interfejsy

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

Dokumentacja techniczna API systemu SimPay.pl

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Badania poziomu bezpieczeństwa portalu dostępowego do infrastruktury projektu PL-Grid

Tworzenie i wykorzystanie usług

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

AKADEMIA GÓRNICZO-HUTNICZA Wydział Elektrotechniki, Automatyki, Elektroniki i Informatyki

Szczegółowy opis zlecenia Plugin do oprogramowania dlibra. Szczegółowy opis zlecenia dla Pluginu do oprogramowania dlibra.

Michał Jankowski. Remoting w.net 2.0

Virtual Grid Resource Management System with Virtualization Technology

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Marcin Heliński, Cezary Mazurek, Tomasz Parkoła, Marcin Werla

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zaawansowane aplikacje WWW - laboratorium

Systemy rozproszone. Dr inż. L. Miękina. Department of Robotics and Mechatronics AGH University of Science and Technology 1/1

Programowanie rozproszone w języku Java

WebNotarius. Specyfikacja techniczna komunikacji z usługą WebNotarius. wersja 1.1

UML a kod. C++, Java i C#

Usługa TimerService

Wzorce logiki dziedziny

1. Co będzie wynikiem wykonania poniŝszych instrukcji? g2d.gettransform().scale(1, -1); g2d.gettransform().translate(4, -8); g2d.drawline(4, 0, 4, 4);

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Java Server Faces narzędzie do implementacji w wy prezentacji

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji.

Programowanie obiektowe

Programowanie obiektowe

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

SOAP. Autor: Piotr Sobczak

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Programowanie obiektowe

Przykład -

Programowanie obiektowe

Enkapsulacja, dziedziczenie, polimorfizm

Budowa aplikacji wielowarstwowych. Obsługa zdarzeń

public - może być używana w kodzie poza klasą, jedna klasa ModyfikatorKlasy może być kombinacją wyrażeń:

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Interfejsy w Javie. Przykład zastosowania interfejsów:

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

Programowanie obiektowe

EJB 2.x oraz zmiany w standardzie dla EJB 3.0. Michał Stanek

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Programowanie obiektowe

Transkrypt:

Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Marcin Werla mwerla@man.poznan.pl PCSS/Poznań JUG

Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku JMX w projekcie dlibra Podsumowanie

Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku JMX w projekcie dlibra Podsumowanie

Wprowadzenie Typowe zastosowania JMX Analiza i zmiana konfiguracji aplikacji Zbieranie i udostępnianie statystyk działania aplikacji Powiadamianie o zmianach stanu aplikacji i (potencjalnych) problemach

Wprowadzenie Architektura JMX Poziom instrumentacji zawiera obiekty MBeans i zarządzane/monitorowane przez nie zasoby Poziom agentów zawiera agenty JMX kontrolujące MBeans i udostępniające je zewnętrznym klientom Poziom zarządzania (Poziom usług rozproszonych) zawiera komponenty umożliwiające zarządzanie MBean-ami

Java Management Extensions Instrumentation and Agent Specification, v1.2

Specyfikacje / implementacje J2SE 5.0 wspiera JMX 1.2 i JMX Remote API 1.0 (JSR 160 RI) Dla J2SE 1.4 można pobrać JMX RI osobno Java Dynamic Management Kit (Java DMK) 5.1 komercyjna implementacja SUN Microsystems MX4J (SourceForge) jedna z najpopularniejszych implementacji na licencji open-source

Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku JMX w projekcie dlibra Podsumowanie

Poziom instrumentacji Managed Beans (MBeans) Specyfikowane przez: Atrybuty Operacje Notyfikacje Rodzaje: Standard MBeans Dynamic MBeans Open MBeans Model MBeans

Standard MBean Własny interfejs HelloWorldMBean Klasa HelloWorld implementująca ten interfejs Funkcjonalność zdefiniowana w interfejsie za pomocą nazw metod Atrybuty za pomocą get / set Reszta to operacje

Notyfikacje Notification NotificationListener NotificationFilter NotificationBroadcaster NotificationEmitter NotificationBroadcasterSupport

Dynamic MBean Klasa implementująca interfejs DynamicMBean Określenie funkcjonalności MBeana poprzez wywoływanie metod Atrybuty i operacje są dostępne pośrednio przez metody interfejsu

Dynamic MBean getmbeaninfo(): MBeanInfo getattribute( attribute:string ): Object getattributes( attributes:string[] ): AttributeList setattribute( attribute:attribute ): void setattributes( attributes:attributelist ): invoke( actionname:string,params:object[], signature:string[] ): Object

Open MBean Implementuje DynamicMBean Wszystkie atrybuty, argumenty metod i obiekty zwracane muszą być jednego z podstawowych typów: java.lang.void, java.lang.short, java.lang.boolean, java.lang.integer, java.lang.byte, java.lang.long, java.lang.character, java.lang.float, java.lang.string, java.lang.double, java.math.bigdecimal, java.math.biginteger, java.util.date, javax.management.objectname, javax.management.openmbean.compositedata (interface), javax.management.openmbean.tabulardata (interface) Implementacja metody getmbeaninfo musi zwracać obiekt klasy implementującej interfejs OpenMBeanInfo

Open MBean Wszystkie wartości zwracane przez obiekt OpenMBeanInfo muszą zawierać poprawne, nie puste dane, przeznaczone do wyświetlania użytkownikom Musi być znany sposób działania każdej z operacji: ACTION, INFO, ACTION_INFO

Open MBean Klasy do przechowywania metadanych OpenMBeanInfo OpenMBeanOperationInfo OpenMBeanConstructorInfo OpenMBeanParameterInfo OpenMBeanAttributeInfo Istnieją Support Classes

Model MBean Nowe metody setmodelmbeaninfo(mbi: MBeanInfo) setmanagedresource(mr: Object, mr_type: String) Dziedziczy po DynamicMBean, PersistentMBean (metody load() i store()), ModelMBeanNotificationBroadcaster Metoda getmbeaninfo zwraca obiekty ModelMBean*

Przykład public interface HelloMBean { public void setmessage(string message); public String getmessage(); } public void sayhello();

Przykład public class Hello implements HelloMBean { private String message = null; public Hello() { message = "Hello there"; } public Hello(String message) { this.message = message; } public void setmessage(string message) { this.message = message; } public String getmessage() { return message; } public void sayhello() { System.out.println(message); } }

Przykład import javax.management.*; import java.lang.management.*; public class SimpleAgent { private MBeanServer mbs = null; public SimpleAgent() { mbs = ManagementFactory.getPlatformMBeanServer(); Hello hellobean = new Hello(); ObjectName helloname = null; try { helloname = new ObjectName("SimpleAgent:name=hellothere"); mbs.registermbean(hellobean, helloname); } catch(exception e) { e.printstacktrace(); } } public static void main(string argv[]) { SimpleAgent agent = new SimpleAgent(); System.out.println("SimpleAgent is running..."); SimpleAgent.waitForEnterPressed(); } }

Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku JMX w projekcie dlibra Podsumowanie

MX4J Pracuje na poziomie instrumentacji i agentów Ułatwia implementację MBean-ów Dodaje obsługę protokołów: SOAP Hessian Burlap

MC4J Klient JMX Pracuje na poziomie zarządzania Nie jest doskonały, ale nie ma (?) lepszych Ciekawe panele kontrolne

Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku JMX w projekcie dlibra Podsumowanie

Co to jest dlibra? Pierwsze polskie oprogramowanie do budowy bibliotek cyfrowych Rozwijane w PCSS od 1999 r. Strona projektu: http://dlibra.psnc.pl/ Instalacje: http://www.wbc.poznan.pl/ http://dlib.bg.pwr.wroc.pl/

http://www.wbc.poznan.pl/

Szczegóły techniczne Napisane w Javie (RMI, Servlets, JMX, JNLP, Swing, JAXP, JAXB, Applets, ) Wykorzystywane oprogramowanie: Lucene, Velocity, Hibernate, Commons, Java Service Wrapper, Ehcache, Aktualna wersja: 1.6.1 Następna wersja: 2.0 (Czerwiec 2005)

dlibra Architecture Readers HTTP OAI-PMH Web Server Search Server Metadata Server System Services User Server Librarians Distributed Search Server Admini strators Event Server Content Server Java RMI

Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku JMX w projekcie dlibra Podsumowanie

Podsumowanie JMX Wygląda pozornie skomplikowanie Daje duże możliwości monitorowania i zarządzania Pracę ułatwia skorzystanie z dodatkowych bibliotek Trudno znaleźć klienta JMX, który daje pełne możliwości technologii

Podsumowanie http://java.sun.com/products/javamana gement/ http://java.sun.com/developer/technical Articles/J2SE/jmx.html http://mx4j.sourceforge.net/ http://mc4j.sourceforge.net/

Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Dziękuję za uwagę Pytania?