<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>6. DataONE Member Node Support &mdash; Metacat 2.8.4 documentation</title>
    <link rel="stylesheet" href="_static/bootstrap.min.css" type="text/css" />
    <link rel="stylesheet" href="_static/font-awesome/css/font-awesome.min.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="_static/metacatui.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '2.8.4',
        COLLAPSE_MODINDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="top" title="Metacat 2.8.4 documentation" href="index.html" />
    <link rel="prev" title="5. Configuring Metacat" href="configuration.html" />
    <link rel="next" title="7. Accessing and Submitting Metadata and Data" href="submitting.html" /> 
  </head>
  <body>
  <div id="metacatDocs">
	  <div class="banner">
	      <a href="index.html"><img class="logo" src="_static/metacat-logo-white.png" /></a>
	      <a href="index.html"><h1 class="title">Metacat: Metadata and Data Management Server</h1></a>
	      <img class="logo-right" src="_static/nceas-logo-white.png" />
	  </div>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right">
        <span id="searchbox" style="display: none;">
            <form class="search" action="search.html" method="get">
              <input type="text" name="q" size="18" />
              <input type="submit" value="Go" class="icon-search"/>
              <input type="hidden" name="check_keywords" value="yes" />
              <input type="hidden" name="area" value="default" />
            </form>
        </span>
        </li>
        <script type="text/javascript">$('#searchbox').show(0);</script>
        <li class="right">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a>
           </li>
        <li class="right">
          <a href="submitting.html" title="7. Accessing and Submitting Metadata and Data"
             accesskey="N">next</a>
           </li>
        <li class="right">
          <a href="configuration.html" title="5. Configuring Metacat"
             accesskey="P">previous</a>
           </li>
        <li class="breadcrumb first"><a href="index.html">Metacat 2.8.4 documentation</a> &raquo;</li> 
      </ul>
      
    </div>

	
    <div class="document">
     	 <div class="documentwrapper">
	        <div class="bodywrapper">
	          <div class="body">
	            
  <div class="section" id="dataone-member-node-support">
