この記事では、Rick Kamenos氏が、Visual StudioでC++言語によって作成されたエンタープライズアプリケーションを、Delphi / RAD Studioを使って書き直し、これまで数時間かかっていたアプリケーションの処理をわずか数分に短縮した方法について紹介します。C++がプログラミング言語としては、最速のコードを記述できると喧伝されていることを考えると、Delphiの能力を強く裏付けるものと言えるでしょう。
Table of Contents
直面していた課題
ある大企業では、Visual Studio / Visual C++を使用して、複数のシステムを構築していました。これらのシステムは、政府機関への重要な報告に使用されていましたが、問題続きだったので、同社は直ちに機能するソリューションを用意する必要に迫られていました。
最初の問題は、データインポートシステムで、データウェアハウスにデータをインポートするのに、CDから情報を読み取り、データのクリーニングを行って変換する作業を担当していました。しかし、このプロセスには何時間もかかり、しばしば完了することなくエラーが発生していました。
レポートにも課題が
2つ目の問題は、政府向けのレポート生成で、この作業にも何時間も要し、時には完了しないこともありました。これらのレポートは、最初の問題が発生していたインポートデータと、組織内で作成された追加データに依存していました。
どのように問題を解決したのか
もちろん、最初に修正すべきなのは、データインポートについてです。2つ目の問題は、レポートが最新であることを確認するため、このデータに依存しており、何よりもまず適切なデータが必要でした。C++コードを調査したところ、平凡なレベルのプログラミングであることが分かりました。それだけでなく、Delphiのコンポーネントパレットに並んでいる標準のコンポーネントを使えば済むような処理を記述しているコードもいくつか見受けられました。これは、すべてをDelphiで書き直す方がむしろ最善だろうと示唆するものでした。Delphiの最大の強みの1つは、エンタープライズシステム開発を迅速かつ簡単にするRADアプローチであり、これは、厳密に型指定された言語とコンポーネントによって支えられていました。
データの保存形式
データベースレコードは、単純なカンマ区切り形式でCDに格納されていましたが、フィールド長については可変でした。そこで、データフィールドを固定長に変更するように依頼しました。これにより、1レコード全体をブロックとして読み取り、そこに含まれる各フィールドを即座に型キャストできるようになりました。
ここまで出来てしまえば、あとはいくつかのデータ異常テストと文字列変換ルールを適用して、データウェアハウスにデータを送り込む準備を整えるだけです。Delphiのデータベースコンポーネントを使用して、わずか数行のコードを記述し、「クリーニングされた」各レコードをデータベースにインポートします。Delphiによるエンタープライズ開発におけるもう1つの素晴らしい強みは、非常に複雑なアプリケーションであっても、高速に動作し、簡単にデータ接続が可能な優れたデータベースコンポーネントの存在です。
簡単なテストを行ったところ、インポートに要する時間が、数時間からわずか数分に短縮されました。いくつかのコンポーネントとほんのわずかなコードで、Delphiを使用する以前に同社が導入していたシステムをはるかに凌駕する能力を実現したのです。同社では、システム管理においてなんとも苛立たしい思いをしていたので、これは大いに歓迎されました。
次に修正を行ったのは、レポート機能です。システムでは、さまざまなレポートが生成されていました。これらはすべて政府機関に送られ、審査されます。レポートデータは、Excelファイル形式で出力する必要がありました。これらのExcelスプレッドシートはデータ計算に使用され、その結果を確認してからファイルをアーカイブしていました。
Visual Studio / Visual C++からDelphiへの切り替えで役立ったこと
Delphiは本当に役立ちました。Excel形式のファイルを開き、読み書きが可能なDelphiコンポーネントがあったのです。つまり、そのソリューションは、利用可能なデータベースコンポーネントを使用してデータ ウェアハウスに接続するだけの小さなアプリケーションに過ぎませんでした。データ取得にクエリーをオープンし、Excelコンポーネントを使ってそのデータをファイルに書き込むだけです。スプレッドシートのセル配置を適切に調整し、望むような結果を提供できるようにすればよいのです。
「終わりよければすべてよし」この言葉は、Delphiによる開発にぴったり当てはまります。Delphiによる開発では、さらに拡張機能を加えました。これは、サーバー拡張機能と組み合わせたもので、管理者がレポートを確認し、正常だった場合には、スプレッドシート上で右クリックして、[送付先]メニューを選択してエージェントに送付できるようにしました。エージェントの候補はリスト表示され、適切なエージェントを選択すると、ファイルはサーバー経由でFTP転送されます。
それ以外の複雑な問題も、Delphiを用いることで、単純なソリューションの作成で解決することができました。これらはうまく機能し、簡単に実現することができたのです。
この記事は、Enterprise Article Showcaseへ投稿されたものです。RAD Studio、Delphi、C++Builderと関連技術を用いて構築した開発プロジェクトの成功事例をお持ちの方は、ぜひご連絡ください。詳細はこちらをご覧ください。
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition