CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.

Slides:



Advertisements
Similar presentations
DT228/3 Web Development WWW and Client server model.
Advertisements

8.
Technical Architectures
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
Outline IS400: Development of Business Applications on the Internet Fall 2004 Instructor: Dr. Boris Jukic Server Side Web Technologies: Part 2.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Component and Deployment Diagrams
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Quick Tour of the Web Technologies: The BIG picture LECTURE A bird’s eye view of the different web technologies that we shall explore and study.
INTRODUCTION TO WEB DATABASE PROGRAMMING
The Design Discipline.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
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.
An Introduction to Software Architecture
Chapter 17 - Deploying Java Applications on the Web1 Chapter 17 Deploying Java Applications on the Web.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
CS 360 Lecture 8.  The requirements describe the function of a system as seen by the client.  The software team must design a system that will meet.
10/6/2015 ©2007 Scott Miller, University of Victoria 1 2a) Systems Introduction to Systems Introduction to Software Systems Rev. 2.0.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
WEB BASED DATA TRANSFORMATION USING XML, JAVA Group members: Darius Balarashti & Matt Smith.
Chapter 6 Server-side Programming: Java Servlets
1 Welcome to CSC 301 Web Programming Charles Frank.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
_______________________________________________________________________________________________________________ E-Commerce: Fundamentals and Applications1.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
1 MSCS 237 Overview of web technologies (A specific type of distributed systems)
Overview Web Session 3 Matakuliah: Web Database Tahun: 2008.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
CS 501: Software Engineering
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 13 System Architecture and Design I.
Web application architecture1 Based on Jim Conallen: Web Applications with UML.
1 WWW. 2 World Wide Web Major application protocol used on the Internet Simple interface Two concepts –Point –Click.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
WEB SERVER SOFTWARE FEATURE SETS
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 15 System Architecture and Design I.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Database application development 1. Chapter 8 © 2013 Pearson Education, Inc. Publishing as Prentice Hall OBJECTIVES  Define terms  Explain three components.
1 LM 6 Database Applications Dr. Lei Li. Learning Objectives Explain three components of a client-server system Describe differences between a 2-tiered.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
R R R CSE870: UML Component Diagrams Implementation Diagrams.
CS 5150 Software Engineering Lecture 12 Software Architecture 1.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
CX Introduction to Web Programming
Web Concepts Lesson 2 ITBS2203 E-Commerce for IT.
Part 3 Design What does design mean in different fields?
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
System Architecture CS 560 Lecture 8.
Lecture 1: Multi-tier Architecture Overview
Chapter 6 – Architectural Design
IMPORTANT NOTICE TO STUDENTS:
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Database Architecture
Presentation transcript:

CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1

CS Administration

CS CS 5150: Software Engineering Usability (continued)

CS Changes in user interface design Examples of change: 1995 to 2009

CS

CS

CS

CS

CS

CS

CS

CS

CS

CS

CS

CS CS 5150: Software Engineering System Architecture and Design

CS System Architecture and Design The overall design of a system: Computers and networks (e.g., monolithic, distributed) Interfaces and protocols (e.g., http, ODBC) Databases (e.g., relational, distributed) Security (e.g., smart card authentication) Operations (e.g., backup, archiving, audit trails) Software environments (e.g., languages, source control tools)

CS UML: System and Subsystem Modeling Subsystem model A grouping of elements that specifies what a part of a system should do. Component (UML definition) "A distributable piece of implementation of a system, including software code (source, binary, or executable) but also including business documents, etc., in a human system." A component can be thought of as an implementation of a subsystem.

CS UML Diagrams and Specifications For every subsystem, there is a choice of diagrams Choose the diagrams that best model the system and are clearest to everybody. In UML every diagram must have supporting specification The diagrams shows the relationships among parts of the system, but much, much more detail is needed to specify a system explicitly. For example, to describe an Applet, at the very least, the specification should include the version of the protocols to be supported at the interfaces, the options (if any), and implementation restrictions.

CS UML Notation: Component & Node orderform.java A component is a physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces. Server A node is a physical element that exists at run time and represents a computational resource, e.g., a computer.

CS Components and Replaceability Components allow system to be assembled from binary replaceable elements A component is physical -- bits not concepts A component can be replaced by any other component(s) that conforms to the interfaces A component is part of a system A component provides the realization of a set of interfaces

