Verteilte Systeme. expeitttylverlag. Architekturen und Software-Technologien. Prof. Dipl.-Inf. J. Anton lllik

Ähnliche Dokumente
Softwareentwicklung mit Enterprise JAVA Beans

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Masterkurs Verteilte betriebliche Informationssysteme

Kommunikation in verteilten Anwendungen

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

Java 2, Enterprise Edition Einführung und Überblick

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

SOAP Simple Object Access Protocol. Dr. Reinhard Riedl Universität Zürich/Universität Rostock

Microsoft.NET und SunONE

J2EE mit Eclipse 3 und JBoss

Inhaltsverzeichnis. Zusammenfassung CORBA

Enterprise JavaBeans Überblick

Evgenia Rosa ORACLE Deutschland GmbH BU Application Server

Kommunikation. Björn und Georg

Überblick. Applikationsserver. Prof. Dr. Ch. Reich furtwangen.de furtwangen.de/~reich/appserver/index.

Alexander Schill Thomas Springer. Verteilte Systeme. Grundlagen und Basistechnologien. 2. Auflage. 4y Springer Vieweg

Kap. 3 Verteilte Objektverwaltung

Client/Server-Programmierung

Client/Server-Systeme

J2EEKurs. J2EE eine Plattform für betriebliche Anwendungen. Peter Thiemann. Sommercampus J2EEKurs, Freiburg, Germany,

Kap. 3 Evolution von TP-Monitoren zu Objekt-Monitoren

Komponentenmodelle II

Seminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Abbildung 3-1: Clients und Server C+S

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

Systema rch itektu ren für Verteilte Anwendungen

Grundlagen der Web-Entwicklung INF3172

VS12 Slide 1. Verteilte Systeme. Vorlesung 12 Sebastian Iwanowski FH Wedel

Einführung: Verteilte Systeme - Remote Method Invocation -

Java, XML und Oracle10g What's new?

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

Mobile und Verteilte Datenbanken

Einsatz von Applikationsservern. Untersucht am Beispiel des Sybase Enterprise Application Server

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

Enterprise Application Integration Erfahrungen aus der Praxis

Kapitel 1: Architektur verteilter Systeme. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

Verteilte objektorientierte Programmierung am Beispiel CORBA

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme

Überblick. Verteilte Anwendungen, Interaktionsformen. implizite, nicht-orthogonale Interaktion. explizite, orthogonale Interaktion

Einführung in parallele Dateisysteme am Beispiel von GPFS. Proseminar von Jakob Schmid im SS 2014

1 Motivation. 1 Motivation. Standard Middleware für objektorientierte Anwendungen. Motivation. Fragmentierte Objektmodel. Java RMI

26. DECUS Symposium

Hauptseminar Management von Softwaresystemen. Techniken der System-Integration EAI, Middleware, SOA, CORBA

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2008

Programmierung von verteilten Systemen und Webanwendungen mit Java EE

Kap. 3 Verteilte Objektverwaltung

InQMy Application Server Flexible Softwareinfrastruktur für verteilte Anwendungen

Zwischenbericht Diplomarbeit

WebSphere Application Server Installation

ISBN Bibliografische Information Der Deutschen Bibliothek

Multiuser Client/Server Systeme

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Mainframe und J2EE auf Augenhöhe? JCA 1.5 am Beispiel von Oracle 10g und BeanConnect 2.0

C Architektur (Teil 1)

Verteilte Systeme - 1. Übung

Axis2, CXF und JAX-WS RI im Vergleich

Verteilte Systeme - Überblick

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit Grid Systeme 1

(Software) Architektur der Dinge. Roland Graf / Simon Kranzer IKT-Forum 2016 I(o)T for Industry - Von IT zu IoT

VSS Folien Index. Grundlegende Systemmodelle...34 Interaktionsmodell...37 Fehlermodell...40 Sicherheitsmodell...41

Einführung in z/os und OS/390

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

Softwareentwicklung in verteilten Umgebungen, Teil 12 Enterprise Middleware. Dieter Schmalstieg. Dieter Schmalstieg SVU Enterprise Middleware

Netzwerkprogrammierung unter Linux und UNIX

Objektorientierte Datenbanken

Client/Server-Systeme

Web Services Die Definition von Web Services in der Theorie und FNT-Command als Web Service in der Praxis

JDO Java Data Objects

