Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Enterprise Java > Verteilte System --- eine Einführung ---
Antwort
 
Themen-Optionen
Alt 12.07.2004, 08:05   Nach oben    #1
Erfahrener Benutzer
 
Registriert seit: 16.11.2005
Beiträge: 243
Standard Verteilte System --- eine Einführung ---

Also ... um auch Anfängern einen Einblick zu verschaffen um was es hier geht, werde ich hier versuchen in einfachen Worten das WAS, WO und WIE zu erklären.

Bitte nicht hier reinposten. Falls Ihr Kommentare hierzu abgeben möchtet bitte eine PrivatMessage(PM) senden.

Ok dann lass mal anfangen....
nove ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 12.07.2004, 08:53   Nach oben    #2
Erfahrener Benutzer
 
Registriert seit: 16.11.2005
Beiträge: 243
Standard Verteilte Systeme

Einführung verteilte Systeme

Der Unterschied zwischen nicht-verteilten und verteilten Systemen ist wohl grundsätzlich der, daß bei nicht-veteilten Systemen die Aufgaben auf einem Rechner gelöst werden und bei verteilten auf mehreren Systemen.

Sobald mehrere Programmkomponenten zur Lösung einer Aufgabe gebraucht werden entsteht eine höhere Kommunikationslast. Man kann verteilte Systeme sehen wie dieses Forum hier, jeder Moderator und User übernimmt spezielle Aufgaben und löst diese.

Hierbei funktioniert die Plattform(Forums-Software) als Server der die Aufgaben aufnimmt und/oder bereitstellt. Die Moderatoren fungieren hier als Kontrollinstanzen und die User als lösende Programmkomponenten.

Ein Beispiel aus der freien Wirtschaft:

Ein Logistikunternehmen das Auslagerungen für z.B. Möbelteile übernimmt. Erhält einen Auftrag zur Lieferung von Möbelfronten per E-Mail.

Hier könnte die Lösung z. B. so aussehen:
Ein Server nimmt die E-Mails an, übernimmt den Anhang der E-Mail, parst diesen nach Auftragsdaten. Dann nimmt der Server eine Plausibilitätsprüfung vor(ist dies ein Auftrag?, sind alle Daten vorhanden?). Verläuft die Plausibilitätsprüfung erfolgreich so gibt der Server diesen Auftrag zur weiterverarbeitung an eine weitere Methode weiter die nun anhand einer Datenbank überprüft ob die Artikel des Auftrages an Lager sind.

Wenn ja wird der Client des Disponenten benachrichtig, daß ausführbare Aufträge auf Freigabe warten, gibt der Disponet(Client) die Aufträge frei so wird dem Server die Auftragsfreigabe mitgeteilt, dieser druckt in der Kommissionierungs-Abteilung die Aufträge dann aus oder benachrichtigt den/die Client/s der Kommissionierungs-Abteilungung.

Wenn nein, wird der Client des Disponenten benachrichtigt, daß hier Fehlmengen vorliegen und der Auftrag nicht komplett erfüllt werden kann. Hier erfolgt dann zusätzlich eine Nachricht an das System des Auftraggebers sowie eine Terminanfrage an das System des Lieferanten.

Diese Beispiel lässt sich nun unendlich ausbauen. Hier kann man erkennen, daß hier ein verteiltes System Vorteile hat gegenüber einem nicht-verteilten System. Hauptaufgaben werden vom Server übernohmen und weitere Aufgaben an Clients deligiert.

... wird fortgesetzt .....
nove ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.07.2004, 10:09   Nach oben    #3
Erfahrener Benutzer
 
Registriert seit: 16.11.2005
Beiträge: 243
Standard Erste Schritte zur Client/Server Kommunikation

Erste Schritte zur Client/Server Kommunikation

Um eine Kommunikations zwischen einem Server und seinen Clients zu ermöglichen bietet JAVA die Kommunikation über sogenannte Sockets. Ein Socket ist die Kombination von IP-Adresse und Portnummer. (Was jetzt ne IP-Adresse und ne Portnummer ist, werde ich jetzt nicht erklären)

Um Klar zu machen wie so etwas funktioniert hier mal ein kleines primitives Beispiel:
nove ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.10.2004, 06:48   Nach oben    #4
Erfahrener Benutzer
 
Registriert seit: 16.11.2005
Beiträge: 243
Standard

DER CLIENT


