このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

3階層型アーキテクチャ

  • 垂直分割型の一種。
  • Webシステムにおいては3階層型アーキテクチャがよく利用される。
    • ブラウザは単なるインターネットコンテンツの表示用ソフトウェアではなく、より多機能(リッチ)な端末になっている。これは3階層型アーキテクチャの上で、クライアントサーバー型システムを動かしているようなイメージとなる。

[例]

  • Webサーバー
    • 複数のhttpdプロセスが立ち上がる。
  • APサーバー
    • 例えば、JVM上で複数のスレッドが起動可能。
  • DBサーバー
    • 複数のDBプロセスがあり、DBプロセスは共有メモリでデータをやり取り可能。

 プログラムサーバー内部のディスク上にインストールされている。起動依頼があると、カーネルがプログラムからプロセスを作成する。また、リクエストがあった分だけメモリ空間を割り当てる。
 OS上のプロセスが稼動し、ユーザーのリクエストを受け付けるようになる。

[補講]1つの銀行には口座数が数十万という単位で存在する。APサーバー上ではこれらすべてのデータを管理するのが現実的ではなく、大量データを管理するのはDBサーバーが向いている。
 APサーバー上のスレッドはDBサーバーに問い合わせを行い、その結果をHTMLなどにまとめてから、Webサーバーからクライアントに返す。

 一方、日本の都道府県情報、郵便番号の情報などは頻繁に変更されるものではないので、DBが持つのではなく、ファイルが管理しておき、それを読み込むことで取得することで効率化が図れる(毎回DBに問い合わせるのは効率が悪くなる)。1度読み込み、JVM内部でキャッシュとして格納するべきものである。 ◇

メリット

  • サーバーへの負荷集中の改善が期待できる。
  • クライアント端末の定期アップデートが必要ない。
  • 折り返しによるサーバー負荷低減が期待できる。

デメリット

  • 仕組みがクライアントサーバー型アーキテクチャより複雑になる。

参考文献

  • 『絵で見てわかるITインフラの仕組み』