wiki:FTPServer

Proteios FTP Server

Description

This note describes the Proteios FTP Server installation. Usage information can be found at Proteios FTP Server Usage.

Requirements

  1. Proteios installation (see Proteios 2 Installation).
  2. An FTP client program to access the Proteios FTP Server.

Quick Install

  1. Install Proteios from binary archive or source code (see Proteios 2 Installation).
  2. Locate Proteios FTP Server script (proteios_ftp_server.sh for Unix/Linux?, proteios_ftp_server.bat for Windows) in the Proteios distribution directory. The Tomcat installation directory is normally set in the script at Proteios installation (on Unix/Linux? systems environment variable $CATALINA_HOME is set to this location), otherwise edit the script to set the directory location.
  3. If desired, the script can now be moved/copied to another directory location, provided that the search path allows Java programs to run.
  4. Start Proteios FTP Server by running the script from a command prompt with argument "-start", e.g. "proteios_ftp_server.sh -start". If desired, the control port setting in configuration file ftp.properties may be over-ridden by giving the control port as argument to the script, e.g. "proteios_ftp_server.sh -start -p8022". Under Windows, the command window can be used for other commands after starting the Proteios FTP Server, but the window cannot be closed.
  5. Stop Proteios FTP Server by running the script from a command prompt with argument "-stop", e.g. "proteios_ftp_server.sh -stop". If desired, the control port setting in configuration file ftp.properties may be over-ridden by giving the control port as argument to the script, e.g. "proteios_ftp_server.sh -stop -p8022".

Background Information

Terms used

FTP
File Transfer Protocol
Core File
A File item in the Proteios database
Core Directory
A Directory item in the Proteios database

Basic Operation

FTP, or File Transfer Protocol, is used to transfer files between two computer systems, where the user system acts as a client, and the other (the "remote" system) as a server. Provided that the user has access to an account on the remote system (including optional public accounts for anonymous access), he/she can log into this via the FTP client program, navigate the remote file system, and upload or download files. The connection runs over TCP (Transmission Control Protocol).

The Proteios FTP Server is a utility that allows file upload and download in Proteios to be performed via the FTP protocol. As FTP is a standard data communication protocol, it is the intention that any FTP client program should be able to use the FTP Server to access Proteios, provided that the user has a Proteios account. The Proteios FTP Server may be running on a computer different from the one on which Proteios is installed, but is still integrated with the latter; thus the username and password used to login refer to a Proteios account, and directories and files on the remote system refer to core "Directory" and "File" items in the Proteios database (called "core directories" and "core files", respectively, in the following). It is the intention that most FTP operations should work transparently as if a normal file system was accessed. However, some functionality may be absent from the Proteios FTP Server.

Basic Goal

The advantage with using an FTP server to upload files to Proteios is that it simplifies upload of multiple files in a single step through FTP client programs' "mput" method. Although FTP only allows file transfer operations, and is not a full command shell, in the future some core directories may be linked to tasks that are automatically performed on a core file put into them, such as importing the contents of an mzData file into the database.

FTP Communication Ports

Unlike many current communication protocols, FTP uses two computer ports, one as control channel and one as data channel. The default is to use Port 21 for the control channel, and Port 20 for the data channel. The use of two ports has been known to cause problems with some firewalls on the user system (client system) when downloading files in so called "active" mode, where the server connects to a data port on the user's system. Although the user via Port 21 (in the default case) has requested the download and the FTP client specified the desired data port to use, attempts by the FTP server to send data to another port on the user's system is regarded by many firewalls on the client side as an illegal operation that should be blocked. The latter problem is avoided by downloading files in so called "passive" mode, where the user's system initiates the connection to a port on the server. Passive mode is the default for Proteios FTP transfer, so this should not be a problem. A related problem is that firewalls on the server side may restrict the range of port numbers that are allowed for passive mode connections. For a more detailed description of active vs. passive FTP with examples, check out the following link http://slacksite.com/other/ftp.html.

However, using the default choice of Port 21 for the Proteios FTP Server control channel is not without problem. It is not uncommon for the computer on which Proteios is installed to also run a standard FTP server, allowing access to the file system. This server is normally running all the time the system is up, and uses Port 21 as control channel. This blocks the Proteios FTP Server to use the same control port, as a port can only be used by one server at a time. The natural solution is for the Proteios FTP Server to use another port than Port 21 for the control channel. This option is a standard feature of most FTP servers, but not much used, as Port 21 is normally available. When trying to access the Proteios FTP Server using FTP client software, it is therefore important to request the correct port for the connection, as otherwise the connection will be to the standard FTP server running on the remote system. How this is done depends on the FTP client software used, but is a standard option.

Acknowledgement

Proteios FTP Server is based on the Xerver Free Web/FTP Server Package. For licensing information etc., see Third Party Licenses.

References

  1. The Xerver home page can be found at http://www.javascript.nu/xerver/.
Last modified 9 years ago Last modified on May 16, 2008, 9:24:47 AM