1. 概要

この記事では、コンピュータサイエンスで一般的に使用されている、誤って交換されることが多い2つの用語、レイヤとティアの違いについて説明します。

2. レイヤー

レイヤーという用語は、コードの論理的な分離を指します。 言い換えれば、それは関連する機能の首尾一貫したセットです。

アプリケーションをレイヤーで構造化することは、コードベースをより適切に編成する方法です。 このため、移植性と保守性は、この種の構造を使用するように私たちを駆り立てる推進力です。

実際、この概念は、レイヤードアーキテクチャヘキサゴナルアーキテクチャなどのさまざまなタイプのアーキテクチャに適用されています。

例として、以下は階層化アーキテクチャの表現です。

ここで、ユーザーインターフェイス層、ビジネスロジック層、およびデータアクセス層はそれぞれ独自の責任を持ち、論理的に分離されています。

レイヤーは、物理的な分離とは何の関係もありません。 レイヤーについて話すとき、それらを展開する場所を指定しません。

3. ティア

一方、ティアという用語は物理構造を指します。 層は、必ずしも1対1のマッピングではなく、レイヤーを展開する場所を定義します。 したがって、アプリケーションの層について話すときは、そのトポロジーを意味します。

例として、前の段落の階層化されたアプリケーションを物理的に分割する方法を見てみましょう。

上に、各層が物理的に層をホストするn層アーキテクチャの表現を示しています。 これは、従来の3層アーキテクチャです。

層は、ソフトウェアが実行されるコンピューティング環境を考慮して定義されます。アプリケーションを層に分割することにより、より高度なスケーラビリティを実現できます。

アプリケーションの同じレイヤーを異なる階層構造でデプロイすることもできます。

この2層またはクライアントサーバーアーキテクチャでは、UI層は専用層にあり、ビジネスロジック層とデータアクセス層は別の層にあります。

4. 結論

この記事では、レイヤーとティアの概念と、これらが論理的および物理的アーキテクチャーにどのようにマッピングされるかを定義しました。