Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE. Elias Adriano - UFSCar Daniel Lucrédio - UFSCar

Documentos relacionados
Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Uma Proposta de Framework de Comparação de Provedores de Computação em Nuvem

Web Services. Autor: Rômulo Rosa Furtado

Google App Engine. André Gustavo Duarte de Almeida. Computação Ubíqua e Nuvens. Natal, 24 de maio de 2012 andregustavoo@gmail.com

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CPG: sincronização entre diferentes dispositivos

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

Introdução a Computação nas Nuvens

CURSO DESENVOLVEDOR JAVA Edição 2010

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou


PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Documento de Arquitetura

Desenvolvimento de Sites. Subtítulo

Documento de Projeto de Sistema

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

DAS Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

O que é Cloud Computing?

PROJECT-TRAN: Ferramenta para gerenciamento de transição de conhecimento de projeto

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

SISTEMAS DISTRIBUÍDOS

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM

ANEXO 11. Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.

23/05/12. Computação em Nuvem. Computação em nuvem: gerenciamento de dados. Computação em Nuvem - Características principais

Manual de Procedimentos para Desenvolvimento de Softwares

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

Computação nas Nuvens

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Lucas Nascimento Santos

Arquiteturas Paralelas e Distribuídas

Introdução à Engenharia de Software

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

Integração de sistemas utilizando Web Services do tipo REST

Desenvolvimento do Sistema de Negociação para Prestadores de Serviços. Acadêmico: Rafael Capistrano Prof. Orientador: Dr.

TERMO DE REFERÊNCIA CONTRATAÇÃO DE CONSULTORIA

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

JPA: Persistência padronizada em Java

Nuvem UFRGS: IaaS como ferramenta de apoio à pesquisa

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

ADAPTANDO UMA APLICAÇÃO PARA CLOUD: UMA ANÁLISE ENTRE OS ESFORÇOS UTILIZADOS

UFG - Instituto de Informática

1

Clóvis Diego Schuldt. Orientador: Prof. Wilson Pedro Carli

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

PAMIN PATRIMÔNIO, MEMÓRIA E INTERATIVIDADE

FERRAMENTA WEB PARA MODELAGEM LÓGICA EM PROJETOS DE BANCOS DE DADOS RELACIONAIS

Computação II Orientação a Objetos

Agregador de feeds RSS para dispositivos móveis

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

CLOUD COMPUTING: COMPARANDO COMO O MUNDO ONLINE PODE SUBSTITUIR OS SERVIÇOS TRADICIONAIS


Obtendo Qualidade com SOA

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

QUALIDADE DE SOFTWARE

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

FECAP. Plataforma Microsoft

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

TRIBUTAÇÃO NAS NUVENS Uma Regulação em Debate

MD5 no Android como mecanismo de autenticação na API do Google Maps. Claudio André

SISTEMA PARA CONTROLE DE ESTOQUE DOS ALMOXARIFADOS DE AGÊNCIAS DE CORREIOS NO ESTADO DE SANTA CATARINA

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

Universidade da Beira Interior

LINGUAGEM DE BANCO DE DADOS

Persistência de dados com JPA. Hélder Antero Amaral Nunes

Alexandre Malveira, Wolflan Camilo

A Linguagem de Modelagem Unificada (UML)

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

Software Livre e GIS: Quais são as alternativas?

DESENVOLVIMENTO EM DISPOSITIVOS MÓVEIS UTILIZANDO BANCO DE DADOS

WebApps em Java com uso de Frameworks

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

GERAÇÃO DE RELATÓRIOS

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Transcrição:

Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE Elias Adriano - UFSCar Daniel Lucrédio - UFSCar III Workshop Brasileiro de Desenvolvimento de Software Dirigido por Modelos - WB-DSDM 2012

Introdução Computação em Nuvem Conceitos Definição do problema Metodologia Em direção a portabilidade usando MDE WB-DSDM 2012 Características das Plataformas Abordagem Geração de código

Introdução Computação em Nuvem Em estágio de amadurecimento importante objeto de pesquisa na atualidade. Falta de um padrão para desenvolvimento de aplicações --> Diversidade de propostas e tecnologias disponíveis.

