生産管理システムで「再帰呼び出し」の速度を検証
グーグルはGoogle App Engine(以下、GAE)から利用できるRDB(MySQL)の「Google Cloud SQL」(以後Cloud SQL)の提供を“Limited Preview(限定プレビュー)”としてアナウンスしています。前回の「」では、ローカル環境でCloud SQLを動かすための準備・設定などを中心に見てきました。今回は、下記の3つのポイントを中心に見ていきます。
- アプリケーションとして生産管理システム
- プログラムロジックでは「再帰呼び出し」(Recursive Call)
- Cloud SQLのパフォーマンスを測定する
なお今回は、Cloud SQLの基幹系サンプルにポイントを置いた内容です。Cloud SQLを使用するための準備・設定やプログラミング環境などについては、「駆け足で見るGoogle Cloud SQLでできること」および、前回の記事を参照してください。
今回のサンプル―― 生産管理とMRPシステム
今回はCloud SQLのサンプルとして、基幹系でのコンピュータを使用した生産管理システムを取り上げてみます。生産管理システムで最も多く使用されているのは「MRPシステム」といわれるものです。
図1はMRPシステムの機能構成図です。MRPとは「Material Requirements Planning」の略で資材所要量計画を意味しており、生産管理システムの中核機能です。このMRPロジックには入力が3種類あり、1つは「生産計画数量」(基準日程生産計画)、次に「購入品」「仕掛品」の在庫数量、もう1つは、ここで取り上げる「部品構成表」(BOM=Bill of Materials)です。
アウトプットとしては、「いつまでに」「何を」「何個」製造または発注するかという、生産活動を行うための必須の情報を計算しアウトプットするのがMRPモジュールです。
ここでサンプルとして取り上げる部品構成表は、図2のように完成品を頂点として、それを構成する部品を展開したものです。例えば、完成品が自動車であれば、自動車はボディ、エンジン、バンパー、タイヤなど多くの部品から構成されています。その中でエンジン(部品B)は、ピストン(部品F)やシャフトから構成され、またビストンはシリンダやノズルから構成されるという形です。
この部品構成表には、製造・購入リードタイムやロット数(まとめ数量)などの情報も付加され、生産管理システムで最もコアとなる最も重要なマスタデータです。今回は、JavaScriptでの「再帰呼び出し」ロジックを使用して、任意の完成品を構成する子部品構成をワンクリックからすべて表示するサンプルを紹介します。
サンプルの画面表示と操作
図3は「App Engine Cloud SQL部品構成表示」の初期画面表示です。
初期画面に表示されているA0001〜A0008は完成品の部品番号で、左の[0]は完成品の構成レベルを表してします。この画面で、例えば「A0001」をマウスクリックすると、図4のように完成品「A0001」を構成する子部品が、すべての構成レベルで表示されます。
この部品構成表示では、JavaScriptの再帰処理関数内からAjaxの非同期通信でサーブレットにリクエストを送信し、サーブレットから接続されるBeansメソッド内で、Cloud SQLによる部品構成情報へ接続しています。
図4の画面上部には、「実行時間7418」と表示されています。これは「A0002」をクリックしてから図の部品構成表示が完了するまでに要した時間(単位ミリ秒)で、約7.5秒近くかかっていることになります。A0002には、28個の子部品があり、それを個別に接続するわけですから、ある程度時間がかかりますが、それでも7.5秒というのはパフォーマンスが良いとはいえません。この点については、この後具体的に見ていきます。
表示された構成から部品番号をマウスオーバすると、その部品の部品情報が図5のように表示され、また部品のキー検索に要したBeansメソッド内のCloud SQL処理時間が実行時間の行に単位ミリ秒で表示されます。
この画面はサンプルなので、部品情報は簡単な内容になっています。実務用に作成する場合は、もっと詳細の部品情報も表示でき、実際の業務使用でも有効な機能となるはずです。
Copyright © ITmedia, Inc. All Rights Reserved.