JRun 4 
Aplikačný server s čistým "J" 
Hoci ešte pred niekoľkými rokmi bola Java propagovaná ako liek na neprenositeľnosť programov a jej uplatnenie sa hľadalo najmä na strane klientov, v poslednom čase sa značne presadzuje na strane serverových aplikácií. Má na to vhodné predpoklady: bohaté API - využívajúce najvnovšie technológie, programovanie v nej je bezpečné, rýchle... 

V tejto recenzii sa pozrieme na program v našich končinách pomerne neznámy, zato vo svete o to nasadzovanejší (krabica sa chváli číslom hovoriacim o nasadení v produkcii u 10 000 spoločností), na javovský aplikačný server JRun od Macromedia, ktorý sa po úspešnom absolvovaní testov u Sunu može hrdiť plnou kompatibilitou k J2EE platforme. Macromedia je firma známa najmä technológiou Flash a kompletnou paletou produktov pre vývoj webových aplikácií. JRun získala spolu s viacerými inými produktami odkúpením firmy Allaire.  

Úvod 
JRun je aplikačný server napísaný v čistej Jave, plne implementuje J2EE 1.3 (na čo má aj certifikát od Sunu). JRun má modulárnu architektúru, pozostáva z JRun Kernelu a naň sa nastavujú EJB a Web Container, Logging, Transaction, Cluster a Deployment Service, pričom je možné doplniť vlastné služby (services). Architektúra sa stavia na technológiach JMX, XML a JNDI. 
Vývojárov okrem iného poteší možnosť správy servera cez prepracované webové rozhranie, prítomnosť Java databanky Point-Base (avšak len vo vývojárskej verzii) či integrovaného webservera, ovládačov ku všetkým bežným DB alebo grafického, jednoducho sa používajúceho sniffera. 
Administrátori budú môcť dokázať svoje schopnosti pri zabezpečovaní servera, tvorbe clusterov či virtuálnych hostov.  

Verzie 
Macromedia poskytuje JRun s veľmi zaujímavou licenčnou politikou. Ostrá verzia stojí približne 900 dolárov, čo je oproti iným aplikačným serverom smiešna cena. Na webe sú však z www.macromedia.com/software/jrun/trial dostupné ešte: 
vývojárska verzia - čo je plná verzia s obmedzením, že požiadavky sú akceptované iba z vývojárskej stanice; 
30-dňová trial verzia - plná verzia bez obmedzení fungujúca 30 dní. Táto sa zíde, ak budete chcieť otestovať určitý čas JRun v ostrej prevádzke.  

Dokumentácia 
Dobrá dokumentácia je nevyhnutnou súčasťou každého dobrého profesionálneho produktu. 
Po otvorení krabice z nej vytriasiete okrem inštalačneho CD aj dve tlačené príručky. Prvá je Getting started with JRun, ktorá poskytuje celkom dobré oboznámienie sa s JRunom a J2EE platformou. Avšak niekomu, kto už s danými témami mal dočinenia, veľa nepovie. Druhá je Installing JRun, ktorej sa dá vytknúť povrchnosť - inštalácia sa dá zvládnuť aj bez nej a ak nastanú problémy (ako sa stalo pri integrácii s Apache web serverom pod Linuxom), tak sa v nej prakticky nič dôležité nedočítate. 
Zvyšná dokumentácia sa nachádza vo forme pdf súborov na inštalačnom CD. Jedná sa o nasledovné tituly: 
JRun Administrator's Guide JRun Programmer's Guide JRun Assembly and Deployment Guide Ich mená hovoria za všetko. Dovolím si poznamenať, že všetky sú dobre napísané, spĺňajú svoj účel a je len škoda, že sa nedodávajú aj v papierovej forme. 
Po inštalácií sú všetky zmieňované tituly a JRun SDK Guide dostupné aj vo formáte HTML. 
"Papierovo" robí teda recenzovaný produkt veľmi dobrý dojem. Pozrime sa však, ako vyzerali dojmy počas testovania.  

