wiki:psync/manualdesenvolvimento

Version 1 (modified by wmerlotto, 15 years ago) (diff)

--

Manual para desenvolvedores do pSync

O pSync foi totalmente baseado no Foundation, um connector de exemplo disponibilizado pelo Funambol.

Estrutura

O módulo está dividido em vários diretórios:

  • /build: Estão os ant-files responsáveis pela "compilação" do plugin;
  • /lib: Estão as bibliotecas necessárias para a "compilação" do plugin;
  • /src: O código fonte do plugin;
  • src/main/java/br/com/prognus/psync/: Dentro desse diretório devem estar os seguintes pacotes:
    • admin: São os códigos da interface gráfica, utilizadas na ferramenta de administração do Funambol. Por meio destas é possível criar os SyncSources utilizados pelos clientes (dispositivos);
    • engine/source: Estão as classes que serão invocadas pelo servidor e que são responsáveis pelo tratamento dos dados a serem sincronizados. Dentro de engine ficam os demais pacotes e classes utilizados pelas classes que estão dentro de source;
  • /src/sql: Estão contidos os scripts de inicialização dos banco de dados, tanto para o Expresso quanto para o Funambol. Os scripts de cada banco devem estar separados em diretórios com o nome do banco usado;

Foi convencionado que os arquivos desses diretórios sejam nomeados da seguinte forma: Para as interfaces gráficas:

  • <nome>SyncSourceConfigPanel.java;

Para os sources:

  • <nome>SyncSource.java;

Para os scripts:

  • create_engine.sql;
  • drop_engine.sql;
  • init_engine.sql;

As classes SyncSourceConfigPanel derivam do pacote funambol-admin, neste pacote encontram-se as classes usadas na criação da interface de configuração do módulo. As classes SyncSource derivam do pacote funambol-framework, neste pacote encontram-se as classes necessárias para manipular os dados durante a sincronia.

funambol.framework

Este pacote contém os serviços e abstrações usadas em diferentes camadas para implementar o componente. Os serviços mais importantes fornecidos pelo framework são:

  • core: Classes usadas para fazer a tradução de XML para uma arvore de objetos e de uma arvore de objetos para XML;
  • protocol: A comunicação SyncML é uma seqüencia de mensagens correlacionadas seguindo regras adicionais especificadas pelo protocolo SyncML. Este pacote processas as mensagens para assegurar a consistência com o protocolo;
  • logging e security: Implementam os serviços de log segurança;
  • engine: Provê a lógica para o servidor de sincronização, incluindo:
    • Identificar a fonte e o destino dos dados a serem sincronizados;
    • Identificar que dados precisam ser atualizados, adicionados ou removidos;
    • Determinar quantas atualizações devem ser feitas;
    • Detectar e resolver conflitos;

SyncSourceConfigPanel.java

Classes responsáveis pela interface para o gerenciamento das configurações dos SyncSources.
Os SyncSources são os arquivos de configuração responsáveis por indicar quais tabelas serão sincronizadas, os tipos de sincronia permitidos e outras informações.

SyncSource.java

Essas classes são responsáveis por manipular os dados a serem sincronizados, são as classes que fazem a interface entre o servidor Funambol e o banco de dados.