Publikációs portál Initial J2EE architecture UML bázisú modellezés és analízis Csapat: UML7 (Percze Dániel, Rajnai Zoltán, Ráth István, Tóth Dániel, Vágó Dávid)
Architektúra koncepció Presentation Tier (JSP, Velocity, static HTML) Business Logic Tier (Session Beans) Handling Code (JSP, Servlets) Data Tier (Entity Beans)
J2EE Hierarchy
Tervezési döntések Saját DBSequenceGenerator osztály, ami kezeli az egyedi azonosítók generálását Tranzakcionalitás! Tranzakcionalitás! A korábban állapottal rendelkező Control osztályokat állapotmentes Session Beanként fogjuk implementálni Az állapotot a HttpSession-ben tároljuk Az állapotot a HttpSession-ben tároljuk A bean maga állapotmentes A bean maga állapotmentes Az alkalmazásszerver közös példányt használhat Az alkalmazásszerver közös példányt használhat
Tervezési döntések 2. Listázás Minden entity beanhez tartozik egy findAll() metódus (EJB-QL) Minden entity beanhez tartozik egy findAll() metódus (EJB-QL) Publikációk tárolása A feltöltött publikációkat a WebContent könyvtár alatt levő upload könyvtárban tároljuk, amelynek nevét a request.getRealPath() segítségével kérjük le. A feltöltött publikációkat a WebContent könyvtár alatt levő upload könyvtárban tároljuk, amelynek nevét a request.getRealPath() segítségével kérjük le. A letöltés egyszerűen úgy történik, hogy egy relatív linket adunk az upload könyvtárban levő filera, amelyet így kiszolgál a webszerver (mivel a WebContent alatt van). A letöltés egyszerűen úgy történik, hogy egy relatív linket adunk az upload könyvtárban levő filera, amelyet így kiszolgál a webszerver (mivel a WebContent alatt van). Előnyök: Előnyök: nincs bedrótozva a könyvtár neve nincs bedrótozva a könyvtár neve csak a WebContent alatt levő uploadhoz kell írásjog a MIME típusok kezelését a webszerver elvégzi
Tervezési döntések: Velocity Minden UseCase-hez egy-egy szervlet AbstractPubPortalServlet loadConfiguration, handleRequest, getSessionBeanHome loadConfiguration, handleRequest, getSessionBeanHome doBusinessLogic doBusinessLogic Velocity template-k: Bemenet: statikus HTML formok Bemenet: statikus HTML formok Közös: error.vm Közös: error.vm UseCase-enként változó: eredmények kijelzése UseCase-enként változó: eredmények kijelzése
Tervezési döntések: JSP Dinamikus formok (JavaScript) Kétféle megoldás: "frontend-backend" JSP "frontend-backend" JSP Frontend: sok HTML, kevés Java UploadPub.jsp: Java csak az -ök generálására UploadPub.jsp: Java csak az -ök generálására Backend: sok Java, kevés HTML HandleUpload.jsp: Business Logic HandleUpload.jsp: Business Logic JSP - szervlet JSP - szervlet JSP a formokat, és a visszajelzést kezeli JSP a formokat, és a visszajelzést kezeli addResearchProject.jsp, addResearchProjectSuccess.jsp addResearchProject.jsp, addResearchProjectSuccess.jsp szervlet valósítja meg a BL-t és átirányít az eredménykijelzőre szervlet valósítja meg a BL-t és átirányít az eredménykijelzőre
Felmerült problémák File-feltöltés kérdése: A file egy MIME multipart/form-data típusú HTTP POST üzenetben kerül át a szerveloldalra A file egy MIME multipart/form-data típusú HTTP POST üzenetben kerül át a szerveloldalra Ennek dekódolásához nem találtunk támogatás a JSP-ben Ennek dekódolásához nem találtunk támogatás a JSP-ben Megoldás: com.oreilly.servlet.multipart package használata Megoldás: com.oreilly.servlet.multipart package használata Konfigurálható mentési könyvtár Konfigurálható file-méret korlát DbViewer A test client bizonyos esetekben nem működik (collectionök nem nézhetők meg, mert Exceptiont dob), ezért debug célból használtuk helyette. A test client bizonyos esetekben nem működik (collectionök nem nézhetők meg, mert Exceptiont dob), ezért debug célból használtuk helyette. A végső rendszernek nem része, mivel közvetlenül éri el az entity beaneket. A végső rendszernek nem része, mivel közvetlenül éri el az entity beaneket.
Megvalósított Use Casek Upload File without BibTeX: Percze Dániel Add Research Project: Rajnai Zoltán Download File: Tóth Dániel Search for Publication: Vágó Dávid Add User Account: Ráth István
Köszönjük a figyelmet! © UML7 2005