Zusammenfassung Netzprogrammierung (Folien und Bücher)

Größe: px
Ab Seite anzeigen:

Download "Zusammenfassung Netzprogrammierung (Folien und Bücher)"

Transkript

1 Zusammenfassung Netzprogrammierung (Folien und Bücher) 1. Einleitung a. Verteilte Systeme Definition: Ein verteiltes System ist eine Menge voneinander unabhängiger Computer, die dem Benutzer wie ein einzelnes, kohärentes System erscheinen. Anschein: autonome Maschinen, einziges System moderne verteilte System bestehen aus Tausenden Prozessen, die über ein unzuverlässiges Netzwerk verteilt sind (Internet) Arten: o Server-Zentrierung: Dumme Terminals nutzen einen Server mit Datenbank, Programme auf dem Server laufen nebenläufig, Terminals sind nur Anzeigegeräte, Netzwerk ist lediglich Draht zur Zeichenübermittlung o Client-Server: durch Middleware verbundene Server bilden einen Server, schlaue Klienten nutzen diese durch Middleware, Netzwerk ist ein WAN oder LAN o Föderation: durch Middleware verbundene Server bleiben autonom und arbeiten zusammen, schlaue Klienten nutzen diese durch Middleware (ist etwas symmetrischer) o Peer-to-Peer: jeder arbeitet mit jedem zusammen, jeder ist gleichberechtigt, Middleware ist erheblich komplexer Gründe: o Technisch: schlecht und unvorhersagbare Reaktionszeit zentralisierter Systeme, insbesondere in Interaktion mit Nutzer, gute Verfügarkeit von Vernetzung, geringe Kosten der Vernetzung o Organisatorisch: größere Integration von Organisationen, virtuelle Organisationen mit natürlicher Verteiltheit von Anwendungen, Ad-hoc Zusammenarbeit erlaubt keine zentralisierten Strukturen Eigenschaften: Systeme sind immer aus verschiedenen, oft unabhängigen Komponenten zusammengesetzt, Komponenten: o sind räumlich verteilt (bedingt Vernetzung, Kommunikation) o sind einzeln von Fehlern betroffen (Fehler und Auswirkungen für andere sichtbar) o müssen integriert sein, so dass sie möglichst homogen erscheinen (bedingt zusätzliche Software = Middleware) o Komponentenheterogenität teilweise transparent (vereinfacht Systemgestaltung) o als autonome Partner in Interaktionen (bedingt Nebenläufigkeit) Vorteile: o bessere Leistung (kostengünstige einfache Komponenten und Vernetzungsund Kommunikationskosten, bessere Antwortzeiten durch Lastverteilung) o bessere Organisation (gemeinsame Nutzung von Ressourcen, Kommunikation im System erlaubt Kommunikation zwischen Usern) o bessere Zuverlässigkeit (durch verteilten Fehlerauftritt und mehrfach vorhandene Ressourcen und Kopien von Daten, unwahrscheinlicher Gesamtausfall, inkrementeller Ausbau möglich, einfachere Wartung) Nachteile: o Leistung abhängig von Netzwerkverfügbarkeit und dessen Qualität (Latenz, Bandbreite) o Organisation: höhere Komplexität der Software und Planung der Kommunikation und Koordination nötig, zusätzlicher Aufwand beim Testen durch nichtdeterministisches Netzverhalten o Zuverlässigkeit: erheblich mehr logische und physische Angriffspunkte