Inštalácia 
Po zaobstaraní si JRunu a zhliadnutí dokumentácie nastal čas inštalovať. Priamo podporované su operačné systémy Windows 98/ME a NT/2000/XP, Solaris 7 a 8, Red Hat Linux > 6.2, AIX 4.3 a 5L, HP-UX 11.0 a 11i, Compaq Tru64 UNIX 5.1, Turbolinux 6.5, SuSE Linux 7.2 a 7.3. 
Celkom slušná paleta, ale to je pochopiteľné, keďže Macromedia proklamuje, že server je napísaný v čistej Jave. 
Minimálne požiadavky na HW predstavujú 64 MB RAM, 40 MB voľného miesta na disku. Tieto hodnoty su však veľmi optimistické, pod 256 MB RAM, 100 MB miesta na disku a slušným procesorom (> 500 MHz) sa bude s programom veľmi tažko pracovať (čo je dané HW nárokmi Javy). JRun tiež vyžaduje inštalované Java Runtime Environment (JRE) > 1.3.1. 
Recenzovaný produkt som testoval pod Windows 2000 a pod SuSE Linuxom 8.0. Na účely inštalácie bol použitý Celeron 525 MHz s 320 MB RAM. Inštalácia pod Windows prebehla v grafickom móde, produkt je možné inštalovať ako service. Pod Linuxom sa štandardne spustí textová inštalácia, grafická je dostupná cez prepínač -i gui. V obidvoch prípadoch ale prebehla inštalácia bez problémov, pričom trvala niečo okolo 5 min. Inštaláciu je možné vykonať aj v silent móde, keď po spustení inštalačnej procedúry bude celý program nainštalovaný bez ďalších zásahov užívateľa. 
Nepríjemne som bol prekvapený, keď som skúšal inštalovať na 166MMX s 96 MB RAM. Na tomto systéme bol pôvodne FreeBSD 4.5 s emuláciou Linuxu (Red Hatu 6.1) a plne funkčným JDK 1.4. Inštalácia sa spustila bez problémov, dokonca bola aj na danom archaickom "železe" pomerne svižná. Prekvapenie nastane, keď chcete úspešne inštalovaný JRun (presne tak to zahlásil installer) spustiť. Spúšťací wrapper pre JRun vyžaduje GLIBC > 2.1.3 (daný Linux používa 2.1.2), takže na danom systéme sa nič nekoná. Toto dokáže rozčúliť, najmä ak sa Macromedia chváli, že JRun je napísaný v čistej Jave a na jeho spustenie by mal stačiť obyčajný shell-skript. Nakoniec som bol nútený robiť testy na novej inštalácii Red Hat 7.1 na tom istom HW, kde už podobné problémy neboli. 
Toľko teda moje "inštalačné dojmy". Celkovo sa dá povedať, ze installer podporuje veľa platforiem a ľahko sa používa, na druhej strane si celý produkt vyžaduje "svoj" harda software.  

Konfigurácia a správa 
Administrácia JRunu sa vykonáva cez webovské rozhranie - JMC (JRun Management Console). Toto je implementované ako samostatný server s názvom admin. Ako aj iné servery (napr. s aplikáciami) sa dá spustiť z príkazového riadku automaticky pri štarte systému či cez vlastný grafický nástroj. V prípade použitia viacerých serverov s inštalovaným JRunom je možné spravovať všetky servery z jednej JMC. Server pre administráciu počúva štandardne na porte 8000. Do rozhrania sa prihlásite cez login/password zadaným pri inštalácii. Samotné rozhranie je dostatočne prehľadné a graficky dobre spracované, čo potvrdzuje aj screenshot. Dá sa z neho pristupovať na najviac používané funkcie, avšak použitiu textového editora pri editácii XML (najdete ich v podadresári SERVERINF každého JRun servera) konfiguračných súborov (napr. nastavenie pre Java Mail) sa nedá vyhnúť. 
Dá sa povedať, že vďaka webovému rozhraniu administrácia problémy aj menej zdatným jedincom (vývojárom:) problémy robiť nebude.. 
Teraz sa však pozrime na niektoré zo zaujímavejších vlastností.  

