DE112004003043B4 - System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk - Google Patents

System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk Download PDF

Info

Publication number
DE112004003043B4
DE112004003043B4 DE112004003043.9T DE112004003043T DE112004003043B4 DE 112004003043 B4 DE112004003043 B4 DE 112004003043B4 DE 112004003043 T DE112004003043 T DE 112004003043T DE 112004003043 B4 DE112004003043 B4 DE 112004003043B4
Authority
DE
Germany
Prior art keywords
peer
service
packet
network device
based 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 - Fee Related
Application number
DE112004003043.9T
Other languages
English (en)
Other versions
DE112004003043T5 (de
Inventor
Behrouz Poustchi
Eric Cooper
James A. Stelzig
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.)
Avaya Canada Corp
Original Assignee
Avaya Canada Corp
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 Avaya Canada Corp filed Critical Avaya Canada Corp
Publication of DE112004003043T5 publication Critical patent/DE112004003043T5/de
Application granted granted Critical
Publication of DE112004003043B4 publication Critical patent/DE112004003043B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0063Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer where the network is a peer-to-peer network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

Peer-to-Peer-Netzwerk, umfassend:eine Mehrzahl von untereinander verbundenen, paketbasierten Peer-to-Peer-Netzeinrichtungen (10); undeine Mehrzahl von Diensten, die jeweils von zumindest einer jeweiligen paketbasierten Peer-to-Peer-Netzeinrichtung betrieben werden;wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung, die zumindest einen Dienst der Mehrzahl von Diensten betreibt, den zumindest einen Dienst für andere paketbasierte Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen verfügbar macht;wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung, die zumindest einen Dienst der Mehrzahl von Diensten betreibt, den anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen die Verfügbarkeit des zumindest einen Dienstes bekannt gibt;wobei für einen gegebenen Dienst der Mehrzahl von Diensten der gegebene Dienst einen dynamischen Lastausgleich über mehr als eine paketbasierte Peer-to-Peer-Netzeinrichtung, die den gegebenen Dienst betreibt, erfährt;wobei Dienste in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind, bestimmten paketbasierten Peer-to-Peer-Netzeinrichtungen zugewiesen werden, und wobei eine Anzahl von Dienst-Hosts in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind, erhöht oder vermindert wird.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft Peer-to-Peer-Netzwerke, insbesondere das verteilte Wesen verfügbarer Dienste.
  • Hintergrund der Erfindung
  • Einige moderne Kommunikationslösungen basieren auf der VoIP-Technologie (Voice over IP (Internetprotokoll)), welche die Übertragung von Anrufen über ein Datennetz, das auf dem IP basiert, beinhalten. Die Kommunikation erfolgt in Form von Paketdaten, und somit gibt es keine feste Verbindung, wie es im Falle von Vermittlungsnetzen der Fall wäre. Die Kommunikation kann als Text, Sprache, Grafiken oder Video erfolgen. Um Probleme bei der IP-Kommunikation zu vereinfachen, wurden in der Industrie Standards entwickelt und übernommen. Beispiele für solche Standards sind H.323 (paketbasierte Kommunikationssysteme) und SIP (Session Initiation Protocol). Diese Standards werden befolgt, wenn neue Hardware und Software entworfen wird.
  • Der SIP-Standard deckt die technischen Anforderungen für den Aufbau, die Modifizierung und den Abbau von Multimediasitzungen über das Internet ab. Eine Multimedia-Kommunikationssitzung zwischen zwei Endpunkten soll als eine Kommunikationsverbindung bezeichnet werden.
  • Herkömmliche paketbasierte Peer-to-Peer-Netzwerke enthalten mehrere Netzeinrichtungen, die miteinander kommunizieren können. Ein Beispiel für ein solches Peer-to-Peer-Netzwerk ist ein Netzwerk aus untereinander verbundenen VoIP-Endgeräten. Einige VoIP-Endgeräte sind Smartphones, welche ihre eigenen Dienste zum Betrieb der VoIP-Endgeräte bereitstellen, wobei die Dienste Audio-Benutzerführungen für Sprachmail oder eine automatische Begrüßungsfunktionalität, Wählregeln, Datenspeicherung zur Aufzeichnung von Sprachmail-Nachrichten und andere Rufabwicklungsfunktionen beinhalten. Da jedoch die Anzahl von Diensten in solchen VoIP-Endgerättelefonen zunimmt, erhöhen sich auch die Gesamtkosten des Telefons aufgrund der zusätzlichen Hardware wie etwa dem Speicher, der zum Speichern von Dienste bereitstellendem Programmcode oder von Daten, die durch die Nutzung der Dienste angesammelt werden, erforderlich ist. Daher wäre eine effizientere Nutzungsweise der Dienste von Vorteil gegenüber dem momentanen Stand der Technik in Peer-to-Peer-Netzwerken.
  • Aus der US 2002/0188657 A1 ist ein System und ein Verfahren bekannt, mit denen Peers und andere Ressourcen in einer Peer-to-Peer-Netzwerkumgebung identifiziert werden können. Jeder Peer und andere Netzwerk-Ressourcen können jeweils eine eindeutige Kennung, wobei die Kennungen eine dynamische Adressierung innerhalb der Peer-to-Peer-Netzwerkumgebung ermöglichen. Unter anderem stellt das bekannte System eine Peer-Verwaltungsfunktion wie zum Beispiel einen Bandbreitenausgleich oder eine Zugriffssteuerung bereit.
  • Zusammenfassung der Erfindung
  • Das technische Problem wird durch die Merkmale des Anspruchs 1 und durch die Verfahrensschritte des Anspruchs 12 gelöst. Vorteilhafte Weiterbildungen sind Gegenstand der Unteransprüche.
  • Gemäß einem ersten Aspekt der Erfindung wird ein Peer-to-Peer-Netzwerk zur Verfügung gestellt, welches umfasst: eine Mehrzahl von untereinander verbundenen, paketbasierten Peer-to-Peer-Netzeinrichtungen; und eine Mehrzahl von Diensten, die jeweils von zumindest einer jeweiligen paketbasierten Peer-to-Peer-Netzeinrichtung betrieben werden; wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung, die zumindest einen Dienst der Mehrzahl von Diensten betreibt, den zumindest einen Dienst für andere paketbasierte Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen verfügbar macht; wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung, die zumindest einen Dienst der Mehrzahl von Diensten betreibt, den anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen die Verfügbarkeit des zumindest einen Dienstes bekannt gibt.
  • Gemäß einer Ausführungsform des ersten Aspekts umfassen die Dienste zumindest einen aus einer Gruppe, bestehend aus Audio-Benutzerführung, Wähldienst, Konferenzzusammenschaltung, Gebührenerfassung, Zeitsynchronisationsmaster, Multicast-Umleitung, Sicherheitsverwaltung, Zuordnen und Unterhalten von Informationen, die sich auf Ersatz-Netzeinrichtungen beziehen, Merkmalsschlüssel-Lizenzierung, gemeinsam genutztem, entferntem Datenspeicher und externem Funkruf-Lautsprecher.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts ist zumindest eine paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen dafür ausgelegt, einen bestimmten Dienst in dem Peer-to-Peer-Netzwerk zu lokalisieren, und zwar im Ergebnis der Bekanntgaben, die von anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen, welche die bestimmten Dienste betreiben, empfangen wurden.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts ist zumindest eine paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen dafür ausgelegt, den Bezug eines jeweiligen Dienstes in dem Peer-to-Peer-Netzwerk nach dem Lokalisieren des entsprechenden Dienstes anzufordern.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts umfasst jede paketbasierte Peer-to-Peer-Netzeinrichtung: zumindest eine Anwendung, die dafür ausgelegt ist, einen Dienst der Mehrzahl von Diensten, die von einem Dienstmodul bereitgestellt werden, um eine Aufgabe auszuführen, anzufordern und zu nutzen; für jeden Dienst ein entsprechendes Dienstmodul, das dafür ausgelegt ist, eine Liste von Standorten des Dienstes in dem Peer-to-Peer-Netzwerk zu unterhalten, und das dafür ausgelegt ist, den Dienst von entweder einer lokalen Quelle oder einer entfernten Quelle bereitzustellen; und einen Dienstemanager, der dafür ausgelegt ist, die Interaktion zwischen der zumindest einen Anwendung und zumindest einem Dienstmodul zu organisieren.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts umfasst jedes Dienstmodul eine Clientkomponente, die dafür ausgelegt ist, den Bezug eines jeweiligen Dienstes, der von der zumindest einen Anwendung angefordert wird, entweder lokal oder entfernt anzufordern.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts umfasst, wenn eine paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen einen bestimmten Dienst betreibt, das Dienstmodul eine betreibende Dienstanbieterkomponente, wobei die betreibende Dienstanbieterkomponente dafür ausgelegt ist, der zumindest einen Anwendung den angeforderten Dienst bereitzustellen.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts umfasst jede paketbasierte Peer-to-Peer-Netzeinrichtung eine Clientkomponente für jeden Dienst, der für die paketbasierte Peer-to-Peer-Netzeinrichtung verfügbar ist, sowie eine betreibende Dienstanbieterkomponente für jeden Dienst, der von der paketbasierten Peer-to-Peer-Netzeinrichtung betrieben wird; wobei die Clientkomponente dafür ausgelegt ist, den Bezug eines jeweiligen Dienstes, der von der zumindest einen Anwendung angefordert wird, entweder lokal oder entfernt anzufordern, und die betreibende Dienstanbieterkomponente dafür ausgelegt ist, der zumindest einen Anwendung den angeforderten Dienst bereitzustellen.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts erfolgt für einen gegebenen Dienst der Mehrzahl von Diensten für den gegebenen Dienst ein dynamischer Lastausgleich über mehr als eine paketbasierte Peer-to-Peer-Netzeinrichtung, die den gegebenen Dienst betreibt.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts unterhält jede paketbasierte Peer-to-Peer-Netzeinrichtung statistische Informationen bezüglich der Dienste in dem Peer-to-Peer-Netzwerk.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts werden Dienste in Abhängigkeit von den statistischen . Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind, bestimmten paketbasierten Peer-to-Peer-Netzeinrichtungen zugewiesen.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts stellt zumindest eine der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen ein VoIP-(Voice over Internet Protocol)-Endgerät dar.
  • Gemäß einer weiteren Ausführungsform des ersten Aspekts stellt zumindest eine der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen zumindest eine aus einer Gruppe dar, die aus einer Schnittstelle zum Verbinden von paketbasierten Peer-to-Peer-Netzeinrichtungen mit einem öffentlichen Telefonvermittlungsnetz (PSTN), einer Schnittstelle zum Verbinden von paketbasierten Peer-to-Peer-Netzeinrichtungen mit einem paketbasierten Netzwerk und einer Netz-Datenspeichereinrichtung besteht.
  • Gemäß einem zweiten Aspekt der Erfindung wird ein Verfahren in einem Peer-to-Peer-Netzwerk, das eine Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen zum gemeinsamen Implementieren von Diensten in verteilter Weise umfasst, zur Verfügung gestellt, wobei das Verfahren umfasst: Bekanntgeben eines verfügbaren Dienstes, der von einer paketbasierten Peer-to-Peer-Netzeinrichtung betrieben wird, für andere paketbasierte Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen; Unterhalten einer Liste von Diensten, die in der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen angesiedelt sind; Anfordern des Bezugs eines jeweiligen Dienstes von einer bestimmten der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen, wobei die ausgewählte paketbasierte Peer-to-Peer-Netzeinrichtung auf Basis der unterhaltenen Liste ausgewählt wird.
  • Gemäß einer Ausführungsform des zweiten Aspekts aktualisiert die paketbasierte Peer-to-Peer-Netzeinrichtung periodisch eine Bekanntgabe des verfügbaren Dienstes für die anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt des Registrierens des verfügbaren Dienstes bei der paketbasierten Peer-to-Peer-Netzeinrichtung.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Verfahren ferner einen Schritt, bei dem die paketbasierte Peer-to-Peer-Netzeinrichtung eine Liste von Diensten aktualisiert, um den registrierten verfügbaren Dienst einzuschließen.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt, bei dem die paketbasierte Peer-to-Peer-Netzeinrichtung eine Bekanntgabe des verfügbaren Dienstes an die anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen sendet.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Verfahren ferner das Unterhalten statistischer Informationen bezüglich der Dienste in dem Peer-to-Peer-Netzwerk.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts bezieht sich das Unterhalten von statistischen Informationen bezüglich der Dienste auf statistische Informationen, welche die Dienste betreffen, die von der entsprechenden paketbasierten Peer-to-Peer-Netzeinrichtung betrieben werden.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts bezieht sich das Unterhalten statistischer Informationen bezüglich der Dienste auf statistische Informationen, welche die von der paketbasierten Peer-to-Peer-Netzeinrichtung angeforderten Dienste betreffen, die entfernt bezogen werden müssen.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Verfahren ferner einen Schritt der Zuweisung von Diensten an bestimmte paketbasierte Peer-to-Peer-Netzeinrichtungen in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Verfahren ferner einen Schritt des Lastausgleichs über mehr als eine paketbasierte Peer-to-Peer-Netzeinrichtung, welche den gegebenen Dienst betreibt, und zwar in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Unterhalten einer Liste ferner folgende Schritte: Empfangen einer Bekanntgabe eines verfügbaren Dienstes von einer anderen Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen; Unterhalten einer Kennung des verfügbaren Dienstes in einer Liste von verfügbaren Diensten; und Weiterleiten der Kennung und der Lokalisierungsinformation des verfügbaren Dienstes, die in der Bekanntgabe empfangen worden sind, an ein lokales Dienstmodul, wobei das Dienstmodul den Namen und den Standort des verfügbaren Dienstes in einer Liste für Namen und Standorte von verfügbaren Diensten unterhält.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Anfordern des Bezugs eines jeweiligen Dienstes folgende Schritte: Anfordern des jeweiligen Dienstes; Feststellen, welche eine oder mehrere paketbasierte Peer-to-Peer-Netzeinrichtung(en) der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen den jeweiligen Dienst betreibt, und zwar basierend auf der unterhaltenen Liste; Kontaktieren einer paketbasierten Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt; Empfangen einer Antwort von der den Dienst betreibenden paketbasierten Peer-to-Peer-Netzeinrichtung in Bezug darauf, ob die den Dienst betreibende paketbasierte Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst bereitstellen kann; Anfordern des Bezugs des jeweiligen Dienstes, wenn die den Dienst betreibende paketbasierte Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst bereitstellen kann; und wenn die den Dienst betreibende paketbasierte Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst nicht bereitstellen kann, Kontaktieren einer anderen paketbasierten Peer-to-Peer-Netzeinrichtung der weiteren paketbasierten Peer-to-Peer-Netzeinrichtungen, für die registriert ist, dass sie den jeweiligen Dienst betreiben, bis der jeweilige Dienst als verfügbar gefunden werden kann.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt, bei dem eine betreibende Dienstanbieterkomponente der paketbasierten Peer-to-Peer-Netzeinrichtung, die einen Dienst betreibt, den verfügbaren Dienst bei einem Dienstemanager der paketbasierten Peer-to-Peer-Netzeinrichtung registriert.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Verfahren ferner einen Schritt, bei dem der Dienstemanager eine Liste von Diensten aktualisiert, um den registrierten verfügbaren Dienst einzuschließen.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt, bei dem ein Dienstemanager der paketbasierten Peer-to-Peer-Netzeinrichtung, die einen Dienst betreibt, eine Bekanntgabe des verfügbaren Dienstes an die anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen sendet.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Anfordern des Bezugs eines jeweiligen Dienstes folgende Schritte: eine Anwendung der paketbasierten Peer-to-Peer-Netzeinrichtung fordert bei einem Dienstemanager der paketbasierten Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst an; der Dienstemanager liefert der Anwendung einen Standort eines Dienstmoduls der paketbasierten Peer-to-Peer-Netzeinrichtung für den jeweiligen Dienst; die Anwendung kontaktiert das Dienstmodul, um den Bezug des jeweiligen Dienstes anzufordern; eine Clientkomponente des Dienstmoduls stellt fest, welche paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen den jeweiligen Dienst betreibt, und zwar basierend auf der unterhaltenen Liste; die Clientkomponente kontaktiert eine betreibende Dienstanbieterkomponente eines Dienstmoduls einer paketbasierten Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt; die Clientkomponente empfängt eine Antwort von der betreibenden Dienstanbieterkomponente, die den jeweiligen Dienst betreibt, in Bezug darauf, ob die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst bereitstellen kann; die Clientkomponente bezieht den jeweiligen Dienst, wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den entsprechenden Dienst betreibt, den entsprechenden Dienst bereitstellen kann; und wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst nicht bereitstellen kann, kontaktiert die Clientkomponente eine betreibende Dienstanbieterkomponente weiterer paketbasierter Peer-to-Peer-Netzeinrichtungen, für die registriert ist, dass sie den jeweiligen Dienst betreiben, bis der jeweilige Dienst zur Nutzung durch die Anwendung als verfügbar gefunden werden kann.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts befinden sich die Clientkomponente und die betreibende Dienstanbieterkomponente während des Schritts, bei dem die Clientkomponente erstmalig eine betreibende Dienstanbieterkomponente eines Dienstmoduls kontaktiert, in dem gleichen Dienstmodul.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts befinden sich die Clientkomponente und die betreibende Dienstanbieterkomponente während des Schritts, bei dem die Clientkomponente eine betreibende Dienstanbieterkomponente eines Dienstmoduls kontaktiert, in unterschiedlichen Dienstmodulen in unterschiedlichen paketbasierten Peer-to-Peer-Netzeinrichtungen.
  • Gemäß einer weiteren Ausführungsform des zweiten Aspekts umfasst das Anfordern des Bezugs eines jeweiligen Dienstes folgende Schritte: eine Anwendung der paketbasierten Peer-to-Peer-Netzeinrichtung fordert bei einem Dienstemanager der paketbasierten Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst an; der Dienstemanager kontaktiert das Dienstmodul, um einen Bezug des jeweiligen Dienstes anzufordern; eine Clientkomponente des Dienstmoduls stellt fest, welche paketbasierten Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen den jeweiligen Dienst betreibt, und zwar basierend auf der unterhaltenen Liste; die Clientkomponente kontaktiert eine betreibende Dienstanbieterkomponente eines Dienstmoduls einer paketbasierten Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt; die Clientkomponente empfängt eine Antwort von der betreibenden Dienstanbieterkomponente, die den jeweiligen Dienst betreibt, in Bezug darauf, ob die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst bereitstellen kann; die Clientkomponente bezieht den jeweiligen Dienst, wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den entsprechenden Dienst betreibt, den entsprechenden Dienst bereitstellen kann; und wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst nicht bereitstellen kann, kontaktiert die Clientkomponente eine betreibende Dienstanbieterkomponente weiterer paketbasierter Peer-to-Peer-Netzeinrichtungen, für die registriert ist, dass sie den jeweiligen Dienst betreiben, bis der jeweilige Dienst zur Nutzung durch die Anwendung als verfügbar gefunden werden kann.
  • Entsprechend einem dritten Aspekt der Erfindung wird ein von einem Computer nutzbares Medium mit darin verkörperten computerlesbaren Programmcodemitteln zum gemeinsamen Implementieren von Diensten in einer verteilten Weise zur Verfügung gestellt, wobei das von einem Computer nutzbare Medium in einer paketbasierten Peer-to-Peer-Netzeinrichtung einer Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen vorgesehen ist, die genutzt werden, um gemeinsam Dienste zu implementieren, wobei die computerlesbaren Programmcodemittel umfassen: Codemittel zum Bekanntgeben eines verfügbaren Dienstes, der von einer paketbasierten Peer-to-Peer-Netzeinrichtung betrieben wird, für andere paketbasierte Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen; Codemittel zum Unterhalten einer Liste von Diensten, die in der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen angesiedelt sind; Codemittel zum Anfordern des Bezugs eines jeweiligen Dienstes, der von einer der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen ausgewählt wird, wobei die ausgewählte paketbasierte Peer-to-Peer-. Netzeinrichtung basierend auf der unterhaltenen Liste ausgewählt wird.
  • Weitere Aspekte und Merkmale der vorliegenden Erfindung werden für Fachleute auf dem Gebiet bei Durchsicht der folgenden Beschreibung spezifischer Ausführungsformen der Erfindung im Zusammenhang mit den beigefügten Figuren deutlich werden.
  • Figurenliste
  • Bevorzugte Ausführungsformen der Erfindung sollen nun mit Bezugnahme auf die beigefügten Zeichnungen beschrieben werden, in welchen:
    • 1 ein Schema einer Architektur für eine Netzeinrichtung ist, die ein Dienstlokalisierungsmerkmal implementiert, wie es durch eine Ausführungsform der Erfindung bereitgestellt wird;
    • 2 einen Signalfluss zur Bekanntgabe eines Dienstes darstellt, wie er durch eine Ausführungsform der Erfindung bereitgestellt wird;
    • 3 einen Signalfluss zur Anforderung eines verfügbaren Dienstes darstellt, wie er durch eine Ausführungsform der Erfindung bereitgestellt wird;
    • 4 einen Signalfluss für ein Beispiel darstellt, welches Netzeinrichtungen veranschaulicht, die anderen Netzeinrichtungen einen Wähldienst bekannt geben;
    • 5 ein Signalfluss für ein Beispiel ist, das aufzeigt, dass eine Netzeinrichtung einen Wähldienst anfordert, der zuvor wie in 4 gezeigt bekannt gegeben worden ist;
    • 6 ein Ablaufdiagramm für ein Verfahren zur Bekanntgabe eines verfügbaren Rufabwicklungsdienstes und zur Unterhaltung einer Liste von bekannt gegebenen verfügbaren Diensten ist, wie es durch eine Ausführungsform der Erfindung bereitgestellt wird; die
    • 7A und 7B Ablaufdiagramme für ein Verfahren zum Anfordern des Bezugs eines Rufabwicklungsdienstes basierend auf bekannt gegebenen Diensten in einem Peer-to-Peer-Netzwerk sind, wie es durch eine Ausführungsform der Erfindung bereitgestellt wird; und
    • 8 ein funktionales Blockdiagramm von Software ist, die in einer paketbasierten Peer-to-Peer-Netzeinrichtung arbeitet.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Ein Peer-to-Peer-Dienstlokalisierungsmerkmal wird durch Ausführungsformen der Erfindung zur effizienten Nutzung gemeinsam genutzter Dienste bereitgestellt. Beispielsweise bieten Ausführungsformen des Peer-to-Peer-Dienstlokalisierungsmerkmals die folgende Funktionalität: 1) Ressourcen-/Dienstezuweisung; Beispiele dafür sind das Bestimmen, welche Netzeinrichtung einen bestimmten Dienst betreiben wird, ein Lastausgleich zwischen den Netzeinrichtungen, ein Verschieben eines Dienstes zu einem anderen Host, falls ein ursprünglicher Host ungeeignet wird, oder ein Erhöhen/Vermindern der Anzahl von Dienst-Hosts in Abhängigkeit von Nutzungsstatistiken; 2) Bekanntgeben der Verfügbarkeit von Diensten; 3) Lokalisieren eines Ressourcen-/Dienstanbieters in einem Peer-to-Peer-Netzwerk; und 4) Anfordern des Bezugs einer Ressource/eines Dienstes.
  • Ein Dienst ist für die Zwecke der vorliegenden Anmeldung definiert als eine Komponente aus Software und/oder einer oder mehreren Ressourcen, die zur Nutzung in einem Peer-to-Peer-Netzwerk zur Verfügung gestellt werden. Einige Beispiele für Dienste sind Audio-Benutzerführung für solche Rufabwicklungsmerkmale wie Sprachmail oder eine automatische Begrüßung, Wähldienst, Konferenzzusammenschaltung, Gebührenerfassung, Zeitsynchronisationsmaster zur Synchronisation von Zeitinformationen zwischen gleichrangigen oder Peer-Knoten, Multicast-Umleitung, Sicherheitsverwaltung, Zuordnen und Unterhalten von Informationen, die sich auf Ersatz-Netzeinrichtungen beziehen, Lizenzierung von Merkmalsschlüsseln, gemeinsam genutzter entfernter Datenspeicher, beispielsweise Speicherung für solche Dienste wie Sprachmail, und externer Funkruf-Lautsprecher. Bei einigen Ausführungsformen werden Dienste durch einen zugeordneten so genannten „Dienst-ID-Code“ identifiziert, der im System allgemein bekannt ist.
  • 1 stellt eine Architektur 10 für eine paketbasierte Peer-to-Peer-Netzeinrichtung in einer Peer-to-Peer-Umgebung dar, welche ein Peer-to-Peer-Dienstlokalisierungsmerkmal nutzt, wie es durch Ausführungsformen der Erfindung bereitgestellt wird. Die Architektur 10 umfasst einen Dienstemanager 20, eine Mehrzahl von Anwendungen 30, eine Mehrzahl von Dienstmodulen, insbesondere ein Rufabwicklungs-Dienstmodul 40, ein Ersatzspeicher-Dienstmodul 43 und ein Audio-Benutzerführungs-Dienstmodul 46 sowie einen Peer-to-Peer(P2P)-Transport 50. Die Anwendungen 30, die Dienstmodule 40, 43, 46 und der Peer-to-Peer-Transport 50 sind alle mit dem Dienstemanager 20 gekoppelt. Im Allgemeinen verfolgt der Dienstemanager die in der Peer-to-Peer-Umgebung verfügbaren Diensttypen, und jedes Dienstmodul verfolgt die Standorte eines dem Dienstmodul zugeordneten speziellen Diensttyps, welcher in der Peer-to-Peer-Umgebung verfügbar ist. Die Dienstmodule 40, 43, 46 sind jeweils mit einer Clientkomponente 41, 44, 47 und einer Dienstanbieterkomponente 42, 45, 48 gezeigt. Allgemeiner gesagt ist die Clientkomponente 41, 44, 47 in allen paketbasierten Peer-to-Peer-Netzeinrichtungen vorhanden, die in der Lage sind, den Dienst zu nutzen, und die Dienstanbieterkomponente 42, 45, 48 ist nur in paketbasierten Peer-to-Peer-Netzeinrichtungen vorhanden, die einen speziellen Dienst betreiben. Jedes Dienstmodul ist in der Lage, einen lokalen Dienstanbieter für den Dienst zu erzeugen. Beispielsweise kann eine Clientkomponente eines Dienstmoduls den Dienst von der Anbieterkomponente einer anderen Netzeinrichtung anfordern, den Dienst herunterladen und eine Anbieterkomponente erzeugen, sodass der Dienst nun in der lokalen Netzeinrichtung lokalisiert ist.
  • In 1 sind drei Anwendungen 30 und drei spezielle Dienstmodule 40, 43, 46 gezeigt. Allgemeiner kann die paketbasierte Peer-to-Peer-Netzeinrichtung eine beliebige Anzahl unterschiedlicher Anwendungen und eine beliebige Anzahl unterschiedlicher Dienstmodule aufweisen.
  • Im Betrieb wirkt der Dienstemanager 20 als ein Makler zwischen der Mehrzahl von Anwendungen 30, welche einen speziellen Dienst anfordern, und der Mehrzahl von Dienstmodulen 40, 43, 46. Die Dienstmodule 40, 43 46 registrieren sich bei dem Dienstemanager 20, um die Verfügbarkeit des Dienstes, welchen die jeweiligen Dienstmodule 40, 43 46 bereitstellen, bekannt zu geben. Der Dienstemanager 20 nutzt den Peer-to-Peer-Transport 50, um die Verfügbarkeit der Dienste, die bereitgestellt werden können und lokal in der paketbasierten Peer-to-Peer-Netzeinrichtung angesiedelt sind, für andere paketbasierte Peer-to-Peer-Netzeinrichtungen in der Peer-to-Peer-Umgebung bekannt zu geben und um Bekanntgaben von Diensten, die von anderen paketbasierten Peer-to-Peer-Netzeinrichtungen in der Peer-to-Peer-Umgebung bereitgestellt werden können, zu empfangen.
  • Die Anwendung 30 lokalisiert einen Dienst durch Anfrage bei dem Dienstemanager 20. Der Dienstemanager 20 stellt der Anwendung 30 Lokalisierungsinformationen für eine Dienstinstanz zur Verfügung, welche bei einigen Ausführungsformen eine Kennung der Clientkomponente des Dienstmoduls darstellt, wobei die Anwendung 30 die Lokalisierungsinformation nutzt, um die Clientkomponente zu kontaktieren. Die Clientkomponente fordert dann den Dienst von einer Dienstanbieterkomponente eines Dienstmoduls an. Der Dienstanbieter kann entweder lokal, in dem gleichen Dienstmodul wie die Clientkomponente, oder an einem entfernten Standort in einer anderen Netzeinrichtung der Peer-to-Peer-Umgebung vorgesehen sein.
  • Wenn beispielsweise die Anwendung 30 einen Rufabwicklungsdienst anfordert, stellt der Dienstemanager 20 eine Lokalisierungsinformation für die Clientkomponente 42 in dem Rufabwicklungsmodul 40 bereit. Nach Empfang der Lokalisierungsinformation kontaktiert die Anwendung 30 die Clientkomponente 42, um den Dienst anzufordern. Die Clientkomponente 42 fordert dann den Dienst lokal von der Dienstanbieterkomponente 41 oder über den Peer-to-Peer-Transport 50 von einer Dienstanbieterkomponente einer entfernten Netzeinrichtung an.
  • Bei einigen Ausführungsformen kontaktiert der Dienstemanager 20 die Dienstinstanz direkt, im Gegensatz dazu, dass die Anwendung 30 die Dienstinstanz kontaktiert, nachdem sie die Lokalisierungsinformation von der Dienstinstanz empfangen hat.
  • Wenn eine Netzeinrichtung, der das Betreiben (Hosting) eines Dienstes zugewiesen worden ist, beginnt, den Dienst zu betreiben, wird die Netzeinrichtung eine initiale Bekanntgabe an andere Netzeinrichtungen, für welche die Netzeinrichtung den Dienst bereitstellen kann, aussenden. Der Netzeinrichtung wird ein Dienst durch einen Administrator oder durch die Funktionalität des Dienstlokalisierungsmerkmals selbst zugewiesen, beispielsweise durch Nutzung statistischer Informationen, die Dienste in der Peer-to-Peer-Umgebung betreffen, welche später detaillierter beschrieben wird. Bei einigen Ausführungsformen wird die Netzeinrichtung nach der initialen Bekanntgabe fortfahren, periodisch die Dienstbekanntgabenachricht, welche angibt, dass die Netzeinrichtung den Dienst bereitstellen kann, zu senden. Bei einigen Ausführungsformen sendet die Netzeinrichtung Dienstbekanntgaben so selten wie möglich aus, um einen Netz-Overhead im Zusammenhang mit dem Senden der Dienstbekanntgaben zu vermeiden, aber häufig genug, um sicherzustellen, dass andere Netzeinrichtungen zu jedem Zeitpunkt Kenntnis von dem Vorhandensein der Netzeinrichtung haben. Somit werden die Dienstbekanntgaben beim Einschalten der Netzeinrichtung und nach nachfolgenden Statusänderungen von Netzeinrichtungen (eine Netzeinrichtung hinzugefügt, eine Netzeinrichtung wird aktiv) veröffentlicht. Bei einigen Ausführungsformen wird die Netzeinrichtung außerdem das Aussenden einer Dienstbekanntgabe immer dann erzwingen, wenn das Dienstmodul eine Konfigurations- und/oder Zustandsänderung erfährt.
  • Jede Netzeinrichtung, die Teil der Peer-to-Peer-Umgebung ist, unterhält eine Tabelle der Dienste (aufgeschlüsselt in dem Dienst-ID-Code), die zusammen mit dem zugehörigen Anbieter dieses Dienstes bereitgestellt wird. Wenn durch die Netzeinrichtung eine Kennung von neuen oder zusätzlichen Diensten von anderen Netzeinrichtungen empfangen wird, wird die Tabelle aktualisiert, sodass sie die neuen oder zusätzlichen Dienste wiedergibt. Bei einigen Ausführungsformen unterhält der Dienstemanager eine Tabelle der Dienste. Bei einigen Ausführungsformen unterhält das Dienstmodul eine Tabelle von Dienststandorten.
  • 2 stellt einen Signalfluss 200 dar, der mit der Bekanntgabe eines verfügbaren Dienstes einhergeht. Bei der speziellen dargestellten Situation gibt eine erste Peer-to-Peer-Netzeinrichtung 205, die als ein Endgerät gezeigt ist, die Verfügbarkeit eines Dienstes einer zweiten Peer-to-Peer-Netzeinrichtung 210 bekannt, die ebenfalls ein Endgerät darstellt. Die erste Peer-to-Peer-Netzeinrichtung 205 umfasst ein Dienstmodul 201, einen Dienstemanager 202 und einen Peer-to-Peer(P2P)-Transport 203. Die zweite Peer-to-Peer-Netzeinrichtung 210 umfasst einen Peer-to-Peer-Transport 206, einen Dienstemanager 207 und ein Dienstmodul 208. Bei diesem Beispiel umfasst das Dienstmodul 201 sowohl eine Clientkomponente als auch eine Dienstanbieterkomponente, da es den Dienst lokal unterhält. In diesem Beispiel umfasst das Dienstmodul 208 zumindest eine Clientkomponente und kann eine Dienstanbieterkomponente enthalten oder auch nicht.
  • Bei dem Signalfluss 200 registriert sich 220 das Dienstmodul 201 der ersten Peer-to-Peer-Netzeinrichtung 205 bei dem Dienstemanager 202 der ersten Peer-to-Peer-Netzeinrichtung 205. Der Dienstemanager 202 sendet eine Bekanntgabe 222 der Verfügbarkeit eines Dienstes an den Peer-to-Peer-Transport 203, sodass der Peer-to-Peer-Transport 203 die Bekanntgabe an die zweite Peer-to-Peer-Netzeinrichtung 210 ausliefern kann. Der Peer-to-Peer-Transport 203 sendet 224 die Bekanntgabe an den Peer-to-Peer-Transport 206 der zweiten Peer-to-Peer-Netzeinrichtung 210. Der Peer-to-Peer-Transport 206 stellt dem Dienstemanager 207 der zweiten Peer-to-Peer-Netzeinrichtung 210 die Bekanntgabe bereit 226. Der Dienstemanager 207 sendet 228 die Bekanntgabe an das Dienstmodul 208 der zweiten Peer-to-Peer-Netzeinrichtung 210. Wie zuvor beschrieben ist es dadurch möglich, dass der Dienstemanager 207 der zweiten Peer-to-Peer-Netzeinrichtung 210 weiß, dass der Dienst verfügbar ist und dass die Clientkomponente des Dienstmoduls 208 der zweiten Peer-to-Peer-Netzeinrichtung 210 eine Liste von Standorten bestimmter Dienste unterhält.
  • 2 zeigt, dass die erste Peer-to-Peer-Netzeinrichtung 205 der zweiten Peer-to-Peer-Netzeinrichtung 210 die Verfügbarkeit eines Dienstes bekannt gibt, es versteht sich jedoch, dass allgemeiner die erste Peer-to-Peer-Netzeinrichtung 205 einer beliebigen Anzahl von Netzeinrichtungen, die Teil der Peer-to-Peer-Umgebung sind, die Verfügbarkeit des Dienstes bekannt gibt.
  • 3 stellt einen Signalfluss 300 dar, der mit dem Anfordern eines gewünschten Dienstes einhergeht. In dem dargestellten speziellen Beispiel fordert eine erste Peer-to-Peer-Netzeinrichtung 305, die ein Endgerät darstellt, einen Dienst an. Die erste Peer-to-Peer-Netzeinrichtung 305 umfasst eine Anwendung 301, einen Dienstemanager 302, ein Dienstmodul 303 und einen Peer-to-Peer-Transport 304. Eine zweite Peer-to-Peer-Netzeinrichtung 310, die ebenfalls als ein Endgerät gezeigt ist, umfasst einen Peer-to-Peer-Transport 306 und ein Dienstmodul 307. Bei diesem Beispiel umfasst das Dienstmodul 303 in der ersten Peer-to-Peer-Netzeinrichtung 305 eine Clientkomponente, enthält aber keine Dienstanbieterkomponente, da der Dienst, welcher angefordert wird, lokal nicht unterhalten wird. Das Dienstmodul 307 in der zweiten Peer-to-Peer-Netzeinrichtung 310 umfasst eine Clientkomponente und eine Dienstanbieterkomponente, da der Dienst, der angefordert wird, lokal an der zweiten Peer-to-Peer-Netzeinrichtung 310 unterhalten wird.
  • Bei dem Signalfluss 300 fordert die Anwendung 301 in der ersten Peer-to-Peer-Netzeinrichtung 305 einen Dienst an und sendet daher eine Anforderung 320 an den Dienstemanager 302, um den Dienst zu lokalisieren. Der Dienstemanager 302 antwortet auf die Anforderung durch Senden 321 einer Kennung eines Standorts der Clientkomponente in dem Dienstmodul 303 an die Anwendung 301. Die Anwendung 301 sendet eine Anforderung 322 an die Clientkomponente in dem Dienstmodul 303, den Dienst bereitzustellen. Da in der ersten Peer-to-Peer-Netzeinrichtung keine Dienstanbieterkomponente vorhanden ist, kontaktiert 324 die Clientkomponente in dem Dienstmodul 303 die Dienstanbieterkomponente in dem Dienstmodul 307 der zweiten Peer-to-Peer-Netzeinrichtung über die Peer-to-Peer-Transporte 304, 306, um den Dienst anzufordern, da bekannt ist, dass das Dienstmodul 307 den Dienst unterhält.
  • Bei einigen Ausführungsformen konsultiert der Dienstemanager 302 eine Dienstanbietertabelle, um die Kennung des Standorts der Clientkomponente in dem Dienstmodul 303 zu erhalten.
  • Bei einigen Ausführungsformen konsultiert die Clientkomponente in dem Dienstmodul 302 eine Dienstanbietertabelle, um die Kennung des Standorts der Dienstanbieterkomponente in der Peer-to-Peer-Umgebung entweder lokal oder an einem entfernten Standort zu erhalten.
  • In dem Beispiel aus 3 wird beschrieben, dass.das Dienstmodul 303 der ersten Peer-to-Peer-Netzeinrichtung 305 den Dienst nicht unterhält. Bei einigen Ausführungsformen unterhält das Dienstmodul 303 den Dienst und weist eine Dienstanbieterkomponente auf. Daher kontaktiert die Clientkomponente in dem Dienstmodul 303 die Dienstanbieterkomponente lokal in der ersten Peer-to-Peer-Netzeinrichtung 305, um den Dienst bereitzustellen, anstatt dass der Dienst von einer entfernten Netzeinrichtung, beispielsweise der zweiten Peer-to-Peer-Netzeinrichtung 310, angefordert wird.
  • Bezug nehmend auf 4 soll nun ein praktisches Beispiel für die Bekanntgabe eines Dienstes beschrieben werden. Der Dienst, der bekannt gegeben wird, ist ein Fernwähldienst. Die Netzeinrichtungen in dem Beispiel umfassen ein Endgerät 401 und eine erste sowie eine zweite Schnittstelle 405, 410, die in der Lage sind, auf unterschiedliche Gebietscodes zuzugreifen. Die Schnittstellen 405, 410 geben ihre jeweiligen Dienste bekannt, sodass das Endgerät 401 weiß, dass die jeweiligen Dienste zur Verfügung stehen. Die erste Schnittstelle 405 ist in der Lage, einen Gebietscode 416 zu wählen, und die zweite Schnittstelle 410 ist in der Lage, einen Gebietscode 613 zu wählen. Das Endgerät 401 umfasst ein Wähldienstmodul 402, einen Dienstemanager 403 und einen Peer-to-Peer-Transport 404. Die erste Schnittstelle 405 umfasst ein Wähldienstmodul 406, einen Dienstemanager 407 und einen Peer-to-Peer-Transport 408. Die zweite Schnittstelle 410 umfasst ein Wähldienstmodul 413, einen Dienstemanager 412 und einen Peer-to-Peer-Transport 411.
  • Bei dem Signalfluss 400 registriert sich das Wähldienstmodul 406 der ersten Schnittstelle 405 bei dem Dienstemanager 407 der ersten Schnittstelle 405. Der Dienstemanager 407 sendet 422 eine Bekanntgabe der Verfügbarkeit eines Dienstes, der einen Gebietscode 416 wählt, an den Peer-to-Peer-Transport 408 der ersten Schnittstelle 405, sodass der Peer-to-Peer-Transport 408 die Bekanntgabe an die anderen Netzeinrichtungen in der Peer-to-Peer-Umgebung ausliefern kann. Der Peer-to-Peer-Transport 408 sendet 425 die Bekanntgabe an den Peer-to-Peer-Transport 404 des Endgeräts 401 und sendet 424 die Bekanntgabe an den Peer-to-Peer-Transport 411 der zweiten Schnittstelle 410. An dem Endgerät 401 liefert 430 der Peer-to-Peer-Transport 404 die Bekanntgabe an den Dienstemanager 403 des Endgeräts 401 aus. Der Dienstemanager 403 sendet 432 die Bekanntgabe an das Wähldienstmodul 402 des Endgeräts 401. An der zweiten Schnittstelle 410 liefert 434 der Peer-to-Peer-Transport 411 die Bekanntgabe an den Dienstemanager 412 der zweiten Schnittstelle 410 aus. Der Dienstemanager 412 sendet 436 die Bekanntgabe an das Wähldienstmodul 413 der zweiten Schnittstelle 410. Die Bekanntgabe von der ersten Schnittstelle 405 ermöglicht, dass die Dienstemanager 403, 412 wissen, dass ein Wähldienst, der in der Lage ist, einen Gebietscode 416 zu wählen, in dem Netzwerk existiert, und dass die Wähldienstmodule 402, 413 einen bestimmten Standort kennen, an welchem der Wähldienst, der in der Lage ist, einen Gebietscode 416 zu wählen, lokalisiert ist.
  • Ein analoger Prozess erfolgt durch die zweite Schnittstelle 410, welche bekannt gibt, dass sie einen Wähldienst unterhält, der in der Lage ist, den Gebietscode 613 zu wählen, und zwar in den Schritten 440, 442, 444, 445, 450, 452, 454 und 456.
  • 4 zeigt, dass die Schnittstellen 405, 410 der jeweils anderen Schnittstelle 410, 405 sowie dem Endgerät 401 die Verfügbarkeit der jeweiligen Wähldienste bekannt geben. Wenn allgemeiner eine beliebige Anzahl von Netzeinrichtungen in einem Netzwerk umfasst ist, versteht es sich, dass die Bekanntgaben, welche die Verfügbarkeit der jeweiligen Wähldienste betreffen, an alle Netzeinrichtungen, die in dem Netzwerk vorhanden sind, gesendet werden.
  • In dem Beispiel enthalten die erste und die zweite Schnittstelle 405, 410 beide ein Wähldienstmodul. Die speziellen Arten von Wähldiensten, die bereitgestellt werden, sind jedoch unterschiedlich, weil die Parameter der Wähldienste unterschiedlich sind. Allgemeiner gesagt kann ein Dienst eine Mehrzahl von unterschiedlichen Parametern aufweisen, die zu einer Reihe unterschiedlicher Dienste innerhalb eines jeweiligen Diensttyps führen. Ein Bereitstellen von Dienstarten mit geringfügig unterschiedlichen Parametern kann bewirken, dass wertvoller Speicher in einer Netzeinrichtung verbraucht wird. Durch Nutzung eines Dienstlokalisierungsmerkmals, das von Ausführungsformen der Erfindung bereitgestellt wird, werden Dienste in dem Netzwerk verteilt, wobei der Gesamtspeicher, der für eine beliebige gegebene Netzeinrichtung erforderlich ist, reduziert wird, weil nicht jede Einrichtung einen Speicher benötigt, der für jeden von der Netzeinrichtung genutzten Dienst ausreicht.
  • Bezug nehmend auf 5 soll nun ein praktisches Beispiel für das Anfordern des Bezugs eines Dienstes unter Nutzung einer Ausführungsform des Dienstlokalisierungsmerkmals beschrieben werden. Fahren wir anhand des zuvor in 4 beschriebenen Beispiels des Fernwähldienstes fort, so zeigt der Signalfluss 500 eine Wählanwendung 409 des Endgeräts 401, welche einen Wähldienst zum Wählen eines Gebietscodes 613 benötigt. Die Wählanwendung 409 sendet 460 eine Anforderung an den Dienstemanager 403, um einen Wähldienst zu lokalisieren, der in der Lage ist, einen Gebietscode 613 zu wählen. Der Dienstemanager 403 spricht auf die Anforderung an, indem er eine Kennung sendet 462, die zu nutzen ist, um das Wähldienstmodul 402 in dem Endgerät 401 zu kontaktieren. Die Wählanwendung 409 sendet 464 eine Anforderung an die Clientkomponente des Wähldienstmoduls 402, den Wähldienst zum Wählen des Gebietscodes 613 bereitzustellen. Das Wähldienstmodul 402 nutzt dann Parameter der Anforderung, beispielsweise einen Gebietscode 613, um festzustellen, welches Wähldienstmodul zu kontaktieren ist. Basierend auf dem vorstehenden Beispiel, bei welchem die Schnittstelle 410 bekannt gegeben hat, dass das Wähldienstmodul 413 der zweiten Schnittstelle 410 den Wähldienst zum Wählen des Gebietscodes 613 unterhält, kontaktiert die Clientkomponente des Wähldienstmoduls 402 die Dienstanbieterkomponente des Wähldienstmoduls 413, um bei dem Wähldienstmodul 413 anzufordern 466, den Wähldienst zum Wählen des Gebietscode 613 bereitzustellen. Wenn die Schnittstelle die Anforderung zum Bereitstellen des Fernwähldienstes akzeptiert, agiert dann die Clientkomponente des Wähldienstmoduls 402 als ein Vermittler für zukünftige Anforderungen und Antworten zwischen der Wählanwendung 409 und der Dienstanbieterkomponente des Wähldienstmoduls 413 der zweiten Schnittstelle 410.
  • Bei einigen Ausführungsformen stellt die Anforderung 466 eine dienstspezifische Operation dar. Beispielsweise kann für einen Wähldienst die Anforderung 466 eine Nachricht SIP INVITE sein. Allgemeiner kann die Anforderung andere Protokolltypen darstellen, die eine analoge Funktion ausführen können. Bei einigen Ausführungsformen wird die Anforderung 466 über die Peer-to-Peer-Transportkomponente, wie in 2 gezeigt, oder einen anderen herstellerspezifischen Mechanismus zu einer weiteren Peer-to-Peer-Netzeinrichtung transportiert.
  • Der spezielle Dienst, der in den 4 und 5 beschrieben ist, ist als ein Fernwähldienst beschrieben. Allgemeiner könnte der Dienst von beliebiger Art sein, wie er zuvor beschrieben oder auch nicht beschrieben worden ist, der aber als Dienst bekannt ist, welcher bei herkömmlichen Telephoniediensten genutzt wird.
  • Die vorstehend beschriebenen Signalflussdiagramme aus den 2, 3, 4 und 5 sollen Beispiele dafür sein, wie ein Bekanntgeben von Diensten und ein Anfordern von Diensten, die als verfügbar registriert worden sind, implementiert wird. Bei einigen Ausführungsformen ist es möglicherweise nicht notwendig, alle Nachrichten zu integrieren, wie sie vorliegend beschrieben worden sind, und bei einigen Ausführungen kann es möglicherweise zusätzliche Schritte geben, die integriert werden, um den Betrieb des Dienstlokalisierungsmerkmals zu verbessern. Es sollte auch verstanden werden, dass die Reihenfolge der Signale bei den Signalflüssen, wie sie vorstehend beschrieben worden sind, lediglich Beispiele dafür darstellen, wie der Prozess implementiert werden kann. Durch eine Umordnung der Schritte kann sich eine gewisse Abweichung von dem vorstehend Beschriebenen ergeben, wobei auch diese weiterhin unter den Erfindungsgegenstand der Erfindung fällt.
  • Netzeinrichtungen, welche Ausführungsformen des Dienstlokalisierungsmerkmals nutzen, sind paketbasierte Telefone wie etwa IP(Internetprotokoll)-Telefonendgeräte. Andere Beispiele sind ein Videotelefon, ein PDA (persönlicher digitaler Assistent), ein drahtloses Gerät, ein Computer, der Sprache über paketbasierte Kommunikation von Peer zu Peer unterstützt, oder ein drahtloses Telefon, das geeignet programmiert und konfiguriert werden kann, um die nachstehend beschriebenen Dienstlokalisierungsmerkmale bereitzustellen. In einigen Fällen können die Endgeräte beispielsweise solche IP Telefone sein, wie sie von Mitel, Nortel, Avaya, Siemens, NEC, Pingtel oder 3COM hergestellt werden.
  • Bei einigen Ausführungsformen stellen die Netzeinrichtungen, welche das Dienstlokalisierungsmerkmal nutzen, das durch Ausführungsformen der Erfindung bereitgestellt wird, andere paketbasierte Peer-to-Peer-Einrichtungen dar, wie beispielsweise die Schnittstelle 405, zum Beispiel eine TTI(Thin Truck Interface)-Schnittstelle zum Verbinden eines Peer-to-Peer-Netzwerks mit einem öffentlichen Telefonvermittlungsnetz (PSTN), die in der gleichzeitig anhängigen US-Patentanmeldung 10/740405 beschrieben ist, eine Internetprotokollschnittstelle (IPI) zum Verbinden eines Peer-to-Peer-Netzwerks mit einem Internetprotokoll-Netzwerk (IPN), die in der provisorischen US-Patentanmeldung 60/434,813 beschrieben ist, und zwar mit dem Titel „DISTRIBUTED PEER-TO-PEER VOICE MAIL SYSTEM, METHOD AND TELEPHONE TERMINALS“ und am 20. Dezember 2002 eingereicht worden ist, oder eine beliebige Netzeinrichtung, die beispielsweise zur Datenspeicherung genutzt werden könnte.
  • 6 stellt ein Flussdiagramm für ein Verfahren zum Betreiben eines Dienstlokalisierungsmerkmals dar, welches die Bekanntgabe eines Dienstes nach dem Einschalten und das Unterhalten von Informationen zu Diensten, die als verfügbar bekannt gegeben worden sind, beinhaltet. Ein Anfangsschritt 70 besteht in dem Start des Verfahrens. Nach dem Startschritt 70 wird ein Dienstmodul an die auch als Peer-to-Peer-Zustandsmaschine bezeichnete Peer-to-Peer-Maschine mit endlichen Zuständen angebunden 72, welche definiert, wie eine Peer-to-Peer-Vernetzung in einer paketbasierten Peer-to-Peer-Netzeinrichtung erfolgt. Wenn die paketbasierte Peer-to-Peer-Netzeinrichtung mit einem Peer-to-Peer-Netzwerk verbunden ist, beginnt die Peer-to-Peer-Zustandsmaschine mit dem Senden 74 von Nachrichten an andere paketbasierte Peer-to-Peer-Netzeinrichtungen in dem Peer-to-Peer-Netzwerk mit dem Status der paketbasierten Peer-to-Peer-Netzeinrichtung, welche die Bekanntgabe des verfügbaren Dienstes einschließen. Die paketbasierte Peer-to-Peer-Netzeinrichtung empfängt 76 außerdem Nachrichten von anderen paketbasierten Peer-to-Peer-Netzeinrichtungen in dem Peer-to-Peer-Netzwerk, welche die Verfügbarkeit von Diensten in den anderen paketbasierten Peer-to-Peer-Netzeinrichtungen bekannt geben. Die paketbasierte Peer-to-Peer-Netzeinrichtung empfängt Nachrichten von den anderen paketbasierten Peer-to-Peer-Netzeinrichtungen, welche die Verfügbarkeit von Diensten bekannt geben auf kontinuierlicher Basis 78.
  • Wenn die paketbasierte Peer-to-Peer-Netzeinrichtung Nachrichten von den anderen paketbasierten Peer-to-Peer-Netzeinrichtungen empfängt, wird dem Dienstemanagement die Dienstverfügbarkeit gemeldet 80. Bei einigen Ausführungsformen beinhaltet die Meldung der Dienstverfügbarkeit, dass dem Dienstemanager der Dienst gemeldet wird, der verfügbar ist, und dass dem Dienstmodul der Dienst und der Dienststandort, die verfügbar sind, gemeldet wird. Nachdem dem Dienstmanagement die Verfügbarkeit des Dienstes gemeldet 80 worden ist, fährt das Dienstemanagement damit fort, die unterhaltenen Listen mit verfügbaren Diensten zu aktualisieren 82, beispielsweise aktualisiert der Dienstemanager die Liste verfügbarer Dienste und das Dienstmodul aktualisiert die Liste verfügbarer Dienste und Dienststandorte.
  • Mit Bezug auf 7 soll nun ein Verfahren zum Anfordern des Bezugs eines Dienstes unter Nutzung von bekannt gegebenen Informationen, die verfügbare Dienste betreffen, beschrieben werden. Nach dem anfänglichen Startschritt 702 fordert eine Anwendung, die einen Rufabwicklungsdienst benötigt, um eine Aufgabe auszuführen, bei dem Dienstemanagement eine Kennung für einen erforderlichen Dienst an 704. Das Dienstemanagement spricht auf die Anforderung 704 an, indem es den Dienst beispielsweise mit Hilfe des „Dienst-ID-Codes“ in einer Tabelle oder Liste von Diensten, die von dem Dienstemanagement unterhalten wird, nachschlägt 706. Bei Schritt 708 stellt das Dienstemanagement fest, ob bekannt ist, dass der Dienst existiert. Wenn der Dienst in der Tabelle von Diensten nicht existiert (NEIN-Pfad), meldet das Dienstemanagement der Anwendung diese Tatsache, indem es eine entsprechende Nachricht an die Anwendung zurücksendet 710, beispielsweise „Dienst nicht unterstützt“. Wenn der Dienst unterstützt wird (JA-Pfad), dann meldet das.Dienstemanagement dies der Anwendung, indem eine Dienstinstanzkennung an die Anwendung zurückgesendet wird 712, beispielsweise die Kennung oder Adresse der Clientkomponente des erforderlichen Dienstmoduls. Die Anwendung, wenn sie die Kennung der Dienstinstanz des erforderlichen Dienstmoduls erhalten hat, fährt damit fort, eine Anforderung an die Dienstinstanz zum Bezug des Dienstes auszugeben 714. Die Dienstinstanz schlägt in einer Tabelle nach 716, die von der Dienstinstanz unterhalten wird, welche Standorte von Anbietern des erforderlichen Dienstes umfasst. In Schritt 718 stellt die Dienstinstanz fest, ob ein Anbieter für den Dienst verfügbar ist oder bekannt ist, dass ein solcher existiert. Wie zuvor beschrieben, unterhält die Dienstinstanz, insbesondere die Clientkomponente, eine Liste von Dienstanbietern. Die Liste enthält Dienstanbieter, die lokal an der Netzeinrichtung vorgesehen sind, oder entfernte Dienstanbieter, die in einer anderen Netzeinrichtung lokalisiert sind. Wenn momentan kein Dienstanbieter verfügbar ist (NEIN-Pfad), meldet 722 die Dienstinstanz der Anmeldung diese Tatsache, indem sie eine entsprechende Nachricht an die Anwendung zurücksendet, beispielsweise „keine Anbieter verfügbar“. Wenn ein Dienstanbieter verfügbar ist (JA-Pfad), dann stellt die Dienstinstanz fest 720, wie viele Dienstanbieter verfügbar sind, wenn es beispielsweise mehr als einen Dienstanbieter gibt. Wenn es nur einen einzigen Dienstanbieter gibt (NEIN-Pfad), leitet die Dienstinstanz die Anforderung an den einzigen Dienstanbieter weiter 724. Wenn es mehr als einen Dienstanbieter gibt (JA-Pfad), berechnet 724 die Dienstinstanz eine bevorzugte Reihenfolge für die Dienstanbieter zum Anfordern des Dienstes auf Basis von Dienstkriterien. Bei einigen Ausführungsformen stellt der lokale Dienstanbieter immer die erste Wahl bei der Auswahl des Dienstanbieters zum Anfordern des Bezugs des erforderlichen Dienstes dar. Bei einigen Ausführungsformen beinhalten die Dienstkriterien die Nutzung statistischer Informationen, die in Bezug auf Dienste, welche in dem Peer-to-Peer-Netzwerk verfügbar sind, unterhalten werden, wie später beschrieben wird. Nachdem ein bestimmter Dienstanbieter ausgewählt ist, leitet die Dienstinstanz die Anforderung an den ausgewählten Dienstanbieter weiter 726. Nachdem die Anforderung an den ausgewählten Dienstanbieter weitergeleitet ist 724, 726, wartet 728 die Dienstinstanz auf eine Reaktion von dem ausgewählten Dienstanbieter oder eine auch als „TIMEOUT“ bezeichnete Zeitüberschreitung, welche anzeigt, dass von dem ausgewählten Dienstanbieter keine Antwort empfangen wird. In Schritt 730 stellt die Dienstinstanz fest, ob ein „TIMEOUT“ empfangen worden ist. Wenn ein „TIMEOUT“ empfangen worden ist (JA-Pfad), stellt die Dienstinstanz fest 732, ob weitere Dienstanbieter für einen Versuch vorhanden sind. Wenn weitere Dienstanbieter für einen Versuch vorhanden sind (JA-Pfad), kehrt die Dienstinstanz zu Schritt 726 zurück und leitet die Dienstanforderung an den nächsten ausgewählten Anbieter in der berechneten Reihenfolge von Dienstanbietern weiter. Wenn keine weiteren Anbieter für einen Versuch vorhanden sind (NEIN-Pfad), meldet 722 die Dienstinstanz der Anwendung diese Tatsache, indem sie eine entsprechende Nachricht an die Anwendung zurücksendet, beispielsweise „keine Anbieter verfügbar“. Wenn in Schritt 730 kein „TIMEOUT“ festgestellt worden ist (NEIN-Pfad), stellt die Dienstinstanz fest 734, ob der ausgewählte Dienstanbieter die Dienstanforderung akzeptiert hat. Wenn der Dienstanbieter die Dienstanforderung nicht akzeptiert hat (NEIN-Pfad), stellt die Dienstinstanz fest 732, ob weitere Dienstanbieter für einen Versuch vorhanden sind. Wenn die Dienstanforderung akzeptiert worden ist (JA-Pfad), empfängt 736 die Dienstinstanz die Antwort auf die Anforderung. Nach dem Verfahren wie vorstehend beschrieben arrangieren sich die Dienstinstanz und der Dienstanbieter im Hinblick darauf, dass der Anwendung der erforderliche Dienst zur Verfügung gestellt wird. Die Dienstinstanz fährt fort, als Vermittler zwischen dem Dienstanbieter, der die Anforderung akzeptiert, und der Anwendung, welche den erforderlichen Dienst angefordert hat, zu agieren.
  • Bei einigen Ausführungsformen, wenn eine Netzeinrichtung aus irgendeinem Grunde inaktiv ist, beispielsweise weil.die Netzeinrichtung von dem Peer-to-Peer-Netzwerk abgetrennt ist, wird dem Dienstemanager der Netzeinrichtung, welche einen Dienst anfordert, diese Information durch einen unterlegten Aspekt der Peer-to-Peer-Kommunikation zwischen den Netzeinrichtungen gemeldet, und der Dienstemanager zieht diese Information in Rechnung, wenn die bevorzugte Reihenfolge von Dienstanbietern in der Tabelle von Dienstanbietern berechnet wird 724.
  • Bei einigen Ausführungsformen erfasst die Clientkomponente des Dienstmoduls Informationen, um Statistiken bezüglich des Dienstes zu erzeugen. Ein Beispiel für solche Informationen ist eine Anzahl von Anforderungen für den Dienst in einer gegebenen Zeitspanne, eine Anzahl von Anforderungen für den von der lokalen Netzeinrichtung unterhaltenen Dienst, die in einer gegebenen Zeitspanne zurückgewiesen worden sind, oder eine Anzahl von Anforderungen von der lokalen Clientkomponente nach einem von einer anderen Netzeinrichtung unterhaltenen Dienst, die in einer gegebenen Zeitspanne zurückgewiesen worden sind. Statistiken, die auf solchen Informationen basieren, welche von den Clientkomponenten erfasst worden sind, werden genutzt, um eine Ressourcen- und Dienstzuweisung zu bestimmen. Bei einigen Ausführungsformen nutzt die Clientkomponente die Daten, um zu bestimmen, zu welcher Netzeinrichtung die Clientkomponente eine Anforderung zur Bereitstellung eines Dienstes sendet. Wenn beispielsweise bekannt ist, dass eine bestimmte Netzeinrichtung eine dauerhaft hohe Rückweisungsrate für Dienstanforderungen aufweist, kann die Clientkomponente eine andere Netzeinrichtung auswählen, um die Dienstanforderung dorthin zu senden.
  • Bei einigen Ausführungsformen werden die Informationen und Statistiken, die durch die Clientkomponente festgestellt worden sind, genutzt, um zu bestimmen, welche Knoten einen Dienst betreiben sollten, oder um zu bestimmen, ob eine Anzahl von Dienst-Hosts erhöht oder vermindert werden sollte. Mit Hilfe der Statistiken ist es möglich festzustellen, ob ein mittlerer Schwellenwert für einen Dienst überschritten worden ist. Wird ein mittlerer Schwellenwert niedrig gehalten, wird dies helfen, eine vernünftige Lastverteilung in dem Netz aufrechtzuerhalten, beispielsweise 5 %. Bei einigen Ausführungsformen überwacht jede Netzeinrichtung die Statistiken, und wenn eine mittlere Anforderung nach dem Dienst für das gesamte Netz 5 % übersteigt, schlussfolgert sie, dass ein neuer Host erforderlich ist, um den Dienst bereitzustellen. Es wird ein Verfahren genutzt, um eine neue, zusätzliche Host-Netzeinrichtung auszuwählen, beispielsweise eine niedrigste MAC(Media Access Control)-Adresse für Netzeinrichtungen, die nicht den Dienst betreiben, und diese Netzeinrichtung wird sich selbst zu einem betreibenden Dienstpool hinzufügen und beginnen, den Dienst bereitzustellen. Bei einigen Ausführungsformen gibt es zwei Schwellenwerte, die überwacht werden. Ein erster Schwellenwert ist der vorstehend beschriebene Schwellenwert zum Hinzufügen einer Netzeinrichtung zu dem betreibenden Dienstpool von Anbietern, und ein zweiter Schwellenwert ist ein solcher, bei welchem die Netzeinrichtung beginnt, jede Anforderung nach dem Dienst zurückzuweisen. Der erste und der zweite Schwellenwert müssen im Hinblick auf ein bevorzugtes Systemverhalten optimiert werden. Bei einer speziellen Ausführungsform kann der erste Schwellenwert einen Wert von 5 % aufweisen, und der zweite Schwellenwert kann einen Wert von 7 % aufweisen.
  • Analog wird, wenn ein Dienst aus dem Peer-Netzwerk entfernt werden soll, dann ein niedrigerer Schwellenwert angewandt, beispielsweise 2 %, und es wird ein weiteres vorgegebenes Verfahren genutzt, um den Dienst von einer betreibenden Netzeinrichtung zu entfernen, beispielsweise eine größte MAC-Adresse von Netzeinrichtungen, die den Dienst betreiben. Um ein unnötiges Hinzufügen und Entfernen von Diensten zu vermeiden, muss die Überwachung der Informationen und Statistiken über eine ausreichende Zeitspanne hin erfolgen, um Übergangszustände oder untypische Spitzen bei der Anzahl von Dienstanforderungen zu vermeiden. Eine geeignete Zeitdauer für die Überwachung der Statistiken, um zu bestimmen, ob ein Schwellenwert überschritten ist, kann in Bezug auf das Hinzufügen eines neuen Hosting-Dienstes 5 Minuten und für das Entfernen eines Dienstes 20 Minuten betragen. Natürlich versteht sich, dass dies nur Beispiele für Zeitspannen sind und dass ein beliebiger Wert für die Zeitspannen herangezogen werden könnte, der für ein bestimmtes System optimiert ist.
  • Bei einigen Ausführungsformen sind einem Dienst Attribute zugeordnet. Beispiele für solche Attribute sind statistische Informationen bezüglich der Nutzung des Dienstes, Gebietscodes für Wähldienste oder eine Größe an verfügbarem Speicherplatz für einen Datenspeicherdienst. mit den vorstehend beschriebenen Beispielattributen ist nicht beabsichtigt, die Erfindung auf allein diese Attribute einschränken, sondern es versteht sich, dass es andere Attribute gibt, die anderen Diensten zugeordnet sind.
  • Bei einigen Ausführungsformen wird ein Dienst von dem System vordefiniert, beispielsweise eine Aufbauzeit für die Peer-to-Peer-Umgebung, und wird automatisch beim Systemstart zugewiesen, und zwar auf Basis der Konfiguration; beispielsweise konfiguriert ein Administrator einen neuen Dienst in dem System, oder die Definition erfolgt durch ein „einsteckbares“ Modul.
  • Bei einigen Ausführungsformen stellen die Dienste gesicherte Dienste dar. Bei anderen Ausführungsformen stellen die Dienste ungesicherte Dienste dar.
  • Die Diensttypen werden als festgelegte, globale Einzelinstanz und globale Mehrfachinstanz betrachtet. Ein festgelegter Diensttyp ist ein Dienst, der nur in einer einzigen designierten Netzeinrichtung ausgeführt wird (und aktiv ist). Ein globaler Einzelinstanz-Diensttyp ist ein Diensttyp, der nur an einem Standort in dem Peer-Netzwerk existiert. Der Standort ist nicht nur für eine designierte Netzeinrichtung bestimmt, er kann an einer beliebigen Netzeinrichtung in dem Peer-Netzwerk erscheinen. Ein globaler Mehrinstanzen-Diensttyp ist ein Diensttyp, der mehr als einmal in dem Peer-Netzwerk auftritt. Die Anzahl der Instanzen des globalen Mehrinstanzendienstes in dem Peer-Netzwerk wird sich nachfragegemäß erhöhen oder vermindern, so wie es beispielsweise durch die Verfügbarkeit und die Nutzungsstatistiken bestimmt wird.
  • Ein weiterer spezieller Peer-to-Peer-Dienst, der einen Vorteil aus dem Dienstlokalisierungsmerkmal zieht, ist die entfernte Datenspeicherung. Dieser Dienst implementiert eine Fähigkeit, einen beliebigen Datenblock an einem entfernten Knoten oder einer entfernten Netzeinrichtung in einem Peer-to-Peer-Netzwerk zu speichern. Ein Beispiel für eine Nutzung eines solchen Dienstes wäre diejenige für eine Sprachmailfunktion, bei welcher Sprachmail-Daten in redundanten Netzeinrichtungen gespeichert werden.
  • Der Begriff „Datenblock“ soll genutzt werden, um einen beliebigen Block von Daten zu beschreiben. Bei einigen Ausführungsformen werden die Daten als bytecodierte Pufferdaten gespeichert. An einem Datenblock können solche Vorgänge wie das Hinzufügen von Daten, Replizieren von Daten, Einholen von Daten, Modifizieren von Daten oder Löschen von Daten ausgeführt werden.
  • Bei einigen Ausführungsformen wird beim Start des Dienstes die Konfiguration der Menge an Daten, die verfügbar sein sollen, für den entfernten Datenspeicherdienst definiert. Arten der Speicherung können eine dauerhafte Speicherung umfassen, die über einen Neustart eines Knotens hin anhält, eine Laufzeitspeicherung, die nicht über einen Neustart hin anhalten wird, beispielsweise eine Speicherung, die in einem RAM unterhalten wird, oder eine entfernbare Speicherung, beispielsweise eine USB- oder eine Flash-Karte. Jeder zusätzlich hinzugefügte Speicher wie etwa ein entfernbarer Speicher kann während der Laufzeit den Dienst über zusätzlichen Speicherplatz informieren.
  • 8 zeigt ein funktionelles Blockdiagramm von Software 1050, die in paketbasierten Peer-to-Peer-Netzeinrichtungen wie etwa dem Endgerät 205 oder 210 aus 2 arbeitet. Die Software 1050 umfasst Module zum Ausführen spezieller Funktionen, beispielsweise das Dienstlokalisierungsmerkmal, wie auch ein Modul zum Verteilen von Informationen zwischen den Modulen. Die Software 1050 wird so beschrieben, wie sie in dem Endgerät 205 arbeitet; es sollte jedoch verstanden werden, dass analoge Software in anderen paketbasierten Peer-to-Peer-Netzeinrichtungen implementiert ist, beispielsweise den Schnittstellen 405, 410, welche den Fernwähldienst umfassen. Die Software 1050 ist in einem RAM gespeichert und wird in einer CPU ausgeführt, die beide ebenfalls in einer Netzeinrichtung wie etwa dem Endgerät 205 oder den Schnittstellen 405, 410 umfasst sind. Allgemeiner kann die Software 1050 als eine beliebige geeignete Kombination von Anweisungen implementiert sein, die in einem Speicher zur Ausführung durch Allzweck- oder Spezialprozessoren gespeichert sind, als Firmware, ASICs (Application Specific Integrated Circuits; dt.: anwendungsspezifische integrierte Schaltungen), FPGAs (Field-Programmable Gate Arrays) und als Allzweck- oder spezielle Logik. Ein Systemdispatcher 1000 sorgt für die Kommunikation und Terminierung zwischen verschiedenen Funktionselementen, welche ein Rufabwicklungsmodul 1005, ein Dienstlokalisierungsmodul 1010, ein Wählregelmodul 1015, ein Peer-Erkennungsmodul 1020, einen Display-Treiber 1025, einen Audio-Treiber 1030, einen Eingabe-Treiber 1035 und ein Peer-Ersatzmodul 1040 umfassen. Das Rufabwicklungsmodul 1005 weist außerdem Schnittstellen mit einem Protokollstapel 1045 auf.
  • 8 zeigt ein detailliertes Beispiel für Funktionen, die in einer Netzeinrichtung wie etwa dem Endgerät 205 oder der Schnittstelle 405 enthalten sein können; es versteht sich jedoch, dass eine Netzeinrichtung nicht all die Funktionen, die in 8 gezeigt sind, aufzuweisen braucht, und dass bei einigen Implementierungen eine Netzeinrichtung nur einen Teil der in 8 gezeigten Funktionalität aufweisen wird. Tatsächlich stellen diese Module oder Funktionen bei einigen Ausführungsformen Dienstmodule dar, die in Kombination mit dem Dienstlokalisierungsmerkmal, wie es vorliegend beschrieben worden ist, genutzt werden können, und insofern weist nicht jede Netzeinrichtung alle in 8 gezeigten Funktionen auf.
  • Der Display-Treiber 1025 formatiert die Daten und zeigt die Daten für einen Benutzer an, beispielsweise über einen Display-Bildschirm, der Teil der Benutzerschnittstelle der Netzeinrichtung ist. Der Eingabetreiber 1035 überwacht Eingaben von beispielsweise Tastendrücken, einem Gabelschalter, Lautstärke-Tasten und Freihand- sowie Stummschalte-Tasten und informiert den Systemdispatcher 1000. Der Systemdispatcher 1000 verteilt dann Nachrichten an andere Module im Hinblick auf die entsprechend auszuführende weitere Aktion. Der Audio-Treiber 1030 gibt bei Empfang einer Audionachricht von dem Systemdispatcher 1000 Audiotöne wie etwa.Klingeln, Besetztzeichen und Rufwartetöne wieder und/oder verbindet mit einem Handgerät-Lautsprecher oder einem Lautsprechertelefon über eine Medienverbindung.
  • Wenn das Endgerät 205 anfänglich mit einem Peer-to-Peer-Netzwerk verbunden wird, führt es eine Peer-Erkennung durch Ausführung des Peer-Erkennungsmoduls 1020 aus. In diesem Moment erfolgt in dem Endgerät 205 eine Erkennung von gleichrangigen Netzeinrichtungen oder Peers wie etwa dem Endgerät 210 und anderen Netzeinrichtungen, die mit dem Peer-to-Peer-Netzwerk verbunden sind, und zwar mit Hilfe von Nachrichten zwischen dem Endgerät 205 und den anderen Netzeinrichtungen. Sobald die anderen Netzeinrichtungen erkannt sind, werden zwischen dem Endgerät 205 und den anderen Endgeräten und Netzeinrichtungen Informationen ausgetauscht. Bei einigen Ausführungsformen werden auf diese Weise Bekanntgaben zu verfügbaren Diensten in einer gegebenen paketbasierten Peer-to-Peer-Netzeinrichtung den anderen paketbasierten Peer-to-Peer-Netzeinrichtungen übermittelt. Bei einigen Ausführungsformen sind die Informationen, die in den Nachrichten ausgetauscht werden, in einer Wegeleitungstabelle enthalten, sodass die paketbasierten Peer-to-Peer-Netzeinrichtungen Kenntnis von Ersatzeinrichtungen bestimmenden Informationen erhalten.
  • Wenn eine paketbasierte Peer-to-Peer-Netzeinrichtung nicht zur Verfügung steht, um einen Anruf abzuwickeln, beispielsweise wenn sie nicht funktioniert oder nicht mit dem Peer-to-Peer-Netzwerk verbunden ist, wird der Anruf zu einer der für sie bezeichneten Ersatz-Netzeinrichtungen umgeleitet, und die designierte Ersatz-Netzeinrichtung, die den umgeleiteten Anruf empfängt, stellt die Rufabwicklungsfunktionalität für die Netzeinrichtung, welche nicht verfügbar ist, bereit. Bei einigen Ausführungsformen weisen paketbasierte Peer-to-Peer-Netzwerke jeweils zumindest eine Ersatz-Netzeinrichtung auf, welche eine ersatzweise Unterstützung für die nicht verfügbare paketbasierte Peer-to-Peer-Netzeinrichtung bietet, wenn diese nicht angeschlossen ist oder momentan anderweitig nicht zugänglich ist. Bei einigen Ausführungsformen unterhalten die Ersatz-Endgeräte eine Kopie aller relevanten Konfigurationsdaten für die paketbasierte Peer-to-Peer-Netzeinrichtung, für die ein Ersatz erforderlich ist, und nutzen diese Informationen, um eine geeignete Rufabwicklung bereitzustellen.
  • Auf einem einfacheren Niveau unterhält jede Netzeinrichtung eine Kennung der für sie bestimmten Ersatz-; Netzeinrichtungen sowie eine Adresse für jede designierte Ersatz-Netzeinrichtung. Insbesondere wenn eine neue paketbasierte Netzeinrichtung zu einem Peer-to-Peer-Netzwerk hinzugefügt wird, nutzt die paketbasierte Peer-to-Peer-Netzeinrichtung ihr Peer-Erkennungsmodul 1020, um Wegeleitungsinformationen zu erhalten, die sich auf andere Netzeinrichtungen in dem entfernten Netzwerk beziehen, und nutzt das Peer-Ersatzmodul 1040, um zwei weitere Netzeinrichtungen als Ersatz-Netzeinrichtungen zu bestimmen.
  • Kommen wir auf 8 zurück, so enthält das Wählregelmodul 1015 einen Satz von Wählregeln für das Rufabwicklungsmodul 1005 und/oder wendet diese an, wobei diese regeln, wie Anrufe geleitet werden.
  • Das Rufabwicklungsmodul 1005 interagiert mit dem Protokollstapel 1045, um Kommunikationsverbindungen aufzubauen und abzubauen und um Medienverbindungen aufzubauen.
  • Die Rufabwicklungsmodule einer Anzahl von Netzeinrichtungen dienen gemeinsam dazu, nebenstellenanlagenähnliche (PBX-ähnliche) Rufabwicklungsfähigkeiten in verteilter Weise zu liefern, ohne dass eine Nebenstellenanlage (PBX) erforderlich ist. Beispielsweise wickelt das Rufabwicklungsmodul 1005 des Endgeräts 205 nicht nur Anrufe ab, die für das Endgerät 205 bestimmt sind, sondern wickelt auch Anrufe für andere Netzeinrichtungen ab, für welche es als ein Ersatz-Endgerät bestimmt worden ist.
  • Das Dienstlokalisierungsmodul 1010 weist die Funktionalität zum Bekanntgeben von Diensten, dem Unterhalten von Listen von Diensten und dem Anfordern eines Bezugs von Diensten auf, wie sie vorstehend beschrieben worden sind.
  • Bei einigen Ausführungsformen der Erfindung werden Wegeleitungsinformationen unterhalten, um den paketbasierten Peer-to-Peer-Netzeinrichtungen eines Peer-to-Peer-Netzwerks zu ermöglichen, eine Rufermöglichungsfunktionalität bereitzustellen. Einige Rufermöglichungsfunktionalität umfassen solche Rufabwicklungsfunktionalitäten wie etwa Anrufweiterleitung, Anrufumschaltung, Sprachmail, Parken eines Anrufs und Aufnahme eines geparkten Anrufs sowie Funkruf und andere anrufbezogene Funktionalitäten wie etwa Zeitsynchronisation, Ersatzfunktionen, Peer-Erkennung, Verzeichnisdienste, Verwaltungsdienste und Verschlüsselung.
  • Es sollte jedoch klar verstanden werden, dass die Ausführungsformen der Erfindung nicht durch die Art der Rufermöglichungsfunktionalität, die bereitgestellt wird, beschränkt sind.
  • Zahlreiche Modifikationen und Varianten der vorliegenden Erfindung sind angesichts der vorstehenden Lehren möglich.

