Nameserver und Access Rights

Nameserver

Der GSI-eigene Nameserver soll den CORBA-Nameservice ersetzen. Folgende Punkte sind dabei besonders relevant:
  • identische Funktionalität
  • Verwaltung der CORBA-IORs (transient und persistent)
  • Erweiterung um Mitverwaltung der Access Pattern
  • Einfaches Entfernen von Geräten bei Aufruf des Destruktors am Programmende .
Client-Anfrage

Beim Aufruf der Funktion createDeviceReference(const char* nomen) wird in allen verfuegbaren Nameservices nachgesehen, ob das Geraet vorhanden ist. Wird ein Gerät im ersten Nameservice nicht gefunden, wird im nächsten Nameservice nachgesehen. Ist es dort vorhanden, wird die entsprechende Objektreferenz zurück geliefert. Diese enthält die IOR sowie das Access Pattern. Anderenfalls wird eine Exception geworfen und ein Fehler ausgegeben.
  • startet ein Client eine Anfrage, wird ein Thread gestartet, in dem die Anfrage beantwortet wird.
  • hier wird zunächst der "Kopf" des empfangenen Paketes ausgewertet. Anhand der Kodierung im angenommenen Paket wird entschieden, was zu tun ist.
  • im Falle eines Serverkommando's wird das entsprechende ausgeführt (Informationen liefern, Rechte neu laden oder LogLevel ändern).
  • des Weiteren kann man Geräte einfügen oder entfernen und die Rechte für einzelne Geräte oder Gruppen abfragen.
Implementierung

Mit Doxygen erzeugte Dokumentation: http://www.acc.gsi.de/dav/documentation/nameserver/

Access Rights

Um im Beschleuniger-Kontrollsystem auf Geräte zugreifen zu können, muss dem jeweiligen Benutzer ein entsprechendes Zugriffsrecht eingeräumt worden sein. Zugriffsrechte werden Nutzern eingeräumt, basierend auf den jeweiligen Login-Namen.

Zugriffsrechte werden geräte-spezifisch vergeben. Zur Vereinfachung können Zugriffsrechte für Gerätegruppen (z.B. alle Geräte eines Gerätemodells) vergeben werden.

Zugriffsrechte sind nach Kritikalität gestuft:
READ Lese-Zugriffe, die den Gerätezustand nicht verändern.
MODIFY Schreib-Zugriffe, die den Gerätezustand verändern
LOCALSYSTEM Räumt dem Benutzer Systemrechte für Systemkomponenten ein, die die jeweiligen Geräte bedienen (z.B. für SEs)
SYSTEM Zugriff auf Kontrollsystem-Eigenschaften
ADMINISTRATOR Freier Zugriff auf alle Komponenten

Jeder Property aller Geräte im Beschleuniger-Kontrollsytem ist eine der Kritikalitätsstufen READ, MODIFY, LOCALSYSTEM, SYSTEM, ADMINISTRATOR zugeordnet. Diese Einstufung gilt einheitlich für alle Geräte eines Gerätemodelles. Um auf eine Property zugreifen zu können, muss der Benutzer für das jeweilige Gerät mindestens das Zugriffsrecht für die Kritikalitätsstufe der Property haben.

Demgegenüber stehen die Zugriffsbeschränkungen der Properties, die ein bestimmtes Zugriffsrecht des Benutzers erfordern, damit dieser zugreifen kann.
FREE Keine Zugriffsbeschränkung
DEVICE Der Benutzer braucht mindestens das Zugriffsrecht MODIFY, um auf die Property des Gerätes zugreifen zu können
SYSTEM Der Benutzer braucht mindestens das Zugriffsrecht SYSTEM bzw. LOCALSYSTEM, um auf die Property des Gerätes zugreifen zu können
CRITICAL Der Benutzer braucht das Zugriffsrecht ADMINISTRATOR, um auf die Property des Gerätes zugreifen zu können

Zur Verdeutlichung von LOCALSYSTEM: Hat ein Benutzer dieses Zugriffsrecht z.B. für das Gerätemodell DGX, dann darf er auch auf die Property INIT aller SEs, die DGX-EQMs enthalten, zugreifen. Die INIT-Property des Gerätemodells EC hat die Zugriffsbeschränkung SYSTEM.

Weitergehende Informationen sind erhältlich zu Zugriffsrechte im Kontrollsystem sowie zur Spezifikation der Zugriffsrechte in der Rechte-Datei.

This topic: Frontend > PPCDevelopments > Nameserver
Topic revision: 18 Aug 2011, UnknownUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback