Prgramwanie warstwy klienta w aplikacji Java EE Katedra Mikrelektrniki i Technik Infrmatycznych Plitechniki Łódzkiej ul. Wólczanska 221/223 budynek B18, 90-924 Łódź mgr inż. Rbert Ritter
1. Wprwadzenie C t jest aplikacja internetwa? C t jest szkielet aplikacyjny? Platfrmy d aplikacji internetwych Najppularniejsze szkielety aplikacyjne Jak wybrać dpwiednią platfrmę/szkielet d danej aplikacji internetwej? Jakie są zalety platfrmy JavaEE?
C t jest aplikacja internetwa? 3 mgr inż. Rbert Ritter, ritter@dmcs.pl Prgram architekturze klient serwer Kmunikacja pmiędzy klientem a serwerem pprzez prtkół HTTP (HTTPS) Interfejs użytkwnika wyknany w standardzie HTML (XHTML) dstępny przy użyciu przeglądarki internetwej
C t jest szkielet aplikacyjny (framewrk)? 4 mgr inż. Rbert Ritter, ritter@dmcs.pl Oprgramwanie udstępniające zestaw kmpnentów implementujących najczęściej wykrzystywane w budwaniu aplikacji elementy Zawiera elementy charakterze uniwersalnym dla większści aplikacji, nadające się przy niewielkim nakładzie pracy d wielkrtneg wykrzystania, np.: Mechanizmy sesji, kntynuacji, itd. Mechanizmy dstępu d źródeł danych Szkielet wzrca prjektweg Mdel-View-Cntrller lub Mdel-Presenter- Cntrller Mechanizmy uwierzytelniania i bezpieczeństwa Za załżenia ma ułatwiać implementwanie raz utrzymanie aplikacji Zasada wielkrtneg wykrzystywania kdu (cde reuse) Sprecyzwanie reguł prjektwania aplikacji upraszcza utrzymanie kdu Szkielety aplikacyjne mgą wspierać większść lub tylk wybrane aspekty implementacji i bardz częst stsuje się kilka szkieletów d jednej aplikacji
Platfrmy dla aplikacji internetwych 5 mgr inż. Rbert Ritter, ritter@dmcs.pl D implementacji aplikacji internetwej mżna zastswać cały szereg technlgii (platfrm), wykrzystujących różne języki prgramwania PHP JavaEE (Java) ASP.NET (C#, VisualBasic) Perl Pythn Ruby CldFusin (CFML)
Najppularniejsze szkielety aplikacyjne 6 mgr inż. Rbert Ritter, ritter@dmcs.pl Nie mżna jednznacznie kreślić który szkielet aplikacyjny lub która platfrma jest najppularniejsza. Pewne pjęcie ppularnści daneg rzwiązania daje liczba wyszukań w wyszukiwarkach, liczba dnśników d strny prezentującej dane rzwiązanie, liczba pbrań kdu itd. Według różnych źródeł najczęściej stswane platfrmy t PHP, ASP.NET, Ruby, Java (JavaEE) Ważną pzycję na rynku psiada również Adbe Flex N Framewrk Language Ppularity scre 1 ASP.NET C# 99 2 Ruby On Rails Ruby 88 3 Flask Pythn 87 4 Djang Pythn 82 5 Yii PHP 82 6 CakePHP PHP 82 7 Zend PHP 82 8 Spring Java 79 9 Symfny PHP 78 10 FUSE PHP 77 Źródł: www.htframewrks.cm z dnia 2013-02-24
Najppularniejsze szkielety aplikacyjne (2) 7 mgr inż. Rbert Ritter, ritter@dmcs.pl Dla platfrmy JavaEE najppularniejsze szkielety aplikacyjne t Spring, Turbine raz Vaadin Dużą ppularnścią cieszy się również JSF (wg niektórych źródeł największą) Ppularnść pzstałych wymieninych szkieletów jest jednak bardz zbliżna, wyniki niezależnych rankingów różnią się bardz znacząc N Framewrk Language Ppularity scre 1 Spring Java 79 2 Turbine Java 70 3 Vaadin Java 60 4 Seam Java 44 5 Play Java 40 6 Rma Java 39 7 Restlet Java 37 8 HybridJava Java 37 9 Stripes Java 35 10 PureMVC Java 34 Źródł: www.htframewrks.cm z dnia 2013-02-24
Wybór szkieletu aplikacyjneg 8 mgr inż. Rbert Ritter, ritter@dmcs.pl Z reguły przy wybrze szkieletu aplikacyjneg lub platfrmy architekci muszą dpwiedzieć sbie na kilka pytań: Zastswanie któreg szkieletu/platfrmy umżliwi zrealizwanie wszystkich załżeń aplikacji? Jaki szkielet/platfrma pzwli zaimplementwać daną aplikację najmniejszym ksztem? Jaki jest kszt wdrżenia zespłu prgramistów d stswania danej technlgii? Jaka jest dstępnść raz jakść dkumentacji? Czy dana technlgia jest nadal aktywnie rzwijana? Jaki jest kszt (licencja) sameg szkieletu/platfrmy? Jaki jest kszt sprzętu niezbędneg d spełnienia wymagań wydajnściwych aplikacji? Jakie są mżliwści skalwania (wydajnść) kreślnej platfrmy/szkieletu?
Wybór szkieletu aplikacyjneg (2) 9 mgr inż. Rbert Ritter, ritter@dmcs.pl Zastswanie któreg szkieletu/platfrmy umżliwi zrealizwanie wszystkich załżeń aplikacji? Mżna zaryzykwać stwierdzenie, iż wszystkie rzwiązania umżliwiają zaimplementwanie dwlnej funkcjnalnści, ile jest t tylk mżliwe wbec graniczeń sameg prtkłu kmunikacji HTTP, mżliwści przeglądarek itd. Niektóre funkcjnalnści są lepiej lub grzej wspierane przez różne szkielety aplikacyjne (np. kntynuacja, uwierzytelnianie, itd.) Wnisek najlepiej jest wybrać rzwiązanie które najlepiej wspiera najtrudniejsze (najbardziej ksztwne) d zaimplementwania funkcjnalnści danej aplikacji
Wybór szkieletu aplikacyjneg (3) 10 mgr inż. Rbert Ritter, ritter@dmcs.pl Jaki szkielet/platfrma pzwli zaimplementwać daną aplikację najmniejszym ksztem? Najczęściej dminującą składwą całkwiteg ksztu są nakłady ptrzebne na płacenie zespłu analityków, architektów, prgramistów raz testerów Aby graniczyć kszt należy c d zasady wybierać rzwiązania już sprawdzne i znane w zesple Należy unikać rzwiązań przestarzałych i nie rzwijanych lub nie psiadających dbrze zredagwanej i kmpletnej dkumentacji W przypadku mniejszych aplikacji cena licencji na technlgie raz narzędzia (np. ASP.NET wraz z Windws Server raz Visual Studi) mże zniechęcać d ich wykrzystania, jednak w dużych aplikacjach najczęściej kszt ten nie ma dużeg znaczenia
Wybór szkieletu aplikacyjneg (4) 11 mgr inż. Rbert Ritter, ritter@dmcs.pl Jakie są mżliwści skalwania (wydajnść) kreślnej platfrmy/szkieletu? Ppularne platfrmy i szkielety ferują dść zbliżną wydajnść, trudn wskazać tutaj jednznaczneg lidera Pewne technlgie ułatwiają implementację niektórych funkcjnalnści ksztem wydajnści (np. JSF feruje przeciętnie kł 3-krtnie grszą wydajnść niż JSP), jednak zmniejszenie ksztu implementacji bardz częst przewyższa kszt zakupu wydajniejszeg serwera który pzwli spełnić załżne nrmy jakściwe. Skalwalnść aplikacji t sztuka sama w sbie, którą realizuje się pprzez zaprjektwanie dpwiedniej architektury aplikacji, a nie pprzez wykrzystanie knkretnej platfrmy lub szkieletu aplikacyjneg. Mżna w uprszczeniu załżyć, iż żadna platfrma/szkielet nie skaluje się grzej d pzstałych.
2. Platfrma JavaEE Zalety platfrmy JavaEE Przegląd wybranych szkieletów aplikacyjnych dla JavaEE
Zalety platfrmy JavaEE 13 mgr inż. Rbert Ritter, ritter@dmcs.pl Prstta i ppularnść języka Java Bardz dbre wsparcie dla najczęściej wykrzystywanych algrytmów raz struktur danych Mżliwść stswania adntacji w kdzie Java Metaprgramwanie dzięki Java Reflectin API Prgramwanie aspektwe Darmwe narzędzia bardz bgatych mżliwściach d prjektwania i implementacji aplikacji internetwych Eclipse IDE fr Java EE Develpers (www.eclipse.rg) NetBeans IDE (www.netbeans.rg) Dstępnść platfrmy na wszystkich ppularnych systemach peracyjnych
Zalety platfrmy JavaEE (2) 14 mgr inż. Rbert Ritter, ritter@dmcs.pl Dstępnść darmwych, intensywnie rzwijanych technlgii raz szkieletów aplikacyjnych d zrealizwania i wdrżenia kmpletnej aplikacji internetwej Serwer aplikacji (servlet-ów) (Tmcat, JBss, Glassfish) Kntener dwrócneg sterwania (Spring) Dstęp d baz danych (JDBC) Mapwanie relacyjn-biektwe (Hibernate) Generwanie dynamicznych widków HTML (JSP, JSF) Generwanie raprtów (JasperReprts) Wzrzec Mdel-View-Cntrller (Spring MVC, Struts 2) Wsparcie dla testów jednstkwych (JUnit) i wiele innych...