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

Programmieren 2 Selbststudium Semesterwoche 6

Programmieren 2 Selbststudium Semesterwoche 6 Programmieren 2 Selbststudium Semesterwoche 6 1. Datenströme (Basis: Handout PRG2_SW6_OOP) 1. Gehen Sie nochmals die Kontrollfragen A durch. A.1. Ein JavaProgramm liest Daten aus einem???strom. InputStream

Mehr

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

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Networking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL

Networking. Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL Networking Motivation Grundlagen von Sockets Klasse Socket Klasse ServerSocket Exceptions Klasse URL Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Netzwerkprogrammierung in Java Programme schreiben,

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

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

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

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

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

Programmieren I. Kapitel 15. Ein und Ausgabe

Programmieren I. Kapitel 15. Ein und Ausgabe Programmieren I Kapitel 15. Ein und Ausgabe Kapitel 15: Ein und Ausgabe Ziel: einen kleinen Einblick in die vielfältigen IO Klassen geben Grober Überblick Klasse File zur Verwaltung von Dateien Random

Mehr

Beispiel Time Client/Server

Beispiel Time Client/Server Beispiel Time Client/Server /** * * Programmbeschreibung: * --------------------- * Dieses Programm ermittelt über eine TCP/IP-Verbindung die Uhrzeit eines * entfernten Rechners, wobei es sowohl die Rolle

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

Administrator-Anleitung

Administrator-Anleitung Administrator-Anleitung für die Typ 2 Installation der LEC-Web-Anwendung auf einem Microsoft Windows Server Ansprechpartner für Fragen zur Software: Zentrum für integrierten Umweltschutz e.v. (ZiU) Danziger

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

Referat: Netzwerkprogrammierung in Java

Referat: Netzwerkprogrammierung in Java 1.)ISO/OSI und Internet Referenzmodell Referat: Netzwerkprogrammierung in Java ISO/OSI 7 Schichtenmodell (1-Bitübertragung, 2-Sicherung, 3-Netzwerk, 4-Transport, 5-Sitzung, 6- Darstellung, 7-Anwendung)

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2 Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung

Mehr

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze

Informatik B. Vorlesung 16 Netzwerkprogrammierung. Dr. Ralf Kunze Vorlesung 16 Netzwerkprogrammierung 1 Netzwerkprogrammierung Mit Java-Programmen ist es möglich, Verbindungen über Netze aufzubauen Die Basisfunktionalität zur Netzwerkprogrammierung stellt das Paket java.net

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

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

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

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

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

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

Installationsanleitung für die netzbasierte Variante Bis Version 3.5. KnoWau, Allgemeine Bedienhinweise Seite 1

Installationsanleitung für die netzbasierte Variante Bis Version 3.5. KnoWau, Allgemeine Bedienhinweise Seite 1 1 Installationsanleitung für die netzbasierte Variante Bis Version 3.5 Copyright KnoWau Software 2013 KnoWau, Allgemeine Bedienhinweise Seite 1 2 Seite absichtlich leer KnoWau, Allgemeine Bedienhinweise

Mehr

EBW Systems HANDBUCH Offline Programm

EBW Systems HANDBUCH Offline Programm EBW Systems HANDBUCH Offline Programm Seite 1 von 7 Inhaltsverzeichnis 1. Programmsteuerung 2. Veranstaltungen verwalten 3. Daten absenden 4. Sonstige Hinweise Seite 2 von 7 1. Programmsteuerung Programm

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

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

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

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

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

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

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

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

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

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

E.1 Object Request Brokers

E.1 Object Request Brokers E Überblick über die 4. Übung E Überblick über die 4. Übung 1 Komponenten eines ORBs Lösungsskizze Aufgabe 2 RPC und ORB Aufrufsemantiken Hinweise Aufgabe 3 Kommunikationsschicht: tauscht Daten zwischen

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

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

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

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

Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003. Subnetting

Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003. Subnetting Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003 Subnetting Einleitung Thema dieser Ausarbeitung ist Subnetting Ganz zu Beginn werden die zum Verständnis der Ausführung notwendigen Fachbegriffe

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

VS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel

VS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel VS4 Slide 1 Verteilte Systeme Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

Mehr

Praktikum Datenbanken und verteilte Systeme Sommersemester 2015

Praktikum Datenbanken und verteilte Systeme Sommersemester 2015 Sommersemester 2015 Tutorial 1 Datenbankzugriff für die Server-Anwendung 2 1.1 Squirrel SQL-Client 2 1.2 Java-Client mit JDBC unter Eclipse 2 2 Entwicklung einfacher Client-Server-Anwendungen 4 2.1 Entwicklung

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

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

ISi. ISi Technologie GmbH. MET -Schnittstelle zu Davis WeatherLink Version 5.7

ISi. ISi Technologie GmbH. MET -Schnittstelle zu Davis WeatherLink Version 5.7 ISi ISi Technologie GmbH MET -Schnittstelle zu Davis WeatherLink Version 5.7 Einleitung Die MET -Schnittstelle zur Davis -WeatherLink Software Version 5.7 oder höher erlaubt die Online-Uebernahme der Wetterdaten

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

Ü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

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 Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Client/Server-Systeme

Client/Server-Systeme Frühjahrsemester 2011 CS104 Programmieren II / CS108 Programmier-Projekt Java-Projekt Kapitel 3: /Server-Architekturen H. Schuldt /Server-Systeme Ein zweischichtiges /Server-System ist die einfachste Variante

Mehr

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.

Versuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore. Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung

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

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

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

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht

Software-Projekt: Mensch ärgere Dich nicht. Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Dokumentation Softwareprojekt: Mensch ärgere Dich nicht Das Programm Mensch ärgere Dich nicht ermöglicht das Spielen des gleichnamigen Spieles über Netzwerke. Jeder Spieler verfügt dabei über einen Clienten,

Mehr

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe und Ausgabe in Java Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien Eingabe Beispiel1 public class Input1 { public static void main(string[] args) { for (int i = 0; i < args.length;

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

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

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

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

Objektserialisierung

Objektserialisierung Objektserialisierung SEP 170 Serialisierung von Objekten Umwandlung des Objektzustandes in einen Strom von Bytes, aus dem eine Kopie des Objekts zurückgelesen werden kann. Serialisierung in Java einfacher

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

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

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

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

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

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

regify Installationsanleitung für IBM Lotus Notes / Domino Version 1.3.0 volker.schmid@regify.com

regify Installationsanleitung für IBM Lotus Notes / Domino Version 1.3.0 volker.schmid@regify.com regify Installationsanleitung für IBM Lotus Notes / Domino Version 1.3.0 volker.schmid@regify.com INHALT Inhalt...2 Einleitung...3 Versionen und Voraussetzungen...3 Installation der regify Schablonen...4

Mehr

Low-Level Client-Server Architektur

Low-Level Client-Server Architektur Softwareentwicklung in verteilten Umgebungen Einführung Übung 1 Low-Level Client-Server Architektur Alexander Lex 1 KEINE PLAGIATE! Einzel-Übungen! Eigenständige Arbeit jedes Teilnehmers Weitergabe von

Mehr

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten

IT in der Arztpraxis Technisches Handbuch zum Kodierassistenten Technisches Handbuch zum Kodierassistenten [KBV_ITA_AHEX_Handbuch_Kodierassistent] Dezernat 6 Informationstechnik, Telematik und Telemedizin 10623 Berlin, Herbert-Lewin-Platz 2 Kassenärztliche Bundesvereinigung

Mehr

Java und Netzwerkkommunikation

Java und Netzwerkkommunikation Java und Netzwerkkommunikation Ziel: Kommunikation über Rechnergrenzen hinweg Grundlagen Sockets in Java Java-Netzwerk-Einführung Seite 1 Grundbegriffe Senden und Empfangen von Daten! Frau B Herr A Sender

Mehr

Administrator-Anleitung

Administrator-Anleitung Administrator-Anleitung für die Installation und Konfiguration eines Microsoft SQL Server zur Nutzung der Anwendung Ansprechpartner für Fragen zur Software: Zentrum für integrierten Umweltschutz e.v. (ZiU)

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

WinWerk. Prozess 1 Installation Update. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang 16 8307 Effretikon

WinWerk. Prozess 1 Installation Update. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang 16 8307 Effretikon WinWerk Prozess 1 Installation Update 8307 Effretikon Telefon: 052-740 11 11 Telefax: 052-740 11 71 E-Mail info@kmuratgeber.ch Internet: www.winwerk.ch Inhaltsverzeichnis 1 Einzelplatz Installation...

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition

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

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

Studentische Lösung zum Übungsblatt Nr. 7

Studentische Lösung zum Übungsblatt Nr. 7 Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int

Mehr

Dropbox Verschlüsselung mit TrueCrypt

Dropbox Verschlüsselung mit TrueCrypt 1 von 8 19.04.2013 15:17 Datenbank Dropbox Verschlüsselung mit TrueCrypt http://www.hpier.de/wb» Software» Dropbox Verschlüsselung mit TrueCrypt Daten in der Dropbox Cloud mit TrueCrypt sicher verschlüsseln

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

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

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

juliteccrm Dokumentation

juliteccrm Dokumentation Customer Relationship Management für kleine und mittelständische Unternehmen juliteccrm Dokumentation 2012, julitec GmbH Page 1 of 12 julitec GmbH Flößaustraße 22 a 90763 Fürth Telefon: +49 911 979070-0

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

Einführung in die Programmierung Blockkurs Java

Einführung in die Programmierung Blockkurs Java Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()

Mehr

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel Einführung Servlets JEE Vorlesung Teil 2 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Wiederholung Hello World Blick in die Details Servlet Programmierung Potentielle Fehler Lernziele Gruppenübung 2

Mehr

Windows-Firewall Ausnahmen für Docusnap konfigurieren itelio GmbH

Windows-Firewall Ausnahmen für Docusnap konfigurieren itelio GmbH Windows-Firewall Ausnahmen für Docusnap konfigurieren itelio GmbH www.docusnap.com Inhaltsverzeichnis 1 Windows Firewall Konfiguration - Grundlagen 3 1.1 Übersicht - benötige Firewall Ausnahmen 3 2 Windows

Mehr

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com Betriebssysteme Wintersemester 2015 Kapitel 2 Prozess und Threads Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Eingabe und Ausgabe Dateisysteme Zusammenfassung

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 14 Einstieg in die Informatik mit Java Swing Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 14 1 Einführendes Beispiel 2 Eigenschaften von Swing 3 Typisches Swing-Applet

Mehr

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

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