14 October 2008 ~ 6 Comments

Apache MINA based Server Application Architecture



Apache MINA is one of the best available NIO Frameworks for creating scalable Server applications in Java. Its fun to create applications using MINA. 

Lets have a look how the application architecture looks like

Lets briefly see what the Major components are

IO service - The API's at this level are responsible for performing actual IO operation over the network

IO Filters - Filters are the mechanism by which MINA lets a User plugin its code to manipulate the byte stream from the network. Filters are arranged in Filter chain and are called by MINA in the order in which they are present. Filters are mainly used for transforming byte stream into high level objects.

IO Handler - IO Handler is the heart of application logic. Here is where the whole application logic is concentrated.

MINA is JMX enabled, hence Filters can be dynamically added/removed from the Filter chain.

The framework comes with samples. Please feel free to try them out.

6 Responses to “Apache MINA based Server Application Architecture”

  1. manish 5 December 2008 at 2:50 pm Permalink

    Hello Ashish,

    I am making a backup software, in which all the files to backed up are stored on a file server on the internet. I thinking of using apache mina to create a small server which will accept files to backup from the client software. Please give you advice on weather to using apache mina or something other solution for uploading files.

  2. ashish 5 December 2008 at 7:43 pm Permalink

    MINA should be great. Will save a lot of your effort. Good Luck!

  3. Rajesh 13 January 2009 at 9:07 am Permalink

    Hi Ashish,
    I am working on a Multi-player Turn based Game Server.Do you think MINA is the correct solution for this ???? please advice.

  4. ashish 22 January 2009 at 10:30 pm Permalink

    Yup MINA should do the job. Check out this page to know what people use MINA for http://mina.apache.org/testimonials.html

  5. Dave Web site design 3 July 2009 at 8:24 pm Permalink

    In the client server architecture., when the data is transferred between client and server how the data looks in the application layer point of view?

  6. aizaz 11 March 2010 at 2:48 pm Permalink

    Hi I am trying to send a POJO object from server to client. Could you kinldy tell me how to do this?

    I am currently using buffer.putObject(new pojo.POJO());

    while on client side I am failed to called messageReceived() method and .getMessage() ruturns null also buffer says it should be greater than 4 : 0
    find complete code at
    http://apachejava.blogspot.com/2010/03/apache-mina-udp-server-send-messages-to.html


Leave a Reply