CAMPO DA INVENÇÃO
[001] A presente invenção diz respeito ao campo do compartilhamento de documentos ou de aplicativos entre dois terminais conectados através de uma rede.
ANTECEDENTES DA INVENÇÃO
[002] Por documento, entende-se qualquer tipo de informação, qualquer que seja sua representação, inclusive gráfica, associada a qualquer tipo de formato de arquivo informático.
[003] Por aplicativo, entende-se um software, qualquer que seja sua versão, executável nativamente pelo terminal no qual ele está instalado ou um aplicativo web executável por um servidor ao qual o terminal está conectado (solução em modo SaaS: Software as a Service, na terminologia inglesa).
[004] Por terminal, entende-se qualquer tipo de objeto comunicante suscetível de se comunicar com um servidor, por exemplo, um telefone inteligente mais comumente chamado de “smartphone” na terminologia inglesa, ou um computador individual, mais comumente denominado “Personal Computer” ou PC na terminologia inglesa, indiferentemente de seu sistema operacional, quer ele seja desenvolvido pela Microsoft (marca registrada), Apple (marca registrada) ou em software livre, por exemplo, Linux (marca registrada). O terminal pode se apresentar em forma fixa (com unidade central), portátil ou como tablet gráfico tátil, por exemplo, um iPad (marca registrada).
[005] Existem vários tipos de soluções de compartilhamento de documentos ou de aplicativos, por exemplo para realizar apresentações, eventualmente interativas, à distância entre dois terminais conectados através de uma rede, por exemplo a Internet.
[006] Por convenção, entende-se por emissor o terminal que emite documentos destinados a um ou mais terminais receptores, no caso através de um servidor web. O emissor pode, por exemplo, ser associado a um apresentador que deseja compartilhar, apresentar documentos ou aplicativos a participantes.
[007] Um primeiro tipo de compartilhamento de documentos ou de aplicativos entre dois terminais consiste em compartilhar toda ou parte de uma tela de exibição.
[008] Nesse caso, tipicamente, um aplicativo instalado em um primeiro terminal, emissor, captura todo ou parte (por exemplo, uma janela de exibição) do conteúdo de sua tela de exibição e o envia em forma de um fluxo de vídeo a um servidor que retransmite em seguida esse fluxo a um segundo terminal, receptor, que é dotado de um leitor apropriado para ler esse tipo de fluxo de vídeo.
[009] Nesse caso, um mesmo aplicativo deve ser instalado no terminal de cada participante que deseja compartilhar toda ou parte de sua tela de exibição.
[010] A vantagem desse tipo de solução reside no fato de que deixam de existir os problemas de formato das informações ou documentos intercambiados ou dos aplicativos utilizados. O documento ou o aplicativo a ser compartilhado não precisam existir nos terminais receptores, eles podem existir apenas no terminal emissor. Quaisquer que sejam os documentos ou aplicativos utilizados pelo apresentador, os participantes podem vê-los exibidos em suas telas qualquer que seja sua configuração de hardware e de software.
[011] Entretanto, esse tipo de solução requer a instalação de um aplicativo em cada terminal emissor ou receptor.
[012] Além disso, pelo uso de fluxo de vídeo, esse tipo de solução requer uma banda passante (ascendente e descendente) importante e terminais eficientes.
[013] Um segundo tipo de compartilhamento de documentos ou de aplicativos entre dois terminais consiste em assumir o controle à distância de um terminal.
[014] Nesse caso, tipicamente, como anteriormente, um aplicativo instalado em um primeiro terminal, emissor, captura o conteúdo de toda ou parte de sua tela de exibição e envia esse conteúdo em forma de fluxo de vídeo a um servidor que retransmite, em seguida, esse fluxo de vídeo a um segundo terminal, receptor, que é dotado de um leitor apropriado para ler esse tipo de fluxo de vídeo.
[015] Além disso, um aplicativo instalado segundo terminal se comunica com o primeiro terminal através de um servidor a fim de controlar os periféricos (mouse e teclado) do primeiro terminal.
[016] Nesse caso, por exemplo, um apresentador associado ao segundo terminal pode assumir o controle do primeiro terminal, associado a um participante.
[017] A vantagem desse tipo de solução reside no fato de que deixam igualmente de existir problemas de formato de documentos intercambiados e dos aplicativos utilizados. Quaisquer que sejam os documentos ou aplicativos utilizados pelo apresentador, os participantes podem vê-los em suas telas, qualquer que seja sua configuração de software ou de hardware.
[018] Entretanto esse tipo de solução requer a instalação de um aplicativo em cada terminal.
[019] Além disso, esse tipo de solução requer uma banda passante (ascendente e descendente) importante e terminais eficientes.
[020] Além disso, os documentos ou aplicativos apresentados devem ser apresentados no primeiro terminal (sobre o qual o controle é assumido).
[021] Um terceiro tipo de compartilhamento de documentos entre dois terminais consiste em apresentar documentos por comando de atualização de exibição.
[022] Nesse caso, tipicamente, os terminais se conectam em um servidor comum que distribui a eles os mesmos documentos simultaneamente por meio de um sistema de atualização automática presente na primeira página de conexão. A escolha dos documentos é comandada por um dos terminais.
[023] A vantagem desse tipo de solução reside em sua simplicidade pelo fato de que não requer a instalação de aplicativo particular em todos os terminais, tipicamente um navegador internet pode ser suficiente.
[024] Entretanto, esse tipo de solução depende da configuração de software ou hardware dos terminais dos usuários para a leitura dos documentos enviados.
[025] Além disso, esse tipo de solução requer geralmente uma banda passante (descendente a partir do servidor comum) importante.
[026] Além disso, esse tipo de solução não permite compartilhar aplicativos entre terminais.
[027] De fato, esses três tipos de soluções são bastante apropriadas para organizações dedicadas, por exemplo, intra-empresa, mas se mostram muito restritivas, e mesmo impossíveis de implementar por exemplo no contexto de usuários nômades ou de prestação de serviço, em particular devido ao fato de que: - é, em um grande número de situações, impossível instalar o menor aplicativo nos terminais dos participantes/receptores (enquanto uma instalação é frequentemente possível do lado apresentador/emissor); - é frequentemente impossível preparar múltiplas versões dos documentos a ser apresentados para se adaptar às diferentes configurações possíveis de software ou hardware dos participantes; e - o apresentador ou os participantes dispõem, às vezes, de uma banda passante muito ruim.
[028] A presente invenção visa a superar pelo menos uma dessas dificuldades e propõe um novo tipo de solução.
DESCRIÇÃO DA INVENÇÃO
[029] De acordo com um primeiro, a presente invenção trata de um processo de apresentação à distância entre um primeiro terminal (100) e pelo menos um segundo terminal (200, 200') conectados através de uma rede, que compreende etapas que consistem em: - gerar (20) eventos durante uma ação de um usuário em um dos periféricos do primeiro terminal, e enviar os eventos gerados a um controlador de máquina (110) do primeiro terminal.
[030] Ele se caracteriza essencialmente pelo fato de que compreende, ainda, etapas que consistem: - enviar (30) a um servidor web (300) os eventos gerados; e - enviar (40) os eventos a partir do servidor web (300) a pelo menos um controlador de máquina entre o controlador de máquina (210) do segundo terminal (200) e o controlador de máquina (410) de um servidor de vídeo (400) cuja configuração é compatível com a do primeiro terminal (100).
[031] Em um modo de realização, estão previstas, ainda, etapas que consistem em: - comparar (70) a configuração do primeiro terminal (100) e a do segundo terminal (210, 210'); e em função do resultado da comparação, - se as configurações forem similares, traduzir (80) os eventos antes de seu envio a um controlador de máquina do segundo terminal; - se as configurações não forem compatíveis, - emitir (88) uma mensagem de erro ou uma mensagem de alerta.
[032] É possível prever, se as configurações forem idênticas ou similares, enviar os eventos a um controlador de máquina do segundo terminal, eventualmente sem tradução. O envio dos eventos é, de preferência, feito através de um servidor web.
[033] Em um modo de realização, estão previstas, ainda, no servidor de vídeo (400), etapas que consistem em: - gerar e gravar (50) um fluxo de vídeo que reproduz as ações de um usuário sobre um dos periféricos do primeiro terminal pelos eventos gerados (20) e enviados (30, 40).
[034] É possível prever para - se as configurações não forem compatíveis, - emitir (88) uma mensagem de erro ou uma mensagem de alerta; e - se as configurações forem similares, traduzir (80) os eventos antes de seu envio a um controlador de máquina do servidor de vídeo; - gerar no servidor de vídeo e gravar nesse mesmo servidor (50) um fluxo de vídeo a partir dos eventos apresentados pelo controlador de máquina do servidor de vídeo, reproduzindo as ações de um usuário em um dos periféricos do primeiro terminal pelos eventos gerados (20) e recebidos do servidor web (30, 40).
[035] Em um modo de realização, uma etapa que consiste em difundir (60) o fluxo de vídeo ao segundo terminal (200, 210') está também prevista.
[036] Em um modo de realização, está também prevista uma etapa que consiste em: - sincronizar (10) o primeiro terminal e o segundo terminal pela abertura em seu respectivo navegador de uma mesma página web (URL) ou a abertura de um mesmo aplicativo.
[037] Graças a essa característica, o primeiro terminal e o segundo terminal se encontram em uma situação inicial similar antes do início do compartilhamento à distância.
[038] Em um modo de realização, está também previsto que menos um dos primeiro e segundo terminal compreenda um navegador configurado para ler o formato de dados HTML5.
[039] Em um modo de realização, está prevista ainda, em pelo menos um dos primeiro terminal e segundo terminal, pelo menos uma das etapas que consiste em: - baixar (90) um documento em tempo real, - baixar (91) um documento antes da etapa de envio os eventos a partir do servidor a pelo menos um controlador de máquina entre o controlador de máquina do segundo terminal e o controlador de máquina de um servidor de vídeo, e - baixar (92) um documento por difusão em modo contínuo.
[040] Em um modo de realização, está previsto que a etapa de tradução (80) compreenda para um dado terminal pelo menos uma das etapas que consistem em: - transformar (81) as coordenadas de um apontador em coordenadas relativas à dimensão da tela associada ao terminal; e - estabelecer (82) uma correspondência bijetiva entre as ações de um usuário sobre uma tela tátil e as ações similares sobre tela não tátil.
[041] Em um modo de realização, estão previstas, ainda, etapas que consistem em: - enviar (31) ao servidor web a identidade do aplicativo lançada pela ação de um usuário no primeiro terminal ou um de seus periféricos; - enviar (32) a identidade do aplicativo a partir do servidor web a pelo menos um controlador de máquina do segundo terminal; e - forçar (33) a execução do aplicativo no segundo terminal.
[042] De acordo com outro de seus objetos, a presente invenção trata de um programa de computador, que compreende instruções de código de programa para a execução das etapas do processo de acordo com a presente invenção, quando o programa é executado em um computador.
[043] A presente invenção pode ser aplicada, em particular, ao trabalho colaborativo sobre um conteúdo web ou no interior de um aplicativo compartilhado entre usuários equipados de tablets gráficos tais como iPad (marca registrada), no contexto, por exemplo, de treinamento à distância, inclusive para cursos virtuais.
BREVE DESCRIÇÃO DOS DESENHOS
[044] Outras características e vantagens da presente invenção aparecerão mais claramente com a leitura da descrição a seguir dada a título de exemplo ilustrativo e não limitativo e feita em relação às figuras anexas.
[045] A figura 1 ilustra um modo de realização do processo de acordo com a presente invenção.
[046] A figura 2 ilustra um modo de realização de um sistema suscetível de implementar o processo de acordo com a presente invenção.
[047] A figura 3 ilustra um modo de realização de um sistema suscetível de implementar o processo de acordo com a presente invenção.
DESCRIÇÃO DE REALIZAÇÕES DA INVENÇÃO
[048] Todo terminal 100, 200, 200' compreende um ou, em geral, vários periféricos 120, 130, 220, 230, 220', 230', conectados ao sistema informático do terminal.
[049] Pode se tratar de um periférico de entrada, por exemplo um teclado ou um dispositivo apontador tal como um mouse ou um tablet gráfico com stylus; de um periférico de saída tal como uma tela de visualização; ou de periférico de entrada/saída tal como uma tela tátil.
[050] Cada periférico está, em geral, conectado a um respectivo controlador individual. De forma que cada terminal compreende geralmente pelo menos dois controladores distintos: um controlador de máquina e um controlador periférico (comum a todos os periféricos ou um controlador por periférico).
[051] Quando um usuário exerce uma ou mais ações físicas (sequenciais ou simultâneas) sobre um dos periféricos de um terminal, o controlador do periférico utilizado envia a um controlador do terminal, chamado controlador de máquina, um conjunto correspondente de instruções denominadas eventos. Ao receber esses eventos, o controlador de máquina os transforma em ações informáticas, isto é, em comandos máquina, eventualmente com destino a outro periférico.
[052] Por exemplo, sem que um aplicativo particular seja necessariamente lançado, uma ação física que consiste em fazer um clique (direito ou esquerdo) sobre um link hipertexto, sobre um botão, sobre um ícone..., em deslocar um ou dois apontadores (por exemplo, um mouse, ou um ou dois dedos sobre uma tela tátil), etc. leva à geração 20 de eventos correspondentes para os quais resulta pelo controlador de máquina um comando associado (ação informática): a abertura de uma nova página (web ou outra) na tela, o lançamento de um aplicativo, isto é, a execução de um software, efetuar um zoom, uma rotação (giro), etc.
[053] Os eventos enviados ao controlador de máquina compreendem, por exemplo, indicações sobre a posição do ou dos apontadores, seu movimento eventual (distância e velocidade de deslocamento ou de afastamento), bem como a ação eventual (clique, duplo clique, toque, arrasto, etc.).
[054] O controlador de máquina 110, 210, 210' transforma essas indicações em instruções, tipicamente com destino a um controlador de outro periférico, e até do mesmo.
[055] Por comodidade de linguagem, entende-se por evento indistintamente as indicações enviadas ao controlador de máquina a partir um controlador de periférico ou as instruções enviadas a partir o controlador de máquina para um controlador de periférico.
[056] Quando um aplicativo particular é lançado, convencionalmente, cada aplicativo utiliza um controlador de aplicativo próprio, que permite de acordo com o mesmo princípio executar um certo número de funções específicas, dependendo da ação física de um usuário nesse aplicativo.
[057] Por exemplo, em um aplicativo que permitem a digitação de texto, quando um usuário apoia sobre a letra “A” de seu teclado, o controlador de máquina recebe a partir do controlador do teclado ou da tela tátil um evento significando que essa letra A foi selecionada, e emite com destino ao controlador da tela (tátil ou não) uma ordem de exibição desse caractere A.
[058] O que é proposto aqui é um uso inteligente dos eventos e pelo menos um controlador de máquina de pelo menos um dos dois terminais em rede, no qual em um modo de realização, o controlador de máquina de um dos dois terminais é comandado pelos eventos gerados pelo outro dos dois terminais.
[059] Em outro modo de realização, alternativo ou combinatório, o controlador de máquina do terminal emissor de um dos dois terminais emite eventos para um servidor de vídeo que transforme essas instruções em fluxo de vídeo com destino ao outro dos dois terminais ou com destino a vários outros terminais (receptores). O controlador de máquina do segundo terminal (receptor) pode, em retorno, mesmo em recepção de um fluxo de vídeo, emitir eventos para controlar o primeiro terminal (emissor).
[060] Graças à presente invenção, é possível comandar o controlador de aplicativo de um dos dois terminais diretamente pelo outro dos dois terminais através de um servidor web.
[061] Diferentes modos de realização são descritos mais adiante.
[062] É fornecido um processo de apresentação à distância entre um primeiro terminal 100 e pelo menos um segundo terminal 200, 200' conectados através de uma rede, tipicamente a Internet.
[063] Cada terminal pode agir em modo de emissão (envio dos eventos para um servidor web 300) ou em modo de recepção (recepção dos eventos provenientes do servidor web).
[064] Está prevista uma etapa 30 que consiste em enviar a um servidor web 300 (tipicamente a seu controlador de máquina 310) os eventos gerados por uma ação de um usuário no primeiro terminal ou um de seus periféricos.
[065] Graças a essa característica, a banda passante entre o primeiro terminal e o servidor web pode ser muito limitada em comparação, em particular, com o envio do conteúdo em forma de fluxo de vídeo. De fato, cada evento enviado representa tipicamente algumas dezenas de octetos. A etapa de envio 30 pode, portanto, ser muito rápida.
[066] De preferência, o envio é efetuado por meio de um aplicativo específico lançado por um usuário do primeiro terminal.
[067] Depois que os eventos recebidos por o servidor web 300, está prevista uma etapa 40 que consiste em enviar os eventos a partir do servidor web a pelo menos um controlador de máquina 210 do segundo terminal 200. É possível prever como complemento ou como substituição que a etapa 40 consiste em enviar os eventos a partir do servidor web 300 a pelo menos um controlador de máquina 410 de um servidor de vídeo 400.
[068] O controlador de máquina 210 do segundo terminal 200 recebe os eventos provenientes do servidor web 300 ao qual está conectado de preferência por meio de um aplicativo específico lançado por um usuário do segundo terminal. O controlador de máquina 210 interpreta então os eventos como se eles fossem provenientes do usuário do segundo terminal utilizando sua interface e os transforma em ação informática, o que reproduz no segundo terminal 200 as ações do usuário do primeiro terminal 100.
[069] Da mesma forma que anteriormente, como apenas eventos são transmitidos, a banda passante entre o servidor web 300 e o segundo terminal 210 ou o servidor de vídeo 400 pode ser muito baixa.
[070] Essa configuração é particularmente apropriada nos casos em que o primeiro terminal e o segundo terminal possuem configurações idênticas ou similares, isto é, configurações compatíveis. Toda ação efetuada em um dos terminais é reproduzida de forma idêntica no outro terminal.
[071] Por “configuração”, entende-se pelo menos um dos elementos entre o sistema de exploração, o tamanho da tela, a resolução da tela, e a versão do software ou do navegador.
[072] Por “configuração similar”, entende-se, em particular, que o primeiro e o segundo terminal compreendem, cada um, uma versão respectiva de um mesmo software, mas que essas duas versões são compatíveis entre si, isto é, uma ação relativa a esse software em um dos terminais provoca mesma ação relativa a esse software no outro terminal.
[073] Como todos os terminais não possuem necessariamente configurações idênticas ou similares, é possível prever uma etapa 70 que consiste em comparar a configuração do primeiro terminal e a do segundo terminal.
[074] Tipicamente, isso equivale a identificar, por exemplo, se os terminais conectados à rede são telas táteis ou não, a dimensão de sua tela, suas versões de softwares, etc.
[075] Assim, em função do resultado da comparação: - se as configurações forem idênticas os eventos são enviados a um controlador de máquina do segundo terminal; - se as configurações forem similares, é possível prever traduzir 80 os eventos antes de seu envio a um controlador de máquina do segundo terminal; e - se as configurações não forem compatíveis, é possível prever emitir uma mensagem de erro ou uma mensagem de alerta, convidando, por exemplo, a implementar a solução com o servidor de vídeo descrita a seguir.
[076] A etapa de tradução 80 é implementada, de preferência, pelo servidor web 300 equipado de meios de tradução 340, que compreendem tipicamente uma memória e uma calculadora. A título alternativo, a etapa de tradução 80 pode ser deslocalizada, e os meios de tradução 340 são compreendidos por outra máquina, servidor ou terminal. A etapa de tradução 80 compreende para um determinado terminal pelo menos uma das etapas que consistem em: - transformar 81 as coordenadas absolutas de um apontador em coordenadas relativas à dimensão da tela associada ao terminal; e - estabelecer 82 uma correspondência bijetiva entre as ações de um usuário sobre uma tela tátil e as ações similares sobre tela não tátil.
[077] Por exemplo, quando um usuário aponta por meio de um apontador (mouse, stylet, dedo), as coordenadas absolutas (X pixel, Y pixel da tela) do ponto apontado são transformadas em coordenadas relativas (Xr%, Yr% da dimensão da tela).
[078] Essas coordenadas relativas são enviadas ao outro terminal cujo controlador de máquina pode então comandar a execução de forma que a mesma porcentagem seja aplicada, o que é particularmente vantajoso quando o primeiro e o segundo terminal possuem dimensões de tela respectivas diferentes.
[079] Por exemplo, tomando como origem o canto alto à esquerda da tela, se o usuário do primeiro terminal clicar no ícone situado, por exemplo, a 10% da largura da tela e a 20% da altura da tela em relação à origem; um clique ou equivalente (ver abaixo) é efetuado no segundo terminal com a mesma porcentagem em relação à dimensão da tela do segundo terminal. Assim, se os dois ícones situados nesses respectivos locais correspondem ao mesmo aplicativo, esse aplicativo lançado no primeiro terminal é igualmente lançado no segundo terminal.
[080] De modo similar, é possível estabelecer uma correspondência, de preferência bijetiva, por exemplo, em forma de tabela de correspondência registrada no servidor web, entre as ações de um usuário sobre uma tela tátil e as ações correspondentes sobre tela não tátil. Por exemplo, em um terminal a tela tátil, a recepção de um evento que corresponde a um toque de um dedo, a uma modificação da distância entre dois dedos, a um arrasto de dedo etc. gera em um terminal a tela não tátil, um evento que corresponde respectivamente a um clique, um zoom cuja proporção depende do afastamento entre os dois dedos, e uma passagem a uma página seguinte/anterior em função do sentido de deslocamento do arrasto de dedo, etc.
[081] Em certos casos, os eventos enviados ao servidor web compreendem igualmente a identidade 31 do aplicativo lançado (executado) pela ação de um usuário no primeiro terminal ou um de seus periféricos. A identidade do aplicativo é enviada em seguida a partir do servidor web a pelo menos um controlador de máquina do segundo terminal, o que permite a execução, eventualmente forçada 33, do aplicativo no segundo terminal.
[082] Além disso, é possível prever sincronizar 10 previamente o primeiro terminal e o segundo terminal. Para esse fim, está previsto, de preferência, sincronizá-los pela abertura em seu respectivo navegador de uma mesma página web (URL). Por navegador, entende-se um navegador Internet web ou rede social (Facebook - marca registrada - por exemplo).
[083] Tal configuração é vantajosa nas apresentações web. Em particular, é possível prever que pelo menos um dos primeiro e o segundo terminal compreende um navegador configurado para ler o formato de dados HTML5.
[084] Nesse caso, a etapa de tradução é facultativa. Ela só é necessária a partir/para um terminal que compreende um navegador configurado para ler o formato de dados anterior a HTML5, no caso HTML4.
EXEMPLOS DE FUNCIONAMENTO
[085] Nos casos em que as configurações do primeiro e do segundo terminal são idênticas, as ações de um usuário do primeiro terminal são reproduzidas de forma idêntica no segundo terminal.
[086] No caso em que as configurações do primeiro e do segundo terminal são compatíveis, o servidor web traduz as ações de um usuário do primeiro terminal para que elas sejam reproduzidas de forma idêntica no segundo terminal.
[087] Por exemplo, um usuário do primeiro terminal, no caso um iPad (marca registrada), deseja compartilhar um documento com um usuário de um segundo terminal, no caso um PC com mouse. Na sua conexão com o servidor web, este calcula sua configuração e considera que elas são compatíveis. Por exemplo, o primeiro usuário é um apresentador que usa em seu iPad um aplicativo que encapsula um navegador web (tipicamente Webkit). Ele quer compartilhar um documento HTML5 à distância com um segundo usuário, que usa um PC.
[088] O segundo usuário se conecta com seu navegador web (por exemplo, Chrome) em um site cujo endereço URL lhe é comunicado pelo apresentador.
[089] O navegador do segundo usuário envia ao servidor web as informações referentes à sua configuração (através dos agentes) e, em particular, a identidade do navegador utilizado (no caso Chrome, um navegador que sabe interpretar os eventos HTML5) e a resolução de sua tela.
[090] Consequentemente, o apresentador pode compartilhar um documento HTML5, qualquer evento em seu terminal é traduzido e reproduzido no segundo terminal.
[091] Por exemplo, um arrasto de dedo sobre a tela tátil do primeiro terminal é transformado, graças à tabela de correspondência, em evento de movimento do mouse no segundo terminal. Da mesma forma, o toque de dedo sobre a tela tátil do primeiro terminal é transformado, graças à tabela de correspondência, em evento de clique no segundo terminal.
[092] Pode-se prever sincronizar os dois terminais em um mesmo aplicativo, por exemplo, um navegador, o que é vantajoso por exemplo no caso em que a disposição dos ícones não é a mesma nos dois terminais. Os navegadores podem ser diferentes, não precisam ser idênticos. Os navegadores compreendem a mesma linguagem. Por exemplo, as últimas versões de Chrome, Safari, Opera, Firefox e Internet Explorer compreendem o HTML5 e seu Javascript.
[093] O diálogo entre o controlador de máquina e o controlador de aplicativo do primeiro terminal é então traduzido em diálogo entre o controlador de máquina e o controlador de aplicativo do segundo terminal, o que garante que as ações do usuário do primeiro terminal sejam reproduzidas no segundo terminal.
[094] No caso das configurações do primeiro e do segundo terminal não serem compatíveis, é possível prever um servidor de vídeo, além do segundo terminal.
[095] O servidor de vídeo é equipado de uma configuração compatível com o primeiro terminal e equipado de um software de captura vídeo que permite por meios de vídeo 450 gerar e gravar 50 um fluxo de vídeo que reproduz as ações de um usuário em um dos periféricos do primeiro terminal, graças aos eventos gerados e enviados. Esse fluxo de vídeo pode então ser difundido 60 para um segundo terminal 200, 200', em particular um segundo terminal 210' cuja configuração não é compatível com a do primeiro terminal.
[096] O servidor de vídeo 400 pode funcionar no sentido do segundo terminal tal como descrito anteriormente ou emular seu funcionamento.
[097] Está previsto gravar um fluxo de vídeo das ações correspondentes aos eventos gerados pelas ações de um usuário no primeiro terminal ou um de seus periféricos.
[098] Para esse fim, os eventos enviados pelo primeiro terminal ao servidor de vídeo (controlador de máquina) geram a execução de ordens pelo servidor reproduzindo as ações do usuário do primeiro terminal, essas ordens são capturadas em forma de fluxo de vídeo transmitido ao segundo terminal.
[099] Essa configuração apresenta a vantagem de requerer apenas banda passante ascendente muito pequena entre o primeiro terminal e o servidor de vídeo; e qualquer de configuração software/hardware do segundo terminal. É possível, portanto, superar problemas de formato de documentos intercambiados. Quaisquer que sejam os documentos ou o software utilizados, por exemplo, por um apresentador em um terminal, os participantes em outros terminais podem vê-los em suas telas, qualquer que seja sua configuração.
[0100] Para a apresentação de um mesmo documento entre dois terminais, é possível prever, ainda, em pelo menos um dos primeiro terminal e segundo terminal, pelo menos uma das etapas que consiste em: - baixar 90 um documento em tempo real; - baixar 91 um documento antes da etapa de envio os eventos a partir do servidor a pelo menos um controlador de máquina entre o controlador de máquina do segundo terminal e o controlador de máquina de um servidor de vídeo; e - baixar 92 um documento por difusão em modo contínuo.
[0101] Em particular, é possível prever que a difusão em modo contínuo seja efetuada na memória cache do terminal receptor.
[0102] O download prévio é vantajoso, por exemplo, em uma configuração nômade.
[0103] A presente invenção não se limita aos modos de realização descritos anteriormente. Por exemplo, é possível combinar os modos de realização descritos acima tecnicamente compatíveis, entre os quais um modo de realização está ilustrado na figura 2.
[0104] Na figura 2, o sentido das setas indica o sentido de comunicação possível, as etapas do processo são representadas por sua referência numérica, os pontilhados, como para a figura 1, são sinônimos de caráter opcional.
[0105] A noção de primeiro e o segundo terminal é relativa: cada terminal pode ser considerado como primeiro ou segundo em função do contexto de uso, e de preferência cada terminal pode ser capaz de emitir e de receber eventos.
[0106] Por exemplo, no caso de um participante em um segundo terminal não dispor de uma configuração inicialmente compatível com a de um apresentador em um primeiro terminal, o segundo terminal recebe um fluxo de vídeo do servidor de vídeo, sobre o qual o participante pode interagir mandando de volta eventos que são eventualmente traduzidos pelo servidor web e enviados para o primeiro terminal, e eventuais outros participantes.
[0107] Evidentemente, a presente invenção não se limita a dois terminais, mas pode compreender uma pluralidade de terminais conectados em rede. Em particular, quando os terminais receptores forem compatíveis com o terminal emissor e um servidor de vídeo não for necessário, uma vez que apenas eventos são intercambiados através do servidor web, a banda passante requerida é muito pequena e é possível conectar várias centenas a vários milhares de terminais, o que é particularmente vantajoso para o treinamento on line.