java 2 enterprise edition (j2ee) 의 cbd 방법과 지원도구
DESCRIPTION
PD99- 부서번호 - 일련번호. 별표 4( 국문 ). Java 2 Enterprise Edition (J2EE) 의 CBD 방법과 지원도구. 2001. 5. 30. 이 우 진 [email protected] S/W 공학연구부 - 컴포넌트공학연구팀. 컴퓨터 소프트웨어기술연구소. 목 차. CBD 개발 방법의 필요성 J2EE 의 구조 Enterprise Java Beans (EJB) 프로그래밍 J2EE 지원 도구 MS .Net 의 개요 J2EE 와 .Net 의 비교 - PowerPoint PPT PresentationTRANSCRIPT
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 1 -
PD99- 부서번호 - 일련번호별표 4( 국문 )
ETRI
2001. 5. 30.
컴퓨터소프트웨어기술연구소 ETRI
이 우 진
S/W 공학연구부 - 컴포넌트공학연구팀
Java 2 Enterprise Edition (J2EE) 의 CBD 방법과 지원도구
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 2 -
목 차▣ CBD 개발 방법의 필요성
▣ J2EE 의 구조
▣ Enterprise Java Beans (EJB) 프로그래밍
▣ J2EE 지원 도구
▣ MS .Net 의 개요
▣ J2EE 와 .Net 의 비교
▣ eBusiness 개발자의 변화
▣ Q & A
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 3 -
eCommunity 산업 추세
0.00%
0.20%
0.40%
0.60%
0.80%
1.00%
1.20%
1.40%
1.60%
1.80%
2.00%
2000 2001 2002 2003 2004
$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
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 4 -
eBusiness Speed
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 5 -
eBusiness 의 성공 요건
Good Item Time to Market
개발 기간 단축
병행 개발 - Divide-and-conquer- Parallel Processing- Pipelining
재사용Cost 감축
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 6 -
S/W 개발 방법론의 변천
S/W D
evelopment
Phase
: reuse: integration mechanism
요구분석
개략설계상세설계
구현테스팅 & 디버깅
유지보수
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 7 -
컴포넌트 기반 개발영역 모델링
컴포넌트 식별
컴포넌트다이어그램 생성(인터페이스 정의 )
컴포넌트별상세 설계 -independent-iterative-incremental
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 8 -
전형적인 3- 계층 구조방
화
벽
HTTP
방 화 벽
HTML
프리젠테이션계층
비즈니스계층
데이터베이스계층
클라이언트시스템
RMI/IIOP
데이타베이스접속 API
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 9 -
J2EE 의 5 – 계층 구조
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 10 -
EJB 프로그래밍 (1/5)
EnterpriseJavaBeans
EnterpriseJavaBeans
EJBServer
EJBServer
IIOP
Vendor 5Vendor 4
EnterpriseJavaBeans
client
Java IDLclient
CORBAclient
Vendor 1
Vendor 2
Vendor 3
IIOP
IIOP
IIOP, RMI
Application Server
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 11 -
EJB 프로그래밍 (2/5)
EJB Bean
Container
Home Interface
Remote Interface
Other EJB BeansContext 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);
Client 프로그램Lookup(JNDI 이용 Bean 찾기 )
Home Interface 가져오기
Remote Interface 사용Home 을 이용 빈 생성
Application Server
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 12 -
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
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 13 -
EJB 프로그래밍 (4/5)
▣ Two Type of Beans : Entity Bean◈ 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)
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 14 -
EJB 프로그래밍 (5/5)
Bean Provider
Application Assembler
Application Server(Container + EJB Server)
Deployer Tool
EJB-JARs
Combine
Deployment Descriptor
deploy
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 15 -
J2EE 지원 도구J2EE 표준
- J2EE 1.2, J2EE 1.3- EJB 1.3, EJB 2.0
-Weblogic 6.0-Gemstone-WebSphere
-Cool:Jeo 2.0-Together 5.0 (TogetherSoft)-Cobalt 1.0 (ETRI)
Application Server Development Tools
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 16 -
COBALT 도구 개요
컴포넌트 생성 지원 도구 컴포넌트 조립 지원도구 컴포넌트 변환 도구
영역
모델러
컴포넌트
모델러
아키텍쳐
모델러
컴포넌트 합성기
컴포넌트
개조기코블
프로그램
연계기
웹 프로그램
변환기
응용컴포넌트
추출기
DB
연계기코드
생성기
생성 통합 G U I 조립 통합 G U I
모델 정보 관리기 모델 정보 관리기
G U I
전체 통합 G U I
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 17 -
컴포넌트 생성지원 도구의 흐름도
Describe ObjectSequence Diagram
DescribeUse Case Model
IdentifyComponents
Initialize Component Diagram
Edit Component Diagram
Add Extracted Components
Edit ComponentClass Diagram
Import/ExportDB Tables
Edit Source Code
DeployComponents
Generate EJB Testing Client
DescribeObject Model
Describe ComponentSequence Diagram
Describe ClassSequence Diagram
Initialize ComponentClass Diagram
SRE Support
DomainModeling
ComponentModeling
ComponentDesign
CodeGen.
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 18 -
MS .Net 에 관하여 ▣ 2000 년 중반에 MS 에서 차세대 인터넷 (Next Generation Internet)
으로 발표됨▣ 웹 서비스 (web service) 를 지원하는 새로운 플랫폼
◈ 웹 서비스를 통한 인터넷 상에서 어플리케이션의 통합◈ 표준 프로토콜 (SOAP) 을 이용한 다양한 클라이언트 환경 제공◈ 느슨한 (loose) 통합을 지원하는 분산 컴퓨팅 실현 ◈ 다양한 언어를 지원하는 개방형 프로그래밍 플랫폼 제공
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 19 -
.Net 환경
DB server
Web ServiceWeb Service
다양한 클라이언트 환경
Web ServiceWeb Service
SOAP
SOAP
SOAP
HTTP
SOAP = HTTP + XML
클라이언트서비스 제공자
Web ApplicationWeb Application
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 20 -
.Net 프레임워크
Windows COM+ Services
Common Language Runtime
Base Class Library
Data and XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C#
Visual S
tudio.NE
T
JScript …
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 21 -
J2EE 와 .Net 비교 (1/4)
▣ 결합 (integration) 관점◈ 결합하기 위해 미리 알아야 하는 정보의 양◈ 결합하는데 드는 노력◈ 분리 - 재결합을 위한 노력
▣ Component
◈ 견고한 (tight) 결합을 통한 시스템 통합 방법▣ Web Service
◈ 느슨한 (loose) 결합을 통한 어플리케이션의 통합 허용
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 22 -
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.
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 23 -
J2EE 와 .Net 비교 (3/4)Component Web ServiceImplemented 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.
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 24 -
J2EE 와 .Net 비교 (4/4)
프로그래밍 언어
웹 서비스 프레임워크
컴포넌트 컨테이너
수행 플랫폼
Many
All Future Microsoft
.Net
Many
Java
SunOne APIs J2EE
1.4 ?
J2EE 1.3
Microsoft .Net SUN J2EE
* Source : “Platforms for Components and Web Services,” CBDi Forum, April 2001
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 25 -
eBusiness 개발자 관점의 변화
OS
+
Programming Language
Domainknowledge
++
Programming Language
Domainknowledge
platform
OS
+
Middleware
Programming skills
ETRI Proprietary 소프트웨어공학연구부 컴포넌트공학연구팀- 26 -
Discussion
▣ Thanks▣ Q & A