63
Webes alkalmazások tervezése (Web adatbázis programozás) Tarcsi Ádám, Horváth Győző, Menyhárt László 2012 Elméleti áttekintés

Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Webes alkalmazások tervezése (Web adatbázis programozás)

Tarcsi Ádám, Horváth Győző, Menyhárt László

2012

Elméleti áttekintés

Page 2: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Követelmények

Folyamatos teljesítés névsor

Beadandó feladat

▪ tervezés megvalósítás

▪ PHP v. Java v. ASP.NET

Feladatok: http://ade.web.elte.hu/oktatas/web-engineering/

Határidő:

2

Page 3: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Bevezetés - témafelvetés

Minden az Internetre megy, minden web-es (lesz)... ▪ kommunikációs, ▪ megjelenítési platform

Trendek: offline web, mobil eszközök, HTML5 Web site vs. Web alkalmazás Natív vs. mobil alkalmazások Webtechnológia (Web engineering) vs.

szoftvertechnológia Webes architektúra KKV vs. nagyvállalati környezet Gépi, emberi résztvevők Oktatási megközelítés, elvárt ismeretek Problémák, nehézségek

3

Page 4: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Trendek

Szabványosítás: HTML5 (2014!) Asztali funkcionalitás + offline web

alkalmazások (HTML5) Internet of Things Cloud computing Mobilitás: Gartner előrejelzése szerint 2015-ben a jelenlegi natív

alkalmazások fele már web alapú applikáció lesz.

Kontextus alapú alkalmazások + Augmented Reality

Üzleti social networking alkalmazások erősödése Big Data: In-memory computing + nagy

mennyiségű adatok feldolgozása (évente 3 terabájtnyi

adatot gyártunk fejenként)

4

Page 6: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Gartner Hype Cycle for ET 2011

6

Page 7: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Gartner Hype Cycle for Networking and Communication 2011

7

Page 8: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web 1.0, 1.5, 2.0, 3.0, ...

Web 1.0: 1990: Tim Berners Lee

▪ Statikus weblapok

▪ Jellemzőjük: ritka frissítési idő

Web 1.5:

▪ Dinamikus weblapok

▪ Grafikai fejlődés

▪ Üzlet megjelenik a web-en

Web 2.0: A felhasználó az úr!

Web 3.0: Web-es munkakörnyezet (operációs rendszer)…

8

Page 9: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web 1.0 Web 2.0

Statikus albumok, foto Flickr, Picasa

Mp3.com Napster

Britannica Online Wikipedia

Személyes honlapok Bloggolás

Domainnév spekulációk Keresőre optimalizálás

Lapletöltés: DoubleClick Klikkenkénti fizetés:AdSense

Publikálás Részvétel

Tartalomkezelő rendszerek Wiki

Könyvtárak (osztályozás) Címkézés

Szoftver (webes) szolgáltatás

Lokális adattárolás Adattárolás a web-en, megosztás

Telepítés Regisztráció

Küldés (e-mail, link, stb.) Megosztás, közös munka

Néző Résztvevő

Netscape Google 9

Page 10: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web-site vs. web alkalmazás

Web-site Web alkalmazás

Statikus / dinamikus

Statikus vagy „statikus-szerű”

Dinamikus

Adatbázis Nem szükséges / nem jellemző

Jellemző

Asztali alkalmazás

Nem implementálható asztali alkalmazásként

Rendelkezik asztali alkalmazásokhoz hasonló funkcionalitásokkal

Authorizáció Nem jellemző Jellemző

Bookmarking / keresőmotor

Jellemző Nem működik. Keresőmotorok számára irreleváns.

Szerver oldali logika

Nem jellemző Mindig

Kliens oldali logika

Nem szükséges / nem jellemző

Jellemző

Példa Híroldalak, wiki Google Mail 10

Page 11: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web 2.0, 3.0, X.0 - 1.

11

