BRPI0920478B1 - Método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório - Google Patents

Método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório Download PDF

Info

Publication number
BRPI0920478B1
BRPI0920478B1 BRPI0920478-4A BRPI0920478A BRPI0920478B1 BR PI0920478 B1 BRPI0920478 B1 BR PI0920478B1 BR PI0920478 A BRPI0920478 A BR PI0920478A BR PI0920478 B1 BRPI0920478 B1 BR PI0920478B1
Authority
BR
Brazil
Prior art keywords
computer
sending
peripheral device
data
driver
Prior art date
Application number
BRPI0920478-4A
Other languages
English (en)
Inventor
James M King
Original Assignee
Hewlett - Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett - Packard Development Company, L.P. filed Critical Hewlett - Packard Development Company, L.P.
Publication of BRPI0920478A2 publication Critical patent/BRPI0920478A2/pt
Publication of BRPI0920478B1 publication Critical patent/BRPI0920478B1/pt

Links

Classifications

    • 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/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • G06F13/107Terminal emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório um arranjo de rede inclui um computador 5 receptor conectado através de uma rede a vários computadores remetentes. uma primeira sessão é estabelecida entre o computador receptor e um primeiro dos vários computadores remetentes, onde a primeira sessão envolve prover dados de um dispositivo periférico ligado ao computador receptor para o primeiro computador remetente, e onde os dados do dispositivo periférico são providos para um primeiro driver de dispositivo do dispositivo periférico no primeiro computador remetente. uma segunda sessão é estabelecida entre o computador receptor e um segundo dos vários computadores remetentes, onde a segunda sessão envolve prover os dados do dispositivo periférico ligado ao computador receptor para o segundo computador remetente, e onde os dados do dispositivo periférico são providos para um segundo driver de dispositivo do dispositivo periférico no segundo computador e envio.

Description

