Mikko Kolehmainen Go Forex Comcast
Distribuzione del software attraverso le reti peer-to-peer US 7734717 B2 Fornire un servizio di distribuzione del software attraverso reti ad hoc peer-to-peer comporta la configurazione di un primo dispositivo ad offrire un servizio di distribuzione peer-to-peer software che facilita l'accesso ad una pluralità di programmi . Il servizio di distribuzione del software peer-to-peer è pubblicizzato tramite il primo dispositivo utilizzando un protocollo di rilevazione servizio di una rete ad hoc peer-to-peer. Almeno una query per una descrizione del servizio di distribuzione software peer-to-peer da un dispositivo di destinazione della rete ad hoc peer-to-peer viene ricevuto il primo dispositivo in risposta alla pubblicità del servizio di distribuzione software peer-to-peer . Il download di un programma per il dispositivo di destinazione è facilitato tramite il servizio di distribuzione del software peer-to-peer. Il programma viene selezionato dalla pluralità di programmi e capace di operare su un processore del dispositivo di destinazione. (30) 1. Metodo, comprendente: la configurazione di un primo dispositivo per offrire un servizio di distribuzione peer-to-peer software che facilita l'accesso ad una pluralità di programmi di pubblicità, tramite il primo dispositivo, il servizio di distribuzione software peer-to-peer usando un protocollo di rilevazione servizio di una rete ad hoc peer-to-peer e ricevere, al primo dispositivo, almeno una query per una descrizione del servizio di distribuzione software peer-to-peer da un dispositivo di destinazione del ad hoc peer-to rete - peer in risposta alla pubblicità del servizio di distribuzione software peer-to-peer, in cui l'almeno una query include una descrizione di una piattaforma di computer del dispositivo di destinazione filtraggio risultato restituito in risposta alla query basata sulla descrizione del computer piattaforma, in cui il risultato include un elenco dei programmi selezionati dalla pluralità di programmi che sono in grado di operare su un processore del facilitante dispositivo di destinazione, in risposta alla query almeno una, download di un programma di dispositivo di destinazione tramite il peer - per-peer servizio di distribuzione di software, in cui il programma viene selezionato dall'elenco dei programmi e in grado di operare sul processore del dispositivo di destinazione. 2. Procedimento secondo la rivendicazione 1., in cui il programma è configurato per funzionare con il hoc, peer-to-peer network. 3. Metodo secondo la rivendicazione 2, in cui l'interrogazione almeno una ricevuto in risposta a un tentativo del dispositivo di destinazione per accedere a un servizio pubblicizzato della hoc, peer-to-peer network, in cui la query almeno una comprende un descrizione del servizio pubblicizzato, ed in cui il programma consente al dispositivo di destinazione per utilizzare il servizio pubblicizzato. 4. Il metodo della rivendicazione 1. in cui facilitare download del programma al dispositivo di destinazione comprende scaricare il programma dal primo dispositivo a un dispositivo peer. 5. Il metodo di rivendicazione 1. in cui facilitare download del programma al dispositivo di destinazione comprende facilitare il download del programma da un secondo dispositivo al dispositivo di destinazione. 6. Il metodo di rivendicazione 1. in cui scaricare il programma al dispositivo di destinazione comprende il download del programma utilizzando uno o più protocolli che sono diversi dai protocolli della rete ad hoc peer-to-peer. 7. Procedimento secondo la rivendicazione 1. comprendente inoltre facilitare l'attivazione del programma sul dispositivo di destinazione tramite la, peer-to-peer rete ad hoc. 8. Procedimento secondo la rivendicazione 7. in cui l'attivazione del programma comprende la verifica dei diritti di accesso proprietario per almeno uno del primo dispositivo e il dispositivo di destinazione. 9. Il metodo di rivendicazione 1. in cui la rete ad-hoc, peer-to-peer comprende un Universal Plug and Play di rete. 10. Procedimento secondo la rivendicazione 1. in cui la query almeno una include una categoria software utilizzato per filtrare il risultato restituito in risposta alla query. 11. Procedimento, che comprende: l'accoppiamento di un primo dispositivo a un peer-to-peer scoperta ad hoc, tramite il primo dispositivo, un servizio di distribuzione di software peer-to-peer utilizzando un protocollo di rilevazione servizio del peer-to-ad hoc peer, in cui il servizio di distribuzione software peer-to-peer è offerto da un dispositivo peer ed in cui il servizio di distribuzione software peer-to-peer facilita l'accesso ad una pluralità di programmi di invio, dal primo dispositivo al dispositivo peer, almeno una query per una descrizione del servizio di distribuzione software peer-to-peer in risposta alla scoperta del servizio di distribuzione software peer-to-peer, in cui l'almeno una query include una descrizione di una piattaforma di computer del primo dispositivo di filtraggio un risultato restituito in risposta alla query basata sulla descrizione della piattaforma di computer, in cui il risultato include un elenco dei programmi selezionati dalla pluralità di programmi che sono in grado di operare su un processore della prima selezione dispositivo, tramite il primo dispositivo in risposta alla descrizione del servizio di distribuzione software peer-to-peer ricevuto dal dispositivo peer, un programma dall'elenco dei programmi e caricamento del programma al primo dispositivo, in cui lo scarico è facilitato dal servizio di distribuzione del software del dispositivo peer. 12. Procedimento secondo la rivendicazione 11. in cui il programma è configurato per funzionare con il peer-to-peer rete ad hoc. 13. Procedimento secondo la rivendicazione 12. comprendente inoltre tentare di accedere ad un servizio pubblicizzato della rete ad hoc, peer-to-peer dal primo dispositivo, ed in cui lo scaricamento del programma per il primo dispositivo si verifica in risposta al tentativo di accedere al servizio pubblicizzato, ed in cui il programma scaricato consente il primo dispositivo ad utilizzare il servizio pubblicizzato. 14. Procedimento secondo la rivendicazione 13. in cui la query almeno una include una descrizione del servizio pubblicizzato. 15. Procedimento secondo la rivendicazione 13. comprendente inoltre richiamando il programma al primo dispositivo di accesso al servizio pubblicizzato. 16. Procedimento secondo la rivendicazione 11. in cui scaricare il programma per il primo dispositivo comprende scaricato il programma dal dispositivo peer. 17. Il metodo di rivendicazione 11. in cui scaricare il programma al primo dispositivo comprende scaricando il programma da una disposizione di calcolo di terze parti. 18. Il metodo di rivendicazione 11. in cui scaricare il programma al primo dispositivo comprende il download del programma utilizzando uno o più protocolli che sono diversi dai protocolli della rete ad hoc peer-to-peer. 19. Procedimento secondo la rivendicazione 11. comprendente inoltre attivare il programma sul primo dispositivo tramite la rete ad hoc, peer-to-peer. 20. Il metodo di rivendicazione 19. in cui l'attivazione del programma comprende l'accesso a un servizio di attivazione della rete ad hoc peer-to-peer. 21. Il metodo di rivendicazione 19. in cui l'attivazione del programma comprende l'accesso al servizio di distribuzione del software della rete ad hoc peer-to-peer. 22. Procedimento secondo la rivendicazione 19. in cui l'attivazione del programma comprende la verifica dei diritti di accesso proprietario per almeno uno del primo dispositivo e il dispositivo peer. 23. Il metodo di rivendicazione 11. in cui la rete ad-hoc, peer-to-peer comprende un Universal Plug and Play di rete. 24. Procedimento secondo la rivendicazione 11. in cui la query almeno una include una categoria software utilizzato per filtrare il risultato restituito in risposta alla query. 25. Apparato, comprendente: una interfaccia di rete in grado di comunicare tramite una rete ad hoc peer-to-peer un processore accoppiato all'interfaccia di rete e un dispositivo di memorizzazione di memoria accoppiato al processore, il dispositivo di memorizzazione con istruzioni azionabili dal processore a causare l'apparato di, scoprire un servizio di distribuzione di software peer-to-peer utilizzando un protocollo di scoperta di servizio della rete ad hoc peer-to-peer, in cui il servizio di distribuzione del software peer-to-peer è offerto da un dispositivo di pari e in cui il servizio di distribuzione software peer-to-peer facilita l'accesso ad una pluralità di programmi di inviare al dispositivo peer, almeno una query per una descrizione del servizio di distribuzione software peer-to-peer in risposta alla scoperta del peer-to - servizio di distribuzione di software, in cui l'almeno una query include una descrizione di una piattaforma informatica dell'apparecchiatura filtraggio di un risultato restituito in risposta alla query basato sulla descrizione di piattaforma di computer, in cui il risultato include un elenco di programmi selezionato dalla pluralità di programmi che sono in grado di operare sul processore dell'apparato selezionare un programma dall'elenco dei programmi in risposta alla descrizione del servizio di distribuzione software peer-to-peer ricevuto dal dispositivo peer e scarica il programma all'apparecchio, in cui la scaricamento è facilitato dal servizio di distribuzione del software del dispositivo peer. 26. L'apparato di rivendicazione 25. in cui il servizio di distribuzione del software peer-to-peer è pubblicizzato come un dispositivo Universal Plug and Play. 27. Apparecchiatura secondo la rivendicazione 25, in cui le istruzioni sono ulteriormente azionabili dal processore per causare l'apparecchio per: offrire un servizio di distribuzione fornito localmente peer-to-peer software che facilita l'accesso ad una seconda pluralità di programmi pubblicizzare, tramite la scoperta di servizio protocollo, la condizione localmente servizio di distribuzione software peer-to-peer e facilitare il trasferimento di un secondo programma per un dispositivo di destinazione tramite il servizio di distribuzione software peer-to-peer disponibile localmente, in cui il secondo programma viene selezionato dalla seconda pluralità di programmi e in grado di operare su un processore del dispositivo di destinazione. 28. L'apparato di rivendicazione 27. in cui il servizio di distribuzione del software peer-to-peer fornito localmente è pubblicizzato come un dispositivo Universal Plug and Play. 29. istruzioni un supporto di memorizzazione supporto informatico avere memorizzati su di esso che sono eseguibili da un apparato in grado di essere accoppiato ad una rete ad hoc peer-to-peer per l'esecuzione: la scoperta di un servizio di distribuzione di software peer-to-peer utilizzando un protocollo di rilevamento dei servizi del peer-to-peer rete ad hoc, in cui il servizio di distribuzione software peer-to-peer è offerto da un dispositivo peer ed in cui il servizio di distribuzione software peer-to-peer facilita l'accesso ad una pluralità di programmi di invio, al peer dispositivo, almeno una query per una descrizione del servizio di distribuzione software peer-to-peer in risposta alla scoperta del servizio di distribuzione software peer-to-peer, in cui l'almeno una query include una descrizione di una piattaforma di computer del filtro dell'apparato risultato restituito in risposta alla query basata sulla descrizione della piattaforma di computer, in cui il risultato include un elenco dei programmi selezionati dalla pluralità di programmi che sono in grado di operare su un processore del dispositivo selezionare un programma dall'elenco dei programmi in risposta alla descrizione del servizio peer-to-peer distribuzione del software ricevuto dal dispositivo peer e caricamento del programma all'apparecchio, in cui lo scarico è facilitato dal servizio di distribuzione del software del dispositivo peer. 30. Il mezzo leggibile secondo la rivendicazione 29. in cui le istruzioni sono ulteriormente eseguibile dalla apparecchiatura per l'esecuzione: offrire un servizio di distribuzione fornito localmente peer-to-peer software che facilita l'accesso ad una seconda pluralità di programmi di pubblicità, tramite il protocollo di rilevazione servizio , il servizio fornito localmente peer-to-peer distribuzione del software e facilitare il trasferimento di un secondo programma per un dispositivo di destinazione tramite il servizio di distribuzione software peer-to-peer disponibile localmente, in cui il secondo programma viene selezionato dalla seconda pluralità di programmi e capace di operare su un processore del dispositivo di destinazione. CAMPO DI presente invenzione si riferisce in generale ai dispositivi di elaborazione, e più in particolare alla fornitura di servizi di distribuzione del software via ad hoc, reti peer-to-peer. STATO DELLA TECNICA Universal Plug and Play (UPnP) definisce un'architettura per pervasiva, peer-to-peer tra tutti i tipi di elettronica di consumo, tra cui gli elettrodomestici intelligenti, dispositivi wireless e PC di tutti i fattori di forma. tecnologie UPnP forniscono un modo per i dispositivi di elaborazione diversi per lo scambio di dati tramite prossimità o reti ad hoc. Il framework UPnP è progettato per portare flessibile, basata su standard di connettività facile da usare, per ad hoc o reti non gestite siano essi in casa, in una piccola impresa, spazi pubblici, o collegato a Internet. tecnologie UPnP forniscono un'architettura di rete distribuita, aperta, che sfrutta TCPIP e il Web tecnologie per consentire senza soluzione di continuità vicinanza di rete, oltre a controllare e il trasferimento di dati tra i dispositivi collegati in rete. Il Device Architecture UPnP (UDA) è progettato per supportare la configurazione zero, invisibile rete e il rilevamento automatico per una larghezza di categorie di dispositivi da una vasta gamma di fornitori. Ciò significa che un dispositivo può unirsi dinamicamente a una rete, ottenere un indirizzo IP, trasmettere le sue capacità, e conoscere la presenza e le funzionalità di altri dispositivi. La specifica UPnP include gli standard per la scoperta di servizio, e una serie di particolari protocolli di controllo dispositivo (DCP) sono pubblicate dal Forum UPnP. Questi DCP pubblicati standardizzare particolari tipi di funzioni di rete UPnP. Ad esempio, alcuni DCP definire le funzioni utilizzate per il rendering audio e video attraverso una rete UPnP. Vari collaboratori possono implementare queste e altre descrizioni dei dispositivi UPnP e servizi, creando così un modo per collegare facilmente i dispositivi in una rete funzionante. E 'l'obiettivo di UPnP per consentire casa elettronica di interagire senza soluzione di continuità, favorendo in tal modo l'utilità di tali dispositivi. Lo standard UPnP include gli standard per la scoperta di servizio, e si rivolge principalmente per prossimità o reti ad hoc. Vari collaboratori pubblicano dispositivo UPnP e descrizioni dei servizi, creando così un modo per collegare facilmente dispositivi e semplificare l'implementazione delle reti. UPnP è progettato per funzionare in molti ambienti, tra cui la casa, le imprese, gli spazi pubblici, e su dispositivi collegati a Internet. Lo standard UPnP è un'architettura aperta che sfrutta le tecnologie Web ed è stato progettato per fornire in rete ad-hoc e calcolo distribuito. UPnP e relativi protocolli sono stati sviluppati principalmente per consentire ai consumatori di assemblare facilmente una rete domestica, e di accedere e dispositivi di controllo non normalmente associati con l'informatica in rete. Tuttavia, la natura flessibile della UPnP significa che può essere implementato ovunque, e può essere adattato per usi non previsti dai cedenti del quadro rete. Ad esempio, UPnP può essere utilizzato su dispositivi mobili che normalmente si collegano a reti di provider wireless. Tali dispositivi possono contenere interfacce cablate o wireless secondarie che permettono ai dispositivi di comunicare con altre entità di reti domestiche o aziendali. Per loro natura, i dispositivi mobili possono essere facilmente trasportati, in tal modo gli utenti tendono ad avere un maggiore accesso a questi dispositivi rispetto ad altri tipi di apparecchiature informatiche. Mentre le capacità di elaborazione dati e le caratteristiche multimediali di tale aumento dispositivi, i dispositivi mobili possono essere utilizzati anche per il tempo libero più avanzate, come ad esempio ascoltare musica, guardare film, giocare, e simili. Tali funzionalità e le attività sono spesso arricchiti da comunicazioni di rete, che permettono alle persone di interagire con gli altri in attività condivise. Tuttavia, l'installazione e l'utilizzo di funzionalità di rete può essere scoraggiante per alcuni utenti. Questa difficoltà percepita nell'utilizzo funzioni di rete possono impedire alcuni di utilizzare le funzioni di intrattenimento in rete, perché non può sentire lo sforzo di imparare a usare le funzioni di rete è utile per migliorare le attività discrezionali. Pertanto, fornendo una semplice configurazione e l'utilizzo di tecnologie di rete a sostegno delle attività di intrattenimento è auspicabile. SOMMARIO DELL'INVENZIONE Per superare le limitazioni della tecnica nota sopra descritta, e per superare altre limitazioni che risulteranno evidenti dalla lettura e comprensione della presente descrizione, la presente specifica descrive un sistema, apparecchiatura e metodo per la distribuzione di software tramite un apparato di elaborazione di dati di un hoc, peer-to-peer rete pubblicitaria. In una forma di realizzazione, un metodo comporta la configurazione di un primo dispositivo per offrire un servizio di distribuzione peer-to-peer-software che facilita l'accesso ad una pluralità di programmi. Il servizio di distribuzione del software peer-to-peer è pubblicizzato, tramite il primo dispositivo, utilizzando un protocollo di rilevazione servizio di una rete ad hoc peer-to-peer. Almeno una query per una descrizione del servizio di distribuzione software peer-to-peer è ricevuto al primo dispositivo da un dispositivo di destinazione della rete ad hoc peer-to-peer in risposta alla pubblicità del servizio di distribuzione software peer-to-peer . Il download di un programma per il dispositivo di destinazione è facilitato tramite il servizio di distribuzione del software peer-to-peer. Il programma viene selezionato dalla pluralità di programmi ed è in grado di operare su un processore del dispositivo di destinazione. Più in particolari realizzazioni, il programma è configurato per operare attraverso la rete ad hoc, peer-to-peer, e l'almeno una query può essere ricevuto in risposta a un tentativo del dispositivo di destinazione per accedere a un servizio pubblicizzato del ad hoc , peer-to-peer. In tal caso, la query almeno una include una descrizione del servizio pubblicizzato, e il programma consente al dispositivo di destinazione per utilizzare il servizio pubblicizzato. In altre disposizioni, facilitando download del programma al dispositivo di destinazione comporta scaricare il programma dal primo dispositivo per il dispositivo peer e o da una terza parte disposizione computing per il dispositivo di destinazione. Scaricare il programma per il dispositivo di destinazione può anche comportare il download del programma utilizzando uno o più protocolli che sono diversi dai protocolli della rete ad hoc peer-to-peer. In altri, più particolari realizzazioni, il metodo seguito consiste nel facilitare l'attivazione del programma sul dispositivo di destinazione tramite la rete ad hoc, peer-to-peer. Attivazione del programma può comportare la verifica dei diritti di accesso proprietario per almeno uno del primo dispositivo e il dispositivo di destinazione. In alcune configurazioni, la rete ad-hoc, peer-to-peer comprende un Universal Plug and Play di rete. In un'altra disposizione, la query almeno una include una descrizione di una piattaforma di computer del dispositivo di destinazione eo una categoria software utilizzato per filtrare un risultato restituito in risposta alla query. In un'altra forma di realizzazione dell'invenzione, un metodo comporta accoppiamento di un primo dispositivo a una rete ad hoc peer-to-peer e scoprire, tramite il primo dispositivo, un servizio di distribuzione software peer-to-peer usando un protocollo di rilevazione servizio ad hoc peer-to-peer. Il servizio di distribuzione software peer-to-peer è offerto da un dispositivo peer e facilita l'accesso ad una pluralità di programmi. Almeno una query per una descrizione del servizio di distribuzione del software peer-to-peer viene inviato dal primo dispositivo per il dispositivo peer in risposta alla scoperta del servizio di distribuzione del software peer-to-peer. Un programma viene selezionato dalla pluralità di programmi tramite il primo dispositivo, e il programma viene scaricato al primo dispositivo. Il download è facilitato dal servizio di distribuzione del software del dispositivo peer. Nelle realizzazioni più particolari, il programma è configurato per operare attraverso la rete ad hoc, peer-to-peer. In tal caso, il metodo può comportare tenta di accedere ad un servizio pubblicizzato della rete ad hoc, peer-to-peer dal primo dispositivo, e scaricamento del programma al primo dispositivo avviene in risposta al tentativo di accesso al pubblicizzato servizio. Il programma consente il primo dispositivo ad utilizzare il servizio pubblicizzato. In un tale accordo, la query può includere una descrizione del servizio pubblicizzato, e il metodo può comportare invocando il programma al primo dispositivo per accedere al servizio pubblicizzato. In altri, più particolari realizzazioni, scaricare il programma al primo dispositivo comporta scaricare il programma dal dispositivo peer Andor una disposizione di calcolo di terze parti. Inoltre, scaricando il programma per il primo dispositivo può comportare il download del programma utilizzando uno o più protocolli che sono diversi dai protocolli della rete ad hoc peer-to-peer. In una configurazione, il metodo prevede inoltre l'attivazione del programma sul primo dispositivo tramite la rete ad hoc, peer-to-peer, e attivando il programma può comportare l'accesso a un servizio di attivazione della rete ad hoc peer-to-peer Andor il software servizio di distribuzione della rete ad hoc peer-to-peer. Attivazione del programma può comportare la verifica dei diritti di accesso proprietario per almeno uno del primo dispositivo e il dispositivo peer. In un'altra forma di realizzazione dell'invenzione, una apparecchiatura include un'interfaccia di rete in grado di comunicare attraverso una rete peer-to-peer rete ad hoc e un processore accoppiato all'interfaccia di rete. Un dispositivo di memoria è accoppiata al processore e include istruzioni che causano il processore di scoprire un servizio di distribuzione software peer-to-peer usando un protocollo di rilevazione servizio della rete ad hoc peer-to-peer. Il servizio di distribuzione software peer-to-peer è offerto da un dispositivo peer e facilita l'accesso ad una pluralità di programma. Le istruzioni provocano un'ulteriore processore per selezionare un programma dalla pluralità dei programmi e scaricare il programma all'apparato. Il download è facilitato dal servizio di distribuzione del software del dispositivo peer. In un altro particolare forma di realizzazione, le istruzioni provocano ulteriormente il processore per offrire un servizio di distribuzione fornito localmente peer-to-peer software che facilita l'accesso ad una seconda pluralità di programmi pubblicizzare, tramite il protocollo di rilevazione servizio, localmente disponibile peer-to-peer servizio di distribuzione di software e facilitare il trasferimento di un secondo programma per un dispositivo di destinazione tramite il servizio di distribuzione software peer-to-peer disponibile localmente. Il secondo programma è scelto dal seconda pluralità di programmi e capace di operare su un processore del dispositivo di destinazione. In alcuni accordi, il servizio di distribuzione del software peer-to-peer Andor il servizio di distribuzione del software peer-to-peer fornito a livello locale sono pubblicizzati come dispositivi Universal Plug and Play. In un'altra forma di realizzazione dell'invenzione, un supporto di memorizzazione leggibile dal computer ha istruzioni eseguibili da un apparato in grado di essere accoppiata ad una rete ad hoc peer-to-peer. Le istruzioni sono eseguibili mediante l'apparecchio per l'esecuzione di operazioni che includono scoprendo un servizio di distribuzione di software peer-to-peer utilizzando un protocollo di rilevamento dei servizi della rete ad hoc peer-to-peer. Il servizio di distribuzione software peer-to-peer è offerto da un dispositivo peer e facilita l'accesso ad una pluralità di programmi. I passaggi includono inoltre selezionare un programma dalla pluralità di programmi e caricamento del programma all'apparato. Il download è facilitato dal servizio di distribuzione del software del dispositivo peer. In un altro particolare realizzazione, i passi più coinvolgere offrendo un servizio di distribuzione fornito localmente peer-to-peer software che facilita l'accesso ad una seconda pluralità di programmi di pubblicità, attraverso il protocollo di scoperta di servizio, il servizio di distribuzione del software peer-to-peer fornito a livello locale e facilitare il trasferimento di un secondo programma per un dispositivo di destinazione tramite il servizio di distribuzione software peer-to-peer disponibile localmente. Il secondo programma è scelto dal seconda pluralità di programmi e capace di operare su un processore del dispositivo di destinazione. In un'altra forma di realizzazione dell'invenzione, un sistema comprende mezzi per offrire, attraverso un primo dispositivo peer, un servizio di distribuzione software peer-to-peer tramite un protocollo di rilevazione servizio di una rete ad hoc peer-to-peer. Il servizio di distribuzione software peer-to-peer generico facilita l'accesso ad una pluralità di programmi. Il sistema comprende anche mezzi per scoprire, attraverso un secondo dispositivo peer della rete, il servizio di distribuzione software peer-to-peer e mezzi per facilitare il trasferimento di un programma per il secondo dispositivo peer tramite il servizio di distribuzione software peer-to-peer. In un altro particolare forma di realizzazione, il sistema comprende inoltre mezzi per attivare il programma tramite il servizio di distribuzione ad hoc, peer-to-peer. Questi e vari altri vantaggi e caratteristiche di novità che caratterizzano l'invenzione sono evidenziate con particolarità nelle rivendicazioni in allegato e formano parte del presente documento. Tuttavia, per una migliore comprensione dell'invenzione, i suoi vantaggi e gli oggetti ottenuti con il suo uso, si rimanda ai disegni che costituiscono una ulteriore parte del presente documento, e ad accompagnare materiale descrittivo, in cui sono illustrati e descritti esempi rappresentativi di sistemi, apparati e metodi in accordo con l'invenzione. BREVE DESCRIZIONE DEI DISEGNI L'invenzione è descritta in connessione con le forme di realizzazione illustrate negli schemi seguenti. FIGURA. 1 è uno schema a blocchi che illustra un sistema secondo forme di realizzazione dell'invenzione FIG. 2 è uno schema a blocchi che illustra una realizzazione di un servizio di distribuzione software secondo forme di realizzazione dell'invenzione FIG. 3 è uno schema a blocchi illustrante una architettura di distribuzione del software UPnP secondo forme di realizzazione dell'invenzione FIG. 4 è un diagramma di sequenza di esempio software interazioni servizio distribuzione secondo forme di realizzazione dell'invenzione FIG. 5 è uno schema a blocchi di un dispositivo mobile secondo forme di realizzazione dell'invenzione FIG. 6 è un diagramma di flusso che illustra un metodo per fornire un servizio di distribuzione software tramite reti ad hoc, peer-to-peer secondo forme di realizzazione dell'invenzione e FIG. 7 è un diagramma di flusso che illustra un metodo per usare un servizio di distribuzione software tramite hoc, reti ad peer-to-peer secondo forme di realizzazione dell'invenzione. DESCRIZIONE DETTAGLIATA DELLE FORME DI REALIZZAZIONE DELL'INVENZIONE Nella seguente descrizione di varie forme di realizzazione esemplificative, si fa riferimento ai disegni allegati che formano una parte del presente documento, in cui è rappresentata a titolo di illustrazione varie forme di realizzazione in cui l'invenzione può essere attuata. Si deve comprendere che altre forme di realizzazione possono essere utilizzati, come variazioni strutturali e funzionali possono essere apportate senza uscire dall'ambito della presente invenzione. Generalmente, la presente invenzione si riferisce a metodi, sistemi ed apparecchi che permettono software da distribuire via ad hoc, reti peer-to-peer. La distribuzione del software può coinvolgere qualsiasi combinazione di scoperta, la trasmissione, la verifica, l'installazione, l'acquisto, l'attivazione e la manutenzione delle istruzioni eseguibili del processore tra due o più modalità di calcolo. Il software può includere qualsiasi tipo di sistema o software utente che può essere eseguito su un dispositivo di elaborazione dati. Un esempio di tale software è un gioco che viene reso disponibile per il download tramite un servizio di distribuzione della rete peer-to-peer. Tale gioco può anche utilizzare la rete peer-to-peer per pubblicizzare l'uso della eo gioco per utilizzare la rete per scambiare dati gioco. Sebbene varie forme di realizzazione illustrate nel presente documento possono essere descritti in termini di vari tipi specifici di software come giochi, si comprenderà che l'invenzione non è così limitata, e può essere applicata a qualsiasi genere di attività assistita da computer noti nella tecnica. In un sistema secondo una forma di realizzazione dell'invenzione, un servizio di distribuzione software generico permette a qualsiasi programma da scoprire e utilizzato tramite un'unica interfaccia generica. Pertanto, in tale disposizione, un utente potrebbe essere informato di una moltitudine di programmi disponibili per l'uso. In alcuni casi, il software può essere messo a disposizione per assistere un dispositivo per accedere a un altro servizio sulla rete peer-to-peer. Ad esempio, un dispositivo peer può scoprire un gioco multiplayer che viene pubblicizzato attraverso i protocolli di rilevamento della rete. Il gioco multiplayer può utilizzare la rete peer-to-peer sia per la scoperta e gli eventi di gioco. Al fine di giocare il gioco, il dispositivo utente può scoprire Andor essere indirizzato automaticamente ad un servizio di distribuzione software che consente software compatibile per essere installato sul dispositivo dell'utente. In questo modo, l'utente può utilizzare senza capacità theretofore sconosciute e disinstallati che sorgono sulla rete peer-to-peer. In una disposizione, la rete ad hoc, peer-to-peer che consente al servizio di distribuzione del software può essere un Universal Plug and Play di rete (UPnP). Il framework UPnP include due strati: un dispositivo UPnP general-purpose Architecture (UDA) e protocolli di controllo dispositivi specifici del dispositivo (DCP). Ci sono attualmente circa dieci standardizzato DCP per le varie categorie di dispositivi. Distribuzione del software tramite UPnP può comportare la creazione di un quadro generico che permette agli utenti di ricercare i programmi disponibili, in modo tale che la ricerca non sarebbe legato a un particolare tipo di software, piattaforma del dispositivo, sistema di licenze o di altre categorie tipicamente associati con la distribuzione del software. Una distribuzione di software DCP può essere creato che definirebbe i servizi, azioni e variabili di stato che un dispositivo di distribuzione del software UPnP esporrebbe alla rete UPnP. In riferimento ora alla fig. 1. uno schema a blocchi 100 illustra un sistema di esempio secondo forme di realizzazione dell'invenzione. Generalmente, tecnologie come UPnP sono progettati per operare in uno spazio limitato. In FIG. 1. un confine fisico definisce uno spazio locale 102. Le dimensioni dello spazio locale 102 sono generalmente confinati dai protocolli sottostanti rete e supporti, nonché la scalabilità della ad-hoc, tecnologie di rete peer-to-peer utilizzati per facilitare la distribuzione di software. Tuttavia, si comprenderà che altri ad-hoc, protocolli peer-to-peer potrebbe non essere limitato a limitazioni di spazio fisico, e quindi l'illustrazione della spazio locale 102 è a scopo illustrativo e non limitativo. Lo spazio 102 può comprendere almeno una rete locale 104 che è in grado di supportare comunicazioni con uno o più dispositivi utente 106. La rete locale 104 può comprendere qualsiasi combinazione di mezzi di trasmissione di dati e protocolli. Ad esempio, la rete 104 può utilizzare mezzi di trasmissione dati cablata o wireless. Allo stesso modo, i dispositivi 106 sulla rete locale 104 possono vari protocolli di livello fisico e di collegamento dati per comunicare tra, tra cui, Ethernet, FDDI, PPP, ATM, HDLC, Fibre Channel, X-10, serialparallel point-to-point connessioni, ecc A numero di protocolli di rete più elevati strato può operare sulla rete 104 come pure, tra TCPIP, UDPIP, IPX, AppleTalk, ICMP, ARP, SNMP, DNS, FTP, NetBEUI, ecc I dispositivi utente 106 generalmente includono alcuni sorta di capacità di elaborazione dei dati , ed in particolare almeno alcuni dei dispositivi 106 sono in grado di ottenere e che esegue il software tramite la rete 104. Nella maggior parte delle installazioni, questo software include i programmi utente o di sistema che sono in grado di funzionare su dispositivi 106 con capacità di elaborazione dei dati di uso generale. Tali dispositivi 106 includono solitamente sufficiente memoria (memoria ad accesso casuale per esempio) per caricare nuovi programmi che selettivamente alterano il comportamento del dispositivo. 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.
Comments
Post a Comment