Soluções de arquiteturas e tecnologias de software para um sistema distribuído

3 respostas
Y

Olá a todos, sou novo na comunidade e sei que aqui eu posso contar com a ajuda de vocês.

Gostaria de saber da opinião de vocês sobre a melhor forma de organizar um sistema que estou desenvolvendo.
O sistema é dividido em 2 partes:

  • Aplicação Servidora: que é responsável por gerenciar os dados de um banco e também fornecer, via web services, serviços RESTful para serem consumidos pela outra aplicação.
  • Aplicação Cliente: Esta aplicação é uma aplicação para Android que basicamente consome os serviços fornecidos pelo servidor e os apresenta em uma interface.

Pois bem, até então o que tenho é um CRUD desenvolvido utilizando essas tecnologias: Glassfish 3.1.2, Spring 3.2, Hibernate 4.1 JSF 2.1, Primefaces 3.2.
Partindo deste ponto, ainda tenho que desenvolver os serviços Web, que basicamente vão utilizar as funções que já tenho implementadas no CRUD.
Vocês acham que se eu construir 2 aplicações que utilizam a mesma camada de persistência, uma com apenas a função do CRUD e outra para fornecer os serviços
RESTful, ambas rodando no servidor, teria algum problema? Se sim, por favor me apresente uma solução para que eu possa aproveitar o CRUD que já está pronto.

Alego que nunca desenvolvi um sistema que disponibilizasse serviços RESTful, então peço a ajuda de vocês para me indicarem a melhor maneira arquiteturalmente e também
em relação a tecnologias (EX:Jersey, Restfulie) que possa vir a me ajudar no desenvolvimento da aplicação servidora.

A princípio é só, conto com a ajuda de vocês, obrigado.

3 Respostas

rmendes08

Cara, o JEE dá suporte total ao que você precisa. Para expor seus serviços como Web Services REST você pode usar a API JAX-RS, que já vem embutida no Glassfish. Através dela, basta anotar os métodos que devem ser expostos como serviços, especificando método, tipo de retorno, etc.

Agora, a minha sugestão é que você não use frameworks redundantes como Spring e Hibernate. Como você já está usando o Glassfish você já tem disponível injeção de dependências com CDI e já tem o JPA, tudo embutido. Na minha opinião, isso facilita bastante na hora de empacotar a aplicação. É claro que se você tiver milhares de linhas de código prontas não vale a pena, mas fica a dica: tente aproveitar o máximo do que o conteiner JEE te oferece.

Y

rmendes08:
Cara, o JEE dá suporte total ao que você precisa. Para expor seus serviços como Web Services REST você pode usar a API JAX-RS, que já vem embutida no Glassfish. Através dela, basta anotar os métodos que devem ser expostos como serviços, especificando método, tipo de retorno, etc.

Agora, a minha sugestão é que você não use frameworks redundantes como Spring e Hibernate. Como você já está usando o Glassfish você já tem disponível injeção de dependências com CDI e já tem o JPA, tudo embutido. Na minha opinião, isso facilita bastante na hora de empacotar a aplicação. É claro que se você tiver milhares de linhas de código prontas não vale a pena, mas fica a dica: tente aproveitar o máximo do que o conteiner JEE te oferece.

Obrigado mendes pela resposta, mas no meu caso eu queria manter o sistema que já está desenvolvido e somente acrescentar uma camada de serviços RESTful; neste caso o que você aconselharia eu fazer:

1 - criar um novo projeto aproveitando a camada de persistência do crud;
2 - desenvolver no mesmo projeto do crud esta camada de serviços RESTful;

rmendes08

Se você não precisa fazer deploy separado, simplesmente adicione a camada de serviços ao que você já tem. Como você tá no Glassfish, basta você usar o JAX-RS.

Criado 25 de agosto de 2012
Ultima resposta 26 de ago. de 2012
Respostas 3
Participantes 2