inf 123 sw arch, dist sys & interop lecture 3 prof. crista lopes
Post on 19-Dec-2015
226 views
TRANSCRIPT
Objectives
Distributed Systems recap Computer networks history competency OSI model competency TCP competency
Definition: Architecture
“Set of principal design decisions” “Design decision” implies design options Not all design decisions are architectural in
nature “principal” depends on
Goals Perspectives
Design decisions may change over time Architecture may change over time
Two fundamental points Every system has an architecture Every system has at least one architect
“Architecture” in software systems Software architecture: set of principal design decisions
regarding the software itself System architecture: set of principal design decisions
regarding the system’s concepts and operation Deployment architecture: set of principal design
decisions regarding the mapping between software and hardware
Testing architecture: set of principal design decisions regarding the testing procedures and tools
Usability architecture: set of principal design decisions regarding the user experience
Usability Architecture:The VW operators perspective
Simulator(OpenSim.exe)
Configuration
(OpenSim.ini)ROBUSTServices
(OpenSim.Server.exe)
Configuration
(OpenSim.Server.ini)
Client(Hippo,
etc.)
Client(Hippo,
etc.)…
DB
…
Deployment Architecture(s)
Simulator
DBStandalone
Simulator
DBROBUSTServices
Grid
Simulator Simulator Simulator
Simulator
DB
Serverless Grid
Simulator Simulator Simulator
System Architecture
AssetService
Authentication
Service
AvatarService
VoiceService
Gatekeeper
Service
GridService
Grid UserService
InventoryService
LoginService
PresenceService
User AccountsService
User AgentsService
Physics Engine
Script Engine
Scene Manageme
nt
ClientProtocol
Stack
ClientProtocolStacks
ModuleLoader
HTTPHandlers
… …
Service Infrastructure
Simulator
C# HTTP
Server
LibOMV
ODE
log4net
MonoAddins
MySql
SQLite
OpenJPEG
…
External Dependencies
DB
Service Connectors
Software Architecture
Framework
Framework.Servers
Framework.Servers.HttpServe
r
Region.Framework
Region.Framewor
k.Scenes
Region.Framework.Interfaces
Region.CoreModul
es
Region.Physics.Manager
Region.Physics.
ODE…
Services.Interfaces
S S S…
UML diagram would do fine too
Main Points
Many architectures, not just one! Main focus of this course:
Well-known system architectures Secondary focus:
“Good” software architectures
Distributed System
“Collection of interacting components hosted on different computers that are connected through a computer network”
Component1
Component n
Hardware
Network OS
Host 3
Component1
Component n
Hardware
Network OS
Host 2
Component1
Component n
Hardware
Network OS
Host 1
…
Network
Non-Distributed Systems
Notepad Tetris … …
No interaction with other components on the network
These days they are rare…
Consequences of distribution
(Unavoidable) Network latency Vulnerability
(Happens) Resource contention Heterogeneity
All this makes things more complicated but a lot more powerful
Computer Networks
The problem, c. 1958: How to exchange data between the
computer at UCLA to the computer in Berkeley
The problem, c. 1968: How to exchange data between a computer
at UCLA and the 10 others computers out there
The problem, c. 1978: How to exchange data between all the
computers that were popping up everywhere
Early Computer Comms
Acoustic modems Point2Point (<3 acousticmodems) Circuit
switchingnetworks
ARPANET
Precursor of the Internet First packet-switching network First successful operation in 1969, 4
nodes
OSI Model
“Open Systems Interconnect”, c.1977 An architecture for engineering the
nodes of large-scale computer networks, including the Internet Layered architecture
Emerged from experiences with ARPANET
OSI ModelIm
age c
ourt
esy
of
The A
bdus
Sala
m
Inte
rnati
onal C
entr
e f
or
Theore
tica
l Ph
ysi
cs
Physical Layer
This layer conveys the bit stream - electrical impulse, light or radio signal -- through the network at the electrical and mechanical level. It provides the hardware means of sending and receiving data on a carrier, including defining cables, cards and physical aspects.
Data Link Layer
At this layer, data packets are encoded and decoded into bits. It furnishes transmission protocol knowledge and management and handles errors in the physical layer, flow control and frame synchronizationThe data link layer is divided into two sub layers: The Media Access Control (MAC) layer and the Logical Link Control (LLC) layer. The MAC sub layer controls how a computer on the network gains access to the data and permission to transmit it. The LLC layer controls frame synchronization, flow control and error checking.
Network Layer
This layer provides switching and routing technologies, creating logical paths, known as virtual circuits, for transmitting data from node to node. Routing and forwarding are functions of this layer, as well as addressing, internetworking, error handling, congestion control and packet sequencing.
Transport Layer
This layer provides transparent transfer of data between end systems, or hosts, and is responsible for end-to-end error recovery and flow control. It ensures complete data transfer.
Session Layer
This layer establishes, manages and terminates connections between applications. The session layer sets up, coordinates, and terminates conversations, exchanges, and dialogues between the applications at each end. It deals with session and connection coordination.
Presentation Layer
This layer provides independence from differences in data representation (e.g., encryption) by translating from application to network format, and vice versa. The presentation layer works to transform data into the form that the application layer can accept. This layer formats and encrypts data to be sent across a network, providing freedom from compatibility problems. It is sometimes called the syntax layer.
Application Layer
This layer supports application and end-user processes. Communication partners are identified, quality of service is identified, user authentication and privacy are considered, and any constraints on data syntax are identified. Everything at this layer is application-specific. This layer provides application services for file transfers, e-mail, and other network software services. Telnet and FTP are examples.
Transport Layer
Two dominant protocols Transmission Control Protocol (TCP) User Datagram Protocol (UDP)
TCP
Conceived c. 1974, Vint Cerf & Bob Kahn Connection-oriented Guarantees delivery of a data stream
sent from one host to another without duplication or losing data. Reliability over performance Not particularly suitable for real-time
applications such as Voice over IP or RT gaming
Protocol upon which the Web (HTTP) operates
Ports vs. IP Addresses
Component1
Component n
Hardware
Network OS
Host 3
Component1
Component n
Hardware
Network OS
Host 2
Component1
Component n
Hardware
Network OS
Host 1
…
Network
Ports
IP Addresses
TCP main idea
Large data
Component1
Hardware
Network OS
Host 1
Componenta
Hardware
Network OS
Host 2