Top Banner
Architectural Patterns Support Lecture
27

Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Jan 04, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Architectural Patterns

Support Lecture

Page 2: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Software Architecture

Architecture is OVERLOADED• System architecture

• Application architecture Architecture for this presentation is The modules, processes, interconnections, and

protocols which constitute the deployed software system.

Different from the behavioral architecture which describes how the business classes execute the business processes.

Page 3: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Architecture Specification

Document which defines in text and diagrams the design, flow and technologies of the design.

Shows how persistence, communication, and behavior are to be implemented in the system.

Page 4: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Architectural Layers - Patterns

• Presentation • interactions with the user – HTML, thick client, MVC, web

services

• Domain (Logic) • Business rules, validations, calculations, verifications

• Data Storage • database

• Environmental• Session management, messaging

Page 5: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Presentation Architectural Patterns Presentation interactions with the user

No Client

Thick Client (rich client)

Thin Client

Page 6: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Presentation Architectural Patterns Model View Controller Application Controller Input Controller

• Page Controller• Front Controller

View Controller• Template View• Transform View• Two Step View

Page 7: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Model View Controller

Separation of Presentation (View/Controller) from Domain (Model)

Separation of View and Controller

Model – Domain object

View – Presentation object

Controller – Controller object to handle user request/response

Page 8: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Application Controller

A centralized point for handling screen navigation and flow of an application.

Application Controller – determines which type of input is needed or which screen.

Input Controller

View

Application Controller

Domain Layer

Page 9: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Application Controller

Page 10: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Application Controller

A single point of control to change program flow and navigation

May be in mediating layer between the presentation and the domain

May be reusable across various presentations

Testable outside the UI framework.

Page 11: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Front Controller

Page 12: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Page Controller

Page 13: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Front vs Page Controller

Front Controller • Single point for adding behavior• Can add behavior dynamically

(filter pattern)• Use with more complex

applications

Page Controller • Simple - Input controller per page• Don’t put controller logic into

scriplets – use separate classes• More prone to duplicate code

with this controller

Page 14: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Template View

Page 15: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Transform View

Page 16: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Example

Page 17: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Data Storage

Need mechanisms to allow RDBMS to communicate in the OO world.

With OO databases none of these patterns necessary.

Useful even if non-OO language wants to communicate with RDBMS to make the DB flexible to change in type and to make the data representation protected.

Page 18: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Data Storage Patterns

Table Data Gateway Row Data Gateway Active Record Data Mapper Structural Patterns

• Foreign Key Mapping, Identify Field Association, Table Mapping, Single Table Inheritance.

Page 19: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Table Data Gateway

Page 20: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Row Data Gateway

Page 21: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Row Data Gateway (2)

Page 22: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Active Record

Page 23: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Data Mapper

Page 24: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Distribution Patterns

Remote Façade Data Transfer Object

Page 25: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Remote Facade

Page 26: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Data Transfer Object

Page 27: Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.

Summary

No one patterns is an end all Patterns are mechanisms to help decompose

applications into reusable, maintainable, modules.

The layers of development help to define the needed patterns

No pattern is always correct -- fit the application.