Apache MINA est un framework d'application réseau qui aide les utilisateurs à développer des applications serveur et client à haute performance et pouvant monter en charge simplement.
La version 1.1.0 est un port Java 5 d'Apache MINA 1.0.X qui utilise les nouvelles fonctionnalités du langage Java 5 (c'est à dire les types génériques et les types de retour covariants). Les applications basées sur MINA 1.0.X peuvent être très facilement portées vers MINA 1.1.0.
La version de développement 2.0.M1 qui est proche de sa première sortie ajoute les communications séries (RS-232) et une API simplifiée.
Apache MINA est utilisé par :
- Apache Directory, le serveur LDAP de l'Apache Software Foundation ;
- Apache Qpid un serveur AMQP (Advanced Message Queuing Protocol) ;
- Apache FTP server ;
- QuickFIX/J une implémentation en java du protocole FIX (Financial Information eXchange) ;
- Asyncweb un serveur HTTP traitant les requêtes de façon asynchrones pour maximiser les performances ;
- Jive Software Openfire : un serveur XMPP (Extensible Messaging and Presence Protocol, le protocole de Jabber) hautes performances ;
- Red5, un serveur de flux de média flash open-source.
- Une API unifiée pour différents types de transports :
- TCP/IP ;
- UDP/IP ;
- Communication série (RS-232) ;
- Communication par tube dans la même machine virtuelle ;
- Vous pouvez facilement rajouter le votre !
- TCP/IP ;
- API bas et haut niveau :
- Bas niveau : manipuler des ByteBuffers (buffers d'octet bruts) ;
- Haut niveau : utiliser vos objets métier et vos codecs.
- Bas niveau : manipuler des ByteBuffers (buffers d'octet bruts) ;
- Entrées sorties basées sur des flux (streams) via StreamIoHandler
- Une interface de filtrage comme point d'extension ; similaires aux filtres Servlet
- support SSL/TLS via SSLFilter grâce au SSLEngine de Java 5 ;
- compression à la volée ;
- les pools de thread sont implémentés comme filtre de façon à être pleinement paramétrable par l'utilisateur.
- support SSL/TLS via SSLFilter grâce au SSLEngine de Java 5 ;
- Tests unitaire utilisant des "mock objects"
- Gestion par JMX (Java Management Extensions)
- Étranglement de trafic (traffic throttling)
- Protection contre la surcharge (Overload shielding)
- Intégration avec les systèmes de container populaires comme : PicoContainer et Spring
- Migration facilité depuis Netty, un framework NIO populaire.
Bien sûr, le tout sous licence Apache, version 2.0.
Aller plus loin
- Plus d'information sur le projet Apache MINA (26 clics)
- Téléchargement (10 clics)
- Pour ceux qui sont curieux sur les performances de Java pour les applications réseaux (12 clics)
- Guide de démarrage rapide (15 clics)
- Configurer le modèle de thread pour un maximum de performance (11 clics)
- La F.A.Q (8 clics)
# wikipédification
Posté par BAud (site web personnel) . Évalué à 6.
http://fr.wikipedia.org/wiki/Extensible_messaging_and_presen(...) pour jabber
http://fr.wikipedia.org/wiki/Red5 qui renvoie vers http://osflash.org/red5 pour du streaming audio et vidéo en MP3, FLV, flash...
ça m'intéresserait de savoir s'il y a eu des benchs externes autres que ceux proposés sur http://mina.apache.org/performance-test-reports.html (notamment la conso mémoire, cpu ça pourrait être intéressant sur un environnement de prod' significatif). Préciser si cela avait une chance de fonctionner avec gcj serait pas mal aussi :)
[^] # Re: wikipédification
Posté par vrm (site web personnel) . Évalué à 5.
http://harmony.apache.org/downloads.html
Par contre gcj aucune idée, par contre des tests sont bienvenues :)
La conso mémoire c'est celle de la JVM, puis par connection ça dépend du code collé derrière. MINA utilise peu de mémoire en lui même.
Pour des tests de charge voir le passage de Wildfire de leur code réseau maison à MINA :
http://www.igniterealtime.org/blog/2006/12/19/scalability-tu(...)
Merci pour la super mise en forme !
# Ah java...
Posté par Xavier Maillard . Évalué à 10.
C'est vraiment un monde à part quand même.
[^] # Re: Ah java...
Posté par vrm (site web personnel) . Évalué à -2.
[^] # Re: Ah java...
Posté par Fabimaru (site web personnel) . Évalué à 10.
[^] # Re: Ah java...
Posté par Sytoka Modon (site web personnel) . Évalué à 1.
[^] # Re: Ah java...
Posté par Sytoka Modon (site web personnel) . Évalué à 4.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.