<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/index.php?action=history&amp;feed=atom&amp;title=VT2020-Flogo-Fiche</id>
	<title>VT2020-Flogo-Fiche - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/index.php?action=history&amp;feed=atom&amp;title=VT2020-Flogo-Fiche"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2020-Flogo-Fiche&amp;action=history"/>
	<updated>2026-06-19T23:24:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=VT2020-Flogo-Fiche&amp;diff=49557&amp;oldid=prev</id>
		<title>Manon.Chaix1: Created page with &quot;= Résumé =  Logo de Flogo Flogo est un framework entièrement codé en Golang ultra léger qui permet la création d&#039;applications...&quot;</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=VT2020-Flogo-Fiche&amp;diff=49557&amp;oldid=prev"/>
		<updated>2020-12-14T16:03:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Résumé =  &lt;a href=&quot;/index.php/File:Flogo_logo.png&quot; title=&quot;File:Flogo logo.png&quot;&gt;200px|right|thumb|Logo de Flogo&lt;/a&gt; Flogo est un framework entièrement codé en Golang ultra léger qui permet la création d&amp;#039;applications...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Résumé =&lt;br /&gt;
&lt;br /&gt;
[[File:Flogo_logo.png|200px|right|thumb|Logo de Flogo]]&lt;br /&gt;
Flogo est un framework entièrement codé en Golang ultra léger qui permet la création d&amp;#039;applications événementielles de manière très simplifiée à l&amp;#039;aide d&amp;#039;un Web UI très intuitif.&lt;br /&gt;
&lt;br /&gt;
Il utilise la notion de &amp;#039;&amp;#039;triggers&amp;#039;&amp;#039; et de &amp;#039;&amp;#039;actions&amp;#039;&amp;#039; pour construire l&amp;#039;application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Triggers et Actions =&lt;br /&gt;
&lt;br /&gt;
[[File:eventhandlers.png|400px|right|thumb|Schéma triggers et actions]]&lt;br /&gt;
== Triggers ==&lt;br /&gt;
&lt;br /&gt;
Les triggers gèrent tout ce qui est réception de données et l&amp;#039;envoi de réponses.&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;est également ces triggers qui vont par exemple paramétrer le port via lequel on va recevoir/envoyer les flux de données.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Handlers ==&lt;br /&gt;
&lt;br /&gt;
Un handler est simplement ce qui permet d&amp;#039;attribuer les événements aux actions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Actions ==&lt;br /&gt;
&lt;br /&gt;
Les actions c&amp;#039;est ce qui va gérer toute la logique de l&amp;#039;application et les différentes opérations qui vont être effectués après réception des données.&lt;br /&gt;
&lt;br /&gt;
C&amp;#039;est également les actions qui vont déterminer ce qui va être renvoyé pas l&amp;#039;application avant de passer par les trigger.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Exemple d&amp;#039;interface de projet avec le web UI =&lt;br /&gt;
&lt;br /&gt;
Voici un exemple de ce que peut donner un projet un peu plus complexe que celui que j&amp;#039;ai mis dans ma [[https://air.imag.fr/index.php/VT2020-XXXXXX-Demo démonstration]].&lt;br /&gt;
&lt;br /&gt;
[[File:exemple.png|800px|center|thumb|source : [[https://www.google.com/url?sa=i&amp;amp;url=https%3A%2F%2Fwww.flogo.io%2F&amp;amp;psig=AOvVaw1nJi02HXtglf35fBYOV6jU&amp;amp;ust=1608037537947000&amp;amp;source=images&amp;amp;cd=vfe&amp;amp;ved=0CAIQjRxqFwoTCPDNjuXEze0CFQAAAAAdAAAAABAD source]]]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Déploiement et compatibilités =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Cloud.png|200px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Dépoloiement&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On a le choix entre plusieurs possibilités de déploiement ce qui est très agréable :&lt;br /&gt;
&lt;br /&gt;
On peut déployer l&amp;#039;application sur un cloud avec AWS lambda, ce qui est pratique car Flogo a un support natif de AWS lambda ce qui permet d&amp;#039;avoir des fonctions &amp;#039;&amp;#039;serverless&amp;#039;&amp;#039; et donc avoir moins de ops. Cela permet de consommer moins de ressources mais aussi d&amp;#039;économiser de l&amp;#039;argent.&lt;br /&gt;
&lt;br /&gt;
On peut aussi publier dans un container avec Docker. On connaît tous les avantages d&amp;#039;un tel déploiement donc c&amp;#039;est en effet très intéressant.&lt;br /&gt;
&lt;br /&gt;
On peut également déployer comme un binaire statique pour intégrer l&amp;#039;application à des objets orientés IoT (internet des objets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Pulsar.png|200px|right]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Compatibilités&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si vous utilisez Apache Kafka ou Pulsar vous pouvez très facilement faire par exemple du Machine Learning à l&amp;#039;aide de Flogo et revenir dans Pulsar ou Kafka.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Structure du projet =&lt;br /&gt;
&lt;br /&gt;
Si vous adorez coder et ne souhaitez pas utiliser le web UI, vous pouvez ! Vous allez avoir besoin d&amp;#039;un fichier JSON et de fichiers Go.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Metadata&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pour la metadata, Flogo utilise tout simplement un fichier JSON. Les champs nécessaires sont les suivants :&lt;br /&gt;
&lt;br /&gt;
- name : nom de l’activité&lt;br /&gt;
&lt;br /&gt;
- version : version de l&amp;#039;activité&lt;br /&gt;
&lt;br /&gt;
- type : type de contribution&lt;br /&gt;
&lt;br /&gt;
- title : titre de l’application&lt;br /&gt;
&lt;br /&gt;
- description : description de l’application&lt;br /&gt;
&lt;br /&gt;
- settings : un tableau qui contient les paramètres de l’activité&lt;br /&gt;
&lt;br /&gt;
- input : un tableau qui contient les paramètres des entrées&lt;br /&gt;
&lt;br /&gt;
- output : un tableau qui contient les paramètres des sortie&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Logique&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Pour la logique de l&amp;#039;application, Flogo utilise des fichiers Go. On aura besoin de trois fichiers : activity.go, activity_test.go et metadata.go.&lt;br /&gt;
&lt;br /&gt;
- activity.go contient l&amp;#039;implémentation de l&amp;#039;activité en go.&lt;br /&gt;
&lt;br /&gt;
- activity_test.go contient les test unit de l&amp;#039;activité.&lt;br /&gt;
&lt;br /&gt;
- metadata.go contient la metadata basique de input, output et settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Un peu de recul sur cette technologie =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il est important de prendre du recul sur cette technologie avant de vouloir l&amp;#039;utiliser.&lt;br /&gt;
&lt;br /&gt;
Notons d&amp;#039;abord les points positifs :&lt;br /&gt;
&lt;br /&gt;
- Très léger (20 à 50 fois plus léger que Java ou Node.js). En effet Java et Node.js sont souvent critiqués car c&amp;#039;est très lourd, ici nous n&amp;#039;avons pas ce problème.&lt;br /&gt;
&lt;br /&gt;
- Flexibilité de déploiement. On a pu voir les différentes possibilités pour déployer l&amp;#039;application, le fait d&amp;#039;avoir le choix est toujours très agréable.&lt;br /&gt;
&lt;br /&gt;
- 100% open source. Très pratique pour votre  plaisir de dev ou hacking !&lt;br /&gt;
&lt;br /&gt;
- Web UI très intuitif. Le principal avantage de cette technologie, une personne ne maîtrisant pas parfaitement les notions de l&amp;#039;IoT peut très facilement faire une application.&lt;br /&gt;
&lt;br /&gt;
- Augmente la productivité. Même si vous êtes très à l&amp;#039;aise en codage, vous gagnez quand même du temps grâce au web UI qui fait beaucoup de travail à votre place.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les points négatifs :&lt;br /&gt;
&lt;br /&gt;
- Il n&amp;#039;est pas possible de développer de front-end. En effet si vous souhaitez avoir une interface jolie, vous devez la coder vous-même.&lt;br /&gt;
&lt;br /&gt;
- Vous ne pouvez pas non plus faire des analyses avec cette technologie.&lt;br /&gt;
&lt;br /&gt;
- Le git est peu mis à jour et on sait pas trop si on aurait des retours en cas de problème.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Sources =&lt;br /&gt;
&lt;br /&gt;
Site officiel :&lt;br /&gt;
http://www.flogo.io/&lt;br /&gt;
&lt;br /&gt;
Github :&lt;br /&gt;
https://github.com/tibcosoftware/flogo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Veille Technologique 2020 =&lt;br /&gt;
* Année : [[VT2020]]&lt;br /&gt;
* Sujet : Flogo&lt;br /&gt;
* Slides : [[Media:Project_flogo.pdf|Slides]]&lt;br /&gt;
* Auteur : William NELSON&lt;/div&gt;</summary>
		<author><name>Manon.Chaix1</name></author>
	</entry>
</feed>