“MÉTODO PARA USO EM UM ARRANJO DE REDE, COMPUTADOR REMETENTE E MEIO DE ARMAZENAGEM LEGÍVEL POR COMPUTADOR NÃO-TRANSITÓRIO” Antecedentes da invenção Muitas empresas estão em transição para um arranjo de rede no qual recursos de computação de servidores centrais são providos para computadores locais nos quais os usuários estão localizados. Os recursos de computação (p.ex., aplicações de software, recursos de processamento, recursos de armazenagem, etc.) que estão centralizados em um ou mais servidores centrais podem ser alocados seletivamente para uma sessão estabelecida por um usuário em um computador local.
Protocolos são providos para permitir um usuário em um computador local acessar e compartilhar o desktop de um computador remoto (p.ex., um servidor central) através de uma rede de computadores. Um tal protocolo é o Protocolo Desktop Remoto (RDP), como provido pela Microsoft Corporation, para prover capacidades remotas de exibição e alimentação através de conexões de rede. Um outro protocolo que pode ser usado é o protocolo de Software Remoto de Gráficos (RGS) da Hewlett Packard Co. O RGS é projetado para tirar total vantagem dos recursos computacionais e gráficos de um computador remoto para fornecer acesso remoto interativo no computador local. Os dados de vídeo de desktop do computador remoto são transmitidos através da rede para o computador local, que exibe os dados de vídeo de desktop localmente em uma janela no computador local. RGS é projetado para prover rápida captura, compressão, e transmissão de dados de vídeo de desktop através de uma rede. O RGS também permite dados de áudio serem enviados do computador remoto para o computador local para emissão em um dispositivo de áudio do computador local. O RGS também captura entradas de teclado e mouse do usuário no computador local, e envia as entradas de teclado e mouse para o computador remoto para processamento pelo sistema operacional do computador remoto, e por aplicações sendo executadas no computador remoto. O RGS também permite dados de outros dispositivos periféricos (p.ex., tais como dispositivos de armazenagem) serem comunicados do computador local para o computador remoto.
Quando conectando um computador local a múltiplos computadores remotos, múltiplos dispositivos periféricos duplicados podem ter que ser ligados ao computador local para uso com os correspondentes computadores remotos. O uso de dispositivos periféricos duplicados aumenta o número de dispositivos de hardware que têm que ser ligados ao computador local, e podem levar a complexidade e custos aumentados.
Descrição resumida dos desenhos Algumas configurações da invenção são descritas por meio de exemplo, com relação às figuras seguintes. A figura 1 é um diagrama de blocos de um arranjo exemplar que inclui um computador local e computador remoto, no qual uma configuração da invenção pode ser incorporada; A figura 2 é um diagrama de fluxo de um processo executado no computador local, de acordo com uma configuração; e A figura 3 é um diagrama de fluxo de um processo executado no computador remoto, de acordo com uma configuração.
Descrição detalhada A figura 1 ilustra um arranjo no qual um computador local 100 (no qual um usuário está localizado) é capaz de se conectar com um de múltiplos computadores remotos 102 através de uma rede de dados 104. Embora só um computador local 100 e dois computadores remotos 102 estejam representados na figura 1, é notado que podem existir múltiplos computadores locais 100 e mais que dois computadores remotos 102. O computador local 100 é capaz de usar os recursos de um computador remoto 102 em sessões estabelecidas entre o computador local 100 e o computador remoto 102. Por exemplo, o computador local 100 pode usar os recursos gráficos do computador remoto 102, no qual o computador remoto 102 fornece dados de vídeo de desktop do computador remoto através da rede 104 para o computador local 100 para exibição em um dispositivo display 106 do computador local 100. Também, o computador local pode usar recursos de áudio do computador remoto 102, no qual o computador remoto 102 fornece dados de áudio do computador remoto através da rede 104 para o computador local 100 para emissão por um dispositivo de saída de áudio 107 (p.ex., fone de ouvido, alto-falantes, etc.) do computador local 100.
Também, um ou mais dispositivos de interface de usuário 108 são ligados ao computador local 100. Mudanças no estado do dispositivo de interface de usuário 108 são comunicadas a partir do computador local 100 através da rede de dados 104 para o computador remoto 102. O dispositivo de interface de usuário 108 pode ser um dispositivo de interface humano (HID) de acordo com a norma HID, como descrito em Barramento Serial Universal (USB), Definição de Classe de Dispositivo para Dispositivos de Interface Humana (HID), Especificação de Firmware, Versão 1.11, datado de 27 de junho de 2001. O dispositivo HID 108 pode ser um mouse, um teclado, um dispositivo de entrada tipo bola giratória, uma prancheta, e assim por diante. A figura 1 também mostra um outro dispositivo periférico de entrada 109 ligado ao computador local 100. No exemplo mostrado, o dispositivo periférico de entrada 109 pode ser um leitor de cartão inteligente para aceitar cartões inteligentes que contenham informações de segurança para permitir o usuário acessar o computador local 100 e um dos múltiplos computadores remotos 102. Um cartão inteligente contém um dispositivo de armazenagem para armazenar as informações de segurança do usuário. Quando o cartão inteligente é inserido no leitor de cartão inteligente 109, o leitor de cartão inteligente 109 recupera as informações de segurança do cartão inteligente e provê as informações de segurança para o computador local 100. Por sua vez, o computador local 100 provê as informações de segurança para um selecionado dos computadores remotos 102 que o usuário deseja acessar para o selecionado computador remoto 102 para determinar se o usuário tem acesso permitido.
De acordo com algumas configurações, o leitor de cartão inteligente 109 é usável com múltiplos computadores remotos 102, tal que o leitor de cartão inteligente 109 não tenha que ser duplicado - um leitor de cartão inteligente para cada correspondente computador remoto 102. A capacidade para usar um leitor de cartão inteligente 109 com múltiplos computadores remotos 102 reforça a eficiência e evita a duplicação de hardware. Deste modo, é possível para um leitor de cartão inteligente 109 ser conectado concorrentemente com múltiplos computadores remotos 102. Cada tal computador remoto 102 vê uma imagem virtual do leitor de cartão inteligente 109.
Os computadores remotos 102 incluem respectivos dispositivos virtuais 150 para emular o leitor de cartão inteligente 109. O driver virtual 150 interage com um driver de dispositivo leitor de cartão inteligente 152 em cada correspondente computador remoto 102. Uma aplicação de software de cartão inteligente 154 é provida em cada computador remoto 102 para prover as tarefas de segurança associadas com o leitor de cartão inteligente 109. Por exemplo, a aplicação de software de cartão inteligente 154 pode enviar pedidos de consulta para o driver de dispositivo de leitor de cartão inteligente 152 para obter quaisquer dados que possam ter sido lidos pelo leitor de cartão inteligente 109 a partir de um cartão inteligente. Os pedidos de consulta são passados pelo driver de dispositivo de leitor de cartão inteligente 152 para o driver virtual 150, que por sua vez envia os pedidos de consulta através da rede 102 para o computador local 100 através de vários componentes interpostos (descritos adicionalmente abaixo).
Emulando o leitor de cartão inteligente 109 usando o driver virtual 150 em cada computador remoto 102, um leitor de cartão inteligente real não tem que ser provido no computador remoto. Um ou múltiplos computadores remotos 102 podem ser conectados ao computador local 100 a qualquer dado instante. Assim, um leitor de cartão inteligente 109 pode ser produzido para aparecer como múltiplos dispositivos virtuais nos computadores remotos que são conectados ao computador local 100. É notado que um ou mais outros computadores remotos 102 podem não estar conectados ao computador local naquele dado instante, e então as aplicações de cartão inteligente 154 em tais outros computadores remotos 102 não serão capazes de acessar o leitor de cartão inteligente 109 ligado ao computador local 100. Como um resultado, os drivers virtuais 150 em tais outros computadores remotos 102 terão que emular a presença do leitor de cartão inteligente 109 apesar de tais outros computadores remotos não estarem conectados ao computador local 100. A emulação da presença do leitor de cartão inteligente 109 envolve o driver virtual 150 enviar respostas de retorno a pedidos a partir das aplicações de cartão inteligente 154 não obstante o leitor de cartão inteligente 109 não estar correntemente acessível. As respostas enviadas pelo driver virtual 150 podem ser respostas indicando que nenhum dado novo foi recebido pelo leitor de cartão inteligente 109.
Alternativamente, ao invés de enviar pedidos de consulta a partir da aplicação de cartão inteligente 154, a aplicação de cartão inteligente 154 pode esperar por um evento de entrada a partir do leitor de cartão inteligente 109, onde o evento de entrada indica que um cartão inteligente foi inserido no leitor de cartão inteligente 109.
As informações de segurança recebidas do leitor de cartão inteligente 109 pela aplicação de cartão inteligente 154 são comparadas com informações de segurança em um banco de dados de informações de segurança 156 armazenado em uma armazenagem 132 do computador remoto 102. O banco de dados de informações de segurança 156 armazena informações de segurança para múltiplos usuários que são autorizados a acessar o computador remoto 102.
Em outras implementações, ao invés de um leitor de cartão inteligente, o dispositivo periférico de entrada 109 pode ser um outro tipo de dispositivo de segurança de entrada (p.ex., teclado para alimentar um código de segurança, etc.) para controlar acesso de usuário do computador local 100 e computadores remotos 102. Em ainda outras implementações, o dispositivo periférico de entrada 109 pode ser outros tipos de dispositivos periféricos, tais como um fone de ouvido USB. O usuário pode desejar que uma imagem do fone de ouvido USB apareça em cada um de dois computadores remotos. O computador remoto 100 inclui um driver de dispositivo coalescente 160 que interage com o leitor de cartão inteligente 109. O driver de dispositivo de “adesão” 160 é um driver de dispositivo que é capaz de seletivamente estabelecer diferentes sessões com diferentes selecionados dos computadores remotos 102 para enviar dados de cartão inteligente para o selecionado computador remoto 102. Por exemplo, um usuário pode desejar se conectar com diferentes computadores remotos 102. O driver de dispositivo coalescente 160 é capaz de trocar dados de informações (dados e informações de controle) com um respectivo driver de dispositivo de cartão inteligente 152 no selecionado computador remoto 102. O driver de dispositivo coalescente 160 permite a interação entre a aplicação de cartão inteligente 154 (no computador remoto conectado 102) e o leitor de cartão inteligente 109 (no computador local 100) através da rede 104. Em adição, quando o computador local 100 é conectado a múltiplos computadores remotos 102, o driver de dispositivo coalescente 160 é capaz de coalescer múltiplas chamadas a partir dos computadores remotos. Por exemplo, se o dispositivo periférico de entrada 109 for um fone de ouvido USB, o driver coalescente 109 pode misturar dados de áudio de múltiplos computadores remotos em uma corrente para saída no fone de ouvido USB. Por outro lado, se o dispositivo periférico de entrada 109 for um leitor de cartão inteligente, então o driver coalescente 109 pode executar funções mais inteligentes, incluindo prover memória cache para armazenar certas informações. A rede de dados 104 pode comunicar dados de acordo com o Protocolo Internet (IP). O dispositivo HID 108 e o leitor de cartão inteligente 109 podem ser ligados ao computador local 100 através de link(s) de Barramento Serial Universal (USB) 110 (link USB por fio ou sem fio) a um controlador USB 112 no computador local 100. Na implementação descrita acima, quaisquer dados relacionados com o dispositivo HID 108 ou leitor de cartão inteligente 109 estão na forma de dados USB que são comunicados em pacotes IP transferidos através da rede de dados 104 para o computador remoto 102. Embora referência seja feita a "USB" e "IP" nas configurações descritas, é notado que técnicas de acordo com algumas configurações podem ser aplicáveis aos pacotes de dados de acordo com outros tipos de protocolos. O computador local 100 é referido como um "sistema receptor", e cada computador remoto 102 é referido como um "sistema remetente". Como tal, o computador local 100 inclui software receptor 114, e o computador remoto 102 inclui software remetente 116. O software remetente 116 é usado para enviar dados de vídeo de desktop e dados de áudio do computador remoto 102 (sistema remetente) através da rede de dados 104 para o software receptor 114 no computador local 100 (sistema receptor), onde os dados de vídeo de desktop são exibidos no dispositivo de display 106, e os dados de áudio são emitidos pelo dispositivo de saída de áudio 107. Note que os dados de vídeo e dados de áudio de desktop enviados pelo software remetente 116 são dados de vídeo de renderização e dados de áudio de renderização reais que podem ser renderizados por um respectivo dispositivo de display e dispositivo de saída de áudio. Os dados de vídeo de renderização e dados de áudio de renderização são diferentes dos dados contidos em arquivos de vídeo fonte (p.ex., arquivos MPEG) ou arquivos de áudio fonte que têm que ser convertidos para um formato que possa ser renderizado por respectivos dispositivos de saída. O software remetente 116 no computador remoto 102 recebe dados de vídeo de um subsistema de vídeo 136 no computador remoto 102. Os dados de vídeo do subsistema de vídeo 136 são exibíveis por um dispositivo de display ligado ao computador remoto 102. O software remetente 116 então aplica compressão aos dados de vídeo que são enviados para o software receptor 114, o qual então executa a descompressão dos dados de vídeo antes de exibir os dados de vídeo no dispositivo de display 106. Similarmente, o software remetente 116 recebe dados de áudio de um subsistema de áudio 137 no computador remoto 102. Os dados de áudio do subsistema de áudio 137 podem ser emitidos por um dispositivo de saída de áudio ligado ao computador remoto 102. O software remetente 116 também aplica compressão aos dados de áudio que são enviados para o software receptor 114, que pode então executar a descompressão dos dados de áudio antes de emitir os dados de áudio no dispositivo de saída de áudio 107.
Note que um dispositivo de display real ou dispositivo de saída de áudio não tem que estar conectado ao subsistema de vídeo 136 ou subsistema de áudio 137 do computador remoto 102 em algumas implementações; entretanto, em outras implementações, um dispositivo de display ou dispositivo de saída de áudio pode estar conectado ao computador remoto 102.
Em algumas configurações, o software remetente 116 e software receptor 114 são de acordo com o protocolo de Software Remoto de Gráficos (RGS) da Hewlett-Packard Co. O RGS é projetado para tirar vantagem completa do computador e recursos gráficos de um computador remoto para fornecer acesso remoto interativo a partir de um computador local. Em uma configuração diferente o software remetente 116 e software receptor 114 podem operar de acordo com o Protocolo de Desktop Remoto (RDP) da Microsoft Corporation, para prover capacidades remotas de exibição e alimentação através de conexões de rede. Em configurações adicionais, o software remetente 116 e o software receptor 114 podem ser de acordo com outras tecnologias. O driver de dispositivo coalescente 160 interage com o controlador USB 112 para executar operações com relação ao leitor de cartão inteligente 109. Em adição, um driver de dispositivo 118 no computador local 100 interage com o controlador USB 112 para executar operações com relação ao dispositivo HID 108. Por exemplo, o driver de dispositivo 118 pode receber indicações de mudança do dispositivo HID 108 (tal como quando um usuário moveu um mouse, atuou um teclado, moveu um dispositivo de entrada tipo bola giratória, moveu um dispositivo de entrada em relação a uma prancheta, e assim por diante).
Os dados enviados entre o computador local 100 e o computador remoto 102 (incluindo dados de dispositivo HID e dados de cartão inteligente) são providos através de interfaces de rede 120 e 122 no computador local 100 e computador remoto 102, respectivamente. Cada uma das interfaces de rede 120 e 122 inclui um controlador de interface de rede físico bem como uma pilha de protocolos, incluindo uma pilha de protocolos IP. A interface de rede 120 envia dados USB (dados de cartão inteligente e/ou dados HID) em respectivos pacotes IP através da rede de dados 104 para o computador remoto 102. Os pacotes IP são recebidos por uma interface de rede 122 no computador remoto 102, que extrai os dados de cartão inteligente e/ou dados HID dos pacotes IP.
Os dados de cartão inteligente recebidos do software receptor 114 no software remetente 116 são fornecidos para o driver virtual 150, que por sua vez envia os dados de cartão inteligente para o driver de dispositivo leitor de cartão inteligente 152 para passar para a aplicação de cartão inteligente 154.
Os dados de dispositivo HID recebidos no software remetente 116 são passados para um interveniente virtual 124. O interveniente virtual 124 intercepta chamadas de um driver de dispositivo HID 126 no computador remoto 102 que são intencionados para o dispositivo HID 108 localizado remotamente ligado ao computador local 100. O interveniente virtual 124 impede chamadas para dispositivos periféricos localizados remotamente de alcançar drivers de dispositivo de nível mais baixo (kernel) do sistema operacional no computador remoto 102. Outros drivers de dispositivos (não mostrados) em cada computador remoto 102 podem criar dados de áudio e dados de vídeo que são providos para o subsistema de áudio 137 e subsistema de vídeo 136, respectivamente, para serem renderizados por respectivos dispositivos de saída, tais como respectivos dispositivos de saída conectados ao computador local 100 e ao computador remoto 102. O computador remoto 102 também inclui uma ou mais aplicações de software 134. Uma aplicação de software 134 pode receber e processar informações atualizadas a partir do dispositivo HID 108. O computador local 100 inclui uma ou mais unidades de processamento central (CPUs) 138, que estão conectadas à memória 139. Os módulos de software do computador local 100, tal como o software receptor 114 e drivers de dispositivo 118, são executáveis na(s) CPU(s) 138. O computador remoto 102 inclui similarmente uma ou mais CPUs 140 conectadas à armazenagem 132. Os módulos de software do computador remoto 102, tais como a(s) aplicação(ões) de software 134, driver de dispositivo 126, interveniente virtual 124, driver virtual 150, driver de dispositivo leitor de cartão inteligente 152, aplicação de cartão inteligente 154, e software remetente 116 são executáveis na(s) CPU(s) 140. A figura 2 ilustra um procedimento executado por um computador local 100. O computador local 100 estabelece (em 202) uma conexão (ou sessão) com um primeiro computador remoto 102. O estabelecimento de tal conexão envolve o software receptor 114 estabelecer a conexão com o respectivo software remetente 116 do primeiro computador remoto 102.
Após a conexão com o primeiro computador remoto 102 ter sido estabelecida, o driver de dispositivo coalescente 160 no computador local 100 recebe (em 204) informações a partir do leitor de cartão inteligente 109, tal como uma indicação que um cartão inteligente foi inserido no leitor de cartão inteligente 109. As informações recebidas (p.ex., credenciais de segurança do usuário) podem ser colocadas em cache pelo driver coalescente 160 (para uso futuro). O driver de dispositivo coalescente 160 então interage (em 206) com a aplicação de cartão inteligente 154 do primeiro computador remoto 102 para executar tarefas com relação ao leitor de cartão inteligente 109.
Posteriormente, o computador local 100 estabelece (em 208) uma outra conexão (ou sessão) com um segundo computador remoto 102. Após a conexão com o segundo computador remoto 102, o software coalescente 160 está ciente que ele permanece conectado ao leitor de cartão inteligente 109. O software coalescente 160 envia (em 210) um evento emulado de plugar de cartão ao segundo computador remoto 102 para indicar ao segundo computador remoto que um cartão inteligente foi recebido no leitor de cartão inteligente 109. Note que o driver coalescente 160 colocou em cache a credencial de segurança do usuário, a qual pode ser provida para o segundo computador remoto 102 mediante pedido. O driver de dispositivo coalescente 160 então interage (em 212) com a aplicação de cartão inteligente 154 do segundo computador remoto 102 para executar tarefas com relação ao leitor de cartão inteligente 109.
Se um cartão inteligente é posteriormente removido do leitor de cartão inteligente 109, o driver coalescente 160 é capaz de enviar um evento de remoção de cartão inteligente para todos os computadores remotos conectados. A figura 3 ilustra um procedimento de acordo com uma configuração que é executada no computador remoto 102. Se o driver virtual 150 detectar que o computador remoto 102 está conectado ao computador local 100, então o driver virtual 150 permite (em 302) a interação entre a aplicação de cartão inteligente 154 no computador remoto 102 e o leitor de cartão inteligente 109 ligado ao computador local 100.
Entretanto, se o driver virtual 150 detectar que o computador remoto 102 não está conectado ao computador local 100, então o driver virtual 150 executa (em 304) a emulação do leitor de cartão inteligente para emular a presença do leitor de cartão inteligente embora o leitor de cartão inteligente não esteja conectado. Em seu modo de emulação, o driver virtual 150 lida com pedidos da aplicação de cartão inteligente 154 e provê respostas para tais pedidos. Note que em algumas outras instâncias, o driver virtual 150 pode escolher parar de emular o leitor de cartão inteligente se o leitor de cartão inteligente não estiver conectado.
Instruções do software descrito acima (incluindo o software receptor 114, o driver coalescente 160, o driver de dispositivo 118, software remetente 116, driver virtual 150, driver de dispositivo leitor de cartão inteligente, interveniente virtual 124, e driver de dispositivo 126 da figura 1) são carregadas para execução em um processador (tal como uma ou mais CPUs 139, 140 na figura 1) . O processador inclui microprocessadores, microcontroladores, módulos ou subsistemas de processador (incluindo um ou mais microprocessadores ou microcontroladores), ou outros dispositivos de controle ou computação. Um "processador" pode se referir a um único componente ou a vários componentes (p.ex., uma CPU ou múltiplas CPUs).
Dados e instruções (do software) são armazenados em respectivos dispositivos de armazenagem que são implementados como um ou mais mídias de armazenagem lida por computador ou usável por computador. A mídia de armazenagem inclui diferentes formas de memória incluindo dispositivos de memória de semicondutor tais como memórias de acesso randômico dinâmicas ou estáticas (DRAMs ou SRAMs), memórias só de leitura apagáveis e programáveis (EPROMs), memórias só de leitura apagáveis e programáveis eletricamente (EEPROMs) e memórias flash; discos magnéticos tais como discos flexíveis e removíveis, outras mídias magnéticas tais como fita; e mídia ótica tais como disco compacto (CDs) ou discos de vídeo digital (DVDs) . Note que as instruções do software discutido acima podem ser providas em meio de armazenagem lido por computador ou usável por computador, ou alternativamente, podem ser providas em múltiplas mídias de armazenagem lidas por computador ou usáveis por computador distribuídas em um sistema grande tendo possivelmente vários nós. Tais meios ou mídias de armazenagem lidas por computador ou usáveis por computador são consideradas a fazer parte de um artigo (ou artigo fabricado). Um artigo ou artigo fabricado pode se referir a qualquer componente único fabricado ou múltiplos componentes fabricados.
Na descrição anterior, numerosos detalhes estão registrados para prover uma compreensão da presente invenção. Entretanto, será entendido por aqueles experientes na técnica que a presente invenção pode ser praticada sem estes detalhes. Embora a invenção tenha sido divulgada com relação a um número limitado de configurações, aqueles na técnica apreciarão numerosas modificações e variações a partir delas. É intencionado que as reivindicações anexas cubram tais modificações e variações à medida que caiam dentro do verdadeiro espírito e escopo da invenção.
REIVINDICAÇÕES

