Академический Документы
Профессиональный Документы
Культура Документы
Agenda
Contexto Problema Objetivos Metodologia Fase 1 Entendimento do Cenrio Fase 2 Mapeamento Sistemtico Fase 3 Aplicao na Indstria Concluso
3
10
Problema
Desenvolver software para atender a um grande nmero de usurios a baixo custo, no modelo de software como servio Ausncia de trabalhos que apresentem diretrizes para desenvolver SaaS Multitenancy
11
Objetivo Geral
Contribuir com a evoluo do estado da arte do desenvolvimento de aplicaes SaaS que implementam a arquitetura multi-tenancy.
12
Objetivo Especficos
Apresentar uma viso geral de multitenancy; Definir o status de maturidade atual de multi-tenancy;
Identificar vantagens e desvantagens na adoo de multitenancy Identificar as principais propostas de implementao para multi-tenancy Identificar formas de gerenciar a variabilidade entre os tenants Aplicar os conceitos na indstria de software
13
14
Metodologia
15
16
17
Fase 1
Leitura ad-hoc de artigos e sites sobre:
Cloud Computing SaaS Multi-tenancy
18
1. Quais as vantagens e desvantagens da adoo? 2. Quando vivel? 3. Existe alguma forma de extender as funcionalidades de um tenant? 4. Como gerenciar a variabilidade entre os tenants? 5. Como verificar se um tenant est consumindo mais recursos do que o esperado?
19
6. Como tratar solicitaes de forma assncrona? 7. Como evitar que um tenant tenha acesso a dados de outro ? 8. Caso um tenant esteja consumindo muitos recursos, como migrar esse tenant para outra mquina ou VM(Virtual Machine)? 9. Quais as propostas existentes para se implementar a arquitetura multi-tenancy?
20
21
Sistematic
22
23
24
Questes de pesquisa
1. Quais as vantagens e desvantagens de multitenancy?
25
Estratgias de pesquisa
Automtica
Trabalhos Encontrados
Manual
26
Estratgias de pesquisa
Fontes para pesquisa automtica:
IEEEXplore Digital Library (httt://ieeexplore.ieee.org/) ACM Digital Library (http://portal.acm.org) Elsevier ScienceDirect (http:// www.sciencedirect.com) EI Compendex (http://www.engineeringvillage2.org) Elsevier Scopus (http://www.scopus.com)
27
Estratgias de pesquisa
Termos para pesquisa automtica
28
Estratgias de pesquisa
Query
(multi-tenancy OR multi-tenant) AND ("Cloud computing"OR iaas OR paas OR saas OR advantages OR disadvantages OR approach OR barrier OR adoption OR viability OR approach OR methods OR techniques OR proposal OR framework OR tenant OR "product lines"OR variability OR variation OR adoption OR viability OR challenges OR problems OR benefits OR loss)
29
Estratgias de pesquisa
Pesquisa Manual
Search Engines(Google, Bing, Yahoo) Pesquisa em principais conferncias
IEEE International Conference on e-Business Engineering (ICEBE) International Conference on Cloud Computing ACM SIGMOD/PODS Conference International Conference on Advanced Communication Technology IEEE International Conference on Data Engineering
30
88
144 148
31
Triagem de Papers
Critrios de excluso
1. Papers duplicados 2. Trabalhos no relacionados arquitetura multitanancy 3. Poster, Panel e Workshop paper 4. Papers que no estejam escritos em ingls 5. Papers que no acessveis na web.
32
Triagem de Papers
Resultados das excluses
Restaram 71 trabalhos
33
Classificao
O resumo, ttulo e palavras-chave de cada estudo so revisados em busca de termos e conceitos que reflitam a contribuio do trabalho Foram definidas 3 facetas
34
Classificao
Contexto de multi-tenancy
Banco de dados Alocao de recursos Customizao Performance Segurana Escalabilidade Migrao de sistemas SOA Monitoramento
35
Classificao
Faceta Contribuio:
Framework Mtodo/tcnica Modelo Ferramenta Proposta de arquitetura
36
Classificao
Faceta Tipo de Pesquisa:
Validation Research Evaluation Research Solution Proposal Philosophical Paper Opinion Paper Experience Paper
37
Classificao
Trabalhos/ Ano de Publicao
38
Classificao
39
Classificao
Trabalhos/Contexto
Virtualizao SOA Segurana Performance Monitoramento Migrao Escalabilidade Customizao Banco de dados Alocao de Recursos 0 2 4 5 6 8 10 12 14 11 2 12 2 3 3 6 7 10
40
Classificao
Trabalhos/Contribuio
Modelo
Mtodo/tecnica Framework Ferramenta Proposta de Arquitetura 0 5 10 10 6 28
4
14 15 20 25 30
41
Classificao
Trabalhos/Tipo de Pesquisa
Validation Research 10
Solution Proposal
45
Philosophical Paper
Opinion Paper
Evaluation Research
Experience Paper
10
15
20
25
30
35
40
45
50
42
Resultados
Trabalhos/Ano/Contexto
12 10 alocacao de recursos banco de dados 8 Publicaes customizacao escalabilidade 6 migracao monitoramento performance 4 segurana SOA 2 virtualizacao
43
Resultados
44
Resultados
45
Resultados
46
Resposta Q1
Desvantagens
difcil calcular os recursos requeridos para cada novo tenant e ao mesmo tempo garantir que as restries de todos os outros tenants sejam atendidas Dificuldade de comparar e otimizar a reduo de custos das diferentes formas de distribuio dos tenants entre os servidores, pelo fato de existirem vrias variveis envolvidas Preocupao das empresas com o custo inicial de reestruturas suas aplicaes legadas para multi-tenancy Preocupao dos mantenedores de software com a possibilidade de multi-tenancy introduzir problemas adicionais de manuteno decorrentes do fato desses novos sistemas serem altamente customizveis
48
49
Resposta Q2
Foram encontratos ferramentas que tratam de:
Auxlio a compartilhamento de recursos Identificao de tenants maliciosos Proposta de SGBD multi-tenancy(M-Store) Garantia de SLA(SmartSLA)
50
Resposta Q2
Foram encontrados 27 mtodos ou tcnicas que abordam os mais variados contextos relacionados a aplicaes multi-tenancy
Alocao de Recursos Bancos de dados Customizao Monitoramento Melhoria de Performance Segurana SOA Virtualizao
51
Resposta Q2
Modelos
Customizao entre tenants Predio de violaes nos tempos de resposta esperados Modelo para predio de consumo de recursos Modelo de indexao de dados Modelo de controle de acesso baseado em ontologias
52
Resposta Q2
Propostas de arquitetura
Force.com SPOSAD(Shared, Polymorphic, Scalable Application and Data) L4 Cache Arquitetura de Sistemas de Autenticao Multitenancy Ao todo foram encontrados 13 propostas de arquitetura
53
Resposta Q3(Variabilidade)
Customizao baseada em metadados Padres de customizao a nivel de banco de dados Tcnicas de mapeamento de esquemas para o banco de dados Utilizao de SCA (Service component architecture) Utilizao de POA(Programao Orientada a Aspectos) Customizao baseada em ontologias Utilizao de tcnicas de SPL para gerenciamento de variabilidade
54
Ameaas a Validade
Questes de pesquisa
A ausncia de algum sinnimo no previsto nas strings de busca
No possvel garantir que todos os estudos relevantes foram encontrados Estudos foram classificados baseado no jungamento do autor. Algum estudo pode ter sido classificado incorretamente.
56
Discusso
Nenhum mapeamento sobre multi-tenancy encontrado Poucas propostas de implementao validadas na indstria Ausncia de sumarizao dos conhecimentos existentes Bancos de dados convencionais no foram desenvolvidos para aplicaes desse tipo.
57
Discusso
Baseado nas evidncias encontradas, a utilizao linguagens dinmicas e metaprogramao podem ser teis na implementao da aplicativos multitenancy Poucos trabalhos exploram a implementao de aplicaes multi-tenancy em ambientes como Amazon AWS, Azure e Google App Engine. Foi encontrado apenas 1 trabalho que trata da implicaes de requisitos multi-tenancy no processo de desenvolvimento.
58
Fase 3
Problema:
Desenvolver um aplicativo web no modelo de SaaS No era necessrio implementar requisitos de variabilidade complexos O sistema deveria ser desenvolvido em Grails Equipe pequena(2 desenvolvedores)
Grails
61
Requisitos
Implementar CRUDs e Relatrios Cada usurio de uma empresa deve ver apenas dados relacionados sua empresa Implementar mecanismo de gerenciamento de configuraes Implementar ajustes no modelo de dados
62
Arquitetura Escolhida
Fonte:[4]
63
Implementao
Plugin grails que atendia parcialmente arquitetura apresentada anteriormente A parte no atendida pelo plugin teve que ser desenvolvida Implementao usando anotaes e metaprogramao Separao entre requisitos multi-tenancy e requisitos da aplicao Implementao de multi-tenancy como interesse transversal
64
Acesso a Dados
package br.com.rise.alexandria import grails.plugin.multitenant.core.groovy.compiler.MultiTenant @MultiTenant class Product { String name String description static hasMany = [ features : Feature ]
65
Customizao
66
Autenticao
67
Resultado da implementao
As funcionalidades bsicas de multi-tenancy (autenticao, customizao e armazenamento)foram implementadas com sucesso Uso metaprogramao para implementar multi-tenancy como interesse transversal Abordagem de plugins do grails permite um alto grau de reuso entre aplicaes.
68
Contribuies
Sumarizao de conceitos sobre multi-tenancy Criao de um catlogo de artefatos que podem auxiliar na implementao de uma aplicao multi-tenancy Validao dos conceitos encontrados atravs de experincia prtica na indstria
69
Concluso
Multi-tenancy uma abordagem nova e ainda possui muitas lacunas abertas para pesquisa Empresas como IBM, Microsoft e Google tem investido nesse tpico, o que refora a relevncia do tema Em geral, a adoo de multi-tenancy traz mais benefcios que perdas Embora esse trabalho tenha realizado uma sumarizao de conhecimentos sobre o tema, ainda no o suficiente
70
Trabalhos futuros
Executar experimentos com o objetivo de comparar as propostas de implementao encontradas Definir um processos com diretivas para implementao de uma aplicao multitenancy Propor multi-tenancy a nvel de plataforma Propor uma implementao de referncia que utilize as melhores prticas de implementao
71
Trabalhos Publicados
Minicurso: Desenvolvendo aplicaes multitenancy para computao em nuvem. ERCEMAPI 2011 Minicurso: Software as a Service: Desenvolvendo Aplicaes Multi-tenancy com Alto Grau de Reuso. WebMedia 2012(no prelo) Artigo: Uma Abordagem para Desenvolvimento de SaaS Multi-Tenancy Utilizando Metaprogramao. WebMedia 2012(submetido)
72
Referncias
[1] A. Rosenberg, Facebook socially networks roughly 10 percent of Earth's population, Digital Trends, 26 06 2011. [Online]. Available: http://www.digitaltrends.com/computing/facebook-socially-networks-roughly-10-percentof-earths-population/. [Acesso em 11 02 2011]. [2] ANDERSON, C. A Cauda Longa: do mercado de massa para o mercado de nicho. Traduo Afonso Celso da Cunha Serra. Rio de Janeiro, Elsevier, 2006. 2 reimpresso. [3] NIST Definition of Cloud Computing v15 Acessado em 26/02/2010. h ttp://csrc.nist.gov/groups/SNS/cloud-computing/ [4] Bezemer, C.-P. and Zaidman, A. (2010). Multi-tenant saas applications: maintenance dream or nightmare? In Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE), IWPSE-EVOL 10, pages 8892, New York, NY, USA. ACM. [5] Barbara A. Kitchenham, Tore Dyba, and Magne Jorgensen. 2004. Evidence-Based Software Engineering. In Proceedings of the 26th International Conference on Software Engineering (ICSE '04). IEEE Computer Society, Washington, DC, USA, 273-281. [6] Petersen, K., Feldt, R., Mujtaba, S., & Mattsson, M. (2007). Systematic Mapping Studies in Software Engineering. 12th International Conference on Evaluation and Assessment in Software Engineering, 17(1), 1-10.
73
Referncias
[7] Chong, F. and Carraro, G. (2006). Architecture strategies for catching the long tail. [8] Petersen, K., Feldt, R., Mujtaba, S., and Mattsson, M. (2008). Systematic Mapping Studies in Software engineering. In EASE 08: Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering. [9] Wieringa, R., Maiden, N., Mead, N., and Rolland, C. (2005). Requirements engineering paper classification and evaluation criteria: a proposal and a discussion. Requir. Eng., 11, 102107.
74
Muito Obrigado!!!