Externé servery 
Hoci sa JRun dodáva so vstavaným HTTP serverom, v rámci zvýšenia výkonu, resp. začlenenia do existujúcej infraštruktúry ho je možné integrovať do nasledovných web serverov: Apache HTTP Server, Microsoft IIS, Netscape Enterprise Server, iPlanet a Zeus Web Server. 
Samozrejme že som vyskúšal aj túto možnosť a síce s najrozšírenejším zo spomínaných, s Apache. Keďže pre integráciu sa dodáva samostatný grafický nástroj, nemala by spôsobovať problémy. Tak tomu bolo pod Windows, kde prebehla skutočne bez chyby. To sa už ale nedá povedať o tom istom pokuse pod Linuxom, kde bol síce konfiguračný súbor Apache spomínaným nástrojom modifikovaný, avšak Apache si nevedel poradiť s dodávaným modulom. Na odstránenie tohto problému však Macromedia žiadny tool nedodáva a je treba značnú obratnosť a know-how pri práci s konfiguráciou Apache. 
V spojení so servermi Apache, IIS či Netscape umožňuje virtuálne hosty. V praxi to potom znamená, že pre každý virtual host sa definuje jeden JRun server. Samozrejmosťou je aj podpora SSL, ktoré sa po vygenerovaní kľúčov dá nastaviť cez JMC.  

Clustering 
Keď jednému serveru začne dochádzať dych, prichádza JRun s možnosťou zoskupenia viacerých do jednotného celku clustera. Ten potom okrem zvýšenia výkonu poskytuje možnosť, aby v prípade výpadku jedného servera boli požiadavky vykonané na iných (odstránenie Single Point of Failure). 
Clusterovanie je postavené na JINI a je zabudované do konektorov k webovým serverom a kernelu. 
Najľahší spôsob, ako postaviť cluster, je použiť JMC, potom sa tvorba clusterov obmedzuje na zadanie mena clustera a vybranie serverov, ktoré budú do neho patriť.  

Resources 
Aby mohli vývojári začať pracovať na aplikácii, musia im na to pripraviť administrátori živnú pôdu (ak si to vopred vývojári nie sú nútení spraviť sami). To spočíva v konfigurácii JDBC, JMS a JavaMail. 
Nastavenia JDBC a JMS je možné robiť priamo z webového rozhrania, konfiguráciu pre JavaMail je nutné "ručne" upraviť v súbore jrun-resources.xml. 

Security 
Koncept bezpečnosti je v JRune postavený na JAAS (Java Authentification and Authorization Service) poskytujúci 3 piliere. 
Prvý je zabezpečenie administrácie. Užívatelia a ich roly sa štandardne spravujú v súbore jrun-users.xml, avšak vďaka modulárnej architektúre sú možnosti autentifikácie a autorizácie aj voči LDAP, relacionálnym databázam či pod Windows aj voči doménam. 
Ďalšia vrstva je vrstva bezpečnosti web aplikácií. V Java Servlet API je definovaný mechanizmus, pomocou ktorého sa dá kontrolovať prístup len na určité zdroje. 
Tretia vstva predstavuje bezpečnosť pre EJB. Pomocou ACL je možné definovať užívateľov alebo roly, ktoré budú môcť pristúpiť na určité metódy.  

Vývoj a Deployment 
Vývojárov bude asi najskôr zaujímať, ako sa s JRun pracuje. Certifikát Sunu o kompatibilite s J2EE zaručuje, že pri dodržiavaní javovských štandardov by mal byť v tomto ohľade vývoj bezproblémový. 
Hoci sa JRun nedodáva s žiadnym vyvojovým IDE (Macromedia odporúča Dreamwaver MX:), je integrácia s vaším obľúbeným IDE vyriešená šalamúnsky - ak editujete aplikácie hociakým editorom, so zapnutým hotdeploymentom a automatickým kompilovaním a reloadovaním tried sa prejavia zmeny on-fly. Vynikajúco sa mi pracovalo s IDE Eclipse a editorom VIM.  

