KR19990040514A - How to create CGI program automatically - Google Patents
How to create CGI program automatically Download PDFInfo
- Publication number
- KR19990040514A KR19990040514A KR1019970060919A KR19970060919A KR19990040514A KR 19990040514 A KR19990040514 A KR 19990040514A KR 1019970060919 A KR1019970060919 A KR 1019970060919A KR 19970060919 A KR19970060919 A KR 19970060919A KR 19990040514 A KR19990040514 A KR 19990040514A
- Authority
- KR
- South Korea
- Prior art keywords
- token
- information
- html template
- html
- determined
- Prior art date
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 CGI(Common Gateway Interface) 프로그램 자동생성 방법에 관한 것으로서, 특히 클라이언트의 요청에 따라 동적으로 생성되는 웹 문서의 저작을 가능하도록 하는 CGI 프로그램을 자동으로 생성하는 방법에 관한 것이다. 그 목적은 웹 저작 환경하에서 개발자가 설계한 HTML 인터페이스에 대한 정보와 사용자가 웹 사이트 접근하여 입력한 검색 조건들에 대한 정보를 결합하여 CGI 프로그램을 자동으로 생성함으로써 빠르고 간단하게 동적 웹 문서 저작을 가능하게 하는 데에 있다. 그 특징은 지정된 HTML 형식에 맞게 검색결과를 출력해 주는 CGI 프로그램을 자동으로 생성하는 CGI 프로그램 자동생성 방법에 있어서, 사용자의 입력정보를 분석하는 제 1 단계와, 상기 분석된 입력정보와 SQL 템플릿의 정보를 이용하여 완전한 SQL 코드를 생성하는 제 2 단계와, 상기 생성된 SQL 코드를 수행하는 제 3 단계 및 상기 SQL 코드 수행 결과와 HTML 템플릿의 정보를 분석하여 HTML 코드를 생성하는 제 4 단계를 포함하는 데에 있다.The present invention relates to a method for automatically generating a common gateway interface (CGI) program, and more particularly, to a method for automatically generating a CGI program that enables the authoring of a web document dynamically generated according to a client's request. Its purpose is to create dynamic web documents quickly and simply by automatically generating CGI programs by combining information about HTML interfaces designed by developers under the web authoring environment and information about search conditions entered by users accessing websites. It's about letting go. In the CGI program automatic generation method for automatically generating a CGI program that outputs a search result according to a specified HTML format, the first step of analyzing the user input information, and the analysis of the input information and the SQL template A second step of generating a complete SQL code using information; a third step of executing the generated SQL code; and a fourth step of analyzing the SQL code execution result and information of an HTML template to generate HTML code. It's there.
Description
본 발명은 CGI(Common Gateway Interface) 프로그램 자동생성 방법에 관한 것으로서, 특히 클라이언트의 요청에 따라 동적으로 생성되는 웹 문서의 저작을 가능하도록 하는 CGI 프로그램을 자동으로 생성하는 방법에 관한 것이다.The present invention relates to a method for automatically generating a common gateway interface (CGI) program, and more particularly, to a method for automatically generating a CGI program that enables the authoring of a web document dynamically generated according to a client's request.
일반적으로, CGI는 HTTP(HyperText Transport Protocol) 서버와 서버 내의 여러 자원들, 그리고 서버와 클라이언트가 주고받는 정보전달 방식과 변수에 대한 일종의 협약 인터페이스로서, 클라이언트가 요청하는 그 순간에 그 요구에 부합하는 문서를 동적으로 생성할 수 있도록 한다. 또한, 웹 문서의 유형은 크게 정적 문서와 동적 문서로 분류되어 질 수 있는데, 정적 문서는 일단 한 번 설계되면 모든 상황에 모든 사용자에게 동일한 형태로 보여지는 문서이고, 동적 문서는 실제 웹 사이트 접근시 사용자의 선택에 따라 내용이나 형태가 변하는 문서이다. 동적 문서는 CGI 프로그램을 이용하여 생성되는데, CGI 프로그램에는 사용자의 입력을 받아들이는 기능, 질의를 수행하여 데이터베이스를 검색하는 기능, 그리고 검색 결과를 HTML(HyperText Markup Language) 태그의 구문에 맞게 출력하기 위한 출력 형태에 대한 기능이 포함된다. 이러한 기능을 가진 CGI 프로그램을 이용하여 데이터베이스에서 접속시 조건에 맞는 자료를 검색하여 그 결과를 출력할 수 있으며, 이러한 과정으로 생성된 문서가 동적 문서이며, 웹 사이트 접속시에 사용자의 요구에 부합하는 정보를 제공하는 역할을 한다.In general, CGI is a type of convention interface for HyperText Transport Protocol (HTTP) servers and resources within the server, as well as information transfer methods and variables that the server and the client exchange with each other. Allows you to generate documents dynamically. In addition, the types of web documents can be largely classified into static documents and dynamic documents. Static documents are documents that are displayed in the same form to all users in all situations once designed. A document whose contents or form change according to the user's choice. Dynamic documents are generated using CGI programs. CGI programs are designed to accept user input, search a database by executing a query, and output search results according to the syntax of HTML (HyperText Markup Language) tags. Functions for output types are included. CGI program with this function can be used to search the database for data that meet the conditions of the connection and output the result.The document created by this process is a dynamic document, It serves to provide information.
종래의 웹 저작 도구에서는 HTML 태그의 아이콘화, 사용자 접속의 시각화, WYSIWYG(What You See Is What You Get) 방식의 웹 문서 설계 기법 등을 제공함으로써 정적인 웹 문서의 저작을 지원한다. 그러나, 이러한 종래의 웹 저작 도구에서는 클라이언트 요청에 의해 동적으로 생성되는 웹 문서의 저작을 지원하지 않으므로, 동적 웹 문서 생성을 위한 CGI 프로그램 설계와 코딩에 대한 일련의 작업이 전적으로 개발자에 의해서 이루어져야 한다는 문제점이 있었다. 또한, 종래의 이러한 웹 저작 도구에서는 개발자가 직접 동적 문서 생성을 위한 CGI 프로그램을 작성해야 하므로, 개발자가 CGI 프로그램 기법을 알고 있어야 할뿐만 아니라, HTML 태그 기술방식, SQL(Structured Query Language)과 같은 데이터베이스 언어의 구문, 데이터베이스 검색의 방법과 절차에 대한 지식이 있어야 하므로 동적 문서 생성을 위한 CGI 프로그램 작성에 많은 시간을 소요하게 된다는 문제점도 있었다.Conventional web authoring tools support the authoring of static web documents by providing an HTML tag icon, a visualization of user access, and a web document design technique using the WYSIWYG (What You See Is What You Get) method. However, such a conventional web authoring tool does not support authoring of a web document dynamically generated by a client request. Therefore, a developer must design and code a CGI program for generating a dynamic web document entirely by the developer. There was this. In addition, such a conventional web authoring tool requires a developer to write a CGI program for generating a dynamic document. Therefore, the developer must not only know the CGI programming technique, but also a database such as HTML tagging scheme and structured query language (SQL). There is a problem that it takes a lot of time to write a CGI program for dynamic document generation because it requires knowledge of language syntax, database search method and procedure.
상술한 바와 같은 기존 저작방식에서의 문제점을 개선하기 위해 안출된 본 발명은 웹 저작 환경하에서 개발자가 설계한 HTML 인터페이스에 대한 정보와 사용자가 웹 사이트 접근하여 입력한 검색 조건들에 대한 정보를 결합하여 CGI 프로그램을 자동으로 생성함으로써 빠르고 간단하게 동적 웹 문서 저작을 가능하게 하는 데에 그 목적이 있다.The present invention devised to improve the problems of the existing authoring method as described above by combining the information on the HTML interface designed by the developer in the web authoring environment and the search conditions entered by the user accessing the web site The goal is to enable dynamic Web document authoring quickly and simply by automatically generating CGI programs.
상기 목적을 달성하기 위하여 본 발명의 시스템은 시각 편집기, CGI 생성기를 포함하며 CGI 생성기에 의해 생성된 프로그램은 분석기와 코드 생성기를 포함하되 상기 분석기는 웹 접속시에 발생하는 사용자의 입력을 분석하는 모듈과 SQL 템플릿과 HTML 템플릿을 분석하는 모듈을 구비하고, 상기의 코드 생성기는 질의 수행을 위해서 SQL 코드를 생성하는 모듈, SQL 코드를 실행하는 모듈 및 HTML 코드 생성 모듈을 구비한다. 그 외에도 환경설정 정보를 이용하여 CGI 코드 실행정보를 설정하는 생성모듈을 구비한다.In order to achieve the above object, the system of the present invention includes a visual editor, a CGI generator, and a program generated by the CGI generator includes an analyzer and a code generator, wherein the analyzer is a module for analyzing a user's input generated during web access. And a module for analyzing a SQL template and an HTML template. The code generator includes a module for generating SQL code, a module for executing SQL code, and an HTML code generation module for executing a query. In addition, a generation module for setting CGI code execution information using environment setting information is provided.
상기 목적을 달성하기 위한 본 발명의 특징은 지정된 HTML 형식에 맞게 검색결과를 출력해 주는 CGI 프로그램을 자동으로 생성하는 CGI 프로그램 자동생성 방법에 있어서, 사용자의 입력정보를 분석하는 제 1 단계와, 상기 분석된 입력정보와 SQL 템플릿의 정보를 이용하여 완전한 SQL 코드를 생성하는 제 2 단계와, 상기 생성된 SQL 코드를 수행하는 제 3 단계 및 상기 SQL 코드 수행 결과와 HTML 템플릿의 정보를 분석하여 HTML 코드를 생성하는 제 4 단계를 포함하는 데에 있다. 여기서, 상기 제 1 단계는 웹 접속시에 사용자가 폼을 통해 정보를 입력하는 과정과, 상기 입력된 정보를 분석하는 과정 및 환경 정보를 분석하는 과정으로 이루어지거나, 또는, 웹 접속시에 사용자가 앵커를 선택하는 과정과, 상기 선택된 앵커의 정보를 분석하는 과정 및 환경 정보를 분석하는 과정으로 이루어진다. 상기 제 4 단계는 상기 제 3 단계의 결과 중에서 웹 문서로 제공할 부분이 어떤 부분인지를 판별하는 필터링 작업을 수행하는 제 1 과정과, 'ListTable'인 토큰이 나올 때까지 상기 토큰을 출력하면서 HTML 템플릿 파일을 토큰 단위로 읽어들이는 제 2 과정과, 'End'인 토큰이 나올 때까지 토큰의 유형에 따라 해당 출력값을 출력하면서 상기 HTML 템플릿에서 토큰을 읽어들이는 제 3 과정과, 'PreNext'인 토큰이 나올 때까지 토큰을 출력하면서 상기 HTML 템플릿에서 토큰을 읽어들이는 제 4 과정과, 'End'인 토큰이 나올 때까지 앵커정보를 생성하면서 상기 HTML 템플릿에서 토큰을 읽어들이는 제 5 과정 및 HTML 템플릿 파일의 끝이 나올 때까지 상기 HTML 템플릿에서 토큰을 읽어들이는 제 6 과정으로 이루어진다. 상기 제 2 과정은 상기 HTML 템플릿 파일을 토큰 단위로 읽어들이는 제 1 스텝과, 토큰이 'ListTable'인지 아닌지 판단하는 제 2 스텝과, 상기 제 2 스텝에서 토큰이 'ListTable'가 아니라고 판단되면, 상기 HTML 템플릿에서 토큰을 읽는 제 3 스텝과, 토큰을 출력하고 상기 제 1 스텝으로 진행하는 제 4 스텝과, 상기 제 2 스텝에서 토큰이 'ListTable'라고 판단되면, 상기 HTML 템플릿에서 토큰을 읽는 제 5 스텝으로 이루어진다. 상기 제 3 과정은 토큰유형이 변수인지 판단하는 제 1 스텝과, 상기 제 1 스텝에서 토큰의 유형이 변수라고 판단되면, SQL 수행결과에 해당되는 값을 표준 출력장치로 출력하는 제 2 스텝과, 상기 제 1 스텝에서 토큰의 유형이 변수가 아니라고 판단되면, 토큰을 표준 출력장치로 출력하는 제 3 스텝과, 상기 HTML 템플릿에서 토큰을 읽는 제 4 스텝과, 토큰이 'End'인지 판단하는 제 5 스텝 및 상기 제 5 스텝에서 토큰이 'End'가 아니라고 판단되면, 상기 제 1 스텝으로 진행하는 제 6 스텝으로 이루어진다. 상기 제 4 과정은 상기 HTML 템플릿에서 토큰을 읽는 제 1 스텝과, HTML 템플릿 파일의 끝인지 판단하는 제 2 스텝과, 상기 제 2 스텝에서 HTML 템플릿 파일의 끝이라고 판단되면, 종료하는 제 3 스텝과, 상기 제 2 스텝에서 HTML 템플릿 파일의 끝이 아니라고 판단되면, 토큰이 'PreNext'인지 판단하는 제 4 스텝과, 상기 제 4 스텝에서 토큰이 'PreNext'가 아니라고 판단되면, 상기 제 1 스텝으로 진행하는 제 5 스텝 및 상기 제 4 스텝에서 토큰이 'PreNext'라고 판단되면, 상기 HTML 템플릿에서 토큰을 읽는 제 6 스텝으로 이루어진다. 상기 제 5 과정은 상기 URL 정보를 획득하는 제 1 스텝과, 상기 앵커정보를 생성하는 제 2 스텝과, 상기 HTML 템플릿에서 토큰을 읽는 제 3 스텝과, 토큰이 'End'인지 판단하는 제 4 스텝 및 상기 제 4 스텝에서 토큰이 'End'가 아니라고 판단되면, 상기 제 1 스텝으로 진행하는 제 5 스텝으로 이루어진다. 상기 앵커정보는 상기 URL과 인자 리스트로 구성되며, 상기 URL은 호스트 컴퓨터 이름, 자원이 있는 곳의 경로정보 등 자원에 대한 다양한 정보를 표현하는 특정한 구문으로 구성되며, 상기 인자 리스트는 상기 URL에 있는 CGI 프로그램을 호출할 경우에 프로그램의 인자들과 그 값들의 쌍을 넘겨주기 위해서 사용된다. 상기 제 6 과정은 상기 HTML 템플릿에서 토큰을 읽는 제 1 스텝과, HTML 템플릿 파일의 끝인지 판단하는 제 2 스텝과, 상기 제 2 스텝에서 HTML 템플릿 파일이 끝이 아니라고 판단되면, 표준 출력장치로 토큰을 출력하고 상기 제 1 스텝으로 진행하는 제 3 스텝 및 상기 제 2 스텝에서 HTML 템플릿 파일이 끝이라고 판단되면, 종료하는 제 4 스텝으로 이루어진다.A feature of the present invention for achieving the above object is a CGI program automatic generation method for automatically generating a CGI program for outputting a search result according to a specified HTML format, the first step of analyzing the user input information, and A second step of generating a complete SQL code using the analyzed input information and the information of the SQL template, a third step of executing the generated SQL code, and a result of analyzing the SQL code execution result and information of the HTML template and the HTML code Including a fourth step of generating a. In this case, the first step includes a process of inputting information through a form by a user during web access, a process of analyzing the input information, and an analysis of environmental information, or a user at web access. The method includes selecting an anchor, analyzing the information of the selected anchor, and analyzing the environmental information. The fourth step is a first step of performing a filtering operation for determining which part of the result of the third step to provide as a web document, and outputting the token until the token of 'ListTable' is returned. A second step of reading a template file in token units, a third step of reading a token from the HTML template while outputting a corresponding output value according to the type of the token until a token of 'End' appears, and a 'PreNext' A fourth process of reading a token from the HTML template while outputting a token until an in token appears, and a fifth process of reading a token from the HTML template while generating anchor information until an 'End' token comes out And a sixth process of reading a token from the HTML template until the end of the HTML template file comes out. The second step may include a first step of reading the HTML template file in token units, a second step of determining whether a token is a 'ListTable', and if it is determined that the token is not a 'ListTable' in the second step, A third step of reading a token from the HTML template, a fourth step of outputting a token and proceeding to the first step, and reading the token from the HTML template if it is determined that the token is 'ListTable' in the second step. It consists of 5 steps. The third step may include: a first step of determining whether the token type is a variable; a second step of outputting a value corresponding to a result of performing SQL to a standard output device when it is determined that the token type is a variable in the first step; If it is determined in step 1 that the token type is not a variable, a third step of outputting the token to a standard output device; a fourth step of reading the token from the HTML template; and a fifth step of determining whether the token is 'End'. If it is determined in the step and the fifth step that the token is not 'End', the sixth step proceeds to the first step. The fourth step includes a first step of reading a token from the HTML template, a second step of determining whether it is the end of the HTML template file, and a third step of ending if the end of the HTML template file is determined in the second step; If it is determined that the end of the HTML template file is not the end of the HTML template file in the second step, the fourth step determines whether the token is 'PreNext', and if it is determined in the fourth step that the token is not 'PreNext', the process proceeds to the first step. If it is determined that the token is 'PreNext' in the fifth step and the fourth step, a sixth step of reading the token from the HTML template is performed. The fifth process includes a first step of obtaining the URL information, a second step of generating the anchor information, a third step of reading a token from the HTML template, and a fourth step of determining whether the token is 'End'. And a fifth step proceeding to the first step if it is determined that the token is not 'End' in the fourth step. The anchor information is composed of the URL and the argument list, and the URL is composed of a specific syntax for expressing various information about the resource such as a host computer name and path information where the resource is located, and the argument list is located in the URL. When calling a CGI program, it is used to pass a pair of program arguments and their values. The sixth step includes a first step of reading a token from the HTML template, a second step of determining whether the end of the HTML template file is the end, and if it is determined in the second step that the HTML template file is not the end, the token is output to the standard output device. If it is determined that the HTML template file is the end in the third step and the second step to output the first step and the second step, the fourth step to end.
본 발명은 사용자가 입력한 정보와 개발자가 기술한 SQL과 HTML 에 대한 골격 정보에 해당하는 템플릿 정보를 분석하여 웹 사이트에 접속한 시점에 사용자가 원하는 조건에 맞도록 SQL 코드를 완성하고 개발자가 지정한 HTML 코드 구조에 부합하도록 SQL 코드 실행 결과를 출력함으로써 동적으로 웹 문서를 생성하는 CGI 프로그램을 자동으로 생성하여 준다.The present invention analyzes the template information corresponding to the information input by the user and the skeleton information on the SQL and HTML described by the developer to complete the SQL code to meet the user's requirements at the time of accessing the web site and specify the developer. Automatically generate CGI programs that dynamically generate web documents by outputting SQL code execution results to conform to HTML code structure.
도 1은 CGI 기능에 대한 개념도.1 is a conceptual diagram of a CGI function.
도 2는 본 발명에 따른 시스템의 전체 구성도.2 is an overall configuration diagram of a system according to the present invention.
도 3은 CGI 프로그램의 구성도.3 is a configuration diagram of a CGI program.
도 4a∼4c는 동적 HTML 코드 생성에 대한 자료 흐름도.4A-4C are data flow diagrams for dynamic HTML code generation.
도 5a∼5c는 SQL 코드 생성에 대한 자료 흐름도.5A to 5C are data flow diagrams for generating SQL code.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예들 중의 하나를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail one of the preferred embodiments according to the present invention.
도 1은 CGI 기능에 대한 개념도이다. 도 1을 참조하여 CGI 기능을 설명하면 다음과 같다.1 is a conceptual diagram of a CGI function. A CGI function will be described with reference to FIG. 1 as follows.
먼저, 클라이언트(20)는 웹 브라우저(21)를 통하여 웹 서버(11)에 있는 웹 문서들을 항해하다가 필요한 정보를 선택하거나 검색하여 그 결과를 받아볼 수 있다. CGI는 HTTP 서버와 서버 내의 여러 자원들, 그리고 서버(10)와 클라이언트(20)가 주고받는 정보 전달방식과 변수에 대한 일종의 협약 인터페이스로서, 클라이언트(20)가 요청하는 그 순간에 그 요구에 부합하는 문서를 동적으로 생성할 수 있도록 해준다. CGI 실행파일은 웹 서버(11)의 특정 디렉토리에 저장되어 있으면서, 웹 서버(11)로부터의 호출이 발생할 경우에 웹 데이터베이스 응용서버(12)와 접속하여 검색 등의 데이터베이스 처리작업을 수행하고 그 결과를 다시 웹 서버(11)로 전달하는 역할을 수행한다.First, the client 20 may navigate through web documents in the web server 11 through the web browser 21 and select or retrieve necessary information to receive the result. CGI is a kind of convention interface for HTTP server and various resources in the server, and the information transmission method and variables that the server 10 and the client 20 exchange with each other, and meet the requirements at the moment that the client 20 requests. Allows you to dynamically generate documents. While the CGI executable file is stored in a specific directory of the web server 11, when a call from the web server 11 occurs, the CGI executable file is connected to the web database application server 12 to perform a database processing operation such as a search and the like. It serves to pass back to the web server (11).
도 2는 본 발명에 따른 시스템의 전체 구성도이다. 도 2를 참조하여 본 발명에 따른 시스템의 전체 구성을 설명하면 다음과 같다.2 is an overall configuration diagram of a system according to the present invention. Referring to Figure 2 describes the overall configuration of the system according to the present invention.
본 발명에 따른 시스템은 시각 편집기(30)와 CGI 생성기(40)로 구성되어 있다. 시각 편집기(30)에서는 먼저, HTML 템플릿 생성기(32)를 제공하는데, HTML 템플릿은 정적인 HTML 코드와 동적으로 변경되어야 할 정보에 대한 매크로 정의가 결합되어 있는 문서이다. 상기 모듈에서는 아이콘을 이용한 WYSIWYG 방식의 웹 문서 저작을 지원하여 웹 접속시에 사용자가 요구하는 조건을 만족하는 데이터베이스의 검색 결과에 따라 동적으로 웹 문서를 생성할 수 있도록 출력형식에 대한 설계를 쉽게 할 수 있게 한다. 따라서, 개발자는 HTML 태그에 대한 별도의 지식이 없어도 시각적인 개발 환경에서 쉽게 동적 웹 문서를 설계할 수 있다. 또한 시각 편집기(30)에서는 질의 생성 기능을 제공하기 위하여 SQL 템플릿 생성기(31)를 제공한다. 데이터베이스에서 검색할 필드와 조건에 사용될 필드를 개발자가 마우스로 선택하면 해당하는 SQL 템플릿을 생성하여 웹 접속시에 사용자가 입력하는 조건과 결합될 수 있도록 한다. CGI 생성기(40)에서는 템플릿들에 대한 정보와 각각의 템플릿이 저작 대상 문서들 중 어떤 문서와 관련이 있는지 등의 정보와 시스템 환경 설정 정보를 분석하여 본 발명의 시스템에서 제공하는 기본 패키지를 결합하여 개발자의 웹 저작 요구에 부합하는 CGI 프로그램을 자동으로 생성한다.The system according to the invention consists of a visual editor 30 and a CGI generator 40. The visual editor 30 first provides an HTML template generator 32, which is a document that combines static HTML code and macro definitions of information to be changed dynamically. The module supports WYSIWYG web document authoring using icons to easily design the output format so that web documents can be dynamically generated according to the search results of a database that satisfies the user's requirements for web access. To be able. As a result, developers can easily design dynamic Web documents in a visual development environment without requiring any additional knowledge of HTML tags. In addition, the visual editor 30 provides a SQL template generator 31 to provide a query generation function. When a developer selects a field to be used for a field and condition to be searched in the database with a mouse, a corresponding SQL template is generated so that it can be combined with the condition entered by the user when connecting to the web. The CGI generator 40 analyzes the information about the templates, information about each template related to which of the documents to be authored, and system configuration information, and combines the basic packages provided by the system of the present invention. Automatically generate CGI programs that meet the developer's web authoring needs.
도 3은 CGI 프로그램의 구성도이다. 도 3을 참조하여 본 발명의 시스템에서 제공하는 패키지들을 이용하여 생성되는 CGI 프로그램의 구조에 대하여 설명하면 다음과 같다.3 is a block diagram of a CGI program. Referring to Figure 3 describes the structure of the CGI program generated using the packages provided by the system of the present invention as follows.
본 발명의 시스템에 의해서 생성되는 프로그램은 크게 분석기(70)와 코드 생성기(80)로 구성되어 진다. 분석기(70)는 사용자 입력 분석모듈(71), SQL 템플릿 분석모듈(72), HTML템플릿 분석모듈(73)로 구성되어 있다. SQL 템플릿 분석모듈(72)에서는 시각 편집기(30)에서 생성된 SQL 템플릿의 정보를 분석하여 SQL 생성을 위해 필요한 정보를 추출하고, HTML 템플릿 분석모듈(73)에서는 시각 편집기(30)에서 생성된 HTML 템플릿의 정보를 분석하여 정적으로 사용될 수 있는 부분과 데이터베이스 검색결과와 결합되어 동적으로 생성되어야 할 부분들에 대한 정보를 분석한다. 사용자 입력 분석모듈(71)에서는 사용자가 웹에 접속한 상태에서 폼(FORM)을 통해서 입력한 인자들의 정보를 디코딩하고 분석하여 SQL 코드 생성과 HTML 코드 생성에 사용될 수 있도록 한다. 코드 생성기(80)에서는 SQL 코드 생성모듈(81), SQL 질의 수행모듈(82) 및 HTML 코드 생성모듈(83)을 거친다. SQL 코드 생성모듈(81)에서는 먼저 사용자의 입력과 SQL 템플릿 분석정보를 이용하여 완전한 SQL 코드를 생성한다. 그리고, SQL 질의 수행모듈(82)에서는 생성된 SQL 코드를 수행하여 데이터베이스를 검색한다. 그리고, HTML 코드 생성모듈(83)에서는 SQL 질의 수행모듈(82)의 검색결과와 HTML 템플릿 정보를 결합하여 웹 접속시에 사용자에게 보여질 문서를 동적으로 생성한다.The program generated by the system of the present invention is largely composed of an analyzer 70 and a code generator 80. The analyzer 70 includes a user input analysis module 71, an SQL template analysis module 72, and an HTML template analysis module 73. The SQL template analysis module 72 analyzes the information of the SQL template generated by the visual editor 30 to extract information necessary for generating SQL, and the HTML template analysis module 73 generates the HTML generated by the visual editor 30. Analyze the information in the template to analyze the information about the parts that can be used statically and the parts that need to be generated dynamically in combination with the database search results. The user input analysis module 71 decodes and analyzes information of parameters input through a form while the user is connected to the web so that the user input analysis module 71 can be used for generating SQL code and HTML code. The code generator 80 passes through the SQL code generation module 81, the SQL query execution module 82, and the HTML code generation module 83. The SQL code generation module 81 first generates a complete SQL code using a user input and SQL template analysis information. In addition, the SQL query execution module 82 performs a generated SQL code to search a database. In addition, the HTML code generation module 83 combines the search results of the SQL query execution module 82 and the HTML template information to dynamically generate a document to be displayed to the user when the web is connected.
도 4a∼4c는 동적 HTML 코드 생성에 대한 자료 흐름도이다. 도 4a∼4c를 참조하여 동적 HTML 코드 생성에 대한 자료의 흐름을 설명하면 다음과 같다.4A-4C are data flow diagrams for dynamic HTML code generation. Referring to Figures 4a to 4c describes the flow of data for dynamic HTML code generation as follows.
먼저, S1에서는 웹 접속시에 사용자가 폼을 통해 정보를 입력한다. 그러나, 사용자는 정보를 입력하지 않고 S2에서처럼 앵커를 선택할 수도 있다. S3에서는 상기 S1에서 사용자가 폼을 통해 입력한 정보나 상기 S2에서 사용자가 선택한 앵커의 정보를 분석한다. 그리고 나서, S4에서는 환경 정보를 분석한다. S5에서는 분석된 정보와 SQL 템플릿을 이용하여 완전한 SQL 코드를 생성한다. S6에서는 SQL 코드를 수행한다. 그리고, S7에서는 상기 S6의 결과 중에서 웹 문서로 제공할 부분이 어떤 부분인지를 판별하는 필터링 작업을 수행한다. S8에서는 HTML 템플릿 파일을 토큰 단위로 읽어들인다. S9에서는 토큰이 'ListTable'인지 아닌지 판단한다. 상기 S9에서 토큰이 'ListTable'이 아니라고 판단되면, S10에서는 HTML 템플릿에서 토큰을 읽는다. S11에서는 토큰을 출력하고 상기 S8에서 다시 HTML 템플릿 파일을 읽어 들인다. 상기 S9에서 토큰이 'ListTable'라고 판단되면, 검색결과가 어떤 형식으로 출력되어야 하는지에 대한 정보를 가지고 있는 경우이므로 S12에서는 HTML 템플릿에서 토큰을 읽는다. 이는 HTML 템플릿 파일을 읽어 들여 토큰 단위로 처리하는 것인데, 정적으로 템플릿에 있는 부분이 그대로 사용되는 부분과 질의 검색 결과에 의해 동적으로 바뀌는 부분을 결정하여 처리한다. 정적인 부분은 질의 검색 결과와 무관하게 나타나는 정보이고 동적으로 생성되어야 하는 부분은 검색 결과를 지정된 형식으로 출력하는 부분과 이에 의해 생성된 페이지 정보를 가지고 있는 앵커들이다. S13에서는 토큰유형이 변수인지 판단한다. 상기 S13에서 토큰의 유형이 변수라고 판단되면, S14에서는 SQL 수행 결과에 해당되는 값을 표준 출력장치로 출력한다. 그런데, 상기 S13에서 토큰의 유형이 변수가 아니라고 판단되면, S15에서 토큰을 표준 출력장치로 출력한다. 상기 S14 또는 상기 S15 수행후, S16에서는 HTML 템플릿에서 토큰을 읽는다. S17에서는 토큰이 'End'인지 판단한다. 상기 S17에서 토큰이 'End'가 아니라고 판단되면, 상기 S13에서 다시 토큰유형이 변수인지 판단한다. 그러나, 상기 S17에서 토큰이 'End'라고 판단되면, S18에서는 HTML 템플릿에서 토큰을 읽는다. S19에서는 HTML 템플릿 파일의 끝인지 판단한다. 상기 S19에서 HTML 템플릿 파일의 끝이라고 판단되면, 종료한다. 그리고, 상기 S19에서 HTML 템플릿 파일의 끝이 아니라고 판단되면, S20에서는 토큰이 'PreNext'인지 판단한다. 상기 S20에서 토큰이 'PreNext'가 아니라고 판단되면, 상기 S18에서 다시 HTML 템플릿에서 토큰을 읽는다. 상기 S20에서 토큰이 'PreNext'라고 판단되면, S22에서는 HTML 템플릿에서 토큰을 읽는다. 즉, 상기 과정들은 검색결과와 HTML 템플릿의 토큰들을 분석하고 이를 질의수행 결과와 결합하여 동적 문서를 생성하는 것이다. 그리고 나서, 검색결과로 출력되어야 하는 아이템의 개수가 한 페이지에 출력하고자 하는 개수보다 많을 경우에는 여러 페이지에 나눠서 출력해야 하는 경우에 이를 위한 이전 페이지와 다음 페이지 앵커 정보를 생성해야 하며 이를 위한 처리는 SQL 템플릿에 토큰 'PreNext'가 나타나는 시점에서 이루어진다. 이전 페이지와 다음 페이지에 기술되어야 하는 앵커 정보는 URL(Uniform Resource Locator)과 인자 리스트인데, URL은 호스트 컴퓨터 이름, 자원이 있는 곳의 경로 정보 등 자원에 대한 다양한 정보를 표현하는 특정한 구문으로 구성되며 인자 리스트는 URL에 있는 CGI 프로그램을 호출할 경우에 프로그램의 인자들과 그 값들의 쌍을 넘겨주기 위해서 사용된다. 따라서, S23에서는 URL 정보를 획득하고, S24에서는 앵커정보를 생성한다. S25에서는 HTML 템플릿에서 토큰을 읽는다. S26에서는 토큰이 'End'인지 판단한다. 상기 S26에서 토큰이 'End'가 아니라고 판단되면, 상기 S23에서 URL 정보를 획득한다. 그러나, 상기 S26에서 토큰이 'End'라고 판단되면, S27에서는 HTML 템플릿에서 토큰을 읽는다. S28에서는 HTML 템플릿 파일의 끝인지 판단한다. 상기 S28에서 HTML 템플릿 파일이 끝이 아니라고 판단되면, S29에서는 표준 출력장치로 토큰을 출력하고, 상기 S27에서 HTML 템플릿에서 토큰을 읽는다. 상기 S28에서 HTML 템플릿 파일이 끝이라고 판단되면, 종료한다.First, in S1, a user enters information through a form during web connection. However, the user may select an anchor as in S2 without entering information. In S3, the information input by the user through the form in S1 or the anchor information selected by the user in S2 is analyzed. Then, in S4, the environmental information is analyzed. S5 generates complete SQL code using the analyzed information and the SQL template. In S6, execute the SQL code. In operation S7, a filtering operation for determining which part of the result of S6 to provide as a web document is performed. In S8, HTML template files are read in token units. In S9, it is determined whether the token is a 'ListTable' or not. If it is determined in S9 that the token is not 'ListTable', in S10, the token is read from the HTML template. In S11, the token is output and the HTML template file is read again in S8. If it is determined in S9 that the token is a 'ListTable', since the search result has information on what format it should be outputted, the token is read from the HTML template in S12. This is done by reading the HTML template file and processing it in token units. It determines the part where the part of the template is statically used and dynamically changed by the query search result. The static part is information that appears irrespective of the query search result, and the part that needs to be dynamically generated is the part that outputs the search result in a specified format and the anchors having the page information generated by it. In S13, it is determined whether the token type is a variable. If it is determined in step S13 that the type of the token is a variable, in S14 the value corresponding to the SQL execution result is output to the standard output device. However, if it is determined in S13 that the type of the token is not a variable, in S15 the token is output to the standard output device. After performing S14 or S15, S16 reads the token from the HTML template. In S17, it is determined whether the token is 'End'. If it is determined in S17 that the token is not 'End', it is determined again in S13 whether the token type is a variable. However, if the token is determined to be 'End' in S17, the token is read from the HTML template in S18. In S19, it is determined whether the end of the HTML template file. If it is determined in S19 that the end of the HTML template file, it ends. If it is determined in step S19 that the HTML template file is not the end, in step S20 it is determined whether the token is 'PreNext'. If it is determined in step S20 that the token is not 'PreNext', the token is read from the HTML template again in step S18. If it is determined in step S20 that the token is 'PreNext', the token is read from the HTML template in S22. That is, the above processes are to analyze the tokens of the search results and HTML templates and combine them with the query execution results to generate dynamic documents. Then, if the number of items to be displayed as a search result is larger than the number to be printed on one page, if the output is to be divided into several pages, the previous page and next page anchor information for this should be generated. This occurs when the token 'PreNext' appears in the SQL template. The anchor information that should be described on the previous and following pages is a Uniform Resource Locator (URL) and a list of arguments. The URL consists of a specific syntax that represents a variety of information about the resource, such as the host computer name and path information where the resource is located. The argument list is used to pass a pair of program arguments and their values when calling a CGI program at the URL. Therefore, URL information is obtained in S23, and anchor information is generated in S24. In S25, the token is read from an HTML template. In S26, it is determined whether the token is 'End'. If it is determined in S26 that the token is not 'End', URL information is obtained in S23. However, if the token is determined to be 'End' in S26, the token is read from the HTML template in S27. In S28, it is determined whether the end of the HTML template file. If it is determined in step S28 that the HTML template file is not the end, in S29 the token is output to the standard output device, and in step S27, the token is read from the HTML template. If it is determined in step S28 that the HTML template file is finished, the process ends.
도 5a∼5c는 SQL 코드 생성에 대한 자료 흐름도이다. 도 5a∼5c를 참조하여, SQL 코드 생성에 대한 자료 흐름을 설명하면 다음과 같다.5A to 5C are data flow diagrams for generating SQL code. Referring to Figures 5a-5c, the data flow for generating the SQL code is as follows.
먼저, S31에서는 SQL 템플릿을 토큰 단위로 읽어들인다. 그 후, S32 ∼ S52에서는 그 토큰이 'Select'인지 'From'인지 'Where'인지의 여부에 따라 해당 구문을 생성한다. 즉, S32에서는 토큰이 'Select'인지 판단한다. 상기 S32에서 토큰이 'Select'가 아니라고 판단되면, S38에서는 토큰이 'From'인지 판단한다. 상기 S38에서 토큰이 'From'이 아니라고 판단되면, S44에서는 토큰이 'Where'인지 판단한다. 상기 S44에서 토큰이 'Where'가 아니라고 판단되면, S45에서 에러 메시지를 생성하고 종료한다. 상기 S32에서 토큰이 'Select'라고 판단되면, S33에서는 표준 출력장치로 토큰을 출력한다. S34에서는 폼(Form)의 인자정보나 앵커정보에서 데이터베이스의 어떤 필드를 검색할 것인지에 대한 정보를 획득한다. 이 때, 각 필드들의 리스트를 'Select' 구문에 적합하게 생성한다. 또한, 폼의 인자정보는 폼을 포함하는 웹 문서에서 사용자가 폼의 요소들에 대하여 설정하여 발생하는 정보를 말한다. S35에서는 추출된 정보를 표준 출력장치로 출력한다. S36에서는 SQL 템플릿을 토큰 단위로 읽어들인다. S37에서는 토큰이 'From'인지 판단한다. 상기 S37에서 토큰이 'From'이 아니라고 판단되면, 상기 S33에서 표준 출력장치로 토큰을 출력한다. 상기 S37 또는 상기 S38에서 토큰이 'From'이라고 판단되면, S39에서는 표준 출력장치로 토큰을 출력한다. S40에서는 환경설정 정보를 분석하여 검색대상이 되는 데이터베이스의 이름과 정보를 획득한다. S41에서는 추출된 정보를 표준 출력장치로 출력한다. S42에서는 SQL 템플릿을 토큰 단위로 읽어들인다. S43에서는 토큰이 'Where'인지 판단한다. 상기 S43에서 토큰이 'Where'가 아니라고 판단되면, 상기 S39에서 표준 출력장치로 토큰을 출력한다. 상기 S43 또는 상기 S44에서 토큰이 'Where'라고 판단되면, S46에서는 표준 출력장치로 토큰을 출력한다. S47에서는 SQL 템플릿을 토큰 단위로 읽어들인다. S48에서는 SQL 템플릿 파일의 끝인지 판단한다. 상기 S48에서 SQL 템플릿 파일의 끝이라고 판단되면, 종료한다. 상기 S48에서 SQL 템플릿 파일의 끝이 아니라고 판단되면, S49에서는 사용자가 폼에서 입력한 정보나 앵커정보를 분석하여 질의의 조건에 해당하는 정보를 추출한다. S50에서는 다른 조건이 존재하는지 판단한다. 상기 S50에서 다른 조건이 존재한다고 판단되면, S51에서는 폼에서는 동일한 필드에 대한 여러 개의 값을 갖는 질의를 할 수 있으므로 AND, OR 조건이 있는지를 분석하여 SQL 템플릿의 조건기술 부분과 조건들간을 결합하여 완전한 조건문을 생성한다. 상기 S51 수행후 또는 상기 S50에서 다른 조건이 존재하지 않는다고 판단되면, S52에서는 추출된 조건문을 표준 출력장치로 출력하고, 상기 S47에서 SQL 템플릿을 토큰 단위로 읽어들인다.First, in S31, the SQL template is read in token units. Thereafter, in S32 to S52, a corresponding syntax is generated depending on whether the token is 'Select', 'From' or 'Where'. That is, in S32, it is determined whether the token is 'Select'. If it is determined in S32 that the token is not 'Select', then S38 determines whether the token is 'From'. If it is determined in S38 that the token is not 'From', it is determined in S44 whether the token is 'Where'. If it is determined in S44 that the token is not 'Where', an error message is generated and terminated in S45. If it is determined in S32 that the token is 'Select', then S33 outputs the token to a standard output device. In S34, information about which field of the database is searched for is obtained from the argument information or the anchor information of the form. At this time, a list of fields is generated in accordance with the 'Select' statement. In addition, the print information of the form refers to information generated by the user setting the elements of the form in the web document including the form. In S35, the extracted information is output to the standard output device. In S36, the SQL template is read in token units. In S37, it is determined whether the token is 'From'. If it is determined in S37 that the token is not 'From', the token is output to the standard output device in S33. If it is determined in S37 or S38 that the token is 'From', S39 outputs the token to a standard output device. In S40, the configuration information is analyzed to obtain the name and information of the database to be searched. In S41, the extracted information is output to the standard output device. In S42, SQL templates are read in token units. In S43, it is determined whether the token is 'Where'. If it is determined in S43 that the token is not 'Where', the token is output to the standard output device in S39. If it is determined in S43 or S44 that the token is 'Where', S46 outputs the token to a standard output device. In S47, SQL templates are read in token units. In S48, it is determined that the end of the SQL template file. If it is determined that the end of the SQL template file in step S48, it ends. If it is determined in S48 that it is not the end of the SQL template file, in S49 the information corresponding to the query condition is extracted by analyzing the information or anchor information input by the user in the form. In S50, it is determined whether other conditions exist. If it is determined in S50 that another condition exists, in S51, the form may query with multiple values for the same field, and then analyze whether there is an AND or OR condition and combine the condition description part of the SQL template with the conditions. Generate a complete conditional statement. After the execution of S51 or when it is determined that no other condition exists in S50, in S52, the extracted conditional statement is output to the standard output device, and in S47, the SQL template is read in token units.
본 발명은 동적 웹 문서를 위한 HTML 코드 생성을 용이하게 하고 개발자가 CGI 프로그램에 익숙하지 않더라도 간단하고 빠르게 CGI 프로그램을 생성하게 하고 동적으로 융통성 있는 HTML 코드를 생성함으로써 제공되는 다양하고 동적인 정보의 표현을 용이하게 한다는 데에 그 효과가 있다.The present invention facilitates the generation of HTML code for dynamic web documents, allows developers to create CGI programs simply and quickly, even if they are not familiar with CGI programs, and to present a variety of dynamic information provided by generating dynamically flexible HTML code. The effect is to facilitate this.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970060919A KR100279751B1 (en) | 1997-11-18 | 1997-11-18 | How to create CGI program automatically |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970060919A KR100279751B1 (en) | 1997-11-18 | 1997-11-18 | How to create CGI program automatically |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990040514A true KR19990040514A (en) | 1999-06-05 |
KR100279751B1 KR100279751B1 (en) | 2001-02-01 |
Family
ID=66093627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970060919A KR100279751B1 (en) | 1997-11-18 | 1997-11-18 | How to create CGI program automatically |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100279751B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020051503A (en) * | 2000-12-22 | 2002-06-29 | 엘지전자 주식회사 | Method of Managing Database Using Table Class and Automatic Source Creation Device |
KR100374114B1 (en) * | 1999-06-28 | 2003-03-03 | 한국전자통신연구원 | Hyperlink generator for korean language terminology based HTML |
KR100428706B1 (en) * | 2000-09-21 | 2004-04-30 | 주식회사 케미스 | Method for Creating Program Code Automatically Using Pattern and Component |
KR100505111B1 (en) * | 2002-10-02 | 2005-07-29 | 가림정보기술(주) | The apparatus and method of creating program source for operating database and the computer program product using the same |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI822602B (en) * | 2023-02-24 | 2023-11-11 | 呂英璋 | Web page editing system and method |
-
1997
- 1997-11-18 KR KR1019970060919A patent/KR100279751B1/en not_active IP Right Cessation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100374114B1 (en) * | 1999-06-28 | 2003-03-03 | 한국전자통신연구원 | Hyperlink generator for korean language terminology based HTML |
KR100428706B1 (en) * | 2000-09-21 | 2004-04-30 | 주식회사 케미스 | Method for Creating Program Code Automatically Using Pattern and Component |
KR20020051503A (en) * | 2000-12-22 | 2002-06-29 | 엘지전자 주식회사 | Method of Managing Database Using Table Class and Automatic Source Creation Device |
KR100505111B1 (en) * | 2002-10-02 | 2005-07-29 | 가림정보기술(주) | The apparatus and method of creating program source for operating database and the computer program product using the same |
Also Published As
Publication number | Publication date |
---|---|
KR100279751B1 (en) | 2001-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6826553B1 (en) | System for providing database functions for multiple internet sources | |
KR100661393B1 (en) | Web site management system and method applying web programming environment | |
US6362840B1 (en) | Method and system for graphic display of link actions | |
US7162687B2 (en) | JSP tag libraries and web services | |
US8060518B2 (en) | System and methodology for extraction and aggregation of data from dynamic content | |
US8402427B2 (en) | Web application generator | |
US20040261017A1 (en) | Document generation | |
US6061518A (en) | Data processing system and method for debugging a JavaScript program | |
US20110185273A1 (en) | System and method for extracting content elements from multiple Internet sources | |
US20050050021A1 (en) | Information Messaging and Collaboration System | |
JP2003288143A (en) | Method for automatically generating user interface | |
JP2005196291A (en) | User interface application development program and development device | |
Ito et al. | A visual environment for dynamic web application composition | |
US20030020752A1 (en) | Methods and systems for representing and accessing data | |
CN109240700B (en) | Key code positioning method and system | |
JP2004362000A (en) | Web application development support device, component call monitoring device, data processing method and program | |
JP2008134906A (en) | Business process definition generation method, device and program | |
KR100279751B1 (en) | How to create CGI program automatically | |
Roussel et al. | Web-based cooperative document understanding | |
CN109062784B (en) | Interface parameter constraint code entry positioning method and system | |
JPH10124518A (en) | Preferential access web blousing processor | |
US6317759B1 (en) | Method and apparatus for providing an applications development system for internet based applications | |
US7849404B2 (en) | System for determining whether screen displayed by program satisfies specification | |
US20030080994A1 (en) | System, method and computer program product for recognizing a state of a remote application | |
JP2013037580A (en) | Information processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20081104 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |