Entwicklerdokumentation

Größe: px
Ab Seite anzeigen:

Download "Entwicklerdokumentation"

Transkript

1 Ad-hoc Chatsystem für Mobile Netze Gruppe 4 Softwareentwicklungspraktikum Sommersemester 2007 Entwicklerdokumentation Auftraggeber Technische Universität Braunschweig Institut für Betriebssysteme und Rechnerverbund Prof. Dr.-Ing. Lars Wolf Mühlenpfordtstraße 23, 1. OG Braunschweig Betreuer: Sven Lahde, Oliver Wellnitz, Wolf-Bastian Pöttner Phasenverantwortlicher: Norman Dankert Auftragnehmer Name Alexander Hoffmann Christoph Peltz Norman Dankert Sven Hesse alexhoffmann84@web.de kris@keeg.de n.dankert@tu-bs.de drmccoy@users.sourceforge.net Braunschweig,

2 Entwicklerdokumentation INHALTSVERZEICHNIS Inhaltsverzeichnis 1 Projektdetails Allgemeine Funktionsweise Weiterleitung von Nachrichten Analyse der Produktfunktionen Analyse von Funktionalität F10: öffentlichen Kanal erstellen Grobanalyse Feinanalyse Analyse von Funktionalität F11: öffentlichem Kanal beitreten Grobanalyse Feinanalyse Analyse von Funktionalität F12: öffentlichen Kanal verlassen Grobanalyse Feinanalyse Analyse von Funktionalität F20: geschlossenen Kanal erstellen Grobanalyse Feinanalyse Analyse von Funktionalität F21: geschlossenem Kanal beitreten Grobanalyse Feinanalyse Analyse von Funktionalität F30: Kanäle auflisten Grobanalyse Feinanalyse Analyse von Funktionalität F40: Nachrichten schreiben Grobanalyse Feinanalyse Analyse von Funktionalität F50: Peerliste aktivieren Grobanalyse Feinanalyse Analyse von Funktionalität F51: Peerliste deaktivieren Grobanalyse Feinanalyse Analyse von Funktionalität F52: Peer hinzufügen Grobanalyse Feinanalyse Analyse von Funktionalität F53: Peer entfernen Grobanalyse Feinanalyse Analyse von Funktionalität F60: Alle erreichbaren Teilnehmer auflisten Grobanalyse Feinanalyse

3 Entwicklerdokumentation INHALTSVERZEICHNIS 3 Resultierende Softwarearchitektur Komponentenspezifikation Schnittstellenspezifikation Protokolle für die Benutzung der Komponenten Verteilungsentwurf 26 5 Erfüllung der Kriterien Musskriterien Wunschkriterien Abgrenzungskriterien Implementierungsentwurf Gesamtsystem Implementierung der Komponente S10: UDP Klassendiagramm Klasse UDP Klasse Listener Klasse Sender Klasse SendHellos Implementierung der Komponente S20: Channel Klassendiagramm Klasse Channel Klasse ClosedChannel Klasse PublicChannel Klasse AnonymousChannel Klasse ChannelManager Implementierung der Komponente S30: Message Klassendiagramm Klasse Message Klasse ChanneledMessage Implementierung der Komponente S40: User Klassendiagramm Klasse User Klasse UserList Klasse UserManager Klasse Purger Implementierung der Komponente S50: EventManager Klassendiagramm Klasse EventManager Implementierung der Komponente S60: Crypt Klassendiagramm Klasse CertificateManager Implementierung der Komponente S70: RoutingTable

4 Entwicklerdokumentation INHALTSVERZEICHNIS Klassendiagramm Klasse RoutingTable Klass PeerAddr Klasse RoutingData Klasse Peer Implementierung der Komponente S80: Network Klassendiagramm Klasse Network Datenmodell Diagramm Erläuterung

5 Entwicklerdokumentation ABBILDUNGSVERZEICHNIS Abbildungsverzeichnis 1 Allgemeine Funktionsweise Weiterleitung von Nachrichten Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Aktivitätsdiagramm für Funktion F Sequenzdiagramm für Funktion F Komponenten von MAdChat Verteilungsentwurf Komponenten von MAdChat Klassendiagramm - UDP Klassendiagramm - Channel Klassendiagramm - Message Klassendiagramm - User Klassendiagramm - Event Klassendiagramm - Crypt Klassendiagramm - RoutingTable Klassendiagramm - Network Datenmodell

6 Entwicklerdokumentation 1 PROJEKTDETAILS 1 Projektdetails 1.1 Allgemeine Funktionsweise Abbildung 1: Allgemeine Funktionsweise Nachdem MAdChat gestartet wurde, ist es Betriebsbereit und versucht ein Netz zu finden bzw. ein eigenes aufzubauen. Ist dies gelungen, kann der Nutzer chatten oder andere Nutzer Nachrichten über den neuen Knoten weiterleiten. Das Programm kann durch den Befehl des Benutzers beendet werden, speichert jedoch vorher noch diverse Einstellungen und sendet NACKs für nicht zugestellte Nachrichten zurück und verwirft diese. Erhält der Client eine Nachricht, analysiert er diese und verifiziert sowohl Struktur als auch Inhalt. Sollte es Unstimmigkeiten geben, ist diese Nachricht ungültig und wird nicht weiter bearbeitet. Ist die Nachricht jedoch gültig, wird überprüft, ob sie nur weitergeleitet werden soll, oder der Nutzer des Clients ebenfalls ein Empfänger ist - in diesem Fall wird sie dem Nutzer angezeigt und gegebenenfalls vorher entschlüsselt und anschließend ebenfalls weitergeleitet, falls der Nutzer nicht der einzige Empfänger gewesen ist. Will der Nutzer eine Nachricht versenden, so prüft der Client ob diese verschlüsselt werden muss und tut dies gegebenenfalls. Anschließend wird die Nachricht an ihre Empfänger, also die Nutzer, mit denen der Nutzer im selben Kanal ist, weitergeleitet. Wurde die Nachricht weitergeleitet oder zwischengespeichert, wartet MAdChat auf neue Nachrichten. 1.2 Weiterleitung von Nachrichten Für jeden Empfänger einer Nachricht, also alle Chatteilnehmer eines Kanals bzw. alle in der Nachricht aufgelisteten Chatteilenhmer, wird dieser Statechart abgearbeitet. Sollte die Liste der Empfänger leer sein (der Benutzer war also der letzte Empfänger), wird nichts weitergeleitet. Ist ein Chatteilnehmer aufgrund einer Netztrennung nicht mehr erreichbar, wird der Inhalt der Nachricht solange zwischengespeichert, bis dieser Chatteilnehmer wieder erreichbar ist. 6

7 Entwicklerdokumentation 1 PROJEKTDETAILS Abbildung 2: Weiterleitung von Nachrichten Falls dem nicht so ist, wird der Peer aus der Routingtabelle ausgewählt, über den der Chatteilnehmer erreichbar ist. Existiert bereits eine Nachricht mit dem gleichen Inhalt an diesen Peer, so wird der Chatteilnehmer der Empfängerliste der Nachricht hinzugefügt. Sollte dies nicht der Fall sein, so wird eine neue Nachricht an den Peer erstellt, über den der Chatteilnehmer erreichbar ist und danach die Empfängerliste um den Chatteilnehmer erweitert. Wurden alle Chatteilnehmer abgearbeitet, werden die Nachrichten an die Peers versendet. 7

8 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN 2 Analyse der Produktfunktionen Im folgenden Kapitel werden die Funktionen aus dem Pflichtenheft jeweils in einem Aktivitätsdiagramm (Grobanalyse) und in einem Sequenzdiagramm (Feinanalyse) näher erläutert und beschrieben. In den Diagrammen sind die einzelnen Komponenten und deren Methoden enthalten wie sie im Feinentwurf dargestellt sind. Bei Benutzer handelt es sich dabei um den Nutzer, der über die GUI das Programm MAdChat benutzt. Das Objekt Benutzer entspricht also gleichzeitig auch die Eingabe und Ausgabe von MAdChat. 2.1 Analyse von Funktionalität F10: öffentlichen Kanal erstellen Grobanalyse Abbildung 3: Aktivitätsdiagramm für Funktion F10 Diese Funktion dient dazu einen öffentlichen Kanal im Netz zu erstellen. Der Benutzer gibt dabei über ein Eingabefeld den gewünschten Namen ein und bestätigt die Eingabe. Die Komponente Channel, die alle vorhandenen und zu erzeugenden Kanäle durch den Channel- Manager verwaltet, überprüft, ob ein Kanal mit gleichem Namen schon vorhanden ist. Wenn ja, wird der Nutzer durch versenden einer JOIN-message (Aufgabe von UDP) dem Kanal hinzugefügt. Wenn ein solcher Kanal noch nicht existiert, wird dieser erstellt, der Nutzer hinzugefügt und dem Netz durch eine CHANNEL-message der neue Kanal mitgeteilt. 8

