...
- Exponerar HTTP endpunkt för den aggregerande tjänsten.
- Sätter kommunikationsheadrar enligt krav från RIV-TA och VP.
- Anropar tjänstespecifik "Create Query Object" implementation för att läsa ut information från inkommande request.
- Delegerar till bearbetningen till main-flow.
Note: Anledningen till såväl namnsättning på detta flöde samt delegeringen till ett main-flow är att det är i detta flöde som den inaktiverade cachningsfunktionen ligger.
main-flow
- Preparerar ett anrop till EI's FindContent tjänst inklusive properagering av kommunikationsheadrar.
- Anropar EI EI's FindContent tjänst mah en Message Enhancer.
- Anropar tjänstespecifik "Request List Transformation" implementation för att skapa en lista med de anrop som skall göras till underliggande tjänsteproducenter.
- Delegerar bearbetningen till request-reply-flow.
- I hanteringen av svaret, dvs i ett response-element, anropas en tjänstespecifik "Response List Transformation" implementation för att skapa det slutgiltiga aggregerade svaret baserat på de olika svar som kommit från de underliggande tjänsteproducenterna.
request-reply-flow
- Ansvarar för att brygga mellan den ytter synkrona bearbetningen i cache-flow och main-flow till den asynkrona och parallella bearbetningen i splitter-flow, worker-flow och aggregation-flow
- Skickar listan på request till vm-kön "splitter" och väntar synkront på ett asynkront aggregerat svar på vm-kön "reply".
- Timeout på väntan på svar styrs av parametern
AGGREGATED_SERVICE_TIMEOUT_MS
.
splitter-flow
- Använder en collection-splitter för att dela upp listan med request till separata request.
- Märker meddelanden med ett korrelerings-id.
- Lägger på en reply-to header som anger vm-kön "aggregate" dit svaren skickas för aggregering.
worker-flow
aggregation-flow
...
- Sätter upp kommunikationsheadrar enligt RIV-TA och anropar de utpekade tjänsteproducenterna via VP.
- Svar skickas mha reply-to-headern satt ovan till vm-kön "aggregate"
- Kommunikationsfel och timeout fångas upp per anrop av exception-handlern "Catch Exception Strategy" och fel-information skickas till vm-kön "aggregate" så att felet kan rapporteras enligt RIV-TA i processingStatus headern.
Timeout på väntan på svar från tjänsteproducenten styrs av parametern
SERVICE_TIMEOUT_MS
aggregation-flow
- Använder en collection-aggregator för att samla in de parallellt framställda svaren till en aggregerat svar.
- När alla svaren kommit eller timeout som styrs av parametern AGGREGATE_TIMEOUT_MS inträffar så skickas det sammansatta svar som samlats in så långt till vm-kön "reply", dvs till request-reply-flodet beskrivet ovan.
Note: För att den timeout-hanteringen skall fungera och den aggregerande tjänsten skall kunna ge så meningsfull information som möjlig tillbaka till anropande tjänsteproducent så är det viktigt att:
AGGREGATED_SERVICE_TIMEOUT_MS > AGGREGATE_TIMEOUT_MS > SERVICE_TIMEOUT_MS
process-notification-service
...