KR20020017669A - Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체 - Google Patents

Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체 Download PDF

Info

Publication number
KR20020017669A
KR20020017669A KR1020000051156A KR20000051156A KR20020017669A KR 20020017669 A KR20020017669 A KR 20020017669A KR 1020000051156 A KR1020000051156 A KR 1020000051156A KR 20000051156 A KR20000051156 A KR 20000051156A KR 20020017669 A KR20020017669 A KR 20020017669A
Authority
KR
South Korea
Prior art keywords
application
component
handler
page
document
Prior art date
Application number
KR1020000051156A
Other languages
English (en)
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 KR1020000051156A priority Critical patent/KR20020017669A/ko
Publication of KR20020017669A publication Critical patent/KR20020017669A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Abstract

본 발명은 XML 기반 어플리케이션 제공 시스템 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체에 관한 것이다.
본 발명에 따른 XML 기반 어플리케이션 제공 시스템은, 복수의 컴포넌트, 및 상기 컴포넌트를 핸들링하기 위한 핸들러에 대한 등록정보 문서로서 DTD(Data Type Definition)의 문법에 따라 작성된 CTD(Component Type Definition) 문서; 및 상기 CTD문서에 등록된 컴포넌트 및 핸들러가 선언된 어플리케이션 페이지의 리스트를 포함하는 어플리케이션 정보가 저장된 어플리케이션 정보 저장부; 고객의 컴퓨터에 탑재된 컨테이너의 요청에 따라, 상기 어플리케이션 정보 저장부에 저장된 어플리케이션 정보를 제공하기 위한 어플리케이션 정보 제공 서버; 상기 어플리케이션 페이지가 저장된 어플리케이션 페이지 저장부; 상기 제공받은 어플리케이션 페이지의 리스트에 기초한 상기 컨테이너의 요청에 따라 상기 어플리케이션 페이지 저장부에 저장된 어플리케이션 페이지를 제공하기 위한 어플리케이션 페이지 제공 서버; 상기 CTD 문서에 정의된 핸들러를 실행하기 위한 핸들러 실행파일이 저장된 핸들러 실행파일 저장부; 상기 CTD 문서에 정의된 컴포넌트를 실행하기 위한 실행파일이 저장된 컴포넌트 실행파일 저장부; 및 상기 제공받은 어플리케이션 페이지를 실행하기 위한 상기 컨테이너의 요청에 따라 상기 핸들러 실행파일 저장부에 저장된 핸들러 실행파일을 제공하며, 상기 핸들러 실행파일이 실행됨에 따라 활성화된 핸들러의 요청에 따라 상기 컴포넌트 실행파일 저장부에 저장된 대응 컴포넌트실행파일을 제공하기 위한 컴포넌트 제공 서버를 포함하는 것을 특징으로 한다. 이에 의해, XML을 기반으로 프로그램된 어플리케이션을 제공할 수 있는 XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체가 제공된다.

Description

XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체{XML-based application providing system and XML-based application recorded in computer-readable media}
본 발명은, XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체에 관한 것으로, 보다 상세하게는, XML문법구조를 이용하여 코딩된 어플리케이션을 제공하기 위한 XML 기반 어플리케이션 제공 시스템 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체에 관한 것이다.
어플리케이션이란 사용자 또는 타 응용프로그램에 대해 특정기능을 직접 수행하도록 설계된 프로그램을 말한다. 응용프로그램의 예로는 워드프로세서, 데이터베이스 프로그램, 개발도구, 페인트 브러시, 이미지 편집 프로그램, 통신 프로그램 등을 들 수 있다.
종래 개발자들은 어플리케이션을 개발하기 위해 C++, Java, Basic, 등과 같은 고급 프로그래밍 언어를 사용해왔다. 그러나, 이와 같은 종래 개발언어 및 도구를 사용하여 어플리케이션을 코딩하는 것은 용이하지 않다. 즉, 어플리케이션을 코딩하기 위해서는 코딩 양이 적지 않아 유능한 개발자라 하더라도 상당한 시간이 필요하게 된다. 더욱이, 코딩양이 많을수록 버그발생율이 상대적으로 높아지며 이에 따른 디버깅작업 또한 쉽지 않다. 나아가, 어플리케이션을 업데이트하기 위해서는 소스코드를 검색하고 수정 또는 대체해야 하는 바, 코딩양이 많을수록 이를 위해 더 많은 시간과 노력이 소요된다.
최근 인터넷을 기반으로 하여 ASP(Application Service Provider)가 활성화되고 있다. 이는 단순히 어플리케이션 소프트웨어를 패키지화하여 판매하는 것이 아니라, 비용을 지불하고 일정 기간 동안 어플리케이션을 사용할 수 있게 하는 일종의 어플리케이션 아웃소싱이다. 그런데, 특히 ASP사업을 함에 있어서 대부분의 비용은 전술한 바대로, 개발, 디버깅 및 수정작업에 소요되고 있는 실정이다.
한편, XML(eXtensible Markup Language)은 1996년 W3C(World Wide Web Consortium)에서 제안한 마크업언어로서, 웹 상에서 구조화된 문서를 전송 가능하도록 설계된 표준화된 텍스트 포맷을 제공한다. XML은 기존에 사용하던 HTML의 한계를 극복하고 SGML의 복잡함을 해결하는 방안의 하나로, SGML의 실용적인 기능만을 모은 부분집합(subset)이며, HTML과 달리 사용자가 새로운 태그(tag)를 정의할 수 있는 것이 큰 특징이다.
HTML(HyperText Markup Language)은 하이퍼텍스트, 하이퍼미디어의 기능을 지원하고, 누구나 사용할 수 있을 만큼 간단하며, 특별한 데이터 타입이 사용되지 않고 단순한 텍스트이기 때문에 웹의 발전과 일반화에 큰 공헌을 하였다. HTML 또한 SGML(Standard Generalized Markup Language)을 단순화시켜 만든 것으로, SGML을 기반으로 한 DTD(Data Type Definition)을 정의하고 그러한 정의를 따르는 웹브라우저를 사용하여 사용자가 만든 HTML인스턴스(HTML문서)를 보여주는 방식에 의한다. 그러나, HTML에서는 사용자가 임의로 태그를 만들 수 없고, 표준으로 발표된 태그 또는 각각의 브라우저에서 표현 가능한 태그만을 사용해야하는 불편함이 있다. 이와 같은 HTML의 한계를 극복하기 위해 등장한 마크업언어가 바로 XML(eXtensible Markup Language)이다.
XML은 DTD를 통해 사용자가 태그를 정의할 수 있고, 정의된 태그를 사용함으로써 문서의 「구조적인 표현」이 가능하다. 사용자 에이전트는 XML문서와 함께 전송된 DTD를 참조하여 XML문서를 처리하게 된다. 더불어, XML은 스타일시트를 사용함으로써 문서의 내용과 표현을 분리할 수 있다. 이에, 표현규칙이 담긴 파일하나만을 변경함으로써 그 규칙을 따르는 모든 문서들의 표현방식을 일괄적으로 변경할 수 있게 된다.
따라서, 본 발명의 목적은, XML을 기반으로 프로그램된 어플리케이션을 제공할 수 있는 XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체를 제공하는 것이다.
본 발명의 다른 목적은, 어플리케이션의 업데이트가 용이한 XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체를 제공하는 것이다.
본 발명의 또 다른 목적은, 보안관리가 용이한 XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체를 제공하는 것이다.
본 발명의 또 다른 목적은, 개별화된 서비스가 용이한 XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체를 제공하는 것이다.
도 1은 XML 기반 어플리케이션 제공 시스템의 제1 실시예에 따른 XML 기반 어플리케이션 제공 서버 시스템의 적용도,
도 2는 본 발명에 따른 XML 기반 어플리케이션의 구조를 설명하기 위한 참고도,
도 3은 도 1의 고객 컴퓨터(3a,3n) 및 XML 기반 어플리케이션 제공 서버(1)의 블록도,
도 4는 본 발명의 제2 실시예에 따른 XML 기반 어플리케이션이 기록된 기록매체가 탑재된 컴퓨터(43)의 개략도,
도 5는 본 발명의 XML 기반 어플리케이션 제공 시스템의 제 3실시예로서, XML 기반 어플리케이션을 실행하기 위한 적어도 하나의 컴퓨터(53a,53n)가 연결된 네트워크 구성도,
도 6은 도 4의 컴퓨터(43), 또는 도 5의 컴퓨터(53a,53n) 및 XML 기반 어플리케이션 제공 데이터베이스(1000))의 블록도,
도 7은 어플리케이션 제공방법에 의해 본 발명에 따른 XML 기반 어플리케이션이 실행되는 과정을 설명하기 위한 참고도이다.
* 도면의 주요 부분에 대한 부호의 설명
1: XML 기반 어플리케이션 제공 시스템 3a,3n: 고객 컴퓨터
5: 인터넷/인트라넷 10: 서버부
11: 어플리케이션 제공 서버 12: 어플리케이션 페이지 제공 서버
13: 컴포넌트 제공 서버 15: 어플리케이션 정보 데이터베이스
16: 어플리케이션 페이지 데이터베이스
17: 핸들러 실행파일 데이터베이스
18: 컴포넌트 실행파일 데이터베이스
31: 어플리케이션 정보 요청자 32: 어플리케이션 페이지 로더
33: 컴포넌트 로더 50: LAN/WAN
53a,53n: 고객 컴퓨터 100: 컴퓨터 본체
101: 디스플레이 장치 102: 키보드
103: 마우스
1000: XML 기반 어플리케이션 제공 데이터베이스
상기 목적은, 본 발명에 따라, 복수의 컴포넌트, 및 상기 컴포넌트를 핸들링하기 위한 핸들러에 대한 등록정보 문서로서 DTD(Data Type Definition)의 문법에 따라 작성된 CTD(Component Type Definition) 문서; 및 상기 CTD문서에 등록된 컴포넌트 및 핸들러가 선언된 어플리케이션 페이지의 리스트를 포함하는 어플리케이션 정보가 저장된 어플리케이션 정보 저장부; 고객의 컴퓨터에 탑재된 컨테이너의 요청에 따라, 상기 어플리케이션 정보 저장부에 저장된 어플리케이션 정보를 제공하기 위한 어플리케이션 정보 제공 서버; 상기 어플리케이션 페이지가 저장된 어플리케이션 페이지 저장부; 상기 제공받은 어플리케이션 페이지의 리스트에 기초한 상기 컨테이너의 요청에 따라 상기 어플리케이션 페이지 저장부에 저장된 어플리케이션 페이지를 제공하기 위한 어플리케이션 페이지 제공 서버; 상기 CTD 문서에 정의된 핸들러를 실행하기 위한 핸들러 실행파일이 저장된 핸들러 실행파일 저장부; 상기 CTD 문서에 정의된 컴포넌트를 실행하기 위한 실행파일이 저장된 컴포넌트 실행파일 저장부; 및 상기 제공받은 어플리케이션 페이지를 실행하기 위한 상기 컨테이너의 요청에 따라 상기 핸들러 실행파일 저장부에 저장된 핸들러 실행파일을 제공하며, 상기 핸들러 실행파일이 실행됨에 따라 활성화된 핸들러의 요청에 따라 상기 컴포넌트 실행파일 저장부에 저장된 대응 컴포넌트 실행파일을 제공하기 위한 컴포넌트 제공 서버를 포함하는 것을 특징으로 하는 XML 기반 어플리케이션 제공 시스템에 의해 달성된다.
상기 어플리케이션 정보는, 상기 어플리케이션 페이지에 대한 권한설정정보를 더 포함하는 것이 바람직하다.
상기 컨테이너는, 상기 어플리케이션 정보 제공 서버로 상기 어플리케이션 정보를 요청하기 위한 어플리케이션 정보 요청자; 상기 어플리케이션 제공 서버로 상기 어플리케이션 페이지를 요청하기 위한 어플리케이션 페이지 로더; 및 상기 컴포넌트 제공 서버로 상기 핸들러 실행파일을 요청하고, 상기 핸들러 실행파일이 실행됨에 따라 활성화된 핸들러를 통해 상기 컴포넌트 제공 서버로 상기 컴포넌트 실행파일을 요청하기 위한 컴포넌트 로더를 포함하는 것이 바람직하다.
상기 CTD문서는, 상기 컴포넌트에 대한 정의, 상기 컴포넌트 생성, 상기 컴포넌트 간의 관계설정, 상기 컴포넌트의 속성, 및 상기 컴포넌트의 실행에 관해 정의된 태그를 포함하고, 자신의 DTD(Data Type Definition)을 구비하며, 상기 어플리케이션 페이지는, 상기 태그를 사용하여 작성된 문서로서, 상기 컨테이너는, 상기 CTD문서에 기초하여 상기 어플리케이션 페이지에 기재된 태그를 해석하고, 대응 핸들러 실행파일을 실행시켜 활성화된 핸들러를 통해 컴포넌트 실행파일을 실행시킴으로써 상기 어플리케이션 페이지가 실행되도록 하는 것이 바람직하다.
상기 어플리케이션 페이지는, 상기 컨테이너에 의해 해석되어 실행되는 객체로서의 페이지 어플리케이션의 인터페이스에 대한 정의, 상기 인터페이스에 대한 구현, 상기 CTD문서에 정의된 컴포넌트의 인스턴스 선언과 상기 컴포넌트 간의 구조적 관계, 및 이벤트처리를 포함하고, 스크립트언어로 코딩된 프로그램을 포함하는 것이 더욱 바람직하다.
한편, 본 발명의 다른 분야에 따르면, 상기 목적은, 복수의 컴포넌트, 및 상기 컴포넌트와 소정 컨테이너를 인터페이싱하기 위한 핸들러에 대한 등록정보 문서로서 DTD(Data Type Definition) 문법에 따라 작성된 CTD (Component Type Definition) 문서; 및 소정 어플리케이션을 구성하는 객체인 페이지 어플리케이션으로 구현되며 상기 CTD문서에 등록된 컴포넌트 및 핸들러가 선언된 어플리케이션 페이지의 리스트를 포함하는 어플리케이션 정보; 적어도 하나의 상기 어플리케이션 페이지; 상기 CTD 문서에 정의된 핸들러를 실행하기 위한 핸들러 실행파일: 상기 컴포넌트를 실행하기 위한 컴포넌트 실행파일; 및 상기 CTD 문서에 기초하여 적어도 하나의 상기 어플리케이션 페이지에 포함된 핸들러의 상기 핸들러 실행화일을 실행시키며, 활성화된 핸들러를 통해 대응되는 상기 컴포넌트 실행파일을 실행시킴으로써 상기 어플리케이션 페이지를 실행하기 위한 컨테이너가 기록된 것을 특징으로 하는 컴퓨터 판독가능한 기록매체에 의해서도 달성된다.
상기 어플리케이션 정보는, 상기 어플리케이션 페이지 및 컴포넌트에 대한 권한설정정보를 더 포함하는 것이 바람직하다.
상기 컨테이너는, 상기 어플리케이션 정보 제공 서버로 상기 어플리케이션 정보를 요청하기 위한 어플리케이션 정보 요청자; 상기 어플리케이션 제공 서버로 상기 어플리케이션 페이지를 요청하기 위한 어플리케이션 페이지 로더; 및 상기 컴포넌트 제공 서버로 상기 컴포넌트 실행파일을 요청하기 위한 컴포넌트 로더를 포함하는 것이 바람직하다.
상기 CTD문서는, 상기 핸들러에 대한 정의, 상기 핸들러의 생성, 상기 핸들러의 속성, 및 상기 핸들러의 실행에 관해 정의된 태그와, 상기 컴포넌트에 대한 정의, 상기 컴포넌트 생성, 상기 컴포넌트 간의 관계설정, 상기 컴포넌트의 속성, 및 상기 컴포넌트의 실행에 관해 정의된 태그, 및 스크립트언어를 지원하는 태그를 포함하고, 자신의 DTD(Data Type Definition)을 구비하며, 상기 어플리케이션 페이지는, 상기 태그를 사용하여 작성된 문서이며, 상기 컨테이너는, 상기 CTD문서에 기초하여 상기 어플리케이션 페이지에 기재된 태그를 해석하여 대응 핸들러 실행파일 또는 컴포넌트 실행파일을 실행시키며, 스크립트언어로 코딩된 프로그램을 실행함으로써 상기 어플리케이션이 실행되도록 하는 것이 바람직하다.
상기 어플리케이션 페이지는, 상기 컨테이너에 의해 해석되어 실행되는 객체로서의 페이지 어플리케이션의 인터페이스에 대한 정의, 상기 인터페이스에 대한 구현, 스크립트언어의 지원, 상기 CTD문서에 정의된 컴포넌트의 인스턴스 선언과 상기 컴포넌트 간의 구조적 관계, 및 이벤트처리가 포함되는 것이 특히 바람직하다.
이하 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
도 1은 XML 기반 어플리케이션 제공 시스템의 제1 실시예에 따른 XML 기반 어플리케이션 제공 서버 시스템의 적용도이다.
도 1을 참조하면, XML 기반 어플리케이션 제공 서버 시스템(1)은 인터넷/인트라넷(5)을 통해 고객의 컴퓨터(3a,3n)에 XML 기반 어플리케이션을 제공한다.
XML 기반 어플리케이션 제공 서버 시스템(1)은, 본 발명의 바람직한 실시예로서 인터넷/인트라넷(5) 상에서 본 발명에 따라 XML 기반 어플리케이션을 제공하기 위한 ASP사업자의 호스트 시스템을 의미한다. XML 기반 어플리케이션은 본 발명에 따라 XML문법에 근거하여 코딩된 어플리케이션으로, 소프트웨어 공학적인 측면에서 컴포넌트 기반 구조를 가진다. 객체지향 프로그래밍(OOP; Object-Oriented Programming)에서, 컴포넌트는 재사용이 가능한 프로그램 빌딩블록으로서, 소정 어플리케이션을 형성하기 위해 같은 컴퓨터에 있거나 또는 네트웍 상의 다른 컴퓨터에 있는 컴포넌트들과 조합될 수 있으며 필요한 서비스를 위해 서로 통신할 수 있다. 컴포넌트는 컨테이너라 불리는 일종의 소프트웨어 내에서 동작한다. 대표적인 컨테이너로는 EJB(Enterprize Java Beans) 컨테이너를 들 수 있다. 본 발명에서는 사용자 에이전트가 컨테이너 역할을 한다.
본 발명에 따른 XML 기반 어플리케이션에 대해 보다 구체적으로 설명하면 다음과 같다.
도 2는 본 발명에 따른 XML 기반 어플리케이션의 구조를 설명하기 위한 참고도이다.
도 2를 참조하면, XML 기반 어플리케이션은, 컴포넌트와 핸들러를 포함한다. 여기서, 핸들러는 일종의 컴포넌트로서, 컨테이너와 컴포넌트를 인터페이싱해준다. 이와 같은 구조에 의해 XML 기반 어플리케이션은 종래 개발되어 사용되고 있는 컴포넌트를 그대로 사용할 수 있게 된다. XML 기반 어플리케이션의 소스에 실제로 표현된 컴포넌트와 핸들러의 예는 다음과 같다. 여기서, 컴포넌트는 「JFrame」이고, 「JFrame」을 핸들링하는 핸들러로는 「SwingHandler」가 선언되`어 있다.
<JFrame x="200" y="200" width="600" height="500"handler="SwingHandler"/>
CTD문서는 DTD를 바탕으로 작성된 XML 기반 어플리케이션의 스키마이다. XML 기반 어플리케이션은, XML의 문법을 사용하므로, 개발자가 정의한 태그의 집합 및 그 의미를 정의한 DTD가 존재하는 것은 당연하다. 다만, DTD는 확장된 배커스-노어 폼(Extended Backus-Naur Form, EBNF)라는 수정된 표기방식을 사용하는 바, 그 표기방식이 단순하여 기술(description) 능력이 제한되어 있고 확장성이 없는 단점이 있다. 이에, XML을 바탕으로 XML이 사용하는 스키마를 기술한다는 개념이도입되었으며, 제안된 것으로는 XML-Data, DCD(Document Content Description for XML, DCD)가 있다. 즉, 본 발명에서의 CTD문서는 스키마가 기술된 문서이다.
보다 구체적으로, CTD(Component Type Definition) 문서는 당해 XML 기반 어플리케이션에서 사용될 컴포넌트와 그 핸들러에 대한 등록정보를 포함한다. 즉, CTD문서에는 XML 기반 어플리케이션의 소스에 엘리먼트로서 포함될 컴포넌트에 대한 정의 및 정의된 컴포넌트를 핸들링할 핸들러에 대한 선언이 포함된다. 컴포넌트에 대한 정의는 다시 컴포넌트의 생성, 컴포넌트 간의 관계설정, 컴포넌트의 실행에 관한 세부적인 정의로 나뉘어진다.
CTD문서에 컴포넌트의 등록은 엘리먼트의 하나인 <ElementType>에 의해 이루어진다. <ElementType>은 그 속성(Atrribute)으로서 id, class, handler, handlerClass를 가질 수 있다.
컴포넌트의 하나인 「JFrame」에 대한 정의는 다음과 같다.
<ElementType id="JFrame" class="Javax.swing.JFrame"handler="Swinghandler"></ElementType>
여기서, id는 컴포넌트를 나타내는 엘리먼트 태그가 되며, 그 예는 다음과 같다.
<JFrame></JFrame>
「class」는 컴포넌트의 실제 이름으로서 대응 핸들러가 컴포넌트를 활성화하고자 할 때 필요하다. 즉, 「class」는 Java에서의 클래스 명칭에 해당되는 것이다.
「handler」는 컴포넌트를 핸들링하는 핸들러를 가리키는 바, JFrame을 핸들링하는 핸들러는 「SwingHandler」임이 정의되어 있다. 이에 따라, JFrame은 SwingHandler에 의해 활성화되게 된다. 즉, 컨테이너와 컴포넌트를 핸들러가 인터페이싱하게 되므로, 컨테이너가 XML 기반 어플리케이션 소스를 해석함에 있어 JFrame이라는 엘리먼트를 만나게 되면 CTD문서를 참조하여 JFrame의 핸들러가 SwingHandler임을 알아낸다. 이에 따라 컨테이너는 SwingHandler를 활성화하고, 활성화된 swingHandler에 의해 JFrame이 활성화되게 된다.
대안적으로, 다음과 같이, CTD문서에서 엘리먼트로서 handler를 정의하고 그 아래에 여러 ElementType을 정의할 수 있다.
<Handler id="SwingHandler" class="SwingHandler01"><ElementType id="JFrame" class="Javax.swing.JFrame"/><ElementType id="JPanel" class="Javax.swing.JPanel"/><ElementType id="JTree" class="Javax.swing.JTree"/></Handler>
여기서, 컴포넌트인 「JFrame」, 「JPanel」, 「JTree」는 모두 동일한 핸들러인 SwingHandler에 의해 활성화됨을 알 수 있다.
다음으로, 컴포넌트 생성에 관한 등록정보는 <Constructor>태그를 통해 다음과 같이 표시된다.
<ElementType id="Color" class="Java.awt.Color"><Constructor><Param class="int" value="[red]" /><Param class="int" value="[green]" /><Param class="int" value="[blue]" /></Constructor></ElementType>
컴포넌트 Color의 핸들러는 Color를 생성할 때 Constructor의 등록정보를 참조하는 바, 위의 경우는 Color의 생성자 중에서 Color(int arg1,int arg2,int arg3)형의 생성자를 기동할 것을 의미한다. 또한, 각 값은 속성(Attribute)에서입력받을 것을 지시하고 있다.
이와 같은 등록정보 하에, 실제 XML 기반 어플리케이션 소스에서 Color는 다음과 같이 표시될 수 있으며, 이에 핸들러는 Color::Color(100,0,0)이라는 생성자로 Color 컴포넌트를 생성하게 된다.
<Color red="100" green="0" blue="0"/>
다음으로, 컴포넌트 간의 관계설정에 관한 등록정보는 <BuildRelation>을 통해 다음과 같이 표시된다.
<ElementType id="Color" class="Java.awt.Color"><Constructor><Param class="int" value="[red]" /><Param class="int" value="[green]" /><Param class="int" value="[blue]" /></Constructor><BuildRelation><Parents><Parent class="Javax.swing.JComponent"><Method name="setBackground"><Param class="Java.awt.Color" value="[this]" /></Method></Parent></Parents></BuildRelation></ElementType>
Color 컴포넌트의 핸들러는 Color를 생성한 다음 이를 다른 컴포넌트와 관계를 형성시키는 바, 이때 참조될 정보가 <BuildRelation>이라는 엘리먼트에 의해 정의된다. XML에서와 마찬가지로, Parents 엘리먼트의 하위에는 여러 개의 Parent가 올 수 있다.
이와 같은 등록정보 하에, 실제 XML 기반 어플리케이션 소스에서 관계는 다음과 같이 표시될 수 있다.
<JTextField><Color red="100" green="0" blue="0"/></JTextField>
여기서, 「Color」는「JTextfield」라는 Parent 컴포넌트에 의해 소정 메소드에 의해 호출될 수 있도록 관계맺고 있음을 알 수 있다.
다음으로, 컴포넌트의 속성에 관한 등록정보는 <Attribute>을 통해 다음과 같이 표시된다.
<ElementType id="JLable" class="Javax.swing.JLabel"><Attributes><Attribute id="text" class="Java.lang.String"><Method name="setText"><Param class="Java.lang.String" value="[this]"/></Method></Attribute></Attributes></ElementType>
여기서, 「JLabel」 컴포넌트는 「text」라는 속성을 가지게 되며, 그 속성의 값은 「String」형임을 알 수 있다. String값은 JLabel의 소정 메소드를 통해 설정되게 된다.
다음으로, 컴포넌트의 실행에 관한 등록정보는 <Run>을 통해 다음과 같이 표시된다.
<ElementType id="JFrame" class="Javax.swing.JFrame"><Run><Method name="show"></Method></Run></ElementType>
위의 경우에, 「JFrame」 컴포넌트가 생성되고, 속성이 할당된 후 실행되게 되는데 이때 기동되는 메소드는 「show」가 된다.
전술한 바와 같이, CTD문서는 아래의 CTD문서에 대한 DTD에 기초하여 작성된다. 이에 기초하여 XML 문법에 따라 적어도 하나의 어플리케이션 페이지가 작성되며, 이들 어플리케이션 페이지가 조합되어 하나의 어플리케이션 소스를 이루게 되는 것이다.
<!이것은 CTD의 DTD입니다.><!이것은 CTD의 DTD입니다.><!ELEMENT AMLTagHandlers (Handler)*><!ELEMENT Handler (elementType)*><!ATTLIST Handler id CDATA #REQUIRED><!ATTLIST Handler class CDATA #REQUIRED><!ELEMENT elementType (Constructor?,BuildRelation?,Attributes?,Run?) ><!ATTLIST elementType id CDATA #REQUIRED><!ATTLIST elementType class CDATA #REQUIRED><!ATTLIST elementType handler CDATA #IMPLIED><!ATTLIST elementType handler_class CDATA #IMPLIED><!ELEMENT Constructor (Param*) ><!ELEMENT BuildRelation (Parents?) ><!ELEMENT Parents (Parent*)><!ELEMENT Parent (Method+)><!ATTLIST Parent class CDATA #REQUIRED><!ELEMENT Attributes (Attribute*)><!ELEMENT Attribute (Method)><!ATTLIST Attribute id CDATA #REQUIRED><!ATTLIST Attribute class CDATA #REQUIRED><!ELEMENT Run (Method)><!ELEMENT Method (Param*)><!ATTLIST Method name CDATA #REQUIRED><!ELEMENT Param EMPTY><!ATTLIST Param class CDATA #REQUIRED><!ATTLIST Param value CDATA #REQUIRED>
컨테이너(사용자 에이전트)는 전술한 CTD문서를 참조하여 어플리케이션 페이지를 해석하여 실행한다. 어플리케이션 페이지가 실행되어 해석 중인 객체를 페이지 어플리케이션이라고 부른다. 페이지 어플리케이션은 조합되어 하나의 완전한 어플리케이션을 이루게 된다. 페이지 어플리케이션은 자신의 속성과 메소드를 가지는 객체이며 프로그램모듈로서 행동한다.
따라서, 페이지 어플리케이션의 인터페이스에 대한 정의는 <Interface>에 의해 다음과 같이 표시된다.
<?xml version="1.0" encoding="EUC-KR" ?><aml version=".10"><Interface><Attribute type="String" name="jjj"/><Method name="go"><Param name="where" type="String"/></Method></Interface></aml>
여기서, <aml>은 application markup language의 머릿글자를 따서 만든 조어 「aml」을 따서 만든 루트 엘리먼트 태그이다.
페이지 어플리케이션의 인터페이스에 대한 실행은 <Implement>에 의해 다음과 같이 표시된다.
<?xml version="1.0" encoding ="EUC-KR" ?><aml version=".10"><Interface name="aPage"><Attribute type="String" name="jjj"/><Method name="update"><Param name="where" type="String"/></Method></Interface><Implementinterface="aPage"><AttributeImple name="jjj"><Set><!Some code</Set><Get><!Some code</Get></AttributeImple><MethodImple name=update></MethodImple></Implement></aml>
페이지 어플리케이션의 스크립트 언어 지원은 <Script>에 의해 다음과 같이 표시된다.
<Implement interface="aPage"><MethodImple name="update"><Scriptlanguage="aml">(이하 계속)
<Call-method id="tmp" target="ddd" name="go"><ReferenceOf target="ttt"/></Call-method></Script></MethodImple></Implement>
스크립트 언어는 필요에 따라 실행가능한 어떤 부분에도 삽입될 수 있는 바, 주로 페이지 어플리케이션의 통신을 위해 사용된다.
다음은 XML 기반 어플리케이션으로서 문서편집기의 CTD문서의 일 예는 다음과 같다.
<?xml version=1.0 encoding=EUC-KR ?><!--Default Handler Configuration --><AMLTagHandlers><!-- AML Master Component --><Handler id=BaseHandler class=ABXCompHandlerBase ><elementType id=aml class=undefined/><elementType id="Components" class="undefined"/><elementType id="Startup" class="undefined"/><elementType id="EventHandlers" class="undefined"/></Handler><!-- AML InstanceOf Handler --><Handler id="InstanceOfHandler" class="ABXInstanceOfHandler" ><elementType id="InstanceOf" class="undefined"/></Handler><!-- AML Swing Menu Handler --><Handler id="SwingMenuHandler" class="ABXSwingMenuHandler"><elementType id="JMenuItem" class="javax.swing.JMenuItem"/><elementType id="JMenu" class="javax.swing.JMenu"/><elementType id="JMenuBar" class="javax.swing.JMenuBar"/></Handler><!-- AML Swing ActionEvent Handler --><Handler id="SwingEventHandler" class="ABXEventHandler" ><elementType id="Action" class="ABXActionListener"/><elementType id="Key" class="ABXKeyListener"/></Handler><!-- Swing Components --><Handler id="SwingHandler" class="ABXSwingHandler" ><elementType id="JFrame" class="javax.swing.JFrame"/><elementType id="JInternalFrame" class="javax.swing.JInternalFrame"/><elementType id="JDesktopIcon" class="javax.swing.JInternalFrame.JDesktopIcon"/><elementType id="JPanel" class="javax.swing.JPanel"/></Handler>(이하 계속)
<!-- 이하는 사용자가 정의한 클래스 핸들링 방법이다.이는 AnyHandler가 담당한다.--><Handler id="AnyHandler" class="ABXSwingAnyHandler"><!--javax.swing.border.BevelBorder--><elementType id="BevelBorder" class="javax.swing.border.BevelBorder"><Constructor><Param class="int" value="[type]"/></Constructor><BuildRelation><Parents><Parent class="javax.swing.JComponent"><Method name="setBorder"><Param class="javax.swing.border.Border" value="[this]" /></Method></Parent></Parents></BuildRelation></elementType></Handler><Handler id="LayoutHandler" class="ABXLayoutHandler" ><elementType id="Layout" class="undefined"/></Handler></AMLTagHandler>
위의 CTD문서에 기초하여 구현된 문서편집기 어플리케이션의 소스코드는 다음과 같다.
<?xml version="1.0" encoding="EUC-KR" ?><aml version=1.0><Components><JFrame x="200" y="200" width="600" height="500" ><Layout type="Border" rows="3" columns="1" /><JMenuBar><JMenu text="File"><JMenuItem text="New"/><JMenuItem text="Open"/><JMenuItem text="Save" /><JMenuItem text="Save as"/></JMenu><JMenu text="Edit"/><JMenu text="View" /></JMenuBar><JDesktopPane constraints="Center"><BevelBorder type="1"/></JDesktopPane><JPanel constraints="South"/></JFrame></Components><Startup></Startup> (이하 계속)
<!-- Event Handlers Block --><EventHandlers><Action name="JButton4"><Call target="System" method="exit" ><Param name="jjj">0</Param></Call></Action><EventHandlers></aml>
이하에서는 전술한 XML 기반 어플리케이션을 제공하기 위한 도 1의 XML 기반 어플리케이션 제공 서버 시스템(1) 및 그 XML 기반 어플리케이션 제공방법을 설명한다.
도 3은 도 1의 고객 컴퓨터(3a,3n) 및 XML 기반 어플리케이션 제공 서버 시스템(1)의 블록도이다.
도 3을 참조하면, XML 기반 어플리케이션 제공 서버 시스템(1)은, 어플리케이션 정보 데이터베이스(15), 어플리케이션 페이지 데이터베이스(16), 핸들러 실행파일 데이터베이스(17), 컴포넌트 실행파일 데이터베이스(18), 및 서버부(10)를 포함한다.
서버부(10)는, 어플리케이션 정보 제공 서버(11), 어플리케이션 페이지 제공 서버(12), 및 컴포넌트 제공 서버(13)를 포함한다.
어플리케이션 정보 데이터베이스(15)는, 어플리케이션 저장부로서, 어플리케이션에 대한 어플리케이션 정보가 저장되어 있다. 「어플리케이션 정보」는, CTD 문서 및 어플리케이션 페이지의 리스트를 포함한다.
어플리케이션 페이지 데이터베이스(16)는 어플리케이션 페이지 저장부로서, 어플리케이션 페이지가 저장되어 있다.
핸들러 실행파일 데이터베이스(17)는 핸들러 실행파일 저장부로서, CTD 문서에 정의된 핸들러를 활성화시키기 위한 실행파일이 저장되어 있다.
컴포넌트 실행파일 데이터베이스(18)는 컴포넌트 실행파일 저장부로서, 핸들러에 의해 CTD 문서에 정의된 컴포넌트를 활성화시키기 위한 실행파일이 저장되어 있다.
어플리케이션 정보 제공 서버(11)는 어플리케이션 정보 데이터베이스(15)에 저장된 어플리케이션 정보를 추출하여 인터넷/인트라넷(5)을 통해 고객 컴퓨터(3a,3n)로 전송한다. 어플리케이션 페이지 제공 서버(12)는 어플리케이션 페이지 데이터베이스(16)에 저장되어 있는 어플리케이션 페이지를 인터넷/인트라넷(5)을 통해 고객 컴퓨터(3a,3n)로 전송한다.
컴포넌트 제공 서버(13)는 핸들러 실행파일 데이터베이스(17) 또는 컴포넌트실행파일 데이터베이스(18)에 저장된 핸들러 실행파일 또는 컴포넌트 실행파일을 고객 컴퓨터(3a,3n)로 전송한다.
고객의 컴퓨터(3a,3n)에는 본 발명에 따른 XML 기반 어플리케이션 소스(이하 「AML 소스」라 함)를 해석하고 처리하기 위한 유저 에이전트인 컨테이너가 탑재되어 있다. 컨테이너(30)는 어플리케이션 정보 요청자(31), 어플리케이션 페이지 로더(32), 및 컴포넌트 로더(33)를 구비한다.
어플리케이션 정보 요청자(31)는 어플리케이션 정보 제공 서버(11)로 어플리케이션 정보를 요청하며, 어플리케이션 페이지 로더(32)는 제공받은 어플리케이션 정보에 기초하여 어플리케이션 페이지 제공 서버(12)로 필요한 어플리케이션 페이지를 요청한다. 컴포넌트 로더(33)는 제공받은 어플리케이션 페이지를 해석하여 필요한 핸들러 또는 컴포넌트 실행파일을 컴포넌트 제공 서버(13)로 요청한다.
도 4는 본 발명의 제2 실시예에 따른 XML 기반 어플리케이션이 기록된 기록매체가 탑재된 컴퓨터(43)의 개략도이다.
도 4를 참조하면, 컴퓨터(43)는, 하드디스크 및 메모리를 탑재하고 상기 하드디스크 및 메모리에 연결되어 소정 프로그램을 실행하기 위한 프로세서를 구비한 컴퓨터 본체(100), 디스플레이 장치(101), 키보드(102), 및 마우스(103)를 구비한다.
상기 하드디스크에는 XML 기반 어플리케이션을 실행하기 위해 필요한 어플리케이션 정보, 어플리케이션 페이지, 핸들러 실행파일, 및 컴포넌트 실행파일이 저장되어 있으며, XML 기반 어플리케이션을 해석하기 위한 사용자 에이전트인 컨테이너는 상기 메모리에 탑재되어 상기 프로세서에 의해 실행되게 된다.
도 5는 본 발명의 XML 기반 어플리케이션 제공 시스템의 제 3실시예로서, XML 기반 어플리케이션을 실행하기 위한 적어도 하나의 컴퓨터(53a,53n)가 연결된 네트워크 구성 도이다.
도 5를 참조하면, 컴퓨터(53a,53n)는 본 발명에 따른 XML 기반 어플리케이션을 실행하기 위해 LAN/WAN(50)에 접속되어 있다. 컴퓨터(53a,53n)는 도 4의 그것과 동일한 구조를 지니는 바, 도시않은 컴퓨터 본체에 XML 기반 어플리케이션을 실행하기 위한 컨테이너가 탑재되어 있다. 다만, XML 기반 어플리케이션을 실행하기 위해 필요한 어플리케이션 정보, 어플리케이션 페이지, 핸들러 실행파일, 및 컴포넌트 실행파일은 thin-client를 구현하기 위해 LAN/WAN(50)에 물려 있는 XML 기반 어플리케이션 제공 데이터베이스(1000)에 저장되어 있다.
도 6은 도 4의 컴퓨터(43), 또는 도 5의 컴퓨터(53a,53n) 및 XML 기반 어플리케이션 제공 데이터베이스(1000))의 블록도이다.
도 6을 참조하면, XML 기반 어플리케이션 제공 데이터베이스(1000) 또는 컴퓨터(43)의 본체에는, 어플리케이션 정보 파일(150), 어플리케이션 페이지 파일(160), 핸들러 실행파일(170), 및 컴포넌트 실행파일(180)이 저장되어 있다.
어플리케이션 정보 파일(150)은, 「어플리케이션 정보」로서, CTD 문서 및 어플리케이션 페이지의 리스트가 포함되어 있다. 어플리케이션 페이지 파일(160)은 어플리케이션 페이지가 포함되어 있으며, 핸들러 실행파일(170)은 CTD 문서에 정의된 핸들러를 활성화시키기 위한 실행파일이며, 컴포넌트 실행파일(180)은 대응핸들러에 의해 컴포넌트를 활성화시키기 위한 실행파일이다.
한편, 컴퓨터(43,53a,53n)의 도시않은 메모리에는 AML 소스를 해석하기 위한 컨테이너(300)가 탑재되어 실행되는 바, 컨테이너(300)는 어플리케이션 정보 요청자(310), 어플리케이션 페이지 로더(320), 및 컴포넌트 로더(330)를 구비한다.
어플리케이션 정보 요청자(310)는 어플리케이션 정보 실행파일(150)을 가져오고, 어플리케이션 페이지 로더(320)는 가져온 어플리케이션 정보에 기초하여 어플리케이션 페이지 파일(160)로부터 필요한 어플리케이션 페이지를 가져온다. 컴포넌트 로더(330)는 가져온 어플리케이션 페이지를 해석하여 필요한 핸들러 또는 컴포넌트 실행파일을 가져온다.
상기와 같은 구성에 따라 본 발명에 따른 XML 기반 어플리케이션 제공방법을 설명하면 다음과 같다.
도 7은 어플리케이션 제공방법에 의해 어플리케이션이 실행되는 과정을 설명하기 위한 참고도이다. 다만, 사용자는 도 1, 4, 또는 5의 컴퓨터를 사용하는 자를 가리키며, 컨테이너는 도 1, 4, 또는 5의 컴퓨터에 탑재되어 실행되는 사용자 에이전트로서 컨테이너를 가리킨다. 파일저장 시스템은, 도 1의 XML 기반 어플리케이션 제공 서버 시스템(1), 도 4의 컴퓨터(43)의 본체 또는 도 5의 XML 기반 어플리케이션 제공 데이터베이스(1000)를 가리킨다.
도 7에 도시된 바와 같이, 사용자가 어플리케이션을 요구하면(①단계), 즉 컴퓨터를 사용하여 소정 어플리케이션을 실행하고자 하면, 컨테이너는 파일저장 시스템에게 어플리케이션 정보를 요구한다(②단계).
이에, 컨테이너는 파일저장 시스템으로부터 대응 어플리케이션 정보로서 CTD 문서, 어플리케이션 페이지 리스트, 및 권한설정정보를 수신한다(③단계). 여기서, 권한설정정보는 각 어플리케이션 페이지 및 컴포넌트에 대한 접근권한을 설정한 것이다. 접근권한 설정은 소정 운영체계를 기반으로 다양한 네트워크 접속 어플리케이션을 통해 지원되고 있다. 이에 의해, 소정 문서에 대한 접근권한을 설정하는 방법을 통해 소정 페이지 어플리케이션에 의한 서비스 제공을 제한하거나 허여할 수 있게 된다.
어플리케이션 정보를 수신받은 컨테이너는 리스트에 기재된 순서에 따라 어플리케이션 페이지를 해석하고 해석된 어플리케이션 페이지에 포함된 핸들러를 요구한다(④단계).
이에, 파일저장 시스템은 핸들러 실행파일을 제공하고(⑤단계), 컨테이너는 실행파일을 실행시켜 핸들러를 활성화시킨다.
활성화된 핸들러는 컨테이너에 의해 지시된 적어도 하나의 대응 컴포넌트를 요구하고(⑥단계), 파일저장 시스템은 요구된 컴포넌트 실행파일을 제공한다(⑦단계)
핸들러에 의해 활성화된 적어도 하나의 컴포넌트에 의해 페이지 어플리케이션이 생성된다(⑧단계).
생성된 페이지 어플리케이션은 사용자에게 소정 서비스를 제공하고(⑨단계), 사용자는 필요한 경우 페이지 어플리케이션 간에 또는 페이지 어플리케이션 내에서 이벤트를 발생시킨다(⑩단계).
발생된 이벤트는 페이지 어플리케이션에 의해 처리된다(⑪단계).
생성된 페이지 어플리케이션과 다른 페이지 어플리케이션 간에 발생된 이벤트인 경우 필요한 어플리케이션 페이지에 정의된 핸들러를 요구하고(④단계) 이하 단계가 반복되어 이벤트에 관련된 페이지 어플리케이션이 생성된다.
현재 생성된 페이지 어플리케이션 내에서 발생된 이벤트인 경우, 내부 컴포넌트에 의해 응답처리된다.
한편, 어플리케이션 페이지에는 필요에 따라 복수개의 핸들러를 포함하는 것이 일반적이므로, 상기 ④ 내지 ⑦단계는 복수회 반복되어 실행될 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, XML을 기반으로 프로그램된 어플리케이션을 제공할 수 있는 XML 기반 어플리케이션 제공 시스템, 및 XML 기반 어플리케이션이 기록된 컴퓨터 판독가능한 기록매체가 제공된다.
특히, ASP사업자의 경우, 컨테이너만을 고객의 컴퓨터에 설치하고, 나머지 필요한 파일은 서버 측에 저장시켜 둠으로써, 어플리케이션의 업데이트가 필요한 경우 제공되는 파일만을 변경하거나 수정하는 방식에 의해 용이하게 업데이트할 수 있다. 더불어, 전술한 바와 같이 어플리케이션 페이지에 접근권한을 설정함으로써 용이하고 강력한 보안관리를 할 수 있다. 나아가, 스타일시트를 사용함으로써 한 벌의 소스만으로도 고객마다 개별화된 페이지 어플리케이션을 제공할 수 있게 된다.

Claims (10)

  1. 복수의 컴포넌트, 및 상기 컴포넌트를 핸들링하기 위한 핸들러에 대한 등록정보 문서로서 DTD(Data Type Definition)의 문법에 따라 작성된 CTD(Component Type Definition) 문서; 및 상기 CTD문서에 등록된 컴포넌트 및 핸들러가 선언된 어플리케이션 페이지의 리스트를 포함하는 어플리케이션 정보가 저장된 어플리케이션 정보 저장부;
    고객의 컴퓨터에 탑재된 컨테이너의 요청에 따라, 상기 어플리케이션 정보 저장부에 저장된 어플리케이션 정보를 제공하기 위한 어플리케이션 정보 제공 서버;
    상기 어플리케이션 페이지가 저장된 어플리케이션 페이지 저장부;
    상기 제공받은 어플리케이션 페이지의 리스트에 기초한 상기 컨테이너의 요청에 따라 상기 어플리케이션 페이지 저장부에 저장된 어플리케이션 페이지를 제공하기 위한 어플리케이션 페이지 제공 서버;
    상기 CTD 문서에 정의된 핸들러를 실행하기 위한 핸들러 실행파일이 저장된 핸들러 실행파일 저장부;
    상기 CTD 문서에 정의된 컴포넌트를 실행하기 위한 실행파일이 저장된 컴포넌트 실행파일 저장부; 및
    상기 제공받은 어플리케이션 페이지를 실행하기 위한 상기 컨테이너의 요청에 따라 상기 핸들러 실행파일 저장부에 저장된 핸들러 실행파일을 제공하며, 상기 핸들러 실행파일이 실행됨에 따라 활성화된 핸들러의 요청에 따라 상기 컴포넌트실행파일 저장부에 저장된 대응 컴포넌트 실행파일을 제공하기 위한 컴포넌트 제공 서버를 포함하는 것을 특징으로 하는 XML 기반 어플리케이션 제공 시스템.
  2. 제1항에 있어서,
    상기 어플리케이션 정보는, 상기 어플리케이션 페이지에 대한 권한설정정보를 더 포함하는 것을 특징으로 하는 XML 기반 어플리케이션 제공 시스템.
  3. 제1항 또는 제2항에 있어서,
    제3항에 있어서,
    상기 컨테이너는,
    상기 어플리케이션 정보 제공 서버로 상기 어플리케이션 정보를 요청하기 위한 어플리케이션 정보 요청자;
    상기 어플리케이션 제공 서버로 상기 어플리케이션 페이지를 요청하기 위한 어플리케이션 페이지 로더; 및
    상기 컴포넌트 제공 서버로 상기 핸들러 실행파일을 요청하고, 상기 핸들러 실행파일이 실행됨에 따라 활성화된 핸들러를 통해 상기 컴포넌트 제공 서버로 상기 컴포넌트 실행파일을 요청하기 위한 컴포넌트 로더를 포함하는 것을 특징으로 하는 XML 기반 어플리케이션 제공 시스템.
  4. 제3항에 있어서,
    상기 CTD문서는, 상기 컴포넌트에 대한 정의, 상기 컴포넌트 생성, 상기 컴포넌트 간의 관계설정, 상기 컴포넌트의 속성, 및 상기 컴포넌트의 실행에 관해 정의된 태그를 포함하고, 자신의 DTD(Data Type Definition)을 구비하며,
    상기 어플리케이션 페이지는, 상기 태그를 사용하여 작성된 문서로서,
    상기 컨테이너는, 상기 CTD문서에 기초하여 상기 어플리케이션 페이지에 기재된 태그를 해석하고, 대응 핸들러 실행파일을 실행시켜 활성화된 핸들러를 통해 컴포넌트 실행파일을 실행시킴으로써 상기 어플리케이션 페이지가 실행되도록 하는 것을 특징으로 하는 XML 기반 어플리케이션 제공 시스템.
  5. 제4항에 있어서,
    상기 어플리케이션 페이지는, 상기 컨테이너에 의해 해석되어 실행되는 객체로서의 페이지 어플리케이션의 인터페이스에 대한 정의, 상기 인터페이스에 대한 구현, 상기 CTD문서에 정의된 컴포넌트의 인스턴스 선언과 상기 컴포넌트 간의 구조적 관계, 및 이벤트처리를 포함하고, 스크립트언어로 코딩된 프로그램을 포함하는 것을 특징으로 하는 XML 기반 어플리케이션 제공 시스템.
  6. 복수의 컴포넌트, 및 상기 컴포넌트와 소정 컨테이너를 인터페이싱하기 위한 핸들러에 대한 등록정보 문서로서 DTD(Data Type Definition) 문법에 따라 작성된 CTD (Component Type Definition) 문서; 및 소정 어플리케이션을 구성하는 객체인 페이지 어플리케이션으로 구현되며 상기 CTD문서에 등록된 컴포넌트 및 핸들러가선언된 어플리케이션 페이지의 리스트를 포함하는 어플리케이션 정보;
    적어도 하나의 상기 어플리케이션 페이지;
    상기 CTD 문서에 정의된 핸들러를 실행하기 위한 핸들러 실행파일:
    상기 컴포넌트를 실행하기 위한 컴포넌트 실행파일; 및
    상기 CTD 문서에 기초하여 적어도 하나의 상기 어플리케이션 페이지에 포함된 핸들러의 상기 핸들러 실행화일을 실행시키며, 활성화된 핸들러를 통해 대응되는 상기 컴포넌트 실행파일을 실행시킴으로써 상기 어플리케이션 페이지를 실행하기 위한 컨테이너가 기록된 것을 특징으로 하는 컴퓨터 판독가능한 기록매체.
  7. 제6항에 있어서,
    상기 어플리케이션 정보는, 상기 어플리케이션 페이지 및 컴포넌트에 대한 권한설정정보를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 기록매체.
  8. 제6항 또는 제7항에 있어서,
    상기 컨테이너는,
    상기 어플리케이션 정보 제공 서버로 상기 어플리케이션 정보를 요청하기 위한 어플리케이션 정보 요청자;
    상기 어플리케이션 제공 서버로 상기 어플리케이션 페이지를 요청하기 위한 어플리케이션 페이지 로더; 및
    상기 컴포넌트 제공 서버로 상기 컴포넌트 실행파일을 요청하기 위한 컴포넌트 로더를 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 기록매체.
  9. 제8항에 있어서,
    상기 CTD문서는, 상기 핸들러에 대한 정의, 상기 핸들러의 생성, 상기 핸들러의 속성, 및 상기 핸들러의 실행에 관해 정의된 태그와, 상기 컴포넌트에 대한 정의, 상기 컴포넌트 생성, 상기 컴포넌트 간의 관계설정, 상기 컴포넌트의 속성, 및 상기 컴포넌트의 실행에 관해 정의된 태그, 및 스크립트언어를 지원하는 태그를 포함하고, 자신의 DTD(Data Type Definition)을 구비하며,
    상기 어플리케이션 페이지는, 상기 태그를 사용하여 작성된 문서이며,
    상기 컨테이너는, 상기 CTD문서에 기초하여 상기 어플리케이션 페이지에 기재된 태그를 해석하여 대응 핸들러 실행파일 또는 컴포넌트 실행파일을 실행시키며, 스크립트언어로 코딩된 프로그램을 실행함으로써 상기 어플리케이션이 실행되도록 하는 것을 특징으로 하는 컴퓨터 판독가능한 기록매체.
  10. 제9항에 있어서,
    상기 어플리케이션 페이지는, 상기 컨테이너에 의해 해석되어 실행되는 객체로서의 페이지 어플리케이션의 인터페이스에 대한 정의, 상기 인터페이스에 대한 구현, 스크립트언어의 지원, 상기 CTD문서에 정의된 컴포넌트의 인스턴스 선언과 상기 컴포넌트 간의 구조적 관계, 및 이벤트처리가 포함되는 것을 특징으로 하는 컴퓨터 판독가능한 기록매체.
KR1020000051156A 2000-08-31 2000-08-31 Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체 KR20020017669A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000051156A KR20020017669A (ko) 2000-08-31 2000-08-31 Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000051156A KR20020017669A (ko) 2000-08-31 2000-08-31 Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체

Publications (1)

Publication Number Publication Date
KR20020017669A true KR20020017669A (ko) 2002-03-07

Family

ID=19686406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000051156A KR20020017669A (ko) 2000-08-31 2000-08-31 Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체

Country Status (1)

Country Link
KR (1) KR20020017669A (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100421624B1 (ko) * 2001-11-02 2004-03-11 (주) 한정문 플랫폼 독립적인 소프트웨어 자동 검색/배포/설치 장치 및그 방법
KR20040043290A (ko) * 2002-11-18 2004-05-24 (주) 아이엘솔루션 XML Schema 기반의 적부도(Stowage Plan, 積付圖) 마크업 언어 설계 및 그것으로 기록되어진 매체
KR100706839B1 (ko) * 2004-06-23 2007-04-11 (주)투비소프트 서버의 애플리케이션 프로그램 정보 전달 방법 및 그 시스템
WO2009006050A1 (en) * 2007-06-29 2009-01-08 Microsoft Corporation Web page-container interactions
US7698281B2 (en) 2002-05-08 2010-04-13 Yahoo! Inc. Use of extensible markup language in a system and method for influencing a position on a search result list generated by a computer network search engine
US8626771B2 (en) 2007-06-29 2014-01-07 Microsoft Corporation Container reputation
KR101352383B1 (ko) * 2011-11-16 2014-01-17 주식회사 한백전자 Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US8838729B2 (en) 2007-06-29 2014-09-16 Microsoft Corporation Gathering statistics based on container exchange

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10116284A (ja) * 1996-10-11 1998-05-06 Fuji Xerox Co Ltd 文書処理装置
WO1998034179A1 (en) * 1997-01-31 1998-08-06 Time Base Pty. Limited A system for electronic publishing
US6083276A (en) * 1998-06-11 2000-07-04 Corel, Inc. Creating and configuring component-based applications using a text-based descriptive attribute grammar
KR20000038284A (ko) * 1998-12-05 2000-07-05 정선종 문서 관리 시스템을 위한 구조화된 문서의 데이터베이스 저장및 복원방법 및 그 장치
KR20010113472A (ko) * 2000-06-19 2001-12-28 포만 제프리 엘 분산 데이터 처리 시스템에 있어서 동적 문서 생성용콤포넌트 모델 정의 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10116284A (ja) * 1996-10-11 1998-05-06 Fuji Xerox Co Ltd 文書処理装置
WO1998034179A1 (en) * 1997-01-31 1998-08-06 Time Base Pty. Limited A system for electronic publishing
US6083276A (en) * 1998-06-11 2000-07-04 Corel, Inc. Creating and configuring component-based applications using a text-based descriptive attribute grammar
KR20000038284A (ko) * 1998-12-05 2000-07-05 정선종 문서 관리 시스템을 위한 구조화된 문서의 데이터베이스 저장및 복원방법 및 그 장치
KR20010113472A (ko) * 2000-06-19 2001-12-28 포만 제프리 엘 분산 데이터 처리 시스템에 있어서 동적 문서 생성용콤포넌트 모델 정의 장치 및 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100421624B1 (ko) * 2001-11-02 2004-03-11 (주) 한정문 플랫폼 독립적인 소프트웨어 자동 검색/배포/설치 장치 및그 방법
US7698281B2 (en) 2002-05-08 2010-04-13 Yahoo! Inc. Use of extensible markup language in a system and method for influencing a position on a search result list generated by a computer network search engine
KR20040043290A (ko) * 2002-11-18 2004-05-24 (주) 아이엘솔루션 XML Schema 기반의 적부도(Stowage Plan, 積付圖) 마크업 언어 설계 및 그것으로 기록되어진 매체
KR100706839B1 (ko) * 2004-06-23 2007-04-11 (주)투비소프트 서버의 애플리케이션 프로그램 정보 전달 방법 및 그 시스템
WO2009006050A1 (en) * 2007-06-29 2009-01-08 Microsoft Corporation Web page-container interactions
US8626771B2 (en) 2007-06-29 2014-01-07 Microsoft Corporation Container reputation
US8838729B2 (en) 2007-06-29 2014-09-16 Microsoft Corporation Gathering statistics based on container exchange
US9286367B2 (en) 2007-06-29 2016-03-15 Microsoft Technology Licensing, Llc Gathering statistics based on container exchange
KR101352383B1 (ko) * 2011-11-16 2014-01-17 주식회사 한백전자 Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Similar Documents

Publication Publication Date Title
US7788238B2 (en) Extensible object-modelling mechanism
US6907572B2 (en) Command line interface abstraction engine
KR101120853B1 (ko) 관리 도구 환경
Ceri et al. Morgan Kaufmann series in data management systems: Designing data-intensive Web applications
RU2287181C2 (ru) Система и способ взаимного преобразования программных объектов и документов на базе элементов структурированного языка
US6961750B1 (en) Server-side control objects for processing client-side user interface elements
CA2764012C (en) Computer-implemented method, system and computer program product for displaying a user interface component
US7120897B2 (en) User control objects for providing server-side code generation from a user-defined dynamic web page content file
KR100661393B1 (ko) 웹 프로그래밍 환경을 응용한 웹사이트 관리 시스템 및방법
US20030140333A1 (en) Integration of computer system components
US20080228809A1 (en) Method and apparatus for generatng a dynamic web page
US20030135825A1 (en) Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
US20090254881A1 (en) Code generation techniques for administrative tasks
US20040181748A1 (en) Thin client framework deployment of spreadsheet applications in a web browser based environment
KR20050000352A (ko) 공통 쿼리 런타임 시스템 및 애플리케이션 프로그래밍인터페이스
US20110239200A1 (en) Method for compiling a computer program
KR20020017669A (ko) Xml 기반 어플리케이션 제공 시스템, 및 xml 기반어플리케이션이 기록된 컴퓨터 판독가능한 기록매체
Silaghi et al. Towards an MDA-oriented UML profile for distribution
Freund et al. Union and intersection contracts are hard, actually
Friedman-Hill Software verification and functional testing with XML documentation
Joshi Beginning XML with C# 2008: from novice to professional
Trivedi Building a Web App with Blazor and ASP. Net Core: Create a Single Page App with Blazor Server and Entity Framework Core
LEHRHUBER Pdf support for qualitative research in the cloud
Korva Developing a web application with Angular 2: Graphical editor for Happywise’s Cove Trainer
Abbas et al. LEARN. NET WITH PROGRAMMING (3-in-1): Covers. NET using C#, Visual Basic ASP. NET

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application