Upload
trustinlee
View
8.810
Download
13
Embed Size (px)
DESCRIPTION
'Network Application Development with Apache MINA' - presented at The 8th Korea Java Developer Conference (24 February 2007)
Citation preview
Apache MINAApache MINA를 사용한를 사용한네트워크 어플리케이션 개발네트워크 어플리케이션 개발
이희승, NHN Corporation
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
장점: 성능
0
5,000
10,000
15,000
20,000
25,000
30,000
1 5 10 50 100 500 1,000 5,000 10,000
# of Clients
reqs
/ s
ec
-10.0%
0.0%
10.0%
20.0%
30.0%
40.0%
50.0%
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
AMQP (Qpid) Advanced Message Queuing Protocol
JP Morgan Chase & Co.
QuickFIX/J Financial Information eXchange
유가 증권 정보 교환 업계 표준
Kerberos DHCP
DNS NTP
LDAPv3 ChangePW
개요
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
아키텍처Remote Peer
IoService
IoHandler
IoFilterChain
Core
Extension Point
Protocol Implementation
Legend
Filtered I/O
Event I/O
Re
ques
t
I/O Event
Filte
red
I/O
Re
ques
t
Low-level
I/O
Low
-leve
l I/
O
IoFilter #1
IoFilter #2
IoFilter #3
IoSession<프로토콜 로직 구현>
이벤트 · 요청 필터링
실제 I/O 수행
접속과 1:1 대응
내부
15
IoAcceptor IoConnector
nio::DatagramConnector
nio::SocketConnector
vmpipe::VmPipeAcceptor vmpipe::VmPipeConnector
nio::DatagramAcceptor
nio::SocketAcceptor
IoSess ionManagerIoService
IoService
서버:연결 받기
클라이언트:서버에 연결하기
구현체들
내부
16
IoFilter
이벤트 · 요청을 가로채 기능 확장 재사용 가능 Hot deploy 가능
Logger Overload detector Traffic shaper Authorization
SSL · TLS Thread pool Performance profiler Lightweight firewall
내부
17
IoAcceptor IoHandler
스레드 풀 없음: 최소 레이턴시를 위한 싱글 스레드 설정
ThreadPoolFilter
IoAcceptorThread
PoolFilter
Bottle-neck A
(IoFilter)
ThreadPoolFilter
IoHandler
하나 이상의 스레드 풀: 다양한 자원이 병목일 경우
IoAcceptorThread
PoolFilter
IoHandler
스레드 풀 한 개: 일반적인 高 스루풋 설정
내부
18
ProtocolCodecFilter
명확한 분리를 통한 재사용성
비즈니스 로직 – IoHandler
프로토콜 코덱 – ProtocolCodecFilter Object serialization Text line
내부
19
ProtocolCodecFilterRemote Peer
IoService
IoHandler
IoFilterChain
Core
Extension Point
Protocol Implementation
Legend
Filtered I/O
Event I/O
Re
ques
t
I/O Event
Filte
red
I/O
Re
ques
t
Low-level
I/O
Low
-leve
l I/
O
IoSession
ProtocolCodecFilter
Protocol Codec Factory
EncoderD
ecoder
Encode
Decode
POJO →ByteBuffer
ByteBuffer → POJO
→ 비즈니스 로직만!
내부
20
In-VM 파이프
I/O 없는 통신:
‘Direct Method Invocations’⇒ 프로토콜 코덱無⇒ 네트워크 레이턴시無⇒ 동일한 API 사용
내부
21
목차: 데모 개요 내부
데모 미래 결론
22
Reverse Echo Server
받은 줄을 뒤집어 돌려주는 서버 기본 제공되는 텍스트 라인 코덱 사용
데모
23
목차: 미래 개요 내부 데모
미래 플랫폼으로서의 MINA 실시간 관리 참여합시다!
결론
24
Integration with Apache ASN.1 for complex protocols
Users can build customized servers with ready-made protocol codecs.
Design custom protocols just like drawing a UML!
Real-Time Management System
LDAP
Kerberos
ASN.1Codec
플랫폼으로서의 MINA
HTTP
SMTP
FTP
……
Popular Protocols
Visual Protocol Designer
(ASN.1-based)
Rapidly Prototyped
Protocol
Others
MINA Core Library
미래
25
실시간 관리 A universal management view JMX 콘솔 · 웹 인터페이스 실시간 접근
서버 트래픽 완료!
IoFilter Hot-deployment 어느 클라이언트가 무슨 메시지를? 완료!
어느 메시지가 오래 걸리지? ……
미래
26
실시간 관리 예시미래
27
참여합시다! 마음에 드십니까? 피드백이 많을 수록 품질은 향상됩니다!
질문하기 디자인 결함 지적하기 버그 알려주기 성능 테스트 결과 공유하기
미래
28
목차: 결론 개요 내부 데모 미래
결론
29
결론 MINA는 현재…
최고의 자바 넷-어플리케이션 프레임워크! 생산성 성능 안정성
MINA는 앞으로… 네트워크 어플리케이션 개발에 관한
모두를 갖춘 개발 · 관리 플랫폼이 되겠다!
결론
30
참고자료 홈페이지
http://mina.apache.org/
다양한 예제 · 다운로드 · 본 발표 자료
메일링 리스트 [email protected]
영어가 어렵다면 저에게 직접! [email protected]
감사합니다!
Q & A