Aggregator Pattern - generico?  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

Ae Pessoal,

Tenho uma aplicação que deve gerar uma mensagem que é o registro de todo o seu processamento, mas as partes da mensagem são geradas em diversos locais e não existe um ponto onde todas essas partes estejam disponíveis.

Eu fiz algo assim:


addField é chamado diversas vezes e tem uns outros metodos pra ir montando o conteúdo da mensagem.

Depois descobri que existe um pattern chamado Aggregator, nele diz que a base da solução é um stateful filter, mas eu não entendo minha solucao como um filtro (e stateful pra mim é singleton - j2se ), tem como fazer isso de um modo mais genérico? No meu caso minha aplicacao conhece onde gerar as partes da mensagem e o "gerador" sabe exatamente quais sao as partes da mensagem. Tá feio mas funciona, mas queria saber se tem como ser mais arrumadinho.


"Perfection is reached not when there's nothing more to add but when there's no more to take out"
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Parece que você está usando o padrão Builder.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

louds wrote:Parece que você está usando o padrão Builder.


ehehehe, tá me complicando ... pelo que vi o Builder é pra construir objetos enquanto o Aggregator é para mensagens (é um EAI), mas basicamente são a mesma coisa (tirando que o Aggregator tem que ser stateful já que mensagens são assíncronas e não seguem a sequência de montagem de um Builder).

O problema é que não achei uma descrição com diagrama ou mais detalhes do Aggregator (e não tenho o livro )

"Perfection is reached not when there's nothing more to add but when there's no more to take out"
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

Ahh, desculpa, entendi agora o seu problema.

Bom, o Aggregator é quase igual a um Builder, com a diferença na hora de invocar os colaboradores, tendo que prever a assincronissidade deles.

http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
smota
Moderador
[Avatar]

Membro desde: 21/02/2003 16:19:19
Mensagens: 1647
Offline

louds wrote:Bom, o Aggregator é quase igual a um Builder, com a diferença na hora de invocar os colaboradores, tendo que prever a assincronissidade deles.


Então ... é assim mesmo né? Tipo, não há uma saída genérica ou um modo de "montar" a mensagem sem estar amarrado ao contexto da aplicação (e colocar um monte de buildPart() no meio do código que tava tão bonitinho)

Meu deu um nó o cara falar em filter ... não vi um filtro na minha solução.

EDITADO: o filtro estaria se ao invés de eu montar a mensagem antes do envio eu enviasse as mensagens separadas e montasse depois, pra isso eu teria um filtro pra selecionar as mensagens, certo?

This message was edited 1 time. Last update was at 12/04/2005 16:30:16


"Perfection is reached not when there's nothing more to add but when there's no more to take out"
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team