2 b. Middleware Definition: zusätzliche Softwareschicht zwischen Applikationen und Netzwerkbetriebssystemen (ist in Netzwerkbetriebssystemen für die Verbergung der Heterogenität der vielen verschiedenen Plattformen zuständig ist), höhere Abstraktionsebene möglich Middleware stellt Technologien, Abstraktionen, Schnittstellen bereit, mit der netzbasierte Systeme realisiert werden können Positionierung: Kleber zur Verbindung von Anwendungen (für Anwendungen erscheint verteiltes System homogener, als es tatsächlich ist, sitzt zwischen Anwendung und Betriebssystem Verteilungstransparenzen: Transparenz = Tatsache verbergen, dass Prozesse und Ressourcen (Heterogenität der Software/Hardware, Ort und Bewegung der Komponenten, Mechanismen zur Fehlerbehandlung) physisch über mehrere Computer verteilt sind und so tun, als ob es sich um ein einziges System handelt o Zugriff: verbirgt Unterschiede in der Datendarstellung und wie der Zugriff auf eine Ressource erfolgt (maskiert unterschiedliche Datenrepräsentationen, Aufrufmechanismen, genutzte Programmiersprachen) am notwendigsten! o Position: verbirgt, wo sich eine Ressource befindet (maskiert die Nutzung von Ortinformationen beim Auffinden anderer Objekte, ermöglicht rein logische Sicht auf Namen im System, keine Ortinformationen zur Nutzung von Namen nötig) o Migration: verbirgt, dass eine Ressource an eine andere Position verschoben werden kann (maskiert Ortänderungen an Objekten, ermöglicht transparenten Lastausgleich) o Relokation: verbirgt, dass eine Ressource an einen anderen Ort verschoben werden kann, während sie genutzt wird (sichert Weiterarbeit auch trotz temporär inkonsistenter Sichten) o Replikation: verbirgt, dass eine Ressource repliziert ist (maskiert den Einsatz einer Gruppe von Objekten an einer Schnittstelle, erhöht Performance und Verfügbarkeit) o Nebenläufigkeit/Transaktion: verbirgt, dass eine Ressource von mehreren konkurrierenden Benutzern gleichzeitig genutzt werden kann (beinhaltet Planung, Überwachung, Widerrufen von Aktivitäten) o Fehler: verbirgt den Ausfall und die Wiederherstellung einer Ressource (Bsp: Checkpointing, Transaktionen) o Persistenz: verbirgt, ob eine (Software-) Ressource sich im Speicher oder auf einer Festplatte befindet (maskiert die Aktivierung/Deaktivierung von Objekten zu Klienten und zum Objekt selber, Objekte erscheinen immer verfügbar)

3 Klassen: RPC Remote Procedure Call (synchroner, entfernter Prozeduraufruf), DOM Distributed Object Middleware (synchroner, entfernter Methodenaufruf an Objekten), Distributed Tuples (Tuplespace als asynchrones Blackboardartiges Koordinationsmedium), MOM Message-Oriented Middleware (Mailbox- Methapher für asynchrone Entkopplung) c. Web als verteiltes System Web = einfaches, konsistentes und einheitliches Modell verteilter Dokumente (unwichtig, von welchem Server das Dokument geladen wurde) eine Web-basierte Anwendung ist ein verteiltes System, jede Komponente (Web Server, Web Crawler, Indexierte Seiten) kann auf anderen Rechner sein http, HTML als Middleware (allerdings nicht hinreichend integriert) d. Client-Server-Modell Clients und Server: o Prozesse werden zwei (möglicherweise überlappende) Gruppen eingeteilt o Server = Prozess, der einen bestimmten Dienst implementiert o Client = Prozess, der einen Dienst von einem Server anfordert, indem er eine Anforderung sendet und auf eine Antwort wartet o Kommunikation zwischen beiden kann in einem zuverlässigen Netzwerk verbindungslos sein (effizienter für lokale Netze, Fehlererkennung allerdings schwieriger!) o Alternative: zuverlässiges, verbindungsorientiertes Protokoll (geringe Leistung für lokales Netzwerk, perfekt für WAN) Ebene der Benutzeroberfläche: o normalerweise durch die Clients implementiert o besteht aus den Programmen, die es den Benutzern ermöglichen, mit Anwendungen zusammenzuarbeiten Verarbeitungsebene: o Komponente, die mit einer Datenbank oder einem Dateisystem arbeitet o Systeme können unterschieden werden in Frontend (implementiert die Benutzeroberfläche), Backend (Zugriff auf Datenbank) und dazwischen liegende Analyseprogramme Datenebene: o normalerweise durch die Server implementiert o enthalten die Programme, die die eigentlichen Daten verwalten, mit denen die Anwendungen arbeiten o Daten sind persistent, werden hier konsistent gehalten Mehrschichtige Architekturen ( Multitier ): o Programme aus den Anwendungsebenen über unterschiedliche Maschinen verteilen o erst nur zwischen Client und Server unterscheiden (Zwei-Schichten- Architektur two-tiered ) (a) terminalabhängigen Teil auf Clientmaschine, Applikationen haben entfernte Kontrolle über Darstellung der Daten (b) gesamte Software für Benutzeroberfläche auf Client, Applikation enthält ein grafisches Frontend (hat nur die Aufgabe der Darstellung) (c) einen Teil der Applikation ins Frontend verschieben (sinnvoll z.b. für ein Formular, das komplett ausgefüllt werden muss, was die Applikation auf Client-Seite erst überprüft und ggf. mit dem Benutzer kommuniziert) (d) Client ist ein PC oder Workstation in einem Netzwerk mit verteiltem Dateisystem oder Datenbank, Großteil der Applikationen werden auf dem Client, Dateioperationen aber auf dem Server durchgeführt (e) lokale Festplatte des Clients enthält einen Teil der Daten

4 o Server können auch als Clients arbeiten Drei-Schichten-Architektur three-tiered (Verwendung: Transaktionsverarbeitung) 2. Remote Procedure Calls RPC a. Remote Procedure Call Definition: entfernter Prozeduraufruf, als grundlegender Mechanismus für verteilte Systeme (direkt implementiert von SUN RPC, HP RPC, weiterentwickelt in Java RMI, konzeptionell enthalten in HTTP) RPC ist ein synchroner Mechanismus, der Kontrollfluss und Daten als Prozeduraufruf zwischen zwei Adressräumen über ein schmalbandiges Netz transferiert (Birrell, Nelson) versucht Probleme der Nachrichtenübergabe zu verbergen, ideal für Client- Server-Anwendungen Konzept: entfernten Prozeduraufruf wie lokalen Prozeduraufruf aussehen lassen der RPC soll transparent sein Kontroll- und Datenfluss: RPC transferiert Kontrollfluss und Daten über ein Netzwerk zwischen Rechnern, Prozeduraufruf (vom Aufrufer in eine Prozedur) steuert den Kontrollfluss und die Parameter, Prozedurbeendigung (zurück) steuert den Kontrollfluss und die Ergebnisdaten (dafür müssen beide Maschinen identisch sein, denselben Zeichencode und dieselbe Zahlendarstellung verwenden, Bytes identisch nummerieren Big/Little- Endian) Eigenschaften: synchron: Aufrufer blockiert bis Aufgerufener das Ergebnis liefert Prozeduraufruf: Signatur der Prozedur definiert zu übertragende Daten unterschiedlicher Adressraum: Speicheradressen (Zeiger) sind nicht semantikerhaltend übertragbar schmalbandig: Bandbreite des Netzes ist um Dimensionen geringer als die der Kommunikationspfade innerhalb eines Rechners

5 Unterschiede lokaler / entfernter Aufruf: lokal entfernt Aufrufer und Prozedur werden im Aufrufer und Prozedur werden in selben Prozess ausgeführt unterschiedlichen Prozessen ausgeführt Aufrufer und Prozedur stehen im Aufrufer und Prozedur stehen In selben Adressraum unterschiedlichen Adressräumen Aufrufer und Prozedur liegen in derselben Hard- und Softwareumgebung Aufrufer und Prozedur haben dieselbe Lebensdauer Aufruf ist immer fehlerfrei es müssen nur Anwendungsfehler berücksichtigt werden Aufrufer und Prozedur liegen in unterschiedlichen Hard- und Softwareumgebungen Aufrufer und Prozedur haben unterschiedliche Lebensdauer Aufruf ist fehlerbehaftet es müssen zusätzlich Aufruffehler behandelt werden Vorteile: bessere Aufgabenverteilung, Lastverteilung, Ressourcennutzung, Modularität, Wiederverwendbarkeit, Integrationsfähigkeit, größere Offenheit Vorteile der Prozedurabstraktion: klare und verständliche Semantik von RPC, Prozeduraufrufe wohlverstanden und geeignetes Mittel zur Kommunikation, Einfachheit des Mechanismus ermöglicht effiziente Implementierungen Ablauf: Asynchroner RPC: Klient blockiert nicht, holt Ergebnis später ab, ermöglicht größeren Grad der Nebenläufigkeit (mehrere RPCs können offen sein, mehrere Prozesse in Servern arbeiten an Ergebnissen) Probleme: Semantik im Fehlerfall und von Zeigern, Einbettung in Programmiersprachen, Auffinden und Binden an die entfernten Prozeduren, Protokoll des Datenaustausches, Eigenschaften der Kommunikation

6 b. Komponenten Anwendungsprozeduren erledigen die eigentliche Arbeit, Stubs ver- und entpacken die Daten zum Transport, Kommunikation: Transport der Daten Interaktionspunkte: lokale Schnittstelle: Modul bietet Prozeduren zum Aufruf an (Modul exportiert eine Schnittstelle), ein anderes Modul ruft die Prozeduren der Schnittstelle auf (es importiert eine Schnittstelle) entfernte Schnittstelle: Anwender-Stub stellt Schnittstelle lokal bereit, Stubs und Kommunikationskomponente leiten Aufrufe an Schnittstelle des entfernten Moduls weiter und Ergebnisse des entfernten Moduls zurück Bindung: zwischen Aufrufer und Aufgerufenem, statische Bindung (zur Übersetzungszeit werden Klienten an feste Serveradressen gebunden), halbstatische Bindung (zur Startzeit des Klienten werden Serveradressen konfiguriert, ermittelt aus Datenbank/Tabelle), dynamisch (zur Aufrufzeit werden Serveradressen ermittelt, Serveradresse kann zwischen 2 RPCs wechseln) Trader/Broker (Vermittler): Komponente, die die Server kennt und Referenzen auf sie vermitteln kann o Registrierung/Abmeldung von Servern: Angabe der exportierten Schnittstelle, Referenz auf sich o Aufsuchen eines passenden Servers: Angabe einer Schnittstellenbeschreibung c. Fehler Fehler Server nicht erreichbar für RPC Server fällt während RPC-Ausführung aus Fehlerursache/folge Maschine ausgefallen Netzwerk ausgefallen Transport maskiert Fehler durch Neuversuche Broker maskiert Fehler durch andere Serverwahl Klient muss Fehler verarbeiten Ausfall während Klient wartet, Seiteneffekte realisiert Ausfall nach RPC Klient wartet, Seiteneffekte eingetreten Klient fällt während Server kann Ergebnis nicht liefern RPC-Ausführung aus neugestarteter Klient kann alte RPCs absagen neugestarteter Klient kann alten RPS übernehmen Server kann Klient überwachen, bei Timeout und Ergebnis bei Ablauf verwerfen Server hat Schnittstelle geändert und bietet Dienst nicht mehr an RPC-Mitteilungen gehen die Anforderung oder Teile davon

7 verloren das Ergebnis ist weg semantische Eigenschaften: Mix aus Fehlerquelle und Reaktion darauf ergibt unterschiedliche semantische Eigenschaften: o may-be: RPC wird nicht mehr als 1 Mal ausgeführt (oder 0 oder teilweise), passend, wenn Klient kein Ergebnis braucht o at-least-once: mindestens 1 Mal ausgeführt o at-most-once: höchstens 1 Mal ausgeführt (Ausfall vor Verarbeitung keine Ausführung, Ausfall während Verarbeitung Neustart, Konsistenz durch Transaktion, Ausfall nach Verarbeitung Ergebniskopie nach Neustart versandt) o exactly-once: genau 1 Mal 3. Verteilte Objekte in Java RMI a. Verteilte Objekte/RMI Verteilte Objekte : o RPC übertragen auf OO-Welt: entfernter Methodenaufruf o Interaktionsmuster in OO-Sprachen: Objekte tauschen Mitteilungen aus, beim Empfang einer Mittleilung führt ein Objekt eine Methode aus und schickt eventuelle Ergebnisse, Modell sagt nichts über Verteilung aus o Rollen der Partner: Aufrufer <=> Aufgerufener, Dienstnutzer <=> Dienstanforderer, Client <=> Server o Verteilte Objekte in Java: Remote Method Invocation RMI Lokale vs. verteilte Objekte lokales Objektmodell Aufruf an Objekten Parameter und Ergebnisse als Referenzen alle Objekte fallen zusammen aus keine Fehlersemantik verteiltes Objektmodell Aufruf an Interfaces Parameter und Ergebnisse als Kopien einzelne Objekte fallen aus komplizierte Fehlersemantik (Referenzintegrität, Netzfehler, Sicherheit) o ein Java-Programm arbeitet in einer virtuellen Java Machine (JVM) o zwischen JVMs können mit RMI Methoden an Objekten aufgerufen werden o JVMs können auf unterschiedlichen Internet-Rechnern laufen Schnittstellen : Objektschnittstellen definieren Methoden eines Objekts, unterschiedliche Implementierungen für gleiche Schnittstelle S, Modulschnittstellen des RPC werden aud Objektschnittstellen abgebildet, Aufrufweiterleitung durch Stellvertreter (Proxy) Bsp: lokales Zählerobjekt class LocalCounterImplementation { int counter; public LocalCounter () { public void add (Integer i) { counter += i.intvalue(); public Integer value() { return (new Integer(counter));

8 könnte folgende Schnittstelle implementieren: public interface LocalCounter { /* Addieren */ public void add (Integer i); /* Abfragen */ public Integer value(); Aufruf: c.add(new Integer(10)); Bsp: entferntes Zählerobjekt auf Aufruferseite wird mit einem Interface gesprochen (Schnittstelle macht Fehlermöglichkeit explizit): public interface Counter extends java.rmi.remote { /* Addieren */ public void add (Integer i) throws java.rmi.remoteexception; /* Abfragen */ public Integer value() throws java.rmi.remoteexception; Bsp: RMI Erbringerseite: ein Serverobjekt implementiert das Interface public class CounterServer extends java.rmi.server.unicastremoteobject implements Counter { int counter; public CounterServer() throws java.rmi.remoteexception { public void add(integer i) throws java.rmi.remoteexception { counter+=i.intvalue(); public Integer value() throws java.rmi.remoteexception { return(new Integer(counter)); Bsp: Aufruf eines entfernten Objekts: Aufruf durch Aufruf einer Methode an Interface, tatsächich wird damit eine Methode am Proxy aufgerufen (Unterschied: Fehlermöglichkeit) Counter c;... try { c.add (new Integer (10)); System.out.println ((c.value()). intvalue()); catch (Exception e) { System.err.println(e.getMessage());

9 rmic: Compiler für Verbindungsstücke: diese (Stub auf Clientseite, Skeleton auf Serverseite) werden automatisch erzeugt, rmic Serverklasse erzeugt Serverklasse_stub.class und Serverklasse_skel.class Bsp: Compilieren und Ausführen: >javac Counter.java >javac CounterServer.java >rmiregistry >java CounterServer >rmic CounterServer >java CounterUser 10 >javac CounterUser.java >java CounterUser 20 b. Objektreferenzen Fragen: Woher kennt der Aufrufer eigentlich das entfernte Objekt?, Wohin schickt der Proxy eigentlich den Methodenaufruf? RMIRegistry: Verzeichnisdienst für Objekte, Registry-Objekt liefert Referenzen auf Objekte rmiregistry: JDK-Programm rmiregistry ist RMI-Objekt für Interface java.rmi.registry.registry, Methoden o void bind, rebind (String name, Remote obj) Binden eines Objekts unter einem Namen o void lookup (String name) Referenz auf gebundenem Objekt erfragen o void unbind (String name) Bindung löschen o String[] list() Bindungen abfragen Bsp: Server-Programm meldet sich an: URL-Schema: rmi://rechner/pfad public class CounterServer extends java.rmi.server.unicastremoteobject implements Counter { //... public static void main(string argv[]) { System.setSecurityManager(new RMISecurityManager()); try { CounterServer c = new CounterServer(); Naming.bind("rmi://"+ (InetAddress.getLocalHost()).getHostName() + "/Teilnehmer",c); catch (Exception e) { System.err.println(e.getMessage()); Bsp: Client-Programm erhält Referenz: import java.net.*; public class CounterUser { public static void main(string argv[]) { try { Counter c = (Counter)java.rmi.Naming.lookup("rmi://" + (InetAddress.getLocalHost()).getHostName() + "/Teilnehmer"); c.add(new Integer(10)); System.out.println((c.value()).intValue());

10 catch (Exception e) { System.err.println(e.getMessage()); java.rmi.naming: Woher bekommt man eigentlich die Referenz auf ein Registry-Objekt? o Registry-Objekt der lokalen Maschine über statische Methoden der Klasse java.rmi.naming zugänglich o void java.rmi.naming.bin (String name, Remote obj) o void java.rmi.naming.rebind(string name, Remote obj) o Remote java.rmi.naming.lookup(string name) o void java.rmi.naming.unbind(string name) o String[] java.rmi.naming.list() java.rmi.registry.locateregistry: Woher bekommt man eigentlich die Referenz auf ein Registry-Objekt? o Registry-Objekte auf entfernten Maschinen über statische Methoden der Klasse java.rmi.naming zugänglich o Registry getregistry() Lokale Registry auf Port java.rmi.registry.registry.registry_port: o Registry getregistry(int port) Lokale Registry auf einem anderen Port o Registry getregistry(string host) Registry auf Rechner host o Registry getregistry(string host, int port) Registry auf Rechner host, Port port Callback: o zwischen Client und Server-Objekt ist eventuell ein complexes Protokoll notwendig o Client/Server folgt Anfrage/Antwort Protokoll o für Nachfrage/Anfrage/Antwort Protokoll muss Client selber zum Server werden o Nachfrage: Callback Methode des Clienten Objekts o in RMI: auch Client wird ein Serer-Objekt, übergibt Referenz auf sich bei Anfrage Bsp: Schnittstellen: o Server: public interface RMIPongServerInterface extends java.rmi.remote { public void pong(rmipongclientinterface theclient) throws java.rmi.remoteexception ; o Client: public interface RMIPongClientInterface extends java.rmi.remote { public boolean more() throws java.rmi.remoteexception ; Bsp: Server: class RMIPongServer extends java.rmi.server.unicastremoteobject implements RMIPongServerInterface { RMIPongServer() throws java.rmi.remoteexception { public void pong(rmipongclientinterface theclient) throws java.rmi.remoteexception { while (theclient.more()) { System.out.println("Pong");

11 public static void main(string[] argv) throws java.rmi.remoteexception,java.rmi.alreadyboundexception, java.net.malformedurlexception { RMIPongServer pongserver = new RMIPongServer(); java.rmi.naming.bind("rmi://localhost/pong",pongserver); Bsp: Client: class RMIPongClient extends java.rmi.server.unicastremoteobject implements RMIPongClientInterface { int morecounter = 0; RMIPongClient() throws java.rmi.remoteexception { public boolean more() throws java.rmi.remoteexception { return ((morecounter++)<5); public static void main(string[] argv) throws java.rmi.remoteexception, java.rmi.notboundexception, java.net.malformedurlexception { RMIPongClient pongclient = new RMIPongClient(); RMIPongServerInterface pongserver = (RMIPongServerInterface)java.rmi.Naming.lookup("rmi://localhost/pong"); pongserver.pong(pongclient); c. Serialisierung Objektserialisierung: Parameter und Ergebnisse müssen übertragen warden, das Erstellen einer seriellen Repräsentation eines Objekts ist die Serialisierung, notwendig zum Versenden oder Speichern von Objekten, Instanzwerte+Klasse=Objektrepräsentation automatische Serialisierung: automatisch, wenn Klassen die Schnittstelle java.io.serializable implementieren, rmic erzeugt Code für Serialisierung und Deserialisierung indem Klassendefinitionen angeschaut werden Serialisierung: o implements Serializable bedeutet: die automatische Serialisierung kann angewandt werden o schreibt man RMI Objekte und bewegt Objekte als Parameter oder Ergebnis, dann müssen diese Objekte als Serializable markiert o Fehlerquelle: rmic hat Serialisierungscode erzeugt und man ändert danach das Objekt-Lyaout: ergibt Marshalling Fehler zur Laufzeit Klassen nachladen: Objekte = Daten + Verhalten, serialisierte Java- Objekte=Datenstrom + Klasse, Klassen zu übermitteltem Objekt nachladen, falls nicht vorhanden, Bedrohung durch Angreifer, da alle Rechte gesetzt sein müssen, SecurityManager wird vor sicherheitsrelevanten Aktionen gefragt Security Manager: o Installation eines Security Managers mit der Methode void System.setSecurityManager (SecurityManager s) o fragt eventuell schon vorhandenen SecurityManager, ob das erlaubt ist

12 o RMI Classloader lädt Klassen von entfernten Rechner nur dann nach, wenn SecurityManager installiert ist o SecurityManager ist eine abstrakte Klasse d. Nebenläufigkeit Threads und RMI Aufrufe o mehrere gleichzeitig eintreffende RMI Aufrufe (lokal und mehrere Netzverbindungen) können in Threads arbeiten o immer davon ausgehen, dass Methoden nebenläufig aufgerufen werden o es kann immer zu Schreibkonflikten kommen 4. CORBA a. Was ist CORBA? Definition: CORBA (Common Object Request Broker Achitecture) ist eine offene, sprachunabhängige, herstellerunabhängige Plattform für vernetzte Anwendungen mit der OMG (Object Management Group) als Träger OMG o CORBA Objekte sind Bausteine von Anwendungen und haben eine typisierte Schnittstelle o es gibt von der Schnittstelle getrennte Implementierungen in unterschiedlichen Programmiersprachen, Aufrufe darauf werden durch Object Request Broker transportiert o Ortstransparenz wird durch IIOP (Internet Inter-ORB Protocol) erreicht, Interworking zwischen ORBs unterschiedlicher Hersteller möglich Bestandteile o IDL zur Definition von Schnittstellen o Mappings von IDL zu Programmiersprachen o APIs zum Objektaufruf (statisch und dynamisch) o ORB als Transportschicht o spezielle Objekte: CORBA Services (verteilt angebotene niedere Dienste) und Common Facilities (nützliche anwendungsbezogene Dienste, die aber nicht als notwendige Dienste angeboten werden müssen) Produkte o einzeln erhältlich (ORBs, IDL Anbindungen, Services, MAF) o mittels CORBA können diese Komponenten unterschiedlicher Herkunft und Implementierung miteinander arbeiten o eine IDL Schnittstelle kann verschiedene Implementierungen in verschiedenen Programiiersprachen haben aus denen sich verschiedene Exemplare ergeben, die als CORBA Objektreferenz zugänglich sind und über ORB aufgerufen werden können Glossar o OMG (Object Management Group) entwickelt Standards o OMA (Object Management Architecture) Standard für verteiltes offenes Objektsystem o ORB (Object Request Broker) Laufzeitsystem in OMA, eigentliche Middleware o CORBA (Common Object Request Broker Architekture) abstrakte Spezifikation von ORBs o IDL (Interface Definition Language) Sprache zur Beschreibung von Schnittstellen in OMA, IDL Compiler erzeugt Stub und Skeleton o IIOP (Internet Inter-ORB Protocol) Protokoll zwischen ORBs o Stub ist Stellvertreter für entferntes Objekt o Skeleton ist Verwaltung des aufrufbaren Objekts o POA (Protable Object Adapter) Adapter Muster Einige Services

13 o Naming Service:liefert den Mechanismus, mit dem die moisten Clients eines ORB-basierten Systems Objekte finden, die sie benutzen möchten (RMI Registry) o Trading Object Service: erlaubt das Anbieten und Finden von Service- Instanzen verschiedener Typen b. Beispiel Counter-Bsp: notwendig: Schnittstellendefinition, Zählerobjekt, Registrierung des Servers, Nutzung des Servers durch Client o IDL: module counter { typedef struct Info { long value; long counted; _Info; interface Counter { readonly attribute long value; void add(in long value); void addto(inout long clientvalue); Info getinfo(); ; ; c. Interface Definition Language IDL Definition: Sprache zur Definition von Schnittstellen, sprachunabhängig, Semantik der Typen definiert, zur Nutzung Mapping zu konkreter Sprache notwendig, OMG definiert solche Mappings für unterschiedliche Sprachen d. Java IDL Mapping e. 5. Netzkommunikation Internet-Sockets a. Kommunikation Internet Internet: weltweiter Verbund von Rechnern, die über Netze Daten austauschen können, eine Protokollfamilie, ein offenes System, in dem Dienste genutzt und angeboten werden können Das Internet Protokoll IP ermöglicht Internetworking durch Etablierung eines Datenformats und Transportprotokollen, die auf unterschiedlichen Datenverbindungen aufgesetzt werden können Enveloping/Encapsulation: Fragmentation und Reassemblierung bon IP Paketen IP Datagramme: z.b Bit Worte plus Daten IP-Adressen: b. TCP c. Nebenläufige Serverprogramme d. UDP 6. Netzkommunikation Internet Dienste 7. Internet-Dienste in Java 8. Zustand in Web Anwendungen 9. Java Applets 10. HTML 11. XML Dokumente und ihre Verarbeitung 12. Andere Programmiermodelle

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 1 Netzprogrammierung WS 05/06 Block Verteilte Systeme und Middleware 1. Beschreiben Sie die Entwicklung verteilter Systeme von einer Zentralisierung bis zu Peer-to-Peer. Nicht

Mehr

Überblick. Netzprogrammierung 2. Remote Procedure Calls. Remote Procedure Call RPC

Überblick. Netzprogrammierung 2. Remote Procedure Calls. Remote Procedure Call RPC Überblick 1. Remote rocedure Call 2. Komponenten beim RC 3. Fehler programmierung 2. Remote rocedure Calls rof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik basierte Informationssysteme

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

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

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Überblick. Netzprogrammierung 3. Verteilte Objekte in Java RMI. Verteilte Objekte

Überblick. Netzprogrammierung 3. Verteilte Objekte in Java RMI. Verteilte Objekte Überblick Netzprogrammierung 3. Verteilte Objekte in Java RMI 1. Verteilte Objekte / RMI 2. Objektreferenzen 3. Serialisierung 4. Threads und RMI Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014) Anleitung Ein einfaches RMI-Beispiel (ab Java.0) c Y. Pfeifer (Juni 014) 1 Ein einfaches RMI-Beispiel Vorgehensweise: 1. Java Projekt anlegen. Zwei Packages server & client erstellen Auf der Server-Seite

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Themen. Web Service - Clients. Kommunikation zw. Web Services

Themen. Web Service - Clients. Kommunikation zw. Web Services Themen Web Service - Clients Kommunikation zw. Web Services Bisher: Implementierung einer Java Anwendung und Bereitstellung durch Apache Axis unter Apache Tomcat Java2WSDL Erzeugen einer WSDL-Datei zur

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Netzprogrammierung Interaktionsmuster Remote Procedure Calls

Netzprogrammierung Interaktionsmuster Remote Procedure Calls Netzprogrammierung Interaktionsmuster Remote Procedure Calls Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme mailto: tolk@inf.fu-berlin.de

Mehr

Java RMI, CORBA und Firewalls

Java RMI, CORBA und Firewalls Java RMI, CORBA und s Lehrstuhl für Datenverarbeitung falk@ei.tum.de Verteilte Objekte s Probleme Lösungsmöglichkeiten Konkrete Lösungen Verteilte Objekte Client mehrere Objekte Methoden-Aufruf Antwort

Mehr

Firewalls für Lexware Info Service konfigurieren

Firewalls für Lexware Info Service konfigurieren Firewalls für Lexware Info Service konfigurieren Inhaltsverzeichnis: 1. MANUELLER DOWNLOAD 1 2. ALLGEMEIN 1 3. EINSTELLUNGEN 1 4. BITDEFENDER VERSION 10 2 5. GDATA INTERNET SECURITY 2007 4 6. ZONE ALARM

Mehr

Firewalls für Lexware Info Service konfigurieren

Firewalls für Lexware Info Service konfigurieren Firewalls für Lexware Info Service konfigurieren Inhaltsverzeichnis: 1. Manueller Download... 2 2. Allgemein... 2 3. Einstellungen... 2 4. Bitdefender Version 10... 3 5. GDATA Internet Security 2007...

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

Der lokale und verteilte Fall

Der lokale und verteilte Fall Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf

Mehr

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen 9 3 Web Services 3.1 Überblick Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen mit Hilfe von XML über das Internet ermöglicht (siehe Abb.

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN) Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN) Definition Was ist Talk2M? Talk2M ist eine kostenlose Software welche eine Verbindung zu Ihren Anlagen

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver Eine Firewall für Lexware professional oder premium konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Die Firewall von Windows 7 und Windows 2008 Server... 2 4. Die Firewall

Mehr

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0. Konfigurationsanleitung Access Control Lists (ACL) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0 Seite - 1 - 1. Konfiguration der Access Listen 1.1 Einleitung Im Folgenden

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Grundlagen verteilter Systeme

Grundlagen verteilter Systeme Universität Augsburg Insitut für Informatik Prof. Dr. Bernhard Bauer Wolf Fischer Christian Saad Wintersemester 08/09 Übungsblatt 2 05.11.08 Grundlagen verteilter Systeme Lösungsvorschlag Aufgabe 1: Das

Mehr

ObjectBridge Java Edition

ObjectBridge Java Edition ObjectBridge Java Edition Als Bestandteil von SCORE Integration Suite stellt ObjectBridge Java Edition eine Verbindung von einem objektorientierten Java-Client zu einer fast beliebigen Server-Komponente

Mehr

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien

CORBA. Beispiel einer Middleware-Plattform. Christian Fass WS 2013/14 Software Engineering: Basistechnologien CORBA Beispiel einer Middleware-Plattform Christian Fass WS 2013/14 Software Engineering: Basistechnologien Allgemeines Common Object Request Broker Architecture Middleware: Vermittelt zwischen Obekten/Prozessen

Mehr

3. Stored Procedures und PL/SQL

3. Stored Procedures und PL/SQL 3. Stored Procedures und PL/SQL Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln

Mehr

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version 2.0.1 Deutsch 14.05.2014

IAC-BOX Netzwerkintegration. IAC-BOX Netzwerkintegration IACBOX.COM. Version 2.0.1 Deutsch 14.05.2014 IAC-BOX Netzwerkintegration Version 2.0.1 Deutsch 14.05.2014 In diesem HOWTO wird die grundlegende Netzwerk-Infrastruktur der IAC- BOX beschrieben. IAC-BOX Netzwerkintegration TITEL Inhaltsverzeichnis

Mehr

Client-Server mit Socket und API von Berkeley

Client-Server mit Socket und API von Berkeley Client-Server mit Socket und API von Berkeley L A TEX Projektbereich Deutsche Sprache Klasse 3F Schuljahr 2015/2016 Copyleft 3F Inhaltsverzeichnis 1 NETZWERKPROTOKOLLE 3 1.1 TCP/IP..................................................

Mehr

Message Oriented Middleware am Beispiel von XMLBlaster

Message Oriented Middleware am Beispiel von XMLBlaster Message Oriented Middleware am Beispiel von XMLBlaster Vortrag im Seminar XML und intelligente Systeme an der Universität Bielefeld WS 2005/2006 Vortragender: Frederic Siepmann fsiepman@techfak.uni bielefeld.de

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

7.4 Verteilungsabstraktion in heterogener Umgebung

7.4 Verteilungsabstraktion in heterogener Umgebung 7.4 Verteilungsabstraktion in heterogener Umgebung Szenario: reiner Maschinencode (native code) bei unterschiedlichen Rechnerarchitekturen, unterschiedlichen Betriebssystemen, unterschiedlichen Übersetzern,

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr

HTBVIEWER INBETRIEBNAHME

HTBVIEWER INBETRIEBNAHME HTBVIEWER INBETRIEBNAHME Vorbereitungen und Systemvoraussetzungen... 1 Systemvoraussetzungen... 1 Betriebssystem... 1 Vorbereitungen... 1 Installation und Inbetriebnahme... 1 Installation... 1 Assistenten

Mehr

VS Praktikum 03 Konzept

VS Praktikum 03 Konzept Darstellung der Architektur: Manager VS Praktikum 03 Konzept Account 3 3 7 6 NameServiceServer 4 5 2 1 2 1 Geldautomat Filiale Messagearten: Für jede unterschiedliche Message gibt es eine eigene Klasse:

Mehr

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1)

FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) 1 FOPT 5: Eigenständige Client-Server-Anwendungen (Programmierung verteilter Anwendungen in Java 1) In dieser Kurseinheit geht es um verteilte Anwendungen, bei denen wir sowohl ein Client- als auch ein

Mehr

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen Anwendungshinweis Nr. 12 Produkt: Schlüsselworte: Problem: Softing OPC Easy Connect OPC Server, Redundanz Wie konfiguriere ich redundante Lösung: Ausgangssituation: Eine OPC Client-Anwendung ist mit mehreren

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

Mehr

Objektbasierte Entwicklung

Objektbasierte Entwicklung Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Gesicherte Prozeduren

Gesicherte Prozeduren Gesicherte Prozeduren Wenn eine Anwendung auf einer Client-Maschine läuft, wird normalerweise jede SQL-Anweisung einzeln vom Client an den Server gesandt, und jedes Ergebnistupel wird einzeln zurückgeliefert.

Mehr

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003 Page 1 of 8 SMTP Konfiguration von Exchange 2003 Kategorie : Exchange Server 2003 Veröffentlicht von webmaster am 25.02.2005 SMTP steht für Simple Mail Transport Protocol, welches ein Protokoll ist, womit

Mehr

Workflow, Business Process Management, 4.Teil

Workflow, Business Process Management, 4.Teil Workflow, Business Process Management, 4.Teil 24. Januar 2004 Der vorliegende Text darf für Zwecke der Vorlesung Workflow, Business Process Management des Autors vervielfältigt werden. Eine weitere Nutzung

Mehr

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Praktikum Verteilte Anwendungen

Praktikum Verteilte Anwendungen Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf

Mehr

How-to: Webserver NAT. Securepoint Security System Version 2007nx

How-to: Webserver NAT. Securepoint Security System Version 2007nx Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc. 7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

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

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion 1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)

Mehr

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung

Security. Stefan Dahler. 4. Internet Verbindung. 4.1 Einleitung 4. Internet Verbindung 4.1 Einleitung Im Folgenden wird die Konfiguration der DFL-800 Firewall gezeigt. Sie konfigurieren einen Internet Zugang zum Provider mit dem Protokoll PPPoE. In der Firewallrichtlinie

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

Installationsanleitung dateiagent Pro

Installationsanleitung dateiagent Pro Installationsanleitung dateiagent Pro Sehr geehrter Kunde, mit dieser Anleitung möchten wir Ihnen die Installation des dateiagent Pro so einfach wie möglich gestalten. Es ist jedoch eine Softwareinstallation

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Formular»Fragenkatalog BIM-Server«

Formular»Fragenkatalog BIM-Server« Formular»Fragenkatalog BIM-Server«Um Ihnen so schnell wie möglich zu helfen, benötigen wir Ihre Mithilfe. Nur Sie vor Ort kennen Ihr Problem, und Ihre Installationsumgebung. Bitte füllen Sie dieses Dokument

Mehr

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Proxy. Krishna Tateneni Übersetzer: Stefan Winter Krishna Tateneni Übersetzer: Stefan Winter 2 Inhaltsverzeichnis 1 Proxy-Server 4 1.1 Einführung.......................................... 4 1.2 Benutzung.......................................... 4 3 1

Mehr

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP) Enterprise Applikation Integration und Service-orientierte Architekturen 09 Simple Object Access Protocol (SOAP) Anwendungsintegration ein Beispiel Messages Warenwirtschaftssystem Auktionssystem thats

Mehr

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Virtual Desktop Infrasstructure - VDI

Virtual Desktop Infrasstructure - VDI Virtual Desktop Infrasstructure - VDI Jörg Kastning Universität Bielefeld Hochschulrechenzentrum 5. August 2015 1/ 17 Inhaltsverzeichnis Was versteht man unter VDI? Welchen Nutzen bringt VDI? Wie funktioniert

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte I N F O R M A T I O N V I R T U A L I S I E R U N G Wir schützen Ihre Unternehmenswerte Wir schützen Ihre Unternehmenswerte Ausfallsicherheit durch Virtualisierung Die heutigen Anforderungen an IT-Infrastrukturen

Mehr

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Outlook 2003 - Aufbaukurs 19 Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Wie kann ich die Bearbeitung von Nachrichten automatisieren? Wie kann ich Nachrichten automatisch

Mehr

Lizenzierung von Windows Server 2012

Lizenzierung von Windows Server 2012 Lizenzierung von Windows Server 2012 Das Lizenzmodell von Windows Server 2012 Datacenter und Standard besteht aus zwei Komponenten: Prozessorlizenzen zur Lizenzierung der Serversoftware und CALs zur Lizenzierung

Mehr

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz.  Institut für Angewandte Informatik Programmieren II Remote Method Invocation (RMI) Heusch -- Ratz KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote Method

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server.

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server. 1. Dynamic Host Configuration Protocol 1.1 Einleitung Im Folgenden wird die Konfiguration von DHCP beschrieben. Sie setzen den Bintec Router entweder als DHCP Server, DHCP Client oder als DHCP Relay Agent

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Anbindung des eibport an das Internet

Anbindung des eibport an das Internet Anbindung des eibport an das Internet Ein eibport wird mit einem lokalen Router mit dem Internet verbunden. Um den eibport über diesen Router zu erreichen, muss die externe IP-Adresse des Routers bekannt

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper Collax VPN Howto Dieses Howto beschreibt exemplarisch die Einrichtung einer VPN Verbindung zwischen zwei Standorten anhand eines Collax Business Servers (CBS) und eines Collax Security Gateways (CSG).

Mehr

FTP-Leitfaden RZ. Benutzerleitfaden

FTP-Leitfaden RZ. Benutzerleitfaden FTP-Leitfaden RZ Benutzerleitfaden Version 1.4 Stand 08.03.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Zeitaufwand... 3 2 Beschaffung der Software... 3 3 Installation... 3 4 Auswahl des Verbindungstyps...

Mehr

Musterlösung Klausur SS 2004

Musterlösung Klausur SS 2004 Musterlösung Klausur SS 2004 Fachrichtung: Informatik Lehrveranstaltung: Verteilte Systeme Dozent: Prof. G. Bengel Tag: 15.6.04 Bearbeitungszeit: 90 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Powermanager Server- Client- Installation

Powermanager Server- Client- Installation Client A Server Client B Die Server- Client- Funktion ermöglicht es ein zentrales Powermanager Projekt von verschiedenen Client Rechnern aus zu bedienen. 1.0 Benötigte Voraussetzungen 1.1 Sowohl am Server

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte

Mehr

Ether S-Net Diagnostik

Ether S-Net Diagnostik Control Systems and Components 4 Ether S-Net Diagnostik Ether S-Net Diagnostik 4-2 S-Net EtherDiagnostik.PPT -1/12- Inhalt - Kurzbeschreibung einiger Test- und Diagnosebefehle unter DOS - PING-Befehl -

Mehr