1.4 Java EE 6 표준 이해
Java EE(Enterprise Edition) 6의 표준은 새로운 프로파일 개념을 정의하고 표준의 일부로 Full Profile과 Web Profile 두 개의 프로파일을 정의하고 있다. JBoss EAP 6는 Java EE 6의 Full Profile 및 Web Profile 표준을 지원하는 대표적인 웹 애플리케이션 서버이다.
- Java EE( Enterprise Edition )6 Web Profile
- Java EE( Enterprise Edition )6 Full Profile
Java EE 6 Full Profile
Java EE 6의 모든 기술들이 포함되어 있는 Java EE Full Profile은 30 가지가 넘는 기술 표준들로 구성되어 있으며, 이러한 표준기술들을 활용하여 웹 애플리케이션 서버로서의 서비스를 제공하고 있다. 데이터베이스 접속, 웹 서비스 제공, 트랜잭션 실행과 관리, 보안 정책, 메시징, 네이밍, 이메일 송신, 외부 자원에의 접속 등의 기능들을 제공하고 있다.
Full Profile은 다음 API를 지원한다. JBoss는 Java EE 6 Full Profile을 지원한다.
Java EE6 Full Profile 에서 제공하는 항목
- EJB 3.1(Lite 아님) (JSR 318)
- Java EE Connector Architecture 1.6 (JSR 322)
- Java Message Service (JMS) API 1.1 (JSR 914)
- JavaMail 1.4 (JSR 919)
- 웹서비스 기술
- Jax-RS RESTful Web Services 1.1 (JSR 311)
- Implementing Enterprise Web Services 1.3 (JSR 109)
- JAX-WS Java API for XML-Based Web Services 2.2 (JSR 224)
- Java Architecture for XML Binding (JAXB) 2.2 (JSR 222)
- Web Services Metadata for the Java Platform (JSR 181)
- Java APIs for XML-based RPC 1.1 (JSR 101)
- Java APIs for XML Messaging 1.3 (JSR 67)
- Java API for XML Registries (JAXR) 1.0 (JSR 93)
- 관리 및 보안 기술
- Java Authentication Service Provider Interface for Containers 1.0 (JSR 196)
- Java Authentication Contract for Containers 1.3 (JSR 115)
- Java EE Application Deployment 1.2 (JSR 88)
- J2EE Management 1.1 (JSR 77)
Java EE6 Web Profile
Java EE 6 표준 중에서 웹과 관련된 기술들만 포함한 프로파일이 Web Profile이다. Servlet, Java Server Pages(JSP), Java Server Faces(JSF), Contexts and Dependency Injection(CDI), Java Persistence API(JPA), EJB Lite 등 웹 개발자가 일반적으로 사용하는 Java EE중 웹 관련 기술을 포함하고 있다. EJB Lite는, EJB 3 표준의 부분집합으로 웹 개발자가 Full Profile 환경이 아니더라도 EJB중 많이 사용하는 일부 기능들을 사용할 수 있다. EJB Lite는 리모트 인터페이스나 메시지 구동형 Bean(MDB) 등의 기능은 없지만 Stateful, Stateless 세션 빈 과 엔티티 빈을 지원한다.
Java EE 6 Web Profile에서 제공하는 항목
- 웹 관련 기술
- Servlet 3.0 (JSR 315)
- JSP 2.2 및 Expression Language (EL) 1.2
- Java Server Faces (JSF) 2.0 (JSR 314)
- JSP 1.2을위한 Java Standard Tag Library (JSTL)
- Debugging Support for Other Languages 1.0 (JSR 45)
- 엔터프라이즈 애플리케이션 기술
- Contexts and Dependency Injection (CDI) (JSR 299)
- Dependency Injection for Java (JSR 330)
- Enterprise JavaBeans 3.1 Lite (JSR 318)
- Java Persistence API 2.0 (JSR 317)
- Common Annotations for the Java Platform 1.1 (JSR 250)
- Java Transaction API (JTA) 1.1 (JSR 907)
- Bean Validation (JSR 303)
| 기능 | EJB Lite | EJB |
|---|---|---|
| Stateless beans | ○ | ○ |
| Stateful beans | ○ | ○ |
| Singleton beans | ○ | ○ |
| Message driven beans | ○ | |
| No interfaces | ○ | ○ |
| Local interfaces | ○ | ○ |
| Remote interfaces | ○ | |
| Web service interfaces | ○ | |
| Asynchronous invocation | ○ | |
| Interceptors | ○ | ○ |
| Declarative security | ○ | ○ |
| Declarative transactions | ○ | ○ |
| Programmatic Transactions | ○ | ○ |
| Timer service | ○ | |
| EJB 2.x support | ○ | |
| CORBA Interoperability | ○ |
표 6. EJB 와 EJB Lite 의 기능 비교
JBoss EAP 6에서는 Java EE 6에서 처음 도입된 프로파일을 설정으로 간단하게 구분하여 사용할 수 있는 기능을 제공하고 있다.

그림 5. Java EE 6의 Web Profile 과 Full Profile 비교