Osztott rendszerek, Java EE. Általános bevezető



Hasonló dokumentumok
MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Java Web technológiák

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

JAVA webes alkalmazások

Bevezetés J2EE komponensek Java2EE API-k Web alkalmazások Dokumentáció Fejlesztői környezet. JAVA technológiák - bevezető

A Java EE 5 plattform

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

A TANTÁRGY ADATLAPJA

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

A TANTÁRGY ADATLAPJA

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

Junior Java Képzés. Tematika

A TANTÁRGY ADATLAPJA

Osztott alkalmazások fejlesztési technológiái Áttekintés

A TANTÁRGY ADATLAPJA

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

JEE tutorial. Zsíros Levente, 2012

A TANTÁRGY ADATLAPJA

Java Servlet technológia

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Közösség, projektek, IDE

Bevezetés E LSŐ FEJEZET

Enterprise Java Beans. EJB - Általános bevezető

Web programoz as

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

ALKALMAZÁS KERETRENDSZER

Web-fejlesztés NGM_IN002_1

5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

Web-fejlesztés NGM_IN002_1

Webalkalmazás fejlesztés Java EE környezetben NetBeans segítségével: JavaServer Faces 1.2 AJAX

Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)

Java szervlet technológia

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

Java servlet technológia. Web alkalmazások. Servlet-et használni érdemes, ha. JSP-t használni érdemes, ha. Servlet-JSP kombináció (MVC) szükséges, ha

Bevezető. Servlet alapgondolatok

A TANTÁRGY ADATLAPJA

I. Szakmai törzsanyag

Java technológiák - ANTAL Margit. komponensek. A HTTP protokoll. Webkonténerek és szervletek. Egyszerű HTTP. ANTAL Margit.

Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban

Programozó, csoportvezető

NAGY TELJESÍTM. Szerzők Dévai. István Automatizálási. és s Alkalmazott Informatikai Tanszék

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

Java servlet technológia 1 / 40

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Debreceni Egyetem Informatikai Kar JAVA ENTERPRISE COMPUTING

Hello Java Enterprise Edition

The Power To Develop. i Develop

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

A JavaServer Pages (JSP)

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

Komponens modellek. 3. Előadás (első fele)

webalkalmazások fejlesztése elosztott alapon

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

Informatikai Tesztek Katalógus

Flex: csak rugalmasan!

Hello Java Enterprise Edition

IBM Business Process Manager változat 8 alváltozat 5. Az IBM Business Process Manager áttekintése

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

webmathematica bemutatása

SZAKDOLGOZAT CSEHI MIKLÓS DEBRECEN 2009.

Bevezetés Működési elv AJAX keretrendszerek AJAX

Szervlet-JSP együttműködés

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

MUNKAIDŐ-NYILVÁNTARTÁS ALKALMAZÁS

S04-2 Elosztott alkalmazások készítése

Párhuzamos és Grid rendszerek

Struts2 keretrendszer

Webes alkalmazások fejlesztése

Termékbemutató prospektus

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

Rational. Application Developer. Telepítési kézikönyv. 7.0 változat GI

A JavaServer Pages (JSP)

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

A webhelyhez kötődő szoftverek architektúrája

Web programozás. Internet vs. web. Internet: Az Internet nyújtotta néhány alapszolgáltatás:

A Java Server Pages technológia. JSP és JSP elemkönyvtárak, JSTL alapok

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

COMPANY PROFILE SZOFI ALGORITHMIC RESEARCH KFT

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

A TANTÁRGY ADATLAPJA

A Java nyelv bemutatása

Szerver oldali Java technológiák vállalati rendszerek fejlesztéséhez.

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

A WEB programozása - JSP1 dr.gál Tibor őszi félév

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

Fejlesztés és üzemeltetés WebLogic platformon

Módszerek Vizsgálata. Diplomamunka

Korszerű webes architektúrák hatékonyság-vizsgálata

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

BME IK 2 JAVA SERVER FACES UML-1 20/11/2013. Apache Struts. Spring MVC. Java Server Faces. Google Web Toolkit. Képességek

EGY NAGYBÓL HÚSZ KISEBB

A JavaServer Pages (JSP)

Átírás:

Osztott rendszerek, Java EE Általános bevezető

