mardi 27 septembre 2016

Ignition Community Conference 2016


Du 19 au 21 septembre 2016 s'est tenue la 4e Ignition Community Conférence, à Folsom, CA. Depuis 2013, cette rencontre annuelle des utilisateurs (intégrateurs, utilisateurs, constructeurs, partenaires et oem) ne cesse de prendre de l'ampleur et d'élargir son influence. la conférence était SOLD OUT dès fin juillet... Avis aux amateurs pour l'année prochaine.

Cette année, le thème était ACCELERATE après DISCOVER en 2014 et BUILD en 2015. 2013 n'avait pas de thème particulier mais aurait pu s'intituler WELCOME.

NOTA : pour les plus pressés ou les plus paresseux, sautez directement à la section "à retenir" ; mais ce serait dommage de louper ce qui suit...

Le thème 2016 est réellement en phase avec l'engouement pour la plateforme Ignition ; la communauté des utilisateurs ne cesse de grandir, les succès sur tous les continents et dans tous les secteurs sont toujours plus nombreux (merci à nos clients francophones !), la satisfaction toujours grandissante tant pour la qualité du produit que pour son architecture innovante et en avance (voir la newsletter de juin 2016).

Mais ACCELERATE, c'est aussi la capacité que procure Ignition pour accélérer l'adoption des nouvelles tendances comme la convergence IT-OT.

Cette convergence des systèmes opérationnels (OT) de l'atelier avec les applications d'entreprises (IT) était finalement déjà au menu en 2003 avec les logiciels FactorySQL et FactoryPMI qui mettaient en oeuvre OPC-COM (pour l'OT) et web server et SQL (pour l'IT).


IT-OT au coeur du produit depuis 2003

En 2006, je distribuais déjà les produits d'Inductive Automation en France... On me prenait pour un gentil illuminé avec ces technologies dans l'industrie ; pensez, le web dans l'industrie ! C'est sûr, quand on avait vu les performances et les difficultés pour mettre les Scada en mode web de nos confrères, il y avait de quoi être sceptique !

En 2010 lors du lancement d'Ignition, fusion de FSQL et de FPMI grâce à l'arrivée d'OPC-UA (nota : Ignition fut le premier produit OPC-UA commercial du marché en 2010, avec une écriture 100% interne du serveur et du client UA en Java pour le multi-plate-forme), même accueil moqueur...

C'est d'ailleurs ce qu'a rappelé Steve Hechtman, CEO d'Inductive Automation en raillant analystes, journalistes et compétiteurs qui prédisaient une fin en 2/3 ans... Comment ? Un nouveau produit sur un marché encombré et tenu par quelques grands noms (Wonderware, Siemens, ABB, Schneider, Rockwell...), des compagnies qui emploient des dizaines de milliers de personnes et font des Mds de dollars de CA ? Impossible d'y survivre, selon eux.

13 ans après, Ignition est toujours là et bien là !
Lors de mes présentations commerciales, je fais souvent le parallèle entre un smartphone et Ignition. Le smartphone permet d'installer/supprimer des applications en ligne sans redémarrage. Les applications sont développées par des tiers. Le smartphone est une plateforme pour les applications et un accélérateur de business pour les éditeurs tiers et les équipementiers.
Ignition en tant que plateforme permet d'installer/supprimer des modules. Ces modules sont développés par des tiers (intégrateurs ou éditeurs).
Le parallèle avec le smartphone ne s'arrête pas là. Si on s'intéresse au lancement du plus fameux sinon iconique des smartphones, l'iPhone, on s'aperçoit que personne ne donnait cher de sa peau non plus. Pensez donc, il y avait déjà Nokia, Motorola, Ericson, Sony, Alcatel... Qu'en est-il aujourd'hui ?

Ce qui fait la différence, c'est la rupture. Ou plutôt les ruptures. Technologique, d'usage, de modèle économique. Et c'est tout un écosystème qui en bénéficie. Vous voyez le parallèle avec Ignition ?

Aujourd'hui, Ignition fait vivre un écosystème de +1500 intégrateurs dans le monde. Et voici que les constructeurs y viennent. A commencer par ceux qui ont un intérêt particulier pour la convergence IT-OT. Voyez plutôt : Elecsys, eWon (maintenant HMS), Hilscher, Advantech B+B, Moxa, Opto22, Magnetrol, Bedrock... Tous intègrent la spécification Spark Plug / MQTT pour être compatible avec Ignition (en plus d'OPC-UA pour la plupart).

IT-OT : MQTT au coeur des stratégies des constructeurs
Il y a 2 technologies fédératrices : OPC-UA et MQTT. Ces mêmes technologies que nous avons adopté avant tout le monde (OPC-UA en 2010 et MQTT dès fin 2015, voir la newsletter) ; l'un des parents de MQTT, Arlen Nipper, en est l'instigateur d'ailleurs. Et il dit lui-même qu'Ignition est LA plateforme idéale pour la convergence IT-OT.

Voici une démonstration live d'Ignition et MQTT avec un broker dans le cloud :




Mais la ICC2016, ce sont aussi des retours d'expérience. Plusieurs dizaines de compagnies ont proposé des projets réalisés avec Ignition. 12 finalistes et 6 d'entre elles ont été récompensées.

Je retiendrai pour ma part celle de CANBERRA qui utilise Ignition comme base pour son outil HORIZON (voir le showcase). Le projet met en oeuvre Ignition et son SDK gratuit pour développer un driver pour OPC-UA avec des fonctions d'autodécouverte et de création automatique de tags (comme avec MQTT Spark Plug).

CANBERRA utilise Ignition pour son produit HORIZON
Voici ce que dit la fiche produit :
"Horizon brings together OPC-UA and SCADA technologies to provide a robust and open platform that can meet your supervisory needs today and well into the future. Horizon is not just a product, it’s an open platform for CANBERRA’s specialized radiological instrumentation which can be used to create a variety of solutions for our customers."

Le produit commercial développé est visible ici RAD_MONITORING_HORIZON.

Enfin, la ICC est l'occasion de parler produit et feuille de route, la fameuse roadmap. Il y a 10 ans, nous avions déjà 10 ans d'avance sur le marché.

Ignition ? Always 10 years ahead the hype!


Mais lorsqu'il s'agit de parler roadmap, il est bien difficile de prédire ce que sera le système dans 3/5 ans. Ce qui est certain, c'est que nous aurons toujours de l'avance...

Roadmap Ignition 2017

La version 7.9 est donc la version actuelle (disponible le 12 octobre prochain). Elle apporte essentiellement les fonctions distribuées (tags, alarmes, historiques distribués), un revamping du serveur web de la gateway (html5, responsive), une version pour ARM (compatible ARMV7 et V8 donc avec le Raspberry PI 3). Pour en savoir plus sur la V7.9, télécharger la datasheet Ignition v7.9 (EN).

Dès les prochains mois (2017Q1), une version embedded noté SPARK d'Ignition sera disponible pour des bases ARM, fonctionnalités limitées (nous consulter) avec mise en réseau automatique grâce aux fonctions distribuées de la v7.9. L'idée est d'avoir des Ignition Spark diffus qui alimentent un serveur central. La mise en réseau sera performante (Gateway Network) et sécurisée (Security Zone).
Le pervasive computing comme je l'ai découvert grâce à Lou Gerstner en 2001 (http://www.informit.com/articles/article.aspx?p=165227).

La version 8 d'Ignition apportera un nouveau module HTML5 ; il ne remplacera pas l'actuel client Vision mais viendra le compléter. Les performances et les fonctionnalités seront au rendez-vous (je sais de quoi je parle;) ), les développeurs ne devraient pas être déroutés... Le Designer sera toujours là. Les fonctionnalités de mise en réseau (services distribués) seront encore plus présentes, plus puissantes mais toujours plus simples de mise en oeuvre.

Au-delà... beaucoup de pistes ouvertes. L'adoption des standards devrait dicter tel ou tel développement. Mais dans 2/3 ans, qui du machine learning ou du NoSQL sera toujours d'actualité ? Ce qui est sûr, c'est que l'on travaillera toujours sur la performance et la scalabilité. Mais donnons-nous rendez-vous dans 12 mois à la ICC2017. Chiche ?

D'ici là, voici ce qu'il faut retenir :
  • Ignition V7.9 est disponible dès le 12 octobre 2016
    • Version Long Term Supported jusqu'en octobre 2021
    • Version ARM et ARM Embedded (SPARK)
    • Scalabilité (scale-out) avec les services distribués
    • Nouvelle page web de la gateway HTML5
    • Nouveaux outils de diagnostique
  • MQTT et OPC-UA à tous les étages chez les constructeurs comme eWon, Moxa, Elecsys, Opto 22, IT MATION EdgeWare et bien d'autres
  • Ignition toujours plus déployé (croissance moyenne de 61% par an depuis 2010)
  • Le SDK est un outil incroyable pour développer le potentiel de la plateforme au profit de vos besoins (voir use case Canberra)


vendredi 12 février 2016

Internet des Objets et Industrie

Concentration

Depuis plusieurs mois, il ne se passe pas une semaine sans une annonce autour des IoTs, que ce soit dans le domaine des gadgets, des applications d'entreprise ou bien encore de l'industrie.
Je ne vous ferais pas l'historique tant les sources de qualité sont nombreuses et facilement accessibles grâce à notre ami commun, Google.

Ce qui m'intéresse aujourd'hui, c'est plutôt les annonces qui concernent directement le secteur de l'industrie...

Vous avez du lire que KEPWARE a été racheté par PTC, si non, lire ici http://www.ptc.com/news/2015/ptc-to-acquire-kepware. Selon PTC, c'est pour épauler sa stratégie des IIoT et plus particulièrement compléter son offre ThingWorx®. Société qui elle même avait été rachetée en 2014 par PTC (http://www.lemondeinformatique.fr/actualites/lire-ptc-cible-l-internet-des-objets-en-rachetant-thingworx-56243.html).

D'ailleurs, vous remarquerez que l'on parle de PTC et ThingWorx® sur des sites liés à l'informatique, mais point de Kepware. C'est un signe intéressant de rapprochement des deux mondes et de fusion des technologies, le chantre même des IoTs, c'est-à-dire l'ubiquité et l'utilisation des standards.

Ce qui me gène dans ces consolidations (et il y en aura beaucoup d'autres à venir dans les prochains mois, je vous l'affirme), c'est la perte d'indépendance pour les utilisateurs et la main mise des grands opérateurs des solutions en end-to-end !
Notre futur dans l'atelier va-t-il se limiter à Siemens, Schneider, GE (voir le rapprochement GE/PTC sur les IoTs justement), Rockwell ? J'ose espérer que non et que la clairvoyance des clients jouera un rôle dans cet échiquier.

Ignition et les IoT pour l'industrie (IIOT)

Pour ma part, je vous annonce qu'Ignition jouera également son rôle en tant que solution agile pour les IoTs avec des annonces dans les prochains jours. Ce sera notre contribution pour libérer les intégrateurs et les utilisateurs du joug de ces immenses entreprises qui usent de leur monopole.

Pour anticiper un peu les choses, voici un petit rappel de ce que l'on peut déjà faire avec Ignition dans le domaine des objets internet communicants grâce aux web services, qui sont finalement une des composantes des IoTs :


Ignition : ONE PLATFORM, UNLIMITED POSSIBILITES

Comme vous avez pu le voir, le module pour les IOT d'Ignition repose sur le protocole MQTT.

Pour la petite anecdote, ce nouveau module que nous vous présenterons fin février a été développé par Arlen Nipper, ni plus ni moins que le coauteur du protocole MQTT (regardez sa présentation TED : https://www.youtube.com/watch?v=qA1Nt_0XomY).

En septembre dernier, j'ai rencontré Arlen lors de la Ignition Community Conference à Folsom, CA. Il a fait une présentation incroyable du potentiel de MQTT associé à la plateforme Ignition.

Arlen Nipper (Cirrus Link/MQTT)

Arlen a confessé être très impressionné par Ignition. Que le créateur du protocole MQTT choisisse Ignition pour construire sa propre solution, cela est la meilleure traduction de la solidité et de la souplesse de la plateforme.

Définitivement, Ignition, c'est ONE PLATFORM, UNLIMITED POSSIBILITES.





vendredi 3 octobre 2014

Futur Proof, let’s do it again

Il y a bien longtemps que je n’ai pas pris le temps de poster un petit message. Un an...Je profite d’un énième déplacement entre Paris et Aix-en-Provence en TGV pour rédiger cette note.

Alors de quoi s’agit-il ?

De supervision bien sûr et de système d’exploitation. Windows 10 Technical Preview en l’occurrence.

Une des grandes qualités d’Ignition, c’est sa très faible adhérence au système d’exploitation. C’était d’ailleurs l’un de mes thèmes préférés lorsque j’ai introduit Ignition en France en 2010. C’était un des 5 atouts : 100% multi plateforme, 100% web server, 100% data centric, 100% évolutif, 100% facile. Voir la vidéo de l’époque :



Cela reste encore plus vrai aujourd’hui.

Donc hier, le 1er octobre 2014, Microsoft a annoncé la sortie prochaine de la nouvelle version de Windows, Windows Threshold ou plutôt Windows 10 comme cela semble être confirmé par la présentation ici : http://bit.ly/1vx8QmU.

Alors je n’ai pas résisté à l’envie de vérifier que cet atout « faible adhérence à l’OS »  reste toujours d’actualité. J’ai donc téléchargé la technical preview de Windows 10 et créer une machine virtuelle… Et fais ce petit film dans le TGV ce matin pendant que certains dorment (TGV de 6H19 gare de Lyon, uhhh) ou encore sont à la voiture-bar (j’irai après ce billet, sûr).




Que peut-on en conclure ?

Je ne porterai pas de jugement sur Windows 10, si ce n’est que l’installation a été très rapide (15-20’) et que globalement on retrouve ses petits si on vient de Windows 8/8.1 (la mise à jour devrait être gratuite dans ce cas, il paraît). Un meilleur cru que Windows 8 et son interface métro… mais on en reparlera (oui vous savez l’adoption de technologies Microsoft un peu trop hâtive par nos confrères comme Silverlight,  Métro, le multitouch… qui ne survivent ps au marché et aux versions successives de Windows).

C’est toujours avec la même envie que j’installe Ignition ; toujours la même chose, certes, mais tellement simple et toujours ok, jamais eu un raté depuis…2005 !

Concernant Ignition
-       installation toujours aussi rapide et sans surprise un vrai confort (surtout pour le commercial que je suis, je fais des centaines de fois cette opération en live chez les clients chaque année…un pur bonheur)
-       fonctionnement de la démo supervision/mes sans problème
-       fonctionnement de MySQL sans problème non plus

Si j'étais
Si j’étais intégrateur ou utilisateur final d’une supervision, à la lecture de ce billet, la première chose qui me viendrait à l’esprit, c’est que mon commercial préféré va encore me vendre une nouvelle version de son scada compatible avec Windows 10. Et que je n’aurais pas le choix. Et que cela nécessitera une nouvelle clé de développement (et la gestion de plusieurs versions et de plusieurs clés…). Et que la migration va encore être l’occasion de grosses suées et pertes de temps considérable.

Si j’étais un responsable informatique, j’aurais à faire face à la réticence au déploiement de Windows 10 dans les ateliers pour les raisons ci-dessus. Et pourtant cela me faciliterait grandement la tâche, car nécessaire pour simplifier la gestion de mon parc, le rendre moins vulnérable aux attaques virales (oui, même dans les ateliers, vous avez dit Stuxnet…) et profiter des avancées que me procure le nouveau Windows Server 2014. Sans parler des ilots de machines non conformes aux règles d’exploitation de l’entreprise.

Si ‘étais un client et que je demandais conseil à ma direction informatique ou à mon intégrateur préféré, que penserait-elle d’un système industriel :
  • compatible avec Windows 2000 (voir vidéo) jusqu’à Windows 10, qui discute avec toutes les bases de données SQL parmi lesquelles IBM DB2, Firebird, MySQL, PostgreSQL et même SQL Server 2014
  • disponible sur les smartphones et tablettes (voir les vidéos
  • qui n’utilise que des standards compatibles avec l’entreprise comme SQL, HTTP, HTTPS, ssl, OPC-UA (non plus de DCOM svp, merci) , services web, java, python, active directory, ldap, sso
  • qui utilise mes bases de données (oui, je peux conserver mes serveurs, mes modèles, mes plans de sauvegarde)
  • qui s’installe en 2 minutes
  • qui se restaure en 2 minutes (merci pour les crash recovery ; une machine neuve et 5 minutes après on est reparti)
  • qui est un serveur d’applications full web (et donc exécute plusieurs projets en simultané (comme ceux qui existent déjà dans l’entreprise, avec les mêmes technologies)
  • dont l’outil de développement est sur le serveur, donc toujours à jour (gratuit, sans dongle, accessible à plusieurs en simultané, sur le même projet ou des projets différents, et par le web)
  • qui intègre en une seule plateforme unifiée tout ce dont j’ai besoin : HMI, supervision, data historian, reporting, MES, middleware d'entreprise
  • dont le mode de licence est illimité en nombre de variables et de clients et de projets
  • qui me permette de réaliser 100% de mes besoins fonctionnels
  • qui fonctionne aussi dans le cloud ou en hybride
  • etc.
Je vous laisse lui répondre.

Mais si la seule chose que vous recherchez c’est la tranquillité d’esprit vis-à-vis des changements de système d’exploitation (futurproof) ou de l'hétérogénéité de votre parc informatique, ou que vous prévoyez déjà le passage à Windows 10 (ou tout autre OS comme Linux, OS X, HP-UX), cette simple, mais excellente raison mérite qu’on se rencontre. C’est par ici.


mardi 4 septembre 2012

Jump to the next curve

J'aime assez l'idée que nous sommes en avance sur les autres. Et cela est indéniable.

2 ans déjà que nous avons un serveur OPC-UA au coeur de notre produit Ignition. Les autres éditeurs et constructeurs commencent à suivre.
Mais nous sommes toujours les seuls à avoir une solution multi plateforme reposant sur un serveur web et les bases SQL. Et depuis la version 7.4, la modélisation objet permet d'aller encore plus loin, plus vite. Avec plus de qualité.

Le tout bien sûr avec un mode de licence qu'aucun autre confrère ne peut concurrencer.

Sommes nous des visionnaires ? Oui, je le pense sincèrement.

Pour l'anecdote, et pour les visionnaires, cet été, j'ai écouté une émission sur France Inter (on verra ça demain) ; celle du 10 aout était particulièrement intéressante : entre science et fiction, les visionnaires. Je vous invite à écouter le podcast Réecouter cette émission mais je vous livre ici une interview d'Arthur C. Clark datant de 1964 (à partir de 1'30) qui a particulièrement retenue mon attention :


Alors, attention, qu'on ne ne fasse pas dire ce que je n'ai pas dit. Je ne suis pas Arthur C. Clark.
Mais j'aime l'idée que nous sommes des visionnaires.

Jump to the next curve and reboot your brain en choisissant Ignition.


lundi 27 août 2012

Pourquoi j'aime Ignition

D'accord, ce n'est pas très objectif, mais quand même, je dois avouer que j'ai toujours tellement de plaisir à lancer Ignition™depuis n'importe où et faire des démonstrations et à (dé)montrer aux clients et prospects combien il est agréable de travailler avec un outil reposant sur 100% des standards informatiques. Ceux qui sont dans votre entreprise, que vos informaticiens maitrisent (et adorent) et que tout jeune diplômé ou non saura dompter très facilement.

Au cours de l'été, j'ai eu à faire des démonstrations (oui, même pendant les vacances, je ne peux pas résister à une démo ;)) et surtout récemment à aider un client en mise en service qui avait besoin d'une fonction simple pour suivre le fonctionnement de ses escalades d'alarmes : envoyer un email avec un destinataire en copie voire copie cachée.

Il existe bien une fonction standard Ignition (system.net.sendEmail) mais elle est relativement basique ; alors un coup de Google (send email python) et on tombe sur cela :

# Import smtplib to provide email functions
import smtplib

# Import the email modules
from email.mime.text import MIMEText

# Define email addresses to use
addr_to   = 'user1@example.com'
addr_from = 'user2@example.com'

# Define SMTP email server details
smtp_server = 'mail.example.com'
smtp_user   = 'test@example.com'
smtp_pass   = '1234567889'

# Construct email
msg = MIMEText('This is a test email')
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = 'Test Email From RPi'

# Send the message via an SMTP server
s = smtplib.SMTP(smtp_server)
s.login(smtp_user,smtp_pass)
s.sendmail(addr_from, addr_to, msg.as_string())
s.quit()
Le code Python est simple et lisible et je décide de l'essayer en le modifiant avec ajout d'un destinataire en copie et message de type html. Là encore, une simple recherche sur la fonction SMTPLIB de Python me donne des tonnes d'informations : la documentation officielle de Python bien sûr et plein d'exemples simples ou plus complexes mais qui sont très faciles à adapter grâce à la simplicité de la syntaxe de Python.

Un test dans mon éditeur :

Et voilà l'email envoyé :
Il ne reste plus qu'a copier le code et à l'insérer dans un script Ignition™- en l'occurrence, sur changement d'état d'une synthèse d'alarme - pour être alerté en temps réel des évènements en plus de pouvoir prendre le contrôle du système à distance, car je le rappelle, Ignition™ est full web. Et uniquement full web.

On a coutume de dire qu'avec Ignition™, si vous pouvez l'imaginer, vous pouvez le réaliser. C'est ce sentiment de liberté qui fait la force de cet outil.

Le plus agréable dans tout cela ? l'email de remerciement du client et la satisfaction de l'avoir aidé en 2 requêtes Google ;) et moins de 5 minutes chrono.

Bonne rentrée à tous, elle sera chaude en ce qui nous concerne.

mardi 19 juin 2012

Mettre en place une application de TRS et Downtime full web en moins de 10 minutes ? C'est possible.
Voici comment.


Mais pourquoi mettre en place un TRS ?

La mise en place d'indicateurs normalisés de performances du type TRS et TRG est devenue une nécessité pour piloter avec efficacité la production.

Combinés au suivi des arrêts, ces indicateurs deviennent des éléments clés de l'amélioration de la productivité et une aide précieuse aux démarches LEAN et Six Sigma en permettant une collaboration efficace entre tous les départements (fonction scheduling).

Avec Ignition™ MES - OEE Downtime, la mise en place d'une solution de suivi du TRS et des arrêts n'a jamais été aussi simple ni aussi efficace.

Découvrez en quelques minutes les avantages d'Ignition™ et laissez vous convaincre :

  • TRS et Downtime en temps réel
  • planification des OFs
  • module de reporting intégré
  • module d'analyse avec drilldown, drill through... intégré
  • hmi, scada, mes avec le même serveur
  • accessible sur smartphones et tablettes
  • toutes les données (config, collecte) en base SQL ouverte
  • intégration ultra simple au SI (http/https, sql, java, python, opc-ua)
  • variables illimités
  • projets illimités
  • clients illimités
  • multi plateforme
  • full web