9 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Abbildung 4: Sequenzdiagramm für Funktion F Feinanalyse Im oberen Teil des Diagramms dargestellt, ist der gewünschte Kanal noch nicht vorhanden. Es wird createchannel() aufgerufen, wodurch ein neuer Kanal erzeugt wird. Channel fügt den neuen Kanal hinzu und durch UDP wird mit einer CHANNEL-message der neue Kanal dem Netz mitgeteilt. Im unteren Teil ist der gewünschte Kanal bereits im Netz vorhanden, wodurch Channel veranlasst wird, den Nutzer dem Kanal hinzuzufügen. Dies geschieht durch verschicken einer JOIN-message durch UDP. Wird das Beitrittwunsch bestätigt setzt Channel den Nutzer auf die Mitgliederliste. Die Änderung wird mit broadcast() im Netz verteilt. 2.2 Analyse von Funktionalität F11: öffentlichem Kanal beitreten Grobanalyse Möchte der Benutzer einem bereits vorhandenen öffentlichen Kanal beitreten, wählt er diesen aus der Kanalliste aus. Ist der Kanal in diesem Moment nicht erreichbar, wird eine Fehlermeldung angezeigt. Ist der Kanal noch vorhanden, wird durch UDP eine JOIN-message verschickt und der Nutzer wird durch User (verwaltet alle Nutzer im Netz) der Mitgliederliste hinzugefügt. Der Kanal mit seinen Mitgliedern wird dem Benutzer dann durch Channel in einem neuen Tab dargestellt Feinanalyse Der Benutzer teilt Channel mit, dass er einem Kanal vom Typ PublicChannel beitreten möchte. Channel erzeugt eine JOIN-message die durch UDP dem Netz mitgeteilt wird und die Komponente User setzt den Benutzer auf die Liste. 9

10 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Abbildung 5: Aktivitätsdiagramm für Funktion F11 Abbildung 6: Sequenzdiagramm für Funktion F Analyse von Funktionalität F12: öffentlichen Kanal verlassen Grobanalyse Der Benutzer verlässt einen öffentlichen Kanal, indem er den zugehörigen Tab schließt. Der Nutzer wird aus der Nutzerliste durch User entfernt und der Kanal wird in Channel entfernt, nachdem eine LEAVE-message durch UDP versendet wurde Feinanalyse Durch leave() wird Channel mitgeteilt, dass der Kanal verlassen wird. Channel erzeugt eine Nachricht vom Typ LeaveMessage, während User mit erase() den Benutzer aus der Liste entfernt. Die Nachricht zum Verlassen wird schließlich durch UDP gesendet. 10

11 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Abbildung 7: Aktivitätsdiagramm für Funktion F12 Abbildung 8: Sequenzdiagramm für Funktion F Analyse von Funktionalität F20: geschlossenen Kanal erstellen Grobanalyse Abbildung 9: Aktivitätsdiagramm für Funktion F20 11

12 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Der Benutzer gibt beim Erstellen des Kanals zusätzlich an, dass dieser geschlossen sein soll. Für die eindeutige ChannelID wird der lokale Hostname verwendet. Die Komponente Crypt verschlüsselt dann den Kanal und Channel erstellt diesen. UDP teilt dem Netz den neuen Kanal mit. Beim Benutzer öffnet sich ein neuer Kanaltab Feinanalyse Abbildung 10: Sequenzdiagramm für Funktion F20 Nachdem der Benutzer den Kanalnamen für den zu erstellenden Kanal eingegeben hat, wird mit getlocalhostname() der lokale Hostname wiedergegeben. Damit wird dann der Kanal durch Crypt verschlüsselt und wiedergegeben. Channel erstellt den neuen Kanal und veranlasst UDP eine CHANNEL-message zu verschicken, um dem Netz den neuen Kanal mitzuteilen. 2.5 Analyse von Funktionalität F21: geschlossenem Kanal beitreten Grobanalyse Der Beuntzer wählt aus einer Liste einen geschlossenen Kanal aus dem er beitreten möchte. Ist der Kanal immer noch im Netz zu erreichen, wird eine JOIN-message verschickt. Hat ein anderer Benutzer, der bereits Mitglied des Kanals ist, den Beitrittwunsch bestätigt, wird die entsprechende KEY-message empfangen und durch Crypt entschlüsselt. Channel fügt den Benutzer dann dem Kanal hinzu Feinanalyse Durch die Methode join() wird Channel der Beitrittwunsch des Benutzers mitgeteilt. UDP verschickt daraufhin mit broadcast() die JOIN-message. Ist der Beitrittwunsch bestätigt, wird mit getprivatekey() der Crypt Komponente der angeforderte Schlüssel des Kanals entschlüsselt und an Channel wiedergegeben. 12

13 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Abbildung 11: Aktivitätsdiagramm für Funktion F21 Abbildung 12: Sequenzdiagramm für Funktion F Analyse von Funktionalität F30: Kanäle auflisten Grobanalyse Abbildung 13: Aktivitätsdiagramm für Funktion F30 13

14 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Der Benutzer hat die Möglichkeit alle vorhandenen Kanäle im Netz anzeigen zu lassen. Dafür werden die Kanäle, die Channel bekannt sind, in einer Liste dem Benutzer wiedergegeben Feinanalyse Abbildung 14: Sequenzdiagramm für Funktion F30 Das Anzeigen der Kanäle wird in der Komponente Channel durch die Methode getchannels() realisiert. 2.7 Analyse von Funktionalität F40: Nachrichten schreiben Grobanalyse Abbildung 15: Aktivitätsdiagramm für Funktion F40 Innerhalb eines Kanals kann der Benutzer Textnachrichten verschicken, die allen anderen Nutzern im Kanal angezeigt werden. Diese Nachrichten werden in einem Texteingabefeld vom Benutzer eingetippt und per Eingabetaste verschickt. Die Komponente Message erzeugt dann eine ChatMessage mit der Signatur des Benutzers. Wird die Nachricht innerhalb eines geschlossenen Kanals verschickt, wird sie zusätzlich durch Crypt verschlüsselt. UDP sendet die Nachricht schließlich an alle Nutzer des Kanals. 14

15 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Feinanalyse Abbildung 16: Sequenzdiagramm für Funktion F40 Im oberen Teil ist das Versenden einer Nachricht in einem offenen Kanal dargestellt. Im unteren Teil wird eine Nachricht im geschlossenen Kanal versendet, die durch encryptdes() vor dem Einreihen zum Senden in UDP noch durch Crypt verschlüsselt wird. 2.8 Analyse von Funktionalität F50: Peerliste aktivieren Grobanalyse Abbildung 17: Aktivitätsdiagramm für Funktion F50 Das aktivieren der Peerliste entspricht einem Infrastrukturmodus, in dem man feste IP- Adressen eingeben kann um ein geschlossenes Netz zu simulieren (vor allem für Testzwecke). Der Infrastrukturmodus wird durch die Komponente UDP verwaltet Feinanalyse Die Peerliste wird durch die Methode enable() aktiviert. Mit der Methode getpeerlist() werden die Peers abgerufen. 15

16 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Abbildung 18: Sequenzdiagramm für Funktion F Analyse von Funktionalität F51: Peerliste deaktivieren Grobanalyse Abbildung 19: Aktivitätsdiagramm für Funktion F51 Die Peerliste wird durch einen Klick des Benutzers deaktiviert Feinanalyse Abbildung 20: Sequenzdiagramm für Funktion F51 Die Methode zum Deaktivieren ist disable() in UDP Analyse von Funktionalität F52: Peer hinzufügen Grobanalyse Der Benutzer kann einen neuen Peer in die Liste eintragen. UDP fügt den gewünschten Peer dann hinzu. 16

17 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Abbildung 21: Aktivitätsdiagramm für Funktion F Feinanalyse Abbildung 22: Sequenzdiagramm für Funktion F52 Das Eintragen eines Peers wird durch die Methode addpeer() innerhalb UDP erledigt Analyse von Funktionalität F53: Peer entfernen Grobanalyse Abbildung 23: Aktivitätsdiagramm für Funktion F53 Der Peer, der entfernt werden soll wird vom Benutzer ausgewähl. UDP entfernt denn Peer dann. 17

18 Entwicklerdokumentation 2 ANALYSE DER PRODUKTFUNKTIONEN Abbildung 24: Sequenzdiagramm für Funktion F Feinanalyse Der Benutzer wählt den zu entfernenden Peer aus. Die Methode delpeer() entfernt dann den Peer Analyse von Funktionalität F60: Alle erreichbaren Teilnehmer auflisten Grobanalyse Abbildung 25: Aktivitätsdiagramm für Funktion F60 Wenn der Benutzer sich mit dem Netz verbindet, wird automatisch ein anonymer Kanal erstellt. Da alle erreichbaren Nutzer immer Mitglied dieses Kanals sind, werden sie in diesem Kanal aufgelistet Feinanalyse Beim Verbinden wird der Channelmanager aufgerufen, der den anonymen Kanal erstellt und von User alle erreichbaren Nutzer holt und in den Kanal einträgt. 18

19 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Abbildung 26: Sequenzdiagramm für Funktion F60 3 Resultierende Softwarearchitektur 3.1 Komponentenspezifikation Abbildung 27: Komponenten von MAdChat MAdChat besteht aus madchat (dem Front-End mit GUI) und libmadchat. Das Front-End ist nur dafür verantwortlich, mit dem Nutzer zu interagieren, während alles, was das Chatprotokoll betrifft, Aufgabe der Library ist. 19

20 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Die einzelnen Komponenten von libmadchat sind UDP, Channel, Message, User, Event, Crypt, RoutingTable und Network. In der folgenden Schnittstellenspezifikation werden alle öffentlichen Methoden der einzelnen Komponenten erläutert, die dann insgesamt die einzelnen Schnittstellen, wie im Diagramm zu sehen, darstellen. 3.2 Schnittstellenspezifikation Schnittstelle Aufgabenbeschreibung /S10/: UDP Operation Beschreibung Udp (Network network, ost::tpport Konstruktor. port=8888) void send (Message msg, Sende eine Nachricht. ost::ipv4address ip, ost::tpport port=8888) void broadcast (Message msg) Broadcaste eine Nachricht. Message* receive() Empfange eine gegebenenfalls vorliegende Nachricht. Infrastructure* getinfrastructure() Gibt ein Infrastruktur-Objekt zurück. std::string getlocalhostname() const Gibt den local hostname zurück. void setlocalpeer (const PeerAddr Setzt lokale Adresse. peer) void queueforsending (Message *msg) Reiht Nachricht fürs Senden ein. 20

