SlideShare a Scribd company logo
Overview of Design Patterns & The MVC Design Pattern Sapana Mehta
Design Patterns A pattern is a proven solution to a problem in a context. Christopher Alexander says each pattern is a three-part rule which expresses a relation between a certain context, a problem, and a solution.  Design patterns represent a solutions to problems that arise when developing software within a particular context. i.e Patterns = problems.solution pairs in a context
Background Started in 1987 by Ward Cunningham and Ken Beck who were working with Smalltalk and designing GUIs.  Popularized by Gamma, Helm, Johnson and Vlissides (The gang of four, Go4) The three of Go4 were working on frameworks   (E++,Unidraw, HotDraw) Design pattern use a consistent documentation approach Design pattern are granular and applied at different levels such as frameworks, subsystems and sub-subsystems Design patterns are often organized as creational, structural or behavioral
Categorizing Pattern Patterns, then, represent expert solutions to recurring problems in a context and thus have been captured at many levels of abstraction and in numerous domains. Numerous categories are: Design  Architectural  Analysis  Creational  Structural  Behavioral
Sun’s J2EE Framework Components Containers and Connectors: Hiding Complexity, Enhancing Portability  Components are the key focus of application developers Containers intercede between clients and components, providing services transparently to both, including transaction support and resource pooling.  Connectors sit beneath the J2EE platform, defining a portable service API to plug into existing enterprise vendor offerings.
J2EE  Components Enterprise Java Beans (EJB) Java Server Pages (JSP) Servlets Containers  (service providers) Web container Bean Container Connectors (connection service providers)
 
