DE60204581T2 - Verfahren zur Optimierung der Verteilung eines Dienstes von einer Quelle zu mehreren Dienstempfängern in einem Netzwerk - Google Patents

Verfahren zur Optimierung der Verteilung eines Dienstes von einer Quelle zu mehreren Dienstempfängern in einem Netzwerk Download PDF

Info

Publication number
DE60204581T2
DE60204581T2 DE60204581T DE60204581T DE60204581T2 DE 60204581 T2 DE60204581 T2 DE 60204581T2 DE 60204581 T DE60204581 T DE 60204581T DE 60204581 T DE60204581 T DE 60204581T DE 60204581 T2 DE60204581 T2 DE 60204581T2
Authority
DE
Germany
Prior art keywords
service
clients
node
service instance
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60204581T
Other languages
English (en)
Other versions
DE60204581D1 (de
Inventor
Alexandru Hlibiciuc
Frank Hundscheidt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of DE60204581D1 publication Critical patent/DE60204581D1/de
Publication of DE60204581T2 publication Critical patent/DE60204581T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Telephonic Communication Services (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Optimieren der Verteilung von Dienstinstanzen zum Bereitstellen eines Dienstes von einer Quelle zu einer Vielzahl von Clients in einem Netz. Eine Dienstinstanz ist eine Einrichtung, die einem Client einen Dienst bereitstellen kann. Im Falle von Internetdiensten ist die Dienstinstanz beispielsweise ein Proxy Server; im Falle von Informationsdiensten ist die Dienstinstanz beispielsweise eine Datenbank; im Falle der Logistik kann die Dienstinstanz eine Übertragungsstation sein. In einem Telekommunikationsnetz können die „Clients" beispielsweise Zugangsnetze oder Zugangsknoten oder Benutzerendgeräte sein.
  • Die Erfindung wird anhand eines nicht einschränkenden Beispieles in ihrer Anwendung auf ein Telekommunikationsnetz des WAN-Typs (Wide Area Network) für eine Punkt-zu-Mehrpunkt-(Point-To-Multipoint – PTM)-Dienstverteilung beschrieben. Allerdings kann sie in einer Reihe weiterer Bereiche angewendet werden, z.B. Logistik, Verkehrsmanagement etc.
  • Je nach der Netzwerktopologie kann sich das Anordnen von Dienstinstanzen als ziemlich komplex erweisen.
  • Das U.S.-Patent 6,167,438 offenbart beispielsweise ein Verfahren und ein System zur Lastverteilung in einem verteilten Netz. Allerdings kann das offenbarte Verfahren nicht für die Bestimmung einer optimierten Verteilung von Dienstinstanzen verwendet werden.
  • Die europäische Patentanmeldung EP 1 231 753 offenbart ein Verfahren zum Bestimmen eines Dienstanbieters aus einer Vielzahl von Dienstanbietern für jeden Client aus einer Vielzahl von Clients. Allerdings wird die Anzahl der Dienstanbieter durch das offenbarte Verfahren nicht notwendigerweise optimiert.
  • In einem verteilten System, wobei auf Dienste von mehreren geographisch verteilten Clients gleichzeitig zugegriffen wird, sollte eine optimale Dienstverteilungsstrategie in Abhängigkeit der Erfordernisse einer Vielfalt von Endgeräten und Teilnetzen viele Faktoren berücksichtigen. Sie sollte auch die Dienstanforderungen in Betracht ziehen. Zusätzlich sollte eine optimale Strategie die Anzahl der Dienstinstanzen (d.h. Ausstattung oder Diensteinheiten, die den Clients den Dienst bereitstellen) beschränken, während sämtlichen Clients eine adäquate Dienstgüte zur Verfügung gestellt wird. Jedoch gibt es für derartige PTM-Szenarien derzeit keine klare Lösung.
  • Die vorliegende Erfindung zielt darauf ab, diesen Nachteil zu überwinden.
  • Hierfür gibt die vorliegende Erfindung ein Verfahren an zum Bestimmen von Orten von Dienstinstanzen zum Optimieren der Verteilung eines Dienstes in einem Netz, von einer Quelle zu einer Vielzahl von Clients mit jeweils vorbestimmten Anforderungen, wobei das Netz mittels eines Graphs modelliert werden kann, wobei das Verfahren dadurch gekennzeichnet ist, dass es die Schritte umfasst:
    Anordnen einer Dienstinstanz in jedem Blatt in dem Graph; und, ausgehend von den Blättern, für jede Dienstinstanz:
    Überprüfen, ob die Dienstinstanz, wenn diese in einem Knoten der nächst höheren Ebene angeordnet ist, die Anforderungen sämtlicher von der Dienstinstanz zu bedienenden Clients erfüllen kann; und
    Bewegen oder nicht dieser Dienstinstanz eine Ebene nach oben, in Abhängigkeit des Ergebnisses der Überprüfungsschrittes.
  • Gemäß einem besonderen Merkmal umfasst das Verfahren weiterhin die Schritte des Bestimmens, dass sich mindestens zwei Dienstinstanzen in dem obengenannten Knoten treffen, und des Kombinierens dieser Dienstinstanzen.
  • Somit können dank der vorliegenden Erfindung die minimale Anzahl von Dienstinstanzen, die für das Bereitstellen des Dienstes an die Clients in einem Netz erforderlich sind, sowie die entsprechenden Orte dieser Dienstinstanzen bestimmt werden.
  • Gemäß einem besonderen Merkmal umfasst das Verfahren vor dem Schritt des Anordnens weiterhin einen Schritt des Bestimmens von Ebenen in dem Graph.
  • Falls der das Netz modellierende Graph keine Ebenen per se umfasst, ermöglicht es dieser Schritt deshalb, eine aus Ebenen bestehende Struktur des Graphs aufzubauen.
  • Der Schritt des Überprüfens kann einen tabellen-basierten Analyseschritt oder einen Petrinetz-Analyseschritt umfassen.
  • Mit demselben Gegenstand wie oben erwähnt gibt die vorliegende Erfindung auch einen Knoten in einem ein Netz modellierenden Graph an, der dadurch gekennzeichnet ist, dass er ein Verfahren, wie oben kurz beschrieben, implementiert.
  • Mit demselben Gegenstand wie oben erwähnt gibt die vorliegende Erfindung auch einen Server in einem Telekommunikationsnetz an, der dadurch gekennzeichnet ist, dass er eine Quelle darstellt, die ein Verfahren, wie oben kurz beschrieben, implementiert.
  • Mit demselben Gegenstand wie oben erwähnt gibt die vorliegende Erfindung auch eine Vorrichtung zum Bestimmen von Orten von Dienstinstanzen an, zum Optimieren der Verteilung eines Dienstes in einem Netz von einer Quelle zu einer Vielzahl von Clients mit jeweils vorbestimmten Anforderungen, wobei das Netz mittels eines Graphs modelliert werden kann, wobei die Vorrichtung dadurch gekennzeichnet ist, dass sie umfasst:
    eine Aufnahmeeinheit zum Hosten einer Dienstinstanz;
    eine Überprüfungseinheit zum Überprüfen, ob die Dienstinstanz, wenn diese in einem Knoten der nächst höheren Ebene angeordnet ist, die Anforderungen sämtlicher von der Dienstinstanz zu bedienenden Clients erfüllen kann;
    eine Verarbeitungseinheit zum Koordinieren der Aufnahmeeinheit und der Überprüfungseinheit und zum Steuern des Knotens; und
    eine Eingabe-/Ausgabeeinheit zum Senden und Empfangen von Nachrichten und Dienstinstanzen.
  • Gemäß einem besonderen Merkmal umfasst die Vorrichtung ferner eine Kombiniereinheit zum Bestimmen, dass sich mindestens zwei Dienstinstanzen in dem Knoten treffen, und zum Kombinieren dieser Dienstinstanzen.
  • Mit demselben Gegenstand wie oben erwähnt gibt die vorliegende Erfindung auch einen Knoten in einem ein Netz modellierenden Graph an, der dadurch gekennzeichnet ist, dass er eine wie oben kurz beschriebene Vorrichtung umfasst.
  • Die Vorteile der Knoten, des Servers und der Vorrichtung sind denen des Verfahrens gemäß vorliegender Erfindung ähnlich und werden deshalb hier nicht wiederholt.
  • Weitere Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden ausführlichen Beschreibung bevorzugter Ausführungsformen anhand nicht beschränkender Beispiele hervor.
  • Die Beschreibung bezieht sich auf die beiliegenden Zeichnungen.
  • 1 zeigt schematisch ein Netz, wobei zwei sich überschneidende Mengen von Teilnetzen jeweils zum Bereitstellen eines Dienstes von einem Server an zwei Clients identifiziert werden, wobei die Mengen der Teilnetze derartige Teilnetze umfassen, die den Dienst mit einer adäquaten Dienstgüte bereitstellen.
  • 2 zeigt schematisch die Komplexität der Dienstverteilungstopologie im Fall einer höheren Anzahl von Clients;
  • 3 zeigt ein Beispiel für einen Dienstverteilungsbaum;
  • 4a, 4b, 4c, 4d sind Flussdiagramme, die aufeinanderfolgende Schritte eines Optimierungsverfahrens gemäß der vorliegenden Erfindung in verschiedenen Ausführungsformen zeigen, wobei das Netz mittels einer baum-basierten Topologie modelliert ist;
  • 5 ist ein Flussdiagramm, das aufeinanderfolgende Schritte eines Optimierungsverfahrens gemäß der vorliegenden Erfindung in einer weiteren Ausführungsform zeigt, wobei das Netz mittels einer vermaschten Topologie modelliert ist;
  • 6 zeigt ein nicht einschränkendes Beispiel einer Tabelle, die im Verlauf des Optimierungsverfahrens gemäß einer bestimmten Ausführungsform der vorliegenden Erfindung die Analyse darstellt, welche für einen Knoten in dem das Netz modellierenden Graph ausgeführt wird;
  • 7 zeigt schematisch eine Vorrichtung gemäß der vorliegenden Erfindung in einer bestimmten Ausführungsform.
  • Im folgenden wird von einem Telekommunikationsnetz des WAN-Typs ausgegangen.
  • Ein Dienst soll von einer Quelle, z.B. einem Server, an eine Vielzahl von Clients in dem Netz verteilt werden.
  • Vor der Anwendung des Optimierungsverfahrens gemäß der Erfindung kann eine Reihe von zu erfüllenden Bedingungen wahlweise definiert werden. Es kann gemäß eines nicht einschränkenden Beispiels erforderlich sein, dass die maximale Anzahl von Dienstinstanzen einen vorbestimmten Prozentsatz (z.B. 25%) der aktuellen Anzahl an Clients, die bedient werden, nicht übersteigt. Ferner kann es erforderlich sein, dass die mit der Verteilung des Dienstes an jeden Client verbundene Verzögerung einen vorbestimmten Wert (z.B. 500 ns bzw. ein Wert, der vom Dienst festgelegt ist) nicht übersteigt.
  • Es wird angenommen, dass das Netz mittels eines Graphs modelliert werden kann, z.B. durch Verwenden einer baum-basierten Topologie (in diesem Fall ist der Graph ein Baum) oder einer teilweise oder vollständig vermaschten Topologie, wobei beide dem Fachmann bekannt sind.
  • Die „Zielpunkte" im Graph sind die Teilnetze, die mit den Clients verbunden sind (d.h. mit den Blättern im Baum). Die Zielpunkte kennen beispielsweise von herkömmlichen Routing-Protokollen, wie dem BGP (Border Gateway Protocol), die Entfernung zum Server, der den Dienst zuerst erbringt.
  • Erfindungsgemäß wird die zwischen den Dienstinstanzen und den Zielpunkten erlaubte maximale Entfernung aufgrund vordefinierter Metriken bestimmt.
  • „Netzmetrik" hat die Bedeutung einer Funktion d(X,Y), die auf dem kartesischen Quadrat einer gegebenen Menge, z.B. einer Menge von Netzknoten, definiert ist, die eine Reihe von standardmäßigen Eigenschaften erfüllt: d ist nichtnegativ, es erfüllt die Eigenschaft eines Dreiecks, d(X,Z) ≤ d(X,Y) + d(X,Z), und d(X,X) = 0 für jeden Knoten X, Y, Z. Um eine Metrik in einem Netz zu definieren, ist es ausreichend, die Länger jeder Verbindung zwischen zwei Knoten in dem Netz zu definieren. Mit einer Anzahl von Metriken d1, d2,..., dk, die die Entfernungen zwischen beliebigen Knoten X, Y im Netz definieren, ist es möglich, diese Metriken auf eine einzige kombinierte Metrik d(X,Y) zu verkleinern, indem existierende, dem Fachmann geläufige Verfahren verwendet werden, z.B. durch Verwenden des Maximums von d1, d2,..., dk oder deren Summe oder sogar deren Faltung mit einem gegebenen Gewicht, in Abhängigkeit der Teilnehmer- oder Kundenanforderungen, der Kosten etc.
  • Ein typisches Beispiel für Metriken betrifft die Dienstgüte, z.B. die Bandbreite, Verzögerung, Jitter, Zuverlässigkeit, Sicherheit, Antwortzeit RTT (Round Trip Time – Umlaufzeit) oder eine Kombination dieser Faktoren. Die erforderliche Metrik oder ein entsprechender erforderlicher Minimum- und/oder Maximumwert wird mittels der Zielpunkte (z.B. die Clients im Falle einer Dienstbereitstellung), der Quelle (z.B. ein Dienst), dem Netzanbieter, dem Dienstanbieter oder einer Kombination dieser Einrichtungen bestimmt.
  • Je nach Kontext kann der Begriff „Metrik" deshalb entweder die Bedeutung haben, dass sie ein bestimmtes Netz, eine Verbindung oder eine Verbindungsstrecke darstellt, oder aber die Bedeutung, dass sie eine Entfernung in Graphentheorie oder allgemeiner in metrischer Raumtheorie darstellt.
  • Eine Zielpunkt in dem Graph kann entweder eine einzige Einrichtung, z.B. ein Client-Endgerät oder ein Zugangsnetz, oder eine Ansammlung von Einrichtungen darstellen, z.B. sämtliche Clients in einem Zugangsnetz, sämtliche Clients in einem bestimmten Bereich, sämtliche Clients mit denselben Kenndaten, sämtliche Kunden eines bestimmten Logistikdienstes etc. Es sei angemerkt, dass die Clients in indirekter Weise mit den Zielpunkten verbunden sein können, z.B. über ein Teilnetz, das nicht in dem Graph modelliert ist.
  • Wie in 1 gezeigt, können mehrere Netze oder Teilnetze (7 sich überschneidende Netze gemäß 1) zwischen dem Server und dem (den) Client(s) verwendet werden, um Dienstinstanzen zu hosten. Die als Si, i = 1,..., 32 in der Zeichnung bezeichneten (Teil-) Netze befinden sich nicht notwendigerweise auf einem einzigen Weg zwischen dem Server und dem (den) Client(s).
  • Im Falle eines einzigen Clients ist es möglich, sämtliche Umgebungs-(Teil-)-Netze zu bestimmen, in denen eine Dienstinstanz das Bereitstellen einer adäquaten Dienstgüte ermöglichen, d.h. die Anforderungen der Clients erfüllen würde. Eine derartige Analyse kann auf Entfernungsvektor-Routing-Protokollen basieren, die eine Tabelle mit den kürzesten Wegen zu sämtlichen Zielen, d.h. (Teil-) Netzen verwenden. Das Ergebnis eines derartigen Analyseschrittes wäre eine Tabelle pro Client (oder pro Zugangsnetz), die sämtliche (Teil-) Netze angibt, welche Dienstinstanzen hosten und adäquate Dienstgüte bereitstellen können. Diese Tabelle kann dann aufgrund der Wegentfernung vom (von den) Client(s) zu den entsprechenden (Teil-) Netzen sortiert werden, wobei jedes (Teil-) Netz nur einmal in der Tabelle (pro Client) dargestellt ist. Die Wegentfernung wird durch jede der obengenannten Metriken oder Metrikkombinationen bestimmt.
  • Allerdings existieren im allgemeinen in einer teilweise oder vollständig vermaschten Topologie viele Wege zwischen dem (den) Client(s) und dem Server, so dass die oben erwähnten Tabellen viele (Teil-) Netze umfassen. In einer Situation mit einer Dienstaufteilung an viele Kunden ist deshalb ein Optimierungsschritt erforderlich, um aus den möglichen (Teil-) Netzen pro Client die (Teil-) Netze zu bestimmen, die eine Dienstverteilung mit der minimalen Anzahl von Dienstinstanzen vornehmen. Die 1 zeigt, dass die Mengen der (Teil-) Netze, die eine adäquate Dienstgüte bereitstellen, für beide Clients C1 und C2 identifiziert wurden. Die (Teil-) Netze S10, S13, S14, S21, S28 und S29 bilden einen Teil der Überschneidung zwischen den beiden Netzen und können eine Dienstbereitstellung für beide Clients ausführen. Obgleich es in diesem Szenario möglich ist, ein optimales (Teil-) Netz aus der Überschneidung zu identifizieren, wird das Problem komplex, wenn mehrere tausend Clients involviert sind und eine optimale Dienstverteilung für viele Überschneidungen vieler Clients bestimmt werden muss, wie der in der 2 gezeigte Fall einer Vielzahl von Überschneidungsmengen von (Teil-) Netzen zeigt. Ferner kann das Hinzufügen oder Entfernen von Clients eine erheblichen Teil der Dienstverteilungstopologie beeinflussen.
  • Aus diesem Grund wird eine vereinfachte Topologiedarstellung gebraucht. Eine Übermittlungsbaumstruktur kann verwendet werden, um die Topologie zu optimieren und die Anzahl der erforderlichen Dienstinstanzen zu minimieren. Da die Dienstverteilung mit einer einzigen Quelle und mehreren Clients stattfindet, kann der Übermittlungsbaum gemäß einem nicht einschränkenden Beispiel durch den RPM-(Reverse Path Multicast)-Algorithmus erzeugt werden, der von Hersent et al. in „IP Telephony: Packet-based multimedia communictions systems", Addison-Wesley, Harlow, 2000 beschrieben ist.
  • Wie der Fachmann weiß, bildet der RPM-Algorithmus quellen-basierte Bäume, die (Teil-) Netze mit Clients aufspannen. Andere Übermittlungsbäume wie z.B. Erstreckungsbäume für minimale Kosten oder Steiner-Bäume, können ebenfalls Anwendung finden.
  • Der RPM-Verteilungsbaumalgorithmus erzeugt einen Baum von (Teil-) Netzen mit exakt einem kürzesten Weg vom Server zu sämtlichen Clients/Zugangsnetzen. Da ein eindeutiger Weg vom Server zu jedem Zugangsnetz vorliegt, sind Schleifen nicht möglich.
  • Jeder Weg vom Server endet in einem Zugangsnetz.
  • Somit stellen die Zugangsnetze Blätter im Dienstverteilungsbaum dar.
  • Die 3 zeigt ein Beispiel eines Dienstverteilungsbaumes. Ein derartiger Baum kann beispielsweise auf dem RPM-Algorithmus basieren. Das Dienstnetz/der Server stellt die Wurzel des Baumes und die Zugangsnetze die Blätter dar.
  • Die Verteilung eines Dienstes vom Dienstnetz auf S6 schränkt die Dienstinstanzen ein, die in einem der (Teil-) Netze auf dem Weg S1, S2, S3, S4, S5, S6 angeordnet werden sollen. Das Verteilen eines Dienstes vom Dienstnetz auf S21 bedeutet, dass die Dienstinstanzen in einem (Teil-) Netz auf dem Weg S1, S15, S16, S20, S21 angeordnet werden.
  • Unterschiedliche Dienstanforderungen können über einen einzigen Baum abgewickelt werden, der auf der Basis einer Kombination von Metriken für diese gegebenen Anforderungen aufgebaut ist.
  • Unterschiedliche Dienstverteilungsalgorithmen gemäß der Erfindung existieren in Abhängigkeit der Topologie des Netzes (baum-basiert oder vermascht), des Verarbeitungstyps (zentral oder verteilt) und des Auslösemodus, d.h. der Startmodus für die Analyse, die zur Optimierung führt.
  • Die Verarbeitung findet entweder in einer zentralen Einheit (z.B. der Quelle, die beispielsweise den Standort des Servers darstellt) oder verteilt in den verschiedenen Knoten (z.B. in denen die Teilnetze angeordnet sind) statt.
  • Das Auslösen, d. h. der Beginn der Analysen in der Zentraleinheit oder in den verschiedenen Knoten erfolgt entweder durch eine Zentraleinheit, Ebene für Ebene, oder ist knoten-implizit, d.h. die verschiedenen Knoten führen eine unabhängige Verarbeitung durch und lösen lediglich den nächsten Knoten aus (bei dem es sich – wie später beschrieben – um einen Knoten einer höheren Ebene handelt), indem eine Dienstinstanz an diesen gesendet wird.
  • Somit gibt es mindestens vier mögliche Ausführungsformen für das erfindungsgemäße Optimierungsverfahren:
    • – eine Dienstverteilungsoptimierungsprozedur mit einer baum-basierten Topologie, einer verteilten Verarbeitung und einer zentralen Auslösung;
    • – eine Dienstverteilungsoptimierungsprozedur mit einer baum-basierten Topologie, einer verteilten Verarbeitung und einer knoten-impliziten Auslösung;
    • – eine Dienstverteilungsoptimierungsprozedur mit einer baum-basierten Topologie, einer zentralen Verarbeitung und einer zentralen Auslösung; und
    • – eine Dienstverteilungsoptimierungsprozedur mit einer vermaschten Topologie, einer zentralen Verarbeitung und einer zentralen Auslösung.
  • Erfindungsgemäß besteht der Wunsch, die Anzahl der Dienstinstanzen zu minimieren. Während der unten beschriebenen Schritte ist die Anordnung von Dienstinstanzen halb-permanent, da wahlweise eine zusätzliche Prozedur angewendet werden kann, um zu versuchen, die Dienstinstanzen näher an die Clients heranzubewegen, ohne dass die Dienstinstanzen repliziert werden müssen. Während dieser optionalen Prozedur können die Dienstinstanzen in anderen Knoten angeordnet werden. Selbstverständlich kann dies nur erfolgen, wenn die Dienstinstanz auf einem nicht divergie enden Weg zu den Kunden bewegt wird.
  • Je nach gewählter Strategie kann entschieden werden, Dienstinstanzen nicht näher an den Clients, sondern näher an der Quelle anzuordnen. Selbstverständlich findet die Erfindung in beiden Fällen Anwendung.
  • Zum Ausführen der Prozedur des Bewegens der Dienstinstanzen näher an die Clients heran gibt es zwei Möglichkeiten:
    • – Entweder erinnert man sich bei jeder Dienstinstanz an die letzte Ebene, auf d er zwei Dienstinstanzen zusammengeführt wurden, und die Dienstinstanz wird nach unten bewegt, d.h. näher an die Clients heran, bis diese Ebene erreicht ist;
    • – oder ein Knoten kennt die Anzahl seiner Zweige, und die Dienstinstanz wird r ach unten bewegt, solange ein Knoten nur einen Zweig hat, der zu den Clients führt (d.h. bis die Dienstinstanz beim weiteren Abwärtsbewegen repliziert werden müsste).
  • Zunächst soll vom Fall einer Dienstverteilungsoptimierungsprozedur mit einer baum-basierten Topologie, einer verteilten Verarbeitung und einer zentralen Auslösung ausgegangen werden. Diese Ausführungsform ist in der 4a dargestellt.
  • Zunächst wird eine Baumtopologie des Netzes aufgebaut, z.B. durch Verwenden eines herkömmlichen Routing-Protokolls (Schritt 40a). Es werden entweder eine einzige Metrik oder Metrikkombinationen verwendet. Im Falle einer Metrikkombination kann es vorteilhaft sein, verschiedene Metriken zu einer einzigen Gesamtmetrik zu kombinieren, z.B. mittels Wägen.
  • Als nächstes werden Dienstinstanzen in sämtlichen Blättern des Baumes angeordnet (Schritt 42a). Zum Bestimmen der Blätter kennt entweder die Quelle (oder Wurzel) des Baumes die Blätter aus der Routing-Protokollinformation, oder es wird eine Dienstinstanz durch den Baum gesendet, wobei die Blätter diejenigen Punkte sind, die die Dienstinstanz behalten (anstatt sie zu übertragen). Dienstinstanzen können eine echte Dienstinstanz vertreten (z.B. über einen mobilen Agenten, der ein Softwaremodul ist), oder die Dienstinstanz selbst kann verwendet werden. Blätter können unterschiedliche Entfernungen zur Wurzel aufweisen, d.h. Blätter können auf unterschiedlichen Ebenen im Baum angeordnet sein.
  • Als (nicht dargestellte) Option wird dann überprüft, ob eine Dienstinstanz in einem Knoten vorliegt, bevor der Auslöser auf diesen Knoten angewendet wird. Anderenfalls wird der Auslöser auf der entsprechenden Ebene an sämtliche Knoten gesendet (Schritt 44a), z.B. der Auslöser wird rundgesendet, und jeder Knoten überprüft, ob er sich auf der angeforderten Ebene im Baum befindet (z.B. erhöht jeder Knoten einen Ebenenzähler und sendet die Meldung an sämtliche seiner untergeordneten Knoten). Auch die Wurzel kann die Knoten für eine gegebene Ebene aus der Routing-Protokollinformation kennen.
  • Gibt es mehr als eine Dienstinstanz im selben Knoten (Test 46a), so werden diese zusammengeführt. Dies bedeutet, dass die Dienstinstanzen als eine einzige Dienstinstanz behandelt werden.
  • Somit muss die neue einzige Dienstinstanz sämtliche Anforderungen sämtlicher Clients berücksichtigen, die nunmehr von der neuen einzigen Dienstinstanz bedient werden. Dies kann beispielsweise durch die Auswahl des niedrigsten bzw. des höchsten Wertes für jede Metrik, die von einem der Clients angefordert wird, implementiert werden.
  • Diese Zusammenführungsprozedur kann am Ende der Globalschleife erfolgen, die nach dem Auslösen einer gegebenen Ebene durchgeführt wird. Gemäß einer vereinfachten Variante werden sämtliche Anforderungen von sämtlichen Clients kombiniert, jedoch nicht zusammengeführt.
  • Als nächstes wird die erforderliche Information vom Knoten der nächst höheren Ebene abgerufen (Schritt 50a).
  • Wenn es aufgrund der abgerufenen Information, d.h. unter gleichzeitiger Berücksichtigung der Kenndaten des Knotens der nächst höheren Ebene sowie der Client-, Dienst- etc. -anforderungen, möglich ist, die Dienstinstanz zum Knoten der nächst höheren Ebene zu bewegen (Test 52a), so wird die Dienstinstanz zum Knoten der nächst höheren Ebene bewegt (Schritt 54a). Anderenfalls bedeutet dies, dass die Dienstinstanz nicht höher bewegt werden kann, und der Dienstinstanz wird ein halbpermanenter Status verliehen (Schritt 56a). Diese Information wird an die Wurzel übertragen.
  • Die Globalschleife endet, sobald sämtliche Dienstinstanzen einen halb-permanenten Status erhalten haben (Test 58a).
  • Anschließend wird wahlweise, wie oben erläutert, die Prozedur zum Bewegen der Dienstinstanzen näher an die Clients ausgeführt (nicht dargestellt).
  • Werden Clients entfernt bzw. neue Clients hinzugefügt, so wird die Prozedur für sämtliche Knoten wiederholt, es sei denn, dass sich die Knoten an die Zweige, für die sie verantwortlich sind, an die Clients, die sie bedienen, sowie die entsprechenden Beschränkungen erinnern.
  • Im folgenden soll eine rekursive Variante dieses Verfahrens beschrieben werden. Es wird angenommen, dass die Blätter die Anforderungen und Beschränkungen kennen, die von Clients, denen der Dienst erbracht werden soll, auf der Dienstinstanz vorgesehen wurden. Dies Ausführungsform ist in der 4b dargestellt.
  • Das rekursive Verfahren verwendet zwei Meldungen, nämlich eine Anforderungsmeldung und eine Antwortmeldung.
  • Ein Knoten sendet eine Anforderungsmeldung an die benachbarten Knoten innerhalb der nächst niedrigeren Ebene in dem Baum (d.h. an seine untergeordneten Knoten). Wird ein Blatt, welches einen mit mindestens einem Client direkt verbundenen Knoten darstellt, erreicht, so wird eine Dienstinstanz erzeugt.
  • Gemäß einer weiteren Ausführungsform der Erfindung werden Dienstinstanzen auf den Blättern angeordnet, bevor eine Anforderungsmeldung gesendet wird.
  • In beiden Ausführungsformen führt ein Blatt die folgenden Schritte durch:
    • 1. Empfangen einer Anforderungsmeldung;
    • 2. Überprüfen, ob die Dienstinstanz auf dem übergeordneten Knoten angeordnet werden kann;
    • – falls ja, wird eine positive Antwort gesendet, die die Anforderungen des mindestens einen Client enthält;
    • – falls nicht, wird eine negative Antwort gesendet, und der Dienstinstanz wird ein halb-permanenter Status verliehen.
  • Es sei angemerkt, dass eine Anforderungsmeldung Informationen über die Kenndaten des übergeordneten Knotens und der Verbindungsstrecke übertragen kann, die gebraucht wird, um zu prüfen, ob eine Dienstinstanz von der unteren Ebene aus in den Knoten bewegt werden kann oder nicht.
  • Die Antwortmeldung überträgt Dienstinstanzen sowie die zugehörigen Informationen, z.B. Anforderungen über die Dienstgüte und weitere Beschränkungen. Es kann auch eine negative Antwort gesendet werden, was bedeutet, dass keine Dienstinstanz vom untergeordneten Knoten nach oben bewegt wird.
  • Wie oben erwähnt, wird die Baumtopologie aufgebaut und als bekannt vorausgesetzt. Aufgrund von Routing-Protokollinformationen folgert beispielsweise ein gegebener Knoten, wenn er eine Anforderungsmeldung empfängt, daraus automatisch, dass es sich bei dem Knoten, der die Anforderungsmeldung abgesendet hat, sein übergeordneter Knoten ist, und dass der empfangende Knoten einen übergeordneten Knoten für verbleibende benachbarte Knoten darstellt, die dann als dessen untergeordnete Knoten angesehen werden.
  • Gemäß dem rekursiven Verfahren werden die folgenden Schritte durchgeführt.
    • 1. Um die Ausführung der Prozedur zu starten, sendet der Server Anforderungsmeldungen an seine untergeordneten Knoten (Schritt 40b).
    • 2. Jeder Knoten wartet auf eine Anforderungsmeldung von seinem übergeordneten Knoten.
    • 3. Wird eine Anforderungsmeldung vom übergeordneten Knoten empfangen, sendet der Knoten eine Anforderungsmeldung an sämtliche seiner untergeordneten Knoten (Schritt 42b).
    • 4. Nachdem die Anforderungsmeldungen gesendet sind, wartet der Knoten auf Antwortmeldungen von sämtlichen seiner untergeordneten Knoten.
    • 5. Sind sämtliche der Antwortmeldungen negativ (Test 44b), so sendet der Knoten eine negative Antwort nach oben an seinen übergeordneten Knoten und ordnet in diesem keine Dienstinstanz an (Schritt 46b).
    • 6. Wird anderenfalls mindestens eine positive Antwort empfangen, so führt der Knoten die Dienstinstanzen, die er von seinen untergeordneten Knoten empfangen hat, zusammen und bildet die akkumulierten Anforderungen und Beschränkungen für die neue Dienstinstanz, die durch das Zusammenführen (Schritt 48b) erhalten wird. Gemäß einer vereinfachten Variante werden sämtliche Anforderungen von sämtlichen Clients kombiniert und nicht zusammengeführt.
    • 7. Anschließend überprüft der Knoten, ob die neue Dienstinstanz aufwärts bewegt werden kann (Test 50b). Falls ja, sendet der Knoten eine positive Antwort mit den Kenndaten der Dienstinstanz (Schritt 52b). Anderenfalls wird eine negative Antwort gesendet, und der Dienstinstanz in dem Knoten wird ein halb-permanenter Status verliehen (Schritt 54b).
    • 8. Die Ausführung dieser Prozedur ist beendet, wenn der Server Antwortmeldungen von sämtlichen seiner untergeordneten Knoten empfängt (Test 56b). Im Falle mindestens einer positiven Antwortmeldung wird eine Dienstinstanz mit einem halb-permanenten Status in dem Server angeordnet.
    • 9. Wahlweise können die Dienstinstanzen mit einem halb-permanenten Status, wie oben erwähnt, näher an die Clients heranbewegt werden.
  • Mit geringfügigen Abänderungen funktioniert das rekursive Verfahren bei einer dynamischen Vorgehensweise, wenn neue Clients hinzugefügt oder Clients gelöscht werden. Zu diesem Zweck behält jeder Knoten seine letzte Antwortmeldung sowie die letzten Antwortmeldungen, die er von seinen untergeordneten Knoten empfangen hat. Bei Ankunft einer Antwortmeldung ist der Knoten dann in der Lage, die Kenndaten der Dienstinstanz erneut zu bewerten und, falls erforderlich, eine neue Antwortmeldung an seinen übergeordneten Knoten zu senden. Bei einem dynamischen Aufbau sollten deshalb Knoten nicht warten, bis sie sämtliche der Antwortmeldungen von ihren untergeordneten Knoten empfangen haben. Jeder Knoten sollte die Meldung, die er von seinem übergeordneten Knoten empfangen hat, nach dem Ablauf eines vorbestimmten Zeitgebers beantworten. Der Zeitgeber muss korrekt angepasst werden, um eine zu häufige Wiederbewertung der Dienstinstanz in dem Knoten sowie zu viele Neuantworten zu vermeiden. Es sei angemerkt, dass ein Zeitgeber auch in dem oben beschriebenen Verfahren verwendet werden kann, das bei einem nicht dynamischen Aufbau ausgeführt wird. Der Wert des Zeitgebers kann aus den Wegentfernungen bestimmt werden, wobei diese Information beispielsweise aus den Routing-Protokollen verfügbar ist.
  • Im folgenden soll der Fall einer Dienstverteilungsoptimierungsprozedur mit einer baum-basierten Topologie, einer verteilten Verarbeitung sowie einer knoten-impliziten Auslösung betrachtet werden. Diese Ausführungsform ist in der 4c dargestellt.
  • Wie in den vorherigen Fällen wird zunächst eine Baumtopologie des Netzes aufgebaut und die Dienstinstanzen in sämtlichen Blättern des Baumes angeordnet (Schritte 40c, 42c).
  • Daraufhin wird eine Schleife für jede Dienstinstanz durchgeführt. Gibt es in dem Knoten weitere Dienstinstanzen, so werden diese zusammengeführt (Test 44c, Schritt 46c). Wie bei den vorherigen Ausführungsformen werden gemäß einer vereinfachten Variante sämtliche Anforderungen von sämtlichen Clients kombiniert, jedoch nicht zusammengeführt. Die notwendige Information wird dann, falls vorhanden, von dem Knoten der nächst höheren Ebene abgerufen (Schritt 48c). Ist es möglich, die Dienstinstanz an den Knoten der nächst höheren Ebene zu bewegen (Test 50c), so wird die Dienstinstanz an den Knoten der nächst höheren Ebene bewegt (Schritt 52c), und wahlweise wird im Knoten der niedrigeren Ebene ein Fußabdruck, z.B. ein Zeiger, hinterlassen, der anzeigt, dass die Dienstinstanz den entsprechenden Knoten zuvor passiert hat. Ist es nicht möglich, die Dienstinstanz an den Knoten der nächst höheren Ebene zu bewegen, so wird der Dienstinstanz ein halb-permanenter Status verliehen (Schritt 54c).
  • Befindet sich ein Fußabdruck in dem Knoten, so wird wahlweise eine entsprechende Meldung an die Wurzel gesendet. Ein Knoten einer höheren Ebene, der diese Meldung (auf deren Weg zur Wurzel) empfängt, überprüft, ob er die Anforderungen der Clients, die von dem Absender der Meldung bedient werden können, erfüllt, Falls ja, entfernt er diese Anforderungen und berechnet neue akkumulierte Anforderungen für die verbleibenden Clients.
  • Die Schleife wird beendet, wenn sämtlichen Dienstinstanzen ein halb-permanenter Status zugeordnet wurde (Test 56c).
  • Anschließend können die Dienstinstanzen mit einem halb-permanenten Status, wie oben erwähnt, wahlweise näher an die Clients heranbewegt werden.
  • Bei diesem Szenario kann ein Knoten seine Ebene in dem Baum aus den Routing-Protokollinformationen kennen. Wie im vorherigen Fall wird auch hier einer Ebene- zu-Ebene-Vorangehensweise gefolgt (baum-basierte Topologie, verteilte Verarbeitung, zentrale Auslösung), jedoch ohne eine zentrale Steuer- und Auslöseeinheit.
  • Wie oben erwähnt, kann jeder Knoten anstelle der entsprechenden Dienstinstanzanforderungen einen Fußabdruck speichern, der der Dienstinstanz entspricht, wenn diese Dienstinstanz diesen Knoten zuvor passiert hat. Wenn eine andere Dienstinstanz in diesem Knoten ankommt, so kann sie sämtliche notwendigen Informationen aus der Dienstinstanz mit dem Fußabdruck abrufen. Ein Fußabdruck kann auch zum Optimieren der Prozedur verwendet werden: Ein Knoten sendet eine Meldung nur aufwärts (d.h. zur Wurzel), wenn eine neue halb-permanente Dienstinstanz in dem Knoten angeordnet werden soll und dieser Knoten über einen Fußabdruck verfügt. Entfernt ein Knoten höherer Ebene die Dienstinstanz (weil ein Knoten einer niedrigeren Ebene keine Dienstinstanz angeordnet hat), so müssen sämtliche Fußabdrücke zwischen dem Knoten der höheren Ebene und dem Knoten, in dem die Dienstinstanz gerade angeordnet ist, entfernt werden. Ferner informiert der Knoten der höheren Ebene den Knoten der niedrigeren Ebene, der die Dienstinstanz für die zuvor von dem Knoten bedienten Clients hostet, über die bedienten Kunden sowie deren Anforderungen. Somit kennt jede Dienstinstanz die Clients und deren Anforderungen an die Dienstinstanzfähigkeiten.
  • Dieses Verfahren kann das Entfernen bzw. Hinzufügen von Clients auch dynamisch vornehmen. Für die neuen Clients wird eine Dienstinstanz in dem entsprechenden Blattknoten angeordnet. Die Dienstinstanz wird dann gemäß dem zuvor beschriebenen Verfahren zur Wurzel bewegt. Für entfernte Clients wird eine Meldung aufwärts gesendet, die vortäuscht, dass eine Dienstinstanz für diesen Client in einer niedrigeren Ebene angeordnet wurde. Der Knoten der höheren Ebene mit der Dienstinstanz, die diesen Client bedient hat, entfernt dann die entsprechenden Anforderungen für den entfernten Client.
  • Im folgenden soll der Fall einer Dienstverteilungsoptimierungsprozedur mit einer baum-basierten Topologie, einer verteilten Verarbeitung sowie einer zentralen Auslösung betrachtet werden.
  • Dieser Vorgang ist in den Zeichnungen nicht dargestellt, da er im wesentlichen derselbe ist, wie die Prozedur, die im Falle einer (in 4a dargestellten) baum-basierten Topologie, einer verteilten Verarbeitung sowie einer zentralen Auslösung ausgeführt wird. Der einzige Unterschied besteht darin, dass keine Auslöser erforderlich sind. Weitere Optimierungen sind möglich, nämlich aufgrund der Tatsache, dass sämtliche der notwendigen Informationen zentral zur Verfügung stehen.
  • Es sei angemerkt, dass eine Kombination der zentralen Verarbeitung und des Abrufes verteilter Informationen (wobei die Wurzel oder der Server Informationen durch Abfragen bei den verschiedenen Knoten abruft) von derselben Prozedur abgewickelt werden würde.
  • Das Flussdiagramm gemäß 4d fasst die Reihenfolge der gemäß dem Optimierungsverfahren – welches den Gegenstand der Erfindung darstellt – ausgeführten Schritte in einer ersten bevorzugten Ausführungsform zusammen, wobei das Netz mittels einer baum-basierten Topologie modelliert ist.
  • Bevor die optionale (nicht dargestellte) Prozedur ausgeführt wird, die darin besteht, dass versucht wird, die Dienstinstanzen näher zu den Clients zu bewegen, wird das Optimierungsverfahren gemäß der Erfindung wie in 4d gezeigt durchgeführt.
  • Während eines ersten Schrittes 40 wird eine Dienstinstanz in jedem Blatt des Baumes angeordnet.
  • Ausgehend von den Blättern im Baum (Ebene N) und der Bewegung zur Wurzel (Ebene 0), wie dies im Initialisierungsschritt 41 und im Abwärtsschritt 46 gezeigt ist, wird als nächstes die folgende Prozedur Ebene für Ebene des Baumes ausgeführt:
    Für jeden Knoten der geprüften Ebene, auf der eine Dienstinstanz angeordnet ist, wird überprüft (Test 42), ob die Dienstinstanz weiter aufwärts zur Wurzel des Baumes bewegt werden kann, vorausgesetzt, dass die Wurzel noch nicht erreicht wurde (ein Test 47 folgt dem Abwärtsschritt 46 und besteht in der Überprüfung, ob der die Ebene darstellende Index gleich 0 ist).
  • Um zu erkennen, ob die Dienstinstanz im Baum weiter aufwärts bewegt werden darf, kann der Knoten den nächsten, im Baum höher angeordneten Knoten kontaktieren, z.B. den entsprechenden Betriebsmittel-Manager im Falle eines Teilnetzes, um den Betriebsmittelstatus anzufordern. Bei der Anforderung kann es sich entweder um ei ne allgemeine Anforderung handeln, oder eine dedizierte Anforderung für die entsprechenden relevanten Metriken.
  • Gemäß einer Variante kann der Knoten Betriebsmittelinformationen verwenden, die von höheren Ebenen im Baum empfangen wurden, ohne eine Anforderung zu senden.
  • Somit wird überprüft, ob die im Knoten angeordnete Dienstinstanz die Anforderungen sämtlicher Clients erfüllt.
  • Ist das Ergebnis des Tests 42 positiv, so wird die Dienstinstanz zur Ebene i-1 bewegt (Schritt 43). Anderenfalls bleibt der Ort der Dienstinstanz gleich.
  • Die beiden folgenden Schritte 44 und 45 basieren auf der Berücksichtigung der Möglichkeit, mehrere Dienstinstanzen miteinander zu kombinieren, sowie auf der Berücksichtigung deren möglicher akkumulierter oder kombinierter Anforderungen. Schritt 45 ist optional.
  • Wann immer zwei oder mehr Dienstinstanzen sich beispielsweise während des Schrittes 44 im selben Knoten treffen, werden sie vorzugsweise zu einer einzigen Dienstinstanz kombiniert, und der entsprechende Metrikwert, der eine Anforderung beschreibt, ist entweder der minimale oder der maximale Wert der Metrik der akkumulierten Anforderung, je nach Art der Metrik. Stellt die Metrik beispielsweise eine Verzögerung dar, so bildet die der akkumulierten Anforderung zugeordnete einzige Metrik das Minimum für beide vorherigen Metriken, während, wenn die Metrik die Bandbreite darstellt, der der akkumulierten Anforderung zugeordnete Metrikwert das Maximum der beiden vorherigen Metriken bildet. Als ein Ergebnis der Kombination von Dienstinstanzen stellt dann eine einzige kombinierte Dienstinstanz den Dienst an mehrere Clients gleichzeitig bereit. Gemäß einer vereinfachten Variante werden sämtliche Anforderungen von sämtlichen Clients kombiniert, jedoch nicht zusammengeführt.
  • Falls unterschiedliche Metriken oder Kombinationen von Metriken während des Schritts 45 für individuelle Zweige des Baumes verwendet werden, werden diese vorzugsweise zu einer größeren Menge von Metriken kombiniert. Verwendet beispielsweise einer der Zweige des Graphs lediglich eine auf einer Verzögerung basierte Metrik, während ein anderer Zweig nur eine auf der Bandbreite basierende Metrik verwendet, so kann der kombinierende Knoten sowohl die Verzögerung als auch die Bandbreite für beide Zweige verwenden, oder aber er kann jede Metrik individuell für jeden der Zweige verwenden. Bei einem Video-Streaming-Dienst kann die Kombination von Metriken beispielsweise eine vorbestimmte maximale Verzögerung, eine vorbestimmte minimale Bandbreite sowie ein vorbestimmtes minimales Jitter (d.h. eine maximale Verzögerungsschwankung) enthalten, um eine akzeptable Dienstgüte zu gewährleisten.
  • Gemäß einer weiteren bevorzugten Ausführungsform kann das Netz nicht von einer baum-basierten Topologie, sondern von einer gemaschten Topologie modelliert sein.
  • Im folgenden soll der Fall einer Dienstverteilungsoptimierungsprozedur mit einer gemaschten Topologie, einer zentralen Verarbeitung und einer zentralen Auslösung betrachtet werden. Die Prozedur läuft wie folgt ab:
    • 1. Ein Netz wird auf der Basis gegebener Anforderungen und Verzögerungsbeschränkungen etc. aufgebaut.
    • 2. Es wird eine aus Ebenen bestehende Netzstruktur aufgebaut, so dass die erste Ebene aus dem Server besteht, während andere Ebenen aus den Knoten bestehen, die dieselbe Entfernung zum Server aufweisen. Mit Ausnahme der ersten Ebene können Clients in jeder Ebene angeordnet sein. Die Ebenen sind nach ihrer Entfernung vom Server geordnet (je größer die Entfernung, desto höher die Anzahl der Ebenen).
    • 3. Eine Menge C sämtlicher Clients, denen der Dienst bereitgestellt werden muss, wird aufgebaut.
    • 4. Jeder Netzknoten wird als zur Bedienung eines Clients befähigt markiert, für den Fall, dass die existierenden Beschränkungen es dem Client ermöglichen, von einer innerhalb dieses Knotens des Netzes angeordneten Dienstinstanz bedient zu werden. Somit kann ein und derselbe Knoten mit mehreren potentiellen Clients markiert sein.
    • 5. Die Ebene mit der höchsten Nummer, d.h. die Ebene, die am weitesten vom Server entfernt ist, wird ausgewählt.
    • 6. Eine Menge S sogenannter „verbotener" Clients wird aufgebaut, wobei es sich um solche Clients handelt, die von der gegebenen Ebene bedient werden können, die jedoch nicht von jeder Dienstinstanz bedient werden können, falls sie näher am Server angeordnet sind.
    • 7. Ist die Menge S leer, so ist der folgende Schritt der unten beschriebene Schritt 11.
    • 8. Der Knoten N der gegebenen Ebene, die mindestens einen verbotenen Client bedienen und gleichzeitig die maximale Anzahl an Clients bedienen kann, wird gesucht, und eine Dienstinstanz mit einem halb-permanenten Staus wird in diesem Knoten angeordnet.
    • 9. Sämtliche Clients, die von dem Knoten N bedient werden können, werden aus den Mengen S und C entfernt (die entfernten Clients bleiben in den weiteren Schritten unbeachtet).
    • 10. Ist die Menge S nicht leer, so ist der folgende Schritt der Schritt 8.
    • 11. Die Prozedur ist beendet, wenn die Menge C von Clients leer ist oder wenn sämtliche Ebenen berücksichtigt wurden.
    • 12. Es wird die Ebene ausgewählt, die der Ebene, die gerade berücksichtigt wurde, folgt und dem Serverknoten näher ist, und der folgende Schritt ist Schritt 6.
  • Schritt 8, der einen sogenannten „gierigen" Schritt darstellt, da er nicht notwendigerweise ein optimales Resultat liefert, kann je nach Netz und existierenden Anforderungen in geeigneter Weise modifiziert werden. Er kann beispielsweise darin bestehen, dass er den Knoten N der gegebenen Ebene, die die maximale Anzahl verbotener Clients bedienen kann, sucht und dort eine Dienstinstanz anordnet.
  • Die Komplexität des vorgeschlagenen Verfahrens kann je nach der Effektivität der Implementierung, und insbesondere der für die Netzwerkdarstellung verwendeten Datenstruktur variieren. Um die Effizienz zu steigern, können Abwandlungen des Verfahrens in Betracht gezogen werden. Beispielsweise können die Schritte 2, 3, 4 in Schritt 6 im erforderlichen Umfang dynamisch durchgeführt werden.
  • Anschließend können die Dienstinstanzen mit einem halb-permanenten Status wahlweise, wie oben erwähnt, näher an die Clients heranbewegt werden.
  • Das Flussdiagramm gemäß 5 fasst die Reihenfolge der gemäß dem Optimierungsverfahren – welches den Gegenstand der Erfindung darstellt – ausgeführten Schritte in einer derartigen bevorzugten Ausführungsform zusammen.
  • Wie in 5 gezeigt, besteht ein vorläufiger Schritt 50 im Aufbau einer kombinierten Netzmetrik auf der Basis gegebener Anforderungen und Beschränkungen hinsichtlich der Dienstgüte und weiterer Kenndaten, die eine Dienstinstanz erfüllen soll.
  • Eine aus Ebenen bestehende Netzstruktur wird durch Verwenden der gemäß dem oben beschriebenen Schritt 2 kombinierten Metrik aufgebaut. Dies kann durch Verwendung eines herkömmlichen Routing-Protokolls erfolgen, welches die kürzesten Wege zu den Netzknoten und deren Länge kennt.
  • Die nächsten Schritte 52, 53, 54, 55, 56, 57, 58 ähneln den Schritten 40, 41, 42, 43, 44, 45, 46, 47 gemäß der Ausführungsform nach 4d, so dass deren Beschreibung hier nicht wiederholt wird.
  • Bei einer derartigen vermaschten Topologie sowie im Falle einer baum-basierten Toppologie stellen die Zielpunkte in dem Graph die Quellen dar, von wo aus die Dienstinstanzen ihren Weg zum Dienstanbieter beginnen. Die unterschiedlichen Zielpunkte im Graph können in unterschiedlichen Entfernungen vom Dienstanbieter angeordnet sein, d.h. die Anzahl der Teilnetze zwischen jedem der Zielpunkte und dem Dienstanbieter können verschieden sein.
  • Da die Adresse des Dienstanbieters bekannt ist, können die standardmäßigen Routing-Tabellen des im Netz implementierten Routing-Protokolls verwendet werden, um den nächsten Hop zum Erreichen des Dienstanbieters zu bestimmen.
  • Die Kenndaten sämtlicher Netze sind entweder verfügbar, z.B. in einer Tabelle, oder die Kenndaten des nächsten Teilnetzes des nächsten Teilnetzes müssen abgerufen werden, wenn bekannt ist, welches Teilnetz das nächste auf dem Weg zum Dienstanbieter ist. Die Auswahl des nächsten Teilnetzes basiert auf der Routing-Metrik, die beispielsweise die Verzögerung als Kriterium für das Routing verwendet. Da mehrere Metriken möglicherweise gleichzeitig berücksichtigt werden müssen, entweder für einen Client oder, im Falle einer akkumulierten Metrik, für mehrere Clients, müssen die Routing-Protokolle dahingehend erweitert werden, dass sie Daten auf der Basis mehrerer Metriken gleichzeitig weiterleiten, es sei denn, die mehreren Metriken sind, wie oben beschrieben, zu einer einzigen Metrik kombiniert.
  • Um zu gewährleisten, dass unterschiedliche Dienstinstanzen kombiniert werden, können Dienstinstanzen einen als „Fußabdruck" bezeichneten Hinweis in jedem der Teilnetze hinterlassen, die sie auf ihrem Weg zum Dienstanbieter passiert haben, so dass diese Hinweise von den Dienstinstanzen benutzt werden können, die während eines späteren Analyseschrittes im selben Teilnetz ankommen. Hierdurch wird es möglich, die entsprechende Dienstinstanz zu verfolgen und mehrere Dienstinstanzen zu kombinieren.
  • Der Hinweis, der in jedem Teilnetz, in dem die Dienstinstanz bewegt wird, hinterlassen wird, kann ein Zeiger auf dieses Teilnetz sein. In diesem Fall kann die Dienstinstanz beim Bewegen zu einem neuen Teilnetz möglicherweise sämtliche Zeiger aktualisieren. Allerdings sind Zeiger entweder direkt (d.h. sie weisen auf das Teilnetz mit der Dienstinstanz hin) oder indirekt (d.h. sie weisen auf das Teilnetz hin, das das nächste auf dem Weg zu dem Teilnetz mit der Dienstinstanz ist). Nur im ersten Fall müssen sämtliche Zeiger aktualisiert werden. Aus diesem Grund ist in keinem der Knoten eine Wegüberschreitung oder Überprüfung notwendig, da die endgültige Adresse bekannt ist.
  • Gemäß einer Variante kann die Dienstinstanz in einem Teilnetz, in dem sie sich bewegt, zusätzlich zu dem Zeiger sämtliche notwendigen Informationen hinterlassen, z.B. die Werte der Metriken, die vom Blatt zu Teilnetz akkumuliert wurden, sowie wahlweise den Zeitpunkt, zu dem die Dienstinstanz das Teilnetz durchläuft.
  • Eine Variante zum Kombinieren von Dienstinstanzen kann auf Entfernungsvektor-Routing-Protokollen basieren, die eine Tabelle mit den kürzesten Wegen zu sämtlichen Zielen enthält. Eine Vielzahl von Tabellen sind zur Wiedergabe verschiedener Metriken oder Metrikkombinationen notwendig, es sei denn, dass die Vielzahl von Metriken, wie oben beschrieben, zu einer einzigen Metrik kombiniert werden. Externe Gateway-Routing-Protokolle, z.B. das BGP (Border Gateway Protocol), enthalten derartige Tabellen und werden zum Sicherstellen der Konnektivität zwischen Teilnetzen oder autonomen Systemen verwendet. Hierdurch kennt jedes Teilnetz seine Entfernung zu der Wurzel, d.h. zum Dienstanbieter.
  • Die Teilnetze tauschen daraufhin Informationen aus, um zu bestimmen, welches Teilnetz seine Dienstinstanz im Baum aufwärts bewegen soll. Ähnliche Mechanismen, wie die Auswahl eines Masters, wie sie z.B. in vielen der Routing-Protokolle oder Serverauswahlprozeduren in LANs angewendet werden, können zum Bestimmen des Teilnetzes verwendet werden, das mit dem Bewegen seiner Dienstinstanz an ein nächst höheres Teilnetz beginnen kann. Berücksichtigt man die metrik-basierten Entfernungen, kann der sich ergebende Master derjenige sein, der am weitesten von der Dienstursprungseinrichtung entfernt ist.
  • Die Analyseimplementierung kann entweder auf einer Tabelle basieren, wie in 6 dargestellt, oder auf Petrinetzen, wobei die Voraussetzungen die Bedingungen und die Dienstinstanzen die Token im Netz darstellen.
  • Die Tabelle gemäß 6 kann in dem Knoten gespeichert sein, der die Analyse durchführt. Sie zeigt die Bereiche für die unterschiedlichen Clients C1 bis C7. Aus der Ebene im Baum (die in der rechten Spalte der Tabelle erwähnt ist) sowie aus dem entsprechenden Bereich für eine bestimmten Client, ist das Teilnetz Si (i = 1,..., 23) bekannt, das der Wurzel am nächsten ist und das diesem bestimmten Client die adäquate Dienstgüte bereitstellen kann. Im gezeigten Beispiel ist die höchste Ebene im Baum mit 1 bezeichnet (die Wurzel des Baumes ist das Teilnetz S1) und die niedrigste Ebene (die Blätter des Baumes) ist mit 6 bezeichnet. Das Teilnetz S2 erfüllt beispielsweise die Anforderungen der Clients C1 und C2. Es sei angemerkt, dass die Voraussetzungen, d.h. die Bedingungen, akkumulierte Voraussetzungen wiedergeben kann. Die Analyse beginnt mit dem Überprüfen sämtlicher Teilnetze der Ebene 6, um zu bestimmen, ob die auf dieser Ebene angeordneten Dienstinstanzen aufwärts des Baumes bewegt werden dürfen. Ist dies der Fall, so werden die betroffenen Dienstinstanzen eine Ebene nach oben bewegt, und es wird eine Markierung in die Tabelle eingefügt, die angibt, dass eine Dienstinstanz das Teilnetz der höheren Ebene erreicht hat.
  • Zusätzlich werden die entsprechenden Metriken berücksichtigt und möglicherweise mit den Metriken anderer Dienstinstanzen, die von anderen Zweigen stammen, kombiniert.
  • Nachdem sämtliche Teilnetze der Ebene 6 geprüft wurden, werden sämtliche Teilnetze der Ebene 5 in identischer Weise geprüft, usw.
  • Mehrere Parameter und zusätzliche Anzeiger können wahlweise oben in der Tabelle enthalten sein, um die Analyse zu verfeinern oder zu beschleunigen. Wie beispielsweise in der letzten Reihe der Tabelle gezeigt, kann ein Hinweis über die Anzahl der sich überschneidenden Teilnetze pro Client gegeben werden. Zwischenergebnisse der Analyse können in der Tabelle gespeichert werden, um den Vorgang zu beschleunigen.
  • Gemäß einer Variante kann anstelle einer tabellen-basierten Analyse eine Petrinetz-analyse verwendet werden.
  • Petrinetze stellen einen graphischen Formalismus für Systemspezifikationen dar. Sie werden aus einer endlichen Menge von Stellen, eine endlichen Menge von Transitionen sowie einer endlichen Menge von Pfeilen, die entweder Stellen mit Transitionen oder Transitionen mit Stellen verbinden, gebildet. Graphisch gesehen werden Stellen gewöhnlich mit Kreisen und Transitionen mit Balken dargestellt.
  • Einem Petrinetz wird durch das Markieren seiner Stellen ein Zustand verliehen. Eine Markierung eines Petrinetzes besteht aus der Zuordnung einer nichtnegativen ganzen Zahl zu jeder Stelle. Graphisch wird dies gewöhnlich durch das Einsetzen einer Anzahl von Tokens in jede Stelle des Netzes dargestellt.
  • Eine Transition kann eine oder mehrere Eingabe- und Ausgabestellen aufweisen. Geht ein Pfeil von einer Stelle zu einer Transition, so wird die Stelle als eine der Ausgabestellen der Transition bezeichnet. Eine Transition wird als aktiv bezeichnet, wenn sich mindestens ein Token in jeder der Eingabestellen befindet. Eine aktivierte Transition kann auslösen. Dies bedeutet, dass ein Token aus jeder Eingabestelle entfernt wird, während ein Token in jeder Ausgabestelle der Transition eingesetzt wird. Sind mehr als eine Transition aktiv, so ist das Modell nicht vorherbestimmbar, in dem Sinne, dass bei einer ersten Markierung unterschiedliche Entwicklungen des Petrinetzes möglich sind.
  • In einem Petrinetz wird von einer Transition gewöhnlich ein Ereignis oder ein Vorgang modelliert, und ihre Auslösung bedeutet das Stattfinden des Ereignisses oder die Ausführung eines Vorgangs. Somit ist eine Transition aktiviert, wenn die Bedingungen erfüllt sind, die das Stattfinden des modellierten Ereignisses oder des Vorganges erlauben. Das Vorliegen eines Tokens in einer Stelle kann die Existenz einer Bedingung bezeichnen. Beispielsweise kann eine Stelle ein Betriebsmittel modellieren, und die Existenz eines oder mehrerer Tokens in dieser Stelle bedeutet die Verfügbarkeit einer oder mehrerer Instanzen dieses Betriebsmittels. Um eine ausführlichere Beschreibung der Grundprinzipien von Petrinetzen zu erhalten, kann auf „Fundamentals of Software Engineering" von Ghezzi et al., Prentice Hall International, New Jersey 1991 verwiesen werden.
  • Erfindungsgemäß wird der Verteilungsbaum von einem Petrinetz derselben Form modelliert. Die Teilnetze sind die Stellen, die Dienstinstanzen sind die Tokens, die die entsprechenden Metrikwerte übertragen, und die Transitionen haben zugehörige Bedingungen, die sich auf die maximale Distanz beziehen, die die Dienstinstanz von den Clients, d.h. von den Blättern, entfernt sein darf. Die Entfernung kann auf jeder der entsprechenden Metriken oder Metrikkombinationen basieren, die für die Clients wichtig sind. Jedes Teilnetz wird von einer Stelle in dem Petrinetz wiedergegeben. Eine Dienstanordnung in einem bestimmten Teilnetz (d.h. ein Knoten in dem Verteilungsbaum oder in der vermaschten Topologie) wird durch ein Token in einer Stelle im Petrinetz modelliert.
  • Tokens werden zuerst in den Blattstellen angeordnet. Das Bewegen der Dienstinstanz zur Wurzel erfolgt durch das Aufwärtsbewegen der Token durch das Petrinetz. Um ein Token von einer Stelle zur nächsten zu bewegen, muss eine Transition aktiviert und ausgelöst werden. Die Auslösung einer Transition erfolgt über denselben Algorithmus, der oben beschrieben ist. Zu diesem Zweck verfügt das Token über Werte, die von den Analysen verwendet und aktualisiert werden.
  • Das Zusammenführen von Dienstinstanzen erfolgt dadurch, dass Transitionen mit weniger Ausgabetoken als Eingabetoken vorliegen.
  • Die endgültige Verteilung der Dienstinstanzen ist erreicht, wenn die Entwicklung des Petrinetzes abbricht, d.h. wenn die Token nicht länger in Bewegung sind und zusammengeführt werden.
  • Petrinetze können sowohl bei baum-basierten als auch bei vermaschten Topologien angewendet werden.
  • Auch können Richtlinien für die Zeitsteuerung verwendet werden. Ist die reine Nichtvorherbestimmbarkeit des Petrinetzmodells nicht ausreichend, so entsteht das Problem mit Blick auf das Festlegen einer Richtlinie für die Auswahl einer auszulösenden Transition unter sämtlichen aktivierten Transitionen. Eine recht einfache Möglichkeit zur Lösung dieses Problems besteht im Anhängen von Prioritäten an die Transitionen. Die Auslöseregel wird dann wie folgt geändert: Sind in einem Zustand mehrere Transitionen aktiviert, so dürfen lediglich diejenigen mit der maximalen Priorität auslösen.
  • Prioritäten werden gewöhnlich statisch definiert. Übertragen Tokens einen Wert, können jedoch Prioritäten definiert werden, deren Werte von den Werten der Tokens der Eingabestellen der Transitionen abhängen.
  • Zeitlich gesteuerte Petrinetze können ebenfalls verwendet werden. Zeitlich gesteuerte Petrinetze sind Petrinetze, in welchen jeder Transition ein Paar (tmin, tmax) zugeordnet ist. Derartige Werte könnten wiederum konstant sein oder als Funktionen der Werte von Token in den Eingabestellen berechnet werden. Sobald eine Transition aktiviert ist, muss sie den Ablauf mindestens einer Zeit tmin abwarten, bevor sie auslösen kann. Bei Aktivierung muss sie ebenso auslösen, bevor eine Zeit tmax abgelaufen ist, es sei denn, sie ist durch das Auslösen einer anderen Transition vor tmax deaktiviert. Ein zeitlich gesteuertes Petrinetz entspricht eine ursprünglichen Petrinetz, wenn für jede Transition tmin = 0 und tmax = unbestimmt.
  • Wie in 7 gezeigt, umfasst eine Vorrichtung zum Bestimmen von Orten von Dienstinstanzen zum Optimieren der Verteilung eines Dienstes in einem Netz von einer Quelle zu einer Vielzahl von Clients mit jeweils vorbestimmten Anforderungen, wobei das Netz mittels eines Graphs modelliert werden kann, erfindungsgemäß:
    Aufnahmemittel 70 zum Hosten einer Dienstinstanz;
    wie oben beschrieben, eine Überprüfungseinheit 72 zum Überprüfen, ob die Dienstinstanz, wenn diese in einem Knoten der nächst höheren Ebene angeordnet ist, die Anforderungen sämtlicher von der Dienstinstanz zu bedienenden Clients erfüllen kann;
    eine Verarbeitungseinheit 74 zum Koordinieren der Aufnahmeeinheit 70 und der Überprüfungseinheit 72 und zum Steuern des Knotens; und
    eine Eingabe-/Ausgabeeinheit 76 zum Senden und Empfangen von Nachrichten und Dienstinstanzen.
  • In der gemäß 7 dargestellten besonderen Ausführungsform umfasst die Vorrichtung ferner eine Kombiniereinheit 78 zum Bestimmen, dass sich mindestens zwei Dienstinstanzen in dem Knoten treffen, und zum Kombinieren dieser Dienstinstanzen.

Claims (8)

  1. Verfahren zum Bestimmen von Orten von Dienstinstanzen zum Optimieren der Verteilung eines Dienstes in einem Netz, von einer Quelle zu einer Vielzahl von Clients mit jeweils vorbestimmten Anforderungen, wobei das Netz mittels eines Graphs modelliert werden kann, wobei das Verfahren dadurch gekennzeichnet ist, dass es die Schritte umfasst: Anordnen (40) einer Dienstinstanz in jedem Blatt in dem Graph; und, ausgehend von den Blättern, für jede Dienstinstanz: Überprüfen (42), ob die Dienstinstanz, wenn diese in einem Knoten der nächst höheren Ebene angeordnet ist, die Anforderungen sämtlicher von der Dienstinstanz zu bedienenden Clients erfüllen kann; und Bewegen (43) oder nicht der Dienstinstanz eine Ebene nach oben, in Abhängigkeit des Ergebnisses der Überprüfungsschrittes (42).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es weiterhin die Schritte des Bestimmens (44), dass sich mindestens zwei Dienstinstanzen in dem Knoten treffen, und des Kombinierens dieser Dienstinstanzen umfasst.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass es vor dem Schritt des Anordnens (40) weiterhin einen Schritt (50) des Bestimmens von Ebenen in dem Graph umfasst.
  4. Verfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass der Schritt des Überprüfens (42) einen tabellen-basierten Analyseschritt umfasst.
  5. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass der Schritt des Überprüfens (42) einen Petrinetz-Analyseschritt umfasst.
  6. Server, der ausgestaltet ist, als eine Quelle zum Bestimmen von Orten von Dienstinstanzen zum Optimieren der Verteilung eines Dienstes in einem Netz von der Quelle zu einer Vielzahl von Clients mit jeweils vorbestimmten Anforderungen zu agieren, wobei das Netz mittels eines Graphs modelliert werden kann, wobei die Quelle gekennzeichnet ist durch Mittel zum Anordnen einer Dienstinstanz in jedem Blatt des Graphs; und, Mittel, ausgehend von den Blättern, für jede Dienstinstanz zum Überprüfen, ob die Dienstinstanz, wenn diese in einem Knoten der nächst höheren Ebene angeordnet ist, die Anforderungen sämtlicher von der Dienstinstanz zu bedienenden Clients erfüllen kann; und Bewegen oder nicht der Dienstinstanz eine Ebene nach oben, in Abhängigkeit des Ergebnisses der Überprüfungsschrittes.
  7. Vorrichtung zum Bestimmen von Orten von Dienstinstanzen zum Optimieren der Verteilung eines Dienstes in einem Netz von einer Quelle zu einer Vielzahl von Clients mit jeweils vorbestimmten Anforderungen, wobei das Netz mittels eines Graphs modelliert werden kann, wobei die Vorrichtung dadurch gekennzeichnet ist, dass sie umfasst: Aufnahmemittel (70) zum Hosten einer Dienstinstanz; Überprüfungsmittel (72) zum Überprüfen, ob die Dienstinstanz, wenn diese in einem Knoten der nächst höheren Ebene angeordnet ist, die Anforderungen sämtlicher von der Dienstinstanz zu bedienenden Clients erfüllen kann; Verarbeitungsmittel (74) zum Koordinieren der Aufnahmemittel (70) und der Überprüfungsmittel (72) und zum Steuern des Knotens; und Eingabe-/Ausgabemittel (76) zum Senden und Empfangen von Nachrichten und Dienstinstanzen.
  8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, dass sie weiterhin Kombiniermittel (78) zum Bestimmen, dass sich mindestens zwei Dienstinstanzen in dem Knoten treffen, und zum Kombinieren dieser Dienstinstanzen umfasst.
DE60204581T 2002-12-09 2002-12-09 Verfahren zur Optimierung der Verteilung eines Dienstes von einer Quelle zu mehreren Dienstempfängern in einem Netzwerk Expired - Lifetime DE60204581T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP02293038A EP1437874B1 (de) 2002-12-09 2002-12-09 Verfahren zur Optimierung der Verteilung eines Dienstes von einer Quelle zu mehreren Dienstempfängern in einem Netzwerk

Publications (2)

Publication Number Publication Date
DE60204581D1 DE60204581D1 (de) 2005-07-14
DE60204581T2 true DE60204581T2 (de) 2006-05-04

Family

ID=32479822

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60204581T Expired - Lifetime DE60204581T2 (de) 2002-12-09 2002-12-09 Verfahren zur Optimierung der Verteilung eines Dienstes von einer Quelle zu mehreren Dienstempfängern in einem Netzwerk

Country Status (4)

Country Link
US (2) US8510365B2 (de)
EP (1) EP1437874B1 (de)
AT (1) ATE297627T1 (de)
DE (1) DE60204581T2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006056019A1 (de) * 2006-11-28 2008-05-29 Volkswagen Ag Analyseverfahren und Analysemodul für ein Entscheidersystem
DE102006056021B4 (de) * 2006-11-28 2014-07-31 Volkswagen Ag Entscheidersystem und Entscheidungsverfahren mit Analysefähigkeiten zum Steuern der Wechselwirkung von Komponenten mittels einer Vorrichtungslogik sowie Entwicklungssystem und Entwicklungsverfahren dafür

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664080B2 (en) * 2004-10-27 2010-02-16 Honeywell International Inc. Discreet event operators for event management in a wireless sensor network
US7590098B2 (en) * 2004-10-27 2009-09-15 Honeywell International Inc. Publish/subscribe model in a wireless sensor network
US7561544B2 (en) * 2004-10-27 2009-07-14 Honeywell International Inc. Machine architecture for event management in a wireless sensor network
US7630336B2 (en) * 2004-10-27 2009-12-08 Honeywell International Inc. Event-based formalism for data management in a wireless sensor network
US8027280B2 (en) * 2004-10-27 2011-09-27 Honeywell International Inc. Layered architecture for data management in a wireless sensor network
US7715308B2 (en) * 2004-12-09 2010-05-11 Honeywell International Inc. Fault tolerance in a wireless network
US7664020B2 (en) * 2005-11-07 2010-02-16 Hanan Luss Bandwidth allocation for video-on-demand networks
US7885269B2 (en) * 2008-03-03 2011-02-08 Microsoft Corporation Network analysis with Steiner trees
US20110153788A1 (en) * 2009-12-23 2011-06-23 Jacobus Van Der Merwe Method and System for Automated Network Operations
US9159056B2 (en) * 2012-07-10 2015-10-13 Spigit, Inc. System and method for determining the value of a crowd network
US9419854B1 (en) * 2013-06-27 2016-08-16 The Boeing Company Methods and systems for shared awareness through local observations and global state consistency in distributed and decentralized systems
US20150039279A1 (en) * 2013-08-02 2015-02-05 Vitali Volovoi Systems and methods for modeling a complex system using abridged petri nets
US10545938B2 (en) 2013-09-30 2020-01-28 Spigit, Inc. Scoring members of a set dependent on eliciting preference data amongst subsets selected according to a height-balanced tree
US10778715B2 (en) * 2017-04-10 2020-09-15 Oath Inc. Automatic peer to peer level of activity information maintenance and sharing method and apparatus
US11647090B2 (en) * 2018-01-15 2023-05-09 Korea Advanced Institute Of Science And Technology Spatio-cohesive service discovery and dynamic service handover for distributed IoT environments

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL99923A0 (en) * 1991-10-31 1992-08-18 Ibm Israel Method of operating a computer in a network
US6182224B1 (en) * 1995-09-29 2001-01-30 Cisco Systems, Inc. Enhanced network services using a subnetwork of communicating processors
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6185612B1 (en) * 1998-10-29 2001-02-06 Novell, Inc. Secure distribution and use of weighted network topology information
US6856627B2 (en) * 1999-01-15 2005-02-15 Cisco Technology, Inc. Method for routing information over a network
JP3780732B2 (ja) * 1999-03-10 2006-05-31 株式会社日立製作所 分散制御システム
US6704320B1 (en) * 1999-03-24 2004-03-09 Lucent Technologies Inc. Dynamic algorithm for determining a shortest path tree between network nodes
US6859927B2 (en) * 1999-12-21 2005-02-22 Lockheed Martin Corporation Apparatus and method for controlling allocation of resources and task execution
US6842899B2 (en) * 1999-12-21 2005-01-11 Lockheed Martin Corporation Apparatus and method for resource negotiations among autonomous agents
US6751619B1 (en) * 2000-03-15 2004-06-15 Microsoft Corporation Methods and apparatus for tuple management in data processing system
US20020023166A1 (en) * 2000-04-11 2002-02-21 Amotz Bar-Noy Method for stream merging
EP1211851A1 (de) * 2000-11-30 2002-06-05 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Verfahren und System zur Reservierung von Resourcen in einem Mehrfachsendenetz
EP1231753A1 (de) * 2001-02-13 2002-08-14 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Verfahren für die Verteilung eines Echtzeitmultiklientdienstes
KR20030007773A (ko) * 2001-03-29 2003-01-23 소니 가부시끼 가이샤 정보 처리 장치
CA2347304C (en) * 2001-05-10 2010-10-05 Atreus Systems, Inc. Broadband network service delivery method and device
US7120699B2 (en) * 2001-09-20 2006-10-10 Ricoh Company, Ltd. Document controlled workflow systems and methods
US7296061B2 (en) * 2001-11-21 2007-11-13 Blue Titan Software, Inc. Distributed web services network architecture
US7472270B2 (en) * 2002-04-16 2008-12-30 Microsoft Corporation Secure transmission of digital content between a host and a peripheral by way of a digital rights management (DRM) system
US7260645B2 (en) * 2002-04-26 2007-08-21 Proficient Networks, Inc. Methods, apparatuses and systems facilitating determination of network path metrics
US7184550B2 (en) * 2002-08-15 2007-02-27 Intel Corporation Method and apparatus for simultaneous decryption and re-encryption of publicly distributed content via stream ciphers
US7010471B2 (en) * 2003-01-17 2006-03-07 At&T Corp. Hierarchical topological network designing system and method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006056019A1 (de) * 2006-11-28 2008-05-29 Volkswagen Ag Analyseverfahren und Analysemodul für ein Entscheidersystem
DE102006056021B4 (de) * 2006-11-28 2014-07-31 Volkswagen Ag Entscheidersystem und Entscheidungsverfahren mit Analysefähigkeiten zum Steuern der Wechselwirkung von Komponenten mittels einer Vorrichtungslogik sowie Entwicklungssystem und Entwicklungsverfahren dafür
DE102006056019B4 (de) * 2006-11-28 2017-10-19 Volkswagen Ag Analyseverfahren und Analysemodul für ein Entscheidersystem

Also Published As

Publication number Publication date
US20040199613A1 (en) 2004-10-07
EP1437874A1 (de) 2004-07-14
ATE297627T1 (de) 2005-06-15
EP1437874B1 (de) 2005-06-08
US8510365B2 (en) 2013-08-13
US20090313350A1 (en) 2009-12-17
DE60204581D1 (de) 2005-07-14

Similar Documents

Publication Publication Date Title
DE60204581T2 (de) Verfahren zur Optimierung der Verteilung eines Dienstes von einer Quelle zu mehreren Dienstempfängern in einem Netzwerk
DE60026238T2 (de) Auf vorspezifizierter Dienstgüte basierender Verbindungsaufbau durch ein Kommunikationsnetz
DE69829203T2 (de) Paketnetzwerk
DE69433126T2 (de) Verfahren zum Einrichten von virtuellen Mehrfachsendeverbindungen
DE69533535T2 (de) Verfahren zur effizienten aggregation von verbindungsmetriken
EP0872090B1 (de) Verfahren zum bilden von leitweginformation
DE69629984T2 (de) Leitweglenkungsverwaltung in einem Paketkommunikationsnetz
DE4430993C1 (de) Verfahren zur adaptiven Wegesuche in einem Kommunikationsnetz
DE60216534T2 (de) Vorrichtung und Verfahren zur Bandbreitenverwaltung, dazugehöriges Rechnerprogramm, und Aufzeichnungsmedium, welches das Programm gespeichert hat
DE19528563A1 (de) Kommunikationsanordnung und Verfahren zur Bewertung von mindestens zwei mehrteiligen Kommunikationsverbindungen zwischen zwei Kommunikationspartnern in einem Mehrknotennetzwerk
DE10342310A1 (de) Systeme und Verfahren zur schnellen Auswahl von Vorrichtungen in einem Baumtopologienetz
DE60130844T2 (de) Autonomes OSPF-System mit einem in zwei Teilbereiche getrennten Hauptnetz
DE60026006T2 (de) System zum Empfang von Mehrfachdaten
EP3577871B1 (de) Verfahren und vorrichtung zur modularen lenkung eines avb-streams
EP1397009A1 (de) Verfahren und Vorrichtung zur Nachrichtenlenkung in SS7-Netzen
EP1398907B1 (de) Verfahren zur Kontrolle von Übertragungsressourcen eines paketorientierten Kommunikationsnetzes bei Topologieänderungen
EP3668051A1 (de) Verfahren zur datenübertragung, kommunikationsgerät, com-puterprogramm und computerlesbares medium
DE602004005405T2 (de) Verfahren zur Verkehrsplanung eines Virtual Private LAN Dienstes (VPLS)
WO2020099069A1 (de) Verfahren zur datenübertragung, kommunikationsgerät, computerprogramm und computerlesbares medium
DE102005005278B4 (de) Verfahren zum Betrieb eines Netzknoten eines Kommunikationsnetzes und Netzknoten eines Kommunikationsnetzes
DE60303745T2 (de) Mehrschichtiges Verfahren zum Verwalten von Multicast Teilnehmern
DE60302865T2 (de) Bandbreitenmakler für ein Telekommunikationssystem
WO2022049174A1 (de) Verfahren zum betreiben eines netzwerks
WO2003013098A9 (de) Verfahren zur unterstützung mehrerer prüfsummenalgorithmen in einem netzknoten
EP3906642B1 (de) Verfahren zur datenkommunikation und computerprogramm

Legal Events

Date Code Title Description
8364 No opposition during term of opposition