RIA Description Language(09.11.04)
Upcoming SlideShare
Loading in...5
×
 

RIA Description Language(09.11.04)

on

  • 1,130 views

To propose standard RIA programming specification.

To propose standard RIA programming specification.

Statistics

Views

Total Views
1,130
Views on SlideShare
1,129
Embed Views
1

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 정보통신성장기술사업 (IT 산업기술지원 ) 제안서 발표회에 참여할 수 있도록 배려해 주셔서 감사 드립니다 . 저는 차세대 RIA 플랫폼인 XPlatform 2.0 개발 사업의 총괄책임을 맡은 투비소프트의 김 시만 입니다 . XPLATFORM 2.0/ 정보통신성장기술개발사업 제안서

RIA Description Language(09.11.04) RIA Description Language(09.11.04) Presentation Transcript

  • RIA 기술 언어 (RIA Description Language) 2009.11.06 S/W 기술 표준화 포럼 차상철 [email_address]
  • Agenda 1 2 3 4 5 RDL (RIA Description Language) 목적 RDL (RIA Description Language) 구성 RDL 엘리먼트 - Class … RDL 엘리먼트 - Application … RDL 엘리먼트 - DataModel …
    • Adobe Flex / Air
      • MXML / ActionScript
    • MS Slilverlight
      • XAML / C#, VB.NET
    • TOBESOFT XPLATFORM
      • XML / ECMAScript
    • Ajax
      • HTML / CSS / JavaScript (ECMAScript)
    • XUL , Curl Language, LXZ, …
    RIA & Programming Language
    • 기업 IT 자산 (IT Asset) 의 보호 / 재사용
    • 기업 IT 환경을 반영하는 기능적 특성을 구현할 수 있는 RIA 개발 언어 정의
    • 기존 RIA 프로그래밍 언어의 문법적 특성과 의미적 속성을 반영하여 상호 호환 가능한 언어
    RDL (RIA Description Language) 목적 XAML C# MXML ActionScript RDL
    • Structural Part
      • XML
      • Application Structure
      • Abstract Syntax / XML Element & Attributes
    • Behavioral Part
      • JavaScript / ECMAScript
      • Logic Implementation
      • Event Interaction
      • Symantec Property
    RDL (RIA Description Language) 구성
    • Name Space (xml:ns)
    • Resource Location
    • Class
    • Member Variables
    • Member Functions
    • Style Sheet
    • Resource
    • EventMap
    • DataModel
    RDL (RIA Description Language) 소개
    • Application
      • application
      • initialize
        • engine
        • http / proxy
        • language
        • security
      • variable
      • mainframe
      • frameset / frame
    • 리소스 로케이션 정보를 외부에서 참조
    • <link rel=”Locations” href=&quot;locations.rel&quot; type=&quot;text/rdl&quot;/>
    • 리소스 로케이션 정보를 직접 정의
    Resource Location 정의 Element / Attr Description ID 리소스 로케이션 고유 식별자 Type 리소스 로케이션 형식 URL 참조할 리소스 로케이션의 위치 Cachelevel 리소스 로케이션 캐쉬여부 Codepage 리소스 로케이션에 적용할 문자셋 Language 리소스 로케이션에 적용할 언어 Version 리소스 로케이션에 적용할 버젼 CommunicationVersion Runtime 에 사용할 통신 모듈의 버젼
  • Class 및 변수 정의 Class Name Name Space 에서 고유한 클래스 이름 Scope Public / Private Extends 상속받는 클래스 Implements 구현할 인터페이스 Version 클래스 버젼 Comment 클래스에 대한 설명 [Variable] 정의할 변수의 데이터 형 또는 클래스 이름 Id 멤버 변수 이름 Scope public / protected / private Value 초기화 값 Readonly 읽기 전용 여부 Comment 변수에 대한 설명
  • Function & Parameter 정의 Method Name 멤버 함수 이름 Scope public / protected / private ReturnType 반환 자료형 Comment 멤버 함수에 대한 설명 Parameter Name Member 함수 Parameter 이름 Type 데이터 형 Comment Member Function Parameter 에 대한 설명
    • <class name=“student” scope=“public” extends=“person” version=“1.2”>
    • <string id=“id” scope =“public” value = “00000000” readonly=“false”/>
    • <int id=“age” scope =“public” value = “0” readonly=“false”/>
    • <dept id=“major” scope =“public”/>
    • <method name=“goShcool” scope=“public” returntype=“bool”>
    • <parameter name=“weather” type=“string”/>
    • <script> <![CDATA[
    • bool bGoShool = true ;
    • if (weather==“rainy”) {
    • bGoShool = false ;
    • }
    • return bGoSchool ;
    • ]]></script>
    • </method>
    • </class>
    Class 정의 예제
    • Style Sheet 클래스 이름
    • 속성
    • 속성값의 의미와 속성값에 대한 해석은 W3C 의 권고안을 기준으로 함
    • W3C 의 CSS2 기술권고안은 Cascading Style Sheet, level2 CSS Specification ( http://www.w3.org/TR/1998/REC-CSS2-19980512/ )
    Style Sheet 정의 Edit { background : #ffffffff; border : 1px solid #a1b6c5ff; bordertype : round 3 3; padding : 5 0 0 0; }
  • Application 정의 Application Id RIA 응용프로그램 구분자 Version RIA 응용프로그램 버젼 / 배포에 사용 Comment 설명 Initialize Engine RIA 응용 실행 런타임 정보 CommThreadCount 통신 쓰레드 갯수 Http RIA 응용의 HTTP 통신 서버 정보 Proxy 프록시 서버 정보 CacheDir RIA 응용 실행 런타임의 작업 경로 Resource RIA 응용에서 사용하는 리소스 정보 정의 ErrorPath 실행 중 오류가 발생된 경우 로그 정보 기록 경로 TraceMode 디버그 모드 동작 여부 Language 사용 언어 문자셋 Security 사용자의 로그인 및 인증 정보
    • <Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”>
    • <Initialize>
    • ……
    • </Initialize>
    • <Variable>
    • ……
    • </Variable>
    • <MainFrame>
    • ……
    • </MainFrame>
    • <Script>
    • ……
    • </Script>
    • <EventMap>
    • ……
    • </EventMap>
    • </Application>
    Application 정의 + + + + + Application 초기화 변수 선언 MainFrame 정의 ECMA Script 영역 / 함수 / 이벤트 핸들러 이벤트 맵
    • <Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”>
    • <Initialize>
    • <Engine version=“” URL=“”/>
    • <CommThreadCount>3 </CommThreadCount>
    • <Http retry=“3” timeout=“0” keeyalive=“false”/>
    • <Proxy return”3” timeout = “3000”/>
    • <CacheDir>svr::app/cache</CacheDir>
    • <Resource>
    • <image id=“yellog_back”>
    • <locationid>image</locationid>
    • <URL>yellow_back.png</URL>
    • </image>
    • </Resource>
    • <ErrorPath>svr::app/errorlog</ErrorPath>
    • <TraceMode>true</trace>
    • <Language Lang=“Korean” CodePage=“euc-kr”/>
    • <Security>
    • <login style=“session” formURL=“svr::longin.xml”/>
    • </Security>
    • </Initialize >
    Application 정의 - Application 초기화
    • <Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”>
    • <Initialize>
    • </Initialize>
    • <variable>
    • <long id=&quot;idletime&quot; value=&quot;600&quot; scope=&quot;public&quot; comment=&quot; 시스템 Idle Time 설정 &quot;/>
    • </variable>
    • <link rel=&quot;variable&quot; path=&quot;file::default_variables.xml&quot; type=&quot;text/rdl&quot;/>
    • <MainFrame>
    • </MainFrame>
    • <Script>
    • </Script>
    • <EventMap>
    • </EventMap>
    • </Application>
    •  
    Application 정의 + - + + + 변수 선언 & 초기화
    • <Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”>
    • <Initialize>
    • </Initialize>
    • <variable>
    • </ variable >
    • < mainframe id=&quot;mainframe&quot;>
    • < initialize >
    • < themeid ></themeid> -- application : look & feel
    • < style >closeeffect:;defaultfont:;openeffect:;resizable:true;</style>
    • < position >absolute;x:0;y:0;width:1024;height:768</position>
    • < title visible=&quot;true&quot; text=&quot;RIAM Sample Application&quot;/>
    • < minimizebutton visible=&quot;true&quot;/>
    • < maximizebutton visible=&quot;true&quot;/>
    • < closebutton visible=&quot;true&quot;/>
    • < statusbar visible=&quot;true&quot; text=&quot;&quot;/>
    • </ initialize >
    • <frameset id=&quot;FrameSet0&quot; src=&quot;Another.xml&quot;>
    Application 정의 + - + + MainFrame 정의 / 초기화
    • <Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”>
    • <Initialize>
    • </Initialize>
    • <variable>
    • </ variable >
    • <mainframe id=&quot;mainframe&quot;>
    • <initialize>
    • </initialize>
    • < frameset id=&quot;FrameSet0&quot; src=&quot;Another.xml“>
    • < initialize >
    • < style>border:1 solid #808080;resizable:true;scrolling:auto;</style>
    •   < title visible=&quot;true&quot; text=&quot;RIAM Sample Application&quot;/>
    • < layout type='GRID&quot; frameborder=&quot;yes&quot; framespacing=&quot;1&quot;>
    • < rows>70 ,*, 2*</rows>
    • </ layout >
    • </ initialize >
    • <frame id=&quot;toolbarframe“>
    • </frame>
    Application 정의 + - + + + - - FrameSet 정의
    • <frameset id=&quot;FrameSet0&quot; src=&quot;Another.xml&quot;>
    • <initialize>
    • </initialize>
    • < frame id=&quot;toolbarframe&quot;>
    • < initialize >
    • < style > border:1 solid #808080;resizable:true;scrolling:auto;</style>
    • < title visible=&quot;true&quot; text=&quot;RIAM Sample Application&quot;/>
    • < src > Base::Toolbar.xml</src>
    • </ initialize >
    • </ frame >
    • <frame id=&quot;childframe&quot;>
    • <initialize>
    • <style>border:1 solid #808080;resizable:true;scrolling:auto;</style>
    • <title visible=&quot;true&quot; text=&quot;...&quot;/>
    • <src>Base::Work.xml</src>
    • </initialize>
    • </frame>
    • </frameset>
    Application 정의 + - - - Frame 정의
  • Event Map 정의
    • < EventMap >
    • < Sync type=&quot;biSync&quot; srcObj=&quot;frmList&quot; sproperty=&quot;type&quot; targetObj=&quot;dsCondition&quot; tproperty=&quot;type&quot;/>
    • < Sync type=&quot;biSync&quot; srcObj=&quot;frmList&quot; sproperty=&quot;value&quot; targetObj=&quot;dsCondition&quot; property=&quot;value&quot;/>
    •   < Event name=&quot;onLoad&quot; srcObj=&quot; frmList &quot; function=&quot; frmList_onload&quot;/>
    • < Event name=&quot;onClick&quot; src=&quot;Button00&quot; function=&quot;Button00_onclick&quot;/>
    • </ EventMap >
    EventMap Sync 컴퍼넌트의 Data Binding 을 위한 Sync 엘리먼트 type Sync 이벤트 타입 biSync / uniSync srcObj / sproperty 소스 오브젝트 ID / 연동 대상 속성 이름 targetObj / tproperty 목포 오브젝트 ID / 연동 대상 속성 이름 Event Device 및 Application 이벤트를 위한 Event 엘리먼트 name 이벤트 이름 / 이벤트 타입 srcObj 이벤트가 발생되는 오브젝트 function 이벤트 핸들러 함수
  • Data Model
    • <Parameters>
    • < Parameter id=”service”>stock</Parameter>
    • <Parameter id=”method”>search</Parameter>
    • </Parameters>
    • < Dataset id=”output”>
    • < ColumnInfo >
    • < Column id=”stockCode” size=”5” type=”STRING”/>
    • < Column id=”currentprice” size=”10” type=”INT”/>
    • </ ColumnInfo >
    • < Rows >
    • < Row >
    • < Col id=” stockCode”>10001</Col>
    • < Col id=”currentprice”>5700</Col>
    • </ Row >
    • < Row >
    • < Col id=” stockCode”>10002</Col>
    • < Col id=”currentprice”>14500</Col>
    • </ Row >
    • </ Rows >
    • </ Dataset >
    • Parameter (Name = Value)
    • Table 형식 데이터 Schema
    • Table 형식 데이터
    stockCode (String [5]) currentPrice (Integer) 1 10001 5700 2 10002 14500