KR100375529B1 - 윈도우 어플리케이션용 스킨 시스템 - Google Patents

윈도우 어플리케이션용 스킨 시스템 Download PDF

Info

Publication number
KR100375529B1
KR100375529B1 KR10-2000-0034681A KR20000034681A KR100375529B1 KR 100375529 B1 KR100375529 B1 KR 100375529B1 KR 20000034681 A KR20000034681 A KR 20000034681A KR 100375529 B1 KR100375529 B1 KR 100375529B1
Authority
KR
South Korea
Prior art keywords
window
skin
data
xml
application
Prior art date
Application number
KR10-2000-0034681A
Other languages
English (en)
Other versions
KR20020000569A (ko
Inventor
이택행
Original Assignee
주식회사 나우콤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 나우콤 filed Critical 주식회사 나우콤
Priority to KR10-2000-0034681A priority Critical patent/KR100375529B1/ko
Publication of KR20020000569A publication Critical patent/KR20020000569A/ko
Application granted granted Critical
Publication of KR100375529B1 publication Critical patent/KR100375529B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 XML(엑스엠엘)을 이용한 윈도우 어플리케이션용 스킨 시스템에 관한 것으로서, 윈도우의 구성과 동작에 관한 정보를 XML로 작성된 자료와 부속 멀티미디어 자료로 표현하여 윈도우 어플리케이션이 실행될 때 윈도우 어플리케이션이 제공한 스킨정보를 받아 스킨데이터가 담긴 XML문서와 부속데이터를 수집하는 자료 관리자, 자료 관리자가 전달한 윈도우 정보(윈도우의 구성과 동작에 관한 정보)가 담긴 XML문서를 해석하는 XML 구문해석부(parser), 상기 XML 구문해석부를 통해 해석된 XML문서에서 윈도우 개체를 생성하고 관리하는 메타윈도우 엔진부, 상기 메타 윈도우 엔진부에서 생성된 윈도우 개체별로 XML 문서 내에 스크립으로 기록된 이벤트 프로시져를 수행하는 스크립 엔진부, 상기 스킨 자료 관리부를 구동하는 어플리케이션부, 상기 스킨 자료 관리부에게 원격지에 있는 스킨정보를 제공하는 원격 자료 서버부로 구성함으로써 어플리케이션을 수정할 필요가 없고 별도로 독립되어 있는 스킨정보의 수정만으로 유저인터페이스(이하 UI)의 수정이 가능하고 아울러 스킨정보는 서로 다른 윈도우시스템 간이라도 호환이 가능하기 때문에 서로 다른 윈도우시스템으로의 이식이 편리한 효과를 갖는다.

Description

윈도우 어플리케이션용 스킨 시스템{skin system for Window applications}
본 발명은 XML을 이용한 윈도우 어플리케이션용 스킨 시스템에 관한 것이다.
오늘날 개인용 컴퓨터(personal computer, 이하 PC라 칭함)를 비롯해서 웹 TV, 디지털가전, 은행점포의 자동화 기기(ATM) 등 많은 컴퓨터 시스템들이 그래픽 사용자 인터페이스(Graphic user interface, 이하 GUI라 칭함)인 윈도우(window) 시스템으로 이루어져 있는데, 상기 윈도우시스템이란 멀티윈도우 표시에 의해 각 윈도마다 할당한 응용 프로그램을 차례로 전환하여 실행할 수 있는 것으로 이용자의 필요에 따라 정보를 정리하여 표시하는 기능은 이용자의 인터페이스의 점에서 매우 중요하다.
윈도우시스템의 대표적인 예로 마이크로소프트사의 윈도95, IBM의 OS/2, UNIX 기반의 XWINDOW 등을 꼽을 수 있는데, 기존 윈도우시스템은 각 제품간 서로 다른 방식으로 시스템이 구현되어 있어 호환성이 결여됨에 따라 이 분야의 전문가들이 이기종 컴퓨터시스템에서 이용가능한 광범위한 용도의 윈도우시스템 어플리케이션을 개발하는 경우 이기종 컴퓨터시스템의 운영체제(Operating System, 이하 OS라 칭함)의 차이로 인한 어플리케이션의 비즈니스 로직의 실행코드 포팅(porting)뿐 아니라 윈도우시스템간 그래픽 사용자 인터페이스(GUI) 요소나 제어방법의 차이를 고려한 프리젠테이션 로직의 실행코드들의 재설계를 필요로 하는 기술적 어려움과 비용의 손실을 감수해야 하는 문제가 있다.
또한 휴대폰과 같은 공산품의 경우 공급초기에는 공급과 수요물량이 적고 제품의 기능이 우선시되기 때문에 모델이 다양하지 못하지만 시장이 확대되고 경쟁이 심화되면 소비자는 개개인의 개성에 따라 다양한 모델을 요구하게 되는데, 이러한 공산품의 예와 마찬가지로 컴퓨터시스템에 있어서도 하드웨어 제조기술의 급격한 발전으로 인한 가격하락과 전세계적인 인터넷의 보급으로 개인용 컴퓨터의 사용이 생활화 됨에 따라 획일화된 윈도우시스템에서 보다 다양하고 개개인의 개성을 반영하는 어플리케이션들이 속속 등장하고 있으며, 그리고 MP3 데이터를 복호화(decode)하여 사운드카드로 연주하여 주는 어플리케이션 중에 대표적으로 꼽히는 winamp와 같은 프로그램은 단순한 연주기(player)로의 기능 뿐만 아니라 컴퓨터를 사용하는 사용자의 취향에 따라 동작에 관한 선택사항들을 결정할 수 있고 아울러 윈도우내의 모든 화면요소에 대한 취사선택, 변경이 가능하도록 지원하는 실정이다.
종래에는 윈도우시스템의 개인화지원, 윈도우어플리케이션의 개인화지원 및 특정 윈도우시스템의 일부분만을 특화시켜 각 윈도우시스템내의 어플리케이션 전체에 반영하는 특수한 개인화지원과 같은 기능이 있는데, 상기 윈도우시스템의 개인화지원은 획일화된 윈도우에서 화면색, 문자폰트, 윈도우타이틀크기, 경계선의 너비 등 극히 제한적인 것만을 지원하며 또한 이러한 설정은 각각의 윈도우 별로 설정가능한 것이 아니라 시스템의 모든 윈도우에게 동일하게 적용되는 단점이 있으며, 상기 윈도우어플리케이션의 개인화지원기능은 각 개별 윈도우 별로 원하는 GUI 구성이 가능하나 현실적으로 어플리케이션이 본래 목적하는 비즈니스로직의 구현보다도 오히려 부수적인 개인화 기능에 더 많은 비용을 투입해야 하는 주객이 전도되는 결과를 초래할 수 있는 단점을 가진다.
또한 상기 특정 윈도우시스템의 일부분만을 특화시켜 각 윈도우 시스템내의 어플리케이션 전체에 반영하는 특수한 개인화지원기능은, 기본적으로 윈도우시스템의 개인화 기능을 쉽게 이용할 수 있도록 응용한 것에 머무르며 결국 윈도우시스템의 개인화 기능이 갖는 단점을 대부분 동일하게 갖게 되며 개별 어플리케이션의 개인화나 독립적으로 구현된 GUI를 침해함으로써 윈도우화면이 손상되는 등의 문제를 야기할 수 있다.
한편 인터넷을 대중에게 보급한 견인차이자 윈도우시스템의 대안으로 제시되는 HTML 브라우져는, HTML 문서를 원격의 HTTP 서버로부터 전송받거나 파일로부터 읽어들여 이를 GUI로 표현해주는 기능을 수행하는데, 상기 HTML은 XML과 마찬가지로 SGML로 정의된 문서형 정세부(Document Type Definition, 이하 DTD라 칭함)로 대부분의 기능이 화면(혹은 인쇄물)상의 출력형식의 표현에 국한되기 때문에 윈도우 시스템의 GUI 등을 표현하고 처리하는데 적합하지 못한 단점이 있다.
상기 단점을 해결하기 위해 본 발명은, XML을 이용하여 윈도우 어플리케이션을 위한 스킨 시스템을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위해 본 발명은, 윈도우환경에서 실행되는 어플리케이션으로부터 스킨데이터가 내재된 XML 문서와 부속데이터를 수집하는 스킨 자료 관리부, 상기 스킨 자료 관리부에서 수집된 스킨데이터를 해석하여 XML DOM API로 접근 가능한 데이터 구조로 변환시키는 XML 구문 해석부, 상기 스킨자료관리부에 의해 수집된 XML 문서와 부속데이터를 근거로 윈도우 오브젝트 및 어플리케이션 프록시 오브젝트의 개체를 생성하고 관리하는 메타윈도우 엔진부 및 상기 메타윈도우 엔진부에서 생성된 윈도우 오브젝트 및 어플리케이션 프록시 개체별로 XML 문서 내에 스크립으로 이벤트 프로시져를 수행하는 스크립 엔진부를 포함하는 것을 특징으로 한다.
상기 윈도우시스템용 어플리케이션은 공학계산, 통신, 수치제어 등의 어플리케이션이 수행해야 할 목적에 따른 프로그램부분과 윈도우시스템에 소속되어 자신의 윈도우를 제어하고 윈도우시스템의 요구에 대해 응답하는 프로그램부분으로 나눌 수 있는데, 하지만 애니메이션과 같은 목적의 어플리케이션은 윈도우를 제어하는 부분이 프로그램의 주된 부분일 수 있으며, 이러한 GUI가 주된 목적인 어플리케이션들도 윈도우의 프레임이나 메뉴, 툴바 등과 같은 윈도우 요소들을 표현, 관리하는 기능이 요구되며 스킨시스템이 이러한 부분을 대신 수행할 수 있다.
도 1 은 본 발명이 적용되는 스킨 시스템 구조도,
도 2 은 본 발명에 따른 상기 도 1의 스킨 시스템 중 스킨 자료 관리부의 상 세 구조도,
도 3 은 본 발명에 따른 상기 도 1의 스킨 시스템 중 메타윈도우엔진부의 상 세 구조도,
도 4 는 본 발명에 따른 스킨시스템이 적용된 어플리케이션이 각각 다른 스 킨 데이터를 로딩하여 실행하였을 때 전혀 다른 윈도우로 표현된 예시도.
* 도면의 주요부분에 대한 부호의 설명
100 : 스킨 자료 관리부 110 : 메타 윈도우 엔진부
120 : XML 구문해석부 130 : 스크립 엔진부
140 : 어플리케이션부 150 : 원격 자료 서버부
160 : 윈도우 시스템부 170 : 서브 어플리케이션부
이하 첨부된 도면을 참조하여 본 발명을 상세히 설명하면 다음과 같다.
도 1 은 본 발명이 적용되는 윈도우 어플리케이션용 스킨 시스템 구조도로서, 어플리케이션별로 해당 어플리케이션의 윈도우 구성정보를 담고 있는 WinML 데이터(data)를 불러들여 해석하고 WinML 데이터를 관리하는 스킨 자료 관리부(100), 상기 스킨 자료 관리부를 구동시키는 어플리케이션부(140), 각 컴퓨터시스템별로 존재하는 윈도우 시스템부(160), 상기 스킨 자료 관리부로부터 해석된 스킨데이터를 바탕으로 윈도우 개체를 생성하고 관리하는 메타윈도우 엔진부(110), 상기 메타윈도우 엔진부에서 생성된 윈도우 개체별로 XML문서내에 스크립으로 기록된 이벤트 프로시져를 수행하는 스크립 엔진부(130), 상기 스킨 자료 관리부로부터 원격지에 존재하는 데이터 요청을 받아 처리하는 원격 자료 서버부(150)로 이루어져 있다.
상기 스킨 자료 관리부(100)는 어플리케이션으로부터 구동되는데, 스킨 자료 관리부 구동시 상기 어플리케이션부(140)로부터 전달받은 스킨(skin) 정보를 통해 스킨윈도우를 생성하기 위한 완벽한 스킨정보를 수집하는데, 이때 상기 스킨 정보는 스킨 데이터를 가르키는 단순 URI이거나 스킨 데이터 자체일 수 있으며, 그 구동상태를 보면, 첫째, 스킨(skin) 정보가 단순한 URI(Universal Resource Identifier)인 경우 URI를 해석하여 URI의 경로가 원격 자료 서버인 경우 원격 자료 서버로 스킨 데이터를 요청하고, URI 경로가 local인 경우 local file system으로부터 스킨 데이터를 읽어들이며, 둘째, 스킨(skin) 정보가 스킨 데이터인 경우 바로 데이터를 해석하는데, 데이터의 해석은 상기 XML 구문해석부(120)에 스킨 데이터를 전달하여 시작되며, XML 구문해석부가 스킨 데이터를 처리하기 위해서 스킨 데이터는 반드시 XML로 작성된 XML DI(DOCUMENT INSTANCE)이어야 한다.
상기 XML 구문해석부(120)로부터 해석된 스킨데이터는 XML DOM API를 통해 접근가능한 데이터구조로 바뀌어 스킨 자료 관리부(100)로 돌아오면 상기 스킨 자료 관리부는 XML DOM API를 통해 스킨데이터에서 루트 엘레먼트(ROOT ELEMENT)부터 윈도우 오브젝트 모델(window object model)에 맞게 데이터를 읽으면서 상기 메타윈도우엔진에 오브젝트(object) 준비를 요청하고, 오브젝트(Object) 생성과정에서 추가적으로 데이터가 필요한 경우 스킨 자료 관리부는 원격 자료 서버나 로컬파일시스템(local file system)으로부터 데이터를 읽어들이며, 루트 엘레먼트(ROOT ELEMENT)로부터 맨 하위 리프 엘레먼트(LEAF ELEMENT)까지 모든 엘레먼트의 해석과 오브젝트 준비가 끝나면 메타윈도우엔진에 윈도우 생성을 지시한다.
상기 XML 구문해석부(120)는 상기 스킨 자료 관리부(100)로부터 전달받은 스킨 데이터를 해석하여 XML DOM API로 접근가능한 데이터구조로 변환하는 기능을 수행하는데, 상기 XML 구문해석부(120)가 정상적인 동작을 수행하기 위해서 상기 스킨 자료 관리부(100)로부터 전달되는 스킨 데이터는 반드시 XML로 작성된 XML DI이어야 하고, DTD 밸리데이션(validation) 작업과 XSL 변환(transformation) 작업을 수행한 후 최종적으로 변환된 XML 데이타는 XML로 작성된 WinML(Window Markup Language) DTD를 만족하는 WinML DI이어야 하며, 상기 XML 구문해석부는 스킨 데이터가 XSL(Extensible Stylesheet Language ) 데이터를 링크하고 있는 경우 XSL데이터를 가져와서(원격 혹은 로컬) XSL변환을 한다.
상기 메타윈도우 엔진부(110)는 상기 스킨 자료 관리부(100)로부터 구동되며 스킨 자료 관리부의 요청에 따라 윈도우 오브젝트와 어플리케이션 프록시 오브젝트와 같은 메타윈도우엔진내의 오브젝트를 생성하고 관리하는 기능을 수행하며, 상기 스크립 엔진부는 상기 메타윈도우 엔진부에 의해 구동되는데 스킨데이터에서 텍스트로 기술되어있는 이벤트나 윈도우오브젝트의 추가메소드 스크립을 해석하고 처리하는 모듈로서 메타윈도우 엔진부에서 등록한 어플리케이션을 비롯한 오브젝트내에 이벤트가 발생하는 경우 해당 이벤트에 지정되어 있는 스크립 문장을 실행하고 스크립 문장을 수행할 때 필요한 경우 메타윈도우엔진내의 오브젝트와 시작 어플리케이션의 메소드를 실행시키거나 특성값(attributes)를 엑세스 한다.
상기 서브 어플리케이션부(170)는 윈도우 UI를 지원하기 위해 스킨시스템을 구동하며 스킨시스템 구동시 스킨시스템이 필요로 하는 스킨정보를 전달하는데, 스킨시스템을 이용하기 위해서 어플리케이션 개발자가 항상 스킨시스템을 구동하는 시작 어플리케이션을 작성할 필요는 없고, 별도의 시작 어플리케이션을 작성하지 않고도 스킨시스템에 포함된 기본 시작어플리케이션을 이용할 수 있다.
상기 원격 자료 서버부(150)는 개인화정보나 스킨데이터, 스킨데이터와 관련있는 멀티미디어 데이터들을 인터넷상에서 관리하여주는 서버로서 보통은 HTTP 프로토콜을 지원하는 월드와이드웹 서버로서, 상기 원격 자료 서버는 업계 표준의 인터넷 프로토콜을 이용하기 때문에 별도의 서버없이 바로 기존 인터넷 환경에 스킨시스템의 적용이 가능하다.
상기 윈도우시스템은 스킨시스템이 윈도우를 만들고 관리해야 하는 대상 시스템인데, 예를 들면 마이크로소프트사의 windows 95/98/NT/2000 이나 UNIX 시스템의 XWINDOW이 상기 윈도우시스템이 될 수 있고, 각 윈도우시스템별로 동일 기능을 수행하는 스킨시스템을 이식함으로써 어플리케이션의 개발시에는 스킨데이터의 수정없이 곧 동일한 기능의 윈도우 UI를 서로 다른 윈도우시스템에서 구현이 가능하게 된다.
상기 서브 어플리케이션부(170)는 스킨시스템이 지원하는 윈도우 오브젝트 이외에 다른 기능을 수행하는 윈도우 오브젝트나 UI이 없이 스크립 엔진부가 오브젝트에 속한 스크립 코드를 수행할 때 이용하기 위한 로직들을 담고 있는 별도의 이진실행파일로 상기 서브 어플리케이션을 통해 스킨시스템은 계속 추가 기능의 확장이 가능하고, 또한 시작어플리케이션으로서 별도의 기능을 수행할 필요가 없는 어플리케이션은 시작 어플리케이션을 개발할 필요없이 기본 시작어플리케이션으로 시작하고 상기 서브 어플리케이션과 스킨데이터내의 스크립만 작성하여도 개발이 가능하다.
상기 스킨 자료 관리부(100)의 상세도면를 나타내고 있는 도 2에서 상기 loader부는 상기 어플리케이션부(170)로부터 전달받은 스킨정보를 상기 XML 구문해석부(120)로 전달하여 XML DOM API 형식의 데이터구조로 변환하여 이를 상기 WOM XMLDOM 변환부(converter)(102)로 전달하며, 상기 WOM XMLDOM 변환부(converter)는 XML 구문해석부(120)로부터 XML DOM API 형식의 데이터구조로 변환된 스킨정보로부터 오브젝트에 관한 정보를 하나씩 루트 엘레먼트부터 검색하여 상기 메타윈도우 엔진부(110)에 전달하고 또한 메타윈도우 엔진부(110)로부터 오브젝트 정보를 받아서 반대로 XMLDOM으로 변환하는 기능을 수행하는 모듈이며, 저장부(saver)(103)는 상기 XMLDOM으로 변환된 오브젝트정보를 받아서 원본 스킨정보와 달라진 정보를 분석하여 저장하는 기능을 수행한다.
메타윈도우 엔진부(110)의 상세도면을 나타내고 있는 도 3에서 상기 윈도우 오브젝트 매니져부(window object manager)(111)는 상기 스킨 자료 관리부로부터 각각 전달받은 오브젝트 정보를 분석하여 오브젝트가 윈도우 오브젝트(window object)일 경우 윈도 우브젝트(window object)(112)를 생성하고, 서브 어플리케이션 프록시 오브젝트(proxy object)일 경우에는 서브 어플리케이션 프록시 오브젝트(113)를 생성하며, 모든 오브젝트 생성작업이 끝나면 오브젝트를 실행하여 윈도우가 윈도우시스템에 만들어지는 작업에 들어가며, 상기 윈도우 오브젝트부는 상기 윈도우 오브젝트 매니져부가 생성하는 윈도우 오브젝트가 실제로 수행되는 모듈인, 즉 상기 윈도우시스템과 직접 연결되며 윈도우 오브젝트 매니져부가 제공한 정보에 따라 윈도우로서 정해진 동작을 수행하게 되며, 상기 서브 어플리케이션 프록시 오브젝트부는 상기 윈도우 오브젝트가 일정하게 정해진 방법대로 동작하는 것을 보완하여 어플리케이션이 특별히 필요한 경우 원하는 동작을 수행하게 하기 위해서 어플리케이션이 원하는 동작을 수행하는 서브 어플리케이션을 컴포넌트로 개발하거나 이미 존재하는 컴포넌트를 지정하여 스킨시스템에서 이를 윈도우내에서 처리되도록 동작하는 모듈이다.
스킨 시스템에서는 윈도우를 객체지향언어인 C++ 등에서 CLASS나 XML DOM에서 각 엘레먼트의 관계를 나타내는 것과 유사하게 스킨에 사용되는 윈도우 정보를 윈도우 오브젝트 모델(window object model, 이하 WOM)이라고 명명한 어플리케이션 프로그래밍 인터페이스(이하 API)로 나타내는데, 상기 WOM은 그 형식이 XML DOM의 형식과 유사하며, 상기 WOM은 윈도우에 관하여 크게 2가지 종류의 정보를 다룬다.
그 첫째로, 각 윈도우별 윈도우자체의 특성과 동작에 관한 정보들이고 둘째로, 윈도우와 다른 윈도우간의 종속관계에 관한 정보들이다.
먼저, 상기 윈도우자체의 특성과 동작에 관한 정보에는 윈도우의 크기나 위치와 모양, 마우스나 키보드 입력에 대한 처리, 배경이미지나 애니메이션 등이 해당되며, 상기 윈도우와 다른 윈도우간의 종속관계에 관한 정보에는 윈도우의 소유관계, 동일 윈도우에 소속한 윈도우간의 병렬관계 등이 해당된다.
이때 상기 WOM에서는 상기 정보들의 엑세스는 윈도우 객체에 대한 속성(Attribute)과 메소드(Method) 형식의 API를 통해서 구현되며, 또한 메소드(Method)의 특별한 형식으로 이벤트 핸들러(Event Handler) API가 있는데 상기 속성(Attribute) API는 윈도우에 관한 정보를 얻거나 값을 직접 변경할 수 있으며, 상기 메소드(Method) API는 윈도우에게 원하는 동작을 명령하는데 사용되고, 상기 이벤트 핸들러(Event Handler) API는 사전에 상태변화를 각각 하나의 이벤트(event)로 정의하여 두고 메타윈도우 엔진부의 윈도우오브젝트부가 실행될 때 매 상태변화마다 상기 이벤트(event)를 발생시켜 스크립엔진이 스크립에 포함된 이벤트 핸들러(Event handler)의 스크립 코드를 수행하게 되는, 즉 상기 이벤트 핸들러(Event Handler) API는 메소드의 형식 중 하나이지만 일반 메소드 API는 메타윈도우 엔진부의 윈도우오브젝트에서 구현되어 있고 스크립 코드에서 필요에 따라 호출하는 API임에 반해서 상기 이벤트 핸들러 API는 반대로 스크립 코드에서 구현되어 있고 윈도우오브젝트부에서 이벤트(event) 발생시마다 호출하는 API이다. 몰론 상기 이벤트 핸들러 API 역시 메소드 API이기 때문에 스크립 코드에서도 필요한 경우 직접 호출이 가능하다.
상기 WOM의 규격은 고정된 단일규격이 아니라 본 스킨시스템을 적용하여 개발하고자 하는 시스템에 따라 개별적으로 정의될 수 있고, 또한 상기 WOM은 상기 메타윈도우 엔진부에서 사용되며 각 어플리케이션별로 필요한 윈도우 정보를 항구적을 저장하고 엑세스 하기 때문에 상기 WOM을 이용한 메타윈도우 엔진부의 윈도우정보는 상기 스킨자료관리부에서 XML 데이터 형식으로 관리하며, 상기 스킨자료관리부에서 메타윈도우엔진부에서 사용되는 윈도우정보를 XML 데이터 형식으로 저장하기 위해 윈도우 정보를 XML 데이터 형식으로 표현하기 위한 XML DTD를 정의하였는데 이를 WinML(Window Markup Language)라 명명한다. 즉 WinML은 상기 스킨자료관리부가 WinML에 맞게 작성된 XML 데이터로부터 윈도우정보를 추출하여 메타윈도우엔진부로 추출된 윈도우정보를 전달할 수 있도록 하는 XML DTD이다.
상기 WinML은 상기 WOM에서 정의된 오브젝트에 대해 각각 엘리먼트(element)로 정의하고 각 오브젝트들의 속성(attribute)값과 추가적인 메소드(method), 이벤트를 처리하기 위한 이벤트핸들러(event handler)는 각 엘리먼트내의 하위 엘리먼트나 엘리먼트 속성(attribute)으로 정의하며, 또한 상기 WinML에서는 윈도우의 속성을 각 개인이 변경하고자 할 때 어플리케이션의 개발측에서 이와 같은 각 개인의 변경허용범위를 제한하여 어플리케이션의 개발의도가 훼손되지 않도록 하기 위하여 엘리먼트로 정의되는 오브젝트, 주요 오브젝트 속성에 대해서 개인화가능 여부 속성을 추가로 정의한다.
개인화 가능 여부 속성값에 따라 상기 스킨자료관리부내의 개인화 데이터 관리부에서 실시간(Run-Time)동안 변경된 데이터를 원본 스킨 데이터와 별도로 저장하고 저장된 개인화 데이터는 상기 스킨자료관리부내의 적재부 구동시에 적재부의 요청에 따라 엑세스되어 원본 스킨 데이터에 합쳐지게 된다.
개인화의 범위에 있어서 첫째로, 한 어플리케이션내에서 계층화된 오브젝트(윈도우 오브젝트, 서브어플리케이션 프록시 오브젝트)의 관계에서 오브젝트의 개인화 여부는 상위 오브젝트로부터 하위오브젝트로 속성이 자동상속된다. 둘째로, 윈도우 시스템내에서 개인화의 범위는 개별 윈도우 스킨데이터가 XML 문서에서 외부 엔터티로 참조되거나 XML 문서 자체에 포함되어 있는 경우 변경된 윈도우 속성은 해당 어플리케이션에만 제한적으로 적용된다. 그러나 개별 윈도우 스킨데이터가 윈도우 오브젝트나 서브어플리케이션 프록시 오브젝트를 나타내는 엘리먼트의 속성 중에 WinML에서 정의한 외부 소스 속성으로서 참조되는 경우 개인화의 범위는 해당 윈도우 스킨데이터를 외부소스로서 참조하는 모든 어플리케이션에 공통적으로 적용된다.
도 4 는 본 발명에 따른 예시도로서, 마이크로소프트의 윈도우즈 환경에서 개발된 스킨시스템이 구현된 예이다.
상기 도 4의 좌우 두 도면에서 어플리케이션의 실행파일은 동일한 것을 사용하고 있으며 WinML로 작성된 스킨정보와 관련된 부속 이미지정보 등만이 각각의 스킨을 표현하기 위해 달리 사용되고 있는데, 프로그램의 기능상의 차이점은 없으며, 다만 화면상의 버튼 등 윈도우 컨트롤러의 배치와 크기, 이미지정보를 달리하였으며, 각 컨트롤러의 기능상의 차이가 없도록 하였다.
종래의 시스템에서는 프로그램 고유의 기능의 차이없이 단순히 UI만을 변경하고자 하여도 프로그램 자체를 변경해야만 하였으나, 상기 도 4에서 예시된 스킨시스템이 적용된 어플리케이션의 경우 프로그램 변경없이 XML로 작성된 스킨데이터나 부속 멀티미디어 데이터만을 수정하여도 가능하다.
상술한 바와 같이 본 발명을 이용하면 소프트웨어 개발자는 윈도우를 제어하기 위한 제어루틴을 별도의 프로그램실행코드로 작성할 필요가 없으며, 윈도우 인터페이스의 개인화를 위한 별도의 프로그램실행코드를 작성할 필요가 없고, 각기다른 윈도우시스템별로 윈도우 제어루틴용 프로그램실행코드를 포팅(porting)할 필요가 없으며, 프로그램의 수정없이 윈도우를 관리하는 WinML DI만을 수정하거나 관련된 리소스파일을 원하는 리소스파일로 대치함으로서 자신의 윈도우인터페이스를 구성할 수 있으며, 각 소프트웨어별 혹은 전체윈도우시스템에 대한 개인화가 모두 가능해지며, 윈도우를 구성하는 GUI 요소들을 원격에서 전송함으로 네트워크 PC 등에서 응용가능한 장점을 갖는다.
또한 본 발명을 응용하면 단순한 스킨 기능뿐만 아니라 이기종 컴퓨터 시스템간 호환이 가능한 윈도우 시스템 및 서로 다른 윈도우시스템간 호환이 가능한 메타 윈도우시스템의 구현이 가능한 효과를 갖는다.

Claims (6)

  1. 윈도우환경에서 실행되는 어플리케이션으로부터 스킨데이터가 내재된 XML 문서와 부속데이터를 수집하는 스킨 자료 관리부;
    상기 스킨 자료 관리부에서 수집된 스킨데이터를 해석하여 XML DOM API로 접근 가능한 데이터 구조로 변환시키는 XML 구문 해석부;
    상기 스킨자료관리부에 의해 수집된 XML 문서와 부속데이터를 근거로 윈도우 오브젝트 및 어플리케이션 프록시 오브젝트의 개체를 생성하고 관리하는 메타윈도우 엔진부; 및
    상기 메타윈도우 엔진부에서 생성된 윈도우 오브젝트 및 어플리케이션 프록시 개체별로 XML 문서 내에 스크립으로 이벤트 프로시져를 수행하는 스크립 엔진부;를 포함하는 것을 특징으로 하는 윈도우 어플리케이션용 스킨 시스템.
  2. 제 1 항에 있어서, 상기 스킨 자료 관리부는
    어플리케이션으로부터 전달받은 스킨정보를 XML 구문해석부로 전달하여 XML DOM API 형식의 데이터구조로 변환하여 WOM XMLDOM으로 전달하는 적재부(Loader);
    상기 XML 구문해석부로부터 XML DOM API 형식의 데이터구조로 변환된 스킨정보로부터 오브젝트에 관한 정보를 하나씩 루트 엘레먼트로부터 검색하여 상기 메타윈도우엔진에 전달하고 메타윈도우 엔진부로부터 오브젝트 정보를 받아 그 반대로 XMLDOM으로 변환하는 WOM XMLDOM 변환부(Converter);
    상기 XMLDOM로 변환된 오브젝트 정보를 받아 원본 스킨정보와 달라진 정보를 분석하여 저장하는 저장부(Saver); 및
    상기 XML DOM API를 통해 접근가능한 데이터구조로 바뀌어 들어온 분석 저장된 정보를 루트 엘레먼트로부터 윈도우 오브젝트 모델에 맞게 데이터를 읽어 메타윈도우엔진에 오브젝트 준비를 요청하는 개인별 데이터 관리운영부(Personal Data Manager)로 이루어진 것을 특징으로 하는 윈도우 어플리케이션용 스킨 시스템.
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서, 상기 스크립 엔진부는
    스킨데이터에서 텍스트로 기술되어 있는 윈도우 오브젝트나 서브어플리케이션 프록시 오브젝트의 추가메소드, 이벤트핸들러 스크립을 해석하고 처리하는 것을 특징으로 하는 윈도우 어플리케이션용 스킨 시스템.
  6. 제 5 항에 있어서,
    상기 메타윈도우 엔진부에서 등록한 어플리케이션을 비롯한 오브젝트내에 이벤트가 발생하는 경우 해당 이벤트에 지정되어 있는 스크립 문장을 실행하고 스크립 문장을 수행 시 메타윈도우엔진내의 오브젝트와 어플리케이션부의 메소드를 실행시키거나 특정값을 엑세스하는 것을 특징으로 하는 윈도우 어플리케이션용 스킨 시스템.
KR10-2000-0034681A 2000-06-23 2000-06-23 윈도우 어플리케이션용 스킨 시스템 KR100375529B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0034681A KR100375529B1 (ko) 2000-06-23 2000-06-23 윈도우 어플리케이션용 스킨 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2000-0034681A KR100375529B1 (ko) 2000-06-23 2000-06-23 윈도우 어플리케이션용 스킨 시스템

Publications (2)

Publication Number Publication Date
KR20020000569A KR20020000569A (ko) 2002-01-05
KR100375529B1 true KR100375529B1 (ko) 2003-03-10

Family

ID=19673398

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0034681A KR100375529B1 (ko) 2000-06-23 2000-06-23 윈도우 어플리케이션용 스킨 시스템

Country Status (1)

Country Link
KR (1) KR100375529B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100844635B1 (ko) * 2001-12-28 2008-07-07 엘지전자 주식회사 데이터방송의 스킨 변경장치 및 방법
KR100631755B1 (ko) 2005-01-25 2006-10-11 삼성전자주식회사 자바 응용 프로그램의 룩을 실시간으로 전환하는 장치 및방법
KR100739748B1 (ko) 2005-10-31 2007-07-13 삼성전자주식회사 Xml 문서를 이용한 디바이스 제어 방법 및 그 시스템
US8010899B2 (en) 2005-11-29 2011-08-30 Our Tech Co., Ltd. System offering a data-skin based on standard schema and the method

Also Published As

Publication number Publication date
KR20020000569A (ko) 2002-01-05

Similar Documents

Publication Publication Date Title
US8448060B2 (en) Method, system and software tool for processing an electronic form
US7694271B2 (en) Rendering GUI widgets with generic look and feel
US7469302B2 (en) System and method for ensuring consistent web display by multiple independent client programs with a server that is not persistently connected to client computer systems
US7865868B2 (en) .NET ribbon model for a ribbon user interface
US7325204B2 (en) Slideout windows
US5793368A (en) Method for dynamically switching between visual styles
US8799857B2 (en) XML application framework
US6990654B2 (en) XML-based graphical user interface application development toolkit
KR101099272B1 (ko) 외부 프로그램 테마를 사용하는 웹페이지 렌더링을 위한 테마 적용 방법
US20050050301A1 (en) Extensible user interface
US20020101448A1 (en) Generating a declarative user interface
US20060168536A1 (en) Method and terminal for generating uniform device-independent graphical user interfaces
KR20050039551A (ko) 컴퓨터 플랫폼용 프로그래밍 인터페이스
WO2005022335A2 (en) Space-optimizing content display
US20060090138A1 (en) Method and apparatus for providing DHTML accessibility
KR100755253B1 (ko) 조건부 사용자 인터페이스 제어 및 화면 네비게이션을 갖는대화형 무선 어플리케이션용의 시스템 및 방법
US12126670B2 (en) System and method to standardize and improve implementation efficiency of user interface content
US20050193370A1 (en) System and method for interactive wireless applications with conditional UI controls and screen navigation
Brunet et al. Accessibility requirements for systems design to accommodate users with vision impairments
Cimino et al. An efficient model-based methodology for developing device-independent mobile applications
KR100375529B1 (ko) 윈도우 어플리케이션용 스킨 시스템
WO2005022337A2 (en) Extensible user interface
CN118885157A (zh) 用于低代码平台的自开发系统、方法及电子设备
CN116501427A (zh) WakeData小程序自定义布局方法
Mamone Creating Windows Forms

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130222

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160107

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170227

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180222

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20190226

Year of fee payment: 17

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 18