Celular (off-line) Web Applications Arquitetura Java Database


Aplicações web offline tornaram-se muito sofisticado, mesmo rivalizando com os seus homólogos do app nativo. À medida que evoluem como cidadãos de primeira classe como uma corrida completa e de apresentar um Web aplicativo offline (OWA) se comportam como seus colegas nativos, OWAS precisa de uma instalação de armazenamento local; pseudónimo de um banco de dados. Existem várias bases de dados Sourced livre e aberto ou com e sem suporte comercial; Há também muitos bancos de dados comerciais.

Existem diferentes tipos de projetos e arquiteturas de banco de dados; alguns são relacionais, outros são orientada a objetos, outros para gerenciar seus dados como XML pura, enquanto outros são baseados em uma arquitetura baseada em documento com a harmonização de chave/valor usando um formato JSON ou algum outro formato, e, finalmente, existem bancos de dados de JavaScript que armazenam seus dados como uma matriz. Estou certo de que você, como o leitor pode pensar em outros tipos, e você está convidado a deixar um comentário. Eu amo discussões.




Este artigo irá se concentrar em um projeto de arquitetura para a utilização de um banco de dados baseado em Java. O banco de dados deve ser arquitetura relacional para que isso funcione.

Visão Geral da Arquitetura

A aplicação web deve ser composto por vários componentes-chave que podem interagir uns com os outros e oferecem funcionalidade ciclo completo.

Como você pode ver no gráfico à direita, a questão seria implementar um projeto quase MVC. O HTML/CSS proporcionaria a interface de usuário do aplicativo, a vista, então. O JavaScript e miniaplicativo atuaria como um modelo e controle da aplicação com o banco de dados que fornece a persistência de dados.

Como JavaScript não tem as APIs necessárias para se comunicar diretamente com a maior parte do banco de dados Java, um mecanismo de controle seriam obrigados a interagir com um banco de dados relacional que pode implementar Java e um provedor de dados JDBC. Isso pode ser feito com um applet, que pode ser integrado sem visibilidade usando a incorporar ou OBJECT elemento HTML. Uma vez que um Applet e JavaScript pode se comunicar ou através de e elemento HTML.

Java (Controller)

Dentro da proposta arquitetura de aplicações, JavaScript faria um modelo no projeto MVC, incluindo o fornecimento de comunicação entre a View (HTML) eo controlador (Applet).

Há um par de possíveis projetos de comunicação entre eles para JavaScript, Java; tanto através da API LiveConnect ou diretamente com os DOM API.

LiveConnect

LiveConnect é uma interface de programação desenvolvida pela Netscape para permitir a comunicação bidirecional entre JavaScript e Java. Para este fim, um applet pode implementar o netscape.javascript.JSObject classe.

Este é um exemplo da placa de caldeira para lhe dar uma visão geral de como implementar a classe dentro de um Applet. O exemplo mostra obter uma alça sobre a página atual e interface (chamada) uma função de JavaScript.

Existem várias maneiras de navegar os elementos DOM de uma página HTML. Para usar o JSObject, você deve incluir o caminho de classe e sua necessidade de importar o JAWS.jar.

Somando-se a página HTML miniaplicativo

Para incluir o applet numa página web, você pode usar a tag OBJECT ou tag EMBED. O script de escolha deve um mecanismo de detecção para ver qual navegador suporta ambos. O EMBED foi preterido no HTML4, mas foi adicionada à especificação HTML5. Você também precisa adicionar o parâmetro MAYSCRIPT por razões de segurança.

CommonDOM API

A outra maneira de usar o Java com JavaScript ou aquele assunto, e mais precisamente com HTML DOM, é através do CommonDOM API que está disponível no Java 6. Para a direita não é necessário JavaScript, mas se você precisar acessar um recurso JavaScript, é possível.

O exemplo a seguir ilustra uma possível implementação. Para ter acesso ao DOM através do HtmlDocument classe.

O acesso às bases de dados

O acesso de e para a base de dados pode ser feita usando as chamadas JDBC padrão. Tomando o exemplo de cima applet, que será uma tarefa simples para adicionar um pouco de código 'para fornecer operações CRUD para a aplicação.

O exemplo a seguir mostra obter uma alça sobre a página atual e realizar operações CRUD e retornar o resultado como uma string (XML), que serão processados ​​por uma função de JavaScript.

O JavaScript (Modelo)

A lógica seria definir um conjunto de função JavaScript para receber os dados do banco de dados através do applet. Funções JavaScript também faria os dados para exibir (HTML).

Applet Scripting

Para ativar o script para o applet para definir um ID para o applet, então você pode acessá-lo a partir de dentro de você HTML e JavaScript.

Acesso JavaScript

Para acessar um método Java a partir de JavaScript, você simplesmente chamar de evento onClick de um botão que eu gosto:

Gestão de Dados

Para acessar o applet de JavaScript funcionar você deve usar apenas o ID eo método de Applet, passando parâmetros conforme necessário.

Para processar o conjunto de resultados para trás e carregar os dados em um formulário ou uma grade de dados (tabela), você precisa converter o conjunto de resultados de XML ou JSON, ou se é o tou formulário de dados poderia voltar como um objeto. O JavaScript, então, os dados do processo de acordo com a forma de entrada: XML, JSON ou objetos e pode ou loop através ou mapear os dados de volta para os campos do formulário.

Atualizar/Inserir

Para gravar dados no banco de dados é uma outra função para executar INSERT ou UPDATE.

Em conclusão

Obviamente, isto não é uma solução completa, que era o objectivo da arquitectura da fronteira da aplicação. Eu queria demonstrar uma solução viável, pelo menos, as grandes peças, para a criação de aplicativos web off-line; tanto para o telefone ou outro ambiente de trabalho como desktop, laptop ou netbook. Também há, talvez, outros projetos arquitetônicos que estão disponíveis ou até mesmo capaz de melhorar o seu design.

(0)
(0)

Comentários - 0

Sem comentários

Adicionar um comentário

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caracteres restantes: 3000
captcha