Jump to content
Nuno_Martins

Ajuda a definir arquitectura de aplicação

Recommended Posts

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.

Share this post


Link to post
Share on other 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?

  • Vote 1

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.