Projetos

Um Ambiente como Serviço para Gerenciamento de Implantação Ágil de Aplicações na Nuvem [2012 - 2014]

Uma das questões mais importantes e atuais na engenharia de software é a disponibilização de software como serviço, do inglês SaaS - Software as a Service, o que parece ser um dos fatores chave para lidar com os custos, disponibilidade e qualidade desses sistemas. Para cumprir estes objetivos, é necessário desenvolver sistemas de forma ágil, flexível e que possuam certo grau de autonomia em relação a manutenção e gerenciamento. Em particular, uma questão importante é estabelecer métodos e definir ferramentas que possuam as principais abordagens, os casos de fracasso e, principalmente, as demandas atuais para a indústria de software: Ambientes como Serviço, do inglês EaaS - Environment-as-a-Service. Neste contexto, este projeto se propõe a investigar a utilização de sistemas autônomos de gerenciamento de bancos de dados em ambientes orientados a serviço e propor modelos, técnicas e ferramentas que permitam ampliar as características autônomas nesses ambientes na computação em nuvem (Edital FACEPE 11/2011, número IBPG-0499-1.03/11, R$86.400,00).

Uso de DSL Como Abordagem Para Agilizar o Desenvolvimento e Implantação de Sistemas em Ambientes de Cloud Computing [2012 - 2014]

A recente incursão de grandes empresas como Amazon, Google, IBM, Microsoft, entre outras na plataforma da Cloud Computing nos leva a um cenário onde as empresas não são mais obrigadas a possuir uma conjunto mínimo de infra-estrutura e aplicativos próprios. Cloud computing, ou computação nas nuvens, é um modelo que permite acesso ubíquo, conveniente e sob demanda, para a rede ou a um pool de recursos computacionais (rede, armazenamento, servidor, aplicações, serviços) que podem ser rapidamente provisionados e disponibilizados com um esforço mínimo de gerenciamento do provedor de serviços. Falhas na manutenção da implantação das aplicações pode levar a um aumento considerável nos custos e tempo de execução do projeto, além de causar a degradação da qualidade do software. Neste contexto, o objetivo deste projeto de pesquisa é investigar e definir uma abordagem para apoiar o desenvolvimento e implantação de aplicações em ambientes de cloud computing, reduzindo os riscos, custos e aumentando a possibilidade de sucesso em projetos de desenvolvimento de software baseados na plataforma de Cloud Computing. (Edital FACEPE 11/2011, número IBPG-0483-1.03/11, R$28.80,00).

EUBrazilOpenBio: EU-Brazil Open Data and Cloud Computing e-Infrastructure for Biodiversity [2011 - 2013]

Um projeto colaborativo de 2 anos que irá lançar as bases de uma infra-estrutura de acesso livre a dados, permitindo que os parceiros do Brasil e da União Europeia consigam detectar padrões e tendências de mudanças na biodiversidade. Essa e-infraestrutura de dados, ferramentas e serviços resultará da federação e integração das principais iniciativas de infraestruturas de dados, nuvens e grids da Europa e do Brasil, focadas no domínio da biodiversidade e taxonomia. A infraestrutura EUBrazilOpenBio e a disponibilização aberta de seus recursos viabilizará uma gama de aplicações em ambientes interdisciplinares de pesquisa virtual de alta relação custo-benefício, abrindo caminhos para a sua adoção e uso em larga escala pela comunidade científica mundial. O objetivo do projeto é realizar dois estudos de caso com foco em: (1) integração de taxonomias regionais e globais; e (2) usabilidade de dados de ocorrência de espécies e modelagem de nicho ecológico. A realização destes estudos de caso envolve a avaliação de mecanismos de Interoperabilidade das infraestruturas existentes: hardware e facilidades computacionais, portais e plataformas, infraestruturas de dados e conhecimento científicos. Contrato número ICT-288754, financiamento total: EUROPE €1.253.555,00 ; BRAZIL R$ 2.299.939,13. Web site: http://www.eubrazilopenbio.eu.

Uma Abordagem para Rastreabilidade de Variabilidades entre Requisitos e Arquiteturas de Software Orientadas a Serviços [2011 - 2013]

A recente incursão de grandes empresas como Amazon, Google, IBM, Microsoft, entre outras na plataforma da Cloud Computing nos leva a um cenário onde as empresas não são mais obrigadas a possuir uma conjunto mínimo de infra-estrutura e aplicativos próprios. Isto somente é possível através da utilização de técnicas de Service-Oriented Architecture (SOA). SOA é um estilo de arquitetura de software cujo princípio fundamental prega que as funcionalidades implementadas pelas aplicações devem ser disponibilizadas na forma de serviços. Para apoiar um desenvolvimento de software consistente e eficiente, qualquer mudança nos artefatos do ciclo de desenvolvimento devem ser controladas (rastreadas). Falhas na manutenção da rastreabilidade dos requisitos pode levar a um aumento considerável nos custos e tempo de execução do projeto, além de causar a degradação da qualidade do software. Neste contexto, o objetivo deste projeto de pesquisa é investigar e definir uma abordagem para apoiar a rastreabilidade entre requisitos e arquiteturas orientadas a serviços, reduzindo os riscos, custos e aumentando a possibilidade de sucesso em projetos de desenvolvimento de software baseados na plataforma de Cloud Computing (FACEPE Edital 20/2010, número IBPG-0398-1.03/10 - R$ 28.800,00).

JiT Clouds - Uma proposta para ampliar a elasticidade de provedores de computação em nuvem baseada na federação de recursos computacionais amortizados [2011 - 2013]

O paradigma da computação em nuvem permite o fornecimento de Tecnologia da Informação (TI) sob a forma de um serviço adquirido sob demanda. Entre os vários benefícios providos por esse novo paradigma, a elasticidade, que habilita o cliente a aumentar ou diminuir a capacidade de sua infraestrutura de TI sem qualquer custo adicional, é um dos mais importantes. Essa característica faz com que o ônus dos custos e riscos associados ao planejamento da capacidade da infraestrutura de TI passem do cliente para o provedor do serviço. O estado-da-prática em provimento de infraestrutura como um serviço (IaaS) impõe um limite a essa elasticidade, para que se possa garantir uma disponibilidade suficientemente elevada para os serviços e, ao mesmo tempo, manter os custos operacionais em um nível aceitável. Isso restringe o escopo das aplicações que poderiam se beneficiar do paradigma de computação em nuvem. Nesse projeto nós iremos investigar uma arquitetura alternativa para a construção de provedores de IaaS, onde os mesmos apenas incorrem em custos de propriedade quando os recursos usados para prover a sua infraestrutura são demandados pelos seus clientes, permitindo uma ampliação de algumas ordens de magnitude no limite que precisa ser imposto aos clientes. Além das questões relacionadas com o provimento de IaaS, serão estudadas questões relacionadas com o acoplamento com os outros níveis de computação em nuvem (RNP, CTIC - R$1.880.000,00). Web site: http://jitclouds.lsd.ufcg.edu.br/

UbiStructure - Uma infra-estrutura de desenvolvimento e execução de aplicações ubíquas [2011 - 2013]

O objetivo desse novo projeto, denominado UbiStructure, é utilizar as ideias que foram propostas durante o projeto MobiLine e criar um ambiente de desenvolvimento e execução para aplicações móveis e sensíveis ao contexto utilizando Linhas de Produtos de Software, que contemple os vários ciclos propostos no MobiLine. Para isso, muitas questões não tratadas anteriormente serão exploradas e tem enfoque nos aspectos de dependabilidade, qualidade de software, aquisição de contexto e de configuração otimizada de um produto (EDITAL UNIVERSAL - CNPq 14/2011, processo número 481417/2011-7 - R$ 109.730,56).

RiSE-APF: Um Framework de Processos para Adoção Incremental de Reuso Sistemático de Software [2010 - 2012]

Este projeto propõe um Modelo para Adoção Incremental de Reuso no Processo de Desenvolvimento de Software. O modelo tem por objetivo prover uma abordagem sistemática para adoção de reuso no processo de desenvolvimento de software das organizações, de uma forma incremental e customizável, por meio de uma série de diretrizes, atividades (tarefas) e ferramentas. O modelo é baseado na análise do estado da arte na área, incluindo modelos de reuso, processos para engenharia de domínio e para linhas de produto, e ferramentas e ambientes para o reuso de software. O ponto chave deste modelo é a combinação de diretrizes, métricas de reuso, aspectos econômicos e um conjunto de requisitos para uma adoção incremental de reuso de software (Edital Programa Primeiros Projetos PPP/FACEPE/CNPq - 10/2010, APQ-1044-1.03/10 - R$ 18.278,30).

Ferramentas

Mangue.io

Mangue é uma plataforma para orquestração e gerenciamento de clusters Kubernetes. O Mangue possibilita a criação de um ambiente diversificado, atuando sobre a tecnologia contaners, fornece a possibilidade de migração de aplicações entre infraestruturas distintas independente do hardware. Além disso fornece uma informação granularizada sobre o consumo e custo a nível de aplicação em tempo real, possibilitando o gestor a escalar sob demanda e reduzir custos. Na perspectiva da equipe de desenvolvimento o Mangue serve como um ambiente para facilitar o processo de DevOps (continuos integration e continuos delivery), permitindo, por exemplo, o deploy e rollback de versões e consequentemente a redução de time-to-market.

Jacroid Plugin

[github]

Plugin para IDE Eclipse com o objetivo de apoiar o desenvolvimento de aplicativos na plataforma Android, dentro do domínio de pessoas como sensores.

EVA: An Environment for Virtual Assistant

[github]

EVA tem como objetivo auxiliar os estudantes quanto ao que estaá acontecendo no Centro de Informaática da Universidade Federal de Pernambuco, no que diz respeito a dúvidas relacionadas a horários, localizações, processos e eventos, sendo capaz de entendê-las e respondê-las de forma natural. Para isso, foram desenvolvidos modelos para a classificação de intenções e para o reconhecimento de entidades em textos, utilizando Aprendizado de Maáquina e Processamento de Linguagem Natural. Se-guem as principais funcionalidades implementadas: Part-Of-Speech Tagger (POS), para a classificacção gramatical de palavras, treinado com CRF; Inside-Outside-Begin Tagger (IOB), para executar o reconhecimento de entidades, treinado com CRF; Um Classificador de Intenções, treinado com SVM; Uma interface para classificar intençõ̃es, identificar entidades e retornar a entrada de modo estruturado.

UsainBots!

[github]

Uma aplicação de gerenciamento de bots desenvolvido por meio de técnicas de inteligência artificial. Este projeto representa um esforço inicial para a busca e o desenvolvimento de bots por meio de um serviço web. Tem por objetivo desenvolver um serviço web que possibilite desenvolvimento e gerenciamento simplificado de bots com uma abstração inicial de reapresentação de conhecimento baseado em um sistema de recuperação da informação.

Django Multi-Tenant

[github]

Nos últimos anos o modelo de entrega de software como serviço, ou Software as a Service (SaaS), surgiu trazendo softwares mais flexíveis e reutilizáveis. Este modelo provê suporte a diversos usuários sobre uma mesma infra-estrutura configurável, oferecendo funcionalidades sob demanda. Multi-Tenancy, ou multi-inquilino, é uma abordagem organizacional do modelo SaaS. Características de uma arquitetura multi-tenant são: compartilhamento de recursos de hardware, alto grau de configurabilidade e bancos de dados compartilhados. Alguns benefícios da utilização desta arquitetura são: maior utilização dos recursos de hardware, manutenção da aplicação facilitada e mais barata e redução nos custos globais do sistema. Tomando como base as características desta arquitetura, esta pesquisa propõe uma biblioteca open source para transformar projetos Django em um projeto multi-tenant, com o intuito de facilitar seu desenvolvimento. Assim, os desenvolvedores podem focar seus esforços na regra de negócio e não com a arquitetura, já implementada pela biblioteca.

BDD Plugin for Mantis (BDDPM)

[bitbucket]

BDD Plugin for Mantis (BDDPM) é uma ferramenta cujo objetivo é facilitar a adoção do BDD em projetos de desenvolvimento de software. Para avaliar o plugin quanto ao cumprimento dos objetivos, foi utilizada uma técnica denominada GQM (Goal/Question/Metric), que permite, através de objetivos bem estabelecidos, planejar e mensurar métricas de avaliação. O BDDPM foi avaliado com sucesso dentro de um ambiente de produção real, uma autarquia do Governo do Estado da Paraíba: a Paraíba Previdência.

Extractviewer project

[github]

A ExtractViewer tem por objetivo acelerar e apoiar a execução das atividades do processo de mapeamento sistemático, além de diminuir a propensão à erros, naturalmente advindos de processos manuais e repetitivos. O conjunto de features inicialmente desenvolvidos da ferramenta permite: (i) importar os resultados do processo de busca, (ii) acessar facilmente os arquivos dos estudos, (iii) aplicar os critérios de inclusão e exclusão, (iv) identificar conflitos e resolvê-los e (vi) extrair dados da pesquisa. A ferramenta foi concebida de modo a permitir que todas estas atividades possam ser realizadas de forma distribuída, proporcionando mais velocidade na conclusão desta etapa do estudo. São disponibilizados, além do acesso aos arquivos dos estudos, todas as informações de metadados obtidos, de forma a assitir o processo de seleção: título, autor, ano, resumo, confe- rência e engenho de busca. Também é permitido aos revisores registrar todas as observações que julgem relevantes durante suas análises, o que posterioremente apóia a resolução de conflitos e análise dos estudos.

Hadoop-Analyzer

[github]

Hadoop-Analyzer is a tool for analysing Hadoop execution logs. This tool relies on Apache Rumen to extract raw data from collected Hadoop logs and generate structured information about jobs execution, which are processed and shown as graphs.

PuzzlEdu (Software Educacional)

[Google Code Archive]

O PuzzlEdu é um software educacional para apoiar o ensino/aprendizagem de lógica de programação no paradigma da orientação a objetos. Sua arquitetura foi proposta para ser executada na nuvem computacional, inicialmente da Google (App Engine). Foi construído utilizando Google Web Toolkit (GWT) com Java. Faz parte da dissertação de mestrado de Eric Rommel G. Dantas, da Universidade Federal de Pernambuco (UFPE).