Java EE 6: Umstieg und Migration
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Java EE 6: Umstieg und Migration

  • 1,658 views
Uploaded 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......

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,658
On Slideshare
1,574
From Embeds
84
Number of Embeds
1

Actions

Shares
Downloads
14
Comments
0
Likes
2

Embeds 84

http://www.openknowledge.de 84

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Java EE 6Umstieg und Migration
  • 2. EE 6: Umstieg und Migration ! Prinzipiell sind wir ! ohne Java EE 6 ! zufrieden.! !
  • 3. EE 6: Umstieg und Migration ! ! Allerdings wird in letzter Zeit!viel über Java EE 6 gesprochen.! !
  • 4. EE 6: Umstieg und Migration ! ! Und Feature X sieht ! auch gut aus... ! !
  • 5. EE 6: Umstieg und Migration ! ! Lohnt sich der Umstieg?!Und wie komme ich da hin?! !
  • 6. EE 6: Umstieg und Migration ! Disclaimer! No offense, please!!
  • 7. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  • 8. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  • 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. Hmm! Hab ich ein Problem?
  • 11. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  • 12. Java EE 6: Technologien!
  • 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. 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. 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. Java EE 6: Technologien!JSF 2.0CDI 1.0CDI 1.0EJB 3.1JPA 2.0
  • 17. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  • 18. Migrationsansätze!•  Migrationsansätze –  Vollständige Migration –  Schichtenorientierte Migration –  Modulorientierte Migration
  • 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. 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. Migrationsansätze!•  Modulorientierte Migration –  An fachlichen Modulen orientierter Migrationsansatz –  Migration „on demand“ –  Komplexitäten •  Abgrenzung fachlicher Module •  „Mischbetrieb alter und neuer Welt“
  • 22. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  • 23. Persistenz Tier Migration!•  Ausgangstechnologien/Ansätze –  Pure SQL/JDBC Persistenz –  EJB 2.x Persistenz (CMP, BMP) –  Java Data Objects –  Hibernate•  Zieltechnologie –  JPA
  • 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. 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. 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. 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. 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. 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. 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. Persistenz Tier Migration - HBM!Hibernate -> JPA Herausforderungen –  Faktisch keine Herausforderungen –  Eventuell proprietäre Hibernate Features •  ID Generierung •  Formula •  Query by Example •  Bestimmte Mappings...
  • 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. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  • 34. Business Tier Migration!•  Ausgangstechnologien/Ansätze –  EJB 2.x –  Spring Framework –  Eigenes Komponenten Framework•  Zieltechnologie –  EJB –  CDI
  • 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. 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. 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. 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. Business Tier Migration Spring!•  Spring –> EJB 3.x Herausforderungen –  Nicht zu empfehlen... ;)
  • 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. Business Tier Migration Custom!•  IST Status Custom Komponenten –  Selbsterstelltes Service Framework mit Unterstützung von •  Komponenten Lookup •  Komponenten Management •  Komponenten Lifecycle
  • 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. 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. Agenda!•  Warum?•  Wohin?•  Wie – High Level?•  Wie – Low Level? –  Persistenz? –  Business? –  Presentation?
  • 45. Presentation Tier Migration!•  Ausgangstechnologien/Ansätze –  Jakarta Struts •  (Stellvertretend für Action Frameworks)•  Zieltechnologie –  JSF
  • 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. 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. 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. EE 6: Umstieg und Migration ! ! Fazit! !
  • 50. Fazit! !Keine Sex Appeal! Migration!! ! !
  • 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