Claims (29)

  1. Peer-to-Peer-Netzwerk, umfassend: eine Mehrzahl von untereinander verbundenen, paketbasierten Peer-to-Peer-Netzeinrichtungen (10); und eine Mehrzahl von Diensten, die jeweils von zumindest einer jeweiligen paketbasierten Peer-to-Peer-Netzeinrichtung betrieben werden; wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung, die zumindest einen Dienst der Mehrzahl von Diensten betreibt, den zumindest einen Dienst für andere paketbasierte Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen verfügbar macht; wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung, die zumindest einen Dienst der Mehrzahl von Diensten betreibt, den anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen die Verfügbarkeit des zumindest einen Dienstes bekannt gibt; wobei für einen gegebenen Dienst der Mehrzahl von Diensten der gegebene Dienst einen dynamischen Lastausgleich über mehr als eine paketbasierte Peer-to-Peer-Netzeinrichtung, die den gegebenen Dienst betreibt, erfährt; wobei Dienste in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind, bestimmten paketbasierten Peer-to-Peer-Netzeinrichtungen zugewiesen werden, und wobei eine Anzahl von Dienst-Hosts in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind, erhöht oder vermindert wird.
  2. Peer-to-Peer-Netzwerk nach Anspruch 1, wobei die Dienste zumindest einen aus einer Gruppe umfassen, bestehend aus Audio-Benutzerführung, Wähldienst, Konferenzzusammenschaltung, Gebührenerfassung, Zeitsynchronisationsmaster, Multicast-Umleitung, Sicherheitsverwaltung, Zuordnen und Unterhalten von Informationen, die sich auf Ersatz-Netzeinrichtungen beziehen, Merkmalsschlüssel-Lizenzierung, gemeinsam genutztem, entferntem Datenspeicher und externem Funkruf-Lautsprecher.
  3. Peer-to-Peer-Netzwerk nach Anspruch 1 oder Anspruch 2, wobei zumindest eine paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen dafür ausgelegt ist, einen bestimmten Dienst in dem Peer-to-Peer-Netzwerk zu lokalisieren, und zwar im Ergebnis der Bekanntgaben, die von anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen, welche die bestimmten Dienste betreiben, empfangen wurden.
  4. Peer-to-Peer-Netzwerk nach einem der Ansprüche 1 bis 3, wobei zumindest eine paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen dafür ausgelegt ist, den Bezug eines jeweiligen Dienstes in dem Peer-to-Peer-Netzwerk nach dem Lokalisieren des entsprechenden Dienstes anzufordern.
  5. Peer-to-Peer-Netzwerk nach einem der Ansprüche 1 bis 4, wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung umfasst: zumindest eine Anwendung (30), die dafür ausgelegt ist, einen Dienst der Mehrzahl von Diensten, die von einem Dienstmodul bereitgestellt werden, um eine Aufgabe auszuführen, anzufordern und zu nutzen; für jeden Dienst ein entsprechendes Dienstmodul (40, 43, 46), das dafür ausgelegt ist, eine Liste von Standorten des Dienstes in dem Peer-to-Peer-Netzwerk zu unterhalten, und das dafür ausgelegt ist, den Dienst von entweder einer lokalen Quelle oder einer entfernten Quelle bereitzustellen; und einen Dienstemanager (20), der dafür ausgelegt ist, die Interaktion zwischen der zumindest einen Anwendung und zumindest einem Dienstmodul zu organisieren.
  6. Peer-to-Peer-Netzwerk nach Anspruch 5, wobei jedes Dienstmodul eine Clientkomponente (42, 45, 48) umfasst, die dafür ausgelegt ist, den Bezug eines jeweiligen Dienstes, der von der zumindest einen Anwendung angefordert wird, entweder lokal oder entfernt anzufordern.
  7. Peer-to-Peer-Netzwerk nach Anspruch 5, wobei, wenn eine paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen einen bestimmten Dienst betreibt, das Dienstmodul eine betreibende Dienstanbieterkomponente (41, 44, 47) umfasst, wobei die betreibende Dienstanbieterkomponente dafür ausgelegt ist, der zumindest einen Anwendung den angeforderten Dienst bereitzustellen.
  8. Peer-to-Peer-Netzwerk nach Anspruch 5, bei welchem jede paketbasierte Peer-to-Peer-Netzeinrichtung eine Clientkomponente für jeden Dienst, der für die paketbasierte Peer-to-Peer-Netzeinrichtung verfügbar ist, sowie eine betreibende Dienstanbieterkomponente für jeden Dienst, der von der paketbasierten Peer-to-Peer-Netzeinrichtung betrieben wird, umfasst; wobei die Clientkomponente dafür ausgelegt ist, den Bezug eines jeweiligen Dienstes, der von der zumindest einen Anwendung angefordert wird, entweder lokal oder entfernt anzufordern, und die betreibende Dienstanbieterkomponente dafür ausgelegt ist, der zumindest einen Anwendung den angeforderten Dienst bereitzustellen.
  9. Peer-to-Peer-Netzwerk nach einem der Ansprüche 1 bis 8, wobei jede paketbasierte Peer-to-Peer-Netzeinrichtung statistische Informationen bezüglich der Dienste in dem Peer-to-Peer-Netzwerk unterhält.
  10. Peer-to-Peer-Netzwerk nach einem der Ansprüche 1 bis 9, wobei zumindest eine der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen ein VoIP(Voice over Internet Protocol)-Endgerät darstellt.
  11. Peer-to-Peer-Netzwerk nach einem der Ansprüche 1 bis 9, wobei zumindest eine der Mehrzahl von untereinander verbundenen paketbasierten Peer-to-Peer-Netzeinrichtungen zumindest eine aus einer Gruppe darstellt, bestehend aus einer Schnittstelle zum Verbinden von paketbasierten Peer-to-Peer-Netzeinrichtungen mit einem öffentlichen Telefonvermittlungsnetz (PSTN), einer Schnittstelle zum Verbinden von paketbasierten Peer-to-Peer-Netzeinrichtungen mit einem paketbasierten Netzwerk und einer Netz-Datenspeichereinrichtung.
  12. Verfahren in einem Peer-to-Peer-Netzwerk, das eine Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen zum gemeinsamen Implementieren von Diensten in verteilter Weise umfasst, wobei das Verfahren umfasst: Bekanntgeben eines verfügbaren Dienstes, der von einer paketbasierten Peer-to-Peer-Netzeinrichtung betrieben wird, für andere paketbasierte Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen; Unterhalten einer Liste von Diensten, die in der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen vorgesehen sind; Anfordern des Bezugs eines jeweiligen Dienstes von einer bestimmten der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen, wobei die ausgewählte paketbasierte Peer-to-Peer-Netzeinrichtung auf Basis der unterhaltenen Liste ausgewählt wird; Unterhalten statistischer Informationen bezüglich der Dienste in dem Peer-to-Peer-Netzwerk; Zuweisen von Diensten an bestimmte paketbasierte Peer-to-Peer-Netzeinrichtungen in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind, und Erhöhen oder Vermindern der Anzahl von Dienst-Hosts in Abhängigkeit von den statistischen Informationen, die bezüglich der paketbasierten Pee-to-Peer-Netzeinrichtungen erfasst worden sind.
  13. Verfahren nach Anspruch 12, wobei die paketbasierte Peer-to-Peer-Netzeinrichtung periodisch eine Bekanntgabe des verfügbaren Dienstes für die anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen aktualisiert.
  14. Verfahren nach Anspruch 12, wobei das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt des Registrierens des verfügbaren Dienstes bei der paketbasierten Peer-to-Peer-Netzeinrichtung umfasst.
  15. Verfahren nach Anspruch 14, welches ferner einen Schritt umfasst, bei dem die paketbasierte Peer-to-Peer-Netzeinrichtung eine Liste von Diensten aktualisiert, um den registrierten verfügbaren Dienst einzuschließen.
  16. Verfahren nach einem der Ansprüche 12, 14 oder 15, wobei das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt umfasst, bei dem die paketbasierte Peer-to-Peer-Netzeinrichtung eine Bekanntgabe des verfügbaren Dienstes an die anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen sendet.
  17. Verfahren nach einem der Ansprüche 12 bis 16, wobei das Unterhalten von statistischen Informationen bezüglich der Dienste sich auf statistische Informationen bezieht, welche die Dienste betreffen, die von der entsprechenden paketbasierten Peer-to-Peer-Netzeinrichtung betrieben werden.
  18. Verfahren nach einem der Ansprüche 12 bis 16, wobei das Unterhalten statistischer Informationen bezüglich der Dienste sich auf statistische Informationen bezieht, welche die von der paketbasierten Peer-to-Peer-Netzeinrichtung angeforderten Dienste betreffen, die entfernt bezogen werden müssen.
  19. Verfahren nach einem der Ansprüche 12 bis 16, welches ferner einen Schritt des Lastausgleichs über mehr als eine paketbasierte Peer-to-Peer-Netzeinrichtung, welche den gegebenen Dienst betreibt, in Abhängigkeit von den statistischen Informationen umfasst, die bezüglich der paketbasierten Peer-to-Peer-Netzeinrichtungen erfasst worden sind.
  20. Verfahren nach Anspruch 12, wobei das Unterhalten einer Liste ferner folgende Schritte umfasst: Empfangen einer Bekanntgabe eines verfügbaren Dienstes von einer anderen Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen; Unterhalten einer Kennung des verfügbaren Dienstes in einer Liste von verfügbaren Diensten; und Weiterleiten der Kennung und der Lokalisierungsinformation des verfügbaren Dienstes, die in der Bekanntgabe empfangen worden sind, an ein lokales Dienstmodul, wobei das Dienstmodul den Namen und den Standort des verfügbaren Dienstes in einer Liste für Namen und Standorte von verfügbaren Diensten unterhält.
  21. Verfahren nach Anspruch 12, wobei das Anfordern des Bezugs eines jeweiligen Dienstes folgende Schritte umfasst: Anfordern des jeweiligen Dienstes; Feststellen, welche eine oder mehrere paketbasierte Peer-to-Peer-Netzeinrichtung(en) der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen den jeweiligen Dienst betreibt, und zwar basierend auf der unterhaltenen Liste; Kontaktieren einer paketbasierten Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt; Empfangen einer Antwort von der den Dienst betreibenden paketbasierten Peer-to-Peer-Netzeinrichtung in Bezug darauf, ob die den Dienst betreibende paketbasierte Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst bereitstellen kann; Anfordern des Bezugs des jeweiligen Dienstes, wenn die den Dienst betreibende paketbasierte Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst bereitstellen kann; und wenn die den Dienst betreibende paketbasierte Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst nicht bereitstellen kann, Kontaktieren einer anderen paketbasierten Peer-to-Peer-Netzeinrichtung der weiteren paketbasierten Peer-to-Peer-Netzeinrichtungen, für die registriert ist, dass sie den jeweiligen Dienst betreiben, bis der jeweilige Dienst als verfügbar gefunden werden kann.
  22. Verfahren nach Anspruch 12, wobei das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt umfasst, bei dem eine betreibende Dienstanbieterkomponente der paketbasierten Peer-to-Peer-Netzeinrichtung, die einen Dienst betreibt, den verfügbaren Dienst bei einem Dienstemanager der paketbasierten Peer-to-Peer-Netzeinrichtung registriert.
  23. Verfahren nach Anspruch 22, welches ferner einen Schritt umfasst, bei dem der Dienstemanager eine Liste von Diensten aktualisiert, um den registrierten verfügbaren Dienst einzuschließen.
  24. Verfahren nach Anspruch 12, wobei das Bekanntgeben eines verfügbaren Dienstes ferner einen Schritt umfasst, bei dem ein Dienstemanager der paketbasierten Peer-to-Peer-Netzeinrichtung, die einen Dienst betreibt, eine Bekanntgabe des verfügbaren Dienstes an die anderen paketbasierten Peer-to-Peer-Netzeinrichtungen der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen sendet.
  25. Verfahren nach Anspruch 12, wobei das Anfordern des Bezugs eines jeweiligen Dienstes folgende Schritte umfasst: eine Anwendung (30) der paketbasierten Peer-to-Peer-Netzeinrichtung (10) fordert bei einem Dienstemanager (20) der paketbasierten Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst an; der Dienstemanager liefert der Anwendung einen Standort eines Dienstmoduls (40, 43, 46) der paketbasierten Peer-to-Peer-Netzeinrichtung für den jeweiligen Dienst; die Anwendung kontaktiert das Dienstmodul, um den Bezug des jeweiligen Dienstes anzufordern; eine Clientkomponente (42, 45, 48) des Dienstmoduls stellt fest, welche paketbasierte Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen den jeweiligen Dienst betreibt, und zwar basierend auf der unterhaltenen Liste; die Clientkomponente kontaktiert eine betreibende Dienstanbieterkomponente (41, 44, 47) eines Dienstmoduls einer paketbasierten Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt; die Clientkomponente empfängt eine Antwort von der betreibenden Dienstanbieterkomponente, die den jeweiligen Dienst betreibt, in Bezug darauf, ob die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst bereitstellen kann; die Clientkomponente bezieht den jeweiligen Dienst, wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den entsprechenden Dienst betreibt, den entsprechenden Dienst bereitstellen kann; und wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst nicht bereitstellen kann, kontaktiert die Clientkomponente eine betreibende Dienstanbieterkomponente weiterer paketbasierter Peer-to-Peer-Netzeinrichtungen, für die registriert ist, dass sie den jeweiligen Dienst betreiben, bis der jeweilige Dienst zur Nutzung durch die Anwendung als verfügbar gefunden werden kann.
  26. Verfahren nach Anspruch 25, wobei während des Schritts, bei dem die Clientkomponente erstmalig eine betreibende Dienstanbieterkomponente eines Dienstmoduls kontaktiert, sich die Clientkomponente und die betreibende Dienstanbieterkomponente in dem gleichen Dienstmodul befinden.
  27. Verfahren nach Anspruch 25, bei welchem während des Schritts, bei dem die Clientkomponente eine betreibende Dienstanbieterkomponente eines Dienstmoduls kontaktiert, sich die Clientkomponente und die betreibende Dienstanbieterkomponente in unterschiedlichen Dienstmodulen in unterschiedlichen paketbasierten Peer-to-Peer-Netzeinrichtungen befinden.
  28. Verfahren nach Anspruch 12, wobei das Anfordern des Bezugs eines jeweiligen Dienstes folgende Schritte umfasst: eine Anwendung der paketbasierten Peer-to-Peer-Netzeinrichtung fordert bei einem Dienstemanager der paketbasierten Peer-to-Peer-Netzeinrichtung den jeweiligen Dienst an; der Dienstemanager kontaktiert das Dienstmodul, um einen Bezug des jeweiligen Dienstes anzufordern; eine Clientkomponente des Dienstmoduls stellt fest, welche paketbasierten Peer-to-Peer-Netzeinrichtung der Mehrzahl von paketbasierten Peer-to-Peer-Netzeinrichtungen den jeweiligen Dienst betreibt, und zwar basierend auf der unterhaltenen Liste; die Clientkomponente kontaktiert eine betreibende Dienstanbieterkomponente eines Dienstmoduls einer paketbasierten Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt; die Clientkomponente empfängt eine Antwort von der betreibenden Dienstanbieterkomponente, die den jeweiligen Dienst betreibt, in Bezug darauf, ob die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst bereitstellen kann; die Clientkomponente bezieht den jeweiligen Dienst, wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den entsprechenden Dienst betreibt, den entsprechenden Dienst bereitstellen kann; und wenn die paketbasierte Peer-to-Peer-Netzeinrichtung, für die registriert ist, dass sie den jeweiligen Dienst betreibt, den jeweiligen Dienst nicht bereitstellen kann, kontaktiert die Clientkomponente eine betreibende Dienstanbieterkomponente anderer paketbasierter Peer-to-Peer-Netzeinrichtungen, für die registriert ist, dass sie den jeweiligen Dienst betreiben, bis der jeweilige Dienst zur Nutzung durch die Anwendung als verfügbar gefunden werden kann.
  29. Computernutzbares Medium mit computerlesbaren Programmcodemitteln zum Ausführen eines der Verfahren gemäß den Ansprüchen 12 bis 28.
DE112004003043.9T 2004-09-30 2004-09-30 System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk Expired - Fee Related DE112004003043B4 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2004/001769 WO2006034563A1 (en) 2004-09-30 2004-09-30 System and methods for announcing and locating services in a distributed peer-to-peer network

Publications (2)

Publication Number Publication Date
DE112004003043T5 DE112004003043T5 (de) 2007-12-06
DE112004003043B4 true DE112004003043B4 (de) 2022-05-05

Family

ID=36118525

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004003043.9T Expired - Fee Related DE112004003043B4 (de) 2004-09-30 2004-09-30 System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk

Country Status (4)

Country Link
CA (1) CA2581199C (de)
DE (1) DE112004003043B4 (de)
GB (1) GB2432761B (de)
WO (1) WO2006034563A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8289885B2 (en) 2006-10-27 2012-10-16 Alcatel Lucent Third party charging for SIP sessions
CN101330547A (zh) * 2007-06-20 2008-12-24 朗迅科技公司 在VoIP网络中分布的用于提供服务的媒体资源
US8675643B2 (en) 2007-06-29 2014-03-18 Brother Kogyc Kabushiki Kaisha IP telephone system and iP telephone terminal used therein
EP2046010A3 (de) 2007-10-03 2009-08-26 Brother Kogyo Kabushiki Kaisha IP-Telefonsystem und Steuerverfahren dafür
US8819219B2 (en) 2009-12-23 2014-08-26 Apple Inc. Efficient service advertisement and discovery in multiple wireless networks
US9391853B2 (en) 2009-12-23 2016-07-12 Apple Inc. Efficient service advertisement and discovery in a peer-to-peer networking environment with dynamic advertisement and discovery periods based on operating conditions
US9094495B1 (en) 2014-04-21 2015-07-28 Symbol Technologies, Llc System and method for energy management within a group of devices
US10230252B2 (en) 2015-01-30 2019-03-12 Symbol Technologies, Llc Method and system for charging a battery based on an identifier of a power cable

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000078001A2 (en) 1999-06-11 2000-12-21 Microsoft Corporation General api for remote control of devices
WO2001060109A1 (en) 2000-02-07 2001-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Circuit switched private communication network with integrated packet switched multimedia extensions
US20020188657A1 (en) 2001-01-22 2002-12-12 Traversat Bernard A. Resource identifiers for a peer-to-peer environment
EP1542409A1 (de) 2003-12-10 2005-06-15 Sony International (Europe) GmbH Protokoll für Multi-Hop Ad-Hoc-Netzwerke
US10740405B1 (en) 2019-04-03 2020-08-11 Capital One Services, Llc Methods and systems for filtering vehicle information

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0993163A1 (de) * 1998-10-05 2000-04-12 Backweb Technologies Ltd. System und Verfahren zur verteilten Datencachespeicherung in Kundenendgeräten
US6604140B1 (en) * 1999-03-31 2003-08-05 International Business Machines Corporation Service framework for computing devices
US7171475B2 (en) * 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US7721110B2 (en) * 2001-04-06 2010-05-18 Mcafee, Inc. System and method for secure and verified sharing of resources in a peer-to-peer network environment
US20040107242A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
EP1633079A1 (de) * 2004-09-01 2006-03-08 Deutsche Thomson-Brandt Gmbh Verfahren zum Verwalten von Knoten in einer Gruppe von gleichrangigen Knoten

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000078001A2 (en) 1999-06-11 2000-12-21 Microsoft Corporation General api for remote control of devices
WO2001060109A1 (en) 2000-02-07 2001-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Circuit switched private communication network with integrated packet switched multimedia extensions
US20020188657A1 (en) 2001-01-22 2002-12-12 Traversat Bernard A. Resource identifiers for a peer-to-peer environment
EP1542409A1 (de) 2003-12-10 2005-06-15 Sony International (Europe) GmbH Protokoll für Multi-Hop Ad-Hoc-Netzwerke
US10740405B1 (en) 2019-04-03 2020-08-11 Capital One Services, Llc Methods and systems for filtering vehicle information

Also Published As

Publication number Publication date
GB2432761A (en) 2007-05-30
GB0705542D0 (en) 2007-05-02
CA2581199C (en) 2013-09-24
DE112004003043T5 (de) 2007-12-06
WO2006034563A1 (en) 2006-04-06
CA2581199A1 (en) 2006-04-06
GB2432761B (en) 2009-03-11

Similar Documents

Publication Publication Date Title
DE102006039170B4 (de) Verfahren zum Anbieten eines Call Center-Dienstes in einem Peer-to-Peer-Netzwerk
DE602005002150T2 (de) Verfahren und Vorrichtung zur Bereitstellung von universellen Fernmelderelaisdiensten
DE112010004619B4 (de) Bestimmung der Verfügbarkeit von Identitäteninformationen und deren Übergabe in Peer-to-Peer-Netzwerken
DE102006020059B4 (de) Synchronisation von Informationen zwischen Telekommunikationsendgeräten für mehrere Nutzer
US20170019293A1 (en) Conference call resource assignment for failover
DE69909555T2 (de) Verteiltes Anrufsystem
DE60310676T2 (de) System und verfahren zum identifizieren eines drahtlosen versorgungsknotens für eine mobileinheit
CN1084001A (zh) 电信网络的网络结构和信令规约
DE102009031304B4 (de) Zuordnung von Sytemanfragen zu SMS-Anwenderantworten
DE102005056928A1 (de) Automatisches Erzeugen von gemischten Übertragungsmedien-Nachrichten
DE112004003043B4 (de) System und Verfahren zur Bekanntgabe und Lokalisierung von Diensten in einem verteilten Peer-to-Peer-Netzwerk
DE10345051B4 (de) Verfahren zum Aufbau einer Kommunikationsverbindung in einem direkt kommunizierenden Kommunikationsnetzwerk
EP2469885B1 (de) Verfahren zur Integration von Funktionen eines Telekommunikationsnetzes in ein Datennetz
EP2875626B1 (de) Verfahren und anordnung zum aufbau einer telekommunikationsverbindung
EP3488585B1 (de) Vorrichtung und verfahren zur effizienten realisierung von online- und offline-telefonie in verbindung mit der übertragung und auswertung nutzerspezifischer daten
EP1207670A2 (de) Dienst zur automatischen Übermittlung von Paketdaten
DE60021994T2 (de) Verfahren und System zur adaptiven Zuweisung von Anrufaufgaben
EP3603041B1 (de) Verfahren zum betreiben eines kommunikationssystems, telekommunikationsvorrichtung sowie computerprogrammprodukt
DE60310402T2 (de) Intelligente Nachrichtenleitweglenkung zwischen Mailboxsysteme
DE102004012503B4 (de) Kommunikationsserver und Verfahren zur Steuerung und Überwachung von Endgeräten, und Kombination aus einem Kommunikationsserver, einer Mehrzahl von Kommunikationsknoten und Endgeräten
DE102015010706B4 (de) Verfahren, Vorrichtung und System für ein Verfahren zum Einschalten einer Überwachung von Überwachungsobjekten in einer Computer-Implementierten Telekommunikationsumgebung
DE69932015T2 (de) Kommunikationsnetzwerk für einen Kommunikationssitzungs-Aufbau unter Gebrauch von autonomen Servern
DE102006043233B4 (de) Verfahren zum Anbieten von Centrex-Leistungsmerkmalen in einem Peer-to-Peer-Netzwerk
WO2008022854A1 (de) Verfahren zum anbieten eines voice-mail-dienstes in einem peer-to-peer-netzwerk
EP1744529A1 (de) Verfahren zur Steigerung der Verfügbarkeit von Diensten in einem Peer-to-Peer-Kommunikationsnetz

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R005 Application deemed withdrawn due to failure to request examination
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R409 Internal rectification of the legal status completed
R012 Request for examination validly filed

Effective date: 20110923

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012560000

Ipc: H04L0012700000

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012560000

Ipc: H04L0012700000

Effective date: 20121120

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012700000

Ipc: H04L0045000000

R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee