EJB를 시작하기전 분산프로그래밍에 대해 이해를 한다면 EJB에 대한 이해가 쉬울것 같아 정리한다.
2-Tier
- VB등의 프로그램 언어로 개발된 프로그램이 데이터 베이스에 직접 접근하여 비즈니스 로직을 처리하는 경우
- 예를들어 서버가 없이 내가 직접 프로그램을 다운받아 실행하고 다운받은 프로그램이 직접 DB에 접근하여 비즈니스로직을 처리하는 프로그램
- 클라이언트에서 모든 비즈니스 로직을 처리하므로 클라이언트 성능이 좋아야 한다.
- 소스가 수정되었을 경우 모든 클라이언트의 프로그램을 재 배포해야 한다.
- 서버보다는 클라이언트의 자원을 이용하는 환경
3-Tier
- 2-Tier의 단점을 극복하기 위해 등장함 기존의 클라이언트/DB사이에 중간단계를 추가함
- 첫번재 계층은 사용자의 입력을 받고 보여주는 프리젠테이션계층( 클라이언트 )
- 두번째 계층은 프리젠테이션계층에서 값을 받아들여 비즈니스로직을 처리하는 어플리케이션계층( 웹서버 )
- 세번째 계층은 데이터를 저장하는 데이터베이스 서버
- 대표적으로 환경으로는 웹이 있음
- 비즈니스로직, 소스가 변경되더라고 클라이언트를 수정할 필요가 없고 웹서버에서 해당 소스만 수정하면 된다.
N-Tier
- 3-tier의 코드 재사용의 어려움을 극복하기 위해 나타남
- 비즈니스 로직을 담당하는 애플리케이션 계층을 내부족 로직에 따라 여러부분으로 나눈 후 서로 통신하는 방법
분산컴퓨팅
- 어플리케이션을 로직,업무등에 따라 논리적, 물리적으로 분리하여 기술
분산 시스템의 특징
- 리소스 공유 : 하드웨어,소프트웨어 또는 데이터를 공유할 수 있음
- 동시처리 : 여러 시스템에서 동일한 기능을 동시에 처리 할 수 있음
- 확장성 : 컴퓨터 및 처리 용량은 추가 시스템으로 확장할 때 필요에 따라 확장할 수 있음
- 오류감지 : 장애를 더 쉽게 감지할 수 있음
- 투명성 : 노드는 시스템의 다른 노드에 액세스하고 통신할 수 있음
분산 시스템은 마이크로 서비스와 동일한가?
- 마이크로 서비스 아키텍처는 어플리케이션을 별도의 서비스로 나누기 때문에 분산 시스템의 한 유형에 해당한다.
EJB
- N-tier 환경을 쉽게 구축하기 위해 탄생
- EJB는 컴포넌트 기반으로 작성되므로 내부적인 통신은 RMI를 사용함
- EJB 아키텍처는 개발자가 분산 시스템을 쉽게 구현다록 도와줌
- 개발자는 EJB양식에 맞추어 비즈니스 로직을 담당하는 컴포넌트만 작성하면 됨
참고 - https://www.atlassian.com/ko/microservices/microservices-architecture/distributed-architecture
'Dev > etc' 카테고리의 다른 글
TDD에서 테스트 문서 대체 가능이란? (0) | 2022.10.30 |
---|---|
Semantic Versioning (0) | 2022.10.01 |
정적( static ) (0) | 2022.08.14 |
개발자 인터뷰할때 받았던 면접 질문 정리 (0) | 2022.03.29 |
Tree명령어 - 프로젝트 구조 설명할때 (0) | 2022.03.29 |