Dokumentation. Forschungsprojekt Virtueller Seminarraum 2. Simona Empoli Sylvana Kroop

Größe: px
Ab Seite anzeigen:

Download "Dokumentation. Forschungsprojekt Virtueller Seminarraum 2. Simona Empoli Sylvana Kroop"

Transkript

1 Dokumentation Forschungsprojekt Virtueller Seminarraum 2 Betreuung: Prof. C.A. Wüthrich Simona Empoli Sylvana Kroop Marion Kulig Matrikelnummer: Studiengang Mediensysteme Bauhaus-Universität Weimar Fakultät Medien 1

2 Inhaltsverzeichnis 1. Einleitung Möglichkeiten des File-Sharings Datenbank Peer-to-Peer Client/Server Client/Server Architektur Grundlagen Der Client Der Server Der Fileserver Serialisierung ViSe Client/Server Modell Der Fileserver Recherche Funktionalitäten Der Fileserver für ViSe Das Programm Der Quellcode Der Client Der Server Der ChannelWorker Der FileService Message Der Test Die Ausführung Ausblick Quellenverzeichnis Anhang

3 1. Einleitung Im Wintersemester 02/03 begann die Implementierung eines Virtuellen Seminarraums im Rahmen von medienquadrat. Medienquadrat ist ein Projekt, welches neue Lernmedien und werkzeuge für projektorientiertes vernetztes Studieren erarbeitet. Der Virtuelle Seminarraum stellt eine Kommunikationsplattform dar, die sich nicht nur auf einige Funktionalitäten, wie zum Beispiel Videokonferenz und Chat, beschränkt, sondern die umfassend alle Möglichkeiten integrieren soll, die E-Learning unterstützt. Nach Beendigung des ersten Semesters (02/03) existierten unter anderem ein Chat, ein Whiteoard mit eingeschränkten Funktionalitäten und ein Authenticator, der für die zukünftige Rechteverwaltung verwendet werden sollte. Uns stellte sich somit die Aufgabe diese Plattform mit ihren Funktionalitäten zu erweitern. Nachdem diverse Vorträge, rund um das Thema Online lernen gehalten wurden, wobei sich meiner mit Experimentellen Forschungsmethoden im Bereich der Wahrnehmung/Usability beschäftigte, begann die Arbeit der Projektteilnehmer an ihren jeweiligen Bereichen. So war meine Aufgabe die Implementierung einer Möglichkeit zur Dateispeicherung. Dabei stellte sich heraus, dass ein zentraler Fileserver den Ansprüchen am besten gerecht werden könnte, nachdem auch Peer-to-Peer und Datenbanksysteme auf ihre Tauglichkeit hin überprüft wurden. Diese Dokumentation widmet sich zu einem größeren Teil angeeignetem theoretischen Wissen, um für Nachfolger einen leichteren und kürzer dauernden Einstieg zu ermöglichen. Es wird allgemein erläutert, welche Möglichkeiten des File- Sharings existieren und in Betracht gezogen wurden. Nachdem ein Fileserver als eine passende Lösung gefunden wurde, wird die Funktionsweise eines solchen Client/Server-Systems unter Verwendung von Java kurz erklärt. Danach folgt eine Spezifizierung bezüglich des Fileservers und dessen Grundfunktionalitäten. 3

4 Das Programm, welches danach vorgestellt wird, zeigt, wie der Dateitransfer in ViSe funktionieren kann. Die verwendeten Quellen befinden sich zum einen in den entsprechenden Kapiteln und im Quellenverzeichnis. Im Anhang ist außerdem eine komplette Übersicht über die Klassen in Form von UML-Darstellungen vorhanden. 4

5 2. Möglichkeiten des File-Sharings Die erste Aufgabe war, herauszufinden, in welcher Art und Weise ein File-Sharing- System realisiert werden könnte. Dabei bin ich auf drei Möglichkeiten gestoßen, die nachfolgend vorgestellt werden Datenbank Eine Datenbank ist eine Sammlung von Daten, die organisiert und einem bestimmten Zweck dienend abgespeichert sind. Dabei ist es aber schwieriger, bzw. umständlicher den Zugriff mithilfe einer Datenbank auf Dateien zu ermöglichen. Diese müssten ja wiederum irgendwo abgespeichert, um dann katalogisiert zu werden. Deshalb löst eine Datenbank nicht das eigentliche Problem des File-Sharings, sondern stellt eine Möglichkeit bei Existenz eines solchen Systems dar, dieses zu erweitern. Bei sehr großem Datenvolumen und Unwissen darüber, wo sich welche Dateien befinden, ist es sinnvoll an eine Datenbank zu denken. In unserem Fall spielt sie fürs erste keine Rolle Peer-to-Peer Peer-to-Peer ist die älteste Form der Vernetzung von Computern. Es sind alle Stationen gleichberechtigt. Quelle: fcit.coedu.usf.edu/network/ chap6/chap6.htm 5

