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= Wert , max= Wert
resource mem : min= Wert , max= Wert , abs= Wert
resource bw : min= Wert , max= Wert
(input|output) sname : protocol= name [, mandatory ][, alias = dnsname ]
interface sName
property sName : type=(string|integer|ip_addr) [, filter= regAusdr ] \
[,min= Wert ,max= Wert ] [, (mandatory| dflt= Wert) ]
property sName : type=(string|integer) [, values= Wert1|Wert2|Wert3... ] \
[, (mandatory| dflt= Wert ) ]
.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= Wert , max= Wert
resource mem : min= Wert , max= Wert , abs= Wert
resource bw : min= Wert , max= Wert
(input|output) sname : protocol= name = [, mandatory][, alias = dnsname =]
interface sName
property sName : type=(string|integer|ip_addr) [, filter= regAusdr ] \
[,min= Wert ,max= Wert ] [, (mandatory| dflt= Wert) ]
property sName : type=(string|integer) [, values= Wert1|Wert2|Wert3... ] \
[, (mandatory| dflt= Wert ) ]
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"). |
|
.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 willkürliche Zeichenfolge, welche die allgemeine Kategorie definiert, zu der die Komponente gehört. Dieses Attribut ist in der ADL-Syntax zulässig, wird aber nicht interpretiert. Es ist für die Verwendung durch die visuellen CA AppLogic-Tools zur Organisierung von Komponenten in Komponentenbibliotheken (Kataloge) vorgesehen. |
|
.description |
Eine kurze Beschreibung 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 (siehe nachfolgende Eigenschaftsentität).
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 Volume-Entität 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 |
Diese Entitäten definieren Terminals der Komponente, die für Verbindung mit anderen Komponenten in der gleichen Anwendung vorgesehene Netzwerkschnittstellen 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 |
Diese Entität 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 übergeben wird. Das Feld "mode" wird noch unterstützt, um die Kompatibilität mit älteren Deskriptordateien zu gewährleisten. |
|
visual |
Daten für die visuelle Darstellung. ADL definiert die Inhalte dieser Entität nicht. Ein GUI-Editor soll die Informationen dazu speichern, wie die Komponente im Fenster des Editors angezeigt wird (Farbe, Symbolform, Layout von Terminals usw.). |
| Copyright © 2012 CA. Alle Rechte vorbehalten. |
|