Relatório Descritivo da Patente de Invenção: "MÉTODO E
SISTEMA DE TRANSMISSÃO DE ENCADEAMENTO DE MENSAGENS PARA BASES DE DADOS." A presente invenção se refere a um método e sistema de atualização de bases de dados e, em particular, durante a transmissão de uma cadeia de mensagens.
Em um sistema compreendendo um centro de gerenciamento e uma pluralidade de assinantes através de um amplo território, o envio por telefone ou rota hertziana de informação de atualização da base de dados desses assinantes é conhecido. Estas mensagens são endereçadas, ou para todos os assinantes, ou para um assinante em particular, quer dizer, que contém um endereço de módulo de assinante.
Estas mensagens são para a administração do sistema e são sobrepostas para os dados úteis como vídeo, áudio ou dados. É entendido que o lugar usado por essas mensagens é limitado. Outra limitação se aplica ao comprimento da mensagem que está limitado pelo fato de que os dados úteis não podem ser interrompidos, mas por um curto momento. É entendido que, no exemplo de uma transmissão de áudio/vídeo, o canal de emissão não pode ser interrompido por um curto momento de modo que nenhum impacto visual será perceptível.
Isto é porque, para transmissão de uma grande quantidade de dados, é necessário dividi-los em um grande número de mensagens.
Estas mensagens são enviadas em seqüência na rede, em uma ordem lógica, quer dizer, uma depois da outra, separadas por um curto intervalo, por exemplo, um segundo.
Como certos sistemas desse tipo não costumam retornar para o centro de gerenciamento, como, por exemplo, um modem, é difícil o centro de gerenciamento saber se o dados enviados chegaram corretamente. Desse modo, é obrigado a repetir estas mensagens, periodicamente, para assegurar, estatisticamente, que cada mensagem chegou no destino.
Um módulo de assinante inclui, esquematicamente, um receptor numérico, de áudio, video ou dados, para ver uma combinação destes três tipos, um decodificador capaz de separar as mensagens de gerenciamento, estas últimas sendo dirigidas para um módulo de segurança que compreende a base de dados de assinante. Este módulo de segurança pode ser instalado diretamente no módulo de assinante ou, por segurança e razões de custo, pode ser como um módulo destacável, tal como um cartão inteligente ou cartão de microchip.
As mensagens que chegam ao módulo de segurança são processadas pela leitora de dados de controle. É possível que as mensagens não cheguem na ordem de emissão por causa de interferências na transmissão ou simplesmente porque a unidade de assinante não estava ligada no momento do envio de mensagens prévias. É necessário especificar que, antes de cada processamento, cada mensagem é primeiro decifrada e controlada para sua autenticidade. Uma mensagem que não satisfaz os critérios de controle é rejeitada. Nessa hipótese, o módulo de segurança receberá, por exemplo, a mensagem de sinal 3 antes das mensagens de sinal 1 e 2. A execução da mensagem de sinal 3 sem a execução de pré- requisito de duas mensagens anteriores pode levar ao bloqueio da base de dados ou a um certo erro.
Uma primeira solução consiste em memorizar todas as mensagens que constituem uma cadeia e, quando ela está completa, proceder a seu processamento. Esta solução tem a desvantagem de estabelecer o comprimento da cadeia máxima de acordo com a memória disponível. A capacidade de memória de cartões inteligentes destacáveis é limitada, o que obriga o cartão a processar cada mensagem em cada chegada. O problema que a presente invenção propõe resolver, é suprimir, no base de dados do assinante, os efeitos desastrosos devido à execução de mensagens em uma ordem diferente daquela prevista, inicialmente.
Esse objetivo é alcançado completamente por um método de transmissão de uma cadeia das mensagens de gerenciamento de base de dados de assinante, um método que consiste em associar um bloco condicional que determina se a mensagem deve ser processada sem referência a todos ou parte de outros elementos da cadeia ou as condições ligadas ao processamento prévio de todos ou parte de outros elementos da cadeia.
Na realidade, devido a este novo bloco condicional incluído em cada um dos elementos da mensagem de uma cadeia, é possível determinar se essa mensagem pode ser processada separadamente ou deve satisfazer as condições de processamento das mensagens consideradas para serem recebidas primeiro. É óbvio que esse teste também permite determinar se a mensagem em avaliação já foi processada.
Para alcançar esse objetivo, o módulo de segurança dispõe de uma memória organizada sob a forma de tabela, indicando, para cada cadeia, quais são as partes das mensagens dessa cadeia que já foram objeto de um processamento. Depois de processar todos os elementos da cadeia, a tabela dessa cadeia é mantida em ordem para evitar que a mesma cadeia que retorna reinicie sua execução. Ela pode ser eliminada a pedido do centro de gerenciamento ou após um tempo predefinido. 0 bloco condicional contido na mensagem não contém só uma simples indicação ligando o processamento da mensagem em desenvolvimento à condição de ter levado a cabo a mensagem anterior, mas também cobre funções mais complexas, como condições em cada elemento da cadeia de mensagens. Por exemplo, é possível submeter o processamento do elemento 4 da cadeia com a condição de que ambos elementos 1 ou 2 sejam processados e que o elemento 3 seja processado categoricamente. Assim, teremos a função: F(4) = (1 ou 2) e 3.
Tomemos o exemplo da chegada ao módulo de segurança do elemento de mensagem de família 5, essa mensagem sendo o elemento 4 dessa família. A primeira operação será determinar se seu processamento está submetido a outras condições. Se não for esse o caso, ela pode ser processada imediatamente.
Deve ser notado que encadear mensagens não significa que o processamento deve ser feito na ordem de índice da cadeia.
Pode-se imaginar o caso onde alguém carrega um software significativo e, por essa razão, esse alguém divide o mesmo para transmiti-lo em uma cadeia de mensagens. Cada uma dessas mensagens contém um endereço de carregamento e os dados correspondentes. Esse é o motivo pelo qual um elemento da cadeia pode ser processado em uma ordem indiferente. Por outro lado, o último elemento da cadeia que começa este novo software conterá uma condição mencionando que todos os elementos da cadeia devem ter sido executados para que esse possa ser executado para sua parte. Quando essa condição tiver sido satisfeita, o correspondente da tabela para essa família indica que todas as mensagens foram executadas.
De acordo com uma variante da invenção, o bloco condicional é dividido em duas partes, uma chamada "operação" para descrever o tipo de função lógica e a outra chamada "elemento interessado" para descrever em que outros elementos, nos quais a operação deve se aplicar. O tamanho da parte "elemento interessado " corresponde ao tamanho usado na tabela armazenada na base de dados que designa o estado de processamento dos elementos da cadeia. Desse modo, a comparação lógica é grandemente facilitada.
De acordo com outras concretizações, o bloco condicional se refere não a todos os outros elementos da cadeia, mas a alguns apenas. Seria possível, por exemplo, referir-se a três elementos anteriores e não a todos os elementos. Isto permite reduzir o comprimento do bloco condicional e leva em conta o fato de que uma interferência raramente excede o tempo de três mensagens. De acordo com outro exemplo, poder-se-ia definir uma estrutura de cadeia onde só o último elemento contém um bloco condicional.
Essa estrutura permite, ao contrário das soluções da técnica anterior, rejeitar somente um mínimo de mensagem. Na realidade, quando estava faltando uma mensagem em uma cadeia, todas as mensagens seguintes eram rejeitadas até a nova passagem da mensagem ausente. A execução de uma cadeia era, desse modo, dependente do recebimento contínuo de elementos da cadeia, cada elemento ausente tendo como uma conseqüência rejeitar todas as mensagens de índice mais altas do que a mensagem que está faltando.
De acordo cora uma concretização da invenção, o módulo de assinante, além de enviar as mensagens para o módulo de segurança, inclui uma memória para memorizá-las assim que elas cheguem.
Então, é possível que a ausência de uma mensagem que contém uma condição em uma mensagem precedente leve a rejeitar todas as mensagens seguintes. Quando essa mensagem em questão chega, naturalmente, ela é processada, autorizando o processamento de outras mensagens. É possível, por outro lado, que decorra muito tempo antes que essas estejam presentes na transmissão, com o risco de que algumas sejam rejeitadas, por exemplo, devido à má qualidade da conexão entre o centro de gerenciamento e o módulo de assinante.
Para minimizar o número de mensagens repetidas necessárias para que a cadeia seja realizada, finalmente, em sua totalidade, o módulo de segurança pode ter acesso à memória situada no módulo de assinante porque ela contém todas as mensagens na ordem de chegada. Assim, logo que a chegada da mensagem ausente e seu processamento tenham sido realizados, o módulo de segurança pede a leitura da memória para processar todas as mensagens que foram rejeitadas por causa da condição na mensagem perdida.
Um aspecto importante da invenção reside na apresentação de cada mensagem ao módulo de segurança junto com o armazenamento em memória no módulo de assinante. Esse princípio pode incluir exceções quando algumas mensagens não são destinadas ao módulo de segurança, mas apenas ao módulo do assinante. Assim, até mesmo se algumas mensagens forem rejeitadas pelo módulo de segurança, pois as condições não são satisfeitas, esse sistema sabe que essa mensagem está contida na memória do módulo de assinante e pode, quando a condição é atendida, acessar a memória para levar a cabo estas mensagens em vez de esperar uma próxima passagem de mensagens seguintes.
Em uma concretização, a memória do módulo de assinante é organizada como uma pilha com entrada em série, cada entrada nova causando o deslocamento da entrada anterior. A leitura pelo módulo de segurança pode ser realizada de modos diferentes. Pode-se pedir a transmissão de um endereço exato da memória. Não obstante, um aspecto importante da segurança nesse tipo de aplicação reside na confidencialidade da organização de dados. Por essa razão, em lugar de pedir a transmissão de um endereço específico, o módulo de segurança pede para o módulo de assinante submeter tudo ou parte de mensagens contidas em sua memória. Um carregamento do módulo de segurança permanece separado entre as mensagens já realizadas e as mensagens a realizar. A invenção será melhor compreendida com base na descrição detalhada seguinte que se refere aos desenhos anexados, os quais são dados como um exemplo não limitativo, em que: A Figura 1 representa uma mensagem como aquela enviada nos sistemas da técnica anterior; A Figura 2 representa uma mensagem como aquela enviada de acordo com a invenção; A Figura 3 representa um exemplo de atualização da memória temporária do módulo de assinante.
Na Figura 1 estão representados, esquematicamente, os diferentes blocos de uma mensagem que fazem parte da função de encadeamento. Encontramos um primeiro bloco de cabeçalho HD que descreve o tipo de mensagem e contém a informação de que essa mensagem é parte de uma cadeia. Para formar a cadeia, um bloco de segunda família FM indica a qual família essa mensagem pertence. Na realidade, é possível que sejam transmitidas várias cadeias simultaneamente e, nesse caso, a identificação da família é necessária. Agora que a família está definida, o bloco subsequente FI é usado para identificar cada elemento da família e seu lugar na cadeia.
Assim, com esses dois dados, cada elemento da família pode ser colocado, novamente, extremidade à extremidade, com os outros elementos da mesma família, caso necessário. É conhecido indicar em um ou outro dos blocos de controle FI ou FM o número máximo do elemento da família. Essa função pode ser obtida, igualmente, por meio de uma marcação particular de último elemento da família.
No exemplo da figura 2, a mensagem da Figura 1, começando com os dois blocos FM e FI, vê-se contíguo um bloco suplementar CD, que determina uma condição para executar essa mensagem. De acordo com uma primeira concretização da invenção, esse bloco é constituído por um bit que indica se a mensagem anterior deve ser ou não executada. Se essa condição for solicitada, o interpretador encarregado de operações na base de dados, verificará se a mensagem anterior foi executada corretamente e executará essa nova mensagem.
Em outra concretização, este bloco condicional CD é constituído por um campo compreendido por grupos, um grupo para cada elemento da cadeia. Cada grupo contém uma condição em um elemento da cadeia e pode ter vários significados, por exemplo, a condição "deve ter sido executada", "pode ser executada" ou "não deve ser executada". A última condição geralmente corresponde â primeira.
Tomemos o exemplo de uma cadeia de 6 elementos, o elemento 3 deve, forçosamente, ser executado antes de elemento 5. Nesse caso, pode-se especificar na mensagem 3 que ela não deve ser executada se mensagem 5 não tiver sido feita. Essa condição pode levar a um bloqueio, caso não se especifique a condição invertida na mensagem 5. Nesse caso, mensagem 5 conterá a condição "deve ser executada", na mensagem 3 para que, se mensagem 5 chegar antes da 3, ela não seja processada.
Na Figura 3, uma implementação da memória M do módulo de assinante e a conexão com o módulo de segurança são representadas. O fluxo entrante é filtrado, primeiramente, por um módulo SEL, que tem o escopo para separar as mensagens de gerenciamento de outros dados. Essas mensagens são transmitidas, então, para o módulo de seleção SW que tem o escopo para enviá-las para módulos diferentes, quer dizer, o módulo de segurança SM, para o centro de processamento CTR do módulo de assinante STB e para a memória M do módulo de assinante. A colocação na memória dessas mensagens causa o aumento do número de mensagens entrantes de forma que nenhuma mensagem será perdida, a mensagem mais antiga sendo, então, eliminada da memória. Da mesma forma, essas mensagens são transmitidas para o módulo de segurança, representado aqui como um cartão inteligente SM. Esse cartão SM contém um primeiro módulo de gerenciamento de memória GM e um interpretador de controle INT para gerenciamento dos controles da base de dados BD. Esse gerenciador de memória GM pode dialogar com o centro de processamento CTR pela conexão 1/0 e, dessa maneira, influenciar as conexões no módulo de seleção SW. A linha pontilhada representada na Figura 3 representa o módulo de assinante STB. Todas as mensagens de gerenciamento endereçadas ao módulo de segurança SM são dirigidas pelo seletor SW para o módulo de segurança, em particular para o gerenciamento de memória GM, então, são transmitidas para o interpretador de controle, se condições de realização forem satisfeitas. 0 gerenciador de memória GM atualiza a tabela de mensagens executadas para fazer as comparações necessárias no momento da chegada de uma nova mensagem. A conexão com o cartão inteligente SM é do tipo entrada/saída e, dessa maneira, informação e controles podem ser enviados ao destino do módulo de assinante, a conexão representada pela linha 1/0. Como previamente explicado, a memória M está fisicamente na unidade de assinante STB. Isto é porque o cartão SM pode, por intermédio da linha 1/0, pedir a disponibilidade de uma seção de memória para poder armazenar as mensagens de uma cadeia. No nosso exemplo, o número máximo de elementos em uma cadeia não excede a 16.
Assim, na chegada do primeiro elemento da cadeia, o cartão SM, pela linha 1/0, solicita a reserva de pelo menos 16 lugares da memória. Se, durante a transmissão dessa primeira cadeia, for anunciada outra cadeia, o cartão pedirá a reserva de 16 novos lugares para assegurar o armazenamento de um número máximo de cadeia, de acordo com as condições de recebimento.
Para ler os dados contidos na memória M, por exemplo, a posição M3, o cartão SM pode ordenar, através do seletor SW, ao multiplexador de endereços AMUX para retornar o conteúdo dessa posição de memória. Para remeter esses dados para o cartão, um multiplexador de dados DMUX tem a função de ler a posição de memória requerida e transferi-la para o cartão.
Essas diferentes transferências são dirigidas pelo seletor SW.
Quando a realização da cadeia tiver sido interrompida pela falta de uma interferência em uma mensagem, por exemplo, as outras mensagens continuam a ser armazenadas na memória do módulo de assinante. Quando a mensagem que está faltando for retransmitida pelo centro de gerenciamento, ela é executada corretamente e o gerenciador de memória GM chama de volta todas as outras mensagens da cadeia acessando a memória do módulo de assinante. Nesse caso, a entrada do cartão inteligente SM não é mais prolongada na chegada de mensagens, mas nos conteúdos da memória M. Esse acesso à memória M pode ser feito em acesso direto, especificando um endereço de memória, ou por acesso seqüencial, lendo as mensagens na sua ordem de chegada.
Em uma concretização, a memória M é organizada como um buffer de memória de um comprimento fixo de acordo com a disponibilidade da memória livre do módulo de assinante. Essa memória inclui um número de entrada aumentado em cada mensagem introduzida na memória, e um número de saída aumentado em cada leitura pelo gerenciador de memória GM. A possibilidade de diálogo entre o cartão SM e o módulo de assinante STB, em particular o centro CTR, autoriza funções mais complexas. Um dos problemas freqüentemente encontrados no momento da troca de um ou outro dos elementos do sistema, ambos, o cartão ou o módulo de assinante, é assegurar a compatibilidade de funções com o material de gerações anteriores. Para isso, é interessante permitir o diálogo entre os diferentes elementos para estabelecer as funções disponível em cada um deles; esse é o escopo da linha 1/0, que permite enviar instruções do cartão para o módulo de assinante. Por exemplo, essas instruções podem pedir para o módulo de assinante comunicar suas funções de áudio, vídeo ou dados, a geração do módulo ou a versão do software. Para responder a essa solicitação, o módulo STB dispõe de meios para compor uma mensagem de gerenciamento e transmiti-la, na memória M, para leitura mais adiante pelo cartão, ou diretamente para o cartão, como representado na Figura 3.
De acordo com outra concretização da invenção, o módulo STB dispõe de uma conexão através de modem com o centro de gerenciamento. Nesse caso, o anúncio de recursos pode ser feito pelo módulo STB para o centro de gerenciamento através do modem, a pedido do módulo de segurança SM.
Como indicado na Figura 3, o módulo STB recebe, do mesmo modo, as mensagens de gerenciamento que vêm do centro de gerenciamento. As mensagens que chegam ao centro de processamento CTR podem conter uma instrução de pedido de configuração. A resposta pode ser feita pelo modem ou ser transmitida para o cartão SM. Algumas dessas mensagens de gerenciamento são destinadas apenas ao módulo STB e o centro de processamento CTR, responsável pelo gerenciamento do módulo STB, não as transmitirá para o módulo de segurança SM ou para a memória M.