Notek

Program ten stanowi fragment mojej pracy licencjackiej pt.: Programowanie aplikacji RIA w środowisku Adobe Flex. Jest to aplikacja w architekturze klient-serwer umożliwiająca publikowanie wiadomości tekstowych za pośrednictwem przeglądarki internetowej lub klienta instalowanego w systemie operacyjnym (aplikacja Adobe AIR). Klient łączy sie z usługą serwerową, którą utworzyłem w platformie J2EE (wykorzystałem serwer BlazeDS oparty o Java Servlets, Hibernate jako implementację JPA oraz kontener aplikacji Tomcat).

Najciekawszym elementem jest sposób komunikacji między klientami a serwerem. Dzięki wykorzystaniu biblioteki BlazeDS przesyłanie danych odbywa się na zasadzie push/pull w binarnym protokole AMF platformy Adobe Flash. Komunikacja w trybie push oznacza, że od strony programowej serwer nie tylko odpowiada na żądania ale sam może inicjować wysyłanie danych do klientów, z którymi wcześniej nawiązał połączenie (w rzeczywistości działa to jednak odrobinę inaczej). Umożliwia to wygodną synchronizację danych między wieloma klientami a serwerem. Na przykład w momencie opublikowania tekstu przez jednego użytkownika serwer wysyła uaktualnienie listy tektstów do wszystkich klientów - bez potrzeby ręcznego odświeżania widoku przez użytkowników. Do najważniejszych funkcji programu należą:

  • możliwość tworzenia tekstów (dostępnych prywatnie lub publicznie) oraz ich ich zapis do bazy danych MySQL za pośrednictwem Java Persistence API
  • automatyczny wgląd w najnowsze aktualizacje wpisów dzięki komunikacji w trybie push między serwerem a klientami
  • filtrowanie wyświetlanych tekstów ze względu na datę utworzenia
  • tekstową rozmowę na żywo pomiędzy aktualnie połączonymi użytkownikami programu (czat)

Action Message Format umożliwa automatyczną serializację obiektów języka Java do ActionScript i odwrotnie. Aplikacja wykorzystuje usługi serwera BlazeDS takie jak Remoting Service (usługa umożliwiająca zdalne wykonywanie metod języka Java) oraz Messaging Service (usługa umożliwiająca przekazywanie wiadomości między połączonymi do serwera klientami - wykorzystałem ja do robienia czatu). Komunikację z bazą danych zrealizowałem przy wykorzystaniu standardu mapowania obiektowo-relacyjnego Java Persistence API. Posłużyłem się przy tym biblioteką Hibernate, będącą jedną z implementacji owego standardu. Zrobiłem tak ponieważ, docelowo aplikacja serwerowa miała być uruchomiona w serwerze Tomcat, który sam nie nie wspiera wszystkich elementów platformy J2EE.