SlideShare une entreprise Scribd logo
1  sur  33
DESENVOLVIMENTO DE UM PORTAL WEB
ESCALÁVEL E DE ALTA PERFORMANCE COM
PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

                Helton Eduardo Ritter

       Orientador: MSc. Claudio Schepke

                     Abril de 2012


  Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Objetivo Geral

Projetar e desenvolver a nova versão do
Portal SETREM, de modo que seja
escalável, mantendo a performance através
de processamento distribuído e
memória distribuída e cacheada.


    Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Objetivos Específicos

• Estudar as ferramentas, fazer um piloto a fim
  de avaliar como projetar o portal.
• Projetar a arquitetura do portal de maneira
  que faça uso de processamento e memória
  distribuída.


     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Objetivos Específicos

• Desenvolver a novo portal, e medir o ganho
  de performance comparado com o atual.




     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Objetivos Específicos
• Medir qual é o número de visualizações de
  páginas que torna uma ou outra abordagem
  mais adequada (sem cache e processamento
  distribuído versus com cache e processamento
  distribuído).



     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Objetivos Específicos
• Publicar em eventos e/ou periódicos
  científicos os resultados do teste piloto, e do
  resultado final.




      Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Delimitação do Tema

•   Foco em escalabilidade e performance
•   Servidores GNU/Linux
•   LAMP + Gearman + Memcache
•   Novembro de 2011 a Agosto de 2012


       Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Problema

    Portais que crescem em acessos +
      complexidade dos algoritmos.
                     X
  Limitação da abordagem multicore em
             virtude do custo.

    Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Problema
O que então, e como seria uma arquitetura que
permitisse o crescimento de um portal em PHP,
tanto em questões de código como para
atender mais usuários simultaneamente
mantendo a performance, criando um ambiente
escalável a baixo custo.


     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Hipóteses

• A abordagem do uso de Memcache e
  Gearman resolve o gargalo dos vários workers
  buscarem informações no mesmo banco de
  dados.



     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Hipóteses

• Existe a possibilidade de setup automático de
  um novo worker sem a necessidade de parar
  serviços ou configuração manual.




     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Hipóteses

• Existem ferramentas de monitoramento para
  saber o quanto os workers, servers e clients
  estão ocupados, facilitando saber quando
  alocar ou desalocar um nó (seja ele worker,
  server ou client).


     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Hipóteses
• Para até 500 page views em 1 minuto, o
  melhor tempo de resposta é na abordagem
  sem processamento e memória distribuído,
  sem cache em memória RAM, em função do
  custo computacional de distribuir o
  processamento e memória.

     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Referencial




Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Aplicações de alta performance
para web
• Antes: HPC  Ciência
• Hoje: HPC  Cotidiano das empresas
• Web como plataforma de aplicação

  É preciso pensar as aplicações web
               diferente!
    Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Memória e processamento
distribuído
“These models assume that information
processing through the interactions of a large
number of simple processing elements called
units, each sending signals to other units”
(MCCLELLAND, 1986, p.8).


     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Memória e processamento
distribuído
MPI, JAVA RMI, aLua, Sockets, JBOSS, Web
Services SOAP, REST … Não há uma ferramenta,
um padrão de fato.


       GEARMAN & Memcache
     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Gearman




Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Memcache




Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Lógica do app com Memcache




 Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Medindo a performance da aplicação web




     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Siege
Siege is an http load testing and benchmarking
utility. It was designed to let web developers measure
their code under duress, to see how it will stand up to
load on the internet. Siege supports basic
authentication, cookies, HTTP and HTTPS protocols. It
lets its user hit a web server with a
configurable number of simulated web
browsers. Those browsers place the server “under
siege” (FULMER, 2012).
      Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
jMeter
Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Resultados já obtidos




Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Situação atual – Portal SETREM

•Projeto de 2007, no ar desde 14/06/2010
•Critério de classificação de conteúdo por
áreas.
•Papéis: visitante, usuário, revisor,
administrador, tradutor.

     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Performance do portal atual
• Com cada Nro de usuários concorrentes,
  feito 5 testes. Entre cada teste, reiniciado
  o servidor web.

• Testes com o siege e com o jMeter

Ver gráficos - siege
      Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
The Web Cofee Machine 2 Mysql
Databases
• Client (gearman, memcache, view,
  controller)

• Worker
• Core, Action, Model, DB, Config

• Ver figuras
      Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Piloto, portal Mobile
• Implementado por Ariel Dotto, estagiário
• Com banco SQL Server
• Dezembro, Janeiro e início de Fevereiro.


Ver figuras


        Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Layout
• Desenhado em Fevereiro de 2012 por
  Gilvan Daniel Ritter, bolsista do CTI,
  usando algumas ideias de Leonardo de
  Almeida (bolsista do CTI, Nov. 2011).




     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
• Demonstração gearman + memcache
• video




    Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Pendências
• Escrever o HTML e CSS do layout – 16/04
• Implementar a interface do visitante – 07/05
• Fazer os testes de performance
  novamente – 12/05
• Ver como monitorar e setup automático –
 25/05
• Continuar desenvolvimento na interface
  administrativa – 15/06
     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Pendências
• Escrever artigo para FISL – 15/04
• Trazer outras ferramentas em outras
  linguagens de programação cap2 – 30/04
• Concluir relatório – 02/07


     Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
Referências Bibliográficas
FITZPATRICK, Brad. Distributed Caching with Memcached.Disponível em
<http://www.linuxjournal.com/article/7451>, Linux Journal, 2004.

GALBRAITH, Patrick. Developing Web Applications with Perl, memcached,
MySQL and Apache. Wiley Publishing inc. Indianapolis, 2009.

MINETTO, Elton Luís. Ao infinito e além com PHP, Memcached e Gearman.
Disponível em <http://www.slideshare.net/eminetto/ao-infinito-e-alm-com-
php-memcached-e-gearman>, 2010.

ZMIEVSKI, Andrei. All The Little Pieces, distributed systems with PHP. Dutch
PHP Conference, Amsterdam, 2009. Disponível em
<http://www.slideshare.net/andreizm/all-the-little-pieces-1573862> acesso
em 15 Mar. 2012.

         Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Contenu connexe

Tendances

Optimus - Apresentação
Optimus - ApresentaçãoOptimus - Apresentação
Optimus - ApresentaçãoRafael Martins
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareAragon Vieira
 
Gestão do escopo e qualidade em Gestão de Projetos
Gestão do escopo e qualidade em Gestão de ProjetosGestão do escopo e qualidade em Gestão de Projetos
Gestão do escopo e qualidade em Gestão de ProjetosAntonio Marcos Montai Messias
 
Gestão de Projetos e Empreendedorismo (19/03/2014)
Gestão de Projetos e Empreendedorismo (19/03/2014)Gestão de Projetos e Empreendedorismo (19/03/2014)
Gestão de Projetos e Empreendedorismo (19/03/2014)Alessandro Almeida
 
Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013) Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013) Alessandro Almeida
 
Noano365 pj project
Noano365 pj projectNoano365 pj project
Noano365 pj projectPaulo Junior
 
Tdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projeto
Tdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projetoTdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projeto
Tdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projetoLuiz Navas
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4André Vidal
 
02 declaracao do_escopo_preliminar_do_projeto
02 declaracao do_escopo_preliminar_do_projeto02 declaracao do_escopo_preliminar_do_projeto
02 declaracao do_escopo_preliminar_do_projetoRobson Ferreira
 
Os príncipios por trás do DevOps
Os príncipios por trás do DevOpsOs príncipios por trás do DevOps
Os príncipios por trás do DevOpsGuilherme Cardoso
 
Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...
Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...
Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...IMED Virtual
 
Estrutura Analítica do Projeto: A Espinha dorsal do projeto
Estrutura Analítica do Projeto: A Espinha dorsal do projetoEstrutura Analítica do Projeto: A Espinha dorsal do projeto
Estrutura Analítica do Projeto: A Espinha dorsal do projetoLuanildo Silva
 
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves RochaAPRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves RochaCloves da Rocha
 
Produtividade para times de desenvolvimento com visual studio team services
Produtividade para times de desenvolvimento com visual studio team servicesProdutividade para times de desenvolvimento com visual studio team services
Produtividade para times de desenvolvimento com visual studio team servicesGuilherme Cardoso
 
04 escopo pitagoras
04 escopo    pitagoras04 escopo    pitagoras
04 escopo pitagorasfernandao777
 
Declaracao+do+escopo+do+projeto
Declaracao+do+escopo+do+projetoDeclaracao+do+escopo+do+projeto
Declaracao+do+escopo+do+projetoReinaldo Neves
 

Tendances (20)

Metodologia cientifica Aula 1 ifpr
Metodologia cientifica Aula 1 ifprMetodologia cientifica Aula 1 ifpr
Metodologia cientifica Aula 1 ifpr
 
Apresentação NetProject 2021
Apresentação NetProject 2021Apresentação NetProject 2021
Apresentação NetProject 2021
 
Optimus - Apresentação
Optimus - ApresentaçãoOptimus - Apresentação
Optimus - Apresentação
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
 
Gestão do escopo e qualidade em Gestão de Projetos
Gestão do escopo e qualidade em Gestão de ProjetosGestão do escopo e qualidade em Gestão de Projetos
Gestão do escopo e qualidade em Gestão de Projetos
 
Gestão de Projetos e Empreendedorismo (19/03/2014)
Gestão de Projetos e Empreendedorismo (19/03/2014)Gestão de Projetos e Empreendedorismo (19/03/2014)
Gestão de Projetos e Empreendedorismo (19/03/2014)
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013) Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013)
Gestão de Projetos e Empreendedorismo: SIN-NA7 (04/09/2013)
 
Noano365 pj project
Noano365 pj projectNoano365 pj project
Noano365 pj project
 
Tdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projeto
Tdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projetoTdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projeto
Tdp+2011 2+aula+5+-+eap+-+estrutura+analítica+do+projeto
 
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4Cursos Agile Think - Feature Driven Development (FDD) - 4/4
Cursos Agile Think - Feature Driven Development (FDD) - 4/4
 
02 declaracao do_escopo_preliminar_do_projeto
02 declaracao do_escopo_preliminar_do_projeto02 declaracao do_escopo_preliminar_do_projeto
02 declaracao do_escopo_preliminar_do_projeto
 
Os príncipios por trás do DevOps
Os príncipios por trás do DevOpsOs príncipios por trás do DevOps
Os príncipios por trás do DevOps
 
FDD
FDDFDD
FDD
 
Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...
Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...
Principais estratégias de Gestão de Projetos para minimizar a probabilidade d...
 
Estrutura Analítica do Projeto: A Espinha dorsal do projeto
Estrutura Analítica do Projeto: A Espinha dorsal do projetoEstrutura Analítica do Projeto: A Espinha dorsal do projeto
Estrutura Analítica do Projeto: A Espinha dorsal do projeto
 
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves RochaAPRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
 
Produtividade para times de desenvolvimento com visual studio team services
Produtividade para times de desenvolvimento com visual studio team servicesProdutividade para times de desenvolvimento com visual studio team services
Produtividade para times de desenvolvimento com visual studio team services
 
04 escopo pitagoras
04 escopo    pitagoras04 escopo    pitagoras
04 escopo pitagoras
 
Declaracao+do+escopo+do+projeto
Declaracao+do+escopo+do+projetoDeclaracao+do+escopo+do+projeto
Declaracao+do+escopo+do+projeto
 

Similaire à Desenvolvimento Portal Web Escalável PHP

Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...Helton Ritter
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Fernando Henrique
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 Gabriel Machado
 
Team Foundation Server 2012 Express
Team Foundation Server 2012 ExpressTeam Foundation Server 2012 Express
Team Foundation Server 2012 ExpressiMasters
 
Web components para o seu design system
Web components para o seu design systemWeb components para o seu design system
Web components para o seu design systemNicole Oliveira
 
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .netTDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .netFabian Gehrke
 
Gleidson rodrigues apresentação profissional
Gleidson rodrigues   apresentação profissionalGleidson rodrigues   apresentação profissional
Gleidson rodrigues apresentação profissionalGleidson Rodrigues
 
powerPointFinal.pptx
powerPointFinal.pptxpowerPointFinal.pptx
powerPointFinal.pptxAdilsonLucas6
 
Desafio de crescer
Desafio de crescerDesafio de crescer
Desafio de crescerGuilherme
 
Visual Studio Summit 2012 - Team Foundation Server 2012 Express
Visual Studio Summit 2012 - Team Foundation Server 2012 ExpressVisual Studio Summit 2012 - Team Foundation Server 2012 Express
Visual Studio Summit 2012 - Team Foundation Server 2012 ExpressRogério Rodrigues
 
Webinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business AnalyticsWebinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business AnalyticsRicardo Gouvêa
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indianahellequin
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com PolymerStefan Horochovec
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Rafael Schettino
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010Fabian Gehrke
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 

Similaire à Desenvolvimento Portal Web Escalável PHP (20)

Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROC...
Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROC...
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
 
Team Foundation Server 2012 Express
Team Foundation Server 2012 ExpressTeam Foundation Server 2012 Express
Team Foundation Server 2012 Express
 
7 masters - TFS Express 2012
7 masters - TFS Express 20127 masters - TFS Express 2012
7 masters - TFS Express 2012
 
Web components para o seu design system
Web components para o seu design systemWeb components para o seu design system
Web components para o seu design system
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .netTDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
TDC 2010 Floripa-SC SharePoint 2010: Novidades para os desenvolvedores .net
 
Gleidson rodrigues apresentação profissional
Gleidson rodrigues   apresentação profissionalGleidson rodrigues   apresentação profissional
Gleidson rodrigues apresentação profissional
 
powerPointFinal.pptx
powerPointFinal.pptxpowerPointFinal.pptx
powerPointFinal.pptx
 
Desafio de crescer
Desafio de crescerDesafio de crescer
Desafio de crescer
 
Visual Studio Summit 2012 - Team Foundation Server 2012 Express
Visual Studio Summit 2012 - Team Foundation Server 2012 ExpressVisual Studio Summit 2012 - Team Foundation Server 2012 Express
Visual Studio Summit 2012 - Team Foundation Server 2012 Express
 
Webinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business AnalyticsWebinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business Analytics
 
Tecnologias ria2
Tecnologias ria2Tecnologias ria2
Tecnologias ria2
 
Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indiana
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com Polymer
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 

Plus de Helton Ritter

05 - Última aula Android
05 - Última aula Android05 - Última aula Android
05 - Última aula AndroidHelton Ritter
 
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceirosAula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceirosHelton Ritter
 
Primeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidPrimeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidHelton Ritter
 
Utilizando web services do google, yahoo! e twitter com php
Utilizando web services do google,       yahoo! e twitter com phpUtilizando web services do google,       yahoo! e twitter com php
Utilizando web services do google, yahoo! e twitter com phpHelton Ritter
 
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla FirefoxAuto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla FirefoxHelton Ritter
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreHelton Ritter
 
Reconhecimento facial
Reconhecimento facialReconhecimento facial
Reconhecimento facialHelton Ritter
 
Conceitos básicos PHP
Conceitos básicos PHPConceitos básicos PHP
Conceitos básicos PHPHelton Ritter
 
Análise de interfaces para a programação paralela e distribuída
Análise de interfaces para a programação paralela e  distribuídaAnálise de interfaces para a programação paralela e  distribuída
Análise de interfaces para a programação paralela e distribuídaHelton Ritter
 
Contribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de TrusteContribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de TrusteHelton Ritter
 

Plus de Helton Ritter (11)

05 - Última aula Android
05 - Última aula Android05 - Última aula Android
05 - Última aula Android
 
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceirosAula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
Aula 03 - Trabalhando com Intents, datePicker e Classes de terceiros
 
Primeira aula desenvolvimento para Android
Primeira aula desenvolvimento para AndroidPrimeira aula desenvolvimento para Android
Primeira aula desenvolvimento para Android
 
Utilizando web services do google, yahoo! e twitter com php
Utilizando web services do google,       yahoo! e twitter com phpUtilizando web services do google,       yahoo! e twitter com php
Utilizando web services do google, yahoo! e twitter com php
 
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla FirefoxAuto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
Auto-seleção de idioma para uso no corretor ortográfico do Mozilla Firefox
 
Ferramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas MulticoreFerramentas de Programação Paralela para Arquiteturas Multicore
Ferramentas de Programação Paralela para Arquiteturas Multicore
 
Primeira Aula PHP
Primeira Aula PHPPrimeira Aula PHP
Primeira Aula PHP
 
Reconhecimento facial
Reconhecimento facialReconhecimento facial
Reconhecimento facial
 
Conceitos básicos PHP
Conceitos básicos PHPConceitos básicos PHP
Conceitos básicos PHP
 
Análise de interfaces para a programação paralela e distribuída
Análise de interfaces para a programação paralela e  distribuídaAnálise de interfaces para a programação paralela e  distribuída
Análise de interfaces para a programação paralela e distribuída
 
Contribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de TrusteContribuição da teoria do equilíbrio na identificação de Truste
Contribuição da teoria do equilíbrio na identificação de Truste
 

Dernier

QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISVitor Vieira Vasconcelos
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfIedaGoethe
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptxpamelacastro71
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOMarcosViniciusLemesL
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfPastor Robson Colaço
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfmirandadudu08
 

Dernier (20)

QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Prática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGISPrática de interpretação de imagens de satélite no QGIS
Prática de interpretação de imagens de satélite no QGIS
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdfcartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
cartilha-pdi-plano-de-desenvolvimento-individual-do-estudante.pdf
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
HORA DO CONTO3_BECRE D. CARLOS I_2023_2024
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
Aula 1, 2 Bacterias Características e Morfologia.pptx
Aula 1, 2  Bacterias Características e Morfologia.pptxAula 1, 2  Bacterias Características e Morfologia.pptx
Aula 1, 2 Bacterias Características e Morfologia.pptx
 
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANOInvestimentos. EDUCAÇÃO FINANCEIRA 8º ANO
Investimentos. EDUCAÇÃO FINANCEIRA 8º ANO
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdfO Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
O Universo Cuckold - Compartilhando a Esposas Com Amigo.pdf
 
Regência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdfRegência Nominal e Verbal português .pdf
Regência Nominal e Verbal português .pdf
 

