SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Tendances (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
 

Similaire à Latinoware 2012 - Desenvolvendo Interfaces com Holy

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

Similaire à Latinoware 2012 - Desenvolvendo Interfaces com Holy (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
 

Plus de Dextra

Plus de Dextra (20)

Digital Acceleration por Bill Coutinho
Digital Acceleration por Bill CoutinhoDigital Acceleration por Bill Coutinho
Digital Acceleration por Bill Coutinho
 
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em NuvemDextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
Dextra | Como acelerar o Digital na sua empresa usando Tecnologias em Nuvem
 
Digital Acceleration
Digital AccelerationDigital Acceleration
Digital Acceleration
 
Innovator's dilemma
Innovator's dilemma Innovator's dilemma
Innovator's dilemma
 
Design Thinking | Course Material
Design Thinking | Course MaterialDesign Thinking | Course Material
Design Thinking | Course Material
 
Dextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoringDextra mud-sustaining architecture withrefactoring
Dextra mud-sustaining architecture withrefactoring
 
Classificação de documentos
Classificação de documentosClassificação de documentos
Classificação de documentos
 
Recomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahoutRecomendação de conteúdo com apache mahout
Recomendação de conteúdo com apache mahout
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedz
 
IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.IT For Digital Business | Transformação digital na Natura.
IT For Digital Business | Transformação digital na Natura.
 
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos KrotonIT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
IT4DBiz - Tecnologia digital para melhorar a empregabilidade dos alunos Kroton
 
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI modernaIT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
IT4DBiz - Inovação e Renovação: a nova agenda da TI moderna
 
Desenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do GoogleDesenvolvendo aplicações de negócio na velocidade do Google
Desenvolvendo aplicações de negócio na velocidade do Google
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
IT for Digital Business 2014 - Como conciliar velocidade e governança numa ár...
 
IT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em ValoresIT for Digital Business 2014 - TI baseada em Valores
IT for Digital Business 2014 - TI baseada em Valores
 
It for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TIIt for Digital Business 2014 - Negócios Digitais e a Nova TI
It for Digital Business 2014 - Negócios Digitais e a Nova TI
 
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill CoutinhoMobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
MobCamp 2014 :: HTML5 x App Store O pêndulo da Tecnologia - Bill Coutinho
 
MobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto MarinMobCamp 2014 :: Android em Tablets - Neto Marin
MobCamp 2014 :: Android em Tablets - Neto Marin
 

Latinoware 2012 - Desenvolvendo Interfaces com Holy

  • 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