2012-10-26 4 views
2

엔터프라이즈 Java EE 애플리케이션을 생성 할 때 메시징 (MDB)과 같은 비즈니스 로직의 일부를 EJB 모듈에 넣어야합니다. 그러나 EJB 모듈 또는 웹 모듈 내부에 배치 할 수있는 일부 EJB가 있습니다. 모듈 분리는 웹 계층과 비즈니스 계층을 다른 시스템에 배포 할 수 있음을 알고 있습니다. 따라서 웹 모듈에 @Stateful 장바구니 EJB를 배치 할 것입니다. 그러나 비즈니스 로직의 모든 부분에 적용 할 수있는 표준 기준을 생각해 볼 수는 없으며 EJB를 묶을 위치를 결정할 수 있습니다. 이에 대한 가이드 라인, 표준 또는 권장 관행이 있습니까?Java EE 엔터프라이즈 애플리케이션에 비즈니스 로직을 배치 할 위치

+0

'비즈니스 로직의 일부'에 이름을 붙이시겠습니까? –

+0

- 메시징을 통해받은 외부 응용 프로그램의 보고서를 처리하고 동시에 웹 인터페이스 (웹 인터페이스를 통한 실시간 모니터링 용)로 푸시하고 결과를 데이터베이스에 저장합니다. - 질문에서 언급 한 장바구니 예제와 웹 기반 인터페이스에서 세부 정보가 수집 된 고객 주문 처리. - 사용자 콘텐츠를 기반으로 그래픽 및 이미지 생성. - 사용자 제공 매개 변수를 기반으로 일부 NoSQL 데이터 소스에서 쿼리를 생성하고, 쿼리를 실행하고 결과를 의미있는 방식으로 처리합니다. 이것은 단지 샘플입니다. –

답변

1

이것은 내가 지금까지 알아 낸 것입니다.

EJB 모듈은 대기업 응용 프로그램을위한 비즈니스 로직의 핵심을 묶어야합니다. 반면 웹 모듈은 EJB 모듈이 제공하는 비즈니스 엔진을 활용할 본격적인 웹 응용 프로그램을 포함합니다. 일반적으로 이러한 모듈은 대규모 응용 프로그램의 경우 다른 서버에 배포되며 EJB 모듈에있는 핵심 비즈니스 논리에서 제공하는 서비스를 사용해야하는 웹 응용 프로그램 이외의 클라이언트 응용 프로그램 (예 : Swing/JFX 데스크톱 응용 프로그램)이 있습니다.

  1. 여러 웹이나 데스크톱 응용 프로그램에서 사용하기위한 것입니다, 또는
  2. 스케일링 고려 사항은 코어를 강제 할 수있다 : 즉

    , 경우 하나는 별도의 EJB 모듈에서 비즈니스 로직을 둘 것 별도의 서버에서 처리 할 비즈니스 로직

다른 경우에는 EJB를 웹 모듈에 넣고 전체를 WAR 파일로 패키징 할 수 있습니다.

+1

사실, EJB 빈을 웹 모듈의 패키지에서 자신의 EJB 모듈로 옮기는 것이 쉽다는 것을 알고 있습니다. 따라서 간단한 패키지로 시작한 다음 앱이 충분히 크거나 비즈니스 레이어를 별도로 배포해야하는 경우 모듈로 이동할 수 있습니다. –

+0

결과의 마지막 부분 인 EJB는 WAR 안에 넣을 수 있습니다. EJB 모듈이 있으면 EAR 권한을 사용하여 배포됩니까? EAR에 WAR 및 EJB가 있습니까? 감사합니다 – user75ponic

+0

예. EAR (엔터프라이즈 응용 프로그램)은 여러 WAR (웹 모듈) 및 여러 JAR (ejb 모듈)로 구성됩니다.이는 엔터프라이즈 응용 프로그램이 여러 서버 (여러 모듈)에 분산되도록 설계되었지만 모든 경우에 단일 모듈에 모든 모듈을 배포하려는 경우에 적합합니다. 그러나 모듈을 다른 서버에 배포하려는 경우가 거의 없으면 모든 EJB를 WAR 파일에 넣기 만하면됩니다. –

1

마지막 문장에서 언급했듯이 그것은 내가 제안한 것입니다. 대부분의 경우 EAR이 필요하지 않으므로 JEE6 응용 프로그램에 WAR 패키지를 사용하십시오.

여러 응용 프로그램간에 비즈니스 논리를 공유해야하는 경우이를 별도의 모듈로 배포 할 수 있습니다. 그러나 일반적으로 WAR을 실행하는 응용 프로그램 서버의 크기를 적절하게 조정할 수 있으므로 조정 작업에는 이러한 일이 필요하지 않습니다.

관련 문제