This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Attribution: Jean Vieille Work: ISA8895 Implementation Section: Interoperability Chapter: B2MML Language: Français Version: V3 - 05/2011 Jean Vieille www.syntropicfactory.info j.vieille@syntropicfactory.info Research community www.controlchainmanagement.org Consulting group www.controlchaingroup.com Agenda XML et B2MML Eléments B2MML Structure B2MML/BatchML Extensions utilisateur Evolution 5_20_ISA8895_Interoperability_B2MML 2 ISA95, XML et B2MML ISA-95 est un standard pour l'échange de données industrielles Ø Modèles UML pour décrire des structures Ø Définition de messages transactionnels Ø Ne définit pas de technologies pour l'utilisation des ces modèles et définitions XML est un standard pour l'échange des données Ø Langage syntaxique pour transporter l'information (fichiers ou autres moyens) B2MML est conçu pour une spécification pour échanger l'information Ø Utilise le langage XML du W3C § Applique la spécification XML Schema 1.1 du X3C Ø Implémente le standard ANSI/SA-95 ­ ISO/IEC62264 5_20_ISA8895_Interoperability_B2MML 3 XML eXtensible Markup Language Ø World Wide Web Consortium (W3C) Extensible Markup Language (XML) 1.0 Ø http://www.w3.org/TR/REC-xml/ Spécification annotée Ø http://www.xml.com/axml/testaxml.htm Tutorial Ø http://www.w3.org/TR/xmlschema-0/ 1/ 2/ Langage à la mode qui: Ø Décrit les données, pas leur présentation Ø Est écrit en texte standard, indépendant des plateformes Ø Peut être dérivé pour créer des langages spécifiques 5_20_ISA8895_Interoperability_B2MML 4 XML XML définit des balises de données propres , , , Extensibles par l'utilisateur , l Des jeux de balises et des strsutures spécifiques à un domaine ... Ø Permettent la validation des documents XML Ø Facilitent les échanges de données en vue de l'interopérabilité Ø Définis en utilisant les Schémas de Définition XML (fichier XSD) ... définissent des vocabulaires qui deviennent eux-même des langages xML Ø B2MML - ISA 95 Business To Manufacturing Markup Language Ø BatchML - ISA 88 Batch Markup Language Ø MathML - Mathematical Markup Language Ø CML - Chemical Markup Language Ø OAGIS - Open Applications Group Integration Specification 5_20_ISA8895_Interoperability_B2MML 5 Elements Exemples de syntaxe Les données sont incluse entre des étiquettes Ø Etiquettes de début et fin requises content Ø Element racine Les données peuvent être imbriquées (structurées) dans une hiérarchie Ø Nombre illimité de niveaux ABC Co. 100 6 E13 9 J14 5_20_ISA8895_Interoperability_B2MML 6 Attributs vs Elements Les attributs sont associés aux éléments Ø Syntaxe : element sans attribut contenant un élément avec attributs Ø 19990508-04 Y22 5_20_ISA8895_Interoperability_B2MML Exemple: 7 XML Schema Schéma XML = Un vocabulaire XML pour exprimer des règle de gestion des données 5_20_ISA8895_Interoperability_B2MML 8 Example Extrait d'un document XML 01932910 Poudre de perlinpinpin A recycler 25 Amount peanuts Ces données sont-elle valides? Ø Seules des balises légales doivent être utilisées Ø ID et status doivent être unique? Ø Description et quantité peuvent être multiples Ø Tous les éléments sont facultatifs sauf l'ID Ø Les éléments de données doivent apparaitre dans l'ordre indiqué Ø La structure doit être conforme Ø ... Un schéma XML permet d'exprimer ces contraintes 5_20_ISA8895_Interoperability_B2MML 9 Document XML (.xml) 01932910 Poudre de perlinpinpin A recycler 25 peanuts XML Schema validation Les données Sont correctes XML Schema Declarer un élément "MaterialLot" qui doit contenir Un élément obligatoire unique "ID" de type string Un élément obligatoire unique "Material" de type "string" Un élément faculatif unique "Status" de type string membre d'une liste définie de valeurs Un élément facultatif multiple "Quantity" contenant lui-même -- Un élément obligatoire unique "Value" de type "real" -- Un élément obligatoire unique "UOM" de type "string" 5_20_ISA8895_Interoperability_B2MML 10 Représentation dans XMLSpy Name of an element or element type Indicates fixed order of elements Indicates elements Indicates 1 instance only Indicates 1 to many instances Indicates 0 or 1 instance only Indicates 0 to many instances Indicates selection of alternatives Indicates contained elements Indicates no contained elements 5_20_ISA8895_Interoperability_B2MML 11 Exemple : Element Person du Schema Personnel Apparence graphique XMLSpy. 5_20_ISA8895_Interoperability_B2MML 12 Exemple : Element Person du Schema Personnel Schema 5_20_ISA8895_Interoperability_B2MML 13 Exemple : Element Person du Schema Personnel ­ Message XML xBoYz This is an example of Personnel Information ... #00001 Jean Vieille ISA95 Guru Any Enterprise ... 5_20_ISA8895_Interoperability_B2MML 14 Agenda XML et B2MML Eléments B2MML Structure B2MML/BatchML Extensions utilisateur Evolution 5_20_ISA8895_Interoperability_B2MML 15 Critères de conception B2MML Structure des documents Ø B2MML définit des éléments racine non précisés par la norme ISA-95 pour permettre une utilisation plus flexible § Granularité des structures racines plus fine que les modèles complets § EchangeISA-95 Modèle de types d'information différents dans un même Elément Personnel document Person non défini Class 0..n 0..n 0..n Is tested by a > 0..n < Defined by Has properties of > 0..n Is tested by a > dans ISA95 Has values for > Qualification Test Specification Defines a procedure for obtaining a > 0..n 0..n Is tested by a > 0..n 0..n < Records the execution of 0..n Qualification Test Result 0..n Personnel Class Property 0..n < Maps to Person Property 5_20_ISA8895_Interoperability_B2MML 16 Attributs Constituent une alternative à l'imbrication d'éléments Ils sont peu utilisés dans B2MML Ø Utilisation généralisée des éléments Ø Décisions de conception, basées sur des soucis d'extensibilité Ø Utilisés pour contenir les valeurs pour les extensions des types de données d'énumérations Enumeration List with "Other" Holds the user extensions to the enumeration lists 5_20_ISA8895_Interoperability_B2MML 17 Cardinalité La plupart des éléments ont une multiplicité 0.., différente de celle, parfois plus restrictive de la norme ISA 95 Ø Permet aux documents de contenir seulement l'information désirée Ø Permet de traiter des situations non envisagées par le standard (lorsque des valeurs multiples ont un sens) Descriptions Ø Descriptions multiples permises (pour traiter la localisation linguistique par exemple) 5_20_ISA8895_Interoperability_B2MML 18 Indirection des types XML définit un grand nombre de types simples Ø String, DateTime, Numeric... Ø Utilisés dans B2MML pour les élément ID, Description, ValueString... Les types simple exprimé B2MML font référence à des types simples commun B2MML Ø Le type B2MML « Description » § est du type B2MML« DescriptionType » Qui est du type UN/CEFACT« TextType » Qui est du type W3C XSD « string » (+ attributs) 5_20_ISA8895_Interoperability_B2MML 19 UN/CEFACT Core Component (ISO150005) Depuis la version 4, B2MML utilise les types de base de la norme ISO15000-5 (UN/CEFACT ebXML / Core Components) Les types suivants sont définis (en gras: utilisés) Ø (AmountType) - Valeurs monétaires Ø (BinaryObjectType) ­ objets binaires (ipages, pdf...) Ø CodeType - Enumérations Ø DateTimeType ­ Données de date / temps Ø IdentifierType - Identificateurs Ø (IndicatorType) ­ valeurs binaires Ø (MeasureType) Ø (NameType) Ø NumericType ­ valeurs numériques entières (Priorité) Ø (QuantityType) Ø TextType ­ champs texte (Descriptions) 5_20_ISA8895_Interoperability_B2MML 20 Espaces de noms Les espaces de noms permettent de définir des types et des éléments sans risques de conflits Depuis la version V04, les espaces de noms suivants sont définis: Préfixe b2mml xsd: URI http://www.wbf.org/xml/B2MML-V05 http://www.w3.org/2001/XMLSchema Usage Types B2MML Types Utilisateur Types W3C Extended: http://www.wbf.org/xml/B2MML-V05-AllExtensions 5_20_ISA8895_Interoperability_B2MML 21 Critères de conception B2MML Elément "Any" (jusqu'à la V04) Ø Inclus dans tous les élément B2MML Ø Permet à l'utilisateur d'ajouter des extensions à la suite des éléments B2MML Propriétés Ø Correspondent à la définition des propriétés de la norme Ø Apporte une forme d'extensibilité (voir plus loin) Valeurs Ø De multiples valeurs peuvent être utilisées pour des informations telles que le poids (par exemple le nombre et le poids de homards dans la prise) 5_20_ISA8895_Interoperability_B2MML 22 Agenda XML et B2MML Eléments B2MML Structure B2MML/BatchML Extensions utilisateur Evolution 5_20_ISA8895_Interoperability_B2MML 23 Common schemas Schema B2MML-V05-Common Usage Tous les éléments de définition commun: énumération, types de base simple et complexes La définitions du standard UN/CEFACT Le B2MML-V05-CoreComponents B2MML-V05-TransactionProfile (user) Extension schemas Schema B2MML-V05-AllExtensions Usage Consolide toutes les extensions dans un seul schéma de façon à n'avori à inclure qu'un seul schéma (restrictions XML Schema). Les extensions des types communs Les extensions des types définis pour ISA-95 Les extensions des types définis pour ISA-88 part 2 Les extensions des types définis pour ISA-88 part 4 Les extensions des types définis pour ISA-88 part 3 25 B2MML-V05-CommonExtensions B2MML-V05-Extensions BatchML-V05-BatchInformationExtensions BatchML-V05-BatchProductionRecordExtensions BatchML-V05-GeneralRecipeExtensions 5_20_ISA8895_Interoperability_B2MML ISA95 schemas Schema B2MML-V05-Personnel B2MML-V05-Equipment B2MML-V05-PhysicalAsset B2MML-V05-Material B2MML-V05-ProcessSegment B2MML-V05-OperationsCapability B2MML-V05-OperationsDefinition B2MML-V05-OperationsPerformance B2MML-V05-OperationsPerformanceTypes B2MML-V05-OperationsSchedule Usage Modèle ISA-95 Personnel Modèle ISA-95 Equipment Modèle ISA-95 Physical Asset Modèle ISA-95 Material Modèle ISA-95 Process Segment Modèle ISA-95 Capability Information Modèle ISA-95 Operations Definition Modèle ISA-95 Operations Performance Modèle ISA-95 Operations Schedule 5_20_ISA8895_Interoperability_B2MML 26 ISA95 schemas Deprecated Schema B2MML-V05-ProductionCapability B2MML-V05-ProductDefinition B2MML-V05-ProductionPerformance B2MML-V05-ProductionPerformanceTypes B2MML-V05-ProductionSchedule Usage Modèle ISA-95 Production Capability Modèle ISA-95 Product Definition Modèle ISA-95 Production Performance Modèle ISA-95 Production Schedule 5_20_ISA8895_Interoperability_B2MML 27 ISA88 Schemas Schema BatchML-V05-BatchInformation BatchML-V05-BatchProductionRecord BatchML-V05-GeneralRecipe Usage Modèles ISA-88 part 2 Modèle ISA-88 part 4 Modèles ISA-88 part 3 5_20_ISA8895_Interoperability_B2MML 28 Includes and Imports B2MML Core Components (no NameSpace) Import Include Import in Extended NameSpace B2MML Common Extensions (Extended NameSpace) B2MML Common (B2MML NameSp ace) Import in B2MML NameSpace BatchML General Recipe Extensions (Extended NameSp ace) BatchML Inf ormation Extensions (Extended NameSp ace) BatchML Batch Production Record Extensions (Extended NameSpace) B2MML Extensions (Extended NameSpace) B2MML AllExtensions (Extended NameSpace) Import in Extended NameSpace B2MML Production Perf ormance Types (B2MML NameSpace) B2MML Operations Perf ormance Types (B2MML NameSpace) BatchML General Recipe (B2MML NameSp ace) BatchML Inf ormation (B2MML NameSpace) B2MML Production Schedule (B2MML NameSp ace) B2MML Production Perf ormance (B2MML NameSpace) B2MML Operations Schedule (B2MML NameSpace) B2MML Operations Perf ormance (B2MML NameSpace) B2MML ­ Other ISA95 models (B2MML NameSpace) BatchML Batch Production Record (B2MML NameSp ace) 5_20_ISA8895_Interoperability_B2MML 29 Agenda XML et B2MML Eléments B2MML Structure B2MML/BatchML Extensions utilisateur Evolution 5_20_ISA8895_Interoperability_B2MML 30 Les extensions sont nécessaires L' ISA-95 Parts 1 & 2 définit des modèles de données et des attributs utilisables comme infrastructure de mise en oeuvre et suggère l'extensibilité: (ISA95 part 2) Ø La présente partie 2 de la norme a défini un ensemble minimum d'informations indépendantes de l'industrie comme des attributs. Il se peut, toutefois, que les valeurs relatives à tous les attributs puissent ne pas être requises selon l'utilisation réelle des modèles. Lorsque des informations supplémentaires, y compris des informations spécifiques à l'industrie et à l'application, se révèlent nécessaires, elles doivent être représentées comme des objets de propriété. Ce mécanisme est la capabilité d'extension référencée dans la Section 'domaine d'application' de la présente partie. Cette solution augmente la facilité d'utilisation par l'intermédiaire de l'utilisation des attributs normaux, et le recours aux propriétés permet souplesse et extensibilité. Cette disposition a été prise pour élargir le domaine d'application dans toute la mesure du possible. Les utilisateurs et éditeurs de logiciels devraient donc définir les propriétés applicables aux projets spécifiques, aux entreprises, aux industries et aux systèmes. La plupart des mise en oeuvre B2MML ont étendu les schémas avec des types complexes ou aménagés la base des schémas B2MML Ø Les utilisateurs B2MML ont demandé une méthode standard pour étendre les schémas. 5_20_ISA8895_Interoperability_B2MML 31 Options possibles pour les extensions Propriétés Ø Seul mécanisme d'extension prévu par la norme Element Any (removed) Ø Méthode originale d'extension B2MML Personnalisation des schémas de base Ø La modification des schémas de base est possible Ø Impose un agrément hors standard des systèmes concernés Groupes de Substitution Ø Nouvelle méthode d'extension disponible à partir de B2MML v0300 Ø Permet le partage formel des extensions de structures Ø Méthode recommandée 5_20_ISA8895_Interoperability_B2MML 32 Propriétés La norme ISA95 prévoit d'utiliser les propriétés pour traiter les données non prévues dans les attributs de base Ø B2MML définit les propriétés conformément à ISA-95 Ø Les schémas et structures standards ne sont pas modifiés Ø Certains experts recommandent de les utiliser en priorité Seules les ressources portent des propriétés Ø Ceci limite beaucoup leur utilisation à moins de créer des pseudodessources Les propriétés ne sont pas prédéfinies comme les schémas XML Ø Ce n'est donc pas une véritable technique d'extension dans l'esprit XML § Pas de validation: des propriétés méconnues par l'une des parties peuvent être échangées et pas nécessairement comprises 5_20_ISA8895_Interoperability_B2MML 33 Exemple de propriété Material Lot Attributes ID Description MaterialDefiniti onID Status Location StorageLocation Quantity Material Lot Properties pH Density Viscosity Material Lot Made up of 0..n Material Sublot 0..n Has values for 0..n Material Lot Property May be made up of sublots ID pH Density Viscosity pH Density Viscosity Description On peut utiliser les propriétés au lieu d'étendre le type MaterialLot pour inclure les attributs pH, Densité et Viscosité, Value 5 .942 6.53 QAMaterialTest Specification TS-94823 TS-83823 TS-29343 pH measurement Density of material Viscosity measurement 5_20_ISA8895_Interoperability_B2MML 34 Limitations des propriétés Ne traitent pas les données structurées (possible après révision ISA95) Un ensemble d'attributs prédéfinis pour chaque type de propriétés Syndrome de l'importance de la Données Ø "Ma donnée est trop importante pour être traitée comme une propriété, elle doit être un attribut de l'objet parent" Ø "Ces éléments d'information doivent être définis comme des attributs de telle sorte que les expéditeurs/récepteurs comprennent les données échangées et que l'on puisse bénéficier de la validation XML" Ø C'est un problème réel très courant Les exigences / préférences de conception vont imposer à certaines propriétés d'être traitées comme des attributs d'objets Les réalisations à ce jour ont révélé clairement que tous les besoins ne peuvent pas être couverts par les propriétés Quand les propriétés ne sont pas la bonne réponse, les schémas doivent être modifiés / étendus 5_20_ISA8895_Interoperability_B2MML 35 Solution partielle : encourager la publication de propriétés "standards" Une des faiblesses des propriétés est que leurs identifiants, types de donnée et étendues de valeur ne sont pas publiés en tant que partie des schémas du projet Des jeux de propriétés Standards/Recommendées pourraient être publiées au niveau ou sur la base Ø Des projets Ø De l'entreprise, Ø Du secteur industriel Ø Du vendeur de systèmes Ils pourraient être définis à part, ou en accompagnement de B2MML Nota: on pourrait s'acheminer alors vers une approche sémantique permettant une personalisation totale par opposition à l'approche canonique actuellemnt proposée 5_20_ISA8895_Interoperability_B2MML 36 Any Element (removed) Méthode originale d'extension B2MML Ø Utilise le dispositif standard W3C XML schema ##any Par ce moyen, on peut passer n'importe quels éléments de données dans le message XML à l'emplacement prévu par le schéma. Problème Ø Un schéma donné ne détermine donc pas entièrement le type de contenu attendu des messages qui peut varier d'un message à l'autre au gré de l'émetteur L'utilisation de l'élément Any n'est pas recommandée en raison des difficultés de partage des définitions d'extensions traitées dynamiquement Elle n'est plus possible avec B2MML depuis la V05 Ø 5_20_ISA8895_Interoperability_B2MML 37 Personnalisation des schémas La licence B2MML autorise les éditeurs et utilisateurs à modifier les schémas pour créer de nouveaux schémas utilisant ou non les éléments et types B2MML Ø On peut donc créer des schémas spécifiques aux besoins d'un projet ou d'une entreprise. Les systèmes utilisant des schémas personnalisés ne pourront interopérer directement avec d'autre systèmes Ø Nécessite une phase de conception pour intégrer les schémas propriétaires avec chaque système concerné. Cette option a été adoptée par de grandes entreprises Ø Pour traiter des problèmes d'iontéropérabilité non solubles de façon satisfaisante avec la spécification actuelle Le besoin de recourir à cette méthode décroit régulièrement avec l'évolution de la norme Ø Abstraction des structures avec la prochaine révisionen cours des structures) et de B2MML (mécanismes d'extension flexibles) 5_20_ISA8895_Interoperability_B2MML 38 Groupes de Substitution Nouvelle méthode d'extension disponible depuis la version v0300 développée pour les raisons suivantes: Ø Problèmes liés à l'élément Any: § Pas de validation syntaxique § Les extensions ne sont pas définies dans les schémas § Il n'est pas possible d'utiliser les espaces de noms pour distinguer les informations étendues dans les messages XML Ø Les premières mises en oeuvre ont utilisé des méthodes variées en l'absence d'instructions claires Ø Les utilisateurs ont exigé une recommendation pour les extensions qui permette § La validation XML des extensions § le fonctionnement avec les outils de développement comme Microsoft .Net Studio Méthode recommandée pour les extensions 5_20_ISA8895_Interoperability_B2MML 39 Extensions depuis la version V0300 Les schémas sont modifiés pour supporter les groupes de substitution Addition d'un schema Ø B2MML-VXX-Extensions Ø Contient 1 groupe de substitution group pour chaque type complex qui peut être étendu § Ce groupe initilisé sans contenu peut être édité pour étendre les types complexes B2MML Tous les schémas existants sont modifiés Ø Import du schéma d'extension Ø Inclusion avant chaque instance de l'élément Any d'une référence au groupe de substitution défini dans le schéma d'extension dded Dans les documents XML B2MML Ø Les éléments d'extension sont clairement identifiés avec un préfix d'espace de nom "Extended" 5_20_ISA8895_Interoperability_B2MML 40 Utilisation du mécanisme d'extension B2MML Schema Xmlns:Extended = extensions schema Import extensions schema ... element 1 element 1.1 element 1.2 element 1.3 xsd:group ref=Extended:element1 Any /element1 ... Extensions Schema xsd:group mame = element1 xsd:sequence element-800 element-801 /xsd:sequence /xsd:group Référence au Group ajouté à chaque type complex B2MML Documents B2MML Documents element 1 element 1.1 element 1 1.2 element element 1.1 Extended:element-800 element 1.2 Extended:element-801 /element1 Extended:element-800 Extended:element-801 /element1 Le contenu de chaque groupe de substitution est défini par l'utilisateur B2MML dans un document à part Dans les documents XML B2MML les éléments d'extension sont clairement identifiés avec un préfixe d'espace de nom (Extended). Ceci permet la validation visà vis du conenu du schéma d'extension. 5_20_ISA8895_Interoperability_B2MML 41 Utilisation des Schemas B2MML-VXX-Common.xsd B2MML-VXX-Personnel.xsd B2MML-VXX-Equipment.xsd B2MML-VXX-Material.xsd ... Les Schémas B2MML de base ne devraient pas être édités. (Exception faite de la modification des déclaration include et import avec les emplacements spécifiques au projet de lemplacement des fichiers) Nouveau Schema: B2MML-VXX-Extensions.xsd Toutes les extensions B2MML doivent être effectuées dans le schéma "Extensions" 5_20_ISA8895_Interoperability_B2MML 42 Extensions Les extension peuvent être définies à plusieurs endroits : Ø Dans le schema Extensions § Définitions des types avant les groupes § Ces types peuvent être simple ou complexes § Les élements dans les groupes réfèrent aux types définis cidessus, ou à des types XML de base (string, dateTime...) Ø Dans d'autres schemas § Les groupes dans les schema Extensions B2MML peuvent include des références de groupes dans d'autres schémas d'extension Note: Les déclarations d'espace de nom doivent être incluses pour référer aux autres schémas § Permet d'inclusion de types defined par d'autres groupes de standardisation § Permet d'intégrer facilement les extensions de l'entreprise et des vendeurs de systèmes 5_20_ISA8895_Interoperability_B2MML 43 Agenda XML et B2MML Eléments B2MML Structure B2MML/BatchML Extensions utilisateur Evolution 5_20_ISA8895_Interoperability_B2MML 44 Evolution régulière de B2MML Versionsur Date pour ajouter un tableau Cliquez l'icône 01 0101 02 03 0301 04 0401 05 07/04/2002 27/01/2003 23/09/2003 26/08/2005 20/06/2006 04/06/2007 30/09/2008 27/03/2011 Initial Release Unpublished Minor fixes Substitution groups + fixes Minor fixes UN Cefact Core Component + Transactions ISA88 structures + Common extensions Synchronisation avec ISA95-2 2010 5_20_ISA8895_Interoperability_B2MML 45 Version V0500 Nonbackward compatible changes Remove the ##any type from the schemas. The "Location" element was changed to "HierarchyScope" Changed QA Test to Material Test In QualificationTestSpecificationType the element Name was changed to ID Added EquipmentLevel element to EquipmentType and EquipmentClassType to ID Removed EquipmentElementLevel from ProcessSegmentType Made the UnitOfMeasure and DataType elements on QuantityType, ResultType, and ValueType optional. 5_20_ISA8895_Interoperability_B2MML 46 V0500 Backward compatible changes the material elements include the Assembly relationships ProductionXX schemas are deprecated (kept in B2MML) - New Operations objects : Ø OperationsCapability, OperationsDefinition, OperationsPerformance, OperationsSchedule Ø Additional extension types for OperationsCapability, OperationsDefinition, OperationsPerformance, and OperationsSchedule (prefixed with "Op" to not impact Productionxx schemas) Addition of EquipmentModule and ControlModule to the EquipmentElementLevel type to support BatchML definitions. Added EquipmentAssetMapping element to the B2MML-V0500-Common.xsd Added recursive property types to all property elements Removed the maintenance schemas and corresponding types in common schema Put the SegmentResponse element and all subelements in a separate file that is included by the ProductionSchedule and the ProductionPerformance schemas. Added the ChangeStatus elements to the ResponseCriteria element used in transactions. 5_20_ISA8895_Interoperability_B2MML 47 FIN MERCI ! 5_20_ISA8895_Interoperability_B2MML 48