Osztott rendszerek Hálózati alkalmazások (java.net, java.nio, Apache Mina, stb.) Web-programozás (Servlet, JSP, JSTL, JSF, JavaFX, GWT, Struts, stb.) Webszolgáltatások (Java EE XML API, SOAP, JAX-WS, stb.) Távoli metódushívások, osztott komponensmodellek (CORBA, RMI) Vállalati rendszerek (Java EE, EJB, JPA, JTA, JMS, stb.) Grid Computing, Cloud Computing, stb.

Fejlesztés Paradigmák/nyelvek: Objektumorientált programozás, interfészek jelentősége Komponens alapú szoftverfejlesztés Szolgáltatásorientált architektúrák Aspektusorientált programozás Minták Alapvető minták (Iterator, Factory, Singleton, Observer, stb., stb.) MVC, Abstract DAO Factory, Multitier Architecture Eszközök Alkalmazásszerverek (Glassfish, JBoss, stb.), webszerverek (Tomcat, Jetty, stb.) Platformok (Java EE, Spring, stb.) Keretrendszerek (Apache Mina, Apache Struts, Hibernate, ibatis, JUnit, stb.) API-k, eszköztárak (JDBC, JMF, JTA, JMS, JPA, JSP, JSTL, JSF, stb., stb.) Dinamikus komponensmodellek (pl. OSGi) és implementációk (pl. Equinox) Build eszközök (Ant, Maven), környezetek (Eclipse, NetBeans, stb.), tervező eszközök (StarUML, stb.) csapatmunka támogatása (CVS/SVN, Bugzilla, stb.) Stratégiák Waterfall, V-model, Spiral model, Agile strategies (Extreme Programming, Test Driven Development, stb.), stb.

Fejlesztési folyamat A fejlesztési (development) folyamat tevékenységei: Elemzés (analysis) Tervezés (design) Megvalósítás (implementation) Összeállítás (assembly) Telepítés (deployment) Verifikáció és validáció Karbantartás, support

Java EE Java Platformok: Java Card, Java ME, Java SE, Java EE, Java FX Java Enterprise Editon: komponens alapú fejlesztések, osztott rendszerek, többrétegű architektúrák, alkalmazásszerverek Fontosabb csomagok, API-k: Enterprise JavaBean (EJB) javax.ejb Java Servlet API javax.servlet Java Server Pages (JSP) javax.servlet.jsp JSP Standard Tag Library (JSTL) javax.servlet.jsp.jstl JavaServer Faces (JSF) javax.faces Java Message Service API (JMS) javax.jms Java Persistence API (JPA) javax.persistence Java Transaction API (JTA) javax.transaction Stb. stb.

Alkalmazásszerverek Alkalmazásszerverek: Programok hatékony futtatása, a fejlesztési folyamat egyszerűsítése, támogatása Szolgáltatások: tranzakció kezelés, biztonsági megoldások, központosított konfiguráció, stb. Továbbá: feladatok szétosztása, párhuzamos végrehajtás (clustering), meghibásodott modulok automatikus helyettesítése (fail-over), terhelés elosztása (load-balancing) a fejlesztő az alkalmazás-logikára (business logic) koncentrálhat Java alkalmazásszerverek Glassfish (Sun, open source), Oracle Glassfish Server JBoss (JBoss/Red Hat) Oracle Weblogic, IBM Websphere, Apache Geronimo, SAP Netweaver, JOnAS (open source), stb., stb. Java web-szerverek: alkalmazásszerverek (pl. Glassfish Apache Tomcat változatát tartalmazza), Apache Tomcat, Jetty, stb.

Többrétegű webes alkalmazások Kliens réteg: a kliens gépén futó komponensek Alkalmazás réteg: Web réteg: a Java EE szerveren futó webes komponensek, a szerver web-konténerben futnak (Servlet, JSP) Business réteg: a Java EE szerveren futó üzleti logikát megvalósító komponensek, a szerver EJB konténerében futnak (EJB) Adathozzáférési réteg: Enterprise Information System (EIS) szerver

