Acceptor-Connector. Acceptor-Connector



Ähnliche Dokumente
2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

IEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version Deutsch

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

SharePoint Demonstration

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

Online Schulung Anmerkungen zur Durchführung

Internet Explorer Version 6

Die Gesellschaftsformen

Grundfunktionen und Bedienung

Reservierungs-Assistent

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

IBIS Professional. z Dokumentation zur Dublettenprüfung

Simulation LIF5000. Abbildung 1

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

Statuten in leichter Sprache

Urlaubsregel in David

Virtual Private Network

Tipps und Tricks zu Netop Vision und Vision Pro

Anwendungshinweis Nr. 12. Wie konfiguriere ich redundante Serververbindungen

Hilfe zur Urlaubsplanung und Zeiterfassung

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Subpostfächer und Vertretungen für Unternehmen

Verifizierung neuer bzw. geänderter -adressen in den Anwender- und/oder Benutzerstammdaten

Proxyeinstellungen für Agenda-Anwendungen

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Zeichen bei Zahlen entschlüsseln

SHAREPOINT Unterschiede zwischen SharePoint 2010 & 2013

NTR-Support Die neue Fernwartung

Die Post hat eine Umfrage gemacht

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

1 topologisches Sortieren

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

ICS-Addin. Benutzerhandbuch. Version: 1.0

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

Manuelle Konfiguration einer VPN Verbindung. mit Microsoft Windows 7

Technische Dokumentation IPCalculator

Qt-Projekte mit Visual Studio 2005

YouTube: Video-Untertitel übersetzen

ALEMÃO. Text 1. Lernen, lernen, lernen

Fax einrichten auf Windows XP-PC

Konfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen mit Deutsche Telefon Standard AG

Drei Fragen zum Datenschutz im. Nico Reiners

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Guide DynDNS und Portforwarding

Step by Step Webserver unter Windows Server von Christian Bartl

Mehrere PDF-Dokumente zu einem zusammenfügen

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Kurzeinweisung. WinFoto Plus

Benutzerverwaltung Business- & Company-Paket

Professionelle Seminare im Bereich MS-Office

Änderung des IFRS 2 Anteilsbasierte Vergütung

Barcodedatei importieren

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

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

Elektrische Logigsystem mit Rückführung

NAS 308 Einführung in iscsi

Fernzugriff auf Kundensysteme. Bedienungsanleitung für Kunden

ARAkoll 2013 Dokumentation. Datum:

Was meinen die Leute eigentlich mit: Grexit?

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:


Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Zimmertypen. Zimmertypen anlegen

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihr vorhandenes PMS-System mit der IAC-BOX verbinden und konfigurieren.

Kurzanleitung Verwendung von USB-Sticks

Erfahrungen mit Hartz IV- Empfängern

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Einstieg in Exact Online Buchungen erfassen. Stand 05/2014

BMW ConnectedDrive. connecteddrive. Freude am Fahren BMW CONNECTED DRIVE. NEUERUNGEN FÜR PERSONALISIERTE BMW CONNECTED DRIVE DIENSTE.

Powermanager Server- Client- Installation

6 Zeichnungsableitung

Konfiguration der tiptel Yeastar MyPBX IP-Telefonanlagen hinter AVM FRITZ!Box

Das Werk einschließlich aller seiner Texte ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechts

Sicherer Datenaustausch zwischen der MPC-Group und anderen Firmen. Möglichkeiten zum Datenaustausch... 2

Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Herzlich Willkommen beim Webinar: Was verkaufen wir eigentlich?

Der Vollstreckungsbescheid. 12 Fragen und Antworten

PowerPoint 2010 Mit Folienmastern arbeiten

Quick Guide Mitglieder

Welchen Nutzen haben Risikoanalysen für Privatanleger?

Installationsanleitung für pcvisit Server (pcvisit 12.0)

Konfiguration der Yeastar MyPBX IP-Telefonanlagen mit iway Business SIP Trunk

