Quotas sur les appels et les entrepôts

Quotas sur les ressources...
Vérification des quotas...

Up ! 5GL permet de créer des applications utilisées en multi-utilisateurs. Sans contrôle particulier, chaque utilisateur, i.e chaque programme se connectant à un programme serveur, est en mesure de déclencher n'importe quel traitement et de créer autant d'objets qu'il le désire.

Ce principe libéral, convenant parfaitement à des applications légères, pose les problèmes suivants :

Up ! 5GL et Up ! Security Manager possèdent des fonctions permettant de gérer aisément ces situations, afin de contingenter l'usage des ressources. Ces fonctions sont débrayables de la sorte à ne pas pénaliser les applications légères. En effet, ces fonctions sont utiles lorsque l'application comporte des serveurs persistants. Un quota limite sur la consommation d'une ressource particulière portant sur un module, un type, sur un objet, sur un appel de procédure ou de fonction d'un module, sur un appel de méthode d'un type. Les appels d'un module ou les méthodes d'un type supportent les quotas s'ils possèdent l'attribut Quota. Les quotas sont définis au niveau des rôles.

Les quotas sont modélisés par les types Quotas et QuotaUnitaire de Up ! Security Manager selon la hiérarchie suivante :

Des méthodes du type Role de Up ! Security Manager permettent respectivement de : Un quota sur le temps d'exécution est limite sur la consommation de Cpu est de deux ordres : Un quota sur un entrepôt limite l'occupation en volume de l'entrepôt. Il n'est pas possible de créer plus d'objets que le quota l'autorise. Ce quota s'exprime en octets.

Revenir en haut de la page...
Dès lors que les quotas sont déclarés, Up ! Security Manager les vérifie. Si une vérification échoue alors : Pour le quota proportionnel de temps d'exécution, dès que la proportion est atteinte, Up ! System commute automatiquement de tâches pour rendre le Cpu à une autre tâche de l'application en technologie Up ! Virtual Technical Machine ou d'une autre application.

Revenir en haut de la page...