Developer/Curl+ORBでの実装時の違い
それでは、Developerでの実装時と、Curl+ORBでの実装時の差異を確認していきましょう。
Developerでの特徴
- サーバサイド、クライアントサイドを意識することが少ない
- 単一言語(PL/SQL)にて実装ができる
- DBアクセスレスポンスが良い
- 今回のサンプル程度であれば、項目定義、プロパティの設定のみで実装が可能である
Curl+ORBでの特徴
- サーバサイド、クライアントサイドを分割して実装できる。データクラスを定義していれば並行開発が可能
- サーバサイドは、一般的なJava+DBアクセスロジックにて実現でき、クライアントにCurl/ORBを使っていることを意識する必要がない
- Curl側のデータクラスはツールにて自動生成できるため、負荷が少ない
- 煩雑なサーバ/クライアント間のデータ通信部分のロジックを省略でき、Curl側へのデータ描画、Java側のデータ抽出作成 部分に注力できる
- ORBはオープンソースで公開されているため、自由なカスタマイズが可能
DBアクセスレスポンスについて
両者のアーキテクチャーが大きく違うため単純な比較はできませんが、DBアクセスレスポンスを比較しました。テーブル[HINMK_TBL]に1000件のデータを格納し、それを画面に表示するという速度検証を行いました。
結果は、Curl/Developer共に1秒以下で表示されます。体感はDeveloperが早いですが、1000件程度の表示であれば両者の速度に大差は感じられませんでした。
作業性について
今回の画面作成の作業性を比較してみます。Developerは、1人で作業し、1時間で作成できました。クライアント/サーバを意識する必要がない反面、分担して作業することができません。Curl+ORBは、サーバサイド/クライアントサイドで担当を分け、2人で作業しました。サーバサイド:30分、クライアントサイド:30分で作成できました。DeveloperもCurl+ORBも トータルでかかる作業時間は大差ありませんでした。Curl+ORBでは自動生成で作成する部分もあるので、”コーディング”する部分は局所的です。
APサーバの設定については、経験がないと苦戦するという点では、Developer/Curlも同じです。両者共に丁寧な解説サイトがありますので、それに従えば構築できます。Curlは、利用するサーバサービスに依存していないため、特段Curlに関する知識がなくても、一般的なWeb/APサーバを構築するための知識さえあればスムーズにサーバを構築できます。
開発ツールについて
Developerの開発は、Forms Builderという開発ツールを用います。項目を作成し、プロパティを設定していき、必要に応じてPL/SQLでロジックをコーディングしていきます。画面のエディタも配備しております。
Curlの開発は、CDE(Curl Development Tools for Eclipse)という開発ツールを用います。Curlのソースコードは、テキストベースですので、前述のコーディングレベルであれば、テキストエディタでも作成可能ですが、開発ツールを用いるとコード補完などコーディングする際に有用な機能が多数あり生産性が向上します。
また、Ver.8.0.0では便利な機能も多数盛り込まれています。詳細は、こちらをご覧ください。
バージョンアップについて
開発ツール/実行環境の宿命上、バージョンが存在します。旧バージョンの開発ツールで作成したプログラムを新バージョンにコンバージョンさせるシーンに良く出会うと思います。
Developerでは、古いバージョンのソースを新しいバージョンのソースにコンバージョンできます。やり方はいくつかありますが、基本的には古いバージョンで作成したソースを新しいバージョンのツールで開き、コンパイルして保存する、というやり方です。(もちろん、バージョン間で変更されたAPIに対する対応は必要です)
Curlの場合は、ヘラルドと呼ばれる部分に新しいバージョン番号を書きます。今回の例では、ヘラルドに{curl 6.0, 7.0, 8.0 applet}と記載しています。これは、Ver.6、7、8のCurl RTEで稼動することを意味しています。
例えば、このプログラムをVer.9に対応させたい(記載日時点でVer.9は存在しません)場合は、ヘラルドに
{curl 6.0, 7.0, 8.0, 9.0 applet}
と書きます。変更後のテストは必要ですが、基本的にはこれでVer.9のCurl RTEでも稼動します(Developerと同様に、バージョン間で変更されたAPIに対する対応は必要です)。
Developerと大きく違うのは、Curlの場合、{curl 6.0, 7.0, 8.0, 9.0 applet}と記載していれば、単一のソースプログラムでCurl RTE Ver.6.0/7.0/8.0/9.0で稼動させることができることです。個々のバージョンで稼動することを確認する必要がありますが、バージョンアップしたからといって、新バージョンでしか稼動しないということはなく、旧バージョンのCurl RTEで稼動させることも可能です。