간단히 말하면:
j2ee는 템플릿이며 사양이라고도 할 수 있습니다!
아래 참고 사항:
J2EE는 기존 애플리케이션 개발과 완전히 다른 기술 아키텍처 세트입니다. 여기에는 많은 구성 요소가 포함되어 있으며 주로 애플리케이션 개발 및 배포를 단순화하고 표준화할 수 있습니다. 시스템을 통해 이식성, 보안 및 재사용 가치를 향상시킵니다.
J2EE의 핵심은 일련의 기술 사양과 그에 포함된 다양한 구성 요소, 서비스 아키텍처 및 기술 수준이 모두 보편적인 표준과 사양을 갖고 있어 J2EE 아키텍처를 따르는 다양한 애플리케이션이 가능하게 됩니다. 이는 과거 기업의 백엔드에서 사용하는 정보 제품이 서로 호환되지 않아 기업 내외 상호 운용이 어려웠던 딜레마를 해결하는 플랫폼 간 호환성입니다.
1. J2EE의 개념
현재 Java 2 플랫폼에는 세 가지 버전이 있습니다. 이는 소형 장치 및 스마트 카드에 적합한 Java 2 플랫폼의 마이크로 버전입니다.
(Java 2 Platform Micro Edition, J2ME), 데스크탑 시스템용 Java 2 Platform Standard Edition(
Java 2 Platform Standard Edition, J2SE), 서버 애플리케이션 및 서비스 생성을 위한 Java< /p >
2 플랫폼 엔터프라이즈 에디션(Java 2 플랫폼 엔터프라이즈 에디션, J2EE).
J2EE는 Java 2 플랫폼을 활용하여 엔터프라이즈 솔루션 개발, 배포 및 관리와 관련된 복잡한 문제를 단순화하는 아키텍처입니다
. J2EE 기술의 기반은 핵심 Java 플랫폼 또는 Java 2 플랫폼의 표준 버전입니다. J2EE는 "한 번 작성하면 어디서나 실행" 기능과 편리한 데이터베이스 액세스 JDBC와 같은 표준 버전의 많은 장점을 통합합니다. p>
인터넷 애플리케이션 등의 데이터를 보호할 수 있는 API, CORBA 기술 및 보안 모델입니다. 또한
EJB(Enterprise JavaBeans), Java Servlets API, JSP(Java Server Pages)에 대한 지원도 제공합니다. X
ML 기술을 완벽하게 지원합니다. 궁극적인 목표는 기업 개발자가 출시 시간을 대폭 단축할 수 있는 아키텍처가 되는 것입니다
.
J2 아키텍처는 큰 비용을 들이지 않고도 고가용성, 높은 신뢰성 및 확장성을 요구하는 애플리케이션의 요구 사항을 충족할 수 있는 중간 계층 통합 프레임워크를 제공합니다. 통합된 개발 플랫폼을 제공함으로써 J2EE는 다중 계층 애플리케이션 개발의 비용과 복잡성을 줄이는 동시에 기존 애플리케이션의 통합을 강력하게 지원하고 Enterprise JavaBeans를 완벽하게 지원하며 애플리케이션 패키징 및 배포를 지원하는 좋은 마법사와 추가된 디렉토리가 있습니다. 지원, 강화된 보안 메커니즘, 향상된 성능
.
2. J2EE의 장점
J2EE는 확장성, 유연성 및 유지 관리 용이성을 갖춘 비즈니스 시스템을 구축하기 위한 좋은 메커니즘을 제공합니다.
1 . 자산: 기업은 새로운 비즈니스 요구 사항에 적응해야 하므로, 바퀴를 다시 개발하기보다는 기업 정보 시스템에 대한 기존 투자를 활용하는 것이 중요합니다. 이러한 방식으로 기존 시스템을 기반으로 증분적인(
급진적인 전면 거부가 아닌) 방식으로 구축하는 서버측 플랫폼 메커니즘이 회사에 필요한 것입니다. J
2EE 아키텍처는 일부 회사에서 사용하는 BEA Tuxedo, IBM CICS,
IBM Encina, Inprise VisiBroker 및 Netscape Application Server와 같은 사용자의 원래 투자를 최대한 활용할 수 있습니다.
이는 J2EE가 광범위한 업계 지원을 받고 '엔터프라이즈 컴퓨팅' 분야에서 일부 중요한 공급업체가 참여하고 있기 때문에 가능할 수 있습니다. 각 공급업체는 기존 투자를 포기하지 않고도 기존 고객에게 이식 가능한 J2EE 공간으로의 업그레이드 경로를 제공합니다.
J2EE 플랫폼 기반 제품은 거의 모든 운영 체제 및 하드웨어 구성에서 실행될 수 있으므로 기존 운영 체제 및 하드웨어를 유지할 수 있습니다.
2. 효율적인 개발: J2EE를 사용하면 기업은 일부 일반적이고 지루한 서버 측 작업을 미들웨어 공급업체에 넘겨 완료하도록 할 수 있습니다.
이러한 방식으로 개발자는 비즈니스 로직을 작성하는 방법에 집중할 수 있으며 그에 따라 개발 시간이 단축됩니다
. 고급 미들웨어 공급업체는 다음과 같은 복잡한 미들웨어 서비스를 제공합니다.
o 상태 관리 서비스 - 개발자가 더 적은 양의 코드를 작성하고 상태 관리 방법에 대해 걱정할 필요가 없도록
이러한 방식으로 프로그램 개발을 더욱 빠르게 완료하세요.
o 지속적인 서비스 - 개발자가 데이터 액세스 논리를 코딩하지 않고도 애플리케이션을 작성할 수 있도록 합니다
. 이를 통해 더 가볍고 데이터베이스에 구애받지 않는 애플리케이션을 개발하고 유지 관리할 수 있습니다.
o 분산 공유 데이터 개체 CACHE 서비스 - 개발자가 고성능 시스템을 컴파일할 수 있도록 하여
전체 배포의 확장성을 크게 향상시킵니다.
3. 이기종 환경 지원: J2EE는 이기종 환경에 배포되는 이식 가능한 프로그램을 개발할 수 있습니다. J2EE 기반 애플리케이션
은 특정 운영 체제, 미들웨어 또는 하드웨어에 의존하지 않습니다. 따라서 적절하게 설계된 J2EE 기반 프로그램은 한 번만 개발하면 다양한 플랫폼에 배포할 수 있습니다. 이는 일반적인 이기종 엔터프라이즈 컴퓨팅 환경에서 매우 중요합니다. 또한 J2EE 표준
을 통해 고객은 J2EE와 호환되는 타사 기성 구성 요소를 주문하고 이를 이기종 환경에 배포할 수 있으므로
개발에 필요한 시간이 절약됩니다. 전체 솔루션 자체의 비용.
4. 확장성: 기업은 비즈니스 운영을 위한 수많은 신규 고객의 요구 사항을 충족하기 위해 뛰어난 확장성을 제공할 수 있는 서버측 플랫폼을 선택해야 합니다.
. J2EE 플랫폼 기반 애플리케이션은
다양한 운영 체제에 배포될 수 있습니다. 예를 들어 단일 시스템에서 64~256개의 프로세서를 지원할 수 있는 고급 UNIX 및 메인프레임 시스템에 배포할 수 있습니다. (이것은 NT 서버의 범위를 벗어납니다.) J2EE 분야의 공급업체는 보다 광범위한 로드 밸런싱 전략을 제공합니다. 시스템의 병목 현상을 제거하고 여러 서버를 통합 배포할 수 있습니다. 이 배포는 수천 개의
프로세서에 도달할 수 있으므로 확장성이 뛰어난 시스템이 미래 상용 애플리케이션의 요구 사항을 충족할 수 있도록 해줍니다.
안정적인 가용성: 서버 측 플랫폼은 회사 고객과 파트너의 요구 사항을 충족하기 위해 24시간 내내 작동할 수 있어야 합니다
. 인터넷은 전 세계 어디에나 존재하므로 야간에 계획된 정전이 발생하더라도 심각한 손실을 초래할 수 있습니다
. 예상치 못한 종료는 치명적인 결과를 초래할 수 있습니다. J2EE는 안정적인 운영 환경에 배포되며 장기적인 가용성을 지원합니다. 일부 J2EE는 WINDOWS 환경에 배포되며 고객은 Sun
Solaris 및 IBM OS/390과 같이 더 나은 견고성과 성능을 갖춘 운영 체제를 선택할 수도 있습니다. 가장 강력한 운영 체제는 99.999%의 가용성 또는 연간 단 5분의 다운타임을 달성할 수 있습니다.
이는 강력한 실시간 특성을 지닌 비즈니스 시스템에 이상적인 선택입니다.
3. J2EE의 4계층 모델
J2EE는 다계층 분산 응용 프로그램 모델을 사용합니다. 응용 프로그램 로직은 기능에 따라 구성 요소로 구분되며 각 응용 프로그램 구성 요소는 나뉩니다. 기능에 따라 구성요소로 분류됩니다.
해당 레이어는 서로 다른 시스템에 분산되어 있습니다.
실제로 Sun이 J2EE를 설계한 원래 의도는 2계층 모델(클라이언트/서버)의 단점을 해결하는 것이었습니다. 기존 모델에서는 클라이언트가 너무 많은 역할을 수행하여 비대해졌습니다. 모델의 경우 처음 배포하기는 더 쉽지만 업그레이드나 개선이 어렵고 확장성이 이상적이지 않으며 일종의 독점 프로토콜을 기반으로 하는 경우가 많습니다. 데이터베이스 프로토콜. 비즈니스 로직과 인터페이스 로직을 재사용하기가 매우 어렵습니다. 현재 J2EE의 다중 계층 엔터프라이즈 애플리케이션 모델은 2계층 모델의 여러 계층을 여러 계층으로 나눕니다.
다중 계층 애플리케이션은 각각의 서로 다른 서비스에 대해 독립적인 계층을 제공할 수 있습니다. 다음은 J2EE의 일반적인 4계층 구조입니다.
클라이언트 시스템에서 실행되는 클라이언트 계층 구성 요소
J2EE 서버에서 실행되는 웹 레이어 구성 요소
J2EE 서버에서 실행되는 비즈니스 로직 레이어 구성 요소
EIS 서버에서 실행되는 기업 정보 시스템(엔터프라이즈 정보 시스템) 레이어 소프트웨어
J2EE 응용 프로그램 구성 요소
J2EE 응용 프로그램은 구성 요소로 구성됩니다. J2EE 구성 요소는 독립적인 기능을 가진 소프트웨어 단위이며 서로 관련되어 있습니다.
클래스와 파일 p>
는 J2EE 애플리케이션으로 어셈블되고 다른 구성 요소와 상호 작용합니다. 다음 J2EE
구성 요소는 J2EE 사양에 정의되어 있습니다.
응용 프로그램 클라이언트 프로그램과 애플릿은 클라이언트 계층 구성 요소입니다.
Java Servlet 및 JSP(JavaServer Pages). 이는 웹 계층 구성 요소입니다.
EJB(Enterprise JavaBeans)는 비즈니스 계층 구성 요소입니다.
클라이언트 계층 구성 요소
J2EE 애플리케이션은 웹 기반일 수 있습니다. 또는 전통적인 방법을 기반으로 할 수 있습니다.
웹 계층 구성 요소
J2EE 웹 계층 구성 요소는 J2EE 사양에 따라 JSP 페이지 또는 서블릿일 수 있으며 정적 HTML 페이지 및 Appl p>
ets는 웹 계층 구성 요소로 간주되지 않습니다.
아래 클라이언트 계층에 표시된 것처럼 웹 계층에는 사용자 입력을 처리하고 처리할 비즈니스 계층에서 실행되는 엔터프라이즈 Bean에 입력을 보내는 일부 JavaBean 개체가 포함될 수 있습니다.
비즈니스 레이어 구성요소
비즈니스 레이어 코드의 로직은 은행, 소매, 금융 등 특수한 비즈니스 분야의 요구를 충족시키기 위해 사용되며 비즈니스에서 실행됩니다.
레이어 Enterprise Bean이 처리되는 방식은 Enterprise Bean이 클라이언트 프로그램에서 데이터를 수신하여 처리하고(필요한 경우) 저장을 위해 EIS 계층으로 보내는 방법을 보여줍니다.
앞으로 나아가세요.
엔터프라이즈 빈에는 세션 빈, 엔터티 빈, 메시지 기반 빈의 세 가지 유형이 있습니다. 세션 빈은 클라이언트와의 연결을 나타냅니다. 프로그램의 일시적인 상호 작용은
p>세션 빈과 관련 데이터는 사라지지만, 엔터티 빈은 데이터베이스 테이블의 영구 레코드 행을 나타냅니다.
클라이언트 프로그램이 종료되거나 서버가 종료됩니다. , 엔터티 빈의 데이터가 저장되었는지 확인하는 잠재적인 서비스가 있을 것입니다.
메시지 기반 빈은 세션 빈과 JMS 메시지 리스너의 특성을 결합하여 비즈니스 계층 구성 요소를 비동기적으로 허용합니다. p>
JMS 메시지를 수신합니다.
기업 정보 시스템 계층
기업 정보 시스템 계층은 ERP(Enterprise Resource Planning)와 같은 기업 인프라 시스템을 포함한 기업 정보 시스템 소프트웨어를 처리합니다. >
(ERP), 메인프레임 트랜잭션 처리, 데이터베이스 시스템 및 기타 레거시 정보 시스템 예를 들어, J2EE 애플리케이션 구성요소는
데이터베이스 연결 요구에 따라 엔터프라이즈 정보 시스템에 액세스할 수 있습니다.
p>
4. J2EE 구조
이 구성요소 기반의 플랫폼 독립적인 J2EE 구조는 비즈니스 로직이 재사용 가능한 구성요소로 캡슐화되어 있고 J2EE 서버가 J2EE 프로그램 작성을 매우 간단하게 만듭니다. 모든 구성요소 유형에 대해 컨테이너 형태로 백엔드 서비스를 제공합니다. 이 서비스를 직접 개발할 필요가 없으므로 당면한 비즈니스 문제 해결에 집중할 수 있습니다.
컨테이너 및 서비스
컨테이너 설정은 보안, 트랜잭션 관리, JNDI(Java
이름 지정 및 디렉토리 인터페이스)를 포함하여 J2EE 서버에서 제공하는 기본 지원을 사용자 정의합니다. 주소 지정, 원격 연결 및 기타 서비스, 가장 중요한 서비스는 아래에 나열되어 있습니다.
:
J2EE 보안(보안) 모델을 사용하면 웹 구성 요소 또는 엔터프라이즈 Bean을 구성할 수 있습니다. 승인된 사용자만 시스템 리소스에 액세스할 수 있습니다. 각 클라이언트는 특별한 역할에 속하며 각 역할은 특정
메소드를 활성화하는 것만 허용됩니다. Enterprise Bean의 배포 설명에서 활성화할 수 있는 역할과 메서드를 선언해야 합니다. 이러한 선언적 접근 방식으로 인해 보안을 강화하기 위해 규칙을 작성할 필요가 없습니다.
J2EE 트랜잭션 관리 모델을 사용하면 트랜잭션을 구성하는 모든 메소드 간의
관계를 지정할 수 있으므로 트랜잭션의 모든 메소드가 클라이언트에서 단일 단위로 처리됩니다. Enterprise Bean에서 메소드를 활성화하고 컨테이너는 관리 트랜잭션에 개입합니다. 컨테이너가 트랜잭션을 관리하기 때문에
Enterprise Bean에서 트랜잭션 경계를 인코딩할 필요가 없습니다. 분산 트랜잭션을 제어하는 데 필요한 코드는 매우 복잡할 수 있습니다. 복잡한 코드를 작성하고 디버깅하는 대신 배포 설명자에서 Enterprise Bean의 트랜잭션 속성을 선언하기만 하면 됩니다. 컨테이너는 이 파일을 읽고
Enterprise Bean의 트랜잭션을 처리합니다.
JNDI 조회 서비스는 기업 내의 여러 이름 지정 및 디렉토리 서비스에 대한 통합 인터페이스를 제공하므로
애플리케이션 구성 요소가 이름 지정 및 디렉토리 서비스에 액세스할 수 있습니다.
J2EE 원격 클라이언트 연결 모델은 클라이언트와 엔터프라이즈 Bean 간의 하위 수준 상호 작용을 관리합니다.
엔터프라이즈 Bean이 생성되면 클라이언트는 마치 클라이언트와 동일한 가상 머신에 있는 것처럼 해당 메서드를 호출할 수 있습니다.
.
수명 주기 관리(Life Cycle Management) 모델은 Enterprise Bean의 생성 및 제거를 관리합니다.
Enterprise Bean은 여러 상태를 거칩니다. 수명주기 동안. 컨테이너는 엔터프라이즈 Bean을 생성하고 이를 사용 가능한 인스턴스 및 활성 상태 풀 내로 이동한 다음 궁극적으로 컨테이너에서 제거합니다. 엔터프라이즈
Bean의 생성 및 제거 메소드를 호출할 수 있더라도 컨테이너는 이러한 작업을 백그라운드에서 수행합니다.
데이터베이스 연결 풀링 모델은 귀중한 리소스입니다. 데이터베이스 연결을 얻는 것은
시간이 많이 걸리는 작업이며 연결 수가 매우 제한되어 있습니다. 컨테이너는 연결 풀을 관리하여 이러한 문제를 완화합니다.
Enterprise Bean은 풀에서 빠르게 연결을 얻을 수 있습니다. Bean이 연결을 해제한 후에는 다른 Bean에서 이를 사용할 수 있습니다.
컨테이너 유형
J2EE 애플리케이션 구성 요소는 다음 유형의 컨테이너에 설치 및 배포될 수 있습니다.
EJB 컨테이너는 모든 환경에서 엔터프라이즈 수준 Bean의 실행을 관리합니다. J2EE 애플리케이션. 엔터프라이즈 Bean 및 해당 컨테이너
는 J2EE 서버에서 실행됩니다.
웹 컨테이너는 모든 J2EE 애플리케이션 및 해당 컨테이너에서 JSP 페이지 및 서블릿 구성 요소의 실행을 관리합니다.
애플리케이션 클라이언트 컨테이너는 J2EE 서버에서 실행됩니다.
애플리케이션 클라이언트 컨테이너는 모든 J2EE 애플리케이션 클라이언트에서 애플리케이션 클라이언트 구성 요소의 실행을 관리합니다. 클라이언트와 해당 컨테이너는 J2EE 서버에서 실행됩니다.
애플릿 컨테이너는 클라이언트 시스템에서 실행되는 웹 브라우저와 Java 플러그인의 조합입니다.
5. J2EE 핵심 API 및 구성 요소
J2EE 플랫폼은 개발에 필수적인 서비스(서비스), 응용 프로그램 인터페이스(API) 및 프로토콜의 완전한 세트로 구성됩니다. base
웹에서 다중 계층 애플리케이션에 대한 기능적 지원을 제공합니다. 다음은 J2EE의 13개 기술 사양에 대한 간략한 설명입니다(
공간으로 제한됨, 간략한 설명만 가능). 여기에 제공):
p>1. JDBC(Java Database Connectivity):
JDBC API는 ODBC와 마찬가지로 다양한 데이터베이스에 액세스할 수 있는 통합된 방법을 제공합니다.
에서는 또한 데이터베이스에 대한 JDCB의 액세스도 플랫폼 독립적이라는 몇 가지 세부 사항을 설명했습니다.
2. JNDI(Java 이름 및 디렉토리 인터페이스):
JNDI API는 이름 및 디렉토리 서비스를 수행하는 데 사용됩니다. 이는 DNS 및 LDAP, 로컬 파일 시스템 또는 애플리케이션 서버의 개체와 같은 전사적 리소스
에 액세스하고 조작하기 위한 일관된 모델을 제공합니다.
3. EJB(Enterprise JavaBean):
J2EE 기술이 널리 주목받는 이유 중 하나는 EJB입니다.
이는 분산 비즈니스 로직을 개발하고 구현하기 위한 프레임워크를 제공하여 확장 가능하고 매우 복잡한 엔터프라이즈 애플리케이션의 개발을 크게 단순화합니다. EJB 사양은 EJB 구성 요소가 컨테이너와 상호 작용하는 시기와 방법을 정의합니다. 컨테이너는 디렉터리 서비스, 트랜잭션 관리, 보안, 리소스 버퍼 풀 및 내결함성과 같은 일반적인
서비스를 제공하는 역할을 담당합니다. 하지만 여기서 주목할 만한 점은
EJB가 J2EE를 구현하는 유일한 방법은 아니라는 것입니다. 일부 제조업체가 EJB와 병렬 방식으로 동일한 목적을 달성할 수 있는 것은 바로 J2EE의 개방성 때문입니다.
4. RMI(원격 메서드 호출):
이름에서 알 수 있듯이 RMI 프로토콜은 원격 개체에 대한 메서드를 호출합니다. 직렬화를 사용하여 클라이언트
와 서버 간에 데이터를 전달합니다. RMI는 EJB에서 사용하는 하위 수준 프로토콜입니다.
5. Java IDL/CORBA:
Java IDL 지원을 통해 개발자는 Java와 CORBA를 통합할 수 있습니다. Java 객체를 생성하고
이를 CORBA ORB에서 확장 가능하게 만들거나 Java 클래스를 생성하고 다른 ORB로 확장된 C
ORBA 객체의 클라이언트 역할을 할 수 있습니다. 후자의 방법은 Java를 사용하여 새로운
애플리케이션을 기존 시스템과 통합할 수 있는 또 다른 방법을 제공합니다.
6. JSP(Java Server Pages):
JSP 페이지는 HTML 코드와 여기에 포함된 Java 코드로 구성됩니다. 클라이언트가 페이지를 요청한 후 서버는 이러한 Java 코드를 처리한 다음 생성된 HTML 페이지를 클라이언트 브라우저에 반환합니다.
7. 자바 서블릿:
서블릿은 웹 서버의 기능을 확장하는 작은 자바 프로그램입니다. 서버측 애플리케이션
으로서 CGI Perl 스크립트와 마찬가지로 요청 시 실행이 시작됩니다. Servlet에서 제공하는 대부분의 기능은 JSP
와 유사하지만 구현 방법이 다릅니다. JSP는 일반적으로 대부분의 HTML 코드에 포함된 소량의 Java 코드인 반면, 서블릿
은 모두 Java로 작성되고 HTML을 생성합니다.
8. XML(Extensible Markup Language):
XML은 다른 마크업 언어를 정의하는 데 사용할 수 있는 언어입니다. 다양한 비즈니스 프로세스에서 데이터를 공유하는 데 사용됩니다.
XML과 Java의 개발은 서로 독립적이지만 Java의 동일한 목표는 플랫폼 독립입니다.
Java와 XML을 결합하면 플랫폼 독립적인 완벽한 솔루션을 얻을 수 있습니다.
9. JMS(Java Message Service):
MS는 메시지 지향 미들웨어와 통신하는 데 사용되는 API(응용 프로그래밍 인터페이스)입니다. 지점간 도메인을 모두 지원하고
발행/구독(publish/subscribe) 유형 도메인을 지원하며 다음 유형에 대한 지원을 제공합니다: 승인된
메시징, 트랜잭션 메시지 전달 , 일관된 메시징 및 지속적인 가입자 지원. JMS는 또한 애플리케이션을 레거시 백엔드 시스템과 통합하는 또 다른 방법을 제공합니다.
10. JTA(Java Transaction Architecture):
JTA는 응용 시스템이 다양한 트랜잭션 모니터링에 액세스할 수 있는 표준 API를 정의합니다.
11. JTS(Java Transaction Service):
JTS는 CORBA OTS 트랜잭션 모니터링의 기본 구현입니다. JTS는 트랜잭션 관리자가 구현되는 방법을 지정합니다. 트랜잭션 관리자
는 높은 수준에서 JTA(Java Transaction API) 사양을 지원하고 낮은 수준에서 OMG OTS
사양을 구현하는 Java 이미지입니다. JTS 트랜잭션 관리자는 애플리케이션 서버, 자원 관리자, 독립형 애플리케이션 및 통신 자원 관리자를 위한 트랜잭션 서비스를 제공합니다.
12. JavaMail:
JavaMail은 메일 서버에 액세스하기 위한 API입니다. 메일 서버에 대한 추상 클래스 집합을 제공합니다. SM
TP 서버뿐만 아니라 IMAP 서버도 지원합니다.
JAF(JavaBeans Activation Framework):
JavaMail은 JAF를 사용하여 MIME 인코딩된 이메일 첨부 파일을 처리합니다. MIME 바이트 스트림은 Java 객체로 또는 Java 객체에서 변환될 수 있습니다. 대부분의 애플리케이션은 JAF를 직접 사용할 필요가 없습니다.