おはようございます。
期限まであと3日。
昨日、テスト稼働させ、本日その稼働結果を検証します。
今朝の検証だけで
問題点1件
解決事案1件
が有りました。
はてさて、本日の検証でどれだけの問題点が見つかるやら
2020年07月29日
2020年07月28日
あれれ? 今日は何曜日?
今日は木曜日・・・月末まで今日を入れて3日・・・
と、思っていたら今日は水曜日でしたー
と、言うことで一日得した気分!
だって、今日を入れて三日と明日から三日では開発に充てる時間が3割3分増えたんですもん!
これは大きい
さてさて、今日の実績は、テスト環境を構築しました。
従来のアプリケーションで請求データベースを更新するためのテスト環境(#OLD)
新規のアプリケーションで請求データベースを更新するためのテスト環境(#NEW)
テストにより変更されたデータベースを初期状態に戻すため、初期状態のデータベースを補完するための環境(#CUR)
のみっつを構築。
そして、テストにより更新されたそれぞれの請求データベースを比較し、相違点を抽出するチェック用プログラム6本の開発を行いました。
テスト環境構築の時には、実際には#ORGを作成し、それを#NEWに複写し、また#OLDにも複写しました。
しかし、AS400やから複写もすっと終わるやろうとたかをくくっていましたが、さすがに複写だけに3時間もかかってしまいました。
140Gのライブラリーをコピーするのに3時間・・・ではなくて、183,337,187 レコードのデータベースに20本のインデックスが張られているものも含まれていて・・・
そりゃ、ちょっとAS400ちゃんを働かせすぎですよね
と、思っていたら今日は水曜日でしたー
と、言うことで一日得した気分!
だって、今日を入れて三日と明日から三日では開発に充てる時間が3割3分増えたんですもん!
これは大きい
さてさて、今日の実績は、テスト環境を構築しました。
従来のアプリケーションで請求データベースを更新するためのテスト環境(#OLD)
新規のアプリケーションで請求データベースを更新するためのテスト環境(#NEW)
テストにより変更されたデータベースを初期状態に戻すため、初期状態のデータベースを補完するための環境(#CUR)
のみっつを構築。
そして、テストにより更新されたそれぞれの請求データベースを比較し、相違点を抽出するチェック用プログラム6本の開発を行いました。
テスト環境構築の時には、実際には#ORGを作成し、それを#NEWに複写し、また#OLDにも複写しました。
しかし、AS400やから複写もすっと終わるやろうとたかをくくっていましたが、さすがに複写だけに3時間もかかってしまいました。
140Gのライブラリーをコピーするのに3時間・・・ではなくて、183,337,187 レコードのデータベースに20本のインデックスが張られているものも含まれていて・・・
そりゃ、ちょっとAS400ちゃんを働かせすぎですよね
昨日、火曜日の実績!
さぁて、今月も残りは本日を含めてたった3日間!
ラストスパート!
昨日、全てのソース変更と机上デバッグを終えました〜!
そしてテスト環境を構築し、本日から稼働試験を開始しまーす!
あまり時間がないので効率的にテストをしないと、ゲームオーバーになっちゃう
ラストスパート!
昨日、全てのソース変更と机上デバッグを終えました〜!
そしてテスト環境を構築し、本日から稼働試験を開始しまーす!
あまり時間がないので効率的にテストをしないと、ゲームオーバーになっちゃう
2020年07月27日
今週がまた始まったー
2020年07月22日
昨日の実績
今週月曜日に、今月末までに仕上げなければならない案件について調査。
すると、改修が必要なプログラム78本、仕様変更が必要な請求関連データベースファイル6本と特定できた。
特定したのは良いけれど・・・・
で、月曜日は請求データベースへのフィールド追加と、その後のそのデータベースを使用する既存アプリの動作確認。
火曜日はプログラムの変更開始。
火曜日だけで、
かなりロジックを変更するプログラム 3本(4本中)
少しロジックを変更するプログラム 13本 (19本中)+4本(後から見つけたプログラム)
データベースアクセス手順を変更するだけのプログラム 6本(55本中)
のソース変更及びコンパイルエラー取りを完了しました。
これを私一人で・・・
AS400ならではでしょ。
あっ! もちろん特定する為のツール。 一部は自作です。
・プログラムが参照するデータベースをリスト化するツール(自作)
・データベースのインデックスの一覧を表示するツール
・ソースメンバー群から特定の文字列を検索するツール(自作)
・プログラム間の呼び出し関係を一覧表示するツール(自作)
・プログラムのソース履歴管理(自作)
・プログラム群の工程管理(自作)
ツールの作成も特に難しい事はありませんでしたよ。
RPAなんて、AS400は元々提供しているんだーって気がするぐらい便利なマシンです。
すると、改修が必要なプログラム78本、仕様変更が必要な請求関連データベースファイル6本と特定できた。
特定したのは良いけれど・・・・
で、月曜日は請求データベースへのフィールド追加と、その後のそのデータベースを使用する既存アプリの動作確認。
火曜日はプログラムの変更開始。
火曜日だけで、
かなりロジックを変更するプログラム 3本(4本中)
少しロジックを変更するプログラム 13本 (19本中)+4本(後から見つけたプログラム)
データベースアクセス手順を変更するだけのプログラム 6本(55本中)
のソース変更及びコンパイルエラー取りを完了しました。
これを私一人で・・・
AS400ならではでしょ。
あっ! もちろん特定する為のツール。 一部は自作です。
・プログラムが参照するデータベースをリスト化するツール(自作)
・データベースのインデックスの一覧を表示するツール
・ソースメンバー群から特定の文字列を検索するツール(自作)
・プログラム間の呼び出し関係を一覧表示するツール(自作)
・プログラムのソース履歴管理(自作)
・プログラム群の工程管理(自作)
ツールの作成も特に難しい事はありませんでしたよ。
RPAなんて、AS400は元々提供しているんだーって気がするぐらい便利なマシンです。
2020年07月08日
単一レベル記憶・・・・について (Part 4)
さて、前回から日が開いてしまいました。
前回では、AS400に虜になってしまうこと間違いなしで終わりました。
当社のホストコンピューターとして使用しているAS400 (実際の名前はPower Systems) ですが、購入するためにはさすがに一戸建てが一軒買えるぐらい費用がかかりますね。
まぁ、ほとんどの人はローンを組めば購入できると思います。
私でも買えるかもしれませんが買いません
AS400は大好きですが、自宅に置こうとはこれっぼっちも思いません。
前に話したかもしれませんが、グループ親会社のホストコンピューターは汎用コンピューターというカテゴリーのもので、購入するには多分10階建てのビルぐらいは買えてしまうんじゃないでしょうか
家一軒が数千万円、ビル一棟が十億円とすれば、その価格比は20倍から30倍になりますよね。
車で言えば、100万円の軽自動車と、2000万円のフェラーリぐらい違うんでしょうね。
(軽自動車は最近100万円ぐらいで買えんぞーってお怒りの方もおられるかも知れませんがご容赦を)
で、この軽自動車とフェラーリが、信号グランプリをしたら、どったが勝つでしょうね?
まさか、軽自動車がぶっちぎりで勝つ・・・とお考えの人は居られるでしょうか?
もしおられたら是非コメント欄にその理由を記入していただければ、新たな認識が得られるのでぜひお願いいたします。
たいていの人は私と同じで、フェラーリがぶっちぎりで勝つと考えると思います。
当然ですよね。
ところが・・・・
コンピュータの世界では、逆転もあり得るんです。
その逆転を具現化するのが AS400 なんです。
家一軒分の AS400 のCPU性能、メモリ量、データベースアクセススビード等、軽自動車にF1エンジンを積んで、フルチューンコンピュータを積んで、F1用のタイヤを履いて・・・みたいな感じですね。それでいて100万円なんです。
もちろん、軽自動車にF1エンジンだけ積んでも、まともに走れません。トータルにチューンしないとだめですよね。
AS400では、フェラーリのようにワンメイクなんです。
フェラーリはF1の世界で常にトップレベルのチームです。
それは何から何まで自分らで作っているからです。
それはなぜか?
単純です。それぞれのパーツごとに必要な仕様を決めて、その通りに作れば、組み合わせてもそれぞれが最高の性能を発揮できるからです。
もし、ボディーだけ、シャシーだけ、はたまた伝送系だけ外部委託したら、ちょっとした修正などに素早く対応できないばかりか余分なコストがかかってしまいます。
IBMはCPUなどの重要部品やOSなどのソフトウェアも自前で開発しています。CPUとOSはそれぞれの性能を発揮させるためには非常に密接な関係にあります。
CPUはOSが効率よくコンピュータシステムを制御するための命令を提供し、OSはCPUを効率よく活用するためのコードを提供する・・・という環境が構築できています。
このために、安く高性能なコンピュータシステムが構築できているわけです。
前回では、AS400に虜になってしまうこと間違いなしで終わりました。
当社のホストコンピューターとして使用しているAS400 (実際の名前はPower Systems) ですが、購入するためにはさすがに一戸建てが一軒買えるぐらい費用がかかりますね。
まぁ、ほとんどの人はローンを組めば購入できると思います。
私でも買えるかもしれませんが買いません
AS400は大好きですが、自宅に置こうとはこれっぼっちも思いません。
前に話したかもしれませんが、グループ親会社のホストコンピューターは汎用コンピューターというカテゴリーのもので、購入するには多分10階建てのビルぐらいは買えてしまうんじゃないでしょうか
家一軒が数千万円、ビル一棟が十億円とすれば、その価格比は20倍から30倍になりますよね。
車で言えば、100万円の軽自動車と、2000万円のフェラーリぐらい違うんでしょうね。
(軽自動車は最近100万円ぐらいで買えんぞーってお怒りの方もおられるかも知れませんがご容赦を)
で、この軽自動車とフェラーリが、信号グランプリをしたら、どったが勝つでしょうね?
まさか、軽自動車がぶっちぎりで勝つ・・・とお考えの人は居られるでしょうか?
もしおられたら是非コメント欄にその理由を記入していただければ、新たな認識が得られるのでぜひお願いいたします。
たいていの人は私と同じで、フェラーリがぶっちぎりで勝つと考えると思います。
当然ですよね。
ところが・・・・
コンピュータの世界では、逆転もあり得るんです。
その逆転を具現化するのが AS400 なんです。
家一軒分の AS400 のCPU性能、メモリ量、データベースアクセススビード等、軽自動車にF1エンジンを積んで、フルチューンコンピュータを積んで、F1用のタイヤを履いて・・・みたいな感じですね。それでいて100万円なんです。
もちろん、軽自動車にF1エンジンだけ積んでも、まともに走れません。トータルにチューンしないとだめですよね。
AS400では、フェラーリのようにワンメイクなんです。
フェラーリはF1の世界で常にトップレベルのチームです。
それは何から何まで自分らで作っているからです。
それはなぜか?
単純です。それぞれのパーツごとに必要な仕様を決めて、その通りに作れば、組み合わせてもそれぞれが最高の性能を発揮できるからです。
もし、ボディーだけ、シャシーだけ、はたまた伝送系だけ外部委託したら、ちょっとした修正などに素早く対応できないばかりか余分なコストがかかってしまいます。
IBMはCPUなどの重要部品やOSなどのソフトウェアも自前で開発しています。CPUとOSはそれぞれの性能を発揮させるためには非常に密接な関係にあります。
CPUはOSが効率よくコンピュータシステムを制御するための命令を提供し、OSはCPUを効率よく活用するためのコードを提供する・・・という環境が構築できています。
このために、安く高性能なコンピュータシステムが構築できているわけです。
2020年07月03日
今日も頑張りましたー
今日も基幹システムのアプリケーション1本を開発して、3本を改修して、2本のチェックをしました。
RPGならではの開発スピードですよね。
一本の開発と言っても、独自の三階層アプリなので、実際には3個のプログラムオブジェクト、1個の画面インターフェース用ファイルオブジェクトを作成したわけです。
そのうえ、もう3本改修。
本日1日の収穫! 一時間ちょっと残業しましたが、それだけです。
もちろん、休憩は一時間しっかりとっていますよ。
こーんなに開発効率も良く、出来上がったオブジェクトは、何百万件もシーケンシャルにキーなしファイルを何十回も読み込むような下手くそなコーディングをしない限り、だれでもが一流プログラマーになれます。
データベースに適切にインデックスを張り、コーディングするだけで、一人前のアプリケーションができてしまうんです。
もしかしたら・・・Excelのマクロより簡単かも・・・
RPGならではの開発スピードですよね。
一本の開発と言っても、独自の三階層アプリなので、実際には3個のプログラムオブジェクト、1個の画面インターフェース用ファイルオブジェクトを作成したわけです。
そのうえ、もう3本改修。
本日1日の収穫! 一時間ちょっと残業しましたが、それだけです。
もちろん、休憩は一時間しっかりとっていますよ。
こーんなに開発効率も良く、出来上がったオブジェクトは、何百万件もシーケンシャルにキーなしファイルを何十回も読み込むような下手くそなコーディングをしない限り、だれでもが一流プログラマーになれます。
データベースに適切にインデックスを張り、コーディングするだけで、一人前のアプリケーションができてしまうんです。
もしかしたら・・・Excelのマクロより簡単かも・・・
2020年07月02日
一日に何本も・・・・
7月1日より、大型顧客との取引が始まりました。
その為のシステム変更を進めて来ました。
しかし、その大型顧客からの情報ファイルが従前から調整しててきた仕様と違う・・・・
仕様では、日付けは、YYYY/MM/DD形式なのに、実際のファイル中にはYYYYMMDD。
また、仕様では15桁のID番号は、なぜか1.23456E+10とか・・・・
それから、仕様ではファイルの行区切りは、CrLfだったのに、実際は Lf区切り
二日目・・・今度は、それらが混在している・・・・
どうなることやら・・・
その為のシステム変更を進めて来ました。
しかし、その大型顧客からの情報ファイルが従前から調整しててきた仕様と違う・・・・
仕様では、日付けは、YYYY/MM/DD形式なのに、実際のファイル中にはYYYYMMDD。
また、仕様では15桁のID番号は、なぜか1.23456E+10とか・・・・
それから、仕様ではファイルの行区切りは、CrLfだったのに、実際は Lf区切り
二日目・・・今度は、それらが混在している・・・・
どうなることやら・・・
2020年06月26日
単一レベル記憶・・・について (Part 2)
前回はAS400の単一レベル記憶のおかげで、データベースアクセスがめちゃくちゃ早いっていうことをお話ししました。
そして、この単一レベル記憶はスーパー進化したキャッシュみたいなものだとも言いました。
キャッシュはご存じですよね。もし、ご存じなかったら・・・コメントください。個別説明します
さて、CPUコアにもキャッシュが存在しています。
CPUはどんどん進化し高速化してきていますが、メモリはそれほど高速化されていません。
ましてやハードディスクなどは・・・今ではオールフラッシュもありますが・・・
コンピューターを高速化するには、まずCPUを高速化し、メモリを高速化し、周辺記憶装置を高速化していけば、確かに早くなります。 ただ、CPUだけを高速化してもメモリや周辺記憶装置が遅ければ、全体として遅くなるのは目に見えています。
それは、こんな感じです。 軽トラにF1のエンジンを積んでも時速300キロはでませんよね。
タイヤが持ちません。エンジンの大パワーが路面とタイヤの摩擦力を上回って、タイヤが虚しく空回りするだけです。
CPUを高速化しただけのコンピューターもそうです。 CPUだけでは動きません。メモリに格納されている命令(機械語)を読み出し、それに従ってメモリや周辺記憶装置をアクセスしにいくんです。 CPUがメモリに、このアドレスのデータをくれ!って指示しても、メモリはなかなかデータを渡してくれません。CPUはひたすらそのデータが来るのを待つばかりです。これが繰り返されるのです。しかして、ある時間のうち実際にCPUが働いている時間はごくわずか。残りは待機しているのです。
まさしくCPUが空回り
では、どうすればいいでしょうか?
メモリを極限まで高速化すればいいんです。 CPUを待機させないぐらいに高速なメモリに・・・
ただし、早くはなるけど、べらぼうにコストがかかりますねー
えっ? じゃあどうすればー?
そこで、キャッシュの登場です。
CPUの近くには高速なメモリを少し、その次には少し高速なメモリを少し多めに、残りは低速な周辺記憶装置をたっぷりと。
こうすると、CPUは近くの高速メモリをアクセスして待機時間がみじかくなり、満足します。
しかし、高速メモリはちょっぴりなので、CPUが必要とするデータをいつも保持しているわけではありません。
CPUが要求したデータがないと、CPUは少し高速な方から読んでこんかい!って指示を出して、待機します。その後は満足げに仕事をします。
ただ、少し高速なメモリも少し多めにあるだけなので、大量のデータを扱う処理をCPUがしている場合は、すぐにCPUに要求データを返せない状態になります。そうすると、もっと低速な周辺記憶装置から読み込まなくてはいけません。ここでまた待機時間が発生しますよね。これがCPUのパフォーマンスを下げる要因になります。
そこで、IBMは考えました。
全部、高速なメモリにしちゃえ!
そうすると、CPUはデータを欲しいときに得ることができ、待ち時間を最小限にできるから、CPUをとことんこき使うことができると
でも、最初に言った通り、そんなことしたらお客さんが居なくなるほど高価なコンピュータになっちゃうでしょう。
そこで・・・CPUにはぜーーーーんぶメモリが乗っているように勘違いさせて、実はメモリの向こうに周辺記憶装置があるような仕組みを考えちゃいました。
それが単一レベル記憶です。
何が単一レベルかと言うと、高速なメモリも低速な周辺記憶装置もCPUから見たら同じレベルの高速なメモリとして扱えるようにしちゃったんです。
あっれー! 長くなり過ぎたので、続きは次回に・・・
そして、この単一レベル記憶はスーパー進化したキャッシュみたいなものだとも言いました。
キャッシュはご存じですよね。もし、ご存じなかったら・・・コメントください。個別説明します
さて、CPUコアにもキャッシュが存在しています。
CPUはどんどん進化し高速化してきていますが、メモリはそれほど高速化されていません。
ましてやハードディスクなどは・・・今ではオールフラッシュもありますが・・・
コンピューターを高速化するには、まずCPUを高速化し、メモリを高速化し、周辺記憶装置を高速化していけば、確かに早くなります。 ただ、CPUだけを高速化してもメモリや周辺記憶装置が遅ければ、全体として遅くなるのは目に見えています。
それは、こんな感じです。 軽トラにF1のエンジンを積んでも時速300キロはでませんよね。
タイヤが持ちません。エンジンの大パワーが路面とタイヤの摩擦力を上回って、タイヤが虚しく空回りするだけです。
CPUを高速化しただけのコンピューターもそうです。 CPUだけでは動きません。メモリに格納されている命令(機械語)を読み出し、それに従ってメモリや周辺記憶装置をアクセスしにいくんです。 CPUがメモリに、このアドレスのデータをくれ!って指示しても、メモリはなかなかデータを渡してくれません。CPUはひたすらそのデータが来るのを待つばかりです。これが繰り返されるのです。しかして、ある時間のうち実際にCPUが働いている時間はごくわずか。残りは待機しているのです。
まさしくCPUが空回り
では、どうすればいいでしょうか?
メモリを極限まで高速化すればいいんです。 CPUを待機させないぐらいに高速なメモリに・・・
ただし、早くはなるけど、べらぼうにコストがかかりますねー
えっ? じゃあどうすればー?
そこで、キャッシュの登場です。
CPUの近くには高速なメモリを少し、その次には少し高速なメモリを少し多めに、残りは低速な周辺記憶装置をたっぷりと。
こうすると、CPUは近くの高速メモリをアクセスして待機時間がみじかくなり、満足します。
しかし、高速メモリはちょっぴりなので、CPUが必要とするデータをいつも保持しているわけではありません。
CPUが要求したデータがないと、CPUは少し高速な方から読んでこんかい!って指示を出して、待機します。その後は満足げに仕事をします。
ただ、少し高速なメモリも少し多めにあるだけなので、大量のデータを扱う処理をCPUがしている場合は、すぐにCPUに要求データを返せない状態になります。そうすると、もっと低速な周辺記憶装置から読み込まなくてはいけません。ここでまた待機時間が発生しますよね。これがCPUのパフォーマンスを下げる要因になります。
そこで、IBMは考えました。
全部、高速なメモリにしちゃえ!
そうすると、CPUはデータを欲しいときに得ることができ、待ち時間を最小限にできるから、CPUをとことんこき使うことができると
でも、最初に言った通り、そんなことしたらお客さんが居なくなるほど高価なコンピュータになっちゃうでしょう。
そこで・・・CPUにはぜーーーーんぶメモリが乗っているように勘違いさせて、実はメモリの向こうに周辺記憶装置があるような仕組みを考えちゃいました。
それが単一レベル記憶です。
何が単一レベルかと言うと、高速なメモリも低速な周辺記憶装置もCPUから見たら同じレベルの高速なメモリとして扱えるようにしちゃったんです。
あっれー! 長くなり過ぎたので、続きは次回に・・・
2020年06月25日
単一レベル記憶………に付いて
AS400を使っていて不思議に思うこと………
昨晩の投稿で、レコード数が十億を越えてるのにそれを感じさせないアクセススピード!
AS400ちゃんは手を抜くわけでもなくきちんと仕事をしてくれる
結果は正しく返してくれる!
早くて正しい仕事、見習いたいものだ(*^▽^*)
冗談はさておき、ほんと、良くできたOSとデータベースです!
さて、新しいシステムを作るとき非機能要件ってのがあって、これを決めないと、出来上がってきたシステムがもしかしたら使い物にならない場合がありますよね!
例えば、有る仕事をコンピューターにさせるため、仕様書を作ってプログラムを作ってもらうとします。
ただ、入力がこんなで出力がこんなプログラムを作ってって頼むとその通りに出来上がってくるでしょう!
ただ、それを使ってみたら、今まで処理時間が2時間もかかってて、それじゃ遅すぎるから頼んだのに、出来上がったプログラムを動作させると4時間かかった_| ̄|〇 なんてことになると、プログラムを作ってくれた人にお金を払うどころかどつきたくなりますよね(*^▽^*)
なので、入力がこんなで出力がこんなで………の他に非機能要件として、例えば10分以内で完了することって要件を提示するんです。
以前、当社の基幹システムを別システムに置き換えようとした動きがありました。これは当然当社のシステムを嫌いなグループ親会社の人間の陰謀です(笑)
当然、現在の機能はそのままにすること………が最低条件ですね。当然です。親会社はソフトウェア外注(自分で作らない・・・作れない)なんです。
つまり、お金がかかるわけです。
せっかくお金をかけるんだったら、こんな機能やあんな機能やそんな機能が欲しくなりますよね。全く同じ昨日ならお金をかける意味がないですから。
ただ、その陰謀はとにかくAS400を排除したかったんです。
まぁ、百歩譲ってそれもありとしましょう。すると、置き換えるにあたって現在の機能はそのままにするとともに、所要時間の制限を加えることにしました!当然ですよね!
で、困ったのはそこからです。
測定可能な時間をかけて動作する処理プログラムを探し始めたんですが、なかなか見つかりません。もちろん、通常の処理データ量でです。丸一日かけて見つけました!
そのプログラムは開始してから終了するまで3分ほどかかったのを覚えています!
やったー!
って思いました!
時間のかかるプログラムを見つけて喜ぶのも変ですがね(*^▽^*)
で、時間を正確に計るためにもう2回計ることにしました。パソコンと違って、多数のジョブが平行に稼働しているホストコンピューターでは他のジョブの影響も受けるだろうから、三回計測して平均を出そうと!
そしてプログラムを呼び出し、さっきと同じデータ量で処理させる範囲を設定し、実行を指示!
あれっ!
何故か2秒ちょっと???
範囲を間違えたのか?と思い確認したけれども、ミスはない!
もう一度!
あれっ!やっぱり2秒ちょっと!
何でやーって………ふと、AS400のアーキテクチャーで単一レベル記憶ってのが有ったことに気付きました!いや、思い出しました!
まぁ、ざっくり言うとキャッシュメモリのスーパー進化版みたいなもんですね!
ざっくり過ぎましたか(笑)
単一レベル記憶の説明は次回に・・・
昨晩の投稿で、レコード数が十億を越えてるのにそれを感じさせないアクセススピード!
AS400ちゃんは手を抜くわけでもなくきちんと仕事をしてくれる
結果は正しく返してくれる!
早くて正しい仕事、見習いたいものだ(*^▽^*)
冗談はさておき、ほんと、良くできたOSとデータベースです!
さて、新しいシステムを作るとき非機能要件ってのがあって、これを決めないと、出来上がってきたシステムがもしかしたら使い物にならない場合がありますよね!
例えば、有る仕事をコンピューターにさせるため、仕様書を作ってプログラムを作ってもらうとします。
ただ、入力がこんなで出力がこんなプログラムを作ってって頼むとその通りに出来上がってくるでしょう!
ただ、それを使ってみたら、今まで処理時間が2時間もかかってて、それじゃ遅すぎるから頼んだのに、出来上がったプログラムを動作させると4時間かかった_| ̄|〇 なんてことになると、プログラムを作ってくれた人にお金を払うどころかどつきたくなりますよね(*^▽^*)
なので、入力がこんなで出力がこんなで………の他に非機能要件として、例えば10分以内で完了することって要件を提示するんです。
以前、当社の基幹システムを別システムに置き換えようとした動きがありました。これは当然当社のシステムを嫌いなグループ親会社の人間の陰謀です(笑)
当然、現在の機能はそのままにすること………が最低条件ですね。当然です。親会社はソフトウェア外注(自分で作らない・・・作れない)なんです。
つまり、お金がかかるわけです。
せっかくお金をかけるんだったら、こんな機能やあんな機能やそんな機能が欲しくなりますよね。全く同じ昨日ならお金をかける意味がないですから。
ただ、その陰謀はとにかくAS400を排除したかったんです。
まぁ、百歩譲ってそれもありとしましょう。すると、置き換えるにあたって現在の機能はそのままにするとともに、所要時間の制限を加えることにしました!当然ですよね!
で、困ったのはそこからです。
測定可能な時間をかけて動作する処理プログラムを探し始めたんですが、なかなか見つかりません。もちろん、通常の処理データ量でです。丸一日かけて見つけました!
そのプログラムは開始してから終了するまで3分ほどかかったのを覚えています!
やったー!
って思いました!
時間のかかるプログラムを見つけて喜ぶのも変ですがね(*^▽^*)
で、時間を正確に計るためにもう2回計ることにしました。パソコンと違って、多数のジョブが平行に稼働しているホストコンピューターでは他のジョブの影響も受けるだろうから、三回計測して平均を出そうと!
そしてプログラムを呼び出し、さっきと同じデータ量で処理させる範囲を設定し、実行を指示!
あれっ!
何故か2秒ちょっと???
範囲を間違えたのか?と思い確認したけれども、ミスはない!
もう一度!
あれっ!やっぱり2秒ちょっと!
何でやーって………ふと、AS400のアーキテクチャーで単一レベル記憶ってのが有ったことに気付きました!いや、思い出しました!
まぁ、ざっくり言うとキャッシュメモリのスーパー進化版みたいなもんですね!
ざっくり過ぎましたか(笑)
単一レベル記憶の説明は次回に・・・