• Keine Ergebnisse gefunden

Suche und Integration neuer Ressourcen

5. Entwicklung einer kontextadaptiven Anwendungsarchitektur 113

5.3. Identifikation von Teilproblemen und Lösungsansätzen

5.3.2. Suche und Integration neuer Ressourcen

Eine weitere wesentliche Anforderung an die Konstruktion einer kontextadap-tiven Anwendungsarchitektur stellt die Fähigkeit zur Suche und Integration neuer Ressourcen dar (vergleiche Anforderung S2 aus Abschnitt 4.2.8).

Im Hinblick auf den schnell wechselnden Kontext mobiler Geräte gilt es hier-bei, mobilen Anwendungen zur Laufzeit die spontane Interaktion mit der In-frastruktur zu ermöglichen. Diese Suche und Integration neuer Ressourcen ist ein bekanntes Problem innerhalb des Forschungsgebietes der verteilten Syste-me. In diesem Zusammenhang hat sich das Architekturmuster der dienstori-entierten Architektur (service oriented architecture) [Erl05] etabliert, in wel-chem die Ressourcen, sowohl Hardware als auch Software, über wohldefinier-te Schnittswohldefinier-tellen in Form von Dienswohldefinier-ten bereitgeswohldefinier-tellt werden. Ein bestimmwohldefinier-ter Dienst kann somit auch durch unterschiedliche Ressourcen bereitgestellt wer-den, ist aber jeweils über die gleiche Schnittstelle ansprechbar.

WSDL

SOAP

UDDI

Dienst-nutzer Dienst-

verzeichnis

Dienst-anbieter

Abbildung 5.4.:Elemente einer dienstorientierten Architektur

Wie in Abbildung 5.4 gezeigt wird, existieren in diesem Zusammenhang Diensterbringer, die diese Dienste bereitstellen und sich hierzu bei einem ent-sprechenden Verzeichnisdienst registrieren. Dienstkonsumenten können die-sen Verzeichnisdienst anschließend befragen, um eine Referenz auf die ent-sprechende Dienstinstanz zu erhalten und diese zu nutzen.

Anforderungen an die Dienstsuche Die wesentlichen Aufgaben sind nach [BR00] wie folgt charakterisiert:

Die Erkennung verfügbarer Dienste Die Auswahl des richtigen Dienstes Die Nutzung des ausgewählten Dienstes

Die in diesem Zusammenhang entwickelten Verfahren wurden jedoch im Hin-blick auf die Verwendung in infrastrukturbasierten Netzwerken entwickelt und lassen sich nur bedingt in die im mobilen Cloud Computing anzutref-fenden mobilen Ad-hoc-Netzwerke integrieren [Fur12]. Die wesentlichen Her-ausforderungen der Dienstsuche in mobilen Umgebungen bestehen damit

dar-in, zwischen ressourcenbeschränkten Geräten, die über drahtlose Verbindun-gen zur Mobilkommunikation kommunizieren, zu vermitteln. Das erste kon-krete Teilproblem in diesem Zusammenhang ist die beschränkte Bandbreite [MBB09] und wechselnde Konnektivität [Fur12]. Das zweite konkrete Teilpro-blem betrifft die zur Nutzung der Schnittstellen zur Mobilkommunikation nö-tige Energie im Zusammenhang mit dem begrenzten Energievorrat mobiler Geräte [ASG+14]. In diesem Zusammenhang ergeben sich die folgenden An-forderungen an die Dienstsuche in mobilen Umgebungen:

Fähigkeit zur Kommunikation: Die Suche und Integration neuer Res-sourcen erfordert es zudem, dass die beteiligten Geräte miteinander kom-munizieren können. Diese Kommunikation kann dabei einerseits direkt oder unter Zuhilfenahme einer Infrastruktur geschehen. Im Fall der Ad-hoc-Kommunikation, wie sie beispielsweise im Bluetooth-Standard statt-findet, können die beteiligten Geräte üblicherweise direkt miteinander Nachrichten austauschen. Im Hinblick auf eine schnelle und dynamische Nutzung von Ressourcen wie bei dem mobilen Cloud Computing gilt es, sowohl die infrastrukturbasierte als auch die direkte Kommunikation zur Integration neuer Ressourcen zu unterstützen.

Sind mobile Geräte jedoch über eine Infrastruktur wie das Internet mit anderen Geräten verbunden, können diese Geräte oft nicht direkt mit-einander kommunizieren, da Verfahren wie die Network Address Trans-lationoderFirewallsdazu eingesetzt werden, die (privaten) Subnetze, in denen sich die mobilen Geräte befinden, vom direkten Zugriff aus dem Internet zu trennen. Es ist davon auszugehen, dass diese Restriktionen nicht ohne Weiteres zu umgehen sind. Entsprechend sind Mechanismen zur Etablierung einer direkten Kommunikation vorzusehen, die hierzu die verschiedenen vorhandenen Schnittstellen zur Mobilkommunikation nutzen, um eine möglichst hohe Konnektivität des mobilen Geräts si-cherzustellen. Hierfür scheint es erforderlich, eine logische Adressierung oberhalb der physischen Struktur der einzelnen Schnittstellen zur Mobil-kommunikation zu etablieren, ein sogenanntes Overlay-Netz (vergleiche Anforderung A1).

Mobilität und Robustheit: Ist durch die vorgenannte Anforderung die grundlegende Kommunikationsfähigkeit zwischen den beteiligten Gerä-ten etabliert, so gilt es, zwischen den beteiligGerä-ten Ressourcen zu erkennen, welche von ihnen einen benötigten Dienst bereitstellt. Eine Funktionali-tät, die es einer mobilen Anwendung erlaubt, nach verfügbaren Diensten zu suchen, sollte dabei möglichst so gestaltet sein, dass sie auch in frem-den Netzwerken automatisch die benötigten Dienste zur Laufzeit der An-wendung sucht und für die Benutzung an die mobile AnAn-wendung bindet.

Ist ein Dienst an einer Anwendung gebunden, sollte hierdurch die Endge-rätemobilität (vergleiche Abschnitt 2.2.2) nicht zusätzlich eingeschränkt werden. Entsprechend sollte sichergestellt sein, dass die Nutzung

ei-5.3. Identifikation von Teilproblemen und Lösungsansätzen 141

nes Dienstes über die Grenzen eines Netzwerks hinweg möglich ist und hierfür einerseits die (für den erwarteten Zeitraum der Dienstnutzung) nächstgelegene und bestmöglich erreichbare Instanz eines Dienstes aus-gewählt wird [KH07]. Zusätzlich gilt es, sowohl in Bezug auf die Suche als auch die Nutzung eines Dienstes eine Fehlertransparenz (vergleiche Anforderung A1) sicherzustellen und dafür Sorge zu tragen, dass der Aus-fall von hierfür benötigten Knoten eines verteilten Systems kompensiert wird, ohne dass es zu einem Ausfall des Dienstes oder der Suche kommt.

Effizienz und Skalierbarkeit: Da sich die Topologie und die Größe eines mobilen Ad-hoc-Netzwerkes unter Umständen häufig und stark verän-dert, ist es erforderlich, dass die Kommunikation so effizient wie mög-lich stattfindet, um einerseits neue Dienste innerhalb eines Netzwerkes möglichst schnell zu erkennen und andererseits die energetisch teuren Schnittstellen zur Mobilkommunikation nur so häufig, wie es hierfür nö-tig ist, zu aktivieren [ASG+14]. Im Hinblick auf die Skalierbarkeit gilt es hierzu ebenso, dieses Verhalten sowohl in kleinen Netzwerken mit weni-gen Knoten als auch in größeren mobilen Ad-hoc-Netzwerken zu unter-stützen.

Architekturen und Protokolle für die Dienstsuche In Bezug auf die verschie-denen Architekturen der Dienstsuche lassen sich zunächst die aktive Suche und die passive Suche voneinander unterscheiden. Im ersten Fall wird die Anfrage nach einem bestimmten Dienst an alle erreichbaren Knoten versen-det. Im Fall der passiven Suche wird nur lokal nach einem Dienst gesucht und hierzu die bereits empfangenen Nachrichten über vorhandene Dienste im Netzwerk verwendet [MBB09]. In diesem Zusammenhang können Architektu-ren für die Dienstsuche weiter dahingehend unterschieden werden, ob ihnen eine verzeichnisbasierte oder eine verzeichnislose Architektur zugrunde liegt [VP08].

