MDS Proposed Format


Message 59/1391  From Marat Fairuzov          Sep 3, 98 02:39:53 pm -0500
Date: Thu, 3 Sep 1998 14:39:53 -0500 (CDT)
Subject: Re: MDS component software schema/format

Hi, Juan,

Here is a tentative thing that will go into Globus MDS.  Unfortunately my
proposal, which included things like "interface" didn't go through.  There
is a chance that it will be used in future Globus releases.  But for now
this is what's going to be there.  There are 2 things: GlobusSoftware, and
GlobusDaemon (the latter is intended for running daemons, and includes
port info).  There is another one, GlobusRepository, but it is not
finalized yet, and has even less usability for you, as far as I can tell.

Marat


#-------------------------------------------------------
# GLOBUS SOFTWARE
#
# PURPOSE:
#
#       Globus software objects describe information to software
# installed and maintained in a metacomputing environment. This include
# the software as distributed with the Globus metacomputing kit, but
# also other software including compilers, application programs and
# contributed software.
#
# The current objects include:
#
#       sw - GlobusSoftware (will be deprecated in the next release)
#
#       da - GlobusDaemon
#
# The ssw object will take over the functionality of the current sw
# object. It is kept to ease the transition phase.
#
#-------------------------------------------------------
GlobusSoftware OBJECT CLASS
  # General remark:
  #     A GeneralSoftware object stores information related to software
  SUBCLASS OF GlobusTop
  RDN = sw (software)
  CHILD OF {
      hostname;
#     organization;
#     organizationalUnit;
#     computeResource;
     GlobusRoot
  }
  MAY CONTAIN  {

    name      :: cis,
        # a name or abrreviation for the software

    description      :: cis,
        # describes what the software is doing or gives an easy to 
        # understand id entifier, e.g.  GNU CC compiler

    documentation       :: cis,
        # gives pointers where to find documentation on the software
        #       e.g.  http:/www.gnu.org/gcc
        #             man gcc

    executableDirectory :: cis,
        # specifies the directory in which the executable can be found
        #       e.g.    /usr/local/bin      
        # (directories could also be specified as url)

    manpathDirectory       :: cis,
        # specifies the directory in which the man pages can be found,
        #       e.g. /usr/local/man

    libDirectory                :: cis,
        # specifies the directory in which the libraries can be found,
                e.g. /usr/local/lib

    includeDirectory    ::      cis,
        # specifies the directory in which the includefiles are located,
        #       e.g. /usr/local/include

    sharedlibraryDirectory :: cis,
        # specifies the directory in which the shared libraries can be
        # found

    bugs    :: cis,
        # specifies links to known bugs

     installedBy                :: dn,
        # specifies the dn of the person who installed the software

     administeredBy  :: dn,
        # specifies the dn of the person who administers the software

    notes :: cis,
        # a field which can hold notes and remarks

    repositoryPackage :: cis,
        # a distingushed name or string of a repository package this
        # software could belong to, e.g. gnu

    releaseTag       :: cis,
        # contains the release tag sometimes it is a combination of
        # Major.Minor.Beta.Patch

    releaseDate      :: cis,
        # contains the date of the release

    releaseMajor     :: cis,
        # contains the Major release version

    releaseMinor     :: cis,
        # contains the Minor Release Version

    releasePatch     :: cis,
        # contains the patch level

    releaseBeta      :: cis,
        # contains the beta release tag

    configuration    :: cis,
        # Parameters given at configuration time

    installPrefix    :: cis
        # Staring location of libraries, header files, etc.

#    labeledURL       :: cis,
#    Specifies the URL to connect to the software,
#    this should be described through a daemon
  }




#-------------------------------------------------------
GlobusDaemon OBJECT CLASS
  # General remark:
  #     A GlobusDaemon stores information related to daemons running 
  #     on a system

  #     Examples for a daemon are gatekeeper, HBM datacollector, ...
  SUBCLASS OF GlobusSoftware
  RDN = da (daemon)
  CHILD OF {
     hostname;
     GlobusRoot
  }
  MAY CONTAIN  {
    hostname         :: cis,
    hostnameDN       :: dn,

    serviceContact   :: cis,
        # Specifies a tuple of port and the protocol in order to request
        # the service
        # delivered by the daemon. E.g.         (8337 HBM-datacollector)
        #                                       (24 telnet)

    controlContact   :: cis,
        # Specifies a tuple of port and the protocol in order to control
        # the daemon, e.g. see serviceContact

    name             :: cis,
        # specifies what function or type this daemon is, e.g. HBM
        # datacollector

    owner            :: dn,
        # specifies an administrator for bug notification

    developerContact :: email,
        # specifies a contact to the developer of this daemon, e.g.
        # bugs@globus.org

    parameter        :: cis
        # specifies a tuple of the forme attribute value in order to 
        # set specific values necessary to configure the daemon. 
        # This is only important if schema checking is set to true.
        # If schema checking is set to false the attributes and values
        # can be stored directly into the object. Using the parameter
        # attribute is prefered.
        # E.g.    parameter: updateInterval 10
  }