3 resultados para JNI(Java Native Interface)

em Lume - Repositório Digital da Universidade Federal do Rio Grande do Sul


Relevância:

30.00% 30.00%

Publicador:

Resumo:

Este trabalho busca a implementação da replicação de objetos através da linguagem Java e de seu sistema de invocação remota de métodos (Remote Method Invocation - RMI). A partir deste sistema, define-se uma classe de replicação - a máquina de replicação – onde a implementação de grupos de objetos é estruturada de acordo com a arquitetura cliente/servidor, sendo o cliente o representante (a interface) de um grupo de objetos e os servidores representam os demais componentes do grupo. A classe de replicação atende a uma necessidade importante dos sistemas distribuídos - o desenvolvimento de aplicações tolerantes a falhas. Fundamentalmente, a tolerância a falhas é obtida por redundância e, no caso de mecanismos de tolerância a falhas por software, esta redundância significa basicamente replicação de dados, processos ou objetos. A tolerância a falhas para tal tipo de sistema é importante para garantir a transparência do mesmo, visto que, assim como um sistema distribuído pode auxiliar muito o usuário pelas facilidades oferecidas, o não cumprimento de suas atividades de acordo com o esperado pode, em algumas situações, causar-lhe transtornos e erros irrecuperáveis nas aplicações. Finalmente, como principal contribuição, este trabalho descreve e implementa a solução completa para a construção de uma biblioteca de classes que oferece a replicação de forma totalmente transparente para o usuário.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

A popularização da Internet e o crescimento da educação à distância tornaram possível a criação de softwares e cursos à distância, disponíveis na WWW. Atualmente, a Inteligência Artificial (IA) vem sendo utilizada para aumentar a capacidade de ambientes de educação à distância, diminuindo a desistência pela falta de estímulos externos e de interação entre colegas e professores. Este trabalho encontra-se inserido no ambiente colaborativo suportado por computador, definido no projeto “Uma Proposta de Modelo Computacional de Aprendizagem à Distância Baseada na Concepção Sócio-Interacionista de Vygotsky” chamado MACES (Multiagent Architecture for an Collaborative Educational System). Sua principal proposta, como parte do projeto do grupo, é desenvolver e implementar a interface animada do personagem para os agentes pedagógicos animados Colaborativo e Mediador que operam no ambiente de aprendizado colaborativo proposto pelo grupo. O personagem desenvolvido chama-se PAT (Pedagogical and Affective Tutor). A interface do personagem foi desenvolvida em Java, JavaScript e usa o Microsoft Agent para a movimentação. O Resin 2.1.6 (semelhante ao Tomcat que também foi usado de teste) é o compilador de servlet usado na execução de Java Servlet’s e tecnologias jsp – que monta páginas HTML dinamicamente. Esta montagem é feita no servidor e enviada para o browser do usuário. Para definir a aparência do personagem foram feitas entrevistas com pedagogas, psicólogas, psicopedagogas e idéias tiradas de entrevistas informais com profissionais que trabalham com desenho industrial, propaganda, cartoon e desenho animado. A PAT faz parte da interface do MACES e promove a comunicação entre esse ambiente e o usuário. Portanto, acredita-se que a PAT e os recursos da Inteligência artificial poderão aumentar a capacidade de ambientes de educação à distância, tornando-os mais agradáveis, assim como diminuir a desistência pela falta de estímulos externos e de interação com colegas e professores.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Esse trabalho de dissertação está incluído no contexto das pesquisas realizadas no Grupo de Processamento Paralelo e Distribuído da UFRGS. Ele aborda as áreas da computação de alto desempenho, interfaces simples de programação e de sistemas de interconexão de redes velozes. A máquina paralela formada por agregados (clusters) tem se destacado por apresentar os recursos computacionais necessários às aplicações intensivas que necessitam de alto desempenho. Referente a interfaces de programação, Java tem se mostrado uma boa opção para a escrita de aplicações paralelas por oferecer os sistemas de RMI e de soquetes que realizam comunicação entre dois computadores, além de todas as facilidades da orientação a objetos. Na área a respeito de interconexão de rede velozes está emergindo como uma tentativa de padronização a nova tecnologia Infiniband. Ela proporciona uma baixa latência de comunicação e uma alta vazão de dados, além de uma série de vantagens implementadas diretamente no hardware. É neste contexto que se desenvolve o presente trabalho de dissertação de mestrado. O seu tema principal é o sistema Aldeia que reimplementa a interface bastante conhecida de soquetes Java para realizar comunicação assíncrona em agregados formados por redes de sistema. Em especial, o seu foco é redes configuradas com equipamentos Infiniband. O Aldeia objetiva assim preencher a lacuna de desempenho do sistema padrão de soquetes Java, que além de usar TCP/IP possui um caráter síncrono. Além de Infiniband, o Aldeia também procura usufruir dos avanços já realizados na biblioteca DECK, desenvolvida no GPPD da UFRGS. Com a sua adoção, é possível realizar comunicação com uma interface Java sobre redes Myrinet, SCI, além de TCP/IP. Somada a essa vantagem, a utilização do DECK também proporciona a propriedade de geração de rastros para a depuração de programas paralelos escritos com o Aldeia. Uma das grandes vantagens do Aldeia está na sua capacidade de transmitir dados assincronamente. Usando essa técnica, cálculos da aplicação podem ser realizados concorrentemente com as operações pela rede. Por fim, os canais de dados do Aldeia substituem perfeitamente aqueles utilizados para a serialização de objetos. Nesse mesmo caminho, o Aldeia pode ser integrado à sistemas que utilizem a implementação de soquetes Java, agora para operar sobre redes de alta velocidade. Palavras-chave: Arquitetura Infiniband, agregado de computadores, linguagem de programação Java, alto desempenho, interface de programação.