TransNet (C) 2003-2004 Infinite

Program TransNet jest prostą aplikacją napisaną w języku Java, umożliwiącą zautomatyzowanie przesyłania plików protokołem FTP, poprzez zdefiniowanie odpowiednich połączeń i określenie podstawowych parametrów transmisji.


1. Konfiguracja

Przed rozpoczeciem pracy z aplikacją należy zmodyfikować plik konfiguracyjny, którego struktura jest już wstępnie przygotowana. W pliku tym określone są wszystkie parametry, z których korzysta program.
Uwaga! Standardowy protokół transmisji FTP nie używa szyfrowania danych, dlatego zalecamy użycie programu TlsWrap (lub innego podobnego), który całą transmisję szyfruje za pomocą SSL. Program TlsWrap jest dostępny zarówno pod platformę Windows jak i Unix (doświadczenie wykazuje, że pod Win9x nie działa prawidłowo, ale już pod NT/2000/XP nie ma problemów). Program jest darmowy i można go pobrać ze strony http://tlswrap.sunsite.dk

a) Uruchamianie programu
Aplikację uruchamiamy za pomoca odpowiednich poleceń:
  • run.bat - uruchamia aplikację pod systemem Windows
  • run.sh - uruchamia aplikację pod systemem Unix
Pliki te należy uprzednio odpowiednio zmodyfikować, wstawiając właściwe nazwy katalogów.
Uwaga! Wymagana jest wirtualna maszyna javy w wersji co najmniej 1.4.
Parametr <config name="transNet" autostart="1" autoexit="0" runInTray="1"> w pliku konfiguracyjnym
  • autostart - określa czy program po uruchomieniu ma automatycznie rozpoczynać przetwarzanie
  • autoexit - określa czy program ma się automatycznie zamykać
  • runInTray - określa czy program ma być uruchomiony w tray'u (tylko dla systemu Windows®). Wszystkie programy można minimalizować do tray'a za pomocą np. darmowego narzędzia rbTray dla Windows® lub wbudowanymi narzędziami w systemie Linux®.
Uwaga! Wartość parametru oznacza: 1 - aktywny, 0 - nieaktywny


b) Definiowanie transportu
Do prawidłowego działania programu niezbędne jest zdefiniowanie transportu. Transport to połączenie polegające na jednostronnym przesyłaniu plików pomiędzy katalogiem źródłowym i docelowym, przy czym nie ma znaczenia czy dany katalog znajduje się na dysku lokalnym czy na koncie FTP.

Opis parametrów z pliku konfiguracyjnego:

<transport id="1" name="Import zamówień" visible="1" enabled="1" checked="1" parser="" parserParams="" waitForParser="0">
  <source security="0" url="ftp://konto@arachne.infinite.pl/orders/" password="" transDlgId="s-ftp"/>
  <destination security="0" url="file://\c:\transnet\orders\" password="" transDlgId="d-local"/>
</transport>

  • id - unikatowy identyfikator transportu
  • name - wyświetlana nazwa transportu
  • visible (domyślnie=1) - transport jest widoczny w programie (tylko transporty widoczne są przetwarzane)
  • enabled (domyślnie=1) - transport jest dostępny do edycji (można go włączać i wyłączac)
  • checked (domyślnie=1) - transport jest aktywny
  • parser - czy po ściągnięciu pliku ma być wykonany program (trzeba podać ścieżkę)
  • parserParams - parametry wywołania parsera porozdzielane separatorem strumieni "|". Parametry o specjalnym znaczeniu: %docPath% - pełna ścieżka do transmitowanego pliku.
  • waitForParser (domyślnie=0) - czy czekać aż parser skończy przetwarzanie

<source security="0" url="ftp://konto@arachne.infinite.pl/orders/" password="" transDlgId="s-ftp"/>
  • security (domyślnie=0) - włącza szyfrowanie, domyślnie bez szyfrowania, gdy używamy programu TlsWrap należy parametr ten ustawić na 1
  • url - protokoł i ścieżka dostępu do katalogu
  • password - hasło dostępu do konta ftp, należy je zaszyfrować w programie TransNet. Hasła są zaszyfrowane tylko po to by laik nie mógł w prosty sposób ich podejrzeć. Fakt, że hasło musi zostać użyte w formie jawnej nie pozwala na jego bezpieczne (nieodwracalne) zaszyfrowanie.
  • transDlgId - niepowtarzalny identyfikator wybranego dialogu (szczegółowy opis w dalszej części)


c) Definiowanie dialogów
Sekcja <transDlg/> w pliku konfiguracyjnym definiuje dialog czyli sposób przetwarzania plików wysyłanych na serwer ftp oraz ściąganych na dysk lokalny.

<transDlg id="s-ftp" type="source">
  <param name="arcDir">archive</param>
  <param name="errDir">error</param>
  <param name="ackDir">acknowledgement</param>
  <param name="lsMask">*.ok</param>
  <fileNameTransform method="replaceFirst">
   <param name="regExp">.ok\z</param>
   <param name="replacement"></param>
  </fileNameTransform>
</transDlg>

<transDlg id="d-local" type="destination">
  <param name="commitType">RENAME</param>
  <fileNameTransform method="replaceFirst">
   <param name="regExp">^</param>
   <param name="replacement">tmp/</param>
  </fileNameTransform>
</transDlg>

Opis parametrów:
  • znacznik <transDlg id="s-ftp" type="source"> id - unikatowy identyfikator dialogu type {source,destination} - rodzaj dialogu (dla katalogu źródłowego, dla katalogu docelowego)
  • znacznik <param name="arcDir">archive</param> nazwa katalogu, do którego przerzucane są wszystkie pliki mające zostać przekopiowane (spełniające warunek określony w lsMask)
  • znacznik <param name="errDir">error</param> nazwa katalogu do którego zostaną przerzucone pliki, których nie udało się przesłać (np. błedy w transmisji)
  • znacznik <param name="lsMask">*.ok</param> definiuje sposób wybierania plików (maskę), które mają zostać przesłane
  • znacznik <param name="commitType">RENAME</param> (dla destination) określa sposób potwierdzania, że plik został przesłany.
    RENAME - plik jest przesyłany pod tymczasową nazwą, która jest zmieniana na właściwą po zakończeniu transmisji
    NEWFILE - po przesłaniu pliku tworzony jest plik potwierdzający koniec transmisji (np. plik ".ok")
  • znacznik <fileNameTransform/> (dokładny opis w dalszej części) definiuje sposób przekształcania nazw plików przy przesyłaniu

Uwaga! Domyślny sposób transmisji opiera się na tworzeniu plików kontrolnych z rozszerzeniem ".ok".


d) Przekształcanie nazw plików

Parametr <fileNameTransform/> okresla sposób przekształcania nazw plikow (za pomoca wyrazen regularnych) przy ich przesyłaniu

<fileNameTransform method="replaceFirst">
  <param name="regExp">^</param>
  <param name="replacement">tmp/</param>
</fileNameTransform>

Opis parametrów:
  • method - sposób zamiany nazwy: replaceFirst - podmień pierwsze wystąpienie, replaceAll - podmień wszystkie wystąpienia
  • regExp - wyrażenie regularne języka Java
  • replacement - na co wymienić


Uwagi odnośnie programu i opisu należy kierować do: doi@infinite.pl