1 COMP9321 Web Application Engineering Semester 2, 2016Dr. Amin Beheshti Service Oriented Computing Group, CSE, UNSW Australia Week 7 COMP9321, 16s2, Week 7
2 Design Patterns A pattern is a proven solution to a problem in a context. COMP9321, 16s2, Week 7
3 Design Patterns A pattern is a proven solution to a problem in a context. Each pattern expresses a relation between a certain context, a problem, and a solution. COMP9321, 16s2, Week 7
4 Design Patterns A pattern is a proven solution to a problem in a context. Each pattern expresses a relation between a certain context, a problem, and a solution. A design pattern represents a solutions to problems that arise when developing a software. COMP9321, 16s2, Week 7
5 Design Patterns A pattern is a proven solution to a problem in a context. Each pattern expresses a relation between a certain context, a problem, and a solution. A design pattern represents a solutions to problems that arise when developing a software. Frameworks Subsystems Sub-subsystems Design pattern are granular and applied at different levels such as: COMP9321, 16s2, Week 7
6 Design Patterns A pattern is a proven solution to a problem in a context. Each pattern expresses a relation between a certain context, a problem, and a solution. A design pattern represents a solutions to problems that arise when developing a software. Frameworks Subsystems Sub-subsystems Design pattern are granular and applied at different levels such as: Design Architectural Analysis Creational Structural Behavioral Categories include: COMP9321, 16s2, Week 7
7 Design Patterns A pattern is a proven solution to a problem in a context. Each pattern expresses a relation between a certain context, a problem, and a solution. A design pattern represents a solutions to problems that arise when developing a software. Frameworks Subsystems Sub-subsystems Design pattern are granular and applied at different levels such as: Design Architectural Analysis Creational Structural Behavioral e.g. MVC: Model View Controller Categories include: COMP9321, 16s2, Week 7
8 Design Patterns A pattern is a proven solution to a problem in a context. Each pattern expresses a relation between a certain context, a problem, and a solution. A design pattern represents a solutions to problems that arise when developing a software. Frameworks Subsystems Sub-subsystems Design pattern are granular and applied at different levels such as: Design Architectural Analysis Creational Structural Behavioral Categories include: Gamma et al (Gang of Four) produced a famous book which listed 23 “Design” patterns COMP9321, 16s2, Week 7
9 J2EE Design Patterns COMP9321, 16s2, Week 7
10 J2EE Design Patterns COMP9321, 16s2, Week 7
11 Web Application ArchitectureCOMP9321, 16s2, Week 7
12 Web Application ArchitectureCOMP9321, 16s2, Week 7
13 Web Application ArchitectureCOMP9321, 16s2, Week 7
14 Web Application ArchitectureCOMP9321, 16s2, Week 7
15 Web Application ArchitectureCOMP9321, 16s2, Week 7
16 Web Application LayersCOMP9321, 16s2, Week 7
17 J2EE design guidelines: Web tierCOMP9321, 16s2, Week 7
18 J2EE design guidelines: Web tierCOMP9321, 16s2, Week 7
19 Servlet Design GuidelinesCOMP9321, 16s2, Week 7
20 Servlet design guidelines: When to use ServletsCOMP9321, 16s2, Week 7
21 Servlet design guidelines: When to use ServletsCOMP9321, 16s2, Week 7
22 JSP Design Guidelines COMP9321, 16s2, Week 7
23 JSP Design Guidelines COMP9321, 16s2, Week 7
24 JSP Design Guidelines COMP9321, 16s2, Week 7
25 JSP Design Guidelines Include directive includes the file at translation time; whereas the include action includes the file at runtime. COMP9321, 16s2, Week 7
26 JSP Design Guidelines COMP9321, 16s2, Week 7
27 JSP Design Guidelines COMP9321, 16s2, Week 7
28 JSP Design Guidelines COMP9321, 16s2, Week 7
29 General Guideline for Servlet/JSP/JavaBeansCOMP9321, 16s2, Week 7
30 General Guideline for Servlet/JSP/JavaBeansCOMP9321, 16s2, Week 7
31 General Guideline for Servlet/JSP/JavaBeansCOMP9321, 16s2, Week 7
32 Structuring Web applications Architectural Patterns (MVC)COMP9321, 16s2, Week 7
33 Structuring Web applicationsCOMP9321, 16s2, Week 7
34 Structuring Web applicationsCOMP9321, 16s2, Week 7
35 Structuring Web applicationsCOMP9321, 16s2, Week 7
36 Model 1 Example COMP9321, 16s2, Week 7
37 Model 1 Example COMP9321, 16s2, Week 7
38 Model 1 Example COMP9321, 16s2, Week 7
39 Model 1 Example COMP9321, 16s2, Week 7
40 Model 1 Example COMP9321, 16s2, Week 7
41 Model 1 Example COMP9321, 16s2, Week 7
42 Model 1 Architecture COMP9321, 16s2, Week 7
43 MVC Model View ControllerCOMP9321, 16s2, Week 7
44 Model 2 Architecture = MVC patternCOMP9321, 16s2, Week 7
45 Model 2 Architecture = MVC patternCOMP9321, 16s2, Week 7
46 MVC Components and RolesMVC can be broken down into three elements: Model - The model represents data and the rules that govern access to and updates of this data. View - The view renders the contents of a model. It specifies exactly how the model data should be presented. Controller - The controller translates the user's interactions with the view into actions that the model will perform. COMP9321, 16s2, Week 7
47 MVC Components and Roles COMP9321, 16s2, Week 7
48 Model 2 Architecture = MVC patternCOMP9321, 16s2, Week 7
49 Model 2 Architecture = MVC patternCOMP9321, 16s2, Week 7
50 Model 2 Architecture = MVC patternCOMP9321, 16s2, Week 7
51 Model 2 Architecture = MVC patternCOMP9321, 16s2, Week 7
52 Case for a centralised controllerCOMP9321, 16s2, Week 7
53 Case for a centralised controllerCOMP9321, 16s2, Week 7
54 Case for multiple controllersCOMP9321, 16s2, Week 7
55 FrontController PatternCOMP9321, 16s2, Week 7
56 FrontController PatternThe Front Controller pattern is a software design pattern. The pattern relates to the design of web applications. It provides a centralized entry point for handling requests. Front controllers are often used in web applications to implement workflows. The front controller may be implemented as a Java object. COMP9321, 16s2, Week 7
57 FrontController PatternThe Front Controller pattern is a software design pattern. The pattern relates to the design of web applications. It provides a centralized entry point for handling requests. Front controllers are often used in web applications to implement workflows. The front controller may be implemented as a Java object. COMP9321, 16s2, Week 7
58 FrontController implementation: Command Design PatternCOMP9321, 16s2, Week 7
59 Command Design PatternCOMP9321, 16s2, Week 7
60 Command Design PatternCOMP9321, 16s2, Week 7
61 Command Design PatternCOMP9321, 16s2, Week 7
62 Command Design PatternCOMP9321, 16s2, Week 7
63 Command Design PatternCOMP9321, 16s2, Week 7
64 Command Design PatternCOMP9321, 16s2, Week 7
65 Command Design PatternCOMP9321, 16s2, Week 7
66 Command Design PatternCOMP9321, 16s2, Week 7
67 Command Design PatternCOMP9321, 16s2, Week 7
68 Command Design PatternCOMP9321, 16s2, Week 7
69 Command Design PatternCOMP9321, 16s2, Week 7
70 Identifying the Command Pattern in the phonebook labCOMP9321, 16s2, Week 7
71 Implementing the Command PatternCOMP9321, 16s2, Week 7
72 Typical "Assignment 2" ArchitectureCOMP9321, 16s2, Week 7
73 Next Week COMP9321, 16s2, Week 7
74 References Core J2EE patterns, Deepak Alur, John Crupi and Dan Marlks, Prentice Hall Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley COMP9321, 16s2, Week 7
75 COMP9321, 16s2, Week 7