Page 12: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web 2.0, 3.0, X.0 - 2.

12

Page 13: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web 2.0, 3.0, X.0

13

Page 14: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web 3.0

▪ Szemantikus Web

▪ Virtuális munkaasztal böngészőn keresztül

▪ Elosztott alkalmazások

▪ Cloud computing

▪ Elérés minden eszközről (mobil)

▪ „Okos” eszközök – okos keresők, melyek értik a beírt adatokat…

14

Page 15: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Bevezetés, témafelvetés, előzmények

Hálózati, szerver és kliens oldali megoldások (TCP/IP és HTTP protokoll és működése) Számítógépes hálózatok

WEB-es prezentációs megoldások (HTML nyelv, CSS), web-grafika Web-fejlesztés I.

és Honlapok funkcionális és arculati tervezése (Honlapszerkesztés)

WEB szerverek, böngészők, kliens oldali WEB programozás alapjai (pl. JavaScript) Web-fejlesztés II., Web-technológia I. (Web-programozás I).

Adatbázis-kezelés (a relációs modell, adatmodellezés, SQL) Adatbázis-kezelés

Rendszerek közti adatkommunikáció „önleíró” dokumentum nyelven = XML (XML felépítése, használata, kapcsolódó technológiák érintőlegesen: DTD, XSD, XSL ill. XSLT) Adatkezelés – XML és Web adatbázis programozás

XML alapú adatbázisok (XML adattárolás alapjai, lekérdező nyelvek: XPath, XQuery) Adatkezelés – XML és Web adatbázis programozás

Multimédiás adatbázisok (nagy méretű multimédiás anyagok tárolása adatbázisokban, visszakeresés, hatékonyság) Web adatbázis programozás

Programozási módszertan Programozás tárgyak

WEB programozás (módszerek, beágyazott script-nyelvek általában, PHP részletesen) Web-fejlesztés II, Web-technológia I. (Web-programozás I).

Vállalati környezetre tervezett webes fejlesztői környezetek (pl.: .Net, Java) Web-technológia II-III. (Web-programozás II), Programozási nyelvek (Java), Portálfejlesztés

15

Page 16: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Bevezetés, témafelvetés, előzmények

Multimédiás WEB programozás – bináris tartalmak (stream-ek, header, letöltés, feltöltés) Web adatbázis programozás

Multimédiás WEB programozás – vektorgrafikus és programozott tartalmak (SVG, Flash) Web-animáció és Web adatbázis

programozás

Informatikai biztonság (adatvédelem, kommunikációs vonalak védelme, védelem illetéktelen behatolásokkal szemben, meghibásodások elleni védelem) Számítógépes hálózatok, Web

adatbázis programozás

Többrétegű (összetett) webes alkalmazások fejlesztése Web adatbázis programozás

Web-gazdaságtan, web marketing,... Honlapok funkcionális és

arculati tervezése (Honlapszerkesztés), Web-marketing

16

Page 17: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Egy másik szemszögből

Web dizájn Website building: követelménylistából valid HTML és CSS sablon

készítése Létező template felhasználása Kereshető oldalak, információk készítésének elve (SEO). Akadálymentes weboldalak készítése (WCAG). Kliens oldali webprogramozás: pl.:Javascript, diszkrét JavaScript Szerver oldali webprogramozás: PHP, Java, .NET, stb. Adatvezérelt, többrétegű alkalmazások tervezése, készítése,

tesztelése, kiadása, karbantartása. Képesnek kell lenni dönteni a különböző lehetőségek,

technológiák közül egy adott feladat megoldására - azaz a feladat komplexitásától, méretétől függően tudjon választani technológia és nyelv között.

Többnyelvű, komplex alkalmazások készítésének alapjai Web Project Management. Web Engineering szemléletmód. Web marketing alapjai. A webalkalmazások biztonsági aspektusai.

Page 18: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Feladatkörök

Szervezői, tervezői feladatok: rendszerszervezés, projektvezetés, marketing, stb.

Web-fejlesztés: kilens, szerver oldalon

Web-design

Adatbázis: adminisztráció, fejlesztés

Üzemeltetés

18

Page 19: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Oktatási keretrendszer az ELTE IK-n

Alapozó kurzusok a BSc-n ▪ Web-fejlesztés I. ▪ Web-fejlesztés II.

Web-programozás modul az MSc-n ▪ Honlapok funkcionális és arculati tervezése ▪ Web grafika ▪ Web-technológia I. (PHP) ▪ Web-technológia II. (ASP.NET) ▪ Web-technológia III. (Java) ▪ Portálfejlesztés ▪ Webes alkalmazások tervezése

Szabadon választható webes kurzusok MSc-n, más szakirányon ▪ Webanimációk programozása ▪ Web-marketing ▪ Webtechnológiák információs rendszerekben (SOA)

Page 20: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Mi hiányzik még?

Számos témakör hiányzik még, illetve kifejtendő:

▪ Kliens-oldali webfejelesztés,

▪ Biztonság,

▪ Karbantartás,

▪ Webes projektmendzsment

▪ Cloud computing

▪ Szemantikus web, web mining

▪ Web of Science

Page 21: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Tematika

21

Óra Gyakorlat

1.

Óramegbeszélés, a félév ismertetése. Általános bevezető. Többrétegű architektúrák. Web-es technológiák: PHP, JSP, JAVA, ASP.NET (.NET), stb. Web-es alkalmazásfejlesztés módszertana. Webes keretrendszerek, keretrendszer vs tartalomkezelő rendszerek, Modell-View-Controller modell. JavaScript keretrendszerek, AJAX, Web 2.0 és hatása

2. Webes alkalmazások tervezése, tervezési eszközök

3. Fejlesztői környezet kialakítása, fejlesztőeszközök.

4. Adatbázisok elérése szerver oldalról. Adatbiztonság a gyakorlatban. Dinamikus multimédiás tartalom (adatbázis, header, stb, dinamikus Flash).

5. Alkalmazások funkcionális strukturálása - útban MVC felé. PHP, Java keretrendszerek.

6. “Mini” MVC keretrendszer megvalósítása. BLOB kezelés.

7. Egy professzionális keretrendszer megismerése. A példaalkalmazás elkészítése a keretrendszerben I.

8. Egyebek: authorizáció, authentikáció, sablonkezelés, PDO, adatbázis-hatékonyság, stb. A példaalkalmazás elkészítése a keretrendszerben II.

9. Kliensoldali funkciók. JavaScript keretrendszerek, JQuery. AJAX. Rich Internet Applications

10. Webes API-k programozása, felhasználása. Kliensoldali API: Google Maps, Szerveroldali API: Picasa

11. Web Servicek felhasználása, készítése. Szolgáltatás Orientált Architektúrák a gyakorlatban.

12. Multimédiás adatbázisok, Tartalom alapú visszakeresés elmélete. Az Oracle megoldása: Oracle Multimédia Többrétegű adatbázis-modell.

13. Web Servicek, Szolgáltatás Orientált Architektúra (SOA), Cloud computing, Szemantikus Web

Page 22: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

22

Architektúrák – „Evolúció”

Page 23: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Egygépes (standalone) alkalmazások

A program teljes egészében a munkaállomáson fut.

Az adatok ugyanitt tárolódnak.

Egyszerre csak egy felhasználó használhatja.

Semmilyen hálózati kapcsolat nincs, a különálló programok közti adatszinkronizáció meglehetősen nehézkes.

23

Kliens gép

Program

Adatok (fájlok)

Kliens gép

Program

Adatok (fájlok)

Kliens gép

Program

Adatok (fájlok)

Page 24: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

• Egy vagy több szerver gép erőforrásait (jellemzően adatait) megosztja a kliensek között. Jobb esetben on-line.