In einer verzeichnisbasierten Architektur existiert ein oder eine Reihe von Knoten, die die Beschreibungen aller im Netzwerk vorhandenen Dienste sam-meln (sogenanntedirectory agents) und diese den anfragenden Knoten zur Ver-fügung stellen. Beispiele für verzeichnisbasierte Protokolle sind das Service Location Protocol(SLP) [Gut99],Jini[Wal99] und Salutation [Pas99].

Exemplarisch soll an dieser Stelle das Service Location Protocol kurz vor-gestellt werden. Wie in Abbildung 5.5 veranschaulicht werden hier Dienste durch einen den Dienst bereitstellenden Service Agentbekannt gemacht. Die Bekanntmachung erfolgt dabei gegenüber dem sogenannten Directory Agent, dessen Aufgabe es ist, ein Verzeichnis aller im Netzwerk erreichbaren Dienste vorzuhalten. Diese Dienste können dann durch Knoten derUser Agents gefun-den und genutzt wergefun-den, indem der Directory Agent auf die Suchanfrage des User Agents mit einer entsprechenden Referenz auf den Dienst antwortet.

Bei Betrachtung dieser Architektur wird deutlich, dass von einer weitgehend gleichen Konnektivität der Knoten untereinander ausgegangen wird.

Insbe-Service Request

Service Registration

Abbildung 5.5.:Ablauf der Dienstsuche im Service Location Protocol

sondere die Erreichbarkeit des Verzeichnisdienstes entscheidet darüber, ob ei-ne verzeichnisbasierte Architektur nutzbar ist.

Um dieser Einschränkung zu begegnen, existieren verzeichnislose Archi-tekturen, in welchen kein Verzeichnisdienst existiert und Dienstanbieter und Dienstkonsumenten direkt miteinander kommunizieren. Beispiele hierfür sind dasUniversal Plug and Play(UPnP) [JW03] und das SLP im Modus der „ac-tive discovery“, in welchem User Agent und Service Agent ihre Anfragen bzw.

Registrierungen mithilfe des IP-Protokolls in eine Multicast-Gruppe senden.

Solch eine verzeichnislose Architektur erfordert es allerdings, dass alle Kno-ten einerseits laufend empfangsbereit sein müssen, um die Bekanntmachung neuer Dienste zu erkennen und dass sie andererseits auf Dienstanfragen an-derer Knoten reagieren müssen. Im Hinblick auf die beschränkten Energie-und Bandbreitenressourcen mobiler Geräte sind diese aktiven Mechanismen zur Dienstsuche somit nur bedingt oder nur für relativ kleine Netzwerke ge-eignet, da in größeren Netzwerken sonst relativ schnell ein signifikanter Teil der verfügbaren Bandbreite von der Suche und Ankündigung der Dienste be-ansprucht wird [MBB09].

Ein weiteres Problem bei der Nutzung von Protokollen für die Dienstsuche, die für die Nutzung in stationären Netzwerken entwickelt wurden, liegt in der Annahme, dass sich die Struktur eines Netzwerks nicht oder nur langsam verändert. Der laufend wechselnde Kontext eines mobilen Gerätes führt al-lerdings dazu, dass sich auch die Konnektivität laufend ändert und zum Zeit-punkt der Suche noch verfügbare Dienste möglicherweise kurz darauf nicht mehr verfügbar sind. Entsprechend gilt es, bei der Dienstsuche in mobilen Umgebungen einen Kompromiss zwischen dem Vorhalten eines möglichst ak-tuellen Verzeichnisses verfügbarer Dienste und den begrenzten Energie- und Bandbreitenressourcen mobiler Geräte einzugehen.

Implikationen für diese Arbeit Im Hinblick auf die zuvor formulierten Anfor-derungen der Mobilität, Robustheit, Effizienz und Skalierbarkeit soll an dieser Stelle festgehalten werden, dass im Zusammenhang mit der Realisierung einer kontextadaptiven Anwendungsarchitektur bestehende Ansätze zur

Dienstsu-5.3. Identifikation von Teilproblemen und Lösungsansätzen 143

che nur bedingt genutzt werden können. Da die zu unterstützende Mobilität als hoch und die Größe des Netzwerks als klein bis mittel angesehen werden kann, bietet sich nach [MBB09] die Implementierung einer verzeichnislosen Architektur mithilfe eines Overlay-Netzwerks an. In diesem Zusammenhang soll es einerseits möglich sein, aktiv nach Diensten zu suchen sowie auch beste-hende Referenzen auf Dienste für eine spätere Verwendung lokal zu speichern.