KR20010048898A - 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법 - Google Patents
시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법 Download PDFInfo
- Publication number
- KR20010048898A KR20010048898A KR1019990053776A KR19990053776A KR20010048898A KR 20010048898 A KR20010048898 A KR 20010048898A KR 1019990053776 A KR1019990053776 A KR 1019990053776A KR 19990053776 A KR19990053776 A KR 19990053776A KR 20010048898 A KR20010048898 A KR 20010048898A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- document
- dynamic
- programming language
- class
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
본 발명은 동적문서의 연동에 관한 것으로, 웹 어플리케이션 서버의 자원을 효율적으로 이용하면서, 시각적인 화면설계와 업무 흐름을 분리시켜 고속으로 동적문서를 생성하기 위한, 동적문서 연동 장치 및 그 방법을 제공하는데 그 목적이 있다.
이를 위해 본 발명은 동적문서 연동 장치에 적용되는 동적 문서 연동 방법에 있어서, 웹 페이지 기술언어를 이용하여 시각적으로 제작된 템플릿 문서에 웹 어플리케이션 서버가 관리하는 자원을 이용할 수 있도록 동적 스크립트를 추가하는 제 1 단계; 동적 스크립트가 추가된 상기 문서를 순수 프로그래밍 언어로 변환하는 제 2 단계; 순수 프로그래밍 언어로 변환된 상기 문서를 실행코드로 컴파일하는 제 3 단계; 및 서비스 요구에 따라 상기 컴파일된 실행 코드를 실행하는 제 4 단계를 포함하며, 본 발명은 웹 어플리케이션 개발 시스템 등에 이용된다.
Description
본 발명은 동적문서의 연동에 관한 것으로, 특히, 시각적인 화면설계와 고속 처리가 가능한 동적문서 연동 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.
인터넷 초기의 문서는 모두 정적인 문서였으나 공통 관문 인터페이스(CGI:Common Gateway Interface)(이하, 간단히 "CGI"라함) 프로그래밍의 도입과, 웹(Web) 서버의 응용 프로그래밍 인터페이스(API:Application Programming Interface)(이하, 간단히 "API"라함)를 이용하므로써 인터넷 문서가 동적으로 작동하여 서비스할 수 있게 되었다.
이하, 도 1 내지 도 3 을 참조하여 종래의 기술을 상세히 설명한다.
도 1 은 종래의 공통 관문 인터페이스(CGI) 방식의 동적문서 연동 방법의 일실시예 개념도이다.
CGI 프로그래밍 방법은 어플리케이션 개발 시에 직접 프로그래밍 언어(103)로 하이퍼텍스트 마크업 랭귀지(HTML:HyperText Markup Language)(이하, 간단히 "HTML"이라함) 문서를 작성해야 하므로 시각적인 화면 내용이 프로그램 코드 내에 묻혀 완성된 프로그램을 실행시키기 전에는 HTML 화면 내용을 확인할 수 없어 시각적인 화면 디자인을 할 수 없을 뿐만 아니라, 각각의 프로세스들에 의해 데이터베이스(105) 연결과 같은 공유 자원을 독자적으로 초기화하고 사용하여야 하기 때문에 늦은 처리속도로 인해 대용량의 업무에는 사용할 수 없다는 문제점이 있었다.
도 2 는 종래의 인터프리터 방식의 동적문서 연동 방법의 일실시예 개념도이다.
CGI 방법 중 스크립트와 같은 프로그래밍 언어(203)를 사용하는 경우가 있는데, 이 방법은 클라이언트(201)가 서비스를 요구할 때에야 비로서 인터프리터(204)에 의해 문서를 해석해서 서비스를 처리하므로 미리 컴파일된 코드에 비해 처리 속도가 현저히 떨어지는 문제점이 있었다.
도 3 은 종래의 웹 서버 응용 프로그래밍 인터페이스(API) 방식의 동적문서 연동 방법의 일실시예 개념도이다.
웹 서버의 API(303)를 이용한 방법은 웹 서버(302)에서 데이터베이스와 같은 공유자원(306)을 관리하기 때문에 대용량의 업무 처리를 할 수는 있지만, 이 방법 역시 직접 웹 서버의 API 만을 갖고 HTML 문서를 작성하여 시각적인 화면의 확인 없이 개발해야 했으며, 웹 서버마다 서로 다른 복잡한 API를 개발자가 반드시 숙지해야만 어플리케이션을 만들 수 있어 프로그램 개발시간이 길었으며, 웹 서버가 변경되면 모든 프로그램을 처음부터 다시 작성해야 하는 문제점이 있었다.
본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로, 웹 어플리케이션 서버의 자원을 효율적으로 이용하면서, 시각적인 화면설계와 업무 흐름을 분리시켜 고속으로 동적문서를 생성하기 위한, 동적문서 연동 장치 및 그 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 그 목적이 있다.
도 1 은 종래의 공통 관문 인터페이스(CGI) 방식의 동적문서 연동 방법의 일실시예 개념도.
도 2 는 종래의 인터프리터 방식의 동적문서 연동 방법의 일실시예 개념도.
도 3 은 종래의 웹 서버 응용 프로그래밍 인터페이스(API) 방식의 동적문서 연동 방법의 일실시예 개념도.
도 4 는 본 발명에 따른 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동 방법의 일실시예 흐름도.
도 5 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정의 일실시예 상세 흐름도.
도 6a 및 도 6b 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 자바(Java) 코드의 처리 과정의 일실시예 흐름도.
도 7a 및 도 7b 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 구조적 질의어(SQL) 코드의 처리 과정의 일실시예 상세 흐름도.
도 8 은 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 HTML 코드의 처리 과정의 일실시예 상세 흐름도.
도 9 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 변수 접근 코드의 처리 과정의 일실시예 상세 흐름도.
도 10 은 본 발명에 따른 동적문서에서의 자바 프로그래밍 언어 삽입 과정을 나타내는 일실시예 도표.
도 11 은 본 발명에 따른 동적문서에서의 공유자원을 이용하는 스크립트 과정을 나타내는 일실시예 도표.
도 12 는 본 발명에 따른 동적문서에서의 공유자원을 접근하기 위한 변수 종류를 나타내는 일실시예 도표.
도 13 은 본 발명에 따른 웹 어플리케이션 서버에서의 자원 초기화 과정의 일실시예 상세 흐름도.
도 14a 및 도 14b 는 본 발명에 따른 웹 어플리케이션 서버에서의 서비스 처리 과정의 일실시예 상세 흐름도.
도 15 는 본 발명에 의한 변환과정을 거치기 전의 동적 문서의 일예시도.
도 16 은 본 발명에 의한 변환과정을 거친 후의 동적 문서의 일예시도.
도 17 은 본 발명에 의한 동적 문서의 실행에 따른 화면의 일예시도.
도 18 은 본 발명에 따른 동적문서 연동 장치의 일실시예 구성도.
상기 목적을 달성하기 위한 본 발명은, 동적문서 연동 장치에 적용되는 동적 문서 연동 방법에 있어서, 웹 페이지 기술언어를 이용하여 시각적으로 제작된 템플릿 문서에 웹 어플리케이션 서버가 관리하는 자원을 이용할 수 있도록 동적 스크립트를 추가하는 제 1 단계; 동적 스크립트가 추가된 상기 문서를 순수 프로그래밍 언어로 변환하는 제 2 단계; 순수 프로그래밍 언어로 변환된 상기 문서를 실행코드로 컴파일하는 제 3 단계; 및 서비스 요구에 따라 상기 컴파일된 실행 코드를 실행하는 제 4 단계를 포함한다.
또한, 본 발명은 시각적인 화면 설계와 고속 처리가 가능한 동적 문서 연동 장치에 있어서, 웹 페이지 기술언어를 이용하여 시각적으로 제작된 템플릿 문서에 공유 자원을 이용할 수 있도록 동적 스크립트를 추가하기 위한 동적 문서 작성 수단; 상기 동적 문서 작성 수단에서 동적 스크립트가 추가된 상기 문서를 순수 프로그래밍 언어로 변환하기 위한 변환 수단; 상기 변환 수단에서 순수 프로그래밍 언어로 변환된 상기 문서를 실행코드로 컴파일하기 위한 컴파일링 수단; 및 서비스 요구에 따라 상기 컴파일된 실행 코드를 실행하기 위한 실행 수단을 포함한다.
또한, 본 발명은 대용량 프로세서를 구비한 동적문서 연동 장치에, 웹 페이지 기술언어를 이용하여 시각적으로 제작된 템플릿 문서에 웹 어플리케이션 서버가 관리하는 자원을 이용할 수 있도록 동적 스크립트를 추가하는 제 1 기능; 동적 스크립트가 추가된 상기 문서를 순수 프로그래밍 언어로 변환하는 제 2 기능; 순수 프로그래밍 언어로 변환된 상기 문서를 실행코드로 컴파일하는 제 3 기능; 및 서비스 요구에 따라 상기 컴파일된 실행 코드를 실행하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명은 HTML 문서를 HTML 저작도구 등을 이용해 시각적인 방법으로 화면을 디자인하여 템플릿 문서를 작성한 후, 템플릿 문서에 웹 어플리케이션 서버에서 관리하고 있는 자원을 이용할 수 있는 스크립트 코드를 추가하도록 하므로써 시각적인 디자인과 별개로 프로그램을 작성할 수 있어 빠른 개발 속도를 갖을 수 있도록 한다.
또한, 스크립트 코드가 추가된 문서를 업무 처리 결과인 HTML 문서로 다시 만들어 낼 수 있는 순수 프로그래밍 언어로 자동 변환시켜준 후, 해당 프로그래밍 언어의 컴파일러에 의해 컴퓨터에서 바로 사용될 수 있는 실행코드로 변형시켜 놓고, 클라이언트의 요구를 받은 웹 서버가 웹 어플리케이션 서버를 통해 실행코드를 요청하면, 웹 어플리케이션 서버에 의해 바로 실행되어 웹 어플리케이션 서버가 관리하는 공유자원을 사용하여 서비스를 처리할 수 있도록 하므로써, 대용량의 업무 처리를 위한 빠른 처리 속도를 갖을 수 있도록 한다.
즉, 본 발명은 처음부터 프로그래밍 언어로 직접 동적문서를 작성하여 시각적인 화면 설계를 못하는 어려움과, 서버의 자원을 이용하지 않고 직접 서비스를 하여 자원을 비효율적으로 활용하였던 종래의 기술을 개선하여 인터넷상의 동적문서의 시각적인 디자인과 업무처리를 위한 코드를 분리하여 빠른 개발을 할 수 있으며, 서버의 공유 자원을 효율적으로 이용할 수 있도록 한다.
이하, 도 4 내지 도 18 을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 4 는 본 발명에 따른 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동 방법의 일실시예 흐름도이고, 도 18 은 본 발명에 따른 동적문서 연동 장치의 일실시예 구성도이다. 또한, 도 10 은 본 발명에 따른 동적문서에서의 자바 프로그래밍 언어 삽입 과정을 나타내는 일실시예 도표이고, 도 11 은 본 발명에 따른 동적문서에서의 공유자원을 이용하는 스크립트 과정을 나타내는 일실시예 도표이며, 도 12 는 본 발명에 따른 동적문서에서의 공유자원을 접근하기 위한 변수 종류를 나타내는 일실시예 도표이다.
도면에 도시된 바와 같이 어플리케이션 개발자(1801)는 시각적인 HTML 저작도구(1802) 등을 이용하여 업무에서 사용하기 위한 기본적인 HTML 문서가 되는 템플릿을 작성한다(401).
작성된 템플릿에 웹 어플리케이션 서버(1805)에서 관리하는 자원을 사용하는 스크립트를 도 10 내지 도 12 의 문법에 맞게 추가하여 프로그램 로직이 추가된 동적 HTML 문서(SQL-JHTML 문서)를 작성한다(402).
작성된 동적 HTML 문서(SQL-JHTML 문서)는 동적 HTML 변환기(1803)에 의해 자동적으로 웹 어플리케이션 서버(1805)의 자원을 이용하면서 업무를 처리할 수 있는 순수 프로그래밍 언어 코드로 변환된다. 여기서, 동적 HTML 변환기에 의한 문서변환과정은 도 5 와 같다(403).
순수 프로그래밍 언어 코드로 변환된 문서는 해당 프로그래밍 언어 컴파일러(1804)에 의해 실행코드로 컴파일된다(404).
컴파일된 실행 코드는 웹 어플리케이션 서버(1805)에 의해 실행되어진다.
웹 어플리케이션 서버(1805)는 도 13 과 같이 초기화 과정을 거쳐서 데이터베이스 연결과 같은 자원을 초기화하여 저장하고 있으며, 컴파일된 실행코드는 도 14 와 같이 웹 서버(1811)가 클라이언트(1812)에 의해 해당 문서를 요청받을 때에 웹 어플리케이션 서버의 서버 관리자(1809)에 의해 실행코드 저장장치(1806)에 적재되어 실행장치(1807)로 옮겨져서 클라이언트(1812)가 요구한 서비스를 처리한다.
클라이언트(1812)의 요구를 처리하면서 데이터베이스(1810)와 같은 공유자원을 사용할 필요가 있을 경우에는 동적 HTML 문서에 추가한 해당 스크립트에서 변환된 프로그래밍 언어 코드에서 자동적으로 공유자원 저장장치(1808)에 있는 자원을 이용하여 요구를 처리하고, 처리 결과를 HTML 저작도구로 만든 템플릿에 기반하여 HTML 문서로 결과를 클라이언트에게 전달한다.
서비스가 끝난 실행코드는 사용하였던 공유자원을 공유자원 저장장치(1808)에 반납한 후, 나중의 사용을 위해 실행코드 저장장치(1806)에 계속 상주한다.
도 13 은 본 발명에 따른 웹 어플리케이션 서버에서의 자원 초기화 과정의 일실시예 상세 흐름도이다.
즉, 웹 어플리케이션 서버는 데이터베이스 연결에 관한 설정 정보를 읽어 초기화 과정을 시작한다(1301).
설정정보에서 설정되어 있는 내용에 따라 사용하려는 데이터베이스 드라이버들을 메모리로 적재하여(1302,1303), 설정되어 있는 개수 만큼의 데이터베이스 연결 객체를 만들어서 데이터베이스 연결 풀에 저장한다(1304,1305,1306).
도 14a 및 도 14b 는 본 발명에 따른 웹 어플리케이션 서버에서의 서비스 처리 과정의 일실시예 상세 흐름도이다.
즉, 웹 어플리케이션 서버는 클라이언트로 부터의 서비스 요구를 기다라고 있다가, 클라이언트로부터 서비스 요구가 도착하였으면(1401,1402), 요구를 분석하여 해당하는 클래스를 적재한다.
이때, 우선 메모리 상의 캐쉬에 해당 클래스가 있으면(1403), 그것을 로드하고(1404), 만약 캐쉬에 없다면 자신의 로컬에 있는 저장장치에 존재하는지 검사하여 있으면 적재한다(1410,1411).
로컬에도 없는 경우에는 해당 클래스가 레파지토리에 있는지 검사하여 적재한다(1412,1411). 해당 클래스가 없으면 에러처리를 하고(1413) 다시 클라이언트로 부터의 서비스 요구를 기다린다(1401).
적재된 클래스는 실행시키기 위해 인스턴스화되고(1404), 메쏘드가 실행된다(1405).
실행시에 웹 어플리케이션의 자원을 이용할 필요가 있는 경우에는(1406), 웹 어플리케이션 서버에게 자원을 요청하여 필요한 자원을 확보하여 서비스를 처리한다(1414,1415). 그리고, 사용이 끝난 자원은 웹 어플리케이션에게 반납한다(1416).
실행시에 웹 어플리케이션의 자원을 이용할 필요가 없는 경우에는 자원을 이용하지 않고 서비스를 수행한다(1407).
서비스 처리과정을 거쳐서 메쏘드 실행이 완료되면 생성된 HTML 문서를 클라이언트에게 보낸다(1409).
도 5 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정의 일실시예 상세 흐름도로서, 작성된 동적 HTML 문서(SQL-JHTML 문서)를 순수 프로그래밍 언어 코드로 변환하는 과정(403)의 상세 흐름도이다.
변환기(1803)는 우선 헤더(Header), 컨텐트(Content), 테일(Tail)이라는 3개의 버퍼를 준비한 후(501), 동적 HTML 문서(SQL-JHTML 문서)를 읽으면서(502) 도 10, 11, 12 에 있는 문법에 맞는지를 파싱한다(503).
만약 정해진 문법에 맞지 않는 문법으로 작성되었으면(504) 에러 처리를 하고(509) 변환 과정이 중단된다.
문법에 맞는 경우에는(504) 각각의 논-터미널-토큰(Non-Terminal Token)에 대하여 해당하는 노드의 클래스를 실행하여(506, 507, 510, 511, 512, 613) 순수 프로그래밍 언어로 변환시켜, 미리 준비된 헤더(Header), 컨텐트(Content), 테일(Tail) 버퍼에 추가하고, 문서의 끝을 만나면(505) 3개의 버퍼를 합하여 파일로 저장시킨다(508).
여기서 논-터미널(Non-Terminal)에 해당하는 각각의 클래스는 자바(Java) 코드를 처리하기 위한 클래스(510), SQL 코드를 처리하기 위한 클래스(511), 변수 접근을 위한 클래스(512), HTML 코드를 위한 클래스(513)가 있다. 각각의 코드를 처리하기 위한 클래스의 실행과정은 도 6 내지 도 9 에 도시하였다.
도 6a 및 도 6b 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 자바(Java) 코드의 처리 과정의 일실시예 흐름도로서, 자바(Java) 코드를 처리하기 위한 클래스의 실행 과정이다.
우선, 토큰(Token)이 자바(Java)의 임포트(Import) 구문인 경우에는(601), 임포트(Import)할 내용을 동적 HTML 문서(SQL-JHTML 문서)로부터 읽어(602) 헤더(Header) 버퍼의 가장 앞에 삽입시킨다(603).
토큰(Token)이 정의(Define) 구문일 경우에는(604) 메쏘드 및 변수를 정의(606)한 정의(Define) 절을 읽어(605) 헤더(Header) 버퍼에 추가한다(607).
토큰(Token)이 절차(procedure) 구문일 경우에는(608) 실행한 메쏘드 이름 및 파라미터를 읽어(609), 파라미터가 첨부된 절차(procedure)를 프린트하는 코드로 생성하여(610) 컨텐트(Content) 버퍼에 추가한다(611),
토큰(Token)이 기능(function) 구문인 경우에는(612) 기능(function)의 결과가 저장될 플레이스홀더(PlaceHolder) 및 기능(function)에 사용되는 파라미터를 읽어(613,614), 기능(function)의 결과가 플레이스호더(PlaceHoder)에 저장되는 형식으로 코드를 생성하여(615) 컨텐트(Content) 버퍼에 추가한다(616).
또한, 토큰(Token)이 제어문인 경우에는(617) 제어문에 해당하는 조건절을 읽고(618), 조건을 만족하는 경우 실행될 실행문을 읽어(619), 프로그래밍 언어의 제어문 형식에 맞는 코드를 생성하여(620) 컨텐트(Content)버퍼에 추가한다(621).
도 7a 및 도 7b 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 구조적 질의어(SQL) 코드의 처리 과정의 일실시예 흐름도로서, 동적 HTML 문서(SQL-JHTML 문서)의 구조적 질의어(SQL) 코드를 처리하기 위한 과정이다.
토큰(Token)이 테이터베이스(DATABASE) 구문인 경우에는(701) 데이터베이스 명을 읽고(702), 웹 어플리케이션 서버(WAS)(1805)로부터 데이터베이스 명에 해당하는 커넥션(Connection)을 가져오도록 하는 함수 코드를 생성하여(703) 컨텐트(Content) 버퍼에 추가한다(724).
토큰(Token)이 질의(QUERY)문인 경우에는(704) 질의의 결과를 참조할 핸들명을 읽고(705), 실제 질의를 수행할 선택(SELECT) 질의문을 읽어(706), 자바(Java)의 문장(Statement) 객체를 이용한 코드를 작성하여(707) 컨텐트(Content) 버퍼에 추가한다(724). 여기서, 문장(Statement) 객체를 이용한 질의문은 데이터베이스의 커넥션(Connection)을 이용하여 질의를 수행할 수 있는 코드 및 실행 결과셋을 핸들과 연결시키는 코드로 작성한다(708,709).
토큰(Token)이 실행(Execute)문인 경우에는(710) 데이터 조작언어(DML:Data Manipulation Language) 문을 읽어(711) 실행(Execute) 문을 문장(Statement) 코드로 작성하고(712), 데이터베이스의 커넥션(Connection)을 이용해 명령을 실행하는 코드를 작성하여(713) 컨텐트(Content) 버퍼에 추가한다(724).
토큰(Token)이 프린트로우(PrintRow)인 경우에는(714) 질의의 결과를 참조하고 있는 핸들명 및 최대 프린트할 반복 횟수를 읽고(715), 실제 프린트할 내용을 읽은 후(716), 프로그래밍 언어의 'for' 문을 사용하여 결과셋을 프린트하고, 다음 레코드를 fetch하는 코드를 생성하여(714) 컨텐트(Content) 버퍼에 추가한다(724).
토큰(Token)이 넥스트(Next)인 경우에는(718) 결과셋을 참조하고 있는 핸들(Handle) 명을 읽고(719), 핸들의 다음 레코드를 페치(fetch)하는 코드를 작성하여(720) 컨텐트(Content) 버퍼에 추가한다(724).
토큰(Token)이 프리(Free)문인 경우에는(721) 결과셋을 지칭하는 핸들을 종료하고(722), 데이터베이스 연결(Connection)을 웹 어플리케이션 서버에 반환하는 코드를 작성하여(723) 컨텐트(Content) 버퍼에 추가한다(723).
도 8 은 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 HTML 코드의 처리 과정의 일실시예 흐름도로이다.
변환기(1803)는 HTML 코드를 읽어(801) HTML 코드를 유일한 이름을 갖는 스트링 변수에 저장하는 코드를 생성하여(802), 유일한 이름의 스트링 변수의 코드를 테일(Tail) 버퍼에 추가한다(803). 그리고, 유일한 스트링 변수를 출력하는 코드를 작성하여(804) 컨텐트(Content) 버퍼에 추가한다(805).
도 9 는 본 발명에 따른 변환기에 의해 순수 프로그래밍 언어로 변환되는 과정 중 변수 접근 코드의 처리 과정의 일실시예 흐름도로서, 변환기에 의해 변수를 접근하기 위한 처리 과정이다.
즉, 변수가 이름, 값의 쌍으로 구성된 일반 CGI 변수인 경우에는(901) CGI 변수명을 파라미터로 하여 CGI 변수를 추출하는 함수를 호출하는 코드를 생성하여(902,903) 생성된 코드를 컨텐트(Content) 버퍼에 추가한다(910).
토큰(Token)이 일반 자바(Java) 변수를 접근하기 위한 코드이면(904), 정의(Define) 구문에서 정의된 자바(Java) 변수를 접근하기 위한 코드를 생성하여(905,906) 컨텐트(Content) 버퍼에 추가한다(910).
또한, 토큰(Token)이 구조적 질의어(SQL) 질의를 수행한 결과를 접근하기 위한 구조적 질의어(SQL) 변수 접근 구문이면(907), 핸들명과 필드명을 읽어(908), 핸들의 결과셋으로부터 필드명에 해당하는 값을 가져오기 위한 코드를 생성하여(909) 컨텐트(Content) 버퍼에 추가한다(910).
이상의 과정을 거친 동적 HTML 문서(SQL-JHTML 문서)는 순수 프로그래밍 언어로 변환된다.
상기 도 5 내지 도 9 에 도시된 바와 같은 과정으로 변환기에 의해 동적 HTML 문서(SQL-JHTML 문서)로부터 순수 프로그래밍 언어로 변환되는 일례는 도 15 내지 도 17 에 도시되어 있다.
도 15 는 본 발명에 의한 변환과정을 거치기 전의 동적 문서의 일예시도이며, 도 16 은 본 발명에 의한 변환과정을 거친 후의 동적 문서의 일예시도이고, 도 17 은 본 발명에 의한 동적 문서의 실행에 따른 화면의 일예시도이다.
동적 HTML 문서(SQL-JHTML 문서)의 정의(Define) 구문(1501)은 생성된 클래스의 메쏘드(1601)로 포함됨을 볼 수 있다.
또한, 구조적 질의어(SQL) 문을 처리하기 위한 데이터베이스(DATABASE) 구문과 질의(QUERY) 구문(1502)은 연결을 선택한다거나, 질의를 수행하는 함수의 코드(1602)로 변환된다.
동적 HTML 문서(SQL-JHTML 문서)의 절차(Procedure) 구문(1503)은 함수를 호출하여 프린트하는 코드(1603)로 변환되었다.
그리고, 동적 HTML 문서(SQL-JHTML 문서)의 프린트로우(PrintRow) 구문(1504)은 For 제어문(1604)으로 변환되었다. 또한 일반 HTML 코드는 유일한 스트링 변수(1605)들로 변환되어 상수와 같이 사용되고 있다.
상기의 변환된 프로그래밍 언어 코드는 웹 어플리케이션 서버에 의해 실행되어 도 17 과 같은 결과를 생성한다.
상기의 예제와 같이 순수 프로그래밍 언어 코드로 변환된 문서는 해당 프로그래밍 언어 컴파일러(1804)에 의해 실행코드로 컴파일된다. 컴파일된 실행 코드는 웹 어플리케이션 서버(1805)에 의해 실행되어진다.
도 13 은 본 발명에 따른 웹 어플리케이션 서버에서의 자원 초기화 과정의 일실시예 상세 흐름도이다.
웹 어플리케이션 서버(1805)는 도 13 과 같이 초기화 과정을 거쳐서 데이터베이스 연결과 같은 자원을 초기화하여 저장하고 있다.
즉, 데이터베이스 설정 정보로부터, 사용하려는 모든 데이터베이스 드라이버를 적재하고, 설정정보에 설정되어 있는 개수 만큼 데이터베이스에 미리 로그인을 하여 다수의 연결(Connection)을 생성하여 연결 풀(Connection Pool)에 저장해 놓는다.
도 14a 및 도 14b 는 본 발명에 따른 웹 어플리케이션 서버에서의 서비스 처리 과정의 일실시예 상세 흐름도이다.
컴파일된 실행코드는 도면에 도시된 바와 같이 웹 서버(1811)가 클라이언트(1812)에 의해 해당 문서를 요청 받을 때에 웹 어플리케이션 서버(1805)의 서버 관리자(1809)에 의해 실행코드 저장장치(1806)에 적재되어 실행장치(1807)로 옮겨져서 클라이언트(1812)가 요구한 서비스를 처리한다(1401 내지 1405,1410 내지 1413).
클라이언트(1812)의 요구를 처리하면서 데이터베이스(1810)와 같은 공유자원을 사용할 필요가 있을 경우에는 동적 HTML 문서에 추가한 해당 스크립트에서 변환된 프로그래밍 언어 코드에서 자동적으로 공유자원 저장장치(1808)에 있는 자원을 이용하여 요구를 처리하고, 처리 결과를 HTML 저작도구로 만든 템플릿에 기반하여 HTML 문서로 결과를 클라이언트에게 전달한다(1406 내지 1409,1414 내지 1416).
서비스가 끝난 실행코드는 사용하였던 공유자원을 공유자원 저장장치(1808)에 반납한 후, 나중의 사용을 위해 실행코드 저장장치(1806)에 계속 상주한다(1416).
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상기와 같은 본 발명은 시각적인 디자인과 별개로 동적 문서 프로그램을 작성할 수 있어 빠른 개발 속도를 갖을 뿐만 아니라. 컴파일된 실행 코드에 의해 웹 어플리케이션 서버의 공유자원을 이용해 빠른 처리 속도를 갖을 수 있는 우수한 효과가 있다.
Claims (11)
- 동적문서 연동 장치에 적용되는 동적 문서 연동 방법에 있어서,웹 페이지 기술언어를 이용하여 시각적으로 제작된 템플릿 문서에 웹 어플리케이션 서버가 관리하는 자원을 이용할 수 있도록 동적 스크립트를 추가하는 제 1 단계;동적 스크립트가 추가된 상기 문서를 순수 프로그래밍 언어로 변환하는 제 2 단계;순수 프로그래밍 언어로 변환된 상기 문서를 실행코드로 컴파일하는 제 3 단계; 및서비스 요구에 따라 상기 컴파일된 실행 코드를 실행하는 제 4 단계를 포함하는 동적 문서 연동 방법.
- 제 1 항에 있어서,상기 제 2 단계는,동적 스크립트가 추가된 상기 문서가 문법에 맞게 작성되었는지를 확인하는 제 5 단계; 및상기 문서의 각 부분에 대하여 해당하는 노드의 클래스를 실행하여 순수 프로그래밍 언어로 변환시켜 저장하는 제 6 단계를 포함하는 동적 문서 연동 방법.
- 제 2 항에 있어서,상기 제 6 단계는,상기 클래스가 자바 코드를 처리하기 위한 클래스인 경우에, 상기 클래스를 실행하여 프로그래밍 언어로 변환시켜 저장하는 제 7 단계;상기 클래스가 구조적 질의어(SQL) 코드를 처리하기 위한 클래스인 경우에, 상기 클래스를 실행하여 프로그래밍 언어로 변환시켜 저장하는 제 8 단계;상기 클래스가 하이퍼텍스트 마크업 랭귀지(HTML) 코드를 처리하기 위한 클래스인 경우에, 상기 클래스를 실행하여 프로그래밍 언어로 변환시켜 저장하는 제 9 단계; 및상기 클래스가 변수 접근 코드를 처리하기 위한 클래스인 경우에, 상기 클래스를 실행하여 프로그래밍 언어로 변환시켜 저장하는 제 10 단계를 포함하는 동적 문서 연동 방법.
- 제 3 항에 있어서,상기 제 7 단계는,토큰(Token)이 임포트(Import) 구문인 경우, 임포트할 내용을 상기 동적 문서로부터 읽어 헤더(Header) 버퍼에 삽입하는 제 11 단계;토큰이 정의(Define) 구문인 경우 메쏘드 및 변수를 정의한 정의 절을 읽어 상기 헤더 버퍼에 추가하는 제 12 단계;토큰이 절차(procedure) 구문인 경우 실행한 메쏘드 이름 및 파라미터를 읽어 파라미터가 첨부된 절차를 프린트하는 코드로 생성하여 컨텐트(Content) 버퍼에 추가하는 제 13 단계;토큰이 기능(function) 구문인 경우 기능의 결과가 저장될 플레이스홀더(PlaceHolder) 및 기능에 사용되는 파라미터를 읽어 기능의 결과가 플레이스홀더(PlaceHolder)에 저장되는 형식으로 코드를 생성하여 상기 컨텐트 버퍼에 추가하는 제 14 단계; 및토큰이 어문인 경우 제어문에 해당하는 조건절을 읽고, 프로그래밍 언어의 제어문 형식에 맞는 코드를 생성하여 상기 컨텐트 버퍼에 추가하는 제 15 단계를 포함하는 동적 문서 연동 방법.
- 제 3 항에 있어서,상기 제 8 단계는,토큰(Token)이 데이터베이스(DATABASE) 구문인 경우 데이터베이스 명을 읽고, 커넥션(Connection)을 가져오도록 하는 함수 코드를 생성하여 컨텐트 버퍼에 추가하는 제 11 단계;토큰이 질의(QUERY)문인 경우 질의의 결과를 참조할 핸들명을 읽고, 실제 질의를 수행할 선택 질의문을 읽어, 자바의 문장 객체를 이용한 코드를 작성하여 상기 컨텐트 버퍼에 추가하는 제 12 단계;토큰이 실행(Execute)문인 경우 데이터 조작언어(DML) 문을 읽어 실행 문을 문장 코드로 작성하고, 데이터베이스의 커넥션(Connection)을 이용해 명령을 실행하는 코드를 작성하여 상기 컨텐트 버퍼에 추가하는 제 13 단계;토큰이 프린트로우(PrintRow)인 경우 질의의 결과를 참조하고 있는 핸들명 및 최대 프린트할 반복 횟수를 읽고, 결과셋을 프린트하며, 다음 레코드를 페치(fetch)하는 코드를 생성하여 상기 컨텐트 버퍼에 추가하는 제 14 단계;토큰이 넥스트(Next)인 경우 결과셋을 참조하고 있는 핸들 명을 읽고, 핸들의 다음 레코드를 페치하는 코드를 작성하여 상기 컨텐트 버퍼에 추가하는 제 15 단계; 및토큰이 프리(Free)문인 경우 결과셋을 지칭하는 핸들을 종료하고, 데이터베이스 커넥션(Connection)을 웹 어플리케이션 서버에 반환하는 코드를 작성하여 상기 컨텐트 버퍼에 추가하는 제 16 단계를 포함하는 동적 문서 연동 방법.
- 제 3 항에 있어서,상기 제 9 단계는,하이퍼텍스트 마크업 랭귀지 코드를 읽는 제 11 단계;상기 하이퍼텍스트 마크업 랭귀지 코드를 유일한 이름을 갖는 스트링 변수에 저장하는 코드를 생성하는 제 12 단계;상기 유일한 스트링 변수의 코드를 테일(Tail) 버퍼에 추가하는 제 13 단계; 및상기 유일한 스트링 변수를 출력하는 코드를 작성하여 컨텐트 버퍼에 추가하는 제 14 단계를 포함하는 동적 문서 연동 방법.
- 제 3 항에 있어서,상기 제 10 단계는,변수가 일반 공통 관문 인터페이스(CGI) 변수인 경우 상기 공통 관문 인터페이스(CGI) 변수를 추출하는 함수를 호출하는 코드를 생성하여 컨텐트 버퍼에 추가하는 제 11 단계;토큰이 일반 자바(Java) 변수를 접근하기 위한 코드인 경우 정의(Define) 구문에서 정의된 자바 변수를 접근하기 위한 코드를 생성하여 상기 컨텐트 버퍼에 추가하는 제 12 단계; 및토큰이 구조적 질의어(SQL) 질의를 수행한 결과를 접근하기 위한 구조적 질의어(SQL) 변수 접근 구문이면, 핸들의 결과셋으로부터 필드명에 해당하는 값을 가져오기 위한 코드를 생성하여 상기 컨텐트 버퍼에 추가하는 제 13 단계를 포함하는 동적 문서 연동 방법.
- 제 1 항 내지 제 7 항에 중 어느 한 항에 있어서,상기 제 4 단계는,상기 웹 어플리케이션 서버가 서비스 제공을 위하여 이용 가능한 자원을 초기화하는 제 17 단계; 및서비스 요구가 있는 경우 상기 컴파일된 실행코드를 상기 웹 어플리케이션 서버가 읽어오는 제 18 단계; 및상기 웹 어플리케이션 서버가 공유 자원을 이용하면서 상기 컴파일된 실행코드를 실행하여 상기 서비스 요구를 처리하는 제 19 단계를 포함하는 동적 문서 연동 방법.
- 시각적인 화면 설계와 고속 처리가 가능한 동적 문서 연동 장치에 있어서,웹 페이지 기술언어를 이용하여 시각적으로 제작된 템플릿 문서에 공유 자원을 이용할 수 있도록 동적 스크립트를 추가하기 위한 동적 문서 작성 수단;상기 동적 문서 작성 수단에서 동적 스크립트가 추가된 상기 문서를 순수 프로그래밍 언어로 변환하기 위한 변환 수단;상기 변환 수단에서 순수 프로그래밍 언어로 변환된 상기 문서를 실행코드로 컴파일하기 위한 컴파일링 수단; 및서비스 요구에 따라 상기 컴파일된 실행 코드를 실행하기 위한 실행 수단을 포함하는 동적 문서 연동 장치.
- 제 9 항에 있어서,상기 실행 수단은,서비스 요구를 받아 서비스 실행 명령을 내리며 그 결과를 통보해 주기 위한 서버 관리 수단;상기 서버 관리 수단의 서비스 실행 명령에 따라 상기 컴파일링 수단으로부터 상기 컴파일된 실행코드를 불러오기 위한 실행코드 저장 수단;상기 실행코드 저장 수단으로부터 상기 실행코드를 불러와 실행 한 후 그 결과를 상기 서버 관리 수단에 전달하기 위한 실행코드 실행 수단; 및공유자원을 저장하고 있다가 상기 실행코드 실행 수단 및 상기 서버 관리 수단으로부터의 공유자원 사용 요청에 따라 저장하고 있던 공유자원을 제공하기 위한 공유자원 저장 수단을 포함하는 동적 문서 연동 장치.
- 대용량 프로세서를 구비한 동적문서 연동 장치에,웹 페이지 기술언어를 이용하여 시각적으로 제작된 템플릿 문서에 웹 어플리케이션 서버가 관리하는 자원을 이용할 수 있도록 동적 스크립트를 추가하는 제 1 기능;동적 스크립트가 추가된 상기 문서를 순수 프로그래밍 언어로 변환하는 제 2 기능;순수 프로그래밍 언어로 변환된 상기 문서를 실행코드로 컴파일하는 제 3 기능; 및서비스 요구에 따라 상기 컴파일된 실행 코드를 실행하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990053776A KR100319765B1 (ko) | 1999-11-30 | 1999-11-30 | 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990053776A KR100319765B1 (ko) | 1999-11-30 | 1999-11-30 | 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010048898A true KR20010048898A (ko) | 2001-06-15 |
KR100319765B1 KR100319765B1 (ko) | 2002-01-09 |
Family
ID=19622637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990053776A KR100319765B1 (ko) | 1999-11-30 | 1999-11-30 | 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100319765B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100448865B1 (ko) * | 2000-12-19 | 2004-09-18 | 엘지전자 주식회사 | 인터넷상에서 서로 다른 시스템 모듈을 가지는 시스템관리 방법 |
KR100450605B1 (ko) * | 2001-12-07 | 2004-09-30 | 임민열 | 웹-어플리케이션 서버 및 그의 동적 컨텐츠 제공 방법 |
KR100473057B1 (ko) * | 2002-02-08 | 2005-03-08 | 삼성에스디에스 주식회사 | 직관적 방법에 의한 데이터베이스 연동 보고서 작성 방법 |
-
1999
- 1999-11-30 KR KR1019990053776A patent/KR100319765B1/ko not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100448865B1 (ko) * | 2000-12-19 | 2004-09-18 | 엘지전자 주식회사 | 인터넷상에서 서로 다른 시스템 모듈을 가지는 시스템관리 방법 |
KR100450605B1 (ko) * | 2001-12-07 | 2004-09-30 | 임민열 | 웹-어플리케이션 서버 및 그의 동적 컨텐츠 제공 방법 |
KR100473057B1 (ko) * | 2002-02-08 | 2005-03-08 | 삼성에스디에스 주식회사 | 직관적 방법에 의한 데이터베이스 연동 보고서 작성 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR100319765B1 (ko) | 2002-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5010551B2 (ja) | 動的ウェブページコンテンツファイルからのサーバ側コード生成 | |
US6675354B1 (en) | Case-insensitive custom tag recognition and handling | |
US7694284B2 (en) | Shareable, bidirectional mechanism for conversion between object model and XML | |
US7240279B1 (en) | XML patterns language | |
US6986101B2 (en) | Method and apparatus for converting programs and source code files written in a programming language to equivalent markup language files | |
US6718516B1 (en) | Method for verifying context between multiple related XML tags in document object model (DOM) | |
US6957439B1 (en) | Method, system, and program for mapping objects in different language formats | |
US6981212B1 (en) | Extensible markup language (XML) server pages having custom document object model (DOM) tags | |
US8423978B2 (en) | Configurable java server pages processing framework | |
JP4146590B2 (ja) | タスク指向アプリケーションのための装置、方法及び記録媒体 | |
US6961929B1 (en) | Mechanism for automatic synchronization of scripting variables | |
KR101130500B1 (ko) | 데이터 구동 커맨드 라인 출력을 제공하는 메커니즘 | |
US8677328B2 (en) | Generating a dynamic content creation program | |
US6948120B1 (en) | Computer-implemented system and method for hosting design-time controls | |
CN102566984A (zh) | 一种配置参数的方法及装置 | |
US6898786B1 (en) | Javascript interpreter engine written in Java | |
US7165243B1 (en) | Multi-lingual tag extension mechanism | |
US8112500B2 (en) | Technique of relaying communications between client apparatus and server apparatus | |
KR100319765B1 (ko) | 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법 | |
Monnier et al. | Evolution of emacs lisp | |
Abrams et al. | User interface markup language (UIML) specification | |
JP5164112B2 (ja) | ソースコード変換方法、サーバシステム、およびサーバプログラム | |
JP2000076057A (ja) | デ―タ処理システムにおいてデ―タにアクセスするための方法および装置 | |
US20100192136A1 (en) | Optimized javaserver pages lifecycle model | |
JP4776972B2 (ja) | キャッシュ生成方法、装置、プログラム及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121129 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20131128 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |