BRPI0620640B1 - método e aparelho para coleta de dados para caracterização de cargas de trabalho de sessão de http - Google Patents

método e aparelho para coleta de dados para caracterização de cargas de trabalho de sessão de http Download PDF

Info

Publication number
BRPI0620640B1
BRPI0620640B1 BRPI0620640-9A BRPI0620640A BRPI0620640B1 BR PI0620640 B1 BRPI0620640 B1 BR PI0620640B1 BR PI0620640 A BRPI0620640 A BR PI0620640A BR PI0620640 B1 BRPI0620640 B1 BR PI0620640B1
Authority
BR
Brazil
Prior art keywords
session
data
http
computer system
server
Prior art date
Application number
BRPI0620640-9A
Other languages
English (en)
Inventor
lawrence barsness Eric
Joseph Stecher John
Matthew Santosuosso John
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of BRPI0620640A2 publication Critical patent/BRPI0620640A2/pt
Publication of BRPI0620640B1 publication Critical patent/BRPI0620640B1/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Abstract

método e aparelho para coleta de dados para caracterizaçâo de cargas de trabalho de sessâo de http. um servidor da web que inclui vários sistemas de computador inclui, pelo menos, um sistema que mantém um banco de dados de dados redundantes de sessão persistentes em nome de outros sistemas que processam cargas de trabalho para sessão de http para clientes. um analisador de sessão extrai (707711) informações deste banco de dados de redundância para caracterizar cargas de trabalho de sessão de http. de preferência, cargas de sessão trabalho são processadas por middleware compreendendo um servidor de aplicações e uma ou mais solicitações. o servidor de aplicação mantém dados de sessão persistente como objetos de dados, e atualiza automaticamente o banco de dados de dados redundantes cujas respostas são transmitidas para um clientes. o analisador de cessão independentemente extrai dados do banco de dados redundante para caracterizar as cargas de trabalho de sessão. opcionalmente, o analisador inclui uma função de interferência inteligente (716) que pode fazer recomendações de sintonização (717) a partir de dados extraídos.

Description

MÉTODO E APARELHO PARA COLETA DE DADOS PARA CARACTERIZAÇÃO DE CARGAS DE TRABALHO DE SESSÃO DE HTTP.
Campo Da Invenção
A presente invenção refere, de modo geral, ao processamento de dados digitais, e mais especialmente à operação de servidores que respondem às solicitações do cliente usando sessões de HTTP em um ambiente de computação digital em rede.
Antecedentes
Na segunda metade do século XX, começou um fenômeno conhecido como a revolução da informação. Enquanto a revolução da informação é um desenvolvimento histórico mais amplo do que qualquer evento ou uma máquina, nenhum 15 dispositivo passou a representar a revolução da informação mais do que o computador eletrônico digital. O desenvolvimento de sistemas de computador certamente foi uma revolução. Cada ano, sistemas de computadores crescem mais rapidamente, armazenam mais dados, e fornecem mais 20 aplicações para seus usuários. Ao mesmo tempo, o custo dos recursos de computação tem sistematicamente diminuído, para que a informação que era demasiadamente cara para coletar, armazenar e processar alguns anos atrás, agora é economicamente viável para manipular através do computador.
O custo reduzido de processamento de informação disparou o aumento da produtividade em um efeito bola de neve, porque projetos de produtos, processos de fabricação, o agendamento de recursos, tarefas administrativas, e muitos outros fatores, se tornaram mais eficientes.
O custo reduzido de informática e disponibilidade geral de aparelhos digitais tem trazido uma explosão no volume de informações armazenadas em tais dispositivos. Com tanta informação armazenada em formato digital, é naturalmente desejável a obtenção de um amplo acesso às informações dos sistemas de computador. O volume de informações diminui a capacidade de armazenamento de qualquer dispositivo. Para melhorar o acesso à informação, várias técnicas para permitir que os dispositivos de computação se comunicar e troquem informações entre si, têm sido desenvolvidas. Talvez o exemplo mais notável desta computação distribuída é a World Wide Web (também conhecido simplesmente como a web), uma coleção de recursos que são disponibilizados em todo o mundo usando a Internet. Pessoas de crianças a idosos estão aprendendo a usar a web, e encontram uma variedade quase infinita de informação a partir da comodidade de suas casas ou locais de trabalho. Empresas, governo, organizações e indivíduos ainda são fazendo a disponibilização de informações na web, à medida que é agora a expectativa de que algo de interessante está disponível em algum lugar na web.
A Internet, que fornece o suporte para a web, bem como para e-mail e outras formas de comunicação e processamento distribuído entre vários sistemas digitais, é uma rede heterogênea de dispositivos digitais (nós) ligados por múltiplos links, de modo que entre quaisquer dois nós da rede existem múltiplos caminhos normalmente, dando à Internet algum grau de redundância. Os dados são enviados em pacotes, cada pacote sendo encaminhado através de múltiplos nós sucessivos até que ele chegue ao seu destino.
No nível básico de roteamento de pacotes, a Internet é capaz de transferir todos os dados arbitrários de um nó para outro, e pode assim ser vista como um meio de comunicação. No entanto, a utilidade da Internet depende das aplicações que lidam com troca de
dados na fonte e os nós de destino. 0 advento dos
navegadores da Web e outras aplicações da web, assim,
expandiu o uso da Internet, tornando a transferência de
tecnologia de informação de base disponível para uso em uma base individual e interativa para as pessoas sem conhecimentos de programação de computador extensa.
Por conseguinte, deve ser reconhecido que melhorias na usabilidade da tecnologia da Internet tem sido fundamental para a aceitação generalizada da Internet, e que nós podemos esperar que isso seja verdadeiro de uso contínuo e expansão da Internet e tecnologias relacionadas para resolver problemas no futuro.
A World Wide Web utiliza um paradigma servidor cliente interativo. Em resposta à entrada do usuário, um aplicativo de navegação interativa em execução em um cliente estabelece uma conexão, referido como uma sessão de HyperText Transfer Protocol (HTTP), com uma aplicação de servidor, acessando uma página da web (como uma home page), mantida pelo servidor. O servidor responde em tempo real, e o navegador formata a resposta para mostrar para o usuário. No nível mais básico de interação, a sessão de HTTP pode consistir em nada mais do que o cliente que solicita um documento (como uma página da web), enviando um URL do documento desejado, e o servidor responde enviando uma cópia do documento solicitado . Em muitos casos, uma sessão de HTTP envolve uma troca de dados significativamente mais complexa. Por exemplo, um usuário pode acessar uma loja online, navegar vários itens (diferentes páginas da web) d catálogo on-line do varejista, fornecer parâmetros para pesquisa, encontrar itens de interesse, selecionar itens específicos para comprar, fornecer informações de faturamento e expedição, e assim por diante, tudo dentro do contexto de uma sessão de HTTP única.
A fim de apoiar a troca interativa complexa de dados dentro de uma sessão de HTTP, geralmente, é desejável para o servidor manter alguma dados de sessão persistentes, ou seja, os dados que são usados para manter o estado da sessão e persiste no servidor pela duração da sessão. Esta sessão de dados persistente permanece no servidor por toda a troca interativa entre o cliente e o servidor à medida qe os pacotes de dados são trocados e o cliente navega de uma página para outra dentro do ambiente do servidor. Geralmente, os dados da sessão persistente não são repetidos em cada um dos pacotes de dados transmitidos entre o cliente e o servidor, embora possa ser atualizado por entrada recebida do cliente ou dados gerados internamente pelo servidor. Esta sessão de dados persistente é normalmente mantida no servidor em um de objeto de dados de sessão, como um aaplicatuvo Java™ Bean.
Em um servidor que atende a clientes via web, vários clientes podem ser conectados ao servidor a qualquer momento, ou seja, podem haver várias sessões de HTTP ativa no servidor a qualquer momento. Em uma empresa grande típica, o número de sessões simultâneas ativas que devem ser suportadas está bem acima das capacidades de qualquer sistema de computador único. Além disso, em muitas grandes empresas há uma necessidade critica para o servidor para estar disponível em todos os momentos. Muitas dessas empresas, portanto, presta serviços da web usando vários sistemas de computadores servidor, também referidos como um cluster de servidores. Tais cluster fornecem um poder de processamento adicional de vários sistemas e, configurado corretamente, pode fornecer um grau desejado de redundância para impedir a negação de serviço aos clientes em caso de falha ou indisponibilidade de um ou mais dos sistemas de servidor individuais dentro do cluster. A fim de fornecer uma interface de cliente sem costura, em caso de falha de um dos sistemas de servidor, dados de sessão persistentes, podem ser mantidos de forma redundante. Uma técnica comum para manter dados de sessão redundante persistentes é fornecer um ou mais sistemas dentro do cluster, que mantêm um banco de dados de dados de sessão persistente em nome de outros sistemas do cluster que desempenham funções de servidor para os clientes. Se algum dos sistemas de servidor falhar, as suas sessões ativas podem ser atribuídas a um ou mais outros sistemas de servidor do cluster e os dados de sessão persistentes correspondentes previstos para o servidor apropriado ou servidores.
volume e o tipo de dados mantido como dados de sessão persistentes dependem das aplicações que estão sendo executadas pelo servidor. Algumas aplicações mantêm uma quantidade mínima de dados do estado, que não variam significativamente de uma sessão para outra, mas muitas aplicações mantêm os dados da sessão, o que é muito mais complexo, e que representa uma história de interação do cliente com o servidor durante a sessão. Em tais aplicações, dados de sessão persistentes tendem a acumularse à medida que as sessões se tornam mais longas e que o cliente se envolve em maior interação com o servidor. A manutenção da sessão de tais dados persistentes pode consumir uma parcela muito substancial dos recursos de hardware disponíveis em um cluster de servidores.
Em um ambiente de servidor da web complexo típico, as funções a serem desempenhadas pelo servidor em nome dos clientes estão em constante evolução. Por exemplo, em um ambiente on-line de varejo, as páginas da Web exibidas para o usuário estão sendo constantemente atualizadas para refletir os novos itens, itens descontinuados, ofertas especiais, e assim por diante. De tempos em tempos, a empresa pode substituir sua interface da web inteira com uma versão melhorada, proporcionando melhoria da função, gráficos, navegação, e assim por diante. Além disso, o conjunto de clientes (clientes) que acessam o servidor (varejista on-line) pode evoluir, ou pode desenvolver diferentes padrões de interação com o servidor.
Devido à fluidez e a complexidade desta interação cliente-servidor, é dificil prever os padrões de uso dentro do servidor e, em particular, é dificil prever o volume de dados de sessão persistentes que deve ser mantido e os recursos necessários para manter o mesmo. Sem meios adequados para prever os padrões de uso, é dificil garantir gue os recursos adequados estarão disponíveis para atender as solicitações do cliente, para manter a redundância, e para garantir a disponibilidade do servidor. Além disso, é difícil prever os recursos que estão disponíveis de forma optimizada, de modo que, mesmo se existem recursos suficientes, a funcionalidade desejada pode estar faltando. Existe, portanto, uma necessidade para o aperfeiçoamento das técnicas para a caracterização e compreensão das interações cliente-servidor em sessões de HTTP de um servidor. web. Sumário da Invenção
Um servidor da web que inclui vários sistemas de computadores inclui pelo menos um sistema que mantém um repositório (por exemplo, um banco de dados, e referido como um banco de dados a seguir para facilidade de referência) de dados de sessão persistente redundantes em nome de outros sistemas que processam carga de trabalho de sessão de HTTP para clientes. Um analisador de sessão extrai informações desse banco de dados para caracterizar Cargas de trabalho de sessão de HTTP.
Na modalidade preferida, as sessões de HTTP são atribuídas aos sistemas de vários servidores de um cluster, cada sistema servidor processando um respectivo subconjunto de sessões de HTTP ativas. Um servidor de aplicativo e um ou mais aplicativo suportados pelo servidor de aplicativo executa em cada sistema de servidor do cluster para processar sessões de HTTP ativas. O servidor de aplicativo mantém os dados de sessão persistentes na forma de objetos de dados de sessão de HTTP, que são preferencialmente Java™ Beans, embora pudessem ter alguma outra forma. O cluster inclui ainda, pelo menos, um sistema de redundância da sessão, que mantém um banco de dados da dados de sessão persistente redundantes. Em caso de insuficiência ou inexistência de quaisquer dos sistemas de servidor, os dados de sessão persistentes correspondente a sessões ativas no sistema do servidor com falha podem ser recuperados a partir dos dados de sessão persistente redundantes. O servidor de aplicativo inclui um mecanismo de atualização automática dos dados de sessão persistente redundantes no sistema de redundância de sessão à medida que mudanças são feitas nos dados da sessão persistente no servidor de aplicativo e as respostas são transmitidas para o cliente. Esta configuração e divisão da função descrita como uma modalidade preferida pode variar.
Na modalidade preferida, o analisador de sessão executa tanto a mineração de dados e uma função de inferência inteligente. A função de mineração de dados extrai dados do banco de dados dos dados de sessão persistente redundantes para caracterizar as cargas de trabalho da sessão. Esses dados podem ser apresentados a um usuário, como um administrador do sistema, em qualquer uma das várias formas. Como um refinamento opcional, o analisador inclui uma função de inferência inteligente, que pode tirar conclusões a partir dos dados extraídos usando um sistema baseado em regras. Preferencialmente, essas inferências referem-se ao ajuste de parâmetros de sintonização disponíveis para um administrador de sistema ou pessoa similar, embora outras inferências possam alternativamente ser projetadas.
Ao fornecer uma ferramenta fácil de usar a caracterização de cargas de trabalho da sessão de HTTP, o planejamento de recurso adequado e sintonização em um servidor da web complexo são facilitados. Os dados obtidos da caracterização da carga de trabalho da sessão de HTTP também podem ser úteis para identificar as características dos programas aplicativos de servidor da Web que resultam em consumo excessivo de recursos, para possível ação corretiva em projetar as futuras versões dos próprios programas aplicativos. Além disso, uma vez que o banco de dados da dados de sessão persistentes redundantes já está sendo mantido com o objetivo de garantir a redundância de dados de sessão e disponibilidade do servidor para os clientes, a extração de dados carga de trabalho de sessão de HTTP a partir desta base de dados existente envolve a sobrecarga do sistema adicional relativamente pequena.
Mais detalhes da presente invenção, tanto quanto à sua estrutura e funcionamento, podem ser melhor compreendidos, referindo-se à seguinte descrição detalhada e desenhos anexos.
Breve Descrição dos Desenhos
Concretizações da invenção são descritas abaixo em mais detalhes, a título de exemplo, com referência aos desenhos anexos em que os numerais de referência comuns indicam peças semelhantes, e em que:
A figura 1 é uma representação de alto nível da
Internet.
A figura 2 é uma representação de alto nivel de um ambiente típico do servidor da web para a caracterização de cargas de trabalho da sessão de HTTP, de acordo com a modalidade preferida da presente invenção.
A figura 3 é um diagrama de blocos de alto nivel dos
principais componentes de hardware de um sistema de
computador de um servidor da web, de acordo com a
modalidade preferida.
A figura 4 é uma ilustração conceituai dos principais componentes de software de um sistema de computador do servidor de sessão, de acordo com a modalidade preferida.
A figura 5 é uma ilustração conceituai dos principais
componentes de software do sistema de banco de dados de
redundância da sessão, de acordo com a modalidade
preferida.
A figura 6 é um fluxograma ilustrando em um alto nivel
o processo de atender solicitações de clientes e manutenção de dados do estado da sessão, de acordo com a modalidade preferida.
As figuras 7A e 7B (doravante referidos coletivamente como figura 7) são um fluxograma ilustrando em um nivel elevado o processo de extração de dados para caracterizar a carga de trabalho da sessão, de acordo com a modalidade preferida .
Descrição das Modalidades Preferidas
Internet Geral
Antes de discutir a exploração de concretizações da invenção, uma breve visão geral da Internet está prevista. O termo Internet é uma versão abreviada de Internetwork', e refere-se geralmente a um conjunto de redes de computadores que utilizam o suíte de TCP / IP dos protocolos, bem conhecidos na técnicos de redes de computadores. TCP / IP é um acrônimo para Transport Control Protocol / Internet Protocol, um protocolo de software que facilita a comunicação entre computadores.
A figura 1 é uma visão de alto nível conceptual da Internet. A Internet não tem topologia pré-estabelecida, e é indefinidamente extensível, acrescentando novos nós e links. Um nó pode ter qualquer número de links de conexão para outros nós, e estes podem usar qualquer uma das diversas tecnologias de comunicação, com diferentes capacidades de dados e outras características. Ά topologia da Internet, portanto, torna-se uma rede extremamente complexa interligada, em que normalmente há um grande número de possíveis caminhos entre quaisquer dois nós.
A parte central da rede, às vezes chamada de backbone, contém vários roteadores de alta velocidade 101 que recebem pacotes de dados e transmitem essas informações a outros nós na rede. Normalmente, cada roteador possui várias conexões com outros roteadores, e essas ligações têm uma capacidade elevada de dados. Por exemplo, as ligações de fibra óptica são usadas entre os roteadores de alta velocidade 101. Ligados em alta velocidade roteadores são nós que servem como pontos de acesso ao backbone da Internet de roteadores de alta velocidade, ilustrados na figura 1 como nós 102. Os nós de acesso 102 também são roteadores, uma vez que têm a função encaminhar pacotes de dados entre os roteadores de alta velocidade 101 e outros nós da rede, mas tipicamente empregam mais conexões de alta velocidade. Um nó de acesso pode ser, por exemplo, um provedor de serviço público de Internet, que oferece acesso à Internet através de linhas telefônicas ou outras conexões por uma taxa, ou pode ser um nó de acesso de uma grande empresa para seus sistemas internos. Normalmente, cada nó de acesso 102 conecta-se a vários roteadores de alta velocidade 101 para fornecer redundância, embora esta não seja uma exigência. Cada nó de acesso normalmente fornece acesso a vários sistemas de computador hospedeiros 103A, 103B (referidos genericamente como numeral de referência 103), dos quais apenas dois são ilustrados na figura 1. Os hosts 103 são os sistemas de computadores que se conectam à
Internet e que geram como a fonte ou recebem como destino final os pacotes de dados transmitidos através da Internet. Os hosts 103 podem ser qualquer tipo de sistema de computador, de sistemas de grande porte a PCs portáteis para dispositivos portáteis, e uma única máquina pode representar um conjunto de sistemas. Muitas vezes, um host tem apenas um nó de acesso 102, que ele usa para acessar a Internet (caso em que não é redundante), embora esse acesso possa ter vários nós para redundância. A ligação entre o host e o nó de acesso é, muitas vezes, a velocidade relativamente baixa (como uma linha de ligação telefônica ou de frequência de rádio), mas podería ser uma ligação de alta velocidade. No caso de alguns sistemas de computador, tais como servidores de internet de grande porte que têm a função principal de fornecer informações através da Internet, o host pode ser conectado diretamente aos roteadores de alta velocidade, 101 e, portanto, servir como seu próprio nó de acesso.
Será entendido que figura 1 serve como uma ilustração conceituai da Internet, e que na realidade o número de nós e conexões da Internet é muito maior do que os mostrados na figura 1, e que a topologia das conexões pode variar. Além disso, será entendido que podem haver novas hierarquias de tipos de conexões e formas de acesso, que não são mostradas na figura 1 para a clareza da ilustração. Ou seja, pode haver vários tipos ou classes de acesso do nó 102 através do qual um host se conecta para alcançar os roteadores de alta velocidade 101 do backbone, e que diferentes máquinas podem conectar-se em níveis diferentes de nó de acesso. Estritamente falando, a Internet dispõe de todos os dispositivos acoplados a ela, e quando um sistema de computadores pequeno, como um computador está conectado à Internet, é parte da Internet no sentido de que ele se torna um nó da Internet e tem um endereço (embora O endereço pode ser apenas temporário). Muitas vezes, os roteadores e conexões do backbone da Internet e nós de acesso são referidos como a Internet, ou seja, a Internet é vista como um meio de comunicação, em oposição a uma rede de processamento distribuído de sistemas de computador. Em geral, o Internet é usada aqui no sentido de este último para descrever o meio de comunicação, embora, dependendo do contexto, o primeiro sentido pode ser empregado.
Sistemas em rede normalmente seguem uma arquitetura cliente-servidor. Um cliente é um membro de uma classe ou grupo que utiliza os serviços de outra classe ou grupo a que não está relacionado. No contexto de uma rede de computadores como a Internet, um cliente é um processo (ou seja, um programa ou tarefa) que solicita um serviço fornecido por outro programa. O processo cliente utiliza o serviço solicitado, sem necessidade de saber todos os detalhes sobre o trabalho do outro programa ou o próprio servidor. Em sistemas em rede, um cliente normalmente é um computador que acessa recursos compartilhados de rede fornecidos por outro computador (ou seja, um servidor).
Um servidor é tipicamente um ou mais sistemas de computador remoto acessível ao longo de um meio de comunicação como a Internet. O servidor varre e procura por fontes de informação. Com base em tais pedidos pelo usuário, o servidor apresenta informação eletrônica filtrada para o usuário como resposta do servidor para o processo do cliente. O processo cliente pode estar ativo em um primeiro sistema de computador, e o processo servidor pode estar ativo em um segundo sistema de computador, os processos se comunicam entre si por um meio de comunicação que permite que vários clientes tirem vantagem das capacidades de coleta de informações do servidor. Um servidor pode ser descrito como um computador de rede que executa o software administrativo que controla o acesso a toda ou parte da rede e seus recursos, tais como os dados em um disco. Um computador atuando como um servidor disponibiliza os recursos disponíveis para computadores agindo como estações de trabalho na rede.
Cliente e o servidor podem se comunicar com um outro utilizando a funcionalidade fornecida por um protocolo de transferência de hipertexto (HTTP). A World Wide Web (WWW), ou simplesmente, a web, inclui todos os servidores na Internet aderindo a este protocolo, que são acessíveis aos clientes através de um endereço de Universal Resource Locator (URL). Serviços de Internet pode ser acessados através da especificação dos Universal Resource Locators que tem dois componentes básicos: um protocolo a ser utilizado e um caminho de objeto. Por exemplo, o endereço de Universal Resource Locator http://www.uspto.goy especifica um protocolo de transferência de hipertexto ('http') e um nome ( 'www.uspto.gov') do servidor para o Escritório de Patentes do Estados Unidos da América (USPTO). 0 nome do servidor é associado com um único valor numérico (ou seja, um endereço TCP / IP). Embora o servidor pode, de fato, compreender vários sistemas de computadores que, coletivamente, executam a função de servidor, o servidor é um host único no sentido de que tem um único endereço TCP / IP, ao qual ele responde, e a estrutura exata do servidor (número de dispositivos, a divisão de funções, e assim por diante) está protegida da vista do cliente.
Ativo dentro do cliente está um primeiro processo que estabelece a conexão com o servidor para iniciar uma sessão de HTTP, envia solicitações de HTTP para o servidor dentro da sessão de HTTP estabelecida, recebe respostas de HTTP do servidor dentro da sessão de HTTP, e apresenta informações para o usuário. Convencionalmente, este primeiro processo é um aplicativo de navegação interativa. O próprio servidor executa o software de servidor correspondente, que apresenta informações para o cliente sob a forma de respostas de HTTP. As respostas de HTTP correspondem às páginas da web construídas a partir de um documento Hypertext Markup Language (HTML), ou outros dados gerados por servidor.
O navegador recupera uma página da web a partir do servidor e exibe para o usuário no cliente. Uma página web (também referida como uma página ou um documento) é tipicamente um arquivo de dados escrito em uma linguagem de hiper-texto, como HTML, que podem ter textos, imagens gráficas, e até mesmo objetos multimídia, tais como gravações de som ou clips de vídeo em movmento associados com esse arquivo de dados, embora a página da web também possa ser simplesmente uma imagem. Uma página de hipertexto contém etiquetas de controle e de dados. As etiquetas de identificação da estrutura de controle: por exemplo, os títulos, subtítulos, parágrafos, listas e concretização das imagens. Os dados consistem no conteúdo, como texto ou multimídia, que será exibido ou reproduzido para o usuário. Um navegador interpreta as etiquetas de controle e formata 5 os dados de acordo com a estrutura especificada pelas etiquetas de controle para criar um objeto visível que o navegador exibe, toca ou executa para o usuário. A etiqueta de controle pode direcionar o navegador para recuperar uma página de outra fonte e coloque-la no local especificado 10 pela etiqueta de controle. Desta forma, o navegador pode construir um objeto visível que contém vários componentes, como planilhas, textos, hotlinks, imagens, sons, chat-rooms e objetos de vídeo. Uma página da web pode ser construída através do carregamento de um ou mais arquivos separados em 15 um Diretório Ativo ou estrutura de arquivo que é exibido como um objeto visível dentro de uma interface gráfica do usuário.
No caso mais simples descrito acima, a transferência de informações é basicamente um caminho, o navegador 20 cliente só solicita as informações (como através da identificação de um documento desejado pelo seu URL) e o servidor que as forneceu. Também é possível dentro da sessão de HTTP para um cliente fornecer informações para um servidor de acordo com um formato designado pelo servidor.
Um servidor pode especificar um formato em que a informação do cliente deve ser enviada através de um formulário de HTML na web. 0 cliente acessa o browser do servidor e recupera o formato HTML, assim como faria com qualquer página da web. O navegador formata o formulário HTML para visualização interativa para o usuário. O formulário contém tipicamente um ou mais campos de entrada interativa, no gual o usuário pode especificar os dados de entrada. Estes dados de entrada podem ser dados de texto que são diretamente inseridos pelo usuário em um campo de entrada interativos (como, por exemplo, um número de cartão de crédito), ou podem ser obtido a partir de dados de um arquivo no sistema do cliente, que é especificado pelo usuário em um campo de entrada interativa. Os dados do usuário conforme especificados são formatados de acordo com a especificação do formulário HTML. Estes dados do usuário formatado (conhecidos como os dados do formulário, que pode ser multi-parte) são, então, enviados para o servidor em uma solicitação de HTTP. O servidor, então, processa o pedido, incluindo os dados do formulário, e responde ao cliente de forma adeguada.
Uma vez gue uma única sessão de HTTP pode incluir múltiplas trocas de dados indo do cliente para o servidor e do servidor para o cliente, e precisam de um servidor, não só para fornecer dados para o cliente, mas a atualização de dados mantidos pelo servidor ou algum outro sistema, bem como, toda a sessão de HTTP interativa pode ser visto como um processo complexo de estado finito. De modo a poder servir o cliente, o servidor normalmente mantém dados de sessão persistentes para cada respectiva sessão ativa, estes dados de sessão persistentes que persistem no servidor para a duração da sessão (embora possam ser atualizados com sucesso a cada troca de dados interativo da sessão de HTTP).
Descrição Detalhada
Referindo-se ao desenho, onde números semelhantes denotam as peças semelhantes em todas as diversas vista. Figura 2 é uma representação de alto nivel de um ambiente típico do servidor da web para a caracterização de cargas de trabalho da sessão de HTTP, de acordo com a modalidade preferida da presente invenção. Uma empresa que serve a web mantém um conjunto de sistemas de computador 202 (aqui referido como o servidor da web) para a prestação de uma presença na web, ou seja, gerar uma ou mais páginas da web interativas de informação acessível através da Internet 100. Do ponto de vista dos outros dispositivos acoplados à Internet, o servidor da web 202 é um sistema hospedeiro único 103. Clientes 201A-D (aqui referidos genericamente como característica 201) que se comunicam através da Internet 100 geram pedidos de serviço ao servidor da web 202. Pelo menos um dos sistemas de servidor da web é uma porta 203 que é acoplada à Internet. O servidor da web inclui ainda vários sistemas servidor de sessão 205A-205C (aqui referidos genericamente como característica 205), e pelo menos um sistema de banco de dados de redundância de sessão 206. Os vários sistemas do servidor da web comunicam entre si através da rede 204. A rede 204 é, de preferência, uma rede de área local (LAN) , como uma rede de área local Ethernet, embora outras redes são possíveis.
Em operação, o gateway 203 recebe pacotes de dados dirigidos ao servidor da web 202 através da Internet. O gateway 203 determina um destino adequado dentro do servidor da web 202 para cada pacote de dados. Especificamente, quando um pacote chega pedindo criação de uma conexão de sessão de HTTP entre um cliente 201 e servidor da web 202, o gateway 203escolhe um sistema de servidor de sessão 205 para lidar com a sessão. Assim que a sessão é estabelecida, as comunicações posteriores do mesmo cliente dentro da mesma sessão geralmente são encaminhadas para o sistema de servidor de sessão que foi originalmente escolhido, de modo que apenas um sistema de servidor de sessão processa qualquer sessão especial. Sistemas de
Gateway, que alocam sessões para sistemas de servidor de sessão são bem conhecidos na técnica, e a atribuição podería ser baseada em qualquer algoritmo ou critérios atualmente conhecidos ou futuramente desenvolvidos. Normalmente, as tentativas de alocação para equilibrar a carga de trabalho entre os servidores da sessão, embora outros ou considerações adicionais podem ser utilizadas. Apesar de o gateway 203 ser representado na figura 2 como um único sistema que se interponha entre a Internet 100 e a LAN 204, a função do gateway pode alternativamente ser realizada por vários sistemas ou dispositivos. Por exemplo, um roteador podería rotear dados entre a Internet lOOe LAN 204, enquanto a função de alocar sessões para servidores de sessão diferentes pode ser realiza por um sistema separado ligado à LAN 204.
A função de servidores da sessão 205 é processar a carga de trabalho de sessão em nome do servidor da web. Um servidor de sessão gera informações solicitadas pelo cliente e/ou processa transações solicitadas pelo cliente. No caso da informação a ser enviada para o cliente, isso geralmente significa que a informação é formatada como um documento de HTML ou sob qualquer outra forma adequada. Um servidor de sessão pode ser capaz de executar todos os serviços necessários por si só, mas mais geralmente o servidor de sessão terá acesso a uma ou mais bases de dados compartilhadas, representadas pelo sistema de banco 207, para atender o cliente. Por exemplo, no caso de um varejista on-line, um servidor de sessão pode ter uma cópia local das páginas da web que representam o catálogo do varejista, mas geralmente será necessário acessar um banco de dados compartilhado, a fim de obter um perfil dos clientes, verificar o inventário, registrar seleções do cliente, e fazer todas as outras coisas necessárias para completar uma transação de venda on-line. Em alguns casos, o cliente simplesmente quer informações do banco de dados compartilhado, e as funções do servidor de sessão principalmente para acessar o sistema de banco de dados 207 e formatar os dados em um formulário apropriado de cliente (por exemplo, para visualização em um navegador da web) . Como o servidor de sessão 205 acessa o banco de dados compartilhado 207 em nome de clientes 201 a fim de atender às solicitações do cliente, é por vezes referido como um sistema de camada intermediária ou servidor de nível médio.
Um sistema de banco de dados 207, que mantém um banco de dados compartilhado para uso por servidores de várias sessões pode ser parte da empresa de servidor da web, ou pode ser um banco de dados mantido completamente independente da empresa do servidor da web. Embora o sistema de banco 207 seja mostrado acoplado à LAN 204, como seria típico de um sistema de base de dados interna para a empresa do servidor da web, o sistema de banco 207, em alternativa pode se comunicar com os servidores da sessão 205 através de qualquer link de comunicação, rede ou uma combinação destes, incluindo a Internet.
Pelo menos um sistema de banco de dados de redundância de sessão 206, que é separado dos servidores de sessão 205, mantém um banco de dados da dados de sessão persistente redundante, também aqui referido como a base de dados de sessão redundante. Convencionalmente, a propósito da base de dados de sessão redundante é evitar a perda de dados e prover recuperação sem costura, no caso de um dos servidores da sessão 205 torna-se indisponível.
Especificamente, se um servidor de sessão 205 fica indisponível, o gateway 203 seleciona um respectivo servidor de sessão suplente para cada sessão ativa no servidor de sessão indisponível, à medida que novos pacotes de dados chegam aos clientes. Os pacotes de dados relativos às sessões previamente estabelecidas contêm um identificador de sessão da sessão a que se refere. Ao determinar que esta sessão foi anteriormente atribuída a um servidor de sessão que está agora disponível, o gateway atribui a um servidor de sessão sucessor, e roteia em conformidade. O sucessor servidor de sessão acessa sistema de banco de dados de redundância de sessão 206 para obter os dados de sessão persistentes da sessão (que caso contrário teria sido mantida pelo servidor de sessão não disponível). A partir dos dados no banco de dados de sessão redundante, o servidor de sessão sucessor é capaz de reconstruir o estado da sessão, e continuar o processamento da sessão em que o servidor não disponível tinha deixado de fora. 0 cliente nunca sabe que a substituição de servidores sessão foi feita, e para o cliente, todo o processo aparece sem costura.
De acordo com a modalidade preferida da presente invenção, o banco de dados de sessão redundante, no sistema de banco de dados de redundância de sessão 206 é utilizado para outro fim fora do âmbito da sua finalidade original. Especificamente, os dados no banco de dados de redundância sessão são analisados e usados para caracterizar a carga de trabalho de sessão dentro do servidor da web 202. O funcionamento do sistema de banco de dados de redundância de sessão é descrito em maiores pormenores.
A figura 2 destina-se a representar um típico ambiente de servidor da web em um alto nível de generalidade, e não se destina a representar todos os componentes desse tipo de ambiente em um detalhe, ou todas as permutações possíveis de um ambiente de servidor da web. Numerosas variações de representação de ambiente da figura 2 são possíveis, das quais os seguintes são possíveis, em particular, a descrição das variações neste particular, destinando-se a título de exemplo e não por meio de limitação. Apesar de um gateway único, 203 e uma única rede local 204 serem mostrados para fins ilustrativos, o uso de um sistema de acesso único e uma única rede local, obviamente, cria confiabilidade e disponibilidade de exposições, uma vez que a falha de um único componente podería derrubar o servidor da Web inteiro. Portanto, é comum fornecer vários sistemas gateway redundantes e múltiplos caminhos redundantes de comunicação entre os sistemas do cluster de servidores da web. Além disso, embora o sistema de banco de dados 207 seja mostrado como uma única entidade monolítica, de fato, pode incluir vários sistemas de computadores em cima do qual os dados são armazenados e/ou operações realizadas de forma distribuída. Podem existir múltiplos bancos de dados, de fato, com diferentes organizações e interfaces, todas acessadas pelo mesmo conjunto de servidores de sessão, e um ou mais bancos de dados podem ser armazenados de forma redundante em vários sistemas. Embora a rede 204 seja descrito como uma rede de área local, a rede podería ser qualquer conjunto de links de comunicação, rede ou uma combinação de redes que permite que diversos dispositivos servidores da web se comuniquem um com outro, e pode incluir links redundantes. Apesar de quatro clientes 201 serem representados como simples estações de trabalho do usuário, um cliente pode ser qualquer entidade que pode gerar pedidos de serviço para o servidor da web, e pode incluir processos em execução em grandes sistemas de múltiplos usuários, além disso, o número de clientes pode variar, e normalmente é significativamente maior do que os quatro clientes para fins ilustrativos representado da figura 2.
A figura 3 é um diagrama de blocos de alto nível dos componentes principais de hardware de um sistema de computador 300 do servidor da web 202, de acordo com a modalidade preferida. 0 sistema 300 é uma representação do sistema generalizado que podería representar os componentes de hardware de um sistema de servidor de sessão 205, ou podería representar os componentes de hardware do sistema de banco de dados de redundância de sessão 206, ou algum outro sistema. A CPU 301 é, no mínimo, um processador de propósito geral programável, que executa instruções e processa os dados da memória principal 302. A memória principal 302 é de preferência uma memória de acesso aleatório usando qualquer uma das várias tecnologias de memória, no qual os dados são carregados a partir da memória ou processamento da CPU 301.
Um ou mais barramentos de comunicações 305 fornecem um caminho de comunicação de dados para transferir dados entre a CPU 301, a memória principal 302 e várias unidades de interface de E/S 311-314, que podem também ser conhecidos como processadores de E/S (lOPs) ou adaptadores de E/S (lOAs). As unidades de interface de E/S suportam comunicação com uma variedade de unidades de armazenamento e dispositivos de E / S. Por exemplo, a unidade de interface terminal 311 suporta a ligação de um ou mais terminais de usuário 321-324. A Unidade de interface de armazenamento 312 suporta a ligação de um ou mais dispositivos de acesso direto (DASD) 325-327 (que são tipicamente dispositivos de armazenamento em disco magnéticos rotativos, embora pudessem ser, alternativamente, outros dispositivos, incluindo conjunto de unidades de disco configurado para aparecer como um dispositivo de armazenamento de grandes dimensões para um host) . A unidade de interface de dispositivo 313 suporta a fixação de qualquer um dos vários outros tipos de dispositivos de E/S, tais como a impressora 328 e fax 329, entendendo-se que outros tipos ou adicionais de dispositivos de E/S podem ser usados. A interface de rede
314 suporta uma conexão para uma ou mais redes externas 330 para comunicação com um ou mais outros dispositivos digitais. A rede 330 pode representar quer a rede 204 ou algum conjunto de várias redes, e pode ser incorporada como uma das várias redes locais ou de longa distância conhecidas na técnica.
Deve-se entender que a figura 3 destina-se a descrever os componentes principais do sistema representativo 300 a um nível elevado, que os componentes individuais podem ter uma maior complexidade do que representado na figura 3, que outros componentes, ou em complemento aos mostrados na figura 3 podem estar presente, e que o número, tipo e configuração dos componentes podem variar, e que um grande sistema de computador normalmente tem mais componentes do que os representados na figura 3. Vários exemplos específicos de complexidade adicional, ou variações adicionais são divulgados aqui, entendendo-se que estes são a título de exemplo, apenas e não são necessariamente as únicas variações.
Apesar de apenas uma única CPU 301 ser mostrada para fins ilustrativos na figura 3, o sistema de computador 300 pode conter múltiplas CPUs, como é conhecido na técnica. Embora a memória principal 302 seja mostrada na figura 3 como uma única entidade monolítica, a memória 302 pode na verdade ser distribuída e/ou hierárquica, como é conhecido na técnica. Por exemplo, a memória pode existir em vários níveis de cache, e estes caches podem ser divididos por função, de modo que uma cache mantém instruções enquanto a outra detém dados não relacionados a instruções que são usados pelo processador ou processadores. A memória pode mais ser distribuída e associada com CPUs diferentes ou conjuntos de CPUs, como é conhecido em qualquer um das várias chamadas arquiteturas de computador de acesso à memória não-uniforme (NUMA). Apesar de barramentos de comunicações 305 serem mostrados na figura 3 como uma entidade única, as comunicações de fato entre os vários componentes do sistema é normalmente realizada através de uma complexa hierarquia de barramentos, interfaces e assim por diante, em que os caminhos de maior velocidade são utilizados para as comunicações entre a CPU 301 e a memória 302, e os caminhos de mais baixa velocidade são utilizados para comunicação com unidades de interface de E/S 311-314. Os barramentos 305 podem ser organizados em qualquer das formas diversas, tais como ligações ponto-a-ponto em estrela hierárquica, ou configurações da web, vários barramentos hierárquicos, os caminhos paralelos e redundantes, etc. Por exemplo, como é conhecido em uma arquitetura NUMA, trajetos de comunicações são organizados em uma base nodal. Barramentos podem utilizar, por exemplo, uma indústria de barramento de padrão PCI ou qualquer outra tecnologia de barramento apropriada. Apesar de várias unidades de interface de E/S serem mostradas que separa os barramentos de sistema 305 de vários caminhos de comunicações rodando para vários dispositivos de E / S, que seria alternativamente possível ligar alguns ou todos os dispositivos de E / S diretamente a um ou mais sistema de barramento.
O sistema de computador 300 representado na figura 3 tem vários terminais conectados 321-324, como podería ser típico de um sistema de computador mainframe de múltiplos usuários. O número real de dispositivos conectados pode variar, e a presente invenção não está limitada a sistemas de qualquer tamanho específico. Estações de usuários ou terminais que acessam o sistema de computador 300 também podem ser anexadas e se comunicam com o sistema 300 através da rede 330. 0 sistema de computador 300 pode ser, alternativamente, um sistema que não contém terminais conectados ou apenas um único console de operador, contendo apenas um único visor de usuário e teclado. Além disso, enquanto algumas funções da invenção aqui descrita são para fins ilustrativos como concretizadas em um único sistema de computador, essas funções podem, alternativamente, ser implementadas usando uma rede distribuída de sistemas de computador em comunicação um com o outro, em que diferentes funções ou etapas descritas neste documento são realizadas em sistemas de computadores diferentes.
Apesar de vários componentes do sistema terem sido descritos e apresentados em um nível alto, deve-se entender que um sistema de computador típico contém muitos outros componentes não mostrados, que não são essenciais para a compreensão da invenção. Na modalidade preferida, o sistema de computador 300 é um sistema de computador baseado na arquitetura IBM i / Series ™ entendendo-se que a presente invenção pode ser implementada em outros sistemas de computador.
A figura 4 é uma ilustração conceituai dos principais componentes de software de um servidor da sessão 205, representado como componentes de memória 302, segundo a modalidade preferida. 0 kernel do sistema operacional 401 é o código executável e dados do estado fornecendo várias funções de baixo nível de software, como interfaces de dispositivo, gerenciamento de páginas de memória, gestão e envio de múltiplas tarefas, etc, como é bem conhecido na técnica. Em particular, o sistema operacional 401 inclui pelo menos uma função de acesso de rede 402. A função de acesso de rede 402 é um software que se comunica através da interface de rede 314 com uma ou mais redes externas, particularmente a rede 204. A função de acesso de rede 402 geralmente lida com as comunicações de rede, em nome dos pedidos de execução, em sistema servidor de sessão 205, que inclui especificamente o servidor de aplicativo 404 exercendo funções em nome dos aplicativos da sessão da camada intermediária 405, 406. Embora a função de acesso à rede 402 seja mostrada como parte do kernel do sistema operacional 401, poderia ser, alternativamente, um módulo de software separado.
Uma instalação de servidor de sessão 403 executa serviços em nome de um cliente dentro de uma sessão de HTTP. A instalação do servidor de sessão 403 pode ser considerada como um mecanismo de camada intermediária, porque, sempre que necessário, a sessão de instalação do servidor acessa uma ou mais bases de dados compartilhadas 207 em nome de clientes para processar solicitações do cliente. A instalação do servidor de sessão apresenta uma interface world wide web interativa 201 para vários clientes que se comunicam com o sistema servidor de sessão 205 através da Internet 100. Ou seja, a instalação de servidor de sessão 403 gera páginas web interativas em HTML ou outro formato apropriado para a visualização de aplicativo web browser executando em sistemas cliente 201.
Para 201 clientes, a instalação de servidor de sessão 403 funciona como servidor e os clientes não têm conhecimento de algum banco de dados ou outros aplicativos por trás da instalação de servidor de sessão 403. Em especial, os clientes não estão cientes de quaisquer funções ou aplicativos que mantenham os dados da sessão redundante.
Na modalidade preferida, a facilidade de servidor de sessão 403 inclui um servidor de aplicativos 404, e um ou mais aplicativos de servidor de sessão 405, 406 (dos quais dois são ilustradas na figura 4, entendendo-se que o número pode variar) . O servidor de aplicativos 404 é um framework ou shell para geralmente suportar os aplicativos da camada média em um ambiente cliente-servidor e, em particular para suportar esses aplicativo onde o cliente é um aplicativo de navegação interativa na Internet acessando a camada intermediária através da Internet. Entre outras características, o servidor de aplicativo 404 contém um conjunto de funções (facilidades de conexão) para acessar bancos de dados 207 em uma variedade de formatos de bancos de dados comumente usados nativos; para o estabelecimento de comunicações com os clientes 201 no prazo das respectivas sessões de HTTP. Os aplicativos de sessão de servidor 405, 405 são desenvolvidos em código para a realização de algum conjunto de funções específicas de servidor em nome de clientes 103. O servidor de aplicativo
404 fornece dados de solicitação de entrada do cliente para os aplicativos 405, 406. Estes aplicativos geralmente requerem acesso a um banco de dados compartilhado 207, apesar de alguns aplicativos poderem não exigir tal acesso. Sempre que o acesso do banco de dados é exigido por um aplicativo 405, 406, ele chama as instalações de conexão do servidor de aplicativo 404 para acessar um sistema de banco de dados 207. 0 servidor de aplicativo 404 recebe respostas do banco de dados, que geralmente são enviadas para o aplicativo adequado. As respostas de dados para o cliente são geradas pelo aplicativo 405, 406, e transmitidas através do servidor de aplicativos 404. Os aplicativos 405,
406 se comunicam com o servidor de aplicativo 404 através de uma interface comum 407, que é independente do aplicativo ou banco de dados a ser acessado. Na modalidade preferida, a interface 407 está em conformidade com uma especificação de interface Java 2 Enterprise Edition (J2EE) , embora outras interfaces de rede podem ser usadas alternativamente. Na modalidade preferida, o servidor de aplicativo 404 é um Servidor de aplicativo IBM WebSphere ™, entendendo-se que outras formas de instalação de servidor de aplicativo podem ser usadas alternativamente.
O servidor de aplicativo inclui 404 função de gerenciador de objeto de sessão 408 que mantém os dados de sessão de HTTP persistentes. Preferencialmente, os dados de sessão persistentes são mantidos sob a forma de vários objetos de dados de sessão persistentes 411-414 e, especificamente, é preferível que cada objeto de dados de sessão persistentes 411-414 seja uma estrutura de dados em conformidade com a especificação Enterprise Java Bean (EJB) promulgada pela Sun Microsystems, entendendo-se que a sessão de dados persistente pode ser mantida sob qualquer outra forma. Há um objeto de dados de sessão persistentes para cada sessão ativa. Cada objeto de dados de sessão persistentes 411-414 persiste no servidor de sessão através do tempo de vida da sessão, e geralmente é excluído quando a sessão termina. Quatro objetos de dados de sessão persistentes 411-414 são ilustrados na figura 4, entendendo-se que o número de objetos da sessão e o número de sessões ativas em um determinado momento, geralmente é muito maior. O gerenciador de objeto de sessão 408 fornece funções de acesso para aceder à objetos de dados sessão persistente a fim de obter dados dos mesmos para atualizar os dados, e assim por diante. O gerenciador de objeto de sessão também aloca novo objeto de dados de sessão persistentes e de-aloca objetos quando a sessão termina.
O servidor de aplicativo 404 inclui ainda uma função de redundância de dados de sessão persistente 409 que automaticamente fornece redundância para dados de sessão persistente em objetos de dados 411-414. Especificamente, como objetos de dados de sessão persistente 411 e 414 são atribuídos, modificados, e de-alocados, a função de redundância 409 transmite dados redundantes contendo as atribuições, as modificações e as dealocações para o sistema de banco de dados de redundância de sessão 206 através da rede 204. O sistema de redundância 206 usa esses dados redundantes da função de redundância 409 para manter seu banco de dados da sessão redundante. O sistema de redundância 206 recebe estes dados redundantes de todos os sistemas servidores 205no cluster de sistemas que formam o servidor da web 202, para que o banco de dados dos dados de sessão redundante no sistema de redundância 206 geralmente representem os respectivos estados de sessão atual de todas as sessões de HTTP ativas no servidor da web (negligenciando atrasos de transmissão, filas e outros atrasos no processamento etc).
A função de redundância 409 transmite mensagens de atualização de dados redundantes para o sistema de redundância 206 aproximadamente simultaneamente com a transmissão de mensagens de saída para os clientes 201. Ou seja, as alterações nos dados de sessão persistentes, como resultado do processamento no servidor de sessão são mantidas e acumuladas na sessão 205 do servidor até que o servidor de sessão esteja pronto para transmitir uma resposta ao cliente. Quando a resposta é transmitida para o cliente, a função de redundância 409 contemporaneamente transmite as alterações de dados de sessão persistentes acumulados para o sistema de redundância 206. Desta forma, apenas o estado de dados de sessão a partir da perspectiva do cliente é manter o sistema de redundância 206.
Os servidores de sessão 205 normalmente contêm dados adicionais não mostrados na figura 4. Por exemplo, os servidores da sessão 205 podem ter cache de alguns dados do sistema de banco de dados compartilhado 207 e/ou algumas páginas da web para uso por aplicativos do servidor de sessão 405, 406 na geração de respostas aos clientes. Vários outros dados de estado podem ser mantidos por servidores de sessão.
A figura 5 é uma ilustração conceituai dos principais componentes de software do sistema de banco de dados de redundância de sessão 206, representado como componentes de memória 302, segundo a modalidade preferida. O kernel do sistema operacional 501 e a função de acesso à rede 502 fornecem função análoga às do kernel do sistema operacional
401 e a função de acesso à rede 402, respectivamente, do sistema servidor de sessão 205. Embora as funções oferecidas sejam análogas, os sistemas operacionais 401 e 501 não são necessariamente idênticos (embora pudessem ser). A função de acesso de rede 502 comunica-se através de interface de rede 314 para uma ou mais redes, que inclui especificamente a rede 104. A função de acesso de rede 502 geralmente lida com as comunicações de rede, em nome dos aplicativos em execução, no sistema de banco de dados de redundância 206, que inclui especificamente o sistema de gerenciamento de banco de dados 511. Embora a função de acesso à rede 502 seja mostrada como parte do kernel do sistema operacional 501, poderia ser, alternativamente, um módulo de software separado.
Um banco de dados estruturado 503 mantém dados de sessão persistente redundantes em nome dos vários servidores de sessões 205. O banco de dados 503 contém uma ou mais tabelas 504 (das quais uma é mostrado na figura 5), cada uma tendo uma pluralidade de cadastros ou registros, cada entrada contendo pelo menos um (e geralmente vários) campos, como é bem conhecido na técnica. A base de dados de 504 (ou tabelas) contém dados de sessão persistente redundantes organizada de tal forma a ser acessível a reconstruir sessões particulares. Associado com a tabela de dados ou tabelas estão uma ou mais estruturas de dados auxiliares 505—508, também, por vezes, referida como metadados. As estruturas de dados auxiliares caracterizam a estrutura do banco de dados e dados nelas contidos, e são úteis em várias tarefas envolvidas na gestão de banco de dados, nomeadamente na execução de consultas contra o banco de dados. Exemplos de estruturas de dados auxiliares incluem índice de banco de dados 505, histograma 506, e dados históricos 507, entendendo-se que outros tipos de metadados podem existir.
gerenciamento de bases de dados 511 oferece as funções básicas para a gestão do banco de dados 503. O sistema de gestão de bases de dados 511 pode, teoricamente, suportar um número arbitrário de tabelas de dados, que podem ou não podem ter informações relacionadas, embora apenas uma tabela seja mostrada na figura 5. O sistema de gestão de bases de dados 511, de preferência, permite aos usuários executar operações de banco de dados básicas, como definir um banco de dados, alterar a definição da base de dados, criar, editar e remover registros no banco de dados, recuperação de registros do banco de dados, definição de índices de dados, e assim por diante.
O sistema de gestão de bases de 511 é, de preferência, um sistema genérico de gerenciamento de banco de dados com uma variedade de funções comumente usadas para gerenciar um banco de dados. Ou seja, embora a base de dados 503 existe com a finalidade de manter a dados de sessão persistente redundantes, e, portanto, não pode exigir certas capacidades funcionais usadas em alguns outros bancos de dados, é executada, de preferência, usando um software de banco de dados de propósito geral com capacidade funcional plena. Estas funções existentes no software de gerenciamento de banco de dados, porque é um gerenciador de banco de dados de propósito geral destinado a gerir quase qualquer tipo de banco de dados (em oposição ao software de banco de dados projetado especificamente para os dados de sessão persistentes).
Entre as funções suportadas pelo sistema de gerenciamento de banco de dados 511 está uma interface de programação de aplicativo (API) 512 para o recebimento de comandos de processos externos, um mecanismo de consulta 513 para a execução de consultas complexas em relação aos dados no banco de dados, e um monitor 514 para monitorar a atividade de banco de dados e gerar históricos de informação estatística nos metadados de história 507. O sistema de gestão de base de dados 511 pode ainda conter uma das várias funções de banco de dados mais avançado. Embora o sistema de gerenciamento de banco de dados 511 está representado na figura 5 como uma entidade separada do kernel do sistema operacional 501, será entendido que, em algumas arquiteturas de computadores, diferentes funções de gerenciamento de banco de dados são integradas com o sistema operacional.
Além de informações sobre o estado interno e outros dados, O sistema de gestão de bases de dados 511 pode gerar inúmeras estruturas de dados temporárias durante a execução, representadas como estruturas de dados 508-509. Estas estruturas temporárias, em particular, são muitas vezes geradas durante a execução da consulta para realizar consulta de resultados intermédios. O número de tais estruturas temporárias pode variar consideravelmente, e podería ser muito maior.
Apesar de um banco de dados 503 ter uma tabela de banco de 504, um índice de 505, um histograma de 506, e uma tabela de dados históricos 507 serem mostrados na figura 5, o número dessas entidades pode variar, e podería ser muito maior. O sistema de computador pode conter várias tabelas do banco de dados, e pode ter associado a ele vários índices, histogramas, ou outras estruturas auxiliares de dados não ilustradas. Alternativamente, algumas entidades representadas na figura 5 podem não estar presentes em todas as bases de dados. Embora o sistema de gerenciamento de banco de dados 511 está representado na figura 5 como parte do banco de dados de 503, o sistema de gerenciamento de banco de dados, sendo código executável, às vezes é considerado uma entidade separada do 'banco de dados', ou seja, os dados.
Na modalidade preferida, um analisador de sessão separado 515 obtém os dados do banco de dados 503 para caracterizar a carga de trabalho de sessão em servidores de sessão 205. O analisador Sessão 515 está representado na figura 5 como residente no sistema de banco de dados de redundância de sessão 206. No entanto, sendo uma entidade independente de software de banco de dados 303, o analisador sessão 515 alternativamente podería residir em algum outro sistema conectado à LAN 204, ou pode até mesmo permanecer em um sistema mais conectado remotamente. O analisador de sessão é normalmente um mecanismo que é utilizado por administradores de sistema ou similar de pessoal da empresa de servidor da web, e geralmente não está disponível para o público. Ele, de preferência, inclui uma interface de usuário interativa 516 para a introdução de comandos e visualização dos resultados. Enquanto ele pode ser acessado a partir de terminais remotos, conectados por uma rede, em geral o acesso será restrito, e pode ser acessível apenas a partir de terminais locais do sistema 206.
O analisador de sessão 515 inclui uma função de mineração de dados 517 e, opcionalmente, uma função de inferência inteligente baseada em regras 518. A função de mineração de dados reúne 517 dados úteis na caracterização de carga de trabalho de sessão. Em particular, a função de
mineração de dados acessa o sistema de gerenciamento de
banco 511 por meio da API 512 para obter informações do
banco de dados 303, usando as funções padrão de
gerenciamento de banco de dados para executar consultas de
banco de dados, monitorar a atividade do banco de dados, e assim por diante. Embora estas funções estejam disponíveis no sistema de gestão de banco de dados 511, conforme explicado acima, não são normalmente utilizadas para a manutenção e fornecimento de dados de sessão persistente redundantes. Os dados extraídos pela função de mineração 517 podem ser acumulados ao longo do tempo e guardados como dados históricos em arquivo de dados históricos 519. A função de inferência inteligente 518 é um sistema especializado baseado em regras, que utiliza os dados recolhidos pela função de mineração de dados para acionar recomendações de ajuste para alterar parâmetros de ajuste configuráveis dos sistemas de sessão 205 e / ou sistema de redundância 206. A função do analisador de sessão é descrita em mais detalhes aqui.
Várias entidades de software estão representados nas Figuras 4 e / ou 5 como sendo entidades separadas ou contidas por outras entidades. No entanto, será entendido que a representação é apenas para fins ilustrativos, e que os módulos específicos ou entidades de dados poderão ser entidades separadas, ou parte de um módulo comum ou pacote de módulos. Além disso, embora um certo número e tipo de software de entidades sejam mostrados nas representações conceituais de Figuras 4 e 5, será entendido que o número real de tais entidades pode variar, e em particular, que em um ambiente complexo de servidor da web, o número e a complexidade de tais entidades é normalmente muito maior. Além disso, embora os vários componentes de software estejam representados nas Figuras 4 e 5 em dois sistemas de computador, essas entidades podem, alternativamente, estar contidas em uma série de outros dois sistemas.
Embora os componentes de software das Figuras 4 e 5 sejam apresentados conceitualmente como residentes na memória 302, sera entendido que a memória do sistema geral de um computador será muito pequena para conter todos os programas e dados simultaneamente, e que as informações são normalmente armazenadas em dispositivos de armazenamento de dados 325-327, compreendendo um ou mais dispositivos de armazenamento em massa como as unidades de disco magnético rotativas, e que as informações são paginadas na memória pelo sistema operacional, conforme necessário. Em particular, o banco de dados 503 é geralmente demasiado grande para ser carregado na memória e, normalmente, apenas uma pequena parte do número total de registros do banco de dados é carregada na memória de cada vez. O banco de dados completo 503 é normalmente registrado no armazenamento em disco 325-327. Além disso, será entendido que a representação conceituai das Figuras 4 e 5 não é para implicar qualquer modelo organizacional de memória particular, e que o sistema 205 ou o sistema 206 pode empregar um único espaço de endereçamento de memória virtual, ou pode empregar vários espaços de endereço virtual que se sobrepõem.
De acordo com a modalidade preferida, os aplicativos de sessão 405, 406 em execução em servidores de sessão 205 processam os pedidos de operação do cliente. Os aplicativos de sessão 405, 406 utilizam a função de servidor de aplicativo 404 para gerir objetos de dados sessão persistente 411—414, em que os dados de estado da sessão são mantidos. O servidor de aplicativo 404 automaticamente faz o backup de dados do estado, em objetos de dados sessão persistente411-414 para o sistema de banco de dados de redundância de sessão 206 à medida que as alterações são feitas durante a sessão, para que o banco de dados de sessão redundante persistente 503 reflita o estado da sessão atual, e as alterações ao banco de dados reflitam a atividade da sessão.
figura 6 é um fluxograma ilustrando a um nível elevado o processo de atender solicitações de clientes e manutenção de dados do estado sessão, de acordo com a modalidade preferida. Refer .ido-se à figura 6, o diagrama de fluxo é dividido em três partições correndo verticalmente, estas indicam as ações realizadas em cada um dos clientes 201, o servidor da sessão 205, e o sistema de banco de redundância de sessão 206.
Um cliente formula um pedido de serviço remoto de um servidor da web, e transmite o pedido através da Internet para o servidor da web para iniciar uma sessão no servidor da web (etapa 601). Na modalidade preferida, o cliente executa um processo de navegador da web interativo, e o pedido inicial é tipicamente uma solicitação para acessar a uma página web mantida pelo servidor da web, como uma home page. Após a recepção do pedido no gateway do servidor da web, uma sessão é criada e o pedido é atribuído a um servidor de sessão (etapa 602). 0 servidor de sessão processa a apresentação do cliente para gerar uma resposta adequada (etapa 603) . O processamento pode envolver um número arbitrário de etapas de complexidade arbitraria, dependendo do aplicativo de servidor de sessão e da natureza do pedido. O processamento de apresentação, como representado pela etapa 603, opcionalmente, pode incluir acesso a dados no sistema de banco de dados compartilhado 207. O processamento do pedido inclui a atribuição de um objeto de dados de sessão persistentes para gravar o estado da sessão, e atualizar os dados da sessão persistente, conforme necessário.
Quando o processamento da apresentação do cliente for concluído, o servidor da sessão 205 transmite uma resposta para o cliente (etapa 604). O navegador do cliente recebe a resposta e entrega a mesma em um formulário (uma página web) visualizável pelo cliente (etapa 605). Simultaneamente com a transmissão de uma resposta para o cliente na etapa 604, o servidor de sessão também transmite uma mensagem de atualização de estado de sessão para sistema de banco de dados de redundância de sessão 206. A mensagem indica que um objeto da sessão foi alocado para a nova sessão, e contém os dados do estado atual da sessão. Em resposta a mensagem, o sistema de redundância 206 cria uma nova entrada no banco de dados de 503 para a nova sessão, esta nova entrada de banco de dados registrando dados de estado de sessão contidos no objeto de dados da sessão persistente (etapa 607). Embora a entrada no banco de dados 503 registre todas as sessões de dados persistentes de forma a 5 permitir um novo objeto de dados de sessão persistente a ser reconstruído em caso de indisponibilidade do servidor de sessão, não necessariamente, grava todos os dados utilizando a estrutura de dados idêntica ou formato usado nos dados de sessão persistentes do objeto.
L0 o diente pode então continuar a sessão interativa através da definição de um ou mais pedidos de dados e transmiti-las para o servidor da web (etapa 606) . Estas observações adicionais são recebidas pelo servidor de sessão e processadas para gerar uma resposta (etapa 608).
Como antes, o processamento pode incluir opcionalmente acessar os dados no sistema de banco de dados compartilhado 207. 0 processamento do pedido inclui a atualização do estado da sessão gravado no objeto de dados de sessão persistentes, como requerido.
Quando o processamento da apresentação do cliente é concluído na etapa 608, o servidor da sessão 205 transmite uma resposta para o cliente (etapa 609) . O navegador do cliente recebe a resposta e entrega a mesma em uma forma visível pelo cliente (etapa 610) . Simultaneamente com a transmissão de uma resposta para o cliente na etapa 609, o servidor de sessão também transmite uma mensagem de atualização de estado de sessão para sistema de banco de dados de redundância de sessão 206, indicando que os dados 5 da sessão persistente foram atualizados, o estado de sessão atualiza a mensagem atualização de contendo os dados atualizados. Em resposta à mensagem, o sistema de redundância 206 atualiza a entrada no banco de dados 503 para a atual sessão (etapa 611) . Este processo de 10 formulação de propostas, apresentação de processamento e resposta pode continuar um número indefinido de vezes durante a sessão.
Em algum momento, a sessão termina, geralmente como resultado de um período de tempo sem qualquer atividade 15 pelo cliente ou uma desconexão explícita do cliente, geralmente representado como etapa 612. Quando o servidor de aplicativos 404 no servidor de sessão detecta um evento de final de sessão, ele desaloca o objeto de dados da sessão persistente e envia uma mensagem ao sistema de banco 20 de sessão de redundância, o que indica que a sessão foi encerrada (etapa 613) . 0 sistema de redundância responde apagando a entrada correspondente no banco de dados de sessão (etapa 614).
As Figuras 7A e 7B (doravante referidas coletivamente como figura 7) são um fluxograma ilustrando a um nível elevado o processo de extração de dados da base de dados de sessão persistente redundantes 503 e em outros lugares para caracterizar a carga de trabalho da sessão, de acordo com a modalidade preferida. 0 fluxograma da figura 7 é dividido em três partições correndo verticalmente, estas indicam as ações realizadas em cada sessão do analisador 515, o banco 503, e alguma outra entidade da qual os dados úteis podem ser obtidos.
Referindo-se à figura 7, um usuário como um administrador de sistemas que interage com o analisador de sessão 515 através da interface de usuário interativa 516 inicia o acompanhamento e a recolha de determinados dados, que é útil na caracterização de carga de trabalho da sessão, especialmente os dados relativos à operação de banco de dados 503 (etapa 701). Em geral, há várias maneiras em que os dados relevantes podem ser recolhidos, o que pode ser usado sozinho ou em combinação.
Em um primeiro método de recolha de dados relevantes, o analisador de sessão chama o banco de dados 503 através de uma API apropriada 512 para ativar monitor interno 514 (etapa 702) . O monitor, em seguida, inicia recolha de estatísticas históricas, tais dados sejam salvos no banco de dados como dados históricos 507 (etapa 703) . 0 monitor 514 é tipicamente uma parte integrante de um grande sistema de gerenciamento de banco de dados, e é útil para a recolha de estatísticas para otimizar filas, analisando o desempenho do banco de dados, e assim por diante. Em alguns bancos de dados, o monitor pode ser ativado por padrão, ou pode ter sido ativado por outros meios, de modo que nem sempre é necessário ativá-lo explicitamente através do analisador de sessão 515. As estatísticas são geralmente recolhidas em intervalos. Por exemplo, um número de operações de atualização de banco de dados recebidas em um intervalo de tempo, tamanhos de tais atualizações, e assim por diante, pode ser usado para calcular uma taxa média de chegada ao tamanho, o intervalo médio, e assim por diante. 0 monitor ativamente reúne estatísticas durante um certo período de tempo, indicado como a etapa 704. O intervalo de tempo pode ser especificado com antecedência, mas, mais tipicamente, o monitor simplesmente é ativado por um período indeterminado, e depois de passado algum tempo o usuário vai iniciar a próxima ação para recuperar os dados históricos, executando uma ou mais consultas contra eles. 0 analisador de sessão de chama o sistema de gerenciamento de banco de dados 511 usando uma API apropriada 512 para executar uma ou mais consultas especificadas pelo minerador de dados517 (etapa 705), e o sistema de gerenciamento de banco de dados chama 513 o mecanismo de consulta para executar a consulta ou consultas, retornando os resultados da consulta para analisador de sessão (etapa 706).
Em um segundo método de recolha de dados relevantes, o minerador de dados 517 no analisador de sessão 515 constroi suas próprias estatísticas históricas por apresentar periodicamente consultas contra o banco de dados chamando mecanismo de consulta 513 através de uma API apropriada 512 (etapa 707). O mecanismo de consulta, em seguida, executa a consulta e retorna os resultados para o analisador de sessão (etapa 708) . 0 minerador de dados 517 salva os resultados (ou dados extraídos dos resultados) como dados de resultado da consulta históricos salvos 519 (etapa 709) . Os dados históricos são acumulados periodicamente repetindo as etapas 704-706 (representada por razões de clareza na sua forma abreviada como etapa 710, entendendo-se que as etapas 707-709 poderíam ser repetidas muitas vezes). Para fins ilustrativos, os resultados da consulta de histórico salvos 519 são mostrados como um arquivo ou entidade de outros dados que residem fora do banco de dados 503. Embora seja possível salvar os dados de tal forma, é ainda possível salvar os dados como parte do banco de dados de 503, ou seja, definir uma ou mais tabelas do banco de dados adicionais para armazenar dados resultantes 519, e para utilizar as APIs 512 e mecanismo de consulta 513 do sistema de gerenciamento de banco de dados 511 para acessar os dados de resultado guardados 519.
Em um terceiro método de recolha de dados relevantes, um instantâneo da carga de trabalho em um instante no tempo pode ser obtido da mesma maneira como no segundo método descrito acima, mas sem a necessidade de submeter periodicamente consultas e salvar os dados históricos. Ou seja, o minerador de dados 517 constrói uma consulta apropriada ou consultas para obter informações sobre o estado de carga de trabalho da sessão atual, e submete a consulta (ou consultas) contra o banco de dados chamando o mecanismo de consulta 513 através de uma API apropriada 512 (etapa 711) . O mecanismo de consulta 513, em seguida, executa a consulta e retorna os resultados para o analisador de sessão (etapa 712) .
Em um quarto método de recolha de dados relevantes, mineiro de dados 517 pode chamar determinadas funções do sistema operacional 501 para obter dados de configuração relativamente estáticos para o sistema de redundância 206, e pode igualmente chamar funções remotamente similares em sistemas operacionais 401 ou no servidor de aplicativo 404 para obter dados de configuração estáticos para os sistemas servidor de sessão 205 (etapa 713) . 0 sistema operacional aplicável, o servidor de aplicativo ou outra entidade responde com as informações de configuração solicitadas (etapa 714).
Na modalidade preferida, os dados recolhidos podem incluir um ou mais dos seguintes procedimentos:
Número de operações de atualização de banco de dados:
Este número pode ser medido durante um breve intervalo, durante um intervalo de tempo relativamente longo, ou várias vezes em intervalos múltiplos. Este número pode ser agregado para todos os servidores da sessão, ou obtido isoladamente para cada servidor. O número de operações de atualização está diretamente relacionado ao número de vezes que o estado da sessão foi atualizado no servidor da sessão, à medida que a resposta foi enviada para um cliente. É uma medida básica do nível de atividade do servidor de sessão.
Tamanho médio de atualização:
Novamente, este número pode ser medido por um ou mais intervalos, e pode ser agregado para todos os servidores ou obtido isoladamente para cada um. O tamanho da atualização é a quantidade de dados de estado de sessão persistente, que tem mudado a cada atualização. Isto também é útil na caracterização de carga de trabalho total da sessão, e números excessivamente grandes podem indicar que estado de sessão persistente é organizado ou mantido de
- forma ineficiente. Além do tamanho médio de atualização, seria possível apresentar o tamanho de pico e/ou gerar um histograma de tamanhos de atualização.
tamanho médio da fila. 0 tamanho da linha é a quantidade de dados de sessão persistente para uma única sessão no banco de dados, e isso pode variar consideravelmente de uma linha para outra. O tamanho da fila está estreitamente relacionado com o tamanho da sessão de objetos de dados persistentes 411-414 na sessão de servidores, embora os dois não são idênticos, pois os dados nos objetos de dados podem ser estruturados de forma diferente. Entre outras coisas, o tamanho da fila é uma indicação geral da quantidade de memória de sessão persistente consumida por cada sessão. Tamanho da fila pode ser medido em um único instante no tempo, ou pode ser calculado sobre múltiplas leituras. Tamanho de fila pode ser apresentado para os servidores de sessão individual ou agregado para todos os servidores da sessão. Além do tamanho médio da fila, seria possível apresentar o tamanho de pico e/ou gerar um histograma de tamanhos de linha.
Tamanho do banco de dados geral, ou o número de linhas:
volume total da dados de sessão persistentes, o que pode ser medido como um número de linhas, dado o tamanho da linha média. O tamanho total indica o grau em gue a memória nos servidores da sessão é consumido por dados de sessão persistentes. Um número de linhas pode ser comunicado para cada servidor de sessão, ou pode ser agregado. O número de linhas podería ser relatado em um instante no tempo, ou em várias instâncias.
O tamanho médio da coluna para colunas específicas:
tamanho da coluna é a guantidade média de dados em um campo particular, e este pode variar consideravelmente de um campo para outro e de uma linha para outra. Tamanho da coluna é útil para analisar o padrão de uso da memória e identificar colunas específicas (campos) que utilizam uma quantidade desproporcional de memória. Tamanho da coluna pode ser medido em um único instante no tempo, ou pode ser calculado sobre múltiplas leituras. Tamanho da coluna pode ser reportado para servidores de sessão individual ou agregado para todos os servidores da sessão. Além do tamanho da coluna da média (isto é, o tamanho médio do campo para todas as linhas), seria possível apresentar um relatório tamanho de pico e / ou gerar um histograma de tamanhos de campo de uma determinada coluna.
Os tipos de dados a serem utilizados:
Como o tamanho da coluna, isso ajuda a compreender o tipo de dados que estão sendo guardados como dados de sessão persistente e pode ajudar a identificar as maneiras mais eficientes para representar ou manipular dados.
Duração média da sessão:
Estes dados podem ser úteis para uma variedade de razões para entender como os clientes interagem com o servidor da web, e o efeito que isso possa ter sobre as questões de desempenho, apesar de não indicar diretamente um problema de desempenho. Tempo de vida pode ser medido durante um ou vários intervalos históricos, ou pode ser um instantâneo atual. Podería ser medido separadamente para servidores individuais, embora, em geral, espera-se que todos os servidores apresentem comportamentos semelhantes.
O tempo médio de resposta para atualizações de dados:
Este número pode ser medido em um ou mais intervalos. Em geral, ele mede a carga no sistema de redundância 206. Se o tempo de resposta é grande, o sistema de redundância está sobrecarregado.
Número de gravações para o log de banco de dados:
Este número também está relacionado ao desempenho do sistema de redundância, e quando comparado com o número de operações de atualização poderá indicar se escrever para o registo está acumulando muito tempo, uma possível exposição. Média o tempo de espera para o disco no sistema de redundância: Este número também mede o desempenho do sistema de redundância e pode indicar que o sistema de armazenamento está sobrecarregado.
Apesar de exemplos concretos de dados que podem ser coletados são dados acima, será entendido que outros e/ou dados adicionais poderíam alternativamente ser recolhidos Qualquer que seja a técnica ou técnicas usadas para mineração de dados como descrito acima, uma vez que os dados recolhidos são apresentados ao usuário (etapa 715). Apresentando dados para o usuário podería significar exibir dados em uma tela interativa em qualquer um dos vários formatos, incluindo formatos gráficos. Apresentação dos dados também pode significar saída de dados em uma impressora ou outro dispositivo de saída, transmissão de dados através de uma rede para um ou mais usuários adicionais, salvar os dados em mídia eletrônica, etc.
Alternativamente, em uma modalidade opcional, o analisador de sessão chama o inferenciador 518 que faz o ajuste de recomendações sobre o servidor da web (etapa 716) . 0 inferenciador analisa os dados e apresenta recomendações para o usuário (etapa 717). De preferência, existem vários parâmetros ajustáveis tanto no sistema de gerenciamento de banco de dados 511 e, mais significativamente, nos servidores de aplicativos 404 em cada servidor de sessão. Por exemplo, os parâmetros de ajustes no sistema de gerenciamento de banco de dados podem incluir: especificação dos índices, acionadores para executar determinadas funções, tais como o cancelamento de registro; arquivo de parâmetros do sistema, tais como endereçamento de disco e tamanhos de arquivo etc. Parâmetros ajustáveis nos servidores de aplicativo podem incluir pools de conexão banco de dados, tamanho da memória de middleware; alocações de memória do processo, balanceamento de carga, etc. A fixação desses parâmetros ajustáveis pode afetar significativamente o desempenho.
Entre as vantagens da técnica aqui descrita como uma modalidade preferida é que ela pode obter dados significativos sobre a sessão de trabalho, sem executar diretamente o desempenho software de monitoramento em cada um dos servidores da sessão. O software de monitoramento de desempenho impõe uma sobrecarga significativa no sistema monitorado, o que no caso dos servidores de sessão é indesejável. Os servidores sessão já transmitem dados redundantes de estado de sessão para o sistema de redundância, como parte de manter redundância de sessão e uma disponibilidade, sem costura consistente do servidor da web para os clientes. Portanto, nenhuma cargade sobrecarga adicional é imposta aos servidores de sessão próprios. Há alguma sobrecarga adicional no sistema de redundância, mas essa sobrecarga é relativamente menor. O custo de construção e manutenção de banco de dados 503 já é exigida para a redundância, e o único custo adicional é que a sobrecarga de algumas consultas adicionais no banco de dados e análise dos resultados da consulta.
Em geral, as rotinas executadas para implementar as concretizações ilustradas da invenção, se implementadas como parte de um sistema operacional ou um aplicativo específico, o programa, objeto, módulo ou seqüência de instruções, são aqui referidos como programas ou programas de computador. Os programas geralmente incluem instruções que, quando lidas e executadas por um ou mais processadores nos dispositivos ou sistemas de um sistema de computador compatível com a invenção, porque os dispositivos ou sistemas para executar as etapas necessários para executar as medidas ou gerar elementos que contém os vários aspectos da presente invenção. Além disso, enquanto a invenção foi e será aqui a seguir descrita no contexto do pleno funcionamento de sistemas de computador, as várias modalidades da invenção são capazes de ser distribuídas como um produto de programa em uma variedade de formas, e a invenção também se aplica independentemente do particular tipo de sinal de suportes utilizado para A realmente realizar a distribuição. Exemplos de sinal de • suportes incluem, mas não estão limitados a, dispositivos de memória não-voláteis, voláteis, disquetes, unidades de disco rígido, CD-ROMs, DVDs, fitas magnéticas, e assim por diante. Além disso, a invenção é aplicável a qualquer tipo de sinal de suporte, independentemente de os dados serem trocados de uma forma de sinal de suporte para outra através de uma rede de transmissão, incluindo uma rede sem fio. Exemplos de sinal suporte são ilustrados na figura 3 como a memória do sistema 302, e como os dispositivos de armazenamento de dados 325-327.
Embora uma concretização específica da invenção tenha sido divulgada junto com algumas alternativas, será 15 reconhecido por aqueles versados na técnica que as variações adicionais na forma e no detalhe podem ser feitas no escopo das seguintes reivindicações.

