41 |
Avaliação de abordagens para captura de informações da aplicaçãoFontoura, Adriano Brum January 2002 (has links)
Numerosas pesquisas estão introduzindo o conceito de grupo em padrões abertos para programação distribuída. Nestas, o suporte a grupo de objetos por meio de middlewares, apresentam diferentes abordagens de interligação com a aplicação. Segundo princípios defendidos na tese de Felber, essas abordagens vão ao encontro do objetivo de facilitar o desenvolvimento e proporcionar confiabilidade e desempenho. Neste contexto, localizou-se três enfoques básicos para a interligação com a aplicação, denominados integração, serviço, e interceptação, que utilizam a captura de mensagens para obtenção de informações ou como meio para adicionar novas funcionalidades às aplicações. A utilização dessas informações pode auxiliar no ajuste de parâmetros funcionais de serviços relacionados, na escolha de mecanismos, influindo em aspectos como, desempenho e segurança. Ao longo do estudo dessas abordagens, sentiu-se a necessidade de estudar detalhes e testar aspectos de implementação, suas premissas de uso e as conseqüências advindas da incorporação de seus mecanismos junto à aplicação. Este trabalho visa apresentar uma análise do comportamento das referidas abordagens por meio da implementação de protótipos, possibilitando assim, investigar problemas relacionados ao emprego da técnica e suas conseqüências quando integradas à aplicação. Os objetivos específicos reúnem a busca de informações qualitativas, tais como: modularidade, transparência, facilidade de uso e portabilidade; e informações quantitativas, fundamentalmente traduzidas pelo grau de interferência no desempenho da aplicação. O desenvolvimento dos protótipos teve como início a busca por um ambiente que ofereceria suporte as condições necessárias para a implementação das diferentes abordagens. Percebeu-se que definir os mecanismos diretamente sobre uma linguagem de programação, como C ou C++, não era viável. As versões padrões dessas linguagens não oferecem mecanismos capazes de suportar algumas características de implementação como, por exemplo, a captura de mensagens na abordagem de interceptação. A possibilidade é introduzida apenas por extensões dessas linguagens. Assim, a investigação de um ambiente de implementação voltou-se para mecanismos disponíveis em sistemas operacionais. A opção pela utilização do Linux visou atender alguns requisitos importantes para o desenvolvimento dos protótipos tais como: facilidade de instalação, boa documentação e código aberto. Este último é um ponto essencial, pois a construção de parte dos protótipos explora a programação em nível do sistema operacional. A linguagem de programação C foi escolhida como base para a implementação, já que as diferentes abordagens exploram tanto o nível do kernel como o nível do usuário, e é compatível com o Linux. A etapa de desenvolvimento dos protótipos possibilitou a coleta de informações sobre aspectos qualitativos. As demais informações que fazem parte do perfil levantado por este trabalho sobre as abordagens, foram obtidas através da utilização dos protótipos em experimentos com duas aplicações distribuídas denominadas de “Ping-Pong” e “Escolha de Líderes”, que têm como característica geral à troca de mensagens, utilizando comunicação através de sockets. A realização de medidas em múltiplas execuções, avaliadas após o tratamento estatístico necessário, permitiu definir um perfil das diferentes abordagens.
|
42 |
[en] AN INFRASTRUCTURE FOR DISTRIBUTED EXECUTION OF SOFTWARE COMPONENTS / [pt] UMA INFRA-ESTRUTURA PARA A EXECUÇÃO DISTRIBUÍDA DE COMPONENTES DE SOFTWARECARLOS EDUARDO LARA AUGUSTO 04 March 2009 (has links)
[pt] Infra-estruturas de suporte a sistemas baseados em componentes de software
tipicamente incluem facilidades para instalação, execução e configuração
dinâmica das dependências dos componentes de um sistema. Tais facilidades
são especialmente importantes quando os componentes do sistema executam
em um ambiente distribuído.
Neste trabalho, investigamos alguns dos problemas que precisam ser tratados
por infra-estruturas de execução de sistemas distribuídos baseados em
componentes de software. Para realizar tal investigação, desenvolvemos um
conjunto de servi¸cos para o middleware OpenBus, com o intuito de prover
facilidades para a execução de aplicações distribuídas. Para ilustrar e avaliar
o uso dos serviços desenvolvidos, apresentamos alguns exemplos onde a
infra-estrutura é utilizada para executar cenários de teste de uma aplicação
distribuída. / [en] Support infrastructures for component-based software
systems usually include facilities for installation,
execution and dynamic configuration of the
system component`s dependencies. Such facilities are
specially important when those system components execute in
a distributed environment. In this work, we investigate
some of the problems that must be handled by
runtime infrastructures for distributed systems based on
software components. To perform such investigation, we
developed a set of services for the OpenBus middleware,
aiming to provide facilities for execution of distributed
applications. To illustrate and evaluate the use of the
developed services, we present some examples where the
infrastructure is used for executing test scenarios of a
distributed application.
|
43 |
Protocolos tolerantes a faltas bizantinas para sistemas distribuídos dinâmicosAlchieri, Eduardo Adilio Pelinson January 2011 (has links)
Tese (doutorado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Engenharia de Automação e Sistemas, Florianópolis, 2011 / Made available in DSpace on 2012-10-26T00:52:37Z (GMT). No. of bitstreams: 1
298856.pdf: 1013265 bytes, checksum: 81a7000ec35a5569e62ac8ba787cb8cc (MD5) / As novas tecnologias de comunicação e a maior disponibilidade de recursos em redes de comunicação vêm provocando profundas mudanças na forma de se projetar aplicações distribuídas. Estas mudanças possibilitaram o surgimento dos sistemas distribuídos dinâmicos, que se caracterizam por serem sistemas onde os componentes podem entrar e sair do mesmo em qualquer momento. Sendo assim, os protocolos desenvolvidos para estes sistemas devem detectar e tratar mudanças que ocorrem na composição da aplicação distribuída, permitindo sua reconfiguração em tempo de execução. Desta forma, os participantes destas aplicações são caracterizados principalmente pela heterogeneidade e não confiabilidade. No desenvolvimento de aplicações distribuídas seguras e confiáveis, vários problemas são identificados como peças fundamentais por formarem a base para a maioria das soluções empregadas nestas aplicações. Neste sentido, surge a necessidade do desenvolvimento de protocolos que resolvem estes problemas em sistemas distribuídos dinâmicos. Como os participantes destas computações não são confiáveis, torna-se essencial que estes protocolos suportem os atributos de segurança de funcionamento. Esta tese apresenta estudos e protocolos para a solução dos principais destes problemas fundamentais em sistemas distribuídos dinâmicos, os quais são: o problema do consenso, sistemas de quóruns e replicação Máquina de Estados. O problema do consenso é estudado em redes desconhecidas, onde são definidas as condições necessárias e suficientes para resolver o consenso. Estas condições especificam o grau de conhecimento sobre a composição do sistema dinâmico que deve ser obtido pelos participantes e o nível de sincronia que deve ser observado no mesmo. A segunda contribuição desta tese é formada principalmente por um conjunto de protocolos para reconfiguração de sistemas de quóruns, os quais podem ser divididos em: (1) algoritmos para inicialização da reconfiguração; (2) algoritmos para geração de novas visões do sistema; e (3) algoritmos para instalação das visões atualizadas. Várias combinações destes algoritmos são possíveis, resultando em um sistema com diferentes características e garantias. Estes protocolos são completamente desacoplados dos protocolos de leitura e escrita no registrador, facilitanto a integração dos mesmos com os mais variados sistemas de quóruns encontrados na literatura, além de aumentar o desempenho do sistema. A última grande contribuição desta tese refere-se à adição de suporte à reconfiguração em replicação Máquina de Estados. Nestas reconfigurações, tanto o conjunto de participantes do sistema quanto parâmetros da replicação podem ser alterados, resultando em um sistema bastante robusto e flexível. Todas as soluções propostas nesta tese suportam a presença de participantes maliciosos no sistema e fornecem protocolos que incorporam os atributos de confiabilidade, disponibilidade e integridade para suas aplicações
|
44 |
Um mecanismo para a comunicação remota de objetos no sistema operacional AuroraPerez, Anderson Luiz Fernandes January 2003 (has links)
Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Ciência da Computação. / Made available in DSpace on 2012-10-21T03:46:02Z (GMT). No. of bitstreams: 1
196291.pdf: 876084 bytes, checksum: 652be40ad9d7a9aa4dc36612cf7f8457 (MD5) / O número de computadores interligados em rede está aumentando consideravelmente. Os ambientes distribuídos formados por essas redes possuem um grande potencial de processamento. Todavia, para que se possa aproveitar tal capacidade de processamento, faz-se necessário a utilização de um sistema que gerencie todo esse ambiente distribuído. Os sistemas operacionais distribuídos vêm ao encontro dessa necessidade. Os sistemas operacionais distribuídos caracterizam-se por permitir que seus usuários utilizem os recursos espalhados pelo ambiente distribuído de maneira transparente, escondendo os detalhes da implementação. O mecanismo de comunicação nesses sistemas é muito importante pois garante que componentes do sistema possam interagir a fim de executar uma determinada tarefa. Este trabalho descreve a solução para comunicação remota entre objetos no sistema operacional Aurora. O Aurora é um sistema operacional reflexivo projetado para arquiteturas multiprocessadas. A solução desenvolvida caracteriza-se por estender o mecanismo de comunicação local para permitir que o mesmo também suporte a comunicação remota de objetos. A comunicação entre objetos distribuídos em Aurora atende o requisito de transparência em sistemas distribuídos e é compatível com o modelo reflexivo do sistema.
|
45 |
Mashups patternsTorres, Marcos Gabriel 04 September 2013 (has links)
Este trabajo final propone como objetivo relevar el Estado del Arte de uso de patrones en Mashups y descubrir cuáles son las mejores prácticas en su desarrollo. Con el fin de ofrecer una visión preliminar de la tecnología Mashups para la construcción de sistemas distribuidos orientados al usuario u organizaciones que deseen adoptar una nueva técnica de desarrollo de software.
|
46 |
Disponibilidade em um sistema de arquivos distribuído flexível e adaptável /Carvalho, Lúcio Rodrigo de. January 2014 (has links)
Orientador: Renata Spolon Lobato / Coorientador: Aleardo Manacero Junior / Banca: Norian Marranghello / Banca: Sarita Mazzini Bruschi / Resumo: Um sistema de arquivos distribuído permite que usuários e aplicações possam armazenar e compartilhar dados, acessando tais recursos remotamente como se fossem locais. As características de um sistema de arquivos distribuído podem ser variadas. Assim, é impossível conceber um sistema abrangendo todas as características desejáveis, tais como: transparência, desempenho, escalabilidade, confiabilidade e disponibilidade, por exemplo. O sistema de arquivos distribuído Flexível e Adaptável (FlexA) incorpora importantes características do NFS, AFS, GFS e Tahoe-LAFS. Este sistema elimina a necessidade de um servidor principal (como o master no GFS ou o Introducer no Tahoe-LAFS). Os arquivos são armazenados em dois grupos de servidores: um grupo de leitura, onde somente dados são armazenados, e um grupo de escrita, onde dados e metadados são armazenados. A disponibilidade é provida por um mecanismo semelhante ao apresentado pelo Tahoe-LAFS. No presente estudo são apresentadas as melhorias alcançadas por meio da disponibilidade do FlexA. Os detalhes sobre as modificações no FlexA, bem como os resultados obtidos indicam que o FlexA é uma importante opção de sistema de arquivos distribuído / Abstract: A distributed file system allows users and applications to store and share data, accessing such resources remotely as if they were local. The characteristics of a distributed file system can be varied. Thereby, it is impossible to design a system covering all desirable characteristics, such as transparency, performance, scalability, reliability and availability, for example. The Flexible and Adaptable distributed file system (FlexA) incorporate important characteristics of NFS, AFS, GFS and Tahoe-LAFS. It eliminates the need for main server (such as the master in GFS or the introducer in Tahoe-LAFS). File storage is provided by two group of server: a reading group, where only data is found, and a writing group, where data and metadata are stored. Availability is provided in FlexA through a mechanism similar to the one presented by Tahoe-LAFS. In the present study the improvements achieved through the availability and performance of FlexA are presented. Details about the changes in the FlexA as well as the obtained results indicate that the FlexA is an important option for distributed file system / Mestre
|
47 |
Utilização de Multicast na Disseminação de Escritas em Ambientes ReplicadosHofsetz, Berenice Fuchs January 1999 (has links)
Este trabalho trata da utilização de protocolos de comunicação de grupo para a disseminação de escritas em arquivos replicados. A replicação de arquivos tem como objetivo aumentar a disponibilidade dos dados mesmo mediante a ocorrência de alguma falha. Existem duas abordagens principais para a replicação de arquivos: a da cópia primária e das cópias ativas. Em ambas as abordagens é necessário que seja mantida a integridade dos dados replicados, de forma que todos cópias dos arquivos replicados estejam no mesmo estado. Essa integridade pode ser mantida pela escolha correta de uma estratégia de disseminação de escritas. Como os servidores que mantém cópias do mesmo arquivo formam um grupo de replicação, a disseminação de escritas pode ser feita através de comunicação de grupos. Neste trabalho são apresentados os sistemas de comunicação de grupo xAMp, da Universidade de Lisboa; Totem, Universidade da Califórnia; Transis da Universidade de Hebréia de Jerusalém; Horus, da Universidade de Cornell e Newtop da Universidade de Newcastle. Todos os sistemas descritos possuem características de comunicação de grupo e membership que permitem a sua utilização na disseminação de escritas para arquivos replicados. Este trabalho descreve, também, o protótipo PDERM (Protótipo para a Disseminação de Escritas em arquivos Replicados, através de Multicast), implementado para analisar o comportamento de um sistema de comunicação de grupo, o xAMp, na disseminação de escritas em arquivos replicados pela estratégia da cópia primária. Foi analisado o aspecto da manutenção da integridade das réplicas mesmo na ocorrência de falha do servidor primário.
|
48 |
Uma Solução de escalonamento para o DPC++Schlemer, Elgio January 2002 (has links)
Este trabalho descreve uma implementação de um modelo de escalonamento para a linguagem de programação DPC++. Esta linguagem, desenvolvida no Instituto de Informática da UFRGS, possibilita que uma aplicação orientada a objetos seja distribuída entre vários processadores através de objetos distribuídos. Muito mais que uma simples biblioteca de comunicação, o DPC ++ torna a troca de mensagens totalmente transparente aos objetos. A integração do DPC++ com o DECK, também em desenvolvimento, trará grandes inovações ao DPC++, principalmente pelo uso de theads. O escalonador proposto para este modelo utiliza estes recursos para implantar os chamados processos espiões, que monitoram a carga de uma máquina, enviando seus resultados ao escalonador. O escalonador implementado possui, desta forma, dois módulos: objetos espiões implementados como um serviço do DECK e o escalonador propriamente dito, incluído no objeto Diretório, parte integrante do DPC++.
|
49 |
Protocolo de recuperação por retorno, coordenado, não determinísticoCechin, Sergio Luis January 2002 (has links)
O uso da recuperação de processos para obter sistemas computacionais tolerantes a falhas não é um assunto novo. Entretanto, a discussão de algoritmos para a recuperação em sistemas distribuídos, notadamente aqueles que se enquadram na categoria assíncrona, ainda encontra pontos em aberto. Este é o contexto do presente trabalho. Este trabalho apresenta um novo algoritmo de recuperação por retorno, em sistemas distribuídos. O algoritmo proposto é do tipo coordenado, e seus mecanismos componentes determinam que seja classificado como um algoritmo baseado em índices (index-based coordinated). Desta forma, a tolerância a falhas é obtida através do estabelecimento de linhas de recuperação, o que possibilita um retorno consideravelmente rápido, em caso de falha. Seu desenvolvimento foi feito com o objetivo de minimizar o impacto ao desempenho do sistema, tanto quando este estiver operando livre de falhas como quando ocorrerem as falhas. Além disso, os mecanismos componentes do algoritmo foram escolhidos visando facilitar a futura tarefa de implementação. A satisfação dos objetivos decorre principalmente de uma importante característica assegurada pelos mecanismos propostos no algoritmo: o não bloqueio da aplicação, enquanto é estabelecida uma nova linha de recuperação. Esta característica, associada ao rápido retorno, oferece uma solução promissora, em termos de eficiência, para a recuperação, um vez que o impacto no desempenho tende a ser reduzido, quando o sistema encontra-se operando em ambas condições: livre de erros ou sob falha. Diferentemente da maioria dos algoritmos coordenados encontrados na literatura, o algoritmo proposto neste trabalho trata as mensagens perdidas. A partir da análise das características das aplicações, bem como dos canais de comunicação, quando estes interagem com o algoritmo de recuperação, concluiu-se que os procedimentos usados para recuperação de processos devem prever o tratamento desta categoria de mensagens. Assim, o algoritmo proposto foi incrementado com um mecanismo para tratamento das mensagens que têm o potencial de tornarem-se perdidas, em caso de retorno, ou seja, evita a existência de mensagens perdidas. Uma das decisões tomadas durante o desenvolvimento do algoritmo foi a de permitir um processamento não determinístico. Na realidade, esta escolha visou o aumento do espectro das falhas que poderiam ser tratadas pela recuperação. Tradicionalmente, a recuperação por retorno é empregada para tolerar falhas temporárias. Entretanto, a diversidade de ambiente, freqüente nos SDs, também pode ser usada para tolerar algumas falhas permanentes. Para verificar a correção do algoritmo, decidiu-se empregar um formalismo existente. Assim, a lógica temporal de Lamport (TLA) foi usada na especificação dos mecanismos do algoritmo bem como em sua demonstração de correção. O tratamento referente às mensagens perdidas, atrav´es do uso de mensagens de resposta, associado com o uso de uma lógica temporal, levou à necessidade de rever os critérios de consistência. Esta revisão gerou um conjunto de fórmulas de consistência ajustadas à existência de mensagens de diferentes classes: mensagens da aplicação e mensagens de resposta.
|
50 |
Uma proposta de arquitetura de um ambiente de desenvolvimento de software distribuído baseada em agentesPascutti, Márcia Cristina Dadalto January 2002 (has links)
A crescente complexidade das aplicações, a contínua evolução tecnológica e o uso cada vez mais disseminado de redes de computadores têm impulsionado os estudos referentes ao desenvolvimento de sistemas distribuídos. Como estes sistemas não podem ser facilmente desenvolvidos com tecnologias de software tradicionais por causa dos limites destas em lidar com aspectos relacionados, por exemplo, à distribuição e interoperabilidade, a tecnologia baseada em agentes parece ser uma resposta promissora para facilitar o desenvolvimento desses sistemas, pois ela foi planejada para suportar estes aspectos, dentre outros. Portanto, é necessário também que a arquitetura dos ambientes de desenvolvimento de software (ADS) evolua para suportar novas metodologias de desenvolvimento que ofereçam o suporte necessário à construção de softwares complexos, podendo também estar integrada a outras tecnologias como a de agentes. Baseada nesse contexto, essa dissertação tem por objetivo apresentar a especificação de uma arquitetura de um ADS distribuído baseada em agentes (DiSEN – Distributed Software Engineering Environment). Esse ambiente deverá fornecer suporte ao desenvolvimento de software distribuído, podendo estar em locais geograficamente distintos e também os desenvolvedores envolvidos poderão estar trabalhando de forma cooperativa. Na arquitetura proposta podem ser identificadas as seguintes camadas: dinâmica, que será responsável pelo gerenciamento da (re)configuração do ambiente em tempo de execução; aplicação, que terá, entre os elementos constituintes, a MDSODI (Metodologia para Desenvolvimento de Software Distribuído), que leva em consideração algumas características identificadas em sistemas distribuídos, já nas fases iniciais do projeto e o repositório para armazenamento dos dados necessários ao ambiente; e, infra-estrutura, que proverá suporte às tarefas de nomeação, persistência e concorrência e incorporará o canal de comunicação. Para validar o ambiente será realizada uma simulação da comunicação que pode ser necessária entre as partes constituintes do DiSEN, por meio da elaboração de diagramas de use case e de seqüência, conforme a notação MDSODI. Assim, as principais contribuições desse trabalho são: (i) especificação da arquitetura de um ADS distribuído que poderá estar distribuído geograficamente; incorporará a MDSODI; proporcionará desenvolvimento distribuído; possuirá atividades executadas por agentes; (ii) os agentes identificados para o DiSEN deverão ser desenvolvidos obedecendo ao padrão FIPA (Foundation for Intelligent Physical Agents); (iii) a identificação de um elemento que irá oferecer apoio ao trabalho cooperativo, permitindo a integração de profissionais, agentes e artefatos.
|
Page generated in 0.0777 seconds