b'\n_START_ARTICLE_\nJ2EE\n_START_PARAGRAPH_\nJava 2 Platform, Enterprise Edition (J2EE) \xe2\x80\x93 standartin\xc4\x97 daugialy\xc4\x8di\xc5\xb3 program\xc5\xb3 k\xc5\xabrimo Java kalba platforma, paremta moduliniais komponentais, vykdomais program\xc5\xb3 serveryje. J2EE naudojama keletas technologij\xc5\xb3, toki\xc5\xb3 kaip JDBC ar CORBA, prapl\xc4\x97st\xc5\xb3 pritaikant tikslin\xc4\x97ms sistemoms.\n_START_SECTION_\nJ2EE lygiai\n_START_PARAGRAPH_\nJ2EE sistema yra keli\xc5\xb3 lygi\xc5\xb3 (angl. tiers). Vartotojui artimiausias lygis yra interneto nar\xc5\xa1ykl\xc4\x97, veikianti vartotojo kompiuteryje. Visi kiti lygiai veikia viename arba keliuose serveriuose.\n_START_SECTION_\nInterneto komponent\xc5\xb3 lygis\n_START_PARAGRAPH_\nPagrindiniai J2EE modelio elementai yra internetas ir nar\xc5\xa1ykl\xc4\x97 \xe2\x80\x93 b\xc5\xabtent jie suteikia vartotojui s\xc4\x85saj\xc4\x85 dirbti su informacin\xc4\x97mis \xc4\xafmoni\xc5\xb3 sistemomis. \xc5\xa0is metodas prana\xc5\xa1us tuo, kad nar\xc5\xa1ykl\xc4\x97 yra paprasta programin\xc4\x97 \xc4\xafranga, veikianti visose operacin\xc4\x97se sistemose, nereikalaujanti daug resurs\xc5\xb3 ir turinti kitus privalumus. Bendrauti su nar\xc5\xa1ykl\xc4\x97mis J2EE apibr\xc4\x97\xc5\xbeia servletus ir JSP specifikacij\xc4\x85. B\xc5\xabtent \xc5\xa1ie komponentai, naudojami kartu, leid\xc5\xbeia atskirti verslo logik\xc4\x85 nuo vaizdin\xc4\x97s dalies, taip supaprastinant interneto sistemos k\xc5\xabrim\xc4\x85 ir palaikym\xc4\x85. Servletai \xe2\x80\x93 tai Java klas\xc4\x97s, paveldin\xc4\x8dios tam tikr\xc4\x85 abstrak\xc4\x8di\xc4\x85 klas\xc4\x99 ir realizuojan\xc4\x8dios metodus, sukurian\xc4\x8dius interneto puslap\xc4\xaf._NEWLINE__NEWLINE_ public class Servletas extends HttpServlet {_NEWLINE_   ..._NEWLINE_   public void doGet(HttpServletRequest request,_NEWLINE_                     HttpServletResponse response)_NEWLINE_     throws ServletException, IOException_NEWLINE_   {_NEWLINE_     PrintWriter out = response.getWriter();_NEWLINE_     out.println(\xe2\x80\x9e<html><head><title>Labas</title></head></html>\xe2\x80\x9c);_NEWLINE_   }_NEWLINE_   ..._NEWLINE_ }_NEWLINE_Kliento nar\xc5\xa1yklei papra\xc5\xa1ius puslapio ir specialiam interneto serveriui, palaikan\xc4\x8diam servletus (pvz., Mortbay Jetty, Apache Tomcat) nusprendus pagal adres\xc4\x85, kad reikia vykdyti b\xc5\xabtent \xc5\xa1ios klas\xc4\x97s metodus, klientui bus \xc4\xafra\xc5\xa1ytas atsakymas._NEWLINE_JSP atveju kiekvienas interneto puslapis yra pana\xc5\xa1esnis \xc4\xaf \xc4\xafprast\xc4\x85 HTML puslap\xc4\xaf._NEWLINE__NEWLINE_ <html>_NEWLINE_   <body>Dabar yra_NEWLINE_         <%= new java.util.Date() %>_NEWLINE_   </body>_NEWLINE_ </html>_NEWLINE_Kiekvienas JSP puslapis paver\xc4\x8diamas servletu, o galiausiai ir sukompiliuojamas. Pirm\xc4\x85 kart\xc4\x85 papra\xc5\xa1ius puslapio, jo gali tekti palaukti (nes puslapis ver\xc4\x8diamas servletu ir kompiliuojamas), ta\xc4\x8diau antr\xc4\x85 ir paskesnius kartus puslapis klientui bus pateikiamas grei\xc4\x8diau._NEWLINE_Servletai ir JSP puslapiai gali b\xc5\xabti naudojami kartu. \xc5\xa0iuo atveju servletas atlieka loginius veiksmus ir galiausiai nurodo JSP serveriui klientui pateikti JSP puslap\xc4\xaf. Taip atskiriama verslo ir vaizdavimo logika. Nepriklausomos grup\xc4\x97s dideliuose projektuose gali dirbti prie atskir\xc5\xb3 projekto dali\xc5\xb3 ir specializuotis savo srityje._NEWLINE_Servlet\xc5\xb3 ir JSP puslapi\xc5\xb3 did\xc5\xbeiausias prana\xc5\xa1umas prie\xc5\xa1 CGI (Common Gateway Interface) \xe2\x80\x93 kiekvien\xc4\x85 kart\xc4\x85 gavus u\xc5\xbeklaus\xc4\x85 nereikia kurti naujo proceso. JSP serveriai kiekvienai u\xc5\xbeklausai apdoroti naudoja tik atskir\xc4\x85 gij\xc4\x85, kurios k\xc5\xabrimas ir inicializavimas reikalauja ma\xc5\xbeiau resurs\xc5\xb3 nei naujo proceso k\xc5\xabrimas.\n_START_SECTION_\nEJB lygis\n_START_PARAGRAPH_\nTeisingai para\xc5\xa1ytoje sistemoje anks\xc4\x8diau min\xc4\x97ti komponentai atsakingi i\xc5\xa1imtinai u\xc5\xbe Interneto puslapi\xc5\xb3 k\xc5\xabrim\xc4\x85 (j\xc5\xb3 vaizd\xc4\x85). U\xc5\xbe vis\xc4\x85 darbo logik\xc4\x85 (kain\xc5\xb3 ir nuolaid\xc5\xb3 apskai\xc4\x8diavimas, duomen\xc5\xb3 baz\xc4\x97s u\xc5\xbeklausos bei papildymai, \xc4\xafvairi\xc5\xb3 verslo taisykli\xc5\xb3 taikymas ir pan) yra atsakingi Interneto komponent\xc5\xb3 kvie\xc4\x8diami EJB (angl. enterprise java beans \xe2\x80\x93 \xc4\xafmon\xc4\x97s Java pupos) moduliai. \xc5\xa0i\xc5\xb3 moduli\xc5\xb3 metodai Interneto komponent\xc5\xb3 pasiekiami arba lokaliai, arba per kompiuterin\xc4\xaf tinkl\xc4\x85 (naudojant CORBA ar RMI). Jie neb\xc5\xabtinai veikia tame pa\xc4\x8diame kompiuteryje, kaip ir Interneto komponentai._NEWLINE_Skiriami trumpaam\xc5\xbeiai ir ilgalaikiai EJB komponentai. Trumpaam\xc5\xbeiai komponentai sukuriami i\xc5\xa1pildyti vien\xc4\x85 vartotojo u\xc5\xbeklaus\xc4\x85 arba aptarnauti vien\xc4\x85 vartotojo sesij\xc4\x85. Ilgalaikiai komponentai sukuriami kuomet saugom\xc4\x85 informacij\xc4\x85 (tarkim, vartotojo vard\xc4\x85 ir jo slapta\xc5\xbeod\xc4\xaf) reikia \xc4\xafsiminti ilgam ir \xc5\xa1ie duomenys neturi dingti server\xc4\xaf i\xc5\xa1jungus. Ilgalaiki\xc5\xb3 komponent\xc5\xb3 duomenys automati\xc5\xa1kai i\xc5\xa1saugomi sekan\xc4\x8diame lygyje, duomen\xc5\xb3 baz\xc4\x97se.\n_START_SECTION_\nDuomen\xc5\xb3 baz\xc4\x97s lygis\n_START_PARAGRAPH_\nSavo darbui atlikti EJB komponentai susisiekia su viena ar keliomis duomen\xc5\xb3 baz\xc4\x97mis, kurios irgi neb\xc5\xabtinai turi b\xc5\xabti tame pa\xc4\x8diame serveryje. Duomen\xc5\xb3 baz\xc4\x97 saugo \xc4\xafvairi\xc4\x85 ilgalaik\xc4\x99 informacij\xc4\x85, kurios gali b\xc5\xabti sukaupta daugelis gigabait\xc5\xb3. Atsakingiems duomenims saugoti naudojami duomen\xc5\xb3 bazi\xc5\xb3 klasteriai, kur ta pati informacija \xc4\xafra\xc5\xa1ome keliuose serveriuose._NEWLINE_Nesud\xc4\x97tingais atvejais EJB komponent\xc5\xb3 turinys duomen\xc5\xb3 baz\xc4\x97se i\xc5\xa1saugomas automati\xc5\xa1kai, ir jokio papildomo kodo tam ra\xc5\xa1yti nereikia. Ta\xc4\x8diau jei duomen\xc5\xb3 strukt\xc5\xabros labai sud\xc4\x97tingos, automatinio i\xc5\xa1saugojimo sistema j\xc5\xb3 automati\xc5\xa1kai i\xc5\xa1saugoti nepaj\xc4\x97gia. Tuomete EJB programuotojai ra\xc5\xa1o kod\xc4\x85, kuris tiesiogiai bendrauja su duomen\xc5\xb3 baze SQL kalba, naudodamas tam JDBC protokol\xc4\x85.\n_START_SECTION_\nRealmas\n_START_PARAGRAPH_\nBeveik visada su J2EE sistema ne kiekvienas gali daryti k\xc4\x85 nori: yra vienas ar keli administratori\xc5\xb3 bei operatori\xc5\xb3 lygiai ir yra naudotojai, kuri\xc5\xb3 teis\xc4\x97s irgi gali b\xc5\xabti nevienodos. Duomen\xc5\xb3 baz\xc4\x97, kurioje apra\xc5\xa1ytos visos vartotoj\xc5\xb3 grup\xc4\x97s bei j\xc5\xb3 vaidmenys, J2EE sistemoje vadinama realmu (angl. realm). Realmas taip pat tvarko visus vartotoj\xc5\xb3 slapta\xc5\xbeod\xc5\xbeius, \xc5\xa1ifravimo liudijimus ir vartotojo prisijungimo proces\xc4\x85.\n_START_SECTION_\nJ2EE programa\n_START_PARAGRAPH_\nParuo\xc5\xa1ta naudojimui J2EE programa yra platinama kaip archyvo tipo failas. Jo standartinis pl\xc4\x97tinys yra .ear. \xc5\xa0iame faile yra du vidiniai archyvai. Viename j\xc5\xb3 saugomi Interneto lygio komponentai (pl\xc4\x97tinys .war), kitame \xe2\x80\x93 EJB lygio komponentai (pl\xc4\x97tinys .jar). Jei programos servletai ir JSP puslapiai vis\xc4\x85 darb\xc4\x85 atlieka patys vieni ir EJB komponent\xc5\xb3 n\xc4\x97ra, kartais atskirai platinamas tik .war archyvas. Kaip ir kitas programas, tokius modulius galima ne tik kurti pa\xc4\x8diam, bet ir nusipirkti i\xc5\xa1 kito gamintojo.\n_START_SECTION_\nJ2EE i\xc5\xa1pildymai\n_START_PARAGRAPH_\nJ2EE suk\xc5\xabr\xc4\x97 Sun Microsystems, ta\xc4\x8diau esama ir alternatyvi\xc5\xb3 \xc5\xa1ios sistemos i\xc5\xa1pildym\xc5\xb3. Dalis j\xc5\xb3 (taip pat ir kai kurie atviro kodo i\xc5\xa1pildymai) turi oficial\xc5\xb3 Sun patvirtinim\xc4\x85 (liudijim\xc4\x85), jog sistema para\xc5\xa1yta teisingai ir suteikia visas reikalingas galimybes. Teisingai para\xc5\xa1yti J2EE moduliai veikia nepriklausomai nuo to, kokio gamintojo J2EE supanti sistema naudojama.'