Tworzenie aplikacji webowych w oparciu o framework ObjectLedge



Podobne dokumenty
Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

Aplikacje internetowe oparte na kluczowych technologiach Java Enterprise(Servlet,JSP,JDBC, )

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Edyta Juszczyk. Akademia im. Jana Dªugosza w Cz stochowie. Lekcja 1Wst p

Podstawy modelowania w j zyku UML

Aplikacje Internetowe, Servlety, JSP i JDBC

Moduł. Rama 2D suplement do wersji Konstruktora 4.6

Wzorce prezentacji internetowych

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Wzorce projektowe kreacyjne

Praca Dyplomowa Magisterska

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Zagadnienia programowania obiektowego

Rozwi zywanie Ukªadów Równa«Liniowych Ax=B metod dekompozycji LU, za pomoc JAVA RMI

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Projekt ATENA - system wspomagaj cy zarz dzanie szkoª lub zespoªem szkóª przedlicealnych

Przykłady pytań do zaliczenia programu wykonywanego w ramach zajęć laboratoryjnych 6-8 z Programowania komponentowego w Javie. Zofia Kruczkiewicz

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

1 Wprowadzenie do J2EE

Numer obszaru: 8 E-learning w szkole - wykorzystanie platform edukacyjnych w pracy szkoły

Aplikacje Internetowe termin dodatkowy

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

1. Wprowadzenie do C/C++

OpenLaszlo. OpenLaszlo

Software Architecture Document wersja 2.0-nal

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

Automatyzacja procesu publikowania w bibliotece cyfrowej

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Wzorce projektowe strukturalne cz. 1

Filozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego

Kompozycja i dziedziczenie klas

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Aplikacje WWW - laboratorium

Wybrane działy Informatyki Stosowanej

In»ynieria systemów informacyjnych - Adam Krechowicz

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2013/2014

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Spis tre±ci. 1 Wst p Zawarto± rozdziaªów Projekt LoXiM... 2

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Programowanie i struktury danych

Tworzenie aplikacji internetowych E14

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom podstawowy)

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki Promotor dr inż. Paweł Figat

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Wybrane działy Informatyki Stosowanej

PRZEGL D METOD BUDOWY APLIKACJI U YTKOWYCH DLA BAZ DANYCH ORACLE

Programowanie wspóªbie»ne

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

prepared by: Programowanie WWW Servlety

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO

Wybrane działy Informatyki Stosowanej

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

WYKŁAD 1 SYSTEMY CMS CZĘŚĆ 1

Zagadnienia Programowania Obiektowego Agata Hejmej

Platforma do obsługi zdalnej edukacji

System Zarządzania Relacyjną Bazą Danych (SZRBD) Microsoft Access 2010

Enterprise JavaBeans (EJB)

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Spring MVC Andrzej Klusiewicz 1/18

Analiza wydajno±ci serwera openldap

INTERAKTYWNA APLIKACJA MAPOWA MIASTA RYBNIKA INSTRUKCJA OBSŁUGI

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

System kontroli wersji SVN

Programowanie Obiektowe

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Przedmiot: Projektowanie dokumentów WWW. Laboratorium 3: Strona domowa cz. III Formularze. Opracował: Maciej Chyliński

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Konfiguracja historii plików

Programowanie w internecie nazwa przedmiotu SYLABUS A. Informacje ogólne

Podstawy modelowania w j zyku UML

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Przetwarzanie sygnaªów

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

Lekcja 12 - POMOCNICY

elektroniczna Platforma Usług Administracji Publicznej

Ukªady Kombinacyjne - cz ± I

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Architektura komputerów

CGI i serwlety. Plan wykładu. Wykład prowadzi Mikołaj Morzy. Przykład: serwlety vs. szablony. Implementacja logiki prezentacji

Serwery aplikacji. dr Radosław Matusik. radmat

W dobie postępującej digitalizacji zasobów oraz zwiększającej się liczby dostawców i wydawców

Interfejsy, klasy wewn trzne jako szczególny rodzaj obiektów

Java. Michał Wójcik.

MySource Matrix CMS - PROSTY INTERFEJS UŻYTKOWNIKA. INSTRUKCJA ver 1.2

Transkrypt:

