1 / 29

Introduction to MINA

Introduction to MINA. Trustin Lee trustin@apache.org http://people.apache.org/~trustin/. Agenda. Overview In-depth View Implementation Demo Future Conclusion. Overview. A M ultipurpose I nfrastructure for N etwork A pplications. Overview. What is MINA?. An acronym for

yates
Télécharger la présentation

Introduction to MINA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda • Overview • In-depth View • Implementation Demo • Future • Conclusion ApacheCon US 2005

  3. Overview A Multipurpose Infrastructure for Network Applications

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

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

  6. 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> ApacheCon US 2005

  7. 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 ApacheCon US 2005 With High Productivity

  8. 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 ApacheCon US 2005

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

  10. 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 ApacheCon US 2005

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

  12. 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 ApacheCon US 2005

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

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

  15. 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 ApacheCon US 2005

  16. In-depth Thread Pooling with IoFilter ApacheCon US 2005

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

  18. In-depth Protocol Codec (Cont’d) ApacheCon US 2005

  19. 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 ApacheCon US 2005

  20. Implementation Demo A Multipurpose Infrastructure for Network Applications

  21. Demo More Complex Examples • Realistic examples: • Visit Here:http://directory.apache.org/subprojects/network/getting_started.html ApacheCon US 2005

  22. Future A Multipurpose Infrastructure for Network Applications

  23. 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 ERDiagrams! ApacheCon US 2005

  24. 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> ApacheCon US 2005

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

  26. 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. ApacheCon US 2005

  28. Resources • Homepage • http://directory.apache.org/subprojects/network/ • Mailing List • dev@directory.apache.org(Please use ‘[mina] prefix) ApacheCon US 2005

  29. Thank You! Q & A

More Related