Vorheriges Thema: Syntax des Komponenten-DeskriptorsNächstes Thema: Entität "Volume"


Übersicht

Der Komponentendeskriptor enthält eine Komponentenentität, die entweder eine Singleton-Komponente oder eine instanzierbare Klasse von Komponenten (vom Typ "instantiable") definiert. Die Definition eines Singletons und die Definition einer Klasse unterscheiden sich lediglich darin, dass instanzierbare Klassen in einer Komponentenbibliothek, einem so genannten Katalog, enthalten sein müssen. Beide Typen von Komponenten können als Assembly verwendet werden. Ein Singleton kann aber nur einmal in einer Anwendungsstruktur vorkommen, während eine Komponente vom Typ "instantiable" mehrmals wiederverwendet verwendet werden kann.

Es folgen zwei Beispiele für die Komponentendeskriptorstruktur. Das erste Beispiel zeigt das aktuelle Standardformat, das zweite Beispiel veranschaulicht das alte Format der Startinformationsspezifikation. Das alte Format wird uneingeschränkt unterstützt, um die Kompatibilität mit vorhandenen Katalog-Appliances zu gewährleisten.

component name
   { 
   volume sname : dev= pathname [, mount= pathname][, ro] [, high_bw] 

   resource cpu : min= val , max= val
   resource mem : min= val , max= val , abs= val
   resource bw  : min= val , max= val

   (input|output)  sname : protocol= name [, mandatory ][, alias = dnsname ] 
   interface  sname

   property  sname  : type=(string|integer|ip_addr) [, filter= regexp ] \
                    [,min= val ,max= val ] [, (mandatory| dflt= val) ] 
   property  sname  : type=(string|integer) [, values= v1|v2|v3... ] \
                    [, (mandatory| dflt= val ) ] 
   .config_mode=(dhcp|volfix) 
   virtualization: modes="[xen_pv][,xen_hvm][,vmware][,...]" 
      { 
      path = filename 
      initrd = filename 
      options = " string " 
      console = " string " 
      device_schema = " string " 
      } 

   visual 
      { 
      ... 
      } 
   } 
component name
   { 
   volume sname : dev= pathname, [, ro] [, high_bw] 

   resource cpu : min= val , max= val
   resource mem : min= val , max= val , abs= val
   resource bw  : min= val , max= val

   (input|output)  sname : protocol= name = [, mandatory][, alias = dnsname =] 
   interface  sname

   property  sname  : type=(string|integer|ip_addr) [, filter= regexp ] \
                    [,min= val ,max= val ] [, (mandatory| dflt= val) ] 
   property  sname  : type=(string|integer) [, values= v1|v2|v3... ] \
                    [, (mandatory| dflt= val ) ] 
   cfgfiles 
      [ 
      vol= sname , path= filename
      vol= sname , path= filename
      ... 
      ] 

   kernel: path= filename  [, initrd = filename ] [, options = " string" ] 

   visual 
      { 
      ... 
      } 
   } 

Für die Entität "component" wurden die folgenden Attribute definiert:

.migrateable

Wenn dieses Attribut festgelegt ist, ermöglicht es der Komponente, von einer CPU auf eine andere verschoben zu werden (vorausgesetzt, die Komponente wird auf einem virtuellen Rechner ausgeführt und die VM-Migration wird unterstützt). Dieses Attribut muss in einer Komponente nicht angegeben werden. Der Standardwert - wenn nichts angegeben wird - lautet 1 (WAHR). Dies ist ein boolesches Attribut (zulässige Werte: 0, no, false, 1, yes, true; kann auch ohne Wert innerhalb der Zeile angegeben werden und bedeutet dann "1").
Wird dieses Attribut nicht angegeben, wird standardmäßig von der Angabe ".migrateable=1" ausgegangen. Dies unterscheidet sich von den meisten anderen in ADL definierten booleschen Attributen, die den Standardwert 0 haben.