Tworzenie aplikacji webowych w oparciu o framework ObjectLedge Konrad Mizi«ski Wydziaª Elektroniki i Technik Informacyjnych, Politechnika Warszawska, K.Mizinski@stud.elka.pw.edu.pl Streszczenie ObjectLedge jest frameworkiem znacz co upraszaczaj - cym tworzenie aplikacji webowych. Za pomoc kongurowalnego potoku pozwala na realizacj zarówno podstawowych jak i najbarziej skomplikowanych funckonalno±ci w jak najprostrzy sposób. Pozwala na bªyskawiczne realizowanie podstawowych funkjonalno±ci takich jak widoki czy akcje. Na szczególn uwag zasªuguje wykorzystanie frameworka Velocity oferuj cego nowe a zarazem bardzo praktyczne podej±cie do generacji dokumentów. 1 Wst p W obecnych czasach coraz popularniejsze staj si aplikacje webowe, których tworzenie umo»liwia nam standard Java Enterprise Edition. Nie dziwi wi c lista frameworków uªatwiaj ca pisanie aplikacji w oparciu o t wªa±nie platform. Jednym z mªodszych czªonków rodziny frameworków javowych jest ObjectLedge, z którym mam przyjemno± pracowa podczas tworzenia swojej pracy in»ynierskiej. Zostaª on stworzony przez polskich programistów na bazie projektu Jakarta Turbine, a jednym z jego podstawowych zaªo»e«byªo zerwanie ze wszystkimi naleciaªo±ciami w obecnie istniej cych frameworkach, do których programi±ci zd»yli si ju» niestety przyzwyczai. 2 Aplikacja w architekturze trójwarstwowej Wraz z rozwojem oraz z wzrostem zªo»ono±ci oprogramowania coraz wi ksze znaczenie ma jego architektura. Bardzo cz sto decyduje ona o pora»ce lub powodzeniu danego projektu. Jeszcze niedawno najpopularniejsza byªa architektura typu klient-serwer, jednak obecnie najcz ±ciej wykorzystywana jest architektura trójwarstwowa. Wyró»nia ona nast puj ce warstwy: warstwa prezentacji warstwa aplikacji warstwa ¹ródªa danych

2 3 Warstwa prezentacji Warstwa prezentacji stanowi interfejs miedzy u»ytkownikiem a systemem. Jest ona realizowana w przegl darce internetowej za pomoc j zyka znaczników HTML. Uzyskujemy dzi ki temu niezale»no± interfejsu od ±rodowiska u»ytkownika. Niestety sposób prezentacji wci» zale»y jednak od przegl darki, wi c jednym z etapów projektu powinno by zawsze zaªo»enie jakie przegl darki i od jakiej wersji b d przez nas wspieranie. W przypadku aplikacji wewn trzkorporacyjnych(i prac dyplomowych) mo»na zaªo»y wykorzystanie tylko jednej przegl darki. Kolejn zalet j zyka znaczników jest jego prostota, dzi ki której nawet pocz tkuj cy web-designerzy s w stanie szybko nauczy si pisania kodu HTML. W j zyku HTML mo»liwe jest wskazanie sposobu wy±wietlania informacji, zaleca si jednak aby tre± dokumentu byªa odseparowana od sposobu jej prezentacji. Umo»liwiaj to kaskadowe arkusze stylów(ccs). Wad j zyka HTML jest jego statyczno±, nawet najmniejsza zmiana na stronie wymaga ponownego wygenerowania» dania HTTP i przesªania go do serwera. Wpªywa to negatywnie na responsywno± aplikacji, szczególnie przy du»ym obci»eniu. Rozwi zaniem tego problemu s technologie takie jak np. AJAX, które generuj kod wykonywany na poziomie przegl darki, bez konieczno±ci ponownego przesyªania» dania. 4 Warstwa aplikacji - serwlet Poprzez warstw prezentacji u»ytkownik wysyªa swoje» dania do warstwy aplikacji. W przypadku aplikacji webowych najcz ±ciej mamy do czynienia z» daniami protokoªu HTTP(ang. Hypertext Transfer Protocol ). W przypadku standardu J2EE podstawowym komponentem realizuj cym to zadanie jest serwlet. Wszystkie dost pne komponenty, z których korzystamy tworz c aplikacje webowe(np. strony *.jsp) s zawsze ostatecznie kompilowane do postaci serwletów. Aby utworzy wªasny serwlet wystarczy zdeniowa klas implementuj c interfejs Servlet. Najcz ±ciej jednak tworzymy klasy dziedzicz po abstrakcyjnej klasie HttpServlet. Do poprawnego obsªu»enia» dania HTTP nale»y przeci»y 2 metody doget(...) oraz dopost(...) odpowiadaj ce metod GET i POST protokoªu HTTP. Typowym dziaªaniem serwletu jest popranie parametrów» dania z obiektu HttpRequest oraz wygenerowanie na ich podstawie odpowiedzi zapisanej w obiekcie HttpResponse. Obiekty typy HttpRequest i HttpRespone s parametrami metod doget oraz dopost. Mo»na zada sobie pytanie ile serwletów potrzeba do stworzenia aplikacji. Odpowied¹ wydaje si prosta: wystarczy jeden serwlet. Taki wªa±nie mechanizm oferuje nam framework ObjectLedge. 5 ObjectLedge ObjectLedge jest frameworkiem oferuj cym potokowe przetwarzanie informacji. Programista sam okre±la sekwencje dziaªa«za pomoc tzw. zaworów (ang. Valves), które odpowiadaj za przetworzenie» dania u»ytkownika, oraz wygenerowanie odpowiedzi. Do najwa»niejszych zada«zaworów nale»y:

