DOI QR코드

DOI QR Code

JPE : Java Push Engine Supporting Asynchronous Communication Based on AJAX

JPE : AJAX 기반의 비동기 통신을 지원하는 Java Push Engine

  • Received : 2010.12.09
  • Accepted : 2011.01.25
  • Published : 2011.03.31

Abstract

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.

정보를 공유하기 위하여 널리 이용되는 웹은 클라이언트-서버 모델을 사용한다. 클라이언트-서버 모델은 클라이언트의 명시적인 요청을 통하여 서버가 응답하는 방식으로서 오늘날의 급변하는 인터넷 정보를 효과적으로 제공하기에는 많은 어려움이 따른다. 서버 푸시는 클라이언트-서버 모델 기반의 웹에서 클라이언트의 요청이 없더라도 서버가 능동적으로 정보를 제공할 수 있는 통신 기술이다. 이러한 서버 푸시 기술을 구현하기 위하여 다양한 연구가 이루어지고 있지만 푸시 어플리케이션의 효과적인 개발을 지원하는 푸시 엔진의 부재로 많은 어려움이 따르고 있다. 본 논문에서는 인터넷에서 서버 푸시 서비스를 효과적으로 제공하도록 지원하는 Java Push Engine인 JPE의 개발에 대하여 기술한다. JPE는 Epoll을 지원하는 JPE 코어와 비동기 통신을 지원하는 JPE 라이브러리로 구성된다. 그리고 JPE는 다양한 푸시 기능을 정의하고 이를 지원하는 프로그래밍 인터페이스를 제공한다. JPE를 이용하여 개발된 푸시 어플리케이션은 Epoll 기법을 이용하여 클라이언트 연결을 효과적으로 처리하며, Ajax 기반의 비동기 통신을 통하여 다양한 푸시 서비스를 제공한다.

Keywords

References

  1. Shishir Gundavaram, "CGI Programming on the World Wide Web," 1st Edition, O'Reilly Media, 1996.
  2. "http://en.wikipedia.org/wiki/Push_technology," Push Technology.
  3. 어세룡, "웹2.0을 위한 Ajax 플랫폼," 정보과학회지, 한국정보과학회, v.26 no.9, pp.47-57, 2008.
  4. "http://en.wikipedia.org/wiki/Ajax," Ajax
  5. "http://en.wikipedia.org/wiki/Long_polling." Long Polling
  6. Sachin Deshpande, Wenjun Zeng, "HTTP streaming of JPEG2000 images," in the Proceeding of ITCC'01, IEEE Comput. Soc, pp.15-19, 2001.
  7. "http://ajaxpatterns.org/HTTP_Streaming," HTTP Streaming.
  8. "http://www.pushlets.com/," Pushlet
  9. "http://opensource.adobe.com/wiki/display/blazeds/ BlazeDS," Adobe BlazeDS.
  10. 이홍창,김보현,오훈,이명준 "BlazeDS에서의 효과적인 Push 서비스를 위한 메시지 필터링," 한국 컴퓨터정보학회논문지, 제15권, 제 6호, 37-44쪽, 2010년 6월.
  11. "http://www.ape-project.org/," APE
  12. Cui Bin, "Realization of EPOLL-based Linux Online Games Server," CONTROL AND AUTOMATION, Weijisuanji Xinxi Zazhishe, v.172, pp.64-66, 2006
  13. "http://en.wikipedia.org/wiki/Chunked_transfer_ encoding." Chunked transfer encoding
  14. "http://www.adobeflex.co.kr/aboutflex/down/2.pdf," Adobe Flex 2
  15. "http://www.adobe.com/products/air/," Adobe AIR
  16. Dave Crane, Phil McCarthy, "Comet and Reverse Ajax: The Next-Generation Ajax 2.0," 1st Edition, Apress, 2008
  17. "http://en.wikipedia.org/wiki/Comet_(programming)," Comet Programming
  18. "http://en.wikipedia.org/wiki/Edge_triggered_ interrupt," Edge-triggered
  19. "http://en.wikipedia.org/wiki/Edge_triggered_ interrupt," Level-triggered
  20. Aaron Newton, "MooTools Essentials: The Official MooTools Reference for JavaScript and Ajax Development," 1st Edition, Apress, 2008.
  21. "http://en.wikepedia.org/wiki/Reactor_pattern." Reactor Pattern
  22. "http://en.wikepedia.org/wiki/XHR." XML HttpRequest
  23. "http://en.wikepedia.org/wiki/JSON." JSON
  24. 김영란 "XML DTD의 효율적인 검색을 위한 구조 정보 및 인덱스 메카니즘," 한국컴퓨터정보학회논문지, 제 8권, 제 3호, 80-86쪽, 2003년 9월.