31
1 Another group of Patterns Architectural Patterns

1 Another group of Patterns Architectural Patterns

Embed Size (px)

Citation preview

Page 1: 1 Another group of Patterns Architectural Patterns

1

Another group of Patterns

               

Architectural Patterns

Page 2: 1 Another group of Patterns Architectural Patterns

2

Patterns

Pattern: A representation of a proven solution.

Problem

Applicable Forces

Solution

ConsequencesBenefits

Page 3: 1 Another group of Patterns Architectural Patterns

3

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 4: 1 Another group of Patterns Architectural Patterns

4

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 5: 1 Another group of Patterns Architectural Patterns

5

Types of Patterns

• Lowest Level – Programming Patterns– Iterator, if, while

• Design Level – Design Patterns– Factory, builder, --- gang of 4

• Before Design – Architectural Patterns–Martin Fowler- presentation, domain, data

storage, environment

• Analysis Patterns – – used in requirements analysis

Page 6: 1 Another group of Patterns Architectural Patterns

6

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 7: 1 Another group of Patterns Architectural Patterns

7

Presentation Architectural Patterns

• Presentation interactions with the user

• No Client

• Thick Client (rich client)

• Thin Client

Page 8: 1 Another group of Patterns Architectural Patterns

8

Presentation Architectural Patterns

• Model View Controller

• Application Controller

• Input Controller– Page Controller

– Front Controller

• View Controller– Template View

– Transform View

– Two Step View

Page 9: 1 Another group of Patterns Architectural Patterns

9

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 10: 1 Another group of Patterns Architectural Patterns

10

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 11: 1 Another group of Patterns Architectural Patterns

11

Application Controller

Page 12: 1 Another group of Patterns Architectural Patterns

12

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 13: 1 Another group of Patterns Architectural Patterns

13

Front Controller

Page 14: 1 Another group of Patterns Architectural Patterns

14

Page Controller

Page 15: 1 Another group of Patterns Architectural Patterns

15

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 16: 1 Another group of Patterns Architectural Patterns

16

Template View

Page 17: 1 Another group of Patterns Architectural Patterns

17

Transform View

Page 18: 1 Another group of Patterns Architectural Patterns

18

Template vs Transform vs Two Step

• Template View– Follows natural editing notions

– Supports non=programmer editors of HTML

– Needs discipline to avoid scriplets

• Transform View– Can test without server

– Works well with XML

• Two Step View– Easy to make global appearance changes

– Easy to support multiple appearances

– Complex

Page 19: 1 Another group of Patterns Architectural Patterns

19

Example

Page 20: 1 Another group of Patterns Architectural Patterns

20

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 21: 1 Another group of Patterns Architectural Patterns

21

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 22: 1 Another group of Patterns Architectural Patterns

22

Table Data Gateway

Page 23: 1 Another group of Patterns Architectural Patterns

23

Row Data Gateway

Page 24: 1 Another group of Patterns Architectural Patterns

24

Row Data Gateway (2)

Page 25: 1 Another group of Patterns Architectural Patterns

25

Active Record

Page 26: 1 Another group of Patterns Architectural Patterns

26

Data Mapper

Page 27: 1 Another group of Patterns Architectural Patterns

27

Distribution Patterns

• Remote Façade

• Data Transfer Object

Page 28: 1 Another group of Patterns Architectural Patterns

28

Remote Facade

Page 29: 1 Another group of Patterns Architectural Patterns

29

Data Transfer Object

Page 30: 1 Another group of Patterns Architectural Patterns

30

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.

Page 31: 1 Another group of Patterns Architectural Patterns

31

Computing Degrees at FSU-Panama City

Math&ScienceBusiness

Math&EEGeneral

Information System Degrees Scientific Degrees

Management Information Systems (BS)

Information Studies (Web – BS,MS)

Computer Science (MS, Web-BS)

Computer Engineering (BS, Web-MS)

Systems Analysis IT Management Computer Consulting Application Programming

Web Development Network Management Information Systems Management of Information

Services Social Informatics Information and Communication

Technologies

Embedded Systems Image Processing Electronics and Electromagnetics Signals and Systems Communications Microprocessors Computer Architecture

Operating Systems Systems Programming Applications Programming Database Administration Systems Administration

. Degree Programs http://www.pc.fsu.edu/degreeplansheets/default.asp

. Advisor Jeanne Dexter – [email protected]

. Advisor Alan Stromberg [email protected] . Advisor Kamran Imen [email protected]

. Advisor Sara Stoecklin [email protected]