\documentclass[12pt,czech]{article} \usepackage[figures, nopdf]{updiplom} \usepackage[czech]{babel} \usepackage[cjkjis]{ucs} \usepackage[utf8]{inputenc} \usepackage{graphicx} \usepackage{color} \usepackage{fancyvrb} \fvset{commandchars=\\\{\}, fontsize=\footnotesize} %%% COLOUR version \definecolor{titlecolor}{rgb}{0.54, 0.15, 0.11} \definecolor{boxout}{rgb}{0.72, 0.81, 0.90} \definecolor{boxin}{rgb}{0.84, 0.91, 0.97} \newcommand \codeHighlight[1]{\textcolor[rgb]{0.14, 0.53, 0.07}{\textbf{#1}}} \DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{} %%% GREYSCALE version %\definecolor{boxout}{rgb}{0.6, 0.6, 0.6} %\definecolor{boxin}{rgb}{0.87, 0.87, 0.87} %\newcommand \codeHighlight[1]{\textbf{#1}} \title{Architektura Java Enterprise Edition} \author{Radovan Netuka} \year{2010} \date{6. duben 2010} \docinfo{Radovan Netuka}{Java EE Architecture} \annotation{% Java Enterprise Edition je propracovaný a~stále se rozvíjející systém pro webové programování v~jazyce Java. Tato diplomová práce shrnuje jeho vybrané technologie. Je pojata jako učební materiál pro studenty se zájmem o~webové programování v~jazyku Java, kteří už mají nějaké zkušenosti s~objektově orientovaným programováním, relačními databázemi a~s~XML dokumenty. Čtenáři představuje koncept dynamických webových stránek, webových služeb a~práci s~databázemi v~objektově orientovaném prostředí jazyka Java. Kromě toho čtenáře seznamuje s~pokročilou technologií EJB, která umožňuje spolehlivé vypracování náročných webových a~distribuovaných aplikací. Probíranou látku doplňují snadno pochopitelné příklady uvedené v~textu a~také na přiloženém CD. } %\annotation{% %Java Enterprise Edition is advanced and permanently expanding system for developing web applications in Java language. This thesis compiles some selected technologies of this system. It has been written as a~learning material for students with interest in web programming in Java language, who already have some experience with object oriented programming, relational databases and with XML documents. The thesis introduces concept of dynamic web pages, web services and working with database in object oriented environment of Java language. Moreover, it explains advanced technology of EJB, which allows the programmer to create robust web applications. The text is extended with easy to understand examples which can also be found on attached CD. %} \thanks{% Děkuji vedoucímu práce, RNDr. Michalu Krupkovi Ph.D., za odborné vedení a~cenné rady ohledně psaní učebního materiálu, bez kterých by práci nebylo možné dokončit. } \begin{document} \maketitle %% %% Preface %% \newpage \textbf{\large Předmluva} Úkolem této publikace je seznámit čtenáře s~některými základními technologiemi Javy Enterprise Edition. V~textu předpokládám, že čtenář je zběhlý v~objektově orientovaném programování, zná některé základní technologie jako jazyk XML a~HTML a~alespoň zběžně chápe princip webové aplikace. Jak takovou aplikaci naprogramovat od úplného začátku až po nasazení na server se mu pokusí ukázat tato publikace. Při psaní textu jsem vycházel z~vlastních zkušeností z~podobných učebních materiálů --- jak pozitivních, tak negativních. Snažil jsem se vyvarovat všemu, co mě na ostatních textech připadalo špatně a~naopak zachovat to, co na mě udělalo dobrý dojem. V~této knize jsem se snažil o~to vysvětlit, jak technologie doopravdy fungují. Programátor by neměl nějakou technologii využívat jako černou skříňku, ale měl by se snažit o~porozumění principům, na kterých je založena. Pokud opravdu pochopíte jak pracují servlety v~Javě, pochopíte později velmi snadno i~frameworky JAX-WS, JAX-RS, Struts nebo jiné. Text proto neslouží jako referenční příručka a~nepopisuje všechny možné syntaktické či sémantické možnosti té které technologie nebo frameworku. To by bylo pouze na obtíž, protože čtenář by byl zahlcen desítkami, možná stovkami metod, anotací a~speciálních konstrukcí, které ovšem, alespoň ze začátku, nepotřebuje. Namísto popisu deseti možných variací mapování dat z~EJB do databáze jsem se zaměřil na vysvětlení, jak takové mapování funguje a~ilustroval vše na jednom zvoleném postupu. Strukturu textu jsem zvolil jako kratší sekce o~pár odstavcích, uvozené nadpisem. Věřím, že tento způsob pomůže čtenáři lépe probíranou látku pochopit. Krátké odstavce nutí autora psát věcně a~vyjadřovat se v~jeden okamžik pouze k~jednomu problému. Navíc na čtenáře nepůsobit deprimujícím dojmem, že je ztracen v~kvantech textu a~knihu nikdy nedočte do konce. Přečtení každé sekce by ho mělo posunout v~pochopení probírané látky vždy o~krok dál. Nadpisy, kromě toho, že jednotlivé sekce vizuálně oddělují, opět tlačí na autora textu k~jasnému formulování myšlenek. Někdy se v~textu objevují rámečky. Jsou zamýšleny pro vnímavého čtenáře s~opravdovým zájmem o~danou technologii a~jejich úkolem je upozornit na některé nástrahy, které na programátora čekají. Vždy se jedná o~mou osobní zkušenost, většinou postavenou na rozporu dokumentace a~praktického použití. Častým jevem v~materiálech k~tématu je také to, že se čtenář prodírá dlouhými odstavci textu, kde autor vše dopodrobna vysvětluje, bohužel však bez jediného příkladu. Z~hlediska autora se to dá pochopit. On technologii rozumí a~doplnění jediné metody, kterou navíc popisuje v~textu mu přijde triviální. Čeká, až se nová látka nahromadí, aby stálo za to příklad uvést. Čtenář je však většinou ztracen. Probíranou látku zpravidla nezná (v~opačném případě by text asi nečetl) a~nedokáže si hned představit, jak bude zdrojový kód programu vypadat. Jsem přesvědčený, že četné proložení textu příklady, které ilustrují právě popisovanou látku čtenáři nejen usnadní její pochopení, ale navíc v~něm vzbudí dojem, že látce rozumí. Čtenář nebude mít obavu, že něco nechápe, nebo že se ztratil, protože text ho povede po krátkých krocích a~vždy mu připomene, co se dělalo před chvílí a~co se dělá teď. \begin{flushright} Radovan Netuka autor \end{flushright} \newpage \include{HTTP/http} \include{HTTP/httpclient} \include{examples} \include{JavaBeans/javabeans} \include{Pages/dynamic-web-pages} \include{Pages/servlets} \include{Pages/jsp} \include{deployement} \include{Pages/struts} \include{XML/xml_objects} \include{XML/sax} \include{XML/dom} \include{WebServices/web-services} \include{WebServices/soap} \include{WebServices/wsdl} \include{WebServices/jaxws} \include{WebServices/axis} \include{WebServices/rest} \include{WebServices/jaxrs} \include{Database/jdbc} \include{Database/db4o} \include{EJB/ejb} \include{EJB/entity_bean} \include{EJB/session_bean} \include{EJB/message_bean} \include{EJB/conclusion} \begin{conclusions-cz} Tato diplomová práce shrnuje vybrané technologie systému Java Enterprise Edition formou učebního materiálu. Klade si za úkol seznámit čtenáře se základem jednotlivých probíraných technologií, vysvětlit jejich princip, fungování a~také využití. Práce se nesnaží být referenční příručkou, proto jsou zde namísto kompletního výčtu všech možností (tříd, metod, tagů ap.) uvedeny pouze ty stěžejní. Jednotlivé kapitoly byly doplněny o~reálné poznatky z~praktického programování a~také o~nástrahy, které na začínajícího webového programátora číhají. Probíranou látku doplňují příklady uvedené v~textu a~také na přiloženém CD. Příklady byly vytvořeny tak, aby byly jednoduché s~lehce čitelným zdrojovým kódem, zároveň však netriviální a~ilustrující běžné použití webových technologií. Některé příklady byly řešeny ve více různých technologiích, čtenář má možnost zvážit, která technologie se mu více líbí a~připadá mu pro řešení vhodnější. Vzhledem k~povaze webových technologií většinu příkladů nelze spustit přímo z~CD a~je nutné je nasadit na serveru. Z~tohoto důvodu byly přidány dodatky o~instalaci a~nasazení na běžně používaných a~zdarma dostupných serverech Tomcat a~JBoss. Celý systém Java Enterprise Edition je velmi obsáhlý a~tato práce v~žádném případě neobsahuje vše, co Java EE nabízí. Pro tvorbu dynamických webových stránek existuje nespočet frameworků. Mezi nejpoužívanější patří JSF (Java Server Faces), Struts 2 a~Wicket. K~EJB existuje zase alternativní a~hodně využívaná technologie ukládání dat --- Spring. Mezi novinky v~Javě EE můžeme zařadit framework Seam od autorů serveru JBoss, který se snaží spojit dohromady EJB a~JSF. Poměrně málo prostoru je v~komunitě webového programování věnováno nesmírně zajímavé problematice clusterování a~distribuovanému programování, tedy vytvoření programu, který běží na mnoha serverech naráz, zároveň se však z~venku tváří jako jedna aplikace. Clusterování na nižší úrovni je už zabudováno do serveru JBoss, více se lze dočíst v~příručce \cite{JBoss Clustering}. Lze předpokládat, že toto téma bude v~blízké budoucnosti velmi žádané. \end{conclusions-cz} \begin{conclusions-en} This work describes some technologies from Java Enterprise Edition system. It has been written as a~learning material that explains function of these technologies and basic programming constructions. The text includes many examples as well as experience from real programming. Source codes of the examples are included on attached CD. The whole Java EE system is includes many technologies and this work couldn't include all of them. Readers who are interested, are encouraged to read more about different frameworks for web programming, including JSF (Java Server Faces), Struts 2, Spring and other. Also very interesting topic is clustering of applications using JBoss server. \end{conclusions-en} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% :Bibliography %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newpage \begin{thebibliography}{99} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: HTTP %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{HTTP Wiki} \emph{HTTP -- Wikipedia, the free encyclopedia} [online].\\ last modified 11 Aug 2009.\\ $<$http://en.wikipedia.org/wiki/Http$>$. \bibitem{HTTP RFC} Network Working Group.\\ \emph{Hypertext Transfer Protocol -- HTTP/1.1} [online].\\ 1999, last modified 01 Sep 2004.\\ $<$http://www.w3.org/Protocols/rfc2616/rfc2616.html$>$. \bibitem{URL Encoding Wiki} \emph{Percent-encoding -- Wikipedia, the free encyclopedia} [online].\\ last modified 07 Nov 2009 [cit. 14 Nov 2009].\\ $<$http://en.wikipedia.org/wiki/URL\_encoding$>$. \bibitem{HTTP Digest Wiki} \emph{Digest access authentication -- Wikipedia, the free encyclopedia} [online].\\ last modified 14 Nov 2009 [cit. 14 Nov 2009].\\ $<$http://en.wikipedia.org/wiki/Digest\_access\_authentication$>$. \bibitem{HTTP 404 Wiki} \emph{HTTP 404 -- Wikipedia, the free encyclopedia} [online].\\ last modified 20 Nov 2009 [cit. 20 Nov 2009].\\ $<$http://en.wikipedia.org/wiki/HTTP\_404$>$. \bibitem{Apache HTTP} \emph{HttpClient -- HttpClient Home} [online].\\ last modified 8 Feb 2008.\\ $<$http://hc.apache.org/httpclient-3.x/$>$. \bibitem{Apache HTTP API} \emph{Overview (HttpClient 3.1 API)} [online].\\ last modified 8 Feb 2008 [cit. 22 Nov 2009].\\ $<$http://hc.apache.org/httpclient-3.x/apidocs/index.html$>$. \bibitem{OSI Wiki} \emph{OSI model -- Wikipedia, the free encyclopedia} [online].\\ last modified 24 Nov 2009 [cit. 24 Nov 2009].\\ $<$http://en.wikipedia.org/wiki/OSI\_model$>$. \bibitem{HTTP Headers Wiki} \emph{List of HTTP headers -- Wikipedia, the free encyclopedia} [online].\\ last modified 2 Mar 2010 [cit. 5 Mar 2010].\\ $<$http://en.wikipedia.org/wiki/List\_of\_HTTP\_headers$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: Java %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Java 5.0} PECINOVSKÝ, Rudolf.\\ \emph{Myslíme objektově v jazyku Java 5.0: knihovna programátora}.\\ 1st edition, Prague: Grada Publishing a.s., 2004.\\ ISBN 80-247-0941-4. \bibitem{Navrhove vzory} PECINOVSKÝ, Rudolf.\\ \emph{Návrhové vzory}.\\ 1st edition, Prague: Computer Press a.s., 2007.\\ ISBN 978-80-251-1582-4. \bibitem{Novinky 5.0} PECINOVSKÝ, Rudolf.\\ \emph{Java 5.0: Novinky jazyka a upgrade aplikací}.\\ 1st edition, Prague: CP Books a.s., 2005.\\ ISBN 80-251-0615-2. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: JSP %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Java Server Pages} BOLLINGER, Gary -- NATARAJAN, Bharathi.\\ \emph{JSP -- Java Server Pages: Podrobný průvodce začínajícího tvůrce webu}.\\ Translation by Vladimír Soukal, Petr Hollay.\\ 1st edition, Prague: Grada Publishing a.s., 2003.\\ ISBN 80-247-0340-8. \bibitem{HTML Document Types} \emph{DOCTYPE -- Document Type Declaration} [online].\\ last modified 18 Jan 2007 [cit. 11 Aug, 2009].\\ $<$http://htmlhelp.com/reference/html40/html/doctype.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: Struts %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Programujeme Jakarta Struts} CAVANESS, Chuck.\\ \emph{Programujeme Jakarta Struts: Tvorba webových aplikací se servlety a~stránkami JSP}.\\ Translation by Slavoj Písek.\\ 1st edition, Prague: Grada Publishing a.s., 2003.\\ ISBN 80-247-0667-9. \bibitem{Struts Wikipedia} \emph{Apache Struts -- Wikipedia, the free encyclopedia} [online].\\ last modified 11 Mar 2010 [cit. 17 Mar 2010].\\ $<$http://en.wikipedia.org/wiki/Struts$>$. \bibitem{Struts Homepage} \emph{Apache Struts -- Welcome} [online].\\ last modified 16 Nov 2009 [cit. 22 Sep 2009].\\ $<$http://struts.apache.org/$>$. \bibitem{Struts Taglibs} \emph{Struts Taglib -- Welcome} [online].\\ last modified 15 Dec 2008 [cit. 22 Sep 2009].\\ $<$http://struts.apache.org/1.3.10/struts-taglib/index.html$>$. \bibitem{Struts API} \emph{Overview (Struts 1.3.10 API)} [online].\\ last modified 15 Dec 2008 [cit. 11 Mar 2010].\\ $<$http://struts.apache.org/1.3.10/apidocs/index.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: CSS %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{CSS Wikipedia} \emph{Cascading Style Sheets -- Wikipedia, the free encyclopedia} [online].\\ last modified 11 Mar 2010 [cit. 11 Mar 2010].\\ $<$http://en.wikipedia.org/wiki/Css$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: XML %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{XML v kostce} HAROLD, Elliotte Rusty -- MEANS, W. Scott.\\ \emph{XML v kostce}.\\ Translation by Martin Blažík.\\ 1st edition, Prague: Computer Press, 2002.\\ ISBN 80-7226-712-4. \bibitem{XML Reference} SKONNARD, Aaron -- GUDGIN, Martin.\\ \emph{XML -- pohotová referenční příručka}.\\ Translation by Lucie Rút Bittnerová.\\ 1st edition, Prague: Grada Publishing a.s., 2006.\\ ISBN 80-247-0972-4. \bibitem{XML Specifications} \emph{Extensible Markup Language (XML) 1.0 (Fifth Edition)} [online].\\ last modified 21 Nov 2008.\\ $<$http://www.w3.org/TR/xml/$>$. \bibitem{SAX Wikipedia} \emph{Simple API for XML -- Wikipedia, the free encyclopedia} [online].\\ last modified 13 Sep 2009.\\ $<$http://en.wikipedia.org/wiki/Simple\_API\_for\_XML$>$. \bibitem{DOM Wikipedia} \emph{Document Object Model -- Wikipedia, the free encyclopedia} [online].\\ last modified 15 Sep 2009.\\ $<$http://en.wikipedia.org/wiki/Document\_Object\_Model$>$. \bibitem{XML Schema Wikipedia} \emph{XML Schema (W3C) -- Wikipedia, the free encyclopedia} [online].\\ last modified 13 Sep 2009.\\ $<$http://en.wikipedia.org/wiki/XML\_Schema\_(W3C)$>$. \bibitem{XML Schema Date/Time} \emph{XML Schema Date/Time Datatypes} [online].\\ last modified 17 Feb 2010 [cit. 17 Feb 2010].\\ $<$http://www.w3schools.com/Schema/schema\_dtypes\_date.asp$>$. \bibitem{XPath Wikipedia} \emph{XPath 1.0 -- Wikipedia, the free encyclopedia} [online].\\ last modified 11 Aug 2009.\\ $<$http://en.wikipedia.org/wiki/XPath\_1.0$>$. \bibitem{XPath Specifications} \emph{XML Path Language (XPath)} [online].\\ 16 November 1999, last modified 13 Mr 2000.\\ $<$http://www.w3.org/TR/xpath$>$. \bibitem{Xlink Wikipedia} \emph{XLink -- Wikipedia, the free encyclopedia} [online].\\ last modified 03 Sep 2009.\\ $<$http://en.wikipedia.org/wiki/Xlink$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: Web Services %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Web Service Wikipedia} \emph{Web service -- Wikipedia, the free encyclopedia} [online].\\ last modified 18 Feb 2010 [cit. 18 Feb 2010].\\ $<$http://en.wikipedia.org/wiki/Web\_service$>$. \bibitem{Web Services Essentials} CERAMI, Ethan.\\ \emph{Web Services Essentials}.\\ 1st edition Sebastopol (California): O’Reilly Media, Inc., 2002.\\ ISBN 0-596-0024-6. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: SOAP %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{SOAP Wikipedia} \emph{SOAP -- Wikipedia, the free encyclopedia} [online].\\ last modified 11 Aug 2009.\\ $<$http://en.wikipedia.org/wiki/SOAP$>$. \bibitem{SOAP Specifications} \emph{SOAP Specifications} [online].\\ last modified 27 April 2007.\\ $<$http://www.w3.org/TR/soap/$>$. \bibitem{SOAP Styles and Uses} \emph{Which style of WSDL should I use?} [online].\\ last modified 17 Feb 2010 [cit. 17 Feb 2010].\\ $<$http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/$>$. \bibitem{WSDL Wikipedia} \emph{Web Services Description Language -- \\ Wikipedia, the free encyclopedia} [online].\\ last modified 27 July 2009.\\ $<$http://en.wikipedia.org/wiki/Web\_Services\_Description\_Language$>$. \bibitem{WSDL Specifications} CHRISTENSEN, Erik -- CURBERA, Francisco -- MEREDITH,\\ Greg -- WEERAWARANA Sanjiva.\\ \emph{Web Service Description Language (WSDL)} [online].\\ version 1.1.\\ last modified 15 March 2001 [cit. 17 Sep 2009].\\ $<$http://www.w3.org/TR/wsdl$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: JAX-WS %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Netbeans JAX-WS Getting Started} \emph{Getting Started with JAX-WS Web Services -- \\ Netbeans IDE 6.5/6.7 Tutorial} [online].\\ last modified 15 Sep 2009 [cit. 17 Sep 2009].\\ $<$http://www.netbeans.org/kb/docs/websvc/jax-ws.html$>$. \bibitem{wsgen} \emph{Java API for XML Web Services (JAX-WS) - wsgen} [online].\\ last modified 17 Sep 2007 [cit. 26 Mar 2010].\\ $<$https://jax-ws.dev.java.net/nonav/2.1.2/docs/wsgen.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: Axis %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Axis User's Guide} \emph{Axis User's Guide} [online].\\ version 1.2.\\ last modified 06 May 2006 [cit. 3 Mar 2010].\\ $<$http://ws.apache.org/axis/java/user-guide.html$>$. \bibitem{Axis API} \emph{Overview -- Axis API}.\\ last modified 23 Apr 2006 [cit. 17 Sep 2009].\\ $<$http://ws.apache.org/axis/java/apiDocs/index.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: REST %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{RESTful Web Services} RICHARDSON, Leonard -- RUBY, Sam.\\ \emph{RESTful Web Services}.\\ Foreword by David Heinemeier Hansson.\\ 1st edition, Sebastopol (California): O’Reilly Media, Inc., 2007.\\ ISBN 978-0-596-52926-0. \bibitem{REST Wikipedia} \emph{Representational State Transfer -- Wikipedia, the free encyclopedia} [online].\\ last modified 10 August 2009.\\ $<$http://en.wikipedia.org/wiki/Representational\_State\_Transfer$>$. \bibitem{POE} \emph{POST Once Exactly (POE)} [online].\\ last modified 20 Mar 2005 [cit. 22 Feb, 2010].\\ $<$http://www.mnot.net/drafts/draft-nottingham-http-poe-00.txt$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: JAX-RS %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{JAX-RS Features} \emph{Overview of JAX-RS 1.0 Features -- Jersey} [online].\\ last modified 11 Aug 2009 [cit. 11 Aug, 2009].\\ $<$http://wikis.sun.com/display/Jersey/Overview+of+JAX-RS+1.0+Features$>$. \bibitem{JAX-RS JavaDoc} \emph{jsr311-api 1.0 API} [online].\\ last modified 11 Aug 2009 [cit. 11 Aug, 2009].\\ $<$https://jsr311.dev.java.net/nonav/releases/1.0/index.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: SQL %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{SQL} HERNANDEZ, Michael J. -- VIESCAS, John L.\\ \emph{Myslíme v jazyku SQL: tvorba dotazů}.\\ Translation by Karel Voráček.\\ 1st edition, Prague: Grada Publishing a.s., 2004.\\ ISBN 80-247-0899-X. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: JDBC %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{JDBC Introduction} \emph{Lesson: JDBC Introduction} [online].\\ last modified 27 May 2009 [cit. 17 Sep 2009].\\ $<$http://java.sun.com/docs/books/tutorial/jdbc/overview/index.html$>$. \bibitem{JDBC Basics} \emph{Lesson: JDBC Basics} [online].\\ last modified May 2009 [cit. 17 Sep 2009].\\ $<$http://java.sun.com/docs/books/tutorial/jdbc/basics/index.html$>$. \bibitem{JDBC API} \emph{java.sql (Java Platform SE 6} [online].\\ last modified 12 Dec 2008 [cit. 17 Sep 2009].\\ $<$http://java.sun.com/javase/6/docs/api/java/sql/package-summary.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: db4o %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{db4o Wikipedia} \emph{Db4o -- Wikipedia, the free encyclopedia} [online].\\ last modified 09 Mar 2010 [cit. 13 Mar 2010].\\ $<$http://en.wikipedia.org/wiki/Db4o$>$. \bibitem{db4o Documentation} \emph{db4o 7.12 Tutorial}.\\ (přiložen v adresáři knihovny db4o)\\ $<$/doc/tutorial/db4o-7.12-tutorial.pdf$>$. \bibitem{db4o Tutorial} \emph{db4o Developer Community -- Tutorial Java Version} [online].\\ last modified 13 Jan 2010 [cit. 13 Mar 2010].\\ $<$http://developer.db4o.com/Documentation/Reference/\\ db4o-7.12/java/tutorial/docs/First.html$>$. \bibitem{db4o API} \emph{Overview (db4o -- database for objects -- documentation)} [online].\\ version 7.4.\\ last modified 13 Jan 2010 [cit. 13 Mar 2010].\\ $<$http://developer.db4o.com/Documentation/Reference/db4o-7.4/java/api/$>$. \bibitem{db4o Guide} \emph{The busy Java developer's guide to db4o: \\ Queries, updates, and identity} [online].\\ last modified 14 Mar 2010 [cit. 14 Mar 2010].\\ $<$http://www.ibm.com/developerworks/java/library/j-db4o2.html$>$. \bibitem{db4o Performance} \emph{PolePosition benchmark results} [online].\\ last modified Oct 2007 [cit. 14 Mar 2010].\\ $<$http://polepos.sourceforge.net/results/html/barcelona\_write.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: EJB %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Enterprise JavaBeans 3.0} BURKE, Bill -- MONSON-HAEFEL, Richard.\\ \emph{Enterprise Java Beans 3.0}.\\ Foreword by Linda DeMichiel.\\ 5th edition, Sebastopol (California): O’Reilly Media, Inc., 2006.\\ ISBN 978-0-596-00978-6. \bibitem{EJB 3 in Action} PANDA, Debu -- RAHMAN, Reza -- LANE, Derek.\\ \emph{EJB 3 in Action}.\\ 1st edition, Greenwich (Connecticut): Manning Publications Co., 2007.\\ ISBN 1-933988-34-7. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: NetBeans %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{NetBeans Web} \emph{Web Application Learning Trail - \\ NetBeans Tutorials, Guides and Articles} [online].\\ last modified 10 Aug 2009 [cit. 11 Aug 2009].\\ $<$http://www.netbeans.org/kb/trails/web.html$>$. \newpage \bibitem{NetBeans EJB} \emph{EJB \& Web Service Applications Learning Trail - \\ NetBeans Tutorials, Guides and Articles} [online].\\ last modified 07 Jul 2009 [cit. 11 Aug, 2009].\\ $<$http://www.netbeans.org/kb/trails/java-ee.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: Tomcat %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{Tomcat Homepage} \emph{Apache Tomcat 6.0 -- Documentation Index} [online].\\ last modified 14 May 2009 [cit. 11 Aug, 2009].\\ $<$http://tomcat.apache.org/tomcat-6.0-doc/index.html$>$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% Bibliography: JBoss %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \bibitem{JBoss Documentation} \emph{JBoss Application Server -- Installation And Getting Started Guide} [online].\\ last modified 29 Jun 2009 [cit. 23 Mar 2010].\\ $<$http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/\\ Installation\_And\_Getting\_Started\_Guide/5/html/index.html$>$. \bibitem{JBoss Clustering} \emph{JBoss Application Server Clustering Guide} [online].\\ last modified 29 Jun 2009 [cit. 2 Apr 2010].\\ $<$http://www.jboss.org/file-access/default/members/jbossas/\\ freezone/docs/Clustering\_Guide/4/html/index.html$>$. \end{thebibliography} \newpage \appendix \include{Servers/tomcat} \include{Servers/jboss} \include{cd} \end{document}