What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

Database Architectures and the Web
Apache Struts Technology
Application Architecture T H E S O C R A T E S G R O U P, I N C.
9.5 Software Architecture
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Overview Distributed vs. decentralized Why distributed databases
Ch1: File Systems and Databases Hachim Haddouti
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
The Architecture of Transaction Processing Systems
Chapter 4: Database Management. Databases Before the Use of Computers Data kept in books, ledgers, card files, folders, and file cabinets Long response.
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Advanced Distributed Software Architectures and Technology group ADSaT 1 Application Architectures Ian Gorton, Paul Greenfield.
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
Chapter 1: The Database Environment
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
Client/Server Software Architectures Yonglei Tao.
UNIT-V The MVC architecture and Struts Framework.
Architecture of Enterprise Systems: Domain Model and Database layer
Chapter 10 Architectural Design
Chapter 12 Designing Distributed and Internet Systems
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Database Architectures and the Web Session 5
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
Database Design – Lecture 16
Lecture On Database Analysis and Design By- Jesmin Akhter Lecturer, IIT, Jahangirnagar University.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
1 Introduction to Database Systems. 2 Database and Database System / A database is a shared collection of logically related data designed to meet the.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
1 Another group of Patterns Architectural Patterns.
DEV-5: Introduction to WebSpeed ® Stephen Ferguson Sr. Training Program Manager.
Massively Distributed Database Systems - Distributed DBS Spring 2014 Ki-Joune Li Pusan National University.
I Information Systems Technology Ross Malaga 4 "Part I Understanding Information Systems Technology" Copyright © 2005 Prentice Hall, Inc. 4-1 DATABASE.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
ARCH-4: The Presentation Layer in the OpenEdge® Reference Architecture Frank Beusenberg Senior Technical Consultant.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
Hibernate Persistence. What is Persistence Persist data to database or other storage.  In OO world, persistence means persist object to external storage.
Lecture # 3 & 4 Chapter # 2 Database System Concepts and Architecture Muhammad Emran Database Systems 1.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
1 Mapping to Relational Databases Presented by Ramona Su.
Pertemuan 10 Enterprise Application Patterns Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Domain and Persistence Patterns. Fundamental Pattern Types Design Patterns Business Logic Patterns.
Chapter 38 Persistence Framework with Patterns 1CS6359 Fall 2011 John Cole.
Introduction to Database Systems1. 2 Basic Definitions Mini-world Some part of the real world about which data is stored in a database. Data Known facts.
MANAGING DATA RESOURCES ~ pertemuan 7 ~ Oleh: Ir. Abdul Hayat, MTI.
Data resource management
INTRODUCTION TO DBS Database: a collection of data describing the activities of one or more related organizations DBMS: software designed to assist in.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
CS 4720 Model-View-Controller CS 4720 – Web & Mobile Systems.
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
18 September 2008CIS 340 # 1 Last Covered (almost)(almost) Variety of middleware mechanisms Gain? Enable n-tier architectures while not necessarily using.
1 Information Retrieval and Use De-normalisation and Distributed database systems Geoff Leese September 2008, revised October 2009.
Managing Data Resources File Organization and databases for business information systems.
Databases and DBMSs Todd S. Bacastow January 2005.
MVC and other n-tier Architectures
The Client/Server Database Environment
Basic Concepts in Data Management
Data, Databases, and DBMSs
Enterprise Architecture Patterns
Lecture 1: Multi-tier Architecture Overview
Web Application Architectures
Web Application Architectures
Web Application Architectures
Chapter 6: Architectural Design
Software Design Lecture 5.
SOFTWARE DESIGN Lecture 8.
Presentation transcript:

What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the form of the major components and how they interact with each other  It is about decisions – decisions that are very hard to change  If it is easy to change, it is not architectural.

Enterprise Applications  Persistent data – a lot of data  Access data concurrently  A lot of user interface screens  Integrate with other enterprise applications  Different business processes and conceptual dissonance  Complex “business illogic”

Examples of Enterprise Apps  B2C Online Retailer  Straightforward domain/business logic  Very high volumes of users  Easy access – web presentation  Leasing Agreement Processing System  Very complex business logic  No so many users  Complex user interface – rich client UI  Long business transactions in time  Expense-Tracking for a Small Company  Not many users  Simple business logic  Integrate with payroll, reservation, etc

Architecture Design  There is no ONE architecture that fits all different kinds of apps  Choosing an architecture:  You have to understand the particular problem of your system and choose an appropriate design based on that understanding

The Three Principal Layers  Presentation Logic  Handle the interaction between the user and the software  Display information to the user  Interpret commands from the user into actions  Data Source Logic  Communicate with other systems  Transaction monitor  DBMS  Domain Logic  Business logic  Use input and stored data to produce output  Decide what data sources to persist data

The Three Principal Layers  Presentation is an external interface for a service your system offers to someone else  Data source is the interface to things that are providing a service to you.  The domain normally hides the data source from the presentation  The domain and data source should never be dependent on the presentation

The Three Principal Layers  Domain or presentation logic?  A test: adding a different UI, if any functionality needs to be duplicated, it should be in the domain.  Another example:  If this month’s sales are 10% higher than last month, display this month’s sales in red  Domain: a method deciding if it is 10% higher  Presentation: if true, highlight the sales   tion.html tion.html

Deployment of the Layers  Presentation Logic  Rich client: on the client  HTML: on the server  Data Source  Almost always on servers  Domain Logic  All on the server – easy maintenance  All on the client – better responsiveness  Split – isolate the piece on the client

Organizing Domain Logic  Three Primary Patterns:  Transaction Script  Domain Model  Table Model  Service Layer

Transaction Script  Suitable for systems with simple domain logic  A procedure that takes the request, processes it, stores data in DB, invokes external operations, replies back to the user  One procedure per user action/business transaction  Advantages:  Easy for developers to understand  Facilitate transaction boundaries  Disadvantages:  Potential for duplicate code  Cause tangled web of routines

Domain Model  Suitable for systems with complex logic  Build a model with domain objects which are nouns in the business  Each object takes part of the logic for a user action  Advantages:  Handle complex logic in a well-organized way  Disadvantages:  Hard for developers to learn  Leads to complex data source layer

Table Module  Middle ground between Transaction Script and Domain Model  One table module (a class) represents a table in the DB.  Designed to work with Record Sets  Advantages:  Many GUI components could use the Record Sets returned from table modules

Service Layer  Often works with Domain Model and Table Module  Placed over domain model or table module  Can handle transaction control and security  How much behavior in service layer:  Service layer as a façade – an API to underlying objects, or  Most business logic is in scripts in service layer and underlying objects are very simple, or  Put logic particular for a transaction or use case as transaction scripts in the layer – Controller Entity

Mapping to Relational Database  Four Patterns:  Table Data Gateway  Row Data Gateway  Active Records  Data Mapper  Behavioral Patterns:  Unit of work  Lazy load

Structural Mapping Patterns  Structural Mapping Patterns:  Identity Field  One-to-one: Foreign Key Mapping  One-to-many: Foreign Key Mapping/Dependent Mapping  Many-to-many: Association Table Mapping  Inheritance  Single Table Inheritance  one table for the whole hierarchy  Concrete Table Inheritance  one table for each concrete class including its all ancestors  Class Table Inheritance  One table for each class, concrete or abstract

Web Presentation  Model View Controller  Application Controller  Handle the flow of the app  View Patterns  Transform View  Template View  Two Step View  Handle different devices  Input Controller Patterns  Page Controller  Front Controller

Concurrency  Offline Concurrency  Concurrent control for data that’s manipulated during multiple DB transactions  Concurrency Problems  Lost Update  Inconsistent read  Execution Context  Request context  Session context  DB transaction context

Isolation and Immutability  Isolation  Partition data so that any piece of it can only be accessed by one active agent  Immutable data  Identify immutable data to improve concurrency

Concurrency Control  Optimistic Locking  Conflict detection  Pessimistic Locking  Conflict prevention  Reduces concurrency  Preventing inconsistent reads  Deadlocks

Transactions  ACID  Atomicity, Consistency, Isolation, Durability  Transactional Resources  Reducing Transaction Isolation for Liveness  Business and System Transactions

Patterns for Offline Concurrency Control  Optimistic Offline Lock  Pessimistic Offline Lock  Coarse-Grained Lock  Implicit Lock

Application Server Concurrency

Session State  Stateless vs Stateful sessions  Session State  Client Session State  Server Session State  Database Session State  Session Migration  Session Affinity

Distribution Strategies  Distributed Objects  Remote and Local Interfaces  First Law of Distributed Object Design:  Don’t distribute your objects  Where you have to distribute:  Client – server  Server and database  Web server and app server  Different vendors

Working with Distribution Boundaries  Remote Façade  Coarse grained objects at distribution boundaries  Data Transfer Object or Value Object  Coarse grained objects need to be transferred between the two distributed parties  Lazy Load  Lazy reading data from remote services  Caution: not lose any data

Interfaces for Distribution  XML-based HTTP  Web Service  Use it when different platforms need to talk  Synchronous  Asynchronous

Putting It All Together