정보를 공유하기 위하여 널리 이용되는 웹은 클라이언트-서버 모델을 사용한다. 클라이언트-서버 모델은 클라이언트의 명시적인 요청을 통하여 서버가 응답하는 방식으로서 오늘날의 급변하는 인터넷 정보를 효과적으로 제공하기에는 많은 어려움이 따른다. 서버 푸시는 클라이언트-서버 모델 기반의 웹에서 클라이언트의 요청이 없더라도 서버가 능동적으로 정보를 제공할 수 있는 통신 기술이다. 이러한 서버 푸시 기술을 구현하기 위하여 다양한 연구가 이루어지고 있지만 푸시 어플리케이션의 효과적인 개발을 지원하는 푸시 엔진의 부재로 많은 어려움이 따르고 있다. 본 논문에서는 인터넷에서 서버 푸시 서비스를 효과적으로 제공하도록 지원하는 Java Push Engine인 JPE의 개발에 대하여 기술한다. JPE는 Epoll을 지원하는 JPE 코어와 비동기 통신을 지원하는 JPE 라이브러리로 구성된다. 그리고 JPE는 다양한 푸시 기능을 정의하고 이를 지원하는 프로그래밍 인터페이스를 제공한다. JPE를 이용하여 개발된 푸시 어플리케이션은 Epoll 기법을 이용하여 클라이언트 연결을 효과적으로 처리하며, Ajax 기반의 비동기 통신을 통하여 다양한 푸시 서비스를 제공한다.
The Web is widely used to share information, utilizing the client-server model. In the client-server model, since the server only responds according to explicit requests from the client, the model seems hard to support sharing of massive information rapidly changing in today"s Internet. The technology known as Server Push enables the server to actively provide information to clients without explicit requests from the clients using Web pages. Although various studies have been done to realize the Server Push technologies, there are many problems in the development of push application without push engines which support infrastructures for the effective development of push application. In this paper, we develop JPE(Java Push Engine) which presents the effective support for push services over the Internet. JPE is composed of two main components: the JPE Core supporting Epoll and the JPE Library supporting asynchronous communication. In addition, JPE defines various push functions and provides programming interfaces supporting the functions. Push applications developed using JPE effectively manages client connections with Epoll mechanism, providing push services through AJAX-based asynchronous communication.