RIA Compopnent Model

1,349 views

Published on

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

  • Be the first to comment

  • Be the first to like this

RIA Compopnent Model

  1. 1. RIA 컴퍼넌트 모델 (RIA Component Model) 2009.11.06 S/W 기술 표준화 포럼 차상철 [email_address]
  2. 2. Agenda 1 2 3 4 5 RCM (RIA Component Model) 목적 RCM (RIA Component Model) 범위 RCM Core Component Architecture RIA Platform Component Service RIA Component 구현
  3. 3. <ul><li>이종 RIA 플랫폼간 Component Interoperability 제공을 위한 표준 기술 명세 정의 </li></ul>RCM (RIA Component Model) 목적 개인별 판매 실적 관리 Main App. By Silverlight XPLATFORM / HRM Composite Flex / Chart Control Silverlight / Data Model Silverlight / Grid Control X
  4. 4. <ul><li>컴퍼넌트 재사용 </li></ul><ul><li>Vender Providing RIA 컴퍼넌트 </li></ul><ul><ul><li>UI Controls – Grid, Chart, Report, etc </li></ul></ul><ul><ul><li>네트워크 , Device Interface Controls </li></ul></ul><ul><ul><li>Write Once Run Anywhere </li></ul></ul><ul><li>User Requirement Realizing RIA 컴퍼넌트 </li></ul><ul><ul><li>Domain Specific and On Site </li></ul></ul><ul><ul><li>User Requirement Realizing & Implementation </li></ul></ul><ul><ul><li>Composite Component </li></ul></ul><ul><ul><li>Client Side Oriented Service Integration </li></ul></ul>RCM (RIA Component Model) 목적
  5. 5. <ul><li>RIA Core Component Architecture </li></ul><ul><ul><li>RIA Core Component Structure 준용 </li></ul></ul><ul><li>RIA Component 구현 </li></ul><ul><ul><li>Interoperability 제공을 위한 플랫폼 서비스 </li></ul></ul><ul><ul><li>WebIDL 기반 Component Interface 명세 </li></ul></ul><ul><ul><li>RIA 컴퍼넌트 구현 절차 </li></ul></ul>RCM (RIA Component Model) 범위
  6. 6. RCM Core Component Architecture Interface Description Object - RIA 컴퍼넌트 를 식별 (UUID : RFC 4122) Component - 수명주기 (Lifecycle) 관리 - 이벤트 핸들러 관리 UIComponent - Presentation / Style 관리 - 데이터 관리 .
  7. 7. RCM Core Component Architecture <ul><li>Object Interface </li></ul><ul><ul><li>최상위 클래스 </li></ul></ul><ul><ul><li>Registry / Repository </li></ul></ul><ul><ul><li>UUID / RFC 4122 </li></ul></ul><ul><li>interface Object { </li></ul><ul><li>attribute DOMString id ; </li></ul><ul><li>} ; </li></ul>
  8. 8. RCM Core Component Architecture <ul><li>Component Interface </li></ul><ul><ul><li>컴퍼넌트 생명주기 </li></ul></ul><ul><ul><li>컴퍼넌트 생성 / 초기화 / 소멸 </li></ul></ul><ul><ul><li>이벤트 관리 (DOM Level 3 모델 준용 ) </li></ul></ul><ul><ul><ul><li>이벤트 핸들러의 등록 , 삭제 , 실행 </li></ul></ul></ul><ul><ul><ul><li>EventTarget Interface 구현 </li></ul></ul></ul><ul><ul><li>http://www.w3.org/TR/DOM-Level-3-Events/ </li></ul></ul>
  9. 9. Meta-Info : RIAMClass 클래스 <ul><li>컴퍼넌트의 메타정보 제공 </li></ul><ul><li>UML 의 메타 클래스 참조 </li></ul><ul><li>OMG UML Infrastructure 2.1.2 </li></ul><ul><li>OMG UML Superstructure 2.1.2 </li></ul>UML (M2) RIAM Class 클래스 RIAMClass 클래스 Property 클래스 Field 클래스 Operation 클래스 Method 클래스 EventHandler 클래스
  10. 10. Meta-Info : RIAMClass 클래스
  11. 11. RIA Platform Component Service <ul><li>RIA Native Component </li></ul><ul><ul><li>RIA 표준 인퍼페이스를 준용하여 설계 및 구현 하거나 기존 컴퍼넌트에 인터페이스를 일치 </li></ul></ul><ul><li>RIA Delegate Component </li></ul><ul><ul><li>이형 RIA 플랫폼 컴퍼넌트 및 OS Native 컴퍼넌트 제공 서비스 이용 </li></ul></ul><ul><ul><li>Bridge / Adapter 를 통하여 플랫폼 의 컴퍼넌트 서비스 호출 </li></ul></ul>
  12. 12. RIA Platform Component Service <ul><li>O/S Communication Bus </li></ul><ul><ul><li>RIA 런타임 간 Component Service 요청을 위한 통신 경로 </li></ul></ul>O/S Native Component * ActiveX, DLL, so 와 같은 운용체계 제공 컴퍼넌트 Host RIA Runtime Guest RIA Runtime
  13. 13. RIA Component 구현
  14. 14. <ul><li>컴퍼넌트 인터페이스 정의 화일 (.widl) </li></ul><ul><li>컴퍼넌트의 속성 (Attribute), 동작 (Operation, Behavior), 이벤트를 WebIDL 로 기술 (Describe) </li></ul><ul><li>W3C 의 웹 표준을 준용하여 OMG(Object Management Group) 의 IDL (Interface Description Language) 를 확장한 WebIDL 사용 </li></ul>RIA Component 구현 cont’d
  15. 15. <ul><li>WebIDL 컴파일러 </li></ul><ul><li>컴퍼넌트 인터페이스 정의 (.widl) 를 해석하여 컴퍼넌트 템플릿 코드 생성 </li></ul><ul><li>목표 시스템에 따라 프로그래밍 언어 및 운영체계 (O/S) 에 적합한 소스코드를 생성 </li></ul><ul><li>컴퍼넌트의 속성과 오퍼레이션 구현을 위한 컴퍼넌트 기능 영역 </li></ul><ul><li>RIA 런타임과의 인터페이스를 위한 Skeleton 영역 </li></ul>RIA Component 구현 cont’d
  16. 16. <ul><li>컴퍼넌트 소스 코드 </li></ul><ul><li>컴퍼넌트 기능 구현을 위한 부분과 RIA 런타임의 컴퍼넌트 Adapter 와의 통신을 위한 Skeleton 부분으로 구성 </li></ul><ul><li>이진목적코드 : C++, C#, Java 등 </li></ul><ul><li>결합 (Composite) 컴퍼넌트 : RDL 코드 </li></ul><ul><li>RDL 결합 컴퍼넌는 소스코드 컴파일 과정없이 배포 . </li></ul><ul><li>RDL :RIA Description Language </li></ul>RIA Component 구현 cont’d
  17. 17. <ul><li>컴퍼넌트의 메타 정보 </li></ul><ul><li>컴퍼넌트 모델에서 메타 정보를 관리하는 RIAMClass 클래스 , Field 클래스 , Method 클래스 , EventHandler 클래스를 상속하여 구현 </li></ul><ul><li>ECMAScript 코드로 구현 </li></ul><ul><li>컴퍼넌트 저장소 </li></ul><ul><li>HTTP /1.1 지원 웹 서버 </li></ul><ul><li>컴퍼넌트 구현체 ( 바이너리 , RDL) / 컴퍼넌트 메타정보 / 환경 화일 </li></ul><ul><li>RIA 플랫폼에서 컴퍼넌트의 배포및 설치를 위해 접근 . </li></ul>RIA Component 구현 cont’d
  18. 18. <ul><li>배포를 위한 환경 정보 </li></ul><ul><li>Div 컴퍼넌트와 Botton 컴퍼넌트로 구성된 “ XComCmg.dll” 컴퍼넌트 구현체에 대한 환경 정보 예 . </li></ul><ul><li><ComponentRepository </li></ul><ul><li>modulename=&quot;RIAVendor.XComCmp&quot; </li></ul><ul><li>version = &quot;1.0.0.0&quot; </li></ul><ul><li>type = &quot;application/dll&quot; </li></ul><ul><li>href = &quot;http://localhost:8080/components/XComCmp.dll&quot;> </li></ul><ul><li><Component name = &quot;div&quot; </li></ul><ul><li>webidl = &quot; http://localhost:8080/components/div.widl &quot;/> </li></ul><ul><li><Component name = &quot;button&quot; </li></ul><ul><li>webidl = &quot; http://localhost:8080/components/button.widl &quot;/> </li></ul><ul><li></ComponentRepository> </li></ul>RIA Component 구현 cont’d

×