Presentation is loading. Please wait.

Presentation is loading. Please wait.

Trustin Lee trustin@apache.org http://people.apache.org/~trustin/ Introduction to MINA Trustin Lee trustin@apache.org http://people.apache.org/~trustin/

Similar presentations


Presentation on theme: "Trustin Lee trustin@apache.org http://people.apache.org/~trustin/ Introduction to MINA Trustin Lee trustin@apache.org http://people.apache.org/~trustin/"— Presentation transcript:

1 Trustin Lee trustin@apache.org http://people.apache.org/~trustin/
Introduction to MINA Trustin Lee

2 Agenda Overview In-depth View Implementation Demo Future Conclusion
December 13, 2005 ApacheCon US 2005

3 A Multipurpose Infrastructure for Network Applications
Overview A Multipurpose Infrastructure for Network Applications

4 What is MINA? An acronym for A network application framework
Overview What is MINA? An acronym for A Multipurpose Infrastructure For Network Applications A network application framework A subproject of the Apache Directory Project December 13, 2005 ApacheCon US 2005

5 Features Unified API Easy Event-driven
Overview Features Unified API Easy Event-driven Abstracted from existing I/O APIs Elegant application design December 13, 2005 ApacheCon US 2005

6 Supported Transport Layers
Overview Supported Transport Layers Out-of-the-box Based on Java NIO (New I/O) Socket (TCP/IP) Datagram (UDP/IP) In-VM pipe Pending: Multicast Serial and parallel port <your favorite one> December 13, 2005 ApacheCon US 2005

7 Elegant Application Design
Overview Elegant Application Design Unit test friendly The Abstract API lets you test your application without a real client or server via mock objects. Extensible Runtime modification of application behavior using ‘filters’ Maintainable and Reusable Separation of networking code (MINA), protocol codec, and business logic December 13, 2005 ApacheCon US 2005 With High Productivity

8 Who Uses MINA? The Apache Directory Project
Overview Who Uses MINA? The Apache Directory Project QuickFIX – QuickFIXEngine.org Financial Information eXchange Protocol RED5 Server – OSFlash.org Macromedia Flash Media RTMP JStyx – JStyx.sf.net Styx, a file sharing NFS-like protocol Proprietary SMPP / SMS servers LDAP Kerberos DNS NTP December 13, 2005 ApacheCon US 2005

9 A Multipurpose Infrastructure for Network Applications
In-depth View A Multipurpose Infrastructure for Network Applications

10 At the First Glance IoSessionManager IoFilters IoHandler IoSession
In-depth At the First Glance IoSessionManager Where real I/O occurs Generates I/O events Processes I/O requests IoFilters Filters I/O events and requests IoHandler <Your protocol logic> IoSession Represents a connection December 13, 2005 ApacheCon US 2005

11 And their implementations
In-depth IoSessionManagers Server-side: Accepts clients Client-side: Connects to a server And their implementations December 13, 2005 ApacheCon US 2005

12 IoSession A connection between an IoHandler and a remote peer
In-depth IoSession A connection between an IoHandler and a remote peer Provides ways to send an I/O request Write a message Close the current connection State information Idleness Last I/O time Transport layer parameters Attributes: Protocol-specific data storage December 13, 2005 ApacheCon US 2005

13 IoHandler Where you implement your network application In-depth
December 13, 2005 ApacheCon US 2005

14 IoFilter A reusable event & request interceptor Scope: Hot-deployable
In-depth IoFilter A reusable event & request interceptor Hot-deployable Scope: An IoSession or an IoSessionManager December 13, 2005 ApacheCon US 2005

15 IoFilter (Cont’d) Out-of-the box filters: Pending filters: SSL / TLS
In-depth IoFilter (Cont’d) Out-of-the box filters: SSL / TLS Remote peer blacklisting Thread pool Logger Pending filters: Profiler Traffic throttle Lightweight firewall Overload prevention December 13, 2005 ApacheCon US 2005

16 Thread Pooling with IoFilter
In-depth Thread Pooling with IoFilter December 13, 2005 ApacheCon US 2005

17 Protocol Codec By default, ProtocolCodecFilter is an IoFilter
In-depth Protocol Codec By default, IoHandler uses a ByteBuffer to do I/O Tight coupling of protocol codec and business logic :( ProtocolCodecFilter is an IoFilter Performs transformation between a ByteBuffer and a POJO (Plain Old Java Object) Clear separation December 13, 2005 ApacheCon US 2005

18 Protocol Codec (Cont’d)
In-depth Protocol Codec (Cont’d) December 13, 2005 ApacheCon US 2005

19 In-VM Pipe Transport Type
In-depth In-VM Pipe Transport Type A virtual pipe Requires no protocol codec I/O events and requests are converted into direct method invocations. Two MINA servers in the same VM Can bypass: Protocol codec Network latency December 13, 2005 ApacheCon US 2005

20 A Multipurpose Infrastructure for Network Applications
Implementation Demo A Multipurpose Infrastructure for Network Applications

21 More Complex Examples Realistic examples:
Demo More Complex Examples Realistic examples: Visit Here: /subprojects/network/getting_started.html December 13, 2005 ApacheCon US 2005

22 A Multipurpose Infrastructure for Network Applications
Future A Multipurpose Infrastructure for Network Applications

23 MINA as a Platform Integration with Apache ASN.1 for complex protocols
Future MINA as a Platform Integration with Apache ASN.1 for complex protocols Users can build customized servers with ready-made protocol codecs. Just like drawing an ER Diagrams! December 13, 2005 ApacheCon US 2005

24 Real-Time Management System
Future Real-Time Management System A universal management view JMX console and Web browser Real time access Server traffic IoFilter Hot-deploy Which client is sending what message now? Which message takes toolong to process? And <what you want to monitor> December 13, 2005 ApacheCon US 2005

25 We Need Your Participation!
Future We Need Your Participation! Sounds exciting? Please help MINA team! Try MINA Ask questions Criticize Report bugs Benchmark Contribute code Contribute a tutorial December 13, 2005 ApacheCon US 2005

26 A Multipurpose Infrastructure for Network Applications
Conclusion A Multipurpose Infrastructure for Network Applications

27 Conclusion Conclusion MINA is an extensible network application framework that helps you implement your network application elegantly without compromising productivity. MINA can be a complete network application development & management platform if we get our effort together. December 13, 2005 ApacheCon US 2005

28 Resources Homepage Mailing List
Mailing List (Please use ‘[mina] prefix) December 13, 2005 ApacheCon US 2005

29 Thank You! Q & A


Download ppt "Trustin Lee trustin@apache.org http://people.apache.org/~trustin/ Introduction to MINA Trustin Lee trustin@apache.org http://people.apache.org/~trustin/"

Similar presentations


Ads by Google