Thursday, 19 October 2017

Mikko Kolehmainen Gehen Forex Comcast


Software-Distribution über Peer-to-Peer-Netzwerke US 7734717 B2 Die Bereitstellung eines Software-Distributionsdienstes über Ad-hoc-Peer-to-Peer-Netzwerke beinhaltet die Konfiguration eines ersten Geräts, das einen Peer-to-Peer-Software-Verteilungsdienst anbietet, der den Zugriff auf mehrere Programme erleichtert . Der Peer-to-Peer-Software-Verteilungsdienst wird über das erste Gerät unter Verwendung eines Dienstfindungsprotokolls eines Ad-hoc-Peer-to-Peer-Netzwerks beworben. Mindestens eine Abfrage für eine Beschreibung des Peer-to-Peer-Softwareverteilungsdienstes von einer Zielvorrichtung des Ad-hoc-Peer-to-Peer-Netzwerks wird an der ersten Vorrichtung als Reaktion auf die Werbung des Peer-to-Peer-Softwareverteilungsdienstes empfangen . Das Herunterladen eines Programms auf das Zielgerät wird über den Peer-to-Peer-Software-Distributionsdienst erleichtert. Das Programm wird aus der Vielzahl von Programmen ausgewählt und kann auf einem Prozessor der Zielvorrichtung betrieben werden. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die erste Einrichtung (1) einen Peer-to-Peer-Software-Verteilungsdienst anbietet, der den Zugriff auf eine Vielzahl von Programmen ermöglicht, die über die erste Einrichtung den Peer-to-Peer-Softwareverteilungsdienst verwenden Ein Diensterkennungsprotokoll eines Ad-hoc-Peer-to-Peer-Netzwerks und Empfangen von mindestens einer Abfrage für eine Beschreibung des Peer-to-Peer-Softwareverteilungsdienstes von einer Zielvorrichtung des Ad-hoc-Peer-to an der ersten Vorrichtung Wobei die mindestens eine Abfrage eine Beschreibung einer Computerplattform der Zielvorrichtung enthält, die ein Ergebnis als Reaktion auf die Abfrage basierend auf der Beschreibung des Computers zurückfiltert Wobei das Ergebnis eine Liste von Programmen enthält, die aus der Vielzahl von Programmen ausgewählt sind, die in der Lage sind, auf einem Prozessor des Zielgeräts zu operieren, das in Reaktion auf die mindestens eine Abfrage das Herunterladen eines Programms zu dem Zielgerät über den Peer erleichtert Zu-Peer-Software-Verteilungsservice, wobei das Programm aus der Liste der Programme ausgewählt ist und in der Lage ist, auf dem Prozessor der Zielvorrichtung zu arbeiten. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Programm so konfiguriert ist, dass es über das Ad-hoc-Peer-to-Peer-Netzwerk arbeitet. 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die mindestens eine Abfrage als Reaktion auf einen Versuch durch die Zielvorrichtung empfangen wird, auf einen beworbenen Dienst des Ad-hoc-Peer-to-Peer-Netzes zuzugreifen, wobei die mindestens eine Abfrage umfasst Beschreibung des beworbenen Dienstes, und wobei das Programm es dem Zielgerät ermöglicht, den beworbenen Dienst zu verwenden. 4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Herunterladen des Programms auf das Zielgerät das Herunterladen des Programms von dem ersten Gerät zu einem Peer-Gerät umfasst. 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass das Herunterladen des Programms auf das Zielgerät das Herunterladen des Programms von einem zweiten Gerät auf das Zielgerät erleichtert. 6. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass das Herunterladen des Programms auf die Zielvorrichtung das Herunterladen des Programms unter Verwendung eines oder mehrerer Protokolle umfasst, die sich von Protokollen des Ad-hoc-Peer-to-Peer-Netzwerks unterscheiden. 7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Aktivieren des Programms auf dem Zielgerät über das Ad-hoc-Peer-to-Peer-Netzwerk ermöglicht wird. 8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass das Aktivieren des Programms das Überprüfen von Eigentümerzugriffsrechten für mindestens eine der ersten Geräte und der Zielvorrichtung umfasst. 9. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass das Ad-hoc-Peer-to-Peer-Netzwerk ein Universal Plug & Play-Netzwerk umfasst. 10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die mindestens eine Abfrage eine Softwarekategorie umfasst, die zum Filtern des als Reaktion auf die Abfrage zurückgegebenen Ergebnisses verwendet wird. 11. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass eine erste Einrichtung (1) mit einem Ad-hoc-Peer-to-Peer-Netz verbunden ist, das über die erste Einrichtung einen Peer-to - Peer-Netzwerk, wobei der Peer-to-Peer-Software-Verteilungsdienst von einer Peer-Vorrichtung angeboten wird und wobei der Peer-to-Peer-Software-Verteilungsdienst den Zugriff auf eine Vielzahl von Programmen, die von dem ersten Gerät zu dem Peer-Gerät senden, erleichtert Eine Abfrage für eine Beschreibung des Peer-to-Peer-Software-Verteilungsdienstes als Reaktion auf die Entdeckung des Peer-to-Peer-Softwareverteilungsdienstes, wobei die mindestens eine Abfrage eine Beschreibung einer Computerplattform der ersten Vorrichtung, die ein zurückgegebenes Ergebnis filtert, enthält Als Antwort auf die Abfrage basierend auf der Beschreibung der Computerplattform, wobei das Ergebnis eine Liste von Programmen enthält, die aus der Vielzahl von Programmen ausgewählt sind, die in der Lage sind, auf einem Prozessor der ersten Vorrichtung zu arbeiten, Beschreibung des von dem Peer-Gerät empfangenen Peer-to-Peer-Software-Verteilungsdienstes, eines Programms aus der Programmliste und Herunterladen des Programms zu dem ersten Gerät, wobei das Herunterladen durch den Softwareverteilungsdienst des Peer-Geräts erleichtert wird. Verfahren nach Anspruch 11, wobei das Programm so konfiguriert ist, dass es über das Ad-hoc-Peer-to-Peer-Netzwerk arbeitet. 13. Verfahren nach einem der Ansprüche 12 bis 13, dadurch gekennzeichnet, dass der Zugriff auf einen beworbenen Dienst des Ad-hoc-Peer-to-Peer-Netzes durch das erste Gerät erfolgt und dass das Herunterladen des Programms auf das erste Gerät als Reaktion auf den Versuch erfolgt Auf den beworbenen Dienst zuzugreifen, und wobei das heruntergeladene Programm es der ersten Vorrichtung ermöglicht, den beworbenen Dienst zu verwenden. Verfahren nach Anspruch 13, wobei die mindestens eine Abfrage eine Beschreibung des beworbenen Dienstes enthält. 15. Verfahren nach einem der Ansprüche 13 bis 15, dadurch gekennzeichnet, dass das Programm an der ersten Einrichtung aufgerufen wird, um auf den beworbenen Dienst zuzugreifen. 16. Verfahren nach einem der Ansprüche 11 bis 16, dadurch gekennzeichnet, dass das Herunterladen des Programms auf die erste Einrichtung das Herunterladen des Programms von der Peer-Vorrichtung umfasst. 17. Verfahren nach einem der Ansprüche 11 bis 16, dadurch gekennzeichnet, dass das Herunterladen des Programms auf die erste Einrichtung das Herunterladen des Programms von einer Drittanbieter-Rechenanordnung umfasst. 18. Verfahren nach einem der Ansprüche 11 bis 16, dadurch gekennzeichnet, dass das Herunterladen des Programms auf das erste Gerät das Herunterladen des Programms unter Verwendung eines oder mehrerer Protokolle umfasst, die sich von Protokollen des Ad-hoc-Peer-to-Peer-Netzwerks unterscheiden. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass das Programm auf dem ersten Gerät über das Ad-hoc-Peer-to-Peer-Netzwerk aktiviert wird. Verfahren nach Anspruch 19, wobei das Aktivieren des Programms das Zugreifen auf einen Aktivierungsdienst des Ad-hoc-Peer-to-Peer-Netzwerks umfasst. Verfahren nach Anspruch 19, wobei das Aktivieren des Programms den Zugriff auf den Software-Verteilungsdienst des Ad-hoc-Peer-to-Peer-Netzwerks umfasst. 22. Verfahren nach einem der Ansprüche 19 bis 22, dadurch gekennzeichnet, dass das Aktivieren des Programms das Überprüfen von Eigentümerzugriffsrechten für mindestens eine der ersten Geräte und der Peer-Einrichtung umfasst. 23. Verfahren nach einem der Ansprüche 11 bis 23, dadurch gekennzeichnet, dass das Ad-hoc-Peer-to-Peer-Netzwerk ein Universal Plug and Play-Netzwerk umfasst. Verfahren nach Anspruch 11, wobei die mindestens eine Abfrage eine Softwarekategorie enthält, die zum Filtern des als Antwort auf die Abfrage zurückgegebenen Ergebnisses verwendet wird. Vorrichtung nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Datenübertragungseinrichtung (2) eine Datenübertragungseinrichtung (20) aufweist, die mit dem Prozessor verbunden ist Um einen Peer-to-Peer-Software-Verteilungsdienst unter Verwendung eines Dienstfindungsprotokolls des Ad-hoc-Peer-to-Peer-Netzwerks zu ermitteln, wobei der Peer-to-Peer-Softwareverteilungsdienst durch eine Peer-Vorrichtung angeboten wird, und wobei Ermöglicht der Peer-to-Peer-Software-Verteilungsdienst den Zugriff auf eine Vielzahl von Programmen, die an die Peer-Vorrichtung gesendet werden, mindestens eine Abfrage für eine Beschreibung des Peer-to-Peer-Softwareverteilungsdienstes als Antwort auf das Entdecken des Peer-to-Peers Wobei die mindestens eine Abfrage eine Beschreibung einer Computerplattform der Vorrichtung enthält, die ein Ergebnis als Antwort auf die Abfrage basierend auf der Beschreibung der Computerplattform filtert, wobei das Ergebnis eine Liste von Programmen enthält, die aus der Vielzahl von Programmen ausgewählt sind Programme, die in der Lage sind, auf dem Prozessor der Vorrichtung zu arbeiten, ein Programm aus der Liste von Programmen als Antwort auf die Beschreibung des von der Peer-Einrichtung empfangenen Peer-to-Peer-Softwareverteilungsdienstes auswählen und das Programm auf die Vorrichtung laden, wobei die Wird das Herunterladen durch den Software-Verteilungsdienst des Peer-Geräts erleichtert. 26. Vorrichtung nach einem der Ansprüche 25 bis 26, dadurch gekennzeichnet, dass der Peer-to-Peer-Software-Verteilungsdienst als Universal Plug & Play-Gerät bekannt ist. 27. Vorrichtung nach einem der Ansprüche 25 bis 27, dadurch gekennzeichnet, dass die Befehle vom Prozessor weiter betätigbar sind, um zu bewirken, dass die Vorrichtung einen lokal bereitgestellten Peer-to-Peer-Software-Verteilungsdienst anbietet, der den Zugriff auf eine zweite Vielzahl von Programmen über die Dienstfindung erleichtert Protokoll, den lokal bereitgestellten Peer-to-Peer-Software-Verteilungsdienst und das Herunterladen eines zweiten Programms zu einem Zielgerät über den lokal bereitgestellten Peer-to-Peer-Softwareverteilungsdienst erleichtert, wobei das zweite Programm aus der zweiten Mehrzahl von Programmen ausgewählt wird Die auf einem Prozessor des Zielgeräts arbeiten kann. 28. Vorrichtung nach einem der Ansprüche 27 bis 27, dadurch gekennzeichnet, dass der lokal bereitgestellte Peer-to-Peer-Software-Verteilungsdienst als Universal Plug and Play-Gerät bekannt ist. 29. Computerlesbares Speichermedium mit darauf gespeicherten Instruktionen, die durch ein Gerät ausführbar sind, das mit einem Ad-hoc-Peer-to-Peer-Netzwerk gekoppelt werden kann, um: einen Peer-to-Peer-Softwareverteilungsdienst unter Verwendung eines Dienstfindungsprotokolls zu entdecken Des Peer-to-Peer-Software-Verteilungsdienstes von einem Peer-Gerät angeboten wird und wobei der Peer-to-Peer-Software-Verteilungsdienst den Zugriff auf eine Vielzahl von Programmen, die an den Peer senden, erleichtert Mindestens eine Abfrage für eine Beschreibung des Peer-to-Peer-Software-Verteilungsdienstes als Reaktion auf die Entdeckung des Peer-to-Peer-Software-Verteilungsdienstes, wobei die mindestens eine Abfrage eine Beschreibung einer Computerplattform der Vorrichtungsfilterung enthält Ein Ergebnis, das als Reaktion auf die Abfrage auf der Grundlage der Beschreibung der Computerplattform zurückgegeben wird, wobei das Ergebnis eine Liste von Programmen enthält, die aus der Vielzahl von Programmen ausgewählt sind, die in der Lage sind, auf einem Prozessor der Vorrichtung zu arbeiten, die ein Programm aus der Liste der Programme auswählt In Reaktion auf die Beschreibung des von der Peer-Einrichtung empfangenen Peer-to-Peer-Softwareverteilungsdienstes und Herunterladen des Programms an die Vorrichtung, wobei das Herunterladen durch den Softwareverteilungsdienst der Peer-Vorrichtung erleichtert wird. 30. Computerlesbares Medium nach Anspruch 29, bei dem die Befehle weiterhin ausführbar sind durch die Vorrichtung zum Ausführen: Anbieten eines lokal bereitgestellten Peer-to-Peer-Software-Verteilungsdienstes, der den Zugriff auf eine zweite Vielzahl von Programmen ermöglicht, die über das Dienstfindungsprotokoll zugänglich sind , Dem lokal bereitgestellten Peer-to-Peer-Software-Verteilungsdienst und dem Erleichtern des Herunterladens eines zweiten Programms zu einer Zielvorrichtung über den lokal bereitgestellten Peer-to-Peer-Softwareverteilungsdienst, wobei das zweite Programm aus der zweiten Vielzahl von Programmen ausgewählt und geeignet ist Des Betriebs auf einem Prozessor der Zielvorrichtung. GEBIET DER ERFINDUNG Diese Erfindung bezieht sich allgemein auf Computergeräte und insbesondere auf die Bereitstellung von Softwareverteilungsdiensten über Ad-hoc-Peer-to-Peer-Netzwerke. HINTERGRUND DER ERFINDUNG Universal Plug and Play (UPnP) definiert eine Architektur für eine durchgängige Peer-to-Peer-Vernetzung zwischen allen Arten von Unterhaltungselektronik, einschließlich intelligenter Geräte, drahtloser Geräte und PCs aller Formfaktoren. UPnP-Technologien bieten eine Möglichkeit für unterschiedliche Geräte zum Austausch von Daten über Näherungs - oder Ad-hoc-Netzwerke. Das UPnP-Framework wurde entwickelt, um einfach zu bedienende, flexible, standardbasierte Konnektivität für Ad-hoc - oder nicht verwaltete Netzwerke zu schaffen, egal ob zu Hause, in einem kleinen Unternehmen, in öffentlichen Räumen oder im Internet. UPnP-Technologien bieten eine verteilte, offene Netzwerkarchitektur, die TCPIP und die Web-Technologien nutzt, um nahtlose Näherungs-Netzwerke neben der Steuerung und dem Datentransfer zwischen vernetzten Geräten zu ermöglichen. Die UPnP-Gerätearchitektur (UDA) ist so konzipiert, dass sie eine nullkonfigurierte, unsichtbare Vernetzung und automatische Erkennung für eine breite Palette von Gerätekategorien aus einer breiten Palette von Anbietern unterstützt. Dies bedeutet, dass ein Gerät dynamisch ein Netzwerk verbinden, eine IP-Adresse erhalten, seine Fähigkeiten übermitteln und über die Anwesenheit und die Fähigkeiten anderer Geräte erfahren kann. Die UPnP-Spezifikation enthält Standards für die Service Discovery und eine Reihe von bestimmten Device Control Protocols (DCP) werden vom UPnP Forum veröffentlicht. Diese veröffentlichten DCPs standardisieren bestimmte Arten von UPnP-Netzwerkfunktionen. Beispielsweise definieren einige DCPs Funktionen, die zum Rendern von Audio und Video über ein UPnP-Netzwerk verwendet werden. Verschiedene Mitwirkende können diese und andere UPnP-Geräte - und Dienstleistungsbeschreibungen implementieren und so eine Möglichkeit schaffen, Geräte einfach in ein funktionierendes Netzwerk zu integrieren. Es ist das Ziel von UPnP, die Heimat-Elektronik nahtlos miteinander zu interagieren und so die Nützlichkeit solcher Geräte zu fördern. Der UPnP-Standard umfasst Standards für die Service-Discovery und ist vor allem für Näherungs - oder Ad-hoc-Netzwerke gedacht. Verschiedene Mitwirkende veröffentlichen UPnP-Geräte - und Servicebeschreibungen und schaffen so eine Möglichkeit, Geräte einfach zu verbinden und die Implementierung von Netzwerken zu vereinfachen. UPnP ist so konzipiert, dass es in vielen Umgebungen, einschließlich der Heimat, Unternehmen, öffentliche Räume und auf Geräten, die mit dem Internet verbunden sind, zu arbeiten. Der UPnP-Standard ist eine offene Architektur, die Web-Technologien nutzt und für die Bereitstellung von Ad-hoc-Netzwerken und verteilten Computern entwickelt wurde. UPnP und zugehörige Protokolle wurden in erster Linie entwickelt, um es den Verbrauchern zu ermöglichen, einfach ein Heimnetzwerk aufzubauen und auf Geräte zuzugreifen und diese zu steuern, die normalerweise nicht mit einem vernetzten Computer verbunden sind. Die Flexibilität von UPnP bedeutet jedoch, dass es überall implementiert werden kann und an die von den Herstellern des Netzwerkrahmens nicht vorgesehenen Verwendungen angepasst werden kann. Beispielsweise kann UPnP auf mobilen Geräten verwendet werden, die normalerweise mit drahtlosen Provider-Netzwerken verbunden sind. Solche Vorrichtungen können sekundäre verdrahtete oder drahtlose Schnittstellen enthalten, die es den Geräten ermöglichen, mit anderen Entitäten von Heim - oder Geschäftsnetzen zu kommunizieren. Durch ihre Natur werden mobile Geräte leicht transportiert, so dass Benutzer einen besseren Zugang zu diesen Geräten haben als andere Arten von Computergeräten. Wenn die Datenverarbeitungsfähigkeiten und Multimedia-Funktionen solcher Vorrichtungen zunehmen, können mobile Vorrichtungen auch für fortgeschrittenere Freizeitaktivitäten verwendet werden, wie zum Beispiel Musik hören, Kino beobachten, Spiele spielen und dergleichen. Solche Fähigkeiten und Aktivitäten können oft durch Netzwerk-Kommunikation, die es Menschen ermöglichen, mit anderen in gemeinsamen Aktivitäten zu interagieren. Allerdings können Setup und Verwendung von Netzwerk-Features für einige Benutzer erschreckend sein. Diese wahrgenommene Schwierigkeit bei der Verwendung von Netzwerk-Features können einige von der Verwendung von Netzwerk-Entertainment-Funktionen zu verhindern, weil sie nicht das Gefühl, die Anstrengung beim Lernen, wie die Nutzung der Netzwerk-Funktionen beteiligt ist lohnt sich, um diskretionäre Aktivitäten zu verbessern. Daher ist eine Bereitstellung einer einfachen Konfiguration und Verwendung von Netzwerktechnologien zur Unterstützung von Unterhaltungsaktivitäten wünschenswert. ZUSAMMENFASSUNG DER ERFINDUNG Die vorliegende Beschreibung offenbart ein System, eine Vorrichtung und ein Verfahren zum Verteilen von Software über eine Datenverarbeitungsvorrichtung von & ldquor; Datenverarbeitungsvorrichtung "und & ldquor; Ein Ad-hoc, Peer-to-Peer-Netzwerk. In einer Ausführungsform umfasst ein Verfahren das Konfigurieren einer ersten Vorrichtung, um einen Peer-zu-Peer-Software-Verteilungsdienst anzubieten, der den Zugriff auf eine Mehrzahl von Programmen erleichtert. Der Peer-to-Peer-Software-Verteilungsdienst wird über das erste Gerät unter Verwendung eines Dienstfindungsprotokolls eines Ad-hoc-Peer-to-Peer-Netzwerks beworben. Mindestens eine Abfrage für eine Beschreibung des Peer-to-Peer-Software-Verteilungsdienstes wird bei der ersten Vorrichtung von einer Zielvorrichtung des Ad-hoc-Peer-to-Peer-Netzwerks als Antwort auf die Werbung des Peer-to-Peer-Softwareverteilungsdienstes empfangen . Das Herunterladen eines Programms auf das Zielgerät wird über den Peer-to-Peer-Software-Verteilungsdienst erleichtert. Das Programm wird aus der Vielzahl von Programmen ausgewählt und ist in der Lage, auf einem Prozessor der Zielvorrichtung zu arbeiten. In spezielleren Ausführungsformen ist das Programm so konfiguriert, dass es über das Ad-hoc-Peer-to-Peer-Netzwerk arbeitet und die mindestens eine Abfrage kann als Antwort auf einen Versuch durch die Zielvorrichtung empfangen werden, auf einen beworbenen Dienst des Ad-hoc zuzugreifen , Peer-to-Peer-Netzwerk. In einem solchen Fall enthält die mindestens eine Abfrage eine Beschreibung des beworbenen Dienstes, und das Programm ermöglicht es dem Zielgerät, den beworbenen Dienst zu verwenden. Bei anderen Anordnungen beinhaltet das Erleichtern des Herunterladens des Programms zu dem Zielgerät das Herunterladen des Programms von dem ersten Gerät zu dem Peer-Gerät und / oder von einem Drittanbieter-Rechner zum Zielgerät. Das Herunterladen des Programms auf das Zielgerät kann auch das Herunterladen des Programms unter Verwendung eines oder mehrerer Protokolle beinhalten, die sich von Protokollen des Ad-hoc-Peer-to-Peer-Netzwerks unterscheiden. In anderen, besonders speziellen Ausführungsformen umfasst das Verfahren ferner das Ermöglichen der Aktivierung des Programms auf dem Zielgerät über das Ad-hoc-Peer-to-Peer-Netzwerk. Das Aktivieren des Programms kann das Verifizieren von Eigentümerzugriffsrechten für mindestens eine der ersten Geräte und der Zielvorrichtung umfassen. In einigen Konfigurationen enthält das Ad-hoc-Peer-to-Peer-Netzwerk ein Universal Plug & Play-Netzwerk. In einer anderen Anordnung umfasst die mindestens eine Abfrage eine Beschreibung einer Computerplattform der Zielvorrichtung und eine Softwarekategorie, die zum Filtern eines in Reaktion auf die Abfrage zurückgegebenen Ergebnisses verwendet wird. In einer anderen Ausführungsform der Erfindung umfasst ein Verfahren das Ankoppeln eines ersten Gerätes an ein Ad-hoc-Peer-to-Peer-Netzwerk und das Entdecken eines Peer-to-Peer-Softwareverteilungsdienstes über das erste Gerät unter Verwendung eines Dienstfindungsprotokolls des Ad-hoc Peer-to-Peer-Netzwerk. Der Peer-to-Peer-Software-Verteilungsdienst wird von einem Peer-Gerät angeboten und ermöglicht den Zugriff auf mehrere Programme. Mindestens eine Abfrage für eine Beschreibung des Peer-to-Peer-Software-Verteilungsdienstes wird von dem ersten Gerät an das Peer-Gerät als Antwort auf das Entdecken des Peer-to-Peer-Softwareverteilungsdienstes gesendet. Aus der Vielzahl von Programmen wird über die erste Einrichtung ein Programm ausgewählt und das Programm auf das erste Gerät heruntergeladen. Das Herunterladen wird durch den Software-Verteilungsdienst des Peer-Geräts erleichtert. In spezielleren Ausführungsformen ist das Programm so konfiguriert, dass es über das Ad-hoc-Peer-to-Peer-Netzwerk arbeitet. In einem derartigen Fall kann das Verfahren den Versuch einschließen, auf einen beworbenen Dienst des Ad-hoc-Peer-to-Peer-Netzwerks durch die erste Vorrichtung zuzugreifen, und das Herunterladen des Programms zu der ersten Vorrichtung tritt in Reaktion auf den Versuch, auf die beworbenen Personen zuzugreifen, auf Bedienung. Das Programm ermöglicht es dem ersten Gerät, den beworbenen Dienst zu verwenden. In einer derartigen Anordnung kann die Abfrage eine Beschreibung des beworbenen Dienstes umfassen und das Verfahren kann das Aufrufen des Programms an der ersten Vorrichtung zum Zugriff auf den beworbenen Dienst beinhalten. In anderen, spezielleren Ausführungsformen beinhaltet das Herunterladen des Programms zu der ersten Vorrichtung das Herunterladen des Programms von der Peer-Vorrichtung und oder eine Drittanbieter-Rechenanordnung. Ferner kann das Herunterladen des Programms auf die erste Vorrichtung das Herunterladen des Programms unter Verwendung eines oder mehrerer Protokolle beinhalten, die sich von Protokollen des Ad-hoc-Peer-to-Peer-Netzwerks unterscheiden. In einer Konfiguration umfasst das Verfahren ferner das Aktivieren des Programms auf dem ersten Gerät über das Ad-hoc-Peer-to-Peer-Netzwerk und das Aktivieren des Programms kann den Zugriff auf einen Aktivierungsdienst des Ad-hoc-Peer-to-Peer-Netzwerks und oder der Software beinhalten Verteilungsdienst des Ad-hoc-Peer-to-Peer-Netzwerks. Das Aktivieren des Programms kann das Verifizieren von Eigentümerzugriffsrechten für mindestens eine der ersten Geräte und der Peer-Vorrichtung umfassen. In einer anderen Ausführungsform der Erfindung umfasst eine Vorrichtung eine Netzwerkschnittstelle, die in der Lage ist, über ein Ad-hoc-Peer-to-Peer-Netzwerk und einen mit der Netzwerkschnittstelle gekoppelten Prozessor zu kommunizieren. Eine Speichervorrichtung ist mit dem Prozessor gekoppelt und enthält Befehle, die den Prozessor veranlassen, einen Peer-to-Peer-Softwareverteilungsdienst unter Verwendung eines Dienstfindungsprotokolls des Ad-hoc-Peer-to-Peer-Netzwerks zu entdecken. Der Peer-to-Peer-Software-Verteilungsdienst wird von einem Peer-Gerät angeboten und ermöglicht den Zugriff auf eine Vielzahl von Programmen. Die Befehle bewirken ferner, dass der Prozessor ein Programm aus der Vielzahl von Programmen auswählt und das Programm zum Gerät herunterlädt. Das Herunterladen wird durch den Software-Verteilungsdienst des Peer-Geräts erleichtert. In einer spezielleren Ausführungsform bewirken die Befehle ferner, dass der Prozessor einen lokal bereitgestellten Peer-to-Peer-Softwareverteilungsdienst anbietet, der den Zugriff auf eine zweite Vielzahl von Programmen ermöglicht, die über das Dienstfindungsprotokoll den lokal bereitgestellten Peer-to-Peer ankündigen Software-Verteilungsservice und erleichtert das Herunterladen eines zweiten Programms zu einem Zielgerät über den lokal bereitgestellten Peer-to-Peer-Software-Verteilungsdienst. Das zweite Programm wird aus der zweiten Vielzahl von Programmen ausgewählt und kann auf einem Prozessor des Zielgeräts arbeiten. In einigen Vereinbarungen werden der Peer-to-Peer-Software-Distributionsdienst und der lokal bereitgestellte Peer-to-Peer-Software-Verteilungsdienst als Universal Plug and Play-Geräte beworben. In einer anderen Ausführungsform der Erfindung weist ein computerlesbares Speichermedium Befehle auf, die durch eine Vorrichtung ausführbar sind, die mit einem Ad-hoc-Peer-to-Peer-Netzwerk gekoppelt werden kann. Die Befehle sind von der Vorrichtung ausführbar, um Schritte durchzuführen, die das Entdecken eines Peer-to-Peer-Softwareverteilungsdienstes unter Verwendung eines Dienstfindungsprotokolls des Ad-hoc-Peer-to-Peer-Netzwerks umfassen. Der Peer-to-Peer-Software-Verteilungsdienst wird von einem Peer-Gerät angeboten und ermöglicht den Zugriff auf eine Vielzahl von Programmen. Die Schritte umfassen ferner das Auswählen eines Programms aus der Vielzahl von Programmen und das Herunterladen des Programms zu dem Gerät. Das Herunterladen wird durch den Software-Verteilungsdienst des Peer-Geräts erleichtert. In einer besonders bevorzugten Ausführungsform umfassen die Schritte weiterhin einen lokal bereitgestellten Peer-to-Peer-Software-Verteilungsdienst, der den Zugriff auf eine zweite Mehrzahl von Programmen ermöglicht, die über das Diensterkennungsprotokoll den lokal bereitgestellten Peer-to-Peer-Softwareverteilungsdienst anbieten Und erleichtert das Herunterladen eines zweiten Programms zu einem Zielgerät über den lokal bereitgestellten Peer-to-Peer-Software-Verteilungsdienst. Das zweite Programm wird aus der zweiten Vielzahl von Programmen ausgewählt und kann auf einem Prozessor des Zielgeräts arbeiten. In einer anderen Ausführungsform der Erfindung umfasst ein System Mittel, um über eine erste Peer-Vorrichtung einen Peer-to-Peer-Software-Verteilungsdienst über ein Dienstfindungsprotokoll eines Ad-hoc-Peer-to-Peer-Netzwerks anzubieten. Der generische Peer-to-Peer-Software-Verteilungsdienst erleichtert den Zugriff auf mehrere Programme. Das System enthält auch Mittel, um über eine zweite Peer-Einrichtung des Netzwerks den Peer-to-Peer-Software-Verteilungsdienst zu ermitteln, und Mittel zum Erleichtern des Herunterladens eines Programms über den Peer-to-Peer-Software-Verteilungsdienst zu dem zweiten Peer-Gerät. In einer besonders bevorzugten Ausführungsform umfasst das System auch Mittel zum Aktivieren des Programms über den Ad-hoc-Peer-zu-Peer-Verteilungsdienst. Diese und verschiedene andere Vorteile und Merkmale der Neuheit, die die Erfindung kennzeichnen, werden in den beigefügten Ansprüchen besonders hervorgehoben und bilden einen Teil hiervon. Für ein besseres Verständnis der Erfindung, ihrer Vorteile und der durch ihre Verwendung erhaltenen Gegenstände sollte jedoch auf die Zeichnungen Bezug genommen werden, die einen weiteren Teil davon bilden und auf die begleitende Beschreibung, in der repräsentative Beispiele dargestellt und beschrieben sind Von Systemen, Vorrichtungen und Verfahren gemäß der Erfindung. KURZBESCHREIBUNG DER ZEICHNUNGEN Die Erfindung wird im Zusammenhang mit den in den folgenden Diagrammen dargestellten Ausführungsformen beschrieben. FEIGE. Es zeigen: Fig. 1 ein Blockschaltbild eines Systems gemäß Ausführungsbeispielen der Erfindung; 2 ist ein Blockdiagramm, das eine Implementierung eines Softwareverteilungsdienstes gemäß Ausführungsformen der Erfindung darstellt. 3 ist ein Blockdiagramm, das eine UPnP-Softwareverteilungsarchitektur gemäß Ausführungsformen der Erfindung darstellt. 4 ist ein Ablaufdiagramm von beispielhaften Softwareverteilungsdienst-Interaktionen gemäß Ausführungsformen der Erfindung. 5 ist ein Blockschaltbild einer mobilen Vorrichtung gemäß Ausführungsformen der Erfindung. 6 ist ein Flussdiagramm, das ein Verfahren zur Bereitstellung eines Softwareverteilungsdienstes über Ad-hoc-Peer-to-Peer-Netzwerke gemäß Ausführungsformen der Erfindung und 7 ist ein Flussdiagramm, das ein Verfahren zur Verwendung eines Software-Verteilungsdienstes über Ad-hoc-Peer-to-Peer-Netzwerke gemäß Ausführungsformen der Erfindung veranschaulicht. DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN DER ERFINDUNG In der folgenden Beschreibung von verschiedenen beispielhaften Ausführungsformen wird Bezug genommen auf die begleitenden Zeichnungen, die einen Teil hiervon bilden und in denen zur Veranschaulichung verschiedene Ausführungsformen gezeigt sind, in denen die Erfindung ausgeführt werden kann. Es versteht sich, dass andere Ausführungsformen verwendet werden können, da strukturelle und betriebliche Änderungen vorgenommen werden können, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Im Allgemeinen betrifft die vorliegende Erfindung Verfahren, Systeme und Geräte, die es ermöglichen, dass Software über Ad-hoc-Peer-to-Peer-Netzwerke verteilt wird. Die Verteilung von Software kann jede Kombination von Entdeckung, Übertragung, Verifikation, Installation, Kauf, Aktivierung und Wartung von ausführbaren Prozessorbefehlen zwischen zwei oder mehreren Rechenanordnungen umfassen. Die Software kann jede Art von System - oder Anwendersoftware umfassen, die auf einer Datenverarbeitungseinrichtung ausgeführt werden kann. Ein Beispiel für eine solche Software ist ein Spiel, das über einen Verteilungsdienst des Peer-to-Peer-Netzwerks zum Download zur Verfügung gestellt wird. Ein solches Spiel kann auch das Peer-to-Peer-Netzwerk nutzen, um die Verwendung des Spiels zu werben und um das Netzwerk zu nutzen, um Spielabspieldaten auszutauschen. Obwohl verschiedene hierin gezeigte Ausführungsformen in Bezug auf verschiedene spezifische Softwaretypen, wie Spiele, beschrieben werden können, versteht es sich, dass die Erfindung nicht darauf beschränkt ist und auf jede Art von computergestützten Aktivitäten, die in der Technik bekannt sind, angewendet werden kann. In einem System gemäß einer Ausführungsform der Erfindung ermöglicht ein generischer Software-Verteilungsdienst, dass jedes Programm über eine einzige generische Schnittstelle entdeckt und genutzt werden kann. Daher könnte in einer derartigen Anordnung ein Benutzer auf eine Vielzahl von Programmen aufmerksam gemacht werden, die zur Verwendung verfügbar sind. In einigen Szenarien kann die Software verfügbar gemacht werden, um einem Gerät zu helfen, auf einen anderen Dienst auf dem Peer-to-Peer-Netzwerk zuzugreifen. Beispielsweise kann ein Peer-Gerät ein Multiplayer-Spiel entdecken, das über die Discovery-Protokolle des Netzwerks beworben wird. Das Multiplayer-Spiel kann das Peer-to-Peer-Netzwerk sowohl für Discovery - als auch für Gameplay-Ereignisse verwenden. Um das Spiel abzuspielen, kann das Benutzergerät entdecken und automatisch an einen Software-Verteilungsdienst gerichtet werden, der es ermöglicht, kompatible Software auf dem Benutzergerät zu installieren. Auf diese Weise kann der Benutzer nahtlos bis zu unbekannte und nicht installierte Fähigkeiten nutzen, die auf dem Peer-to-Peer-Netzwerk entstehen. In einer Anordnung kann das Ad-hoc-Peer-to-Peer-Netzwerk, das den Software-Verteilungsdienst ermöglicht, ein Universal Plug and Play (UPnP) - Netzwerk sein. Das UPnP-Framework umfasst zwei Layer: eine universelle UPnP-Gerätearchitektur (UDA) und gerätespezifische Device Control Protocols (DCP). Es gibt derzeit etwa zehn standardisierte DCPs für verschiedene Gerätekategorien. Bei der Softwareverteilung über UPnP kann es sich um ein generisches Framework handeln, das es Benutzern ermöglicht, alle verfügbaren Programme zu durchsuchen, sodass die Suche nicht mit einem bestimmten Softwaretyp, einer Geräteplattform, einem Lizenzierungsschema oder anderen Kategorien, die typischerweise mit der Softwareverteilung verbunden sind, verbunden ist. Es kann eine Softwareverteilung DCP erstellt werden, die die Dienste, Aktionen und Zustandsvariablen definiert, die ein UPnP-Softwareverteilungsgerät dem UPnP-Netzwerk aussetzt. In Fig. 1. ein Blockschaltbild 100 ein beispielhaftes System gemäß Ausführungsformen der Erfindung. Im Allgemeinen sind Technologien wie UPnP für den Betrieb innerhalb eines begrenzten Raums konzipiert. In Fig. 1. Eine physikalische Grenze definiert einen lokalen Raum 102. Die Dimensionen des lokalen Raums 102 sind im allgemeinen durch die zugrunde liegenden Netzwerkprotokolle und Medien sowie die Skalierbarkeit der Ad-hoc-Peer-to-Peer-Netzwerktechnologien begrenzt, die verwendet werden, um die Softwareverteilung zu erleichtern. Es versteht sich jedoch, dass andere Ad-hoc-Peer-to-Peer-Protokolle nicht auf irgendwelche physikalischen Raumbeschränkungen beschränkt sind, und daher ist die Darstellung des lokalen Raums 102 zu Zwecken der Veranschaulichung und nicht beschränkend. Der Raum 102 kann mindestens ein lokales Netzwerk 104 umfassen, das in der Lage ist, die Kommunikation mit einer oder mehreren Benutzervorrichtungen 106 zu unterstützen. Das lokale Netzwerk 104 kann jede Kombination von Datenübertragungsmedien und Protokollen umfassen. Beispielsweise kann das Netzwerk 104 drahtgebundene oder drahtlose Datenübertragungsmedien verwenden. Ähnlich können die Vorrichtungen 106 auf dem lokalen Netzwerk 104 verschiedene physikalische und Datenverbindungsschichtprotokolle aufweisen, um miteinander zu kommunizieren, einschließlich Ethernet, FDDI, PPP, ATM, HDLC, Fibre Channel, X-10, serielle parallele Punkt-zu-Punkt-Verbindungen usw. A Kann die Anzahl der Netzwerkprotokolle mit höherer Schicht auch auf dem Netzwerk 104 einschließlich TCPIP, UDPIP, IPX, Appletalk, ICMP, ARP, SNMP, DNS, FTP, NetBEUI usw. ausgeführt werden. Die Benutzereinrichtungen 106 umfassen im Allgemeinen irgendeine Art von Datenverarbeitungsfähigkeiten , Und insbesondere sind zumindest einige der Vorrichtungen 106 in der Lage, Software über das Netzwerk 104 zu erhalten und auszuführen. In den meisten Installationen enthält diese Software Benutzer - oder Systemprogramme, die in der Lage sind, auf Vorrichtungen 106 mit Allzweckdatenverarbeitungsfähigkeiten zu laufen. Solche Vorrichtungen 106 enthalten gewöhnlich einen ausreichenden Speicher (z. B. Speicher mit wahlfreiem Zugriff), um in neue Programme zu laden, die das Verhalten der Vorrichtung auswählbar verändern. Such devices 106 generally include (or at least have access to) some type of persistent data storage (e. g. hard disk, flash memory) that allow the devices 106 to retain changed or added software after the cycling of power. Although the concepts described herein may be usefully applied to, general-purpose computing devices, the invention need not be limited such devices. For example, the devices 106 may include an embedded device 107 . which is a limited-purpose data processing arrangement that is not, in general, extendable by the addition of new programs. However, the existing specific-purpose program contained in the embedded device 107 may be updated, modified, or replaced by a peer-to-peer software distribution service as described herein. For example, the embedded device 107 may include a smart UPnP appliance that performs a single function via the network 104 . Such device 107 may be upgradeable (e. g. to enhance the specific function or fix bugs) by modifying flash memory that contains the operating instructions of the device 107 . In such an arrangement, the device 107 may include instructions that allow it to utilize a UPnP software distribution service for obtaining and applying flash memory upgrades without requiring user intervention. In the illustrated diagram 100 . other networkable devices 106 include a gaming console 108 . mobile phone 109 . laptop computer 110 . personal digital assistant 112 . portable music player 114 . tablet computer 116 . personal computer 117 . entertainment center 120 . or any other device as represented by generic data processing device 118 . Because protocols such are UPnP are applicable to a wide variety of consumer electronics, consumer electronics devices such as the entertainment center 120 include peer-to-peer network functionality. In some configurations, the consumer electronics device 120 . like the embedded device 107 . may have fixed functionality, such as being only capable of rendering sound or video. For example, such capabilities may be included in a flash memory program of the device 120 . and thus are relatively fixed for the life of the device 120 . In other arrangements, however, the device 120 may include general-purpose computer capabilities such as access to random access memory (RAM) andor persistent storage, and as such may be able to add new programs to extend the devices capability. In either arrangement, the device 120 may be adaptable to use or provide some or all of the software distribution services described herein. Preferably, the network 104 and its underlying protocols are designed to be generic and flexible so that many types of control or data processing functionality can be abstracted and offered as a service to other entities on the network 104 . In one embodiment, the local network 104 may support one or more protocols for ad-hoc, peer-to-peer service discovery and interoperability. An example of ad-hoc, peer-to-peer protocols are those protocols used in the UPnP architecture. UPnP uses the Simple Service Discovery Protocol (SSDP) for service discovery, and is generally built on top of Internet Protocol (IP) based networks. Although concepts of the present invention may be described in terms of UPnP networks, those familiar with the applicable art will appreciate that these concepts may be applied to any manner of ad-hoc, peer-to-peer networking arrangement suitable for consumer or business networks. For example, the Service Location Protocol (SLP), Zeroconf, and Jini are protocols that provide functions similar to those of UPnP. The local network 104 may be designed to service a limited physical region, as indicated by the boundary 102 . The protocols used in such a local network 104 (e. g. UPnP) often assume that the network 104 will need to support only a limited number of devices operating within a reasonably small area. However, many devices on the local network 104 may benefit from information services available via an external network, particularly the Internet 126 . The UPnP specification defines a special servicefunction known as an Internet Gateway Device (IGD) 128 . The IGD function 128 can be provided by one or more of the devices 106 for purposes of provide routing and firewall services on behalf of others of the devices 106 of the local UPnP network 104 . In some arrangements, a dedicated gateway device may perform the IGD functions 128 on the UPnP network 104 . as well as providing traditional gatewayrouter functions for non-UPnP devices. In one embodiment of the invention, one or more of the user devices 106 have specialized components 130 that enable the devices 106 to distribute software programs at least via the local network 104 . This component 130 may be referred to alternately as a device or a service. In the UPnP specifications, the concept of a device is a logical abstraction that does not necessarily have a one-to-one correspondence to a single piece of hardware. The software distribution deviceservice 130 may be hosted by one or more of the network devices 106 and be advertised 132 according to service discovery protocols of the local peer-to-peer network 104 . For example, devices on a UPnP network advertise via SSDP, which uses XML UDP unicast and multicast packets to advertise 132 services. In response to the advertisement 132 . a device 118 may initiate further negotiations (e. g. queries) to discover particulars about the service 130 . Assuming the device 118 is willing and able to utilize the software distribution service 130 . the device can request 134 a software distribution function via the service 130 . One software distribution function that may be requested 134 by the device is a download 136 . In the illustrated environment, the download 136 may involve data transfer directly from the service 130 to the device 118 . In another example, a download 138 may be facilitated by the service 130 . but the data transfer 138 occurs from another device 117 in the local network 104 . The device 117 from which the download 138 originates may or may not be capable of communicating using the formats and protocols of the service 130 . For example, the device 117 may be in a sleep mode, and the servicedevice 130 acts as a proxy that processes queries and other transactions, but causes the download 138 to originate from the device 117 after causing the device 117 to wake up. In another example, the device 117 may use an out-of-band mechanism to transfer data. As used herein, the term out-of-band generally refers to the use of one or more protocols that are not part of the protocols of the ad hoc peer-to-peer network 104 . For example, although both File Transfer Protocol (FTP) and UPnP may work on top of TCPIP networks, a simple host-to-host FTP file transfer may be considered out-of-band because such a transfer, by itself, does not utilize the UPnP protocol stack. Conversely, in-band mechanisms use at least a minimum set of the protocols defined for devices 106 to engage in ad hoc, peer-to-peer interactions via the network 104 . In another arrangement, a download 140 may originate from an outside network such as the Internet 126 . and may be facilitated by one or more local components, including the software distribution service 130 and the IGD 128 . Where the download originates from outside the network, an entity 142 providing the download 140 may not appear as a logical device on the local network 104 . In one arrangement, a device such as the IGD 128 may act as a proxy for the software downloads, so that it appears that the IGD 128 is providing the download, even though the data originates from an external entity 142 . The external entity 142 may include a single server or multiple, distributed hosts that provide a partial download using peer-to-peer technologies such as BitTorrent and Gnutella. Local entities 130 . 117 may also participate in similar distributed software distribution. Downloading is only one example of a software distribution function that may be facilitated by the deviceservice 130 . Other functions are illustrated as the setupconfigureactivate function 144 . These functions 144 may include any actions other than downloading that cause the instructions to operate correctly on a particular device. For example, configuration may include adding and modifying files or other data to the target device. This configuration data may be used by an installer program, be read from and written to by programs to maintain states, used to store log data, etc. The functions 144 may also involve placing of files and other persistent objects in the correct places of a file system hierarchy, patching of binaries, activation of protectedencrypted code, making system fileregistry changes, communication with existing software components, etc. The service 130 may directly perform the function 144 . or may facilitate functions between the client 118 and another entity. An example of this is the illustrated activation 146 . which performed via an entity 142 that is outside the local environment 102 . It will be appreciated that the illustrated system 100 holds many advantages over traditional ways of distributing software. In typical systems, the user must first have knowledge of the particular software, find the downloads of the software for a particular computing platform, and install the software. Where the software involves interaction with other people or devices (e. g. in a UPnP environment) the user may also have to seek out a device, user, or community in which to engage in the software activity. However, in a system according to embodiments of the invention, the existence of the target activity and the existence of other people and devices that are willing to engage in the activity may be determined by just performing service discovery via the ad hoc networks. In many situations, the users may be unable to engage in the targeted activity without additional software. In such a case, the software that facilitates the activity could be automatically downloaded on a trial or permanent basis from others in the local environment or elsewhere. This allows users to be more discerning about which software that they wish to install on their system. The decisions may therefore be based on the actual usage of such activities in environments frequented by the user, rather than based on possibly outdated or inaccurate data obtained via public forums such as the Web. In reference now to FIG. 2. a more detailed example is presented of how software distribution can be facilitated in accordance with embodiments of the invention. Two mobile terminals 202 . 204 are coupled via an ad hoc, peer-to-peer network 206 . In this example, mobile terminal 202 includes a control pointclient 208 and terminal 204 includes a distribution server 210 that may be configured to distribute software to mobile terminals 202 . 204 . or any other device of the network 206 . It will be appreciated that both terminals 202 . 204 may contain any combination of respective control pointclient 208 and server components 210 . although in this example only the illustrated components 208 . 210 are being utilized on respective terminals 202 . 204 . In this scenario, the terminal 204 may be acting as a UPnP device that is offering its distribution services 210 to other UPnP devices on the network 206 . As such, the terminal 204 may provide an eXtensible Markup Language (XML) device description 212 in response to queries received via the network 206 . The example device description 212 includes variables that describe the device itself, such as the device type 214 . Generally, a UPnP device also provides one or more services, and the illustrated device description 212 shows two example services, a program directory service 216 and a download manager service 218 . The program directory service 216 facilitates querying and listing of programs that are available via the server device 214 . The program directory service 216 may be able to provide listing of program using various criteria. One parameter that the client 208 may be required to submit includes computing platform. As is known in the art, a computing platform is sometimes defined as the combination of central processing unit (CPU) and operating system (OS) used by a device. For example, an Intel x86 compatible CPU may run different OSes, such as Windows, Linux, OS X, Free BSD, etc. Although all programs that run natively on an x86 CPU will use the same instruction set, the programs need particular arrangements of instructions and data in order to be compatible with a particular OS. In some cases, a program may even rely on a particular patch level of the OS, and will not run correctly on incompatible patch levels. Similarly, the Linux OS has been compiled to run on a wide variety of different CPUs. However, a program compiled for Linux x86, for example, will have to be recompiled to run on Linux for a different CPU. A number of adaptations have been created to ease the problem of using software on incompatible platforms. In some arrangements, an emulation program creates a virtual processor and OS that allows a program to run even if it was compiled for a different OS and CPU, albeit with significant performance degradation. Other adaptations, such as the Wine Project, allow programs that are compiled for a particular CPU to run in a different operating system on the same CPU. These adaptations emulate the application program interface (API) of another operating system, but because the program was compiled for the same CPU type, the program instructions can still be run directly on the CPU without any translation. Still other adaptations involve distributing programs that do not utilize CPU specific instructions at all. One form of these adaptations are scripting languages such as Perl, Python, Basic, etc. which utilize programs written in ASCII text, and the text is converted to machine language on-the-fly at run-time. Other adaptations, such as Java or Microsoft, use binary programs that are designed to run in platform independent runtime environments. Programs compatible with the run-time environment can be compiled once and run on any platform that has the run-time environment installed. It will be appreciated that the directory service 216 may have to take into account the platform of the requesting device when processing directory requests. Even when the programs are platform independent (e. g. Java) there may be version incompatibilities that require considering the particular runtime environments of the requesting device 208 . Other issues that the directory service 216 may need to take into account when distributing software include the capacity of the requesting terminal 202 . 204 (e. g. memory, processor speed, graphics capability, required user input devices), licensing issues, software categories, content restrictions (e. g. parental controls, corporate IT policies), other software versions (e. g. UPnP version), OS patch level, etc. In response to various combinations of such criteria, the directory service 214 can provide a list of available programs that satisfy the criteria. The list could be flat, or be arranged in a hierarchy, such as seen in query results screen 220 . Once a client 208 has selected a program to obtain (e. g. via selection screen 222 ) the software distribution device 214 will facilitate transferring data to the terminal 202 . such as via a download manager service 218 . thereby enabling the selected program to be installed. The download manager service 218 may be configured to facilitate downloads of configurations andor executable images, either from the terminal 204 itself or from a third party. For example, the download manager 218 may provide authentication that allows the other terminal 202 to access a Web download site and obtain an executable. Such a downloaded executable may be good for limited purposes (e. g. only for playing with terminal 204 ) or for unlimited use by owner of terminal 202 . In more particular examples of downloads, the serving terminal 204 has the needed installation files stored in the file system (e. g. Java, Symbian executable objects). The server 210 provides a link to the installation files (e. g. a Uniform Resource Identifier, or URI) and receiving client 208 can download the files using a UPnP content directory service DCP. In another example, the serving terminal 204 has a lightweight run-time object (Java or web browser scripts) stored in the file system. The server 210 provides an HTTP link to the run-time files, and receiving client 208 can download them using a UPnP content directory service DCP. In another example, server 210 provides an Internet HTTP URI to the installation files to the client 208 . and the device 202 can download them using suitable program. The software distribution server 210 generally at least allows other network entities such as the control point component 208 to view and select programs that are available via the terminal 204 . The control point component 208 may also be able to view, query, and use the services offered by this and other software distribution servers 210 . The control point 208 (or another component of the client device 202 ) may automatically invoke the distribution service 210 in response to an attempt to use a service. For example, the client terminal 202 may be owned by a traveler who is enduring a long wait at an airport. Heshe takes the mobile terminal 202 (or any other suitable device) and starts a game manager function that lists networked games that are locally hosted via devices on an ad hoc, peer-to-peer network. The game manager allows the user of terminal 202 to select one of the games, such as via a user interface component (e. g. gaming control point). As part of this gaming selection function, the game manager may also discover that a particular piece of client software is needed to play the game. The particulars of the client game software may be provided as part of the service discovery protocols of the game manager (e. g. by specifying an executable name). The game manager may be manually or automatically configured to search for instances of the program distribution server 214 using the software distribution client 208 . Upon finding such devices 214 . the client 208 can submit a specific query for the gaming client, and proceed to download and install the necessary software. It will be appreciated that, in the example scenario described above, software can be distributed rather widely and easily. However, software is often governed by copyright and licenses that place legal restrictions on distribution. In other cases, software contains digital rights managements (DRM) feature that prevent software distributions under certain circumstances. Thus the distribution device 214 may be required to process certain software distributions differently, depending on the licensing andor DRM associated with the software. For some software distribution scenarios, such as Open Source software, freely distributing copies of the program is an acceptable use under the Open Source license. However, most proprietary models of software distribution require that at least some of the end users purchase software. As will be discussed below, a distribution device 214 may be able to enforce acceptable limits on the distribution of non-free software. Referring to the gaming example above, the gaming software of the hosting device (e. g. terminal 204 ) may be licensed such that certain, limited versions of the program can be freely distributed. This scenario is not unlike shareware distributions that are commonly used to promote paid software products. Such freely distributed versions of the programs contain limitations that make the free versions less useful than the paid for versions. Nonetheless, these limited versions are useful in that they allow people to try out the software before making a financial commitment to purchase. In relation to network games such as in the present scenario, the use of limited capability client versions may also be useful in order to promote network game play, and can ultimately increase the base of paying users. In such a case, the software vendor may want to allow anybody to freely connect and play with a registered user, yet be unable to otherwise use the software without paying. A limited and freely distributed version of a proprietary program may be distributed by preparing or modifying an executable of the licensed program, such by overwriting a block in a binary file, so that execution of the program is limited. Such a limitation may only allow use for a particular time period or for a predetermined number of plays. Another modification may involve restricting with whom the user of the limited version can play. For example, unique data of the client terminal 202 and hosting terminal 204 could be combined (e. g. forming a hash value) and added to the executable or other files. This value is checked before andor during network play so that network interaction can only occur between these two devices, and the terminal 202 will be unable to connect to other players without paying (unless those other players also have a properly licensed version). Other limitations that may be built into the distributed executables may include disabling single player mode, limiting play to a certain game levels, causing the game to operate in a reduced mode (e. g. reduced network bandwidth, reduced graphical display, etc.), preventing saving of games or other persistent data, use of embedded advertising in the free product, etc. It will be appreciated that the concepts described in relation to the network gaming example are equally applicable to other non-gaming applications. Generally, where versions of software are distributed to a client terminal 202 via the distribution device 214 are limited to a particular use, it may be preferable to allow the user of the client terminal 202 to easily free up memory if the user does not intend to use the program again. For example, if the program is active only for a limited time, it could be automatically deleted (or moved to an overwritable cache) to free up available storage. A software distribution client 208 may be configured to perform these clean up actions. The client 208 may also assist the user to obtain unlimited versions of the software, such as via interaction with a billing entity and a software activation entity. Implementing rights management into a software distribution service may address concerns related to illegal distribution of some types of software. Another concern that may need to be addressed in implementing the distribution service is that of security. For example, certain types of software (often referred to as malware) may become installed unintentionally on a user device. In some cases, malware may consume resources for unwelcome or nefarious purposes, intentionally damage data andor hardware, attempt to access and divulge private data, etc. In order to prevent the spread of malicious or unwanted software, the underlying platform may implement security measures, such as only allowing digitally signed and authenticated software to be installed. Similar measures may also be implemented in the service 210 andor client 208 . For example, any software must be authenticated by a trusted source before the client machine 202 installs it. In other cases, a user interface of the control point 208 may require user confirmation before any software is installed. The device description 212 may include specific services related to both security and rights management. Similarly, the clientcontrol point 208 may include provisions to ensure any distribution server 210 is to be trusted. For example, transactions with the server 210 may involve exchanging authentication keys that can be independently verified. An a priori configuration (e. g. shared encryption key, manual authorization) may also be used, although such a priori configurations are typically less-user friendly than an automated authentication from a trusted verification source. The systems described herein may be implemented using any combination of networking technologies known in the art. In particular, the UPnP framework may be particularly useful in providing gaming activities via network entities. In reference now to FIG. 3. a block diagram 300 illustrates an example implementation of a UPnP software distribution architecture according to an embodiment of the invention. The diagram 300 includes two compatible peer devices 302 . 304 that may interact via a UPnP network 306 . The devices 302 . 304 typically represent separate hardware components however there may be some arrangements where the devices 302 . 304 are virtual devices that share hardware with each other and with other components of the network 306 . As illustrated, the device 302 . 304 may contain compatible functional components 308 . 310 . 312 . 314 . 338 . 340 . 342 . 344 that allow each device 302 . 304 to facilitate software distribution (e. g. acting as a server) and finduse programs (e. g. acting as a client). It will be appreciated that it is not necessary for the devices 302 . 304 to each include all of the listed functionality to form a usable system. For example, some devices may be configured to act only as clients, such as by disabling distribution server functionality or by not having such functionality installed to begin with. Similarly, the functional components may be distributed across multiple physical devices yet operate in an integrated fashion as if on a single device. For example, peer device 302 may be comprised of a handheld game controller acting as the UPnP control point 338 . and this controller communicates via Bluetooth with a cellular phone acting as a UPnP client 340 . Functional components 308 . 310 . 312 . 314 of peer device 304 will be described in greater detail below. It will be appreciated that the same functionality may also be provided by analogous components 338 . 340 . 342 . 344 of device 302 . The illustrated device 304 includes a UPnP software distribution control point 308 . a UPnP software distribution client 310 . and a UPnP software distribution server 312 . Each of the components 308 . 310 . 312 are configured to communicate via UPnP protocols, and as such will implement the UPnP Device Architecture (UDA). Also associated with these components 310 . 312 . 314 is a UPnP software distribution device control protocol (DCP) that defines the actions and state variables of the various interactions between components 310 . 312 . 314 . The UPnP software distribution control point 308 may provide functions similar to other UPnP control points, such as the UPnP audio video (AV) control point. Generally, the control point 308 includes the user interface and application logic that allows a user to discover the services of other software distribution devices on the UPnP network 306 . The UPnP software distribution control point 308 may also provide other control functions for activities associated with finding, selecting, buying, downloading, configuring, and running software. The control point 308 can invoke the UPnP software distribution DCP to perform these actions in order to get a desired response. In some applications, it is desirable to hide the UPnP functionality from the user as much as possible. In such a case, the control point 308 may only provide minimal user interface functions, such as reporting critical errors, or requiring confirmation of software installation as required by security policy settings. The software distribution client device 310 is a UPnP device that provides UPnP interface for connecting to software distribution servers. The client device 310 may operate in response to operations of the control point 308 . other user interface devices, or in response to other, non-user initiated events. Generally, the client device 310 interacts with software distribution servers 312 . 342 to at least initiate downloads of programs, and may also handle the other actions such as configuration and activation needed to enable those programs to run. The UPnP software distribution server 312 acts as a central point for accessing specific programs 314 that are available via the device 304 . More specifically, the server 312 is a UPnP device with the software distribution service exposing the available programs 314 . The server device 312 may also handle the actions and maintain the state variables associated with installing the programs 314 . The server device 312 may use a registry or some other mechanism for tracking and categorizing various programs 314 that are available via the peer device 304 . Generally, those programs may include both UPnP programs 317 and non-UPnP programs 319 . In particular, the distribution of UPnP programs 317 can be integrated with the discovery of UPnP services, including UPnP services hosted by a device 304 that also stores programs that enable other devices to use the service. In one configuration, the software distribution server 312 may be implemented using extensions to the UPnP Content Directory Service (CDS). The CDS is a UPnP Audio Video (AV) service template, identified as urn:schemas-upnp-org:service:ContentDirectory:1, where the numeral 1 signifies the latest version. The CDS is a server-side interface used for accessing media storage devices. The CDS provides lookup functions such as browse and search that allows devices to discover individual data objects stored on the media servers and access that content. The current CDS interface may be extended to include software object repositories. Alternatively, the software distribution server 312 may use a service template that is modeled after the CDS, but includes features unique to software distribution, including features that address rights management and security concerns. Where the software distribution server 312 is configured as a CDS or CDS-like service, a standard AV Control Point component may be used (or adapted) to view and select software made available via the system 300 . One difference between an AV Control point and one adapted for use with the system 300 is that a standard AV Control Point sends data from a media storage device to an AV Media Renderer device where it is perceived by a user. The software distributed by the system 300 is not necessarily rendered to a user, but is generally installed on a computer. However, components such as the clients 310 . 340 may be adapted to resemble a UPnP Media Renderer. In such a case, software installation components could be transferred via the network 306 in a manner similar to the sending of digital media from a media storage device to a rendering device, and therefore can be made compatible with some or all of the existing UPnP AV framework. The components 308 . 310 . 312 . 314 . 338 . 340 . 342 . 344 may interact for such purposes as service discovery 316 . cataloging 318 . querysearch 320 . as well as initiation 322 . download 324 and configuration 326 of programs. In some situations, runtime data 328 of the installed program may be communicated between components 308 . 310 . 312 . 314 . 338 . 340 . 342 . 344 . For example, once a program is installed and successfully running, it may signal 328 a success at runtime so that programs involved in the installation can terminate and log the installation as a success. Such data may also be communicated by out-of-band mechanisms 329 . either via a network or via interprocess communication within the devices 302 . 304 . Such out of band mechanisms may include using dedicated network connections, alternate network access mechanisms and media, streaming data, multicast data, writing to a remote database, etc. It will be appreciated that the downloading function 324 may involve downloads directly between the devices 302 . 304 andor by using the devices 302 . 304 as proxies. However, out-of-band uploaddownload mechanisms 330 . 332 may also be used, such as for accessing programs from a database 334 andor adding programs to the database 334 . Another illustrated out-of-band uploaddownload mechanisms includes distributed uploadsdownloads 356 . 358 which generally allows downloads from multiple peer devices 360 at the same time. Technologies such as BitTorrent allow this type of distributed uploadsdownload 356 . 358 by distributing a file that contains metadata about the files to be shared, and about a server (or tracker) that coordinates the file distribution. The tracker assists the downloading device in discovering the peers 360 that can download a portion of the requested data. It will be appreciated that the peers 360 may include any combination of hosts inside of and outside of the UPnP network 306 . including Internet hosts. In another configuration, the distributed uploadsdownloads 356 . 358 may be enabled using entirely UPnP network protocols. In such an example, the UPnP distribution clients 310 . 340 and servers 312 . 342 may be extended to act as BitTorrent-type peers, without requiring the use of a tracker. Such UPnP distribution would only require the querying of devices on the local UPnP network to discover distributed download devicesservices, although the availability of software in such a case could be extended to entities outside the network by the use of a proxy, such as a UPnP IGD (see FIG. 1 ). In reference now to FIG. 4. a sequence diagram illustrates an example use of software distribution services according to an embodiment of the invention. In the scenario illustrated in FIG. 4. a user has a cellular phone 400 and garage door opener 401 that are capable of communicating via an ad-hoc, peer-to-peer network such as UPnP. The cell phone contains a control point 402 and software distribution client device 404 . The control point 402 in the illustrated scenario assumed to be able to handle communications between any types of UPnP services, although in some configurations the actions shown being performed by the control point 402 might be handled by more than one physical andor logical control point device. The door opener 401 includes a door opener service device 406 that allows control of the door hardware. The opener device 406 may include typical actions associated with a door controller, including opening and closing the door, turning off and on lights, locking and unlocking the door, etc. Other, less typical, actions may also be performed via the device 406 . such as setting safety shutoff sensitivity, calibrating sensors, etc. The opener device 406 may also be able to transmit data associated with the hardware, such as openclosed state, number of cycles, etc. Such data may be useful outside of the usual remote control applications. For example, a person could have a UPnP alarm clock next to their bed that detects the door state and indicates via the clock display that the door is open, thereby alerting the person that the door is open before they go to bed. In some cases, the capabilities of the door opener device 406 may be exploited by commonly available software (e. g. a browser) that can use control commands advertised by the device 406 . However, in order to utilize some functions, the control point 402 may need specialized software. For example, the door 401 may utilize dynamic security codes that prevent somebody from wirelessly intercepting openclose commands and later using those commands to open the door. Therefore, the opener 401 (or some other entity of the network) may include a software distribution server device 408 that distributes a software component to authorized devices. Such a component can be used by the authorized device to generate the correct codes. It will be appreciated distribution server 408 may implement additional security measures to prevent unauthorized access to the control code software, but such security measures are outside the scope of the present discussion. The software distribution client 404 and server 408 may include functionality as described in relation to UPnP components shown in FIG. 3. At any time, the software distribution client 404 may receive a service discovery message 410 from one or more of the software distribution service devices 408 . Similarly, the control point 402 may receive a service discovery message 412 from the door opener service 406 . In response to the service discovery message 412 . the control point 402 may, either automatically or at the prompting of a user, request 414 a service description. In response, the opener server 406 returns a service description 416 that includes a description of a Java midlet that may be used by the device in order to utilize features of the opener server 406 . After the control point 402 has determined the capabilities of the door opener service 406 . it may send a request 418 to the software distribution client 404 asking to install the required component. In response, the software distribution client 404 obtains a service description 420 . 422 from the software distribution server, and determines via a query 424 . 426 that the server 408 has the available component. The software distribution client 404 then downloads 427 . 428 suitable executables, as well as a configuration 430 that may be needed for the particular device 400 in which the midlet 428 is to be installed. The software distribution client 404 parses 432 the configuration 430 (or otherwise utilizes it, e. g. executes it using a scripting language) and installs the midlet 434 . The midlet need not be installed 434 in the control point 402 as shown, but may be installed in other programs, via an OS, etc. Whatever method is used to install the software 434 . the installation success or failure may be communicated in a message 436 to software distribution client 404 . Thereafter, the control point 402 (or other software, including the downloaded component 428 itself) can be used to send a control message 438 . Because of the installed component 434 . the security code is correct, and the opener server device 406 can open 440 the door and signal the state 442 to the control point 402 . The example scenario illustrated in FIG. 4 is only one demonstration of how a peer-to-peer software distribution service might be used. Other messages and sequences may be utilized in place of or in addition to those illustrated. Also, the software distribution need not be limited to control point devices. Any of the components 402 . 404 . 406 . 408 may be able to take advantage of a generic software distribution service. For example, the manufacturer of the door opener 401 may provide updates that include stronger encryption for use by the server 406 . An IGD or other locally connected device may act as a proxy to access the manufacturers server and inform the network when these updates are made available. The updates could be applied to the server device 406 via the IGD, or could be applied to the distribution server device 408 . which then automatically updates the other components 402 . 404 . 406 that may use these updates. Even the software distribution components 404 . 408 may be able to update themselves by accessing another distribution component. Many types of apparatuses may be able to engage in software distribution activities as described herein. Mobile devices are particularly useful in this role because they are portable user interface devices, and therefore may be called upon to control a wide variety of networked components. In reference now to FIG. 5. an example is illustrated of a representative mobile computing arrangement 500 capable of carrying out operations in accordance with embodiments of the invention. Those skilled in the art will appreciate that the exemplary mobile computing arrangement 500 is merely representative of general functions that may be associated with such mobile devices, and also that landline computing systems similarly include computing circuitry to perform such operations. The processing unit 502 controls the basic functions of the arrangement 500 . Those functions associated may be included as instructions stored in a program storagememory 504 . In one embodiment of the invention, the program modules associated with the storagememory 504 are stored in non-volatile electrically-erasable, programmable read-only memory (EEPROM), flash read-only memory (ROM), hard-drive, etc. so that the information is not lost upon power down of the mobile terminal. The relevant software for carrying out conventional mobile terminal operations and operations in accordance with the present invention may also be transmitted to the mobile computing arrangement 500 via data signals, such as being downloaded electronically via one or more networks, such as the Internet and an intermediate wireless network(s). The mobile computing arrangement 500 may include hardware and software components coupled to the processingcontrol unit 502 for performing network data exchanges. The mobile computing arrangement 500 may include multiple network interfaces for maintaining any combination of wired or wireless data connections. In particular, the illustrated mobile computing arrangement 500 includes wireless data transmission circuitry for performing network data exchanges. This wireless circuitry includes a digital signal processor (DSP) 506 employed to perform a variety of functions, including analog-to-digital (AD) conversion, digital-to-analog (DA) conversion, speech codingdecoding, encryptiondecryption, error detection and correction, bit stream translation, filtering, etc. A transceiver 508 . generally coupled to an antenna 510 . transmits the outgoing radio signals 512 and receives the incoming radio signals 514 associated with the wireless device. These components may enable the arrangement 500 to join in one or more networks 515 . including mobile service provider networks, local networks, and public networks such as the Internet. The mobile computing arrangement 500 may also include an alternate networkdata interface 516 coupled to the processingcontrol unit 502 . The alternate networkdata interface 516 may include the ability to communicate on secondary networks using any manner of data transmission medium, including wired and wireless mediums. Examples of alternate networkdata interfaces 516 include USB, Bluetooth, Ethernet, 802.11 Wi-Fi, IRDA, etc. In the illustrated example, the alternate network interface is coupled to a local, ad hoc, peer-to-peer network 517 . These alternate interfaces 516 may also be capable of communicating via the networks 515 . The processor 502 is also coupled to user-interface elements 518 associated with the mobile terminal. The user-interface 518 of the mobile terminal may include, for example, a display 520 such as a liquid crystal display and a camera 522 . Other user-interface mechanisms may be included in the interface 518 . such as keypads, speakers, microphones, voice commands, switches, touch padscreen, graphical user interface using a pointing device, trackball, joystick, vibration generators, etc. These and other user-interface components are coupled to the processor 502 as is known in the art. The program storagememory 504 typically includes operating systems for carrying out functions and applications associated with functions on the mobile computing arrangement 500 . The program storage 504 may include one or more of read-only memory (ROM), flash ROM, programmable andor erasable ROM, random access memory (RAM), subscriber interface module (SIM), wireless interface module (WIM), smart card, hard drive, or other removable memory device. The storagememory 504 of the mobile computing arrangement 500 may also include software modules for performing functions according to embodiments of the present invention. In particular, the program storagememory 504 includes a UPnP stack 530 that provides baseline UDA functionality for communicating with devices of the peer-to-peer network 517 . This stack 530 may be implemented as common libraries andor as a standalone process. Alternatively, some or all UPnP applications on the system 500 may implement their own UPnP stacks. These UPnP applications may include a software distribution server device 532 . a software distribution client device 534 . a software distribution control point 536 . and UPnP-aware programs 538 . Other programs 540 that are not natively UPnP-aware may also be capable of utilizing UPnP functions by way of a plug-in API 542 . Generally, developers often include a plug-in API 542 as a way for third parties to extend the functionality of the base program 540 . A plug-in can utilize this API 542 to include UPnP functions that allow the programs 540 to be integrated with the functionality of the other UPnP software distribution modules 532 . 534 . 536 . 538 for purposes such as software updates and for adding new software. The gaming server and client 532 . 534 may need to access persistent or non-persistent data storage for caching and or storing programs, configuration, and state data. An example of this storage requirement is shown as the subscriptions database 546 and the software database 548 . The subscriptions database 546 may include persistent data related to recurring updates requested by peer devices. These subscriptions may be added to the database 546 automatically in response to previous installations serviced by the server device 532 . or based on requests for software update services from devices that discover this subscription capability via descriptions of the server device 532 . Generally, the server device 532 (or some other component) may regularly query known sources of updates, and push out the updates to any subscribing peer devices. The program database 548 may contain the files needed to distribute software, including executable images, configurations filesscripts, and other metadata distributed with the programs. In some instances the program database 548 may contain a reference to such data, so that the data need not be stored locally. The program database 548 may utilize a subscription service (e. g. via the subscription database 546 and server device 532 ) to ensure that data andor references to data are kept up to date. In many cases, the software of the device 500 that distributed by the UPnP distribution functionality may include a native UPnP interface, such as represented by the stack 530 . However, legacy programs (shown here as other applications 550 ) that provide or use functions of the peer-to-peer network 517 may still be useful, but certain restrictions (e. g. copyright concerns, no access to source code) may prevent adapting those programs to utilize UPnP, and in particular to use UPnP software update functionality provided locally (e. g. via server component 532 ) or via other devices of the network 517 . It may still be possible to adapt such programs 550 to use UPnP through a helper program or some other means. For example, some applications 550 may be able to receive commands and configurations via an interprocess communications (IPC) facility 552 of the operating system. These IPC mechanisms may include system messaging, sockets, pipes, middleware (e. g. CORBA, Java RMI), shared files, command line arguments, etc. Alternatively, a virtual environment, here represented by wrapper component 554 . may set up a simulated environment in which to run the application 550 . In this way, system or kernel calls can be intercepted, and events directed to hardware (e. g. network interfaces 516 . 508 ) andor operating system APIs can be intercepted and translated to conform to UPnP protocols. The mobile computing arrangement 500 of FIG. 5 is provided as a representative example of a computing environment in which the principles of the present invention may be applied. From the description provided herein, those skilled in the art will appreciate that the present invention is equally applicable in a variety of other currently known and future mobile and landline computing environments. For example, desktop computing devices similarly include a processor, memory, a user interface, and data communication circuitry. Thus, the present invention is applicable in any known computing structure where data may be communicated via a network. In reference now to FIG. 6. a flowchart illustrates a procedure 600 for providing a software distribution service via ad hoc peer-to-peer networks. A first device is configured 602 to offer a peer-to-peer software distribution service that facilitates access to a plurality of programs. The first device advertises 604 the peer-to-peer software distribution service using a service discovery protocol of the ad hoc peer-to-peer network. The target device selects 606 a program of the plurality of programs that is capable of operating on a processor of the target device. Downloading of a program to a target device is facilitated 608 via the peer-to-peer software distribution service. Optionally, configuration of the software on the target device is facilitated 610 via the peer-to-peer software distribution service, and activation of the software on the target device is optionally facilitated 612 via the peer-to-peer software distribution service. In reference now to FIG. 7. a flowchart illustrates a procedure 700 for accessing a software distribution service via ad hoc peer-to-peer networks. A first device is coupled 702 to an ad hoc peer-to-peer network. The device discovers 704 a generic peer-to-peer software distribution service using a service discovery protocol of the ad hoc peer-to-peer network. The peer-to-peer software distribution service is offered by a peer device and facilitates access to a plurality of programs. The first device selects 706 a program from the plurality of specific programs of the peer device. The program is downloaded 708 to the first device. The downloading 708 is facilitated by the software distribution service of the peer device. The program may be downloaded 708 directly from the peer device to the first device, or the peer device may act as a download proxy for an external network (e. g. the Internet). In other situations, the download 708 may originate from another entity of the peer-to-peer network using in-band or out-of-band connections. In such a case, the peer device may facilitate the download 708 by, for example, providing a URI that allows the first device to independently access and download 708 the program. Configuration of the software on the first device is optionally facilitated 710 via the peer-to-peer software distribution service, and activation of the software on the first device is optionally facilitated 712 via the peer-to-peer software distribution service. In situations where the first device has no access to external networks, the peer device may also provide access to other external network services besides download on behalf of the first device. Such services may include registration, configuration 710 . authentication, purchase, and activation via the external networks. Even where the download 708 is between devices of the local network, the peer device may still be called upon to provide external network proxy services (e. g. registering, configuring authenticating, activating) on behalf of the first device. It will be appreciated that various alternates to the illustrated ad hoc, peer-to-peer software distribution services may be implemented. For example, when a UPnP software provisioningdistribution service is registered, the service may notify other UPnP services that can utilize application distribution service. For example, when a new game (or other program) is registered with the software distribution service, the gaming deviceservice is notified so that the gaming device may include the installation URI of the game to the list of games. This installation URI may be used in subsequent service discovery messages sent via the gaming service andor a software distribution service that works in conjunction with the gaming service. The foregoing description of the exemplary embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not with this detailed description, but rather determined by the claims appended hereto. Free format text: ASSIGNMENT OF ASSIGNORS INTERESTASSIGNORS:SAARIMAKI, ANSSIKOISTINEN, KIRMOHELANDER, MIKAAND OTHERSREELFRAME:0187210323 Effective date: 20061214 Owner name: NOKIA CORPORATION, FINLAND Free format text: ASSIGNMENT OF ASSIGNORS INTERESTASSIGNORS:SAARIMAKI, ANSSIKOISTINEN, KIRMOHELANDER, MIKAAND OTHERSREELFRAME:0187210323 Effective date: 20061214 Maintenance fee reminder mailed Lapse for failure to pay maintenance fees Expired due to failure to pay maintenance fee Effective date: 20140608 IFI CLAIMS Patent ServicesBe known for what you love. Klout helps people who want to be great at social media. Sahana Ullagaddi Social Media Lover You understand that your online presence can really help your offline career. Whether youre a marketer analyzing Super Bowl ads, an investor posting about Bitcoin, or a software engineer explaining the newest technologies, you grasp the power of thought leadership to improve your career. Michelle Riles Candy Blogger You care passionately about something outside your job, and use social media to connect with others who feel the same. Whether youre a parent reviewing video games, a Crossfit lover debating deadlift positions, or a baker pinning cookie recipes, you love sharing knowledge with your community. Binh Tran Co-Founder of Klout You are the voice of your business, and your livelihood depends on people listening to your story. Whether you sell letterpress cards on Etsy, run a tech startup seeking loyal customers, or manage a fashion blog that pays the bills, your success requires an engaged audience. Great content awaits. Get started.

No comments:

Post a Comment