Les données et les in­for­ma­tions sont stockées dans un ré­fé­ren­tiel, où elles peuvent être con­sul­tées et modifiées. Il existe dif­fé­rents ré­fé­ren­tiels qui sont utilisés pour le contrôle des versions, les mé­ta­don­nées, etc.

Qu’est-ce qu’un ré­fé­ren­tiel ?

Dans le domaine de la pro­gram­ma­tion, un ré­fé­ren­tiel (re­po­si­tory en anglais) constitue une archive numérique dans laquelle les données, les documents, les progrès de dé­ve­lop­pe­ment, les mé­ta­don­nées et les pro­grammes peuvent être conservés et consultés. Ce n’est pas qu’un simple stockage : il permet également de contrôler les versions. Le ré­fé­ren­tiel facilite le travail col­la­bo­ra­tif sur des projets communs, même avec un grand nombre de par­ti­ci­pants ou une large distance géo­gra­phique. On distingue dif­fé­rentes formes de ré­fé­ren­tiels, qui se dif­fé­ren­cient par leur approche et leur structure. Les plus connus sont GitHub et Google Re­po­si­tory.

La base d’un ré­fé­ren­tiel est gé­né­ra­le­ment une base de données qui, selon les besoins, peut être installée sur un disque dur local, de manière cen­tra­li­sée sur un serveur ou répartie dans un Content Delivery Network (CDN), c’est-à-dire une as­so­cia­tion de nombreux serveurs dif­fé­rents. Sur cette base, des ca­ta­logues de données sont créés, qui con­tien­nent non seulement les formes et les re­pré­sen­ta­tions des dif­fé­rents objets stockés, mais four­nis­sent également des in­for­ma­tions sur leurs relations mutuelles. Toutes ces in­for­ma­tions sont stockées sous forme de mé­ta­don­nées et peuvent donc être re­cher­chées, con­sul­tées, modifiées et adaptées à tout moment avec l’au­to­ri­sa­tion cor­res­pon­dante.

Quelle est la structure d’un ré­fé­ren­tiel ?

La structure d’un ré­fé­ren­tiel peut être illustrée par l’image d’un arbre. Celle-ci se retrouve également dans le domaine du dé­ve­lop­pe­ment de logiciels. On y fait la dis­tinc­tion entre le tronc (trunk en anglais), qui contient la version actuelle d’un projet ainsi que le code source, et les branches (branches en anglais), dans les­quelles sont en­re­gis­trées les mo­di­fi­ca­tions et les nou­veau­tés. Celles-ci sont ensuite ajoutées à la racine, afin que tous les par­ti­ci­pants aient accès à tous les états de dé­ve­lop­pe­ment. Le stockage fonc­tionne à l’aide de balises.

Quels sont les dif­fé­rents types de ré­fé­ren­tiels ?

Tous les ré­fé­ren­tiels ne se res­semblent pas ; c’est pourquoi il faut commencer par dis­tin­guer le type d’archive requis. En principe, il existe de nom­breuses approches dif­fé­rentes, mais les suivantes sont les plus connues.

Ré­fé­ren­tiel pour la gestion des versions

L’objectif de la gestion des versions est de stocker les données, les étapes de travail et les con­nexions de manière logique et claire dans une archive commune. Les fichiers de code source et autres données y sont déposés et archivés. Si un dé­ve­lop­peur souhaite continuer à tra­vail­ler sur un projet, les données peuvent être copiées du ré­fé­ren­tiel sur un disque dur local. Cette opération est appelée « ex­trac­tion ». Le dé­ve­lop­peur travaille alors avec les données locales, effectue des mo­di­fi­ca­tions ou rejette les mo­di­fi­ca­tions pré­cé­dentes. Une fois le travail terminé, la dernière version du projet est à nouveau chargée dans le ré­fé­ren­tiel. Toutes les mo­di­fi­ca­tions et tous les com­men­taires sont alors consignés.

Cette approche présente plusieurs avantages. Les uti­li­sa­teurs peuvent tra­vail­ler sur un projet sans que les anciennes versions soient écrasées. Au contraire, tous les états de dé­ve­lop­pe­ment sont consignés, de sorte qu’il est possible de revenir à un ancien état de dé­ve­lop­pe­ment en cas d’erreur ou de dé­ve­lop­pe­ment incorrect. De plus, un tel ré­fé­ren­tiel permet de tra­vail­ler en équipe sur un seul et même projet. Toutes les personnes con­cer­nées vérifient leurs états et peuvent ainsi dé­ve­lop­per en parallèle sans que les états soient écrasés ou que les mo­di­fi­ca­tions soient perdues. Tous les par­ti­ci­pants peuvent théo­ri­que­ment continuer à tra­vail­ler à partir de n’importe quelle version, sans problèmes, accords préa­lables ou risques.

Les systèmes de gestion de versions les plus connus sont CVS, GitHub et SVN.

Ré­fé­ren­tiel de mé­ta­don­nées

