ejb 와 전자상거래

Post on 30-Dec-2015

51 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

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

1

EJB 와 전자상거래

Bixon Technology김상현

2

개요

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

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

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

3

기업내 업무환경 변화

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

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

Fat Client

Logic DataBase

4

C/S 환경의 변화

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

DatabaseThin Client

Business Logic

Application Server

5

Web 기반 기술로의 이전

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

6

기존 Web 기반 기술의 문제점

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

과부하를 가져옴

7

Web Application Server

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

8

컴포넌트 기반 개발

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

9

컴포넌트 시스템에서의 Java

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

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

10

Enterprise Java Beans

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

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

11

EJB Architecture

EJB Server EJB Container EJB Component (Classes)

12

EJB Architecture Diagram

Client

EJB Server

EJB Container

Transaction, Naming,

Persistence Services

EJBObject

Create()Remove()

BusinessMethod

EJBHome

EJBean

BusinessLogic

13

EJB Server

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

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

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

14

EJB Container

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

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

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 클래스 생성

16

Home Interface

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

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

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

17

Locating Home Interface

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

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

18

Home Interface Methods

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

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

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

19

Remote Interface

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

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

plement 한다 . Container Vendor 는 EOBObject 의

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

20

Session Bean

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

21

Stateful vs. Stateless Session Bean

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

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

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

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

22

Stateful vs. Stateless Session Bean

23

Entity Bean

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

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

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

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

25

Entity Bean 의 종류

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

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

top related