1. 사용자 경험 극대화를 위한
웹 서버 아키텍처
07년 2월 15일
웹플랫폼개발팀
이희승
본 발표 자료는 NHN의 정책과 직접적 관련이 없습니다.
2. 발표자: 이희승
http://gleamynode.net/
Apache Software Foundation
– Apache MINA PMC Chair ...2006/10/25
– Apache Directory PMC Member ...2005/03/17
– Committer ...2004/10/07
NHN 웹 플랫폼 개발팀
– 프로토콜 서버 및 컨테이너 개발
2
3. 목차
RIA의 재등장
RIA 통신 기술
새로운 웹 서버 구조
현실적 문제
결론
3
4. 목차: RIA의 재등장
RIA의 재등장
– 배경
– 사례
RIA 통신 기술
새로운 웹 서버 구조
현실적 문제
결론
4
5. 새로운 웹 어플리케이션의 등장
Rich Internet application ...1998
– 웹의 접근성 · 친근함 유지
– Client-Server의 풍부한 UI 결합
Web 2.0 ...2004
– 웹 브라우저 · 플래쉬의 플랫폼화
• Dynamic HTML
• AJAX
5
19. 기존의 웹 서버 구조: Pseudo Code
HTTP 요청이 들어오면:
연결이 끊길 때까지:
이벤트가 들어올 때까지:
30초 대기 또는
연결 유지 메시지 전송
이벤트가 들어오면:
비즈니스 로직 수행
수행 결과 메시지 전송
19
20. 새 웹 서버 구조
Event-driven architecture
– 이벤트 대기 로직이 I/O 스레드에 존재
• 이벤트 대기의 Cross-cutting concern化
– 이벤트 발생시에만 B/L 스레드 활성화
• 훨씬 적은 스레드로 동일한 처리 능력
활발한 오픈 소스 활동
– MINA + AsyncWeb
– ······
20
22. 새 웹 서버 구조: Pseudo Code
이벤트가 들어오면:
비즈니스 로직 수행
수행 결과 메시지 전송
이벤트가 30초 동안 없으면:
연결 유지 메시지 전송
22
23. 새 웹 서버 구조
새로 만드는데 굳이 1 thread/connection?
다양한 스레드 모델 지원
– CPU job 위주의 low latency 로직
– 일반적인 DB 로직
– CPU와 DB 로직이 혼합된 경우
• SEDA (Staged Event Driven Architecture)
23
24. 새 웹 서버 구조: 스레드 모델
Interceptor Chain
– Event Source와 Business Logic 사이에 위치
– Servlet Filter와 유사 (Chain of Responsibility)
스레드 풀을 Interceptor로 구현
24