{"id":59,"date":"2014-02-02T17:38:28","date_gmt":"2014-02-02T16:38:28","guid":{"rendered":""},"modified":"2018-09-17T21:54:34","modified_gmt":"2018-09-17T19:54:34","slug":"java-ee-sprievodca-uplnych-zaciatocnikov","status":"publish","type":"post","link":"https:\/\/spireng.sk\/en\/java-ee-sprievodca-uplnych-zaciatocnikov\/","title":{"rendered":"Java EE \u2013 sprievodca \u00fapln\u00fdch za\u010diato\u010dn\u00edkov"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"imgp_img\" style=\"float: left; margin: 2px 5px;\" src=\"\/sites\/default\/files\/imagepicker\/1\/asd54s.png\" alt=\"Obr\u00e1zok\" width=\"200\" height=\"134\" \/>Ak za\u010d\u00ednate \u010d\u00edta\u0165 nejak\u00fd \u010dl\u00e1nok, tak si v\u017edy pravdepodobne podvedome kladiete ot\u00e1zku: \u201cO \u010dom to vlastne bude? Ak\u00e9 inform\u00e1cie to m\u00f4\u017ee prinies\u0165?\u201d V tomto jednom pr\u00edpade v\u00e1m to poviem presne: pok\u00fasim sa v\u00e1m na\u010drtn\u00fa\u0165, \u010do je to Java EE (na\u010drtn\u00fa\u0165 rukou \u010dloveka, ktor\u00fd sa s\u00e1m e\u0161te Java EE u\u010d\u00ed). Mo\u017eno ste u\u017e o tom po\u010duli, mo\u017eno ste videli inzer\u00e1ty, kde h\u013eadaj\u00fa program\u00e1torov znal\u00fdch Java EE a mo\u017eno m\u00e1te pocit, \u017ee by ste o tom jednoducho mali vedie\u0165 viac, lebo v\u00e1s to sk\u00f4r alebo nesk\u00f4r neminie. Na d\u00f4vode nez\u00e1le\u017e\u00ed, podstatn\u00e9 je, \u017ee sa so mnou v tomto \u010dl\u00e1nku pok\u00fasite pochopi\u0165, \u010do Java EE je (a ja si to s vami sk\u00fasim zrekapitulova\u0165).<!--more--><\/p>\n<p><!--break-->Tak\u017ee kde za\u010da\u0165? No, napr\u00edklad n\u00e1zvom. Java EE je skratka od Java Enterprise Edition. To je celkom vhodne zvolen\u00fd n\u00e1zov, lebo u\u017e s\u00e1m o sebe hovor\u00ed, \u017ee je to Java do enterprise prostredia (teda prostredia ve\u013ek\u00fdch firiem). \u010co to ale znamen\u00e1 \u201eJava do prostredia\u201c. Java ako tak\u00e1 predstavuje v\u00fdvojov\u00fa platformu, programovac\u00ed jazyk, ale tie\u017e sadu \u0161tandardov. Pod\u013ea t\u00fdchto \u0161tandardov na jednej strane vedia program\u00e1tori vyv\u00edja\u0165 k\u00f3d a na strane druhej sa pod\u013ea nich d\u00e1 vytvori\u0165 prostredie pre sp\u00fa\u0161\u0165anie tak\u00e9ho k\u00f3du. \u0160tandard teda predstavuje dohodu medzi dvoma stranami (rozhranie), ktor\u00e9 im umo\u017e\u0148uje pomerne nez\u00e1visl\u00fa formu spolupr\u00e1ce. V pr\u00edpade Javy je nutn\u00e9, aby sa hovorilo o \u0161tandardoch, preto\u017ee pre ka\u017ed\u00fd opera\u010dn\u00fd syst\u00e9m existuje r\u00f4zna implement\u00e1cia t\u00fdchto \u0161tandardov (od r\u00f4znych firiem\/organiz\u00e1cii). A v\u0161etky tieto implement\u00e1cie Javy musia by\u0165 navonok rovnak\u00e9, aby vedeli sp\u00fa\u0161\u0165a\u0165 rovnak\u00fd k\u00f3d. Ako to ale cel\u00e9 s\u00favis\u00ed s Java EE?<\/p>\n<p>Java je teda behov\u00e9 prostredie postaven\u00e9 na sade \u0161tandardov. Jave EE roz\u0161iruje t\u00fato sadu o mno\u017estvo \u010fal\u0161\u00edch, ktor\u00e9 s\u00fa pr\u00e1ve ur\u010den\u00e9 pre enterprise prostredie. Java EE je teda v podstate vylep\u0161en\u00e1 Java o mno\u017estvo nov\u00fdch vlastnost\u00ed. Niekde \u00faplne dole v Jave EE je tradi\u010dn\u00e1 Java Runtime Environment, na ktorom je naskladan\u00fdch mnoho vrstiev, kni\u017en\u00edc a modulov, a\u017e dostanete &#8230; server. \u00c1no. Java EE je hlavne o serveroch, ktor\u00e9 s\u00fa schopn\u00e9 obsl\u00fa\u017ei\u0165 mno\u017estvo po\u017eiadaviek zamestnancov, alebo z\u00e1kazn\u00edkov ve\u013ek\u00fdch firiem. T\u00fdchto serverov (\u010do s\u00fa v podstate implement\u00e1cie Java EE) je celkom dos\u0165 (omnoho viac ako je implement\u00e1ci\u00ed Java SE). Sta\u010d\u00ed vymenova\u0165 len Tomcat, Glassfish alebo JBoss AS (nie v\u0161etky ale implementuj\u00fa cel\u00fa sadu \u0161tandardov). Mnoho z nich je zadarmo a teda rovnako ako pri Java SE sa m\u00f4\u017eete pusti\u0165 do v\u00fdvoja bez nejak\u00fdch ve\u013ek\u00fdch finan\u010dn\u00fdch prostriedkov.<\/p>\n<p>Ok. Tak\u017ee Java EE je v podstate server. \u010co sa ale s tak\u00fdm serverom d\u00e1 robi\u0165? Viete pre neho vyv\u00edja\u0165 aplik\u00e1cie, ktor\u00e9 s\u00fa n\u00e1sledne na tento server nasaden\u00e9. Java EE je rozdelen\u00e1 do dvoch hlavn\u00fdch vrstiev: web tier a business tier. Web vrstva obsahuje UI, teda pou\u017e\u00edvate\u013esk\u00e9 rozhranie, ktor\u00e9 je mo\u017en\u00e9 vidie\u0165. Ide o JSP, JSF str\u00e1nky a servlety. V\u0161etko s\u00fa to technol\u00f3gie, ktor\u00e9 s\u00fa ur\u010den\u00e9 na komunik\u00e1ciu po sieti, pri\u010dom tie prv\u00e9 dve s\u00fa na generovanie web str\u00e1nok. Web tier je teda to, \u010do obsahuje k\u00f3d generuj\u00faci str\u00e1nky (zjednodu\u0161ene povedan\u00e9).<\/p>\n<p>Pod web tier je business tier, ktor\u00e1 je pln\u00e1 Enterprise Bean-ov. Enteprise Bean je trieda, ktor\u00e1 vlastne reprezentuje obchodn\u00fa logiku na serveri. To znamen\u00e1, \u017ee je to k\u00f3d, ktor\u00fd obsahuje procesy dom\u00e9ny (ako sa po\u010d\u00edta DPH pre ekonomick\u00fa oblas\u0165, ako sa spracov\u00e1va transakcia pre bankov\u00fa oblas\u0165 at\u010f.). Enterprise Bean je vlastne oby\u010dajn\u00e1 Java, ktor\u00e1 m\u00f4\u017ee by\u0165 \u0161peci\u00e1lne oanotovan\u00e1, alebo m\u00f4\u017ee implementova\u0165 r\u00f4zne rozhrania \u2013 v z\u00e1vislosti od mno\u017estva \u0161tandardov, ktor\u00e9 sa pou\u017e\u00edvaj\u00fa.<\/p>\n<p>Po business tier je u\u017e len vrstva perzistencie, teda uchovania \u00fadajov. T\u00e1 u\u017e ofici\u00e1lne nepatr\u00ed do Java EE a reprezentuje r\u00f4zne datab\u00e1zy, sie\u0165ov\u00e9 slu\u017eby, s\u00faborov\u00e9 syst\u00e9my a podobne. Java EE je teda hlavne o UI a obchodnej logike.<\/p>\n<p>Ako si teda viete predstavi\u0165 tak\u00fa Java EE aplik\u00e1ciu? M\u00f4\u017ee by\u0165 ulo\u017een\u00e1 v troch r\u00f4znych s\u00faboroch: .jar, .war a .ear. Ten prv\u00fd reprezentuje klasick\u00fa java kni\u017enicu, ale v Java EE v \u0148om m\u00f4\u017ee by\u0165 ulo\u017een\u00e9 Enterprise Beans. .war znamen\u00e1 \u201eweb archive\u201c a obsahuje triedy a s\u00fabory pre UI vrstvu. A .ear znamen\u00e1 \u201eenterprise archive\u201c a m\u00f4\u017ee obsahova\u0165 v\u0161etko, \u010do sa do Java EE zmest\u00ed. Teda s\u00fabory a kni\u017enice pre UI aj business tier vrstvu. V\u00fdsledok programovania v Java EE je teda kni\u017enica, ktor\u00e1 sa nasad\u00ed do aplika\u010dn\u00e9ho servera a spust\u00ed v \u0148om.<\/p>\n<p>Nieko\u013ekokr\u00e1t som spomenul, \u017ee Java EE server je vlastne implement\u00e1cia nieko\u013ek\u00fdch \u0161pecifik\u00e1ci\u00ed postaven\u00e1 na Jave SE. O ak\u00e9 \u0161pecifik\u00e1cie ide? Tu je kr\u00e1tky zoznam niektor\u00fdch z nich:<\/p>\n<ul>\n<li><em>JPA \u2013 Java Persistence Api<\/em> \u2013 object-relation mapovanie<\/li>\n<li><em>JTA \u2013 Java Transaction Api<\/em> \u2013 podpora transakci\u00ed naskrz cel\u00fdm serverom a r\u00f4znymi perzisten\u00fdmi \u00falo\u017eiskami<\/li>\n<li><em>CDI \u2013 Context and Dependency Injection<\/em> \u2013 implement\u00e1cia Dependency Injection vzoru na prep\u00e1janie Enterprise Beanov<\/li>\n<li><em>JAX-WS \u2013 Java Api for XML Web Services<\/em> \u2013 \u0161tandard pre vytv\u00e1ranie SOAP slu\u017eieb<\/li>\n<li><em>JAX-RS \u2013 Java Api for RESTful Web Services<\/em> \u2013 \u0161tandard pre vytv\u00e1ranie REST sie\u0165ov\u00fdch slu\u017eieb<\/li>\n<li><em>Servlety<\/em> \u2013 \u0161tandard umo\u017e\u0148uj\u00faci serveru spracov\u00e1va\u0165 a odpoveda\u0165 na r\u00f4zne po\u017eiadavky prich\u00e1dzaj\u00face po sieti<\/li>\n<li><em>JSP \u2013 JavaServer Pages<\/em> \u2013 v podstate statick\u00e1 web str\u00e1nka, ktor\u00e1 je pred odovzdan\u00edm klientovi spracov\u00e1van\u00e1 na z\u00e1klade \u0161peci\u00e1lnych zna\u010diek<\/li>\n<li><em>JSF \u2013 JavaServer Faces<\/em> \u2013 mlad\u0161\u00ed bra\u0165 predch\u00e1dzaj\u00facej technol\u00f3gie, ktor\u00e1 je za pomoci servletov pou\u017e\u00edvan\u00e1 na ako s\u00fa\u010das\u0165 MVC vzoru<\/li>\n<li><span lang=\"sk-SK\"><em>JACC \u2013 <\/em><\/span><em><span style=\"background: transparent;\">Java Authorization Contract for Containers <\/span><\/em><span lang=\"sk-SK\">\u2013 \u0161tandard, ktor\u00fd umo\u017e\u0148uje na autentifik\u00e1ciu v aplik\u00e1cii pou\u017e\u00edva\u0165 in\u00fd modul (cez rozhranie servera)<\/span><\/li>\n<li><em>JASPIC &#8211; Java Authentication Service Provider Interface for Containers<\/em> \u2013 to ist\u00e9, ako predch\u00e1dzaj\u00faci pr\u00edpad ale pre autoriz\u00e1ciu<\/li>\n<li>a mnoho \u010fal\u0161\u00edch&#8230;.<\/li>\n<\/ul>\n<p><span lang=\"sk-SK\">Java EE nie je technol\u00f3gia, ktor\u00e1 sa d\u00e1 v svete v\u00fdpo\u010dtovej techniky dlhodobo ignorova\u0165. Tak ako sa sk\u00f4r alebo nesk\u00f4r stretnene s C++, .Net-om, PHP alebo XML \u010di UML, sk\u00f4r ale<\/span><span lang=\"sk-SK\">bo<\/span><span lang=\"sk-SK\"> nesk\u00f4r naraz\u00edte aj na <\/span><span lang=\"sk-SK\">\u0148u<\/span><span lang=\"sk-SK\">. V pr\u00edpade, \u017ee by v\u00e1s zauj\u00edmalo viac, tak na str\u00e1nke Oraclu si je mo\u017en\u00e9 k nej stiahnu\u0165 tutorial: <\/span><a href=\"http:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/\">http:\/\/docs.oracle.com\/javaee\/6\/tutorial\/doc\/<\/a><span lang=\"sk-SK\">.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Ak za\u010d\u00ednate \u010d\u00edta\u0165 nejak\u00fd \u010dl\u00e1nok, tak si v\u017edy pravdepodobne podvedome kladiete ot\u00e1zku: \u201cO \u010dom to vlastne bude? Ak\u00e9 inform\u00e1cie to m\u00f4\u017ee prinies\u0165?\u201d V tomto jednom pr\u00edpade v\u00e1m to poviem presne: pok\u00fasim sa v\u00e1m na\u010drtn\u00fa\u0165, \u010do je to Java EE (na\u010drtn\u00fa\u0165 rukou \u010dloveka, ktor\u00fd sa s\u00e1m e\u0161te Java EE u\u010d\u00ed). Mo\u017eno ste u\u017e o tom po\u010duli, [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-59","post","type-post","status-publish","format-standard","hentry","category-vyvoj-softveru"],"_links":{"self":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/59","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/comments?post=59"}],"version-history":[{"count":1,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/59\/revisions"}],"predecessor-version":[{"id":177,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/59\/revisions\/177"}],"wp:attachment":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/media?parent=59"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/categories?post=59"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/tags?post=59"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}