Cet ouvrage et des milliers d'autres font partie de la bibliothèque YouScribe
Obtenez un accès à la bibliothèque pour les lire en ligne
On lit avec un ordinateur, une tablette ou son smartphone (streaming)
En savoir plus
ou
Achetez pour : 14,99 €

Lecture en ligne + Téléchargement

Format(s) : EPUB - PDF

sans DRM

Partagez cette publication

Publications similaires

Programmation Python

de editions-eyrolles

Oracle 10g sous Windows

de editions-eyrolles

Vous aimerez aussi

Pokémon GO 100% non officiel

de editions-eyrolles

J'arrête la malbouffe !

de editions-eyrolles

Le pouvoir des gentils

de editions-eyrolles

suivant
Résumé Fiabilité industrielle pour les applications distribuées Développé par Ericsson depuis une dizaine d’années pour gérer les aspects les plus ardus des applications distribuées et robustes, Erlang est disponible en open source depuis 1998. Essentiellement orienté réseau, il est utilisé pour réaliser des jeux massivement multijoueurs, des applications Internet de haute disponibilité (fermes de serveurs HTTP, robots de chat IRC tel Manderlbot…), mais s’applique également, en tant que langage généraliste, à des domaines allant de l’informatique industrielle à la finance, en passant par le jeu vidéo ou la 3D. Une référence sur la programmation fonctionnelle et concurrente en Erlang Préfacé par Joe Armstrong, créateur d’Erlang, ce premier livre en français sur Erlang explore la puissance de la programmation concurrente. Depuis l’installation du langage sur diverses plates-formes jusqu’à la création d’applications tolérantes aux pannes, en passant par la description du framework de développement, la gestion de bases de données distribuées et la gestion des erreurs, ce livre constitue une référence appliquée sur Erlang. Trois études de cas Trois études de cas illustrent les nombreux aspects d’Erlang : le développement d’un serveur de proxy d’annuaire LDAP pour illustrer le modèle de développement robuste OTP, la création d’un serveur de jeux vidéo pour montrer les capacités réseau du langage, et le développement d’extensions pour le modeleur graphique Wings 3D, qui illustre la démarche de développement de plug-ins.
Au sommaire Téléchargement et installation d’ErlangMicrosoft/Linux/Debianà partir Installation des sourcespas PremiersCaractéristiques du langageConcurrence  Distribution Robustesse Gestionde la mémoire Tempsréel logiciel Miseà jour de code à chaudincrémental Chargement du code et interfaçage avec d’autres environnementsLe langage Types simples et complexeset Fonctions récursivitéAffectation unique des variables  Organisationdu code et logique applicative de contrôle Structures Programmation concur r ent e Processusde Passage messages DéveloppementasynchroneGestion des erreurs Supervisionet processus travailleursprincipe « laissez Le planter! »et méthodologie de Style développementMaintenance et débogageLe framework de développement Erlang/OTP générique Serveuret Superviseur répartiteur d’événementsà états Machine finisL’environnement de développement virtuelle Machinesource FichiersCompilation Lecycle de développementLe Shell Erlangde code: le mode L’éditeur Erlang pour (X)EmacsLes bases de donnéesLe schéma de base de donnéesInsertions et sélections Ladistribution des d o n n é e s Développementd’interface g r a p h iq u e ssystème graphique LeDéveloppement d’applications WebINETSYAW Sclients et serveur Développement TCP/IPConception d’applications Erlang de cas Études Proxd’annuaire LDAP
Illustration d’OTPet jeu vidéo Erlang Jeu de la viede jeu vidéo Serveur Extensions pour le modeleur Wings 3D.
Biographie auteur
Mickaël Rémonddéveloppeur Erlang depuis est les toutes premières versions du langage diffusées en open source en 1998. Il exerce une activité de consultant spécialisé dans l’architecture des systèmes d’information et des systèmes distribués à haute disponibilité. Membre actif de la communauté Erlang et fondateur des sites Erlang-fr.org et Erlang-Projects.org, il a initié des projets open source tels Manderlbot, un robot de forum IRC, Metafrog, une application Web pour le suivi de projet open source, ainsi qu’Erly-Stage et Rei, des serveurs de jeu de rôles multi-joueurs.
www.editions-e rolles.com
ÉDITIONS EYROLLES 61, bd Saint-Germain 75240 Paris Cedex 05 www.editions-eyrolles.com
En application de la loi du 11 mars 1957, il est interdit de reproduire intégralement ou partiellement le présent ouvrage, sur quelque support que ce soit, sans autorisation de l’éditeur ou du Centre Français d’Exploitation du Droit de Copie, 20, rue des Grands-Augustins, 75006 Paris. © Groue Erolles, 2003, ISBN : 2-212-11079-0
Dans la collectionComing Next O. AUVERLOT. –Programmation Rebol N°11017, 2002, 476 pages.
X. BRIFFAULT. –Programmation Squeak. N°11023, 2002, 280 pages.
CHEZ LE MÊME ÉDITEUR Architectures Web et intranet L. MAESANO, C. BERNARD, X. LE GALLES. – Services Web en J2EE et .NET.Protocoles et implémentations N°11067, 2003, 1000 pages. F. RIVARD, T. PLANTAIN. –L’EAI par la pratique. N°11199, 2002, 524 pages. J.-M. CHAUVET.Services Web avec SOAP, WSDL, UDDI, ebXML… N°11047, 2002, 450 pages. F. ALIN, X. AMOROS, M. SALIOU. – L’Entreprise intranet.Guide de conduite de projet. N°11118, 2002, 228 pages. M. RIZCALLAH. –Annuaires LDAP. N°11033, 2002, 480 pages. T. PETILLON. –Les Cahiers du programmeur ASP.NET.Infrastructure Web avec ASP.NET. N°11210, 2003, 200 pages.
XML et ses applications S. MARIEL.– Les Cahiers du programmeur PostgreSQL.Services Web avec PostgreSQL et PHP/XML. N°11166, 2003, 150 pages. J.-J. THOMASSON. –Schémas XML. N°11195, 2002, 450 pages. Ph. DRIX. –XSLT fondamental.Avec 20 design patterns prêts à l’emploi. N°11082, 2002, 500 pages. S. HOLZNER. –XSLT par la pratique. N°11040, 2002, 550 pages. F. BERQUÉ, S. FREZEFOND, L. SORRIAUX. – Java-XML et Oracle. E-Commerce – EAI – Portails d’entreprise – Applications mobiles. N°9149, 2001, 650 pages + 2 CD-Rom.
Modélisation UML et processus de développement P. ROQUES –Les cahiers du programmeur UML. Modéliser un site e-commerce avec UML. N°11070, septembre 2002, 180 pages. e P. ROQUES, F. VALLéE. –UML en action, 2 édition. De l’analyse des besoins à la conception détaillée en Java. e N°11213, 2édition, décembre 2002, 380 pages + poster. e P. ROQUES. –éditionUML par la pratique, 2. Cours et exercices. N°11246, 2003, 312 pages. J.-L. BÉNARD, L. BOSSAVIT, R. MÉDINA, D. WILLIAMS. –L’Extreme Programming, avec deux études de cas. N°11051, 2002, 300 pages. P.-A. MULLER, N. GAERTNER.Modélisation objet avec UML. e N°9122, 2édition, 2000, 520 pages + CD-Rom PC. D. CARLSON.Modélisation d’applications XML avec UML. N°9297, 2002, 324 pages.
A. COCKBURN. –Rédiger des cas d’utilisation efficaces. N°9288, 2001, 320 pages. I. JACOBSON, G. BOOCH, J. RUMBAUGH. –Le processus unifié de développement logiciel. N°9142, 2000, 510a es.
Préface, par Joe Armstrong, créateur du langage Erlang
C’est pour moi un immense plaisir que de rédiger l’introduction du premier ouvrage en français consacré à Erlang. Pour l’essentiel, une simple question suffit à présenter le langage Erlang, bien mieux que ne le feraient de longs discours : pourquoi apprendre Erlang ? Pourquoi apprendre encore un autre langage – les langages de programmation ne sont-ils pas, après tout, suffisamment nombreux ? La réponse est simple : Erlang n’est pas « un autre langage de programmation ». De bien des manières, il est fondamentalement différent des langages informatiques que vous connaissez probablement. Car dans l’écrasante majorité, ceux-là ont été conçus pour écrire des programmesséquentiels. Erlang a, pour sa part, été conçu pour écrire des programmesconcurrents. Le monde réel, celui qui réside hors de nos ordinateurs et dans lequel nous vivons, travaillons et mourons, est indéniablement concurrent. Les choses s’y produisent en parallèle et notre existence même repose sur les interactions complexes d’un très grand nombre d’activités concurrentes. Cette simple observation conduit au paradoxe suivant : tandis que les activités s’organisent dans notre monde de manière parallèle et que notre existence dépend de la concurrence d’un grand nombre d’activités, les langages que nous utilisons pour modéliser, décrire et transcrire cette réalité en programmes sont essentiellement séquentiels. Cette observation revêtirait peu d’importance si nous écrivions des programmes qui n’ont nul besoin d’interagir avec le monde réel. Or, ce n’est bien souvent pas le cas, et l’écart entre les natures concurrentielle du monde réel et séquentielle de la plupart des langages de développement devient un vrai problème. Écrire du code séquentiel censé interagir avec le monde réel, où la concurrence est naturelle et inévitable, constitue en soi un défi excessivement difficile. Ce problème est toutefois considérablement simplifié si une correspondance peut être établie entre les paradigmes de concurrence observables dans le monde réel et des paradigmes similaires dans les langages de développement. Cette approche réduit l’écart sémantique entre le problème et sa solution, en simplifiant cette dernière. C’est ce vers quoi tend le langage Erlang. Le développement en Erlang enseigne au programmeur une nouvelle manière de considérer le monde, en l’obligeant à analyser les problèmes auxquels il est confronté en termes de processus concurrents et de messages échangés entre ces processus. Un programme Erlang est composé d’un nombre arbitraire de processus qui s’exécutent en parallèle. Ces processus interagissent en échangeant des messages. C’est même là la seule faon oureux
d’interagir. En outre, leur espace d’exécution n’est pas limité à une seule machine : il peut s’étendre à unnœudErlang quelconque situé sur l’Internet. En termes de ressources machine, le coût des processus Erlang est négligeable, si on le compare à celui du mécanisme dethreadstel qu’il est implémenté dans la plupart des systèmes d’exploitation. Un processus Erlang ne partage de données avec aucun autre processus et reste extrêmement léger. L’utilisation de processus concurrents n’interagissant que par échanges de messages constitue les bases de la programmation distribuée, à laquelle Erlang s’adapte naturellement. Alors que de plus en plus de machines sont connectées de façon permanente à Internet, le développement d’applications distribuées n’en devient que plus intéressant. L’émergence de technologies comme .NET et l’intérêt soutenu autour de protocoles comme SOAP et WSDL renforcent la vision selon laquelle la prochaine génération d’applications sera intrinsèquement distribuéeetconcurrente. Des millions d’applications séquentielles fonctionnent aujourd’hui sur des ordinateurs isolés, mais tout indique que les applications distribuées devraient devenir de plus en plus courantes et pourraient finalement prendre une place plus importante que les applications non distribuées. Je crois sincèrement que la plupart de ces applications, nouvelles et excitantes, seront celles qui connecteront les gens par-delà les barrières culturelles, sociales et économiques. Le Web n’est qu’une première étape. Je m’attends à ce que de nouvelles applications distribuées changent la manière dont nous travaillons, jouons, voire transforment le monde dans lequel nous vivons – tout comme leWorld Wide Web l’a fait. La réalisation de programmes distribués et concurrents par nature est le défi auquel doit faire face tout programmeur souhaitant « changer le monde ». La lecture du livre de Mickaël sur Erlang constitue un premier pas dans cette direction. Amusez-vous et écrivez du code audacieux !
Swedish Institute of Computer Science, Stockholm, janvier 2003 Joe Armstron