KR20110016124A - 모듈화된 웹클라이언트 어플리케이션 프레임워크와 xml을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

모듈화된 웹클라이언트 어플리케이션 프레임워크와 xml을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR20110016124A
KR20110016124A KR1020090073665A KR20090073665A KR20110016124A KR 20110016124 A KR20110016124 A KR 20110016124A KR 1020090073665 A KR1020090073665 A KR 1020090073665A KR 20090073665 A KR20090073665 A KR 20090073665A KR 20110016124 A KR20110016124 A KR 20110016124A
Authority
KR
South Korea
Prior art keywords
scenario
web
node
client application
transaction
Prior art date
Application number
KR1020090073665A
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 KR1020090073665A priority Critical patent/KR20110016124A/ko
Publication of KR20110016124A publication Critical patent/KR20110016124A/ko

Links

Images

Classifications

    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Primary Health Care (AREA)
  • Human Computer Interaction (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 전통적인 프로그램 함수 호출에 의한 제어구조를 따르지 않고 프레임워크에서 제어의 반전(Inversin Of Control)을 제공하는 방법으로 특정 컴포넌트(Component, 여기서는 액터(Actor)라 한다)를 상속 받는 사용자 컴포넌트를 POJO(Plain Old Java Object) 형태로 작성하면 이후 이 액터들을 시각적인 플로우차트(Flow Chart)형태로 제어하여 수행시킬 수 있도록 하는 발명이다. 액터를 제어하는 정보를 가진 파일은 XML형식을 따르며 본 발명에서는 시나리오라고 하고 시나리오를 시각적인 플로우차트 형식으로 작성하는 도구를 시나리오 에디터(Scenario Editor)라고 하며 도4에서 편집 화면의 예시를 나타낸다. 시나리오는 액터의 수행순서뿐 아니라 에러처리, 분기, 점프, 호출 그리고 트랜젝션를 지시할 수 있다. 이 시나리오를 읽어 서버에서 액터를 로딩하고 수행하는 장치를 시나리오 수행기(Scenario Processor)라고 명명한다.
본 발명은 시스템 개발을 위하여 설계된 모듈을 컴포넌트로 구형하고 컴포넌트들을 시각적으로 프로그래밍함으로써 프로그램의 작성과 읽는 것을 용이하게 할 뿐 아니라 서로 다른 프로그래머들이 작성한 컴포넌트의 공유 비율을 극대화시키는 장점이 있어 개발시 시간 단축과 오류 발견 및 수정시간을 단축하며 개발생산성을 향상시키며 개발 후 유지보수 비용을 절감시키는 효과를 가져온다.
프레임워크, XML, 객체지향, 웹어플리케이션

Description

모듈화된 웹클라이언트 어플리케이션 프레임워크와 XML을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체 {Web contents Managenment Method in Moduled Web-client application framework using XML}
본 발명은 객체지향형 어플리케이션 프레임워크와 이를 이용한 웹 컨텐츠처리방법에 관한 것으로 특히 자바스크립트를 이용하여 액터(Actor)를 작성하고 이를 모듈화하여 재사용성을 높이며, 시각화한 디자인과 로직부분을 MVC(Model View Controller)로 분리하도록 함으로써 효과적이며 객체지향적인 방법으로 웹어플리케이션 개발이 가능하도록 하는 웹클라이언트 어플리케이션 프레임워크에 관한 것으로 특허 XML파일을 활용하여 컴파일을 다시 하지 않아도 동작정보를 서술적 (Descriptive)으로 기술할 수 있는 특징을 가지고 있다.
인터넷이 포털로 대변되는 일방적으로 정보를 제공하는 웹형태에서 최근에 인터넷에 연결된 고객의 참여를 이끌어내고 공유가 가능한 환경을 제공하는 웹2.0형태로 빠르게 전환되는 추세인데 이러한 웹2.0시대에서 웹을 플랫폼으로 간주하는 다양한 어플리케이션들이 등장하게 되었다. 이러한 다양한 기능의 인터페이스를 가진 웹어플리케이션의 수요가 급증함에 따라 그동안 웹클라이언트에서 동적인 요소 를 제공하기 위해 사용되었던 자바스크립트의 비중 역시 커지고 있다.
하지만 기존의 자바스크립트는 단순한 동적인 효과를 제공하는 라이브러리의 측면이 강조된 것으로 이를 이용한 복잡한 웹어플리케이션을 개발하기 위해서는 방대한 순차적인 프로그래밍이 요구되어 프로그램에 대한 전문적인 교육을 받은 일부 전문가에 작성되어야 하는 곤란한 점이 있었고 또한 자바스크립트는 웹브라우저가 실행하는 프로그래밍언어로서 자바와는 달리 다양한 변수의 형 및 클래스 또는 상속 등을 사용할 수 없어 객체지향의 특성이 부족하다. 따라서 각각의 기능을 수행하는 모듈을 개발하여 통합하는 방식을 선호하는 웹어플리케이션의 특성에 맞지 않고 각 모듈간의 상호의존성이 커져서 개발시 모듈의 재사용이나 분업이 곤란하고 유지보수가 어려운 문제점이 있었다.
또한 기존의 방법에서는 여러가지 부류의 작업흐름을 모델링하기 위해 시각적 작업흐름 디자이너를 구축하는데 이용할 수 있는 확장가능하고 커스터마이즈가 가능하고 또한 재호스팅 가능한 작업흐름이 디자이너인 가능한 프레임워크가 없어 사용자로 하여금 그래픽적으로 작업흐름 프로세서를 디자인하고 또 자바 등 프로그래밍 언어로 비지니스 로직을 연관해 줄 수 있는 수단 또한 미흡하여 작업흐름을 매끄럽게 임시적으로 동적인 편집을 제공하지 못하는 문제가 있다.
또한 일반적인 프로그램 개발을 모듈별로 설계하여 각 모듈을 특정 클래스(액터, Actor)를 상속 받아 컴포넌트로 개발하여 이 액터의 제어를 전통적인 프로그램 호출이 아닌 XML을 이용하여 제어한다. 최근의 프레임워크는 제어의 역행(Inversion Of Control)이라고 불리는 이 기술을 많이 사용하는데 이는 전통적인 함수의 호출을 통한 프로그램 작성 방식이 수학적으로 완벽하나 경우에 따라서는 가독성이 떨어지고 특히 프로그램 작성방식이 다른 사람들 간의 프로그램을 상호간에 이해하는데 많은 노력과 시간이 소요된다. 이 때문에 프레임워크마다 서로 다른 각각 공통적인 부분을 동일하게 처리하기 위하여 또는 반복적인 작업을 줄이기 위하여 특정부분의 제어를 프레임워크가 처리하거나 처리하는 방식을 통일시키는데 이때 어플리케이션 프로그램의 입장에서 보면 전통적인 함수 호출이 가리워진 상태로 프로그램을 개발하는 문제점이 있었다.
웹어플리케이션의 특성상 기존이 클라이언트-서버 방식의 프로그램과는 다르게 텍스트 기방의 HTML(Hyper Text Markup Language)와 프로그램이 하나의 파일 안에 존재하게 되어 (예, JSP, ASP 등) 다수의 프로그램머가 참여하여 개발하는 시스템의 경우 시스템 운영유지/보수가 어려워지고 비용이 많이 소요되는 문제점이 대두 되었다.
또한 자바개발이 웹어플리케이션 개발로 사용되기 시작한 이후로 최근에는 대형 엔터프라이즈 시스템이 웹어플리케이션으로 개발되는 등 웹어플리케이션의 크기가 매우 커졌으며 하나의 웹어플리케이션 시스템을 수십명이 운영유지보수하는 경우도 일반적인 경우가 되었다.
이러한 문제점 때문에 객체지향프로그래밍(Object Oriented Programming)개발 방식의 하나인 MVC(Model View Controller) 개발개념이 포함된 웹어플리케이션 개발 프레임워크가 도입되었다. MVC 개발방식이란 통상 데이터베이스로 대표되는 모델부분과 사용자 인터페이스 화면 부분인 뷰(View) 그리고 제어의 흐름과 관리하는 제어(Control)부분을 각각 분리하여 프로그램을 개발하여 서로간의 간섭을 최소한하는 방식이다. 이는 분업개발이 가능하고 코드의 재사용을 강화하고 유지보수 비용을 줄이기 위한 목적이다. 프레임워크는 구체적이며 확장 가능한 기반코드를 가지고 있으며, 설계자가 의도하는 여러 디자인 패턴의 집합으로 구성되어 있다. 이를 GoF의 Ralph Johnson은 "소프크웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"이라고 표현하였다.
이러한 프레임워크를 도입하는 이점으로는 기술적인 영역에서 소모적이고 반복적인 코딩을 프레임워크가 소화하여 개발자가 비즈니스 로직에만 전념할 수 있도록 해주는데 있으며 유지보수가 용이하고 표준화된 심플한 코드의 작성을 유도하고 개발의 생산성을 높이며 개발자들이 모두 일관된 방식으로 분업하여 개발할 수 있기 때문이다.
현재 프레임워크 종류로는 적용되는 분야에 따라서 웹MVC프레임워크, Persistent/ORM 프레임워크, 테스팅 프레임워크, 로깅 프레임워크, 보안 프레임워크, 도메인 프레임워크, 종합/어플리케이션 프레임워크 등으로 나뉘는데 이중 MVC프레임워크가 중심이 되어 다른 특정 목적의 프레임워크를 더하여 한 시스템의 개발 프레임워크를 구성하게 된다. 현재 전 세계적으로 많이 사용되는 프레임워크로는 Struts, Spring, Log4j, iBATIS, velocity 등이 있다.
최근 컴퓨터 하드웨어의 비용이 싸지고 인터넷 등장이후 폭발적으로 증가된 컴퓨터 사용인구의 증가로 인하여 기업의 전산시스템 도입이 증가하였다. 또한 기업의 전산시스템 개발을 위하여 국내에서도 보통 수십 명의 프로그래머로부터 수백 명의 프로그래머들이 참여하는 시스템 개발 프로젝트가 일반적이 될 만큼 그 규모 또한 크게 증가되었다. 이렇게 수십 또는 수백 명이 참여하여 비교적 짧은 시간 안에 개발하는 기업 전산시스템의 경우 그 비즈니스의 복잡성에도 불구하고 고도의 생산성이 요구되고 있다. 이로 인하여 소프트웨어 공학적인 측면에서 시대에 따라 새로운 방법론이 등장하였으며 표준 설계언어인 UML의 등장으로 각종 단계의 설계문서를 시각화 표준화하는 시도도 있다.
이는 업무논리(Business Logic)을 어떻게 작성하고 어떻게 표현할 것인가에 대한 문제로 업무논리를 작성하고 표현하는 방법이 간단하고 명료할수록 개발 생산성이 향상되고 유지보수 비용이 적게 발생하기 때문이다. 본 발명은 기업의 전산 시스템 개발시 개발 생산성을 높이기 위한 것으로서 프로그램의 실행을 시각화하고 프로그램 모듈간 높은 응집도와 낮은 결합도(High Cohesion, Low Coupling)를 구현하기 쉽도록 어플리케이션 모듈을 컴포넌트화하였다 또한 XML을 이용하여 플로우차트(Flow Chart) 형식으로 시각화되는 수행절차는 비즈니스 로직 구현을 명료하고 간결하게 하여 개발 생산성뿐만 아니라 운영유지보수의 효율성을 높여 준다.
본 발명의 목적은 이상에서 언급된 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
여러 프로그래머가 개발하는 전산 시스템 개발의 생산성과 프로그래머간의 협업기능을 증가하기 위하여서는 소프트웨어 공학적인 설계 개발 공법의 적용이 용이하여야 한다. 또한 프로그램 구현에 있어서도 수학적인 알고리즘의 개발에는 유용하나 읽기에 난해한 전통적인 프로그램 방식 외에 제어의 반전(Inversion Of Control)을 통한 통일된 유형의 프로그램 개발 방식의 도입이 필요하다. 또한 많은 프로그래머가 서로 공유할 수 있는 방식이 필수적이며 이를 위해서는 시각적으로 프로그램의 수행을 보여 줄 수 있는 방식이 필수적이며 이를 위하여서 시각적으로 프로그램의 수행을 보여 줄 수 있는 본 발명을 하게 되었다. 본 발명은 프로그램 개발자가 각각의 필요한 모듈을 특정 컴포넌트를 상속받아 구현하면 이후 상속받아 개발한 컴포넌트들을 시각적인 플로우차트(Flow chart)형태로 제어하여 수행시킬 수 있도록 하였다. 사용자 컴포넌트를 제어하는 정보를 가진 파일은 XML형식을 따르며 이 XML를 시각적인 플로우차트 형식으로 작성하는 도구를 개발하여 컴포넌트의 수행을 시각적은 플로우차트 형식으로 작성하는 도구를 개발하여 컴포넌트의 수행을 시각적으로 그릴 수 있도록 한다. 이 XML은 사용자 컴포넌트의 수행뿐만 아니라 특정조건에 따른 분기, 에러처리, 또는 다른 XML의 호출 그리고 시각적인 트랜젝션 처리를 지시하는 정보를 가지고 있으며 이 노드들로 수행 플로우차트를 편집할 수 있도록 한다.
상기와 같은 목적을 달성하기 위하여 본 발명의 실시 예에 따른 모듈화된 웹 클라이언트 어플리케이션 프레임워크을 구성하기 위한 로직컬 아키텍쳐의 구성은 도2에 구성된 바와 같이 표현될 수 있다. 본 발명의 구성은 XML을 이용하여 매소드 재정의 (Overriding) 및 상속이 가능하도록 하는 객체지향적으로 시나리오를 작성하여 보관하는 시나리오 저장부와 프로그램머가 직접 제작하는 최소 기능단위의 노드들로 실행코드가 있는 액터 저장부와 작업자가 시각화된 비즈니스 시나리오는 작성할 수 있도록 하는 시나리오 에디터(프레임워크)와 외부 DataBase를 활용할 수 있도록 하는 Database인터페이스부와 작성된 시나리오를 웹상에서 확인하고 점검할 수 있는 인터넷 연결부로 구성할 수 있다.
시나리오 저장부에 저장된 시나리오 파일은 XML로 구성된 Well-formed XML 파일로서 하나의 시나리오 파일은 여러 개의 시나리오로 구성될 수 있다. 이러한 시나리오는 마치 Flowchart를 그리듯 작성이 가능한 Business Logic의 표현으로 몇 개의 기능 단위(Node)들과 몇 개의 연결선(Connector)들로 구성된다.
시나리오 저장부에 저장된 시나리오는 시나리오 파일명과 시나리오의 시작 노드이름의 조합으로 호출되어 실행되며, 시나리오 노드는 시나리오가 동작하는데 있어 필수적인 최소기능단위로서 시나리오를 구성한다는 것은 여러 개의 시나리오 노드들을 개발자가 원하는 대로 연결하는 것이다.
액터 저장부는 프로그램머가 직접 제작한 액터 클래스(코드)들이 저장되어 있는 곳으로 최소 기능단위 노드로 표현된다. 이렇게 개발자가 작성한 액터 클래스인 액터노드를 Drag&Drop방식으로 시나리오에 추가할 수 있으며 언제든지 재사용이 될 수 있다. 이러한 액터클래스의 작성예는 도3와 같다.
시나리오 에디터는 액터라 부르는 단위 모듈들을 Drag&Drop 방식으로 조합하여 비즈니스 시나리오를 구성할 수 있도록 해주는 인터페이스부분으로 시나리오 에디터는 크게 세 부분으로 나뉘는데 Node Property를 설정하는 영역과 시나리오 노드와 연결선을 Drag&Drop 방식으로 편집하여 시나리오를 작성하는 영역과 액터들이 표시되는 영역이다. 이러한 구성예로서 도4와 같이 표현될 수 있다.
Database 인터페이스부분은 Database Connection을 이용하여 여러 개의 DB에 접속하여 여러 개 Database의 Data Source를 등록하여 한꺼번에 여러 개의 Database에 Transaction을 걸 수 있도록 해주는 부분이다. 이를 실행하기 위한 노드로는 트랜잭션 시작 노드, 트랜잭션 롤백 노드, 트랜잭션 커밋 노드들이 사용된다.
인터넷 연결부는 시나리오 저장부에 저장된 시나리오를 동작하도록 해주는 부분으로 실행시키고자하는 해당 시나리오의 주소를 웹브라우저에 호출하면 된다. 특히 Dynamic Class Loader를 이용하여 실시간 프로그램 변경이 가능하도록 하였는데, 웹어플리케이션 운용시 프로그램에서 변경사항을 적용하였으나 변경사항이 반영되지 않아 웹 어플리케이션 전체를 재시작하거나 서버 자체를 재시작해야 하는 경우가 발생하는데, 인터넷 연결부가 Dynamic Class Loader 기능을 가지고 있어 자체적으로 클래스를 재로딩하는 기능이 있으므로 어플리케이션 변경사항을 서버를 재시작하지 않고 실시간으로 반영되도록 해준다.
본 발명은 모듈화된 웹클라이언트 어플리케이션 프레임워크를 제공하기 위해 액터라는 단위모듈들을 Drag&Drop 방식으로 조합하여 시각화된 비지니스 시나리오를 구성할 수 있으며, 이를 통해 전체 사이트 흐름을 한 눈에 알 수 있도록 하여 일관되고 체계화된 사이트 관리를 가능하게 하여 주고, 개발자가 비즈니스 흐름에 필요한 단위 엑터들을 개발하고 시나리오 에디터를 통해 이를 조합하면 하나의 프로세스를 완성시킬 수 있어 개발자는 설계단계에서 나뉘어지는 비즈니스 흐름을 시나리오 에디터에서 다시 그리기만 하면 됨으로써 분업개발이 가능한데 이는 디자인 코드와 논리의 코드를 분리시켜 작업의 효율성을 향상시키는 효과가 있다.
또한, 개발자에 의해서 프로그램 모듈로 개발된 엑터를 복수 개의 시나리오에서 공유할 수 있도록 하여 모듈의 재사용성을 높이고 시각화된 시나리오가 유지보수의 편리성을 제공하고 엑터와 시나리오는 기본적으로 Hot Deploy를 제공하여 운영 서버의 재기동 없이 프로그램의 변경이 가능한 효과가 있다.
또한 시나리오 에디터는 Eclipse상에서의 플러그인 설치를 통해 개발자가 Eclipse상에서 시나리오 구성, 프로그램 소스 수정, 디버깅 배포 등의 일련의 개발 업무를 모두 수행할 수 있으며 개발자에게 친숙한 Eclips를 통해 개발도구를 지원함으로써 개발의 생산성을 제고하는 효과가 있다.
또한 엑터 코드 개발과 디자인코드 개발이 병렬로 작업이 가능하여 비지니스 분석가, 개발자 및 그래픽 디자이너 등 개발에 관련된 작업자 간에 역할과 과정을 분리하여 작업할 수 있고 이를 재결합할 수 있는 환경을 제공함으로서 작업기간을 단축하고 변경 등 수정을 용이하게 하는 효과가 있다.
따라서 본 발명은 시스템 개발을 위하여 설계된 모듈을 컴포넌트로 구현하고 컴포넌트들을 시각적으로 프로그래밍 함으로써 프로그램 작성과 읽는 것이 용이하게 할 뿐아니라 서로 다른 프로그래머들이 작성한 컴포넌트의 공유 비율을 극대화 시키는 장점이 있어 개발 시 시간 단축과 오류 발견 및 수정 시간을 단축하며 개발생산성 향상과 유지보수 비용을 절감 시키는 효과가 있다.
모든 프로그램의 개발에 있어 업무논리(Business Logic)을 어떻게 작성하고 어떻게 표현할 것인가는 항상 중요한 문제였다. 업무논리를 작성하고 표현하는 방법이 간단하고 명료할수록 개발 생산성이 향상되고 유지보수 비용이 적게 발생되기 때문이다.
시나리오 파일은 여러 개의 시나리오를 포함하는 하나의 파일이다. 시나리오 파일명과 시나리오의 시작 노도 이름이 조합되어 시나리오를 호출하게 되는데, 시나리오의 생성은 Eclipse의 New 메뉴를 이용하여 생성하고 이를 실행시키려면 브라우저에서 해당 주소를 호출하면 된다. 도4은 시나리오 에디터가 작동되는 화면을 예를 보여주고 있다.
시나리오 에디터에서 사용할 수 있는 노드는 모두 열한가지 종류로 나눌 수 있는데, 모든 시나리오의 시작을 표시하는 시작노드, 작성된 시나리오의 종료를 알리는 종료 노드, 프로그래머가 직접 제작하는 최소기능단위 노드로 액터 노드, 시나리오내에서 제어조건에 따라 분기를 수행하기 위한 조건 노드, HTML이나 JSP와 같이 최종 Presentation을 처리하는 파일을 명시하는 템플릿 노드, 페이지 캐시 생성 및 사용을 제어하는 캐시 노드, 시나리오 내에서 이미 제작된 다른 시나리오를 호출하도록 제어하는 호출 노드, 호출 노드와 유사하지만 호출한 시나리오로 리턴(Return)하지 않는 점프노드, 여러개의 Database에 접속하여 DB에 트랜잭션 (Transaction)을 시작할 수 있는 트랜잭션 시작 노드와 그 결과를 리턴하는 트랜잭션 롤백 로드, 트랙잭션 커밋(Commit) 노드로 구분한다.
또한 시나리오에서 사용되는 노드들을 논리구조에 맞게 연결해 주는 연결선이 필요한데, 연결선은 노드와 노드를 실행순서에 따라 아무 조건없이 연결하는 일반선, 제어조건을 추가할 수 있는 조건선, 액터의 에러에 대한 처리를 위한 에러선으로 나누어 구성되며 각 노드와 연결선에 대한 실시 예는 도5와 같이 표현된다.
시나리오 수행기(Scenario Processor)는 시나리오 에디터를 이용해 작성된 시나리오 명령에 따라 수행하는 장치로서 수행하는 시나리오의 각 노드를 객체(Object)로 구성하여 시나리오에서 제공하는 플로우를 따라 노드를 수행시킨다. 이 곳에서 제어의 반전(Inversion Of Control)이 발생하며 전통적인 함수 호출이 아닌 시각적인 플로우차트에 따라서 제어가 수행되게 된다. 시나리오 수행기가 수행될 때 세가지 로그를 생성하는데, 기본로그, 요청로그, 타이밍 로그이다. 기본로그는 프레임워크에 자체적으로 탑재되어 있는 로그이고 요청로그는 처리요청을 받은 모든 시나리오에 대한 목록과 요청처리 시작시간과 요청처리 종료시간 및 소요시간을 출력한다. 요청로그는 보통 웹어플리케이션의 접속통계를 추출하는데 주로 활용된다. 그리고 타이밍 로그는 시나리오의 모든 노드들의 처리시간인 시나리오의 총 처리시간이 출력된다.
액터 컴포넌트는 시나리오가 동적으로 로딩(Loading)하는 유일한 프로그램으 로 프로그램 개발자는 이 추상(Abstract) 액터 컴포넌트를 상속받아 자신이 개발하고자 하는 프로그램을 개발한다. 이 액터 클래스는 시나리오에서 호출할 수 있는 메소드를 가지고 있고 프로그램머는 이 메소트를 확장(Overloading)해서 프로그램을 개발하게 된다. 시나리오는 프로그래머가 개발한 액터들을 구체적으로 명시하여 수행 정보를 가지게 된다.
데이터 트렌젝션 처리부는 AOC(Aspect Of Concern)을 위한 것으로 복수 개의 액터 프로그램을 하나의 트랜젝션으로 묶어서 처리 할 수 있도록 하는 장치이다. 시나리오 플로우차트에서 트랜젝션의 시작과 롤백 그리고 커밋을 노드로 지정할 수 있다. 트렌젝션은 인터페이스를 이용하여 데이터 소스 밴더가 제공하는 트렌젝션처리 기능을 손쉽게 이용 할 수 있도록 되어있다.
또한 본 발명의 특징은 요청 빈도가 높은 페이지를 파일로 저장하여 서비스함으로서 시스템 성능을 높이기 위해 페이지 캐시 기능을 제공하고 있다. 예를 들어 인터넷 쇼핑몰의 메인페이지를 생각해보면, 카테고리 정보, 브랜드 정보, 각종 이벤트 정보 등 많은 정보를 노출시키고 있으며 특히 메인페이지의 조회빈도는 특히 높을 것이다. 그러나, 이러한 페이지를 Database를 통해 가져오고 갖가지 로직을 처리해서 프로그래밍적으로 서비스하면서 빠른 응답속도를 제공하기는 쉽지 않다. 이를 위한 한가지 해결방법은 HTML로 노출빈도가 높은 페이지(예를 들면 메인페이지)를 작성하는 것이다. DB 쿼리도 없고 로직도 배제된 HTML 페이지라면 수십배의 처리속도 향상을 가져 올 수 있을 것이다. 하지만 HTML로 작성할 경우에는 내용상에 변경사항이 있을 때마다 HTML을 변경하여야 하는데 이럴 경우 HTML의 오류 를 피할 수 없다. 특히 여럿이 작업할 경우 그 가능성은 훨씬 높아진다. 이를 해결하기 위한 방법으로 프로그램을 작성하되 서비스를 하는 프로그램이 아니고 HTML을 생성하는 프로그램을 작성하여 이를 통해 생성된 HTML을 이용해서 서비스를 한다. 만약에 페이지에 변경사항이 생기면 프로그램을 재실행해서 변경사항이 반영된 HTML을 생성하면 된다. 변경사항이 생겨도 프로그램을 실행하면 반영되니까 코더나 품질관리자가 필요하지 않다. 본 발명에서는 이러한 개념으로 페이지 캐시 기능을 제시하고 있다.
상기와 같이 자바스크립트와 XML을 이용한 프레임워크를 활용하여 시나리오 작성과 액터의 작성을 구분하고 클래스의 생성과 다중 상속이 가능하도록 하여 객체지향적 특성을 강화할 수 있고 Java개발자와 Web에서 업무관리자를 구분하여 분리할 수 있어 웹컨텐츠를 용이하게 개발하거나 유지보수 할 수 있게 된다.
도 1은 일반적인 웹페이지 구성을 보인 예.
도 2는 본 발명의 프레임워크 개념도.
도 3은 액터의 구성 예.
도 4는 시나리오에디터 화면구성 예.
도 5는 시나리오에디터에 제공되는 노드와 연결선 구성 예.

Claims (7)

  1. 웹브라우저를 통해 모듈화된 웹클라이언트 어플리케이션 프레임워크을 이용하여 웹컨텐츠를 처리하는 프레임워크에 있어,
    객체지향적 개념인 매소드 재정의와 상속이 가능하도록 시나리오를 작성하여 보관하는 시나리오 저장부와;
    작업이 이루어지는 최소 기능단위의 실행코드인 액터가 저장되는 액터저장부와;
    시각화된 비즈니스 시나리오를 작성할 수 있도록 시나리오를 생성, 호출하고 액터를 그래픽적으로 표현하여 쉽게 웹컨텐츠 어플리케이션을 편집할 수 있도록 GUI환경을 제공하는 시나리오 에디터와;
    외부 데이터베이스에 접속하여 복수의 액터 프로그램을 하나의 트랜젝션으로 처리할 수 있도록 하고 복수의 데이터 소스에 대한 트랜젝션 처리를 시각적으로 처리 할 수 있도록 구현된 트랜젝션처리부와;
    저장된 시나리오를 웹상에서 동작하게 해주는 인터넷연결부를 포함하는 것을 특징으로 하는 웹클라이언트 어플리케이션 프레임워크.
  2. 제1항에 있어서 시나리오 저장부에 저장된 시나리오는 XML 파일로 작성되어 매소드 재정의 및 상속 등 객체지향적 특징을 가질 수 있도록 하는 것을 특징으로 하는 웹클라이언트 어플리케이션 프레임워크.
  3. 제1항에 있어서 시나리오 저장부에 저장된 시나리오는 기능단위의 노도들과 이를 연결하는 연결선으로 구성되어 시각적으로 표현이 되는 것을 특징으로 하는 웹클라이언트 어플리케이션 프레임워크.
  4. 제3항에 있어서 기능단위 노드는 시작노드, 엑터노드, 분기노드, 호출노드, 점프노드, 템플렛 노드, 종료노드, 캐시노드, 트렌잭션 시작노드, 트렌잭션 커밋노드, 트렌잭션 롤백노드로 구성되고, 연결선은 일반선, 조건선, 에러선으로 구성되는 웹클라이언트 어플리케이션 프레임워크.
  5. 제1항에 있어서 트랜젝션처리부는 해당 시나리오 주소를 웹브라우저에 호출함으로써 동작 되며, 특히 Dynamic Class Loader를 이용하여 실시간 프로그램 변경이 가능하도록 하는 것을 특징으로 웹클라이언트 어플리케이션 프레임워크.
  6. 웹 브라우저를 통해 해석되는 웹클라이언트 어플리케이션 프레임워크를 이용 한 웹 컨텐츠 수행방법에 있어서,
    프레임워크에서 실행코드인 액터들을 로드하는 단계와;
    시나리오 파일을 로드한 후 해당 파일을 해석하는 단계와;
    해당 시나리오 파일의 해석 중에 포함된 액터를 호출하고 필요한 경우 외부 데이터베이스에 연결하여 시나리오의 실행코드를 생성하는 단계와;
    시나리오 실행코드에 포함된 실효요소들에 대한 이벤트 및 메시지 처리과정을 수행하는 단계와;
    실행결과를 기본로그, 요청로그, 타이밍 로그로 나누어 로그를 생성하여 출력하는 단계를 포함하는 것을 특징을 하는 웹클라이언트 어플리케이션 프레임워크을 이용한 웹컨텐츠 처리방법
  7. 제6항에 있어서 시나리오 실행코드의 처리에 있어서 Dynamic Class Loader를 이용하여 실시간 프로그램 변경이 가능하도록 하는 것을 특징으로 하는 웹클라이언트 어플레케이션 프레임워크을 이용한 웹컨텐츠 처리방법
KR1020090073665A 2009-08-11 2009-08-11 모듈화된 웹클라이언트 어플리케이션 프레임워크와 xml을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체 KR20110016124A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090073665A KR20110016124A (ko) 2009-08-11 2009-08-11 모듈화된 웹클라이언트 어플리케이션 프레임워크와 xml을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090073665A KR20110016124A (ko) 2009-08-11 2009-08-11 모듈화된 웹클라이언트 어플리케이션 프레임워크와 xml을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체

Publications (1)

Publication Number Publication Date
KR20110016124A true KR20110016124A (ko) 2011-02-17

Family

ID=43774599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090073665A KR20110016124A (ko) 2009-08-11 2009-08-11 모듈화된 웹클라이언트 어플리케이션 프레임워크와 xml을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR20110016124A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844875A (zh) * 2022-04-21 2022-08-02 深圳依时货拉拉科技有限公司 一种应用程序编程接口api管理方法、装置、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114844875A (zh) * 2022-04-21 2022-08-02 深圳依时货拉拉科技有限公司 一种应用程序编程接口api管理方法、装置、设备及介质
CN114844875B (zh) * 2022-04-21 2024-02-06 深圳依时货拉拉科技有限公司 一种应用程序编程接口api管理方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US8561048B2 (en) Late and dynamic binding of pattern components
US7873939B2 (en) Processing logic modeling and execution
US7925977B2 (en) Architecture solution map builder
US8626477B2 (en) Spreadsheet-based graphical user interface for modeling of products using the systems engineering process
US20040010776A1 (en) Computer system for performing reusable software application development from a set of declarative executable specifications
US10114619B2 (en) Integrated development environment with multiple editors
US20120060141A1 (en) Integrated environment for software design and implementation
Snell et al. Microsoft Visual Studio 2012 Unleashed: Micro Visua Studi 2012 Unl_p2
Powers et al. Microsoft visual studio 2008 Unleashed
Mane et al. The spring framework: An open source java platform for developing robust java applications
AU2014100798A4 (en) A visual role and transition based method and system for developing complex web applications
US20090031226A1 (en) Method and System for Extending Task Models for Use In User-Interface Design
Ciliberti ASP. NET Core Recipes: A Problem-Solution Approach
Kulkarni Model driven software development: a practitioner takes stock and looks into future
KR20110016124A (ko) 모듈화된 웹클라이언트 어플리케이션 프레임워크와 xml을 이용한 웹컨텐츠 처리방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록매체
US20120084224A1 (en) Automatically created report generator for managing information technology service projects
Sheldon et al. Professional Visual Basic 2012 and. NET 4.5 Programming
JP5540856B2 (ja) ワークフローを設定するための装置および方法
Zhu Microsoft Windows Workflow Foundation 4.0 Cookbook
Savolainen et al. Spine deliverable 2.1 software design document
Hunting The AIMMS outer approximation algorithm for MINLP (using GMP functionality)
Giametta Pro Flex on Spring
Nowowiejski et al. Generic Reporting Tool using Modern User Interface Design Technologies
Rath et al. Declarative specification of domain specific visual languages
Patel Spring 5.0 Projects: Build Seven Web Development Projects with Spring MVC, Angular 6, JHipster, WebFlux, and Spring Boot 2

Legal Events

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