@@ -11,34 +11,47 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0
...
@@ -11,34 +11,47 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0
participant A as file-manager
participant A as file-manager
participant B as Client
participant B as Client
participant C as OPF
participant C as OPF
activate A
activate C
activate B
activate N
activate N
N->>B: OsiPostfachRemoteService::sendMessage
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
B->>A: GRPC findBinaryFilesMetaData
activate A
A-->>B: {Liste an Anhang-Metadaten}
A-->>B: {Liste an Anhang-Metadaten}
deactivate A
loop Für jeden Anhang
loop Für jeden Anhang
B->>A: GRPC GetBinaryFileContent
B->>A: GRPC GetBinaryFileContent
activate A
loop Für jeden Daten-Chunk
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:
C-->>B:
deactivate C
end
end
A-->>B:
A-->>B:
deactivate A
B->>C: POST /Quarantine/v1/Upload/Chunked (empty chunk)
B->>C: POST /Quarantine/v1/Upload/Chunked (empty chunk)
activate C
C-->>B:
C-->>B:
deactivate C
end
end
deactivate A
Note left of B: (3) Warten auf Prüfung der hochgeladenen Anhänge
Note left of B: (2) Warten auf Prüfung der hochgeladenen Anhänge
loop Regelmäßiges Polling bis alle Anhänge geprüft sind
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}
B->>C: GET /Quarantine/v1/Upload/{guid}
C-->>B:
activate C
C-->>B:
deactivate C
end
end
end
end
Note left of B: (3) Nachricht senden
Note left of B: (4) Nachricht senden
B->>C: POST /MessageExchange/v1/Send/{mailboxId}
B->>C: POST /MessageExchange/v1/Send/{mailboxId}
activate C
C-->>B:
C-->>B:
deactivate C
deactivate C
B-->>N:
B-->>N:
...
@@ -55,33 +68,37 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0
...
@@ -55,33 +68,37 @@ Senden und Empfangen von Postfach-Nachrichten über die OSI-Postfach-Facade 2.0
participant A as file-manager
participant A as file-manager
participant B as Client
participant B as Client
participant C as OPF
participant C as OPF
activate A
activate C
activate B
activate N
activate N
N->>B: OsiPostfachRemoteService::receiveMessages
N->>B: OsiPostfachRemoteService::receiveMessages
activate B
B->>C: GET /MessageExchange/v1/Receive
B->>C: GET /MessageExchange/v1/Receive
activate C
C-->>B: {Liste an Nachrichten-Kennungen (max 100)}
C-->>B: {Liste an Nachrichten-Kennungen (max 100)}
deactivate C
loop Für jede Nachrichten-Kennung (messageId)
loop Für jede Nachrichten-Kennung (messageId)
Note left of B: (1) Nachricht abrufen
Note left of B: (1) Nachricht abrufen
B->>C: GET /MessageExchange/v1/Receive/{messageId}
B->>C: GET /MessageExchange/v1/Receive/{messageId}
activate C
C-->>B: {Nachricht mit Anhang-Metadaten}
C-->>B: {Nachricht mit Anhang-Metadaten}
deactivate C
Note left of B: (2) Herunterladen der Anhänge
Note left of B: (2) Herunterladen der Anhänge
loop Für jeden Anhang
loop Für jeden Anhang
B->>C: GET /MessageExchange/v1/Receive/{messageId}/Attachment/{attachmentId}
B->>C: GET /MessageExchange/v1/Receive/{messageId}/Attachment/{attachmentId}
activate C
B->>A: GRPC UploadBinaryFileAsStream
B->>A: GRPC UploadBinaryFileAsStream
activate A
A-->>B:
A-->>B:
deactivate A
C-->>B:
C-->>B:
deactivate C
end
end
end
end
deactivate A
B-->>N: {Stream an Postfach-Nachrichten}
deactivate C
B->>N: {Stream an Postfach-Nachrichten}
deactivate B
deactivate B
deactivate N
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
```mermaid
%% Empfangen einer Nachricht
%% Empfangen einer Nachricht
...
@@ -89,11 +106,12 @@ Der nachrichten-manager erhält von osiv2-postfach einen Stream von Postfach-Nac
...
@@ -89,11 +106,12 @@ Der nachrichten-manager erhält von osiv2-postfach einen Stream von Postfach-Nac