Samples 
Pre adeptov na vývoj J2EE aplikácií, ktorí ešte len zbierajú skúsenosti, príde vhod zbierka ukážkových aplikácií štandardne sa nachádzajúca v serveri samples. 
Tieto ukážu, ako sa tvoria servlety, JSP a EBJ, ako ich spolu poprepájať či ako fungujú.  

JRun Enterprise Deployment Wizard 
Pre vývoj a deployment EJB sa ponúka JRun Enterprise Deployment Wizard, nástroj, ktorý hneď vo viacerých aspektoch uľahčuje prácu s EBJ. Umožňuje "naklikať" EBJ, roly, vytvoriť kostru ich kódu a vie ich deployovať. 
Pri vývoji EBJ poteší integrácia XDocletu, ktorý umožňuje mať štandardne viaceré súbory pre jeden EJB v jednom súbore. 
Pri deployovaní EBJ sú tabuľky pre entity beany vytvorené automaticky za predpokladu, že JDBC nastavenia sú už skonfigurované.  

Flash Remoting 
V prípade, že chcete vybudovať komplexnú multimediálnu prezentáciu, ktorej rozhranie bude vo Flashi a logika na serveri v Jave, príde vhod Flash Remoting. Táto technológia umožňuje Flash aplikáciam komunikovať so serverovskými Java aplikáciami. Funguje tak, že po vytvorení vhodnej triedy (najčastejšie JavaBean či EJB) voláte v ActionScripte (programovací jazyk pre Flash aplikácie), kde sú metódy s prístupovým právom public automaticky prístupné ako funkcie.  

Web Services 
Web Service sú platformovo nezávislé backendy pre aplikácie založené na protokole HTTP a XML. 
Implementácia web services je v JRune založená na SOAP engine Axis od Apache Software Foundation. 
K tejto pomerne rozsiahlej téme je venovaná značná časť JRun Programmer's Guide.  

Záver 
Ako každý nový release aj JRun vo verzi 4.0 disponoval chybami "krásy". Unixové wrappery na spúšťanie jednotlivých komponentov sú doslova "hlúpe". Hardwarové nároky tiež neoslnia, ale to je pri danom produkte pochopiteľné. JRun 4.0 podporuje najnovšie Java API a celkovo sa dobre hodí na realizáciu stredne väčších projektov, kedže v "big business" mútia vodu najmä BEA Weblogic či Websphere od IBM. JRun sa určite zapáči aj vývojárom. Vývojárska verzia je zadarmo a produkt sám o sebe ponúka vysoký štandard, či už pri podpore technológií či efektívnosti a jednoduchosti práce s ním. Macromedia zas presvečila, že jej produkty pre vývoj webových aplikácií patria medzi špičku. 

Martin Užák 

JRun 4 
Aplikačný server napísaný v čistej Jave. 
Hardwarové nároky 64 MB RAM, 40 MB volného miesta na diske 
Výrobca Macromedia, Inc., San Francisco, USA (www.macromedia.com) 
Poskytol Digital Media, Olomouc 
Cena s DPH 33 968 Kč pre jeden procesor 

Hodnotenie 
+ webové administratívne prostredie 
+ web services 
+ podpora najnovších Java API 
+ Flash Remoting 
+ clustering 
+ vývojárska a 30-dňová verzia zadarmo [177] dokumentácia 
- nestabilnosť a nepružnosť na slabom HW 
- inštalácia pod Unixami 

Podporované Java 2 EE API 
Java Server Pages 1.2 
Java Servlet 2.3 
Enterprise JavaBeans 2.0 
Java Messaging Service 1.0.2 
Java Transaction API 1.0 
Java Authentification and Authorization Service 1.0 
J2EE Connector Architecture 
Java API for XML Parsing 1.1 
Java Mail 1.2 
Java Database Connectivity 2.0 

Hlavné vlastnosti JRunu 
vstavaná podpora web services 
clustering 
hot-deployment 
3 vrstvy bezpečnosti 
dynamické kompilovanie a reloadovanie tried 
nástroj na prácu s EJB (JRun Enterprise Deployment Wizard) 
Xdoclet 
možnosť tvorby Flash UI (užívateľských rozhraní) k aplikáciam.