SPRING FRAMEWORK. dr inż. Jakub Chłapioski



Podobne dokumenty
Programowanie warstwy klienta w aplikacji Java EE

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

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

Web frameworks do budowy aplikacji zgodnych z J2EE

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Wybrane działy Informatyki Stosowanej

Cennik. Szkolenia zintegrowane. Java

OpenLaszlo. OpenLaszlo

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

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

Ekspert MS SQL Server Oferta nr 00/08

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

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

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

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

Nowoczesne projektowanie aplikacji intrnetowych - opis przedmiotu

Programowanie Komponentowe WebAPI

SZKOLENIE TWORZENIE SYSTEMÓW

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

Budowanie interfejsów do baz danych

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

ASP.NET MVC. Grzegorz Caban 20 stycznia 2009

Prezentacja firmy Royal Solutions Sp. z o.o.

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

1 Wprowadzenie do J2EE

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

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

Wybrane działy Informatyki Stosowanej

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

Wybrane działy Informatyki Stosowanej

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

SOA Web Services in Java

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Wykład Ćwiczenia Laboratorium Projekt Seminarium

CMS, CRM, sklepy internetowe, aplikacje Web

PODSTAWY PROJEKTOWANIA

PHP revisited - odświerzenie spojrzenia na programowanie w PHP

Projektowanie i implementacja wysokowydajnych aplikacji w języku

REFERAT PRACY DYPLOMOWEJ

Programista do działu testów PDT/1401/T/TBG

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy,

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

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

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Zapytanie ofertowe nr 9/POIG 8.2/11/10

Zaawansowane programowanie w języku C++

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

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Aplikacje WWW Wprowadzenie

Dokumentacja kompilacji źródeł aplikacji 1.0

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2011/2012. Architektura zorientowana na usługi

CENNIK I TERMINARZ SZKOLEŃ SZKOLENIA OTWARTE DLA UŻYTKOWNIKÓW SYSTEMÓW INFORMATYCZNYCH

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

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

Przetwarzanie danych w chmurze

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Cennik. Inżynieria oprogramowania. Języki programowania. Ważny do 30 września Javatech. Indywid. (2) Java. Dni VIP(3)

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Automatyzacja Testowania w WEB 2.0

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

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

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

CV: Wojciech Soczyński

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

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Internetowy system e-crm do obsługi biura podróży. Marek Bytnar, Paweł Kraiński

Forum Client - Spring in Swing

I. Opis przedmiotu zamówienia

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

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

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

Szkolenie wycofane z oferty

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Architektura mikroserwisów na platformie Spring IO

znajomość języka programowania w stopniu podstawowym (np. C/C++, Java), umiejętność obsługi aplikacji Excel, OpenOffice Calc, itp.

Wykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Systemy obiegu informacji i Protokół SWAP "CC"

Tester oprogramowania 2014/15 Tematy prac dyplomowych

SYLABUS/KARTA PRZEDMIOTU

Środowisko NetBeans. Paweł Boguszewski

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Środowiska i platformy programistyczne

Aplikacje Internetowe

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

SOP System Obsługi Parkingów

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

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

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

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

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

Praca Dyplomowa Magisterska

Analiza, projekt i realizacja systemu wspomagania zarządzaniem hotelu. Michał Koczko 4321

Szczegółowy opis zamówienia:

Administrator Systemów SCADA

Transkrypt:

SPRING FRAMEWORK Katedra Mikroelektroniki i Technik Informatycznych Politechniki Łódzkiej ul. Wólczanska 221/223 budynek B18, 90-924 Łódź dr inż. Jakub Chłapioski

1. Wprowadzenie Co to jest aplikacja internetowa? Co to jest szkielet aplikacyjny? Platformy do aplikacji internetowych Najpopularniejsze szkielety aplikacyjne Jak wybrad odpowiednią platformę/szkielet do danej aplikacji internetowej? Jakie są zalety platformy JavaEE?

Co to jest aplikacja internetowa? 3 Program o architekturze klient-serwer Komunikacja pomiedzy klientem a serwerem poprzez protokół HTTP (HTTPS) Interfejs użytkownika wykonany w standardzie HTML (XHTML) dostępny przy użyciu przeglądarki internetowej

Co to jest szkielet aplikacyjny (framework)? 4 Oprogramowanie udostępniające zestaw komponentów implementujących najczęściej wykorzystywane w budowaniu aplikacji elementy Zawiera elementy o charakterze uniwersalnym dla większości aplikacji, nadające się przy niewielkim nakładzie pracy do wielokrotnego wykorzystania, np.: Mechanizmy sesji, kontynuacji, itd. Mechanizmy dostępu do źródeł danych Szkielet wzorca projektowego Model-View-Controller lub Model-Presenter-Controller Mechanizmy uwierzytelniania i bezpieczeostwa Za założenia ma ułatwiad implementowanie oraz utrzymanie aplikacji Zasada wielokrotnego wykorzystywania kodu (code reuse) Sprecyzowanie reguł projektowania aplikacji upraszcza utrzymanie kodu Szkielety aplikacyjne mogą wspierad większośd lub tylko wybrane aspekty implementacji i bardzo często stosuje się kilka szkieletów do jednej aplikacji

Platformy dla aplikacji internetowych 5 Do implementacji aplikacji internetowej można zastosowad cały szereg technologii (platform), wykorzystujących różne języki programowania PHP JavaEE (Java) ASP.NET (C#, VisualBasic) Perl Python Ruby ColdFusion (CFML)

6 Najpopularniejsze szkielety aplikacyjne Nie można jednoznacznie określid który szkielet aplikacyjny lub która platforma jest najpopularniejsza. Pewne pojęcie o popularności danego rozwiązania daje liczba wyszukao w wyszukiwarkach, liczba odnośników do strony prezentującej dane rozwiązanie, liczba pobrao kodu itd. Według różnych źródeł najczęściej stosowane platformy to PHP, ASP.NET, Ruby, Java (JavaEE) Ważną pozycję na rynku posiada również Adobe Flex Źródło: www.hotframeworks.com z dnia 2011-02-12 No Framework Language Popularity Score 1 Zend PHP 99 2 ASP.NET C# 96 3 Ruby on Rails Ruby 89 4 CodeIgniter PHP 87 5 Django Python 85 6 Symfony PHP 81 7 CakePHP PHP 79 8 Google Web Toolkit Java 75 9 Yii PHP 73 10 Flex ActionScript 72 11 Spring Java 71 12 ASP.NET MVC C# 69 13 Struts Java 69 14 Cocoon Java 66 15 Zope Python 66 16 Flask Python 65 17 Sinatra Ruby 63 18 Wicket Java 63 19 Cappuccino Objective-J 62 20 Express JavaScript 62

Najpopularniejsze szkielety aplikacyjne (2) 7 Dla platformy JavaEE najpopularniejsze szkielety aplikacyjne to GWT, Spring oraz Struts Dużą popularnością cieszy się również JSF (wg niektórych źródeł największą) Popularnośd pozostałych wymienionych szkieletów jest jednak bardzo zbliżona, wyniki niezależnych rankingów różnią się bardzo znacząco Źródło: www.hotframeworks.com z dnia 2011-02-12 No Framework Language Popularity Score 1 Google Web Toolkit Java 75 2 Spring Java 71 3 Struts Java 69 4 Cocoon Java 66 5 Wicket Java 63 6 JSF Java 60 7 Tapestry Java 59 8 Seam Java 56 9 Apache Click Java 54 10 Play Java 53

Wybór szkieletu aplikacyjnego 8 Z reguły przy wyborze szkieletu aplikacyjnego lub platformy architekci muszą odpowiedzied sobie na kilka pytao: Zastosowanie którego szkieletu/platformy umożliwi zrealizowanie wszystkich założeo aplikacji? Jaki szkielet/platforma pozwoli zaimplementowad daną aplikację najmniejszym kosztem? Jaki jest koszt wdrożenia zespołu programistów do stosowania danej technologii? Jaka jest dostępnośd oraz jakośd dokumentacji Czy dana technologia jest nadal aktywnie rozwijana? Jaki jest koszt (licencja) samego szkieletu/platformy? Jaki jest koszt sprzętu niezbędnego do spełnienia wymagao wydajnościowych aplikacji? Jakie są możliwości skalowania (wydajnośd) określonej platformy/szkieletu?

Wybór szkieletu aplikacyjnego (2) 9 Zastosowanie którego szkieletu/platformy umożliwi zrealizowanie wszystkich założeo aplikacji? Można zaryzykowad stwierdzenie, iż wszystkie rozwiązania umożliwiają zaimplementowanie dowolnej funkcjonalności, o ile jest to tylko możliwe wobec ograniczeo samego protokołu komunikacji HTTP, możliwości przegladarek itd. Niektóre funkcjonalności są lepiej lub gorzej wspierane przez różne szkielety aplikacyjne (np. kontynuacja, uwierzytelnianie, itd.) Wniosek najlepiej jest wybrad rozwiązanie które najlepiej wspiera najtrudniejsze (najbardziej kosztowne) do zaimplementowania funkcjonalności danej aplikacji

Wybór szkieletu aplikacyjnego (3) 10 Jaki szkielet/platforma pozwoli zaimplementowad daną aplikację najmniejszym kosztem? Najczęściej dominującą składową całkowitego kosztu są nakłady potrzebne na opłacenie zespołu analityków, architektów, programistów oraz testerów Aby ograniczyd koszt należy co do zasady wybierad rozwiązania już sprawdzone i znane w zespole Należy unikad rozwiązao przestarzałych i nie rozwijanych lub nie posiadajacych dobrze zredagowanej i kompletnej dokumentacji W przypadku mniejszych aplikacji cena licencji na technologie oraz narzędzia (np. ASP.NET wraz z Windows Server oraz Visual Studio) może zniechęcad do ich wykorzystania, jednak w dużych aplikacjach najczęściej koszt ten nie ma dużego znaczenia

11 Wybór szkieletu aplikacyjnego (4) Jakie są możliwości skalowania (wydajnośd) określonej platformy/szkieletu? Popularne platformy i szkielety oferują dośd zbliżoną wydajnośd, trudno wskazad tutaj jednoznacznego lidera Pewne technologie ułatwiają implementację niektórych funkcjonalności kosztem wydajności (np. JSF oferuje przeciętnie około 3-krotnie gorszą wydajnośd niż JSP), jednak zmniejszenie kosztu implementacji bardzo często przewyższa koszt zakupu wydajnieszego serwera który pozwoli spełnid założone normy jakościowe. Skalowalnośd aplikacji to sztuka sama w sobie, którą realizuje się poprzez zaprojektowanie odpowiedniej architektury aplikacji, a nie poprzez wykorzystanie konkretnej platformy lub szkieletu aplikacyjnego. Można w uproszczeniu założyd, iż żadna platforma/szkielet nie skaluje się gorzej od pozostałych.

2. Platforma JavaEE Zalety platformy JavaEE Przegląd wybranych szkieletów aplikacyjnych dla JavaEE

Zalety platformy JavaEE 13 Prostota i popularnośd języka Java Bardzo dobre wsparcie dla najczęściej wykorzystywanych algorytmów oraz struktur danych Możliwośd stosowania adnotacji w kodzie Java Metaprogramowanie dzięki Java Reflection API Programowanie aspektowe Darmowe narzędzia o bardzo bogatych możliwościach do projektowania i implementacji aplikacji internetowych Eclipse IDE for Java EE Developers (www.eclipse.org) NetBeans IDE (www.netbeans.org) Dostępnośd platformy na wszystkich popularnych systemach operacyjnych

Zalety platformy JavaEE (2) 14 Dostępnośd darmowych, intensywnie rozwijanych technologii oraz szkieletów aplikacyjnych do zrealizowania i wdrożenia kompletnej aplikacji internetowej Serwer aplikacji (servlet-ów) (Tomcat, JBoss, Glassfish) Kontener odwróconego sterowania (Spring) Dostęp do baz danych (JDBC) Mapowanie relacyjno-obiektowe (Hibernate) Generowanie dynamicznych widoków HTML (JSP, JSF) Generowanie raportów (JasperReports) Wzorzec Model-View-Controller (Spring MVC, Struts 2) Wsparcie dla testów jednostkowych (JUnit) i wiele innych...