mardi 22 mai 2012

Services Web et Supervision Industrielle


Les services web sont un des moyens d’interfaçage entre systèmes informatiques. Ils servent à connaître la météo du lendemain, la valeur des actions en bourse ou d’un voyage en TGV…bref, tout un panel de services disponible publiquement ou non.
Mais dans le domaine de la supervision industrielle et du MES, les services web peuvent servir de middleware entre les ERP et la supervision.

Depuis un certain temps, nous avons réfléchi à l’intégration des services web dans Ignition™ mais nous avons buté sur 3 problèmes :

  1. Il existe plusieurs standards de services web. Trop.
  2. Le format des données est très variable et parfois complexe avec des imbrications de structures
  3. Les réponses peuvent comporter un nombre variable de données à chaque requête

Du point de vue Ignition™, comment traiter ces données complexes en quantité variable et les rendre aussi simple à utiliser et compatibles avec les SQLTags®, les SQLtag® History ou toute autre base de données ? Si vous y réfléchissez, vous verrez que le problème peut rapidement vous donner des cheveux blancs.

Nous avons récemment (Ignition™ version 7.4.2) trouvé une solution simple en intégrant la librairie

Python pour les web services : SUDS

En deux lignes de code Python, vous pouvez interagir avec tout service web reposant sur SOAP et qui fournit des fichiers WSDL. Mais en pratique, qu’est-ce que cela veut dire ?

Les services web démystifiés

Les services web ne sont rien d’autre que des pages web pour les machines. Imaginez un serveur web (comme celui qui héberge ce site), un client web (votre navigateur) et à votre place (vous qui contrôlez le navigateur web et interprétez le contenu), il y a un programme qui fait ce travail.

Le contenu d’une page web est décrit avec du code HTML (du texte), dans un service web il s’agit de XML (eXtensible Markup Language) qui est aussi du texte. HTML permet de décrire comment un contenu doit être affiché dans un navigateur (on parle de rendu), XML permet lui de décrire de manière structurée des données à échanger.

SOAP (Simple Object Access Protocol) est le protocole d’échange entre le serveur web et un client, le contrat entre le serveur et le client qui repose sur XML.

WSDL (Web Services Description Language) est la page web d’accueil (XML) que le serveur envoie en guise de réponse au client à la question « Comment puis-je te parler ? » et « qu’elles peuvent être tes réponses ? »

La libraire Python SUDS

La libraire Python SUDS peut interroger un serveur et analyser le fichier WSDL et afficher en clair comment poser les questions pour invoquer les méthodes. Par exemple, on pourra utiliser un service web pour retrouver un ordre de fabrication, renseigner l’OF avec l’état actuel de la production et le renvoyer à l’ERP.

Ce qui est incroyable avec la librairie SUDS, c’est que cela fonctionne ! Les autres librairies que nous avons essayées n’ont jamais été aussi simples et performantes.

Ce qu’il faut savoir, c’est que le format XML peut être structuré de manière arbitraire. Il existe donc plusieurs formats, chacun essayant de régner en maître, par exemple WSI-BP (Web Services Interoperability – Basic Profile). C’est probablement l’une des raisons des échecs de la plupart des librairies que nous avons testées. Excepté SUDS.


Si on regarde l’exemple ci-dessus, on voit SUDS en action dans le « script playground » d’Ignition™ :

  1. On importe d’abord la librairie
  2. On créer une instance cliente sur un serveur et on demande le contrat « calculator »
  3. On affiche la « traduction » de SUDS qui indique qu’il y a 4 méthodes (add, divide, multiply, subtract) qui chacune prennent 2 arguments de type float
  4. On utilise ces informations pour effectuer notre calcul à l’aide de l’instruction print client.service.divide(33.33, 11.11)
Le code (nécessite Ignition™ 7.4.2 minimum) :
from suds.client import Client
client = Client("http://soaptest.parasoft.com/calculator.wsdl")
print client
print client.service.divide(33.33,11.11)

4 lignes. C’est toute la beauté de SUDS.

Avec les fonctions de script Python d’Ignition™ - et si besoin l’appel de classes Java ;) - on peut utiliser très simplement les services web quel que soit le format des données.

SUDS est une librairie très riche, mais vous n’avez pas besoin de  beaucoup plus que ce que vous avez ici pour faire des choses magiques. Au cas où, la documentation SUDS ici et les PyDocs ici.

SUDS et Ignition™ en action

Mieux qu'un long discours, regardez l'exemple en images animées.

Vous voulez essayer, téléchargez Ignition™, installez-le en 2 minutes et voilà !