Introdução
Desenvolvimento de tecnologia RIADesenvolvimento de tecnologia RIA
O que é RIA?
Rich Internet Application ou Aplicações
Rica para Internet são aplicações web que tem características e funcionalidades similares a de softwares desktop.
RIAs rodam em um navegador e são executadas em um ambiente seguro chamado de sandbox.
História do RIA
O termo “Rich Internet Application” surgiu em um artigo da Macromedia (adquirida pela Adobe) em março de 2002, no entanto o seu conceito é mais antigo e apareceu com os seguintes nomes:
•Remote Scripting (Microsoft, 1999); •X Internet (Forrest Research, 2000).
História do RIA
A internet iniciou como um modelo para disponibilizar conteúdo estático com HTML.
Com o surgimento deste (RIA) possibilitou um meio para atender a necessidade de informações dinâmicas para aplicações de negócios, quanto ao dinamismo das informações foi possível graças ao Flash e Javascript.
Benefícios do RIA
• Riqueza na interação: É possível oferecer à interface do
usuário características que não podem ser obtidos utilizando apenas HTML/CSS. Esta capacidade de poder incluir funcionalidades do lado do cliente, como, arreste e solte, barra de progressão, cálculos efetuados apenas pelo cliente e que não precisam ser enviados de volta para o servidor, como por exemplo, uma calculadora básica.
Benefícios do RIA
• Melhor resposta: A interface é mais reativa a ações do usuário do que em aplicações web padrão que necessitam de uma constante interação com um servidor remoto. Com isto os RIAs levam o usuário a ter uma sensação de estarem utilizando uma aplicação desktop.
Benefícios do RIA
• Equilíbrio entre Cliente/Servidor: A carga de processamento entre o Cliente e o Servidor torna-se mais equilibrada, visto que o servidor web não necessita realizar todo o processamento e enviar para o cliente, permitindo que o mesmo servidor possa lidar com mais sessões de clientes concomitantemente.
Benefícios do RIA
• Comunicação Assíncrona: O cliente pode interagir com o servidor de forma assíncrona - desta forma, uma ação na interface realizada pelo usuário como um clique em um botão ou link não necessita esperar pela resposta do servidor, fazendo com que o usuário espere pelo processamento. Uma prática comum em aplicações deste tipo, é a de que uma requisição antecipe uma futura necessidade de alguns dados, e estes são carregados no
cliente antes de o usuário os solicitar. Exemplos de Comunicação
Benefícios do RIA
• Otimizações da rede: O fluxo de dados na rede pode ser significativamente reduzido, por que um cliente pode ter uma inteligência maior que o navegador, sobre quais dados precisam ser trocados com o servidor. Isso pode acelerar as requisições ou reduzir as respostas, porque muitos dados só são transferidos quando existe necessidade, fazendo a carga global da rede reduzir.
Desvantagens do RIA
• Sandbox: Os RIAs são executados dentro de um sandbox,
o qual restringe o acesso a recursos do sistema. Se as configurações de acesso aos recursos estiverem incorretas, os RIAs podem falhar, não funcionarem corretamente ou até mesmo comprometer a segurança da máquina.
Desvantagens do RIA
• Scripts desabilitados: JavaScripts ou outros scripts são muitas vezes utilizados. Se o usuário desativar a execução de scripts em seu navegador, o RIA não irá funcionar corretamente, na maior parte das vezes.
Desvantagens do RIA
• Velocidade de processamento no cliente: Para que as aplicações do lado do cliente tenham independência de plataforma, o lado do cliente muita vezes são escritos em linguagens interpretadas, como JavaScript, que provocam uma sensível redução no desempenho da execução.
Desvantagens do RIA
• Tempo de carregamento da aplicação: Embora as
aplicações não necessitem de serem instaladas, toda a inteligência do lado cliente deve ser baixada do servidor para o cliente. Se estiver utilizando um web cache, esta carga deve ser realizada pelo menos uma vez. Dependendo do tamanho ou do tipo de solicitação, o carregamento do script pode ser demasiado longo. Desenvolvedores RIA podem reduzir este impacto através de uma compactação dos scripts, e fazer um carregamento progressivo das páginas, conforme ela forem sendo necessárias.
Desvantagens do RIA
• Perda de integridade: Se a aplicação base é X/HTML,
surgem conflitos entre o objetivo de uma aplicação (que naturalmente deseja estar no controle de toda a aplicação) e os objetivos do X/HTML (que naturalmente não mantém o estado da aplicação). A interface DOM torna possível a criação de RIAs, mas ao fazê-lo torna impossível garantir o seu funcionamento de forma correta. Isto porque um cliente RIA pode modificar a estrutura básica, sobrescrevendo-a, o que leva a uma modificação do comportamento da aplicação, causando uma falha irrecuperável ou crash no lado do cliente.
Desvantagens do RIA
• Perda da visibilidade por sites de busca: Sites de busca podem não ser capazes de indexar os textos de um RIA.
Desenvolvimento de tecnologia RIA
JavaScript
Uma linguagem de programação interpretada desenvolvida por Brendan Eich da Netscape.
Originalmente chamada de Mocha, posteriormente mudado para LiveScript, e por fim JavaScript.
JavaScript - Resumo
Originalmente desenvolvido e implementado como parte de navegadores web para que scripts pudessem ser executados do lado do cliente e interagissem com o usuário sem a necessidade deste script passar pelo servidor, controlando o navegador, realizando comunicação assíncrona e alterando o conteúdo do documento exibido.
JavaScript - Resumo
É atualmente a principal linguagem para programação
client-side em navegadores web. Começa também a ser
bastante utilizada no server-side através de ambientes como o node.js.
Foi concebida para ser uma linguagem script com
orientação a objetos baseada em protótipos, tipagem fraca, dinâmica e funções de primeira classe.
JavaScript - Características
Imperativa e estruturada
JavaScript suporta os elementos de sintaxe de programação estruturada da linguagem C (por exemplo, if, while, switch). Uma diferença sintática do C é que a quebra de linha termina automaticamente o comando, sendo o ponto-e-vírgula opcional ao fim do comando.
JavaScript - Características
Dinâmica
• Tipagem Dinâmica
Como na maioria das linguagens de script, tipos são associados com valores, não com variáveis. Por exemplo, a variável x poderia ser associada a um número e mais tarde associada a uma string.
JavaScript - Características
•
Baseada em Objetos
JavaScript é quase inteiramente baseada em objetos. Objetos JavaScript são arrays associativos, aumentados com protótipos. Os nomes da propriedade de um objeto são strings: obj.x = 10 e obj["x"] = 10 são equivalentes, o ponto neste exemplo é apenas sintático. Propriedades e seus valores podem ser adicionadas, mudadas, ou deletadas em tempo de execução.
JavaScript - Características
• Avaliação em tempo de execução
JavaScript inclui a função eval() que consegue executar em tempo de execução comandos da linguagem que estejam escritos em uma string.
JavaScript - Características
Funcional
• Funções de primeira classe
No JavaScript as funções são de primeira classe, isto é, são objetos que possuem propriedades e métodos, e podem ser passados como argumentos, serem atribuídos a variáveis ou retornados como qualquer outro objeto.
JavaScript - Características
• Funções aninhadasFunções 'internas' ou 'aninhadas' são funções definidas dentro de outras funções. São criadas cada vez que a função que as contém (externa) é invocada. Além disso, o escopo da função externa, incluindo constantes, variáveis locais e valores de argumento, se transforma parte do estado interno de cada objeto criado a partir da função interna, mesmo depois que a execução da função interna é concluída.
JavaScript - Características
Baseada em protótipos
• Protótipos
JavaScript usa protótipos em vez de classes para o mecanismo herança. É possível simular muitas características de orientação a objetos baseada em classes com protótipos.
• Funções e métodos
Diferente de muitas linguagens orientadas a objetos, não há distinção entre a definição de uma função e a definição de um método no JavaScript. A distinção ocorre durante a chamada da função; a função pode ser chamada como um método. Quando uma função é chamada como método de um objeto, a keyword this da função é associada àquele objeto via tal invocação.
JavaScript - Uso em Páginas Web
O uso primário de JavaScript é escrever funções que são embarcadas ou incluídas em páginas HTML e que interagem com o Modelo de
Objeto de Documentos (DOM) da página. Alguns exemplos de
utilização são:
• Abrir uma janela com controle pragmático do seu tamanho,
posição e atributos;
• Validar valores de um formulário para garantir que os dados são
aceitáveis antes de serem enviados para o servidor;
Modelo de Objeto de Documento (DOM)
"É uma interface independente de plataforma e linguagem que permite que programas e scripts acessem e atualizem conteúdo, estrutura e estilo de documentos de forma dinâmica. O documento pode ser processado, e os resultados desse processamento podem ser incorporados de volta para na página apresentada."