Service Oriented Architectures
Total Page:16
File Type:pdf, Size:1020Kb
Service Oriented Architectures / busaco ~ / profs.info.uaic.ro ☸ Sabin Buraga Dr. arhitectura unui navigator Web do nothing, say nothing, be nothing. be say nothing, nothing, do “ Elbert Hubbard To avoid criticism To avoid ” Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ mediu de execuție / busaco ~ / browser Web funcționalități de bază profs.info.uaic.ro (application logic) interpretor acces la JavaScript platformă Dr. Sabin Sabin Buraga Dr. mediu de execuție (sistem de operare, aplicație nativă,…) / busaco ~ / browser Web funcționalități de bază profs.info.uaic.ro procesare conținut, redare,… interpretor acces la JavaScript platformă Dr. Sabin Sabin Buraga Dr. rețea, grafică, fonturi, widget-uri native,… / busaco ~ / Un client (i.e. browser Web) se identifică via valoarea câmpului-antet User-Agent dintr-o cerere HTTP profs.info.uaic.ro www.useragentstring.com Sabin Buraga Dr. / busaco ~ 1993 – primul browser Web: Mosaic – Mosaic/0.9 / 1994 – primul browser comercial: Netscape Navigator include primul interpretor JavaScript și oferă o interfață de programare (BOM – Browser Object Model) profs.info.uaic.ro Mozilla/Versiune [Limbă] (Platformă; Criptare) Mozilla/2.02 [fr] (WinNT; I) Mozilla/Versiune (Platformă; Criptare [; descriere OS]) Mozilla/3.0 (X11; I; AIX 2) Dr. Sabin Sabin Buraga Dr. Netscape Communicator 4 – Mozilla/4.04 [en] (WinNT; U) http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent-string/ / busaco ~ / profs.info.uaic.ro 1994 – primul browser disponibil pe un dispozitiv Sabin Buraga Dr. miniaturizat (PDA – Apple Newton): PocketWeb http://www.teco.edu/pocketweb/ / busaco ~ / 1996 – primul navigator produs de Microsoft: MSIE include dialectul JScript și propriul BOM oferă multe facilități, ulterior standardizate de W3C profs.info.uaic.ro Mozilla/2.0 (compatible; MSIE Versiune; Sistem de operare) Mozilla/2.0 (compatible; MSIE 3.02; Windows 95) MSIE 4—7 – Mozilla/4.0 (compatible; MSIE 4.5; Mac_PowerPC) MSIE 8 – Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) Dr. Sabin Sabin Buraga Dr. MSIE 11 – Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko www.modern.ie / busaco ~ / 1996 – primul navigator trialware: Opera 2 focalizat pe utilizabilitate (e.g., tab-uri) și accesibilitate (de exemplu, interacțiune prin gesturi) profs.info.uaic.ro permite selectarea modului de identificare a browser-ului Opera/Versiune (OS; Criptare) [Limbă] Opera/7.54 (Windows NT 5.1; U) [en] Dr. Sabin Sabin Buraga Dr. http://dev.opera.com/ / busaco ~ / 1998 – apariția procesorului de redare (rendering engine) Gecko Mozilla/Versiune (Platformă; Criptare; OS/CPU; Limbă; profs.info.uaic.ro VersiuneRevizie) Gecko/Versiune Produs/Versiune Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1b2) Gecko/20060823 SeaMonkey/1.1a Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Sabin Buraga Dr. http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent-string/ / busaco ~ / 1997—1999 – navigator Web pentru telefoane mobile: HitchHiker (ulterior, Microsoft Mobile Explorer 2.0) profs.info.uaic.ro acces via WAP (Wireless Access Protocol) conținut structurat cu WML (Wireless Markup Language) procesare de date + interacțiune prin WMLScript Dr. Sabin Sabin Buraga Dr. / busaco ~ / fundația Mozilla – codul Netscape disponibil open source: Phoenix (2002)Firebird (2003)Firefox (2004) focalizare asupra respectării standardelor Web interfață via XUL (Extensible User-interface Language) profs.info.uaic.ro extensibil via add-ons (extensii, teme vizuale etc.) ciclu de dezvoltare de 6 săptămâni: Nightly, Aurora, Beta, Release Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0 Dr. Sabin Sabin Buraga Dr. https://developer.mozilla.org/Mozilla/Firefox / busaco ~ / 2003 – Apple Safari cu WebKit bazat pe KHTML (KDE) accent pus pe inovare (<canvas>, CSS,…) + performanță Mozilla/5.0 (Platformă; Criptare; OS/CPU; Limbă) profs.info.uaic.ro AppleWebKit/Versiune (KHTML, like Gecko) Safari/Versiune Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125.1 Mozilla/5.0 (iPad; CPU OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4 Sabin Buraga Dr. https://developer.apple.com/devcenter/safari/ / busaco ~ / 2005 – Opera Mini oferă primele facilități de redare a datelor pe ecrane miniaturizate (small screen rendering) procesare realizată la nivel de server via data centers profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. / busaco ~ 2008 – Google Chrome folosind WebKit; din 2013: Blink / bazat pe proiectul open source Chromium focalizare asupra performanței la nivel de client Web interfață minimalistă + manager de tab-uri profs.info.uaic.ro include instrumente avansate pentru dezvoltatori Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13 Mozilla/5.0 (Linux; Android 5.0.2;…) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.117 Safari/537.36 GSA/5.2.33.19.arm Sabin Buraga Dr. https://developers.google.com/chrome/ www.chromium.org / busaco ~ 2015 – Microsoft Edge folosind EdgeHTML / (bazat pe Trident de la vechiul IE) accent asupra suportului standardelor Web și interoperabilității profs.info.uaic.ro rulează exclusiv pe sistemele Windows Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240 Dr. Sabin Sabin Buraga Dr. https://dev.modern.ie/platform/status/ / busaco ~ / Care este arhitectura generală a unui navigator Web? profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. data user interface / persistence busaco ~ browser engine / rendering engine profs.info.uaic.ro net JS XML inter- par- display back-end work preter ser Dr. Sabin Sabin Buraga Dr. componentele de bază ale unui navigator Web generic conform (Grosskurth & Godfrey, 2006; Garsiel, 2011) rendering engine / busaco ~ / profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. procesele implicate în afișarea conținutului unei pagini Web (J. Brereton et al., 2011) / busaco ~ / user interface profs.info.uaic.ro bara de introducere a URI-urilor (address bar) căutare pe Web instrumente facilitând navigarea (back/forward button) meniu de salvare a adreselor Web favorite (bookmarks) Dr. Sabin Sabin Buraga Dr. acces la preferințe + alte componente – e.g., extensii … Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ / busaco ~ / user interface profs.info.uaic.ro diverse proprietăți & setări ale browser-ului specifice unui utilizator pot fi stocate în cadrul unui profil exemplu tipic: Firefox – http://mzl.la/NYhKHH Dr. Sabin Sabin Buraga Dr. https://developer.mozilla.org/Profile_Manager / busaco ~ / browser engine „punte” între interfața cu utilizatorul și rendering engine profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. / busaco ~ / browser engine „punte” între interfața cu utilizatorul și rendering engine profs.info.uaic.ro nucleu (kernel) plug-ins extensions Dr. Sabin Sabin Buraga Dr. add-ons / busaco ~ / rendering engine realizează redarea conținutului solicitat profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. / busaco ~ / rendering engine realizează redarea conținutului solicitat profs.info.uaic.ro documente HTML ce includ resurse multimedia imagini raster (GIF, PNG, JPEG) Dr. Sabin Sabin Buraga Dr. grafică vectorială SVG (Scalable Vector Graphics) reprezentări diverse: MathML, WebGL,… / busaco ~ / rendering engine implică, uzual, procesarea arborelui DOM profs.info.uaic.ro asociat unei pagini Web cu aplicarea proprietăților CSS aferente în vederea redării într-o zonă de afișare Dr. Sabin Sabin Buraga Dr. / busaco ~ / profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. o aplicație Web la nivel de client poate fi compusă din diverse componente, încărcate dinamicmanagementul arborilor DOM (Dimitri Glazkov, 2013) / busaco ~ / rendering engine include un interpretor (parser) HTML profs.info.uaic.ro conform tipului de document Web – DTD Dr. Sabin Sabin Buraga Dr. / busaco ~ / rendering engine include un interpretor (parser) HTML profs.info.uaic.ro conform tipului de document Web – DTD moduri diferite de interpretare standards mode – HTML5, CSS3, SVG,… Dr. Sabin Sabin Buraga Dr. quirks mode – www.quirksmode.org / busaco ~ / rendering engine include un interpretor (parser) HTML profs.info.uaic.ro pot fi folosite diverse euristici (speculative parsing), mai ales în cazul codului care nu e bine formatat Dr. Sabin Sabin Buraga Dr. / busaco ~ / proce- sare cod generare determi- HTML arbore afișare nare (rendering) de profs.info.uaic.ro layout layout arbore redare DOM Dr. Sabin Sabin Buraga Dr. / busaco ~ / rendering engine cod sursă HTML – încărcat (a)sincron de pe rețea profs.info.uaic.ro arbore DOM Dr. Sabin Sabin Buraga Dr. / busaco ~ / profs.info.uaic.ro Dr. Sabin Sabin Buraga Dr. fazele importante ale procesării unui document HTML în vederea obținerii arborelui DOM HTML Html / <!DOCTYPE html> Element busaco ~ <html> / HTML HTML <head> Body Head <title></title> Element Element </head> <body> HTML HTML profs.info.uaic.ro Paragraph Title <p>Salut, lume!</p> Element Element </body> </html> Text Dr. Sabin Sabin Buraga Dr. www.w3.org/DOM/ http://dom.spec.whatwg.org/ / busaco ~ / rendering engine în mod tradițional, profs.info.uaic.ro modelul de procesare este sincron, single-threaded Dr. Sabin Sabin Buraga Dr. / busaco ~ / rendering engine în mod tradițional, profs.info.uaic.ro modelul de procesare este sincron, single-threaded programele JavaScript vor trebui executate imediat ce procesorul întâlnește