SlideShare uma empresa Scribd logo
1 de 109
Baixar para ler offline
Verteilte Systeme
                           Architekturen und Software-Technologien

                                        J. Anton Illik




Prof. J. Anton Illik   1
                                          Prof. J. Anton Illik
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
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.de


Prof. J. Anton Illik   3
                                                              Prof. J. Anton Illik
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 1
Prof. J. Anton Illik   4
                                                                  Prof. J. Anton Illik
Zielpublikum,	
  Au-au	
  und	
  Lernziele	
  
       Grundlagen	
  verteilter	
  Systeme	
  




                                 Applikations-Ebene/ Anwendungen




                              Systemsoftware-Ebene / Betriebssystem

                                                                           Systemebene

                                        Hardware-Ebene




                                                                                         Bild 2
Prof. J. Anton Illik   5
                                                    Prof. J. Anton Illik
Monolithische	
  Batch-­‐Systeme	
  und	
  Closed-­‐Shop-­‐Betrieb	
  
       Der	
  Mainfraime,	
  eingesperrt	
  im	
  Rechenzentrum	
  




                                     Mainframe                           Drucker
                 Backbone Netz




                                                           Frontend

                                     Mainframe
                                                                        Karten-
                                                                        Leser



                                                                            Rechenzentrum




                                                                                   Bild 3
Prof. J. Anton Illik             6
                                                 Prof. J. Anton Illik
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 4
Prof. J. Anton Illik               7
                                                              Prof. J. Anton Illik
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 5
Prof. J. Anton Illik   8
                                                                                Prof. J. Anton Illik
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 6
Prof. J. Anton Illik     9
                                                      Prof. J. Anton Illik
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 7
Prof. J. Anton Illik   10
                                                         Prof. J. Anton Illik
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 8
Prof. J. Anton Illik   11
                                                       Prof. J. Anton Illik
Client-­‐/Server-­‐Architektur	
  
       Das	
  Client-­‐Server-­‐Prinzip	
  



                                                Client                         Server



                                 Zeit                                Aufruf




                                                                     Antwort




                                                                                        Bild 9
Prof. J. Anton Illik   12
                                              Prof. J. Anton Illik
Client-­‐Server-­‐Struktur	
  
       Client-­‐Server-­‐Struktur	
  




                                        entfernter Aufruf               Server 1                           Server 2
                                                                                     entfernter Aufruf
                            Client      Rückmeldung                    Hauptstelle     Rückmeldung       Datenbankserver

                            Filiale




                                                                                                                           Bild 10
Prof. J. Anton Illik   13
                                                            Prof. J. Anton Illik
Peer-­‐to-­‐Peer-­‐Architektur	
  
       Peer-­‐to-­‐Peer-­‐Struktur	
  




                                              entfernter Aufruf
                                 Peer_1                                Peer_2

                               Phone Client                          Phone Client
                                              entfernter Aufruf




                                                                                    Bild 11
Prof. J. Anton Illik   14
                                              Prof. J. Anton Illik
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 12
Prof. J. Anton Illik   15
                                                        Prof. J. Anton Illik
MVC	
  Architekturmuster	
  
       MVC-­‐Struktur	
  




                                 View           Controller
                            (=Präsentation)   (= Programm-
                                                steuerung)               Modell
                                                                     (= Datenmodell)




                                                                                       Bild 13
Prof. J. Anton Illik   16
                                              Prof. J. Anton Illik
Pipes	
  und	
  Fifos	
  
       Das	
  Prinzip	
  der	
  Pipe	
  




                                           Pipe

                            Byte-Stream


                                                                  Byte-Stream




                                                                                Bild 14
Prof. J. Anton Illik   17
                                           Prof. J. Anton Illik
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 15
Prof. J. Anton Illik    18
                                                                                         Prof. J. Anton Illik
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 16
Prof. J. Anton Illik   19
                                              Prof. J. Anton Illik
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 17
Prof. J. Anton Illik     20
                                                Prof. J. Anton Illik
