26
Building Next-Generation Enterprise Applications in Java a.k.a. Duke’s Duct Tape Adventures Bert Ertman (@BertErtman) Fellow at Luminis Paul Bakker (@pbakker) Sr. developer at Luminis Technologies

Devoxx - Building Next-Generation Enterprise Applications in Java

Embed Size (px)

Citation preview

Page 1: Devoxx - Building Next-Generation Enterprise Applications in Java

Building Next-Generation Enterprise Applications in Javaa.k.a. Duke’s Duct Tape Adventures

Bert Ertman (@BertErtman)Fellow at Luminis

Paul Bakker (@pbakker)Sr. developer at Luminis Technologies

Page 2: Devoxx - Building Next-Generation Enterprise Applications in Java

DISCLAIMER

Page 3: Devoxx - Building Next-Generation Enterprise Applications in Java

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a

commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions.

The development, release, and timing of any features or functionality described for

Oracle’s products remains at the sole discretion of Oracle.

Page 4: Devoxx - Building Next-Generation Enterprise Applications in Java

Introduction

What’s an enterprise application anyway?

4

Functional vs. Non-functional

Page 5: Devoxx - Building Next-Generation Enterprise Applications in Java

Non-functional system capabilities• Availability• Capacity• Extensibility• Flexibility• Manageability• Performance• Reliability• Scalability• Security• Testability

5

Page 6: Devoxx - Building Next-Generation Enterprise Applications in Java

How to accomplish that?

• Remoting• Dependency

management• Caching• Web Services• Messaging (JMS)• Scheduling / timers• Load-balancing

• Fail-over• Integration testing• Asynchronous

invocations• Transactions• Security• Singletons• ...

6

Page 7: Devoxx - Building Next-Generation Enterprise Applications in Java

Architecture

7

PresentationLogic

Navigation Logic

BusinessLogic

Data Access Data

UI renderingClient-side validation

Screen/workflowmanagement

Business rules/validationsDomain objectsTransactions

Object/relational mappingInvoking Enterprise Information Systems

Data storageConsistency

Page 8: Devoxx - Building Next-Generation Enterprise Applications in Java

Let’s get started...

So, what’s the typical example of an enterprise

application?

8

Page 9: Devoxx - Building Next-Generation Enterprise Applications in Java

That is probably...

WRONG!

9

Page 10: Devoxx - Building Next-Generation Enterprise Applications in Java

Remember this?

10

Page 11: Devoxx - Building Next-Generation Enterprise Applications in Java

Our toolbox

• Application Server - Glassfish v3.1 / JBoss AS 7• Database - MySQL• Build tool - Maven (ehhh...well)• Java IDE - ...

11

Page 12: Devoxx - Building Next-Generation Enterprise Applications in Java

But wait...

PET STORES SUCK!

Hmm...let’s think of a better analogy...

12

Page 13: Devoxx - Building Next-Generation Enterprise Applications in Java

#qotd

“Java EE 6 is the DUCT TAPE

of modern enterprise development”

13

Page 14: Devoxx - Building Next-Generation Enterprise Applications in Java

Let’s visualize...

14

Java E

E 6Jav

a EE 6

Page 15: Devoxx - Building Next-Generation Enterprise Applications in Java

Yep, it’s cool...

15

Page 16: Devoxx - Building Next-Generation Enterprise Applications in Java

Run it by Google

16

Page 17: Devoxx - Building Next-Generation Enterprise Applications in Java

Hell yeah :-)

17

Page 18: Devoxx - Building Next-Generation Enterprise Applications in Java

Enterprise - revisited!

18

Page 19: Devoxx - Building Next-Generation Enterprise Applications in Java

DEMOCode can be downloaded from:

https://github.com/paulbakker/ducttape

Page 20: Devoxx - Building Next-Generation Enterprise Applications in Java

Where is the pattern love?

20

Page 21: Devoxx - Building Next-Generation Enterprise Applications in Java

Heavy-weight vs. Light-weight

21

Page 22: Devoxx - Building Next-Generation Enterprise Applications in Java

EJB: Enterprise Java Babes#ftw

EJB: Enterprise Java Babes

Page 23: Devoxx - Building Next-Generation Enterprise Applications in Java

Downsides of Java EE?

• KISS, DRY, and YAGNI–Instead of only talking about them you now have to

prove them in practice

• More bugs per # LOC ;-)

• Small deployments–OH: “So they spent 3 months building this app and it’s ONLY a 100k WAR file?”

23

Page 24: Devoxx - Building Next-Generation Enterprise Applications in Java

So...

With Java EE 6 in winter,who needs Spring?

it sucks anyway...

24

Page 25: Devoxx - Building Next-Generation Enterprise Applications in Java

More info

• Bert Ertman • Twitter: @BertErtman• E-mail: [email protected]

• Paul Bakker• Twitter: @pbakker• E-mail: [email protected]

25

Page 26: Devoxx - Building Next-Generation Enterprise Applications in Java

The End

Happy coding!

26