10
Applied Domain-Driven Design Blue Prints for Java EE Reza Rahman Java EE/GlassFish Evangelist [email protected] @reza_rahman

Applied Domain-Driven Design Blue Prints for Java EE

Embed Size (px)

DESCRIPTION

Domain-Driven Design (DDD) promises to simplify enterprise application development and is gradually gaining traction as an alternative to traditional four-tier architectures originally popularized by J2EE. As the name implies, DDD is an architectural approach that strongly focuses on materializing the business domain in software. This session demonstrates first-hand how DDD can be implemented using Java EE via a project named Cargo Tracker. Part of the Java EE Blue Prints, Cargo Tracker seamlessly maps concepts like bounded contexts, layered architectures, entities, value objects, aggregates, services, repositories and factories to realistic code examples. The Cargo Tracker project also embraces popular practices adopted by the DDD community such as Object Oriented Analysis, Domain Models, Test Driven Development, Agile Refactoring, Continuous Integration, Object Relational Mapping, Dependency Injection and Cross-Cutting Concerns, incorporating these concepts into a realistic Java EE application.

Citation preview

Page 1: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public1

Applied Domain-Driven Design Blue Prints for Java EEReza RahmanJava EE/GlassFish [email protected]@reza_rahman

Page 2: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public2Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public

Agenda The Cargo Tracker Project

Domain-Driven Design (DDD)

DDD and Java EE

Page 3: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public3

The Cargo Tracker Project

J2EE popularized family of layered server-side architectures– J2EE Blue Prints (aka “Java Pet Store”)

J2EE Blue Prints had profound impact, but not without it’s problems– Many of the paradigms are alive and well even today!

– Encumbered by the immaturity of the technology/industry

Domain-Driven Design (DDD) emphasizes a return to the roots of Object Oriented Analysis and Design (OOAD)

Java EE’s lightweight programming model fits the DDD philosophy extremely well

– The Cargo Tracker project completes the circle

Blue Prints Reborn

Page 4: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public4

Domain-Driven DesignThe Building Blocks

Page 5: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public5

Strategic Domain-Driven Design

Page 6: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public6

LayersSeparating the Concerns

Page 7: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public7

Mapping DDD to Java EE

Page 8: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public8

Java EE/DDD in Practice

http://cargotracker.java.net

Page 9: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public9

Learn More

Cargo Tracker– http://cargotracker.java.net

Getting Started with Domain-Driven Design– http://refcardz.dzone.com/refcardz/getting-started-domain-driven

Domain-Driven Design Quickly– http://www.infoq.com/minibooks/domain-driven-design-quickly

DDD Sample– http://dddsample.sourceforge.net

Java EE 7 Tutorial– http://docs.oracle.com/javaee/7/tutorial/doc/

The Aquarium– http://blogs.oracle.com/theaquarium

Page 10: Applied Domain-Driven Design Blue Prints for Java EE

Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Public10