▩ EJB 개발의 특징과 필요성 - 동시접속자수가 10,000이상 이상인 사이트 구축시 사용하는 콤포넌트 기술입니다. - 동시접속자수가 많은 가운데 안정적인 트랜잭션이 필요한 사이트 구축시 사용합니다. - 접속자수가 많은 공공기관, 기상청, 병무청, 금융, 보험, 포털사이트, 게임사이트, 기업등에서 집중적으로 사용 - EJB 시스템은 속도는 느리지만 개발시에 개발자에게 많은 자동화된 기능을 제공해 분산 시스템 구축을 쉽게 해준다. - EJB는 JSP, Beans를 사용한 시스템보다 속도는 느리지만 안정적인 분산 시스템을 제공한다. - 기초기술(JSP, BEANS)을 알면 EJB는 배우기 쉽고 사용하기 쉽다. - EJB 규약을 집중적으로 습득하면 쉽게 EJB 콤포넌트를 개발할 수 있다. - 분산환경에 대한 이해가 필요하다. ▩ N-tier비즈니스 환경의 이해 1. 2-tier 에서의 환경 1계층 2계층 ---------------------------------------------------------------- VisualBasic, PowerBuilder --> DBMS(MS-SQL, Oracle, My-SQL) 2. 기본적인 3-tier를 지원하는 WEB 환경
1계층 2계층(Application) 3계층 ----------------------------------------------------------------------------------------------- IE Browser <-----> GUI, WebServer(HTML, JavaScript, CSS, XML) SQL ↑ │ ↓ 비즈니스 로직(Process Logic, JSP, ASP, PHP, ASP.NET) <---------> DataBase FAT Client(처리비중이 높음) Thin Server - 2계층에서 유지보수 및 수정, 보안성이 떨어짐 3. 4-tier 에서의 환경 1계층 2계층(Web Server, Servlet Container) 3계층(Servlet Container) 4계층 ----------------------------------------------------------------------------------------------- 사용자 <-----> 프리젠테이션 레이어 SQL 사용자 인터페이스(GUI) <---------------> 비즈니스 로직 <--------------> Database ----------------------------------------------------------------------------------------------- Browser HTML XML, JSP ------------------------------> Servlet, Beansr -------------> DBMS
- JSP는 로직처리용으로 사용이 아니라 처리결과 출력용으로만 사용, 처리로직은 3계층에 존재, 안정적인 트랜잭션 지원이 부족하다. 4. n-tier 에서의 환경(EJB 지원) 사용자 <-----> 프리젠테이션 레이어 <--------------> 비즈니스 로직 <------> 업무를 콤포넌트로 구현 <-----> Database ------------------------------------------------------------------------------------------------------------------ Browser HTML, CSS, JavaScript, JSP <-------> Servlet, Beans <-----> EJB, Application Server <----> DBMS
▩ 분산 환경의 이해 ==================================================================== 1. 정의 - 시스템 구성이 여러 컴퓨터로 물리적으로 분리 되어 있거나 하나의 컴퓨터 안에서 소프트웨어 적으로 분리 되어 있는 환경 Visual Basic은 하나의 언어상에서 대부분의 처리 로직을 전부 구현함 - RMI(Remote Method Invocator, 원격 메소드 호출)는 분산 객체간 통신을 지원 - 객체가 네트웍을 통과할 때는 직렬화(Serialization)되어 이동됨 2. EJB 개발을 위한 프로그래밍 방법 및 장점 (객체 지향적인 방법 적용, EJB 컨테이너로 부터 아래의 항목을 자동으로 지원 받을 수 있음으로 어플리케이션을 신속히 구축할 수 있다.) - 인스턴스 폴링: 객체를 미리 생성하여 메모리에 저장하여 사용준비 상태에 들어가도록 함, 많은 동시접속자에 대한 빠른 속도 구현 - 트랜잭션 처리: 자동으로 컨테이너가 모든 처리메소드에 대하여 트랜잭션을 처리해줌, 안정적인 데이터 조작 - 보안설정: 메소드나 콤포넌트에 보안설정을 쉽게 할 수 있음 - 퍼시스턴스 관리: 빈즈의 상태를 메모리에서 사용여부에 따라 자동으로 활성화/비활성화를 실행해 관리해줌 - FAT Client를 Thin Client로, n-tier 시스템을 구축할 수 있다.
3. 객체지향 개발의 의미
- 객체(Object) : 속성과 처리할 메소드를 포함하고 있음 - 데이터 추상화(Abstraction) : 다양한 데이터를 하나의 개념으로 포함시킴 (고객...) - 객체 간 상속(Inheritance) : 객체간에 유기적인 관계를 갖고 있음, 중복 개발을 막을 수 있음, 인간적인 관계를 가지고 있음 - 다형성(Polymorphism) : 상속을 바탕으로 한 개념, 한 부모의 형질이 여러 자식으로 나타나는 개념, 추상 메소드를 여러 클래스가 다양한 기능으로 구현하는 일, Method Overloading, Method Overriding, Interface, Abstract Class 핵심 기술임 - 캡슐화(Encapsulation) : 객체안에 담겨있는 데이터를 외부로부터 접근 할 수 없도록 제한을 가하는 일, Access Modifier private, protected, friendly, public 4. 분산 객체 : CORBA(Common Object Request Broker Architecture, UNIX에서 사용), java RMI, DCOM(MS)들임
RPC(Remote Procedure Call) + OBJECT Oriented Programming = Java RMI(분산객체 통신 기술) RMI Protocol Architecture : Client <-----> stub <-----> stub <-----> skeleton <-----> Server ----------------- -------- Socket TCP/IP통신 제공 서버쪽 처리자 5. EJB 컨테이너 (Container) - Weblogic, Webspere주로 사용, 국산은 제우스 사용 - EJB 컴포넌트들이 Loading되어 활동하는 서버 쪽 프로그램, 컴포넌트의 생성, 소멸, 라이프 사이클, 보안, Threading 등의 서비스를 제공 6. J2EE의 광범위한 구성 요소 - Servlet - JSP(Java Server Page) - EJB(Enterprise JavaBeans): Enterprise Java Bean - JDBC(Java Database Connectivity): 자바 데이터베이스 접속 기술 - JMS(Java Message Service): 자바 메시지 처리 기술 - JNDI(Java Naming and Directory Interface): 객체에 이름을 지정하는 기술 - JTA(Java Transaction API): 트랜잭션 관련 API을 제공 - JavaMail: 메일 관련 기술 - JAF(Java Activation FrameWork) : 메일 전송시 다양한 데이터를 지원하는 기술 - RMI-IIOP(RMI(Remote Method Invocation) over IIOP: 객체 통신 기술 |