Un ré­fé­ren­tiel de mé­ta­don­nées est surtout utilisé dans le segment des in­fras­truc­tures in­for­ma­tiques très complexes. Un tel ré­fé­ren­tiel contient des données de l’ensemble du système ainsi que des in­for­ma­tions sur les contextes et l’en­vi­ron­ne­ment de l’in­fras­truc­ture. L’avantage est que d’éven­tuelles mo­di­fi­ca­tions ne né­ces­si­tent pas d’in­ter­ven­tion dans le code source pro­pre­ment dit. L’im­plé­men­ta­tion de pro­grammes sup­plé­men­taires peut également être évitée. Au lieu de cela, la table de la base de données, qui constitue la base du système en question, est modifiée fa­ci­le­ment. Le ré­fé­ren­tiel de mé­ta­don­nées est par­ti­cu­liè­re­ment utilisé dans le cadre de l’in­té­gra­tion d’ap­pli­ca­tions d’en­tre­prise (IAE) et dans le domaine des entrepôts de données.

Ré­fé­ren­tiel pour les logiciels

Pour les uti­li­sa­teurs de Linux, le ré­fé­ren­tiel de logiciels est un outil important pour le travail quotidien. Celui-ci contient en premier lieu les pro­grammes et les mé­ta­don­nées cor­res­pon­dantes telles que les ex­pli­ca­tions, les notes, les dé­pen­dances et les mo­di­fi­ca­tions. L’ins­tal­la­tion et toutes les mises à jour sont ef­fec­tuées à l’aide d’un ges­tion­naire de paquets. Ainsi, les uti­li­sa­teurs n’ont pas à s’occuper de l’actualité de leurs ap­pli­ca­tions, mais main­tien­nent au­to­ma­ti­que­ment leur système à jour. Celles-ci pro­vien­nent souvent de la com­mu­nauté. Les main­te­neurs de paquets mettent à dis­po­si­tion les données ac­tua­li­sées et gèrent le ré­fé­ren­tiel logiciel cor­res­pon­dant.

Ré­fé­ren­tiel pour les serveurs de documents

Pour les pu­bli­ca­tions en réseau et les serveurs de documents de grande envergure, le ré­fé­ren­tiel est également utilisé, du moins au sens figuré. Bien entendu, certaines par­ti­cu­la­ri­tés ne sont pas reprises telles quelles, mais la procédure est adaptée à l’uti­li­sa­tion. Des archives ouvertes connues comme arXiv mettent ainsi à la dis­po­si­tion du grand public de nom­breuses pu­bli­ca­tions dans les domaines de la biologie, de l’in­for­ma­tique, des ma­thé­ma­tiques, de la physique et des sta­tis­tiques. Un expert vérifie les nouveaux articles et les autorise ou les refuse. Les ouvrages scien­ti­fiques sont alors dis­po­nibles à la con­sul­ta­tion. Cependant, la fonction d’édition, dis­po­nible avec le ré­fé­ren­tiel pour la gestion des versions, est supprimée.

Ré­fé­ren­tiel pour CASE

Un ré­fé­ren­tiel est souvent utilisé dans le domaine du dé­ve­lop­pe­ment de logiciels assisté par or­di­na­teur (Computer-aided Software En­gi­nee­ring). Il est surtout utilisé pour en­re­gis­trer les données de projet, la do­cu­men­ta­tion et le code source.

Quel est l’intérêt des ré­fé­ren­tiels ?

Il existe de nombreux ré­fé­ren­tiels distincts pour dif­fé­rents cas d’uti­li­sa­tion. Il est même possible de faire la dis­tinc­tion entre les solutions open source et celles qui sont proposées dans le commerce. Le ré­fé­ren­tiel open source le plus connu est cer­tai­ne­ment GitHub. Il existe aussi de nom­breuses al­ter­na­tives à GitHub comme Apache Allura, Bazaar, Gitolite, Mercurial ou Sour­ce­Forge. Vous trouverez également une com­pa­rai­son précise entre GitHub et GitLab dans le Digital Guide. Parmi les ré­fé­ren­tiels pro­prié­taires les plus connus, on trouve Alien­brain, Bitkeeper, IBM Rational Synergy ou MySQL Yum.

L’intérêt d’un ré­fé­ren­tiel dépend avant tout de vos exigences et de votre méthode de travail. Un ré­fé­ren­tiel peut faciliter con­si­dé­ra­ble­ment le travail et optimiser le flux de travail, en par­ti­cu­lier pour les équipes. Même si des col­la­bo­ra­teurs accèdent à un projet et apportent des mo­di­fi­ca­tions à des moments et des endroits dif­fé­rents, la base elle-même reste toujours sécurisée. Il est donc possible d’essayer des solutions sans mettre en péril les progrès réalisés au­pa­ra­vant. Puisqu’il existe de nom­breuses solutions open source per­for­mantes, mieux vaut d’abord les tester et ne passer à une version com­mer­ciale qu’en cas de besoin.

Comment fonc­tionne un ré­fé­ren­tiel ?

Bien utilisé, un ré­fé­ren­tiel peut donc apporter de nombreux avantages. L’exemple de la pla­te­forme d’hé­ber­ge­ment GitHub montre bien comment cela fonc­tionne. Après l’ins­tal­la­tion et la con­fi­gu­ra­tion de GitHub, une interface uti­li­sa­teur très intuitive vous attend. Des tâches peuvent y être at­tri­buées et traitées in­dé­pen­dam­ment les unes des autres. Pour les mo­di­fi­ca­tions, on utilise des commits et des pulls, qui sont tous clai­re­ment ré­per­to­riés. Ainsi, non seulement la direction de l’équipe garde un œil sur toutes les étapes de travail, mais tous les membres peuvent également suivre le projet dans les moindres détails. Si vous souhaitez en savoir plus sur le principe de la pla­te­forme, vous pouvez consulter notre tutoriel Git in­for­ma­tif.

Aller au menu principal