Operációs rendszerek 2 Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia Tanszék egyetemi tanársegéd Dokumentum verzió: 0.0.8, DEIK_MIPPOS2_BN_8.odp Debrecen, november 5. A 8. előadás és labor anyaga – Java EE Programozó Páternoszter DE IK mérnök informatikus szak előadás és labor
Operációs rendszerek előadás Bátfai, Norbert Debreceni Egyetem, Informatikai Kar, Információ Technológia Tanszék Copyright © 2008 Bátfai Norbert E közlemény felhatalmazást ad önnek jelen dokumentum sokszorosítására, terjesztésére és/vagy módosítására a Szabad Szoftver Alapítvány által kiadott GNU Szabad Dokumentációs Licenc 1.2-es, vagy bármely azt követő verziójának feltételei alapján. Nem változtatható szakaszok: A szerzőről. Címlap szövegek: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra. Hátlap szövegek: Belépés a gépek mesés birodalmába. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with the Invariant Sections being: A szerzőről, with the Front- Cover Texts being: Programozó Páternoszter, Bátfai Norbert, Gép melletti fogyasztásra, and with the Back-Cover Texts being: Belépés a gépek mesés birodalmába. Felhasználási engedély A GNU Free Documentation License nem hivatalos magyar fordítása:
A nyolcadik előadás vázlata Bevezetés és elmélet ● Java EE 5, EJB 3.0 ● Java EE alkalmazásszerver-fürtök Példák ● GlassFish, JBoss, Apache Geronimo ● Apache és GlassFish, terhelés elosztás Gyakorlat ● GlassFish fürtözés, NetBeans és GlassFish
Ismétlés 1. félév 2. előadás, virtualizáció: ● Hardver emuláció (QEMU, Bochs) ● Teljes virtualizáció (QEMU) ● Paravirtualizáció (XEN, UML) ● OS szintű virtualizáció (Solaris zónák, OpenVZ, Linux-VServer, FreeBSD Jails) ● Alkalmazás szintű virtualizáció (Java VM,.NET) ● Hardveres virtualizáció (Intel VT, AMD-V)
Kitekintés Elosztott objektumorientált technológiák: ● Java EE (homogén) a jelen előadás ● CORBA (heterogén) a következő előadás témája
Feladatok Otthoni feladat: készíts egy Java EE alkalmazásszerver-fürtöt! „Bizonyítékul” néhány képet küldj el az címemre, az „OS-OTTHONI-FÜRT tárggyal. Otthoni feladat: készíts egy egyszerű, például egy „Helló, Világ!” webalkalmazást! „Bizonyítékul” néhány képet küldj el az címemre, az „OS-OTTHONI-WAR tárggyal. Otthoni feladat: készíts egy egyszerű, például egy „Helló, Világ!” EJB alkalmazást (stateless session bean-el)! „Bizonyítékul” néhány képet küldj el az címemre, az „OS-OTTHONI- EAR tárggyal. Kiemelt otthoni feladat: készíts egy egyszerű EJB alkalmazást és deployold saját fürtödön! „Bizonyítékul” néhány képet küldj el az címemre, az „OS-KIEMELTOTTHONI-EAR tárggyal. Kiemelt otthoni feladat: készíts egy egyszerű EJB alkalmazást és deployold saját fürtödön! Használd Apache-val a Glassfish-t „Bizonyítékul” néhány képet küldj el az címemre, az „OS-KIEMELTOTTHONI-APACHE tárggyal.
Java EE – válasz az új kihívásokra „A Java EE egyébként olyan – mennyiségiből minőségibe átcsapó – kérdésekre tud értelmes válaszokat adni, hogy mi van, ha a programom népszerű lesz és egy időben ember akarja majd használni? És idővel még sikeresebb lesz és egyszerre, már tízszer annyi, felhasználó akarja majd használni és kis idő múlva pedig már és így tovább!... „* Egy „klasszikusan” (a Java civilizáció előtt) képzett programozó nem is tudja értelmezni, értelmezési tartományon kívülinek tartja a kérdést. *: Bátfai Norbert: Nehogy már a mobilod nyomkodjon Téged! A programozás egy szellemi sport: ismerd meg te is az alaplépéseket! Debrecen : DEENK, (ISBN: , 98 p.: ill., 24 cm)
Java EE 5, EJB 3.0 The Java EE 5Tutorial For Sun Java System Application Server (1124 oldal) Szabványok és olyan alkalmazásmodell, amiben az iménti kérdés kezelhető.
Java EE Adatbázis réteg Üzleti logika Webes logika Kliense k EJB konténer WEB konténer Böngészőben vékony kliensek
Java EE API-k Adatbázis réteg Üzleti logika Webes logika Kliense k EJB konténer WEB konténer Böngészőben vékony kliensek Enterprise JavaBeans EJB Java Servlet JavaServer Pages JSP Java Database Connectivity JDBC (Java Naming and Directory JNDI)
Java EE vállalati alkalmazások Enterprise Application Archive, EAR Deployment
<web-app version="2.5" xmlns=" xmlns:xsi=" xsi:schemaLocation=" EHelloServlet EHelloServlet /EHS 30 WEB-INF/web.xml
GlassFish - Open Source Application Server V2V2 V3V3 Licenc: CDDL, GNU GPL v2
node agent Se rve r Ins tan ce s node agent Se rve r Ins tan ce s node agent Se rve r Ins tan ce s Fürt Terhelés elosztás Kliense k Fürtözés
A következő két példa: ● két fizikailag különböző gép alkotta két szerver példányos fürt ● egyetlen gépen kialakított két szerver példányos fürt (Az OS-KIEMELTOTTHONI-EAR feladatban bármelyiket elfogadom és persze terheléselosztás nélkül.)
Két gépes fürt – glassfish install, kicsomagolás Az iam043.inf.unideb.hu gépen l
Két gépes fürt – glassfish konfig fürtös módban Az iam043.inf.unideb.hu gépen
Két gépes fürt – glassfish indítás Az iam043.inf.unideb.hu gépen
Két gépes fürt – megy a szerver? Az iam043.inf.unideb.hu gépen
Két gépes fürt - Az iam043.inf.unideb.hu gépen
Két gépes fürt – az admin felület Az iam043.inf.unideb.hu gépen
Két gépes fürt – node agent létrehozás, indítás Az iam043.inf.unideb.hu gépen
Két gépes fürt – a node agent fut az egyiken Az iam043.inf.unideb.hu gépen
Két gépes fürt – ugyanez a másik gépen Az iam029.inf.unideb.hu gépen
Két gépes fürt – Az iam029.inf.unideb.hu gépen
Két gépes fürt – ugyanez a másik gépen Az iam029.inf.unideb.hu gépen
Két gépes fürt – Az iam029.inf.unideb.hu gépen
Két gépes fürt – vissza az első gépre Az iam043.inf.unideb.hu gépen
Két gépes fürt – fürt létrehozása ElsoKetGepesFurtom néven Az iam043.inf.unideb.hu gépen
Két gépes fürt – miután bekattintottuk a példányokat (instances), s majd elindítottuk őket Az iam043.inf.unideb.hu gépen További infók: /gatqf?a=view
Két gépes fürt – másnap újra elindítom... Az egyik gépen: asadmin start-domain domain1 asadmin start-node-agent iam043 illetve a másikon: asadmin start-node-agent iam029
Két gépes fürt – másnap újra elindítom...
Az első EJB alkalmazás
stateless session bean
Az első EJB alkalmazás
a webes réteg
Az első EJB alkalmazás
Az első EJB alkalmazásunk deployozása c:\Documents and Settings\Bátfai Norbert\ Dkumentumok\NetBeansProjects\EJBHello\dist\EJBHello.ear
Az első EJB alkalmazás fut
Az első EJB alkalmazás valóban fut war/EHS
Az első EJB alkalmazás a fürtön
Az első EJB alkalmazás a fürtön
war/EHS
Az első EJB alkalmazás a fürtön war/EHS
Az első EJB alkalmazás a fürtön
Fürt egy gépen l
Fürt egy gépen
c:\Documents and Settings\Bátfai Norbert\Dokumentumok\EARs\EJBHello.ear
Fürt egy gépen
Fürt egy gépen
Fürt egy gépen
GlassFish V3
Apache és GlassFish ● Apache : ● Apache Tomcat Connector JK : workers.properties fájl létrehozásása: doc/reference/workers.htmlhttp://tomcat.apache.org/connectors- doc/reference/workers.html … workers.tomcat_home=c:\glassfishc:\glassfish … worker.list=worker1 worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port= ● Az Apache conf/httpd.conf szerkesztése: doc/webserver_howto/apache.htmlhttp://tomcat.apache.org/connectors- doc/webserver_howto/apache.html … JkMount /EJBHello-war/* worker1 … ● Tomcat-ből a tomcat-ajp.jar a c:\glassfish\lib-be ● c:\glassfish\domains\domain1\config\domain.xml-be: -Dcom.sun.enterprise.web.connector.enableJK=8009 vagy asadmin create-jvm-options -Dcom.sun.enterprise.web. connector.enableJK=8009 ● Apache, Glassfish indítása További infók: (Apache 2.0-val)
Apache és GlassFish
war/EHS
Apache és GlassFish
Terhelés elosztás ● workers.properties fájl szerkesztése: … worker.list=loadbalancer … worker.worker1.host=iam043.inf.unideb.hu a többi ua. … worker.worker2.host=iam029.inf.unideb.hu a többi ua., mint worker1 … worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=worker1,worker2... ● Az Apache conf/httpd.conf szerkesztése: … JkMount /EJBHello-war/* loadbalancer …
Terhelés elosztás C:\Documents and Settings\Bátfai Norbert> asadmin create-jvm-options --target Els oKetGepesFurtom -Dcom.sun.enterprise.web.connector.enableJK=8009 Command create-jvm-options executed successfully.
Terhelés elosztás
Apache Geronimo / További példák
Telepítés/indítá s
Telepíté s
0
manage r
Az első Web alkalmazás (a NetBeans-ben New project.../Java Web/Web apps)
c:\Documents and Settings\Bátfai Norbert\ Dokumentumok\NetBeansProjects\ WEBHello\dist\WEBHello.war
JBoss.org: Community További példák
Köszönöm a figyelmet Az előadások és a gyakorlatok kölcsönösen, oda-vissza építenek egymásra. Skype: batfai.norbert MSN: Az óra fóruma: