Apache MINA를 사용한 네트워크 어플리케이션 개발
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 7,957 views

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

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

Statistics

Views

Total Views
7,957
Views on SlideShare
7,935
Embed Views
22

Actions

Likes
0
Downloads
76
Comments
0

2 Embeds 22

http://www.slideshare.net 12
http://www.linkedin.com 10

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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