21 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Schnittstelle Aufgabenbeschreibung /S20/: Channel Operation Beschreibung Channel (ChannelManager manager, Konstruktor. const std::string name, const std::string id, const std::string key=, KeyType keytype=keynokey) bool isexistent () const Gibt Kanel zurück falls dieser noch im Netz ist. std::string getname () const Gibt den Kanalnamen zurück. std::string getid () const Gibt die KanalID zurück. KeyType getkeytype () const Gibt den Schlüsseltyp zurück. std::string getkey () const Gibt den Schlüssel zurück. UserList* getmembers () const Gibt die Benutzer eines Kanals zurück. timet getlastchannel () const Gibt Wert zurück wenn die letzte CHANNEL-message erhalten wurde. bool getnochannel () const Gibt an ob eine CHANNELmessage gesendet werden konnte oder nicht. void setkey (const std::string key, Setzt Schlüssel. KeyType type) void setkey (const std::string key, Setzt Schlüssel. const std::string type) bool empty () Gibt zurück ob im Kanal Nutzer sind. bool hasmember (const std::string id) Gibt an ob der Nutzer im Kanal ist. void receivedchannel () CHANNEL-message wurde empfangen. virtual void join () Betrete den Kanal. virtual void leave () Verlasse den Kanal. virtual void confirmjoin (const UserPtr user) Bestätigt den Beitritt eines anderen Nutzers. virtual void send (ChatMessage msg) Sendet eine Nachricht im aktuellen Kanal. virtual ChannelMessage* Erzeugt eine CHANNELmessage. createchannelmessage () static KeyType getkeytype (const std::string type) Gibt den Schlüsseltyp im String zurück. static std::string getkeytype (KeyType type) Gibt den Schlüssel als String zurück. 21

22 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Schnittstelle Aufgabenbeschreibung /S30/: Message Operation Beschreibung virtual Message* clone () const=0 Verfielfätigt die Nachricht. Type gettype () Gibt den Typ der Nachricht zurück. std::string getid () Gibt die ID der Nachricht zurück. unsigned int getttl () Gibt die TTL (Time-to-live) zurück. unsigned int getdelay () Gibt die Laufzeit der Nachricht zurück. SignType getsigntype () Gibt den Typ der Signatur zurück. std::string getsignature () Gibt die Signatur zurück. bool getownsignature () Gibt an ob eigene Signatur berechnet wurde. std::string getsender () Gibt den Sender der Nachricht zurück. std::list< std::string > getreceivers Gibt die Empfänger zurück. () PeerAddr getpeer () Gibt den Peer zurück von wo aus die Nachricht gesendet wurde oder wohin sie gesendet werden soll. timet getreceivedtime () Gibt zurück wann die Nachricht gesendet wurde. virtual bool getflood () Gibt an ob die Nachricht im ganzen Netz geflutet werden soll. virtual bool isnackable () Gibt an ob ein NAck gesendet wird, wenn die Nachricht nicht ankommt. virtual bool needsack () Gibt an ob die Nachricht ein Ack braucht. void createnewid () Erzeugt eine neue NachrichtenID. void setid (const std::string id) Setzt die NachrichtenID. void setttl (unsigned int ttl) Setzt die TTL der Nachricht. void setdelay (unsigned int delay) Setzt die Laufzeit der Nachricht. void setsignature (const std::string Setzt die Signatur. signature, SignType type) virtual void setsender (const Setzt den Sender der Nachricht. std::string sender) void setreceiver (const std::string Setzt den Empfänger der Nachricht. receiver) 22 void setreceivers (UserList receivers) Setzt die Empfänger anhand der Nutzerliste. void setpeer (const ost::ipv4address ip= , ost::tpport port=0) Setzt die IP und den Port aus einer empfangenen Nachricht. void setreceivedtime (timet time) Gibt die Zeit wenn die Nachricht angekommen ist.

23 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Schnittstelle Aufgabenbeschreibung /S30/: Message Operation Beschreibung bool issignaturevalid (RSA *pubkey) Gibt an ob die Signatur korrekt ist. std::string toxml() Konvertiert die Nachricht nach einen XML-String. virtual void fillfromxml (xmldocptr doc, xmlnodeptr node)=0 Generiert eine Nachricht aus einem XML-Dokument. virtual void evaluate (Network network)=0 Evaluiert die Nachricht über das Netz. static Message* fromxml (std::string xml) Kovertiert aus dem XML-String eine Nachricht. static Message* fromxml (xmldocptr doc, xmlnodeptr root) Konvertiert aus dem XML- Dokument eine Nachricht. 23

24 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Schnittstelle Aufgabenbeschreibung /S40/: User Operation Beschreibung User (UserManager manager, Konstruktor. std::string id) bool isexistent () Gibt an ob der Nutzer noch im Netz exisitiert. bool ispeer () Gibt an ob der Nutzer direkt erreichbar ist. std::string getid () Gibt die ID des Nutzers zurück. std::string getgreeting () Gibt das Greeting zurück. int getversion () Gibt die Version zurück. void setgreeting (const std::string Setzt das Greeting. greeting) void setversion (int version) Setzt die Version. timet lastseen () Gibt den letzten Zeitpunkt zurück, an dem eine HELLOmessage empfangen wurde. void seendirect () Zeigt an, dass eine HELLOmessage empfangen wurde. void seenindirect () Zeigt an, dass eine ROUTINGmessage empfangen wurde. timet lastaskedforcert () Zeigt an, wann das letzte mal nach dem Zertifikat gefragt wurde. void askedforcert () Zeigt an, dass gerade nach dem Zertifikat gefragt wurde. bool haspublickey () Zeigt an, ob der Schlüssel eines anderen Nutzers bekannt ist. RSA* getpublickey () Gibt den Schlüssel eines anderen Nutzers zurück. 24

25 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Schnittstelle Aufgabenbeschreibung /S50/: Event Operation Beschreibung Event (Type type, const ChatMessage msg) Konstruktor für eine Chatmessage. Event (Type type, const NAckMessage msg) Konstruktor für eine NAck- message- Event (Type type, const ChannelPtr chn, const UserPtr user) Konstruktor für einen Kanal und einen Nutzer. Event (Type type, const ChannelPtr chn) Konstruktor nur für einen Kanal. Event (Type type, const UserPtr user) Konstruktor nur für einen Nutzer. Event (const Event right) Konstruktor. Event operator=(const Event right) Type gettype() Gibt den Typ zurück. ChatMessage* getmessage() Gibt eine Nachricht vom Typ ChatMessage zurück. NAckMessage* getnack() Gibt eine NAck-message zurück. ChannelPtr getchannel() Gibt den Kanal zurück. UserPtr getuser() Gibt den Nutzer zurück. 25

26 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Schnittstelle Aufgabenbeschreibung /S60/: Crypt Operation Beschreibung CertificateManager (const std::string Konstruktor basepath, std::string rootcert) std::string add (X509 *cert) Fügt ein neues X509-Zertifikat hinzu und gibt die ID zurück. std::string addfile (std::string certfile) Fügt ein X509-Zertifikat aus der Datei hinzu. std::string addmem (std::string certstring) Fügt ein X509-Zertifikat hinzu mit Base64 DER String. bool setprivatekey (std::string keyfile) Verifiziert die Signatur von key- File mit RSA key. bool save() Speichert alle Zertifikate im angegebenen Ordner. bool load() Lädt abgespeicherte Zertifikate. bool haspublickey (const std::string id) Überprüft ob der Schlüssel des Nutzers bereits vorhanden ist. RSA* getpublickey (const std::string id) Gibt den öffentlichen Schlüssel des Nutzers im RSA-Format wieder. RSA* getprivatekey() Gibt den privaten Schlüssel std::string getcertificate (const std::string id) zurück. Gibt das Zerifikat des Nutzers im PEM-Format zurück. Schnittstelle /S70/: Routing- Table Aufgabenbeschreibung Operation Beschreibung RoutingTable (Network network) void update (const Message *msg) PeerAddr findroute (const std::string destination, unsigned int offset) void purge() Konstruktor Aktualisiert die Routing Informationen entsprechend des Nachrichtentyps. Findet den Peer an den die Nachricht geschickt werden soll. Purger. 26

27 Entwicklerdokumentation 3 RESULTIERENDE SOFTWAREARCHITEKTUR Schnittstelle Aufgabenbeschreibung /S80/: Network Operation Beschreibung Network (const std::string certbase, Konstruktor const std::string rootcert, const std::string usercert, const std::string privkey, ost::tpportt port=8888) UserPtr getlocaluser() Gibt den lokalen Benutzer zurück. Udp* getudp () Gibt Udp zurück. ChannelManager* Gibt den ChannelManager getchannelmanager() zurück. RoutingTable* getroutingtable() Gibt die RoutingTable zurück. UserManager* getusermanager() Gibt den UserManager zurück. EventManager* geteventmanager() Gibt den EventManager zurück. CertificateManager* getcertificatemanager() Gibt den CertificateManager zurück. void getinfrastructure(bool on) Schaltet den Infrastrukturmodus an und aus. 3.3 Protokolle für die Benutzung der Komponenten Es ist nicht sinnvoll, die Komponenten wiederzuverwenden, da sie zu sehr an das Protokoll und MAdChat angepasst sind. 27

