Bonnes pratiques pour le développement d'applications > Modélisation de vos actifs > Modélisation d'actifs avec des objets, des modèles d'objet et des formes d'objet
Modélisation d'actifs avec des objets, des modèles d'objet et des formes d'objet
Les objets sont des représentations d'appareils physiques, d'actifs, de produits, de systèmes, de personnes ou de processus qui possèdent des propriétés et une logique applicative.
Pour définir un comportement une seule fois et le réutiliser dans votre application, ThingWorx facilite la modélisation de votre application en fournissant des modèles et des formes d'objet. Les modèles d'objet fournissent les fonctionnalités de base aux objets avec leurs propriétés, services, événements et abonnements. Les formes d'objet permettent de réutiliser les propriétés dans les actifs d'une même application.
Les objets héritent des fonctionnalités des modèles d'objet. Un modèle d'objet peut obtenir une ou plusieurs caractéristiques supplémentaires en implémentant des formes d'objet.
Les utilisateurs finaux interagissent avec les objets pour obtenir des informations dans les applications et pour lire/écrire des données.
Bonnes pratiques pour la création d'objets, de modèles d'objet et de formes d'objet
Utilisez les bonnes pratiques suivantes lors de la création d'objets, de modèles d'objet et de formes d'objet :
Définissez les conventions de désignation de vos objets, modèles d'objet et formes d'objet. Tenez compte des points suivants :
Utilisez une nomenclature standard entre les entités. Par exemple : vous pouvez utiliser un préfixe d'espace de nom unique entre les différents types d'entités pour éviter les conflits.
Donnez des noms explicites aux entités.
Essayez d'inclure une description précise pour chaque entité que vous créez.
Evitez les noms ambigus.
Evitez autant que possible les noms d'entité étendus.
Pour plus d'informations, consultez la rubrique Noms des entités.
Utilisez des tags pour toutes les entités que vous créez et modifiez. Pour les applications complexes, cela permet de différencier les divers modules d'une même application ou de plusieurs applications. Les clients peuvent quant à eux différencier les entités de diverses applications sur la même instance de la plateforme ThingWorx. En tant que développeur, vous pouvez rapidement filtrer les entités de ThingWorx Composer et exporter un module de l'application à des fins de test. Il est recommandé de définir des conventions de désignation pour les tags, notamment si vous prévoyez d'utiliser des tags différents dans divers modules d'une même application.
Groupez les mêmes entités d'un module dans un projet. Chaque module possède son propre projet.
Dans la mesure du possible, utilisez des formes d'objet.
* 
Il est recommandé d'utiliser des formes d'objet pour définir les propriétés et les services. Si vous définissez des propriétés et des services sur un modèle d'objet, il est difficile de transférer leurs définitions vers une forme d'objet.
Définissez l'ensemble des propriétés, services et événements au niveau d'une forme d'objet.
Un modèle d'objet permet de grouper des formes d'objet et de prendre en charge l'héritage.
Dans la mesure du possible, n'implémentez pas de propriétés ou de services sur des modèles d'objet et des objets.
Autorisez les remplacements de service sur les formes et les modèles d'objet.
Assurez-vous que les formes et les modèles d'objet standard ne sont pas modifiables.
Définissez les annotations pour identifier les API prises en charge. Cela garantit que les services et les propriétés sont conservés lors de la mise à niveau.
Utilisez une forme d'objet pour encapsuler des fonctionnalités spécifiques. En utilisant des formes d'objet, vous pouvez facilement ajouter de nouvelles fonctionnalités aux modèles d'objet existants dans ThingWorx. N'implémentez pas de formes d'objet directement dans l'objet. Héritez des caractéristiques de la forme d'objet dans l'objet à l'aide du modèle d'objet.
Par exemple, si vous avez implémenté vos actifs à l'aide d'objets et de modèles d'objet personnalisés, il est facile d'ajouter une forme d'objet à ces modèles d'objet. Toutefois, si les propriétés ou les services ont été définis directement sur un modèle d'objet, vous devrez recréer tous vos actifs pour utiliser la nouvelle fonctionnalité, car le modèle d'objet de base ne peut pas être changé pour un modèle d'objet ou un objet.
Ne dérivez pas les objets directement des modèles d'objet système. Il est recommandé de créer des modèles d'objet personnalisés dérivés des modèles d'objet de base fournis par ThingWorx. Cela vous permet d'ajouter des fonctionnalités supplémentaires ultérieurement en implémentant des formes d'objet supplémentaires et en les ajoutant à vos modèles d'objet.
Si votre application possède plusieurs appareils distants connectés ou si elle utilise ThingWorx Edge MicroServer ou les SDK ThingWorx Edge, utilisez le modèle d'objet RemoteThing au lieu du modèle d'objet GenericThing comme modèle d'objet de base. Selon que vous avez besoin d'un transfert de fichiers ou d'une tunnellisation, utilisez le modèle d'objet RemoteThingWithTunnels, RemoteThingWithFileTransfer ou RemoteThingWithTunnelsAndFileTransfer. Il est recommandé d'automatiser le processus d'ajout de liaisons distantes via des scripts qui vérifient si des objets distants non liés existent et de les créer automatiquement sur la plateforme. Cela permet de créer automatiquement des objets sur la plateforme, à mesure que de nouveaux appareils sont expédiés et passent en production.
* 
Vous ne pouvez pas modifier le modèle d'objet de base après avoir créé un objet ou un modèle d'objet.
Utilisez les réseaux pour définir les relations entre vos objets. Dans un réseau, un objet peut être le parent, l'enfant ou le frère d'un autre objet. Cela vous permet de modéliser une structure hiérarchique.
Considérations relatives à la durabilité
Cette rubrique décrit les autres considérations applicables :
Sécurité
Assurez-vous que tous les objets, modèles d'objet et formes d'objet sont non modifiables.
Ajoutez les autorisations de visibilité, d'exécution et de conception appropriées sur les modèles ou formes d'objet.
Définissez les organisations utilisateur, les groupes d'utilisateurs et les utilisateurs qui ont accès aux formes d'objet, aux modèles d'objet ou aux objets.
Mises à niveau
Organisez les objets, les modèles d'objet et les formes d'objet à l'aide de projets et de tags. Cela vous permet d'effectuer diverses tâches telles que la recherche, l'exportation, la modification des autorisations de visibilité et l'identification des entités pour une mise à niveau.
Veillez à utiliser la convention de désignation appropriée lors de la création d'entités. Cela permet d'économiser les coûts liés au changement de nom des entités pendant les mises à niveau.
Extension et personnalisation
Pour étendre des objets de composant, créez des modèles d'objet de sous-type qui héritent des modèles d'objet standard.
Remplacez les services et les propriétés dans les modèles d'objet de sous-type selon les instructions du développeur de l'extension.
Intégrez de nouveaux services et propriétés dans les nouvelles formes d'objet.