Java 2 Enterprise Edition (J2EE)의 CBD 방법과 지원도구 PD99-부서번호-일련번호 별표4(국문) Java 2 Enterprise Edition (J2EE)의 CBD 방법과 지원도구 2001. 5. 30. 이 우 진 woojin@etri.re.kr S/W 공학연구부-컴포넌트공학연구팀 컴퓨터소프트웨어기술연구소
목 차 CBD 개발 방법의 필요성 J2EE의 구조 Enterprise Java Beans (EJB) 프로그래밍 목 차 CBD 개발 방법의 필요성 J2EE의 구조 Enterprise Java Beans (EJB) 프로그래밍 J2EE 지원 도구 MS .Net의 개요 J2EE와 .Net의 비교 eBusiness 개발자의 변화 Q & A
eCommunity 산업 추세 $250M/ $1,017M/ $1,713M $3,252M/ $5,864M/ $179B $207B $240B $277B $318B Source : IDC 2000, eCommunity Software, 2000-2004, as Percent of All Software
eBusiness Speed
eBusiness의 성공 요건 Good Item Time to Market 개발 기간 단축 Divide-and-conquer Parallel Processing Pipelining 재사용 병행 개발 Cost 감축
: integration mechanism S/W 개발 방법론의 변천 S/W Development Phase 요구분석 개략설계 상세설계 구현 테스팅 & 디버깅 유지보수 : integration mechanism : reuse
컴포넌트 기반 개발 영역 모델링 컴포넌트 식별 컴포넌트 다이어그램 생성 (인터페이스 정의) 컴포넌트별 상세 설계 independent iterative incremental
전형적인 3-계층 구조 방 화 벽 프리젠테이션 계층 RMI/IIOP 비즈니스 계층 방 화 벽 데이타베이스 접속 API HTTP 방 화 벽 프리젠테이션 계층 RMI/IIOP 비즈니스 계층 방 화 벽 데이타베이스 접속 API HTTP HTML 클라이언트 시스템 데이터베이스 계층
J2EE의 5 –계층 구조
EJB 프로그래밍(1/5) Enterprise JavaBeans client Enterprise JavaBeans Vendor 1 IIOP, RMI Java IDL client EJB Server EJB Server IIOP IIOP Vendor 2 CORBA client Vendor 4 Vendor 5 IIOP Application Server Vendor 3
Lookup(JNDI 이용 Bean 찾기) EJB 프로그래밍(2/5) Client 프로그램 Container Lookup(JNDI 이용 Bean 찾기) EJB Bean Home Interface Home Interface 가져오기 Home을 이용 빈 생성 Remote Interface Remote Interface 사용 Context initial = new InitalContext(); Object objref = initial.lookup(“MyConverter”); ConverterHome home = (ConverterHome) PortableRemoteObject.narrow(objref,ConverterHome.class); Converter currencyCon = home.create(); Double amount = currencyCon.dollarToYen(100.00); Other EJB Beans Application Server
EJB 프로그래밍(3/5) Two Type of Beans : Session Bean Executes on behalf of a single client. Can be transaction-aware. Updates shared data in an underlying database. Does not represent directly shared data in the database, although it may access and update such data. Is relatively short-lived. Is removed when the EJB server crashes. Stateful vs Stateless Session Beans
EJB 프로그래밍(4/5) Two Type of Beans : Entity Bean Persistence Type Represents data in the database. Is transactional. Allows shared access from multiple users. Can be long-lived. Survives crashes of the EJB server.. Persistence Type Container Managed Persistence (CMP) Bean-Managed Persistence (BMP)
Deployment Descriptor (Container + EJB Server) Deployer Tool Deployment Descriptor Application Assembler Combine deploy EJB-JARs Bean Provider Application Server (Container + EJB Server)
J2EE 지원 도구 J2EE 표준 Application Server Development Tools Weblogic 6.0 - EJB 1.3, EJB 2.0 Application Server Development Tools Weblogic 6.0 Gemstone WebSphere Cool:Jeo 2.0 Together 5.0 (TogetherSoft) Cobalt 1.0 (ETRI)
COBALT 도구 개요 전체 통합 G U I 생성 통합 G U I 조립 통합 G U I G U I 영역 모델러 컴포넌트 모델러 컴포넌트 생성 지원 도구 컴포넌트 조립 지원도구 컴포넌트 변환 도구 생성 통합 G U I 조립 통합 G U I G U I 영역 모델러 컴포넌트 모델러 아키텍쳐 모델러 컴포넌트 합성기 컴포넌트 개조기 코블 프로그램 연계기 웹 프로그램 변환기 응용컴포넌트 추출기 DB 연계기 코드 생성기 모델 정보 관리기 모델 정보 관리기
컴포넌트 생성지원 도구의 흐름도 Domain Modeling Component Modeling Component Design Describe Use Case Model Describe Object Model Describe Object Sequence Diagram Initialize Component Diagram Identify Components Component Modeling Edit Component Diagram Add Extracted Components Describe Component Sequence Diagram Initialize Component Class Diagram Component Design Edit Component Class Diagram Import/Export DB Tables Describe Class Sequence Diagram SRE Support Code Gen. Edit Source Code Deploy Components Generate EJB Testing Client
MS .Net에 관하여 2000년 중반에 MS에서 차세대 인터넷(Next Generation Internet)으로 발표됨 웹 서비스(web service)를 지원하는 새로운 플랫폼 웹 서비스를 통한 인터넷 상에서 어플리케이션의 통합 표준 프로토콜(SOAP) 을 이용한 다양한 클라이언트 환경 제공 느슨한(loose) 통합을 지원하는 분산 컴퓨팅 실현 다양한 언어를 지원하는 개방형 프로그래밍 플랫폼 제공
.Net 환경 서비스 제공자 클라이언트 Web Service DB server SOAP HTTP Web Application 다양한 클라이언트 환경 SOAP HTTP SOAP = HTTP + XML 클라이언트 서비스 제공자 Web Application
.Net 프레임워크 Windows COM+ Services Common Language Runtime Base Class Library Data and XML ASP.NET Windows Forms Common Language Specification VB C++ C# Visual Studio.NET JScript …
J2EE와 .Net 비교 (1/4) 결합(integration) 관점 Component Web Service 결합하기 위해 미리 알아야 하는 정보의 양 결합하는데 드는 노력 분리-재결합을 위한 노력 Component 견고한(tight) 결합을 통한 시스템 통합 방법 Web Service 느슨한(loose) 결합을 통한 어플리케이션의 통합 허용
J2EE와 .Net 비교 (2/4) 기술 .Net J2EE 프로그래밍 툴 VisualStudio.NET - 분산 프로토콜 DCOM, SOAP RMI/IIOP 프리젠테이션 계층 프로그램 모델 ASP.NET Servlet, JSP 비즈니스 계층 하부구조 COM+ EJB 보안 API COM+Security Call Context JAAS 메시지 큐 API MSMQ JMS 1.0 비동기식 컴포넌트 Queued (COM+) Message Driven (EJB 2.0) Naming & Dir. Service ADSI JNDI 데이터베이스 계층 분산 트랜잭션 MS-DTC JTS 관계형 DB API ADO.NET JDBC 2.0 메인 프레임 DB 연결 Host Integration Server Java Connectors 프레임워크 기술 전자상거래 프레임워크 Commerce Server B2B 통합 BizTalk Server * Source : “Java 2 Enterprise Edition(J2EE) versus .Net Platform : Two vision of eBusiness,” ObjectWatch, March 2001.
J2EE와 .Net 비교 (3/4) Component Web Service Implemented using de facto standards COM, Java or CORBA Implemented using open standards Black box encapsulation; hides implementation details behind a COM, Java or CORBA Interface Hides any Implementation details behind a SOAP interface Generally fine grain, method level interface exposing business, infrastructure and housekeeping functions Generally only business level interface exposed Formal and precise interface definition of interface attributes –requires prior knowledge for use Self describing and adapting Published for installation by a technical implementer Published for location independent discovery and use over a network Replaceable and upgradeable; providing the interface remains stable, the component can in theory be replaced with another implementation versioning, configuration, description. Can be easily reused Can be dynamically used based on information available at runtime. The interface can change Extensible, new specialized interfaces can be added to meet new requirements or services without disrupting existing clients Can be dynamically composed and or aggregated with other services based on information available at runtim * Source : “Understanding the component and Web Services Market,” CBDi forum, May 2001.
J2EE와 .Net 비교 (4/4) Microsoft .Net SUN J2EE Many All Future Microsoft Java Sun One APIs J2EE 1.4 ? J2EE 1.3 프로그래밍 언어 웹 서비스 프레임워크 컴포넌트 컨테이너 수행 플랫폼 * Source : “Platforms for Components and Web Services,” CBDi Forum, April 2001
eBusiness 개발자 관점의 변화 + + + + Programming Language Domain knowledge skills platform Middleware OS OS
Discussion Thanks Q & A