Start with the aggregator quickstart. You will need Smooks (or custom coding) to split the message. You will need to write some code to rebuild a new "aggregated" message based on the pieces and parts.
Note: aggregator isn't clusterable, so if your aggregator service goes down then some data may be lost. If you have a concern in this area then consider using fork/join capability as demonstrated in bpm_orchestration2.