|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| アプリケーションサーバでの工夫 | ||||||||||||
|
図4はCV.netの3階層モデルです。 3階層システムは「プレゼンテーション層」「ビジネスロジック層」「データ層」のようないい方で分離されます。このとき、「システム特性によってどこにボトルネックが発生するか」を考える必要があります。 C/Sの場合はDBサーバにあるデータ層がネックになるでしょう。ネットワークアクセスも集中します。Webでの3階層システムの場合、ネットワーク部分は分離されておりWebサーバ側に負荷分散されています。 3階層、独立という部分だけを単純に捉えてビジネスロジックでの処理に負荷をかければ、C/SのときのDBボトルネックと同様で、アプリケーションサーバにボトルネックが移行したに過ぎません。 CV.netでの負荷テスト結果(e-Loadによるテスト)を見せていただきました。2,000セッションまで同時セッション数を上げ、大量の帳票/明細照会を行ったケースでの検査ですが、セッション数の増加が各セッションのレスポンスタイムに大きな影響を与えていないことがわかりました。これは各階層がバランスよく最適化されているためだと思います。 最適化の工夫に関して、佐藤氏は以下のようにコメントしています。 「アプリケーションサーバではO/Rマッピングをやりません。DBと同じ構造を持つオブジェクトをリクエストのたびに作成するのは無駄であり、負荷が増えます。クライアントからはデータ名をリクエストする形で、ほぼスルーでクエリーをDBに投げます。クライアント側から見たときにリクエストのパターンは3通りあります。 1回のリクエストで完結する処理、複数回のリクエストで完結する処理、クライアント側では1回のリクエストだがサーバ側ロジックが必要な処理の3つです。 O/RマッピングとはDBから取り出したレコードセットを永続データオブジェクトとしプログラムで扱いやすくするためのものですが、そもそもプログラム上でループ処理を記述するよりは、1つのSQL文、あるいは複数のSQL文でDB側に処理させたほうが圧倒的に効率良くなります。 例えばO/Rマッピングを行い1万レコードのオブジェクトを作成してループ処理させるよりも、適切な条件文を加えたSQL文1行で済ませたほうが効率的であり、DBサーバに対するネットワーク負荷も1万倍軽くなるということです」 O/Rマッピングはデータベースに対する煩雑な処理をなくし、スマートにします。クライアント側から見たときには一旦アプリケーションサーバ上で永続オブジェクトとすることにあまり意味はありませんが、必要なデータに対する照会、登録、修正、削除といった処理を透過的に行うことができるようになり、拡張性と柔軟性を持ったアプリケーションの構築が可能になります。 しかし、エンドユーザに提供するシステムの操作性が重要であることは、前回、Webに対するシステムの考え方で述べました。CV.netは冒頭のようにネットワーク環境、クライアント環境を指定/制御できないため、3階層での最適化手段の1つとしてアプリケーションサーバでのO/Rマッピングを行わずボトルネックを解消しています。これは検証が導きだした結果です。 |
||||||||||||
| 画像ファイルの工夫 | ||||||||||||
|
画像は多用しますとレスポンス悪化の要因となります。業務系システムにおいて画像を多用するケースはあまりありませんが、今回取り上げた「アパレルトータルシステム」は、名前の通りアパレル用であり、「商品画像」は必要なシステム要件です。 図5は仮のデータによる画像画面です。左側のグリッド(SpreadSheet)に品番単位に商品が掲載されています。スクロールは、矢印キーでもスクロールします。このとき、商品画像をサーバからダウンロードすると、各商品のセル部分で画像ダウンロード時間による待ちが発生し、スムーズなスクロールは通常できません。 ここの工夫として、CV.netでは、Biz/BrowserのクラスのHTTPDownload Classを利用しています。このクラスは、画面上のGUIと別のスレッドで動作し、サーバへリクエストを投げレスポンスを受け取ります。これにより、画面上でスムーズにスクロールしている裏で画像のダウンロードが行われます。 よって、はじめは画像が間に合わず何も現れませんが、すべてのダウンロードが終わった段階で、スクロールに画像もついてくるようになります。エンドユーザのオペレーションリズムを崩さない工夫です。快適な操作が業務生産性を高めます。 Biz/Browserの機能であるキャッシュは画像単位で対象となりますので、恣意的な削除を行わない限り、次からはサーバからのダウンロードが発生せず、高速な描画となります。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||



