Schlanke Webarchitekturennicht nur mit JSF 2 & CDIAndreas Hartmann & Stephan Mülleradesso AG
AgendaArchitektur Vision  Querschnittsfunktionen    Technologie Stack    Schlanke Webarchitekturen    Technologien im Deta...
Architektur Vision
3 Layer Reflex                             Over-Presentation-Layer       <<GUI>>                          engineering     ...
Cross-Sectional Tasks
Technology Stack
Schlanke Webarchitekturen                   Tiny Enterprise Applications     Client Tier                                Mi...
Schlanke Webarchitekturen             Large Scale Enterprise Applications   Client Tier                                  M...
Wunschliste für      Dependency Injection ...•  Standardisierte DI für Java   –  Wiederverwendbarkeit   –  Testbarkeit   –...
Context and Dependency             Injection•  CDI 1.0 (JSR-299)   –  typsicheres und schichtenneutrales Injection Framewo...
Context and Dependency             Injection•  CDI Beans ersetzen JSF BeansJSF 2.0 (JSR 314)                   CDI 1.0 (JS...
HTML       •  Einfache Nutzung mit          Facelets und          Composite Components       •  Mit JSF2.2 auch          H...
•  freie, umfangreiche   JavaScript Bibliothek•  komfortable Möglichkeit   zur DOM Manipulation•  Erweiterbarkeit durch   ...
Lombok     •  Reduziert Boilerplate        Code durch Annoations         –    @Getter, @Setter         –    @ToString     ...
Bean Validation          •  Standardisierung von             Constraints in Form von             Annotations          •  S...
Dozer        •  Java Bean to           Java Bean Mapper
Spring Data        •  ermöglicht Zugriff auf           relationale und NoSQL           Datenbanken        •  CDI Integrati...
Apache Deltaspike•  Apache Incubator Projekt•  zentrale Sammelstelle für CDI Erweiterungen   –  u.a. für CODI & Seam3 Modu...
Code-Beispiele•  Exceptionhandling•  Monitoring•  Security
Cloud-Ready•  Deployment bei PaaS/IaaS Providern   –  Amazon Beanstalk / EC2   –  RedHat OpenShift   –  VMware Cloud Found...
Cloud-Ready•  Laufzeitumgebung   –  Webcontainer              þ   –  Application Server        ý (þ) nur OpenShift•  Un...
RessourcenJSF2.2 (JSR-344)   http://jcp.org/en/jsr/detail?id=344CDI (JSR-299)      http://docs.jboss.org/cdi/spec/1.0/html...
Vielen Dank für Ihre Aufmerksamkeit
Nächste SlideShare
Wird geladen in …5
×

Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI

2.940 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.940
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
284
Aktionen
Geteilt
0
Downloads
20
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

×