J2EE and Design Patterns J2EE: AN OPERATING SYSTEM FOR THE WEB Enterprise web applications, which live on networks and are accessible through browsers, are redefining Enterprise Web Software. This is the next wave of computing.  The J2EE architecture is built to enable component developers to use a  Model View Controller (MVC)  Design Pattern.
Details of MVC Design Pattern  Name  (essence of the pattern) Model View Controller MVC Context  (where does this problem occur) MVC is an architectural pattern that is used when developing interactive application such as a shopping cart on the Internet. Problem  (definition of the reoccurring difficulty) User interfaces change often, especially on the internet where look-and-feel is a competitive issue. Also, the same information is presented  in different ways. The core business logic and data is stable .
MVC continued Solution  (how do you solve the problem) Use the software engineering principle of “separation of concerns” to divide the application into three areas:  Model  encapsulates the core data and functionality View  encapsulates the presentation of the data there can be many views of the common data Controller  accepts input from the user and makes request from the model for the data to produce a new view.
MVC Structure for J2EE
MVC Architecture The  Model  represents the structure of the data in the application, as well as application-specific operations on those data. A  View  (of which there may be many) presents data in some form to a user, in the context of some application function.  A  Controller  translates user actions (mouse motions, keystrokes, words spoken, etc.) and user input into application function calls on the model, and selects the appropriate View based on user preferences and Model state.
Example of MVC Design Pattern Let’s investigate this statement by looking at a small application that demonstrates MVC on J2EE
Java Pet Store- MVC Design Pattern The Java Pet Store is a reference application that demonstrates J2EE technologies.  It demonstrates interaction between Java Server Pages (JSP's), custom Tag Libraries, JavaBeans, and Enterprise Java Beans.  It demonstrates a real-world approach to application development, where the presentation of data is separated from the process of obtaining data from objects which interact with the enterprise or database tier.  The Pet Store application implements MVC (Model-View-Controller) design, and demonstrates one way to design an application that should scale well.
Multi Tier Architecture The Java Pet Store design is divided into multiple tiers: A. Client tier B. Web tier C. Enterprise JavaBeans tier D. Enterprise Information System tier.  These tiers are not necessarily arranged hierarchically.  Each tier may communicate directly with other tiers, or indirectly by way of intermediate tiers.
J2EE Architecture Tiers
A. Details of Client Tier The Client tier is responsible for presenting data to the user, interacting with the user, and communicating with the other tiers of the application.  The Client tier is the only part the application the user ever sees.  The Client tier communicates with other tiers by way of well-defined interfaces.  A separate Client tier in the design provides flexibility and extensibility.
A. Details of Client Tier In The Java Pet Store Client tier consists mainly of a browser displaying Web pages generated from server-side JSP pages in the Web tier. Future new clients can be written using technologies or languages that do not yet even exist, since they must conform only to the interface for communicating with other tiers
B. Web Tier The Web tier is responsible for performing all Web-related processing, such as serving HTML, instantiating Web page templates, and formatting JSP pages for display by browsers.  The Web tier in the Java Pet Store does all of these, and takes on the Controller functions for the Web application, caching model data interpreting user inputs, selecting appropriate Views based on application flow, and managing database connections.
C. EJB Tier Enterprise JavaBeans are software business components which extend servers to perform application-specific functionality.  The interface between these components and their containers is defined in the EJBs specification.  Essentially, the EJBs tier provides a component model for access to distributed system services and persistent data.
C. EJB Tier Both stand-alone clients and Web applications in the Web tier can use EJB components hosted by the EJBs tier.  It also simplifies application component development, because details about system issues such as persistence, reentrancy, transactions, remote access, and so on, are all handled by the container.
D.Enterprise Information System (EIS) Tier   The EIS tier is the enterprise information infrastructure. Members of the EIS tier typically include enterprise information planning (ERP) systems, transaction processing monitors, relational database management systems, and legacy enterprise applications.  Access to the EIS tier is usually transactional, to ensure that data are consistent across application boundaries.  The EIS tier also enforces security and   offers scalability.
MVC supports Modular Design  Has set of modules, each tightly coupled internally, and loosely coupled between modules.  Each module has an interface that defines the module's functional requirements and provides a place where third-party products may be integrated.  The Java Pet Store demo modules are:  User Account  Product Catalog  Order Processing  Messaging  Inventory  Control  The Modular design supports the design goal of   reusable software.
Java Pet store- MVC Views JSP pages, composed with templates and displayed in an HTML browser  Controller maps user input from the browser to request events, and forwards those events to the Shopping Client Controller in the EJB tier.  Model EJB Tier
MVC Details in Java Pet store  Model  represents the structure of the data in the application, as well as application-specific operations on data - CartModel, InventoryModel, CustomerEJB, and others Views  are Java server pages (JSPs) rendered from the web container to the browser, stand-alone applications that provide View functionality, and interfaces to spreadsheet programs, such as the StarOffice TM  suite.  Controller  is server side java program (Servlet) MainServlet.java, which dispatches browser requests to other controller objects, such as ShoppingClientController.java, AdminClientController.java, and their related support classes.
Views:Java Server Page (JSP) http://java.sun.com/products/jsp/ Technology for developing dynamic web sites that replaces CGI Thought of as a server-side scripting tool Contains  HTML and Java code (scripts) Is compiled into a servlet and executes on the server.
JSP Example
ShoppingCart.jsp Java  Server Pages (JSP)
Controller Servlet A java class that runs on the server Extends http Servlet  Runs in a container class  (servlet/JSP engine) Application servers (Jrun, WebLogic) have the containers This has the logic for the application
EJBs Enterprise Java Beans Connect Servlets to the back end database Examples of EJBs in Java Pet store are: AccountHandler, ModelUpdateManager, ShoppingClientControllerHome, CartHandler, ShoppingClientControllerEJB, SigninHandler, OrderHandler
Advantages of MVC Separating Model from View (that is, separating data representation from presentation) -  easy to add multiple data presentations for  the same data, -facilitates adding new types of data  presentation as technology develops.  -Model and View components can vary  independently enhancing maintainability,  extensibility, and testability.
Advantages of MVC design Pattern Separating Controller from View (application behavior from presentation)  - permits run-time selection of appropriate  Views based on workflow, user preferences,  or Model state.  Separating Controller from Model (application behavior from data representation)  - allows configurable mapping of user actions  on the Controller to application functions on  the Model.
Consequences or Benefits We make changes without bringing down the server. We leave the core code alone We can have multiple versions of the same data displayed We can test our changes in the actual environment. We have achieved “separation of concerns”
References Home of the patterns community http://hillside.net/ Adaptability home page http://www. utdallas . edu /~ chung /adaptability.html Quickest road to understanding  the concepts   non-software examples http://www. agcs .com/supportv2/ techpapers /patterns/papers/ tutnotes /index. htm The Sun location for J2ee http://java.sun.com/j2ee/ Sun’s Java Pet store example used  http://jboss.utdallas.edu:8080/estore
Ad

Recommended

Mcv design patterns
Mcv design patterns
Rob Paok
 
Chapter2 j2ee
Chapter2 j2ee
Jafar Nesargi
 
Jsp with mvc
Jsp with mvc
vamsitricks
 
J2ee
J2ee
Prince Soni
 
Java J2EE
Java J2EE
Sandeep Rawat
 
J2 EEE SIDES
J2 EEE SIDES
bputhal
 
Greate Introduction to Oracle Fusion Middleware and ADF
Greate Introduction to Oracle Fusion Middleware and ADF
Mohamed Shahpoup
 
Migration from IBM DOORS 9 to DOORS Next Generation
Migration from IBM DOORS 9 to DOORS Next Generation
Matt Mendell
 
Introduction to Java EE (J2EE)
Introduction to Java EE (J2EE)
Atit Patumvan
 
Spring Framework - III
Spring Framework - III
People Strategists
 
Introduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
TY.BSc.IT Java QB U5
TY.BSc.IT Java QB U5
Lokesh Singrol
 
Introduction To Building Enterprise Web Application With Spring Mvc
Introduction To Building Enterprise Web Application With Spring Mvc
Abdelmonaim Remani
 
Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
Spring Framework-II
Spring Framework-II
People Strategists
 
Building Enterprise Application with J2EE
Building Enterprise Application with J2EE
Calance
 
JSF basics
JSF basics
airbo
 
Topic4 Application Servers
Topic4 Application Servers
sanjoysanyal
 
MVC
MVC
akshin
 
Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)
David Groff
 
