Publication des artefacts WSDL et XSD

Objectif(s)
  1. Diffuser les artefacts de référence en Design
  2. Publier les artefacts en Production
Cible(s) 

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.