• Az alkalmazás egy része (adatbázis-kezelő rsz.) a szerven fut.

• Az alkalmazás logikát implementáló rész a kliens gépeken fut. „vastag kliens rendszerek”

• Egy adatbázist többféle kliens program is használhat.

• Egyszerre több konkurrens felhasználó használhatja. 24

Egyszerű kliens-szerver alkalmazások 1.

Szerver

RDBMS

Kliens gép

Intranet

Program

Kliens gép

Program

Page 25: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

• Jellemzően intranet-es alkalmazásoknál használatos.

• Terheli a kliens gép erőforrásait.

• Gyakran mindenféle driver-ek telepítését igényli a kliens gépeken

• Verziófrissítés alkalmával az összes kliens-en frissíteni kell a programot.

• A RAD (Rapid Application Development) sok eszközzel támogatott, számos jó vizuális fejlesztőkörnyezet: gyorsan „összekattint-gathatunk” és leprogramozhatunk komoly alkalmazásokat.

25

Egyszerű kliens-szerver alkalmazások 2.

Szerver

RDBMS

Kliens gép

Intranet

Program

Kliens gép

Program

Page 26: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Többrétegű (multitier) hálózati alkalmazások

Minimálisan három réteg létezik:

▪ Front End = kliens oldali felhasználói réteg (általában egy WEB böngészőben)

▪ Middleware = szerver oldali prezentációs és logikai réteg (általában egy WEB szerveren beágyazott script-ekben összeolvasztva a megjelenítés és az egyszerűbb logika)

▪ Back End = hátsó szerver oldali nagykapacitású tároló (adatbázis szerver) vagy számoló réteg

26

Page 27: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Háromrétegű architektúra

Adatbázis szerver

RDBMS

Back End

Adatbázis szerver

XML DBMS

Nagy kapacitású, összetett

számításokat végző szerver

Front End

Web szerver

Alkalmazás szerver

Kliens: Web böngésző

Kliens: Mobil böngésző / mobil kliens

Internet Tart

alo

m

HTM

L /

XM

L

Megje

lnítés

CSS

Vis

elk

edés

JavaScript

Middleware

Page 28: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Többrétegű architektúra

Adatbázis szerver

RDBMS

Back End

Adatbázis szerver

XML DBMS

Nagy kapacitású, összetett

számításokat végző szerver

Front End

Logikai Layer

Prezentációs Layer

Middleware

Alkalmazás szerver

Alkalmazás szerver

Web szerver

Prezentációs szerver

Web szerver

Prezentációs szerver

Kliens: Web böngésző

Kliens: Mobil böngésző / mobil kliens

Internet

Tart

alo

m

HTM

L /

XM

L

Megje

lnítés

CSS

Vis

elk

edés

JavaScript

Load B

ala

ncer

Page 29: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

A kliens oldal

index.html style.css jsframework.js

custom.js

Tartalom Megjelenítés Viselkedés

Page 30: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Többrétegű architektúra jellemzői

Load balancing, terhelésmegosztás.

Tervezést támogató környezetek: Java J2EE, .Net.

Architektúra felosztás-összevonás logikai szinten.

A rendszer logikai architektúrája (tervezés, programozás) független a számítógépes megvalósítástól, hálózattól.

A logikai réteg tovább osztható.

Nagyon sok konkurens felhasználó kiszolgálására optimalizálva

30

Page 31: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Többrétegű architektúra jellemzői

Kliens gép: böngésző, a logika – többnyire – a szerveren található – vékony kliens architektúra

Minimális logika a klienseken: a beviteli adatok validálására, a lapok speciális megjelenítésére (pl. JavaScript).

A szerveren elkülönül az adattárolás, a logika és a prezentáció eltérő szerepkörök

Az egyes szintek önmagukban is tesztelhetőek.

