VBSとGoAnywhere 比較してみた!!

VBSとGoAnywhere 比較してみた!!

その他2022.09.14

情報を学んでいる大学3年生のA君が2weekインターンシップに参加してくれました。
インターンシップでは、VBSとGoAnywhereの双方で同じ作業を行い、比較してもらった結果を本ブログに記述してもらいました!

インターンシップで行ったこと

私はインターンシップを通してVBSとGoAnywhereを用いて


  1. FTP接続
  2. FTP GETで販売管理サーバからCSVファイルを取得
  3. CSVファイルの読み込み(列削除)
  4. TSVファイルへの書き込み
  5. ネットワーク共有フォルダへのコピー
  6. ローカル内のCSV、TSVファイルの削除



図1:実装したシステムの概略図

という一連の流れを自動的に行う処理(図1)を実装した。2つの実装方法を実際に試してみることで、両者の違いを検討した。

①販売管理サーバと自身のPCの接続およびファイルの保存


サーバに接続しそこからファイルをローカルに保存するという作業に焦点をおいて比較するとVBSでは、

  • 変数の宣言(2,3,4行目)
  • ファイルシステムを扱うオブジェクトの作成(5,6行目)
  • FTPで実行するコマンドをテキストファイルに書き込む(8行目)
  • ホスト名、ユーザー名、パスワードの入力(11,13,15行目)
  • 対象のディレクトリへの移動(17,18行目)
  • ダウンロードする対象ファイルのパスの指定(23行目)
  • ファイルを閉じ、コマンドファイルの削除(27,29,31行目)
  • オブジェクトの破棄(33,34,35行目)

図2:ファイルをローカルに保存するソースコード

など図2に示すように様々なテキストを入力しなければならない。 このようにVBSでは、ファイルを保存するだけでもサーバに接続するたびに接続先の情報を入力する必要があるが、GoAnywhereではリソースというもので各接続先情報を管理しており、接続先となるサーバやプロトコル、サービス毎に設定画面が提供されているため、接続方法を調べたり、接続の度に情報を入力する必要がない。そのため一度設定してしまえば、

  • タスク(ファイルやデータの処理)を選択
  • 保存するファイルのパスと保存先のパスを入力
という2つの工程だけで実行できてしまう。図3では「GetFiles」というタスクを選択し、対象のファイルパスと保存先を指定している。これだけでファイルのダウンロードを行うことができる。また、基本的にドラッグアンドドロップで操作するため操作しやすく、直感的な操作が可能である。入力する必要のある情報を日本語で表示してくれるうえに、もしその言葉の意味が分からなくても単語にカーソルを合わせると解説が表示されるため、理解が浅い部分があったとしても作業がしやすい。基本的にはパスと変数しか要求されず、VBSのように自分で大量のコードを打ち込む必要がない。

図3:GoAnywhereを用いて同じ内容の処理を再現

②エラー時の処理の比較

次にエラー発生時の処理の違いについて比較する。エラーを発生させる条件は「コピーする対象のファイルのパスを間違って入力する」に統一した。そのため対象のファイルが見つからないというエラー内容になると推測される。

   
   図4:VBSエラー表示               図5:エラー対象ソースコード
 
VBSではエラーが起きると図4に示すメッセージウィンドウが表示される。この表示はエラーが起こったスクリプトと行、エラー内容を簡潔に示してくれている。しかし、逆に言えば最低限の情報しか表示されていないといえる。エラーが起きたプログラムを図5に示した。エラーが起きているとされる12行目を見てみるとコピーする対象ファイルのパスとコピー先のパスの2つが指定されていてどちらが原因になっているかわからない。


 

図6:GoAnywhereエラー画面(ジョブログ)

それに対してGoAnywhereでのエラー画面は図6のようになっている。GoAnywhereでは「ジョブログ」という機能があり、作成したプログラムがどの段階まで動作してどの段階でエラーが起きているのか非常にわかりやすく表示される。VBSではどの行でエラーが起きているかのみ表示していたのに対し、GoAnywhereではどのファイルが見つからないかまで表示してくれている。そのためVBSと比べ、エラーが起きた際にはプログラムの修正を容易に行うことができる。

VBSとGoAnywhereの比較(まとめ)

VBS GoAnywhere
  • 必要なコードが非常に多い
  • 毎回サーバ情報の入力が必要
  • 手書きのためエラーが頻発
  • 必要な情報が少ない
  • サーバ情報の入力は一度だけ
  • ドラッグアンドドロップ、コピペで操作

 

実際に使用してみた感想

  VBSとGoAnywhereの両方を使ってシステムの実装を行ってみて一番印象的だったのはGoAnywhereの「操作のしやすさ」である。VBSでは自分でひたすらコードを打ち込むため、誤字をしてしまうことも多々あり、いざコードを実行した際には文字数も行数もかなり増えていてそのころには誤字を見つけ出すのも困難になってしまう。しかし、GoAnywhereではタスクをドラッグアンドドロップし、対象のファイルのパスをコピーアンドペーストするだけで実行できてしまうのでミスが起きにくく、たとえミスが起きたとしても入力した情報は非常に少ないためミスを探すのも簡単である。タスクを探すのも簡単で、まずは大まかなカテゴリに分かれていて、その中にタスクが細かくカテゴライズされているため探しやすかった印象がある。
  GoAnywhereで作業するにあたり、VBSにはないデバッグ機能や意味がわからない単語の解説が表示されるといった機能、ヘルプページの充実さなど様々な点で助けられた。私自身、大学の情報学部でプログラミングを勉強していてプログラミングに慣れていたが、VBSで9時間ほどかかった作業がGoAnywhereではその半分の3時間で終わることができた。VBSでの作業は初めてだったが、プログラムの書き方は今までに学んだ言語に似ていたので理解に苦しむことはなかった。にもかかわらず、操作方法もわからない、知識が0からのスタートだったGoAnywhereを使って半分の時間で終わったことを踏まえると、GoAnywhereの使いやすさがよくわかると思う。GoAnywhereはとにかく操作が簡単で使いやすく、慣れるのにも時間がかからない。そのためプログラミングの経験がある人は手になじむのが早いと思うし、経験のない人でも直感的な操作と充実したヘルプ機能のおかげで作業するにあたって困ることはないのではと感じた。
  今回使用した製品「GoAnywhere」