43
3118 J2EE Patterns Ken Sipe Code Mentor, Inc.

3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

3118J2EE Patterns

Ken SipeCode Mentor, Inc.

Page 2: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Overall Presentation Goal Overall Presentation Goal

Review of Core J2EE Patterns.

Best Practices of J2EE Patterns.

Page 3: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Speaker’s QualificationsSpeaker’s Qualifications

•Chief Technology Officer at Code Mentor, Inc.

•Sun Certified Java 2 Architect.•Instructor for Visibroker for Java,

OOAD, Rational Rose, and Java Development.

•Frequently speaks on the subject of distributed computing programming, including CORBA and EJB architecture.

Page 4: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

IntroductionIntroduction•In the Beginning…

•There was code•How do we get beyond copy and paste

Page 5: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Thought for the SessionThought for the SessionA good scientist is a person with

original ideas.A good engineer is a person who

makes a design that works with as few original ideas as possible.

— Freeman Dyson

Page 6: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Reuse SolutionsReuse Solutions•OO

•Models

•Component Oriented Development•Binaries

Page 7: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Why / Where do they come fromWhy / Where do they come fromOOAD

•Notation –UML•Process (Raging)

•Software Development•Technical Requirements

•Patterns

•Business Requirements•Need further standardization

Page 8: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Patterns DefinitionPatterns Definition•Patterns communicate a solution to a

recurring problem in context.•John Crupi

Page 9: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Four Pattern ElementsFour Pattern Elements•Name•Problem (with Context)•Solution•Consequences (Pro / Cons)

Page 10: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Pattern ValuePattern Value•Design “Reuse”•Best Practices•Easy code mappings•Higher level vocabulary

Page 11: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Early Patterns SolutionsEarly Patterns Solutions•Gang of Four

•Singleton•MVC•Command

•Context is technical and broad

Tend to be technical in nature and span language choices.

Limited understanding

Page 12: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

J2EE Core PatternsJ2EE Core Patterns•Sun developed best practices

•John Crupi, Dan Malks, Deepak Alur

Page 13: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

J2EE PatternsJ2EE Patterns•Patterns in the “context”of J2EE

Page 14: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Presentation TierPresentation Tier•Intercepting Filter•Front Controller•Context Object•Application Controller•View Helper•Composite View•Service To Worker•Dispatcher View

Page 15: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Business TierBusiness Tier•Business Delegate•Service Locator•Session Façade•Application Service•Business Object•Composite Entity•Transfer Object•Transfer Object Assembler•Value List Handler

Page 16: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Integration TierIntegration Tier•Data Access Object (DAO)•Service Activator•Domain Store•Web Service Broker

Page 17: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Non-Core J2EE Patterns ☺Non-Core J2EE Patterns ☺•Fast Lane Reader•MVC•Mapper Pattern•Pluggin Pattern•Service Stub•Token Pattern *

Page 18: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Patterns for this SessionPatterns for this Session•Front Controller•MVC•Business Delegate•Mapper Pattern•Service Stub•Session Façade•Fast Lane Reader•Token Pattern•Value List Handler

Focus on developmentand JBuilder

Page 19: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

What Is a MVC?What Is a MVC?• MVC stands for model / view /

controller.• A software pattern where logic is

separated from the model and view in order to provide for better reuse possibilities.

• A software pattern recognized in the early days of small talk.

• Documented in the GoF book.

Page 20: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Web Application MVC PatternWeb Application MVC Pattern• Model

• Information is provided in objects or beans

• View• The JSP provide

the view

• Controller• Servlet provides

control logic and becomes the controller

Controller (Servlet)

Model(Beans)

View(JSPs)

View(JSPs)

View(JSPs)

View(JSPs)

View(JSP)

1

2

34

5

Page 21: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

MVC Collaboration DiagramMVC Collaboration Diagram

JSP

The View

Servlet Data Resource

Beans

Browser

Controller

The Model

5: Access beans

3: Establish bean state, then place in session or request

object

4: redirect to appropriate view

2: Retrieve Data1: Post

Page 22: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Front Controller / MVC SolutionsFront Controller / MVC Solutions•J2EE Context•Struts

•Concept of a Front Controller•ActionServlet•RequestProcessor

Page 23: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Demo

Jbuilder / Struts

Page 24: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Business DelegateBusiness Delegate•Presentation Tiers•Reduction of coupling of the client

tiers to the business tiers•Centralizes code for lookups, access

details

Page 25: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Business DelegateBusiness Delegate•Great place for:

•Data transformation•Tier to tier coupling•Exception translation

•Manage unit tests•Service Stubs

Page 26: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Delegate DiagramDelegate Diagram

Page 27: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Mapper PatternMapper Pattern•An object that sets up a

communication between two independent objects -Fowler

•Provides a configurable access to service stubs

Page 28: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Pluggin PatternPluggin Pattern•Links classes during configuration

rather than compilation - Fowler

Page 29: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Service StubService Stub•Removes dependence upon

problematic services during testing–Fowler

Page 30: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Mapper / Pluggin SolutionMapper / Pluggin Solution

Page 31: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Session FaçadeSession Façade•Removes the number of client / server

method invocations•Uniform client access strategy•Remove direct Entity Bean access•Provides course grain access to

Business

Page 32: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Façade DiagramFaçade Diagram

Page 33: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Data Transfer Object (DTO)Data Transfer Object (DTO)•Data Structure for serialization across

tiers.

Page 34: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Demo

Jbuilder / Facades / Delegates / DTO

Page 35: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Fast Lane ReaderFast Lane Reader•Fast access to read-only data•By pass Entity layer.

Page 36: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Token PatternToken Pattern•Synchronize the Client Presentation

Tier•Effort to stop multiple requests

Page 37: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Value List HandlerValue List Handler•Provides a scalable solution to

providing lists of data to the client.

Page 38: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Value List DiagramValue List Diagram

Page 39: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Concluding ThoughtsConcluding Thoughts•Patterns presented are in heavy use

today and add value•JBuilder continues to aid in providing

wizards to accelerate pattern focused development.

Page 40: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

ResourcesResources•http://java.sun.com/blueprints/corej2e

epatterns/•http://www.martinfowler.com/eaaCatal

og/

Page 41: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Questions?

Page 42: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker

Thank You

Please fill out the speaker evaluation

You can contact me further at [email protected]

Page 43: 3118 J2EE Patterns - UML patterns- .pdf · Speaker’ s Qualifications •Chief Technology Officer at Code Mentor, Inc. •Sun Certified Java 2 Architect. •Instructor for Visibroker