diff --git a/README.md b/README.md index e985ee9b22ca218b162d77b737a426b0feb5acbd..cba21e6dba702b38142406cc1d392bfd656edcfe 100644 --- a/README.md +++ b/README.md @@ -11,34 +11,47 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0 participant A as file-manager participant B as Client participant C as OPF - activate A - activate C - activate B activate N N->>B: OsiPostfachRemoteService::sendMessage - Note left of B: (1) Hochladen der Anhänge + activate B + Note left of B: (1) Nachschlagen einer Empfänger-Postfach-Adresse + B->>C: POST /MailboxDirectory/v1/Lookup + activate C + C-->>B: {mailboxId} + deactivate C + Note left of B: (2) Hochladen der Anhänge B->>A: GRPC findBinaryFilesMetaData + activate A A-->>B: {Liste an Anhang-Metadaten} + deactivate A loop Für jeden Anhang B->>A: GRPC GetBinaryFileContent + activate A loop Für jeden Daten-Chunk - B->>C: POST /Quarantine/v1/Upload/Chunked (chunk) + B->>C: POST /Quarantine/v1/Upload/Chunked (chunk) + activate C C-->>B: + deactivate C end A-->>B: + deactivate A B->>C: POST /Quarantine/v1/Upload/Chunked (empty chunk) + activate C C-->>B: + deactivate C end - deactivate A - Note left of B: (2) Warten auf Prüfung der hochgeladenen Anhänge + Note left of B: (3) Warten auf Prüfung der hochgeladenen Anhänge loop Regelmäßiges Polling bis alle Anhänge geprüft sind - loop Für alle Anhänge + loop Für jeden Anhang B->>C: GET /Quarantine/v1/Upload/{guid} - C-->>B: + activate C + C-->>B: + deactivate C end end - Note left of B: (3) Nachricht senden + Note left of B: (4) Nachricht senden B->>C: POST /MessageExchange/v1/Send/{mailboxId} + activate C C-->>B: deactivate C B-->>N: @@ -55,33 +68,37 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0 participant A as file-manager participant B as Client participant C as OPF - activate A - activate C - activate B activate N N->>B: OsiPostfachRemoteService::receiveMessages + activate B B->>C: GET /MessageExchange/v1/Receive + activate C C-->>B: {Liste an Nachrichten-Kennungen (max 100)} + deactivate C loop Für jede Nachrichten-Kennung (messageId) Note left of B: (1) Nachricht abrufen B->>C: GET /MessageExchange/v1/Receive/{messageId} + activate C C-->>B: {Nachricht mit Anhang-Metadaten} + deactivate C Note left of B: (2) Herunterladen der Anhänge loop Für jeden Anhang B->>C: GET /MessageExchange/v1/Receive/{messageId}/Attachment/{attachmentId} + activate C B->>A: GRPC UploadBinaryFileAsStream + activate A A-->>B: + deactivate A C-->>B: + deactivate C end end - deactivate A - deactivate C - B->>N: {Stream an Postfach-Nachrichten} + B-->>N: {Stream an Postfach-Nachrichten} deactivate B deactivate N ``` -Der nachrichten-manager erhält von osiv2-postfach einen Stream von Postfach-Nachrichten. Nach der erfolgreichen Verarbeitung einer Nachricht sollte er `OsiPostfachRemoteService::deleteMessage` aufrufen: +Der nachrichten-manager erhält beim Aufruf von `receiveMessages` einen Stream von Postfach-Nachrichten. Nach der erfolgreichen Verarbeitung einer Nachricht sollte er `deleteMessage` aufrufen: ```mermaid %% Empfangen einer Nachricht @@ -89,11 +106,12 @@ Der nachrichten-manager erhält von osiv2-postfach einen Stream von Postfach-Nac participant N as nachrichten-manager participant B as Client participant C as OPF - activate C - activate B + activate N N->>B: OsiPostfachRemoteService::deleteMessage + activate B B->>C: GET /MessageExchange/v1/Delete/{messageId} + activate C C->>B: deactivate C B-->>N: