<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>サーバ アーカイブ - Archive of Yone</title>
	<atom:link href="https://elite-lane.com/tag/%E3%82%B5%E3%83%BC%E3%83%90/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description></description>
	<lastBuildDate>Sun, 27 Dec 2020 15:01:42 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.3</generator>

<image>
	<url>https://elite-lane.com/wp-content/uploads/2018/07/cropped-greenapple-logo2-1-32x32.jpg</url>
	<title>サーバ アーカイブ - Archive of Yone</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>クライアントサーバモデルとP2Pモデルの違い</title>
		<link>https://elite-lane.com/difference-between-client-server-and-peer-to-peer/</link>
					<comments>https://elite-lane.com/difference-between-client-server-and-peer-to-peer/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 05 Apr 2019 08:06:56 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[サーバ]]></category>
		<guid isPermaLink="false">https://elite-lane.com/?p=3946</guid>

					<description><![CDATA[<p>クライアントサーバモデルとP2Pモデルの違い 私たちがインターネットを通じたサービスを利用する際のコンピュータネットワーク・アーキテクチャでは クライアントサーバ・モデル P2Pモデル どちらかのモデルが採用されています [&#8230;]</p>
<p>投稿 <a href="https://elite-lane.com/difference-between-client-server-and-peer-to-peer/">クライアントサーバモデルとP2Pモデルの違い</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<h1>クライアントサーバモデルとP2Pモデルの違い</h1>
<p>私たちがインターネットを通じたサービスを利用する際のコンピュータネットワーク・アーキテクチャでは</p>
<ul>
<li>クライアントサーバ・モデル</li>
<li>P2Pモデル</li>
</ul>
<p>どちらかのモデルが採用されています。</p>
<p>アーキテクチャ（architecture）とは</p>
<ul>
<li>建築様式</li>
<li>構造</li>
<li>構成</li>
</ul>
<p>という意味です。</p>
<p>コンピュータ分野では</p>
<ul>
<li>基本設計</li>
<li>設計思想</li>
</ul>
<p>を指します。</p>
<p>つまり、コンピュータネットワーク・アーキテクチャとは、</p>
<ul>
<li>コンピュータネットワーク・・コンピュータ同士をつなぐ</li>
<li>アーキテクチャ・・・基本設計</li>
</ul>
<p><span class="marker-under">複数のコンピュータを接続する基本設計</span>ということになります。</p>
<p>この記事では、クライアントサーバ・モデとP2Pモデルを比較し、それぞれの特徴について説明していきます。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"></li><li><a href="#toc1" tabindex="0">クライアントサーバ・モデルとP2Pモデル</a></li><li><a href="#toc2" tabindex="0">クライアントサーバ・モデルとP2Pモデルの比較</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">クライアントサーバ・モデルとP2Pモデル</span></h2>
<p><img fetchpriority="high" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/science-in-hd-Z1g-bfdzKe8-unsplash.jpg" alt="クライアントサーバ・モデルとP2Pモデル" width="640" height="427" class="aligncenter size-full wp-image-9415" srcset="https://elite-lane.com/wp-content/uploads/2020/05/science-in-hd-Z1g-bfdzKe8-unsplash.jpg 640w, https://elite-lane.com/wp-content/uploads/2020/05/science-in-hd-Z1g-bfdzKe8-unsplash-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p>コンピュータネットワーク・アーキテクチャの代表格である</p>
<ul>
<li>クライアントサーバ・モデル</li>
<li>P2Pモデル</li>
</ul>
<p>の決定的な違いは、「<span class="marker-under">コンピュータネットワーク・アーキテクチャが中央集権的か否か</span>」という部分になります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png"><img decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png" alt="クライアント・サーバ・モデルとP2P・モデルの違い" width="945" height="479" class="aligncenter size-full wp-image-3943" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png 945w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14-300x152.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14-768x389.png 768w" sizes="(max-width: 945px) 100vw, 945px" /></a></p>
<p>ネットワーク・アーキテクチャ上の中央集権的とは、クライアント・サーバ・モデルでは</p>
<ul>
<li>サーバ（server）・・・サービスを供給する側</li>
<li>クライアント（client）・・・サービスを授受する側</li>
</ul>
<p>と主従関係がはっきりとしているのに対して、P2Pモデルでは</p>
<ul>
<li>サーバ（server）</li>
<li>クライアント（client）</li>
</ul>
<p>の両方の役割を担うノードがネットワークに参加している他のノード同士で対等に通信をしています。</p>
<div class="information-box">
ノード（Node）とは英単語で</p>
<ul>
<li>結び（目）</li>
<li>【植物, 植物学】節</li>
<li>【天文】交点 等々</li>
</ul>
<p>の意味で使われます。</p>
<p>コンピュータ・ネットワーク界でのノード（Node）とは、ネットワークの</p>
<ul>
<li>接点</li>
<li>分岐点</li>
<li>中継点 等</li>
</ul>
<p>を指します。</p>
<p>具体的には、コンピュータ・ネットワークを構成する</p>
<ul>
<li>モデム・ハブ・ブリッジ・スイッチングハブ等のデータ通信機器</li>
<li>IP電話・プリンタ・ホストコンピュータ（ルータ・ワークステーション・サーバ等々）等のデータ端末装置</li>
<li>ノートパソコン・スマートフォン等々の端末装置</li>
</ul>
<p>といった機器のことを指します。
</div>
<p>対等なコンピュータ・ネットワークでのノードは</p>
<ul>
<li>サーバ（server）・・・サービスを供給する側</li>
<li>クライアント（client）・・・サービスを授受する側</li>
</ul>
<p>両方の機能を併せ持つという意味で、サーバント（servent）という呼ばれ方もします</p>
<p><font size="2">サーバに関する記事はこちら</font></p>

<a rel="follow noopener" target="_blank" href="https://elite-lane.com/client-server-model/" title="クライアントサーバのサーバサイド･三層アーキテクチャ" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-160x90.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-160x90.jpeg 160w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-120x68.jpeg 120w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-320x180.jpeg 320w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-376x212.jpeg 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">クライアントサーバのサーバサイド･三層アーキテクチャ</div><div class="blogcard-snippet internal-blogcard-snippet">クライアントサーバのサーバサイド･三層アーキテクチャ クライアントサーバとはコンピュータネットワーク・アーキテクチャのうちの一つ構成を指します。 クライアント（client）は 依頼人 顧客 という意味で、クライアントサーバにおけるクライア...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://elite-lane.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">elite-lane.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.04.02</div></div></div></div></a>
<h2><span id="toc2">クライアントサーバ・モデルとP2Pモデルの比較</span></h2>
<p><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/kevin-horvat-Pyjp2zmxuLk-unsplash.jpg" alt="クライアントサーバ・モデルとP2Pモデルの比較" width="640" height="427" class="aligncenter size-full wp-image-9416" srcset="https://elite-lane.com/wp-content/uploads/2020/05/kevin-horvat-Pyjp2zmxuLk-unsplash.jpg 640w, https://elite-lane.com/wp-content/uploads/2020/05/kevin-horvat-Pyjp2zmxuLk-unsplash-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<ul>
<li>クライアントサーバ・モデル</li>
<li>P2Pモデル</li>
</ul>
<p>それぞれの</p>
<ul>
<li>システム拡張性</li>
<li>情報の所在</li>
<li>耐障害性</li>
</ul>
<p>は下記の通りです。</p>

<table id="tablepress-371" class="tablepress tablepress-id-371">
<thead>
<tr class="row-1 odd">
	<th class="column-1"></th><th class="column-2">クライアント・サーバ・モデル</th><th class="column-3">P2P・モデル</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">モデル</td><td class="column-2">中央集権型</td><td class="column-3">自律分散型</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">システム拡張性</td><td class="column-2">利用者規模に合わせたシステム増強</td><td class="column-3">柔軟なスケーラビリティ</td>
</tr>
<tr class="row-4 even">
	<td class="column-1">情報の所在</td><td class="column-2">サーバへの情報の集中</td><td class="column-3">情報はネットワーク上に遍在</td>
</tr>
<tr class="row-5 odd">
	<td class="column-1">耐障害性</td><td class="column-2">サーバへのリスクの集中	</td><td class="column-3">障害時に他ノードによる代替</td>
</tr>
</tbody>
</table>
<!-- #tablepress-371 from cache -->
<div class="information-box">
スケーラビリティ【scalability】・・・機器やソフトウェア、システムなどの拡張可能性のこと
</div>
<p>また、</p>
<ul>
<li>クライアント・サーバ</li>
<li>ピュア・P2P</li>
<li>ハイブリッド・P2P</li>
</ul>
<p>それぞれの</p>
<ul>
<li>ネットワーク</li>
<li>セキュリティ</li>
<li>端末</li>
<li>サーバ</li>
<li>管理・運用</li>
</ul>
<p>の観点から比較して見ます。</p>
<p>P2Pモデルの</p>
<ul>
<li>ピュア・P2P</li>
<li>ハイブリッド・P2P</li>
</ul>
<p>それぞれの違いは下記の通りです。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-13.16.37-min.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-13.16.37-min.png" alt="ピュア・P2Pとハイブリッド・P2P" width="522" height="287" class="aligncenter size-full wp-image-9692" srcset="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-13.16.37-min.png 522w, https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-13.16.37-min-300x165.png 300w" sizes="(max-width: 522px) 100vw, 522px" /></a></p>

<table id="tablepress-375" class="tablepress tablepress-id-375">
<thead>
<tr class="row-1 odd">
	<th class="column-1"></th><th class="column-2">ピュア・P2P</th><th class="column-3">ハイブリッド・P2P	</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">概要</td><td class="column-2">検索・データ転送などは全てP2P<br />
・自律分散型システム<br />
・各ノードはメッシュ状に接続<br />
・検索は隣接ノードを経由<br />
・検索結果に確実性がない<br />
・データ転送が完了しない場合がある</td><td class="column-3">データ・・・インデックスサーバが保持<br />
データ検索・・・各ノードがインデックスサーバに問合せ<br />
データ転送・・・P2Pで実行</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">メリット</td><td class="column-2">・スケーラビリティが高い<br />
・自律分散型であり耐障害性が高い<br />
・アドホック性が高い</td><td class="column-3">システムの管理・制御が可能</td>
</tr>
<tr class="row-4 even">
	<td class="column-1">デメリット</td><td class="column-2">大規模化に伴い、ネットワークへの検索負荷が増大</td><td class="column-3">データ検索はクライアント・サーバ・モデルで<br />
・システムの耐障害性が低い<br />
・スケーラビリティは、ピュアP2Pに劣る</td>
</tr>
</tbody>
</table>
<!-- #tablepress-375 from cache -->
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2020/05/Untitled-min.jpeg"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/Untitled-min.jpeg" alt="クライアントサーバ・モデルとP2Pモデル" width="750" height="200" class="aligncenter size-full wp-image-9427" srcset="https://elite-lane.com/wp-content/uploads/2020/05/Untitled-min.jpeg 750w, https://elite-lane.com/wp-content/uploads/2020/05/Untitled-min-300x80.jpeg 300w" sizes="(max-width: 750px) 100vw, 750px" /></a></p>

<table id="tablepress-372" class="tablepress tablepress-id-372">
<thead>
<tr class="row-1 odd">
	<th class="column-1"></th><th class="column-2"></th><th class="column-3">クライアント・サーバ</th><th class="column-4">ピュア・P2P</th><th class="column-5">ハイブリッド・P2P	</th><th class="column-6">概要</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td rowspan="5" class="column-1">ネットワーク</td><td class="column-2">検索による負荷</td><td rowspan="3" class="column-3">○</td><td rowspan="3" class="column-4">×</td><td rowspan="3" class="column-5">○</td><td class="column-6">ピュア・P2P・・・<br />
隣接ノードの数により検索負荷が指数的に増大</td>
</tr>
<tr class="row-3 odd">
	<td class="column-2">検索の応答速度</td><td class="column-6">ピュア・P2P・・・<br />
応答速度が不安定</td>
</tr>
<tr class="row-4 even">
	<td class="column-2">検索の確実性</td><td class="column-6">ピュア・P2P・・・<br />
情報がネットワークに存在しても発見できない可能性</td>
</tr>
<tr class="row-5 odd">
	<td class="column-2">通信による負荷</td><td class="column-3">△</td><td class="column-4">○</td><td class="column-5">○</td><td class="column-6">クライアント・サーバ・・・<br />
サーバ側ネットワークに負荷が集中する可能性</td>
</tr>
<tr class="row-6 even">
	<td class="column-2">耐障害性</td><td class="column-3">△</td><td class="column-4">○</td><td class="column-5">△</td><td class="column-6">クライアント・サーバ・ハイブリッド・P2P・・・<br />
サーバ・収容ネットワークの障害により、サービスが停止</td>
</tr>
<tr class="row-7 odd">
	<td rowspan="3" class="column-1">セキュリティ</td><td class="column-2">ウィルス対策<br />
	</td><td class="column-3">○</td><td class="column-4">×</td><td class="column-5">△</td><td class="column-6">・P2P・・・<br />
ウィルスの急速な拡大の可能性<br />
・クライアント・サーバ・・・<br />
サーバ側での防御、最新ワクチン管理が可能</td>
</tr>
<tr class="row-8 even">
	<td class="column-2">アクセスログ</td><td rowspan="2" class="column-3">○</td><td rowspan="2" class="column-4">×</td><td rowspan="2" class="column-5">○</td><td class="column-6">ピュア・P2P・・・<br />
アクセスログを残せるが、サーバが必要</td>
</tr>
<tr class="row-9 odd">
	<td class="column-2">システムの廃止</td><td class="column-6">ピュア・P2P・・・<br />
一旦稼働したシステムの停止・廃止は困難</td>
</tr>
<tr class="row-10 even">
	<td class="column-1">端末</td><td class="column-2">端末への負荷</td><td class="column-3">○</td><td class="column-4">△</td><td class="column-5">○</td><td class="column-6">ピュア・P2P・・・<br />
他のP2P通信を中継することがあるため負荷が発生</td>
</tr>
<tr class="row-11 odd">
	<td rowspan="2" class="column-1">サーバ</td><td class="column-2">サーバへの負荷</td><td rowspan="2" class="column-3">×</td><td rowspan="2" class="column-4">–</td><td rowspan="2" class="column-5">△</td><td class="column-6">ハイブリッドP2P・・・<br />
認証・検索のみの負荷</td>
</tr>
<tr class="row-12 even">
	<td class="column-2">初期・運用コスト</td><td class="column-6">クライアント・サーバ・・・<br />
ユーザ数増加に伴う増設が必要</td>
</tr>
<tr class="row-13 odd">
	<td rowspan="2" class="column-1">管理・運用</td><td class="column-2">ユーザ管理</td><td rowspan="2" class="column-3">○</td><td rowspan="2" class="column-4">×</td><td rowspan="2" class="column-5">○</td><td class="column-6">クライアント・サーバ・ハイブリッド・P2P・・・<br />
サーバに実装可能</td>
</tr>
<tr class="row-14 even">
	<td class="column-2">コンテンツ管理</td><td class="column-6">ピュア・P2P・・・<br />
流通したデータを削除出来ない</td>
</tr>
</tbody>
</table>
<!-- #tablepress-372 from cache -->
<p>以上、クライアントサーバ・モデルとP2Pモデルの比較・特徴についての説明になります。</p>
<p>それぞれについて詳細を知りたい方は下記の記事を参照下さい。</p>
<p><font size="2">クライアントサーバ・モデルに関する記事はこちら</font></p>

<a rel="follow noopener" target="_blank" href="https://elite-lane.com/client-server-model/" title="クライアントサーバのサーバサイド･三層アーキテクチャ" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-160x90.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-160x90.jpeg 160w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-120x68.jpeg 120w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-320x180.jpeg 320w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-376x212.jpeg 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">クライアントサーバのサーバサイド･三層アーキテクチャ</div><div class="blogcard-snippet internal-blogcard-snippet">クライアントサーバのサーバサイド･三層アーキテクチャ クライアントサーバとはコンピュータネットワーク・アーキテクチャのうちの一つ構成を指します。 クライアント（client）は 依頼人 顧客 という意味で、クライアントサーバにおけるクライア...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://elite-lane.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">elite-lane.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.04.02</div></div></div></div></a>
<p><font size="2">P2Pモデルに関する記事はこちら</font></p>

<a rel="follow noopener" target="_blank" href="https://elite-lane.com/peer-to-peer/" title="【初心者向け】P2Pとは？P2P通信の仕組みと種類" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://elite-lane.com/wp-content/uploads/2020/05/p2p-min-160x90.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://elite-lane.com/wp-content/uploads/2020/05/p2p-min-160x90.jpeg 160w, https://elite-lane.com/wp-content/uploads/2020/05/p2p-min-120x68.jpeg 120w, https://elite-lane.com/wp-content/uploads/2020/05/p2p-min-320x180.jpeg 320w, https://elite-lane.com/wp-content/uploads/2020/05/p2p-min-376x212.jpeg 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【初心者向け】P2Pとは？P2P通信の仕組みと種類</div><div class="blogcard-snippet internal-blogcard-snippet">【初心者向け】P2Pとは？P2P通信の仕組みと種類 P2P（ピートゥーピー）とは、Peer - to（2）- peer（ピア・ツー・ピア）（以下、P2Pと呼ぶ）を略した用語です。 peer（ピア）は英単語で、（年齢・地位・能力などが）同等の...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://elite-lane.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">elite-lane.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.04.05</div></div></div></div></a>
<p>投稿 <a href="https://elite-lane.com/difference-between-client-server-and-peer-to-peer/">クライアントサーバモデルとP2Pモデルの違い</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://elite-lane.com/difference-between-client-server-and-peer-to-peer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】P2Pとは？P2P通信の仕組みと種類</title>
		<link>https://elite-lane.com/peer-to-peer/</link>
					<comments>https://elite-lane.com/peer-to-peer/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 04 Apr 2019 21:29:15 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[サーバ]]></category>
		<guid isPermaLink="false">https://elite-lane.com/?p=3871</guid>

					<description><![CDATA[<p>【初心者向け】P2Pとは？P2P通信の仕組みと種類 P2P（ピートゥーピー）とは、Peer &#8211; to（2）- peer（ピア・ツー・ピア）（以下、P2Pと呼ぶ）を略した用語です。 peer（ピア）は英単語で、 [&#8230;]</p>
<p>投稿 <a href="https://elite-lane.com/peer-to-peer/">【初心者向け】P2Pとは？P2P通信の仕組みと種類</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<h1>【初心者向け】P2Pとは？P2P通信の仕組みと種類</h1>
<p>P2P（ピートゥーピー）とは、Peer &#8211; to（2）- peer（ピア・ツー・ピア）（以下、P2Pと呼ぶ）を略した用語です。</p>
<p>peer（ピア）は英単語で、（年齢・地位・能力などが）同等の者という意味です。</p>
<p>P2Pにおけるpeer（ピア）は、</p>
<ul>
<li>対等の立場で通信を行うノード</li>
<li>対等の立場で通信を行う通信相手</li>
</ul>
<p>を指します。</p>
<p>ノード（Node）は邦訳すると</p>
<ul>
<li>結び（目）</li>
<li>【植物, 植物学】節</li>
<li>【天文】交点 等々</li>
</ul>
<p>の意味で使われます。</p>
<p>コンピュータ・ネットワーク界でのノード（Node）とは、ネットワークの</p>
<ul>
<li>接点</li>
<li>分岐点</li>
<li>中継点 等</li>
</ul>
<p>を指します。</p>
<p>具体的には、コンピュータ・ネットワークを構成する</p>
<ul>
<li>モデム・ハブ・ブリッジ・スイッチングハブ等のデータ通信機器</li>
<li>IP電話・プリンタ・ホストコンピュータ（ルータ・ワークステーション・サーバ等々）等のデータ端末装置</li>
<li>ノートパソコン・スマートフォン等々の端末装置</li>
</ul>
<p>といった機器のことを指します。</p>
<p>つまり、P2Pとは複数の端末間で通信を行う際のコンピュータのネットワーク・アーキテクチャの一つという事になります。</p>
<p>アーキテクチャ（architecture）とは</p>
<ul>
<li>建築様式</li>
<li>構造</li>
<li>構成</li>
</ul>
<p>という意味です。</p>
<p>コンピュータ分野では</p>
<ul>
<li>基本設計</li>
<li>設計思想</li>
</ul>
<p>を指します。</p>
<p>つまり、コンピュータネットワーク・アーキテクチャとは、</p>
<ul>
<li>コンピュータネットワーク・・コンピュータ同士をつなぐ</li>
<li>アーキテクチャ・・・基本設計</li>
</ul>
<p><span class="marker-under">複数のコンピュータを接続する基本設計</span>ということになります。</p>
<p>コンピュータのネットワーク・アーキテクチャでは、P2Pに対置される用語としてクライアントサーバ・モデルがあります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png" alt="P2P(peer-to-peer:ピア・ツー・ピア)モデル" width="945" height="479" class="aligncenter size-full wp-image-3943" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png 945w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14-300x152.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14-768x389.png 768w" sizes="(max-width: 945px) 100vw, 945px" /></a></p>
<p><font size="2">クライアントサーバ・モデルに関する記事はこちら</font></p>

<a rel="follow noopener" target="_blank" href="https://elite-lane.com/client-server-model/" title="クライアントサーバのサーバサイド･三層アーキテクチャ" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-160x90.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-160x90.jpeg 160w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-120x68.jpeg 120w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-320x180.jpeg 320w, https://elite-lane.com/wp-content/uploads/2020/05/client-server-min-376x212.jpeg 376w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">クライアントサーバのサーバサイド･三層アーキテクチャ</div><div class="blogcard-snippet internal-blogcard-snippet">クライアントサーバのサーバサイド･三層アーキテクチャ クライアントサーバとはコンピュータネットワーク・アーキテクチャのうちの一つ構成を指します。 クライアント（client）は 依頼人 顧客 という意味で、クライアントサーバにおけるクライア...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://elite-lane.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">elite-lane.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2019.04.02</div></div></div></div></a>
<p>この記事では、初心者向けにP2Pの</p>
<ul>
<li>仕組み・特徴</li>
<li>種類</li>
</ul>
<p>について、それぞれ説明していきます。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"></li><li><a href="#toc1" tabindex="0">P2Pの仕組み・特徴</a><ol><li><a href="#toc2" tabindex="0">P2Pの仕組み</a></li><li><a href="#toc3" tabindex="0">P2Pの特徴</a></li></ol></li><li><a href="#toc4" tabindex="0">P2Pの種類</a><ol><li><a href="#toc5" tabindex="0">情報検索方式による類型</a></li><li><a href="#toc6" tabindex="0">データ送受信方式による類型</a></li><li><a href="#toc7" tabindex="0">P2Pアプリケーションによる類型</a><ol><li><a href="#toc8" tabindex="0">一対一通信型</a></li><li><a href="#toc9" tabindex="0">放送型</a></li><li><a href="#toc10" tabindex="0">オンデマンド型</a></li><li><a href="#toc11" tabindex="0">分散型データ管理</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">P2Pの仕組み・特徴</span></h2>
<p><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/austin-distel-goFBjlQiZFU-unsplash.jpg" alt="P2Pの仕組み・特徴" width="640" height="427" class="aligncenter size-full wp-image-9418" srcset="https://elite-lane.com/wp-content/uploads/2020/05/austin-distel-goFBjlQiZFU-unsplash.jpg 640w, https://elite-lane.com/wp-content/uploads/2020/05/austin-distel-goFBjlQiZFU-unsplash-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p>日本や韓国・タイ等々の国で頻繁に利用されているスマートフォン・アプリのLINEもP2P通信のネットワーク技術が使われています。</p>
<p>そんなP2Pの</p>
<ul>
<li>仕組み</li>
<li>特徴</li>
</ul>
<p>を見ていきましょう。</p>
<h3><span id="toc2">P2Pの仕組み</span></h3>
<p>ネットワーク・アーキテクチャ上、</p>
<ul>
<li>クライアントサーバ・モデル</li>
<li>P2Pモデル</li>
</ul>
<p>は、それぞれ対置される関係にあるため、P2Pモデルの仕組みを説明する際は、クライアントサーバ・モデルと比較する事で、P2Pモデルの理解が深まります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png" alt="P2P(peer-to-peer:ピア・ツー・ピア)モデル" width="945" height="479" class="aligncenter size-full wp-image-3943" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14.png 945w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14-300x152.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-4.32.14-768x389.png 768w" sizes="(max-width: 945px) 100vw, 945px" /></a></p>
<p>クライアントサーバ・モデルは、ネットワークに接続されたコンピュータに対し</p>
<ul>
<li>クライアント</li>
<li>サーバ</li>
</ul>
<p>とそれぞれ立場・機能を分離しており、一般的に、多数のクライアントに対してサーバが一つです。</p>
<p>クライアントサーバ・モデルでは、</p>
<ul>
<li>クライアントはサーバとだけ通信が可能</li>
<li>クライアントが他のクライアントと通信する為にはサーバを仲介</li>
</ul>
<p>一方、P2Pモデルは、</p>
<ul>
<li>ネットワークに接続されたコンピュータ同士がノードとして対等の立場、機能で直接通信</li>
<li>インターネット基盤であるIPネットワークはIPアドレスさえ分かればどのノードとも通信可能</li>
</ul>
<p>という仕組みになっています。</p>

<table id="tablepress-371-no-2" class="tablepress tablepress-id-371">
<thead>
<tr class="row-1 odd">
	<th class="column-1"></th><th class="column-2">クライアント・サーバ・モデル</th><th class="column-3">P2P・モデル</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">モデル</td><td class="column-2">中央集権型</td><td class="column-3">自律分散型</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">システム拡張性</td><td class="column-2">利用者規模に合わせたシステム増強</td><td class="column-3">柔軟なスケーラビリティ</td>
</tr>
<tr class="row-4 even">
	<td class="column-1">情報の所在</td><td class="column-2">サーバへの情報の集中</td><td class="column-3">情報はネットワーク上に遍在</td>
</tr>
<tr class="row-5 odd">
	<td class="column-1">耐障害性</td><td class="column-2">サーバへのリスクの集中	</td><td class="column-3">障害時に他ノードによる代替</td>
</tr>
</tbody>
</table>

<div class="information-box">
スケーラビリティ【scalability】・・・機器やソフトウェア、システムなどの拡張可能性のこと
</div>
<h3><span id="toc3">P2Pの特徴</span></h3>
<p>P2Pモデルの代表的な特徴は大きく分けて</p>
<ul>
<li>非中央集権</li>
<li>サーバ・コスト削減</li>
<li>耐障害性</li>
<li>スケーラビリティ</li>
</ul>
<p>の四つになります。</p>

<table id="tablepress-374" class="tablepress tablepress-id-374">
<thead>
<tr class="row-1 odd">
	<th class="column-1">特徴</th><th class="column-2">概要</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">非中央集権</td><td class="column-2">サーバ依存せずにノード同士が対等な立場で直接通信を行える</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">サーバ・コスト削減</td><td class="column-2">サーバを必要としない環境を築くことで、<br />
・サーバに起因するコスト(機器、管理者の教育、運用・保守)<br />
・サーバ依存が集中することによる管理の負荷<br />
・資源集中に伴うリスク 等々<br />
を削減・軽減可能</td>
</tr>
<tr class="row-4 even">
	<td class="column-1">耐障害性</td><td class="column-2">ネットワークに接続された1つのノードに障害が起きても、それ以外のノードに影響は及びにくく、分散化による情報の消失・損傷リスクが軽減され、高い耐障害性が実現</td>
</tr>
<tr class="row-5 odd">
	<td class="column-1">スケーラビリティ</td><td class="column-2">ネットワーク利用者の数が急増しても、システムの規模（回線、ハードウェア）増加の必要無し。<br />
また、ネットワークでの常時接続利用者のノードの<br />
・CPU処理能力<br />
・ディスク容量 等々<br />
の余剰計算機資源を資源として有効に利用可能</td>
</tr>
</tbody>
</table>
<!-- #tablepress-374 from cache -->
<h2><span id="toc4">P2Pの種類</span></h2>
<p><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/paul-hanaoka-s0XabTAKvak-unsplash.jpg" alt="P2Pの種類" width="640" height="427" class="aligncenter size-full wp-image-9417" srcset="https://elite-lane.com/wp-content/uploads/2020/05/paul-hanaoka-s0XabTAKvak-unsplash.jpg 640w, https://elite-lane.com/wp-content/uploads/2020/05/paul-hanaoka-s0XabTAKvak-unsplash-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p>P2Pモデルのネットワーク構成は目的によって</p>
<ul>
<li>情報検索方式による類型</li>
<li>データ送受信方式による類型</li>
<li>P2Pアプリケーションによる類型 等々</li>
</ul>
<p>と異なります。</p>
<h3><span id="toc5">情報検索方式による類型</span></h3>
<p>情報検索方式による類型では、</p>
<ul>
<li>ピュア・P2P</li>
<li>ハイブリッド・P2P</li>
<li>スーパーノード・P2P</li>
</ul>
<p>と三つに分ける事が出来ます。</p>

<table id="tablepress-368" class="tablepress tablepress-id-368">
<thead>
<tr class="row-1 odd">
	<th class="column-1"></th><th class="column-2">構成	</th><th class="column-3">概要</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">ピュア・P2P</td><td class="column-2"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-03-at-20.02.19.png" alt="ピュア・P2P" width="154" height="169" class="aligncenter size-full wp-image-3989" /></td><td class="column-3">検索・データ転送などは全てP2P<br />
・自律分散型システム<br />
・各ノードはメッシュ状に接続<br />
・検索は隣接ノードを経由<br />
・検索結果に確実性がない<br />
・データ転送が完了しない場合がある<br />
<br />
メリット<br />
・スケーラビリティが高い<br />
・自律分散型であり耐障害性が高い<br />
・アドホック性が高い<br />
<br />
デメリット<br />
大規模化に伴い、ネットワークへの検索負荷が増大</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">ハイブリッド・P2P	</td><td class="column-2"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-03-at-20.02.07.png" alt="ハイブリッド・P2P	" width="178" height="186" class="aligncenter size-full wp-image-3990" /></td><td class="column-3">データ・・・インデックスサーバが保持<br />
データ検索・・・各ノードがクライアント・サーバ・モデルのインデックスサーバにデータの所在を問合せ<br />
データ転送・・・P2Pで実行<br />
<br />
メリット<br />
システムの管理・制御が可能<br />
<br />
デメリット<br />
データ検索はクライアント・サーバ・モデルで<br />
・システムの耐障害性が低い<br />
・スケーラビリティは、ピュアP2Pに劣る</td>
</tr>
<tr class="row-4 even">
	<td class="column-1">スーパーノード・P2P</td><td class="column-2"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-03-at-20.01.52.png" alt="スーパーノード・P2P" width="165" height="188" class="aligncenter size-full wp-image-3991" /></td><td class="column-3">データ検索・保持・・・処理能力の高いノードが実行。一般ノードは、検索情報などを保持しない<br />
<br />
メリット<br />
・ピュア・P2P<br />
・ハイブリッド・P2P　両方のメリットを併せ持つ<br />
<br />
デメリット<br />
データ検索・保持の分散化等の実装が困難</td>
</tr>
</tbody>
</table>
<!-- #tablepress-368 from cache -->
<h3><span id="toc6">データ送受信方式による類型</span></h3>
<p>データ送受信方式による類型では、</p>
<ul>
<li>ノード中継・モデル</li>
<li>ピュア・P2P</li>
</ul>
<p>と二つに分ける事が出来ます。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-4.50.15-min.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-4.50.15-min.png" alt="ノード中継・ピュア・P2P" width="765" height="384" class="aligncenter size-full wp-image-9527" srcset="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-4.50.15-min.png 765w, https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-29-at-4.50.15-min-300x151.png 300w" sizes="(max-width: 765px) 100vw, 765px" /></a></p>

<table id="tablepress-369" class="tablepress tablepress-id-369">
<thead>
<tr class="row-1 odd">
	<th class="column-1"></th><th class="column-2">検索方式</th><th class="column-3">データ送受信方式</th><th class="column-4">メリット	</th><th class="column-5">デメリット</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">ノード中継・モデル</td><td rowspan="2" class="column-2">・ピュア・P2P<br />
・ハイブリッド・P2P<br />
・スーパーノード・P2P<br />
の検索方式に依存しない</td><td class="column-3">ノードを中継に使用</td><td class="column-4">・冗長経路を持てる<br />
・中継するノードにはキャッシュが残り、分散ダウンロードが可能</td><td class="column-5">・中継するノードに負荷がかかる<br />
・P2Pルーティングの実装が必要</td>
</tr>
<tr class="row-3 odd">
	<td class="column-1">ピュア・P2P</td><td class="column-3">ノード間で直接通信</td><td class="column-4">・他のノードに負荷がかからない<br />
・複雑なP2Pルーティング技術が不要</td><td class="column-5">・冗長経路を持てない</td>
</tr>
</tbody>
</table>
<!-- #tablepress-369 from cache -->
<h3><span id="toc7">P2Pアプリケーションによる類型</span></h3>
<p>P2Pアプリケーションによる類型では、ノード間で何を行うかという観点から</p>
<ol>
<li>一対一通信型</li>
<li>放送型</li>
<li>オンデマンド型</li>
<li>分散型データ管理</li>
</ol>
<p>の四つのアプリケーション型に分けられます。</p>
<h4><span id="toc8">一対一通信型</span></h4>
<p>一対一通信型のP2PモデルLINE電話やSkypeに代表されるように、ノード間で一対一のコミュニケーションを行う使い方です。</p>
<p>相手のIPアドレスを</p>
<ul>
<li>電話番号</li>
<li>ニックネーム 等</li>
</ul>
<p>から見つけ出し、ノード間で対等の立場で通信を行います。</p>
<p>実際のSkypeのシステム構成の一部は下図の様になっています。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-1.58.57.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-1.58.57.png" alt="p2p・一対一通信型" width="690" height="358" class="aligncenter size-full wp-image-4027" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-1.58.57.png 690w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-1.58.57-300x156.png 300w" sizes="(max-width: 690px) 100vw, 690px" /></a></p>
<div align="right">
<font size="2"><br />
出典:<a rel="follow noopener" target="_blank" href="https://www.itmedia.co.jp">SOFTBANK Creative Inc.</a><br />
</font>
</div>
<h4><span id="toc9">放送型</span></h4>
<p>放送型のP2Pモデルでは、ノード間接続を多段階層化し、配信ツリーを形成することで放送型サービスが実現出来ます。</p>
<p>放送型サービスの流れは</p>
<ul>
<li>配信ツリーの根元のノードが放送局</li>
<li>上流ノードから下流ノードへデータをバケツリレー</li>
<li>参加ノードに、ほぼ同時に同じデータを配信</li>
</ul>
<p>となります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.50.49.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.50.49.png" alt="p2p・放送型" width="763" height="426" class="aligncenter size-full wp-image-4026" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.50.49.png 763w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.50.49-300x167.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.50.49-120x68.png 120w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.50.49-160x90.png 160w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.50.49-320x180.png 320w" sizes="(max-width: 763px) 100vw, 763px" /></a></p>
<h4><span id="toc10">オンデマンド型</span></h4>
<p>オンデマンド型のP2Pモデルではコンテンツを欲するノードが、</p>
<ol>
<li>コンテンツを持っているノードを探し出し</li>
<li>そこへデータを要求</li>
<li>コンテンツ保持ノードがそれに応答</li>
<li>データを送信（オンデマンド）</li>
</ul>
<p>という一方向型の通信を行います。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.49.37.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.49.37.png" alt="p2p・オンデマンド型" width="709" height="431" class="aligncenter size-full wp-image-4028" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.49.37.png 709w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-05-at-3.49.37-300x182.png 300w" sizes="(max-width: 709px) 100vw, 709px" /></a></p>
<h4><span id="toc11">分散型データ管理</span></h4>
<p>分散型データ管理のP2Pモデルでは、仮装通貨であるビットコインに代表されるように</p>
<ul>
<li>取引履歴情報を各ノードで分散</li>
<li>中央集権のサーバが管理する取引履歴情報の不正な改竄を防ぐ</li>
</ul>
<p>ことが可能になります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/main-qimg-f71b713a1e3152f6c3065a71ffd5ade5.gif"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/main-qimg-f71b713a1e3152f6c3065a71ffd5ade5.gif" alt="p2p・分散型データ管理" width="540" height="300" class="aligncenter size-full wp-image-4025" /></a></p>
<p>P2Pモデルでは、上記の様に提供するサービスによってネットワーク構成は異なります。</p>
<p>以上が、P2Pの</p>
<ul>
<li>仕組み・特徴</li>
<li>種類</li>
</ul>
<p>についての説明になります。</p>
<p>投稿 <a href="https://elite-lane.com/peer-to-peer/">【初心者向け】P2Pとは？P2P通信の仕組みと種類</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://elite-lane.com/peer-to-peer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>クライアントサーバのサーバサイド･三層アーキテクチャ</title>
		<link>https://elite-lane.com/client-server-model/</link>
					<comments>https://elite-lane.com/client-server-model/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 01 Apr 2019 16:46:26 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[サーバ]]></category>
		<guid isPermaLink="false">https://elite-lane.com/?p=3908</guid>

					<description><![CDATA[<p>クライアントサーバのサーバサイド･三層アーキテクチャ クライアントサーバとはコンピュータネットワーク・アーキテクチャのうちの一つ構成を指します。 クライアント（client）は 依頼人 顧客 という意味で、クライアントサ [&#8230;]</p>
<p>投稿 <a href="https://elite-lane.com/client-server-model/">クライアントサーバのサーバサイド･三層アーキテクチャ</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<h1>クライアントサーバのサーバサイド･三層アーキテクチャ</h1>
<p><span class="bold">クライアントサーバ</span>とはコンピュータネットワーク・アーキテクチャのうちの一つ構成を指します。</p>
<p>クライアント（client）は</p>
<ul>
<li>依頼人</li>
<li>顧客</li>
</ul>
<p>という意味で、<span class="bold">クライアントサーバ</span>におけるクライアントは、<span class="marker-under">サーバの提供する機能・データ等のサービスを使用する側のコンピュータ</span>を指します。</p>
<p>アーキテクチャ（architecture）は</p>
<ul>
<li>建築様式</li>
<li>構造</li>
<li>構成</li>
</ul>
<p>という意味です。</p>
<p>コンピュータ分野では</p>
<ul>
<li>基本設計</li>
<li>設計思想</li>
</ul>
<p>を指します。</p>
<p>つまり、コンピュータネットワーク・アーキテクチャとは、</p>
<ul>
<li>コンピュータネットワーク・・コンピュータ同士をつなぐ</li>
<li>アーキテクチャ・・・基本設計</li>
</ul>
<p><span class="marker-under">複数のコンピュータを接続する基本設計</span>ということになります。</p>
<p>この記事では、<span class="bold">クライアントサーバ</span>の</p>
<ul>
<li>概要</li>
<li>サーバサイド</li>
</ul>
<p>について、それぞれ説明します。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"></li><li><a href="#toc1" tabindex="0">クライアントサーバ</a></li><li><a href="#toc2" tabindex="0">サーバサイド</a><ol><li><a href="#toc3" tabindex="0">サーバとは？</a><ol><li><a href="#toc4" tabindex="0">サーバの種類</a></li><li><a href="#toc5" tabindex="0">サーバに共通する特徴</a></li></ol></li><li><a href="#toc6" tabindex="0">三層アーキテクチャ</a><ol><li><a href="#toc7" tabindex="0">プレゼンテーション層</a></li><li><a href="#toc8" tabindex="0">アプリケーション層</a></li><li><a href="#toc9" tabindex="0">データ・アクセス層</a></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">クライアントサーバ</span></h2>
<p><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/server-1235959_640.jpg" alt="クライアントサーバ" width="640" height="426" class="aligncenter size-full wp-image-9408" srcset="https://elite-lane.com/wp-content/uploads/2020/05/server-1235959_640.jpg 640w, https://elite-lane.com/wp-content/uploads/2020/05/server-1235959_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p><span class="bold">クライアントサーバ</span>とはコンピュータネットワーク・アーキテクチャだと先述しました。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-18.32.36.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-18.32.36.png" alt="クライアント・サーバ・モデル" width="716" height="415" class="aligncenter size-full wp-image-3915" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-18.32.36.png 716w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-18.32.36-300x174.png 300w" sizes="(max-width: 716px) 100vw, 716px" /></a></p>
<p>実際に<span class="bold">クライアントサーバ</span>における</p>
<ul>
<li>クライアント</li>
<li>サーバ</li>
</ul>
<p>それぞれどのような役割を果たしているのでしょうか。</p>
<p>ネットワークで接続されているコンピュータを</p>
<ul>
<li>特定の機能を集中的に担当するコンピュータ・・・サーバ</li>
<li>利用者の操作するコンピュータ・・・クライアント</li>
</ul>
<p>と、役割で明確に分けます。</p>
<p>サーバの特定の機能は、サーバの種類によって違います。</p>
<p>クライアントサーバ・モデルでは、</p>
<ul>
<li>クライアントがサーバに「リクエスト（Request：依頼）」を送信</li>
<li>サーバがそれに「レスポンス（Response：応答）」を返信</li>
</ul>
<p>の形で処理が行われます。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.31.39.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.31.39.png" alt="クライアント・サーバそれぞれの役割" width="598" height="178" class="aligncenter size-full wp-image-3928" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.31.39.png 598w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.31.39-300x89.png 300w" sizes="(max-width: 598px) 100vw, 598px" /></a></p>
<p>特に、サーバ側では</p>
<ul>
<li>演算機能</li>
<li>保管機能</li>
</ul>
<p>が重視されており、クライアント側では描画機能が重視される傾向があります。</p>
<h2><span id="toc2">サーバサイド</span></h2>
<p><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/switch-5015530_640.jpg" alt="サーバサイド" width="640" height="427" class="aligncenter size-full wp-image-9407" srcset="https://elite-lane.com/wp-content/uploads/2020/05/switch-5015530_640.jpg 640w, https://elite-lane.com/wp-content/uploads/2020/05/switch-5015530_640-300x200.jpg 300w" sizes="(max-width: 640px) 100vw, 640px" /></p>
<p>クライアントサーバにおけるサーバの種類には</p>
<ul>
<li>Webサーバ</li>
<li>メールサーバ</li>
<li>アプリケーションサーバ</li>
<li>ファイルサーバ</li>
<li>プリントサーバ　等々</li>
</ul>
<p>色々ありますが、そもそもコンピュータ分野におけるサーバはどのような役割を担っているのでしょうか。</p>
<h3><span id="toc3">サーバとは？</span></h3>
<p>サーバ（server）は名詞で、サーブ（serve）という動詞には</p>
<ul>
<li>〈人に〉仕える、奉公する</li>
<li>（必要物・サービスを）供給する</li>
<li>【テニス・バレーボール】〈ボールを〉サーブする</li>
</ul>
<p>という意味があり、サーブ（serve）の語尾に-erが付けることで、serve-er（serveするモノ、serveするヒト）、つまり</p>
<ul>
<li>（必要物・サービスを〕供給するモノ・人</li>
</ul>
<p>という意味になります。</p>
<p>例えば、飲食業界でサーバ（server）で言えば</p>
<ul>
<li>飲み物を提供するモノ = ドリンク・サーバ</li>
<li>食事を供給（提供）する人 = サーバ</li>
</ul>
<p>と言いますよね。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.16.50.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.16.50.png" alt="サーバ" width="752" height="297" class="aligncenter size-full wp-image-3867" srcset="https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.16.50.png 752w, https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.16.50-300x118.png 300w" sizes="(max-width: 752px) 100vw, 752px" /></a></p>
<p>では、コンピュータ分野におけるサーバとは、どのようなモノを指すのでしょうか</p>
<p>「コンピュータ分野のサーバ」と聞くと、多くの方は、物理的なサーバを想像する方が多いのではないでしょうか。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.27.24.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.27.24.png" alt="サーバ" width="1169" height="276" class="aligncenter size-full wp-image-3868" srcset="https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.27.24.png 1169w, https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.27.24-300x71.png 300w, https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.27.24-768x181.png 768w, https://elite-lane.com/wp-content/uploads/2019/03/Screen-Shot-2019-03-29-at-17.27.24-1024x242.png 1024w" sizes="(max-width: 1169px) 100vw, 1169px" /></a></p>
<p>勿論、物理的なサーバも「コンピュータ分野におけるサーバ」ですが、広義にはコンピュータ分野におけるサーバは</p>
<ul>
<li>ハードウェアとしてのサーバ</li>
<li>ソフトウェアとしてのサーバ</li>
</ul>
<p>があります。</p>

<table id="tablepress-366" class="tablepress tablepress-id-366">
<thead>
<tr class="row-1 odd">
	<th class="column-1">ハードウェアとしてのサーバ	</th><th class="column-2">ソフトウェアとしてのサーバ</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td class="column-1">コンピュータネットワークにおいて、他のコンピュータに対し、自身の持っている<br />
・機能<br />
・サービス<br />
・データ 等<br />
を提供する物理的なコンピュータ</td><td class="column-2">コンピュータネットワークにおいて、他のコンピュータに対し、自身の持っている<br />
・機能<br />
・サービス<br />
・データ 等<br />
を提供するソフトウェア</td>
</tr>
</tbody>
</table>
<!-- #tablepress-366 from cache -->
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-12.53.06-min.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-12.53.06-min.png" alt="ハードウェアとしてのサーバ・ソフトウェアとしてのサーバ" width="626" height="276" class="aligncenter size-full wp-image-9684" srcset="https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-12.53.06-min.png 626w, https://elite-lane.com/wp-content/uploads/2020/05/Screen-Shot-2020-05-31-at-12.53.06-min-300x132.png 300w" sizes="(max-width: 626px) 100vw, 626px" /></a></p>
<p>特にソフトウェアとしてのサーバは</p>
<ul>
<li>機能</li>
<li>サービス</li>
<li>データ 等々</li>
</ul>
<p>によって、色々な種類のサーバがあります。</p>
<p>これら色々な種類のソフトウェアとしてのサーバのお陰で、私たちは</p>
<ul>
<li>インターネットの利用</li>
<li>メールの送受信</li>
<li>データベースの処理・運用　等々</li>
</ul>
<p>が利用出来ているのです。</p>
<h4><span id="toc4">サーバの種類</span></h4>
<p>サーバは広義の意味では</p>
<ul>
<li>ハードウェアとしてのサーバ</li>
<li>ソフトウェアとしてのサーバ</li>
</ul>
<p>があると先述しました。</p>
<p>ここではソフトウェアとしてのサーバにはどのような種類のサーバがあるのか見ていきます。</p>

<table id="tablepress-367" class="tablepress tablepress-id-367">
<thead>
<tr class="row-1 odd">
	<th class="column-1"></th><th class="column-2">機能</th><th class="column-3">代表的ソフトウェア</th><th class="column-4">概要</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td rowspan="2" class="column-1">ウェブサーバ</td><td rowspan="2" class="column-2">ウェブ処理</td><td class="column-3">・Apache HTTP Server<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/apache-min.jpeg" alt="Apache HTTP Server" width="100" height="40" class="aligncenter size-full wp-image-9682" /></td><td rowspan="2" class="column-4">クライアントソフトウェアとHTTPによる通信を行うサービスプログラム</td>
</tr>
<tr class="row-3 odd">
	<td class="column-3">・nginx<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/nginx-min.jpeg" alt="nginx" width="100" height="40" class="aligncenter size-full wp-image-9673" /></td>
</tr>
<tr class="row-4 even">
	<td rowspan="2" class="column-1">メールサーバ</td><td rowspan="2" class="column-2">メールサービス処理</td><td class="column-3">・Postfix<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/postfix-min.jpeg" alt="Postfix" width="100" height="40" class="aligncenter size-full wp-image-9675" /></td><td rowspan="2" class="column-4">電子メールを配送するためのサーバソフトウェア</td>
</tr>
<tr class="row-5 odd">
	<td class="column-3">・sendmail<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/sendmail-min.jpeg" alt="sendmail" width="100" height="40" class="aligncenter size-full wp-image-9674" /></td>
</tr>
<tr class="row-6 even">
	<td rowspan="2" class="column-1">データベースサーバ</td><td rowspan="2" class="column-2">データベース処理</td><td class="column-3">・MySQL<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/mysql-min.jpeg" alt="MySQL" width="100" height="40" class="aligncenter size-full wp-image-9676" /></td><td rowspan="2" class="column-4">データベース運用、管理のためのシステム・ソフトウェア</td>
</tr>
<tr class="row-7 odd">
	<td class="column-3">・PostgreSQL<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/postgre-min.jpeg" alt="PostgreSQL" width="100" height="40" class="aligncenter size-full wp-image-9677" /></td>
</tr>
<tr class="row-8 even">
	<td rowspan="2" class="column-1">FTPサーバ<br />
</td><td rowspan="2" class="column-2">ファイル転送処理</td><td class="column-3">・FileZilla<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/filezilla-min.jpeg" alt="FileZilla" width="100" height="40" class="aligncenter size-full wp-image-9678" /></td><td rowspan="2" class="column-4">・File Transfer Protocol（FTP）<br />
・FTPを使用してファイルの送受信を行うサーバソフトウェア</td>
</tr>
<tr class="row-9 odd">
	<td class="column-3">・Cyberduck<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/cyberduck-min.jpeg" alt="Cyberduck" width="100" height="40" class="aligncenter size-full wp-image-9679" /></td>
</tr>
<tr class="row-10 even">
	<td class="column-1">DNSサーバ</td><td class="column-2">「名前解決」処理</td><td class="column-3">・BIND<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/bind-min.jpeg" alt="BIND" width="100" height="40" class="aligncenter size-full wp-image-9680" /></td><td class="column-4">・Domain Name System（DNS）<br />
・ホスト名、メールアドレスに含まれるドメイン名等の「名前」から、IPアドレス等を得る「解決」を行うサーバソフトウェア</td>
</tr>
<tr class="row-11 odd">
	<td class="column-1">DHCPサーバ</td><td class="column-2">ネットワーク管理処理</td><td class="column-3">・ISC DHCP<br />
<img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2020/05/isc-min.jpeg" alt="ISC DHCP" width="100" height="40" class="aligncenter size-full wp-image-9681" /></td><td class="column-4">・Dynamic Host Configuration Protocol（DHCP）<br />
・コンピュータがネットワークに接続する際に必要な設定情報を自動的に割り当てるサーバソフトウェア</td>
</tr>
</tbody>
</table>
<!-- #tablepress-367 from cache -->
<h4><span id="toc5">サーバに共通する特徴</span></h4>
<p>サーバには色々な種類が存在しますが、どの種類のサーバにも共通する基本的な特徴として</p>
<ol>
<li>
<ul>
<li>アカウント管理</li>
<li>ポリシー管理</li>
<li>ログ管理 等</li>
</ul>
<p>のセキュリティー
</li>
<li>多数のユーザーの同時アクセスに対応できる性能</li>
<li>連続稼働に耐える
<ul>
<li>信頼性</li>
<li>可用性</li>
<li>保守容易性</li>
</ul>
</li>
<li>将来の変更や拡張が容易な拡張性</li>
</ol>
<p>が挙げることが出来ます。</p>
<h3><span id="toc6">三層アーキテクチャ</span></h3>
<p>サーバサイドにおけるアーキテクチャには</p>
<ul>
<li>二層アーキテクチャ</li>
<li>三層アーキテクチャ 等々</li>
</ul>
<p>があります。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.38.48.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.38.48.png" alt="3層クライアント・サーバ・モデル" width="976" height="500" class="aligncenter size-full wp-image-3929" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.38.48.png 976w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.38.48-300x154.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-01-at-23.38.48-768x393.png 768w" sizes="(max-width: 976px) 100vw, 976px" /></a></p>
<p>二層アーキテクチャはクライアントサーバ・モデルを指します。</p>
<p>二層アーキテクチャの特徴としては、アプリケーションプログラムがクライアント側で動く事です。<br />
つまり、大雑把に言うとクライアントが、</p>
<ul>
<li>プレゼンテーション層（ユーザインターフェース部分）</li>
<li>アプリケーション層（ビジネスロジック部分）</li>
</ul>
<p>の役割を兼任しています。</p>
<p>二層アーキテクチャにおけるメリット・デメリットは下記の通りです。</p>

<table id="tablepress-373" class="tablepress tablepress-id-373">
<thead>
<tr class="row-1 odd">
	<th class="column-1">メリット</th><th class="column-2">デメリット</th>
</tr>
</thead>
<tbody class="row-hover">
<tr class="row-2 even">
	<td rowspan="2" class="column-1">使い勝手の良いアプリケーションプログラム</td><td class="column-2">アプリケーションプログラムは頻繁にプログラムの更新が行われるため、その都度全クライアントに配布し直す必要が有り、運用が大変</td>
</tr>
<tr class="row-3 odd">
	<td class="column-2">アプリケーションプログラムは多くのプログラムで構成されている場合が多く、クライアントのディスク容量を圧迫</td>
</tr>
</tbody>
</table>
<!-- #tablepress-373 from cache -->
<div class="information-box">
ユーザインターフェース・・・コンピュータとそのコンピュータの利用者（通常は人間）の間での情報をやりとりするための接点、また接点となるプログラム</p>
<p>ビジネスロジック・・・コンピュータ分野のソフトウェアにおいて、データベース上のデータに対する処理手順をプログラムコードとして実装した部分
</div>
<p>二層アーキテクチャにおいて、アプリケーションプログラムがクライアント側で動く事に関してはデメリットが大きいため、このデメリットを解消するため、アプリケーションプログラムをサーバーに置く事で対応したものが三層アーキテクチャです。</p>
<p>三層アーキテクチャは、クライアントサーバ・モデルを</p>
<ul>
<li>プレゼンテーション層（ユーザインターフェース部分）</li>
<li>アプリケーション層（ビジネスロジック部分）</li>
<li>データ・アクセス層（データベース部分）</li>
</ul>
<p>の三層に分割して構築したモデルを指します。</p>
<p>また、三層アーキテクチャはクライアントおよびサーバの処理を複数の階層に分離して配置することで、</p>
<ul>
<li>変更容易性</li>
<li>拡張性</li>
</ul>
<p>を高める事が出来ます。</p>
<p>次に、Webアプリケーションサーバを例に取って、</p>
<ul>
<li>プレゼンテーション層</li>
<li>アプリケーション層</li>
<li>データ・アクセス層</li>
</ul>
<p>それぞれの役割・仕組みを見ていきます。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.08.00.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.08.00.png" alt="Webアプリケーションサーバ" width="993" height="369" class="aligncenter size-full wp-image-3933" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.08.00.png 993w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.08.00-300x111.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.08.00-768x285.png 768w" sizes="(max-width: 993px) 100vw, 993px" /></a></p>
<h4><span id="toc7">プレゼンテーション層</span></h4>
<p>WEBブラウザからのHTTPリクエストを処理し、必要に応じてアプリケーション層に処理を委譲します。</p>
<p>また、アプリケーション層からリクエスト処理結果を受け取り、WEBブラウザに返します。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.00.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.00.png" alt="プレゼンテーション層" width="979" height="276" class="aligncenter size-full wp-image-3934" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.00.png 979w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.00-300x85.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.00-768x217.png 768w" sizes="(max-width: 979px) 100vw, 979px" /></a></p>
<h4><span id="toc8">アプリケーション層</span></h4>
<p>プレゼンテーション層からの要求に応じてビジネスロジックを処理します。</p>
<p>必要に応じてデータ・アクセス層にアクセスし、データの検索、保存などを行います。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.43.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.43.png" alt="アプリケーション層" width="966" height="271" class="aligncenter size-full wp-image-3935" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.43.png 966w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.43-300x84.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.13.43-768x215.png 768w" sizes="(max-width: 966px) 100vw, 966px" /></a></p>
<h4><span id="toc9">データ・アクセス層</span></h4>
<p>データを管理し、アプリケーション層に対して</p>
<ul>
<li>データ検索</li>
<li>データ抽出</li>
<li>データ保存 等</li>
</ul>
<p>のインタフェースを提供します。</p>
<p><a rel="follow noopener" target="_blank" href="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.14.19.png"><img loading="lazy" decoding="async" src="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.14.19.png" alt="データ・アクセス層" width="1001" height="268" class="aligncenter size-full wp-image-3936" srcset="https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.14.19.png 1001w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.14.19-300x80.png 300w, https://elite-lane.com/wp-content/uploads/2019/04/Screen-Shot-2019-04-02-at-1.14.19-768x206.png 768w" sizes="(max-width: 1001px) 100vw, 1001px" /></a></p>
<p>上記の様な</p>
<ul>
<li>プレゼンテーション層</li>
<li>アプリケーション層</li>
<li>データ・アクセス層</li>
</ul>
<p>それぞれの役割が三層アーキテクチャの基本モデルになります。</p>
<p>以上、クライアントサーバの</p>
<ul>
<li>概要</li>
<li>サーバサイド</li>
</ul>
<p>についての説明になります。</p>
<p>投稿 <a href="https://elite-lane.com/client-server-model/">クライアントサーバのサーバサイド･三層アーキテクチャ</a> は <a href="https://elite-lane.com">Archive of Yone</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://elite-lane.com/client-server-model/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
