Department of Computer Science Institute for System Architecture, Chair for Computer Networks Computer Networks and Distributed Systems as a Basis for Cooperative Applications http://www.rn.inf.tu-dresden.de
Outline Distributed Systems on top of Computer Networks Typical Architectures Research Topics: - Network Emulation as a Basis - Cloud Environments Folie 2
What are Distributed Systems? A Distributed System comprises several single components on different computers, which normally do not operate using shared memory and as a consequence communicate via the exchange of messages. The various components involved cooperate to achieve a common objective such as the performing of a business process. Main Characteristics: Multiple individual components Spatially separated components Components posses own memory Access to common resources (e.g. databases) Communication via messages Cooperation towards a common objective Folie 3
Computer Network: Topology LAN WAN L A N LAN (for instance high performance network) L A N V.A.N. Value added network Distributed OS Networked workstations, also organizationally integrated Super-proportionally increasing communication performance Distributed DB Folie 4
Example: Distributed System LAN L A N WAN LAN (for instance high performance network) L A N V.A.N. Value added network Distributed Logical OS Process communication path Application components (domain-specific) on top of infrastructure Distributed DB Folie 5
Example System: E-Commerce Application Server Store management Store tables Web Server Online shop Application Server Purchase Order Preprocessing Web Service Application Server Administration of customer data Customer data Web Service Application Server Data base Supplier Folie 6
Distributed System Example: Infrastructure (E.g. Point of Sale) (E.g. Fieldworker) (E.g. Home Access) Server (E.g. Preprocessing) Requirements: Server (E.g. Customer history database) Decentralized system structure Scalability Security concepts Transaction processing Heterogeneity of systems Folie 7
Architectures: Two/Three Tier (e.g. Point of Sale) (e.g. Fieldworker) Server (E.g. preprocessing) Server (E.g. Customer history database) (e.g. Home Access) User interface, if necessary pre-processing (thin client vs. fat client) (Presentation Tier) Application Logic (Processing Tier) Data management (Persistence Tier) 2-tier: two-level structure (user-interface <->Host); simple, but less flexible 3-tier: three-level structure; preferable for complex applications Folie 8
Architectures: Cloud (E.g. Point of Sale) Private / Public Cloud (E.g. Fieldworker) Intranet / Internet (E.g. Home Access) Folie 11
Architectures: Cloud Cloud - Availability and use of computing power in a way analogous to the provision of water and electricity in modern utility grids (transparently operating as a cloud ) Single organisations may not have sufficient resources for data and computationally intensive problems Aggregation of computing resources from multiple organisations Individual organisations can access resources on demand to cater for fluctuating need Saving in processing time and hardware costs outweighs the rise in coordination and synchronisation complexity E.g. Projects: Earth System Grid, Human Genome Research, Commercial cloud providers (Amazon, T-Systems, IBM, ) Folie 12
Architectures: Peer-to-Peer Peer Peer Peer Server (Cluster) Peer Peer Peer Peer Direct communication between peers Option of no centralised architecture Peers both service providers and users Mechanism for finding service providing peers necessary Folie 13
References Schill, A., Springer, T.: Verteilte Systeme - Grundlagen und Basistechnologien. Springer, Berlin, 2012 Tanenbaum, A.S., van Stehen, M.: Distributed Systems: Principles and Paradigms. Prentice Hall International, 2008 Steinmetz, R. & Wehrle, K.: Peer-to-Peer Systems and Applications. Springer, Berlin, 2005 Folie 15
Network Emulation: Motivation An Example of a distributed system: the video conferencing and meeting software GoToMeeting by Citrix, Online Services Division Source: Citrix Online, Folie 16
Motivation Problems when testing distributed systems Systems can have huge dimensions o Peer2Peer systems o Conference and meeting systems for up to 1000 participants o à scalability and load tests are necessary Heterogeneity of the endpoints o PCs o Notebooks, smartphones, tablets à mobility o Different network access technologies: DSL, Cable, WiFi, WiMax, Solution: Scalability tests including different network characteristics and behavior à NESSEE: Network Endpoint Server Scenario Emulation Folie 17
Example scenarios 13.03.2012 Folie 18 von Folie 18
NESSEE research questions What are the important network parameters, characteristics and effects for scalability tests of distributed systems? Bandwidth, delay, jitter, loss, duplication, corruption, reordering, background traffic, asymmetric routes, bandwidth sharing, How to determine real world parameter values for the network emulation? What is necessary to emulate very large scenarios? Can existing solutions already cover this? >1000 network nodes How to dynamically reconfigure the network emulation during runtime of the tests? Emulation of disconnections and varying parameters Folie 19
Reproducing network behavior Simulation Simulation of the network using software that usually runs on only one machine Huge scenarios cannot be simulated on one machine Emulation Reproduction of a computer network with specific characteristics on a real physical computer network Modification of real network traffic Using hardware high performance and accuracy Using software dynamic configuration, flexible Using emulation environments o Test networks with many nodes (Cooperation of universities and research institutes) o Testing of distributed systems by deploying it on the nodes Emulation allows real endpoint software to join a test Folie 20
Existing solutions Simulators ns-2, ns-3 (also emulation mode), OMNET++, NetSim, NCTUns, QualNet, OPNET, SSFNet, yans, GTNetS, GloMoSim, OSA, JiST/SWANS, cnet, simscript, Traffic, Shunra VE, Extend, INES, J-Sim, HEGONS, Narses, 3LS, NeuroGrid, P2PSim, PeerSim, ONE Hardware emulators Apposite LinkTropy 7500 (Energy Lab) Software emulators NetEm, NISTNet, DummyNet, KauNet, EMPOWER, NetPath, WanEm, EstiNet 7.0 Network Simulator and Emulator / NCTU ns Emulation environments PlanetLab, OneLab, VINI, Emulab, ORBIT, WhyNet Folie 21
NESSEE architecture NESSEE Editor: Authoring tool to create test cases written in the generic Test Description Language (TDL) NESSEE Server: coordination of the test Degrader: network emulation based on the TDL specification Test systems for client and server components of the Software Under Test Folie 22