28 Entwicklerdokumentation 4 VERTEILUNGSENTWURF 4 Verteilungsentwurf Auf jedem Knoten läuft im Ad-Hoc Betrieb jeweils eine Instanz von MAdChat, die sich wiederum der Bibliothek bedient um mit anderen Knoten zu kommunizieren. Die einzelnen Instanzen können jeweils andere Front-Ends nutzen, wie zum Beispiel ncmadchat, ein mögliches ncurses-front-end. Abbildung 28: Verteilungsentwurf 28

29 Entwicklerdokumentation 5 ERFÜLLUNG DER KRITERIEN 5 Erfüllung der Kriterien 5.1 Musskriterien Die folgenden Kriterien sind unabdingbar und müssen durch das Produkt erfüllt werden: Das Netz /M30/ Ein Peer speichert die Nachrichten für einen Client, der momentan nicht erreichbar ist, zwischen Peer wiederholt senden, wenn Zielclient wieder in Routingtabelle oder sendet NACK zurück bei Ablauf der TTL /M40/ Das Netz besteht aus beliebig vielen Kanälen Erfüllung durch dynamische Datenstrukturen zur Speicherung der Kanaldaten /M50/ Zwei Netze, die durch mindestens einen Client verbunden sind, werden zusammengeführt Verbindungsclient übermittelt Routinginformationen des einen Netzes an das Andere und vice versa Kanäle /M100/ Es existiert ein permanenter Kanal zur anonymen Unterhaltung, in dem sich alle Clients des Netzes befinden Kanal ist Standardkanal bei Start des Programms und wird realisiert durch eine eigene Klasse /M110/ Es gibt zusätzlich zwei Arten von Kanälen: offene und geschlossene Realisierung durch zwei verschiedene Klassen, eine mit und die andere ohne Verschlüsselungsfunktionen /M120/ Die Gesamtzahl der Kanäle ist nicht begrenzt Erfüllung durch dynamische Datenstrukturen zur Verwaltung der Kanäle /M130/ Jeder Kanal hat einen Namen und eine eindeutige ID Name vom Ersteller gegeben und ID wird automatisch generiert. /M140/ Jeder Chatteilnehmer in einem Kanal erhält die Nachricht, die ein anderer Chatteilnehmer an diesen Kanal gesendet hat Empfängerliste der Nachricht ist gleich der Teilnehmerliste des Kanals. Aufteilung in Einzelnachrichten anhand der Routingtabelle (Wer ist über welchen Peer erreichbar). Es gibt allerdings eine Situation in der dies nicht gewährleistet werden kann. Wenn sich gerade zwei Teilnetze verbunden haben und es in beiden einen öffentlichen Kanal mit gleichem Namen gibt (die ja dann zusammengefügt werden), kann es in der Phase, in der noch nicht alle Teilnehmer des Kanals über die neuen Mitlgieder informiert sind dazu kommen, dass nicht alle wirklichen Mitglieder des Kanals eine Nachricht erhalten. Das Verhalten ist allerdings konsistent zu der GUI, alle Teilnehmer, die bei einem Client angezeigt werden, werden auch die Nachricht bekommen 29

30 Entwicklerdokumentation 5 ERFÜLLUNG DER KRITERIEN /M150/ Werden Netze zusammengeführt und es existieren offene Kanäle mit dem selben Namen, so werden diese verschmolzen Die Teilnehmerlisten der beiden namensgleichen Kanäle werden vereint. Dies wird unter anderem über die CHANNEL Nachrichten erreicht, als auch über MESSAGE Nachrichten, die an diesen Kanal gehen und mehr/andere Empfänger haben als der Kanal (dies ist mit ein Zeichen, dass sich zwei identische Kanäle im Netz befinden) /M160/ Geschlossene Kanäle werden nicht verschmolzen Die Kanäle werden getrennt weiterverwaltet, da dies über die ID und nicht über den Namen geschieht. Nutzer des einen Netzes haben für gewöhnlich nicht die Absicht, Mitglied des geschlossenen Kanals des anderen Netzes zu sein. Für den Fall, dass ein Nutzer nach dem zusammenfügen der beiden Netze auch in beiden Kanälen ist (also wenn er auch in den anderen eingeladen wurde), so werden die Kanäle in der Benutzerschnittstelle durch ein künstliches Suffix auseinandergehalten. /M170/ Geschlossene Kanäle sind mit einem Schlüssel gesichert Die Nachrichten werden mit diesem Schlüssel verschlüsselt, so dass nur Mitglieder des Kanals mit diesem Schlüssel, diese entschlüsseln können. Diese Schlüssel werden beim erstellen eines geschlossenen Kanals erstellt und können danach nicht mehr verändert werden. Chatteilnehmer /M200/ Der Chatteilnehmer hat einen Namen und eine eindeutige ID Der Name kann von jedem Nutzer selbst gewählt werden. Die ID wird durch das vom IBR ausgestellte Zertifikat gegeben /M210/ Die Kommunikation der Chatteilnehmer untereinander erfolgt ausschließlich über Kanäle Ist der Chatteilnehmer Mitglied in einem Kanal, wird nach /M140/ fortgefahren. Ist er kein Mitglied, kann er keine Nachrichten senden /M220/ Der Chatteilnehmer kann einen neuen Kanal erstellen, einem vorhandenen beitreten oder ihn verlassen Wird ein neuer Kanal erstellt tritt der Teilnehmer automatisch ihm bei und es werden CHANNEL Nachrichten ins Netz gesendet um die Existenz eines neuen Kanals bekannt zu machen. Will er einen Vorhandenen erstellen, wird er automatisch diesem beitreten, es sei denn es ist ein geschlossener Kanal. Verlassen kann er nur einen offenen Kanal. Geschlossene bleiben solange bestehen, bis alle Mitglieder offline sind und damit der Schlüssel verschwindet. All dies wird durch die Modifizierung der CHANNEL Nachrichten erreicht /M240/ Der Chatteilnehmer kann in mehreren Kanälen gleichzeitig sein Der Client zeigt für jeden Kanal einen Tab an, zwischen denen der Nutzer wechseln kann, um im jeweils aktiven Kanal Nachrichten zu schreiben. Intern wird eine Datenstruktur über den User geführt, in der auch alle Kanäle vermerkt sind, in denen er Mitglied ist 30

31 Entwicklerdokumentation 5 ERFÜLLUNG DER KRITERIEN /M250/ Ein beliebiger Chatteilnehmer eines geschlossenen Kanals verwaltet dessen Schlüssel Dieser Chatteilnehmer antwortet auf die Schlüsselanfragen von außenstehenden Nutzern, die beitreten wollen und sendet, falls genehmigt, den Schlüssel an den außenstehenden Nutzer Nachrichten /M300/ Nachrichten werden Hop-by-Hop im Netz weitergeleitet Mithilfe der Routingtabelle wird immer der möglichst beste Peer, über den eine Nachricht zum Endziel gelangt, ausgewählt. Zusätzlich wird überprüft ob man immer wieder die selbe Nachricht weiterleiten soll. Wenn dies nämlich der Fall ist muss eine andere Route gefunden werden (vgl. /M20/) /M310/ Nachrichten in geschlossenen Kanälen werden verschlüsselt übertragen Verschlüsselt erfolgt symmetrisch mit Hilfe des Kanalschlüssels, der beim Erstellen des Kanals ebenfalls erstellt wurde /M320/ Nachrichten die nicht zugestellt werden konnten, werden zwischengespeichert und später übertragen Regelmäßige Überprüfung der Routingtabelle, ob das Ziel erreichbar ist. Nach Ablauf der TTL wird ein NACK zurückgesendet und die Nachricht verworfen /M330/ Nachrichten an den anonymen Kanal werden nach dem Zwiebelprinzip anonymisiert Mehrfachverschlüsselung der Nachricht an eine Reihe von Empfängern, die diese nacheinander entschlüsseln, bevor sie beim Ziel ankommt, welches sie dann im Netz flutet (an alle erreichbaren Teilnehmer sendet). So ist eine Rückverfolgung sehr unwahrscheinlich /M340/ Nachrichten können sowohl Text als auch Binärdaten enthalten Falls ein Benutzer einen Anhang (Text- oder Binärdatei) auswählt, wird dieser im Base64 Format in die Nachricht eingebaut. Dabei ist die maximale Nachrichtengröße von Byte zu beachten /M350/ Verzögerte Nachrichten werden dem Chatteilnehmer besonders angezeigt und in den Kontext eingeordnet Hervorhebung der später eingehenden Nachricht, sowie einen Hinweis auf deren Eingang 5.2 Wunschkriterien Die Erfüllung folgender Kriterien für das abzugebende Produkt wird angestrebt: /W10/ Eine Liste von Chatteilnehmern, deren Nachrichten man nicht erhalten möchte (ignore list) Nachrichten von Nutzern auf der Liste werden verworfen und nicht angezeigt. Nicht möglich im anonymen Kanal 31

32 Entwicklerdokumentation 5 ERFÜLLUNG DER KRITERIEN /W30/ Der Chatteilnehmer erhält Statusinformationen über das Netz in dem er sich befindet Daten, die der Client speichert und verwaltet, werden dem Nutzer auf geeignete Weise angezeigt 5.3 Abgrenzungskriterien Folgende Funktionalität wird nicht durch das Produkt, sondern wie folgt beschrieben anderweitig erfüllt: /A10/ Der Chatteilnehmer muss eigenständig die Konfiguration seiner Hardware übernehmen Einstellung der Funknetzwerkkarte auf Ad-Hoc Modus bzw. eintragen der Peers in die Liste für den Infrastrukturmodus 32

33 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF 6 Implementierungsentwurf 6.1 Gesamtsystem Abbildung 29: Komponenten von MAdChat Erläuterung: MAdChat besteht aus madchat (dem Front-End mit GUI) und libmadchat. Das Front-End ist nur dafür verantwortlich, mit dem Nutzer zu interagieren, während alles, was das Chatprotokoll betrifft, Aufgabe der Library ist. Die einzelnen Komponenten von libmadchat sind UDP, Channel, Message, User, Event, Crypt, RoutingTable und Network. 33

