// Copyright © 2005, 2006 THALES, SELEX Sistemi Integrati (SI), Themis Computer // and Progeny Systems Corporation. // 06-08-31 - MS - Draft (2) updated to the AMSM Revised Submission // Version 1.8 - 21 August 2006 // 07-03-02 - MS - Draft (3) updated to the AMSM Revised Submission // Version 1.10 - 18 December 2006 & includes // the errata from the 07-01-02 document #pragma locale ("en_US") // =================================================================== // SoftwareFeatureSpec // =================================================================== [Description ("The AMS_SoftwareFeatureSpec class is designed as" "a subclass of CIM_SoftwareFeature, which is referred as " "-a concept [that] allows software products or application " "systems to be decomposed into units that have a meaning " "to users rather than units that reflect how the product or" "application was built (i.e. software elements- in CIM " "documentation. It may be part of another" "AMS_SoftwareFeatureSpec in an 'system of system' spirit." "It gathers AMS_ESESpecs or other AMS_SoftwareFeatureSpecs" "and have CIM_Checks and CIM_Actions. More specifically," "actions and checks are linked to executable software " "element specifications with an attribute (classes" "AMS_SoftwareFeatureAction and AMS_SoftwareFeatureCheck)," "which describes in which case the actions or checks must" "be used : deployment, pre(post)-start, start, pre(post)-" "shutdown or for an alternate shutdown mechanism. The" "AMS_SoftwareFeatureSpec Class attribute are:" "- a name that, with the global name of the" " AMS_SoftwareFeatureSpec to which it belongs, takes" " part of the make-up of its global name." "- a type of feature (when deployed): system, application" " redundancy group or load balancing group")] class AMS_SoftwareFeatureSpec : CIM_SoftwareFeature { [key, override] string Name; [ValueMap { "0", "1", "2", "3", "4" }, Values { "Unknown", "SYSTEM", "APPLICATION", "REDUNDANCY_GROUP", "LOADBALANCING_GROUP"}] uint16 AMSTypeOfFeature; }; // =================================================================== // ESESpec // =================================================================== [Description ("The AMS_ESESpec class is designed as a subclass " "of CIM_SoftwareElement, which is referred in CIM " "documentation as -a collection of files and associated " "details...-. It is part of an AMS_SoftwareFeatureSpec and" "may be associated with AMS_Checks and AMS_Actions. More" "specifically, actions and checks are linked to executable" "software element specifications with an attribute (classes" "AMS_SoftwareElementAction and AMS_SoftwareElementCheck)," "which describes in which case the actions or checks must" "be used : deployment, pre(post)-start, start, " "pre(post)-shutdown or for an alternate shutdown mechanism" "The associations AMS_SEShutdownDependency and " "ASM_SEStartDependency amongst AMS_ESESpecs allows to " "define dependency graphs for, respectively, the shutdown" " or the start of complex applications. This association " "may have attributes on its link:" "- TimeSinceShutdown sets a delay before the shutdown of" " next the software element," "- TimeSinceStartup sets a delay before the start of" " next the software element," "- CPUload sets a condition on the CPU before the start" " of next the software element." "AMS_ESESpec Class attributes are:" "- a name and a software id that, with its " " AMS_SoftwareFeatureSpec's global name, takes part " " of the make-up of its global name." "- a model type" "- a container type (ModelType)" "- an optional initial redundancy state (primary," " slave... - RedInitType)")] class AMS_ESESpec : CIM_SoftwareElement { [Key, Override] string Name; [Key, Override] string SoftwareElementID; [Description ("This integer indicates the supported types of" "applications." ), ValueMap { "0", "1", "2", "3" }, Values { "Unknown", "AMS_PROCESS", "AMS_J2EE", "AMS_CCM" }] uint16 AMSModelType; [Description ("The AMSRedundancyEltState enumerates" "possible states of an executable software element regarding" "its role in a redundancy group:" "- REDSTATE_NORG: the element is not in a redundancy group" "- REDSTATE_PRIMARY: the element is the primary in its" " redundancy group." "- REDSTATE_PASSIVE: the element is one of the passive in" " its redundancy group." ), ValueMap { "0", "1", "2", "3" }, Values { "Unknown", "REDSTATE_NORG", "REDSTATE_PRIMARY", "REDSTATE_PASSIVE" }] uint16 AMSRedundancyEltState; }; // =================================================================== // ExecuteProgram // =================================================================== [Description ("The AMS_ExecuteProgram is modeled as a subclass" "of CIM_ExecuteProgram which is defined has action that " "causes programs to be executed. ExecuteProgram can be used" "to launch the effective software element and/or to launch " "a JVM and so one. (CIM documentation)." "The attributes are:" "- CommandLine: A string that can be executed and " " invokes program(s), from a system's command line" " (CIM documentation)" "- ProgramPath: the location or 'path' where the program" " is run." "- Environment: the set of environment variables to be" " defined before program can be executed.")] class AMS_ExecuteProgram : CIM_ExecuteProgram { string Environment; }; // =================================================================== // MechanizedAction // =================================================================== [Description ("An AMS_MechanizedAction class works with an" "association to AMS_Property in" "order to design the actions that use a mechanism defined" "by either a normalized enumeration (AMS_StdMechanism), or" "by an implementation-defined string, and a value.")] class AMS_MechanizedAction : CIM_Action { }; // =================================================================== // CCMDeploy // =================================================================== [Description ("The AMS_CCMDeploy class causes Deployment of "applications and systems from a component descriptor "(cf[D&C]) Its attribute is ComponentPackageDescriptor" "which is the file containing the package descriptor")] class AMS_CCMDeploy : CIM_Action { string ComponentPackageDescriptor; }; // =================================================================== // CCMStart // =================================================================== [Description ("The AMS_CCMStart class causes CCM Executable" "Software Element to be started")] class AMS_CCMStart : CIM_Action { }; // =================================================================== // CCMStop // =================================================================== [Description ("The AMS_CCMStart class causes CCM Executable" "Software Element to be stopped")] class AMS_CCMStop : CIM_Action { }; // =================================================================== // J2EEDeploy // =================================================================== [Description ("The AMS_J2EEDeploy class causes Deployment of "applications and systems from a J2EE archive (cf(J2EE))" "Its attribute is EnterpriseArchive which is" "the file containing the archive (.ear)")] class AMS_J2EEDeploy : CIM_Action { string ComponentPackageDescriptor; }; // =================================================================== // J2EEStart // =================================================================== [Description ("The AMS_J2EEStart class causes CCM Executable" "Software Element to be started")] class AMS_J2EEStart : CIM_Action { }; // =================================================================== // J2EEStop // =================================================================== [Description ("The AMS_J2EEStart class causes CCM Executable" "Software Element to be stopped")] class AMS_J2EEStop : CIM_Action { }; // =================================================================== // ApplicationModelCheck // =================================================================== [Description ("The AMS_SecurityCheck class models the" "tests in relation to an application model. One of these" "checks implies to verify that its application model is" "supported by the targeted host. Its attribute gives the" "AMS_SupportedApplicationModel against witch the targeted" "host has to be tested.")] class AMS_ApplicationModelCheck : CIM_Check { }; // =================================================================== // SecurityCheck // =================================================================== [Description ("The AMS_ApplicationModelCheck class models the" "tests in relation to concept of security. The behavior" "of this class is implementation dependent ")] class AMS_SecurityCheck : CIM_Check { }; // =================================================================== // Associations // =================================================================== //=================================================================== // ActionMechanisms // =================================================================== [Association, aggregation, Description("An association between" "AMS_Property class in order" "to design platform-specific states. Known items of the " "AMS_StdMechanisms enumeration are:" "- MS_NONSTD: special value that denotes a non-normalized" " value (i.e. use the 'Name' attribute instead)" "- MS_POSIXSIGNAL: the application model is acquainted with POSIX" " signals")] class AMS_ActionMechanisms : CIM_Component { [Key, aggregate, Override("GroupComponent"), Max(1)] AMS_MechanizedAction REF GroupComponent; [Override("PartComponent"), Max(1)] AMS_Property_Mechanism REF PartComponent; [ValueMap { "0", "1"}, Values { "MS_NONSTD", "MS_POSIXSIGNAL"}] uint16 StdMechanisms; }; // =================================================================== // ActionCheckLink // =================================================================== [Association, Abstract, Description ("The AMS_ActionCheckLink class is a super-class " "for all the association classes to CIM_Action and " "CIM_Check. It defines the attribute that contains the" "condition in which the action or the check will take" "place. This condition is taken among the enumeration" "AMSActionCheckCase.")] class AMS_ActionCheckLink { [Key] CIM_ManagedElement REF Element; [key] CIM_ManagedElement REF CheckAction; [Description("The AMSActionCheckCase property is the enumeration " "of all the conditions in which actions or checks could " "take place:" "- CASE_PRE_DEPLOY: just before deployment" "- CASE_DEPLOY: during deployment (action: how to deploy" " or check: is it allowed to deploy)" "- CASE_POST_DEPLOY: just after deployment" "- CASE_PRE_START: just before a startup" "- CASE_START: during startup (action: how to startup," " check: is it allowed to startup)" "- CASE_POST_START: just after startup" "- CASE_PRE_STOP: just before shutdown" "- CASE_STOP: during shutdown (action: how to" " shutdown, check: is it allowed to shutdown)" "- CASE_POST_STOP: just after shutdown" "- CASE_ALTERNATE_SHUTDOWN: an other way to shutdown the" " element. This is intended for 'last chance' killing " " (such as 'kill -9' on Unix."), ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}, Values { "Unknown", "CASE_PRE_DEPLOY", "CASE_DEPLOY", "CASE_POST_DEPLOY", "CASE_PRE_START", "CASE_START", "CASE_POST_START", "CASE_PRE_STOP", "CASE_STOP", "CASE_POST_STOP", "CASE_ALTERNATE_SHUTDOWN"}] uint16 AMSActionCheckCase; }; // =================================================================== // SoftwareElementCheck // =================================================================== [Association, Description ("The AMS_SoftwareElementCheck class is an" "association class between AMS_ESESpec and " "AMS_Check. It specifies in which case the check will be " "used: start, stop...")] class AMS_SoftwareElementCheck : AMS_ActionCheckLink { [Override] AMS_ESESpec Ref Element; [Override] CIM_Check REF Check; }; // =================================================================== // SoftwareFeatureCheck // =================================================================== [Association, Description ("The AMS_SoftwareFeatureCheck class is an " "association class between AMS_SoftwareFeature and" "AMS_Check. It specifies in which case the check will be" "used: start, stop...")] class AMS_SoftwareFeatureCheck : AMS_ActionCheckLink { [Override] AMS_SoftwareFeatureSpec Ref Element; [Override] CIM_Check REF Check; }; // =================================================================== // SoftwareElementAction // =================================================================== [Association, Description ("The AMS_SoftwareElementAction class is an" "association class between AMS_ESESpec and AMS_Action. It" "specifies in which case the action will be used: start," "stop...")] class AMS_SoftwareElementAction : AMS_ActionCheckLink { [Override] AMS_ESESpec Ref Element; [Override] CIM_Action REF Action; }; // =================================================================== // SoftwareFeatureAction // =================================================================== [Association, Description ("The AMS_SoftwareElementAction class is an " "association class between AMS_SoftwareFeatureSpec and" "AMS_Action. It specifies in which case the action will be" "used: start, stop...")] class AMS_SoftwareFeatureAction : AMS_ActionCheckLink { [Override] AMS_SoftwareFeatureSpec Ref Element; [Override] CIM_Action REF Action; }; // =================================================================== // SAMCheck // =================================================================== [Association] class AMS_SAMCheck : CIM_Dependency { [Override("Antecedent")] AMS_ApplicationModelCheck REF Antecedent; [Override("Dependent"), Max(1), Min(1)] AMS_SupportedApplicationModel REF Dependent; }; // =================================================================== // SEStartDependency // =================================================================== [Association, Description ("The AMS_SEStartDependency class is an association" "class among AMS_ESESpec. It defines the start dependency" "graph having two subclasses: on the one hand for time" "dependency, and on the other hand for CPU load dependency")] class AMS_SEStartDependency : CIM_Dependency { [Override("Antecedent")] AMS_ESESpec REF Antecedent; [Override("Dependent"), Max(1)] AMS_ESESpec REF Dependent; }; // =================================================================== // SEStartTimeDepency // =================================================================== [Association, Description ("The AMS_SEStartDependency class is an association" "class among AMS_ESESpec. It defines the start time" "dependency graph with one attribute of each links:" "- TimeSinceStartup gives the delay before starting the" " AMS_ESESpec.")] class AMS_SEStartTimeDepency : AMS_SEStartDependency { uint16 TimeSinceStartup; }; // =================================================================== // SEStartCPUDependency // =================================================================== [Association, Description ("The AMS_SEStartDependency class is an association" "class among AMS_ESESpec. It defines the start CPU load" "dependency graph with one attribute of each links:" "- CPUload gives maximum value of CPU load present on" "the host before the executable software element is to be" "started.")] class AMS_SEStartCPUDependency : AMS_SEStartDependency { uint16 CPUload; }; // =================================================================== // SEShutdownDependency // =================================================================== [Association, Description ("The AMS_SEShutdownDependency class is an" "association class among AMS_ESESpec. It defines the" "shutdown dependency graph with one attribute of each link:" "- TimeSinceShutdown gives the delay before shutting down" " the AMS_ESESpec.")] class AMS_SEShutdownDependency : CIM_Dependency { [Override("Antecedent"), Max(1)] AMS_ESESpec REF Antecedent; [Override("Dependent")] AMS_ESESpec REF Dependent; uint16 TimeSinceShutdown; };