Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Nuno_Martins

Ajuda a definir arquitectura de aplicação

Mensagens Recomendadas

Nuno_Martins

Viva,

Estou a pensar em qual será a melhor forma para estruturar uma aplicação e preciso de ajuda.

Por alguns motivos não posso divulgar em que consiste, mas imaginemos um clube de video on-line!

Tinha pensado utilizar uma arquitectura SOA, em que tinha váriós serviços que implementavam uma determinada lógica de negócio e posteriormente utilizava DAOs para fazer a leitura/escrita na BD. Por agora a aplicação é apenas para acesso Web, mas mais tarde quero ter suporte para Desktop e Mobile, dai ter pensado nos Web Services.

Tinha uma outra camada de serviços que estava em cima da anterior e ligavam-se por Web Services.

Vou tentar dar um exemplo abaixo:

Exemplo de página para adicionar um filme

//... HTML...
// $movie = $movieService->addMovie($title, $author);

Exemplo de serviço externo:

public function addMovie($title, $author) {
 //De alguma forma esta 'ligação' entre o serviço interno e externo é por Web Services...
 return internalMovieService->addMovie($title, $author);
}

Exemplo de serviço interno:

public function addMovie($title, $author) {
 return movieDao->addMovie($title, $author);
}

Exemplo de DAO:

public function addMovie($title, $author) {
 $newMovie = INSERT INTO TABLE.... bla, bla, bla...
 return newMovie;
}

As minhas questões são:

  • Concordam com esta arquitectura? Alteravam alguma coisa? Estou aberto a sugestões.
  • Alguém me consegue exemplificar como posso fazer ali aquela ligação com Web Services? É que a ideia é depois por exemplo fazer uma app mobile em que do serviço externo (inclusivé) para cima, será numa lingiagem diferente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
taviroquai

O que apresentaste não tem nenhum problema para as funcionalidades que pretendes implementar. A diferença será nas camadas por cima desse código, ou seja, para o serviço X devolver XML (por exemplo Web Services SOAP) terás que ter alguma coisa que transforme os resultados e devolva o output em XML.

O comum é implementar 2 caminhos, por exemplo (vou fazer um boneco) :

INPUT (PEDIDO de PÁGINA WEB) => ROUTER URI \\ => RENDERIZAR A PÁGINA

\\ //

=> AS OPERAÇÔES QUE INDICASTE ACIMA => //

// \\

INPUT (PEDIDO de WEB SERVICE) => HANDLER WS // \\ => OUTPUT XML / JSON / etc...

Got it?

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Nuno_Martins

Deu para entender. A parte dos Router URI / Handler WS é que vou ter de pesquisar pois não conheço. De qualquer forma por agora estou a pensar em começar por baixo. Definir a BD, implementar os DAOs e depois passar então ao serviço interno. Consegues indicar-me algum site/tutorial bom para SOA em PHP?

O que me faz mais confusão ainda é os Web Services.

Neste caso no meu serviço interno cada método deverial devolver XML em vez de um objecto?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.