27
Architectural Patterns Support Lecture

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

Embed Size (px)

Citation preview

Architectural Patterns

Support Lecture

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.

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.

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

Presentation Architectural Patterns Presentation interactions with the user

No Client

Thick Client (rich client)

Thin Client

Presentation Architectural Patterns Model View Controller Application Controller Input Controller

• Page Controller• Front Controller

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

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

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

Application Controller

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.

Front Controller

Page Controller

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

Template View

Transform View

Example

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.

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.

Table Data Gateway

Row Data Gateway

Row Data Gateway (2)

Active Record

Data Mapper

Distribution Patterns

Remote Façade Data Transfer Object

Remote Facade

Data Transfer Object

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.