250 likes | 404 Vues
EJB 와 전자상거래. Bixon Technology 김상현. 개요. 전통적 C/S 환경에서 Web 환경으로의 기업 업무환경의 전이 Web Application Server 와 분산 컴포넌트 시스템의 중요성 증가 분산 컴포넌트 아키텍쳐로서의 EJB 의 중요성. 기업내 업무환경 변화. 90 년대 초 다운사이징 열풍으로 기업내 업무 환경이 MainFrame 에서 C/S 환경으로 변화 초반의 C/S 환경은 2-Tier 구조. Fat Client. DataBase. Logic.
E N D
EJB와 전자상거래 Bixon Technology 김상현
개요 • 전통적 C/S 환경에서 Web 환경으로의 기업 업무환경의 전이 • Web Application Server와 분산 컴포넌트 시스템의 중요성 증가 • 분산 컴포넌트 아키텍쳐로서의 EJB의 중요성
기업내 업무환경 변화 • 90년대 초 다운사이징 열풍으로 기업내 업무 환경이 MainFrame에서 C/S 환경으로 변화 • 초반의 C/S 환경은 2-Tier 구조 Fat Client DataBase Logic
C/S 환경의 변화 • Business Logic의 대부분을 서버에 할당 • Client는 GUI만 담당 • 3-Tier Architecture Application Server Thin Client Database Business Logic
Web 기반 기술로의 이전 • E-Business의 등장 • 기업 업무의 Web으로의 전이 • Web 기반 기술의 잇점 활용 • Client 관리의 용이성 * 클라이언트 프로그램의 버전 관리 및 배포, 교육에 대한 비중이 감소 • 네트웍 로드 분산(HTTP) • ERP,EDI 등 기업시스템과의 통합 용이
기존 Web기반 기술의 문제점 • CGI 기반 기술의 문제점 • 세션 관리가 어려움 • 상태 관리를 할 수 없다 • 한 request 당 Process를 생성하는 방식으로 서버에 과부하를 가져옴
Web Application Server • 기존 CGI 방식의 문제점에 대한 극복 • 세션 및 상태 관리 기능 • Transaction 관리 • DB Connection Pooling • Load Balancing • Fault Tolerance
컴포넌트 기반 개발 • 유연성 및 확장성과 견고함 향상 • 유지보수 용이 • 컴포넌트는 재사용이 가능함 • COM/DCOM, CORBA, EJB 등
컴포넌트 시스템에서의 Java • Write once, run anywhere를 실현 • 엄격한 표준 스펙(J2EE)에 따른 개발 • 호환가능한 서버에 Deploy 가능 (Write once, deploy anywhere) • 실제로는 서로다른 App. Server 간에는 Bean 호환이 안된다. • Component 개발에 적합한 객체 지향형 언어
Enterprise Java Beans • EJB는 Server-side의 분산 컴포넌트 시스템에 대한 표준 스펙 • JPE(Java Platform for Enterprise) API에 근간 – RMI, JNDI, JTS, JDBC
EJB Architecture • EJB Server • EJB Container • EJB Component (Classes)
EJB Architecture Diagram EJB Server EJB Container EJBHome Create() Remove() EJBean Business Logic EJBObject Business Method Client Transaction, Naming, Persistence Services
EJB Server • EJB Container 관리와 System service에 access를 제공하는 Process나 Application • Security,Naming, Persistency, Transaction Service를 제공하여야 한다. • Vendor 특유의 기능 제공 가능 • EJB Container에 대한 관리
EJB Container • EJB class & instance(Component) 에 대한 관리 • Bean class에 대한 트랜잭션 관리, lifecycle 관리, 보안관리 등 수행
Container에 대한 정의 • Session Bean에 대한 이차 저장장치로의 Swapping • Entity Bean에 대한 persistence 관리 • Home Object의 생성과 Lookup Service • JNDI 로 접근 가능한 Home Object • Bean의 생성, 초기화, 삭제 • Business Method가 적절한 Transaction Context 하에서 실행되도록 함 • 기본적인 보안 서비스의 구현 • Home Object와 EJBObject에서 RMI가 가능하도록 stub와 skeleton 클래스 생성
Home Interface • Enterprise Beans에 대한 Factory기능 • Enterprise Bean은 Home Interface에 의해 생성, 삭제 • Home Object라 불리는 클래스에 의해 구현됨 (컨테이너 벤더 제공)
Locating Home Interface • Home Interface에 대한 reference는 JNDI-service를 통해 access 가능 • Locating : 이미 인스탄스화 되어있는 객체에 대한 reference를 얻는 것을 의미한다.
Home Interface Methods • Enterprise Bean에서 정의된 ejbCreate() 와 같은 메쏘드는 동일한 signature로 Home interface에서도 선언되어야 한다. • EntityBean에서는 추가적으로 finder Method를 정의할 수 있다. • Container vendor는 Home interface를 implements하는 Home Object를 제공하여야 한다.
Remote Interface • EJBObject 인터페이스를 상속받아 생성 • EJB Class의 메쏘드와 동일한 시그너춰를 가지는 메쏘드를 정의하여야 함 • EJB Object는 RMI remote interface를 implement한다. • Container Vendor는 EOBObject의 구현부분을 제공하여야 한다.
Session Bean • 클라이언트 코드를 서버상으로 확장 • 홈인터페이스를 통해 액세스 되고 클라이언트의 커넥션에 속한 EJB • 세션빈의 인스탄스는 서로 다른 클라이언트간에 공유되기 힘듬 • 클라이언트 세션관리 및 상태 관리 가능 • 클라이언트 레퍼런스가 없을 경우 지속적이지 못함 • 비즈니스 로직을 포함
Stateful vs. Stateless Session Bean • Stateful 세션빈과 Stateless 세션빈의 비교
Entity Bean • 데이터를 표현하는 EJB • DB Table의 한 row를 표현(view도 bean이 될 수는 있다.) • 한 클라이언트에 종속적이지 않음 • 영구적 저장장치에 지속성이 있음 • 세션빈과의 비교 • 세션빈은 클라이언트와 1:1 관계 • 엔터티빈은 table의 row와 1:1 관계
Session Bean과 EntityBean 관계 DB table Entity Bean Session Bean Entity Bean Row 1 Client Row 2 Method Call Entity Bean Row 3 Row 4 Session Bean Client Entity Bean Row 5 Method Call Entity Bean