20
RIA 기기 기기 (RIA Description Language) 2009.11.06 S/W 기기 기기기 기기 기기기 [email protected]

RIA Description Language(09.11.04)

Embed Size (px)

DESCRIPTION

To propose standard RIA programming specification.

Citation preview

Page 1: RIA Description Language(09.11.04)

RIA 기술 언어(RIA Description

Language)

2009.11.06

S/W 기술 표준화 포럼 차상철

[email protected]

Page 2: RIA Description Language(09.11.04)

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

2

Agenda

1

2

3

4

5

RDL (RIA Description Language) 목적

RDL (RIA Description Language) 구성

RDL 엘리먼트 - Class …

RDL 엘리먼트 - Application …

RDL 엘리먼트 - DataModel …

Page 3: RIA Description Language(09.11.04)

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

3

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

Page 4: RIA Description Language(09.11.04)

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

4

기업 IT 자산 (IT Asset) 의 보호 / 재사용 기업 IT 환경을 반영하는 기능적 특성을 구현할

수 있는 RIA 개발 언어 정의 기존 RIA 프로그래밍 언어의 문법적 특성과

의미적 속성을 반영하여 상호 호환 가능한 언어

XAMLC#

MXMLActionScript RDL

RDL(RIA Description Language) 목적

Page 5: RIA Description Language(09.11.04)

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

5

Structural Part XML Application Structure Abstract Syntax / XML Element &

Attributes

Behavioral Part JavaScript / ECMAScript Logic Implementation Event Interaction Symantec Property

RDL(RIA Description Language) 구성

Page 6: RIA Description Language(09.11.04)

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

6

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

Page 7: RIA Description Language(09.11.04)

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

7

리소스 로케이션 정보를 외부에서 참조<link rel=”Locations” href="locations.rel"

type="text/rdl"/>

리소스 로케이션 정보를 직접 정의

Resource Location 정의

Element / Attr Description

ID 리소스 로케이션 고유 식별자

Type 리소스 로케이션 형식

URL 참조할 리소스 로케이션의 위치

Cachelevel 리소스 로케이션 캐쉬여부

Codepage 리소스 로케이션에 적용할 문자셋

Language 리소스 로케이션에 적용할 언어

Version 리소스 로케이션에 적용할 버젼

CommunicationVersion

Runtime 에 사용할 통신 모듈의 버젼

Page 8: RIA Description Language(09.11.04)

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

8

Class 및 변수 정의ClassName Name Space 에서 고유한 클래스 이름

Scope Public / Private

Extends 상속받는 클래스

Implements 구현할 인터페이스

Version 클래스 버젼

Comment 클래스에 대한 설명

[Variable] 정의할 변수의 데이터 형 또는 클래스 이름

Id 멤버 변수 이름

Scope public / protected / private

Value 초기화 값

Readonly 읽기 전용 여부

Comment 변수에 대한 설명

Page 9: RIA Description Language(09.11.04)

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

9

Function & Parameter 정의

MethodName 멤버 함수 이름

Scope public / protected / private

ReturnType 반환 자료형

Comment 멤버 함수에 대한 설명

ParameterName Member 함수 Parameter 이름

Type 데이터 형

Comment Member Function Parameter 에 대한 설명

Page 10: RIA Description Language(09.11.04)

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

10

<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 정의 예제

Page 11: RIA Description Language(09.11.04)

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

11

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;}

Page 12: RIA Description Language(09.11.04)

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

12

Application 정의ApplicationId RIA 응용프로그램 구분자

Version RIA 응용프로그램 버젼 / 배포에 사용

Comment 설명

InitializeEngine RIA 응용 실행 런타임 정보CommThreadCount 통신 쓰레드 갯수Http RIA 응용의 HTTP 통신 서버 정보

Proxy 프록시 서버 정보

CacheDir RIA 응용 실행 런타임의 작업 경로

Resource RIA 응용에서 사용하는 리소스 정보 정의

ErrorPath 실행 중 오류가 발생된 경우 로그 정보 기록 경로

TraceMode 디버그 모드 동작 여부

Language 사용 언어 문자셋

Security 사용자의 로그인 및 인증 정보

Page 13: RIA Description Language(09.11.04)

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

13

<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 영역 / 함수 / 이벤트 핸들러++

이벤트 맵

Page 14: RIA Description Language(09.11.04)

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

14

<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 초기화

Page 15: RIA Description Language(09.11.04)

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

15

<Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”> <Initialize> </Initialize>

<variable> <long id="idletime" value="600" scope="public" comment="

시스템 Idle Time 설정 "/> </variable> <link rel="variable" path="file::default_variables.xml"

type="text/rdl"/>

<MainFrame> </MainFrame>

<Script> </Script>

<EventMap> </EventMap></Application>

 

Application 정의

++

변수 선언 & 초기화

--

++

++

++

Page 16: RIA Description Language(09.11.04)

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

16

<Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”>

<Initialize>

</Initialize>

<variable>

</ variable >

<mainframe id="mainframe">

<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="true" text="RIAM Sample Application"/>

<minimizebutton visible="true"/>

<maximizebutton visible="true"/>

<closebutton visible="true"/>

<statusbar visible="true" text=""/>

</initialize> <frameset id="FrameSet0" src="Another.xml">

Application 정의

++

MainFrame 정의 / 초기화--

++

++

Page 17: RIA Description Language(09.11.04)

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

17

<Application id=“RIAMApp” version=“1.0.0.1” comment=“RIAM Example”>

<Initialize>

</Initialize>

<variable>

</ variable >

<mainframe id="mainframe">

<initialize>

</initialize>

<frameset id="FrameSet0" src="Another.xml“>

<initialize>

<style>border:1 solid #808080;resizable:true;scrolling:auto;</style>

  <title visible="true" text="RIAM Sample Application"/>

<layout type='GRID" frameborder="yes" framespacing="1">

<rows>70,*, 2*</rows>

</layout>

</initialize> <frame id="toolbarframe“>

</frame>

Application 정의

++

FrameSet 정의--

++

++

++

--

--

Page 18: RIA Description Language(09.11.04)

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

18

<frameset id="FrameSet0" src="Another.xml"> <initialize> </initialize>

<frame id="toolbarframe">

<initialize>

<style> border:1 solid #808080;resizable:true;scrolling:auto;</style>

<title visible="true" text="RIAM Sample Application"/>

<src> Base::Toolbar.xml</src>

</initialize>

</frame> <frame id="childframe">

<initialize> <style>border:1 solid #808080;resizable:true;scrolling:auto;</style> <title visible="true" text="..."/> <src>Base::Work.xml</src> </initialize> </frame> </frameset>

Application 정의

++--

--

--

Frame 정의

Page 19: RIA Description Language(09.11.04)

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

19

Event Map 정의

EventMapSync 컴퍼넌트의 Data Binding 을 위한 Sync 엘리먼트

type Sync 이벤트 타입 biSync / uniSync

srcObj / sproperty 소스 오브젝트 ID / 연동 대상 속성 이름

targetObj / tproperty

목포 오브젝트 ID / 연동 대상 속성 이름

Event Device 및 Application 이벤트를 위한 Event 엘리먼트

name 이벤트 이름 / 이벤트 타입

srcObj 이벤트가 발생되는 오브젝트

function 이벤트 핸들러 함수<EventMap>

<Sync type="biSync" srcObj="frmList" sproperty="type" targetObj="dsCondition" tproperty="type"/>

<Sync type="biSync" srcObj="frmList" sproperty="value" targetObj="dsCondition" property="value"/>

  <Event name="onLoad" srcObj=" frmList " function=" frmList_onload"/>

<Event name="onClick" src="Button00" function="Button00_onclick"/>

</EventMap>

Page 20: RIA Description Language(09.11.04)

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

20

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