Łukasz Tomczyk*, Beata Pańczyk. Politechnika Lubelska, Instytut Informatyki, Nadbystrzycka 36B, Lublin, Polska. Łukasz Tomczyk*, Beata Pańczyk

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

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Web frameworks do budowy aplikacji zgodnych z J2EE

The current software tools for the JEE platform

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i

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

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Tworzenie aplikacji internetowych w technologii ASP.NET MVC i JavaSerwer Faces

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

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

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

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

Wykorzystanie Node.js w tworzeniu aplikacjach sterowanych zdarzeniami. Using of Node.js in creating application based on event-driven architecture

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Szkolenie wycofane z oferty

Czym jest technologia Bluetooth?

REFERAT PRACY DYPLOMOWEJ

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

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

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Załącznik 2 utworzenie projektu

Załącznik 1 instrukcje instalacji

SOP System Obsługi Parkingów

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

SPRING FRAMEWORK. dr inż. Jakub Chłapioski

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

SZKOLENIE TWORZENIE SYSTEMÓW

1 Wprowadzenie do J2EE

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

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

OpenLaszlo. OpenLaszlo

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Dysk 20GB przestrzeni Ajax Ajax 1.0 Baza danych MS SQL 2005 lub 2008 Express Java Java 6 run time Microsoft Silverlight 3.

Praca Dyplomowa Magisterska

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

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

WYKORZYSTANIE I ROZWÓJ WOLNEGO OPROGRAMOWANIA W WOJEWÓDZKIM WĘŹLE INFRASTRUKTURY INFORMACJI PRZESTRZENNEJ

edziennik Ustaw Opis architektury

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

SPECYFIKACJA TECHNICZNA OPROGRAMOWANIA

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

ANGULARJS TWORZENIE APLIKACJI INTERNETOWYCH

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Usługi analityczne budowa kostki analitycznej Część pierwsza.

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

Dokumentacja kompilacji źródeł aplikacji 1.0

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Wybrane działy Informatyki Stosowanej

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Metody bioinformatyki (MBI) projekt, dokumentacja końcowa

Zaawansowane Techniki Bazodanowe

Analiza i projektowanie aplikacji Java

Zapytanie ofertowe nr 9/POIG 8.2/11/10

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

EJB 3.0 (Enterprise JavaBeans 3.0)

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Oracle11g: Wprowadzenie do SQL

edycja 18 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

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

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

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

Przykładowe sprawozdanie. Jan Pustelnik

Porównanie technologii mapowania obiektowo-relacyjnego danych w frameworku Symfony 3

PRZEWODNIK PO PRZEDMIOCIE

edycja 20 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr ZW 124/2017 i 112/2017 i 113/2017

Automatyzacja narzędziami open source nie musi być trudna

Wybrane działy Informatyki Stosowanej

SPINACZ.edu.pl platforma współpracy nauki z biznesem w zakresie innowacyjnych rozwiązań informatycznych

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Forum Client - Spring in Swing

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Architektura systemu e-schola

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

OPIS PRZEDMIOTU ZAMÓWIENIA

Tomasz Grześ. Systemy zarządzania treścią

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

L i f e r a y. Open Source Java Multiplatformowy

PRZEWODNIK PO PRZEDMIOCIE

Oracle Application Express -

Tematy prac dyplomowych inżynierskich

W grze bierze udział dwóch graczy. Każdy uczestnik rozpoczyna rozgrywkę z sumą

Ekspert MS SQL Server Oferta nr 00/08

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

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

KATALOG MASZYN I POJAZDÓW ROLNICZYCH MASZYNY-3

Java w Internecie - czy to ma sens? ;)

PRZEWODNIK PO PRZEDMIOCIE

Transkrypt:

JCSI 6 (2018) 1-5 WysłaneŚ 2017-09-13 PrzyjęteŚ 2017-09-19 Porównanie technologii tworzenia aplikacji internetowych na przykładzie i Łukasz Tomczyk*, Beata Pańczyk Politechnika Lubelska, Instytut Informatyki, Nadbystrzycka 36B, 20-618 Lublin, Polska Streszczenie. W artykule przedstawiono wyniki porównania efektywno ci wytwarzania aplikacji internetowych na platformie Java w wersji 1.8 z zastosowaniem szkieletów programistycznych oraz. Analiza porównawcza została przeprowadzona za pomocą autorskich aplikacji testowych, implementujących te same funkcjonalno ci w obu technologiach. Słowa kluczowe: ; ; aplikacje internetowe; framework * Autor do korespondencji. Adres e-mail: lukasz.tomczyk1@pollub.edu.pl Comparison of web applications development using and Łukasz Tomczyk*, Beata Pańczyk Institute of Computer Science, Lublin University of Technology, Nadbystrzycka 36B, 20-618 Lublin, Poland Abstract. The article presents the results of web application development effectiveness on Java platform in 1.8 version using and frameworks. The comparative analysis was conducted with test applications, implementing the same functionalities in both technologies. Keywords:,, web applications, framework * Corresponding author. E-mail address: lukasz.tomczyk1@pollub.edu.pl 1. Wstęp Istnieje wiele różnych technologii, wykorzystywanych do tworzenia aplikacji internetowych w rodowisku języka Java [1]. Można je podzielić na trzy grupy: koncentrujące się tylko na wizualnej stronie interfejsu użytkownika; sterujące całą logiką aplikacji i procesami biznesowymi; pozwalające na implementację strony wizualnej i logiki aplikacji. Każde z tych podej ć posiada swoje wady i zalety i bardzo trudno jest wskazać najlepsze rozwiązania. Framework jest bardziej efektywnym narzędziem wytwarzania aplikacji internetowych w porównaniu do. Dla potwierdzenia przedstawionej tezy wykorzystano metodę badań opartą na analizie porównawczej obu rozwiązań. W artykule przeanalizowano dwa wybrane szkielety programistyczne: najbardziej popularny [1] oraz cieszące się coraz większą popularno cią (Rys. 1). 2. Cel, teza i metody badań Celem badań było porównanie kodu oraz przetestowanie efektywno ci działania dwóch aplikacji (o takiej samej funkcjonalno ci) utworzonych za pomocą i. W artykule postawiono następującą tezęś Rys. 1. Popularno ć wybranych frameworków Java w roku 2016 [2] 1

3. Aplikacje testowe Aplikacje oraz : stworzono w rodowisku programistycznym Eclipse [3] z wykorzystaniem narzędzia do automatyzacji i budowy projektów Mavenś współpracują z serwerem bazy danych Oracle [4], realizując dostęp do danych za po rednictwem Hibernate; wykorzystują funkcje biblioteki jquery. Obie aplikacje testowe posiadają typowe funkcjonalno ci CRUD (ang. Create, Read, Update, Delete, Search), czyli tworzenie, edycję oraz usuwanie informacji o studentach z bazy danych (Rys. 2). Rys. 2. Schemat bazy danych Interfejs obu aplikacji jest bardzo podobny oraz umożliwia pełny dostęp do wszystkich funkcjonalno ci. Został on przedstawiony na rysunku 3. Tabela 1. Najważniejsze cechy i Twórca Pivotal Software Ltd. Pierwsza wersja Millstone 3 open 1 października source Web 2002 framework 2002 Wersja finalna 1 marca 2017 (4.3.7) 22 lutego 2017 (8.1) Język programowania Java SDK Java SE 8 SDK Technologia widoku JSP Java Thymeleaf, Inne możliwe Groovy Markup technologie widoku Templates Html Serwery open-source Wsparcie Apache Tomcat, GlassFish, Jetty Bogate wsparcie i dokumentacja, duża baza użytkowników Licencja Apache License 2.0 Niezależno ć platformy systemowej Windows, Mac, Linux Tabela 2. Parametry zestawu pomiarowego Element Stan/Wersja System operacyjny Windows 10 64-bitowy Procesor Intel Core i7-4712 (2.3-3.3 GHz) Pamięć RAM 12 GB Wersja Java Java 8 4.1. Struktura aplikacji Rys. 4 przedstawia strukturę obu aplikacji, opartych na projekcie Maven. Rys. 3. Przykładowa strona aplikacji testowej 4. Analiza porównawcza Najważniejsze cechy i zostały zestawione w tabeli 1. W tabeli 2 przedstawiono parametry sprzętowe komputera, na którym wykonano testy. Do przeprowadzenia porównania obu aplikacji wykorzystane zostały następujące kryteriaś ogólna struktura aplikacji; efektywno ć pracy z danymiś podstawowe metryki kodu; efektywno ć wczytywania zasobów aplikacji przez przeglądarkę internetową. Rys. 4. Struktura projektu i Na rysunku wyróżniono kolorem elementy funkcjonalnie wspólne dla obu aplikacji: Fioletowy - pakiety klas odpowiadających za realizację żądań oraz interakcji z użytkownikiem; 2

zielony - pakiety klas domenowych mapujących encje bazy danych za pomocą adnotacji JPA; brązowy - pakiety implementujące interfejsy warstw usług oraz repozytorium; niebieski - pakiet z parserem plików txt i csv; czerwony - pakiety warstwy repozytorium; pomarańczowy - pakiety warstwy usług; czarny - pakiety zawierające mechanizmy pomiaru czasów; żółty - foldery z plikami konfiguracyjnymi, m.in. połączenia z bazą danych; szary - dodatkowe pliki (css, javascript, jsp, xml). Dzięki zastosowaniu struktury Maven, elementy obu aplikacji są zbliżone. Główne różnice to pliki jsp, xml oraz javascript, które zawiera. 4.2. Efektywno ć pracy z bazą danych W celu porównania efektywno ci obu aplikacji, zmierzono czas pracy z danymi. Do testu przygotowano 9 scenariuszy testowych (Tabela 3.). Każdy scenariusz powtórzono 10 razy a wyniki pomiarów u redniono. Tabela 3. Tabela 3. Scenariusze testowe Scenariusz Opis 1 Zapis 10 studentów 2 Odczyt 10 studentów 3 Zapis 100 studentów 4 Odczyt 100 studentów 5 Zapis 1000 studentów 6 Odczyt 1000 studentów 7 Zapis 10000 studentów 8 Odczyt 10000 studentów Wyszukiwanie studentów losowo wybranymi 9 słowami kluczowymi Testowy zbiór studentów został wygenerowany przez prosty program własnego autorstwa. Czas mierzono w milisekundach [ms]. Operacje na bazie realizowano za pomocą Hibernate. Fragment kodu z pomiarem czasu operacji dla scenariusza 1 oraz 2 pokazują odpowiednio przykłady 1 i 2. W pozostałych scenariuszach pomiar odbywał się analogicznie. Przykład 1. Pomiar czasu zapisu danych @RequestMapping(value = "/" + StudentsAdminViewName, method = RequestMethod.POST) private String addstudentsfromfile( @ModelAttribute("myFile") @Valid MyFile myfile, HttpServletRequest request) { calculator.begin(); MultipartFile multipartfile = myfile.getdata(); List<Student> st = TextFileParser.getStudentsFromFile(multipartFile); studentsservice.addstudents(st); calculator.end(); calculator.calculate(); students = studentsservice.getstudents( elementsinpage, startposition, Order.ASC); studentsservice.getallstudents(); return "redirect:/" + StudentsAdminViewName; Przykład 2. Pomiar czasu odczytu danych private void updatelist() { performencecalculator.begin(); if (filter == null filter.isempty()) { students = service.getstudents(elementsinpage, startposition, Order.ASC); else { students = service.getstudentsbyfirstname(filter, elementsinpage, startposition, Order.ASC); grid.setitems(students); performencecalculator.end(); performencecalculator.calculate(); W tabelach 4 i 5 przedstawiono odpowiednio rezultaty pomiarów dodawania i odczytu 10 studentów. Tabela 4. Czasy dodawania jednocze nie 10 studentów. 1 89 111 2 61 83 3 72 87 4 88 93 5 65 88 6 74 87 7 70 89 8 63 90 9 76 84 10 80 87 redni czas 73 88 Tabela 5. Tabela 5. Czasy odczytu 10 studentów 1 309 9 2 327 10 3 302 14 4 304 7 5 306 8 6 311 11 7 301 13 8 309 12 9 317 8 10 326 9 redni czas 313 11 Na rysunku 5a i 5b zestawiono rednie czasy pomiarów dla wszystkich scenariuszy. Porównując obie aplikacje, w kategorii pobierania rekordów z bazy, jest zdecydowanie szybszy od. W przypadku zapisu danych, jest szybszy dla małej liczby, natomiast dla większej liczby danych. W przypadku wyszukiwania (scenariusz 9) jest szybszy od rednio o 6 milisekund. 3

. Rys. 5a. rednie czasy operacji dla wszystkich scenariuszy testowych dla i Rys. 5b. rednie czasy operacji dla wszystkich scenariuszy testowych dla i 4.3. Efektywno ć wczytywania zasobów aplikacji w przeglądarce internetowej Następnym ważnym pomiarem wydajno ci obu aplikacji jest czas od momentu wystąpienia żądania użytkownika. Czas ten został zmierzony za pomocą konsoli deweloperskiej Mozilla Firefox dla scenariusza 4. Wyniki pomiarów zostały przedstawione w tabeli 6. Na podstawie prezentowanych tam wyników można stwierdzić, że aplikacja jest znacznie szybsza niż. Jest to spowodowane rozdzieleniem w warstwy prezentacji od warstwy kontrolera. 4 W obie warstwy znajdują się w jednym miejscu w kodzie źródłowym. 4.4. Porównanie metryk aplikacji. Ostatnim elementem porównania obu aplikacji jest analiza metryk kodu. Do tego celu wykorzystano narzędzie dostępne w Eclipse. Wyniki przedstawia tabela 7. Generalnie liczba linii kodu dla jest mniejsza od aplikacji napisanej w. Jednak aplikacja w Spring

MVC zajmuje więcej pamięci dyskowej niż w przypadku, ponieważ zawiera w sobie więcej wbudowanych mechanizmów. Tabela 6. Czas pobierania zasobów przez przeglądarkę Mozilla Firefox 1 568 39 2 602 21 3 589 22 4 563 34 5 612 32 6 538 27 7 513 29 8 558 33 9 503 28 10 613 31 redni czas 566 30 Tabela 7. Wybrane metryki kodu obu aplikacji. Liczba linii kodu Kod Java 1165 2081 Kod JSP 564 0 Kod JavaScript 57 0 Pliki konfiguracyjne 327 246 Razem linii kodu 2113 2327 Liczba bibliotek 43 36 Rozmiar projektu (MB) 61,8 48,4 5. Wnioski Na podstawie przeprowadzonych badań można sformułować następujące wnioskiś zastosowanie obydwu frameworków do tworzenia aplikacji internetowych wymaga znajomo ci podstaw języka Javaś Spring jest stabilną platformą deweloperską, która stale się rozwija i oferuje bogate możliwo ci przystosowania do różnych projektów [5]; patrząc na wykresy popularno ci frameworków, Spring MVC jest wykorzystywany najczę ciej. Wiąże się z tym fakt, że wiele projektów powstało dużo wcze niej niż same frameworki [6]. Aplikacje napisane w Springu nadal są w nim utrzymywaneś powstał głównie do tworzenia wyglądu. Dostarcza API, które jest dużym ułatwieniem dla programistów [7]; biorąc pod uwagę efekt końcowy, czyli działanie aplikacji, użytkownik nie powinien odczuć znacznej różnicy w szybko ci działania. Jedyną rzeczą, która może być widoczna, to podobieństwo wszystkich aplikacji pisanych z wykorzystaniem frameworka ; posiada dużą pulę standardowych komponentów, które w zupełno ci wystarczają nawet w przypadku tworzenia zaawansowanych aplikacji. Pisanie własnych komponentów zdarza się bardzo rzadko, o czym można przeczytać w dokumentacji frameworka [7]; jest znacznie szybszy je li chodzi o wyszukiwanie danych. Jest to spowodowane asynchronicznym wykonywaniem zadań za pomocą AJAX. W tym scenariuszu testowym framework korzysta z tradycyjnych żądań, co ma wpływ na czas reakcjiś odczyt danych jest również mocniejszą stroną. Jest to związane z brakiem separacji warstw aplikacji. Widok jest implementowany w kodzie Javy, podczas gdy w tworzy się oddzielne pliki (np. jsp) oraz w dodatkowym pliku konfiguruje się dopasowanie pliku widoku do klasy kontrolera; Je li chodzi o inne artykuły porównujące framework oraz, istnieją w dużo mniej szczegółowej formie. Na portalu internetowym [8] można znaleźć porównanie tych dwóch frameworków. Przedstawia ono tylko opis słowny i ocenę użytkowników nie zawiera porównania wydajno ciowego w postaci tabel i wykresów. Literatura [1] G. Amuthan,. Przewodnik dla początkujących, Helion, Gliwice, 2015. [2] https://zeroturnaround.com/rebellabs/most-popular-javaframeworks-tools-and-libraries-2016/ [09.04.2017] [3] https://www.eclipse.org/ [07.05.2017] [4] N. Greenberg, Oracle Database 10g: SQLFundamentals I, Oracle, 2004. [5] Gutierrez F.: Wprowadzenie do Spring Framework dla programistów Java, Helion, Gliwice 2015 [6] https://spring.io/guides, [05.03.2017] [7] https://vaadin.com/docs/, [02.04.2017] [8] https://zeroturnaround.com/rebellabs/the-curious-coders-javaweb-frameworks-comparison-spring-mvc-grails-vaadin-gwtwicket-play-struts-and-jsf/2/ 5