RCAAP Repository
Gerenciamento de capacidade de infra-estruturas multicamadas com restrições de energia e ataques de segurança
Ao longo dos últimos anos, um número crescente de empresas vem utilizando terceirização de capacidade computacional como uma abordagem financeiramente atrativa para hospedar seus serviços. Esta dissertação considera o cenário onde diferentes serviços Web transacionais de terceiros são hospedados numa infra-estrutura compartilhada. O foco é no gerenciamento de capacidade dessas infra-estruturas, o que consiste em alocar os recursos disponíveis entre os serviços hospedados de forma a maximizar os objetivos de negócio, isto é, o lucro total, do provedor.O surgimento de novas demandas por parte dos clientes impõe desafios operacionais inéditos ao problema de gerenciamento de capacidade dessas infra-estruturas compartilhadas. Além disso, serviços Web atuais demandam plataformas de hospedagem multicamadas, por exemplo, camadas de apresentação, aplicação e banco de dados. O gerenciamento de capacidade de uma infra-estrutura multicamadas fica ainda mais desafiador devido à maior complexidade do sistema. Ao longo dos últimos anos, os esforços da área de gerenciamento têm tradicionalmente focado apenas em objetivos de desempenho. Porém, a qualidade do serviço provido às aplicações hospedadas, e, por fim, o lucro obtido pelo provedor, dependem também de outros aspectos, como segurança e restrições de energia. Esta dissertação estende um arcabouço prévio baseado na modelagem da infra-estrutura em uma única camada, para capturar, de forma mais precisa, os componentes principais de infra-estruturas multicamadas. A solução apresentada captura ainda, num arcabouço unificado, os compromissos chave de desempenho e custo que surgem quando operando sob ataques de segurança e restrições de energia. As principais contribuições são: (1) um modelo de desempenho multicamadas mais preciso, que captura heterogeneidade de aplicações e o paralelismo inerente a plataformas multicamadas, (2) um modelo de negócio flexível, com contratos adaptativos para períodos de ataques de segurança ou restrições de energia e (3) modelos de otimização muito mais complexos, responsáveis por calcular as decisões de alocação de capacidade, combinando os modelos de desempenho e negócio.A nova abordagem é avaliada através de simulação com cargas sintéticas e cargas realistas, em vários cenários. Os resultados mostram que nova solução multicamadas é significativamente mais eficaz, em termos do lucro obtido pelo provedor, do que a abordagem anterior sobre a qual foi construída, que usa um modelo de desempenho de camada única. Ela também supera significativamente alocação estática de capacidade para cargas pesadas e heterogêneas. O arcabouço consegue minimizar os impactos de ataques de segurança e restrições de energia através da alocação consciente de capacidade, por exemplo minimizando os recursos desperdiçados com requisições ilegítimas. Por último, contratos adaptativos podem ser utilizados para encontrar um compromisso entre os interesses do provedor e de seus clientes.
Gerenciamento de ambientes computacionais heterogêneos via web
Algumas dessas ferramentas que possuem as funcionalidades necessárias são carase exigem pessoal treinado para manipular e personalizar o sistema visando atender as necessidades deste tipo de cliente. Em relação às ferramentas disponíveis, este trabalho apresenta um conjunto de contribuições que possibilitam que os objetivos do sistema sejam atendidos. São elas: possuir o código aberto, permitir que com um mínimo de configuração inicial das unidades o sistema possa funcionar sem intervenção local dos usuários das máquinas no ambiente monitorado e a capacidade de atender a milhares de máquinas simultaneamente.O sistema desenvolvido está em operação em aproximadamente 100 escolas de Minas Gerais participantes do programa Escolas em Rede da secretaria de educação de Minas Gerais. Quando esse programa estiver completo serão quatro mil escolas monitoradas pelo sistema. Neste ambiente a ferramenta se comportou como esperado possibilitando a gerência centralizada dessas escolas.
Compilação de semântica denotacional modular
A semântica e a sintaxe de linguagens de programação podem ser descritas de forma precisa por meio de definições formais. Semântica Denotacional é uma abordagem que permite a descrição formal de linguagens de programação. Essa abordagem apresenta, entretanto, problemas de modularidade. De fato, a especificação formal de linguagens de grande porte é inerentemente complexa, surgindo a necessidade de um modelo capaz de decompor uma descrição em módulos de maneira que a complexidade possa ser controlada. Uma nova metodologia, denominada Semântica Multidimensional, permite que definições em semântica denotacional sejam escritas modularmente. A linguagem funcional de domínio específico Notus segue o modelo proposto por esta nova abordagem.Este trabalho apresenta a implementação de um compilador para a linguagem Notus, que permite a escrita incremental de especificações léxica e sintática de linguagens, usando gramáticas livres de contexto, e da especificação semântica, em semântica denotacional. A modularidade é guiada pela sintaxe abstrata da linguagem que se deseja definir. Para cada construção sintática semanticamente relevante, define-se um módulo. Isto facilita a obtenção de reusabilidade e extensibilidade em especificações em semântica denotacional. O compilador de Notus gera interpretadores para linguagens especificadas. Apresentam-se ainda, neste texto, os problemas decorrentes da compilação incremental de definições modulares, e as soluções para esses problemas implementadas no compilador Notus. O compilador desenvolvido foi testado com especificações modulares em semântica denotacional para linguagens de teste, escritas incrementalmente.
Verificação de equivalência de circuitos com aceleração por largura e aprendizado de cláusulas de conflito
Verificação de equivalência de sistemas digitais é uma técnica amplamente usada atualmente na indústria de fabricação e projeto de circuitos integrados. Ela permite verificar se duas implementações diferentes de uma mesma funcionalidade possuem comportamento idêntico, como por exemplo, uma versão original esua contraparte otimizada por alguma metodologia conhecida (retiming), ou então a implementação antes e depois de sua síntese. Diversos métodos são utilizados atualmente nessa área com bastante eficiência, envolvendo algoritmos que utilizam BDDs e SAT. No entanto, a crescente complexidade dos sistemas digitais atuais e a dificuldade de se verificar a equivalência decorrente dessa complexidade motivam a busca de novas soluções. Este trabalho propõe uma ferramenta de verificação, baseada nos seguintes pontos: particionamento dos circuitos em largura, um resolvedor SAT paralelo e reaproveitamento de cláusulas de conflito encontradas pelo resolvedor SAT por indução em circuitos sequenciais. Esperamos com estas técnicas resolver problemas maiores e mais rapidamente do que as soluções existentes.
Uma linguagem de especificação formal orientada por aspectos
Máquinas de Estado Abstratas oferecem um mecanismo poderoso e de fácil utilização para especificação formal da semântica de algoritmos. A Linguagem AspectM incrementa esta metodologia com a capacidade de modularizar interesses transversais. AspectM é uma linguagem de especificação formal orientada por aspectos que reúne as vantagens existentes em uma especificação formal, como a descrição precisa dos requisitos do sistema, a partir da qual podem ser realizadas verificações, e as vantagens da programação orientada por aspectos, como a modularização de interesses transversais.
Middleware de segurança adaptativo para computação móvel
O paradigma da computação móvel introduziu novos problemas para desenvolvedores e projetistas de aplicações. Desafios incluem a heterogeneidade de hardware, software e protocolos de comunicação, limitações de recursos e qualidade de canal sem fio variável. Nesse cenário, a segurança se torna uma preocupação fundamental para aplicações e usuários móveis. Requisitos de segurança para cada aplicação são diferentes, assim como as capacidades de hardware de cada dispositivo. Para tornar a situação ainda pior, as condições do meio sem fio podem mudar drasticamente com o tempo, causando grande impacto no desempenho e em garantias de qualidade de serviço da aplicação. Atualmente, a maioria das soluções de segurança para dispositivos móveis utiliza um conjunto estático de algoritmos e protocolos para serviços como criptografia e integridade de dados.Neste trabalho propomos um serviço de segurança, que funciona como um middleware, com a habilidade de alterar dinamicamente os protocolos de segurança usados entre duas entidades computacionais. Mudanças são feitas de acordo com variações nos parâmetros do meio sem fio e do uso de recursos do sistema, capacidades de hardware, métricas de qualidade de serviço e níveis desejados de segurança definidos pela aplicação. Também apresentamos uma extensão que permite ao middleware considerar o valor semântico de pacotes sendo transmitidos com o objetivo de escolher melhor o protocolo a ser usado. Comparamos nossa solução com alguns protocolos estáticos de segurança bem difundidos e mostramos como nosso middleware é capaz de se adaptar em diferentes condições de meio e sistema.
Publicar / assinar em redes móveis Ad Hoc
O desenvolvimento e a utilização de dispositivos computacionais portáteis introduziu novos modelos de rede de computadores que demandam soluções diferentes das aplicadas para o modelo tradicional onde todos os terminais de uma rede são fixos. O mais caótico desses modelos é a rede móvel ad hoc, conhecida como MANET, onde não existe nenhuma infra-estrutura previamente disponível. Dessa forma, toda comunicação deve ser feita entre dispositivos cujos rádios se alcancem mutuamente. Esse modelo apresenta diversos desafios como restrições de energia, processamento e largura de banda, conexão intermitente e dificuldade no roteamento de mensagens.O paradigma Publicar/Assinar faz com que a comunicação entre entidades seja feita através do conteúdo da informação produzida e do interesse das entidades. Ele proporciona dimensões de desassociação (temporal, espacial e síncrona) que facilitam a comunicação no ambiente das MANETs. Porém a implantação de uma arquitetura desse paradigma nesse modelo de rede requer soluções diferentes das usualmente desenvolvidas. Soluções para redes cabeadas, ou até mesmo para redes sem fio onde já existem nós com mobilidade porém onde ainda exista uma infra-estrutura robusta de comunicação, não são aplicáveis a um cenário com uma topologia tão dinâmica e com as restrições existentes em MANETs.Este trabalho visa propor uma arquitetura Publicar/Assinar capaz de utilizar a mobilidade dos nós que compõem uma MANET para auxiliar na tarefa de entregar as publicações submetidas aos nós interessados. A mobilidade é utilizada fazendo com que publicações recebidas por nós em um local da rede sejam propagadas em regiões diferentes após a sua movimentação. Dessa forma, com movimentação suficiente, as publicações podem ser disseminadas por toda a área da rede.Os resultados mostraram que a arquitetura proposta teve desempenho superior a outras existentes na literatura e ainda deixou claro que ela é flexível o bastante para se adaptar a aplicações com requisitos distintos.
Programação genérica usando o sistema CT
Na última década surgiram diversas abordagens para programação genérica em Haskell: PolyP, Scrap Your Boilerplate, Derivable Type-Classes, Generic Haskell, Generics for the Masses etc. Estas abordagens variam em sofisticação e público alvo e algumas propõe extensões à linguagem de programação, enquanto outras sugerem bibliotecas.A maioria dessas abordagens utiliza uma representação para a estrutura de definição de tipos algébricos, sendo as funções genéricas definidas sobre esta representação estrutural e automaticamente instanciadas para tipos de dados definidos no programa. Nesse caso, instâncias de uma dada função genérica para diferentes tipos são definições sobrecarregadas da mesma função. SYB adota uma estratégia distinta, definindo uma biblioteca de funções genéricas que realizam travessias sobre valores de tipos de dados complexos. Tais funções genéricas podem ser usadas para definir funções que operam sobre componentes específicos de valores de tipos complexos, evitando que a definição dessas funções envolva código simples e repetitivo, responsável pela travessia de valores do tipo complexo (boilerplate code). Neste trabalho, apresentamos uma descrição sucinta dessas diversas abordagens para programação genérica, assim como uma comparação entre as abordagens mais relevantes. Com base nessa análise, propomos uma abordagem para suporte a programação genérica em uma linguagem similara Haskell, baseada no sistema de tipos CT. O sistema CT estende o sistema de Damas-Milner com suporte para sobrecarga, sem necessidade de declaração de classes de tipos, tal como em Haskell. O back-end do compilador desta linguagem foi implementado como parte deste trabalho. Além disso, foram identificadas duas extensões necessárias ao sistema CT, para prover suporte a programação genérica: polimorfismo de ordem superior e definição de funções polimórficas especializadas. Esta última extensão é baseada na idéia de definições sobrecarregadas sobrepostas para uma mesma função, que foi também implementada como parte deste trabalho.
WhizKEY: um ambiente para instalação de bibliotecas digitais
Nesta dissertação, apresentamos WhizKEY -- Wizard-based blocK Ensemble Yielder, um ambiente para assistência à instalação de bibliotecas digitais a partir de arcabouços de software. WhizKEY foi desenvolvido como um ambiente integrado para a construção e personalização de bibliotecas digitais com base em arcabouços de software potencialmente distintos.Do ponto de vista do usuário, WhizKEY permite que projetistas de bibliotecas digitais se concentrem nos requisitos do sistema sendo instanciado em vez de se preocuparem com a complexidade da tarefa de instalação subjacente. Para tanto, os projetistas são guiados através da tarefa de instalação e cada parâmetro por eles configurado é verificado com base em um conjunto de restrições definido a fim de garantir a correção da instalação produzida.Do ponto de vista do desenvolvedor de um arcabouço, WhizKEY implementa a tarefa de instalação como um fluxo, considerando cada passo nesse fluxo como responsável pela con\-fi\-gu\-ra\-ção de instâncias de um aspecto de uma biblioteca digital (e.g., a própria biblioteca, suas coleções ou catálogos de metadados e os serviços que ela pode oferecer). Esse fluxo é totalmente configurável para permitir a instalação de bibliotecas a partir de diferentes arcabouços.Por meio de duas sessões de testes de usabilidade envolvendo potenciais usuários, a efetividade do ambiente WhizKEY no auxílio à tarefa de instalação foi atestada e uma lista de problemas foi levantada e utilizada no desenvolvimento da versão atual do ambiente.
Uso de apontadores na classificação de documentos em coleções digitais
Este trabalho mostra como informações derivadas de apontadores entre documentos da Web podem ser utilizadas na solução do problema de classificação de documentos. A forma mais comum de apontadores entre documentos da Web corresponde aos hyperlinks entre documentos. Entretanto, apontadores também podem ser derivados a partir de referências entre documentos de coleções digitais hospedadas na Web, por exemplo, a partir de referências entre artigos de bibliotecas digitais ou de enciclopedias. Especificamente, investigamos como a utilização de medidas derivadas de informação de apontadores, denominadas medidas bibliometricas, podem ser utilizadas para melhorar a qualidade de sistemas de classificação de documentos. As medidas bibliometricas utilizadas foram: co-citação, acoplamento bibliográfico e Amsler. Obtivemos classificadores com estas medidas e classificadores com informações de texto, utilizando os seguintes métodos de classificação: o método dos vizinhos mais próximos (kNN) e o método Suport Vector Machine (SVM). Classificadores com medidas bibliométricas mostraram ser eficazes sempre que a distribuição de apontadores na coleção possui determinadas características. Além disto, os documentos para os quais classificadores baseados nestas medidas falham mostraram-se difíceis também na classificação feita por pessoas.Propomos, ainda, um modo alternativo de combinar resultados de classificadores que usam medidas bibliométricas com resultados de classificadores que usam informações de texto. Experimentos mostram que a combinação de resultados é superior ao resultados individuais em todas as coleções de teste.
Impactos da interatividade na escalabilidade de protocolos para mídia contínua
Recentemente, vários protocolos escaláveis de compartilhamento de banda têm sido propostos com o objetivo de obter redução significativa nas bandas de servidor e de rede necessárias para a entrega de mídias populares. Embora a escalabilidade desses protocolos tenha sido avaliada para acesso seqüencial, alto grau de interatividade já foi observado em acesso a diversos servidores reais de mídia contínua. Além disso, alguns estudos indicaram que a interatividade pode penalizar seriamente a escalabilidade dos protocolos de mídia contínua com compartilhamento de banda e, assim, comprometer a popularidade das aplicações de mídia contínua na Internet. Dentro do contexto dos protocolos escaláveis de mídia contínua, são de particular interesse os protocolos com serviço imediato, nos quais os usuários são atendidos com uma latência muito baixa, e que se prestam a aplicações para as quais a interatividade e, portanto, a resposta rápida são requisitos.O objetivo desta tese é investigar o impacto da interatividade na escalabilidade de protocolos de mídia contínua com compartilhamento de banda e serviço imediato e propor novos mecanismos que reduzam esse impacto. Esta tese identifica um conjunto reduzido de fatores de impacto da interatividade sobre a escalabilidade de protocolos de mídia contínua e usa esses fatores como base para criar um modelo de cargas interativas. Com base nesses fatores, constrói um gerador de cargas realistas de mídia contínua. Esse gerador, associado a um conjunto amplo de cargas reais (que cobre diversas aplicações de mídia contínua), é usado como base para construir um rico conjunto de cargas sintéticas interativas realistas. Essas cargas são, então, usadas para avaliar o impacto da interatividade na escalabilidade de dois protocolos correntes de mídia contínua, Patching e Bandwidth Skimming. Uma nova expressão para a escalabilidade do Bandwidth Skimming (válida para as cargas de mídia contínua aqui empregadas) é obtida a partir de dados de simulações e indica que o impacto da interatividade é ainda maior que o estimado por trabalhos anteriores. Esta tese faz uma exploração ampla do espaço de projeto de protocolos para mídia contínua interativa, a fim de propor mecanismos capazes de minimizar o impacto da interatividade. Essa exploração tem como base o protocolo Bandwidth Skimming, mas pode ser facilmente estendida a outros protocolos de mídia contínua. Inicialmente, são apresentadas diversas estratégias focadas em aspectos específicos das cargas de mídia contínua e em aspectos do protocolo base, o Bandwidth Skimming. O efeito da fragmentação de requisições, um fenômeno que afeta qualquer protocolo que use buffer local ao cliente como forma de reduzir a retransmissão, é identificado e avaliado. Esse efeito pode reduzir a economia obtida por uma estratégia e até mesmo fazer com que a banda média de servidor requerida pela estratégia supere a requerida pelo protocolo original. Como forma de avançar a exploração do espaço de projeto de protocolos, combinam-se diversas estratégias na construção de estratégias híbridas. O impacto dessas estratégias sobre a banda requerida no cliente e na rede é também investigado de forma preliminar. Nessa avaliação a dispersão espacial e a dispersão temporal, apresentadas por este trabalho como fatores das cargas interativas que capturam seu impacto primário sobre a escalabilidade de protocolos, são usadas como um arcabouço que facilita significativamente a avaliação dos resultados do grande número de experimentos e simulações efetuados.A dispersão, apresentada em duas dimensões (temporal e espacial), é ferramental útil à avaliação de escalabilidade de protocolos. No entanto, é de difícil mensuração. Portanto, esta tese define dispersão como um parâmetro único das cargas de mídia contínua e usa-a para medir o impacto da interatividade na escalabilidade dos protocolos Patching e Bandwidth Skimming. A dispersão é, então, usada para estimar a escalabilidade do Bandwidth Skimming.Por fim, como as estratégias propostas (e também outras estratégias que usem buffer local ao cliente) são sujeitas ao efeito degenerativo da fragmentação, a exploração do espaço de projeto de protocolos é concluída com a apresentação de um protocolo adaptativo que monitora a carga como forma de escolher, dinamicamente, qual a melhor estratégia a empregar para uma certa carga. Esse protocolo usa a dispersão para guiar suas decisões a fim de evitar o efeito degenerativo da fragmentação. Com isto, obtém economia de banda de servidor (de até 66%) para uma faixa de dispersões mais ampla que qualquer estratégia individual. A melhor estratégia híbrida proposta reduz a banda média de servidor requerida pelo protocolo Bandwidth Skimming original para cargas altamente interativas, em até 53% para buffer de tamanho ilimitado e em até 46% para buffer restrito a apenas 50% do tamanho da mídia.
Sistemas eixo-raio de múltipla atribuição: modelos e algoritmos
Em sistemas de telecomunicações e de transporte, o problema localização de concentradores com atriuição múltipla surge quando demandas entre muitos pares de origem-destino devem ser enviadas.Ao invés de servir cada demanda entre uma origem e um destino com uma conexão direta, os fluxos são reunidos a partir de concentradores (\textit{hubs}) e enviados, através de uma rede de concentradores, para serem então entregues aos respectivos destinos. Sistemas com esse tipo de topologia são chamados de sistemas do tipo eixo-raio ou redes do tipo eixo-raio. Essas redes são projetadas para usufruírem da economia de escala obtida ao se concentrar o fluxo durante o transporte e/ou transmissão entre concentradores. Portanto, o problema consiste em encontrar a configuração de rede eixo-raio com o menor custo possível selecionando quais locais a se instalar um concentrador e atribuindo o tráfego a cada um, dados os custos de instalação, de transporte e a demanda entre os pares de origem e destino. No presente trabalho, três versões diferentes do problema são estudadas: o problema clássico, a economia de escala dependente do fluxo e o congestionado. Algoritmos eficientes baseados no métodode Decomposição de Benders foram empregados na resolução dos problemas, resolvendo instâncias de grande porte, consideradas fora do alcance'' de métodos exatos, em um tempo aceitável.
Busca eficiente em redes sociais
Redes sociais são utilizadas para a interação entre as pessoas. Uma das principais operações de uma rede social é a busca por um usuário. Enquanto máquinas de busca utilizam sinais baseados em sua estrutura de enlaces (links), como Pagerank e autoridade, para melhorar a qualidade de seus resultados, em uma rede social, esses sinais não são apropriados. Nesse caso, um sinal alternativo para melhorar a busca por uma pessoa são os relacionamentos de amizade definidos na rede social. Para ilustrar, se João procura por Maria, uma boa função de ordenação daria maior peso para as Marias mais próximas do círculo de relacionamento de João. Entretanto, se o grafo de relacionamentos é grande, a computação eficiente dessas distâncias deixa de ser um problema trivial. Diante desse problema, propomos um algoritmo baseado em sementes que aproxima as distâncias de maneira eficiente, e pode oferecer ganhos nos tempos de execução no Orkut de até três ordens de grandeza com relação à solução força bruta, mantendo precisões acima de 70%. Reduzindo o ganho nos tempos de execução para duas ordens de grandeza, a precisão dos resultados ultrapassa 90%. Esses resultados mostram que é possível obter excelentes ganhos de desempenho na computação de distâncias de relacionamento em redes sociais - um sinal crucial para a busca dentro de margens de erro aceitáveis, o que viabiliza a utilização desse importante sinal em redes sociais de grande porte.
Um estudo sobre referências bibliográficas na área de ciência da computação
Resultados de pesquisa científica e tecnológica são normalmente publicados como artigos em periódicos (em Inglês,\emph{journals}''), conferências e seminários. Nas áreas de ciências naturais, como Matemática, Física eBiologia, esses artigos são publicados predominantemente em pe\-ri\-ó\-di\-cos (\emph{journals}''). Este mesmo padrão é observado em certas áreas de pesquisa tecnológica como as engenharias. Na área de Ciência da computação,entretanto, há razões para suspeitar que publicações em conferências têm adquirido um destaque crescente. De fato,correntemente o volume de artigos em conferências supera em muito aquele de artigos em periódicos. Se assim é, há de se especular se o impacto de artigos de conferências na área de Ciência da Computação é comparável ao impactode artigos de periódicos. Este trabalho é um estudo das publicações dos principais autores da área de Ciência da Computação nos últimos 30 anos, tanto em conferências quanto em periódicos. Nosso estudo sugere que, na área de Ciência da Computação, conferências tiveram um crescimento grande o suficiente para tornar os trabalhos nelas veiculados tão importantes quanto os trabalhos publicados em periódicos.
Escalabilidade em servidores cache WWW
O grande crescimento em popularidade da World Wide Web tem motivado várias pesquisas com o objetivo de reduzir a latência observada pelos usuários. Os servidores cache têm-se mostrado uma ferramenta muito importante na busca desse objetivo. Embora a utilização de servidores cache tenha contribuído para diminuir o tráfego na Internet, as estratégias de cooperação utilizadas na composição de grupos (clusters) de caches normalmentetrazem uma degradação de desempenho aos servidores não sendo, por isso, escaláveis o suficiente para acompanhar o crescimento atual da WWW. Nesta dissertação, propomos uma nova forma de cooperação entre servidores cache que não causa um impacto tão grande no seu desempenho, permitindo, assim, a criação de grupos de servidores cache que sejam capazes de crescer junto com a demanda dos seus usuários.
Arquitetura para construção de software adaptativo para redes de sensores
Este trabalho propõe uma abordagem sistemática sobre o uso da adaptação e redundância em redes de sensores sem fio, através de uma nova arquitetura para aplicações nessa plataforma. A rede de sensores surge como um novo paradigma à computação. Ela incorporar dados sobre o mundo físico, como temperatura, pressão e luminosidade, à infraestrutura de software já existente. Essas novas oportunidades de explorar o mundo também trazem interessantes desafios. Entre eles, destaca-se a operação autônoma da rede, ou seja, de forma totalmente automática, sem intervenção humana. Para que isso se torne realidade, a aplicação deve ser adaptativa, no sentido em que o software altera seu fluxo de execução de forma a manter a qualidade do serviços prestados. A mudança de execução implica na utilização de um novo conjunto de dados, com maior qualidade, obtido através dos recursos redundantes disponíveis.A arquitetura propõe a modelagem de uma aplicação para redes de sensores em planos de abstração, os quais correspondem a refinamentos sucessivos no processo de entendimento e organização dessa aplicação. Em cada um dos planos há uma estratégia de adaptação, a saber: assinalamento de papéis, adoção de alternativas à implementação de papéis, especificação de fluxos de execução e inclusão de algoritmos distribuídos. Especifica-se exatamente quando adotar cada estratégia durante o processo de modelagem, trazendo uma metodologia que inibe as técnicas ad hoc que vêm sendo geralmente empregadas no projeto e implementação de redes de sensores. Para fins de inspeção da qualidade dos serviços, há uma camada de dados de adaptação compartilhada entre os planos. Ela contém um conjunto de valores que permitem a avaliação da eficácia da adaptação corrente e das alternativas de adaptação disponíveis. A viabilidade da arquitetura foi analisada em um estudo de caso, o qual envolveu a modelagem de uma aplicação típica para RSSFs.
2019
Breno Augusto Dias Vitorino Antonio Otavio Fernandes
Protein Classification Tool: uma ferramenta para anotação de proteínas utilizando bases secundárias
Apesar do grande desenvolvimento das técnicas de seqüenciamento genético (digitalização do material genético) observado nos últimos tempos e do conseqüente crescimento dos bancos de dados de seqüências, a capacidade de análise dessas seqüências não conseguiu acompanhar esse desenvolvimento. Visto que seqüências não identificadas ou com identificação incorreta são de limitada utilidade científica, este trabalho tem como objetivo tratar esse problema por meio da criação de uma ferramenta que, mediante a integração de diversas funcionalidades de anotação, facilita o processo de anotação (identificação) de seqüências genéticas ao mesmo tempo que permite a obtenção de melhores resultados. A ferramenta descrita neste trabalho, a 'Protein Classification Tool', implementa as seguintes funcionalidades: comparação usando BLAST com diversas bases secundárias (GOA, COG/KOG e bases do CGAP) e o NR, análise de domínios e análise filogenética. Neste trabalho ainda se define um 'framework' para permitir a extensibilidade da ferramenta por meio da adição de bases secundárias e novas funcionalidades, de modo a permitir que a ela se mantenha atualizada, acompanhando os avanços no processo de anotação.
Redução de dados em redes de sensores sem fio baseada em stream de dados
O mundo ao nosso redor possui uma variedade de fenômenos que podem ser descritos por algumas grandezas como temperatura, pressão e umidade, que podem ser monitorados por dispositivos com poder de sensoriamento, processamento e comunicação. O conjunto desses dispositivos, trabalhando de forma cooperativa, é conhecido como rede de sensores sem fio. Cada um desses dispositivos, chamados nó sensor, tem a capacidade de monitorar um ou mais fenômenos e reportá-los, através de uma comunicação sem fio, para um nó especial chamado de sorvedouro.Essas redes, devido às características da aplicação, possuem restrições de energia, tempo de resposta e largura de banda. Especificamente no que diz respeito à largura de banda, enviar grandes quantidades de dados pode ser problemático pela quantidade de nós que acessarão o meio, causando atraso demasiado no tempo de resposta e, assim, invalidando os dados. Devido a essas restrições, é necessário adotar-se alguma estratégia para o tratamento dos dados a fim de reduzir ou selecionar apenas os dados mais relevantes para a aplicação.Os fenômenos monitorados geram dados com algumas características (online, impreciso, com ruído e de tamanho moderado, ie, grandes o suficiente para não poderem ser processados facilmente), que nos leva a defini-los como stream de dados. Para tal tipo de dados, encontramos algumas técnicas, como amostragem, histograma, janela deslizante e rascunho, que nos permitem efetuar o processamento e a redução do conjunto de grandezas que representam os fenômenos monitorados, de tal forma que os gastos na rede possam ser reduzidos.Com isso, o problema geral tratado no nosso trabalho é efetuar a redução de dados em redes de sensores sem fio baseada nas técnicas de stream de dados de tal forma que seja possível economizar os recursos da rede sem comprometer a representatividade dos fenômenos monitorados. Como solução é proposta uma arquitetura para redução nas aplicações gerais, que possui uma API de redução baseada nas técnicas de stream de dados. Além disso, utilizamos essa arquitetura para modelar aplicações que necessitam efetuar a redução no momento do sensoriamento, através de um nó agregador, e durante o roteamento.Os resultados revelam que é possível utilizar a nossa solução para as diferentes aplicações modeladas, uma vez que foi possível economizar recursos da rede sem perder a representatividade dos fenômenos monitorados. Especificamente, quando a arquitetura foi integrada à fase de roteamento em aplicações de tempo real vimos através dos resultados que na maioria dos cenários é possível atender aos prazos exigidos pela aplicação e ainda assim manter a representatividade dos fenômenos monitorados.
BASS: um arcabouço de software para integração de sistemas de informação: um arcabouço de software para integração de sistemas de informação
Nesta tese apresentamos o arcabouço de software BASS: Business Application Support through Software Services. A finalidade do BASS é auxiliar no desenvolvimento de soluções de software para a integração de sistemas de informação. O desenvolvimento do BASS originou-se do estudo da relação entre requisitos e tecnologias no domínio de Integração de Sistemas de Informação. O desenvolvimento do BASS teve uma dimensão de tecnologia (o arcabouço BASS) e uma dimensão de processo de software, com o desenvolvimento de elementos de processo necessários para a utilização efetiva do arcabouço. Dentre os benefícios obtidos com o BASS está a simplificação do desenvolvimento e a diminuição de esforço em atividades de desenho e implementação.
Uma abordagem baseada em gênero para coleta temática de páginas da web
Coletores temáticos apresentam o propósito maior de coletar páginas da Web que sejam relevantes a um tópico ou interesse específico do usuário, sendo importantes para uma grande variedade de aplicações. Em geral, eles funcionam tentando localizar e coletar todos os tipos de páginas que estejam relacionadas a um determinado tópico de interesse. Contudo, alguns usuários podem não estar simplesmente interessados em algum documento sobre um tópico; na verdade, podem estar interessados em recuperar documentos de um determinado estilo ou gênero referente ao tópico. Nesta tese, descrevemos uma abordagem para coleta temática que explora não somente informação relacionada ao conteúdo, mas também informação de gênero presente em páginas Web para guiar o processo de coleta. Essa abordagem foi projetada para situações em que o tópico específico de interesse pode ser expresso por dois conjuntos de termos: o primeiro conjunto descrevendo aspectos de gênero das páginas desejadas e o segundo conjunto relacionado ao assunto ou conteúdo destas páginas. Além disso, uma das características da nossa abordagem consiste no fato de não necessitar de algum treinamento a priori nem de algum outro tipo de processamento prévio. A eficácia, a eficiência e a escalabilidade da abordagem proposta são demonstradas por um conjunto de experimentos, envolvendo a coleta de páginas Web referentes a planos de ensino de disciplinas do curso de ciência da computação, ofertas de trabalho na área de ciência da computação e ofertas de venda de equipamentos de informática. Tais experimentos mostram que coletores temáticos construídos de acordo com a nossa abordagem baseada em gênero alcançam níveis de F1 superiores a 88%, necessitando a análise de não mais do que 60% das páginas visitadas para localizar 90% das páginas relevantes. Além disso, analisamos experimentalmente o impacto da seleção de termos em nossa abordagem, variando a quantidade de termos de gênero e conteúdo usados para guiar um processo de coleta e avaliando uma estratégia proposta para geração semi-automática de tais termos. A análise mostra que um pequeno conjunto de termos selecionados por um especialista é geralmente suficiente para produzir resultados bons e que tal estratégia para geração semi-automática de termos é muito eficaz em suportar a tarefa de selecionar os conjuntos de termos necessários para guiar um processo de coleta utilizando nossa abordagem.