5 research outputs found

    Comparando o Desempenho de Implementações de Tabelas Hash Concorrentes em Haskell

    Get PDF
    Implementar um algoritmo de tabela hash concorrente que extraia desempenho está longe de ser uma tarefa computacional trivial. Neste artigo apresentamos sete diferentes implementações de tabelas hash em Haskell, explorando desde modelos de sincronização de baixo nível até os de mais alta abstração como memórias transacionais. Nos testes realizados a implementação usando a biblioteca STM Haskell de memória transacional foi a que apresentou melhor desempenho

    Implementação de um protocolo criptográfico baseado em REST em Haskell

    Get PDF
    Monografia (graduação)—Universidade de Brasília, Instituto de Exatas, Departamento de Ciência da Computação, 2014.Protocolos de segurança baseados em REST, como o OAuth e o OpenID, foram propostos para permitir mecanismos de autenticação e autorização distribuída em ambientes abertos, cujos usuários em potencial são geralmente desconhecidos com antecedência. No entanto, as instituições possuem também a necessidade de se comunicar umas com as outras em ambientes fechados, de modo que elas possam integrar automaticamente os seus processos de negócio. Neste trabalho, relata-se o uso de Haskell, uma linguagem de programação puramente funcional e estaticamente tipada, para a implementação de um protocolo criptográfico baseado em REST para ambientes fechados. Apesar do desenvolvimento experimental de Haskell, que dificulta o uso pragmático da linguagem (principalmente devido a inconsistências de bibliotecas e versões do compilador), os resultados sugerem que Haskell é uma opção interessante para o desenvolvimento de aplicações baseadas em REST em geral (mas, em especial, para o desenvolvimento de protocolos criptográficos), levando a uma baixa utilização de recursos e tempo de inicialização, pequeno esforço de desenvolvimento, alto nível de modularidade através de typeclasses, e maior segurança, devido ao sistema de tipos da linguagem. ________________________________________________________________________________ ABSTRACTREST-based security protocols, such as OAuth and OpenID, have been proposed to allow a form of distributed authentication and authorization mechanism target to open environments, whose potential users are usually unknown in advance. However, there also exists the need for institutions to communicate to each other within closed environments — so that they could automatically integrate their business processes. In this work, we report on the use of Haskell, a statically typed, purely functional programming language, to implement a REST-based cryptographic protocol for closed environments. Apart from the experimental development of Haskell, which hinders the pragmatic use of the language (mostly due to libraries and compiler versions’ inconsistencies), our findings suggest that Haskell is a compelling choice for developing REST-based applications in general (but in particular for the development of cryptographic protocols), leading to a small footprint and initialisation time, small development effort, extensive modularity through typeclasses, and improved safety thanks to the language’s type system

    DC4MT : uma abordagem orientada a dados para transformação de modelos

    Get PDF
    Orientador: Marcos Didonet Del FabroTese (doutorado) - Universidade Federal do Paraná, Setor de Ciências Exatas, Programa de Pós-Graduação em Informática. Defesa : Curitiba, 25/08/2020Inclui referências: p. 95-106Área de concentração: Ciência da ComputaçãoResumo: Transformações de Modelos são operações que recebem um conjunto de modelos como entrada e produzem um conjunto de modelos como saída, seguindo uma especificação. Há uma coleção diversificada de abordagens e ferramentas utilizadas para a especificação de diferentes tipos de transformações de modelos. A maioria dessas abordagens adota como estratégia a execução local e sequencial. No entanto, essas abordagens não estão totalmente aptas para processar modelos com grandes quantidades de elementos. VLMs (Very Large Models) são modelos que possuem milhões de elementos. Esses modelos estão presentes em domínios de aplicações como na indústria automotiva, modernização de sistemas legados, internet das coisas, redes sociais, entre outros domínios. Essas abordagens possuem lacunas para suportar o processamento desses VLMs. Por exemplo, para possibilitar a execução das transformações de modelos, considerando a escala do problema ou para melhoria de desempenho. Nesta tese é proposta a Dc4MT, uma abordagem para suportar transformações de VLMs com a aplicação e adaptação de técnicas relacionadas à distribuição de dados. A Dc4MT é uma abordagem Orientada a Dados (Dc - Data-centric) para ser aplicada no domínio da Engenharia Dirigida por Modelos (MDE - Model Driven Engineering). A abordagem é especificada, utilizando um framework de processamento distribuído, e define um conjunto de operações para a fragmentação, extração e transformação de modelos. A fragmentação é uma operação que divide os modelos de entrada (em formatos XMI ou JSON) em fragmentos, de modo que esses fragmentos possam ser distribuídos e processados de maneira paralela/distribuída. A extração é uma operação que processa os fragmentos do modelo de entrada e os traduz em um grafo acíclico, atribuindo um novo domínio de modelagem a esses fragmentos. A transformação de modelos na abordagem Dc4MT é uma operação que transforma modelos de entrada em modelos de saída (M2M) a partir do resultado da extração. As execuções de transformação podem ser em modo paralelo ou distribuído, com ou sem a intervenção no método de particionamento do framework disponível para melhorar o desempenho. Um conjunto de modelos de entrada (datasets) e os ambientes local (transformações paralelas) e distribuído (transformações distribuídas) são utilizados nos experimentos para validar a abordagem Dc4MT, sob os aspectos de factibilidade, desempenho e de escalabilidade. Os resultados desses experimentos, mostram que as operações de fragmentação e extração de modelos favorecem a transformação escalável de VLMs, reconstruindo a estrutura dos fragmentos em um grafo. A operação de extração é executada em modo paralelo/distribuído. Além disso, os aspectos como a imutabilidade, lazy-evaluate e o paralelismo implícito presentes na Dc4MT, permitem o processamento paralelo/distribuído de regras de transformação em uma plataforma escalável. Palavras-chave: Abordagem Orientada a Dados. Engenharia Dirigida por Modelos. Transformação Paralela de Modelos. Transformação Distribuída de Modelos.Abstract: Model Transformations are operations that receive a set of source models as input and produce a set of target models as output, following a specification. There is a variety of approaches and tools used for the specification of different types of model transformation. Most of these approaches adopt for model transformation the local and sequential execution strategy. However, these approaches not fully adapted for processing models with large amounts of elements. VLMs (Very Large Models) are models with millions of elements. These models are present in application domains such as the automotive industry, modernization of legacy systems, internet of things, social networks, among others. These approaches have gaps to support the processing of these increasingly larger models. For example, to enable model transformations, considering the scale of the problem or to improve performance. In this thesis, the Dc4MT is proposed such as an approach to support transformation of VLMs, applying and adapting distribution techniques of data. The Dc4MT is a Data-centric (Dc) approach for applying in Model Driven Engineering (MDE). The approach will be specified using a distributed processing framework, and defines a set of operations for fragmentation, extraction, and transformation of models. The fragmentation is an operation that splits the input models (in the XMI or JSON formats) in a way that the fragments can be processed in parallel/distributed. The extraction is an operation that processes the fragments of the input model in parallel and translates them to an acyclic graph, assigning a new modeling domain to these fragments. The model transformation in Dc4MT is an operation that transforms input models in output models (M2M) from the results of the extraction. The transformation executions can be parallel or distributed with ou without the intervention in the framework partitioning method to improve the performance. A set of input models (datasets) and the local (parallel transformations) and distributed (distributed transformations) environments are used in the experiments to validate the Dc4MT approach, in terms of feasibility, performance, and scalability. The results of the experiments show that the model fragmentation and extraction operations favor the scalable transformation of models, reconstructing the structure of the fragments in a graph. The extraction operation is executed on parallel/distributed way. Moreover, aspects such as immutability, lazy-evaluation, and implicit parallelism present in Dc4MT, allowing the parallel/distributed processing of transformation rules on a scalable platform. Keywords: Data-centric Approach. Model Driven Engineering. Parallel Model Transformation. Distributed Model Transformation

    Comparando o Desempenho de Implementações de Tabelas Hash Concorrentes em Haskell

    No full text

    Análise e aplicação da tecnologia blockchain na gestão de diplomas do ensino superior

    Get PDF
    As certificações académicas permitem reconhecer habilidades e conhecimentos adquiridos, e impactam diretamente de forma positiva na vida social das pessoas. Os diplomas emitidos nos moldes tradicionais, em papel, podem ser sujeitos a falsificação ou a impossibilidade de verificação devido à indisponibilidade da entidade emissora. Recentemente os modelos digitais de certificações académicas avançaram em questões importantes como a sua emissão, mas ainda podem falhar na verificação e na partilha entre partes, devido a oferecerem arquiteturas centralizadas. Motivados pelos bons resultados obtidos em outras áreas, várias iniciativas de certificados digitais propuseram a utilização da tecnologia blockchain. Este trabalho consiste em identificar, analisar e testar algumas das ferramentas baseadas em blockchain que estão emergindo, no âmbito da criação de certificados universitários mais eficientes, confiáveis e independentes. Será implementado um protótipo capaz de emitir, verificar e partilhar certificados; é também avaliado o uso da tecnologia e são apresentados os resultados dessa experiência. Além disso, o trabalho apresenta uma visão sobre o estado atual de desenvolvimento e maturidade em que tais ferramentas se encontram, relatando os avanços e as limitações encontradas, e expõe questões que ainda precisam ser resolvidas.Academic certifications make it possible to recognize acquired skills and knowledge and have a direct positive impact on people’s social lives. Diplomas issued in the traditional way, on paper, may be subject to forgery or impossibility of verification due to the unavailability of the issuing entity. Recently, digital models of academic certifications have advanced on important issues such as their issuance, but may still fail to verify and share between parties, due to their centralized architectures. Motivated by the good results obtained in other areas, several digital certificate initiatives have proposed the use of blockchain technology. This work consists of identifying, analyzing, and testing some of the blockchain-based tools that are emerging, within the scope of creating more efficient, reliable, and independent university certificates. A prototype capable of issuing, verifying, and sharing certificates will be implemented; the use of technology is also evaluated and the results of this experiment are presented. In addition, the work presents an overview of the current state of the art and maturity of these tools, reporting the advances and limitations encountered and exposes issues that still need to be resolved
    corecore