Web frameworks do budowy aplikacji zgodnych z J2EE



Podobne dokumenty
Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

SZKOLENIE TWORZENIE SYSTEMÓW

Szkolenie wycofane z oferty

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Załącznik 2 utworzenie projektu

Zapytanie ofertowe

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

Poznań Java User Group Java Server Faces. Wprowadzenie (Fakty i Mity)

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

Nowoczesne aplikacje internetowe oparte na Seam, JSF, EJB3, JPA, AJAX

1 Wprowadzenie do J2EE

Wykład 1 Inżynieria Oprogramowania

Modele danych walidacja widoki zorientowane na model

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Dokument Detaliczny Projektu

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

Forum Client - Spring in Swing


Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

SOP System Obsługi Parkingów

Programowanie w Javie 2. Płock, 26 luty 2014 r.

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Web frameworks do budowy aplikacji zgodnych z J2EE

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Architektura oprogramowania w praktyce. Wydanie II.

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

Dokument Detaliczny Projektu

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

Programowanie komponentowe 5

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Program szkolenia: Symfony, nowoczesny framework PHP

Konspekt pracy inżynierskiej

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Facelets ViewHandler

Historia zmian. Data wersja Opis Autor. 05/05/ Paweł Maćkowski. 31/05/ Paweł Maćkowski

OfficeObjects e-forms

Aplikacje Internetowe, Servlety, JSP i JDBC

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Tytuł szkolenia: Angular 4 - budowanie nowoczesnych i wydajnych aplikacji przeglądarkowych

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

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Integracja wirtualnego laboratorium z platformą e-learningową

Zapytanie ofertowe nr 9/POIG 8.2/11/10

Dodatkowo, w przypadku modułu dotyczącego integracji z systemami partnerów, Wykonawca będzie przeprowadzał testy integracyjne.

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

JBoss Seam: framework nowej generacji. Copyright Piotr Kochański & Erudis,

HP Service Anywhere Uproszczenie zarządzania usługami IT

Program szkolenia: REST i Microservices w PHP

Architektura nowoczesnych aplikacji internetowych

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

Contexts and Dependency Injection (CDI) Autor wykładu: Marek Wojciechowski

Egzamin / zaliczenie na ocenę*

Porównanie technologii tworzenia aplikacji internetowych JEE na przykładzie JavaServer Faces i Spring Boot

Etapy życia oprogramowania

Podstawy modelowania programów Kod przedmiotu

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Inżynieria oprogramowania, C12

Programowanie MorphX Ax

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

Zaawansowane programowanie w języku C++

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

EJB 3.0 (Enterprise JavaBeans 3.0)

Kurs ASP.NET ASP.NET CORE APLIKACJE WEBOWE

OSGi Agata Hejmej

REFERAT PRACY DYPLOMOWEJ

Porównanie wybranych bibliotek do tworzenia graficznego interfejsu internetowych aplikacji JEE

Enterprise JavaBeans (EJB)

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

Sposoby analizy i interpretacji statystyk strony WWW.

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Projekt i implementacja systemu informatycznego synchronizacji plików. w sieci wg ustalonych kryteriów. Maciej Tomaszewski

Inżynieria oprogramowania - opis przedmiotu

Galileo - encyklopedia internetowa Plan testów

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Opis realizacji dla czterech zespołów (4 przypadki użycia)

Aplikacje WWW - laboratorium

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Projektowanie oprogramowania. Termin zajęć: poniedziałek, a podstawie materiału ze strony.

problem w określonym kontekście siły istotę jego rozwiązania

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Webowy generator wykresów wykorzystujący program gnuplot

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Transkrypt:

Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król

Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym Do analizy zostały wybrane Spring MVC oraz JavaServer Faces Analiza obejmuje teoretyczne aspekty ich funkcjonowania oraz badania empiryczne przeprowadzone w formie eksperymentów

Stan zaawansowania rozdziały (1) 1.Wprowadzenie 2.Wstęp 1. Ewolucja szkieletów programistycznych 1. Historia i rozwój 2. Wzorce projektowe 3. Rozwiązania alternatywne 2. Architektura 1. Model 1 strona JSP 2. Model 2 centralny kontroler 3. Model komponentowy 3. Zadania szkieletów programistycznych

Stan zaawansowania rozdziały (2) 2. Nowoczesne środowisko pracy programisty 1. Tworzenie aplikacji 1. Subversion 2. Maven 3. Eclipse 4. Hibernate 5. Spring Framework 2. Przeprowadzanie testów 1. Spring Mock 2. EasyMock 3. JUnit 4 4. Selenium

Stan zaawansowania rozdziały (3) 3. Przegląd internetowych szkieletów programistycznych 1. Struts 2 1. Architektura 2. Znaczniki 3. Interceptory 4. Implementacja wzorca MVC 2. Spring MVC 1. Obiekt nadzorujący 2. Znaczniki 3. Zasada konwencji

Stan zaawansowania rozdziały (4) 3. Tapestry 5 1. Zasady 2. Moduły 4. JavaServer Faces 1. Specyfikacja 2. Architektura 3. Części składowe 4. Implementacja wzorca MVC 4. Porównanie Spring MVC z JavaServer Faces

Stan zaawansowania rozdziały (5) 1. Architektura 1. Spring MVC 2. JavaServer Faces 3. Podsumowanie 2. Model programistyczny 1. Spring MVC 2. JavaServer Faces 3. Podsumowanie 3. Cykl życia żądania 1. Spring MVC 2. JavaServer Faces 3. Podsumowanie

Stan zaawansowania rozdziały (6) 4. Walidacja i konwersja typów 1. Spring MVC 2. JavaServer Faces 3. Podsumowanie 2. Internacjonalizacja 1. Spring MVC 2. JavaServer Faces 3. Podsumowanie 5. Aplikacja Petclinic 1. Opis aplikacji 1. Wykorzystane technologie 2. Encje bazy danych

Stan zaawansowania rozdziały (7) 2. Moduły aplikacji 1. Petclinic-data 2. Petclinic-core 3. Petclinic-web 3. Zaimplementowana funkcjonalność 6. Eksperymenty z wykorzystaniem aplikacji Petclinic 1. Przebieg badania 1. Fazy implementacji aplikacji 2. Petclinic Badanie wydajności 3. Pomiar metryk kodu 4. Badanie łatwości wprowadzania zmian

Stan zaawansowania rozdziały (8) 5. Badanie dostępności komponentów Triniad 2. Analiza wyników 1. Wydajność 2. Metryki kodu 3. Dostępność komponentów Trinidad 4. Łatwość wprowadzania zmian 7. Podsumowanie Bibliografia 100%

Eksperymenty Eksperymenty zostały przeprowadzone na dwóch zaimplementowanych aplikacjach opartej o Spring MVC opartej o JavaServer Faces Pomiary metryk kodu dotyczyły trzech faz implementacji aplikacji aplikacji umożliwiającej przeglądanie danych aplikacji umożliwiającej zarządzanie danymi aplikacji po lokalizacji

Przeprowadzane eksperymenty Badania wydajności Pomiar metryk kodu Pomiar łatwości wprowadzania zmian (ang. changeability) Badanie dostępności (ang. accessibility) komponentów Trinidad

Badania wydajnościowe (1) Do badania wydajności posłużyło narzędzie JMeter Eksperymenty badające wydajność aplikacji symulowały pracę trzech grup osób: przeglądających dane modyfikujących stan aplikacji grupy mieszanej w proporcjach 4/1 przeglądających i modyfikujących dane

Badania wydajnościowe (2) Dla każdych z badanych grup zostały zmierzone następujące wartości: maksymalna liczba użytkowników mogących korzystać z systemu, przy zapewnieniu jego stabilnej pracy maksymalna liczba użytkowników mogących naraz korzystać z aplikacji przy zapewnieniu stabilnej pracy systemu (próg czasu reakcji 3 sekundy)

Metryki kodu (1) Metryki proste liczba dzieci (całkowita liczba bezpośrednich podklas interfejsów danej klasy) głębokość drzewa dziedziczenia liczba pól, metod, przeciążonych metod liczba klas i interfejsów liczba linii kodu

Metryki kodu (2) Metryki złożone indeks specjalizacji skojarzenia dośrodkowe skojarzenia odśrodkowe abstrakcyjność niestabilność znormalizowana odległość kategorii od ideału

Łatwość wprowadzania zmian Metryka zdefiniowana w normie ISO 9126 Pomiaru dokonano na każdym z trzech etapów budowy aplikacji W pomiarze uwzględniono: liczba nowo dodanych plików uzupełnienia (liczba plików zmodyfikowanych bez zmiany dotychczasowej zawartości) modyfikacje (liczba plików zmodyfikowanych których zmiana miała wpływ na dotychczasową treść)

