KR100831393B1 - 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용개발 시스템 - Google Patents

웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용개발 시스템 Download PDF

Info

Publication number
KR100831393B1
KR100831393B1 KR1020060074702A KR20060074702A KR100831393B1 KR 100831393 B1 KR100831393 B1 KR 100831393B1 KR 1020060074702 A KR1020060074702 A KR 1020060074702A KR 20060074702 A KR20060074702 A KR 20060074702A KR 100831393 B1 KR100831393 B1 KR 100831393B1
Authority
KR
South Korea
Prior art keywords
web
screen
handler
data
server
Prior art date
Application number
KR1020060074702A
Other languages
English (en)
Other versions
KR20080013324A (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 KR1020060074702A priority Critical patent/KR100831393B1/ko
Publication of KR20080013324A publication Critical patent/KR20080013324A/ko
Application granted granted Critical
Publication of KR100831393B1 publication Critical patent/KR100831393B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • 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/10Requirements analysis; Specification techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 웹 애플리케이션(Web Application)을 개발하기 위한 솔루션 인터페이스(interface) 기술에 관한 것으로, 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용 개발 시스템을 개시한다.
본 발명의 방법은, 웹 브라우저가 구비된 클라이언트와 다양한 종류의 서버 플랫폼들로 구현된 웹 서버로 이루어진 웹 환경에서 웹 애플리케이션을 개발하기 위한 솔루션 인터페이스 방법에 있어서, 상기 웹 애플리케이션을 구성하는 웹 페이지의 디자인(Design)에 해당하는 스크린(Screen)과, 프로그래밍 소스(Programing Source)에 해당하는 핸들러(Handler)로 구분하여 별개의 파일로 구현하고, 상기 클라이언트측에서 실행되는 웹플러스 엔진이 상기 웹브라우저의 요구에 따라 상기 핸들러를 불러오고, 상기 핸들러에 대응하는 스크린을 불러오며, 상기 핸들러와 상기 스크린간의 매핑을 통하여 html 태그를 생성한 후 속성을 부여하여 상기 웹브라우저에 제공함으로써 디자인과 프로그래밍의 동시작업이 가능하게 되어 개발기간을 단축하고 유지보수를 용이하게 함과 아울러 상기 다양한 웹 서버의 플랫폼(Platform)에 관계없이 독립적으로 개발할 수 있는 것이다.
웹 응용, 에이젝스(Ajax), 웹2.0, 핸들러, 스크린, 프리젠테이션

Description

웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용 개발 시스템{ PRESENTATION METHOD FOR WEB APPLICATIONS AND WEB APPLICATION DEVELOPMENT SYSTEM USING THE SAME}
도 1은 종래의 웹 응용을 위한 프리젠테이션 개념을 도시한 개략도,
도 2는 본 발명에 따른 웹 응용을 위한 프리젠테이션 개념을 도시한 개략도,
도 3은 도 2에 도시된 프리젠테이션 계층의 구성도,
도 4는 도 2에 도시된 웹플러스 엔진의 동작 절차를 도시한 순서도,
도 5는 본 발명에 따라 브라우저와 서버간에 전달되는 전체 프로세스를 도시한 순서도,
도 6은 본 발명에 따른 공통 도큐먼트의 구조 예.
*도면의 주요부분에 대한 부호의 설명
100: 클라이언트 110: 웹 브라우저
120: 웹플러스 엔진 200: 웹 서버
210: 프리젠테이션 계층 211: 웹플러스 뷰어 매니저
212: 웹플러스 데이터 콘트롤러 213: 핸들러
214: 스크린 215: 툴부
220: 비지니스 로직 300: 자원부
본 발명은 웹 애플리케이션(Web Application)을 개발하기 위한 솔루션으로 웹 인터페이스(Web interface)기술에 관한 것으로, 특히 월드 와이드 웹(World-Wide-Web: WWW)을 통해 웹 애플리케이션에 접속하는 일반 사용자에게 웹페이지를 어떻게 표현해줄 것인가를 명세화 시켜주는 솔루션으로 견고하게 구성된 비즈니스 로직과의 연결을 통해 웹 애플리케이션을 데스크탑 애플리케이션 수준으로 표현 가능한 프리젠테이션 방법 및 이를 이용한 웹 애플리케이션 개발 시스템에 관한 기술이다.
일반적으로, 인터넷은 컴퓨터 및 네트워크가 확산됨에 따라 최근에 급격히 성장하였으며, " 월드 와이드 웹(또는 WWW)" 을 집합적으로 구성하는 웹 페이지에 의해 함께 연결된 컴퓨터 시스템으로 이루어진 세계적인 정교한 네트워크로 발전해 왔다. WWW에 액세스하고자 하는 개별 PC에서 사용자는 통상 '웹 브라우저'라고 알려진 소프트웨어를 사용한다. 웹 브라우저는 WWW 상의 웹 서버라고 알려진 다른 컴퓨터에 대한 접속을 만들고, 웹 서버로부터 정보를 수신하고, 이것을 사용자의 컴퓨터상에 표시한다. 사용자에게 표시되는 정보는 통상 하이퍼텍스트 마크업 랭귀지(Hypertext Markup Language: HTML)라고 하는 전용의 언어를 사용하여 구현된 페이지로 구성되어 있다. HTML을 사용하는 웹 브라우저는 시장에 소개되어 있는 거의 모든 컴퓨터 시스템에 대하여 이용가능하게 되어, 컴퓨터 및 모뎀에 액세스(Access) 가능한 거의 모든 사람이 WWW에 액세스할 수 있게 되었다. WWW에 액세스하는 컴퓨터 사용자의 급속한 신장 및 확산은 필연적으로 컴퓨터 하드웨어와 소프트웨어의 눈부신 발전을 이끄는 원동력이 되었다.
도 1은 종래의 웹 응용을 위한 프리젠테이션 개념을 도시한 개략도로서, 클라이언트(10)인 웹 브라우저(11)와 웹 서버(20) 및 데이터베이스(30)가 도시되어 있다.
도 1을 참조하면, 웹 서버(20)는 적어도 프리젠테이션 계층(21)과 비지니스 로직 계층(22)을 포함하고 있는데, 종래의 웹 모델에서 프리젠테이션 계층(21)은 화면의 디자인과 프로그램 소스가 분리되지 않은 채 동일한 파일에 구현되어 있다. 이러한 종래의 웹 모델에서 브라우저(11)가 HTTP 프로토콜에 따라 웹 문서를 요청하면, 웹 서버의 프리젠테이션 계층(21)은 필요에 따라 비지니스 로직(22)에 처리를 요구한 후 데이터를 전달받아 HTML과 CSS로 구성된 웹 표준 문서를 생성하여 브라우저(11)로 응답하였고, 이에 따라 브라우저(11)가 화면에 출력하였다.
그런데 이와 같이 WWW의 인기는 상승하고 그에 따른 기술도 급속히 발전하고 있지만 이에 따른 여러 가지 부수적인 문제점 또한 같이 커져 가고 있는 것이 현실이다. 현재의 웹 애플리케이션에 있어서의 문제점을 사용자측면과, 웹 애플리케이션 운영자 측면, 웹 개발자 측면에서 각각 살펴보면 다음과 같다.
사용자 측면에서 문제점
현재까지의 웹 애플리케이션의 구조는 사용자가 WWW상의 특정 웹 애플리케이션에 접속하여 사용자가 웹페이지에서의 특정 작업을 요청하면 웹서버의 프리젠테이션 계층(21)이 필요에 따라 비지니스 로직(22)에 처리를 요청하여 해당 작업을 완료하고 데이터를 전달받아 사용자의 웹브라우저에 보내줄 출력 데이타(해당 페이지의 내용이 변하지 않는 정적 HTML 페이지를 포함하거나 또는 동적으로 결정되어 출력 데이터 내로 삽입되어야 하는 데이터를 포함할 수 있다)를 작성하고, 이를 사용자 웹 브라우저로 전송하게 되면 웹 브라우저가 이것을 해석하여 사용자의 모니터 화면에 출력하게 된다. 다시 말해 사용자의 요청이 오면 웹서버에서 모든 처리를 완료하여 사용자 웹 브라우저에 출력 데이터가 전송될 때 까지 사용자는 대기해야만 했다.
따라서 사용자가 기다리는 동안에 네트워크의 속도 또는 웹서버의 프로세스 등의 가변적인 환경에 따라 갑작스럽게 접속이 끊기거나 또는 일정한 시간 이상 사용자가 대기하는 상황이 종종 발생하였다.
또한 사용자의 요청에 따라 현재 접속된 웹페이지에서 특정 부분의 데이터 변경이 발생할 때, 이를 웹 브라우저에 반영하기 위해서 종래에는 변경되는 부분의 정보만 받아오지 못하고 화면에 표시할 HTML 등의 데이터 전체를 다시 웹 서버로부터 전송을 받게 되므로 웹서버와 네트워크에 부하를 초래하고, 이후 웹 브라우저가 받아온 출력 데이터를 재구성하여 사용자의 모니터상에서 보여주게 되므로 모니터상의 화면이 깜빡거리는 등의 둔탁하고 유려하지 못한 웹 애플리케이션을 만날 수 밖에 없었다.
위와 같은 여러 한계로 인해 좀 더 다양하고 복잡한 업무를 처리하기 위해서 때로는 해당 사용자 컴퓨터에 새로운 설치과정을 거치는 번거로운 작업을 통해서 데스크탑 애플리케이션 프로그램을 설치하여 이를 이용할 수 밖에 없었다. 하지만 이것은 해당 데스크탑 애플리케이션 프로그램이 설치되지 않은 컴퓨터에서는 접속 자체가 불가능한 근본적인 문제점을 안고 있다.
웹 애플리케이션 운영자/회사 측면
위에서도 언급했듯이 WWW을 통해 수많은 사용자의 요청을 받아 해당 요청을 웹 서버에서 모두 처리하여 그에 대한 출력 데이터를 만들어 각각의 사용자에게 응답을 해야하는 현재까지의 웹 애플리케이션의 구조는 해당 웹 애플리케이션 시스템의 대량화와 방대함을 이루게 되었다. 그러나 더욱더 많은 사용자의 접속에 따라서 웹서버의 부하라는 문제가 또다시 초래되었다. 이를 해결하기 위해서 또 다른 시스템의 새로운 개발과 확장에 대한 노력으로 여러 개발 방법론과 보다 나은 컴퓨터 시스템의 개념들이 도출되고, 이에 따른 하드웨어와 소프트웨어의 발전이 이루어졌다. 하지만 이것은 하드웨어, 소프트웨어, 컴퓨터, 플랫폼별로의 상이하게 발전하는 형태로 진행되었다. 이들 본질적으로 다른 하드웨어 시스템은 통상 완전히 다른 운영 시스템을 사용한다. 이들 여러 가지 다른 하드웨어 및 소프트웨어 시스템이 존재하므로, 주어진 웹 애플리케이션에 대해 각각의 상이한 하드웨어 플랫폼으로 포팅(porting)하기 위해 보통은 완전히 새로운 시스템 개발 노력을 필요로 한다. 이로 인해 동일한 컨텐츠를 가진 웹 애플리케이션을 서로 다른 하드웨어 및 소프트웨어 플랫폼별로 각각 개발하고 운영하게 되므로 상당한 시간과 높은 비용을 가져오는 비생산적인 상황이 발생하게 된다.
그리고 그동안 기업의 복잡한 업무들을 웹으로 구현하기에는 전통적인 웹 애플리케이션 구조의 한계로 인해 데스크탑 애플리케이션을 별도로 개발하여 관리하여 왔다. 이 때문에 업무에 따라 웹 애플리케이션과 데스크탑 애플리케이션으로 나누어진 두 가지 형태의 애플리케이션을 보유하여야 하므로 유지보수의 어려움과 비용증가 등의 여러 어려움을 겪을 수 밖에 없었다.
그리고 또한 데스크탑 애플리케이션은 해당 사용자의 컴퓨터에 별도의 설치 과정을 거쳐야만 이용이 가능했으므로 해당 데스크탑 애플리케이션 프로그램이 설치된 컴퓨터가 아니면 접속 자체가 불가능하였다. 그래서 이를 해결하기 위해서 데스크탑 애플리케이션을 웹 애플리케이션으로 전환하기 위한 노력이 계속되었지만 현재까지의 노력으로는 데스크탑 애플리케이션의 복잡하고 다양한 기능을 모두 웹 애플리케이션으로 전환하기에는 부족한 것이 현실이다. 따라서 데스크탑 애플리케이션의 일부 기능을 제거하여 웹 애플리케이션으로 전환 가능한 부분만을 엄선하여 해당 웹 애플리케이션을 개발하는, 충족되지 못한 형태의 전환 작업이 이루어지고 있다.
웹 애플리케이션 개발자(프로그래머, 웹디자이너) 측면
서로 다른 새로운 웹 애플리케이션마다 새로운 인터페이스를 구성하게 되는 현재의 시스템 환경에서는 개발자들은 새로운 프로그래밍 방법에 대해 재학습하여야만하고, 이를 운영하기 위해 또 다른 노력과 비용을 지불하게 된다. 따라서, 비록 오늘날 많은 웹 애플리케이션이 WWW을 통해 액세스할 수 있지만, 이들 다양한 웹 애플리케이션 플랫폼의 상이함으로 인해 웹 애플리케이션 개발자는 새로운 플랫폼 환경과 운영 방법을 학습하기 위해 시간을 소비해야 하므로, 개발 의욕을 저하시키고 새로운 응용의 도입을 꺼려하게 되는 문제점이 있다.
그런데 HTML은 현재 출시된 대부분의 컴퓨터 시스템에 의해 사용될 수 있는 잘 알려진 언어이다. 또한, HTML은 상당히 잘 제어되고 표준화된 언어이므로, 새로운 소프트웨어 애플리케이션의 기능들이 개발되어 HTML에 의해 지원될 경우, 그러한 기능들이 추가될 수 있다. 그러나 WWW상의 수많은 웹 애플리케이션 프로그램들은 동적인 데이터 정보의 빈번한 요청으로 인한 비즈니스 로직의 호출과 데이터베이스와의 연결 등으로 인해 단순 HTML을 사용하여 웹페이지를 구성하는 곳은 드물 것이다.
그래서 대부분의 웹 애플리케이션은 각각의 시스템 플랫폼에 적합한 서버 스크립트 언어를 사용하여 웹 애플리케이션 프로그램을 개발하는 것이 현실이다. 예를 들어, JSP(Java Sever Page), ASP(Active Server Page), PHP(PHP: Hypertext Preprocessor) 등이 있다.
위와 같은 서버 스크립트 언어는 정적인 데이터를 나타내는 HTML위에 비즈니스 로직과 연동하여 데이터베이스의 동적인 데이터를 표현하기 위해 각각의 서버 스크립트의 문법에 따른 프로그래밍을 더하게 되는 작업 구조를 가진다.
다시 말해 일반적으로 웹 디자이너가 HTML로 웹 페이지의 구성 및 내용을 만들면 이를 다시 프로그래머가 넘겨받아 각각의 서버 스크립트 방식으로 해당 파일에 소스(Source)를 추가로 입력하여 비즈니스 로직과의 연결을 구성하게 된다. 이로써 동적인 웹페이지의 변화와 다양한 컨텐츠로 유려한 UI(User Interface)를 구현할 수 있게 되었지만, 동일한 하나의 파일을 가지고 웹디자이너가 작업을 하고 프로그래머가 이를 받아서 다시 작업하게 되므로 디자인과 소스의 구현을 동시에 수행할 수 없어 개발에 시간이 많이 소요되는 문제점이 있다. 또한 일차적인 웹 애플리케이션 프로그램의 개발이 끝나고 다시금 새로운 사용자의 요구사항에 따라 해당 웹페이지의 구성을 달리하게 될 때, 디자이너가 이미 서버스크립트 언어로 구현된 파일을 받아 새로운 HTML을 추가 또는 삭제하게 되는데 웹디자이너에게는 익숙하지 않은 서버 스크립트 언어의 문법으로 인해 해당 서버 스크립트 언어의 문법에 어긋나는 웹디자인이 이루어지면 이를 다시 프로그래머가 넘겨받아 서버 스크립트 언어를 수정해야 하므로 전체적으로 시간과 비용을 낭비하는 비효율적인 문제점이 발생하기도 한다.
또한 프로그래머 입장에서는 웹 페이지 내에서 일어나는 사용자의 이벤트(event) 또는 액션(action)과 같은 특정한 요청에 따른 응답을 웹 브라우저에 나타내기 위한 프로그래밍을, 여러 종류의 스크립트(VB Script, JScript) 또는 서버 스크립트 언어로 구현해야 했다. 이로 인해 각각의 요청에 따른 응답을 위한 소스를 구현하기 위해 오랜 프로그래밍 시간이 요구되고, 해당 요청사항의 변화가 발생할 때는 그에 맞는 또 다른 응답을 위한 소스를 구현해야 하므로 유지보수가 어려 운 문제점이 있다.
이와 같이 종래의 웹 모델에서는 프리젠테이션 계층의 웹 문서가 디자인과 소스로 구분되어 있지 않으므로 코드의 재사용이나 유지보수가 어렵고, 새로운 웹 응용을 개발하는데 시간이 많이 소요되는 문제점이 있다.
본 발명은 상기와 같은 문제점들을 해결하기 위해 제안된 것으로, 디자인과 소스를 상기 발명에 따라 스크린과 핸들러의 완전히 독립된 파일로 관리하며, 상기 발명에 의해 이미 개발된 컴포넌트(Components)와 그에 속한 속성(Attribute)의 선언을 통해 개발자의 직접 프로그래밍 작업 없이 해당 기능의 구현이 완성되는 특징 등을 이용하여 개발 및 유지보수가 용이하고 화면이 로드된 후에는 필요한 특정 부분의 데이터만 다시 호출 및 표현이 가능하여 화면의 리로드(Reload)를 최소화하고 반응속도를 개선할 수 있는 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용 개발 시스템을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 클라이언트- 웹 서버 구조에서 웹 응용(Application)을 제공하기 위한 방법에 있어서, 상기 클라이언트에서 실행되는 웹 플러스 엔진이 웹 브라우저의 요청에 따라 공통 도큐먼트를 생성하는 제1 단계; 상기 웹 플러스 엔진이 해당 화면의 핸들러를 요청하면 상기 웹 서버가 핸들러를 제공하는 제2 단계; 상기 웹 플러스 엔진이 해당 핸들러에 사용할 스크린을 요청하면 상기 웹 서버가 해당 스크린을 제공하는 제3 단계; 상기 웹 플러스 엔진이 상기 핸들러와 상기 스크린을 이용하여 웹 브라우저에 응답하는 제4 단계; 이벤트가 발생되어 데이터가 요구되면, 상기 웹 플러스 엔진이 상기 웹 서버에 데이터를 요청하고, 상기 웹 서버는 소정의 비지니스 로직을 실행하여 그 결과 데이터를 xml 파일로 응답하는 제5 단계; 및 상기 웹 플러스 엔진이 상기 xml 파일을 파싱하여 갱신된 데이터를 포함하는 html 파일을 상기 웹 브라우저에 제공하는 제6 단계를 구비한 것을 특징으로 한다.
또한, 상기와 같은 목적을 달성하기 위하여 본 발명의 시스템은, 클라이언트-서버 구조로 된 웹 환경에 있어서, 상기 클라이언트에서 실행되는 웹 브라우저; 초기 접속시 상기 서버로부터 상기 클라이언트측으로 로드(load)되고, 상기 웹 브라우저의 요청에 따라 상기 서버로 해당 화면의 핸들러와 스크린을 요청한 후 xml로 구성된 핸들러를 파싱(Parsing)하고 스크린과의 매핑(Mapping) 정보를 해석하여 웹브라우저에 출력할 기본 html 문서을 생성하여 상기 웹 브라우저로 출력하고, 이벤트에 따라 새로운 데이터가 필요하면 상기 서버로 동기/비동기방식으로 통신하여 xml 데이터를 전달받아 웹브라우저에 출력된 html 정보를 갱신하여 상기 웹 브라우저로 출력하는 웹 플러스 엔진; 상기 서버에서 실행되고 문서를 핸들러와 스크린으로 구분하여 관리하면서 상기 웹 플러스 엔진의 요구에 따라 핸들러와 스크린을 제공하는 프리젠테이션부; 및 상기 서버에서 실행되고 상기 프리젠테이션부의 요청에 따라 특정의 서비스를 처리하여 결과를 제공하는 비지니스 로직과의 연결을 제공하 는 데이터 컨트롤러(Data Controller)를 구비한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.
도 2는 본 발명에 따른 웹 응용을 위한 프리젠테이션 개념을 도시한 개략도이고, 도 3은 도 2에 도시된 프리젠테이션 계층의 세부 구성도이며, 도 4는 도 2에 도시된 웹플러스 엔진의 동작 절차를 도시한 순서도이다.
본 발명에 따른 웹 응용을 구현하기 위한 환경은 도 2에 도시된 바와 같이, 클라이언트(100)와 웹 서버(200) 구조로 이루어진다. 클라이언트(100)는 통상의 웹 브라우저(110)와 본 발명에 따른 웹 플러스 엔진(120)으로 이루어지고, 웹 서버(200)는 본 발명에 따라 웹 문서를 프로그램 소스에 해당하는 핸들러(213)와 화면의 디자인에 해당하는 스크린(214)으로 구분하여 제공하는 프리젠테이션 계층(210)과 통상의 비지니스 로직(220)(비지니스 로직은 상기 발명에 따른 결과물이 아니고 기존에 이미 구현되어 있는 통상의 비즈니스 로직을 의미한다.)으로 구성된다. 비지니스 로직(220)은 응용의 성격에 따라 데이터베이스관리시스템(DBMS)(300)이나 CRM/ERP, LDAP 같은 다른 자원(300)에 연결되어 응용이 요구하는 서비스를 처리한 후, 그 결과를 프리젠테이션 계층(210)에 제공한다. 웹 플러스 엔진(120)은 클라이언트(100)가 본 발명이 적용된 웹 서버(200)에 접속할 경우 초기에 자동으로 로드되어 클라이언트측에서 실행된다.
또한 본 발명에 따른 프리젠테이션 계층(210)은 도 3에 도시된 바와 같이, 웹 플러스 뷰어 매니저(211)와, 웹플러스 데이터 콘트롤러(212), 툴부(215)로 이루어지고, 웹 플러스 뷰어 매니저(211)는 웹 응용의 화면을 이루는 요소인 스크린(214)과, 웹 응용의 로직을 이루는 요소로서 데이터를 연결해주며 스크린을 제어하는 핸들러(213)로 구성된다. 그리고 핸들러(213)는 데이터셋(213-1)과 트랜스퍼(213-2), 컨피그(213-3), 내장기능함수(213-4), 에이잭스(Ajax)기반 콤퍼넌트 라이브러리(213-5)를 포함하고 있고, 웹플러스 데이터 콘트롤러(WebPlus Data Controller)(212)는 비즈니스 로직(220)과 연결되어 해당 웹페이지에 출력할 데이터를 중계하는 역할을 하는 XML Manager(212-1)와 데이터 맵핑(Data Mapping)(212-2)으로 나누어진다. 보조적인 기능을 수행하는 툴부(215)는 핸들러 자동 완성(Handler Automatic Completion) 및 로깅(Logging) 등을 처리한다.
도 3을 참조하면, 스크린(214)은 UI 표현을 위해 HTML 태그(Tag)를 삽입하고, 핸들러와 매핑(Mapping)되는 정보를 가진 ID를 정의하며, 해당 스크린을 다른 핸들러에서 재사용할 수 있게 한다. 이러한 스크린은 html, jsp, asp, php 등의 모든 서버스크립트 언어 형식의 파일을 수용할 수 있다.
핸들러(213)는 XML로 구현되어 스크린 UI 컴포넌트를 XML의 엘리먼트(Element)로 정의하고, 스크린과의 매핑(Mapping)과 데이터 바인딩을 위한 ID와 XPATH를 정의하며, 자동화된 기능 구현을 위한 엘리먼트의 속성 및 내장기능함수(213-4)를 사용하며, 상속과 포함관계를 이용하여 해당 핸들러와 스크린을 재사용할 수 있다. 이러한 핸들러(213)는 Dataset(213-1)과 Transfer(213-2), Config(213-3), 내장기능함수(213-4), 애이잭스(Ajax)기반 콤퍼넌트 라이브러 리(213-5)로 이루어지는 웹 응용의 로직으로서, 스크린(214)과 데이터를 연결해주며 스크린(214)이 실질적인 기능을 할 수 있도록 콘트롤한다. 콤포넌트 라이브러리(213-4)는 UI CONTROLS, UI COMPONENT, DATA MANAGE, BEHAVIORS, TOOLS 등이 있으며, UI CONTROLS는 UI콤포넌트 간의 유기적인 제어 속성들을 제공하고, UI COMPONENT는 풍부한 화면 인터페이스를 제공하며, DATA MANAGE는 효율적인 데이터 동기화 관리와 비동화 및 데이터 전송을 제공한다. BEHAVIORS는 최적화된 리로드(Reload)와 간단한 URL 이동 등을 제공한다.
예컨대, 다음 표1과 같이 디자인과 프로그램이 분리되지 않은 종래의 웹 페이지를 본 발명에 따라 디자인과 핸들러로 구분할 경우에, 핸들러는 다음의 표2와 같고, 스크린은 다음의 표3과 같다.
다음 표 1은 디자인과 프로그램이 분리되지 않은 웹 페이지의 예이다.
디자인과 프로그램이 분리되지 않은 예(JSP - Java Server Page)
<%@ page import="common.*,museum.*,java.text.*,java.util.*"%> <%@ page contentType="text/html;charset=KSC5601"%> <% String sch_value = (request.getParameter("sch_value") != null ? request.getParameter("searcsch_valueh_word") : ""); Board free = new Board(); DbSet ds = free.executeCond(search_word); %> <script language="javascript"> function go_search() { var frm = document.form; if(frm.sch_value.value=="" ){ alert("검색값이 없습니다. 확인해주세요"); return; } frm.action="member_list.jsp"; frm.submit(); } </script> <form name="form" method="post"> <table> <tr> <td> 검색값(ID):<input type="text" name="sch_value"> <img src="/common_img/btn_search_2.gif" onclick="javascript:go_search()"> </td> </tr> </table> <table id="webplus" class="template" cellpadding="1" cellspacing="1" width="98%"> <tr> <td>ID</td> <td>이름</td> <td>주민번호</td> <td>우편번호</td> <td>주소</td> <td>E-MAIL</td> </tr> <% while(ds.next()){ %> <a href="member_update.jsp?ID=<%=ds.getValue("ID")%>"> <tr> <td><%=ds.getValue("ID")%></td> <td><%=ds.getValue("이름")%></td> <td><%=ds.getValue("주민번호")%></td> <td><%=ds.getValue("우편번호")%></td> <td><%=ds.getValue("주소")%></td> <td><%=ds.getValue("EMAIL")%></td> </tr> </a> <% } %> </table> </form>
핸들러
<?xml version="1.0" encoding="utf-8"?> <handler id='select' title="member" code="@/codes.xml" dataMapping='/subji'> <screens> <include target="contentView" screen="@/test.html" parent="window"></include> </screens> <script> Data.send('executeCond'); UICtrol.load(Properties.RETRIEVE); </script> <controls><control xpath="condition"> <text id="sch_value" title="검색값" size="10" maxLength='10' /> <image id="bt_search" file="/common_img/btn_search_2.gif" postXML="condition" replaceXML="columnValues" reloadController="table"> <script event="onclick"> Data.sendXML('executeCond'); UICtrol.load(Properties.RETRIEVE); </script> </image> </control> <control xpath="list:columnValues/columnValue"> <listGrid id="table" paramName="ID:ID" > <script event="onclick"> Link.open("/member_update"); </script> <column id="ID" title="ID" align="center"/> <column id="NAME" title="이름" /> <column id="JUMIN" title="주민번호"/> <column id="ZIPCODE" title="우편번호"/> <column id="ADDR" title="주소" /> <column id="EMAIL" title="E-MAIL"/> </listGrid> </control> </controls> </handler>
스크린
<meta http-equiv=Content-Type content="text/html;charset=euc-kr"> <table width='700' align='center' cellpadding="0" cellspacing="0"> <tr> <td> 검색값(사번) : <w:text id="sch_value"> &nbsp;<w:image id="bt_search"/><br><br> </td> </tr> <tr> <td> <table id="table" class="template" cellpadding="1" cellspacing="1" width="98%"> </td> </tr> </table>
XML Manager(212-1)는 클라이언트(100)로부터 xml 형태로 구성된 데이터를 전달받아 해당 xml을 파싱(parsing)하여 데이터 맵핑부(Data Mapping)(212-2)에 전달하고 데이터 맵핑부(Data Mapping)(212-2)에서 받은 데이터를 클라이언트에게 xml형태의 데이터를 생성하여 전달하는 역할을 수행한다.
데이터 맵핑부(Data Mapping)(212-2)는 비즈니스 로직(220)과 연결하여 전달받은 데이터를 XML Manager(212-1)에 전달하는 비즈니스 로직(220)과의 데이터 인터페이스(data interface) 역할을 수행한다.
그리고 웹 플러스 엔진(120)은 자바스크립트(Javascript)로 구현되어 도 4에 도시된 바와 같은 절차를 수행하여 브라우저(110)의 요구에 따라 핸들러(213)와 스크린(214)을 호출하고 핸들러(213)를 파싱(Parsing)하고 스크린(214)과 ID정보로 매핑(Mapping)된 해당 개체의 html 파일을 생성하여 제공하며, 웹 서버(200)과 연결통신은 HTTP 및 xmlHttpRequest로 통신한다. 즉, 웹플러스 엔진(120)은 웹 브라우저(110)의 요청에 따라 웹플러스 엔진을 적재하고 있는 하나의 윈도우를 구성하는 기능과, 하나의 윈도우는 웹플러스 엔진을 재 적재할 필요 없이 팝업을 포함한 모든 화면에서 사용 가능하도록 해주는 기능, 화면과 기능 구현을 위한 공통 요소를 정의하고 있는 환경 설정 파일을 로드하고 파싱하여 전역 변수 및 세션 등과 같은 정보를 설정하는 기능, 화면과 기능을 구현하기 위해 환경 설정 파일 또는 URL을 통해 직접 정의하는 핸들러를 호출하는 기능, 핸들러에 정의된 스크린 파일들을 호출하여 설정된 윈도우 각각의 위치에 그리는 기능, 호출된 핸들러에 기술된 컨트롤러를 데이터 정보(XPATH) 및 화면 분류(ID)별로 나누고 엘리먼트(Element) 및 속성 정보를 파싱하는 기능, 핸들러의 컨트롤러 태그와 스크린 컨트롤러 태그의 아이디를 맵핑하여 해당 스크린 개체와 연결 기본 정보를 생성하는 기능, 핸들러의 컨트롤러 태그 속성을 통해 기존에 개발자가 직접 기능을 구현하던 것을 선언된 속성 정보만으로 다양한 화면 기능을 자동으로 구현하게 하는 기능, 핸들러의 스크립트 태그를 통해 이벤트 핸들러를 사용하며 이벤트가 발생시 내장함수 및 사용자 정의 스크립트를 통해 데이터 호출, 화면 전환, 팝업, 메시지 알림 등의 제공 기능과 다양한 사용자 추가 기능 구현을 가능하게 하는 기능, 핸들러와 스크린이 완전 분리됨에 따라 각각 중복 사용되는 화면과 기능을 핸들러에서 임포트하여 재사용하는 기능, 및 핸들러의 컨트롤러 태그 분류에 따라 원하는 데이터만 리로드(Reload)하는 기능을 처리한다.
도 4를 참조하면, 클라이언트(100)가 본 발명이 적용된 웹 서버(200)의 해당 웹 애플리케이션에 초기 접속을 시도할 때, 웹 서버(200)로부터 웹플러스 엔진(120)이 클라이언트(100)의 브라우저(110)에 로드된다(S401,S402).
이후 웹플러스 엔진(120)은 브라우저(110)의 요청(HTTP request)이 있으면 공통 도큐먼트를 생성한다(S403). 공통 도큐먼트는 도 6에 도시된 바와 같이 톱(top)과 바디(body), 보텀(bottom)으로 이루어진 공통으로 사용할 기본화면 구성으로서, 톱은 전체 화면에서 헤드부분에 해당하고, 바디는 메인부분으로 스크린의 내용을 보여주는 부분이며, 보텀은 전체화면에서 아래부분이다.
이어 start-config.xml과 message.xml 파일 읽어서 웹 애플리케이션의 실행될 기본적인 환경을 설정하고 화면을 제어하는 핸들러(213)를 호출한다(S404). start-config.xml 파일은 해당 웹 애플리케이션의 기본적인 환경을 컨트롤하고, message.xml 파일은 해당 웹페이지에서 클라이언트(100)가 특정 이벤트를 발생시에 클라이언트(100)에게 보여줄 경고(alert)창 내용을 나타내는 안내문이 정의되어 있다.
이어서 혹은 초기접속이 아닌 경우에는 호출된 핸들러(213)에 기술된 정보를 파싱한다(S405). 이때 다른 핸들러를 import하여 공용으로 재사용 가능하다. 이어 핸들러(213)에 정의된 스크린(214) 파일을 호출하여 공통 도큐먼트의 바디 부분에 해당 스크린(214)을 인클루드(include)한다(S406). 이에 따라 스크린을 재사용할 수 있다.
이어 핸들러 태그와 스크린 태그의 동일한 아이디(ID)명을 가진 태그(Tag)를 매핑(Mapping)하여 해당 개체의 기본 html 태그를 생성한다(S407). 이를 좀더 자세히 살펴보면, 다음과 같다.
a) 웹 플러스 엔진이 핸들러의 엘리먼트 태그의 id정보를 해석한다.
b) 웹 플러스 엔진이 a)단계에서 찾은 id정보로 스크린의 태그의 id에서 동일한 id를 찾는다.
c) 웹 플러스 엔진이 a), b)단계를 통해 찾은 매핑정보를 html의 기본 태그로 생성한다.
d) 다시 a)단계로 순환하여 해당 핸들러와 스크린의 매핑을 실시한다.
예컨대, 다음 표 3과 같이 id가 "sch_value"인경우 핸들러와 스크린의 매핑으로부터 다음 표 4와 같이 html 기본 태그를 생성한다.
구분 소스
핸들러 . . <text id="sch_value" title="검색값" size="10" maxLength='10' /> .
스크린 . . <w:text id="sch_value"> .
html태그 <input type="text" id="sch_value">
이어, 핸들러(213)에 xml의 엘리먼트의 정의된 속성과 이벤트, 액션을 해석하여 이전 단계에 생성된 기본 html 태그의 속성과 스크립트 등을 추가로 설정한다(S408). 이를 좀더 자세히 살펴보면, 다음과 같다.
1) 웹플러스 엔진이 handler의 Element Tag의 event와 action과 관련된 개체의 정보를 찾거나, 기술된 각각의 속성(Attribute) 정보를 해석한다.
2) 웹플러스 엔진이 handler의 Element Tag에 기술된 속성 정보를 토대로 handler와 screen이 id가 같은 개체의 html 속성을 추가하고, 1단계에서 찾은 정보를 토대로 event와 action과 관련된 스크립트를 추가로 작성 한다.
3) 다시 1)단계로 순환하여 재실행한다.
예컨대, 상기 표4와 같이 html 태그가 생성된 경우, 핸들러와 스크린으로부터 다음 표 5와 같이 속성을 부여한다.
구분 소스
핸들러 . . <text id="sch_value" title="검색값" size="10" maxLength='10' /> .
스크린 . . <w:text id="sch_value"> .
html태그 <input type="text" id="sch_value" size="10" maxlength="10">
그리고 공통 도큐먼트의 바디 부분을 브라우저에 출력하고, 톱과 보텀에 해당하는 스크린을 호출하여 브라우저로 출력한다(S409,S410).
이어서, 상기와 같이 구성되는 본 발명에 따른 웹 응용 시스템에서 웹 브라우저와 웹 서버간의 전체 동작 절차를 도 5를 참조하여 설명하면 다음과 같다.
도 5를 참조하면, 클라이언트측의 브라우저(110)가 요구하면 웹 플러스 엔진(120)이 공통 도큐먼트를 생성한다(S1,S2). 공통 도큐먼트는 앞서 설명한 바와 같이 톱(top)과 바디(body), 보텀(bottom)으로 이루어진 공통으로 사용할 기본화면 구성이다.
이어 웹 플러스 엔진(120)이 xmlHttpRequest로 웹 서버(200)에 해당 화면의 핸들러를 요청하면 웹 서버(200)가 핸들러(213)를 제공하고, 핸들러(213)에 사용할 스크린을 요청하면 스크린(214)을 전달한다(S3~S6). 이때 웹서버의 프리젠테이션 계층(210)은 본 발명에 따라 이전 웹 애플리케이션 모델 형태에 따른 하나의 파일에 디자인과 소스가 결합된 형태가 아닌 프로그램 소스에 해당하는 핸들러(213)와 디자인에 해당하는 스크린(214)으로 구분된 독립된 파일로 관리하고 있다.
이어 웹플러스 엔진(120)이 핸들러(213)와 스크린(214)을 파싱(Parsing) 및 매핑(Mapping) 정보를 토대로 HTML 출력데이터를 생성하여 웹 브라우저(110)에 응답한다(S7,S8).
이벤트가 발생되어 데이터가 요구되면, 웹플러스 엔진(120)이 웹 서버의 XML Manager(212-1)로 xmlHttpRequest를 이용하여 데이터를 요청하고, 웹 서버의 XML Manager(212-1)는 xml 파싱을 수행한 후 Data Mapping(212-2)로 VO(Value Object), 모델(Model), 리스트(List) 형태의 데이터를 전달하고, 이에 따라 Data Mapping(212-2)는 비지니스 로직을 호출하여 해당 처리를 요청한다(S9~S12).
비지니스 로직(220)은 요구되는 응용의 성격에 따라 데이터베이스관리시스템 등과 같은 자원(300)을 통해 요구사항을 처리한 후, 그 결과 데이터를 Data Mapping(212-2)로 전달하고, Data Mapping(212-2)는 다시 XML Manager(212-1)로 해당 데이터 정보를 VO(Value Object), 모델(Model), 리스트(List) 형태로 전달한다(S13~S15).
그리고 XML Manager(212-1)는 Data Mapping(212-2)가 제공하는 VO(Value Object), 모델(Model), 리스트(List) 형태의 데이터를 xml로 생성한 후 웹 플러스 엔진(120)으로 응답하고, 이에 따라 웹 플러스 엔진(120)은 수신된 xml정보를 파싱한 후 브라우저(110)를 갱신하기 위한 html 정보로 전환하여 브라우저(110) 화면의 일부를 갱신한다(S16~S19).
이와 같이 본 발명에 따른 웹 응용 모델은 브라우저의 요청을 웹 플러스 엔진이 받아 웹서버로 전달하고, 웹서버로부터 받은 핸들러와 스크린을 이용하여 브라우저를 위한 html 파일을 생성한다. 즉, 본 발명은 웹 브라우저를 통해 사용자에게 보여지는 화면을 만드는 모든 사용자 인터페이스(UI) 작업은 클라이언트의 웹 플러스엔진에서 처리하고, 서버는 비지니스 로직과 데이터만을 처리하여 클라이언트와 서버 사이의 역할을 균형 있게 분배하여 자원을 효율적으로 사용할 수 있게 한다.
이상에서 설명한 바와 같이, 본 발명에 따르면 화면을 구성하는 웹 애플리케이션의 프로그램 소스에 해당하는 핸들러와 화면의 디자인에 해당하는 스크린으로 구분하여 관리함으로써 새로운 웹 응용의 개발을 용이하게 함과 아울러 유지보수를 편리하게 하고, 사용자 인터페이스(UI)를 담당하는 기능을 클라이언트측에서 처리하여 서버의 부하를 줄일 수 있음과 아울러 애이잭스(AJAX)와 같은 최신의 웹 표준을 적용하여 화면의 리로드(Reload)를 최소화하여 유려한 화면구성과 로드 시간을 줄일 수 있는 효과를 제공한다.
또한 WWW 상의 소프트웨어 애플리케이션에 액세스하는 기존 웹 애플리케이션 모델에 추가적인 기능을 부가하여 일반 사용자에게는 쉽고 유려한 웹페이지의 구성과 빠른 응답속도를 제공하고, 소프트웨어 개발자(프로그래머, 디자이너)에게는 기존 개발방식의 획기적인 변화를 통해 웹 애플리케이션 프로그램을 개발하기 위한 서로 다른 개발언어에 종속되지 않고, 디자인과 소스파일의 완전한 분리를 이루어 프로그래머와 디자이너에게 독립된 작업 환경을 제공하여 개발 생산성의 향상과 유지보수의 용이성을 제공한다.
또한 소프트웨어 개발자가 표준 액세스 프로토콜을 채택하는 것을 허용하여, 개발자들로 하여금 HTML 인식 브라우저를 사용할 수 있는 모든 컴퓨터 시스템에 대한 지원을 제공할 수 있도록 해준다.
그리고 본 발명은 해당 웹 애플리케이션의 운영자 및 운영조직에게 해당 웹 애플리케이션을 개발하기 위해 서로 다른 플랫폼에 종속되지 않는 독립적인 환경을 제공하여 각각의 상이한 플랫폼 개수만큼이나 동일한 컨텐츠를 가진 웹 애플리케이션 프로그램을 서로 다른 플랫폼 별로 만들 필요 없이 상기 발명에 따라 하나의 웹 애플리케이션으로 각각의 플랫폼에 활용 가능하므로 비용과 개발 기간 단축효과를 통해 소규모의 운영자 및 운영조직이라 하더라도 커다란 시장에 접근할 수 있는 공개적 경로를 제공할 수 있다.
본 발명은 상기한 실시예에 한정되지 않으며, 본 발명이 속한 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의해 많은 변형이 가능함은 명백하다.