6 Für ViSe würde das bedeuten, dass die zur Verfügung stehenden Dateien dezentral bei den Nutzern liegen. Dafür das diese Möglichkeit nicht verwendet wurde, sprechen mehrere Gründe: - Um auf die Dateien eines bestimmten Rechners zuzugreifen, muss der jeweilige Nutzer online sein. Sobald der Rechner ausgeschaltet wird, ist kein Zugriff mehr möglich. - Entweder muss der anfordernde Nutzer wissen, welche Datei er braucht, oder es muss eine Übersicht existieren, die regelmäßig aktualisiert wird, in der alle zur Verfügung stehenden Dateien aufgelistet sind. Dieses sollte ein größeres Problem darstellen, da die Anzahl der Nutzer sich so schnell ändern kann, sodass es arge Synchronisationsprobleme geben könnte. - Die Zeitdifferenz der Aktualisierung muss dementsprechend gering sein. Dies könnte einen zu hohen Rechenaufwand bedeuten. - Schon wenn die Anzahl der Nutzer die 10 erreicht, ist die Zeit die für das Suchen einer Datei benötigt wird, für den Sucher inakzeptabel. Zu jedem Rechner müsste die Verbindung aufgebaut werden, der entsprechende Ordner durchsucht werden und bei finden der Datei diese übermittelt werden. Bei Nichtauffinden schreitet die Suche fort. In den Nachteilen von Peer-to-Peer-Netzen liegen gleichzeitig die Vorteile von Client- Server-Systemen. Peer-to-Peer-Netzwerke sind langsamer als solche, die auf einem Server basieren. Wenn sich viele Peer-Rechner gleichzeitig Daten einander zukommen lassen wollen, lässt die Leistung des Netzes deutlich nach. Client-Server- Systeme liegen immer dann vorn, wenn eine hohe Verarbeitungsgeschwindigkeit gefordert ist, was bei ViSe zutrifft. Für die Recherche waren unter anderem folgende zwei Links hilfreich: - Peer-to-Peer mit JXTA - 6

7 2.3. Client-Server In einem Client/Server System werden bestimmte Aufgaben auf einen Server ausgelagert, der auf diesen Aufgabentypus spezialisiert ist. Das führt zu einer besseren Auslastung. Schlussendlich wurde sich für solch eine Struktur entschieden. 7

8 3. Client/Server - Architektur 3.1. Grundlagen Nachfolgend werden die programmiertechnischen Konzepte eines Client/Server- Systems, wie sie in Java verwendet werden, kurz vorgestellt Der Client Die Netzwerkkommunikation findet mithilfe von Sockets statt. Ein Socket ist eine streambasierte Programmierschnittstelle, die für die Kommunikation zweier Rechner notwendig ist. Für die Erzeugung stehen Konstruktoren zur Verfügung. In diesen werden der Hostname und der Port als Argumente übergeben. Mit den beiden Methoden getinpustream und getoutpustream kann nach erfolgreichem Verbindungsaufbau jeweils ein Stream zum Versenden und Empfangen von Daten bereitgestellt werden Der Server Für den Verbindungsaufbau serverseitig steht die Klasse ServerSocket zur Verfügung. Deren Methoden warten auf Verbindungsanfragen und geben nach dem Verbindungsaufbau einen Socket zur Kommunikation mit dem Client zurück. Wesentlich hier sind der Konstruktor und die Methode accept(). Der Konstruktor erzeugt einen ServerSocket für einen bestimmten Port (Typ von Serveranwendung). Danach wird mit accept() auf eine Verbindungsanfrage gewartet. Bis ein Verbindungsversuch eines Clients gemacht wird, ist accept() blockiert. Wenn die Anfrage erfolgt ist, kann mit einem anderen Client durch ein Socket-Objekt, welches durch accept() zurückgeschickt wird, kommuniziert werden. 8

9 - - Seminar über Java- Sockets, ein Einstieg - - Bietet einen ersten Überblick bezüglich der Netzwerkproblematik Der Fileserver Als Grundlage bietet Java ein ausführliches Datei- und Verzeichnishandling an, wie z.b. den Zugriff auf Teile des Pfadnamens oder auf Verzeichniseinträge. Aus den beiden Methoden getinputstream und getoutputstream sind einige weitere Klassen abgeleitet, wie die hier benötigten FileInpustream und FileOutputStream. So stellt FileInputStream einen Byte-Stream zum Lesen aus einer Datei zur Verfügung. Genauere Erklärungen folgen anhand des Programms im hinteren Teil der Dokumentation Serialisierung Für die Übertragung von Objekten gibt es in Java die Möglichkeit der Serialisierung. Darunter wird hier die Fähigkeit verstanden, Objekte, die im Hauptspeicher der Anwendung existieren, in ein Format zu konvertieren, das es erlaubt, die Objekte in Dateien zu schreiben oder über eine Netzwerkverbindung zu transportieren. Der umgekehrte Weg wird mit eingeschlossen. Dafür gibt es im Paket java.io die Klasse ObjectOutputStream. Diese besitzt einen Konstruktor, der einen OutputStream als Argument erwartet. Der Stream dient als Ziel der Ausgabe. Um die serialisierten Daten in eine Datei zu schreiben, wird hier ein FileOutputStream verwendet. Damit ein Objekt serialisiert werden kann, muss es lediglich das Serializable - Interface implementieren. 9

10 3.2. ViSe Client-Server-Modell Zusätzlich zum Server und zu den Clients besteht das ViSe -System aus einem weiteren dritten Komponenten - den Pseudo-Clients. Diese werden vom Server wie normale Clients behandelt, implementieren aber alle Funktionen von ViSe, wie die Rechteverwaltung und das Whiteboard. Somit hat der Server die alleinige Aufgabe, empfangene Daten weiterzuleiten. Diese Weiterleitung erfolgt in ViSe mit Messages. Diese Java Objekte enthalten Informationen zur Art der Nachricht (Header, Absender, Empfänger, Inhalt). Der Inhalt wird durch ein Datenobjekt dargestellt. Anhand des Headers entscheidet der Server, an welche (Pseudo-)Clients die Nachricht weitergeschickt werden soll. Dazu besitzt er eine Abonnement-Liste, in der alle (Pseudo-)Clients enthalten sind, die die entsprechende Message Art abonniert haben. Über den Inhalt muss der Server keine Kenntnis haben. 10

11 4. Der Fileserver 4.1. Recherche Um einen Einstieg und einen ersten Überblick in die Implementierungsmöglichkeiten zu finden, wurde ausgiebig nach bereits vorhandenen Ansätzen gesucht. Nachfolgende Quellenübersicht listet diverse jar-files und weitere Quelltexte auf, die Demonstrationen über funktionierende FileSharing-Systeme und Netzwerkstrukturen geben: Java RMI How to Use WebCanal Channels - - Beispielclient Da ViSe andere Anforderungen hat, sind diese Quellen nur als Anregungen zu verstehen. Sie sind so verständlicherweise nicht in ViSe übertragbar. Es wurde noch eine Software gefunden, die die Anforderungen darstellt, die ein Fileserver/-service haben sollte. Unter dem Link: ist dieses namens DIME von Microsoft beschrieben. Die dargestellten Quellauszüge sind dabei weniger hilfreich, aber für Anregungen der Darstellung genügte es für das erste. 11

12 4.2. Funktionalitäten Daran abgeleitet folgt jetzt eine Übersicht über die Funktionalitäten/Anforderungen eines Fileservers. Einem Client sollte erlaubt sein, folgende Möglichkeiten nutzen zu können: - Dateien erzeugen, löschen, öffnen und schließen - aus Dateien lesen und in Dateien schreiben - die aktuelle Position innerhalb einer Datei ändern - Informationen über eine Datei erfragen Hierbei ist aber noch nicht die Frage der Rechteverwaltung geklärt, die gerade in ViSe eine Hauptrolle spielt. Deshalb entstand nachfolgende Tabelle, die dazu einen ersten Überblick bietet: Es könnten dabei auf dem Fileserver zwei verschiedene Bereiche (Verzeichnisse) existieren. Zum einen ein Arbeitsbereich, auf den in kürzeren Abständen zugegriffen wird und dessen Dateien sich in ständiger Veränderung befinden und zum anderen ein Archivierungsbereich, in dem abgearbeitete Themen abgelegt werden können. Auf beide Bereiche gelten unterschiedliche Rechte: 12

13 Funktion Guest User SuperUser Administrator Datei erzeugen Ja, in Ja, in AB Ja, in AB und Ja, in AB und Arbeitsbereich Archiv Archiv (AB) Datei löschen Nein Nein, außer eigene Ja, in AB Ja, in AB und Archiv unbearbeitete Dateien Datei öffnen Muss sich Nur AB AB und Archiv AB und Archiv Erlaubnis von Admin einholen nur AB Datei schließen Nein Nur AB AB und Archiv AB und Archiv Aus Dateien lesen und in Dateien schreiben Informationen über eine Datei erfragen Nein Nur AB Nur AB, bei Erlaubnis von Admin auch Archiv AB und Archiv Nein AB und Archiv AB und Archiv AB und Archiv Wie zu sehen ist, hat ein Administrator hier die Hauptaufgabe zu übernehmen, den Arbeitsbereich zu überwachen und gegebenenfalls zu säubern. 13

14 Für das Verständnis des Gesamtkonzepts der Rechteverwaltung verweise ich hier auf die Dokumentation von Erich Bruns Der Fileserver für ViSe Es gab zwei Möglichkeiten, den FileServer zu realisieren. Die erste wäre, die File- Sharing-Funktionalitäten in den bestehenden Server zu integrieren oder die zeite, einen speziellen Server, der ein PseudoClient sein soll, zu implementieren. Es wurde sich für die zweite Variante entschieden, da der Hauptserver so weit wie möglich von zusätzlichen Aufgaben befreit sein sollte. Über diesen findet die Kommunikation statt, d.h. auch wenn der Fileserver in Betrieb ist, kann nicht darauf zugegriffen werden, wenn der Hauptserver nicht läuft. Auch wenn der Fileserver nur einen PseudoClient darstellt, so müssen doch trotzdem alle Funktionalitäten implementiert werden, die einen Server ausmachen. So müsste die Kommunikation zwischen den beiden vorhandenen Servern auch über einen Socket, beziehungsweise ServerSocket stattfinden. Die zu transportierenden Dateien legen also nicht nur den Weg Server Kanal Client zurück, sondern Server Kanal - Server Client, was einen großen Kommunikationsaufwand darstellt. Als ein weiteres Problem erwies sich die Versendung des Inhalts der Dateien. Da diese, wie in ViSe praktiziert, mithilfe von Messages transportiert werden, müssen diese erst konvertiert werden. Da dieses Problem nicht unmittelbar im Zusammenhang mit ViSe stand, wurde das Programm außerhalb von ViSe implementiert. 14

15 5. Das Programm Das Programm stellt ein Gerüst für den Filetransfer dar. Die Dateien können über Messages zu einem Server geschickt werden, und von dort wieder abgerufen werden. Um wie in diesem Fall beliebige n-zu-m-kommunikationswege realisieren zu können, wurde ein sogenannter virtueller Kanal implementiert. Ein weiterer Vorteil liegt darin, dass sobald der Server gestartet wurde, die Reihenfolge des Startens der Clients beliebig ist. Den Unterschied zwischen Kanälen und virtuellen Kanälen zeigt folgende Abbildung: Quelle: Kredel, Yoshida: Thread- und Netzwerkprogrammierung mit Java, dpunkt.verlag, 2. Auflage, S

16 5.1. Der Quellcode Das Programm besteht aus folgenden Klassen: ClientFileService FileServer ChannelWorker FileService Message ServerTest Der Client Die Klasse ClientFileService stellt den Clientteil dar. public ClientFileService(String host, int port) Der Konstruktor definiert den gewünschten Server. Die Klasse besitzt außerdem folgende zwei Methoden: void puttoserver(string sourcepath, String targetpath, String sourcefilename, String targetfilename) void getfromserver(string sourcepath, String targetpath, String sourcefilename, String targetfilename) Innerhalb dieser Methoden wird die Datei in ein Message-Objekt gepackt. Folgender Ausschnitt ist aus der Methode puttoserver: Message message = new Message(); message.setcommand(fileservice.write); message.setdirectory(targetpath); message.setfilename(targetfilename); File file = new File(source); 16

17 FileInputStream in = new FileInputStream(file); Long len = new Long(file.length()); byte[] data = new byte[len.intvalue()]; in.read(data); message.setdata(data); oos.writeobject(message); Um den Dateiinhalt versenden zu können, muss die primitive Variable (file) mithilfe einer Wrapperklasse (hier Long) in eine objektorientierte Hülle gekapselt werden. Dann kann mit bereitstehenden Methoden auf diese Variable zugegriffen werden. So kann dann die Datei in ein Byte-Array gelesen und somit als Objekt zur Message hinzugefügt werden. Weiterhin wird festgelegt, wie die Datei- und Pfadangaben zu erfolgen haben. Pfadangaben sind so zum Beispiel nur dann gültig, wenn sie durch / gekennzeichnet sind. Das Pendant dazu ist die getfromserver-methode. Folgende Tabelle zeigt die Übersicht der Klasse, wobei Variablen durch ein - und die Konstruktoren und Methoden durch ein + gekennzeichnet sind. ClientFileService - socket: Socket - oos: ObjectOutputStream - host: String - port: int + ClientFileService (host: String, port: int) + puttoserver(sourcepath: String, targetpath: String, sourcefilename: String, targetfilename: String) + getfromserver(sourcepath: String, targetpath: String, sourcefilename: String, targetfilename: String) 17

18 Der Server Die Klasse FileServer läuft als Thread neben dem ServerTest-Programm. Es wird ein ServerSocket aufgebaut, der auf Verbindungswünsche von Clients wartet. Trifft einer in der run()-methode ein, wird ein neues ChannelWorker- Objekt erzeugt, das dann für den Client zuständig ist. public void run() { Socket soc = null; try { while (true) { soc = server.accept(); ChannelWorker worker = new ChannelWorker(this, soc); socketpool.put(soc,boolean.true); } } } Aus der Klassenübersicht geht hervor, dass als Quellverzeichnis d:\\fileserver\\data übergeben wird. Das setzt die Existenz eines solchen Verzeichnisses auf dem Server natürlich voraus. Dass das Verzeichnis hier statisch festgelegt wird, dient der Kontrolle. Es können somit nicht wahllos Verzeichnisse auf dem Server angelegt werden. Thread FileServer + DEFAULT PORT:int = ROOT DIRECTORY: String = "d:\\fileserver\\data" - port: int - mgr: FileServer = null - server: ServerSocket - socketpool: Hashtable + FileServer (port: int) 18

