문제

MVC (건축 패턴)와 응용 프로그램의 N-Tier 아키텍처의 차이점이 정확히 무엇인지 궁금했습니다. 검색했지만 간단한 설명을 찾을 수 없었습니다. MVC 개념에 대해 조금 순진 할 수 있으므로, 누군가가 그 차이를 설명 할 수 있다면 그것은 좋을 것입니다.

건배

도움이 되었습니까?

해결책

N-Tier Architecture에는 일반적으로 각 계층이 네트워크에 의해 분리되어 있습니다. 즉, 프레젠테이션 계층은 일부 웹 서버에 있으며 비즈니스 로직 네트워크를 통해 앱 서버를 백엔드 한 다음 네트워크를 통해 데이터베이스 서버와 다시 대화하고 앱 서버도 일부 원격 서비스를 요구합니다 ( 지불 처리를 위해 authorize.net을 말하십시오).

MVC는 일부 애플리케이션에서 모델, 뷰 및 컨트롤러를 나타내는 코드의 다른 부분이 담당하는 프로그래밍 설계 패턴입니다. 예를 들어 모델 계층에 데이터를 저장하고 검색하기 위해 데이터베이스를 호출하는 내부 구현이있을 수 있기 때문에이 두 가지는 관련이 있습니다. 컨트롤러는 웹 서버에 상주 할 수 있고, 원격으로 AppServers를 호출하여 데이터를 검색 할 수 있습니다. MVC는 앱의 아키텍처가 구현되는 방식에 대한 세부 사항을 초록합니다.

N-Tier는 단지 구현의 물리적 구조를 나타냅니다. MVC 디자인은 종종 N-Tier 아키텍처를 사용하여 구현되기 때문에이 두 가지는 때때로 혼란스러워합니다.

다른 팁

3 계층 디자인이 다음과 같습니다.

Client <-> Middle <-> Data

MVC 패턴은 다음과 같습니다.

     Middle
     ^    |
     |    v
Client <- Data

의미 :

  • 3 계층 등가에서 층 간의 통신은 다음과 같습니다 양방향 그리고 항상 중간 계층을 통과합니다
  • MVC에서 동등한 통신이 있습니다 단방향; 우리는 그렇게 말할 수 있습니다 각 "레이어"는 왼쪽에있는 것에 의해 업데이트되며 차례로 오른쪽에있는 것입니다. - "왼쪽"과 "오른쪽"은 단지 예시적인 것입니다.

추신 고객 그럴 것입니다 보다 그리고 가운데 그만큼 제어 장치

이것이 무엇입니다 말하십시오 N-Tier 아키텍처

언뜻보기에, 3 계층은 MVC (Model View Controller) 개념과 유사하게 보일 수 있습니다. 그러나 토폴로지 적으로 그들은 다릅니다. 3 계층 아키텍처의 기본 규칙은 클라이언트 계층이 데이터 계층과 직접 통신하지 않는다는 것입니다. 3 계층 모델에서 모든 통신은 미들웨어 계층을 통과해야합니다. 개념적으로 3 계층 아키텍처는 선형입니다. 그러나 MVC 아키텍처는 삼각형입니다. View는 컨트롤러에 업데이트를 보냅니다. 컨트롤러는 모델을 업데이트하며 뷰는 모델에서 직접 업데이트됩니다.

유일한 유사성은 두 패턴이 다이어그램에 3 개의 상자가 있다는 것입니다. 근본적으로 그들은 그들의 용도가 완전히 다릅니다. 사실, 그것은 일반적으로 사용할 패턴 중에서 선택하는 것이 아니지만 두 패턴을 모두 함께 사용할 수 있습니다. 다음은 두 가지를 잘 비교합니다. http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html

3 계층 아키텍처의 기본 규칙은 클라이언트 계층이 데이터 계층과 직접 통신하지 않는다는 것입니다. 3 계층 모델에서 모든 통신은 미들웨어 계층을 통과해야합니다.

라이너 아키텍처입니다. 이는 사용자와 데이터베이스간에 정보를 전달하는 방법에 대한 질문을 다룹니다. MVC가 삼각형 아키텍처 인 경우 : View는 컨트롤러에 업데이트를 보냅니다. 컨트롤러는 모델을 업데이트하며 뷰는 모델에서 직접 업데이트됩니다. 이는 사용자 인터페이스가 화면의 구성 요소를 관리하는 방법에 대한 질문을 다룹니다.

@Cherry Middle Ware는 MVC 패턴의 요청 핸들러 또는 리디렉터처럼 작동합니다.

Me Model View Controller Works에 따르면 MVC에 대해 조금 설명하고 싶습니다.

  1. 클라이언트는 모든 서비스를 요청하여 세션을 시작합니다.
  2. 이 요청은 컨트롤러 (요청 핸들러, 리디렉터 등)에 의해 수신 및 처리됩니다.
  3. 컨트롤러는 요청에 대한 기본 정보를 처리하고 데이터 요청을 채울 수있는 관련 모델로 리디렉션합니다.
  4. 모델은 컨트롤러가 전달한 매개 변수에 따라 요청을 채우고 결과를 컨트롤러로 전송합니다. (참고 : 여기서는 실제 MVC 아키텍처에서 데이터가 클라이언트로 직접 반환되지 않고 컨트롤러로 채우고 반환됩니다.)
  5. 해당 데이터를 보는 것보다 컨트롤러 (클라이언트).
  6. 고객은 그 앞에 요청 된 서비스를 가지고 있습니다.

그것은 내가 아는 MVC에 관한 모든 것입니다.

휴식을 취하십시오. 실제 문제를 해결할 때 특정 패턴으로 제한하지 마십시오. 그중 하나는 몇 가지 일반적인 원칙을 기억하십시오. 우려의 분리.

선형적인 것 외에도 여기서 충분히 강조되지 않은 또 다른 주요 차이점은 N-Tier 모델에서 N이 반드시 3 계층이 아니라는 것입니다! 대부분의 중간 계층 (비즈니스 로직 및 데이터 액세스)을 갖는 중간 계층과 함께 3 단계 (프레젠테이션, 앱, 데이터)로 구현됩니다. 또한 MVC의 모델은 데이터 조작을위한 데이터 및 비즈니스 로직을 모두 포함 할 수있는 반면, N-Tier에서는 별도의 계층에있을 수 있습니다.

N-Tier Architecture는 배포 다이어그램을 사용하여 가장 잘 정의됩니다.

MVC 아키텍처는 시퀀스 다이어그램을 사용하여 가장 잘 정의됩니다.

2는 동일하지 않으며 관련이 없으며 두 아키텍처를 결합 할 수 있습니다. 많은 회사들이 배포 및 확장 성뿐만 아니라 코드 재사용을위한 N 계층 아키텍처를 만들기위한 조치를 취했습니다.

예를 들어, 비즈니스 엔티티 객체는 데스크탑 앱, 클라이언트, 웹 앱 또는 모바일 앱에 노출 된 웹 서비스 인 데스크탑 앱을 소비해야 할 수 있습니다. MVC 접근 방식을 사용하면 아무것도 재사용하는 데 도움이되지 않습니다.

결론 : N-Tier는 아키텍처, MVC 디자인 패턴입니다. 그것들은 두 개의 다른 분야에서 적용되는 동일한 은유입니다.

Jerry : 다음은 두 사람이 어떻게 관련되어 있는지에 대한 간단한 예입니다.


1 단계 - 입력 검증, 계산 및보기와 관련된 기타 사항을 처리하기 위해 일종의 네트워크 서비스 또는 유사한 컨트롤러를 통해 Tier 2와 통신하는 모델로 구성됩니다. 그리고 여기에는 뷰 자체가 포함되어 있습니다. 물론 데스크탑 앱의 GUI 또는 웹 앱의 웹 인터페이스가 될 수 있습니다.


2 단계 - 티어 1에서 메시지를받는 다른 종류의 서비스 또는 기타 방법을 포함합니다. 1 단계에 대해 알지 못하므로 위의 전화에 대해서만 답변 할 수 있습니다. 또한 모든 비즈니스 로그가 포함되어 있습니다.


3 단계 - 데이터베이스 엔리를 통신하고 업데이트하기위한 도메인 모델, 데이터베이스 표현 및 모든 논리가 포함되어 있습니다.

3 계층 모델에서 모든 커뮤니케이션은 중간 계층을 통과해야합니다. 개념적으로 3 계층 아키텍처는 선형입니다. 그러나 [Model-View-Controller] MVC 아키텍처는 삼각형입니다. View는 컨트롤러에 업데이트를 보냅니다. 컨트롤러는 모델을 업데이트하며 View는 모델에서 직접 업데이트됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top