.server

Wenn ".migrateable" auf 0 festgelegt wird, definiert dieses Attribut den Namen des Servers, auf dem diese Komponente ausgeführt werden soll. Dieses Attribut und das Attribut ".migrateable" werden üblicherweise von einer äußeren Assembly und nicht im Komponentendeskriptor selbst festgelegt. Der Compiler zeigt eine Warnung an, wenn dieses Attribut in der Komponente festgelegt wird.

.standby

Wenn das Attribut festgelegt wird, heißt dies, dass die Komponente nicht automatisch zusammen mit der Anwendung gestartet wird. Das Attribut ".standby" ist nicht dafür vorgesehen, in einem Komponentendeskriptor direkt festgelegt zu werden. Normalerweise wird es von einer Assembly festgelegt, die die Komponente enthält, oder an die Assembly der obersten Ebene einer Anwendung weitergeleitet, damit Teile der Anwendung durch das Ändern der Anwendungseigenschaften (die in der Assembly der obersten Ebene gespeichert werden - siehe Paketdeskriptor) aktiviert und deaktiviert werden können. Dies ist ein boolesches Attribut.

.boot_tout

Zeitüberschreitung für den Startvorgang in Sekunden. Wenn das Attribut angegeben und auf einen Wert ungleich Null festgelegt wird, wird damit die Zeitspanne angegeben, die die Anwendungscontroller warten soll, bis die Komponente aktiv ist, bevor davon ausgegangen wird, dass sie nicht gestartet werden konnte. Wenn dieses Attribut weggelassen oder auf Null festgelegt wird, dann wird ein für den CA AppLogic®-Controller konfigurierter Standardwert verwendet.

.os_type

veraltet Dieses Attribut sollte in neu erstellten Deskriptoren nicht verwendet werden. Lesen Sie stattdessen die Beschreibung der Entität "virtualization". .os_type gibt das BS an, das diese Komponente verwendet. Diese Information ist erforderlich, damit mehrere auf virtuellen Rechnern ausgeführte BS-Typen unterstützt werden können. Der angegebene Wert wird nicht vom ADL-Buildsystem interpretiert. Er soll zusammen mit den Daten in der unten beschriebenen Entität "kernel" an den VM-Boot-Loader weitergegeben werden. Wenn nichts angegeben wird, wird "linux" angenommen.

.config_mode

Gibt an, wie die Komponente konfiguriert werden sollte. Zulässig sind die Werte "dhcp" und "volfix". Der Standardwert lautet "dhcp". Dieses Attribut sollte ausdrücklich nur verwendet werden, wenn Kompatibilität mit älteren Versionen erforderlich ist und die "volfix"-Funktionalität für eine bestimmte Komponente beibehalten werden soll. Dieses Attribut wird ignoriert und der Modus wird auf "volfix" festgelegt, wenn der Deskriptor die Entität "virtualization" nicht enthält. Dieses Attribut soll alten Deskriptoren (die zu Komponenten gehören, die "volfix" erfordern und die "dhcp"-Konfiguration nicht unterstützen) ermöglichen, ohne Änderung zu funktionieren.

.field_opt

Eine Bitmaske von Optionen für das Aktivieren verschiedener Unterstützungsfunktionen für Debugging und Fehlersuche. Für dieses Attribut gelten die normalen Regeln für das Überschreiben von Eigenschaftswerten aus einer Assembly nicht, die für alle anderen vordefinierten Attribute gelten. Der für eine Komponente angegebene ".field_opt"-Wert wird wie Klassenfeldoptionen gespeichert, während eine Einstellung des gleichen Attributs für eine Instanz der Komponente in einer Assembly wie Instanzenfeldoptionen gespeichert wird.

.category

