====== 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