7. rész: A specifikációtól az implementációig az EJB rétegben

Hasonló dokumentumok
8. rész: Implementáció JDeveloperben

6. rész: EJB-k tervezése és implementálása

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

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

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

A Java EE 5 plattform

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

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

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Object Orgy PROJEKTTERV 1 (9) Adattípusok menedzselése Palatinus Endre

2. rész: A projekt specifikációs szakasza. Bakay Árpád dr. NETvisor kft (30)

3. rész: A követelmények részletezése, kidolgozása. Bakay Árpád dr. NETvisor kft (30)

Programozás 1. 2.gyakorlat

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

9. rész: Korszerő Implementációs Technikák

Modell alapú tesztelés mobil környezetben

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Komponens alapú fejlesztés

Junior Java Képzés. Tematika

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Adatbányászat és Perszonalizáció architektúra

Objektum orientált software fejlesztés (Bevezetés)

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

UML (Unified Modelling Language)

Viczián István IP Systems JUM XIX szeptember 18.

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

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

Teszt terv Új funkció implementációja meglévı alkalmazásba

S01-8 Komponens alapú szoftverfejlesztés 2

Az egyed-kapcsolat modell (E/K)

A Java Persistence API PersistenceAPI / 3

Adatmodellezés. 1. Fogalmi modell

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Döbrönte Zoltán. Data Vault alapú adattárház - Fél óra alatt. DMS Consulting Kft.

Metamodellezés. Simon Balázs BME IIT, 2011.

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

A szoftverfejlesztés eszközei

A szoftverfejlesztés eszközei

Software Engineering Szoftver fejlesztés

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

The Unified Software Development Process. Történet. Feltételek. Rational Unified Process. Krizsán Zoltán Ficsor Lajos

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Név: Neptun kód: Pontszám:

Tartalom. Az EJB 2.1 problémái Az EJB 3 megoldásai

Komponens alapú fejlesztés. Szoftvertechnológia elıadás

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Komponens alapú programozás Bevezetés

A SZOFTVERTECHNOLÓGIA ALAPJAI

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

Közösség, projektek, IDE

ELTE, Informatikai Kar december 12.

Intelligens eszközök fejlesztése az ipari automatizálásban Evosoft Hungary kft., Evosoft Hungary Kft.

OOP és UML Áttekintés

A relációs adatmodell

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

Objektumorientált paradigma és programfejlesztés Bevezető

JEE tutorial. Zsíros Levente, 2012

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

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

NETinv. Új generációs informatikai és kommunikációs megoldások

C#, OOP. Osztályok tervezése C#-ban

Alternatív adatbázisok Gráfadatbázisok

Adatstruktúrák, algoritmusok, objektumok

JAVA webes alkalmazások

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Információtartalom vázlata

Szoftvertechnológia ellenőrző kérdések 2005

Thread-Specific Storage. Neuwirth István, 2009

Témakörök. Struktúrált fejlesztés. Elınyök (SA) Structured Analysis (SA) Hátrányok (SA) Alapfogalmak (SA)

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

OOP. Alapelvek Elek Tibor

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

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Objektumelvű programozás

SEPA szabvány a napközbeni többszöri. A projekt mögötti szakmai koncepció Prágay István november 24.

Kölcsönhatás diagramok

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

Szoftverminőségbiztosítás

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

Előzmények

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

Objektumorientált paradigma és a programfejlesztés

Szoftverminőségbiztosítás

11. rész: Tesztelés. Verziókezelés. Bakay Árpád NETvisor kft (30)

Osztott Objektumarchitektúrák

Modellalkotás UML-ben

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns

Adatbáziskezelés alapjai. jegyzet

ALKALMAZÁS KERETRENDSZER

Fejlett kereső és lekérdező eszközök egy elektronikus szakfolyóirathoz (IBVS)

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Hogyan lehet megakadályozni az üzleti modellezés és az IT implementáció szétválását? Oracle BPM Suite

Az adatbázis-alapú rendszerek tervezésének alapvető része az adatok modellezése. Ez legtöbbször két fázisban zajlik:

NEPTUN ID BMENET ID. Címtár BME VPN. vcenter VPN SVN. Trac Wiki. Wifi

Átírás:

7. rész: A specifikációtól az implementációig az EJB rétegben Bakay Árpád NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu A tananyag készült az ELTE-IKKK projekt támogatásával

Tartalom Tervezés lépései Adattervezés Design patternek alkalmazása

Hol tartunk? Projekt tervezés, követés MS Project RequisitePro Követelmények Tervezés, modellezés Implementáció Tesztelés Oracle jdeveloper Feladat és hibakövetés Intenzíven használt tool Röviden bemutatott tool Konfigurációkezelés

1. Áttekintés: Alkalmazástervezés a specifikáció alapján 1. UML Modellezés Pl. use case, sequence, class, deployment diagram 2. Adattervezés Objektum vagy relációs szemlélettel 3. Üzleti réteg külsı interfészek megtervezése, modellezése 4. Entity és session EJB-k generálása, implementálása Modul szintő teszteléssel, teszt környezetben, spec eszközökkel 5. Az üzleti logika szolgáltatásainak tökéletesítése Leggyakoribb cél: a sebesség növelése Biztonság fokozása Kényelmi funkciók támogatása (pl. gyorskeresés, undo/redo)

Design patternek alkalmazása az EJB réteg kialakításánál EJB container Session Entity Data transfer objects Session Session Entity DB Session Entity Message Based FACADE design pattern JMS message queue Objektum-relációs leképezések

1.1 UML Modellezés Az UML jól használható bonyolult rendszerek szemléletes leírására, de A legtöbb diagram közvetlenül és automatikusan nem használható implementációra Inkább szemléltetı jelleg, mint precíz spec. Nem adnak teljes leírást, pl: UC diagram csak áttekintést ad, az UC-k lényege rejtve marad Sequence, collaboration stb. diagramokat csak a legfontosabb, legérdekesebb mőveletekre készítenek Kivétel a class diagram Ezt viszont sok fejlesztıeszköz átvette, és integráltan megvalósítja (pl. a jdeveloper is).

Az UML alapú tervezés mai helyzete A modellezı és a fejlesztı eszközök összeolvadnak: Az egybe csomagolt integrált rendszerek megbízhatóbban mőködnek, mint külsı integráció Ráadásul sok esetben ingyenesek!!! Következmények: A tervezés/modellezés és az implementáció már nem választható el élesen egymástól A modellezı eszközök piaca beszőkült Leginkább bonyolult, real-time rendszerekhez használják

1.2 Adattervezés Objektum-alapon, v. Relációs DB alapon? Lényeges különbségek a két szemléletben: Öröklıdés RDBMS: nincs öröklıdés és nincsenek absztrakt osztályok Három módszerrıl ld. http://www.objectmatter.com/vbsf/docs/maptool/ormapping.html Relációk Pl: List<Kezelés> FK_KEZELES_ESETID OO: OneToMany, OneToOne. etc OO uni- és bidirectional Rel: minden reláció one to many és lényegében bidirectional Rel: a many-to-many kapcsolórekordokkal (join tables)

Adattervezés: tanulságok UML class diagram interpretálása a részletek szintjén nem egyértelmő Relációk property neve, átjárhatósági iránya, relációk collection típusa, számossági (0-1-*) constraintek Attribútumként használt objektumok (pl. collectionok) A RDBMS alapú tervezés alacsonyabb szintő, de általában szabatosabb Aut. generálás mindkét irányban lehetséges Kisebb-nagyobb bökkenıkkel Pl. öröklıdési hierarchia leképezése (O->R esetben), ill. detektálása (R->O esetben)

1.3 Üzleti funkciók tervezése Jó ösztönökkel kell megkeresni az optimális határt a prezentáció és az üzleti réteg között Felhasználhatók a Use case-ek, GUI modellek Funkciókat logikai vagy actor/jogosultság szempontok szerint csoportosítani Ezek lesznek a Session bean-ek Definiálni a teljes igényelt funkcionalitást (de nem többet!) megvalósító metódus-készletet. Az üzleti funkciók szolgálják a prezentációt Ne legyenek öncélúak, öntörvényőek

Façade Design Pattern Az üzleti réteg egyféle firewall az adatok elıtt Akár helyes, akár érvénytelen hívássorozatra alapszinten megvédi az adatok biztonságát, konzisztenciáját Tranzakciókezelés Logikai ellenırzés: pl. van-e elég egyenleg Hozzáférések naplózása Valódi biztonsági firewallként (pl. jogosultságellenırzésre) is használható Az EJB-khez beállítható jogosultság-feltételekkel

Adatok átadása a Façade-on: Data Transfer Object design pattern Egy, általában vmelyik entitáshoz kapcsolódó value objektum, amely a távoli hívásokhoz teljesen serializálható, és amelyen keresztül a gyakran ismétlıdı attribútum-lekérdezési szekvenciák hossza csökkenthetı. Sok esetben egy 3.0-s Entity osztály önmagában megfelel az Entity-k legtöbbször serializálhatók, hiszen egyszerő adatokat tartalmaznak Biztonsági, v. egyéb megfontolásból lehet egy másik objektum is, pl: az entitás egyes adatainak elrejtése a kliensek elıl az entitásban nem szereplı, pl. kapcsolódó entitások alapján aggregált mezık (pl. számla összeg a számlatételek összegébıl) Alternatíva DTO helyett: attribútumok egyenkénti elérése a facade-on: pl.: gettipus()/settipus(), getloero()/setloero(), stb. Objektum azonosítása Hivási paraméterként átadott PK gettipus(string rendszam); Stateful bean: setcurrentobject(string rendszam); gettipus();

Mi legyen façade mögött? Bonyolultabb rendszereknél jellemzıen találhatók további, lokális Session EJB-k esetleg üzenetsorok és Message Driven EJB-k de nálunk a Façade várhatóan közvetlenül kezeli majd az Entitásokat

1.4 Generálás, implementáció, tesztelés a következı órán

1.5 A rendszer tökéletesítése Cél legtöbbször a sebesség Általánosan alkalmazható eszközök Iteráció helyett entity findallxxx named query-k bevezetése Pl: findallusersbylastname, findallbooksbypricerange Data Transfer Object (DTO) használata Message Driven processing DB stored procedures, server-side Java

2. Gyakorlati lépések Vannak már rendszerezett követelményeink Ismerjük az implementálandó szoftver architekturát lépjük át a szemantikai szakadékot

2.1 Tervezés elsı lépése: a kockás papír vagy text editor Összegyőjteni és vázlatosan ábrázolni az entitás, típusokat, relációkat Felhasználandó: DATA követelmények a ReqPro-ban A prezentáció által igényelt funkciókat Csoportosítani kategóriánként -> facade session EJB-k Felhasználandó: UC-k a ReqPro-ban A lehetséges DTO-kat

A kockás papír lényege A spec alapján azonosítani a kulcsentitásokat és a fontosabb funkciókat. Nem használunk szoftver eszközt, ami elterelhetné a tervezı figyelmét. Vázlatos leírás, tehát azonnal fel kell használni, nem napok, hetek múlva.

A Kockás papír fázis statisztikája az Ursulában Szoftverfejlesztési eszköz : MS Windows Notepad 7 entitás / tábla 5 facade session bean UserManager, EllatoNavigator, EllatoManager, BetegManager, BetegSelfCare 44 facade metódus 4-5 DTO Munkaigény: 90 perc Késıbb több kisebb változás a tervben nevváltozás, egy-egy plusz paraméter, stb.

2.2 Implementáció a fejlesztıeszközben A következı órán: Projekt elıkészítése Adattervezés séma-genrálás Entitások elkészítése Üzleti funkciók elkészítése