- 更新日 2024.10.17
- カテゴリー システム開発
Webシステムの仕組みをわかりやすく解説|大規模Webシステムで採用されるWeb3層構造とは?【2024年最新版】
普段、あまり意識することなく私たちが利用しているWebシステム。しかし、新規事業立ち上げなどでWebシステムを開発する段階になって、実は「基本的な仕組み」を理解していないことに気付いた企業・店舗の方も少なくないでしょう。
本記事では、以下の内容について解説します。
- Webシステムはどんな仕組みで動いている?
- 開発するサービスによってWebシステムの仕組みは変わる?
- Webシステムを導入するメリットは?
- Webシステムを導入する際の注意点
開発会社とのコミュニケーションをスムーズにするためにも、システム開発プロジェクトを成功に導くためにも、Webシステムの仕組みを理解しておくことは重要。本記事では、Webシステムが機能する基本的な仕組みをできる限りわかりやすく解説しますので、ぜひ参考にしてください。。
※現在、Webシステム開発の依頼先を探している方はシステム幹事にご相談ください。予算や目的から最適な開発会社を選定します。相談料・紹介料は一切かかりません。
Webシステムとはなにか?
Webシステムとは、インターネット経由でサービス・機能を提供することを目的に、Web技術を活用して開発・構築されたシステムのこと。
以下のようなものが挙げられます。
- マッチングサイト
- ポータルサイトなどのWebサービス
- ECサイト・モールなどのeコマースサービス
- 勤怠管理・経費管理などのSaaS
- インターネットバンキング
- SNSサービス
Webシステムの特徴
Webシステムでは「Webブラウザが使える」「インターネットに接続可能」なデバイスであれば、使用する端末の種類は問いません。(Webブラウザ:Google ChromeやSafariなどのWebサイトを表示するアプリケーション)
基本的に専用アプリを必要としない、インターネットに接続できればいつでもどこでも使えるということがWebシステムの大きな特徴だといえるでしょう。(モバイルアプリを用意しているケースもあります)
※Webシステムとはなにか?より詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:Webシステムの基礎知識を解説!具体例・特徴・おすすめの開発会社も紹介!
Webシステムの仕組み
基本編
Webシステムは、以下の2つで構成されています。
- 「リクエスト(要求)を送ってレスポンス(応答)を表示するWebブラウザ(クライアント)」
- 「リクエストをアプリケーションによって処理してレスポンスを返すWebシステム(サーバー)」
Webシステムが動作する具体的な仕組み・流れは以下の通り。
手順 |
担当する側 |
1.クライアントがサーバーに リクエストを送信 |
クライアント(Webブラウザ) |
2.サーバーがリクエストを受信 |
サーバー(アプリケーション) |
3.サーバーがデータベースから 必要なデータを取得 |
サーバー(アプリケーション・データベース) |
4.サーバーがリクエストに応じて データ処理・クライアントに レスポンスを送信 |
サーバー(アプリケーション・データベース) |
5.クライアントが レスポンスを受信・表示 |
クライアント(Webブラウザ) |
アプリケーションとは・・・特定の目的を果たすために作られたソフトウェアのこと
クライアント編
基本編でも解説したように、Webシステムにおけるクライアント(Webブラウザ)の役割は、リクエストを送信すること、返されたレスポンスを表示することです。クライアントがシステムのデータ処理を担当することはあまりなく、サービス・機能の提供はほとんどがサーバー側で実行されます。
Webシステムは「Webブラウザが使える」「インターネットに接続可能」なデバイスであれば、使用する端末の種類は問わない、という特徴につながっています。
業務システムでよく採用される「クライアントサーバーシステム」とWebシステムの大きな違いがこの点。クライアントサーバーシステムでは、クライアントにも専用アプリをインストールする必要があり、このアプリにデータ処理の一部を受け持たせます(『サーバー・クライアントでの分散データ処理』)。
アプリ不要のWebシステムには管理・メンテナンス・アップデートが容易、利用範囲を広げやすいなどのメリットがあります。
サーバー編
それでは、データ処理・サービス提供を一括して受け持つWebシステムの「サーバー」は、どのような仕組みで動作しているのでしょうか?
一般的には、規模の小さいWebシステムを開発する場合、1台のサーバーコンピューター内に「サーバーOS + アプリケーション + データベース」をまとめて構築します。
Webシステムとして構築されたこの1台のサーバー内には、それぞれ異なる役割を持つ3つのレイヤーがあります。それぞれ「プレゼンテーション層」「アプリケーション層」「データ層」に分けられ、連携しながらデータ処理・サービス提供しているのです。
それぞれのレイヤーの役割を簡単に解説しておきましょう。
レイヤー |
別称 |
主な役割 |
開発言語 |
プレゼンテーション層 |
・フロントエンド ・クライアント |
・画面表示を提供 ・リクエスト・レスポンスの送受信 |
HTML / CSS / JavaScriptなど |
アプリケーション層 |
・バックエンド ・サーバーサイド |
・リクエストを受信、処理して クライアントに送信 ・データ取得・追加・削除・変更 |
Java / PHP / Ruby / Python |
データ層 |
・バックエンド ・サーバーサイド ・データベース |
・データの保存・管理 |
SQL |
プレゼンテーション層
プレゼンテーション層とは、Webシステムのエンドユーザーであるクライアント(Webブラウザ)へ画面表示を提供する役割をもつレイヤーのこと。また、クライアントとサーバーとの通信を受け持つ役割も持っています。
リクエスト・レスポンスの送受信を含め、Webシステムにおいてクライアントがアクセスするのはプレゼンテーション層のみになります。プレゼンテーション層はフロントエンド、クライアントサイドとも呼ばれ、HTML / CSS / JavaScriptなどの開発言語を使ってプログラムが開発されます。
アプリケーション層
Webシステムの中核となるアプリケーション層とは、リクエストを処理してクライアントに送信する「レスポンス生成」を受け持つレイヤーのこと。
プレゼンテーション層と連携してリクエスト・レスポンスの受け渡しを行うほか、データ層と連携しながらデータ取得・追加・削除・変更も行います。
レスポンスを生成するためのデータ処理は、アプリケーションに特定のルールを与える「ビジネスロジック」に従って処理されます。アプリケーション層はバックエンド、サーバーサイドとも呼ばれています。Java / PHP / Ruby / Pythonなどのプログラミング言語やフレームワーク(基本的な機能がパッケージ化されたプログラム)を活用して開発されます。
データ層
データ層とは、アプリケーションによって処理されたデータの保存・管理を受け持つレイヤーのこと。一般的にはデータベースと呼ばれています。アプリケーション層とともにバックエンド、サーバーサイドと呼ばれている層です。
MySQL / PostgreSQL / OracleなどのRDBMS(リレーショナルデータベース管理システム)が多く利用されています。データベース言語であるSQLを使ってWebシステムごとの適切なデータベースが構築されます。
サーバーコンピューター1台のみのWebシステムであっても、3つの「レイヤー(論理構造)」が必要であることがおわかりいただけたでしょう。
※Webシステムでよく使われるプログラミング言語についてより詳しく知りたい方は、以下の記事も参考にしてください。
関連記事:Webシステム開発によく使われるプログラミング言語とは?知っておきたいフレームワークも解説!
大規模Webシステムで採用されるWeb3層構造
3層のレイヤーがあるといっても、通常は1つのハードウェアサーバー内にすべてのプログラムを構築します。トラフィックが多くない、クリティカルな処理が必要ない小規模〜中規模Webシステムであればこれで問題になることはありません。しかし、大規模なWebシステムでは反応が遅くなる、システムダウンするなどのリスクが生じることに注意が必要です。
こうしたリスクを回避するため、レイヤーごとの役割に応じてハードウェアサーバーを物理的に分離する方法があります。「Webサーバ」「アプリケーションサーバ」「データベースサーバ」という3つのサーバでWebシステムを構築することを「Web3層構造」と呼びます。
以下でそれぞれを簡単に解説しておきましょう。
Webサーバー(プレゼンテーション層)
Webサーバーとは、Webシステムのプレゼンテーション層にあたる、ユーザーインターフェースの提供および、クライアント・サーバー間の通信を担うサーバーのこと。
ユーザーインターフェースを担うフロントエンドプログラムは、HTML / CSS / JavaScriptなどで開発されます。一般的には、基本的な通信機能・ハードウェア制御機能を持つ「Webサーバーソフトウェア」をベースにすることが多いといえるでしょう。「Apache HTTP Server」「Ngnix」などがよく利用されています。
アプリケーションサーバー(アプリケーション層)
アプリケーションサーバー(以下、APサーバー)とは、Webシステムのアプリケーション層にあたる、データ処理の役割を担うサーバーのこと。
Webサーバー・データベースサーバー双方と連携するサーバーです。
APサーバーに構築されるWebアプリケーションは、Java / PHP / Ruby / Pythonなどで構築されます。他のサーバーとの連携やビジネスロジックを搭載した「APサーバーソフトウェア」や「フレームワーク」をベースにする場合が一般的です。
代表的なAPサーバーソフトウェアは「Puma」「Unicorn」「Tomcat」など。代表的なフレームワークは、採用する開発言語に応じた「Django」「Ruby on Rails」など。ただし、PHPなどのように、APサーバーソフトウェアを必要としない開発言語もあります。
データベースサーバー(データ層)
データベースサーバーとは、Webシステムのデータ層を独立したハードウェアに構築したサーバーのこと。MySQL / PostgreSQL / Oracleなどのデータベース管理システムが活用されるのは、データ層構築と同じです。
◎各レイヤーと開発言語、ソフトウェア・システムとの関係
Java |
PHP |
Ruby |
Python |
|
Webサーバー |
Apache、Ngnix |
Apache |
Apache、Ngnix |
Apache、Ngnix |
アプリケーションサーバー |
Tomcat |
× |
Puma、Unicorn |
Gunicorn |
データベースサーバー |
MySQL、 PostgreSQL、 Oracle |
MySQL、 PostgreSQL、 Oracle |
MySQL、 PostgreSQL、 Oracle |
MySQL、 PostgreSQL、 Oracle |
Web3層構造はセキュリティも確保しやすい
サーバーを分離させることによって、Webシステムの役割ごと(レイヤーごと)に最適化した運用・保守が可能になります。その結果として、システムを拡張させやすい、セキュリティを確保しやすい、信頼性を確保しやすいメリットが得られます。特にセキュリティを確保しやすいことは、大規模Webシステムにとって大きなメリット。
インターネットを経由した外部からの通信はWebサーバーのみであるため、正しく設計されたアプリケーションサーバーは物理的なファイアウォールの役割を果たせます。それぞれのハードウェアが分離されていることから、通信経路ごとに物理的なセキュリティ対策を施すことも可能でしょう。
クラウドコンピューティングの活用
近年では、Webシステムの開発プラットフォームとして、AWS / Azure / GPCなどのクラウドコンピューティングを活用するケースが増えています(AWSはAmazon、AzureはMicrosoft、GCPはGoogleがそれぞれ提供)。
これは、クラウド環境を利用することで物理的なハードウェアを用意することなく、Web3層構造を持つWebシステムを簡単に構築できるからです。
例えば、AWSであれば以下の構成にすることで簡単にWeb3層構造のシステムを構築できます。
- Webサーバー:Amazon EC2
- アプリケーションサーバー:Amazon EC2
- データベースサーバー:Amazon RDS
サーバーコンピューターのメンテナンスを気にする必要もありません。
Webシステムを導入するメリット
Webシステムを導入するメリットを3つ紹介します。
ネット環境があれば場所を問わずアクセスできる
Webシステムの主なメリットは、インターネット環境があればどこからでもアクセスして利用できることです。また、Webブラウザを利用するため、Webブラウザが搭載されていればパソコンやタブレット、スマートフォンなど端末を問わずに利用できることもメリットでしょう。
データの修正や保存が楽になる
Webシステムは、サーバー側にデータを保存する仕組みが一般的です。そのため、データの保存や修正、共有をしやすい点がメリットといえます。
また、データだけでなくプログラム自体もサーバー側で処理しているため、システムの修正やカスタマイズ、メンテナンスがしやすい点もメリットです。サーバー側でプログラムの修正をすれば各端末に反映されるため、修正作業にかかる手間を大幅に削減できます。
コスト削減につながる
クライアント側はWebブラウザとインターネット環境さえあれば利用できることから、コストの削減効果にも期待できます。
例えば、端末のみで完結させるスタンドアロン型の場合は利用するパソコンやスマートフォンすべてにインストールする必要があります。数台程度であれば問題ありませんが、数十台、数百台になるとインストールして初期設定をするだけでも膨大な手間とコストがかかってしまうでしょう。
Webシステムの場合は、Webブラウザが利用できる端末とインターネット回線さえあればクライアント側が利用できるので、上記の手間とコストを削減可能です。
Webシステム導入時の注意点
コストが高くなる可能性がある
他社が提供しているWebシステムを導入する場合や開発を外注する場合は、導入コストがかかってしまいます。ただし、導入コストを無料にしているWebシステムもありますので、導入コストと運用コストのバランスを考慮して、導入するシステムを選択すると良いでしょう。
また、多くのWebシステムは利用している期間中ライセンス料として月額や年額がかかる点にも注意しましょう。Webシステムはサーバーで稼働させる必要がありますが、サーバーの保守運用を任せると保守管理費用もかかります。
運用マニュアルが必要になる
運用マニュアルは、Webシステムをどのように利用して運用していくのかを記した手順書です。
運用マニュアルがないと、サーバーのメンテナンスや機能の追加、不具合の修正をする際の対応が統一されず、不具合のもとになってしまうおそれがあります。また、運用・保守を担当していた社員が退職をしてしまって不在になった際に、誰も対応方法がわからないといった事態も起こり得ます。
そのようなケースを防ぐために、運用方法やセキュリティ関連情報、修復方法、トラブル対応の手順などを定めたマニュアルを用意しておきましょう。
セキュリティによるトラブルが起きる可能性がある
Webシステムはインターネットを介して利用する仕組みのため、外部からの不正アクセスに注意する必要があります。特にデータを保存しているサーバーに不正アクセスをされると、社内の情報だけでなく顧客の情報まで漏洩して大きなトラブルになるおそれもあるでしょう。
Webシステムを運用する際は、セキュリティ対策を念入りにしておくことが大切です。
【まとめ】Webシステムの仕組み
Webシステムの開発プロジェクトをスムーズに進めたい企業・店舗担当者の方に向け、本記事では、Webシステムが機能する基本的な仕組みをできる限りわかりやすく解説してきました。
プログラミングの方法までを知る必要はありませんが、Webシステムの基本的な仕組み・概要を理解しておくことは非常に重要です。また、基本を理解しておくことで、パートナーとなる開発会社との認識を一致させ、開発をスムーズにする効果にも期待できるでしょう。
本記事の内容も参考にしながら、Webシステムへの理解を深めてください。
現在、Webシステムの開発会社を探している方はシステム幹事にご相談ください。専門のコンサルタントがあなたの要望を丁寧にヒアリングし、予算にあった最適な開発会社を選びます。
Q. Webアプリケーションのシステム構造は?
Webアプリケーションの構造は「プレゼンテーション層」「アプリケーション層」「データ層」の3つの層で構成されています。それぞれの詳しい特徴は記事内で紹介していますので、ぜひご覧ください。
この記事を書いた人
梓澤 昌敏
専門分野: 音楽・映像制作、オウンドメディア、ビジネス
音楽・映像制作の現場を経て、スタジオ構築側の業界へ。マネージャー・コンサルタントとして制作現場の構築に携わる一方、自社オウンドメディアの立ち上げを含むマーケティングも担当してきました。現在アメリカ在住。作曲を含む音楽制作も提供しています。
このライターの記事一覧