Spring Framework -I
Spring Framework -I
People Strategists
 
Java server faces
Java server faces
Fábio Santos
 
Overview of JEE Technology
Overview of JEE Technology
People Strategists
 
Java server faces
Java server faces
owli93
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
Fahad Golra
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)
Fahad Golra
 
Introduction to jsf 2
Introduction to jsf 2
yousry ibrahim
 
TY.BSc.IT Java QB U5&6
TY.BSc.IT Java QB U5&6
Lokesh Singrol
 
Lec2 ecom fall16
Lec2 ecom fall16
Zainab Khallouf
 
Servlets and jsp pages best practices
Servlets and jsp pages best practices
ejjavies
 

More Related Content

What's hot (20)

Introduction to Java EE (J2EE)
Introduction to Java EE (J2EE)
Atit Patumvan
 
Spring Framework - III
Spring Framework - III
People Strategists
 
Introduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
TY.BSc.IT Java QB U5
TY.BSc.IT Java QB U5
Lokesh Singrol
 
Introduction To Building Enterprise Web Application With Spring Mvc
Introduction To Building Enterprise Web Application With Spring Mvc
Abdelmonaim Remani
 
Unit 07: Design Patterns and Frameworks (1/3)
Unit 07: Design Patterns and Frameworks (1/3)
DSBW 2011/2002 - Carles Farré - Barcelona Tech
 
Spring Framework-II
Spring Framework-II
People Strategists
 
Building Enterprise Application with J2EE
Building Enterprise Application with J2EE
Calance
 
JSF basics
JSF basics
airbo
 
Topic4 Application Servers
Topic4 Application Servers
sanjoysanyal
 
MVC
MVC
akshin
 
Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)
David Groff
 
Spring Framework -I
Spring Framework -I
People Strategists
 
Java server faces
Java server faces
Fábio Santos
 
Overview of JEE Technology
Overview of JEE Technology
People Strategists
 
Java server faces
Java server faces
owli93
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
Fahad Golra
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)
Fahad Golra
 
Introduction to jsf 2
Introduction to jsf 2
yousry ibrahim
 
TY.BSc.IT Java QB U5&6
TY.BSc.IT Java QB U5&6
Lokesh Singrol
 
Introduction to Java EE (J2EE)
Introduction to Java EE (J2EE)
Atit Patumvan
 
Introduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
Introduction To Building Enterprise Web Application With Spring Mvc
Introduction To Building Enterprise Web Application With Spring Mvc
Abdelmonaim Remani
 
Building Enterprise Application with J2EE
Building Enterprise Application with J2EE
Calance
 
JSF basics
JSF basics
airbo
 
Topic4 Application Servers
Topic4 Application Servers
sanjoysanyal
 
Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)
David Groff
 
Java server faces
Java server faces
owli93
 
Lecture 8 Enterprise Java Beans (EJB)
Lecture 8 Enterprise Java Beans (EJB)
Fahad Golra
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)
Fahad Golra
 
TY.BSc.IT Java QB U5&6
TY.BSc.IT Java QB U5&6
Lokesh Singrol
 

Similar to Design patterns (20)

Lec2 ecom fall16
Lec2 ecom fall16
Zainab Khallouf
 
Servlets and jsp pages best practices
Servlets and jsp pages best practices
ejjavies
 
J2EE Architecture Explained
J2EE Architecture Explained
Adarsh Kr Sinha
 
Ppt for Online music store
Ppt for Online music store
ADEEBANADEEM
 
Web programming and development - Introduction
Web programming and development - Introduction
Joel Briza
 
How to use Java in Web Application Development?
How to use Java in Web Application Development?
Inexture Solutions
 
Introduction To J Boss Seam
Introduction To J Boss Seam
ashishkulkarni
 
J2ee connector architecture
J2ee connector architecture
Subhasis Nayak
 
2000: Making IT Happen with J2EE
2000: Making IT Happen with J2EE
Russell Castagnaro
 
J2 ee architecture
J2 ee architecture
saurabhshertukde
 
Modern Java Web Development
Modern Java Web Development
zenyk
 
Introduction to java_ee
Introduction to java_ee
Yogesh Bindwal
 
Introduction to Model-View-Controller Framework.pptx
Introduction to Model-View-Controller Framework.pptx
edgecse
 
J2EE and layered architecture
J2EE and layered architecture
Suman Behara
 
Frameworks in java
Frameworks in java
Darshan Patel
 
Introduction to Enterprise Applications and Tools
Introduction to Enterprise Applications and Tools
Tharindu Weerasinghe
 
Web tier-framework-mvc
Web tier-framework-mvc
KashfUlHuda1
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
EidTahir
 
Enterprise java unit-1_chapter-2
Enterprise java unit-1_chapter-2
sandeep54552
 
JavaServer Pages 2nd Edition Larne Pekowsky
JavaServer Pages 2nd Edition Larne Pekowsky
nemenjaic15
 
Servlets and jsp pages best practices
Servlets and jsp pages best practices
ejjavies
 
J2EE Architecture Explained
J2EE Architecture Explained
Adarsh Kr Sinha
 
Ppt for Online music store
Ppt for Online music store
ADEEBANADEEM
 
Web programming and development - Introduction
Web programming and development - Introduction
Joel Briza
 
How to use Java in Web Application Development?
How to use Java in Web Application Development?
Inexture Solutions
 
Introduction To J Boss Seam
Introduction To J Boss Seam
ashishkulkarni
 
J2ee connector architecture
J2ee connector architecture
Subhasis Nayak
 
2000: Making IT Happen with J2EE
2000: Making IT Happen with J2EE
Russell Castagnaro
 
Modern Java Web Development
Modern Java Web Development
zenyk
 
Introduction to java_ee
Introduction to java_ee
Yogesh Bindwal
 
Introduction to Model-View-Controller Framework.pptx
Introduction to Model-View-Controller Framework.pptx
edgecse
 
J2EE and layered architecture
J2EE and layered architecture
Suman Behara
 
Introduction to Enterprise Applications and Tools
Introduction to Enterprise Applications and Tools
Tharindu Weerasinghe
 
Web tier-framework-mvc
Web tier-framework-mvc
KashfUlHuda1
 
enterprisejavaunit-1chapter-2-210914075956.pdf
enterprisejavaunit-1chapter-2-210914075956.pdf
EidTahir
 
Enterprise java unit-1_chapter-2
Enterprise java unit-1_chapter-2
sandeep54552
 
JavaServer Pages 2nd Edition Larne Pekowsky
JavaServer Pages 2nd Edition Larne Pekowsky
nemenjaic15
 
Ad

More from revamptechnologies (9)

CBSE Glog Link-6
CBSE Glog Link-6
revamptechnologies
 
CBSE Glog Link-1
CBSE Glog Link-1
revamptechnologies
 
Glog linked presentation 5
Glog linked presentation 5
revamptechnologies
 
Glog linked presentation 4
Glog linked presentation 4
revamptechnologies
 
Glog linked presentation 3
Glog linked presentation 3
revamptechnologies
 
Glog linked presentation 2
Glog linked presentation 2
revamptechnologies
 
Glog linked presentation 1
Glog linked presentation 1
revamptechnologies
 
Glog linked Presentation2
Glog linked Presentation2
revamptechnologies
 
Glog linked Presentation 1
Glog linked Presentation 1
revamptechnologies
 
Ad

Recently uploaded (20)

How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18
Celine George
 
Final Sketch Designs for poster production.pptx
Final Sketch Designs for poster production.pptx
bobby205207
 
Allomorps and word formation.pptx - Google Slides.pdf
Allomorps and word formation.pptx - Google Slides.pdf
Abha Pandey
 
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Pragya - UEM Kolkata Quiz Club
 
How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
aditya23173
 
Nice Dream.pdf /
Nice Dream.pdf /
ErinUsher3
 
Unit- 4 Biostatistics & Research Methodology.pdf
Unit- 4 Biostatistics & Research Methodology.pdf
KRUTIKA CHANNE
 
Vikas Bansal Himachal Pradesh: A Visionary Transforming Himachal’s Educationa...
Vikas Bansal Himachal Pradesh: A Visionary Transforming Himachal’s Educationa...
Himalayan Group of Professional Institutions (HGPI)
 
BINARY files CSV files JSON files with example.pptx
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
Belicia R.S
 
Publishing Your Memoir with Brooke Warner
Publishing Your Memoir with Brooke Warner
Brooke Warner
 
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Rajdeep Bavaliya
 
SPENT QUIZ NQL JR FEST 5.0 BY SOURAV.pptx
SPENT QUIZ NQL JR FEST 5.0 BY SOURAV.pptx
Sourav Kr Podder
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
How to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 Slides
Celine George
 
The Man In The Back – Exceptional Delaware.pdf
The Man In The Back – Exceptional Delaware.pdf
dennisongomezk
 
How to Configure Vendor Management in Lunch App of Odoo 18
How to Configure Vendor Management in Lunch App of Odoo 18
Celine George
 
Final Sketch Designs for poster production.pptx
Final Sketch Designs for poster production.pptx
bobby205207
 
Allomorps and word formation.pptx - Google Slides.pdf
Allomorps and word formation.pptx - Google Slides.pdf
Abha Pandey
 
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Battle of Bookworms 2025 - U25 Literature Quiz by Pragya
Pragya - UEM Kolkata Quiz Club
 
How to Manage Upselling of Subscriptions in Odoo 18
How to Manage Upselling of Subscriptions in Odoo 18
Celine George
 
Capitol Doctoral Presentation -June 2025.pptx
Capitol Doctoral Presentation -June 2025.pptx
CapitolTechU
 
How to Manage & Create a New Department in Odoo 18 Employee
How to Manage & Create a New Department in Odoo 18 Employee
Celine George
 
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Basic English for Communication - Dr Hj Euis Eti Rohaeti Mpd
Restu Bias Primandhika
 
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
MATERI PPT TOPIK 4 LANDASAN FILOSOFIS PENDIDIKAN
aditya23173
 
Nice Dream.pdf /
Nice Dream.pdf /
ErinUsher3
 
Unit- 4 Biostatistics & Research Methodology.pdf
Unit- 4 Biostatistics & Research Methodology.pdf
KRUTIKA CHANNE
 
BINARY files CSV files JSON files with example.pptx
BINARY files CSV files JSON files with example.pptx
Ramakrishna Reddy Bijjam
 
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
ROLE PLAY: FIRST AID -CPR & RECOVERY POSITION.pptx
Belicia R.S
 
Publishing Your Memoir with Brooke Warner
Publishing Your Memoir with Brooke Warner
Brooke Warner
 
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Paper 109 | Archetypal Journeys in ‘Interstellar’: Exploring Universal Themes...
Rajdeep Bavaliya
 
SPENT QUIZ NQL JR FEST 5.0 BY SOURAV.pptx
SPENT QUIZ NQL JR FEST 5.0 BY SOURAV.pptx
Sourav Kr Podder
 
Exploring Ocean Floor Features for Middle School
Exploring Ocean Floor Features for Middle School
Marie
 
How to Create an Event in Odoo 18 - Odoo 18 Slides
How to Create an Event in Odoo 18 - Odoo 18 Slides
Celine George
 
The Man In The Back – Exceptional Delaware.pdf
The Man In The Back – Exceptional Delaware.pdf
dennisongomezk
 