Introdução Falta de portabilidade --> Dificulta adoção do modelo de nuvem. Receio em criar sistemas levando em consideração uma plataforma específica e em seguida serem cobradas taxas abusiva. Ficar preso a uma tecnologia que pode se tornar inadequada e precisa ser abandonada.

Introdução A ideia em torno do MDE aplicado ao desenvolvimento de sistemas para nuvem: identificar as abstrações que permitem criar sistemas, independentemente das tecnologias das plataformas. Nivel mais alto de abstração --> desenvolvedor fica protegido das complexidades de cada plataforma.

Computação em Nuvem

Computação em Nuvem - Definição A ideia principal por trás do conceito de nuvem é permitir que empresas adquiram recursos computacionais sob demanda e o pagamento desse serviço seja feito de acordo com o volume de utilização. Ilusão de Recursos Computacionais Infinitos. Ainda não há uma definição acadêmica amplamente aceita pela comunidade científica.

Computação em Nuvem - Serviços Software como Serviço: aplicações que funcionam sobre a infraestrutura da nuvem e são providas como serviço aos consumidores. Plataforma como Serviço: é a idéia de prover uma plataforma de desenvolvimento de sistemas como serviço. Infraestrutura como Serviço: entrega de infraestrutura computacional como serviço.

O Data Lock-In é... Falta Padrão Portabilidade Interoperabilidae O Data Lock-In

Padronização O Data Lock-In Trabalho empenhado em tarefas específicas de plataforma não pode ser reaproveitado. Iniciativas: Opencloud manifesto(google e Microsoft ainda não aderiram) DMTF Distribuited Management Task Force OCCI-WG14 - The Open Cloud Computing Interface Working Group. Grupos IEEE P2301 e IEEE P2302.

Modelos: O Data Lock-In Abordagem alternativa Além de ser uma alternativa pode levar a benefícios que não seriam alcançados apenas com a padronização: Produtividade Reúso Documentação entre outros...

Em direção à portabilidade usando MDE A portabilidade no contexto de MDE referese à geração de código (utilizando-se elementos do MDE) para diferentes plataformas a partir de um mesmo modelo.

Em direção à portabilidade usando MDE

Em direção à portabilidade usando MDE Linguagem textual de sintaxe simples onde o desenvolvedor pode criar suas aplicações sem a necessidade de conhecer os detalhes específicos das plataformas.

Em direção à portabilidade usando MDE

Em direção portabilidade usando MDE Ambiente escolhido: PaaS - Google App Engine - GAE Java Características: Persistência: Big Table - Padrões JDO e JPA. Controle: Java Servlets(possivel utilizar frameworks) Serviços(REST) Interface: JSP e demais tecnologias tais como: JQuery, Html, CSS, JavaScript, etc.

Exemplo Suponha a seguinte situação: Um determinado site deve possuir funcionalidades relacionadas ao cadastro de produtos. Será necessário listar, cadastrar, atualizar e remover produtos (operações CRUD). Identificou-se a necessidade de persistir o seguintes atributos: identificador(id), nome (nome), descrição (descricao) e preço (preco).

Exemplo Para desenvolver uma funcionalidade fazendo o uso do GAE Java: API de Persistência, Linguagem Java, API Java Servlet, JSP, HTML, XML, arquivos de configuração, entre outros elementos específicos da plataforma. Utilizando a abordagem proposta: Apenas descrever classes utilizando a sintaxe adotada.

Exemplo Chave-valor entity Produto{ pk{ id:key(strategy=identity) readonly=true } property nome : String property descricao : String property preco : Double }

Exemplo

Conclusões e trabalhos futuros A falta de uma tecnologia padrão para desenvolvimento de sistemas para nuvem gera o problema de Lock-In. O problema está dificultando a adoção do modelo de nuvem: usuários vulneráveis ao aumento de preço; problemas de confiabilidade; dificuldade extra para abandonar o modelo ou migrar de um provedor de nuvem para outro. Abordagem em fase de desenvolvimento Experimentos Conclusões e apontamentos.

Conclusões e trabalhos futuros Até o momento... Redução de tempo de desenvolvimento Linhas de código Complexidade Aumento da Produtividade

Obrigado!!!!

Referência: Silva, E.; Lucrédio D. Em direção à portabilidade entre plataformas de Computação em Nuvem usando MDE. WB- DSDM 2012.