JUM 10

Immár tizedik alkalommal került megrendezésre a JUM (Java User Meetings), a hazai Java programozók közösségi estje. mely a kicsit kapkodó, utolsó pillanatra maradó szervezéshez képest igen színvonalasra, jó hangulatúra sikeredett. Valószínűleg a késői hirdetés miatt kevesebben voltak, mint a múltkori alkalommal.

Az első előadást Rév Tamás tartotta a Groovy és a Java SOA projektekben történő használatáról. A projektben, melyben a Groovy-t kipróbálták, értelmezésem szerint a feladat az volt, hogy egy legacy rendszer (hogy politikailag korrektek legyünk EIS - Enterprise Information System) http kommunikációs felülete elé kellett tenni egy SOAP interfészt (gyakorlatilag egy adapter-t). Ehhez bizonyos transzformációk már megvoltak egy egzotikus ESQL nyelven (WebSphere Business Integration Message Broker nyelve üzenetben található adatok kezelésére), ezt kellett XSLT transzformációkká átírni. Ezt nem kézzel oldották meg, hanem a Groovy-t használták (persze aztán emberi ellenőrzést is igényelt).

A Groovy egy Java Virtuális Gépen működő szkript nyelv, mely egyrészt rendelkezik azzal az előnnyel, hogy Java alapú, így Java fejlesztőknek viszonylag kézre áll, de rendelkezik a script nyelvek tulajdonságaival, agilis módon, gyorsan lehet működő megoldásokat összeállítani. Nem esett szó a GRails-ról, mely egy Groovy alapú keretrendszer webes alkalmazások fejlesztésére.

A Groovy-t nem a tulajdonságai és a tapasztalatok alapján választották a projektbe, hanem gyakorlatilag kipróbálták, hiszen alkalmasnak látszott a feladat megoldására. Viszonylag kevés hangzott el az erősségeiről, annál több a gyengéiről. Van némi probléma a kollekciók kezelésével, illetve a NetBeans IDE pluginnek is vannak még gyermekbetegségei, pl. a kódkiegészítés terén.

Valahogy ez a megoldás sem győzött meg arról, hogy nekem bármilyen script nyelvet kellene használnom. Sajnos, vagy szerencsére nem vettem még részt olyan projektben, ahol indokolt lett volna a használata, vagy egyáltalán felmerült volna. Úgy gondolom, hogy inkább a fejlesztési oldalon lehet hasznos, különböző eszközök (pl. automatikus teszt eszközök) megtámogatására, de éles üzemben működő üzleti rendszerben nagyon meg kell fontolni a használatukat.

A második előadást Corsin Decurtins tartotta, aki Svájcból jött népszerűsíteni az objektumorientált adatbázisokat, valamint a zürichi Jazoon Java-s konferenciát. Az előadás eredetileg a Jazoon 2007-es konferencián hangzott el. Néhány szó az objektumorientált adatbázisokról. Előnyei:

  • Nincs szükség relációs adatbázisok telepítésére, hosszas konfigurálásra, azonnal használatba vehető
  • Nincs szükség egy felesleges mapping, ORM rétegre, mely az objektumorientált adatokat relációs formába képezné
  • Támogatottak az objektumorientált világ olyan fogalmai, mint az öröklődés, polimorfizmus és az egységbezárás
  • Lekérdezések összeállítása metódusok segítségével (a Hibernate Criteria API-jához hasonlóan)

Hátrányai (kiegészítve a saját véleményemmel is):

  • Nehéz a bevált és széles körben elterjedt relációs adatbázisok egyeduralmát megtörni
  • Szabvány hiánya (az előadó véleménye szerint a szabványosításhoz kicsi a piac)
  • Rossz híre van, a régebbi, kiforratlan technológia miatti projekt sikertelenségek miatt
  • Nagyon jó lekérdező, menedzsment és optimalizációs eszközök léteznek RDBMS-ekre
  • Nagy terhelés esetén az RDBMS-eknek jobb a teljesítményük a létező optimalizációs technikák (indexek, stb.) valamint skálázhatóságuk miatt

Az előadás alapvetően arról szólt, hogy hogyan lehet minimális erőbefektetéssel egy beágyazott objektumorientált adatbázist prototípus készítésre felhasználni. Szóba került a db4o megvalósítás is. Az előadó elmondta, hogy az objektumorientált adatbázisok nem versenytársai az RDBMS-eknek, hanem egy kiegészítő technológia, speciális célokra. Szerintem ha nem lett volna annyi bukta ezek indulásakor, mikor még az ORM eszközök nem voltak ilyen fejlettek, és nem voltak Java-ban implementált beépített adatbázis-kezelő rendszerek, sokkal nagyobb sikereket ért volna el a technológia. Tapasztalatom szerint most egy Apache Derby-re épülő JavaDB beágyazott adatbázissal és a JPA használatával is nagyon gyorsan lehet perzisztenciát megvalósítani pl. pilot projektekben minimális konfigurációval.

A harmadik előadás egy nagyon kötetlen hangvételű, pörgős, élvezetes előadás volt az Amazon Web Service-ek világából, Elek Mártontól. Az Amazon a következő szolgáltatásokat biztosítja a saját infrastruktúráján, melyek web szolgáltatás felületen (SOAP és REST) elérhetőek:

  • Amazon Elastic Compute Cloud (Amazon EC2): előregyártott vagy feltöltött virtuális gépeket tudunk futtatni az Amazon infrastruktúráján, és ezeket webes felületen, vagy web szolgáltatásokkal is vezérelhetjük
  • Amazon SimpleDB: alapvető adatbázis funkciókat nyújt
  • Amazon Simple Storage Service (Amazon S3): maximum 5 gigás állományok tárolására szolgál
  • Amazon CloudFront: megoldja az adatok terítését a világban azáltal, hogy az adatközpontok felé kiküldi az adatokat, és minden felhasználót a hozzá legközelebb eső szolgálja ki
  • Amazon Simple Queue Service (Amazon SQS): egyszerű aszinkron üzenetküldésre
  • Amazon Elastic MapReduce: a számítási kapacitás kihasználásra nagy számításigényű műveleteknél (adatbányászat, elemzések, stb.)

Az árazásról csak annyit, hogy összehasonlítva a magyar árakkal is igen versenyképes, és nagyszerű rendelkezésre állással és sebességgel rendelkezik. Kitűnő versenyző a cloud világában, jó megoldás lehet egy startup cégnek, hiszen ezzel alacsony költségeken beindítható a szolgáltatás, és a terhelés növekedésével lehet újabb erőforrásokat bevonni (persze magasabb költségen). Mivel egyszerű web szolgáltatások, a standard Java-s eszközökkel is egyszerűen használhatók, de vannak már kész Java könyvtárak is ezen szolgáltatások elérésére.

A következő JUM ideje még bizonytalan, lehet, hogy egy kis nyári szünet következik. Amennyiben bármilyen Java eszközzel, technológiával kapcsolatban megosztanád másokkal a tapasztalataidat, jelentkezz.

És ne feledjétek, hogy 2009. május 28-án a Sun által rendezett Java Cafe-n lehet egy előadást hallani a GlassFish ESB-vel kapcsolatos, projekt közben szerzett tapasztalatokról, valamint egy mobiltelefonos mozgás és a zaj érzékelő alkalmazásról. Ezek az előadások fognak elhangozni a JavaOne konferencián is.