Your SlideShare is downloading. ×
Java EE is back in Town
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Java EE is back in Town

788

Published on

Die Java Enterprise Edition erlebt derzeit eine wahre Renaissance – und dies zurecht. Und auch das viel gescholtene Komponentenmodell EJB ist spätestens seit der Version 3.0 wieder salonfähig, bekommt …

Die Java Enterprise Edition erlebt derzeit eine wahre Renaissance – und dies zurecht. Und auch das viel gescholtene Komponentenmodell EJB ist spätestens seit der Version 3.0 wieder salonfähig, bekommt mit CDI aber Konkurrenz aus den eigenen Reihen. Die Session zeigt, dass Java EE dank der Umorientierung hin zu "Ease of Development" und "Flexibility" deutlich mehr zu bieten hat als nur eine lose Sammlung von Spezifikationen. Es werden dabei die wichtigsten Neuerungen und Kernkonzepte von Java EE 5/6 erläutert und verdeutlicht, warum genau jetzt der richtige Zeitpunkt ist, auf Java EE zu setzen.

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

  • Be the first to like this

No Downloads
Views
Total Views
788
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
21
Comments
0
Likes
0
Embeds 0
No embeds

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
  • \n
  • \n
  • \n
  • Java EE v5 (JSR 244): Mai 2006\n Servlet 2.5, JSP 2.1 / JSF 1.2, EJB 3.0\n\nJava EE v6 (JSR 316): Dezember 2009\n Servlet 3.0, JSP 2.1 MR / JSF 2.0. EJB 3.1, JPA 2.0, CDI\n
  • AGENDA\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Entwicklung, \nKonfiguration\nDeployment\n\nViele Bücher sind eher ein Zeichen für Komplexität statt Beliebtheit!\n
  • Vorgegebene Ableitungshierarchie -> keine Pojos möglich, kein Unit-Testing\nSchichtenspezifische Lösungen (Validierung, Entitäten)\nPersistence = Worst case scenario\n
  • Sehr schlechte Lernkurve Lernkurve\nEntwicklung, da Komplexiät\nLaufzeit, da Runtime Overhead\n
  • Patterns ohne Ende\nCode ohne Ende\nXML ohne Ende\nFehlende Testbarkeit dank Ableitungshierarchie \nContainer Managed Persistence als größtes Problem\n
  • Problem: Alles Technologien und Ansätze, die nicht in der Praxis erprobt sind\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Praxiserprobte Lösungen aus der Community für die Community.\nSehr gute Idee ABER Proprietär!\n
  • Praxiserprobte Lösungen aus der Community für die Community.\nSehr gute Idee ABER Proprietär!\n
  • Praxiserprobte Lösungen aus der Community für die Community.\nSehr gute Idee ABER Proprietär!\n
  • Praxiserprobte Lösungen aus der Community für die Community.\nSehr gute Idee ABER Proprietär!\n
  • Community erprobtes fließt in den Standard.\nStandard und Open Source Community arbeiten „Hand in Hand“\nDas ist der Schlüssel zum Erfolg.\n
  • \n
  • \n
  • \n
  • Teil 1: Ease of Development\n
  • Teil 1: Ease of Development\nConvention over Code & Configuration\n
  • Grundidee: Weniger ist mehr (Produktivität)\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Teil 1: Ease of Development\nDeployment OHNE XML\n\nWeniger ist mehr ... Ist weniger!\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Teil 1: Ease of Development\nDependency Injection\nHollywoodprinzip: „Don‘t call us – we call you“\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Sinnvolle Defaults\nWeniger Code – weniger Fehler\n
  • Auflösung von Abhängigkeiten übernimmt Laufzeitumgebung\n \n „Abhängigkeiten“ sind ausgewählte \n Membervariablen und/oder (Field-Injection)\n Setter-Methoden und/oder (Setter-Injection)\n Konstruktoren (Constructor-Injection)\n \n Ausgangsbasis Annotationen\n @Resource\n @EJB\n @Inject\n \n Optionales Management via XML er\n
  • Teil 1: Ease of Development\nSimple Objekte statt komplexe, technologiebedingte Vererbungshierarchien \nVorteil: Testbarkeit!\n
  • TESTBARKEIT!\n
  • Testbarkeit\n
  • Testbarkeit\n
  • \n
  • Java EE 5 – Das Problem\n Vollständiger Stack ist nach wir vor komplex\n Real Life Projekt nutzen oft nur „Teil-Stacks“\n \nJava EE 6 – Die Lösung\n Anbieten von „Smart-Stacks“\n Java EE Profiles als Basis\n EJB Lite als „leichgewichtige“ EJB Variante\n
  • Web Anwendungen\nWeb Services\nIntegrationsprojekte\nPortale\nRich Client Server Backend\n
  • EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • JTA, einige JSR 250 Annotationen und JNDI „java:“ Naming Context sind Base Proifle \n http://it-republik.de/jaxenter/artikel/Java-EE-6-Web-Profile-3529.html\n \n EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • EJB Lite\n \n Basis für „Web Server Java EE“\n Web Container als Runtime\n EJB Deployment im WAR\n
  • \n
  • \n
  • \n
  • Typensicheres DI: Types, Qualifier\nLoose Koppelung: Events, Interceptors, Decorators\nSichtbarkeiten: Context, Scopes, Lifecycle Awareness\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Expert Group ist „gerade“ gegründet. \n
  • Expert Group ist „gerade“ gegründet. \n
  • Expert Group ist „gerade“ gegründet. \n
  • Expert Group ist „gerade“ gegründet. \n
  • Convention over Code/Configuration\nDependency Injection\nPlain old Java / Keep it simple (Pojos = Testbarkeit)\nFlexibility (via Profiles)\n\n
  • \n
  • \n
  • Transcript

    • 1. JavaEE is back in Townpowered byLars Röwekamp Java EE EE Ja va
    • 2. J2EE 2003“oh nooo!“
    • 3. Java EE 2010 “oh yeah!“
    • 4. What was the Deal about?Walk of Pain.Walk of Fame.What‘s next?
    • 5. The Deal:Business, not Infrastructure
    • 6. I‘ am aBusinessDeveloper
    • 7. „The Java™ Platform, Enterprise Edition (J2EE) reduces the cost and complexity of developing multitier, enterprise services. Java EE applications can be rapidly deployed and easily enhanced as the enterprise responds to competitive pressures.“Zitat: Java™ Platform, Enterprise Edition (J2EE) Specification, v1.4
    • 8. „The Java™ Platform, Enterprise Edition (J2EE) reduces the cost and complexity of developing multitier, enterprise services. Java EE applications can be rapidly deployed and easily enhanced as the enterprise responds to competitive pressures.“Zitat: Java™ Platform, Enterprise Edition (J2EE) Specification, v1.4
    • 9. J2EE?Walk of WT #?*K ! Pain
    • 10. Schneller! Höher! Weiter!
    • 11. Schneller! Höher!Aber wohin? Weiter!
    • 12. Nix alsProbleme ...
    • 13. ProblemfeldKomplexität 12
    • 14. Problemfeldtech. Schwachstellen 13
    • 15. ProblemfeldPerformance 14
    • 16. HauptproblemfeldEnterprise JavaBeans 15
    • 17. ! ore EJBNo m No more y! p lexit Com
    • 18. B! or e EJ No m No more y! it plex ComNo more J2EE ! rCo ntaine
    • 19. ... but ...much more FUN, pleeeeease!
    • 20. Walk of PainProblem: „Komplexität & tech. Schwachstellen“
    • 21. Walk of Pain Antwort I: „Patterns“Problem: „Komplexität & tech. Schwachstellen“
    • 22. Walk of Pain Antwort II: „Alternativen“Problem: „Komplexität & tech. Schwachstellen“
    • 23. Proprietary Problem Solution Innovation ??? nity CommunityCommu k c Solution Feedba
    • 24.  Spring Framework Hibernate Google Guice Hivemind Pico Proprietary Problem Solution Innovation ??? nity Community Commu k c Solution Feedba
    • 25.  Spring Framework Hibernate Google Guice Hivemind Pico Proprietary Problem Solution Innovation ??? nity Community Commu k c Solution Feedba
    • 26.  Spring Framework Hibernate Google Guice Hivemind Pico Standards based on Problem Community Innovation Solutions nity Community Commu k c Solution Feedba JAVA EE
    • 27. Walk of Fame
    • 28. Ease of Development & Flexibility
    • 29. EoD:Convention over ...
    • 30. Weniger ist mehr ...
    • 31. EoD: Convention over ... @ManagedBean public class LoginBean { private String userName; private String passwordName; ... }
    • 32. EoD: Convention over ... @ManagedBean(name=“loginBean“) @RequestScoped public class LoginBean { private String userName; private String passwordName; ... }
    • 33. EoD: Convention over ... @Stateful public class ShoppingBean { private List<Items> items; public void addItem(Item item) {...}; ... }
    • 34. EoD: Convention over ... @Stateful public class ShoppingBean implements ... { private List<Items> items; // Transactional by default public void addItem(Item item) {...}; ... }
    • 35. EoD: Convention over ...@Stateless(name=“MyEjb“)@Local(MyInterface)@PermitAll@TransactionManagement(value= TransactionManagementType.CONTAINER)public class MyEjb implements MyInterface { @TranactionAttribute(value=REQUIRED) public void myBusinessMethid() { // some implementation } ...}
    • 36. EoD: Convention over ...@Stateless(name=“MyEjb“)@Local(MyInterface)@PermitAll@TransactionManagement(value= TransactionManagementType.CONTAINER)public class MyEjb implements MyInterface { @TranactionAttribute(value=REQUIRED) public void myBusinessMethid() { // some implementation } ...}
    • 37. <empty /> *)
    • 38. <empty /> *) *) XML optional nutzbar
    • 39. EoD: XML-less Deployment ... package de.openknowledge.shop @WebServlet(name=“ShopServlet“, urlPattern=“/doShopping“) public class ShoppingServlet implements HttpServlet { ... }
    • 40. EoD: XML-less Deployment ... package de.openknowledge.shop @WebServlet(name=“ShopServlet“, urlPattern=“/doShopping“) public class ShoppingServlet implements HttpServlet { <!--Deployment descriptor web.xml --> ... <web-app> <servlet> } <servlet-name>ShopServlet</servlet-name> <servlet-class> de.openknowledge.shop.ShoppingServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>ShopServlet</servlet-name> <url-pattern>/doShopping</url-pattern> </servlet-mapping> ... </web-app>
    • 41. EoD: XML-less Deployment ... package de.openknowledge.shop @WebServlet(name=“ShopServlet“, urlPattern=“/doShopping“) public class ShoppingServlet implements HttpServlet { <!--Deployment descriptor web.xml --> ... <web-app> <servlet> } <servlet-name>ShopServlet</servlet-name> <servlet-class> de.openknowledge.shop.ShoppingServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>ShopServlet</servlet-name> <url-pattern>/doShopping</url-pattern> </servlet-mapping> ... </web-app>
    • 42. EoD:DependencyInjection
    • 43. EoD: Dependency Injection ... @WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet implements HttpServlet { public void doGet() { DataSource ds = (DataSource)ServiceLocator.lookup( “jdbc/myDataSource“ ); ds.getConnection(); ... } }
    • 44. EoD: Dependency Injection ... @WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet implements HttpServlet { public void doGet() { DataSource ds = (DataSource)ServiceLocator.lookup( “jdbc/myDataSource“ ); ds.getConnection(); ... } }
    • 45. EoD: Dependency Injection ... @WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet implements HttpServlet { public void doGet() { DataSource ds = (DataSource)ServiceLocator.lookup( “jdbc/myDataSource“ ); ds.getConnection(); ... } }
    • 46. EoD: Dependency Injection ... @WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet implements HttpServlet { @Resource(“jdbc/myDataSource“) private DataSource ds; public void doGet() { ds.getConnection(); ... } ... }
    • 47. EoD:Plain old Java Objects
    • 48. EoD: Plain old Java Objects ...
    • 49. EoD: Dependency Injection ... public interface SCart { public void addItem(Item item); } @Stateful(name=“ShoppingCart“) public class SCartEJB implements SCart { private List<Items> items; public void addItem(Item item) {...}; ... }
    • 50. EoD: Dependency Injection ... public interface SCart { public void addItem(Item item); } @Stateful(name=“ShoppingCart“) public class SCartEJB implements SCart { private List<Items> items; public void addItem(Item item) {...}; ... }
    • 51. EoD: Dependency Injection ... public interface SCart { public void addItem(Item item); } @Stateful(name=“ShoppingCart“) public class SCartEJB implements SCart { private List<Items> items; public void addItem(Item item) {...}; ... }
    • 52. Ease of Development & Flexibility
    • 53. Flexibility: API Overloading
    • 54. Different NeedsDifferent Profiles
    • 55. Flexibility: Java EE Profiles
    • 56. Flexibility: Java EE Profiles
    • 57. Flexibility: Java EE Profiles
    • 58. Flexibility: Java EE Profiles
    • 59. Flexibility: EJB Lite Session Beans JPA 2.0 Local & None Interceptors Tx & Security
    • 60. Flexibility: EJB Lite MDB Entity Beans Remote Web Services Timer & Async
    • 61. Flexibility:Component Models
    • 62. Enterprise JavaBeansFlexibility:Component Models
    • 63. Enterprise JavaBeans Life Cycle Mmgt. Instance Pooling Concurrency Transaction Security Scoping ...Flexibility:Component Models
    • 64. Flexibility:Component Models CDI Beans
    • 65. Flexibility:Component Models CDI Beans Life Cycle Mmgt. Scoping ... AND ... *** Extensibility ***
    • 66. Flexibility:Component Models CDI Konzepte
    • 67. Flexibility:Component Models CDI Konzepte Typensicher DI (Stereotypes, Qulifier) Loose Koopelung (Events, Interceptors) Sichtbarkeiten (Sopes, LifeCycle ) „FACHLICHE INJECTION“
    • 68. Java EE 7
    • 69. Java EE 7„The Cloud Edition“
    • 70. Java EE 7„The Cloud Edition“Easely operate on Clouds Latest Web Standards PaaS Support Multi-Tenancy Elasticity Modularity Versioning
    • 71. ...
    • 72. Java EE 7 ...
    • 73. Java EE 7„The Cloud Edition“ ...
    • 74. Java EE 7„The Cloud Edition“ Expression Language 3.0Java Messaging Service 2.0 Java Server Faces 2.2 Java Persistence API 2.1 CDI 1.1 JAX-RS 2.0 Web Sockets Java JSON API Cuncurrency & Caching ...
    • 75. Java EE 7
    • 76. Java EE 7„The Cloud Edition“
    • 77. Java EE 7„The Cloud Edition“ „Ja“
    • 78. Java EE 7„The Cloud Edition“ „Ja“ (a.k.a. Q3 / 2012)
    • 79. StartUpgradeSwitch Java EE EE Ja va
    • 80. Gibt es nochFragen?Dann los ...

    ×