ASTERIA Warpを(Windows 2000に)インストールしてみた

ASTERIA Warp を使って、何かネタをやってみようという記事です。

完全にネタなので、間違っても実用性はありませんが、こんなこともできるんだなぁと思って読んでください。
インストール以降は通常と同じ手順なので、初めてASTERIA Warp を触る人でも参考になると思います。

# ASTERIA Warp とは？
ASTERIA Warpは、アステリア株式会社が提供するETLツールです。

ETLというのは、Extract(抽出)、Transform(加工)、Load(書き出し)の頭文字を取ったもので、データソース間でのデータ連携を自動化するツールです。

従来は、プログラムを作成することでこのような連携を行っていましたが、ETLツールの登場により、ノーコードでデータ連携が行えるようになりました。

# 用意した物
- ASTERIA Warp トライアルライセンス
- kintone 開発者ライセンス

# ASTERIA Warp トライアルライセンスの取得
[データ連携ツール「ASTERIA Warp」｜EAI/ESB国内シェアNo.1｜アステリア](https://www.asteria.com/jp/warp/)
- トップページ右上にある、「無料体験版」をクリックします。
- 「じっくり ASTERIA Warp 体験 30日間」で「今すぐ試す」をクリックします。
- ユーザ登録 · 製品評価トライアル登録画面が表示されるので、ユーザー登録を行います。
- ユーザー登録が完了したら、ログインしてマイページのダウンロードからトライアルライセンスの申請を行います。
- ライセンスの申請には時間がかかるので、完了メールを待ちましょう。
- トライアルライセンスが発行されたら、ダウンロードページから試したい製品のライセンスキーと、製品をダウンロードします。
今回は、ダウンロード可能な中でもっとも古いバージョンのASTERIA WARP 4.9.1(ASTERIA WARP Server for Windows 32bitと、ASTERIA WARP Designer for Windows 32bit)を使用しました。


# そのまま実行してみる
試しに、Windows 2000で、そのまま「install-designer-win-x86.exe」を実行してみると
「C:\Work\AsteriaWarp\install-designer-win-x86.exe は有効な Win32 アプリケーションではありません。」というメッセージが表示され、そもそも実行することができません。
![100.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/77ebed2b-1f3a-8a6c-8313-2a77cca7adc9.png)

# なぜ、exe が実行できないのか？
原因は、Windows 2000 のkernel32.dll 内にある、CreateProcessInternalW　のバージョンチェックで弾かれてしまっているためです。
(それ以外にも、それ以降のWindows で実装されたAPI が使われていたりすることもあるため、これだけを回避しても動くとは限りません)
[『～.exe は有効な Win32 アプリケーションではありません』がでる仕組み ](http://blog.livedoor.jp/blackwingcat/archives/1298206.html)

# 課題点
Windows 2000 にASTERIA Warp をインストールしようとしたときの課題は大まかに以下の点になります。
- そもそもexe が実行できない
- TLS 1.2 に対応していないのでSaaS 系が使えない

# 拡張カーネルの導入
今回はそんな課題を解決する方法として、有志の方が開発されている拡張カーネルを導入し、Windows カーネル自体を書き換えることで問題を解決します。
[Windows 2000 Kernel32 改造計画【BM】](http://blog.livedoor.jp/blackwingcat/archives/1299806.html)

検証のためいろいろインストールしましたが、主に必要だったものは以下の通りです。

    1) Win2000用KERNEL拡張計画(KB935839v3.1d2/Mix版/x86+PC98)
    2) Microsoft .Net Framework 2.0 SP2 (.Net Framework 4.0のインストールに必須)
    3) Microsoft .Net Framework 4.0 for Extended Kernel
    4) Microsoft .Net Framework 4.0.3 Roll update since 2014
    5) TLS 1.2 Support for .Net Framework 4.0(KB4483475)
    6) Java SE Development Kit 7u80
    7) Java SE Runtime Environment 8　(その後、追試で確認したところ、Java は単体でインストールしなくても起動できました)
    8) FireFox 55.9.0

インストール自体は、インストーラーを実行するだけなので特に難しい点はありません。


## Java SE Development Kit 7u80 のインストール
こちらはそのままインストールできました。
[Java SE 7 Archive Downloads](https://www.oracle.com/jp/java/technologies/javase/javase7-archive-downloads.html)

## Java SE Runtime Environment 8 のインストール
そのままではインストールできなかったので、Windows 7マシンにダウンロードした(jre-8-windows-i586.exe)をインストールした後、Program Files\Java\jre8 フォルダーを丸ごとコピーし、コントロールパネル→Java→[Java]タブ→Java Runtime Environment 設定で追加しました。
[Java SE 8 Archive Downloads (JDK 8u202 and earlier) ](https://www.oracle.com/jp/java/technologies/javase/javase8-archive-downloads.html)

ちなみに、当初は、jre-8u351-windows-i586.exe を試したのですが、javaw.exe でエラーになってしまい動きませんでした。

## FireFox 52.9.0 のインストール
ASTERIA Warp の管理画面にはブラウザでアクセスしますが、さすがにIE6 ではまともに動かないので、Windows 2000 で使用できるFirefox をインストールします。
https://ftp.mozilla.org/pub/firefox/releases/52.9.0esr/

Windows XP 以降のバージョンでないとインストーラーのバージョンチェックで弾かれてしまうため、Windows 2000 Power Pack→互換状態→強制バージョン設定ツールNNNで、Windows XP SP3に設定する必要があります。

# ASTERIA Warp 4.9.1 のインストール
ここまでくれば、ASTERIA Warp をインストールすることができます。
![002.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/70ec9288-9161-9d32-1783-a74a7d594823.png)

## ASTERIA WARP - Flow Designer をインストール
特に難しいことはなく、「次へ(N)」をポチポチするだけです。
![016.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/30aa98bc-9e4b-6be9-edac-2d23039ad9d8.png)

## ASTERIA WARP
こちらも基本的には、「次へ(N)」をポチポチするだけです。

インストール方法でカスタムセットアップを選択すると、データフォルダーのパスや、管理者パスワード、管理コンソールのポートNo などを指定できます。
簡易セットアップを選択した場合は、ポート番号などはデフォルト値、管理者パスワードはなしになります。
|||
|:------------------:|:------------------:|
|![003.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/4f39992c-eba5-b00f-71b2-f7862d65f0f5.png)|![006.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/250da0c4-e534-820f-0f6b-67a70b0d87cc.png)|
|![008.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/658e3b2c-4683-2154-7d4f-930fb23feacf.png)|![009.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/78bc4fd9-3ea4-94fa-2b0b-68bb71288d3d.png)|
|![011.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/5a046f9d-5f69-e038-adc4-205541fb1324.png)|![012.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/3c69bb23-dd69-9015-7fbf-52d4dc3eae57.png)|

# 管理コンソールにログオンしてみる
「ASTERIA Warp」→「フローサービス開始」をクリックしてフローサービスを起動します。
Windows Service として登録してある場合は不要

Firefox を起動し、「http:‍//localhost:28080(デフォルトの場合)」にアクセスします。
![118.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/fbc23cbe-02e9-413f-c3cc-2a41b6bdbf4c.png)

# ユーザーを作成する
フローデザイナーから接続するためのユーザーを作成します。
![117.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/cb8d1b54-26b4-52ba-1640-6cd9dcbbdcee.png)


# Kintone に接続してみる
「設定」→「コネクション」→「kintone」→「新規」で、kintone へのコネクションを作成してみます。
kintone の接続方法は、Basic認証と、APIトークン認証がサポートされています。
![119.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/00a94648-de48-8b57-b557-12e2381c4f0f.png)


作成したコネクションを選択し、「テスト」をクリックしてみると、無事接続に成功しました。
![120.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/ec1984ba-ef5e-17c7-2163-17310dc73403.png)

ちなみに、TLS 1.2 が使えない状態で接続テストを行ったところ、こんなふうにエラーが発生しました。
![105.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/7119038c-c5a6-6133-6aff-f2e1b3200508.png)


# フローを作成してみる
実際にフローを作成して、実行してみます。
フローの作成方法などについては、ASTERIA Warp のYouTube チャンネルで、実際に操作の様子が紹介されているのでおすすめです。
[ASTERIA Warp (YouTube)](https://www.youtube.com/@ASTERIAjp)

今回は、kintone にKey とValue という2つのフィールドを持つアプリを作成しておき、ASTERIA Warp を使って、CSV のデータを、kintone アプリに登録するフローを作成してみます。

![114.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/9d3cd61f-0d4e-9c0b-882f-b3ad992f93f8.png)
今回作成したフローの作成手順
|||
|-|-|
|1. メモ帳でCSV ファイルを作成|2. FileGet コンポーネントでCSVファイルを読み込み|
|![121.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/bd0b53be-baad-bedc-df3c-be22531fd273.png)<br>1) 読み込みたいファイルをメモ帳で作成し、プロジェクトフォルダーに置きます。<br>2) フローデザイナーのファイルインスペクションにある、更新ボタンをクリックして最新の状態に更新すると、作成したファイルが表示されます。|![122.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/4c7e05a7-c07c-5889-e225-dfad7f08833a.png)<br>1) ファイルタブのFileGet コンポーネントをフローに配置します。<br>2) Startコンポーネットと繋ぎます。<br>3) ファイルインスペクションからCSV ファイルをドラッグ&ドロップします。<br>5) カラムをマッピングするとき分かりやすいように、フィールド名に名前を付けておきます。|
|3. kintone Put コンポーネントで、対象となるアプリとカラムを選択|4. Mapper コンポーネントでCSV と kintone のカラムをマッピング|
|![123.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/dc3b29db-3225-6ca3-e49a-6bf2fc41f084.png)<br>1) kintone Put コンポーネントをフローに配置し、「kintone ビルダー」をクリックします。<br>2) 接続先を選択します。<br>3) 実行する処理で「追加」を選択します。<br>4) kintone アプリを選択します。<br>5) 対象カラムをチェックして、「保存」をクリックします。|![124.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/34fc7f0e-bfab-626f-ca74-afbf7fe2c655.png)<br>1) Mapper コンポーネントをフローに配置し、File Get コンポーネントと、kintone Put コンポーネントを接続します。<br>2) 「マッピングの編集(M)」をクリックします。<br>3) それぞれのフィールドをドラッグ&ドロップで紐づけます。<br>単純にセットするだけでなく、複数の項目を連結したりといった加工も行うことができます。|
|5. コンパイル|6. 実行|
|![125.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/be070f9d-6baf-8ed3-5fa6-8141599f714a.png)<br>1) 実行(R)→コンパイル(C)をクリックし、コンパイルしてエラーがないことを確認します。|![126.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/011e59da-81a0-fbb8-1422-e85697778da8.png)<br>1) 実行(R)→実行(R)をクリックします。<br>2) フローの実行ダイアログで「実行」ボタンをクリックすると、フローが実行されます。|

### 実行結果
実行するとCSV ファイルのデータが、kintone アプリに登録されました。
![116.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/502faf1a-3d0d-62ae-af8e-cc4402d7a479.png)

# まとめ
動いたぁ～～！！
インストーラーが実行できるまでが一苦労でしたが、インストールさえできてしまえば、ノートラブルでした。

SSIS などは触ったことがあるものの、ASTERIA Warp はほとんど触ったことがなかったので、今回この記事を書くにあたって、初期設定から実際にフローを組んで実行するまでを一通り体験できたのはとても良かったです。

![021.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2527645/af1726d0-0dbf-5c85-cacd-18bdb8f03651.png)