SB Eszter SB Application Engine Peter Verhás 2002 április 9.

Slides:



Advertisements
Hasonló előadás
A számítógépes hálózatok és az Internet
Advertisements

4. alkalom – Hálózat Kezelés
HTML5 alapú fejlesztő és futtató környezet megvalósítása
IKTA beszámo ló Testre szabott on-line tartalomszűrés és alkalmazása mobil kommunikációban Dr. Harmat Péter projektvezető, üzletfejlesztési igazgató.
SB ScriptBasic Általános Architektúra Peter Verhás Február 2002.
Az LCD kijelző programozása
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Operációs rendszerek 1. Takács Béla
9. előadás (2005. április 26.) Parancssor argumentum kezelés példák (K&R) Fordítóprogramok A C előfordító 1.
8. előadás (2005. április 19.) Pozicionálás fájlban (folyt.) I/O mechanizmus váltás Hibakezelő függvények Változók tárolási osztályai Parancssor-argumentumok.
ATMEL AVR mikrokontroller család hardver-felépítése
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Tanszéki konzulens: Horváth Ákos Készítette: Kóródi Norbert.
10. előadás (2004. április 20.) A C előfordító (folytatás) Néhány hasznos compiler opció Egy tanulságos könyvtári függvény Változó hosszúságú argumentum.
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.
7. előadás (2005. április 12.) Láncolt lista File kezelés 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Programozás II. 3. Gyakorlat C++ alapok.
Fejlett Programozási Technológiák II. Világos Zsolt 12. gyakorlat.
Borland C/C++ mintapéldák struktúrákra. 1. példa /* Egyszerû példa a struktúrák használatára */ #include #define SIZE 5 struct szemely { char nev[26];
Ellenőrző kérdések a)Auto-indexing enabled b)Auto-indexing disabled c)Nem eldönthető 1.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WEB Technológiák Coldfusion ME Általános Informatikai Tsz. dr. Kovács László.
WEB Technológiák A HTML és a CGI ME Általános Informatikai Tsz. dr. Kovács László.
Krizsán Zoltán.  Ha az algoritmus sokáig dolgozik,  de el akarjuk kerülni a „fagyást”.  Kisebb a költsége, mint az új folyamatnak.  Programozás szempontjából.
ASP.NET „röviden” Krizsán Zoltán ver: 0.2.
Szombathely Dinamikus WEB programozás: PHP és JSP.
C++ alapok, harmadik óra
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
1 Operációs rendszerek Az NT folyamatok kezelése.
Operációs rendszerek gyakorlat 9. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
PHP III. Fájlok, űrlapok.
PHP VII Sütik, munkamenetek. Sütik Mi az a süti? A süti (cookie) állapotot tárol a felhasználó böngészőjében. Pl. ha egy oldalon beállítható, hogy milyen.
Buffer Cache Adat beolvasása a memóriába 2 2 Változások rögzítése a log fájlba 3 3 Checkpoint, adatok írása az adatbázisba Checkpoint, adatok írása.
Programrendszer 2. Erőforrás – erőforrás elosztás 3. Indítja és ütemezi a programokat 4. kommunikáció 2 Takács Béla.
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
PHP oktatási tapasztalatok
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Széchenyi Isván Egyetem Számítógépes hálózatok II 1 Számítógépes Hálózatok II Széchenyi István Egyetem.
A D programozási nyelv Angeli Dávid. Nagy vonalakban  C++  
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
HTML5 alapú fejlesztő és futtató környezet megvalósítása
Web fejlesztés V. Illés Zoltán ELTE Informatikai Kar
Miért is jók a rétegek?  Ha alkalmazást készítünk, nem akarunk IP csomagok küldésével bajlódni Ethernet keretekkel foglalkozni Implementálni megbízható.
Illés Zoltán ELTE Informatikai Kar
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 4. Gyakorlat Függvény paraméterek, dinamikus.
Egyenesvonalú (lineáris) adatszerkezetek
Hálózat menedzsment Óravázlat Készítette: Toldi Miklós.
A Visual Basic nyelvi elemei
Illés Zoltán ELTE Informatikai Kar
Így készült... a drupal6themes.com. 2 Miről lesz szó? Ötlet Célok Megoldások Problémák és hiányosságok További ötletek és tervek.
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
Illés Zoltán ELTE Informatikai Kar
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
A ROM ÉS A BIOS. K ÉSZÍTETTE R ELL P ATRIK A ROM A ROM egy olyan elektrotechnikai eszköz, amely csak olvasható adatok tárolására alkalmas memória. Tartalma.
Operációs rendszerek Bátfai Norbert Debreceni Egyetem Informatikai Kar (DE IK), Információ Technológia.
Hálózatos programok készítése
Logikai programozás 10..
Alkalmazott Informatikai Tanszék
Web technológia alapjai
CONNECTRA rendszer bevezetése
Alkalmazott Informatikai Tanszék
Előadás másolata:

SB Eszter SB Application Engine Peter Verhás 2002 április 9.

SB Tartalom Mi az ESBAP Megvalósítás CGI modul MT modul

SB Mi az Eszter SB Application Engine? HTTP szerver, amelyik Tartalmazza a ScriptBasic értelmezőt Külső támogató modulok: –CGI –MT

SB Hogyan működik? Beolvassa a konfigurációját Naplózó szálakat indít Munka értelmezőket futtat szálakon Hallgatódzik porton Bejövő kapcsolatra –új szálat indít –Feldolgozza a http kérés első maximum 32K-ját –Értelmezőt indít

SB Megvalósítás: HTTPD modul int httpd(int argc, char *argv[], int (*AppInit) (int argc, char *argv[], pHttpdThread pHT, void **AppData), int (*AppStart)(void **AppData), void (*HttpProc)(pHttpdThread pHT, pThreadData ThisThread));

SB Paraméter függvények AppInit konfiguráció beolvasás AppStart szálak elindítása HttpProc kezeli a http kéréseket

SB Memória struktúra struct _HttpThread{ threads mxFirstFreeThread iState AppData } struct _ThreadData{ ThreadIndex pThreadLocalData... pHT }

SB Konkurencia kezelése Az ESBAP minden egyes HTTP kérésre új szálat indít Lehetne még: –Minden egyes HTTP kérésre új process –Meglevő szál elindítása, újraindítása –Socket kezelés közös szálon

SB Konkurencia kezelés összehasonlítás Új szál –könnyebb programozni, nem kell szál menedzsmentet írni Régi szál újra felhasználva –esetleg gyorsabb, operációs rendszer függő Egy szálas socket kezelés –a program dönti el, hogy kit szolgál ki, nem az operációs rendszer

SB Embed Pointer scriba_SetEmbedPointer –Beállítja az „Embed Pointer”-t –Ez a mutató értelmes a befogadó alkalmazás számára, nem értelmes a BASIC számára, és értelmes a befogadó alkalmazás speciális moduljai számára pProgram->pEmbedder ScriptBasic interpreter

SB Eszter SB Engine Embed Pointer struct _ThreadData { –... –msgsock –... cgi.c -ben p = (pModuleObject)besMODULEPOINTER; P->Cgi.Embed = pSt->pEo->pEmbedder input olvasása: ch = pCO->pfStdIn(pCO->pEmbed);

SB CGI modul felépítése cginterf.c felület függvények cgi.c http input adat kezelés C- ben –Nem igazi CGI, hanem bármilyen http szerver –Paraméterezhető 3db I/O, ENV függvénnyel és 1db Embed mutatóval

SB CGI modul képességei GET, POST (upload) Tetszőleges méretig (memória határolja) Paraméterezhető limitek

SB CGI modul inicializálás typedef struct _CgiObject {... long fInterface; // constant defining the interface type... void *pEmbed; // embedder pointer stdin/stdout and env int (*pfStdIn)(void *pEmbed); void (*pfStdOut)(int, void*pEmbed); char *(*pfEnv)(void *,char *,long); //user defined environment function... int (*CharacterInput)(struct _CgiObject *p); void *pInputParameter; // the parameter the input function can use... unsigned long lBufferIncrease; // increase the buffer using this increment unsigned long lBufferMax; // never exceed this size with the buffer unsigned long lContentMax; // maximal content-length we deal with unsigned long lFileMax; // maximal file length we deal with... long fMethods; // allowed methods, each bit set is an allowed method } CgiObject, *pCgiObject;

SB MT Modul Multi-thread közös memória kezelése BASIC szinten, nem csak web szerver Session fogalma Session változó Application változó Zárak

SB MT Modul Session fogalma Időben egymás utáni, egy klienst kiszolgáló, összetartozó szálak Paraméterek: –SessionID –Start time –Ping time –Time out time

SB Session Time Out kezelése Session törlése –kilépésnél (a kilépést kezelő BASIC program törli a session-t) –“time out” esetén (milyen program?) run és restart konfigurációs opciók –lehetne MT modul függvény, ami elindít (ha még nem fut) egy BASIC „worker” programot –lehetne előre definiált „time out” alkalmazás szerver szinten, de így flexibilisebb

SB MT Modul Session függvények mt::SetSessionId "session id„ mt::CheckSessionId("sessionid") mt::SessionCount() mt::NewSession(["optional random string"]) mt::DeleteSession ["sessionid"] mt::GetSessionId() mt::SetSessionVariabe "variablename",value mt::GetSessionVariabe("variablename") mt::SessionTimeout [sec] mt::GetSessionTimeout ["sessionid"] mt::GetSessionPingTime ["sessionid"] mt::ListSessions Array,Sm,SM,Pm,PM,Tm,TM

SB MT Modul alkalmazási változót kezelő függvények mt::SetVariable "variablename",value mt::GetVariable("variablename") mt::LockWrite "variablename" mt::LockRead "variablename" mt::UnlockWrite "variablename" mt::UnlockRead "variablename"

SB Mi hiányzik az MT modulból? Általános erőforrás csoport kezelés Például –Adatbázis kapcsolat újrafelhasználás

SB Köszönöm a figyelmet