06.04.2015 Views

Upravljanje mrežom i uslugama (paradigme i arhitekture)

Upravljanje mrežom i uslugama (paradigme i arhitekture)

Upravljanje mrežom i uslugama (paradigme i arhitekture)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!