La thèse de Joe Armstrong est passionnante: Elle explique la démarche mené chez Ericsson pour la création de système fiable en présence d'erreurs logiciels et qui a conduit à la création du langage Erlang.
Non, Erlang n'est pas utilisé dans les téléphones.Ericsson est surtout un fabriquant de matériel d'infrastructure téléphonique. Erlang est conçu pour faire des applications robustes, clusterisées, tolérantes aux pannes, capable d'être mise à jour à chaud, etc. Ericsson l'utilise dans ce contexte pour leurs énorme routeur de gestion de comunication type ATM et pas dans les terminaux téléphoniques.
C'est dommage car cela serait amusant.
Cependant, sur téléphone, vu la simplicité des applications et des développements, n'importe quel langage peut faire l'affaire.
Le standard XMPP couvre effectivement bien plus que la messagerie instantanée.
Nous avons publié la première version beta d'un outil d'intégration baptisé J-EAI, basé sur XMPP. Il s'agit à ma connaissance du premier EAI à s'appuyer sur cette technologie.
EAI signifie Enterprise Application Integration. On appelle cela parfois ESB ces derniers temps (Enterprise Service Bus). Ces outils permettent d'organiser les flux de données circulant entre toutes les applications d'une entreprise.
Pour plus d'informations, vous pouvez jeter un oeil sur une de mes présentations:
L'outil lui-même est diffusé sur un CDROM préconfiguré de manière a être utilisable immédiatement sous Linux et Windows. La documentation est incluse sur le CDROM (Ainsi que les sources):
A l'origine Cloudscape était distribué gratuitement par Sun avec le J2EE (Version 1.2). Ensuite, IBM a demandé son retrait. Si je me souviens bien c'est cela qui avait motivé le développement de la base Java Hypersonic SQL, connu sous le nom de HSQLDB:
Si jamais tu souhaites creuser du côté de Ejabberd, tu peux me contacter. Mon adresse mail est facile à trouver (notamment via le site www.erlang-projects.org).
J'espère que vuos utilisez Ejabberd pour la montée en charge :-)
Bon ok, je fait un peu de pub, mais ejabberd est à mon sens un serveur Jabber qui mérite d'être plus connu. Il est libre, fonctionne en cluster, est très performant et supporte des JEP non encore implémentée dans Jabber. Bref, cela vaut vraiment le coup de le prendre en compte.
Les navigateurs supportés sont IE Mozilla Firebird Galeon et quelques autres dixit la page d'information avant de remplir sa déclaration.
Je n'ai pas réussi à aller jusqu'au bout cependant. La clé qu'il trouve bien dans la première étape n'est plus trouvé dans la dernière pour signer la déclaration d'impôts.
Ils recevront donc une déclaration papier également.
Je me demande comment ils vont faire pour gérer le fait que tu n'as un délai supplémentaire que si tu déclares en ligne. Maintenant, si tu veux déclarer en ligne et que cela ne fonctionne pas, dans ce délai supplémentaire tu ne peux plus basculer sur la méthode papier (puisque sinon tu es en retard ...)
Pour ceux qui souhaitent en savoir plus sur ce langage de programmation orientée concurrence, ne manquez pas ma conférence d'introduction. Elle a lieu le samedi 24 avril de 11h à 12h.
Pour ce qui ne connaisse pas du tout Erlang, vous pouvez jeter un oeil sur:
Je ferais la partie serveur (Démon) en Erlang, notamment pour la simplicité de réalisation d'applications multi-threadée et capable de monter en charge. Je ferais un démon serveur sans interface, capable de prendre des connexions de partout sur le réseau. Ton application sera donc naturellement multi-utilisateurs (et massivement multi-utilisateur, dans le cas d'Erlang).
Ensuite, le gros intérêt pour ce que tu veux faire est qu'ensuite tu peux utiliser la base de données Erlang intégré à l'environnement (Mnesia). Mnesia s'utilise très simplement et tu évites ainsi la mise en oeuvre et le déploiement d'une base de données.
L'interface graphique utilisateur peut ensuite être faite, avec les outils que tu souhaites, en communiquant avec le démon.
Rei utilise Nebula. La raison du changement est que nous avons trouvé le moteur Nebula mieux conçu pour ce qui est de l'interfaçage avec de nouveaux langages et mieux packagé. Nebula est utilisé sur des projets de jeu de qualité industrielle. Nous avons eu pas mal de problème avec Ogre pour arriver à construire une version opérationnelle en faisant le tri entre le moteur et les extensions non-compatible avec la version courante.
Nous utilisons le moteur Nebula 1, mais une nouvelle version très prometteuse est également en cours de développement. La qualité de rendu de cette nouvelle version est vraiment excellente (http://www.radonlabs.de/nebulascreenshots.html(...)). En revanche, la version en cours de développement ne fonctionne pas encore sous Linux. Si vous vous êtes volontaire pour aider au portage, n'hésitez pas à vous manifester.
A ta place, je me mettrais à Erlang. C'est un langage très différent de ce qui existe aujourd'hui. Même si tu ne développes pas d'applications avec ce langage cela change ta façon de programmer par la suite. C'est un langage concurren conçu pour faire des applications robuste et tolérante aux pannes.
Je te conseille de lire ce petit dossier introductif:
Si tu regardes ce qui a été développé en Erlang, tu verras que des systèmes robustes, critiques, gigantesques comme un routeur ATM ou un système bancaire ont été développés en Erlang.
Alors, oui théoriquement cela peut sembler gênant et certains s'offusquent de ne pas trouver de typage statique fort en Erlang. En pratique, cela ne pose pas de problème et les études faites par Ericsson sur le sujet ont montré qu'il y avait peu d'erreurs liées au typage dans le code Erlang.
Si tu ajoute à cela les fonctionnalités que les autres langages n'ont pas (Séparation complète des données gérés par les processus légers Erlang: Une erreur dans un processus ne peut pas contaminer le reste du système, Mécanisme de gestion des erreurs au travers d'un arbre de supervision, distribution transparente de l'éxécution), tu peux voir qu'il y a final plus d'avantage que d'inconvénient à développer en Erlang.
Et oui, le langage Erlang n'est pas mentionné. Et pourtant, il propose des caractéristiques fort moderne qui en font un langage qui doit compter à l'avenir.
Pour mémoire, Erlang offre les caractéristiques suivantes:
- Distribution - Erlang est conçu pour fonctionner en environnement distribué. Une machine virtuelle Erlang constitue en fait ce que l'on nomme un «noeud» Erlang. Les processus s'exécutant sur différents «noeuds» communiquent exactement de la même manière que des processus qui s'exécutent sur un «noeud» local. La distribution des traitements est transparente pour le développeur.
- Robustesse - Erlang dispose de fonctions standards de détection d'erreurs qui peuvent être utilisées pour bâtir un système «tolérant aux pannes» et notamment capable de gérer les erreurs logiciels (bugs).
- Mise à jour du code «à chaud» (Sans interruption des traitements en cours) - Certains systèmes ne peuvent pas être arrêté, même pour mettre à jour les programmes. Erlang permet de mettre à jour ces programmes sans arrêter le système. L'ancien code peut-être neutralisé et remplacer par le nouveau code. Pendant la transition, l'ancien et le nouveau code peuvent cohabiter. Il est ainsi possible de corriger des bugs et d'installer de nouvelles versions sur un système sans perturber son fonctionnement.
- Temps réel logiciel - Erlang permet de développer des systèmes temps-réel logiciel. Ces systèmes nécessite des temps de réponse de quelques millisecondes. Il n'est pas possible, dans ces systèmes de tolérer de longues phases de récupération de la mémoire (garbage collection). Erlang utilise donc des techniques de récupération mémoire incrémentales.
- Machine virtuelle très optimisée, en particulier au niveau de la gestion de la mémoire. Par exemple, Yaws, le serveur Web Erlang, utilise le plus souvent moins de 10 Mo de RAM. Il est possible de compiler le code critique de manière native.
Erlang est aujourd'hui utilisé, entre autres pour des applications critiques:
- Dans le domaine des télécommunications,
- Dans le domaine bancaire,
- Dans le domaine du jeu vidéo,
- Comme plate-forme de serveurs d'applications pour le développement d'applications Web robustes.
# La thèse de Joe Armstrong
Posté par Mickaël Rémond (site web personnel) . En réponse au journal La haute disponibilité. Évalué à 4.
La thèse de Joe Armstrong est passionnante: Elle explique la démarche mené chez Ericsson pour la création de système fiable en présence d'erreurs logiciels et qui a conduit à la création du langage Erlang.
Voir: Making reliable distributed systems in the presence of software errors http://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf(...)
Bonne lecture !
--
Mickaël Rémond
http://www.erlang-projects.org/(...)
Mickaël
[^] # Re: Erlang ?
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Python & Nokia. Évalué à 1.
C'est dommage car cela serait amusant.
Cependant, sur téléphone, vu la simplicité des applications et des développements, n'importe quel langage peut faire l'affaire.
--
Mickaël Rémond
http://www.erlang-projects.org/(...)
Mickaël
[^] # Re: Téléphonie IP et OpenSource font bon ménage!
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Clients SIPs graphiques. Évalué à 1.
--
Mickaël Rémond
http://www.erlang-projects.org/(...)
Mickaël
# J-EAI: La première plate-forme d'intégration basé sur XMPP
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche L'IETF publie les RFC de XMPP (pour Jabber, notamment). Évalué à 4.
Nous avons publié la première version beta d'un outil d'intégration baptisé J-EAI, basé sur XMPP. Il s'agit à ma connaissance du premier EAI à s'appuyer sur cette technologie.
EAI signifie Enterprise Application Integration. On appelle cela parfois ESB ces derniers temps (Enterprise Service Bus). Ces outils permettent d'organiser les flux de données circulant entre toutes les applications d'une entreprise.
Pour plus d'informations, vous pouvez jeter un oeil sur une de mes présentations:
http://www.erlang-projects.org/Public/projects/eai__esb/j-eai_objec(...)
L'outil lui-même est diffusé sur un CDROM préconfiguré de manière a être utilisable immédiatement sous Linux et Windows. La documentation est incluse sur le CDROM (Ainsi que les sources):
http://www.erlang-projects.org/Public/news/repos_1.0_beta6_j-e/view(...)
Bon test !
--
Mickaël Rémond
http://www.erlang-projects.org/(...)
Mickaël
# Erlang REPOS 1.0 beta 5
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Erlang REPOS 1.0 beta 4: tester Erlang et ses applications. Évalué à 3.
http://downloads.erlang-projects.org/(...)
Amusez-vous bien !
--
Mickaël Rémond
http://www.erlang-projects.org/(...)
Mickaël
# Cloudscape et HSQLDB
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche IBM donne Cloudscape à la communauté open-source. Évalué à 7.
http://hsqldb.sf.net/(...)
Mickaël
[^] # Re: Bravo...!
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche PhoneGaim, le téléphone sous GNU/Linux !. Évalué à 3.
Pour ceux qui cherche une solution SIP serveur, vous pouvez jeter un oeil sur le projet YXA:
http://www.stacken.kth.se/projekt/yxa/kth.se/projekt/yxa/(...)
--
Mickaël Rémond
http://www.erlang-projects.org/(...)
Mickaël
[^] # Re: Pub pour Jabber sur un site grand public
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Support de Jabber pour aMSN ?. Évalué à 1.
Bon courage !
Mickaël
[^] # Re: Pub pour Jabber sur un site grand public
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Support de Jabber pour aMSN ?. Évalué à 1.
http://www.francetelecom.com/fr/espaces/journalistes/communiques/CP(...)
Cela mérite également d'être noté.
Mickaël
[^] # Re: Pub pour Jabber sur un site grand public
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Support de Jabber pour aMSN ?. Évalué à 1.
J'espère que vuos utilisez Ejabberd pour la montée en charge :-)
Bon ok, je fait un peu de pub, mais ejabberd est à mon sens un serveur Jabber qui mérite d'être plus connu. Il est libre, fonctionne en cluster, est très performant et supporte des JEP non encore implémentée dans Jabber. Bref, cela vaut vraiment le coup de le prendre en compte.
Allez jeter un oeil sur http://ejabberd.jabberstudio.org/(...)
Mickaël
# Et le support de la conférence sur Erlang
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Les conférences de Libr'East consultables en ligne. Évalué à 1.
Je n'ai pas vu le support de la conférence sur Erlang. Il me semblait que je l'avait envoyé ...
A suivre ...
Mickaël
# Erlang
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Débutant en programmation serveur.. Évalué à 2.
Tu devrais jeter un oeil dessus:
- http://www.erlang.org/(...)
- http://www.erlang-projects.org/(...)
Bon courage.
Mickaël
[^] # Re: Opera 7.5 Preview 4 et skipstone 0.8.4
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Opera 7.5 Preview 4 et skipstone 0.8.4. Évalué à 1.
Mickaël
[^] # Re: Je vais te leur envoyer une de ces paire de baffe aux impots !!!
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Je vais te leur envoyer une de ces paire de baffe aux impots !!!. Évalué à 1.
Je n'ai pas réussi à aller jusqu'au bout cependant. La clé qu'il trouve bien dans la première étape n'est plus trouvé dans la dernière pour signer la déclaration d'impôts.
Ils recevront donc une déclaration papier également.
Je me demande comment ils vont faire pour gérer le fait que tu n'as un délai supplémentaire que si tu déclares en ligne. Maintenant, si tu veux déclarer en ligne et que cela ne fonctionne pas, dans ce délai supplémentaire tu ne peux plus basculer sur la méthode papier (puisque sinon tu es en retard ...)
Mickaël
[^] # Re: Libr'East of Paris : 3 jours de conférences autour du Logiciel Libre
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Libr'East of Paris : 3 jours de conférences autour du Logiciel Libre. Évalué à -1.
Mickaël
# Conférence d'introduction à Erlang
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Libr'East of Paris : 3 jours de conférences autour du Logiciel Libre. Évalué à 4.
Pour ce qui ne connaisse pas du tout Erlang, vous pouvez jeter un oeil sur:
http://www.erlang-projects.org/(...)
et
http://www.erlang.org/(...)
A bientôt !
Mickaël
# Re: Quel langage choisir ?
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Quel langage choisir ?. Évalué à 2.
Ensuite, le gros intérêt pour ce que tu veux faire est qu'ensuite tu peux utiliser la base de données Erlang intégré à l'environnement (Mnesia). Mnesia s'utilise très simplement et tu évites ainsi la mise en oeuvre et le déploiement d'une base de données.
L'interface graphique utilisateur peut ensuite être faite, avec les outils que tu souhaites, en communiquant avec le démon.
Mickaël
# Re: Messageries instantanées ... sous windows...
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Messageries instantanées ... sous windows.... Évalué à 1.
Il supporte tous les protocoles via l'utilisation d'un serveur et de passerelles dédiées vers les différents réseaux.
http://tkabber.jabber.ru/(...)
Mickaël
[^] # Re: Salon du jeu vidéo sur plateforme libre
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Salon du jeu vidéo sur plateforme libre. Évalué à 1.
Nous utilisons le moteur Nebula 1, mais une nouvelle version très prometteuse est également en cours de développement. La qualité de rendu de cette nouvelle version est vraiment excellente (http://www.radonlabs.de/nebulascreenshots.html(...)). En revanche, la version en cours de développement ne fonctionne pas encore sous Linux. Si vous vous êtes volontaire pour aider au portage, n'hésitez pas à vous manifester.
Mickaël
[^] # Re: Salon du jeu vidéo sur plateforme libre
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Salon du jeu vidéo sur plateforme libre. Évalué à 1.
Mickaël
# Re: Ceci n'est pas un troll sur les langages !
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Ceci n'est pas un troll sur les langages !. Évalué à 1.
Je te conseille de lire ce petit dossier introductif:
http://www.erlang-projects.org/Public/news/events/linux_solutions_2(...)
Sans comter qu'avec ce langage, tu développes plus vite, en particulier les applications serveur:
http://www.erlang-projects.org/Public/success_stories/four-fold_inc(...)
Bonne lecture !
Mickaël
[^] # Re: Connaissez vous une belle appli J2EE
Posté par Mickaël Rémond (site web personnel) . En réponse au journal Connaissez vous une belle appli J2EE. Évalué à 1.
- Le site officiel: http://www.idealx.org/prj/idx-tsunami/index.fr.html(...)
- Un des liens sur cette page présente les avantages de Tsunami sous forme de flyer: http://www.erlang-projects.org/Public/news/events/linux_solutions_2(...)
Mickaël
[^] # Re: Erlang a également été oublié
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Havoc Pennington se pose des questions sur les langages du libre. Évalué à 1.
Mickaël
[^] # Re: Erlang a également été oublié
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Havoc Pennington se pose des questions sur les langages du libre. Évalué à 2.
Alors, oui théoriquement cela peut sembler gênant et certains s'offusquent de ne pas trouver de typage statique fort en Erlang. En pratique, cela ne pose pas de problème et les études faites par Ericsson sur le sujet ont montré qu'il y avait peu d'erreurs liées au typage dans le code Erlang.
Si tu ajoute à cela les fonctionnalités que les autres langages n'ont pas (Séparation complète des données gérés par les processus légers Erlang: Une erreur dans un processus ne peut pas contaminer le reste du système, Mécanisme de gestion des erreurs au travers d'un arbre de supervision, distribution transparente de l'éxécution), tu peux voir qu'il y a final plus d'avantage que d'inconvénient à développer en Erlang.
Mickaël
[^] # Erlang a également été oublié
Posté par Mickaël Rémond (site web personnel) . En réponse à la dépêche Havoc Pennington se pose des questions sur les langages du libre. Évalué à 7.
Pour mémoire, Erlang offre les caractéristiques suivantes:
- Distribution - Erlang est conçu pour fonctionner en environnement distribué. Une machine virtuelle Erlang constitue en fait ce que l'on nomme un «noeud» Erlang. Les processus s'exécutant sur différents «noeuds» communiquent exactement de la même manière que des processus qui s'exécutent sur un «noeud» local. La distribution des traitements est transparente pour le développeur.
- Robustesse - Erlang dispose de fonctions standards de détection d'erreurs qui peuvent être utilisées pour bâtir un système «tolérant aux pannes» et notamment capable de gérer les erreurs logiciels (bugs).
- Mise à jour du code «à chaud» (Sans interruption des traitements en cours) - Certains systèmes ne peuvent pas être arrêté, même pour mettre à jour les programmes. Erlang permet de mettre à jour ces programmes sans arrêter le système. L'ancien code peut-être neutralisé et remplacer par le nouveau code. Pendant la transition, l'ancien et le nouveau code peuvent cohabiter. Il est ainsi possible de corriger des bugs et d'installer de nouvelles versions sur un système sans perturber son fonctionnement.
- Temps réel logiciel - Erlang permet de développer des systèmes temps-réel logiciel. Ces systèmes nécessite des temps de réponse de quelques millisecondes. Il n'est pas possible, dans ces systèmes de tolérer de longues phases de récupération de la mémoire (garbage collection). Erlang utilise donc des techniques de récupération mémoire incrémentales.
- Machine virtuelle très optimisée, en particulier au niveau de la gestion de la mémoire. Par exemple, Yaws, le serveur Web Erlang, utilise le plus souvent moins de 10 Mo de RAM. Il est possible de compiler le code critique de manière native.
Erlang est aujourd'hui utilisé, entre autres pour des applications critiques:
- Dans le domaine des télécommunications,
- Dans le domaine bancaire,
- Dans le domaine du jeu vidéo,
- Comme plate-forme de serveurs d'applications pour le développement d'applications Web robustes.
Allez, jeter un oeil sur www.erlang.org
Mickaël