N계층(다계층), 3계층, 2계층 Archi예시를 이용한 강의

N티어란 무엇인가요?

An N 계층 애플리케이션 프로그램은 분산 네트워크에 있는 세 대 이상의 개별 컴퓨터에 분산되는 프로그램입니다.

n-tier의 가장 일반적인 형태는 3-tier 애플리케이션이며, 세 가지 범주로 분류됩니다.

  • 사용자 컴퓨터의 사용자 인터페이스 프로그래밍
  • 보다 중앙 집중화된 컴퓨터의 비즈니스 로직
  • 데이터베이스를 관리하는 컴퓨터에 필요한 데이터입니다.

이 아키텍처 모델은 소프트웨어 개발자에게 최대한의 유연성을 갖춘 재사용 가능한 애플리케이션/시스템을 생성할 수 있는 기능을 제공합니다.

In N 계층, “N” 다음과 같이 사용되는 여러 계층 또는 레이어를 나타냅니다. 2층, 3층, 4층 등. “라고도 불린다.다중 계층 Archi강의”.

n계층 아키텍처 업계에서 검증된 소프트웨어 아키텍처 모델입니다. 확장성, 보안, 내결함성, 재사용성 및 유지 관리에 대한 솔루션을 제공하여 엔터프라이즈 수준의 클라이언트-서버 애플리케이션을 지원하는 데 적합합니다. 개발자가 유연하고 재사용 가능한 애플리케이션을 만드는 데 도움이 됩니다.

N 계층 Archi강의

n 계층 시스템의 도식적 표현은 프레젠테이션, 애플리케이션 및 데이터베이스 계층을 보여줍니다.

N 계층 Archi강의
N티어 Archi강의 다이어그램

이 세 가지 계층은 요구 사항에 따라 서로 다른 하위 계층으로 더 세분화될 수 있습니다.

이 아키텍처를 적용한 인기 사이트 중 일부는 다음과 같습니다.

  • MakeMyTrip.com
  • Sales Force 엔터프라이즈 애플리케이션
  • 인도 철도 – IRCTC
  • Amazon.com 등

개념을 보다 명확하게 이해하기 위해 기억해야 할 몇 가지 일반적인 용어입니다.

  • 분산 네트워크: 네트워크 아키텍처로, 네트워크 컴퓨터에 위치한 구성 요소가 메시지를 전달함으로써만 동작을 조정하고 통신합니다. 서로 다른 노드에 위치한 여러 시스템의 모음이지만 사용자에게는 단일 시스템으로 보입니다.
    • 이는 서로 다른 네트워크에서 별도로 관리할 수 있는 단일 데이터 통신 네트워크를 제공합니다.
    • 분산 네트워크의 한 예입니다. 한 쪽에서는 LAN 아키텍처로 서로 다른 클라이언트가 연결되어 있고, 다른 쪽에서는 서비스 노드가 포함된 서버 랙과 함께 고속 스위치에 연결되어 있습니다.
  • 클라이언트 서버 Archi강의: 클라이언트(한 프로그램)가 서버(다른 프로그램)에게 서비스를 요청하는 아키텍처 모델입니다. 인터넷이나 인트라넷을 통해 제공되는 요청-응답 서비스입니다. 이 모델에서는 Client 네트워크를 통해 일련의 작업을 실행하는 하나의 프로그램/코드 세트 역할을 합니다. 하는 동안 서버반면에 는 요청에 따라 결과 세트를 클라이언트 시스템으로 보내는 또 다른 프로그램 세트입니다.
    • 여기서 클라이언트 컴퓨터는 최종 사용자에게 서버로부터 서비스나 리소스를 요청하는 인터페이스를 제공하고, 반면에 서버는 요청을 처리하여 최종 사용자에게 결과를 표시합니다.
    • 클라이언트-서버 모델의 예 – ATM 기계. 은행은 대규모 고객 데이터베이스 내에서 애플리케이션을 처리하기 위한 서버이고 ATM 기계는 간단한 애플리케이션 처리가 가능한 사용자 인터페이스를 갖춘 클라이언트입니다.
  • 플랫폼 : 컴퓨터 과학이나 소프트웨어 산업에서 플랫폼은 애플리케이션 프로그램이 실행될 수 있는 시스템입니다. 프로세서/마이크로프로세서가 특정 작업을 수행하도록 하는 내장 명령어가 있는 하드웨어와 소프트웨어의 조합으로 구성됩니다.
    • 더 간단히 말하면 플랫폼은 특정 작업을 수행하기 위해 모든 애플리케이션을 실행하고 실행할 수 있는 시스템 또는 기반입니다.
    • 플랫폼의 예 – 다음이 탑재된 개인용 기계 Windows 2000 또는 Mac OS X를 두 가지 다른 플랫폼의 예로 들 수 있습니다.
  • 데이터 베이스: 쉽게 접근하고, 관리하고, 업데이트할 수 있도록 체계적으로 정보를 모아 놓은 것입니다.
    • 데이터베이스의 예 - MySQL, SQL 서버 및 Oracle Database 일반적인 Db입니다.

