962 resultados para Winsock API
Resumo:
Service discovery in large scale, open distributed systems is difficult because of the need to filter out services suitable to the task at hand from a potentially huge pool of possibilities. Semantic descriptions have been advocated as the key to expressive service discovery, but the most commonly used service descriptions and registry protocols do not support such descriptions in a general manner. In this paper, we present a protocol, its implementation and an API for registering semantic service descriptions and other task/user-specific metadata, and for discovering services according to these. Our approach is based on a mechanism for attaching structured and unstructured metadata, which we show to be applicable to multiple registry technologies. The result is an extremely flexible service registry that can be the basis of a sophisticated semantically-enhanced service discovery engine, an essential component of a Semantic Grid.
Resumo:
Service discovery in large scale, open distributed systems is difficult because of the need to filter out services suitable to the task at hand from a potentially huge pool of possibilities. Semantic descriptions have been advocated as the key to expressive service discovery, but the most commonly used service descriptions and registry protocols do not support such descriptions in a general manner. In this paper, we present a protocol, its implementation and an API for registering semantic service descriptions and other task/user-specific metadata, and for discovering services according to these. Our approach is based on a mechanism for attaching structured and unstructured metadata, which we show to be applicable to multiple registry technologies. The result is an extremely flexible service registry that can be the basis of a sophisticated semantically-enhanced service discovery engine, an essential component of a Semantic Grid.
Resumo:
Running hydrodynamic models interactively allows both visual exploration and change of model state during simulation. One of the main characteristics of an interactive model is that it should provide immediate feedback to the user, for example respond to changes in model state or view settings. For this reason, such features are usually only available for models with a relatively small number of computational cells, which are used mainly for demonstration and educational purposes. It would be useful if interactive modeling would also work for models typically used in consultancy projects involving large scale simulations. This results in a number of technical challenges related to the combination of the model itself and the visualisation tools (scalability, implementation of an appropriate API for control and access to the internal state). While model parallelisation is increasingly addressed by the environmental modeling community, little effort has been spent on developing a high-performance interactive environment. What can we learn from other high-end visualisation domains such as 3D animation, gaming, virtual globes (Autodesk 3ds Max, Second Life, Google Earth) that also focus on efficient interaction with 3D environments? In these domains high efficiency is usually achieved by the use of computer graphics algorithms such as surface simplification depending on current view, distance to objects, and efficient caching of the aggregated representation of object meshes. We investigate how these algorithms can be re-used in the context of interactive hydrodynamic modeling without significant changes to the model code and allowing model operation on both multi-core CPU personal computers and high-performance computer clusters.
Resumo:
Este trabalho apresenta a proposta de um editor de diagramas hierárquico e colaborativo. Este editor tem por objetivo permitir a especificação colaborativa de circuitos através de representações gráficas. O Blade (Block And Diagram Editor), como foi chamado, permite especificações em nível lógico, usando esquemas lógicos simples, bem como esquemas hierárquicos. Ao final da montagem do circuito, a ferramenta gera uma descrição textual do sistema num formato netlist padrão. A fim de permitir especificações em diferentes níveis de abstração, o editor deve ser estendido a outras formas de diagramas, portanto seu modelo de dados deve ter flexibilidade a fim de facilitar futuras extensões. O Blade foi implementado em Java para ser inserido no Cave, um ambiente distribuído de apoio ao projeto de circuitos integrados, através do qual a ferramenta pode ser invocada e acessada remotamente. O Cave disponibiliza um serviço de colaboração que foi incorporado na ferramenta e através do qual o editor suporta o trabalho cooperativo, permitindo que os projetistas compartilhem dados de projeto, troquem mensagens de texto e, de forma colaborativa, construam uma representação gráfica do sistema. Objetivando fundamentar a proposta da nova ferramenta, é apresentado um estudo sobre ferramentas gráficas para especificação de sistemas, mais especificamente sobre editores de esquemáticos. A partir dessa revisão, do estudo do ambiente Cave e da metodologia de colaboração a ser suportada, fez-se a especificação do editor, a partir da qual implementou-se o protótipo do Blade. Além do editor, este trabalho contribuiu para a construção de uma API, um conjunto de classes Java que será disponibilizado no Cave e poderá ser utilizado no desenvolvimento de novas ferramentas. Foram realizados estudos sobre técnicas de projeto orientado a objeto, incluindo arquiteturas de software reutilizáveis e padrões de projeto de software, que foram utilizados na modelagem e na implementação da ferramenta, a fim de garantir a flexibilidade do editor e a reusabilidade de suas classes. Este trabalho também contribui com um estudo de modelagem de primitivas de projeto de sistemas. No modelo orientado a objetos utilizado no editor, podem ser encontradas construções muito utilizadas em diferentes ferramentas de projeto de sistemas, tais como hierarquia de projeto e instanciação de componentes e que, portanto, podem ser reutilizadas para a modelagem de novas ferramentas.
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:
Este trabalho realiza um estudo sobre a criação de sistemas tempo-real usando orientação a objetos, com enfoque no mapeamento de especificações para linguagens de programação. O paradigma de orientação a objetos tem sido usado nas diferentes fases relacionadas com o desenvolvimento de sistemas tempo-real, variando desde a modelagem até o ambiente de programação e execução, mas atualmente estas iniciativas ainda focam etapas isoladas do ciclo de desenvolvimento. O objetivo deste trabalho é o de preencher esta lacuna, propondo um mapeamento entre uma metodologia ou ferramenta de análise e projeto de sistemas tempo-real orientados a objetos e uma linguagem ou ambiente de desenvolvimento baseado no paradigma de orientação a objetos que possua suporte para atender às restrições temporais especificadas. O mapeamento proposto foi desenvolvido utilizando estudos de caso clássicos em aplicações tempo-real que foram baseados em dois recentes padrões. O primeiro é o emergente padrão Real-Time UML, que visa realizar a especificação de requisitos temporais utilizando diagramas UML com extensões que os representem. O outro padrão é o Real-Time Specification for Java, que consiste de uma interface de programação (API) para desenvolvimento de aplicações tempo-real com a linguagem Java. O relacionamento entre stereotypes e tags usados para representar restrições temporais em diagramas UML e o código Java correspondente é explicado e um sumário da estratégia de mapeamento é discutido.
Resumo:
Neste trabalho apresenta-se um método de desenvolvimento integrado baseado no paradigma de orientação a objetos, que visa abordar todo o ciclo de desenvolvimento de uma aplicação tempo real. Na fase de especificação o método proposto baseia-se no uso de restrições temporais padronizadas pelo perfil da UML-TR, sendo que uma alternativa de mapeamento destas restrições para o nível de programação é apresentada. Este mapeamento serve para guiar a fase de projeto, onde utilizou-se como alvo a interface de programação orientada a objetos denominada TAFT-API, a qual foi projetada para atuar junto ao ambiente de execução desenvolvido no âmbito desta tese. Esta API é baseada na especificação padronizada para o Java-TR. Este trabalho também discute o ambiente de execução para aplicações tempo real desenvolvido. Este ambiente faz uso da política de escalonamento tolerante a falhas denominada TAFT (Time-Aware Fault- Tolerant). O presente trabalho apresenta uma estratégia eficiente para a implementação dos conceitos presentes no escalonador TAFT, que garante o atendimento a todos os deadlines mesmo em situações de sobrecarga transiente. A estratégia elaborada combina algoritmos baseados no Earliest Deadline, sendo que um escalonador de dois níveis é utilizado para suportar o escalonamento combinado das entidades envolvidas. Adicionalmente, também se apresenta uma alternativa de validação dos requisitos temporais especificados. Esta alternativa sugere o uso de uma ferramenta que permite uma análise qualitativa dos dados a partir de informações obtidas através de monitoração da aplicação. Um estudo de caso baseado em uma aplicação real é usado para demonstrar o uso da metodologia proposta.
Resumo:
O uso da Internet como ferramenta de ensino tem se tornado cada vez mais freqüente. A recente popularização da Internet vem permitindo o desenvolvimento de ambientes de ensino-aprendizagem baseados na Web. Os principais recursos explorados para fins educacionais são hipertexto e hipermídia, que proporcionam uma grande gama de elementos para o instrutor que pretende utilizar a WWW. Este trabalho está inserido no desenvolvimento do ambiente AdaptWeb (Ambiente de Ensino e Aprendizagem Adaptativo para a Web), que visa o desenvolvimento de um ambiente de educação a distância. A arquitetura do ambiente é composta por quatro módulos entre eles o módulo de Armazenamento de dados que armazena todos os dados provenientes da fase de Autoria utilizando XML (Extensible Markup Language). Na etapa de Autoria é feita a inserção de todos os dados relativos a disciplina que deseja disponibilizar, estes dados serão armazenados temporariamente em uma representação matricial em memória. A entrada de dados do módulo de Armazenamento de Dados é esta representação matricial que serve então como base para a geração dos arquivos XML, que são utilizados nas demais etapas do ambiente. Para a validação dos arquivos XML foram desenvolvidas DTD (Document Type Definition) e também foi implementado um analisador de documentos XML, utilizando a API (Application Programming Interface) DOM (Document Object Model), para efetuar a validação sintática destes documentos. Para conversão da representação matricial em memória foi especificado e implementado um algoritmo que funciona em conformidade com as DTD especificadas e com a sintaxe da linguagem XML.
Resumo:
O presente trabalho expõe uma análise sobre duas arquiteturas disponíveis para o desenvolvimento de sistemas que utilizam a tecnologia de workflow. Estas arquiteturas são: a Arquitetura Baseada em Modelagem e Execução em um ùnico Ambiente e a Arquitetura Baseada em Modelagem e Execução e Ambientes Distintos. São expostas: características, vantagens e desvantagens destas arquiteturas. A Aquitetura Baseada em Modelagem e Expressões em Ambientes Distintos é analisada em seu principal ponto negativo: a falta de independência existente entre as apliciações e os processos modelados, bem como são discutidos os problemas que esta falta de independência gera no desenvolvimemto e manutenção das aplicações. Uma alternativa à dependência entre o motor de workflow (engine) e as aplicações é proposta para a Arquitetura Baseada na Modelagem e Execução em Ambientes Distintos. Esta proposta é baseada em um modelo que consiste de uma Camada Intermediária, armazenada em um banco de dados relacional, capaz de extender as funcionalidades do motor de workflow. Este banco de dados armazena toda a estrrutura dos processos modelados, sendo responsável pela função que atualmente é repassada às aplicações: o controle da lógica dos processos. Estes trabalho produziu de uma Camada Intermediária, dividida em Camada de Independência (suportando a independência) e Camada de Integrgação (responsável pela comunicação com o motor de workflow). O estudo apresentada as estruturas do banco de dados, as funções disponibilizadas pela API da Camada Intermediária e um pequeno protótipo para dedmonstrar a arquitetura proposta.
Resumo:
Trata o presente objeto de pesquisa da proposta de desenvolvimento de um modelo de ambiente de avaliação remota para Ensino à Distância, baseado no paradigma de Orientação a Objetos e elaborado com base na tecnologia de sistemas multiagentes. Para a validação do modelo, foi desenvolvido um protótipo denominado Javal, capaz de permitir a aplicação e monitoração da realização de avaliações e testes à distância. As soluções comerciais disponíveis no mercado, como Question Mark Perception, Aula Net e WebCT possuem código fechado e custo elevado, além de serem baseadas em soluções proprietárias (QML - Question Mark, ASP - Microsoft, etc.), necessitando de plataforma específica para instalação de servidores e clientes. Quanto ao aspecto funcional, estas ferramentas possuem a base de sua lógica de funcionamento em execução de scripts no servidor. Para cada item de uma avaliação a ser respondido, torna-se necessária a efetivação de uma nova conexão. O modelo proposto traz toda a funcionalidade do sistema para o ambiente do aluno, tornando necessária apenas uma conexão para a busca da avaliação e outra para o envio dos resultados, reduzindo o tráfego na rede. Quanto ao aspecto pedagógico, estas ferramentas limitam-se apenas a apresentar uma avaliação somativa do aluno, geração de graus e estatísticas, não se preocupando em monitorar seus aspectos comportamentais, capazes de apontar indícios de possíveis falhas no aprendizado ou na elaboração da avaliação. A proposta do modelo é da apresentação de um ambiente orientado a objetos, capaz de distribuir elementos representativos das avaliações existentes no modelo tradicional de ensino, incorporando recursos capazes de possibilitar a monitoração de aspectos comportamentais do aluno, pelo emprego de agentes monitores ou tutores, que podem acompanhar o aluno e auxiliá-lo em situações de dificuldade. O modelo proposto por este trabalho envolve as avaliações formativas e somativas, aplicadas de forma assíncrona e individual. Como sugestão para trabalhos futuros, o modelo propõe o desenvolvimento de classes capazes de implementar a aplicação de avaliações síncronas e em grupo. A validação do modelo proposto foi realizado através do desenvolvimento de um protótipo que, com base no desenvolvimento de uma API Javal específica, implementa os principais tipos de questões disponíveis no sistema de ensino tradicional, além de agentes tutores de avaliação.
Resumo:
Este trabalho apresenta um protótipo de uma máquina de workflow, de uso geral, implementado em plataforma de software livre. O protótipo utiliza um servidor web com PHP, em sistema operacional Linux, alguns programas desenvolvidos em C e o banco de dados MySql. O projeto CEMT demanda o uso da tecnologia de workflow, com o objetivo de controlar a execução de cursos a distância. Antes de ser iniciado o desenvolvimento do protótipo, foi feito um estudo sobre algumas máquinas de workflow existentes, com o objetivo de encontrar alguma que tivesse licença livre e pudesse ser utilizada no projeto CEMT, ou colher subsídios para o desenvolvimento de uma máquina de workflow própria. Foram testadas duas máquinas de workflow de licença livre (Openflow e OFBIZ), uma máquina com cópia de demonstração (Reactor) e foram consultadas as documentações fornecidas pelos fabricantes. Além disso foi consultada também a documentação do Domino Workflow, que não disponibilizou cópia de avaliação e cuja licença não é livre. Um dos requisitos do protótipo é a compatibilidade com os padrões de interface recomendados pela WfMC. Esses padrões permitem a interoperabilidade entre softwares de workflow. O primeiro benefício da adoção desses padrões é a interação com o editor gráfico de workflow AW (Amaya Workflow), desenvolvido no Instituto de Informática da UFRGS. Este editor gera definições de processos de workflow no formato da linguagem XPDL (XML Process Definition Language), que alimentam a máquina de workflow. O esquema XPDL foi traduzido para um esquema de banco de dados relacional e foi desenvolvido um compilador que lê um arquivo no formato XPDL e gera comandos SQL de inserção das informações desse arquivo no banco de dados. Foi desenvolvida uma interface web para demonstrar o funcionamento do protótipo. A API definida na Interface 2 da WfMC foi implementada parcialmente. Essa API permite o desenvolvimento independente de outras interfaces de usuário. Foram propostas algumas extensões à Interface 1 e modificações na definição de estados recomendada pela Interface 2 da WfMC. Com isso foi possível aumentar o controle sobre a execução das instâncias de workflow. Foram incluídas as restrições de data e possibilidade de bloqueio na execução de instâncias de atividades. Outras extensões possibilitam um serviço de notificações e atividades em grupo e oferecem novas possibilidades de alocação de atividades. O funcionamento básico do protótipo é descrito e inclui as funcionalidades de carga da definição de processo, instanciação de processo, visualização da lista de trabalho e execução das atividades, entre outras.
Resumo:
O mundo moderno vem exigindo cada vez mais das pessoas no aspecto profissional. A exigência de capacitação profissional é uma realidade que obriga as pessoas a uma constante atualização. Neste contexto, a educação a distancia se mostra uma importante via de disseminação de conhecimento. Este trabalho apresenta um agente de Perfil do Usuário inserido no contexto do projeto PortEdu – Portal de Educação, projeto que visa abrigar ambientes de ensino na Web. Um dos objetivos do projeto PortEdu é fornecer um serviço de recuperação de informação aos ambientes ancorados, guiado pelo Agente Perfil do Usuário, tendo como finalidade oferecer informações contextualizadas a um problema específico do usuário (aluno), com a intenção de auxiliá-lo em seu aprendizado. Durante a utilização de ambientes de educação a distância, os alunos utilizam ferramentas de recuperação de informação na busca de soluções para as suas dúvidas. Mas, a busca de informação na Internet, utilizando as ferramentas existentes, nem sempre é uma tarefa simples, pois exige esforço na construção de termos de busca eficientes ou mantém o usuário percorrendo longas listas de resultados. No desenvolvimento deste serviço, no PortEdu, procuramos minimizar este tipo de esforço. Neste trabalho são descritas, primeiramente, as áreas envolvidas na pesquisa, mostrando como elas foram utilizadas na construção do Agente de Perfil do Usuário. Também é realizada uma descrição da área de inteligência artificial, dos conceitos de agente e Educação a Distancia. Pretende-se mostrar aqui as propriedades que o Agente de Perfil do Usuário possui Na seqüência, são apresentadas as soluções tecnológicas utilizadas no projeto, tais como: AMPLIA (ambiente de ensino ancorado no PortEdu), PMA3, FIPA e a API Fácil. É descrito o modo como estas tecnologias interagem no âmbito do PortEdu. O problema da recuperação de informação na Web é discutido nesta pesquisa e são apresentados três trabalhos relacionados que abordam este problema. Também é realizada uma comparação entre estes trabalhos e o PortEdu. Por fim, este trabalho apresenta uma solução encontrada para resolver o problema de recuperação de informação na Web utilizando um protótipo do PortEdu. Esta pesquisa está inserida na área de Informática na Educação.
Resumo:
Apesar da vida em fadiga de risers flexíveis ser de grande importância na explotação “off-shore”, os dados disponíveis são bastante restritos. A interação entre as suas várias camadas, as inúmeras combinações realizadas entre elas para se obter diferentes características e os recentes avanços em termos de materiais, nos obrigam a estudá-los constantemente. Este trabalho tinha como objetivo principal a construção de um equipamento para possibilitar o estudo da vida em fadiga de risers, através de movimentos de tração combinada com flexão, referentes ao teste “a” da classe II da norma API 17B, bem como todos os outros testes da classe I da referida norma. Foram projetadas a estrutura e todos os demais componentes, que posteriormente foram redimensionados pelos resultados obtidos em simulações numéricas (elementos finitos). Posteriormente, de posse de todos os componentes, realizou-se a montagem do equipamento, seguida de um teste final, que foi acompanhado por uma análise extensométrica dos principais pontos da estrutura. A conclusão básica deste trabalho foi obtida através da comparação das análises por elementos finitos e extensométrica, onde foi constatado que o equipamento estava apto a entrar em operação para a realização de ensaios estáticos ou dinâmicos, observando-se apenas algumas restrições comentadas.
Resumo:
A crescente complexidade dos sistemas tempo-real embarcados demanda novas metodologias e ferramentas para gerenciar os problemas de projeto, análise, integração e validação de sistemas complexos. Este trabalho aborda o tema co-projeto de sistemas tempo-real embarcados, propondo estratégias para a integração das fases iniciais de modelagem de um sistema tempo-real embarcado com as fases subseqüentes do projeto, como a implementação do software e do hardware. É proposto um framework orientado a objetos que permite a criação de modelos orientados a objetos de sistemas tempo-real embarcados, utilizando conceitos temporais similares aos propostos em UML-RT (ou mais especificamente no UML Profile for Schedulability, Performance and Time). É proposta uma estratégia de mapeamento dos requisitos temporais dos diagramas UMLRT para uma interface de programação (API) baseada na “Especificação Tempo-Real para Java” (Real-Time Specification for Java ou RTSJ), a qual pode ser executada tanto em software – em programas RTSJ executando em máquinas virtuais Java (JVM) tempo-real – ou em hardware – em processadores Java Tempo-Real. Para permitir o mapeamento para hardware são propostas extensões tempo-real ao processador Java FemtoJava, desenvolvido no âmbito de dissertações de mestrado e projetos de pesquisa no PPGC, criando-se um novo processador tempo-real denominado de RT-FemtoJava. Dentre as extensões propostas ao processador FemtoJava destaca-se a inclusão de um relógio de tempo-real e o suporte a instruções para alocação e manipulação de objetos. Os conceitos propostos foram validados no âmbito de estudos de caso, sendo os resultados obtidos descritos na presente dissertação.
Resumo:
As pessoas que gostam de comprar videojogos e livros, ao final de algum tempo, verificam que têm muitos destes itens armazenados e que já não os utilizam. Se estas pessoas não tiverem o intuito de criar uma coleção desses itens, irão, provavelmente se desfazer deles, por exemplo deitando-os fora. Neste contexto, apresenta-se uma aplicação para dispositivos móveis que possuam o sistema operativo Android, designada de XpressTrades. Esta aplicação visa resolver o problema descrito acima, tornando as trocas de jogos e de livros mais fácil, ajudando os seus utilizadores a reutilizarem os seus itens e a os utilizarem como moeda de troca. Juntamente com esta aplicação foi desenvolvida uma Web API, utilizando a framework ASP.NET, a qual é utilizada pela aplicação para esta poder funcionar. Embora este projeto de mestrado se tenha focado no desenvolvimento de uma aplicação especificamente para a troca de jogos e de livros, a aplicação foi desenhada e desenvolvida de forma modular e está preparada para ser estendida à troca de qualquer tipo de itens. A aplicação XpressTrades reúne diversas particularidades que tornarão as trocas de itens mais rápidas e eficientes. Algumas delas são: a apresentação da lista de proprietários ordenados por distância em relação ao utilizador e a apresentação de uma lista de itens recomendados com base no histórico de visualizações de itens realizadas pelo utilizador, ou seja, com base nos seus interesses. Relativamente à metodologia utilizada no desenvolvimento deste projeto, dado que a ideia surgiu do autor deste trabalho, recorreu-se primeiramente a inquéritos para se averiguar se as pessoas realmente revelavam interesse neste projeto e investigou-se também a existência de aplicações semelhantes. Seguidamente, utilizou-se a técnica de brainstorming para gerar as ideias e criou-se protótipos de baixa fidelidade para testar a interface de utilizador. Na fase de implementação, seguiu-se o seguinte ciclo para cada funcionalidade: prototipagem, testes com os utilizadores e correções dos erros detetados nos testes.