Publication des artefacts WSDL et XSD
Problématique
Les contrats de services sont versionnés tout comme les modèles pivots. Cela est indispensable pour figer durablement et contractuellement ces éléments.
L'arbre de dépendances complet est alors le suivant:
Comment organiser les déploiements WSDL et XSD des pivots convenablement ?
Publication des modèles pivots
Un référentiel de modèles pivots doit être définis et proposés.
Celui-ci peut être une simple exposition de fichiers XSD par un serveur Web. La gestion de ces fichiers doit être réalisés par un gestionnaire de sources tels que Git ou Subversion.
L'organisation du contenu doit se faire par une structuration hiérarchique et versionnée:
/schema/<domaine>/<sous-domaine>/<version majeure>/<files>.xsd
Exemple:
2 modèles publiées:
- /shema/A/AA1/1/X.xsd
- /shema/B/BB1/2/Y.xsd
Les imports de fichiers doivent être relatifs et ne jamais faire référence à un serveur.
Publication des contrats WSDL
La publication des Contrats de services est similaire aux modèles pivots.
Ils sont exposés par un simple serveur Web. Les contrats suivent un modèle d'organisation similaire en domaine.
La gestion des versions se fait au niveau du contrat de service.
/wsdl/<domaine>/<sous-domaine>/<contrat>/<version majeure>
Exemple:
2 contracts de services publiés:
- /wsdl/A/AA/unContrat/1
- /wsdl/B/autreContrat/2
Dépendances avec les projets
Ces référentiels ont pour vocation de partager des artefacts en phase de DESIGN.
Les médiations de PRODUCTION doivent embarquer systématiquement les Contrats et les Schémas associés dans leurs livrables. Pour des raisons de dépendances dynamiques, il ne faut pas que celles-ci ne fonctionnent que lorsque ces référentiels sont disponibles. Leurs disponibilités ne doivent pas être un frein au Runtime.
Les médiations de PRODUCTION ne doivent pas être dépendants de ces référentiels de DESIGN.
Variante UDDI
La mise en oeuvre de 2 référentiels lèverait le problème soulevé. Un référentiel en DESIGN et un référentiel en RUNTIME.
Le référentiel de DESIGN est alors orienté documentation.
Le référentiel de RUNTIME est orienté recherche dynamique. Il s'agit d'un annuaire UDDI.
Middleware Solutions https://www.middleware-solutions.fr