사용자 경험 극대화를 위한 웹 서버 아키텍처 - Presentation Transcript
사용자 경험 극대화를 위한
웹 서버 아키텍처
07년 2월 15일
웹플랫폼개발팀
이희승
본 발표 자료는 NHN의 정책과 직접적 관련이 없습니다.
발표자: 이희승
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
목차
RIA의 재등장
RIA 통신 기술
새로운 웹 서버 구조
현실적 문제
결론
3
목차: RIA의 재등장
RIA의 재등장
– 배경
– 사례
RIA 통신 기술
새로운 웹 서버 구조
현실적 문제
결론
4
새로운 웹 어플리케이션의 등장
Rich Internet application ...1998
– 웹의 접근성 · 친근함 유지
– Client-Server의 풍부한 UI 결합
Web 2.0 ...2004
– 웹 브라우저 · 플래쉬의 플랫폼화
• Dynamic HTML
• AJAX
5
RIA 도입 사례: Zimbra Collaboration Suite
6
RIA 도입 사례: Meebo
7
RIA 도입 사례: Amazon Diamond Search
8
목차: RIA 통신 기술
RIA의 재등장
RIA 통신 기술
– AJAX
– Comet
– 사용 사례
새로운 웹 서버 구조
현실적 문제
결론
9
RIA 통신 기술: AJAX
Asynchronous Javascript and XML
페이지의 리로딩 없음
Javascript로 background에서 HTTP 요청
텍스트 포맷 데이터 교환
– XML
– XHTML
– JSON
10
RIA 통신 기술: AJAX
11
RIA 통신 기술: Comet
서버 푸시 기술
보이지 않는 IFrame
– HTTP 접속을 항상 유지
– 주고 받을 데이터가 있을 때만 전송
– 접속이 끊기지 않을 정도로 빠르게
낮은 Latency (vs. polling)
12
RIA 통신 기술: Comet
13
RIA 통신 기술: Comet 사용 사례
채팅
– Meebo
문서 협동 저작
– Google Docs & Spreadsheets
실시간 정보 수신
– 주가 정보
– 교통 정보
14
RIA 통신 기술: Event Source의 다양화
클라이언트 · 웹 브라우저
– 사용자의 UI 상호 작용
다른 사용자
– 채팅
외부 시스템
– 교통 관제 시스템
15
목차: 새로운 웹 서버 구조
RIA의 재등장
RIA 통신 기술
새로운 웹 서버 구조
– 기존 구조
– 새로운 구조
현실적 문제
결론
16
기존의 웹 서버 구조
고정된 스레드 모델
– 1 thread per connection
– 굵고 짧은 연결에 적합 ...기존 WebApp
– 길고 가는 연결에는 부적합 ...Comet
유연한 스레드 모델이 필요
17
기존의 웹 서버 구조: 흐름도
18
기존의 웹 서버 구조: Pseudo Code
HTTP 요청이 들어오면:
연결이 끊길 때까지:
이벤트가 들어올 때까지:
30초 대기 또는
연결 유지 메시지 전송
이벤트가 들어오면:
비즈니스 로직 수행
수행 결과 메시지 전송
19
새 웹 서버 구조
Event-driven architecture
– 이벤트 대기 로직이 I/O 스레드에 존재
• 이벤트 대기의 Cross-cutting concern化
– 이벤트 발생시에만 B/L 스레드 활성화
• 훨씬 적은 스레드로 동일한 처리 능력
활발한 오픈 소스 활동
– MINA + AsyncWeb
– ······
20
새 웹 서버 구조: 흐름도
21
새 웹 서버 구조: Pseudo Code
이벤트가 들어오면:
비즈니스 로직 수행
수행 결과 메시지 전송
이벤트가 30초 동안 없으면:
연결 유지 메시지 전송
22
새 웹 서버 구조
새로 만드는데 굳이 1 thread/connection?
다양한 스레드 모델 지원
– CPU job 위주의 low latency 로직
– 일반적인 DB 로직
– CPU와 DB 로직이 혼합된 경우
• SEDA (Staged Event Driven Architecture)
23
새 웹 서버 구조: 스레드 모델
Interceptor Chain
– Event Source와 Business Logic 사이에 위치
– Servlet Filter와 유사 (Chain of Responsibility)
스레드 풀을 Interceptor로 구현
24
새 웹 서버 구조: 스레드 모델
25
목차: 현실적 문제
RIA의 재등장
RIA 통신 기술
새로운 웹 서버 구조
현실적 문제
– 현실은?
– 어떻게?
결론
26
그러나 현실은?
기존 코드의 마이그레이션
개발자 교육
구현 비용
27
그렇다면 어떻게?
Servlet API Bridge 제공
기존 프레임워크 그대로
MINA + AsyncWeb
28
목차: 결론
RIA의 재등장
RIA 통신 기술
새로운 웹 서버 구조
현실적 문제
결론
29
결론
웹 경험을 극대화하는 기술이 존재
기존 웹 서버로는 수용이 불가능
Event-driven 모델로의 이행이 필요
이행 과정의 문제는 충분히 해결 가능
30
0 comments
Post a comment