3 obsªuga akcji - zada«niemaj cych bezpo±redniego wpªywu na widok, ale stanowi cych efekt uboczny wykonania» dania przygotowanie widoku Typowym przykªadem potoku jest podziaª zaworów na 3 klauzule try-catch- nally, gdzie w bloku try umieszczamy zawory odpowiedzialne m. in. za pobranie parametrów zapytania HTTP, obsªug akcji, czy przygotowanie widoku, w bloku catch zawory odpowiedzialne za obsªug sytuacji wyj tkowych(te» przygotowuj ce widok informuj cy o zaistnieniu takiej sytuacji), za± w klauzuli nally zawory odpowiadaj ce za przesªanie odpowiedzi do u»ytkownika. 6 Zawory Podstawowymi elementami potoku s zawory (ang. Valves). ObjectLedge pozwala nam na wykorzystanie dowolnie skongurowanej sekwencji zaworów, nie tylko dostarczonych przez framework ale równie» zdeniowanych przez programist. Zawór nie jest niczym innym jak zwykª klas j zyka Java implementuj c odpowiedni interfejs. W tym przypadku jest to interfejs Valve. Deklaruje on tylko jedn metod : public void process(context context) throws ProcessingException Aby okre±li dziaªanie zaworu wystarczy zdeniowa metod process. Wa»n rol w podczas potokowego przetwarzania» dania peªni obiekt Context. Jest on przekazywany kolejnym zaworom jako argument metody process, b d c tym samym narz dziem do komunikacji mi dzy zaworami. 7 Akcje Czasami oprócz wygenerowania widoku zale»y nam na wykonaniu innych dziaªa«z nim nie zwi zanych. Przykªadem takiego dziaªania mo»e by zapis do bazy danych. W takim przypadku OcjectLedge oferuje nam mechanizm akcji. Akcje deniujemy tak samo tak samo jak elementy potoku(implementuj c interfejs Valve), nie umieszczamy ich jednak w potoku a odwoªujemy si do nich poprzez parametry zapytania HTTP np: http://localhost:8080/demo/ledge/ view/somepackage.someview?action=somepackage.someaction podaj c jako parametr action nazw klasy poprzedzon nazw pakietu. 8 Apache Velocity Velocity jest mechanizmem szablonów pozwalaj cym na szybkie tworzenie dokumentów(najcz ±ciej typu xml, html itp.). Dostarcza on szeregu mechanizmów

