Platforma J2EE korporacyjny standard wytwarzania złożonych systemów informatycznych Autor: Jarosław Lis Warszawa, 2006r.
Cel prezentacji Przedstawienie platformy J2EE Architektura aplikacji wielowarstwowych Technologie platformy J2EE Technologie tworzenia interfejsu użytkownika
J2EE – co to jest? J2EE, czyli Java 2 Platform, Enterprise Edition to zbiór technologii w pełni opartych o język programowania Java Sun Microsystems Inc. – twórcy platformy J2EE, którzy jako pierwsi wyszli naprzeciw zapotrzebowaniu rynku w 1997 roku
Cechy aplikacji J2EE Standard powstał z myślą o tworzeniu aplikacji: Dostępnych – wyznacznik sukcesu firmy w erze globalnej konkurencji Bezpiecznych – zapewnienie prywatności klientów oraz integralności danych Wydajnych Skalowalnych – transakcje zapewniające niezawodność i prawidłowe przetwarzanie danych
Cechy aplikacji J2EE c.d. Przenośnych (wieloplatformowość) – niezależne od zastanej architektury Wielowarstwowych – izolacja danych, logiki biznesowej, prezentacji
Warstwa middleware Middleware – warstwa zapewniająca aplikacji wymienione cechy, zbiór skomplikowanych technologii Korzyści: Koncentracja projektanta na wyższym poziomie abstrakcji, tj. na logice aplikacji Unikanie błędów programistycznych w krytycznych mechanizmach systemów Przyśpieszenie i ułatwienie procesu projektowania, tworzenia oraz wdrażania systemu Ciągły rozwój middleware
Aplikacje wielowarstwowe Rozwiązania dla systemów, które sprawdzają się w większości zastosowań oparte są na podziale: Warstwa prezentacji – wyświetlanie wyników zapytania Warstwa kontrolera – sterowanie warstwą prezentacji Warstwa logiki biznesowej – przetwarzanie informacji Warstwa integracji – dostosowanie logiki biznesowej z warstwą danych Warstwa źródła danych – mechanizm składowania i udostępniania danych
Wielowarstwowość - zalety Separacja fragmentów rozwiązania Niezależne przetwarzanie Wysoka skalowalność Zwiększone bezpieczeństwo Ułatwione zarządzanie warstwą prezentacją
Serwery aplikacji Rola i zadania serwera aplikacji: Równoważenie obciążenia Transakcyjność Dostęp do baz danych Komunikacja w środowisku rozproszonym (przezroczystość) Zarządzanie cyklem życia komponentów
Serwery aplikacji c.d. BEA Weblogic Server IBM WebSphere Application Server HP Bluestone Total-e-Server Oracle Application Server Java Appliacation Server JBoss Borland AppServer Sybase EAServer
Technologie J2EE Platforma J2EE – konglomerat wielu zaawansowanych technologii, m.in.: Technologia komponentowa EJB Technologie budowy warstwy prezentacji JSP i JavaServlets Technologia JNDI
Technologia EJB Technologia komponentowa EJB (ang. Enterprise JavaBeans): Podstawa platformy J2EE Tworzenie komponentów programistycznych Komponenty uruchamiane na serwerach aplikacyjnych zgodnych z EJB Przetwarzanie informacji w warstwie logiki biznesowej
Technologia EJB c.d. Rodzaje komponentów EJB: Komponenty sesyjne (ang. session beans) Komponenty encyjne (ang. entity beans) Komponenty sterowane komunikatami (ang. message driven beans) Składniki komponentu: Klasa implementująca ziarno Interfejs domowy (ang. home interface) Interfejs zdalny (ang. remote interface)
Technologia EJB c.d. Interfejs domowy: Deklaracje metod tworzenia obiektów EJB, ich wyszukiwania oraz usuwania Interfejs zdalny: Deklaracje wszystkich metod biznesowych ziarna
Technologia EJB c.d. Komponenty sesyjne Obsługa żądań od klienta Przetwarzanie danych Zapewnienie logiki biznesowej aplikacji Rodzaje komponentów sesyjnych: Stanowe (ang. statefull) Bezstanowe (ang. stateless)
Technologia EJB c.d. Komponenty encyjne Reprezentowanie trwałych danych Dostępne dla wielu klientów równocześnie Żyją tak długo jak dane w bazie danych Rodzaje komponentów encyjnych: CMP (ang. Container Managed Persistency) BMP (ang. Bean Managed Persistency)
Technologia EJB c.d. Komponenty sterowane komunikatami Przesyłanie komunikatów pomiędzy innymi komponentami i aplikacjami Przechowywanie komunikatów w kolejce wiadomości JMS (ang. Java Messaging Services) do chwili odebrania lub utraty ważności komunikatu
Warstwa prezentacji Podstawowe technologie budowy warstwy prezentacji Java Server Pages JavaServlets
Technologia JSP Tworzenie dynamicznych stron www Stosowana na różnych platformach Możliwość mieszania statycznego kodu HTML z kodem Java Udostępnia zmienne predefiniowane (request, response, session) Możliwość korzystania z komponentów JavaBeans
JavaServlets Servlety, czyli programy wykonywane na serwerze www Główne zadania servletów: Odbieranie żądania Generowanie wyników żądania Formatowanie odpowiedzi Wysyłanie odpowiedzi do użytkownika
JavaServlets c.d. Metody klasy implementującej servlet: init() – wykonywana raz w trakcie życia servletu service() – wykonywana przy każdym żądaniu doGet() – parametry przesyłane w URL doPost() – parametry przesyłane w nagłówku destroy() – wykonywana przed usunięciem servletu
Koncepcja MVC MVC, czyli Model-View-Controller Rozdzielenie modelu danych, interfejsu użytkownika oraz kontrolera: Model – dane przechowywane w sposób trwały Widok – wyświetlanie danych użytkownikom Kontroler – sterowanie żądaniem
Struts Technologia budowania złożonych aplikacji www Dojrzała z dobrze rozwiniętą i dopracowaną specyfikacją Korzysta z JSP, Servletów, XML Opłacalna, gdy złożona aplikacja z dużą ilością ekranów
Struts c.d. Klasy bazowe ActionServlet – pełni funkcję kontrolera ActionForm – pełni funkcję formularza Action – łącznik pomiędzy żądaniem, a logiką biznesową dla danego żądania ActionMapping – mechanizm pomocniczy kontrolera
Struts c.d. Plik konfiguracyjny struts-config.xml Rodzaje nawigacji Statyczna Dynamiczna
Struts c.d. Walidacja danych wejściowych Przy wykorzystaniu metody validate klasy ActionForm Przy wykorzystaniu własnych walidatorów Przy użyciu standardowych walidatorów (obowiązkowe wypełnienie pola, minimalna i maksymalna długość, walidacja daty, email)
J2EE - podsumowanie Używana do budowy różnorakich usług Standardowe rozwiązanie korporacyjne, również odpowiednia dla małych i średnich przedsiębiorstw Przyśpieszone tworzenie aplikacji Wolny standard, możliwość dowolnego dopasowania platformy sprzętowej, systemu operacyjnego oraz serwera aplikacji
J2EE – podsumowanie c.d. Przykładowe aplikacje oparte na J2EE www.amazon.com www.cheapbooks.com
Pytania ???
Dziękuję za uwagę