ejb 와 전자상거래

25
1 EJB 와 와와와와와 Bixon Technology 와와와

Upload: bradley-walter

Post on 30-Dec-2015

49 views

Category:

Documents


4 download

DESCRIPTION

EJB 와 전자상거래. Bixon Technology 김상현. 개요. 전통적 C/S 환경에서 Web 환경으로의 기업 업무환경의 전이 Web Application Server 와 분산 컴포넌트 시스템의 중요성 증가 분산 컴포넌트 아키텍쳐로서의 EJB 의 중요성. 기업내 업무환경 변화. 90 년대 초 다운사이징 열풍으로 기업내 업무 환경이 MainFrame 에서 C/S 환경으로 변화 초반의 C/S 환경은 2-Tier 구조. Fat Client. DataBase. Logic. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: EJB 와 전자상거래

1

EJB 와 전자상거래

Bixon Technology김상현

Page 2: EJB 와 전자상거래

2

개요

전통적 C/S 환경에서 Web 환경으로의 기업 업무환경의 전이

Web Application Server 와 분산 컴포넌트 시스템의 중요성 증가

분산 컴포넌트 아키텍쳐로서의 EJB 의 중요성

Page 3: EJB 와 전자상거래

3

기업내 업무환경 변화

90 년대 초 다운사이징 열풍으로 기업내 업무 환경이 MainFrame 에서 C/S 환경으로 변화

초반의 C/S 환경은 2-Tier 구조

Fat Client

Logic DataBase

Page 4: EJB 와 전자상거래

4

C/S 환경의 변화

Business Logic 의 대부분을 서버에 할당 Client 는 GUI 만 담당 3-Tier Architecture

DatabaseThin Client

Business Logic

Application Server

Page 5: EJB 와 전자상거래

5

Web 기반 기술로의 이전

E-Business 의 등장 기업 업무의 Web 으로의 전이 Web 기반 기술의 잇점 활용- Client 관리의 용이성 * 클라이언트 프로그램의 버전 관리 및 배포 , 교육에 대한 비중이 감소- 네트웍 로드 분산 (HTTP)- ERP,EDI 등 기업시스템과의 통합 용이

Page 6: EJB 와 전자상거래

6

기존 Web 기반 기술의 문제점

CGI 기반 기술의 문제점 세션 관리가 어려움 상태 관리를 할 수 없다 한 request 당 Process 를 생성하는 방식으로 서버에

과부하를 가져옴

Page 7: EJB 와 전자상거래

7

Web Application Server

기존 CGI 방식의 문제점에 대한 극복 세션 및 상태 관리 기능 Transaction 관리 DB Connection Pooling Load Balancing Fault Tolerance

Page 8: EJB 와 전자상거래

8

컴포넌트 기반 개발

유연성 및 확장성과 견고함 향상 유지보수 용이 컴포넌트는 재사용이 가능함 COM/DCOM, CORBA, EJB 등

Page 9: EJB 와 전자상거래

9

컴포넌트 시스템에서의 Java

Write once, run anywhere 를 실현 엄격한 표준 스펙 (J2EE) 에 따른 개발 호환가능한 서버에 Deploy 가능 (Write once, deploy anywhere)- 실제로는 서로다른 App. Server 간에는 Bean 호환이 안된다 .

Component 개발에 적합한 객체 지향형 언어

Page 10: EJB 와 전자상거래

10

Enterprise Java Beans

EJB 는 Server-side 의 분산 컴포넌트 시스템에 대한 표준 스펙

JPE(Java Platform for Enterprise) API 에 근간 – RMI, JNDI, JTS, JDBC

Page 11: EJB 와 전자상거래

11

EJB Architecture

EJB Server EJB Container EJB Component (Classes)

Page 12: EJB 와 전자상거래

12

EJB Architecture Diagram

Client

EJB Server

EJB Container

Transaction, Naming,

Persistence Services

EJBObject

Create()Remove()

BusinessMethod

EJBHome

EJBean

BusinessLogic

Page 13: EJB 와 전자상거래

13

EJB Server

EJB Container 관리와 System service에 access 를 제공하는 Process 나 Application

Security,Naming, Persistency, Transaction Service 를 제공하여야 한다 .

Vendor 특유의 기능 제공 가능 EJB Container 에 대한 관리

Page 14: EJB 와 전자상거래

14

EJB Container

EJB class & instance(Component) 에 대한 관리

Bean class 에 대한 트랜잭션 관리 , lifecycle 관리 , 보안관리 등 수행

