space
Previous Page | Next Page

Model Usage

Usage Scenario: Creating Metadata for a SAS Workspace Server


Purpose

This usage scenario describes how to create the metadata that defines a server, which includes metadata types from several submodels, including the Software Deployment Submodel, Transform Submodel, and Property Submodel. The scenario focuses on using the Property Submodel to describe a SAS Workspace Server and explains how to create a template for this server. An XML representation is included to show how to construct SAS Workspace Server Prototype objects and their properties.


Requirements

This usage scenario assumes that the user has a general understanding of the Software Deployment Submodel, the Transform Submodel, and the Property Submodel of the SAS Metadata Model.


Describing a Server

A server is described in metadata using DeployedComponent subtypes that have associated Connection subtypes. The DeployedComponent subtypes describe the installed software. Connection subtypes describe how to communicate with the server. All IOM servers, DBMSs, and other servers are described using these metadata types.

The DeployedComponent and Connection subtypes are generic types. For example, the TCPIPConnection metadata type contains attributes such as HostName= and Port=. However, it does not store specific information about the software or the connection. Specific information about the software or the connection must be defined in associated Property objects.


SAS Workspace Server Metadata Objects

Figure 1 shows the main metadata types used to describe a SAS Workspace Server. ServerContext, LogicalServer, and ServerComponent are DeployedComponent subtypes. TCPIPConnection is a Connection subtype. ServerContext allows an application to group non-homogeneous servers that share resources. The resources that are shared include SAS libraries and directories. ServerContext has a UsingComponents association (numbered 1 in Figure 1) to a LogicalServer object. LogicalServer groups homogeneous servers together. The servers grouped by LogicalServer are typically used for pooling or load balancing. However, it is important to note that even a single SAS Workspace Server would be represented using a set of ServerContext, LogicalServer, and ServerComponent metadata objects. The ServerComponent object represents the actual SAS Workspace Server. A ServerComponent object represents a configured instance of installed software. One installation of SAS can have several configurations of a server, each with different resources or options defined.

Each of these Software Deployment Submodel objects inherits properties from the DeployedComponent metadata type. Each DeployedComponent object has a ClassIdentifier= attribute that identifies the type of component. ClassIdentifier= is a unique identifier, such as a GUID or a Java class name (including the package), or some other unique string. In this example, the ServerContext object has the ClassIdentifier= value SAS Application Server. LogicalServer and ServerComponent both use ClassIdentifier="440196D4-90F0-11D0-9F41-00A024BB830C", which is a GUID representing the SAS Workspace Server.

The ServiceType metadata type describes the types of services that are available from a server. Each of the DeployedComponent objects is associated with a ServiceType object with the ServiceTypes association (numbered 4). The ServerComponent for a SAS Workspace Server has a ServiceType object named IOM Server. The spawner uses this information to locate the servers it should start. LogicalServer has a ServiceType object named Logical IOM Server, and ServerContext has a ServiceType object named Data Service.

The TCPIPConnection metadata object describes how to access the server. ServerComponent has a SourceConnections association (numbered 2) to TCPIPConnection. The AuthenticationDomain metadata object describes the authentication domain used to make the connection. TCPIPConnection has a Domain association (numbered 3) to AuthenticationDomain.

[The metadata objects used to describe a SAS Workspace Server.]

Figure 1. The metadata objects used to describe a SAS Workspace Server.

DeployedComponent Types and Properties

The DeployedComponent and Connection objects require more information than is defined in the main metadata types. The additional information is stored in Property objects. Figure 2 shows the ServerComponent object and its associated Property objects.

[The Property objects associated with a  SAS WorkSpace Server.]

Figure 2. The Property objects for a SAS Workspace Server.

ServerComponent needs to provide information about how to start and manage the SAS Workspace Server. This information is not included in the attributes of ServerComponent, so information is kept in Property metadata objects. The Property objects in Figure 2 represent the default settings for the SAS Workspace Server. ServerComponent has a Properties association (numbered 1 in Figure 2) to each of its Property objects. All of the default Property metadata objects should be available with the Properties association.

Each Property object must be associated to a PropertyType object that describes the SQL type of the information stored in the DefaultValue= attribute, or associated Text object. Each Property object has an OwningType association (numbered 2 in Figure 2) to its PropertyType object. From the perspective of PropertyType, this association is called TypedProperties.

If there are valid alternative values for Property objects other than the default values, these values should be represented by PropertySet objects (not shown in Figure 2). ServerComponent has a PropertySets association to a PropertySet object. A client that is looking for a specific set of Property objects can query the PropertySets association. A PropertySet object must have a complete set of Property objects for a particular usage.

Property objects can be duplicated and made available in both the PropertySets and Properties associations. Each association must provide a complete set of properties. A client must be able to get Property objects in the Properties association, or in a PropertySet object, and have all of the information it needs. Property objects are not merged through associations. There is no hierarchy of Property objects allowed through associations.

A Property object stores the name of the server attribute it describes in the PropertyName= attribute. The value of the server attribute is saved in the DefaultValue= attribute if it is a single value, or in an associated Text object if it is an array of values. This use of the Text object is explained in the TCPIPConnection and Property Objects section. Each Property object also has a set of attributes that describe whether the Property is required, can be updated, and should be visible in a user interface. If the Property object's IsRequired= attribute is set to 1 (Yes), it means that a value must be provided for this Property to properly use the object described by the Property. If the Property object's IsUpdateable= attribute is set to 0 (No), then the DefaultValue= attribute has the only valid setting for the Property.

ServerComponent and Initialization

If ServerComponent requires initialization information that should be stored in other metadata types, such as filenames and locations, login information, or SAS library information, then a Transformation object that describes the initialization process should be defined to associate that information to ServerComponent. Figure 3 shows the metadata objects that might describe the initialization process.

[The metadata objects used to desribe an initialization process.]

Figure 3. The metadata objects used to describe an initialization process that uses a file and login information as input.

There are two metadata types that represent processes:

The initialization process in this example uses a file and login information as input. The ServerComponent object locates its initialization process through the InitProcesses association (numbered 1 in Figure 3). The Transformation object identifies the inputs to the initialization process with the TransformationSources association (numbered 2).

TCPIPConnection and Property Objects

The TCPIPConnection metadata type provides connection information for SAS/SHARE, SAS/CONNECT, and SAS Integration Technologies servers, as well as DBMSs and other types of servers. TCPIPConnection has a set of attributes that contain generic information that is used to access a server that is accessible through TCP/IP. But, TCPIPConnection does not have all of the specific information that is required for a particular server. For example, servers provided by SAS might require a set of encryption options as part of the connection information. Other options and values might be needed to complete a connection to the server. Rather than creating a large number of subtypes of TCPIPConnection, a TCPIPConnection object can be customized to include specific connection information by defining Property objects.

Figure 4 shows the metadata types that store specific information needed to connect to a SAS Integration Technologies server using the Bridge protocol.

[The metadata objects that store information to connect to a SAS Integration Technologies server.]

Figure 4. The metadata objects used to store TCP/IP connection information.

Figure 4 is similar to Figure 3, except that it includes additional information about the Property values and constraint information for the PropertyType object. In this example, there are two Property objects that include additional information needed to establish the connection. One Property object is for RequiredEncryptionLevel, and the other is for ServiceEncryptionAlgorithms. The names of the properties are stored in each object's PropertyName= attribute. The Property objects store the default values for the properties. They are accessible from the TCPIPConnection object with the Properties association (numbered 1 in Figure 4). The object for EncryptionAlgorithms differs from the other objects because it has a SQLType= value of Array. A PropertyType object that has the attribute SQLType="Array" should use the ElementType association (numbered 3) to find element types of the array. The valid values of the EncryptionAlgorithms PropertyType are constrained to four values: RC2, RC4, DES and Triple DES. This list is stored in a Text object (in this case, the subtype TextStore). The PropertyType object has a StoredConfiguration association (numbered 4) to the TextStore object.


