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

Desenvolvimento RIA com Java

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