Benutzerkonto unter Windows 2000

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Persönliches Adressbuch

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

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

CONVEMA DFÜ-Einrichtung unter Windows XP

Erste Einstellungen im Alumni System

Transkript:

Acceptor-Connector Das Acceptor-Connector Pattern trennt den Verbindungsaufbau zwischen zwei Peer-Services und der Verarbeitung, welche bei bestehender Verbindung durchgeführt wird. Kontext Ein Netzwerksystem oder Anwendung, welche verbindungsorientierte Protokolle für die Kommunikation zwischen Service-Endpunkten verwendet. Problem In verbindungsorientierten Netzwerksystemen besteht meist sehr viel Code, welcher die Verbindungen zwischen zwei Endpunkten initialisiert. Dieser Code ist aber mehrheitlich unabhängig von der erbrachten Dienstleistung der Services, welche bei bestehender Verbindung erbracht wird. Das Koppeln der Verbindungsinitiierung an die Anwendungslogik ist ungewollt weil: Es sollten verschiedene Verbindungsmodelle unterstützt werden können: z.b. ist es für die Erbringung der Dienstleistung nicht relevant, ob der Service die Verbindung aktiv (Initiator der Verbindung) oder passiv erstellt hat. Es sollten weitere Dienste hinzugefügt werden können, ohne das Änderungen am Verbindungsinitialisierungscode notwendig sind (sämtliche HTTP-Dienste können selbe Initialisierung verwenden). Die verwendeten Protokolle ändern häufiger, als die Logik für den Verbindungsaufbau, daher soll das Protokoll geändert werden können wobei der darunterliegende Verbindungsinitialisierungscode identisch bleibt. Für large-scale Netzwerkanwendungen soll die Latenz aufgrund der Verbindungsinitialisierung durch den Einsatz von erweiterten Betriebssystem-Funktionen wie asynchrone Verbindungsmechanismen reduziert werden können. Lösung Trennen des Verbindungsinitialisierungscode von der Verarbeitungslogik bei aufgebauter Verbindung. Die Anwendungs-Services sollen in peer service handlers gekapselt werden. Jeder peer service stellt die hälfte eines End-zu-End Service dar. Die Verbindung der peer-service sowie deren Initialisierung soll mittels den Factories Connector (für aktiven Verbindungsaufbau) und Acceptor (passiv Verbindungen akzeptieren) erfolgen. Nach Micha Reiser 1

dem Verbindungsaufbau werden die peer-services vom Acceptor / Connector initialisiert und das Handle für die Verbindung wird dem peer-service übergeben. Struktur Im Pattern sind sechs Komponenten involviert: Transport Endpoint z.b. Socket-Endpunkt. Ein Transport-Endpoint erlaubt das Lesen und Schreiben von Daten über die Verbindung. Transport Handle Identifiziert ein spezifischen Transport Endpoint. Z.B. ein Socket- Handle, aus welchem mittels recv Daten gelesen werden können (mittels dem Handle wird der Transport Endpoint identifiziert, von welchem die Daten dann gelesen werden). Service handler Definiert die eine Hälfte eines End-zu-End Dienstes. Ein konkreter Service spielt hierbei meist entweder die Client oder Server-Rolle, wobei auch beide Rollen simultan möglich sind (Peer-to-Peer). Der Service handler bietet eine Aktivierungsmethode, diese wird aufgerufen, sobald der Service verbunden wurde. Der Service hält ein Transport-handle. Acceptor Factory für das passive Akzeptieren von Verbindungen. Der Acceptor initialisiert einen passiven Transport Endpoint. Geht eine Verbindung ein, wird das zugehörige Transport Handle sowie der zugehörige Service handler initialisiert. Der Acceptor definiert zwei Methoden, connection initialize erstellt den passiven Transport Endpoint. connection completion wird aufgerufen, wenn eine Verbindung akzeptiert wird, initialisiert den Transport handle, erstellt einen Service handler und setzt den Transport handle auf dem service. Connector Der Connector stellt das aktive Pendant zu dem Acceptor dar. Er initialisiert eine Verbindung aktiv und wartet nicht auf den Eingang einer Verbindung. Der connection initialization Methode wird eine existierende Service handler Instanz übergeben. Der Connector etabliert dann eine aktive Verbindung zum gewünschten Endpunkt. Dispatcher Der Dispatcher ist zuständig für das demultiplexen von Ereignissen, welche verschiedene Service-Anfragen repräsentieren. Siehe hierzu das Reactor oder Proactor-Pattern. Ablauf Acceptor In der Abbildung 1 ist der Ablauf des Patterns unter Verwendung eines Acceptors ersichtlich. Micha Reiser 2

