17. prosince 2007

Novinky ze Springu

Moc často nekomentuji různé události, ale teď mi to nedá. Právě se koná konference The Spring Experience, což jsou spolu s konferencí SpringOne dvě nejvýznamnější konference věnované přímo Springu.
Právě na této konferenci se objevily velice zajímavé novinky z dílny firmy SpringSource (dříve Interface21):

  • doplnění Spring portfólia o Spring Integration, o část, která by měla pomoci při vývoji servisně-orientovaných aplikací. Podle mého názoru je dneska skoro nezbytností mít něco podobného v portfóliu, v době, kdy se každý ohání slovíčkami jako SOA, webové služby, integrace apod. V brzké době by projekt měl být publikován a někdy ve druhém čtvrtletí roku 2008 by měla být verze 1.0. Více si můžete přečíst na Team blogu SpringSourcu.

  • SpringSource Application Management Suite - podle dostupných informací, které se mi podařilo najít, by to měla být taková nádstavba nad Springem, která bude zobrazovat běhové informace o aplikaci jako např. kolik proběhlo transakcí, kolik zpráv se zpracovalo, kolik aktivních beanů je v aplikaci apod. Já osobně to chápu tak, že místo abychom museli vytvářet MBeany pro přístup k velmi často potřebných informacím, tak budeme moci použít tento Application Management Suite, který nám bude automaticky nabízet standardní sestavu pro každou aplikaci.

  • SpringSource Certification Program - toto je velice zajímá informace, o které se již tak trochu mluvilo na konferenci SpringOne v letošním roce. Na certifikace jsou různé názory, ale určitě lze říci, že je to krok správným směrem, pokud chceme aby se Spring čím dál více prosazoval a používal mezi velkými hráči jako jsou například banky. Je ale otázka, kdy se to dostane až k nám do Čech - v USA to začne na konci ledna.

Více si můžete přečíst v tomto článku.

14. prosince 2007

Hudson - děkuji, rád

V poslední době se mi zdá, že se více než kdy před tím řeší, který že build server je ten nejlepší. Možná je to jen můj subjektivní pohled nebo možná je to také tím, že čím dál tím více lidí má povědomí o "postupné integraci" (continuous integration) a znají nesporné výhody tohoto přístupu.

Hned na začátku říkám, že mám rád Hudson. Už to bude přibližně rok, kdy jsem vybíral buildovací server do naší firmy a při svém výběru jsem víceméně vycházel z nástrojů uvedených v tomto článku. Hned od začátku to byla "láska na první pohled":

  • velice jednoduchá instalace. Slovíčko instalace je přehnané, protože stačí pouze nahrát soubor hudson.war na aplikační server a už vše funguje. S tím je samozřejmě spojen i bezproblémový upgrade, což se zde celkem využije, protože skoro každý den vzniká nová verze.

  • velice jednoduchá konfigurace všeho potřebného. Konfigurace je intuitivní a přímo obsahuje nápovědu, takže není potřeba žádná dokumentace.

  • Hudson nabízí přesně to, co potřebujeme a nic navíc. Používáme Subversion, nemáme (zatím) žádné složité vazby mezi projekty, v každém buildu chceme mít přístup k JavaDoc dokumentaci, výsledkům testů a k informacím z konzole. Pro sledování výsledků buildů nám stačí RSS nebo Email. Pro ty, kdo používají něco jiného než Subversion nebo mají větší nároky na integraci nástrojů třetích stran, tak budou mít s Hudsonem asi problém.

  • S tou integrací nástrojů třetích stran už to také není tak špatné jako třeba před rokem. Úspěšně jsme teď zaintegrovali nástroje FindBugs a Cobertura. Ostatní nástroje pro detekci chyb či něčeho jiného (Checkstyle, PDM, JDepend) sice používáme, ale zatím bohužel bez přímé integrace s Hudsonem. Detailní výsledky máme možnost vidět pouze z výpisu konzole.




Teď si připadám jak na střední na konci referátu o knížce: Hudson se mi velice libíl a všem bych ho jen doporučil :).

Přehled dalších buildovacích serverů:

13. prosince 2007

Apache Forrest - děkuji, nechci

V poslední době jsem musel malinko oželet programování vlastních aplikací, protože jsem více řešil nasazení a konfiguraci produktů třetích stran. Jedním z nich byl produkt se jménem Apache Forrest.

K čemu je Apache Forrest dobrý? Je dobrý k tomu, když si potřebuji vytvořit webovou prezentaci (a nechci ji vytvářet sám přímo pomocí HTML), když chci mít na webu automaticky řadu zajímavých funkcí jako fulltextové vyhledávání, tisk, export do PDF a hlavně, když mám již spoustu dokumentů (různé obrázky, HTML, PDF atd.), které bych rád znovu využil. Pokud chci vytvářet obsah webu sám, pak mám možnost použít celkem intuitivní pseudo-HTML jazyk. Úvodem je ještě vhodné uvést, že například většina projektů Apache má web vytvořený právě pomocí tohoto nástroje.

Podle toho, co jsem doposud napsal by se mohlo zdát, že je to super mocný nástroj. Bohužel jsem si to na začátku taky myslel, ale teď už moc ne. Ale postupně...

Formáty dokumentů

