195

最近、「N 層アーキテクチャの経験が必要」または「N 層アプリを開発できなければならない」というような文章を含む開発者の求人情報をかなりの数見ました。

このことから、N 層アーキテクチャとは何かという疑問が生じます。どうやって経験を積むのですか?

4

12 に答える 12

248

ウィキペディア:

ソフトウェア エンジニアリングでは、多層アーキテクチャ (しばしば n 層アーキテクチャと呼ばれます) は、プレゼンテーション、アプリケーション処理、およびデータ管理が論理的に分離されたプロセスであるクライアント サーバー アーキテクチャです。たとえば、ミドルウェアを使用してユーザーとデータベース間のデータ要求を処理するアプリケーションは、多層アーキテクチャを採用しています。「多層アーキテクチャ」の最も一般的な使用法は、3 層アーキテクチャを指します。

何を「階層」と見なすかについては議論の余地がありますが、私の意見では、少なくともプロセスの境界を越える必要があります。または、レイヤーと呼ばれます。ただし、物理的に異なるマシンにある必要はありません。お勧めしませんが、論理層とデータベースを同じボックスでホストできます。

代替テキスト

編集:1つの意味は、プレゼンテーション層とロジック層(ビジネスロジック層と呼ばれることもあります)が、信頼性が低く、低速で、安全でないネットワークを介して「ワイヤーを越えて」マシンの境界を越える必要があることです。これは、データがファイルと同じマシンに存在する単純なデスクトップ アプリケーションや、データベースに直接アクセスできる Web アプリケーションとは大きく異なります。

n 層プログラミングの場合、「データセット」と呼ばれるある種の転送可能な形式にデータをパッケージ化し、それらをネットワーク経由で転送する必要があります。.NET のDataSetクラスやSOAPなどの Web サービス プロトコルは、ネットワーク上でオブジェクトを飛ばそうとする試みのほんの一部です。

于 2008-11-23T06:10:10.837 に答える
20

これは、コア ビジネス ロジックおよびデータ アクセスからプレゼンテーション レイヤーをどのように分離するかに基づいています ( Wikipedia ) 。

  • 3 層とは、プレゼンテーション層 + コンポーネント層 + データ アクセス層を意味します。
  • N 層とは、通常、追加のモジュール性、構成可能性、または他のシステムとの相互運用性のために、これらを超えて追加のレイヤーが追加される場合です。
于 2008-11-23T06:13:25.307 に答える
16

Javascript - ASP.Net - ミドルウェア - データベース層など、通常の Web アーキテクチャのようなものを指すバズワードです。これらはそれぞれ「階層」です。

于 2008-11-23T06:04:29.100 に答える
4

n 層データ アプリケーションは、複数の層に分割されたデータ アプリケーションです。「分散アプリケーション」および「多層アプリケーション」とも呼ばれる n 層アプリケーションは、クライアントとサーバー間で分散される個別の層に処理を分離します。データにアクセスするアプリケーションを開発するときは、アプリケーションを構成するさまざまな層を明確に分離する必要があります。

一般的な n 層アプリケーションには、プレゼンテーション層、中間層、およびデータ層が含まれます。n 層アプリケーションのさまざまな層を分離する最も簡単な方法は、アプリケーションに含める層ごとに個別のプロジェクトを作成することです。たとえば、プレゼンテーション層は Windows フォーム アプリケーションであり、データ アクセス ロジックは中間層にあるクラス ライブラリである場合があります。さらに、プレゼンテーション層は、サービスなどのサービスを介して中間層のデータ アクセス ロジックと通信する場合があります。アプリケーション コンポーネントを個別の層に分離すると、アプリケーションの保守性とスケーラビリティが向上します。これは、ソリューション全体を再設計する必要なく、単一の層に適用できる新しいテクノロジを簡単に採用できるようにすることで実現します。加えて、

Microsoft のWeb サイトから取得。

于 2015-02-07T14:17:33.613 に答える
3

通常の MCV (3 層アーキテクチャ) を構築する場合、コードを 1 行も変更することなく特定の層を実際に置き換えることができるように、MCV をダブルデッキ インターフェイスで実装することを決定できます。

たとえば、複数のデータベースを使用できるようにしたい場合 (この場合、コントロール層とデータ層の間に二重のインターフェースがあります) など、この利点がよく見られます。

ビューレイヤー(プレゼンテーション) に配置すると、(ちょっと待って!!) USER インターフェイスを別のマシンに置き換えることができ、それによって REAL 入力を自動化できます (!!!)。ユーザーが何度も何度も同じものをタップして再タップして再タップする必要はありません。

1 つまたは 2 つの二重インターフェースを備えたこのような3 層アーキテクチャーを4 層または5 層アーキテクチャーと説明し、二重インターフェースを暗黙のうちに暗示している人もいます。

他のケースには、(ただしこれに限定されません) という事実が含まれます - 部分的または完全に複製されたデータベース システムの場合、実質的にデータベースの 1 つを「マスター」と見なすことができ、それによって階層が作成されます。マスターデータベースで構成され、別のスレーブデータベースで構成されます。

モバイルの例

したがって、多層 (または N 層) には実際にいくつかの解釈がありますが、層の交換を可能にするために間に挟まれた薄いインターフェースディスクで構成される 3 層 + 追加の層に固執することは間違いありません。テスト (特にモバイル デバイスで使用) により、制御ロジックが実際のユーザーのタップと区別できない方法でユーザーのタップをシミュレートすることにより、実際のソフトウェアでユーザー テストを実行できるようになりました。これは、ユーザーの OTA からのすべての入力を記録し、回帰テストを行うときに同じ入力を再利用できるという点で、実際のユーザー テストをシミュレートする際に最も重要です。

于 2017-05-01T19:57:49.423 に答える
3

N 層では、ビジネス ロジック、クライアント アクセス、およびデータが、個別の物理マシンを使用して互いに分離されていると理解しています。理論的には、そのうちの 1 つを他のものとは独立して更新できるというものです。

于 2008-11-23T06:04:25.140 に答える