Page 15: EJB 와 전자상거래

15

Container 에 대한 정의

Session Bean 에 대한 이차 저장장치로의 Swapping Entity Bean 에 대한 persistence 관리 Home Object 의 생성과 Lookup Service JNDI 로 접근 가능한 Home Object Bean 의 생성 , 초기화 , 삭제 Business Method 가 적절한 Transaction Context 하에서

실행되도록 함 기본적인 보안 서비스의 구현 Home Object 와 EJBObject 에서 RMI 가 가능하도록 stub 와 skel

eton 클래스 생성

Page 16: EJB 와 전자상거래

16

Home Interface

Enterprise Beans 에 대한 Factory 기능 Enterprise Bean 은 Home Interface

에 의해 생성 , 삭제 Home Object 라 불리는 클래스에 의해

구현됨 ( 컨테이너 벤더 제공 )

Page 17: EJB 와 전자상거래

17

Locating Home Interface

Home Interface 에 대한 reference 는 JNDI-service 를 통해 access 가능

Locating : 이미 인스탄스화 되어있는 객체에 대한 reference 를 얻는 것을 의미한다 .

Page 18: EJB 와 전자상거래

18

Home Interface Methods

Enterprise Bean 에서 정의된 ejbCreate() 와 같은 메쏘드는 동일한 signature 로 Home interface 에서도 선언되어야 한다 .

EntityBean 에서는 추가적으로 finder Method 를 정의할 수 있다 .

Container vendor 는 Home interface 를 implements하는 Home Object 를 제공하여야 한다 .

Page 19: EJB 와 전자상거래

19

Remote Interface

EJBObject 인터페이스를 상속받아 생성 EJB Class 의 메쏘드와 동일한 시그너춰를

가지는 메쏘드를 정의하여야 함 EJB Object 는 RMI remote interface 를 im

plement 한다 . Container Vendor 는 EOBObject 의

구현부분을 제공하여야 한다 .

Page 20: EJB 와 전자상거래

20

Session Bean

클라이언트 코드를 서버상으로 확장 홈인터페이스를 통해 액세스 되고 클라이언트의 커넥션에 속한 EJB 세션빈의 인스탄스는 서로 다른 클라이언트간에 공유되기 힘듬 클라이언트 세션관리 및 상태 관리 가능 클라이언트 레퍼런스가 없을 경우 지속적이지 못함 비즈니스 로직을 포함

Page 21: EJB 와 전자상거래

21

Stateful vs. Stateless Session Bean

Stateful 세션빈과 Stateless 세션빈의 비교

Stateless Session Bean Stateful Session Bean 세션 상태저장안됨 확장성 ( 하나의 Bean instance가 여러 개의 Client 에 대능가능 )

클라이언트 컨텍스트 관리 안됨 스와핑이 일어나지 않는다

세션 상태가 저장됨 클라이언트 수 = Bean Instance 수 클라이언트 컨텍스트 관리됨스와핑이 일어남 ( 상태가 저장됨 )

Page 22: EJB 와 전자상거래

22

Stateful vs. Stateless Session Bean

Page 23: EJB 와 전자상거래

23

Entity Bean

데이터를 표현하는 EJB DB Table 의 한 row 를 표현 (view 도 bean 이 될

수는 있다 .) 한 클라이언트에 종속적이지 않음 영구적 저장장치에 지속성이 있음

세션빈과의 비교 세션빈은 클라이언트와 1:1 관계 엔터티빈은 table 의 row 와 1:1 관계

Page 24: EJB 와 전자상거래

24

Session Bean 과 EntityBean 관계

Client

Client

Session Bean

Session Bean

Entity Bean

Entity Bean

Entity Bean

Entity Bean

Entity Bean

DB table

Row 1Row 2Row 3Row 4Row 5

Method Call

Method Call

Page 25: EJB 와 전자상거래

25

Entity Bean 의 종류

Container-Managed Bean-Managed EJB Container 가 Bean 의 Persistency 관리 Persistency 관리를 위해 따로 코딩 필요 없음 SQL 구문에 대한 제어 필요 없음 ( 컨테이너 관리 ) 기능상의 제약을 가져올 수 있음 DB 관련 optimization 이 불가능

Bean 자체 내부에서 Persistency 관리 ( 개발자가 직접 코딩 ) Persistency 는 배치시 변경되기 힘듬 RDB 사용시 SQL 질의에 대한 제어 가능 복잡한 기능 기능 구현 가능 (ex. Object/Relational mapping)