Blocs de construction > Modèles de conception de bloc de construction > Modèle de conception abstrait et d'implémentation
Modèle de conception abstrait et d'implémentation
Dans le modèle de conception abstrait et d'implémentation, la portion abstraite du modèle de conception standard est divisée et formée dans son propre bloc de construction, par exemple PTC.BuildingBlock, qui est séparé du bloc de construction d'implémentation, par exemple PTC.BuildingBlockImpl. Cela permet au développeur de solutions de fournir plusieurs implémentations du même bloc de construction abstrait, par exemple, PTC.BuildingBlockImpl1, PTC.BuildingBlockImpl2, etc.
Dans le bloc de construction abstrait, les définitions de service dans la forme d'objet de gestion, par exemple PTC.BuildingBlock.Management_TS, sont des services vides et non prioritaires prévus pour être remplacés dans le bloc de construction d'implémentation. Dans le bloc de construction d'implémentation, il existe un modèle d'objet d'implémentation de gestionnaire supplémentaire, par exemple PTC.BuildingBlockImpl.Manager_TT. Ce modèle d'objet de gestionnaire s'étend à partir du modèle d'objet de gestionnaire dans le bloc de construction abstrait, en héritant des services définis dans la forme d'objet de gestion. Les services sont en réalité implémentés dans le modèle d'objet de gestionnaire de blocs de construction d'implémentation.
Le diagramme suivant illustre la façon dont les entités obligatoires pour un bloc de construction sont décomposées en blocs de construction abstraits et d'implémentation.
Diagramme illustrant les entités obligatoires pour un bloc de construction décomposées en blocs de construction abstrait et d'implémentation, y compris les entités qui implémentent ou s'étendent à partir d'autres entités.
Dans le diagramme, les lignes continues avec flèche à tête creuse () indiquent qu'une entité s'étend à partir de l'entité vers laquelle pointe la flèche, tandis que les lignes en pointillés avec flèche à tête creuse () signifient qu'une entité implémente l'entité vers laquelle pointe la flèche.
Entités obligatoires
Les entités suivantes sont obligatoires dans le modèle de conception abstrait et d'implémentation :
Projets : chaque bloc de construction (abstrait et d'implémentation) dispose d'une entité de projet ThingWorx contenant les entités de bloc de construction, par exemple PTC.BuildingBlock et PTC.BuildingBlockImpl. La convention de désignation recommandée inclut le nom du projet dans les noms de toutes les entités faisant partie du bloc de construction.
Point d'entrée : le point d'entrée identifie le bloc de construction par rapport au reste de la solution installée, y compris son nom, sa version, ses dépendances, etc. Un service nommé DeployComponent peut être remplacé pour exécuter une action lorsque le bloc de construction est déployé pour la première fois sur le serveur ThingWorx. Le bloc de construction abstrait étend le modèle d'objet PTC.Base.ComponentEntryPoint_TT pour son propre modèle d'objet de point d'entrée, par exemple PTC.BuildingBlock.EntryPoint_TT. Le bloc de construction d'implémentation étend le modèle d'objet PTC.DefaultConfiguration.EntryPoint_TT pour son propre modèle d'objet de point d'entrée, par exemple PTC.BuildingBlockImpl.EntryPoint_TT. Un objet de point d'entrée est créé pour chaque bloc de construction à partir de son modèle d'objet de point d'entrée, par exemple PTC.BuildingBlock.EntryPoint et PTC.BuildingBlockImpl.EntryPoint, respectivement.
Gestionnaire : le gestionnaire de bloc de construction est la couche de service principale pour le bloc de construction, offrant ainsi plusieurs fonctionnalités pour le bloc de construction. Premièrement, il agit comme une couche d'abstraction pour les entités qui appellent dans le bloc de construction. Deuxièmement, il est utilisé pour configurer les options de menu, les applications composites contenues et les gestionnaires à utiliser lorsque plusieurs sont définis.
Le bloc de construction abstrait doit avoir un modèle d'objet de gestionnaire (PTC.BuildingBlock.Manager_TT) qui s'étend à partir de PTC.Base.CommonManager_TT. Le bloc de construction d'implémentation dispose d'un modèle d'objet de gestionnaire (PTC.BuildingBlockImpl.Manager_TT) qui s'étend à partir du modèle d'objet de gestionnaire du bloc de construction abstrait. L'objet de gestionnaire du bloc de construction d'implémentation est créé en fonction du modèle d'objet de gestionnaire du bloc de construction d'implémentation.
Le modèle d'objet de gestionnaire du bloc de construction abstrait possède également une forme d'objet de gestion implémentée (PTC.BuildingBlock.Management_TS). Cette forme d'objet contient tous les services requis pour le composant. Ces services sont hérités par le modèle d'objet de gestionnaire du bloc de construction d'implémentation, dans lequel réside l'implémentation réelle du service. Pour les blocs de construction développés par PTC, ces services peuvent être remplacés en tant que personnalisation, ce qui permet aux développeurs de solutions de remplacer les services par défaut pour leur propre finalité. Pour plus d'informations, consultez la rubrique .
Le modèle d'objet de gestionnaire du bloc de construction d'implémentation peut implémenter toute forme d'objet supplémentaire obligatoire pour cette implémentation. Par exemple, de nombreux blocs de construction d'implémentation dans la solution DPM implémentent la forme d'objet PTC.DBConnection.DBManagement_TS afin de pouvoir accéder à la base de données DPM.
Entités facultatives
Le diagramme suivant illustre des entités facultatives pouvant être incluses dans le modèle de conception abstrait et d'implémentation. Dans le diagramme suivant, le bloc de construction PTC.MfgModel est utilisé comme exemple de bloc de construction avec une hiérarchie de modèle, d'actif ou d'équipement, dont les modèles d'objet implémentent la forme d'objet de logique de modèle dans le bloc de construction du modèle de conception abstrait et d'implémentation. Les entités avec des contours en pointillés sont des entités facultatives qui sont incluses dans ce modèle pour les objectifs spécifiques décrits ci-dessous. D'autres entités ThingWorx peuvent également être incluses dans le modèle de conception abstrait et d'implémentation, mais ces entités ont une signification spécifique.
Diagramme illustrant les entités obligatoires et facultatives pour un bloc de construction décomposées en blocs de construction abstrait et d'implémentation, y compris les entités qui implémentent ou s'étendent à partir d'autres entités.
Dans le diagramme, les lignes continues avec flèche à tête creuse () indiquent qu'une entité s'étend à partir de l'entité vers laquelle pointe la flèche, tandis que les lignes en pointillés avec flèche à tête creuse () signifient qu'une entité implémente l'entité vers laquelle pointe la flèche.
Les entités facultatives suivantes sont incluses dans le modèle de conception abstrait et d'implémentation :
Entités de sécurité : des groupes d'utilisateurs de permissions peuvent être créés et utilisés pour définir différentes permissions pour chaque bloc de construction. Un rôle d'utilisateur est simplement un autre groupe d'utilisateurs ajouté à chacun des groupes d'utilisateurs de permissions.
Applications composites : le modèle de conception abstrait et d'implémentation permet d'ajouter des applications composites dans le cadre de la fonctionnalité de bloc de construction. Il peut s'agir d'applications composites principales qui sont liées à l'application composite maître, ou d'applications composites contenues utilisées par différents blocs de construction. Il appartient au développeur de bloc de construction de déterminer les fonctionnalités dans lesquelles se trouvent les blocs de construction.
Entités de logique de modèle : la forme d'objet de logique de modèle est destinée à être utilisée par des applications composites ou d'autres composants qui appliquent la sécurité de l'organisation pour l'équipement en utilisant les organisations selon les besoins de ThingWorx. Cela est nécessaire si le cas d'utilisation appelle le contrôle de visibilité pour un équipement individuel. Les services contenus dans la forme d'objet de logique de modèle sont appliqués aux entités hiérarchiques d'équipement et fournissent des services intégrés pour appeler le gestionnaire configuré approprié via la forme d'objet de gestion du bloc de construction. Tous les gestionnaires sont enregistrés dans la table de configuration DefaultGlobalManagerConfiguration de l'objet PTC.BaseManager. Les gestionnaires peuvent également être configurés dans la table de configuration ManagerConfiguration de toute entité qui implémente la forme d'objet PTC.Base.ConfigManagement_TS, telle que l'objet de gestionnaire pour un bloc de construction ou un objet de modèle d'équipement basé sur un modèle d'objet qui implémente la forme d'objet (par exemple PTC.MfgModel.DefaultWorkUnit_TT). Cela permet à différents modèles d'utiliser des gestionnaires différents. Par exemple, deux sites peuvent avoir des gestionnaires différents qu'ils souhaitent utiliser, car ils récupèrent des données provenant de sources différentes.
Lorsqu'un service fait référence à un autre gestionnaire, il examine d'abord la table ManagerConfiguration de l'entité qui appelle le service pour voir s'il existe une entrée configurée pour le gestionnaire référencé. S'il ne trouve pas d'entrée à cet emplacement, le service consulte la table de configuration DefaultGlobalManagerConfiguration sur l'objet PTC.Base.Manager.
Est-ce que cela a été utile ?