3層アーキテクチャ(3階層システム)を分かりやすく

IT-Skills

3層アーキテクチャとは、クライアントサーバシステムを3階層に分割して構築するシステム形態のことを言います。

3層アーキテクチャは、3階層システム、3層クライアントなど、様々な呼ばれ方をしますが、このページではIPAの資格試験に出てくる「3層アーキテクチャ」で統一して説明します。

このページで学べる内容
  • 前提:クライアント・サーバシステム
  • 3層アーキテクチャとは?
    • プレゼンテーション層
    • アプリケーション層
    • データ層
  • 3層アーキテクチャの具体例

3層アーキテクチャは、現在のシステム構築における主流となっており、ITに関わる人間であれば知らないと恥ずかしい基本知識ですので、是非最後までご覧ください。

スポンサーリンク
スポンサーリンク

前提:クライアントサーバシステムについて

3層アーキテクチャの前提知識となるクライアントサーバシステムの概念について。

クライアントサーバシステムとは、サービス(実際の処理)を提供する「サーバ」と、サービスをリクエストする「クライアント」とで役割を分担したシステムのことです。

処理の要求と結果の表示を行うクライアントと、実際の処理を行うサーバを分離して構築することで、負荷分散柔軟なシステム変更を実現することが可能になります。

3層アーキテクチャは、このクライアントサーバシステムに含まれる概念の1つ。

さらに詳しい解説を、以下のページで行っておりますので、クライアントサーバシステムの理解に自信がない方は合わせてご覧ください。

3層アーキテクチャとは?

本題に入ります。

3層アーキテクチャとは、クライアントサーバシステムを、以下の3階層に分割したシステムのことを言います。

プレゼンテーション層

アプリケーション層

データ層

専門用語だけで解説してもイメージしづらいと思いますので、まずは、クライアントサーバシステムについて表した以下の図を再度ご覧ください。

クライアントサーバシステムの概要イメージ図

クライアントサーバシステムは、システムを「クライアント」と「サーバ」に分解して構築するシステム。

実際の処理を「サーバ」が担い、画面などの処理を「クライアント」が担うシステム形態です。

3層アーキテクチャという概念がでてくるのは、この図でいう「サーバ」部分です。

「サーバ」を更に細かく3階層に分けて、構築したのが3層アーキテクチャと呼ばれるシステムなのです。

それぞれの関係性を分かりやすくまとめたのが以下の図です。

よく、クライアントサーバシステムと3層アーキテクチャという言葉を混同して理解しがちな人が多いので注意しましょう。(あくまでも、3層アーキテクチャはクライアントサーバシステムの概念の1部です。)

概要が分かったところで、それぞれの役割を1つずつ確認していきましょう。

本サイトも、3層構造を用いたシステムとなっております。後半の章では、今あなたがこのページを見るまでのシステムの処理を例に解説していきたいと思います。

※説明簡易化のため、実際の処理内容とは多少異なる部分があります。

プレゼンテーション層

プレゼンテーション層では、ブラウザから受け取った「閲覧要求」をもとに、ページ情報を返すという役割を担っています。

プレゼンテーション層では、簡単に言うと画面のレイアウトや文字フォント、デザインを処理する層です。

実際にあなたが見ているこの画面のレイアウトなど(ヘッダーにロゴがあり、サイドバーには関連記事が記載されています)は、プレゼンテーション層から返された情報といえます。

プレゼンテーション層では、あくまでも画面の表示処理に特化した階層であると理解ください。

アプリケーション層

先ほど開いたページを読み終え、他の記事も気になったあなたは「検索ボックス」に「プログラミング」と入力します。

このとき動くのが、アプリケーション層です。

アプリケーション層では、プレゼンテーション層(画面)に入力された値をもとに、何かしらの処理を行う役割を担います。

検索ボックスに文字が入力されEnterボタンが押されたら検索処理を行う―。他のページへのリンクが押されたら、そのページ情報が格納されているデータベースにリクエストを送る―。

プレゼンテーション層から受け取った情報を基に、何らかの処理を行うのがアプリケーション層の役割です。

データ層

ページ情報をはじめ、サイトの構造や画像、その他あらゆる情報が詰め込まれているのがデータ層です。一般的には、単にデータベースと呼んだりします。

アプリケーション層からデータ要求(例えば「記事を開く」など)があれば、対象のデータをデータベースを探索し、結果をアプリケーション層に返します。

3層アーキテクチャの具体例

本サイトを開いてから、記事を表示するまでの流れを具体的に見つつ、3層アーキテクチャについて整理します。

本サイト、ビズドットオンラインを例に解説します。

①画面に値を入力:プレゼンテーション層

ユーザに文字や画像を表示する役割を担うのがプレゼンテーション層の役割であると説明した通り。

試しに、このサイトに「3層アーキテクチャ」と入力し実際にサイト内検索をしてみましょう。

この「3層アーキテクチャ」という単語を、プレゼンテーション層がアプリケーション層に受け渡します。

②入力された値を基に検索:アプリケーション層

画面に入力した「3層アーキテクチャ」という単語を受け取り、「検索」の処理を行うのがこのアプリケーション層。

画像に alt 属性が指定されていません。ファイル名: image-8.png

データ層に、「3層アーキテクチャ」という単語を含むコンテンツを要求します。

③対象のデータをアプリケーション層に返却:データ層

アプリケーション層から受け渡された「3層アーキテクチャ」という単語を基に、数百ある記事の中から記事の一覧をアプリケーション層に返却するのがデータ層。

画像に alt 属性が指定されていません。ファイル名: image-9.png

返されたデータが、今画面に表示されている記事の一覧です。

細かく説明すると、データ層で抽出された記事一覧は、アプリケーション層へ返され、その後アプリケーション層によって記事のコンテンツ(サイドバー・ヘッダー・フッター)が統合されます。

この統合されたデータをプレゼンテーション層が処理し、画面に記事が表示されるという流れです。

これで、3層アーキテクチャについての解説は以上です。

タイトルとURLをコピーしました