Your SlideShare is downloading. ×
Illik verteilte systeme
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Illik verteilte systeme

733
views

Published on

Verteilte Systeme: Architekturen und Software-Technologien. Die Folien zum Buch.

Verteilte Systeme: Architekturen und Software-Technologien. Die Folien zum Buch.

Published in: Education

1 Comment
0 Likes
Statistics
Notes
  • Im Serverprogramm Seite 18 muss es heissen: *z=x+y;
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
733
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
5
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Verteilte Systeme Architekturen und Software-Technologien J. Anton IllikProf. J. Anton Illik 1 Prof. J. Anton Illik
  • 2. Die Folien zum Buch Das Buch vermittelt dem Leser Fach- und Methoden-Kompetenz in folgenden Punkten: Kenntnis der gewünschten charakteristischen Eigenschaften verteilter Systeme – Unterscheidung und Bewertung verschiedener Systemmodelle (z.B. Client-Server-, Peer-to-Peer- Architektur, serviceorientierte Architektur) – Beherrschung der Grundlagen von Interprozess-Kommunikationsmechanismen und Middleware in verteilten Systemen (Sockets, RPC, RMI, CORBA, Messaging Services etc.) – Beurteilung der Ansätze für den Entwurf und die Realisierung von verteilten Anwendungen (verteilte Objekte, Web- Services, Java EE/JEE usw.) – Kenntnis der Lösungs- und Einsatzmöglichkeiten für die verteilte Datenhaltung kennen (verteilte Dateisysteme, Namensdienste Datenbanken usw.) – Einschätzung des Potenzials neuer Computing Paradigmen, wie z.B. Cluster Computing, und ihrer Bedeutung für den eigenen betrieblichen Einsatz.Prof. J. Anton Illik 2 Prof. J. Anton Illik
  • 3. Die Folien zum Buch •  Inhalt: 1) Grundlagen verteilter Systeme: 2) Grundlagen verteilter Systeme - Verteilte Anwendungen und ihre Eigenschaften – 3) Verteilet Anwendungen und ihre Eigenschaften – 4) Systemmodelle: Architektur verteilter Systeme – 5) Technologien in verteilten Systemen – 6) Cluster-Systeme 7) Entwicklung verteilter Systeme. 8) Objektorientierte Programmierung und verteilte Systeme – 9) Technologien in verteilten Systemen – 10) Technologieplattformen für verteilte Systeme – Die Technologie von Microsoft: C# und .NET – 11) Verteilte Datenhaltung – 12) RAID Konzepte – 13) Organisationsformen für Speichersysteme – 14) Verteilte Datensysteme – 15) Cluster Dateisysteme 17) Verteilte Datenhaltung in verteilten Applikationen: 18) Verteilte Datenhaltung in der Java-Technologie – 19) Namens- und Verzeichnisdienste •  Die Interessenten: Zukünftige IT-System- und Software-Architekten – Fortgeschrittene Studierende der Allgemeinen Informatik, Wirtschaftsinformatik, Medieninformatik, Bioinformatik, Medizininformatik, Geoinformatik. Das Buch ist ein idealer Begleiter für Lehrveranstaltungen zu den Themen »Programmentwicklung verteilter Systeme« und »Verteilte Computer-Systemarchitekturen«. Primär richtet sich das Buch an zukünftige IT-System- und Software-Architekten. •  Der Autor ist Professor für Software-Engineering und Programmiersprachen an der Fakultät für Wirtschaftsinformatik an der Hochschule Furtwangen. Er verfügt über eine umfassende Praxiserfahrung als Berater, Account-Manager und Geschäftsführer eines Informatik-Hauses. •  Blog: www.illik.de eMail: johann.illik@hs-furtwangen.deProf. J. Anton Illik 3 Prof. J. Anton Illik
  • 4. Zielpublikum,  Au-au  und  Lernziele   Business Software Systems Basic Engineering Engineering Engineering Engineering Einführung Programmieren Allgemeine BWL Datenbanken 1 in die WI und Modellieren 1 Mathematik & Statistik Rechnungswesen Algorithmen Internetworking und Controlling und Datenstrukturen Makroökonomie Präsentations- und Moderationstechnik Programmieren Geschäfts-Prozesse System-Architekturen und Modellieren 1 WPV Integrierte Logistik Datenbanken 2 Standardsoftware WPV und Software Engineering SCM Computernetze Organisations- Praxissemester und Führungstechnik Praxis-Seminar Vor- und Nachbearbeitungsblock Studienarbeit Soziale Interaktion Software- Business-Projekt Netzdesign Projekt WPV Bachelor-Seminar Mündliche Prüfung WI Thesis Bild 1Prof. J. Anton Illik 4 Prof. J. Anton Illik
  • 5. Zielpublikum,  Au-au  und  Lernziele   Grundlagen  verteilter  Systeme   Applikations-Ebene/ Anwendungen Systemsoftware-Ebene / Betriebssystem Systemebene Hardware-Ebene Bild 2Prof. J. Anton Illik 5 Prof. J. Anton Illik
  • 6. Monolithische  Batch-­‐Systeme  und  Closed-­‐Shop-­‐Betrieb   Der  Mainfraime,  eingesperrt  im  Rechenzentrum   Mainframe Drucker Backbone Netz Frontend Mainframe Karten- Leser Rechenzentrum Bild 3Prof. J. Anton Illik 6 Prof. J. Anton Illik
  • 7. Der  Computer  streckt  seine  Fühler  aus  dem  RZ   Der  Computer  verlässt  das  Rechenzentrum   Backbone Netz Mainframe Drucker Frontend Mainframe Karten- Leser Terminal- Multiplexer Mainframe Rechenzentrum Terminal Terminal Terminal Terminal Fachabteilung Bild 4Prof. J. Anton Illik 7 Prof. J. Anton Illik
  • 8. Der  Computer  streckt  seine  Fühler  aus  dem  RZ   Die  MulHvendor  –  Umgebung  forciert  offene  verteilte  Systeme   Backbone Netz Mainframe Drucker Frontend Mainframe Karten- Leser Terminal- Multiplexer Mainframe Rechenzentrum Abteilungs- computer Terminal Terminal Terminal Terminal Local Area Network Workstation PC Workstation PC Fachabteilung Bild 5Prof. J. Anton Illik 8 Prof. J. Anton Illik
  • 9. Netzwerk-­‐OS  mit  integriertem  Netzwerk-­‐Dateisystem   Das  NFS:  OrganisaHon  auf  physikalischer  und  logischer  Ebene   Physikalische Hierarchisches Platte Datensystem Partition 1 Filesystem 1 Partition 2 Filesystem 2 Partition 3 Filesystem 3 Filesystem 4 Partition 4 Bild 6Prof. J. Anton Illik 9 Prof. J. Anton Illik
  • 10. Echt  verteilte  offene  Systeme  auf  Micro-­‐Kanal-­‐Basis   Das  Client-­‐Server-­‐Prinzip  auf  Micro-­‐Kanal-­‐Basis   •• Terminal- Client- Server Prozess 2 File- Server Client- Memory- Prozess 1 Server Inter-Prozess-Kooperation Netz- Server Speichermanagement Prozessmanagement User Space Hardwareinterface Micro-Kernel Kernel Space Bild 7Prof. J. Anton Illik 10 Prof. J. Anton Illik
  • 11. Echt  verteilte  offene  Systeme  auf  Micro-­‐Kanal-­‐Basis   Das  Client-­‐Server-­‐Modell  in  einer  verteilten  Umgebung   Client Terminal- RAM Server Client Server µ Kernel µ Kernel µ Kernel µ Kernel Netzwerk µ Kernel Client µ Kernel Client File- Netz- µ Kernel µ Kernel Server Server Nachricht vom Client an Server Bild 8Prof. J. Anton Illik 11 Prof. J. Anton Illik
  • 12. Client-­‐/Server-­‐Architektur   Das  Client-­‐Server-­‐Prinzip   Client Server Zeit Aufruf Antwort Bild 9Prof. J. Anton Illik 12 Prof. J. Anton Illik
  • 13. Client-­‐Server-­‐Struktur   Client-­‐Server-­‐Struktur   entfernter Aufruf Server 1 Server 2 entfernter Aufruf Client Rückmeldung Hauptstelle Rückmeldung Datenbankserver Filiale Bild 10Prof. J. Anton Illik 13 Prof. J. Anton Illik
  • 14. Peer-­‐to-­‐Peer-­‐Architektur   Peer-­‐to-­‐Peer-­‐Struktur   entfernter Aufruf Peer_1 Peer_2 Phone Client Phone Client entfernter Aufruf Bild 11Prof. J. Anton Illik 14 Prof. J. Anton Illik
  • 15. Service-­‐orienHerte  Architektur   Web-­‐Service-­‐Struktur   Client 1. Services suchen Verzeichnis- dienst 3. Services nutzen 2. Services finden Service_1 Service_2 Service_3 Bild 12Prof. J. Anton Illik 15 Prof. J. Anton Illik
  • 16. MVC  Architekturmuster   MVC-­‐Struktur   View Controller (=Präsentation) (= Programm- steuerung) Modell (= Datenmodell) Bild 13Prof. J. Anton Illik 16 Prof. J. Anton Illik
  • 17. Pipes  und  Fifos   Das  Prinzip  der  Pipe   Pipe Byte-Stream Byte-Stream Bild 14Prof. J. Anton Illik 17 Prof. J. Anton Illik
  • 18. Genereller  Ablauf  einer  RPC   Ablaufstruktur  eines  typischen  RPC-­‐Systems   Klient Server Anwendungs- Kommunikations- Kommunikations- Server- Klientenstub Serverstub Programm komponente komponente Programm Aufruf- Aufruf- Aufruf- Prozeduraufruf Aufrufkodierung übertragung dekodierung Prozeduraufruf empfang Serveradresse rechne Übertragungsprotkoll Übertragungsprotkoll rechne 3 3 4 4 rechne rechne 7 7 Ergebnis- Ergebnis- Ergebnis- Ergebnis- Ergebnis- Ergebnisrückgabe dekodierung empfang übertragung kodierung rückgabe Bild 15Prof. J. Anton Illik 18 Prof. J. Anton Illik
  • 19. Remote  Method  InvocaHon  (RMI)   Das  RMI/RPC-­‐Prinzip   Externer Computer_2 Methodenaufruf JVM_2 Klasse B Computer_1 Methoden JVM_1 Klasse A l m B.m() n Ergebnis- Rückgabe Bild 16Prof. J. Anton Illik 19 Prof. J. Anton Illik
  • 20. XML  RPC   Das  Prinzip  von  XML-­‐RPC   externer Aufruf C C++ code code Java code HTTP PHP XML XML code code code Perl Perl Ergebnisrückgabe XML-RPC Source: JYSterinos Bild 17Prof. J. Anton Illik 20 Prof. J. Anton Illik
  • 21. Lose  Koppelung  und  NachrichtenorienHerung   Message-­‐oreinted  Middleware  mit  naHver  API   A A Client P MOM P Server I I Bild 18Prof. J. Anton Illik 21 Prof. J. Anton Illik
  • 22. Portabilität  durch  Standard-­‐SchniZstelle   Message-­‐oriented  Middleware  mit  naHver  API  und  JMS-­‐API   A A P P I I Client MOM Server A A P P I I Bild 19Prof. J. Anton Illik 22 Prof. J. Anton Illik
  • 23. Das  Produzenten-­‐Konsumenten-­‐Modell   Die  Point-­‐to-­‐Point-­‐KommunikaHon   JMS-Provider Konsument_1 Messsage Queue2 A A Produzent P P I I Messsage Queue1 A A P P Konsument_1 I I Bild 20Prof. J. Anton Illik 23 Prof. J. Anton Illik
  • 24. Die  Paradigmen  Point-­‐to-­‐Point  und  Publish-­‐Subscribe   Die  Publish-­‐Subscribe-­‐KommunikaHon   JMS Provider Topic 1 Produzent_1 Subscriber_2 Topic 2 Topic 3 Produzent_2 Topic 4 Subscriber_2 Bild 21Prof. J. Anton Illik 24 Prof. J. Anton Illik
  • 25. Open  Group  DCE   Gesamtarchitektur  des  DCE  der  Open  Group   OSF DCE Architektur Distibuted Client/Server Applications EXTENDED SERVICES Distributed File Service Global Directory Service M CORE SERVICES M I I D Time Directory D Security Management D Service Service Service Service D L L E E W Remote Procedure Call W A A R DCE Threads (Thread-Safe C Library –libc_r) R E Transported Services and Network E DCE Host (AIX HP-UX DG/UX ODF/1 Sinix Solaris VMS OD2 NT) Bild 22Prof. J. Anton Illik 25 Prof. J. Anton Illik
  • 26. Der  Au-au  von  COM   COM  als  SpezifikaHon  und  ImplemenHerung   COM Library COM Spezifikationen Bild 23Prof. J. Anton Illik 26 Prof. J. Anton Illik
  • 27. Architektur  und  Paradigma   Schichten-­‐Architektur  von  .NET   Anwendungen ASP.NET ADO.NET Web-Services … Common Language Runtime (Laufzeitumgebung) Garbage Collection Sicherheit Just-in-time Compilation … Betriebssystem (Windwos,Linux) Bild 24Prof. J. Anton Illik 27 Prof. J. Anton Illik
  • 28. Die  Object  Management  Architecture   Das  OMA  Referenzmodell   Application Objects Business Objects Common Facilities Object request Broker ORB Object Services Bild 25Prof. J. Anton Illik 28 Prof. J. Anton Illik
  • 29. Struktur  einer  J2EE-­‐Anwendung   3-­‐Schichten-­‐Architektur  einer  einfachen,  verteilten  J2EE-­‐ApplikaHon   Schicht 1 Schicht 2 Schicht 3 Java EE Server EJB Container Enterprise Enterprise Bean Bean Datenbank Server Client Enterprise Bean Web Container JSP Servlet Bild 26Prof. J. Anton Illik 29 Prof. J. Anton Illik
  • 30. Die  J2EE-­‐Architektur   Die  J2EE-­‐Architektur   Applet Container Applet JSE HTTP SSL Java HTTP WebStart SSL Web Container enabled EJB Container Rich Client JSP Servlet J2SE Enterprise HTTP Bean SSL Connector Connector MIDP Java Database Java Mail JDBC JAAS Clients JAXP Mail JDBC JMS JAXP JAAS JMS JTA JTA HTTP JAF JAF SSL J2ME J2SE J2SE Application Client Container Application Client JDBC JAAS JAXP JMS J2ME Bild 27Prof. J. Anton Illik 30 Prof. J. Anton Illik
  • 31. Die  J2EE-­‐Architektur   Zentrale  Begriffe  In  einer  J2EE-­‐Architektur   Begriff Bedeutung Komponente Ist eine in sich abgeschlossene funktionelle Software-Einheit mit modularem Charakter. D.h. die Komponente ist austauschbar, solange die Ersatzkomponente die gleichen Schnittstellen hat. EJB-Spezifikation Beschreibt die Regeln, nach denen die Schnittstellen der einzelnen Komponenten bezüglich der EJB-Technologie zu entwerfen sind, damit die Modularität des Systems stets gewährleistet ist. J2EE Server Er stellt die übergreifende und umfassende Komponente dar, die alle anderen Komponenten der J2EE-Architektur integriert. Dabei stellt er sowohl für die (internen) Komponenten wie auch für die externen Clients verschiedene Dienste zur Verfügung. EJB Container Ist eine Komponente, die den Enterprise JavaBeans eine Laufzeitumgebung zur Verfügung stellt. Der EJB-Container selbst ist ein Bestandteil des J2EE-Servers. Bild 28Prof. J. Anton Illik 31 Prof. J. Anton Illik
  • 32. Die  J2EE-­‐Architektur   Zentrale  Begriffe  In  einer  J2EE-­‐Architektur   Begriff Bedeutung Enterprise Java Bean Ist eine Komponente, die innerhalb des EJB-Containers ausgeführt wird, und entweder die Business-Logik enthält oder die Daten einer Datenbank repräsentiert. Businesslogik Die Business-Logik wird auch Anwendungslogik genannt. Sie bezeichnet den Teil des Codes einer Anwendung oder einer Enterprise Bean, welcher die Funktionen bereitstellt, für den die Anwendungen oder Enterprise Bean entwickelt wurden. Enterprise Anwendung Eine Enterprise-Anwendung kann sowohl Enterprise Beans als auch Bestanteile einer Web-Anwendung (HTML-Dokumente, Servlets, JSPs) enthalten. Sie kann übereinen J2EE-Server verteilt werden. Deployment Das Deployment ist der Prozess der Installation und Integration einer Komponente in den J2EE-Server. Bild 28Prof. J. Anton Illik 32 Prof. J. Anton Illik
  • 33. Cluster  versus  LAN   Strukturiertes  LAN:  Server  (im  Stockwerk)  der  Fachabteilung   Client Client Client LAN Server Server LAN Client Client Client Bild 29Prof. J. Anton Illik 33 Prof. J. Anton Illik
  • 34. High-­‐Performance-­‐Cluster   Konzept  eines  Scalability  Clusters   Terminalserver Switch Management Load Node Node 2 … Node Balancer 1 Service Prozessor Netzwerk Bild 30Prof. J. Anton Illik 34 Prof. J. Anton Illik
  • 35. High-­‐Availability-­‐Cluster   Konzept  eines  High-­‐Availability  Clusters   Offizielles TCP/IP Netz, redundant Cluster Internconnect Node 1 Node 2 Shared StorageVerbindung, z.B. Fibre Channel, redundant Shared Plattenresourcen für das gesamte Cluster, in der Regel Hardware-RAID-Lösungen mit Dual-Controller Bild 31Prof. J. Anton Illik 35 Prof. J. Anton Illik
  • 36. OO  Programmierung  und  verteilte  Systeme   Struktur  einer  verteilten  objektorienHerten  Anwendung   01 04 03 02 05 Rechner 1 Rechner 2 07 06 08 Rechner 3 Bild 32Prof. J. Anton Illik 36 Prof. J. Anton Illik
  • 37. Der  lokale  Prozedur  Aufruf   Die  Stack-­‐Inhalte   zu main b 4 1096 zu rechne y 4 1090 gehöriger gehöriger Stack- a 3 1098 x 3 1092 Rückkehradresse Stackab- Rückkehradresse abschnitt (Zum Betriebssystem) 1100 schnitt (zur main) 1094 (a) zu main b 4 1096 gehöriger 3 1098 Stackab- a Rückkeradresse 7 Stack nach dem Zu printf gehöriger schnitt (zum Betriebssystem) 1100 Stackabschnitt ergeb Rückkehradresse Aufruf von printf 1084 (zur ergebnis) (b) zu ergebnis ergeb 7 1086 Stack nach gehöriger Rückkehradresse der (zur rechne) 1088 Ausführung Stackabschnitt zu rechne y 4 1090 der Funktion gehöriger 3 1092 rechne, Stackab- x ergebnis Rückkeradresse schnitt (zum main) 1094 und print zu main 4 1096 b gehöriger 3 1098 Stackab- a Rückkeradresse zu main 4 1096 b schnitt (zum Betriebssystem) 1100 gehöriger 3 a 1098 Stackab- Rückkeradresse (c) schnitt (zum Betriebssystem) 1100 (d) Bild 37Prof. J. Anton Illik 37 Prof. J. Anton Illik
  • 38. Genereller  Ablauf  einer  RPC   Ablaufstruktur  eines  typischen  RPC-­‐Systems   Client Server Anwendungs- Kommunikations- Kommunikations- Server- Klientenstub Serverstub Programm komponente komponente Programm Aufruf- Aufruf- Aufruf- Prozeduraufruf Aufrufkodierung übertragung Prozeduraufruf empfang dekodierung Serveradresse rechne Übertragungsprotkoll Übertragungsprotkoll rechne 3 3 4 4 rechne rechne 7 7 Ergebnis- Ergebnis- Ergebnis- Ergebnis- Ergebnis- Ergebnisrückgabe dekodierung empfang übertragung kodierung rückgabe Bild 38Prof. J. Anton Illik 38 Prof. J. Anton Illik
  • 39. IdenHfikaHon  und  binden  der  Aufrufpartner   Beispiel  für  einen  RPC-­‐Bindevorgang   Server Directory-Dienst Klient Export Namenstabelle Import (a) (b) DokumentDrucken DokumentDrucken (Dokument, Format) (Dokument, Format) DokumentDrucken 123.456.7.8 (Dokument, Format) (c) Serveradresse 123.456.7.8 Prozeduraufruf (d) RPC: 123.456.7.8 DokumentDrucken(d,f) DokumentDrucken(d, f) Return(status) Bild 39Prof. J. Anton Illik 39 Prof. J. Anton Illik
  • 40. Sicherheitsaspekte   Struktur  eines  RPC  mit  AuthenHsierung  und  Verschlüsselung   Client K (a) Schlüssel Authentisierungsdienst anfo rderung (K, S (mit Schlüssel S1) 1) Generiert KS(S1, S2) ng {KS(S 1), KS(S2)} (b) Rückmeldu entschlüsselt KS(S1) Server S (mit Schlüssel S2) verschlüsselt RPC-Aufruf (c) Nachricht {RP C(KS), KS(S2) mit KS, sendet diesen zu- } sammen mit KS(S2) entschlüsselt KS(S2) entschlüsselt RPC-Aufruf ng {Ergeb nis(KS)} verschlüsselt Ergebnis mit KS (d) Rückmeldu entschlüsselt Ergebnis (e) Nachricht {RP C(KS)} ng {Ergeb nis(KS)} (f) Rückmeldu Bild 40Prof. J. Anton Illik 40 Prof. J. Anton Illik
  • 41. ImplemenHerung  eines  RPC-­‐Programms   Verarbeitung  der  IDL-­‐SchniZstelleninformaHon   rechnen.idl IDL-Compiler rechnen_cstub.o rechnen.h rechnen_sstub.o #include rechnen_client.c rechnen_server.c C compile rechnen_client.o rechnen_server.o link link rechnen_client.exe rechnen_server.exe Bild 41Prof. J. Anton Illik 41 Prof. J. Anton Illik
  • 42. Die  Bestandteile  einer  RMI-­‐Anwendung   Die  Rolle  von  Stub  und  Skeleton   Weitergabe Datenstrom weiterleiten Aufruf der Methode Client Stub Skeleton Remote-Objekt Aufruf einer entfernten Marshalling der Unmarshalling der Methode Parameter Parameter Bild 46Prof. J. Anton Illik 42 Prof. J. Anton Illik
  • 43. Das  Ablaufschema  eines  encernten  Methodenaufrufs   Der  RMI-­‐Server  registriert  ein  Objekt  in  der  RMI-­‐Registry   RMI-Server-Host RMI-Registry JVM B RMI-Server Bild 47Prof. J. Anton Illik 43 Prof. J. Anton Illik
  • 44. Das  Ablaufschema  eines  encernten  Methodenaufrufs   Die  RMI-­‐Registry  liefert  die  Objektreferenz  zurück   RMI-Client-Host RMI-Server-Host RMI-Client RMI-Registry Bild 48Prof. J. Anton Illik 44 Prof. J. Anton Illik
  • 45. Das  Ablaufschema  eines  encernten  Methodenaufrufs   RMI  Gesamtablauf   RMI-Client-Host RMI-Server-Host RMI-Registry RMI-Client JVMA Stub RMI-Server JVM B OS A Skeleton OS B Bild 49Prof. J. Anton Illik 45 Prof. J. Anton Illik
  • 46. Der  Sicherheitsmanager  (SecurityManager)   Sicherheitseinstellungen  (Permissions)   Policy Permissions Bedeutung AllPermission Anwendung oder Applet dürfen alles FilePermission Zugriff auf Dateien und Verzeichnisse NetPermission Zugriff auf Netzwerkressourcen PropertyPermission Zugriff auf Systemeigenschaften ReflectPermission Zugriff über Reflection auf andere Objekte RuntimePermission Einschränkungen von Laufzeitsystemen SecurityPermission allgemeines Sicherheitskonzept, etwa für den Zugriff auf Policies SerializablePermission Beschränkung der Serialisierung SocketPermission Spezielle Einschränkungen an Sockets Bild 51Prof. J. Anton Illik 46 Prof. J. Anton Illik
  • 47. Die  Object  Management  Architecture   Das  OMA  Refenzmodell   Application Objects Business Objects Common Facilities Object request Broker ORB Object Services Bild 56Prof. J. Anton Illik 47 Prof. J. Anton Illik
  • 48. Au-aue  eines  CORBA  Objekts   Au-au  eines  CORBA  Objekts   Implementierung Schnittstelle Client Objektzustand Objektreferenz abstraktes CORBA Objekt Bild 57Prof. J. Anton Illik 48 Prof. J. Anton Illik
  • 49. Language  Mapping   IDL  Language  Mapping   Client Objektimplementierung Java Java C++ C++ Smalltalk IDL Smalltalk Interface Attribute ADA ADA Method en C C COBOL COBOL Bild 59Prof. J. Anton Illik 49 Prof. J. Anton Illik
  • 50. ORB-­‐Architektur  (CORBA)   CORBA  Architektur   Client Server DII IDL ORB IDL DSI Object Stub Interface Skeleton Adapter ORB Core (Object Request Broker Kernkomponente) Interface Repository Implementation Repository (Schnittstellenablage) (Implementierungsablage) von der ORB-Implementierung abhängige Schnittstelle es existieren verschiedene Objektadapter genormte Schnittstellen – sind für alle ORB-Implementierungen identisch benutzerdefinierte Schnittstelle Bild 60Prof. J. Anton Illik 50 Prof. J. Anton Illik
  • 51. Proxy-­‐KommunikaHon   Prinzip  der  Proxy-­‐KommunikaHon   Client Server Client Objektimpl. Stub Skeleton ORB ORB Bild 61Prof. J. Anton Illik 51 Prof. J. Anton Illik
  • 52. Au-au  einer  Server-­‐Anwendung   CORBA  Objektserver   CORBA-Objektserver Schnittstelle Objekt • Initialisierung des OA • Registrieren der Objekte beim ORB Bild 62Prof. J. Anton Illik 52 Prof. J. Anton Illik
  • 53. Au-au  eines  CORBA  Clients   CORBA  Client   Client Programm Programmiersprac hen-spezifische Objektreferenz DII Interface Stub ORB Objektreferenz Bild 63Prof. J. Anton Illik 53 Prof. J. Anton Illik
  • 54. Die  ORB  Interoperability  Architecture   Voll-­‐  und  Halbbrücke   Protokoll A Protokoll B ORB Voll- ORB A Brücke B Protokoll A Protokoll B ORB Halb- z.B. Halb- ORB A Brücke IIOP Brücke B Bild 64Prof. J. Anton Illik 54 Prof. J. Anton Illik
  • 55. GIOP  und  IIOP   GIOP  Nachrichten   Nachricht Absender Request Client Reply Server CancelRequest Client LocateRequest Client LocateReply Server CloseConnection Server MessageError Client und Server Fragment Client und Server Bild 65Prof. J. Anton Illik 55 Prof. J. Anton Illik
  • 56. Zusammenfassung   CORBA  Referenzmodell   Application Business Objects Objects Object Services Object Request Common Broker ORB Facilities Bild 66Prof. J. Anton Illik 56 Prof. J. Anton Illik
  • 57. Zusammenfassung   Die  Komponenten  des  ORBs   Client Object Implementation Static IDL Dynamic Skeleton Skeleton DII IDL Stubs Object Adapter Object Request Broker Core ORB Services & Common Facilities Naming Service – Interface Repository – Life Cycle Service – Concurrency Service – … Internationalization and Time – Mobile Agents Facility - … Bild 67Prof. J. Anton Illik 57 Prof. J. Anton Illik
  • 58. SO  Architekuren  und  Web-­‐Services  mit  XML  und  SOAP   Die  drei  fundamentalen  Rollen  einer  SOA   UDDI Service Broker Publish WDSL Find Interact WDSL Service Contract Service … Service Comsumer Provider Service Client Bild 68Prof. J. Anton Illik 58 Prof. J. Anton Illik
  • 59. SO  Architekuren  und  Web-­‐Services  mit  XML  und  SOAP   Das  W3C  Architektur-­‐Metamodell   Policy Model Policy Service Oriented Model Ressource oriented Model Action Ressource Message oriented Model Message Partially layerd on Bild 69Prof. J. Anton Illik 59 Prof. J. Anton Illik
  • 60. Web-­‐Services   Benutzung  von  Web-­‐Services  –  aber  keine  SOA   Transaction Transaction Messaging Messaging Messaging Security Security Security Web Service Web Service Web Service Custom Mainframe Eis App Logic Bild 70Prof. J. Anton Illik 60 Prof. J. Anton Illik
  • 61. Web-­‐Services   Benutzung  von  Web  Services  innerhalb  einer  SOA   Business Service Data Service Discovery Management Monitoring Service- Broker / Dienstevermittler Mediation Transactions Messaging Security Web Service Web Service Web Service Custom Mainframe EIS App Logic Bild 71Prof. J. Anton Illik 61 Prof. J. Anton Illik
  • 62. Web-­‐Services   Web  Services:  WSDL,  UDDI  und  SOAP  wirken  zusammen   UDDI WSDL Client Server Proxy SOAP Web Services SOAP (Simple Object Access Protocol) als Protokoll dient der Kommunikation zwischen Service-Anbieter und Service-Konsument WDSL (Web Service Description Language) als Schnittstellenbeschreibung. Dient der Beschreibung der unterstützenden Methoden und deren Parametern. UDDI(Universial Description, Discovery and Integration) als Verzeichnisdienst (Registry) zur Registrierung von Web Services. XML (eXtended Markup Language) als Datenformat für alle oben erwähnten Bestandteile. Bild 72Prof. J. Anton Illik 62 Prof. J. Anton Illik
  • 63. EJB-­‐Rollen   Rollenmodell   EJB-Rollen Beschreibung Enterprise-Bean-Provider Das ist der Entwickler einer Enterprise Bean. Er programmiert alle Bestandteile für die Enterprise Bean und fasst sie in einem jar-Archiv zu einer Komponente zusammen. Diese Komponente übergibt er dem Applicationassembler. Server-Provider Das ist der Hersteller eines J2EE-Servers. Mit J2EE-Server ist hier ein Server gemeint, der konform zur J2EE-Architektur ist. Sun Microsystems liefert neben der Spezifikation einen kostenfreien Application Server als Referenzimplementierung. Auch Entwickler können diesen Server für die Entwicklungs- und Testphase nutzen. Für den kommerziellen Einsatz ist dieser Referenzserver allerdings nicht geeignet, bzw. zugelassen. Kommerzielle Produkte sind beispielsweise der „Web Logic Server“ von Bea Systems, der „Web Sphere Server“ von IBM, oder der JBOSS- Server von JBoss. Darüber hinaus gibt es noch zahlreiche weitere Server, die sich voneinander hinsichtlich Performance, Funktionsumfang (proprietäre Erweiter- ungen), Unterstützung durch Entwicklungswerkzeuge, Installations- und Administrationskomfort unterscheiden. Container-Provider Der Hersteller einer größeren J2EE-Komponente ist der Container-Provider. Diese Komponente stellt die Laufzeitumgebung für Enterprise Java Beans zur Verfügung und ist in einem J2EE-Server integriert. Zur Zeit sind Server-Provider gleichzeitig die Container-Provider für die im Server integrierten Container. Daher lässt sich in der Praxis kaum zwischen Server und Container unterscheiden. Die EJB-Spezifikation lässt allerdings die Möglichkeit offen, dass in Zukunft der Container eines Herstellers in den Server eines anderen Herstellers integriert werden kann (Konsequenz der Komponentenarchitektur). Bild 73Prof. J. Anton Illik 63 Prof. J. Anton Illik
  • 64. EJB-­‐Rollen   Rollenmodell   EJB-Rollen Beschreibung Applicationassembler Diese Rolle fasst die Enterprise Java Beans zu größeren Komponenten, den Enterprise-Anwendungen, zusammen. Im Unterschied zum Enterprise-Bean- Provider ist dies in der Regel kein Software-Entwickler. Er erstellt sogenannte Applikationsdeskriptoren. Alle Bestandteile einer Enterprise-Anwendung werden von ihm in einem ear-Archiv zusammengefasst. Die von ihm erzeugte Komponente übergibt er dem Deployer. Deployer Er installiert und integriert (deployt) die vom Applicationassembler übergebenen Enterprise-Anwendungen im J2EE-Server. Systemadministrator Der Systemadministrator administriert das Gesamtsystem (Betriebssystem, J2EE- Server, Datenbank- und andere Server). Er setzt z.B. Umgebungsvariablen für den Server und das Java Runtime Environment oder ermöglicht den Zugriff auf Datenbanken. Bild 73Prof. J. Anton Illik 64 Prof. J. Anton Illik
  • 65. Architektur  und  Pradigma   Architektur  von  .NET   Anwendungen Base Class Library (Klassenbibliothek) ASP.NET ADO.NET Web-Services … Common Language Runtime (Laufzeitumgebung) Garbage Collection Sicherheit Just-in-time … Compilation Betriebssystem (Windows, Linux, …) Bild 74Prof. J. Anton Illik 65 Prof. J. Anton Illik
  • 66. Common  Language  RunHme   Abkürzung  aus  dem  Umfeld  der  Laufzeitumgebung  CLR   Abkürzung Bedeutung CLR Common Language Runtime CIL Common Intermediate Language JIT Just in time Compilation CTS Common Type System CLS Common Language Specification Bild 75Prof. J. Anton Illik 66 Prof. J. Anton Illik
  • 67. Common  Language  RunHme   .NET  Programmiersprachen  (Auszug)   .NET Programmiersprachen Hinweis C# Primäre .NET Programmiersprache, objektorientiert. Federführend von dem Turbo-Pascal- Erfinder Anders Hejlsberg entwickelt. Visual Basic .NET (oder kurz: VB.NET) Primäre .NET Scriptsprachen Managed C++ Variante von C++, die in Managed Code übersetzt wird, der unter Kontrolle der CLR läuft. J# Microsofts veränderte Java-Implementierung. JScript.NET Microsofts JavaScript-Implementierung. Fortran Klassische nicht objektorientierte Sprache für naturwissenschaftliche/technische Problemstellungen. Eiffel Objektorientierte Programmiersprache von Bertrand Meyer (1985). Als Besonderheit unterstützt Eiffel die Design-By-Contract-Methode. Java Objektorientierte, plattformunabhängige Programmiersprache. Java wird in Byte-Code übersetzt und benötigt zur Ausführung eine JVM (= Java Virtual Machine). ML Meta Language. In den 1970er Jahren von Robin Milner an der Universtät Edinburg entwickelt. Funktionale Programmiersprache mit statischer Typisierung, Polymorphie und Garbage Collection. Wird im wissenschaftlichen Umfeld verwendet und an Universitäten auch als Lehrsprache genutzt. Bild 76Prof. J. Anton Illik 67 Prof. J. Anton Illik
  • 68. Common  Language  RunHme   .NET  Programmiersprachen  (Auszug)   .NET Programmiersprachen Hinweis Oberon Eine von Niklaus Wirt und Jörg Gutknecht entwickelte objektorientierte Programmiersprache und Entwicklungsumgebung mit großer Verwandtschaft zu Pascal. Wird gerne an Bildungseinrichtungen verwendet. Prozedurale Programmiersprache. Ende der 1960er, Anfang der 1970er Jahre entwickelt von Pascal Niklaus Wirth als Weiterentwicklung von Algol 60. Typische Lehrsprache. Skriptsprache, entwickelt von Larry Wall Anfang der 1990er Jahre. Perl wird von Perl Systemverwaltern als plattformübergreifende Skriptsprache benutzt, um Verwaltungs- aufgaben zu automatisieren. Web-Entwickler nutzen Perl als CGI-Sprache. Python Ursprünglich für das verteilte Betriebssystem Amoeba an der Universität Amsterdam von Guido van Rossum entwickelte objektorientierte Skriptsprache. Unterstützt auch den funktionalen Programmieransatz. SmallTalk Dynamisch typisierte objektorientierte Programmiersprache und Entwicklungsumgebung, die der Objektorientierung in den 1980er Jahren den Durchbruch verschaffte. Entwickelt von Alan Kay, Adele Goldberg und Dan Ingals in den 1970er Jahren am XEROX PARC For- schungszentrum in Paolo Alto, Californien. … Bild 76Prof. J. Anton Illik 68 Prof. J. Anton Illik
  • 69. Die  Base  Class  Library   Komponenten  der  Base  Class  Library   Namespace Description System Enthält die essentiellen Basisklassen (String, Int32, DateTime, Boolean, etc.), die Mathe-Funktionen, die Environment- Schnittstelle u.v.a.m. System.CodeDom Klassen für die Code-Generierung und –Ausführung “on the fly”. System.Collections Klassen zur Verwaltung von Objektsammlungen (“Container”): Listen, Mengen, Bäume, Hashtabellen, usw. System.Diagnostics Klassen für die Diagnose, das Event-Logging, Performancemessungen, Tracing und Prozess-Management. System.Globalization Klassen für Globalisierung / Internationalisierung von Applikationen. System.IO Klassen für die Ein-/Ausgabe von und auf Streams, Dateien, Verzeichnissen, Serielle Ports, usw. System.Net Klassen für die Netzwerkprogrammierung mit Unterstützung von Sockets und Protokolllen, wie z.B. HTTP, usw. Bild 77Prof. J. Anton Illik 69 Prof. J. Anton Illik
  • 70. Die  Base  Class  Library   Komponenten  der  Base  Class  Library   Namespace Description System.Resources Notwendig für die Herstellung von multilingualen Applikationen. System.Reflections Klassen für den Zugriff auf Metadaten von z.B. Typen, Methoden und Assemblies. System.Text Supportklassen für die Codierung von Text/Strings. System.Text.RegularExpressions Notwendig für die Handhabung von regulären Ausdrücken. Klassen für die Implementierung paralleler Threads. Hilfsmittel System.Threading für die Synchronisation paralleler Threads, z.B. Monitore und Semaphore. System.Windows.Forms Klassen für den Umgang mit grafischen Benutzeroberflächen. Ersetzt die bisher unter Windows übliche Microsoft Foundation Class (MFC). System.Xml Klassen für den Umgang mit XML (Extensible Markup Language). XML spielt nicht nur im Zusammenhang mit Web- Services eine wichtigeRolle. Bild 77Prof. J. Anton Illik 70 Prof. J. Anton Illik
  • 71. Zusammenfassung  und  Ausblick   Verteilungstechnologien:  Zeitliche  Entwicklung  und  Potenzial   Technologien in verteilten Systemen Potenzial geschäftsprozess- orientiert SOA WebServices J2EE .NET middleware- orientiert CORBA DCE RMI systemorientiertPipes,Sockets,RPC Zeit Bild 78Prof. J. Anton Illik 71 Prof. J. Anton Illik
  • 72. RAID  0:  Beschleunigung  ohne  Fehlertoleranz   RAID  0  Disk  Striping   A B C D E F G H I J K L M N O etc... Bild 79Prof. J. Anton Illik 72 Prof. J. Anton Illik
  • 73. RAID  1:  Redundanz  ohne  Beschleunigung   RAID  1  Drive  Mirroring    /  Duplexing   A A E E I I M M B B F F J J N N = = = = C C G G K K O O D D H H L L P P Mirroring Mirroring Mirroring Mirroring Bild 80Prof. J. Anton Illik 73 Prof. J. Anton Illik
  • 74. RAID  2:  Beschleunigung  und  Redundanz   RAID  2  Hamming  Code  ECC   A0 A1 A2 A3 ECC / Ax ECC / Az ECC / Ay B0 B1 B2 B3 ECC / Bx ECC / By ECC / Bz C0 C1 C2 C3 ECC / Cz ECC / Cx ECC / Cy D0 D1 D2 D3 ECC / Dx ECC / Dy ECC / Dz A0 to A3 = Word A B0 to B3 = Word B ECC/Ax to Az = Word A ECC ECC/Bx to Bz = Word B ECC C0 to C3 = Word C D0 to D3 = Word D ECC/Cx to Cz = Word C ECC ECC/Dx to Dz = Word D ECC (7,4)-Hamming-Code Bild 81Prof. J. Anton Illik 74 Prof. J. Anton Illik
  • 75. RAID  3:  mit  Parität  auf  separater  PlaZe  (Byte  Striping)    RAID  3  Data  Striping  mit  Priorität  auf  separater  PlaZe   Parity Generation A0 A1 A2 A3 A PARITY B0 B1 B2 B3 B PARITY C0 C1 C2 C3 C PARITY D0 D1 D2 D3 D PARITY Stripe 0 Stripe 1 Stripe 2 Stripe 3 Stripe 0, 1, 2, 3 Parity Bild 82Prof. J. Anton Illik 75 Prof. J. Anton Illik
  • 76. RAID  4:  Block  Striping    RAID  4:Independent  Data  Disks  with  Shared  Parity  disk   Parity Generation A0 A1 A2 A3 A PARITY B0 B1 B2 B3 B PARITY C0 C1 C2 C3 C PARITY D0 D1 D2 D3 D PARITY Block 0 Block 1 Block 2 Block 3 Blocks 0, 1, 2, 3 Parity Bild 83Prof. J. Anton Illik 76 Prof. J. Anton Illik
  • 77. RAID  5:  Data  Striping  &  Parity  auf  alle  HDs    RAID  5  Independent  Data  Disks  with  Single  Distributed  Parity  Blocks   A0 B0 C0 D0 0 PARITY A1 B1 C1 E1 1 PARITY A2 B3 D2 E2 2 PARITY Parity Generation A3 3 PARITY C3 D3 E3 4 PARITY B4 C4 D4 E4 A Blocks B Blocks C Blocks D Blocks E Blocks Bild 84Prof. J. Anton Illik 77 Prof. J. Anton Illik
  • 78. RAID  6:  Data  Striping  &  Parity  auf  alle  HDs    RAID  6:Independent  Data  Disks  with  Double  distributed  Parity  Blocks   XOR Parity A0 B0 Q0 P0 Parity Generation A1 Q1 P1 Parity D1 Q2 P2 D2 C2 P3 B3 C3 Q3 Parity etc… etc… etc… D4 A Blocks B Blocks C Blocks D Blocks REED-Solomon ECC Code Generation Bild 85Prof. J. Anton Illik 78 Prof. J. Anton Illik
  • 79. Zusammenfassung   Welcher  RAID-­‐Level  für  welchen  ApplikaHonstyp   RAID-Level Applikation RAID 0 Disk Striping Video Editing und Herstellung Bildbearbeitung, Image Editing i. A. Anwendungen, die einen hohen Datendurchsatz / hohe Bandbreite benötigen RAID 1 Drive Mirroring Geschäftsanwendungen RAID 2 Hamming Code ECC Keine kommerziellen Implementierungen verfügbar. Kommerziell unbedeutend. RAID 3 Data Striping und Parity auf separater Generell Applikationen mit hohen Platte (Byte Striping) Anforderungen an den Datendurchsatz, wie z.B. Video Live Streaming. RAID 4 Data Striping und Parity auf separater Keine kommerziellen Implementierungen Platte (Block Striping) verfügbar. Kommerziell unbedeutend. RAID 5 Data Striping und Parity auf allen File- und Applikationsserver Platten Datenbankserver Web-; E-Mail-, News-Server Intranet-Server Vielseitigster RAID-Level Bild 86Prof. J. Anton Illik 79 Prof. J. Anton Illik
  • 80. Das  Direct  AZached  Storage   Direct  AZached  Storage   Storage Storage Computer Computer Ethernet Storage Storage Computer Computer Bild 87Prof. J. Anton Illik 80 Prof. J. Anton Illik
  • 81. NAS  Network  AZached  Storage   NAS  Network  AZaches  Storage   Clients LAN Network- Attached Server 1 Server 2 Storage Appliance Bild 88Prof. J. Anton Illik 81 Prof. J. Anton Illik
  • 82. SAN  Storage  Area  Network   SAN  Starage  Network   Storage Area Networks Clients LAN/ WAN Server SAN Storage Bild 89Prof. J. Anton Illik 82 Prof. J. Anton Illik
  • 83. SAN  Storage  Area  Network   SAN  Anschluss  mit  Fibre  Channel   Fibre Channel Switch 2x Hostbusadapter Glasfaser Disk Array Array1 Array2 Array3 Array4 Array5 Raid5 Raid5 Raid5 Raid5 Raid5 Bild 90Prof. J. Anton Illik 83 Prof. J. Anton Illik
  • 84. Das  Virtual  File  System  VFS   NFS-­‐EinbeZung  in  einem  Unix-­‐System   Client Schicht der Systemaufrufe z.B. open(), close(), read(), write(), … VFS Virtual File System Schnittstelle NFS-Client zum lokalen Dateisystem RPC-Client-Stub Server Schicht der Systemaufrufe z.B. open(), close(), read(), write(), … VFS Virtual File System NFS-Server Schnittstelle zum lokalen Dateisystem RPC-Server-Stub Bild 91Prof. J. Anton Illik 84 Prof. J. Anton Illik
  • 85. Das  NFS  Dateisystemmodell   Der  Client  mounted  eine  Teilhierarchie  vom  Server  Filesystem   NFS-Client NFS-Server das vom Client importierte und vom Server exportiert Verzeichnis Bild 92Prof. J. Anton Illik 85 Prof. J. Anton Illik
  • 86. DCE  DFS  Distributed  File  Service   DFS  Architektur   File (Protocol) Client Application Client Application Exporter Cache Manager Cache Manager DFS Client DFS File Server DFS Client Bild 93Prof. J. Anton Illik 86 Prof. J. Anton Illik
  • 87. DFS  Filesysteme   DFS  Aggregates  und  Filesets   Disk Aggregate A B C A C B / / / Aggregate src src usr bin lib D dce osf1 alpha beta bin Aggregate E F Bild 94Prof. J. Anton Illik 87 Prof. J. Anton Illik
  • 88. Arbeitsweise  des  DFS   DFS  Arbeitsweise  der  DFS   DFS Server CDS Fileset Database Rechner Server Fileset Fileset Location Location Server Database 1 DFS Client 2 Cache Manager Cache File Server Rechner 3 DFS Files und File Server Directories Bild 95Prof. J. Anton Illik 88 Prof. J. Anton Illik
  • 89. ReplikaHon  von  Filesets   ReplikaHon  von  LSF  Filesets   Secondary Server Disk usr.dce readonly Fileset Disk bin.osf1readonly usr.dce Fileset Fileset bin.osf1 Fileset Disk usr.dce readonly Fileset Primary Server bin.osf1readonly Fileset Secondary Server Bild 96Prof. J. Anton Illik 89 Prof. J. Anton Illik
  • 90. DFS  Client  Komponenten   DFS  Client  Komponenten   DFS Client Rechner dfsd dfsbind User applications System-Call Interface Unix DFS System Calls File System VFS+Interface Cache Manager VFS+Interface Kernel RPC Local File Systems Bild 97Prof. J. Anton Illik 90 Prof. J. Anton Illik
  • 91. DFS  Server  Komponenten   DFS  Server  Komponenten   bosserver dfsbind fxd ftserver repserver Kernel RPC DFS and UNIX System Calls File Exporter VFS+Interface Token Manager VFS+Interface VFS+Interface Unix Episode File System Bild 98Prof. J. Anton Illik 91 Prof. J. Anton Illik
  • 92. DFS  Access  Control  Lists   DFS  Access  Control  Lists  (ACLs)   Type Bedeutung user_obj Benutzer ist Eigentümer des Objekts user Spezifiziert Benutzer der lokalen Zelle foreign_user Spezifiziert Benutzer einer anderen Zelle Group_obj Mitglied der Gruppe, die Eigentümer des Objekts ist group Mitglied einer spezifischen Gruppe foreign_group Mitglied einer spezifischen Gruppe einer anderen Zelle other_obj Benutzer der lokalen Zelle, die oben nicht spezifiziert sind. foreign_other Benutzer anderer Zellen, die oben nicht spezifiziert sind any_other Benutzer, die oben nicht spezifiziert sind Bild 99Prof. J. Anton Illik 92 Prof. J. Anton Illik
  • 93. Die  DFS  ACL  Zugriffsrechte   DFS  ACL  Zugriffsrechte   Rechte Directory Datei Read (r) Wenn angegeben mit x, kann der Benutzer den Erlaubt einem Benutzer das Lesen Inhalt auflisten und die ACLs der enthaltenen der Datei. Objekte lesen. Write (w) Wenn angegeben mit i, kann der Benutzer neue Erlaubt einem Benutzer das Objekte erzeugen; wenn angegeben mit d, kann der Modifizieren der Datei. Benutzer Objekte löschen. Execute (x) Wenn angegeben mit r, kann der Benutzer den Erlaubt einem Benutzer die Inhalt der Direcory anzeigen und die ACLs der Ausführung der Datei. enthaltenen Objekte lesen. Control (c) Erlaubt einem Benutzer das Modifizieren der ACLs Erlaubt einem Benutzer das der Directory. Modifizieren der ACLs der Datei. Insert (i) Wenn angegeben mit w, kann der Benutzer neue Keine Bedeutung. Objekte im Directory erzeugen; wenn angegeben mit w und d, kann der Benutzer Objekte an Directory umbenennen. Delete (d) Wenn angegeben mit w, kann der Benutzer Objekte Keine Bedeutung. im Direcroty löschen; wenn angegeben mit w und i, kann der Benutzer Objekte im Directory umbenennen. Bild 100Prof. J. Anton Illik 93 Prof. J. Anton Illik
  • 94. Zusammenfassung  DCE  DFS   Filesysteme  Vergleich   Features DCE/DFS Microsoft DFS Netware V4 Sun NFS V3 Desktop coverage Client+server Client+server Client+server Client+server Unix coverage Client+server - Server partly Client + Server Disk caching Yes Only files No Solaris partly Cache consitenca Yes No No No Online load balancing Yes No No No Encryption File + Security info Security info only Security info only Security info only Access control lsits Yes Partly Partly No Consistent replication Yes No Beta No Log-based recovery Yes Yes No Only Solaris Remote administration Yes No Yes No Online Backup Yes No No Third Party Byte range locks Yes Server only Yes No Lcal tansparenca Yes Yes Yes No Global file namespace Yes Yes Yes No Bild 101Prof. J. Anton Illik 94 Prof. J. Anton Illik
  • 95. GPFS  General  Parallel  File  System   Entwicklungsgeschichte  des  GPFS   HPC High Video VTS Performance Streaming Virtal Tape Server Research Computing Visualization Digital Media Tiger Shark Linux Seismic • Real Time GPFS Clusters •  Streaming General (Multiple Weather • Read perf. File Serving Architectures) Exploration • Wide Stripe Life Sciences 32-bit / 64 – bit • Standards Inter-Op • POSTIX AIX Loose (AIX & Linux) semantics Clusters • Large block GPFS Multi-Clusters • Direcotry and GPFS over WAN smal file perf • Data management Large Scale Clusters 100s of nodes 1995 1998 2002 Present Bild 102Prof. J. Anton Illik 95 Prof. J. Anton Illik
  • 96. Gemeinsame  PlaZenlaufwerke  (shared  disk)   SAN  aZached  Storage   Node 1 Node 2 Application Nodes Node n Application Application Application GPFS GPFS GPFS NSD NSD NSD SAN Fabric Host Bus Adapter Failover Channel Switch SAN Storage Speicher Subsystem Storage Server Storage Server Storage Server Bild 103Prof. J. Anton Illik 96 Prof. J. Anton Illik
  • 97. Netzbasierte  Block-­‐I/O   Network  block  I/O   Application Application Application GPFS GPFS GPFS NSD NSD NSD IO Server IP Network NSD NSD GPFS GPFS FC Driver FC Driver SAN Fabric Host Bus Adapter Failover Channel Switch SAN Storage Speicher Subsystem Storage Server Storage Server Bild 104Prof. J. Anton Illik 97 Prof. J. Anton Illik
  • 98. Gemeinsame  Daten  zwischen  Cluster   MulH-­‐Cluster   Node 1 Node 2 Node 3 GPFS GPFS GPFS NSD NSD NSD Cluster B Node 1 Node 2 Node 3 GPFS GPFS GPFS NSD NSD NSD IO Servers IP Network GPFS GPFS GPFS FC Driver FC Driver FC Driver SAN Fabric GPFS FC Driver SAN Storage GPFS FC Driver Storage Server Storage Server Cluster C Cluster A Bild 105Prof. J. Anton Illik 98 Prof. J. Anton Illik
  • 99. Lustre   Lustre  Cluster-­‐Dateisystem  Überblick   OST1 Linux MDS1 MDS2 OST (active) (active) OST2 Servers with disk QSW Net array OST3 OST4 Lustre Clients (1,000 Lustre Lite) Up to 10,000´s OST5 3rd party OST Appliances OST6 GigE OST7 LustreObject Storage Targets (OST) Bild 106Prof. J. Anton Illik 99 Prof. J. Anton Illik
  • 100. Zusammenfassung   Einige  Cluster  Filesysteme   Cluster Filesystem URL Hersteller / Bemerkung DCE DFS http://www.opengroup.org/dce Open Group GPFS http://www.ibm.com/systems/clusters/software/gpfs.html IBM PVFS http://pvfs.org Rob Ross und ovfs.org Lustre http://lustre.org Cluster File Systems Inc. http://www.clusterfs.com CIFS/Samba http://www.microsoft.com/mind/1196/cifs.asp Microsoft http://linux-cifs.samba.org SNIA CxFS http://www.sgi.com/products/storage/tech/file_systems.html SGI Panasas http://panasas.com Panasas Inc. ActiveStor Polyserv http://wwwpolyserv.com/ Polyserv Inc. SAM-QFS http://docs.sun.com/source/819-2758-10/chapter1.html Sun Microsystems StorNext Htto://adic.com/stornext Quantum (nach der Übernahme von Adic) VxFS;Veritas Storage http://symantec.com/enterprise/products/overview.jsp? Symantec nach der Foundation Cluster File pcid=1020&pvid=209_1 Übernahme von Veritas. System HP-UX-Betriebssystem auch JFS und OJFS genannt. Bild 107Prof. J. Anton Illik 100 Prof. J. Anton Illik
  • 101. Verteilte  Datenbanken   Verteilte  Datenbanken   Knoten 1 Knoten 2 LDB1 LDB2 Kommunikations- Netzwerk Knoten 3 Knoten 4 LDB3 LDB41 LDB42 Bild 108Prof. J. Anton Illik 101 Prof. J. Anton Illik
  • 102. Distributed  TransacHon  Processing   Architektur  Distributed  TransacHon  Management  nach  X/Open   Applikation TM-API RM-API mit Funktionen wie für begin, lesen, commit, ändern, abbort erzeugen, löschen TM XA-Schnittstelle RM Transaction- (2PC) Ressourcen- Manager Manager Bild 109Prof. J. Anton Illik 102 Prof. J. Anton Illik
  • 103. Die  JDBC  Architektur   JDBC  Architektur   Anwendung Treibermanagement JDBC-Treiber 1 JDBC-Treiber 2 ODBC-Treiber Netzwerk DBMS Datenbanken Bild 110Prof. J. Anton Illik 103 Prof. J. Anton Illik
  • 104. Treibertypen   JDBC  Treiber-­‐Typen   Treibertyp Eigenschaften Class-1-Teiber Über die JDBC-ODBC-Brücke werden Datenbankverbindungen über die ODBC-Schnittstelle aufgebaut. JDBC-ODBC-Bridge Dazu werden die Anweisungen von JDBC an die betreffende Funktion des ODBC-Treibers weitergegeben, der im nativen Code des Betriebssystems auf dem Client vorliegt und die eigentliche Verbindung zur Datenbank oder dem Datenbankserver herstellt. Der ODBC-Treiber nuzt das CLI des Herstellers. D.h. die nativen Bibliotheken des Datenbanksystems für den Datenbankzugriff müssen auf dem Cient installiert werden. Die Bridge ist nur einmal vorhanden. Für jedes Datenbanksystem ist jedoch ein ODBC-Treiber erforderlich. ODBC-Treiber sind für die meisten Datenbanksysteme verfügbar und werden hauptsächlich beim Zugriff auf Datenressourcen unter Windows eingesetzt. Nachteilig ist die zusätzliche Installation und Konfiguration des ODBC-Treibers, die auf dem Client erfolgen muss. Applets können diese Schnittstelle nur begrenzt nutzen (über das Security API), da sie standardmäßig keinen Zugriff auf die lokalen Ressourcen des Clients haben. Dieser Treibertyp ist sinnvoll für den Test, nicht aber für den operativen Einsatz. Class-2-Treiber JDBC-Aufrufe werden hierauf native Anweisungen des Datenbank-Clients abgebildet, der die JDBC-Native-API-partial- Kommunikation zum Datenbankserver herstellt. Java-Treiber (CLI des Dazu müssen zusätzlich die nativen Bibliotheken des Datenbanksystems für den Datenbankzugriff auf Herstellers) dem Client installiert werden. Der Zugriff ist hier sehr schnell. Der JDBC-Treiber verwendet jedoch nativen Code (den des DBMS-Client- Treibers) und ist damit selbst nicht plattformunabhängig. Bild 111Prof. J. Anton Illik 104 Prof. J. Anton Illik
  • 105. Treibertypen   JDBC  Treiber-­‐Typen   Treibertyp Eigenschaften Class-3-Treiber Hierbei handelt es sich um einen plattformunabhängigen Java-Treiber. Die Anweisungen werden von JDBC-net-pure-Java-Treiber Java über das verwendete Netzwerkprotokoll (datenbankunabhängig) an einen auf dem Datenbankserver vorhandenen JDBC-Server übergeben und von diesem in Datenbankanweisungen übersetzt. Der JDBC-Treiber enthält zusätzlich die Client-Funktionalität des DBMS. Es sind keine zusätzlichen nativen Bibliotheken auf dem Client erforderlich, sodass er einfach gewartet werden kann Im Falle eines Applets wird der Datenbanktreiber gegebenenfalls erst auf den Client übertragen. Class-4-Treiber In dieser Treibervariante erfolgt eine direkte Kommunikation (datenbankherstellerspezifisches Protokoll) Native-pure-Java- des JDBC-Treibers mit dem DBMS. Dabei wird auf dem DBMS die gleiche Struktur wie bei Class-1- und Protokolltreiber Class-2-Treibern verwendet. Es sind keine zusätzlichen Bibliotheken auf dem Client zu installieren. Bild 111Prof. J. Anton Illik 105 Prof. J. Anton Illik
  • 106. Datenbankverbindung  und  SQL-­‐Befehle   Mögliche  Einträge  in  ProporHes   Name Beschreibung Defaultwert username Der Benutzername für die Datenbank passwort Das zugehörige Passwort für den Benutzernamen autoReconnect Soll die Verbindung wiederhergestellt false werden, falls sie getrennt wurde? useSSL Soll eine sichere Verbindung mit SSL false verwendet werden? requireSSL Soll eine SSL gesicherte Verbindung false vorausgesetzt sein, falls useSSL = true? allowMultiQuerries Erlaubt das Versenden mehrerer SQL- false Befehle in einem Befehlsobjekt, die durch ‚;’ getrennt werden. Bild 112Prof. J. Anton Illik 106 Prof. J. Anton Illik
  • 107. Statements   Statement  Objekt  erzeugen   Methodenname Beschreibung createStatement() Die Standardmethode ohne jegliche Parameter createStatement(int resultSetType, Die Integerparameter sind für das int resultSetConcurrency) ResultSet Objekt, welches die Ergebnisse eines Querries liefert (siehe Kapitel 2.4). createStatement(int resultSetType, Drei Parameter bestimmen die int resultSetConcurrency, Einstellungen für das Rückgabeobjekt. int resultSetHoldability) Bild 113Prof. J. Anton Illik 107 Prof. J. Anton Illik
  • 108. SQLJ  und  der  Übersetzungsprozess   Übersetzung  eines  SQLJ-­‐Programms   SQLJ Quellprogramm: Java-Programm mit eingebettetem SQL SQLJ – Übersetzer (auch Präprozessor oder Vorübersetzer genannt) Java-Programm mit JDBC-Aufrufen Java-Compiler Java-Byte-Code mit JDBC-Methodenaufrufen JDBC-Teiber DB Bild 114Prof. J. Anton Illik 108 Prof. J. Anton Illik
  • 109. Über  den  Autor   Johann Anton Illik: Studium der Informatik und Wirtschaftswissenschaften an der Technischen Universität München. Arbeitsschwerpunkte waren im Bereich der Informatik: Software-Engineering, Netzwerke, Compiler- und Betriebssystembau. Im Bereich der Wirtschaftswissenschaften bildeten Betriebswirtschaft und Marketing den Mittelpunkt. Diplom in Informatik. Drei Jahre Software- Architekt bei Siemens. Neun Jahre Software-Architekt, Berater und Account- Manager bei Softlab in München. 1987 Gründung der Ambit Informatik in München. Fünfzehn Jahre Geschäftsführer des Informatik-Hauses. 1992 Berufung als Professor auf den Lehrstuhl „Software-Engineering und Programmiersprachen“ an die Fakultät Wirtschaftsinformatik an die Hochschule Furtwangen University. Studiengangleiter WI-Diplom in den Jahren von 2001 bis 2008. Prodekan Fakultät WI in den Jahren 2001 bis 2005. Mitherausgeber des Magazins “Wirtschaftsinformatik“ in den Jahren von 2000 bis 2005. Principal Research & E-Business der Ambit Group www.ambit.de 109Prof. J. Anton Illik Prof. J. Anton Illik