Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI

2.960 Aufrufe

Veröffentlicht am

Auch mit JSF 2 und CDI lassen sich in kürzester Zeit komplexe Anwendungen realisieren, wenn man weiß, wie. Anhand des Technologie-Stacks JSF 2, CDI, Lombok, HTML5, jQuery und JPA wird eine leichtgewichtige Architektur anhand einer Livedemo vorgestellt, die den Anforderungen des Rapid Application Development gerecht wird und in der Cloud betrieben werden kann.

Veröffentlicht in: Technologie
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.960
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
284
Aktionen
Geteilt
0
Downloads
21
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI

  1. 1. Schlanke Webarchitekturennicht nur mit JSF 2 & CDIAndreas Hartmann & Stephan Mülleradesso AG
  2. 2. AgendaArchitektur Vision Querschnittsfunktionen Technologie Stack Schlanke Webarchitekturen Technologien im Detail Code-BeispieleCloud Ready
  3. 3. Architektur Vision
  4. 4. 3 Layer Reflex Over-Presentation-Layer <<GUI>> engineering <<Domain Model>> Boiler PlateBusiness-Layer <<Service>> CodeIntegrationLayer Expensive <<Adapter>>
  5. 5. Cross-Sectional Tasks
  6. 6. Technology Stack
  7. 7. Schlanke Webarchitekturen Tiny Enterprise Applications Client Tier MiddleTier JSF jQuery <<Presenter>> <<Adapter DB>> Spring Data <<View>> CDI <<Model>> << . . . >> Lombok BeanValidation <<Domain Model>>
  8. 8. Schlanke Webarchitekturen Large Scale Enterprise Applications Client Tier MiddleTier JSF jQuery <<Presenter>> <<Service>> <<Adapter DB>> Spring Data <<View>> CDI <<Model>> <<. . . >> << . . . >> Lombok Dozer BeanValidation <<Domain Model>>
  9. 9. Wunschliste für Dependency Injection ...•  Standardisierte DI für Java –  Wiederverwendbarkeit –  Testbarkeit –  Flexibilität•  Fachlichkeit statt Infrastruktur –  Eingeloggter Benutzer statt UserService•  ... und natürlich Erweiterbarkeit
  10. 10. Context and Dependency Injection•  CDI 1.0 (JSR-299) –  typsicheres und schichtenneutrales Injection Framework –  Annotationsbasiert •  @Produces, @RequestScope, @ConversationScope –  mehrere Implementierungen •  Weld, Apache Open WebBeans, Caucho CanDI –  nutzt DI for Java (JSR-330) als grundlegende API •  @Inject, @Named, ... –  bietet Mechanismus zur individuellen Erweiterung•  CDI ermöglicht ... –  Java Enterprise Entwicklung ohne EJB und ohne Spring
  11. 11. Context and Dependency Injection•  CDI Beans ersetzen JSF BeansJSF 2.0 (JSR 314) CDI 1.0 (JSR 299, JSR 330)@javax.faces.bean.ManagedBean @javax.inject.Named@javax.faces.bean.ManagedProperty @javax.inject.Inject@javax.faces.bean.SessionScoped @javax.enterprise.context.SessionScoped•  Vorteile –  alle Beans werden im CDI Container verwaltet –  Injizieren von POJOs und Diensten in „Managed Beans“ möglich –  Leichtgewichtig •  läuft auch im Web Container
  12. 12. HTML •  Einfache Nutzung mit Facelets und Composite Components •  Mit JSF2.2 auch HTML5 Komponenten
  13. 13. •  freie, umfangreiche JavaScript Bibliothek•  komfortable Möglichkeit zur DOM Manipulation•  Erweiterbarkeit durch Plugins (u.a. DataTable)
  14. 14. Lombok •  Reduziert Boilerplate Code durch Annoations –  @Getter, @Setter –  @ToString –  @HashCodeAndEquals –  @Data –  @NotNull •  Delombok Funktionalität
  15. 15. Bean Validation •  Standardisierung von Constraints in Form von Annotations •  Standardisierung des Metadata API •  Integration anderer Frameworks wie z.B. JSF und JPA
  16. 16. Dozer •  Java Bean to Java Bean Mapper
  17. 17. Spring Data •  ermöglicht Zugriff auf relationale und NoSQL Datenbanken •  CDI Integration in progress
  18. 18. Apache Deltaspike•  Apache Incubator Projekt•  zentrale Sammelstelle für CDI Erweiterungen –  u.a. für CODI & Seam3 Module•  implementierungsunabhängiger Zugriff auf CDI APIs
  19. 19. Code-Beispiele•  Exceptionhandling•  Monitoring•  Security
  20. 20. Cloud-Ready•  Deployment bei PaaS/IaaS Providern –  Amazon Beanstalk / EC2 –  RedHat OpenShift –  VMware Cloud Foundry•  Warum Cloud ...? –  Rechenleistung on demand –  Elastizität und Skalierbarkeit –  Hohe Flexibilität –  Geringe Kosten
  21. 21. Cloud-Ready•  Laufzeitumgebung –  Webcontainer þ –  Application Server ý (þ) nur OpenShift•  Unterstützte DI Frameworks –  CDI þ –  Spring þ•  Verfügbare Datenbank –  RDBMS þ –  NoSQL þ
  22. 22. RessourcenJSF2.2 (JSR-344) http://jcp.org/en/jsr/detail?id=344CDI (JSR-299) http://docs.jboss.org/cdi/spec/1.0/html_singlejQuery http://jquery.com http://datatables.netDozer http://dozer.sourceforge.netLombok http://projectlombok.orgSpring Data http://www.springsource.org/spring-dataBean Validation http://hibernate.org/subprojects/validator
  23. 23. Vielen Dank für Ihre Aufmerksamkeit

×