Claims (11)

  1. REIVINDICAÇÕES
    1. Método implementado por computador para caracterização de carga de trabalho de sessão HTTP de um servidor da web caracterizado pelo fato de que compreende as seguintes etapas de:
    processar (603) uma pluralidade de sessões HTTP em um primeiro sistema de computador, mantendo dados de estado de sessão persistente no referido primeiro sistema de computador para a referida pluralidade de sessões HTTP;
    transmitir (604) dados de estado de sessão persistente redundantes a partir do referido primeiro sistema de computador para um segundo sistema de computador;
    armazenar (607) os referidos dados de estado de sessão persistente redundantes no referido segundo sistema de computador, o referido segundo sistema de computador suportando a recuperação do estado de sessão da pluralidade de sessões HTTP usando os referidos dados de estado de sessão persistente redundantes armazenados no referido segundo sistema de computador, e caracterizar (707) a referida carga de trabalho de sessão HTTP utilizando os referidos dados de estado de sessão persistente redundantes armazenados no referido segundo sistema de computador.
  2. 2. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 1, caracterizado pelo fato de que a referida etapa de armazenar (607) os dados de estado de sessão persistente redundantes no referido segundo sistema de computador compreende armazenar os referidos dados de estado
    Petição 870190093986, de 19/09/2019, pág. 9/20
    2/6 de sessão persistente redundantes em um banco de dados estruturado no referido segundo sistema de computador, o referido banco de dados estruturado tendo pelo menos uma tabela com uma pluralidade de entradas, cada entrada correspondendo a uma respectiva sessão HTTP da referida pluralidade de sessões HTTP.
  3. 3. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 2, caracterizado pelo fato de que a referida etapa de caracterizar (707) a carga de trabalho de sessão HTTP utilizando os referidos dados de estado de sessão persistente redundantes compreende executar uma ou mais consultas no referido banco de dados estruturado para recuperar dados armazenados no mesmo.
  4. 4. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 2, caracterizado pelo fato de que a referida etapa de caracterizar (707) a carga de trabalho de sessão HTTP, utilizando os referidos dados de estado de sessão persistente redundantes compreende monitorar mudanças no referido banco de dados estruturado, e usar dados históricos relativos às mudanças no referido banco de dados estruturado para caracterizar a referida carga de trabalho de sessão HTTP.
  5. 5. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 2, caracterizado pelo fato de que a referida etapa de caracterizar (707) a carga de trabalho de sessão HTTP utilizando os referidos dados de estado de sessão
    Petição 870190093986, de 19/09/2019, pág. 10/20
    3/6 persistente redundantes compreende usar dados do referido banco de dados estruturado para retirar inferências no que diz respeito aos parâmetros de sintonização do referido primeiro sistema de computador, as referidas inferências sendo automaticamente retiradas através de um processo executado por computador.
  6. 6. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 2, caracterizado pelo fato de que a referida etapa de caracterizar (707) de carga de trabalho para sessão HTTP utilizando os referidos dados de estado de sessão persistente redundantes compreende usar dados do referido banco de dados estruturado para derivar pelo menos um parâmetro de caracterização do conjunto de parâmetros de caracterização que consistem de:
    (a) uma série de operações de atualização de banco de dados medidas durante, pelo menos, um intervalo;
    (b) uma dimensão de operação de atualização média;
    (c) uma dimensão média das referidas entradas;
    (d) uma dimensão total do referido banco de dados estruturado;
    (e) uma dimensão de coluna média para pelo menos uma coluna do referido banco de dados estruturado;
    (f) tipos de dados sendo utilizado pelas entradas do referido banco de dados estruturado;
    (g) uma longevidade de sessão média;
    (h) um tempo de resposta médio para atualizações para o referido banco de dados;
    Petição 870190093986, de 19/09/2019, pág. 11/20
    4/6 (i) uma série de gravações um registro do referido banco de dados; e (j) um tempo de espera médio para disco no referido segundo sistema de computador.
  7. 7. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 1, caracterizado pelo fato de que o primeiro sistema de computador inclui um servidor de aplicações que suporta uma aplicação de servidor de sessão para processamento de sessões HTTP.
  8. 8. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 1, caracterizado pelo fato de que o referido segundo sistema de computador armazena dados de estado de sessão persistente redundantes recebidos de uma pluralidade de primeiros sistemas de computadores, cada primeiro sistema de computador processando uma respectiva pluralidade de sessões HTTP e mantendo os dados de estado de sessão persistente redundantes para a respectiva pluralidade de sessões HTTP.
  9. 9. Método implementado por computador para caracterizar carga de trabalho de sessão HTTP, de acordo com a reivindicação 1, caracterizado pelo fato de que o referido primeiro sistema de computador e o referido segundo sistema de computador são acoplados a uma rede de área local comum, e em que a referida etapa de transmitir os referidos dados de estado de sessão persistente redundantes do referido primeiro sistema de computador para o referido segundo sistema de computador compreende transmitir os referidos
    Petição 870190093986, de 19/09/2019, pág. 12/20
    5/6 dados de estado de sessão persistente redundantes através da referida rede de área local.
  10. 10. Aparelho para caracterização de carga de trabalho de sessão HTTP caracterizado pelo fato de que compreende:
    um sistema de computador de redundância de sessão (206) que tem pelo menos um processador e um armazenamento de dados para armazenar dados de sessão persistente redundantes recebidos de pelo menos um de sistema de computador servidor de sessão externo ao referido sistema de computador de redundância de sessão (206), o referido pelo menos um sistema de computador servidor de sessão processando uma pluralidade de sessões HTTP e mantendo dados de estado de sessão persistente para a referida pluralidade de sessões HTTP, em que o referido sistema de computador de redundância de sessão (206) é operável para suportar a recuperação do estado de sessão da pluralidade de sessões HTTP utilizando os referidos dados de estado de sessão persistente redundantes armazenados no referido armazenamento de dados; e uma função analisadora de sessão HTTP (515), a referida função analisadora sendo operável para caracterizar carga de trabalho da referida pluralidade de sessões de HTTP no referido pelo menos um sistema de computador servidor usando os referidos dados de estado de sessão persistente redundantes armazenados no referido armazenamento de dados do referido sistema de computador de redundância de sessão.
  11. 11. Aparelho, de acordo com a reivindicação 10, caracterizado pelo fato de que a referida função analisadora de sessão HTTP (515) reside em um sistema de computador de
    Petição 870190093986, de 19/09/2019, pág. 13/20
    6/6 redundância de sessão (206) e executa em pelo menos um processador do referido sistema de computador de redundância de sessão (206).
