              Storage  Resource Manager (SRM)

  Setting up Grid Security for SRM Client
  ---------------------------------------
  
  If you are going to use gsi srm for access of srm server you,
  please read the README.SECURITY


  What is SRM?
  -----------

  To read about SRM go to http://sdm.lbl.gov/indexproj.php?ProjectID=SRM

  What is srmcp
  -------------

  srmcp is the implementation of srm client as specified by srm spec v1.0
  http://sdm.lbl.gov/srm/documents/joint.docs/srm.v1.0.doc.

  What can I use srmcp for.
  _______________________
 
  You can use srmcp for optimizing the retrieval and/or storage of files
  to/from Mass Storage Systems (MSS) which implement SRM. For example SRM can 
  be used to get/put files from/to Fermilab Enstore via dCache.

  How does SRM client srmcp transfer files?
  ____________________________
 
  1. SRM client is given a list of sources and a destination in form 
  of local file urls or remote Site URLs (SURLs). SURLs have a form
  srm://host:port/path. 
  2. SRM client srmcp commands MSS to prepare files for transfer and 
  negotiates the transfer protocol  and Transfer URLs (TURLs) .
  3. After that srm client uses the protocol specific client to transfer
  actual data from/to server, using TURL. The currently supported transfer 
  protocols are : gsiftp and http.
  4. Then srmcp notifies MSS that 
  transfer is completed so that MSS can free its resources.
 
  In case of dCache/Enstore srmcp will request the staging of the file 
  from enstore in one of the dCache pools and retrieve the TURL for that 
  file (gsiftp url for example). 
  In case of dCache the file path in SURL is usually the same as in 
  gsiftp url.

  Srmcp usage.
  -----------
  srmcp uses configuration file that is automatically created by the first invocation of srmcp in $HOME/.srmconfig/config.xml.
  Specifying command line options is needed only if you wish to override options specified in configuration file.
  
Usage: java SRMCopy [command line options] source(s) destination
 default options will be read from configuration file 
 but can be overridden by the commnad line options
 the command line options are one or more of the following:
-debug=<true or false> true enables debug output, default is false 
-srmcphome=<path to srmcp product dir>
-gsissl=<true or false> true uses gsi https, default is false
-mapfile=<mapfile> to specify glue mapfile
-webservice_path=<webservice_path> to specify web service path component
      of web service URL (for example "srm/managerv1.wsdl")
-webservice_protocol=<webservice_protocol> to specify the
      webservice protocol ( for example "http","https" or "httpg")
-urlcopy=<urlcopy path> to specify the path to  universal url_copy script
      see $SRM_PATH/bin/url-copy.sh for example
-buffer_size=<integer> to set the buffer size to a value 
      different then default(2048)
-protocols=protocol1[,protocol2[...]] 
      the comma separated list of supported TURL protocols
-pushmode=<true or false>  true to use the push mode in case
      of srm Mass Storage Systems (MSS) to MSS copy, 
      false to use the pull mode, the default mode is pull mode (false)
-use_proxy=<true or false> true if srmcp should use grid proxy
      false if it should use certificate and key directly,
      defult value is true
-x509_user_proxy=<path to user grid proxy>
-x509_user_cert=<path to user grid certificate>
-x509_user_key=<path to user private key>
-x509_user_trusted_certificates=<path to the 
 directory with cerificates of trusted Certificate Authorities (CAs)>
-conf=<path to the configuration file> default value is config.xml
-save_conf=<path to the file in which the new configuration will be saved>
      no transfer will be performed if this option is specified
-h or -help for this help 
 either source(s) or destination or both should be (an) srm url

  Srmcp usage example.
  --------------------

   The following command will retrieve two files /mypath/myfile1.ext and 
   /mypath/myfile1.ext from enstore via dcache and store them in the 
   local directory /home/timur/targetdir:

   srmcp -debug -gsissl \ 
   srm://cdfendca3.fnal.gov:25129//mypath/myfile1.ext \
   srm://cdfendca3.fnal.gov:25129//mypath/myfile1.ext \
   file://localhost//home/timur/targetdir
  

   The following will copy the same files from one  
   storage to another
   srmcp -debug -gsissl \ 
   srm://cdfendca3.fnal.gov:25129//mypath/myfile1.ext \
   srm://cdfendca3.fnal.gov:25129//mypath/myfile1.ext \
   srm:/stkendca.fnal.gov:24128/targetdir



   The following will get the file using dccp client
   (it should be already installed on you machine)
   srmcp -debug -gsissl \ 
   -protocols=dcap   \
   srm:/stkendca.fnal.gov:24128/targetdir/myfile1.ext 
   file:////tmp/myfile1.ext

   
