Apache MINA

from Wikipedia, the free encyclopedia
Apache MINA

Apache-MINA-logo.png
Basic data

developer Apache Software Foundation
Publishing year April 4, 2006
Current  version 2.0.19
( June 11, 2018 )
operating system platform independent
programming language Java
category Network communication framework
License Apache license 2.0
mina.apache.org

Apache MINA is a free Java framework for network communication. It provides an event-based programming interface for asynchronous communication via transport protocols such as TCP / IP and UDP / IP and Java NIO .

MINA is an acronym for M ultipurpose I nfrastructure for N etwork A pplications.

functionality

Apache MINA is primarily a technology-independent programming interface for various network protocols. These can be addressed via ByteBuffers, StreamIoHandler or user-defined message objects and codecs. The protocols supplied are:

In addition, your own protocols can be implemented. Network communication can be single-threaded or handled by configurable thread pools.

Apache MINA offers support for protecting against overload, bandwidth control , unit testing via mock objects , management and monitoring via Java Management Extensions and integrations with the dependency injection frameworks PicoContainer and Spring .

Apache Camel can be used as a routing and conversion engine for Apache MINA.

history

Apache MINA is based on the network framework "Netty2" first published in June 2004 by Trustin Lee. It was the first corresponding Java framework that was based on an event-based architecture, but had difficulties with text protocols and architectural errors that prevented its use in massively parallel systems.

Alex Karasulu from the Apache Directory Team was working on a network framework himself at the same time and became aware of Netty2. He was able to get Trustin Lee to collaborate on a new network framework for the Apache Directory project. In September 2004, the basis for Apache MINA was created based on a mixture of the architectures of the two frameworks.

Since then, Apache MINA has been the primary network framework of the Apache Directory project for various protocols of the Apache Directory Server - u. a. LDAP, Kerberos, DNS and NTP.

Alternatives

In addition to the direct use of the Java programming interfaces for NIO, Socket and TCP / IP and UDP / IP communication, there are also the following alternative frameworks for network communication in Java:

  • Grizzly
  • Netty 4
  • QuickServer
  • xSocket

Individual evidence

  1. projects.apache.org . (accessed on April 8, 2020).
  2. Welcome to Apache MINA . (accessed on August 7, 2018).
  3. FAQ - What does MINA mean? Retrieved June 5, 2013 .
  4. a b Trustin Lee: Apache MINA Features. Apache Software Foundation, July 24, 2007, accessed March 8, 2016 .
  5. Trustin Lee: Genesis of MINA. Apache Software Foundation, January 30, 2007, accessed March 8, 2016 .