KR20060114517A - 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버 - Google Patents

웹 애플리케이션 구축용 프레임워크 및 그 웹 서버 Download PDF

Info

Publication number
KR20060114517A
KR20060114517A KR1020050036671A KR20050036671A KR20060114517A KR 20060114517 A KR20060114517 A KR 20060114517A KR 1020050036671 A KR1020050036671 A KR 1020050036671A KR 20050036671 A KR20050036671 A KR 20050036671A KR 20060114517 A KR20060114517 A KR 20060114517A
Authority
KR
South Korea
Prior art keywords
module
request
business logic
application
web
Prior art date
Application number
KR1020050036671A
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 KR1020050036671A priority Critical patent/KR20060114517A/ko
Publication of KR20060114517A publication Critical patent/KR20060114517A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
    • A61H23/00Percussion or vibration massage, e.g. using supersonic vibration; Suction-vibration massage; Massage with moving diaphragms
    • A61H23/02Percussion or vibration massage, e.g. using supersonic vibration; Suction-vibration massage; Massage with moving diaphragms with electric or magnetic drive
    • A61H23/0254Percussion or vibration massage, e.g. using supersonic vibration; Suction-vibration massage; Massage with moving diaphragms with electric or magnetic drive with rotary motor
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
    • A61H2201/00Characteristics of apparatus not provided for in the preceding codes
    • A61H2201/01Constructive details
    • A61H2201/0119Support for the device
    • A61H2201/0153Support for the device hand-held
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
    • A61H2201/00Characteristics of apparatus not provided for in the preceding codes
    • A61H2201/50Control means thereof
    • A61H2201/5023Interfaces to the user
    • A61H2201/5038Interfaces to the user freely programmable by the user
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
    • A61H2201/00Characteristics of apparatus not provided for in the preceding codes
    • A61H2201/50Control means thereof
    • A61H2201/5023Interfaces to the user
    • A61H2201/5043Displays
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61HPHYSICAL THERAPY APPARATUS, e.g. DEVICES FOR LOCATING OR STIMULATING REFLEX POINTS IN THE BODY; ARTIFICIAL RESPIRATION; MASSAGE; BATHING DEVICES FOR SPECIAL THERAPEUTIC OR HYGIENIC PURPOSES OR SPECIFIC PARTS OF THE BODY
    • A61H2201/00Characteristics of apparatus not provided for in the preceding codes
    • A61H2201/50Control means thereof
    • A61H2201/5058Sensors or detectors
    • A61H2201/5082Temperature sensors

Landscapes

  • Health & Medical Sciences (AREA)
  • Epidemiology (AREA)
  • Pain & Pain Management (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Rehabilitation Therapy (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 e-Business용 웹 애플리케이션 구축을 위한 프레임워크와 이를 탑재한 서버에 관한 것으로, 본 발명에 따른 웹 애플리케이션 구축을 위한 프레임워크는, 클라이언트로부터 애플리케이션 요청을 받아 프리젠테이션을 위한 요청과 비즈니스 로직 실행을 위한 요청으로 구분하여 전달하는 제1 모듈; 제1 모듈로부터 전달받은 비즈니스 로직 실행을 위한 요청에 따라 해당 비즈니스 로직을 수행하는 제2 모듈; 및 제1 모듈로부터 전달받은 프리젠테이션을 위한 요청에 따라 클라이언트에게 제공될 해당 웹 페이지의 화면을 구성하는 제3 모듈을 포함하는 것을 특징으로 한다. 이에 따라, 개발생산성의 향상 및 유지보수와 확장성이 용이한 웹 애플리케이션 구축용 통합환경을 얻을 수 있다.

Description

웹 애플리케이션 구축용 프레임워크 및 그 웹 서버{Framework for building a Web application and a Web server thereof}
도 1은 종래의 웹 애플리케이션의 문제점을 설명하기 위한 도면,
도 2는 종래의 웹 애플리케이션 프레임워크의 문제점을 설명하기 위한 도면,
도 3은 본 발명에 따른 웹 애플리케이션 프레임워크의 특징을 설명하기 위한 도면,
도 4는 본 발명에 따른 웹 애플리케이션 프레임워크를 탑재한 웹 서버의 구성의 일 실시예,
도 5는 본 발명에 따른 웹 애플리케이션 프레임워크를 탑재한 웹 서버의 구성의 다른 실시예,
도 6은 본 발명에 따른 웹 애플리케이션 프레임워크의 상세 구성도,
도 7은 본 발명에 따른 웹 애플리케이션을 위한 개발 도구의 상세 구성도,
도 8은 본 발명에 따른 웹 애플리케이션을 위한 관리 도구의 상세 구성도,
도 9는 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 리소스 풀의 동작을 설명하기 위한 도면,
도 10은 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 컨트롤러의 동작을 설명하기 위한 도면,
도 11은 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 모델의 동작을 설명하기 위한 도면,
도 12는 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 뷰의 동작을 설명하기 위한 도면이다.
본 발명은 웹 서버에 관한 것으로, 보다 상세하게는 e-Business용 웹 애플리케이션 구축을 위한 프레임워크와 이를 탑재한 웹 서버에 관한 것이다.
현재 e-Business를 구현하기 위한 웹 기반의 자바 애플리케이션은 점차 거대해지고 복잡해지고 있다. 또한, 사용자 요구의 변화와 빠르게 변화하는 기술에 영향을 받아 웹 애플리케이션의 잦은 변경이 요구된다.
그러나, 종래의 웹 애플리케이션의 개발 방법은 체계적이거나 표준화되지 못하여 웹 애플리케이션의 변경 관리가 매우 어려운 문제점이 있다. 이에 따라 웹 애플리케이션의 변경 관리를 위한 개발자와 관리자의 어려움이 가중되고 있다.
가장 대표적인 웹 애플리케이션 개발 방법은 클라이언트에 보여질 화면을 구성하는 마크업 언어와 자바와 같은 프로그래밍 언어를 혼합한 JSP(Java Server Page)를 작성하는 것이다. 그러나, JSP의 경우, 방대한 자바 코드와 HTML 코드간의 결합과 자바스크립트의 혼재로 인한 문제점을 가지고 있다.
도 1은 종래의 웹 애플리케이션의 문제점을 설명하기 위한 도면이며, 도 2는 종래의 웹 애플리케이션 프레임워크의 문제점을 설명하기 위한 도면이다. 도 1및 도 2에 도시된 바와 같이 종래의 웹 애플리케이션 개발 방법은 소스 코드 내에 HTML을 이용한 프리젠테이션 로직(JSP)과 자바나 자바 스크립트를 이용한 비즈니스 로직이 혼재함으로 인해 개발과 유지보수가 어려운 문제점이 있었다.
또한, 전술한 웹 애플리케이션 개발 방법은 페이지 독립적인 설계 방식으로 인하여 개발된 컴포넌트 모듈을 재사용하기가 매우 어렵고, 독립된 페이지들간의 유기적 흐름 제어가 까다롭다는 문제점을 갖는다. 나아가, 공통 모듈이 각각 독립적인 페이지 내에 탑재되어 실행됨으로써, 공통 모듈의 변경이나 업데이트 요구가 발생하는 경우 모든 페이지들을 수정해야 하는 구조적인 결함을 갖는다.
이에 따라, 웹 애플리케이션 개발 시에 비즈니스 로직보다 페이지 구성을 위한 프리젠테이션 로직에 더 많은 시간과 인력을 투입해야 하고, 이는 고급 기술자의 양성에 장애요인이 되고 있으며, 유지보수가 어렵고, 사용자의 다양한 요구에 대응하기 어렵다는 문제점을 야기시킨다.
이러한 문제점을 해결할 수 있는 방안으로는 디자인 레벨과 프로그램 레벨을 분리하고, 중앙 집중 처리 방식의 컨트롤러 구조를 가진 MVC(Model, View, Controller) 아키텍쳐가 제시되고 있으며, MVC 아키텍쳐를 웹 애플리케이션에 적용한 새로운 개발 환경이 요구되고 있다.
본 발명의 목적은, MVC 아키텍쳐를 이용하여 개발생산성의 향상 및 유지보수와 확장성이 용이한 웹 애플리케이션 구축용 프레임워크를 제공하는 것이다.
또한, 본 발명의 다른 목적은, 전술한 웹 애플리케이션 구축용 프레임워크를 탑재한 웹 서버를 제공하는 것이다.
본 발명에 따라 전술한 목적은, 웹 애플리케이션을 위한 프레임워크에 있어서, 클라이언트로부터 애플리케이션 요청을 받아 프리젠테이션을 위한 요청과 비즈니스 로직 실행을 위한 요청으로 구분하여 전달하는 제1 모듈; 제1 모듈로부터 전달받은 비즈니스 로직 실행을 위한 요청에 따라 해당 비즈니스 로직을 수행하는 제2 모듈; 및 제1 모듈로부터 전달받은 프리젠테이션을 위한 요청에 따라 클라이언트에게 제공될 해당 웹 페이지의 화면을 구성하는 제3 모듈을 포함하는 것을 특징으로 하는 애플리케이션 프레임워크에 의해 달성된다.
제1 모듈은 클라이언트로부터 애플리케이션 요청을 수신하고, 클라이언트로 처리된 애플리케이션 응답을 전달하는 서블릿(Servlet); 및 비즈니스 로직 실행을 위한 요청을 해당 이벤트가 발생한 경우 제2 모듈로 전달하는 이벤트 처리기(Action)를 포함하는 것이 바람직하며,
제2 모듈은 각종 저장매체에 대한 어댑터나 웹 서비스 제공자에 대한 인터페이스를 통해 요청한 데이터를 얻어내고, 이를 제1 모듈로 전달하는 비즈니스 로직 처리기(Process)를 포함하는 것이 바람직하다.
또한, 제3 모듈은 비즈니스 로직 처리기를 통해 얻어낸 데이터를 포함하도록 웹 페이지 화면을 구성하는 자바 서버 페이지(JSP)를 포함하는 것이 바람직하다.
나아가, 애플리케이션 프레임워크는, 이벤트 처리를 담당하는 Action 클래스 원형을 상속한 적어도 하나의 Action 클래스, 및/또는 비즈니스 로직을 담당하는 Process 클래스 원형을 상속한 적어도 하나의 Process 클래스들을 리소스 풀(Resource Pool)에 등록하고 관리하는 것이 특히 바람직하다.
한편, 본 발명의 다른 분야에 따르면 전술한 목적은, 웹 애플리케이션을 실행하는 웹 서버에 있어서, 프리젠테이션 로직과 비즈니스 로직을 구분하고, 이를 중앙 처리하는 애플리케이션 프레임워크를 탑재하며, 애플리케이션 프레임워크는, 클라이언트로부터 애플리케이션 요청을 받아 프리젠테이션을 위한 요청과 비즈니스 로직 실행을 위한 요청으로 구분하여 각각 전달하는 제1 모듈; 제1 모듈로부터 전달받은 비즈니스 로직 실행을 위한 요청에 따라 해당 비즈니스 로직을 수행하는 제2 모듈; 및 제1 모듈로부터 전달받은 프리젠테이션을 위한 요청에 따라 클라이언트에게 제공될 해당 웹 페이지의 화면을 구성하는 제3 모듈을 포함하는 것을 특징으로 하는 웹 서버에 의해 달성된다.
또한, 웹 서버는 개발자로부터 소정의 입력을 받아 애플리케이션 프레임워크에 기초하여 각 클래스들을 자동으로 생성하는 개발 도구를 더 포함하는 것이 바람직하며,
애플리케이션 프레임워크에 대한 설정기능, 모니터링 기능, 또는 리포트 기능을 제공하는 관리 도구를 더 포함하는 것이 바람직하다.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도 3은 본 발명에 따른 웹 애플리케이션 프레임워크의 특징을 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명에 따른 웹 애플리케이션은 계층구조를 가지며, 플랫폼 계층에 자바 가상 머신과 WAS를, 애플리케이션 계층에는 애플리케이션 프레임 워크와 웹 애플리케이션을 포함한다. 구체적인 e-Business 애플리케이션은 각 웹 애플리케이션들에 공통된 통합 환경을 제공하는 애플리케이션 프레임워크(10)를 이용하여 작성된다. 본 발명은 웹 애플리케이션의 개발과 유지보수를 용이하게 하기 위한 애플리케이션 통합 환경으로서, 애플리케이션 프레임워크를 제공하는 것을 목적으로 한다.
특히, 본 발명에 따른 애플리케이션 프레임워크(10)는 MVC 아키텍처에 따라 모델(Model)(12), 뷰(View)(14) 및 컨트롤러(Controller)(16)로 구분하여 구조화된 클래스들을 제공한다. 이에 따라, 개발자는 본 발명에 따른 애플리케이션 프레임워크에서 제공되는 구조화된 클래스들을 이용하여 원하는 비즈니스 로직을 손쉽게 구현할 수 있다. MVC 아키텍처에 대한 상세한 내용은 http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/index.html를 참조한다.
도 4는 본 발명에 따른 웹 애플리케이션 프레임워크를 탑재한 웹 서버의 구성의 일 실시예이다.
도 4를 참조하면, 본 발명에 따른 웹 서버(1)는 애플리케이션 프레임워크(10)와 Enterprise Java Bean Tier(이하, EJB Tier라 약칭함)(40)를 구비한다. 또한, 웹 서버(1)는 클라이언트(60)와 연결되어 애플리케이션 요청(Request)을 받고, 이러한 요청에 대하여 Enterprise Information Server(이하 EIS Tier라 약칭함)(50)로부터 원하는 데이터를 받아 클라이언트에 응답한다.
보다 구체적으로, 본 발명에 따른 애플리케이션 프레임워크(또는 Web Tier라고도 함)(10)의 구조를 살펴보면, 중앙처리를 맡은 컨트롤러(12), 비즈니스 로직을 구현하는 모델(14) 및 클라이언트에 제공될 화면의 구성을 제어하는 뷰(16)를 구비한다. 이와 같이 본 발명에 따른 애플리케이션 프레임워크(10)는 각자 맡은 역할에 따라 MVC 아키텍처에 따라 정형화되어 구현되는 것이 특징이다. 즉, 프리젠테이션을 담당하는 뷰(16), 비즈니스 로직을 담당하는 모델(14) 및 이들의 중앙처리제어를 담당하는 컨트롤러(12)로 그 역할이 명확하게 구분된다. 또한, 비즈니스 로직을 담당하는 Proc 클래스는 상황에 따라 EJB 객체를 통하여 데이터베이스에 접근 할 수도 있고 EJB를 사용하지 않고 직접 JDBC API를 통하여 데이터베이스에 접근할 수도 있다.
이에 반해 종래의 애플리케이션 개발환경은 클라이언트에서 요청할 때마다 직접 프리젠테이션 로직을 구현한 JSP 또는 서블릿을 요청하는 것이 일반적이었다. 그러나, JSP 내부에는 프리젠테이션 로직 뿐만 아니라 비즈니스 로직이나 데이터베이스 액세스를 위한 SQL 로직까지도 직접 포함하여 코딩되는 경우가 많아, 본원 발명과 같이 구조화된 통합환경을 제공하지 못하고, 전술한 여러 가지 문제점을 야기시켰다. 즉, 도 2에 도시된 바와 같이 클라이언트로부터의 애플리케이션 요청이 프리젠테이션을 담당하고 있는 JSP로 직접 전달되어 전술한 문제점이 발생했다.
그러나, 본 발명에 따른 클라이언트로부터의 애플리케이션 요청이 프리젠테 이션을 담당하는 JSP로 바로 전달되는 것이 아니라, 중앙 처리 제어를 담당하는 컨트롤러(12)로 전달되어 처리되며, 요청된 내용에 따라 각각 비즈니스 로직을 담당하는 모델(14)과 프리젠테이션을 담당하는 뷰(16)로 적절히 전달됨으로써, JSP는 본연의 임무인 프리젠테이션 기능만을 처리하면 된다. 따라서, 애플리케이션의 개발과 유지보수가 편리하게 된다.
도 5는 본 발명에 따른 웹 애플리케이션 프레임워크를 탑재한 웹 서버의 구성의 다른 실시예이다.
도 5를 참조하면, 본 발명에 따른 웹 서버(1)는 도 4에서 상술한 애플리케이션 프레임워크를 제공할 뿐만 아니라, 더하여 관리 도구(Management Tool)(3) 및/또는 개발 도구(Development Tool)(2)를 제공할 수 있다.
보다 구체적으로, 애플리케이션 프레임워크 엔진(10)은 중앙 처리를 맡은 중앙처리기(Servlet)(122)과 이벤트 처리기(Action)(124)를 포함하며, 프리젠테이션을 위한 출력처리기(JSP)(142) 및 비즈니스로직 처리기(Proc)(142)를 포함한다. 사용자로부터 애플리케이션 요청을 받은 중앙처리기(122)는 이를 이벤트 처리기(124)와 출력처리기(162)로 전달하고, 이벤트 처리기(124)는 해당 이벤트가 발생한 경우 비즈니스로직 처리기(142)로 전달한다. 비즈니스로직 처리기(142)는 각종 저장매체에 대한 어댑터나 웹 서비스 제공자에 대한 RPC SOAP등과 같은 인터페이스를 통해 원하는 데이터를 얻는다. 얻어진 데이터는 출력처리기(162)에서 처리된 페이지에 포함되어 사용자에게 전달된다.
또한, 본 발명에 따른 웹 서버(1)는 웹 애플리케이션을 용이하게 개발할 수 있도록 개발자를 도와주는 개발 도구(2)를 더 제공할 수 있다. 이러한 개발 도구(2)에는 중앙처리를 위한 서블릿 클래스, 이벤트를 위한 Action 클래스, 비즈니스 로직을 위한 Proc 클래스, 페이지 출력 포맷을 편집하기 위한 JSP 클래스, 각종 저장매체에 대한 어댑터 클래스, 데이터베이스에 대한 인터페이스 클래스 등을 편리하게 자동 생성하는 마법사 기능이 포함된다. 즉, 각 클래스들의 원형(prototype)이 각 클래스 풀(pool)(리소스 풀이라고도 함)에 미리 정의되고 개발자는 각 클래스 풀로부터 원하는 클래스를 선택하여 이들을 상속하고 필요한 데이터를 추가하거나 변형하여 손쉽게 애플리케이션 프레임워크에서 사용되는 클래스들을 생성할 수 있다.
나아가, 본 발명에 따른 웹 서버(1)는 웹 애플리케이션을 편리하게 관리할 수 있는 관리 도구(3)를 제공할 수 있다. 이러한 관리 도구(3)에는 애플리케이션 프레임워크 엔진(10)의 설정을 제어하는 기능, 모니터링 기능 및/또는 리포트 기능을 제공하는 도구들이 포함된다.
도 6은 본 발명에 따른 웹 애플리케이션 프레임워크의 상세 구성도이다.
도 6을 참조하면, 이벤트 처리를 담당하는 Action 클래스 원형이나 비즈니스 로직을 담당하는 Process 클래스 원형을 상속한 Action 클래스들 또는 Process 클래스들이 애플리케이션 프레임워크(10)가 관리하는 리소스 풀(Resource Pool)에 자동으로 등록되어 리소스로서 관리된다. 이에 따라, 한번 생성된 리소스들에 빠른 접근이 가능하고, 실행 성능을 향상시킬 수 있다. 또한, 한번 생성된 컴포넌트들의 재사용이 용이한 장점이 있다.
도 7은 본 발명에 따른 웹 애플리케이션을 위한 개발 도구의 상세 구성도이다.
도 7을 참조하면, 개발 도구(2)는 중앙처리 생성기(22), 비즈니스 로직 생성기(24), 이벤트 생성기(26) 및 출력 편집기(28)를 포함한다.
중앙처리 생성기(22)는 전/후 처리 로직을 탑재한 중앙 처리 서블릿을 생성한다. 구체적으로는, 중앙처리 생성기(22)는 중앙처리 소스를 생성하고 생성된 소스에 전/후 처리 로직을 탑재하여 이벤트를 호출하며, 이벤트 호출 후 출력 처리 모듈을 거쳐 중앙처리기 클래스를 자동 생성한다.
비즈니스 로직 생성기(24)는 Utility Bean, Entity Bean, Session Bean 등의 자바 클래스를 생성한다. 비즈니스 로직 생성기(24)는 또한 각종 매체와의 연결을 관장하는 어뎁터를 제공하고, 웹 서비스와의 연계를 제공하는 인터페이스로서 SOAP Client를 생성하는 도구를 포함하는 것이 바람직하다.
이벤트 생성기(26)는 Http 요청과 응답에 대한 처리를 관장하는 이벤트 클래스를 생성한다. 구체적으로는, 개발자에 의해 화면이 디자인되고 요청/응답 형태가 정의되면, 화면 디자인 및 정의된 요청/응답 형태를 기초로 이벤트 클래스를 자동 생성한다. 출력 편집기(28)는 도구, 템플릿 출력 엔진을 사용하는 출력 클래스를 생성한다.
도 7에 도시된 바와 같이, 개발자가 원하는 내용을 간단히 입력하기만 하면, 본 발명에 따른 애플리케이션 프레임워크에 따라 각 클래스들이 자동으로 생성된다. 이에 따라, 웹 애플리케이션의 개발과 유지보수가 용이해지는 효과를 얻을 수 있다.
도 8은 본 발명에 따른 웹 애플리케이션을 위한 관리 도구의 상세 구성도이다.
도 8을 참조하면, 관리 도구(3)에는 애플리케이션 프레임워크 엔진의 설정을 관리하기 위한 도구(32)로서, 비즈니스로직 처리기, 이벤트 처리기, 출력처리기, 중앙 처리기 등의 설정을 관리하고 그 밖에 공유자원을 관리하는 도구, 로그 출력을 관리하는 도구, 각 처리기에 대한 접근 권한을 관리하는 도구, 저장 매체 등의 연결 정보 관리 도구, 데이터베이스나 호스트와 같은 웹서비스 엔진에 대한 정보 관리 도구 등이 포함된다.
또한, 관리 도구(3)에는 각 리소스들의 사용 현황을 모니터링하는 도구(34)로서, 퍼포먼스 모니터링 도구, 스트레스 테스트 도구, 공유 자원 사용 현황 모니터링 도구, 현재 접속중인 사용자 모니터링 도구, 로그 출력 도구, 웹 서비스 엔진 현황 모니터링 도구 등이 포함된다.
나아가, 관리 도구(3)에는 리포트 출력을 위한 도구(36)로서, 클래스 관계도, 이벤트 처리 흐름도, 각 클래스의 사용빈도 보고서 등 유지보수에 관련된 보고서를 출력하는 도구가 포함된다.
이하, 도 9 내지 도 12는 본 발명에 따른 애플리케이션 프레임워크 엔진(10)의 동작을 설명하기 위한 도면들이다.
먼저, 도 9는 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 리소스 풀의 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 본 발명에 따른 애플리케이션 프레임워크 엔진(10)에 포함되는 Context Listener 컴포넌트는 웹 애플리케이션이 로딩될 때 설정파일을 읽어 들여 리소스 풀(resource pool)을 구성한다. 리소스 풀에는 전술한 바와 같이 이벤트 처리를 담당하는 Action 리소스, 비즈니스 로직의 처리를 담당하는 Proc 리소스, 그밖에 Code 리소스, Message 리소스, UserDefine 리소스 등이 포함된다. 리소스 풀은 멀티 쓰레드 모델로 동작하여 실행 성능을 높일 수 있다. 구성된 리소스 풀은 AegisContext를 통해 각 클래스에서 사용할 수 있다.
도 10은 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 컨트롤러의 동작을 설명하기 위한 도면이다.
도 10을 참조하면, 원형(protype) 클래스를 제공하여 이를 상속한 클래스들에 부가기능이나 변경되는 기능만을 반영하여 클래스들을 간단히 개발할 수 있도록 한다. 이에 따라 소스 코드가 표준화될 수 있어 애플리케이션의 개발 및 유지보수가 용이해진다. 도시된 예에서 ControllerServlet 원형을 상속하여 ControllerServlet 클래스를 생성할 수 있다. ControllerServlet 클래스는 Login 이나 do와 같은 액션키나 컨트롤러 서블릿 키를 통해 애플리케이션이 요청되면, 전처리 과정을 거쳐 요청된 정보를 파라메터로 하여 Action 클래스에게 요청한다. Action 클래스는 요청 파라메터를 받아 프로세스를 실행하고 실행 결과를 ActionResponse를 통해 ControllerServlet에 전달한다. ResponseHandler는 JSP 포워드, 리디렉트(redirect) 또는 템플릿 엔진 등의 프리젠테이션 로직을 실행시킨다. 이와 같이 컨트롤러(12)는 사용자의 요청을 받아 이벤트를 관리하고 요청된 프로세스를 실행하여 그 결과를 사용자에게 응답하는 과정을 제어한다.
도 11은 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 모델의 동작을 설명하기 위한 도면이다.
도 11을 참조하면, 비즈니스 로직의 처리를 담당하는 모델(14)은 원형 Proc 클래스를 상속하여 Proc 클래스를 생성한다. Proc 클래스는 저장매체와의 연결이나 데이터베이스와의 연결을 위해 AegisContext 로부터 매체 연결 처리를 담당하는 각 Factory 객체를 로딩하여 연결정보를 반환한다. 팩토리 모델을 사용하여 매체이 변화가 생겼을 때, 최소한의 변경, 즉 팩토리의 변경만으로 매체 변경을 처리할 수 있다. 이에 따라, DAO, TAO와 같은 어댑터 또는 웹서비스의 SOAP 데이터를 이용한 인터페이스를 용이하게 생성할 수 있다.
도 12는 본 발명에 따른 웹 애플리케이션 프레임워크에 포함되는 뷰의 동작을 설명하기 위한 도면이다.
도 12를 참조하면, 프리젠테이션 로직을 담당하는 뷰(16)는 JSP에서는 커스텀 태그를 사용하여 프리젠테이션 로직을 처리한다. 또한, Coven과 같이 애플리케이션 프레임워크 엔진(10)에 내장된 템플릿 엔진을 이용하여 프리젠테이션 로직을 처리할 수도 있다. 나아가, 내장된 핸들러 외에 애플리케이션 별로 핸들러를 등록하여 프리젠테이션 로직을 처리하도록 구현할 수도 있다.
이상에서 상술한 본 발명에 따른 애플리케이션 프레임워크(10)와 이를 탑재한 웹 서버(1)는 다음과 같은 특징을 갖는다.
1) 프리젠테이션 로직과 비즈니스 로직을 명확하게 분리하여 구조화한다.
2) 플랫폼이나 저장매체에 독립적인 애플리케이션 통합환경을 제공한다.
3) 어댑터 또는 인터페이스를 클래스로 구현함으로써, 시스템을 확장하는 경우에도 개방된 시스템 구조를 제공한다.
4) 개발 도구 중에 마법사 기능을 제공하여 클래스를 자동 생성해 주어 애플리케이션 프레임워크의 구조를 정확히 모르는 개발자라도 용이하게 개발에 참여할 수 있다.
5) 다양한 관리도구를 제공하여 애플리케이션 프레임워크의 설정을 사용자 인터페이스를 통해 용이하게 설정할 수 있으며, 클래스의 사용량이나 로그 상태 등 각종 퍼포먼스 모니터링 기능이 제공된다.
6) 개발 완료 후 사용할 수 있는 Stress Test 기능이 제공된다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
전술한 바와 같이 본 발명에 따르면, MVC 아키텍쳐를 이용하여 개발생산성의 향상 및 유지보수와 확장성이 용이한 웹 애플리케이션 구축용 프레임워크 및 이를 탑재한 웹 서버가 제공된다.
즉, 애플리케이션 프레임워크가 제공하는 정형화된 구조의 컴포넌트를 활용 하여 컴포넌트의 재사용성을 증가시킬 수 있다. 또한, 애플리케이션 프레임워크가 하부구조를 제공함으로써 개발자는 비즈니스 로직에만 집중할 수 있고, 개발 소스 코드의 구조가 단순해진다. 나아가, MVC 아키텍처에 따라 기능별로 명확히 구분된 하부구조를 이용하면 소스 코드의 확장 및 유지 보수가 용이해 진다.

Claims (11)

  1. 웹 애플리케이션을 위한 프레임워크에 있어서,
    클라이언트로부터 애플리케이션 요청을 받아 프리젠테이션을 위한 요청과 비즈니스 로직 실행을 위한 요청으로 구분하여 전달하는 제1 모듈;
    상기 제1 모듈로부터 전달받은 비즈니스 로직 실행을 위한 요청에 따라 해당 비즈니스 로직을 수행하는 제2 모듈; 및
    상기 제1 모듈로부터 전달받은 프리젠테이션을 위한 요청에 따라 상기 클라이언트에게 제공될 해당 웹 페이지의 화면을 구성하는 제3 모듈을 포함하는 것을 특징으로 하는 애플리케이션 프레임워크.
  2. 제1항에 있어서, 상기 제1 모듈은,
    상기 클라이언트로부터 애플리케이션 요청을 수신하고, 상기 클라이언트로 처리된 애플리케이션 응답을 전달하는 서블릿(Servlet); 및
    상기 비즈니스 로직 실행을 위한 요청을 해당 이벤트가 발생한 경우 상기 제2 모듈로 전달하는 이벤트 처리기(Action)를 포함하는 것을 특징으로 하는 애플리케이션 프레임워크.
  3. 제2항에 있어서, 상기 제2 모듈은,
    각종 저장매체에 대한 어댑터나 웹 서비스 제공자에 대한 인터페이스를 통해 요청한 데이터를 얻어내고, 이를 상기 제1 모듈로 전달하는 비즈니스 로직 처리기(Process)를 포함하는 것을 특징으로 하는 애플리케이션 프레임워크.
  4. 제3항에 있어서, 상기 제3 모듈은,
    상기 비즈니스 로직 처리기를 통해 얻어낸 데이터를 포함하도록 웹 페이지 화면을 구성하는 자바 서버 페이지(JSP)를 포함하는 것을 특징으로 하는 애플리케이션 프레임워크.
  5. 제4항에 있어서, 상기 애플리케이션 프레임워크는,
    이벤트 처리를 담당하는 Action 클래스 원형을 상속한 적어도 하나의 Action 클래스, 및/또는 비즈니스 로직을 담당하는 Process 클래스 원형을 상속한 적어도 하나의 Process 클래스들을 리소스 풀(Resource Pool)에 등록하고 관리하는 것을 특징으로 하는 애플리케이션 프레임워크.
  6. 웹 애플리케이션을 실행하는 웹 서버에 있어서,
    프리젠테이션 로직과 비즈니스 로직을 구분하고, 이를 중앙처리하는 애플리케이션 프레임워크를 탑재하며,
    상기 애플리케이션 프레임워크는,
    클라이언트로부터 애플리케이션 요청을 받아 프리젠테이션을 위한 요청과 비즈니스 로직 실행을 위한 요청으로 구분하여 각각 전달하는 제1 모듈;
    상기 제1 모듈로부터 전달받은 비즈니스 로직 실행을 위한 요청에 따라 해당 비즈니스 로직을 수행하는 제2 모듈; 및
    상기 제1 모듈로부터 전달받은 프리젠테이션을 위한 요청에 따라 상기 클라이언트에게 제공될 해당 웹 페이지의 화면을 구성하는 제3 모듈을 포함하는 것을 특징으로 하는 웹 서버.
  7. 제6항에 있어서,
    개발자로부터 소정의 입력을 받아 상기 애플리케이션 프레임워크에 기초하여 각 클래스들을 자동으로 생성하는 개발 도구를 더 포함하는 것을 특징으로 하는 웹 서버.
  8. 제6항에 있어서,
    상기 애플리케이션 프레임워크에 대한 설정기능, 모니터링 기능, 또는 리포트 기능을 제공하는 관리 도구를 더 포함하는 것을 특징으로 하는 웹 서버.
  9. 제6항에 있어서, 상기 제1 모듈은,
    상기 클라이언트로부터 애플리케이션 요청을 수신하고, 상기 클라이언트로 처리된 애플리케이션 응답을 전달하는 서블릿(Servlet); 및
    상기 비즈니스 로직 실행을 위한 요청을 해당 이벤트가 발생한 경우 상기 제2 모듈로 전달하는 이벤트 처리기(Action)를 포함하는 것을 특징으로 하는 웹 서 버.
  10. 제9항에 있어서, 상기 제2 모듈은,
    각종 저장매체에 대한 어댑터나 웹 서비스 제공자에 대한 인터페이스를 통해 요청한 데이터를 얻어내고, 이를 상기 제1 모듈로 전달하는 비즈니스 로직 처리기(Process)를 포함하는 것을 특징으로 하는 웹 서버.
  11. 제10항에 있어서, 상기 제3 모듈은,
    상기 비즈니스 로직 처리기를 통해 얻어낸 데이터를 포함하도록 웹 페이지 화면을 구성하는 자바 서버 페이지(JSP)를 포함하는 것을 특징으로 하는 웹 서버.
KR1020050036671A 2005-05-02 2005-05-02 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버 KR20060114517A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050036671A KR20060114517A (ko) 2005-05-02 2005-05-02 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050036671A KR20060114517A (ko) 2005-05-02 2005-05-02 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버

Publications (1)

Publication Number Publication Date
KR20060114517A true KR20060114517A (ko) 2006-11-07

Family

ID=37652200

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050036671A KR20060114517A (ko) 2005-05-02 2005-05-02 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버

Country Status (1)

Country Link
KR (1) KR20060114517A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010123127A (ja) * 2008-11-20 2010-06-03 Nhn Corp ウェブページを作成するために使用されるコンポーネントベースのジャバウェブアプリケーション開発フレームワーク
KR101414797B1 (ko) * 2013-12-13 2014-07-03 (주)인스웨이브시스템즈 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템
KR101552914B1 (ko) * 2007-01-30 2015-10-01 에스케이커뮤니케이션즈 주식회사 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101552914B1 (ko) * 2007-01-30 2015-10-01 에스케이커뮤니케이션즈 주식회사 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
JP2010123127A (ja) * 2008-11-20 2010-06-03 Nhn Corp ウェブページを作成するために使用されるコンポーネントベースのジャバウェブアプリケーション開発フレームワーク
US8839194B2 (en) 2008-11-20 2014-09-16 Nhn Corporation Component-based web application development framework used for creating web page
KR101414797B1 (ko) * 2013-12-13 2014-07-03 (주)인스웨이브시스템즈 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템

Similar Documents

Publication Publication Date Title
US6971001B1 (en) General and reusable components for defining net-centric application program architectures
US7712085B2 (en) Use of attribution to describe management information
US7451403B1 (en) System and method for developing user interfaces purely by modeling as meta data in software application
US8291047B2 (en) Screen scraping interface
US20040225995A1 (en) Reusable software controls
US20090249374A1 (en) Dynamic template instantiation
US20030192027A1 (en) Software application development
US8793708B2 (en) Creation and termination of component scopes
US7424722B2 (en) Method and system for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service
JP2006351019A (ja) 契約に基づく自動サービス提供方法および装置
Russell et al. The vine toolkit: A java framework for developing grid applications
KR20060114517A (ko) 웹 애플리케이션 구축용 프레임워크 및 그 웹 서버
Prajapati et al. High quality web-application development on java EE platform
Chen et al. Grid services orchestration with OMII-BPEL
Brandle et al. Cloud computing patterns of expertise
Nadiminti et al. Alchemi: A .NET-based Enterprise Grid System and Framework
Malinova et al. Using the Business Process Execution Language for managing scientific processes
CA2551059C (en) Pipeline architecture for use with net-centric application program architectures
AU2006200733B2 (en) Application framework for the use with net-centric application program architectures
Kinny A framework for multi-agent systems development
Bialy et al. Dynamic process fragment injection in a service orchestration engine
Selmeci et al. ERP change management for innovation and sustainability applied to User Interfaces
AU2006200734B2 (en) Pipeline architecture for use with net-centric application program architectures
Chang The 64-bit. NET e-portal applications for e-Learning and e-Science
Gary Open process components

Legal Events

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