19 + main (args: String[]: void + run(): void + terminateconnection (socket: Socket) rootdirectory: String Der ChannelWorker Der ChannelWorker wird bei einer Verbindungsanfrage durch einen Client erzeugt und ist dann ausschließlich für diesen zuständig. Im Konstruktor der Klasse werden die Objektströme in und out aufgesetzt. Wenn eintreffende Messages der geforderten Form entsprechen, wird der FileService als separater Thread gestartet. Außerdem erfolgt durch die Methode sendtoclient() die Übertragung des übergebenen Objekts (der Datei) als Message in die jeweilige Richtung. try { } in = new ObjectInputStream(this.socket.getInputStream()); Object obj = in.readobject(); if (obj!= null) { message = null; if (obj instanceof Message) message = (Message) obj; if (message!= null) { service = new FileService(this,message); service.start(); } } 19

20 ChannelWorker - fileserver: FileServer - socket: Socket - service: FileService - in: ObjectInputStream - out: ObjectOutputStream - message: Message + ChannelWorker (fileserver: FileServer, socket: Socket) + terminateservice(): void + sendtoclient(): void rootdirectory: String Der FileService Der FileService stellt das Gegenstück zum ClientFileService dar. In den Methoden dieser Klasse werden die Dateien entweder clientseitig eingelesen oder auf den Server geschrieben. Wie das geschieht wird nachfolgend am Beispiel der Methode writefile gezeigt: public void writefile(string path, String filename, byte[] data) throws IOException { //File wird auf Server geschrieben path = path.trim(); filename = filename.trim(); if (path.length() > 0 &&!path.endswith("/")) path += "/"; if (filename == null filename.length() == 0) return; String pathname = worker.getrootdirectory() + "/" + path + filename; File file = new File(pathName); file.createnewfile(); FileOutputStream out = new FileOutputStream(file); out.write(message.getdata()); out.close(); 20

21 FileService + READ: int = 0 +WRITE: int = 1 - message: Message = null - worker: ChannelWorker = null + FileService (worker: ChannelWorker, message: Message) + run(): void + writefile (path: String, filename: String, data: byte[]) + readfile (path: String, filename: String) Thread Message Die Klasse Message ist ViSe entnommen. Außer einer anderen Bezeichnung und veränderten Variablentypen, die aber die Funktionalität nicht ändern, ist die Klasse die selbe und erfüllt somit auch die selben Aufgaben. Message + Message() + Message(directory: String, filename: String,data: byte[], command: int) data: byte[] directory: String filename: String command: String Serializable 21

22 Der Test Die Klasse ServerTest stellt eine Testapplikation dar. Eine Datei wird vom Client zum Server geschickt, und von dort wieder zurück gesendet. Das ganze wird in einer Schleife ausgeführt, sodass sich nach dem Durchlauf des Programms 10 Kopien der Datei im eigenen Verzeichnis befinden und 10 in dem Verzeichnis auf dem Server. + ServerTest() + testit(): void + main (args: String[]: void ServerTest 5.2. Die Ausführung Um den Fileserver mithilfe von ServerTest testen zu können, sollte sich der Anwender zuerst folgende Verzeichnisse anlegen: c:/vise c:/fileserver/receive d:/fileserver/data Das Verzeichnis c:/vise ist das clientseitige Verzeichnis, in dem eine Datei namens home.pdf liegen muß. Es sind natürlich auch andere Dateien möglich. Dafür muss aber ServerTest modifiziert werden. Des weiteren muß der entsprechende host übergeben werden, wenn der Test über zwei Rechner erfolgen soll. Da die meiste Zeit mit localhost gearbeitet wurde, ist so auch die Voreinstellung. Bei verteilten Tests funktionierte der Fileserver auch. Nun kann der Server gestartet werden. Es sollte folgende Ausgabe erfolgen, die den Start bestätigt: 22

23 Wenn dann der ServerTest aufgerufen wird, sollten folgende Ausgaben in dem Konsolenfenster erscheinen. Konsole des Servers: 23

24 Konsole des Tests: Ab und zu (1 von 20) ist der Transfer nach einigen Durchläufen abgebrochen, was damit begründet werden kann, dass die Rechenleistung, bzw. die Kapazität des Rechners nicht ausreichend war. Bei erfolgreichem Durchlauf sollten sich natürlich die jeweiligen Kopien in den entsprechenden Verzeichnissen befinden. 24

25 6. Ausblick Während der Arbeit stellte sich heraus, dass allein das Problem eines Fileservers so komplex ist, dass es würdig wäre ein komplettes Forschungsprojekt einer Gruppe und auch mehr als ein Semester auszufüllen, da alle Bereiche, die es in ViSe allgemein gibt, auch in diesem Kontext bedacht werden müssen. So ist es nicht nur die Rechteverwaltung, sondern auch eigene nicht unerhebliche Whiteboardapplikationen, GUIs und weitere serverspezifische Funktionalitäten müssen sehr genau durchdacht und implementiert werden. Weitere Punkte sind die Sicherheit und die Stabilität. Sicherheit innerhalb des Netzwerks stellt eine eigene große Aufgabe dar. Stabilität ist eine Grundvoraussetzung. In diesem Fall wird dafür vor Allem Zeit für Statistiken benötigt, die aufzeigen unter welchen Umständen der Fileserver seine Arbeit verrichtet und unter welchen er abbricht. Aus oben genannten Gründen hat sich im Laufe des Semesters meine programmiertechnische Arbeit deshalb immer weiter auf den Kern des Problems beschränkt, welcher dann auch gelöst werden konnte. 25

26 7. Quellenverzeichnis - Kredel, Yoshida: Thread- und Netzwerkprogrammierung mit Java, dpunkt.verlag, 2. Auflage - Krüger: GoTo Java2 Handbuch der Java-Programmierung, Addison- Wesley, 2. Auflage Distributed Java Programming mit RMI und CORBA - - FileService mit RMI 26

27 8. Anhang Die UML-Darstellungen der Klassen 1. ClientFileService 2. FileServer 27

28 3. ChannelWorker 4. FileService 28

29 5. Message 6. ServerTest 29

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de

AK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de Aufgaben: Ein Ausgabe Ein Rechner verwaltet nicht nur Daten, die während der Laufzeit des Programms erzeugt werden. Die meisten Programme greifen auf ältere Datenbestände zurück oder erzeugen für einen

Mehr

Teil 1: Ein einfacher Chat

Teil 1: Ein einfacher Chat Teil 1: Ein einfacher Chat Verteilte Systeme / Chat Der Weg ist das Ziel Im Laufe dieses Projektes werden Sie schrittweise ein Chat-Programm entwickeln. Dabei werden Sie einiges über den Aufbau des Internets

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets.

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011. Timer. Sockets. Programmieren II Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 26 Timer Sockets SMTP-Client 2 / 26 Timer Mit einem Timer können bestimmte Aktionen periodisch wiederkehrend durchgeführt

Mehr

Projektaufgabe Peer-To-Peer Chat Programm

Projektaufgabe Peer-To-Peer Chat Programm Projektaufgabe Peer-To-Peer Chat Programm Betreuer: Dipl. Ing. Thomas Kehrt kehrt@cs.tu-dortmund.de September 10, 2014 1 Einführung Im Rahmen des Vorkurses wird für fortgeschrittene Studenten eine Projektarbeit

Mehr

Netzwerkprogrammierung

Netzwerkprogrammierung Netzwerkprogrammierung 1 Netzwerkverbindungen Das Entwurfsziel von Java war: Einfache Verbindung zwischen Rechnern und SetBox-Systemen. Das Standardpaket java.net hilft bei allen Netzwerkverbindungen.

Mehr

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets.

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester 2010. Sockets. Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 19 2 / 19 Über einen Socket kann eine Anwendung die Implementierung des Netzwerkprotokolls des darunter liegenden Betriebssystems

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes Kapitel 4: Design von Client/Server-Software Definition: Client und Server Client Ein Client ist ein Dienstnutzer, der von einem Server aktiv einen Dienst anfordert und anschließend darauf wartet, dass

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

Anwendung eines Enterprise Java Beans

Anwendung eines Enterprise Java Beans Anwendung eines Enterprise Java Beans EJB Server EJB Container Remote Interface Home Interface EJB Object Der EJB Container kümmert sich um die Kommunikation des Beans mit anderen Komponenten, wobei er

Mehr

Von der UML nach C++

Von der UML nach C++ 22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete

Mehr

4. Thread- und Netzwerk- Programmierung

4. Thread- und Netzwerk- Programmierung 4. Thread- und Netzwerk- Programmierung 4.1 Ziel dieses Kapitels 4.2 Prozeß versus Thread 4.3 Thread-Programmierung 4.4 TCP/IP Grundlagen 4.5 TCP Programmierung 3. TCP/IP und Threads 3-1 4.1 Ziel dieses

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Programmiermethodik. Übung 13

Programmiermethodik. Übung 13 Programmiermethodik Übung 13 Sommersemester 2010 Fachgebiet Software Engineering andreas.scharf@cs.uni-kassel.de Agenda Vorstellung Musterlösung HA9 Mancala Showroom Client/Server Kommunikation in Java

Mehr

Netzwerkprogrammierung & Threads

Netzwerkprogrammierung & Threads & Threads Praktikum aus Softwareentwicklung 2 Netzwerp. - 1 & Threads URL, URLConnection, UDP, TCP Threads Parallele Programme, Synchronisation, Netzwerp. - 2 Grundlagen (1/2) Kommunikation zwischen verteilten

Mehr

Übung 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1)

Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1) BEREICH DATENTECHNIK U VS 031 01 TH 02 Übungen zu Verteilte Systeme : Aufgabe zu Java-RMI (1) Aufgabenstellung : Es ist ein über RMI aktivierbarer generischer Problemlösungs-Server in Java zu entwickeln.

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 16 Rechnerkommunikation verteilte Systeme... 16-2 16.1 Netzwerktechnologie... 16-2 16.1.1 Adressen... 16-2 16.1.2 s und s... 16-3 16.2 Server/Client-Programmierung... 16-4 16.2.1 Aufbau einer Server/Client-Verbindung...

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

7 Remote Method Invocation (RMI)

7 Remote Method Invocation (RMI) 7 Remote Method Invocation (RMI) Verteilte Java Anwendungen; Client/Server Architektur Vorläufige Version 188 c 2005 Peter Thiemann Server: Aufgaben erstellt remote objects Objekte, deren Methoden von

Mehr

Rechnernetze und verteilte Systeme Übungsblatt P

Rechnernetze und verteilte Systeme Übungsblatt P Fakultät für Informatik Lehrstuhl 4 Dr. Jan Kriege Wintersemester 2014/15 Dipl.-Inf. Christoph Borchert Rechnernetze und verteilte Systeme Übungsblatt P Ausgabe: 17. November 2014, Abgabe: 11. Januar 2015

Mehr

Beschreibung Mobile Office

Beschreibung Mobile Office Beschreibung Mobile Office 1. Internet / Netz Zugriff Für die Benutzung von Mobile Office ist lediglich eine Internet oder Corporate Netz Verbindung erforderlich. Nach der Verbindungsherstellung kann über

Mehr

Programmieren was ist das genau?

Programmieren was ist das genau? Programmieren was ist das genau? Programmieren heisst Computerprogramme herstellen (von griechisch programma für Vorschrift). Ein Computerprogramm ist Teil der Software eines Computers. Als Software bezeichnet

Mehr

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007 Name: Vorname: Matrikelnummer: Studiengang: E-Mail: Schreiben Sie zunächst sofort Ihren Namen und Matrikelnummer auf

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz

Einführung in das Microsoft.NET-Framework. Programmiersprache C# MEF Das Managed Extensibility Framework. André Kunz Einführung in das Microsoft.NET-Framework Programmiersprache C# MEF Das Managed Extensibility Framework André Kunz 21.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696

Dokumentation zum Projekt Mail-Adapter in SAP PI. 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Dokumentation zum Projekt Mail-Adapter in SAP PI 17.01.2011 Sinkwitz, Sven 519707 Theel, Thomas 519696 Inhalt 1. Einleitung... 2 2. Vorgehen... 3 1. Datentyp für die Mail einrichten... 3 2. Message Typen

Mehr

Ein einfacher Server. .NET Remoting. Klassentypen

Ein einfacher Server. .NET Remoting. Klassentypen Einführung - eine Klienten-Applikation kann mit einer Komponente interagieren die hinter einer Grenze liegt - Remoting ermöglicht eine Kommunikation von Komponenten Kontext-, Applikationsdomänen- (leichtgewichtiger

Mehr

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Internet und WWW Übungen

Internet und WWW Übungen Internet und WWW Übungen 7 Serverseitige Web-Technologien [WEB7] Rolf Dornberger 1 06-11-12 7 Serverseitige Web-Technologien 1. Begriffe Zusatz für Interessierte: 2. JSP erstellen 3. Servlet erstellen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Normfall 7.2. Whitepaper. Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von:

Normfall 7.2. Whitepaper. Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von: Normfall 7.2 Whitepaper Erstellen eines Normfall Projektspeichers auf Basis einer vorhandenen Installation von: Microsoft SQL Server 2008 R2/2012/2014 2014 Normfall GmbH Alle Rechte vorbehalten. Vorbemerkungen

Mehr

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de Webmail Anleitung für Ihr online E-Mail-Postfach http://webmail.willytel.de Inhalt: Inhalt:... 2 Übersicht:... 3 Menü:... 4 E-Mail:... 4 Funktionen:... 5 Auf neue Nachrichten überprüfen... 5 Neue Nachricht

Mehr

Server Installation 1/6 20.10.04

Server Installation 1/6 20.10.04 Server Installation Netzwerkeinrichtung Nach der Installation müssen die Netzwerkeinstellungen vorgenommen werden. Hierzu wird eine feste IP- Adresse sowie der Servername eingetragen. Beispiel: IP-Adresse:

Mehr

Advanced Network Programming

Advanced Network Programming 1 Advanced Network Programming Inhalt Netzwerkkommunikation Protokolle Verbindungsaufbau, -kontrolle, Datentransfer Socketprogrammierung TPC und UDP Client- und Serversockets verbindungsorientierte Server

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Seminararbeit Ruby Uno Kartenspiel

Seminararbeit Ruby Uno Kartenspiel Seminararbeit Ruby Uno Kartenspiel Autor: Fabian Merki Fabian Merki 05.11.2006 1 von 10 Inhaltsverzeichnis Einleitung... 3 Die Idee... 4 Design und Implementierung in Ruby... 5 Testing... 7 Startbefehle...

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

IKONIZER II Installation im Netzwerk

IKONIZER II Installation im Netzwerk Der IKONIZER II ist netzwerkfähig in allen bekannten Netzwerken. Da jedoch etwa 95% der Installationen lokal betrieben werden, erfolgt diese grundsätzlich sowohl für das Programm wie auch für den lizenzfreien

Mehr

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter

Remote- und Server-Programmierung. Dr. Wolfgang Süß Thorsten Schlachter Remote- und Server-Programmierung Dr. Wolfgang Süß Thorsten Schlachter Remote Method Invocation (RMI) Servlets WebServices 2 Remote Method Invocation (RMI) Das Remote Method Invocation (RMI)-Framework

Mehr

Aufgabenstellung und Zielsetzung

Aufgabenstellung und Zielsetzung Aufgabenstellung und Zielsetzung In diesem Szenario werden Sie eine Bestellung, vorliegend im XML-Format, über einen Web-Client per HTTP zum XI- System senden. Dort wird die XML-Datei mittels eines HTTP-Interfaces

Mehr

GeoShop Netzwerkhandbuch

GeoShop Netzwerkhandbuch Technoparkstrasse 1 8005 Zürich Tel.: 044 / 350 10 10 Fax.: 044 / 350 10 19 GeoShop Netzwerkhandbuch Zusammenfassung Diese Dokumentation beschreibt die Einbindung des GeoShop in bestehende Netzwerkumgebungen.

Mehr

Einführung in COM. 04.04.2006 Seite 1

Einführung in COM. 04.04.2006 Seite 1 Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006

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

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Technische Produktinformation: Active Directory- Management in bi-cube

Technische Produktinformation: Active Directory- Management in bi-cube Inhalt: 1 bi-cube -FEATURES ACTIVE DIRECTORY... 2 2 DAS SYSTEMKONZEPT... 3 3 WAS SIND ADOC UND ECDOC?... 3 4 DIE WICHTIGSTEN FUNKTIONEN IM ÜBERBLICK... 5 4.1 Verwaltung der Strukturdaten... 5 4.2 Verwaltung

Mehr

Knottenwäldchen Software

Knottenwäldchen Software Knottenwäldchen Software Installationsanleitung für die netzbasierte Lösung Knottenwäldchen Software März.2011 Knottenwäldchen Software Seite 2 1 Inhalt 1 Inhalt... 2 2 Übersicht... 3 3 Installation...

Mehr

SMTP-Verfahren POP-Verfahren IMAP-Verfahren

SMTP-Verfahren POP-Verfahren IMAP-Verfahren IT Zertifikat Mailserver 01 Server Mailserver Protokolle Teil des Client-Server-Modells bietet Dienste für lokale Programme/ Computer (Clients) an -> Back-End-Computer Ausbau zu Gruppe von Servern/ Diensten

Mehr

Benutzerhandbuch für FaxClient für HylaFAX

Benutzerhandbuch für FaxClient für HylaFAX Benutzerhandbuch für FaxClient für HylaFAX Vielen Dank, daß Sie entschlossen haben, dieses kleine Handbuch zu lesen. Es wird Sie bei der Installation und Benutzung des FaxClients für HylaFAX unterstützen.

Mehr

7.1.1 Grundzüge der Fernaufruf-Implementierung

7.1.1 Grundzüge der Fernaufruf-Implementierung 7.1.1 Grundzüge der Fernaufruf-Implementierung = Aufrufbeziehung Aufrufer Vertreter (proxy, client stub) Fernaufrufdienst A d a p t e r Treiber (skeleton, server stub) Fernaufrufdienst Aufgerufener (Modul,

Mehr

JMangler. Frithjof Kurtz. Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1

JMangler. Frithjof Kurtz. Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1 JMangler Frithjof Kurtz Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1 JMangler Vortragsgliederung Motivation Java Grundlagen JMangler Grundlagen Transformationen Algorithmen

Mehr

SWN-NetT Webmail. Benutzerhandbuch für SWN-NetT Webmail. SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de

SWN-NetT Webmail. Benutzerhandbuch für SWN-NetT Webmail. SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de SWN-NetT Webmail Benutzerhandbuch für SWN-NetT Webmail SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de Übersicht Einstieg... 2 Menü... 2 E-Mail... 3 Funktionen... 4 Auf eine neue Nachricht

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

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

JDBC. Allgemeines ODBC. java.sql. Beispiele

JDBC. Allgemeines ODBC. java.sql. Beispiele JDBC Java Data Base Connectivity Programmierschnittstelle für relationale Datenbanken Sammlung von Klassen, welche zum Aufbau einer Verbindung zwischen einem Java-Programm und einer Datenbank dienen Verwendet

Mehr

Beispiel droidremoteppt

Beispiel droidremoteppt Arthur Zaczek Nov 2014 1 Beispiel droidremoteppt 1.1 Beschreibung Powerpoint soll mit ein Android Handy über Bluetooth gesteuert werden Folien wechseln (Vor/Zurück) Folien am Handy darstellen Am Handy

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

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

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

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

Name: Matr.-Nr.. Aufgaben: Punkte erreicht. 1. Klient mit Socket 6. 2. Server mit Sockets 9. 3. Java RMI 6. 4. Klienten und Server 4. 5. PHP 9.

Name: Matr.-Nr.. Aufgaben: Punkte erreicht. 1. Klient mit Socket 6. 2. Server mit Sockets 9. 3. Java RMI 6. 4. Klienten und Server 4. 5. PHP 9. FU Berlin WS 08/09 Nachklausur Netzprogrammierung: Lösungen Maximale Punktzahl: 45 Minimale Punktzahl: 22 Name: Matr.-Nr.. Die Klausur dauert 90 Minuten. Bitte schreiben sie auf jedes Blatt Ihre Matrikelnummer.

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Online Help StruxureWare Data Center Expert

Online Help StruxureWare Data Center Expert Online Help StruxureWare Data Center Expert Version 7.2.7 Virtuelle StruxureWare Data Center Expert-Appliance Der StruxureWare Data Center Expert-7.2-Server ist als virtuelle Appliance verfügbar, die auf

Mehr

A-Plan 2010 SQL. Hinweise zur SQL-Version von A-Plan. Copyright. Warenzeichenhinweise

A-Plan 2010 SQL. Hinweise zur SQL-Version von A-Plan. Copyright. Warenzeichenhinweise A-Plan 2010 SQL Hinweise zur SQL-Version von A-Plan Copyright Copyright 1996-2010 braintool software gmbh Kein Teil dieses Handbuches darf ohne ausdrückliche Genehmigung von braintool software gmbh auf

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

.NET-Networking 2 Windows Communication Foundation

.NET-Networking 2 Windows Communication Foundation .NET-Networking 2 Windows Communication Foundation Proseminar Objektorientiertes Programmieren mit.net und C# Fabian Raab Institut für Informatik Software & Systems Engineering Agenda Grundproblem Bestandteile

Mehr

Gnutella Filesharing Clients

Gnutella Filesharing Clients Gnutella Filesharing Clients Autor: Arnulf Pelzer (webmaster@arnulfpelzer.de) Formatierung: Gabriel Welsche (ai114@gmx.de) Lizenz: GFDL In diesem Kapitel werden zwei Gnutella Clients vorgestellt. Die Grundlagen

Mehr

Buzzword Bingo Game Documentation (Java based Game)

Buzzword Bingo Game Documentation (Java based Game) Buzzword Bingo Game Documentation (Java based Game) Meppe Patrick Djeufack Stella Beltran Daniel April 15, 2011 1 Inhaltsverzeichnis 1 Einleitung 3 2 Aufgabenstellung 3 3 Allgemeines zu Buzzword Bingo

Mehr

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

Mehr

IRF2000, IF1000 Application Note ModbusTCP API

IRF2000, IF1000 Application Note ModbusTCP API Version 2.0 Original-Application Note ads-tec GmbH IRF2000, IF1000 Application Note ModbusTCP API Version 2.0 Stand: 28.10.2014 ads-tec GmbH 2014 IRF2000 IF1000 2 Inhaltsverzeichnis 1 Einführung... 3 2

Mehr

DHCP und dynamischer Update eines DNS

DHCP und dynamischer Update eines DNS DHCP und dynamischer Update eines DNS Als Voraussetzung für diese Dokumentation wird eine funktionierende Konfiguration eines DNS Servers, mit den entsprechenden Zonefiles angenommen. Die hier verwendete

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Hochschule für Angewandte Wissenschaften München Fakultät Informatik und Mathematik

Hochschule für Angewandte Wissenschaften München Fakultät Informatik und Mathematik Hochschule für Angewandte Wissenschaften München Fakultät Informatik und Mathematik Verteilte Systeme (Masterstudiengänge) Wintersemester 2014/2015 München, September 2014 Prof. Dr. Peter Mandl Inhalt

Mehr

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation

JOB SCHEDULER. Managed User Jobs. Dokumentation Juli 2005. MySQL-Job-Automation MySQL-Job-Automation Managed User Jobs JOB SCHEDULER Dokumentation Juli 2005 Software- und Organisations-Service GmbH Giesebrechtstr. 15 D-10629 Berlin Telefon (030) 86 47 90-0 Telefax (030) 861 33 35

Mehr

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System

Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Konzepte zur Datenhaltung für Webseiten in einem Web-Content- Management-System Web-Content-Management-Systeme () dienen dazu, komplexe Websites zu verwalten und den Autoren einzelner Webseiten möglichst

Mehr

C# - PROGRAMME MIT PLUGINS ERWEITERN

C# - PROGRAMME MIT PLUGINS ERWEITERN C# - PROGRAMME MIT PLUGINS ERWEITERN Schreibt man ein Programm welches erweiterbar sein soll, dann gibt es häufig mehrere Möglichkeiten dies umzusetzen. Die Objektorientierung ist dabei der erste Schritt,

Mehr

1. Netzwerkprogrammierung für mobile Geräte

1. Netzwerkprogrammierung für mobile Geräte 1. Netzwerkprogrammierung für mobile Geräte Lernziele 1. Netzwerkprogrammierung für mobile Geräte Themen/Lernziele: Konzepte der verbindungslosen Kommunikation beherrschen Client/Server-Anwendungen auf

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

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

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 In diesem Dokument wird dargelegt, wie das SEPPmail Outlook Add-in funktioniert, und welche Einstellungen vorgenommen werden können. Seite 2 Inhalt

Mehr