Dziesięć lat w poczekalni

Nie Java, nie .Net, ale znany od 10 lat JavaScript w połączeniu z asynchroniczną komunikacją i XML stanowią przyszłość aplikacji internetowych.

Nie Java, nie .Net, ale znany od 10 lat JavaScript w połączeniu z asynchroniczną komunikacją i XML stanowią przyszłość aplikacji internetowych.

W 1995 r. Brendan Eich, ówcześnie pracownik Netscape Communications, opracował JavaScript - język skryptowy umożliwiający "ożywienie" statycznych stron WWW. Możliwości nowej technologii w dziedzinie manipulacji wyglądem interfejsu i danymi były potężne, ale te drugie pozostały w dużej mierze niewykorzystane - technologia DHTML (HTML + JavaScript) znalazła zastosowanie głównie w witrynach konsumenckich. W zastosowaniach biznesowych, z natury kładących nacisk na pracę z danymi, królować miały aplety Java oraz stworzona przez Microsoft ActiveX - alternatywna wobec Javy technologia komponentów osadzanych w kodzie HTML.

Słabsza od oczekiwanej passa JavaScript była także związana z popularyzacją przeglądarki Internet Explorer, która - zapewne nieprzypadkowo - z wersji na wersję obsługiwała JavaScript nieco inaczej, zmuszając autorów witryn i aplikacji do kosztownych dostosowań. Zmęczeni ciągłym poprawianiem kodu JavaScript twórcy aplikacji WWW na potrzeby korporacji przystali w końcu na dyktat Microsoftu - minimalizując inwestycje, zaczęli używać ActiveX. Ci, którym z technologią Microsoftu nie było po drodze, poszli głównie w kierunku portali opartych na apletach Java.

Niedawno JavaScript wrócił jednak do łask i to w dużej mierze za sprawą... Microsoftu, który nie widzi w nim już wroga - Netscape jako konkurent na rynku przeglądarek został przecież wyeliminowany. Największym dotychczas wyrazem ocieplenia stosunku Microsoftu do JavaScriptu, a jednocześnie demonstracją możliwości tej technologii jest usługa Outlook Web Access serwera Exchange 2003. Prawdziwym wyzwalaczem dla renesansu zainteresowania JavaScriptem wśród szerszego grona programistów okazał się jednak znów konkurent Microsoftu - Google. Zachwyceni tym, jak działa poczta GMail i serwis Google Maps, programiści zaczęli szukać dla JavaScript nowych zastosowań.

Trend ten zbiegł się w czasie z popularyzacją blogów i technologii RSS - a więc mediów zakładających dużą interaktywność komunikacji z witryn z użytkownikami. Wymaga ona szybkości reakcji, otwartych standardów i możliwości dostępu do serwisu z dowolnego komputera. Tak ugruntował się mix technologii, a w zasadzie wypadałoby powiedzieć zwany AJAX (Asynchronous JavaScript And XML). Termin ukuł ponoć Jesse Garrett z firmy AdaptivePath pomagającej firmom zapewnić wygodę pracy z aplikacjami i witrynami WWW. AdaptivePath pomagała w udoskonalaniu serwisu Blogger, gdy ten przejął Google.

Wiele mówiący skrót

FCK Editor 2.0 - bardzo funkcjonalny edytor tekstu działający na stronie WWW dostępny na licencji LGPL; demo online dostępne jest pod adresem: www.fckeditor.net<br>/demo/demo03.html .

FCK Editor 2.0 - bardzo funkcjonalny edytor tekstu działający na stronie WWW dostępny na licencji LGPL; demo online dostępne jest pod adresem: www.fckeditor.net/demo/demo03.html .

W akronimie AJAX najważniejsza jest litera A. W standardowej aplikacji WWW dane z przeglądarki przesyłane są z lub do serwera wtedy, gdy zdecyduje o tym użytkownik. W aplikacji zgodnej z założeniami AJAX, to aplikacja decyduje, kiedy i jak komunikować się z serwerem - z czynnościami podejmowanymi przez użytkownika komunikacja ta jest skoordynowana bardzo luźno (i stąd mowa o asynchroniczności).

Użytkownik ma wrażenie, że aplikacja w ogóle nie komunikuje się z serwerem, ponieważ szybkość odpowiedzi na jego działania jest podobna do tej, jaką obserwuje korzystając z normalnej aplikacji zainstalowanej na swoim komputerze. Jeśli np. ktoś umieszcza na witrynie komentarz, jego treść może być wyświetlona natychmiast, zaś do serwera będzie wysłana asynchronicznie. Podobnie może być z odświeżaniem strony, by uwzględnić komentarze zamieszczone w tym czasie przez innych.

Efekty AJAX osiąga się zazwyczaj w ten sposób, że klient od razu pobiera więcej danych, aby zminimalizować lub całkowicie wyeliminować konieczność przeładowywania całej strony. Klient może pobrać wszystkie dane potrzebne do wykonania pewnej operacji, albo też pobierać je sukcesywnie - w zależności od sekwencji czynności podejmowanych przez użytkownika (dobrym przykładem jest sukcesywne ładowanie map i zdjęć satelitarnych w serwisie Google Maps). W połączeniu z interaktywnością zapewnianą przez JavaScript, efekty są naprawdę imponujące.

Druga ważna część akronimu AJAX to litera X, która wywodzi się od XML, a dokładnie od metody komunikacji XmlHttpRequest, którą opracował... Microsoft, by ułatwić komunikację obiektów ActiveX osadzanych w przeglądarce Internet Explorer 5 z aplikacją działającą na serwerze IIS. Niezależna implementacja XmlHttpRequest została stworzona przez ruch open source i włączona do przeglądarki Mozilla 1.0 i Netscape 7, a później także do przeglądarki Safari 1.2 dla Mac OS X.

Dla porządku trzeba powiedzieć, że obiekt XmlHttpRequest nie wymaga, by komunikacja z serwerem skutkowała pobraniem dokumentu XML lub wysłaniem do niego takiego dokumentu. Chodzi raczej o dowolny dokument tekstowy.

Komercyjny sznyt

Spośród dużych dostawców oprogramowania na AJAX postawił IBM - cała strategia Lotus Workplace opiera się na tej właśnie technologii. Interaktywność uzyskiwana dzięki JavaScript skutecznie niweluje wrażenie pracy z aplikacją przeglądarkową. Dedykowane moduły lokalnego zapisu plików i możliwa w związku z tym praca w trybie offline oraz możliwość różnicowej synchronizacji lokalnej kopii dokumentów z serwerem to fundament, na którym IBM z pewnością zbuduje bardzo dużo.

Narzędzia firmy JackBe pozwalają tworzyć aplikacje AJAX, tak jak tworzy się aplikacje w Środowiskach RAD w Windows czy w Javie. Edytor interfejsu graficznego nie wymaga Żadnych komponentów ani wtyczek - to czysty JavaScript - tak jak generowane przezeń aplikacje klienckie.

Narzędzia firmy JackBe pozwalają tworzyć aplikacje AJAX, tak jak tworzy się aplikacje w Środowiskach RAD w Windows czy w Javie. Edytor interfejsu graficznego nie wymaga Żadnych komponentów ani wtyczek - to czysty JavaScript - tak jak generowane przezeń aplikacje klienckie.

Na rynek trafi wkrótce kolejna wersja pakietu Lotus Notes, w ramach którego dostępna będzie kolejna odsłona klienta Workplace zintegrowana z większą niż dotychczas liczbą aplikacji serwerowych. Już teraz oprócz poczty dostępne są: edytor tekstu, arkusz kalkulacyjny i kilka innych aplikacji, które dodatkowo posiadają mechanizmy do odczytu i zapisu plików w formatach Microsoft Office, a także PDF. Jest też aplikacja do zarządzania dokumentami i ich współdzieleniem. Wydaje się, że ostatecznym celem strategii IBM w kontekście AJAX jest technologiczne uniezależnienie się od Microsoftu w dziedzinie systemów zarządzania informacją. Może się jeszcze okazać, że jest to sposób skuteczniejszy niż wsparcie dla systemu Linux.

Liczba firm technologicznych i grup open source wspierających AJAX rośnie dosłownie z każdym dniem. Szczególnie interesujące są te, które tworzą narzędzia automatyzujące projektowanie aplikacji, ponieważ ich dorobek przełoży się na upowszechnienie się AJAX jako architektury aplikacji dla biznesu. Całkiem prawdopodobne, że upowszechnienie się tych narzędzi doprowadzi do pojawienia się nowej fali .

Swoją szansę widzi w technologii AJAX firma Tibco - zajmująca czołową pozycję na rynku rozwiązań integracyjnych dla sektora finansowego. Pakiet Tibco General Interface 3.0 to zestaw narzędzi i bibliotek programistycznych pozwalających w wygodny sposób budować aplikacje zgodne z założeniami AJAX. Firma oferuje framework oraz narzędzia do graficznego projektowania interfejsów aplikacji. Zgodnie z filozofią AJAX, na komputerze projektanta nie jest wymagana instalacja oprogramowania - nie ma tam apletów Javy, wtyczek do przeglądarki ani obiektów ActiveX - czysty JavaScript.

Przeczuwając potencjał technologii jako narzędzia w ręku konkurencji, Microsoft sam intensywnie rozwija implementację AJAX. Chodzi o będący na razie w fazie testów beta framework Atlas dla ASP.Net 2.0. Microsoft przewidział dla Atlas poczesne miejsce, włączając jego obsługę do Visual Studio.Net 2005.Więcej szczegółów można znaleźć pod adresem:http://beta.asp.net/default.aspx?tabindex=7&tabid=47 . Aby zobaczyć Atlas w praktycznym działaniu, można także zajrzeć na stronę serwisu MSN Virtual Earth.

Narzędzia dla chętnych

Interesującą alternatywę dla rozwiązań Tibco i Microsoftu szykuje niewielka firma JackBe. Jej narzędzia JackBe NQ Suite mają umożliwić klientom budowanie aplikacji, których nie trzeba będzie instalować na komputerach użytkowników przy zachowaniu wysokiej interaktywności i wynikającej z niej efektywności pracy. Firma podnosi też fakt, że jej narzędzia (patrz ilustracja) umożliwiają przeniesienie dużej części przetwarzania na komputery klienckie, uwalniając moc obliczeniową i przepustowość I/O serwerów WWW.