Srovnání J2EE Integraˇcních Framework ˚U
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Srovnání J2EE integraˇcních framework ˚u DIPLOMOVÁ PRÁCE Bc. Daniel Gajdoš Brno, podzim 2008 Prohlášení Prohlašuji, že tato diplomová práce je mým p ˚uvodnímautorským dílem, které jsem vypra- coval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování použí- val nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj. Vedoucí práce: Mgr. Pavel Drášil ii Shrnutí Cílem této práce je pˇredstavenístandardu J2EE, jeho pozice na trhu, význam framework ˚u, základní charakteristika vybraných framework ˚u,vzorová implementace jednoduché apli- kace s využitím tˇechtoframework ˚u,srovnání složitosti implementace, ˇcitelnostia podpory vývojových nástroj ˚u.Na závˇerbude popsán proces seznamování a implementace jednotli- vých aplikací, shrnutí zjištˇenýchfakt ˚ua doporuˇcení,kdy je vhodné nˇekterýz popisovaných framework ˚upoužít. iii Klíˇcováslova J2EE, JSP, servlet, session, Jboss Seam, Stripes, EJB, JDBC, SQL, RMI, HTML, IIOP, JAXP iv Pˇredmluva Tato práce byla pˇripravenave formátu XML s využitím DTD DocBook. Závˇereˇcnásazba byla provedena typografickým systémem LATEX ve stylu fithesis z písma Computer Modern ve variantˇeCS-font. Projekt je ˇcasovˇeohraniˇcenéúsilí smˇeˇrujícík vytvoˇreníunikátního produktu nebo služby. Již tato základní definice obecného projektu v sobˇeobsahuje slovo unikátní. Jak ale vy- tváˇretunikátní projekty, když používaná technologie je všeobecnˇedostupná, tudíž má ji v rukách i konkurence? Cílem každého projektu by mˇelobýt uspokojení potˇrebzákazníka. Míra úspˇešnostipro- jektu se mˇeˇríprávˇemírou spokojenosti a mírou naplnˇeníoˇcekávání.Každý projekt je ohrani- ˇcenjak ˇcasem,tak i zdroji. V rámci výbˇerových ˇrízeníse firmy pˇredhánínabízenou kvalitou, rychlosti dodávky, úrovní servisu a v neposledné ˇradˇecenou, za kterou jsou ochotni projekt realizovat. Výsledkem úspešného boje obchodník ˚uje získání zákazníka, získání projektu a vidina budoucího zisku. Pak ale pˇricházíreálný pohled na to, co s sebou projekt pˇrináší, svoji složitost, množství omezení a rozsáhlost. A to je právˇevýzva, se kterou se musíme umˇetvypoˇrádat.Potom pˇricházíta síla, která nás dˇelájinými než konkurence a je to jen na nás, jak ten projekt dopadne. Jedním ze zp ˚usob˚u,jak uspˇetve složitém svˇetˇetvrdého obchodu, je mít konkurenˇcní výhody. Z hlediska IT to pak znamená mít dostatek zkušeností a hlavnˇeznalostí, které po- vedou ke snižování pracnosti, a tím i ke zvyšování zisku z projektu. v Obsah 1 Úvod ............................................. 1 2 PˇredstaveníJ2EE ...................................... 2 2.1 Definice ......................................... 2 2.2 J2EE Technologie ................................... 2 2.3 Výhody J2EE ...................................... 3 3 Co to je framework ..................................... 5 4 Proˇcframeworky v J2EE .................................. 8 4.1 Pˇrístupautora k framework ˚um ........................... 9 4.1.1 Vývojové prostˇredí . 10 5 Referenˇcníframework Jakarta Struts .......................... 11 6 Stripes ............................................ 12 6.1 Pˇredstavení ...................................... 12 6.1.1 Základní cíle frameworku . 12 6.2 Pˇrínosy ......................................... 12 6.3 Struts vs. Stripes .................................... 13 6.3.1 Množství soubor ˚ua konfigurace . 13 6.3.1.1 Struts . 13 6.3.1.2 Stripes . 13 6.3.2 Postupný vývoj . 14 6.3.2.1 Struts . 14 6.3.2.2 Stripes . 14 6.3.3 Vnoˇrenéatributy . 14 6.3.3.1 Struts . 14 6.3.3.2 Stripes . 14 6.3.4 Validace . 15 6.3.4.1 Struts . 15 6.3.4.2 Stripes . 15 6.3.5 Null . 15 6.3.5.1 Struts . 15 6.3.5.2 Stripes . 15 6.3.6 Více akcí . 15 6.3.6.1 Struts . 15 6.3.6.2 Stripes . 15 6.3.7 HTML znaˇcky. 16 6.3.7.1 Struts . 16 6.3.7.2 Stripes . 16 6.4 Konfigurace ...................................... 16 7 Jboss Seam .......................................... 17 7.1 Pozadí ......................................... 17 7.2 Historie verzí ..................................... 17 vi 7.3 Pˇrínosy ......................................... 18 7.4 Podpora vývoje .................................... 20 7.5 Struktura Seam projektu ............................... 21 7.6 Vlastnosti Jboss Seam podrobnˇeji .......................... 23 7.6.1 Spojení EJB3 komponenty a JSF stránky . 23 7.6.2 Scopes/kontexty pro Seam komponenty . 24 7.6.3 Seam konverzace . 24 7.6.4 Validace vstupních dat formuláˇr˚u . 25 7.6.5 Tvorba CRUD aplikací . 25 7.6.6 Integrace Business Process Managementu . 25 7.6.7 JBoss Expression Language . 26 7.6.8 Generování PDF a e-mail ˚u. 26 7.6.9 Integrace s JBoss Rules . 26 8 Praktické srovnání ..................................... 28 8.1 Požadavky na vzorovou aplikaci .......................... 28 8.2 Proces tvorby vzorových aplikací .......................... 29 8.2.1 Aplikace SeamPhoneBook . 29 8.2.2 Aplikace StripesPhoneBook . 32 9 Závˇer ............................................. 36 A A ............................................... 38 B B ................................................ 39 Literatura . 40 vii Kapitola 1 Úvod O nízké úspˇešnostiprojekt ˚uvíme všichni již delší dobu. Vzr ˚ustajícíkonkurence tlaˇcína sniž- nování ceny projekt ˚u,ale vzr ˚ustajícísložitost proces ˚ukoncového zákazníka ke snižování náklad ˚unijak nepˇrispívá. Címˇ složitˇejšíjsou vstupní požadavky, tím složitˇejšíje i architek- tura celého ˇrešenía tím vyšší by mˇelabýt i cena projektu. V ideálním svˇete,kde bychom méli dostatek ˇcasua zdroj ˚u,bychom si mohli dovolit tvoˇritsystémy s použitím základních technologii, jako jsou html, popˇrípadˇexhtml a jsp. Psát všecho pracnˇeruˇcnˇeby sice nebylo zábavné, ale vzhledem k neomezeným zdroj ˚umby nám to vadit nemuselo a i chybovost ruˇcnˇetvoˇrenéhoobrovského množství kódu bychom pˇridostatku ˇcasubyli schopni minimalizovat. Reálný svˇetje ale hodnˇevzdálený od svˇetaideálního, termíny jsou pevné a rozpoˇcet je víc než omezený. Jak se s tím vypoˇrádat?Omezit pracnost implementace a dˇelatvážnˇe jenom to, co je nejnutnˇejšía co pˇrinášískuteˇcnouhodnotu zákazníkovi. Nakonec to je ve vˇetšinˇeprojekt ˚ud ˚uvod,proˇcchce zákazník nový informaˇcnísystém - už ho nebaví pracovat neefektivnˇea vyhazovat tak peníze oknem. Právˇez tohoto d ˚uvoduvznikají technologie jako jsou poˇcítaˇce,databáze, sítˇe... C, Java, J2EE. Smyslem tˇechtotechnologii je pomáhat jak tv ˚urc ˚um,aby byla jejich práce jednodušší, tak hlavnˇecílovým zákazník ˚um,pro které jsou produkty urˇceny. 1 Kapitola 2 PˇredstaveníJ2EE 2.1 Definice Co je to vlastnˇeJ2EE nebo chcete-li Java EE? Jedná se o pˇrístup(sadu pravidel, technologií, metod, doporuˇcení),jak provádˇetdesign, vývoj, nasazení a provozování vícevrstvých aplikací pomocí jazyka Java formou nˇekolika základních komponent. Jedná se tedy pouze o standard, nikoliv o konkrétni produkt. Specifikace tohoto stan- dardu se datuje k prosinci 1999. Do tohoto standardu patˇrí: • Platforma J2EE - standartizovaná platforma, poskytující bˇehovéprostˇredípro J2EE aplikace • Soubor test ˚ukompatibility J2EE - sada test ˚uovˇeˇrujících,zda je urˇcitáplatforma J2EE v souladu se standartem • Referenˇcníimplementace J2EE - implementace J2EE urˇcenápro prototypování J2EE aplikací; poskytuje definici J2EE platformy • J2EE BluePrints - množina nejlepších osvˇedˇcenýcha doporuˇcenýchpostup ˚upˇrivý- voji vícevrstvých aplikací 2.2 J2EE Technologie Mezi nejd ˚uležitˇejšítechnologie, na kterých je J2EE založena patˇrí: • Enterprise JavaBeans (EJB) - standard pro tvorbu komponent serverové ˇcástiapli- kace zapouzdˇrujícíchobchodní logiku • HyperText Transfer Protocol (HTTP) – komunikaˇcníprotokol pro podporu komuni- kace typu požadavek-odpovˇed(request/response) • Java Authentication and Authorization Service (JAAS) - podpora pro autentizaci a autorizaci pomocí LDAP a jiných úložišt pˇrístupovýchpráv 2 2.3. VÝHODY J2EE • JavaMail – podpora pro prácí s elektronickou poštou • Java API for XML Parsing (JAXP) – prostˇredkypro manipulaci s XML dokumenty a podpora XSL transformací • Java Connector Architecture (JCA) – rozhraní SPI pro pˇripojeník adaptér ˚umexter- ních ERP systém ˚u • JavaServer Pages (JSP) - stránka složená z XML znaˇcek,EL (Expression Language), JSTL a scriptlet ˚uJavy. Výsledkem jejího zpracování na serveru je HTML nebo XML dokument. • Java Servlets - menší Java aplikace, generující dynamický obsah webových stránek • Remote Method Invocation (RMI) – jedna z implementaci Remote Procedure Call (RPC) – vyvolávání vzdálených metod na objektech, registrovaných na serveru pomocí JNDI • Java Naming and Directory Interface (JNDI) - jmenné a adresáˇrovéslužby pro regis- traci a vyhledávání objekt ˚ukomunikujících pˇresrozhraní RMI • Java Transaction API (JTA), Java Transaction Service(JTS) - objekty pro podporu lo- kálních a distribuovaných databázových transakcí • Java Message Service API (JMS) - služba pro zabejištˇeníasynchronní komunikace • Object Request Brooker (ORB) - poskytuje základní funkˇcnostslužbám jako EJB kon- tejner a Naming service • Internet Inter-ORB protocol (IIOP) - komunikaˇcníprotokol technologie CORBA, umož- ˇnujícíkomunikaci CORBA objekt ˚uprostˇrednictvímInternetu • JDBC (Java DataBase Connectivity) data access API - komponenty pro pˇripojenída- tabází prostˇrednictvímstandardizovaného rozhraní JDBC 2.3 Výhody J2EE Jelikož je J2EE založena na jazyku Java, pˇrínašísebou tyto výhody: • Nezávislost na operaˇcnímsystému Platformová nezávislost jazyka Java pˇrinášímožnost nasazení J2EE aplikací na všechny