WEBシステム開発の構成を知る|3層モデル+MVCモデル+DAO+BEAN

こんにちは。本日学習する内容はWebシステム開発をする際の基礎となる3層モデルとMVCモデルという枠組みについて学習していきます。また、そこにDAOと呼ばれるものやBeanと呼ばれるものを追加していきます。

私自身がWebのシステムに携わり始めた頃は知らなかったことなので、この枠組みをまず最初に知っていたらどんなに良かっただろうと思った内容です。それでは始めていきましょう。

HTTPプロトコルについてまだ学習していない人は先に「HTTPとは」の記事を参照してください。

目次

3層モデルのシステム構成

3層モデルとは、Webシステムを開発する際に将来的な保守性や拡張性を保つために使用されるシステム構成です。
以下3つのレイヤーについてそれぞれ解説していきます。

プレゼンテーション層

プレゼンテーション層はユーザが実際に目にするもの(UI:ユーザインターフェース)で、具体的には主にWebブラウザーを意味します。ブラウザ内ではHTMLでコンテンツを表示し、CSSでデザインを整えて、Javascriptで動きをつけることになります。HTML、CSS、Javascriptについてはまた別の記事で学習していきます。システム開発において、フロントエンド、バックエンドと呼ばれる範囲のうち、プレゼンテーション層はフロントエンドに当たります。ここでは、プレゼンテーション層=Webブラウザとだけ覚えておいてください。

アプリケーション層

アプリケーション層とは、WebブラウザからWebサーバに送られてくるHTTPリクエストを受け取って、データをブラウザに返すまでの一連の処理のことを指します。この処理を行うためにプログラミング言語が使用され、Webサーバと連携して処理を進めていくことになります。主な言語には以下のようなものがあります。ここではアプリケーション層=Webサーバとプログラミングと覚えておいてください。

  • Node.js
  • Java
  • Python
  • Ruby on Rails
  • PHP

アプリケーション層はバックエンドに分類され、バックエンドエンジニアやインフラ担当のサーバエンジニアがシステム開発に携わります。

アプリケーション層内部では更にビジネスロジック層とデータアクセス層の2つの層に分けられます。

ビジネスロジック層

ビジネスロジック層は主に、ブラウザからのリクエストを受け取り、表示するWebページのデータをブラウザに返す役割を果たします。必要に応じて次項のデータアクセス層に処理を受け渡します。

データアクセス層

データアクセス層はビジネスロジック層から受け取ったデータを元に次項のデータ層からデータを取得して、それをビジネスロジック層に返す役割を果たします。

データ層

データ層はDB層(データベース層)とも呼ばれ、データを保存する場所になります。具体的には主にデータベース製品がインストールされたサーバの事を指します。各データベースについては「データベースの種類」から学習してください。データベースの管理もバックエンド開発に分類されます。データベースのインストール・設定は主にインフラエンジニア、DBエンジニアが担当します。データ層ではDBの他に他のシステム(既存のレガシーシステム)を指すこともありますが、ここではデータ層=データベースサーバと覚えておいてください。

MVCモデルとは

システム開発におけるMVCモデルとは、前述の3層モデルのうちアプリケーション層(ビジネスロジック層、データアクセス層)に適用されるシステム構成になります。MVCとはModel(モデル)、View(ビュー)、Controller(コントローラー)の頭文字をとったものです。3層モデル同様に、開発の保守性や拡張性を保つことを目的としています。また、ソースコードの再利用も目的としています。MVCモデルでは解像度を少し上げてサーバという単位からファイル・フォルダ構成という単位で考えていくことになります。MVCの呼び名は書くコンポーネント(部分)の重要度順に並べられていますが、実際の処理の順番としてはController、Model、Viewの順になります。この順番でそれぞれの役割りを見ていきましょう。

Controller(コントローラー)

3層モデルのアプリケーション層のビジネスロジック層がコントローラーにあたります。コントローラーの役割はWebブラウザからの処理リクエストを受け取って、その処理をモデルに引き渡し、モデルから受け取った処理結果を後述のビューに受け渡しWebブラウザに返すことになります。コントローラーファイルはその名の通り処理を受け渡すだけの「処理の制御」のみを担当します。

Model(モデル)

モデルの役割は、コントローラから受け取った処理の続きとして、データベースにアクセスをしてその結果をコントローラーに返すことです。モデルファイル内でもコントローラ同様に制御のみの役割を果たす部分と、実際にデータベースにアクセスする部分とに分けて処理をしていきます。3層モデルのアプリケーション層のビジネスロジックはコントローラとこのモデルの前者の制御処理の部分までを含みます。次にモデル処理の後者データベースアクセスにフォーカスしていきます。

DAO(ダオ)の適用

DAOとはData Access Objectのことで、データベースアクセス専用のモジュール(部品)プログラムファイルを指します。DAOファイルはモデルファイルとは別に作成し、モデルファイル内からDAOファイルを呼び出すことでモデルはデータベースからのデータを取得することができます。DAOファイルではデータベースへの接続処理とデータの作成・取得・更新・削除(CRUD処理)をするための処理を記述します。

CRUDとは、Create(作成)、Read(読み取り)、Update(更新)、Delete(削除)の頭文字を表したもので、データベースに対するデータ処理を表した言葉です。

View(ビュー)

ビューの役割は、データベースから取得したデータをブラウザに表示するコンテンツとしてHTMLに落とし込んで、それをブラウザに返すことです。コントローラーからモデルに渡った処理はまたコントローラに戻ってきます。コントローラーは事前に用意されたHTMLファイル(ビューファイル)を呼び出して、そこにデータベースからのデータを埋め込む処理をします。その後でWebサーバは最終的なHTMLの出力をブラウザに返します。

Bean(ビーン)の適用

ブラウザからのリクエストはWebサーバ上ではMVCモデルを通して処理されていきます。各コンポーネント間でのデータの受け渡しはBeanと呼ばれるデータパッケージを通して行われます。Beanは元々はJava言語のプログラミングに由来しますが、データの持ちまわしには非常に役に立ちます。このBeanも別ファイルとして管理されることになります。

MVCのフォルダ構成

ここまでアプリケーション層のMVCモデルを確認してきました。MVCモデルにDAOとBeanを加えることでより保守・拡張・再利用がしやすい環境になってきました。このMVC+DAO+Beanをフォルダ構成として表現すると以下の様になります。

app/
 ├ bean/
 │  └複数のBeanファイルを配置
 ├ controller/
 │  └複数のコントローラファイルを配置
 ├ dao/
 │  └複数のDAOファイルを配置
 ├ model/
 │  └複数のモデルファイルを配置
 └ view/
    └複数のビューファイルを配置
  

まとめ

今回はWebシステム開発における基礎的なシステム構成を学習しました。3層モデルには、プレゼンテーション層、アプリケーション層(ビジネスロジック層とデータアクセス層)、そしてデータ層がありました。アプリケーション層にのデータアクセス層にはDAOがあることも分かりました。MVCモデルの処理の順番は実際はCMVで、より詳細に言うとController > Model > Dao > Model > Controller > Viewの順番でしたね。そして、データの持ちまわしはBeanで行うことも学習しました。

次回は開発環境の構築として「Visual Studio Codeのインストールと日本語化」をしていきます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次