Upravljanje mrežom i uslugama (paradigme i arhitekture)
Upravljanje mrežom i uslugama (paradigme i arhitekture)
Upravljanje mrežom i uslugama (paradigme i arhitekture)
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Sadržaj predavanja<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
<strong>Upravljanje</strong> mrežom i <strong>uslugama</strong><br />
(<strong>paradigme</strong> i <strong>arhitekture</strong>)<br />
<strong>Upravljanje</strong> temeljeno na Java jeziku<br />
1. Osnovni pojmovi i principi<br />
2. Internet SNMP upravljanje<br />
3. OSI/TMN<br />
4. CORBA/TMN<br />
5. <strong>Upravljanje</strong> temeljno na Web tehnologijama<br />
6. DMTF upravljanje<br />
7. <strong>Upravljanje</strong> temeljeno na Java jeziku<br />
8. Primjena mobilnog koda u upravljanju<br />
9. <strong>Upravljanje</strong> temeljno na politikama<br />
10. Primjena inteligentnih agenata u upravljanju<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
2<br />
Značenje pojma "Java Based Management" (1)<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• <strong>Upravljanje</strong> temeljeno na Java programskom jeziku (Java Based<br />
Management) je širok pojam i može značiti sljedeće:<br />
• Upotreba Java programskih komponenata za upravljanje Java aplikacijama<br />
– instrumentalizacija Java aplikacija.<br />
• Upotreba inherentnih mogućnosti Java jezika - udaljeno i dinamičko<br />
punjenje (load-anje) programskih modula što omogućava realizaciju<br />
dinamičkog delegiranja upravljačkih poslova i mobilnosti. Svi entiteti u<br />
sistemu upravljanja opremljeni Java interpreterom (Java Virtual Machine,<br />
JVM) imaju mogućnost dinamičkog punjenja Java koda.<br />
Značenje pojma "Java Based Management" (2)<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Upotreba Java jezika za razvoj WBM sistema koji prema operateru pružaju<br />
sučelja s appletima.<br />
• Upotreba Java jezika za izradu standardnih upravljačkih komponenata (npr.<br />
Managed Bean, MBean) i alata.<br />
• Upotreba Java radnog okvira (Java Framevork obuhvaća: mogućnosti Java<br />
jezika + biblioteke + alate) za izgradnju međuslojeva (middleware-a) koji<br />
su primjenjivi u domeni upravljanja npr. Java Message Service, JMS; Java<br />
Naming and Directory Interface, JNDI i JINI.<br />
• Upotreba Java radnog okvira za izgradnju Java upravljačkih platforma (te<br />
platforme u pravilu koriste Enterprise JavaBean, EJB komponente).<br />
• Upotreba Java jezika kao okvira za integraciju upravljanja.<br />
3<br />
4
Upravljačke <strong>arhitekture</strong> temeljene na Java-i<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• SunSoft je objavio specifikacije sljedećih upravljačkih arhitektura:<br />
• Java Management API Architecture, JMAPI 1996. JMAPI je skup alata i<br />
uputa za izgradnju upravljačkih appleta koji se u radu oslanjaju na Java<br />
RMI. Također, JMAPI pruža bogatu biblioteku grafičkih komponenata<br />
(widgets komponente specijalizirane za GUI-e upravljačkih platformi).<br />
JMAPI sadrži i specifikaciju preslikavanja SNMP MIB 2 varijabla u Java<br />
objekte.<br />
• 1999. JMAPI je zamijenjen s Java Management eXtensions, JMX<br />
arhitekturom. JMX pruža upute za razvoj objektno usmjerenih Java<br />
upravljačkih aplikacija koje intenzivno koriste Web tehnologiju. JMX je u<br />
nastavku opisana.<br />
• Java Dynamic Management Kit, JDMK – Sun-ova komercijalna ponuda alata<br />
i biblioteka koje olakšavaju razvoj JMX aplikacija. Postoji SNMP-to-Java<br />
prevoditelj koji objekte definirane u SNMP MIB-u pretvara u MBeans<br />
komponente kakve se mogu smještati u ljusku JMX agenta.<br />
• Federated Management Architecture, FMA specifikacija v1.0 Jan. 2000.<br />
obuhvaća Jiro, Jini, Federated Beans v1.<br />
Java Management eXtensions, JMX<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• JMX + JDMK + Java radni okvir predstavlja arhitekturu i tehnologiju<br />
za razvoj efikasnih, raspodijeljenih i modularnih upravljačkih<br />
rješenja koja intenzivno koriste Web tehnologiju. Osnovna ideja<br />
vezana za JMX je mogućnost upravljanja resursima bez obzira na tip tj.<br />
implementaciju upravitelja. Upravitelj može biti SNMP, OSI/TMN,<br />
WBEM, … ili pak JMX usklađeni upravitelj što je ilustrirano referentnim<br />
modelom.<br />
• JMX arhitektura se temelji na upotrebi Java programskih komponenata.<br />
JavaBean model je standardni model za izradu Java komponenata. JMX<br />
predviđa upotrebu Java Management Beans, MBeans komponenata. To<br />
su JavaBean komponente specijalizirane za upotrebu u upravljanju.<br />
• JMX predstavlja odlično rješenje za instrumentalizaciju Java aplikacija.<br />
Java je jednostavna za upotrebu i pruža bogat radni okvir. Nedostatak<br />
je: nedorađeni JMX model obavješćivanja i model za dodjelu<br />
globalno jedinstvenih naziva te slabije performanse u izvođenju što<br />
predstavlja važne elemente za sistem upravljanja.<br />
5<br />
6<br />
Referentni model<br />
JMX<br />
upravitelj<br />
Komunikacijska infrastruktura: RMI, HTTP, SNMP, ...<br />
Komunikacijs ki s ervis i:<br />
Trans port:<br />
Opći s ervis i: Service MBean, JNDI, JDBC<br />
GUI, CLI<br />
RMI<br />
HTTP<br />
Arhitektura: JMX upravljanje<br />
SNMP<br />
upravitelj<br />
Inform ac ijs ki m o de l: MBean<br />
SNMP<br />
MBean<br />
Connector<br />
JMX agent<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
Upravljani<br />
re s urs i<br />
instrumentalizacija<br />
MBean<br />
HTML<br />
Adapter<br />
SNMP<br />
Adapter<br />
Organizacijski model (1)<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• JMX sistem upravljanja sastoji se od sljedećih entiteta (sl):<br />
• JMX agenata (JMX Agent). JMX agent je proces koji se izvodi u<br />
sklopu JVM. Njegova osnovna komponenta je MBean server (MBean<br />
Server). Server omogućava registriranje različitih vrsta MBean<br />
komponenata. To mogu biti MBean komponente koje predstavljaju:<br />
• upravljane objekte (Managed Object Mbeans, MBeans),<br />
• servise agenta (Agent Service Mbeans, Agent Services),<br />
• protokol adaptere (Protocol Adapter Mbeans, Protocol Adapters) i<br />
• konektore (Connector Mbeans, Connectors).<br />
Dakle, MBean komponenta može biti namijenjena<br />
instrumentalizaciji upravljanog resursa, ali to može biti bilo koji<br />
servisni modul koji se koristi u sklopu JMX agenta.<br />
• različitih vrsta upravitelja i upravljačkih aplikacija .<br />
7<br />
8
Organizacijski model (2)<br />
Manager<br />
Level<br />
Agent<br />
Agent<br />
Level<br />
Instrumentation<br />
Level<br />
JMX<br />
Manager<br />
Connector Connector Protocol Adapter Protocol Adapter<br />
MBean Server<br />
Java Virtual<br />
Machine<br />
Service Service<br />
MBean MBean<br />
MBean<br />
JMX<br />
Application<br />
MBean<br />
HTML<br />
MBean<br />
Service<br />
MBean<br />
MBean<br />
SNMP<br />
XML<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
MBean<br />
Legacy<br />
Services<br />
(additional<br />
Management<br />
protocol<br />
APIs)<br />
SNMP<br />
Manager<br />
API<br />
WBEM<br />
Manager<br />
API<br />
TMN<br />
Manager<br />
API<br />
Informacijski model<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• JMX arhitektura sadrži tzv. instrumentalizacijsku razinu<br />
(Instrumentation Level) koja definira pravilo prema kojem se upravljivi<br />
resursi moraju instrumentalizirati kako bi bili "JMX upravljivi" tj.<br />
upravljivi u JMX sistemu. Pravilo je sljedeće: "upravljiva svojstva<br />
resursa – atributi i ponašanje - moraju se modelirati kao MBean<br />
komponenta". MBean je pojam koji se odnosi na implementaciju<br />
(programska Java komponenta). Međutim, isti pojam predstavlja i<br />
entitet u informacijskom modelu - upravljani objekt tj. apstrakciju<br />
upravljivog resursa. U tom slučaju MBean označava samo upravljačko<br />
sučelje resursa specificirano u Java jeziku pomoću ključne riječi<br />
interface ili u UML jeziku. MBean je dakle upravljani objekt u<br />
informacijskom modelu JMX <strong>arhitekture</strong> upravljanja.<br />
• Za instrumentalizaciju resursa potrebno je:<br />
• specificirati upravljačko MBean sučelje,<br />
• specificirati klasu MBean komponente koja implementira MBean sučelje,<br />
• pokrenuti JMX agent,<br />
• kreirati primjerak MBean komponente i registrirati primjerak kod MBean<br />
servera.<br />
9<br />
10<br />
Pravila za specifikaciju Mbean sučelja<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Prilikom specificiranja MBean sučelja moraju se poštivati sljedeće<br />
konvencije za dodjelu naziva:<br />
• naziv MBean upravljačkog sučelja mora imati isti naziv kao i Java klasa<br />
MBean komponente koja implementira to sučelje sa sufiksom MBean –<br />
classNameMBean,<br />
• atributi upravljanog objekta se u sučelje ugrađuju pomoću odgovarajućeg<br />
para getter i setter metoda – getAttributeName(),<br />
setAttributeName(),<br />
• za metode je dozvoljen bilo koji naziv osim getxxx() i setxxx()<br />
Primjer - Java specifikacija upravljačkog sučelja za<br />
resurs Rep.<br />
public interface QueueMBean {<br />
//atributi<br />
public long getVrijemeCekanjaNaDodavanje();<br />
public long getVrijemeCekanjaNaIzvlacenje();<br />
public int getVelicinaRepa();<br />
public void setVelicinaRepa(int value);<br />
public long getBrojObradjenihEntiteta();<br />
public boolean isRepPopunjen();<br />
public boolean isRepIspraznjen();<br />
public boolean isSuspendiran();<br />
public int getBrojDobavljaca();<br />
public int getBrojPotrosaca();<br />
//operacije<br />
public void reset();<br />
public void suspend();<br />
public void resume();<br />
}<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
11<br />
12
Funkcijski model<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Funkcijski model odnosi se na funkcijsku dekompoziciju JMX agenta.<br />
JMX agent pruža operacije preko kojih se može:<br />
• pristupati vrijednostima i modificirati vrijednosti atributa MBean<br />
komponenata,<br />
• pozivati metode MBean komponenata,<br />
• prikupljati obavijesti od MBean komponenata,<br />
• kreirati primjerke i registrirati nove MBean komponente pod lokalno<br />
jedinstvenim nazivom, a prema zahtjevima od strane upravitelja ili samih<br />
resursa i to na temelju lokalno pohranjenih ili download-anih klasa MBean<br />
komponenata.<br />
• JMX agent se sastoji od sljedećih programskih komponenata: MBean<br />
servera, MBean komponenata koje predstavljaju upravljane objekte,<br />
servisi agenta, protokol adaptera i konektora. Sve komponente u JMX<br />
agentu, osim servera, jesu MBean komponente.<br />
Struktura JMX agenta<br />
Manager-Facing Protocol Adapter MBeans<br />
CMIP SNMP IIOP RMI<br />
Managed Object<br />
Factory Service<br />
Event Filtering<br />
Service<br />
Dynamic Class<br />
Loading Service<br />
Timer Service<br />
Manager Registry<br />
Service<br />
Event Logging<br />
Service<br />
Service Registry<br />
Service<br />
Monitoring<br />
Service<br />
MBean Server<br />
XML/H<br />
TTP<br />
Managed Object<br />
Naming Service<br />
Metadata Access<br />
Service<br />
Native Library<br />
Loading Service<br />
Query Service<br />
M.Let Service Relation Service<br />
...<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
JMX Agent Framework<br />
Managed Object<br />
MBeans<br />
JMX Agent = MBean Server + MBeans + protocol adapters + connectors<br />
Agent Service MBeans<br />
13<br />
14<br />
MBean server<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• MBean server je središnja komponenta u JMX agentu. To je registar<br />
Mbean komponenata koji pružaju upravljačke operacije. Sve<br />
komponente registrirane kod MBean servera postaju vidljive<br />
upravljačkim aplikacijama. Pri tom server upravljačkoj aplikaciji<br />
osigurava samo vidljivost upravljačkog sučelja registrirane MBean<br />
komponente, a nikad referencu na dotičnu komponentu.<br />
• Dodavanje i registriranje MBean komponente je atomna operacija koju<br />
izvodi MBean server. Zahtjev za kreiranje MBean primjerka može doći<br />
od drugog MBean-a (zapravo od drugog upravljanog resursa), samog<br />
agenta ili udaljenog upravitelja.<br />
• Server omogućava povezivanje MBean upravljanih objekata sa servisima<br />
unutar agenta. Pruža polaznu točku za upite prema Agent Naming<br />
Service servisa za pronalaženje MBean upravljanih objekata. Pruža<br />
Service Registry servis koji omogućava dinamički dodavanje novih<br />
servisa u agent.<br />
Managed Object MBeans<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Postoje 4 vrste MBean komponenata koje mogu predstavljati<br />
upravljane objekte u JMX sistemu upravljanja. To su:<br />
• Standard MBean,<br />
• Dynamic MBean,<br />
• Open MBean i<br />
• Model MBean.<br />
15<br />
16
Standard MBean<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Standard MBean je najjednostavniji tip komponente koja predstavlja<br />
upravljani objekt. To je Java klasa koja implementira MBean sučelje<br />
koje je nepromjenjivo tijekom izvođenja.<br />
• Pored ranije navedenih pravila koje je potrebno poštivati prilikom<br />
projektiranja sučelja MBean komponente, postoje i pravila kako se<br />
MBean klasa može specificirati koristeći mehanizam nasljeđivanja.<br />
AMBean<br />
a1<br />
a2<br />
AMBean<br />
a1<br />
a2<br />
implements<br />
A<br />
a1<br />
a2<br />
a3<br />
extends<br />
B<br />
b1<br />
b2<br />
b3<br />
B’s Mgmt Iface : {a1,a2}<br />
extends<br />
A<br />
a1<br />
a2<br />
a3<br />
BMBean<br />
b2<br />
extends<br />
implements<br />
B<br />
b1<br />
b2<br />
b3<br />
B’s Mgmt Iface : {a1,a2,b2}<br />
AMBean<br />
a1<br />
a2<br />
AMBean<br />
a1<br />
a2<br />
A<br />
a1<br />
a2<br />
a3<br />
BMBean<br />
b2<br />
extends<br />
B’s Mgmt Iface : {b2}<br />
BMBean<br />
b2<br />
B’s Mgmt Iface : {a1,a2,b2}<br />
implements<br />
B<br />
b1<br />
b2<br />
b3<br />
implements<br />
B<br />
b1<br />
b2<br />
b3<br />
b1<br />
a2<br />
Primjer - specifikacija klase Standard MBean<br />
komponente.<br />
// MBean upravljacko sucelje<br />
public interface MyHostMBean {<br />
public Integer getMaxNumberOfUsers();<br />
public Features getFeatures();<br />
public void setMaxNumberOfUsers(Integer n);<br />
public void toDefault(); }<br />
// Klasa Standard MBean<br />
public class MyHost implements MyHostMBean<br />
{<br />
public Integer getMaxNumberOfUsers()<br />
{<br />
// ... poziv funkciji instrumentalizacije<br />
// (komunikacija prema realnom resursu) ...<br />
return MaxUsersNumber;<br />
}<br />
....<br />
// obvezan konstruktor<br />
public MyHost(Integer max, String pName){...}<br />
// nije vidljivo preko upravljackog sucelja<br />
public String listName() {return fName;};<br />
}<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
17<br />
18<br />
Dynamic MBean<br />
Dynamic MBean metadata<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Dinamički MBean omogućava pregled (introspekciju) upravljačkog<br />
sučelja tijekom izvođenja. Java klasa MBean komponente implementira<br />
posebno DynamicMBean sučelje. JMX server preko tog općeg sučelja<br />
indirektno otkriva atribute i metode koje komponenta sadrži.<br />
• Na slici je prikazana klasa Dynamic MBean komponente.<br />
<br />
DynamicMBean<br />
<br />
KlasaMBeanKomponente<br />
(Atributi i metode klase<br />
resursa)<br />
+<br />
Management &<br />
Introspection methods<br />
generičko s učelje<br />
• Ne postoje nikakva<br />
ograničenja na nazive<br />
metoda Dynamic MBean<br />
komponente, a ne<br />
postoji ni problem<br />
nasljeđivanja jer je<br />
sučelje predstavljeno<br />
indirektno preko<br />
getMBeanInfo()<br />
metode. Povratna<br />
vrijednost ove metode je<br />
primjerak klase<br />
MBeanInfo koja je<br />
prikazana na slici kao<br />
kompozicija čiji su<br />
elementi, primjerci<br />
potklasa klase<br />
MBeanFeatureInfo.<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
MBeanInfo<br />
GetClassName() :String<br />
GetNotifications() :<br />
MbeanNotificationInfo[]<br />
GetAttributes():<br />
MbeanAttributeInfo[]<br />
GetConstructors():<br />
MbeanConstructorInfo[]<br />
GetOperations():<br />
MbeanOperationInfo[]<br />
GetDescription(): String<br />
0..*<br />
MBeanOperationInfo<br />
GetReturnType():String<br />
GetSignature()<br />
MbeanParameterInfo[]<br />
GetImpact():int<br />
0..*<br />
0..*<br />
0..*<br />
MBeanNotificationInfo<br />
GetNotifTypes():String[]<br />
MBeanAttributeInfo<br />
GetType():String<br />
IsReadable():Boolean<br />
IsWritable:Boolean<br />
IsIs():boolean<br />
MBeanConstructorInfo<br />
MBeanParameterInfo GetSignature():MbeanParameterInfo[]<br />
GetType():String<br />
0..*<br />
0..*<br />
MBeanFeatureInfo<br />
GetName():String<br />
GetDescription():String<br />
19<br />
20
Primjer - temeljni elementi u specifikaciji Dynamic<br />
MBean komponente.<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
Open MBean<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Open MBean je posebna vrsta dinamičke MBean komponente. Na<br />
definiciju klase Open MBean komponente se postavljaju ograničenja na<br />
dozvoljene tipove atributa i parametara metoda koji se smiju koristiti.<br />
<br />
DynamicMBean<br />
generičko s učelje<br />
<br />
KlasaMBeanKomponente<br />
Atributi i metode klase resursa<br />
(Limited types)<br />
+<br />
Management & Introspection<br />
methods<br />
21<br />
22<br />
Model MBean<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Ideja vezana za Model MBean komponentu je da vanjska komponenta<br />
npr. upravitelj ili MBean komponenta koja predstavlja dio upravljane<br />
Java aplikacije traži kreiranje primjerka tipa Model MBean. Pri tom<br />
vanjska komponenta mora pružiti sve informacije relevantne za<br />
kreiranje: listu atributa, signature željenih upravljačkih metoda te<br />
skup "callback" metoda koje će se moći pozivati nad Model MBean<br />
komponentom koja predstavlja realni resurs. Informacije za kreiranje<br />
se specificiraju pomoću deskriptora. Za svaki atribut postoji jedan<br />
deskriptor, a isto vrijedi i za svaku operaciju ili obavijest. Deskriptori<br />
se mogu specificirati pomoću XML-a.<br />
Primjer - deskriptor atributa<br />
// DTD d’attribut<br />
<br />
<br />
<br />
<br />
<br />
<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
23<br />
24
Agent Services<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Servisi agenta (Agent Services) jesu MBean komponente koje<br />
omogućavaju izvođenje složenijih upravljačkih operacija nad MBean<br />
upravljanim objektima registriranim unutar MBean servera. Dakle, JMX<br />
arhitektura predviđa uključivanje upravljačke "inteligencije" u agent<br />
čime se olakšava izgradnja suvremenih i efikasnih sistema<br />
upravljanja. Budući da su i servisi MBean komponente, server može u<br />
potpunosti kontrolirati njihov životni ciklus i njihovo funkcioniranje.<br />
Servisi agenta mogu opsluživati samo komponente ugrađene unutar<br />
istog agenta.<br />
• JMX specificira sljedeće osnovne servise:<br />
• Dynamic Class Loading Service,<br />
• Timer Service,<br />
• Monitoring Service (tri tipa praćenja),<br />
• M-Let Service,<br />
• Query Service i<br />
• Relationship Service.<br />
Dynamic Class Loading Service<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Dynamic Class Loading Service – omogućava punjenje novih klasa u<br />
radnu okolinu agenta čime se mogu proširiti sposobnosti agenta (može<br />
se puniti klasa novog MBean-a ili klase dodatnog servisa).<br />
• Java ja projektirana tako da omogućava aplikacijama dinamičko<br />
punjenje definicije klasa (funkcijski sadržaj) lokalno ili s udaljenih<br />
mjesta. Potreban kod se puni i povezuje tijekom izvođenje. To svojstvo<br />
jezika je idealno za realiziranje dinamičkog delegiranja upravljačkih<br />
poslova. Također, server može uvijek raditi s najnovijim inačicama<br />
funkcijskih modula bez potrebe za ponovnim prevođenjem i<br />
pokretanjem.<br />
25<br />
26<br />
Timer Service (1)<br />
Timer Service (2)<br />
addNotification(TimeTick,δ,3)<br />
δ(ms)<br />
TimeTick<br />
addNotification(Alarm,dateTime)<br />
δ(ms)<br />
TimeTick<br />
δ(ms)<br />
TimeTick<br />
Alarm<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Timer Service omogućava prosljeđivanje obavijesti svim pretplatnicima<br />
u specificiranom trenutku. Podržano je istovremeno slanje većeg broja<br />
obavijesti, a obavijesti mogu biti periodičke (Periodic) ili jednokratne<br />
(Unique).<br />
δ(ms)<br />
• Servis funkcionira tako<br />
da se prethodno<br />
omogući dodavanje<br />
obavijesti koje treba<br />
emitirati (1) (sl.<br />
VII.12), a<br />
zainteresiranima da se<br />
pretplate (2).<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
:source1 :timer1 :sink1<br />
CreateTimer<br />
start()<br />
addNotification<br />
(1)<br />
addNewListener<br />
(2)<br />
Notification<br />
•Start(),stop() of timer possible<br />
•isActive() state query<br />
•Additional parameters:<br />
•sendPastNotifications: (bool) si T and if some notifications have been sent before<br />
the start, those notifications are issued, otherwise they are ignored<br />
Notification<br />
27<br />
28
Monitoring Service<br />
Monitoring Service (Counter Monitor)<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Monitoring Service omogućava praćenje vrijednosti atributa na nekoj<br />
MBean komponenti. Može bilježiti vrijednost atributa na dva načina:<br />
• posljednju očitanu vrijednost atributa,<br />
• razliku između dvije posljednje očitane vrijednosti.<br />
• Postoje tri tipa servisa za praćenje:<br />
monitor<br />
• CounterMonitor,<br />
• GaugeMonitor i<br />
counter gauge string error<br />
• StringMonitor.<br />
• Također, postoji više vrsta<br />
threshold<br />
matc hes differs<br />
obavijesti (notifications)<br />
koje monitor servis<br />
high low<br />
može generirati.<br />
Count<br />
offset<br />
Supported types:<br />
Byte,int, short, long<br />
Always >=0<br />
Can only be incremented<br />
Event Event Event<br />
Comparison level<br />
Granularity<br />
period<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
tps<br />
attribute type threshold runtime<br />
mbean<br />
29<br />
30<br />
Monitoring Service (Gauge Monitor)<br />
Monitoring Service (String Monitor)<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
Supported types:<br />
Byte,int, short, long<br />
Searched matching FES<br />
Monitors equality between two strings<br />
Matches<br />
Differs<br />
Matches<br />
Differs<br />
Count<br />
Event Event Event<br />
FES festor FES Olivier JMX<br />
thresholdHighValue<br />
thresholdLowValue<br />
Granularity<br />
Period<br />
tps<br />
31<br />
32
Query Service, M-Let Service i Relation Service<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Query Service omogućava pronalaženje većeg broja MBean<br />
komponenta upotrebom samo jedne operacije:<br />
queryMBeans(ObjectName, QueryExp). Operacija ima dva<br />
parametra: za specificiranje dosega (scope) i filtar.<br />
• Doseg: ObjectName (upotrebom zamjenskih znakova (*) predviđa se<br />
specifikacija uzorka naziva - svi objekti čiji se nazivi podudaraju sa<br />
zadanim uzorkom).<br />
• Filtar: QueryExp je izraz upita. Predviđa se upotreba relacijskih<br />
operatora: and, or, match i operatora nad vrijednostima tipa: string,<br />
attribute i number.<br />
• M-Let je upravljački applet koji omogućava prebacivanje definicije<br />
klase s udaljenog repozitorija Java koda i kreiranje primjerka tj.<br />
instaliranje MBean komponenata. M-Let je servis za napredno<br />
dinamičko punjenje.<br />
• Relation Service omogućava definiranje asocijacija između MBean<br />
upravljanih objekata i održavanje usklađenosti (konzistentnosti) između<br />
tih odnosa.<br />
33<br />
Protocol Adapters & Connectors<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Protokol adapteri i konektori omogućavaju udaljenim upravljačkim<br />
aplikacijama pristup JMX agentu. Preko protokol adaptera i konektora<br />
moguće je:<br />
• dobiti ili promijeniti (get/set) vrijednosti atributa MBean komponenata<br />
registriranih u dotičnom agentu,<br />
• izvoditi operacije na registriranim MBean komponentama,<br />
• kreiranje i registriranje novih primjeraka MBean komponenata,<br />
• prijaviti se i primati obavijesti emitirane od MBean komponenata.<br />
• Protokol adapter (Protocol Adapter, Manager-Facing Protocol<br />
Adapter) je opcionalna komponenta za višejezične agente. Podržava<br />
komunikaciju s agentom preko određenog protokola (npr. SNMP, CMIP,<br />
RPC, RMI, HTTP/XML, IIOP, SSL, itd.). Adaptira operacije određenog<br />
protokola u operacije nad MBean komponentama i MBean serverom.<br />
Također, može izvoditi i konverziju različitih informacijskih modela<br />
(npr. SNMP SMI u MBean objektni model).<br />
• Konektor (Connector) se koristi za povezivanje JMX agenta s<br />
udaljenom upravljačkom aplikacijom koja je također izgrađena u Java<br />
tehnologiji. To su JMX usklađene aplikacije koje koriste servise JMX<br />
agenta.<br />
34<br />
HTTP protokol adapter<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Danas postoje implementirane različite adapterske klase.<br />
• Npr. HTMLAdaptorServer klasa koja predstavlja dio Sun-ovog JDMK,<br />
omogućava upravljanje MBeans-a putem Web pretraživača. I sam<br />
adapter je MBean te je registriran kod MBean servera (2). Klasa<br />
predstavlja HTTP server koji osluškuje na specificiranom portu (1) te<br />
generira HTML stranice putem kojih se može pratiti i kontrolirati rad<br />
resursa instrumentaliziranog kao MBean.<br />
Primjer - pokretanje HTML protokol adaptera<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• In this example, the Adaptor will be listening for HTTP requests on port 8090 of the<br />
machine on which it is running. A new instance of the HTMLAdaptorServer class is<br />
created, passing the specified port number to its constructor. Then an ObjectName is<br />
created for the Adaptor, and it is registered with the MBean server. Finally, the Adaptor is<br />
started. HTMLAdaptorServer implements the Runnable interface (actually, its parent<br />
class, CommunicatorServer, does), so it runs on its own thread. Once the thread is<br />
started (by calling the start() method), the Adaptor is running and awaiting HTTP<br />
requests.<br />
35<br />
36
Početna stranica koju generira adapter<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Na početnoj stranici koju generira adapter nalazi se popis i HTML<br />
linkovi do svih MBeans-a po domenama koji su trenutno registrirani na<br />
dotičnom MBean serveru na kojem je registriran i adapter<br />
Dio stranice za pregled i manipuliranje atributima<br />
MBean-a.<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
37<br />
38<br />
Dio stranice za pregled i pokretanje upravljačkih<br />
operacija MBean-a<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
Upravitelj u JMX arhitekturi<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• Tipični upravitelj u JMX arhitekturi je tzv. "lightweight" upravitelj koji<br />
zahtjeva male procesne i memorijske resurse. Omogućeno je<br />
upravljanje putem Web pretraživača. Svako PC računalo, prijenosnik i<br />
sl. na kojem se može pokrenuti Web pretraživač može postati<br />
upravljačka konzola. Naravno, moguće je koristiti i složene upravljačke<br />
konzole.<br />
39<br />
40
Komunikacijski model<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
• JMX koristi Java tehnologije udaljenog poziva metodi (Remote Method<br />
Invocation, RMI) i serijalizacije (Serialization) objekata kao osnovne<br />
komunikacijske elemente u arhitekturi.<br />
• Serijalizacija objekata predstavlja pretvaranje stanja objekata (nontranzijentnih<br />
varijabla stanja) u niz byte-ova. U takvom formatu je moguće<br />
"hibernirati" objekte na nekom mediju za trajno pohranjivanje podataka ili ih<br />
prebacivati putem mreže na drugu lokaciju.<br />
• U klasičnim arhitekturama upravljanja (Internet, OSI/TMN) predviđa se<br />
upotreba ASN.1 BER serijalizacije. Istraživanja pokazuju da je Java<br />
serijalizacija u prosjeku brža, a rezultati serijalizacije su kompaktniji od<br />
rezultata dobivenih primjenom BER pravila za serijalizaciju. Kao što pruža<br />
mehanizam za povezivanje raspodijeljenih objekata (RMI), tako na nivou<br />
jezika, Java pruža mehanizam za prijenos upravljačkih podataka, ali i<br />
upravljačkih procedura između entiteta u sistemu upravljanja.<br />
• U tzv. "čistom" Java sistemu upravljanja (gdje nema međudjelovanja s<br />
klasičnim sistemima upravljanja) RMI + serializacija se može koristiti kao<br />
upravljački protokol. U heterogenim sistemima postoji potreba za<br />
integracijom. Java predviđa upotrebu eksternalizacije (Externalization). Klasa<br />
koja se može eksternalizirati sadrži read/write metode tj. algoritme za<br />
serijalizaciju/deserijalizaciju prema vlastitim pravilima koji npr. mogu biti<br />
ASN.1 BER.<br />
41<br />
Primjer eksternalizacije<br />
OSNOVE UPRAVLJANJA MREŽOM<br />
public interface ASN1Externalizable extends Externalizable {<br />
public void writeExternal(ObjectOutput out) throws IOException, ASN1EncoderException;<br />
public void readExternal(ObjectInput in) throws IOException, ASN1DecoderException;<br />
public void writeExternalAsPER(ObjectOutput out)<br />
throws IOException, ASN1EncoderException;<br />
public void readExternalAsPER(ObjectInput in) throws IOException, ASN1DecoderException;<br />
}<br />
/* Klasa java objekta može biti projektirana za upotrebu ugrađene<br />
Java serijalizacije ili vlastitog algoritma za serijalizaciju<br />
npr. ASN.1 algoritam za kodiranje/dekodiranje tj. pretvaranje<br />
vrijednosti vlastitih atributa u niz byte-ova)<br />
*/<br />
class AlarmData implements ASN1Externalizable {<br />
public AlarmType alarmType;<br />
public TimeStamp timestamp;<br />
public Severity severity;<br />
public boolean isAcknowledged;<br />
public boolean isCleared;<br />
public void writeExternal(ObjectOutput out) {<br />
// ovdje se nalazi poziv ASN.1 enkoderu<br />
}<br />
public void readExternal(ObjectInput in) {<br />
// ovdje se nalazi poziv ASN.1 dekoderu<br />
}<br />
}<br />
42