Java EE 6Umstieg und Migration
EE 6: Umstieg und Migration !     Prinzipiell sind wir !       ohne Java EE 6 !         zufrieden.!               !
EE 6: Umstieg und Migration !                ! Allerdings wird in letzter Zeit!viel über Java EE 6 gesprochen.!           ...
EE 6: Umstieg und Migration !             !    Und Feature X sieht !      auch gut aus... !               !
EE 6: Umstieg und Migration !            ! Lohnt sich der Umstieg?!Und wie komme ich da hin?!              !
EE 6: Umstieg und Migration !               Disclaimer!           No offense, please!!
Agenda!•    Warum?•    Wohin?•    Wie – High Level?•    Wie – Low Level?     –  Persistenz?     –  Business?     –  Presen...
Agenda!•    Warum?•    Wohin?•    Wie – High Level?•    Wie – Low Level?     –  Persistenz?     –  Business?     –  Presen...
Warum migrieren?!Gründe für eine Technologiemigration•  Fehlender Support•  Niedrige Entwicklungsgeschwindigkeit•  Fehlend...
Hmm!    Hab ich ein Problem?
Agenda!•    Warum?•    Wohin?•    Wie – High Level?•    Wie – Low Level?     –  Persistenz?     –  Business?     –  Presen...
Java EE 6: Technologien!
Java EE 6: Technologien!Klassische IST Situation (I/II)  –  Data Access Tier     •  Standard: JDBC, CMP, BMP, JPA, „JDO“  ...
Java EE 6: Technologien!Klassische IST Situation (II/II)  –  Presentation Tier     •  Standard: JSP + Servlets, JSF 1.2, „...
Java EE 6: Technologien!Java EE 6 Technologie Stack  –  Data Access Tier     •  JDBC, JPA, (CMP), JCA  –  Business Tier   ...
Java EE 6: Technologien!JSF 2.0CDI 1.0CDI 1.0EJB 3.1JPA 2.0
Agenda!•    Warum?•    Wohin?•    Wie – High Level?•    Wie – Low Level?     –  Persistenz?     –  Business?     –  Presen...
Migrationsansätze!•  Migrationsansätze  –  Vollständige Migration  –  Schichtenorientierte Migration  –  Modulorientierte ...
Migrationsansätze!•  Vollständige Migration  –  Einmalige Migration der gesamten Anwendung  –  Entspricht faktisch einmali...
Migrationsansätze!•  Schichtenorientierte Migration  –  An Schichten orientierter Migrationsansatz  –  Komplexitäten     •...
Migrationsansätze!•  Modulorientierte Migration  –  An fachlichen Modulen orientierter     Migrationsansatz  –  Migration ...
Agenda!•    Warum?•    Wohin?•    Wie – High Level?•    Wie – Low Level?     –  Persistenz?     –  Business?     –  Presen...
Persistenz Tier Migration!•  Ausgangstechnologien/Ansätze  –  Pure SQL/JDBC Persistenz  –  EJB 2.x Persistenz (CMP, BMP)  ...
Persistenz Tier Migration - JDBC!IST Status SQL/JDBC Persistenz  –  Datenbankspezifische SQL Abfragen  –  I.d.R DAO/Reposi...
Persistenz Tier Migration - JDBC!SQL/JDBC -> JPA Herausforderungen  –  Einführung eines reichen Domain Modells  –  Übergre...
Persistenz Tier Migration – EJB 2!IST Status EJB 2.x Persistenz  –  Allgemein    •  EJB 2.x Pattern    •  EJB 2.x Overhead...
Persistenz Tier Migration – EJB 2!EJB 2.x -> JPA Herausforderungen  –  Nutzung von „new Object()“  –  Einführung eines rei...
Persistenz Tier Migration - JDO!IST Status JDO Persistenz  –  POJO Ansatz analog zu JPA    •  Eventuell annotationsbasiert...
Persistenz Tier Migration - JDO!JDO -> JPA Herausforderungen  –  JDO und JPA weisen Ähnlichkeiten auf,     aber:    •  JPA...
Persistenz Tier Migration - HBM!IST Status Hibernate Persistenz  –  O/R Mapping via XML Deployment     Deskriptoren, ohne ...
Persistenz Tier Migration - HBM!Hibernate -> JPA Herausforderungen  –  Faktisch keine Herausforderungen  –  Eventuell prop...
Persistenz Tier Migration!Zwischenfazit Persistenz  –  Migration nur, wenn Domain Modell weiterhin     Änderungen unterlie...
Agenda!•    Warum?•    Wohin?•    Wie – High Level?•    Wie – Low Level?     –  Persistenz?     –  Business?     –  Presen...
Business Tier Migration!•  Ausgangstechnologien/Ansätze  –  EJB 2.x  –  Spring Framework  –  Eigenes Komponenten Framework...
Business Tier Migration EJB 2.x!•  IST Status EJB 2.x Komponenten  –  Komponenten mit Hilfe von    •  EJB 2.x Stateless Se...
Business Tier Migration EJB 2.x!•  EJB 2.x –> EJB 3.x Herausforderungen  –  Faktisch keine, aber     •  Entfernung Infrast...
Business Tier Migration EJB 2.x!•  EJB 2.x –> CDI Herausforderungen  –  Faktisch keine, aber     •  Entfernung Infrastrukt...
Business Tier Migration Spring!•  IST Status Spring Komponenten  –  Leichtgewichtiges DI Framework    •  XML-basiert oder ...
Business Tier Migration Spring!•  Spring –> EJB 3.x Herausforderungen  –  Nicht zu empfehlen... ;)
Business Tier Migration Spring!•  Spring –> CDI Herausforderungen  –  Leicht unterschiedliche Semantik im Bereich     von ...
Business Tier Migration Custom!•  IST Status Custom Komponenten  –  Selbsterstelltes Service Framework mit     Unterstützu...
Business Tier Migration Custom!•  Custom–> EJB 3.x/CDI Herausforderungen  –  Ablösung von Ressource Lookup    •  Einführun...
Business Tier Migration!•  Zwischenfazit  –  Migration nur, wenn Anwendung weiterhin     Änderungen unterliegt oder andere...
Agenda!•    Warum?•    Wohin?•    Wie – High Level?•    Wie – Low Level?     –  Persistenz?     –  Business?     –  Presen...
Presentation Tier Migration!•  Ausgangstechnologien/Ansätze  –  Jakarta Struts     •  (Stellvertretend für Action Framewor...
Presentation Tier Migration!•  IST Status Struts Visualisierung  –  Abstraktion HTTP Request/Response Modell  –  Überführu...
Presentation Tier Migration!•  Struts -> JSF Herausforderungen  –  Unterschiede Frameworkansätze    •  Action vs. Eventori...
Presentation Tier Migration!•  Zwischenfazit  –  Web Migration bedeutet in der Regel ein     Komplettaustausch der gesamte...
EE 6: Umstieg und Migration !              !            Fazit!                !
Fazit!         !Keine Sex Appeal!    Migration!!           !             !
Fazit!•  Technische Migration ist möglich  –  Business Tier unproblematisch  –  Persistence und Presentation Tier in der R...
Upcoming SlideShare
Loading in...5
×

Java EE 6: Umstieg und Migration

1,287

Published on

Bei allem Sex-Appeal einer Technologie stellt sich immer wieder die Frage, wie man diese im konkreten Projektumfeld einführen kann. Diese Session stellt daher Strategien vor, wie bestehende Enterprise-Java-Anwendungen (EJB 2.x, Spring, Struts etc.) schrittweise zum Java-EE-6-Technologie-Stack migriert werden können. Neben unterschiedlichen Ansätzen für die technologischen Bausteine der Java-EE-6-Plattform thematisiert diese Session auch Kriterien, die eine Migration erschweren bzw. verhindern oder kaum sinnvoll erscheinen lassen.

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

No Downloads
Views
Total Views
1,287
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Java EE 6: Umstieg und Migration

  1. 1. Java EE 6Umstieg und Migration
  2. 2. EE 6: Umstieg und Migration ! Prinzipiell sind wir ! ohne Java EE 6 ! zufrieden.! !
  3. 3. EE 6: Umstieg und Migration ! ! Allerdings wird in letzter Zeit!viel über Java EE 6 gesprochen.! !
  4. 4. EE 6: Umstieg und Migration ! ! Und Feature X sieht ! auch gut aus... ! !
  5. 5. EE 6: Umstieg und Migration ! ! Lohnt sich der Umstieg?!Und wie komme ich da hin?! !
  6. 6. EE 6: Umstieg und Migration ! Disclaimer! No offense, please!!
  7. 7. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  8. 8. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  9. 9. Warum migrieren?!Gründe für eine Technologiemigration•  Fehlender Support•  Niedrige Entwicklungsgeschwindigkeit•  Fehlendes / nicht verfügbares Know-How•  Fehlender Funktionsumfang•  Komplexität, Performance, Integration, ...•  Sex Appeal ;)
  10. 10. Hmm! Hab ich ein Problem?
  11. 11. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  12. 12. Java EE 6: Technologien!
  13. 13. Java EE 6: Technologien!Klassische IST Situation (I/II) –  Data Access Tier •  Standard: JDBC, CMP, BMP, JPA, „JDO“ •  Non-Standard: Hibernate, iBatis, ..., eigener OR- Mapper –  Business Tier •  Standard: Java SE, Enterprise JavaBeans 2.x+ •  Non-Standard: Spring, Guice, eigenes Komponentenframework
  14. 14. Java EE 6: Technologien!Klassische IST Situation (II/II) –  Presentation Tier •  Standard: JSP + Servlets, JSF 1.2, „Portlets“ •  Non-Standard: Struts, GWT, Wicket, eigenes Web Framework (JSP, Velocity, ...) ... –  Access Tier •  Standard: RMI, JAX-RPC, JAX-WS •  Non-Standard: „x over HTTP“, Web Service Framework
  15. 15. Java EE 6: Technologien!Java EE 6 Technologie Stack –  Data Access Tier •  JDBC, JPA, (CMP), JCA –  Business Tier •  CDI, Enterprise JavaBeans –  Presentation Tier •  JSF 2.0, JSP, Servlets, ... CDI –  Access Tier •  RMI, JAX-WS, JAX-RS
  16. 16. Java EE 6: Technologien!JSF 2.0CDI 1.0CDI 1.0EJB 3.1JPA 2.0
  17. 17. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  18. 18. Migrationsansätze!•  Migrationsansätze –  Vollständige Migration –  Schichtenorientierte Migration –  Modulorientierte Migration
  19. 19. Migrationsansätze!•  Vollständige Migration –  Einmalige Migration der gesamten Anwendung –  Entspricht faktisch einmaliger Neuentwicklung –  Komplexitäten •  „Neuentwicklung“ •  I.d.R. Entwicklungsstopp während Migration
  20. 20. Migrationsansätze!•  Schichtenorientierte Migration –  An Schichten orientierter Migrationsansatz –  Komplexitäten •  „Mehrmalige“ Migration mit damit verbundenen Test- und Abnahmeprozessen •  Migration einer Schicht beeinflusst darüberliegende Schichten
  21. 21. Migrationsansätze!•  Modulorientierte Migration –  An fachlichen Modulen orientierter Migrationsansatz –  Migration „on demand“ –  Komplexitäten •  Abgrenzung fachlicher Module •  „Mischbetrieb alter und neuer Welt“
  22. 22. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  23. 23. Persistenz Tier Migration!•  Ausgangstechnologien/Ansätze –  Pure SQL/JDBC Persistenz –  EJB 2.x Persistenz (CMP, BMP) –  Java Data Objects –  Hibernate•  Zieltechnologie –  JPA
  24. 24. Persistenz Tier Migration - JDBC!IST Status SQL/JDBC Persistenz –  Datenbankspezifische SQL Abfragen –  I.d.R DAO/Repository Pattern –  Bereitstellung von Value Objects •  Selten reiches Domain Modell, entsprechen i.d.R. Datenbanktabellen •  Navigation zu „related Entities“ über Primärschlüssel •  Concurrent Update Behandlung?
  25. 25. Persistenz Tier Migration - JDBC!SQL/JDBC -> JPA Herausforderungen –  Einführung eines reichen Domain Modells –  Übergreifendes Domain Modell mit Beziehungen zwischen fachlichen Modulen –  Komplexe Umstellung bei fehlendem Data Access Layer (DAO) •  Leaking SQL –  Umgang mit Detached Entitäten –  Zusicherung der Identität
  26. 26. Persistenz Tier Migration – EJB 2!IST Status EJB 2.x Persistenz –  Allgemein •  EJB 2.x Pattern •  EJB 2.x Overhead (Interfaces, Deskriptoren) –  CMP 2.x •  CMP 2.x Entity Klassen •  CMP 2.x XML Descriptor –  BMP 2.x •  Umsetzung von BMP CRUD Callback Methoden
  27. 27. Persistenz Tier Migration – EJB 2!EJB 2.x -> JPA Herausforderungen –  Nutzung von „new Object()“ –  Einführung eines reichen Domain Modells –  Übergreifendes Domain Modell mit Beziehungen zwischen fachlichen Modulen –  Technologieneutraler Data Access Layer •  Entfernung von Infrastruktur Code –  Umgang mit Detached Entitäten
  28. 28. Persistenz Tier Migration - JDO!IST Status JDO Persistenz –  POJO Ansatz analog zu JPA •  Eventuell annotationsbasiert •  Eventuell konfigurationsbasiert –  I.d.R Enhancer im Rahmen des Build Prozesses notwendig
  29. 29. Persistenz Tier Migration - JDO!JDO -> JPA Herausforderungen –  JDO und JPA weisen Ähnlichkeiten auf, aber: •  JPA Featureset kleiner als JDO Feature Set •  Einführung von JPA führt zu detached Entity Problemen •  I.d.R. kommen bei JDO zahlreiche providerspezifische Extensions zum Einsatz
  30. 30. Persistenz Tier Migration - HBM!IST Status Hibernate Persistenz –  O/R Mapping via XML Deployment Deskriptoren, ohne Annotation –  Nutzung von org.hibernate APIs –  Featureset entspricht weitestgehend JPA
  31. 31. Persistenz Tier Migration - HBM!Hibernate -> JPA Herausforderungen –  Faktisch keine Herausforderungen –  Eventuell proprietäre Hibernate Features •  ID Generierung •  Formula •  Query by Example •  Bestimmte Mappings...
  32. 32. Persistenz Tier Migration!Zwischenfazit Persistenz –  Migration nur, wenn Domain Modell weiterhin Änderungen unterliegt •  JDO Migration selten sinnvoll •  Hibernate Migration auf jeden Fall umsetzen –  Das Domain Modell steht im Fokus, daher •  Fehlt ein Domain Modell, so gestaltet sich die Migration schwierig •  Existiert schon ein reiches Domain Modell, so ist die Migration machbar
  33. 33. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  34. 34. Business Tier Migration!•  Ausgangstechnologien/Ansätze –  EJB 2.x –  Spring Framework –  Eigenes Komponenten Framework•  Zieltechnologie –  EJB –  CDI
  35. 35. Business Tier Migration EJB 2.x!•  IST Status EJB 2.x Komponenten –  Komponenten mit Hilfe von •  EJB 2.x Stateless Session Beans •  EJB 2.x Stateful Session Beans –  Allgemein •  EJB 2.x Pattern •  EJB 2.x Overhead •  EJB 2.x Kommunikation
  36. 36. Business Tier Migration EJB 2.x!•  EJB 2.x –> EJB 3.x Herausforderungen –  Faktisch keine, aber •  Entfernung Infrastrukturcode •  Entfernung J2EE Pattern •  Ggfs. Entfernung Remoting
  37. 37. Business Tier Migration EJB 2.x!•  EJB 2.x –> CDI Herausforderungen –  Faktisch keine, aber •  Entfernung Infrastrukturcode •  Entfernung J2EE Pattern •  EJB Add On Funktionalität •  Kein Remoting
  38. 38. Business Tier Migration Spring!•  IST Status Spring Komponenten –  Leichtgewichtiges DI Framework •  XML-basiert oder •  Annotations-basiert –  Starke Integrationsunterstützung •  JDBC Template, Transaktion Template, JMS Template, Mail Template –  Unterstützung ausgewählter Java EE Annotationen •  Resource, Inject, ...
  39. 39. Business Tier Migration Spring!•  Spring –> EJB 3.x Herausforderungen –  Nicht zu empfehlen... ;)
  40. 40. Business Tier Migration Spring!•  Spring –> CDI Herausforderungen –  Leicht unterschiedliche Semantik im Bereich von Scopes –  Beide Frameworks unterstützen @Inject –  Problembereich Spring Add-On Funktionalität (alle org.sf Importe)
  41. 41. Business Tier Migration Custom!•  IST Status Custom Komponenten –  Selbsterstelltes Service Framework mit Unterstützung von •  Komponenten Lookup •  Komponenten Management •  Komponenten Lifecycle
  42. 42. Business Tier Migration Custom!•  Custom–> EJB 3.x/CDI Herausforderungen –  Ablösung von Ressource Lookup •  Einführung von DI –  Überführung der Konfiguration •  Insbesondere DB basierte Konfiguration
  43. 43. Business Tier Migration!•  Zwischenfazit –  Migration nur, wenn Anwendung weiterhin Änderungen unterliegt oder andere Schichten migriert werden sollen •  Migration von Spring zu XX kann man machen, muss man aber nicht •  Migration zu CDI auf jeden Fall sinnvoll –  Komplexität steigt bei Framework- abhängigkeiten, die über Dependency Injection hinaus gehen
  44. 44. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  45. 45. Presentation Tier Migration!•  Ausgangstechnologien/Ansätze –  Jakarta Struts •  (Stellvertretend für Action Frameworks)•  Zieltechnologie –  JSF
  46. 46. Presentation Tier Migration!•  IST Status Struts Visualisierung –  Abstraktion HTTP Request/Response Modell –  Überführung von HTML Formularparametern in Framework Formularrepräsentation –  Delegation an Action Methoden –  Dispatching zu Views
  47. 47. Presentation Tier Migration!•  Struts -> JSF Herausforderungen –  Unterschiede Frameworkansätze •  Action vs. Eventorientiertes Framework •  Webframework Basisklassen •  Validierung •  Integration in Backend Technologie •  Viewtechnologie –  Umgang mit HTTP Scopes •  Request, Session, Application
  48. 48. Presentation Tier Migration!•  Zwischenfazit –  Web Migration bedeutet in der Regel ein Komplettaustausch der gesamten Schicht •  Modulorientierte Migration andenken, Übergabepunkte identifizieren und ausnutzen –  Komplexität der Migration aufgrund großer technologischer Unterschiede bisweilen migrationsverhindernd
  49. 49. EE 6: Umstieg und Migration ! ! Fazit! !
  50. 50. Fazit! !Keine Sex Appeal! Migration!! ! !
  51. 51. Fazit!•  Technische Migration ist möglich –  Business Tier unproblematisch –  Persistence und Presentation Tier in der Regel komplex•  Nichttechnischen Randbedingungen: –  Nahezu alle J2EE 1.4 Pattern sind ungültig –  JPA mächtiger als EJB 2.x CMP
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×