PT1307025E - Um sistema informático distribuído - Google Patents

Um sistema informático distribuído Download PDF

Info

Publication number
PT1307025E
PT1307025E PT03002723T PT03002723T PT1307025E PT 1307025 E PT1307025 E PT 1307025E PT 03002723 T PT03002723 T PT 03002723T PT 03002723 T PT03002723 T PT 03002723T PT 1307025 E PT1307025 E PT 1307025E
Authority
PT
Portugal
Prior art keywords
data
stream
packet
module
packets
Prior art date
Application number
PT03002723T
Other languages
English (en)
Inventor
Kuriacose Joseph
Vincent Dureau
Ansley Wayne Jessup
Alain Delpuch
Original Assignee
Opentv Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22879143&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=PT1307025(E) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Opentv Inc filed Critical Opentv Inc
Publication of PT1307025E publication Critical patent/PT1307025E/pt

Links

Classifications

    • 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
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • 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/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26266Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for determining content or additional data repetition rate, e.g. of a file in a DVB carousel according to its importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • H04N21/4351Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream involving reassembling additional data, e.g. rebuilding an executable program from recovered modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/47815Electronic shopping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Operations Research (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Description

DESCRIÇÃO
Um sistema informático distribuído
Este pedido de patente é um pedido divisionário do pedido de patente EP 95 105 803.1 publicado como EP 0 680 185. A presente invenção refere-se a um sistema informático distribuído, do tipo cliente-servidor Um tal sistema informático tem utilização em aplicações de difusão multimédia.
Os sistemas informáticos mais antigos eram sistemas autónomos, que consistiam geralmente em computadores mainframe. Mais tarde, vários computadores mainframe foram ligados ou agrupados de modo a suportarem tarefas de computação maiores, como por exemplo um grande número de utilizadores a partilhar recursos. Com o advento dos computadores pessoais, grandes quantidades de sistemas computacionais individuais de relativamente baixa potência passaram a ser directamente controlados pelos seus utilizadores. Em breve, este grande número de computadores pessoais foi ligado em redes de computadores, fornecendo recursos partilhados e funcionalidades de comunicação aos utilizadores dos computadores pessoais individuais e entre esses utilizadores e os computadores mainframe pré-existentes .
Uma das configurações de uma rede deste tipo inclui um computador central, denominado servidor, que é geralmente dotado de uma grande capacidade de armazenamento em massa 1 de dados. Os programas utilizados pelos utilizadores da rede estão centralmente armazenados nos dispositivos de armazenamento em massa do servidor. Quando um utilizador deseja executar um programa, o computador desse utilizador solicita ao servidor que lhe seja enviada uma cópia desse programa. Em resposta a essa solicitação, o servidor transfere uma cópia do programa da sua área de armazenamento em massa para a memória do computador pessoal desse utilizador e o programa é executado nesse computador pessoal. Também podem ser centralmente armazenados dados no servidor e partilhados por todos os utilizadores da rede. Os dados são guardados no armazenamento em massa do servidor e estão acessíveis a todos os utilizadores da rede em resposta a um pedido. 0 servidor serve também como um ponto de ligação para comunicação de mensagens (correio electrónico) entre utilizadores da rede. 0 servidor num tal sistema gere o armazenamento e distribuição dos programas, dados e mensagens, mas não contribui com qualquer capacidade de processamento para as tarefas de computação de qualquer dos utilizadores. Por exemplo, um utilizador não pode esperar que o servidor execute qualquer das tarefas de processamento do programa que estejam a ser executadas no computador pessoal. Embora tais redes cumpram uma importante função, elas não são consideradas sistemas informáticos distribuídos, nos quais computadores interligados colaboram para executar uma tarefa de computação individual.
Num melhoramento a tais redes, a rede poderá ser configurada de uma forma tal que um utilizador na rede possa solicitar que o servidor ou outro computador pessoal ligado a essa rede execute um programa. Isto é denominado 2 execução remota porque um computador (servidor ou outro computador pessoal) distante do requerente está a executar um programa em resposta a um pedido desse requerente. Num tal sistema, o programa em relação ao qual a execução remota é requerida pode ser enviado pelo requerente para o computador remoto ou obtido do servidor em resposta a um pedido do computador remoto. Quando o programa é recebido, é executado. Desta forma, vários computadores podem ser recrutados para colaborar na execução de uma função de computação.
Recentemente tem havido programas que distribuem as tarefas de computação concretas para efectuar uma única função de computação. Por exemplo, num tal programa de base de dados, onde a base de dados está armazenada no dispositivo de armazenamento em massa do servidor, se um utilizador desejar consultar a base de dados a parte do programa de gestão de base de dados no computador pessoal desse utilizador irá gerar um pedido de consulta que será encaminhado para o servidor. A parte do programa de gestão de base de dados no servidor executa o processamento da consulta, por exemplo, analisando o pedido de consulta, localizando onde os dados especificados do pedido de consulta residem no seu dispositivo de armazenamento em massa, acedendo a esses dados e enviando os resultados de volta ao computador pessoal requerente através da rede. A parte do programa de gestão de base de dados no computador pessoal processa então os dados recebidos do servidor, por exemplo, formatando-os e exibindo-os no ecrã ou imprimindo-os numa impressora. Enquanto o servidor processa o pedido de consulta, o computador pessoal fica livre para executar outros processamentos e enquanto o computador pessoal gera 3 o pedido de consulta e processa os dados dele resultantes fornecidos pelo servidor, este fica livre para processar pedidos de consulta de outros computadores pessoais.
Outros tipos de programas estão também aptos para este tipo de computação distribuída, designada por computação cliente-servidor. A partilha das tarefas de processamento entre o computador pessoal e o servidor melhora a eficiência global da computação em toda a rede. Tais sistemas informáticos cliente-servidor e redes de execução remota podem ser designados sistemas informáticos distribuídos, pois vários computadores (o servidor e/ou os respectivos computadores periféricos) colaboram para executar a função de computação, por exemplo, gestão de base de dados.
Recentemente, têm sido propostos programas televisivos multimédia, mais precisamente programas interactivos de televisão (TV) . Os programas interactivos de TV permitirão a um espectador de um programa televisivo interagir com esse programa. Num sistema interactivo de TV, o posto central de difusão (cadeia de TV, estúdio de TV local, sistema de cabo, etc.) terá um computador central, que corresponde ao servidor, que irá produzir sinais relacionados com o programa interactivo de TV a ser emitido em simultâneo com os sinais de TV (vídeo e áudio) . Estes sinais transportam dados que representam o programa interactivo de TV e podem incluir comandos, código executável de programa e/ou dados para controlar a interacção do espectador. Cada localização de espectador terá um computador, que corresponde ao computador-cliente, que irá receber os comandos, código executável e/ou dados 4 do computador central, executar o código executável, processar os dados recebidos, aceitar contributos do utilizador e fornecer dados ao utilizador através do ecrã de TV. Os contributos do utilizador podem ser enviados de volta ao computador no posto de difusão, permitindo ao utilizador interagir com o programa interactivo de TV. A Patente U.S. 4.965.825, APARELHOS E MÉTODOS DE PROCESSAMENTO DE SINAIS, emitida a 23 de Out. de 1990 para Harvey et al.r descreve um sistema interactivo de TV no qual um posto central de difusão inclui sinais que transportam comandos, código executável e dados, por exemplo, no intervalo vertical de transição do sinal de televisão, para recepção pelos sistemas informáticos na localização do espectador. Um computador na localização do espectador extrai os comandos, código executável e dados e executa o código de modo a processar os dados e interagir com o utilizador. Tal sistema é comparável com a função de execução remota de sistemas informáticos distribuídos acima descrita, no sentido em que o computador do espectador é recrutado para o programa interactivo de TV e é controlado pelo posto central. A patente EP 0 594 353 divulga um sistema de distribuição de sinal, tal como um sistema de televisão interactiva por cabo, em que um servidor central comunica com terminais remotos e em que o servidor atribui um endereço específico para cada terminal recém-ligado para fins de mensagens de controlo e sondagens.
No caso de um sistema de televisão interactiva por cabo, um tal terminal consiste no set-top box ou conversor ligados entre o sistema de cabo e o receptor de televisão. Periodicamente, o servidor emite uma mensagem de controlo 5 contendo um endereço provisório e controla o endereço provisório. Ao receber essa mensagem, um conversor recém-conectado armazena o endereço provisório e responde ao controlo com uma mensagem de ligação ascendente. Após receber a mensagem de ligação ascendente, o servidor insere o endereço provisório na sua lista de sondagem de acordo com o prazo de transmissão medido desde enviar o controlo até receber a mensagem de ligação ascendente e selecciona um novo endereço provisório para usar em mensagens de controlo de transmissão subsequentes. As mensagens de ligação ascendente são repercutidas pelo servidor e verificadas pelo conversor. Se o conversor não puder verificar uma mensagem de ligação ascendente, o que pode ocorrer caso mais do que um conversor recém-conectado responda à mesma mensagem de controlo de transmissão, o conversor repete seu procedimento de inicialização para obter um novo endereço. Após estar concluída a inicialização o software do sistema pode ser descarregado do servidor para o conversor e o conversor colocado em funcionamento.
Em todos os sistemas acima referidos, um computador central controla ou responde a pedidos de computadores periféricos a ele ligados através de uma rede. Por exemplo: o computador periférico (computador pessoal) solicita a execução remota de um programa, solicita um ficheiro ou mensagem de outro computador ou envia um pedido de consulta para outro computador. 0 outro computador apenas fornecerá a resposta em resposta a um pedido, por exemplo num pedido de execução remota, o ficheiro, mensagem ou os dados obtidos. Adicionalmente, de um modo geral, ao computador periférico é pedido que disponha de todos os recursos 6 necessários para executar de forma completa ou quase completa o programa desejado, com o servidor agindo apenas como outro mecanismo de armazenamento ou até mesmo partilhando uma parte das tarefas de computação.
Os inventores propõem no seu pedido de patente co-pendente 95105803.1, publicado como EP 0 680 185, um sistema informático distribuído em que um servidor produz um fluxo de dados contínuo. Este fluxo de dados age como um dispositivo de armazenamento em massa para os computadores-cliente que o recebem. Este fluxo de dados inclui de forma repetitiva dados que representam um programa de computador distribuído em que o computador-cliente pode participar, incluindo código executável e dados. Um mecanismo de transporte, incluindo um canal de comunicação unilateral de alta velocidade, transporta o fluxo de dados do servidor para o cliente. O cliente recebe o fluxo de dados, extrai os dados computacionais representativos distribuídos e executa o programa de computador distribuído.
Esse sistema informático distribuído inclui uma fonte contínua de fluxo de dados que inclui repetitivamente dados que representam um programa informático distribuído e um computador-cliente, que recebe o fluxo de dados para extracção dos dados representativos do programa informático distribuído do fluxo de dados e executa o programa informático distribuído extraído.
Nesse sistema informático distribuído não é necessário que o computador-cliente inclua todos os recursos, especificamente a memória principal e o armazenamento em massa, necessários à completa execução do programa. Em 7 alternativa, não é necessário armazenamento em massa porque o fluxo de dados cumpre a função de armazenamento em massa e a quantidade de memória principal necessária é modesta porque apenas é necessário o armazenamento em memória da parte do programa a ser executada no momento. Quando essa parte em execução terminar, o seu espaço em memória é libertado e a parte seguinte a ser executada é extraída do fluxo de dados, armazenada no espaço libertado na memória e é então iniciada a execução dessa parte.
Adicionalmente, um tal sistema informático distribuído permite ao utilizador do computador-cliente a opção de participar na tarefa de computação distribuída. Caso seja desejada a participação, o computador-cliente extrai os dados que representam a aplicação informática distribuída e executa-a conforme descrito acima. Caso não se deseje a participação, o fluxo de dados é meramente ignorado e é executado o processamento pretendido pelo utilizador, ou nenhum processamento. Um tal sistema informático distribuído permite também a cada computador-cliente participante juntar-se em qualquer momento à função de computação distribuída e de seguir ao seu próprio ritmo na execução da sua própria função de computação.
Um tal sistema informático distribuído encontra-se particularmente adaptado a aplicações interactivas de TV dado que permite ao espectador sintonizar em qualquer momento um canal interactivo de TV, interagir com ele quando desejado (ou não interagir de todo) e permite aos espectadores progredir ao seu ritmo individual. Isto é especialmente vantajoso num ambiente em que um anúncio publicitário, com o seu próprio código executável e dados, pode ser apresentado no decorrer de um programa interactivo ou quando um espectador deseje mudar de canal.
De acordo com um primeiro aspecto da presente invenção, é fornecido um sistema em conformidade com a reivindicação 1, que inclui: um servidor, incluindo: um gerador de pacotes de modo a gerar operacionalmente um primeiro fluxo de pacotes, incluindo um módulo de código que representa um programa informático distribuído; uma fonte de dados auxiliares para gerar um fluxo de pacote dados auxiliares, incluindo pacotes de vídeo; e um multiplexador ligado ao gerador de pacotes de modo a receber o primeiro fluxo de pacotes, incluindo o módulo de código e ligado à fonte de dados auxiliares para receber o fluxo de pacotes de dados auxiliares, incluindo pacotes de vídeo; onde o gerador de pacotes deve repetidamente incluir o módulo de código dentro do primeiro fluxo de pacotes e o multiplexador deve multiplexar o primeiro fluxo de pacotes com o fluxo de pacotes de dados auxiliares de modo a gerar um segundo fluxo de pacotes.
De acordo com uma configuração preferida da primeira vertente, o multiplexador multiplexa temporalmente o primeiro fluxo de pacotes com o fluxo de pacote de dados auxiliares de modo a gerar o segundo fluxo de pacotes e inclui um gerador de fluxo, ligado ao gerador de pacotes, de modo a apresentar repetidamente dados associados ao programa informático distribuído para o gerador de pacotes para inclusão no primeiro fluxo de pacotes e uma fonte de programas, ligada ao gerador de fluxo, de modo a fornecer os dados associados com o programa informático distribuído para o gerador de fluxo. 9 A fonte de programas inclui de preferência um compilador de programas para compilar os dados associados com o programa informático distribuído e fornecer dados relacionados com a transmissão do programa informático distribuído para o gerador de fluxo; os dados relativos à transmissão do programa informático distribuído incluem a taxa de repetição desejada para o módulo de código dentro do primeiro fluxo de dados. 0 gerador de fluxo serve preferencialmente para construir o módulo de código; a utilização dos dados associados com a aplicação informática distribuída fornecida pela fonte de programas e a utilização dos dados associados com a aplicação informática distribuída serve para construir um módulo de dados contendo dados a serem processados por código incluído no módulo de código e onde o gerador de pacotes serve para gerar operacionalmente o primeiro fluxo de pacotes a incluir no módulo de dados. 0 sistema pode incluir um computador-cliente que inclui um receptor de fluxo de dados de modo a receber um fluxo de dados recebidos e a extrair o módulo de dados do fluxo de dados recebidos e uma memória para armazenar pelo menos uma parte de um primeiro módulo de dados de entre uma pluralidade de módulos de dados conforme são extraídos do fluxo de dados recebidos antes da recepção integral do primeiro módulo de dados. O computador-cliente executa um primeiro módulo de código quando o módulo de dados necessário a esse primeiro módulo de código for integralmente recebido e o receptor de fluxo de dados incluir um extractor de dados de pacotes para extrair 10 pacotes de dados do fluxo de dados recebidos que incluiu o módulo de dados e o extractor de pacotes serve para identificar os pacotes de dados que incluem o módulo de dados utilizando informação de identificação incluída nos pacotes de dados 0 gerador de pacotes deve preferencialmente incluir o módulo de dados dentro do primeiro fluxo de pacotes.
De acordo com uma das configurações, o gerador de fluxo, utilizando os dados associados ao programa informático distribuído, constrói um módulo de directório que inclui uma lista que identifica os módulos de código e de dados incluídos no primeiro fluxo de pacotes e onde o gerador de pacotes gera operacionalmente o primeiro fluxo de pacotes que inclui o módulo de directório e o gerador de pacotes inclui repetidamente o módulo de directório no primeiro fluxo de pacotes. 0 sistema pode incluir um computador-cliente que inclui um receptor de fluxos de dados para receber um fluxo de dados recebido e extrair o módulo de directório do fluxo de dados recebido; inclui uma memória para armazenar pelo menos um primeiro módulo de directório de um conjunto de módulos de directório extraídos do fluxo de dados recebido em antecipação à recepção integral do conjunto de módulos de directório, sendo que estes especificam um módulo de código e de dados associado com um directório identificador, incluído no fluxo de dados recebidos; e o computador-cliente deve solicitar o módulo de código e de dados associado identificado pelo directório; e o receptor de fluxos de dados inclui um extractor de dados de pacotes de 11 entre o fluxo de dados recebidos que inclui o módulo de directório; e o extractor de pacotes identifica os pacotes de dados que incluem o módulo de directório através do uso da informação de identificação incluída nos pacotes de dados. 0 papel preferencial da fonte de dados auxiliares é a inclusão de dados com codificação MPEG representando uma imagem de televisão nos pacotes de vídeo e a inclusão de pacotes de áudio contendo dados de áudio de codificação digital no fluxo de pacotes de dados auxiliares.
Numa alternativa, o gerador de pacotes, a fonte de dados auxiliares e o multiplexador compõem uma primeira fonte; o sistema inclui uma segunda fonte e um multiplexador de transporte ligado de modo a receber o segundo fluxo de pacotes da primeira fonte e um terceiro fluxo de pacotes da segunda fonte e para multiplexar o segundo e o terceiro fluxos de pacotes para transmissão através de um mecanismo de transporte como um quarto fluxo de pacotes e o multiplexador de transporte serve para multiplexar por frequência o segundo e terceiro fluxos de pacotes para transmissão através do mecanismo de transporte e o multiplexador de transporte serve para multiplexar temporalmente o segundo e terceiro fluxos de pacotes para transmissão pelo mecanismo de transporte.
Pode ser ligado um relógio de modo a fornecer dados de código temporal ao gerador de pacotes e à fonte de dados auxiliares, em que os dados de código temporal são incluídos no fluxo de pacotes de dados auxiliares ou no primeiro fluxo de pacotes de dados ou em ambos. 12 0 gerador de pacotes pode incluir primeiros pacotes no primeiro fluxo de dados de modo a incluir informação de identificação indicativa de que os primeiros pacotes incluem pelo menos uma parte do módulo de código representando a aplicação informática distribuída e a fonte de dados auxiliares pode incluir segundos pacotes no fluxo de pacotes de dados auxiliares de modo a incluir informação de identificação indicativa de que os segundos pacotes incluem dados de vídeo. 0 sistema pode incluir um transceptor de dados através do qual são recebidos dados no servidor a partir de um computador-cliente através de uma central de processamento e o computador-cliente pode aceder ao servidor através da central de processamento de modo a obter o módulo de código. A central de processamento pode ser uma rede telefónica. 0 servidor pode receber e processar dados recebidos no servidor a partir do computador-cliente durante a execução da aplicação informática distribuída pelo computador-cliente e pode gerar o módulo de código com base nos dados recebidos no servidor a partir da computação dos pedidos ou nos módulos de dados baseados em dados recebidos no servidor da computação dos pedidos. O sistema pode incluir um computador-cliente que inclui um receptor de fluxos de dados para receber um fluxo de dados recebido e para extrair o módulo de código representando a 13 aplicaçao informática distribuída a partir do fluxo de dados recebido. 0 computador-cliente pode incluir uma unidade de processamento que executa o programa informático distribuído e uma memória para armazenar pelo menos uma parte de um primeiro módulo de código de uma pluralidade de módulos de código conforme extraídos do fluxo de dados recebidos, antes de receber integralmente o primeiro módulo de código.
De preferência, o computador-cliente executará o primeiro módulo de código quando este for integralmente recebido e a memória armazenará pelo menos o primeiro e segundo módulos de código da pluralidade de módulos de código, em que o computador requerente comuta entre a execução do primeiro e segundo módulos de código e o receptor de fluxos de dados inclui um extractor de dados de pacotes para extrair pacotes de dados do fluxo de dados recebidos que incluem o módulo de código. 0 extractor de pacotes pode identificar os pacotes de dados que incluem o módulo de código usando informação de identificação incluída nos pacotes de dados. 0 receptor de fluxo de dados inclui preferencialmente um extractor de dados auxiliares para extrair pacotes de vídeo de fluxo de dados recebidos e um selector de fluxo para seleccionar o fluxo de dados recebidos para recepção pelo receptor de fluxo de dados e um desmodulador para desmodular e para receber um sinal portador modulado de uma ligação de satélite e circuitos para desmultiplexação 14 temporal de uma pluralidade de fluxos de dados transportados pelo sinal portador modulado.
De acordo com um segundo aspecto da presente invenção, é fornecido um método em conformidade com a reivindicação 47 para distribuir um programa informático, que inclui: a geração de um primeiro fluxo de pacotes incluindo repetidamente um módulo de código que representa o programa informático distribuído; a geração de um fluxo de pacotes de dados auxiliares que inclui pacotes de vídeo; e a multiplexação do primeiro fluxo de pacotes com o fluxo de pacotes de dados auxiliares de modo a gerar um segundo fluxo de pacotes.
BREVE DESCRIÇÃO DOS DESENHOS A FIGURA 1 é um diagrama de blocos de um sistema informático distribuído. A FIGURA 2 é um diagrama de blocos de um servidor conforme ilustrado na FIGURA 1; A FIGURA 3 é um cronograma ilustrativo dos fluxos de dados produzidos por um servidor num sistema informático distribuído conforme ilustrado na FIGURA 1; A FIGURA 4 é um diagrama de blocos de um computador-cliente conforme ilustrado na FIGURA 1. A FIGURA 1 é um diagrama de blocos de um sistema informático distribuído, de acordo com a presente invenção. Na FIGURA 1, um servidor 10, que pode incluir um sistema informático de grandes dimensões, encontra-se ligado a uma pluralidade de computadores-cliente 20 através de um mecanismo de transporte 30. O servidor 10 pode estar ligado 15 a mais de três computadores-cliente 20 ilustrados na FIGURA 1 e os computadores-cliente 20 podem estar geograficamente dispersos a grande distância. O computador-cliente 22 está ligado de forma bidireccional a um computador local 40, a um sistema de processamento de dados auxiliar 50 e a uma central de processamento 60. A central de processamento 60 encontra-se ligada de forma bidireccional ao servidor 10. A central de processamento 60 pode também estar ligada a outros locais para além do servidor 10 ilustrado na FIGURA 1. O computador local 40 está adicionalmente ligado de modo bidireccional a um dispositivo de armazenamento em massa 70. O computador-cliente 22 interage com um utilizador 80 fornecendo informações ao utilizador através de um ecrã ou outro dispositivo de saída (não exibido) e aceitando informações do utilizador através de um teclado ou outro dispositivo de entrada (também não exibido).
Os computadores-cliente 24 e 26 também interagem com os seus utilizadores (não exibido de modo a simplificar o desenho). Adicionalmente, os computadores-cliente 24 e 26 encontram-se ligados de modo bidireccional à central de processamento 60. Tais ligações são contudo opcionais. Os únicos requisitos para qualquer computador-cliente 20 são um modo de interagir com um utilizador e uma ligação ao mecanismo de transporte 30. Ligações a computadores locais, sistemas de processamento de dados auxiliares e a central de processamento 60 são todos opcionais e não necessitam estar instalados em todos os computadores-cliente 20. O mecanismo de transporte 30 inclui uma ligação de dados digital de alta velocidade unidireccional, tal como uma ligação directa de fibra óptica, ou via satélite, do 16 servidor 10 para os computadores-cliente 20. Os dados podem ser transportados através do sistema de transporte 30 por um sistema de dados em pacotes. Num tal sistema, um fluxo de pacotes de dados, cada um incluindo informação identificativa que indica nomeadamente o tipo de dados contidos nesse pacote e os dados concretos, é transmitido através da ligação de dados. Um tal sistema de pacotes de dados permite que vários fluxos de dados independentes, cada um identificado por informação identificativa nos seus pacotes, sejam temporalmente multiplexados dentro de um único fluxo de pacotes.
Adicionalmente é possível multiplexar uma pluralidade de tais fluxos de pacotes de dados através de canais respectivos no mesmo meio físico (fibra óptica ou ligação rádio-satélite) criando o mecanismo de transporte 30. Por exemplo, diferentes fluxos de dados podem ser modulados em sinais portadores com diferentes frequências. Estes portadores modulados podem ser transmitidos através dos respectivos transponders numa ligação de satélite, por exemplo. Adicionalmente, se um determinado transponder tem capacidade suficiente, é possível multiplexar temporalmente vários fluxos de dados num único portador modulado.
Os computadores-cliente 20 contêm cada um receptor de dados para selecção de um dos fluxos de pacotes a ser transportados através do mecanismo de transporte 30, recebendo o fluxo de pacotes seleccionado e extraindo os dados nele contidos. Continuando o exemplo acima, o receptor de dados pode incluir um desmodulador sintonizável para recepção de um dos respectivos portadores moduláveis da ligação por satélite. Adicionalmente, o receptor de 17 dados pode incluir circuitos para desmultiplexação temporal dos respectivos fluxos de dados que são transportados por esse portador modulado.
Durante o seu funcionamento, o servidor 10 produz um fluxo continuo de dados sob a forma de um fluxo de pacotes para os computadores-cliente 20. O servidor 10 insere repetidamente um pacote ou pacotes sucessivos, contendo dados que representam a aplicação informática distribuída, incluindo pelo menos um módulo de código executável, no fluxo de dados. Este módulo de código contém código executável para os computadores-cliente 20. O receptor de dados no computador-cliente 22, por exemplo, monitoriza constantemente os pacotes no fluxo de dados no mecanismo de transporte 30. Quando um pacote que inclui informação de identificação indicando que contém o módulo de código (ou uma parte do módulo de código) necessário ao computador-cliente 22 está presente no fluxo de dados, o computador-cliente 22 extrai o módulo de código (ou a parte do módulo de código) desse pacote e armazena-o na memória principal. Quando o módulo de código é integralmente recebido, o computador-cliente 22 inicia a sua execução.
Poderá existir mais que um módulo de código presente no fluxo de dados, cada um deles contendo uma parte diferente da aplicação informática distribuída. Por exemplo, é possível dividir a aplicação informática distribuída em pequenas partes de tal modo que apenas seja necessário executar uma parte de cada vez. A parte da aplicação informática distribuída cuja execução é necessária no momento é carregada para a memória do computador-cliente 22. Quando a execução dessa parte estiver concluída, um 18 módulo de código contendo o código executável para a parte seguinte da aplicação informática distribuída é extraido do fluxo de dados, armazenado em memória e executado. Cada parte é extraída do fluxo de dados conforme necessário. Se o computador-cliente 22 dispuser de memória suficiente é possível carregar vários módulos de código para a memória e comutar entre eles sem os extrair do fluxo de dados, mas tal não é necessário. Estruturando deste modo uma aplicação informática distribuída, é possível minimizar a quantidade de memória necessária do computador-cliente 22. 0 servidor 10 pode também incluir de forma repetitiva um pacote ou pacotes contendo um ou mais módulos de dados no fluxo de dados. Os módulos de dados contêm dados a serem processados pelo código executável no módulo de código. Antes ou durante a execução do código de um módulo de código previamente extraído, o computador-cliente 22 poderá solicitar acesso aos dados do módulo ou módulos de dados. Nesse caso o computador-cliente 22 monitoriza o fluxo de dados em busca do módulo ou módulos de dados necessários. Quando pacotes que contêm o módulo ou módulos de dados (ou partes do módulo ou módulos de dados) se encontram presentes no fluxo de dados, estes são extraídos e os conteúdos são armazenados na memória principal do computador-cliente 22. Quando todos os módulos de dados necessários tenham sido integralmente recebidos, o computador-cliente 22 inicia ou prossegue a execução do código a partir do módulo de código de modo a processar os dados do módulo ou módulos de dados recebidos. Tal como em relação aos módulos de código, é possível o armazenamento de mais que um módulo de dados em memória, caso haja memória suficiente no computador-cliente 22. 19 0 servidor 10 pode incluir adicionalmente e de forma repetitiva no fluxo de dados, um pacote ou pacotes contendo um directório dos módulos de código e de dados incluídos no fluxos de dados. O directório inclui uma lista de todos os módulos de código e de dados incluídos no fluxos de dados, incluindo informação acerca desses módulos. Se um directório está presente no fluxo de dados então, antes da extracção de quaisquer módulos de código ou de dados do fluxo de dados, o computador-cliente 22 monitoriza o fluxo de dados em busca do directório. Quando pacotes contendo o directório (ou partes deste) se encontram presentes no fluxo de dados, estes são extraídos e os seus dados são armazenados na memória principal do computador-cliente 22. Quando o directório tiver sido integralmente recebido, o computador-cliente 22 avalia as entradas no directório, seguidamente solicita o primeiro módulo de código e/ou dados do fluxo de dados e a execução prossegue conforme descrito acima.
Qualquer dos computadores-cliente 20 pode juntar-se à função de computação distribuída, representada pelo fluxo de pacotes, em qualquer momento e cada um dos computadores-cliente 20 pode funcionar na sua velocidade distinta, geralmente em resposta ao utilizador 80. De modo a tornar isto possível, o servidor 10 coloca repetitivamente o directório e todos os módulos de código e de dados que os computadores-cliente 20 podem necessitar para executar a sua parte da função de computação distribuída no fluxo de dados no mecanismo de transporte 30. Sempre que um dos computadores-cliente 20 se junta à execução da função de computação distribuída este monitoriza o fluxo de pacotes 20 recém recepcionado no mecanismo de transporte 30 em busca do módulo-directório, extrai-o e processa-o, conforme descrito acima. Durante a execução, sempre que um dos computadores-cliente 20 necessite um novo módulo de código e/ou de dados, este monitoriza o fluxo de dados no mecanismo de transporte 30 em busca do módulo de código e/ou de dados necessário, extrai-o e executa-o, caso se trate de um módulo de código, ou processa-o caso se trate de um módulo de dados, conforme descrito acima. O fluxo de pacotes de dados pode também incluir pacotes de dados auxiliares. Estes dados não são necessários ao computador-cliente 22 para a execução do código, embora possa estar relacionada com a execução uma vez que o utilizador 80 pode interagir com o programa em execução no computador-cliente 22 com base em dados auxiliares recebidos. 0 receptor de fluxo de dados no computador-cliente 22 reconhece os pacotes de dados auxiliares no fluxo de dados no mecanismo de transporte 30 e passa-os directamente para o processador de dados auxiliar 50. O processador de dados auxiliar 50 processa os seus pacotes independentemente do computador-cliente 22. Se for necessário exibir os dados auxiliares ao utilizador 80, o processador de dados auxiliar 50 pode disponibilizar o seu próprio dispositivo de visualização (não exibido) que pode ser partilhado com o computador-cliente 22, ou o dispositivo de visualização (não exibido) associado com o computador-cliente 22 pode ser partilhado com o processador de dados auxiliar 50 de modo a disponibilizar um único dispositivo de visualização de informação ao utilizador 80. O processador de dados auxiliar 50 pode ter ligações a 21 outros dos elementos ilustrados (não exibidos) mas isso depende do tipo de dados.
Por exemplo, num sistema interactivo de TV, os dados auxiliares incluem as partes de video e áudio do sinal de televisão subjacente. Por exemplo, os dados auxiliares incluiriam pacotes de vídeo contendo dados MPEG ou semelhantes, codificados, representando a imagem televisiva e pacotes de áudio contendo áudio digital codificado. Adicionalmente, podem existir diferentes fluxos de pacotes áudio transportando os canais áudio respectivos para possibilitar as funcionalidades estéreo, de programa áudio secundário (SAP) ou multilinguagem. Num processador dados auxiliares 50 num tal sistema, os pacotes de vídeo seriam fornecidos a um descodificador MPEG (ou similar) comum (não exibido) que iria gerar sinais de vídeo padrão que seriam fornecidos a um receptor de televisão ou a um monitor de vídeo (não exibido). Os pacotes de áudio seriam fornecidos a um descodificador de áudio comum (não exibido) que iria gerar sinais de áudio padrão para o receptor de televisão ou altifalantes (não exibidos).
Num tal sistema interactivo de TV, o computador-cliente 22 pode, em resposta à execução do módulo de código executável, gerar exibições de gráficos de modo a fornecer informação ao utilizador 80. Estas exibições gráficas podem ser combinadas com o sinal de vídeo Standard a partir do descodificador de MPEG através de método conhecido e a imagem combinada pode ser exibida no receptor de televisão ou monitor de vídeo. O computador-cliente 22 pode também gerar sons para fornecer outras informações ao espectador. Os sons gerados podem ser combinados, por método conhecido, 22 com os sinais áudio Standard do descodificador áudio e o som combinado pode ser reproduzido através do receptor de televisão ou de altifalantes.
Adicionalmente podem ser incluídos dados de código temporal no fluxo de dados de pacotes auxiliares de televisão ou no fluxo de dados de pacotes que constitui a aplicação interactiva de TV, ou em ambos. Isto permite a sincronização de quaisquer imagens ou sons gerados pelo computador-cliente 22 com o sinal televisivo dos dados auxiliares. Neste caso, o computador-cliente 22 teria acesso aos dados de código temporal e controlaria a geração da imagem e/ou som de modo a ocorrer no momento desejado, conforme os dados de código temporal.
Num tal sistema interactivo de TV tanto o computador-cliente 22 como o processador de dados auxiliares 50 podem estar contidos numa mesma caixa, como um receptor de televisão ou um descodificador televisivo do tipo set-top box. O receptor televisivo ou o descodificador podem incluir conectores para ligação a um computador local ou outro equipamento. 0 utilizador 80 fornece contributos ao programa que está a ser executado no computador-cliente 22, durante a execução deste. Estes dados podes ser solicitados pelo servidor 10 de modo a executar a função de computação distribuída. Num sistema interactivo de TV, por exemplo, o utilizador 80 pode introduzir dados no computador-cliente através de uma unidade de controlo remoto. 23
Os dados do utilizador são transferidos para o servidor 10 através da central de processamento 60. Numa das configurações, os dados são enviados dos computadores-cliente 20 para o servidor 10 por meio de modems através da rede telefónica que age como a central de processamento 60. O servidor 10 recebe e processa os dados recebidos dos computadores-cliente 20 durante a execução da sua parte da função de computação distribuída. O servidor 10 pode gerar novos módulos de código e/ou dados no fluxo de dados no mecanismo de transporte 30, ou modificar os existentes, da forma descrita abaixo, com base nesses dados recebidos. Em alternativa, o servidor 10 pode devolver imediatamente informação aos computadores-cliente 20 na outra direcção, através da central de processamento 60. A informação nos novos módulos de código e/ou dados gerados é processada por todos os computadores-cliente 20 que participam na função de computação distribuída enquanto a informação passada do servidor 10 para os computadores-cliente 20 através da central de processamento 60 se encontra especificamente relacionada com o computador-cliente (22, 24, 26) ao qual essa informação foi enviada.
Noutra modalidade, a central de processamento 60 pode incluir o seu próprio sistema informático com uma ligação independente por modem aos computadores-cliente 20 e ao servidor 10 através da rede telefónica. Em qualquer uma das modalidades acima, a central de processamento 60 fornece acesso a outros computadores ou locais de processamento (não exibidos) através da rede telefónica. Desse modo, se for necessária informação de outros sistemas informáticos de modo a executar a função de computação distribuída, 24 esses sistemas informáticos podem ser acedidos através de modem e da rede telefónica pelos computadores-cliente 20 ou pelo servidor 10.
Uma porta de entrada/saida (I/O) no computador-cliente 22 encontra-se ligada à porta correspondente no computador local 40. O computador local 40 encontra-se localizado junto do computador-cliente 22. O computador local 40 pode ser um computador pessoal usado pelo utilizador 80 do computador-cliente 22, ou pode ser um computador maior ou uma rede de computadores funcionando no mesmo local que o computador-cliente 22. Isto permite ao computador-cliente 22 aceder a dados no armazenamento em massa 70 ligado ao computador pessoal ou num computador da rede funcionando no local do computador-cliente 22. Adicionalmente, o computador-cliente 22 pode usar o armazenamento em massa 70 do computador local 40 para armazenamento de dados que serão recuperados mais tarde É provável que o computador local 40 inclua tanto um dispositivo de saída (não exibido), p. ex. um ecrã de computador, como um dispositivo de entrada (também não exibido), p. ex. um teclado de computador. Ambos os dispositivos podem ser partilhados com o computador-cliente 22 e/ou com o processador de dados auxiliares 50, conforme descrito acima.
Por exemplo, o sistema informático distribuído ilustrado na Figura 1 pode fazer parte de um amplo sistema informático empresarial e o servidor 10 pode estar instalado na sede dessa empresa. O computador-cliente 22 pode estar localizado num local remoto e o computador local 40 pode estar ligado à rede de computadores pessoais nesse local. Os trabalhadores nesse local podem armazenar dados 25
partilhados (p. ex., informação financeira) no servidor que está ligado a essa rede. A função de computação distribuída pode incluir a recolha de dados financeiros locais dos computadores-cliente nos locais remotos, o processamento desses dados financeiros e o retorno de resultados financeiros aos computadores-cliente. Numa tal aplicação, o código executável executado no computador-cliente 22 acede aos dados a partir do computador local 40 (quer através do seu armazenamento em massa 70, quer através da rede) através da porta I/O e envia-os ao servidor 10 através da central de processamento 60. O servidor 10 continua o seu processamento com base na informação recebida do computador-cliente 22 (e de outros computadores-cliente 20) e devolve os resultados desse processamento aos computadores-cliente 20, quer através da central de processamento 60, quer por meio do fluxo de dados no mecanismo de transporte 30.
Num outro exemplo, o sistema informático distribuído pode ser um sistema interactivo de televisão que emite um programa de compras a partir do domicílio como a aplicação informática distribuída. Num tal caso, os dados auxiliares transportam a parte de vídeo e áudio do sinal televisivo, que pode exibir e descrever os itens em venda e pode incluir tanto actores ao vivo como imagens gráficas sobrepostas, gerados num estúdio central. Os módulos de código e de dados que compõem o aplicativo de televisão interactiva podem incluir dados referentes aos produtos que são colocados à venda durante esse espectáculo, ou parte do espectáculo, e código executável para interacção com o utilizador da forma descrita abaixo. 26
Quando um espectador deseja encomendar um item, pressiona um botão no comando remoto da TV. Este botão avisa o computador-cliente 22 que deve exibir uma série de instruções e menus necessários à obtenção da informação necessária à efectivação da encomenda, por exemplo: o número do item, o nome e morada do espectador, o método de pagamento, o número do cartão de crédito (se necessário), etc. Estas instruções são geradas no computador-cliente sob a forma de gráficos que são sobrepostos na imagem video no televisor. Também é possível gerar e combinar uma voz gerada por computador com o áudio da televisão quer através de sobreposição de voz, quer através da substituição do áudio da televisão. O espectador reage à instrução fornecendo a informação solicitada através do comando remoto de TV. Quando a informação solicitada pela imagem exibida no ecrã e/ou pelas instruções de voz é introduzida pelo espectador, é enviada para um computador central através do modem no computador-cliente. Pode ser enviada uma confirmação da encomenda na direcção oposta pelo computador central.
Também é possível que informação permanente acerca do utilizador (por exemplo, o nome, morada, método de pagamento e número de cartão de crédito) possa ser antecipadamente fornecida pelo utilizador de modo a tornar desnecessária a solicitação dessa informação de cada vez que é efectuada uma encomenda. A informação é armazenada em memória permanente no computador-cliente. Nessa eventualidade, quando uma encomenda é registada, essa informação é recolhida da memória permanente, anexada ao número do item e transmitida ao computador central. É ainda possível que, por meio de códigos temporais ou outros 27 comandos inseridos no fluxo de dados, o computador-cliente saiba qual o item que se encontra nesse momento à venda. Nessa eventualidade, o espectador poderá encomendá-lo através da simples pressão de um botão no comando remoto de TV. Em resposta, o computador-cliente pode combinar a informação anteriormente recebida e relacionada com o item que se encontra nesse momento à venda com a informação pessoal relativa ao espectador anteriormente armazenada e transmitir a encomenda ao computador central e receber a confirmação no retorno.
Dado que os módulos de código e de dados relativos ao programa de compras no domicílio são inseridos de modo repetitivo no fluxo de dados, um espectador pode sintonizar o programa em qualquer momento e nele participar de forma interactiva. De modo similar, não é necessário que o espectador participe interactivamente, podendo simplesmente ignorar a vertente interactiva do espectáculo. É também possível ao computador-cliente 22 receber informação de controlo a partir do computador local 40. Por exemplo, o utilizador 80, fazendo uso do computador local 40, poderia controlar o computador-cliente 22 através da porta I /0 de modo a seleccionar um dos fluxos de dados desejados no mecanismo de transporte 30 e processar o programa que se encontra a ser emitido nesse fluxo de dados, com interacção com o utilizador 80 através dos dispositivos de entrada e saída (não exibidos) ligados ao computador local 40. É ainda possível ao utilizador 80 levar o computador-cliente 22 a aceder ao servidor 10 através da central de 28 processamento 60, em alternativa ao acesso através do fluxo de dados no mecanismo de transporte 30, e receber módulos de código e de dados através desta ligação bidireccional. A FIGURA 2 é um diagrama de blocos de um servidor conforme ilustrado na FIGURA 1. Na FIGURA 2, uma fonte de código de código e dados de uma aplicação informática distribuída 101 inclui um compilador e um módulo de gestão de software (não exibido) e tem um terminal de saída ligado a um terminal de entrada de um gerador de fluxo 102. Um terminal de saída do gerador de fluxo 102 encontra-se ligado a um terminal de entrada de um gerador de pacotes para transporte 104. Um terminal de saída do gerador de pacotes para transporte 104 encontra-se ligado a um primeiro terminal de entrada de um multiplexador de pacotes 106. Um terminal de saída de um multiplexador de pacotes 106 encontra-se ligado a um terminal de entrada de um multiplexador de transporte 110. Um terminal de saída de um multiplexador de transporte 110 encontra-se ligado ao meio físico que compõe o mecanismo de transporte 30 (da FIGURA 1). Um segundo terminal de entrada de um multiplexador de pacotes 106 encontra-se ligado a uma fonte de pacotes auxiliares de dados 107. Um relógio 109 tem terminais de saída respectivamente ligados a terminais de entrada correspondentes do gerador de pacotes para transporte 104 e fonte de dados auxiliares 107. Um transceptor 103 tem um primeiro terminal bidireccional ligado à central de processamento 60 (da FIGURA 1) e um segundo dado bidireccional ligado ao código de aplicativo e à fonte de dados 101. O código de aplicativo e fonte de dados 101, o gerador de fluxo 102, o gerador de pacotes para transporte 104, a 29 fonte de dados auxiliares 107, o relógio 109 e o multiplexador de pacotes 106, combinados, formam a fonte de canal 108 para o mecanismo de transporte, ilustrado na figura com uma caixa a tracejado. Outras fontes de canais incluindo componentes similares aos ilustrados na fonte de canal 108, mas não exibidos na FIGURA 1, estão representados por outra caixa a tracejado 108a. As outras fontes de canais (108a) têm terminais de saída ligados a outros terminais de entrada do multiplexador de transporte 110 e podem ter terminais de entrada ligados a centrais de processamento através de transceptores de dados.
Em funcionamento, os dados que representam o aplicativo informático distribuído e os dados referentes à transmissão do programa através do mecanismo de transporte 30 são fornecidos pelo gerador de fluxo 102 da fonte de aplicativos 101. Estes dados podem ser fornecidos quer na forma de ficheiros contendo dados que representam os módulos de código e de dados, quer por guiões que fornecem informação acerca da construção dos módulos de código e de dados, ou outra informação semelhante. Os módulos de código e de dados podem ser constantes ou podem mudar de forma dinâmica, com base na entrada de dados recebidos dos computadores-cliente 20 através da central de processamento 60 e/ou outras fontes. O código executável e os ficheiros de módulos de dados podem ser gerados por um compilador, intérprete ou assemblador, de modo comum em resposta a programação em linguagem-fonte por um programador de aplicativos. O ficheiro de dados relativo à transmissão dos módulos inclui informação tal como: a taxa de repetição desejada para o directório e módulos de código e de dados a serem incluídos no fluxo de dados, o tamanho da memória 30 principal nos computadores-cliente 20 necessária ao armazenamento de cada módulo e a execução integral do aplicativo, um nível de prioridade para o módulo, caso se trate de um módulo de código, etc. O gerador de fluxo 102 processa os dados da fonte de aplicativos 101. Em resposta, o gerador de fluxos 102 constrói um módulo-directório, dando uma imagem geral do aplicativo. A informação no módulo-directório inclui por exemplo: a identificação de todos os módulos de código e de dados que são repetidamente transmitidos no fluxo de dados, o seu tamanho e possivelmente outra informação relativa a esses módulos. Nesse momento, os dados representativos do programa são processados de modo a gerar módulos de código e de dados. Os módulos-directório, de código e de dados assim construídos são formatados através da adição de cabeçalhos de módulo e de códigos de detecção e/ou correcção de erros a cada módulo. É também gerado um cronograma de transmissão. Após a conclusão deste processamento, os dados que representam o módulo-directório e os módulos de código e de dados são repetidamente entregues ao gerador de pacotes para transporte 104, de acordo com o cronograma anteriormente gerado. O gerador de pacotes para transporte 104 gera um fluxo de pacotes representando os módulos-directório e os módulos de código e de dados à medida que estes são emitidos pelo gerador de fluxo 102. Cada pacote tem um tamanho constante e predeterminado e é gerado pela divisão do fluxo de dados do gerador de fluxo em grupos de bits e juntando um cabeçalho de pacote com informação identificando a informação contida no pacote e código de detecção e/ou 31 correcção de erros, etc. a cada grupo, de tal modo que cada pacote tem o mesmo tamanho predeterminado. (Caso haja insuficiência de dados do gerador de fluxo 102 para preencher completamente um pacote esse pacote é completado com dados em branco). Estes pacotes são multiplexados temporalmente com os pacotes de dados auxiliares, de um modo conhecido, de modo a formar um fluxo único de pacotes no multiplexador de pacotes 106. É também possível gerar pacotes com tamanho variável. Neste caso, o cabeçalho de pacote para cada pacote conterá o tamanho desse pacote. Adicionalmente, os pacotes de dados de código temporal são colocados nos pacotes de fluxo de dados e/ou nos pacotes de dados auxiliares, com base em dados recebidos do relógio 109.
Os fluxos de pacotes de todos os canais-fonte (108, 108a) são multiplexados num único canal de transporte que é transmitido através do mecanismo de transporte 30. Conforme descrito acima, os fluxos de pacotes podem ser multiplexados por frequência através da modulação de um sinal de transporte numa frequência diferente para cada pacote, com todos os transportadores a serem transportados através de ligação por satélite para os computadores-cliente 20, por um método comum. Adicionalmente, caso haja capacidade suficiente num dos canais de transporte, vários fluxos de pacotes podem ser temporalmente multiplexados de modo estatístico, também por um método comum. Por exemplo, tem sido proposta a cronometragem de até oito fluxos de dados de televisão interactiva através de uma única ligação de satélite. 32
Os dados dos computadores-cliente 20 através da central de processamento 60 (da FIGURA 1) são recebidos no servidor 10 pelo transceptor de dados 103, o qual pode incluir o seu próprio processador 8 (não exibido). Caso seja gerada uma resposta imediata, o transceptor 103 devolve essa resposta através da central de processamento 60 a um computador-cliente (22-26) especifico, a um conjunto especifico dos computadores-cliente 20 ou a todos os computadores-cliente 20, sequencialmente. Se, contudo, se pretender obter uma resposta comum para todos os computadores-cliente 20, o programador da aplicação pode alterar os ficheiros de código e de dados no código da aplicação e na fonte de dados 101 utilizando o compilador da aplicação. Estes ficheiros alterados são então processados novamente pelo gerador de fluxo, de modo a gerar outro fluxo. E adicionalmente possível a alteração automática e dinâmica dos ficheiros de código e de dados na fonte de aplicação 101 (i.e. em tempo real) em resposta a dados recebidos do transceptor 103 e sendo o fluxo actualizado à medida que os dados são recebidos dos computadores-cliente 20. A FIGURA 3 é um cronograma ilustrativo dos fluxos de dados produzidos pelo servidor num sistema informático distribuído conforme ilustrado na FIGURA 1. Na FIGURA 3, o servidor 10 é representado a produzir uma pluralidade de fluxos de pacotes 32-38. Cada fluxo de pacotes (32-38) é exibido como uma banda horizontal dividida em pacotes com a mesma duração e número de bits. Conforme descrito acima, é possível que o tamanho dos pacotes em qualquer fluxo de pacotes varie em função da quantidade de dados a serem transportados. Na FIGURA 3 pode ser observado que os tempos de começo dos pacotes não estão sincronizados. É possível 33 sincronizar os pacotes, mas tal não é necessário. Na FIGURA 3, os pacotes que transportam dados representando directórios são designados por DIR, os pacotes que transportam dados representando módulos de código são designados por CM, os pacotes que transportam dados representando módulos de dados são designados por DM e pacotes que transportam dados auxiliares são designados por AUX.
Na série superior de pacotes 32, o pacote mais à esquerda contém dados que representam um módulo de código CM. Este é seguido por três pacotes que contêm dados auxiliares, AUX, seguidos de outro pacote contendo dados que representam o módulo de código, CM. Da série de pacotes 32, pode observar-se que o módulo de código é produzido repetitivamente. Podem existir mais ou menos pacotes entre repetições sucessivas dos pacotes de módulos de código CM. A taxa de repetição pode ser especificada pelo programador quando a aplicação é programada e pode variar durante a execução da aplicação.
Na série seguinte de pacotes 34, o pacote mais à esquerda contém dados auxiliares, AUX. Os dois pacotes seguintes comtêm partes respectivas de um módulo de código (CMl, CM2) . 0 último pacote contém dados auxiliares, AUX. Da série de pacotes 34 pode observar-se que se um módulo de código é demasiado grande para caber num único pacote pode ser transportado por mais que um, com cada pacote contendo uma parte do módulo de código. Embora sejam ilustrados dois pacotes na série de pacotes 34 como contendo o módulo de código (CMl, CM2), um qualquer número de pacotes pode ser usado para transportar o módulo de código, dependendo do 34 seu tamanho. Os dois pacotes que transportam o módulo de código (CMl, CM2) são repetidamente transmitidos (não exibido) na série de pacotes 34, conforme descrito acima.
Na série de pacotes 36, o pacote mais à esquerda contém dados que representam um módulo de código (CM) . 0 pacote seguinte (DM1) é um primeiro pacote que contém dados que representam um módulo de dados. 0 pacote seguinte contém dados auxiliares, AUX. 0 pacote seguinte (DM2) é um segundo pacote que contém os restantes dados que representam o módulo de dados. Da série de pacotes 36 pode ser observado que um módulo de dados (DM1, DM2), associado a um módulo de código (CM), pode também ser incluido no fluxo de pacotes. Tanto o módulo de código (CM) como o módulo de dados (DMl, DM2) são transmitidos repetidamente (não exibido) na série de pacotes 36. A taxa de repetição do módulo de código (CM) pode ser diferente da do módulo de dados (DMl, DM2) e ambas as taxas podem ser especificadas pelo programador da aplicação e alteradas durante a execução da aplicação.
Pode ser ainda observado que caso o módulo de dados seja demasiado grande para estar contido num único pacote, este pode ser transportado por mais que um pacote, cada pacote contendo uma parte do módulo de dados. Embora sejam ilustrados dois pacotes na série de pacotes 36 como contendo o módulo de dados (DMl, DM2), um qualquer número de pacotes pode ser usado para transportar o módulo de dados, dependendo do seu tamanho. Pode ser ainda observado que os pacotes que transportam o módulo de dados não necessitam de ser transmitidos sequencialmente, podendo ter pacotes intercalados no fluxo de dados. 0 mesmo se verifica 35 para múltiplos pacotes que transportam um módulo de código ou um módulo-directório (não exibido).
Na série inferior de pacotes 38, o pacote mais à esquerda contém dados que representam o directório (DIR). O pacote seguinte contém dados que representam um módulo de código (CM) seguido por um pacote que contém dados auxiliares (AUX) e um pacote que contém dados que representam um módulo de dados (DM) . Na série de pacotes 38 podem ser observados a totalidade de um módulo-directório (DIR), um módulo de código (CM) e um módulo de dados (DM) num único fluxo de pacotes. As taxas de repetição respectivas destes três módulos podem ser distintas conforme especificado pelo programador da aplicação e podem ser alteradas durante a execução da aplicação. A FIGURA 4 é um diagrama de blocos de um computador-cliente 22 conforme ilustrado na FIGURA 1. Na FIGURA 4, o mecanismo de transporte 30 (da FIGURA 1) está ligado a um terminal de entrada de um selector de fluxo 202. Um terminal de saída de um selector de fluxo 202 está ligado aos correspondentes terminais de entrada de um extractor de dados auxiliares 204 e de um extractor de pacotes de dados 206. Um terminal de saída do extractor de dados auxiliares 204 está ligado ao processador de dados auxiliares 50 (da FIGURA 1) . Um terminal bidireccional do extractor de pacotes de dados 206 está ligado a um terminal correspondente de um adaptador de fluxo de I/O 208. Um terminal de controlo de saída do adaptador de fluxo de I/O está ligado a um terminal correspondente de controlo de entrada do selector de fluxo 202. A combinação do selector de fluxo 202, extractor de dados auxiliares 204 e extractor de pacotes de dados 206 36 forma um receptor de fluxos de dados 207 para o computador-cliente 22, ilustrado por uma linha tracejada na FIGURA 4. 0 adaptador de fluxo de I/O 208 forma parte de uma unidade de processamento 224 no computador-cliente 22, ilustrada por uma linha tracejada na FIGURA 4. Para além do adaptador de fluxo de I/O 208, a unidade de processamento 224 inclui um processador 210, memória de leitura/escrita (RAM) 212 e memória de leitura (ROM) 214 ligados em conjunto de modo comum através de um barramento de sistema 216. São fornecidos mecanismos adicionais de entrada e saída por uma porta I/O 210 ligada ao processador local 40 (da FIGURA 1), pelo adaptador de I/O do utilizador 220 para comunicação com o utilizador 80, e pelo modem 222 ligado à central de processamento 60 (da FIGURA 1); todos eles estão também ligados ao barramento de sistema de forma comum. Podem estar ligados outros adaptadores (não exibidos) ao barramento de sistema 216, de modo a fornecer outras capacidades à unidade de processamento 224.
Conforme descrito acima, o extractor de dados auxiliares 204, a porta I/O 218 e o modem 222 não são necessários num computador-cliente 20, de acordo com a presente invenção. São ilustrados na FIGURA 1 e FIGURA 4 de modo a mostrar funcionalidades adicionais opcionais.
Em funcionamento, o processador 210 da unidade de processamento 224 recolhe instruções de programa armazenadas permanentemente em ROM 214, ou armazenadas temporariamente em RAM 212 e executa as instruções recolhidas para ler dados da ROM 212 e/ou RAM 214, escrever dados na RAM 212 e/ou receber dados de ou fornecer dados a 37 fontes externas através da porta 1/0 218, do adaptador de 1/0 do utilizador e/ou modem 222, de um modo comum. Sob a influência do controlo de programa, o processador 210 pode também solicitar que um módulo de código e/ou de dados do fluxo de dados seja fornecido ao computador-cliente 22 através do mecanismo de transporte 30 (da FIGURA 1) . Para recolher estes dados, o processador 210 começa por ordenar ao adaptador de fluxo I/O 208 que envie um sinal de controlo de selecção ao selector de fluxo 202, possivelmente em resposta a uma introdução de dados do utilizador a partir do adaptador de I/O do utilizador 220. Então, o processador 210 emite um pedido para um módulo de código ou de dados específico ao adaptador de fluxo de I/O 208. O adaptador de fluxo de 1/0 208 transmite este pedido ao extractor de pacotes de dados 204. 0 mecanismo de transporte 30 (da FIGURA 1) fornece toda a pluralidade de fluxos de pacotes (32-32 da Figura 3) que transporta ao selector de fluxo 202, que passa apenas o fluxo de pacotes seleccionado. O extractor de dados auxiliares 204 monitoriza o fluxo de pacotes seleccionado, extrai dele os pacotes de dados auxiliares e fornece-os directamente ao processador de dados auxiliares 50 (da FIGURA 1) . O extractor de pacotes de dados 206 monitoriza de modo semelhante o fluxo de pacotes seleccionado, extrai dele o directório, os pacotes de módulos de código e/ou de dados solicitados pelo adaptador de fluxo de I/O 208 e fornece-os ao adaptador de fluxo de I/O 208. Os dados dos pacotes remetidos ao adaptador de fluxo de I/O 208 são fornecidos à RAM 212 Quando a recolha do módulo do fluxo de dados tiver sido concluída (a qual pode necessitar de vários pacotes, conforme descrito acima), o processador 210 38 é notificado da sua recepção pelo adaptador de fluxo de 1/0 208. O processador 210 pode então continuar a execução do seu programa. O fluxo de dados num sistema informático distribuído ilustrado na FIGURA 1 é similar a um sistema de armazenamento em massa em sistemas anteriores desta natureza. Um programa a ser executado no processador 210 faz um pedido de um módulo listado no directório do mesmo modo que um tal programa faria um pedido de um ficheiro contendo um módulo de código ou de dados previamente armazenado num dispositivo de armazenamento em massa num sistema anterior desta natureza. O receptor de fluxo de dados 207 é similar a um dispositivo de armazenamento em massa e o fluxo de I/O 208 actua de modo similar a um adaptador de armazenamento em massa num sistema anterior desta natureza localizando os dados desejados, transferindo- os para um local predeterminado (memória I/O intermédia) na memória do sistema e informando o processador da conclusão da recolha. No entanto, o adaptador de fluxo de I/O 208 apenas pode recolher código e dados do fluxo de dados; não podem ser escritos dados no fluxo de dados.
Conforme descrito acima, a aplicação informática distribuída pode ser dividida em mais que um módulo de código, cada um deles contendo código executável para uma parte diferente da aplicação informática distribuída. Quando se pretende obter um módulo de código em particular, o processador 210 solicita esse módulo de código ao adaptador de fluxo de I/O 208. Quando termina a execução desse módulo, o processador 210 solicita o módulo seguinte 39 ao adaptador de fluxo de 1/0 208. Uma vez que os módulos de código e de dados são transportados repetitivamente no fluxo de dados, um módulo pode ser apagado da RAM 212 quando não é necessário nesse momento, sem necessidade de armazenamento temporário, uma vez que se ele for necessário mais tarde pode ser de novo recolhido do fluxo de dados quando necessário. No entanto, caso a RAM 212 tenha capacidade suficiente, o processador 210 pode solicitar ao adaptador de fluxo de I/O o carregamento de vários módulos de código para a RAM 212. Caso isto possa ser feito, então o processador 210 pode comutar entre módulos de código, sem esperar que o adaptador de fluxo de I/O 208 os extraia do fluxo de dados.
Conforme descrito acima, outros adaptadores de I/O podem ser ligados ao barramento de sistema 216, de modo comum.
Por exemplo, num sistema interactivo de TV pode ser ligado um adaptador gráfico ao barramento de sistema 216. O adaptador gráfico gera sinais que representam imagens gráficas, de modo comum, em resposta a instruções do processador 210. Adicionalmente, estes sinais podem ser combinados com o sinal de video comum produzido pelo descodificador de video (descrito acima) no processador de dados auxiliares 50 do sistema interactivo de TV. Quando o sinal representativo da imagem gráfica e o sinal de video comum são combinados, o sinal resultante representa uma imagem, na qual a imagem gerada pelo adaptador gráfico é sobreposta à imagem representada pelo sinal da emissão de video. É também possível combinar selectivamente estes dois sinais representativos de imagens sob o controlo do processador 210. 40
Um sistema interactivo de TV pode também incluir um adaptador de som ligado ao barramento de sistema 216. O adaptador de som gera um sinal que representa um som gerado por computador (como música, voz sintetizada ou outro som), de modo comum, em resposta a instruções do processador 210. Adicionalmente, estes sinais podem ser combinados com o sinal de áudio comum produzido pelo descodificador de áudio (descrito acima) no processador de dados auxiliares 50 de um sistema interactivo de TV. Quando o sinal representativo do som e o sinal áudio comum são combinados, o sinal resultante representa a combinação do som gerado pelo adaptador de som e pelo sinal de emissão áudio. É também possível combinar selectivamente estes dois sinais representativos de som sob o controlo do processador 210. A temporização da geração e exibição dos sinais representativos de som e imagem gráfica pode ser controlada pela recepção de dados de código temporal a partir do fluxo de dados. Isto permite que um módulo de código executável sincronize a exibição de imagens geradas pelo processador e apresentação de sons gerados pelo processador com a emissão de vídeo e de áudio. É ainda possível sincronizar o funcionamento da aplicação de TV interactiva através da inserção de pacotes especializados no fluxo de dados que causam uma interrupção do código a ser executado nesse momento no processador 210. O monitor de fluxo de I/O 208 monitoriza o fluxo de dados para a ocorrência de tais pacotes especializados e gera uma interrupção, de modo comum, para o processador. O processador 210 responde a essa interrupção, também de modo comum, executando uma rotina de interrupção de serviço (ISR) . Esta ISR pode ser 41 usada para a sincronização da aplicaçao de TV interactiva ou para outras finalidades.
Um computador-cliente 22 num sistema informático distribuído, tal como ilustrado na FIGURA 1, não necessita de um dispositivo de armazenamento em massa nem de uma grande quantidade de RAM 212. Um tal sistema diminui o custo de um computador-cliente e aumenta a funcionalidade dos computadores-cliente mais baratos. Adicionalmente, um tal computador-cliente dispõe também da opção de participar numa função de computação distribuída, pode também participar na função de computação distribuída em qualquer momento (ou pode dela desistir e voltar a ela mais tarde) e pode participar ao seu próprio ritmo. 42

Claims (79)

  1. REIVINDICAÇÕES 1. Um sistema, incluindo: um servidor (10) que inclui: um gerador de pacotes (104) para gerar operacionalmente um primeiro fluxo de pacotes incluindo um módulo de código (CMl; Cm2) que representa um programa informático distribuído; uma fonte de dados auxiliares (107) de modo a gerar um fluxo de pacotes de dados auxiliares, incluindo pacotes de vídeo; e um multiplexador (106) ligado ao gerador de pacotes (104) de modo a receber o primeiro fluxo de pacotes incluindo o módulo de código (CMl; Cm2) e acoplado à fonte de dados auxiliares (107) de modo a receber o fluxo de pacotes de dados auxiliares, incluindo os pacotes de vídeo; em que o gerador de pacotes (104) vai repetidamente incluir o módulo de código (CMl; CM2) dentro do primeiro fluxo de pacotes e o multiplexador (106) vai multiplexar o primeiro fluxo de pacotes com o fluxo de pacotes de dados auxiliares de modo a gerar um segundo fluxo de pacotes.
  2. 2. O sistema da reivindicação 1 em que o multiplexador (106) multiplexa o primeiro fluxo de pacotes com o fluxo de pacotes de dados auxiliares de modo a gerar o segundo fluxo de pacotes. 1 3. 0 sistema de qualquer uma das reivindicações 1-2, incluindo um gerador de fluxo (102), ligado ao gerador de pacotes (104), de modo a enviar repetidamente os dados associados com o programa informático distribuído para o gerador de pacotes (104) para a sua inclusão no primeiro fluxo de pacotes.
  3. 4. O sistema da reivindicação 3, incluindo uma fonte de programas (101), ligada ao gerador de fluxo (102), de modo a enviar os dados associados ao programa informático distribuído para o gerador de fluxo (102) .
  4. 5. O sistema da reivindicação 4, em que a fonte de programas (101) inclui um compilador de programas para compilar os dados associados com o programa informático distribuído.
  5. 6. O sistema de qualquer uma das reivindicações 4-5, em que a fonte de programas (101) fornece dados relativos à transmissão do programa informático distribuído ao gerador de fluxo (102), dados esses que incluem a taxa de repetição desejada para o módulo de código (CMl; CM2) no primeiro fluxo de dados.
  6. 7. O sistema da reivindicação 3, em que o gerador de fluxo (102) gera o módulo de código (CMl; CM2) fazendo uso dos dados associados com o programa informático distribuído fornecidos pela fonte de programas (101).
  7. 8. O sistema da reivindicação 3, em que o gerador de fluxo (102), utilizando os dados associados com o programa informático distribuído, gera um módulo de dados que contém 2 dados a serem processados pelo código incluído no módulo de código (CMl; CM2) , e onde o gerador de pacotes (104) gera operacionalmente o primeiro fluxo de pacotes de modo a incluir o módulo de dados.
  8. 9. O sistema da reivindicação 8, em que o gerador de pacotes (104) inclui repetidamente o módulo de dados no primeiro fluxo de pacotes.
  9. 10. O sistema da reivindicação 8, em que o gerador de fluxo (102), utilizando os dados associados com o programa informático distribuído, gera um módulo de directório que inclui uma lista que identifica os módulos de código e de dados conforme foram incluídos no primeiro fluxo de pacotes e onde o gerador de pacotes (104) gera operacionalmente o primeiro fluxo de pacotes de modo a incluir o módulo de directório.
  10. 11. O sistema da reivindicação 10, em que o gerador de pacotes (104) inclui repetidamente o módulo de directório no primeiro fluxo de pacotes.
  11. 12. O sistema de qualquer uma das reivindicações anteriores, em que a fonte de dados auxiliares (107) fornece os pacotes de vídeo de modo a incluir dados com codificação MPEG que representam uma imagem de televisão.
  12. 13. O sistema de qualquer uma das reivindicações anteriores, em que a fonte de dados auxiliares (107) fornece os pacotes de dados auxiliares de modo a incluir pacotes de áudio que contêm dados de áudio digitalmente codificados. 3 das uma 14. 0 sistema de qualquer uma das reivindicações anteriores, em que o gerador de pacotes (104), a fonte de dados auxiliares (107) e o multiplexador (106) incluem uma primeira fonte (108); o sistema inclui uma segunda fonte (108A) e um multiplexador de transporte (110), ligado de modo a receber o segundo fluxo de pacotes da primeira fonte (108) e um terceiro fluxo de pacotes da segunda fonte (108A) e a multiplexar o segundo e terceiro fluxos de pacotes para transmissão através de um mecanismo de transporte (30) como um quarto fluxo de pacotes.
  13. 15. O sistema da reivindicação 14, onde o multiplexador de transporte (110) multiplexa por frequência o segundo e o terceiro fluxos de pacotes para transmissão pelo mecanismo de transporte (30).
  14. 16. O sistema da reivindicação 14, onde o multiplexador de transporte (110) multiplexa temporalmente o segundo e o terceiro fluxos de pacotes para transmissão pelo mecanismo de transporte (30) .
  15. 17. O sistema de qualquer uma das reivindicações anteriores, incluindo um relógio (109) ligado de modo a fornecer dados de código temporal ao gerador de pacotes (104) e à fonte de dados auxiliares, em que os dados de código temporal são incluídos no fluxo de pacotes de dados auxiliares ou no primeiro fluxo de pacotes de dados ou em ambos.
  16. 18. O sistema de qualquer uma das reivindicações anteriores em que um gerador de pacotes (104) inclui 4 primeiros pacotes no primeiro fluxo de dados que incluem informação de identificação que indica que os primeiros pacotes incluem pelo menos uma parte do módulo de código (CMl; CM2) que representa o programa informático distribuído. 19. 0 sistema de qualquer uma das reivindicações anteriores em que a fonte de dados auxiliares (107) inclui os segundos pacotes no fluxo de pacotes de dados auxiliares que incluem informação de identificação indicando que os segundos pacotes incluem dados de vídeo.
  17. 20. O sistema de qualquer uma das reivindicações anteriores, incluindo um transceptor de dados (103) através do qual os dados são recebidos no servidor (10) a partir de um computador-cliente (22) através de uma central de processamento (60).
  18. 21. O sistema da reivindicação 20, em que o computador-cliente (22) acede ao servidor (10) através da central de processamento (60) de modo a obter o módulo de código (CMl; CM2) .
  19. 22. O sistema da reivindicação 20, no qual a central de processamento (60) é um sistema telefónico.
  20. 23. O sistema de qualquer uma das reivindicações 20-22, em que o servidor (10) recebe e processa dados recebidos no servidor (10) a partir do computador-cliente (22) durante a execução do programa informático distribuído pelo computador-cliente (22). 5
  21. 24. O sistema de qualquer uma das reivindicações 20-23, em que o servidor (10) gera o módulo de código (CMl; CM2) com base nos dados recebidos no servidor (10) a partir do computador-cliente (22).
  22. 25. O sistema de qualquer uma das reivindicações 20-24, em que o servidor (10) gera o módulo de dados com base nos dados recebidos no servidor (10) a partir do computador-cliente (22) .
  23. 26. O sistema de qualquer uma das reivindicações anteriores, incluindo um computador-cliente (22) que inclui um receptor de fluxo de dados (207) de modo a receber um fluxo de dados recebidos e dele extrair o módulo de código (CMl; CM2) que representa o programa informático distribuído.
  24. 27. O sistema da reivindicação 2 6, em que o computador- cliente (22) inclui uma unidade de processamento (224) que executa o programa informático distribuído.
  25. 28. O sistema de qualquer uma das reivindicações 26-27, em que o computador-cliente (22) inclui uma memória de modo a armazenar pelo menos uma parte de um primeiro módulo de código (CMl, CM2) de entre uma pluralidade de módulos de código (CMl, CM2) extraídos do fluxo de dados recebido, antecipadamente à recepção integral do primeiro módulo de código (CMl, CM2).
  26. 29. O sistema da reivindicação 28, em que o computador- cliente (22) executa o primeiro módulo de código (CMl; CM2) após a recepção integral deste. 6
  27. 30. O sistema da reivindicação 28, em que a memória armazena pelo menos o primeiro e um segundo módulos de código (CMl; CM2) de entre uma pluralidade de módulos de código (CMl; CM2) e em que o computador requerente (22) comuta entre a execução do primeiro e segundo módulos de código (CMl; CM2).
  28. 31. O sistema da reivindicação 36, em que o receptor de fluxo de dados (207) inclui um extractor de pacotes de dados (206) de modo a extrair pacotes de dados a partir do fluxo de dados que incluem o módulo de código (CMl; CM2).
  29. 32. O sistema da reivindicação 31, em que o extractor de pacotes (206) identifica os pacotes de dados que incluem o módulo de código (CMl; CM2) utilizando a informação de identificação incluída nos pacotes de dados.
  30. 33. O sistema da reivindicação 8, incluindo um computador-cliente (22) que inclui um receptor de fluxos de dados (207) de modo a receber um fluxo de dados recebidos e a extrair o módulo de dados do fluxo de dados recebidos.
  31. 34. O sistema da reivindicação 33, em que o computador requerente (22) inclui uma memória de modo a armazenar pelo menos uma parte de um primeiro módulo de dados, de entre uma pluralidade de módulos de dados, conforme extraído do fluxo de dados recebidos, antecipadamente à recepção integral do primeiro módulo de dados.
  32. 35. O sistema da reivindicação 34, em que o computador-cliente (22) executa um primeiro módulo de código (CMl; 7 CM2) assim que é recebido na integra o primeiro módulo de dados solicitado pelo módulo de código (CMl; CM2) . 36. 0 sistema da reivindicação 33, em que o receptor de fluxo de dados (207) inclui um extractor de pacotes de dados (206) de modo a extrair pacotes de dados a partir do fluxo de dados que incluem o módulo de dados.
  33. 37. O si stema da reivindicação 36, em que o extractor de pacotes (206) identifica os pacotes de dados que incluem o módulo de dados utilizando a informação de identificação incluída nos pacotes de dados. 38. 0 sistema da reivindicação 10, incluindo um computador-cliente (22) que inclui um receptor de fluxos de dados (207) de modo a receber um fluxo de dados recebidos e a extrair o módulo de directório do fluxo de dados recebidos.
  34. 39. O sistema da reivindicação 38, em que o computador requerente (22) inclui uma memória de modo a armazenar pelo menos um primeiro módulo de directório de entre uma pluralidade de módulos de directório extraídos do fluxo de dados recebidos, antecipadamente à recepção integral do conjunto de módulos de directório que especificam um directório que identifica módulos de código e de dados associados e incluídos no fluxo de dados recebidos.
  35. 40. O sistema da reivindicação 39, em que o computador-cliente (22) solicita os módulo de código e de dados associados e identificado pelo directório. 41. 0 sistema da reivindicação 38, em que o receptor de fluxos de dados (207) inclui um extractor de pacotes de dados (206) de modo a extrair pacotes de dados a partir do fluxo de dados recebidos que incluem o módulo de directório.
  36. 42. O sistema da reivindicação 41, em que o extractor de pacotes (206) identifica os pacotes de dados que incluem o módulo de directórios utilizando a informação de identificação incluída nos pacotes de dados.
  37. 43. O sistema de qualquer uma das reivindicações 26-42, em que o receptor de fluxos de dados (207) inclui um extractor de dados auxiliares (204) de modo a extrair pacotes de vídeo do fluxo de dados recebidos.
  38. 44. O sistema de qualquer uma das reivindicações 26-43, em que o receptor de fluxos de dados (207) inclui um selector de fluxo (202) de modo a seleccionar o fluxo de dados recebidos para recepção pelo receptor de fluxos de dados (207) .
  39. 45. O sistema da reivindicação 44, em que o selector de fluxo (202) inclui um desmodulador para desmodular de modo a receber um sinal de portador modulado a partir de uma ligação de satélite.
  40. 46. O sistema da reivindicação 45, em que o selector de fluxo (202) inclui circuitos para desmultiplexação temporal de uma pluralidade de fluxos de dados transportados pelo sinal de portador modulado. 9
  41. 47. Um método para distribuir um programa informático, método esse que inclui: gerar um primeiro fluxo de pacotes que inclui repetidamente um módulo de código (CMl;CM2) que representa um programa informático distribuído; gerar um fluxo de pacotes de dados auxiliares, incluindo pacotes de vídeo; e multiplexar o primeiro fluxo de pacotes com o fluxo de pacotes auxiliares de modo a gerar um segundo fluxo de pacotes. 48. 0 método da reivindicação 47, incluindo a multiplexação temporal do primeiro fluxo de pacotes com o fluxo de pacote de dados auxiliares para gerar o segundo fluxo de pacotes. 49. 0 método de qualquer uma das reivindicações 47-48, incluindo apresentar repetidamente os dados associados ao programa informático distribuído para inclusão no fluxo de pacotes.
  42. 50. O método da reivindicação 49, incluindo a compilação dos dados associados ao programa informático distribuído.
  43. 51. O método de qualquer uma das reivindicações 47-50, incluindo o fornecimento de dados relativos à transmissão do programa informático distribuído, dados esses que incluem a frequência desejada de repetição para o módulo de código (CMl; CM2) dentro do primeiro fluxo de dados. 10 52. 0 método da reivindicação 49, incluindo a geração do módulo de código (CMl; CM2) utilizando os dados associados ao programa informático distribuído. 53. 0 método da reivindicação 49, incluindo a utilização dos dados associados ao programa informático distribuído, de modo a gerar um módulo de dados contendo dados a serem processados por código incluído no módulo de código (CMl; CM2) e gerando o primeiro fluxo de pacotes de modo a incluir o módulo de dados. 54. 0 método da reivindicação 53, incluindo a inclusão repetida do módulo de dados no primeiro fluxo de pacotes. 55. 0 método da reivindicação 53, incluindo a utilização dos dados associados ao programa informático distribuído de modo a gerar um módulo de directório contendo uma lista dos módulos de código e de dados incluídos no primeiro fluxo de pacotes e gerando o primeiro fluxo de pacotes de modo a incluir o módulo de directório. 56. 0 método da reivindicação 55, incluindo a inclusão repetida do módulo de directório no primeiro fluxo de pacotes. 57. 0 método de qualquer uma das reivindicações 47-56, incluindo o fornecimento de pacotes de vídeo de modo a incluir dados com codificação MPEG representando uma imagem de televisão. 58. 0 método de qualquer uma das reivindicações 47-57, incluindo o fornecimento ao fluxo de pacotes de dados 11 auxiliares de pacotes de áudio contendo dados de áudio digitalmente codificados. 59. 0 método de qualquer das reivindicações 47-48, onde a primeira fonte (108) gera o segundo fluxo de pacotes e a segunda fonte (108A) gera um terceiro fluxo de pacotes; método esse que inclui a recepção do segundo fluxo de pacotes da primeira fonte (108), a recepção do terceiro fluxo de pacotes da segunda fonte (108A) e a multiplexação do segundo e terceiro fluxos de pacotes num quarto fluxo de pacotes para transmissão através do mecanismo de transporte (30) .
  44. 60. O método da reivindicação 59, incluindo a multiplexação por frequência do segundo e terceiro fluxos de pacotes para transmissão através do mecanismo de transporte (30).
  45. 61. O método da reivindicação 59, incluindo a multiplexação temporal do segundo e terceiro fluxos de pacotes para transmissão através do mecanismo de transporte (30).
  46. 62. O método de qualquer uma das reivindicações 47-61, incluindo o fornecimento de dados de código temporal, no fluxo de pacotes de dados auxiliares ou no primeiro fluxo de pacotes de dados, ou em ambos.
  47. 63. O sistema de qualquer uma das reivindicações 47-62, incluindo o fornecimento no primeiro fluxo de dados de primeiros pacotes que incluam informação que indique que os primeiros pacotes incluem pelo menos uma parte do módulo de código (CMl; CM2) que representa o programa informático distribuído. 12 64. 0 método de qualquer uma das reivindicações 47-63, incluindo o fornecimento ao fluxo de pacotes de dados auxiliares de sequndos pacotes que incluam informação que indique que os segundos pacotes incluem pacotes de vídeo. 65. 0 método de qualquer uma das reivindicações 47-64, incluindo o recebimento de dados num servidor (10) a partir de um computador—cliente (22) através de uma central de processamento (60).
  48. 66. O método da reivindicação 65, incluindo o acesso ao servidor (10) utilizando um computador-cliente (22) através da central de processamento (60) de modo a obter o módulo de código (CMl; CM2).
  49. 67. O método de qualquer uma das reivindicações 65-66, no qual a central de processamento (60) é um sistema telefónico.
  50. 68. O método da reivindicação 65, incluindo o processamento dos dados recebidos no servidor (10) a partir do computador-cliente (20) durante a execução do programa informático distribuído pelo computador-cliente (20) .
  51. 69. O método da reivindicação 65, incluindo a geração do módulo de código (CMl; CM2) no servidor (10) com base nos dados recebidos no servidor (10) a partir do computador-cliente (22) . 13
  52. 70. O método da reivindicação 65, incluindo a geração do módulo de dados no servidor com base nos dados recebidos no servidor (10) a partir do computador-cliente (22).
  53. 71. O método da reivindicação 47, incluindo a recepção de um fluxo de dados recebidos num computador-cliente (22) e a extracção do módulo de código (CMl; CM2) que representa o programa informático distribuído do fluxo de dados recebidos.
  54. 72. O método da reivindicação 71, incluindo a execução do programa informático distribuído no computador-cliente (22) .
  55. 73. O método da reivindicação 72, em que o computador- cliente (22) inclui uma memória e o método inclui o armazenamento de pelo menos uma parte do módulo de código (CMl; CM2) na memória quando é extraído do fluxo de dados recebidos, em antecipação à recepção integral do módulo de código (CMl; CM2).
  56. 74. O método da reivindicação 73, incluindo a execução do módulo de código (CMl; CM2) após a sua recepção integral e o computador-cliente (22).
  57. 75. O método da reivindicação 73, em que a memória armazena pelo menos um primeiro e segundo módulos de código (CMl; CM2) e o método inclui a comutação entre a execução do primeiro e segundo módulos de código (CMl; CM2) no computador-cliente (22). 14 76. 0 método da reivindicação 71, incluindo a utilização de um extractor de dados de pacotes (206) para extrair os pacotes de dados do fluxo de dados recebidos que inclui o módulo de código (CMl; CM2). 77. 0 método da reivindicação 76, incluindo a identificação dos pacotes de dados que incluem o módulo de código (CMl; CM2) por meio do uso da informação de identificação incluída nos pacotes de dados.
  58. 78. O método da reivindicação 53, incluindo a recepção de um fluxo de dados recebidos num computador-cliente (22) e a extracção do módulo de dados do fluxo de dados recebidos.
  59. 79. O método da reivindicação 78, em que o computador-cliente (22) inclui uma memória e o método inclui o armazenamento de pelo menos uma parte do módulo de dados quando é extraído do fluxo de dados recebidos, em antecipação à recepção integral do módulo de dados.
  60. 80. O método da reivindicação 79, incluindo a execução de um primeiro módulo de código (CMl; CM2) quando o módulo de dados solicitado pelo primeiro módulo de código (CMl; CM2) for integralmente recebido.
  61. 81. O método da reivindicação 78, incluindo a utilização de um extractor de dados de pacotes (206) para extrair os pacotes de dados do fluxo de dados recebidos que incluem o módulo de dados.
  62. 82. O método da reivindicação 81, incluindo a identificação dos pacotes de dados que incluem o módulo de dados por meio 15 do uso da informação de identificação incluída nos pacotes de dados. 83. 0 método da reivindicação 55, incluindo a recepção de um fluxo de dados recebidos num computador-cliente (22) e a extracção do módulo de directório do fluxo de dados recebidos.
  63. 84. O método da reivindicação 83, em que o computador- cliente (22) inclui uma memória e o método inclui o armazenamento de pelo menos um primeiro módulo de directório de entre uma pluralidade de módulos de directório extraídos do fluxo de dados recebidos, antecipadamente à recepção integral do conjunto de módulos de directório incluindo módulos de código e de dados associados para identificação do directório incluídos no fluxo de dados recebidos. 85. 0 método da reivindicação 84, que inclui a solicitação dos módulos de código e de dados associados identificados pelo directório utilizando o computador-cliente (22). 86. 0 método da reivindicação 83, incluindo a extracção de pacotes de dados do fluxo de dados recebidos que incluem o módulo de directório. 87. 0 método da reivindicação 86, incluindo a identificação dos pacotes de dados que incluem o módulo de directório por meio do uso da informação de identificação incluída nos pacotes de dados. 16
  64. 88. O método de qualquer uma das reivindicações 47-87, incluindo a extracção dos pacotes de vídeo do fluxo de dados recebidos. 89. 0 método da reivindicação 71, incluindo a selecção do fluxo de dados recebidos para recepção por um computador-cliente (22) .
  65. 90. O método da reivindicação 89, em que a selecção inclui a desmodulação de um sinal portador modulado recebido de uma ligação de satélite.
  66. 91. O método da reivindicação 89, em que a selecção inclui a desmultiplexação temporal de uma pluralidade de fluxos de dados transportados pelo sinal portador modulado. 17 FIGURAS Figura 1 10- Servidor
  67. 80 - Utilizador 40 - Computador local 22 - Computador-cliente 24 - Computador-cliente 26 - Computador-cliente 60 - Central de processamento 50 - Processamento de dados auxiliares Figura 2
  68. 101 - Fonte de programas
  69. 102 - Gerador de fluxo
  70. 104 - Gerador de pacotes para transporte 109 - Relógio
  71. 107 - Fonte de dados auxiliares 30 - Mecanismo de transporte
  72. 103 - Transceptor de dados 50 - Processador central Figura 3 10- Servidor CM - Módulo de código DM - Módulo de dados DIR - Módulo directório AUX - Módulo de dados auxiliares Figura 4 30 - Mecanismo de transporte 202 - Selector de fluxo 1 204 Extractor de dados auxiliares 50 - Processador de dados auxiliares
  73. 206 - Extractor de dados de pacotes 40 - Processador local
  74. 208 - Fluxo de I/O
  75. 218 - Porta I/O
  76. 210 - Processador
  77. 212 - Memória RAM
  78. 214 - Memória ROM 220 - I/O do utilizador
  79. 222 - Modem 50 - Processador central 80 - Utilizador 2
PT03002723T 1994-04-28 1995-04-19 Um sistema informático distribuído PT1307025E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/233,908 US5819034A (en) 1994-04-28 1994-04-28 Apparatus for transmitting and receiving executable applications as for a multimedia system

Publications (1)

Publication Number Publication Date
PT1307025E true PT1307025E (pt) 2011-12-16

Family

ID=22879143

Family Applications (3)

Application Number Title Priority Date Filing Date
PT03002720T PT1307022E (pt) 1994-04-28 1995-04-19 Sistema e método para facilitar a encomenda de um item
PT03002723T PT1307025E (pt) 1994-04-28 1995-04-19 Um sistema informático distribuído
PT03002722T PT1307024E (pt) 1994-04-28 1995-04-19 Um sistema informático distribuído

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PT03002720T PT1307022E (pt) 1994-04-28 1995-04-19 Sistema e método para facilitar a encomenda de um item

Family Applications After (1)

Application Number Title Priority Date Filing Date
PT03002722T PT1307024E (pt) 1994-04-28 1995-04-19 Um sistema informático distribuído

Country Status (13)

Country Link
US (2) US5819034A (pt)
EP (5) EP1307025B1 (pt)
JP (4) JPH08166925A (pt)
KR (1) KR100363593B1 (pt)
CN (4) CN1893648B (pt)
AT (3) ATE278285T1 (pt)
CA (1) CA2145899C (pt)
DE (1) DE69533565T2 (pt)
DK (1) DK0680185T3 (pt)
ES (4) ES2232816T3 (pt)
PT (3) PT1307022E (pt)
RU (1) RU2142158C1 (pt)
SG (1) SG28257A1 (pt)

Families Citing this family (264)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963916A (en) * 1990-09-13 1999-10-05 Intouch Group, Inc. Network apparatus and method for preview of music products and compilation of market data
US6275268B1 (en) 1993-09-09 2001-08-14 United Video Properties, Inc. Electronic television program guide with remote product ordering
US7991347B1 (en) 1994-04-07 2011-08-02 Data Innovation Llc System and method for accessing set of digital data at a remote site
US5819034A (en) 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
USRE44685E1 (en) 1994-04-28 2013-12-31 Opentv, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system, and method and system to order an item using a distributed computing system
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US7181758B1 (en) 1994-07-25 2007-02-20 Data Innovation, L.L.C. Information distribution and processing system
US5838906A (en) * 1994-10-17 1998-11-17 The Regents Of The University Of California Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document
DE69534896T2 (de) * 1994-10-24 2006-10-12 Intel Corp., Santa Clara Videoindexierungsprotokoll
AU712344B2 (en) * 1995-04-24 1999-11-04 Rovi Guides, Inc. Electronic television program guide schedule system and method with remote product ordering
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
US7917922B1 (en) * 1995-06-08 2011-03-29 Schwab Barry H Video input switching and signal processing apparatus
US20020056136A1 (en) * 1995-09-29 2002-05-09 Wistendahl Douglass A. System for converting existing TV content to interactive TV programs operated with a standard remote control and TV set-top box
US6189030B1 (en) 1996-02-21 2001-02-13 Infoseek Corporation Method and apparatus for redirection of server external hyper-link references
US7099316B1 (en) * 1996-02-29 2006-08-29 Tomich John L Photonic home area network
US6469753B1 (en) 1996-05-03 2002-10-22 Starsight Telecast, Inc. Information system
CN1311679C (zh) 1996-05-31 2007-04-18 松下电器产业株式会社 数据的发送/接收设备及发送/接收方法
US6141693A (en) * 1996-06-03 2000-10-31 Webtv Networks, Inc. Method and apparatus for extracting digital data from a video stream and using the digital data to configure the video stream for display on a television set
US9130765B1 (en) * 1996-06-12 2015-09-08 Michael Carringer System and method for generating a modified web page by inline code insertion in response to an information request from a client computer
US8601050B2 (en) 1996-06-12 2013-12-03 Michael Carringer System and method for generating a modified web page by inline code insertion in response to an information request from a client computer
US6266709B1 (en) * 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6424991B1 (en) * 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
EP1513348A1 (en) * 1996-09-11 2005-03-09 Matsushita Electric Industrial Co., Ltd. Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution
US6058443A (en) * 1997-02-18 2000-05-02 Advanced Micro Devices, Inc. System for partitioning PC chipset functions into logic and port integrated circuits
US6209028B1 (en) 1997-03-21 2001-03-27 Walker Digital, Llc System and method for supplying supplemental audio information for broadcast television programs
US8769598B2 (en) * 1997-03-24 2014-07-01 Logitech Europe S.A. Program guide on a remote control
US20050097594A1 (en) 1997-03-24 2005-05-05 O'donnell Frank Systems and methods for awarding affinity points based upon remote control usage
US6356948B1 (en) * 1997-03-28 2002-03-12 Aspect Communications Corp Method and apparatus for managing data
US9113122B2 (en) 1997-04-21 2015-08-18 Rovi Guides, Inc. Method and apparatus for time-shifting video and text in a text-enhanced television program
US6233253B1 (en) * 1997-05-23 2001-05-15 Thomson Licensing S.A. System for digital data format conversion and bit stream generation
JPH114417A (ja) * 1997-06-12 1999-01-06 Toshiba Corp ビット・ストリーム情報表示方法、ビット・ストリーム情報作成方法及び記録媒体
GB9715228D0 (en) * 1997-07-18 1997-09-24 Sertway Limited Communications system and method
ATE235780T1 (de) 1997-07-21 2003-04-15 Guide E Inc Verfahren zum navigieren in einem fernsehprogrammführer mit werbung
US7222087B1 (en) 1997-09-12 2007-05-22 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
US5960411A (en) * 1997-09-12 1999-09-28 Amazon.Com, Inc. Method and system for placing a purchase order via a communications network
EP0907285A1 (en) * 1997-10-03 1999-04-07 CANAL+ Société Anonyme Downloading data
US6016141A (en) * 1997-10-06 2000-01-18 United Video Properties, Inc. Interactive television program guide system with pay program package promotion
US6263385B1 (en) 1997-10-20 2001-07-17 Advanced Micro Devices, Inc. PC parallel port structure partitioned between two integrated circuits interconnected by a serial bus
FR2770711A1 (fr) * 1997-11-04 1999-04-30 Philips Electronics Nv Methode de communication entre des terminaux repartis et une station centrale
FR2778300A1 (fr) * 1998-04-29 1999-11-05 Thomson Multimedia Sa Procede de lecture de donnees informatiques permettant de composer des images de synthese et dispositif mettant en oeuvre le procede
US6609144B1 (en) 1998-05-04 2003-08-19 Matsushita Electric Industrial Co., Ltd. Program reception/execution apparatus that can commence execution of a machine program having only received the program in part, and a program transmission apparatus that enables such execution
US8813137B2 (en) * 1998-05-08 2014-08-19 Qualcomm Incorporated Apparatus and method for decoding digital image and audio signals
WO1999066679A1 (en) * 1998-06-19 1999-12-23 Matsushita Electric Industrial Co., Ltd. Data transmitting/receiving method and device, and program recorded medium
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
CA2343751A1 (en) * 1998-07-27 2000-02-10 Webtv Networks, Inc. Remote computer access
US8189662B2 (en) 1999-07-27 2012-05-29 Microsoft Corporation Selection compression
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
US8712835B1 (en) 1998-09-11 2014-04-29 Rpx Corporation Method and apparatus for linking a web browser link to a promotional offer
US6826592B1 (en) 1998-09-11 2004-11-30 L.V. Partners, L.P. Digital ID for selecting web browser and use preferences of a user during use of a web application
US6745234B1 (en) 1998-09-11 2004-06-01 Digital:Convergence Corporation Method and apparatus for accessing a remote location by scanning an optical code
US6629133B1 (en) 1998-09-11 2003-09-30 Lv Partners, L.P. Interactive doll
US7386600B1 (en) 1998-09-11 2008-06-10 Lv Partners, L.P. Launching a web site using a personal device
US6636896B1 (en) 1998-09-11 2003-10-21 Lv Partners, L.P. Method and apparatus for utilizing an audibly coded signal to conduct commerce over the internet
US6758398B1 (en) 1998-09-11 2004-07-06 L.V. Partners, L.P. Optical reader with ultraviolet wavelength capability
US6615268B1 (en) 1998-09-11 2003-09-02 Lv Partners, L.P. Method for controlling a computer using an embedded unique code in the content of dat media
US6622165B1 (en) 1998-09-11 2003-09-16 Lv Partners, L.P. Method and apparatus for allowing a remote site to interact with an intermediate database to facilitate access to the remote site
US6594705B1 (en) 1998-09-11 2003-07-15 Lv Partners, L.P. Method and apparatus for utilizing an audibly coded signal to conduct commerce over the internet
US6829650B1 (en) 1998-09-11 2004-12-07 L. V. Partners, L.P. Method and apparatus for opening and launching a web browser in response to an audible signal
US7900224B1 (en) 1998-09-11 2011-03-01 Rpx-Lv Acquisition Llc Method and apparatus for utilizing an audible signal to induce a user to select an E-commerce function
US6526449B1 (en) 1998-09-11 2003-02-25 Digital Convergence Corporation Method and apparatus for controlling a computer from a remote location
US6845388B1 (en) * 1998-09-11 2005-01-18 L. V. Partners, L.P. Web site access manual of a character string into a software interface
US6836799B1 (en) * 1998-09-11 2004-12-28 L.V. Partners, L.P. Method and apparatus for tracking user profile and habits on a global network
US6704864B1 (en) * 1999-08-19 2004-03-09 L.V. Partners, L.P. Automatic configuration of equipment software
US6868433B1 (en) 1998-09-11 2005-03-15 L.V. Partners, L.P. Input device having positional and scanning capabilities
US6688522B1 (en) 1998-09-11 2004-02-10 L. V. Partners, L.P. Unique bar code
US6701354B1 (en) 1998-09-11 2004-03-02 L. V. Partners, L.P. Method for interconnecting two locations over a network in response to using a tool
US6754698B1 (en) 1998-09-11 2004-06-22 L. V. Partners, L.P. Method and apparatus for accessing a remote location with an optical reader having a dedicated memory system
US6791588B1 (en) 1998-09-11 2004-09-14 L.V. Partners, L.P. Method for conducting a contest using a network
US7392945B1 (en) 1998-09-11 2008-07-01 Lv Partners, L.P. Portable scanner for enabling automatic commerce transactions
US7930213B1 (en) 1998-09-11 2011-04-19 Rpx-Lv Acquisition Llc Method and apparatus for completing, securing and conducting an E-commerce transaction
US6701369B1 (en) 1998-09-11 2004-03-02 L.V. Partners, L.P. Method and apparatus for accessing a remote location by sensing a machine-resolvable code
US7379901B1 (en) 1998-09-11 2008-05-27 Lv Partners, L.P. Accessing a vendor web site using personal account information retrieved from a credit card company web site
US6098106A (en) * 1998-09-11 2000-08-01 Digitalconvergence.Com Inc. Method for controlling a computer with an audio signal
US6643692B1 (en) 1998-09-11 2003-11-04 Lv Partners, L.P. Method for controlling a computer using an embedded unique code in the content of video tape media
US6636892B1 (en) 1998-09-11 2003-10-21 Lv Partners, L.P. Method for conducting a contest using a network
US7440993B1 (en) 1998-09-11 2008-10-21 Lv Partners, L.P. Method and apparatus for launching a web browser in response to scanning of product information
US6725260B1 (en) 1998-09-11 2004-04-20 L.V. Partners, L.P. Method and apparatus for configuring configurable equipment with configuration information received from a remote location
US7191247B1 (en) 1998-09-11 2007-03-13 Lv Partners, Lp Method for connecting a wireless device to a remote location on a network
US7792696B1 (en) 1998-09-11 2010-09-07 RPX-LV Acquisition, LLC Method and apparatus for allowing a broadcast to remotely control a computer
US6384744B1 (en) 1998-09-11 2002-05-07 Digital:Convergence Corp. Method and system for data transmission from an optical reader
US6823388B1 (en) 1998-09-11 2004-11-23 L.V. Parners, L.P. Method and apparatus for accessing a remote location with an optical reader having a programmable memory system
US7818423B1 (en) 1998-09-11 2010-10-19 RPX-LV Acquisition, LLC Retrieving personal account information from a web site by reading a credit card
US6631404B1 (en) 1998-09-11 2003-10-07 Lv Partners, L.P. Method and system for conducting a contest using a network
US6708208B1 (en) 1998-09-11 2004-03-16 L.V. Partners, L.P. Unique bar code for indicating a link between a product and a remote location on a web network
US8028036B1 (en) * 1998-09-11 2011-09-27 Rpx-Lv Acquisition Llc Launching a web site using a passive transponder
US6829646B1 (en) * 1999-10-13 2004-12-07 L. V. Partners, L.P. Presentation of web page content based upon computer video resolutions
US6792452B1 (en) 1998-09-11 2004-09-14 L.V. Partners, L.P. Method for configuring a piece of equipment with the use of an associated machine resolvable code
US6757715B1 (en) * 1998-09-11 2004-06-29 L.V. Partners, L.P. Bar code scanner and software interface interlock for performing encrypted handshaking and for disabling the scanner in case of handshaking operation failure
US6697949B1 (en) * 1998-09-11 2004-02-24 L.V. Partner, L.P. Method and apparatus for controlling a user's pc through an audio-visual broadcast to archive information in the users pc
US7533064B1 (en) 1998-10-07 2009-05-12 Paypal Inc. E-mail invoked electronic commerce
US6360275B1 (en) * 1998-10-29 2002-03-19 Shanghai Wonders Information Co., Ltd. System and method for transmitting and receiving data in a network
US7694319B1 (en) 1998-11-02 2010-04-06 United Video Properties, Inc. Interactive program guide with continuous data stream and client-server data supplementation
US6859799B1 (en) 1998-11-30 2005-02-22 Gemstar Development Corporation Search engine for video and graphics
EP1169861A1 (en) * 1999-04-15 2002-01-09 Skystream Networks Inc. Data broadcast system
DE60039861D1 (de) * 1999-04-20 2008-09-25 Samsung Electronics Co Ltd Werbeverwaltungssystem für digitale videoströme
US7016951B1 (en) 1999-04-30 2006-03-21 Mantech Ctx Corporation System and method for network security
WO2000068811A1 (en) * 1999-04-30 2000-11-16 Network Forensics, Inc. System and method for capturing network data and identifying network events therefrom
CA2371906C (en) 1999-05-10 2005-04-12 Charles A. Eldering Advertisement subgroups for digital streams
KR100654430B1 (ko) * 1999-05-20 2006-12-07 삼성전자주식회사 데이터를 브로드캐스팅하는 디지털 방송 시스템에서 어플리케이션을 처리하는 장치 및 방법
US7069571B1 (en) 1999-06-15 2006-06-27 Wink Communications, Inc. Automated retirement of interactive applications using retirement instructions for events and program states
US7222155B1 (en) 1999-06-15 2007-05-22 Wink Communications, Inc. Synchronous updating of dynamic interactive applications
US7634787B1 (en) 1999-06-15 2009-12-15 Wink Communications, Inc. Automatic control of broadcast and execution of interactive applications to maintain synchronous operation with broadcast programs
US8434113B1 (en) * 1999-10-06 2013-04-30 Tvworks, Llc Electronic commerce using streaming media
US6530084B1 (en) * 1999-11-01 2003-03-04 Wink Communications, Inc. Automated control of interactive application execution using defined time periods
US6985589B2 (en) * 1999-12-02 2006-01-10 Qualcomm Incorporated Apparatus and method for encoding and storage of digital image and audio signals
GB2357922A (en) * 1999-12-07 2001-07-04 Sony Service Ct Optimising a data carousel
US6226739B1 (en) * 1999-12-14 2001-05-01 International Business Machines Corporation Method and computer program for distributing software to a personal palm-type device through a global software distribution package transmittable over the world wide web
US7720712B1 (en) * 1999-12-23 2010-05-18 Amazon.Com, Inc. Placing a purchase order using one of multiple procurement options
US20020178442A1 (en) * 2001-01-02 2002-11-28 Williams Dauna R. Interactive television scripting
US6496802B1 (en) 2000-01-07 2002-12-17 Mp3.Com, Inc. System and method for providing access to electronic works
WO2001056285A1 (en) 2000-01-27 2001-08-02 Berberet Suzanne M System and method for providing broadcast programming, a virtual vcr, and a video scrapbook to programming subscribers
US7028327B1 (en) 2000-02-02 2006-04-11 Wink Communication Using the electronic program guide to synchronize interactivity with broadcast programs
US7631338B2 (en) * 2000-02-02 2009-12-08 Wink Communications, Inc. Interactive content delivery methods and apparatus
US20030097338A1 (en) * 2000-02-03 2003-05-22 Piotrowski Tony E. Method and system for purchasing content related material
US20010033243A1 (en) 2000-03-15 2001-10-25 Harris Glen Mclean Online remote control configuration system
US6784805B2 (en) 2000-03-15 2004-08-31 Intrigue Technologies Inc. State-based remote control system
US8531276B2 (en) 2000-03-15 2013-09-10 Logitech Europe S.A. State-based remote control system
US20020056083A1 (en) * 2000-03-29 2002-05-09 Istvan Anthony F. System and method for picture-in-browser scaling
US20020060750A1 (en) * 2000-03-29 2002-05-23 Istvan Anthony F. Single-button remote access to a synthetic channel page of specialized content
EP2285104A1 (en) 2000-03-31 2011-02-16 United Video Properties, Inc. System and method for reducing cut-offs in program recording
US6687735B1 (en) * 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US20040148625A1 (en) * 2000-04-20 2004-07-29 Eldering Charles A Advertisement management system for digital video streams
US7360231B2 (en) * 2000-05-01 2008-04-15 The Directv Group, Inc. System for obtaining data regarding customer use of interactive television
US7181759B2 (en) * 2000-05-26 2007-02-20 Bigband Networks, Inc. System and method for providing interactivity for end-users over digital broadcast channels
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US20050211765A1 (en) * 2000-06-27 2005-09-29 Digital World Access, Inc. Money management network
US20040111370A1 (en) * 2000-06-27 2004-06-10 Digital World Access, Inc. Single source money management system
US20010056399A1 (en) * 2000-06-27 2001-12-27 Eric Saylors Web dependent consumer financing and virtual reselling method
WO2003034186A2 (en) * 2001-10-16 2003-04-24 Newattitude Inc. (Dba Digital World Access, Inc.) Self-administered automatic payroll deduction
US7613790B2 (en) * 2000-07-13 2009-11-03 Biap Systems, Inc. Apparatus for and method of executing customized interactive computing services in a broadband network environment
US7313802B1 (en) 2000-07-25 2007-12-25 Digeo, Inc. Method and system to provide deals and promotions via an interactive video casting system
US7103908B2 (en) * 2000-07-25 2006-09-05 Diego, Inc. Method and system to save context for deferred transaction via interactive television
US20020013950A1 (en) * 2000-07-25 2002-01-31 Tomsen Mai-Lan Method and system to save context for deferred transaction via interactive television
US20020056109A1 (en) * 2000-07-25 2002-05-09 Tomsen Mai-Lan Method and system to provide a personalized shopping channel VIA an interactive video casting system
JP2002092366A (ja) * 2000-09-11 2002-03-29 Nec Corp Cpu時間売買方法及びcpu時間売買システムにおける管理サーバ
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US7103906B1 (en) 2000-09-29 2006-09-05 International Business Machines Corporation User controlled multi-device media-on-demand system
FR2814892B1 (fr) * 2000-10-04 2003-02-21 At Sky Systeme permettant d'utiliser un ordinateur comme serveur pour televiseurs
KR20030040527A (ko) 2000-10-11 2003-05-22 유나이티드 비디오 프로퍼티즈, 인크. 주문형 미디어 시스템에서 데이터를 캐시하기 위한 시스템및 방법
KR20170128620A (ko) 2000-10-11 2017-11-22 로비 가이드스, 인크. 매체 콘텐츠 배달 시스템 및 방법
US20020103810A1 (en) * 2000-10-19 2002-08-01 Kobi Menachemi Dynamic building of applications
US6889384B1 (en) 2000-11-08 2005-05-03 The Directv Group, Inc. Simplified interactive user interface for multi-video channel navigation
US6917627B1 (en) 2000-11-21 2005-07-12 The Directv Group, Inc. Hybrid satellite communications system
US20020091761A1 (en) * 2001-01-10 2002-07-11 Lambert James P. Technique of generating a composite media stream
US20020138500A1 (en) * 2001-01-12 2002-09-26 General Instrument Corporation Virtual streaming in a carousel file system
US20020152467A1 (en) * 2001-02-12 2002-10-17 Rosario Fiallos Automated generation of conditional access packets for IRD upgrades via radio frequency software download in satellite television systems
US20020175991A1 (en) * 2001-02-14 2002-11-28 Anystream, Inc. GPI trigger over TCP/IP for video acquisition
JP4291467B2 (ja) * 2001-03-01 2009-07-08 株式会社ソニー・コンピュータエンタテインメント エンタテインメント装置、メニュー表示方法および情報記録媒体
US20040117427A1 (en) * 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US20100027430A1 (en) * 2001-04-30 2010-02-04 Netwitness Corporation Apparatus and Method for Network Analysis
WO2002088968A1 (en) * 2001-04-30 2002-11-07 Ctx Corporation Apparatus and method for network analysis
ATE386403T1 (de) * 2001-06-13 2008-03-15 Opentv Inc Verfahren und vorrichtung zur verbesserten erfassung und überwachung von ereignisinformationstabellenteilen
KR100425681B1 (ko) * 2001-07-23 2004-04-03 엘지전자 주식회사 디에스엠-씨씨 기반 장치의 에이피아이 구현 장치 및 방법
US7154916B2 (en) * 2001-07-26 2006-12-26 The Directv Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels
US20030041104A1 (en) * 2001-08-06 2003-02-27 Digeo, Inc. System and method to provide local content and corresponding applications via carousel transmission to thin-client interactive television terminals
US6996564B2 (en) * 2001-08-13 2006-02-07 The Directv Group, Inc. Proactive internet searching tool
US7343487B2 (en) 2001-10-10 2008-03-11 Nokia Corporation Datacast distribution system
US20040072584A1 (en) * 2002-03-01 2004-04-15 Kern Ronald J. Wireless distribution of multimedia content
US7844994B2 (en) * 2002-03-22 2010-11-30 The Directv Group, Inc. System and method for persistent storage of common user information for interactive television using a centrally located repository
US20040031052A1 (en) * 2002-08-12 2004-02-12 Liberate Technologies Information platform
AU2003268273B2 (en) * 2002-08-30 2007-07-26 Opentv, Inc Carousel proxy
CN100450256C (zh) * 2002-10-28 2009-01-07 中兴通讯股份有限公司 移动通信网络规划中小区覆盖文件的分布式处理方法
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US8832772B2 (en) * 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8711923B2 (en) 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
US9108107B2 (en) * 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US9077991B2 (en) 2002-12-10 2015-07-07 Sony Computer Entertainment America Llc System and method for utilizing forward error correction with video compression
US8964830B2 (en) * 2002-12-10 2015-02-24 Ol2, Inc. System and method for multi-stream video compression using multiple encoding formats
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US10201760B2 (en) 2002-12-10 2019-02-12 Sony Interactive Entertainment America Llc System and method for compressing video based on detected intraframe motion
FR2849704A1 (fr) * 2003-01-02 2004-07-09 Thomson Licensing Sa Dispositifs et procedes de decision conditionnelle d'execution de services recus et de constitution de messages d'informations associes a des services, et produits associes
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
US7231404B2 (en) 2003-01-31 2007-06-12 Nokia Corporation Datacast file transmission with meta-data retention
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US20060051059A1 (en) 2004-09-08 2006-03-09 Krakirian Haig H Video recorder having user extended and automatically extended time slots
EA005455B1 (ru) * 2003-05-05 2005-02-24 Виктор Александрович Мамонтов Способ программирования устройств дистанционного управления
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US20050071240A1 (en) * 2003-09-26 2005-03-31 Ewald Stephen A. System and method for purchasing linked with broadcast media
JP2005216140A (ja) * 2004-01-30 2005-08-11 Fujitsu Ten Ltd 発注確認装置および発注確認方法
FR2871639A1 (fr) * 2004-06-11 2005-12-16 Thomson Licensing Sa Procede de gestion de programmes auxiliaires et recepteur et systeme correspondants
US8086575B2 (en) 2004-09-23 2011-12-27 Rovi Solutions Corporation Methods and apparatus for integrating disparate media formats in a networked media system
JP2006094415A (ja) * 2004-09-27 2006-04-06 Toshiba Corp 映像装置及び映像ストリーミング方法
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
US7853947B2 (en) 2004-09-30 2010-12-14 Citrix Systems, Inc. System for virtualizing access to named system objects using rule action associated with request
US7752600B2 (en) 2004-09-30 2010-07-06 Citrix Systems, Inc. Method and apparatus for providing file-type associations to multiple applications
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8117559B2 (en) 2004-09-30 2012-02-14 Citrix Systems, Inc. Method and apparatus for virtualizing window information
US8806533B1 (en) 2004-10-08 2014-08-12 United Video Properties, Inc. System and method for using television information codes
US20060112177A1 (en) * 2004-11-24 2006-05-25 Microsoft Corporation Method and system for controlling access to presence information on a peer-to-peer basis
JP4487761B2 (ja) * 2004-12-21 2010-06-23 カシオ計算機株式会社 データ出力装置、および、プログラム
US20060168291A1 (en) * 2005-01-05 2006-07-27 Van Zoest Alexander Interactive multichannel data distribution system
WO2006074093A2 (en) * 2005-01-05 2006-07-13 Divx, Inc. Media transfer protocol
WO2006089140A2 (en) * 2005-02-15 2006-08-24 Cuvid Technologies Method and apparatus for producing re-customizable multi-media
JP4546299B2 (ja) * 2005-03-18 2010-09-15 キヤノン株式会社 画像形成装置
JP4478598B2 (ja) * 2005-03-18 2010-06-09 キヤノン株式会社 画像形成装置
JP2006256275A (ja) * 2005-03-18 2006-09-28 Canon Inc 装置および画像形成装置
US9973817B1 (en) 2005-04-08 2018-05-15 Rovi Guides, Inc. System and method for providing a list of video-on-demand programs
DE102006018238A1 (de) 2005-04-20 2007-03-29 Logitech Europe S.A. System und Verfahren zur adaptiven Programmierung einer Fernbedienung
US8661459B2 (en) 2005-06-21 2014-02-25 Microsoft Corporation Content syndication platform
US9104773B2 (en) * 2005-06-21 2015-08-11 Microsoft Technology Licensing, Llc Finding and consuming web subscriptions in a web browser
US20070079342A1 (en) * 2005-09-30 2007-04-05 Guideworks, Llc Systems and methods for managing local storage of on-demand content
US8131825B2 (en) 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7813963B2 (en) 2005-12-27 2010-10-12 The Pen Interactive electronic desktop action method and system for executing a transaction
US9681105B2 (en) 2005-12-29 2017-06-13 Rovi Guides, Inc. Interactive media guidance system having multiple devices
US8607287B2 (en) 2005-12-29 2013-12-10 United Video Properties, Inc. Interactive media guidance system having multiple devices
US8280843B2 (en) * 2006-03-03 2012-10-02 Microsoft Corporation RSS data-processing object
US7979803B2 (en) * 2006-03-06 2011-07-12 Microsoft Corporation RSS hostable control
US8280982B2 (en) 2006-05-24 2012-10-02 Time Warner Cable Inc. Personal content server apparatus and methods
US9386327B2 (en) 2006-05-24 2016-07-05 Time Warner Cable Enterprises Llc Secondary content insertion apparatus and methods
US8024762B2 (en) 2006-06-13 2011-09-20 Time Warner Cable Inc. Methods and apparatus for providing virtual content over a network
KR100823282B1 (ko) * 2006-09-29 2008-04-21 삼성전자주식회사 데이터 방송 애플리케이션을 수신, 저장 및 실행하기 위한방법 및 장치
US7653661B2 (en) * 2006-12-29 2010-01-26 Sap Ag Monitoring connection between computer system layers
CN101231731B (zh) * 2007-01-25 2015-10-21 运软网络科技(上海)有限公司 一种应用虚拟化在公网上的通用商务方法及其迷你服务器
US8181206B2 (en) 2007-02-28 2012-05-15 Time Warner Cable Inc. Personal content server apparatus and methods
US9104962B2 (en) * 2007-03-06 2015-08-11 Trion Worlds, Inc. Distributed network architecture for introducing dynamic content into a synthetic environment
US8898325B2 (en) * 2007-03-06 2014-11-25 Trion Worlds, Inc. Apparatus, method, and computer readable media to perform transactions in association with participants interacting in a synthetic environment
US7801888B2 (en) 2007-03-09 2010-09-21 Microsoft Corporation Media content search results ranked by popularity
US20090019492A1 (en) 2007-07-11 2009-01-15 United Video Properties, Inc. Systems and methods for mirroring and transcoding media content
US20090064247A1 (en) * 2007-08-31 2009-03-05 Jacked, Inc. User generated content
US20090100357A1 (en) * 2007-10-11 2009-04-16 Alessio Signorini Systems and methods for visually selecting information
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
WO2009062090A1 (en) * 2007-11-08 2009-05-14 Genetic Finance Holdings Limited Distributed network for performing complex algorithms
US20090133078A1 (en) 2007-11-16 2009-05-21 United Video Properties, Inc Systems and methods for automatically purchasing and recording popular pay programs in an interactive media delivery system
WO2009073827A1 (en) * 2007-12-05 2009-06-11 Onlive, Inc. System and method for compressing video based on detected intraframe motion
US9503691B2 (en) 2008-02-19 2016-11-22 Time Warner Cable Enterprises Llc Methods and apparatus for enhanced advertising and promotional delivery in a network
US8327402B1 (en) 2008-07-15 2012-12-04 United Video Properties, Inc. Methods and devices for presenting an interactive media guidance application
US8626863B2 (en) * 2008-10-28 2014-01-07 Trion Worlds, Inc. Persistent synthetic environment message notification
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US20100169303A1 (en) 2008-12-31 2010-07-01 David Biderman Playlists for real-time or near real-time streaming
US8578272B2 (en) 2008-12-31 2013-11-05 Apple Inc. Real-time or near real-time streaming
US8260877B2 (en) 2008-12-31 2012-09-04 Apple Inc. Variant streams for real-time or near real-time streaming to provide failover protection
US8156089B2 (en) 2008-12-31 2012-04-10 Apple, Inc. Real-time or near real-time streaming with compressed playlists
US8661073B2 (en) * 2009-03-06 2014-02-25 Trion Worlds, Inc. Synthetic environment character data sharing
US8694585B2 (en) * 2009-03-06 2014-04-08 Trion Worlds, Inc. Cross-interface communication
US8657686B2 (en) * 2009-03-06 2014-02-25 Trion Worlds, Inc. Synthetic environment character data sharing
BRPI1011964A2 (pt) * 2009-04-28 2016-04-26 Genetic Finance Barbados Ltd sistema de computador em rede, e, método para resolver um problema computacional usando uma pluradidade de computadores clientes.
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8214515B2 (en) 2009-06-01 2012-07-03 Trion Worlds, Inc. Web client data conversion for synthetic environment interaction
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US9014546B2 (en) 2009-09-23 2015-04-21 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
US8805963B2 (en) 2010-04-01 2014-08-12 Apple Inc. Real-time or near real-time streaming
US8560642B2 (en) 2010-04-01 2013-10-15 Apple Inc. Real-time or near real-time streaming
GB201105502D0 (en) 2010-04-01 2011-05-18 Apple Inc Real time or near real time streaming
TWI451279B (zh) 2010-04-07 2014-09-01 Apple Inc 即時或接近即時串流傳輸之內容存取控制
CN102906718B (zh) * 2010-05-28 2016-05-25 惠普发展公司,有限责任合伙企业 禁用显示刷新过程
US8508401B1 (en) 2010-08-31 2013-08-13 Logitech Europe S.A. Delay fixing for command codes in a remote control system
US8856283B2 (en) 2011-06-03 2014-10-07 Apple Inc. Playlists for real-time or near real-time streaming
US8843586B2 (en) 2011-06-03 2014-09-23 Apple Inc. Playlists for real-time or near real-time streaming
KR101555266B1 (ko) * 2011-09-01 2015-09-23 후아웨이 테크놀러지 컴퍼니 리미티드 자원 이주를 위한 방법, 장치 및 시스템
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
RU2498396C1 (ru) * 2012-02-22 2013-11-10 Вадим Александрович Питов Способ осуществления коммуникаций и виртуальных путешествий
US9609374B2 (en) 2012-06-27 2017-03-28 Rovi Guides, Inc. System and methods for automatically obtaining cost-efficient access to a media content collection
US20140282786A1 (en) 2013-03-12 2014-09-18 Time Warner Cable Enterprises Llc Methods and apparatus for providing and uploading content to personalized network storage
US9674563B2 (en) 2013-11-04 2017-06-06 Rovi Guides, Inc. Systems and methods for recommending content
US10430429B2 (en) 2015-09-01 2019-10-01 Cognizant Technology Solutions U.S. Corporation Data mining management server
JP6649085B2 (ja) * 2015-12-28 2020-02-19 日本テレビ放送網株式会社 分散コンピューティングシステム、放送局、サーバ及び分散コンピューティング方法
CN106897872A (zh) * 2016-12-08 2017-06-27 阿里巴巴集团控股有限公司 资源调度方法及装置、支付方法及装置

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3602891A (en) * 1969-03-10 1971-08-31 Univ Washington Continuous transmission computer and multiple receiver system
US3803491A (en) * 1971-05-26 1974-04-09 Tocom Communications system
US3891792A (en) * 1974-06-25 1975-06-24 Asahi Broadcasting Television character crawl display method and apparatus
US4528589A (en) * 1977-02-14 1985-07-09 Telease, Inc. Method and system for subscription television billing and access
US4264925A (en) * 1979-08-13 1981-04-28 Michael J. Freeman Interactive cable television system
US4323922A (en) * 1979-12-17 1982-04-06 Oak Industries Inc. Television coding system with channel level identification
US4965825A (en) * 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
CA1177558A (en) 1982-04-15 1984-11-06 Groupe Videotron Ltee. (Le) Cable network data transmission system
NL8303991A (nl) * 1983-11-18 1985-06-17 Nl Standard Electric Mij B V Kabeltelevisienetwerk.
JPS6149574A (ja) * 1984-08-16 1986-03-11 Sony Corp プログラムの伝送方法
JP2585535B2 (ja) * 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法
US4780758A (en) 1987-04-30 1988-10-25 Gte Government Systems Corporation Telecommunication system with burst and continuous audio signals
IT1211278B (it) * 1987-09-02 1989-10-12 Olivetti & Co Spa Sistema di trasmissione e o ricezione di programmi per calcolatori e o dati attraverso il teletext
JPH01221944A (ja) * 1988-03-01 1989-09-05 Nippon Hoso Kyokai <Nhk> データ信号送出装置
US5117354A (en) * 1988-05-24 1992-05-26 Carnes Company, Inc. Automated system for pricing and ordering custom manufactured parts
US5251301A (en) * 1988-05-27 1993-10-05 Pc Connection, Inc. Computer remote control through a video signal
US5191573A (en) * 1988-06-13 1993-03-02 Hair Arthur R Method for transmitting a desired digital video or audio signal
JPH0627967B2 (ja) * 1988-06-17 1994-04-13 株式会社エスシーシー Cai学習方法および装置
US4994908A (en) 1988-12-23 1991-02-19 Scientific-Atlanta, Inc. Interactive room status/time information system
US5003591A (en) 1989-05-25 1991-03-26 General Instrument Corporation Functionally modifiable cable television converter system
AU628753B2 (en) * 1990-08-14 1992-09-17 Digital Equipment Corporation Method and apparatus for implementing server functions in a distributed heterogeneous environment
JPH04127688A (ja) * 1990-09-18 1992-04-28 Fujitsu General Ltd 文字放送受信機
JPH06501802A (ja) * 1990-10-01 1994-02-24 ブッシュ,トーマス,エイ. トランザクション処理システム
US5129080A (en) * 1990-10-17 1992-07-07 International Business Machines Corporation Method and system increasing the operational availability of a system of computer programs operating in a distributed system of computers
GB2249416B (en) * 1990-12-31 1994-08-17 Ruego Dev Co A data processing system.
NZ241520A (en) * 1991-02-06 1995-07-26 Catalina Marketing Int Retail purchasing: discounts accumulated and printout produced
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
DE69210303T2 (de) * 1991-05-23 1996-11-14 Hitachi Ltd Breitbildschirmfernsehempfänger mit Bildseitenverhältnisumwandlungsfunktion und Verfahren zur Darstellung eines vergrösserten Abschnittes
US5343239A (en) * 1991-11-20 1994-08-30 Zing Systems, L.P. Transaction based interactive television system
JPH05197732A (ja) * 1991-12-16 1993-08-06 Sofuto Banku Kk 情報販売端末装置のインタフェース
US5371550A (en) * 1991-12-25 1994-12-06 Casio Computer Co., Ltd. Television receiver with auto-tuning system
US5299197A (en) * 1992-02-11 1994-03-29 Roger Schlafly Communications packet server protocol
US5642515A (en) * 1992-04-17 1997-06-24 International Business Machines Corporation Network server for local and remote resources
FR2694423B1 (fr) * 1992-07-30 1994-12-23 France Telecom Dispositif de contrôle de la puissance de sortie des diodes laser.
US5373288A (en) * 1992-10-23 1994-12-13 At&T Corp. Initializing terminals in a signal distribution system
US5440632A (en) * 1992-12-02 1995-08-08 Scientific-Atlanta, Inc. Reprogrammable subscriber terminal
US5600364A (en) * 1992-12-09 1997-02-04 Discovery Communications, Inc. Network controller for cable television delivery systems
US5548532A (en) * 1994-04-28 1996-08-20 Thomson Consumer Electronics, Inc. Apparatus and method for formulating an interactive TV signal
US5819034A (en) 1994-04-28 1998-10-06 Thomson Consumer Electronics, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system
US5559548A (en) * 1994-05-20 1996-09-24 Davis; Bruce System and method for generating an information display schedule for an electronic program guide
US5635978A (en) * 1994-05-20 1997-06-03 News America Publications, Inc. Electronic television program guide channel system and method

Also Published As

Publication number Publication date
CN1104691C (zh) 2003-04-02
EP1307022A2 (en) 2003-05-02
ATE523014T1 (de) 2011-09-15
CN1893648A (zh) 2007-01-10
EP0680185A2 (en) 1995-11-02
CN1893648B (zh) 2014-03-26
ES2232816T3 (es) 2005-06-01
EP0680185A3 (en) 2002-05-02
JP2009169971A (ja) 2009-07-30
JP2012123833A (ja) 2012-06-28
CN1516032A (zh) 2004-07-28
ES2387085T3 (es) 2012-09-13
EP1307022B1 (en) 2011-07-27
EP0680185B1 (en) 2004-09-29
EP1307023A2 (en) 2003-05-02
CA2145899C (en) 2004-10-26
EP1307022A3 (en) 2006-06-28
EP1307024B2 (en) 2016-01-06
DE69533565D1 (de) 2004-11-04
ES2372692T3 (es) 2012-01-25
EP1307024B1 (en) 2012-06-13
EP1307024A2 (en) 2003-05-02
US5819034A (en) 1998-10-06
DK0680185T3 (da) 2004-10-25
JPH08166925A (ja) 1996-06-25
DE69533565T2 (de) 2006-02-23
ATE518348T1 (de) 2011-08-15
CN1117620A (zh) 1996-02-28
ES2370166T3 (es) 2011-12-13
EP1307025B1 (en) 2011-08-31
PT1307022E (pt) 2011-11-08
CN1311378C (zh) 2007-04-18
CA2145899A1 (en) 1995-10-29
US5915090A (en) 1999-06-22
KR100363593B1 (ko) 2003-02-11
SG28257A1 (en) 1996-04-01
EP1307025A2 (en) 2003-05-02
EP1307024A3 (en) 2006-06-28
EP1307025A3 (en) 2006-06-28
ATE278285T1 (de) 2004-10-15
PT1307024E (pt) 2012-08-13
CN101212659A (zh) 2008-07-02
JP2011028759A (ja) 2011-02-10
RU2142158C1 (ru) 1999-11-27
KR950033885A (ko) 1995-12-26
RU95106682A (ru) 1997-01-20
EP1307023A3 (en) 2006-06-28

Similar Documents

Publication Publication Date Title
PT1307025E (pt) Um sistema informático distribuído
EP1290889B1 (en) System and method of voice recognition near a wireline node of a network supporting cable television and/or video delivery
US5113496A (en) Bus interconnection structure with redundancy linking plurality of groups of processors, with servers for each group mounted on chassis
EP0820673B1 (en) Networked video downloading servers with customized services
EP1311122A2 (en) Using NAS appliance to build a non-conventional distributed video server
JPH1196237A (ja) ネットワークシステム、データ配信方法、および、配信用データが記録されたコンピュータ読み取り可能な記録媒体
JP4460702B2 (ja) 情報サーバ及びキャルセル情報配列方法
JP2004023675A (ja) 情報配信システム、サーバ装置及び移動機
JP2002044278A (ja) データ提供システム
CN101136933A (zh) 一种集群式流媒体组网系统的计费方法
JPH0821952B2 (ja) ネットワーク制御方式