Your SlideShare is downloading. ×
J2EE Architecture and Design Patterns - Northwestern Polytechnic ...
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

J2EE Architecture and Design Patterns - Northwestern Polytechnic ...


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. J2EE Architecture and Design Patterns Student: Fang Fang Advisor: Dr. Glen Qin Date: 05/14/2005
  • 2. Agenda
    • Introduction to “Architecture”
    • J2EE Architecture Diagram
    • Distributed Programming Serviced
    • Modular-Based Development
    • J2EE Application Deliverable
    • J2EE Standards
    • Patterns Arose from Architecture
    • Gang of Four Patterns
    • Q & A
  • 3. Introduction to Arthitecture
    • Architecture is the overall structure of a system, and it can contain subsystems that interface with other subsystems
    • Architecture versus Design (level of details)
    • Architecture considers bunch of *abilities
    Capability Availability Reliability Manageability and Flexibility Performance Scalability Extensibility, Validity, Reusability Security
  • 4. Multi-tiered J2EE applications J2EE Application I Web tier Business tier EIS tier J2EE Application II Client tier Client machine J2EE Server machine DataBase Server machine Application Client Dynamic HTML pages JSP/Servlet Enterprise Beans Database Database Enerprise Beans
  • 5. Distributes Programming Services
    • Naming and Registration (JNDI)
    • Remote Method Invocation (RMI)
    • Protocols
      • Distributed Object Frameworks
    Between user interface and business tiers HTTP, RMI, CORBA, DCOM, JMS Between business and persistence tiers JDBC, IDL to COM bridge, JMS, plain socket, native APIs via JNI embedded in resource adapters - CORBA - Native Language Integration - Java/RMI - DCOM
      • XML
  • 6. EJB Distributed Nature (I) EJB Container Bean EJBObject EJBHome Remote Stub Home Stub Client
  • 7. EJB Distributed Nature (II)
  • 8. J2EE Modular-Based Development
    • Presentation tier developer
    • Bean provider
    • Application assembler
    • Component provider
    • Application server provider
    • EJB container provider
    Staff be categories into different roles:
  • 9. J2EE Application Deliverable Web archive (.war) web.xml EJB archive (.jar) ejb-jar.xml Client archive (.car) application-client.xml Enterprise archive (.ear) application.xml
  • 10. Deployment Descriptor Sample <ejb-jar> <enterprise-beans> ... </enterprise-beans> <assembly-descriptor> <security-role> <description> This role represents everyone who is allowed full access to the Cabin EJB. </description> <role-name>everyone</role-name> </security-role> <method-permission> <role-name>everyone</role-name> <method> <ejb-name>CabinEJB</ejb-name> <method-name>*</method-name> </method> </method-permission> <container-transaction> <method> <ejb-name>CabinEJB</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>
  • 11. J2EE Standards
    • CTS
    • J2EE SDK
    • EJB spec
    • Servlet spec
    • JSP spec
    Contains following specs Together with below's offerings
  • 12. Patterns Arose from Architecture and Anthropology - Christopher Alexander
    • Is quality objective?
    • How do we get good quality repeatedly?
    • Look for the commonalities
    • ...especially commonality in the features of the problem to be solved
  • 13. Moving from Architectural to Software Design Patterns
    • Adapting Alexander for software
    • The Gang of Four did the early work on design patterns (Gamma, Helm, Johnson, Vlissides)
  • 14. Key Features of Patterns Item Description ------------------------------------------------------------------------------------------------------------- Name All patterns have a unique name that identifies them Intent The purpose of the pattern Problem The problem that the pattern is trying to solve Solution How the pattern provides a solution to the problem in the context in which it shows up Participants The entities involved in the pattern and collaborators Consequences The consequences of using the pattern. Investigates the forces at play in the pattern Implementation How the pattern can be implemented Generic structure A standard diagram that shows a typical structure for the pattern
  • 15. Enumerate GoF Patterns Structural Patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor Creational Patterns Abstract Factory Builder Factory Method Prototype Singleton
  • 16. Abstract Factory Pattern “ Provide an interface for creating families of related or dependent objects without specifying their concrete classes.&quot; - GoF Solution A Switch to Control Which Driver to Use class ApControl { . . . public void doDraw() { . . . switch (RESOLUTION) { case LOW: // use lrdd case HIGH: // use hrdd } } public void doPrint() { . . . switch (RESOLUTION) { case LOW: // use lrpd case HIGH: // use hrpd } } } Problem class ApControl { . . . public void doDraw() { . . . myDisplayDriver.draw(); } public void doPrint() { . . . myPrintDriver.print(); } } abstract class ResFactory { abstract public DisplayDriver getDispDrvr(); abstract public PrintDriver getPrtDrvr(); } class LowResFact extends ResFactory { public DisplayDriver getDispDrvr() { return new LRDD(); } public PrintDriver getPrtDrvr() { return new LRPD(); } } class HighResFact extends ResFactory { ... }
  • 17. The Facade Pattern
    • “ Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.” - GoF
    Problem Solution
  • 18. Stragegy Pattern Solution “ Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.” - GoF Problem
  • 19. J2EE Best Practice – MVC Pattern (I)
    • Model
    • Controller
    • View
    Represents the application data along with methods that operate on that data. Displays that data to the user. Translates user actions such as mouse movement and keyboard input and dispatches operations on the Model.
  • 20. J2EE Best Practice – MVC Pattern (II) Forward Dispatch Update Extract Http request or post Response Client browser Controller (action servlet) Business logic Model (server side JavaBean/EJB) View (JSP page)
  • 21.
    • Q & A
    • Thank you!!