Scott Tiger Tech Blog

Blog technologiczny firmy Scott Tiger S.A.

Archiwum dla Listopad, 2010

WebSocket

Autor: Piotr Karpiuk o 10. listopada 2010

Aby dowiedzieć się więcej o innych zagadnieniach związanych z nowym standardem HTML5, zajrzyj do osobnego artykułu.

HTTP jest protokołem zapytanie-odpowiedź z własnymi narzutami na niepotrzebne nagłówki, przez co słabo się nadaje na realizację kanału full-duplex czasu rzeczywistego. Podejmowano różne rozpaczliwe próby rozwiązania problemu – wszystkie słabo skalowalne, nadmiernie obciążające sieć i procesor, wolne, nierzadko podatne na błędy i skomplikowane:

  • Ajax polling,
  • Ajax long-polling: polling wstrzymujący odpowiedź serwera gdy nie ma danych do przesłania,
  • streaming: serwer odsyła odpowiedź ale nie sygnalizuje jej końca, przez co przeglądarka odbiera kolejne „uzupełnienia” będące kolejnymi komunikatami od serwera; problemem są tu serwery proxy po drodze, które nie widząc końca komunikatu mogą zdecydować o jego buforowaniu; rozwiązanie to użycie TLS (SSL) lub powrót do Ajax long-polling przy wykryciu buforujących proxy po drodze; Comet (zwany też Ajax Push, Reverse Ajax, Two-way web, HTTP streaming, HTTP server push) – to zbiorczy termin dla zestawu różnych technik sprowadzających się do tego że długo realizowana odpowiedź na żądanie HTTP z przeglądarki pozwala serwerowi WWW wpychać kolejne dane do klienta.

HTML5 WebSocket definiuje kanał komunikacyjny full-duplex przeznaczony dla sterowanych zdarzeniami aplikacji WWW „czasu rzeczywistego”. W chwili obecnej implementowany w Chrome 4.0+, Firefox 4.0+ i Safari 5.0+ (nie ma w MSIE i Operze).

Jeśli serwer WWW implementuje standard, wówczas w dowolnym momencie istniejące połączenie HTTP można łatwo przekształcić w połączenie WebSocket. Wystarczy, że przeglądarka wyśle do serwera komunikat HTTP:

    GET /demo HTTP/1.1
    Host: example.com
    Connection: Upgrade
    Sec-WebSocket-Key2: 12998 5 Y3 1 .P00
    Sec-WebSocket-Protocol: sample
    Upgrade: WebSocket
    Sec-WebSocket-Key1: 4@1 46546xW%0l 1 5
    Origin: http://example.com

    [8-byte security key]

Serwer odpowiada:
Czytaj więcej »

Tags: ,
Napisany w WWW | Brak komentarzy »

HTML5

Autor: Piotr Karpiuk o 5. listopada 2010

Celem zespołu pracującego nad HTML5 jest utworzenie standardu który pozwalałby uruchamiać aplikacje RIA w przeglądarce WWW. Choć jeszcze niekompletny, to już stanowczo wspierany przez producentów wiodących przeglądarek standard będzie używany przez następne lata (zauważ, że powstały w 1997r. HTML4 obowiązuje juz 13 lat!).

Główne cechy projektu nowego standardu:

  • rozwiązuje praktyczne problemy (takie o których mówi się od lat),
  • wspiera istniejące elementy języka (większość z HTML 4.01 przeżywa w HTML5); zapewnia możliwość łatwego zastępowania nowości starymi odpowiednikami (łagodna degradacja),
  • nie wymyśla koła od nowa, korzysta z wydeptanych ścieżek (ang. pave the cowpaths),
  • jeśli jakiś wzorzec implementowany w JavaScripcie jest wystarczająco popularny, HTML5 realizuje go deklaratywnie za pomocą znaczników i arkuszy stylów,
  • w razie konfliktu interesów ustawia priorytety w kolejności: użytkownik, twórca aplikacji WWW, twórca przeglądarki, twórca specyfikacji, czystość teorii,
  • promuje rozdzielanie treści (znaczniki) od prezentacji (CSS); odradza używania niestosujących się do tej zasady znaczników w HTML 4.0 i dodaje nowe znaczniki semantyczne,
  • przejęcie funkcjonalności dotychczas oferowanej tylko przez pluginy (audio/video/edycja grafiki rastrowej).

Osobny artykuł – od dłuższego czasu przygotowywany na okoliczność prezentacji jaka w firmie ma się odbyć w listopadzie – przedstawia treściwe podsumowanie poszczególnych składowych HTML5 wraz z przykładami i linkami.

Tags:
Napisany w WWW | Brak komentarzy »

Akceleracja GPU w przeglądarkach WWW

Autor: Piotr Karpiuk o 2. listopada 2010

FishIETank - wybierz liczbę rybek, sprawdź FPS

FishIETank - wybierz liczbę rybek, sprawdź FPS

Twórcy przeglądarek prześcigają się w pomysłach jak poprawić wydajność swoich produktów. Po drastycznym podkręceniu interpretera JavaScriptu ostatnimi laty (MSIE 9.0 w przyszłym roku najwyraźniej dołączy do czołówki) przyszła kolej na wykorzystanie akceleracji sprzętowej karty graficznej. Pierwszy o dziwo pokazał ją Microsoft w swojej przeglądarce MSIE 9.0 beta, ale już wiadomo że Google Chrome 9.0 i Firefox 4.0 będą żyłować GPU. Warto dodać, że Flash korzysta z akceleracji procesora graficznego już od jakiegoś czasu.

Testy wydajności przeglądarek:
Fish IE Tank,
Psychodelic Browsing,
GUIMark2,
V8 Benchmark

Tags:
Napisany w WWW | Brak komentarzy »