====== FTP Server Modul ======
Das "FTP Server Modul" ermöglicht das Bereitstellen von Daten via **File Transfer Protocol**, d.h. aus eBiss erzeugte bzw. konvertierte Nachrichten können mit einem geeigneten FTP Client aktiv geholt werden.\\
Es besteht aus diversen eBiss Komponenten die im folgenden aufgezeigt sind:
* Einen Event Listener: „FTPProxy – 21“ -> aktivieren.
* Ein Job der Eingänge auf dem Port 21 verteilt, für get und put. Hier der Job: ProxyJob
* Einen Empfangskanal „FTPReceiveChannel“ und ein Sendekanal „FTPSendChannel“ (nicht wundern, im Job ProxyJob wird nur einer referenziert.
* Die Jobs dazu: ReceiveJob, SendJob. Interessant ist der SendJob, welcher einen MessageCollector mit der Option „Filter by channel login partner“ gesetzt haben sollte (s.u.)
* Diese Jobs werden über die EventListener FTPReceiveHandler und FTPSendHandler getriggert, welche vom Type „Channel proxy event listener“ sind und eine Listen Uri haben, die vom FTP Channel als Pfad dargestellt werden. D.h., wenn man per FTP reinkommt, dann zeigt der ProxyJob alle „Channel proxy event listener“ and. In dem hier verwendeten Fall vom FTP Server Channel als Pfad und „geht man“ als ftp-Client per „cd“ in den Pfad, dann wird der Job dazu gestartet. D.h. der Emfpang und das Senden muss über einen Unterfpad gesteuert werden, man kann nicht im selben Pfad empfangen und senden.
* Und dann gibt es noch die Tradingpartner FtpUser1 ...., welche eine „FTP Server“ Adresse für den Login (in dem Beispiel nicht erhalten, werden im Unit-Test erstellt) und eine Adresse für den Unterpfad, wenn die Pfade für bestimmte Benuzter anders lauten sollten.
{{ :downloads:ftp-server.zip |}}
==== Login in Unterknoten ====
Der FTP Server kann so konfiguriert werden, dass beim Login in einen Unterknoten verzweigt wird. Die Einstellungen dazu sind komplexer und werden von Pranke vorgenommen (vorkonfiguriert).
==== Schematische Darstellung ====
SFTP.Anmeldung->SFTP.EVENT.LISTENER:Anmeldung
SFTP.EVENT.LISTENER->Kanal.Proxy.Eventlistener:Verzweigung nach URI
Kanal.Proxy.Eventlistener->Inbound.Job:Sammelt Nachrichten und\nsendet diese via ChannelSender
Inbound.Job->SFTP.Server.Sendekanal:Übermittlung\nder bereitstehenden Nachrichten
SFTP.Anmeldung->SFTP.EVENT.LISTENER:Anmeldung
SFTP.EVENT.LISTENER->Kanal.Proxy.Eventlistener:Verzweigung nach URI
Kanal.Proxy.Eventlistener->Outbound.Job:empfängt Nachrichten und\ndelegiert diese
Outbound.Job-SFTP.Server.Empfangskanal.Channel:Verarbeitung ausgehender Nachrichten
st=>start: Start|past:>http://www.pranke.com[blank]
e=>end: End|future:>http://www.pranke.com
op1=>operation: SFTP Login|past
op2=>operation: MessageCollector
and
ChannelSender
op3=>operation: ChannelReceiver
and Delegate to
Outbound Job
sub1=>subroutine: zurück zur
Anmeldung
cond=>condition: Anmeldung
erfolgreich?|yes:>http://www.pranke.com
c2=>condition: Kanal-Proxy
Eventlistener
auf URI 1|no
c3=>condition: Kanal-Proxy
Eventlistener
auf URI 2|no
io=>inputoutput: INBOUND|future
io1=>inputoutput: OUTBOUND|future
sub2=>subroutine:MessageCollector
st->op1(right)->cond
cond(yes, right)->c2
cond(no)->sub1(left)->op1
c2(yes)->io->op2->e
c2(no)->c3(no)->e
c3(yes)->io1->op3->e