java ee is back in town

Post on 01-Jul-2015

797 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

powered byLars Röwekamp Java EE

Java EE

JavaEE is back in Town

Dienstag, 10. Mai 2011

J2EE 2003

“oh nooo!“

Dienstag, 10. Mai 2011

Java EE 2010

“oh yeah!“

Dienstag, 10. Mai 2011

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

Dienstag, 10. Mai 2011

The Deal: Business, not Infrastructure

Dienstag, 10. Mai 2011

I‘ am a

BusinessDeveloper

Dienstag, 10. Mai 2011

„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

„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

J2EE? WT #?*K !Walk of

Pain

Dienstag, 10. Mai 2011

Schneller!Höher!Weiter!

Dienstag, 10. Mai 2011

Schneller!Höher!Weiter!

Aber wohin?

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Nix als Probleme ...

Dienstag, 10. Mai 2011

12

ProblemfeldKomplexität

Dienstag, 10. Mai 2011

13

Problemfeldtech. Schwachstellen

Dienstag, 10. Mai 2011

14

ProblemfeldPerformance

Dienstag, 10. Mai 2011

15

HauptproblemfeldEnterprise JavaBeans

Dienstag, 10. Mai 2011

No more EJB!

No more

Complexity!

Dienstag, 10. Mai 2011

No more EJB!

No more

Complexity!

No more

J2EE

Container!

Dienstag, 10. Mai 2011

... but ...

much more FUN, pleeeeease!

Dienstag, 10. Mai 2011

Walk of Pain

Problem: „Komplexität &tech. Schwachstellen“

Dienstag, 10. Mai 2011

Walk of Pain Antwort I: „Patterns“

Problem: „Komplexität &tech. Schwachstellen“

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Walk of Pain

Problem: „Komplexität &tech. Schwachstellen“

Antwort II: „Alternativen“

Dienstag, 10. Mai 2011

ProblemInnovation

CommunitySolution

Community

Feedback

ProprietarySolution

???

Dienstag, 10. Mai 2011

ProblemInnovation

CommunitySolution

Community

Feedback

ProprietarySolution

???

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

Dienstag, 10. Mai 2011

ProblemInnovation

CommunitySolution

Community

Feedback

ProprietarySolution

???

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

Dienstag, 10. Mai 2011

ProblemInnovation

Standardsbased on

CommunitySolutions

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

¡ JAVA EE

CommunitySolution

Community

Feedback

Dienstag, 10. Mai 2011

Walk of Fame

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Ease of Development & Flexibility

Dienstag, 10. Mai 2011

EoD:Convention over ...

Dienstag, 10. Mai 2011

Weniger ist mehr ...

Dienstag, 10. Mai 2011

@ManagedBean

public class LoginBean {

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

}

EoD: Convention over ...

Dienstag, 10. Mai 2011

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

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

}

EoD: Convention over ...

Dienstag, 10. Mai 2011

@Stateful public class ShoppingBean {

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

EoD: Convention over ...

Dienstag, 10. Mai 2011

@Stateful public class ShoppingBean implements ... {

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

EoD: Convention over ...

Dienstag, 10. Mai 2011

@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

@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

<empty />*)

Dienstag, 10. Mai 2011

<empty />*)

*) XML optional nutzbar

Dienstag, 10. Mai 2011

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

! ...

}

EoD: XML-less Deployment ...

Dienstag, 10. Mai 2011

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

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

EoD: Dependency Injection

Dienstag, 10. Mai 2011

@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

@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

@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

@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

EoD:Plain old Java ObjectsDienstag, 10. Mai 2011

EoD: Plain old Java Objects ...

Dienstag, 10. Mai 2011

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

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

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

Ease of Development & Flexibility

Dienstag, 10. Mai 2011

Flexibility: API Overloading

Dienstag, 10. Mai 2011

Different ProfilesDifferent Needs

Dienstag, 10. Mai 2011

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Flexibility: Java EE Profiles

Dienstag, 10. Mai 2011

Session Beans

JPA 2.0

Interceptors

Tx & Security

Local & None

Flexibility: EJB Lite

Dienstag, 10. Mai 2011

Flexibility: EJB Lite

MDB

Entity Beans

Web Services

Timer & Async

Remote

Dienstag, 10. Mai 2011

Flexibility: Component Models

Dienstag, 10. Mai 2011

Flexibility: Component Models

Enterprise JavaBeans

Dienstag, 10. Mai 2011

Flexibility: Component Models

Enterprise JavaBeans

Life Cycle Mmgt.

Instance Pooling

Concurrency

Transaction

Security

Scoping

...

Dienstag, 10. Mai 2011

Flexibility: Component Models CDI Beans

Dienstag, 10. Mai 2011

Flexibility: Component Models CDI Beans

Life Cycle Mmgt.

Scoping

... AND ...

*** Extensibility ***

Dienstag, 10. Mai 2011

Flexibility: Component Models CDI Konzepte

Dienstag, 10. Mai 2011

Flexibility: Component Models CDI Konzepte

Typensicher DI(Stereotypes, Qulifier)

Loose Koopelung(Events, Interceptors)

Sichtbarkeiten(Sopes, LifeCycle )

„FACHLICHE INJECTION“

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Java EE 7

Dienstag, 10. Mai 2011

Java EE 7

„The Cloud Edition“

Dienstag, 10. Mai 2011

Java EE 7

„The Cloud Edition“

Easely operate on Clouds

Latest Web Standards

PaaS Support

Multi-Tenancy

Elasticity

Modularity

Versioning

Dienstag, 10. Mai 2011

...Dienstag, 10. Mai 2011

Java EE 7

...Dienstag, 10. Mai 2011

Java EE 7

„The Cloud Edition“

...Dienstag, 10. Mai 2011

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

Dienstag, 10. Mai 2011

Java EE 7

Dienstag, 10. Mai 2011

Java EE 7„The Cloud Edition“

Dienstag, 10. Mai 2011

Java EE 7„The Cloud Edition“ „Ja“

Dienstag, 10. Mai 2011

Java EE 7„The Cloud Edition“ „Ja“

(a.k.a. Q3 / 2012)

Dienstag, 10. Mai 2011

Dienstag, 10. Mai 2011

Java EE

Java EE

StartUpgradeSwitch

Dienstag, 10. Mai 2011

Gibt es noch Fragen?

Dann los ...

Dienstag, 10. Mai 2011

top related