Design and Implementation of Event Based Message Exchange Architecture between Servers for Server Push

서버 푸시를 위한 이벤트 기반 서버간 메시지 교환 아키텍처의 설계 및 구현

  • 조동일 (숭실대학교 컴퓨터공학과) ;
  • 류성열 (숭실대학교 IT대학 컴퓨터학부)
  • Received : 2010.10.19
  • Accepted : 2011.05.04
  • Published : 2011.08.31

Abstract

Server push which is technology of sending contents from servers to browsers in real time using long polling requests enables real time bidirectional communications between servers and browsers in HTTP environment. Recently, thanks to the rapid supply of mobile devices having ability of full browsing, server push is being applied to various applications. However, because servers providing services should offer distributed contents to a large number of users simultaneously in various user environments, they have a burden that offers contents quickly distinguishing much more concurrent users than before. The method of message exchange so far achieved in distributed server environment has difficulties in the performance of simultaneous user request process, the identification of users and the contents delivery. In this paper, We proposed message exchange architecture between servers for offering server push in the distributed server environment. The proposed architecture enables message exchange in the method of push between servers based on event driven architecture. In addition, the proposed architecture enables flexible identification of a event agent and event processing under the connected environment of a lot of users. In this paper, we designed and implemented the proposed architecture and compared performance with the previous way through a performance test. In addition, function is confirmed through the case realization. As a result of the performance test, the proposed architecture can lessen the use of server Thread and response time of users and increase simultaneous throughput.

서버 푸시는 브라우저의 긴 폴링 요청을 이용하여 실시간으로 서버에서 브라우저로 컨텐츠를 전송하는 기술로, HTTP 환경에서 서버와 브라우저간의 실시간 양방향 통신을 가능하게 한다. 최근 풀 브라우징이 가능한 모바일 기기의 급속한 보급으로 인해 서버 푸시는 다양한 응용에 적용되고 있다. 하지만 서비스를 제공하는 서버는 다양한 사용자 환경에서 여러 서버에 분산된 컨텐츠를 동시에 많은 사용자에게 제공해야 하기 때문에 이전 보다 훨씬 많은 동시 사용자를 적절히 식별하여 빠르게 컨텐츠를 제공해야 하는 부담을 안게 되었다. 분산 서버 환경에서 지금까지의 요청 대 응답방식의 서버간 메시지 교환은 이런 요건을 충족하기에 동시 사용자 요청 처리, 사용자의 식별 및 컨텐츠의 전달에 어려움이 있다. 본 연구에서는 분산 서버 환경에서 서버 푸시를 제공하기 위한 서버간 메시지 교환 아키텍처를 제안한다. 제안한 아키텍처는 이벤트 주도 아키텍처를 기반으로 서버간에 푸시 방식으로 메시지를 교환한다는 특징을 가진다. 또한 대량 사용자 접속환경에서 유연한 이벤트 주체의 식별과 이벤트 처리가 가능하다. 본 연구에서는 제안한 아키텍처를 설계 및 구현하였고, 성능 테스트를 통해 기존 방식과 성능을 비교하였으며, 사례 구현을 통해 기능성을 확인하였다. 성능 테스트 결과 동일한 수의 동시 사용자를 처리하는데 제안한 아키텍처는 기존 요청 대 응답방식의 메시지 교환에 비해 서버 Thread 사용량은 감소하였고, 동시 처리량은 증가하였으며, 사용자의 응답시간은 감소하였다.

Keywords

References

  1. Du Li, Umesh Chandra, "Building Web-Based Collaboration Services on Mobile Phones", Collaborative Technologies and Systems International Symposium, pp.295-304, 2008.
  2. A. Russell. Comet: Low latency data for the browser. http://alex.dojotoolkit.org/2006/03/comet-low-latency-data-for-the-browser/, 2006.
  3. A. Russell, G. Wilkins, and D. Davis. "Bayeux - a JSON protocol for publish/subscribe event delivery protocol 0.1draft3", http://svn.cometd.org/trunk/bayeux/bayeux.html , 2007.
  4. A. Meshah, A. van Deursen. "An architectural style for Ajax", IEEE Computer Society, In WICSA '07: Proceedings of the 6th Working IEEE/IFIP Conference on Software Architecture, pp.44-53, 2007.
  5. Bozdag, E., Mesbah, A., van Deursen, "A Comparison of Push and Pull Techniques for Ajax", WSE 2007. 9th IEEE International Workshop on, pp.15-22, 2007.
  6. Lei Shen, Chongjun Yang, "A scalable Web GPS monitoring system based on Ajax push pattern", Geoinformatics, 2009 17th International Conference on, pp.1-5, 2009.
  7. Greg Wilkins, Webtide, "Ajax, Comet and Jetty", Wilkins' white paper discusses Jetty's architectural approach to scaling Ajax connections, http://www.webtide.com/downloads/whitePaperAjaxJetty.html, 2006.
  8. Dave Crane, Phil McCarthy, "COMET and Reverse AJAX", APRESS, pp.8-9, 71-86, 2009.
  9. Rajiv Mordani, "JavaTM Servlet Specification Version 3.0", JCP, 2009.
  10. Jussi Saarinen, Tommi Mikkonen, "Towards a Server-Centric Interaction Architecture for Wireless Applications", KSII Transactions on Internet and Information Systems(TIIS), vol. 2, no. 2, pp.103-119, 2008.
  11. Gao Ying, Du Zhenxing, "A research of the instant messaging system architecture based on Comet and Message Queue", Education Technology and Computer (ICETC), 2010 2nd International Conference, vol. 4, pp.390-394, 2010.
  12. Jiyun Xie, "A New Flex Real-Time Messaging Framework", INC, IMS and IDC, NCM "09. Fifth International Joint Conference, pp. 1093-1095, 2009.
  13. Jeanfrancois Arcand, "Atmosphere Framework White Paper Version 0.6", java.net, 2010.
  14. Xiaoyu Zhang, Gracanin, D., "Service-Oriented-Architecture based framework for multi-user virtual environments", Simulation Conference WSC 2008. Winter, pp.1139-1147, 2008.
  15. Brenda M. Michelson, "Event-Driven Architecture Overview", Patricia Seybold Group, 2006.
  16. P. Saint-Andre, Ed., "Extensible Messaging and Presence Protocol (XMPP): Core", IETF, http://www.ietf.org/rfc/rfc3920.txt, 2004.
  17. Gruber, R.E., Krishnamurthy, B., Panagos, E., "The architecture of the READY event notification service", Electronic Commerce and Web-based Applications/Middleware, pp.108-113, 1999.
  18. Direct Web Remoting, http://directwebremoting.org
  19. David Winterfeldt, "Spring Bayeux GWT Chat Webapp", Spring by Example, http://www.springbyexample.org/examples/spring-bayeuex-gwt-chat-webapp.html, 2008