DE202015009270U1 - Automatische Ermittlung und Installation von Anwendungen über das Internet bei Koppelung von Hardware-Geräten mit Computergeräten - Google Patents

Automatische Ermittlung und Installation von Anwendungen über das Internet bei Koppelung von Hardware-Geräten mit Computergeräten Download PDF

Info

Publication number
DE202015009270U1
DE202015009270U1 DE202015009270.5U DE202015009270U DE202015009270U1 DE 202015009270 U1 DE202015009270 U1 DE 202015009270U1 DE 202015009270 U DE202015009270 U DE 202015009270U DE 202015009270 U1 DE202015009270 U1 DE 202015009270U1
Authority
DE
Germany
Prior art keywords
applications
computing device
hardware
request
computer program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202015009270.5U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202015009270U1 publication Critical patent/DE202015009270U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Computerprogramm, umfassend: das Empfangen eines ersten Hinweises, dass ein Hardware-Gerät an das Computergerät angeschlossen wurde; das Empfangen eines zweiten Hinweises, dass auf dem Computergerät keine gerätespezifische Anwendung installiert ist, welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt; das automatische Abfragen, in Erwiderung auf den ersten und zweiten Hinweis, einer Datenbank mit Anwendungen für gerätespezifische Anwendungen, die für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt; und das Anzeigen einer oder mehr Anwendungen aus der Datenbank, welche die Anfrage erfüllen, werden einem Nutzer angezeigt.

Description

  • VERWEIS
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • TECHNISCHES GEBIET
  • Dieses Dokument bezieht sich allgemein auf Anwendungen, die auf Computergeräten genutzt werden, und insbesondere die automatische Ermittlung von Anwendungen über das Internet bei Koppelung eines Hardware-Geräts mit einem Computergerät.
  • HINTERGRUND
  • Da immer mehr Hardware-Geräte mit Computergeräten verbunden werden, entsteht eine neue Herausforderung, Ressourcen bereitzustellen, welche die Kommunikation zwischen Hardware- und Computergeräten erleichtern. Traditionell wurden Hardware-Geräte mit Software zusammen verkauft oder geliefert (z. B. einem Gerätetreiber), die auf dem Computergerät des Nutzers installiert wurde, um eine gerätespezifische Anwendung zu bieten, welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt. Die Software konnte auf einem computerlesbarem Medium vorliegen (z. B. einer Diskette oder einer CD) und auf dem Computergerät installiert werden, nachdem das Medium in ein Laufwerk (z. B. ein Disketten- oder CD-Laufwerk) eingelegt und vom Computergerät gelesen wurde. Jedoch werden Computergeräte immer kleiner und sind nicht mehr mit Laufwerken zum Lesen von Disketten oder CDs ausgestattet und/oder Entwickler und Hersteller möchten ihre Geräte nicht mehr mit computerlesbaren Medien ausliefern, auf denen die Software gespeichert ist.
  • Daher gilt es das vorgenannten Problem mit den Mitteln der Kunst anzugehen.
  • ZUSAMMENFASSUNG
  • In einem ersten allgemeinen Aspekt umfasst ein computerimplementiertes Verfahren den Eingang eines ersten Hinweises, dass ein Hardware-Gerät mit dem Computergerät verbunden wurde, sowie eines zweiten Hinweises, dass auf dem Computergerät keine gerätespezifische Anwendung installiert ist, welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt. In Erwiderung auf den ersten und zweiten Hinweis wird eine Datenbank mit Anwendungen für gerätespezifische Anwendungen automatisch durchsucht, die für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt. Eine oder mehrere Anwendungen aus der Datenbank, welche die Anfrage erfüllen, werden einem Nutzer angezeigt.
  • Implementierungen können eine oder mehr der folgenden Funktionen umfassen, individuell oder in Kombination mit jeder der anderen Funktionen. Beispielsweise kann eine Auswahl einer oder mehrerer der angezeigten Anwendungen getroffen und die ausgewählte Anwendung installiert werden. Durch Installation einer der angezeigten Anwendungen kann diese auf dem Computergerät gestartet werden, und die Kommunikation zwischen dem Gerät und dem Betriebssystem beginnt durch die gestartete Anwendung. Unter den ersten Hinweis, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, können Informationen über den Hersteller des Geräts fallen, und die Anfrage kann zumindest teilweise auf den Informationen über den Hersteller beruhen. Darunter kann ebenso der Eingang einer Produkt-ID des Geräts fallen, und die Anfrage kann zumindest teilweise auf der Produkt-ID beruhen.
  • Das Gerät kann mit dem Computergerät über USB verbunden werden, und unter den Eingang des ersten Hinweises, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, kann eine Gerätebeschreibung fallen, welche das Gerät ausweist, und die Anfrage kann zumindest teilweise auf den Informationen in der Gerätebeschreibung beruhen. Das Gerät kann mit dem Computergerät über Bluetooth verbunden werden, und unter den Eingang des ersten Hinweises, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, kann eine UUID fallen, welche das Gerät ausweist, und die Anfrage kann zumindest teilweise auf den Informationen in der UUID beruhen. Die Datenbank kann einen Index mit Metadaten-Informationen über die Anwendungen in der Datenbank enthalten, und eine Anfrage an die Datenbank kann die Durchsuchung des Indexes nach einem oder mehr Suchbegriffen umfassen, welche das Gerät beschreiben, die gegen den Index verglichen werden. Die Begriffe im Index können auf Begriffen beruhen, die in Anwendungsverzeichnissen in der Datenbank zu finden sind.
  • In einem anderen allgemeinen Aspekt umfasst ein computerimplementiertes Verfahren den Eingang gerätespezifischer Anwendungen zur Aufnahme in eine Anwendungsdatenbank, wobei die gerätespezifischen Anwendungen für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit verbundenen Computergerät und einem Betriebssystem auf diesem sorgen. Die Anwendungen sind im Anwendungsindex aufgeführt, die in der Datenbank bereitstehen. Eine Anfrage nach einer oder mehr gerätespezifischen Anwendungen, die für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit verbundenen Computergerät und einem Betriebssystem auf diesem sorgen, geht auf dem Computergerät ein, dass mit der Datenbank über das Internet verbunden ist, wobei die Anfrage automatisch vom Computergerät an die Datenbank gesendet wird, wenn das Hardware-Gerät mit dem Computergerät verbunden wird. Die Anfrage wird gegen den Index ausgeführt, und daraufhin werden Hinweise auf eine oder mehr Anwendungen zurückgegeben, welche die Anfrage erfüllen, und dem Nutzer des Computergeräts präsentiert.
  • Implementierungen können eine oder mehr der folgenden Funktionen umfassen, individuell oder in Kombination mit jeder der anderen Funktionen. Zum Beispiel können unter die Hinweise auf eine oder mehr Anwendungen, welche die Anfragen erfüllen, Nachweise nur für Anwendungen umfassen, welche die Anfrage erfüllen und als mit einem Entwickler für ein Hardware-Gerät in Verbindung stehend genehmigt verifiziert wurden. Unter den Index der Anwendungen können Anwendungen fallen, die auf den Informationen in Anwendungsverzeichnissen fallen. Informationen in einem Anwendungsverzeichnis, welche für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit mit Bluetooth verbundenen Computergerät und einem Betriebssystem auf diesem sorgen, können eine UUID für das Hardware-Gerät umfassen. Informationen in einem Anwendungsverzeichnis, welche für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit mit USB verbundenen Computergerät und einem Betriebssystem auf diesem sorgen, können eine Gerätebeschreibungs-ID für das Hardware-Gerät umfassen.
  • Eine Auswahl einer der Anwendungen, welche die Anfrage erfüllen, kann eingehen, und in Erwiderung auf die Auswahl kann die ausgewählte Anwendung dem Computergerät bereitgestellt werden. Das Gerät kann mit dem Computergerät über USB verbunden sein, und die Anfrage kann zumindest teilweise auf den Informationen in einer Gerätebeschreibung beruhen, welche das Gerät ausweist. Das Gerät kann mit dem Computergerät über Bluetooth verbunden sein, und die Anfrage kann zumindest teilweise auf den Informationen in einer UUID beruhen, welche das Gerät ausweist.
  • In einem anderen allgemeinen Aspekt umfasst das computerimplementierte Verfahren den Eingang eines Hinweises, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde. In Erwiderung auf den eingehenden Hinweis wird in einer Anwendungsdatenbank automatisch nach Anwendungen auf Nutzerebene gesucht, welche zur Verwendung mit dem Hardware-Gerät gedacht sind, wenn das Hardware-Gerät mit einem Computergerät verbunden wird, und eine oder mehr Anwendungen aus der Datenbank, welche die Anfrage erfüllen, werden einem Nutzer angezeigt.
  • Implementierungen können eine oder mehr der folgenden Funktionen umfassen, individuell oder in Kombination mit jeder der anderen Funktionen. Beispielsweise kann eine Auswahl einer oder mehrerer der angezeigten Anwendungen getroffen und eine der ausgewählten Anwendungen angezeigt werden. Das Gerät kann mit dem Computergerät über USB verbunden werden, und unter den Eingang des Hinweises, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, kann eine Gerätebeschreibung fallen, welche das Gerät ausweist, und die Anfrage kann zumindest teilweise auf den Informationen in der Gerätebeschreibung beruhen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines Systems, in dem ein Hardware-Gerät mit einem Computergerät verbunden wird.
  • 2 ist ein Screenshot einer Benutzeroberfläche eines Marktes für digitale Güter.
  • 3 ist ein schematisches Blockdiagramm für eine beispielhafte Ausführung eines Systems zur Suche und Ausweisung digitaler Güter auf einem Markt.
  • 4 ist ein Screenshot die Benutzeroberfläche eines Marktes für digitale Güter.
  • 5 ist ein Flussdiagramm eines Prozesses zur automatischen Ausweisung gerätespezifischer Anwendungen, welche für dedizierte Kommunikationsdienste zwischen einem Hardware- und einem Computergerät sorgen.
  • 6 ist ein Flussdiagramm eines Prozesses zur automatischen Ausweisung gerätespezifischer Anwendungen, welche für dedizierte Kommunikationsdienste zwischen einem Hardware- und einem Computergerät sorgen.
  • 7 ist ein Flussdiagramm eines Prozesses zur automatischen Ausweisung von Anwendungen auf Nutzerebene, welche zur Verwendung mit einem bestimmten Hardware-Gerät gedacht sind, wenn dieses mit einem Computergerät verbunden wird.
  • 8 zeigt ein Beispiel eines Computergeräts und eines mobilen Computergeräts, die mit den hier genannten Techniken verwendet werden können.
  • Gleiche Bezugszeichen in den verschiedenen Zeichnungen zeigen gleiche Elemente an.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In diesem Dokument werden Systeme und Techniken zur automatischen Suche nach und Ausweisung von gerätespezifischen Anwendungen (z. B. Gerätetreibern) beschrieben, welche für dedizierte Kommunikationsdienste zwischen Hardware-Geräten und Betriebssystemen auf Computergeräten sorgen. Die automatische Suche kann in Erwiderung auf den Anschluss eines Hardware-Geräts an ein Computergerät erfolgen, zum Beispiel wenn ein Hardware-Gerät mit einem Computergerät über Bluetooth oder USB verbunden wird. Die automatische Suche kann über einen gepflegten Datenspeicher 132 erfolgen, auf dem Anwendungen gehostet werden, einschließlich gerätespezifische Anwendungen, die zur Installation und Verwendung auf einem Computergerät genehmigt wurden. Somit kann eine Suche nach einem geeigneten Gerätetreiber automatisch in Erwiderung auf den Anschluss eines Hardware- an das Computergerät in die Wege geleitet werden, wenn ein Hardwaregerät an ein Computergerät angeschlossen wird, selbst wenn ein Gerätetreiber für die jeweilige Hardware nicht auf diesem installiert ist. Die Suchergebnisse können einem Benutzer auf dem Computergerät präsentiert werden, der dann einen Gerätetreiber für das Hardware-Gerät auf dem Computergerät zur Installation auswählen kann.
  • 1 ist ein Blockdiagramm eines Systems 100, in dem ein Hardware-Gerät 102 mit einem Computergerät 104 verbunden wird. Das Hardware-Gerät 102 kann zur Ausführung einer bestimmten Funktion für einen Nutzer verwendet werden, allein oder in Kombination mit dem Computergerät, mit dem es verbunden ist. Zu einigen Beispielen für Hardware-Geräte gehören: ein Standalone-GPS-Gerät, das einen Standort durch Kommunikation mit Satelliten in der Umlaufbahn bestimmt und diese Standortdaten an das Computergerät 104 übermittelt, wobei das GPS-Gerät aktualisierte Kartendaten von einem angeschlossenen Computergerät erhält; eine Smart Watch, die bestimmte Funktionen in Verbindung mit einem Computergerät ausführt, wie z. B. einem Smartphone, einem Tablet oder einem Phablet; ein Wearable-Computergerät, wie z. B eine Brille mit einer Kamera, einem Head-up-Display, Speicher und einem Prozessor, das mit dem Computergerät 104 verbunden ist; ein Monitor, der medizinische Daten (wie z. B. Puls, Bewegung, Temperatur, Schlafzustand usw.) eines Nutzers anzeigt und diese Daten an ein verbundenes Computergerät übermittelt. Das Computergerät 104 kann einen Prozessor (z. B. eine Zentraleinheit) 106 und Speicherressourcen (z. B. flüchtigen Speicher 108 und nicht flüchtigen Speicher 116) umfassen. Das Computergerät 104 kann ein Betriebssystem 110 und eine Anwendung auf Kernelebene 112 umfassen, die dem Hardware-Gerät zu eigen ist, welches für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät 102 und dem Betriebssystem 110 auf dem Computergerät 104 sorgt. Das Computergerät 104 kann eine Anwendung auf Benutzerebene 114 umfassen, welche einer Benutzeroberfläche Funktionen des Hardware-Geräts 102 bietet sowie Zugriff auf, Bedienung und Analyse von Daten ermöglicht, die vom Hardware-Gerät 102 eingehen. Befehle können an das Hardware-Gerät von Anwendung 114 und vom Betriebssystem 110 durch den Gerätetreiber auf Kernelebene 112 gesendet werden, und Daten vom Hardware-Gerät können an das Betriebssystem 110 und die Anwendung 114 durch den Gerätetreiber 112 übermittelt werden.
  • Das Computergerät 104 ist mit einem Server-System 130 verbunden, das sich in Entfernung von Computergerät 104 befindet und einen Datenspeicher 132 mit vielen verschiedenen Anwendungen bereitstellt, welche für dedizierte Kommunikationsdienste zwischen Hardware-Geräten und Betriebssystemen sorgen. Das Computergerät 104 ist mit dem Serversystem 130 durch ein Netzwerk 120 (z. B. das Internet) verbunden.
  • Wenn das Hardware-Gerät 102 mit dem Computergerät 104 verbunden wird, wird vom Gerät ein Signal an das Computergerät gesendet, dass auf eine neue Verbindung zwischen den beiden Geräten hinweist. Zum Beispiel kann in manchen Implementierungen bei Anschluss des Hardware-Geräts 102 an das Computergerät 104 ein Hardwareinterrupt vom Hardware-Gerät 102 an das Betriebssystem 110 auf dem Computergerät 104 gesendet werden, das angibt, dass das Hardware-Gerät 102 mit dem Computergerät 104 verbunden wurde.
  • Das Hardware-Gerät 102 kann mit dem Computergerät 104 über eine kabelgebundene oder kabellose Verbindung verbunden werden, bei der jeweils ein kabelgebundenes oder kabelloses Kommunikationsprotokoll zum Tragen kommt. In manchen Implementierungen kann das Hardware-Gerät 102 mit dem Computergerät 104 durch Bluetooth verbunden sein, worüber Signale zwischen den beiden Geräten ausgetauscht werden. In manchen Implementierungen kann das Hardware-Gerät 102 mit dem Computergerät 104 durch USB verbunden sein, worüber Signale zwischen den beiden Geräten ausgetauscht werden.
  • Bei Anschluss des Hardware-Geräts 102 an das Computergerät 104 können die Informationen, die vom Hardware- an das Computergerät gesendet werden, Informationen umfassen, welche das Hardware-Gerät gegenüber dem Computergerät ausweisen. In manchen Implementierungen können diese Informationen in Erwiderung auf eine Anfrage vom Betriebssystem 110 gesendet werden. Zum Beispiel kann das Hardware-Gerät eine sog. UUID übermitteln, welche dieses gegenüber dem Computergerät ausweist, wenn ein Hardware-Gerät 102 über Bluetooth mit einem Computergerät 104 verbunden wird. In einer anderen Implementierung kann das Hardware-Gerät Gerätebeschreibungsdaten (z. B. eine Hersteller- und eine Produkt-ID) übermitteln, welche dieses gegenüber dem Computergerät ausweisen, wenn das Hardware-Gerät 102 über USB mit dem Computergerät 104 verbunden wird.
  • Wenn das Computergerät 104 Informationen empfängt, welche das Hardware-Gerät ausweisen, können die lokale Speicherressource 108, 116 des Computergeräts nach einer Anwendung durchsucht werden (z. B. einem Gerätetreiber), welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät 102 und dem Betriebssystem 104 auf dem Computergerät 104 sorgen. Sofern eine solche Anwendung in der lokalen Speicherressource vorhanden oder Teil des Betriebssystems 110 ist, kann die Anwendung in den Speicher 108 geladen und vom Prozessor 106 ausgeführt werden sowie für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und dem Betriebssystem sorgen.
  • Falls keine Anwendung in der lokalen Speicherressource des Computergeräts 104 gefunden wird, wird auf den Hinweis hin, dass das Hardware-Gerät 102 mit dem Computergerät 104 verbunden wurde, kann automatisch eine Suche nach einer geeigneten Anwendung im entfernten Datenspeicher 132 in die Wege geleitet werden (d. h. ohne menschliches Zutun zum Start der Suche, sondern in direkter Erwiderung auf den Hinweis, dass das Hardware-Gerät 102 mit dem Computergerät 104 verbunden wurde). In manchen Implementierungen kann die Suche durch Weitergabe von Informationen erfolgen, welche das Hardware-Gerät 102 gegenüber eine Anwendung 114 ausweisen (z. B. einer Browser-Anwendung), welche sich mit dem entfernen Serversystem 130 verbindet und eine Anfrage nach einer oder mehr Anwendungen stellt, welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät 102 und dem Betriebssystem 110 auf dem Computergerät 104 sorgt. Die Anfrage beruht auf den ausweisenden Informationen des Hardware-Geräts gegenüber dem entfernten Serversystem 130. Die Anfrage kann auf dem entfernten Server ausgeführt werden, um eine oder mehr Anwendungen auszuweisen, welche die Anfrage erfüllen und sich im Datenspeicher 132 in Serversystem 130 befinden. Das Serversystem 130 kann einen Markt mit verschiedenen digitalen Gütern (z. B. Web-Anwendungen, Browser-Erweiterungen, Gerätetreibern usw.) bereitstellen, mit denen Funktionen und Fähigkeiten des Computergeräts 104 erweitert werden können.
  • 2 ist ein Screenshot einer Benutzeroberfläche 200 für einen Markt mit digitalen Gütern. Die Benutzeroberfläche 200 kann von einer Browser-Anwendung angezeigt werden, die vom Computergerät 104 ausgeführt wird, das mit dem Netzwerk 120 (z. B. dem Internet) verbunden ist. Die Browser-Anwendung kann einen oder mehr Tabs 202 öffnen, in dem die Benutzeroberfläche für den Markt angezeigt wird, wenn ein Nutzer zur einer Website navigiert, die durch eine URL 204 ausgewiesen ist, welche Inhalte dem Browser bereitstellt, damit dieser die Benutzeroberfläche für den Markt im Tab anzeigen kann. In anderen Implementierungen kann eine Benutzeroberfläche für einen Markt mit digitalen Gütern in oder von einer Anwendung angezeigt werden, die zur Anzeige nicht von einem Browser abhängig ist. Zum Beispiel kann die Benutzeroberfläche in einem Widget angezeigt werden, das von einem Betriebssystem oder einer nativen Anwendung ausgeführt wird.
  • Die Inhalte, die von der Webseite dem Nutzer bereitgestellt werden können eine Vielzahl von Icons 206A, 206B, 206C, 206D, 206E, 206F, 208A, 208B, 208C, 208D, 208E, 210A, 210B, 210C umfassen, die digitale Güter darstellen, die von der Webseite durch den Nutzer zur Ausführung durch das Computergerät 104 heruntergeladen werden können, das dieser steuert. In manchen Implementierungen können die digitalen Güter jegliche Software oder ausführbaren Code umfassen (z. B. ein Desktop-Softwareprogramm, eine native Anwendung, eine digitale Mediendatei wie ein Lied oder einen Film, Gerätetreiber usw.). In manchen Implementierungen können die digitalen Güter Web-Anwendungen umfassen, die vom Markt auf ein Client-Computergerät heruntergeladen werden können, auf dem sie zur Ausführung durch einen Web-Browser installiert werden können, der auf dem Computergerät läuft. In diesem Kontext kann eine „Web-Anwendung” so konfiguriert werden, dass sie durch den Web-Browser ausgeführt oder interpretiert wird. Das wird verglichen mit nativen Anwendungen, die maschinenausführbaren Code beinhalten und konfiguriert sind, um direkt von einem Prozessor oder durch das Betriebssystem des Client-Gerätes ausgeführt zu werden, wohingegen eine Web-Anwendung ohne die Hilfe des Web-Browsers zur Ausführung oder Anzeige nicht in der Lage sein kann. Web-Anwendungen können über ihren eigenen Code verfügen, sodass der Nutzer alle Inhalte der Web-Anwendung zur Ausführung durch den Browser herunterladen kann und die Web-Anwendung keinen Netzwerkzugang zur Ausführung ihrer Funktionen benötigt und erfolgreich durch den Browser lokal auf dem Computergerät ohne Netzwerkzugang ausgeführt werden kann.
  • Wenn installierbare Web-Anwendungen vom Nutzer „installiert” werden, können die Web-Anwendungen in den Web-Browser des Nutzers aufgenommen und integriert werden. Eine Installation ermöglicht es ebenso Web-Anwendungen erhöhte Zugriffsrechte zu erhalten, ohne den Nutzer einzeln darum bitten zu müssen. Die „Installation” einer Web-Anwendung kann Integration umfassen in: eine Aufgabe des Betriebssystems des Clients und den Fenstermanager zum leichten Wechseln zwischen Fenstern, eine Taskleiste oder ein Schnellstartsystem, interagierende Systembenachrichtigungen oder dauerhaft laufende Hintergrundprozesse. Eine Deinstallation erlaubt das leichte Entfernen oder Deaktivieren einer installierten Anwendung aus dem Browser oder dem System des Nutzers und kann ggf. alle erteilten Zugriffsrechte widerrufen.
  • In manchen Implementierungen kann die Gerätetreiber-Anwendung als Web-Anwendung oder Browser-Erweiterung implementiert werden, in der die Gerätetreiber-Anwendung die Funktionen des Browser erweitern und so eine gerätespezifische Anwendung bereitstellen kann, die für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und dem Betriebssystem auf dem Computergeräts sorgt. In anderen Implementierungen kann der Gerätetreiber als unabhängig von der Browser-Anwendung angezeigt werden und eine gerätespezifische Anwendung liefern, die für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät ohne Hilfe der Browser-Anwendung sorgt.
  • In einem Beispiel kann eine Gerätetreiber-Anwendung einem Computergerät 104 zur Installation als Installationspaket bereitgestellt werden, das ein gezipptes Dateipaket umfasst (z. B. komprimierte Archivdateien) und einen Header, der einige Metadaten über die Gerätetreiber-Anwendung umfasst. Wenn die Gerätetreiber-Anwendung in Form einer Erweiterung bereitgestellt wird, ergänzt die Erweiterung nach Entpacken und Installation im Browser diesen um die Gerätetreiber-Funktion. In manchen Implementierungen können Erweiterungen Zugriff auf alle Anwendungsprogrammierungsschnittstellen (APIs) haben, welche die Browser-Anwendung Webseiten und/oder Web-Inhalten bietet.
  • Die Datendateitypen einer Gerätetreiber-Anwendung, aus denen ein gezipptes Dateienpaket eines Installationspakets bestehen kann, können HTML-, CSS-, JavaScript-, Bild- und andere Dateitypen einschließlich web-gestützter Computersprachen-Inhalte und/oder Code umfassen, wie z. B. JavaScript Object Notation(JSON)-Objekte. JSON-Objekte, die Teil eines Installationspakets sein können, umfassen eine Manifest-Datendatei und eine Katalog-Datendatei. In einer beispielhaften Implementierung kann eine Manifest-Datei eine JSON-formatierte Datei sein, die eine Vielzahl von Informationsfeldern umfasst, die zur Definition der entsprechenden Anwendung Verwendung finden. Diese Felder können folgende Felder umfassen: Name, Version sowie eines oder mehrere zur Angabe jeglicher APIs, auf welche die Anwendung Zugriff benötigen kann. Das Manifest eines Gerätetreibers kann ebenso Informationen umfassen, welche ein oder mehr Hardware-Geräte ausweisen (z. B. durch eine Hersteller und eine Produkt-ID oder eine UUID), mit welcher die Gerätetreiber-Anwendung verwendet werden kann, um für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät zu sorgen, mit dem das Hardware-Gerät verbunden ist. Mit diesen Informationen kann die Gerätetreiber-Anwendung in einem Markt für digitale Güter indiziert werden, sodass die Gerätetreiber-Anwendung im Markt mit ihren Ziel-Hardware-Geräten abgeglichen werden kann.
  • In einer beispielhaften Implementierung kann es ein Gerätetreiber für ein bestimmtes Hardware-Gerät einem Anwendungsentwickler gestatten, die Funktion einer USB-API zur Kommunikation mit einem bestimmten USB-Hardware-Gerät oder einer Bluetooth-API zur Kommunikation mit einem bestimmten Bluetooth-fähigen Hardware-Gerät zu erweitern. Bei solchen Ansätzen kann die Manifest-Datei für eine bestimmte Gerätetreiber-Anwendung angeben (deklarieren), dass es Zugriff auf die USB-/Bluetooth-API benötigt, um dem Gerätetreiber Kommunikationsdienste zwischen dem Hardware-Gerät 102 und dem Betriebssystem 110 auf dem Computergerät 104 bereitzustellen.
  • In der Benutzerschnittstelle 200 können die digitalen Güter derart angezeigt werden, dass diese so organisiert ist, dass der Nutzer leichter entscheiden kann, welche Anwendung ihm nützlich oder relevant erscheinen. Beispielsweise kann die Benutzerschnittstelle 200 eine Kategorie 212 von Anwendungen 206A, 206B, 206C, 206D, 206E, 206F umfassen, die kürzlich auf dem Markt veröffentlicht wurden und die ein Betreuer des Marktes für Nutzer besonders bemerkenswert erachtet. In einer Implementierung können die Anwendungen 206A, 206B, 206C, 206D, 206E, 206F, die in Kategorie 212 aufgeführt werden, auf Anwendungen beschränkt sein, die auf dem Markt kürzlich veröffentlicht wurden (z. B. innerhalb einer Woche, eines Monats, von drei Monate, von sechs Monaten). Dann kann eine Subsatz von Anwendungen, die auf dem Markt kürzlich veröffentlicht wurden, auf Grundlage einer Vielzahl von Signalen ausgewählt werden, welche die Relevanz der gewählten Anwendungen dem Nutzer aufzeigen, und der gewählten Subsatz von Anwendungen 206A, 206B, 206C, 206D, 206E, 206F kann innerhalb der Kategorie 212 angezeigt werden. Das heißt, die Anwendungen 206A, 206B, 206C, 206D, 206E, 206F, die in der Kategorie Neu und bemerkenswert 212 der Benutzerschnittstelle 200 angezeigt werden, können ein Subsatz einer größeren Zahl von Anwendungen sein, die sich ebenfalls als neu und bemerkenswert qualifizieren, die aber nicht zur Anzeige in der Benutzerschnittstelle 200 ausgewählt wurden.
  • In einem Beispiel kann die Benutzerschnittstelle 200 eine Kategorie 214 von Anwendungen 208A, 208B, 208C, 208D, 208E umfassen, die zur Anzeige in der Benutzerschnittstelle 200 ausgewählt wurden. Die Anwendungen 208A, 208B, 208C, 208D, 208E, die zur Anzeige in der Kategorie 214 ausgewählt wurden, können auf Grundlage von Kriterien ausgewählt werden, die vom Betreuer des Marktes bewertet werden. Zum Beispiel kann der Betreuer die Anwendungen 208A, 208B, 208C, 208D, 208E zur Anzeige in der Kategorie 214 aus einem größeren Satz von Anwendungen auf Grundlage der Meinung des Betreuers zu Qualität, Beliebtheit oder Nützlichkeit der gewählten Anwendungen auswählen. In einer anderen Implementierung kann der Betreuer die Anwendungen 208A, 208B, 208C, 208D, 208E auf Grundlage der Zahlungen durch Entwickler der Anwendungen für besser sichtbare Anzeige der Anwendungen in der Benutzerschnittstelle 200 auswählen.
  • Die Benutzerschnittstelle 200 des Marktes kann ebenso Kategorien von Anwendungen in anderen Unterteilen der Benutzerschnittstelle 200 umfassen, in denen kleinere Icons die Anwendungen darstellen, die in den Kategorien 212, 214, 216 Verwendung finden. Beispielsweise kann Kategorie 218 die „Beliebten zahlungspflichtigen Apps” anzeigen, die Anwendungen sein können, die ein Nutzer bezahlen muss, bevor er sie auf sein Computergerät herunterladen und installieren kann. Anwendungen, die in der Kategorie „Beliebte zahlungspflichtige Apps” 218 aufgeführt werden, können die am häufigsten heruntergeladenen und/oder am häufigsten installieren Anwendungen sein, die der Nutzer bezahlen muss. In einem anderen Beispiel können unter Kategorie 220 „Redaktionstipps” angezeigt werden, die Anwendungen sein können, die vom Betreuer des Marktes auf Grundlage der gewählten Anwendungen ausgewählt wurden, die er als besonders interessant für Nutzer erachtet, der den Markt auf der Suche nach Anwendungen besucht.
  • Mit anderen Teilen der Benutzerschnittstelle 200 können ebenso die digitalen Güter organisiert werden, die auf dem Markt zur Verfügung stehen. Zum Beispiel kann eine Abteilung „Apps” 222 eine Liste mit Hyperlinks liefern, von denen jeder Anwendungen anzeigen kann, die zu einer Kategorie gehören, die der Hyperlink ausweist. Beispielsweise kann mit dem Hyperlink „Bildung” 223 eine Gruppe von Icons angezeigt werden, die Anwendungen darstellen, welche zu Bildungsinhalten gehören. In einem anderen Beispiel kann der Abschnitt „Erweiterungen” 224 eine Liste von Hyperlinks liefern, von denen jeder Anwendungen anzeigt, die zu einer Kategorie gehören, die der Hyperlink ausweist, wobei eine Erweiterung ausführbarer Code ist, der die Funktionen eines Browsers erweitert. Beispielsweise kann mit dem Hyperlink „Sport” 225 eine Gruppe von Icons angezeigt werden, die Anwendungen darstellen, welche zu Sportinhalten gehören.
  • Zusätzlich zur Einordnung digitaler Güter, die bereits in einer Kategorie 212, 214, 216, 218, 220 der Benutzerschnittstelle 200 angezeigt werden, die als Ergebnis der Auswahl eines Hyperlinks 223, 225 angezeigt werden können, können digitale Güter als Ergebnis einer Suche nach Gütern eingeordnet werden, die für den Nutzer von Interesse sein können. Zum Beispiel kann ein Nutzer Suchbegriffe in ein Suchfeld 226 eingeben, das diese an eine Suchmaschine übergibt, die dann digitale Güter findet, die zu den Suchbegriffen passen und im Markt zur Verfügung stehen. Beispielsweise können digitale Güter wie Web-Anwendungen über eine Vielzahl von Metadaten verfügen, mit denen diese indiziert werden, und die Suchbegriffe können mit diesen Metadaten verglichen werden. Auf Grundlage dieses Vergleichs können Anwendungen, die am besten zu den Suchbegriffen passen, aus den im Markt verfügbaren digitalen Gütern ausgewählt werden, und die ausgewählten Güter können dem Nutzer in der Benutzerschnittstelle 200 präsentiert werden.
  • 3 ist ein schematisches Blockdiagramm für eine beispielhafte Ausführung eines Systems 300 zur Suche und Ausweisung digitaler Güter auf einem Markt. In verschiedenen Ausführungen kann System 300 Client-Rechner (z. B. Desktop-Rechner, Notebooks, Netbooks, Tablets, Smartphones usw.) 302A, 302B, 302C umfassen. Ein Client-Rechner 302A kann einen oder mehrere Prozessoren 304 und einen oder mehrere Speicher 306 umfassen. Der Client-Rechner 302A kann ein Betriebssystem 308 und eine Anwendung 310 betreiben, die das Fenster einer Benutzerschnittstelle 312 anzeigen kann. Das Client-Computergerät 302A kann ein Hardware-Gerät 305 umfassen, das mit dem Betriebssystem 308 über einen Gerätetreiber 316 kommuniziert.
  • In einer Ausführung kann das Client-Computergerät 302A laufen oder das Betriebssystem 308 veranlassen, eine Anwendung 310 oder ein Fenster 312 auszuführen. In manchen Implementierungen kann das Fenster 312 ein Fenster eines Web-Browsers sein. In manchen Implementierungen kann das Fenster 312 ein Fenster sein (z. B. ein Widget), das unabhängig vom Browser ausgeführt wird. In verschiedenen Ausführungen kann dieses Fenster 312 eine Vielzahl von Bereichen oder Tabs 314A, 314B, 314C umfassen. Das Fenster 312 kann ein Sichtbereich sein, normalerweise rechteckig mit irgendeiner Benutzerschnittstelle. In einer in dem Client-Gerät 302A eingesetzten graphischen Benutzerschnittstelle (Graphic User Interface, GUI) kann das Fenster 312 ein zweidimensionales Objekt sein, das auf einer Ebene der GUI arrangiert ist, die als Desktop bekannt ist. Das Fenster 312 kann andere grafische Objekte enthalten, z. B. eine Menüleiste, Symbolleisten, Steuerelemente, Symbole und normalerweise einen Arbeitsbereich, in dem ein Dokument, Bilder, Dateiinhalte oder andere größere Objekte angezeigt werden können.
  • Die Client-Computergeräte 302A, 302B, 302C können Online-Inhalte von einen oder mehreren Server-Computergeräten 350 empfangen, die über ein Netzwerk 390 an das Clientgerät 302 angeschlossen werden können. Jeder der Client-Computergeräte 302A, 302B, 302C kann mit dem Netzwerk 390 über einen lokalen Internetdienstleister 392 verbunden sein. Die empfangenen Online-Inhalte können verarbeitet und im Fenster 312 angezeigt werden (z. B. in einem Tab 314 des Fensters 312). Zum Beispiel kann der Webbrowser 312 dem Benutzer die Benutzerschnittstelle eines Marktes für digitale Güter anzeigen, ähnlich der Benutzerschnittstelle des hier beschriebenen Marktes.
  • Das Client-Computergerät 302A kann mit einem digitalen Warenmarkt-Server 350 kommunizieren, der den Client-Computergeräten 302A, 302B, 302C einen Markt für digitale Waren bietet. Der Markt-Server 350 kann einen oder mehrere Prozessoren 352 und eine oder mehrere Speichereinheiten 354 umfassen. Der Marktplatz-Server 350 kann ein Betriebssystem 356 und verschiedene Anwendungen und Dienstleistungen realisieren, um den Client-Geräten Funktionalität zu bieten. Zum Beispiel kann in einer Implementierung der Markt-Server 350 eine Speicheranlage für eine Datenbank von digitalen Waren 358 umfassen und die digitalen Waren können von der Speicheranlage an das Client-Computergerät angedient oder herunterladen werden. In einer anderen Implementierung können die digitalen Waren in einer fern vom Markt-Server gelegenen Speicheranlage gespeichert und von dort an die Client-Computergeräte gesendet werden. Zum Beispiel könnten digitale Waren in den verschiedenen, von den Entwicklern der digitalen Waren betriebenen und kontrollierten Speicherablagen gespeichert und von dort an die Client-Computergeräte gesendet werden, und die Speicheranlage für die digitalen Waren 358 des Markt-Servers 350 braucht nur Hinweise auf die einzelnen, von den Entwicklern betriebenen Speicheranlagen zu geben.
  • Der Markt-Server 350 kann eine Metadatenbank 360 umfassen, die Metadaten im Zusammenhang mit den digitalen Gütern speichert, die vom Repository 358 verfügbar sind oder referenziert werden. Die Metadaten im Zusammenhang mit einem digitalen Gut können eine Vielzahl von Information über dieses umfassen, einschließlich beispielsweise Informationen über die digitalen Güter, die von Repository 358 verfügbar sind. Zu diesen Informationen können beispielsweise Schlagwörter gehören, die sich auf die digitalen Güter und deren Preis beziehen. Bei einer Gerätetreiber-Anwendung zur Verwendung mit einem bestimmten Hardware-Gerät 305 können die Metadaten Informationen enthalten, die den Hersteller und das Produkt von Gerät 305 ausweisen. Zum Beispiel können die Information gegen die UUID oder die Hersteller- und Produkt-ID abgeglichen werden, die vom Gerät 305 an das Betriebssystem 308 übermittelt wird, wenn das Hardware-Gerät 302 an das Computergerät angeschlossen wird.
  • Der Markt-Server 350 kann einen Abfrage-Handler 362 umfassen, der zum Empfangen und Verarbeiten von Anfragen nach digitalen Gütern im Markt konfiguriert werden kann. Zum Beispiel kann der Anfrage-Handler Anfragen nach digitalen Gütern empfangen, die in das Anfragefeld 226 der Benutzerschnittstelle 200 in 2 eingegeben werden. Begriffe oder Sätze der Anfragen können dann gegen Begriffe und Sätze (z. B. Begriffe und Sätze, die in der Metadatenbank 360 hinterlegt sind) verglichen werden, die zum Indizieren der digitalen Güter im Markt Verwendung finden. Auf Grundlage dieses Vergleichs kann ein Subsatz von digitalen Gütern aus der Datenbank 358 ausgewählt, welche der Anfrage entsprechen. Zusätzlich kann der Anfrage-Handler Anfragen nach digitalen Gütern empfangen, die automatisch auf den Anschluss eines Hardware-Geräts 305 an das Computergerät 302A hin eingeleitet werden, wobei die automatisch eingeleitete Anfrage Begriffe oder Sätze umfassen kann, welche das Hardware-Gerät 305 ausweisen. Die Anfrage kann dann gegen Begriffe und Sätze (z. B. Begriffe und Sätze, die in der Metadatenbank 360 hinterlegt sind) verglichen werden, die zum Indizieren der Gerätetreiber im Markt Verwendung finden. Auf Grundlage dieses Vergleichs kann ein Subsatz von Gerätetreibern aus der Datenbank 358, welche der Anfrage entsprechen.
  • Der Markt 350 kann eine Präsentations-Engine 366 umfassen, die Informationen zur Übertragung an die Client-Computergeräte 302A, 302B, 302C vorbereitet, wobei die Informationen vom Client-Computergerät zur Anzeige einer Benutzerschnittstelle 200 genutzt wird, welche die gewählten digitalen Güter im Markt widerspiegelt. Zum Beispiel kann die Präsentations-Engine 366 HTML-Code, XML-Code usw. vorbereiten, der die Informationen bestimmt, die einem Nutzer in der Benutzerschnittelle 200 angezeigt werden und der Code bestimmt, welche digitalen Güter diesem in der Benutzerschnittstelle 200 angezeigt werden.
  • 4 ist ein Screenshot einer Benutzeroberfläche 400 für einen Markt mit digitalen Gütern. Der Screenshot stellt eine Implementierung einer Benutzerschnittstelle dar, die angezeigt werden kann, wenn ein FitBitTM-Hardware-Gerät 305 an ein Computergerät 302A angeschlossen wird und eine Anfrage nach einer Gerätetreiber-Anwendung für das FitBitTM-Gerät automatisch eingeleitet und vom Computergerät 302A an den Markt-Server 350 gesendet wird. In manchen Implementierungen kann der Begriff „FitBit” im Anfragefeld 426 angezeigt werden, um anzuzeigen, dass eine Suche nach Gerätetreiber-Anwendungen zur Verwendung mit dem FitBit-Hardware-Gerät 305 ausgeführt wurde. Der/die Suchbegriff(e), der/die im Anfragefeld 426 angezeigt wird/werden und/oder Suchbegriffe, welche das Hardware-Gerät 305 ausweisen (z. B. die UUID oder Herstellerund Produkt-ID des Geräts), können mit den Metadaten für digitale Güter im Markt verglichen werden, zum Beispiel Metadaten in der Metadatenbank 360. Die Metadaten, mit denen die Suchbegriffe verglichen werden, lassen sich aus Informationen im Manifest des Gerätetreibers ableiten (z. B. Informationen, welche das/die Hardware-Gerät(e) ausweisen, mit dessen Verwendung die Gerätetreiber-Anwendung gedacht ist).
  • Auf Grundlage dieses Vergleichs kann der Anfrage-Handler 362 eine oder mehr Gerätetreiber-Anwendungen ausweisen, die den Suchbegriffen entsprechen. Ein Pop-up-HTML-Fenster 406 kann angezeigt werden, wenn ein Nutzer ein Maussymbol über ein Symbol für einen Gerätetreiber 408 bewegt, das in der Benutzerschnittstelle 400 angezeigt wird. Innerhalb des Pop-up-HTML-Fensters 406 können zusätzliche Informationen über die Gerätetreiber-Anwendung 408 angezeigt werden. Beispielsweise kann ein Feld 410 angeben, welche Version des Gerätetreibers das Icon darstellt (z. B. eine Business-/Corporate-Version einer persönlichen Version). Ein weiteres Feld 412 kann angeben, wie viele Nutzer den Gerätetreiber heruntergeladen und/oder installiert und/oder verwendet haben. Ein weiteres Feld 414 kann eine Beschreibung des Gerätetreibers anzeigen, das Zusatzinformationen im Titelfeld 416 anzeigt. Ein weiteres Feld 420 kann den Namen der Autors oder Entwicklers der Anwendung anzeigen.
  • Wie zu sehen in 4 kann eine Gerätetreiber-Anwendung oder Erweiterung in der Benutzerschnittstelle 400 als Ergebnis eines positiven Abgleichs zwischen der automatisch eingeleiteten Anfrage in Erwiderung auf den Anschluss des Hardware-Geräts an das Computergerät angezeigt werden. Zum Beispiel kann zusätzlich zu einem Icon für die Gerätetreiber-Anwendung 408, die von einem autorisierten Hersteller bereitgestellt wird (z. B. dem Hersteller des Hardware-Geräts) und die für persönliche Anwendungen des Hardware-Geräts verwendet wird, ein Icon für einen zweiten Gerätetreiber 428 und ein Icon für einen dritten Gerätetreiber 438 in der Benutzerschnittstelle angezeigt werden. Der zweite Gerätetreiber kann zum Beispiel einen Gerätetreiber darstellen, der vom autorisierten Hersteller angeboten wird und für Business- oder Corporate-Anwendungen des Hardware-Geräts verwendet wird, und der dritte Gerätetreiber 438 kann einen Gerätetreiber darstellen, der von einem Dritten entwickelt wurde, der nicht mit dem autorisierten Hersteller in Verbindung steht. In manchen Implementierungen kann der Markt auf eine automatisch generierte Anfrage hin, die vom Anschluss der Hardware-Geräts an das Computergerät herrührt, nur zur Anzeige von Icons für Gerätetreiber konfiguriert sein, die von einem autorisierten Hersteller des Hardware-Geräts entwickelt oder ausdrücklich genehmigt wurden, mit dem der Gerätetreiber verwendet werden soll. So kann ein Nutzer, der das Hardware-Gerät an ein Computergerät anschließt, nur Gerätetreiber sehen, die vom Originalhersteller entwickelt oder genehmigt wurden, während Gerätetreiber von Dritten im Markt bereitgestellt werden können für Nutzer, die mittels einer manuell generierten Anfrage danach suchen. Die Gerätetreiber-Anwendungen können in einem Ordner, Tab, Fenster usw. angezeigt werden, die mit der Überschrift „Gerätetreiber” 440 ausgewiesen sind, während andere Anwendungen in anderen Ordnern, Tabs, Fenstern usw. angezeigt werden.
  • Wenn ein Nutzer eines der Icons 408, 428, 438 eines Gerätetreibers auswählt, das in der Benutzerschnittstelle 400 dargestellt wird, kann der Gerätetreiber vom Markt heruntergeladen, auf dem Computergerät des Nutzers installiert und gestartet werden, um dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und dem Computergerät zu sorgen.
  • Neben der automatischen Ausweisung von Anwendungen auf Kernelebene, die für dedizierte Kommunikationsdienste zwischen Hardware-Geräten und Betriebssystemen auf Computergeräten sorgen, können die hierin beschriebenen Techniken zur automatischen Ausweisung von Anwendungen auf Nutzerebene verwendet werden, die zur Verwendung mit bestimmten Hardware-Geräten gedacht sind, die mit einem Computergerät verbunden werden, wenn die Anwendungen auf Nutzerebene vom Computergerät ausgeführt werden. Solche Anwendungen auf Nutzerebene können spezialisierte Anwendungen bereitstellen, die Informationen von Hardware-Geräten erhalten, verarbeiten, handhaben, anzeigen usw. oder an diese übertragen. Beispielsweise können Anwendungen auf Nutzerebene, die zur Verwendung mit einem GPS-Hardware-Gerät gedacht sind, die mit einem Computergerät verbunden sind, folgendes umfassen: eine Seenavigationsanwendung, die Standortdaten vom GPS-Gerät empfängt und diese in einer Seekarte anzeigt, sodass der Nutzer bequem die genauen Standortdaten vom GPS-Gerät auf einer Seekarte einsehen kann; eine Reiseplanungsanwendung, die Strecken zwischen einer Vielzahl von Orten, schnellste und kürzeste Strecken zwischen den Standorten bestimmt (das „Problem von Handelsreisenden”) und die bestimmten Strecken an das GPS-System überträgt, um sie dann einem Nutzer anzuzeigen; und eine Fitness-Tracking-Anwendung, die Standortdaten vom GPS-System über Entfernungen und Zeiten des Trainings eines Nutzers empfängt (z. B. Laufen, Radfahren usw.) und die Daten zur Bestimmung von Informationen analysiert, wie beispielsweise verbrauchte Kalorien, Verbesserung der Fitness im Laufe der Zeit usw.
  • Entwickler von Anwendungen auf Nutzerebene, die zur Verwendung mit einem oder mehr bestimmten Hardware-Geräten gedacht sind, können das/die bestimmte(n) Hardware-Gerät(e) in Metadaten im Zusammenhang mit den Anwendungen ausweisen. Beispielsweise können die bestimmten Hardware-Geräte durch ihre UUID (bei Geräten mit Bluetooth-Anschluss) oder ihre Hersteller- und Produkt-ID (bei Geräten mit USB-Anschluss) ausgewiesen werden. Dann kann auf Anschluss eines Hardware-Geräts an ein Computergerät automatisch eine Suche nach Anwendungen auf Nutzerebene eingeleitet werden, welche die Hardware-Geräte als eines ausweisen, das zur Verwendung mit den Anwendungen gedacht ist. Die automatische Suche kann über den gepflegten Datenspeicher 132 erfolgen, auf dem Anwendungen gehostet werden, einschließlich gerätespezifische Anwendungen, die zur Installation und Verwendung auf einem Computergerät genehmigt wurden. Die Suchergebnisse können einem Benutzer auf dem Computergerät präsentiert werden, der dann eine oder mehr Anwendungen auf Nutzerebene für das Hardware-Gerät auf dem Computergerät zur Installation auswählen kann.
  • Anwendungen auf Nutzerebene, die auf eine automatisch eingeleitete Suche ausgewiesen werden, die auf Anschluss eines Hardware-Geräts an ein Computergeräts gestartet wird, können zusammen mit oder an Stelle von Gerätetreiber-Anwendungen angezeigt werden, welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und dem Computergerät sorgen. In einer Implementierung können beispielsweise in der Benutzerschnittstelle 400 Apps auf Nutzerebene bei Auswahl des Links „Nutzer-Apps” 442 angezeigt werden, während Gerätetreiber-Apps angezeigt werden, wenn der Link „Gerätetreiber-Apps” ausgewählt wird. Ein Nutzer kann eine Anwendung auf Nutzerebene aus der Liste der automatisch angezeigten Anwendungen auswählen, und daraufhin kann die Anwendung auf dem Computergerät des Nutzers installiert werden.
  • Um eine Überlastung des Nutzers mit zu vielen vorgeschlagenen Anwendungen zu vermeiden, können Anwendungen auf Nutzerebene, die auf Anschluss des Hardware-Geräts an das Computergerät hin, nicht jedes Mal angezeigt werden, dass das Hardware-Gerät an das Computergerät angeschlossen wird. Die vorgeschlagenen Anwendungen können zum Beispiel nur beim ersten Mal angezeigt werden, dass das Hardware-Gerät an das Computergerät angeschlossen wird, nur wenn ein Hinweis eingeht, dass auf dem Computergerät keine Gerätetreiber-Anwendung installiert ist, die für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und dem Betriebssystem auf dem Computergerät sorgt usw.
  • 5 ist ein Flussdiagramm eines Prozesses zur automatischen Ausweisung gerätespezifischer Anwendungen, welche für dedizierte Kommunikationsdienste zwischen einem Hardware- und einem Computergerät sorgen. Die Schritte im Zusammenhang mit 5 können automatisch von einem Nutzergerät ausgeführt werden. In anderen Worten können die Schritte in 5 als Hintergrundprozess ohne Interaktion mit einem Nutzer am Nutzergerät erfolgen. Wie in 5 als erster Hinweis, dass ein Hardware-Gerät an das Computergerät angeschlossen wurde, eingehen (505). Beispielsweise kann in einer Implementierung ein Hardwareinterrupt vom Hardware-Gerät am Computergerät eingehen. Ein zweiter Hinweis, dass auf dem Computergerät keine gerätespezifische Anwendung installiert ist, welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt, geht ein (510). Zum Beispiel kann ein Betriebssystem auf einem Computergerät lokal auf dem Gerät selbst nach einer solchen gerätespezifischen Anwendung suchen und mangels eines Fundes einen Hinweis darüber an das Betriebssystem senden. In Erwiderung auf den ersten und zweiten Hinweis wird eine Datenbank mit Anwendungen für gerätespezifische Anwendungen automatisch durchsucht, die für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät (515) sorgen. Beispielsweise kann das Computergerät automatisch eine solche Anfrage generieren und an die Datenbank übermitteln. Dann werden eine oder mehr Anwendungen aus der Datenbank, welche die Anfragen erfüllen (520), einem Nutzer angezeigt.
  • 6 ist ein Flussdiagramm eines Prozesses zur automatischen Ausweisung gerätespezifischer Anwendungen, welche für dedizierte Kommunikationsdienste zwischen einem Hardware- und einem Computergerät sorgen. Wie in 6, gerätespezifische Anwendungen zur Aufnahme in eine Anwendungsdatenbank werden empfangen, wobei die gerätespezifischen Anwendungen für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und dem daran angeschlossenen Computergerät sorgen (605). Die Anwendungen sind im Anwendungsindex aufgeführt, die in der Datenbank bereitstehen (610). Nachdem der Index erstellt wurde, geht eine Anfrage nach einer oder mehr gerätespezifischen Anwendungen, die für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit verbundenen Computergerät und einem Betriebssystem auf diesem sorgen, auf dem Computergerät ein, das mit der Datenbank über das Internet verbunden ist, wobei die Anfrage automatisch vom Computergerät an die Datenbank gesendet wird, wenn das Hardware-Gerät mit dem Computergerät verbunden wird (615). Die Anfrage wird gegen den Index ausgeführt (620). Auf die Anfrage hin werden Hinweise auf eine oder mehr Anwendungen zurückgegeben, welche die Anfrage erfüllen, und dem Nutzer des Computergeräts präsentiert (625).
  • 7 ist ein Flussdiagramm eines Prozesses zur automatischen Ausweisung von Anwendungen auf Nutzerebene, welche zur Verwendung mit einem bestimmten Hardware-Gerät gedacht sind, wenn dieses mit einem Computergerät verbunden wird. Wie in 7 als Hinweis, dass ein Hardware-Gerät an das Computergerät angeschlossen wurde, eingehen (705). In Erwiderung auf den eingehenden Hinweis wird in einer Anwendungsdatenbank automatisch nach Anwendungen auf Nutzerebene gesucht, welche zur Verwendung mit dem Hardware-Gerät gedacht sind, wenn das Hardware-Gerät mit einem Computergerät verbunden wird (710). Eine oder mehr Anwendungen aus der Datenbank werden einem Nutzer angezeigt, welche die Anfragen erfüllen (715).
  • 8 zeigt ein Beispiel eines generischen Computergeräts 800 und eines mobilen Computergeräts 850, die mit den hier genannten Techniken verwendet werden können. Computergerät 800 soll verschiedene Formen von Digitalcomputern darstellen, zum Beispiel Laptops, Desktops, Workstations, Personal Digital Assistants, Server, Blade Server, Mainframes und andere geeignete Computer. Computergerät 850 soll verschiedene Formen mobiler Geräte, wie Personal Digital Assistants, Mobiltelefone, Smartphones und andere ähnliche Computergeräte, darstellen. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur exemplarisch sein und sollen Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen nicht einschränken. Jedes der Computergeräte 800 und 850 kann als Computergerät 104 dienen, das mit einem Hardware-Gerät 102 verbunden wird.
  • Das Computergerät 800 beinhaltet einen Prozessor 802, einen Speicher 804, ein Speichergerät 806, eine High-Speed-Schnittstelle 808, die mit dem Speicher 804 und -Erweiterungsanschlüssen 810 verbunden wird, und eine Low-Speed-Schnittstelle 812, die mit einem Low-Speed-Bus 814 und dem Speichergerät 806 verbunden wird. Alle der Komponenten 802, 804, 806, 808, 810 und 812 sind mithilfe verschiedener Busse miteinander verbunden und können an einer gemeinsamen Hauptplatine oder auf andere Weise, wie geeignet, angebracht sein. Der Prozessor 802 kann Anweisungen zur Ausführung innerhalb des Computergeräts 800 verarbeiten, die Anweisungen beinhalten, die in dem Speicher 804 oder auf der Speichervorrichtung 806 gespeichert sind, um grafische Informationen für ein GUI auf einer externen Eingabe-/Ausgabevorrichtung, wie Anzeige 816, die mit High-Speed-Schnittstelle 808 verbunden ist, anzuzeigen. In anderen Implementierungen können mehrere Prozessoren und/oder mehrere Busse verwendet sein, wie angemessen, zusammen mit mehreren Speichern und Speichertypen. Es können auch mehrere Computergeräte 800 verbunden sind, wobei jedes Gerät Teile der notwendigen Vorgänge bereitstellt (z. B. als eine Serverbank, eine Gruppe von Blade-Servern oder ein Mehrprozessorsystem).
  • Der Speicher 804 zeichnet Informationen im Computergerät 800 auf. In einer Implementierung ist der Speicher 804 aus einer flüchtigen Speichereinheit oder -einheiten ausgebildet. In anderen Implementierungen ist der Speicher 804 aus einer nichtflüchtigen Speichereinheit oder -einheiten ausgebildet. Der Speicher 804 kann auch eine andere Form von computerlesbarem Medium sein, zum Beispiel ein magnetischer oder optischer Datenträger.
  • Das Speichergerät 806 ist dazu geeignet, Massenspeicherung für das Computergerät 800 bereitzustellen. In einer Implementierung kann das Speichergerät 806 ein computerlesbares Medium sein oder beinhalten, wie ein Floppy-Disk-Laufwerk, ein Festplattenlaufwerk, ein Optikplattenlaufwerk, ein Magnetbandlaufwerk, ein Flash-Speicher oder anderes ähnliches Solid-State-Speichergerät oder eine Reihe anderer Geräte, sein, einschließlich Geräten in einem Speichernetzwerk oder anderer Konfigurationen. Ein Computerprogrammprodukt kann konkret in einem Informationsträger ausgeführt sein. Das Computerprogrammprodukt kann auch Anweisungen enthalten, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren ausführen, wie die oben beschriebenen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium wie der Speicher 804, die Speichervorrichtung 806 oder Speicher auf einem Prozessor 802.
  • Der Hochgeschwindigkeits-Controller 808 verwaltet bandbreitenintensive Vorgänge für das Computergerät 800, während der Low Speed-Controller 812 niedrigere bandbreitenintensive Vorgänge verwaltet. Eine solche Zuordnung von Funktionen ist nur exemplarisch. In einer Implementierung ist die Hochgeschwindigkeitssteuerung 808 mit Speicher 804, Anzeige 816 (z. B. über einen Grafikprozessor oder -beschleuniger) und mit den Hochgeschwindigkeits-Erweiterungsanschlüssen 810, die verschiedene Erweiterungskarten (nicht gezeigt) akzeptieren können, verbunden. In der Implementierung wird der Low Speed-Controller 812 mit dem Speichergerät 806 und dem Low Speed-Erweiterungsanschluss 814 gekoppelt. Der langsame Erweiterungsanschluss 814, der verschiedene Kommunikationsanschlüsse (z. B. USB) beinhalten kann, kann an ein oder mehrere Eingabe-/Ausgabe-Geräte, wie eine Tastatur 823, ein Zeigegerät 821, einen Scanner 817 oder einen Drucker gekoppelt sein. Beispielsweise kann der Erweiterungsanschluss 814 an externe Geräte 817, 819, 821 über eine kabelgebundene Verbindung gekoppelt sein (z. B. über USB), und der Erweiterungsanschluss kann über eine Antenne 815 an ein externes Gerät 823 über eine kabellose Verbindung gekoppelt sein (z. B. über Bluetooth). Zusätzlich zu den Geräten 817, 819, 821, 823, die in 8 dargestellt sind, kann das Computergerät 800 an andere Geräte gekoppelt sein, entweder über kabelgebundene oder kabellose Verbindungen oder beide, wie Hardware-Geräte, für die eine gerätespezifische Anwendung auf dem Computergerät installiert sein muss, um für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät zu sorgen.
  • Das Computergerät 800 kann in einer Reihe verschiedener Formen implementiert werden, wie in der Figur dargestellt. So kann es beispielsweise als ein Standardserver 820 oder mehrfach in einer Gruppe solcher Server implementiert sein. Es kann außerdem als Teil eines Rack-Serversystems 824 implementiert sein. Zusätzlich kann es in einem Personal Computer wie einem Laptop-Computer 822 implementiert sein. Alternativ können Komponenten von Computergerät 800 mit anderen Komponenten in einem mobilen Gerät kombiniert sein (nicht dargestellt), z. B. Gerät 850. Jedes solcher Geräte kann eines oder mehrere von den Computergeräten 800, 850 enthalten und ein gesamtes System kann aus mehreren Computergeräten 800, 850 bestehen, die miteinander kommunizieren.
  • Das Computergerät 850 beinhaltet einen Prozessor 852, Speicher 864, ein Eingabe-/Ausgabegerät, wie etwa eine Anzeige 854, eine Kommunikationsschnittstelle 866 und einen Sende-Empfänger 868, neben anderen Komponenten. Das Gerät 850 kann ebenfalls mit einer Speichervorrichtung z. B. einem Microdrive oder einem anderen Gerät ausgestattet werden, um zusätzlichen Speicher bereitzustellen. Jede der Komponenten 850, 852, 864, 854, 866 und 868 ist unter Verwendung verschiedener Busse miteinander verbunden, und mehrere der Komponenten können auf einem gängigen Motherboard oder gegebenenfalls in anderer Weise angebracht sein.
  • Der Prozessor 852 kann Anweisungen im Computergerät 850 ausführen, darunter sind Anweisungen enthalten, die in Speicher 864 gespeichert sind. Der Prozessor kann als ein Chipsatz von Chips implementiert werden, die separate und mehrere analoge und digitale Prozessoren beinhalten. Der Prozessor kann beispielsweise zur Koordinierung der anderen Komponenten des Geräts 850, wie etwa Steuerung von Benutzeroberflächen, Anwendungen, die von Gerät 850 ausgeführt werden, und drahtlose Kommunikation durch Gerät 850 bereitstellen.
  • Prozessor 852 kann mit einem Benutzer über die Steuerschnittstelle 858 und die Displayschnittstelle 856 kommunizieren, die mit einem Display 854 gekoppelt ist. Die Anzeige 854 kann zum Beispiel eine TFT-LCD-(Thin-Film-Transistor Liquid Crystal Display) oder eine OLED-Anzeige (organische Leuchtdiode) oder eine andere angemessene Anzeigetechnologie sein. Die Anzeigeschnittstelle 856 kann angemessene Verschaltung zum Treiben der Anzeige 854 umfassen, um einem Benutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 858 kann Befehle von einem Benutzer empfangen und sie zur Abgabe an den Prozessor 852 konvertieren. Zusätzlich kann eine externe Schnittstelle 862 in Verbindung mit Prozessor 852 bereitgestellt sein, um Nahbereichskommunikation von Vorrichtung 850 mit anderen Vorrichtungen zu ermöglichen. Die externe Schnittstelle 862 kann beispielsweise in manchen Implementierungen eine drahtgestützte Verbindung oder in anderen Implementierungen eine drahtlose Verbindung aufbauen, und es können auch mehrere Schnittstellen zur Anwendung kommen.
  • Der Speicher 864 zeichnet Informationen im Computergerät 850 auf. Der Speicher 864 kann als ein computerlesbares Medium bzw. als eines von mehreren computerlesbaren Medien, als flüchtige Speichereinheit bzw. als flüchtige Speichereinheiten oder als eine nicht-flüchtige Speichereinheit bzw. als nicht-flüchtige Speichereinheiten implementiert werden. Erweiterungsspeicher 874 kann ebenfalls bereitgestellt und mit dem Gerät 850 über Erweiterungsschnittstelle 872 verbunden werden, die zum Beispiel eine SIMM(Single In Line Memory Module)-Kartenschnittstelle umfassen kann. Ein solcher Erweiterungsspeicher 874 kann zusätzlichen Speicherplatz für Gerät 850 bereitstellen oder kann auch Anwendungen oder andere Informationen für Gerät 850 speichern. Insbesondere kann Erweiterungsspeicher 874 Anweisungen zum Ausführen oder Ergänzen der oben beschriebenen Prozesse enthalten und er kann außerdem sichere Informationen enthalten. Demnach kann Erweiterungsspeicher 874 beispielsweise als ein Sicherheitsmodul für Gerät 850 bereitgestellt sein und kann mit Anweisungen programmiert sein, die eine sichere Benutzung von Gerät 850 ermöglichen. Zusätzlich dazu können über die SIMM-Cards sichere Anwendungen bereitgestellt werden, zusammen mit zusätzlichen Informationen, wie dem Ablegen von Identifizierungsinformationen auf der SIMM-Card auf eine Weise, die nicht gehackt werden kann.
  • Der Speicher kann beispielsweise Flash Speicher und/oder NVRAM-Speicher enthalten, wie nachstehend erörtert. In einer Implementierung, ist ein Computerprogrammprodukt konkret in einem Informationsträger ausgeführt. Das Computerprogrammprodukt enthält Anweisungen, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren ausführen, wie die oben beschriebenen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium, wie der Speicher 864, die Speichererweiterung 874 oder der Speicher in Prozessor 852, zu empfangen, zum Beispiel, über den Sender-Empfänger 868 oder die externe Schnittstelle 862.
  • Das Gerät 850 kann drahtlos über die Verbindungsschnittstelle 866 kommunizieren, die digitale Signalverarbeitungsschaltkreise, wo diese erforderlich sind, beinhalten kann. Die Verbindungsschnittstelle 866 kann Verbindungen mit verschiedenen Kommunikationstypen oder -protokollen aufbauen, darunter GSM-Sprachanrufe, SMS, EMS, oder MMS-Messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 oder GPRS unter anderen. Solche Kommunikation kann beispielsweise durch Funkfrequenz-Sender-Empfänger 868 stattfinden. Zusätzlich kann eine Kurzstreckenkommunikation stattfinden, wie unter Verwendung eines BLUETOOTH-, WLAN- oder anderen solchen Sende-Empfängern (nicht gezeigt). Außerdem kann GPS(Global Positioning System)-Empfängermodul 860 zusätzliche mit der Navigation und dem Ort verbundene drahtlose Daten für Gerät 850 bereitstellen, die ggf. von Anwendungen verwendet werden können, die auf Gerät 850 ausgeführt werden.
  • Das Gerät 850 kann auch akustisch kommunizieren, indem es Audio-Codec 860 nutzt, das gesprochene Informationen von einem Benutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann. Audio-Codec 860 kann ebenfalls akustische Töne für einen Benutzer erzeugen, zum Beispiel durch einen Lautsprecher zum Beispiel in einem Handgerät von Gerät 850. Diese Töne können Töne von Sprachtelefonanrufen beinhalten, können aufgezeichnete Töne (z. B. Sprachnachrichten, Musikdateien usw.) beinhalten und können auch Töne beinhalten, die von laufenden Anwendungen auf Gerät 850 erstellt wurden.
  • Das Computergerät 850 kann in einer Reihe verschiedener Formen implementiert werden, wie in der Figur dargestellt. Zum Beispiel kann es als Mobiltelefon 880 implementiert werden. Es kann außerdem als Teil eines Smartphones 882, Personal Digital Assistant oder eines anderen ähnlichen mobilen Geräts implementiert werden.
  • Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitalen elektronischen Schaltkreisen, integrierten Schaltkreisen, speziell konzipierten ASICs (anwendungsorientierten integrierten Schaltkreisen), Computerhardware, Firmware, Software und/oder Kombinationen davon realisiert werden. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der ein spezieller Prozessor oder ein Prozessor für allgemeine Zwecke sein kann, und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Anweisungen an ein Speichersystem, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung gekoppelt ist.
  • Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) beinhalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache, und/oder in Assembler-/Maschinensprache implementiert werden. Wie hier verwendet, bezeichnen die Begriffe „maschinenlesbares Medium”, „computerlesbares Medium” ein beliebiges Computerprogrammprodukt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Begriff „maschinenlesbares Signal” bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenbefehle und/oder Daten bereitzustellen.
  • Zum Bereitstellen von Interaktion mit einem Benutzer, können die hier beschriebenen Systeme und Techniken auf einem Computer mit einem Anzeigegerät (zum Beispiel ein CRT-(Kathodenstrahlröhre) oder ein LCD-(Flüssigkristallanzeige)Monitor) implementiert werden, um Informationen für den Benutzer anzuzeigen und eine Tastatur und ein Pointergerät (zum Beispiel eine Maus oder ein Trackball), mit denen der Benutzer Eingaben in den Computer vornehmen kann. Andere Arten von Geräten können auch verwendet werden, um eine Interaktion mit einem Benutzer bereitzustellen; zum Beispiel kann eine dem Benutzer bereitgestellte Rückmeldung irgendeine Form von Sinnesrückmeldung sein (z. B. visuelle Rückmeldung, auditive Rückmeldung oder Tastrückmeldung); und eine Eingabe vom Benutzer kann in einer beliebigen Form empfangen werden, einschließlich akustischer, Sprach- oder Tasteingaben.
  • Die hierin beschriebenen Systeme und Techniken können in ein Computersystem implementiert werden, das eine Back-End-Komponente beinhaltet (zum Beispiel als Datenserver) oder das eine Middleware-Komponente beinhaltet (zum Beispiel einen Anwendungsserver) oder das eine Front-End-Komponente beinhaltet (zum Beispiel ein Client-Computer mit einer grafischen Benutzeroberfläche oder ein Webbrowser, über den ein Benutzer mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann) oder eine Kombination derartiger Back-End-, Middleware- oder Front-End-Komponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium von digitaler Datenkommunikation (z. B. ein Kommunikationsnetzwerk) miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN”), ein Fernnetz („WAN”) und das Internet.
  • Das Computersystem kann Clients und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern laufen und die eine Client-Server-Beziehung zueinander haben.
  • Es wurde eine Anzahl an Implementierungen beschrieben. Dennoch ist selbstverständlich, dass verschiedene Modifizierungen vorgenommen werden können.
  • Außerdem erfordern die in den Figuren dargestellten logischen Abläufe nicht die bestimmte dargestellte Reihenfolge oder sequenzielle Reihenfolge. Darüber hinaus können andere Schritte vorgesehen oder Schritte aus den beschriebenen Abläufen eliminiert werden und andere Komponenten können zu den beschriebenen Systemen hinzugefügt werden oder von diesen entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.

Claims (20)

  1. Computerprogramm, umfassend: das Empfangen eines ersten Hinweises, dass ein Hardware-Gerät an das Computergerät angeschlossen wurde; das Empfangen eines zweiten Hinweises, dass auf dem Computergerät keine gerätespezifische Anwendung installiert ist, welche für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt; das automatische Abfragen, in Erwiderung auf den ersten und zweiten Hinweis, einer Datenbank mit Anwendungen für gerätespezifische Anwendungen, die für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgt; und das Anzeigen einer oder mehr Anwendungen aus der Datenbank, welche die Anfrage erfüllen, werden einem Nutzer angezeigt.
  2. Computerprogramm nach Anspruch 1, des Weiteren umfassend: das Empfangen einer Auswahl eines oder mehr angezeigter Anwendungen; und das Installieren der einen ausgewählten der angezeigten Anwendungen.
  3. Computerprogramm nach Anspruch 2, worin durch Installation einer der angezeigten Anwendungen diese auf dem Computergerät gestartet werden kann und die Kommunikation zwischen dem Gerät und dem Betriebssystem durch die gestartete Anwendung beginnt.
  4. Computerprogramm nach irgendeinem der vorgehenden Ansprüche, worin unter den ersten Hinweis, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, Informationen über den Hersteller des Geräts fallen können und die Anfrage zumindest teilweise auf den Informationen über den Hersteller beruhen kann.
  5. Computerprogramm nach irgendeinem der vorgehenden Ansprüche, worin unter den ersten Hinweis, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, der Eingang einer Produkt-ID des Geräts fallen können und worin die Anfrage zumindest teilweise auf Produkt-ID beruhen kann.
  6. Computerprogramm nach irgendeinem der vorgehenden Ansprüche, worin das Gerät mit dem Computergerät über USB verbunden werden kann und unter den Eingang des ersten Hinweises, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, eine Gerätebeschreibung fallen kann, welche das Gerät ausweist, und die Anfrage zumindest teilweise auf den Informationen in der Gerätebeschreibung beruhen kann.
  7. Computerprogramm nach irgendeinem der vorgehenden Ansprüche, worin das Gerät mit dem Computergerät über Bluetooth verbunden werden kann und unter den Eingang des ersten Hinweises, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, eine UUID fallen kann, welche das Gerät ausweist, und die Anfrage zumindest teilweise auf den Informationen in der UUID beruhen kann.
  8. Computerprogramm nach irgendeinem der vorgehenden Ansprüche, worin die Datenbank einen Index mit Metadaten-Informationen über die Anwendungen in der Datenbank enthalten kann und eine Anfrage an die Datenbank die Durchsuchung des Indexes nach einem oder mehr Suchbegriffen umfassen kann, welche das Gerät beschreiben, die gegen den Index verglichen werden.
  9. Computerprogramm nach Anspruch 8, worin Begriffe aus dem Index auf Begriffen beruhen, die in Manifesten von Anwendungen in der Datenbank gefunden wurden.
  10. Computerprogramm, umfassend: das Empfangen gerätespezifischer Anwendungen zur Aufnahme in einer Anwendungsdatenbank, worin die gerätespezifischen Anwendungen für dedizierte Kommunikationsdienste zwischen dem Hardware-Gerät und einem Betriebssystem auf dem Computergerät sorgen; das Indizieren der Anwendungen in einem Anwendungsindex, die in der Datenbank bereitstehen; das Empfangen einer Anfrage nach einer oder mehr gerätespezifischen Anwendungen, die für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit verbundenen Computergerät und einem Betriebssystem auf diesem sorgen, auf dem Computergerät, das mit der Datenbank über das Internet verbunden ist, wobei die Anfrage automatisch vom Computergerät an die Datenbank gesendet wird, wenn das Hardware-Gerät mit dem Computergerät verbunden wird; das Ausführen der Anfrage gegen den Index; und das Bereitstellen, auf die Anfrage hin, von Hinweisen auf eine oder mehr Anwendungen, welche die Anfrage erfüllen, und dem Nutzer des Computergeräts präsentiert.
  11. Computerprogramm nach Anspruch 10, worin unter die Hinweise auf eine oder mehr Anwendungen, welche die Anfragen erfüllen, Nachweise nur für Anwendungen fallen, welche die Anfrage erfüllen und als mit einem Entwickler für ein Hardware-Gerät in Verbindung stehend genehmigt verifiziert wurden.
  12. Computerprogramm nach Anspruch 10, worin unter den Index der Anwendungen Anwendungen fallen, die auf den Informationen in Anwendungsverzeichnissen beruhen.
  13. Computerprogramm nach Anspruch 12, worin Informationen in einem Anwendungsverzeichnis, welche für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit mit Bluetooth verbundenen Computergerät und einem Betriebssystem auf diesem sorgen, eine UUID für das Hardware-Gerät umfassen können.
  14. Computerprogramm nach Anspruch 12, worin Informationen in einem Anwendungsverzeichnis, welche für dedizierte Kommunikationsdienste zwischen einem Hardware-Gerät und einem damit mit USB verbundenen Computergerät und einem Betriebssystem auf diesem sorgen, eine Geräteschreibungs-ID für das Hardware-Gerät umfassen.
  15. Computerprogramm nach einem der Ansprüche 10–14, weiterhin umfassend: das Empfangen einer Auswahl einer der Anwendungen, welche die Anfrage erfüllt; und in Erwiderung auf das Empfangen der Auswahl das Installieren der gewählten Anwendung auf dem Computergerät.
  16. Computerprogramm nach irgendeinem der Ansprüche 10–15, worin das Gerät mit dem Computergerät über USB verbunden sein kann, und worin die Anfrage zumindest teilweise auf den Informationen in einer Gerätebeschreibung beruht, welche das Gerät ausweist.
  17. Computerprogramm nach einem der Ansprüche 10–16, worin das Gerät mit dem Computergerät über Bluetooth verbunden sein kann, und worin die Anfrage zumindest teilweise auf den Informationen in einer UUID beruht, welche das Gerät ausweist.
  18. Computerprogramm, umfassend: das Empfangen eines Hinweises, dass ein Hardware-Gerät an das Computergerät angeschlossen wurde; in Erwiderung auf den eingehenden Hinweis das automatische Abfragen von Anwendungen auf Nutzerebene in einer Anwendungsdatenbank, welche zur Verwendung mit dem Hardware-Gerät gedacht sind, wenn das Hardware-Gerät mit einem Computergerät verbunden wird; und das Anzeigen einer oder mehr Anwendungen aus der Datenbank, welche die Anfrage erfüllen, werden einem Nutzer angezeigt.
  19. Computerprogramm nach Anspruch 18, weiterhin Folgendes umfassend: das Empfangen einer Auswahl eines oder mehr angezeigter Anwendungen; und das Installieren der einen ausgewählten der angezeigten Anwendungen.
  20. Computerprogramm nach Anspruch 18, worin das Gerät mit dem Computergerät über USB verbunden werden kann und unter den Eingang des Hinweises, dass ein Hardware-Gerät mit einem Computergerät verbunden wurde, eine Gerätebeschreibung fällt, welche das Gerät ausweist, und die Anfrage zumindest teilweise auf den Informationen in der Gerätebeschreibung beruht.
DE202015009270.5U 2014-05-21 2015-05-21 Automatische Ermittlung und Installation von Anwendungen über das Internet bei Koppelung von Hardware-Geräten mit Computergeräten Active DE202015009270U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/283,640 US20150339111A1 (en) 2014-05-21 2014-05-21 Automatic discovery and installation of applications via the internet in response to coupling of hardware device to computing device
US14/283,640 2014-05-21

Publications (1)

Publication Number Publication Date
DE202015009270U1 true DE202015009270U1 (de) 2017-01-20

Family

ID=53366284

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009270.5U Active DE202015009270U1 (de) 2014-05-21 2015-05-21 Automatische Ermittlung und Installation von Anwendungen über das Internet bei Koppelung von Hardware-Geräten mit Computergeräten

Country Status (3)

Country Link
US (1) US20150339111A1 (de)
DE (1) DE202015009270U1 (de)
WO (1) WO2015179647A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2528490A (en) 2014-07-24 2016-01-27 Ibm Identifying unmatched registry entries
US9485615B2 (en) * 2014-09-26 2016-11-01 At&T Intellectual Property I, L.P. Local peer-to-peer network for providing recommendations and enforcing security policies
JP2016177445A (ja) * 2015-03-19 2016-10-06 株式会社リコー 情報処理装置、プログラムおよび情報処理システム
US10042614B1 (en) 2017-03-29 2018-08-07 International Business Machines Corporation Hardware device based software generation
US10685294B2 (en) 2017-03-29 2020-06-16 International Business Machines Corporation Hardware device based software selection
US10101971B1 (en) * 2017-03-29 2018-10-16 International Business Machines Corporation Hardware device based software verification
US10417232B2 (en) * 2017-12-22 2019-09-17 Microsoft Technology Licensing, Llc Associating hardware to store applications
CN108647032B (zh) * 2018-03-29 2022-03-01 珠海市魅族科技有限公司 应用加载方法及装置、计算机装置和计算机可读存储介质
JP6787368B2 (ja) * 2018-06-22 2020-11-18 カシオ計算機株式会社 データ処理システム、サーバ装置、端末装置、データ処理方法及びプログラム
US11392362B2 (en) * 2020-07-31 2022-07-19 Jpmorgan Chase Bank, N.A. Cross platform configuration domain translation

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870610A (en) * 1996-06-28 1999-02-09 Siemens Business Communication Systems, Inc. Autoconfigurable method and system having automated downloading
WO2002067483A2 (en) * 2000-10-27 2002-08-29 Softconnex Technologies Automatic embedded host configuration system and method
US7164907B2 (en) * 2004-01-13 2007-01-16 Qualcomm Inc. Automated over the air plug-in device recognition and software driver download
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US20070101342A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Automated device driver management
US7748609B2 (en) * 2007-08-31 2010-07-06 Gemalto Inc. System and method for browser based access to smart cards
NO2404428T3 (de) * 2009-03-06 2018-04-14
US20120278796A1 (en) * 2011-04-26 2012-11-01 Microsoft Corporation Automatically installing device drivers
WO2012154856A1 (en) * 2011-05-09 2012-11-15 Google Inc. Identifying applications of interest based on application metadata

Also Published As

Publication number Publication date
US20150339111A1 (en) 2015-11-26
WO2015179647A1 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
DE202015009270U1 (de) Automatische Ermittlung und Installation von Anwendungen über das Internet bei Koppelung von Hardware-Geräten mit Computergeräten
DE102016125508B4 (de) Auffindbarkeitssystem für Sprachaktionen
DE202016107435U1 (de) Systeme für die Benachrichtigung von Benutzern über Änderungen an Dateien in cloudbasierten Dateispeichersystemen
US10725610B2 (en) Customizing a tag cloud
US20170300597A1 (en) Data feeds with peripherally presented interesting content
US9058409B2 (en) Contextual data visualization
DE102012203763A1 (de) Intelligente Lieferung und Erwerb von digitalen Gütern
US20180321825A1 (en) System and Method for Arranging Application Icons on a Mobile Device
DE102013204051A1 (de) Dynamische Aktualisierung von Inhalten auf der Grundlage von Benutzeraktivitäten
US11023548B2 (en) Faceted searching of resources via a web application
DE202016107146U1 (de) Benutzerschnittstellen, die das Formatierungsmanagement von digitalem Inhalt erleichtern
US10402462B2 (en) Robust filters for social networking environments
US20130127920A1 (en) Focusing on Contextually-Relevant Content
DE202014010906U1 (de) Vorrichtung für zweidimensionale Dokumentennavigation
DE112015005186T5 (de) Strukturierte Entitätsinformationsseite
DE112016002384T5 (de) Hilfsschicht mit automatisierter Extraktion
DE102016205009A1 (de) Intelligente interaktive Bildschirmaufnahme
DE202017104855U1 (de) Animieren eines Bildes zum Anzeigen, dass das Bild verschiebbar ist
DE212017000297U1 (de) Erzeugen von Deeplinks für Anwendungen auf Basis von mehrstufigen Verweisdaten
US20120221947A1 (en) Information processing apparatus and method
DE112015005293T5 (de) Präsentation von Informationskarten für Ereignisse, die mit Entitäten verbunden sind
US11449513B2 (en) Data analysis system
EP3289488B1 (de) Navigation mit kontextinformationen
US20130179824A1 (en) Tag-Based User Interface Management
US9830051B1 (en) Method and apparatus for presenting a breadcrumb trail for a collaborative session

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009445000

Ipc: G06F0008610000

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years