410 likes | 543 Views
INF 123 SW Arch, dist sys & interop Lecture 3. Prof. Crista Lopes. Objectives. Distributed Systems recap Computer networks history competency OSI model competency TCP competency. Recap. Definition: Architecture. “Set of principal design decisions”
E N D
INF 123 SW Arch, dist sys & interopLecture 3 Prof. Crista Lopes
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 DB Configuration (OpenSim.Server.ini) Configuration (OpenSim.ini) Simulator (OpenSim.exe) ROBUST Services (OpenSim.Server.exe) … Client (Hippo, etc.) Client (Hippo, etc.) …
Deployment Architecture(s) ROBUST Services DB Simulator DB Standalone Simulator Simulator Simulator Simulator Grid DB Simulator Simulator Simulator Simulator Serverless Grid
System Architecture Asset Service Authentication Service Avatar Service Voice Service Gatekeeper Service Grid Service DB Grid User Service Inventory Service Login Service Presence Service User Accounts Service User Agents Service Service Infrastructure Mono Addins C# HTTP Server Service Connectors Physics Engine Script Engine Scene Management MySql LibOMV … SQLite ODE … … Client Protocol Stack Client Protocol Stacks Module Loader HTTP Handlers Open JPEG log4net Simulator External Dependencies
Software Architecture Framework Framework.Servers Region.Framework.Interfaces Services.Interfaces Region. Framework … S S S Framework.Servers. HttpServer Region. Framework. Scenes Region. CoreModules Region. Physics. Manager Region. Physics. ODE … 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 interactingcomponentshosted on different computers that are connected through a computer network” … Component n Component n Component n Component1 Component1 Component1 Network Network OS Network OS Network OS Hardware Hardware Hardware Host 2 Host 1 Host 3
Examples • Email • FTP • Web • SETI @ Home • MMOs • …
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) • Circuitswitchingnetworks
ARPANET • Precursor of the Internet • First packet-switching network • First successful operation in 1969, 4 nodes
The Internet, c. 2005 http://www.opte.org/maps/
The Origins of the Internet • Heterogeneous computers • Decentralized control • Many interested players
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 Model Image courtesy of The Abdus Salam International Centre for Theoretical Physics
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 synchronization The 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.
The shape Data size
OSI Model in Action UCI routers Google routers DBH wireless router Google server Your laptop
In reality Boundaries are fuzzy
Another shape of the Internet Diversity Transport Layer Network Layer Diversity
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 Ports … Component n Component n Component n Component1 Component1 Component1 Network Network OS Network OS Network OS Hardware Hardware Hardware Host 3 Host 1 Host 2 IP Addresses
TCP main idea Large data Component1 Componenta Network OS Network OS Hardware Hardware Host 1 Host 2
TCP main idea Large data Host 1 Host 2 Connect Listen Packet 1 Ack1 … If packets don’t get ack’ed within a period of time, Host 1 resends them