2012-01-10 2 views
-1

저는 한 페이지를 3 개의 레이어로 변환하려고합니다.간단한 정의와 장점으로 3-tier는 무엇입니까?

나는 이점이 더 조직적이라고 생각합니다.

지금 3 층이 있기 때문에 무슨 일이 일어나고 있는지 혼란스러워지고 있습니다. 3 층이 무엇인지 명확하게 이해하지 못했습니다.

이 = 내가 아는 아니면 내가

데이터 액세스 레이어를 알고 있다고 생각하는 것입니다은/모든 연결을 가져옵니다

비즈니스 액세스 계층 값 = DAL에서 이러한 연결과 가치를 실행합니다. 확실하지는 않지만 여기서 오류를 확인합니까?

프리젠 테이션 레이어 = 여기가 더 혼란 스럽습니다 ...이 부분은 BAL입니까? 이것이 사실이라면 왜 3 개의 레이어가 있어야합니까?

+3

당신이 읽고있는 내용이 확실하지 않지만 http://en.wikipedia.org/wiki/Multitier_architecture에서 읽은 내용이 확실하고 확실한 것처럼 보입니다. – Hogan

답변

7

프리젠 테이션 계층은 사용자와 상호 작용하고 요청을 받아 정보를 표시합니다. 은행 응용 프로그램을 예로 들어 보겠습니다. 사용자는 자신의 계정에 로그인하여 잔액을 얻고 일부 찾기를 전송하려고합니다.

프리젠 테이션 계층 : 사용자에게 로그인 프롬프트를 제공하고 사용자의 로그인 정보를 얻고 로그인 성공을 알리고 잔액을 표시하며 자금을 이체 할 수있는 옵션을 제공하고 전송 세부 정보를 가져오고 사용자에게 전송을 알립니다. 승인되었습니다.

비즈니스 액세스 계층 : 사용자의 로그인 정보를 확인합니다. 사용자에게 표시 할 잔액을 계산합니다. 전송이 허용되고 승인되는지 결정합니다.

데이터 액세스 계층 : 사용자의 로그인 정보를 저장합니다. 계정 잔액 정보, 보유 된 자금 등을 저장합니다.

기본적으로 :

데이터 액세스 레이어는 정보를 저장합니다. 비즈니스 액세스 계층은 검색 할 정보를 결정하고이를 기반으로 결정을 내리고 결과를 전달합니다. Presentation Layer는 사용자에게 정보를 제공하고 사용자에게 정보를 제공합니다. 내가 강조 것이 그것의 http://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture

주요 포인트는 다른 환경에 대한 각 계층을 실행할 수 있다는 것입니다 :

+0

BAL은 결과를 저장합니까? DAL의 직업이라고 생각 했나요? – healxph0enix

+0

결과가 저장되도록 명령합니다. 실제로 작업 전반에 걸쳐 이들을 보유하지는 않습니다. 나는 분명히 할 것이다. –

1

이 글은 여기 좋은 요약을 보인다. 당신은 asp.net 말과 함께 웹 서버에서 프레 젠 테이션 계층을 실행할 수 있습니다. Windows 서비스 또는 WCF 서비스 등을 사용하여 다른 서버 (응용 프로그램 서버)에서 비즈니스 액세스 계층을 실행할 수 있습니다. 마지막 계층은 데이터베이스 서버 또는 그 근처에있을 수 있습니다.

잠재적으로 레이어를 다른 물리적 위치로 분리 할 수 ​​있다는 이점은 확장 성을 높일 수 있다는 것을 의미합니다. 예를 들어 귀하의 웹 서버가 많은 요청으로 어려움을 겪고있는 것일 수 있습니다. 비즈니스 액세스 레이어를 호출하는 두 개의 웹 서버를 갖기로 결정했습니다.

또 다른 장점은 메인 테 타비 티 (maintability)입니다. 데이터 액세스 코드가 모두 옆에 있으면 데이터 액세스 계층 문제를 디버그하는 것이 더 쉽습니다. 아마도 코드를 3 분의 1로 줄이는 프로젝트를 통해 찾고있는 것을 쉽게 찾을 수 있습니다.

또 다른 장점은 스왑 가능성 일 수 있습니다. 더 이상 asp.net을 사용하지 않으려한다고 가정 해보십시오. PHP 웹 레이어에서 바꿀 수 있고 .NET 비즈니스 로직과 더 쉽게 통신 할 수 있습니다.

본질적으로 내가 언급 한 장점은 모듈성/입도상의 장점입니다.

1

먼저 "계층"은 "계층"과 동의어가 아닙니다.

계층은 논리적 구분입니다.

계층은 잠재적으로 물리적 분리입니다. 일반적으로 시스템 또는 프로세스 수준입니다.

(참조 : http://pranshujain.wordpress.com/2006/09/15/layers-and-tiers/를)

=======

제외하고 그 세 층의 이유가 당신에게 의지에서 그들을 교환 할 수있는 기능을 제공하는 것입니다. 예를 들어 여러 프레젠테이션 레이어 (웹, 모바일, 데스크톱 앱)가있을 수 있습니다. 여기서는 프레젠테이션을 다른 모든 프레젠테이션과 분리하여 프레젠테이션 코드를 모두 다시 작성하지 않고도 비즈니스 논리를 변경할 수 있습니다.

비즈니스 개체 계층은 모든 일반 논리를 캡슐화하고 적용하기위한 것입니다. 예를 들어, 생년월일은 오늘 날짜 이전이어야한다고 말할 수 있습니다. 저장소와 프리젠 테이션을 분리하여 보관하는 개발자가 많습니다.

데이터 액세스 계층은 비즈니스 개체의 데이터를 실제 저장소 메커니즘으로 마샬링합니다. 아이디어는 SQL Server 나 Oracle 또는 플랫 파일에 저장하기로 결정할 수 있으며 나머지 응용 프로그램은 어떤 방식 으로든 상관하지 않아야합니다.

============

그 모든 레이어가 필요? 아니요. 그러나 많은 수의 응용 프로그램의 경우 변경 작업이 필요할 때 도움이됩니다.


이제 계층에 관한 정보입니다. 데스크탑 또는 브라우저는 하나의 계층으로 간주 될 수 있습니다. Javascript 코드와 HTML이 여기에서 실행됩니다. 데스크톱 응용 프로그램을 사용하는 경우이 위치에 있습니다.

또 다른 계층은 웹 서버 또는 웹 서비스 인터페이스입니다. 이것은 렌더링 및 사용 클라이언트 측의 html 서비스를 담당합니다. 일반적으로 프레젠테이션 렌더링과 비즈니스 개체 계층을 모두 포함합니다.

또 다른 계층은 실제 저장 메커니즘입니다. 예를 들어 SQL Server 또는 Oracle.

귀하의 아키텍처가 얼마나 진보했는지에 따라 5 개 또는 6 개의 다른 Tier를 가질 수도 있습니다. 그러나 숫자는 일반적으로 2와 3을 넘지 않습니다.

1 레이어 또는 12 레이어 만 있으면 완전히 가능합니다. 그러나 여기에 표시된 숫자는 일반적으로 2 ~ 3입니다. 다시 아키텍처에 따라 다릅니다.

관련 문제