SlideShare ist ein Scribd-Unternehmen logo
1 von 49
www.xebia.fr / blog.xebia.fr
Nicolas LE COZ - XKE de décembre 2009 Business Logic integration Platform (BLiP) www.xebia.fr / blog.xebia.fr
Programme du XKE Drools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Présentation inspirée de … ,[object Object]
Qu’est ce qu’un moteur de règles (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Qu’est ce qu’un moteur de règles (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Qu’est ce que Drools ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Historique de Drools ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Résumé d’une étude comparative (1/8) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Résumé d’une étude comparative (2/8) ,[object Object]
Résumé d’une étude comparative (3/8) ,[object Object],[object Object]
Résumé d’une étude comparative (4/8) ,[object Object]
Résumé d’une étude comparative (5/8) ,[object Object]
Résumé d’une étude comparative (6/8) ,[object Object]
Résumé d’une étude comparative (7/8) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Résumé d’une étude comparative (8/8) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Drools Expert (moteur de règles) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Règle simple (1/2) ,[object Object],package fr.xebia.sandbox.drools.v5_0_1.basicRule01 import fr.xebia.sandbox.drools.domain.Customer rule "Is of valid age" when // Conditions $c : Customer(age >= 18) then // Actions $c.setValid(true); end
Règle simple (2/2) ,[object Object],public void launch(List<Customer> facts) { KnowledgeBuilder  kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newClassPathResource( &quot;basicRule01.drl&quot;, getClass()), ResourceType.DRL); if (kbuilder.hasErrors()) { throw new RuntimeException(kbuilder.getErrors().toString()); } KnowledgeBase  kbase =  KnowledgeBaseFactory.newKnowledgeBase (); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); StatelessKnowledgeSession  ksession =  kbase.newStatelessKnowledgeSession(); ksession.execute(CommandFactory.newInsertElements(facts)); }
Syntaxe d’une règle (1/7) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Syntaxe d’une règle (2/7) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Syntaxe d’une règle (3/7) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Syntaxe d’une règle (4/7) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Syntaxe d’une règle (5/7) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Syntaxe d’une règle (6/7) ,[object Object],[object Object],[object Object],[object Object],rule &quot;interest calculation&quot;  no-loop  when  $account : Account( )  then  modify($account) {  setBalance((long)($account.getBalance() * 1.03) )  };  end
Syntaxe d’une règle (7/7) ,[object Object],[object Object],[object Object],[object Object],[object Object],rule &quot;rule attributes&quot; salience 100 dialect &quot;mvel&quot;  no-loop  when  // conditions  then  // consequence  end
Règle lisible par un humain – DSL (1/3) ,[object Object],package droolsbook.dsl; import droolsbook.bank.model.*; expander simple.dsl rule &quot;hello rule&quot;  when  There is a Customer with firstName &quot;David&quot;  then  Greet Customer end
Règle lisible par un humain – DSL (2/3) ,[object Object],[object Object],[condition][]There is a Customer with firstName {name}=$customer : Customer(firstName == {name}) [consequence][]Greet Customer=System.out.println(&quot;Hello &quot; + $customer.getFirstName()); package droolsbook.dsl; import droolsbook.bank.model.*; rule &quot;kikou&quot; when  $customer : Customer then System.out.println(&quot;kikou &quot; + $customer.getFirstName(()); end
Règle lisible par un humain – DSL (3/3) ,[object Object],private KnowledgeBase createKnowledgeBaseFromDSL() throws Exception {  KnowledgeBuilder   builder  =  KnowledgeBuilderFactory.newKnowledgeBuilder();  builder.add(ResourceFactory.newClassPathResource(  &quot;simple.dsl&quot;), ResourceType.DSL );  builder.add(ResourceFactory.newClassPathResource(  &quot;simple.dslr&quot;), ResourceType.DSLR );  if (builder.hasErrors()) {  throw new RuntimeException(builder.getErrors().toString());  }  KnowledgeBase knowledgeBase  =  KnowledgeBaseFactoryknowledgeBase. addKnowledgePackages ( builder .getKnowledgePackages());  return knowledgeBase;  }
Règle lisible par un humain – Table de décision (1/2)
Règle lisible par un humain – Table de décision (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Drools Guvnor (BRMS/BPMS) (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Drools Guvnor (BRMS/BPMS) (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Drools Flow (Flow/Workflow) (1/2)
Drools Flow (Flow/Workflow) (2/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Drools Fusion (CEP/Temporal Reasoning) (1/3)  ,[object Object],[object Object],[object Object],[object Object]
Drools Fusion (CEP/Temporal Reasoning) (2/3)
Drools Fusion (CEP/Temporal Reasoning) (3/3)
Performance – Algorithme de Rete (1/3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Performance – Algorithme de Rete (2/3) ,[object Object],rule &quot;accountBalanceAtLeast&quot;  when  $account : Account( balance < 100 )  then  warning(drools, $account); end
Performance – Algorithme de Rete (3/3) ,[object Object],rule studentWithLowAccountBalance  when  $account : Account( balance < 100,  type == Account.Type.STUDENT )  $customer : Customer(accounts contains $account)  then  System.out.println(&quot;Customer &quot; + $customer +  &quot; has student account with low balance&quot;); end
Conclusion & Retour d’expérience www.xebia.fr / blog.xebia.fr
Conclusion (1/3)
Conclusion (2/3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Conclusion (3/3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Merci … Des questions ??? ,[object Object],[object Object],[object Object]
Annexes www.xebia.fr / blog.xebia.fr
Bibliographie (1/2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Bibliographie (2/2) ,[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
Antoine Rey
 

Was ist angesagt? (20)

Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Examen principal- php - correction
Examen principal- php - correctionExamen principal- php - correction
Examen principal- php - correction
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Workshop Spring - Session 4 - Spring Batch
Workshop Spring -  Session 4 - Spring BatchWorkshop Spring -  Session 4 - Spring Batch
Workshop Spring - Session 4 - Spring Batch
 
Introduction aux architectures des SI
Introduction aux architectures des SI Introduction aux architectures des SI
Introduction aux architectures des SI
 
Modele mvc
Modele mvcModele mvc
Modele mvc
 
Chp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications Mobiles
 
Présentation de Microsoft Azure
Présentation de Microsoft AzurePrésentation de Microsoft Azure
Présentation de Microsoft Azure
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jadeSystèmes multi agents concepts et mise en oeuvre avec le middleware jade
Systèmes multi agents concepts et mise en oeuvre avec le middleware jade
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 

Andere mochten auch

BRMS JUG Toulouse 20100615
BRMS JUG Toulouse 20100615BRMS JUG Toulouse 20100615
BRMS JUG Toulouse 20100615
JUG Toulouse
 
2011-03-29 London - drools
2011-03-29 London - drools2011-03-29 London - drools
2011-03-29 London - drools
Geoffrey De Smet
 
Domain-Specific Languages avec Groovy
Domain-Specific Languages avec GroovyDomain-Specific Languages avec Groovy
Domain-Specific Languages avec Groovy
Guillaume Laforge
 
Drools New York City workshop 2011
Drools New York City workshop 2011Drools New York City workshop 2011
Drools New York City workshop 2011
Geoffrey De Smet
 

Andere mochten auch (20)

L'approche par regles metier
L'approche par regles metierL'approche par regles metier
L'approche par regles metier
 
BRMS JUG Toulouse 20100615
BRMS JUG Toulouse 20100615BRMS JUG Toulouse 20100615
BRMS JUG Toulouse 20100615
 
Drools
DroolsDrools
Drools
 
Construire un moteur d'inférence
Construire un moteur d'inférenceConstruire un moteur d'inférence
Construire un moteur d'inférence
 
Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)Drools 6.0 (Red Hat Summit)
Drools 6.0 (Red Hat Summit)
 
Rule Engine & Drools
Rule Engine & DroolsRule Engine & Drools
Rule Engine & Drools
 
Introduction aux BRMS
Introduction aux BRMSIntroduction aux BRMS
Introduction aux BRMS
 
2011-03-29 London - drools
2011-03-29 London - drools2011-03-29 London - drools
2011-03-29 London - drools
 
Domain-Specific Languages avec Groovy
Domain-Specific Languages avec GroovyDomain-Specific Languages avec Groovy
Domain-Specific Languages avec Groovy
 
Drools @ IntelliFest 2012
Drools @ IntelliFest 2012Drools @ IntelliFest 2012
Drools @ IntelliFest 2012
 
Drools New York City workshop 2011
Drools New York City workshop 2011Drools New York City workshop 2011
Drools New York City workshop 2011
 
Azure Business rules v0.3
Azure Business rules v0.3Azure Business rules v0.3
Azure Business rules v0.3
 
Veeam Software : Sauvegarde et protection des données, plan de reprise d’acti...
Veeam Software : Sauvegarde et protection des données, plan de reprise d’acti...Veeam Software : Sauvegarde et protection des données, plan de reprise d’acti...
Veeam Software : Sauvegarde et protection des données, plan de reprise d’acti...
 
Rule engine
Rule engineRule engine
Rule engine
 
ADSL Presentation
ADSL PresentationADSL Presentation
ADSL Presentation
 
Getting started with Apache Camel - May 2013
Getting started with Apache Camel - May 2013Getting started with Apache Camel - May 2013
Getting started with Apache Camel - May 2013
 
Developing Configurable and High Performance Apps in Drools
Developing Configurable and High Performance Apps in Drools Developing Configurable and High Performance Apps in Drools
Developing Configurable and High Performance Apps in Drools
 
Adsl
AdslAdsl
Adsl
 
eServices-Tp3: esb
eServices-Tp3: esbeServices-Tp3: esb
eServices-Tp3: esb
 
eServices-Tp5: api management
eServices-Tp5: api managementeServices-Tp5: api management
eServices-Tp5: api management
 

Ähnlich wie Drools et les moteurs de règles

Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124
Mejdeddine Bouzouita
 
Drool formation-drools-jboss-rules
Drool formation-drools-jboss-rulesDrool formation-drools-jboss-rules
Drool formation-drools-jboss-rules
CERTyou Formation
 
Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structure
CERTyou Formation
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
goldoraf
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
Algeria JUG
 

Ähnlich wie Drools et les moteurs de règles (20)

Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124Prsentation de-javaserver-faces4124
Prsentation de-javaserver-faces4124
 
Présentation de JavaServer Faces
Présentation de JavaServer FacesPrésentation de JavaServer Faces
Présentation de JavaServer Faces
 
OW2 JASMINe
OW2 JASMINeOW2 JASMINe
OW2 JASMINe
 
Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
iTunes Stats
iTunes StatsiTunes Stats
iTunes Stats
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)
 
Drool formation-drools-jboss-rules
Drool formation-drools-jboss-rulesDrool formation-drools-jboss-rules
Drool formation-drools-jboss-rules
 
Presentation BRMS Toulouse JUG
Presentation BRMS Toulouse JUGPresentation BRMS Toulouse JUG
Presentation BRMS Toulouse JUG
 
2
22
2
 
JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)
 
Es20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structureEs20 g formation-z-os-system-services-structure
Es20 g formation-z-os-system-services-structure
 
Support cours j2_ee
Support cours j2_eeSupport cours j2_ee
Support cours j2_ee
 
ASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJSASP.NET MVC, Web API & KnockoutJS
ASP.NET MVC, Web API & KnockoutJS
 
Rich Desktop Applications
Rich Desktop ApplicationsRich Desktop Applications
Rich Desktop Applications
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
Fondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application FlexFondamentaux d'architecture d'une application Flex
Fondamentaux d'architecture d'une application Flex
 
HTML5... La révolution maintenant!
HTML5... La révolution maintenant!HTML5... La révolution maintenant!
HTML5... La révolution maintenant!
 

Mehr von Publicis Sapient Engineering

Mehr von Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 

Drools et les moteurs de règles