mda 기반s/w 개발기술 - mobile media laboratorywoorisol.knu.ac.kr/median/6/image/mda.pdf ·...
TRANSCRIPT
컴포넌트공학연구팀 3
기술의
복합화
. 상호 이질적인 환경 : 다양한 H/W, 다양한 O/S, 다양한 네트워크, ...
. 다양한 언어 : COBOL, C, C++, ASP, JSP, Visual Basic, Java, C#, ...
. 다양한 S/W 플랫폼 : J2EE, .NET, SUN ONE, CORBA 3.0, ...
서비스
환경의
다양화
. 글로벌 분산 환경 : 차세대 인터넷, 무선 인터넷, ...
. 다양한 정보단말 : PC, 정보가전, PDA, POST-PC, Smart Phone, …
기술의
급격한
변화
. 구현 형태의 변화 : ActiveX, COM, COM+, Java Applet, EJB, CCM, ...
. 새로운 기술의 요구 : 사용자 요구사항의 변화
. 웹 서비스의 발전 : 웹 기반의 차세대 분산 컴퓨팅 환경(.NET, SUN ONE, … )
상호운용성(Interoperability)
결여
이식성(Portability)
부족
소프트웨어개발의어려움
오늘날의 S/W 개발환경
컴포넌트공학연구팀 4
미들웨어 플랫폼의 한계
▣ 다양한 미들웨어 플래폼의 등장
◈ 미들웨어 프레임워크, 컴포넌트 플랫폼과 같은 의미
◈ SUN사의 J2EE, MS사의 .NET, OMG의 CORBA 3
▣ 다양한 컴포넌트 아키텍쳐의 등장
◈ SUN사의 EJB, MS사의 COM+, OMG의 CCM(CORBA Component Model)
▣ 기업의 시스템 구성 어려움
◈ 내부 조직의 서로 다른 요구로 하나의 컴포넌트 플랫폼만을 가지고 기업 전체
시스템 구성 어려움
◈ 특히 외부의 시스템과 통합하기에는 더욱 어려움
▣ 서로 다른 컴포넌트 플랫폼 간의 연동 문제
◈ OMG에서 CORBA 사양을 중심으로 플랫폼간의 연동구조를 정의하고 있음
◈ J2EE와 CORBA는 호한이 가능하나 .NET과는 호환이 어려움
다양한 컴포넌트를 지원하는 표준 모델의 정의가 시급
컴포넌트공학연구팀 5
MDA 표준 등장
◈ OMG에서 2001년 3월에 기술 표준 방향에 대하여 합의를 한 후, 2001년 9월에새로운 소프트웨어 아키텍쳐로 MDA를 전면적으로 채택
◈ 향후 20년을 지속할 소프트웨어 아키텍쳐 모델(OMG, 2001)
현 재
다중 플랫폼 지향 개발 절차MDA(Model Driven Architecture) 기반
단일 플랫폼 지향 개발 절차
비즈니스 모델링
EJB 종속기본 모델
COM+ 종속기본 모델
CCM 종속기본 모델
EJB컴포넌트
COM+컴포넌트
CCM컴포넌트
EJB 종속상세 모델
COM+ 종속상세 모델
CCM 종속상세 모델
비즈니스 모델링
플랫폼 독립적인 기본 모델
특정 플랫폼에 매핑
향 후
EJB컴포넌트
COM+컴포넌트
CCM컴포넌트
EJB 종속상세 모델
COM+ 종속상세 모델
CCM 종속상세 모델 Platform
Specific Model
Platform Specific Model
Platform Independent
Model
Platform Independent
Model
컴포넌트공학연구팀 6
S/W 개발 패러다임
Step-wiseProceduralRefinement
ObjectComposition
Paradigm
DistributedObjects
Technology
ModelTransformation
Paradigm
F L E X I B I L I T Y
C O
M P L
E X
I T Y
CPascalModular
C++Java
Smalltalk
CORBAJava RMI
EJB
Model Driven ArchitectureMeta Object Facility and UMLShared Metadata Environment
(.NET, CWM, JMI)
(출처 : EURESCOM Report, 2002.1.)
컴포넌트공학연구팀 7
MDA 개념 (1/2)
▣ 설계 모델과 구현 모델의 분리◈ 설계 모델은 플랫폼에 독립적인 모델(PIM)로 기술
◈ 플랫폼에 종속적인 모델(PSM)은 매핑을 통하여 PIM을 변환하여 생성
◈ PIM과 PSM은 UML로 기술Platform
Independent Application UML Model
PlatformIndependent Application UML Model
Mapping toWebServices
ServerPlatform
Mapping toWebServices
ServerPlatform
WebServicesModel
WebServicesArtifact
WebServicesserver
Mapping to CCM/EJB
ServerPlatform
Mapping to CCM/EJB
ServerPlatform
CCM/EJBModel
CCM/EJBArtifact
CCM/EJBserver
Mapping toC#/.NETServer
Platform
Mapping toC#/.NETServer
Platform
C#/.NETModel
C#/.NETArtifact
C#/.NETserver
Mapping toBrowerClient
Platform
Mapping toBrowerClient
Platform
BrowerClientModel
BrowerClient
Artifact
BrowerClientserver
Mapping toPagerClient
Platform
Mapping toPagerClient
Platform
PagerClientModel
PagerClient
Artifact
PagerClientserver
MappingToolapplies
To Produce
From ThisCodeGeneratorproduces
FinallyCompile,Configure,Assemblyyields
Input to
기술 변화에효율적 대처
시스템 인프라변화에 유연 대처
유지보수 용이
시스템 생명연장
기 대 효 과
컴포넌트공학연구팀 8
컴포넌트/웹 서비스 플랫폼(J2EE, CORBA, .NET, SUN ONE, SOAP...)컴포넌트/웹 서비스 플랫폼(J2EE, CORBA, .NET, SUN ONE, SOAP...)
컴포넌트 플랫폼 독립 모델(UML, MOF, XML, XMI … )컴포넌트 플랫폼 독립 모델(UML, MOF, XML, XMI … )
컴포넌트 플랫폼 매핑(UML4EJB, UML4CORBA, UML4.NET, UML4SOAP … )컴포넌트 플랫폼 매핑(UML4EJB, UML4CORBA, UML4.NET, UML4SOAP … )
e-Business어플리케이션
개발용 컴포넌트
e-Business어플리케이션
개발용 컴포넌트
e-Business포탈 서비스용
컴포넌트
e-Business포탈 서비스용
컴포넌트
e-Business어플리케이션
통합용 컴포넌트
e-Business어플리케이션
통합용 컴포넌트? ? ??
재무관리 시스템재무관리 시스템 생산관리 시스템생산관리 시스템 보험관리 시스템보험관리 시스템 의료관리 시스템의료관리 시스템 ? ? ?
이식성, 플랫폼간 상호운용성, 플랫폼독립, 영역별 모델 신속 개발 , 생산성 향상이식성, 플랫폼간 상호운용성, 플랫폼독립, 영역별 모델 신속 개발 , 생산성 향상
플랫폼 종속 컴포넌트 모델(UML, MOF, XML, XMI … )플랫폼 종속 컴포넌트 모델(UML, MOF, XML, XMI … )
MDA 개념 (2/2)
컴포넌트공학연구팀 9
Core Core TechnologiesTechnologies
Core Target Core Target PlatformsPlatforms
Pervasive Pervasive ServicesServices
Vertical Vertical DomainsDomains
MDA 구조
컴포넌트공학연구팀 10
MDA의 핵심 기술
▣ UML(Unified Modeling Language)◈ 객체 및 컴포넌트 시스템을 표현하기 위한
표준 언어
◈ 현재 UML 1.4, UML 2.0 작업 중
▣ MOF(Meta Object Facility)◈ 모델 정보에 대한 표준적인 저장소를 제공
하고 표준화된 모델 정보를 접근하는 구조를 정의
◈ 현재 MOF 1.4
▣ CWM(Common Warehouse Metamodel)◈ 데이터 저장소에 대한 표준을 정의하고 데
이터베이스 모델과 스키마 변환 모델, OLAP, 데이터 마이닝 모델에 대한 표준화된 방법 제공
◈ 현재 CWM 1.0
▣ XMI(XML Metadata Interface)◈ UML로 기술된 모델 정보와 XML 표현에
대한 표준
◈ 현재 XMI 1.2
컴포넌트공학연구팀 12
▣ 매핑 규칙을 제공하는 UML Profile
◈ UML의 기본 기본 모델을 특별한 목적에 맞도록 UML의 Stereotype과 Tagged
Value 메커니즘을 사용해 확장
▣ UML Profile 진행 현황
UML Profile
※ JCP : Java Community Process
내 용 표준 명칭(약칭) 진행 현황
CORBA CCM을 PSM에서 UML로 표현 UML4CORBA 채택
EJB를 PSM에서 UML로 표현 UML4EJB JCP에서 채택
웹 서비스를 PSM에서 UML로 표현 UML4SOAP 진행 중
.NET/COM+를 PSM에서 UML로 표현 UML4.NET 착수
Enterprise 어플리케이션을 PIM 수준에서 기술 UML4EDOC 채택
Loosely-coupling 시스템을 PIM 수준에서 기술 UML4EAI 채택
컴포넌트공학연구팀 13
MDA 기반 개발 공정 – PIM 작성
▣ UML을 이용하여 PIM 작성 시작
▣ 기본 PIM : 비즈니스 기능과 행위만을 기술, 즉 구현 기술과는 무관
▣ 상세 PIM : 구현 기술과 연관된 상세 PIM
◈ Activation pattern, persistence, transactionality, security level,
configuration information 등 포함
▣ 기본 서비스(Pervasive Service) 및 영역 특성에 대한 내용 포함
▣ 서버의 내용 뿐만 아니라 클라이언트 환경의 모델링도 가능
▣ MOF 기반의 repository에 저장
컴포넌트공학연구팀 15
MDA 기반 개발 공정 – PSM 작성
▣ 자동화 도구를 이용하여 PIM을 PSM으로 변환
◈ PSM을 기술하기 위한 UML Profile(UML4EJB, UML4CORBA 등)에
부합되도록 매핑하여 변환
◈ 일반적인 어플리케이션 모델로 설계된 실행 특성과 구성 정보들은
목표 플랫폼에 의해 요구되는 특정한 형태로 변환
▣ 4단계 매핑 변환 방법
◈ 100% 수작업
◈ 설정된 패턴을 이용하여 특정한 PSM으로 수작업
◈ 도구를 이용하여 PSM 골격을 생성한 후 수작업
◈ 도구를 이용하여 완전한 PSM으로 변환
컴포넌트공학연구팀 17
MDA 기반 개발 공정 – 어플리케이션 생성
▣ 자동화 도구를 이용하여 구현 환경에 적합한 코드 생성
◈ MDA 도구를 이용하여 PSM으로부터 개발자가 선택한 플랫폼을 위
한 구현 코드 전체 또는 대부분을 생성
▣ 새로운 플랫폼 상에의 재 통합은 역공학을 통하여 수행 가능
◈ 소스 코드를 PSM으로, PSM을 PIM으로 변환한 후, PIM을 새로운
플랫폼에 적합한 PSM으로, PSM에서 코드를 다시 생성
컴포넌트공학연구팀 18
모델 변환 유형
▣ PIM to PSM Mapping
◈ PIM이 개발단계에서 좀 더 상세화하는 단계
▣ PIM to PSM Mapping
◈ 상세한 PIM을 PSM으로 변환
▣ PSM to PSM Refactoring
◈ PSM을 좀 더 상세화하는 단계로서 실제 구현과 관련된 정보 포함
◈ 예 : 컴포넌트 실행을 위한 컨테이너 정보, 설정 정보, 전개 정보
▣ PSM to PIM Refactoring
◈ 기존 시스템의 PSM을 추상화하여 PIM으로 역변환
컴포넌트공학연구팀 19
MDA 메타 모델
MOF
Other languages
UML
Metamodel
PIM Mapping techniques
PSM Mapping techniques
PIM
PSM
Infrastructure
<<expressed with>>
<<expressed with>>
<<expressed with>>
<<based on>>
1..n
<<based on>>
1..n
Refactoring Refactoring from PSM from PSM to PIMto PIM
<<described with>>
1..n
<<described with>>
1..n
Mapping Mapping from PIM from PIM to PIMto PIM
1..n
Mapping Mapping from PIM from PIM to PSMto PSM
1..n
Mapping Mapping from PSM from PSM to PSMto PSM
1..n
<<depends on>>
컴포넌트공학연구팀 20
주요 업체의 MDA 기술 개발 현황
IBM
IONA
SUN
RationalSoftware
InteractiveObjects
WebSphere MDA Architecture
Orbix E2A 등
UML4EJB
Rational사의 Rational RoseKabira사의 VDC
ArcStyler 3.0
향후 WebSphere Product Family에서MDA 지원 예정 발표(2001. 11)
새로운 비즈니스 통합 솔루션으로MDA를 채택(2001. 3)
UML4EJB 등 MDA에서 Java를 지원하는 표준 명세개발을 주도적으로 수행
Kabira사와 MDA 지원 도구를 개발하기로 협정 체결(2001. 12)
MDA 를 지원하며 J2EE/EJB. .NET, CORBA 지원
업체명 주요 관련 제품 현 황
KennedyCarter
iUMLMDA 개념을 잘 수용하고 있으나
Ada/C++ 언어 지원
SOFTTEAM Objecteering/UMLMDA 개념을 잘 수용하고 있으며
UML4EJB 지원
TogetherSoft
Together Control Center 6.0 MDA 지원 예정 발표(2002. 10)
컴포넌트공학연구팀 21
세계 컴포넌트 산업 시장 규모
▣ MDA 기반 컴포넌트 개발 도구 시장◈ 2005년에 5억 달러 시장이 될 것이며, 2007년에는 컴포넌트 개발도구
전체 시장의 50%를 점유할 것임(Cutter Consortium의 Paul Harmon, 2001.10.)
(출처 : IDC, 2002.5.)※ MDA 기반 컴포넌트 개발도구는 통합 개발 환경과 분석/설계 도구에 포함
(단위 : 백만 달러)
2001 2002 2003 2004 2005 2006평균
성장율
S/W 컴포넌트 560 576 637 722 823 928 10.6%
통합 개발 환경 11.4%
합 계 6,308 6,764 7,706 8,862 10,147 11,493 12.7%
구 분
어플리케이션 서버 2,208 2,535 2,956 3,411 3,893 4,379 14.7%
2,942 3,064 3,411 3,908 4,451 5,051
분석/설계 도구 598 619 702 821 980 1.135 13.7%
컴포넌트공학연구팀 22
국내 컴포넌트 산업 시장 규모
(단위 : 억원)
S/W 컴포넌트 22 23 25 28 34 39 12.0%
합 계 581 764 1,085 1,568 2,216 2,937 38.3%
어플리케이션 서버 325 505 808 1,253 1,853 2,503 50.3%
통합 개발 환경 11.2%209 211 225 256 294 355
2001 2002 2003 2004 2005 2006평균
성장율구 분
분석/설계 도구 25 25 27 31 35 40 10.3%
(출처 : IDC, 2002.5.)※ MDA 기반 컴포넌트 개발도구는 통합 개발 환경과 분석/설계 도구에 포함
컴포넌트공학연구팀 24
MDA 기반 컴포넌트 개발 기술MDA 기반 컴포넌트 개발 기술
컴포넌트 플랫폼에 독립적인 기본 설계 모델을 정의하고, 이를 기반으로 원하는 플랫폼에 맞는 컴포넌트 S/W를 생성하는
차세대 S/W 개발 기술
기본 설계모델
상세 설계모델
자동 변환
컴포넌트 S/W
응용 영역분석
다양한 컴포넌트 플랫폼에서 작동이 되는
S/W를 개발하고 싶을 때 .NET 기반
J2EE 기반
CORBA 기반
컴포넌트 플랫폼(J2EE, .NET, CORBA)
※ MDA(Model Driven Architecture) : OMG에서 표준으로 채택한 S/W 모델 기반의 분석, 설계, 구축 및 전개를 위한차세대 S/W 개발 구조
※ 컴포넌트 플랫폼 : 컴포넌트로 구성된 응용 프로그램이 작동하는데 필요한 기본 서비스가 제공되는 기반 S/W로써J2EE, .NET, CORBA 등이 있음
MDA 기반 컴포넌트 개발 기술 정의
컴포넌트공학연구팀 25
최종 목표최종 목표
세부 목표세부 목표
▣ MDA 기반 컴포넌트 통합 개발 프로세스 기술 개발
▣ MDA 기반 컴포넌트 생성 기술 개발
▣ MDA 기반 컴포넌트 조립 기술 개발
▣ MDA 기반 웹 서비스 생성 기술 개발
▣ MDA 기반 웹 서비스 조립 기술 개발
컴포넌트 플랫폼에 독립적으로 소프트웨어를 개발할 수 있는
국제 표준인 MDA(Model Driven Architecture)를 기반으로 하는
컴포넌트 통합 개발 도구의 시제품 개발
컴포넌트컴포넌트 플랫폼에플랫폼에 독립적으로독립적으로 소프트웨어를소프트웨어를 개발할개발할 수수 있는있는
국제국제 표준인표준인 MDA(Model Driven Architecture)MDA(Model Driven Architecture)를를 기반으로기반으로 하는하는
컴포넌트컴포넌트 통합통합 개발개발 도구의도구의 시제품시제품 개발개발
연구 개발 목표
컴포넌트공학연구팀 26
MDA 기반 컴포넌트 통합 개발도구 주요 특징
▣ OMG의 MDA 표준 명세 100% 지원
▣ 컴포넌트 생성 및 조립, 웹 서비스 생성 및 조립 기능 지원
▣ 컴포넌트 플랫폼 : J2EE, SUN ONE, .NET, CORBA 지원
▣ 컴포넌트 아키텍쳐 : EJB 2.0, COM+, CCM 지원
▣ 프로그래밍 언어 : Java, C++, C#, JSP, Servlet 지원
▣ 분석 및 설계 모델링 언어 : UML 1.4 이상 지원
▣ 정보저장소(Repository) : MOF 1.3 지원
▣ 비즈니스 모델, PIM, PSM은 규칙 기반의 검증 지원
▣ ASL(Action Semantics Language) 지원을 통해 비즈니스 로직 생성
▣ 소스 코드로부터 PSM으로, PSM을 PIM으로 역변환 100% 지원
▣ 모델과 소스 코드간에 동시 SRE(Simultaneous Round-trip Engineering) 지원
▣ 통합 개발환경(IDE) : Eclipse 기반으로 지원
컴포넌트공학연구팀 27
MDA 기반 컴포넌트 통합 개발 도구
MDA 기반 컴포넌트 통합 개발도구 구성도(안)
프로세스 관리기(Process Manager)
비즈니스 모델 생성기(Business Model Generator)
PIM 생성기(PIM Generator)
PSM 생성기(PSM Generator)
코드생성기(Code Generator)
컴포넌트/웹서비스전개기(Component/Web Services
Deployer)
시험기(Tester)
모델
매핑
관리
기(M
od
el
Map
pin
g M
an
ag
er)
메타
모델
정의
기(M
eta
Mo
del
Defi
ner)
설계
패턴
관리
기(D
esig
n P
att
ern
Man
ag
er)
통합 개발환경(IDE)
모델 정보 저장소(Model Repository)
컴포
넌트
/웹서
비스
저장
소(C
om
po
nen
t/W
eb
Serv
ices R
ep
osit
ory
)
컴포넌트공학연구팀 28
MDA 기반 컴포넌트 통합 개발도구 기능 (1/3)
▣ 프로세스 관리기
◈ UML 프로파일 및 추가 프로세스 단계를 적용하여 새로운 프로세스를 생성
할 수 있으며, 프로세스 진행 중 생성/소멸/변경되는 모델들을 추적 관리
▣ 비즈니스 모델 생성기
◈ 시스템의 전체 프로세스를 보여주며 개발하는 시스템에 대한 기능적, 비기
능적 요구사항을 분석한 후 컴포넌트를 식별
▣ PIM 생성기
◈ 식별된 컴포넌트를 이용하여 아키텍쳐를 생성하고 시스템의 세부 요소들을
UML 기반으로 PIM을 모델링하며, PIM을 정제하고 생성된 PIM을 검증
▣ PSM 생성기
◈ PIM으로부터 플랫폼에 종속적인 PSM으로 변환하고, 컴포넌트 생성 및 조
립과 웹 서비스 생성 및 조립을 위한 PSM을 정제하고 생성된 PSM을 검증
컴포넌트공학연구팀 29
▣ 코드 생성기
◈ PSM 정보를 이용하여 골격 코드와 비즈니스 로직 코드를 생성하고, 생성된
소스 코드 정보와 PSM 정보를 일치시킴
▣ 모델 매핑 관리기
◈ 비즈니스 모델, PIM, PSM 등 다양한 모델간의 변환을 위한 매핑 규칙을 정
의하며, 매핑 엔진을 이용하여 모델 변환을 자동화
▣ 메타 모델 정의기
◈ 새로운 UML 프로파일을 정의하고, 프로파일이 UML 메타 모델 규칙과
MOF 규칙에 맞게 정의 되었는지 검증
▣ 설계 패턴 관리기
◈ 비즈니스 모델 생성기, PIM 생성기, PSM 생성기에서 자주 사용되는 설계 정
보들을 패턴화 하여 정의하고, 모델링 과정에서 패턴들의 적용을 지원
MDA 기반 컴포넌트 통합 개발도구 기능 (2/3)
컴포넌트공학연구팀 30
▣ 컴포넌트/웹 서비스 전개기
◈ 컴포넌트 및 웹 서비스 코드에 대한 패키징과 서버에 전개하는 과정을 지원
▣ 시험기
◈ 단위 컴포넌트와 합성 컴포넌트의 인터페이스를 시험할 수 있으며, 웹 서비
스의 인터페이스를 시험
▣ 모델 정보저장소
◈ 메타 모델 정보와 메타 모델의 인스턴스인 모델 정보 등 도구 전체의 모델
정보를 관리
▣ 컴포넌트/웹 서비스 저장소
◈ 생성된 컴포넌트와 웹 서비스를 저장소에 저장하고, 저장된 컴포넌트와 웹
서비스의 정보를 검색하거나 수정 및 삭제
▣ 통합 개발환경
◈ 컴파일러, 디버거, 버전/형상관리기, 단위 시험기 등 프로그래밍을 위한 개
발 환경
MDA 기반 컴포넌트 통합 개발도구 기능 (3/3)
컴포넌트공학연구팀 32
참고 자료
▣ OMG Model Driven Architecture Home Page : http://www.omg.org/mda/index.htm
▣ Richard Soley and the OMG Staff Strategy Group, “Model Driven Architecture”, ftp://ftp.omg.org/pub/docs/omg/00-11-05.pdf
▣ OMG Architecture Board MDA Drafting Team, “Model Driven Architecture: A Technical Perspective”, http://cgi.omg.org/docs/ormsc/01-07-01.pdf
▣ Jon Siegal and the OMG Staff Strategy Group:, “Developing in OMG’s Model Driven Architecture”, ftp://ftp.omg.org/pub/docs/01-12-01.pdf
▣ OMG, “UML 1.4 Specification”, http://cgi.omg.org/docs/formal/01-09-67.pdf
▣ OMG, “UML Profile for EDOC Final Adopted Specification”, http://cgi.omg.org/docs/ptc/02-02-05.pdf
▣ JSR, “JSR-000026 UML/EJBTM Mapping Specification 1.0”, http://jcp.org/aboutJava/communityprocess/review/jsr026/index.html
▣ OMG, “UML Profile for CORBA Version 1.0”, http://www.omg.org/cgi-bin/doc?formal/02-04-01
▣ OMG, “UML for EAI Final Adopted Specification”, http://cgi.omg.org/docs/ptc/02-02-02.pdf
▣ OMG, “Common Warehouse Metamodel(CWM) Specification Version 1.0”, http://cgi.omg.org/docs/formal/01-10-01.pdf
▣ OMG, “Meta Object Facility(MOF) Specification Version 1.4”, http://cgi.omg.org/docs/formal/02-04-03.pdf
▣ OMG, “XML Metadata Interchange Version 1.2”, http://cgi.omg.org/docs/formal/02-01-01.pdf