Академический Документы
Профессиональный Документы
Культура Документы
Agenda
Contexto Problema Objetivos Fundamentao terica Metodologia
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
Contexto
Crescimento dos usurios de internet Facebook possui 10% da populao mundial [1] Cauda Longa[2] Surgimento de Cloud Computing SaaS Multi-tenancy
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
Problema
Desenvolver software para atender a um grande nmero de usurios a baixo custo, no modelo de software como servio Equipe pequena Ausncia de trabalhos que apresentem diretrizes para desenvolver SaaS
Objetivo Geral
Contribuir com a evoluo do estado da arte do desenvolvimento de aplicaes SaaS que implementam a arquitetura multi-tenancy.
Objetivo Especficos
Apresentar uma viso geral de multi-tenancy, explicando os principais conceitos para entendimento deste trabalho; Realizar um estudo de mapeamento para definir o status atual de maturidade deste princpio de arquitetura Identificar vantagens e desvantagens na adoo de multitenancy Identificar as principais proposta de implementao para multitenancy Identificar formas de gerenciar a variabilidade entre os tenants de uma aplicao multi-tenancy Aplicar os conceitos na indstria de software
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
Fundamentao terica
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
Cloud Computing
Definio:
Cloud computing um modelo que permite o acesso, atravs de rede de computadores, a um conjunto de recursos computacionais configurveis (Ex: rede, servidores, armazenamento, aplicaes e servios) de forma ubqua, conveniente e sob-demanda. Esses recursos podem ser rapidamente provisionados e liberados com um mnimo esforo de gerenciamento ou interao com o provedor de servio.
Cloud Computing
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
10
SaaS
Definio:
Capacidade provida ao consumidor de usar aplicaes do provedor executando-a na infraestrutura de cloud. As aplicaes so acessveis de vrios dispositivos atravs de thin clients como browsers web. O Consumidor no gerencia ou controla a infraestrutura de cloud incluindo rede, servidores, sistemas operacionais, armazenamento ou ainda capacidades individuais da aplicao, com possiveis excees de configuraes da aplicao especficas do usurio.
Multi-tenancy
Definio:
Multi-tenancy uma abordagem organizacional para aplicaes SaaS. Bezemer[4] define multi-tenancy como aplicaes que permitem o compartilhamento dos mesmos recursos de hardware, atravs do compartilhamento da aplicao e da instncia do banco de dados, enquanto permite configurar a aplicao para atender s necessidades do cliente como se estivesse executando em um ambiente dedicado. Tenant uma entidade organizacional que aluga uma aplicao multi-tenancy. Normalmente, um tenant agrupa um nmero de usurios que so os stakeholders da organizao.
Multi-tenancy
13
Objetivo:
Fornecer os meios pelos quais as melhores vidncias de pesquisas atuais podem ser integradas experincia prtica e valores humanos no processo decisrio relativo ao desenvolvimento e manuteno de software. [5]
Metodologia
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
16
Fase 1
Leitura ad-hoc de artigos e sites sobre:
Cloud Computing SaaS Multi-tenancy
1. Quais as vantagens e desvantagens da adoo da arquitetura multi-tenancy? 2. Quando a adoo de multi-tenancy vivel? 3. Existe alguma forma de extender as funcionalidades de um tenant especfico? 4. Como gerenciar a variabilidade entre os tenants? 5. Como verificar se um tenant est consumindo mais recursos do que o esperado?
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
18
6. Como tratar solicitaes de forma assncrona? 7. Como isolar os tenants, de forma que um tenant no tenha acesso a dados de outro indevidamente? 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?
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
19
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
20
Questes de pesquisa
Apartir dos questionamentos levantados na Fase 1 foram selecionados 4 perguntas mais relevantes para serem respondidas:
1. Quais as vantagens e desvantagens de se adotar arquitetura multi-tenancy? 2. Quais as propostas existentes para implementao da arquitetura multi-tenancy? 3. Existe alguma forma de gerenciar a variabilidade entre os tenants de uma aplicao multi-tenancy? 4. Quando a adoo da arquitetura multi-tenancy vivel?
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
22
Estratgias de pesquisa
Automtica
Trabalhos Encontrados
Manual
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
23
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)
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
24
Estratgias de pesquisa
Termos para pesquisa automtica
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
25
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)
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
26
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
27
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
28
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.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
29
Triagem de Papers
Resultados das excluses
Restaram 71 trabalhos
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
30
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
31
Classificao
Contexto de multi-tenancy
Banco de dados Alocao de recursos Customizao Performance Segurana Escalabilidade Migrao de sistemas SOA Monitoramento
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
32
Classificao
Faceta Contribuio:
Framework Mtodo/tcnica Modelo Ferramenta Proposta de arquitetura
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
33
Classificao
Faceta Tipo de Pesquisa:
Validation Research Evaluation Research Solution Proposal Philosophical Paper Opinion Paper Experience Paper
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
34
Classificao
Trabalhos/ Ano de Publicao
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
35
Classificao
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
36
Classificao
Trabalhos/Contexto
Virtualizao
SOA Segurana
3
6 7
Performance
Monitoramento Migrao 2 3 2
10
Escalabilidade
Customizao Banco de dados Alocao de Recursos 0 2
12 11 5 4 6 8 10 12 14
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
37
Classificao
Trabalhos/Contribuio
Modelo 6
Mtodo/tecnica
28
Framework
10
Ferramenta
Proposta de Arquitetura
14
10
15
20
25
30
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
38
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
39
Resultados
Trabalhos/Ano/Contexto
12
10
alocacao de recursos banco de dados 8 customizacao escalabilidade 6 migracao monitoramento performance 4
Publicaes
segurana
SOA
virtualizacao
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
40
Resultados
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
41
Resultados
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
42
Resultados
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
43
44
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 da mesma instncia 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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
45
Resposta Q2(Propostas para implementao) Foram encontratos frameworks que tratam de:
Isolamento de segurana Isolamento de performance Isolamento de disponibilidade Isolamento de administrao Customizao Alocao de recursos Garantia de SLA
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
46
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)
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
47
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
48
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
49
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
50
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
51
52
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.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
53
Discusso
No foi encontrado nenhum outro estudo de mapeamento sobre multi-tenancy Existem muitas propostas de implementao, mas poucas delas foram validadas na indstria A entrada de novos desenvolvedores nessa rea dificultada por no haver uma sumarizao dos conhecimentos existentes O armazenamento de dados multi-tenancy um ponto crtico. Bancos de dados convencionais no foram desenvolvidos para aplicaes desse tipo.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
54
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.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
55
56
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
58
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
59
Arquitetura Escolhida
Fonte:[4]
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
60
Implementao
Foi encontrado um 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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
61
Implementao
package br.com.rise.alexandria import grails.plugin.multitenant.core.groovy.compiler.MultiTenant @MultiTenant class Product { String name String description static hasMany = [ features : Feature ] Product(){ features = new HashSet() } //mtodos
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
62
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.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
63
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
64
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
65
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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia
66
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.
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.