34 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF 6.2 Implementierung der Komponente S10: UDP Die Komponente UDP kümmert sich um die einzelnen UDP-Pakete Klassendiagramm Abbildung 30: Klassendiagramm - UDP 34

35 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Klasse UDP Erläuterungen: Durch diese Klasse kann die Klasse Network UDP-Pakete empfangen und versenden. Da das direkt geschieht, ohne auf das Chatprotokoll zu beachten, haben andere Klassen oder gar das Front-End kein Zugriff darauf. Notwendige Attribute mutexin : ost::mutex mutexout : ost::mutex network : Network broadcast : ost::udpbroadcast socketin : ost::udpsocket socketout : ost::udpsocket port : ost::tpport t localpeer : PeerAddr localhostname : std::string recbuf [63000] : char inframode : Infrastructure receivedids : SharedSearchRingBuffer< std::string, 1000 > receivedanon : SharedSearchRingBuffer< std::string, 10 > awaitingkey : SharedList< Message * > listener : MAdChat::Udp::Listener * sendhellos : MAdChat::Udp::SendHellos * sender : MAdChat::Udp::Sender * 35

36 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - Udp(Network &network, ost::tpport t Konstruktor der Klasse UDP. port=8888) F40 send(message&msg, Sendet eine Nachricht vom Typ Message ost::ipv4address ip, ost::tpport t an die angegebene IP. port=8888) - broadcast(message &msg) Sendet eine Nachricht an alle Benutzer im Netz. - receive() : Message Empfängt eine Nachricht. - getinfrastructure() : Infrastructure Gibt ein Objekt vom Typ Infrastructure zurück. - getlocalhostname() : std::string Gibt den Namen des lokalen Host zurück. - setlocalpeer(const PeerAddr peer) Setzt die Adresse des lokalen Peers. F40 queueforsending(message *msg) Reiht eine Nachricht zum Senden ein. - start() Startet das Senden von HELLOmessages sowie den Listener und Sender. - send(ost::udpsocket *udpsocket, Interne Funktion zum Senden eines const std::string &str) Strings über einen UDPSocket. - nack(message *msg) Ablehnung einer Nachricht. Notwendige Kommunikationspartner Name der Klasse Network Message NAckMessage ObscureMessage Dauerhaft? Klasse Listener Erläuterungen: Die Klasse Listener fragt ständig nach neuen Nachrichten und evaluiert diese. Notwendige Attribute parent : Udp * 36

37 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - Listener(Udp &parent) Der Konstruktor der Klasse. - run() Funktion zum starten des Listener. Notwendige Kommunikationspartner Name der Klasse Udp Dauerhaft? ja Klasse Sender Erläuterungen: Die Klasse Sender reiht Nachrichten zum Senden in eine Liste ein. Notwendige Attribute parent : Udp * sendqueue : SharedQueue< Message * > awaitingack : SharedMultiMap< std::string, Message * > Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - Sender(Udp &parent) Konstruktor der Klasse. - run() Funktion zum Starten. - queuemessage(message *msg) Reiht die Nachricht zum Senden ein. Notwendige Kommunikationspartner Name der Klasse Udp Dauerhaft? Klasse SendHellos Erläuterungen: Diese Klasse ist für das ständige Versenden von HELLO-messages zuständig. Notwendige Attribute parent : Udp * id : std::string 37

38 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - SendHellos (Udp &parent, const std::string &id) Konstruktor der Klasse. - run() Startet das Senden von HELLOmessages. Notwendige Kommunikationspartner Name der Klasse Udp Dauerhaft? 38

39 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF 6.3 Implementierung der Komponente S20: Channel In der Komponente Channel sind die Klassen für die Repräsentation von öffentlichen, privaten und dem anonymen Kanal enthalten. Sie ist Teil der Bibliothek Klassendiagramm Abbildung 31: Klassendiagramm - Channel 39

40 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Klasse Channel Erläuterungen: Kapselt die Eigenheiten eines generischen Kanals. Von ihr werden die Klassen PublicChannel, PrivateChannel und AnonymChannel abgeleitet und spezialisiert. Notwendige Attribute mutex : ost::mutex manager : ChannelManager * nochannel : bool name : std::string id : std::string keytype : KeyType key : std::string members : UserList * waitingconfirm : UserList * lastchn : time t existent : bool keytypenames [] : static const char * 40

41 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - Channel(ChannelManager &manager, Konstruktor der Klasse. const std::string &na- me, const std::string &id, const std::string &key=, KeyType keytype=key NOKEY) - isexistent() Gibt Kanel zurück falls dieser noch im Netz ist. - getname() Gibt den Kanalnamen zurück. - getid() Gibt die KanalID zurück. - getkeytype() Gibt den Schlüsseltyp zurück. - getkey() Gibt den Schlüssel zurück. F60 getmembers() Überprüft, ob der User mit der angegeben ID in dem Kanal Mitglied ist. Wenn ja wird dieses Mitglied zurückgegeben. - getlastchannel() Gibt Wert zurück wenn die letzte CHANNEL-message erhalten wurde. - getnochannel() Gibt an ob eine CHANNEL-message gesendet werden konnte oder nicht. - setkey(const std::string &key, KeyType Setzt Schlüssel vom Typ KeyType. type) - setkey(const std::string &key, const Setzt Schlüssel. std::string &type) - empty() Gibt zurück ob im Kanal Nutzer sind. - hasmember(const std::string &id) Gibt an ob der Nutzer im Kanal ist. - receivedchannel() CHANNEL-message wurde empfangen. F11 join() Betrete den Kanal. F12 leave() Verlasse den Kanal. - confirmjoin(const UserPtr &user) Bestätigt den Beitritt eines anderen Nutzers. F40 send(chatmessage &msg) Sendet eine Nachricht im aktuellen Kanal. - createchannelmessage() Erzeugt eine CHANNEL-message. - getkeytype(const std::string &type) Gibt den Schlüsseltyp im String zurück. - getkeytype (KeyType type) Gibt den Schlüssel als String zurück. - sendinternal(channeledmessage &msg) Interne Methode zum Senden von Nachrichten. 41

42 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Notwendige Kommunikationspartner Name der Klasse ChannelManager UserManager JoinMessage LeaveMessage Dauerhaft? Klasse ClosedChannel Erläuterungen: Repräsentiert einen geschlossenen Kanal.Ein geschlossener Kanal hat einen Schlüssel, mit dem die Übertragungen verschlüsselt werden. Notwendige Attribute keine Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - ClosedChannel(ChannelManager Konsruktor der Klasse. &manager, const std::string &name, const std::string &id, const std::string &key=, KeyType keytype=key NOKEY) F21 join() Funktion zum Beitreten eines geschlossenen Kanals. - leave() Verlässt den Kanal. - confirmjoin(const UserPtr &user) Bestätigt ein Beitrittsversuch eines anderen Nutzers. F40 send(chatmessage &msg) Sendet eine verschlüsselte Nachricht innerhalb des Kanals. - createchannelmessage() Generiert eine CHANNEL-message. - merge(userlist &users, const Private Funktion. std::string &id=) - join(const JoinMessage &msg) Private Funktion, die eine JOINmessage verarbeitet. - leave(const LeaveMessage &msg) Private Funktion, die eine LEAVEmessage verarbeitet. Notwendige Kommunikationspartner Name der Klasse ChannelManager Dauerhaft? 42

43 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Klasse PublicChannel Erläuterungen: Die Klasse PublicChannel repräsentiert einen offenen Kanal innerhalb des Netzes. Notwendige Attribute keine Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - PublicChannel(ChannelManager Der Konstruktor. &manager, const std::string &name, const std::string &id) F10 join() Betritt einen öffentlichen Kanal. F12 leave() Verlassen eines öffentlichen Kanals. F40 send(chatmessage &msg) Senden einer Nachricht innerhalb des Kanals. - createchannelmessage() Generiert eine CHANNEL-message. - merge(userlist &users, const Private Funktion, die zwei Kanäle zusammfügt. std::string &id=) - join(const JoinMessage &msg) Private Funktion, die eine JOINmessage verarbeitet. - leave(const LeaveMessage &msg) Private Funktion, die eine LEAVEmessage verarbeitet. Notwendige Kommunikationspartner Name der Klasse ChannelManager Dauerhaft? ja Klasse AnonymousChannel Erläuterungen: Diese Klasse beinhaltet die Funktionen für den anonymen Kanal. Notwendige Attribute keine 43

44 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - AnonymousChannel(ChannelManager Der Konstruktor. &manager) F40 send(chatmessage &msg) Sendet Nachrichten innerhalb des Kanals. - createchannelmessage() Generiert eine CHANNEL-message. - merge(userlist &users, const Vereinigt zwei anonyme Kanäle. std::string &id=) - join(const JoinMessage &msg) Private Funktion, die eine JOINmessage verarbeitet. - leave(const LeaveMessage &msg) Private Funktion, die eine LEAVEmessage verarbeitet. Notwendige Kommunikationspartner Name der Klasse ChannelManager Dauerhaft? Klasse ChannelManager Erläuterungen: Der ChannelManager verwaltet die einzelnen Kanäle im Netz. Notwendige Attribute network : Network * channels : ChannelList nametoids : IdList anonchn : ChannelPtr sendchn : MAdChat::ChannelManager::SendChannel * 44

45 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Aufgabe Aufgaben-ID Name der Aufgabe Beschreibung - ChannelManager(Network &network) Der Konstruktor. - getchannels() Gibt alle bekannten Channels zurück. - getchannelbyid(const std::string Findet einen Kanal anhand der ID. &id) F10 createchannel(const std::string &name, bool closed, UserList &members) Erstellt einen Kanael mit vorhandenen Nutzern. F10 createchannel(const std::string &name, Erstellt einen Kanal. bool closed) - start() Startet das Senden von CHANNELmessages. - addchannel(const ChannelPtr &chn, UserList &members) Fügt einen vorhandenen Kanal mit seinen Nutzern hinzu. - addchannel(const std::string &name, Fügt einen vorhandenen Kanal hinzu. const std::string &id, bool closed, UserList &members) - delchannel(const ChannelPtr &chn) Löscht einen Kanal. - send(channeledmessage &msg) Sendet eine Nachricht vom Typ ChanneledMessage. - addchannel(const ChannelPtr &chn) Einfache Funktion zum Hinzufügen von Kanälen. - addchannel(const ChannelMessage Fügt einen Kanal entsprechend einer &msg) CHANNEL-message hinzu. Notwendige Kommunikationspartner Name der Klasse Channel AnonymousChannel PublicChannel ClosedChannel ChannelMessage SendChannel Network Dauerhaft? 45

46 6 IMPLEMENTIERUNGSENTWURF Entwicklerdokumentation 6.4 Implementierung der Komponente S30: Message Die Komponete Message hat die Aufgabe Nachrichten des Systems darzustellen, sie aus den empfangenen XML-Daten zu generieren oder aus ihnen XML-Daten zu generieren und zu validieren Klassendiagramm Abbildung 32: Klassendiagramm - Message 46

47 Entwicklerdokumentation 6 IMPLEMENTIERUNGSENTWURF Klasse Message Erläuterungen: Diese Klasse repräsentiert eine Nachricht die gesendet oder empfangen wurde. Die Klasse Network hat uneingeschränkten Zugriff auf alle Attribute, um protokollspezifische Nachrichten zu generieren. Alle anderen Teile des Systems haben nur eingeschränkten Zugriff auf die Attribute. Von dieser Klasse abgeleitet werden die einzelnen Nachrichtentypen wie sie in der Protokollspezifikation beschrieben wurden: HELLO-message, ACK-message, NACKmessage, GETCERTIFICATE-message, CERTIFICATE-message, ROUTING-message und OBSCUREmessage. Notwendige Attribute type : Type id : std::string ttl : unsigned int delay : unsigned int ownsignature : bool signtype : SignType signature : std::string unknownsigntype : std::string sender : std::string receivers : std::list< std::string > peer : PeerAddr receivedtime : time t idcount: static int signtypenames [] : static const char * 47

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Softwareentwicklungspraktikum Sommersemester Grobentwurf Ad-hoc Chatsystem für Mobile Netze Gruppe 4 Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig Institut für Betriebssysteme und Rechnerverbund

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf Ad-hoc Chatsystem für Mobile Netze Gruppe 4 Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig Institut für Betriebssysteme und Rechnerverbund

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Ad-Hoc Chatsystem für mobile Netze Barracuda

Ad-Hoc Chatsystem für mobile Netze Barracuda Ad-Hoc Chatsystem für mobile Netze Barracuda Softwareentwicklungspraktikum Sommersemester 2007 Auftraggeber Technische Universität Institut für Betriebssysteme und Rechnerverbund Prof. Dr.-Ing. Lars Wolf

Mehr

Ad-hoc Chatsystem für mobile Netze

Ad-hoc Chatsystem für mobile Netze Softwareentwickungspraktikum Sommersemester 2007 Ad-hoc Chatsystem für mobile Netze Grobentwurf Oliver Wellnitz Sven Lahde Wolf-Bastian Pöttner Institut für Betriebssysteme und Rechnerverbund Technische

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Feinentwurf Softwareentwicklungspraktikum Sommersemester 2007 Feinentwurf Auftraggeber Technische Universität Braunschweig

Mehr

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten. 1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen

DELFI. Benutzeranleitung Dateiversand für unsere Kunden. Grontmij GmbH. Postfach 34 70 17 28339 Bremen. Friedrich-Mißler-Straße 42 28211 Bremen Grontmij GmbH Postfach 34 70 17 28339 Bremen Friedrich-Mißler-Straße 42 28211 Bremen T +49 421 2032-6 F +49 421 2032-747 E info@grontmij.de W www.grontmij.de DELFI Benutzeranleitung Dateiversand für unsere

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Dokumentation Black- und Whitelists Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser Inhalt INHALT 1 Kategorie Black- und Whitelists... 2 1.1 Was sind Black- und Whitelists?...

Mehr

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 - Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung

Mehr

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

SIMP 1.01 Protokollspezifikation (Mindestanforderung) SIMP 1.01 Protokollspezifikation (Mindestanforderung) Autor: Harald Pittesser, Dokumentversion: 0.5 beta Eigenschaften SIMP (Simple Instant Message Protocol) ist ein Instant Message Protokol welches folgende

Mehr

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG it4sport GmbH HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG Stand 10.07.2014 Version 2.0 1. INHALTSVERZEICHNIS 2. Abbildungsverzeichnis... 3 3. Dokumentenumfang... 4 4. Dokumente anzeigen... 5 4.1 Dokumente

Mehr

Outlook Web App 2013 designed by HP Engineering - powered by Swisscom

Outlook Web App 2013 designed by HP Engineering - powered by Swisscom Outlook Web App 2013 designed by HP Engineering - powered by Swisscom Dezember 2014 Inhalt 1. Einstieg Outlook Web App... 3 2. Mails, Kalender, Kontakten und Aufgaben... 5 3. Ihre persönlichen Daten...

Mehr

inviu routes Installation und Erstellung einer ENAiKOON id

inviu routes Installation und Erstellung einer ENAiKOON id inviu routes Installation und Erstellung einer ENAiKOON id Inhaltsverzeichnis inviu routes... 1 Installation und Erstellung einer ENAiKOON id... 1 1 Installation... 1 2 Start der App... 1 3 inviu routes

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Anleitung Postfachsystem Inhalt

Anleitung Postfachsystem Inhalt Anleitung Postfachsystem Inhalt 1 Allgemeines... 2 2 Einloggen... 2 3 Prüfen auf neue Nachrichten... 2 4 Lesen von neuen Nachrichten... 3 5 Antworten auf Nachrichten... 4 6 Löschen von Nachrichten... 4

Mehr

Synchronisations- Assistent

Synchronisations- Assistent TimePunch Synchronisations- Assistent Benutzerhandbuch Gerhard Stephan Softwareentwicklung -und Vertrieb 25.08.2011 Dokumenten Information: Dokumenten-Name Benutzerhandbuch, Synchronisations-Assistent

Mehr

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Flashfragen in ILIAS Test & Assessment Helmut Schottmüller Veröffentlicht Januar 2009 Copyright 2009 Helmut Schottmüller Inhaltsverzeichnis 1.

Mehr

Bedienungsanleitung für den SecureCourier

Bedienungsanleitung für den SecureCourier Bedienungsanleitung für den SecureCourier Wo kann ich den SecureCourier nach der Installation auf meinem Computer finden? Den SecureCourier finden Sie dort, wo Sie mit Dateien umgehen und arbeiten. Bei

Mehr

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013 Einbindung des MC-Hx Modul als MODBus TCP Slave MB DataTec GmbH Stand: 01.2013 Kontakt: MB DataTec GmbH Friedrich Ebert Str. 217a 58666 Kierspe Tel.: 02359 2973-22, Fax 23 Web : www.mb-datatec.de e-mail:

Mehr

BENUTZERHANDBUCH für. www.tennis69.at. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen

BENUTZERHANDBUCH für. www.tennis69.at. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen BENUTZERHANDBUCH für www.tennis69.at Inhaltsverzeichnis Einleitung 1. Anmeldung 2. Rangliste ansehen 3. Platzreservierung 4. Forderungen anzeigen 5. Forderung eintragen 6. Mitgliederliste 7. Meine Nachrichten

Mehr

Microsoft Access 2010 Navigationsformular (Musterlösung)

Microsoft Access 2010 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2010 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2010) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach - Projekt Personalverwaltung Erstellt von Inhaltsverzeichnis 1Planung...3 1.1Datenbankstruktur...3 1.2Klassenkonzept...4 2Realisierung...5 2.1Verwendete Techniken...5 2.2Vorgehensweise...5 2.3Probleme...6

Mehr

Handbuch Groupware - Mailserver

Handbuch Groupware - Mailserver Handbuch Inhaltsverzeichnis 1. Einführung...3 2. Ordnerliste...3 2.1 E-Mail...3 2.2 Kalender...3 2.3 Kontakte...3 2.4 Dokumente...3 2.5 Aufgaben...3 2.6 Notizen...3 2.7 Gelöschte Objekte...3 3. Menüleiste...4

Mehr

Anbindung des eibport an das Internet

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

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen Dateiname: ecdl5_01_02_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Access

Mehr

MMS - Update auf Version 4.4

MMS - Update auf Version 4.4 MMS - Update auf Version 4.4 1. Übersicht Folgende MMS Programmverbesserungen/-neuerungen wurden u. a. vorgenommen: - Die Eingabemaske für Meinungen wurde komplett überarbeitet (siehe Punkt 3). - Der E-Mail-Generator

Mehr

Electronic Systems GmbH & Co. KG

Electronic Systems GmbH & Co. KG Anleitung zum Anlegen eines POP3 E-Mail Kontos Bevor die detaillierte Anleitung für die Erstellung eines POP3 E-Mail Kontos folgt, soll zuerst eingestellt werden, wie oft E-Mail abgerufen werden sollen.

Mehr

