2007 Technologie Pro Tvorbu Java Enterprise Aplikací

1,190 views

Published on

Technologie pro tvorbu enterprise Java aplikací

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,190
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2007 Technologie Pro Tvorbu Java Enterprise Aplikací

  1. 1. Copyright © 2007 KOMIX s.r.o. Martin Ptáček , KOMIX s.r.o. Praha Technologie pro tvorbu Java Enterprise aplikací
  2. 2. Obsah prezentace Platforma J EE Návrh architektury Implementace Provozní prostředí Otázky a odpovědi
  3. 3. <ul><li>Micro Edition (JME) </li></ul><ul><ul><li>Mobilní telefony, JavaCard atd.. </li></ul></ul><ul><li>Standard Edition (JSE) </li></ul><ul><ul><li>Desktop/Workgroup </li></ul></ul><ul><li>Enterprise Edition (JEE) </li></ul><ul><ul><li>Rozšiřuje JSE o enterprise API a technologie </li></ul></ul>Java 2 Platforms
  4. 4. <ul><li>Co je platforma JEE </li></ul><ul><li>Architektura JEE </li></ul><ul><li>Služby JEE </li></ul><ul><li>Kde použít platformu JEE? </li></ul>Platforma JEE
  5. 5. <ul><li>Sada koordinovaných specifikací a praktik, které dohromady poskytují řešení pro vývoj, rozmístění a řízení vícevrstvých enterprise aplikací </li></ul><ul><li>Spojuje celou řadu standardních technologií do jediné architektury s komplexním modelem programování </li></ul><ul><li>Specifikace JEE 5 </li></ul>Platforma JEE Co je platforma JEE?
  6. 6. <ul><li>Components </li></ul><ul><ul><li>Presentation, Business Logic, Persistence </li></ul></ul><ul><li>Containers </li></ul><ul><ul><li>Poskytuje inteligentní prostředí pro běh komponent </li></ul></ul><ul><ul><li>Řídí přístup, souběh a životní cyklus </li></ul></ul><ul><ul><li>Zajišťuje administraci, škálovatelnost, bezpečnost a přístup ke zdrojům </li></ul></ul><ul><li>Providers </li></ul><ul><ul><li>Poskytuje implementuje abstraktní rozhraní JDBC , JPA </li></ul></ul>Platforma JEE JEE Compone n ts / Containers / Providers
  7. 7. Platforma JEE Architektura JEE EJB Container Persistence Provider JPA Database LDAP, MQ, WS, Third Parties Web Container Servlet JSP Page Client Machine Java EE Server Application Client Container Application Client WEB Browser Session Bean Entity Message-driven Bean Entity
  8. 8. Platforma JEE Služby JEE EJB Container Web Container Database JSE Services JMS JNDI JAAS Web Services JAX-WS SAAJ JAX-RPC Connectors JACC Java Persistence JTA JDBC JTA JAXB Servlet JAXP RMI/IIOP JavaMail MQ LDAP/AD SAP, Siebl Email Server SMTP/POP3 Java EE Server Java EE Containers Java EE Services
  9. 9. <ul><li>Integrace okolních systémů </li></ul><ul><ul><li>Web Services, Java Connectors, JMS, JavaMail </li></ul></ul><ul><li>Bezpečnost </li></ul><ul><ul><li>Autentizace, Autorizace </li></ul></ul><ul><li>Transakční zpracování </li></ul><ul><li>Persistence </li></ul><ul><ul><li>O/R mapování </li></ul></ul><ul><li>Dostupnost </li></ul><ul><ul><li>Pooling, Thred-safety, Caching, Performance, Clustering </li></ul></ul><ul><li>Komplexní řešení ! </li></ul>Platforma JEE Kde použít platformu JEE
  10. 10. <ul><li>Jednoduchý a efektivní vývoj </li></ul><ul><ul><li>Použití anotací pro konfiguraci </li></ul></ul><ul><ul><li>Bez nutnosti konfigurace externích souborů </li></ul></ul><ul><ul><li>POJO a POJI </li></ul></ul><ul><ul><li>Dependency Injection (DI) </li></ul></ul><ul><li>JPA </li></ul><ul><ul><li>Snadná implementace ORM mapování </li></ul></ul><ul><ul><li>CRUD operace </li></ul></ul>Platforma JEE Facelift J2EE 1.4 & JEE 5
  11. 11. Návrh architektury Schéma Database LDAP, MQ, WS, Third Parties Persistence Provider JPA EJB Container Web Container RMI HTTP/HTTPS WEB Services Install, Update JNDI Java C lient Client Machine JEE Application Server Enterprise Bean WEB Browser
  12. 12. <ul><li>Tvorba Business Logiky </li></ul><ul><ul><li>Persistentní vrstva ORM mapování, Domain Model, JPA </li></ul></ul><ul><ul><li>Servisní vrstva EJB 3 , Integrace, WebServices, Unit testování </li></ul></ul><ul><li>Tvorba prezentační vrstvy </li></ul><ul><ul><li>Nativní klient, Webový klient </li></ul></ul><ul><li>Security </li></ul><ul><li>Distribuce (Packaging) </li></ul><ul><li>Další doporučované technologie </li></ul><ul><li>Nástroje pro vývoj </li></ul>Implementace
  13. 13. Implementace Tvorba Business Logiky Database Layer Service Layer Persistence Layer Remote System Domain Model Enterprise Bean Entity Entity Service Model Enterprise Bean Remote Interface WEB Services Local Interface JMS API Data Model
  14. 14. Implementace Persistentní vrstva <ul><li>Standard Java Persistence API JPA </li></ul><ul><ul><li>ORM mapování </li></ul></ul><ul><ul><li>Provider Hibernate, TopLink </li></ul></ul><ul><li>Entity </li></ul><ul><ul><li>Java třídy tvoří Domain Model business logiky </li></ul></ul><ul><ul><li>Obsahují metadata mapování na DB, relace, dědění </li></ul></ul><ul><li>EntityManager </li></ul><ul><ul><li>Rozhraní pro práci s entitami </li></ul></ul><ul><ul><li>CRUD operace </li></ul></ul><ul><ul><li>JPQL </li></ul></ul>
  15. 15. Implementace Integrace servisní vrstvy Remote Interface WS Interface Local Interface JMS Interface Entity Manager Integration Interface Enterprise Bean Enterprise Bean Java C lient Entity Remote Client Web Component Remote Client
  16. 16. Implementace Integrace W ebServices JAX-WS <ul><li>WebServices </li></ul><ul><ul><li>Vzdálené volání služeb v distribuovaných systémech </li></ul></ul><ul><ul><li>Nezávislé na platformě, obecné standardy XML a HTTP </li></ul></ul><ul><li>Protocols </li></ul><ul><ul><li>SOAP – protokol vzdáleného volání metod </li></ul></ul><ul><ul><li>WSDL – popis rozhraní služby </li></ul></ul><ul><ul><li>UDDI – vyhledávání služeb </li></ul></ul>Client 1 Web Container JAX-WS JAX-WS HTTP/SOAP/XML EJB Container Java EE Server
  17. 17. <ul><li>Vývojářem psaná část kódu k ověření funkčnosti testované oblasti </li></ul><ul><li>Test je vytvářen pro každou business komponentu </li></ul><ul><li>Nedílnou součástí implementace aplikační logiky </li></ul><ul><li>Framework TestNG a WebNG </li></ul>Implementace Unit testování
  18. 18. Implementace Nativní klient <ul><li>Swing </li></ul><ul><ul><li>Knihovna tříd a komponent pro tvorbu grafického UI </li></ul></ul><ul><li>MVC </li></ul><ul><ul><li>Oddělení komponenty pro zobrazení od prezentace (Model) </li></ul></ul><ul><li>WISIWYG Design </li></ul><ul><ul><li>Jigloo, Swing Designer (Knihovna JGoodies) </li></ul></ul>
  19. 19. Implementace Webový klient <ul><li>Standard JEE </li></ul><ul><ul><li>Komponenty Servlet, JSP </li></ul></ul><ul><ul><li>Tag knihovny JSTL, EL </li></ul></ul><ul><li>Web Framework </li></ul><ul><ul><li>Rozšiřuje standard JEE </li></ul></ul><ul><ul><li>Pomocné třídy pro snadné generování dynamického obsahu, JSTL knihovna, Lokalizace, Validace </li></ul></ul><ul><ul><li>Implementace MVC </li></ul></ul>
  20. 20. Implementace Webový klient – Best Practices <ul><li>Model-View-Controller Design Pattern (MVC) </li></ul><ul><ul><li>Model implementován pomocí EJB, JavaBeans atd.. </li></ul></ul><ul><ul><li>View reprezentován JSP </li></ul></ul><ul><ul><li>Controller řídí a předává řízení (Servlet Dispatcher) </li></ul></ul><ul><li>Tag Libraries & JavaBeans </li></ul><ul><li>Framework </li></ul><ul><ul><li>Struts </li></ul></ul><ul><ul><li>Stripes </li></ul></ul><ul><ul><li>Java Server Faces (JSF) </li></ul></ul>
  21. 21. Implementace AJAX technologie <ul><li>AJAX (Asynchronous JavaScript and XML) </li></ul><ul><li>Obecné označení technologie pro změnu obsahu bez nutnosti znovunačtení stránky. </li></ul><ul><li>Javascript, XMLHttpRequest, DOM </li></ul><ul><li>JavaScript knihovna Prototype ( http://www.prototypejs.org ) </li></ul><ul><li>AjaxTags, Stripes atd.. </li></ul>
  22. 22. Implementace Framework Stripes - Úvod <ul><li>Rychlá implementace </li></ul><ul><ul><li>Bez nutnosti konfigurace externích souborů </li></ul></ul><ul><ul><li>Absence Form objektů </li></ul></ul><ul><ul><li>Široké využití anotací </li></ul></ul><ul><ul><li>Kontroly, konverze, lokalizace </li></ul></ul><ul><ul><li>Jednoduchá JSTL knihovna, využití EL </li></ul></ul><ul><li>Postupná implementace </li></ul><ul><ul><li>JSP stránky možno tvořit bez nutnosti existence modelu </li></ul></ul><ul><li>Podpora </li></ul><ul><ul><li>AJAX, více akcí formuláře atd.. </li></ul></ul>
  23. 23. Implementace Framework Stripes - Architektura Action adapter mezi web & business vrstou u dr žuje zasílaná data, automatický update View využítí dat action Speciální JSTL knihovna Web Container Action Controller WEB Browser JSP Page Action Action JSP Page JSP Page Session Bean Session Bean
  24. 24. Implementace Framework Stripes – Layout Reuse <ul><li>Snadná tvorba Layout </li></ul><ul><ul><li>Tvorba Layout </li></ul></ul><ul><ul><li>Znovupoužitelný Layout </li></ul></ul><ul><ul><li>Parametrizovaný Layout </li></ul></ul><ul><ul><li>Page Fragment Layout (tvorba vlastních tagů) </li></ul></ul><ul><li>Ukázka </li></ul>
  25. 25. Implementace Framework Stripes – Basic Concepts <ul><li>Data součástí ActionBean </li></ul><ul><ul><li>Domain objekty </li></ul></ul><ul><ul><li>Metody / Eventy </li></ul></ul><ul><ul><li>Tvorba View pomocí JSTL a EL </li></ul></ul><ul><ul><li>Pre-action x <stripes:useActionBean ... /> </li></ul></ul><ul><li>Ukázka </li></ul>
  26. 26. Implementace Framework Stripes – Forms <ul><li>Základní formuláře </li></ul><ul><li>Indexované proměnné </li></ul><ul><li>Validace </li></ul><ul><ul><li>Automatické validace </li></ul></ul><ul><ul><ul><li>Required, MaxLength, Mask … </li></ul></ul></ul><ul><ul><li>Vlastní validace </li></ul></ul><ul><ul><li>Zobrazování chyb </li></ul></ul><ul><li>Tvorba View pomocí JSTL </li></ul><ul><li>Ukázka </li></ul>
  27. 27. Implementace Framework Stripes – Localization <ul><li>Určení Locale </li></ul><ul><ul><li>Request, Default, Vlastní LocalePicker </li></ul></ul><ul><li>Resources </li></ul><ul><ul><li>Labels, Buttons, Validations, Error messages … </li></ul></ul><ul><li><fmt:message key=“…”> </li></ul><ul><li>Ukázka </li></ul>
  28. 28. Implementace Framework Stripes – AJAX <ul><li>Resolution </li></ul><ul><ul><li>ForwardResolution </li></ul></ul><ul><ul><li>RedirectResolution </li></ul></ul><ul><ul><li>StreamingResolution </li></ul></ul><ul><ul><li>Vlastní implementace Resolution </li></ul></ul><ul><li>Ukázka </li></ul>
  29. 29. Implementace AJAX <ul><li>JavaScript knihovna Prototype ( http://www.prototypejs.org ) </li></ul><ul><ul><li>Ajax.Request </li></ul></ul><ul><ul><li>Ajax.Updater </li></ul></ul><ul><li>AjaxTags ( http://ajaxtags.sourceforge.net/ ) </li></ul><ul><ul><li>JSTL knihovna (Autocomplete, Update atd…) </li></ul></ul><ul><li>Ukázka </li></ul>
  30. 30. Implementace Prototype Window <ul><li>JavaScript knihovna Prototype Window ( http://prototype-window.xilinus.com/ ) </li></ul><ul><ul><li>Window </li></ul></ul><ul><ul><li>Confirm, Alert, Info </li></ul></ul><ul><ul><li>Dynamický obsah </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Ukázka </li></ul>
  31. 31. <ul><li>Logování Apache Commons Logging (Log4J) </li></ul><ul><li>Zpracování XML </li></ul><ul><ul><li>DOM, SAX, JAXB API </li></ul></ul><ul><li>Vyrovnávací paměť ehcache </li></ul><ul><li>Generování dokumentů </li></ul><ul><ul><li>Apache POI – Java API to Access MS Format </li></ul></ul><ul><ul><li>iText (pdf) </li></ul></ul><ul><ul><li>JFreeChart </li></ul></ul><ul><ul><li>iReport (šablony) </li></ul></ul>Implementace Další doporučované technologie
  32. 32. <ul><li>Entita uživatele </li></ul><ul><ul><li>Authentication, Authorization </li></ul></ul><ul><ul><li>JAAS (Login Module, Principal, Credentials atd..) </li></ul></ul><ul><li>WEB Security </li></ul><ul><ul><li>Authentication method: HTTP Basic, Form-based, Client-cerficate, Mutual, Digest </li></ul></ul><ul><ul><li>Declarative (Protect web resource), Programmatic </li></ul></ul><ul><li>EJB Security </li></ul><ul><ul><li>Declarative, Programmatic </li></ul></ul><ul><ul><li>Mapping roles to JEE users and groups </li></ul></ul>Implementace Security
  33. 33. <ul><li>Standard JEE </li></ul><ul><li>Build nástroj ANT, Maven </li></ul><ul><li>Technologie WebStart </li></ul><ul><ul><li>Automatická instalace JRE a aplikace </li></ul></ul><ul><ul><li>Automatické aktualizace aplikace </li></ul></ul>Implementace Distribuce (Packaging)
  34. 34. Implementace Packaging modules <ul><li>Třídy a komponenty </li></ul><ul><li>JSP, JSTL </li></ul><ul><li>HTML, js, CSS, images </li></ul><ul><li>Web deployment descriptor </li></ul>WEB Module *.war Enterprise Archive *.ear EJB Module *.jar Application Client Module *.jar Resource adapter module *.rar <ul><li>Třídy a komponenty typu EJB </li></ul><ul><li>Ejb deployment descriptor </li></ul><ul><li>Třídy aplikace </li></ul><ul><li>Application client deployment descriptor </li></ul><ul><li>Třídy, rozhraní, nativní knihovny </li></ul><ul><li>Resource adapter deployment descriptor </li></ul>
  35. 35. <ul><li>Vývojové prostředí </li></ul><ul><ul><li>IDE Eclipse , Integrace CVS </li></ul></ul><ul><ul><li>WTP Editors (.jsp,.cs atd..) </li></ul></ul><ul><ul><li>WTP Server Runtime Configuration plugin </li></ul></ul><ul><ul><li>Hibernate Plugin, Quantum DB Plugin, Swing Designer </li></ul></ul><ul><li>Správa projektu </li></ul><ul><ul><li>CVS </li></ul></ul><ul><li>Aplikační server </li></ul><ul><ul><li>JBoss, Tomcat </li></ul></ul>Implementace Nástroje pro vývoj
  36. 36. <ul><li>Operační systém podporující běh JVM 5 a vyšší </li></ul><ul><li>Aplikační server </li></ul><ul><ul><li>JBoss, Websphere, SunAS, WebLogic, GlassFish </li></ul></ul><ul><ul><li>Web Server Apache </li></ul></ul><ul><ul><li>Clustering, Load Balancing, FailOver </li></ul></ul>Provozní prostředí
  37. 37. <ul><li>Oblasti optimalizace </li></ul><ul><ul><li>Správa paměti </li></ul></ul><ul><ul><li>Optimalizace datové vrstvy </li></ul></ul><ul><ul><li>Odezvy aplikace </li></ul></ul><ul><ul><li>Optimalizace business procesů </li></ul></ul><ul><li>Nástroje </li></ul><ul><ul><li>JConsole, Jhat atd.. (Sun Java 6 tools) </li></ul></ul><ul><ul><li>P6Spy, IronTrack SQL, MC4J </li></ul></ul><ul><ul><li>JMX, PMI metriky </li></ul></ul><ul><ul><li>Wily Introscope </li></ul></ul>Provozní prostředí Monitoring provozního prostředí
  38. 38. Otázky a odpovědi <ul><li>Otázky ? </li></ul>
  39. 39. Děkuji za vaši pozornost Martin Ptáček [email_address] +420 225 989 981 KOMIX s.r.o. Holubova 1, 150 00 Praha 5 www.komix.cz

×