W stronę wydajniejszego HTTP

Konsorcjum firm aktywnie działających na rynku WWW zaproponowało własną specyfikację rozszerzenia protokołu HTTP.

Konsorcjum firm aktywnie działających na rynku WWW zaproponowało własną specyfikację rozszerzenia protokołu HTTP.

Marimba, Netscape, Sun Microsystems, Novell i @Home (firma znana z nowych rozwiązań dostarczania Internetu przez sieci telewizji kablowej) wspólnie opracowały protokół HTTP Distribution and Replication Protocol (DRP), którego celem jest m.in. zredukowanie wielkości ruchu w World Wide Web, zwiększenie wydajności i niezawodności protokołu HTTP oraz serwerów proxy WWW. DRP ma umożliwić wykorzystanie protokołu HTTP w aplikacjach typu mission critical i wspomóc dostarczenie hierarchicznego zbioru aktualnych wersji dokumentów dużej liczbie odbiorców bez konieczności dokonywania wielokrotnych transmisji oraz niepotrzebnego przechowywania wielu kopii tego samego pliku.

DRP a web caching

Czy między DRP a web caching istnieje symbioza czy konkurencja? Autorzy specyfikacji DRP na to pytanie udzielają jednoznacznej odpowiedzi - jednym z celów DRP jest wspomaganie serwerów HTTP proxy i web cache. Protokół ma uzupełnić słabe dotychczas strony „cachingu” - przede wszystkim reguły odświeżania plików. Obecnie nie istnieje stuprocentowo pewna metoda wnioskowania o zgodności oryginału z kopią. Powszechnie implementowane metody wnioskowania heurystyczne nie dają pewności, że za pośrednictwem serwera web cache sprowadzamy aktualną kopię dokumentu. W zastosowaniach typu mission critical dostarczanie informacji aktualnej zawsze na najwyższy priorytet. Zastosowanie DRP zdecydowanie podniosłoby niezawodność serwerów web cache w tym zakresie. O zmianie zawartości pliku serwer web cache dowiadywałby się za pośrednictwem zmiany jego sumy kontrolnej zamiast dotychczas stosowanego okresowego odświeżania i sprawdzania daty ostatniej modyfikacji.

DRP może wnieść inną ważną modyfikację - poprzez identyfikatory zawartości (content-identifiers) będzie można znaleźć pliki o tej samej zawartości, ale różnej lokalizacji, co pozwoli unikać przechowywania kilku kopii tego samego pliku. Oznacza to lepsze wykorzystanie pamięci operacyjnej i dyskowej, a także zmniejszenie nakładu pracy na utrzymanie bazy danych o przechowywanych obiektach. Jednocześnie mechanizmy transferu różnicowego nakładają na serwer web cache nowe obowiązki. Nie wiadomo, jak w nowych warunkach kształtować się będzie czas realizacji żądania ściągnięcia strony WWW kierowanego poprzez web cache (a jest to jednym z najważniejszych parametrów cachingu). Z drugiej strony zastosowanie DRP, w szczególności „różnicowych załadowań” (differential downloads), na pewno pozwoli lepiej wykorzystać przepustowość łączy, dziś nadmiernie obciążonych redundantymi transferami.

WWW jutra

HTTP Distribution and Replication Protocol na razie jest tylko propozycją. Nie można dziś przesądzać, czy doczeka się implementacji, chociaż wsparcie ze strony firm, takich jak Sun czy Netscape pozwala sądzić, iż zastosowanie go na większą skalę jest prawdopodobne. Nad zastosowaniem analogicznych rozwiązań pracują niezależnie także inni producenci oprogramowania. Można zatem przypuszczać, iż przedstawione rozwiązanie znajdzie wkrótce zastosowanie.

DRP pozwoli poszerzyć obszar zastosowań WWW o zadania wymagające wysokiej niezawodności. Jednocześnie obniży koszty zastosowania WWW we wszystkich dotychczasowych dziedzinach.

Technologia DRP

DRP korzysta ze 128-bitowych sum kontrolnych MD5 lub 160-bitowych SHA do tworzenia identyfikatorów zawartości różnych wersji plików. Ponieważ prawdopodobieństwo wygenerowania identycznej sumy kontrolnej dla dwu plików już w przypadku MD5 jest znikome (to 1/2^64), pozwala to w sposób jednoznaczny identyfikować zawartość pliku. Możliwie jest więc nie tylko sprawdzanie wersji, ale np. wykrycie tej samej zawartości w dwu różnych plikach. Specyfikacja przewiduje przekazywanie sum kontrolnych w nagłówku HTTP w polu Content-ID. Identyfikator zawartości może być pominięty w przypadku plików generowanych dynamicznie.

Identyfikator zawartości jest składnikiem podstawowej struktury informacyjnej, zwanej indeksem. Jest to struktura metadanych, przekazywana między serwerem a klientem przy wykorzystaniu języka XML (eXtensible Markup Language). Zawiera informacje o hierarchii plików - powiązaniach, rozmiarach i identyfikatorach zawartości. Index jest fotograficznym obrazem hierarchii w danej chwili. Może być przechowywany statycznie w pliku lub generowany dynamicznie.

Index ma być sprowadzany poprzez żądanie HTTP GET. Po początkowym sprowadzeniu plików, ich aktualność jest sprawdzana poprzez sprowadzenie nowej wersji indeksu. Możliwe jest użycie pola Expires do periodycznego odświeżania indeksu.

Informację zawartą w indeksie można wykorzystać do transmisji wielu plików w obrębie jednej transakcji HTTP, co zmniejsza koszt dodatkowych czynności (np. nawiązania połączenia). Bardziej istotną cechą jest możliwość transmisji różnicowej, tzn. pobierania tylko części informacji różniącej starszą i nowszą wersję pliku. W żądaniu transmisji GET klient podaje content-identifier wersji starszej i nowszej (w polu Differential-ID), na podstawie tych danych i posiadanych obu wersji plików serwer generuje odpowiedź. Specyfikacja protokołu DRP przewiduje, że często pobierane indeksy mogą być również transmitowane przy użyciu metody differential GET. Według badań prowadzonych przez firmę Digital Equipment Corp., różne wersje różnicowego transferu redukują ilość przesyłanych danych o 30-80 %, a czas transakcji - 10-40 % (wg danych przedstawionych na Web Caching Workshop ˘97 –http://www.nlanr.net/Cache/Workshpo97).

Maciej Koziński jest pracownikiem Zespołu Pełnomocnika Rektora ds. Komputeryzacji Uniwersytetu Mikołaja Kopernika w Toruniu.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200