Système de fichiers virtuel

Pourquoi un système d'exploitation virtuel ?

L'inter-connexion des systèmes informatiques au moyen de réseau permet de rapprocher des clients et des serveurs selon différents protocoles de communication. Ceux-ci permettent de manipuler les fichiers et les répertoires avec plus ou moins d'aisance même si in fine l'offre fonctionnelle est quasi-identique.

Le besoin de mobilité, que ce soit pour les informations inter-entreprises ou pour les personnes, nécessitent d'embarquer et de débarquer des répertoires et des fichiers aisément. Idéalement, cela s'effectue de façon transpartente.

Certains systèmes d'exploitation ne comportent pas de systèmes de fichiers arborescents. Par exemple Os 400. Sans ce système de fichiers virtuels, Up ! Application System serait indisponible.

Le système de fichiers virtuel d'Up ! System répond à ces besoins et à ceux du futur.

Concepts du système d'exploitation virtuel

Services

Le système d'exploitation virtuel s'appuie sur des modules complémentaires étendant Up ! System et mettant en oeuvre une norme ou un standard particulier offrant des services relatif au cycle de vie des répertoires et des fichiers.

Il existe un service trivial correspondant au système de fichiers réel du système d'exploitation sur lequel fonctionne Up ! Application System. Voici les autres services :

ServiceDescription
Up ! ArchiveArchivage de répertoires et de fichiers sur un support portable.
Le périmètre est généralement Extranet.
Up ! Content Service ServiceHébergement de de fichiers sur un serveur distant.
La norme de communication est Hyper Text Transfer Protocol.
Le périmètre est généralement Internet.
Up ! File Transfer ServiceHébergement de répertoires et de fichiers sur un serveur distant.
La norme de communication est File Transfer Protocol.
Le périmètre est généralement Internet.
Up ! Object Request BrokerHébergement de répertoires et de fichiers sur un serveur distant.
La norme de communication est Up ! Object Request Broker.
Le périmètre est généralement Intranet.

Point de montage

Chaque système de fichiers réels est accosté sur le système de fichiers virtuel au travers d'une interface normalisée dont les paramètres sont :

Identification normalisée

L'identification d'un fichier ou d'un répertoire du système de fichiers virtuel s'effectue par :

Voici la valeur des schémas :

StandardNom du moduleValeur du schéma
ArchiveUp ! ArchiveUpsArc
HyperText Transfer ProtocolUp ! Content Servicehttp
https
UpsCns
File Transfer ProtocolUp ! File Transfer Serviceftp
ftps
UpsFts
Objets et appels distribués.Up ! Object Request BrokerUpsOrb
Système d'exploitation de la plate-forme.Up ! Systemfile
UpsSys

Application Program Interface transparentes

Les Application Program Interfaces (API) d'Up ! System permet de créer, modifier, supprimer ou consulter les fichiers ou les répertoires pour tous les systèmes de fichiers accostés à Up ! System indépendemment de leur mise en oeuvre réel.

Le principe d'usage est le suivant :

Voici les Application Program Interfaces (API) d'Up ! System pour le système de fichier virtuel :

Application Program InterfacesSémantique
BornerRepertoireBorne d'un chemin d'accès par le séparateur de répertoires.
ChangerDroitsDAccesChangement des droits d'accès d'un de répertoire ou d'un fichier.
ChangerRepertoireCourantChangement de répertoire courant.
CopierFichierCopie d'un fichier.
CopierRepertoireCopie d'un répertoire.
CreerFichierCréation d'un fichier vide.
CreerRepertoireCréation d'un répertoire vide.
ExtraireNomFichierExtraction du nom de fichier d'un chemin complet.
ExtraireNomRepertoireExtraction du nom de répertoire d'un chemin complet.
IlExisteFichierTest de l'existence d'un fichier.
IlExisteRepertoireTest de l'existence d'un répertoire.
LireCaracteristiquesFichierLecture des caractéristiques d'un répertoire ou d'un fichier.
LireDroitsDAccesLecture des droits d'accès d'un répertoire ou d'un fichier.
LireRepertoireCourantLecture du répertoire courant.
ListerFichiersListage des répertoires ou des fichiers.
ListerUnitesListage des unités de stockage des points de montage.
SupprimerFichierSuppression d'un fichier.
RechercherFichierDansCheminRecherche un fichier dans un chemin.
RenommerFichierRenommage d'un fichier.
RenommerRepertoireRenommage d'un réperoire.
SupprimerRepertoireSuppression d'un répertoire vide.

Nota bene :
La norme HyperText Transport Protocol n'étant pas prévue pour être utilisée en système de fichiers, les Application Program Interface (API) suivantes sont inopérantes :

Pour CopierFichier, CopierRepertoire, RenommerFichier et RenommerRepertoire, les fichiers de départ et d'arrivée ne font pas forcément partie du même système de fichiers.

En particulier, CopierFichier, CopierRepertoire sont utilisées pour faire des transferts de fichiers depuis ou vers un serveur de fichiers ou des archives.

Voici les Application Program Interfaces (API) d'Up ! System pour un fichier :

Application Program InterfacesSémantique
FichierOuverture d'un fichier.
Fichier.EcrireEcriture dans un fichier.
Fichier.FermerFermeture d'un fichier.
Fichier.ChangerPageDeCodeChangement de la page de code du fichier.
Fichier.DeposerSurDisqueDépôt des tampons du système d'exploiration sur disque.
Fichier.FixerPositionFixation de la position dans le fichier.
Fichier.LireLecture dans un fichier.
Fichier.LirePageDeCodeLecture de la page de code du fichier.
Fichier.LirePositionLecture de la position dans le fichier.
Fichier.LireUneLigneLecture d'une ligne dans un fichier.
Fichier.LireUnMotLecture d'un mot dans un fichier.
Fichier.ViderVidage du contenu des tampons applicatifs.

Accès distant

Tous les répertoires et tous les fichiers utilisés au travers des Application Program Interfaces (API) précédentes peuvent comporter un accès distant.

Un accès distant référencie un serveur de type Serveur introduit par l'opérateur @. En ce cas, la commande est déportée sur le serveur désigné via Up ! Object Request Broker.

Cela est similaire à l'usage de l'opérateur accès distant utilisé pour référencer une variable, un appel ou un objet sémantique hébergé sur un serveur.

Voici un exemple :
Principal
/*******/
Variable
/******/


Debut
F=Fichier("/tmp/essai.txt@MonServeur", EcritureTexte);
F.Ecrire("coucou");
F.Fermer();
Fin Principal

Utiliser l'accès distant pour les fichiers et les répertoires est équivalent à utiliser une Uniform Resource Identifier (URI) avec le schéma UpsOrb. Voici l'équivalent de l'exemple précédent :

Principal
/*******/
Variable
/******/


Debut
F=Fichier("UpsOrb://MonSeveur/tmp/essai.txt", EcritureTexte);
F.Ecrire("coucou");
F.Fermer();
Fin Principal

Montage automatique de partitions

Up ! System monte automatiquement les partitions déclarées dans le fichier ${UPS_HOME}/ini/upssys.ini en mode mono-utilisateur et ${UPS_HOME}/ini/${UPS_USER}/upssys.ini en mode multi-utilisateur.

Toutes les Application Program Interface (API) précédentes utilisent la table des partitions pour localiser les fichiers, les répertoires ou les exécutables et pour vérifier l'accès demandé.

Les partitions sont définies à partir des entrées suivantes :

EntréeSémantique
DroitsDAccesDroits d'accès aux fichiers, aux répertoire et aux exécutables.
Pour plus de précisions, merci de se référer à DroitsDAcces.
MotDePasseMot de passe de connexion au serveur.
PointMontagePoint de montage i.e. répertoire virtuel.
URIServeurURI du serveur.
UtilisateurUtilisateur de connexion au serveur.

Voici un exemple :
; -------------------------------------------------------------------
; Fichier : upssys.ini
; Objet : Initialisation d'Up ! System.
;
; Module : Up ! Application System.
; Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.
; -------------------------------------------------------------------
; Observations
;
;
; -------------------------------------------------------------------

[UpsSys]
; /
;--
URIServeur1=UpsSys://local
PointDeMontage1=/
DroitsDAcces1=DroitLectureEcritureExecution
; /users1
;--------
URIServeur2=UpsArc://${UPS_HOME}/demo/tmp/${UPS_USER}/monarchive.uar
PointDeMontage2=/users1
DroitsDAcces2=DroitLectureEcriture
; /users2
;--------
URIServeur3=UpsCns://127.0.0.1/tmp
PointDeMontage3=/users3
Utilisateur3=king
MotDePasse3=elephant
DroitsDAcces3=DroitLectureEcriture
; /users3
;--------
URIServeur4=UpsFtp://tmp
PointDeMontage4=/users2
Utilisateur4=scott
MotDePasse4=tiger
DroitsDAcces4=DroitLectureEcriture
; /users4
;--------
URIServeur5=UpsOrb://Soleil/tmp
PointDeMontage5=/users3
Utilisateur5=king
MotDePasse5=elephant
DroitsDAcces5=DroitLectureEcriture
; /users5
;--------
URIServeur6=UpsSys://${UPS_HOME}/demo/tmp/
PointDeMontage6=/users4
DroitsDAcces6=DroitLectureEcriture

L'intérêt d'utiliser les partitions montées automatiquement et de pouvoir changer la configuration de déploiement des applications sans paramétrage spécifique et sans modifier les sources des programmes.

Dans l'exemple précédent, la première entrée correspond à la déclaration du système de fichiers du système d'exploitation monté sur /. Il aurait été possible de limiter la vue des programmes en technologie Up ! Virtual Technical Machine à une partie du système de fichier et de restreindre les droits d'accès.