java ee is back in town

89
powered by Lars Röwekamp Java EE Java EE JavaEE is back in Town Dienstag, 10. Mai 2011

Upload: open-knowledge-gmbh

Post on 01-Jul-2015

797 views

Category:

Technology


2 download

DESCRIPTION

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.

TRANSCRIPT

Page 1: Java EE is back in Town

powered byLars Röwekamp Java EE

Java EE

JavaEE is back in Town

Dienstag, 10. Mai 2011

Page 2: Java EE is back in Town

J2EE 2003

“oh nooo!“

Dienstag, 10. Mai 2011

Page 3: Java EE is back in Town

Java EE 2010

“oh yeah!“

Dienstag, 10. Mai 2011

Page 4: Java EE is back in Town

What was the Deal about?Walk of Pain. Walk of Fame. What‘s next?

Dienstag, 10. Mai 2011

Page 5: Java EE is back in Town

The Deal: Business, not Infrastructure

Dienstag, 10. Mai 2011

Page 6: Java EE is back in Town

I‘ am a

BusinessDeveloper

Dienstag, 10. Mai 2011

Page 7: Java EE is back in Town

„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

Dienstag, 10. Mai 2011

Page 8: Java EE is back in Town

„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

Dienstag, 10. Mai 2011

Page 9: Java EE is back in Town

J2EE? WT #?*K !Walk of

Pain

Dienstag, 10. Mai 2011

Page 10: Java EE is back in Town

Schneller!Höher!Weiter!

Dienstag, 10. Mai 2011

Page 11: Java EE is back in Town

Schneller!Höher!Weiter!

Aber wohin?

Dienstag, 10. Mai 2011

Page 12: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 13: Java EE is back in Town

Nix als Probleme ...

Dienstag, 10. Mai 2011

Page 14: Java EE is back in Town

12

ProblemfeldKomplexität

Dienstag, 10. Mai 2011

Page 15: Java EE is back in Town

13

Problemfeldtech. Schwachstellen

Dienstag, 10. Mai 2011

Page 16: Java EE is back in Town

14

ProblemfeldPerformance

Dienstag, 10. Mai 2011

Page 17: Java EE is back in Town

15

HauptproblemfeldEnterprise JavaBeans

Dienstag, 10. Mai 2011

Page 18: Java EE is back in Town

No more EJB!

No more

Complexity!

Dienstag, 10. Mai 2011

Page 19: Java EE is back in Town

No more EJB!

No more

Complexity!

No more

J2EE

Container!

Dienstag, 10. Mai 2011

Page 20: Java EE is back in Town

... but ...

much more FUN, pleeeeease!

Dienstag, 10. Mai 2011

Page 21: Java EE is back in Town

Walk of Pain

Problem: „Komplexität &tech. Schwachstellen“

Dienstag, 10. Mai 2011

Page 22: Java EE is back in Town

Walk of Pain Antwort I: „Patterns“

Problem: „Komplexität &tech. Schwachstellen“

Dienstag, 10. Mai 2011

Page 23: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 24: Java EE is back in Town

Walk of Pain

Problem: „Komplexität &tech. Schwachstellen“

Antwort II: „Alternativen“

Dienstag, 10. Mai 2011

Page 25: Java EE is back in Town

ProblemInnovation

CommunitySolution

Community

Feedback

ProprietarySolution

???

Dienstag, 10. Mai 2011

Page 26: Java EE is back in Town

ProblemInnovation

CommunitySolution

Community

Feedback

ProprietarySolution

???

¡ Spring Framework¡ Hibernate¡ Google Guice¡ Hivemind¡ Pico

Dienstag, 10. Mai 2011

Page 27: Java EE is back in Town

ProblemInnovation

CommunitySolution

Community

Feedback

ProprietarySolution

???

¡ Spring Framework¡ Hibernate¡ Google Guice¡ Hivemind¡ Pico

Dienstag, 10. Mai 2011

Page 28: Java EE is back in Town

ProblemInnovation

Standardsbased on

CommunitySolutions

¡ Spring Framework¡ Hibernate¡ Google Guice¡ Hivemind¡ Pico

¡ JAVA EE

CommunitySolution

Community

Feedback

Dienstag, 10. Mai 2011

Page 29: Java EE is back in Town

Walk of Fame

Dienstag, 10. Mai 2011

Page 30: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 31: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 32: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 33: Java EE is back in Town

Ease of Development & Flexibility

Dienstag, 10. Mai 2011

Page 34: Java EE is back in Town

EoD:Convention over ...

Dienstag, 10. Mai 2011

