c6mini Adina, R é ka, Marius 11 th of June, 2009

25
c6mini c6mini Adina, R Adina, R é é ka, Marius ka, Marius 11 11 th th of June, 2009 of June, 2009 Jun 28, 2022 1 Patterns Of Enterprise Application Architecture

description

c6mini Adina, R é ka, Marius 11 th of June, 2009. The Challenge. Software application used by: Human Resources department: track information about company’s offices and employees Sales department: track information about orders - PowerPoint PPT Presentation

Transcript of c6mini Adina, R é ka, Marius 11 th of June, 2009

Page 1: c6mini Adina, R é ka, Marius 11 th  of June, 2009

c6minic6miniAdina, RAdina, Rééka, Mariuska, Marius

1111thth of June, 2009 of June, 2009

Apr 22, 2023 1Patterns Of Enterprise

Application Architecture

Page 2: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Apr 22, 2023Patterns Of Enterprise

Application Architecture2

Page 3: c6mini Adina, R é ka, Marius 11 th  of June, 2009

The ChallengeThe Challenge

Software application used by:Human Resources department: track information about company’s offices and employees

Sales department: track information about orders

Based on a given relational schema, develop a multi-layer architecture which:

to use a given combinations of patterns

to process a given set of business rules

to result in a multi-user application with simultaneous user actions

C6: Transform/Template View, Page Controller, C6: Transform/Template View, Page Controller, Domain Model, Data Mapper, Unit of Work, Domain Model, Data Mapper, Unit of Work, Identity MapIdentity Map

Apr 22, 2023Patterns Of Enterprise

Application Architecture3

Page 4: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Apr 22, 2023Patterns Of Enterprise

Application Architecture4

Page 5: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Project OverviewProject Overview

Main technology: Java WebProject Setup:

Apr 22, 2023Patterns Of Enterprise

Application Architecture5

Communication protocol:• Skype conferences• Face-to-face meetings

Communication protocol:• Skype conferences• Face-to-face meetings

Development Environments &Tools:• Eclipse• ANT• Apache Tomcat• Source Control: SVN – Google Code Project Hosting

Development Environments &Tools:• Eclipse• ANT• Apache Tomcat• Source Control: SVN – Google Code Project Hosting

Software Analysis, Architecture & Design:• MS Visio

Software Analysis, Architecture & Design:• MS Visio

Page 6: c6mini Adina, R é ka, Marius 11 th  of June, 2009

SVN RepositorySVN Repository

Apr 22, 2023Patterns Of Enterprise

Application Architecture6

Page 7: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Application Application ArchitectureArchitecture

Apr 22, 2023Patterns Of Enterprise

Application Architecture7

Page 8: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Presentation LayerPresentation Layer

Apr 22, 2023Patterns Of Enterprise

Application Architecture8

Model – View – Controller architectural pattern:

• [Page Controller][Page Controller] Controller: • Requests controller: Struts

the Controller receives the request from the browser, and makes the decision where to send the request

• Dynamic behavior: Struts servlet and actions

• [Template View] [Template View] View:• Visual Styles: CSS• Layout: SiteMesh decorators• Presentation: JSP

Page 9: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Presentation Presentation PackagePackage

Apr 22, 2023Patterns Of Enterprise

Application Architecture9

Page 10: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Domain LayerDomain Layer

Apr 22, 2023Patterns Of Enterprise

Application Architecture10

• [Domain Model][Domain Model]• incorporates both behavior and

data (e.g class Employee)• Simple Domain Model:

similar to database design (domain object <–> DB table)

Page 11: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Business PackagesBusiness Packages

Apr 22, 2023Patterns Of Enterprise

Application Architecture11

Page 12: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Persistence LayerPersistence Layer

Apr 22, 2023Patterns Of Enterprise

Application Architecture12

Mapping to Mapping to Relational DatabaseRelational Database

• Architectural patterns: Architectural patterns: Data Data MapperMapper

• Behavioral Problems:• ensure that the DB state

remains consistent Unit of Unit of Work - Work - object registration: clean/dirty flags

• load each object once Identity Identity MapMap

Page 13: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Persistence PackagePersistence Package

Apr 22, 2023Patterns Of Enterprise

Application Architecture13

Page 14: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Apr 22, 2023Patterns Of Enterprise

Application Architecture14

Page 15: c6mini Adina, R é ka, Marius 11 th  of June, 2009

General Business General Business RulesRules

RBG 1: Adaugare angajat nouRBG 2: Avansarea unui angajat pe un alt tip de jobRBG 3: Afisarea departamentelor cu numarul de angajati si salarul mediuRBG 4‘: Afisarea cu verde a angajatilor cu salarul cu cel putin XX% mai mare decat salarul mediuRBG 4‘‘: Afisarea cu rosu a angajatilor cu salarul cu cel putin YY% mai mic decat salarul mediu

Apr 22, 2023Patterns Of Enterprise

Application Architecture15

Page 16: c6mini Adina, R é ka, Marius 11 th  of June, 2009

General Business General Business RulesRules

RBG 1: Adaugare angajat nou

Apr 22, 2023Patterns Of Enterprise

Application Architecture16

Page 17: c6mini Adina, R é ka, Marius 11 th  of June, 2009

General Business General Business RulesRules

RBG 2: Avansarea unui angajat pe un alt tip de job

Apr 22, 2023Patterns Of Enterprise

Application Architecture17

Page 18: c6mini Adina, R é ka, Marius 11 th  of June, 2009

General Business General Business RulesRules

RBG 3: Afisarea departamentelor cu numarul de angajati si salarul mediu

Apr 22, 2023Patterns Of Enterprise

Application Architecture18

Page 19: c6mini Adina, R é ka, Marius 11 th  of June, 2009

General Business General Business RulesRules

RBG 4‘: Afisarea cu verde a angajatilor cu salarul cu cel putin XX% mai mare decat salarul mediuRBG 4‘‘: Afisarea cu rosu a angajatilor cu salarul cu cel putin YY% mai mic decat salarul mediu

Apr 22, 2023Patterns Of Enterprise

Application Architecture19

Page 20: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Special Business Special Business RulesRules

RBS 1: Cresterea comisionului pentru angajatii care au avut un numar de comenzi mai mare YY in ultimele ZZ zile. RBS 2: Clientii din regiunea KK primesc o reducere cu GG% a pretului de lista, pretul final nefiind insa mai mic decat cel minim acceptat.RBS 3: Angajatii cu vechime in firma mai mare de ZZ ani primesc o crestere a salarului cu KK%.

Apr 22, 2023Patterns Of Enterprise

Application Architecture20

Page 21: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Observed issuesObserved issues

Concurrency Control Mechanism needed – it could be handled by Unit of Work

Apr 22, 2023Patterns Of Enterprise

Application Architecture21

Page 22: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Apr 22, 2023Patterns Of Enterprise

Application Architecture22

Page 23: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Lessons LearnedLessons Learned

Technical:Work with SVN - Google Code Project HostingStruts & SiteMeshUnit of Work & Identity MapPatterns Combination:• Page Controller – Template View• Domain Model - Data Mapper – Identity Map

Team work – remote Reka

Apr 22, 2023Patterns Of Enterprise

Application Architecture23

Page 24: c6mini Adina, R é ka, Marius 11 th  of June, 2009

Lessons learnedLessons learned

Apr 22, 2023Patterns Of Enterprise

Application Architecture24

Cum sa faci o arhitectura in Doodle:

Page 25: c6mini Adina, R é ka, Marius 11 th  of June, 2009

To Be Continued…

Apr 22, 2023Patterns Of Enterprise

Application Architecture25