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

    이희승, NHN Corporation
      trustin@apache.org
2




목차
 개요
 내부
 데모
 미래
 결론
3




목차: 개요
 개요
   MINA란?
   장점
   사용자
 내부
 데모
 미래
 결론
개요                             4




 MINA란?

           A Multi-purpose
              Infrastructure
          for Networ...
개요                                5




 MINA란?
  자바 네트워크 어플리케이션 프레임워크
  추상 API
    Event-driven
    비동기
  구현체
    N...
개요                               6




 장점: 생산성
  유닛 테스트 친화적
    추상 API + mock objects
  확장성
    ‘필터’ - 어플리케이션 행동을 런타임...
개요                                                      7




 장점: 성능
  MINA 2 vs. Apache HTTPD 2
     2 dual-core Opter...
개요                                                                                                    8




 장점: 성능
      ...
개요                                                                       9




 장점: 성능
  AMQP 테스트
     클라이언트 · 서버
      ...
개요                         10




 장점: 안정성
  API 디자인
     11월 19일 1.0 릴리즈


  구현체
    2004년부터 지속적으로 개선
    오픈 소스 vs. ...
개요                                                          11




 사용자
  The Apache Directory Project
      CitiStreet
...
개요                                                          12




 사용자
  AsyncWeb                                       ...
13




목차: 내부
 개요

 내부
   아키텍처
   핵심 요소
   In-VM 파이프
 데모
 미래
 결론
내부                                                                           14




 아키텍처
                                ...
내부                                                                                               15




 IoService
       ...
내부                                              16




 IoFilter
  이벤트 · 요청을 가로채 기능 확장
    재사용 가능
      Hot deploy 가능

...
내부                                                               17




 ThreadPoolFilter
        스레드 풀 없음: 최소 레이턴시를 위한 싱글...
내부                                             18




 ProtocolCodecFilter
  명확한 분리를 통한 재사용성


  비즈니스 로직          – IoHa...
내부                                                                                                     19




 ProtocolCod...
내부                                 20




 In-VM 파이프
             I/O 없는 통신:

     ‘Direct Method Invocations’
          ⇒...
21




목차: 데모
 개요
 내부

 데모
 미래
 결론
데모                        22




 Reverse Echo Server
  받은 줄을 뒤집어 돌려주는 서버
  기본 제공되는 텍스트 라인 코덱 사용
23




목차: 미래
 개요
 내부
 데모

 미래
   플랫폼으로서의 MINA
   실시간 관리
   참여합시다!
 결론
미래                                                             24




 플랫폼으로서의 MINA
                Real-Time Management S...
미래                                     25




 실시간 관리
  A universal management view
  JMX 콘솔 · 웹 인터페이스
  실시간 접근
    서버...
미래           26




 실시간 관리 예시
미래                         27




 참여합시다!
  마음에 드십니까?
  피드백이 많을 수록 품질은 향상됩니다!
    질문하기
    디자인 결함 지적하기
    버그 알려주기
  ...
28




목차: 결론
 개요
 내부
 데모
 미래

 결론
결론                              29




 결론
  MINA는 현재…
    최고의 자바 넷-어플리케이션 프레임워크!
       생산성
       성능
       안정성
  ...
30




참고자료
 홈페이지
  http://mina.apache.org/
  다양한 예제 · 다운로드 · 본 발표 자료


 메일링 리스트
  dev@mina.apache.org
  영어가 어렵다면 저에...
감사합니다!

  Q&A
Upcoming SlideShare
Loading in...5
×

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

7,311

Published on

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

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,311
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
103
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×