Informatik (Subject) / TK1: Rechnernetze, Verteilte Systeme und Algorithmen (Lesson)

There are 35 cards in this lesson

TU-Darmstadt TK1: Rechnernetze, Verteilte Systeme und Algorithmen Einführung Auffrischung und Ergänzung von Kapitel 1 der Kanonik Net-Centric Computing Überblick über die Vorlesung Verteilte Algorithmen Elementaralgorithmen (z.B. globaler Zustand) Basisalgorithmen (z.B. Ausschluss, Konsens, Kooperation) Formalisierung (Eigenschaften und deren Nachweis) Verteiltes Programmieren Push-Paradigmen (z.B. IPC, RPC, DOC) aktuelle Ansätze (z.B. Pull-Paradigmen, Objektmobilität) Verteilte Softwareentwicklung Überblick - Rechnernetze und Internet Mechismen für Lokale Netze und Vermittlung Tiefer Einblick in IP und TCP Mechanismen für Anwendungen und Dienste im Internet

This lesson was created by mweiland.

Learn lesson

  • Die drei Basis Probleme von Verteilten Systemen - lack of global state - indeterministic behaviour - lack of common clock
  • Anforderungen von Verteilten Systemen - support for heterogeneity - Openness - Scalability - Security - Failure handling - Cuncurrency - Transparency (Abstraction of an apsect...)
  • System Models - Client Server - Peer-to-peer (Napster)
  • Abstraktionsebenen bei Verteilten Systemen Level 1. physical configuration Level 2. logical configuration Level 3. process networks (logical distribution) Level 4. distributed Algorithm
  • Definiton von Transparenz bezüglich Verteilten Systemen (Transparency) Bedeutet hier etwas verstecken! Transparenz bei verteilten Systemen beschreibt den Versuch, ein solches System nach aussen hin als eine einzelne Einheit zu präsentieren. Damit werden die einzelnen Knoten eines verteilten Systems, sowie die weitere Infrastuktur nach außen hin vor dem Nutzer und Anwendungsprogrammirer versteckt. Das System wird dann als ganzes und nicht als Ansammlung von unabhängigen Bestandteilen empfunden.- Dem Programmierer wird ein High-Level Konzept vermittelt
  • Die 8 Typen/Formen von Transparenz 1. Access transparency (Zugriff) 2. Location transparency (Ort) 3. Concurrency transparency (Nebenläufigkeit) 4. Replication transparency (Replikation) 5. Failure transparency (Fehler) 6. Mobility transparency (Migration) 7. Performance transparency 8. Scaling transparency
  • Klassifikationen von Verteilten Systemen Verteilte Systeme (Distributed Systems) sind klassifiziert als Multiple Instruction Multiple Data (MIMD). Wie mehrprozessorsysteme.   SISD (Single Instruction, Single Data) = PC SIMD (Single Instruction, Multiple Data) =  parallel computers (same operation on multiple data simultaneously) MISD (Multiple Instruction Single Data) = parallel computing architecture
  • Aufgaben von Verteilten Systemen (heutzutage) Remote communication Fault tolerance High availability Remote information access Distributed security
  • Programming Abstraction (4 Prinzipen bei Verteilten Systemen) 1.    Distributed operatingsystems / Verteilte BetriebssystemeUnterstützung für die verteilte Programmierung ist teil des Betriebssystems.2.    Distributed databases / Verteilte DatenbankenUnterstzützung für die verteilte Programmierung ist teil des Datenbanksystems. Verteilte Programmierung wird als Teil einer Datenbank realisiert.3.    Protocol approachfordedicatedpurposes / Offene ProtokolleStandardisierteProtokollo für die Verbindung mit den Server (z.B. http)Protokoll ist definiert und kann von jedem implementiert werden. (Sequentielle Sicht auf das System). Standardisierte Protokolle werden für bestimmte Probleme verwendet. Dies limitiert diesen Ansatz.4.    Distributed Programming („language“) approach /ProgrammiersprachenansatzEinzelne Prozesse können auf verschiedenen Rechnern laufen und bilden die verteilten Anwendungen. Middle Ware
  • Pro und Contra von Verteilten Systhemen Pro: - DRTS intertwined with language (Effizienzsteigerung)- side by side competition of languages- heterogeneity, migration, autonomy etc. may be addressed   Contra: - n languages -->n DRTSes- loosely interwined w/OS- many problems to be adressed (-->extensible solutions?)
  • ISO OSI 7 Layer Architectur (aufzählen der 7 Schichten) 1. Physical (Ehternet) 2. Data Link (ARP) 3. Network (IP) 4. Transport (TCP, UDP) 5. Session 6. Presentation 7. Application
  • IPC Characteristics - Messages zwischen zwei prozessen werden von zwei kommunikationen unterstützt: send und reveive - Eine Warteschlange (Queue) wird jeder Destination einer message zugeordnet--  send --> adds message to remote queue--  receive-->remoes message from local queue)
  • IPC Synchonisationsmöglichkeiten Synchonous  sender und reveiver synchonisieren sich bei jeder Message Asynchronous  send is non blocking, transmission parallel to sending process receive is blocking (polling), or non-blocking (interrupt/callback)blocking receive: keine nachteile wenn multiplethreading verfügbar.non-blocking reveive: effizienter jedoch wird extra komlexität im empfangsproess benötigt um die empfangsmessen mit der anfrage zu verbinden    
  • IPC Destinations Message wird zu internetadresse port nummer gesendet (kurz zum Socket).   Portnummer hat immer einen empfänger (Prozess) und kann mehrere Sender haben.
  • TCP/IP Probleme break down byte stream to messagesWann die message rausschicken (wenn max. segment size erreicht...) message-based traffic is a bad match
  • SCTP (Stream Transmission Protocoll) message oriented wie UDP supports congestion (Andrang, Stau) control like TCP Features Flexibles message orientiertes streamingJede Message in einem Stream bekommt eine sequenz nummer zum sortieren Multi streamingmultiple unabhängige message streams können multiplexed werden in eine einzige verbindung Multi homingbeide endpunkte können merere IP adressen zum failover besitzen
  • Internet Transport Protokolle für Morgen UDP Lite DCCP (Datagram Congestion Control Protocol)
  • UDP Unreliable transport (unzuverlässiger Transport) Preserve message boundary Unordered delivery Data Checksum
  • UDP Lite Erweitert UDP um Partial Checksum Unreliable transport (unzuverlässiger Transport) Preserve message boundary Unordered delivery Data Checksum Partial Checksum
  • TCP Verbindugnsorientiert (Connection oriented) Zuverlässiger Transport Sortierte auslieferung (ordered delivery) Data Checksum Path MTU Congestion (Stauung) control Bundling /Nagle
  • SCTP Verbindet UDP eigenschaften und TCP und erweitert dies noch um Multiple streams Multi-homing es besitzt keine Partial checksum
  • DCCP Verbindugnsorientiert (Connection oriented) UnzuverlässigerTransport Preserve message boundary unsortierte auslieferung (Unordered delivery) Data Checksum Partial checksum Path MTU Congestion (Stauung) control
  • RPC steht für Remote Procedure Call
  • Basis Eigenschaften von RPC (Remote Procedure Call) Synchrone Kommunikation Nur 1 call muss auf die remote procedure zugreifen (needed to access) System kümmert sich um "kleine details". (Message assembly and disassembly) Komplexität genauso hoch wie die eines normalen Prozedur aufrufs Transparent to distribution (solange client den server finden kann, ist es uninteressant wo dieser ist)
  • RPC Fehler Semantic (welche 4 Typen gibt es) maybe at-least-once at-most once exactly once
  • Nagels Algorithmus if there is new data to send  if the window size >= MSS and available data is >= MSS    send complete MSS segment now  else    if there is unconfirmed data still in the pipe      enqueue data in the buffer until an acknowledge is received    else      send data immediately    end if  end ifend if
  • Marshalling (Was ist Marshalling) Strukturierte Daten und primitive Datentypen werden in eine externe Datenrepräsentation (serialisierte Form) gebracht. Unmarshalling ist der umgekehrte Vorgang. Genauer: Client und Server kommunizieren mittels eines strikt definierten Übertragungsformats. Konkrete Anfragen, die der Client stellt, oder Antworten, die der Server erzeugt, müssen vom jeweils systemspezifischen Format in dieses Übertragungsformat überführt werden. Dieser Vorgang wird als Marshalling bezeichnet. Der Vorgang des überführens des gemeinsamen Übertragungsformats in das jeweils systemspezifische Format wird „Unmarshalling“ genannt.
  • WSDL bedeutet/steht für Web Service Description Language "Liste was der Server bietet"
  • WSDL besteht aus welchen 7 Elementen Types (Definition von en Typen) Message (Definition von ein- und ausgehenden messages) Port Type (group actions that logically belong together) Operations (Def. der actions die vom server supportet werden....) Binding (protokoll details SOAP over HTTP) Service (Container für ports) Port (def. der individuellen endpunkte unter welchen ein service genutzt werden kann.
  • SOAP steht für Simple Object Access Protokoll
  • SOAP Messages bestehen aus Envelope (Umschlag)def. namespace... Headermetadata für den body. Zusätzliche Infos (WS-* extensions).... Bodypayload....
  • DOC steht für Distributed Object Computing (fernsteuern von Objekten)
  • REST steht für REprestentation State Transfer architecture style für verteilte Systeme
  • Service Management Lifecycle (4 Teile) Discovery Selection Assembly Execution
  • Mainstream Paradigma (4 Stück) IPCUDP, TCP RPCMarshalling: CORBA, XML,/SOAP, JavaRPC Failure SemantivsAsynchronous CallsConcurrencyJava Threads & SynchronizationSynchronization concepts: Monitor, Mutex, Semaphor DOC MiddlewareJaca RMICORBA Web ServicesXML, SOAP, WSDL, UDDIREST ("back to IPC")BPEL