Lose	
  Koppelung	
  und	
  NachrichtenorienHerung	
  
       Message-­‐oreinted	
  Middleware	
  mit	
  naHver	
  API	
  




                                            A                             A
                            Client          P           MOM               P   Server
                                            I                             I




                                                                                       Bild 18
Prof. J. Anton Illik   21
                                                   Prof. J. Anton Illik
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 19
Prof. J. Anton Illik   22
                                                     Prof. J. Anton Illik
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 20
Prof. J. Anton Illik   23
                                                  Prof. J. Anton Illik
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 21
Prof. J. Anton Illik   24
                                               Prof. J. Anton Illik
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 22
Prof. J. Anton Illik   25
                                                        Prof. J. Anton Illik
Der	
  Au-au	
  von	
  COM	
  
       COM	
  als	
  SpezifikaHon	
  und	
  ImplemenHerung	
  




                                                                             COM
                                                                            Library

                                           COM
                                       Spezifikationen




                                                                                      Bild 23
Prof. J. Anton Illik   26
                                                     Prof. J. Anton Illik
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 24
Prof. J. Anton Illik   27
                                                          Prof. J. Anton Illik
Die	
  Object	
  Management	
  Architecture	
  
       Das	
  OMA	
  Referenzmodell	
  




                            Application Objects     Business Objects       Common Facilities




                                                  Object request Broker
                                                           ORB




                                                     Object Services




                                                                                               Bild 25
Prof. J. Anton Illik   28
                                                    Prof. J. Anton Illik
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 26
Prof. J. Anton Illik   29
                                                    Prof. J. Anton Illik
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 27
Prof. J. Anton Illik   30
                                                                              Prof. J. Anton Illik
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 28
Prof. J. Anton Illik   31
                                                         Prof. J. Anton Illik
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 28
Prof. J. Anton Illik   32
                                                         Prof. J. Anton Illik
Cluster	
  versus	
  LAN	
  
       Strukturiertes	
  LAN:	
  Server	
  (im	
  Stockwerk)	
  der	
  Fachabteilung	
  



                                  Client                        Client             Client


                                                                                   LAN
                                 Server




                                 Server
                                                                                   LAN


                                  Client                        Client             Client




                                                                                            Bild 29
Prof. J. Anton Illik   33
                                                     Prof. J. Anton Illik
High-­‐Performance-­‐Cluster	
  
       Konzept	
  eines	
  Scalability	
  Clusters	
  




                                        Terminalserver
                                                               Switch




                                                                                Management
                                 Load            Node           Node 2 …        Node
                                 Balancer        1
                                              Service Prozessor Netzwerk




                                                                                             Bild 30
Prof. J. Anton Illik   34
                                                         Prof. J. Anton Illik
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 31
Prof. J. Anton Illik   35
                                                          Prof. J. Anton Illik
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 32
Prof. J. Anton Illik   36
                                                   Prof. J. Anton Illik
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 37
Prof. J. Anton Illik    37
                                                                        Prof. J. Anton Illik
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 38
Prof. J. Anton Illik      38
                                                                                          Prof. J. Anton Illik
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 39
Prof. J. Anton Illik   39
                                                             Prof. J. Anton Illik
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 40
Prof. J. Anton Illik   40
                                                                Prof. J. Anton Illik
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 41
Prof. J. Anton Illik   41
                                                                  Prof. J. Anton Illik
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 46
Prof. J. Anton Illik   42
                                                                Prof. J. Anton Illik
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 47
Prof. J. Anton Illik   43
                                                           Prof. J. Anton Illik
Das	
  Ablaufschema	
  eines	
  encernten	
  Methodenaufrufs	
  
       Die	
  RMI-­‐Registry	
  liefert	
  die	
  Objektreferenz	
  zurück	
  




                              RMI-Client-Host                                 RMI-Server-Host
                                  RMI-Client                                    RMI-Registry




                                                                                                Bild 48
Prof. J. Anton Illik   44
                                                       Prof. J. Anton Illik
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 49
Prof. J. Anton Illik   45
                                                     Prof. J. Anton Illik
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 51
Prof. J. Anton Illik     46
                                                    Prof. J. Anton Illik
Die	
  Object	
  Management	
  Architecture	
  
       Das	
  OMA	
  Refenzmodell	
  




                            Application Objects     Business Objects         Common Facilities



                                                  Object request Broker
                                                           ORB




                                                     Object Services




                                                                                                 Bild 56
Prof. J. Anton Illik   47
                                                      Prof. J. Anton Illik
Au-aue	
  eines	
  CORBA	
  Objekts	
  
       Au-au	
  eines	
  CORBA	
  Objekts	
  




                                                                         Implementierung
                                  Schnittstelle

                             Client

                                                                                  Objektzustand


                            Objektreferenz                        abstraktes
                                                                  CORBA Objekt




                                                                                                  Bild 57
Prof. J. Anton Illik   48
                                                  Prof. J. Anton Illik
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 59
Prof. J. Anton Illik   49
                                                   Prof. J. Anton Illik
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 60
Prof. J. Anton Illik   50
                                                               Prof. J. Anton Illik
Proxy-­‐KommunikaHon	
  
       Prinzip	
  der	
  Proxy-­‐KommunikaHon	
  


                            Client                                         Server




                                     Client                                         Objektimpl.




                                     Stub                                            Skeleton




                                     ORB                                               ORB




                                                                                                  Bild 61
Prof. J. Anton Illik   51
                                                    Prof. J. Anton Illik
Au-au	
  einer	
  Server-­‐Anwendung	
  
       CORBA	
  Objektserver	
  



                                      CORBA-Objektserver

                                   Schnittstelle


                                                          Objekt




                                              • Initialisierung des OA
                                              • Registrieren der
                                              Objekte beim ORB




                                                                         Bild 62
Prof. J. Anton Illik   52
                                         Prof. J. Anton Illik
Au-au	
  eines	
  CORBA	
  Clients	
  
       CORBA	
  Client	
  



                                        Client Programm




                                  Programmiersprac
                                  hen-spezifische
                                  Objektreferenz



                                         DII                    Interface
                                                                  Stub



                                            ORB
                                            Objektreferenz




                                                                            Bild 63
Prof. J. Anton Illik   53
                                         Prof. J. Anton Illik
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 64
Prof. J. Anton Illik   54
                                                                       Prof. J. Anton Illik
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 65
Prof. J. Anton Illik   55
                                              Prof. J. Anton Illik
Zusammenfassung	
  
       CORBA	
  Referenzmodell	
  




                                       Application
                                                                         Business Objects
                                        Objects




                            Object Services          Object Request                   Common
                                                      Broker ORB                      Facilities




                                                                                                   Bild 66
Prof. J. Anton Illik   56
                                                      Prof. J. Anton Illik
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 67
Prof. J. Anton Illik   57
                                                              Prof. J. Anton Illik
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 68
Prof. J. Anton Illik   58
                                                       Prof. J. Anton Illik
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 69
Prof. J. Anton Illik     59
                                                            Prof. J. Anton Illik
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 70
Prof. J. Anton Illik   60
                                                        Prof. J. Anton Illik
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 71
Prof. J. Anton Illik   61
                                                                 Prof. J. Anton Illik
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 72
Prof. J. Anton Illik   62
                                                                  Prof. J. Anton Illik
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 73
Prof. J. Anton Illik   63
                                                 Prof. J. Anton Illik
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 73
Prof. J. Anton Illik   64
                                             Prof. J. Anton Illik
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 74
Prof. J. Anton Illik   65
                                                             Prof. J. Anton Illik
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 75
Prof. J. Anton Illik   66
                                                   Prof. J. Anton Illik
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 76
Prof. J. Anton Illik   67
                                                                Prof. J. Anton Illik
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 76
Prof. J. Anton Illik   68
                                                    Prof. J. Anton Illik
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 77
Prof. J. Anton Illik   69
                                                     Prof. J. Anton Illik
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 77
Prof. J. Anton Illik   70
                                                     Prof. J. Anton Illik
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 78
Prof. J. Anton Illik   71
                                                       Prof. J. Anton Illik
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 79
Prof. J. Anton Illik   72
                                            Prof. J. Anton Illik
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 80
Prof. J. Anton Illik       73
                                                             Prof. J. Anton Illik
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 81
Prof. J. Anton Illik   74
                                                             Prof. J. Anton Illik
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 82
Prof. J. Anton Illik   75
                                                            Prof. J. Anton Illik
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 83
Prof. J. Anton Illik   76
                                                        Prof. J. Anton Illik
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 84
Prof. J. Anton Illik   77
                                                         Prof. J. Anton Illik
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme
Illik verteilte systeme

Mais conteúdo relacionado

Destaque

KKundK Produktbroschüre Social Media Relations
KKundK Produktbroschüre Social Media RelationsKKundK Produktbroschüre Social Media Relations
KKundK Produktbroschüre Social Media RelationsKuhn, Kammann & Kuhn GmbH
 
Zielmedien der Online-PR
Zielmedien der Online-PRZielmedien der Online-PR
Zielmedien der Online-PRRainer Bartel
 
Führungsaufgaben im Fehlzeiten-Management
Führungsaufgaben im Fehlzeiten-ManagementFührungsaufgaben im Fehlzeiten-Management
Führungsaufgaben im Fehlzeiten-ManagementGuido Brombach
 
Facebook - Die Schweiz im Vergleich
Facebook - Die Schweiz im VergleichFacebook - Die Schweiz im Vergleich
Facebook - Die Schweiz im VergleichSocial Media Schweiz
 
Grundlagen computergestützter Fertigungsverfahren
Grundlagen computergestützter FertigungsverfahrenGrundlagen computergestützter Fertigungsverfahren
Grundlagen computergestützter FertigungsverfahrenSebastian Bächer
 
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloquePlanificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloqueAimee Herrera Velarde
 
Web Quest – Wirtschaftslandschaft Ppt
Web Quest – Wirtschaftslandschaft PptWeb Quest – Wirtschaftslandschaft Ppt
Web Quest – Wirtschaftslandschaft Pptguestd2b8b
 
Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)guesta7bd4f
 
GLOSARIO TERMINOS SISTEMA CARDIOVASCULAR
GLOSARIO TERMINOS SISTEMA CARDIOVASCULARGLOSARIO TERMINOS SISTEMA CARDIOVASCULAR
GLOSARIO TERMINOS SISTEMA CARDIOVASCULARdavid coello
 

Destaque (19)

KKundK Produktbroschüre Social Media Relations
KKundK Produktbroschüre Social Media RelationsKKundK Produktbroschüre Social Media Relations
KKundK Produktbroschüre Social Media Relations
 
Jose albarradas
Jose albarradasJose albarradas
Jose albarradas
 
Narración san ignacio
Narración san ignacioNarración san ignacio
Narración san ignacio
 
Zielmedien der Online-PR
Zielmedien der Online-PRZielmedien der Online-PR
Zielmedien der Online-PR
 
DUW 05438
DUW 05438DUW 05438
DUW 05438
 
Führungsaufgaben im Fehlzeiten-Management
Führungsaufgaben im Fehlzeiten-ManagementFührungsaufgaben im Fehlzeiten-Management
Führungsaufgaben im Fehlzeiten-Management
 
Facebook - Die Schweiz im Vergleich
Facebook - Die Schweiz im VergleichFacebook - Die Schweiz im Vergleich
Facebook - Die Schweiz im Vergleich
 
Cáncer
CáncerCáncer
Cáncer
 
Fh workshop tag2
Fh workshop tag2Fh workshop tag2
Fh workshop tag2
 
Grundlagen computergestützter Fertigungsverfahren
Grundlagen computergestützter FertigungsverfahrenGrundlagen computergestützter Fertigungsverfahren
Grundlagen computergestützter Fertigungsverfahren
 
KKundK Produktbroschüre Intranet
KKundK Produktbroschüre IntranetKKundK Produktbroschüre Intranet
KKundK Produktbroschüre Intranet
 
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloquePlanificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
Planificaciones, de octubre y los 3 primeros aprendizajes del 2do bloque
 
Webseitenideen
WebseitenideenWebseitenideen
Webseitenideen
 
Web Quest – Wirtschaftslandschaft Ppt
Web Quest – Wirtschaftslandschaft PptWeb Quest – Wirtschaftslandschaft Ppt
Web Quest – Wirtschaftslandschaft Ppt
 
Sala Delfines
Sala DelfinesSala Delfines
Sala Delfines
 
Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)Jeopardy (Auf Deustch)
Jeopardy (Auf Deustch)
 
Scanner
Scanner Scanner
Scanner
 
Prénoms 2e
Prénoms 2ePrénoms 2e
Prénoms 2e
 
GLOSARIO TERMINOS SISTEMA CARDIOVASCULAR
GLOSARIO TERMINOS SISTEMA CARDIOVASCULARGLOSARIO TERMINOS SISTEMA CARDIOVASCULAR
GLOSARIO TERMINOS SISTEMA CARDIOVASCULAR
 

Semelhante a Illik verteilte systeme

Angewandte Informatik - Systems Engineering: Die Mischung macht´s!
Angewandte Informatik - Systems Engineering: Die Mischung macht´s!Angewandte Informatik - Systems Engineering: Die Mischung macht´s!
Angewandte Informatik - Systems Engineering: Die Mischung macht´s!starchaser
 
Helmholtz vortrag upload
Helmholtz vortrag uploadHelmholtz vortrag upload
Helmholtz vortrag uploadWolf Noeding
 
PLM Open Hours - Fachübergreifende Entwicklung von Produkten und Systemen
PLM Open Hours - Fachübergreifende Entwicklung von Produkten und SystemenPLM Open Hours - Fachübergreifende Entwicklung von Produkten und Systemen
PLM Open Hours - Fachübergreifende Entwicklung von Produkten und SystemenIntelliact AG
 
Steht alles im Wiki? Das kleine 1x1 der Architekturdokumentation
Steht alles im Wiki? Das kleine 1x1 der ArchitekturdokumentationSteht alles im Wiki? Das kleine 1x1 der Architekturdokumentation
Steht alles im Wiki? Das kleine 1x1 der Architekturdokumentationoose
 
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)Gerald Pitschek
 
WPF UI-Development Best Practices
WPF UI-Development Best PracticesWPF UI-Development Best Practices
WPF UI-Development Best PracticesErgosign GmbH
 
Softwarequalität - Architektur
Softwarequalität - ArchitekturSoftwarequalität - Architektur
Softwarequalität - ArchitekturGerrit Beine
 
Per CMS Websites problemlos pflegen
Per CMS Websites problemlos pflegenPer CMS Websites problemlos pflegen
Per CMS Websites problemlos pflegenmsoeth
 
Architectural Diversity (German)
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)zynamics GmbH
 
Architectural Diversity (German)
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)zynamics GmbH
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkRoland Bruggmann
 
Onno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellenOnno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellenlernet
 
Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...
Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...
Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...Paul G. Huppertz
 
Kompetenzprofil Amthor
Kompetenzprofil AmthorKompetenzprofil Amthor
Kompetenzprofil AmthorDrPeterAmthor
 

Semelhante a Illik verteilte systeme (20)

Angewandte Informatik - Systems Engineering: Die Mischung macht´s!
Angewandte Informatik - Systems Engineering: Die Mischung macht´s!Angewandte Informatik - Systems Engineering: Die Mischung macht´s!
Angewandte Informatik - Systems Engineering: Die Mischung macht´s!
 
OSLC in Aktion
OSLC in AktionOSLC in Aktion
OSLC in Aktion
 
Helmholtz vortrag upload
Helmholtz vortrag uploadHelmholtz vortrag upload
Helmholtz vortrag upload
 
PLM Open Hours - Fachübergreifende Entwicklung von Produkten und Systemen
PLM Open Hours - Fachübergreifende Entwicklung von Produkten und SystemenPLM Open Hours - Fachübergreifende Entwicklung von Produkten und Systemen
PLM Open Hours - Fachübergreifende Entwicklung von Produkten und Systemen
 
Uni Leipzig - Prof. Franczyk
Uni Leipzig - Prof. FranczykUni Leipzig - Prof. Franczyk
Uni Leipzig - Prof. Franczyk
 
Steht alles im Wiki? Das kleine 1x1 der Architekturdokumentation
Steht alles im Wiki? Das kleine 1x1 der ArchitekturdokumentationSteht alles im Wiki? Das kleine 1x1 der Architekturdokumentation
Steht alles im Wiki? Das kleine 1x1 der Architekturdokumentation
 
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
Re-Use von ECM Projektloesungen durch Anwendungspattern (ECM-Pattern)
 
WPF UI-Development Best Practices
WPF UI-Development Best PracticesWPF UI-Development Best Practices
WPF UI-Development Best Practices
 
Angewandte Informatik_2023.pdf
Angewandte Informatik_2023.pdfAngewandte Informatik_2023.pdf
Angewandte Informatik_2023.pdf
 
Softwaretests in der Domäne modellgetriebener BI-Systeme
Softwaretests in der Domäne modellgetriebener BI-SystemeSoftwaretests in der Domäne modellgetriebener BI-Systeme
Softwaretests in der Domäne modellgetriebener BI-Systeme
 
Softwarequalität - Architektur
Softwarequalität - ArchitekturSoftwarequalität - Architektur
Softwarequalität - Architektur
 
Per CMS Websites problemlos pflegen
Per CMS Websites problemlos pflegenPer CMS Websites problemlos pflegen
Per CMS Websites problemlos pflegen
 
Architectural Diversity (German)
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)
 
Architectural Diversity (German)
Architectural Diversity (German)Architectural Diversity (German)
Architectural Diversity (German)
 
TOGAF Architecture Content Framework
TOGAF Architecture Content FrameworkTOGAF Architecture Content Framework
TOGAF Architecture Content Framework
 
Onno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellenOnno Reiners: E-Learning einfach selbst erstellen
Onno Reiners: E-Learning einfach selbst erstellen
 
Bpmn2010
Bpmn2010Bpmn2010
Bpmn2010
 
Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...
Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...
Arbeitsbericht Nr. 118: 'IT-Service Management - Ein neues Paradigma für das ...
 
Kompetenzprofil Amthor
Kompetenzprofil AmthorKompetenzprofil Amthor
Kompetenzprofil Amthor
 
Systementwurf mit UML
Systementwurf mit UMLSystementwurf mit UML
Systementwurf mit UML
 

Mais de Prof. J. A. Illik, Hochschule Furtwangen University, (10)

Showdown ss2013
 Showdown ss2013 Showdown ss2013
Showdown ss2013
 
Hangout wpvinnova 130422
Hangout wpvinnova 130422Hangout wpvinnova 130422
Hangout wpvinnova 130422
 
Reputationsmanagement
ReputationsmanagementReputationsmanagement
Reputationsmanagement
 
Scrum 2009 10_23
Scrum 2009 10_23Scrum 2009 10_23
Scrum 2009 10_23
 
Wnb illik innomark_intro_b_v00
Wnb illik innomark_intro_b_v00Wnb illik innomark_intro_b_v00
Wnb illik innomark_intro_b_v00
 
Wpvinnova 110124.ppt
Wpvinnova 110124.pptWpvinnova 110124.ppt
Wpvinnova 110124.ppt
 
05 ai uml_illik_students_part_2_eng
05 ai uml_illik_students_part_2_eng05 ai uml_illik_students_part_2_eng
05 ai uml_illik_students_part_2_eng
 
05 ai uml_illik_students_part_1_eng
05 ai uml_illik_students_part_1_eng05 ai uml_illik_students_part_1_eng
05 ai uml_illik_students_part_1_eng
 
05 ai uml_illik_students_part_1_de
05 ai uml_illik_students_part_1_de05 ai uml_illik_students_part_1_de
05 ai uml_illik_students_part_1_de
 
Wnb illik innomark_intro_b_v01
Wnb illik innomark_intro_b_v01Wnb illik innomark_intro_b_v01
Wnb illik innomark_intro_b_v01
 

Illik verteilte systeme

  • 1. Verteilte Systeme Architekturen und Software-Technologien J. Anton Illik Prof. 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.de Prof. 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 1 Prof. 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 2 Prof. 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 3 Prof. 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 4 Prof. 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 5 Prof. 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 6 Prof. 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 7 Prof. 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 8 Prof. J. Anton Illik 11 Prof. J. Anton Illik
  • 12. Client-­‐/Server-­‐Architektur   Das  Client-­‐Server-­‐Prinzip   Client Server Zeit Aufruf Antwort Bild 9 Prof. 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 10 Prof. 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 11 Prof. 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 12 Prof. J. Anton Illik 15 Prof. J. Anton Illik
  • 16. MVC  Architekturmuster   MVC-­‐Struktur   View Controller (=Präsentation) (= Programm- steuerung) Modell (= Datenmodell) Bild 13 Prof. J. Anton Illik 16 Prof. J. Anton Illik
  • 17. Pipes  und  Fifos   Das  Prinzip  der  Pipe   Pipe Byte-Stream Byte-Stream Bild 14 Prof. 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 15 Prof. 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 16 Prof. 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 17 Prof. 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 18 Prof. 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 19 Prof. 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 20 Prof. 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 21 Prof. 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 22 Prof. J. Anton Illik 25 Prof. J. Anton Illik
  • 26. Der  Au-au  von  COM   COM  als  SpezifikaHon  und  ImplemenHerung   COM Library COM Spezifikationen Bild 23 Prof. 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 24 Prof. 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 25 Prof. 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 26 Prof. 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 27 Prof. 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 28 Prof. 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 28 Prof. 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 29 Prof. 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 30 Prof. 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 31 Prof. 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 32 Prof. 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 37 Prof. 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 38 Prof. 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 39 Prof. 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 40 Prof. 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 41 Prof. 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 46 Prof. 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 47 Prof. 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 48 Prof. 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 49 Prof. 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 51 Prof. 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 56 Prof. 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 57 Prof. 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 59 Prof. 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 60 Prof. J. Anton Illik 50 Prof. J. Anton Illik
  • 51. Proxy-­‐KommunikaHon   Prinzip  der  Proxy-­‐KommunikaHon   Client Server Client Objektimpl. Stub Skeleton ORB ORB Bild 61 Prof. 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 62 Prof. 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 63 Prof. 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 64 Prof. 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 65 Prof. 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 66 Prof. 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 67 Prof. 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 68 Prof. 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 69 Prof. 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 70 Prof. 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 71 Prof. 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 72 Prof. 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 73 Prof. 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 73 Prof. 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 74 Prof. 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 75 Prof. 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 76 Prof. 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 76 Prof. 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 77 Prof. 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 77 Prof. 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 78 Prof. 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 79 Prof. 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 80 Prof. 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 81 Prof. 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 82 Prof. 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 83 Prof. 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 84 Prof. J. Anton Illik 77 Prof. J. Anton Illik