Łatwość wprowadzania zmian (2) Pomiaru dokonano podczas czynności związanych z: dodawaniem listy stronicowanej dodawaniem formularza lokalizacją aplikacji

Dostępność (1) Dostępność komponentów Trinidad zmierzono poprzez: sprawdzenie poprawności składniowej kodu HTML komponentów weryfikacji poprawności pracy w popularnych przeglądarkach internetowych

Wyniki badania wydajności

Liczba żądań w zależności od badanej grupy użytkowników

Średni czas odpowiedzi aplikacji w zależności od badanej grupy użytkowników

Wyniki pomiaru metryk kodu

Metryki kodu modułów aplikacji

Metryki kodu pakietów według pełnionych funkcji

Metryki złożone aplikacji opartej o Spring MVC oraz JavaServer Faces

Zmiana wartości metryk podczas kolejnych etapów implementacji aplikacji

Wyniki pomiaru metryk kodu szablonów

Liczba znaczników wg rodzaju widoków

Wielkość wygenerowanej strony HTML

Wyniki badań dostępności komponentów Trinidad

Poprawność działania komponentów Triniadad

Poprawność działania komponentów wg przeglądarek

Udział błędów określonego typu w komponentach Trinidad

Wyniki łatwości wprowadzania zmian

Łatwość wprowadzania zmian a liczba zmienionych plików

Wyniki analizy teoretycznej (1) Model aplikacji. JSF jest szkieletem zorientowanym na strony (ang. page-oriented), Spring MVC na obsługę żądań przez kontrolery. Model programistyczny. Spring MVC zaczyna od mapowania żądań użytkownika a JavaServer Faces od definicji używanych w aplikacji komponentów z uwzględnieniem ich integracji z użytkownikiem.

Wyniki analizy teoretycznej (2) Cykl życia żądania. W Spring MVC stosowane jest pojęcie żądania, Aplikacje oparte o JavaServer Faces używają pojęcia zdarzenia odbieranego przez komponenty umieszczone na stronie internetowej Walidacja. Obie biblioteki są podobne pod tym względem. JavaServer Faces poprzez bibliotekę Trinidad posiada dodatkowo znaczniki walidacyjne umieszczane bezpośrednio na stronie JSP

Wyniki analizy teoretycznej (3) Lokalizacja. Spring MVC posiada lepsze wsparcie w tym zakresie. Oferuje wbudowane przełączanie się między wersjami językowymi. JavaServer Faces poprzez bibliotekę Trinidad posiada gotowe komunikaty o błędach walidacyjnych w języku polskim.

Wnioski z eksperymentów (1) Oba szkielety programistyczne spełniły swoją rolę w stopniu umożliwiającym w pełni poprawną implementację wcześniejszych założeń. Spring MVC tradycyjne podejście. JSF tworzenie aplikacji podobne do aplikacji tworzonych w technologii ASP.NET Aplikacje Spring MVC domyślnie są bezstanowe. Aplikacje JSF zarządzają wewnętrznym stanem aplikacji poprzez ciasteczka.

Wnioski z eksperymentów (2) Projekt oparty o Spring MVC posiada większą liczbę linii kodu oraz artefaktów programistycznych. Klasy projektu opartego o JavaServer Faces posiadały większą liczbę pól i metod. Pomiar metryk złożonych wykazał większą zgodność z zasadami dotyczącymi obiektywności projektu wykorzystującego Spring MVC

Wnioski z eksperymentów (3) Strony generowane przez szkielet JavaServer Faces są średnio nawet czterokrotnie większe niż analogiczne strony aplikacji Spring MVC. Badanie łatwości wprowadzania zmian wykazało, iż JavaServer Faces lepiej sprawuje się w przypadku tworzenia formularzy a gorzej w aspekcie kompleksowej lokalizacji aplikacji. Badanie dostępności komponentów Trinidad pozwoliło stwierdzić wysoką kompatybilność elementów interfejsu użytkownika.

Dalszy kierunek prac Proponowany jest dalszy rozwój aplikacji w celu zwiększenia jej złożoności dążąc do implementacji rzeczywistych wymogów biznesowych stawianych przed tego typu systemami. Raportowanie, uwierzytelnienie W porównaniu możliwe jest uwzględnienie aspektów związanych z samymi szkieletami. Badanie popularności, jakości dokumentacji, liczby dostępnych narzędzi.

Dziękuję za uwagę