사용자 경험 극대화를 위한 웹 서버 아키텍처

31
이희승 웹플랫폼개발팀 07년 2월 15일 사용자 경험 극대화를 위한 사용자 경험 극대화를 위한 웹 서버 아키텍처 웹 서버 아키텍처 본 발표 자료는 본 발표 자료는 NHN NHN 의 정책과 직접적 관련이 없습니다 의 정책과 직접적 관련이 없습니다 . .

Upload: trustinlee

Post on 09-Dec-2014

3.704 views

Category:

Technology


1 download

DESCRIPTION

'Web Server Architecture for Maximizing User Experience' - presented at Daum Tech Talk (Daum Corporation, 19 March 2007) / BarCamp Seoul 2006

TRANSCRIPT

Page 1: 사용자 경험 극대화를 위한 웹 서버 아키텍처

이희승

웹플랫폼개발팀

07년 2월 15일

사용자 경험 극대화를 위한사용자 경험 극대화를 위한웹 서버 아키텍처웹 서버 아키텍처

본 발표 자료는 본 발표 자료는 NHNNHN의 정책과 직접적 관련이 없습니다의 정책과 직접적 관련이 없습니다..

Page 2: 사용자 경험 극대화를 위한 웹 서버 아키텍처

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 웹 플랫폼 개발팀

– 프로토콜 서버 및 컨테이너 개발

Page 3: 사용자 경험 극대화를 위한 웹 서버 아키텍처

3

목차목차

RIA의 재등장

RIA 통신 기술

새로운 웹 서버 구조

현실적 문제

결론

Page 4: 사용자 경험 극대화를 위한 웹 서버 아키텍처

4

목차목차: RIA: RIA의 재등장의 재등장

RIA의 재등장

– 배경

– 사례

RIA 통신 기술

새로운 웹 서버 구조

현실적 문제

결론

Page 5: 사용자 경험 극대화를 위한 웹 서버 아키텍처

5

새로운 웹 어플리케이션의 등장새로운 웹 어플리케이션의 등장

Rich Internet application ...1998

– 웹의 접근성 · 친근함 유지

– Client-Server의 풍부한 UI 결합

Web 2.0 ...2004

– 웹 브라우저 · 플래쉬의 플랫폼화

• Dynamic HTML

• AJAX

Page 6: 사용자 경험 극대화를 위한 웹 서버 아키텍처

6

RIA RIA 도입 사례도입 사례: Zimbra Collaboration Suite: Zimbra Collaboration Suite

Page 7: 사용자 경험 극대화를 위한 웹 서버 아키텍처

7

RIA RIA 도입 사례도입 사례: Meebo: Meebo

Page 8: 사용자 경험 극대화를 위한 웹 서버 아키텍처

8

RIA RIA 도입 사례도입 사례: Amazon Diamond Search: Amazon Diamond Search

Page 9: 사용자 경험 극대화를 위한 웹 서버 아키텍처

9

목차목차: RIA : RIA 통신 기술통신 기술

RIA의 재등장

RIA 통신 기술

– AJAX

– Comet

– 사용 사례

새로운 웹 서버 구조

현실적 문제

결론

Page 10: 사용자 경험 극대화를 위한 웹 서버 아키텍처

10

RIA RIA 통신 기술통신 기술: AJAX: AJAX

Asynchronous Javascript and XML

페이지의 리로딩 없음

Javascript로 background에서 HTTP 요청

텍스트 포맷 데이터 교환

– XML

– XHTML

– JSON

Page 11: 사용자 경험 극대화를 위한 웹 서버 아키텍처

11

RIA RIA 통신 기술통신 기술: AJAX: AJAX

Page 12: 사용자 경험 극대화를 위한 웹 서버 아키텍처

12

RIA RIA 통신 기술통신 기술: Comet: Comet

서버 푸시 기술

보이지 않는 IFrame

– HTTP 접속을 항상 유지

– 주고 받을 데이터가 있을 때만 전송

– 접속이 끊기지 않을 정도로 빠르게

낮은 Latency (vs. polling)

Page 13: 사용자 경험 극대화를 위한 웹 서버 아키텍처

13

RIA RIA 통신 기술통신 기술: Comet: Comet

Page 14: 사용자 경험 극대화를 위한 웹 서버 아키텍처

14

RIA RIA 통신 기술통신 기술: Comet : Comet 사용 사례사용 사례

채팅

– Meebo

문서 협동 저작

– Google Docs & Spreadsheets

실시간 정보 수신

– 주가 정보

– 교통 정보

Page 15: 사용자 경험 극대화를 위한 웹 서버 아키텍처

15

RIA RIA 통신 기술통신 기술: Event Source: Event Source의 다양화의 다양화

클라이언트 · 웹 브라우저

– 사용자의 UI 상호 작용

다른 사용자

– 채팅

외부 시스템

– 교통 관제 시스템

Page 16: 사용자 경험 극대화를 위한 웹 서버 아키텍처

16

목차목차: : 새로운 웹 서버 구조새로운 웹 서버 구조

RIA의 재등장

RIA 통신 기술

새로운 웹 서버 구조

– 기존 구조

– 새로운 구조

현실적 문제

결론

Page 17: 사용자 경험 극대화를 위한 웹 서버 아키텍처

17

기존의 웹 서버 구조기존의 웹 서버 구조

고정된 스레드 모델

– 1 thread per connection

– 굵고 짧은 연결에 적합 ...기존 WebApp

– 길고 가는 연결에는 부적합 ...Comet

유연한 스레드 모델이 필요

Page 18: 사용자 경험 극대화를 위한 웹 서버 아키텍처

18

기존의 웹 서버 구조기존의 웹 서버 구조: : 흐름도흐름도

Page 19: 사용자 경험 극대화를 위한 웹 서버 아키텍처

19

기존의 웹 서버 구조기존의 웹 서버 구조: Pseudo Code: Pseudo Code

HTTP 요청이 들어오면:

연결이 끊길 때까지:

이벤트가 들어올 때까지:

30초 대기 또는

연결 유지 메시지 전송

이벤트가 들어오면:

비즈니스 로직 수행

수행 결과 메시지 전송

Page 20: 사용자 경험 극대화를 위한 웹 서버 아키텍처

20

새 웹 서버 구조새 웹 서버 구조

Event-driven architecture

– 이벤트 대기 로직이 I/O 스레드에 존재

• 이벤트 대기의 Cross-cutting concern化

– 이벤트 발생시에만 B/L 스레드 활성화

• 훨씬 적은 스레드로 동일한 처리 능력

활발한 오픈 소스 활동

– MINA + AsyncWeb

– ······

Page 21: 사용자 경험 극대화를 위한 웹 서버 아키텍처

21

새 웹 서버 구조새 웹 서버 구조: : 흐름도흐름도

Page 22: 사용자 경험 극대화를 위한 웹 서버 아키텍처

22

새 웹 서버 구조새 웹 서버 구조: Pseudo Code: Pseudo Code

이벤트가 들어오면:

비즈니스 로직 수행

수행 결과 메시지 전송

이벤트가 30초 동안 없으면:

연결 유지 메시지 전송

Page 23: 사용자 경험 극대화를 위한 웹 서버 아키텍처

23

새 웹 서버 구조새 웹 서버 구조

새로 만드는데 굳이 1 thread/connection?

다양한 스레드 모델 지원

– CPU job 위주의 low latency 로직

– 일반적인 DB 로직

– CPU와 DB 로직이 혼합된 경우

• SEDA (Staged Event Driven Architecture)

Page 24: 사용자 경험 극대화를 위한 웹 서버 아키텍처

24

새 웹 서버 구조새 웹 서버 구조: : 스레드 모델스레드 모델

Interceptor Chain

– Event Source와 Business Logic 사이에 위치

– Servlet Filter와 유사 (Chain of Responsibility)

스레드 풀을 Interceptor로 구현

Page 25: 사용자 경험 극대화를 위한 웹 서버 아키텍처

25

새 웹 서버 구조새 웹 서버 구조: : 스레드 모델스레드 모델

Page 26: 사용자 경험 극대화를 위한 웹 서버 아키텍처

26

목차목차: : 현실적 문제현실적 문제

RIA의 재등장

RIA 통신 기술

새로운 웹 서버 구조

현실적 문제

– 현실은?

– 어떻게?

결론

Page 27: 사용자 경험 극대화를 위한 웹 서버 아키텍처

27

그러나 현실은그러나 현실은??

기존 코드의 마이그레이션

개발자 교육

구현 비용

Page 28: 사용자 경험 극대화를 위한 웹 서버 아키텍처

28

그렇다면 어떻게그렇다면 어떻게??

Servlet API Bridge 제공

기존 프레임워크 그대로

MINA + AsyncWeb

Page 29: 사용자 경험 극대화를 위한 웹 서버 아키텍처

29

목차목차: : 결론결론

RIA의 재등장

RIA 통신 기술

새로운 웹 서버 구조

현실적 문제

결론

Page 30: 사용자 경험 극대화를 위한 웹 서버 아키텍처

30

결론결론

웹 경험을 극대화하는 기술이 존재

기존 웹 서버로는 수용이 불가능

Event-driven 모델로의 이행이 필요

이행 과정의 문제는 충분히 해결 가능

Page 31: 사용자 경험 극대화를 위한 웹 서버 아키텍처

이희승

웹플랫폼개발팀

07년 2월 15일

감사합니다.

Q & AQ & A