ria compopnent model

18
RIA 컴퍼넌트 모델 (RIA Component ) Mo d e l 2009.11.06 / S W 기술 표준화 포럼 차상철 cha.sangchual@ gmail.com

Upload: ethan-cha

Post on 04-Jul-2015

1.006 views

Category:

Documents


2 download

DESCRIPTION

To propose RIA component model to accomplish interoperability between heterogeneous platforms.

TRANSCRIPT

Page 1: RIA Compopnent Model

RIA 컴퍼넌트 모델( RIA Compo ne nt

)Mode l

2009 .1 1 .0 6/ S W 기술 표준화 포럼

차상철cha.sangchual@ gmail.com

Page 2: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

2

Agenda

1

2

3

4

5

RCM ( )RIA Compo ne nt Mo de l 목적

RCM ( )RIA Compo ne nt Mo de l 범위

RCM Co re Compo ne nt Arc hite c ture

RIA Pla tfo rm Compo ne nt S e rvic e

RIA Compo ne nt 구현

Page 3: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

3

이종 RIA 플랫폼간 Component Interoperability 제 공을 위한 표준 기술 명세 정의

RCM(RIA Component Model) 목적

개인별 판매 실적 관리

X

Main App. By Silverlight

XPLATFORM / HRM Composite

Flex / Chart Control Silverlight /

Data Model

Silverlight / Grid Control

Page 4: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

4

컴퍼넌트 재사용 Vender Providing RIA 컴퍼넌트

UI Controls – Grid, Chart, Report, etc 네트워크 , Device Interface Controls Write Once Run Anywhere

User Requirement Realizing RIA 컴퍼넌트 Domain Specific and On Site User Requirement Realizing & Implementation Composite Component Client Side Oriented Service Integration

RCM(RIA Component Model) 목적

Page 5: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

5

RIA Co re Compo ne nt Arc hite c ture RIA Co re Compo ne nt S truc ture 준용

RIA Compo ne nt 구현 Inte ro pe rab ility 제공을 위한 플랫폼 서비스 We bIDL 기반 Compo ne nt Inte rfa c e 명세 RIA 컴퍼넌트 구현 절차

RCM(RIA Component Model) 범위

Page 6: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

6

RCM Core Component Architecture

Object<<Interface>>

Component<<Interface>>

UIComponent<<Interface>>

Inte rfa c e De s c rip tio n

Object - RIA 컴퍼넌트 를 식별( : 4 122 )UUID RFC

Component- 수명주기 ( ) Life c yc le 관리- 이벤트 핸들러 관리

UIComponent- Pre s e nta tio n / S tyle 관리- 데이터 관리 .

Page 7: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

7

RCM Core Component Architecture

Object<<Interface>>

Component<<Interface>>

UIComponent<<Interface>>

Obje c t Inte rfa c e 최상위 클래스 / Re g is try Re po s ito ry / 4 122UUID RFC

{inte rfa c e Obje c t

;a ttribute DOMS tring id

} ;

Page 8: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

8

RCM Core Component Architecture

Object<<Interface>>

Component<<Interface>>

UIComponent<<Interface>>

Compo ne nt Inte rfa c e

컴퍼넌트 생명주기

컴퍼넌트 생성 / 초기화 / 소멸

이벤트 관리 ( 3 DOM Le ve l 모델

준용 )

• 이벤트 핸들러의 등록 , 삭제 , 실행

• Eve ntTarg e t Inte rfa c e 구현:/ / . 3 . / / - - 3 - /http www w o rg TR DOM Le ve l Eve nts

Page 9: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

9

Meta-Info : RIAMClass 클래스

컴퍼넌트의 메타정보 제공

UML 의 메타 클래스 참조

OMG UML Infrastructure 2.1.2 OMG UML Superstructure 2.1.2

( 2 )UML M RIAM

Cla s s 클래스 RIAMCla s s 클래스

Pro pe rty 클래스 Fie ld 클래스

Ope ra tio n 클래스 Me tho d 클래스 Eve ntHand le r 클래스

Page 10: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

10

Meta-Info : RIAMClass 클래스

org.omg.uml

(from Logical View)

Field

getDeclaredClass()

Method

getDeclaringClass()getExceptionTypes()getName()getParameterTypes()getReturnType()

Property

isReadOnly : Booleandefault : StringisComposite : BooleanisDerived : BooleanisDerivedUnion : BooleanredefinedProperty : Property[]subsettedProperty : Property[]opposite : Property

(from org.omg.uml)

Operation

isConsistentWith()returnResult()

(from org.omg.uml)

Class

isAbstract : booleanownedAttribute : Property[]ownedOperation : Operation[]superClass : Class[]

(from org.omg.uml)

superClass

RIAMClass

getClasses()getConstructors()getFields()getField()getMethods()getMethod()getEventHandlers()getEventHandler()getName()getSuperClasses()isInterface()getInterfaces()isPrimitive()

Object

uuid : UUID

getClass()instanceOf()clone()

(from org.omg.riam.core)

Type

package : Package

(from org.omg.uml)

RIAMType

<<WebIDL>>ComponentIDL

Page 11: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

11

RIA Platform Component Service

• RIA Na tiveCompo ne nt

• RIA 표준 인퍼페이스를 준용하 여 설계 및 구현 하거나 기존 컴

퍼넌트에 인터페이스를 일치

• RIA De le g a teCompo ne nt

• 이형 RIA 플랫폼 컴퍼넌트 및

OS Na tive 컴퍼넌트 제공 서비스이용• / Bridg e Adap te r 를 통하여 플

랫폼 의 컴퍼넌트 서비스 호출

Page 12: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

12

RIA Platform Component Service

/ O S Communic a tio n Bus RIA 런타임 간 Compo ne nt S e rvic e 요청을 위한 통

신 경로

/ O S Na tive Compo ne nt* , , Ac tive X DLL s o 와 같은 운용체계 제공 컴퍼넌트

Ho s t RIA Runtime

Gue s t RIA Runtime

Page 13: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

13

RIA Component 구현

Page 14: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

14

컴퍼넌트 인터페이스 정의 화일 (.widl)

컴퍼넌트의 속성 (Attribute), 동작

(Operation, Behavior), 이벤트를

WebIDL 로 기술 (Describe)

W3C 의 웹 표준을 준용하여

OMG(Object Management Group) 의 IDL

(Interface Description Language) 를 확

장한 WebIDL 사용

RIA Component 구현 cont’d

Page 15: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

15

WebIDL 컴파일러

컴퍼넌트 인터페이스 정의 (.widl) 를 해

석하여 컴퍼넌트 템플릿 코드 생성

목표 시스템에 따라 프로그래밍 언어

및 운영체계 (O/S) 에 적합한 소스코드

를 생성

컴퍼넌트의 속성과 오퍼레이션 구현을

위한 컴퍼넌트 기능 영역

RIA 런타임과의 인터페이스를 위한

Skeleton 영역

RIA Component 구현 cont’d

Page 16: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

16

컴퍼넌트 소스 코드

컴퍼넌트 기능 구현을 위한 부분과

RIA 런타임의 컴퍼넌트 Adapter 와의

통신을 위한 Skeleton 부분으로 구성

이진목적코드 : C++, C#, Java 등

결합 (Composite) 컴퍼넌트 : RDL 코드

RDL 결합 컴퍼넌는 소스코드 컴파일

과정없이 배포 .

RDL :RIA Description Language

RIA Component 구현 cont’d

Page 17: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

17

컴퍼넌트의 메타 정보

컴퍼넌트 모델에서 메타 정보를 관리하는

RIAMClass 클래스 , Field 클래스 , Method

클래스 , EventHandler 클래스를 상속하여

구현

ECMAScript 코드로 구현

컴퍼넌트 저장소 HTTP /1.1 지원 웹 서버 컴퍼넌트 구현체 (바이너리 , RDL) / 컴퍼넌

트 메타정보 / 환경 화일 RIA 플랫폼에서 컴퍼넌트의 배포및 설치를

위해 접근 .

RIA Component 구현 cont’d

Page 18: RIA Compopnent Model

RIA 기술동향과 한국RIA 표준안설명회

18

배포를 위한 환경 정보

Div 컴퍼넌트와 Botton “컴퍼넌트로 구성된 XComCmg.dll” 컴 퍼넌트 구현체에 대한 환경 정보 예 .

<ComponentRepository modulename="RIAVendor.XComCmp" version = "1.0.0.0" type = "application/dll" href = "http://localhost:8080/components/XComCmp.dll"> <Component name = "div" webidl = "http://localhost:8080/components/div.widl"/>

<Component name = "button" webidl = "http://localhost:8080/components/button.widl"/>

</ComponentRepository>

RIA Component 구현 cont’d