Apache MINA를 사용한 네트워크 어플리케이션 개발

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Apache MINA를 사용한 네트워크 어플리케이션 개발 - Presentation Transcript

    1. Apache MINA를 사용한 네트워크 어플리케이션 개발 이희승, NHN Corporation trustin@apache.org
    2. 2 목차  개요  내부  데모  미래  결론
    3. 3 목차: 개요  개요  MINA란?  장점  사용자  내부  데모  미래  결론
    4. 개요 4 MINA란? A Multi-purpose Infrastructure for Network Applications
    5. 개요 5 MINA란?  자바 네트워크 어플리케이션 프레임워크  추상 API  Event-driven  비동기  구현체  NIO Socket & Datagram  API를 만족하는 어떤 transport도 가능
    6. 개요 6 장점: 생산성  유닛 테스트 친화적  추상 API + mock objects  확장성  ‘필터’ - 어플리케이션 행동을 런타임에 변경  유지보수성 · 재사용성  네트워킹 코드 (MINA) 및 프로토콜 코덱, 비즈니스 로직의 분리
    7. 개요 7 장점: 성능  MINA 2 vs. Apache HTTPD 2  2 dual-core Opterons (4 cores)  Gentoo Linux 2.6.18-r6 x86_64  100Mbit 이더넷  JDK 1.6.0  응답 전문: 405 바이트 (본문: 128 바이트) -server –Xms512m –Xmx512m –Xss128k –XX:+AggressiveOpts –XX:+UseParallelGC –XX:+UseBiasedLocking –XX:NewSize=64m
    8. 개요 8 장점: 성능 30,000 50.0% 25,000 40.0% 20,000 30.0% reqs / sec 15,000 20.0% 10,000 10.0% 5,000 0.0% 0 -10.0% 1 5 10 50 100 500 1,000 5,000 10,000 # of Clients Apache 2.0.58 MINA 2.0.0-M1 성능차
    9. 개요 9 장점: 성능  AMQP 테스트  클라이언트 · 서버  4 dual-core Opterons (8 cores)  1Gbit 이더넷  클라이언트 프로세스 10 개  본문: 256+ 바이트 (AMQP 헤더 제외)  평균: 180,000 msg/sec  최대: 220,000 msg/sec Courtesy of Robert J. Greig, JP Morgan Chase & Co.
    10. 개요 10 장점: 안정성  API 디자인  11월 19일 1.0 릴리즈  구현체  2004년부터 지속적으로 개선  오픈 소스 vs. In-house?
    11. 개요 11 사용자  The Apache Directory Project  CitiStreet  LDAPv3  Kerberos  DNS  DHCP  NTP  ChangePW  AMQP (Qpid) Advanced Message Queuing Protocol  JP Morgan Chase & Co.  QuickFIX/J Financial Information eXchange  유가 증권 정보 교환 업계 표준
    12. 개요 12 사용자  AsyncWeb HTTP  Codehaus XFire SOAP, WS-*  Rails-AsyncWeb Ruby on Rails  EURid European Domain Registry  Jive Software Wildfire Jabber / XMPP  RED5 Server Macromedia Flash Media RTMP
    13. 13 목차: 내부  개요  내부  아키텍처  핵심 요소  In-VM 파이프  데모  미래  결론
    14. 내부 14 아키텍처 Legend Remote Peer Core Extension Point Low-level Low-level Protocol Implementation I/O I/O 실제 I/O 수행 IoService Filtered I/O I/O Event Request IoFilterChain 이벤트 · 요청 필터링 IoFilter #1 IoFilter #2 IoFilter #3 Filtered I/O Request 접속과 1:1 대응 Event I/O IoSession <프로토콜 로직 구현> IoHandler
    15. 내부 15 IoService IoService IoS es s ionManager 서버: 클라이언트: 연결 받기 서버에 연결하기 IoAc c eptor IoConnec tor 구현체들 nio::S oc ketAc c eptor nio::S oc ketConnec tor nio::DatagramAc c eptor nio::DatagramConnec tor v mpipe::VmPipeAc c eptor v mpipe::VmPipeConnec tor
    16. 내부 16 IoFilter  이벤트 · 요청을 가로채 기능 확장  재사용 가능  Hot deploy 가능  SSL · TLS  Logger  Thread pool  Overload detector  Performance profiler  Traffic shaper  Lightweight firewall  Authorization
    17. 내부 17 ThreadPoolFilter 스레드 풀 없음: 최소 레이턴시를 위한 싱글 스레드 설정 IoAcceptor IoHandler 스레드 풀 한 개: 일반적인 高 스루풋 설정 Thread IoAcceptor Pool IoHandler Filter 하나 이상의 스레드 풀: 다양한 자원이 병목일 경우 Thread Bottle- Thread IoAcceptor Pool neck A Pool IoHandler Filter (IoFilter) Filter
    18. 내부 18 ProtocolCodecFilter  명확한 분리를 통한 재사용성  비즈니스 로직 – IoHandler  프로토콜 코덱 – ProtocolCodecFilter  Object serialization  Text line
    19. 내부 19 ProtocolCodecFilter Legend Remote Peer Core Extension Point Low-level Low-level Protocol Implementation I/O I/O IoService Filtered I/O I/O Event Request Protocol Codec Factory POJO → Encoder IoFilterChain ByteBuffer Encode ProtocolCodecFilter Decoder ByteBuffer Decode → POJO Filtered I/O Request Event I/O IoSession → 비즈니스 로직만! IoHandler
    20. 내부 20 In-VM 파이프 I/O 없는 통신: ‘Direct Method Invocations’ ⇒ 無 프로토콜 코덱 ⇒ 無 네트워크 레이턴시 ⇒ 동일한 API 사용
    21. 21 목차: 데모  개요  내부  데모  미래  결론
    22. 데모 22 Reverse Echo Server  받은 줄을 뒤집어 돌려주는 서버  기본 제공되는 텍스트 라인 코덱 사용
    23. 23 목차: 미래  개요  내부  데모  미래  플랫폼으로서의 MINA  실시간 관리  참여합시다!  결론
    24. 미래 24 플랫폼으로서의 MINA Real-Time Management System Integration with Apache ASN.1 for complex protocols Users can build customized servers Design custom Rapidly HTTP FTP Kerberos Prototyped with ready-made protocol codecs. protocols just like Protocol drawing a UML! Visual Protocol SMTP LDAP Designer …… (ASN.1-based) Popular ASN.1 Others Protocols Codec MINA Core Library
    25. 미래 25 실시간 관리  A universal management view  JMX 콘솔 · 웹 인터페이스  실시간 접근  서버 트래픽 완료!  IoFilter Hot-deployment  어느 클라이언트가 무슨 메시지를? 완료!  어느 메시지가 오래 걸리지?  ……
    26. 미래 26 실시간 관리 예시
    27. 미래 27 참여합시다!  마음에 드십니까?  피드백이 많을 수록 품질은 향상됩니다!  질문하기  디자인 결함 지적하기  버그 알려주기  성능 테스트 결과 공유하기
    28. 28 목차: 결론  개요  내부  데모  미래  결론
    29. 결론 29 결론  MINA는 현재…  최고의 자바 넷-어플리케이션 프레임워크!  생산성  성능  안정성  MINA는 앞으로…  네트워크 어플리케이션 개발에 관한 모두를 갖춘 개발 · 관리 플랫폼이 되겠다!
    30. 30 참고자료  홈페이지  http://mina.apache.org/  다양한 예제 · 다운로드 · 본 발표 자료  메일링 리스트  dev@mina.apache.org  영어가 어렵다면 저에게 직접!  trustin@apache.org
    31. 감사합니다! Q&A
    SlideShare Zeitgeist 2009

    + trustinleetrustinlee Nominate

    custom

    782 views, 0 favs, 0 embeds more stats

    'Network Application Development with Apache MINA' more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 782
      • 782 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 5
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories