czwartek, 14 września 2006

RIA - Rich Internet Application

W cieniu marketingowych zachwytów nad Web 2.0 rozwija się cicha walka technologiczna nad tym, która technologia jest w stanie spełnić najbardziej oczekiwania klientów oczekujących coraz lepszych rozwiązań multimedialnych.

Obecny model tworzenia oprogramowania ewoluje w kierunku tworzenia aplikacji uruchamianych w przeglądarkach internetowych. Istnieje też nacisk żeby bogaty interfejs użytkownika aplikacji na komputerze w różnych środowiskach wygladał tak samo.

Przypomina to trochę walkę o ustalenie nieformalnego standardu GUI internetu. XHTML jest ograniczony jeżeli chodzi o rozwój graficznego interfejsu użytkownia. PDF doskonale pełni rolę formatu danych dla wydruku, ale nie najlepeiej wygląda jego sprawa z interaktywnością. W to miejsce wchodzi format SWF. Format ten rozwinał sie od formatu graficznego poprzez elementy multimedialne aż ostatnio jako format do tworzenia aplikacji internetowych nowej generacji opartych między innymi na AJAX czy WebServices.

Aplikacje internetowe mają aspirację stawac się aplikacjami komputerowymi, oferując użytkownikowi lepszy graficzny interfejs użytkownika.
Technologia Ajax bazująca na przeglądarkach internetowych rozpoczeła ewolucję w kierunku RIA - Rich Internet Application, czyli bogatego interfejsu użytkownika. Aplikacje internetowe oparte na Ajax towarzyszyły wyzwania związane z dostępnością dla osób niepełnosprawnych korzystających z internetu, czy respektowaniem standardów sieciowych, a także z wyszukiwarkami internetowymi oraz obsługą zakładek. Do tego doszły problemy związane z obsługą programistyczną przegladarek internetowych (IE inaczej obsługuje technologie AJAX niż przeglądarki oparte na silniku Gecko czy Opera).

Koncepcja "napisz raz uruchom wszędzie" zaczyna spełniać się w aplikacjach internetowych od czasów apletów Java, więc pojawiła się potrzeba przeniesienia tego modelu na aplikacje komputerowe w różych środowiskach.

Jak wiadomo aplikacje internetowe pisze się w XHTML, stylach kaskadowych CSS, oraz w JavaScript. Więc postanowiono przenieść ten model programowania na aplikacje komputerowe. Pojawiły się rózne podejścia wykorzystujące programowanie w językach znacznikowych do tworzenia graficznego interfejsu graficznego. Oto lista technologii, które maja szanse rozwinąć się:

  • Adobe Flex i Adobe Apollo można kodować w MXML
  • OpenLaszlo koduje się w języku znacznikowym LZX
  • Mozilla i jej język znacznikowy XUL
  • Microsoft Windows Presentation Framework,który pozwala programować w XAML
Adobe Flex to platforma zaplanowana do tworzenia bogatgo interfejsu użytkownika w internecie. Ponieważ aplikacja ma postać pliku SWF istnieje możliwość uruchamiania jej w komputerach obsługująch Flash Playera 9. Adobe obecnie pracuje nad aplikacją, która pozwoli na wykorzystanie przez aplikacje komputerowe możliwości graficznego interfejsu użytkownika jakie oferuje Adobe Flex. Obecnie jest konkurencyjnt produkt Zinc 2.5 firmy Multidmedia, który oferuje taką funcjonalność.

OpenLaszlo staje się opensourcową alternetywą dla Adobe Flex. Jego zaletą jest to, że generuje kod SWF dla Flash Playera 6. Co oznacza, że to da się uruchomić wszędzie, a takze pozwala też na wygenerowanie kodu aplikacji DHTML wykorzystującego Ajax. Kolejnym plusem jest to, że może pracować jako aplikacja serwerowa (serwlet Javy) i jako aplikacja z linii poleceń. Kod w OpemLaszlo pisze się w języku znacznikowym LZX oraz programuje się w EcmaScript.
Ostatnio powstaje coraz więcej aplikacji opartych na OpenLaszlo (Pandora, Monster)

Microsoft korzystajac z przewagi konkurencyjnej i innowacyjnej może pozwolić sobie na rozwijanie dość kontrowersyjnych technologii. Jedną z takich technologii jest .NET 3.0 zawierające Windows Presentation Foundation (WPF). Jest to technologia umożliwiająca tworzenie bogatego interfejsu użytkownika zarówno w aplikacjach komputerowych i jak aplikacjach internetowych. Obecnie aplikacje internetowe .NET 3 można uruchamiać jako pliki XBAP w przegladarce Internet Explorer 7, a także po odpowiednim skonfigurowaniu w Internet Explorer 6.
Możliwości WPF świetnie ukazuje blog porównując jego możliwości do Adobe Flex. Pewnego czasu Microsoft pokazywał, że uproszczona wersja tej technologii pod nazwą Windows Presentation Foundation / Everywhere miała być uruchamiana wszędzie dzięki odpowiedznim wtyczkom w przegladarkach takich jak Firefox Opera (pod Windows MacOX czy PocketPC).

Mozilla oferuje międzyplaformową przeglądarkę z własnym językiem znacznikowym XUL do budowania wtyczek. Język XUL nie jest na tyle elastyczny aby budować w nim bogaty interfejs użytkownika. Można powiedzieć, że jest raczej rozszerzeniem XHTML do budowania aplikacji w oparciu o silnik Gecko.

Podsumowanie. W najbliższych latach bogaty interfejs uzytkownika aplikacji internetowych (i wkrótce aplikacji komputerowych) będzie rozwijać się w rywalizacji pomiędzy Adobe a Microsoftem. W tej sytuacji interesujące może być wskazanie obszarów
gdzie Adobe osiagnie przewagę: obsługa multimediów, natomiast Microsoft dzięki DirectX może osiagnąć przewagę w grafice 3D (co moze być dość dziwne) pod warunkiem że ktoś napisze jak uzywać grafiki 3D w aplikacjach internetowych, tak jak stało się z Ajax. Pożyjemy zobaczymy.

1 komentarz:

ptak82 pisze...

Opisując język XUL, bardzo skromnie go traktując jako coś tam do pisania wtyczek (rozszerzeń). Nie zgodzę się, XUL to w pełni dojrzały język dający możliwość tworzenia aplikacji sieciowych w oparciu o XML (nie XHTML).

Przewagą nad konkurencją ma taką, że jest wieloplatformowy, czyli pisząc pod Linuksem, możesz bez obaw odczytać stworzoną aplikacje w Windows.

Jako język jest bardzo dobrym konkurentem innych języków programowania. Przykładem aplikacji jest sam Firefoks.