MX2007005660A - Metodo y aparato para proveer software. - Google Patents

Metodo y aparato para proveer software.

Info

Publication number
MX2007005660A
MX2007005660A MX2007005660A MX2007005660A MX2007005660A MX 2007005660 A MX2007005660 A MX 2007005660A MX 2007005660 A MX2007005660 A MX 2007005660A MX 2007005660 A MX2007005660 A MX 2007005660A MX 2007005660 A MX2007005660 A MX 2007005660A
Authority
MX
Mexico
Prior art keywords
package
provisioning
provision
service
certificate
Prior art date
Application number
MX2007005660A
Other languages
English (en)
Inventor
Martin L Holladay
Thomas G Phillips
Curt Andrew Steeb
Mark C Light
Alexander Frank
James S Duffus
Zeyong Xu
Zhangwei Xu
Paul Christopher Sutton
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MX2007005660A publication Critical patent/MX2007005660A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Health & Medical Sciences (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

Un sistema de provision de software dinamico permite proveer software en un numero de diferentes dispositivos de computo basandose en un procedimiento de negocios deseado. El sistema de provision de software dinamico permite a un usuario solicitar el uso del sistema operativo durante un periodo especifico de tiempo, durante una cantidad especifica de uso, o de otra manera deseada de un sistema operativo que provee servicio o de una tercera parte. El servicio de provision procesa la solicitud del usuario o de la tercera parte para proveer el uso del sistema operativo y en respuesta a la solicitud se provee el uso del sistema operativo para un dispositivo especifico, especificado por la solicitud. El sistema de activacion de software dinamico tambien incluye un modulo de provision local ubicado en el dispositivo que utiliza el sistema operativo, en donde el modulo de provision local activa y desactiva el sistema operativo basandose en instrucciones recibidas del servicio de provision.

Description

MÉTODO Y APARATO PARA PROVEER SOFTWARE CAMPO TÉCNICO Esta patente generalmente se refiere a computadoras y más particularmente a sistemas operativos de computadora.
ANTECEDENTES Un gran porcentaje de la población mundial no puede solventar una computadora propia y/o varios software que permiten un uso eficiente de la computadora. Existe una necesidad de proporcionar acceso que se puede obtener a cómputo para las poblaciones de los p'aíses en desarrollo. Esto también es verdadero en vista de la estructura tradicional de la industria de software en donde las licencias de software generalmente se venden en una base de licencia perpetua. Como resultado de no tener suficientes recursos para comprar licencias perpetuas para varios software, también se prohibe a la gente utilizar tal software incluso en una base a corto plazo para propósitos de entrenamiento, etc. Además, incluso en los países desarrollados, cuando un usuario de computadora necesita utilizar un software particular durante una cantidad limitada de tiempo, el usuario se desalienta por la necesidad de comprar una licencia perpetua para ese software particular. Esto es particularmente verdadero en el caso del sistema operativo para la computadora. Al utilizar la energía de computación para computadoras tecnológicamente avanzadas y los recursos disponibles a través de Internet, es necesario que se utilice un sistema operativo sofisticado para operar la computadora y su comunicación con el Internet y otros recursos. Sin embargo, como en el caso con software, los sistemas operativos generalmente también se venden con licencias perpetuas, y el costo de tales licencias perpetuas usualmente es un poco prohibitivo comparado con la energía de compra de la gente en varios países tercermundistas. Se han intentado varios modelos de negocio para proporcionar una solución alternativa para permitir el uso de software sin requerir la compra de una licencia perpetua. Por ejemplo, varias compañías proporcionan software basado én el modelo de proveedor de servicio de aplicación (ASP), en donde el software que e.s .residente en un servidor en una red tal como Internet puede accederse por un usuario al registrarse en ese servidor. Sin embargo, este método requiere que el usuario se conecte continuamente al servidor a través de Internet. Esto no es una solución viable en varios países en desarrollo, en donde el acceso a Internet no es confiable y es costoso. Alternativamente, los proveedores de software frecuentemente permiten a los usuarios descargar software durante una cantidad fija de tiempo, generalmente para un propósito de prueba, después del cual el usuario tiene que comprar una licencia perpetua para el software. Sin embargo, el período de tiempo para utilizar tal software de prueba usualmente está fijo y el usuario no tiene una elección para comprar un período de tiempo de su propia elección, o para renovar el usuario de software de prueba para cantidad fija adicional de tiempo. Como se puede apreciar fácilmente, existe una necesidad de proporcionar servicios de software a usuarios en una forma para que un usuario pueda comprar los servicios en una variedad de diferentes formas.
BREVE DESCRIPCIÓN DE LA INVENCIÓN Un sistema de activación de software dinámico permite la activación y desactivación de un sistema operativo basándose en un proceso de negocio deseado. El sistema de activación de software dinámico permite a un usuario solicitar el uso del sistema operativo durante un período de tiempo específico, durante una cantidad específica de uso, o en cualquier otra forma deseada de un servicio de provisión de sistema operativo o de una tercera parte. El servicio de provisión procesa la solicitud del usuario o de la tercera parte para proveer el uso del sistema operativo y en respuesta al uso de provisiones de solicitud del sistema operativo para un dispositivo específico especificado por la solicitud. El sistema de activación de software dinámico también incluye un módulo de provisión local localizado en el dispositivo que utiliza el sistema operativo, en donde el módulo de provisión local activa y desactiva el sistema operativo basado en instrucciones recibidas del servicio de provisión.
En una implementación alterna, el sistema de activación de software dinámico permite a un usuario comprar el uso del sistema operativo al comprar una tarjeta de prepago. Al utilizar la tarjeta de prepago, el usuario es capaz de descargar un paquete de provisión que permite al usuario utilizar el sistema operativo durante la cantidad especifica de tiempo. Incluso en otra implementación, el sistema de software dinámico permite a un asegurador vender una computadora con el sistema de activación operativo y una cantidad especifica de tiempo para utilizar el sistema operativo. Incluso en otra implementación alterna, el sistema de activación de software dinámico permite a un usuario utilizar una conexión a un dispositivo de cómputo a un sistema de provisión de software, para descargar un paquete de provisión de software del sistema de provisión de software, en donde el paquete de provisión contiene información que autoriza el uso del servicio de cómputo durante un primer período de tiempo, para analizar el contenido del paquete de provisión de software para determinar un valor de balance de provisión y para activar un software proporcionado si el valor de balance proporcionado está sobre un umbral. Una implementación alterna del sistema de activación de software dinámico para proveer un servicio en un dispositivo de cómputo incluye un módulo de imposición, adaptado para imponer un estado operativo en el dispositivo de cómputo, un módulo de medición adaptado para verificar (1) los usos del servicio y (2) el balance de un recurso de provisión que permite el uso del servicio, un motor de transacción adaptado para consumir el recurso de provisión, y un módulo de comunicación adaptado para recibir un paquete de provisión que proporciona el recurso de provisión. Incluso otra implementación alterna del sistema de activación de software dinámico proporciona un medio legible por computadora que tiene instrucciones ejecutables por computadora para realizar un método que comprende colectar el usuario de un servicio con provisión a un sistema de provisión, descargar un paquete de provisión del sistema de provisión, en donde el paquete de provisión contiene información que autoriza el uso del sistema proporcionado durante un primer período de tiempo, analizar el contenido del paquete de provisión para determinar un valor de provisión, activar el servicio proporcionado si el valor de provisión está sobre un umbral, y desactivar el servicio proporcionados si el valor de provisión no está sobre el umbral.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 es un diagrama de bloque de una red que ¡nterconecta una pluralidad de recursos de cómputo; La Figura 2 es un diagrama de bloque de una computadora que puede conectarse a la red de la Figura 1; La Figura 3 es un diagrama de bloque de un sistema de provisión de software para proveer el sistema operativo en una computadora en la red de la Figura 1; La Figura 4 es un cuadro de flujo que describe el registro de una computadora en el sistema de provisión de software de la Figura 3; La Figura 5 es un diagrama de bloque de un sistema de provisión del núcleo del sistema de provisión de software de la Figura 3; La Figura 6 es un diagrama de bloque de una base de datos de núcleo utilizada por el sistema de provisión de núcleo de la Figura 5; La Figura 7 es un diagrama de bloque de una base de datos de distribución utilizada por el sistema de provisión de software de núcleo de la Figura 3; La Figura 8 es un diagrama de bloque de un módulo de provisión local del sistema de provisión de software de la Figura 3; La Figura 9 es un cuadro de flujo de un programa de registro de clave utilizado por el sistema de provisión de software de la Figura 3; La Figura 10 es un cuadro de flujo de un programa de generación de paquete utilizado por el sistema de provisión de software de la Figura 3; La Figura 11 es un cuadro de flujo de un programa de rutina de arranque utilizado por el sistema de provisión de software de la Figura 3; La Figura 12 es un cuadro de flujo de un programa de distribución de paquete utilizado por el sistema de provisión de software de la Figura 3; La Figura 13 ilustra un cuadro de flujo de un escenario operativo para el módulo de provisión local de la Figura 8; La Figura 14 ilustra otro cuadro de flujo de un escenario operativo para el módulo de provisión local de la Figura 8; La Figura 15 ilustra otro cuadro de flujo de un escenario operativo para el módulo de provisión local de la Figura 8; La Figura 16 ilustra otro cuadro de flujo de un escenario operativo para el módulo de provisión local de la Figura 8; La Figura 17 ilustra incluso otro cuadro de flujo de un escenario operativo para el módulo de provisión local de la Figura 8; La Figura 18 ilustra una GUI ilustrativa presentada al usuario durante el escenario operativo de la Figura 17; La Figura 19 ilustra otra GUI ilustrativa presentada al usuario durante el escenario operativo de la Figura 17; La Figura 20 ilustra otra GUI ilustrativa presentada al usuario durante el escenario operativo de la Figura 17; La Figura 21 ilustra otra GUI ilustrativa presentada al usuario durante el escenario operativo de la Figura 17; La Figura 22 ilustra otra GUI ilustrativa presentada al usuario durante el escenario operativo de la Figura 17; La Figura 23 ilustra otra GUI ilustrativa presentada al usuario durante el escenario operativo de la Figura 17; La Figura 24 ilustra otra GUI ilustrativa presentada al usuario durante el escenario operativo de la Figura 17.
DESCRIPCIÓN D E LA INVENCIO N Aunque el siguiente texto mencione una descripción detallada de numerosas modalidades diferentes, se debe entender que el alcance legal de la descripción se define por las palabras de las reivindicaciones mencionadas la final de está patente. La descripción detallada se va a interpretar solamente como ilustrativa y no describe toda modalidad posible ya que el describir cada modalidad posible sería impráctico, si no es que imposible. Deben implementarse numerosas modalidades alternativas, que utilizan ya sea tecnología actual o tecnología desarrollada después de la fecha de presentación de está patente, que todavía caería dentro del alcance de las reivindicaciones que define la invención. Se debe entender también que, a menos que un término se define expresamente en está patente que utiliza la oración "como se utiliza aquí, el término ' ' se define aquí para significar..." o una oración similar, no hay intención de limitar el significado de ese término, ya sea expresamente o por implicación, más allá de su plano o significado ordinario, y tal término no debe interpretarse para limitarse en el alcance basado en cualquier declaración en cualquier sección de está patente (diferente al lenguaje de las reivindicaciones). Hasta que el punto que cualquier término mencionado en las reivindicaciones al final de está patente se denomine en está patente en una forma consistente con un significado individual, eso se hace para búsqueda de claridad solamente para no confundir al lector, y no pretende que tal término de reivindicación se limite, por implicación o de otra forma, a ese significado individual. Finalmente, a menos que un elemento de reivindicación se defina al mencionar la palabra "significa" y una función sin la mención de cualquier estructura, no pretende que el alcance de cualquier elemento de reivindicación se interprete basándose en la aplicación de 35 U.S.C. §112, sexto párrafo.
Una Red La Figura 1 ilustra una red 10 que puede utilizarse para implementar un sistema de provisión de software dinámico. La red 10 puede ser Internet, una red privada virtual (VPN), o cualquier otra red que permite a una o más computadoras, dispositivos de comunicación, bases de datos, etc., conectarse comunicativamente una con otra. La red 10 puede conectarse a una computadora personal 12 y una terminal de computadora 14 a través de una Ethernet, y un enrutador 18, ytina línea terrestre 20. Por otro lado, la red 10 puede conectarse inalámbricamente a una computadora portátil 22 y un asistente de datos personal 24 a través de una estación de comunicación inalámbrica 26 y un enlace inalámbrico 28. Similarmente, un servidor 30 puede conectarse a la red 10 que utiliza un enlace de comunicación 32 y un macrocomputador 34 puede conectarse a la red 18 que utiliza otro enlace de comunicación 36. Como se describirá más adelante con más detalle, uno o más componentes de sistema de provisión de software dinámico puede almacenarse y operarse en cualquiera de los dispositivos conectados a la red 10.
Una Computadora La Figura 12 ilustra un dispositivo de cómputo en la forma de una computadora 110 que puede conectarse a la red 10 y utilizarse para implementar uno o más componentes del sistema de provisión de software dinámico. Los componentes de la computadora 110 pueden incluir, pero no se limitan a una unidad de procesamiento 120, una memoria de sistema 130, y un conductor común de sistema 121 que se acopla a varios componentes de sistema que incluyen la memoria de sistema a la unidad de procesamiento 120. El conductor de sistema 121 puede ser cualquiera de varios tipos de estructuras de conductor común que incluyen un conductor común de memoria o controlador de memoria, un conductor común periférico, y un conductor común local que utiliza cualquiera de una variedad de arquitecturas de conductor común. A manera de ejemplo, y no de limitación, tales arquitecturas incluyen conductor común de Arquitectura Industrial Estándar, conductor común de Arquitectura de Micro canal (MCA), conductor común ISA Mejorado (EISA), conductor común local de Asociación de Estándares Electrónicos de Video (VESA), y el conductor común de Interconexión de Componente Periférico (PCI) también conocido como conductor común de Mezanine. La computadora 110 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora puede ser cualquier medio que puede accederse por la computadora 110 e incluye tanto medios volátiles como no volátiles, medios removibles y no removibles. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios por comunicación. Los medios de almacenamiento de computadora incluyen medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento de computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento de disco óptico, cassettes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y que puede accederse por la computadora 110. Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte e incluye cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios cableados tal como una red cableada o conexión cableada directa, y medios inalámbricos tal como medios acústicos, de radiofrecuencia, infrarrojos u otros medios inalámbricos. Las combinaciones de cualquiera de los anteriores también deben incluirse dentro del alcance de medios legibles por computadora. La memoria de sistema 130 incluye medios de almacenamiento de computadora en forma de memoria volátil y/o no volátil tal como memoria solo de lectura (ROM) 131 y memoria de acceso aleatorio (RAM) 132. Un sistema de entrada/salida básico 133 (BIOS), que contiene las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 110, tal como durante el arranque, típicamente se almacena en ROM 131. La RAM 132 típicamente contiene datos y/o módulos de programa que son inmediatamente accesibles a y/o actualmente se operan en la unidad de procesamiento 120. A manera de ejemplo, y no de limitación, la Figura 1 ilustra el sistema operativo 134, programas de aplicación 135, otros módulos de programa 136, y datos de programa 137. La computadora 110 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura 1 ilustra una unidad de disco duro 140 que lee de o escribe a medios magnéticos no removibles, no volátiles, una unidad de disco magnético 151 que lee de o escribe a un disco magnético removible, no volátil 152, y una unidad de disco óptico 155 que lee de o escribe a un disco óptico removible, no volátil 156 tal como un CD ROM u otro medio óptico. Otros medios de- almacenamiento de computadora removibles/no removibles, volátiles/no volátiles que puede utilizarse en el ambiente operativo ilustrativo incluyen, pero no se limitan a, casetes de cintas magnética, tarjetas de memoria flash, discos versátiles digitales, cinta de video digital, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 141 típicamente se conecta al conductor común de sistema 121 a través de una interfase de memoria no removible como interfase 140, y unidad de disco magnético 151 y unidad de disco óptico 155 típicamente se conectan al conductor común de sistema 121 por una interfase de memoria removible, tal como interfase 150. Las unidades y sus medios de almacenamiento de computadora asociados discutidos anteriormente e ilustrados en la Figura 1, proporcionan almacenamiento de instrucciones legibles por computadora, estructuras de datos, módulos de programa y otros datos para la computadora 110. En la Figura 1, por ejemplo, la unidad de disco duro 141 se ¡lustra como almacenando el sistema operativo 144, programas de aplicación 145, otros módulos de programa 146, y datos de programa 147. Se debe notar que estos componentes pueden ser los mismos o diferentes del sistema operativo 134, programas de aplicación 135, otros módulos de programa 136, y datos de programa 137. El sistema operativo 144, programas de aplicación 145, otros módulos de programa 146, y datos de programa 147 se les proporciona números diferentes aquí para ilustrar que, al menos, son copias diferentes. Un usuario puede ingresar comandos e información en la computadora 20 a través de ios dispositivos de entrada tal como un teclado 162 y dispositivo de señalamiento 161, comúnmente denominados como un ratón, seguibola o almohadillas sensible al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, palanca de mandos, almohadilla de juegos, antena parabólica, escáner, o similares. Estos y otros dispositivos de entrada frecuentemente se conectan a la unidad de procesamiento 120 a través de una interfase de entrada de usuario 160 que se acopla al conductor común de sistema, pero puede conectarse por otra interfase y estructuras de conductor común, tal como un puerto paralelo, puerto de juegos o un conductor común en serie universal (USB). Un monitor 191 u otro tipo de dispositivo de presentación también se conecta al conductor común de sistema 121 a través de una interfase, tal como una interfase de video 190. Además del monitor, las computadoras también pueden incluir otros dispositivos de salida periféricos tal como bocinas 197 e impresoras 196, que pueden conectarse a través de una interfase periférica de salida 190. La computadora 110 puede operar en un ambiente en red que utiliza conexiones lógicas a una o más computadoras remotas, tal como una computadora remota 110. La computadora remota 110 puede ser una computadora personal, un servidor, un enrutador, una PC de red, un dispositivo par u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente relativos a la computadora 110, aunque solo se ilustra en la Figura 1 un dispositivo de almacenamiento en memoria 181. Las conexiones lógicas ilustradas en la Figura 1 incluyen una red de área local (LAN) 171 y una red de área amplia (WAN) 173, pero también puede incluir otras redes. Tales ambientes en red comúnmente están ubicados en oficinas, en redes de computadora en empresas, intranets e Internet. Cuando se utiliza en un ambiente en red LAN, a la computadora 110 se conecta a la LAN 171 a través de una interfase de red o adaptador 170. Cuando se utiliza en un ambiente en red WAN, la computadora 110 típicamente incluye un módem 172 u otros medios para establecer comunicaciones en la WAN 173, tal como Internet. El módem 172, que puede ser interno o externo, puede conectarse al conductor común de sistema 121 a través de la interfase de entrada de usuario 160, u otro mecanismo apropiado. En un ambiente en red, los módulos de programa ilustrados relativos a la computadora 110, o porciones de la misma, pueden almacenarse en el dispositivo de almacenamiento en memoria remota. A manera de ejemplo, y no de limitación, la Figura 1 ilustra programas de aplicación remotos 185 como residentes en el dispositivo de memoria 181. Se apreciara que las conexiones en red mostradas son ilustrativas y pueden utilizarse otros medios para establecer un enlace de comunicaciones entre las computadoras.
Sistema de Provisión de Software La Figura 3 ilustra un sistema de provisión de software dinámico 200 para proveer el uso de un sistema operativo en un dispositivo de cómputo 202, en donde el dispositivo de cómputo 202 puede ser cualquiera de los dispositivos de cómputo comúnmente conocidos, tal como la computadora de escritorio 12, la computadora portátil 22, el PDA, 24, un teléfono celular, o cualquier otro dispositivo similar. Mientras el sistema de provisión de software 200 se muestra para ¡mplementarse para proporcionar el uso de un sistema operativo, en una implementación alterna, el sistema de provisión de software 200 puede utilizarse para proveer el uso de otros recursos tal como software, firmware, una característica de un dispositivo de cómputo, etc. Similarmente, mientras el sistema de provisión de software 200 se muestra para proveer el uso de un recurso en el dispositivo de cómputo 202 comunicativamente conectado a la red 10, puede utilizarse para implementar tal uso en un dispositivo de cómputo que puede no conectarse a la red 10, o temporalmente puede conectarse a la red 10. El sistema de provisión de software 200 puede incluir un módulo de servicio de provisión 204, que tiene un módulo de servicio de provisión en núcleo 206, un módulo de servicio de distribución 208, un módulo de servicio de certificado 210, una base de datos de núcleo 212, y una base de datos de distribución 214. El sistema de provisión 204 puede comunicarse con un sistema de facturación 216 a través de un adaptador de facturación 218, mientras el módulo de servicio de provisión de núcleo 206 puede comunicarse con la base de datos de distribución 214 a través de un escritor de base de datos 220 y la base de datos de distribución 214 se comunica con el servicio de distribución 208 a través de un lector de base de datos 222. El dispositivo de cómputo 202 puede incluir un módulo de provisión local (LPM) 224 que se comunica con el módulo de servicio de distribución 208 a través de un módulo de servicio de red de distribución 226 y al sistema de facturación 216 a través de un módulo de servicio de red de facturación 228. El módulo de servicio de provisión 204 puede localizarse en un sistema de servidor tal como el servidor 30, u otro sistema comunicativamente conectado a la red 10. Similarmente, el sistema de facturación 216 puede también localizarse en un sistema de servidor tal como el servidor 30, u otro sistema comunicativamente conectado a la red 10. Además, uno o más de los varios componentes del módulo de servicio de provisión 204 puede localizarse en un mismo servidor o en un número de diferentes servidores localizados en diferentes ubicaciones. Por ejemplo, la base de datos de núcleo 212 puede localizarse en un numero de diferentes servidores de base de datos localizados en diferentes ubicaciones y cada uno comunicativamente conectado a la red 10. El funcionamiento del módulo de servicio de provisión 204 y sus varios módulos de componentes se explica en más detalle más adelante. Mientras en la Figura 3, el dispositivo de cómputo 202 se muestra para comunicar el módulo de servicio de distribución 208 y el sistema de facturación 216 a través de módulos de servicio de red 226 y 228, respectivamente, en una modalidad alterna, un usuario del dispositivo de cómputo 202 puede comunicarse con el módulo de servicio de distribución 208 y el sistema de facturación 216 a través de modos alternos de comunicación, tal como teléfono, etc. Por ejemplo, en una situación, en donde no es posible para el dispositivo de cómputo 202 conectarse a la red 10, un usuario del dispositivo de cómputo 202 puede comunicarse a través de un teléfono y una interfase de usuario habilitada para el reconocimiento por voz unida al módulo de servicio de distribución 208, o a través de un representante de servicio de cliente capaz de comunicarse con el módulo de servicio de distribución 208, etc. Cuando el dispositivo de cómputo 202 es una computadora tal como la computadora 110, el LPM 224 puede localizarse en la memoria no removible, no volátil 140, como parte de la memoria del sistema 130, como parte de varios componentes de hardware de la computadora 110, que incluyen la unidad de procesamiento 120, o como cualquier combinación de estos. El funcionamiento del LPM 224 se explica en más detalle más adelante.
Cuadro de Flujo de Sistema de Provisión Haciendo referencia ahora a la Figura 4, un programa de provisión 250 ilustra el funcionamiento general del sistema de provisión de software 200. En un bloque 251, se puede proporcionar al usuario una clave de registro para utilizar un sistema operativo en el dispositivo de cómputo 202. El usuario puede ser provisto con la clave de registro junto con una nueva compra del dispositivo de cómputo 202, como resultado del tiempo adicional de compra del usuario para uso del sistema operativo, etc. Un número de diferentes entidades puede proporcionar una clave de registro al usuario, por ejemplo, un almacenamiento de computadora que vende el dispositivo de cómputo 202 puede proporcionar la clave al usuario, un proveedor de servicio de Internet que vende un grupo de servicio incluyendo el uso del sistema operativo para el dispositivo de cómputo 202 puede proporcionar la clave del registro al usuario, etc.
La clave de registro puede producirse por el módulo de servicio de provisión 204 utilizando el servicio de certificado 210, como se explica con más detalle más adelante, y puede enviarse el proveedor de la clave de registro en una forma segura. Alternativamente, el proveedor de la clave de registro puede producir la clave de registro en una forma como se acordó con el módulo de servicio de provisión 204. La clave de registro puede o no contener información específica para el hardware u otros componentes que identifican el dispositivo de cómputo 202 utilizando la clave de registro. En una implementación del sistema de provisión de software 200, cada clave de registro únicamente identifica el dispositivo de cómputo 202 por la identificación de hardware (HWID) del dispositivo de cómputo 202. Incluso en otra implementación, la clave de registro puede ser un número de identificación de producción, tal como una clave de producto de sistema operativo, etc., y puede producirse por una entidad diferente al servicio de provisión, tal como el de ser desarrollador del sistema operativo, el fabricante de un dispositivo de cómputo que utiliza el sistema operativo, etc. La clave de registro, también denominada como la clave de iniciación (InitKey), puede estar en la forma de una serie de caracteres alfanuméricos, en la forma de una etiqueta de identificación de radio frecuencia (RFID), o en cualquier otra acordada con el formato. Después de proporcionar la clave de registro el usuario, en un bloque 252, el programa de provisión 250 puede determinar si es necesario determinar la clave de registro con el módulo de servicio de provisión 204. Si la InitKey inicialmente se desarrollo por el módulo de servicio de provisión 204, puede no ser necesario registrar la InitKey, como puede almacenarse fácilmente en una base de datos en el módulo de servicio de provisión 204. Alternativamente, si el sistema de provisión de software 200 se establece en una forma para que un vendedor de tercera parte se permita que genere una InitKey basándose en un procedimiento acordado, tal vendedor puede necesitar registrar la InitKey con su generación, o al menos al proporcionarla a un usuario.
Si se determina que es necesario registrar la InitKey, en un bloque 254, el vendedor puede registrar la InitKey con el módulo de servicio de provisión 204. El registro de una InitKey se ilustra con más detalle en la Figura 9 más adelante. Después del registro de la InitKey, en un bloque 256, el programa de provisión 250 genera un paquete de provisión (también denominado como un "paquete") para el dispositivo de cómputo 202. Un paquete de provisión puede utilizarse por el dispositivo de cómputo 202 para permitir al usuario utilizar el sistema operativo durante una cantidad específica de tiempo, durante un período específico, o cualquier otra forma acorda. En una implementación alterna, el paquete de provisión puede utilizarse para permitir al usuario utilizar cualquier otro recurso tal como un software, una aplicación, etc., durante un período específico. El paquete de provisión generado por el módulo de servicio de provisión 204 puede contener información sobre el usuario de ese paquete la cantidad de uso permitida para ese paquete, etc. Por ejemplo, cuando un vendedor vende el dispositivo de cómputo 202 con un mes de uso prepagado del sistema operativo del dispositivo de cómputo 202, en el bloque 256, el módulo de servicio de provisión 204 puede generar un paquete de provisión para el dispositivo de cómputo 202 que permite al dispositivo de cómputo 202 utilizar el sistema operativo durante un período de un mes. Sin embargo, el paquete de provisión puede generarse en una forma que solo el dispositivo de cómputo 202 puede utilizar ese paquete de provisión particular. La generación de paquete de provisión se ilustra con más detalle en la Figura 10 más adelante. Cuando el usuario intenta activar el sistema operativo en el dispositivo de cómputo 202, al encender el dispositivo de cómputo 202, o en cualquier otra forma el LPM 224 puede controlar la activación del sistema operativo. Esto se denota por un bloque 258 del programa 250. Si el LPM 224 detecta que es la primera vez que el usuario intenta utilizar el sistema operativo, el LPM 224 puede solicitar al usuario ingresar la InitKey. En una implementación alterna, el LPM 224 puede escánear el dispositivo de cómputo 202 para determinar si el dispositivo de cómputo 202 se pre llena con la InitKey y si es así el LPM 224 automáticamente recupera ia InitKey del dispositivo de cómputo 202. Después de recibir la InitKey del usuario, el LPM 224 puede conectarse con el módulo de servicio de provisión 204 para solicitar un certificado para el dispositivo de cómputo 202, en donde la solicitud para el certificado incluye, entre otra información, la InitKey y la HWID del dispositivo de cómputo 202. El diseño y operación del LPM 224 se describe con más detalle más adelante en la Figura 7. En respuesta a la solicitud de un certificado, en un bloque 260, el módulo de servicio de provisión 204 puede recibir el certificado del módulo de servicio de certificado 210 y transmite el certificado al dispositivo de cómputo 202 a través del módulo de servicio de distribución 208. El proceso de generar un certificado del módulo de servicio del certificado 210 y transmitir el certificado al dispositivo de cliente se describe con más detalle más adelante en la Figura 10. Al recibir el certificado del módulo de servicio de provisión 204, en un bloque 262, el LPM 224 puede determinar si es necesario obtener paquetes de provisión adicionales para usar el sistema operativo en el dispositivo de cómputo 202. El LPM 224 puede consumir los paquetes de provisión recibidos del módulo de servicio de provisión 204 basándose en una regla del negocio tal como, el tiempo durante el cual se utilizó el dispositivo de cómputo 202, el período de tiempo actual, o cualquier regla del negocio similar. Como se describe además más adelante, el LPM 224 puede tener un módulo de almacenamiento del paquete de provisión local que contiene el paquete de provisión previamente recibido del módulo de servicio de provisión 204. El LPM 224 puede seleccionar un paquete de provisión de tal almacenamiento de paquete local y analiza su contenido para determinar si se necesitan paquetes adicionales para solicitarse desde el módulo de servicio de provisión 204. La selección en paquete de provisión y el análisis del paquete de provisión seleccionado se explica en más detalle más adelante en la Figura 7 posteriormente. Si se determina que es necesario solicitar paquetes de provisión adicionales, en un bloque 264 el LPM 224 puede enviar una solicitud al módulo de servicio de provisión 204 para recibir paquetes de provisión adicionales. El LPM 224 puede enviar cada solicitud al PCM en un número de diferentes formas, que incluyen conectar al módulo de servicio de red 226 del módulo de servicio de distribución 208, solicitar que el usuario de cómputo 202 contacte un representante de servicio de cliente en el módulo de servicio de provisión" 204, o cualquier otra forma deseada. La solicitud de paquetes de provisión puede incluir información que identifica el dispositivo de cliente, el sistema operativo utilizado por el dispositivo de cliente, etc. Al recibir la solicitud del dispositivo de cómputo 202 para un paquete provisional, en un bloque 266, el módulo de servicio de provisión 204 puede generar y distribuir un paquete de provisión para el LPM 224. Cada paquete de provisión proporcionado al LPM 224 puede contener varias informaciones que identifican el dispositivo de cómputo 202, el sistema operativo utilizado por el dispositivo de cómputo 202,- el tipo de paquete, el número de secuencia de paquete, tiempo durante el cual se permitió que el dispositivo de cómputo 202 utilizara el sistema operativo o la fecha en la cual el uso del sistema operativo expira, etc. Una firma digital que permite al LPM 224 verificar la información en el paquete de provisión también puede incluirse en el paquete de provisión. Alternativamente, bajo un protocolo de seguridad diferente, la firma digital que permite al LPM 224 verificar la información en el paquete de provisión también puede transmitirse de forma separada al LPM 224. La generación y distribución de un paquete de provisión se describe en más detalle en la Figura 12 posteriormente. Al recibir el paquete de provisión, en un bloque 268, el LPM 224 puede procesar el paquete de provisión, que se describe en más detalle en la Figura 7 posteriormente. Después de analizar el contenido de un paquete de provisión, si el LPM 224 determina que tiene permiso de habilitar el uso del sistema operativo en el dispositivo de .cómputo 202, en un bloque 270, el dispositivo de cómputo 202 puede encender el sistema operativo en el dispositivo de cómputo 202.
Sistema de Provisión de Núcleo La Figura 5 ilustra un diagrama de bloque detallado del módulo de servicio de provisión del núcleo 206 de la Figura 3. El módulo de servicio de provisión de núcleo 206 puede implementarse en el servidor 30, el macrocomputador 34, o cualquier otro dispositivo adecuado comunicativamente conectado a la red 10. El módulo de servicio de provisión de núcleo 206 puede- comunicarse con el módulo de servicio de certificado 210, el adaptador de facturación 218, el DB de núcleo 212, y el módulo del servicio de distribución 208. El servicio de provisión de núcleo 206 puede incluir una interfase de facturación 280 que se comunica con el adaptador de facturación, una interfase de servicio de certificado 282 para comunicarse con el módulo de servicio de mercado 210, una interfase de servicio de distribución 288. para comunicarse, con el módulo de servicio de "distribución 208, un módulo de actualización de cuenta 284, un generador de paquete 286, y un módulo de acceso de datos 290 que se comunica con la base de datos de núcleo 21 y la base de datos de distribución 214. La interfase de facturación 280 puede implementarse al utilizar una interfase de web, un VPN para el adaptador de facturación 218, o cualquier otra forma deseada bien conocida por aquellos expertos en la técnica. En una implementación particular, la interfase de facturación 280 puede implementarse al utilizar una interfase de fila de mensaje de Microsoft (MSMQ)™. Alternativamente, una interfase diseñada que utiliza un protocolo de industria diferente, tal como Microsoft Biztal ™ diseñado al utilizar el protocolo de ¡nterfase de aplicación de empresa (EAl) también puede utilizarse para implementar la interfase de facturación 280. La tecnología de MSMQ™ también puede utilizarse para implementar la ¡nterfase de servicio de distribución 288 y el módulo de acceso de datos 290. El módulo de interfase de facturación 280 puede recibir solicitudes del adaptador de facturación 218 para registrara la InitKey para dispositivos de cómputo, se comunica con la actualización de cuenta para proporcionar información de actualización de cuenta, pone en la rutina de arranque varios dispositivos de cómputo, que solicitan certificados de cliente para el dispositivo de cómputo del módulo de servicio de certificado 210, etc. El módulo de actualización de cuenta 284 puede ser responsable de crear, mantener y actualizar una cuenta para el dispositivo de cómputo 202. El módulo de actualización de cuenta 284 puede recibir información del adaptador de facturación 218 con respecto a la configuración y actualizaciones para una cuenta del dispositivo de cómputo 202 y puede comunicarlo con el generador de patente 286 para generar y almacenar paquetes de provisión para el dispositivo de cómputo 202. Por ejemplo, un asegurador, tal como una compañía de telecomunicaciones puede vender un bloque de tiempo de uso para el sistema operativo en el dispositivo de cómputo 202 y que utiliza el adaptador de facturación 218, envía una solicitud de actualización de cuenta al servicio de provisión de núcleo 206 para actualizar la cuenta del dispositivo de cómputo 202 por consiguiente. Al recibir la solicitud de actualización de cuenta del adaptador de facturación 218, el módulo de actualización de cuenta 284 puede hacer las entradas necesarias en la base de datos del núcleo 212 que utiliza el módulo de acceso de datos 290 y que comunica con el generador de paquete para generar los paquetes de provisión necesarios. En un caso alterno, el módulo de servicio de distribución 208 puede recibir una solicitud del dispositivo de cómputo 202 para comprar un paquete de provisión para el dispositivo de cómputo 202. Por otro lado, cuando el dispositivo de cómputo 202 envía una solicitud al servicio de provisión del núcleo 206 ya sea para un certificado o para paquetes de provisión, el módulo de actualización de cuenta 284 puede recuperar un paquete de provisión de la base de datos de núcleo 212, actualizar la información de cuenta para el dispositivo de cómputo 202, y comunicarse con el módulo de servicio de distribución 208 para enviar el paquete de provisión al dispositivo de cómputo 202. Cuando el servicio de provisión del núcleo 206 recibe una solicitud del dispositivo de cómputo 202 para un certificado o un paquete de provisión, el servicio de provisión de núcleo 206 puede comunicarse con el módulo de servicio de certificado 210 utilizando la interfase de servicio de certificado 282 para recibir un certificado o para verificar un certificado. El módulo de servicio de certificado 210 puede implementarse la utilizar cualquiera de la técnica de certificación estándar que permite la generación y manejo de certificados codificados crípticamente. Por ejemplo, el módulo de servicio de certificado 210 puede implementarse la utilizar una autoridad de certificado que cumple con la infraestructura de clave pública (PKI). El módulo de servicio de certificado 210 puede incluir un administrador de clave 292 que es responsable de la generación de claves gemelas asimétricas codificadas crípticamente, identificación y verificación de suscriptores de clave, etc. El módulo de servicio de certificado 210 también puede incluir un generador de certificado para enlazar una clave pública a una cuenta de cliente por medio de un certificado digital, para emisión, mantenimiento, admisión, revocación, suspensión, reinicio, y renovación de tales certificados, y para creación y manejo de un depósito de clave pública. La generación y manejo de un certificado para un cliente se ilustran con más detalle en la Figura 11 más adelante. La interfase de servicio de certificado 282 puede firmar un paquete de provisión generado por el generador de paquete 286 al utilizar el certificado generado por el módulo de servicio de certificado 210 antes de que se envíe al dispositivo de cómputo 202. La ¡nterfase de servicio de certificado 282 también puede comunicarse con el módulo de servicio de certificado 210 para verificar una firma de cliente en solicitudes de paquete, etc. El servicio de provisión de núcleo 206 puede ser responsable de publicar un paquete de provisión y otra información de rutina de arranque de dispositivo de cliente, tal como el certificado de dispositivo de cliente, en la base de datos de distribución 214. Se debe notar que el módulo de servicio de distribución 208 puede tener permiso de leer información de la base de datos de distribución 214, sin embargo, para mantener la integridad de información de cuenta, el módulo de servicio de distribución 208 generalmente no tiene permiso de publicarlo en la base de datos de distribución 214. Mientras los varios módulos en el servicio de provisión de núcleo 206 se muestran como módulos distintos que realizan diferentes tareas descritas anteriormente, se debe entender que este delineado es para propósitos de ilustración solamente, y que en la práctica, todos estos módulos diferentes pueden implementarse en una forma diferente para que uno o más de estos módulos se combinen, todos estos módulos pueden ¡nteractuar uno con otro en una forma diferente, etc.
Esquema de Base de Datos de Núcleo La Figura 6 ilustra un esquema de base de datos de núcleo 310 que puede utilizarse para una implementación de la base de datos de núcleo 212. El esquema de base de. datos de núcleo 310 puede incluir un cuadro de rutina de arranque 312, un cuadro de dispositivo de cómputo 314, un cuadro de trabajo 316, un cuadro de paquete 318, un cuadro de configuración 320, un cuadro de registro de dispositivo de cómputo 322, un cuadro de tipo 324, un cuadro de registro de trabajo 326 y un cuadro de estado 328. Tal esquema de datos de base de datos de núcleo 310 puede implementarse utilizando cualquiera del software de base de datos en relación conocido y varios cuadros del esquema de base de datos de núcleo 310 pueden almacenarse en un servidor de base de datos individual en servidores de base de datos separados conectados uno con otro a través de una red tal como la red 10. El cuadro de rutina de arranque 312 puede almacenar datos de rutina de arranque para un dispositivo de cómputo, tal como el dispositivo de cómputo 202, que puede proporcionarse al utilizar el sistema de provisión de software 200, en donde tales datos se reciben de un asegurador a través del adaptador de facturación 218. Cada registró en el cuadro de rutina de arranque 312 puede incluir información que incluye un campo de identificación de registro, identificación para un dispositivo de cómputo, una InitKey proporcionada al usuario del dispositivo de cómputo, una cuenta de entrega que identifica el número de veces que se entrego un paquete a un dispositivo de cómputo y un estado de rutina de arranque del dispositivo de cómputo. El cuadro del dispositivo de cómputo 314 puede almacenar datos relacionados con un dispositivo de cómputo, tal como el dispositivo de cómputo 202, que puede proporcionarse utilizando el sistema de provisión de software 200. El cuadro de dispositivo de cómputo 314 puede almacenar varios datos relacionados con el dispositivo de cómputo que se agregan a un paquete de registro o un paquete de provisión enviado a dispositivo de cómputo. El cuadro de dispositivo de cómputo 314 puede utilizarse para identificar el dispositivo de cómputo y rastrear el estado del dispositivo de cómputo. Cada registro en el cuadro de dispositivo de cómputo 314 puede incluir información que incluye un campo de identificación de registro, una identificación de hardware que especifican la configuración de hardware del dispositivo de cómputo, ultimo número de secuencia que representa el número de secuencia de un paquete de provisión previa enviado al dispositivo de cómputo, etc. El cuadro de trabajo 316 almacena datos que pueden crearse basándose en varias solicitudes de provisión para el módulo de servicio de provisión 204, en donde cada solicitud de provisión crea U .-^®iLevo registro del cuadro de trabajo 316. Los registros en el cuadro de trabajo 316 pueden utilizarse para rastrear el estado de trabajo de provisión de las varias solicitudes de provisión. Cada registro en el cuadro de trabajo 316 incluye información que incluye un campo de identificación de registro, una identificación de dispositivo de cómputo, una identificación de tipo de trabajo, una identificación de rastreo de trabajo, una señal para la solicitud de provisión, una identificación de cuenta para el dispositivo de cómputo que hace la solicitud de provisión, la fecha y el tiempo de la solicitud de provisión, el estado de procesamiento de la solicitud de provisión, etc. El cuadro de paquete 318 almacena datos de paquete que pueden crearse basándose en datos de trabajo, en donde un trabajo puede crear uno o más paquetes. El cuadro de paquete se utiliza para rastrear el estado de distribución de varios paquetes de provisión generados en respuesta a las solicitudes de provisión recibidas ya sea del módulo de servicio de distribución 208 o del adaptador de facturación 218. Cada registro en el cuadro de paquete puede incluir información sobre la identificación de registro, una identificación de trabajo que representa un trabajo que causa que el paquete se cree, varios datos contenidos dentro del paquete, una cuenta de entrega que describe cuantas veces se entrego un paquete a un dispositivo de cómputo particular desde la recepción del último reconocimiento de descarga de paquete de ese dispositivo de cómputo particular, y un estado que denota una etapa de procesamiento del paquete. El cuadro de configuración 320 puede almacenar datos que representan todos los pares de valor de nombre de los datos de configuración de servidor, que describe en un servidor que se utiliza para implementar la base de datos de núcleo 212. Cada registro en el cuadro de configuración 320 puede incluir información sobre el espacio de nombre del servidor, un nombre y una configuración de un par de valor de nombre del servidor. El cuadro de registro de dispositivo de cómputo 322 puede registrar varias actividades que se relacionan con un dispositivo de cómputo, diferentes a un trabajo relacionado con cada dispositivo de cómputo. Cada registro en el cuadro de registro del dispositivo de cómputo 322 puede incluir información sobre la identificación de registro, identificación de dispositivo de cómputo, un tipo del dispositivo de cómputo, datos que describen el dispositivo de cómputo y el tiempo cuando el dispositivo de cómputo se registro con el módulo de servicio de provisión 204. Por ejemplo, el tipo de dispositivo de cómputo puede ser cualquiera de, un tipo creado por registro de rutina de arranque, una rutina de arranque en tipo de progreso, un tipo completo de rutina de arranque, una rutina de arranque sobre tipo de límite (que denota que más de un número específico de certificado se entregaron al dispositivo de cómputo sin recibir un reconocimiento del dispositivo de cómputo), un tipo solicitado de certificado, un tipo solicitado de paquete, etc. El cuadro de tipo 324 puede utilizarse para predefinir varios tipos enumerables que se utilizan por el cuadro de trabajo 316, el cuadro de registro de dispositivo de cómputo 322 y el cuadro de registro de trabajo 326. El cuadro de registro de trabajo 326 puede utilizarse para registrara varias actividades que se relacionan con un trabajo o un paquete, en donde cada registro puede incluir información que incluye una identificación de registro, una identificación de trabajo, un tipo del trabajo, una descripción del trabajo, un tiempo cuando se registro el trabajo, etc. El cuadro de estado 328 puede utilizarse para predefinir varios estados enumerables que se utiljzan en el cuadro de rutina de arranque 312, el cuadro de dispositivo de cómputo 314, el cuadro de trabajo 316 y el cuadro de paquete 318.
Esquema de Base de Datos de Distribución La Figura 7 ilustra un esquema de base de datos de distribución 340 que puede utilizarse para una implementación de la base de datos de distribución 214. El esquema de base de datos de distribución 340 puede incluir un cuadro de rutina de arranque de distribución 342 y un cuadro de paquete de distribución 344. El esquema de base de datos de distribución 340 puede implementarse la utilizar cualquier software de base de datos en relación bien conocido y los varios cuadros del esquema de base de datos de distribución 340 pueden almacenarse en un servidor de base de datos individual o en servidores de base de datos separados conectados uno con otro a través de una red tal como la red 10. El cuadro de rutina de arranque de distribución 342 puede almacenar datos de rutina de arranque que se publican por el servicio de provisión de núcleo 206 durante el registro de un dispositivo de cómputo. Cada registro del cuadro de rutina de arranque de distribución 342 puede contener información que Incluye una identificación de registro, una InitKey relacionada con un dispositivo de cómputo particular y una identificación de hardware de ese dispositivo de cómputo particular, y los registros en el cuadro de rutina de arranque 342 pueden removerse por el servicio de provisión de núcleo 206 cuando el rutina de arranque para ese cómputo particular se completa. El cuadro de paquete de distribución 344 puede almacenar paquetes generados por el servicio de provisión de núcleo 206. Cada registro del cuadro de paquete de distribución 344 puede corresponder a un paquete particular e incluye información que incluye una identificación de registro, una identificación de hardware que describe un dispositivo de cómputo que utilizara ese paquete particular, el número de secuencia de paquete de ese paquete particular, contenido de ese paquete particular, una cuenta de entrega que especifica el número de veces de que se transmitió ese paquete particular a un dispositivo de cliente sin recibir un reconocimiento, y cuenta de una entrega máxima que especifican el número de veces que el módulo de servicio de distribución 208 pueda intentar entregar ese paquete particular a un dispositivo de cliente. Cuando se descarga un paquete particular exitosamente por un dispositivo de cómputo de cliente, el registro relacionado con ese paquete particular puede removerse del cuadro de paquete de distribución 344. También, si la cuenta de entrega para un paquete particular es más que una cuenta de entrega máxima, el registro relacionado con ese paquete particular también puede removerse del cuadro de paquete de distribución 344.
Modulo de Provisión Local La Figura 8 ilustra otro diagrama de bloque detallado del LPM 224. El LPM 224 es un componente lateral del cliente del sistema de provisión de software 200 que reside en un dispositivo de cómputo tal como el dispositivo de cómputo 202. El LPM 224 puede realizar varias funciones que incluyen interactuar con usuarios de los dispositivos de cómputo que utilizan un servicio proporcionado por el sistema de provisión de software 200, que interactúa con el módulo de servicio de distribución 208 a través de la red 10, etc. El LPM 224 puede realizar la función de imponer un estado particular en el dispositivo de cómputo de cliente 202 al interactuar con el programa de registro particular utilizado por el dispositivo de cómputo de cliente 202. En una implementación particular en donde el dispositivo de cliente está utilizando el sistema de activación de producto de Windows® (WPA) como la lógica de registro, el LPM 224 puede interactuar con el WPA para imponer el estado particular en el dispositivo de cómputo de cliente 202. Sin embargo, en una implementación alterna, el LPM 224 puede interactuar con cualquier otro programa de registro de sistema operativo apropiado. La implementación del LPM 224 se describe en la Figura 8 como una agrupación de varios componentes lógicos implementados en software y compuestos como una biblioteca enlazada en un programa de registro utilizado por el WPA. Sin embrago, en una implementación alterna del LPM 224, pueden implementarse uno o más de varios componentes lógicos del LPM 224 en el hardware. Específicamente, el LPM 224 puede incluir un módulo de agregado de imposición 352 para imponer la dispositivo de cómputo 202 para operar en un estado particular, un módulo de medición 354 para medir el uso de un recurso proporcionado por el sistema de provisión de software 200, una máquina de transacción 356 para comerciar al utilizar paquetes de provisión proporcionados por el servicio de provisión de núcleo 206, un administrador de almacenamiento seguro 358 para proporcionar almacenamiento seguro para los paquetes de provisión, un módulo de comunicación 360 para comunicarse con el servicio de provisión de núcleo 206, y un módulo de experiencia de usuario 362 para interactuar con un usuario. El módulo de agregado de imposición 352 puede insertarse en la lógica de registro 364 del dispositivo de cómputo 202. Cuando un usuario se registra en el dispositivo de cómputo 202 utilizando la lógica de registro 364, el módulo de adición de imposición 352 dentro de la lógica de registro 364 puede consultar al módulo de medición 354 sobre la información de balance de los paquetes de provisión. Si el módulo de agregad de imposición 352 determina que el dispositivo de cómputo 202 tiene suficientes paquetes de provisión puede permitir que la lógica de registro 364 opere en su rutina normal y permita al usuario registrarse en el dispositivo de cómputo 202. Sin embargo, si el módulo de agregado de imposición 352 determina que el dispositivo de cómputo 202 no tiene suficientes paquetes de provisión, fuerza al dispositivo de cómputo 202 a ingresar a un estado desactivado. En tal estado desactivado, la interfase de usuario limitado, que es solo necesaria para activar el dispositivo de cómputo 202, se proporciona al usuario del dispositivo de cómputo 202. El módulo de medición 354 puede incluir un administrador de balance 366 para leer y verificar un balance actual disponible para uso del recurso proporcionado, actualizar el balance actual y para procesar los paquetes de provisión. El módulo de medición 354 también puede incluir un administrador de configuración 368 y un administrador de reloj confiable 370 para mantener un cronometro siempre en aumento. El administrador de reloj confiable 370 puede utilizar un reloj de hardware confiable 372 para realizar a cabo la tarea de mantener el cronometro siempre en aumento. El administrador de balance 366 y el administrador de reloj confiable 370 con muy perceptibles e importantes para la operación segura del. LPM 224, y es probable. que estén bajo varios ataques de seguridad durante la operación del LPM 224. El módulo de agregado de imposición 352 y el módulo de medición 354 pueden trabajar juntos para implementar la activación y desactivación del recurso proporcionado en el dispositivo de cómputo 202. El módulo de agregado de imposición 352 puede funcionar como un surtidor de evento dentro de la lógica de registro 364 que evoca al administrador de balance 366 basándose en ciertos eventos, mientras el administrador de balance 366 puede determinar que acción tomar cuando evoque en respuesta a un evento. Ejemplos de varios eventos que puede causar el módulo de agregado de imposición 352 para activar el administrador de balance 366 son (1) un evento de registro, (2) un evento de apertura de sistema, (3) una restauración del evento de invernación, (4) un despertar de un evento de pausa, (5) un evento impulsado por usuario, (6) un evento de salida de registro, (7) una descarga de paquete, (8) un contador de cronometro, (10) un evento de cierre de sistema, (11) un evento de inicio de protector de pantalla, (12) un evento de detención de protector de pantalla, etc. El administrador de balance 376 puede aceptar el evento como una entrada y regresar una acción de resultado al módulo de agregado de imposición 352. Por ejemplo, cuando un usuario se registra, el módulo de agregado de imposición 352 puede enviar un evento de registro de usuario al administrador de balance 366. En respuesta al evento de registro del usuario, el administrador de balance 366 puede consultar el balance actual disponible para utilizar el recurso proporcionado, si el balance suficiente, el administrador de balance 366 puede regresar una acción de registro al módulo de agregado de imposición 352. Sin embargo, si el balance no es suficiente, el módulo de agregado de imposición 352 puede causar que la lógica de registro 364 regrese una ¡nterfase de usuario de notificación (Ul) 398, en donde la Ul de notificación permite al usuario aumentar el balance y de esa forma activar el dispositivo de cómputo 202 al comprar paquetes de provisión adicionales del módulo de servicio de provisión 204. El motor de transacción 356 puede procesar un paquete de provisión con el fin de actualizar un balance y un contador de consumo de paquete en el administrador de balance 366. La máquina de transacción 356 puede asegurar que cualquier paquete de provisión se consume solamente una vez para actualizar el balance. La máquina de transacción 356 puede diseñarse para que actualice el balance y el contador de consumo de paquete juntos, de esa forma ya sea tanto el balance como el contador de consumo de paquete se actualizan o ninguno del balance y el contador de consumo de paquete se actualizan. Alternativamente, la máquina de transacción 356 también puede utilizarse para mantener la consistencia de los datos de balance para asegurara que los datos de balance no se corrompen por algún evento inesperado. Un ejemplo del funcionamiento de la máquina de transacción 356 se proporciona más adelante. En este ejemplo, suponer que un usuario utiliza dos tarjetas de prepago para comprar tiempo de uso para el recurso proporcionado, la primera tarjeta durante diez horas y una segunda tarjeta durante veinte horas. Debido a que el módulo de servicio de provisión 204 no mantiene el balance total, se crean dos grupos separados de información de licencia en el módulo de servicio de provisión 204, uno para diez horas y uno para veinte horas. Cuando el usuario contacta el módulo de servicio de provisión 204 para descargar los paquetes de provisión en el dispositivo de cómputo 202, cada uno de los paquetes de provisión descargados en el dispositivo de cómputo 202 tiene- un número de paquete de provisión único. Cuando la máquina de transacción 356 procesa el primer paquete, aumenta el contador de consumo de paquete y aumenta el balance por diez horas, subsecuentemente, cuando la máquina de transacción 356 procesa el segundo paquete, de nuevo aumenta el contador de consumo de paquete y aumenta el balance por otras veinte horas. El administrador de almacenamiento asegurado 358 puede permitir al LPM 224 almacenar los datos de balance en una forma asegurada para que no puedan alterarse por un usuario y para que sea accesible solo por el LPM 224. Después de que se descarga un paquete de provisión por el LPM 224, puede almacenarse en el administrador de almacenamiento asegurado 358. Similarmente, el contador de balance y el contador de consumo de paquete también pueden almacenarse en el administrador de almacenamiento asegurado 358. En la implementación ilustrada, el administrador de almacenamiento asegurado 358 se implementa con una biblioteca de enlace dinámico (d 11 ) para que el módulo de experiencia de usuario 362 pueda acceder al administrador de almacenamiento asegurado 358.
Para asegurar que los datos almacenados en el administrador de almacenamiento asegurado 358 sean seguros, puede utilizarse una clave de codificación críptica de datos para almacenar los datos en el administrador de almacenamiento asegurado 358 y solo un módulo que tiene una clave de codificación críptica de datos es capaz de leer los datos del administrador de almacenamiento asegurado 358. El administrador de almacenamiento asegurado 358 puede comunicarse con un subsistema de autoridad de seguridad local (LSA) 374 para comunicarse con una base de datos LSA 376, un controlador de almacenamiento 378 para comunicarse con el almacenamiento de hardware seguro 380, y un controlador de sistema de archivo 382 para comunicarse con un archivo 384 en el dispositivo de cómputo 202. Para la seguridad agregada, una implementación alterna del administrador de almacenamiento asegurado 358 también puede utilizar múltiples copias de datos almacenadas en el administrador de almacenamiento asegurado 358 para que cada copia pueda relacionarse para asegurar que no está alterando ninguna copia individual de los datos. Mientras, la implementación del LPM 224 discutida aquí tiene el administrador de almacenamiento asegurado 358 ímplementado en software, en una implementación alterna, el administrador de almacenamiento asegurado 358 puede implementarse en hardware. El módulo de comunicación 360 puede incluir un administrador de solicitud de paquete/certificado 386 para solicitar paquetes de provisión y/o certificado del módulo de servicio de provisión 204, un administrador de compra 388 para comprar paquetes de provisión adicionales del sistema de facturación 216 y/o del módulo de servicio de provisión 204, y un administrador de comunicación de servicio web 390 que permite al LPM 224 comunicarse con la red 10. El administrador de solicitud de paquete/certificado 386 puede recibir una solicitud del módulo de experiencia de usuario 362 para solicitar un paquete o un certificado del módulo de servicio de provisión 204. Por ejemplo, cuando el usuario se registra en el dispositivo de cliente por primera vez al ingresar la InitKey en una Ul, el módulo de experiencia de usuario 362 puede pasar la InitKey al administrador de solicitud de paquete/certificado 386 y el administrador de solicitud de paquete/certificado 386 puede comunicarse con el módulo de servicio de provisión 204 para recibir un certificado del módulo de servicio de provisión 204. El administrador de solicitud de paquete/certificado 386 también puede ser responsable de reconocer el módulo de servicio de provisión 204 con la descarga exitosa de un certificado o un paquete de provisión. El administrador de solicitud de paquete/certificado 386 puede utilizar un protocolo de provisión para comunicarse con el módulo de servicio de provisión 204. Un paquete descargado por el administrador de solicitud de paquete/certificado 386 puede almacenarse en el administrador de almacenamiento asegurado 358.
El administrador de compra 388 puede permitir a un usuario del dispositivo de cómputo 202 comprar paquetes de provisión adicionales al recibir información de pago del usuario y comunicar la información de pago al sistema de facturación 216 o al módulo de servicio de provisión 204. Tanto el administrador de solicitud de paquete/certificado 386 como el administrador de compra 388 pueden comunicarse con la red 10 utilizando el administrador de comunicación de servicio 390. El administrador de comunicación de servicio web puede utilizar un administrador de servicio de red 392 y una tarjeta de ¡nterfase de red (NIC) 394 para comunicarse con la red 10. Observar que en la presente implementación, el administrador de comunicación de servicio web 390 se utiliza para comunicarse con la red 10, en una implementación alterna, otras herramientas de comunicación, tal como el controlador de protocolo de transferencia de archivo (FTP) etc., puede utilizarse para comunicarse con la red 10. El módulo de experiencia de usuario 362 puede incluir una interfase de usuario de activación (Ul) 396 para pedir al usuario que ingrese la InitKey que permite al administrador de solicitud de paquete/certificado 386 descargar el certificado del módulo de servicio de provisión 204, y una Ul de notificación 398 que permite al LPM 224 interactuar con el usuario. Por ejemplo, cuando un usuario compro una tarjeta prepagada para utilizar un recurso proporcionado, la Ul de activación 396 puede pedir al usuario que ingrese el número proporcionado por la tarjeta prepagada e invocar al administrador de solicitud de paquete/certificado 386 a descargar los paquetes de provisión más resientes correspondientes al número de tarjeta prepagada. La Ul de activación 396 también puede invocar al administrador de compra 388 para permitir que un usuario compre paquetes de provisión adicionales y puede diseñarse para que al termino de la compra pueda invocar automáticamente al administrador de solicitud de paquete/certificado 386 para descargar los paquetes de provisión correspondientes a la compra. La Ul de notificación 398 puede incluir varias interfases de usuario que permiten al usuario consultar información de balance actual, historial de uso, etc. La Ul de notificación 398 puede invocarse por el usuario o por la lógica de registro 364. En una situación en donde el balance disponible para utilizar un recurso proporcionado es bajo, la lógica de registro 364 puede invocar a la Ul de notificación 398 a informarle al usuario que es necesaria una compra adicional-. La Ul de notificación puede estar constantemente activa y puede proporcionar servicio de notificación al usuario a través de un icono de barra de tareas, una aplicación pequeña de panel de control, un globo de aparición instantánea, o al utilizar cualquier otro método de Ul conocido comúnmente. Al haber descrito los varios componentes del sistema de provisión de software 200, las siguientes Figuras 9-12 describen la operación del sistema de provisión de software 200 con más detalle.
Registro de InitKev La Figura 9 ¡lustra un cuadro de flujo de un programa de registro 430 que puede utilizarse para registrar una InitKey con el servicio de provisión de núcleo 206. En un bloque 432, el proveedor de la InitKey envía una solicitud de registro de InitKey al servicio de provisión de núcleo 206. Como se discutió anteriormente, el proveedor puede ser el sistema de facturación 216, que puede manejarse por una tercera parte, tal como un vendedor del dispositivo de cómputo 202, el vendedor de uso para el sistema operativo del dispositivo de cómputo 202, un representante de servicio de consumidor (CSR) del sistema de provisión de software 200, etc. La solicitud de registro InitKey puede recibirse en una fila de mensaje de servicio de provisión de núcleo 206. Con el reconocimiento de una solicitud de registro de InitKey en esta fila de mensaje, en un bloque 434, el servicio de provisión de núcleo 206 puede iniciar el procedimiento de registro. En un bloque 436, la InitKey puede agregarse al cuadro de Rutina de arranque 312 de la base de datos de núcleo 212 y el programa de registro 430 puede establecer el estado de rutina de arranque a "Creado". Subsecuentemente, en un bloque 438, el servicio de provisión de núcleo 206 puede registrar un mensaje de "rutina de arranque creado" en el cuadro de registro de dispositivo de cómputo 322. Finalmente, en un bloque 440, el servicio de provisión de núcleo 206 puede enviar un mensaje de "publicación de rutina de arranque a" a la fila de mensaje de a base de datos de Distribución 214.
Generación de Paquetes La Figura 10 ilustra un cuadro de flujo de un programa de generación de paquete 450 que puede utilizarse para generar paquetes de provisión para utilizarse por el LPM 224 del dispositivo de cómputo 202. En un bloque 452, el adaptador de facturación 218 puede enviar un mensaje de solicitud de provisión al servicio de provisión de núcleo 206 para paquetes de provisión. Mientras el servicio de provisión de núcleo 206 puede conectarse a un número de aseguradores, tal mensaje de solicitud de provisión se forma en la interfase MSMQ que conecta el adaptador de facturación 218 al servicio de provisión de núcleo 206. Al recuperar un mensaje de solicitud de provisión del adaptador de facturación 218, en un bloque 454, el servicio de provisión del núcleo 206 puede iniciar una transacción de generación de paquete.
En un bloque 456, el servicio de provisión al núcleo 206 puede agregar un nuevo registro de dispositivo de cómputo al cuadro de dispositivo de cómputo 314 que utiliza una identificación de hardware del mensaje de solicitud de provisión. Sin embargo, si un registro que contiene la identificación de hardware ya está presente en el cuadro de dispositivo de cómputo 314, puede no ser necesario agregar un nuevo registro de dispositivo de cómputo. Subsecuentemente, en un bloque 458, el servicio de provisión de núcleo 206 puede agregar un nuevo registro de trabajo al cuadro de trabajo 316 que graba una nueva solicitud de trabajo para el paquete de provisión. El servicio de provisión de núcleo 206 puede establecer el estado de un registro de trabajo recientemente agregado a "Creado". En un bloque 460, el servicio de provisión de núcleo 206 puede agregar el nuevo registro en el cuadro de registro de trabajo 326, con la fecha y tiempo del mensaje de solicitud de provisión. En un bloque 462, el servicio de provisión de núcleo 206 puede crear un paquete de provisión basado en el mensaje de solicitud de provisión. La generación de paquete puede incluir verificar el certificado proporcionado en el mensaje de solicitud de provisión, agregar la cantidad de tiempo de uso al paquete de provisión, etc. En un bloque 464, el servicio de provisión de núcleo 206 puede comunicarse con el administrador de clave 292 para firmar el paquete de provisión con una clave segura y crear un paquete de provisión basado en XML. Con la creación del paquete de provisión, en un bloque 466, el servicio de provisión de núcleo 206 puede aumentar el último número de secuencia en el cuadro de dispositivo de cómputo 314 por uno. El bloque 468, el servicio de provisión de núcleo 206 puede insertar el paquete de provisión recientemente creado en el cuadro de paquete 318 y establecer el estado del paquete de provisión en el cuadro de paquete 318 a "paquete creado". Subsecuentemente, en un bloque 370, el servicio de provisión de núcleo 206 puede registrar un mensaje de "paquete creado" en el cuadro de registro de trabajo 326. Y finalmente, en un bloque 372, el servicio de provisión de núcleo 206 puede enviar un mensaje de "publicación de paquete" en la fila de mensaje al escritor de base de datos de distribución 220 para agregar el paquete en la base de datos de distribución 214.
Rutina de Arranque La Figura 11 ilustra un cuadro de flujo de un programa de rutina de arranque 500 que puede utilizarse para solicitar un certificado del módulo de servicio de certificado 210 y transmitir el certificado al dispositivo de cómputo 202. En un bloque 502, el módulo de servicio de distribución 208 puede recibir una solicitud de certificado de un dispositivo de cómputo, tal como el dispositivo de cómputo 202. La solicitud de certificado puede generarse por el administrador de solicitud de paquete/certificado 386 e incluir información que incluye la identificación de hardware para el dispositivo de cómputo 202, la InitKey, etc. En un bloque 504 el servicio de provisión de núcleo 206 puede buscar la InitKey en el cuadro de rutina de arranque 312. En un bloque 506 el servicio de provisión de núcleo 206 puede revisar el cuadro de dispositivo de cómputo 314 para ver si contiene un registro para la identificación de hardware proporcionada en la solicitud de certificado. Si no existe ningún registro en el cuadro de dispositivo de cómputo 314, el servicio de provisión de núcleo 206 puede agregar un registro en el cuadro de dispositivo de cómputo 314. En un bloque 508 el servicio de provisión de núcleo 206 puede registrar un mensaje de "dispositivo de cómputo creado" en el cuadro de registro de dispositivo de cómputo 322. Subsecuentemente, en un bloque 510, el servicio de provisión de núcleo 206 puede iniciar el procesamiento de la transacción de solicitud de certificado. En un bloque 512, el servicio de provisión de núcleo 206 puede revisar el cuadro de rutina de arranque 312 para ver si la cuenta de entrega es mayor que una cuenta de entrega máxima especificada por el cuadro de configuración 320, y si ese es el caso, puede transferir el control a un bloque 254. Si la cuenta de entrega no es mayor que la cuenta de entrega máxima en un bloque 514, el servicio de provisión de núcleo 206 puede revisar el estado de rutina de arranque en el cuadro de rutina de arranque 312. Si el estado de rutina de arranque no es igual a "creado" o "en Progreso", el control puede transferirse a un bloque 524. Sin embargo, si el estado de rutina de arranque es igual ya sea a "creado" o "en progreso" en un bloque 516 el servicio de provisión de núcleo 206 puede actualizar el estado de rutina de arranque en el cuadro de rutina de arranqué 312 a "En progreso". Subsecuentemente, en un bloque 518, el servicio de provisión de núcleo 206 puede registrar el mensaje de "rutina de arranque en progreso" en el cuadro de registro de dispositivo de cómputo 322. En un bloque 520, el servicio de provisión de núcleo 206 puede llamar una utilidad de certificado para generar un nuevo certificado de cliente. Después de recibir el nuevo certificado de la utilidad de certificado en un bloque 522, el servicio de provisión de núcleo 206 puede enviar al certificado de cliente en la fila de mensaje del módulo de servicio de distribución 208 y puede transferir el control a un bloque 530. En el bloque 524, el servicio de provisión de núcleo 206 puede actualizar el estado de rutina de arranque en el cuadro de rutina de arranque 312 a "sobre límite" debido a la cuenta de entrega en el cuadro de rutina de arranque que es superior que la cuenta de entrega máxima. El estado de "sobre límite" significa que el servicio de provisión de núcleo 20.6 no ha recibido el reconocimiento adecuado del LPM 224 en respuesta a haber publicado un certificado de dispositivo de cómputo 222. Por lo tanto, en un bloque 526, el servicio de provisión de núcleo 206 puede registrar un mensaje de "rutina de arranque sobre límite" en el cuadro de registro de ese dispositivo de cómputo 322, que denota que no se recibió ningún reconocimiento del dispositivo de cómputo que solicita el certificado.
En un bloque 528, el servicio de provisión de núcleo 206 puede enviar un mensaje de "remover rutina de arranque" en la fila de mensaje del escritor de base de datos de distribución 220 para remover un registro de rutina de arranque de la base de datos de distribución 214.
El bloque 530 puede recibir control del bloque 522 después de enviar el certificado al cliente, y por lo tanto denota el final del procesamiento de la solicitud de certificado. Después de procesar la solicitud de certificado, en un bloque 532, el servicio de provisión del núcleo 206 puede recibir un mensaje de término de descarga de certificado en la fila de mensaje del módulo de servicio de distribución 208. Tal mensaje de término de descarga de certificado puede transmitirse por el administrador de solicitud de paquete/certificado 386 del LPM 224 después de una descarga exitosa de un certificado. Al recibir el mensaje de término de descarga de certificado, en un bloque 534 el servicio de provisión de núcleo 206 puede iniciar una transacción terminada de rutina de arranque. En un bloque 536, el servicio de provisión de núcleo 206 puede actualizar el estado de rutina de arranque en el cuadro de rutina de arranque 312 a "terminado". Subsecuentemente, en un bloque 538, el servicio de provisión de núcleo 206 puede registrar un mensaje de "rutina de arranque terminado" en el cuadro de registro de dispositivo de cómputo 322 que denota que el proceso de rutina de arranque para el dispositivo de cómputo que envía la solicitud de certificado está completo. Finalmente, en un bloque 540, el servicio de provisión de núcleo 206 puede enviar un mensaje de "remover rutina de arranque" en la fila de mensaje al escritor de base de datos de distribución 220 para remover el registro de rutina de arranque del cuadro de rutina de arranque 342 de la base de datos de distribución 214.
Distribución de Paquete La Figura 12 ilustra un cuadro de flujo para un programa de distribución de paquete 550 que puede utilizarse para distribuir paquetes de provisión del servicio de provisión de núcleo 206 a varios dispositivos de cómputo, tal como el dispositivo de cómputo 202. El programa de distribución de paquete 550 puede iniciarse por el administrador de solicitud de paquete/certificado 386, por un representante de servicio de cliente que ayuda a un usuario de un dispositivo de cómputo, o en otras formas similares. En un bloque 552, el servicio de provisión de núcleo 206 puede recibir un mensaje de descarga de paquete en la fila de mensaje del módulo de servicio de distribución 208. Tal mensaje puede enviarse, por ejemplo, por el administrador de solicitud de paquete/certificado • 386 del dispositivo de cómputo 202. Al recibir el mensaje de descarga de paquete en un bloque 554, el servicio de provisión de núcleo 206 puede iniciar una transacción de solicitud de paquete. Al inicio de la transacción de solicitud de paquete, en un bloque 556, el servicio de provisión de núcleo 206 puede determinar si el estado en el cuadro de paquete 318 es "paquete sobre límite", que especifica que el dispositivo de cómputo que envía el mensaje de descarga de paquete no reconoció las transmisiones previas de paquetes por el servicio de provisión del núcleo 206, el control se transfiere a un bloque 564. Si se determina que el estado en el cuadro de paquete 318 no es "paquete sobre límite", en un bloque 558, el servicio de provisión de núcleo 206 puede actualizar el estado en el cuadro de paquete 318 a "entrega en progreso". Subsecuentemente, en un bloque 560, el servicio de provisión de núcleo 206 puede actualizar la cuenta de entrega en el cuadro de paquete 318 al valor como se específico en el mensaje de descarga de paquete. Por ejemplo, si el mensaje de descarga de paquete solicitó dos paquetes del servicio de provisión de núcleo 206, la cuenta de entrega en el cuadro de paquete 318 aumenta por dos. En un bloque 562, el servicio de provisión de núcleo 206 puede registrar un mensaje de "entrega de paquete en progreso" en el cuadro de registro de trabajo 326. El bloque 564 puede recibir control debido a la carencia de reconocimiento de un dispositivo de cómputo, por lo tanto, en el bloque 564, el servicio de provisión de núcleo 206 puede actualizar el estado en el cuadro de paquete 318 a "sobre límite". En un bloque 566, el servicio de provisión de núcleo 206 puede actualizar la cuenta de entrega en el cuadro de paquete 318 al valor como se especificó en el mensaje de descarga de paquete y en un bloque 568, el CPS actualiza el estado del cuadro de trabajo 316 a "error". Finalmente, en un bloque 570, el servicio de provisión de núcleo 206 puede registrar un mensaje de "paquete sobre límite" en el cuadro de registro de trabajo 326.
En un bloque 572, el servicio de provisión de núcleo 206 puede terminar el procesamiento de la transacción de solicitud de paquete y esperar un reconocimiento del dispositivo de cómputo que solicita un paquete. En un bloque 574, el servicio de provisión de núcleo 206 puede recibir un mensaje de término de descarga de paquete en la fila de mensaje del módulo de servicio de distribución 208. El mensaje de término de descarga de paquete puede enviarse por el administrador de solicitud de paquete/certificado 386 con la descarga exitosa de un paquete solicitado. Al- recibir el mensaje de término de descarga de paquete, en un bloque 576, el servicio de provisión de núcleo 206 puede iniciar una transacción de término de descarga de paquete. Como parte de la transacción de término de descarga de paquete, en un bloque 578, el servicio de provisión de núcleo 206 puede actualizar el estado en el cuadro de paquete 318 a "completado" y en un bloque 580, actualiza el estado en el cuadro de trabajo también a "terminado". Además, en un bloque 580, el servicio de provisión de núcleo 206 puede registrar un mensaje de "trabajo completado" en el cuadro de registro de trabajo 326 y terminar la transacción completa de descarga de paquete en un bloque 582. Al haber ilustrado la operación de los varios componentes del sistema de provisión de software 200, las siguientes Figuras 13-16 ¡lustran varios escenarios ilustrativos que describen experiencias de usuario bajo varias condiciones.
Escenario 1-Verificacion de Balance Durante Registro La Figura 13 ilustra un cuadro de flujo 600 que ilustra un primer escenario durante la operación del LPM 224. Específicamente, el cuadro de flujo 600 ilustra un escenario en donde un usuario se registra a la computadora. Como se muestra en la Figura 13, en un bloque 602 cuando un usuario intenta registrarse en el dispositivo de cómputo 202 el módulo de agregado de imposición 352 puede enviar un evento de registro al administrador de balance 366. En respuesta al evento de registro, en un bloque 604 el administrador de balance 366 puede verificar el balance disponible para utilizar el sistema operativo en el dispositivo de cómputo 202. Si el balance es suficiente, en un bloque 606, el administrador de balance 366 puede notificar a la lógica de registro 362 para activar el sistema operativo en una forma normal. Sin embargo, si el administrador de balance 366 determina que el balance no res suficiente, en un bloque 608, el administrador de balance 366 puede activar la Ul de activación 396. El propósito de activar la Ul de activación es permitir al usuario hacer una compra de uso adicional. En un bloque 610, la Ul de activación 396 puede activar el administrador de compra 388 y el usuario puede hacer una compra. El usuario puede hacer la compra al conectarse al sistema de facturación 216, al llamar a un representante de servicio de cliente, o en cualquier otra forma deseada. Subsecuentemente, en un bloque 612, el administrador de solicitud de certificado/paquete 386 puede descargar un paquete de provisión. El administrador de solicitud de certificado/paquete 386 puede proporcionar el paquete de provisiones cargado al administrador de almacenamiento seguro 358 para almacenamiento seguro. En un bloque 614, el administrador de balance 366 puede analizar el paquete de provisión descargado y en un bloque 616 al balance de provisión disponible para el dispositivo de cómputo 202 puede aumentarse por consiguiente.
Escenario 2-Compra de Uso Después de Registro La Figura 14 ilustra un cuadro de flujo 620 que ilustra un segundo escenario durante la operación del LPM 224. Específicamente, el cuadro de flujo 620 ilustra un escenario en donde el usuario está ya registrado en el dispositivo de cómputo 202 y el usuario selecciona una aplicación pequeña de panel de control o un icono de barra de tareas para activar el administrador de balance 366. En un bloque 622, el usuario puede activar la aplicación pequeña de panel de control que envía un evento al administrador de balance 366. El. administrador de balance 366 puede presentar de información de balance actual al usuario e invocar la Ul de activación 396, con ello activa el administrador de contra 388. Una vez que el usuario hace una compra de tiempo adicional, el administrador de solicitud de certificado/paquete 386 puede descargar un paquete de provisión. El administrador de solicitud de certificado/paquete 386 puede proporcionar el paquete de provisiones cargado al administrador de almacenamiento seguro 358 para almacenamiento seguro. En un bloque 628, el administrador de balance 366 puede analizar el paquete de provisiones cargado y en un bloque 630, el balance de provisión disponible al dispositivo de cómputo 202 por consiguiente puede aumentarse.
Escenario 3-Actualización de Balance y Notificación Después de Registro La Figura 15 ilustra un cuadro de flujo 640 que ilustra un tercer escenario durante la operación del LPM 224. Específicamente, el cuadro de flujo 640 ¡lustra un escenario en donde el usuario ya está registrado en el dispositivo de cómputo 202 y la lógica de registro 364 recibe un evento como un resultado del contador de tiempo del administrador de reloj confiable 370. En un bloque 642, la lógica de registro 364 puede recibir un evento de contador de tiempo del administrador de reloj confiable 370. Como un resultado, la lógica de registro 364 puede enviar un evento de contador de tiempo al administrador de balance 366. En respuesta al evento de contador de tiempo, en un bloque 644, el administrador de balance 366 puede actualizar el balance disponible para uso del sistema operativo en el dispositivo de cómputo 202. Subsecuentemente, en un bloque 646, el administrador de balance 366 revisa el balance disponible. Basándose en el resultado de la valoración, en un bloque 648, el administrador de balance 366 puede tomar una acción apropiada, que puede ser, por ejemplo, activar la Ul de activación 396, para sacar de registro al usuario, para continuar otra acción apropiada.
Escenario 4-Desactivación de Dispositivo de Cómputo La Figura 16 ilustra un cuadro de flujo 660 que ilustra un cuarto escenario durante la operación del LPM 224. Específicamente, el cuadro de flujo 660 ilustra un escenario en donde el usuario ya está registrado en el dispositivo de cómputo 202 y la lógica de registro 364 recibe un evento como un resultado del contador de tiempo del administrador de reloj confiable 370. En un bloque 662, la lógica de registro 364 puede recibir un evento de contador de tiempo del administrador de reloj confiable 370. Como resultado, la lógica de registro 364 puede enviar un evento de contador de tiempo al administrador de balance 366. En respuesta al evento de contador de tiempo, en un bloque 664, el administrador de balance 366 puede actualizar el balance disponible para uso del sistema operativo en el dispositivo de cómputo 202. Subsecuentemente, en un bloque 666, el administrador de balance 366 puede revisar el balance disponible. Basándose en el resultado de la valoración, en un bloque 648, el administrador de balance 366 puede tomar una acción apropiada, que puede ser, por ejemplo, activar la Ul de activación 396, para sacar de registro al usuario, para continuar la acción apropiada. En el caso actual, por ejemplo, el administrador de balance 366 encuentra que el balance disponible para el dispositivo de cómputo 202 está en o bajo un umbral, tal como cero. Como un resultado en un bloque 368, el administrador de balance 366 puede causar que la Ul de notificación 398 presente un mensaje de salida de registro y eventualmente saque del registro al usuario al utilizar el sistema operativo en el dispositivo de cómputo 202. En un caso alterno, la Ul de notificación 398 también puede activar el administrador de compra 388 para permitir que el usuario compre tiempo de uso adicional.
Escenario 5-Entrada Prepagada Después de Registro La Figura 17 ilustra un cuadro de flujo 680 que ilustra un quinto escenario durante la operación del LPM 224. Específicamente, el cuadro de flujo 680 ilustra un escenario en donde el usuario ya está registrado en el dispositivo de cómputo 202 y el usuario selecciona una aplicación pequeña de panel de control o un icono de barra de tareas para activar un asistente de activación para ingresar información de una tarjeta prepagada. Este puede ser el caso cuando un usuario ha comprado previamente una tarjeta prepagada y decide agregar el tiempo de uso que puede obtenerse por la tarjeta prepagada a su cuenta. En un bloque 682, el usuario puede activar la aplicación pequeña de panel de control que envía un evento a la Ul de activación 396 para mostrar un asistente de activación. Un ejemplo de una ventana GUI que puede presentarse a un usuario se ilustra por una ventana para agregar tiempo 684 en la Figura 18. El usuario puede seleccionar el botón de agregar tiempo de la ventana de agregar tiempo 684 para la información de entrada de la tarjeta prepagada. Subsecuentemente, en un bloque 686, la Ul de activación 396 puede notificar al usuario de varios tipos de información que el usuario puede necesitar ser capaz de utilizar el asistente de activación, que se ilustra por la GUI 688 en la Figura 19. En un bloque 690, la Ul de activación 396 puede presentar una GUI de conexión en red 692 como se muestra en la Figura 20, que notifica al usuario que el administrador de comunicación de servicio web 390 está conectando a Internet para acceder la servicio de provisión de núcleo 206. Subsecuentemente, en un bloque 694, la Ul de activación 396 puede invitar al usuario a ingresar la clave de recibida de la tarjeta de uso prepagado. La clave en la tarjeta prepagada puede comprender una fila de caracteres alfanuméricos u otros. En el caso actual la clave es una clave alfanumérica larga de 25 caracteres, como se muestra para Ingresarse en una GUI 696 de la Figura 21. Al recibir la clave de la tarjeta prepagada, en un bloque 698, la Ul de activación 396 puede invitar al usuario a registrarse en el sistema .NET®, como se muestra por una GUI 700 de la Figura 22. Se nota que no siempre puede ser necesario que el usuario se registre en el sistema .NET®. Subsecuentemente, en un bloque 702, la Ul de activación 396 puede recibir una confirmación del servicio de provisión de núcleo 206 que la clave de usuario de la tarjeta prepagada se aceptó y que la cuenta de usuario debe aumentarse por la cantidad correspondiente de tiempo. El mensaje que notifica la adición exitosa de tiempo se ¡lustra por una GUI 704 de la Figura 23. Finalmente, en un bloque 706, la Ul de activación 396 puede notificar al usuario que el tiempo que el usuario acaba de agregar al utilizar la tarjeta prepagada debe acreditarse al dispositivo de cómputo 202 en algunos minutos, como se ilustra por la GUI 708 de la Figura 24. Aunque el texto anterior menciona una descripción detallada de numerosas modalidades diferentes de la invención, se debe entender que el alcance de la invención se define por las palabras de las reivindicaciones mencionadas al final de esta patente. La descripción detallada se debe interpretar solamente como ilustrativa y no describe cada modalidad posible de la invención debido a que describir cada modalidad posible sería impráctico, si no es que imposible. Numerosas modalidades alternativas podrían implementarse, al utilizar ya sea tecnología actual o tecnología desarrollada después de la fecha de presentación de esta patente, q ue todavía caería dentro del alcance de las reivindicaciones q ue define la invención . De esa forma, pueden hacerse muchas mod ificaciones y variaciones en las técnicas y estructuras descritas e ilustradas aq uí sin apartarse del espíritu y alcance de la presente invención. Por consiguiente, se debe entender que los métodos y aparatos aquí descritos son ilustrativos solamente y no son limitantes en el alcance de la invención .

Claims (20)

REIVINDICACIONES
1.- Un método para la provisión de un servicio en un dispositivo provisto, el método comprende: recibir una solicitud de registro para registrar el dispositivo provisto, en donde la solicitud de registro incluye una identificación de hardware de dispositivo provisto; generar un certificado de dispositivo provisto; recibir una solicitud de generación de paquete para generar un paquete de dispositivo provisto, en donde la solicitud de generación de paquete incluye una clave de inicialización de dispositivo provisto; generar el paquete de dispositivo provisto, en donde el paquete de dispositivo provisto incluye información que autoriza una primera cantidad de uso del servicio en el dispositivo provisto; y almacenar el paquete de dispositivo provisto y el certificado de dispositivo provisto.
2.- Un método de acuerdo con la reivindicación 1, en donde el paquete de dispositivo provisto además incluye la clave de inicialización de dispositivo provisto, el certificado de dispositivo provisto y la identificación de hardware de dispositivo provisto.
3.- Un método de acuerdo con la reivindicación 1, en donde la identificación de hardware de dispositivo provisto incluye por lo menos uno de: (1) una identificación para una computadora personal; (2) configuración de hardware de la computadora personal; y (3) una tarjeta de identificación de teléfono celular.
4.- Un método de acuerdo con la reivindicación 1, en donde el servicio es uno de: (1) software de computadora; (2) un sistema de operación de computadora; y (3) un medio digitalmente registrado.
5.- Un método de acuerdo con la reivindicación 1, en donde la generación del certificado de dispositivo provisto además incluye: recibir una clave privada de una infraestructura de clave pública; y codificar el certificado de dispositivo provisto con una clave privada.
6.- Un método de acuerdo con la reivindicación 1, en donde la primera cantidad de uso del servicio en el dispositivo provisto incluye por lo menos uno de: (1) una cantidad de tiempo para el uso del servicio; y (2) un tiempo de expiración para el uso del servicio.
7.- Un método de acuerdo con la reivindicación 1, que además comprende: recibir una solicitud de certificado de cliente de un dispositivo de cliente para el certificado de dispositivo provisto, en donde la solicitud de certificado de cliente incluye una identificación de hardware de dispositivo de cliente; recuperar el certificado de dispositivo provisto si la identificación de hardware de dispositivo de cliente se determina para hacer coincidir la identificación de hardware de dispositivo provisto; y transmitir el certificado de dispositivo provisto al dispositivo de cliente.
8.- Un método de acuerdo con la reivindicación 1, que además comprende: recibir una solicitud de paquete de cliente de un dispositivo de cliente para el paquete de dispositivo provisto, en donde la solicitud de paquete de cliente incluye: (a) una identificación de hardware de dispositivo de cliente; (b) una clave de inicialización de dispositivo de cliente; y (3) una firma de dispositivo de cliente; verificar la firma de dispositivo de cliente; recuperar el paquete de dispositivo provisto si: (1) la identificación de hardware de dispositivo de cliente se determina para hacer coincidir la identificación de hardware de dispositivo provisto; y (2) la clave de inicialización de dispositivo de cliente se determina para hacer coincidir la clave de inicialización de dispositivo provisto; y transmitir el paquete de dispositivo provisto al dispositivo de cliente.
9.- Un método de acuerdo con la reivindicación 8, en donde la transmisión del paquete de dispositivo provisto además incluye: incrementar una cuenta de suministro de cliente; transmitir el paquete de dispositivo provisto si la cuenta de suministro de cliente es menor que una cuenta de suministro de suministro de cliente máxima; establecer un estado de dispositivo provisto a un estado de error si la cuenta de suministro de cliente no es menor que una cuenta de suministro de cliente máxima; recibir un reconocimiento del dispositivo de cliente; y restablecer la cuenta de suministro de cliente si el reconocimiento es recibido.
10.- Un método de acuerdo con la reivindicación 8, que además comprende actualizar una cuenta de uso de cliente a través de la primera cantidad de uso del servicio.
11.- Un método de acuerdo con la reivindicación 8, en donde la firma de cliente incluye una clave privada generada por una infraestructura de clave pública y usada para codificar el certificado de dispositivo provisto.
12.- Un método de acuerdo con la reivindicación 8, en donde la solicitud de paquete de cliente se recibe a través de la Internet.
13.- Un método de acuerdo con la reivindicación 1, en donde el paquete de dispositivo provisto es un paquete de provisión a base de XML.
14.- Un paquete de provisión para proveer un servicio en un dispositivo provisto, el paquete comprende: una identificación de hardware de dispositivo provisto; una clave de inicialización de dispositivo provisto; y información autorizando una primera cantidad de uso del servicio en el dispositivo provisto.
15.- Un paquete de provisión de acuerdo con la reivindicación 14, en donde el paquete de provisión es un paquete a base de XML.
16.- Un paquete de provisión de acuerdo con la reivindicación 14, en donde el paquete de provisión es codificado utilizando una clave privada a partir de una infraestructura de clave pública.
17.- Un sistema de provisión para generar el paquete de provisión de acuerdo con la reivindicación 14, en donde el sistema de. provisión comprende: un primer módulo adaptado para recibir una solicitud de registro para registrar el dispositivo provisto, en donde la solicitud de registro incluye una identificación d hardware de dispositivo provisto; un segundo módulo adaptado para generar un certificado de dispositivo provisto; un tercer módulo adaptado para recibir una solicitud de generación de paquete para generar el dispositivo provisto, en donde la solicitud de generación de paquete incluye una clave de inicialización de dispositivo provisto; y un cuarto módulo adaptado para generar el paquete de provisión.
18.- Un sistema de provisión de acuerdo con la reivindicación 17, en donde el servicio es uno de: (1) un software de computadora; (2) un sistema operativo de computadora; y (3) un medio digitalmente registrado.
19.- Un sistema de provisión de acuerdo con la reivindicación 17, que además comprende un módulo adicional adaptado para recibir una clave privada de una infraestructura de clave pública y para codificar el paquete de provisión con la clave privada. 20.- Un sistema de provisión de acuerdo con la reivindicación 17, que además comprende: un módulo adicional adaptado para recibir una solicitud de paquete de cliente de un dispositivo de cliente para el paquete de provisión; en donde la solicitud de paquete de cliente incluye: (a) una identificación de hardware de dispositivo de cliente; (b) una clave de inicialización de dispositivo de cliente; y (3) una firma de dispositivo de cliente; un módulo adicional adaptada para verificar la firma de dispositivo de cliente; un módulo adicional adaptado para recuperar el paquete de provisión si (1) la identificación de hardware de dispositivo de cliente es igual a la identificación de hardware de dispositivo provisto, y (2) la clave de iniciaiización de dispositivo de cliente es igual a la clave de inicialización de dispositivo provisto; y un módulo adaptado para transmitir el paquete de provisión al dispositivo de cliente. 21.- Un medio legible por computadora que tiene instrucciones ejecutables por computadora para realizar un método que comprende: (1) recibir una solicitud de registro para registrar un dispositivo provisto, en donde la solicitud de registro incluye una identificación de hardware de dispositivo provisto; (2) generar un certificado de dispositivo provisto; (3) recibir una solicitud de generación de paquete para generar un paquete de dispositivo provisto, en donde la solicitud de generación de paquete incluye una clave de inicialización de dispositivo provisto; y (4) generar el paquete de dispositivo provisto, en donde el paquete de dispositivo provisto incluye información que autoriza una primera cantidad de uso de un servicio en el dispositivo provisto. 22.- Un medio legible por computadora de acuerdo con la reivindicación 21, que tiene además instrucciones ejecutables por computadora para realizar el método de: (1) recibir una solicitud de certificado de cliente de un dispositivo de cliente para el certificado de dispositivo de provisión, en donde la solicitud de certificado de cliente incluye una identificación de hardware de dispositivo de cliente; (2) recuperar el certificado de dispositivo de provisión si la identificación de hardware de dispositivo de cliente es igual a la identificación de hardware de dispositivo de provisión; y (3) transmitir el certificado de dispositivo de provisión al dispositivo de cliente. 23.- Un medio legible por computadora de acuerdo con la reivindicación 21, en donde el servicio es uno de: (1) un software de computadora; y (2) un sistema operativo de computadora. 24.- Una red que se comunica con una pluralidad de dispositivos de cómputo, la pluralidad de dispositivos de cómputo comprende: un sistema de facturación adaptado para vender una cantidad de uso para un servicio en un dispositivo de provisión; un sistema de provisión adaptado para la provisión de la cantidad de uso para el servicio en dispositivo de provisión, el sistema de provisión incluye: un módulo de registro adaptado para recibir una solicitud de registro del sistema de facturación para registrar el dispositivo de provisión, en donde la solicitud de registro incluye una identificación de hardware de disppsitivo de provisión, un módulo de certificado adaptado para generar un certificado de dispositivo de provisión, un módulo de distribución adaptado para recibir una solicitud de generación de paquete para generar el paquete de provisión, en donde la solicitud de generación de paquete incluye una clave de inicialización de dispositivo de provisión, un módulo de generación de paquete adaptado para generar el paquete de provisión, y el módulo de distribución además adaptado para transmitir el paquete de provisión al dispositivo de provisión; y el dispositivo de provisión adaptado para usar el servicio, el dispositivo de provisión incluyendo: un módulo de solicitud de paquete adaptado para enviar la solicitud de generación de paquete al sistema de provisión y para descargar el paquete de provisión, un módulo de almacenamiento adaptado para almacenar con seguridad el paquete de provisión, un módulo de balance adaptado para analizar el paquete de provisión para generar un valor de balance, y un módulo de ejecución adaptado para: (1) activar el servicio en el dispositivo provisto si el valor de balance está por arriba de un umbral; y (2) desactivar el servicio en el dispositivo de provisión si el valor de balance no está por arriba del umbral. 25.- Una red de acuerdo con la reivindicación 24, en donde el sistema de provisión además está adaptado para solicitar una clave privada para el dispositivo de provisión y para codificar el certificado con la clave privada. 26.- Una red de acuerdo con la reivindicación 24, en donde el sistema de facturación además está adaptado: (1) para generar una tarjeta de pre-pago impreso con la clave de inicialización; y (2) para vender la tarjeta pre-pagada a un usuario a través de una tienda al menudeo. 27.- Una red de acuerdo con la reivindicación 26, en donde el dispositivo de provisión además incluye: un módulo de activación adaptado para recibir la clave de inicialización del usuario; y el módulo de solicitud además adaptado para generar la solicitud de generación de paquete con la clave de inicialización. 28.- Una red de acuerdo con la reivindicación 24, en donde el dispositivo de provisión es uno de: (1) una computadora personal; (2) un teléfono celular; (3) un dispositivo de juegos; y (4) un jugador de medios. 29.- Una red de acuerdo con la reivindicación 24, en donde el paquete de provisión es un paquete de provisión a base de XML. 30.- Una red de acuerdo con la reivindicación 24, en donde el dispositivo de provisión se comunica con la red utilizando Internet. 10 15
20. 25
MX2007005660A 2004-11-15 2005-11-12 Metodo y aparato para proveer software. MX2007005660A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/989,122 US7610631B2 (en) 2004-11-15 2004-11-15 Method and apparatus for provisioning software
PCT/US2005/040942 WO2006055421A2 (en) 2004-11-15 2005-11-12 Method and apparatus for provisioning software

Publications (1)

Publication Number Publication Date
MX2007005660A true MX2007005660A (es) 2007-07-24

Family

ID=36388012

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2007005660A MX2007005660A (es) 2004-11-15 2005-11-12 Metodo y aparato para proveer software.

Country Status (10)

Country Link
US (1) US7610631B2 (es)
EP (1) EP1815322A4 (es)
JP (1) JP2008521090A (es)
KR (1) KR101159384B1 (es)
CN (7) CN101057435A (es)
BR (1) BRPI0518911A2 (es)
MX (1) MX2007005660A (es)
RU (1) RU2007122344A (es)
TW (1) TW200632711A (es)
WO (1) WO2006055421A2 (es)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US20060242406A1 (en) 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8176564B2 (en) 2004-11-15 2012-05-08 Microsoft Corporation Special PC mode entered upon detection of undesired state
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8464348B2 (en) * 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US7694153B2 (en) * 2004-11-15 2010-04-06 Microsoft Corporation Changing product behavior in accordance with license
GB2422218B (en) * 2005-01-14 2009-12-23 Hewlett Packard Development Co Provision of services over a common delivery platform such as a mobile telephony network
US20060161616A1 (en) * 2005-01-14 2006-07-20 I Anson Colin Provision of services over a common delivery platform such as a mobile telephony network
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US8353046B2 (en) 2005-06-08 2013-01-08 Microsoft Corporation System and method for delivery of a modular operating system
JP4818664B2 (ja) * 2005-09-05 2011-11-16 富士通株式会社 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
US20070118481A1 (en) * 2005-11-22 2007-05-24 Erik Bostrom Method and apparatus for monitoring software usage
US8375360B2 (en) * 2006-11-22 2013-02-12 Hewlett-Packard Development Company, L.P. Provision of services over a common delivery platform such as a mobile telephony network
KR20090003094A (ko) * 2006-12-04 2009-01-09 한국전자통신연구원 소프트웨어 그룹 서비스 서버, 단말 및 그 방법
US9053323B2 (en) * 2007-04-13 2015-06-09 Hewlett-Packard Development Company, L.P. Trusted component update system and method
US20080291023A1 (en) * 2007-05-24 2008-11-27 Microsoft Corporation RFID Discovery, Tracking, and Provisioning of Information Technology Assets
US8244640B2 (en) * 2007-06-21 2012-08-14 Microsoft Corporation Packet schema for pay-as-you-go service provisioning
US7778956B2 (en) * 2007-06-21 2010-08-17 Microsoft Corporation Portal and key management service database schemas
US20090132308A1 (en) * 2007-11-20 2009-05-21 Microsoft Corporation Solution for Managed Personal Computing
US8213612B2 (en) * 2007-12-07 2012-07-03 Inside Contactless S.A. Secure software download
US8364837B2 (en) * 2008-01-24 2013-01-29 International Business Machines Corporation Virtual web service
US20090204544A1 (en) * 2008-02-08 2009-08-13 Microsoft Corporation Activation by trust delegation
US20090204956A1 (en) * 2008-02-08 2009-08-13 International Business Machines Corporation Multiple-mode software license enforcement
RU2484596C2 (ru) * 2008-02-14 2013-06-10 Нокиа Корпорейшн Система и способ выполнения публикации
JP2009199361A (ja) * 2008-02-21 2009-09-03 Fujitsu Fip Corp サーバ構築方法、同方法用コンピュータソフトウェアおよび記憶媒体
US8208900B2 (en) * 2008-03-04 2012-06-26 Apple Inc. Secure device configuration profiles
US8321948B2 (en) * 2008-03-28 2012-11-27 Sap Ag Flexible appliance hosting with coordination of deployment, licensing and configuration
US8615799B2 (en) * 2008-05-24 2013-12-24 Via Technologies, Inc. Microprocessor having secure non-volatile storage access
US8676714B2 (en) * 2009-06-11 2014-03-18 Microsoft Corporation Hardware specific product license validation
US8458700B1 (en) * 2010-12-07 2013-06-04 Netapp, Inc. Provisioning virtual machines
US8752127B2 (en) * 2011-05-26 2014-06-10 First Data Corporation Systems and methods for identifying devices by a trusted service manager
US10397074B2 (en) * 2012-08-24 2019-08-27 Red Hat, Inc. Providing message flow analysis for an enterprise service bus
US9525728B2 (en) 2013-09-17 2016-12-20 Bank Of America Corporation Prediction and distribution of resource demand
US20150242847A1 (en) * 2014-02-24 2015-08-27 Mastercard International Incorporated Method and system for converting asynchronous to synchronous transactions
US20160234554A1 (en) * 2015-02-05 2016-08-11 Electronics And Telecommunications Research Institute Renewable conditional access system and request processing method for the same
US10706130B2 (en) * 2015-02-06 2020-07-07 Macpaw Inc. System and method for software activation and license tracking
US9659155B2 (en) * 2015-02-06 2017-05-23 Macpaw Inc System and method for software activation and license tracking
US10706187B1 (en) * 2015-10-01 2020-07-07 Comsol Ab Systems and methods for reducing application startup times for physics modeling applications
KR102340180B1 (ko) 2015-10-26 2021-12-16 에스케이텔레콤 주식회사 컴포넌트간 의존성을 고려한 프로비저닝 방법
FR3043228B1 (fr) * 2015-11-03 2018-03-30 Proton World International N.V. Demarrage controle d'un circuit electronique
EP3422274A1 (de) 2017-06-29 2019-01-02 Feig Electronic GmbH Verfahren zur konfiguration oder änderung einer konfiguration eines bezahlterminals und/oder zur zuordnung eines bezahlterminals zu einem betreiber
US11165774B2 (en) * 2018-12-14 2021-11-02 Vmware, Inc. Delegated authentication to certificate authorities
JP7278807B2 (ja) * 2019-03-04 2023-05-22 株式会社東芝 通信制御装置および通信システム
CN111555931B (zh) * 2020-04-23 2022-07-22 北京奇艺世纪科技有限公司 上游服务器监控处理方法、监控器及电子设备
JP7212716B2 (ja) * 2021-05-25 2023-01-25 レノボ・シンガポール・プライベート・リミテッド 情報処理装置、管理システム、及び管理方法
CN116631128B (zh) * 2023-07-21 2023-11-28 资阳保安有限责任公司 一种具有加密功能的自动存取款机及存取款方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444780A (en) * 1993-07-22 1995-08-22 International Business Machines Corporation Client/server based secure timekeeping system
US5768382A (en) * 1995-11-22 1998-06-16 Walker Asset Management Limited Partnership Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols
US6253224B1 (en) * 1998-03-24 2001-06-26 International Business Machines Corporation Method and system for providing a hardware machine function in a protected virtual machine
US6587684B1 (en) * 1998-07-28 2003-07-01 Bell Atlantic Nynex Mobile Digital wireless telephone system for downloading software to a digital telephone using wireless data link protocol
US6801809B2 (en) * 2000-02-22 2004-10-05 Medtronic, Inc. Extractable implantable medical lead
US6463534B1 (en) * 1999-03-26 2002-10-08 Motorola, Inc. Secure wireless electronic-commerce system with wireless network domain
US6920567B1 (en) * 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
US6763458B1 (en) * 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
US20020123964A1 (en) * 1999-11-03 2002-09-05 Gerald Arthur Kramer Payment monitoring system
WO2001077795A2 (en) * 2000-04-07 2001-10-18 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
JP2001312325A (ja) * 2000-04-28 2001-11-09 Hitachi Ltd プログラムライセンスキー発行方法及び発行システム
JP2002108478A (ja) * 2000-10-02 2002-04-10 Heisei Kikaku System:Kk ソフトウェアの使用ライセンスを使用時間単位の料金で販売する方法及びそのシステム
EP1386493A1 (en) * 2001-07-31 2004-02-04 Matsushita Electric Industrial Co., Ltd. System, apparatus, and method of contents distribution, and program and program recording medium directed to the same
JP2003157335A (ja) * 2001-08-01 2003-05-30 Matsushita Electric Ind Co Ltd コンテンツ利用権の管理装置およびその方法
GB2378780B (en) 2001-08-14 2003-07-09 Elan Digital Systems Ltd Data integrity
JP4197608B2 (ja) * 2002-02-01 2008-12-17 パナソニック株式会社 価値情報交換システム
CN1273877C (zh) * 2002-02-01 2006-09-06 松下电器产业株式会社 许可信息交换系统
AU2003223802A1 (en) * 2002-05-10 2003-11-11 Protexis Inc. System and method for multi-tiered license management and distribution using networked clearinghouses
US6816809B2 (en) * 2002-07-23 2004-11-09 Hewlett-Packard Development Company, L.P. Hardware based utilization metering
US20040023636A1 (en) * 2002-07-31 2004-02-05 Comverse Network Systems, Ltd. Wireless prepaid payphone system and cost control application
US7877607B2 (en) * 2002-08-30 2011-01-25 Hewlett-Packard Development Company, L.P. Tamper-evident data management
US7376840B2 (en) * 2002-09-30 2008-05-20 Lucent Technologies, Inc. Streamlined service subscription in distributed architectures
US20040128251A1 (en) * 2002-12-31 2004-07-01 Chris Adam Apparatus, system and method for licensing
US20060106920A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Method and apparatus for dynamically activating/deactivating an operating system

Also Published As

Publication number Publication date
KR20070088634A (ko) 2007-08-29
CN101416440A (zh) 2009-04-22
JP2008521090A (ja) 2008-06-19
BRPI0518911A2 (pt) 2008-12-16
CN101057214A (zh) 2007-10-17
EP1815322A2 (en) 2007-08-08
CN101069215A (zh) 2007-11-07
CN101292248B (zh) 2010-05-05
TW200632711A (en) 2006-09-16
EP1815322A4 (en) 2010-09-15
KR101159384B1 (ko) 2012-07-09
RU2007122344A (ru) 2008-12-20
CN101057435A (zh) 2007-10-17
CN101292248A (zh) 2008-10-22
CN101057214B (zh) 2011-07-27
WO2006055421A3 (en) 2006-11-16
CN101057218A (zh) 2007-10-17
CN1783138A (zh) 2006-06-07
CN100470467C (zh) 2009-03-18
US7610631B2 (en) 2009-10-27
WO2006055421A2 (en) 2006-05-26
US20060107335A1 (en) 2006-05-18

Similar Documents

Publication Publication Date Title
MX2007005660A (es) Metodo y aparato para proveer software.
MX2007005661A (es) Metodo y aparato para dinamicamente activar/desactivar un sistema operativo.
MX2007005662A (es) Sistema y metodo para la distribucion de paquetes de provision.
JP4981051B2 (ja) ライセンスに従う製品の挙動変更
CN1333314C (zh) 软件执行控制系统
CN109919586B (zh) 多层安全移动交易使能平台
CN101263473B (zh) 封装了处理单元的操作系统
US9811686B1 (en) Support systems interactions with virtual network functions in a trusted security zone
JP4639676B2 (ja) レンタルサーバシステム
US8161532B2 (en) Operating system independent architecture for subscription computing
CN101385041A (zh) 计算机主存多安全执行环境
US11087401B1 (en) Method and apparatus to crowd bootstrap startups
US7539647B2 (en) Using power state to enforce software metering state
JP2004030617A (ja) インターネットを利用したトランザクションサービスシステムおよびその方法
US8275670B2 (en) Electronic sales and contracting
JP2004062864A (ja) インターネットを利用したオンラインショッピングシステム
JP2004005632A (ja) インターネットを利用したリモートインストールシステムおよびその方法
JP2004005633A (ja) インターネットを利用したリモートインストールシステムおよびその方法

Legal Events

Date Code Title Description
FG Grant or registration