VT2017 actionhero.js

=ActionHero.Js=
 * Sujet : ActionHero.js
 * Auteur : Aymeric VIAL-GRELIER
 * Enseignants : Didier Donsez, Georges-Pierre Bonneau
 * Date : 27/10/2017



=Résumé=

ActionHero.js est un framework pour générer des API en javascript, utilisant Node.Js. Il permet notamment l’accès grâce à plusieurs moyens tels que TCP/http ou encore des websockets. Le développement d’une API multiplateforme est alors simplifié.


 * Mots-clés : Framework, Javascript, Node.js, évenements, performance, multi-plateforme

=Abstract= A serverless architecture is an architecture where developers don't have to care about the infrastructure (machine or VM), it's managed by a 3rd party. One of the biggest benefits of this kind of architecture is the scalability. Developers can focus on code and can create functions which will be triggered by an event. ''Apache OpenWhisk is a serverless, open source cloud platform that allows you to execute code in response to events at any scale. OpenWhisk handles the infrastructure and servers so you can focus on building amazing things'' (website definition). OpenWhisk is able to execute Javascript and Swift code. IBM, with IBM Function, provide an OpenWhisk service.


 * Keywords : Framework, Javascript, Node.js, events, performance, cross-plateform

=Synthèse=

ActionHero.Js est un framework pour générer des API accessibles par plusieurs moyens. Comme tout framework celui ci permet de générer facilement et rapidement des API écrites en javascript. Les technologies utilisées sont multiples. La première est un serveur Node.js afin de rendre les apis fonctionnelles. La seconde est l’utilisation de redis utilisé comme broker (gestion d’actions différées) ainsi que comme base de donnée NoSQL). ActionHero utilise Node.js, la programmation est donc évementielle. Les actions sont traitées une par une et peuvent ensuite appeler des callbacks.





ActionHero.js fourni 3 serveurs différents. Un serveur web répondant a des requêtes http, le second un système de websocket, et enfin le dernier une plateforme de socket TCP.

Nativement toutes les actions (fonctionnalités de l’api dans ActionHero.js) sont accessibles via tous les accès cités précédemment. C’est l’avantage particulier de ce framework quand on le compare à sa concurrence (Sails.js par exemple). Toutes les actions sont définies dans un répertoire particulier défini par le framework, et toutes les actions peuvent être appelées par des URLS définies dans un fichier particulier. C’est également le cas pour TCP toute action est immédiatement accessible. Côté performance, les performances sont semblables à toute architecture basée sur Node.JS, elles sont donc très bonnes.

En conclusion ActionHero.js est un excellent framework dans le cas ou l’on souhaite programmer une API accessible via plusieurs protocoles. La documentation complète permet de comprendre rapidement comment évoluer dans le codage de la dite API.

=Webographie=

• https://openclassrooms.com/courses/des-applications-ultra-rapides-avec-node-js
 * https://www.actionherojs.com/
 * https://stackshare.io/stackups/actionherojs-vs-expressjs-vs-hapi
 * https://github.com/actionhero/actionhero
 * https://www.upwork.com/hiring/development/15-node-js-frameworks-to-know/