BRPI0620640-9A 2005-12-22 2006-12-13 método e aparelho para coleta de dados para caracterização de cargas de trabalho de sessão de http BRPI0620640B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/316,285 US20070150600A1 (en) 2005-12-22 2005-12-22 Method and apparatus for collecting data for characterizing HTTP session workloads
US11/316,285 2005-12-22
PCT/EP2006/069678 WO2007071607A1 (en) 2005-12-22 2006-12-13 Method and apparatus for collecting data for characterizing http session workloads

Publications (2)

Publication Number Publication Date
BRPI0620640A2 BRPI0620640A2 (pt) 2011-04-05
BRPI0620640B1 true BRPI0620640B1 (pt) 2019-11-12

Family

ID=37831802

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI0620640-9A BRPI0620640B1 (pt) 2005-12-22 2006-12-13 método e aparelho para coleta de dados para caracterização de cargas de trabalho de sessão de http

Country Status (8)

Country Link
US (1) US20070150600A1 (pt)
EP (1) EP1974529B1 (pt)
JP (1) JP5015951B2 (pt)
KR (1) KR101221205B1 (pt)
CN (1) CN101346972B (pt)
BR (1) BRPI0620640B1 (pt)
CA (1) CA2634360A1 (pt)
WO (1) WO2007071607A1 (pt)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070180110A1 (en) * 2006-01-27 2007-08-02 Ge Medical Systems Information Technologies, Inc. System and method for retaining information in a data management system
US8024439B2 (en) * 2006-03-17 2011-09-20 Microsoft Corporation Server session management application program interface and schema
US8326996B2 (en) * 2006-06-02 2012-12-04 Oracle International Corporation Method and apparatus for establishing multiple sessions between a database and a middle-tier client
JP4405503B2 (ja) 2006-12-28 2010-01-27 キヤノンItソリューションズ株式会社 情報処理装置および情報処理装置の制御方法およびプログラムおよび記録媒体
JP4653147B2 (ja) * 2007-08-06 2011-03-16 日本電信電話株式会社 情報機能提供システム、情報機能提供装置、情報機能提供方法および情報機能提供プログラム
US8607197B2 (en) * 2007-08-28 2013-12-10 International Business Machines Corporation Displaying HTTP session entry and exit points
US8055649B2 (en) * 2008-03-06 2011-11-08 Microsoft Corporation Scaled management system
US20090240802A1 (en) * 2008-03-18 2009-09-24 Hewlett-Packard Development Company L.P. Method and apparatus for self tuning network stack
CN101621532B (zh) * 2008-06-30 2012-09-05 中兴通讯股份有限公司 一种使用线程池实现超文本传输协议应用的方法
US20130086414A1 (en) 2010-07-13 2013-04-04 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods recovering from the failure of a server load balancer
JP5538560B2 (ja) * 2010-11-01 2014-07-02 かもめエンジニアリング株式会社 アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
US8914521B2 (en) 2011-09-27 2014-12-16 Oracle International Corporation System and method for providing active-passive routing in a traffic director environment
WO2013104956A1 (en) * 2012-01-12 2013-07-18 Telefonaktiebolaget L M Ericsson (Publ) Systems and methods for scalable and resilient load balancing
US9569356B1 (en) * 2012-06-15 2017-02-14 Emc Corporation Methods for updating reference count and shared objects in a concurrent system
EP2750355A1 (en) * 2012-12-28 2014-07-02 Koninklijke KPN N.V. Reducing a number of server-client sessions
US9948726B2 (en) * 2013-07-01 2018-04-17 Avaya Inc. Reconstruction of states on controller failover
JP6428012B2 (ja) * 2014-07-16 2018-11-28 富士通株式会社 分散処理プログラム、分散処理管理装置及び分散処理方法
US10284621B2 (en) 2015-11-09 2019-05-07 International Business Machines Corporation Session management
KR101676653B1 (ko) * 2016-04-20 2016-11-17 주식회사 티맥스 소프트 Http 세션 정보 동적 유지 방법, 이를 사용한 웹 애플리케이션 서버 및 웹 서버
US10564854B2 (en) * 2017-04-11 2020-02-18 Microsoft Technology Licensing, Llc Tracking internal latencies for load balancing of file server
US20200264970A1 (en) * 2019-02-19 2020-08-20 Nvidia Corporation Memory management system
US11469996B2 (en) 2020-09-25 2022-10-11 Adobe Inc. Systems for session-based routing
CN114945048A (zh) * 2022-05-20 2022-08-26 国网江苏省电力有限公司 网络冗余数据传输方法、装置、存储介质和电子设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0688702B2 (ja) * 1990-04-19 1994-11-09 東海興業株式会社 紙送り装置
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
JPH11328113A (ja) * 1998-05-14 1999-11-30 Nec Corp 情報検索装置
US6279001B1 (en) * 1998-05-29 2001-08-21 Webspective Software, Inc. Web service
JP4149599B2 (ja) * 1999-02-03 2008-09-10 株式会社東芝 セッション管理装置およびセッション管理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001167071A (ja) * 1999-12-10 2001-06-22 Toshiba Corp サーバセッション管理装置
US20020073211A1 (en) * 2000-12-12 2002-06-13 Raymond Lin System and method for securely communicating between application servers and webservers
US7383329B2 (en) * 2001-02-13 2008-06-03 Aventail, Llc Distributed cache for state transfer operations
US7792948B2 (en) * 2001-03-30 2010-09-07 Bmc Software, Inc. Method and system for collecting, aggregating and viewing performance data on a site-wide basis
US20020198985A1 (en) * 2001-05-09 2002-12-26 Noam Fraenkel Post-deployment monitoring and analysis of server performance
JP4306152B2 (ja) * 2001-06-26 2009-07-29 株式会社日立製作所 クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
AU2002329602B2 (en) * 2001-07-16 2008-05-22 Oracle International Corporation Method and apparatus for session replication and failover
CN1283115C (zh) * 2003-06-03 2006-11-01 华为技术有限公司 提高多媒体消息系统处理多媒体消息性能的方法及系统
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
JP4185012B2 (ja) * 2004-03-30 2008-11-19 東芝ソリューション株式会社 サーバシステム、第1のアプリケーションサーバ、第2のアプリケーションサーバ、セッションデータ取得方法

