COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

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

Ajax és Echo 2. Bokor Attila

Kiknek szól ez a könyv? Miről szól a könyv? Hogyan épül fel a könyv? Mire van szükség a könyv használatához? Szokások Forráskód Hibajegyzék

Web-fejlesztés NGM_IN002_1

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

JAVA webes alkalmazások

Web programoz as

AJAX-ot támogató keretrendszerek

AJAX AJAX. AJAX: Asynchronous JavaScript and XML. az alábbi technológiákon alapul: AJAX-ot támogató keretrendszerek

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

A szerzõrõl... vii Köszönetnyilvánítás... ix Bevezetés... xi A könyv példakódjai... xiii Áttekintés... xv Tartalomjegyzék... xvii

AJAX Framework építés. Nagy Attila Gábor Wildom Kft.

Flex: csak rugalmasan!

Nyilvántartási Rendszer

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

Tisztelt Telepítő! 2. Ellenőrizze, hogy a modul engedélyezve van-e: Szekció [382] Opció 5 (alternatív kommunikátor) BE.

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

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

Számítógépes Hálózatok. 5. gyakorlat

Bevetés közben Ismerkedés az Ajaxszal

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

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

API tervezése mobil környezetbe. gyakorlat

webalkalmazások fejlesztése elosztott alapon

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

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

WEBES ALKALMAZÁSFEJLESZTÉS 1.

Tisztelt Telepítő! A központ és az alkalmazás összehangolását a következőképpen hajthatja végre:

Földmérési és Távérzékelési Intézet

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

Web fejlesztés II. Illés Zoltán ELTE Informatikai Kar I n f o r m a t i k a

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

Folyamatok. 6. előadás

Multimédiás adatbázisok

Információ és kommunikáció

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Információ és kommunikáció

SZERVIZ 7. a kreatív rendszerprogram. Telepítési dokumentáció Szerviz7 DEMO alkalmazásokhoz. Verzió: 08/ 2010

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

Elektronikus Információs és Nyilvántartási Rendszer a Doktori Iskolák fiatal kutatói részére

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

Hálózati ismeretek. Az együttműködés szükségessége:

Gyakorlati vizsgatevékenység A

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

12.óra jquery Framework #1. Gyimesi Ákos

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Gyakorlati vizsgatevékenység B

AJAX 2 in 1: Interaktív oktatás és modern webtechnológia Nagy Zsolt.

Webszolgáltatások (WS)

AJAX 2 IN 1: INTERAKTÍV OKTATÁS ÉS MODERN WEBTECHNOLÓGIA

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

WEBFEJLESZTÉS 2. ADATTÁROLÁS, MUNKAMENET- KEZELÉS, AJAX

Bevezető. Servlet alapgondolatok

Elektronikus levelek. Az informatikai biztonság alapjai II.

Elosztott rendszer architektúrák

Valimed API. REST API a magyarországi orvos pecsétszámok validálására

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

Kommunikáció. 3. előadás

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

Jquery. Konstantinusz Kft.

Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

A szóbeli vizsgafeladatot ha a feladat indokolja a szaktanárok által összeállított mellékletek, segédanyagként felhasználható források egészítik ki.

A Java EE 5 plattform

ELTE, IK, Információs Rendszerek Tanszék

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

Teljesítménymodellezés

ELEKTRONIKUS MUNKABÉRJEGYZÉK MODUL

Többfelhasználós és internetes térkép kezelés, megjelenítés

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

Objektumorientált programozás

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

Zimbra levelező rendszer

GeoServer, OpenLayers és WFS. Dolleschall János

Internet-hozzáférések teljesítményvizsgálata webböngészőben

SCHNETv6 IPv6 a Schönherzben. 5/7/12 Tóth Ferenc - IPv6 a Schönherzben 1

Videosquare regisztráció - Használati tájékoztató

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

Web service fenyegetések e- közigazgatási. IT biztonsági tanácsadó

MINISZTERELNÖKI HIVATAL. Szóbeli vizsgatevékenység

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

RIA Rich Internet Application

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

1. DVNAV letöltése és telepítése

Pick Pack Pont kereső és boltválasztó alkalmazás

Webes alkalmazások fejlesztése

Tartalom. A JavaScript haladó lehet ségei. Megjelenés. Viselkedés. Progresszív fejlesztés. A progresszív fejlesztés alapelvei

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Alkalmazás technológiai frissítés migrációs és üzemeltetési tapasztalatok

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

GDi Esri Magyarország Felhasználói Konferencia Timár Gábor: Konkurens adatfeldolgozás ArcGIS rendszerben

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

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

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

JavaScript bűvésztrükkök, avagy PDF olvasó és böngésző hackelés

Számítógépes munkakörnyezet II. Szoftver

Muppet: Gyors adatok MapReduce stílusú feldolgozása. Muppet: MapReduce-Style Processing of Fast Data

Átírás:

COMET webalkalmazás fejlesztés Tóth Ádám Jasmin Media Group

Az előadás tartalmából Alapproblémák, fundamentális kérdések Az eseményvezérelt architektúra alapjai HTTP-streaming megoldások AJAX Polling COMET AJAX COMET Long/Smart Poll Forever Frame

Alapproblémák A HTTP protokoll kérés-válasz jellegű kommunikációt valósít meg A kommunikációt a kliens kezdeményezi, a szerver erre válaszol A szerver által kezdeményezett kommunikáció nem támogatott Webalkalmazás: 3 rétegű alkalmazás Megjelenítési réteg (Böngésző) Üzleti logika (Webszerver + cgi) Adat szint (Adatbázis)

