Nuno_Martins Posted July 31, 2013 at 11:30 PM Report #520563 Posted July 31, 2013 at 11:30 PM 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.
taviroquai Posted August 1, 2013 at 02:14 AM Report #520568 Posted August 1, 2013 at 02:14 AM 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? 1 Report
Nuno_Martins Posted August 1, 2013 at 09:06 PM Author Report #520632 Posted August 1, 2013 at 09:06 PM 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?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now