Claims (8)

  1. 웹 브라우저가 구비된 클라이언트와 다양한 종류의 서버 플랫폼들로 구현된 웹 서버로 이루어진 웹 환경에서 웹 애플리케이션(Web Application)을 개발하기 위한 솔루션 인터페이스(interface) 방법에 있어서,
    상기 웹 서버상에 웹 페이지들을 디자인에 해당하는 스크린과, 프로그램에 해당하는 핸들러로 구분하여 별개의 파일로 구현하고,
    상기 클라이언트측에서 실행되는 웹플러스 엔진이 상기 웹브라우저의 요구에 따라 상기 핸들러를 불러오고, 상기 핸들러에 대응하는 스크린을 불러오며, 상기 핸들러와 상기 스크린을 매핑하여 html 태그를 생성한 후 속성을 부여하여 상기 웹브라우저에 제공함으로써
    디자인과 프로그램을 동시에 개발하여 개발기간을 단축하고 유지보수를 용이하게 함과 아울러 상기 웹 서버의 플랫폼에 관계없이 독립적으로 개발할 수 있는 것을 특징으로 하는 웹 응용을 위한 프리젠테이션 방법.
  2. 클라이언트- 웹 서버 구조에서 웹 응용(Application)을 제공하기 위한 방법에 있어서,
    상기 클라이언트에서 실행되는 웹 플러스 엔진이 웹 브라우저의 요청에 따라 공통 도큐먼트를 생성하는 제1 단계;
    상기 웹 플러스 엔진이 해당 화면의 핸들러를 요청하면 상기 웹 서버가 핸들 러를 제공하는 제2 단계;
    상기 웹 플러스 엔진이 해당 핸들러에 사용할 스크린을 요청하면 상기 웹 서버가 해당 스크린을 제공하는 제3 단계;
    상기 웹 플러스 엔진이 상기 핸들러를 파싱(parsing)하고 상기 스크린과의 매핑(mapping)을 이용하여 웹 브라우저에 응답할 html을 만들어 웹브라우저에 출력하는 제4 단계;
    이벤트가 발생되어 데이터가 요구되면, 상기 웹 플러스 엔진이 상기 웹 서버에 데이터를 요청하고, 상기 웹 서버는 소정의 비지니스 로직을 실행하여 그 결과 데이터를 xml 파일로 응답하는 제5 단계; 및
    상기 웹 플러스 엔진이 상기 xml 파일을 파싱하여 갱신된 데이터를 포함하는 html 파일을 상기 웹 브라우저에 제공하는 제6 단계를 구비한 것을 특징으로 하는 웹 응용을 위한 프리젠테이션 방법.
  3. 제2항에 있어서, 상기 제5 단계는
    상기 웹 플러스 엔진이 상기 웹 서버의 xml Manager에 데이터를 요청하면 상기 xml Manager가 xml 파싱 후 데이터 맵핑(Data Mapping)을 통해 해당 데이터를 요구하고, 상기 Data Mapping는 비지니스 로직을 호출하여 결과 데이터를 xml Manager로 전달하며, 상기 xml Manager는 결과 데이터를 xml 파일로 생성하는 것을 특징으로 하는 웹 응용을 위한 프리젠테이션 방법.
  4. 클라이언트와 웹 서버로 이루어진 웹 환경에 있어서,
    상기 클라이언트의 접속이 초기접속이면 상기 웹 서버로부터 웹 플러스 엔진을 로드하는 단계;
    상기 웹 플러스 엔진이 웹 브라우저의 요청에 따라 공통 도큐먼트를 생성하는 단계;
    상기 웹 플러스 엔진이 구성 파일을 리드(Read)하여 첫화면을 제어하는 핸들러를 호출하는 단계;
    상기 웹 플러스 엔진이 호출된 핸들러에 기술된 엘리먼트(Element) 정보를 파싱(Parsing)하는 단계;
    상기 웹 플러스 엔진이 상기 핸들러에 정의된 스크린 파일을 호출하는 단계;
    상기 웹 플러스 엔진이 핸들러를 파싱(parsing)하고 핸들러 태그(tag)와 스크린 태그(tag)의 아이디(id)를 맵핑(mapping)하여 해당 개체의 기본 html태그를 생성하는 단계; 및
    상기 웹 플러스 엔진이 핸들러의 엘리먼트(Element)에 정의된 속성(Attribute)를 해석하여 이전 단계에 생성된 기본 html에 속성을 설정하는 단계를 구비한 것을 특징으로 하는 웹 응용을 위한 프리젠테이션 방법.
  5. 클라이언트-서버 구조로 된 웹 환경에 있어서,
    상기 클라이언트에서 실행되는 웹 브라우저;
    초기 접속시 상기 서버로부터 상기 클라이언트로 로드되고, 상기 웹 브라우저의 요청에 따라 상기 서버로 해당 화면의 핸들러와 스크린을 요청하여 파싱 및 매핑을 통해 html 출력 데이터를 생성하여 상기 웹 브라우저로 제공하고, 이벤트에 따라 새로운 데이터가 필요하면 상기 서버로 동기/비동기방식으로 통신하여 xml 데이터를 전달받아 html 정보를 추가하여 상기 웹 브라우저로 전달하는 웹 플러스 엔진; 및
    상기 서버에서 실행되고 문서를 핸들러와 스크린으로 구분하여 관리하면서 상기 웹 플러스 엔진의 요구에 따라 핸들러와 스크린을 제공하는 프리젠테이션부를 구비한 것을 특징으로 하는 웹 응용 개발 시스템.
  6. 제5항에 있어서, 상기 프리젠테이션부는
    웹 응용의 화면을 이루는 요소인 스크린과, 웹 응용의 로직을 이루는 요소로서 상기 스크린과 데이터를 연결해주며 상기 스크린을 제어하는 핸들러로 이루어진 웹 플러스 뷰어 매니저(Manager)와,
    상기 클라이언트가 요청하는 데이터를 전달해주기 위해 상기 웹 플러스 엔진으로부터 넘겨받은 xml 정보를 파싱하여 데이터 맵핑(Data Mapping)부로 전달하고, 상기 데이터 맵핑(Data Mapping)부에서 받은 데이터를 xml정보로 생성하여 클라이언트에게 전달는 XML 매니저(XML Manager)와, 웹 응용이 요구하는 서비스를 처리하는 통상의 비즈니스 로직을 연결하여 해당 데이터를 찾아 상기 XML 매니저(Manager)에게 데이터를 전달하는 상기 데이터 맵핑(Data Mapping)부로 이루어진 웹 플러스 데이터 컨트롤러로 구성된 것을 특징으로 하는 웹 응용 개발 시스템.
  7. 제6항에 있어서, 상기 핸들러는
    테이터셋(Dataset)과 트랜스퍼(Transfer), 컨피그(Config), 내장기능함수, 에이잭스(Ajax)기반 컴포넌트 라이브러리를 포함하는 것을 특징으로 하는 웹 응용 개발 시스템.
  8. 제5항에 있어서, 상기 웹플러스 엔진은
    자바스크립트(Javascript)로 구현되어
    상기 웹 브라우저의 요청에 따라 웹플러스 엔진을 적재하고 있는 하나의 윈도우를 구성하는 기능;
    상기 하나의 윈도우는 상기 웹플러스 엔진을 재 적재할 필요 없이 팝업을 포함한 모든 화면에서 사용 가능하도록 해주는 기능;
    화면과 기능 구현을 위한 공통 요소를 정의하고 있는 환경 설정 파일을 로드하고 파싱하여 전역 변수 및 세션 등과 같은 정보를 설정하는 기능;
    화면과 기능을 구현하기 위해 환경 설정 파일 또는 URL을 통해 직접 정의하는 핸들러를 호출하는 기능;
    상기 핸들러에 정의된 스크린 파일들을 호출하여 설정된 윈도우 각각의 위치에 그리는 기능;
    상기 호출된 핸들러에 기술된 컨트롤러를 데이터 정보(XPATH) 및 화면 분류(ID)별로 나누고 엘리먼트(Element) 및 속성 정보를 파싱하는 기능;
    상기 핸들러의 컨트롤러 태그와 상기 스크린 컨트롤러 태그의 아이디를 맵핑하여 해당 스크린 개체와 연결하여 기본 정보를 생성하는 기능;
    상기 핸들러의 컨트롤러 태그 속성을 통해 기존에 개발자가 직접 기능을 구현하던 것을 선언된 속성 정보만으로 다양한 화면 기능을 자동으로 구현하게 하는 기능;
    상기 핸들러의 스크립트 태그를 통해 이벤트 핸들러를 사용하며, 이벤트가 발생시 내장함수 및 사용자 정의 스크립트를 통해 데이터 호출, 화면 전환, 팝업, 메시지 알림 등의 제공 기능과 다양한 사용자 추가 기능 구현을 가능하게 하는 기능;
    상기 핸들러와 상기 스크린이 완전 분리됨에 따라 각각 중복 사용되는 화면과 기능을 상기 핸들러에서 임포트하여 재사용하는 기능; 및
    상기 핸들러의 컨트롤러 태그 분류에 따라 원하는 데이터만 리로드(Reload)하는 기능을 수행하는 것을 특징으로 하는 웹 응용 개발 시스템.
KR1020060074702A 2006-08-08 2006-08-08 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용개발 시스템 KR100831393B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060074702A KR100831393B1 (ko) 2006-08-08 2006-08-08 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용개발 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060074702A KR100831393B1 (ko) 2006-08-08 2006-08-08 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용개발 시스템

Publications (2)

Publication Number Publication Date
KR20080013324A KR20080013324A (ko) 2008-02-13
KR100831393B1 true KR100831393B1 (ko) 2008-05-21

Family

ID=39341097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060074702A KR100831393B1 (ko) 2006-08-08 2006-08-08 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용개발 시스템

Country Status (1)

Country Link
KR (1) KR100831393B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344105A (ja) 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体
KR20030063922A (ko) * 2002-01-24 2003-07-31 (주) 자이오넥스 엑스엠엘 기반의 웹 어플리케이션 구현 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344105A (ja) 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体
KR20030063922A (ko) * 2002-01-24 2003-07-31 (주) 자이오넥스 엑스엠엘 기반의 웹 어플리케이션 구현 시스템 및 방법

Also Published As

Publication number Publication date
KR20080013324A (ko) 2008-02-13

Similar Documents

Publication Publication Date Title
US7937670B2 (en) Data sharing system, method and software tool
US7707563B2 (en) System and method for network-based computing
US7912935B2 (en) Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture
US8578333B2 (en) Method and system for client-side user interface enhancement to enable application integration and portalisation
US8965864B2 (en) Method and system for efficient execution and rendering of client/server interactive applications
US6961750B1 (en) Server-side control objects for processing client-side user interface elements
US7509649B2 (en) System and method for conversion of generic services&#39; applications into component based applications for devices
US7954107B2 (en) Method and system for integrating the existing web-based system
US8108830B2 (en) System and method for building wireless applications with intelligent mapping between user interface and data components
JP5439190B2 (ja) It向けサーバベースのウェブアプリケーションを作成するための方法およびシステム
US7493594B2 (en) System and method for designing component based applications
US8086995B2 (en) System and method for flexible visual representation of device fonts
JP5248964B2 (ja) ワイヤレス・アプリケーションのスクリーン・エレメント又はデータ・オブジェトを生成する方法及びシステム
AU770160B2 (en) Automated web interface generation for software coded applications
US7007266B1 (en) Method and software system for modularizing software components for business transaction applications
US20050076294A1 (en) Method and apparatus for supporting layout management in a web presentation architecture
US20090265705A1 (en) System and method for developing and deploying computer applications over a network
US20060248121A1 (en) System and method for supporting packaging, publishing and republishing of wireless component applications
US10133766B2 (en) Accessing and editing virtually-indexed message flows using structured query langauge (SQL)
CN111008051A (zh) 基于多维规则的动态布局
WO2014045826A1 (ja) Webサーバシステム、辞書システム、辞書呼び出し方法、画面コントロール表示方法、およびデモアプリケーション生成方法
KR100831393B1 (ko) 웹 응용을 위한 프리젠테이션 방법 및 이를 이용한 웹 응용개발 시스템
KR20230036670A (ko) 웹 응용 개발 시스템
US20050076329A1 (en) Method and apparatus for supporting configuration of a web application in a web presentation architecture
CN114625386A (zh) 用于更新应用的界面布局的方法和装置

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
N231 Notification of change of applicant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee