CS 5150 Software Engineering Lecture 13 Software Architecture 2.
CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
-
date post
21-Dec-2015 -
Category
Documents
-
view
241 -
download
1
Transcript of CS 5150 1 CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS 5150 3
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 5150 4
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 5150 5
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 5150 6
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 5150 7
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 5150 8
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 5150 9
Example: Simple Web System
Web serverWeb browser
• Static pages from server
• All interaction requires communication with server
CS 5150 11
UML Notation:Application Programming Interface (API)
API is an interface that is realized by one or more components.
WebServer
Get Post
CS 5150 13
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 5150 14
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 5150 15
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, CGIJavaScript at clientJava applets
Style sheets:
CSS, etc.
CS 5150 16
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 5150 17
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 5150 18
UML Notation: Interface Diagram
ApacheTomcatBrowser
HTTP ODBC
MySQL
These components might be located on a single node
CS 5150 19
Three tier architecture: Broadcast searching
User interfaceservice
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 5150 20
Web User Interface: JavaScript
Data
Server
Web browser
• JavaScripts can validate information as typed
• Some interactions are local
• Server interaction constrained by web protocols
JavaScript
html
CS 5150 21
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
JavaScript
CS 5150 22
Example: Web Browser
HTTP
JavaScript
HTMLRenderEach package represents a group of objects.
WebBrowser
CS 5150 23
Web User Interface: Applet
Any server
Web serverWeb browser
• Any executable code can run on client
• Client can connect to any server
Applets
CS 5150 25
Architectural Style: Pipe
Example: A three-pass compiler
ParserLexical analysis
Code generation
Output from one subsystem is the input to the next.
CS 5150 26
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 5150 27
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 5150 28
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 5150 29
Examples of Systems Architecture for Distributed Data: Distributed Caches
.edu server
cornell.edu server
cs.cornell.edu server
First attempt to resolve www.cs.cornell.edu
1
2
3
The Domain Name System
CS 5150 30
Examples of Systems Architecture for Distributed Data: Distributed Caches
.edu server
cornell.edu server
cs.cornell.edu server
Better method
3
1
almaden.ibm.comcornell.eduece.cmu.eduibm.comacm.org.edu
2
Localcache
local DNS server
The Domain Name System
CS 5150 31
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 1987.
http://www.ietf.org/rfc/rfc1035.txt?number=1035
The Domain Name System
CS 5150 32
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