Abbildung 1: Ablauf bei der Verwendung eines Acceptors 1. Die Anwendung initialisiert den Acceptor (initialize connection). Dieser erstellt einen passiven Endpunkt. 2. Wenn eine Verbindung eingeht, wird auf dem Acceptor die connection completion Methode aufgerufen. 3. Der Acceptor erstellt nun das Handle für die Identifikation des Endpunktes (z.b. Socket-Handle). Zudem erstellt er eine Instanz des konkreten Service und initialisiert diesen mit dem Handle. Nun führt der Service die Anwendungsspezifische Logik aus. Connector In der Abbildung 2 ist der Ablauf des Patterns unter Verwendung eines Connector ersichtlich. 1. Die Anwendung weist den Connector an, eine aktive Verbindung für den übergebenen Service zu erstellen. 2. Der Connector liest das Handle (Ziel-Endpunkt) vom Service Handler aus und stellt die Verbindung mit diesem Endpunkt her. 3. Wurde die Verbindung hergestellt, ruft der Connector die Verarbeitungsmethode des Service-Handler auf. Micha Reiser 3

Abbildung 2: Ablauf bei der Verwendung eines Connectors Konsequenz Vorteile Wiederverwendbarkeit, Portabilität und Erweiterbarkeit: Da die Verbindungsinitialisierungslogik entkoppelt ist, kann diese, aber auch die Anwendungslogik wiederverwendet werden. Nur die Initialisierungslogik ist platformspezifisch. Fehlertoleranz: Die Trennung des Service-handler und des Acceptors stellt sicher, dass nicht fälschlicherweise das passive Endpoint-Handle zum Schreiben und Lesen von Daten verwendet wird. Effizienz: Das Pattern erlaubt das initialisieren sehr vielen Verbindungen (auch mit hoher Latenz), durch das asynchrone Aufbauen der Verbindungen. Nachteile Zusätzliche Indirektion: Fügt zusätzliche Indirektion ein, im Vergleich zur direkten Verwendung der Netzwerkschnittstelle. Sprachen wie C++, c#, Eiffel können diese Indirektion durch inlinen von Funktionen ggf. eliminieren. Erhöhte Komplexität: Für einfache Client-Anwendungen fügt das Pattern ggf. unnötige Komplexität hinzu (Overengineering). Kontrollfragen Kontrollfragen, welche mit Wahr / Falsch beantwortet werden sollen. Handelt es sich um zwei Aussagen ist für jede anzugeben ob richtig / falsch oder ob beide richtig sind und aus A B Micha Reiser 4

1. Kann durch die Anwendung des Acceptor-Connector-Pattern derselbe Service- Handler eine Dienstleistung für aktive sowie passive Verbindungen bereitstellen? 2. Der Connector behandelt passive Verbindungen Akzeptiert der Acceptor eine neue Verbindung, erstellt er eine Instanz des Service handler und übergibt diesem das Transport handle. 3. Erlaubt Acceptor-Connector Pattern sowohl die Wiederverwendung der Acceptor- Connectors sowie die Wiederverwendung der Service-Handler? Lösung: 1. Siehe Ja, 2. A=Falsch, B=Wahr, 3. Ja Micha Reiser 5