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



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

1 Wprowadzenie do J2EE

Wybrane działy Informatyki Stosowanej

Wybrane działy Informatyki Stosowanej

EJB 3.0 (Enterprise JavaBeans 3.0)

Serwery Aplikacji "CC" Grzegorz Blinowski. tel (22) ; faks (22)

Architektury Usług Internetowych. Laboratorium 1. Servlety

Nowe mechanizmy w wersji 3 Java Card. Mateusz LESZEK (138775)

Architektury Usług Internetowych. Laboratorium 1 Servlety

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

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

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Wprowadzenie do J2EE. Maciej Zakrzewicz.

SOP System Obsługi Parkingów

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

Wzorce prezentacji internetowych

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

Java wybrane technologie spotkanie nr 3. Serwlety

Serwlety. Co to jest serwlet? Przykładowy kod serwletu. Po co są serwlety?

Aplikacje Internetowe, Servlety, JSP i JDBC

TIN Techniki Internetowe Lato 2005

Serwlety i JSP na platformie Java EE. Damian Makarow

prepared by: Programowanie WWW Servlety

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

JavaServer Pages. Konrad Kurdej Karol Strzelecki

Enterprise JavaBeans

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

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

Wybrane działy Informatyki Stosowanej

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

Programowanie Komponentowe WebAPI

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

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

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

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

Enterprise JavaBeans (EJB)

Aplikacje internetowe i rozproszone - laboratorium

mgr inż. Michał Paluch

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

Aplikacje WWW Wprowadzenie

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

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

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

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

Programowanie komponentowe 5

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

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Java Enterprise Edition spotkanie nr 1. Sprawy organizacyjne, wprowadzenie

Komunikacja i wymiana danych

Piotr Laskowski Krzysztof Stefański. Java Servlets

OpenLaszlo. OpenLaszlo

Rozwiązanie Compuware Data Center - Real User Monitoring

Programowanie obiektowe. Wprowadzenie

Zagadnienia projektowania aplikacji J2EE

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

Java w Internecie - czy to ma sens? ;)

Programowanie współbieżne i rozproszone

Wprowadzenie do JSP. Marcin Apostoluk, Tadeusz Pawlus, Wojciech Walczak. Technologie Biznesu Elektronicznego, 7 marzec 2006

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

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Pojęcie systemu baz danych

edziennik Ustaw Opis architektury

TIN Techniki Internetowe zima

Programowanie obiektowe zastosowanie języka Java SE

Aplikacje RMI

Ekspert MS SQL Server Oferta nr 00/08

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Java wybrane technologie spotkanie nr 4. Serwlety c.d.

Budowa aplikacji w technologii. Enterprise JavaBeans. Maciej Zakrzewicz PLOUG

Systemy obiegu informacji i Protokół SWAP "CC"


Tworzenie aplikacji Web Alicja Zwiewka. Page 1

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

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

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

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

TECHNOLOGIA JSP W TWORZENIU APLIKACJI ROZPROSZONYCH NA PRZYKŁADZIE SYSTEMU ZARZĄDZANIA NIERUCHOMOŚCIAMI W GMINIE

System Obsługi Wniosków

Serwlety Java: zagadnienia zaawansowane. Data Sources. Data Sources. Przykład pliku data-sources.xml

Komunikacja między serwletami

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 09

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

Aplikacje WWW - laboratorium

SOA Web Services in Java

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

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

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

JBoss Application Server

Plan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych

Projektowanie aplikacji J2EE w architekturze Model-View-Controller

Systemy internetowe Wykład 6 Architektura WWW - cd

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

mgr inż. Michał Paluch

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Dokumentacja aplikacji Szachy online

Aplikacje internetowe - laboratorium

Transkrypt:

Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego www.math.uni.lodz.pl/ radmat radmat@math.uni.lodz.pl

