Affichage des articles dont le libellé est middleware. Afficher tous les articles
Affichage des articles dont le libellé est middleware. Afficher tous les articles

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)


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à !

vendredi 22 octobre 2010

3" pour l'installer, c'est bon pour les petites applications !

J'ai éclaté de rire il n'y a pas longtemps.
Je discutais avec un "spécialiste" de l'informatique industrielle et analyste du milieu et lui ai demandé si il avait vu notre site web. Il m'a répondu "oui", alors je lui ai demandé ce qu'il en avait retenu. 
"C'est surement une bonne solution pour les petites applications !"... Incrédule, je lui ai demandé de préciser ce qui l'avait conduit à cette conclusion. Sa réponse ? "Il ne faut que 3 minutes pour l'installer !".

Wow ! Si j'avais su qu'on jugerait les possibilité d'un logiciel à sa durée d'installation, j'aurai demander à mettre des boucles d'attente dans le script d'installation. 3 ou 4 heures voire jours poour installer Ignition, comme les autres confrères. Why not...
Blagues à part, je lui ai simplement cité quelques exemples d'applications (qu'il aurait du voir sur le site ;)) déployées avec Ignition. Il a vite compris qu'un simple serveur Ignition pouvait déployer des centaines de clients, se connecter à des dizaines de bases de données, lancer un ou plusieurs Designers concurrents, faire office d'historian et de serveur de rapports, se satisfaire de tous les OS et bien d'autres choses encore - tout cela pour un seul coût de licence serveur.
Mais il a aussi compris qu'Ignition pouvait répondre à de petites applications.
La vérité est que lorsque vous êtes habitué aux technologies des années 90, son enfer de DLL et des systèmes qui ajoutent patch sur patch pour fonctionner, il n'est ps étonnant d'être étonné par ce que peuvent produire les technologies modernes.

Installation d'Ignition en vidéo : http://www.youtube.com/watch?v=zqoBfjfasPs