Claims (15)

1. Método para uso em um arranjo de rede, incluindo um computador receptor (100) conectado através de uma rede (104) a vários computadores remetente (102), caracterizado pelo fato de compreender: - estabelecer uma primeira sessão entre o computador receptor (100) e um primeiro dos vários computadores remetentes (102), sendo que a primeira sessão envolve prover dados de um dispositivo periférico (109) ligado ao computador receptor (100) para o primeiro computador remetente (102), sendo que os dados do dispositivo periférico (109) são providos para um primeiro driver de dispositivo (152) do dispositivo periférico (109) no primeiro computador remetente (102); e - estabelecer uma segunda sessão entre o computador receptor (100) e um segundo dos vários computadores remetentes (102), sendo que a segunda sessão envolve prover os dados do dispositivo periférico (109) ligado ao computador receptor (100) para o segundo computador remetente (102), sendo que os dados do dispositivo periférico (109) são providos para um segundo driver de dispositivo (152) do dispositivo periférico (109) no segundo computador remetente (102), sendo que o estabelecimento da primeira e segunda sessões compreender estabelecer a primeira e segunda sessões nas quais comunicação ocorre entre o computador receptor (100) e drivers virtuais (150) no primeiro e segundo computadores remetentes (102), sendo que os drivers virtuais (150) são para emular o dispositivo periférico (109) nos correspondentes primeiro e segundo computadores remetentes (102).
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de o primeiro e segundo drivers de dispositivo (152) serem para interagir com os respectivos drivers virtuais (150) no primeiro e segundo computadores remetentes (102), sendo que o driver virtual (150) no primeiro computador remetente (102) provê os dados do dispositivo periférico (109) para o primeiro driver de dispositivo (152), e sendo que o driver virtual (150) no segundo computador remetente (102) provê os dados do dispositivo periférico (109) para o segundo driver de dispositivo (152).
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de o estabelecimento da primeira e segunda sessões compreender estabelecer a primeira e segunda sessões nas quais comunicação ocorre entre um driver coalescente (160) no computador receptor (100) e correspondentes primeiro e segundo computadores remetentes (102), sendo que o driver coalescente (160) é capaz de se comunicar seletivamente com diferentes do primeiro e segundo computadores remetentes (102).
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de compreender adicionalmente: - o computador receptor (100) acessar remotamente um recurso em cada um dos vários computadores remetentes (102) através da rede (104); e - o computador receptor (100) enviar entrada de usuário recebida em um dispositivo de entrada de usuário (108) ligado ao computador receptor (100) para um driver de dispositivo de entrada de usuário (126) em um dos vários computadores remetentes (102).
5. Método, de acordo com a reivindicação 4, caracterizado pelo fato de acessar remotamente o recurso compreender acessar remotamente um recurso de vídeo no qual dados de vídeo de renderização são enviados a partir de um dos computadores remotos (1020 para o computador receptor (100).
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de prover os dados do dispositivo periférico (109) na primeira e segunda sessões compreender prover dados de um dispositivo de segurança de entrada.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de prover os dados do dispositivo periférico (109) na primeira e segunda sessões compreender prover dados de um leitor de cartão inteligente.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de o fornecimento dos dados do dispositivo periférico (109) na primeira e segunda sessões compreender prover dados de um dispositivo de Barramento Serial Universal (USB).
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de prover os dados do dispositivo periférico (109) ao primeiro computador remetente (102) compreender prover os dados do dispositivo periférico (109) para primeiras instruções de remetente legíveis por computador (116) no primeiro computador remetente (102), as primeiras instruções de remetente legíveis por computador (116) distintas do primeiro driver de dispositivo (152) e configuradas para enviar os dados do dispositivo periférico (109) para o primeiro driver de dispositivo (152), e sendo que prover os dados do dispositivo periférico (109) para o segundo computador remetente (102) compreende prover os dados do dispositivo periférico (109) para segundas instruções de remetente legíveis por computador (116) no segundo computador remetente (102), as segundas instruções de remetente legíveis por computador (116) distintas do segundo driver de dispositivo (152) e configuradas para enviar os dados do dispositivo periférico (109) para o segundo driver de dispositivo (152).
10. Computador remetente (102), caracterizado pelo fato de compreender: - um processador (140); - um driver virtual (150) executável no processador (140) para emular um dispositivo periférico (109) conectado a um computador receptor (100) conectado ao computador remetente (102) através de uma rede (104); e - instruções de remetente legíveis por computador (116) executáveis no processador (140) para estabelecer seletivamente uma conexão entre o computador remetente (102) e o computador receptor (100), sendo que: - se o computador remetente (102) estiver conectado ao computador receptor, o driver virtual (150) permite interação entre um recurso de computação no computador remetente (102) e um dispositivo periférico (109) ligado ao computador receptor (100); e - se o computador remetente (102) não estiver conectado ao computador receptor (100), o driver virtual (150) se comporta como um emulador do dispositivo periférico (109) ligado ao computador receptor (100) para emular a presença do dispositivo periférico (109) apesar de o dispositivo periférico (109) não estar acessível.
11. Computador remetente (102), de acordo com a reivindicação 10, caracterizado pelo fato de o driver virtual (150) ser para emular um dispositivo de segurança de entrada.
12. Computador remetente (102), de acordo com a reivindicação 10, caracterizado pelo fato de compreender adicionalmente um driver de dispositivo (126) para receber uma atualização com relação a um dispositivo de interface de usuário (108) ligado ao computador receptor (100), e um subsistema de vídeo (136) para armazenar dados de vídeo de renderização para saída em um dispositivo de display (106), sendo que as instruções de remetente legíveis por computador (116) são executáveis para enviar os dados de vídeo de renderização para o computador receptor (100) para exibição no computador receptor (100).
13. Computador remetente (102), de acordo com a reivindicação 10, caracterizado pelo fato de compreender adicionalmente um driver de dispositivo (152) do dispositivo periférico (109) ligado ao computador receptor (100), sendo que o driver virtual (150) é para receber dados do dispositivo periférico (109) a partir do computador receptor (100), e para fornecer os dados do dispositivo periférico (109) para o driver de dispositivo (152), e sendo que o driver de dispositivo (152) é para encaminhar os dados do dispositivo periférico (109) para o recurso de computação (134) no computador remetente (102) .
14. Meio de armazenagem legível por computador não-transitório, caracterizado pelo fato de compreender instruções que quando executadas fazem um computador receptor (100): - estabelecer seletivamente, através de uma rede (104), sessões com diferentes de vários computadores remetentes (102) ; - enviar dados de um dispositivo periférico (109) de entrada, a partir de um driver de dispositivo coalescente (160) no computador receptor (100), para um primeiro dos vários computadores remetentes (102) quando uma sessão for estabelecida entre o computador receptor (100) e o primeiro computador remetente (102), sendo que o dispositivo periférico (109) de entrada está ligado ao computador receptor (100), e sendo que os dados do dispositivo periférico (109) de entrada são providos para um primeiro driver virtual (150) para comunicação para um primeiro driver de dispositivo (152) do dispositivo periférico (109) de entrada no primeiro computador remetente (102); e - enviar os dados do dispositivo periférico (109) de entrada, a partir do driver de dispositivo coalescente (160), para um segundo dos vários computadores remetentes (102) quando uma sessão for estabelecida entre o computador receptor (100) e o segundo computador remetente (102), sendo que os dados do dispositivo periférico (109) de entrada são providos para um segundo driver virtual (150) para comunicação para um segundo driver de dispositivo (152) do dispositivo periférico (109) de entrada no segundo computador remetente (102), sendo que os primeiro e segundo drivers virtuais (150) são para emular, nos correspondentes primeiro e segundo computadores remetentes (102), o dispositivo periférico (109) de entrada ligado ao computador receptor (100).
15. Meio de armazenagem legível por computador não-transitório, de acordo com a reivindicação 14, caracterizado pelo fato de o dispositivo periférico (109) de entrada ser ligado ao computador receptor (100) por um link de Barramento Serial Universal.
BRPI0920478-4A 2009-01-29 2009-01-29 Método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório BRPI0920478B1 (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2009/032377 WO2010087829A1 (en) 2009-01-29 2009-01-29 Selectively communicating data of a peripheral device to plural sending computers

Publications (2)

Publication Number Publication Date
BRPI0920478A2 BRPI0920478A2 (pt) 2015-12-22
BRPI0920478B1 true BRPI0920478B1 (pt) 2020-03-17

Family

ID=42395878

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0920478-4A BRPI0920478B1 (pt) 2009-01-29 2009-01-29 Método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório

Country Status (6)

Country Link
US (1) US8762544B2 (pt)
CN (1) CN102301360B (pt)
BR (1) BRPI0920478B1 (pt)
DE (1) DE112009004075T5 (pt)
GB (1) GB2479103B (pt)
WO (1) WO2010087829A1 (pt)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001553B2 (en) * 2007-06-25 2011-08-16 Microsoft Corporation Aggregate computer system via coupling of computing machines
TW201033810A (en) * 2009-03-03 2010-09-16 Asustek Comp Inc System for sharing and method for managing hardware apparatus
CN102349061B (zh) * 2009-03-12 2014-04-16 惠普开发有限公司 用于对用户进行认证的方法和系统
EP2422506B1 (en) * 2009-04-24 2017-03-22 GetGo, Inc. Methods and systems for preventing a local display device from displaying data generated by a remote computing device
US9092608B2 (en) * 2010-12-14 2015-07-28 Nxp B.V. Random-ID function for smartcards
US8781119B2 (en) 2010-12-14 2014-07-15 Nxp, B.V. User-controlled Random-ID generation function for smartcards
KR101251250B1 (ko) * 2011-07-01 2013-04-08 알서포트 주식회사 원격 디바이스 드라이버를 이용한 원격 제어 시스템 및 원격 디바이스 드라이버를 이용한 원격 제어 방법
CN103135879B (zh) * 2011-11-28 2016-07-06 联想(北京)有限公司 显示方法、显示装置和电子设备
US9268517B2 (en) * 2011-12-07 2016-02-23 Adobe Systems Incorporated Methods and systems for establishing, hosting and managing a screen sharing session involving a virtual environment
US8928727B1 (en) * 2012-09-06 2015-01-06 Google Inc. Sharing input device data in a multiway video conference provided in an online social network
EP2950229B1 (en) * 2014-05-28 2018-09-12 Nxp B.V. Method for facilitating transactions, computer program product and mobile device
WO2016084577A1 (ja) * 2014-11-26 2016-06-02 株式会社Nttドコモ 情報通信端末、周辺機器連携方法及びプログラム
US10433362B2 (en) 2015-01-30 2019-10-01 Hewlett-Packard Development Company, L.P. Computer system to continuously maintain a user session when a display device is mechanically connected and disconnected
US10757748B2 (en) 2017-07-19 2020-08-25 Hewlett-Packard Development Company, L.P. Device and display device having attached mode and detached mode
EP4024242B1 (en) * 2020-12-29 2023-08-30 HID Global GmbH Reader device and method of configuring the same

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327613B1 (en) * 1998-01-12 2001-12-04 Adaptec, Inc. Method and apparatus for sharing peripheral devices over a network
US6801952B2 (en) * 1998-08-31 2004-10-05 Nortel Networks Limited Method and devices for providing network services from several servers
US6895588B1 (en) * 1999-04-09 2005-05-17 Sun Microsystems, Inc. Remote device access over a network
US7337232B2 (en) * 2002-03-28 2008-02-26 Sony Corporation Method and system for providing and controlling sub-burst data transfers
US7039715B2 (en) 2002-05-21 2006-05-02 Microsoft Corporation Methods and systems for a receiver to allocate bandwidth among incoming communications flows
JP3632695B2 (ja) * 2003-05-06 2005-03-23 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
US7613767B2 (en) * 2003-07-11 2009-11-03 Microsoft Corporation Resolving a distributed topology to stream data
US8762540B2 (en) * 2004-09-01 2014-06-24 Hewlett-Packard Development Company, L.P. Managing multiple remote computing sessions displayed on a client device
US7609280B2 (en) * 2005-09-07 2009-10-27 Microsoft Corporation High level graphics stream
US7941508B2 (en) * 2006-09-29 2011-05-10 Hewlett-Packard Development Company, L.P. Associating multiple devices with remote computers
US20080320500A1 (en) * 2007-06-25 2008-12-25 Microsoft Corporation Remote human interface device in an aggregate computer system

Also Published As

Publication number Publication date
CN102301360B (zh) 2015-08-05
DE112009004075T5 (de) 2013-02-07
GB2479103A (en) 2011-09-28
BRPI0920478A2 (pt) 2015-12-22
WO2010087829A1 (en) 2010-08-05
CN102301360A (zh) 2011-12-28
GB201112677D0 (en) 2011-09-07
GB2479103B (en) 2014-01-01
US8762544B2 (en) 2014-06-24
US20110283002A1 (en) 2011-11-17

Similar Documents

Publication Publication Date Title
BRPI0920478B1 (pt) Método para uso em um arranjo de rede, computador remetente e meio de armazenagem legível por computador não-transitório
US9578034B2 (en) Trusted peripheral device for a host in a shared electronic environment
JP6543714B2 (ja) 周辺デバイス、周辺デバイスによりエミュレートするための方法
US10523585B2 (en) System on a chip comprising multiple compute sub-systems
US10057364B2 (en) Method and apparatus for remotely running application program
JP6426846B2 (ja) 多数のコンピュータサブシステム用の再構成可能リソースを備えるシステムオンチップ
US8924592B2 (en) Synchronization of server-side cookies with client-side cookies
US9292248B2 (en) Span out load balancing model
US9448830B2 (en) Service bridges
US10248607B1 (en) Dynamic interface port assignment for communication transaction
WO2017054454A1 (zh) 对usb设备的访问方法、装置、终端、服务器及系统
BRPI0708338A2 (pt) migração de uma máquina virtual que possui um recurso tal como um dispositivo de hardware
JP6445710B2 (ja) マルチモード・システム・オン・チップ
CN106648838B (zh) 一种资源池管理的配置方法及装置
US9588921B2 (en) System on a chip comprising an I/O steering engine
US11489817B2 (en) Computing system with gateway data transfer based upon device data flow characteristics and related methods
WO2024011856A1 (zh) 元数据获取方法、装置、设备及存储介质
US10216673B2 (en) USB device firmware sanitization
KR101729681B1 (ko) 보안 단말의 데이터 보안을 위한 물리 레벨 기반의 보안 시스템 및 이를 이용한 방법
US10146499B2 (en) System and method to redirect display-port audio playback devices in a remote desktop protocol session
EP4195585A1 (en) Cloud key access mechanism
US20220103557A1 (en) Mechanism for managing services to network endpoint devices
US10819783B1 (en) Managing a data packet for an operating system associated with a multi-node system
CN116614241A (zh) 一种认证方法,计算装置和实例管理装置
CN108337240A (zh) 一种用于保密性工作的办公方法、终端及系统

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06T Formal requirements before examination [chapter 6.20 patent gazette]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B25G Requested change of headquarter approved

Owner name: HEWLETT - PACKARD DEVELOPMENT COMPANY, L.P. (US)

B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 17/03/2020, OBSERVADAS AS CONDICOES LEGAIS.

B21F Lapse acc. art. 78, item iv - on non-payment of the annual fees in time

Free format text: REFERENTE A 15A ANUIDADE.

B24J Lapse because of non-payment of annual fees (definitively: art 78 iv lpi, resolution 113/2013 art. 12)

Free format text: EM VIRTUDE DA EXTINCAO PUBLICADA NA RPI 2759 DE 21-11-2023 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDA A EXTINCAO DA PATENTE E SEUS CERTIFICADOS, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013.