Design patterns

  • 1. Overview of Design Patterns & The MVC Design Pattern Sapana Mehta
  • 2. Design Patterns A pattern is a proven solution to a problem in a context. Christopher Alexander says each pattern is a three-part rule which expresses a relation between a certain context, a problem, and a solution. Design patterns represent a solutions to problems that arise when developing software within a particular context. i.e Patterns = problems.solution pairs in a context
  • 3. Background Started in 1987 by Ward Cunningham and Ken Beck who were working with Smalltalk and designing GUIs. Popularized by Gamma, Helm, Johnson and Vlissides (The gang of four, Go4) The three of Go4 were working on frameworks (E++,Unidraw, HotDraw) Design pattern use a consistent documentation approach Design pattern are granular and applied at different levels such as frameworks, subsystems and sub-subsystems Design patterns are often organized as creational, structural or behavioral
  • 4. Categorizing Pattern Patterns, then, represent expert solutions to recurring problems in a context and thus have been captured at many levels of abstraction and in numerous domains. Numerous categories are: Design Architectural Analysis Creational Structural Behavioral
  • 5. Sun’s J2EE Framework Components Containers and Connectors: Hiding Complexity, Enhancing Portability Components are the key focus of application developers Containers intercede between clients and components, providing services transparently to both, including transaction support and resource pooling. Connectors sit beneath the J2EE platform, defining a portable service API to plug into existing enterprise vendor offerings.
  • 6. J2EE Components Enterprise Java Beans (EJB) Java Server Pages (JSP) Servlets Containers (service providers) Web container Bean Container Connectors (connection service providers)
  • 7.  
  • 8. J2EE and Design Patterns J2EE: AN OPERATING SYSTEM FOR THE WEB Enterprise web applications, which live on networks and are accessible through browsers, are redefining Enterprise Web Software. This is the next wave of computing. The J2EE architecture is built to enable component developers to use a Model View Controller (MVC) Design Pattern.
  • 9. Details of MVC Design Pattern Name (essence of the pattern) Model View Controller MVC Context (where does this problem occur) MVC is an architectural pattern that is used when developing interactive application such as a shopping cart on the Internet. Problem (definition of the reoccurring difficulty) User interfaces change often, especially on the internet where look-and-feel is a competitive issue. Also, the same information is presented in different ways. The core business logic and data is stable .
  • 10. MVC continued Solution (how do you solve the problem) Use the software engineering principle of “separation of concerns” to divide the application into three areas: Model encapsulates the core data and functionality View encapsulates the presentation of the data there can be many views of the common data Controller accepts input from the user and makes request from the model for the data to produce a new view.
  • 12. MVC Architecture The Model represents the structure of the data in the application, as well as application-specific operations on those data. A View (of which there may be many) presents data in some form to a user, in the context of some application function. A Controller translates user actions (mouse motions, keystrokes, words spoken, etc.) and user input into application function calls on the model, and selects the appropriate View based on user preferences and Model state.
  • 13. Example of MVC Design Pattern Let’s investigate this statement by looking at a small application that demonstrates MVC on J2EE
  • 14. Java Pet Store- MVC Design Pattern The Java Pet Store is a reference application that demonstrates J2EE technologies. It demonstrates interaction between Java Server Pages (JSP's), custom Tag Libraries, JavaBeans, and Enterprise Java Beans. It demonstrates a real-world approach to application development, where the presentation of data is separated from the process of obtaining data from objects which interact with the enterprise or database tier. The Pet Store application implements MVC (Model-View-Controller) design, and demonstrates one way to design an application that should scale well.
  • 15. Multi Tier Architecture The Java Pet Store design is divided into multiple tiers: A. Client tier B. Web tier C. Enterprise JavaBeans tier D. Enterprise Information System tier. These tiers are not necessarily arranged hierarchically. Each tier may communicate directly with other tiers, or indirectly by way of intermediate tiers.
  • 17. A. Details of Client Tier The Client tier is responsible for presenting data to the user, interacting with the user, and communicating with the other tiers of the application. The Client tier is the only part the application the user ever sees. The Client tier communicates with other tiers by way of well-defined interfaces. A separate Client tier in the design provides flexibility and extensibility.
  • 18. A. Details of Client Tier In The Java Pet Store Client tier consists mainly of a browser displaying Web pages generated from server-side JSP pages in the Web tier. Future new clients can be written using technologies or languages that do not yet even exist, since they must conform only to the interface for communicating with other tiers
  • 19. B. Web Tier The Web tier is responsible for performing all Web-related processing, such as serving HTML, instantiating Web page templates, and formatting JSP pages for display by browsers. The Web tier in the Java Pet Store does all of these, and takes on the Controller functions for the Web application, caching model data interpreting user inputs, selecting appropriate Views based on application flow, and managing database connections.
  • 20. C. EJB Tier Enterprise JavaBeans are software business components which extend servers to perform application-specific functionality. The interface between these components and their containers is defined in the EJBs specification. Essentially, the EJBs tier provides a component model for access to distributed system services and persistent data.
  • 21. C. EJB Tier Both stand-alone clients and Web applications in the Web tier can use EJB components hosted by the EJBs tier. It also simplifies application component development, because details about system issues such as persistence, reentrancy, transactions, remote access, and so on, are all handled by the container.
  • 22. D.Enterprise Information System (EIS) Tier The EIS tier is the enterprise information infrastructure. Members of the EIS tier typically include enterprise information planning (ERP) systems, transaction processing monitors, relational database management systems, and legacy enterprise applications. Access to the EIS tier is usually transactional, to ensure that data are consistent across application boundaries. The EIS tier also enforces security and offers scalability.
  • 23. MVC supports Modular Design Has set of modules, each tightly coupled internally, and loosely coupled between modules. Each module has an interface that defines the module's functional requirements and provides a place where third-party products may be integrated. The Java Pet Store demo modules are: User Account Product Catalog Order Processing Messaging Inventory Control The Modular design supports the design goal of reusable software.
  • 24. Java Pet store- MVC Views JSP pages, composed with templates and displayed in an HTML browser Controller maps user input from the browser to request events, and forwards those events to the Shopping Client Controller in the EJB tier. Model EJB Tier
  • 25. MVC Details in Java Pet store Model represents the structure of the data in the application, as well as application-specific operations on data - CartModel, InventoryModel, CustomerEJB, and others Views are Java server pages (JSPs) rendered from the web container to the browser, stand-alone applications that provide View functionality, and interfaces to spreadsheet programs, such as the StarOffice TM suite. Controller is server side java program (Servlet) MainServlet.java, which dispatches browser requests to other controller objects, such as ShoppingClientController.java, AdminClientController.java, and their related support classes.
  • 26. Views:Java Server Page (JSP) http://java.sun.com/products/jsp/ Technology for developing dynamic web sites that replaces CGI Thought of as a server-side scripting tool Contains HTML and Java code (scripts) Is compiled into a servlet and executes on the server.
  • 28. ShoppingCart.jsp Java Server Pages (JSP)
  • 29. Controller Servlet A java class that runs on the server Extends http Servlet Runs in a container class (servlet/JSP engine) Application servers (Jrun, WebLogic) have the containers This has the logic for the application
  • 30. EJBs Enterprise Java Beans Connect Servlets to the back end database Examples of EJBs in Java Pet store are: AccountHandler, ModelUpdateManager, ShoppingClientControllerHome, CartHandler, ShoppingClientControllerEJB, SigninHandler, OrderHandler
  • 31. Advantages of MVC Separating Model from View (that is, separating data representation from presentation) - easy to add multiple data presentations for the same data, -facilitates adding new types of data presentation as technology develops. -Model and View components can vary independently enhancing maintainability, extensibility, and testability.
  • 32. Advantages of MVC design Pattern Separating Controller from View (application behavior from presentation) - permits run-time selection of appropriate Views based on workflow, user preferences, or Model state. Separating Controller from Model (application behavior from data representation) - allows configurable mapping of user actions on the Controller to application functions on the Model.
  • 33. Consequences or Benefits We make changes without bringing down the server. We leave the core code alone We can have multiple versions of the same data displayed We can test our changes in the actual environment. We have achieved “separation of concerns”
  • 34. References Home of the patterns community http://hillside.net/ Adaptability home page http://www. utdallas . edu /~ chung /adaptability.html Quickest road to understanding the concepts non-software examples http://www. agcs .com/supportv2/ techpapers /patterns/papers/ tutnotes /index. htm The Sun location for J2ee http://java.sun.com/j2ee/ Sun’s Java Pet store example used http://jboss.utdallas.edu:8080/estore