Java Code:
  1. //Import benötigter Klassen:
  2.  
  3. import java.io.InputStreamReader;
  4. import java.io.BufferedReader;
  5. import java.io.PrintWriter;
  6. import java.net.Socket;
  7. import java.net.URL;
  8. import java.net.URLConnection;
  9.  
  10.  
  11. public class Client {
  12.    
  13.   public static void main (String args[]) {
  14.     try {
  15.      // Kontakt zum Server aufnehmen
  16.      Socket server = new Socket ( "localhost", 6666 );     
  17.            
  18.      System.out.println ("Verbindung zum Server aufgenommen...");
  19.            
  20.      // öffnen der Streams:
  21.      PrintWriter out =
  22.          new PrintWriter ( server.getOutputStream() );
  23.      BufferedReader in = new BufferedReader (
  24.         new InputStreamReader (
  25.             server.getInputStream()
  26.         )
  27.      );       
  28.      
  29.      // Befehl 1 an Server
  30.      String command_1 = "Hi Server";
  31.      System.out.println ("sende: " + befehl_1);   
  32.      out.println ( befehl_1 );
  33.      out.flush();
  34.      //Bearbeiten der Antwort 1
  35.      String answer_1 = in.readLine();
  36.      System.out.println ( "Server antwort: " + antwort_1 );
  37.      // Befehl 2 an Server
  38.      String command_2 = "Wieviel Uhr?";
  39.      System.out.println ("sende: " + befehl_2);
  40.      out.println ( befehl_2 );
  41.      out.flush();
  42.      //Bearbeiten der Antwort 2
  43.      String answer_2 = in.readLine();
  44.      System.out.println ( "Server sagt: " + antwort_2 );
  45.     } catch (Exception e) {
  46.  
  47.         System.out.println ( "Error: " + e );
  48.     }
  49.   }
  50. }
nove ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.10.2004, 09:20   Nach oben    #5
Erfahrener Benutzer
 
Registriert seit: 16.11.2005
Beiträge: 243
Standard

Der Server

Java Code:
  1. import java.io.PrintWriter;
  2. import java.io.IOException;
  3. import java.net.Socket;
  4. import java.net.ServerSocket;
  5. import java.util.Date;
  6. import java.text.SimpleDateFormat;
  7. import java.io.BufferedReader;
  8. import java.io.InputStreamReader;
  9.  
  10. public class Server {
  11.    
  12.     //Server erzeugen
  13.    
  14.     public Server(int portNummer) throws IOException {
  15.         // Port belegen
  16.         ServerSocket servers = new ServerSocket ( portNummer );
  17.         System.out.println ("Server auf Port " + portNummer + " gestartet!");
  18.        
  19.         while (true) {
  20.             // Auf client requests warten:       
  21.             Socket client_request = servers.accept();
  22.        
  23.             // client request bearbeiten:
  24.             requesthandling (client_request);
  25.         }
  26.     }
  27.  
  28.  
  29.    //crequest bearbeiten
  30.     private void requesthandling ( Socket crequest ) throws IOException {
  31.         // Streams initialisieren:
  32.         BufferedReader in = new BufferedReader (
  33.             new InputStreamReader (crequest.getInputStream()
  34.             )
  35.         );
  36.         PrintWriter out = new PrintWriter (
  37.             crequest.getOutputStream()
  38.         );
  39.        
  40.                
  41.         // handling
  42.         String hallo = in.readLine();
  43.         System.out.println ("Client Anfrage: " + hallo);
  44.         String answer_1 = "Hallo Client!";
  45.         System.out.println ("sende: " + answer_1);
  46.        
  47.         out.println ( answer_1 );
  48.         out.flush();
  49.        
  50.         String frage = in.readLine();
  51.         System.out.println ("Client Anfrage: " + frage);
  52.         String answer_2 = act_time();
  53.         System.out.println ("sende: " + answer_2);
  54.        
  55.         out.println ( answer_2 );
  56.         out.flush();
  57.        
  58.         // schließen der Kommunikation:
  59.         in.close();
  60.         out.close();
  61.         crequest.close();
  62.     }
  63.  
  64.  
  65. public static void main (String args[]) {
  66.         // Start des Servers
  67.         try {
  68.             new Server ( 6666 );
  69.         } catch (IOException e) {
  70.            
  71.             System.out.println ("I/O Error: " + e);
  72.         }           
  73.     }
  74.     private String current_time () {
  75.         Date currenttime = new Date();
  76.         SimpleDateFormat dateformat= new SimpleDateFormat ("HH:mm  dd.MM.yyyy");
  77.  
  78.         // verzögerung der Antwort um 5 Sekunden (Effekthascherei ;-) )
  79.         try {
  80.             Thread.sleep( 5000 );
  81.         } catch (InterruptedException e) {}
  82.        
  83.         return dateformat.format(currenttime);
  84.     }
  85.    
  86. }
nove ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
eigenes Template System mit Sprachunterstützung jjelliss PHP-Programmierung 61 15.09.2006 10:00
[Rezension] Einführung in die Spieltheorie Ben Literatur 3 06.06.2006 15:06
[Diskussion und Fragen] Einführung in die Spieltheorie Ben Literatur 0 06.06.2006 12:25
Kleines Prob mit phpBB Template System Garnele PEAR, PECL und Frameworks 6 22.10.2005 00:31


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:34 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44