Page 35: Java EE is back in Town

Weniger ist mehr ...

Dienstag, 10. Mai 2011

Page 36: Java EE is back in Town

@ManagedBean

public class LoginBean {

! private String userName; !private String passwordName; ! ...

}

EoD: Convention over ...

Dienstag, 10. Mai 2011

Page 37: Java EE is back in Town

@ManagedBean(name=“loginBean“) @RequestScoped public class LoginBean {

! private String userName; !private String passwordName; ! ...

}

EoD: Convention over ...

Dienstag, 10. Mai 2011

Page 38: Java EE is back in Town

@Stateful public class ShoppingBean {

! private List<Items> items; !! public void addItem(Item item) {...}; ... }

EoD: Convention over ...

Dienstag, 10. Mai 2011

Page 39: Java EE is back in Town

@Stateful public class ShoppingBean implements ... {

! private List<Items> items; ! // Transactional by default! public void addItem(Item item) {...}; ... }

EoD: Convention over ...

Dienstag, 10. Mai 2011

Page 40: Java EE is back in Town

@Stateless(name=“MyEjb“) @Local(MyInterface) @PermitAll @TransactionManagement(value=

TransactionManagementType.CONTAINER) public class MyEjb implements MyInterface { @TranactionAttribute(value=REQUIRED) public void myBusinessMethid() { // some implementation

} ...

}

EoD: Convention over ...

Dienstag, 10. Mai 2011

Page 41: Java EE is back in Town

@Stateless(name=“MyEjb“) @Local(MyInterface) @PermitAll @TransactionManagement(value=

TransactionManagementType.CONTAINER) public class MyEjb implements MyInterface { @TranactionAttribute(value=REQUIRED) public void myBusinessMethid() { // some implementation

} ...

}

EoD: Convention over ...

Dienstag, 10. Mai 2011

Page 42: Java EE is back in Town

<empty />*)

Dienstag, 10. Mai 2011

Page 43: Java EE is back in Town

<empty />*)

*) XML optional nutzbar

Dienstag, 10. Mai 2011

Page 44: Java EE is back in Town

package de.openknowledge.shop @WebServlet(name=“ShopServlet“, urlPattern=“/doShopping“) public class ShoppingServlet ! ! ! ! implements HttpServlet {

! ...

}

EoD: XML-less Deployment ...

Dienstag, 10. Mai 2011

Page 45: Java EE is back in Town

package de.openknowledge.shop @WebServlet(name=“ShopServlet“, urlPattern=“/doShopping“) public class ShoppingServlet ! ! ! ! implements HttpServlet {

! ...

}

EoD: XML-less Deployment ...

<!--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>

Dienstag, 10. Mai 2011

Page 46: Java EE is back in Town

package de.openknowledge.shop @WebServlet(name=“ShopServlet“, urlPattern=“/doShopping“) public class ShoppingServlet ! ! ! ! implements HttpServlet {

! ...

}

EoD: XML-less Deployment ...

<!--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>

Dienstag, 10. Mai 2011

Page 47: Java EE is back in Town

EoD: Dependency Injection

Dienstag, 10. Mai 2011

Page 48: Java EE is back in Town

@WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet ! ! ! ! implements HttpServlet {

public void doGet() { DataSource ds = (DataSource)ServiceLocator.lookup(! ! ! “jdbc/myDataSource“ );! ds.getConnection(); ...! } }

EoD: Dependency Injection ...

Dienstag, 10. Mai 2011

Page 49: Java EE is back in Town

@WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet ! ! ! ! implements HttpServlet {

public void doGet() { DataSource ds = (DataSource)ServiceLocator.lookup(! ! ! “jdbc/myDataSource“ );! ds.getConnection(); ...! } }

EoD: Dependency Injection ...

Dienstag, 10. Mai 2011

Page 50: Java EE is back in Town

@WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet ! ! ! ! implements HttpServlet {

public void doGet() { DataSource ds = (DataSource)ServiceLocator.lookup(! ! ! “jdbc/myDataSource“ );! ds.getConnection(); ...! } }

EoD: Dependency Injection ...

Dienstag, 10. Mai 2011

Page 51: Java EE is back in Town

@WebServlet(urlPattern=“/doSomething“) public class ShoppingServlet ! ! ! ! implements HttpServlet {

! @Resource(“jdbc/myDataSource“) private DataSource ds;

! public void doGet() { ds.getConnection(); ...! } ... }

EoD: Dependency Injection ...

Dienstag, 10. Mai 2011

Page 52: Java EE is back in Town

EoD:Plain old Java ObjectsDienstag, 10. Mai 2011

Page 53: Java EE is back in Town

EoD: Plain old Java Objects ...

Dienstag, 10. Mai 2011

Page 54: Java EE is back in Town

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) {...}; ... }

EoD: Dependency Injection ...

Dienstag, 10. Mai 2011

Page 55: Java EE is back in Town

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) {...}; ... }

EoD: Dependency Injection ...

Dienstag, 10. Mai 2011

Page 56: Java EE is back in Town

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) {...}; ... }

EoD: Dependency Injection ...

Dienstag, 10. Mai 2011

Page 57: Java EE is back in Town

Ease of Development & Flexibility

Dienstag, 10. Mai 2011

Page 58: Java EE is back in Town

Flexibility: API Overloading

Dienstag, 10. Mai 2011

Page 59: Java EE is back in Town

Different ProfilesDifferent Needs

Dienstag, 10. Mai 2011

Page 60: Java EE is back in Town

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Page 61: Java EE is back in Town

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Page 62: Java EE is back in Town

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Page 63: Java EE is back in Town

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Page 64: Java EE is back in Town

Session Beans

JPA 2.0

Interceptors

Tx & Security

Local & None

Flexibility: EJB Lite

Dienstag, 10. Mai 2011

Page 65: Java EE is back in Town

Flexibility: EJB Lite

MDB

Entity Beans

Web Services

Timer & Async

Remote

Dienstag, 10. Mai 2011

Page 66: Java EE is back in Town

Flexibility: Component Models

Dienstag, 10. Mai 2011

Page 67: Java EE is back in Town

Flexibility: Component Models

Enterprise JavaBeans

Dienstag, 10. Mai 2011

Page 68: Java EE is back in Town

Flexibility: Component Models

Enterprise JavaBeans

Life Cycle Mmgt.

Instance Pooling

Concurrency

Transaction

Security

Scoping

...

Dienstag, 10. Mai 2011

Page 69: Java EE is back in Town

Flexibility: Component Models CDI Beans

Dienstag, 10. Mai 2011

Page 70: Java EE is back in Town

Flexibility: Component Models CDI Beans

Life Cycle Mmgt.

Scoping

... AND ...

*** Extensibility ***

Dienstag, 10. Mai 2011

Page 71: Java EE is back in Town

Flexibility: Component Models CDI Konzepte

Dienstag, 10. Mai 2011

Page 72: Java EE is back in Town

Flexibility: Component Models CDI Konzepte

Typensicher DI(Stereotypes, Qulifier)

Loose Koopelung(Events, Interceptors)

Sichtbarkeiten(Sopes, LifeCycle )

„FACHLICHE INJECTION“

Dienstag, 10. Mai 2011

Page 73: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 74: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 75: Java EE is back in Town

Java EE 7

Dienstag, 10. Mai 2011

Page 76: Java EE is back in Town

Java EE 7

„The Cloud Edition“

Dienstag, 10. Mai 2011

Page 77: Java EE is back in Town

Java EE 7

„The Cloud Edition“

Easely operate on Clouds

Latest Web Standards

PaaS Support

Multi-Tenancy

Elasticity

Modularity

Versioning

Dienstag, 10. Mai 2011

Page 78: Java EE is back in Town

...Dienstag, 10. Mai 2011

Page 79: Java EE is back in Town

Java EE 7

...Dienstag, 10. Mai 2011

Page 80: Java EE is back in Town

Java EE 7

„The Cloud Edition“

...Dienstag, 10. Mai 2011

Page 81: Java EE is back in Town

Java EE 7

„The Cloud Edition“

Expression Language 3.0

Java 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...

Dienstag, 10. Mai 2011

Page 82: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 83: Java EE is back in Town

Java EE 7

Dienstag, 10. Mai 2011

Page 84: Java EE is back in Town

Java EE 7„The Cloud Edition“

Dienstag, 10. Mai 2011

Page 85: Java EE is back in Town

Java EE 7„The Cloud Edition“ „Ja“

Dienstag, 10. Mai 2011

Page 86: Java EE is back in Town

Java EE 7„The Cloud Edition“ „Ja“

(a.k.a. Q3 / 2012)

Dienstag, 10. Mai 2011

Page 87: Java EE is back in Town

Dienstag, 10. Mai 2011

Page 88: Java EE is back in Town

Java EE

Java EE

StartUpgradeSwitch

Dienstag, 10. Mai 2011

Page 89: Java EE is back in Town

Gibt es noch Fragen?

Dann los ...

Dienstag, 10. Mai 2011