A rendszer egyes komponensei több célra vagy újra felhasználhatók. 31

Page 32: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Többrétegű architektúra jellemzői

A vékony kliensek miatt nagyon gyenge kliens gépek is elegendők.

A technológia platformfüggetlen.

A kliensekre nem kell drivert telepíteni.

A verziófrissítés csak a szervert érinti, a klienseket nem.

Sajnos egyelőre elég kevés eszköz támogatja a RAD-ot (Rapid Application Development), a környezet kevés segítséget nyújt a programozónak a megoldási lehetőségek kiválasztásában

▪ „Házi szabványok”, saját keretrendszerek készülnek.

Nehezebb tesztelni

32

Page 33: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web-es architektúra

Adatbázis szerver

RDBMS

Back End

Adatbázis szerver

XML DBMS

Nagy kapacitású, összetett

számításokat végző szerver

Front End

Logikai Layer

Prezentációs Layer

Middleware

Alkalmazás szerver

Alkalmazás szerver

Web szerver

Prezentációs szerver

Web szerver

Prezentációs szerver

Kliens: Web böngésző

Kliens: Mobil böngésző / mobil kliens

Internet

Tart

alo

m

HTM

L /

XM

L

Megje

lnítés

CSS

Vis

elk

edés

JavaScript

Load B

ala

ncer

Page 34: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Web-es architektúra SOA

Adatbázis szerver

Back End / Persistence

Layer

Web szolgáltatás (alkalmazási

logika)

Egyéb erőforrások,

legacy systems (ERP,

CRM, stb).

Front End

SOA Layer Prezentációs Layer

Middleware

ESB + Orchestratio

n+

Web szerver

Prezentációs szerver

Web szerver

Prezentációs szerver

Kliens: Web böngésző

Kliens: Mobil böngésző / mobil kliens

Internet

Tart

alo

m

HTM

L /

XM

L

Megje

lnítés

CSS

Vis

elk

edés

JavaScript

Load B

ala

ncer

WS

WS

WS

SOA: háttér rendszerekből Business Objects (resources), WS + Human task +

Business Rule. Üzleti folyamatok által irányítva

WS

WS

Page 35: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

35

Fejlesztői - megrendelői „evolúció”

Page 36: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Fejlesztői evolúció 1. szint – Kezdeti

▪ Fejlesztő oldaláról · Legtöbb web programozó, HTML-t "írók". · Statikus web lapok · WYSIWG szerkesztők, szövegszerkesztők · Nem használnak mintákat, sablonokat · Nem használnak fejlesztést segítő eszközöket · Tesztelés hiányzik vagy kezdetleges · Nem jellemző a program logika · Kis csapat, kezdetleges oldalak · Nincsenek elkülönült szerepek

▪ Megrendelő szempontjából · Elsődleges cél a jelenlét az Interneten · Kevés, ritkán változó tartalom · Csak egy ún. elektronikus prospektus oldalt várnak el · Kevés visszatérő látogató (ha van egyáltalán) · Nincs web-es stratégia, vagy cél

36

Page 37: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Fejlesztői evolúció 2. szint – Ismételhető

▪ Fejlesztői oldalról

· A hagyományos web programozást segítő tananyagok, könyvek segítségével ezt a szintet lehet elérni

· Tapasztalat útján, sok megrendelést követően juthat el ide a cég a fejlesztő cég mérete növekedik

· Elkezdenek újrafelhasználható komponenseket, sablonokat használni

· Dinamikus weblapok megjelenése, kezdetleges program logikábal. A növekvő megrendelési igények miatt is

· Típus hiba: kísérletező fejlesztő, a legújabb technológiákat használja a "szép oldalakért", de a funkcionalitás rovására.

▪ Megrendelő szempontjából

· A megrendelő is fejlődik, a tartalom frissessége is számít már.

· A megrendelő szeretné a tartalmat maga alakítani

37

Page 38: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Fejlesztői evolúció 3. szint - Meghatározott

▪ Megrendelő szempontjából · A marketing stratégia és a web stratégia összetalálkozik · Konkretizálódnak az elvárások · Vevőkkel, partnerekkel is elektronikusan akarják tartani

a kapcsolatot · Intranet oldalak megjelenése

▪ Fejlesztő oldaláról · Tartalomkezelő rendszer · E-kereskedelmi, ügyfélszolgálati szolgáltatások

megjelenése · Profi fejlesztő csapat szükséges · Használnak már fejlesztő, tervező eszközöket. · Biztonsági elvárások is megjelennek · Folyamatos fejlesztői képzések · Adatbázisok használata · A fejlesztői szerepek szétválnak: programozó, adatbázis

és (web) server adminisztrátor, designer 38

Page 39: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Fejlesztői evolúció 4. szint – Menedzselt

▪ Megrendelő szempontjából · Keretrendszer használata szükséges · Belső portál az alkalmazottaknak és a partnereknek · Profi belső üzemeltetői csapat is kellhet (nem minden

esetben!)

▪ Fejlesztői oldalról · Web service – Szolgáltatás Orientált Architektúra · Architektúra tervezés · Alapvető Web 2.0 alkalmazások megjelenése · Projektmenedzsment a középpontba kerül · Munkafolyamat-kezelés · Célok, eredmények mérése, értékelése · További szintek: tervező, rendszerszervező, tesztelő · Állandó együttműködés a megrendelővel · Menedzselhető fejlesztő rendszerek: J2EE, .NET.

39

Page 40: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Fejlesztői evolúció 5. szint – Optimalizáló

▪ Megrendelő oldaláról

· ERP funkciók az Intraneten,

· Az elkülönült IT rendszerek összeköttetése,

· A piac gyors, rugalmas reakciókat vár el

▪ Fejlesztő oldaláról

· A szervezet fejlődik, alkalmazkodik, tanul!

· A fejlesztői folyamatok folytonos változása a legfontosabb.

· Produktivitás, hatékonyság, a megrendelői elvárások kerülnek a középpontba.

· Hiba megelőző, elemző módszerek a fejlesztésben.

· A termék a lehető legjobb minőségben készül el, határidőre!

40

Page 41: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

41

Egyéb területek

Page 42: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Internetes alkalmazások korlátai

Kliens erőforrásainak elérhetősége

Kliensek különbözőségének kezelése

Sávszélesség problémák

Számítás-igényes alkalmazások nehézségei

42

Page 43: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Multimédiás adatbázisok

Kurrens terület, ahol a web-es környezet le van maradva

Kliens oldali nehézségek: A böngészőn esetleg speciális plug-in szükséges a tartalom megjelenítéséhez.

Prezentációs és logikai szint: A tartalmakat nem tudjuk egyszerűen változókba tölteni, mint elemi típusok esetén, hanem stream-ekkel kell dolgozni. Ennek a technikáját meg kell ismerni. A HTTP protokoll ismerete is szükséges, hagyományos dinamikus WEB oldalakat általában a környezet default beállításaival le tudunk küldeni a kliens-re, míg multimédiás tartalom esetén a HTTP header-t módosítani kell.

Adatbázis: A nagyméretű bináris adatok tárolása pl. relációs adatbázisokban; valamint a visszakeresés, módosítás egy külön nagy kutatási területet jelent az adatbázisokkal foglalkozó ágon belül. Ez korrelál bizonyos mesterséges intelligenciabeli módszerekkel is.

43

Page 44: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

XML

<nev>Gipsz Jakab</nev>

XML mint tárolás: SVG, MPEG7

Kommunikáció

▪ Értelmezhető

▪ Platform-független

Adat és megjelenés elválasztása

XML (hierarchikus) adatbázisok vs. relációs modell

44

Page 45: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Miért PHP? Pro és kontra

PRO

Web-programozás I, PHP speci, mint alap.

Elterjedt: az Apache WEB szerverrel együtt nagyon hatékony, ténylegesen képes akár több ezer konkurrens (párhuzamosan beérkező) kérést kiszolgálni.

Egyszerű megtanulni.

Példáink más nyelveken, környezetben is működnek.

KONTRA

Nehéz a funkciók (prezentáció és logika) szétválaszthatósága a környezet nem segíti.

A team munkát sem támogatja.

Egyes feladatok könnyebben, szebben, jobban megoldhatóak egy erősebb fejlesztői környezetben pl.: Java, .NET

45

Page 46: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Keretrendszerek

Alapelemeket biztosító programozási rendszerek, melyek összetett feladatokat képesek támogatni.

Egy vázat adnak alkalmazásaink számára.

Bizonyos filozófiának megfelelő szabályok gyűjteménye

Gyakori, ismétlődő műveleteket támogatnak, sablonokat biztosítanak:

▪ munkamenetek,

▪ adatbázis kapcsolatok,

▪ hibakezelés, stb. 46

Page 47: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Miért van szükség keretrendszerekre?

Ömlesztett kód: HTML(, CSS), PHP, egyben van

Ömlesztett logika: vezérlés, adatelérés, megjelenítés, feldolgozás, alkalmazáslogika egyben van

Csoportmunka nem lehetséges

Konfiguráció kódba épített

Karakterkódolás eltérő lehet a HTML-ben, PHP-ban és adatbázisban, nincs egységesen kezelve

Több belépési pontja van az alkalmazásnak, ami biztonsági és jogosultsági kérdéseket vet fel

47

Page 48: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Keretrendszerek

Előnyök

▪ Fejlesztési időt takarítható meg

▪ Rákényszerítik a programozót valamilyen kódolási standard-re átláthatóbb kódok

▪ Valamilyen szabályrendszert alkalmazását várják el.

▪ Támogatják az újra felhasználhatóságot

▪ Egységesebb alkalmazásfejlesztés

▪ Szétválasztott kód és logika

▪ Meghatározott könyvtárszerkezet

▪ Csoportmunka támogatott: külön fileok az egyes szakembereknek (designer, adatbázisos, felületfejlesztő, stb.)

▪ Rétegek szétválasztása

Hátrányok

▪ Tanulásokhoz idő kell

▪ Szabályok korlátokat is jelentenek 48

Page 49: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Keretrendszerek - példák

Vastag-kliens RAD: Visual Studio, Borland Delphi, …

PHP: CodeIgniter, Symfony, Zend Framework, CakePHP, Yii, Prado

PHP keretrendszerek tartalomkezelő szolgáltatásokkal: Drupal, Joomla!, Wordpress, e107

JavaScript: JQuery, Prototype, script.aculo.us, Yahoo YUI, ExtJS

ASP.NET framework

Java: Spring, Struts2, Google Web Toolkit, JavaServer Faces, OpenLaszlo, Oracle ADF

Python: Django

Ruby: Ruby on Rails, PureMVC

Flash platform: Flex

49

Page 50: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Mi a probléma az eddigi web-fejlesztési gyakorlattal?

Nagyobb munkák írása egyre nagyobb nehézségekbe ütközik

A kód felesleges elágazásokat tartalmaz, nem lehet tudni, mikor mi hívódik meg

50

Page 51: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Keretrendszer vs. Tartalomkezelő (CMS)

Web-es fejlesztés célja

Programozói készségek, érettségi szint az adott környezetben

Tisztán tartalom megosztás

Tartalom-megosztás kevés fejlesztéssel

Szofisztikált funkciók, a tartalmi szempontok nem fontosak

Kezdő CMS CMS, de fejlesztés nem ajánlott

Projekt nem ajánlott

Haladó CMS CMS / Framework

Framework

Profi CMS CMS / Framework

Framework

51

Page 52: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

PHP KERETRENDSZEREK

52

Page 53: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Front Controller

Minden oldalt érintő közös műveletek egy helyen szerepelnek:

▪ Konfiguráció beolvasása

▪ Autentikáció

▪ Autorizáció

▪ Input paraméterek előfeldolgozása, szűrése

▪ Karakterkódolás

1 belépési pont: index.php

Hogyan jelezhető, melyik oldalt kell megjeleníteni?

▪ hidden mező

▪ GET paraméterrel: index.php?oldal=main 53

Page 54: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Példa: Front Controller – 1.

54

switch ($oldal) { case "index": index(); break; case "page1": page1(); break; case "page2": page2(); break; case "page3": page3(); break; default: index(); }

function index() {

}

function page1() {

}

function page2() {

}

function page3() {

}

Page 55: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Példa: Front Controller – 2.

55

function index() {

}

function page1() {

}

function page2() {

}

function page3() {

}

if

(function_exists($oldal)) { call_user_func($oldal); }

Page 56: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Példa: Front Controller – 3.

56

switch ($oldal) { case "index": include "v3_index.php"; break; case "page1": include "v3_page1.php"; break; case "page2": include "v3_page2.php"; break; case "page3": include "v3_page3.php"; break; default: include "v3_index.php"; }

Page 57: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Példa: Front Controller – 4.

57

if (file_exists("v3_" . $oldal . ".php")) { include_once("v3_" . $oldal . ".php"); }

Page 58: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Model-View-Controller (Modell-Nézet-Vezérlő - MVC)

A FrontController nem segít az egyes rétegek szétválasztásában.

▪ A kód ugyanúgy ömlesztett marad az egyes részmodulokban

Összetett, sok adatot kezelő alkalmazásokban elvárható:

▪ Az adatok (modell) és a felhasználói felület (nézet) szétválasztása.

▪ A nézet ne befolyásolja az adatkezelést.

▪ Az adatok átszervezhetőek legyenek a felhasználói felület változtatása nélkül.

58

Page 59: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

MVC – 2.

Az MVC tervezési minta elkülöníti az adatok elérését és az üzleti logikát az adatok megjelenítésétől és a felhasználói interakciótól egy közbülső összetevő, a vezérlő bevezetésével.

▪ Model: az adatokat, praktikusan az adatbázisbeli táblák, néha beleértik ezek elérését segítő kódot vagy magát az üzleti réteget is

▪ View: megjelenítésért szükséges réteg

▪ Controller: vezérlést végzi, értesíti a Modelt és a Viewt is a változásokról, kezeli az input adatokat.

Össze szokás kapcsolni a FrontController mintával

59

Page 60: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

MVC: Oldal életciklusa – 1.

60

Page 61: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

MVC: Oldal életciklusa – 2.

Példa: CodeIgniter

61

Page 62: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Saját MVC keretrendszer készítésének menete

Elvárások, szabályok megfogalmazása

Könyvtárszerkezet

View, template (PHP nyelvi elemek: echo, for, foreach, while)

Front Controller (index.php)

Model elkészítése

62

Page 63: Webes alkalmazások tervezése (Web adatbázis programozás)ade.web.elte.hu/WebAlk-1.pdf · ·Projektmenedzsment a középpontba kerül ·Munkafolyamat-kezelés ·Célok, eredmények

Irodalomjegyzék

Frigó József: Többrétegű architektúrák. BME, 2000-2006 http://www.inf.bme.hu/~frigo/ooret7/tiers.odp

Martin Fowler: Analysis Patterns - Reusable Object Models. Addison-Wesley, 1997

Papp Szabolcs: Bevezető jegyzet a Web-adatbázis programozás c. tárgyhoz. ELTE Informatikai Kar, 2005.

Tarcsi Ádám: Quality measurement of Business WEB Applications. Serdica Journal of Computing, 2008.

63