N 계층 유형 Archi강의

N-Tier에는 다양한 유형이 있습니다. Archi같은 강의 3 계층 Archi강의, 2-Tier Archi강의 및 1-Tier Archi강의.

먼저 3티어를 살펴보겠습니다. Archi매우 중요한 강의입니다.

3-Tier Archi강의

아래 도표를 보면 그 내용을 쉽게 알 수 있습니다. 3 계층 아키텍처 세 가지 다른 레이어가 있습니다.

  • 프레젠테이션 레이어
  • 비즈니스 로직 레이어
  • 데이터베이스 계층
3 등급 Archi강의 다이어그램
3 등급 Archi강의 다이어그램

여기서 우리는 이 세 가지 계층을 모두 이해하기 위해 학생 양식의 간단한 예를 들어보았습니다. 여기에는 이름, 주소, 이메일, 사진과 같은 학생에 대한 정보가 있습니다.

사용자 인터페이스 레이어 또는 프리젠테이션 레이어

3-Tier Archi강의

프리젠 테이션 레이어

private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
// Object of the Property layer
clsStudent objproperty=new clsStudent();
// Object of the business layer
clsStudentInfo objbs=new clsStudentInfo();
// Object of the dataset in which we receive the data sent by the business layer
DataSet ds=new DataSet();
// here we are placing the value in the property using the object of the
//property layer
objproperty.id=int.Parse(DataGridl.SelectedItem.Cells[1].Text.ToString());

// In this following code we are calling a function from the business layer and 
// passing the object of the property layer which will carry the ID till the database.
ds=objbs.GetAllStudentBsIDWise(objproperty);

// What ever the data has been returned by the above function into the dataset
//is being populate through the presentation laye.
txtId.Text=ds.Tables[0].Rows[0][0].ToString();
txtFname.Text=ds.Tables[0].Rows[0][1].ToString();
txtAddress.Text=ds.Tables[0].Rows[0][2].ToString();
txtemail.Text=ds.Tables[0].Rows[0][3].ToString();

코드 설명

  • 위의 코드는 애플리케이션의 프런트 엔드 뷰의 기본 설계와 다른 레이어의 기능을 호출하여 서로 통합할 수 있도록 정의합니다.

비즈니스 액세스 계층 –

이는 애플리케이션 계층에서 데이터를 받아 데이터 계층으로 전달하는 비즈니스 계층의 기능입니다.

  • 비즈니스 로직은 클라이언트 계층과 데이터 액세스 계층 간의 인터페이스 역할을 합니다.
  • 데이터 검증, 계산, 데이터 삽입/수정과 같은 모든 비즈니스 로직은 비즈니스 로직 계층 아래에 ​​작성됩니다.
  • 클라이언트와 데이터 계층 간의 통신을 더 빠르고 쉽게 만듭니다.
  • 작업을 완료하는 데 필요한 적절한 워크플로 활동을 정의합니다.
// this is the function of the business layer which accepts the data from the 
//application layer and passes it to the data layer.
public class clsStudentInfo
{
	public DataSet GetAllStudentBsIDWise(clsStudent obj)
	{
	 DataSet ds=new DataSet();
	 ds=objdt.getdata_dtIDWise(obj);// Calling of Data layer function
	 return ds;
	}
}

코드 설명

코드는 애플리케이션 계층의 데이터를 받아 데이터 계층으로 전달하는 비즈니스 계층의 기능을 사용하고 있습니다. 비즈니스 계층 코드는 프리젠테이션 계층과 데이터 계층에 정의된 기능 사이의 중재자 역할을 하며 그 반대로 함수를 호출합니다.

데이터 액세스 계층

이는 비즈니스 계층에서 데이터를 수신하고 데이터베이스에 필요한 작업을 수행하는 데이터 계층 기능입니다.

// this is the datalayer function which is receiving the data from the business 
//layer and performing the required operation into the database

public class clsStudentData // Data layer class 
{
	// object of property layer class
	public DataSet getdata_dtIDUise(clsStudent obj)
	{
	 DataSet ds;
	 string sql;
	 sql="select * from student where Studentld=" +obj.id+ "order by Studentld;
	 ds=new DataSet();
	//this is the datalayer function which accepts the sql query and performs the 
	//corresponding operation
		ds=objdt.ExecuteSql(sql); 
		return ds;
	}
}

코드 설명

위의 데이터 세트 계층에서 정의한 코드는 시스템에서 요청한 전체 요청을 수락하고 데이터베이스에 필요한 작업을 수행합니다.

2-Tier Archi강의

이는 클라이언트-서버 아키텍처와 같으며, 통신은 클라이언트와 서버 사이에서 이루어집니다.

이러한 유형의 소프트웨어 아키텍처에서 프레젠테이션 계층이나 사용자 인터페이스 계층은 클라이언트 측에서 실행되는 반면, 데이터 세트 계층은 서버 측에서 실행되고 저장됩니다.

클라이언트와 서버 사이에는 비즈니스 논리 계층이나 직접 계층이 없습니다.

단일 계층 또는 1계층 Archi강의

개인용 컴퓨터에서 애플리케이션을 실행하는 것과 동일하므로 가장 간단한 방법입니다. 애플리케이션을 실행하는 데 필요한 모든 구성 요소는 단일 애플리케이션이나 서버에 있습니다.

프레젠테이션 계층, 비즈니스 논리 계층 및 데이터 계층은 모두 단일 시스템에 있습니다.

다중 계층의 장점과 단점 Archi강의

장점 단점
확장성 노력의 증가
Data Integrity 복잡성 증가
재사용 성
배포 감소
보안 향상
향상된 가용성

따라서 이는 실제 비즈니스 문제를 암호화하고 전체 작업을 완료하기 위해 데이터를 업데이트, 생성, 저장 또는 변경하는 방법을 결정하는 프로그램의 일부입니다.

N 계층 Archi강의 팁 및 개발

소프트웨어 전문가가 아키텍처의 모든 계층을 완벽하게 제어해야 한다는 점을 고려하여 n계층 아키텍처에 대한 팁은 아래와 같습니다.

  1. 비누 XML과 같은 기술을 사용하여 가능한 한 다른 레이어에서 레이어를 분리해 보세요.
  2. 일부 자동화된 도구를 사용하여 비즈니스 논리 계층과 관계형 데이터베이스 계층(데이터 계층) 간의 매핑을 생성합니다. 이러한 매핑 기술을 모델링하는 데 도움이 될 수 있는 도구는 Entity Framework 및 .Net용 Hibernate 등입니다.
  3. 클라이언트 프리젠터 레이어에서는 모든 클라이언트에 대한 공통 코드를 가능한 한 별도의 라이브러리에 넣습니다. 이렇게 하면 모든 유형의 클라이언트에 대한 코드 재사용성이 극대화됩니다.
  4. 성능 속도를 높이기 위해 기존 레이어에 캐시 레이어를 추가할 수 있습니다.

요약

N계층 아키텍처는 애플리케이션의 모든 구성 요소(비즈니스 계층, 프레젠테이션 계층, 데이터베이스 계층)를 하나의 지붕 아래에서 관리하는 데 도움이 됩니다.

로컬 영역 네트워크에서 소수의 사용자를 사용하는 애플리케이션은 n계층 아키텍처의 이점을 누릴 수 있습니다.

이러한 아키텍처 설계는 인터넷에서 애플리케이션을 효율적으로 유지 관리하고, 확장하고, 배포하는 데 도움이 됩니다.