Also Published As

Publication number Publication date
EP1974529B1 (en) 2012-09-19
BRPI0620640A2 (pt) 2011-04-05
KR101221205B1 (ko) 2013-01-10
CN101346972B (zh) 2013-02-06
WO2007071607A1 (en) 2007-06-28
US20070150600A1 (en) 2007-06-28
EP1974529A1 (en) 2008-10-01
JP5015951B2 (ja) 2012-09-05
CA2634360A1 (en) 2007-06-28
KR20080085840A (ko) 2008-09-24
CN101346972A (zh) 2009-01-14
JP2009521741A (ja) 2009-06-04

Similar Documents

Publication Publication Date Title
BRPI0620640B1 (pt) método e aparelho para coleta de dados para caracterização de cargas de trabalho de sessão de http
US11550630B2 (en) Monitoring and automatic scaling of data volumes
US11461329B2 (en) Tracking query execution status for selectively routing queries
US9971823B2 (en) Dynamic replica failure detection and healing
US10977277B2 (en) Systems and methods for database zone sharding and API integration
US10657061B1 (en) Resource distribution using attributes of versioned hash rings
US20180300385A1 (en) Systems and methods for database zone sharding and api integration
US20210168034A1 (en) Configuration and management of scalable global private networks
US10158541B2 (en) Group server performance correction via actions to server subset
US7376953B2 (en) Apparatus and method for routing a transaction to a server
US7062516B2 (en) Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure
US20150134797A1 (en) Managed service for acquisition, storage and consumption of large-scale data streams
US9634955B2 (en) Optimizing data transfers in cloud computing platforms
JP2015036963A (ja) 情報処理システム、情報処理システムの制御方法および制御装置の制御プログラム
JP2004164610A (ja) 管理装置
US9231834B2 (en) Bundling configuration items into a composite configuration item
US11954077B1 (en) Crawler-less tiering for cloud based file systems
US11650975B2 (en) Online file system consistency check for container data on a clustered filesystem
EP1489498A1 (en) Managing a computer system with blades
US11799963B1 (en) Method and system for identifying user behavior based on metadata
Periasamy Performance Optimization in Cloud Computing Environment
US20230108819A1 (en) Automated processes and systems for managing and troubleshooting services in a distributed computing system
US20230105676A1 (en) Effectuate state change in a hierarchy of resources in an sddc
Nath internet services
WO2013031999A1 (ja) 抽出装置、システム、プログラム、及び、方法

Legal Events

Date Code Title Description
B06G Technical and formal requirements: other requirements [chapter 6.7 patent gazette]

Free format text: APRESENTE O DEPOSITANTE O RELATORIO DESCRITIVO E OS DESENHOS DO PEDIDO, CONFORME DETERMINA O ATO NORMATIVO NO 128 DE 05/03/1997, ITENS 9.2 E 9.2.1.

B06G Technical and formal requirements: other requirements [chapter 6.7 patent gazette]

Free format text: EM ADITAMENTO A EXIGENCIA PUBLICADA NA RPI NO 2033 DE 22/12/2009, APRESENTE O DEPOSITANTE OS DESENHOS DO PEDIDO ADAPTADO AO ATO NORMATIVO NO 128 DE 05/03/1997, ITENS 9.2 E 9.2.1.

B11A Dismissal acc. art.33 of ipl - examination not requested within 36 months of filing
B04C Request for examination: application reinstated [chapter 4.3 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04L 29/08

Ipc: H04L 29/08 (1990.01), G06F 11/34 (1980.01)

B06T Formal requirements before examination [chapter 6.20 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 12/11/2019, OBSERVADAS AS CONDICOES LEGAIS. (CO) 10 (DEZ) ANOS CONTADOS A PARTIR DE 12/11/2019, OBSERVADAS AS CONDICOES LEGAIS