Java EE alkalmazás részei Webes kliens, vagy asztali kliensalkalmazás (kliens oldal) A web-kliens a szervertől érkező oldalakat mutatja meg (HTML, XML, stb. alapú dinamikus weboldalak, amelyeket a szerveroldali komponensek generálnak) (böngésző/browser) Java EE komponensek (szerver oldal): önálló funkcionalitásokat biztosító, egymással kommunikáló szoftverkomponensek. Java osztályok és erőforrás állományok, amelyek összerakásuk (assembly) után egy alkalmazásszerverre lesznek telepítve (deployment). Meg kell feleljenek a vonatkozó Java EE specifikációnak. Web komponensek (Servlet, JSP): a Java EE szerver web-konténerében (pl. Tomcat) futnak Servlet: a kéréseket dinamikusan feldolgozó és azokra dinamikusan választ generáló Java osztályok JSP: a tartalom létrehozására, szöveg-alapú dokumentumok generálására szolgáló komponensek (a háttérben tulajdonképpen servlet-ként futnak) EJB (Enterprise JavaBeans): szerveroldali, üzleti logikáért felelős komponensek (entity beans, session beans, message-driven beans), az alkalmazásszerver EJB konténerében futnak Összeállítás: különböző konténer beállítások, konfigurációs állományokban a szerver ezek alapján biztosítja szolgáltatásait (tranzakció-kezelés, biztonság, stb.)

Web-alkalmazás működése A web-kliens egy http kérést (request) küld a szervernek A web-konténer a kérést egy HttpServletRequest objektumba alakítja Az objektumot megkapja a megfelelő web-komponens (Servlet/JSP) A web-komponens az EJB-ekkel (vagy más üzleti logikát megvalósító komponensekkel, osztályokkal) együttműködve elvégzi a megfelelő műveleteket A web-komponens továbbíthatja a kérést más web-komponensekhez (forward) A válasz felépítésekor a web-komponens dinamikus tartalmat generál, egy HttpServletResponse típusú objektumot épít fel Az objektumot a web-szerver http válasszá (response) alakítja, és visszaküldi a kliensnek

Web-alkalmazás Web-alkalmazás részei Web-komponensek Telepítés-leíró (deployment descriptor) Java osztályok és jar csomagok Statikus erőforrások (képek, statikus html oldalak, stb.) Szerverfüggetlenség: bármilyen konténerbe telepíthető, ha az megfelel a Java Servlet/JSP specifikációnak Létrehozás és futtatás: Web-komponensek és segédosztályok implementációja Telepítés leíró létrehozása Az osztályok lefordítása, és a web-alkalmazás létrehozása, építő (build) eszköz (pl. Ant) segítségével Az alkalmazás telepíthető egységbe (deployable unit) történő csomagolása (.war állomány) opcionális Az alkalmazás telepítése a web-konténerbe Az alkalmazásra hivatkozó URL meghívása a böngészőből

Web-modul A web-konténer megfelelő katalógusába lesz telepítve: egy könyvtár, vagy egy.war állomány A gyökérben találhatóak a JSP oldalak és statikus erőforrások A gyökér tartalmaz egy WEB-INF katalógust, melynek tartalma: web.xml a telepítés-leíró classes könyvtár szerver oldali osztályok (Servlet-ek és segédosztályok) lib könyvtár csomagok, amelyeket a szerver oldali komponensek használnak

Java web-alkalmazások: MVC MVC: Modell: JavaBean-ek Nézet: JSP Vezérlés: Servlet Fogadja a kérést és paramétereit, a paramétereket a megfelelő típusba alakítja és ellenőrzi helyességüket Meghívja a megfelelő üzleti logikával kapcsolatos metódusokat Az eredmény alapján továbbít a megfelelő nézethez (JSP) Működés: A kliens (böngésző) kérést (GET vagy POST) intéz a szerverhez A konfigurációs állomány alapján a szerver a kérést a megfelelő Servlet-hez továbbítja A Servlet a kérés URL alapján meghívja a megfelelő parancsobjektumot A parancsobjektum kommunikál az üzleti logikáért felelős komponensekkel, majd átirányít a megfelelő nézetre (JSP) A nézet megjeleníti a megfelelő információkat a kliens browserében Mivel a JSP-ek tulajdonképpen a háttérben Servlet-ként futnak, elvileg felcserélhetőek, de az MVC elv szempontjából mindeniknek megvan a maga előnye: a Servletek alkalmasabbak a vezérlésre és adatfeldolgozásra, a JSP-eket szöveg alapú oldalak (html, xml, stb.) létrehozására alkalmasabbak További technológiák és keretrendszerek: JSTL, JSF, Struts, JavaFX, GWT, stb.