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