Schematische Schnittstelle eines Naming-Context-Objekts und des Binding-Iterators. BindingIterator. next_one next_n destroy

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Netzwerk-transparente Persistenz

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

WildFly Application Server Administration

Java-Bausteine für E-Commerce- Anwendungen

Oracle Real Application Cluster

Stefan Zörner. Portlets. Portalkomponenten in Java. ntwickier

8.4 Das Andrew File System Ausblicke Zusammenfassung 410 Übungen 411

<Insert Picture Here> Einführung in SOA

Inhalt. Einführung RFC-Funktionsbausteine in ABAP Funktionsbausteine zum Lesen Aufruf per srfc 108

Inhalt I. Blick in die Geschichte. .NET für kleine und grosse Applikationen

Internetanbindung von Datenbanken

Middleware im Vergleich

Enterprise Service Bus (ESB) in einer SOA

Service Oriented Architectures

Richard Oates Thomas Langer Stefan Wille Torsten Lueckow Gerald Bachlmayr. Spring & Hibernate. Eine praxisbezogene Einführung HANSER

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Enterprise Edition Teil 3. Enterprise Java Beans

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

Transkript:

Verteilte Systeme Architekturen und Software-Technologien Prof. Dipl.-Inf. J. Anton lllik expeitttylverlag

Inhalt Zielpublikum, Aufbau und Lernziele 2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.2.2 2.2.3 2.3 2.4 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 4 4.1 4.2 4.2.1 4.2.2 4.3 4.4 4.5 4.5.1 4.5.2 4.5.3 4.6 4.7 Grundlagen verteilter Systeme Hin zu verteilten Basissystemen Monolithische Batch-Systeme und Closed-Shop-Betrieb Der Computer streckt seine Fühler aus dem Rechenzentrum. Offene Systeme ermöglichen überbetrieblichen Informationsaustausch Verteilte offene Systeme Vernetzte autonome Systeme Netzwerk-Betriebssystem mit integriertem Netzwerk-Dateisystem Echt verteilte offene Systeme auf Micro-Kernel-Basis Kontrollfragen (Historie verteilter Basisarchitektur) Verteilte Anwendungen und ihre Eigenschaften Ausfall- und Fehlertransparenz Positionstransparenz (Ortstransparenz) Migrationstransparenz (Umzugstransparenz) Relokationstransparenz (Reisetransparenz) Zugriffstransparenz Replikationstransparenz (Vervielfältigungstransparenz) Parallelitätstransparenz (Nebenläufigkeitstransparenz) Skalierungstransparenz (Wachstumstranparenz) Performancetransparenz (Leistungstransparenz) Vorteile von verteilten Systemen Nachteile von verteilten Systemen Komponenten-Software und objektorientierte Ansätze Kontrollfragen (Verteilte Anwendungen und ihre Eigenschaften) Systemmodelle: Architektur verteilter Systeme Monolithische Architektur ClienWServer-Architektur Vorteile des Client-Server-Modells Client-Server-Struktur Peer-to-Peer-Architektur Service-orientierte Architekturen MVC Architekturmuster: Model-View-Controller Model View Controller Kontrollfragen (Architektur verteilter Systeme) 5 6 7 8 12 12 12 13 14 17 17 18 18 20 20 20 21 21 22 24 24 25 26 26 27 28 28 29 30 31 32 32 32 32 33

