63 resultados para Alta disponibilidade
em Lume - Repositório Digital da Universidade Federal do Rio Grande do Sul
Resumo:
Alta disponibilidade é uma das propriedades mais desejáveis em sistemas computacionais, principalmente em aplicações comerciais que, tipicamente, envolvem acesso a banco de dados e usam transações. Essas aplicações compreendem sistemas bancários e de comércio eletrônico, onde a indisponibilidade de um serviço pode representar substanciais perdas financeiras. Alta disponibilidade pode ser alcançada através de replicação. Se uma das réplicas não está operacional, outra possibilita que determinado serviço seja oferecido. No entanto, réplicas requerem protocolos que assegurem consistência de estado. Comunicação de grupo é uma abstração que tem sido aplicada com eficiência a sistemas distribuídos para implementar protocolos de replicação. Sua aplicação a sistemas práticos com transações e com banco de dados não é comum. Tipicamente, sistemas transacionais usam soluções ad hoc e sincronizam réplicas com protocolos centralizados, que são bloqueantes e, por isso, não asseguram alta disponibilidade. A tecnologia baseada em componentes Enterprise JavaBeans (EJB) é um exemplo de sistema prático que integra distribuição, transações e bancos de dados. Em uma aplicação EJB, o desenvolvedor codifica o serviço funcional que é dependente da aplicação, e os serviços não–funcionais são inseridos automaticamente. A especificação EJB descreve serviços não–funcionais de segurança, de transações e de persistência para bancos de dados, mas não descreve serviços que garantam alta disponibilidade. Neste trabalho, alta disponibilidade é oferecida como uma nova propriedade através da adição de serviços não–funcionais na tecnologia EJB usando abstrações de comunicação de grupo. Os serviços para alta disponibilidade são oferecidos através da arquitetura HA (highly-available architecture) que possui múltiplas camadas. Esses serviços incluem replicação, chaveamento de servidor, gerenciamento de membros do grupo e detecção de membros falhos do grupo. A arquitetura HA baseia-se nos serviços já descritos pela especificação EJB e preserva os serviços EJB existentes. O protocolo de replicação corresponde a uma subcamada, invisível para o usuário final. O serviço EJB é executado por membros em um grupo de réplicas, permitindo a existência de múltiplos bancos de dados idênticos. Conflitos de acesso aos múltiplos bancos de dados são tratados estabelecendo–se uma ordem total para aplicação das atualizações das transações. Esse grupo é modelado como um único componente e gerenciado por um sistema de comunicação de grupo. A combinação de conceitos de bancos de dados com comunicação de grupo demonstra uma interessante solução para aplicações com requisitos de alta disponibilidade, como as aplicações EJB. Os serviços adicionais da arquitetura HA foram implementados em protótipo. A validação através de um protótipo possibilita que experimentos sejam realizados dentro de um ambiente controlado, usando diferentes cargas de trabalho sintéticas. O protótipo combina dois sistemas de código aberto. Essa característica permitiu acesso à implementação e não somente à interface dos componentes dos sistemas em questão. Um dos sistemas implementa a especificação EJB e outro implementa o sistema de comunicação de grupos. Os resultados dos testes realizados com o protótipo mostraram a eficiência da solução proposta. A degradação de desempenho pelo uso de réplicas e da comunicação de grupo é mantida em valores adequados.
Resumo:
A água é o principal fator do ambiente limitante para a produção vegetal. Esta pode, também, afetar o heliotropismo, movimentos rápidos e reversíveis das folhas em função da radiação solar. Desta forma, faz-se necessário quantificar os efeitos destes dois fatores no desenvolvimento e produtividade das plantas. Experimentos foram conduzidos em casa de vegetação nas dependências da Faculdade de Agronomia, UFRGS, a fim de quantificar a influência do heliotropismo na orientação foliar, na intercepção da radiação solar pelas folhas nos horários de maior incidência desta, na evolução do teor de clorofila da folha, no desenvolvimento vegetativo/reprodutivo, na dinâmica de florescimento e na produção de sementes de M. lathyroides. Para a orientação foliar, observa-se que o folíolo central apresentou uma tendência de orientação em direção ao sol em situações de alta umidade do solo (100% da CC), independente da restrição à movimentação foliar. Os folíolos das plantas submetidas à restrição hídrica (60% da CC) apresentaram maior grau de escape da radiação solar. Foram observados efeitos independentes para a disponibilidade hídrica e para a movimentação foliar tanto para os componentes do desenvolvimento vegetativo/reprodutivo quanto para os componentes do rendimento de sementes ao longo do período experimental. Plantas submetidas a uma alta disponibilidade hídrica ou com folhas livremente orientadas apresentaram maior altura, área foliar, número de ramificações e peso seco total. O maior desenvolvimento favoreceu a emissão de um maior número de inflorescências por planta nestes tratamentos. Este comportamento proporcionou um maior número de flores, legumes verdes e legumes maduros por planta, gerando desta forma uma maior taxa de produção de sementes, sendo esta resposta mais evidenciada ao se avaliar o efeito da disponibilidade hídrica. Apesar do peso individual da semente ter apresentado valores superiores para o tratamento com restrição hídrica, a produção total de sementes foi superior no tratamento com alta disponibilidade hídrica, não se observando efeito significativo para a movimentação foliar.
Resumo:
Independentemente do modelo de programação adotado, no projeto e implementação de aplicações de alta disponibilidade, faz-se necessário usar procedimentos de tolerância a falhas. Dentre as atividades que trazem consigo interesse de pesquisa na área de Tolerância a Falhas, estão os mecanismos de recuperação em um sistema computacional. Do ponto de vista prático, estes mecanismos buscam manter próximo do mínimo o tempo total de execução de aplicações computacionais de longa duração, ao mesmo tempo em que as preparam para não sofrerem perdas significativas de desempenho, em caso de falhas. Paralelamente à evolução dos sistemas computacionais, foi possível observar também a evolução das linguagens de programação, principalmente as que utilizam o paradigma orientado a objetos. O advento da área de tolerância a falhas na orientação a objetos resultou em novos problemas na atividade de recuperação quanto aos mecanismos de salvamento de estados e retomada da execução, principalmente no que se refere às dificuldades de gerenciamento e controle sobre a alocação de objetos. Entretanto, observa-se que a complexidade de implementação dos mecanismos de recuperação, por parte dos programadores, exige deles conhecimentos mais especializados para o salvamento dos estados da aplicação e para a retomada da execução. Portanto, a simplificação do trabalho do programador, através do uso de uma biblioteca de checkpointing que implemente os mecanismos de salvamento de estados e recuperação é o ponto focal deste trabalho. Diante do contexto exposto, nesta dissertação, são definidas e implementadas as classes de uma biblioteca que provê mecanismos de checkpointing e recuperação. Esta biblioteca, denominada de Libcjp, visa aprimorar o processo de recuperação de aplicações orientadas a objetos escritas na linguagem de programação Java. Esta linguagem foi escolhida para implementação devido à presença dos recursos de persistência e serialização. Para a concepção do trabalho, são considerados ambos os cenários no paradigma orientado a objetos: objetos centralizados e distribuídos. São utilizados os recursos da API de serialização Java e a tecnologia Java RMI para objetos distribuídos. Conclui-se o trabalho com a ilustração de casos de uso através de diversos exemplos desenvolvidos a partir de seus algoritmos originais inicialmente, e incrementados posteriormente com os mecanismos de checkpointing e recuperação. Os componentes desenvolvidos foram testados quanto ao cumprimento dos seus requisitos funcionais. Adicionalmente, foi realizada uma análise preliminar sobre a influência das ações de checkpointing nas características de desempenho das aplicações.
Resumo:
A área de gerência de rede cresce à medida que redes mais seguras e menos vulneráveis são necessárias, e as aplicações que concorrem pelo seu uso, necessitam de alta disponibilidade e qualidade de serviço. Quando estamos focando a gerência da infra-estrutura física das redes de computadores, por exemplo, a taxa de uso de um segmento de rede, podemos dizer que esse tipo de gerenciamento encontra-se em um patamar bastante sedimentado e testado. Por outro lado, há ainda lacunas para pesquisar na área de gerenciamento de protocolos de alto nível. Entender o comportamento da rede como um todo, conhecer quais hosts mais se comunicam, quais aplicações geram mais tráfego e, baseado nessas estatísticas, gerar uma política para a distribuição de recursos levando em consideração as aplicações críticas é um dever nas redes atuais. O grupo de trabalho IETF RMON padronizou, em 1997, a MIB RMON2. Ela foi criada para permitir a monitoração de protocolos das camadas superiores (rede, transporte e aplicação), a qual é uma boa alternativa para realizar as tarefas de gerenciamento recém mencionadas. Outro problema para os gerentes de rede é a proliferação dos protocolos de alto nível e aplicações corporativas distribuídas. Devido a crescente quantidade de protocolos e aplicações sendo executados sobre as redes de computadores, os softwares de gerenciamento necessitam ser adaptados para serem capazes de gerenciá-los. Isso, atualmente, não é fácil porque é necessário usar linguagens de programação de baixo nível ou atualizar o firmware dos equipamentos de monitoração, como ocorre com os probes RMON2. Considerando este contexto, esse trabalho propõe o desenvolvimento de um agente RMON2 que contemple alguns grupos dessa MIB. O agente baseia-se na monitoração protocolos de alto nível e aplicações que são executados sobre o IP (Internet Protocol) e Ethernet (na camada de enlace). Além da implementação do agente, o trabalho apresenta um estudo de como obter estatísticas do agente RMON2 e usá-las efetivamente para gerenciar protocolos de alto nível e aplicações.
Resumo:
As redes de computadores experimentam um grande crescimento não apenas em tamanho, mas também no número de serviços oferecidos e no número de protocolos de alto nível e aplicações que são executados sobre elas. Boa parte desses software (ex.: ICQ e Napster), em geral, não está diretamente ligada a aplicações críticas, mas o seu uso não controlado pode degradar o desempenho da rede. Para que se possa medir o impacto dos mesmos sobre a infra-estrutura, mecanismos de gerência ligados à contabilização e caracterização de tráfego são desejáveis. Por outro lado, alguns protocolos, serviços e aplicações (ex. servidores DNS e Web) suportam aplicações e precisam ser monitorados e gerenciados com maior atenção. Para essa classe de software de rede, a simples contabilização e caracterização de tráfego não é suficiente; tarefas de gerência como teste de serviços, detecção e manipulação de falhas, medição de desempenho e detecção de intrusão são importantes para garantir alta disponibilidade e eficiência da rede e aplicações. As ferramentas existentes para essa finalidade são, entre aspectos, (a) não integradas (necessidade de uma ferramenta para monitorar cada aplicação), (b) centralizadas (não oferecem suporte à distribuição de tarefas de gerenciamento) e (c) pouco flexíveis (dificuldade em gerenciar novos protocolos, serviços e aplicações). Nesse contexto, a tese propõe uma arquitetura, centrada na monitoração passiva em temporal do tráfego de rede, para gerenciamento distribuído de protocolos de alto nível, serviços e aplicações em rede. Baseada da MIB (Management Information Base) Script do IETF (Internet Engineering Task Force), a arquitetura Trace oferece mecanismos para a delegação de tarefas de gerenciamento a gerentes intermediários, que interagem com agentes de monitoração e agentes de ação para executá-las. A tese propõe também PTSL (Protocol Trace Specification Language), uma linguagem gráfica/textual criada para permitir que gerentes de rede especificam as interações de protocolos (traços) que lhes interessam monitorar. As especificações são usadas pelso gerentes intermediários para programar os agentes de monitoração. Uma vez programadas, esses agentes passam a monitorar a ocorrência dos traços.As informações obtidas são analisadas pelos agentes intermediários, que podem requisitar de ação a execução de procedimentos (ex: scripts Perl), possibilitando a automação de diversas tarefas de gerenciamento. A arquitetura proposta é validada por um protótipo: a plataforma de gerenciamento Trace.
Resumo:
Com a abertura do mercado brasileiro e aumento da pressão competitiva, as organizações têm buscado incessantemente a melhoria de desempenho de seus processos produtivos. Dentro deste contexto, surge a Manufatura de Classe Mundial, que se caracteriza pela alta disponibilidade e flexibilidade dos meios de produção. Para o alcance desse estágio na manufatura, a manutenção industrial é um elemento chave, que, adaptada ao ambiente de competição globalizado, caracteriza o que se chama de Manutenção de Classe Mundial (MCM), representando um importante diferencial competitivo. Nas Indústrias de Processamento Contínuo do segmento petroquímico, em particular, a manutenção industrial tem papel ainda mais decisivo, ao assegurar o funcionamento estável e seguro dos equipamentos e instalações a custos otimizados, sem comprometimento da saúde e segurança dos trabalhadores e com respeito ao meio ambiente. Apresenta-se nesta dissertação uma proposta de fundamentos habilitadores para a implantação de um sistema de gerenciamento de manutenção, totalmente integrado com o processo produtivo, desenvolvido e aplicado numa refmaria de petróleo brasileira. Os fundamentos selecionados com base nos princípios da MCM,juntamente com outros temas relevantes como planejamento e gestão estratégica, estrutura e aspectos organizacionais, mapeamento de processo, terceirização, suprimento de materiais e sobressalentes e política de Segurança, Meio Ambiente e Saúde Ocupacional, apresentam-se como decisivos para o sucesso do sistema de manutenção implementado.
Resumo:
Alta disponibilidade (muitas vezes referenciada como HA, de High Availability) é uma característica de sistemas computacionais que são projetados para evitar ao máximo as interrupções, planejadas ou não, na prestação de serviços. Em alta disponibilidade, o ideal é haver poucas falhas e, mesmo quando estas acontecerem, que o seu tempo médio de reparo (ou MTTR, de Mean Time To Repair) seja tão pequeno quanto possível. Sistemas operacionais têm um papel importante em alta disponibilidade, sendo preferível o uso daqueles que possuam sistemas de arquivos seguros e relativamente independentes de ações por agentes humanos para a recuperação. Uma das abordagens para auxiliar a obter-se uma alta disponibilidade em sistemas de arquivos é a do tipo journaling, ou meta-data logging. Existe uma série de sistemas de arquivos para o sistema operacional Linux baseando-se nela, tais como ext3, JFS, ReiserFS e XFS. Este trabalho tem por objetivo propor uma metodologia de validação experimental para avaliar a eficiência do mecanismo para recuperação de sistemas de arquivos baseados em journaling, na ocorrência de falhas. Para isso, a técnica de validação empregada é a da injeção de falhas e o sistema sob teste é uma implementação do XFS. Foram utilizados os recursos de depuração do sistema operacional Linux (que permitem a utilização de métodos para interceptação e manipulação de chamadas de sistema) para a implementação de um injetor de falhas específico para sistemas de arquivos baseados em journaling, o qual foi chamado de FIJI (Fault Injector for Journaling fIlesystems). Manipular os parâmetros de chamadas de sistema (ou system calls) através do FIJI equivale a alterar as requisições feitas ao sistema operacional. A eficiência do mecanismo de journaling é medida injetando-se falhas e medindose o MTTR e a cobertura de falhas. Basicamente, o que procura-se fazer através do injetor de falhas FIJI é ignorar os logs do journaling e manipular uma quantidade de informações diferente daquela que foi solicitada originalmente.