<!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>Components of the DataONE Infrastructure &#8212; v2.1.0-beta</title>
    
    <link rel="stylesheet" href="../_static/dataone.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '2.1.0-beta',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../_static/mathjax_pre.js"></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>
    <script type="text/javascript" src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
    <script type="text/javascript" src="../_static/sidebar.js"></script>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Implementation Priority" href="prioritization.html" />
    <link rel="prev" title="Implementation Roadmap" href="roadmap.html" />
   
  
  <link media="only screen and (max-device-width: 480px)" href="../_static/small_dataone.css" type= "text/css" rel="stylesheet" />

  </head>
  <body role="document">
  
    <div class="version_notice">
      <p>
      <span class='bold'>Warning:</span> These documents are under active 
      development and subject to change (version 2.1.0-beta).<br />
      The latest release documents are at:
      <a href="https://purl.dataone.org/architecture">https://purl.dataone.org/architecture</a>
      </p>
    </div>

    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="prioritization.html" title="Implementation Priority"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="roadmap.html" title="Implementation Roadmap"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html"></a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Implementation Notes</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="components-of-the-dataone-infrastructure">
<h1>Components of the DataONE Infrastructure<a class="headerlink" href="#components-of-the-dataone-infrastructure" title="Permalink to this headline">¶</a></h1>
<p>The following diagrams indicate code dependencies between various components
that make up the DataONE infrastructure. Functional dependencies are not
depicted.</p>
<div class="section" id="common-components">
<h2>Common Components<a class="headerlink" href="#common-components" title="Permalink to this headline">¶</a></h2>
<p><strong>Figure 1.</strong> Core shared components.</p>
<img src="../_images/graphviz-d18ba77fc939ff0e414b4451ddeb09cb52ff1df0.png" alt="digraph core_components {

   fontname = &quot;Bitstream Vera Sans&quot;;
   fontsize = 8;

   edge [
     fontname = &quot;Bitstream Vera Sans&quot;
     fontsize = 8
     color = &quot;#888888&quot;
     arrowhead = &quot;open&quot;
     arrowsize = 0.5
     style=&quot;solid&quot;
     ];

   node [
     fontname = &quot;Courier&quot;
     fontsize = 8
     fontcolor = &quot;black&quot;];

   color=&quot;#888888&quot;;

   schema [label=&quot;dataonetypes.xsd&quot; URL=&quot;#dataonetypes&quot;];
   d1_common_java;
   d1_common_python;
   d1_libclient_java;
   d1_libclient_python;
   d1_architecture;
   d1_jibx_extensions;
   d1_test_resources;
   foresite_java [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
   foresite_python [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];

   d1_architecture -&gt; schema;
   d1_common_java -&gt; schema;
   d1_common_java -&gt; d1_jibx_extensions;
   d1_common_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
   d1_common_java -&gt; d1_architecture [style=&quot;dotted&quot;];
   d1_common_python -&gt; schema;
   d1_common_python  -&gt; d1_architecture [style=&quot;dotted&quot;];
   d1_libclient_java -&gt; d1_common_java;
   d1_libclient_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
   d1_libclient_java  -&gt; d1_architecture [style=&quot;dotted&quot;];
   d1_libclient_java  -&gt; foresite_java;
   d1_libclient_python -&gt; d1_common_python;
   d1_libclient_python -&gt; d1_architecture [style=&quot;dotted&quot;];
   d1_libclient_python -&gt; foresite_python;

}" usemap="#core_components" />
<map id="core_components" name="core_components">
<area shape="poly" id="node1" href="#dataonetypes" title="dataonetypes.xsd" alt="" coords="278,317 274,310 263,303 246,298 224,295 200,293 176,295 154,298 137,303 126,310 122,317 126,325 137,331 154,337 176,340 200,341 224,340 246,337 263,331 274,325"/>
</map>
<p>NEEDS VERIFYING</p>
</div>
<div class="section" id="integration-test-tools">
<h2>Integration Test Tools<a class="headerlink" href="#integration-test-tools" title="Permalink to this headline">¶</a></h2>
<p><strong>Figure 2.</strong> Test services.</p>
<img src="../_images/graphviz-1ff3764c75ed41d5156a4f6a0c0a8d2c2b71f516.png" alt="digraph core_components {

    color=&quot;#888888&quot;;
    fontname = &quot;Bitstream Vera Sans&quot;;
    fontsize = 8;

    edge [
      fontname = &quot;Bitstream Vera Sans&quot;
      fontsize = 8
      color = &quot;#888888&quot;
      arrowhead = &quot;open&quot;
      arrowsize = 0.5
      style=&quot;solid&quot;
      ];

    node [
      fontname = &quot;Courier&quot;
      fontsize = 8
      fontcolor = &quot;black&quot;];

    subgraph cluster_CORE {
      label=&quot;Shared Components&quot;;
      color=&quot;#888888&quot;;

      schema [label=&quot;dataonetypes.xsd&quot;];
      d1_common_java;
      d1_common_python;
      d1_libclient_java;
      d1_libclient_python;
      d1_architecture;
      d1_jibx_extensions;
      d1_test_resources;
      foresite_java [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
      foresite_python [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];

      d1_architecture -&gt; schema;
      d1_common_java -&gt; schema;
      d1_common_java -&gt; d1_jibx_extensions;
      d1_common_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
      d1_common_java -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_common_python -&gt; schema;
      d1_common_python  -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_java -&gt; d1_common_java;
      d1_libclient_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
      d1_libclient_java  -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_java  -&gt; foresite_java;
      d1_libclient_python -&gt; d1_common_python;
      d1_libclient_python -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_python -&gt; foresite_python;
    }

    d1_integration;
    d1_web_test_site;
    d1_instance_generator;
    d1_echo_service;

    d1_integration -&gt; d1_common_java;
    d1_integration -&gt; d1_libclient_java;
    d1_integration -&gt; Certificates;

    d1_web_test_site -&gt; d1_integration;

    d1_instance_generator -&gt; d1_common_python;
    d1_instance_generator -&gt; d1_libclient_python;
}" />
</div>
<div class="section" id="coordinating-node-components">
<h2>Coordinating Node Components<a class="headerlink" href="#coordinating-node-components" title="Permalink to this headline">¶</a></h2>
<p><strong>Figure 3.</strong> Coordinating node components.</p>
<img src="../_images/graphviz-2f0e7e7fc7061652b704fe779217f7d99c1bfbbb.png" alt="digraph core_components {

   color=&quot;#888888&quot;;
   fontname = &quot;Bitstream Vera Sans&quot;;
   fontsize = 10;

   edge [
     fontname = &quot;Bitstream Vera Sans&quot;
     fontsize = 8
     color = &quot;#888888&quot;
     arrowhead = &quot;open&quot;
     arrowsize = 0.5
     style=&quot;solid&quot;
     ];

   node [
     fontname = &quot;Courier&quot;
     fontsize = 10
     fontcolor = &quot;black&quot;];

   subgraph cluster_CORE {
     label=&quot;Shared Components&quot;;
     color=&quot;#888888&quot;;

     schema [label=&quot;dataonetypes.xsd&quot;];
     d1_common_java;
     d1_common_python;
     d1_libclient_java;
     d1_libclient_python;
     d1_architecture;
     d1_jibx_extensions;
     d1_test_resources;
     foresite_java [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
     foresite_python [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];

     d1_architecture -&gt; schema;
     d1_common_java -&gt; schema;
     d1_common_java -&gt; d1_jibx_extensions;
     d1_common_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
     d1_common_java -&gt; d1_architecture [style=&quot;dotted&quot;];
     d1_common_python -&gt; schema;
     d1_common_python  -&gt; d1_architecture [style=&quot;dotted&quot;];
     d1_libclient_java -&gt; d1_common_java;
     d1_libclient_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
     d1_libclient_java  -&gt; d1_architecture [style=&quot;dotted&quot;];
     d1_libclient_java  -&gt; foresite_java;
     d1_libclient_python -&gt; d1_common_python;
     d1_libclient_python -&gt; d1_architecture [style=&quot;dotted&quot;];
     d1_libclient_python -&gt; foresite_python;
   }


   postgres [style=&quot;filled&quot; fillcolor=&quot;grey80&quot;];
   hazelcast [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
   LDAP [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
   SOLR [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
   cilogon_portal_servlet [style=&quot;filled&quot; bgcolor=&quot;grey80&quot; label=&quot;cilogon-portal-servlet&quot;];

   d1_cn_version_tool;
   d1_cn_common;
   d1_cn_index_common;
   d1_cn_index_generator;
   d1_cn_noderegistry;
   d1_mercury_common;
   d1_portal;
   d1_cn_approve_node;
   d1_identity_manager;
   d1_log_aggregation;
   d1_mercury_ui;
   d1_portal_servlet;
   d1_cn_rest;
   d1_cn_rest_proxy;
   d1_cn_service;
   d1_solr_extensions;
   d1_synchronization;
   d1_cn_index_processor;
   d1_replication;
   d1_cn_index_tool;
   d1_process_daemon;
   cn_metacat;

   d1_cn_common -&gt; d1_common_java;
   d1_cn_common -&gt; hazelcast;

   d1_cn_index_common -&gt; d1_common_java;
   d1_cn_index_common -&gt; postgres;

   d1_cn_index_generator -&gt; d1_cn_index_common;
   d1_cn_index_generator -&gt; d1_common_java;
   d1_cn_index_generator -&gt; d1_cn_common;
   d1_cn_index_generator -&gt; postgres;
   d1_cn_index_generator -&gt; hazelcast;

   d1_cn_noderegistry -&gt; d1_cn_common;
   d1_cn_noderegistry -&gt; LDAP;
   d1_cn_noderegistry -&gt; hazelcast;

   d1_mercury_common -&gt; d1_common_java;
   d1_mercury_common -&gt; d1_libclient_java;
   d1_mercury_common -&gt; d1_portal;

   d1_portal -&gt; d1_common_java;
   d1_portal -&gt; d1_libclient_java;

   d1_cn_approve_node -&gt; d1_cn_noderegistry;
   d1_cn_approve_node -&gt; d1_libclient_java;

   d1_identity_manager -&gt; d1_libclient_java;
   d1_identity_manager -&gt; d1_cn_noderegistry;

   d1_log_aggregation -&gt; d1_libclient_java;
   d1_log_aggregation -&gt; d1_cn_noderegistry;

   d1_mercury_ui -&gt; d1_common_java;
   d1_mercury_ui -&gt; d1_libclient_java;
   d1_mercury_ui -&gt; d1_portal;

   d1_portal_servlet -&gt; cilogon_portal_servlet;
   d1_portal_servlet -&gt; d1_portal;
   d1_portal_servlet -&gt; hazelcast;

   d1_cn_rest_proxy -&gt; d1_cn_common;

   d1_cn_rest -&gt; d1_libclient_java;
   d1_cn_rest -&gt; d1_identity_manager;
   d1_cn_rest -&gt; d1_portal;
   d1_cn_rest -&gt; d1_cn_rest_proxy;
   d1_cn_rest -&gt; d1_cn_noderegistry;
   d1_cn_rest -&gt; d1_cn_common;

   d1_cn_service -&gt; d1_cn_rest;
   d1_cn_service -&gt; d1_cn_rest_proxy;

   d1_solr_extensions -&gt; d1_libclient_java;
   d1_solr_extensions -&gt; d1_cn_common;
   d1_solr_extensions -&gt; d1_identity_manager;
   d1_solr_extensions -&gt; d1_cn_noderegistry;
   d1_solr_extensions -&gt; d1_portal;

   d1_synchronization -&gt; d1_libclient_java;
   d1_synchronization -&gt; d1_cn_noderegistry;
   d1_synchronization -&gt; d1_identity_manager;
   d1_synchronization -&gt; hazelcast;

   d1_cn_index_processor -&gt; d1_cn_common;
   d1_cn_index_processor -&gt; d1_libclient_java;
   d1_cn_index_processor -&gt; d1_cn_index_common;
   d1_cn_index_processor -&gt; d1_cn_index_generator;
   d1_cn_index_processor -&gt; postgres;
   d1_cn_index_processor -&gt; SOLR;

   d1_replication -&gt; d1_cn_noderegistry;
   d1_replication -&gt; d1_cn_common;
   d1_replication -&gt; d1_libclient_java;
   d1_replication -&gt; hazelcast;

   d1_cn_index_tool -&gt; d1_common_java;
   d1_cn_index_tool -&gt; d1_libclient_java;
   d1_cn_index_tool -&gt; d1_cn_common;
   d1_cn_index_tool -&gt; d1_cn_index_common;
   d1_cn_index_tool -&gt; d1_cn_index_generator;
   d1_cn_index_tool -&gt; d1_cn_index_processor;

   d1_process_daemon -&gt; d1_synchronization;
   d1_process_daemon -&gt; d1_log_aggregation;
   d1_process_daemon -&gt; d1_replication;
   d1_process_daemon -&gt; hazelcast;

   cn_metacat -&gt; d1_common_java;
   cn_metacat -&gt; d1_libclient_java;
   cn_metacat -&gt; postgres;
   cn_metacat -&gt; hazelcast;
   cn_metacat -&gt; foresite_java;

}" />
</div>
<div class="section" id="member-node-components-and-instances">
<h2>Member Node Components and Instances<a class="headerlink" href="#member-node-components-and-instances" title="Permalink to this headline">¶</a></h2>
<p><strong>Figure 4.</strong> Member node implementations (ovals) and instances (rectangles).</p>
<p>NEEDS UPDATING</p>
<img src="../_images/graphviz-38cad3e3243b76a41ed824c38e2a54a1077d6e59.png" alt="digraph core_components {

    color=&quot;#888888&quot;;
    fontname = &quot;Bitstream Vera Sans&quot;;
    fontsize = 8;

    edge [
      fontname = &quot;Bitstream Vera Sans&quot;
      fontsize = 8
      color = &quot;#888888&quot;
      arrowhead = &quot;open&quot;
      arrowsize = 0.5
      style=&quot;solid&quot;
      ];

    node [
      fontname = &quot;Courier&quot;
      fontsize = 8
      fontcolor = &quot;black&quot;];

    subgraph cluster_CORE {
      label=&quot;Shared Components&quot;;
      color=&quot;#888888&quot;;

      schema [label=&quot;dataonetypes.xsd&quot;];
      d1_common_java;
      d1_common_python;
      d1_libclient_java;
      d1_libclient_python;
      d1_architecture;
      foresite_java [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
      foresite_python [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];

      d1_architecture -&gt; schema;
      d1_common_java -&gt; schema;
      d1_common_java -&gt; d1_jibx_extensions;
      d1_common_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
      d1_common_java -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_common_python -&gt; schema;
      d1_common_python  -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_java -&gt; d1_common_java;
      d1_libclient_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
      d1_libclient_java  -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_java  -&gt; foresite_java;
      d1_libclient_python -&gt; d1_common_python;
      d1_libclient_python -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_python -&gt; foresite_python;
    }

    Metacat;
    Mercury_MN;

    KNB [shape=&quot;record&quot;];
    ORNL_DAAC [shape=&quot;record&quot;];
    USGS [shape=&quot;record&quot;];
    Dryad [shape=&quot;record&quot;];
    Merritt [shape=&quot;record&quot;];
    SAN_Parks [shape=&quot;record&quot;];
    MN_Replication_UNM_1 [shape=&quot;record&quot;];
    MN_Replication_UNM_2 [shape=&quot;record&quot;];
    MN_Replication_UCSB_1 [shape=&quot;record&quot;];
    MN_Replication_UCSB_2 [shape=&quot;record&quot;];
    MN_Replication_ORC_1 [shape=&quot;record&quot;];
    MN_Replication_ORC_2 [shape=&quot;record&quot;];

    Metacat -&gt; d1_common_java;
    Metacat -&gt; d1_libclient_java;
    KNB -&gt; Metacat;
    SAN_Parks -&gt; Metacat;
    Merritt -&gt; Metacat;

    Mercury_MN -&gt; d1_common_java;
    ORNL_DAAC -&gt; Mercury_MN;
    USGS -&gt; Mercury_MN;

    GMN -&gt; d1_common_python;
    GMN -&gt; d1_libclient_python;
    MN_Replication_UNM_1 -&gt; GMN;
    MN_Replication_UCSB_1 -&gt; GMN;
    MN_Replication_ORC_1 -&gt; GMN;

    MN_Replication_UNM_2 -&gt; Metacat;
    MN_Replication_UCSB_2 -&gt; Metacat;
    MN_Replication_ORC_2 -&gt; Metacat;

    Dryad -&gt; d1_common_java;
    Dryad -&gt; d1_libclient_java;
}" />
</div>
<div class="section" id="investigator-toolkit-components">
<h2>Investigator Toolkit Components<a class="headerlink" href="#investigator-toolkit-components" title="Permalink to this headline">¶</a></h2>
<p><strong>Figure 5.</strong> Investigator toolkit.</p>
<p>NEEDS UPDATING</p>
<img src="../_images/graphviz-af4cc2442fd1b10c24c0ae5e407cbca970650daf.png" alt="digraph core_components {

    color=&quot;#888888&quot;;
    fontname = &quot;Bitstream Vera Sans&quot;;
    fontsize = 8;

    edge [
      fontname = &quot;Bitstream Vera Sans&quot;
      fontsize = 8
      color = &quot;#888888&quot;
      arrowhead = &quot;open&quot;
      arrowsize = 0.5
      style=&quot;solid&quot;
      ];

    node [
      fontname = &quot;Courier&quot;
      fontsize = 8
      fontcolor = &quot;black&quot;];

    subgraph cluster_CORE {
      label=&quot;Shared Components&quot;;
      color=&quot;#888888&quot;;

      schema [label=&quot;dataonetypes.xsd&quot;];
      d1_common_java;
      d1_common_python;
      d1_libclient_java;
      d1_libclient_python;
      d1_architecture;
      foresite_java [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];
      foresite_python [style=&quot;filled&quot; bgcolor=&quot;grey80&quot;];

      d1_architecture -&gt; schema;
      d1_common_java -&gt; schema;
      d1_common_java -&gt; d1_jibx_extensions;
      d1_common_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
      d1_common_java -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_common_python -&gt; schema;
      d1_common_python  -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_java -&gt; d1_common_java;
      d1_libclient_java -&gt; d1_test_resources [style=&quot;dashed&quot;];
      d1_libclient_java  -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_java  -&gt; foresite_java;
      d1_libclient_python -&gt; d1_common_python;
      d1_libclient_python -&gt; d1_architecture [style=&quot;dotted&quot;];
      d1_libclient_python -&gt; foresite_python;
    }

    d1_client_cli;
    d1_client_r;
    d1_client_fuse;
    d1_client_dokan;

    d1_client_cli -&gt; d1_common_python;
    d1_client_cli -&gt; d1_libclient_python;
    d1_client_r -&gt; d1_common_java;
    d1_client_r -&gt; d1_libclient_java;
    d1_client_fuse -&gt; d1_common_python;
    d1_client_fuse -&gt; d1_libclient_python;
    d1_client_dokan -&gt; d1_client_fuse;
}" />
</div>
<div class="section" id="table-of-components">
<h2>Table of Components<a class="headerlink" href="#table-of-components" title="Permalink to this headline">¶</a></h2>
<table border="1" class="docutils" id="id1">
<caption><span class="caption-text">Components</span><a class="headerlink" href="#id1" title="Permalink to this table">¶</a></caption>
<colgroup>
<col width="18%" />
<col width="12%" />
<col width="12%" />
<col width="59%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Component</th>
<th class="head">Category</th>
<th class="head">Responsible</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>dataonetypes</td>
<td>Common</td>
<td>MJ</td>
<td>Schema used for defining serialization of core data types</td>
</tr>
<tr class="row-odd"><td>d1_architecture</td>
<td>Common</td>
<td>DV</td>
<td>The system architecture documentation</td>
</tr>
<tr class="row-even"><td>operations</td>
<td>Operations</td>
<td>DV</td>
<td>Operations documentation - servers etc</td>
</tr>
<tr class="row-odd"><td>d1_common_java</td>
<td>Common</td>
<td>RW</td>
<td>Base DataONE library in Java</td>
</tr>
<tr class="row-even"><td>d1_common_python</td>
<td>Common</td>
<td>RD</td>
<td>Base DataONE library in Python</td>
</tr>
<tr class="row-odd"><td>d1_libclient_java</td>
<td>Common</td>
<td>RN</td>
<td>Client library implemented in Java</td>
</tr>
<tr class="row-even"><td>d1_libclient_python</td>
<td>Common</td>
<td>RD</td>
<td>Client library implemented in Python</td>
</tr>
<tr class="row-odd"><td>d1_web_test_site</td>
<td>Testing</td>
<td>RN</td>
<td>Member node integration testing service</td>
</tr>
<tr class="row-even"><td>d1_echo_service</td>
<td>Testing</td>
<td>DV</td>
<td>A HTTP echo service used for testing</td>
</tr>
<tr class="row-odd"><td>d1_integration</td>
<td>Testing</td>
<td>RN</td>
<td>Integration testing for components and combinations thereof</td>
</tr>
<tr class="row-even"><td>Certificates</td>
<td>Testing</td>
<td>RW</td>
<td>Generation and management of certificates for use by server components</td>
</tr>
<tr class="row-odd"><td>d1_instance_generator</td>
<td>Testing</td>
<td>RD</td>
<td>Generates example instances of objects defined in dataoneTypes.xsd</td>
</tr>
<tr class="row-even"><td>one_mercury</td>
<td>CN</td>
<td>GP</td>
<td>The search interface that is implemented by the Mercury search index</td>
</tr>
<tr class="row-odd"><td>cn_metacat</td>
<td>CN</td>
<td>CJ</td>
<td>The <a class="reference external" href="http://knb.ecoinformatics.org/software/">Metacat application</a>. Currently employed as the replicated object  store on Coordinating Nodes.</td>
</tr>
<tr class="row-even"><td>d1_cn_index_processor</td>
<td>CN</td>
<td>SR/DV</td>
<td>Populates the SOLR index by extracting informaton from system metadata, science metadata and resource maps.</td>
</tr>
<tr class="row-odd"><td>d1_cn_index_generator</td>
<td>CN</td>
<td>SR/DV</td>
<td>Generates indexing tasks when new objects appear or system metadata changes</td>
</tr>
<tr class="row-even"><td>d1_cn_index_common</td>
<td>CN</td>
<td>SR/DV</td>
<td>Code shared between the indexing components</td>
</tr>
<tr class="row-odd"><td>indexerapi</td>
<td>CN</td>
<td>SR/DV</td>
<td>A library used by the index_processor for extracting content from various types of XML structures such as system metadata, science metadata and resource maps.</td>
</tr>
<tr class="row-even"><td>d1_portal_servlet</td>
<td>CN</td>
<td>BL</td>
<td>Provides a UI for interacting with the CILogon service, an authentication proxy service</td>
</tr>
<tr class="row-odd"><td>d1_portal</td>
<td>CN</td>
<td>BL</td>
<td>Implements the certificate manager used by the portal servlets</td>
</tr>
<tr class="row-even"><td>d1_identity_manager</td>
<td>CN</td>
<td>BL</td>
<td>Provides mechanisms for managing subjects in dataone</td>
</tr>
<tr class="row-odd"><td>d1_process_daemon</td>
<td>CN</td>
<td>RW</td>
<td>Monitors content on member nodes, creating tasks for synchronization and replication</td>
</tr>
<tr class="row-even"><td>d1_synchronization</td>
<td>CN</td>
<td>RW</td>
<td>Manages the synchronization of content between Member Nodes and the Coordinating Nodes.</td>
</tr>
<tr class="row-odd"><td>d1_replication</td>
<td>CN</td>
<td>CJ</td>
<td>Manages replication of content between Member Nodes</td>
</tr>
<tr class="row-even"><td>d1_cn_noderegistry</td>
<td>CN</td>
<td>RW</td>
<td>A register of coordinating and member nodes participating in a DataONE environment</td>
</tr>
<tr class="row-odd"><td>d1_cn_common</td>
<td>CN</td>
<td>RW</td>
<td>A library of code shared between coordintating node components</td>
</tr>
<tr class="row-even"><td>d1_cn_rest</td>
<td>CN</td>
<td>RW</td>
<td>The coordinating node HTTP REST service interface</td>
</tr>
<tr class="row-odd"><td>d1_cn_rest_proxy</td>
<td>CN</td>
<td>RW</td>
<td>Proxies requests coming in to a CN to underlying service implementations such as the object store (i.e. Metacat)</td>
</tr>
<tr class="row-even"><td>d1_cn_service</td>
<td>CN</td>
<td>RW</td>
<td>Coordinating node service, implementing the service APIs, data storage, and CN replication.</td>
</tr>
<tr class="row-odd"><td>d1_simple_search</td>
<td>CN</td>
<td>DV</td>
<td>A simple search interface using Javascript and the SOLR interface.</td>
</tr>
<tr class="row-even"><td>Metacat</td>
<td>MN</td>
<td>CJ</td>
<td>The <a class="reference external" href="http://knb.ecoinformatics.org/software/">Metacat application</a>. Implements the DataONE MN service interfaces.</td>
</tr>
<tr class="row-odd"><td>Dryad</td>
<td>MN</td>
<td>RS</td>
<td>A member node implementation and instance for the Dryad repository</td>
</tr>
<tr class="row-even"><td>GMN</td>
<td>MN</td>
<td>RD</td>
<td>A generic, standalone Member Node implementation written in Python using the <a class="reference external" href="http://www.djangoproject.com/">Django</a> framework.</td>
</tr>
<tr class="row-odd"><td>Mercury_MN</td>
<td>MN</td>
<td>JG</td>
<td>Mercury implementation of the Member Node services</td>
</tr>
<tr class="row-even"><td>d1_client_cli</td>
<td>ITK</td>
<td>RD</td>
<td>A command line client for interacting with the DataONE infrastructure. Currently implemented using d1_libclient_python.</td>
</tr>
<tr class="row-odd"><td>d1_client_fuse</td>
<td>ITK</td>
<td>DV</td>
<td>A <a class="reference external" href="http://fuse.sourceforge.net/">FUSE</a> driver for mounting the DataONE infrastructure as a file system.</td>
</tr>
<tr class="row-even"><td>d1_client_dokan</td>
<td>ITK</td>
<td>DV</td>
<td>An extention of the FUSE driver that is based on <a class="reference external" href="http://dokan-dev.net/en/">Dokan</a> for use on Microsoft Windows systems.</td>
</tr>
<tr class="row-odd"><td>d1_client_r</td>
<td>ITK</td>
<td>MJ</td>
<td>A plugin for R that enables access to DataONE content from the <a class="reference external" href="http://www.r-project.org/">R</a> application. Implemented using d1_libclient_java.</td>
</tr>
<tr class="row-even"><td>hzpeek</td>
<td>Testing</td>
<td>DV</td>
<td>A tool for examining the Hazelcast queues on the CNs</td>
</tr>
<tr class="row-odd"><td>debian_packaging</td>
<td>CN</td>
<td>RW</td>
<td>Debian packages for the CN components</td>
</tr>
</tbody>
</table>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
    <p class="logo"><a href="http://dataone.org">
      <img class="logo" src="../_static/dataone_logo.png" alt="Logo"/>
    </a></p>
  <h3><a href="../index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Components of the DataONE Infrastructure</a><ul>
<li><a class="reference internal" href="#common-components">Common Components</a></li>
<li><a class="reference internal" href="#integration-test-tools">Integration Test Tools</a></li>
<li><a class="reference internal" href="#coordinating-node-components">Coordinating Node Components</a></li>
<li><a class="reference internal" href="#member-node-components-and-instances">Member Node Components and Instances</a></li>
<li><a class="reference internal" href="#investigator-toolkit-components">Investigator Toolkit Components</a></li>
<li><a class="reference internal" href="#table-of-components">Table of Components</a></li>
</ul>
</li>
</ul>
<h3>Related Topics</h3>
<ul>
  <li><a href="../index.html">Documentation Overview</a><ul>
  <li><a href="index.html">Implementation Notes</a><ul>
      <li>Previous: <a href="roadmap.html" title="previous chapter">Implementation Roadmap</a></li>
      <li>Next: <a href="prioritization.html" title="next chapter">Implementation Priority</a></li>
  </ul></li>
  </ul></li>
</ul>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>

    <div class="footer">
      <div id="copyright">
      &copy; Copyright <a href="http://www.dataone.org">2009-2017, DataONE</a>.
        [ <a href="../_sources/implementation/components.txt"
               rel="nofollow">Page Source</a> |
          <a href='https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/implementation/components.txt'
            rel="nofollow">Revision History</a> ]&nbsp;&nbsp;
      </div>
      <div id="acknowledgement">
        <p>This material is based upon work supported by the National Science Foundation
          under Grant Numbers <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=0830944">083094</a> and <a href="http://www.nsf.gov/awardsearch/showAward?AWD_ID=1430508">1430508</a>.</p>
        <p>Any opinions, findings, and conclusions or recommendations expressed in this
           material are those of the author(s) and do not necessarily reflect the views
           of the National Science Foundation.</p>
      </div>
    </div>
    <!--
    <hr />
     <div id="HCB_comment_box"><a href="http://www.htmlcommentbox.com">HTML Comment Box</a> is loading comments...</div>
     <link rel="stylesheet" type="text/css" href="_static/skin.css" />
     <script type="text/javascript" language="javascript" id="hcb">
     /*<! -*/
     (function()
     {s=document.createElement("script");
     s.setAttribute("type","text/javascript");
     s.setAttribute("src", "http://www.htmlcommentbox.com/jread?page="+escape((typeof hcb_user !== "undefined" && hcb_user.PAGE)||(""+window.location)).replace("+","%2B")+"&mod=%241%24wq1rdBcg%24Gg8J5iYSHJWwAJtlYu/yU."+"&opts=21407&num=10");
     if (typeof s!="undefined") document.getElementsByTagName("head")[0].appendChild(s);})();
      /* ->*/
     </script>
   -->
  </body>
</html>