BRPI0711565A2 - métodos e sistemas para comunicação n-para-n de largura de banda em um sistema distribuìdo - Google Patents
métodos e sistemas para comunicação n-para-n de largura de banda em um sistema distribuìdo Download PDFInfo
- Publication number
- BRPI0711565A2 BRPI0711565A2 BRPI0711565-2A BRPI0711565A BRPI0711565A2 BR PI0711565 A2 BRPI0711565 A2 BR PI0711565A2 BR PI0711565 A BRPI0711565 A BR PI0711565A BR PI0711565 A2 BRPI0711565 A2 BR PI0711565A2
- Authority
- BR
- Brazil
- Prior art keywords
- participant
- communication
- server
- payload data
- participants
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000003044 adaptive effect Effects 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 description 19
- 230000008859 change Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 101000666896 Homo sapiens V-type immunoglobulin domain-containing suppressor of T-cell activation Proteins 0.000 description 2
- 102100038282 V-type immunoglobulin domain-containing suppressor of T-cell activation Human genes 0.000 description 2
- IJJVMEJXYNJXOJ-UHFFFAOYSA-N fluquinconazole Chemical compound C=1C=C(Cl)C=C(Cl)C=1N1C(=O)C2=CC(F)=CC=C2N=C1N1C=NC=N1 IJJVMEJXYNJXOJ-UHFFFAOYSA-N 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 101100521334 Mus musculus Prom1 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1886—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
- H04L65/4038—Arrangements for multi-party communication, e.g. for conferences with floor control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
MéTODOS E SISTEMAS PARA COMUNICAçãO N-PARA-N DE LARGURA DE BANDA EM UM SISTEMA DISTRIBUìDO. A presente invenção refere-se a métodos e a sistemas em dispositivos computacionais adaptativos de largura de banda para comunicação de dispositivos computacionais. A comunicação adaptativa de largura de banda inclui o recebimento de uma comunicação proveniente de um primeiro participante, o armazenamento dos dados de carga útil da comunicação em um elemento de memória de canal associados ao primeiro participante, e a transmissão dos dados de carga útil a um segundo participante.
Description
Relatório Descritivo da Patente de Invenção para "MÉTODOS E SISTEMAS PARA COMUNICAÇÃO N-PARA-N DE LARGURA DE BANDA EM UM SISTEMA DISTRIBUÍDO".
Referência Cruzada aos Pedidos Relacionados
O presente pedido reivindica a prioridade e o benefício do Pedi- do de Patente co-pendente com número de série U.S. 11/381.702, deposita- do em 04 de maio de 2006, estando a descrição do mesmo aqui incorporada em sua totalidade a título de referência.
Campo da Invenção
A presente invenção refere-se, em geral, a um mecanismo de comunicação destinado ao uso entre dispositivos computacionais. De forma mais específica, a invenção se refere a um mecanismo de comunicação des- tinado ao uso em um sistema computacional distribuído. Antecedentes da Invenção
Em um ambiente computacional distribuído, é difícil oferecer comunicações diretas entre grandes números de dispositivos computacio- nais em que cada dispositivo computacional se comunica com outro disposi- tivo computacional. Por exemplo, uma solução consiste em usar canais de transmissão múltipla 1-para-N. Ou seja, cada dispositivo computacional (por exemplo, um participante em um encontro online ou um seminário baseado na web) cria um canal de transmissão múltipla e cada outro dispositivo com- putacional se associa a cada outro canal do dispositivo computacional. Em tal solução, um sistema com N dispositivos computacionais requer N canais e N2 subscrições de canal. Como resultado, surge uma necessidade em manter o estado O(N2). Essa solução modifica deficientemente um grande número de dispositivos computacionais.
Sumário da Invenção
Como uma visão geral de alto nível, as presentes invenções evi- tam a sobrecarga necessária para a solução N2. Em geral, a invenção apre- senta um único canal compartilhado ao qual cada dispositivo computacional se associa. Como resultado, necessita-se de apenas N subscrições e estado O(N) ao invés de N2 subscrições e estado 0(N2) necessários quando se utili- za N canais de transmissão múltipla 1-para-N. Cada um dos dispositivos computacionais publica seu estado atual no canal compartilhado sob a forma de um conjunto de pacotes. Cada dispositivo computacional recebe atualiza- ções dos estados de outros dispositivos computacionais.
Da mesma forma, em alguns casos, a invenção apresenta a ca- pacidade de propagar dados de maneira adaptativa de largura de banda. Isso permite que os dispositivos computacionais, tanto com velocidades de conexão lentas (por exemplo, 56K) como velocidades de conexão rápidas (por exemplo, T1 e banda larga), participem no sistema sem um interferir no outro.
Em um aspecto, a invenção apresenta um método para comuni- cação adaptativa de largura de banda entre uma pluralidade de participantes em um sistema distribuído. O método inclui o recebimento de uma comuni- cação proveniente de um primeiro participante, o armazenamento dos dados de carga útil em um elemento de memória de canal, e a transmissão dos dados de carga útil a um segundo participante. A comunicação inclui meta- dados e dados de carga útil. O elemento de memória de canal inclui uma pluralidade de locações de memória. Seleciona-se uma pluralidade de loca- ções de memória através do uso de metadados e a associa ao primeiro par- ticipante.
Em uma modalidade, a comunicação inclui um identificador de participantes e dados de carga útil. A comunicação pode representar o esta- do do participante e incluir metadados e dados de carga útil.
Em outra modalidade, o armazenamento inclui armazenar os dados de carga útil em uma pluralidade de locações de vetor. Uma da plura- lidade de locações de vetor é selecionada utilizando-se os metadados e as- sociada ao primeiro participante.
Em outras modalidades, a transmissão inclui transmitir o vetor a um segundo participante. A transmissão pode incluir, também, transmitir da- dos de carga útil a um segundo participante em resposta às informações que identificam os dados de carga útil do primeiro participante recebidos mais recentemente a partir do primeiro participante. A transmissão pode incluir, também, transmitir os dados de carga útil a um segundo participante em resposta a uma solicitação proveniente do segundo participante. Além disso, a transmissão pode incluir a transmissão de dados de carga útil a um se- gundo participante em resposta a uma solicitação proveniente do segundo participante. A solicitação identifica os dados de carga útil do primeiro parti- cipante armazenados mais recentemente pelo segundo participante.
Em outra modalidade, o método inclui, antes da transmissão, o recebimento de uma segunda comunicação proveniente do primeiro partici- pante. A comunicação inclui segundos dados de carga útil. Além disso, o método inclui o armazenamento dos segundos dados de carga útil em uma locação de uma pluralidade de locações de memória associada ao primeiro participante.
Ainda em outra modalidade, o método inclui o recebimento de uma comunicação proveniente de um segundo participante, o armazena- mento dos dados de carga útil em uma locação de uma pluralidade de loca- ções de memória, e a transmissão dos dados de carga útil ao primeiro parti- cipante. A comunicação inclui metadados e dados de carga útil. A locação de uma pluralidade de locações de memória é selecionada utilizando-se os metadados e associada ao segundo participante.
Em outra modalidade, o método inclui o recebimento de uma segunda comunicação proveniente do primeiro participante. Além disso, o método inclui o armazenamento da segunda comunicação em uma segunda locação de memória associada ao primeiro participante.
Em outro aspecto, a invenção apresenta um sistema distribuído para comunicação adaptativa de largura de banda entre uma pluralidade de participantes. O sistema inclui uma pluralidade de participantes que transmi- tem dados de estado e um servidor. O servidor recebe os dados de estado transmitidos pela pluralidade de clientes, armazena os dados de estado re- cebidos em um elemento de memória dotado de uma pluralidade de Ioca- ções de memória, e transmite os dados de estado recebidos a partir de uma pluralidade de participantes para cada outra pluralidade de participantes. Cada pluralidade de locações de memória é associada a uma pluralidade respectiva de participantes.
Breve Descrição dos Desenhos
A discussão anterior será mais prontamente compreendida a partir da seguinte descrição detalhada da invenção, quando tomada em con- junto com os desenhos em anexo, em que:
A Figura 1 mostra uma modalidade de um ambiente computa- cional distribuído.
A Figura 2 mostra uma modalidade de um dispositivo computa- cional participante do ambiente computacional distribuído da Figura 1.
A Figura 3 mostra uma modalidade de um dispositivo computa- cional servidor do ambiente computacional distribuído da Figura 1.
A Figura 4 é um diagrama de blocos de uma modalidade de um canal de comunicação compartilhado.
A Figura 5 é um fluxograma de uma modalidade de um método da operação do software participante do dispositivo computacional partici- pante da Figura 2.
A Figura 6 é um fluxograma de uma modalidade de um método da operação do software servidor do dispositivo computacional servidor da Figura 2.
As Figuras 7A a 7F mostram diagramas de bloco do canal de comunicação compartilhado usado para ilustrar um uso exemplar de uma modalidade da invenção.
A Figura 8 mostra outra modalidade do ambiente computacional distribuído em que os princípios da invenção podem ser praticados.
Descrição Detalhada
Com referência à Figura 1, um ambiente computacional distribu- ído 100, que pode ser usado para colaboração online e similares, inclui um ou mais dispositivos computacionais participantes 110A, 11OB..... 110F (mais adiante neste documento, cada dispositivo computacional participante ou pluralidade de dispositivos computacionais é geralmente denominado como participante 110) que se encontram em comunicação com um ou mais dispositivos computacionais servidores 150 (mais adiante neste documento, cada dispositivo computacional servidor ou pluralidade de dispositivos com- putacionais é geralmente denominado como servidor 150) através de redes de comunicação 140. A rede 140 pode ser uma rede de área local (LAN), uma rede de área média (MAN), ou uma rede de longo alcance (WAN), co- mo a Internet ou a Rede de Alcance Mundial. Os usuários dos participantes 110 se conectam à rede 140 através de ligações de comunicação 120 que utilizam qualquer uma entre uma variedade de conexões incluindo, mas não se limitam a, linhas telefônicas padrão, ligações LAN ou WAN (por exemplo, Τ1, T3, 56 kb, X.25), conexões de banda larga (ISDN, Frame Relay, ATM), e conexões sem fio. As conexões podem ser estabelecidas utilizando-se uma variedade de protocolos de comunicação (por exemplo, TCP/IP, IPX, SPX, NetBIOS, e conexões assíncronas diretas).
Em outras modalidades, os participantes 110 se comunicam com o servidor 150 através de uma segunda rede 140', através de uma ligação de comunicação 180 que conecta a rede 140 à segunda rede 140'. Os pro- tocolos usados para comunicação através das ligações de comunicação 180 podem incluir uma variedade de protocolos usados para transmissão de lon- go ou curto período de tempo. Por exemplo, os protocolos TCP/IP, IPX, SPX, NetBIOS, NetBEUI, SONET e SDH. A combinação das redes 140 e 140' pode ser conceitualmente considerada como a Internet. Conforme o uso em questão, a Internet se refere à rede de comunicação eletrônica que co- necta as redes computacionais e as instalações computacionais organiza- cionais ao redor do mundo.
O participante 110 pode ser qualquer computador pessoal, ser- vidor, terminal baseado em Windows, computador de rede, dispositivo sem fio, ferramenta de informações, RISC PowerPC, dispositivo-X, estação de trabalho, minicomputador, assistente pessoal digital (PDA), computador ma- inframe, telefone celular ou outro dispositivo computacional que ofereça ca- pacidade suficiente para executar softwares participantes e um sistema ope- racional. O software participante que é executado no participante 110 ofere- ce a capacidade de ler e gravar em um canal de comunicação compartilhado estabelecido entre os participantes 110 e o servidor 150. O servidor 150 pode ser qualquer tipo de dispositivo computa- cional que seja capaz de se comunicar com um ou mais participantes 110. Por exemplo, o servidor 150 pode ser um dispositivo computacional servidor tradicional, um servidor da web, um servidor de aplicação, um servidor DNS, ou outro tipo de servidor. Ademais, o servidor 150 pode ser qualquer um dos dispositivos computacionais que são listados como dispositivos participan- tes. Além disso, o servidor 150 pode ser qualquer outro dispositivo computa- cional que ofereça capacidades suficientes para executar softwares servido- res e um sistema operacional. O software servidor que é executado no ser- vidor 150 oferece a funcionalidade para criar um canal de comunicação compartilhada entre os participantes 110 e o servidor 150. A funcionalidade adicional oferecida pelo software servidor inclui, mas não se limita a, ler e gravar ao canal de comunicação compartilhada.
Em uma modalidade, diferentes canais transmitem diferentes tipos de comunicações entre os participantes 110 e o servidor 150. Por e- xemplo, em um ambiente de reunião online, um primeiro canal de comunica- ção transmite dados de tela a partir de um participante de apresentação 110 ao servidor 150, que, sucessivamente, distribui os dados de tela aos outros participantes 110. Compartilha-se um segundo canal de comunicação, con- forme descrito em mais detalhes abaixo, com a finalidade de proporcionar comunicações em tempo real (por exemplo, informações de conversação, informações de cartão pessoal de negócios, informações de perguntas e respostas, informações de votação, informações de sessão de respostas, dados de voz, dados de vídeo, informações de controle distribuído, informa- ções de estado e similares) entre os participantes.
A Figura 2 descreve um diagrama de blocos conceituai de um participante 110. Deve-se compreender que outras modalidades do partici- pante 110 podem incluir qualquer combinação dos seguintes elementos ou incluir outros elementos não listados explicitamente. Em uma modalidade, cada participante 110 inclui, tipicamente, um processador 200, uma memória volátil 204, um sistema operacional 208, um software participante 212, uma memória de armazenamento persistente 216 (por exemplo, disco rígido ou disco rígido externo), uma interface de rede 220 (por exemplo, um cartão de interface de rede), um teclado 224 ou um teclado virtual no caso de um PDA, ao menos um dispositivo de entrada 228 (por exemplo, um mouse, mouse tipo "trackbaH", mouse tipo "space bali", caneta de luz e tablete gráfico, tela sensível ao toque, caneta stylus, e qualquer outro dispositivo de entrada) em comunicação elétrica com o participante 110, e um monitor 232. O sistema operacional 116 pode incluir, sem limitação, WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS 2000, WINDOWS XP, WINDOWS VISTA, WINDOWS CE, MAC/OS, JAVA, PALM OS, SYMBIAN OS, LINSPIRE, LINUX, SMARTPHONE OS, as diversas for- mas de UNIX, WINDOWS 2000 SERVER, WINDOWS 2000 ADVANCED SERVER, WINDOWS NT SERVER, WINDOWS NT SERVER ENTERPRISE EDITION, MACINTOSH OS X SERVER, UNIX, SOLARIS, VMWARE e simi- lares.
O software participante 212 encontra-se em comunicação com vários componentes (por exemplo, o sistema operacional 208) do participan- te 110 de modo a proporcionar os recursos da invenção. Como uma visão geral, o software participante 212 cria e mantém uma cópia local do canal compartilhado. O software participante 212 proporciona um meio para ler e gravar dados ao canal compartilhado e transmitir as alterações aos outros participantes 110 e aos servidores 150.
Com referência à Figura 3, descreve-se uma modalidade de um servidor 150. Deve-se compreender que outras modalidades do servidor 150 podem incluir qualquer combinação dos seguintes elementos ou incluir ou- tros elementos não listados explicitamente. O servidor 150 inclui um proces- sador 300, uma memória volátil 304, um sistema operacional 308, um soft- ware servidor 312, uma memória de armazenamento persistente 316, uma interface de rede 320, um teclado 324, ao menos um dispositivo de entrada 328 (por exemplo, um mouse, mouse tipo "trackball", mouse tipo "space bali", leitor de códigos de barra, digitalizador, caneta de luz e tablete gráfico, tela sensível ao toque, caneta stylus, e qualquer outro dispositivo de entra- da), e um monitor 332. Em outra modalidade, o servidor 150 opera em um modo "sem cabeça". O sistema operacional servidor pode incluir, mas não se limita a, WINDOWS 3.x, WINDOWS 95, WINDOWS 98, WINDOWS NT 3.51, WINDOWS NT 4.0, WINDOWS 2000, WINDOWS XP, WINDOWS VISTA, WINDOWS CE, MAC/OS, JAVA, PALM OS, SYMBIAN OS, LINSPI- RE, LINUX, SMARTPHONE OS, as várias formas de UNIX, WINDOWS 2000 SERVER, WINDOWS 2000 ADVANCED SERVER, WINDOWS NT SERVER, WINDOWS NT SERVER ENTERPRISE EDITION, MACINTOSH OS X SERVER, UNIX, SOLARIS, VMWARE e similares.
O software servidor 312 encontra-se em comunicação com vá- rios componentes (por exemplo, o sistema operacional 308) do servidor 150 de modo a proporcionar os recursos da invenção. Como uma visão geral, o software servidor 312 cria o canal compartilhado e mantém uma cópia local do estado do canal compartilhado. O software servidor 312 proporciona um meio para transmitir as alterações aos outros participantes 110 ou outros servidores 150.
Com referência à Figura 4, uma modalidade de um canal de co- municação 400 conforme usado no ambiente 100 é mostrada e descrita. O canal de comunicação compartilhada 400 é um único canal ao qual os parti- cipantes 110 se subscrevem. Cada participante 110 mantém uma cópia local 236A, 236B, 236C, 236D, 236E, 236F, 236G (mais adiante neste documen- to, denominada como cópia local 236) do canal de comunicação comparti- lhada 400. Em um nível conceituai, o canal de comunicação compartilhada 400 pode ser considerado como um único objeto de dados (por exemplo, um elemento de memória de canal) dotado de uma pluralidade de locações de memória 410 ou campos. Essas locações de memória 410 ou campos po- dem ser conceitualmente considerados como "fendas" no canal. Conforme mostrado, o canal de dados compartilhados inclui doze campos 410 (isto é, 410A, 410B, 410C, 410D, 41OE1 410E', 410E", 410F, 410F, 410G, 410G', 410G") que, coletivamente, representam o estado do canal compartilhado 400, muito embora qualquer número de campos possa ser usado. Um único participante 110 ou servidor 150 tem zero ou mais campos 410 associados a ele. Por exemplo, conforme ilustrado na Figura 4, o participante 110G tem três campos 41OG1 41OG', 41OG" associados a ele. Deve-se compreender, embora na mostrado, que o servidor 150 pode ter zero ou mais campos as- sociados a ele.
Cada campo 410 armazena um pacote de dados respectivo 414 (isto é, 414A, 414B, 414C, 414D, 414E, 414E', 414E", 414F, 414F, 414G, 414G', 414G"). Cada participante pode ler cada uma das locações de memó- ria 410 do canal compartilhado, porém pode apenas gravar nas locações de memória 410 associadas ao respectivo participante 110. Cada pacote de dados 414 inclui metadados e dados de carga útil. Os metadados podem incluir, mas não se limitam a, um participante ID, um ID de locação de me- mória, e similares. Os dados de carga útil podem incluir, mas não se limitam a, dados de comunicação, dados de conversação, dados de estado, dados de vídeo, dados de controle distribuído, e similares. Em uma modalidade, cada campo 410 inclui uma ou mais locações de vetor. Cada locação de ve- tor armazenada ou metadados ou dados de carga útil. As locações de vetor podem ser conceitualmente consideradas como subfendas em cada tenda do canal compartilhado 400.
Com referência à Figura 5, descreve-se uma modalidade do mé- todo 500 de operação do software participante 212. Conforme anteriormente determinado, cada participante mantém uma cópia local do estado do canal compartilhado 400. O participante 110 grava (ETAPA 510) os dados de car- ga útil à locação de memória 410 associada da cópia local do canal compar- tilhado 400. O software participante 212 atribui (ETAPA 520) um identificador de pacote aos dados de carga útil de modo a gerar um pacote de dados 414. Em uma modalidade, quando a largura de banda permite que participante 110 se conecte ao servidor 150, o software participante 212 transmite (ETA- PA 530) o novo pacote ao servidor 150.
Em uma modalidade, o software participante 212 atribui (ETAPA 520) um identificador de pacote monotonamente crescente. Conforme o uso em questão, o termo monótono refere-se à alteração em apenas uma dire- ção; portanto, estritamente ascendente ou estritamente descendente, mas não em direções opostas. Em outras modalidades, deve-se compreender que, outros identificadores de pacote são usados. A utilização de identifica- dores de pacote monotonamente crescentes proporciona um meio para permitir uma sincronização entre as cópias locais 236 do canal de comuni- cação compartilhada 400 e os dados de estado ajustados por último do ca- nal de comunicação compartilhada 400 armazenados pelo servidor 150.
A transmissão (ETAPA 530) do pacote 414 ao canal de comuni- cação compartilhada 400 ocorre após o término da operação de gravação do participante. Em uma modalidade, a transmissão ocorre quando a largura de banda entre o participante 110 e o servidor 150 autoriza. Este recurso pro- porciona um módulo de transmissão adaptativo de largura de banda. Por exemplo, suponha que o participante 110A esteja conectado ao servidor 150 usando um modem 56k, a velocidade na qual as alterações entre o partici- pante 110A e o servidor 150 são comunicadas difere consideravelmente do que se o participante 110A e o servidor 150 estivessem conectados por uma linha TI. Como tal, o participante 110A aguarda até que a largura de banda autorize a transmissão. Esses mesmo princípios adaptativos de largura de banda também se aplicam quando o participante 100 recebe pacotes 414 provenientes do servidor 150.
Com referência à Figura 6, um método 600 de operação do software servidor 312 é mostrado e descrito. O servidor 150 recebe (ETAPA 610) a comunicação contendo o pacote 414 proveniente do participante 110. Em resposta, o software servidor 312 armazena (ETAPA 620) o pacote na locação de memória associada 410. Mediante a alteração da locação de memória 410, o software servidor inicia a transmissão (ETAPA 630) dos da- dos de estado do canal compartilhado 400 a outros participantes 110.
Em uma modalidade, o armazenamento (ETAPA 620) inclui substituir os conteúdos da locação de memória associada 410 pelo software servidor 312 pelo novo pacote 414. Antes da substituição dos conteúdos da locação de memória associada 410, o software servidor compara o identifi- cador de pacote de modo a determinar se o pacote recebido é realmente mais recente que o pacote atual. Pode surgir uma situação, devido às limita- ções de largura de banda que conectam alguns participantes 110 ao servidor 150 e quando o sistema incluir múltiplos servidores 150 ou conexão par-a- par, em que alguns dos pacotes 410 pelo software servidor podem realmen- te ser mais antigos do que o pacote atual armazenado na locação de memó- ria. Essas situações são descritas abaixo em mais detalhes.
Em uma modalidade, a transmissão (ETAPA 630) inclui todos os conteúdos do canal de comunicação compartilhada 400 a cada um dos ou- tros participantes 110. A transmissão pode ocorrer em transmissão múltipla ou de alguma outra forma. Em outra modalidade, apenas as locações de memória atualizadas 410 são transmitidas aos participantes. A dita outra forma, o software servidor 312 sincroniza os conteúdos do canal comparti- lhado com cada um dos participantes. A sincronização ocorre utilizando-se um "avanço" a partir do servidor 150 aos participantes 110 ou uma "atração" a partir dos participantes. Descreve-se cada um desses mais adiante.
No caso de um avanço a partir do servidor 150, um histórico de execução do estado do canal compartilhado 400 é mantido pelo servidor 150 para cada participante 110. Quando o servidor 150 recebe um novo pacote 410, o software servidor 312 compara o estado presente do canal de comu- nicação compartilhada 400 à gravação do histórico de execução de modo a determinar quais pacotes 414 transmitir ao participante 110. Antes da trans- missão dos novos pacotes 414 ao participante, o software servidor recebe uma indicação ou determina se a largura de banda que conecta o participan- te 110 ao servidor 150 está disponível para o término da comunicação. Se a largura de banda estiver disponível, os novos pacotes são transmitidos. Se a largura de banda não estiver disponível, os novos pacotes não são transmi- tidos. Ao contrário, quando a largura de banda estiver disponível, realiza-se uma nova comparação em relação ao histórico de execução e todos os no- vos pacotes são transmitidos. Como tal, as alterações intermediárias aos canais de comunicação compartilhada 400 são capturadas e enviadas ao participante.
Em um modelo de atração, cada participante 100 consulta perio- dicamente o servidor 150 sobre as alterações ao estado do canal de comu- nicação compartilhada 400. Em uma modalidade, toda vez que um novo pa- cote é enviado a partir do participante 110 ao servidor 150, uma solicitação por quaisquer novos pacotes dos outros participantes 110 é incluída. Em outra modalidade, cada participante 110 consulta o servidor 150 a cada pe- ríodo predeterminado de milissegundos ou outro período de tempo. Ainda em outra modalidade, cada participante 110 consulta o servidor 150 quando a largura de banda que conecta o servidor 150 e o participante 110 estiver disponível para receber atualizações. Como parte da consulta, o estado pre- sente da cópia local 236 do canal compartilhado é transmitido ao servidor 150. O software servidor 312 compara a cópia local 236 ao estado presente do canal de comunicação compartilhada 400 de modo a determinar quais pacotes transmitir ao participante solicitante 110.
Os métodos de sincronização descritos proporcionam uma sin- cronização "livre" do estado do canal de comunicação compartilhada 400 entre os participantes 110 e o servidor. As cópias locais 236 dos participan- tes 110 diferem durante períodos transicionais enquanto o mecanismo de sincronização propaga as alterações. Determinado o tempo suficiente e ne- nhuma nova alteração, cada uma das cópias locais 236 convergirão ao mesmo estado do canal de comunicação compartilhada 400. É importante notar que se a ligação de comunicação entre o servidor 150 e o participante 110 for limitado por largura de banda, a locação de memória associada 410 para o participante pode ser atualizada mais de uma vez pelo participante 110 antes do novo pacote 410 ser transmitido ao servidor 150. Deve-se compreender que os mesmos princípios se aplicam aos pacotes 414 recebi- dos a partir do servidor. Esta sincronização descrita não garante a distribui- ção de todos os pacotes a partir de um participante 110 ao servidor 150 ou, de modo oposto, a partir do servidor 150 ao participante 110. Ela garante apenas a distribuição do pacote mais recente quando a largura de banda estiver disponível. Essa garantia de distribuição relativamente fraca descreve que a natureza adaptativa de largura de banda do ambiente computacional distribuído, pelo fato de ela permitir participantes 110 e servidores 150 com ligações de comunicação mais lentas 120, coexiste com participantes 110 e servidores 150 com ligações de comunicação mais rápidas 120 sem um afe- tar o outro. Os participantes 110 e servidores 150 conectados pelas ligações mais lentas (isto é, limitadas por largura de banda) recebem menos atualiza- ções enquanto os participantes 110 e servidores 150 conectados por liga- ções de comunicação mais rápidas 120 (isto é, ligações de largura de banda maiores) podem receber todas as atualizações.
Com referência à Figura 7 A até Figura 7F, um exemplo é mos- trado e descrito. Os exemplos a seguir incluem o canal de comunicação compartilhada 400 e a cópia local 236A, 236B, 236F de três participantes 110A, 110B, 110F. Por propósitos de simplicidade, cada pacote 414 é referi- do a um único número. Deve-se compreender que cada número representa os metadados e dados de carga útil do pacote 414. No exemplo, supõe-se que dois dos participantes 11OA, 11OB estejam conectados ao servidor 150 por uma conexão T1 e um participante 110F esteja conectado ao servidor 150 por um modem 56K.
Na Figura 7A, o estado de cada uma das cópias locais 236 e do canal compartilhado 400 é consistente. Na Figura 7B, uma alteração à loca- ção de memória 41OA da cópia local 236A do canal compartilhado ocorre pelo primeiro participante 110A e é propagada ao canal compartilhado 400 e, sucessivamente, aos outros dois participantes. O segundo participante 236B, que é conectado através de uma linha T1, recebe a alteração à locação de memória 41OA associada ao participante 110A. No entanto, devido à largura de banda reduzida que conecta o terceiro participante 236F ao servidor 150, o novo pacote associado à locação de memória 41OA não é recebido rapi- damente. Além disso, ocorre uma alteração à cópia local da locação de me- mória 41OB associada ao segundo participante 236B. Conforme mostrado, os estados das várias cópias do canal de comunicação compartilhada 400 encontram-se em diferentes estados.
Na Figura 7C, a alteração pelo segundo participante 11OB é pro- pagada ao canal compartilhado 400 e, sucessivamente, ao primeiro partici- pante 110A. No entanto, devido à limitação de largura de banda, a alteração à locação de memória 41OB não foi recebida pelos terceiros participantes 110F. Na Figura 7D, outra alteração à locação de memória 41OA associou- se ao primeiro participante 11OA e é propagada ao segundo participante 110B. No entanto, pelo fato de o terceiro participante 110F estar no processo de recebimento da alteração à locação de memória 41OB, o terceiro partici- pante não recebe a alteração proveniente do primeiro participante 110A nes- te momento.
Na Figura 7E, o primeiro participante grava outra alteração (isto é, pacote 4) em sua locação de memória 41OA. O canal compartilhado 400 recebe a alteração e a encaminha ao segundo participante 110B e ao tercei- ro participante 110F. Conforme mostrado na Figura 7F, após certo período de tempo, cada uma das cópias locais 236 do canal compartilhado atinge eventualmente o mesmo estado. No entanto, conforme ilustrado, cada uma das cópias locais 236 do canal compartilhado pode ter estados diferentes durante períodos de atualizações e nem todas as cópias locais receberão todas as atualizações. Embora descrito de modo que as atualizações sejam recebidas a partir do servidor 150, deve-se compreender que os mesmos princípios se aplicam na transmissão de alterações ao servidor 150 a partir do participante 110. Ou seja, o participante 110 pode gravar múltiplos paco- tes em sua locação de memória associada 410 da cópia local 236, alguns desses podem não ser transmitidos ao servidor 150 devido às limitações de largura de banda que conectam o servidor 150 e o participante 110.
Com referência à Figura 8, um ambiente computacional distribu- ído 100' dotado de múltiplos servidores 150A, 150B, 150C é mostrado e descrito. Nesse ambiente, cada servidor 150 também é um participante por- que ele recebe atualizações ao canal de comunicação compartilhada 400 proveniente de outros servidores 150. Em vastas situações de colaboração online (por exemplo, um seminário baseado na web com milhares de partici- pantes), é difícil que um único servidor 150 gerencie e preste serviço a todas as solicitações de conexão provenientes dos participantes. Como tal, múlti- plos servidores 150 são usados para equilibrar a carga que cada servidor 150 deve gerenciar. O canal de comunicação compartilhada 400 proporciona uma forma para cada servidor de comunicação 150 e os participantes 110 se comunicarem entre si sem a necessidade de um esquema de comunicação de número de participantes ao quadrado.
Nessa modalidade, os servidores 150 podem ser comunicativos entre si através do uso de diferentes locações de largura de banda. Como tal, os recursos adaptativos de largura de banda descritos anteriormente se aplicam, igualmente, às comunicações entre os servidores 150, bem como entre os servidores 150 e os participantes 110.
Da mesma forma, um único participante pode se comunicar com múltiplos servidores 150. Por exemplo, o participante 110F se comunica com um primeiro servidor 150B e um segundo servidor 150C. O participante 11OF mantém uma cópia local do estado do canal compartilhado 400 conforme conhecido por cada primeiro servidor 150B e segundo servidor 150C. Essa modalidade proporciona tolerância à redundância e falhas em relação ao estado do canal compartilhado 400.
Uma implementação exemplar da invenção descrita consiste no uso de um produto de colaboração online para realizar encontros online ou seminários baseados na web. Um encontro online consiste em um ou mais participantes 110 que se comunicam através de um servidor de comunica- ção 150. Deve-se compreender que o servidor de múltiplas comunicações 150 pode ser usado se o número de participantes precisar de mais de um único servidor de comunicação 150. Em um encontro online, um dos partici- pantes é um apresentador e controla o andamento do encontro. Um apre- sentador transmite uma série de imagens que podem representar uma apre- sentação de transparências. À medida que o apresentador mostra uma transparência, a página representa que a transparência é transmitida a todos os observadores. Em muitas modalidades, cada transparência é representa- da por múltiplos pacotes de dados e transmitida por um canal específico de- signado para exibir compartilhamento de dados. Cada um dos participantes 110 é rotulado como "observadores" e observam os dados de tela comparti- lhados. A sincronização dos dados de tela compartilhados entre os observa- dores e o apresentador ocorre utilizando-se um protocolo de transmissão múltipla confiável. Este tipo de "compartilhamento" representa um tipo de comunicação 1-para-N. Além de compartilhar dados de tela, é desejável habilitar a co- municação de "conversão" entre os observadores e o apresentador (por e- xemplo, comunicações entre observadores, bem como comunicações do observador e o apresentador). Como tal, um canal compartilhado 400 é es- tabelecido entre o apresentador e os observadores de modo a transferir os dados de conversação. Cada observador precisa apenas se inscrever ao canal compartilhado para habilitar o recurso de conversação do encontro online. Toda vez que um observador digita uma mensagem de conversação, o respectivo campo do observador 410 do canal compartilhado é atualizado com uma nova carga útil de mensagem. Em resposta, os dados de conver- sação atualizados são transmitidos aos outros observadores e ao apresen- tador conforme descrito anteriormente. Este tipo de "compartilhamento" re- presenta um tipo N-para-N de comunicação.
Existem vários produtos de colaboração online que podem ope- rar em um ambiente computacional distribuído 100. Os produtos exemplares incluem, mas não se limitam a, GOTOMEETING e GOTO WEBINAR ofere- cido por Citrix Online, LLC de Santa Barbara Califórnia, EUA. Determinados aspectos e recursos descritos abaixo podem ser incorporados a tal produto. Outros produtos incluem WEBEX EMX, WEBEX ENTERPRISE EDITION, WEBEX EVENT CENTER, WEBEX GLOBAL WATCH1 WEBEX MEETING CENTER, WEBEX MEETMENOW, WEBEX PRESENTATION STUDIO, WEBEX SALES CENTER, WEBEX TRAINING CENTER, WEBEX WEBOF- FICE e WEBEX WORKSPACE oferecidos por WebEx Communications, Inc. de Santa Clara Califórnia, EUA. Outro exemplo é o produto LIVEMEETING oferecido pela Microsoft Corporation de Redmond, Washington, EUA.
As modalidades descritas anteriormente podem ser implementa- das como um método, aparelho ou artigo de fabricação que utiliza progra- mação e/ou técnicas de engenharia para produzir software, firmware, hard- ware, ou qualquer combinação dos mesmos. O termo "artigo de fabricação", conforme o uso em questão, destina a abranger código ou lógica acessível por, e embutido em um ou mais, dispositivos legíveis por computador, firm- ware, lógica programável, dispositivos de memória (por exemplo, EEPROMs, ROMs1 PROMs, RAMs, SRAMs, etc.), hardware (por exemplo, chip de circui- to integrado, Matriz de Porta Programável em Campo (FPGA)1 Circuito Inte- grado de Aplicação Específica (ASIC), etc.), dispositivos eletrônicos, uma unidade de armazenamento não-volátil legível por computador (por exemplo, CD-ROM, disquete, unidade de disco rígido, etc.), um servidor de arquivos que proporcione acesso aos programas através de uma linha de transmissão de rede, mídia de transmissão sem fio, sinais que se propagam através do espaço, ondas de rádio, sinais infravermelhos, etc. O artigo de fabricação inclui lógica de hardware, bem como software ou código programável embu- tido em um meio legível por computador que seja executado por um proces- sador. Naturalmente, os versados na técnica reconhecerão que muitas modi- ficações podem ser feitas a esta configuração sem divergir do escopo da presente invenção.
Muito embora a presente invenção tenha sido descrita com refe- rência a detalhes específicos, não significa que esses detalhes devam ser considerados como limitações ao escopo da invenção, exceto e até o ponto em que eles estejam incluídos nas reivindicações em anexo.
Claims (23)
1. Método para comunicação adaptativa de largura de banda entre uma pluralidade de participantes em um sistema distribuído, sendo que o método compreende: (a) receber uma comunicação de um primeiro participante, sen- do que a comunicação inclui metadados e dados de carga útil; (b) armazenar os dados de carga útil em um elemento de memó- ria de canal, sendo que o elemento de memória de canal compreende uma pluralidade de locações de memória, sendo que a pluralidade de locações de memória é selecionada utilizando-se os metadados e associada ao pri- meiro participante; (c) transmitir os dados de carga útil a um segundo participante.
2. Método, de acordo com a reivindicação 1, em que a etapa (a) compreende o recebimento de uma comunicação de um primeiro participan- te, sendo que a comunicação inclui um identificador de participante e dados de carga útil.
3. Método, de acordo com a reivindicação 1, em que a etapa (a) compreende o recebimento de uma comunicação de um primeiro participan- te, sendo que a comunicação representa o estado do participante e inclui metadados e dados de carga útil.
4. Método, de acordo com a reivindicação 1, em que a etapa (b) compreende o armazenamento dos dados de carga útil em uma pluralidade de locações de vetor, sendo que a pluralidade de locações de vetor é sele- cionada utilizando-se os metadados associados ao primeiro participante.
5. Método, de acordo com a reivindicação 4, em que a etapa (c) compreende a transmissão do vetor a um segundo participante.
6. Método, de acordo com a reivindicação 1, em que a etapa (c) compreende a transmissão dos dados de carga útil a um segundo participan- te em resposta às informações que identificam os dados de carga útil do primeiro participante recebidos mais recentemente a partir do primeiro parti- cipante.
7. Método, de acordo com a reivindicação 1, em que a etapa (c) compreende a transmissão dos dados de carga útil a um segundo participan- te em resposta a uma solicitação proveniente do segundo participante.
8. Método, de acordo com a reivindicação 1, em que a etapa (c) compreende a transmissão dos dados de carga útil a um segundo participan- te em resposta a uma solicitação proveniente do segundo participante, sen- do que a solicitação identifica os dados de carga útil do primeiro participante recebidos mais recentemente pelo segundo participante.
9. Método, de acordo com a reivindicação 1, que compreende, ainda, antes da etapa (c), o recebimento de uma segunda comunicação pro- veniente do primeiro participante, sendo que a comunicação inclui segundos dados de carga útil.
10. Método, de acordo com a reivindicação 9, que compreende, ainda, antes da etapa (c), o armazenamento dos segundos dados de carga útil em uma locação de uma pluralidade de locações de memória associada ao primeiro participante.
11. Método, de acordo com a reivindicação 10, em que a etapa (c) compreende a transmissão dos segundos dados de carga útil a um se- gundo participante.
12. Método, de acordo com a reivindicação 1, que compreende, ainda: (a) receber uma comunicação de um segundo participante, sen- do que a comunicação inclui metadados e dados de carga útil; (b) armazenar os dados de carga útil em uma locação de uma pluralidade de locações de memória, sendo que a pluralidade de locações de memória é selecionada utilizando-se os metadados e associada ao se- gundo participante; e (c) transmitir os dados de carga útil ao primeiro participante.
13. Método, de acordo com a reivindicação 1, que compreende, ainda, receber uma segunda comunicação proveniente do primeiro partici- pante, sendo que a comunicação inclui segundos dados de carga útil.
14. Método, de acordo com a reivindicação 13, que compreende, ainda, armazenar a segunda comunicação em um segundo local de memória associado ao primeiro participante.
15. Sistema distribuído para comunicação adaptativa de largura de banda entre uma pluralidade de participantes em um sistema distribuído, sendo que o sistema compreende: uma pluralidade de participantes que transmite dados de estado; e um servidor (i) que recebe os dados de estado transmitidos pela pluralidade de clientes, (ii) que armazena os dados de estado recebidos em um elemento de memória dotado de uma pluralidade de locações de memó- ria, sendo que cada pluralidade de locações de memória é associada a uma pluralidade respectiva de participante, e (iii) que transmite os dados de esta- do recebidos a partir de uma pluralidade de participantes a cada pluralidade de participantes.
16. Sistema, de acordo com a reivindicação 15, em que os da- dos de estado transmitidos compreendem metadados e dados de carga útil.
17. Sistema, de acordo com a reivindicação 15, em que os da- dos de estado transmitidos compreendem um identificador de participantes e dados de carga útil.
18. Sistema, de acordo com a reivindicação 15, em que o servi- dor transmite os conteúdos do elemento de memória a cada pluralidade de participantes.
19. Sistema, de acordo com a reivindicação 15, em que o servi- dor transmite dados de estado armazenados a um participante em resposta a uma solicitação proveniente do participante.
20. Sistema, de acordo com a reivindicação 15, em que o servi- dor transmite dados de estado armazenados a um participante em resposta a uma solicitação proveniente do participante, sendo que a solicitação identi- fica os dados de estado a serem transmitidos.
21. Sistema, de acordo com a reivindicação 15, em que o servi- dor regrava os dados de estado armazenados quando novos dados de esta- do forem recebidos.
22. Sistema, de acordo com a reivindicação 15, em que a plura- lidade de participantes se comunica com o servidor através do uso de liga- ções de comunicações dotadas de diferentes larguras de banda, e em que as atualizações são transmitidas aos participantes de maneira adaptativa de largura de banda.
23. Sistema, de acordo com a reivindicação 15, em que a plura- lidade de participantes se comunica com o servidor através do uso de liga- ções de comunicações dotadas de diferentes larguras de banda, e em que as atualizações são transmitidas ao servidor de maneira adaptativa de largu- ra de banda.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/381,702 | 2006-05-04 | ||
| US11/381,702 US8140618B2 (en) | 2006-05-04 | 2006-05-04 | Methods and systems for bandwidth adaptive N-to-N communication in a distributed system |
| PCT/US2007/010729 WO2007130511A2 (en) | 2006-05-04 | 2007-05-03 | Methods and systems for bandwidth adaptive n-to-n communication in a distributed system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| BRPI0711565A2 true BRPI0711565A2 (pt) | 2011-11-08 |
| BRPI0711565A8 BRPI0711565A8 (pt) | 2017-05-16 |
Family
ID=38626561
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| BRPI0711565A BRPI0711565A8 (pt) | 2006-05-04 | 2007-05-03 | Métodos e sistemas para comunicação n-para-n de largura de banda em um sistema distribuído |
Country Status (9)
| Country | Link |
|---|---|
| US (2) | US8140618B2 (pt) |
| EP (1) | EP2027669B1 (pt) |
| JP (1) | JP2009535994A (pt) |
| CN (2) | CN102882696B (pt) |
| AU (1) | AU2007248550B2 (pt) |
| BR (1) | BRPI0711565A8 (pt) |
| CA (1) | CA2650927C (pt) |
| IL (1) | IL195103A (pt) |
| WO (1) | WO2007130511A2 (pt) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9232307B2 (en) | 2007-07-26 | 2016-01-05 | Kenneth Nathaniel Sherman | Mobile microphone system and method |
| US9185150B2 (en) * | 2012-05-06 | 2015-11-10 | Citrix Systems, Inc. | System and method for monitoring and selectively sharing an image in an image library |
| US9198010B2 (en) | 2012-05-08 | 2015-11-24 | 24/7 Customer, Inc. | Data assistance application for mobile devices |
| US8971323B2 (en) * | 2012-06-15 | 2015-03-03 | Citrix Systems, Inc. | Systems and methods for dynamic routing in a cluster |
| US9282285B2 (en) | 2013-06-10 | 2016-03-08 | Citrix Systems, Inc. | Providing user video having a virtual curtain to an online conference |
| BR112016009230B1 (pt) | 2013-11-27 | 2022-07-26 | Intel Corporation | Sistema de computador, módulo de memória multiportas e método de manutenção para arquitetura de servidor |
| JP6579916B2 (ja) * | 2015-10-28 | 2019-09-25 | 株式会社日立製作所 | 仮想計算機間の通信経路制御方法および計算機システム |
Family Cites Families (111)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4013828A (en) * | 1976-02-20 | 1977-03-22 | Bell Telephone Laboratories, Incorporated | Method and arrangement for reducing the bandwidth and/or time required to transmit a dithered image |
| US4736369A (en) * | 1986-06-13 | 1988-04-05 | International Business Machines Corp. | Adaptive session-level pacing |
| US5031089A (en) * | 1988-12-30 | 1991-07-09 | United States Of America As Represented By The Administrator, National Aeronautics And Space Administration | Dynamic resource allocation scheme for distributed heterogeneous computer systems |
| US5210753A (en) * | 1991-10-31 | 1993-05-11 | International Business Machines Corporation | Robust scheduling mechanm for efficient band-width usage in muliticell wireless local networks |
| US7006881B1 (en) * | 1991-12-23 | 2006-02-28 | Steven Hoffberg | Media recording device with remote graphic user interface |
| US6400996B1 (en) * | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
| US6850252B1 (en) * | 1999-10-05 | 2005-02-01 | Steven M. Hoffberg | Intelligent electronic appliance system and method |
| US5564016A (en) * | 1993-12-17 | 1996-10-08 | International Business Machines Corporation | Method for controlling access to a computer resource based on a timing policy |
| 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 |
| US5812792A (en) * | 1994-07-22 | 1998-09-22 | Network Peripherals, Inc. | Use of video DRAM for memory storage in a local area network port of a switching hub |
| US6175571B1 (en) * | 1994-07-22 | 2001-01-16 | Network Peripherals, Inc. | Distributed memory switching hub |
| US5541927A (en) * | 1994-08-24 | 1996-07-30 | At&T Corp. | Method of multicasting |
| US5771383A (en) * | 1994-12-27 | 1998-06-23 | International Business Machines Corp. | Shared memory support method and apparatus for a microkernel data processing system |
| US5553083B1 (en) | 1995-01-19 | 2000-05-16 | Starburst Comm Corp | Method for quickly and reliably transmitting frames of data over communications links |
| US5845265A (en) | 1995-04-26 | 1998-12-01 | Mercexchange, L.L.C. | Consignment nodes |
| US5751958A (en) * | 1995-06-30 | 1998-05-12 | Peoplesoft, Inc. | Allowing inconsistency in a distributed client-server application |
| US5727003A (en) * | 1995-07-03 | 1998-03-10 | Cirrus Logic, Inc. | Method and apparatus for flash burst error correction |
| US5826025A (en) * | 1995-09-08 | 1998-10-20 | Sun Microsystems, Inc. | System for annotation overlay proxy configured to retrieve associated overlays associated with a document request from annotation directory created from list of overlay groups |
| US6249291B1 (en) * | 1995-09-22 | 2001-06-19 | Next Software, Inc. | Method and apparatus for managing internet transactions |
| CN1208534A (zh) * | 1995-12-11 | 1999-02-17 | 惠普公司 | 提供电信业务的方法 |
| EP0867003A2 (en) * | 1995-12-12 | 1998-09-30 | The Board of Trustees for the University of Illinois | Method of and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems |
| US6226617B1 (en) | 1995-12-12 | 2001-05-01 | Hitachi, Ltd. | Product disposal system |
| US5956027A (en) * | 1995-12-12 | 1999-09-21 | At&T Corp | Method and apparatus for sharing a web page |
| US6081829A (en) * | 1996-01-31 | 2000-06-27 | Silicon Graphics, Inc. | General purpose web annotations without modifying browser |
| US5822523A (en) * | 1996-02-01 | 1998-10-13 | Mpath Interactive, Inc. | Server-group messaging system for interactive applications |
| US5754774A (en) * | 1996-02-15 | 1998-05-19 | International Business Machine Corp. | Client/server communication system |
| US7013327B1 (en) * | 1996-02-16 | 2006-03-14 | G&H Nevada -Tek | Method and apparatus for computing within a wide area network |
| US6167432A (en) | 1996-02-29 | 2000-12-26 | Webex Communications, Inc., | Method for creating peer-to-peer connections over an interconnected network to facilitate conferencing among users |
| US5764235A (en) * | 1996-03-25 | 1998-06-09 | Insight Development Corporation | Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution |
| US6343313B1 (en) | 1996-03-26 | 2002-01-29 | Pixion, Inc. | Computer conferencing system with real-time multipoint, multi-speed, multi-stream scalability |
| US5892905A (en) * | 1996-12-23 | 1999-04-06 | International Business Machines Corporation | Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web |
| US5918248A (en) * | 1996-12-30 | 1999-06-29 | Northern Telecom Limited | Shared memory control algorithm for mutual exclusion and rollback |
| US5900018A (en) * | 1997-06-24 | 1999-05-04 | Sun Microsystems, Inc. | Processor-implemented method of controlling data access to shared resource via exclusive access control write-cache |
| US6519686B2 (en) * | 1998-01-05 | 2003-02-11 | Intel Corporation | Information streaming in a multi-process system using shared memory |
| US6415329B1 (en) * | 1998-03-06 | 2002-07-02 | Massachusetts Institute Of Technology | Method and apparatus for improving efficiency of TCP/IP protocol over high delay-bandwidth network |
| US6226618B1 (en) * | 1998-08-13 | 2001-05-01 | International Business Machines Corporation | Electronic content delivery system |
| US7200804B1 (en) * | 1998-12-08 | 2007-04-03 | Yodlee.Com, Inc. | Method and apparatus for providing automation to an internet navigation application |
| US6327276B1 (en) | 1998-12-22 | 2001-12-04 | Nortel Networks Limited | Conferencing over LAN/WAN using a hybrid client/server configuration |
| KR100601615B1 (ko) * | 1999-08-20 | 2006-07-14 | 삼성전자주식회사 | 네트워크 대역폭에 적응적인 영상 압축 장치 |
| US6434628B1 (en) * | 1999-08-31 | 2002-08-13 | Accenture Llp | Common interface for handling exception interface name with additional prefix and suffix for handling exceptions in environment services patterns |
| US6578068B1 (en) * | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
| US6550057B1 (en) * | 1999-08-31 | 2003-04-15 | Accenture Llp | Piecemeal retrieval in an information services patterns environment |
| US6289382B1 (en) * | 1999-08-31 | 2001-09-11 | Andersen Consulting, Llp | System, method and article of manufacture for a globally addressable interface in a communication services patterns environment |
| US6640238B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Activity component in a presentation services patterns environment |
| US6477665B1 (en) | 1999-08-31 | 2002-11-05 | Accenture Llp | System, method, and article of manufacture for environment services patterns in a netcentic environment |
| US6606660B1 (en) * | 1999-08-31 | 2003-08-12 | Accenture Llp | Stream-based communication in a communication services patterns environment |
| US6742015B1 (en) * | 1999-08-31 | 2004-05-25 | Accenture Llp | Base services patterns in a netcentric environment |
| US6640249B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
| US6434568B1 (en) * | 1999-08-31 | 2002-08-13 | Accenture Llp | Information services patterns in a netcentric environment |
| US6438594B1 (en) * | 1999-08-31 | 2002-08-20 | Accenture Llp | Delivering service to a client via a locally addressable interface |
| US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
| US6640244B1 (en) | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
| US6339832B1 (en) * | 1999-08-31 | 2002-01-15 | Accenture Llp | Exception response table in environment services patterns |
| US6529948B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Multi-object fetch component |
| US6601234B1 (en) * | 1999-08-31 | 2003-07-29 | Accenture Llp | Attribute dictionary in a business logic services environment |
| US6615199B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture, Llp | Abstraction factory in a base services pattern environment |
| US6502213B1 (en) | 1999-08-31 | 2002-12-31 | Accenture Llp | System, method, and article of manufacture for a polymorphic exception handler in environment services patterns |
| US6842906B1 (en) * | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
| US6571282B1 (en) * | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
| US6539396B1 (en) * | 1999-08-31 | 2003-03-25 | Accenture Llp | Multi-object identifier system and method for information service pattern environment |
| US6442748B1 (en) * | 1999-08-31 | 2002-08-27 | Accenture Llp | System, method and article of manufacture for a persistent state and persistent object separator in an information services patterns environment |
| US6601192B1 (en) * | 1999-08-31 | 2003-07-29 | Accenture Llp | Assertion component in environment services patterns |
| US6549949B1 (en) * | 1999-08-31 | 2003-04-15 | Accenture Llp | Fixed format stream in a communication services patterns environment |
| US6496850B1 (en) | 1999-08-31 | 2002-12-17 | Accenture Llp | Clean-up of orphaned server contexts |
| US6636242B2 (en) * | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
| US6715145B1 (en) * | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
| US6477580B1 (en) | 1999-08-31 | 2002-11-05 | Accenture Llp | Self-described stream in a communication services patterns environment |
| US6615253B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
| US6332163B1 (en) | 1999-09-01 | 2001-12-18 | Accenture, Llp | Method for providing communication services over a computer network system |
| US7437408B2 (en) * | 2000-02-14 | 2008-10-14 | Lockheed Martin Corporation | Information aggregation, processing and distribution system |
| US7165060B2 (en) * | 2000-02-14 | 2007-01-16 | Lockheed Martin Corporation | Information access, collaboration and integration system and method |
| DE60136616D1 (de) * | 2000-03-03 | 2009-01-02 | Ibm | System zur bestimmung von schwächen von web-anwendungen |
| US20020059274A1 (en) * | 2000-03-03 | 2002-05-16 | Hartsell Neal D. | Systems and methods for configuration of information management systems |
| US20020065864A1 (en) * | 2000-03-03 | 2002-05-30 | Hartsell Neal D. | Systems and method for resource tracking in information management environments |
| US20020049608A1 (en) * | 2000-03-03 | 2002-04-25 | Hartsell Neal D. | Systems and methods for providing differentiated business services in information management environments |
| US20020049841A1 (en) * | 2000-03-03 | 2002-04-25 | Johnson Scott C | Systems and methods for providing differentiated service in information management environments |
| US20020174227A1 (en) | 2000-03-03 | 2002-11-21 | Hartsell Neal D. | Systems and methods for prioritization in information management environments |
| US7113934B2 (en) * | 2000-05-25 | 2006-09-26 | Fujitsu Limited | Element management system with adaptive interfacing selected by last previous full-qualified managed level |
| US6778548B1 (en) * | 2000-06-26 | 2004-08-17 | Intel Corporation | Device to receive, buffer, and transmit packets of data in a packet switching network |
| US20060064716A1 (en) * | 2000-07-24 | 2006-03-23 | Vivcom, Inc. | Techniques for navigating multiple video streams |
| US6959320B2 (en) | 2000-11-06 | 2005-10-25 | Endeavors Technology, Inc. | Client-side performance optimization system for streamed applications |
| US6918113B2 (en) * | 2000-11-06 | 2005-07-12 | Endeavors Technology, Inc. | Client installation and execution system for streamed applications |
| US20020083183A1 (en) * | 2000-11-06 | 2002-06-27 | Sanjay Pujare | Conventionally coded application conversion system for streamed delivery and execution |
| US7043524B2 (en) * | 2000-11-06 | 2006-05-09 | Omnishift Technologies, Inc. | Network caching system for streamed applications |
| US20020073238A1 (en) * | 2000-11-28 | 2002-06-13 | Eli Doron | System and method for media stream adaptation |
| US7574481B2 (en) * | 2000-12-20 | 2009-08-11 | Microsoft Corporation | Method and system for enabling offline detection of software updates |
| US20020120607A1 (en) * | 2001-02-28 | 2002-08-29 | Lumenati, Inc. | File sharing system for serving content from a computer |
| US20020129159A1 (en) | 2001-03-09 | 2002-09-12 | Michael Luby | Multi-output packet server with independent streams |
| JP3704573B2 (ja) * | 2001-03-14 | 2005-10-12 | 東芝ソリューション株式会社 | クラスタシステム |
| US20030041165A1 (en) | 2001-08-24 | 2003-02-27 | Spencer Percy L. | System and method for group video teleconferencing using a bandwidth optimizer |
| US7111298B1 (en) * | 2001-09-04 | 2006-09-19 | Emc Corporation | Inter-processor competition for a shared resource |
| US20040103147A1 (en) * | 2001-11-13 | 2004-05-27 | Flesher Kevin E. | System for enabling collaboration and protecting sensitive data |
| US7376944B2 (en) * | 2001-12-18 | 2008-05-20 | Hewlett-Packard Development Company, L.P. | Hardware ROM upgrade through an internet or intranet service |
| US7023979B1 (en) * | 2002-03-07 | 2006-04-04 | Wai Wu | Telephony control system with intelligent call routing |
| US7987491B2 (en) * | 2002-05-10 | 2011-07-26 | Richard Reisman | Method and apparatus for browsing using alternative linkbases |
| SG111978A1 (en) * | 2002-11-20 | 2005-06-29 | Victor Company Of Japan | An mpeg-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control |
| US7484208B1 (en) * | 2002-12-12 | 2009-01-27 | Michael Nelson | Virtual machine migration |
| US7043623B2 (en) * | 2003-01-22 | 2006-05-09 | Intelitrac, Inc. | Distributed memory computing environment and implementation thereof |
| EP1625526B1 (en) * | 2003-04-03 | 2012-10-03 | Commvault Systems, Inc. | System and method for dynamically performing storage operations in a computer network |
| US6865756B2 (en) * | 2003-05-28 | 2005-03-15 | Graco Children's Products Inc. | Playard |
| JP2005062991A (ja) * | 2003-08-08 | 2005-03-10 | Komatsu Ltd | Webページ閲覧装置 |
| EP1548601A1 (fr) * | 2003-12-23 | 2005-06-29 | Stmicroelectronics SA | Contrôle d'accès mémoire dans un appareil électronique |
| US7827139B2 (en) | 2004-04-15 | 2010-11-02 | Citrix Systems, Inc. | Methods and apparatus for sharing graphical screen data in a bandwidth-adaptive manner |
| US7685128B2 (en) * | 2004-06-10 | 2010-03-23 | International Business Machines Corporation | Remote access agent for caching in a SAN file system |
| JP2006172067A (ja) * | 2004-12-15 | 2006-06-29 | Hitachi Ltd | データベース管理方法、システム及びプログラム |
| US7308539B2 (en) * | 2004-12-17 | 2007-12-11 | International Business Machines Corporation | Concurrent read access and exclusive write access to data in shared memory architecture |
| US20060161671A1 (en) * | 2005-01-14 | 2006-07-20 | Citrix Systems, Inc. | Method and systems for capture and replay of remote presentation protocol data |
| WO2007051343A1 (en) * | 2005-10-31 | 2007-05-10 | Zte Corporation | A bandwidth adaptive stream medium transmission system of a stream medium serving system and a method thereof |
| US8024290B2 (en) * | 2005-11-14 | 2011-09-20 | Yahoo! Inc. | Data synchronization and device handling |
| KR100740635B1 (ko) * | 2005-12-26 | 2007-07-18 | 엠텍비젼 주식회사 | 휴대형 단말기 및 휴대형 단말기에서의 공유 메모리 제어방법 |
| US20070233691A1 (en) * | 2006-03-30 | 2007-10-04 | Sap Ag | System and method for implementing accumulative rows within master tables |
-
2006
- 2006-05-04 US US11/381,702 patent/US8140618B2/en active Active
-
2007
- 2007-05-03 EP EP07776671A patent/EP2027669B1/en active Active
- 2007-05-03 CA CA2650927A patent/CA2650927C/en active Active
- 2007-05-03 CN CN201210350366.2A patent/CN102882696B/zh not_active Expired - Fee Related
- 2007-05-03 BR BRPI0711565A patent/BRPI0711565A8/pt not_active IP Right Cessation
- 2007-05-03 AU AU2007248550A patent/AU2007248550B2/en active Active
- 2007-05-03 CN CN200780016149.7A patent/CN101449515B/zh not_active Expired - Fee Related
- 2007-05-03 WO PCT/US2007/010729 patent/WO2007130511A2/en not_active Ceased
- 2007-05-03 JP JP2009509711A patent/JP2009535994A/ja not_active Withdrawn
-
2008
- 2008-11-04 IL IL195103A patent/IL195103A/en active IP Right Grant
-
2012
- 2012-02-09 US US13/369,985 patent/US8732242B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| AU2007248550B2 (en) | 2012-01-19 |
| US20120143955A1 (en) | 2012-06-07 |
| CN101449515B (zh) | 2012-11-14 |
| CN102882696B (zh) | 2015-07-29 |
| EP2027669B1 (en) | 2012-08-01 |
| US8732242B2 (en) | 2014-05-20 |
| CA2650927A1 (en) | 2007-11-15 |
| EP2027669A2 (en) | 2009-02-25 |
| BRPI0711565A8 (pt) | 2017-05-16 |
| AU2007248550A1 (en) | 2007-11-15 |
| WO2007130511A3 (en) | 2008-01-03 |
| CA2650927C (en) | 2016-03-22 |
| US20070260715A1 (en) | 2007-11-08 |
| US8140618B2 (en) | 2012-03-20 |
| JP2009535994A (ja) | 2009-10-01 |
| WO2007130511A2 (en) | 2007-11-15 |
| IL195103A0 (en) | 2009-09-22 |
| CN102882696A (zh) | 2013-01-16 |
| IL195103A (en) | 2013-04-30 |
| CN101449515A (zh) | 2009-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP1700228B1 (en) | Systems and methods for synchronizing data between communication devices in a networked environment | |
| BRPI0711565A2 (pt) | métodos e sistemas para comunicação n-para-n de largura de banda em um sistema distribuìdo | |
| US20190266124A1 (en) | Methods for enabling direct memory access (dma) capable devices for remote dma (rdma) usage and devices thereof | |
| CN109347795B (zh) | 登录验证方法、装置、系统及设备、介质 | |
| WO2019206296A1 (zh) | 用于网关服务器的故障处理方法和装置 | |
| WO2017166513A1 (zh) | 基于容器技术的应用服务无缝迁移方法和系统 | |
| US8121880B2 (en) | Method for calendar driven decisions in web conferences | |
| ES2954995T3 (es) | Método y sistema para sincronizar la trayectoria de la escritura de múltiples clientes | |
| US20120278398A1 (en) | System and method for reliable distributed communication with guaranteed service levels | |
| WO2018019262A1 (zh) | 云桌面系统、云桌面、云终端及组播方法 | |
| Adya et al. | Thialfi: a client notification service for internet-scale applications | |
| US8356102B2 (en) | Selective connection between corresponding communication components involved in a teleconference | |
| TW201811093A (zh) | 雲端資料傳輸系統及其動態分流方法 | |
| US10051053B2 (en) | System and method for transferring and synchronizing content between electronic devices | |
| JP2010176511A (ja) | ホットスタンバイシステム及びホットスタンバイ方法 | |
| US10355882B2 (en) | System and method for providing unified communications and collaboration (UCC) connectivity between incompatible systems | |
| JP2011076603A (ja) | 断続的接続環境におけるリアル・タイム・アプリケーションの性能を改善するための装置、システム、及び方法 | |
| CN103001782A (zh) | 一种社交网络的管理方法、系统和服务器 | |
| KR20190136499A (ko) | 메시징 서비스 제공 장치 및 방법 | |
| HK1178007A (en) | Methods and systems for bandwidth adaptive n-to-n communication in a distributed system | |
| KR20260027134A (ko) | 아웃오브밴드 라우팅 테이블을 이용한 단방향 전송(owt) 시스템에서의 풀 모션 비디오(fmv) 스트림 라우팅 | |
| CN121125735A (zh) | 一种应用于多端同步协作的通讯系统及方法 | |
| EP2296310B1 (en) | Computer networking | |
| CN114416383A (zh) | 一种多进程通信方法及装置 | |
| BLAKE | Watching the clocks: A proliferation of clocks, traffic speeds and protocols make timing essential in an age of merged networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| B25A | Requested transfer of rights approved |
Owner name: CITRIX SYSTEMS, INC. (US) |
|
| B25A | Requested transfer of rights approved |
Owner name: GETGO, INC. (US) |
|
| B06F | Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette] | ||
| B08F | Application dismissed because of non-payment of annual fees [chapter 8.6 patent gazette] |
Free format text: REFERENTE A 12A ANUIDADE. |
|
| B08K | Patent lapsed as no evidence of payment of the annual fee has been furnished to inpi [chapter 8.11 patent gazette] |
Free format text: EM VIRTUDE DO ARQUIVAMENTO PUBLICADO NA RPI 2512 DE 26-02-2019 E CONSIDERANDO AUSENCIA DE MANIFESTACAO DENTRO DOS PRAZOS LEGAIS, INFORMO QUE CABE SER MANTIDO O ARQUIVAMENTO DO PEDIDO DE PATENTE, CONFORME O DISPOSTO NO ARTIGO 12, DA RESOLUCAO 113/2013. |