5 Technologien in verteilten Systemen 5.1 Kommunikationstechniken in verteilten Systemen 5.1.1 Sockets 5.1.2 Pipes und Fifos 5.1.3 Streams und Datagramme 5.1.4 Streameigenschaften 5.1.5 Streaminterpretation 5.1.6 Stream Sockets und Datagram Sockets 5.2 Kooperationstechniken in verteilten Systemen 5.2.1 Remote Procedure Call (RPC) 5.2.1.1 Überblick 5.2.1.2 Genereller Ablauf eines RPC 5.2.2 Remote Method Invocation (RMI) 5.2.3 XML RPC 5.2.4 Messaging Systeme 5.2.4.1 Lose Kopplung und Nachrichtenorientierung 5.2.4.2 Portabilität durch Standard-Schnittstelle 5.2.4.3 Das Produzenten-Konsumenten-Modell 5.2.4.4 Nachrichtenziele und Connection Factory 5.2.4.5 Die Paradigmen Point-to-Point und Publish-Subscribe 5.2.5 Kontrollfragen (Kommunikations- und Kooperationstechniken) 5.3 Technologieplattformen für verteilte Systeme 5.3.1 Open Group Distributed Computing Environment DCE 5.3.1.1 DCE-Architektur und Teilkomponenten 5.3.1.2 DCE-Basisdienste 5.3.1.3 Threads Services 5.3.1.4 Remote Procedure Call (RPC) 5.3.1.5 DCE Directory Service 5.3.1.6 Security Service 5.3.1.7 Distributed Time Service (DTS) 5.3.1.8 Weitere Systemdienste 5.3.1.9 Global Directory Service (GDS) 5.3.1.10 Distributed File Service (DFS) 5.3.1.11 Diskless Support 5.3.1.12 PC Integration 5.3.2 Die Microsoft COM Technologie 532 1 Der Aufbau von COM 5.3.2.2 Software-Komponenten 5.3.2.3 Server Arten 5.3.3 Die Microsoft DCOM-Technologie 5.3.3.1 Das DCOM Protokoll 5.3.3.2 Sicherheit in COM und DCOM 5.3.4 Die Microsoft.NET-Technologie 5.3.4.1 Architektur und Paradigma 5.3.4.2.NET Compact Framework 5.3.5 Die OMG CORBA Technologie 5.3.5.1 Die CORBA Spezifikation 5.3.5.2 Die Object Management Architecture 5.3.6 Die Sun Microsystems JEE/J2EE Technologie 5.3.6.1 Struktur einer J2EE-Anwendung 5.3.6.2 Die J2EE-Architektur 5.3.6.3 Einige wichtige J2EE-APIs 5.3.6.4 Java Naming and Directory Interface (JNDI) 34 34 34 35 35 36 36 36 37 37 37 38 40 42 43 43 44 45 45 46 48 49 49 50 50 50 51 51 51 53 53 55 56 57 58 58 59 60 60 61 62 62 63 64 64 66 68 68

I 5.3.6.5 5.3.6.6 5.3.6.7 5 3 6 8 5.3.6.9 5.3.6.10 5.3.6.11 5.3.6.12 Enterprise Java Beans (EJB) Java Servlet API (Servlet) Java Server Pages (JSP) Java Message Service (JMS) Java Database Connectivity (JDBC) i Java Transaction API (JTA) Java Authentication and Authorization Service (JAAS) : JavaMail 5.3.6.13 ; Java API for XML Processing (JAXP) 5.3.7 Die Sun Microsystems J2ME Technologie 5.4 5.5 Kontrollfragen (Technologieplattformen für verteilte Systeme) 69 69 69 69 70 70 70 70 71 71 71 72 6 6.1 6.2 6.3 6.4 6.5 6.6 6.6.1 6.6.2 6.7 Cluster-Systeme 73 Cluster versus LAN 73 Load-Balancing-Cluster 74 High-Performance-Cluster 75 High-Availability-Cluster 76 76 Ausblick 77 Pervasive und Ubiquitous Computing 77 Grid Computing 78 Kontrollfragen (Cluster-Systeme, Ubiquitous- und Grid-Computing) 79 7 8 8.1.1 Entwicklung verteilter Systeme Objektorientierte Programmierung und verteilte Systeme Kontrollfragen (Objektorientierte Programmierung) 80 81 83 9 9.1 9.2 9.3 9.3.1 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 9.4.5.1 9.4.5.2 9.4.6 9.4.7 9.4.8 9.4.9 9.4.10 9.4.11 9.4.12 9.4.13 9.4.14 9.4.15 9.4.16 Technologien in verteilten Systemen Client-Server-Architekturen Die Kommunikation mit Pipes Die Kommunikation mittels Sockets Kontrollfragen (Technologien / Client-Server, Pipes, Sockets) RPC Remote Procedure Call Überblick Der lokale Prozedur Aufruf Vom lokalen zum entfernten Prozeduraufruf Genereller Ablauf eines RPC Identifikation und Binden der Aufrufpartner Statisches Binden Dynamisches Binden Behandlung heterogener Datenformate: Marshalling Beschränkungen bei der Parameterübergabe Fehlerbehandlung Fehlerklasse At-Least-Once Fehlerklasse At-Most-Once Sicherheitsaspekte Schnittstellenbeschreibung mittels IDL Implementierung eines RPC-Programms Generierung eines IDL-Schnittstellenrahmens Schnittstellenrumpf RPC-Funktionsaufruf im C-Programm 84 84 84 89 93 94 94 95 98 98 101 101 101 102 102 103 103 103 103 105 105 106 107 108

9.4.17 9.4.18 9.4. 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.5.6 9.5.7 9.5.8 9.5.9 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.6.5 9.6.6 9.6.6.1 9.6.6.2 9.6.6.3 9.6.7 9.6.8 9.6.9 9.6.10 9.6.11 9.6.12 9.6.13 9.6.14 9.6.15 9.6.16 9.6.17 9.6.18 9.6.18.1 9.6.18.2 Implementierung des Servers Kontrollfragen (Technologien / RPC) RMI Remote Method Invocation Die Bestandteile einer RMI-Anwendung Das Ablaufschema eines entfernten Methodenaufrufs Die Hilfsmittel RMI-Compiler und RMI-Registry Der Sicherheitsmanager (SecurityManager) Die Komponenten und Bestandteile auf der Server-Seite Die Komponenten und Bestandteile auf der Client-Seite Vollständiges RMI-Beispiel Kontrollfragen (Technologien / RMI) Die OMG CORBA Technologie Die Object Management Architecture Das CORBA Objektmodell Terminologie Aufbau eines CORBA Objekts Objekterzeugung und -Vernichtung Die OMG Interface Description Language Die Spezifikation von Schnittstellen Language Mapping Datentypen ORB-Architektur (CORBA) Der ORB Kern Das ORB Interface Das Interface Repository (IR) IDL Stubs IDL Skeletons Das Dynamic Invocation Interface (Dil) Das Dynamic Skeleton Interface (DSI) Das Implementation Repository Objekt Adapter Der Portable Object Adapter (POA) Verteilte CORBA Anwendungen Proxy-Kommunikation Dynamische Aufrufe 9.6.18.3 Das Dynamic Invocation Interface 9.6.18.4 Das Dynamic Skeleton Interface 9.6.18.5 Aufbau einer Server-Anwendung 9.6.18.6 Aufbau eines CORBA Clients 9.6.18.7 Auffinden von Objektreferenzen 9.6. 9.6..1 9.6..2 9.6.20 9.6.21 9.7 9.7.1 9.7.2 9.7.3 9.7.4 Interoperabilität Die ORB Interoperability Architecture GIOP und IIOP Kontrollfragen (Technologien / CORBA) Serviceorientierte Architekturen und Web-Services mit XML und SOAP Web Services Diensteaufruf: SOAP Dienstebeschreibung: WSDL Diensteverzeichnis: UDDI 109 111 112 113 114 115 116 116 118 118 1 122 123 124 124 125 125 126 127 128 128 130 131 132 134 135 135 136 136 136 137 137 137 138 142 142 143 143 144 144 146 147 147 148 149 151 155 156 158 160 161 161

9.7.5 9.7.6 162 Kontrollfragen (Technologien / SOA und WebServices) 162 10 10.1 10.1.1 10.1.2 10.1.3 10.1.4 10.1.5 10.1.6 10.1.7 10.2 10.2.1 10.2.2 10.2.3 10.2.4 10.2.5 10.2.6 10.2.7 10.3 11 12 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10 12.11 13 13.1 13.2 13.3 13.4 13.5 14 14.1 14.2 14.3 14.3.1 Technologieplattformen für verteilte Systeme Die Technologie von Sun Microsystems: Java, J2SE, J2EE und J2ME Architektur und Paradigma EJBs Enterprise Java Beans Session Beans Entity Beans Message Driven Beans EJB-Rollen Die Technologie von Microsoft: C# und.net Architektur und Pradigma Common Language Runtime Assemblies Die Sprache C# Die Base Class Library Kontrollfragen (Technologieplattformen verteilter Systeme) und Ausblick Verteilte Datenhaltung RAID Konzepte Hardware RAID Software RAID RAID 0: Disk Striping: Beschleunigung ohne Fehlertoleranz RAID 1: Drive Mirroring / Duplexing: Redundanz ohne Beschleunigung RAID 2: Hamming Code ECC: Beschleunigung und Redundanz RAID 3: Data Striping mit Parität auf separater Platte RAID 4: Independent Data Disks with Shared Parity disk RAID 5: Independent Data Disks with Single Distributed Parity Blocks RAID 6: Independent Data Disks with Double Distributed Parity Blocks Kontrollfragen (RAID-Systeme) Organisationsformen für Speichersysteme DAS Direct Attached Storage NAS Network Attached Storage SAN Storage Area Network Kontrollfragen (Organisationsformen für Speichersysteme) Verteilte Dateisysteme Das Upload/Download-Modell Das Modell entfernter Zugriff NFS Network File System Das Virtual File System VFS 163 163 163 164 164 165 165 166 167 168 169 169 172 173 174 175 176 177 179 181 182 182 183 183 184 186 187 188 188 189 0 1 1 3 4 6 7 8 8 9 200 201

