Repositório RCAAP
Uma arquitetura para simulação flexível de protocolos para computação móvel
Os ambientes de computação móvel possuem características que influenciam o projeto de sistemas computacionais sob vários aspectos. Os canais de comunicação sem fio apresentam alta taxa de erros e baixa largura de banda, se comparados às tecnologias atuais de cabeamento. O mobilidade das estações móveis pode causar grandes variações na qualidade da comunicção sem fio e confere ao ambiente de rede uma topologia dinâmica. Além disso, dispositivos móveis possuem recursos limitados de processamento e consumo de energia. O maior impacto dessas características é no desenvolvimento de protocolos de rede. Nestes ambientes, os prootocolos devem implementar mecanismos de correção de erros, controle de acesso ao meio sem fio, gerência de localização variável de estações móveis e utilizar adequadamente os recursos da rede, sobretudo o acesso aos canais de comunicação e o sonsumo de potência. Devido a essa complexidade adicional dos protocolos para computação móvel, simuladores têm sido amplamente utilizados com o objetivo de avaliar o desempenho desses protocolos e a adequação dos modelos de simulação para as aplicações reais, sobretudo os modelos de mobilidade. Uma limitação comum a esses simuladores é não permitir a simulação de protocolos de alto nível de forma flexível e adequada
2001
Ricardo Couto Antunes da Rocha
Escalonamento de reservas de domínio
Pesquisas na área de sistemas operacionais indicam que os sistemas operacionais atuais não atendem adequadamente a demandas específicas de aplicações de tempo real as quais apresentam comportamento definido segundo requisitos temporais, não oferecendo garantias de QoS. O desempenho de uma aplicação é, em parte, determinado pela carga do sistema. Os parâmetros tradicionais de QoS incluem justiça, atraso e 'throughput'. Quando o objetivo é executar diversas aplicações de tempo real na mesma máquina, o sistema operacional precisa oferecer garantias de QoS tal que os recursos do sistema possam ser provisionados pelas aplicações tal que alcancem níveis desejados de desempenho previsível. Sob esse contexto, dividimos nosso trabalho em três partes. Na primeira, discutimos o problema da alocação apropriada dos recursos para cada tipo de aplicação ser capaza de alcançar um nível específico de QoS e das limitações dos sistemas operacionais atuais. Apresentamos algumas soluções aplicáveis tratadas em suas soluções algorítmicas presentes na literatura, que utilizam esquemas de gerenciamento de recursos baseados em reserva de recurso e que oferecem algumas garantias de QoS. Na segunda parte, nosso estudo está baseado em dois outros trabalhos de pesquisa. O primeiro diz respeito a um novo critério de QoS chamado serviço cumulativo. Discutimos a importância da garantia de serviço cumulativo para escalonadores tal que ofereça desempenho previsível para aplicações que requerem múltiplos recursos. O critério, serviço cumulativo, permite o relacionamento do total de serviço obtido por um processo sob uma política de escalonamento com o serviço ideal que o processo teria acumulado executando em cada recursos e tivesse determinado uma fração de reserva de cada um destes. E refere-se também aos algorítmos de escalonamento: Move-to-Rear List Scheduling, Shortest Virtual Time, First Round Robin e Weighted Round Robin Scheduling, ) que provêm as garantias de serviço cumulativo, justiça (compartilhamento do recurso proporcional) e atraso limitado. O segundo trabalho de pesquisa refere-se à introdução de um novo conceito em sistemas operacionais chamado reservas de domínios que permitem um controle explícito sobre o provisionamento dos recursos do sistema pelas aplicações. Em geral, a cada reserva de domínio é designada uma certa fração de reserva de cada recurso (por exemplo, 25% CPU, 50% I/O). Apresentamos o sistema operacional experimental Eclipse que utiliza a abstração reserva de domínios e estes escalonadores. Na terceira parte, estudamos as políticas de escalonamento acima, onde um 'quantum' alocado para um domínio pode ser particionado, e suas propriedades. Desenvolvemos um ambiente para simulação baseado na proposta reserva de domínio, onde estas políticas foram implementadas com o intuito de analisarmos os efeitos de reserva de domínio sob o modelo de sistema e processos, o seu comportamento e eficácia diante de vários cenários
2001
Maria do Carmo Garcia Noronha
Estudo de requisitos para um software educativo de apoio ao ensino da introdução a computação
Este estudo apresenta a análise de requisitos para um software educativo de apoio ao ensino da introdução à computação. O caráter multidisciplinar deste trabalho fundamenta-se na psicologia educacional construtivista e na engenharia de software. A metodologia usada baseou-se nas técnicas de análise de requisitos da engenharia de software, levando em conta as restrições funcionais derecentes paradigmas educacionais e das tecnologias computacionais. O ensino da introdução à computação pode ser beneficiado pelo uso de um software educativo de apoio ao professor, propiciando aos alunos um ambiente adequado às suas necessidades individuais, onde conceitos em aprendizagem possam ser explorados e praticados. Neste estudo é considerado o histórico do uso desta ferramenta computacional, que visa aumentar a compreensão do aluno nos elementos básicos da programação de computadores levando-o a construção de uma base mais sólida de conhecimento, que irá ter como conseqüências um melhor aproveitamento nas disciplinas seguintes e uma diminuição do número de repetências. Com base na análise levantada, este estudo apresenta uma proposta metodológica de elaboração de exercícios baseada em três fatores: os erros mais freqüentes dos iniciantes em programação, a teoria consteutivista de Piaget e os conceitos a serem aprendidos. Contudo os exercícios obtidos precisavam de um ambiente adequado à sua execução, foi então desenvolvido o protótipo de um ambiente de trabalho semi-dirigido, onde o aprendiz pode testar suas hipóteses sobre como resolver o problema, propiciando uma interação mais significativa que os atuais testes de múltipla escolha
2001
Maria Clara Barros de Oliveira Fischer
RMIRep: suporte para replicação de objetos em redes de alta latência
O avanço na tecnologia de computadores móveis, como laptops e PDAs, tem permitido amplo acesso a diversos sistemas de informação distribuidos. O uso de computadores móveis introduz novos desafios ao projeto à implementação de aplicações em redes de alta latência, que devem lidar com conectividade intermitente, desconexões freqüentes e taxas de transmissão de dados baixas. Em particular, computadores móveis precisam ter acesso à informação mesmo quando desconectados. A replicação de dados é uma solução atraente para disponibilizar acesso a sistemas de informação distribuídos em redes de alta latência. Nessa dissertação investigamos a política de consistência fraca Bayou, desenvolvida no Xerox PARC. Políticas de replicação com consistência fraca permitem que servidores distintos leiam e modifiquem dados sem haver coordenaçao contínua e explícita entre eles, aumentando a disponibilidade da informação. Bayou é inovador pois permite que aplicações controlem o equilíbrio entre os graus de disponibilidade, inconsistência e reconciliação dos dados, através das políticas de usuário, que podem ser configuradas para satisfazerem as necessidades específicas da aplicação. Apresentamos o projeto e a implementação do sistema RMIRep, que fornece suporte para o desenvolvimento e a análise de mecanismos de consistência. Integramos três desses mecanismos ao RMIRep: a política de réplicas independentes, a política de dados totalmente sincronizados e uma adaptação da política Bayou. Realizamos experimentos com as políticas total e Bayou em uma rede Ethernet e com uma conexão PPP com taxa de transmissão baixa. Uma contribuição do sistema RMIRep é a integração de políticas de consistências variadas em um ambiente popular, que pode co-existir com aplicações de sistemas de informação já existentes. RMIRep estende a hierarquia Java RMI para fornecer a funcionalidade da replicação e consistência dos dados. Java RMI é um mecanismo de ) invocação remota de métodos que dá suporte a objetos java distribuídos. A aceitação dessa tecnologia na industria e o seu potencial para expansão foram cruciais na nossa decisão de adotá-la como sistema para o nosso projeto
2001
Jorge Chaves Radel Bittencourt
Metamodelo para controle de estratégias assíncronas de replicação de dados
Esta dissertação trata das formas e técnicas de distribuição de dados, através da replicação assíncrona, integrado com o projeto de banco de dados com modularização, criando um projeto único chamado de Projeto de Banco de Dados com Modularização e Replicação. A elaboração do projeto tem em vista a utilização de um metamodelo de dados, capaz de manter todas as informações necessárias para se fazer o controle no uso de diversas estratégias de replicação, conforme o Projeto de Modularização e Replicação de Dados, realizado em um modelo corporativo de dados. Foi desenvolvida uma ferramenta que permite que o metamodelo seja alimentado, possibilitando o gerenciamento e manutenção do projeto de replicação e particionamento de dados, após o cadastro lógico do modelo conceitual global de dados. Para garantir a utilização correta de diversas estratégias de replicação do metamodelo em questão, foi implementado um verificador para analisar as consistências dos projetos de replicação definidos para o banco de dados. Tal verificador, por sua vez, foi incorporado à ferramenta desenvolvida pelo Departamento de Informática da Reitoria da USP, para garantir a consistência de suas bases de dados
2001
Carlos Henrique Maia Braga
Colorações restritas de grafos
Tratamos de coloração restrita de grafos, que é uma generalização do problema clássico de coloração de vértices. A generalização é obtida impondo-se restrições ao conjunto de cores disponíveis para cada vértice. Estudamos algumas técnicas de coloração restrita que combinam métodos combinatórios, algébricos e probabilísticos. Inicialmente, expomos algumas relações entre coloração clássica e coloração restrita. A seguir, tratamos de coloração restrita em grafos planares, apresentando resultados que utilizam métodos combinatórios de Thomassen e Gutner. Prosseguindo, descrevemos uma abordagem algébrica desenvolvida por Alon e Tarsi. Uma aplicação dessa abordagem é a prova, devida a Haggkvist e Janssen, da conhecida conjectura da coloração restrita de arestas de grafos completos de ordem ímpar. Finalmente, discutimos a prova de Galvin para a conjectura da coloração restrita de arestas de grafos bipartidos
Algoritmos para predição da estrutura secundária do RNA
De forma similar à que ocorre com as proteínas, as moléculas de RNA assumem uma conformação espacial (estrutura) que desempenha um importante papel na definição de sua função. Além de influenciar os processos de transcrição, tradução e replicação, as moléculas de RNA podem desenvolver atividades catalíticas. Podem ainda desempenhar papel regulador ou estrutural. Os métodos laboratoriais para detrminação da estrutura do RNA são onerosos. A estrutura secundária do RNA, além de fornecer informações acerca da função da molécula, serve também como importante etapa na definição de sua estrutura terciária. Daí a importância em se desenvolver métodos computacionais, rápidos e precisos, de predição da estrutura secundária a partir da estrutura primária. As duas mais importantes estratégias de resolução do problema estão baseadas em critérios de estabilidade termodinâmica (de energia livre mínima) e na identificação dos dobramentos comuns entre moléculas homólogas. No primeiro caso, os algoritmos mais importantes são baseados em técnicas de programação dinâmica. No segundo, os mais importantes algoritmos conhecidos são baseados em modelos de covariância e operam sobre um conjunto de seqüências homólogas alinhadas. Situado no contexto da genômica estrutural e da bioinformática, o trabalho apresenta os modelos propostos para o problema, além de escrever formalmente as várias técnicas e métodos envolvidos na sua resolução. Desenvolvemos também implementações eficientes dos algoritmos mais expressivos baseados em cálculo de energia livre mínima, tanto do ponto de vista da complexidade computacional (de tempo e espaço), como da representatividade do modelo termodinâmico
2002
Luiz Carlos da Silva Rozante
Três problemas em complementaridade e programação matemática
Este trabalho aborda três problemas que têm em comum modelagens envolvendo condições de complementaridade, e propostas de solução com ferramentas de programação matemática. As aplicações destes problemas incluem pesquisa operacional, regressão não-linear, redes neurais e equilíbrio de sistemas mecânicos. As técnicas de solução propostas combinam várias ferramentas de programação linear e não-linear, otimização combinatória e programação côncava. Testes numéricos estão incluídos
2001
Marcelo Gomes de Queiroz
Transações Web: um estudo sobre problemas e soluções
Este trabalho estuda sobre transações de Banco de Dados em aplicações desenvolvidas para a Internet, e mais especificamente, para a Web. Os conceitos básicos do ambiente de integração Web Banco de Dados são descritos. As transações Web são caracterizadas, abordando seus principais aspectos e ressaltando os problemas transacionais que surgiram em sistemas desenvolvidos para o ambiente Web Banco de Dados, consideram-se os possíveis modelos de transações para o ambiente de integração, em substituição ao modelo convencional de transações planas, que se mostrou inadequado por não suportar transações de longa duração, nem a capacidade de desfazer parte da transação. Este estudo mostra também uma síntese das soluções existentes para resolver estes problemas e implementar transações de Banco de Dados no ambiente Web. Além de soluções mais simples como CGI, ASP e Servlets, estudou-se também os servidores de aplicação, que são softwares responsáveis pelo desenvolvimento e gerenciamento de aplicações Web mais robustas. Dentro deste contexto, os três principais modelos de componentes foram abordados: CORBA, COM+ e Enterprise JavaBeans. Além dos modelos de componentes, foi feito um estudo sobre as principais tecnologias de processamento de transações, com o intuito de mostrar que as soluções para implementação de transações Web passam por uma das tecnologias abordadas
2001
Lorena Pereira da Ponte Pierre
Composição de fluxos de controle de frameworks java
Um dos principais motivos para se utilizar frameworks é a reutilização de software, alcançando com isso reutilização de código e design. Hoje, o desenvolvimento de aplicação baseado em frameworks está mudando de baseado em um único framework para baseado em múltiplos frameworks. Contudo, a maioria dos frameworks não foi projetada para ser composta com outros frameworks ou componentes (biblioteca de classes, componentes legados ou design patterns), mas para ser reutilizado individualmente. Então, quando frameworks são compostos, surgem problemas tais como: composição de fluxo de controle, composição com sistemas legados, frameworks gap, sobreposição de entidades e composição de funcionalidade de entidade [1]. Este trabalho trata dos problemas que podem acontecer durante a composição de fluxo de controle de frameworks construídos utilizando a linguagem Java. A forma de comunicação entre os frameworks está limitada à troca de mensagens. Foram definidas quatro formas de composições: sem composição, seqüencial, unidirecional e bidirecional. Para cada forma de composição foram levantados os problemas que podem acontecer durante a composição do fluxo de controle. Para cada problema foram analisadas: suas causas, conseqüências, forma de detecção e algumas sugestões. Baseado nessas informações, foi desenvolvida uma ferramenta de diagnóstico. Tal ferramenta verifica, a partir de dois frameworks e da forma de composição desejada, que tipos de problemas podem acontecer, onde eles podem acontecer e uma possível sugestão para o problema
Algoritmos para caminhos mínimos
O problema do caminho mínimo consiste em: dados um grafo (V, A), uma função comprimento c de A em Z> ou = e um vértice s encontrar um caminho de comprimento mínimo de s até t, para cada vértice t em V. Desde 1959, quase todos os desenvolvimentos teóricos para esse problema têm se baseado no algoritmo de Dijkstra [11]. Foram desenvolvidas várias estruturas de dados que aumentam a eficiência desse algoritmo. Porém, qualquer implementação do mesmo examina os vértices em ordem crescente de distância a partir do vértice inicial s. Portanto, ocorre uma ordenação implícita dos vértices de acordo com essas distâncias. Assim, no modelo de comparação-adição, qualquer implementação deste algoritmo consome tempo (m + n log n), onde n é o número de vértices e m é o número de arcos do grafo dado. Para grafos simétricos e comprimentos em Z>, Thorup [39] projetou um algoritmo, no modelo RAM, que consome tempo e espaço O(m + n). O algoritmo utiliza uma decomposição hierárquica do grafo e 'bucketing' para identificar eficientemente conjuntos de vértices que podem ser examinados em qualquer ordem, evitando assim, o 'gargalo' da ordenação. Nesta dissertação são descritos e implementados vários algoritmos para o poblema do caminho mínimo, inclusive os mencionados acima. Ao final, é feita uma análise experimental das implementações realizadas
Uma taxonomia da pesquisa na área de engenharia de software
Engenharia de Requisitos é uma disciplina inserida no contexto da Engenharia de Softwre e relaciona-se ao estudo dos requisitos, sua especificação, documentação, validação e negociação entre todos os stakeholders de um sistema. Neste trabalho, propõe-se uma taxonomia da pesquisa em Engenharia de Requisitos, organizada ontologicamente, isto é, estruturada de acordo com as atividades conduzidas durante o processo de requisitos. Para isso, são discutidos os conceitos básicos da disciplina, são apresentados argumentos sobre a importância do processo de requisitos, são apontadas as principais responsabilidades no contexto de cada uma das atividades conduzidas e, por fim, são identificados os principais participantes do processo. Finalmente, são discutidas as dimensões que afetam uma possível classificação e apresenta-se um esquema facetado para classificar a pesquisa na área de Engenharia de Requisitos
2002
Paulo Sérgio Naddeo Dias Lopes
Uma infra-estrutura para migração de objetos CORBA implementados em Java
Esta dissertação propõe uma infra-estrutura para migração de objetos CORBA implementados em Java. Dois objetos nortearam o projeto dessa infra-estrutura. Um deles foi possibilitar a migração de objetos individuais, isto é, a migração de somente um ou de alguns dos objetos residentes num servidor. O segundo objetivo foi prover transparência de migração, ou seja, preservar a validade das referências para os objetos que migraram e permitir que clientes continuem usando tais referências para invocar métodos dos objetos mesmo durante o processo de migração. A infra-estrutura de migração consiste num conjunto de servidores CORBA que fornecem de execução para objetos móveis. Cada um desses servidores de mobilidade funciona como hospedeiro para um conjunto de objetos CORBA implementados em Java. Estes objetos podem migrar de um servidor de mobilidade para outro. Os servidores de mobilidade são genéricos, podendo hospedar objetos com diferentes interfaces IDL, desde que implementados seguindo certas regras. Um servidor de mobilidade não precisa conhecer, em tempo de sua compilação, nem as interfaces IDL nem as classes Java correspondentes aos objetos móveis que ele abrigará. O uso de CORBA e Java foi motivado tanto por sua relevância e aceitação quanto por algumas de suas características. A transparência de localização e o mecanismo de location forward oferecidos por CORBA foram cruciais para este trabalho. A independência de plataforma, a mobilidade de código e as facilidades para a serialização de objetos oferecidas por Java foram igualmente importantes
2001
Helves Humberto Domingues
Uma implementação do protocolo TLS com um algoritmo de criptografia forte
Esta dissertação propõe uma implementação do protocolo TLS 1.0, cujo principal objetivo é o aumento da segurança na comunicação entre aplicações. Na implementação utilizamos a linguagem Java e os serviços do protocolo de trasporte TCP. Isto possibilita sua utilização em grande variedade de aplicações. Para o prjeto desta implementação, o protocolo TLS 1.0 foi analisado sob dois aspectos. O primeiro quanto à sua capacidade de resistir a manipulações por alguém que se coloque no meio de comunicação. O segundo quanto à segurança dos algoritmos básicos propostos na especificação TLS 1.0. Com base nesta análise fizemos duas alterações. A primeira foi a inclusão, no conjunto de algoritmos do TLS, do algoritmo de criptografia em blocos RC6 com uma alteração para fortalecê-lo contra criptanálise diferencial. A outra alteração foi na verificação das chaves no sub-protocolo para troca de chaves
Árvores k-restritas e aproximações para o Problema de Steiner em Grafos
O Problema de Steiner em grafos consiste em encontrar, em um grafo com custos nas arestas, uma árvore de custo mínimo contendo um dado conjunto de vértices. Esse problema tem um papel central na área de algoritmos de aproximação e diversas de suas variantes têm aplicações, por exemplo, em projeto de redes de comunicação. Neste trabalho apresentamos um estudo de vários algoritmos de aproximação para este problema. Os algoritmos escolhidos baseiam-se na utilização de árvores k-restritas e formam uma série, cada um deles tendo explorado melhor uma idéia introduzida pelo anterior. Todos eles foram projetados durante a última década, sendo o mais recente, o melhor algoritmo de aproximação para o problema até o momento em termos de razão de aproximação
Criptografia: uma implementação do Protocolo de Micropagamento PayWord
Esta dissertação apresenta uma análise dos esquemas de Micropagamento Eletrônico PayWord, MicroMint e MilliCent, que empregam técnicas de criptografia para produzir e controlar a utilização da moeda eletrônica, por um Sistema de Pagamento Eletrônico para transações de pequeno valor monetário. O trabalho descreve em detalhes o Sistema Protótipo de Micropagamento que foi desenvolvido utilizando o protocolo PayWord, de forma a não só atender aos requisitos e às características de uma aplicação de comércio eletrônico, como também contemplar operações de venda, pagamento e entrega de produtos e informações pela Internet
Laboratório de geração de classificadores de seqüências
Esta dissertação apresenta um arcabouço para implementação de algoritmos de inferência de gramáticas estocásticas. Este arcabouço inclui suporte de software para a geração automática de classificadores de seqüências. O objetivo final do sistema é ser usado no desenvolvimento de novos classificadores para seqüências genéticas
2002
Ariane Machado Lima de Oliveira
Automorfismos de grafos
Este trabalho descreve alguns métodos algébricos para o cálculo de grupos de automorfismos de grafos. Dois métodos são enfocados: a utilização da teoria de grupos de permutações, base do algoritmo de Luks, que determina, em tempo polinomial, o grupo de automorfismos de um grafo de grau limitado, e uma reformulação do problema em termos de extensões de corpos, que procura utilizar especializações para obter informações sobre grupos de automorfismos de grafos
Planejamento abdutivo no cálculo de eventos
Nesse trabalho, estabelecemos uma correspondência entre raciocínio abdutivo no cálculo de eventos e planejamento de ordem parcial. Para tanto, implementamos três sistemas de planejamento abdutivo baseado em cálculo de eventos (Abp, Sabp e Rabp) e três sistemas algorítmicos (de ordem parcial) correspondentes (Pop, Snlp e Tweak). Então, através de uma análise comparativa do comportamento desses sistemas, mostramos que planejadores (lógicos e algorítmicos) que implementam estratégias de planejamento correspondentes apresentam comportamentos idênticos (i.e., examinam o mesmo espaço de busca e apresentam praticamente a mesma eficiência). Também mostramos que, tanto para sistemas lógicos quanto algorítmicos, a eficiência de planejamento não depende apenas da política de proteção de submetas adotadas em cada um deles, mas também das características específicas do domínio de planejamento considerado
CCICLO: componente para cruzamento e integração de objetos classificados
A classificação de dados é uma das tarefas importantes realizadas pela mineração de dados. Entretanto, tal classificação não considera a necessidade da comparação automática entre diversas classificações de dados. Este trabalho apresenta um componente para descobrir as relações entre objetos classificados. Esse componente é uma forma de apoio ao processo de descoberta de conhecimento. Para tanto, tal componente oferece uma estrutura de dados para representação, em memória, dos dados gerados pelo processo de classificação, que inclui dados dos classificadores e dos objetos analisados. Além disso, para a manipulação da referida estrutura de dados em memória foi estendido um conjunto de operadores da álgebra relacional, para otimizar o cruzamento dos objetos classificados
2002
Luciano Vieira de Araújo