Einrichtung von Mozilla Thunderbird

Einrichtung von Mozilla Thunderbird Einrichtung von Mozilla Thunderbird Im Folgenden finden Sie eine Anleitung zur Konfiguration des E-Mail-Clients Mozilla Thunderbird zur Verwendung Ihres E-Mail-Account. Schritt 1 Wenn Sie Thunderbird nach

Mehr

Abwesenheitsnotiz im Exchange Server 2010

Abwesenheitsnotiz im Exchange Server 2010 Abwesenheitsnotiz im Exchange Server 2010 1.) Richten Sie die Abwesenheitsnotiz in Outlook 2010 ein und definieren Sie, an welche Absender diese gesendet werden soll. Klicken Sie dazu auf Datei -> Informationen

Mehr

SMS/ MMS Multimedia Center

SMS/ MMS Multimedia Center SMS/ MMS Multimedia Center der BEYOND THE NET GmbH BEYOND THE NET GmbH Seite 1 Unser Multimedia Center ist eine WEB basierende Anwendung, die es ermöglicht von einer Zentrale aus, viele Mitarbeiter zu

Mehr

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook (2002-2007) Zentrum für Datenverarbeitung der Universität Tübingen Inhalt 1. Die Funambol Software... 3 2. Download und Installation... 3 3.

Mehr

E Mail Versand mit der Schild NRW Formularverwaltung

E Mail Versand mit der Schild NRW Formularverwaltung -Seite 1- E Mail Versand mit der Schild NRW Formularverwaltung Seit der Version 1.12.3.97 der Reportverwaltung ist die Möglichkeit integriert, E Mails direkt, d.h. ohne Umweg über einen externen Mailclient

Mehr

Guide DynDNS und Portforwarding

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

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal

Mehr

Moni KielNET-Mailbox

Moni KielNET-Mailbox Bedienungsanleitung Moni -Mailbox Die geht für Sie ran! Wann Sie wollen, wo immer Sie sind! im Festnetz Herzlichen Glückwunsch zu Moni Ihrer persönlichen -Mailbox! Wir haben Ihre persönliche -Mailbox eingerichtet.

Mehr

Massenversand Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Massenversand Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Massenversand Massenversand Seite 1 Massenversand Seite 2 Inhaltsverzeichnis 1. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 2. STAMMDATEN FÜR DEN MASSENVERSAND 4 2.1 ALLGEMEINE STAMMDATEN 4 2.2

Mehr

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken Upload- / Download-Arbeitsbereich Stand: 27.11.2013 Eine immer wieder gestellte Frage ist die, wie man große Dateien austauschen

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten mit UMLed und Delphi Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf

Mehr

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...

Mehr

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse ) Die Versendung von Eintragungsnachrichten und sonstigen Nachrichten des Gerichts über EGVP an den Notar ist nicht möglich. Was kann der Notar tun, um den Empfang in seinem Postfach zu ermöglichen? In zahlreichen

Mehr

Mail-Signierung und Verschlüsselung

Mail-Signierung und Verschlüsselung Mail-Signierung und Verschlüsselung ab Release-Version 2013.02, ein kostenlos zur Verfügung gestelltes Feature! Elektronische Post ist aus unserem privaten und beruflichen Leben nicht mehr wegzudenken.

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Anwendungsbeispiele Sign Live! Secure Mail Gateway

Anwendungsbeispiele Sign Live! Secure Mail Gateway Anwendungsbeispiele Sign Live! Secure Mail Gateway Kritik, Kommentare & Korrekturen Wir sind ständig bemüht, unsere Dokumentation zu optimieren und Ihren Bedürfnissen anzupassen. Ihre Anregungen sind uns

Mehr

Erstellen von Mailboxen

Erstellen von Mailboxen Seite 1 von 5 Erstellen von Mailboxen Wenn Sie eine E-Mail-Adresse anlegen möchten, mit Ihrem Domain-Namen, z. B. IhrName@Domain.com, müssen Sie eine Mailbox erstellen. Gehen Sie hierzu wie folgt vor:

Mehr

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1

CMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1 CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7

Mehr

Hochschulrechenzentrum

Hochschulrechenzentrum #51 Version 1 Um Ihre E-Mails über den Mailserver der ZEDAT herunterzuladen oder zu versenden, können Sie das in den Browser Opera integrierte Mailprogramm verwenden. Die folgende bebilderte Anleitung

Mehr

ecaros2 - Accountmanager

ecaros2 - Accountmanager ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf

Mehr

Sichern auf den zentralen TSM-Servern unter Windows. Sichern auf den zentralen TSM-Servern unter Windows

Sichern auf den zentralen TSM-Servern unter Windows. Sichern auf den zentralen TSM-Servern unter Windows Sichern auf den zentralen TSM-Servern unter Windows v. 1.0 Juni 2016 1 Inhaltverzeichnis Vorwort... 3 Daten über die grafische Benutzungsschnittstelle (GUI) sichern... 4 Daten über die grafische Benutzerschnittstelle

Mehr

ELSTER Daten versenden

ELSTER Daten versenden ELSTER Daten versenden Hauptmenü: Über den Haupt-Menüpunkt ELSTER gelangen Sie zu allen wichtigen Funktionen rund um ELSTER. - Verfügbarkeit: Sie können hierüber die Verfügbarkeit der ELSTER-Server für

Mehr

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag Anton Ochsenkühn amac BUCH VERLAG Ecxel 2016 für Mac amac-buch Verlag 2 Word-Dokumentenkatalog! Zudem können unterhalb von Neu noch Zuletzt verwendet eingeblendet werden. Damit hat der Anwender einen sehr

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

AKTUALISIERT - Einrichten von imessage auf mehreren Geräten

AKTUALISIERT - Einrichten von imessage auf mehreren Geräten AKTUALISIERT - Einrichten von imessage auf mehreren Geräten Inhalt Kapitel 1 Kapitel 2 Kapitel 3 Kapitel 4 Kapitel 5 Zusätzliche E- Mailadressen für imessage/facetime Apple- ID erstellen imessage im iphone

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

Mehr

Sichere E-Mail Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere E-Mail. der

Sichere E-Mail Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere E-Mail. der Sichere E-Mail der Nutzung von Zertifikaten / Schlüsseln zur sicheren Kommunikation per E-Mail mit der Sparkasse Germersheim-Kandel Inhalt: 1. Voraussetzungen... 2 2. Registrierungsprozess... 2 3. Empfang

Mehr

Installation DataExpert Paynet-Adapter (SIX)

Installation DataExpert Paynet-Adapter (SIX) Projekt IGH DataExpert Installation DataExpert Paynet-Adapter (SIX) Datum: 25.06.2012 Version: 2.0.0.0 Inhaltsverzeichnis 1 Einleitung...... 2 1.1.NET Framework... 2 2 Installation von "DE_PaynetAdapter.msi"...

Mehr

Dokumentation zur Versendung der Statistik Daten

Dokumentation zur Versendung der Statistik Daten Dokumentation zur Versendung der Statistik Daten Achtung: gem. 57a KFG 1967 (i.d.f. der 28. Novelle) ist es seit dem 01. August 2007 verpflichtend, die Statistikdaten zur statistischen Auswertung Quartalsmäßig

Mehr

Kontakte Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Kontakte Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Kontakte Kontakte Seite 1 Kontakte Seite 2 Inhaltsverzeichnis 1. ALLGEMEINE INFORMATIONEN ZU DEN KONTAKTEN 4 2. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 3. STAMMDATEN FÜR DIE KONTAKTE 4 4. ARBEITEN

Mehr

Hochschulrechenzentrum. chschulrechenzentrum #96. Freie Universität Berlin

Hochschulrechenzentrum. chschulrechenzentrum #96. Freie Universität Berlin #96 Version 1 Konfiguration von Outlook 2010 Um Ihre E-Mails über den Mailserver der ZEDAT herunterzuladen oder zu versenden, können Sie das Programm Outlook 2010 verwenden. Die folgende Anleitung demonstriert

Mehr

Nutzung des Retain-Archivs

Nutzung des Retain-Archivs Nutzung des Retain-Archivs Das Archiv dient zur Langzeitspeicherung von Mail-Daten. Diese werden unveränderbar bis zu 10 Jahren aufbewahrt und dienen zur Entlastung des Online-Postfaches. Seite 1 Bitte

Mehr

Windows Vista Security

Windows Vista Security Marcel Zehner Windows Vista Security ISBN-10: 3-446-41356-1 ISBN-13: 978-3-446-41356-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41356-6 sowie im Buchhandel

Mehr

UMSTELLUNG DER RÖNTGEN-SCHNITTSTELLE DÜRR-DBSWIN AUF DÜRR-VDDS

UMSTELLUNG DER RÖNTGEN-SCHNITTSTELLE DÜRR-DBSWIN AUF DÜRR-VDDS UMSTELLUNG DER RÖNTGEN-SCHNITTSTELLE DÜRR-DBSWIN AUF DÜRR-VDDS Pionier der Zahnarzt-Software. Seit 1986. 1 Seite 1/5 Diese Anleitung soll Ihnen dabei helfen, eine bestehende DBSWIN-Anbindung über den Patientendatenexport

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

L&S Emotion App - ios

L&S Emotion App - ios 1 Navigation Dieser Punkt beschreibt die Bildschirme der App. Start-Bildschirm Die App verschickt Discovery Nachrichten und wartet auf Antworten von WiFi Emotion. Während dessen wird Activity Inticator

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Benutzerhandbuch - Elterliche Kontrolle

Benutzerhandbuch - Elterliche Kontrolle Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü

Mehr

Mailverteiler. HowTo. Erstellen von Mailverteilern im mytum Portal. Version 1.0. preliminary

