BR112017001317B1 - Método implementado por computador e sistema para propagação de consciência de comunicação para sessões de comunicação - Google Patents

Método implementado por computador e sistema para propagação de consciência de comunicação para sessões de comunicação Download PDF

Info

Publication number
BR112017001317B1
BR112017001317B1 BR112017001317-7A BR112017001317A BR112017001317B1 BR 112017001317 B1 BR112017001317 B1 BR 112017001317B1 BR 112017001317 A BR112017001317 A BR 112017001317A BR 112017001317 B1 BR112017001317 B1 BR 112017001317B1
Authority
BR
Brazil
Prior art keywords
communication
network
communication session
session
awareness
Prior art date
Application number
BR112017001317-7A
Other languages
English (en)
Other versions
BR112017001317A2 (pt
Inventor
Vishal A. Narkar
Pascal F. Menezes
Gunter Leeb
William N. Hanlon
Amer A. Hassan
William George Verthein
Original Assignee
Microsoft Technology Licensing, Llc
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
Priority claimed from US14/449,002 external-priority patent/US9609064B2/en
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112017001317A2 publication Critical patent/BR112017001317A2/pt
Publication of BR112017001317B1 publication Critical patent/BR112017001317B1/pt

Links

Abstract

A presente invenção refere-se a técnicas para a propagação de ciência de comunicação para sessões de comunicação que são descritas. Em pelo menos algumas modalidades, uma sessão de comunicação se refere a uma troca de mídia de comunicação entre pontos finais de comunicação diferentes. De acordo com várias modalidades, a ciência de comunicação de uma sessão de comunicação é propagada dentre várias redes autônomas envolvidas no roteamento na sessão de comunicação. A ciência de comunicação, por exemplo, é propagada fora de banda a partir de um fluxo de dados que porta a sessão de comunicação.

Description

ANTECEDENTES
[001] Os sistemas de comunicação modernos têm um arranjo de capacidades, incluindo integração de várias modalidades de comunicação com serviços diferentes. Por exemplo, envio de mensagem instantânea, comunicações de voz/vídeo, compartilhamento de dados/ aplicativo, compartilhamento de arquivos para edição conjunta em videoconferências, e outras formas de comunicação podem ser combinadas com presença e informação de disponibilidade para assinantes. Esses sistemas podem prover aos assinantes as capacidades melhoradas, tais como provisão de instruções para partes chamando para várias categorias de status, contatos alternativos, informação de calendário e recursos comparáveis. Mais ainda, os sistemas de colaboração permitindo que usuários compartilhem e colaborem na criação e na modificação de vários tipos de documentos e conteúdos podem ser integrados com sistemas de comunicação multimodal provendo tipos diferentes de comunicação e capacidades de colaboração. Esses sistemas integrados às vezes são referidos como sistemas de Comunicação Unificada e Colaboração (UC&C).
[002] Embora sistemas de UC&C provejam uma flexibilidade aumentada em comunicações, eles também apresentam vários desafios de implementação. Por exemplo, um sistema de UC&C tipicamente utiliza múltiplas redes interconectadas para roteamento de várias comunicações. Uma vez que redes diferentes podem ser gerenciadas por entidades diferentes, os desafios assim surgem no gerenciamento de qualidade de comunicações para comunicações que sejam roteadas dentre redes gerenciadas independentemente. Ainda, UC&C tipicamente são implementadas através de um software que pode ser carregado em dispositivos móveis, por exemplo, tablets, smartphones, laptops e assim por diante. Assim, técnicas para gerenciamento de tráfego de comunicação de UC&C tipicamente têm que ser fluidas e dinâmicas para a acomodação de cenários de conexão mudando.
SUMÁRIO
[003] Este Sumário é provido para a introdução de uma seleção de conceitos em uma forma simplificada, que são adicionalmente descritos abaixo na Descrição Detalhada. Este Sumário não é pretendido para a identificação de recursos chaves ou recursos essenciais do assunto reivindicado, nem é pretendido para ser usado como um auxílio na determinação do escopo do assunto reivindicado.
[004] As técnicas para a propagação de consciência de comunicação para sessões de comunicação são descritas. Em pelo menos algumas modalidades, uma sessão de comunicação se refere a uma troca de mídia de comunicação entre pontos finais de comunicação diferentes. De acordo com várias modalidades, uma consciência de comunicação de uma sessão de comunicação é propagada dentre várias redes autônomas envolvidas no roteamento da sessão de comunicação. Uma consciência de comunicação, por exemplo, é propagada fora de banda a partir de um fluxo de dados que porta a sessão de comunicação.
BREVE DESCRIÇÃO DOS DESENHOS
[005] A descrição detalhada é descrita com referência às figuras associadas. Nas figuras, o(s) dígito(s) mais à esquerda de um número de referência identifica(m) a figura na qual o número de referência aparece primeiramente. O uso dos mesmos números de referência em instâncias diferentes na descrição e nas figuras pode indicar itens similares ou idênticos.
[006] A figura 1 é uma ilustração de um ambiente em uma implementação de exemplo que é operável para empregar técnicas discutidas aqui.
[007] A figura 2 ilustra um cenário de implementação de exemplo para propagação de consciência de comunicação de acordo com uma ou mais modalidades.
[008] A figura 3 ilustra um cenário de implementação de exemplo para a agregação e a propagação de consciência de comunicação de acordo com uma ou mais modalidades.
[009] A figura 4 é um fluxograma que descreve etapas em um método para propagação de consciência de comunicação de acordo com uma ou mais modalidades.
[0010] A figura 5 é um fluxograma que descreve etapas em um método para propagação de sessão de comunicação de acordo com uma ou mais modalidades.
[0011] A figura 6 é um fluxograma que descreve etapas em um método para aumento de consciência de comunicação de acordo com uma ou mais modalidades.
[0012] A figura 7 é um fluxograma que descreve etapas em um método para propagação de sessão de comunicação de uma mudança em atributos de percurso de roteamento de acordo com uma ou mais modalidades.
[0013] A figura 8 ilustra um sistema de exemplo e dispositivo de computação, conforme descrito com referência à figura 1, os quais são configurados para a implementação de modalidades de técnicas descritas aqui.
DESCRIÇÃO DETALHADA VISÃO GERAL
[0014] As técnicas para propagação de consciência de comunicação para sessões de comunicação são descritas. Pelo menos em algumas modalidades, uma sessão de comunicação se refere a uma troca em tempo real de mídia de comunicação entre pontos finais de comunicação diferentes. Os exemplos de uma sessão de comunicação incluem uma chamada de Voz por Protocolo de Internet (VoIP), uma chamada de vídeo, envio de mensagem de texto, uma transferência de arquivo, compartilhamento de conteúdo e/ou combinações dos mesmos. Pelo menos em algumas modalidades, uma sessão de comunicação representa uma sessão de Comunicação Unificada e Colaboração (UC&C).
[0015] De acordo com várias implementações, uma consciência de comunicação de uma sessão de comunicação é propagada dentre várias redes autônomas envolvidas no roteamento da sessão de comunicação. Geralmente, uma consciência de comunicação inclui transação da sessão de comunicação, tais como identificadores para pontos finais envolvidos na sessão de comunicação, identificadores para redes autônomas diferentes envolvidas no roteamento a sessão de comunicação, atributos de desempenho (por exemplo, qualidade de sessão) através das redes autônomas diferentes e assim por diante. Uma consciência de comunicação, por exemplo, é propagada fora de banda a partir de um fluxo de dados que porta a sessão de comunicação. Assim, uma propagação de consciência de comunicação para uma sessão de comunicação é independente da sessão de comunicação em si.
[0016] De acordo com várias implementações, uma consciência de comunicação para uma sessão de comunicação pode ser agregada a partir de redes autônomas diferentes, e propagada dentre as redes autônomas. Os conselheiros de rede podem ter uma interface com um outro através das redes autônomas diferentes para compartilhamento e acumulação de consciência de comunicação para uma sessão de comunicação. Por exemplo, uma comunicação inter-rede entre redes autônomas diferentes pode ser alavancada para agregar e propagar uma consciência de comunicação. De forma alternativa ou adicional, um sistema conselheiro de rede pode ser empregado, que representa uma funcionalidade integrada com a qual redes autônomas diferentes podem ter uma interface para comunicação e recebimento de consciência de comunicação.
[0017] Assim, as técnicas discutidas aqui proveem cenários diversos para esclarecimento das redes autônomas diferentes com consciência de comunicação. Essa consciência de comunicação permite que entidades envolvidas no roteamento de sessões de comunicação tomem decisões informadas com respeito ao roteamento e à manipulação de dados de sessão de comunicação.
[0018] Na discussão a seguir, um ambiente de exemplo é primeiramente descrito que é operável para emprego das técnicas descritas aqui. Em seguida, uma seção intitulada "Propagação de Consciência de Comunicação" discute algumas formas de exemplo para propagação de consciência de comunicação de acordo com uma ou mais modalidades. Seguindo-se a isto, uma seção intitulada "Cenários de Implementação de Exemplo" descreve alguns cenários de implementação de exemplo de acordo com uma ou mais modalidades. Em seguida, uma seção intitulada "Procedimentos de Exemplo" descreve alguns procedimentos de exemplo de acordo com uma ou mais modalidades. Finalmente, uma seção intitulada "Sistema e Dispositivo de Exemplo" descreve um sistema e um dispositivo de exemplo que são operáveis para o emprego de técnicas discutidas aqui de acordo com uma ou mais modalidades.
[0019] Tendo apresentado uma visão geral de implementações de exemplo de acordo com uma ou mais modalidades, considere agora um ambiente de exemplo em que implementações de exemplo podem ser empregadas.
AMBIENTE DE EXEMPLO
[0020] A figura 1 é uma ilustração de um ambiente 100 em uma implementação de exemplo que é operável para o emprego de técnicas para a propagação de consciência de comunicação para as sessões de comunicação descritas aqui. Geralmente, o ambiente 100 inclui vários dispositivos, serviços e redes que permitem uma comunicação através de uma variedade de modalidades diferentes. Por exemplo, o ambiente 100 inclui um dispositivo de cliente 102 conectado a uma rede de cliente 104. O dispositivo de cliente 102 pode ser configurado de uma variedade de formas, tais como um computador tradicional (por exemplo, um computador pessoal de mesa, um computador laptop e assim por diante), uma estação móvel, uma aparelhagem de entretenimento, um smartphone, um dispositivo usável, um netbook, um console de jogos, um dispositivo portátil (por exemplo, um tablet), e assim por diante.
[0021] A rede de cliente 104 é representativa de uma rede que provê ao dispositivo de cliente 102 uma conectividade com várias redes e/ou serviços, tal como a Internet. A rede de cliente 104 pode ser provida e/ou gerenciada por uma entidade de empresa em particular, tal como um Provedor de Serviços de Internet (ISP). Por exemplo, a rede de cliente 104 representa uma rede de provedor de acesso local (LAP) que provê ao dispositivo de cliente 102 a conectividade de rede. A rede de acesso de cliente 104 pode prover ao dispositivo de cliente 102 uma conectividade através de uma variedade de tecnologias de conectividade, tais como cabo de banda larga, linha de assinante digital (DSL), celular sem fio, conectividade de dados sem fio (por exemplo, WiFi™), portadora T (por exemplo, T1), Ethernet e assim por diante.
[0022] A rede de cliente 104 inclui componentes de rede de cliente 106, os quais são representativos de componentes de infraestrutura diferentes da rede de cliente 104, tais como hardware e lógica para implementação e manutenção da rede de cliente 104. Os exemplos dos componentes de rede de cliente 106 incluem comutadores de rede, roteadores, gateways e assim por diante. Os componentes de rede de cliente 106, por exemplo, incluem um controlador de rede de cliente 108 e gateways de cliente 110. O controlador de rede de cliente 108 é representativo da funcionalidade para gerenciamento de vários aspectos da rede de cliente 104, tais como conectividade e roteamento dos componentes de rede de cliente 106. Os gateways de cliente 110 são representativos de uma funcionalidade para roteamento de dados a partir da rede de cliente 104 para as outras redes. Os exemplos dos gateways de cliente 110 incluem um roteador de borda, um roteador de equipamento de instalações de cliente (CPE) e/ou outro dispositivo que tenha uma interface com outras redes para a troca de dados.
[0023] De acordo com várias implementações, o controlador de rede de cliente 108 mantém uma consciência de estado dos vários componentes de rede de cliente 106. Por exemplo, o controlador de rede de cliente 108 mantém um mapeamento dos componentes de rede de cliente 106 (por exemplo, em termos de localização) e atributos de desempenho do controlador de rede de cliente 108, tal como a qualidade de sinal para o controlador de rede de cliente diferente 108, atributos de qualidade de serviço (QoS) do controlador de rede de cliente 108, e assim por diante.
[0024] O controlador de rede de cliente 108, por exemplo, inclui uma conectividade e uma lógica que acessam uma informação de roteamento para os componentes de rede de cliente 106. Por exemplo, o controlador de rede de cliente 108 pode acessar um protocolo de gateway interior (IGP) e/ou uma topologia de comutação de árvore de extensão para os componentes de rede de cliente 106. Isto permite que o controlador de rede de cliente 108 identifique percursos de roteamento de dados diferentes na rede de cliente 104, e mapeie e mapeie novamente os percursos de roteamento diferentes.
[0025] São conectadas à rede de cliente 104 as redes intermediárias 112, as quais, por sua vez, são conectadas a uma rede de ponto final 114. As redes intermediárias 112 e a rede de ponto final 114 são representativas de tipos diferentes e instâncias de redes com fio e sem fio que podem ser implementadas e gerenciadas por respectivas entidades diferentes e de acordo com uma variedade de tecnologias de formação de rede diferentes, tais como cabo de banda larga, linha de assinante digital (DSL), celular sem fio, conectividade de dados sem fio (por exemplo, WiFi™), portadora T (por exemplo, T1), Ethernet e assim por diante.
[0026] De acordo com várias implementações, uma conectividade entre a rede de cliente 104, as redes intermediárias 112 e a rede de ponto final 114 proveem percursos de comunicação diferentes entre o dispositivo de cliente 102 e um ponto final 116. O ponto final 116 é representativo de dispositivos e/ou funcionalidades com os quais o dispositivo de cliente 102 pode se comunicar.
[0027] As redes intermediárias 112 incluem os componentes de rede intermediária 118, os quais, por sua vez, incluem controladores de rede intermediária 120 e roteadores de borda 122. Geralmente, os componentes de rede intermediária 118 são representativos de componentes de infraestrutura diferentes das redes intermediárias 112, tais como um hardware e uma lógica para a implementação e a manutenção das redes intermediárias 112. Os controladores de rede intermediária 120 são representativos de funcionalidades para o gerenciamento de vários aspectos das redes intermediárias 112, tais como conectividade e roteamento dos componentes de rede intermediária 118. Os roteadores de borda 122 são representativos de uma funcionalidade para roteamento de dados a partir das redes intermediárias 112 com outras redes, tais como a rede de cliente 104 e a rede de ponto final 114. De acordo com várias implementações, um ou mais dos roteadores de borda 122 têm uma interface com um ou mais dos gateways de cliente 110 para a provisão de pontos de emparelhamento entre a rede de cliente 104 e as redes intermediárias 112.
[0028] A rede de ponto final 114 inclui os componentes de rede de ponto final 124, os quais, por sua vez, incluem um controlador de rede de ponto final 126 e gateways de ponto final 128. Geralmente, o controlador de rede de ponto final 126 é representativo de uma funcionalidade para o gerenciamento de vários aspectos da rede de ponto final 114, tal como conectividade e roteamento para os componentes de rede de ponto final 124. Os gateways de ponto final 128 são representativos de uma funcionalidade para roteamento de dados a partir da rede de ponto final 114 para as outras redes, tais como as redes intermediárias 112. Por exemplo, um ou mais dos roteadores de borda 122 têm uma interface com um ou mais dos gateways de ponto final 128 para a provisão de pontos de emparelhamento entre a rede de ponto final 114 e as redes intermediárias 112. Os atributos de exemplo e aspectos dos componentes de rede de ponto final 124 são discutidos acima com referência aos componentes de rede de cliente 106.
[0029] De acordo com várias implementações, uma comunicação entre o dispositivo de cliente 102 e o ponto final 116 é facilitada através de um cliente de comunicação 130 do dispositivo de cliente 102, e um cliente de comunicação 132 do ponto final 116. Geralmente, os clientes de comunicação 130, 132 são representativos de funcionalidades para se permitirem formas diferentes de comunicação através do dispositivo de cliente 102 e do ponto final 116. Os exemplos dos clientes de comunicação 130, 132 incluem um aplicativo de comunicação de voz (por exemplo, um cliente de VoIP), um aplicativo de comunicação de vídeo, um aplicativo de envio de mensagem, um aplicativo de compartilhamento de conteúdo e combinações dos mesmos. Os clientes de comunicação 130, 132, por exemplo, permitem que modalidades de comunicação diferentes sejam combinadas para a provisão de cenários de comunicação diversos.
[0030] Pelo menos em algumas implementações, os clientes de comunicação 130, 132 representam interfaces para um serviço de comunicação 134. Geralmente, o serviço de comunicação 134 é representativo de um serviço para execução de várias tarefas para o gerenciamento de comunicação entre o dispositivo de cliente 102 e o ponto final 116. O serviço de comunicação 134, por exemplo, pode gerenciar uma iniciação, uma moderação e uma terminação de sessões de comunicação entre os clientes de comunicação 130, 132.
[0031] O serviço de comunicação 134 mantém uma presença através de muitas redes diferentes e pode ser implementado de acordo com uma variedade de arquiteturas diferentes, tais como um serviço baseado em nuvem, um serviço distribuído, um serviço baseado na web e assim por diante. Os exemplos do serviço de comunicação 134 incluem um serviço de VoIP, um serviço de conferência on-line, um serviço de UC&C, e assim por diante. Em pelo menos algumas modalidades, o serviço de comunicação 134 pode ser implementado como ou ser conectado a uma central telefônica privada (PBX) em comunicação com uma rede de telefonia pública comutada ("PSTN") para habilitação de comunicação de voz entre o dispositivo de cliente 102 e outros pontos finais, tal como o ponto final 116.
[0032] Além das técnicas para a propagação de consciência de comunicação para sessões de comunicação discutidas aqui, o ambiente 100 inclui um sistema de conselheiro de rede 136. Geralmente, o sistema de conselheiro de rede 136 é representativo de uma funcionalidade de propagação de consciência de comunicação para entidades diferentes. Uma "consciência de comunicação", por exemplo, refere-se a uma informação referente a instâncias específicas de sessões de comunicação, redes envolvidas no roteamento de sessões de comunicação, usuários que participam em sessões de comunicação, e assim por diante.
[0033] De acordo com várias implementações, o sistema de conselheiro de rede 136 tem uma interface com um conselheiro de rede de cliente 138 da rede de cliente 104, conselheiros de rede intermediária 140 das redes intermediárias 112 e um conselheiro de rede de ponto final 142 da rede de ponto final 114. O sistema de conselheiro de rede 136 pode receber uma consciência de comunicação a partir de conselheiros de rede diferentes, e pode propagar uma consciência de comunicação dentre os conselheiros de rede diferentes para permitir que as redes individuais mantenham uma consciência de comunicação dos atributos de uma sessão de comunicação e, assim, tomar decisões inteligentes para a otimização de desempenho de sessão de comunicação. Pelo menos em algumas implementações, os conselheiros de rede podem ser empregados nas redes diferentes como agentes do sistema de conselheiro de rede 136. Alternativamente, os conselheiros de rede podem ser empregados e/ou implementados independentemente do sistema de conselheiro de rede 136.
[0034] De acordo com várias implementações, os conselheiros de rede são representativos de uma funcionalidade para a propagação de consciência de comunicação para componentes de rede de suas respectivas redes, e para manutenção de uma consciência de comunicação de atributos de suas respectivas redes. O conselheiro de rede de cliente 138, por exemplo, é representativo de uma funcionalidade para se ter uma interface com o controlador de rede de cliente 108 e/ou outros componentes de rede de cliente 106 e serve como um portal de informação entre os componentes de rede de cliente 106 e outras entidades, tais como o sistema de conselheiro de rede 136 e/ou outros conselheiros de rede.
[0035] Os conselheiros de rede intermediária 140 são representativos de funcionalidades para se ter uma interface com os controladores de rede intermediária 120 e/ou componentes de rede intermediária 118, e servem como portais de informação entre os componentes de rede intermediária 118 e as outras entidades, tais como o sistema de conselheiro de rede 136 e/ou outros conselheiros de rede. De acordo com várias implementações, cada uma das partes individuais das redes intermediárias 112 inclui uma respectiva instância diferente dos conselheiros de rede intermediária 140.
[0036] O conselheiro de rede de ponto final 142 é representativo de uma funcionalidade para se ter uma interface com o controlador de rede de ponto final 126 e/ou outros componentes de rede de ponto final 124, e serve como um portal de informação entre os componentes de rede de ponto final 124 e outras entidades, tais como o sistema de conselheiro de rede 136 e/ou outros conselheiros de rede. A menos que um dentre o conselheiro de rede de cliente 138, os conselheiros de rede intermediária 140 ou o conselheiro de rede de ponto final 142 seja especificamente referenciado, os termos "conselheiro de rede", conforme é usado aqui, podem se referir a um ou a todos dentre o conselheiro de rede de cliente 138, os conselheiros de rede intermediária 140 ou o conselheiro de rede de ponto final 142.
[0037] De acordo com uma ou mais implementações, o sistema de conselheiro de rede 136 pode ser implementado e/ou mantido pelo serviço de comunicação 134, tal como para a propagação de consciência de comunicação para sessões de comunicação gerenciadas pelo serviço de comunicação 134. Alternativamente, o sistema de conselheiro de rede 136 pode ser implementado separadamente e/ou de forma independente do serviço de comunicação 134. O sistema de conselheiro de rede 136, por exemplo, pode agregar e propagar uma consciência de comunicação para entidades e/ou sistemas diferentes envolvidos em sessões de comunicação, tais como clientes de comunicação e serviços de comunicação diferentes.
[0038] Um banco de dados (DB) de rede de cliente 144 é mantido para a rede de cliente 104 e é representativo de uma funcionalidade para o rastreamento de vários tipos de informação para a rede de cliente 104. Por exemplo, o DB de rede de cliente 144 pode ser empregado para o rastreamento de uma informação de estado para vários componentes de rede de cliente 106, tais com atributos de desempenho e estatísticas para os componentes de rede de cliente 106. O controlador de rede de cliente 108, por exemplo, pode comunicar uma informação de estado para os componentes de rede de cliente 106 para o conselheiro de rede de cliente 138, que armazena a informação de estado como parte do DB de rede de cliente 144. De forma alternativa ou adicional, o controlador de rede de cliente 108 pode interagir com o DB de rede de cliente 144 diretamente, tal como para preenchimento da informação e para recuperação da informação a partir do DB de rede de cliente 144. De acordo com várias implementações, uma informação a partir do DB de rede de cliente 144 pode ser empregada para a tomada de várias decisões, tal como para a determinação de percursos de roteamento para sessões de comunicação do dispositivo de cliente 102.
[0039] Os bancos de dados (DBs) de rede intermediária 146 são mantidos para as redes intermediárias 112 e são representativos de funcionalidades para rastreamento de vários tipos de informação para as redes intermediárias 112. De acordo com várias implementações, cada uma das partes individuais das redes intermediárias 112 inclui uma respectiva instância diferente dos DBs de rede intermediária 146. Por exemplo, uma parte individual dos DBs de rede intermediária 146 pode ser empregada para o rastreamento de uma informação de estado para os respectivos componentes de rede intermediária 118, tais como atributos de desempenho e estatísticas para os componentes de rede intermediária 118 para uma respectiva rede intermediária 112. Outros aspectos e funcionalidades dos DBs de rede intermediária 146 são discutidos acima com referência ao DB de rede de cliente 144.
[0040] Um banco de dados (DB) de rede de ponto final 148 é mantido para a rede de ponto final 114, e é representativo de uma funcionalidade para o rastreamento de vários tipos de informação para a rede de ponto final 114. Por exemplo, o DB de rede de ponto final 148 pode ser empregado para o rastreamento de uma informação de estado para vários componentes de rede de ponto final 124, tais como tais como atributos de desempenho e estatísticas para os componentes de rede de ponto final 124. Outros aspectos e funcionalidades do DB de rede de ponto final 148 são discutidos acima com referência ao DB de rede de cliente 144.
[0041] De acordo com uma ou mais implementações, o sistema de conselheiro de rede 136 mantém um banco de dados (DB) de rede de sistema 150, o qual é representativo de uma funcionalidade para o rastreamento de uma informação variada referente às redes diferentes do ambiente 100. Por exemplo, o DB de rede de sistema 150 mantém uma consciência de estado ativo de atributos de rede da rede de cliente 104, das redes intermediárias 112 e da rede de ponto final 114. Os exemplos desses atributos de rede incluem atributos de desempenho, tais como atributos de desempenho atuais e históricos de sessões de comunicação através das redes diferentes.
[0042] O DB de rede de sistema 150 também pode rastrear uma consciência de comunicação para várias sessões de comunicação atuais e históricas, tais como identificadores para sessões de comunicação individuais, pontos finais envolvidos em sessões de comunicação individuais, redes através das quais sessões de comunicação individuais são roteadas e assim por diante. Conforme adicionalmente detalhado aqui, uma consciência de comunicação referente a uma sessão de comunicação pode ser propagada fora de banda a partir dos dados da sessão de comunicação em si. Assim, as decisões referentes à manipulação e ao roteamento de dados de sessões de comunicação podem ser tomadas sem um processamento e/ou uma manipulação dos dados reais de sessão de comunicação.
[0043] Pelo menos em algumas implementações, uma consciência de comunicação referente às sessões de comunicação e condições de rede pode ser propagada dentre os conselheiros de rede diferentes para a provisão de uma consciência fora de banda de condições afetando uma sessão de comunicação. Por exemplo, os conselheiros de rede podem se comunicar uns com os outros para compartilhamento de uma informação e independentes do sistema de conselheiro de rede 136. De forma alternativa ou adicional, uma consciência de comunicação referente a sessões de comunicação pode ser propagada a partir dos conselheiros de rede individuais para o sistema de conselheiro de rede 136, o que pode agregar a informação como parte do DB de rede de sistema 150. O sistema de conselheiro de rede 136 pode compartilhar uma consciência de comunicação dentre as redes diferentes para se permitir que uma consciência de comunicação seja propagada para as entidades envolvidas no roteamento e na manipulação de sessões de comunicação. Como ainda uma outra implementação, os controladores de rede individuais podem se comunicar diretamente com o sistema de conselheiro de rede 136 para o envio e o recebimento de uma consciência de comunicação referente às sessões de comunicação.
[0044] Geralmente, a rede de cliente 104, as redes intermediárias 112 e a rede de ponto final 114 representam, cada uma, redes autônomas individuais que se conectam a cada outra através de seus respectivos pontos de emparelhamento, por exemplo, gateways, roteadores de borda e assim por diante. As redes diferentes, por exemplo, podem ser implementadas e gerenciadas por entidades diferentes, tais como uma infraestrutura e provedores de serviços diferentes. Assim, as implementações discutidas aqui proveem uma variedade de ambientes diferentes em que uma consciência de comunicação pode ser propagada dentre redes autônomas diferentes envolvidas no rote ou na manipulação de sessões de comunicação.
[0045] Tendo descrito um ambiente de exemplo em que as técnicas descritas aqui podem operar, considere, agora, uma discussão de formas de exemplo de propagação de vários atributos de sessões de comunicação em sistemas de comunicação de acordo com uma ou mais modalidades.
PROPAGAÇÃO DE CONSCIÊNCIA DE COMUNICAÇÃO
[0046] De acordo com várias modalidades, as técnicas podem ser empregadas para se esclarecerem dinamicamente várias entidades com consciência de comunicação, tal como uma informação sobre sessões de comunicação, uma informação sobre condições de rede e assim por diante. Por exemplo, os eventos de notificação podem ser gerados, que incluem vários atributos de sessões de comunicação e condições de rede. Os eventos de notificação podem ser propagados para entidades diferentes ainda para técnicas para propagação de consciência de comunicação para sessões de comunicação discutida aqui.
[0047] Pelo menos em algumas modalidades, os eventos de notificação podem ser configurados usando-se uma interface de programação de aplicativo de comunicação (API) que pode ser alavancada para a configuração e comunicação de consciência de comunicação para várias entidades envolvidas em sessões de comunicação. Por exemplo, a API de comunicação pode identificar eventos de diálogo e eventos de sessão para o que atributos de uma sessão de comunicação e/ou condições de rede podem ser identificados. Considere, por exemplo, os eventos e atributos a seguir que podem ser portados através de um evento de notificação gerado usando-se a API de comunicação:
[0048] Eventos de Diálogo - Estes eventos se aplicam a várias porções de uma sessão de comunicação, tais como o começo, uma atualização e o fim de uma sessão de comunicação. Um evento de diálogo pode incluir um ou mais dos atributos de exemplo a seguir.
[0049] (1) Identificador de Rede: estes atributos podem ser alavancados para a identificação de uma rede, tal como uma rede a partir da qual um evento de diálogo é recebido. Pelo menos em algumas implementações, o identificador de rede pode incluir um número de sistema autônomo (AS) que identifica uma rede em particular. Com referência ao ambiente 100, por exemplo, o identificador de rede pode identificar a rede de cliente 104, uma rede intermediária 112 e/ou uma rede de ponto final 114.
[0050] (2) Estampa de Tempo: este atributo pode ser alavancado para a especificação de eletrodos para um começo de uma sessão de comunicação, atualizações que ocorrem durante uma sessão de comunicação, e um fim (por exemplo, uma terminação) de uma sessão de comunicação.
[0051] (3) Endereço de IP de Fonte: este atributo pode ser alavancado para a especificação de um endereço de IP para um dispositivo que seja uma fonte de mídia durante uma sessão de comunicação, por exemplo, um dispositivo que inicia uma sessão de comunicação. Com referência ao ambiente 100, por exemplo, o endereço de IP de fonte pode ser para o dispositivo de cliente 102 ou o ponto final 116.
[0052] (4) Endereço de IP de Destino: este atributo pode ser alavancado para a especificação de um endereço de IP para um dispositivo que é para receber mídia como parte de uma sessão de comunicação. Com referência ao ambiente 100, por exemplo, o endereço de IP de destino pode ser para o dispositivo de cliente 102 ou o ponto final 116.
[0053] (5) Tipo de Transporte: este atributo pode ser alavancado para a especificação de um tipo de transporte ou uma combinação de tipos de transporte para uma sessão de comunicação. Os exemplos de tipos de transporte incluem protocolo de controle de transmissão (TCP), protocolo de datagrama de usuário (UDP) e assim por diante.
[0054] (6) Porta de Fonte: este atributo pode ser alavancado para a especificação de um identificador para uma porta em um dispositivo de fonte, por exemplo, um dispositivo de fonte identificado pelo endereço de IP de fonte referenciado acima.
[0055] (7) Porta de Destino: este atributo pode ser alavancado para especificação de um identificador para uma porta em um dispositivo de destino, por exemplo, um dispositivo de destino identificado pelo endereço de IP de destino referenciado acima.
[0056] (8) Tipo de Mídia: este atributo pode ser alavancado para a especificação de um tipo de mídia e/ou tipos que são para serem transmitidos e/ou estão sendo transmitidos como parte de uma sessão de comunicação. Conforme discutido em outro lugar aqui, a sessão de comunicação pode envolver múltiplos tipos diferentes de mídia. Assim, o atributo de Tipo de Mídia pode ser empregado para a identificação de tipos de mídia em uma sessão de comunicação, tal como para a aplicação das políticas de serviço discutidas aqui.
[0057] (9) Estimativa de Largura de Banda: este atributo pode ser alavancado para a especificação de uma largura de banda estimada que é para ser alocada para uma sessão de comunicação. A largura de banda estimada, por exemplo, pode ser com base em vários fatores, tais como um nível de privilégio associado a um usuário, tipo e/ou tipos de mídia incluídos em uma sessão de comunicação, e assim por diante.
[0058] (10) Para: este atributo pode ser alavancado para a identificação de um usuário para o qual uma mídia em uma sessão de comunicação é para ser transmitida.
[0059] (11) De: este atributo pode ser alavancado para a identificação de um usuário a partir do qual uma mídia em uma sessão de comunicação é transmitida.
[0060] (12) Codificador - decodificador: este atributo pode ser alavancado para a especificação de um codificador - decodificador ou de codificadores - decodificadores utilizados como parte de uma sessão de comunicação.
[0061] (13) Código de Erro: este atributo pode ser alavancado para a especificação de vários códigos de erro para erros que podem ocorrer como parte de uma sessão de comunicação. Por exemplo, os erros podem incluir erros que ocorrem durante uma iniciação da sessão de comunicação, erros que ocorreram durante uma sessão de comunicação, erros que ocorrem quando uma sessão de comunicação é terminada, e assim por diante.
[0062] Eventos de Problema de Sessão - Estes eventos podem ser gerados e aplicados quando uma sessão de comunicação experimenta erros, degradação de desempenho e assim por diante. Um evento de problema de sessão pode incluir um ou mais dos atributos discutidos acima com referência aos Eventos de Diálogo, e também pode incluir um ou mais dos atributos a seguir.
[0063] (1) Degradação de Pontuação de Opinião Média (MOS): este atributo pode ser alavancado para a especificação de uma MOS para uma sessão de comunicação. O atributo, por exemplo, pode ser usado para indicar que uma qualidade geral de uma sessão de comunicação diminuiu.
[0064] (2) Tempo Interchegada de Instabilidade: este atributo pode ser alavancado para a especificação de valores de instabilidade para uma sessão de comunicação. O atributo, por exemplo, pode ser usado para indicar que um valor ou valores de instabilidade aumentaram, por exemplo, excederam a um limite de valor de instabilidade especificado.
[0065] (3) Taxa de Perda de Pacote: este atributo pode ser alavancado para a especificação de uma taxa de perda de pacote para uma sessão de comunicação. O atributo, por exemplo, pode ser usado para indicar que uma taxa de perda de pacote aumentou, por exemplo, excedeu a um limite de valor de taxa de perda de pacote especificado.
[0066] (4) Atraso de Ida e Volta (RTD): este atributo pode ser alavancado para a especificação de valores de RTD para pacotes em sessões de comunicação. O atributo, eletrodo pode ser usado para indicar que valores de RTD para pacotes aumentaram, por exemplo, excederam a um limite de valor de RTD especificado.
[0067] (5) Relação de Ocultação: este atributo pode ser alavancado para a especificação de uma relação cumulativa de tempo de ocultação por tempo de diálogo observada após o começo de uma sessão de comunicação. O atributo, por exemplo, pode ser usado para a especificação que uma relação de ocultação aumentou, por exemplo, excedeu a um limite de valor de relação de ocultação especificado.
[0068] Assim, várias notificações discutidas aqui podem incluir um ou mais dos atributos discutidos acima e podem ser usadas para a propagação de consciência de comunicação para várias entidades. Pelo menos em algumas implementações, os atributos podem ser ligados a redes em particular e/ou componentes de rede para a caracterização de atributos de desempenho das redes e/ou dos componentes de rede.
[0069] Tendo descrito formas de exemplo de propagação de consciência de comunicação, considere, agora, alguns cenários de implementação de exemplo para propagação de consciência de comunicação para sessões de comunicação de acordo com uma ou mais modalidades.
CENÁRIOS DE IMPLEMENTAÇÃO DE EXEMPLO
[0070] A seção a seguir descreve cenários de implementação de exemplo para propagação de consciência de comunicação para sessões de comunicação de acordo com uma ou mais implementações. Os cenários de implementação podem ser implementados no ambiente 100 discutido acima e/ou em qualquer outro ambiente adequado.
[0071] A figura 2 ilustra um cenário de implementação de exemplo 200 para propagação de consciência de comunicação de acordo com uma ou mais implementações. O cenário 200 inclui várias entidades e componentes introduzidos acima com referência ao ambiente 100.
[0072] No cenário 200, um usuário autentica o dispositivo de cliente 102 com o serviço de comunicação 134 através do cliente de comunicação 130. O usuário então introduz uma requisição para iniciar uma sessão de comunicação com o ponto final 116. Por exemplo, o usuário seleciona um índice indicando uma requisição para iniciar uma sessão de comunicação, tais como pela introdução de um número de telefone para o ponto final 116, a seleção de um contato a partir de uma lista de contato, a seleção de um hiperlink e assim por diante.
[0073] Em resposta à requisição para iniciar a sessão de comunicação, uma sessão de comunicação 202 é estabelecida entre o cliente de comunicação 130 do dispositivo de cliente 102, e o cliente de comunicação 132 do ponto final 116. De acordo com várias implementações, um percurso de roteamento para roteamento da sessão de comunicação é selecionado usando-se qualquer algoritmo adequado, tal como um algoritmo de percurso mais curto aplicado pelo controlador de rede de cliente 108, os controladores de rede intermediária 120 e/ou o controlador de rede de ponto final 126. Pelo menos em algumas modalidades, o percurso de roteamento é derivado com base em um protocolo de roteamento em particular, tal como um Protocolo de Gateway de Borda (BGP).
[0074] Ainda em resposta à requisição para iniciar a sessão de comunicação 202, o cliente de comunicação 130 envia um evento de diálogo de começo 204 para o conselheiro de rede de cliente 138. O evento de diálogo de começo 204 inclui uma informação para identificar unicamente a sessão de comunicação 202. Por exemplo, o evento de notificação referenciado acima pode ser usado para a comunicação de atributos da sessão de comunicação 202, tais como identificadores de Fonte e Destino, números de porta, tipo de sessão, codificador - decodificador e assim por diante.
[0075] Com base no evento de diálogo de começo 204, o conselheiro de rede de cliente 138 comunica uma consulta de sessão 206 para o controlador de rede de cliente 108 para uma informação sobre a sessão de comunicação 202. Geralmente, a consulta de sessão 206 inclui uma informação a partir do evento de diálogo de começo 204, tal como para a identificação da sessão de comunicação 202. A consulta de sessão 206 também requisita uma informação de roteamento para a sessão de comunicação 202.
[0076] Em resposta à consulta de sessão 206, o controlador de rede de cliente 108 determina uma informação de percurso de roteamento para a sessão de comunicação 202 na rede de cliente 104, tal como um identificador para um gateway de cliente 110 em particular através do qual a sessão de comunicação 202 está saindo da rede de cliente 104 para as redes intermediárias 112. O controlador de rede de cliente 108 gera uma mensagem de sessão 208 que inclui a informação de roteamento. A mensagem de sessão 208 também pode ser preenchida com uma outra informação, tal como atributos de desempenho do percurso de roteamento na rede de cliente 104. Os exemplos desses atributos de desempenho incluem largura de banda disponível, taxa de erro de pacote, instabilidade, taxa de perda de pacote, e assim por diante, observados através do percurso de roteamento. O controlador de rede de cliente então comunica a mensagem de sessão 208 para o conselheiro de rede de cliente 138.
[0077] Adicionalmente para o cenário 200, o conselheiro de rede de cliente 138 gera uma notificação de sessão de cliente 210 que é preenchida com uma informação a partir do evento de diálogo de começo 204 e da mensagem de sessão 208, tais como os identificadores para os pontos finais envolvidos na sessão de comunicação 202, uma informação de roteamento (por exemplo, um gateway de cliente 110 a partir do qual a sessão de comunicação está saindo da rede de cliente 104), atributos de desempenho do percurso de roteamento e assim por diante. O conselheiro de rede de cliente 138 comunica a notificação de sessão de cliente 210 para um conselheiro de rede intermediária 140 para uma rede intermediária 112 que é a próxima rede ao longo do percurso de roteamento da sessão de comunicação 202. Por exemplo, o conselheiro de rede de cliente 138 comunica a notificação de sessão de cliente 210 através do gateway de cliente 110 que é identificado pelo controlador de rede de cliente 108 como sendo o gateway de saída para a sessão de comunicação 202.
[0078] Assim sendo, o conselheiro de rede intermediária 140 recebe a notificação de sessão de cliente 210 e analisa gramaticalmente a notificação para determinar a informação variada incluída ali. O conselheiro de rede intermediária 140, por exemplo, identifica o dispositivo de cliente 102 e o ponto final 116 a partir da notificação de sessão de cliente 210. De acordo com várias implementações, o conselheiro de rede intermediária 140 armazena uma informação a partir da notificação de sessão de cliente 210 no DB de rede intermediária 146. Por exemplo, um registro de sessão para a sessão de comunicação 202 é criado no DB de rede intermediária 146, e a informação a partir da notificação de sessão de cliente 210 é armazenada como parte do registro de sessão.
[0079] Continuando com o cenário 200, o conselheiro de rede intermediária 140 gera uma consulta de sessão 212 que inclui uma informação a partir da notificação de sessão de cliente 210, tais como identificadores para o dispositivo de cliente 102 e o ponto final 116, atributos de desempenho da rede de cliente 104, e assim por diante. O conselheiro de rede intermediária 140 comunica a consulta de sessão 212 para o controlador de rede intermediária 120 para a respectiva rede intermediária 112. Geralmente, a consulta de sessão 212 requisita uma informação de roteamento para a sessão de comunicação 202 na rede intermediária 112.
[0080] O controlador de rede intermediária 120 recebe a consulta de sessão 212 e determina um percurso de roteamento para a sessão de comunicação 202 na rede intermediária 112, tal como com base na identificação do ponto final 116 (por exemplo, o endereço de IP e/ou outro identificador) e utilizando qualquer algoritmo de percurso de roteamento e/ou protocolo adequados. O controlador de rede intermediária 120 retorna uma resposta de sessão 214 para o conselheiro de rede intermediária 140 que identifica um percurso de roteamento da sessão de comunicação 202 na rede intermediária 112.
[0081] A resposta de sessão 214, por exemplo, identifica componentes de rede intermediária 118 através dos quais a sessão de comunicação é roteada, e um roteador de borda 122 através do qual a sessão de comunicação 202 sai da rede intermediária 112 em sua forma para o ponto final 116. A resposta de sessão 214 ainda inclui atributos de desempenho do percurso de roteamento.
[0082] Adicionalmente ao cenário 200, o conselheiro de rede intermediária 140 gera uma notificação de sessão intermediária 216 que inclui uma informação de roteamento para a sessão de comunicação 202 a partir da resposta de sessão 214. O conselheiro de rede intermediária 140 também preenche a notificação de sessão intermediária 216 com uma informação de roteamento a partir da notificação de sessão de cliente 210. Assim, de acordo com várias implementações, a notificação de sessão intermediária 216 inclui uma informação de roteamento de percurso cumulativa para a sessão de comunicação 202 que começa no dispositivo de cliente 102 até o roteador de borda 122 através do qual a sessão de comunicação 202 sai da rede intermediária 112 e entra na rede de ponto final 114.
[0083] Além de ser usada para a geração da notificação de sessão intermediária 216, essa informação de roteamento de percurso cumulativa pode ser armazenada no DB de rede intermediária 146. Por exemplo, a informação de roteamento de percurso cumulativa pode ser armazenada como parte de um registro de sessão para a sessão de comunicação 202, como parte de um registro de rede para a rede de cliente 104 e a rede intermediária 112, e assim por diante.
[0084] Embora o cenário 200 seja discutido com referência à sessão de comunicação 202 sendo comunicada através de uma única rede intermediária 112, é para ser apreciado que, pelo menos em algumas implementações, a sessão de comunicação 202 pode viajar através de múltiplas redes intermediárias 112 entre a rede de cliente 104 e a rede de ponto final 114. Assim, o processo descrito acima para avaliação e comunicação de uma informação de percurso de roteamento pode ser realizado múltiplas vezes (por exemplo, de forma iterativa) através de múltiplas redes intermediárias diferentes 112 para agregação de forma cumulativa de uma informação de percurso de roteamento para a sessão de comunicação 202 através das múltiplas redes intermediárias diferentes 112. Assim sendo, em uma ou mais implementações, a notificação de sessão intermediária 216 inclui uma informação de percurso de roteamento para a rede de cliente 104 e múltiplas redes intermediárias 112.
[0085] Continuando com o cenário 200, o conselheiro de rede intermediária 140 comunica a notificação de sessão intermediária 216 para o conselheiro de rede de ponto final 142. Por exemplo, o conselheiro de rede intermediária 140 transmite a notificação de sessão intermediária 216 através de um roteador de borda 122 que é identificado pelo controlador de rede intermediária 120 como sendo o roteador de saída para a sessão de comunicação 202.
[0086] O conselheiro de rede de ponto final 142 recebe a notificação de sessão intermediária 216 e analisa gramaticalmente a notificação para a determinação da informação variada incluída aqui. O conselheiro de rede de ponto final 142, por exemplo, identifica o dispositivo de cliente 102 e o ponto final 116 a partir da notificação de sessão intermediária 216. O conselheiro de rede de ponto final 142 gera uma consulta de sessão 218 que inclui uma informação a partir da notificação de sessão intermediária 216, tais como os identificadores para o dispositivo de cliente 102 e o ponto final 116, atributos de desempenho da rede de cliente 104 e/ou da rede intermediária 112, e assim por diante. O conselheiro de rede de ponto final 142 comunica a consulta de sessão 218 para o controlador de rede de ponto final 126. Geralmente, a consulta de sessão 218 requer uma informação de roteamento para a sessão de comunicação 202 na rede de ponto final 114.
[0087] De acordo com várias implementações, o conselheiro de rede de ponto final 142 armazena a informação a partir da notificação de sessão intermediária 216 no DB de rede de ponto final 148, tal como parte de um registro de sessão para a sessão de comunicação 202.
[0088] Adicionalmente ao cenário 200, o controlador de rede de ponto final 126 recebe a consulta de sessão 218 e determina um percurso de roteamento para a sessão de comunicação 202 na rede de ponto final 114, tal como com base na identificação do ponto final 116 (por exemplo, o endereço de IP e/ou outro identificador) e utilizando qualquer algoritmo de percurso de roteamento e/ou protocolo adequados. O controlador de rede de ponto final 126 retorna uma resposta de sessão 220 para o conselheiro de rede de ponto final 142 que identifica um percurso de roteamento da sessão de comunicação 202 na rede de ponto final 114.
[0089] A resposta de sessão 220, por exemplo, identifica componentes de rede de ponto final 124 através dos quais a sessão de comunicação 202 é roteada para a partir do gateway de ponto final 128 até o ponto final 116. A resposta de sessão 220 ainda inclui atributos de desempenho do percurso de roteamento.
[0090] O conselheiro de rede de ponto final 142 armazena uma informação a partir da resposta de sessão 220 no DB de rede de ponto final 148. Por exemplo, a informação é armazenada em um registro de sessão para a resposta de sessão 220, um registro de rede e assim por diante.
[0091] Assim sendo, o conselheiro de rede de ponto final 142 agrega uma informação de rota de percurso cumulativa para a sessão de comunicação 202, começando a partir da rede de cliente 104, através da(s) rede(s) intermediária(s) 112, e na rede de ponto final 114 até o ponto final 116. O conselheiro de rede de ponto final 142 pode armazenar esta informação no DB de rede de ponto final 148, tal como parte de um registro de sessão para a sessão de comunicação 202, registros de rede para as redes diferentes envolvidas na comunicação da sessão de comunicação 202, e assim por diante.
[0092] De acordo com várias implementações, o conselheiro de rede de ponto final 142 pode comunicar a informação de rota de percurso cumulativa para outras entidades, tal como de volta para o conselheiro de rede intermediária 140 e/ou o conselheiro de rede de cliente 138. Assim, uma consciência de comunicação de condições referentes à sessão de comunicação 202 pode ser compartilhada dentre redes autônomas envolvidas no roteamento e/ou na manipulação da sessão de comunicação.
[0093] A figura 3 ilustra um cenário de implementação de exemplo 300 para agregação e propagação de consciência de comunicação de acordo com uma ou mais implementações. O cenário 300 inclui várias entidades e componentes introduzidos acima com referência ao ambiente 100. Pelo menos em algumas implementações, o cenário 300 representa um cenário alternativo ou adicional ao cenário 200.
[0094] No cenário 300, uma sessão de comunicação 302 é iniciada ou programada para ser iniciada entre o dispositivo de cliente 102 e o ponto final 116. Assim sendo, o conselheiro de rede de cliente 138 avalia uma informação de percurso de roteamento para a sessão de comunicação 302 através da rede de cliente 104. As formas de exemplo de avaliação de uma informação de roteamento de percurso são discutidas acima, e podem incluir uma consulta ao controlador de rede de cliente 108 quanto à informação de roteamento de percurso.
[0095] O conselheiro de rede de cliente 138 gera uma notificação de sessão de cliente 304 que inclui a informação de roteamento de percurso, e comunica a notificação de sessão de cliente 304 para o sistema de conselheiro de rede 136. O sistema de conselheiro de rede 136 avalia uma informação de roteamento de percurso a partir da notificação de sessão de cliente 304, tais como identificadores para o dispositivo de cliente 102 e o ponto final 116, componentes de rede de cliente 106 através dos quais a sessão de comunicação 302 é roteada, atributos de desempenho da sessão de comunicação 302 através da rede de cliente 104 e assim por diante. O sistema de conselheiro de rede 136 armazena a informação de roteamento de percurso no DB de rede de sistema 150, como parte de um registro de sessão para a sessão de comunicação 302, um registro de rede para a rede de cliente 104, e assim por diante.
[0096] Continuando com o cenário 300, o conselheiro de rede intermediária 140 avalia uma informação de roteamento de percurso para a sessão de comunicação 302 através da rede intermediária 112. As formas de exemplo de avaliação de uma informação de roteamento de percurso são discutidas acima e podem incluir uma consulta ao controlador de rede intermediária 120 quanto à informação de roteamento de percurso.
[0097] O conselheiro de rede intermediária 140 gera uma notificação de sessão intermediária 306 que inclui a informação de roteamento de percurso, e comunica a notificação de sessão intermediária 306 para o sistema de conselheiro de rede 136. O sistema de conselheiro de rede 136 avalia uma informação de roteamento de percurso a partir da notificação de sessão intermediária 306, tais como identificadores para o dispositivo de cliente 102 e o ponto final 116, componentes de rede intermediária 118 através dos quais a sessão de comunicação é roteada, atributos de desempenho da sessão de comunicação 302 através da rede intermediária 112, e assim por diante. O sistema de conselheiro de rede 136 armazena a informação de roteamento de percurso no DB de rede de sistema 150, tal como parte de um registro de sessão para a sessão de comunicação 302, um registro de rede para a rede intermediária 112 e assim por diante.
[0098] Adicionalmente ao cenário 300, o conselheiro de rede de ponto final 142 avalia uma informação de roteamento de percurso para a sessão de comunicação 302 através da rede de ponto final 114. As formas de avaliação de uma informação de roteamento de percurso são discutidas acima, e podem incluir uma consulta ao controlador de rede de ponto final 126 quanto à informação de roteamento de percurso.
[0099] O conselheiro de rede de ponto final 142 gera uma notificação de sessão de ponto final 308 que inclui a informação de roteamento de percurso, e comunica a notificação de sessão de ponto final 308 para o sistema de conselheiro de rede 136. O sistema de conselheiro de rede 136 avalia uma informação de roteamento de percurso a partir da notificação de sessão de ponto final 308, tais como identificadores para o dispositivo de cliente 102 e o ponto final 116, componentes de rede de ponto final 124 através dos quais a sessão de comunicação é roteada, atributos de desempenho da sessão de comunicação 302 através da rede de ponto final 114, e assim por diante. O sistema de conselheiro de rede 136 armazena a informação de roteamento de percurso no DB de rede de sistema 150, tal como parte de um registro de sessão para a sessão de comunicação 302, um registro de rede para a rede de ponto final 114, e assim por diante.
[00100] Continuando com o cenário 300, o sistema de conselheiro de rede 136 comunica a consciência de comunicação 310a para o conselheiro de rede de cliente 138, a consciência de comunicação 310b para o conselheiro de rede intermediária 140, e a consciência de comunicação 310n para o conselheiro de rede de ponto final 142. De acordo com várias implementações, as consciências de comunicação 310a, 310b, 310n representam agregações de roteamento de percurso e outra informação recebida a partir dos diferentes conselheiros de rede. As consciências de comunicação 310a, 310b, 310n, por exemplo, podem ser duplicatas umas das outras e podem identificar uma informação de roteamento de percurso de ponta a ponta da sessão de comunicação 302. Alternativamente, as consciências de comunicação 310a, 310b, 310n podem incluir, cada uma, conjuntos diferentes de informação que são individualmente talhados para a rede específica e/ou o conselheiro de rede para o qual elas são comunicadas.
[00101] Assim, o cenário 300 ilustra que, pelo menos em algumas implementações, o sistema de conselheiro de rede 136 pode servir para agregar consciência de comunicação a partir de redes diferentes. O sistema de conselheiro de rede 136, por exemplo, serve como um serviço centralizado que pode receber, agregar e propagar uma consciência de comunicação.
[00102] Conforme referenciado acima, o cenário 300 pode representar uma alternativa ou adição para o cenário 200. Por exemplo, em um cenário alternativo, uma consciência de comunicação pode ser agregada ou propagada pelo sistema de conselheiro de rede 136, mas não através de uma comunicação inter-rede entre os conselheiros de rede diferentes. Em um cenário adicional, uma consciência de comunicação pode ser agregada e propagada entre os conselheiros de rede diferentes, bem como ser agregada e propagada pelo sistema de conselheiro de rede 136. Assim, as técnicas discutidas aqui proveem cenários diversos para a propagação de consciência de comunicação dentre as entidades envolvidas em sessões de comunicação.
[00103] Pelo menos em algumas implementações, as várias notificações, consultas e respostas discutidas nos cenários acima podem ser configuradas usando-se os eventos de notificação de exemplo discutidos acima, tal como através da API de comunicação detalhada acima. Por exemplo, os valores para os vários atributos discutidos com referência à API de comunicação podem ser usados para a propagação da informação variada discutida com referência aos cenários 200, 300. Assim, a API de comunicação pode ser alavancada para a propagação de consciência de comunicação dentre as diferentes entidades envolvidas em sessões de comunicação.
[00104] Conforme ilustrado nos cenários, uma consciência de comunicação das sessões de comunicação 202, 302 é propagada fora de banda a partir das sessões de comunicação, por exemplo, usando- se fluxos de dados que são independentes da sessão de comunicação 202 e da sessão de comunicação 302. Por exemplo, as várias notificações e respostas representam instâncias de consciência de comunicação que podem ser propagadas dentre as entidades envolvidas em sessões de comunicação.
[00105] Embora os cenários sejam discutidos com referência a uma sessão de comunicação entre o dispositivo de cliente 102 e o ponto final 116, é para ser apreciado que as técnicas discutidas aqui podem ser empregadas para a propagação de consciência de comunicação para múltiplas sessões de comunicação, por exemplo, múltiplas sessões de comunicação concorrentes. Por exemplo, as várias consultas, respostas e notificações podem ser empregadas para a determinação e a propagação de consciência de comunicação para múltiplas sessões de comunicação concorrentes que incluem a sessão de comunicação 202 e/ou a sessão de comunicação 302, tal como parte de uma chamada de conferência que envolve o dispositivo de cliente 102, o ponto final 116 e outros pontos finais não expressamente ilustrados. Como um outro exemplo, a sessão de comunicação 202 e/ou a sessão de comunicação 302 podem ser parte de um evento de comunicação de multidifusão a partir do dispositivo de cliente 102 para múltiplos outros pontos finais incluindo o ponto final 116. Assim, uma consciência de comunicação pode ser propagada ao longo de múltiplos percursos de roteamento diferentes e para sessões de comunicação individuais que estão ocorrendo concorrentemente ou estão programadas para serem implementadas concorrentemente.
[00106] Embora os cenários sejam discutidos com referência a uma consciência de comunicação sendo propagada em conjunto com e/ou após as sessões de comunicação 202, 302 serem iniciadas, isto não é pretendido para ser limitante. Por exemplo, as várias consultas, respostas e notificações podem ser geradas e comunicadas antes do início das sessões de comunicação 202, 302. Pelo menos em algumas implementações, por exemplo, os cenários 200, 300 podem ser realizados em resposta a uma detecção que a sessão de comunicação 202 e/ou a sessão de comunicação 302 estão programadas para serem iniciadas. Um evento de calendário, por exemplo, pode indicar que a sessão de comunicação 202 e/ou a sessão de comunicação 302 estão programadas para serem iniciadas em uma data e um horário futuros programados.
[00107] Assim, os cenários podem ser realizados para a propagação de consciência de comunicação da sessão de comunicação 202 e/ou da sessão de comunicação 302, antes da data e do horário de programação. Essa consciência de comunicação proativa pode ser empregada para várias finalidades, tal como para habilitar redes individuais para se reservarem recursos para manipulação das sessões de comunicação programadas 202, 302
[00108] Pelo menos em algumas implementações, os cenários podem ser realizados enquanto uma sessão de comunicação está em andamento, tal como múltiplas vezes durante uma sessão de comunicação. Por exemplo, os cenários podem ser realizados periodicamente durante uma sessão de comunicação para manutenção de consciência de estado ativo de condições de sessão de comunicação. De forma alternativa ou adicional, os cenários podem ser realizados em resposta a um evento de gatilho, tal como uma indicação de problemas de sessão e/ou de problemas de rede em uma rede em particular. Assim, uma consciência de comunicação propagada através dos cenários 200, 300 pode ser alavancada para várias finalidades, tais como para iniciação de sessão, diagnósticos de sessão e reparo, terminação de sessão, análise pós-sessão, e assim por diante.
[00109] Assim sendo, uma consciência de comunicação de condições referentes a sessões de comunicação pode ser compartilhada dentre entidades envolvidas no roteamento e/ou na manipulação das sessões de comunicação. Essa consciência de comunicação pode ser alavancada de várias formas, tais como para a otimização da desempenho das sessões de comunicação, a mitigação de erros que ocorrem e/ou que podem ocorrer nas sessões de comunicação, e assim por diante.
[00110] Tendo discutidos alguns cenários de implementação de exemplo, considere, agora, uma discussão de alguns procedimentos de exemplo de acordo com uma ou mais modalidades.
PROCEDIMENTOS DE EXEMPLO
[00111] A discussão a seguir descreve alguns procedimentos de exemplo para a propagação de consciência de comunicação para sessões de comunicação de acordo com uma ou mais modalidades. Os procedimentos de exemplo podem ser empregados no ambiente 100 da figura 1, no sistema 800 da figura 8, e/ou qualquer outro ambiente adequado. Os procedimentos, por exemplo, representam procedimentos de exemplo para a implementação dos cenários de implementação descritos acima. Pelo menos em algumas modalidades, as etapas descritas para os vários procedimentos podem ser implementadas automaticamente e independentemente de uma interação de usuário.
[00112] A figura 4 é um fluxograma que descreve etapas em um método de acordo com uma ou mais implementações. O método descreve um procedimento de exemplo para a propagação de consciência de comunicação de acordo com uma ou mais implementações.
[00113] A etapa 400 avalia que uma sessão de comunicação é iniciada ou programada para ser iniciada. Geralmente, uma sessão de comunicação se refere a uma troca de mídia de comunicação entre pontos finais de comunicação diferentes. Com referência ao ambiente 100, por exemplo, um ou mais dos conselheiros de rede recebe uma indicação de uma sessão de comunicação que envolve uma ou mais das redes. A indicação pode ser recebida de várias formas, tal como através de uma notificação a partir de um cliente de comunicação (por exemplo, o cliente de comunicação 130), a partir de um controlador de rede, a partir do sistema de conselheiro de rede 136 e assim por diante.
[00114] Pelo menos em algumas implementações, uma sessão de comunicação programada pode ser detectada, tal como com base em um evento de calendário que inclui uma sessão de comunicação programada. Por exemplo, um usuário pode alavancar um aplicativo de calendário para a programação de um evento de calendário para uma data e um horário futuros, tais como um encontro pela web, uma chamada de conferência, uma sessão de multidifusão e assim por diante. O usuário pode especificar parâmetros para o evento de calendário, tais como data e horário, usuários a serem convidados, tipos de mídia de comunicação envolvida e assim por diante. Assim, uma avaliação que uma sessão de comunicação está programada para ser com base na detecção de um evento de calendário que inclui a sessão de comunicação.
[00115] A etapa 402 agrega uma consciência de comunicação para múltiplas redes autônomas ao longo de um percurso de roteamento da sessão de comunicação. As formas de exemplo de agregação de consciência de comunicação são discutidas acima, tal como com referência aos cenários 200, 300. Por exemplo, uma consciência de comunicação pode ser agregada com base na comunicação de atributos de percurso de roteamento entre redes diferentes, por exemplo, entre conselheiros de rede diferentes.
[00116] De forma alternativa ou adicional, uma consciência de comunicação pode ser recebida e agregada por um sistema que é implementado separadamente das redes autônomas, tal como o sistema de conselheiro de rede 136. Por exemplo, o sistema de conselheiro de rede 136 pode receber atributos de percurso de roteamento a partir das redes autônomas individuais, e pode agregar os atributos de percurso de roteamento para a geração de consciência de comunicação.
[00117] Geralmente, uma consciência de comunicação inclui vários tipos de informação que se refere a uma sessão de comunicação, bem como a redes e entidades envolvidas na sessão de comunicação. Os atributos de exemplo que podem ser incluídos em consciência de comunicação são detalhados acima com referência aos eventos de notificação e/ou à API de comunicação. Uma consciência de comunicação, por exemplo, identifica pontos finais envolvidos em uma sessão de comunicação, tipo(s) de mídia para uma sessão de comunicação, atributos (por exemplo, atributos de desempenho) de redes autônomas através das quais a sessão de comunicação é roteada ou será roteada, e assim por diante.
[00118] A etapa 404 propaga a consciência de comunicação da sessão de comunicação dentre as múltiplas redes autônomas. A consciência de comunicação, por exemplo, é comunicada fora de banda a partir de um fluxo de dados da sessão de comunicação.
[00119] Pelo menos em algumas implementações, a consciência de comunicação é comunicada entre as redes autônomas em si, tal como através de comunicações de rede a rede. Por exemplo, os conselheiros de rede para as redes autônomas diferentes podem se engajar em uma comunicação direta uns com os outros para a troca de consciência de comunicação.
[00120] De forma alternativa ou adicional, uma consciência de comunicação pode ser propagada por um serviço e/ou um sistema que é implementado separadamente das redes autônomas, tal como o sistema de conselheiro de rede 136.
[00121] A figura 5 é um fluxograma que descreve as etapas em um método de acordo com uma ou mais modalidades. O método descreve um procedimento de exemplo para comunicação de consciência de comunicação de acordo com uma ou mais modalidades.
[00122] A etapa 500 recebe uma indicação de uma sessão de comunicação que é iniciada ou está programada para ser iniciada. Um conselheiro de rede para uma rede autônoma em particular, por exemplo, recebe uma notificação que uma sessão de comunicação é iniciada, tal como a partir de um cliente de comunicação. De forma alternativa ou adicional, um sistema ou serviço em separado (por exemplo, o sistema de conselheiro de rede 136) recebe uma indicação que uma sessão de comunicação é iniciada. O sistema de conselheiro de rede 136, por exemplo, pode ser notificado da sessão de comunicação, tal como por um conselheiro de rede, o serviço de comunicação 134 e assim por diante.
[00123] A etapa 502 avalia atributos de percurso de roteamento para a sessão de comunicação em uma rede autônoma através da qual a sessão de comunicação é roteada. Com referência ao ambiente 100, por exemplo, um conselheiro de rede pode avaliar atributos de percurso de roteamento através de uma consulta a um respectivo controlador de rede. De forma alternativa ou adicional, o sistema de conselheiro de rede 136 pode avaliar os atributos de percurso de roteamento, tal como através de uma notificação a partir de um respectivo conselheiro de rede e/ou controlador de rede. Os exemplos de vários atributos de percurso de roteamento são detalhados acima.
[00124] A etapa 504 comunica uma consciência de comunicação da sessão de comunicação incluindo os atributos de percurso de roteamento para uma rede autônoma diferente envolvida no roteamento da sessão de comunicação. A consciência de comunicação, por exemplo, é comunicada fora de banda a partir de um fluxo de dados da sessão de comunicação. Por exemplo, um conselheiro de rede para a rede autônoma pode comunicar a consciência de comunicação para um conselheiro de rede para a rede autônoma diferente. De forma alternativa ou adicional, o sistema de conselheiro de rede 136 pode comunicar a consciência de comunicação para um conselheiro de rede para a rede autônoma diferente.
[00125] Pelo menos em algumas implementações, a consciência de comunicação pode representar atributos de percurso de roteamento cumulativos para múltiplas redes autônomas diferentes. Conforme discutido acima com referência aos cenários de implementação de exemplo, uma consciência de comunicação pode ser agregada de forma cumulativa através da comunicação de atributos de percurso de roteamento entre redes autônomas diferentes. De forma alternativa ou adicional, as porções de consciência de comunicação podem ser comunicadas a partir de redes autônomas diferentes para o sistema de conselheiro de rede 136, o qual pode agregar e propagar a consciência de comunicação.
[00126] A figura 6 é um fluxograma que descreve as etapas em um método de acordo com uma ou mais modalidades. O método descreve um procedimento de exemplo para aumento da consciência de comunicação de acordo com uma ou mais modalidades.
[00127] A etapa 600 recebe uma consciência de comunicação de uma sessão de comunicação a partir de uma rede autônoma ao longo de um percurso de roteamento da sessão de comunicação. De acordo com várias implementações, a consciência de comunicação inclui atributos do percurso de roteamento na rede autônoma e é recebida fora de banda a partir de um fluxo de dados da sessão de comunicação. A consciência de comunicação pode ser recebida por várias entidades, tal como um conselheiro de rede para uma respectiva rede, o sistema de conselheiro de rede 136 e assim por diante.
[00128] A etapa 602 aumenta a consciência de comunicação com atributos do percurso de roteamento em uma rede autônoma diferente ao longo do percurso de roteamento da sessão de comunicação. Um conselheiro de rede para a rede autônoma diferente, por exemplo, recebe a consciência de comunicação a partir de uma outra rede autônoma e aumenta a consciência de comunicação com atributos de percurso de roteamento de sua respectiva rede autônoma. De forma alternativa ou adicional, o sistema de conselheiro de rede 136 aumenta a consciência de comunicação com atributos de percurso de roteamento da rede autônoma diferente.
[00129] A etapa 604 comunica a consciência de comunicação aumentada para uma outra rede autônoma ao longo do percurso de roteamento da sessão de comunicação. De acordo com várias implementações, a consciência de comunicação aumentada é comunicada fora de banda a partir da sessão de comunicação, por exemplo, a partir de um fluxo de dados da sessão de comunicação. A rede autônoma diferente, por exemplo, comunica a consciência de comunicação aumentada para uma próxima rede (por exemplo, um próximo conselheiro de rede) ao longo do percurso de roteamento da sessão de comunicação.
[00130] De forma alternativa ou adicional, o sistema de conselheiro de rede 136 comunica a consciência de comunicação aumentada para uma próxima rede (por exemplo, um próximo conselheiro de rede) ao longo do percurso de roteamento da sessão de comunicação. Pelo menos em algumas implementações, em resposta à consciência de comunicação ser aumentada, o sistema de conselheiro de rede 136 pode comunicar a consciência de comunicação aumentada para múltiplas redes autônomas diferentes e/ou conselheiros de rede ao longo do percurso de roteamento da sessão de comunicação.
[00131] A figura 7 é um fluxograma que descreve as etapas em um método de acordo com uma ou mais modalidades. O método descreve um procedimento de exemplo para propagação de consciência de uma mudança nos atributos de percurso de roteamento de acordo com uma ou mais modalidades.
[00132] A etapa 700 recebe uma indicação de uma mudança em atributos de percurso de roteamento para uma porção de um percurso de roteamento para uma sessão de comunicação. De acordo com várias implementações, a indicação da mudança é recebida enquanto a sessão de comunicação está em andamento. A porção do percurso de roteamento, por exemplo, ocorre em uma rede autônoma de um grupo de redes autônomas que constitui o percurso de roteamento total. Por exemplo, a porção do percurso de roteamento corresponde a um conjunto de componentes de rede ao longo de uma porção do percurso de roteamento em uma rede autônoma em particular.
[00133] Os exemplos de atributos de percurso de roteamento diferentes que podem mudar são discutidos acima com referência aos eventos de notificação de exemplo e à API de comunicação de exemplo. A mudança nos atributos de percurso de roteamento, por exemplo, pode ser com base em uma indicação de uma diminuição de qualidade de sessão e/ou um aumento em erros de sessão que ocorre na sessão de comunicação através da porção do percurso de roteamento. Os exemplos desses índices incluem um aumento em instabilidade, taxa de perda de pacote, taxa de erro de pacote e assim por diante. Pelo menos em algumas implementações, a mudança em atributos de percurso de roteamento pode ser indicada com base em uma entrada de usuário especificando que a qualidade da sessão de comunicação diminuiu.
[00134] A mudança em atributos de percurso de roteamento pode ser com base em mudanças nas condições de rede em uma rede autônoma que hospeda a porção do percurso de roteamento, tais como um aumento no congestionamento de rede, uma falha de um ou mais componentes de rede, uma diminuição na largura de banda disponível e assim por diante.
[00135] De acordo com várias implementações, a indicação da mudança pode ser recebida por uma entidade associada a uma rede autônoma que hospeda a porção do percurso de roteamento, tal como um conselheiro de rede para a rede autônoma. De forma adicional ou alternativa, a indicação da mudança pode ser recebida por uma outra entidade, tal como um conselheiro de rede para uma rede autônoma que hospeda uma porção diferente do percurso de roteamento, o sistema de conselheiro de rede 136 e assim por diante.
[00136] A etapa 702 propaga uma consciência de comunicação da mudança em atributos de percurso de roteamento para uma rede autônoma que hospeda uma porção diferente do percurso de roteamento para a sessão de comunicação. De acordo com várias implementações, a consciência de comunicação da mudança é propagada enquanto a sessão de comunicação está em andamento. Por exemplo, um conselheiro de rede para uma rede que hospeda a porção do percurso de roteamento gera uma notificação da mudança na porção do percurso de roteamento. O conselheiro de rede então comunica a notificação para um conselheiro de rede para uma rede autônoma diferente que hospeda uma porção diferente do percurso de roteamento, de modo que uma rede adjacente ao longo do percurso de roteamento.
[00137] De forma alternativa ou adicional, o conselheiro de rede pode comunicar a notificação para o sistema de conselheiro de rede 136, o qual pode propagar uma consciência de comunicação da mudança nos atributos de percurso de roteamento para um ou mais conselheiros de rede para outras redes autônomas ao longo do percurso de roteamento.
[00138] Pelo menos em algumas implementações, uma consciência de comunicação de uma mudança em atributos de percurso de roteamento pode permitir que o percurso de roteamento seja reconfigurado. Por exemplo, se a mudança indicar erros e/ou problemas na sessão de comunicação através da porção do percurso de roteamento, o percurso de roteamento pode ser recalculado em torno daquela porção do percurso de roteamento. Por exemplo, um conselheiro de rede que detecta a mudança nos atributos de percurso de roteamento pode notificar um respectivo controlador de rede, o qual pode recalcular o percurso de roteamento em torno da porção do percurso de roteamento. O percurso de roteamento, por exemplo, pode ser recalculado para incluir uma rede autônoma diferente, de modo que a porção problemática do percurso de roteamento seja evitada.
[00139] De acordo com várias implementações, os métodos descritos acima podem ser realizados múltiplas vezes em vários estágios de uma sessão de comunicação, tal como antes da iniciação da sessão, concorrentemente com uma iniciação de sessão, durante uma sessão de comunicação, na terminação da sessão e após a sessão de comunicação. Por exemplo, uma consciência de comunicação de uma sessão de comunicação pode ser propagada e atualizada em tempo real, enquanto a sessão de comunicação está em andamento, para manutenção de uma consciência dinâmica e de estado ativo de condições que podem afetar a sessão de comunicação.
[00140] Uma consciência de comunicação de uma sessão de comunicação também pode ser comunicada de forma proativa antes da iniciação da sessão de comunicação, tal como para esclarecimento de redes autônomas da sessão de comunicação por vir e permitir que as redes autônomas façam ajustes e/ou preparações para a acomodação da sessão de comunicação. Uma consciência de comunicação de uma sessão de comunicação pode ser comunicada após a terminação da sessão de comunicação, tal como para diagnóstico de sistema e análise estatística de desempenho de rede que ocorreu durante a sessão de comunicação.
[00141] Assim, as técnicas discutidas aqui proveem uma ampla variedade de cenários e implementações para a propagação de consciência de comunicação para entidades diferentes envolvidas no roteamento de sessões de comunicação. Uma consciência de comunicação permite que essas entidades tomem decisões informadas referentes ao roteamento e à manipulação de dados de sessão de comunicação.
[00142] Tendo discutido alguns procedimentos de exemplo, considere, agora uma discussão de um sistema e um dispositivo de exemplo de acordo com uma ou mais modalidades.
SISTEMA E DISPOSITIVO DE EXEMPLO
[00143] A figura 8 ilustra um sistema de exemplo geralmente em 800, que inclui um dispositivo de computação de exemplo 802 que é representativo de um ou mais sistemas de computação e/ou dispositivos que podem implementar várias técnicas descritas aqui. Por exemplo, o dispositivo de cliente 102 e/ou o ponto final 116 discutidos acima com referência à figura 1 podem ser concretizados como o dispositivo de computação 802. O dispositivo de computação 802 pode ser, por exemplo, um servidor de um provedor de serviços, um dispositivo associado ao cliente (por exemplo, um dispositivo de cliente), um sistema em chip e/ou qualquer outro dispositivo de computação ou sistema de computador adequado.
[00144] O dispositivo de computação 802 de exemplo, conforme é ilustrado, inclui um sistema de processamento 804, um ou mais meios que podem ser lidos em computador 806, e uma ou mais interfaces de entrada/saída (I/O) 808 que são acoplados de forma comunicativa uns aos outros. Embora não mostrado, o dispositivo de computação 802 ainda pode incluir um barramento de sistema ou outros dados e um sistema de transferência de comando que acopla os vários componentes uns aos outros. Um barramento de sistema pode incluir qualquer uma ou uma combinação de estruturas de barramento diferentes, tais como um barramento de memória ou um controlador de memória, um barramento periférico, um barramento serial universal e/ou um processador ou um barramento local que utiliza qualquer uma de uma variedade de arquiteturas de barramento. Uma variedade de outros exemplos também é contemplada, tais como linhas de controle e de dados.
[00145] O sistema de processamento 804 é representativo de uma funcionalidade para a execução de uma ou mais operações usando-se um hardware. Assim sendo, o sistema de processamento 804 é ilustrado como incluindo um elemento de hardware 810 que pode ser configurado como potência de recepção de enlace descendente, blocos funcionais e assim por diante. Isto pode incluir uma implementação em hardware como um circuito integrado específico de aplicação ou outro dispositivo lógico formado usando-se um ou mais semicondutores. Os elementos de hardware 810 não são limitados pelos materiais a partir dos quais eles são formados ou mecanismos de processamento empregados aqui. Por exemplo, os processadores podem ser compreendidos por semicondutor(es) e/ou transistores (por exemplo, circuitos integrados (ICs) eletrônicos). Em um contexto como esse, instruções executáveis em processador podem ser instruções executáveis eletronicamente.
[00146] O meio que pode ser lido em computador 806 é ilustrado incluindo uma memória/um armazenamento 812. A memória/o armazenamento 812 representa uma capacidade de memória/armazenamento associada a um ou mais meios que podem ser lidos em computador. A memória/o armazenamento 812 pode incluir meios voláteis (tal como uma memória de acesso randômico (RAM)) e/ou meios não voláteis (tais como uma memória apenas de leitura (ROM), uma memória flash, discos óticos, discos magnéticos e assim por diante). A memória/o armazenamento 812 pode incluir meios fixos (por exemplo, uma RAM, uma ROM, um drive rígido fixo e assim por diante), bem como meios removíveis (por exemplo, uma memória flash, um drive rígido removível, um disco ótico e assim por diante). O meio que pode ser lido em computador 806 pode ser configurado de uma variedade de outras formas, conforme descrito adicionalmente abaixo.
[00147] A(s) interface(s) de entrada/saída 808 é (são) representativa(s) de uma funcionalidade para se permitir que um usuário introduza comandos e informação no dispositivo de computação 802, e também permite(m) que uma informação seja apresentada para o usuário e/ou outros componentes ou dispositivos usando-se vários dispositivos de entrada/saída. Os exemplos de dispositivos de entrada incluem um teclado, um dispositivo de controle de cursor (por exemplo, um mouse), um microfone (por exemplo, para reconhecimento de voz e/ou uma entrada falada), um scanner, uma funcionalidade de toque (por exemplo, capacitivos ou outros sensores que são configurados para a detecção de um toque físico), uma câmera (por exemplo, que pode empregar comprimentos de onda visíveis ou não visíveis, tais como frequências de infravermelho para a detecção de um movimento que não envolve toque, como gestos), e assim por diante. Os exemplos de dispositivos de saída incluem um dispositivo de exibição (por exemplo, um monitor ou projetor), alto- falantes, uma impressora, uma placa de rede, um dispositivo de resposta tátil e assim por diante. Assim, o dispositivo de computação 802 pode ser configurado de uma variedade de formas, conforme adicionalmente descrito abaixo, para suporte de uma interação de usuário.
[00148] Várias técnicas podem ser descritas aqui no contexto geral de um software, elementos de hardware ou módulos de programa. Geralmente, esses módulos incluem rotinas, programas, objetos, elementos, componentes, estruturas de dados e assim por diante que executam tarefas em particular ou implementam tipos de dados abstratos. Os termos "módulo", "funcionalidade", "entidade" e "componente", conforme é usado aqui, geralmente representam um software, um firmware, um hardware ou uma combinação dos mesmos. Os recursos das técnicas descritas aqui são independentes de plataforma, significando que as técnicas podem ser implementadas em uma variedade de plataformas de computação comerciais tendo uma variedade de processadores.
[00149] Uma implementação dos módulos e técnicas descritos pode ser armazenada em ou transmitida através de alguma forma de meio que pode ser lido em computador. O meio que pode ser lido em computador pode incluir uma variedade de meios que podem ser acessados pelo dispositivo de computação 802. A título de exemplo, e não de limitação, os meios que podem ser lidos em computador podem incluir "meios de armazenamento que podem ser lidos em computador" e "meios de sinal que podem ser lidos em computador".
[00150] Os "meios de armazenamento que podem ser lidos em computador" podem se referir a meios e/ou dispositivos que permitem um armazenamento persistente de uma informação em contraste com uma mera transmissão de sinal, ondas portadoras ou sinais por si. Os meios de armazenamento que podem ser lidos em computador não incluem sinais por si. Os meios de armazenamento que podem ser lidos em computador incluem um hardware, tais como meios voláteis e não voláteis, removíveis e não removíveis e/ou dispositivos de armazenamento implementados em um método ou uma tecnologia adequada para armazenamento de informação, tais como instruções que podem ser lidas em computador, estruturas de dados, módulos de programa, elementos/circuitos lógicos, ou outros dados. Os exemplos de meios de armazenamento que podem ser lidos em computador podem incluir, mas não estão limitados a uma RAM, uma ROM, uma EEPROM, uma memória flash ou outra tecnologia de memória, um CD-ROM, discos versáteis digitais (DVD) ou outro armazenamento ótico, discos rígidos, cassetes magnéticos, fita magnética, armazenamento em disco magnético ou outros dispositivos de armazenamento magnético, ou outro dispositivo de armazenamento, meios tangíveis, ou um artigo de fabricação adequado para o armazenamento da informação desejada e que podem ser acessados por um computador.
[00151] Os "meios de sinal que podem ser lidos em computador" podem se referir a um meio portando um sinal que é configurado para a transmissão de instruções para o hardware do dispositivo de computação 802, tal como através de uma rede. Os meios de sinal tipicamente podem concretizar instruções que podem ser lidas em computador, estruturas de dados, módulos de programa ou outros dados em um sinal de dados modulado, tais como ondas portadoras, sinais de dados ou outro mecanismo de transporte. Os meios de sinal também podem incluir qualquer meio de entrega de informação. Os termos "sinal de dados modulado" significa um sinal que tem uma ou mais de suas características reguladas ou mudadas de uma maneira tal que codifique uma informação no sinal. A título de exemplo, e não de limitação, os meios de comunicação incluem um meio com fio, tal como uma rede com fio ou uma conexão com fio direta, e meios sem fio, tais como meios acústicos, de frequência de rádio (RF), infravermelho e outros meios sem fio.
[00152] Conforme descrito previamente, os elementos de hardware 810 e os meios que podem ser lidos em computador 806 são representativos de instruções, módulos, lógica de dispositivo programável e/ou uma lógica de dispositivo fixa implementados em uma forma de hardware que podem ser empregados em algumas modalidades para a implementação de pelo menos alguns aspectos das técnicas descritas aqui. Os elementos de hardware podem incluir componentes de um circuito integrado ou um sistema em chip, um circuito integrado específico de aplicação (ASIC), um arranjo de porta programável no campo (FPGA), um dispositivo lógico programável complexo (CPLD), e outras implementações em silício ou outros dispositivos de hardware. Neste contexto, um elemento de hardware pode operar como um dispositivo de processamento que executa tarefas de programa definidas por instruções, módulos e/ou uma lógica concretizados pelo elemento de hardware, bem como um dispositivo de hardware utilizado para o armazenamento de instruções para execução, por exemplo, os meios de armazenamento que podem ser lidos em computador descritos previamente.
[00153] As combinações do precedente também podem ser concretizadas para a implementação de várias técnicas e módulos descritos aqui. Assim sendo, um software, um hardware ou módulos de programa ou outros módulos de programa podem ser implementados como uma ou mais instruções e/ou uma lógica concretizadas em alguma forma de meios de armazenamento que podem ser lidos em computador e/ou por um ou mais elementos de hardware 810. O dispositivo de computação 802 pode ser configurado para a implementação de instruções em particular e/ou funções correspondentes aos módulos de software e/ou hardware. Assim sendo, uma implementação de módulos que são executáveis pelo dispositivo de computação 802 como um software pode ser obtida pelo menos parcialmente em hardware, por exemplo, através do uso de meios de armazenamento que podem ser lidos em computador e/ou elementos de hardware 810 do sistema de processamento. As instruções e/ou funções podem ser executáveis/operáveis por um ou mais artigos de fabricação (por exemplo, um ou mais dispositivos de computação 802 e/ou sistemas de processamento 804) para a implementação de técnicas, módulos e exemplos descritos aqui.
[00154] Conforme adicionalmente ilustrado na figura 8, o sistema de exemplo 800 permite ambientes ubíquos para uma experiência do usuário sem interrupções quando rodando aplicativos em um computador pessoal (PC), um dispositivo de televisão e/ou um dispositivo móvel. Os serviços e aplicativos rodam de forma substancialmente similar em todos os três ambientes para uma experiência do usuário comum, quando de uma transição de um dispositivo para o próximo enquanto se utiliza um aplicativo, joga um videogame, assiste a um vídeo e assim por diante.
[00155] No sistema de exemplo 800, múltiplos dispositivos são interconectados através de um dispositivo de computação central. O dispositivo de computação central pode ser local para os múltiplos dispositivos ou pode estar localizado remotamente dos múltiplos dispositivos. Em uma modalidade, o dispositivo de computação central pode ser uma nuvem de um ou mais computadores servidores que são conectados aos múltiplos dispositivos através de uma rede, da Internet ou de outro enlace de comunicação de dados.
[00156] Em uma modalidade, esta arquitetura de interconexão permite que uma funcionalidade seja entregue através de múltiplos dispositivos para a provisão de uma experiência comum e sem emendas para um usuário dos dispositivos múltiplos. Cada um dos múltiplos dispositivos pode ter exigências físicas e capacidades diferentes, e o dispositivo de computação central usa uma plataforma para se permitir a entrega de uma experiência para o dispositivo que é talhada para o dispositivo e ainda comum a todos os dispositivos. Uma classe de dispositivos pode ser definida por recursos físicos, tipos de uso ou outras características comuns dos dispositivos.
[00157] Em várias implementações, o dispositivo de computação 802 pode assumir uma variedade de configurações diferentes, tal como para os usos de computador 814, móvel 816 e televisão 818. Cada uma destas configurações inclui dispositivos que podem ter geralmente construções e capacidades diferentes, e, assim, o dispositivo de computação 802 pode ser configurado de acordo com uma ou mais das classes de dispositivo diferentes. Por exemplo, o dispositivo de computação 802 pode ser implementado como a classe de dispositivo de computador 814 que inclui um computador pessoal, um computador de mesa, um computador de tela múltipla, um computador laptop, um netbook, e assim por diante.
[00158] O dispositivo de computação 802 pode ser implementada como a classe de dispositivo de móvel 816 que inclui dispositivos móveis, tais como um telefone móvel, um tocador de música portátil, um dispositivo de jogos portátil, um computador tablet, um dispositivo usável, um computador de tela múltipla e assim por diante. O dispositivo de computação 802 também pode ser implementado como a classe de dispositivo de televisão 818 que inclui dispositivos tendo ou conectados a telas geralmente maiores em ambientes de visualização casual. Estes dispositivos incluem televisões, set top boxes, consoles de jogos e assim por diante.
[00159] As técnicas descritas aqui podem ser suportadas por estas várias configurações do dispositivo de computação 802 e não estão limitadas aos exemplos específicos das técnicas descritas aqui. Por exemplo, as funcionalidades discutidas com referência aos conselheiros de rede, ao serviço de comunicação 134 e/ou ao sistema de conselheiro de rede 136 podem ser implementadas todas, ou em parte, através do uso de um sistema distribuído, tal como por uma "nuvem" 820 através de uma plataforma 822, conforme descrito abaixo.
[00160] A nuvem 820 inclui e/ou é representativa de uma plataforma 822 para recursos 824. A plataforma 822 extrai uma funcionalidade subjacente de hardware (por exemplo, servidores) e recursos de software da nuvem 820. Os recursos 824 podem incluir aplicativos e/ou dados que podem ser utilizados, enquanto o processamento de computador é executado em servidores que são remotos do dispositivo de computação 802. Os recursos 824 também podem incluir serviços providos pela Internet e/ou através de uma rede de assinante, tal como uma rede celular ou de WiFi.
[00161] A plataforma 822 pode extrair recursos e funções para conectar o dispositivo de computação 802 com outros dispositivos de computação. A plataforma 822 também pode servir para extrair um escalonamento de recursos para prover um nível correspondente de escala para uma demanda encontrada para os recursos 824 que são implementados através da plataforma 822. Assim sendo, em uma modalidade de dispositivo interconectado, uma implementação de funcionalidade descrita aqui pode ser distribuída por todo o sistema 800. Por exemplo, a funcionalidade pode ser implementada em parte no dispositivo de computação 802, bem como através da plataforma 822 que extrai a funcionalidade da nuvem 820.
[00162] São discutidos aqui vários métodos que podem ser implementados para a execução de técnicas discutidas aqui. Aspectos dos métodos podem ser implementados em hardware, firmware, ou software, ou combinação dos mesmos. Os métodos são mostrados como um conjunto de etapas que especificam operações executadas por um ou mais dispositivos e não estão limitados necessariamente aos exibidos para executar as operações dos respectivos blocos. Ainda, uma operação exibida com respeito a um método particular pode ser combinada e/ou trocada com uma operação de um método diferente de acordo com uma ou mais implementações.
[00163] Aspectos dos métodos podem ser implementados via interação entre várias entidades discutidas acima com referência ao ambiente 100.
CONCLUSÃO
[00164] Técnicas para propagação de consciência de comunicação para sessões de comunicação são descritas. Embora as modalidades sejam descritas em linguagem específica para recursos estruturais e/ou atos metodológicos, é para ser entendido que as modalidades definidas nas reivindicações em apenso não estão necessariamente limitadas aos recursos específicos ou atos descritos. Ao invés disso, os recursos específicos e atos são expostos como formas de exemplo de implementação das modalidades reivindicadas.

Claims (20)

1. Método implementado por computador, caracterizado pelo fato de que compreende: avaliar que uma sessão de comunicação é iniciada ou está programada para ser iniciada; agregar consciência de comunicação para múltiplas redes autônomas ao longo de um percurso de roteamento da sessão de comunicação; e comunicar a consciência de comunicação da sessão de comunicação para uma ou mais das múltiplas redes autônomas fora de banda a partir de um fluxo de dados da sessão de comunicação de modo que a comunicação da consciência de comunicação da sessão de comunicação seja independente de roteamento da sessão de comunicação.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a avaliação ocorre enquanto a sessão de comunicação está em andamento.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a avaliação compreende avaliar que a sessão de comunicação está programada para ocorrer em um tempo futuro.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende, antes da agregação, receber a consciência de comunicação de pelo menos uma das redes autônomas.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende, antes da agregação: receber atributos de percurso de roteamento a partir de redes individuais das redes autônomas; e agregar a consciência de comunicação para incluir os atributos de percurso de roteamento.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a consciência de comunicação compreende atributos de percurso de roteamento de uma ou mais das redes autônomas.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a consciência de comunicação compreende atributos de desempenho do percurso de roteamento dentro de uma ou mais das redes autônomas.
8. Método, de acordo com a reivindicação 7, caracterizado pelo fato de que os atributos de desempenho incluem um ou mais dentre jitter, atraso de pacote, ou perda de pacote ao longo do percurso de roteamento dentro da uma ou mais das redes autônomas.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: receber uma indicação de uma alteração em atributos de percurso de roteamento para uma porção de um percurso de roteamento para a sessão e comunicação; e propagar consciência de comunicação adicional indicando a alteração em atributos de percurso de roteamento para uma ou mais das redes autônomas.
10. Sistema caracterizado pelo fato de que compreende: pelo menos um processador; e um ou mais meios de armazenamento legíveis por computador incluindo instruções armazenadas nos mesmo que, em resposta à execução por o pelo menos um processador, fazem o sistema realizar operações incluindo: receber uma indicação de uma sessão de comunicação que está programada para ser iniciada; avaliar atributos de percurso de roteamento para a sessão de comunicação dentro de uma rede autônoma através da qual a sessão de comunicação é roteada; e comunicar, separadamente de um fluxo de dados da sessão de comunicação, consciência de comunicação da sessão de comunicação incluindo os atributos de percurso de roteamento para uma rede autônoma diferente a ser envolvida no roteamento da sessão de comunicação que está programada para ser iniciada.
11. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que o sistema compreende um sistema de rede que é implementado separadamente da rede autônoma e da rede autônoma diferente.
12. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que a indicação da sessão de comunicação compreende uma indicação de que a sessão de comunicação está programada para ocorrer.
13. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que a comunicação é realizada pela rede autônoma para a rede autônoma diferente.
14. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que a consciência de comunicação inclui atributos de percurso de roteamento para múltiplas redes autônomas através das quais a sessão de comunicação é roteada.
15. Sistema, de acordo com a reivindicação 10, caracterizado pelo fato de que as operações ainda incluem realizar a avaliação e a comunicação múltiplas vezes, enquanto a sessão de comunicação está em andamento.
16. Método implementado por computador, caracterizado pelo fato de que compreende: receber consciência de comunicação de uma sessão de comunicação a partir de uma rede autônoma ao longo de um percurso de roteamento da sessão de comunicação, a consciência de comunicação incluindo atributos do percurso de roteamento dentro da rede autônoma e sendo recebida fora de banda a partir de um fluxo de dados da sessão de comunicação, de modo que a consciência de comunicação seja recebida separada do fluxo de dados da sessão de comunicação; e aumentar a consciência de comunicação com atributos do percurso de roteamento dentro de uma rede autônoma diferente ao longo do percurso de roteamento da sessão de comunicação.
17. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que a recepção e o aumento são realizados pela rede autônoma diferente.
18. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que a recepção e o aumento são realizados por um sistema que é implementado separadamente da rede autônoma e da rede autônoma diferente.
19. Método, de acordo com a reivindicação 16, caracterizado pelo fato de que os atributos do percurso de roteamento dentro da rede autônoma diferente são recebidos pelo menos em parte a partir de um controlador de rede da rede autônoma diferente.
20. Método, de acordo coma reivindicação 16, caracterizado pelo fato de que ainda compreende comunicar a consciência de comunicação aumentada para uma rede autônoma adicional ao longo do percurso de roteamento da sessão de comunicação.
BR112017001317-7A 2014-07-31 2015-07-28 Método implementado por computador e sistema para propagação de consciência de comunicação para sessões de comunicação BR112017001317B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/449,002 2014-07-31
US14/449,002 US9609064B2 (en) 2014-07-31 2014-07-31 Propagating communication awareness for communication sessions
PCT/US2015/042348 WO2016018847A1 (en) 2014-07-31 2015-07-28 Propagating communication awareness for communication sessions

Publications (2)

Publication Number Publication Date
BR112017001317A2 BR112017001317A2 (pt) 2017-11-14
BR112017001317B1 true BR112017001317B1 (pt) 2023-08-08

Family

ID=

Similar Documents

Publication Publication Date Title
US10355914B2 (en) Procedure for a problem in a communication session
US10021214B2 (en) Synthetic transactions between communication endpoints
US9787576B2 (en) Propagating routing awareness for autonomous networks
US9755950B2 (en) Path routing for communication sessions
KR102317694B1 (ko) 세션 기반 디바이스 구성
US10992729B2 (en) Endpoint configuration for a communication session
US10171345B2 (en) Routing communication sessions
US20180316741A1 (en) Synthetic Transaction based on Network Condition
US20160156691A1 (en) Session Awareness for Communication Sessions
US20160269251A1 (en) Subscription for Communication Attributes
US9609064B2 (en) Propagating communication awareness for communication sessions
BR112017001317B1 (pt) Método implementado por computador e sistema para propagação de consciência de comunicação para sessões de comunicação
US20170295209A1 (en) Subscription for Communication Attributes