<h1>6. DataONE Member Node Support<a class="headerlink" href="#dataone-member-node-support" title="Permalink to this headline">¶</a></h1>
<p><a class="reference external" href="http://dataone.org/">DataONE</a> is a federation of data repositories that aims to improve
interoperability among data repository software systems and advance the
preservation of scientific data for future use.
Metacat deployments can be configured to participate in <a class="reference external" href="http://dataone.org/">DataONE</a>. This
chapter describes the <a class="reference external" href="http://dataone.org/">DataONE</a> data federation,  its architecture, and the
way in which Metacat can be used to participate as a node in the DataONE system.</p>
<div class="section" id="what-is-dataone">
<h2>6.1. What is DataONE?<a class="headerlink" href="#what-is-dataone" title="Permalink to this headline">¶</a></h2>
<p>The <a class="reference external" href="http://dataone.org/">DataONE</a> project is a collaboration among scientists, technologists, librarians,
and social scientists to build a robust, interoperable, and sustainable system for
preserving and accessing Earth observational data at national and global scales.
Supported by the U.S. National Science Foundation, DataONE partners focus on
technological, financial, and organizational sustainability approaches to
building a distributed network of data repositories that are fully interoperable,
even when those repositories use divergent underlying software and support different
data and metadata content standards. DataONE defines a common web-service service
programming interface that allows the main software components of the DataONE system
to seamlessly communicate. The components of the DataONE system include:</p>
<ul class="simple">
<li>DataONE Service Interface</li>
<li>Member Nodes</li>
<li>Coordinating Nodes</li>
<li>Investigator Toolkit</li>
</ul>
<p>Metacat implements the services needed to operate as a DataONE Member Node,
as described below.  The service interface then allows many different scientific
software tools for data management, analysis, visualization and other parts of
the scientific lifecycle to directly communicate with Metacat without being
further specialized beyond the support needed for DataONE.  This streamlines the
process of writing scientific software both for servers and client tools.</p>
</div>
<div class="section" id="the-dataone-service-interface">
<h2>6.2. The DataONE Service Interface<a class="headerlink" href="#the-dataone-service-interface" title="Permalink to this headline">¶</a></h2>
<p>DataONE acheives interoperability by defining a lightweight but powerful set of
<a class="reference external" href="http://en.wikipedia.org/wiki/Representational_state_transfer">REST</a> web services that can be implemented by various data management software
systems to allow those systems to effectively communicate with one another,
exchange data, metadata, and other scientific objects.  This <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0">DataONE Service Interface</a>
is an open standard that defines the communication protocols and technical
expectations for software components that wish to participate in the DataONE
federation. This service interface is divided into <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/index.html">four distinct tiers</a>, with the
intention that any given software system may implement only those tiers that are
relevant to their repository; for example, a data aggregator might only implement
the Tier 1 interfaces that provide anonymous access to public data sets, while
a complete data management system like Metacat can implement all four tiers:</p>
<ol class="arabic simple">
<li><strong>Tier 1:</strong> Read-only, anonymous data access</li>
<li><strong>Tier 2:</strong> Read-only, with authentication and access control</li>
<li><strong>Tier 3:</strong> Full Write access</li>
<li><strong>Tier 4:</strong> Replication target services</li>
</ol>
</div>
<div class="section" id="member-nodes">
<h2>6.3. Member Nodes<a class="headerlink" href="#member-nodes" title="Permalink to this headline">¶</a></h2>
<p>In DataONE, Member Nodes represent the core of the network, in that they represent
particular scientific communities, manage and preserve their data and metadata, and
provide tools to their community for contributing, managing, and accessing data.
DataONE provides a standard way for these individual repositories to interact, and helps
to coordinate among the Member Nodes in the federation.  This allows Member Nodes
to provide services to each other, such as replication of data for backup and failover.
To be a Member Node, a repository must implement the Member Node service interface,
and then register with DataONE.  Metacat provides this implementation automatically,
and provides an easy configuration option to register a Metacat instance as a
DataONE Member Node (see configuration section below). If you are deploying a Metacat
instance, it is relatively simple to become a Member Node, but keep in mind that
DataONE is aiming for longevity and preservation, and so is selecting for nodes
that have long-term data preservation as part of their mission.</p>
</div>
<div class="section" id="coordinating-nodes">
<h2>6.4. Coordinating Nodes<a class="headerlink" href="#coordinating-nodes" title="Permalink to this headline">¶</a></h2>
<p>The DataONE Coordinating Nodes provide a set of services to Member Nodes that
allow Member Nodes to easily interact with one another and to provide a unified
view of the whole DataONE Federation.  The main services provided by Coordinating
Nodes are:</p>
<ul class="simple">
<li>Global search index for all metadata and web portal for data discovery</li>
<li>Resolution service to map unique identifiers to the Member Nodes that hold data</li>
<li>Authentication against a shared set of accounts based on <a class="reference external" href="http://www.cilogon.org">CILogon</a> and <a class="reference external" href="http://incommon.org">InCommon</a></li>
<li>Replication management services to reliably replicate data according to
policies set by the Member Nodes</li>
<li>Fixity checking to ensure that preserved objects remain valid</li>
<li>Member Node registration and management</li>
<li>Aggregated logging for data access across the whole federation</li>
</ul>
<p>Three geographically distributed Coordinating Nodes replicate these coordinating
services at UC Santa Barbara, the University of New Mexico, and the Oak Ridge Campus.
Coordinating Nodes are set up in a fully redundant manner, such that any of the coordinating
nodes can be offline and the others will continue to provide availability of the services
without interruption.  The DataONE services expose their services at:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">cn</span><span class="o">.</span><span class="n">dataone</span><span class="o">.</span><span class="n">org</span><span class="o">/</span><span class="n">cn</span>
</pre></div>
</div>
<p>And the DataONE search portal is available at:</p>
<blockquote>
<div><a class="reference external" href="https://cn.dataone.org/">https://cn.dataone.org/</a></div></blockquote>
</div>
<div class="section" id="investigator-toolkit">
<h2>6.5. Investigator Toolkit<a class="headerlink" href="#investigator-toolkit" title="Permalink to this headline">¶</a></h2>
<p>In order to provide scientists with convenient access to the data and metadata in
DataONE, the third component represents a library of software tools that have been
adapted to work with DataONE via the service interface and can be used to
discover, manage, analyze, and visualize data in DataONE.  For example, DataONE
plans to release metadata editors (e.g., Morpho), data search tools (e.g., Mercury),
data access tools (e.g., ONEDrive), and data analysis tools (e.g., R) that all
know how to interact with DataONE Member Nodes and Coordinating Nodes.  Consequently,
scientists will be able to access data from any DataONE Member Node, such as a Metacat
node, directly from within the R environment.  In addition, software tools that
are written to work with one Member Node should also work with others, thereby
greatly increasing the efficiency of creating an entire toolkit of software that
is useful to investigators.</p>
<p>Because DataONE services are REST web services, software written in any
programming language can be adapted to interact with DataONE.
In addition, to ease the process of adapting tools to work with DataONE, libraries
are provided for common programming languages such as Java (d1-libclient-java)
and Python (d1_libclient-python) are provided that allow simple function calls
to be used to access any DataONE service.</p>
</div>
<div class="section" id="configuring-metacat-as-a-member-node">
<h2>6.6. Configuring Metacat as a Member Node<a class="headerlink" href="#configuring-metacat-as-a-member-node" title="Permalink to this headline">¶</a></h2>
<p>Configuring Metacat as a DataONE Member Node is accomplished with the standard
Metacat Administrative configuration utility. To access the utility, visit the
following URL:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">http</span><span class="p">:</span><span class="o">//&lt;</span><span class="n">yourhost</span><span class="o">.</span><span class="n">org</span><span class="o">&gt;/&lt;</span><span class="n">context</span><span class="o">&gt;/</span><span class="n">admin</span>
</pre></div>
</div>
<p>where <code class="docutils literal"><span class="pre">&lt;yourhost.org&gt;</span></code> represents the hostname of your webserver running metacat,
and <code class="docutils literal"><span class="pre">&lt;context&gt;</span></code> is the name of the web context in which Metacat was installed.
Once at the administrative utility, click on the DataONE configuration link, which
should show the following screen:</p>
<div class="figure align-center" id="id1">
<img alt="_images/image068.png" src="_images/image068.png" />
<p class="caption"><span class="caption-text">The configuration screen for configuring Metacat as a DataONE node.</span></p>
</div>
<p>To configure Metacat as a node in the DataONE network, configure the properties shown
in the figure above.  The Node Name should be a short name for the node that can
be used in user interface displays that list the node.  For example, one node in
DataONE is the &#8216;Knowledge Network for Biocomplexity&#8217;.  Also provide a brief sentence
or two describing the node, including its intended scope and purpose.</p>
<p>The Node Identifier field is a unique identifier assigned by DataONE to identify
this node even when the node changes physical locations over time.  After Metacat
registers with the DataONE Coordinating Nodes (when you click &#8216;Register&#8217; at the
bottom of this form), the Node Identifier should not be changed.  <strong>It is critical that
you not change the Node Identifier after registration</strong>, as that will break the connection with the
DataONE network.  Changing this field should only happen in the rare case
in which a new Metacat instance is being established to act as the provider for an
existing DataONE Member Node, in which case the field can be edited to set it to
the value of a valid, existing Node Identifier.</p>
<p>The Node Subject and Node Certificate Path are linked fields that are critical for
proper operation of the node.  To act as a Member Node in DataONE, you must obtain
an X.509 certificate that can be used to identify this node and allow it to securely
communicate using SSL with other nodes and client applications.  This certificate can
be obtained from the DataONE Certificate Authority.
Once you have the certificate in hand, use a tool such
as <code class="docutils literal"><span class="pre">openssl</span></code> to determine the exact subject distinguished name in the
certificate, and use that to set the Node Subject field.  Set the Node
Certificate Path to the location on the system in which you stored the
certificate file. Be sure to protect the certificate file, as it contains the
private key that is used to authenticate this node within DataONE.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">For Tier 2 deployments and above, the Metacat Member Node must have Apache configured to request
client certificates. Detailed instructions are included at the end of this chapter.</p>
</div>
<p>The <code class="docutils literal"><span class="pre">Enable</span> <span class="pre">DataONE</span> <span class="pre">Services</span></code> checkbox allows the administrator to decide whether to
turn on synchronization with the DataONE network.  When this box is unchecked, the
DataONE Coordinating Nodes will not attempt to synchronize at all, but when checked,
then DataONE will periodically contact the node to synchronize all metadata content.
To be part of the DataONE network, this box must be checked as that allows
DataONE to receive a copy of the metadata associated with each object in the Metacat
system.  The switch is provided for those rare cases when a node needs to be disconnected
from DataONE for maintenance or service outages.  When the box is checked, DataONE
contacts the node using the schedule provided in the <code class="docutils literal"><span class="pre">Synchronization</span> <span class="pre">Schedule</span></code>
fields.  The example in the dialog above has synchronization occurring once every third
minutes at the 10 second mark of those minutes.  The syntax for these schedules
follows the Quartz Crontab Entry syntax, which provides for many flexible schedule
configurations.  If the administrator desires a less frequent schedule, such as daily,
that can be configured by changing the <code class="docutils literal"><span class="pre">*</span></code> in the <code class="docutils literal"><span class="pre">Hours</span></code> field to be a concrete
hour (such as <code class="docutils literal"><span class="pre">11</span></code>) and the <code class="docutils literal"><span class="pre">Minutes</span></code> field to a concrete value like``15``,
which would change the schedule to synchronize at 11:15 am daily.</p>
<p>The Replication section is used to configure replication options for the node
overall and for objects stored in Metacat.  The <code class="docutils literal"><span class="pre">Accept</span> <span class="pre">and</span> <span class="pre">Store</span> <span class="pre">Replicas</span></code>
checkbox is used to indicate that the administrator of this node is willing to allow
replica data and metadata from other Member Nodes to be stored on this node.  We
encourage people to allow replication to their nodes, as this increases the
scalability and flexibility of the network overall.  The three &#8220;Default&#8221; fields set
the default values for the replication policies for data and metadata on this node
that are generated when System Metadata is not available for an object (such as when
it originates from a client that is not DataONE compliant).  The <code class="docutils literal"><span class="pre">Default</span> <span class="pre">Number</span> <span class="pre">of</span>
<span class="pre">Replicas</span></code> determines how many replica copies of the object should be stored on
other Member Nodes.  A value of 0 or less indicates that no replicas should be
stored.  In addition, you can specify a list of nodes that are either preferred for
use when choosing replica nodes, or that are blocked from use as replica nodes.
This allows Member Nodes to set up bidirectional agreements with partner nodes to
replicate data across their sites. The values for both <code class="docutils literal"><span class="pre">Default</span> <span class="pre">Preferred</span> <span class="pre">Nodes</span></code>
and <code class="docutils literal"><span class="pre">Default</span> <span class="pre">Blocked</span> <span class="pre">Nodes</span></code> is a comma-separated list of NodeReference identifiers
that were assigned to the target nodes by DataONE.</p>
<p>Once these parameters have been properly set, us the <code class="docutils literal"><span class="pre">Register</span></code> button to
request to register with the DataONE Coordinating Node.  This will generate a
registration document describing this Metacat instance and send it to the
Coordinating Node registration service.  At that point, all that remains is to wait for
the DataONE administrators to approve the node registration.  Details of the approval
process can be found on the <a class="reference external" href="http://www.dataone.org">DataONE web site</a>.</p>
</div>
<div class="section" id="access-control-policies">
<h2>6.7. Access Control Policies<a class="headerlink" href="#access-control-policies" title="Permalink to this headline">¶</a></h2>
<p>Metacat has supported fine grained access control for objects in the system since
its inception.  DataONE has devised a simple but effective access control system
that is compatible with the prior system in Metacat.  For each object in the DataONE
system (including data objects, scientific metadata objects, and resource maps),
a <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/Types.html#Types.AccessPolicy">SystemMetadata</a> document describes the critical metadata needed to manage that
object in the system.  This metadata includes a <code class="docutils literal"><span class="pre">RightsHolder</span></code> field and an
<code class="docutils literal"><span class="pre">AuthoritativeMemberNode</span></code> field that are used to list the people and node that
have ultimate control over the disposition of the object.  In addition, a separate
<a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/Types.html#Types.AccessPolicy">AccessPolicy</a> can be included in the <code class="docutils literal"><span class="pre">SystemMetadata</span></code> for the object.  This <code class="docutils literal"><span class="pre">AccessPolicy</span></code>
consists of a set of rules that grant additional permissions to other people,
groups, and systems in DataONE.  For example, for one data file, two users
(Alice and Bob) may be able make changes to the object, and the general public may
be allowed to read the object.  In the absence of explicit rules extending these permissions,
Metacat enforces the rule that only the <code class="docutils literal"><span class="pre">RightsHolder</span></code> and <code class="docutils literal"><span class="pre">AuthoritativeMemberNode</span></code> have
rights to the object, and that the Coordinating Node can manage <code class="docutils literal"><span class="pre">SystemMetadata</span></code>
for the object.  An example AccessPolicy that might be submitted with a dataset
(giving Alice and Bob permission to read and write the object) follows:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">...</span>
<span class="o">&lt;</span><span class="n">accessPolicy</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">allow</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">subject</span><span class="o">&gt;/</span><span class="n">C</span><span class="o">=</span><span class="n">US</span><span class="o">/</span><span class="n">O</span><span class="o">=</span><span class="n">SomeIdP</span><span class="o">/</span><span class="n">CN</span><span class="o">=</span><span class="n">Alice</span><span class="o">&lt;/</span><span class="n">subject</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">subject</span><span class="o">&gt;/</span><span class="n">C</span><span class="o">=</span><span class="n">US</span><span class="o">/</span><span class="n">O</span><span class="o">=</span><span class="n">SomeIdP</span><span class="o">/</span><span class="n">CN</span><span class="o">=</span><span class="n">Bob</span><span class="o">&lt;/</span><span class="n">subject</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">permission</span><span class="o">&gt;</span><span class="n">read</span><span class="o">&lt;/</span><span class="n">permission</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">permission</span><span class="o">&gt;</span><span class="n">write</span><span class="o">&lt;/</span><span class="n">permission</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">allow</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">accessPolicy</span><span class="o">&gt;</span>
<span class="o">...</span>
</pre></div>
</div>
<p>These AccessPolicies can be embedded inside of the <code class="docutils literal"><span class="pre">SystemMetadata</span></code> that accompany
submission of an object through the <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.create">MNStorage.create</a> and <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.update">MNStorage.update</a> services,
or can be set using the <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/CN_APIs.html#CNAuthorization.setAccessPolicy">CNAuthorization.setAccessPolicy</a> service.</p>
</div>
<div class="section" id="configuration-as-a-replication-target">
<h2>6.8. Configuration as a replication target<a class="headerlink" href="#configuration-as-a-replication-target" title="Permalink to this headline">¶</a></h2>
<p>DataONE is designed to enable a robust preservation environment through replication
of digital objects at multiple Member Nodes.  Any Member Node in DataONE that implements
the Tier 4 Service interface can offer to act as a target for object replication.
Currently, Metacat configuration supports turning this replication function on or off.
When the &#8216;Act as a replication target&#8217; checkbox is checked, then Metacat will notify
the Coordinating Nodes in DataONE that it is available to house replicas of objects
from other nodes.  Shortly thereafter, the Coordinating Nodes may notify Metacat to
replicate objects from throughout the system, which it will start to do.  There objects
will begin to be listed in the Metacat catalog.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Future versions of Metacat will allow finer specification of the Node
Replication Policy, which determines the set of objects
that it is willing to replicate, using constraints on object size, total objects,
source nodes, and object format types.</p>
</div>
</div>
<div class="section" id="object-replication-policies">
<h2>6.9. Object Replication Policies<a class="headerlink" href="#object-replication-policies" title="Permalink to this headline">¶</a></h2>
<p>In addition to access control, each object also can have a <code class="docutils literal"><span class="pre">ReplicationPolicy</span></code>
associated with it that determines whether DataONE should attempt to replicate the
object for failover and backup purposes to other Member Nodes in the federation.
Both the <code class="docutils literal"><span class="pre">RightsHolder</span></code> and <code class="docutils literal"><span class="pre">AuthoritativeMemberNode</span></code> for an object can set the
<code class="docutils literal"><span class="pre">ReplicationPolicy</span></code>, which consists of fields that describe how many replicas
should be maintained, and any nodes that are preferred for housing those replicas, or
that should be blocked from housing replicas.</p>
<p>These ReplicationPolicies can be embedded inside of the <code class="docutils literal"><span class="pre">SystemMetadata</span></code> that accompany
submission of an object through the <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.create">MNStorage.create</a> and <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/MN_APIs.html#MNStorage.update">MNStorage.update</a> services,
or can be set using the <a class="reference external" href="http://releases.dataone.org/online/d1-architecture-1.0.0/apis/CN_APIs.html#CNReplication.setReplicationPolicy">CNReplication.setReplicationPolicy</a> service.</p>
</div>
<div class="section" id="generating-dataone-system-metadata">
<h2>6.10. Generating DataONE System Metadata<a class="headerlink" href="#generating-dataone-system-metadata" title="Permalink to this headline">¶</a></h2>
<p>When a Metacat instance becomes a Member Node, System Metadata must be generated for the existing content.
This can be invoked in the Replication configuration screen of the Metacat administration interface. Initially,
Metacat instances will only need to generate System Metadata for their local content (the <code class="docutils literal"><span class="pre">localhost</span></code> entry).
In cases where Metacat has participated in replication with other Metacat servers, it may be useful to generate System Metadata
for those replica records as well. Please consult both the replication partner&#8217;s administrator and the DataONE administrators before
generating System Metadata for replica content.</p>
<div class="figure align-center" id="id2">
<img alt="_images/image069.png" src="_images/image069.png" />
<p class="caption"><span class="caption-text">The replication configuration screen for generating System Metadata.</span></p>
</div>
</div>
<div class="section" id="apache-configuration-details">
<h2>6.11. Apache configuration details<a class="headerlink" href="#apache-configuration-details" title="Permalink to this headline">¶</a></h2>
<p>These Apache directives are crucial for Metacat to function as a Tier 2+ Member Node</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="o">...</span>
<span class="n">AllowEncodedSlashes</span> <span class="n">On</span>
<span class="n">AcceptPathInfo</span>      <span class="n">On</span>
<span class="n">JkOptions</span> <span class="o">+</span><span class="n">ForwardURICompatUnparsed</span>
<span class="n">SSLEngine</span> <span class="n">on</span>
<span class="n">SSLOptions</span> <span class="o">+</span><span class="n">StrictRequire</span> <span class="o">+</span><span class="n">StdEnvVars</span> <span class="o">+</span><span class="n">ExportCertData</span>
<span class="n">SSLVerifyClient</span> <span class="n">optional</span>
<span class="n">SSLVerifyDepth</span> <span class="mi">10</span>
<span class="n">SSLCertificateFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">ssl</span><span class="o">/</span><span class="n">certs</span><span class="o">/&lt;</span><span class="n">your_server_certificate</span><span class="o">&gt;</span>
<span class="n">SSLCertificateKeyFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">ssl</span><span class="o">/</span><span class="n">private</span><span class="o">/&lt;</span><span class="n">your_server_key</span><span class="o">&gt;</span>
<span class="n">SSLCertificateChainFile</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">ssl</span><span class="o">/</span><span class="n">certs</span><span class="o">/&lt;</span><span class="n">CA_chain_file</span><span class="o">&gt;.</span><span class="n">crt</span>
<span class="n">SSLCACertificatePath</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">ssl</span><span class="o">/</span><span class="n">certs</span><span class="o">/</span>
<span class="o">...</span>
</pre></div>
</div>
<p>Where <code class="docutils literal"><span class="pre">&lt;your_server_certificate&gt;</span></code> and <code class="docutils literal"><span class="pre">&lt;your_server_key&gt;</span></code> are the certificate/key pair used by Apache
to identify the server to clients. The DataONE Certiciate Authority certificate - available from the DataONE administrators -
will also need to be added to the directory specified by <code class="docutils literal"><span class="pre">SSLCACertificatePath</span></code>
in order to validate client certificates signed by that authority. DataONE has also provided a CA chain file that may be used in lieu of directory-based CA
confinguration. The <cite>SSLCACertificateFile`</cite> directive should be used when configuring your member node with the DataONE CA chain.
When these changes have been applied, Apache should be restarted:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">ssl</span><span class="o">/</span><span class="n">certs</span>
<span class="n">sudo</span> <span class="n">c_rehash</span>
<span class="n">sudo</span> <span class="o">/</span><span class="n">etc</span><span class="o">/</span><span class="n">init</span><span class="o">.</span><span class="n">d</span><span class="o">/</span><span class="n">apache2</span> <span class="n">restart</span>
</pre></div>
</div>
</div>
<div class="section" id="configure-tomcat-to-allow-dataone-identifiers">
<h2>6.12. Configure Tomcat to allow DataONE identifiers<a class="headerlink" href="#configure-tomcat-to-allow-dataone-identifiers" title="Permalink to this headline">¶</a></h2>
<p>Edit <code class="docutils literal"><span class="pre">/etc/tomcat/catalina.properties</span></code> to include:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">tomcat</span><span class="o">.</span><span class="n">util</span><span class="o">.</span><span class="n">buf</span><span class="o">.</span><span class="n">UDecoder</span><span class="o">.</span><span class="n">ALLOW_ENCODED_SLASH</span><span class="o">=</span><span class="n">true</span>
<span class="n">org</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">catalina</span><span class="o">.</span><span class="n">connector</span><span class="o">.</span><span class="n">CoyoteAdapter</span><span class="o">.</span><span class="n">ALLOW_BACKSLASH</span><span class="o">=</span><span class="n">true</span>
</pre></div>
</div>
</div>
</div>


	          </div>
	        </div>
      	</div>

	
	      <div class="clearer"></div>
	    </div>
	    <div class="footer">
	    	<div class="footerNav">
				
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right">
        <span id="searchbox" style="display: none;">
            <form class="search" action="search.html" method="get">
              <input type="text" name="q" size="18" />
              <input type="submit" value="Go" class="icon-search"/>
              <input type="hidden" name="check_keywords" value="yes" />
              <input type="hidden" name="area" value="default" />
            </form>
        </span>
        </li>
        <script type="text/javascript">$('#searchbox').show(0);</script>
        <li class="right">
          <a href="genindex.html" title="General Index"
             >index</a>
           </li>
        <li class="right">
          <a href="submitting.html" title="7. Accessing and Submitting Metadata and Data"
             >next</a>
           </li>
        <li class="right">
          <a href="configuration.html" title="5. Configuring Metacat"
             >previous</a>
           </li>
        <li class="breadcrumb first"><a href="index.html">Metacat 2.8.4 documentation</a> &raquo;</li> 
      </ul>
      
    </div>
			</div>
	    	<div class="small-print">
			      &copy; Copyright 2012, Regents of the University of California.
			      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.5.2.
			</div>
	    </div>
	</div>
  </body>
</html>