Your SlideShare is downloading. ×
사용자 경험 극대화를 위한 웹 서버 아키텍처
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

2,553
views

Published on

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

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

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,553
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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
  • 6. RIA 도입 사례: Zimbra Collaboration Suite 6
  • 7. RIA 도입 사례: Meebo 7
  • 8. RIA 도입 사례: Amazon Diamond Search 8
  • 9. 목차: RIA 통신 기술 RIA의 재등장  RIA 통신 기술  – AJAX – Comet – 사용 사례 새로운 웹 서버 구조  현실적 문제  결론  9
  • 10. RIA 통신 기술: AJAX Asynchronous Javascript and XML  페이지의 리로딩 없음  Javascript로 background에서 HTTP 요청  텍스트 포맷 데이터 교환  – XML – XHTML – JSON 10
  • 11. RIA 통신 기술: AJAX 11
  • 12. RIA 통신 기술: Comet 서버 푸시 기술  보이지 않는 IFrame  – HTTP 접속을 항상 유지 – 주고 받을 데이터가 있을 때만 전송 – 접속이 끊기지 않을 정도로 빠르게 낮은 Latency (vs. polling)  12
  • 13. RIA 통신 기술: Comet 13
  • 14. RIA 통신 기술: Comet 사용 사례 채팅  – Meebo 문서 협동 저작  – Google Docs & Spreadsheets 실시간 정보 수신  – 주가 정보 – 교통 정보 14
  • 15. RIA 통신 기술: Event Source의 다양화 클라이언트 · 웹 브라우저  – 사용자의 UI 상호 작용 다른 사용자  – 채팅 외부 시스템  – 교통 관제 시스템 15
  • 16. 목차: 새로운 웹 서버 구조 RIA의 재등장  RIA 통신 기술  새로운 웹 서버 구조  – 기존 구조 – 새로운 구조 현실적 문제  결론  16
  • 17. 기존의 웹 서버 구조 고정된 스레드 모델  – 1 thread per connection – 굵고 짧은 연결에 적합 ...기존 WebApp – 길고 가는 연결에는 부적합 ...Comet 유연한 스레드 모델이 필요  17
  • 18. 기존의 웹 서버 구조: 흐름도 18
  • 19. 기존의 웹 서버 구조: Pseudo Code HTTP 요청이 들어오면: 연결이 끊길 때까지: 이벤트가 들어올 때까지: 30초 대기 또는 연결 유지 메시지 전송 이벤트가 들어오면: 비즈니스 로직 수행 수행 결과 메시지 전송 19
  • 20. 새 웹 서버 구조 Event-driven architecture  – 이벤트 대기 로직이 I/O 스레드에 존재 • 이벤트 대기의 Cross-cutting concern化 – 이벤트 발생시에만 B/L 스레드 활성화 • 훨씬 적은 스레드로 동일한 처리 능력 활발한 오픈 소스 활동  – MINA + AsyncWeb – ······ 20
  • 21. 새 웹 서버 구조: 흐름도 21
  • 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
  • 25. 새 웹 서버 구조: 스레드 모델 25
  • 26. 목차: 현실적 문제 RIA의 재등장  RIA 통신 기술  새로운 웹 서버 구조  현실적 문제  – 현실은? – 어떻게? 결론  26
  • 27. 그러나 현실은? 기존 코드의 마이그레이션  개발자 교육  구현 비용  27
  • 28. 그렇다면 어떻게? Servlet API Bridge 제공  기존 프레임워크 그대로  MINA + AsyncWeb  28
  • 29. 목차: 결론 RIA의 재등장  RIA 통신 기술  새로운 웹 서버 구조  현실적 문제  결론  29
  • 30. 결론 웹 경험을 극대화하는 기술이 존재  기존 웹 서버로는 수용이 불가능  Event-driven 모델로의 이행이 필요  이행 과정의 문제는 충분히 해결 가능  30
  • 31. Q&A 감사합니다. 07년 2월 15일 웹플랫폼개발팀 이희승