Alapproblémák Gond: A webalkalmazás állapota nemcsak a kliensoldalon változhat meg,hanem szerveroldalon is Hogyan értesül a kliens oldal a szerver oldalon történt változásokról? A szerver nem kezdeményezhet kommunikációt A kliensnek le kell kérdeznie az aktuális állapotot Cél: szerveroldali események eljuttatása a kliensnek, hatékonyan, oldal újratöltés nélkül

Eseményvezérelt architektúra Programozási paradigma; a program futásának menete nem mereven rögzített, azt különböző események (felhasználói, szoftver) befolyásolhatják Kliens oldalon biztosított (OS, Javascript), szerveroldalon azonban nem, így célszerű kiépíteni

Eseményvezérelt architektúra Az architektúra komponensei Esemény (event) Eseménysor (event queue) Eseményciklus (event loop) Eseménykezelő (event handler)

Eseményvezérelt architektúra

Eseményvezérelt architektúra Esemény-infrastruktúra: az események többsége az adatbázis tartalom változásával kapcsolatos => tartsuk az adatbázisban az eseménysort

Eseményvezérelt architektúra Trigger eventid Source sourceid Type Time sessid sessdata 1 Session 213231 I 1174 9366 19 213231 2 Session 213231 U 1174 9366 120 3 Publicat ion 942 U 1174 9366 121

Eseményvezérelt architektúra Eseményciklus: új események kivétele a sorból és eljuttatása az eseménykezelőhöz Webalkalmazás: eseménykezelő a kliens oldalon Adatátvitel: valamelyik HTTP-Streaming technika segítségével

HTTP-Streaming megoldások AJAX-Polling Talán a legkézenfekvőbb megoldás Használjuk az XMLHTTPRequest (XHR) objektumot az eseménysor periodikus lekérdezésére! Események átvitele pl.: XML formátumban DEMO

HTTP-Streaming megoldások AJAX-Polling Előnyök Könnyen megvalósítható Kis trükkökkel jól skálázható Hordozható Hátrányok Ha az események gyakoriak, csökkenteni kell a lekérdezés periódusidejét => sok kapcsolat Ha az események változó gyakorisággal jelennek meg => erőforrásokat pazarlunk el felesleges lekérdezésekkel Nem túl rugalmas megoldás

HTTP-Streaming megoldások COMET Küszöböljük ki a polling hibáit! Sok lekérdezés helyett nyissunk egy kapcsolatot a szerver felé, és tartsuk azt nyitva (keep-alive)! A nyitott kapcsolaton keresztül a szerver folyamatosan küldhet adatokat a kliensnek Adatforgalom csak új esemény esetén

HTTP-Streaming megoldások COMET - Problémák Gondok a hosszú HTTP kapcsolatokkal Webszerver Rossz skálázhatóság Tűzfalak Hosszú kapcsolatok bontása Böngészők 1 szerverhez max. 2 párhuzamos kapcsolat Kapcsolat bontása, ha bizonyos ideig nem jön adat

HTTP-Streaming megoldások Ajax COMET Kapcsolat létesítése az XHR objektumon keresztül Események küldése a szerveroldalról XML? Text Nem jó, mivel a responsexml csak akkor olvasható ki, ha a teljes XML dokumentum rendelkezésre áll Érdemes azonnal végrehajtható JavaScript kódot küldeni JSON praktikus választás

HTTP-Streaming megoldások Ajax COMET Események fogadása Mikor? Nyitott kapcsolat esetén az XHR readystate attribútuma a 3- as (interaktív) értéket veszi fel => az onreadystatechange callback-ben a 3-as állapotot kell figyelnünk Hogyan? A responsetext változó folyamatosan hízik, ahogy az új események érkeznek Tárolni kell, hogy a callback utolsó meghívásakor hol fejeztük be a responsetext olvasását Az eseményeket valamilyen határoló karaktersorozattal kell elválasztanunk egymástól DEMO

HTTP-Streaming megoldások Ajax COMET Problémák Internet Explorer alatt nem működik Az IE XHR implementációja nem engedi kiolvasni a responsetext tartalmát, amíg a readystate nem 4 (Complete)

HTTP-Streaming megoldások Long/Smart Poll Próbáljuk meg egyesíteni az AJAX Polling és az AJAX COMET pozitív tulajdonságait! AJAX Polling: hordozható, egyszerű AJAX COMET: hatékonyabb kapcsolat kihasználás Ötlet: Ha vannak új események, küldjük el őket a kliensnek, zárjuk le a kapcsolatot, majd indítsuk újra a stream-et Ha nincs új esemény, nem térünk vissza, nyitva tartjuk a kapcsolatot DEMO

HTTP-Streaming megoldások Long/Smart Poll Előnyök Minden böngésző alatt működik Takarékosabban bánik új kapcsolatok kiépítésével, mint az AJAX Polling Hátrányok Ha gyakran következnek be események, ugyanott vagyunk, mint az AJAX Polling esetében

HTTP-Streaming megoldások Forever Frame A Gmail-ben debütált Alapötlet: minden böngésző automatikusan végrehajtja a frame-ekbe ágyazott inline javascript kódokat => Az XHR objektum helyett használjunk iframeet a streaming lebonyolítására A szerveroldali script inline javascript-et küld az iframe-nek, melyet a böngésző automatikusan végrehajt DEMO

HTTP-Streaming megoldások Forever Frame Előnyök Minden böngésző alatt működik Megvalósítja a COMET működést Hátrányok A hosszú HTTP kapcsolatok során felmerülő problémák itt is érvényesek!

Összefoglalás HTTP-Streaming léteznek megoldások A két legrugalmasabb a Long Poll és a Forever Frame A különböző időzítési paraméterek megválasztása nagyon fontos! Kész megoldások Light Streamer COMET and AJAX Request Router COMETd XAJAX JQuery