Apache Forrest umí pracovat na vstupu s různými formáty dokumentů a to díky rozšířením Apache Forrest (tzn. pluginy). Základní konfigurace umožňuje na vstupu použít následující formáty dokumentů (kromě dokumentů zapsaných přímo ve formátu Apache Forrest XML):
  • XML

  • HTML

  • MS Excel (tabulka z MS Excel musí být uložena jako Tabulka XML)

  • OpenOffice (Impress, Writer) verze 1 (přípona .sxw)

U těchto vstupních formátů se dokumenty přímo upraví do jednotného vzhledu a struktury webu. Samozřejmě je možné formou odkazu přímo na dokument připojit dokument v libovolném formátu – ten pak sice nebude zpracován a převeden do HTML, ale bude možné jej stáhnout.
Bohužel není možné přímo integrovat nejrozšířenější dokumenty MS Word. Jde to ale obejít přes OpenOffice – dokument z MS Word načtu v OpenOffice a uložím ve formátu OpenOffice (sxw).

Apache Forrest jsem intenzivně používal přes dva týdny a na základě této zkušenosti mohu uvést následující výhody a nevýhody:

Výhody

  • Vzhled webu lze kompletně upravit pomocí CSS (viz projekty Apache).

  • Velké množství vlastností výsledného webu je možné upravit pouze pomocí konfigurace

  • Žádný srovnatelný nástroj (se stejným zaměřením) se mi nepodařilo najít.

Nevýhody

  • Apache Forrest si moc nerozumí s češtinou - měl jsem problémy s českou diakritikou při exportu do PDF nebo při importu dokumentů z OpenOffice.

  • Nepodařilo se mi vůbec rozchodit fulltextové vyhledávání s Lucene. Varianta s Google fungovala dobře.

  • Apache Forrest je v současné verzi 0.8 a moc to nenasvědčuje tomu, že by se v brzké době objevila nějaká stabilní verze 1.0. Když jsme tento nástroj vybírali do jedné nabídky na konci roku 2006, tak byla verze 0.7.

  • Z uživatelského hlediska se nejedná o zrovna přívětivý nástroj. Vše je ovládané pouze z příkazové řádky.


Po všech uvedených nevýhodách jsme byli nuceni přejít na jiné řešení se jménem Daisy. Sice je to řešení z kategorie CMS a tedy směřované trochu jiným směrem než Apache Forrest, nicméně základ je opět postavený nad nástrojem Apache Cocoon a tedy z hlediska možností práce s dokumenty velice podobné. Všechny nevýhody Apache Forrest jsou v Daisy vyřešeny a řada výhod zůstala.

5. listopadu 2007

Přednáška: transakční strategie (nejen ve Springu)

Nechci pořád posílat odkazy na nějaké cizí prezentace, ale v poslední době jsem jich viděl celkem hodně a ta poslední mě hodně zaujala. Nedá mi to tedy, abych vás na ní neupozornil, protože fakt stojí za to.

Je to přednáška na téma "Transaction Management Strategies in Mission-Critial Enterprise Applications". Přednáška nejprve obecně popisuje problematiku transakcí (parametry transakcí, nativní vs. JTA transakční manažeři), poté jsou popisovány možnosti při využití Spring frameworku a nakonec jsou uvedeny různá doporučení s ohledem na typ aplikace nebo aplikačního serveru. Co přednáška neřeší jsou transakce ve spojení s JMS.

Jednou z hlavním myšlenek a doporučení je používání nativních transakčních manažerů (HibernateTransactionManager, DataSourceTransactionManager, ...) v porovnání s JTA transakčními manažery. Samozřejmě pokud to situace dovolí, tedy když naše aplikace nevyžaduje propagaci transakcí (např. když aplikace běží přes více JVM) nebo koordinaci více datových zdrojů najednou (např. při použití více databází). Poslední bod je ovšem možné řešit bez použití "plného" J2EE aplikačního serveru pomocí standalone řešení (Geronimo transakční manažer, JOTM, ...).

1. listopadu 2007

Přednáška: spring v produkčním nasazení

Pokud nesledujete pravidelně novinky na stránkách Spring frameworku, tak mám pro vás zajímavou informaci - firma Interace21 začala nabízet interaktivní webové prezentace o Springu.

Tento týden proběhla první z těchto přednášek na téma "Spring in production". Kromě samotné přednášky, která trvala hodinu, byla možnost stáhnutí dokumentu popisující Spring v reálném produkčním nasazení (tedy víceméně to samé, co zaznělo na samotné přednášce). Snad všechny různé typy a triky jak zvýšit výkon nebo něco optimalizovat jsem již slyšel, ale ještě jsem neviděl takto komplexní dokument, který by vše uceleně popisoval. Kromě těchto optimalizačních rad dokument obsahuje souhrnný popis toho, co se děje v průběhu inicializace Spring aplikace.

Chtěl jsem ten dokument přiložit do blogu, ale na poslední chvíli jsem si všimnul, že ten dokument není volně k šíření. Pokud o něj tedy máte zájem, tak se budete muset přihlásit k prezentacím o Springu (a snad ho bude ještě možné stáhnout) a nebo počkat, až se tento dokument objeví na stránkách Interface21 (tuto informaci jsem zachytil během chatu v průběhu přednášky).

Nejsou ještě známy témata dalších přednášek, jen doufám, že nějaké stejně zajímavé budou i nadále. Super by bylo, kdyby se ty přednášky časem objevily i na Parleys nebo podobných serverech.