2010-04-14 3 views
1

3-Tier 아키텍처를 표현하는 다양한 가능성에 대해 혼란스러워합니다.3-tier 아키텍처 - 계층화 및 용어 mishmash

Data-Access-Layer 
Business-Layer 
Presentation Layer (User Interface) 

또는

Database (aka Backend) 
Business-Layer 
Presentation Layer (User Interface) 

왜 1 방식에서 데이터베이스를 건너 뛸 수 있습니다? 둘 다 데이터베이스를 사용합니다! 데이터베이스가 레이어에 속해 있는지 여부

무엇이 잘못 되었습니까?

누군가가 이것을 분명히 할 수 있습니까?

답변

3
Data-Access-Layer 
Business-Layer 
Presentation Layer (User Interface) 

데이터 액세스 레이어는 반드시 데이터베이스 아니다. XML 파일 일 수 있습니다. 그것은 RSS 피드 일 수 있습니다. 그것은 외부 응용 프로그램 일 수 있습니다. 그것은 당신이 당신의 어플리케이션으로 데이터를 가져 오는 것과 같은 당신이 좋아하는 어떤 것이라도 될 수 있습니다.

그래서 그것은 정말 :

[Data-Source] 
Data-Access-Layer 
Business-Layer 
Presentation Layer (User Interface) 

[Data-Source] ... 난 드라이버가 아닌 계층으로 데이터 소스 자체를 생각하는 것을 선호 어떤 데이터베이스, XML, RSS가있다.

이 방법의 유연성을 통해 나머지 응용 프로그램을 건드리지 않고도 데이터 소스를 바꿀 수 있습니다. 따라서 XML 파일을 백엔드 데이터로 사용하여 시작한 다음 데이터베이스로 변경하려는 경우 DAL 계층 만 터치하면됩니다. 나머지 응용 프로그램은 여전히 ​​해당 데이터를 가져 오는 한 신경 쓰지 않습니다. 같은 형식의 데이터.

+0

데이터 원본이라는 용어는 interessting입니다. 나에게이 용어는 데이터베이스에 논리가 없다고 말한다. 이 가정이 맞습니까? 데이터베이스에 전체 비즈니스 로직이 포함되는시기는 무엇입니까? 비즈니스 계층이 아직 있습니까? – Rookian

+0

비즈니스 논리를 데이터베이스에 넣는 것이 "옳은가"에 대한 논의가 많이 있습니다. MS SQL에서 MySQL로 데이터베이스 서버를 변경하려면 어떻게해야합니까? 갑자기 비즈니스 논리를 다시 작성해야합니다. 데이터베이스를 모두 제거하고 대신 XML을 사용한다면 어떨까요? 당신의 논리는 사라졌습니다. 또한 데이터베이스에 포함되지 않는 비즈니스 논리가있는 경우 비즈니스 로직을 두 곳에서 유지 관리하는 것이 좋지 않습니다. 비즈니스 로직은 데이터베이스 컨텍스트에서만 작동 할 수있는 경우도 있습니다. 특정 상황에 맞게 추상화해야합니다. –

+0

http://en.wikipedia.org/wiki/Business_logic은 두 가지 관점에서 모두 기사를 제공합니다. –

0

dal이 db를 사용할 수 없다고 생각 했습니까? xml 파일을 사용할 수 있습니까?

첫 번째 방법은 3 계층 계층의 개념 인보다 추상적 인 개념을 사용하는 것입니다.

각 계층에 포함되는 항목은 계층의 구현에 따라 다릅니다. Yuo는 GUI/DB/BizLogic '프로그램'사이에서 레이어를 섞어 놓은 것을 발견 할 수 있습니다. 그러나 추상에서는 여전히 그 레이어를 유지합니다. 당신이 위의이 DB에 연결 코드를 wirte 수 있습니다 고려

데이터 액세스 레이어
비즈니스 레이어
프리젠 테이션 레이어 (사용자 인터페이스)

. 그것은 DAL인가 논리입니까?

데이터에 액세스하기 위해 코드 작성시 DAL을 고려해야합니다.

0

프리젠 테이션 계층
이것은 응용 프로그램의 최상위 레벨입니다. 프리젠 테이션 계층은 상품 검색, 구매 및 장바구니 내용과 같은 서비스와 관련된 정보를 표시합니다. 브라우저/클라이언트 계층 및 네트워크의 다른 모든 계층에 결과를 출력하여 다른 계층과 통신합니다.
응용 프로그램 계층 (비즈니스 논리/논리 계층/데이터 액세스 계층/중간 계층)
논리 계층은 프레젠테이션 계층에서 끌어내어 자체 계층으로 세부 처리를 수행하여 응용 프로그램의 기능을 제어합니다.
데이터 계층
이 계층은 데이터베이스 서버로 구성됩니다. 여기서 정보가 저장되고 검색됩니다. 이 계층은 데이터를 중립적으로 유지하고 응용 프로그램 서버 또는 비즈니스 논리와 독립적입니다. 데이터 자체 계층을 제공하면 확장 성과 성능이 향상됩니다.

은 자세한 내용은 다음을 참조하십시오
http://en.wikipedia.org/wiki/Multitier_architecture

0

Microsoft의 Patterns and Practices 그룹에는이 문제에 대한 모든 변형이 포함 된 우수한 architecture guide이 있습니다. .NET에 약간 초점을 맞추었지만 모든 환경에 매우 적합합니다. 추천.