INTEGRACIJA KIEKER SISTEMA I JBOSS-A* INTEGRATION OF KIEKER INTO JBOSS Dušan Okanović, Milan Vidaković, Aleksandar Kovačević {oki, minja, kocha78}@uns.ns.ac.yu Fakultet tehničkih nauka, Novi Sad Sadržaj – U radu je prikazana mogućnost integracije Kieker sistema u JBoss aplikativni server. Kieker sistem je namenjen za praćenje rada svih vrsta Java aplikacija. Na osnovu dobijenih podataka, Kieker vrši kreiranje više vrsta dijagrama na osnovu kojih može lakše da se vrši analiza programa. Prikazana je arhitektura okruženja i njegove osnovne funkcionalnosti. Kao primer, prikazana je instrumentacija jedne distribuirane Java aplikacije. Abstract – The paper presents one solution to integration of Kieker framework into the JBoss AS. Kieker is aimed for monitoring of any kind of Java application. Collected data can be used for visualization and easier analysis of applications. This paper presents the architecture and basic functionality of the Kieker framework. As a case study, an instrumentation and monitoring of one enterprise application is presented. 1. UVOD Softver koji je u upotrebi, tj. više nije u razvoju, treba i dalje pratiti. Testiranje radi uklanjanja grešaka i merenja performansi u vreme razvoja ne može da pokrije sve pojave koje se javljaju u eksploataciji. Potrebno je da se softver kontinualno prati, da bi se moglo proveriti da li je usluga na odgovarajućem nivou (eng. quality of service), kao i da li su zadovoljene predviđene performanse (eng. service level agreement) koje mogu da se degradiraju tokom vremena. Kontinualno praćenje može da se radi i da bi se utvrdilo dinamičko ponašanje softvera. Umesto praćenja može da se koristi i čitanje programskog koda. Problem sa ovim postupkom je taj što je programski kod često težak za praćenje. Još jedan način je da se koriste dinamički UML dijagrami koji su nastajali u fazi projektovanja. U stvarnosti, dijagrami su često nepotpuni ili uopšte ne postoje. Kontinualno praćenje ponašanja softvera i njegovih performansi je mnogo pogodniji način da se razume i oceni ponašanje programa. Analiza podataka dobijenih praćenjem takođe može da bude zahtevan posao. Vizualizacija ponašanja softvera na osnovu podataka dobijenih praćenjem je jedan od načina da se ova analiza olakša. Alati kao što su debugger-i i profiler-i mogu da pomognu, ali je cena često ozbiljan uticaj na performanse. Ovi alati se obično koriste u fazama razvoja i zbog uticaja na performanse nisu pogodni za trajno praćenje. Treba napomenuti da ni podaci koji se dobijaju kontinualnim praćenjem ne moraju da daju potpunu sliku jer pokrivaju samo neke delove sistema. Ipak, pomoću tehnika za vizualizaciju tih podataka, vreme potrebno za razumevanje rada softvera i analizu njegovog ponašanja znatno može da se skrati. Kieker [1] predstavlja okruženje za kontinualno praćenje izvršavanja Java aplikacija. Pored Kieker-a u ovoj oblasti postoji još sistema koji se koriste za praćenje u distribuiranim sistemima. COMPAS JEEP [11] ubacuje softverske sonde u fazi pokretanja aplikacije. Sonde se ubacuju u svaki sloj posebno (EJB, servlete, ...). Pristup ima prednost što se ne vrše izmene na programskom kodu, ali problem je što se za svaki sloj moraju definisati posebne vrste sondi. SAMEtech algoritam [12] vrši praćenje na sličan način kao Kieker (koristi redne brojeve da prati redosled izvršavanja), ali ne može da prati konkurentno izvršavanje u aplikaciji. Studija prikazana u [13] pokazuje da su performanse vrlo kritičan zahtev, ali da se alati za praćenje na aplikativnom nivou retko koriste. Od komercijalno dostupnih alata za praćenje rada aplikacija izdvajaju se DynaTrace [14] i JXInsight [15]. 2. KIEKER Okruženje Kieker za kontinualno praćenje izvršavanja Java aplikacija može da se koristi za obične Java aplikacije i za distribuirane JEE aplikacije. Kieker čine dve osnovne komponente: − Tpmon – komponenta preko koje se vrši nadgledanje, − Tpan – komponenta koja vrši vizualizaciju. Obe komponente okruženja funkcionišu nezavisno. Ovaj pristup omogućava da se na jednom računaru izvršava softver koji se nadzire, da se dobijeni podaci smeštaju u fajl sistem ili bazu podataka na drugom računaru, a da se njihova vizualizacija vrši na trećem računaru. Arhitektura Kieker okruženja je data na slici 1. Tpmon komponenta vrši prikupljanje podataka o izvršavanju aplikacije. TpmonController vrši upravljanje ovim delom sistema i omogućava da se izvrši rekonfiguracija Tpmon komponente. MonitoringProbe je komponenta preko koje se vrši prikupljanje podataka. Predstavlja softversku sondu koja se umeće i vrši merenja. MonitoringLogWriter smešta prikupljene podatke na zadato mesto – MonitoringLog koji sadrži podatke u vidu MonitoringRecord-a. * Rad je deo istraživanja na tehnološkom projektu “Alternativa za eUpravu bazirana na otvorenim standardima i otvorenom kodu“, evidencioni broj: 13009 koji finansira Ministarstvo za nauku i tehnološki razvoj Republike Srbije