Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"

Slides:



Advertisements
Similar presentations
Apache Struts Technology
Advertisements

9.5 Software Architecture
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Lecture 23: Software Architectures
Site Skin Structure Services Space plan Stuff Software Architecture and Software Architecture Patterns (1)
©Silberschatz, Korth and Sudarshan1.1Database System Concepts Chapter 1: Introduction Purpose of Database Systems View of Data Data Models Data Definition.
Interpret Application Specifications
Chapter 2 Database Environment Pearson Education © 2014.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
UNIT-V The MVC architecture and Struts Framework.
Chapter 10 Architectural Design
MODEL VIEW CONTROLLER A Technical Seminar Report submitted to
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Copyright © cs-tutorial.com. Introduction to Web Development In 1990 and 1991,Tim Berners-Lee created the World Wide Web at the European Laboratory for.
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.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Copyright © 2012 Accenture All Rights Reserved.Copyright © 2012 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are.
COMP 410 & Sky.NET May 2 nd, What is COMP 410? Forming an independent company The customer The planning Learning teamwork.
2. Database System Concepts and Architecture
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
1 Another group of Patterns Architectural Patterns.
Pemrograman Web MVC Programming and Design Pattern in PHP 5.
Section 05Concepts Of DBMS1 HSQ - DATABASES & SQL And Franchise Colleges 05 Concepts of DBMS By MANSHA NAWAZ.
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.
Unit 2 Architectural Styles and Case Studies | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS 1.
Enterprise Integration Patterns CS3300 Fall 2015.
Model View Controller MVC Web Software Architecture.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
Information Systems Analysis and Design Reviews of IS and Software Process Spring Semester
CS 4720 Model-View-Controller CS 4720 – Web & Mobile Systems.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
Date : 3/04/2010 Web Technology Solutions Class: PHP Web Application Frameworks.
REST By: Vishwanath Vineet.
Object storage and object interoperability
SEA Side – Extreme Programming 1 SEA Side Software Engineering Annotations Architectural Patterns Professor Sara Stoecklin Director of Software Engineering-
Mr. Justin “JET” Turner CSCI 3000 – Fall 2015 CRN Section A – TR 9:30-10:45 CRN – Section B – TR 5:30-6:45.
Chapter 2 Database Environment.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Apache Struts Technology A MVC Framework for Java Web Applications.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
TECHNICAL ASSISTANCE FOR THE CONVERSION OF RBPAPs INTO RBMPs DATA MANAGEMENT INCEPTION WORKSHOP ESTAMBUL February Eusebio CRUZ GARCÍA.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
Introduction To DBMS.
Chapter 2 Database System Concepts and Architecture
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
MVC and other n-tier Architectures
OO Methodology OO Architecture.
Software Design and Architecture
Distribution and components
Part 3 Design What does design mean in different fields?
Ch > 28.4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment Pearson Education © 2009.
Web Application Architectures
Software Architecture
Database Environment Transparencies
Web Application Architectures
Web Application Architectures
Presentation transcript:

Software Architecture Patterns (2)

what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system" o designed mechanisms (causal chains & loops) which lead to - o emergent (intended) behaviour (but always some unintended behaviour as well) o"mapping" the boundaries (questions about the level of "closure")

software architecture… - Captures the gross structure of a system - How it is composed of interacting parts - How the interactions take place - Key properties of the parts - Provides a way of analysing systems at a high level of abstraction ! - Illuminates top-level design decisions

software architecture patterns Architectural pattern are software patterns that offer well-established solutions to architectural problems in software engineering. It gives description of the elements and relation type together with a set of constraints on how they may be used. An architectural pattern expresses a fundamental structural organization schema for a software system, which consists of subsystems, their responsibilities and interrelations. In comparison to design patterns, architectural patterns are larger in scale. Wikipedia

typical architectural patterns (styles) File Transfer Shared Database - How can I integrate multiple applications so that they work together and can exchange information? integration styles for (enterprise) messaging Remote Procedure Messaging

pipes and filters The Pipes and Filters architectural pattern [style] provides a structure for systems that process a stream of data. Each processing step is encapsulated in a filter component. Data is passed through pipes between adjacent filters. Recombining filters allows you to build families of related systems. [POSA p53]

example: traditional ‘nix pipes & filters e.g. using sed and awk

example: Apache Cacoon’s pipes & xslt filters

tiered architecture (layering) 2 - tier architecture (traditional client-server) A two-way interaction in a client/server environment, in which the user interface is stored in the client and the data are stored in the server. The application logic can be in either the client or the server.

3 tier architecture

model-view-controller (1) The MVC paradigm is a way of breaking an application, or even just a piece of an application's interface, into three parts: the model, the view, and the controller. MVC was originally developed to map the traditional input, processing, output roles into the GUI realm: Input  Processing  Output Controller  Model  View

model-view-controller (2) The pattern isolates business logic from input and presentation, permitting independent development, testing and maintenance of each.

mvc Model It is the domain-specific representation of the data on which the application operates. Domain logic adds meaning to raw data (for example, calculating whether today is the user's birthday, or the totals, taxes, and shipping charges for shopping cart items). When a model changes its state, it notifies its associated views so they can refresh. Many applications use a persistent storage mechanism (such as a database) to store data. MVC does not specifically mention the data access layer because it is understood to be underneath or encapsulated by the model. Models are not data access objects although in very simple apps, with little domain logic, there is no real distinction to be made. Also, the ActiveRecord is an accepted design pattern which merges domain logic and data access code - a model which knows how to persist itself.

mvc View Renders the model into a form suitable for interaction, typically a user interface element. Multiple views can exist for a single model for different purposes. mvc Controller Receives input and initiates a response by making calls on model objects. An MVC application may be a collection of model/view/controller triplets, each responsible for a different UI element.

PHP MVC Frameworks lots and lots… codeigniter, cake, kohana, jelix, limonade, mojavi, zend, zoop, symfony etc. etc. see:

mvc fat v. thin controllers ruby on rails ‘fat’ model, ‘thin’ controller approach watch:

rails Mvc : model ActiveRecord : –Maintains the relationship between Object and Database and handles validation, association, transactions, and more. –This subsystem is implemented in ActiveRecord library which provides an interface and binding between the tables in a relational database and the Ruby program code that manipulates database records. Ruby method names are automatically generated from the field names of database tables, and so on.

ActionView : –A presentation of data in a particular format, triggered by a controller's decision to present the data. They are script based templating systems like JSP, ASP, PHP and very easy to integrate with AJAX technology. –This subsystem is implemented in ActionView library which is an Embedded Ruby (ERb) based system for defining presentation templates for data presentation. Every Web connection to a Rails application results in the displaying of a view. rails mVc : view

rails mvC : controller ActionController : –The facility within the application that directs traffic, on the one hand querying the models for specific data, and on the other hand organizing that data (searching, sorting, massaging it) into a form that fits the needs of a given view. –This subsystem is implemented in ActionController which is a data broker sitting between ActiveRecord (the database interface) and ActionView (the presentation engine).