Eine beliebige Zeichenfolge, die die allgemeine Kategorie definiert, zu der die Komponente gehört. Sie wird von der ADL-Syntax zugelassen, allerdings auf keine Weise interpretiert. Das Attribut ist für die Verwendung durch CA AppLogic®-Visual-Tools bestimmt, um Komponenten in Komponentenbibliotheken (Katalogen) zu organisieren.

.description

Eine Kurzbeschreibung der Komponente. Ähnlich wie beim Attribut ".category", ist der Wert dieses Attributs willkürlich und nur für Dokumentationszwecke vorgesehen.

.console

BS-System-Konsolenkonfigurationsparameter. Das Format dieser Zeichenfolge ist nicht Teil von ADL, die gegenwärtig für ".console" unterstützten Parameter werden im Grid-Benutzerhandbuch definiert. Wenn ".console" für eine Komponente nicht angegeben wird, verwendet CA AppLogic® eine auf Systemebene definierte Standardkonfigurationseinstellung. Sofern dies nicht manuell von einem Anwender mit Administratorrechten überschrieben wird, definiert die Systemstandardeinstellung die Konsole der Komponente als "ssh" an Port 22.

Alle Komponentenattribute sind optional und müssen im Deskriptor nicht vorhanden sein.

Alle Attribute sind auch zulässige Komponenteneigenschaften, die in einer Assembly, welche die Komponente enthält, überschrieben werden können.

Hinweis: Den Attributnamen wird ein Punkt vorangestellt, um Namenskonflikte mit gewöhnlichen Eigenschaften zu vermeiden. Weitere Informationen finden Sie im Abschnitt der Entität "property".

Die Tabelle unten enthält eine Zusammenfassung der in einer Komponente zulässigen Sub-Entitäten. In den nachfolgenden Abschnitten werden die einzelnen Sub-Entitäten ausführlich erklären.

volume

Definiert ein Volume, das ein von der Komponente verwendetes Dateisystem enthält. Mindestens eine Entität "Volume" muss in jeder Komponente angezeigt werden.

resource

Definiert die Anforderungen der Komponente bezüglich der Hardware-Ressourcen, die für ihre Ausführung zur Verfügung gestellt werden müssen.

input, output

Definiert die Terminals der Komponente, die als Netzwerkschnittstellen zur Verbindung mit anderen Komponenten in der gleichen Anwendung vorgesehen sind.

interface

Wird verwendet, um Netzwerkschnittstellen zu aktivieren und zu konfigurieren, die nicht zum Herstellen einer Verbindung mit anderen Komponenten (z. B. Eingabe- und Ausgabe-Terminals) vorgesehen sind.

property

Definiert eine konfigurierbare Eigenschaft der Komponente.

cfgfiles

Definiert eine Liste von Konfigurationsdateien, die auf Eigenschafts-Markup überprüft und entsprechend aktualisiert werden müssen.

kernel

veraltet - Verwenden Sie stattdessen die Entität "virtualization". Diese Entität enthält betriebssystemspezifische Startinformationen. Ihr Inhalt hängt vom Wert des Attributs ".os_type" der Komponente ab.

virtualization

Definiert die virtuelle Umgebung, für die die Komponente konzipiert ist. Sie enthält für den Startvorgang spezifische Optionen, die dem Boot-Loader der Komponente bereitgestellt werden. Das Feld "mode" wird noch unterstützt, um die Kompatibilität mit älteren Deskriptordateien zu gewährleisten.

visual

Daten zur visuellen Darstellung. ADL definiert nicht den Inhalt dieser Entität. Es ist für einen GUI-Editor konzipiert, mit dem Informationen dazu gespeichert werden, wie die Komponente im Editorfenster angezeigt wird. Hierzu zählen beispielsweise Farbe, Symbolform und Layout von Terminals.

Der Inhalt dieser Entität muss den allgemeinen Syntaxregeln von UDL entsprechen, die im Abschnitt Für alle Deskriptortypen geltende Syntaxregeln vorgestellt wurden. Weitere Informationen finden Sie zudem in der UDL-Spezifikation.