Top Banner
UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programrendszerek fejlesztése Bevezető Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék
59

Programrendszerek fejlesztése Bevezető

Dec 30, 2015

Download

Documents

hayley-reeves

Programrendszerek fejlesztése Bevezető. Dr. Bilicki Vilmos Szegedi Tudományegyetem Informatikai Tanszékcsoport Szoftverfejlesztés Tanszék. Tartalom. Követelmények Bemutatkozás Célok Nem funkcionális/rendszer követelmények Skálázhatóság A félév áttekintése. Követelmények. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Programrendszerek fejlesztése Bevezető

Dr. Bilicki Vilmos

Szegedi Tudományegyetem

Informatikai Tanszékcsoport

Szoftverfejlesztés Tanszék

Page 2: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

TartalomKövetelményekBemutatkozásCélok

■ Nem funkcionális/rendszer követelmények■ Skálázhatóság

A félév áttekintése

23.04.19. 2Programrendszerek fejlesztése

Page 3: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Követelmények

Gyakorlat 50% (20 %)ZH előadáson 50% (20%) (Tavaszi

szünet utáni első előadás)Vizsga az osztályzat 60%-át adjaJegyzet:

■ http://tananyagfejlesztes.mik.uni-pannon.hu/index.php?option=com_content&view=article&id=58&Itemid=71#Programrendszerek%20fejleszt%C3%A9se

23.04.19. 3Programrendszerek fejlesztése

Page 4: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

SZTE – Szoftverfejlesztés Tanszék

Számok:■ ~ 130 munkatárs (80%

projekt állás)■ ~ 3500 hallgató

Fókusz területek:■ Szoftver Minőség■ Nyílt forráskódú

fejlesztés■ Nagy rendszerek

fejlesztése

23.04.19. 4

R&D Oktatás

Ipari Projektek

Programrendszerek fejlesztése

Page 5: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

M2M Csoport

23.04.19. 5Programrendszerek fejlesztése

Page 6: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Célok

Startégiai szintű áttekintés:Nagy skálázható rendszerek fejlesztése

■ Problémák■ JEE alapú megoldások

– Milyen rétegeket használjunk?– Hogyan fejlesszünk produktívan skálázható

alkalmazást?

23.04.19. 6Programrendszerek fejlesztése

Page 7: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

A tantárgy tematikájaAz Információs rendszerek architektúrájaKözéprétegek, ezek szolgáltatásaiÜzenet alapú rendszerekAlkalmazásszerverek és szolgáltatásaikJ2EEObjektum perzisztencia.

■ Különböző perziszetencia rendszerek bemutatása. (Hibernate, EJB2.1, EJB3.0, …)

Web SzolgáltatásokTervezési minták

Programrendszerek fejlesztése

Page 8: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Alkalmazás rétegelés Az alkalmazás kompnensek feladatának elválasztása

■ Megjelenítés réteg– A kérés/válasz objektuomkra koncentrál– Megoldja a modell alapján a GUI renderelést– Formázási és nem üzleti logika alapú validálási logikát tartalmaz– A más rétegek által dobott kivételeket kezeli

■ Perzisztencia réteg – A tárolókkal kommunikál– Lekérdezés nyelvet biztosít– ORM képesség– JDBC, Hibernate, iBATIS, JDO, Entity Beans, …

■ Domén réteg – Az üzleti objektumokat tárolja, ezek a többi rétegben is

felhasználhatóak– Kezeli az üzleti objektumok közötti komplex relációat– Gazdag üzleti logika– ORM– A domén objektumok csak egymástól függhetnek

Programrendszerek fejlesztése

Page 9: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Szolgáltatás réteg?

• Hogyan pozicionáljuk a lazán csatolt üzleti logikát?

• Mi a szolgáltatás logika?

•Hogyan kell a konténer szintű szolgáltatásokat megvalósítani?

•Hogyan kezeljük a POJO alapú alkalmazásokban a tranzakciókat?

• Hogyan kommunikáljunk a megjelenítési rétegből a perzisztencia rétegbe?

•Hogyan kapunk üzleti logikát megvalósító szolgáltatásokat?

•Hogyan kommunikálnak az üzleti objektumok a perzisztencia téteggel?

• Hogyan adjuk át a prezisztencia rétegben található objektumokat a UI rétegnek?

Programrendszerek fejlesztése

Page 10: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Alkalmazás rétegek

■ Szolgáltatás réteg– Egy átjáró amely segítségével az üzleti logikát

biztosítjuk a külvilág számára– Kezeli a tároló szintű szolgáltatásokat

(tranzakciók, biztonság, …)– Sok alkalmazásban nincs megfelelően

definiálva

Programrendszerek fejlesztése

Page 11: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Alkalmazás architektúra

3 Rétegű Vs. MVC

23.04.19. 11Programrendszerek fejlesztése

Page 12: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Minta rendszer

23.04.19. M2M Statusreport 12

Page 13: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

2. Elosztott rendszerekProblémákÁtteszőségekArchitektúrák

Programrendszerek fejlesztése

Page 14: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Valós nagy rendszerrel kapcsolatos tapasztalatok (Inktomi)

23.04.19. 14

Összeomlások/Merevlemez hibák Óránként

Adatbázis frissítések Naponta

Szoftver frissítések Hetente/Havonta

OS frissítések Kétszer

Energetikai hibák néhány

Hálózat hibák 11

Az egész infrastruktúra fizikai átköltöztetése

2

Programrendszerek fejlesztése

Page 15: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

SkálázhatóságAdat tárolás/Feldolgozás

■ Vertikális (Scale up)– Fizikai korlátai vannak (processzorok száma, JVM

szemétgyűjtő, …)– Közös memória mint kommunikációs médium

■ Horizontális (Scale out)– Elosztott rendszer (Leslie Lamport: „Elosztott rendszer

az ahol egy addig teljesen ismeretlen számítógép hibája teszi használhatatlanná a gépünket”)

– Elvileg korlátlan (elosztottságból fakadóan nem lehet ACID)

– Távoli hozzáférés problematikája (érték szerint vs. referencia szerint)

23.04.19. 15Programrendszerek fejlesztése

Page 16: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Határok – CAP tétel (Brewer tétele) Internet méretű elosztott rendszerek

■ C – Konzisztencia (Minden csomópont ugyanazt az adatot látja adott időben)

– A – Atomi – C - Konzisztens– I - Elkülönítés– D - Tartósság

■ A - Rendelkezésre állás (csomópontok kiesése nem akadályozza meg a maradókat a működéstől)

– X % időben elérhető■ P - Partíció tűrés (tetszőleges üzenetvesztést tolerál)

– Gilber és Lynch definíciója szerint „A teljes rendszer (hálózat) hibáján kívül semmilyen hiba kombináció sem okozhatja azt, hogy a rendszer hibásan válaszol”.

Ezek közül csak kettő teljesülhet

23.04.19. 16Programrendszerek fejlesztése

Page 17: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

3. Átszövődő vonatkozások

KontextusokTranzakciós kontextusBiztonsági kontextusPerzisztencia kontextus, …

23.04.19. 17Programrendszerek fejlesztése

Page 18: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Kontextus

23.04.19. 18 Programrendszerek fejlesztése

Page 19: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

4. Köztesréteg

SzolgáltatásaiKonkrét példák:

■ P2P középréteg (PECES)■ Adatközpontú köztesréteg : Apache Hadoop■ Feldolgozás központú köztesréteg: JEE

konténer

23.04.19. 19Programrendszerek fejlesztése

Page 20: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Motiváció – nem funkcionális követelmények Rendelkezésre állás: azon idő amely alatt a komponens képes kielégíteni a funkcionális

követelményekben meghatározott funkciókat azon időhöz viszonyítva amikor ezt nem tudja megtenni.

Kapacitás/Skálázhatóság: A komponens a terhelés növekedésével is képes ellátni a funkcionális követelményekben megfogalmazott feladatokat.

Párhuzamosság: A komponens a több egymással párhuzamos terhelés hatására is képes ellátni a funkcionális követelményekben megfogalmazott feladatokat.

Fejleszthetőség: A komponens új funkcionális követelményeket is el tud látni viszonylag szerény fejlesztési ráfordítással.

Együttműködési képesség: A komponens képes környezetével és a szükséges komponensekkel aránytalan plusz terhelés okozása nélkül is együttműködni.

Késleltetés: A komponens az adott funkcionális követelményben szereplő szolgáltatását adott terhelés mellett adott időtartamon belül kiszolgálja.

Karbantarthatóság: A komponensnek támogatnia kell az adott szervezetben definiált karbantartási feladatokat (pl.: backup)

Menedzselhetőség: A komponensnek támogatnia kell a megfelő konfigurálhatósági szintet.

Monitorozhatóság: A komponensnek monitorozhatónak kell lennie. Visszaállíthatóság: Hibás adat esetén a komponensnek támogatnia kell a megfelelő

állapot visszaállítását. Biztonság: A komponensnek a helyi biztonsági előírásoknak megfelelően kell működnie. Konzisztencia: A komponens az adatot konzisztens állapotban tartja.

23.04.19. Programrendszerek fejlesztése 20

Page 21: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Infinispan

Memória alapú adat rács (data grid)■ Nagy heap (a redundanciától függően)■ Nem kell viszony tartás (bárhonnan elérhető)

Cache interfész ->Map-et terjeszti kiA Jboss gyorsítótáron alapul (Jboss

cache)Tranzakció támogatás (XA)

23.04.19. Programrendszerek fejlesztése 21

Page 22: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Architektúra

23.04.19. Programrendszerek fejlkesztése 22

Page 23: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Apache Hadoop Nem valós idejű feldolgozásra Nagyon nagy adatmennyiségek

kezelésére Elemei:

■ Elosztott fájlrendszer■ Elosztott feldolgozó keretrendszer

Számos kiegészítő keretrendszer■ Zookeper■ Hbase■ Hive■ Pig Latin■ …

23.04.19. Programrendszerek fejlkesztése 23

Page 24: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

5. Nyelvi trendek, paradigmák: logika megvalósítása

OO és azon túl Tartomány specifikus nyelvek

■ Szabály és folyamat alapú tartomány specifikus nyelvek

23.04.19. 24Programrendszerek fejlesztése

Page 25: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Folyamat nyelvek WFMS – Munkafolyamat Kezelő Rendszerek (Workflow Management

System) 80-as évek adatközpontú világnézet

■ az adatok voltak a fejlesztők fókuszában és nem a folyamatok

Ma már kellő intelligencia található a különböző keretrendszerekben -> a folyamatok álljanak a fejlesztők, sőt az adott tartomány szakértői azaz a nem szoftver fejlesztők figyelmének központjában.

Munkafolyamat leíró nyelvek■ grafikus megjelenítéssel is rendelkeznek■ magát a folyamatot megfelelő fejlesztő eszközök segítségével nem programozó is meg

tudja tenni.

Alkalmazási területek■ üzleti folyamatok modellezése■ hagyományos üzleti folyamatok koordinálása■ Komponens keretrendszerek■ Munkafolyamatok közötti interakciók■ B2B interakciók■ felhasználói folyamatok

A logika dinamikusan változtatható akár futásidőben is.

23.04.19. 25Programrendszerek fejlesztése

Page 26: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Folyamat nyelvek

Felhasználói folyamatok -> pageflow (JSF/SEAM)

Üzleti folyamatok -> BPLE4WS

23.04.19. Programrendszerek fejlesztése 26

Page 27: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Szabály nyelvekA tudás ábrázolásának egy módja a

szabályokkal történő ábrázolás. Az erre épülő rendszereket Produkciós

Szabály Alapú rendszereknek nevezik (Production Rule Engine).■ bemeneti adatok (tényeknek nevezik ebben

a körben – Facts)■ szabályok (Rule) ■ eredmények/események

23.04.19. Programrendszerek fejlesztése 27

Page 28: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Következtető Motor – Inference Engine

A szabály motorok központi elemeA tényeket és a hozzájuk tartozó szabályokat

párosítja minta illesztés segítségévelElemei:

Munka memória (tények)

Produkciós memória (szabályok)

Minta illesztő Konfliktus feloldás

Programrendszerek fejlesztése

Page 29: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

6. Nyelvi megoldások, paradigmák: ontológiaOO és azon túlXML és azon túlOntológia alapú

leírásokOWL, típusai, …KövetkeztetésOntológia illesztés

23.04.19. 29Programrendszerek fejlesztése

Page 30: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

1. A tartalom fogyasztók és a tartalom gyártók közötti megkülönböztetés elmosása

Wiki, Blog-ok, és a Twiter a szöveges publikálást tömeges jelenséggé tették a flickr és a youtube hasonló eredményt ért el a multimédia területén

Programrendszerek fejlesztése

Page 31: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

A szociális web oldalak: del.icio.us, facebook, FOAF, linkedin, myspace és Xing lehetővé teszik a közösségeknek, hogy gördülékenyen információt cseréljenek és együttműködjenek

2. Az egyedek számára készített médiától elmozdult a közösségek számára készített média felé

Programrendszerek fejlesztése

Page 32: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

3. A szolgáltatás gyártók és a szolgáltatás fogyasztók közötti különbség elmosása

Mashups-ok segítségével a felhasználók mások által készített szolgáltatásokat integrálhatnak weboldalaikba

Programrendszerek fejlesztése

Page 33: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

RDF: közvetlenül csatol irányított gráf

Programrendszerek fejlesztése

Page 34: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

6. Rest/Web Szolgáltatások

Programrendszerek fejlesztése

Page 35: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

REST architektúra

35Programrendszerek fejlesztése

Page 36: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

A SOA fő elemeiXMLSOAPWSDLWSILUDDI

36Programrendszerek fejlesztése

Page 37: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

7. Felhasználói interakcióAz interakció típusaiA HTTP protkollAJAX alapú

megoldások■ GWT■ RAP

Servlet alapú megoldások

JSP alapú megoldásokJSF alapú megoldások

23.04.19. 37Programrendszerek fejlesztése

Page 38: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

AJAX Új felhasználói élmény

■ Részleges frissítés■ Aszinkron háttérben történő frissítés

Dinamikus GUI Nagy adatmennyiség kezelése

23.04.19. 38Programrendszerek fejlesztése

Page 39: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Hogyan működik

23.04.19. 39Programrendszerek fejlesztése

Page 40: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

8. Háttér logika Java Enterprise Edition

■ EJB specifikáció (3.0)■ EJB komponensek

Injection Scope Transaction EJB

■ Session Bean– Stateless– Statefull

■ Entity Bean (Miért nem)– BMP– CMP

■ Message Driven Bean– Durable– Non Durable

Programrendszerek fejlesztése

Page 41: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

23.04.19. 41Programrendszerek fejlesztése

Page 42: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

SEAM

JSF

JSF vs. Seam

JSF Page

JSF Page

JSF Page

JSF Page

POJO Facade

POJO Facade

Session EJB

Entity EJB

Session EJB

Entity EJB

Managed Bean

Automatically wrapped in Managed Bean

23.04.19. 42Programrendszerek fejlesztése

Page 43: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

9. Adatkezelés PerzisztenciaObject serialization APIORM Hibernate

■ Bevezetés■ Architektúra■ Hello world

– Java File– Mapping file– Műveletek– Konfiguráció

