J2EE Overview
최근 동향







대용량 트랜잭션에 대한 처리 요구 증대
비즈니스 로직을 위한 새로운 티어의 추가
구성의 복잡성이 증대
가벼운 서버
가벼운 클라이언트
인터넷의 발달
표준 플랫폼의 필요성
Component Transaction Monitor
 C(컴포넌트 모델)
 T(트랜잭션 관리)
 M(모니터:자원 및 서비스 관리)
Server-Side
Component Model
Business logic
Business logic
Services
Services
• Naming
• Transactions
• Security
• Managed persistence
• Others …
J2EE
(Java 2 Enterprise Edition)
Business logic
정의
Services
구현
J2EE 플랫폼
 호스팅 애플리케이션을 위한 런타임 인프라 구조
 애플리케이션 구축을 위한 자바 확장 API 집합
J2EE Containers, Services
Applet Container
JNDI
RMI-IIOP
J2SE
Component ?
Application
Client Container
JCBC
JAXP
JAAS
JMS
JNDI
RMI-IIOP
J2SE
JNDI
RMI-IIOP
JNDI
JAF
J2SE
JAF
JCX
JDBC
JAXP
JAVA
Mail
JMS
JAAS
JTA
JAVA
Mail
JCX
JDBC
JAXP
EJB Container
JMS
JAAS
JTA
Web Container
RMI-IIOP
J2SE
Database
Management
System
J2EE Components
applets
session beans
Applet Container
JNDI
RMI-IIOP
J2SE
Web Container
EJB Container
JAVA
Mail
JAVA
Mail
JNDI
RMI-IIOP
JNDI
JAF
J2SE
JAF
JCX
JDBC
JAXP
RMI-IIOP
J2SE
message driven beans
JMS
JAAS
JTA
JCBC
JAXP
JAAS
JMS
JNDI
JSPs
JCX
JDBC
JAXP
Application
Client Container
entity beans
JMS
JAAS
JTA
application
clients
servlets
RMI-IIOP
J2SE
Database
Management
System
J2EE Component Deployment
Modules
J2EE Application
module
application.xml
(deployment descriptor)
Java
module
Web
module
EJB
module
RA module
.ear file
Java
module
Web
module
application-client.xml
(deployment descriptor)
web.xml
(deployment descriptor)
Java
component
Web
component
.jar file
.war file
EJB
module
ejb-jar.xml
(deployment descriptor)
Resource
Adapter
module
ra.xml
(deployment descriptor)
EJB
component
RA
component
.jar file
.rar file
J2EE Technologies
RMI-IIOP
JDBC
JTA / JTS
JNDI
JMS
Server-Side
Component Model
EJB
EJB Overview
Enterprise Java Bean
 Multi-tier, cross-platform, 분산 객체 등을 지원하는 자바
애플리케이션을 개발하고 배치하기 위한 자바 컴포넌트 아
키텍쳐
 분산객체와 트랜잭션 프로세싱 모니
터 기술의 접목
 컴포넌트 트랜잭션 모니터에 대한
자바 server-side 컴포넌트 모델
Types of Enterprise Beans
EJB
Entity
Session
Stateful
Stateless
CMP
BMP
Message
Ingredients of an Enterprise
JavaBean Type Definition





리모트 인터페이스
홈 인터페이스
빈 클래스
프라이머리 키
디플로이 디스크립터
 EJB는 단일 단위로 묶인 자바 클래스들과 XML 파일의 집합체이다.
 자바 클래스들은 정확한 규칙을 따라야 하고 콜백 메소드를 제공해야 한다.
EJB Development Steps
1
Define Your
Component Code
2
Make
Deployment Descriptor
Client Stub
9
10
11
Implement
Client
3
4
DDCreator
javac
5
Start the
Client
6
Client
javac
ejbc
Deploy component
on server
& if needed, make database table
7
8
jar
Start the
Server
Server
Evolution of EJB Standard
 EJB 1.0 defines:



Session and entity beans
Client and developer’s view of EJBs
EJB roles
 EJB 1.1

Introduces declarative (XML-based) deployment descriptors
 EJB 2.0


Introduces message-driven beans
Enriches and standardizes support for persistence of entity beans



Complex database mapping, complex relationships
Adds local interfaces
Supports network interoperability among EJB servers

Mandatory IIOP
EJB Container, Server
EJB Container
• 컴포넌트를 위한 실행환경
EJB Server
• 컨테이너를 위한 실행환경
Session, Entity Beans
Session Bean
 클라이언트의 확장
 다른 빈들과 상호 작용하는
작업이나 워크플로우를 구현
Entity Bean
 퍼시스턴스를 가지며 사람,장소,
물건 등을 나타낸다.
 데이터베이스의 row와 1:1매핑
Stateful, Stateless
Session
Stateful




세션 상태가 저장됨
클라이언트 수 = Bean Instance수
클라이언트 컨텍스트가 관리됨
스와핑이 일어남 (상태가 저장됨)
Stateless




세션 상태가 저장 안됨
하나의 Bean Instance가 여러 client에 대응
클라이언트 컨텍스트가 관리 안됨
스와핑이 일어나지 않음
Stateless Instance Life Cycle
Stateful Instance Life Cycle
• 메모리가 아닌 Secondary
Storage로의 저장
CMP, BMP
Entity
CMP





EJB Container가 Bean의 Persistency관리 
Persistency를 위한 코딩이 없음

SQL구문에 대한 제어가 필요 없음

기능상의 제약을 가져올 수 있음
DB관련 optimization이 불가능
BMP
Persistency를 위한 코딩이 필요
SQL질의에 대한 제어가 가능
복잡한 기능 구현이 가능
Life Cycle of an Entity Instance
WSA Overview
Borland Enterprise Server
The SMART Platform
Web
Enablement
Integration and
High speed
Advanced
Frameworks
Web
Edition
W3C
VisiBroker
OMG
Edition
AppServer
Edition
J2EE
The World Market
Borland Enterprise Server, Web Edition
Open Source
Apache
Borlandization
QA & Support
Borland
Tomcat
Borland
Web
Engine
VisiBroker
Borland
Tomcat
Load balancing
Fault-tolerance
Failover
Borland Enterprise Server, Web Edition
Open Source
Apache
Borland
Web
Engine
IIOP
Web Edition
Borland
Tomcat
Borland
Borland
Borland
Borland
Tomcat
Tomcat
Tomcat
Tomcat
JDataStore
Pure O/R Java
Database
Borland Enterprise Server, VisiBroker Edition
IIOP
Borland
Borland
Borland
Tomcat
Borland
Tomcat
Tomcat
Tomcat
Http/SOAP
Internet
Firewall
Borland
Web
Engine
JDataStore
Pure O/R Java
Database
VisiBroker
Java
VisiBroker
C++
Firewall
Borland
Gatekeeper
Console
IIOP
Borland Enterprise Server, AppServer Edition
AppServer™ Edition
AppServer™ Edition
AppServer™ Edition
AppServer Edition
Web Edition
Borland
Web
Engine
Borland
Borland
Borland
Tomcat
Tomcat
Tomcat
VisiBroker Edition
VisiBroker
VisiBroker
Java
C++
Console
JAAS™
RMI/IIOP™
Java IDL™
JDBC™
JMS™
JNDI™
JCA™
JavaMail™
Servlets
JSP™
JAXP™
JTA™
JTS™
J2EE 1.3 Complaint
JavaMail™
&
JAF
Borland Enterprise Server, AppServer Edition
Partitioning (ASAP)

Partition Based Architecture





Partitions = “virtual application
servers” running within one server
instance
Applications can run securely and
independently in a partition
Applications can be scaled locally
or across the net
Applications can be individually
managed
The only architecture designed to
run enterprise applications in
production environments
Borland Enterprise Server –
AppServer Edition
Borland Enterprise Server

J2EE 1.3 Compliant
AppServer
Edition
– Includes VisiBroker Edition;
seamless integration of J2EE and
CORBA services
– Enterprise Java Beans 2.0
– Java Connector Architecture
VisiBroker
Edition
– Java Messaging Service (via
SonicMQ)
Web
Edition
– Servlet 2.3 and JSP 1.2 support
– Java Authentication and
Authorization Security

Includes VisiBroker Edition
Web-WAS-DB구성
iPlanet Web Server
Web Container
JSP
Servlet
Web Container
Borland Enterprise Server
JSP
Partition
Partition
Servlet
EJB Container
Client Beans
Client Beans
EJB
EJB
EJB Container
EJB EJB
JDBC
Data Base 장비
DBMS
EJB
Component의 종류
구체적
(도메인 종속적)
Application Component(도메인 컴포넌트)
Business Component(특정 비즈니스 컴포넌트)
통합
개발 환경
Business Component(공용 비즈니스 컴포넌트)
Infrastructure Component(시스템 기반 서비스/유틸리티)
일반적
(범용적)
Q&A