SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Leandro Guimarães
     about.me/leguimas




    1997           2003




           2008
holy
ho.ly

n santuário, lugar sagrado. • adj santo,
sagrado, consagrado, divino. he took holy
orders ele tornou-se padre. Holy Cross
Day Dia da Exaltação da Cruz. Holy of
Holies Santíssimo, Santuário. holy
orders clero.
Teve sua “origem” na época da Guerra Fria com pesquisadores militares
  americanos pensando em um meio de distribuir suas informações
         diminuindo a vulnerabilidade das bases americanas.
              ARPANET - Advanced Research Projects Agency
RFC 685 com a descrição do
               protocolo TCP/IP.
Década de 70
               Avanço em redes privadas.




               Grandes   redes   integradas     por
               TCP/IP.
Década de 80
               Abertura comercial em 1988.



               Grandes   redes   integradas     por
               TCP/IP.

Década de 90   Criação da
               (WWW).
                             World   Wide       Web

               Popularização (Brasil – 1995).
Sistemas

• Domínio da arquitetura cliente-servidor (desktop);
• Processamentos cada vez mais complexos e pesados;
• Clients cada vez mais robustos;
• Dependência “geográfica” para acesso à informação;
• Hardware alto custo.


          [ 1995 – 2000 ]
Clientes (“escalabilidade”) mais
     robustos a um alto custo.
  Dependência “geográfica” para
      acesso à informação.



              +
  Comunicação entre máquinas
   geograficamente separadas.
Possibilidade de transitar dados de
          forma confiável.
Acessar a informação de qualquer
              lugar.
Investir em servidores mais robustos
       mas que concentrem o
           processamento.
    Ter clients mais enxutos,
 consequentemente, mais baratos.
Do desktop para a WEB...
Nos primórdios...




       Servidor                     Clients
Tecnologias “embrionárias”   Simples “consumidores” de
    e bastante simples.            informações.

   Páginas dinâmicas.         Recursos precários para
                                exibição de dados.
Nos primórdios...
Com o passar do tempo...


               Servidor
Com o passar do tempo...

Client
                     Desenvolvimento da
                          tecnologia
                     (JavaScript, jQuery,
                        CSS, HTML5)




Barateamento
Mas...
Consequências...



       Servidor                          Clients
Sobrecarregados em não só           Capacidade ociosa: o
   se responsabilizar pelo          servidor prepara tudo
  processamento de dados          mesmo o client fornecendo
mas também por preparar a         uma capacidade incrível
visualização dos dados pelo       para a visualização, e até
           client.                    processamento, de
                                        informações.
     Dificuldades de
     escalabilidade.                Comprometimento da
                                       usabilidade.
Desenvolver um novo
CMS para a Globosat.
      (2008)



         Testemunho
Principais dificuldades encontradas:
     Conteúdo altamente dinâmico;
     Conciliar usabilidade     e    formulários
gerados dinamicamente;

Além disso...
     Gostamos de prototipação mas os protótipos
são desperdiçados pois não são reaproveitados;


            Testemunho
E se a gente separasse, efetivamente, o cliente
  (visualização e input de dados) do servidor (obtenção e
  processamento de dados)? Os browsers atualmente tem
    tecnologia suficiente pra obter dados e renderizar a
visualização na tela da melhor forma com a usabilidade e
                  design que se queira...




                        Paulo Murer
Outra coisa: pra que precisa renderizar a página toda vez
que qualquer alteração nela precisa ser feita? Se precisar
 mudar só um label, precisa renderizar a página toda?

E se a gente gosta de protótipos, por que não criar um jeito
     de se fazer protótipo que possa ser reaproveitado?




                         Paulo Murer
O que é?


  Uma solução open-source para o desenvolvimento
    WEB na qual se isola, efetivamente, cliente e
   servidor. O servidor tem como responsabilidade
“somente” a gestão dos dados enquanto o cliente tem
   como responsabilidade interagir com o servidor,
      enviando e obtendo dados, e renderizar as
                 informações na tela.


     http://holy.dextra-sw.com
Como funciona?


    Para as ações na sua aplicação, você faz uma
requisição AJAX para o seu servidor obtendo a resposta
   necessária. De posse da resposta, você chama um
   template que renderizará os dados recebidos na
               página da sua aplicação.
Como assim?
Como assim?
                            Obtenção dos dados




      HTML            HTTP REST

                       $.ajax()
<body>                              Servidor
  <div id=“myDiv”>
  </div>
                        JSON
</body>
Como assim?
                                 Obtenção do template




      HTML                     HTTP

                              $.holy()
<body>                                           Servidor
  <div id=“myDiv”>
  </div>
                           TEMPLATE XML
</body>




                      <template selector=“#myDiv">
                        <span>${dado}</span>
                      </template>
Como assim?
                         Renderização dos dados
                                        (trimpath)



      HTML
<body>
  <div id=“myDiv”>
                                    Servidor
    <span>Hello</span>
  </div>
</body>
Como assim?




muuk.html           muuk.xml            dashboard.js




            aguardandoTimeTecnico.xml
Benefícios

• Real separação entre cliente e servidor;
• Desenvolvimento de protótipos funcionais e 100%
reaproveitáveis;
• Tecnologias padrão de mercado (W3C) e amplamente
conhecidas;
• Acervo de componentes: tudo o que a WEB oferece;
• WEB API “de graça”;
• Facilidade de desenvolvimento de novas camadas de
interface;
Benefícios


• Facilidade para a implementação de testes
automatizados – controle total sobre os componentes;
• Independência da plataforma utilizada no servidor;
• Economia de processamento no servidor de aplicação;
• Facilidade para escalar seu sistemas (sessionless);
• Foco na usabilidade e, se eu quiser, no design da
aplicação.
Tendências



Leaving JSPs in the dust: moving LinkedIn to
        dust.js client-side templates.
                 http://bit.ly/R8UMgg




   Improving performance on twitter.com
                 http://bit.ly/R8UPc2
@leguimas          leguimas




leandro.guimaraes@dextra.com.br
Casos de Sucesso
         SOFTWARE LIVRE

    AGILE COM PONTO DE FUNÇÃO




 ATA DE REGISTRO DE PREÇO

www.dextra.com.br/arp

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (7)

Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
Serviços na Plataforma .NET (SOA, REST, Microservices, WCF, Web API)
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NETArquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
Arquitetura de Serviços - SOA, REST, Microservices e a plataforma .NET
 

Ähnlich wie Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e eficiente

Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
thiagolima
 

Ähnlich wie Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e eficiente (20)

Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
Microservices: uma abordagem para arquitetura de aplicações (Devcamp 2015)
 
Service Oriented Front-End Architecture
Service Oriented Front-End ArchitectureService Oriented Front-End Architecture
Service Oriented Front-End Architecture
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
Rest Teoria E Pratica
Rest Teoria E PraticaRest Teoria E Pratica
Rest Teoria E Pratica
 
Java Web, o Tutorial
Java Web, o TutorialJava Web, o Tutorial
Java Web, o Tutorial
 
Introdução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows AzureIntrodução à computação na nuvem e Windows Azure
Introdução à computação na nuvem e Windows Azure
 
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
AWS Data Immersion Webinar Week - Planeje e entenda como criar um repositório...
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
AWS Innovate 2020 - Entenda como o Data Flywheel pode apoiá-lo em sua estraté...
AWS Innovate 2020 - Entenda como o Data Flywheel pode apoiá-lo em sua estraté...AWS Innovate 2020 - Entenda como o Data Flywheel pode apoiá-lo em sua estraté...
AWS Innovate 2020 - Entenda como o Data Flywheel pode apoiá-lo em sua estraté...
 
Big Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade onlineBig Data, Performance, Posix, RTB no mercado de publicidade online
Big Data, Performance, Posix, RTB no mercado de publicidade online
 
9.cloud computing v3.1_wl_stv
9.cloud computing v3.1_wl_stv9.cloud computing v3.1_wl_stv
9.cloud computing v3.1_wl_stv
 
Pense Aberto, Pense Linux
Pense Aberto, Pense LinuxPense Aberto, Pense Linux
Pense Aberto, Pense Linux
 
Construindo um sistema distribuido usando rest
Construindo um sistema distribuido usando restConstruindo um sistema distribuido usando rest
Construindo um sistema distribuido usando rest
 
Data center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfData center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdf
 
Precisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicaçõesPrecisamos de um barco maior introdução ao dimensionamento de aplicações
Precisamos de um barco maior introdução ao dimensionamento de aplicações
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 

Mehr von Leandro Guimarães

Colaboração como caminho para times extraordinários
Colaboração como caminho para times extraordináriosColaboração como caminho para times extraordinários
Colaboração como caminho para times extraordinários
Leandro Guimarães
 
DevCamp 2013 - A falácia do desenvolvimento ágil
DevCamp 2013 - A falácia do desenvolvimento ágilDevCamp 2013 - A falácia do desenvolvimento ágil
DevCamp 2013 - A falácia do desenvolvimento ágil
Leandro Guimarães
 
Dextra Sistemas - SeEMTec 2012 - Sistemas Distribuídos
Dextra Sistemas - SeEMTec 2012 - Sistemas DistribuídosDextra Sistemas - SeEMTec 2012 - Sistemas Distribuídos
Dextra Sistemas - SeEMTec 2012 - Sistemas Distribuídos
Leandro Guimarães
 

Mehr von Leandro Guimarães (10)

Colaboração como caminho para times extraordinários
Colaboração como caminho para times extraordináriosColaboração como caminho para times extraordinários
Colaboração como caminho para times extraordinários
 
AgileTrends 2013 - A cooperação como pedra fundamental do Agile
AgileTrends 2013 - A cooperação como pedra fundamental do AgileAgileTrends 2013 - A cooperação como pedra fundamental do Agile
AgileTrends 2013 - A cooperação como pedra fundamental do Agile
 
Fórum RNP 2013 - O uso de métodos ágeis em projetos governamentais
Fórum RNP 2013 - O uso de métodos ágeis em projetos governamentaisFórum RNP 2013 - O uso de métodos ágeis em projetos governamentais
Fórum RNP 2013 - O uso de métodos ágeis em projetos governamentais
 
DevCamp 2013 - A falácia do desenvolvimento ágil
DevCamp 2013 - A falácia do desenvolvimento ágilDevCamp 2013 - A falácia do desenvolvimento ágil
DevCamp 2013 - A falácia do desenvolvimento ágil
 
Reuniao Anual 2013 - Projeto Crescer
Reuniao Anual 2013 - Projeto CrescerReuniao Anual 2013 - Projeto Crescer
Reuniao Anual 2013 - Projeto Crescer
 
TDC2012 - A falácia do desenvolvimento ágil
TDC2012 - A falácia do desenvolvimento ágilTDC2012 - A falácia do desenvolvimento ágil
TDC2012 - A falácia do desenvolvimento ágil
 
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvensTDC2012 - Sua aplicação JAVA flutuando nas nuvens
TDC2012 - Sua aplicação JAVA flutuando nas nuvens
 
Dextra Sistemas - SeEMTec 2012 - Sistemas Distribuídos
Dextra Sistemas - SeEMTec 2012 - Sistemas DistribuídosDextra Sistemas - SeEMTec 2012 - Sistemas Distribuídos
Dextra Sistemas - SeEMTec 2012 - Sistemas Distribuídos
 
Dextra Sistemas - Surfando na maré ágil
Dextra Sistemas - Surfando na maré ágilDextra Sistemas - Surfando na maré ágil
Dextra Sistemas - Surfando na maré ágil
 
Dextra Sistemas - Vivenciando SCRUM
Dextra Sistemas - Vivenciando SCRUMDextra Sistemas - Vivenciando SCRUM
Dextra Sistemas - Vivenciando SCRUM
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

Latinoware2012 - Desenvolvendo interfaces WEB com HOLY de forma prática e eficiente

  • 1.
  • 2. Leandro Guimarães about.me/leguimas 1997 2003 2008
  • 3.
  • 4. holy ho.ly n santuário, lugar sagrado. • adj santo, sagrado, consagrado, divino. he took holy orders ele tornou-se padre. Holy Cross Day Dia da Exaltação da Cruz. Holy of Holies Santíssimo, Santuário. holy orders clero.
  • 5.
  • 6. Teve sua “origem” na época da Guerra Fria com pesquisadores militares americanos pensando em um meio de distribuir suas informações diminuindo a vulnerabilidade das bases americanas. ARPANET - Advanced Research Projects Agency
  • 7. RFC 685 com a descrição do protocolo TCP/IP. Década de 70 Avanço em redes privadas. Grandes redes integradas por TCP/IP. Década de 80 Abertura comercial em 1988. Grandes redes integradas por TCP/IP. Década de 90 Criação da (WWW). World Wide Web Popularização (Brasil – 1995).
  • 8. Sistemas • Domínio da arquitetura cliente-servidor (desktop); • Processamentos cada vez mais complexos e pesados; • Clients cada vez mais robustos; • Dependência “geográfica” para acesso à informação; • Hardware alto custo. [ 1995 – 2000 ]
  • 9. Clientes (“escalabilidade”) mais robustos a um alto custo. Dependência “geográfica” para acesso à informação. + Comunicação entre máquinas geograficamente separadas. Possibilidade de transitar dados de forma confiável.
  • 10. Acessar a informação de qualquer lugar. Investir em servidores mais robustos mas que concentrem o processamento. Ter clients mais enxutos, consequentemente, mais baratos.
  • 11.
  • 12. Do desktop para a WEB...
  • 13. Nos primórdios... Servidor Clients Tecnologias “embrionárias” Simples “consumidores” de e bastante simples. informações. Páginas dinâmicas. Recursos precários para exibição de dados.
  • 15. Com o passar do tempo... Servidor
  • 16. Com o passar do tempo... Client Desenvolvimento da tecnologia (JavaScript, jQuery, CSS, HTML5) Barateamento
  • 18. Consequências... Servidor Clients Sobrecarregados em não só Capacidade ociosa: o se responsabilizar pelo servidor prepara tudo processamento de dados mesmo o client fornecendo mas também por preparar a uma capacidade incrível visualização dos dados pelo para a visualização, e até client. processamento, de informações. Dificuldades de escalabilidade. Comprometimento da usabilidade.
  • 19.
  • 20. Desenvolver um novo CMS para a Globosat. (2008) Testemunho
  • 21. Principais dificuldades encontradas: Conteúdo altamente dinâmico; Conciliar usabilidade e formulários gerados dinamicamente; Além disso... Gostamos de prototipação mas os protótipos são desperdiçados pois não são reaproveitados; Testemunho
  • 22. E se a gente separasse, efetivamente, o cliente (visualização e input de dados) do servidor (obtenção e processamento de dados)? Os browsers atualmente tem tecnologia suficiente pra obter dados e renderizar a visualização na tela da melhor forma com a usabilidade e design que se queira... Paulo Murer
  • 23. Outra coisa: pra que precisa renderizar a página toda vez que qualquer alteração nela precisa ser feita? Se precisar mudar só um label, precisa renderizar a página toda? E se a gente gosta de protótipos, por que não criar um jeito de se fazer protótipo que possa ser reaproveitado? Paulo Murer
  • 24.
  • 25. O que é? Uma solução open-source para o desenvolvimento WEB na qual se isola, efetivamente, cliente e servidor. O servidor tem como responsabilidade “somente” a gestão dos dados enquanto o cliente tem como responsabilidade interagir com o servidor, enviando e obtendo dados, e renderizar as informações na tela. http://holy.dextra-sw.com
  • 26. Como funciona? Para as ações na sua aplicação, você faz uma requisição AJAX para o seu servidor obtendo a resposta necessária. De posse da resposta, você chama um template que renderizará os dados recebidos na página da sua aplicação.
  • 28. Como assim? Obtenção dos dados HTML HTTP REST $.ajax() <body> Servidor <div id=“myDiv”> </div> JSON </body>
  • 29. Como assim? Obtenção do template HTML HTTP $.holy() <body> Servidor <div id=“myDiv”> </div> TEMPLATE XML </body> <template selector=“#myDiv"> <span>${dado}</span> </template>
  • 30. Como assim? Renderização dos dados (trimpath) HTML <body> <div id=“myDiv”> Servidor <span>Hello</span> </div> </body>
  • 31. Como assim? muuk.html muuk.xml dashboard.js aguardandoTimeTecnico.xml
  • 32. Benefícios • Real separação entre cliente e servidor; • Desenvolvimento de protótipos funcionais e 100% reaproveitáveis; • Tecnologias padrão de mercado (W3C) e amplamente conhecidas; • Acervo de componentes: tudo o que a WEB oferece; • WEB API “de graça”; • Facilidade de desenvolvimento de novas camadas de interface;
  • 33. Benefícios • Facilidade para a implementação de testes automatizados – controle total sobre os componentes; • Independência da plataforma utilizada no servidor; • Economia de processamento no servidor de aplicação; • Facilidade para escalar seu sistemas (sessionless); • Foco na usabilidade e, se eu quiser, no design da aplicação.
  • 34. Tendências Leaving JSPs in the dust: moving LinkedIn to dust.js client-side templates. http://bit.ly/R8UMgg Improving performance on twitter.com http://bit.ly/R8UPc2
  • 35. @leguimas leguimas leandro.guimaraes@dextra.com.br
  • 36.
  • 37. Casos de Sucesso SOFTWARE LIVRE AGILE COM PONTO DE FUNÇÃO ATA DE REGISTRO DE PREÇO www.dextra.com.br/arp