4 uªatwiaj cych i przyspieszaj cych ten proces m.in: zmienne, instrukcje warunkowe i pelt (makra #set, #if, #else, #foreach), czyli wszytko to do czego jeste±my przyzwyczajeni przez j zyki programowania. Pozwala on na deniowanie wªasnych makr(instrukcja #makro) oraz na odwoªania bezpo±rednio do obiektów j zyka Java. Na szczególn uwag zasªuguje szczególnie ostania wªa±ciwo±, która czyni z Velocity naprawd pot»ne narz dzie. 9 Przygotowanie widoku Przygotowanie widoku zawsze stanowi wyzwanie dla programisty, wielu z nich nie lubi a nawet nie potra sprawi aby strony HTML ªadnie wygl daªy. Zadanie to powierza si niekiedy grakom, ci jednak nie wiedz jak programowa w Javie. ObjectLedge wychodz c na przeciw tym problemom proponuje podziaª na cze± pisan w Javie i kodowan za pomoc znaczników HTML. Oferuje wi c nast puj ce podej±cia: Zapisanie caªo±ci logiki w formie klasy j zyka Java (Buildera) Zakodowanie strony w postaci kodu HTML w szablonie Velocity Zastosowanie zarówno klasy Javy jak i szablonu Velocity 9.1 Klasa Buildera Klasa Buildera jest klas implementuj c interfejs Builder, jednak najcz ±ciej wykorzystuje si klasy dziedzicz ce po AbstractBuilder. Deniuj c tak klas wystarczy wtedy przeci»y metod build, która jako wynik swojego wywoªania zwraca obiekt typu String, peªni cy funkcj odpowiedzi(lub jej cz ±ci) na zapytanie HTTP i odesªany do u»ytkownika w celu wy±wietlenia przez przegl dark. 9.2 Szablon Velocity Podobny efekt mo»emy uzyska zapisuj c kod HTML w szablonie Velocity. Musimy przy tym pami ta o nazewnictwie szablonu(nazywamy go tak jak klas Javy) i umieszczeniu szablonu w odpowiedniej mu strukturze katalogów(odpowiadaj cej pakietom j zyka Java). Do widoku (zarówno klasy Buildera i jak i szablonu Velocity) odwoªujemy si w taki sam sposób, podj w ±cie»ce nazw pakietu a nast pnie nazw klasy(szablony) np: http://localhost:8080/demo/ledge/view/somepackage.someview 9.3 Podej±cie mieszane Oczywi±cie najciekawsze jest podej±cie mieszane, czyli wykorzystanie zarówno klasy Builedera jak i szablonu Velocity. W typowym podej±ciu w kodzie Javy przygotowujemy jakie± dane(np. czytamy je z bazy danych), a nast pnie przekazujemy je poprzez specjalny obiekt(templatingcontext) do kontekstu Velocity. Dzi ki temu w szablonie Velocity mo»emy si odwoªywa bezpo±rednio do tego obiektu(np. prezentowa dane, które obiekt reprezentuje ).

5 10 Zawieranie si widoków Typowa strona strona HTML ma struktur hierarchiczn. Zazwyczaj widnieje na niej zawsze ten sam tytuª, to samo menu gªówne czy jakie± podmenu wspólne na dla cz ±ci stron. W ogólno±ci mo»na powiedzie»e widoki mog si w sobie zawiera. ObjectLedge dostarcza wi c mechanizmu pozwalaj cego na zdeniowanie widoku widoku zewn trznego dla aktualnie wywoªanego widoku. Pozwalaj na to obiekty EnclosingView(w Builderze) i ViewEnclosureTool(w szablonie), tzn. pozwalaj zdeniowa czy dany widok jest ju» widokiem nadrz dnym, lub jakiego widoku nale»y u»y jako nadrz dnego(który te» mo»e mie swój widok nadrz dny... i tak a» do wierzchoªka). Oczywi±cie podczas tworzenia widoków zewn trznych nale»y pami ta o kodzie wygenerowanym z ju» przetworzonych widoków wewn trznych, s one przekazywane w postaci napisów jako argument procedury build lub umieszczane w kontek±cie velocity pod nazw : embeddedplaceholder. 11 Wstrzykiwanie zale»no±ci Wstrzyknie opisane powy»ej udogodnienia nie byªyby mo»liwe bez mechanizmu wstrzykiwania zale»no±ci(ang. Dependency Injection). ObjectLedge dostarcza mechanizmu bazuj cego na narz dziu PicoContainer, i oferuje wstrzykiwanie zale»no±ci przez konstruktor. Mechanizm ten polega na okre±leniu w specjalnym pliku xml klas wyst puj cych w realizowanym systemie oraz powi za«mi dzy nimi(poprzez zdeniowanie argumentów konstruktora). Dzi ki temu podczas odwoªania si do obiektu jego atrybuty s ju» zainicjowane. Literatura 1. http://objectledge.org 2. http://github.com/objectledge/ledge 3. http://velocity.apache.org/ 4. http://picocontainer.com/