EJB and JBoss SEAM 양수열소장 Java Champion, JCO Advisor, Inpion Consulting
Agenda Web Framework & EJB What is Seam? Why Seam? Q/A
Framework history Main Milestone in Standard & OpenSource 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09 10 J2EE SUN WAF JDO Java EE 5 1.0 1.2 1.1 2.0 2.1 3.0 1.2 1.3 5.0 0.92 1.0 1.1 1.2 2.0 2.1 1.0 2.0 2.1 2.2 2.3 2.4 2.5 /1.1 2.0 3.1 1.4 6.0 1.0 1.1 1.2 1.3 1.4 5.0 6.0 95 96 97 98 99 01 02 03 04 05 06 07 08 09 10 2.2 3.0 JSF EJB J2EE JSP Servlet Java
패러다임고착화 우리가갖고있는고정된시각은? EJB 못쓰겠네. 무엇이있을까요? SFSB은쓰면않돼무겁거든 SLSB를써야돼 우린 너무한국고정된개발자가패러다임을갖고갖고있는있는것은고정관념은아닌지!!!.. JSF 뭐야? 허걱젃라어려운표준아냐? 생각해볼까요? 역시프로그램모델은 POJO가최고야 갂과하고넘어가는것은없는지 Spring이랑 ibatis가최고야 너무 hibernate? 개성이없는한국에서는것은아닌지안드로메다기술이지 역시개발툴은 Eclipse가최고야 다른 IDE 는다구려.. 기술을선입견으로판단하는것은아닌지. 브라우저는 Explorer 만지원하면되지모 Firefox, 크롬을누가쓴다구 중요한것은 IT 는계속변하고개선되고있다는것이아닐까요? DB 는역시오라클이지.
JSR 패러다임의변화 과거와현재 Vendor Vendor Impl. JCP -JSR RI Impl. Community Community Impl. Vendor Impl Vendor Impl 스펙적용업그레이드. Open Source Impl JCP Hibernate EJB3 Seam WebBeans RI Impl. Community Impl 스펙적용업그레이드
패러다임의변화 사례 1: EJB3.0 Hibernate 2.x EJB3.0 POJO 기반 ENTITY Annotation 설정 JAP 기반 Persistence EJB3 JPA Entity == Hibernate POJO EJB3 Config!= Hibernate Config Hibernate 3.x EJB3 Package!= Hibernate Package EJB3 Annotation 적용 JAP API 도입
JSR 페러다임의변화 사례 2: WebBeans(JSR 299 ) History JBoss Seam 1.x Spec Proposal: Web Beans (JSR 299) JBoss Seam 2.x Spec Proposal: Java EE 6 Web Beans Java Contexts and Dependency Injection JBoss Seam 3.x: JSR-299 적용
Java EE 의진화 Java EE 6 의주요구성 API WEB Profile Full Profile Servlet 2.3 JSP 2.2 JSTL 1.2 EL 1.2 JSF 2.0 Web Bean 1.0 EJB 3.1 Lite EJB 3.1 Full JPA 2.0 JTA 1.1 JMS 1.1 Seam JSF 보안정책의영향 Seam 컴포넌트관리모델 ORM 강화
Seam 관련 Spec 각벤더의반응
JavaEE5 Technology JSP JMS JPA JAX-WS JAXB Servlet JavaMail EJB JSF 출처 : http://blog.naver.com/tmdtn8107?redirect=log&logno=40072503789
JavaEE6 Preview JSP JAX-RPC Web bean JAX-RS Servlet JAXB EJB JSF 출처 : http://blog.naver.com/tmdtn8107?redirect=log&logno=40072503789 Common Anotaion
출처 : http://blog.naver.com/tmdtn8107?redirect=log&logno=40072503789
Dependency Injection : Inversion of Control 젂통적인객체의역할 Get Reference Object Role Collaboration 강결합의코드구조 (Tight coding) 단위테스트가어려운디자인 코드유연성저하 To get ref. To get ref. DI 구조의각역할 Object Collaboration Container or Other Class To Create Ref. Manage Ref. (DI) 느슨한결합코드구조 (Loosely Coupling) 단위테스트가용이 코드유연성향상 Container at Creation
의존성코드에관련된 J2EE 디자인패턴 Factory 패턴 Singleton 패턴 프로젝트내의 Factory 클래스와 Singleton 클래스급증 public class UseService { private static UserService messageservice; private UserService() {} } public static UserService getinstance() { if( userservice == null ) { return new UserService(); } else { return userservice; } }
Seam is a deep integration framework designed for web applications Seam Seamless
JBoss Seam 의이미지 JBoss Seam 의이미지 Integration & Stateful Web tier EJB tier + + Framework Level Web-EJB Integration Contextual Feature JBoss Seam 두개의 Tier 통합 (Framework Level) Boilerplate Code 제거 상호갂객체참조자동화 상태유지 Context 관리 EJB tier Web tier
Seam Context Image
Seam 컨텍스트유형 Seam Context Stateless Context Event Context Page Context Conversation Context Session Context Business Process Context Application Context Application Business Process Session Conversation Page Event (Request) SFSB SLSB Entity Bean Stateless Java Bean Oracle ADF Faces Summarize 20
Using Seam SFSB SLSB Entity POJO
본교재의저작권은하이텔자바동과 Artszen 에게있습니다. 22
JBoss Seam 의이미지 https://jira.jboss.org/jira/browse/jbide-597 Oracle ADF Faces Summarize 23
JBoss Seam 의이미지 Developer 신무기장착 (20 승을위하여.) 구질 : JBoss Seam WEB EJB Java EE 5.0 App. 프레임웍 JSF와 EJB3.0을통합 선언적인상태관리 Bijection 개념도입 Annotation 기반 Testing 프레임웍통합 - TestNG 상태유지웹애플리케이션으로의진화 Java EE App. 개발편의성향상 Light Weight Framework Ajax 지원 JavaScript 통합 진보적인 Input Validation 삽질은이제그만. Seam 이라고만능은아니지..
JBoss Seam 본교재의저작권은하이텔자바동과 Artszen 에게있습니다. JBoss Seam 이란? Target: JSF 1.2 & EJB3.0 Web 컴포넌트 & EJB Tier 컴포넌트를연결 Web Tier 와 EJB Tier 를컨텍스트를중심으로결합 Facelets itext Richfaces Icefaces Drools JBoss jbpm Extended EL Bean Validator Hibernate Spring. JBoss Seam is a next generation web framework that integrates standard Java EE Technologies with a wide variety of nonstandard technologies into a consistent, unified, programming model Standard Component Model Standard Approach (Unframework) Seam Component model WebBeans(JSR-299)
Seam Framework Java EE 5 의최상위레이어 Seam 본교재의저작권은하이텔자바동과 Artszen 에게있습니다. 26
Java Web Framework 의진화 Framework 개념의확장 Deep Integration EJB3 & JSF Opensource Framework API 및아키텍처제공 개발패턴지원 Component Integration Seam Specification 자체적인개발자동화프로세스제공 컴파일, 패키징, 배포, 테스트 Dev. Processes Dev. Environment JSR 299 표준화 Java EE 6 로채택 Self Dev Env Opensource IDE 와통합
#
#
Seam 스타일 Seam 코딩스타일 : JSP can call EJB!!!!
Q & A 참고 : 이후관련메일링리스트 http://groups.google.co.kr/group/kjug_seam?hl= ko