DE102008033004A1 - Vereinfachen einer dynamischen Konfiguration von Softwareprodukten - Google Patents

Vereinfachen einer dynamischen Konfiguration von Softwareprodukten Download PDF

Info

Publication number
DE102008033004A1
DE102008033004A1 DE102008033004A DE102008033004A DE102008033004A1 DE 102008033004 A1 DE102008033004 A1 DE 102008033004A1 DE 102008033004 A DE102008033004 A DE 102008033004A DE 102008033004 A DE102008033004 A DE 102008033004A DE 102008033004 A1 DE102008033004 A1 DE 102008033004A1
Authority
DE
Germany
Prior art keywords
software
purchased
user
modules
functionalities
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.)
Pending
Application number
DE102008033004A
Other languages
English (en)
Inventor
David B. Mountain View DeGraaff
Andrew A. Mountain View Woods
Alvin Hsung-Un Redwood City Lee
Stephen L. Andover Molloy
Michael A. Mountain View Meagher
Hunter D. El Cajon Smith
Richard W. Tuscon Cook
Gaurav Mountain View Kotak
Lisa E. Knoxville Woods
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.)
Intuit Inc
Original Assignee
Intuit Inc
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 Intuit Inc filed Critical Intuit Inc
Publication of DE102008033004A1 publication Critical patent/DE102008033004A1/de
Pending legal-status Critical Current

Links

Classifications

    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Abstract

Ausführungsformen eines Systems sind beschrieben, welches Zugriff auf mindestens einen Teil eines Softwareprodukts bereitstellt. Während eines Betriebs empfängt dieses System Kaufinformation von einem ersten Ort, wobei die Kaufinformation Information über gekaufte Softwarefunktionalitäten umfasst, auf welche ein Benutzer Zugriff kaufte, und wobei die gekauften Softwarefunktionalitäten durch eine erste Untermenge von Modulen in dem Softwareprodukt bereitgestellt sind. Als Nächstes empfängt das System eine Zugriffsanfrage von einem zweiten Ort, von welchem aus auf das Softwareprodukt zugegriffen werden kann, wobei die Zugriffsanfrage einen Identifikator umfasst, welcher dem Benutzer bereitgestellt wurde, als der Benutzer Zugriff auf die gekauften Softwarefunktionalitäten kaufte. Als Nächstes stellt das System dem zweiten Ort Konfigurationsanweisungen bereit, wobei die Konfigurationsanweisungen die erste Untermenge von Modulen dynamisch freigeben.

Description

  • KREUZBEZUG AUF BEZOGENE ANMELDUNGEN
  • Diese Anmeldung ist eine teilweise Weiterführung (continuation-in-part) von der anhängigen US-Patentanmeldung mit Seriennummer 11/476,990, eingereicht am 27. Juni 2006 durch Erfinder Edmund Y. L. Sung, Timothy A. Rosemore, Jennifer Possin, Raymond S. Tenenbaum, und Stephen L. Molloy, mit Titel "Method and Apparatus for Authorizing a Software Product to be Used an a Computer System" (Anwaltsaktenzeichen INTU-060798), wobei die Inhalte dieser Anmeldung hierin durch Bezugnahme aufgenommen werden. Diese Anmeldung beansprucht dadurch Priorität unter 35 U. S. C. § 120 der oben aufgelisteten Vorgängerpatentanmeldung.
  • HINTERGRUND
  • Die vorliegende Erfindung betrifft Techniken zum dynamischen Konfigurieren von Softwareprodukten. Insbesondere betrifft die vorliegende Erfindung ein System, welches dynamisches Konfigurieren von Softwareprodukten erleichtert.
  • Während es im Online-Geschäft ein beträchtliches neuerliches Wachstum gegeben hat, bleiben körperliche Verkaufseinrichtungen ein wichtiger Verkaufskanal. Unglücklicherweise haben diese körperlichen Verkaufseinrichtungen inhärente Betriebskosten, welche Erlösmargen begrenzen können. Zum Beispiel führen viele Verkaufseinrichtungen ein diverses Sortiment von Produkten und halten große Inventare vor, um die Bedürfnisse von verschiedenen Verbrauchern zufrieden zu stellen. Das diverse Sortiment von Produkten und die großen Inventare erhöhen jedoch die Ausgaben, welche Führen einer Verkaufseinrichtung mit sich bringt, zum Beispiel durch Erfordern von mehr Ausstellungsraum.
  • Diese Probleme berühren auch Softwareprodukte. Insbesondere stellen viele Softwareverkäufer ein Sortiment von nahe verwandten Softwareprodukten in einer Produktfamilie bereit, welche verschiedene Funktionalitäten und Preispunkte haben, wie etwa Verbraucherversionen und professionelle Versionen von Steuervorbereitungssoftware. Typischerweise teilen die Softwareprodukte in diesen Produktfamilien mehrere Module. Wenn Änderungen an einem gegebenen Modul erforderlich sind, betreffen folglich diese Änderungen mehrere Softwareprodukte mit zugeordneten Wirkungen auf Testen und Verteilung.
  • Verkaufseinrichtungen führen typischerweise die verschiedenen Softwareprodukte in einer gegebenen Produktfamilie und stellen diese aus, was Anforderungen an wertvollen Regalraum oder Bodenfläche stellt, um dadurch die Größe der Verkaufseinrichtung zu erhöhen und Investitionsanforderungen signifikant zu erhöhen. Unglücklicherweise ist es oft schwierig, ein Inventar für solch ein breites Sortiment von Softwareprodukten geeignet handzuhaben. Folglich können Verkaufseinrichtungen zu wenig Inventar für populäre Softwareprodukte und zuviel Inventar für weniger populäre Softwareprodukte haben.
  • Außerdem bündeln Unternehmen typischerweise eine diskrete Menge von Funktionalitäten in jedes dieser Softwareprodukte in einer Bemühung, die Bedürfnisse einer spezifischen Gruppe von Verbrauchern zu erfüllen und die Softwarepro dukte voneinander abzuheben. Häufig kaufen Kunden jedoch ein gegebenes Softwareprodukt basierend auf einer kleinen Untermenge dieser Funktionalitäten und die übrigen Funktionalitäten haben geringen oder keinen erhöhten Wert für den Kunden. Außerdem erhöhen diese zusätzlichen Funktionalitäten oft die Komplexität der Benutzerschnittstellen in dem gegebenen Softwareprodukt und können daher die Gesamtbenutzererfahrung für das Softwareprodukt herabmindern.
  • Daher ist oft der Verkauf von Softwareprodukten durch Verkaufseinrichtungen durch die Notwendigkeit kompliziert, ein breites Sortiment von Softwareprodukten mit verschiedenen Mengen von festgelegten Funktionalitäten bereitzustellen.
  • ZUSAMMENFASSUNG
  • Eine Ausführungsform dieser Erfindung betrifft ein System, welches Zugriff auf mindestens einen Teil eines Softwareprodukts bereitstellt. Während eines Betriebs empfängt dieses System Kaufinformation von einem ersten Ort, wobei die Kaufinformation Information über gekaufte Softwarefunktionalitäten umfasst, auf welche ein Benutzer Zugriff kaufte, und wobei die gekauften Softwarefunktionalitäten durch eine erste Untermenge von Modulen in dem Softwareprodukt bereitgestellt sind. Als Nächstes empfängt das System eine Zugriffsanfrage von einem zweiten Ort, wobei die Zugriffsanfrage einen Identifikator umfasst, welcher dem Benutzer bereitgestellt wurde, als der Benutzer Zugriff auf die gekauften Softwarefunktionalitäten kaufte. Als Nächstes stellt das System dem zweiten Ort, von welchem aus auf das Softwareprodukt zugegriffen werden kann, Konfigurationsanweisungen bereit, wobei die Konfigurationsanweisungen die erste Untermenge der Module dynamisch freigeben.
  • In einigen Ausführungsformen umfassen die Konfigurationsanweisungen einen Entschlüsselungsschlüssel. Zum Beispiel kann der Entschlüsselungsschlüssel einen öffentlichen Schlüssel umfassen, welcher einem privaten Schlüssel zugeordnet ist, welcher benutzt wurde, um mindestens einen Teil des Softwareprodukts zu verschlüsseln.
  • In einigen Ausführungsformen erlaubt dynamisches Freigeben der ersten Untermenge von Modulen dem Benutzer, die gekauften Softwarefunktionalitäten zu benutzen: Ohne einen Teil des Softwareprodukts neu zu installieren; ohne einen Computer neu zu starten, auf welchem das Softwareprodukt installiert ist; und/oder ohne einen anderen Teil des Softwareprodukts zu installieren. Außerdem erlaubt in einigen Ausführungsformen dynamisches Freigeben der ersten Untermenge von Modulen dem Benutzer, die gekauften Softwarefunktionalitäten zu benutzen, ohne zusätzliche Module herunterzuladen.
  • In einigen Ausführungsformen wird die erste Untermenge von Modulen dynamisch freigegeben, während das Softwareprodukt auf einem Computer ausgeführt wird.
  • In einigen Ausführungsformen erleichtern die Konfigurationsanweisungen "a la carte"-Auswahl von gekauften Softwarefunktionalitäten durch den Benutzer aus Modulen, welche in dem Softwareprodukt bereits getestet und übersetzt (compiled) sind.
  • In einigen Ausführungsformen ist der erste Ort eine körperliche Verkaufseinrichtung und/oder eine Online-Verkaufseinrichtung. Außerdem kann der erste Ort verschieden von dem zweiten Ort sein.
  • In einigen Ausführungsformen werden die Konfigurationsanweisungen über ein Netzwerk durch einen Server dem zweiten Ort über ein Netzwerk bereitgestellt.
  • In einigen Ausführungsformen werden die Operationen von Empfangen der Zugriffsanfrage und Bereitstellen der Konfigurationsanweisungen nach einem Zeitintervall wiederholt, um dadurch Synchronisation von momentanen Softwarefunktionalitäten, welche in dem Softwareprodukt freigegeben sind, zu erlauben.
  • In einigen Ausführungsformen empfängt das System eine Kaufanfrage und Zahlung von dem Benutzer, wobei die Kaufanfrage zusätzlich gekauften Softwarefunktionalitäten zugeordnete Information umfasst, und wobei die zusätzlich gekauften Softwarefunktionalitäten einer zweiten Untermenge von Modulen in dem Softwareprodukt zugeordnet sind. Als Nächstes stellt das System dem zweiten Ort zusätzliche Konfigurationsanweisungen bereit, wobei die zusätzlichen Konfigurationsanweisungen die zweite Untermenge der Module dynamisch freigeben. Man bemerke, dass die zusätzlich gekauften Funktionalitäten verschieden von den gekauften Funktionalitäten sein können oder dass die zusätzlich gekauften Funktionalitäten mindestens teilweise mit den gekauften Funktionalitäten überlappen können. Außerdem ist in einigen Ausführungsformen die Zahlung auf den zusätzlich gekauften Softwarefunktionalitäten basiert.
  • Eine andere Ausführungsform betrifft ein Computerprogrammprodukt zum Gebrauch in Verbindung mit dem System. Dieses Computerprogrammprodukt kann Anweisungen umfassen, welche zumindest einigen der oben beschriebenen Operationen entsprechen.
  • Eine andere Ausführungsform stellt ein Verfahren zum Bereitstellen von Zugriff auf mindestens einen Teil des Soft wareprodukts bereit. Dieses Verfahren kann mindestens einige der oben beschriebenen Operationen durchführen.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 ist ein Blockdiagramm, welches ein Computersystem umfassend Computer und Server illustriert, welche zusammen vernetzt sind, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung.
  • 2 ist ein Flussdiagramm, welches ein Verfahren zum Bereitstellen von Zugriff auf mindestens einen Teil des Softwareprodukts in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung illustriert.
  • 3 ist ein Blockdiagramm, welches ein Computersystem in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung illustriert.
  • 4 ist ein Blockdiagramm, welches eine Datenstruktur in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung illustriert.
  • 5 ist ein Blockdiagramm, welches eine Datenstruktur in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung illustriert.
  • Man bemerke, dass sich ähnliche Bezugsnummern durch die Zeichnungen hindurch auf entsprechende Teile beziehen.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung ist präsentiert, um irgend einem Fachmann in der Technik zu ermöglichen, die Erfindung durchzuführen und zu benutzen, und ist in dem Kontext einer bestimmten Anwendung und ihrer Anforderungen bereitgestellt. Verschiedene Abwandlungen von den offenbarten Ausführungsformen werden leicht für die Fachleute in der Technik offensichtlich sein und die allgemeinen hierin definierten Prinzipien können auf andere Ausführungsformen und Anwendungen angewendet werden, ohne von dem Geist und dem Geltungsbereich der vorliegenden Erfindung abzuweichen. Somit ist die vorliegende Erfindung nicht beabsichtigt, auf die gezeigten Ausführungsformen beschränkt zu sein, sondern es ist ihr der weiteste Geltungsbereich eingeräumt, welcher mit den hierin offenbarten Prinzipien und Merkmalen konsistent ist.
  • Ausführungsformen eines Computersystems, eines Verfahrens und eines Computerprogrammprodukts (d. h. Software) zum Gebrauch mit dem Computersystem werden beschrieben. Diese Systeme, Software und Prozesse können benutzt werden, um Zugriff auf mindestens einen Teil eines Softwareprodukts bereitzustellen. Insbesondere kann das Computersystem einem Benutzer, welcher vorher Zugriff auf Softwarefunktionalitäten gekauft hat, Konfigurationsanweisungen bereitstellen. Diese Konfigurationsanweisungen können dynamisch Gebrauch einer Untermenge von Modulen in einem Softwareprodukt freigeben, welche Module den gekauften Softwarefunktionalitäten zugeordnet sind. Man bemerke, dass der Zugriff auf die Softwarefunktionalitäten in einer körperlichen Verkaufseinrichtung und/oder in einer Online-Verkaufseinrichtung, wie etwa bei einer Website oder einer Webseite, gekauft sein kann.
  • In einigen Ausführungsformen erleichtern die Konfigurationsanweisungen "a la carte"-Auswahl der gekauften Softwarefunktionalitäten durch den Benutzer aus Modulen, welche in dem Softwareprodukt bereits getestet und übersetzt (compiled) sind. Außerdem kann der Benutzer dynamisch die Untermenge von Modulen freigeben: Ohne einen Teil des Softwareprodukts neu zu installieren; ohne einen Computer neu zu starten (rebooting), auf welchem das Softwareprodukt installiert ist; und/oder ohne einen anderen Teil des Softwareprodukts zu installieren.
  • Zu einer späteren Zeit kann der Benutzer zusätzliche Softwarefunktionalitäten von dem Computersystem kaufen und das Computersystem kann zusätzliche Konfigurationsanweisungen bereitstellen, welche eine zusätzliche Untermenge von Modulen in dem Softwareprodukt freigeben, welche den zusätzlichen Softwarefunktionalitäten zugeordnet sind. Man bemerke, dass die zusätzlichen Module verschieden sein können von der Untermenge von Modulen oder mindestens teilweise mit der Untermenge von Modulen überlappen können und dass die Zahlung auf den zusätzlich gekauften Softwarefunktionalitäten basieren kann.
  • Diese Techniken können als eine alleinstehende (stand-alone) Softwareanwendung implementiert sein, oder als ein Programmmodul oder eine Unterroutine (subroutine) in einer anderen Anwendung. Weiterhin kann mindestens ein Teil des Programms konfiguriert sein, auf einem Client-Computer ausgeführt zu werden (wie etwa ein Personalcomputer, ein Laptop-Computer, Mobiltelefon, PDA, oder ein anderes Gerät, welches befähigt ist, computerlesbare Daten zu manipulieren) oder entfernt von einem Client-Computer über zugeordnete Computersysteme über ein Netzwerk ausgeführt zu werden (wie etwa das Internet, Intranet, LAN, WAN, MAN, oder eine Kombination von Netzwerken, oder eine andere Technologie, welche Kommunikation zwischen Computersystemen ermöglicht). Daher können die Kaufinformation, das Softwareprodukt, und die Konfigurationsanweisungen lokal gespeichert sein (zum Beispiel auf einem lokalen Computer) und/oder entfernt (zum Beispiel auf einem Computer oder Server, auf welchen über ein Netzwerk zugegriffen ist).
  • Durch dynamisches Freigeben von Untermengen von Modulen und/oder Untermengen von Funktionalitäten in einem zuvor getesteten und übersetzten Softwareprodukt, erlauben diese Techniken, dass Softwarefunktionalitäten in diesem Softwareprodukt den Bedürfnissen eines gegebenen Benutzers angepasst werden können. Andererseits ermöglicht diese Fähigkeit Verkaufseinrichtungen, weniger Softwareprodukte zu führen und auszustellen, um dadurch Operationen zu vereinfachen, Ausgaben zu vermindern, und/oder Unterschüsse oder Überschüsse an Inventar zu vermindern. Außerdem sind solche Softwareprodukte im Allgemeinen weniger komplex und leichter zu testen und zu verteilen. Zum Beispiel kann durch dem Benutzer Erlauben, nur diejenigen Funktionalitäten zu kaufen, welche von Interesse sind, die Benutzerschnittstelle vereinfacht werden und die Gesamtbenutzererfahrung verbessert werden.
  • Wir beschreiben nun Ausführungsformen von Systemen, Geräten und Prozessen zum Bereitstellen von Zugriff auf mindestens einen Teil eines Softwareprodukts. 1 präsentiert ein Blockdiagramm, welches eine Ausführungsform eines Computersystems 100 umfassend Computer und Server illustriert, welche zusammen vernetzt sind. In dieser Ausführungsform kann ein Benutzer zuerst ein Softwareprodukt kaufen oder Zugriff auf mindestens einen Teil des Softwareprodukts von einer oder mehr Verkaufseinrichtungen 116 kaufen, welche umfassen können: Ein Geschäft 118, einen Verteiler 120, eine Website 122, und/oder einen anderen 124 Verkaufskanal. Im Allgemeinen umfasst das Softwareprodukt oder mindestens der Teil eines Softwareprodukts ein oder mehr Softwarefunktionalitäten, welche der Benutzer gerne benutzen möchte. Außerdem sind diese Softwarefunktionalitäten mindestens einer Untermenge der Module in dem Softwareprodukt zugeordnet.
  • Wenn der Benutzer das Softwareprodukt kauft oder Zugriff auf einen Teil des Softwareprodukts kauft, empfängt der Benutzer ein Kurzzeichen (token) oder einen Identifikator, welcher dem Benutzerkauf entspricht. Außerdem kann der Benutzer Anweisungen empfangen, wie der Identifikator zu benutzen ist, um das Softwareprodukt zu empfangen, oder um Zugriff auf den Teil des Softwareprodukts zu ermöglichen. Zum Beispiel kann der Benutzer eine verschlüsselte Version des Softwareprodukts kaufen und (wie unten beschrieben) der Benutzer kann den Anweisungen folgen und den Identifikator benutzen, um Zugriff auf mindestens den Teil des Softwareprodukts freizugeben. Alternativ kann der Benutzer den Anweisungen folgen und den Identifikator benutzen, um mindestens den Teil des Softwareprodukts zu empfangen oder auf die Softwarefunktionalität(en) zuzugreifen, welche mindestens dem Teil des Softwareprodukts zugeordnet sind.
  • Nachdem die Kauftransaktion vollendet ist, kann die Verkaufseinrichtung (wie etwa das Geschäft 118) einem Server 114 über ein Netzwerk 112, wie etwa das Internet, Kaufinformation bereitstellen. Dieser Server kann einem Anbieter des Softwareprodukts zugeordnet sein, und die Kaufinformation kann den dem Benutzer bereitgestellten Identifikator umfassen und Information über das Softwareprodukt oder einen Teil des Softwareprodukts, für welches der Benutzer zum Zugriff bezahlt hat. Allgemeiner umfasst die Kaufinformation Information über gekaufte Softwarefunktionalitäten, auf welche der Benutzer Zugriff gekauft hat.
  • Dann kann der Benutzer auf den Server 114 von einem Computer 110 durch Netzwerk 112 zugreifen. Computer 110 kann entfernt von der Verkaufseinrichtung 116 gelegen sein. Zum Beispiel kann Computer 110 in dem Heim des Benutzers oder an einer Benutzerarbeitsstelle sein. Wenn der Benutzer auf Server 114 zugreift, kann der Benutzer eine Zugriffsanfrage bereitstellen, welche den Identifikator umfasst.
  • Basierend auf der Kaufinformation und der Zugriffsanfrage kann der Server 114 dem Benutzer freigeben, auf die Untermenge der Module und/oder die Untermenge der Funktionalitäten in dem Softwareprodukt (welche der Untermenge von Softwaremodulen zugeordnet sein kann) zuzugreifen. In einigen Ausführungsformen kann der Server 114 dem Computer 110 Konfigurationsanweisungen bereitstellen. Diese Konfigurationsanweisungen können dynamisch die Untermenge der Module und/oder die Untermenge der Funktionalitäten freigeben. Zum Beispiel können die Konfigurationsanweisungen einen Entschlüsselungsschlüssel umfassen, wie etwa einen öffentlichen Schlüssel, welcher einem privaten Schlüssel zugeordnet ist, welcher benutzt wurde, um mindestens den Teil des Softwareprodukts vorher zu verschlüsseln. Unter Benutzung dieses Entschlüsselungsschlüssels kann der Benutzer mindestens denjenigen Teil des Softwareprodukts entschlüsseln, welcher von einer der Verkaufseinrichtungen 116 gekauft wurde.
  • In einer beispielhaften Ausführungsform installiert der Benutzer das gekaufte Softwareprodukt auf dem Computer 110. Dieses Softwareprodukt kann mehrere Module (verschiedenen Softwarefunktionalitäten zugeordnet) umfassen. Außerdem können die mehreren Module bereits übersetzt und getestet und daher bereit zur Benutzung sein. Diese Module können jedoch verschlüsselt sein, so dass der Benutzer zunächst ein gegebenes Modul vor Benutzen des Moduls entschlüsseln muss. Durch Zugreifen und Empfangen der Konfigurationsanweisungen (welche einen oder mehr Entschlüsselungsschlüssel umfassen) kann der Benutzer die geeignete Untermenge der Module, welche der Benutzer zum Zugriff bezahlt hat, entschlüsseln.
  • Man beachte, dass in diesen Ausführungsformen das durch die Verkaufseinrichtungen 116 verkaufte Softwareprodukt mehr Module und/oder mehr Softwarefunktionalitäten umfassen kann als diejenigen, auf welche der typische Benutzer zu einer gegebenen Zeit zugreifen können möchte. Anstatt verschiedene Versionen dieses Softwareprodukts auf Lager zu haben und zu verkaufen, können Verkaufseinrichtungen 116 eine generische Version des Softwareprodukts auf Lager haben. Außerdem können Verkaufseinrichtungen 116 dieses generische Softwareprodukt auf die Bedürfnisse eines spezifischen Benutzers zuschneiden, indem dem Benutzer erlaubt ist, "a la carte" diejenigen Softwarefunktionalitäten auszuwählen, auf welche der Benutzer gern zugreifen würde. Wie oben geschrieben, erlaubt Computersystem 100 den Benutzern, nachfolgend die geeigneten Konfigurationsanweisungen zu empfangen, um die Untermenge derjenigen Module und/oder die Untermenge derjenigen Softwarefunktionalitäten freizugeben, welche gekauft sind.
  • Das dynamische Freigeben der Untermenge der Module und/oder der Untermenge der Softwarefunktionalitäten in dem Softwareprodukt kann durchgeführt werden, ohne dass der Benutzer: einen Teil des Softwareprodukts neu installiert; ohne dass er den Computer, auf welchem das Softwareprodukt installiert ist, zunächst neu startet (rebooting); und/oder ohne dass er einen anderen Teil des Softwareprodukts installiert. Außerdem erlaubt in einigen Ausführungsformen dynamisches Freigeben der Untermenge von Modulen und/oder der Untermenge der Softwarefunktionalitäten dem Benutzer, die gekauften Softwarefunktionalitäten zu benutzen, ohne zusätzliche Module herunterzuladen. Folglich kann die Untermenge von Modulen und/oder die Untermenge der Softwarefunktionalitäten dynamisch freigegeben werden, während das Softwareprodukt auf dem Computer 110 ausgeführt wird.
  • In einigen Ausführungsformen wiederholt der Benutzer nach einem Zeitintervall die Operation, dem Server 114 die Zugriffsanfrage bereitzustellen, und der Server 114 wieder holt die Operation, die Konfigurationsanweisungen bereitzustellen. Zum Beispiel kann eine Version der Konfigurationsanweisungen nach dem Zeitintervall auslaufen (expire), und eine neuere Version kann benötigt werden. Dies kann Synchronisation von momentanen Softwarefunktionalitäten erlauben, welche in dem Softwareprodukt freigegeben sind, oder kann Zugriff auf die Softwarefunktionalitäten erlauben, welche auf einer Subskriptionsbasis zu verkaufen sind. Somit kann der Benutzer routinemäßig oder wiederkehrend bezahlen, um Zugriff auf die Untermenge der Module und/oder die Untermenge der Softwarefunktionalitäten fortzuführen.
  • Nach dem anfänglichen Kauf kann weiterhin der Benutzer wählen, Zugriff auf eine zusätzliche Untermenge von den Modulen und/oder auf eine zusätzliche Untermenge der Softwarefunktionalitäten in dem Softwareprodukt zu kaufen. In diesen Ausführungsformen kann der Benutzer Zugriff auf die zusätzlichen Softwarefunktionalitäten von einer der Verkaufseinrichtungen 116 oder direkt von dem Anbieter des Softwareprodukts (zum Beispiel über den Server 114) kaufen. Nach Empfangen einer Kaufanfrage (welche zusätzlichen Softwarefunktionalitäten zugeordnete Information umfasst) und Zahlung durch den Benutzer (welche auf den zusätzlichen Softwarefunktionalitäten basieren kann), kann Server 114 zusätzliche Konfigurationsanweisungen bereitstellen, welche die zusätzliche Untermenge der Module und/oder die zusätzliche Untermenge der Softwarefunktionalitäten für den Computer 110 dynamisch freigeben. Man bemerke, dass diese zusätzlichen Softwarefunktionalitäten: Die ursprünglichen durch den Benutzer gekauften Softwarefunktionalitäten umfassen können, teilweise mit den ursprünglichen Softwarefunktionalitäten überlappen können, oder verschiedene Softwarefunktionalitäten sein können. Weiterhin kann die zusätzliche Untermenge der Module: Die Untermenge der Module umfassen, teilweise mit der Untermenge von Modulen überlappen, oder verschiedene Module umfassen.
  • In anderen Ausführungsformen empfängt der Benutzer nicht das Softwareprodukt von einer der Verkaufseinrichtungen 116 zum Kaufzeitpunkt. Zum Beispiel kann der Benutzer das Softwareprodukt von dem Server 140 auf Computer 110 nachfolgend herunterladen. Man bemerke, dass das Softwareprodukt eine alleinstehende Anwendung (stand-alone application) auf dem Computer 110 sein kann und/oder in eine andere Anwendung eingebettet sein kann. In einer exemplarischen Ausführungsform umfasst das Softwareprodukt Einkommenssteuervorbereitungssoftware und/oder Finanzbuchhaltungssoftware.
  • In einigen Ausführungsformen umfasst die Einkommenssteuersoftware: TurboTaxTM (von Intuit, Inc., aus Mountain View, California), TaxCutTM (von H&R Block, Inc. aus Kansas City, Missouri), TaxActTM (von 2nd Story Software, Inc. aus Cedar Rapids, Iowa) und/oder andere Software, welche befähigt ist, eine Einkommenssteuererklärung vorzubereiten. Weiterhin umfasst in einigen Ausführungsformen die Finanzbuchhaltungssoftware Gehaltsbuchhaltungssoftware, wie etwa QuickBooksTM (von Intuit, Inc., aus Mountain View, California), PeachTree CompleteTM (von der Sage Group PLC, aus London, United Kingdom), MYOB Business EssentialsTM (von MYOB US, Inc., aus Rockaway, New Jersey), NetSuite Small Business AccountingTM (von NetSuite, Inc. aus San Mateo, California), Cougar MountainTM (von Cougar Mountain Software, aus Boise, Idaho), Small Business ManagerTM (von Microsoft Corporation, aus Redmont, Washington), Simply AccountingTM (von der Sage Group PLC, aus London, United Kingdom), CYMA IV AccountingTM (von CYMA Systems, Inc., aus Temple, Arizona), DacEasyTM (von Sage Software SB, Inc., aus Lawrenceville, Georgia), Microsoft MoneyTM (von Microsoft Corporation, aus Redmont, Washington), und/oder andere Finanzbuchhaltungssoftware, welche befähigt ist, Gehaltsinformation zu verarbeiten. Schließlich umfasst in einigen Ausführungsformen die Finanzbuchhaltungssoftware Finanzplanungssoftware, wie etwa QuickenTM (von Intuit, Inc., aus Mountain View, California), Microsoft MoneyTM (von Microsoft Corporation, aus Redmont, Washington), SplashMoneyTM (von SplashData, Inc., Los Gatos, CA), MvelopesTM (von In2M, Inc., Frager, Utah), und/oder Open-Source-Anwendungen wie etwa GnucashTM, PLCashTM, BudgetTM (von Snowmmint Creative Solutions, LLC), und/oder andere Finanzplanungssoftware, welche befähigt ist, Finanzinformation zu verarbeiten.
  • Während das Softwareprodukt auf dem Computer 110 gelegen sein kann, können andere Ausführungsformen ein Softwarewerkzeug (software tool) benützen, welches in einer Webseite eingebettet ist (wiederum entweder als alleinstehende Anwendung oder als ein Teil einer anderen Anwendung). Diese Webseite kann durch einen Server 114 über Netzwerk 112 bereitgestellt sein. In einer exemplarischen Ausführungsform ist das Finanzsoftwarewerkzeug ein Softwarepaket geschrieben in JavaScriptTM (d. h. das Finanzsoftwarewerkzeug umfasst Programme oder Prozeduren, welche JavaScript-Anweisungen enthalten), in ECMAScript (wofür die Spezifikation durch die europäische Computerherstellerassoziation International (European Computer Manufacturers Association International) veröffentlicht ist), in VBScriptTM (eine Handelsmarke von Microsoft, Inc.) oder in irgend einer anderen Client- oder Server-seitigen Script-Sprache. Mit anderen Worten kann das Softwarewerkzeug Programme oder Prozeduren umfassen, welche JavaScript-, ECMAScript-Anweisungen, VBScript-Anweisungen, oder Anweisungen in einer anderen Programmiersprache umfassen, welche zum Wiedergeben (rendering) durch einen Browser oder eine andere Client-Anwendung auf dem Computer 110 geeignet sind. In diesen Ausführungsformen können die Konfigurationsanweisungen, welche mit der Webseite bereitgestellt sind oder vorher dem Computer 110 bereitgestellt sind, benutzt werden, um dynamisch Zugriff auf das Softwarewerkzeug freizugeben.
  • In einer exemplarischen Ausführungsform umfasst ein durch die Verkaufseinrichtungen verkauftes Softwareprodukt Module und/oder Funktionalitäten, welche drei Softwareprodukttypen zugeordnet sind (wie etwa Verbraucher, fortgeschritten und professioneller), wobei jeder Produkttyp fünf Gruppen von Softwarefunktionalitäten umfasst. Basierend auf den Benutzerauswahlen kann das Softwareprodukt für die Bedürfnisse eines gegebenen Benutzers konfiguriert werden. Zum Beispiel können die Konfigurationsanweisungen einen der Softwareprodukttypen und eines von vier verschiedenen Anordnungen der fünf Gruppen von Softwarefunktionalitäten auswählen.
  • In einigen Ausführungsformen umfasst der Computer 100 weniger oder zusätzliche Komponenten. Außerdem können zwei oder mehr Komponenten in eine einzelne Komponente kombiniert werden und/oder es kann eine Position von einer oder mehr Komponenten geändert sein.
  • Wir diskutieren nun Verfahren zum Bereitstellen von Zugriff auf Softwareprodukte. Insbesondere präsentiert 2 ein Flussdiagramm, welches eine Ausführungsform des Verfahrens 200 zum Bereitstellen von Zugriff auf mindestens einen Teil des Softwareprodukts illustriert, welches in einem Computersystem implementiert sein kann, wie etwa das Computersystem 100 in 1. Während eines Betriebs empfängt dieses System Kaufinformation von einem ersten Ort (210), wobei die Kaufinformation Information über gekaufte Softwarefunktionalitäten umfasst, auf welche ein Benutzer Zugriff kaufte, und wobei die gekauften Softwarefunktionalitäten durch eine erste Untergruppe von Modulen in dem Softwareprodukt bereitgestellt sind. Als Nächstes empfängt das System eine Zugriffsanfrage von einem zweiten Ort, von welchem aus auf das Softwareprodukt zugegriffen werden kann (212), wobei die Zugriffsanfrage einen Identifikator umfasst, welcher dem Benutzer bereitgestellt wurde, als der Benutzer Zugriff auf die gekauften Softwarefunktionalitäten kaufte. Dann stellt das System dem zweiten Ort Konfigurationsanweisungen bereit (214), wobei die Konfigurationsanweisungen die erste Untergruppe der Module dynamisch freigeben.
  • In einigen Ausführungsformen empfängt das System optional eine Kaufanfrage und Zahlung von dem Benutzer (216), wobei die Kaufanfrage zusätzlich gekauften Softwarefunktionalitäten zugeordnete Information umfasst und wobei die zusätzlich gekauften Softwarefunktionalitäten einer zweiten Untermenge von Modulen in dem Softwareprodukt zugeordnet sind. Als Nächstes stellt das System optional dem zweiten Ort zusätzliche Konfigurationsanweisungen bereit (218), wobei die zusätzlichen Konfigurationsanweisungen die zweite Untermenge der Module dynamisch freigeben.
  • Man beachte, dass es in einigen Ausführungsformen des Verfahrens 200 geben kann: Zusätzliche oder weniger Operationen; die Ordnung der Operationen kann geändert werden; und zwei oder mehr Operationen können in eine einzelne Operation kombiniert sein.
  • Wir beschreiben nun Computersysteme zum Implementieren dieser Techniken. 3 präsentiert ein Blockdiagramm, welches eine Ausführungsform eines Computersystems 300 illustriert. Computersystem 300 umfasst: Einen oder mehr Prozessoren 310, eine Kommunikationsschnittstelle 312, eine Benutzerschnittstelle 314, und eine oder mehr Signalleitungen 322, welche diese Komponenten zusammenkoppeln. Man bemerke, dass die eine oder mehr Verarbeitungseinheiten 310 Parallelverarbeitung und/oder Multi-Threaded-Operation unterstützen können, dass die Kommunikationsschnittstelle 312 eine persistente Kommunikationsverbindung haben kann, und dass die eine oder mehr Signalleitungen 322 einen Kommunikationsbus bilden können. Außerdem kann die Benutzer schnittstelle 314 umfassen: Eine Anzeige 316, eine Konsole 318, und/oder einen Zeiger 320, wie etwa eine Maus.
  • Speicher 324 in dem Computersystem 300 kann volatilen Speicher und/oder nicht-volatilen Speicher umfassen. Insbesondere kann Speicher 324 umfassen: ROM, RAM, EPROM, EEPROM, FLASH, ein oder mehr Smart-Karten (smart cards), ein oder mehr Magnetplattespeichergeräte, und/oder ein oder mehr optische Speichergeräte. Speicher 324 kann ein Betriebssystem 326 speichern, welches Prozeduren (oder einen Satz von Anweisungen) zum Handhaben verschiedener grundlegender Systemdienste zum Durchführen von Hardware-abhängigen Aufgaben umfasst. Während nicht im Computersystem 100 gezeigt, kann in einigen Ausführungsformen Speicher 324 einen Browser umfassen. Speicher 324 kann auch Kommunikationsprozeduren (oder einen Satz von Anweisungen) in einem Kommunikationsmodul 328 speichern. Diese Kommunikationsprozeduren können zum Kommunizieren mit einem oder mehr Computern und/oder Servern benutzt werden, umfassend Computer und/oder Server, welche in Bezug auf das Computersystem 300 entfernt gelegen sind.
  • Speicher 324 kann mehre Programmmodule (oder einen Satz von Anweisungen) umfassen, umfassend Konfigurationsmodul 330 (oder einen Satz von Anweisungen) und/oder Verschlüsselungsmodul 350 (oder einen Satz von Anweisungen). Konfigurationsmodul 330 kann Kaufinformation 332 (wie etwa kommerzieller Einrichtung A 334-1 und/oder kommerzieller Einrichtung B 334-2 zugeordnet) benutzen, um in Antwort auf ein oder mehr Zugriffsanfragen 336 Konfigurationsanweisungen 344 bereitzustellen. Außerdem sind in einigen Ausführungsformen zusammen mit der einen oder mehr Zugriffsanfragen 336 ein oder mehr Benutzeridentifikatoren 348 und/oder Zahlungsinformation 346 bereitgestellt. Diese Konfigurationsanweisungen 344 können dynamisch mindestens eine Untermenge der Module und/oder eine Untermenge der Softwarefunk tionalitäten in Softwareprodukten 340 (wie etwa Modul A 342-1 und/oder Modul B 342-2) freigeben.
  • In einigen Ausführungsformen umfassen die Konfigurationsanweisungen 344 ein oder mehr Entschlüsselungsschlüssel, welche Verschlüsselungsmodul 350 zugeordnet sind. Zum Beispiel kann Verschlüsselungsmodul 350 die Softwareprodukte 340 verschlüsseln und die Entschlüsselungsschlüssel können benutzt werden, um das eine oder mehr der Module 342 zu entschlüsseln.
  • Außerdem ist in einigen Ausführungsformen das Konfigurationsmodul 330 benutzt, um routinemäßig oder wiederkehrend die freigegebenen Module und/oder freigegebenen Funktionalitäten in den Softwareprodukten 340 unter Benutzung von optionaler Synchronisationsinformation 338 zu synchronisieren.
  • Anweisungen in den verschiedenen Modulen in dem Speicher 324 können in einer prozeduralen Hochsprache (high-level procedural language), einer objektorientierten Programmiersprache und/oder in Assembler oder einer Maschinensprache implementiert sein. Die Programmiersprache kann übersetzt werden oder interpretiert werden, d. h. konfigurierbar sein oder konfiguriert sein, um durch eine oder mehr Verarbeitungseinheiten 310 ausgeführt zu werden.
  • Obwohl das Computersystem 300 mit einer Anzahl von diskreten Komponenten illustriert ist, ist 3 beabsichtigt, eine funktionale Beschreibung der verschiedenen Merkmale bereitzustellen, welche in dem Computersystem 300 vorhanden sein können, anstatt ein strukturelles Schema der hierin beschriebenen Ausführungsformen. In Praxis, und wie durch die Fachleute in der Technik erkannt wird, können die Funktionen des Computersystems 300 über eine große Zahl von Servern oder Computern verteilt sein, wobei verschiedene Gruppen der Server oder Computer bestimmte Untermengen der Funktionen durchführen. In einigen Ausführungsformen kann ein Teil oder ein Ganzes der Funktionalität des Computersystems 300 in einem oder mehr ASICs und/oder einem oder mehr digitalen Signalprozessoren DSPs implementiert sein.
  • Computersystem 300 kann weniger Komponenten oder zusätzliche Komponenten umfassen. Außerdem können zwei oder mehr Komponenten in eine einzelne Komponente kombiniert sein und/oder eine Position von einer oder mehr Komponenten kann geändert sein. In einigen Ausführungsformen kann die Funktionalität des Computersystems 300 mehr in Hardware und weniger in Software oder weniger in Hardware und mehr in Software implementiert sein, wie in der Technik bekannt.
  • Wir beschreiben nun Datenstrukturen, welche in dem Computersystem 100 (1) und/oder 300 (3) benutzt werden können. 4 präsentiert ein Blockdiagramm, welches eine Ausführungsform einer Datenstruktur 400 illustriert. Diese Datenstruktur kann Kaufinformation 410 umfassen. Gegebene Kaufinformation 410, wie etwa Kaufinformation 410-1, kann umfassen: Einen Zeitstempel (time stamp) 412-1, einen Benutzer 414-1, ein oder mehr Softwareprodukte 416-1, ein oder mehr Softwarefunktionalitäten 418-1, und/oder ein oder mehr Geschäftseinrichtungen 420-1.
  • 5 präsentiert ein Blockdiagramm, welches eine Ausführungsform einer Datenstruktur 500 illustriert. Diese Datenstruktur kann Softwareprodukten 510 zugeordnete Information umfassen. Information für ein gegebenes Softwareprodukt, wie etwa Softwareprodukt 510-1, kann umfassen: Einen Zeitstempel 512-1, ein oder mehr Softwarefunktionalitäten 514-1, ein oder mehr Module 516-1, und/oder übersetzten Code 518-1.
  • Man bemerke, dass in einigen Ausführungsformen der Datenstruktur 400 (4) und/oder 500 weniger oder zusätzliche Komponenten vorhanden sein können. Außerdem können zwei oder mehr Komponenten in einer einzelnen Komponente kombiniert sein, und/oder eine Position von einer oder mehr Komponenten ist geändert.
  • Die vorangehenden Beschreibungen von Ausführungsformen der vorliegenden Erfindung sind nur für Zwecke einer Illustration und Beschreibung präsentiert worden. Sie ist nicht beabsichtigt, umfassend zu sein oder die vorliegende Erfindung auf die offenbarten Formen zu beschränken. Demgemäß werden viele Abwandlungen und Abänderungen für in der Technik ausgebildete Praktiker offensichtlich sein. Zusätzlich ist die obige Offenbarung nicht beabsichtigt, die vorliegende Erfindung zu beschränken. Der Geltungsbereich der vorliegenden Erfindung ist durch die angehängten Ansprüche definiert.

Claims (20)

  1. Verfahren zum Bereitstellen von Zugriff auf mindestens einen Teil eines Softwareproduktes, wobei das Verfahren umfasst: Empfangen von Kaufinformation von einem ersten Ort, wobei die Kaufinformation Information über gekaufte Softwarefunktionalitäten umfasst, auf welcher ein Benutzer Zugriff kaufte, und wobei die gekauften Softwarefunktionalitäten durch eine erste Untermenge von Modulen in dem Softwareprodukt bereitgestellt sind; Empfangen einer Zugriffsanfrage von einem zweiten Ort, von welchem aus auf das Softwareprodukt zugegriffen werden kann, wobei die Zugriffsanfrage einen Identifikator umfasst, welcher dem Benutzer bereitgestellt wurde, als der Benutzer Zugriff auf die gekauften Softwarefunktionalitäten kaufte; und dem zweiten Ort Konfigurationsanweisungen Bereitstellen, wobei die Konfigurationsanweisungen die erste Untermenge der Module dynamisch freigeben.
  2. Verfahren nach Anspruch 1, wobei die Konfigurationsanweisungen einen Entschlüsselungsschlüssel umfassen.
  3. Verfahren nach Anspruch 2, wobei der Entschlüsselungsschlüssel einen öffentlichen Schlüssel umfasst, welcher einem privaten Schlüssel zugeordnet ist, welcher benutzt wurde, mindestens einen anderen Teil des Softwareprodukts zu verschlüsseln.
  4. Verfahren nach Anspruch 1, wobei dynamisches Freigeben der ersten Untermenge von Modulen dem Benutzer erlaubt, die gekauften Softwarefunktionalitäten zu benutzen, ohne einen Teil des Softwareprodukts neu zu installieren.
  5. Verfahren nach Anspruch 1, wobei dynamisches Freigeben der ersten Untermenge von Modulen dem Benutzer erlaubt, die gekauften Softwarefunktionalitäten zu benutzen, ohne zunächst einen Computer neu zu starten, auf welchem das Softwareprodukt installiert ist.
  6. Verfahren nach Anspruch 1, wobei dynamisches Freigeben der ersten Untermenge von Modulen dem Benutzer erlaubt, die gekauften Softwarefunktionalitäten zu benutzen, ohne einen Teil des Softwareprodukts zu installieren.
  7. Verfahren nach Anspruch 1, wobei dynamisches Freigeben der ersten Untergruppe von Modulen dem Benutzer erlaubt, die gekauften Softwarefunktionalitäten zu benutzen, ohne zusätzliche Module herunterzuladen.
  8. Verfahren nach Anspruch 1, wobei die erste Untermenge von Modulen dynamisch freigegeben wird, während das Softwareprodukt auf einem Computer ausgeführt wird.
  9. Verfahren nach Anspruch 1, wobei die Konfigurationsanweisungen eine "a la carte"-Auswahl von gekauften Softwarefunktionalitäten durch den Benutzer aus Modulen erleichtern, welche bereits in dem Softwareprodukt getestet und kompiliert sind.
  10. Verfahren nach Anspruch 1, wobei der erste Ort eine körperliche Verkaufseinrichtung ist.
  11. Verfahren nach Anspruch 1, wobei der erste Ort eine Online-Verkaufseinrichtung ist.
  12. Verfahren nach Anspruch 1, wobei der erste Ort verschieden von dem zweiten Ort ist.
  13. Verfahren nach Anspruch 1, wobei die Konfigurationsanweisungen dem zweiten Ort über ein Netzwerk durch einen Server bereitgestellt werden.
  14. Verfahren nach Anspruch 1, wobei die Operationen von Empfangen der Zugriffsanfrage und Bereitstellen der Konfigurationsanweisungen nach einem Zeitintervall wiederholt werden, um dadurch Synchronisation von momentanen Softwarefunktionalitäten zu erlauben, welche in dem Softwareprodukt freigegeben sind.
  15. Verfahren nach Anspruch 1, weiterhin umfassend: Empfangen einer Kaufanfrage und einer Zahlung von dem Benutzer, wobei die Kaufanfrage zusätzlich gekauften Softwarefunktionalitäten zugeordnete Information umfasst, wobei die zusätzlich gekauften Softwarefunktionalitäten einer zweiten Untermenge von Modulen in dem Softwareprodukt zugeordnet sind; und dem zweiten Ort zusätzliche Konfigurationsanweisungen Bereitstellen, wobei die zusätzlichen Konfigurationsanweisungen die zweite Untermenge von Modulen dynamisch freigeben.
  16. Verfahren nach Anspruch 15, wobei die zusätzlich gekauften Funktionalitäten verschieden von den gekauften Funktionalitäten sind.
  17. Verfahren nach Anspruch 15, wobei die zusätzlich gekauften Funktionalitäten mindestens teilweise mit den gekauften Funktionalitäten überlappen.
  18. Verfahren nach Anspruch 15, wobei die Zahlung auf den zusätzlich gekauften Softwarefunktionalitäten basiert.
  19. Computerprogrammprodukt zum Gebrauch in Verbindung mit einem Computersystem, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium und einen darin eingebetteten Computerprogrammmechanismus umfasst zum Bereitstellen von Zugriff auf mindestens einen Teil eines Softwareprodukts, wobei der Computerprogrammmechanismus umfasst: Anweisungen zum Empfangen von Kaufinformation von einem ersten Ort, wobei die Kaufinformation Information über gekaufte Softwarefunktionalitäten umfasst, auf welche ein Benutzer Zugriff kaufte, und wobei die gekauften Softwarefunktionalitäten einer ersten Untermenge von Modulen in dem Softwareprodukt zugeordnet sind; Anweisungen zum Empfangen einer Zugriffsanfrage von einem zweiten Ort, von welchem aus auf das Softwareprodukt zugegriffen werden kann, wobei die Zugriffsanfrage einen Identifikator umfasst, welcher dem Benutzer bereitgestellt wurde, als der Benutzer Zugriff auf die gekauften Softwarefunktionalitäten kaufte; und Anweisungen zum dem zweiten Ort Bereitstellen von Konfigurationsanweisungen, wobei die Konfigurationsanweisungen die erste Untermenge von Modulen dynamisch freigeben.
  20. Computersystem, um Zugriff auf mindestens einen Teil eines Softwareprodukts bereitzustellen, wobei das Computersystem umfasst: einen Prozessor; Speicher; ein Programmmodul, wobei das Programmmodul in dem Speicher gespeichert ist und konfigurierbar ist, durch den Prozessor ausgeführt zu werden, wobei das Programmmodul umfasst: Anweisungen zum Empfangen von Kaufinformation von einem ersten Ort, wobei die Kaufinformation Information über gekaufte Softwarefunktionalitäten umfasst, auf welche ein Benutzer Zugriff kaufte, und wobei die gekauften Softwarefunktionalitäten einer ersten Untermenge von Modulen in dem Softwareprodukt zugeordnet sind; Anweisungen zum Empfangen einer Zugriffsanfrage von einem zweiten Ort, von welchem aus auf das Softwareprodukt zugegriffen werden kann, wobei die Zugriffsanfrage einen Identifikator umfasst, welcher dem Benutzer bereitgestellt wurde, als der Benutzer Zugriff auf die gekauften Softwarefunktionalitäten kaufte; und Anweisungen zum dem zweiten Ort Bereitstellen von Konfigurationsanweisungen, wobei die Konfigurationsanweisungen die erste Untermenge von Modulen dynamisch freigeben.
DE102008033004A 2007-07-27 2008-07-14 Vereinfachen einer dynamischen Konfiguration von Softwareprodukten Pending DE102008033004A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/829,430 US20080270310A1 (en) 2006-06-27 2007-07-27 Facilitating dynamic configuration of software products
US11/829,430 2007-07-27

Publications (1)

Publication Number Publication Date
DE102008033004A1 true DE102008033004A1 (de) 2009-02-12

Family

ID=39737395

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008033004A Pending DE102008033004A1 (de) 2007-07-27 2008-07-14 Vereinfachen einer dynamischen Konfiguration von Softwareprodukten

Country Status (5)

Country Link
US (1) US20080270310A1 (de)
CN (1) CN101359392B (de)
AU (1) AU2008203150A1 (de)
DE (1) DE102008033004A1 (de)
GB (1) GB2451555A (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168131A1 (en) * 2007-01-08 2008-07-10 Microsoft Corporation Platform for defining single-page web signup facilities
FR2948788B1 (fr) * 2009-07-30 2011-09-16 Xaga Network Systeme de gestion d'applications
US9135434B2 (en) * 2010-04-19 2015-09-15 Appcentral, Inc. System and method for third party creation of applications for mobile appliances
JP5930390B2 (ja) 2012-05-31 2016-06-08 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理システム
US10043167B2 (en) * 2012-07-13 2018-08-07 Ncr Corporation Mobile point-of-sale (POS) techniques
CN103632074A (zh) * 2013-12-12 2014-03-12 用友软件股份有限公司 基于基本功能模型的特性化功能部署装置和部署方法
CN112559074A (zh) * 2020-12-18 2021-03-26 昂纳工业技术(深圳)有限公司 一种机器视觉软件的动态配置方法及计算机

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956505A (en) * 1991-12-24 1999-09-21 Pitney Bowes Inc. Remote activation of software features in a data processing device
US5398285A (en) * 1993-12-30 1995-03-14 Motorola, Inc. Method for generating a password using public key cryptography
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
US6442559B1 (en) * 1999-06-22 2002-08-27 Microsoft Corporation Dynamic SKU management
US6460140B1 (en) * 1999-12-30 2002-10-01 Starnet Communications Corporation System for controlling the use of licensed software
JP4120125B2 (ja) * 2000-02-01 2008-07-16 富士ゼロックス株式会社 利用許可証発行装置および方法
US20040193545A1 (en) * 2000-10-30 2004-09-30 Gady Shlasky Method and system for digital licensing distribution
US20020091573A1 (en) * 2001-01-05 2002-07-11 Hodes Mark B. Method and apparatus for point of sale activated delivery of products or services
WO2003060815A1 (en) * 2002-01-08 2003-07-24 Riverborne Communications, Llc Point-of-sale activation and subsequent registration of products
US20020088855A1 (en) * 2001-01-05 2002-07-11 Hodes Mark B. Point of sale activation for software and metered accounts
US7174568B2 (en) * 2001-01-31 2007-02-06 Sony Computer Entertainment America Inc. Method and system for securely distributing computer software products
US20070107067A1 (en) * 2002-08-24 2007-05-10 Ingrian Networks, Inc. Secure feature activation
US7966520B2 (en) * 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7228567B2 (en) * 2002-08-30 2007-06-05 Avaya Technology Corp. License file serial number tracking
US7681245B2 (en) * 2002-08-30 2010-03-16 Avaya Inc. Remote feature activator feature extraction
AU2003291460A1 (en) * 2002-11-06 2004-06-03 Digital Interactive Entertainment, L.L.C. Activation and personalization of downloadable content
CA2415334C (en) * 2002-12-31 2012-04-24 Protexis Inc. System for persistently encrypting critical software data to control operation of an executable software program
TW200508926A (en) * 2003-08-27 2005-03-01 Hon Hai Prec Ind Co Ltd Sales reconciling system and method
US20060004668A1 (en) * 2004-07-01 2006-01-05 Hamnen Jan H Method of distributing electronic license keys
US7552341B2 (en) * 2004-09-01 2009-06-23 Microsoft Corporation Licensing the use of software on a particular CPU
US7725721B2 (en) * 2004-11-18 2010-05-25 Cisco Technology, Inc. Method and system for transferring software and hardware feature licenses between devices
US8126814B2 (en) * 2004-11-18 2012-02-28 Cisco Technology, Inc. Method and system for installing software and hardware feature licenses on devices
US7055740B1 (en) * 2004-12-06 2006-06-06 Target Brands, Inc. Stored-value card adapted to be read by an electronic device
US7890428B2 (en) * 2005-02-04 2011-02-15 Microsoft Corporation Flexible licensing architecture for licensing digital application
US20060217996A1 (en) * 2005-03-23 2006-09-28 E2Interactive, Inc. D/B/A E2Interactive, Inc. Point-of-sale activation of media device account
US20060213978A1 (en) * 2005-03-25 2006-09-28 Bluko Information Group Method and system of advancing value from credit card account for use with stored value account
US20060213979A1 (en) * 2005-03-25 2006-09-28 Bluko Information Group Method and system of detecting fraud and incremental commitment of value
US20060213980A1 (en) * 2005-03-25 2006-09-28 Bluko Information Group Method and system of detecting cash deposits and attributing value
US20060259189A1 (en) * 2005-05-12 2006-11-16 Cruz Bay Solutions, Inc. Method and apparatus for printing a gift card
US20070028233A1 (en) * 2005-07-29 2007-02-01 Miller David D Traffic control software lock and method
US20070043677A1 (en) * 2005-08-17 2007-02-22 Idt Corporation Point of sale product authorization
CN1988469A (zh) * 2005-12-22 2007-06-27 华为技术有限公司 自动管理软件的方法和系统
US9471756B2 (en) * 2006-06-27 2016-10-18 Intuit Inc. Method and apparatus for authorizing a software product to be used on a computer system

Also Published As

Publication number Publication date
CN101359392A (zh) 2009-02-04
AU2008203150A1 (en) 2009-02-12
US20080270310A1 (en) 2008-10-30
CN101359392B (zh) 2016-01-20
GB2451555A (en) 2009-02-04
GB0813340D0 (en) 2008-08-27

Similar Documents

Publication Publication Date Title
DE102008033004A1 (de) Vereinfachen einer dynamischen Konfiguration von Softwareprodukten
DE19964588B4 (de) Verfahren und System zum Herstellen eines Zielcomputersystems
DE69934155T2 (de) Verfahren zum Verkauf von Dateninhalten und Cyber-Einkaufszentrum-System für das Verfahren und Speichermedium für das Dateninhalts-Verkaufsprogramm
Meyer et al. Technology strategy in a software products company
DE10004822A1 (de) System und Verfahren zur Identifizierung und zum beschleunigten Zugriff auf Online-Dienste
DE112012006324T5 (de) Mobile Zahlung über ein virtuelles Peripheriegerät
DE10296676T5 (de) Verfahren und Vorrichtung zum Präsentieren von Inhalt, der über digitales Herunterladen erhältlich ist und zum Ausführen digitaler heruntergeladener Käufe
DE202016008646U1 (de) Händlerbündelungsserver sowie zugeordnetes Trägermedium bzw. nichttemporäres Speichermedium
DE10235429A1 (de) System und Verfahren für das Bereitstellen eines Orts- und Preisschutzes in einer Suchergebnisliste die durch eine Suchmaschine eines Computernetzes erzeugt wird
DE10235804A1 (de) System und Verfahren für das Ermöglichen eines Mehrelementbietens für das Beeinflussen einer Position in einer Suchergebnisliste die durch eine Suchmaschine eines Computernetzes erzeugt wird
DE102008026733A1 (de) Verfahren und System zum Handhaben von Belegen
DE112013002870T5 (de) Benutzerschnittstelle zum Betrachten und Erwerben von Produkten in einem Browser
DE202008018372U1 (de) System zum Verfolgen der Reaktion auf Anzeigen
DE112011103872T5 (de) Verfahren, Computer-Programm und System, um die Voraussetzung eines virtuellen Abbild eines Software-Produkts zu verwalten
DE10309620A1 (de) Dynamisches Expertenschnittstellensystem und Verfahren
DE202008018246U1 (de) Preisbildung für Video-Werbung
DE102016103713A1 (de) Erkennung virtueller Maschineneinheiten auf der Grundlage eines Katalogs
DE102008050302A1 (de) Verfahren und System um Verkäufern Zugang zu ausgewählten Verbrauchern bereitzustellen
DE112008003861T5 (de) Systeme und Verfahren, um Software zum Herunterladen zur Verfügung zu stellen
EP2289038A1 (de) Auswahl- und personalisierungssystem für medien
DE10239294A1 (de) Lokales Erzeugen von Preisangaben unter der Verwendung eines oder mehrerer Preisgestaltungswerkzeuge, die von einem Verkäufer empfangen wurden
DE112009000139B4 (de) Identifikationsgerät und Verfahren für eine Geräteidentifikation
DE10245992A1 (de) Vereinfachung der Bestellungseingabe
DE10239293A1 (de) Dynamische Preisgestaltung in einem unausgeglichenen Markt
DE60004650T2 (de) Verfahren zur erzeugung einer verbindung zwischen einem herausgeber und benutzern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: D YOUNG & CO LLP, DE

R002 Refusal decision in examination/registration proceedings