Suite

Créer une nouvelle classe d'entités basée sur plusieurs classes d'entités

Créer une nouvelle classe d'entités basée sur plusieurs classes d'entités


J'ai cherché dans les messages précédents pour voir si quelqu'un pose une question similaire, mais je n'ai rien trouvé. J'ai plusieurs classes d'entités, chacune contenant plusieurs polygones. J'ai deux résultats souhaités :

A) J'aimerais trouver un moyen simple de créer une nouvelle classe d'entités unique dans les zones où plus de 50 % de mes couches en entrée se croisent. Le nombre de couches d'entrée que j'ai variera, mais utilisons 6 comme exemple. Ce serait bien de pouvoir créer une seule classe d'entités, peu importe laquelle de mes quatre couches d'entrée représente plus de 50%. J'ai essayé de créer un modèle à l'aide d'Intersect, mais il me manque l'élément logique qui indique au système que les 6 entrées n'ont pas besoin de se chevaucher, juste au moins quatre.

B) L'autre sortie que j'aimerais avoir est une nouvelle classe d'entités qui crée de nouveaux polygones qui sont une superficie moyenne basée sur mes entrées. Dans ce cas également, j'aimerais que cet outil crée une nouvelle classe d'entités avec la moyenne mathématique des zones où plus de 50% de mes entrées se chevauchent. J'ai cherché, mais je ne trouve aucun outil de ce type qui puisse me permettre d'accéder à ma sortie.

J'ai actuellement une licence ArcInfo (Advanced), mais pas d'extensions. S'il existe un moyen d'atteindre mes objectifs avec ArcView (bureau de base) ou ArcInfo, ce serait préférable. Mais s'il y a une extension là-bas, je serais curieux de savoir ce que c'est.


Réponse basée sur 3 couches de polygones :

  1. Fusionner (Géotraitement-Fusionner) toutes les couches en un seul jeu de données, ALL_PGONS
  2. Intersection ALL_PGONS (Géotraitement-Intersection). Pas de SECONDE couche, sortie INTERSECT
  3. Créez un nouveau champ de texte dans la table d'INTERSECT, appelez-le LINKFLD
  4. Remplissez ce champ à l'aide du calculateur de champ (Python) en utilisant quelque chose comme ceci (je suppose que vous travaillez avec un système projeté):

    '%i %i' %(int(!Shape!.centroid.X),int(!Shape!.centroid.Y))

  5. Créez un nouveau champ court dans la table d'INTERSECT, appelez-le ONE

  6. Utilisez les statistiques récapitulatives pour compter le nombre de valeurs uniques stockées dans le champ LINKFLD :

Joignez la table de sortie (freq.dbf dans l'exemple ci-dessus) à la table INTERSECT à l'aide de LINKFLD. Vous pouvez symboliser l'intersection en utilisant la FRÉQUENCE.

Vous pouvez également sélectionner des polygones dont la fréquence est supérieure à 50 % du nombre de couches. Leur étendue est votre réponse.


Utiliser la technologie comme outil d'apprentissage, pas seulement la nouveauté cool

J'ai pleinement réalisé l'ère numérique lorsque j'ai parlé pour la première fois à mes grands-parents à propos de la fonction « conversation » sur AOL Instant Messenger. A quel point est-ce cool, pensai-je, d'avoir des grands-parents qui non seulement ont un ordinateur, mais savent s'en servir ? Ce qui était plus frappant, c'est que mon grand-père, un homme qui n'avait jamais eu beaucoup d'éducation technique formelle, a construit non pas un, mais deux ordinateurs à partir de pièces et de cartes mères, de disques durs, de disques durs, etc. avec l'aide de mon cousin. Il dispose d'un accès Internet haut débit, envoie et reçoit des e-mails, grave des CD et discute en ligne par messagerie instantanée. Il a même construit un ordinateur pour ma grand-mère, qui l'utilise pour consulter quotidiennement les nécrologies sur le Journal de Winston Salem Site Web et fait des puzzles en ligne. Elle ne peut plus en faire de vrais, car les pièces sont trop petites pour qu'elle puisse les voir et les saisir.


Vous pouvez également créer un objet d'une classe et y accéder dans une autre classe. Ceci est souvent utilisé pour une meilleure organisation des classes (une classe a tous les champs et méthodes, tandis que l'autre classe contient la méthode Main() (code à exécuter)).

Prog2.cs

Prog.cs

Avez-vous remarqué le mot-clé public ? Cela s'appelle un modificateur d'accès, qui spécifie que la variable/le champ de couleur de Car est également accessible pour d'autres classes, telles que Program .

Vous en apprendrez beaucoup plus sur modificateurs d'accès et classes/objets dans les prochains chapitres.


Non, C# ne prend pas en charge l'héritage multiple. Vous pouvez implémenter plusieurs interfaces mais ce n'est évidemment pas la même chose car les interfaces ne peuvent avoir aucun comportement concret implémenté.

Vous pouvez le faire en C# via Mixins, c'est implémenté différemment de l'héritage multiple mais au final vous obtenez un objet avec toutes les méthodes de plusieurs classes.

Ce n'est pas une caractéristique de la langue, mais on peut le trouver chez des tiers.

Quelques points d'intérêt :
- vous pouvez surcharger des méthodes dans un Mixin, modifiant ainsi de manière externe le comportement des classes nouvellement créées.
- vous pouvez créer des portées où les classes sont différentes lorsqu'elles sont créées dans la portée.
- vous devez créer des objets mixés via une fabrique (le nouveau MyObject() ne prendra pas en compte les Mixins, heureusement).


Contenu

Il existe différents types d'héritage, basés sur un paradigme et un langage spécifique. [7]

où les sous-classes héritent des caractéristiques d'une superclasse. Une classe acquiert les propriétés d'une autre classe.

où une classe peut avoir plusieurs superclasses et hériter des fonctionnalités de toutes les classes parentes.

"L'héritage multiple . était largement supposé être très difficile à implémenter efficacement. Par exemple, dans un résumé du C++ dans son livre sur Objective C, Brad Cox a en fait affirmé qu'ajouter l'héritage multiple au C++ était impossible. Ainsi, l'héritage multiple semblait plus un défi. Comme j'avais envisagé l'héritage multiple dès 1982 et trouvé une technique de mise en œuvre simple et efficace en 1984, je n'ai pas pu résister au défi. Je soupçonne que c'est le seul cas dans lequel la mode a affecté la séquence des événements. » [8]

où une sous-classe est héritée d'une autre sous-classe. Il n'est pas rare qu'une classe soit dérivée d'une autre classe dérivée comme le montre la figure "Héritage à plusieurs niveaux".

La classe UNE sert de classe de base pour le Classe dérivée B, qui à son tour sert de classe de base pour le Classe dérivée C. La classe B est connu comme intermédiaire classe de base car elle fournit un lien pour l'héritage entre UNE et C. La chaine abc est connu comme chemin d'héritage.

Une classe dérivée avec héritage à plusieurs niveaux est déclarée comme suit :

Ce processus peut être étendu à plusieurs niveaux.

C'est là qu'une classe sert de superclasse (classe de base) pour plus d'une sous-classe. Par exemple, une classe parente, A, peut avoir deux sous-classes B et C. La classe parente de B et C est A, mais B et C sont deux sous-classes distinctes.

L'héritage hybride se produit lorsqu'un mélange de deux ou plusieurs des types d'héritage ci-dessus se produit. Un exemple de ceci est lorsque la classe A a une sous-classe B qui a deux sous-classes, C et D. Il s'agit d'un mélange d'héritage à plusieurs niveaux et d'héritage hiérarchique.

Sous-classes, classes dérivées, classes d'héritiers, ou alors cours pour enfants sont des classes dérivées modulaires qui héritent d'une ou plusieurs entités de langage d'une ou plusieurs autres classes (appelées superclasse, classes de base, ou alors classes de parents). La sémantique de l'héritage de classe varie d'une langue à l'autre, mais généralement la sous-classe hérite automatiquement des variables d'instance et des fonctions membres de ses superclasses.

La forme générale de définition d'une classe dérivée est : [9]

  • Les deux points indiquent que la sous-classe hérite de la superclasse. La visibilité est facultative et, si elle est présente, peut être soit privé ou alors Publique. La visibilité par défaut est privé. La visibilité spécifie si les caractéristiques de la classe de base sont dérivé de façon privée ou alors d'origine publique.

Certains langages prennent également en charge l'héritage d'autres constructions. Par exemple, dans Eiffel, les contrats qui définissent la spécification d'une classe sont également hérités par les héritiers. La superclasse établit une interface commune et des fonctionnalités fondamentales, que les sous-classes spécialisées peuvent hériter, modifier et compléter. Les logiciels hérités d'une sous-classe sont considérés comme réutilisés dans la sous-classe. Une référence à une instance d'une classe peut en fait faire référence à l'une de ses sous-classes. La classe réelle de l'objet référencé est impossible à prédire au moment de la compilation. Une interface uniforme est utilisée pour invoquer les fonctions membres d'objets d'un certain nombre de classes différentes. Les sous-classes peuvent remplacer les fonctions de superclasse par des fonctions entièrement nouvelles qui doivent partager la même signature de méthode.

Classes non sous-classables Modifier

Dans certains langages, une classe peut être déclarée comme non-sous-classable en ajoutant certains modificateurs de classe à la déclaration de classe. Les exemples incluent le mot-clé final en Java et à partir de C++11 ou le mot-clé scellé en C#. De tels modificateurs sont ajoutés à la déclaration de classe avant le mot-clé class et la déclaration d'identifiant de classe. De telles classes non sous-classables restreignent la réutilisabilité, en particulier lorsque les développeurs n'ont accès qu'aux binaires précompilés et non au code source.

Une classe non sous-classable n'a pas de sous-classes, il peut donc être facilement déduit au moment de la compilation que les références ou les pointeurs vers des objets de cette classe référencent en fait des instances de cette classe et non des instances de sous-classes (elles n'existent pas) ou des instances de superclasses (la conversion ascendante d'un type de référence viole le système de types). Étant donné que le type exact de l'objet référencé est connu avant l'exécution, la liaison anticipée (également appelée répartition statique) peut être utilisée à la place de la liaison tardive (également appelée répartition dynamique), qui nécessite une ou plusieurs recherches de table de méthodes virtuelles selon que l'héritage multiple ou seul l'héritage unique est pris en charge dans le langage de programmation utilisé.

Méthodes non remplaçables Modifier

Tout comme les classes peuvent ne pas être sous-classables, les déclarations de méthode peuvent contenir des modificateurs de méthode qui empêchent la méthode d'être remplacée (c'est-à-dire remplacée par une nouvelle fonction avec le même nom et la même signature de type dans une sous-classe). Une méthode privée ne peut pas être remplacée simplement parce qu'elle n'est pas accessible par des classes autres que la classe dont elle est une fonction membre (ce n'est pas vrai pour C++, cependant). Une méthode finale en Java, une méthode scellée en C# ou une fonctionnalité figée dans Eiffel ne peut pas être remplacée.

Méthodes virtuelles Modifier

Si la méthode de la superclasse est une méthode virtuelle, alors les invocations de la méthode de la superclasse seront distribuées dynamiquement. Certains langages exigent que les méthodes soient spécifiquement déclarées comme virtuelles (par exemple C++), et dans d'autres, toutes les méthodes sont virtuelles (par exemple Java). L'invocation d'une méthode non virtuelle sera toujours distribuée de manière statique (c'est-à-dire que l'adresse de l'appel de fonction est déterminée au moment de la compilation). L'envoi statique est plus rapide que l'envoi dynamique et permet des optimisations telles que l'expansion en ligne.

Le tableau suivant montre quelles variables et fonctions sont héritées en fonction de la visibilité donnée lors de la dérivation de la classe. [dix]

  • Privé →
  • Protégé →
  • Publique →
  • Non hérité
  • Protégé
  • Publique
  • Non hérité
  • Privé
  • Privé
  • Non hérité
  • Protégé
  • Protégé

L'héritage est utilisé pour corréler deux ou plusieurs classes les unes aux autres.

Modifier la modification

De nombreux langages de programmation orientés objet permettent à une classe ou à un objet de remplacer l'implémentation d'un aspect, généralement un comportement, dont il a hérité. Ce processus est appelé primordial. Le remplacement introduit une complication : quelle version du comportement une instance de la classe héritée utilise-t-elle, celle qui fait partie de sa propre classe ou celle de la classe parente (de base) ? La réponse varie selon les langages de programmation, et certains langages offrent la possibilité d'indiquer qu'un comportement particulier ne doit pas être remplacé et doit se comporter comme défini par la classe de base. Par exemple, en C#, la méthode ou la propriété de base ne peut être remplacée dans une sous-classe que si elle est marquée avec le modificateur virtual, abstract ou override, tandis que dans les langages de programmation tels que Java, différentes méthodes peuvent être appelées pour remplacer d'autres méthodes. [11] Une alternative au remplacement consiste à cacher le code hérité.

Réutilisation du code Modifier

L'héritage d'implémentation est le mécanisme par lequel une sous-classe réutilise le code d'une classe de base. Par défaut, la sous-classe conserve toutes les opérations de la classe de base, mais la sous-classe peut remplacer certaines ou toutes les opérations, remplaçant l'implémentation de la classe de base par la sienne.

Vous trouverez ci-dessous un exemple de Python.

Dans la plupart des quartiers, l'héritage de classe dans le seul but de réutiliser du code est tombé en désuétude. [ citation requise ] La principale préoccupation est que l'héritage de l'implémentation ne fournit aucune garantie de substituabilité polymorphe - une instance de la classe de réutilisation ne peut pas nécessairement être substituée à une instance de la classe héritée. Une technique alternative, la délégation explicite, nécessite plus d'efforts de programmation, mais évite le problème de substituabilité. [ citation requise ] En C++, l'héritage privé peut être utilisé comme une forme de héritage d'implémentation sans substituabilité. Alors que l'héritage public représente une relation « est-un » et que la délégation représente une relation « a-un », l'héritage privé (et protégé) peut être considéré comme une relation « est implémentée en termes de ». [12]

Une autre utilisation fréquente de l'héritage est de garantir que les classes maintiennent une certaine interface commune, c'est-à-dire qu'elles implémentent les mêmes méthodes. La classe parent peut être une combinaison d'opérations implémentées et d'opérations qui doivent être implémentées dans les classes enfant. Souvent, il n'y a pas de changement d'interface entre le supertype et le sous-type - l'enfant implémente le comportement décrit au lieu de sa classe parent. [13]

L'héritage est similaire mais distinct du sous-typage. [14] Le sous-typage permet à un type donné de se substituer à un autre type ou abstraction, et est dit établir un est un relation entre le sous-type et une abstraction existante, implicitement ou explicitement, selon la prise en charge du langage. La relation peut être exprimée explicitement via l'héritage dans des langages qui prennent en charge l'héritage comme mécanisme de sous-typage. Par exemple, le code C++ suivant établit une relation d'héritage explicite entre les classes B et UNE, où B est à la fois une sous-classe et un sous-type de UNE, et peut être utilisé comme UNE partout où un B est spécifié (via une référence, un pointeur ou l'objet lui-même).

Dans les langages de programmation qui ne prennent pas en charge l'héritage en tant que mécanisme de sous-typage, la relation entre une classe de base et une classe dérivée n'est qu'une relation entre les implémentations (un mécanisme de réutilisation du code), par rapport à une relation entre les types. L'héritage, même dans les langages de programmation qui prennent en charge l'héritage comme mécanisme de sous-typage, n'implique pas nécessairement un sous-typage comportemental. Il est tout à fait possible de dériver une classe dont l'objet se comportera de manière incorrecte lorsqu'il est utilisé dans un contexte où la classe parent est attendue voir le principe de substitution de Liskov. [15] (Comparez connotation/dénotation.) Dans certains langages POO, les notions de réutilisation de code et de sous-typage coïncident car la seule façon de déclarer un sous-type est de définir une nouvelle classe qui hérite de l'implémentation d'une autre.

Contraintes de conception Modifier

L'utilisation intensive de l'héritage dans la conception d'un programme impose certaines contraintes.

En définissant cette hiérarchie d'héritage, nous avons déjà défini certaines restrictions, qui ne sont pas toutes souhaitables :

Le principe de réutilisation composite est une alternative à l'héritage. Cette technique prend en charge le polymorphisme et la réutilisation du code en séparant les comportements de la hiérarchie des classes primaires et en incluant des classes de comportements spécifiques comme requis dans toute classe de domaine métier. Cette approche évite la nature statique d'une hiérarchie de classes en permettant des modifications de comportement au moment de l'exécution et permet à une classe d'implémenter des comportements sous forme de buffet, au lieu de se limiter aux comportements de ses classes ancêtres.

L'héritage d'implémentation est controversé parmi les programmeurs et les théoriciens de la programmation orientée objet depuis au moins les années 1990. Parmi eux, les auteurs de Modèles de conception, qui préconisent plutôt l'héritage d'interface et privilégient la composition à l'héritage. Par exemple, le motif décorateur (comme mentionné ci-dessus) a été proposé pour surmonter la nature statique de l'héritage entre les classes. En tant que solution plus fondamentale au même problème, la programmation orientée rôle introduit une relation distincte, joué par, combinant les propriétés d'héritage et de composition dans un nouveau concept. [ citation requise ]

Selon Allen Holub, le principal problème avec l'héritage d'implémentation est qu'il introduit un couplage inutile sous la forme du « problème de classe de base fragile » [5] : les modifications apportées à l'implémentation de la classe de base peuvent provoquer des changements de comportement par inadvertance dans les sous-classes. L'utilisation d'interfaces évite ce problème car aucune implémentation n'est partagée, seule l'API. [16] Une autre façon de dire cela est que "l'héritage brise l'encapsulation". [17] Le problème apparaît clairement dans les systèmes ouverts orientés objet tels que les frameworks, où le code client est censé hériter des classes fournies par le système, puis se substituer aux classes du système dans ses algorithmes. [5]

Apparemment, l'inventeur de Java James Gosling s'est prononcé contre l'héritage d'implémentation, déclarant qu'il ne l'inclurait pas s'il devait reconcevoir Java. [16] Les conceptions de langage qui découplent l'héritage du sous-typage (héritage d'interface) sont apparues dès 1990 [18] un exemple moderne de ceci est le langage de programmation Go.

L'héritage complexe, ou l'héritage utilisé dans une conception insuffisamment mature, peut conduire au problème du yo-yo. Lorsque l'héritage a été utilisé comme approche principale pour structurer le code dans un système à la fin des années 1990, les développeurs ont naturellement commencé à diviser le code en plusieurs couches d'héritage à mesure que les fonctionnalités du système se développaient. Si une équipe de développement combinait plusieurs couches d'héritage avec le principe de responsabilité unique, elle créait de nombreuses couches de code super fines, dont beaucoup n'auraient qu'une ou deux lignes de code dans chaque couche. Avant que les équipes n'apprennent à leurs dépens que 2 ou 3 couches étaient un nombre optimal de couches équilibrant les avantages de la réutilisation du code par rapport à l'augmentation de la complexité avec chaque couche, il n'était pas rare de travailler sur des frameworks d'héritage avec 10 et jusqu'à 30 couches. Par exemple, 30 couches ont fait du débogage un défi important simplement pour savoir quelle couche devait être déboguée. PowerBuilder a construit l'une des meilleures bibliothèques de code qui utilisait principalement l'héritage, elle a été construite avec 3 à 4 couches. Le nombre de couches dans une bibliothèque d'héritage est critique et doit être maintenu égal ou inférieur à 4 couches, sinon la bibliothèque devient trop complexe et prend trop de temps à utiliser.

Un autre problème avec l'héritage est que les sous-classes doivent être définies dans le code, ce qui signifie que les utilisateurs du programme ne peuvent pas ajouter de nouvelles sous-classes. D'autres modèles de conception (tels que Entité-composant-système) permettent aux utilisateurs du programme de définir des variations d'une entité au moment de l'exécution.


Un nouvel algorithme pour la sélection de caractéristiques basé sur la métrique de distance géographique : une étude de cas sur la prévision du débit des ressources en eau de l'Autriche

Cet article se concentre sur les méthodes de sélection de variables d'entrée - sélection de caractéristiques - avec le réseau de neurones artificiels pour la prévision du débit des grands bassins qui ont une variété de nombreuses stations. Les méthodes de sélection des caractéristiques dans la communauté de recherche en hydrologie actuelle ne sont pas en mesure de traiter le problème dans de tels bassins. L'article propose un nouvel algorithme de sélection de caractéristiques - Bubble Selection - basé sur l'idée d'utiliser la distance géographique comme métrique. L'évaluation des performances de l'algorithme est réalisée en appliquant la Bubble Selection, à l'étude de cas de la modélisation des ressources en eau de l'Autriche de 540 stations en un seul mode d'exécution. L'objectif est de sélectionner des caractéristiques pour chaque station parmi 2412 stations, les mesures de débit, de précipitation, de neige, d'épaisseur de neige et de niveau d'eau sont disponibles. L'algorithme proposé permet de réduire considérablement la dimension des caractéristiques. L'algorithme de sélection de bulle est en outre combiné avec l'algorithme de sélection directe séquentielle. Les performances du modèle hybride sont comparées aux performances de la méthode de classement des caractéristiques en termes de coefficient de détermination, d'efficacité de Nash-Sutcliffe et de pourcentage de biais. Les résultats montrent la supériorité de l'algorithme hybride proposé sur le Feature Ranking. L'article présente une méthodologie pour modéliser un grand bassin et révèle certaines compétences qu'un algorithme de sélection de caractéristiques devrait posséder.

Ceci est un aperçu du contenu de l'abonnement, accessible via votre institution.


Les rôles

Un rôle définit l'ensemble des privilèges attribués à un membre. Les privilèges sont attribués aux membres via un rôle par défaut ou un rôle personnalisé. Les membres se voient attribuer un rôle lorsqu'ils sont ajoutés à l'organisation.

Si vous n'êtes pas sûr du rôle qui vous a été attribué ou si vous avez besoin de plus d'informations sur votre rôle, cliquez sur le bouton Informations sur le rôle dans la section Rôle de votre profil.

Une fois qu'un membre a rejoint, son rôle peut être modifié par les administrateurs et ceux qui ont des privilèges pour modifier les rôles de membre. La modification des rôles vers ou depuis l'administrateur ne peut être effectuée que par les administrateurs.

Rôles par défaut

ArcGIS Enterprise définit un ensemble de privilèges pour les rôles par défaut suivants :

Le type d'utilisateur d'un membre détermine les rôles par défaut qui peuvent être attribués au membre. Les types d'utilisateurs compatibles avec chaque rôle sont indiqués ci-dessous.

  • Visionneuse : affichez des éléments tels que des cartes, des applications, des scènes et des calques qui ont été partagés avec le public, l'organisation ou un groupe auquel appartient le membre. Rejoignez des groupes appartenant à l'organisation. Faites glisser des fichiers CSV, texte ou GPX dans Map Viewer pour géocoder des adresses ou des noms de lieux. Obtenez des itinéraires dans Map Viewer et les applications. Les membres auxquels est attribué le rôle de visionneuse ne peuvent pas créer ou partager de contenu, ni effectuer d'analyse. Le rôle Viewer est compatible avec tous les types d'utilisateurs.
  • Éditeur de données : privilèges de visionneuse et possibilité de modifier des entités partagées par d'autres utilisateurs d'ArcGIS. Le rôle Editeur de données est compatible avec tous les types d'utilisateurs à l'exception de Viewer .
  • Utilisateur : privilèges de l'éditeur de données et possibilité de créer des groupes et du contenu. Les utilisateurs peuvent utiliser les cartes, applications, couches et outils de l'organisation, et rejoindre des groupes qui permettent aux membres de mettre à jour tous les éléments du groupe. Les membres auxquels le rôle Utilisateur est attribué peuvent également créer des cartes et des applications, modifier des fonctionnalités, ajouter des éléments au portail, partager du contenu et créer des groupes. Le rôle Utilisateur est compatible avec les types d'utilisateurs Creator , GIS Professional , Storyteller et Insights Analyst .
  • Éditeur : privilèges d'utilisateur plus la possibilité de publier des couches Web hébergées, des couches ArcGIS Server, d'enregistrer des magasins de données, de publier à partir d'éléments de magasin de données et d'effectuer des analyses d'entités et de raster. Le rôle Éditeur est compatible avec les types d'utilisateurs Creator , GIS Professional , Storyteller et Insights Analyst .
  • Administrateur : privilèges d'éditeur plus privilèges pour gérer l'organisation et les autres utilisateurs.

Une organisation doit avoir au moins un administrateur, bien que deux soient recommandés. Il n'y a pas de limite au nombre de membres pouvant être affectés au rôle Administrateur au sein d'une organisation. Cependant, pour des raisons de sécurité, vous ne devez affecter ce rôle qu'à ceux qui ont besoin des privilèges supplémentaires qui lui sont associés. Le rôle Administrateur est compatible avec les types d'utilisateurs Creator , GIS Professional et Insights Analyst .

Pour choisir un rôle par défaut attribué aux nouveaux membres, accédez à Organisation > Paramètres > Paramètres par défaut des nouveaux membres et choisissez un rôle dans le menu déroulant Rôle.

Vous ne pouvez sélectionner un rôle par défaut qu'une fois qu'un type d'utilisateur par défaut est sélectionné. Seuls les rôles compatibles avec le type d'utilisateur par défaut sélectionné seront répertoriés dans le menu déroulant.

Le tableau suivant présente les privilèges disponibles avec les rôles par défaut.

Utiliser la géorecherche (rechercher des lieux et des adresses)

Géocoder des adresses et des noms de lieux

Publier des couches Web hébergées

Publier des couches basées sur le serveur

Publication en masse à partir d'un magasin de données

Créer et modifier des blocs-notes ArcGIS

Gérer tous les membres, le contenu et les groupes

Configurer le site Web et la sécurité

Créer et modifier des rôles personnalisés

Désactiver et supprimer des comptes membres

Partager le contenu de l'organisation avec le public lorsque les paramètres du site n'autorisent pas les membres à partager en dehors de l'organisation

Afficher les traces de localisation des autres utilisateurs

La plupart des privilèges répertoriés ci-dessus peuvent également être attribués dans le cadre d'un rôle personnalisé. Cependant, certains privilèges administratifs ne sont pas disponibles pour les rôles personnalisés car ils sont réservés aux administrateurs par défaut.

Lorsque vous fédérez un serveur avec votre portail, le magasin de sécurité du portail contrôle tous les accès au serveur. Cela offre une expérience de connexion pratique, mais a également un impact sur la façon dont vous accédez et administrez le serveur fédéré. Par exemple, lorsque vous fédérez, tous les utilisateurs, rôles et autorisations que vous avez précédemment configurés sur les services ArcGIS Server ne sont plus valides. L'accès aux services est plutôt déterminé par les rôles et les autorisations de partage des membres du portail. Consultez Administrer un serveur fédéré pour en savoir plus sur l'impact de la fédération sur votre site.

Rôles personnalisés

Vous souhaiterez peut-être affiner les rôles par défaut de votre organisation en un ensemble de privilèges plus précis en créant des rôles personnalisés. Par exemple, votre organisation peut souhaiter attribuer à certains membres les mêmes privilèges qu'un éditeur par défaut, mais sans leur permettre d'utiliser GeoEnrichment. Cela peut être réalisé en créant un rôle personnalisé basé sur le rôle Publisher par défaut, en désactivant le privilège GeoEnrichment et en appelant le rôle personnalisé Publisher sans GeoEnrichment ou quelque chose de similaire.

Seuls les administrateurs par défaut, ou ceux auxquels est attribué un rôle d'administrateur personnalisé avec le privilège Rôles de membre, peuvent créer et modifier des rôles personnalisés. Ces administrateurs peuvent configurer des rôles personnalisés en fonction de n'importe quelle combinaison de privilèges généraux et administratifs disponibles. Une fois qu'un rôle personnalisé a été créé, tout membre de l'organisation disposant du privilège Modifier les rôles peut attribuer le rôle aux membres.

Un membre auquel un rôle personnalisé a été attribué et qui dispose d'un privilège de publication (pour les entités, les tuiles ou les scènes) pourra également créer d'autres types de services ArcGIS Server sur des serveurs fédérés avec votre portail. Cette fonctionnalité peut être limitée dans une future version pour empêcher de tels workflows. Il est recommandé que si les utilisateurs ont besoin de pouvoir publier des services ArcGIS Server, ils soient ajoutés au rôle d'éditeur par défaut.

Vous avez la possibilité de créer des rôles personnalisés qui incluent des privilèges administratifs pour gérer les paramètres du portail. Cela permet aux administrateurs de déléguer un ensemble spécifique de tâches administratives aux utilisateurs sans leur donner l'ensemble complet de privilèges dans le rôle d'administrateur par défaut. Par exemple, un utilisateur avec un rôle personnalisé qui inclut le privilège de site Web d'organisation aura la possibilité de gérer les paramètres du site Web du portail sans avoir la possibilité d'effectuer d'autres tâches administratives, telles que la gestion de la sécurité ou des paramètres du serveur.

Les privilèges qui peuvent être accordés à un membre via un rôle personnalisé ne peuvent pas dépasser ceux associés au type d'utilisateur attribué au membre. Par exemple, un membre avec un type d'utilisateur Viewer ne peut pas se voir attribuer un rôle avec des privilèges d'édition.


Sous-réseaux spéciaux

Sous-réseaux 31 bits

Un masque de sous-réseau de 30 bits autorise quatre adresses IPv4 : deux adresses d'hôte, un réseau tout à zéro et une adresse de diffusion tout à un. Une liaison point à point ne peut avoir que deux adresses hôtes. Il n'y a pas vraiment besoin d'avoir les adresses de diffusion et tout zéro avec des liens point à point. Un masque de sous-réseau de 31 bits autorisera exactement deux adresses d'hôte et éliminera les adresses de diffusion et toutes les zéros, conservant ainsi l'utilisation d'adresses IP au minimum pour les liaisons point à point.

Reportez-vous à RFC 3021 - Utilisation de préfixes 31 bits sur les liaisons point à point IPv4.

Le masque est 255.255.255.254 ou /31.

Le sous-réseau /31 peut être utilisé sur de véritables liaisons point à point, telles que des interfaces série ou POS. Cependant, ils peuvent également être utilisés sur des types d'interfaces de diffusion comme les interfaces Ethernet. Si tel est le cas, assurez-vous qu'il n'y a que deux adresses IPv4 nécessaires sur ce segment Ethernet.

192.168.1.0 et 192.168.1.1 se trouvent sur le sous-réseau 192.168.1.0/31.

L'avertissement est imprimé car gigabitEthernet est un segment de diffusion.

Sous-réseaux 32 bits

Un masque de sous-réseau de 255.255.255.255 (un sous-réseau /32) décrit un sous-réseau avec une seule adresse d'hôte IPv4. Ces sous-réseaux ne peuvent pas être utilisés pour attribuer une adresse aux liens réseau, car ils nécessitent toujours plus d'une adresse par lien. L'utilisation de /32 est strictement réservée à une utilisation sur des liens ne pouvant avoir qu'une seule adresse. L'exemple pour les routeurs Cisco est l'interface de bouclage. Ces interfaces sont des interfaces internes et ne se connectent pas à d'autres appareils. En tant que tels, ils peuvent avoir un sous-réseau /32.


Quoi de neuf dans MDM pour Windows 10, version 1607

Article nouveau ou mis à jour La description
Chargement latéral d'applications À partir de Windows 10, version 1607, le chargement latéral d'applications n'est autorisé que via EnterpriseModernAppManagement CSP. Les clés de produit (5x5) ne seront plus prises en charge pour permettre le chargement latéral sur les appareils Windows 10, version 1607.
CSP NodeCache La valeur du nœud racine NodeCache à partir de Windows 10, version 1607 est com.microsoft/1.0/MDM/NodeCache.
CSP de protection des données d'entreprise Nouveau CSP.
Politique CSP Suppression des règles suivantes :
- DataProtection/AllowAzureRMSForEDP - a déplacé cette stratégie vers EnterpriseDataProtection CSP
- DataProtection/AllowUserDecryption - a déplacé cette stratégie vers EnterpriseDataProtection CSP
- DataProtection/EDPEnforcementLevel - a déplacé cette stratégie vers EnterpriseDataProtection CSP
- DataProtection/RequireProtectionUnderLockConfig - a déplacé cette stratégie vers EnterpriseDataProtection CSP
- DataProtection/RevokeOnUnenroll - a déplacé cette stratégie vers EnterpriseDataProtection CSP
- DataProtection/EnterpriseCloudResources - a déplacé cette stratégie vers la stratégie NetworkIsolation
- DataProtection/EnterpriseInternalProxyServers - a déplacé cette stratégie vers la stratégie NetworkIsolation
- DataProtection/EnterpriseIPRange - a déplacé cette stratégie vers la stratégie NetworkIsolation
- DataProtection/EnterpriseNetworkDomainNames - a déplacé cette stratégie vers la stratégie NetworkIsolation
- DataProtection/EnterpriseProxyServers - a déplacé cette stratégie vers la stratégie NetworkIsolation
- Security/AllowAutomaticDeviceEncryptionForAzureADJoinedDevices - cette stratégie a été dépréciée.

Ajout des politiques WiFi/AllowManualWiFiConfiguration et WiFi/AllowWiFi pour Windows 10, version 1607 :
- Windows 10 Professionnel
- Windows 10 Entreprise
- Windows 10 Éducation

Ajout des nouvelles règles suivantes :
- AboveLock/AutoriserCortanaAboveLock
- ApplicationManagement/DisableStoreOriginatedApps
- Authentification/AutoriserSecondaryAuthenticationDevice
- Bluetooth/AutoriserPréparation
- Navigateur/Autoriser les extensions
- Navigateur/EmpêcherAccessToAboutFlagsInMicrosoftEdge
- Navigateur/Afficher le message lors de l'ouverture des sites dans InternetExplorer
- DeliveryOptimization/DOAbsoluteMaxCacheSize
- Optimisation de la livraison/DOMaxDownloadBandwidth
- Optimisation de la livraison/DOMinBackgroundQoS
- Optimisation de la livraison/DOModifyCacheDrive
- DeliveryOptimization/DOMMonthlyUploadDataCap
- Optimisation de la livraison/DOPercentageMaxDownloadBandwidth
- DeviceLock/EnforceLockScreenAndLogonImage
- DeviceLock/EnforceLockScreenProvider
- Défenseur/PUAProtection
- Expérience/Autoriser les suggestions de tiers dans Windows Spotlight
- Expérience/AutoriserWindowsSpotlight
- Expérimenter/Configurer WindowsSpotlightOnLockScreen
- Notifications d'expérience/Ne pas afficher de commentaires
- Licence/AutoriserWindowsEntitlementActivation
- Licence/InterdictionKMSClientOnlineAVSValidation
- Verrouillage/AutoriserEdgeSwipe
- Cartes/Activer la mise à jour automatique des cartes hors ligne
- Maps/AllowOfflineMapsDownloadOverMeteredConnection
- Messagerie/AutoriserMessageSync
- NetworkIsolation/EnterpriseCloudResources
- NetworkIsolation/EnterpriseInternalProxyServers
- RéseauIsolation/EntrepriseIPRange
- NetworkIsolation/EnterpriseIPRangesAreAuthoritative
- NetworkIsolation/EnterpriseNetworkDomainNames
- NetworkIsolation/EnterpriseProxyServers
- NetworkIsolation/EnterpriseProxyServersAreAuthoritative
-Isolation Réseau/Ressources Neutres
- Notifications/DisallowNotificationMirroring
- Privacy/DisableAdvertisingId
- Confidentialité/LetAppsAccessAccountInfo
- Confidentialité/LetAppsAccessAccountInfo_ForceAllowTheseApps
- Confidentialité/LetAppsAccessAccountInfo_ForceDenyTheseApps
- Privacy/LetAppsAccessAccountInfo_UserInControlOfTheseApps
- Privacy/LetAppsAccessCalendar
- Privacy/LetAppsAccessCalendar_ForceAllowTheseApps
- Privacy/LetAppsAccessCalendar_ForceDenyTheseApps
- Privacy/LetAppsAccessCalendar_UserInControlOfTheseApps
- Privacy/LetAppsAccessCallHistory
- Privacy/LetAppsAccessCallHistory_ForceAllowTheseApps
- Privacy/LetAppsAccessCallHistory_ForceDenyTheseApps
- Privacy/LetAppsAccessCallHistory_UserInControlOfTheseApps
- Privacy/LetAppsAccessCamera
- Privacy/LetAppsAccessCamera_ForceAllowTheseApps
- Privacy/LetAppsAccessCamera_ForceDenyTheseApps
- Privacy/LetAppsAccessCamera_UserInControlOfTheseApps
- Privacy/LetAppsAccessContacts
- Privacy/LetAppsAccessContacts_ForceAllowTheseApps
- Privacy/LetAppsAccessContacts_ForceDenyTheseApps
- Privacy/LetAppsAccessContacts_UserInControlOfTheseApps
- Privacy/LetAppsAccessEmail
- Privacy/LetAppsAccessEmail_ForceAllowTheseApps
- Privacy/LetAppsAccessEmail_ForceDenyTheseApps
- Privacy/LetAppsAccessEmail_UserInControlOfTheseApps
- Privacy/LetAppsAccessLocation
- Privacy/LetAppsAccessLocation_ForceAllowTheseApps
- Privacy/LetAppsAccessLocation_ForceDenyTheseApps
- Privacy/LetAppsAccessLocation_UserInControlOfTheseApps
- Privacy/LetAppsAccessMessaging
- Privacy/LetAppsAccessMessaging_ForceAllowTheseApps
- Privacy/LetAppsAccessMessaging_ForceDenyTheseApps
- Privacy/LetAppsAccessMessaging_UserInControlOfTheseApps
- Privacy/LetAppsAccessMicrophone
- Privacy/LetAppsAccessMicrophone_ForceAllowTheseApps
- Privacy/LetAppsAccessMicrophone_ForceDenyTheseApps
- Privacy/LetAppsAccessMicrophone_UserInControlOfTheseApps
- Privacy/LetAppsAccessMotion
- Privacy/LetAppsAccessMotion_ForceAllowTheseApps
- Privacy/LetAppsAccessMotion_ForceDenyTheseApps
- Privacy/LetAppsAccessMotion_UserInControlOfTheseApps
- Privacy/LetAppsAccessNotifications
- Privacy/LetAppsAccessNotifications_ForceAllowTheseApps
- Privacy/LetAppsAccessNotifications_ForceDenyTheseApps
- Privacy/LetAppsAccessNotifications_UserInControlOfTheseApps
- Privacy/LetAppsAccessPhone
- Privacy/LetAppsAccessPhone_ForceAllowTheseApps
- Privacy/LetAppsAccessPhone_ForceDenyTheseApps
- Privacy/LetAppsAccessPhone_UserInControlOfTheseApps
- Privacy/LetAppsAccessRadios
- Privacy/LetAppsAccessRadios_ForceAllowTheseApps
- Privacy/LetAppsAccessRadios_ForceDenyTheseApps
- Privacy/LetAppsAccessRadios_UserInControlOfTheseApps
- Privacy/LetAppsAccessTrustedDevices
- Privacy/LetAppsAccessTrustedDevices_ForceAllowTheseApps
- Privacy/LetAppsAccessTrustedDevices_ForceDenyTheseApps
- Privacy/LetAppsAccessTrustedDevices_UserInControlOfTheseApps
- Privacy/LetAppsSyncWithDevices
- Privacy/LetAppsSyncWithDevices_ForceAllowTheseApps
- Privacy/LetAppsSyncWithDevices_ForceDenyTheseApps
- Privacy/LetAppsSyncWithDevices_UserInControlOfTheseApps
- Security/PreventAutomaticDeviceEncryptionForAzureADJoinedDevices
- Settings/AllowEditDeviceName
- Speech/AllowSpeechModelUpdate
- System/TelemetryProxy
- Update/ActiveHoursStart
- Update/ActiveHoursEnd
- Update/AllowMUUpdateService
- Update/BranchReadinessLevel
- Update/DeferFeatureUpdatesPeriodInDays
- Update/DeferQualityUpdatesPeriodInDays
- Update/ExcludeWUDriversInQualityUpdate
- Update/PauseFeatureUpdates
- Update/PauseQualityUpdates
- Update/SetProxyBehaviorForUpdateDetection
- Update/UpdateServiceUrlAlternate (Added in the January service release of Windows 10, version 1607)
- WindowsInkWorkspace/AllowWindowsInkWorkspace
- WindowsInkWorkspace/AllowSuggestedAppsInWindowsInkWorkspace
- WirelessDisplay/AllowProjectionToPC
- WirelessDisplay/RequirePinForPairing

Updated the Privacy/AllowAutoAcceptPairingAndPrivacyConsentPrompts description to remove outdated information.

Updated DeliveryOptimization/DODownloadMode to add new values.

Updated Experience/AllowCortana description to clarify what each supported value does.

Added the new 1.3 version of the DDF.


Create New Feature Class Based off Multiple Feature Classes - Geographic Information Systems

Reference: Sommerville, Software Engineering, 10 ed., Chapter 15

In most engineering disciplines, systems are designed by composing existing components that have been used in other systems. Software engineering has been more focused on original development but it is now recognized that to achieve better software, more quickly and at lower cost, we need a design process that is based on systematic software reuse. There has been a major switch to reuse-based development over the past 10 years.

  • System reuse: Complete systems, which may include several application programs.
  • Application reuse: An application may be reused either by incorporating it without change into other or by developing application families.
  • Component reuse: Components of an application from sub-systems to single objects may be reused.
  • Object and function reuse: Small-scale software components that implement a single well-defined object or function may be reused.
  • Accelerated development: Bringing a system to market as early as possible is often more important than overall development costs. Reusing software can speed up system production because both development and validation time may be reduced.
  • Effective use of specialists: Instead of doing the same work over and over again, application specialists can develop reusable software that encapsulates their knowledge.
  • Increased dependability: Reused software, which has been tried and tested in working systems, should be more dependable than new software. Its design and implementation faults should have been found and fixed.
  • Lower development costs: Development costs are proportional to the size of the software being developed. Reusing software means that fewer lines of code have to be written.
  • Reduced process risk: The cost of existing software is already known, whereas the costs of development are always a matter of judgment. This is an important factor for project management because it reduces the margin of error in project cost estimation. This is particularly true when relatively large software components such as subsystems are reused.
  • Standards compliance: Some standards, such as user interface standards, can be implemented as a set of reusable components. For example, if menus in a user interface are implemented using reusable components, all applications present the same menu formats to users. The use of standard user interfaces improves dependability because users make fewer mistakes when presented with a familiar interface.
  • Creating, maintaining, and using a component library: Populating a reusable component library and ensuring the software developers can use this library can be expensive. Development processes have to be adapted to ensure that the library is used.
  • Finding, understanding, and adapting reusable components: Software components have to be discovered in a library, understood and, sometimes, adapted to work in a new environment. Engineers must be reasonably confident of finding a component in the library before they include a component search as part of their normal development process.
  • Increased maintenance costs: If the source code of a reused software system or component is not available then maintenance costs may be higher because the reused elements of the system may become increasingly incompatible with system changes.
  • Lack of tool support: Some software tools do not support development with reuse. It may be difficult or impossible to integrate these tools with a component library system. The software process assumed by these tools may not take reuse into account. This is particularly true for tools that support embedded systems engineering, less so for object-oriented development tools.
  • Not-invented-here syndrome: Some software engineers prefer to rewrite components because they believe they can improve on them. This is partly to do with trust and partly to do with the fact that writing original software is seen as more challenging than reusing other people's software.

Although reuse is often simply thought of as the reuse of system components, there are many different approaches to reuse that may be used. Reuse is possible at a range of levels from simple functions to complete application systems. The reuse landscape covers the range of possible reuse techniques.

  • The development schedule for the software.
  • The expected software lifetime.
  • The background, skills and experience of the development team.
  • The criticality of the software and its non-functional requirements.
  • The application domain.
  • The execution platform for the software.

Frameworks are moderately large entities that can be reused. They are somewhere between system and component reuse. Frameworks are a sub-system design made up of a collection of abstract and concrete classes and the interfaces between them. The sub-system is implemented by adding components to fill in parts of the design and by instantiating the abstract classes in the framework.

Application frameworks are moderately large entities that can be reused. They are somewhere between system and component reuse. Frameworks are a sub-system design made up of a collection of abstract and concrete classes and the interfaces between them. The sub-system is implemented by adding components to fill in parts of the design and by instantiating the abstract classes in the framework.

Web application frameworks (WAF) support the construction of dynamic websites as a front-end for web applications. WAFs are now available for all of the commonly used web programming languages e.g. Java, Python, Ruby, etc. Interaction model is based on the Model-View-Controller composite design pattern. An MVC framework supports the presentation of data in different ways and allows interaction with each of these presentations. When the data is modified through one of the presentations, the system model is changed and the controllers associated with each view update their presentation.

  • Security: WAFs may include classes to help implement user authentication (login) and access.
  • Dynamic web pages: Classes are provided to help you define web page templates and to populate these dynamically from the system database.
  • Database support: The framework may provide classes that provide an abstract interface to different databases.
  • Session management: Classes to create and manage sessions (a number of interactions with the system by a user) are usually part of a WAF.
  • User interaction: Most web frameworks now provide AJAX support, which allows more interactive web pages to be created.

Frameworks are generic and are extended to create a more specific application or sub-system. They provide a skeleton architecture for the system. Extending the framework involves Adding concrete classes that inherit operations from abstract classes in the framework Adding methods that are called in response to events that are recognized by the framework. Problem with frameworks is their complexity which means that it takes a long time to use them effectively.

  • Component and system configuration
  • Adding new components to the system
  • Selecting from a library of existing components
  • Modifying components to meet new requirements.
  • Core components that provide infrastructure support. These are not usually modified when developing a new instance of the product line.
  • Configurable components that may be modified and configured to specialize them to a new application. Sometimes, it is possible to reconfigure these components without changing their code by using a built-in component configuration language.
  • Specialized, domain-specific components some or all of which may be replaced when a new instance of a product line is created.
  • Application frameworks rely on object-oriented features such as polymorphism to implement extensions. Product lines need not be object-oriented (e.g. embedded software for a mobile phone)
  • Application frameworks focus on providing technical rather than domain-specific support. Product lines embed domain and platform information.
  • Product lines often control applications for equipment.
  • Software product lines are made up of a family of applications, usually owned by the same organization.

Product line architectures must be structured in such a way to separate different sub-systems and to allow them to be modified. The architecture should also separate entities and their descriptions and the higher levels in the system access entities through descriptions rather than directly.

  • Different versions of the application are developed for different platforms.
  • Different versions of the application are created to handle different operating environments par exemple. different types of communication equipment.
  • Different versions of the application are created for customers with different functional requirements.
  • Different versions of the application are created to support different business processes.
  • Design time configuration: The organization that is developing the software modifies a common product line core by developing, selecting or adapting components to create a new system for a customer.
  • Deployment time configuration: A generic system is designed for configuration by a customer or consultants working with the customer. Knowledge of the customer's specific requirements and the system's operating environment is embedded in configuration data that are used by the generic system.

An application system product is a software system that can be adapted for different customers without changing the source code of the system. Application systems have generic features and so can be used/reused in different environments. Application system products are adapted by using built-in configuration mechanisms that allow the functionality of the system to be tailored to specific customer needs.

  • As with other types of reuse, more rapid deployment of a reliable system may be possible.
  • It is possible to see what functionality is provided by the applications and so it is easier to judge whether or not they are likely to be suitable.
  • Some development risks are avoided by using existing software. However, this approach has its own risks, as I discuss below.
  • Businesses can focus on their core activity without having to devote a lot of resources to IT systems development.
  • As operating platforms evolve, technology updates may be simplified as these are the responsibility of the COTS product vendor rather than the customer.
  • Requirements usually have to be adapted to reflect the functionality and mode of operation of the COTS product.
  • The COTS product may be based on assumptions that are practically impossible to change.
  • Choosing the right COTS system for an enterprise can be a difficult process, especially as many COTS products are not well documented.
  • There may be a lack of local expertise to support systems development.
  • The COTS product vendor controls system support and evolution.

Configurable application systems are generic application systems that may be designed to support a particular business type, business activity or, sometimes, a complete business enterprise. For example, an application system may be produced for dentists that handles appointments, dental records, patient recall, etc. Domain-specific systems, such as systems to support a business function (e.g. document management) provide functionality that is likely to be required by a range of potential users.

An Enterprise Resource Planning (ERP) system is a generic system that supports common business processes such as ordering and invoicing, manufacturing, etc. These are very widely used in large companies - they represent probably the most common form of software reuse. The generic core is adapted by including modules and by incorporating knowledge of business processes and rules. A number of modules to support different business functions. A defined set of business processes, associated with each module, which relate to activities in that module. A common database that maintains information about all related business functions. A set of business rules that apply to all data in the database.

  • A number of modules to support different business functions.
  • A defined set of business processes, associated with each module, which relate to activities in that module.
  • A common database that maintains information about all related business functions.
  • A set of business rules that apply to all data in the database.
  • Selecting the required functionality from the system.
  • Establishing a data model that defines how the organization's data will be structured in the system database.
  • Defining business rules that apply to that data.
  • Defining the expected interactions with external systems.
  • Designing the input forms and the output reports generated by the system.
  • Designing new business processes that conform to the underlying process model supported by the system.
  • Setting parameters that define how the system is deployed on its underlying platform.

Integrated application systems

  • Which individual application systems offer the most appropriate functionality? Typically, there will be several application system products available, which can be combined in different ways.
  • How will data be exchanged? Different products normally use unique data structures and formats. You have to write adaptors that convert from one representation to another.
  • What features of a product will actually be used? Individual application systems may include more functionality than you need and functionality may be duplicated across different products.

Application system integration can be simplified if a service-oriented approach is used. A service-oriented approach means allowing access to the application system's functionality through a standard service interface, with a service for each discrete unit of functionality. Some applications may offer a service interface but, sometimes, this service interface has to be implemented by the system integrator. You have to program a wrapper that hides the application and provides externally visible services.


Voir la vidéo: Combiner les classes dentités arcgis