CS Components and Classes Components represent physical things. They may live on nodes. Classes represent logical abstractions. They may be grouped into packages. Classes have attributes and operations directly. Components have operations that are reachable only through interfaces.

CS Example: Simple Web System Web server Web browser Static pages from server All interaction requires communication with server

CS UML Notation: Deployment Diagram WebBrowser PersonalComp WebServer DeptServer components

CS UML Notation: Application Programming Interface (API) API is an interface that is realized by one or more components. WebServer GetPost

CS UML Notation: Interfaces WebBrowserWebServer HTTP dependency interface realization

CS Architectural Styles An architectural style is system architecture that recurs in many different applications. See: Mary Shaw and David Garlan, Software architecture: perspectives on an emerging discipline. Prentice Hall, 1996

CS Architectural Style: Client/Server Web example: Serving static pages Firefox client Apache server The control flows in the client and the server are independent. communication between client and server follows a protocol. In a peer-to-peer architecture, the same component acts as both a client and a server.

CS System Architecture Example: Extensibility in Web Browsers Web browsers provide a flexible user interface through an extensible architecture Protocols: HTTP, WAIS, Gopher, FTP, etc., proxies Data types: helper applications, plug-ins, etc. Executable code: Server-side code, e.g., servlets, CGI JavaScript at client Java applets Style sheets: CSS, etc.

CS Web User Interface: Application Server Web browser Server-side code can configure pages, access data, validate information, etc. All interaction requires communication with server Data Server

CS Architectural Style: Three Tier Architecture Web example: Serving dynamic pages Each of the tiers can be replaced by other components that implement the same interfaces Presentation tier Application tier Database tier

CS UML Notation: Interface Diagram Apache Tomcat Browser HTTP ODBC MySQL These components might be located on a single node

CS Three tier architecture: Broadcast searching User interface service User Databases This is an example of a multicast protocol. The primary difficulty is to avoid troubles at one site degrading the entire system (e.g., every transaction cannot wait for a system to time out).

CS Web User Interface: JavaScript Data Server Web browser JavaScripts can validate information as typed Some interactions are local Server interaction constrained by web protocols Java Script html

CS UML Notation: Package A package is a general-purpose mechanism for organizing elements into groups. Note: Some authors draw packages with a different shaped box: JavaScript

CS Example: Web Browser HTTP JavaScript HTMLRender Each package represents a group of objects. WebBrowser

CS Web User Interface: Applet Any server Web server Web browser Any executable code can run on client Client can connect to any server Applets

CS Applet Interfaces WebBrowserWebServer HTTP XYZServer XYZInterface

CS Architectural Style: Pipe Example: A three-pass compiler Parser Lexical analysis Code generation Output from one subsystem is the input to the next.

CS Architectural Style: Repository Repository Input components Transactions Advantages: Flexible architecture for data-intensive systems. Disadvantages: Difficult to modify repository since all other components are coupled to it.

CS Architectural Style: Repository with Storage Access Layer Data Store Input components Transactions Advantages: Data Store subsystem can be changed without modifying any component except the Storage Access. Storage Access This is sometimes called a "glue" layer Repository

CS Examples of Systems Architecture for Distributed Data: Replication Replication Several copies of the data are held in different locations. Mirror: Complete data set is replicated Cache: Dynamic set of data is replicated (e.g., most recently used) With replicated data, the biggest problems are concurrency and consistency.

CS Examples of Systems Architecture for Distributed Data: Distributed Caches.edu server cornell.edu server cs.cornell.edu server First attempt to resolve The Domain Name System

CS Examples of Systems Architecture for Distributed Data: Distributed Caches.edu server cornell.edu server cs.cornell.edu server Better method 3 1 almaden.ibm.com cornell.edu ece.cmu.edu ibm.com acm.org.edu 2 Local cache local DNS server The Domain Name System

CS Examples of Systems Architecture for Distributed Data: Distributed Caches For details of the actual protocol read: Paul Mockapetris, "Domain Names - Implementation and Specification". IETF Network Working Group, Request for Comments: 1035, November The Domain Name System

CS Examples of Systems Architecture for Distributed Data: Intermittent Connectivity This is an example of an epidemic protocol. Such protocols are especially useful in networks with intermittent connectivity, e.g., mobile computing. The biggest problem is ensuring that the data is distributed effectively. Example: Usenet