Serwer aplikacji Serwer aplikacji to: Serwer wchodzący w skład sieci komputerowej, przeznaczony do zdalnego uruchamiania i użytkowania aplikacji. Zestaw oprogramowania (platforma) wspierająca programistę / developera przy tworzeniu aplikacji. Umożliwia oddzielenie logiki biznesowej od usług dostarczanych przez producenta platformy (bezpieczeństwo, zarządzanie transakcjami, skalowalność, czy też dostęp do baz danych). Do serwerów aplikacji należą m.in.: JBoss, BEA WebLogic, IBM WebSphere oraz platforma.net Microsoftu. Program działający na zdalnej maszynie obsługujący żądania kierowane do aplikacji, do której dostęp zapewnia. Użytkownik łączy się za pośrednictwem przeglądarki internetowej, kieruje żądanie do wybranej aplikacji, a całość operacji odbywa się po stronie usługodawcy serwera.

Architektura WWW Rysunek: Architektura

Realizacja aplikacji WWW wymaga zastosowania rozszerzonej architektury WWW, w skład której wchodzą trzy programowe warstwy funkcjonalne: warstwa klienta warstwa aplikacji warstwa danych

Architektura serwerów aplikacji Kluczowym składnikiem rozszerzonej architektury WWW, umożliwiającym wykonywanie aplikacji WWW, jest serwer aplikacji. Serwer aplikacji jest oprogramowaniem o charakterze systemowym, które odpowiada m.in. za obsługę komunikacji z warstwą klienta i warstwą danych. Dzięki temu programista tworzący aplikacje WWW nie musi samodzielnie implementować kodu obsługi protokołu HTTP (z klientem HTTP) ani kodu obsługi komunikacji SQL (z serwerem bazy danych).

1 Warstwa kliencka aplikacje klienckie aplety 2 Warstwa webowa Java Servlet Java Server Pages Java Server Faces 3 Warstwa serwerowa Enterprise Java Beans 4 Wymiana danych pomiędzy warstwami

Architektura czterowarstwowa Architektura czterowarstwowa (4-tier architecture) zakłada, że komponenty aplikacji WWW dzielą się na dwie grupy: komponenty logiki prezentacji i komponenty logiki biznesowej.

Architektura Model-View-Controller Architektura Model-View-Controller zakłada, że komponenty aplikacji WWW dzielą się na trzy grupy: komponenty sterujące (controller), komponenty prezentacji (view) i komponenty modelu (model).

Rodzaje serwerów aplikacji Apache Tomcat GlassFish Bea Weblogic ZOPE (Z Object Publishing Environment) Windows 2003 Server.Net

Usługi serwerów aplikacji pule zasobów (na przykład pule bazy danych i pule obiektów) rozproszone zarządzanie transakcjami asynchroniczna komunikacja programowa, zazwyczaj poprzez kolejkowanie wiadomości dokładnie zsynchronizowany model aktywacji obiektu automatyczne interfejsy usług sieci Web XML umożliwiające dostęp do obiektów biznesowych usługi wykrywania awarii i stanu aplikacji zintegrowane zabezpieczenia

Klienci serwerów aplikacji 1 Klient HTML: statyczny brak lub minimalna logika porozumiewa się za pośrednictwem HTTP 2 Klient Java aplet java+html własna logika porozumiewa się za pośrednictwem IIOP lub JRMI

Zalety serwerów aplikacji niski koszt utrzymania klienta obsługa standardów otwartych szerokie możliwości generowania i publikowania informacji

Wymagania stawiane serwerom aplikacji integralność transakcji skalowalność, wydajność stabilność otwartość (w sensie obsługi standardów) bezpieczeństwo ochrona inwestycji

Cechy serwerów aplikacji umożliwia tworzenie i obsługę aplikacji napisanych m.in. w C, C++, Javie obsługuje wydajnie transakcyjne relacyjne bazy danych, jest niezależny od producenta bazy oferuje dużą skalowalność (obsługa klastrów) zapewnia zintegrowane, zcentralizowane zarządzanie obsługuje standardy: HTTP, HTML, CGI, NSAPI (Netscape), ISAPI (Microsoft), Java zawiera środowisko do tworzenia, testowania, wdrażania i zarządzania aplikacjami

Pliki konfiguracyjne w katalogu conf server.xml tomcat-users.xml web.xml

Pliki konfiguracyjne w katalogu logs catalina.2014-10-26.log localhost access log.2014-10-26

Java Enterprise Edition Java Enterprise Edition (w skrócie J EE) jest standardem tworzenia zorientowanych na usługi aplikacji biznesowych (Service Oriented Architecture), utworzonym na bazie języka Java i technologii Java 2 Standard Edition. W praktyce jest to pewien zbiór (pakiet) różnorodnych technologii i frameworków, który umożliwia tworzenie aplikacji.

Aplikacje webowe korzystają z grupy tych samych elementów, z których korzystają aplikacje biznesowe. Jednak formalnie aplikacje webowe powinny korzystać jedynie z: JavaServer Faces JavaServer Pages JavaServer Pages Standard Tag Library Java Servlet Jednym z najważniejszych elementów, które odróżniają aplikacje J EE od innych, jest konieczność ich uruchamiania na specjalnych serwerach aplikacji. Do aplikacji biznesowych często wykorzystywany jest serwer GlassFish, który oczywiście obsługuje także technologię EJB.

Układ katalogów projektu w Netbeansie Struktura stworzonego za pomocą Netbeansa projektu jest następująca: 1 Web Pages META-INF WEB-INF 2 Source Packages 3 Libraries

Serwlety Serwlet w Javie jest klasą, która rozszerza możliwości serwera aplikacji. Praktycznie jedynym wymaganiem jest, aby serwlet działał w trybie żądanie - odpowiedź. Serwlet wykonuje się w środowisku serwera WWW (aplikacji) i nie może funkcjonować autonomicznie. Serwer WWW musi zapewniać obsługę serwletów Java.

Hierarchia dziedziczenia Interfejs Servlet Abstrakcyjna klasa GenericServlet Klasa HttpServlet

Metody do* doget() dopost() dohead() dotrace() doput() dodelete() dooptions() doconnect()

Interfejs HttpServletRequest Najbardziej istotne metody interfejsu HttpServletRequest: Object getparameter(string nazwa) Enumeration<String> getparameternames() String getremoteuser() Cookie[] getcookies() String getheader(string nazwa)

int getintheader(string nazwa) long getdataheader(string nazwa) String getcontextpath() String getservletpath() String getpathinfo()

Interfejs HttpServletResponse Najbardziej istotne operacje, które będziemy wykonywać przesyłając odpowiedź klientowi (dzięki interfejsowi HttpServletRequest): przesyłanie odpowiedzi w postaci danych tekstowych lub binarnych tworzenie i przesyłanie ciasteczek dodawanie do odpowiedzi dowolnych nagłówków przekierowywanie żadań lub przesyłanie kodów błędu

Życie serwletu W chwili uruchomienia aplikacji serwer aplikacji podejmuje następujące działania: załadowanie klasy serwletu utworzenie instancji serwletu wywołanie metody init() wywołanie metody service()

Struktura serwletu protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, response); }

protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, response); } public String getservletinfo() { return "Short description"; }

Zalety i wady serwletu 1 Zalety: dostępne funkcje do obsługi typowych czynności mechanizm stosunkowo ustandaryzowany mechanizm uniwersalny i łatwo rozszerzalny stosunkowo bezpieczne 2 Wady: w bardziej złożonych środowiskach wydajność może pozostawiać wiele do życzenia (wymagania na RAM, garbage collection) występują istotne różnice pomiędzy różnymi środowiskami bazującymi na serwletach (np. por. - Tomcat, Oracle App. Server, IBM Websphere)