AKTUALNE TRENDY BUDOWY APLIKACJI INTERNETOWYCH Mariusz Żytniewski Wprowadzenie Od kilkunastu miesięcy w różnego typu czasopismach branży informatycznej pojawia się określenie WEB 2.0 stosowane w odniesieniu do nowych trendów rozwoju Internetu [MaBr07]. Pojęcie to z jednej strony stanowi określenie nowych możliwości, jakie daje Internet w postaci łatwej wymiany informacji oraz zrzeszania się jego użytkowników, a z drugiej ukazuje rozwój nowych technologii opartych o AJAX (Asynchroniczny JavaScript + XML) stosowanych do budowy serwisów internetowych [DaJo05]. W niniejszym artykule przedstawione zostaną nowe trendy budowy portali internetowych oraz oparta o AJAX koncepcja budowy aplikacji internetowych o nazwie RIA (Rich Internet Application - dosłownie: bogata aplikacja internetowa) [Wiki07].
Aktualne trendy rozwoju Internetu Rozwój Internetu związany z jego upowszechnieniem powoduje, iż coraz częściej strony internetowe traktowane są przez użytkowników już nie tylko jako źródło informacji i wymiany poglądów, ale także jako element rozszerzający funkcjonalnie możliwości aplikacji komputerów domowych. Pojawienie się na rynku rozwiązań typu www.desktoptwo.com lub maps.google.com spowodowało, iż możliwości, jakie dotychczas były jedynie dostępne w oprogramowaniu instalowanym lokalnie na komputerze użytkownika możliwe są do realizacji poprzez zwykłą przeglądarkę internetową. Najprostszym przykładem tego trendu jest edytor tekstu oferowany na stronach www.google.com. Przykład interfejsu edytora Google przedstawia rysunek 1. Rysunek 1. Edytor tekstu Google. Źródło: docs.google.com [2007/05/05] Pamiętać należy, iż określenie, które pojawia się w wielu publikacjach pod postacią Web 2.0 nie kryje w sobie żadnych elementów związanych
z nowymi podejściem do budowy Internetu. Stanowi jedynie przejaw nowego trendu, którego głównym nurtem jest coraz szersze zrzeszanie się internautów oraz powstawanie portali wymiany informacji w postaci artykułów, opinii lub plików. W portalach takich to właśnie sami użytkownicy odpowiedzialni są za ich kształt i zawartość merytoryczną. Portale ukierunkowane na nowy trend w dużej mierze oferują takie usługi jak tworzenie blogów, udostępnianie kanałów RSS, plików audio oraz wideo, podcast ów oraz coraz częściej usług sieciowych i związanych z nimi bogatych aplikacji internetowych. Aby zapewnić odpowiednią funkcjonalność takich portali upowszechniły się nowe rozwiązania jak technologia AJAX, która z punktu widzenia budowy aplikacji internetowych pozwala na tworzenie dynamicznych stron zawierających wiele rozwiązań multimedialnych. Przykłady elementów mogących być osadzane na stronach internetowych oraz platform do budowy aplikacji internetowych przedstawione zostaną w dalszej części opracowania. Aktualnie trudno doszukać się w Internecie dokładnej definicji tego, co określane jest mianem WEB 2.0. W literaturze pojawiają się jednak próby analizy [TiOr05] związane głównie z porównaniem, czym różni się nowe podejście od już obowiązujących standardów. Najczęściej przytaczanymi cechami WEB 2.0 są: 1. Usługi zamiast aplikacji. Polega na budowie aplikacji internetowych posiadających funkcjonalność równą aplikacjom dostępnym na komputerach stacjonarnych, ale opierających się o usługi sieciowe i wykorzystujących w głównej mierze przeglądarki internetowe.
2. Przechowywanie danych w sieci Internet. Najczęściej utożsamiane jest z różnego rodzaju portalami typu YouTube (grafika i filmy) lub Digg.com (audycje) oferującymi możliwość zamieszczania plików z danymi multimedialnymi oraz wyrażanie własnych opinii na ich temat. Innym rozwiązaniem związanym z umożliwieniem użytkownikom przechowywania danych jest budowa aplikacji RIA. 3. Budowanie sieci społecznych. Zastosowanie Internetu nowej generacji przejawia się w umożliwieniu użytkownikom niczym nieskrępowanej wymiany poglądów, treści za pomocą tematycznych portali oraz samodzielnego redagowania ich zawartości. Koncepcja budowy Internetu rozwijanego w latach 90-tych spowodowała, iż dane prezentowane na stronie internetowej w dużej mierze były własnością osoby odpowiedzialnej za daną stronę. Powodowało to, iż osoba taka odpowiedzialna za treści na niej zawarte była zobowiązana do realizacji wszystkich prac związanych z utrzymaniem i aktualizacją takiej strony lub całego portalu. Rozwijające się trendy współdziałania użytkowników głównie za sprawą otwartego oprogramowania (open source) spowodowały powstanie różnych inicjatyw w postaci chociażby encyklopedii Wikipedia (rysunek 2), w których różne osoby odpowiedzialne za różne, nawet niewielkie zadania, tworzą społeczność.
Rysunek 2. Wikipedia Źródło: pl.wikipedia.org [2007/04/27] Do innych projektów, które powstają w ramach trendu WEB 2.0, integrujących rzesze internautów zaliczymy sourceforge.com umożliwiający współdzielenie projektów open source lub Flickr.com pozwalające na udostępnianie zdjęć. Na to, iż nowe spojrzenie na budowę i zarządzanie stronami internetowymi faktycznie przynosi wymierne korzyści wskazują wyniki wzrostu popularności serwisów internetowych. Jak podaje [Net07] portale tworzone w prezentowanym nurcie odnotowały znaczące wzrosty oglądalności w roku 2006. I tak: Feedburner (o 385 proc.); Doqq.com (o 286 proc.); MySpace (o 170 proc.); Wikipedia (o 161 proc.); Facebook (o 134 proc.);
Jak już wspomniano wcześniej, rozwój prezentowanego podejścia ściśle związany jest z nowymi trendami technologicznymi w postaci technologii AJAX. AJAX tak naprawdę to zbiór rozwiązań, które już od dłuższego czasu są obecne na rynku. Zaliczymy do nich [TiOr05]: zastosowanie rozwiązań XHTML oraz CSS; zastosowanie DOM (Document Object Model); wymiana oraz manipulacja danymi dzięki XML oraz XSLT; asynchroniczna wymiana danych poprzez XMLHttpRequest; wykorzystanie języka JavaScript; Rozwiązania te zapewniają łatwiejszy dostęp internautów do informacji oraz związane są z nowym podejściem do budowy aplikacji internetowych określanym mianem RIA (Rich Internet Application). Przykłady wybranych rozwiązań opartych o technologię AJAX Podstawowym założeniem tej technologii jest przeniesienie przetwarzania danych z serwera na komputer klienta. Dzięki temu generowane strony nie powodują problemów ze zbyt dużym obciążeniem łącz użytkowników, ale wymagają równocześnie więcej zasobów komputera klienta. Technologia AJAX zapewnia użytkownikom możliwość zmiany oglądanych treści bez konieczności przeładowywania strony internetowej. Najbardziej znanym przykładem rozwiązania opartego o prezentowany wcześniej AJAX jest Google Maps, które nie tylko zapewnia API służące
do prezentowania dynamicznej mapy świata, ale także umożliwia tworzenia własnych markerów i umieszczanie ich na prezentowanej mapie. Przykład tak przygotowanej mapy przedstawia rysunek 3. Rysunek 3. Przykład zastosowania technologii AJAX Źródło: opracowanie własne na podstawie maps.google.com Prezentowana technologia pozwala także na budowę bardziej skomplikowanych rozwiązań. Przykładem jest tutaj serwis desktoptwo.com pozwalający na uruchomienie po stronie przeglądarki, strony funkcjonalnie przypominającej pulpit komputera posiadającej miedzy innymi klienta poczty oraz pakiet OpenOffice 2.0. Wygląd tego rozwiązania ukazuje rysunek 4.
Rysunek 4. Przykład budowy aplikacji RIA Źródło: www.desktoptwo.com [2007/04/21] Innymi przykładami zastosowania omawianej technologii są www.numsum.com będącej przykładem budowy arkusza kalkulacyjnego, wspomagające pracę grupową www.zimbra.com lub omawiane wcześniej docs.google.com. Przegląd wybranych rozwiązań do budowy bogatych aplikacji internetowych Tradycyjne rozwiązania tworzenia stron internetowych opierają się o technologię klient-serwer, gdzie obliczenia oraz generowanie kodu strony wykonywane są po stronie serwera www, natomiast przeglądarka internetowa stanowi jedynie medium prezentacji informacji na ekranie. Koncepcja zastosowania AJAX zapewnia możliwość uruchomienia po stronie klienta dynamicznie tworzonej aplikacji w języku DHTML, która
odpowiada za sferę prezentacji otrzymanych danych oraz proste obliczenia, natomiast w jej tle przesyłane są komunikaty miedzy serwerem, a klientem w postaci zapytań XML, które określają jej zachowanie. Innym rozwiązaniem zapewniającym podobną funkcjonalność jest zastosowanie technologii Flash, odpowiedzialnej za prezentację danych na komputerze klienta. Podstawowymi zaletami takiej budowy aplikacji internetowych jest ich multimedialność, możliwość wykorzystania technologii przeciągnij i puść mające niebagatelne znaczenie przy budowie sklepów internetowych, przetwarzanie danych po stronie klienta bez konieczności każdorazowego kontaktu z serwerem, dzięki czemu zmniejsza się zapotrzebowanie na zasoby serwera, doładowywania danych do aplikacji w czasie wykonywania przez użytkownika innych czynności, a tym samym lepsze rozdysponowanie pasma internetowego, brak potrzeb instalacji oprogramowania oraz automatyczne aktualizacje takiej aplikacji, możliwość używania tej samej aplikacji oraz danych z dowolnego komputera, mniejsza podatność na działanie wirusów komputerowych. Oczywiście zastosowanie tej technologii niesie ze sobą także problemy w postaci ograniczonego dostępu do zasobów komputera tak tworzonych aplikacji, wymaganie uruchomienia JavaScript na komputerze klienta, wymaganie odpowiednich mocy obliczeniowych komputera klienta, trudności związane z indeksowaniem takich stron. Technologiczny aspekt budowy bogatych aplikacji internetowych związany jest z zastosowaniem przedstawionych wcześniej technologii, co samo w sobie nie stanowi przełomu w budowie stron internetowych. Jednakże na bazie tych rozwiązań na rynku powstało kilka platform ko-
mercyjnych oraz open source, które pozwalają na budowę aplikacji RIA w różnych językach programowania. Do głównych rozwiązań zaliczymy tutaj OpenLaszlo, które w obecnej formie zapewnia możliwość budowy aplikacji, których interfejs użytkownika tworzony jest w postaci plików Flash lub kodu DHTML (od wersji 4.0) działających po stronie klienta i komunikujących się z serwerem za pomocą miedzy innymi usług sieciowych (rysunek 5), Rysunek 5. Przykład zastosowanie platformy OpenLaszlo Źródło: www.openlaszlo.org [2007/04/21] Zasada tworzenia aplikacji w tym rozwiązaniu polega na tworzeniu stron za pomocą języka LZX interpretowanego przez serwer, kompilowanego do pliku Flash lub DHTML i wysyłanego do przeglądarki klienta. Drugim stosowanym rozwiązaniem jest Flex tworzony przez firmę Macromedia, który od wersji 3 (według zapewnień twórców) ma być dystrybuowane w licencji Mozilla Public License, pozwalający za pomocą
Flex Builder będącego dodatkiem do platformy Eclipse budować złożone aplikacje oparte o usługi sieciowe. Ostatnim prezentowanym rozwiązaniem jest Echo2 pozwalające na budowanie aplikacji działających po stronie serwera z interfejsem użytkownika generowanym w postaci kodu DHTML. Przedstawiony na rysunku 6 przykład przedstawia zastosowanie platformy Echo2 oraz języka AIML (Artificial Intelligence Markup Language) do budowy interaktywnego chatbota. Rysunek 6. Przykład budowy chatbota w oparciu o platformę Echo2 Źródło: opracowania własne. Rozwiązanie to pozwala na budowanie aplikacji internetowych z zastosowaniem języka Java. Fragment kodu w języku Java tworzącego okno prezentowanego chatbota przedstawia rysunek 7.
Rysunek 7. Przykład kodu generującego okno Źródło: opracowania własne. Pozostałe trendy budowy aplikacji internetowych opierają się o takie rozwiązania jak XAML (extensible Application Markup Language) ściśle powiązany z.net Framework 3.0 służący do definiowania interfejsu użytkownika lub nie związany z technologią AJAX - Java Web Start pozwalający na publikowanie aplikacji napisanych w oparciu o język Java na stronach internetowych i będący częścią Java Runtime Environment (JRE) w wersji JRE 5.0. Dokładne informacje na ten temat znaleźć można pod adresem http://java.sun.com/products/javawebstart/. Podsumowanie Przedstawiony w niniejszym artykule trend rozwoju aplikacji internetowych wskazuje nowe możliwości, jakie daje prezentowania technologia bogatych aplikacji internetowych. Aplikacje tego typu spowodowały, iż to, co dotychczas było w dużej mierze płatne oraz wymagało instalacji na komputerze klienta w obecnej formie uruchamiane może być poprzez zwykłą przeglądarkę internetową.
Także charakter samej technologii, która rozwijana jest jako wolne oprogramowanie powoduje, iż firmy coraz częściej zainteresowane są jej zastosowaniem do budowy własnych rozwiązań. Do podstawowych problemów, na jakie jednak wskazują [MiDu07] należą bezpieczeństwo, które wskazało 64% badanych, małe doświadczenie w budowie tego typu rozwiązań 55%, problem integracji z aktualnymi technologiami 51%, trudności w obliczaniu wskaźnika ROI 32% [NiHo07]. Literatura [DaJo05] D. Johnson AJAX: Dawn of a new developer: The latest tools and technologies for AJAX 2005 JavaWorld.com, adres: http://www.javaworld.com/javaworld/jw-10-2005/jw-1017-ajax.html [2007/04/01]. [MaBr07] M. Breeding We Need to Go Beyond Web 2.0 Computers in Libraries - Complete Coverage of Library Information Technology vol. 22 2007 [MiDu07] M. Dumiak Interactive Web Entices, But Is Difficult to Secure USBanker 2007 adres: http://www.us-banker.com [2007/05/01]. [Net07] Serwisy Web 2.0 rosną najszybciej www.egospodarka.pl 2007, adres: http://www.egospodarka.pl/18415,serwisy-web-2-0-rosna-najszybciej,1,39,1.html [2007/04/01]. [NiHo07] N. Hoover Enterprise 2.0 InformationWeek 2007/2. [TiOr05] T. O'Reilly What Is Web 2.0 - Design Patterns and Business Models for the Next Generation of Software www.oreillynet.com 2005. [Wiki07] http://pl.wikipedia.org/wiki/rich_internet_application [2007/04/01].
Informacje o autorze: mgr Mariusz Żytniewski Katedra Informatyki Akademia Ekonomiczna ul. Bogucicka 3 40-226 Katowice Polska Numer telefonu (fax) +48/32/2577277 e-mail: zyto@ae.katowice.pl