Mailverteiler. HowTo. Erstellen von Mailverteilern im mytum Portal. Version 1.0. preliminary Mailverteiler HowTo Erstellen von Mailverteilern im mytum Portal Version 1.0 preliminary TUM WWW & Online Services Richard-Wagner-Strasse 18 D-80333 München E-Mail: info@ze.tum.de Mailverteiler HowTo i

Mehr

How-To-Do. Fernwartung einer VIPA Steuerung via Ethernet

How-To-Do. Fernwartung einer VIPA Steuerung via Ethernet How-To-Do Fernwartung einer VIPA Steuerung via Ethernet Inhaltsverzeichnis 1 Allgemein... 2 1.1 Information... 2 1.2 Hinweis... 2 2 Schematischer Aufbau... 3 2.1 Beispielaufbau... 3 3 Plug n Route... 4

Mehr

ID VisitControl. Dokumentation Administration. 2015 Equitania Software GmbH cmc Gruppe Seite 1

ID VisitControl. Dokumentation Administration. 2015 Equitania Software GmbH cmc Gruppe Seite 1 ID VisitControl Dokumentation Administration 2015 Equitania Software GmbH cmc Gruppe Seite 1 Inhalt 1. Anmeldung... 3 2. Benutzer anlegen oder bearbeiten... 4 2.1. Benutzer aus LDAP Anbindung importieren/updaten...

Mehr

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden.

Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden. 1 Informationen zum F*EX Service von BelWü Sie können diesen Service verwenden, um fast beliebig große Dateien auch über 2 GB zu versenden. 2 Registrierung für den Service Auf fex.belwue.de finden Sie

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Pflichtenheft

Softwareentwicklungspraktikum Sommersemester 2007. Pflichtenheft Ad-hoc Chatsystem für Mobile Netze Gruppe 4 Softwareentwicklungspraktikum Sommersemester 2007 Pflichtenheft Auftraggeber Technische Universität Braunschweig Institut für Betriebssysteme und Rechnerverbund

Mehr

Installation und Nutzung des Fax-Service KU.Fax

Installation und Nutzung des Fax-Service KU.Fax Installation und Nutzung des Fax-Service KU.Fax Auf der Basis der Fax-Software Shamrock CapiFax bietet das Universitätsrechenzentrum berechtigten Benutzern einen einfach anzuwendenden Fax-Service, KU.Fax

Mehr

teamsync Kurzanleitung

teamsync Kurzanleitung 1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier

Mehr

Bedienungsanleitung. Anrufbeantworter im Netz

Bedienungsanleitung. Anrufbeantworter im Netz Bedienungsanleitung Anrufbeantworter im Netz Bedienungsanleitung Anrufbeantworter im Netz Inhaltsverzeichnis Inhaltsverzeichnis Version 07/06 VP 1 Einleitung 4 2 Signalisierung von Sprachnachrichten (Posteingang)

Mehr

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.

Lieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering. Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR

Mehr

Scanning- Reservationslösung Gemeinden Benutzerhandbuch

Scanning- Reservationslösung Gemeinden Benutzerhandbuch Scanning- Reservationslösung Gemeinden Benutzerhandbuch Scan Center Version 1.1-02.02.2009 1 von 15 Inhaltsverzeichnis 1 Beschreibung der Applikation...3 1.1 Benutzerverwaltung...3 1.2 Importmodul...3

Mehr

STORES2. Operation Manual Version 1.23.7. Warenretoure mit Zustimmung des Headquarter

STORES2. Operation Manual Version 1.23.7. Warenretoure mit Zustimmung des Headquarter STORES2 Operation Manual Version 1.23.7 Pag 2 da 16 1. Überprüfen Sie, ob Sie noch übrige Colli Strichcodes haben, die Sie früher erstellt, aber noch nicht verwendet haben. 2. Ansonsten drucken Sie sich

Mehr

Datenbanken Kapitel 2

Datenbanken Kapitel 2 Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,

Mehr

ROFIN App Benutzerhandbuch. Version 1.0

ROFIN App Benutzerhandbuch. Version 1.0 ROFIN App Benutzerhandbuch Version 1.0 Inhaltsverzeichnis 1. Beschreibung 2. Passwort und Einstellungen 3. Support Tab 4. Vertriebs Tab 5. Web Tab 6. Häufig gestellte Fragen BESCHREIBUNG Die ROFIN App

Mehr

[Leitfaden] [Sicher kommunizieren mit der Stadt Konstanz (VPS)] Einleitung. [Stadt Konstanz] [Herausgeber: Hauptamt] [Stand: 2010]

[Leitfaden] [Sicher kommunizieren mit der Stadt Konstanz (VPS)] Einleitung. [Stadt Konstanz] [Herausgeber: Hauptamt] [Stand: 2010] [Leitfaden] Einleitung [Sicher kommunizieren mit der Stadt Konstanz (VPS)] [Stadt Konstanz] [Herausgeber: Hauptamt] [Stand: 2010] 1 Inhalt 1 Einleitung... 2 2 Nachrichten senden (ohne Registrierung)...

Mehr

MARCANT - File Delivery System

MARCANT - File Delivery System MARCANT - File Delivery System Dokumentation für Administratoren Der Administrationsbereich des File Delivery Systems ist ebenfall leicht zu bedienen. Die wichtigsten drei Abschnitte sind: 1. Profil, 2.

Mehr

DRK Ortsverein Henstedt-Ulzburg e.v. DRK Möbelbörse. Benutzerhandbuch. Version 1.2

DRK Ortsverein Henstedt-Ulzburg e.v. DRK Möbelbörse. Benutzerhandbuch. Version 1.2 DRK Ortsverein Henstedt-Ulzburg e.v. DRK Möbelbörse Benutzerhandbuch Inhaltsverzeichnis Sinn und Zweck der Möbelbörse...3 Handhabung der Oberfläche... 3 Erklärung der einzelnen Menüteile...3 Bedingungen...

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. Der Serienversand Was kann man mit der Maske Serienversand machen? 1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden. 2. Adressen auswählen,

Mehr

Aufklappelemente anlegen

Aufklappelemente anlegen Aufklappelemente anlegen Dieses Dokument beschreibt die grundsätzliche Erstellung der Aufklappelemente in der mittleren und rechten Spalte. Login Melden Sie sich an der jeweiligen Website an, in dem Sie

Mehr

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

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

Mehr

2 Skype zum ersten Mal öffnen und einrichten

2 Skype zum ersten Mal öffnen und einrichten 1 Skype starten Skype muss zunächst auf Ihrem Rechner installiert sein. 2 Skype zum ersten Mal öffnen und einrichten Dazu öffnen Sie Skype mit einem Doppelklick auf obiges Symbol, wenn es auf dem Desktop

Mehr

BOKUbox. Zentraler Informatikdienst (ZID/BOKU-IT) Inhaltsverzeichnis

BOKUbox. Zentraler Informatikdienst (ZID/BOKU-IT) Inhaltsverzeichnis BOKUbox BOKUbox ist ein Spezialservice für alle Mitarbeiter/innen der BOKU. Kurzfristiger Austausch von vielen und großen Dateien kann Ihre Mailbox schnell überlasten. BOKUbox ist die perfekte Alternative

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000 Folgende Anleitung beschreibt, wie Sie ein bestehendes Postfach in Outlook Express, bzw. Microsoft Outlook bis Version 2000 einrichten können. 1. Öffnen Sie im Menü die Punkte Extras und anschließend Konten

Mehr

sidoku sidoku EXPRESS Release 2.3.1 Stand: 29.04.2014 erstellt von: EXEC Software Team GmbH Südstraße 24 56235 Ransbach-Baumbach www.exec.

sidoku sidoku EXPRESS Release 2.3.1 Stand: 29.04.2014 erstellt von: EXEC Software Team GmbH Südstraße 24 56235 Ransbach-Baumbach www.exec. sidoku sidoku EXPRESS Release 2.3.1 Stand: 29.04.2014 erstellt von: EXEC Software Team GmbH Südstraße 24 56235 Ransbach-Baumbach www.exec.de sidoku EXPRESS Seite 1 Inhalt 1 Einleitung... 1 2 Einladung

Mehr

Kommunikations-Parameter

Kommunikations-Parameter KNX App knxpresso für Android Tablets/Phones Kommunikations-Parameter Ausgabe Dokumentation: Mai. 2015 Doku Version V1.0.0 - Seite 1/8 Inhaltsverzeichnis 1.1 Nützliche Links... 3 1.2 Beschreibung der Kommunikations-Datei...

Mehr

SMS4OL Administrationshandbuch

SMS4OL Administrationshandbuch SMS4OL Administrationshandbuch Inhalt 1. Vorwort... 2 2. Benutzer Übersicht... 3 Benutzer freischalten oder aktivieren... 3 3. Whitelist... 4 Erstellen einer Whitelist... 5 Whitelist bearbeiten... 5 Weitere

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Einzel-E-Mails und unpersönliche Massen-Mails versenden

Einzel-E-Mails und unpersönliche Massen-Mails versenden Einzel-E-Mails und unpersönliche Massen-Mails versenden Copyright 2012 cobra computer s brainware GmbH cobra Adress PLUS ist eingetragenes Warenzeichen der cobra computer s brainware GmbH. Andere Begriffe

Mehr

Installation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden

Installation von Druckern auf dem ZOVAS-Notebook. 1. Der Drucker ist direkt mit dem Notebook verbunden Installation von Druckern auf dem ZOVAS-Notebook Bei der Installation eines Druckers muss grundsätzlich unterschieden werden, ob der Drucker direkt am Notebook angeschlossen ist oder ob ein Drucker verwendet

Mehr