Putting All of the Pieces Together

Figure 5 consolidates all of the metadata objects used to describe this SAS Workspace Server.

[Summary of metadata objects used to describe a SAS Workspace Server.]

Figure 5. Summary of the metadata objects used to describe as SAS Workspace Server.


Creating a SAS Workspace Server Prototype

Property objects can be used to store additional information about an object. Property objects can also be used to build input property sheets for Prototype objects.

A Prototype object is used as a template for creating other metadata objects. In this example, a Prototype for a SAS Workspace Server is described. A Prototype object stores the name of the metadata type it is describing in the MetadataType= attribute. For a SAS Workspace Server, that is DeployedComponent. DeployedComponent has associations to other metadata objects that define the attributes and associations for the DeployedComponent object. For more information about how Prototype properties are represented in metadata, see "Understanding Prototype Properties" in Usage Scenario: Creating a Prototype.


Prototype and PrototypeProperty Objects

Figure 6 shows the metadata objects used to describe a prototype for a DeployedComponent. It includes objects of the Prototype, AttributeProperty, and AssociationProperty metadata types. AttributeProperty and AssociationProperty are subtypes of the PrototypeProperty metadata type. A Prototype object named SAS IT Server describes the SAS Workspace Server. An AttributeProperty object named ClassIdentifier represents the ClassIdentifier= attribute of the SAS Workspace Server. An AssociationProperty object named SourceConnections describes the SourceConnections association of the SAS Workspace Server. Prototype has a PrototypeProperties association (numbered 1 in Figure 6) to both the AttributeProperty and AssociationProperty metadata types. The Prototype object named SAS IT Server Connection represents connection information for the SAS Workspace Server. AssociationProperty has an AssociatedPrototypes association (numbered 2) to the SAS IT Server Connection Prototype object.

[The Prototype objects for a SAS Workspace Server.]

Figure 6. The metadata objects used to define a SAS Workspace Server prototype.

Prototype and PropertyGroup Objects

The TCPIPConnection object that describes a Bridge connection has Property objects that describe the encryption level and algorithms. A Prototype object also uses Property objects to provide that information; however, the Properties and PropertySets associations are not used. A Prototype object that requires Property objects must define a PrimaryPropertyGroup association to a top-level PropertyGroup object. This PropertyGroup object logically groups AttributeProperty, AssociationProperty, and Property objects. The primary purpose of the grouping is to organize the objects for a user interface.

Each Prototype has a single, top-level PropertyGroup (in this case, named Server Information). A PropertyGroup can have subgroups. The association between the Prototype and its top-level PropertyGroup is named PrimaryPropertyGroup (numbered 1 in Figure 7). The association between the primary PropertyGroup object and objects representing subgroups is named SubPropertyGroups (numbered 2). The subgroup Operating System has two subgroups named OS/390 and Other. The SubPropertyGroups association (numbered 3) is also used to associate these subgroups with the PropertyGroup Operating System.

[The metadata that are used to create a  SAS WorkSpace Server bridge connection prototype.]

Figure 7. The metadata objects used to prototype a SAS Workspace Server Bridge connection.

PropertyGroup and Property Objects

Figure 8 shows the relationships between the AttributeProperty, Property, and PropertyGroup metadata types. AttributeProperty, AssociationProperty, and Property are all subtypes of AbstractProperty. When used as part of a Prototype definition, an AbstractProperty subtype can be associated with only one PropertyGroup. The objects are associated with a PropertyGroup with the GroupedProperties association (numbered 1 in Figure 8).

[The relationships between the AbstractProperty subtypes and PropertyGroup.]

Figure 8. The relationships between AttributeProperty, Property, and PropertyGroup objects.

In this scenario, a PropertyGroup object named ServerInformation groups AttributeProperty objects representing the CommunicationProtocol, ApplicationProtocol, HostName, IsAuthenticationRequired, AuthenticationType, and Port server attributes. A PropertyGroup object named OS/390 groups TpName and PluName server attributes. A PropertyGroup object named EncryptionInformation groups ClientEncryptionAlgorithms, Netencralg, and RequiredEncryptionLevel server attributes. A PropertyGroup named Other groups the Property object representing the Command server attribute.


XML for Creating a SAS Workspace Server Prototype

The prototype can be created by using the following AddMetadata method call:

<AddMetadata>
   <Metadata>
      <PropertyType Id="$String" Name="String" SQLType="12"/>
      <PropertyType Id="$Boolean" Name="Boolean" SQLType="-7"/>
      <PropertyType Id="$Integer" Name="Integer" SqlType="4"/>
      <PropertyType Id="$StringArray" Name="String Array" SqlType="2003">
        <ElementType>
          <PropertyType ObjRef="$String"/>
        </ElementType>
      </PropertyType>
      <PropertyType Id="$IOMClassIds" Name="IOMClassIds" SqlType="12">
          <StoredConfiguration>
             <TextStore 
                Name="Enumeration of IOM Class Ids" 
                TextRole="config" 
                TextType="xml" 
                StoredText=
               "<Configuration>
                <Enumeration>
                <Value name="440196D4-90F0-11D0-9F41-00A024BB830C">Workspace</Value>
                <Value name="class id goes here">friendly name goes here</Value>
                </Enumeration>
                </Configuration >"/>
          </StoredConfiguration>
      </PropertyType>
      <PropertyType Id="$AuthenticationTypes" Name="AuthenticationTypes" 
                    SqlType="12">
          <StoredConfiguration>
            <TextStore 
               Name="Enumeration of Authentication Types" 
               TextRole="config" 
               TextType="xml" 
               StoredText="<Configuration>
                           <Enumeration>
                           <Value name="user/password"/>
                           <Value name="none"/>
                           <Value name="password"/>
                           <Value name="certificate"/>
                           </Enumeration>
                           </Configuration>"/>
          </StoredConfiguration>
      </PropertyType>
      <PropertyType Id="$SASEncryptionAlgorithms" 
                    Name="SASEncryptionAlgorithms" SqlType="2003">
          <ElementType>
              <PropertyType ObjRef="$String"/>
          </ElementType>
          <StoredConfiguration>
              <TextStore 
                 Name="SAS Encryption Algorithms Enumeration" 
                 TextRole="config" 
                 TextType="xml" 
                 StoredText="<Configuration>
                             <Enumeration>
                             <Value name="RC2"/>
                             <Value name="RC4"/>
                             <Value name="DES"/>
                             <Value name="Triple DES"/>
                             <Value name="SAS Proprietary"/>
                             </Enumeration>
                             </Configuration >"/>
          </StoredConfiguration>
      </PropertyType>
      <PropertyType Id="$SASEncryptionLevel" Name="SASEncryptionLevel" 
                    SqlType="12">
          <StoredConfiguration>
              <TextStore 
                 Name="SAS Encryption Level Enumeration" 
                 TextRole="config" 
                 TextType="xml" 
                 StoredText="<Configuration>
                             <Enumeration>
                             <Value name="none"/>
                             <Value name="credentials"/>
                             <Value name="everything"/>
                             </Enumeration>
                             </Configuration >"/>
          </StoredConfiguration>
      </PropertyType>
      <PropertyType Id="$BalancingAlgorithmType" Name="BalancingAlgorithmType" 
                    SqlType="12">
          <StoredConfiguration>
              <TextStore 
                 Name="Enumeration of Balancing Algorithms" 
                 TextRole="config" 
                 TextType="xml" 
                 StoredText="<Configuration>
                             <Enumeration>
                             <Value name="Cost"/>
                             <Value name="Response Time"/>
                             </Enumeration>
                             </Configuration >"/>
          </StoredConfiguration>
      </PropertyType>
      <Prototype Id="$IOMServer" Name="Workspace Server" 
                 Desc="This server defines a SAS Workspace Server for 
                       Version 9.0 of the SAS System." 
                 MetadataType="ServerComponent">
          <Extensions>
              <Extension 
                 Name="UITreeCategory" 
                 Value="SAS Servers.SAS Application Server Components" 
                 ExtensionType="VARCHAR" />
          </Extensions>
          <PrimaryPropertyGroup>
              <PropertyGroup Name="Primary Group" >
                <GroupedProperties>
                  <AttributeProperty 
                        Name="Class Identifier" 
                        PropertyName="ClassIdentifier" 
                        IsExpert="0" 
                        IsRequired="1" 
                        IsUpdateable="0" 
                        IsVisible="0" 
                        DefaultValue="440196D4-90F0-11D0-9F41-00A024BB830C">
                     <OwningType>
                       <PropertyType ObjRef="$IOMClassIds"/>
                     </OwningType>
                     <OwningPrototype>
                       <Prototype ObjRef="$IOMServer"/>
                     </OwningPrototype>
                  </AttributeProperty>
                  <AttributeProperty 
                        Name="Major Version Number" 
                        PropertyName="Major" 
                        IsExpert="0" 
                        IsRequired="1" 
                        IsUpdateable="1" 
                        IsVisible="1" 
                        DefaultValue="9">
                     <OwningType>
                       <PropertyType ObjRef="$Integer"/>
                     </OwningType>
                     <OwningPrototype>
                       <Prototype ObjRef="$IOMServer"/>
                     </OwningPrototype>
                  </AttributeProperty>
                  <AttributeProperty 
                        Name="Minor Version Number" 
                        PropertyName="Minor" 
                        IsExpert="0" 
                        IsRequired="1" 
                        IsUpdateable="1" 
                        IsVisible="1" 
                        DefaultValue="0">
                     <OwningType>
                       <PropertyType ObjRef="$Integer"/>
                     </OwningType>
                     <OwningPrototype>
                       <Prototype ObjRef="$IOMServer" />
                     </OwningPrototype>
                  </AttributeProperty>
                  <AttributeProperty 
                        Name="Product Name" 
                        PropertyName="ProductName" 
                        IsExpert="0" 
                        IsRequired="1" 
                        IsUpdateable="0" 
                        IsVisible="0" 
                        DefaultValue="SAS Workspace">
                     <OwningType>
                       <PropertyType ObjRef="$String"/>
                     </OwningType>
                     <OwningPrototype>
                       <Prototype ObjRef="$IOMServer" />
                     </OwningPrototype>
                  <AttributeProperty>
                  <AttributeProperty 
                        Name="Software Version" 
                        PropertyName="SoftwareVersion" 
                        IsExpert="0" 
                        IsRequired="1" 
                        IsUpdateable="1" 
                        IsVisible="1" 
                        DefaultValue="9.0">
                     <OwningType>
                       <PropertyType ObjRef="$String"/>
                     </OwningType>
                     <OwningPrototype>
                       <Prototype ObjRef="$IOMServer" />
                     </OwningPrototype>
                  </AttributeProperty>
                  <AttributeProperty 
                          Name="Vendor" 
                          PropertyName="Vendor" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="SAS Institute">
                     <OwningType>
                        <PropertyType ObjRef="$String"/>
                     </OwningType>
                     <OwningPrototype>
                        <Prototype ObjRef="$IOMServer" />
                     </OwningPrototype>
                  </AttributeProperty>
                  <AssociationProperty 
                          Name="ServiceType" 
                          AssociationName="ServiceTypes" 
                          PartnerName="DeployedComponents" 
                          MetadataType="ServiceType" 
                          IsExpert="0" 
                          IsVisible="0" 
                          IsUpdateable="0" 
                          Minimum="2" 
                          Maximum="2">
                     <StoredConfiguration>
                            <TextStore 
                                  Name="ServiceTypeDefaultValue" 
                                  TextRole="config" 
                                  TextType="xml" 
                                  StoredText="<Configuration>
                                              <DefaultValues>
                                               <Value name="IOM Server"/>
                                              </DefaultValues>
                                              </Configuration>"/>
                     </StoredConfiguration>
                     <OwningPrototype>
                        <Prototype ObjRef="$IOMServer"/>
                     </OwningPrototype>
                  </AssociationProperty>
                  <AssociationProperty 
                          Name="SourceConnections" 
                          AssociationName="SourceConnections" 
                          PartnerName="Source" 
                          MetadataType="OpenClientConnection" 
                          IsExpert="0" Minimum="1">
                     <AssociatedPrototypes>
                        <Prototype Objref="$IOMServer"/>
                        <Prototype Objref="$BridgeConnection"/>
                        <Prototype Objref="$MultiBridgeConnection"/>
                        <Prototype Objref="$COMConnection"/>
                     </AssociatedPrototypes>
                     <OwningPrototype>
                        <Prototype ObjRef="$IOMServer"/>
                     </OwningPrototype>
                  </AssociationProperty>
                  <AssociationProperty 
                          Name="Used By Components" 
                          AssociationName="UsedByComponents" 
                          PartnerName="UsingComponents" 
                          MetadataType="LogicalServer" 
                          IsExpert="0" 
                          Minimum="1">
                     <AssociatedPrototypes>
                        <Prototype Objref="$IOMServer"/>
                        <Prototype Objref="$LoadBalancing"/>
                        <Prototype Objref="$Pooling"/>
                     </AssociatedPrototypes>
                     <OwningPrototype>
                         <Prototype ObjRef="$IOMServer"/>
                     </OwningPrototype>
                  </AssociationProperty>
                </GroupedProperties>
                <SubpropertyGroups>
                  <PropertyGroup Name="Launch Commands" >
                     <GroupedProperties>
                        <Property 
                              Name="Command" 
                              PropertyName="Command" 
                              Desc="Required for servers with Bridge connections" 
                              IsExpert="1" 
                              IsRequired="0" 
                              IsUpdateable="1" 
                              IsVisible="1" 
                              DefaultValue="">
                           <OwningType>
                              <PropertyType ObjRef="$String"/>
                           </OwningType>
                        </Property>
                        <Property 
                              Name="Object Server Parameters" 
                              PropertyName="ObjectServerParms" 
                              Desc="Parameters to override what the spawner passes to 
                                    SAS on the -objectserverparms option" 
                              IsExpert="1" 
                              IsRequired="0" 
                              IsUpdateable="1" 
                              IsVisible="1" 
                              DefaultValue="">
                           <OwningType>
                              <PropertyType ObjRef="$String"/>
                           </OwningType>
                        </Property>
                     </GroupedProperties>
                  </PropertyGroup>
                  <PropertyGroup Name="Credentials" >
                     <GroupedProperties>
                        <AssociationProperty 
                              Name="Login Group" 
                              AssociationName="InitProcesses" 
                              PartnerName="DeployedComponents" 
                              MetadataType="Transformation" 
                              IsExpert="1" 
                              IsVisible="1" 
                              IsUpdateable="1" 
                              Minimum="0" 
                              Maximum="1">
                           <StoredConfiguration>
                                <TextStore 
                                   Name="Initialization Processes" 
                                   TextRole="config" 
                                   TextType="xml" 
                                   StoredText=
                                   "<Configuration>
                                    <MetadataRequest>
                                    <GetMetadataObjects>
                                    <Reposid>_ReposID_</Reposid>
                                    <Type>Transformation</Type>
                                    <NS>SAS</NS>
                                    <Flags>392</Flags>
                                    <Options>
                                    <XMLSELECT search="@TransformRole='Initialization'"/>
                                    </Options>
                                    </GetMetadataObjects>
                                    </MetadataRequest>
                                    <ClassParameters>
                                    <Parm Name="_ParentComponent_"/>
                                    <Parm Name="_ObjectStore_"/>
                                    <Parm Name="_ReposID_"/>
                                    <Parm Name="_Prototype_"/>
                                    <Parm Name="New Initialization Process"/>
                                    </ClassParameters>" 
                                  </Configuration>"/>
                           </StoredConfiguration>
                           <Customizers>
                           <ConfiguredComponent 
                           Name="PrototypePropertiesDialog Java Class" 
                           ClassIdentifier="com.sas.workspace.visuals.PrototypePropertiesDialog"/>
                           </Customizers>
                           <AssociatedPrototypes>
                             <Prototype Objref="$IOMServer"/>
                             <Prototype Objref="$ServerLoginProc"/>
                           </AssociatedPrototypes>
                           <OwningPrototype>
                             <Prototype ObjRef="$IOMServer" />
                           </OwningPrototype>
                        </AssociationProperty>
                     </GroupedProperties>
                  </PropertyGroup>
                  <PropertyGroup Name="Properties">
                     <SubPropertyGroups>
                        <PropertyGroup Id="$StandardProperties" 
                                       Name="Common Properties"/>
                        <PropertyGroup Id="$ServerProperties"
                                       Name="Specific Properties" 
                                       Minimum="1" 
                                       Maximum="1">
                           <SubPropertyGroups>
                             <PropertyGroup Id="$LoadBalanceProperties" 
                                 Name="LoadBalanced" 
                                 Minimum="" 
                                 Maximum=""/>
                             <PropertyGroup Id="$PoolingProperties" 
                                 Name="Pooling" 
                                 Minimum="" 
                                 Maximum=""/>
                           </SubPropertyGroups>
                        </PropertyGroup>
                     </SubPropertyGroups>
                  </PropertyGroup>
                  <PropertyGroup Name="File Navigation" 
                      Desc="Select the initial directory where file navigation 
                           begins on the server." Minimum="1" Maximum="1">
                     <GroupedProperties>
                        <Property 
                              Name="SAS User Root" 
                              PropertyName="FileNavigation" 
                              IsExpert="1" 
                              IsRequired="0" 
                              IsUpdateable="0" 
                              IsVisible="1" 
                              DefaultValue=".">
                           <OwningType>
                             <PropertyType ObjRef="$String"/>
                           </OwningType>
                        </Property>
                        <Property 
                              Name="System Root" 
                              PropertyName="FileNavigation" 
                              IsExpert="1" 
                              IsRequired="0" 
                              IsUpdateable="0" 
                              IsVisible="1" 
                              DefaultValue="$">
                           <OwningType>
                             <PropertyType ObjRef="$String"/>
                           </OwningType>
                        </Property>
                        <Property 
                              Name="Specify Path" 
                              PropertyName="FileNavigation" 
                              IsExpert="1" 
                              IsRequired="0" 
                              IsUpdateable="1" 
                              IsVisible="1" 
                              DefaultValue="">
                           <OwningType>
                             <PropertyType ObjRef="$String"/>
                           </OwningType>
                        </Property>
                     </GroupedProperties>
                  </PropertyGroup>
                  <PropertyGroup Name="MVS Support">
                     <GroupedProperties>
                        <Property 
                            Name="Bound Library" 
                            PropertyName="MVSBoundLibrary" 
                            IsExpert="1" 
                            IsRequired="0" 
                            IsUpdateable="1" 
                            IsVisible="1" 
                            DefaultValue="">
                           <OwningType>
                              <PropertyType ObjRef="$String"/>
                           </OwningType>
                        </Property>
                     </GroupedProperties>
                  </PropertyGroup>
                </SubpropertyGroups>
            </PropertyGroup>
          </PrimaryPropertyGroup>
          <Properties>
            <Property 
                   Name="Availability Timeout" 
                   PropertyName="AvailabilityTimeout" 
                   Desc="Number of milliseconds to wait for available server" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="0">
                <OwningType>
                  <PropertyType ObjRef="$Integer"/>
                </OwningType>
                <AssociatedPropertyGroup>
                  <PropertyGroup ObjRef="$LoadBalanceProperties"/>
                </AssociatedPropertyGroup>
            </Property>
            <Property 
                   Name="Run Server Forever" 
                   PropertyName="ServerRunForever" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="1">
                <OwningType>
                  <PropertyType ObjRef="$Boolean"/>
                </OwningType>
                <AssociatedPropertyGroup>
                  <PropertyGroup ObjRef="$StandardProperties"/>
                </AssociatedPropertyGroup>
            </Property>
            <Property 
                   Name="Shut Server Down After (s)" 
                   Desc="Applicable only if the server is not set to run forever." 
                   PropertyName="ServerShutdownAfter" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="0">
                <OwningType>
                  <PropertyType ObjRef="$Integer"/>
                </OwningType>
                <AssociatedPropertyGroup>
                  <PropertyGroup ObjRef="$StandardProperties"/>
                </AssociatedPropertyGroup>
            </Property>
            <Property Name="Start Size" 
                   PropertyName="StartSize" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="0">
                <OwningType>
                  <PropertyType ObjRef="$Integer"/>
                </OwningType>
                <AssociatedPropertyGroup>
                  <PropertyGroup ObjRef="$LoadBalanceProperties"/>
                </AssociatedPropertyGroup>
            </Property>
            <Property Name="Recycle Activation Limit" 
                   PropertyName="RecycleActivationLimit" 
                   Desc="Number of times this server will be used 
                         before it is restarted" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="0">
                <OwningType>
                  <PropertyType ObjRef="$Integer"/>
                </OwningType>
                <AssociatedPropertyGroup>
                  <PropertyGroup ObjRef="$StandardProperties"/>
                </AssociatedPropertyGroup>
            </Property>
            <Property 
                   Name="Maximum Cost" 
                   PropertyName="MaxCost" 
                   Desc="Maximum cost value this server can afford" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="0">
                <OwningType>
                  <PropertyType ObjRef="$Integer"/>
                </OwningType>
                <AssociatedPropertyGroup>
                  <PropertyGroup ObjRef="$LoadBalanceProperties"/>
                </AssociatedPropertyGroup>
            </Property>
            <Property 
                   Name="Startup Cost" 
                   PropertyName="StartupCost" 
                   Desc="Cost associated with starting this server" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="0">
                <OwningType>
                  <PropertyType ObjRef="$Integer"/>
                </OwningType>
                <AssociatedPropertyGroup>
                  <PropertyGroup ObjRef="$LoadBalanceProperties"/>
                </AssociatedPropertyGroup>
            </Property>
            <Property 
                   Name="Maximum Clients" 
                   PropertyName="MaxClients" 
                   IsExpert="1" 
                   IsRequired="1" 
                   IsUpdateable="1" 
                   IsVisible="1" 
                   DefaultValue="1">
                <OwningType>
                   <PropertyType ObjRef="$Integer"/>
                </OwningType>
                <AssociatedPropertyGroup>
                   <PropertyGroup ObjRef="$PoolingProperties"/>
                </AssociatedPropertyGroup>
            </Property>
          </Properties>
     </Prototype>
 <Prototype Id="$BridgeConnection" Name="Bridge Connection" 
            Desc="Specifies a TCP/IP port to which the spawner listens 
                 for clients connecting to SAS." 
            MetadataType="TCPIPConnection">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
            <GroupedProperties>
                <AttributeProperty 
                         Name="Communication Protocol" 
                         PropertyName="CommunicationProtocol" 
                         IsExpert="0" 
                         IsRequired="1" 
                         IsUpdateable="0" 
                         IsVisible="0" 
                         DefaultValue="TCP">
                   <OwningType>
                     <PropertyType ObjRef="$String"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$BridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                         Name="Application Protocol" 
                         PropertyName="ApplicationProtocol" 
                         IsExpert="0" 
                         IsRequired="1" 
                         IsUpdateable="0" 
                         IsVisible="0" 
                         DefaultValue="Bridge">
                   <OwningType>
                     <PropertyType ObjRef="$String"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$BridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                         Name="Authentication Type" 
                         PropertyName="AuthenticationType" 
                         IsExpert="0" 
                         IsRequired="1" 
                         IsUpdateable="1" 
                         IsVisible="1" 
                         DefaultValue="user/password">
                   <OwningType>
                     <PropertyType ObjRef="$AuthenticationTypes"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$BridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AssociationProperty 
                         Name="Authentication Domain" 
                         AssociationName="Domain" 
                         PartnerName="Connections" 
                         MetadataType="AuthenticationDomain" 
                         IsExpert="0" 
                         IsRequired="1" 
                         IsVisible="1" 
                         IsUpdateable="1" 
                         Minimum="" 
                         Maximum="1">
                   <StoredConfiguration>
                          <TextStore 
                              Name="Authentication Domains" 
                              TextRole="config" 
                              TextType="xml" 
                              StoredText=
                              "<Configuration>
                               <MetadataRequest>
                               <GetMetadataObjects>
                               <Reposid>_ReposID_</Reposid>
                               <Type>AuthenticationDomain</Type>
                               <NS>SAS</NS>
                               <Flags>264</Flags>
                               <Options></Options>
                               </GetMetadataObjects>
                               </MetadataRequest>
                               <ClassParameters>
                               <Parm Name="_ParentComponent_"/>
                               <Parm Name="_ObjectStore_Persist_"/>
                               <Parm Name="_ReposID_"/>
                               <Parm Name="_Prototype_"/>
                               <Parm Name="New Authentication Domain"/>
                               </ClassParameters>
                               </Configuration>"/>                                                                                           
                   </StoredConfiguration>
                   <Customizers>
                    <ConfiguredComponent 
                    Name="PrototypePropertiesDialog Java Class" 
                    ClassIdentifier="com.sas.workspace.visuals.PrototypePropertiesDialog"/>
                   </Customizers>
                   <AssociatedPrototypes>
                      <Prototype ObjRef="$BridgeConnection"/>
                      <Prototype ObjRef="$AuthDomain"/>
                   </AssociatedPrototypes>
                   <OwningPrototype>
                     <Prototype ObjRef="$BridgeConnection"/>
                   </OwningPrototype>
                </AssociationProperty>
                <AttributeProperty 
                         Name="Host Name" 
                         PropertyName="HostName" 
                         IsExpert="0" 
                         IsRequired="1" 
                         IsUpdateable="1" 
                         IsVisible="1" 
                         DefaultValue="">
                   <OwningType>
                     <PropertyType ObjRef="$String"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$BridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                         Name="Port Number" 
                         PropertyName="Port" 
                         IsExpert="0" 
                         IsRequired="1" 
                         IsUpdateable="1" 
                         IsVisible="1" 
                         DefaultValue="">
                   <OwningType>
                      <PropertyType ObjRef="$Integer"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$BridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
            </GroupedProperties>
            <SubpropertyGroups>
                <PropertyGroup Name="Service" >
                   <GroupedProperties>
                     <AttributeProperty 
                         Name="Service" 
                         PropertyName="Service" 
                         IsExpert="1" 
                         IsRequired="0" 
                         IsUpdateable="1" 
                         IsVisible="1" 
                         DefaultValue="sasobjspawn">
                         <OwningType>
                           <PropertyType ObjRef="$String"/>
                         </OwningType>
                         <OwningPrototype>
                           <Prototype ObjRef="$BridgeConnection" />
                         </OwningPrototype>
                     </AttributeProperty>
                   </GroupedProperties>
                </PropertyGroup>
                <PropertyGroup Name="Encryption" >
                   <GroupedProperties>
                     <Property 
                         Name="Server Encryption Algorithms" 
                         PropertyName="ServerEncryptionAlgorithms" 
                         IsExpert="1" 
                         IsRequired="0" 
                         IsUpdateable="1" 
                         IsVisible="1" 
                         DefaultValue="">
                         <OwningType>
                           <PropertyType ObjRef="$SASEncryptionAlgorithms"/>
                         </OwningType>
                     </Property>
                     <Property 
                         Name="Required Encryption Level" 
                         PropertyName="RequiredEncryptionLevel" 
                         IsExpert="1" 
                         IsRequired="0" 
                         IsUpdateable="1" 
                         IsVisible="1" 
                         DefaultValue="">
                         <OwningType>
                           <PropertyType ObjRef="$SASEncryptionLevel"/>
                         </OwningType>
                     </Property>
                   </GroupedProperties>
                </PropertyGroup>
            </SubpropertyGroups>
          </PropertyGroup>
     </PrimaryPropertyGroup>
 </Prototype>
 <Prototype Id="$MultiBridgeConnection" 
            Name="MultiBridge Connection" 
            Desc="Specifies a TCP/IP port that clients may get redirected to 
                  when using Load Balancing." 
            MetadataType="TCPIPConnection">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
            <GroupedProperties>
                <AttributeProperty 
                          Name="Communication Protocol" 
                          PropertyName="CommunicationProtocol" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="0" 
                          IsVisible="0" 
                          DefaultValue="TCP">
                   <OwningType>
                     <PropertyType ObjRef="$String"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$MultiBridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                          Name="Application Protocol" 
                          PropertyName="ApplicationProtocol" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="0" 
                          IsVisible="0" 
                          DefaultValue="MultiBridge">
                   <OwningType>
                    <PropertyType ObjRef="$String"/>
                   </OwningType>
                   <OwningPrototype>
                    <Prototype ObjRef="$MultiBridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                          Name="Authentication Type" 
                          PropertyName="AuthenticationType" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="user/password">
                   <OwningType>
                     <PropertyType ObjRef="$AuthenticationTypes"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$MultiBridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AssociationProperty 
                            Name="Authentication Domain" 
                            AssociationName="Domain" 
                            PartnerName="Connections" 
                            MetadataType="AuthenticationDomain" 
                            IsExpert="0" 
                            IsRequired="1" 
                            IsVisible="1" 
                            IsUpdateable="1" 
                            Minimum="" 
                            Maximum="1">
                   <StoredConfiguration>
                         <TextStore 
                            Name="Authentication Domains" 
                            TextRole="config" 
                            TextType="xml" 
                            StoredText="<Configuration>
                                        <MetadataRequest>
                                        <GetMetadataObjects>
                                        <Reposid>_ReposID_</Reposid>
                                        <Type>AuthenticationDomain</Type>
                                        <NS>SAS</NS>
                                        <Flags>264</Flags>
                                        <Options></Options>
                                        </GetMetadataObjects>
                                        </MetadataRequest>
                                        <ClassParameters>
                                        <Parm Name="_ParentComponent_"/>
                                        <Parm Name="_ObjectStore_Persist_"/>
                                        <Parm Name="_ReposID_"/>
                                        <Parm Name="_Prototype_"/>
                                        <Parm Name="New Authentication Domain"/>
                                        </ClassParameters>
                                        </Configuration>"/>                                                                                                                                                               
                   </StoredConfiguration>
                   <Customizers>
                    <ConfiguredComponent 
                    Name="PrototypePropertiesDialog Java Class" 
                    ClassIdentifier="com.sas.workspace.visuals.PrototypePropertiesDialog"/>
                   </Customizers>
                   <AssociatedPrototypes>
                      <Prototype ObjRef="$MultiBridgeConnection" />
                      <Prototype ObjRef="$AuthDomain" />
                   </AssociatedPrototypes>
                   <OwningPrototype>
                     <Prototype ObjRef="$MultiBridgeConnection" />
                   </OwningPrototype>
                </AssociationProperty>
                <AttributeProperty 
                       Name="Host Name" 
                       PropertyName="HostName" 
                       IsExpert="0" 
                       IsRequired="1" 
                       IsUpdateable="1" 
                       IsVisible="1" 
                       DefaultValue="">
                   <OwningType>
                     <PropertyType ObjRef="$String"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$MultiBridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                       Name="Port Number" 
                       PropertyName="Port" 
                       IsExpert="0" 
                       IsRequired="1" 
                       IsUpdateable="1" 
                       IsVisible="1" 
                       DefaultValue="">
                   <OwningType>
                     <PropertyType ObjRef="$Integer"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$MultiBridgeConnection" />
                   </OwningPrototype>
                </AttributeProperty>
            </GroupedProperties>
            <SubpropertyGroups>
                <PropertyGroup Name="Service" >
                   <GroupedProperties>
                      <AttributeProperty 
                           Name="Service" 
                           PropertyName="Service" 
                           IsExpert="1" 
                           IsRequired="0" 
                           IsUpdateable="1" 
                           IsVisible="1" 
                           DefaultValue="sasobjspawn">
                          <OwningType>
                            <PropertyType ObjRef="$String"/>
                          </OwningType>
                          <OwningPrototype>
                            <Prototype ObjRef="$MultiBridgeConnection" />
                          </OwningPrototype>
                      </AttributeProperty>
                   </GroupedProperties>
                </PropertyGroup>
                <PropertyGroup Name="Encryption" >
                   <GroupedProperties>
                      <Property Name="Server Encryption Algorithms" 
                                PropertyName="ServerEncryptionAlgorithms" 
                                IsExpert="1" 
                                IsRequired="0" 
                                IsUpdateable="1" 
                                IsVisible="1" 
                                DefaultValue="">
                          <OwningType>
                            <PropertyType ObjRef="$SASEncryptionAlgorithms"/>
                          </OwningType>
                      </Property>
                      <Property Name="Required Encryption Level" 
                                PropertyName="RequiredEncryptionLevel" 
                                IsExpert="1" 
                                IsRequired="0" 
                                IsUpdateable="1" 
                                IsVisible="1" 
                                DefaultValue="">
                          <OwningType>
                             <PropertyType ObjRef="$SASEncryptionLevel"/>
                          </OwningType>
                      </Property>
                   </GroupedProperties>
                </PropertyGroup>
             </SubpropertyGroups>
          </PropertyGroup>
     </PrimaryPropertyGroup>
 </Prototype>
 <Prototype Id="$COMConnection" Name="COM Connection" 
            Desc="Specifies a hostname where clients can connect to SAS 
                  using COM protocol." MetadataType="COMConnection">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                <AttributeProperty 
                          Name="Communication Protocol" 
                          PropertyName="CommunicationProtocol" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="0" 
                          IsVisible="0" 
                          DefaultValue="COM">
                 <OwningType>
                  <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                  <Prototype ObjRef="$COMConnection" />
                 </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                          Name="Application Protocol" 
                          PropertyName="ApplicationProtocol" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="0" 
                          IsVisible="0" 
                          DefaultValue="COM">
                 <OwningType>
                  <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                  <Prototype ObjRef="$COMConnection" />
                 </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                          Name="Host Name" 
                          PropertyName="HostName" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="">
                 <OwningType>
                   <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                   <Prototype ObjRef="$COMConnection" />
                 </OwningPrototype>
                </AttributeProperty>
             </GroupedProperties>
          </PropertyGroup>
     </PrimaryPropertyGroup>
 </Prototype>
 <Prototype Id="$ServerLoginProc" Name="Server Login Process" 
                           MetadataType="Transformation">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                <AttributeProperty 
                          Name="Name" 
                          PropertyName="Name" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="Initialization Login">
                 <OwningType>
                   <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                   <Prototype ObjRef="$ServerLoginProc" />
                 </OwningPrototype>
                </AttributeProperty>
                <AttributeProperty 
                          Name="Transform Role" 
                          PropertyName="TransformRole" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="0" 
                          IsVisible="0" 
                          DefaultValue="Initialization">
                 <OwningType>
                   <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                   <Prototype ObjRef="$ServerLoginProc" />
                 </OwningPrototype>
                </AttributeProperty>
                <AssociationProperty 
                            Name="Login" 
                            AssociationName="TransformationSources" 
                            PartnerName="SourceTransformations" 
                            MetadataType="Login" 
                            IsExpert="0" 
                            IsVisible="1" 
                            IsUpdateable="1" 
                            Minimum="0" 
                            Maximum="1">
                 <StoredConfiguration>
                        <TextStore Name="Logins" 
                                   TextRole="config" 
                                   TextType="xml" 
                                   StoredText=
                                   "<Configuration>
                                    <MetadataRequest>
                                    <GetMetadataObjects>
                                    <Reposid>_ReposID_</Reposid>
                                    <Type>Login</Type>
                                    <NS>SAS</NS>
                                    <Flags>264</Flags>
                                    <Options></Options>
                                    </GetMetadataObjects>
                                    </MetadataRequest>
                                    <ClassParameters>
                                    <Parm Name="_ParentComponent_"/>
                                    <Parm Name="_ObjectStore_"/>
                                    <Parm Name="_ReposID_"/>
                                    </ClassParameters>
                                    </Configuration>"/>
                 </StoredConfiguration>
                 <Customizers>
                   <ConfiguredComponent 
                   Name="LoginDialog Java Class" 
                   ClassIdentifier="com.sas.workspace.visuals.LoginDialog" />
                 </Customizers>
                 <OwningPrototype>
                    <Prototype ObjRef="$ServerLoginProc" />
                 </OwningPrototype>
                </AssociationProperty>
             </GroupedProperties>
          </PropertyGroup>
     </PrimaryPropertyGroup>
 </Prototype>
 <Prototype Id="$LoadBalancing" Name="Load Balancing" 
            Desc="This will allow you to set load balancing properties on 
                 the logical server." MetadataType="LogicalServer">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                <AssociationProperty 
                            Name="Transformation" 
                            AssociationName="InitProcesses" 
                            PartnerName="DeployedComponents" 
                            MetadataType="Transformation" >
                 <AssociatedPrototypes>
                    <Prototype Objref="$LoadBalancing"/>
                    <Prototype Objref="$LoadBalancingTransformation"/>
                 </AssociatedPrototypes>
                 <OwningPrototype>
                    <Prototype ObjRef="$LoadBalancing" />
                 </OwningPrototype>
                </AssociationProperty>
             </GroupedProperties>
          </PropertyGroup>
     </PrimaryPropertyGroup>
 </Prototype>
 <Prototype Id="$Pooling" Name="Pooling" 
            Desc="This will allow you to set pooling properties on the 
                  logical server." MetadataType="LogicalServer">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                <AssociationProperty 
                            Name="Transformation" 
                            AssociationName="InitProcesses" 
                            PartnerName="DeployedComponents" 
                            MetadataType="Transformation">
                 <AssociatedPrototypes>
                   <Prototype Objref="$Pooling"/>
                   <Prototype Objref="$PoolingTransformation"/>
                 </AssociatedPrototypes>
                 <OwningPrototype>
                   <Prototype ObjRef="$Pooling" />
                 </OwningPrototype>
                </AssociationProperty>
             </GroupedProperties>
          </PropertyGroup>
     </PrimaryPropertyGroup>
 </Prototype>
 <Prototype Id="$LoadBalancingTransformation" 
            Name="Load Balancing" 
            Desc="This will allow you to set load balancing properties 
                  on the logical server." 
            MetadataType="Transformation">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                <AttributeProperty 
                          Name="Transform Role" 
                          PropertyName="TransformRole" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="0" 
                          IsVisible="0" 
                          DefaultValue="Load Balancing">
                 <OwningType>
                    <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                    <Prototype ObjRef="$LoadBalancingTransformation" />
                 </OwningPrototype>
                </AttributeProperty>
                <Property Name="Balancing Algorithm" 
                          PropertyName="BalancingAlgorithm" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          Desc="Algorithm to use when determining which server 
                                to sent client to" 
                          DefaultValue="tklbCost">
                 <OwningType>
                   <PropertyType ObjRef="$BalancingAlgorithmType"/>
                 </OwningType>
                </Property>
                <Property Name="Response Refresh Rate" 
                          PropertyName="ResponseRefreshRate" 
                          IsExpert="0" 
                          IsRequired="0" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="-1">
                 <OwningType>
                    <PropertyType ObjRef="$Integer"/>
                 </OwningType>
                </Property>
                <Property Name="Cost Per Client" 
                          PropertyName="PerClientCost" 
                          Desc="Default cost value added or subtracted when a client 
                                connects or disconnects" 
                         IsExpert="0" 
                         IsRequired="0" 
                         IsUpdateable="1" 
                         IsVisible="1" 
                         DefaultValue="100">
                 <OwningType>
                   <PropertyType ObjRef="$String"/>
                 </OwningType>
                </Property>
                <Property Name="Server Specifies Cost" 
                          PropertyName="SeverSpecifiedCost" 
                          IsExpert="0" 
                          IsRequired="0" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          Desc="If checked, the servers in this Logical Server are 
                               responsible for updating the spawner of their current 
                               cost" 
                          DefaultValue="0">
                 <OwningType>
                    <PropertyType ObjRef="$Boolean"/>
                 </OwningType>
                </Property>
                <AssociationProperty 
                             Name="Logins" 
                             AssociationName="TransformationSources" 
                             PartnerName="SourceTransformations" 
                             MetadataType="Login" 
                             IsExpert="0" 
                             IsVisible="1" 
                             IsUpdateable="1" 
                             Minimum="0" 
                             Maximum="">
                 <StoredConfiguration>
                       <TextStore 
                            Name="Logins" 
                            TextRole="config" 
                            TextType="xml" 
                            StoredText="<Configuration>
                                        <MetadataRequest>
                                        <GetMetadataObjects>
                                        <Reposid>_ReposID_</Reposid>
                                        <Type>Login</Type>
                                        <NS>SAS</NS>
                                        <Flags>264</Flags>
                                         <Options></Options>
                                         </GetMetadataObjects>
                                         </MetadataRequest>
                                         <ClassParameters>
                                         <Parm Name="_ParentComponent_"/>
                                         <Parm Name="_ObjectStore_"/>
                                         <Parm Name="_ReposID_"/>
                                         </ClassParameters>
                                         </Configuration>"/>
                  </StoredConfiguration>
                  <Customizers>
                  <ConfiguredComponent 
                  Name="LoginDialog Java Class" 
                  ClassIdentifier="com.sas.workspace.visuals.LoginDialog"/>
                  </Customizers>
                  <OwningPrototype>
                    <Prototype ObjRef="$LoadBalancingTransformation"/>
                  </OwningPrototype>
                </AssociationProperty>
             </GroupedProperties>
          </PropertyGroup>
     </PrimaryPropertyGroup>
  </Prototype>
  <Prototype Id="$PoolingTransformation" 
             Name="Pooling" 
             Desc="This will allow you to set pooling properties on the 
                   logical server." 
             MetadataType="Transformation">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                <AttributeProperty 
                          Name="Transform Role" 
                          PropertyName="TransformRole" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="0" 
                          IsVisible="0" 
                          DefaultValue="Pooling">
                  <OwningType>
                     <PropertyType ObjRef="$String"/>
                  </OwningType>
                  <OwningPrototype>
                     <Prototype ObjRef="$PoolingTransformation" />
                  </OwningPrototype>
                </AttributeProperty>
                <AssociationProperty 
                           Name="Puddles" 
                           AssociationName="TransformationSources" 
                           PartnerName="SourceTransformations" 
                           MetadataType="Group" 
                           IsExpert="0" 
                           IsVisible="1" 
                           IsUpdateable="1" 
                           Minimum="1" 
                           Maximum="">
                  <StoredConfiguration>
                       <TextStore 
                            Name="Groups" 
                            TextRole="config" 
                            TextType="xml" 
                            StoredText="<Configuration>
                                        <MetadataRequest>
                                        <GetMetadataObjects>
                                        <Reposid>_ReposID_</Reposid>
                                        <Type>Group</Type>
                                        <NS>SAS</NS>
                                        <Flags>264</Flags>
                                        <Options></Options>
                                        </GetMetadataObjects>
                                        </MetadataRequest>
                                        <ClassParameters>
                                        <Parm Name="_ParentComponent_"/>
                                        <Parm Name="_ObjectStore_"/>
                                        <Parm Name="_ReposID_"/>
                                        <Parm Name="_Prototype_"/>
                                        <Parm Name="New Puddle"/>
                                        </ClassParameters>
                                        </Configuration>"/>
                  </StoredConfiguration>
                  <Customizers>
                   <ConfiguredComponent 
                   Name="PrototypePropertiesDialog Java Class" 
                   ClassIdentifier="com.sas.workspace.visuals.PrototypePropertiesDialog"/>
                  </Customizers>
                  <AssociatedPrototypes>
                     <Prototype Objref="$PoolingTransformation" />
                     <Prototype Objref="$PoolingGroup"/>
                   </AssociatedPrototypes>
                   <OwningPrototype>
                      <Prototype ObjRef="$PoolingTransformation" />
                   </OwningPrototype>
                </AssociationProperty>
             </GroupedProperties>
          </PropertyGroup>
     </PrimaryPropertyGroup>
  </Prototype>
  <Prototype Id="$PoolingGroup" Name="PoolingGroup" MetadataType="Group">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                <AttributeProperty 
                            Name="Name" 
                            PropertyName="Name" 
                            IsExpert="0" 
                            IsRequired="1" 
                            IsUpdateable="1" 
                            IsVisible="1" 
                            DefaultValue="">
                   <OwningType>
                     <PropertyType ObjRef="$String"/>
                   </OwningType>
                   <OwningPrototype>
                     <Prototype ObjRef="$PoolingGroup" />
                   </OwningPrototype>
                </AttributeProperty>
                <Property Name="Minimum Available Servers" 
                          PropertyName="MinAvail" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="0">
                   <OwningType>
                     <PropertyType ObjRef="$Integer"/>
                   </OwningType>
                </Property>
                <Property Name="Minimum Number of Servers" 
                          PropertyName="MinSize" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="0">
                   <OwningType>
                      <PropertyType ObjRef="$Integer"/>
                   </OwningType>
                </Property>
                <AssociationProperty 
                            Name="Login" 
                            AssociationName="Members" 
                            PartnerName="Groups" 
                            MetadataType="Login" 
                            IsExpert="0" 
                            IsVisible="1" 
                            IsUpdateable="1" 
                            Minimum="1" 
                            Maximum="1">
                   <StoredConfiguration>
                          <TextStore 
                               Name="Logins" 
                               TextRole="config" 
                               TextType="xml" 
                               StoredText=
                               "<Configuration>
                                <MetadataRequest>
                                <GetMetadataObjects>
                                <Reposid>_ReposID_</Reposid>
                                <Type>Login</Type>
                                <NS>SAS</NS>
                                <Flags>264</Flags>
                                <Options></Options>
                                </GetMetadataObjects>
                                </MetadataRequest>
                                <ClassParameters>
                                <Parm Name="_ParentComponent_"/>
                                <Parm Name="_ObjectStore_"/>
                                <Parm Name="_ReposID_"/>
                                </ClassParameters>
                                </Configuration>"/>
                   </StoredConfiguration>
                   <Customizers>
                     <ConfiguredComponent 
                     Name="LoginDialog Java Class" 
                     ClassIdentifier="com.sas.workspace.visuals.LoginDialog"/>
                   </Customizers>
                   <OwningPrototype>
                     <Prototype ObjRef="$PoolingGroup" />
                   </OwningPrototype>
                </AssociationProperty>
                <AssociationProperty 
                            Name="Identities" 
                            AssociationName="Members" 
                            PartnerName="Groups" 
                            MetadataType="Identity" 
                            IsExpert="0" 
                            IsVisible="1" 
                            IsUpdateable="1" 
                            Minimum="1" 
                            Maximum="">
                  <StoredConfiguration>
                        <TextStore 
                             Name="Members" 
                             TextRole="config"
                             TextType="xml" 
                             StoredText="<Configuration>
                                          <MetadataRequest>
                                          <GetMetadataObjects>
                                          <Reposid>_ReposID_</Reposid>
                                          <Type>Identity</Type>
                                          <NS>SAS</NS>
                                          <Flags>264</Flags>
                                          <Options></Options>
                                          </GetMetadataObjects>
                                          </MetadataRequest>
                                          <ClassParameters>
                                          <Parm Name="_ParentComponent_"/>
                                          <Parm Name="_ObjectStore_"/>
                                          <Parm Name="_ReposID_"/>
                                          <Parm Name="_Prototype_"/>
                                          <Parm Name="New Member"/>
                                          </ClassParameters>
                                          </Configuration>"/>
                 </StoredConfiguration>
                 <Customizers>
                  <ConfiguredComponent 
                  Name="PrototypePropertiesDialog Java Class" 
                  ClassIdentifier="com.sas.workspace.visuals.PrototypePropertiesDialog"/>
                 </Customizers>
                 <AssociatedPrototypes>
                    <Prototype ObjRef="$PoolingGroup" />
                    <Prototype ObjRef="$Identity" />
                 </AssociatedPrototypes>
                 <OwningPrototype>
                    <Prototype ObjRef="$PoolingGroup" />
                 </OwningPrototype>
               </AssociationProperty>
               <AssociationProperty 
                            Name="Identity Groups" 
                            AssociationName="Members" 
                            PartnerName="Groups" 
                            MetadataType="Identity" 
                            IsExpert="0" 
                            IsVisible="1" 
                            IsUpdateable="1" 
                            Minimum="1" 
                            Maximum="">
                    <StoredConfiguration>
                              <TextStore 
                                  Name="Members" 
                                  TextRole="config" 
                                  TextType="xml" 
                                  StoredText="<Configuration>
                                              <MetadataRequest>
                                              <GetMetadataObjects>
                                              <Reposid>_ReposID_</Reposid>
                                              <Type>IdentityGroup</Type>
                                              <NS>SAS</NS>
                                              <Flags>264</Flags>
                                              <Options></Options>
                                              </GetMetadataObjects>
                                              </MetadataRequest>
                                              <ClassParameters>
                                              <Parm Name="_ParentComponent_"/>
                                              <Parm Name="_ObjectStore_"/>
                                              <Parm Name="_ReposID_"/>
                                              <Parm Name="_Prototype_"/>
                                              <Parm Name="New Member"/>
                                              </ClassParameters>
                                              </Configuration>"/>                                                                                                                                                                       
                    </StoredConfiguration>
                 <Customizers>
                  <ConfiguredComponent 
                  Name="PrototypePropertiesDialog Java Class" 
                  ClassIdentifier="com.sas.workspace.visuals.PrototypePropertiesDialog"/>
                 </Customizers>
                 <AssociatedPrototypes>
                     <Prototype ObjRef="$PoolingGroup" />
                     <Prototype ObjRef="$Identity" />
                 </AssociatedPrototypes>
                 <OwningPrototype>
                     <Prototype ObjRef="$PoolingGroup" />
                 </OwningPrototype>
               </AssociationProperty>
             </GroupedProperties>
          </PropertyGroup>
      </PrimaryPropertyGroup>
     </Prototype>
   <Prototype Id="$Identity" Name="Identity" MetadataType="Identity">
     <PrimaryPropertyGroup>
          <PropertyGroup Name="Primary Group" >
             <GroupedProperties>
                 <AttributeProperty 
                            Name="Name" 
                            PropertyName="Name" 
                            IsExpert="0" 
                            IsRequired="1" 
                            IsUpdateable="1" 
                            IsVisible="1" 
                            DefaultValue="">
                   <OwningType>
                      <PropertyType ObjRef="$String"/>
                    </OwningType>
                    <OwningPrototype>
                      <Prototype ObjRef="$Identity" />
                    </OwningPrototype>
                 </AttributeProperty>
                 <AttributeProperty 
                            Name="Description" 
                            PropertyName="Desc" 
                            IsExpert="0" 
                            IsRequired="0" 
                            IsUpdateable="1" 
                            IsVisible="1" 
                            DefaultValue="">
                     <OwningType>
                       <PropertyType ObjRef="$String"/>
                     </OwningType>
                     <OwningPrototype>
                       <Prototype ObjRef="$Identity" />
                     </OwningPrototype>
                 </AttributeProperty>
             </GroupedProperties>
          </PropertyGroup>
     </PrimaryPropertyGroup>
  </Prototype>
  <Prototype Id="$AuthDomain" Name="Authentication Domain" 
             MetadataType="AuthenticationDomain">
     <PrimaryPropertyGroup>
       <PropertyGroup Name="Primary Group" >
          <GroupedProperties>
             <AttributeProperty 
                          Name="Name" 
                          PropertyName="Name" 
                          IsExpert="0" 
                          IsRequired="1" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="">
                 <OwningType>
                     <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                     <Prototype ObjRef="$AuthDomain" />
                 </OwningPrototype>
             </AttributeProperty>
             <AttributeProperty 
                          Name="Description" 
                          PropertyName="Desc" 
                          IsExpert="0" 
                          IsRequired="0" 
                          IsUpdateable="1" 
                          IsVisible="1" 
                          DefaultValue="">
                 <OwningType>
                     <PropertyType ObjRef="$String"/>
                 </OwningType>
                 <OwningPrototype>
                     <Prototype ObjRef="$AuthDomain" />
                 </OwningPrototype>
             </AttributeProperty>
          </GroupedProperties>
       </PropertyGroup>
     </PrimaryPropertyGroup>
  </Prototype>
  </Metadata>
  <Reposid>_ReposID_</Reposid>
  <Ns>SAS</Ns>
  <Flags>268435456</Flags>
  <Options/>
</AddMetadata>

space
Previous Page | Next Page | Top of Page