■ Interfaces■ Mappelés

(Kollekciók,Asszociációk,Leszármazások)

■ Lekérdezések■ Optimalizálás(fetching and caching)■ Tesztelés

Programrendszerek fejlesztése

Page 44: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Entitás állapotok Tranziens:

■ Az újonnan példányosított (a new operátorral) objektumok még nem perzisztensek.

■ Ezek az objektumok nem lehetnek tranzakcionálisak, azaz a rajtuk végrehajtott bármely módosítási művelet nem lehet része tranzakciónak.

■ Ha egy tranziens objektumot perzisztálni akarunk, vagy más szóval a tranziens állapotból perzisztensbe akarjuk helyezni, a perzisztencia menedzser save függvényét kell meg hívni az objektumra, vagy egy perzisztens objektumból hivatkozni kell a tranziens objektumra.

Perzisztens: ■ A perzisztens állapotban lévő objektumpéldány

rendelkezik egy elsődleges kulccsal azonosított érvényes adatbázis bejegyzéssel.

■ A tranzakció végeztével csak azok a perzisztens entitások kerülnek szinkronizálásra, amelyek módosultak. Ezt a folyamatot dirty chechking-nek nevezik..

Leválasztott (detached): ■ A perzisztens objektumok a tranzakció

végeztével is léteznek és tartalmaznak adatokat, azonban leválasztódnak a viszony bezáródásával.

23.04.19. 44Programrendszerek fejlesztése

Page 45: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

10. Szolgáltatás integráció

ProblémákMegközelítés módokSOA koncepcióESBSDO/SCA

23.04.19. 45Programrendszerek fejlesztése

Page 46: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Enterprise Service Bus• Szolgáltatások közötti

üzenetcsere monitorozása és vezérlése

• Szolgáltatások telepítése és verziózása

• Gyakori középréteg szolgáltatások biztosítása:

• Eseménykezelés

• Adattranszformáció

• Üzenetsorok kezelése

• Biztonság- és kivételkezelés

• Stb.

23.04.19. 46Programrendszerek fejlesztése

Page 47: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

11. Magas szintű üzleti folyamatok

BPEL■ Absztrakt modell■ Futtatható modell

ElemeiTervezési minták

Programrendszerek fejlesztése

Page 48: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

JBoss ESB

23.04.19. 48Programrendszerek fejlesztése

Page 49: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

12. Ami kimaradt

Biztonság:■ Kerberos■ OpenID■ Shibotech

Menedzselhetőség■ JMX■ OSGi

Skálázhatóság■ Klaszter

23.04.19. 49Programrendszerek fejlesztése

Page 50: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

13. Kitekintés, összefoglaló

A félév áttekintéseMerre tart a szoftver fejlesztés

■ Felhasználói programozás■ Felhő megoldások■ M2M rendszerek

23.04.19. 50Programrendszerek fejlesztése

Page 51: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

C@R

Page 52: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

ECOSPACE

Page 53: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

PECES

Page 54: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Egy példa rendszer

Page 55: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Szoftver architektúra

Page 56: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Egy példánya

Page 57: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Egy másik példa

Page 58: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Példák

Page 59: Programrendszerek fejlesztése Bevezető

UN

IVER

SIT

Y O

F SZ

EG

ED

Dep

artm

ent o

f Sof

twar

e E

ngin

eeri

ng

UN

IVE

RS

ITA

S S

CIE

NT

IAR

UM

SZ

EG

ED

IEN

SIS

Összefoglaló Motiváció – nem funkcionális/rendszer követelmények

■ Rendszer granularitás paradigmák■ Skálázhatóság

Internet alapú rendszerek ■ Korlátai■ Lehetőségeink

Elosztott rendszer architektúrák Átszövődő vonatkozások Köztesréteg

■ Típusai■ Megvalósítása■ Metrikái■ Példák

23.04.19. 59Programrendszerek fejlesztése