Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

9.938 Aufrufe

Veröffentlicht am

'Network Application Development with Apache MINA' - presented at The 8th Korea Java Developer Conference (24 February 2007)

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

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

  1. 1. Apache MINA를 사용한 네트워크 어플리케이션 개발 이희승, NHN Corporation trustin@apache.org
  2. 2. 2 목차  개요  내부  데모  미래  결론
  3. 3. 3 목차: 개요  개요  MINA란?  장점  사용자  내부  데모  미래  결론
  4. 4. 개요 4 MINA란? A Multi-purpose Infrastructure for Network Applications
  5. 5. 개요 5 MINA란?  자바 네트워크 어플리케이션 프레임워크  추상 API  Event-driven  비동기  구현체  NIO Socket & Datagram  API를 만족하는 어떤 transport도 가능
  6. 6. 개요 6 장점: 생산성  유닛 테스트 친화적  추상 API + mock objects  확장성  ‘필터’ - 어플리케이션 행동을 런타임에 변경  유지보수성 · 재사용성  네트워킹 코드 (MINA) 및 프로토콜 코덱, 비즈니스 로직의 분리
  7. 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. 개요 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. 개요 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. 개요 10 장점: 안정성  API 디자인  11월 19일 1.0 릴리즈  구현체  2004년부터 지속적으로 개선  오픈 소스 vs. In-house?
  11. 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. 개요 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. 13 목차: 내부  개요  내부  아키텍처  핵심 요소  In-VM 파이프  데모  미래  결론
  14. 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. 내부 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. 내부 16 IoFilter  이벤트 · 요청을 가로채 기능 확장  재사용 가능  Hot deploy 가능  SSL · TLS  Logger  Thread pool  Overload detector  Performance profiler  Traffic shaper  Lightweight firewall  Authorization
  17. 17. 내부 17 ThreadPoolFilter 스레드 풀 없음: 최소 레이턴시를 위한 싱글 스레드 설정 IoAcceptor IoHandler 스레드 풀 한 개: 일반적인 高 스루풋 설정 Thread IoAcceptor Pool IoHandler Filter 하나 이상의 스레드 풀: 다양한 자원이 병목일 경우 Thread Bottle- Thread IoAcceptor Pool neck A Pool IoHandler Filter (IoFilter) Filter
  18. 18. 내부 18 ProtocolCodecFilter  명확한 분리를 통한 재사용성  비즈니스 로직 – IoHandler  프로토콜 코덱 – ProtocolCodecFilter  Object serialization  Text line
  19. 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. 내부 20 In-VM 파이프 I/O 없는 통신: ‘Direct Method Invocations’ ⇒ 無 프로토콜 코덱 ⇒ 無 네트워크 레이턴시 ⇒ 동일한 API 사용
  21. 21. 21 목차: 데모  개요  내부  데모  미래  결론
  22. 22. 데모 22 Reverse Echo Server  받은 줄을 뒤집어 돌려주는 서버  기본 제공되는 텍스트 라인 코덱 사용
  23. 23. 23 목차: 미래  개요  내부  데모  미래  플랫폼으로서의 MINA  실시간 관리  참여합시다!  결론
  24. 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. 미래 25 실시간 관리  A universal management view  JMX 콘솔 · 웹 인터페이스  실시간 접근  서버 트래픽 완료!  IoFilter Hot-deployment  어느 클라이언트가 무슨 메시지를? 완료!  어느 메시지가 오래 걸리지?  ……
  26. 26. 미래 26 실시간 관리 예시
  27. 27. 미래 27 참여합시다!  마음에 드십니까?  피드백이 많을 수록 품질은 향상됩니다!  질문하기  디자인 결함 지적하기  버그 알려주기  성능 테스트 결과 공유하기
  28. 28. 28 목차: 결론  개요  내부  데모  미래  결론
  29. 29. 결론 29 결론  MINA는 현재…  최고의 자바 넷-어플리케이션 프레임워크!  생산성  성능  안정성  MINA는 앞으로…  네트워크 어플리케이션 개발에 관한 모두를 갖춘 개발 · 관리 플랫폼이 되겠다!
  30. 30. 30 참고자료  홈페이지  http://mina.apache.org/  다양한 예제 · 다운로드 · 본 발표 자료  메일링 리스트  dev@mina.apache.org  영어가 어렵다면 저에게 직접!  trustin@apache.org
  31. 31. 감사합니다! Q&A

×