14.3.2 14.3.3 Das NFS Dateisystemmodell Synchronisation des Dateizugriffs 203 204 15 15.1 15.2 15.2.1 15.2.1.1 15.2.1.2 15.2.1.3 15.2.1.4 15.2.1.5 15.2.1.6 15.2.1.7 15.2.1.8 15.2.1.9 15.2.1.10 15.2.1.11 15.2.1.12 15.2.1 15.2.1.1 15.2.1.2 15.2.1.3 15.2.1.4 15.2.1.5 15.2.1.6 15.2.1.7 15.2.1.8 15.2.1.9 15.2.2 15.3 15.4 Cluster Dateisysteme Anforderungen an ein Cluster Dateisystem Beispiele von Cluster-Dateisystemen DCE DFS Distributed File Service DFS Filesysteme Aggregate und Filesets Arbeitsweise des DFS Replikation von Filesets DFS Client Komponenten DFS Server Komponenten Rollen des DFS Servers DFS Access Control Lists Die DFS ACL Zugriffsrechte Synchronisation der Filesystemzugriffe mit Token Token sind kombinierbar DCE DFS GPFS General Parallel File System Das Filesystem Synchronisation des parallelen Zugriffs Performance, Skalierbarkeit und Verfügbarkeit Die Administration Information Lifecycle Management (ILM) Cluster Konfigurationen Gemeinsame Plattenlaufwerke (shared disk) Netzbasierte Block-I/O Gemeinsame Daten zwischen Cluster Lustre Kontrollfragen (Verteilte Dateisysteme) 206 206 208 208 210 210 212 213 214 216 217 2 220 221 222 223 223 225 225 225 226 227 228 228 229 230 232 233 234 16 17 17.1 17.2 17.3 17.3.1 17.3.2 17.3.3 17.3.4 17.3.5 17.4 17.5 17.6 17.7 Zwischenbilanz 235 Verteilte Datenhaltung in verteilten Applikationen 236 Erwartungen an Datenbanken 236 Verteilte Datenbanken 237 Der Transaktionsbegriff 238 ACID - ein Wundermittel? 239 Atomicity 239 Consistency 240 Isolation 240 Durability 241 Der TP-Monitor 241 Distributed Transaction Processing 242 244 Kontrollfragen (Verteilte Datenhaltung in verteilten Applikationen) 245 18 18.1 18.2 18.2.1 18.2.2 Verteilte Datenhaltung in der Java-Technologie Kombination von SQL und Java JDBC Die JDBC Architektur Treibertypen 246 246 247 247 248

18.2.3 18.2.4 18.2.5 18.2.6 18.3 18.3.1 18.3.2 18.4 18.5 18.6 18.7 18.8.1.2.3.4.5.6.7 20 21 22 Datenbankverbindung und SQL-Befehle Statements Verteilte Transaktionen Das DataSource-Konzept SQLJ Vergleich mit JDBC SQLJ und der Übersetzungprozess Persistente Java Objekte: JDO Java Data Objects ODMG Object Database Management Standard EJBs und EJB QL Kontrollfragen (Verteilte Datenhaltung in der Java-Technologie) Namens- und Verzeichnisdienste COS (Common Object Service) DNS (Domain Name System) LDAP (Lightweight Directory Access Protocol) NIS und NIS+ (Network Information Service) JNDI (Java Naming and Directory Interface) Kontrollfragen (Namens- und Verzeichnisdienste) Lösungen Literaturverzeichnis Register 249 251 2 2 253 253 254 254 255 255 256 257 258 258 259 259 259 260 261 261 262 283 286 23 Über den Autor