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

Slides:



Advertisements
Similar presentations
Heroix Longitude - multiplatform, automated application performance monitoring and management software.
Advertisements

Chapter 13 Review Questions
VOYAGER: Yet Another Secure Web Browser to Demonstrate Secure Socket Layer Working and Implementation By : Shrinivas G. Deshpande Advisor: Dr. Chung E.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
Study on Management Agent Failover and Refresh Mechanism Esquivel C. Malillos CS526.
Platform as a Service (PaaS)
Internet-Based Client Access
Meir Botner David Ben-David. Project Goal Build a messenger that allows a customer to communicate with a service provider for a fee.
Technology Overview. Agenda What’s New and Better in Windows Server 2003? Why Upgrade to Windows Server 2003 ?  From Windows NT 4.0  From Windows 2000.
Introduction to MINA Trustin Lee
Apache Mina Dima Ionut Daniel. Contents What is Apache Mina? Why Apache Mina? Mina Architecture Mina Core Mina Advanced JMX Support Spring Integration.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Introduction to MINA A M ultipurpose I nfrastructure for N etwork A pplications April 2005, Trustin Lee, ASF.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Java Programming: Advanced Topics 1 Networking Programming Chapter 11.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Bring Your Own Security (BYOS™): Deploy Applications in a Manageable Java Container with Waratek Locker on Microsoft Azure MICROSOFT AZURE ISV PROFILE:
FlowLevel Client, server & elements monitoring and controlling system Message Include End Dial Start.
Jetty 9 Dima Ionut Daniel. Contents What is Jetty? History Jetty 9 new features Jetty Configuration Deployment Arhitecture JMX SPDY Handlers WebSocket.
Introduction to MINA Trustin Lee NHN Corporation
Google Code Libraries Dima Ionut Daniel. Contents What is Google Code? LDAPBeans Object-ldap-mapping Ldap-ODM Bug4j jOOR Rapa jongo Conclusion Bibliography.
Securing Access to Data Using IPsec Josh Jones Cosc352.
The Holmes Platform and Applications
Windows Communication Foundation and Web Services
Internet and Distributed Application Services
J2EE Platform Overview (Application Architecture)
Platform as a Service (PaaS)
Data Virtualization Tutorial… SSL with CIS Web Data Sources
Stop Those Prying Eyes Getting to Your Data
Platform as a Service (PaaS)
Netscape Application Server
JSP (Java Server Page) JSP is server side technology which is used to create dynamic web pages just like Servlet technology. This is mainly used for implementing.
Open Source distributed document DB for an enterprise
Securing the Network Perimeter with ISA 2004
Principles of Network Applications
Grizzly 2.0 Initial propose overview
Application Layer Functionality and Protocols
Processes The most important processes used in Web-based systems and their internal organization.
Introduction to J2EE Architecture
Windows Communication Foundation and Web Services
#01 Client/Server Computing
Chapter 2 Introduction Application Requirements VS. Transport Services
Application Layer Functionality and Protocols
Mike Dickson Tidal Software
Logsign All-In-One Security Information and Event Management (SIEM) Solution Built on Azure Improves Security & Business Continuity MICROSOFT AZURE APP.
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
High-performance network applications
Ebusiness Infrastructure Platform
Application Layer Functionality and Protocols
Moodle Scalability What is Scalability?
Application Layer Functionality and Protocols
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Application Layer Functionality and Protocols
Application Layer Functionality and Protocols
J2EE Lecture 13: JMS and WebSocket
Application Layer Functionality and Protocols
Application Layer Functionality and Protocols
Application Layer Functionality and Protocols
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
#01 Client/Server Computing
Network programming Lecture 1 Prepared by: Dr. Osama Mokhtar.
Demo for Partners and Customers
Presentation transcript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Thank You! Q & A