Desenvolvimento Portal Web Escalável PHP

  • 1. DESENVOLVIMENTO DE UM PORTAL WEB ESCALÁVEL E DE ALTA PERFORMANCE COM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA Helton Eduardo Ritter Orientador: MSc. Claudio Schepke Abril de 2012 Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 2. Objetivo Geral Projetar e desenvolver a nova versão do Portal SETREM, de modo que seja escalável, mantendo a performance através de processamento distribuído e memória distribuída e cacheada. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 3. Objetivos Específicos • Estudar as ferramentas, fazer um piloto a fim de avaliar como projetar o portal. • Projetar a arquitetura do portal de maneira que faça uso de processamento e memória distribuída. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 4. Objetivos Específicos • Desenvolver a novo portal, e medir o ganho de performance comparado com o atual. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 5. Objetivos Específicos • Medir qual é o número de visualizações de páginas que torna uma ou outra abordagem mais adequada (sem cache e processamento distribuído versus com cache e processamento distribuído). Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 6. Objetivos Específicos • Publicar em eventos e/ou periódicos científicos os resultados do teste piloto, e do resultado final. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 7. Delimitação do Tema • Foco em escalabilidade e performance • Servidores GNU/Linux • LAMP + Gearman + Memcache • Novembro de 2011 a Agosto de 2012 Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 8. Problema Portais que crescem em acessos + complexidade dos algoritmos. X Limitação da abordagem multicore em virtude do custo. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 9. Problema O que então, e como seria uma arquitetura que permitisse o crescimento de um portal em PHP, tanto em questões de código como para atender mais usuários simultaneamente mantendo a performance, criando um ambiente escalável a baixo custo. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 10. Hipóteses • A abordagem do uso de Memcache e Gearman resolve o gargalo dos vários workers buscarem informações no mesmo banco de dados. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 11. Hipóteses • Existe a possibilidade de setup automático de um novo worker sem a necessidade de parar serviços ou configuração manual. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 12. Hipóteses • Existem ferramentas de monitoramento para saber o quanto os workers, servers e clients estão ocupados, facilitando saber quando alocar ou desalocar um nó (seja ele worker, server ou client). Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 13. Hipóteses • Para até 500 page views em 1 minuto, o melhor tempo de resposta é na abordagem sem processamento e memória distribuído, sem cache em memória RAM, em função do custo computacional de distribuir o processamento e memória. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 14. Referencial Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 15. Aplicações de alta performance para web • Antes: HPC  Ciência • Hoje: HPC  Cotidiano das empresas • Web como plataforma de aplicação É preciso pensar as aplicações web diferente! Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 16. Memória e processamento distribuído “These models assume that information processing through the interactions of a large number of simple processing elements called units, each sending signals to other units” (MCCLELLAND, 1986, p.8). Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 17. Memória e processamento distribuído MPI, JAVA RMI, aLua, Sockets, JBOSS, Web Services SOAP, REST … Não há uma ferramenta, um padrão de fato. GEARMAN & Memcache Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 18. Gearman Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 19. Memcache Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 20. Lógica do app com Memcache Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 21. Medindo a performance da aplicação web Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 22. Siege Siege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hit a web server with a configurable number of simulated web browsers. Those browsers place the server “under siege” (FULMER, 2012). Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 23. jMeter Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 24. Resultados já obtidos Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 25. Situação atual – Portal SETREM •Projeto de 2007, no ar desde 14/06/2010 •Critério de classificação de conteúdo por áreas. •Papéis: visitante, usuário, revisor, administrador, tradutor. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 26. Performance do portal atual • Com cada Nro de usuários concorrentes, feito 5 testes. Entre cada teste, reiniciado o servidor web. • Testes com o siege e com o jMeter Ver gráficos - siege Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 27. The Web Cofee Machine 2 Mysql Databases • Client (gearman, memcache, view, controller) • Worker • Core, Action, Model, DB, Config • Ver figuras Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 28. Piloto, portal Mobile • Implementado por Ariel Dotto, estagiário • Com banco SQL Server • Dezembro, Janeiro e início de Fevereiro. Ver figuras Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 29. Layout • Desenhado em Fevereiro de 2012 por Gilvan Daniel Ritter, bolsista do CTI, usando algumas ideias de Leonardo de Almeida (bolsista do CTI, Nov. 2011). Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 30. • Demonstração gearman + memcache • video Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 31. Pendências • Escrever o HTML e CSS do layout – 16/04 • Implementar a interface do visitante – 07/05 • Fazer os testes de performance novamente – 12/05 • Ver como monitorar e setup automático – 25/05 • Continuar desenvolvimento na interface administrativa – 15/06 Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 32. Pendências • Escrever artigo para FISL – 15/04 • Trazer outras ferramentas em outras linguagens de programação cap2 – 30/04 • Concluir relatório – 02/07 Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012
  • 33. Referências Bibliográficas FITZPATRICK, Brad. Distributed Caching with Memcached.Disponível em <http://www.linuxjournal.com/article/7451>, Linux Journal, 2004. GALBRAITH, Patrick. Developing Web Applications with Perl, memcached, MySQL and Apache. Wiley Publishing inc. Indianapolis, 2009. MINETTO, Elton Luís. Ao infinito e além com PHP, Memcached e Gearman. Disponível em <http://www.slideshare.net/eminetto/ao-infinito-e-alm-com- php-memcached-e-gearman>, 2010. ZMIEVSKI, Andrei. All The Little Pieces, distributed systems with PHP. Dutch PHP Conference, Amsterdam, 2009. Disponível em <http://www.slideshare.net/andreizm/all-the-little-pieces-1573862> acesso em 15 Mar. 2012. Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012