Desenvolvimento RIA com Java

963 views

Published on

Palestra apresentada na Semana de Engenharia de Software do Instituto Infnet.

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
963
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Desenvolvimento RIA com Java

  1. 1. Desenvolvimento RIA com Java
  2. 2. Apresentações <ul><li>Armênio Cardoso. </li></ul><ul><ul><li>Consultor e Arquiteto de Sistemas. </li></ul></ul><ul><ul><li>Professor das Formações Java do Instituto Infnet. </li></ul></ul><ul><li>Tópicos da Palestra: </li></ul><ul><ul><li>Antecedentes. </li></ul></ul><ul><ul><li>O Que é RIA? </li></ul></ul><ul><ul><li>Experiências. </li></ul></ul><ul><ul><li>Perspectivas. </li></ul></ul><ul><ul><li>Conclusões. </li></ul></ul>
  3. 3. Antecedentes <ul><li>Paradigmas Pré-web – evolução: </li></ul>Redes de Micros e Emuladores 70 80 90 Mainframe Cliente-Servidor
  4. 4. Antecedentes <ul><li>Paradigmas Pré-web - década de 90: </li></ul><ul><ul><li>Visual Basic. </li></ul></ul><ul><ul><li>Delphi. </li></ul></ul><ul><ul><li>Foxpro. </li></ul></ul><ul><ul><li>Oracle Forms. </li></ul></ul><ul><ul><li>PowerBuilder. </li></ul></ul><ul><ul><li>Centura. </li></ul></ul>
  5. 5. Antecedentes <ul><li>Paradigmas Pré-web - características: </li></ul><ul><ul><li>Aplicações gráficas com componentes visuais complexos “descendentes” do sistema operacional. </li></ul></ul><ul><ul><li>Fat-client: necessidade de instalação do módulo cliente em cada máquina. </li></ul></ul><ul><ul><li>Base de dados centralizada. </li></ul></ul>
  6. 6. Antecedentes <ul><li>Nasce a Web. </li></ul><ul><ul><li>Thin-client: aplicações usando HTML e alguma linguagem “embutida” no servidor web. </li></ul></ul><ul><ul><ul><li>Python (1991). </li></ul></ul></ul><ul><ul><ul><li>Ruby (1993). </li></ul></ul></ul><ul><ul><ul><li>Lua (1993). </li></ul></ul></ul><ul><ul><ul><li>PHP (1995). </li></ul></ul></ul><ul><ul><ul><li>Coldfusion (1995). </li></ul></ul></ul><ul><ul><ul><li>ASP (1996). </li></ul></ul></ul>
  7. 7. Antecedentes <ul><li>HTML serve para construir telas de aplicações? </li></ul>
  8. 8. O Que é RIA? <ul><li>Rich Internet Application. </li></ul><ul><ul><li>São Aplicações Web que têm características e funcionalidades de softwares tradicionais do tipo Desktop. </li></ul></ul><ul><ul><li>O termo RIA foi introduzido pela Macromedia em março de 2002 , embora o seu conceito já tenha tido outras denominações anteriores. </li></ul></ul><ul><ul><li>Remote Scripting, pela Microsoft, em 1998. </li></ul></ul><ul><ul><li>X Internet, pela Forrester Research em Outubro de 2000 . </li></ul></ul>
  9. 9. O Que é RIA? <ul><ul><li>RIA típicos transferem todo o processamento da interface para o navegador da internet, mantendo a maior parte dos dados no servidor de aplicação. </li></ul></ul><ul><ul><li>X </li></ul></ul><ul><ul><li>Aplicações web tradicionais centralizam todo seu código em torno de uma arquitetura cliente-servidor e um thin-client baseado em telas HTML. </li></ul></ul>
  10. 10. Experiências <ul><li>Várias experiências foram feitas entre 1999 e 2010: </li></ul><ul><ul><li>Applets Java. </li></ul></ul><ul><ul><li>YUI + DWR. </li></ul></ul><ul><ul><li>JQuery + DWR. </li></ul></ul><ul><ul><li>JavaFX, GWT, Vaadin... </li></ul></ul><ul><li>Várias lições foram tiradas dessas experiências... </li></ul>
  11. 11. Experiências <ul><li>Applets Java. </li></ul>
  12. 12. Experiências <ul><li>Lições Aprendidas: </li></ul><ul><ul><li>Bom conjunto de componentes visuais. </li></ul></ul><ul><ul><ul><li>AWT é muito básico, mas o Swing apresenta-se como uma biblioteca gráfica completa, com todos os componentes desejáveis. </li></ul></ul></ul><ul><ul><li>Carga “Pesada” = demora para carregar. </li></ul></ul><ul><ul><li>Depende de runtime. </li></ul></ul><ul><ul><li>Poucos editores visuais = trabalhoso. </li></ul></ul><ul><ul><li>Excelente opção ainda hoje para problemas especiais: </li></ul></ul><ul><ul><ul><li>Impressão de código de barras. </li></ul></ul></ul><ul><ul><ul><li>Interface com webcam. </li></ul></ul></ul><ul><ul><ul><li>Assinatura Digital de Documentos. </li></ul></ul></ul>
  13. 13. Experiências <ul><li>DWR – Direct Web Remoting. </li></ul>
  14. 14. Experiências <ul><li>Arquivo XML para mapear as classes Java em objetos JavaScript . </li></ul>
  15. 15. Experiências <ul><li>Resultado: acesso remoto à classe Java através de objeto JavaScript. </li></ul>
  16. 16. Experiências <ul><li>Problema encontrado: biblioteca de componentes visuais. </li></ul>
  17. 17. Experiências <ul><li>Solução encontrada – Yahoo! User Interface Library. </li></ul>
  18. 18. Experiências <ul><li>Yahoo! DataTable. </li></ul>
  19. 19. Experiências <ul><li>Lições Aprendidas: </li></ul><ul><ul><li>DWR – Framework altamente estável e funcional. </li></ul></ul><ul><ul><li>YUI – totalmente baseado em JavaScript = muito trabalhoso, depuração difícil, editor incipiente. </li></ul></ul><ul><ul><li>Usuário Final muito feliz. </li></ul></ul><ul><ul><li>Equipe de Desenvolvimento exausta. </li></ul></ul>
  20. 20. Experiências <ul><li>JQuery – “projetado para mudar a forma com que você escreve JavaScript”. </li></ul>
  21. 21. Experiências <ul><li>Lições Aprendidas: </li></ul><ul><ul><li>JQuery realmente simplificou a programação com JavaScript. </li></ul></ul><ul><ul><li>Novos editores melhoraram a forma de codificar. </li></ul></ul><ul><ul><li>Firefox com Firebug: depuração mais fácil. </li></ul></ul><ul><ul><li>Construção de aplicações híbridas = Struts + DWR + JQuery. </li></ul></ul><ul><ul><li>Componentes visuais “espalhados” = não há um padrão. </li></ul></ul>
  22. 22. Perspectivas <ul><li>Quero o meu VB de volta! </li></ul><ul><ul><li>Devido ao amadurecimento das técnicas de programação web, verifica-se uma enorme distância entre os “velhos” aplicativos gráficos e o que está se fazendo hoje em dia. </li></ul></ul><ul><ul><li>Busca-se uma solução “integrada” que combine um bom conjunto de componentes visuais com a chamada remota de classes Java. </li></ul></ul>
  23. 23. Perspectivas <ul><li>Pontos a se Considerar: </li></ul><ul><ul><li>Onipresença do JavaScript nos browsers. </li></ul></ul><ul><ul><li>Plugin or not Plugin? </li></ul></ul><ul><ul><ul><li>Applets Java. </li></ul></ul></ul><ul><ul><ul><li>JavaFx. </li></ul></ul></ul><ul><ul><ul><li>Adobe Flex. </li></ul></ul></ul><ul><ul><li>Produtividade na construção de telas. </li></ul></ul><ul><ul><li>Conjunto de componentes visuais completo. </li></ul></ul>
  24. 24. Perspectivas <ul><li>Duas linhas se apresentam: </li></ul><ul><ul><li>Plataformas que se baseiam em plugins e Java no Servidor. </li></ul></ul><ul><ul><ul><li>Applets são muito “pesados”. </li></ul></ul></ul><ul><ul><ul><li>Adobe Flex usa uma linguagem própria. </li></ul></ul></ul><ul><ul><ul><li>JavaFx tem uma proposta parecida com o Flex. </li></ul></ul></ul><ul><ul><li>Plataformas que se baseiam em HTML e JavaScript e Java no Servidor. </li></ul></ul><ul><ul><ul><li>A grande maioria dos browsers rodam JavaScript. </li></ul></ul></ul><ul><ul><ul><li>O desenvolvedor programa as telas em Java! </li></ul></ul></ul>
  25. 25. Perspectivas <ul><li>O desenvolvedor programa as telas em Java! </li></ul><ul><ul><li>Client-centric Ajax Frameworks: </li></ul></ul><ul><ul><ul><li>Google Web Toolkit. </li></ul></ul></ul><ul><ul><ul><li>SmartGWT. </li></ul></ul></ul><ul><ul><li>Server-centric Ajax Frameworks: </li></ul></ul><ul><ul><ul><li>ZK Direct RIA. </li></ul></ul></ul><ul><ul><ul><li>Vaadin. </li></ul></ul></ul>
  26. 26. Perspectivas <ul><li>Server X Client Centric Frameworks: </li></ul><ul><ul><li>Server-centric: estado e lógica de controle ficam no servidor – thin-client (189Kbytes). </li></ul></ul><ul><ul><li>Client-centric: compila código Java em JavaScript, criando um fat-client (825Kbytes >). </li></ul></ul>
  27. 27. Perspectivas <ul><li>Vaadin. </li></ul><ul><ul><li>O elemento central do Vaadin é a biblioteca Java que é projetada para facilitar a criação e manutenção de interfaces web de alta qualidade. </li></ul></ul><ul><ul><li>Todo o desenvolvimento se dá em Java puro = a depuração é feita no servidor de aplicação e o código cliente é mínimo. </li></ul></ul>
  28. 28. Perspectivas
  29. 29. Conclusões <ul><li>Resumo: </li></ul>

×