Abstract
To get changing data or retrieved information in a web service environment, we need the CGI method in which we designate an executable file and receive the output of the executable file as a document. But the original CGI method has some performance pitfalls caused by the native condition that a process for the requested executable file should be created every time it is requested. Several approaches that make the process as a daemon wholly or partly have been made to solve those problems and they have exclusive strength and weakness. So, many developers are confused when they have to choose which of the CGI methods. We proposed an efficient CGI gateway design called SendFD that the main part of CGI gateway was separated as a daemon and taken over the communication channel by the other small part forked whenever it was requested. Then we testified the efficiency of SendFD styled CGI gateway in real web service environment and it showed about 3% performance improvement compared to the conventional socket pipe method.
웹 서비스 환경에서 시시각각으로 변화하는 최신 정보나 조건에 맞는 정보를 다루기 위해서는 고정된 문서 파일 대신 실행 가능한 프로그램 파일을 지정함으로써 그 프로그램의 출력결과를 문서로 받을 수 있는 CGI 방식이 필요하다. 그런데 애초에 고안된 CGI 방식은 사용자의 요청이 있을 때마다 서비스 프로그램이 새로 생성되어야 하는 구조이기 때문에 여러 가지 성능상의 문제점을 내포하고 있다. 이를 해결하기 위해 서비스 프로그램 즉, CGI 게이트웨이의 전체 혹은 일부를 디몬 형태로 상주시키는 다양한 방안들이 제안되어 왔다. 그러나 그들 각각은 상호 배타적인 장단점을 가지기 때문에 개발자들은 어떤 방식을 선택해야 할지를 판단할 때 혼란스럽다. 이 논문에서는 유닉스 계열의 시스템에서 게이트웨이의 주요 부분을 디몬으로 상주시키고 매번 생성되는 작은 부분으로부터 통신 채널 자체를 넘겨받는 SendFD 방식을 제안하고, 그 효용성을 실질적인 웹 환경에서 검증하였다. 제안된 방식은 기존의 소켓 파이프 방식 대비 약 3%의 성능향상을 보였다.