Pessoal to precisando de uma ajuda, tenho que fazer um trabalho para cadeira de redes que consiste num sistema, utilizando socket, de banco. Onde o cliente deve poder acessar a base, no caso o arquivo, e verificar saldo de todas as contas, histórico de todas as movimentações e também individualmente de cada cliente. O que acham?? Qual destes se enquadraria melhor??
vc não vai instalar nada, vc vai baixar um arquivo .zip que contém alguns .jar que vc coloca no classpath da aplicação e usa…
caso vc não queira usar xml, prefira salvar no arquivo texto alguma estrutura de dados contendo todos os dados do banco/cliente/contas. Utilize o ObjectOutputStream para gravar Objetos serializáveis, depois os leia com ObjectInputStream carregando tudo para a memória (viável pois a aplicação eh pequena) o que deixará o acesso aos dados bastante rápidos (não mais que XML)
Em último caso, se o arquivo de dados necessitar ser legível:
Se vc possuir registros de tamanho fixo, eh mais rápido e fácil usar RandomAccess (talvez até mais que XML)
Caso os registros sejam aleatórios, vc deve usar acesso sequencial (deve ser evitado pois no pior caso vc vai perder mto tempo analisando as entradas , carregando a memória e lendo dados inúteis)
Implementar um banco u meio chato e trabalhoso (digamos que é uma outra cadeira), portanto é melhor usar um pronto, como o HSQLDB (que é só um JAR).
Como é para a cadeira de redes (não é para a cadeira de bancos de dados), você precisa usar o socket apenas para acessar as transações que você vai definir acessando o HSQLDB.
Para facilitar, você pode fazer uma implementação bastante simples de http usando server sockets, para poder acessar as transações de seu banco. Não é tão difícil de fazer (obviamente um servidor http existe pronto, mas você não vai poder usar) e você pode usar um browser para acessar , evitando codificar a parte cliente.