Revision 6831
Added by Matt Jones about 13 years ago
docs/dev/metacat/source/identifiers.txt | ||
---|---|---|
1 |
.. raw:: latex |
|
2 |
|
|
3 |
\newpage |
|
4 |
|
|
5 |
|
|
6 |
Identifier Management |
|
7 |
===================== |
|
8 |
|
|
9 |
.. index:: Identifiers |
|
10 |
|
|
11 |
Author |
|
12 |
Matthew B. Jones |
|
13 |
|
|
14 |
Date |
|
15 |
- 20100301 [MBJ] Initial draft of Identifier documentation |
|
16 |
|
|
17 |
Goal |
|
18 |
Extend Metacat to support identifiers with arbitrary syntax |
|
19 |
|
|
20 |
Summary |
|
21 |
Metacat currently supports identifier strings called 'docids' that have |
|
22 |
the syntax 'scope.object.revision', such as 'foo.34.1' (we will refer to |
|
23 |
these as 'LocalIDs'). We now want Metacat to support identifiers that are |
|
24 |
arbitrary strings, but still enforce uniqueness and proper revision |
|
25 |
handling (refer to these as GUIDs). Metacat must be able to accept |
|
26 |
these strings as identifiers for all CRUD operations, and reference them |
|
27 |
in search results. |
|
28 |
|
|
29 |
Identifier Resolution |
|
30 |
--------------------- |
|
31 |
Because Metacat uses LocalIDs throughout the code for references to objects, |
|
32 |
and that LocalID has a constrained structure that includes semantics about |
|
33 |
revisions in the identifier, it is difficult to wholesale replace it with |
|
34 |
less-constrained string identifiers without re-writing much of Metacat. |
|
35 |
Thus, our alternate strategy is to wrap the Metacat APIs with a |
|
36 |
identifier resolution layer that keeps track of the unconstrained GUIDs and |
|
37 |
maps them to constrained local identifiers which are used internally within |
|
38 |
Metacat. The basic identifer table model is shown in Figure 1, while the |
|
39 |
basic strategy for retrieving an object is shown in Figure 2, creating an |
|
40 |
object is shown in Figure 3, updating an object in Figure 4, and deleting |
|
41 |
an object is shown in Figure 5. |
|
42 |
|
|
43 |
|
|
44 |
Identifier Table Structure |
|
45 |
~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
46 |
|
|
47 |
.. figure:: images/identifiers.png |
|
48 |
|
|
49 |
Figure 1. Table structure for identifiers. |
|
50 |
|
|
51 |
.. |
|
52 |
This block defines the table structure diagram referenced above. |
|
53 |
@startuml images/identifiers.png |
|
54 |
|
|
55 |
identifiers "*" -- "1" xml_documents |
|
56 |
|
|
57 |
identifiers : String identifier |
|
58 |
identifiers : String docid |
|
59 |
identifiers : Integer rev |
|
60 |
|
|
61 |
xml_documents : String docid |
|
62 |
xml_documents : String rev |
|
63 |
|
|
64 |
note right of identifiers |
|
65 |
"identifiers.(docid,rev) is a foreign key into xml_documents" |
|
66 |
end note |
|
67 |
@enduml |
|
68 |
|
|
69 |
.. raw:: latex |
|
70 |
|
|
71 |
\newpage |
|
72 |
|
|
73 |
.. raw:: pdf |
|
74 |
|
|
75 |
PageBreak |
|
76 |
|
|
77 |
|
|
78 |
Handling document read operations |
|
79 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
80 |
|
|
81 |
An overview of the process needed to read an object using a GUID. |
|
82 |
|
|
83 |
|
|
84 |
.. figure:: images/guid_read.png |
|
85 |
|
|
86 |
Figure 2. Basic handling for string identifiers (GUIDs) as mapped to |
|
87 |
docids (LocalIDs) to retrieve an object. |
|
88 |
|
|
89 |
.. |
|
90 |
@startuml images/guid_read.png |
|
91 |
!include plantuml.conf |
|
92 |
actor User |
|
93 |
participant "Client" as app_client << Application >> |
|
94 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
95 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
96 |
participant "Handler" as handler << MetacatHandler >> |
|
97 |
User -> app_client |
|
98 |
app_client -> c_crud: get(token, GUID) |
|
99 |
c_crud -> ident_man: getLocalID(GUID) |
|
100 |
c_crud <-- ident_man: localID |
|
101 |
c_crud -> handler: handleReadAction(localID) |
|
102 |
c_crud <-- handler: object |
|
103 |
c_crud --> app_client: object |
|
104 |
|
|
105 |
@enduml |
|
106 |
|
|
107 |
Handling document create operations |
|
108 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
109 |
|
|
110 |
An overview of the process needed to create an object using a GUID. |
|
111 |
|
|
112 |
.. figure:: images/guid_insert.png |
|
113 |
|
|
114 |
Figure 3. Basic handling for string identifiers (GUIDs) as mapped to |
|
115 |
docids (LocalIDs) to create an object. |
|
116 |
|
|
117 |
.. |
|
118 |
@startuml images/guid_insert.png |
|
119 |
!include plantuml.conf |
|
120 |
actor User |
|
121 |
participant "Client" as app_client << Application >> |
|
122 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
123 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
124 |
participant "Handler" as handler << MetacatHandler >> |
|
125 |
User -> app_client |
|
126 |
app_client -> c_crud: create(token, GUID, object, sysmeta) |
|
127 |
c_crud -> ident_man: identifierExists(GUID) |
|
128 |
c_crud <-- ident_man: T or F |
|
129 |
alt identifierExists == "F" |
|
130 |
c_crud -> ident_man: mapToLocalId(GUID) |
|
131 |
c_crud <-- ident_man: localID |
|
132 |
c_crud -> handler: handleInsertAction(localID) |
|
133 |
c_crud <-- handler: success |
|
134 |
note right of c_crud |
|
135 |
"Also need to address how to handle the sysmeta information wrt insertion methods" |
|
136 |
end note |
|
137 |
app_client <-- c_crud: success |
|
138 |
else identifierExists == "T" |
|
139 |
app_client <-- c_crud: IdentifierNotUnique |
|
140 |
end |
|
141 |
@enduml |
|
142 |
|
|
143 |
Handling document update operations |
|
144 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
145 |
|
|
146 |
An overview of the process needed to update an object using a GUID. |
|
147 |
|
|
148 |
.. figure:: images/guid_update.png |
|
149 |
|
|
150 |
Figure 4. Basic handling for string identifiers (GUIDs) as mapped to |
|
151 |
docids (LocalIDs) to update an object. |
|
152 |
|
|
153 |
.. |
|
154 |
@startuml images/guid_update.png |
|
155 |
!include plantuml.conf |
|
156 |
actor User |
|
157 |
participant "Client" as app_client << Application >> |
|
158 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
159 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
160 |
participant "Handler" as handler << MetacatHandler >> |
|
161 |
User -> app_client |
|
162 |
app_client -> c_crud: update(token, GUID, object, obsoletedGUID, sysmeta) |
|
163 |
|
|
164 |
c_crud -> ident_man: identifierExists(obsoletedGUID) |
|
165 |
c_crud <-- ident_man: T or F |
|
166 |
alt identifierExists == "T" |
|
167 |
|
|
168 |
c_crud -> ident_man: identifierExists(GUID) |
|
169 |
c_crud <-- ident_man: T or F |
|
170 |
alt identifierExists == "F" |
|
171 |
c_crud -> ident_man: mapToLocalId(GUID, obsoletedGUID) |
|
172 |
c_crud <-- ident_man: localID |
|
173 |
c_crud -> handler: handleUpdateAction(localID) |
|
174 |
c_crud <-- handler: success |
|
175 |
note right of c_crud |
|
176 |
"Also need to address how to handle the sysmeta information wrt update methods" |
|
177 |
end note |
|
178 |
app_client <-- c_crud: success |
|
179 |
else identifierExists == "T" |
|
180 |
app_client <-- c_crud: IdentifierNotUnique |
|
181 |
end |
|
182 |
else identifierExists == "F" |
|
183 |
app_client <-- c_crud: NotFound |
|
184 |
end |
|
185 |
@enduml |
|
186 |
|
|
187 |
Handling document delete operations |
|
188 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
189 |
|
|
190 |
An overview of the process needed to delete an object using a GUID. |
|
191 |
|
|
192 |
.. figure:: images/guid_delete.png |
|
193 |
|
|
194 |
Figure 5. Basic handling for string identifiers (GUIDs) as mapped to |
|
195 |
docids (LocalIDs) to delete an object. |
|
196 |
|
|
197 |
.. |
|
198 |
@startuml images/guid_delete.png |
|
199 |
!include plantuml.conf |
|
200 |
actor User |
|
201 |
participant "Client" as app_client << Application >> |
|
202 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
203 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
204 |
participant "Handler" as handler << MetacatHandler >> |
|
205 |
User -> app_client |
|
206 |
app_client -> c_crud: delete(token, GUID) |
|
207 |
c_crud -> ident_man: identifierExists(GUID) |
|
208 |
c_crud <-- ident_man: T or F |
|
209 |
alt identifierExists == "T" |
|
210 |
c_crud -> ident_man: mapToLocalId(GUID) |
|
211 |
c_crud <-- ident_man: localID |
|
212 |
c_crud -> handler: handleDeleteAction(localID) |
|
213 |
c_crud <-- handler: success |
|
214 |
app_client <-- c_crud: success |
|
215 |
else identifierExists == "F" |
|
216 |
app_client <-- c_crud: NotFound |
|
217 |
end |
|
218 |
@enduml |
|
219 |
|
|
220 |
.. |
|
221 |
This block defines the interaction diagram referenced above. |
|
222 |
startuml images/01_interaction.png |
|
223 |
!include plantuml.conf |
|
224 |
actor User |
|
225 |
participant "Client" as app_client << Application >> |
|
226 |
User -> app_client |
|
227 |
|
|
228 |
participant "CRUD API" as c_crud << Coordinating Node >> |
|
229 |
activate c_crud |
|
230 |
app_client -> c_crud: resolve(GUID, auth_token) |
|
231 |
participant "Authorization API" as c_authorize << Coordinating Node >> |
|
232 |
c_crud -> c_authorize: isAuth(auth_token, GUID) |
|
233 |
participant "Verify API" as c_ver << Coordinating Node >> |
|
234 |
c_authorize -> c_ver: isValidToken (token) |
|
235 |
c_authorize <-- c_ver: T or F |
|
236 |
c_crud <-- c_authorize: T or F |
|
237 |
app_client <-- c_crud: handle_list |
|
238 |
deactivate c_crud |
|
239 |
|
|
240 |
participant "CRUD API" as m_crud << Member Node >> |
|
241 |
activate m_crud |
|
242 |
app_client -> m_crud: get(auth_token, handle) |
|
243 |
participant "Server Authentication API" as m_authenticate << Member Node >> |
|
244 |
m_crud -> m_authenticate: isAuth(auth_token, GUID) |
|
245 |
m_crud <-- m_authenticate: T or F |
|
246 |
m_crud -> m_crud: log(get, UserID, GUID) |
|
247 |
app_client <-- m_crud: object or unauth or doesNotExist |
|
248 |
deactivate m_crud |
|
249 |
enduml |
|
250 | 0 |
docs/dev/metacat/source/index.txt | ||
---|---|---|
1 |
|
|
2 |
Metacat Administrator's Guide |
|
3 |
============================= |
|
4 |
|
|
5 |
.. sidebar:: Version: 2.0.0 Release |
|
6 |
|
|
7 |
.. image:: themes/readable/static/metacat-logo.png |
|
8 |
:height: 130pt |
|
9 |
|
|
10 |
Send feedback and bugs to: |
|
11 |
metacat-dev@ecoinformatics.org |
|
12 |
http://bugzilla.ecoinformatics.org |
|
13 |
|
|
14 |
License: GPL |
|
15 |
|
|
16 |
Metacat is a repository for data and metadata (data about data), which helps scientists find, understand and effectively use the data sets they manage or that have been created by others. Thousands of data sets are currently documented in a standardized way and stored in Metacat systems, providing the scientific community with a broad range of science data that--because the data are well and consistently described--can be easily searched, compared, merged, or used in other ways. |
|
17 |
|
|
18 |
- Metacat `Administrators Guide`_ |
|
19 |
- Download Metacat |
|
20 |
- Binary Distribution (A war file installation) |
|
21 |
- GZIP File: metacat-bin-2.0.0.tar.gz_ |
|
22 |
- ZIP File: metacat-bin-2.0.0.zip_ |
|
23 |
- Source Distribution (Full source, requiring build) |
|
24 |
- GZIP File: metacat-src-2.0.0.tar.gz_ |
|
25 |
- ZIP File: metacat-src-2.0.0.zip_ |
|
26 |
- `Older versions`_ |
|
27 |
|
|
28 |
.. _Administrators Guide: http://knb.ecoinformatics.org/software/metacat/MetacatAdministratorGuide.pdf |
|
29 |
|
|
30 |
.. _metacat-bin-2.0.0.tar.gz: http://knb.ecoinformatics.org/software/dist/metacat-bin-2.0.0.tar.gz |
|
31 |
|
|
32 |
.. _metacat-bin-2.0.0.zip: http://knb.ecoinformatics.org/software/dist/metacat-bin-2.0.0.zip |
|
33 |
|
|
34 |
.. _metacat-src-2.0.0.tar.gz: http://knb.ecoinformatics.org/software/dist/metacat-src-2.0.0.tar.gz |
|
35 |
|
|
36 |
.. _metacat-src-2.0.0.zip: http://knb.ecoinformatics.org/software/dist/metacat-src-2.0.0.zip |
|
37 |
|
|
38 |
.. _Older versions: http://knb.ecoinformatics.org/software/dist/ |
|
39 |
|
|
40 |
Contents |
|
41 |
======== |
|
42 |
.. toctree:: |
|
43 |
:numbered: |
|
44 |
:maxdepth: 2 |
|
45 |
|
|
46 |
01-intro.txt |
|
47 |
02-contributors.txt |
|
48 |
|
|
49 |
.. 03-install.txt |
|
50 |
.. 04-configuration.txt |
|
51 |
.. 05-submitting.txt |
|
52 |
.. 06-geoserver.txt |
|
53 |
.. 07-replication.txt |
|
54 |
.. 08-harvester.txt |
|
55 |
.. 09-event-logging.txt |
|
56 |
.. 10-sitemaps.txt |
|
57 |
.. 11-authinterface.txt |
|
58 |
.. 12-metacat-properties.txt |
|
59 |
.. 13-development.txt |
|
60 |
|
|
61 |
|
|
62 |
Indices and tables |
|
63 |
================== |
|
64 |
|
|
65 |
* :ref:`genindex` |
|
66 |
* :ref:`search` |
|
67 |
|
|
68 | 0 |
docs/dev/metacat/source/12-metacat-properties.txt | ||
---|---|---|
1 |
Appendix: Metacat Properties |
|
2 |
============================ |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/05-submitting.txt | ||
---|---|---|
1 |
Accessing and Submitting Metadata and Data |
|
2 |
========================================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/07-replication.txt | ||
---|---|---|
1 |
Replication |
|
2 |
=========== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/11-authinterface.txt | ||
---|---|---|
1 |
Creating a Java Class that Implements AuthInterface |
|
2 |
=================================================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/08-harvester.txt | ||
---|---|---|
1 |
Harvester and Harvest List Editor |
|
2 |
================================= |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/06-geoserver.txt | ||
---|---|---|
1 |
Metacat's Use of Geoserver |
|
2 |
========================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/13-development.txt | ||
---|---|---|
1 |
Appendix: Development Issues |
|
2 |
============================ |
|
3 |
|
|
4 |
Metacat is an open source application, and we welcome contributions to the |
|
5 |
source from members of the community who are interested in helping out. This |
|
6 |
section will contain a series of technical details about Metacat that will help |
|
7 |
contributors understand and extend Metacat. Much of the detail needed here is |
|
8 |
contained in the Administrator's guide, which we will gradually migrate to this |
|
9 |
format. |
|
10 |
|
|
11 |
Contents: |
|
12 |
|
|
13 |
.. toctree:: |
|
14 |
:maxdepth: 2 |
|
15 |
|
|
16 |
identifiers.txt |
|
17 |
|
docs/dev/metacat/source/01-intro.txt | ||
---|---|---|
1 |
Introduction |
|
2 |
============ |
|
3 |
|
|
4 |
Metacat is a repository for data and metadata (data about data), which helps |
|
5 |
scientists find, understand and effectively use the data sets they manage or |
|
6 |
that have been created by others. Thousands of data sets are currently |
|
7 |
documented in a standardized way and stored in Metacat systems, providing the |
|
8 |
scientific community with a broad range of science data that--because the |
|
9 |
data are well and consistently described--can be easily searched, compared, |
|
10 |
merged, or used in other ways. |
|
11 |
|
|
12 |
Not only is the Metacat repository a reliable place to store metadata and data |
|
13 |
(the database is replicated over a secure connection so that every record is |
|
14 |
stored on multiple machines and no data is ever lost to technical failures), it |
|
15 |
provides a user-friendly interface for information entry and retrieval. |
|
16 |
Scientists can search the repository via the Web using a customizable search |
|
17 |
form. Searches return results based on user-specified criteria, such as desired |
|
18 |
geographic coverage, taxonomic coverage, and/or keywords that appear in places |
|
19 |
such as the data set's title or owner's name. Users need only click a linked |
|
20 |
search result to open the corresponding data-set documentation in a browser |
|
21 |
window and discover whom to contact to obtain the data themselves (or how to |
|
22 |
immediately download the data via the Web). |
|
23 |
|
|
24 |
Metacat's user-friendly Registry application allows data providers to enter |
|
25 |
data-set documentation into Metacat using a Web form. When the form is |
|
26 |
submitted, Metacat compiles the provided documentation into the required format |
|
27 |
and saves it. Information providers need never work directly with the XML |
|
28 |
format in which the data are stored or with the database records themselves. In |
|
29 |
addition, the Metacat application can easily be extended to provide a |
|
30 |
customized data-entry interface that suits the particular requirements of each |
|
31 |
project. Metacat users can also choose to enter metadata using the Morpho |
|
32 |
application, which provides data-entry wizards that guide information providers |
|
33 |
through the process of documenting each data set. |
|
34 |
|
|
35 |
The metadata stored in Metacat includes all of the information you and others |
|
36 |
need to understand what the described data are and how to use them: a |
|
37 |
descriptive data set title; an abstract; the temporal, spatial, and taxonomic |
|
38 |
coverage of the data; the data collection methods; distribution information; |
|
39 |
and contact information. Each information provider decides who has access to |
|
40 |
this information (the public, or just specified users), and whether or not to |
|
41 |
upload the data set itself with the data documentation. Information providers |
|
42 |
can also edit the metadata or delete it from the repository, again using |
|
43 |
Metacat's straightforward Web interface. |
|
44 |
|
|
45 |
Metacat is a Java servlet application that runs on Window or Linux platforms in |
|
46 |
conjunction with a database, such as PostgreSQL (or Oracle 8i), and a Web |
|
47 |
server. The Metacat application stores data in an XML format using Ecological |
|
48 |
Metadata Language (EML) or another ecological metadata standard. For more |
|
49 |
information about Metacat or for examples of projects currently using Metacat, |
|
50 |
please see http://knb.ecoinformatics.org. |
|
51 |
|
|
52 |
What's in this Guide |
|
53 |
-------------------- |
|
54 |
The Administrator guide includes information for installing, configuring, |
|
55 |
managing and extending Metacat for both Linux and Windows systems. Chapter Two |
|
56 |
contains instructions for downloading and installing Metacat and the |
|
57 |
applications required to run the software on Linux and Microsoft platforms. |
|
58 |
Chapter Three covers how to configure Metacat, both for new and upgraded |
|
59 |
installations. Chapter Four details the ways in which you can customize the |
|
60 |
Metacat interface so users can access and submit information easily: using |
|
61 |
Metacat's generic web-interface (the Registry), creating your own HTML forms, |
|
62 |
and creating your own desktop client (like Morpho). Chapter Five discusses how |
|
63 |
to work with Metacat's Geoserver. Chapter Six describes how to set up the |
|
64 |
Metacat's replication service, which permits Metacat servers to share data with |
|
65 |
each other, effectively backing up metadata and data files. Chapter Seven looks |
|
66 |
at the Metacat Harvester, a program that automates the retrieval of EML |
|
67 |
documents from one or more sites and their subsequent upload (insert or update) |
|
68 |
to Metacat. Chapter Eight discusses logging, Chapter Nine contains instructions |
|
69 |
for creating a site map, which makes individual metadata entries available via |
|
70 |
Web searches. Metacat's Java API is included as an appendix at the end of the |
|
71 |
guide. |
|
72 |
|
|
73 |
Metacat Features |
|
74 |
---------------- |
|
75 |
Metacat is a repository for metadata (data about data), which help scientists |
|
76 |
find, understand and effectively use the data sets they manage or that have |
|
77 |
been created by others. Specifically, |
|
78 |
|
|
79 |
* Metacat is a Java servlet application, which can run on both Windows and Linux systems |
|
80 |
* Metadata submitted to Metacat is broken into modules, which are stored to optimize rapid information retrieval |
|
81 |
* Metacat's Web interface facilitates the input and retrieval of data (Figure 1.1) |
|
82 |
* Metacat's optional mapping functionality enables you to query and visualize the geographic coverage of stored documents |
|
83 |
* Metacat's replication feature ensures that all Metacat data and metadata is stored safely on multiple Metacat servers |
|
84 |
* The Metacat interface can be easily extended and customized via Web forms, skins, and/or user-developed Java clients |
|
85 |
* The Metacat harvester automates the process of retrieving and storing EML documents from one or more sites |
|
86 |
* Metacat can be customized to use Life Sciences Identifiers (LSIDs), uniquely identifying every data record |
|
87 |
* Metacat has a built-in logging system for tracking events such as document insertions, updates, deletes, and reads |
|
88 |
* The appearance of Metacat's Web interface can be customized via skins. |
|
89 |
|
docs/dev/metacat/source/02-contributors.txt | ||
---|---|---|
1 |
Contributors |
|
2 |
============ |
|
3 |
|
|
4 |
Metacat has been designed and built by a large number of contributors to this |
|
5 |
open source project. Main developers and additional patch contributors are |
|
6 |
listed here. |
|
7 |
|
|
8 |
Contributors |
|
9 |
------------ |
|
10 |
- Matt Jones (jones@nceas.ucsb.edu) |
|
11 |
- Chad Berkley (berkley@nceas.ucsb.edu) |
|
12 |
- Jing Tao (tao@nceas.ucsb.edu) |
|
13 |
- Jivka Bojilova (bojilova@nceas.ucsb.edu) |
|
14 |
- Dan Higgins (higgins@nceas.ucsb.edu) |
|
15 |
- Saurabh Garg (sgarg@nceas.ucsb.edu) |
|
16 |
- Duane Costa (dcosta@lternet.edu) |
|
17 |
- Veronique Connolly (connolly@nceas.ucsb.edu) |
|
18 |
- Chris Jones (cjones@msi.ucsb.edu) |
|
19 |
- John Harris (harris@nceas.ucsb.edu) |
|
20 |
- Callie Bowdish (bowdish@ecoinformatics.org) |
|
21 |
- Will Tyburczy (tyburczy@ecoinformatics.org) |
|
22 |
- Matthew Perry (perry@nceas.ucsb.edu) |
|
23 |
- Chad Burt (underbluewaters@gmail.com) |
|
24 |
- Ben Leinfelder (leinfelder@nceas.ucsb.edu) |
|
25 |
- Chris Barteau (barteau@nceas.ucsb.edu) |
|
26 |
- Shaun Walbridge (walbridge@nceas.ucsb.edu) |
|
27 |
- Michael Daigle (daigle@nceas.ucsb.edu) |
|
28 |
|
|
29 |
Patch contributors |
|
30 |
------------------ |
|
31 |
- Andrea Chadden (chadden@nceas.ucsb.edu) |
|
32 |
- Johnoel Ancheta (johnoel@hawaii.edu) |
|
33 |
- Owen Jones (owen.jones@imperial.ac.uk) |
docs/dev/metacat/source/10-sitemaps.txt | ||
---|---|---|
1 |
Enabling Web Searches: Sitemaps |
|
2 |
=============================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/04-configuration.txt | ||
---|---|---|
1 |
Configuring Metacat |
|
2 |
=================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/03-install.txt | ||
---|---|---|
1 |
Downloading and Installing Metacat |
|
2 |
================================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
System Requirements |
|
7 |
------------------- |
|
8 |
|
|
9 |
Installing on Linux |
|
10 |
------------------- |
|
11 |
|
|
12 |
Quick Start Overview |
|
13 |
~~~~~~~~~~~~~~~~~~~~ |
|
14 |
|
|
15 |
Downloading Metacat |
|
16 |
~~~~~~~~~~~~~~~~~~~ |
|
17 |
|
|
18 |
Download the Metacat Installer |
|
19 |
.............................. |
|
20 |
|
|
21 |
Download Metacat Source Code |
|
22 |
............................ |
|
23 |
|
|
24 |
Check Out Metacat Source Code from SVN (for Developers) |
|
25 |
....................................................... |
|
26 |
|
|
27 |
Installing and Configuring Required Software |
|
28 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
29 |
|
|
30 |
Java 6 |
|
31 |
...... |
|
32 |
|
|
33 |
Apache Jakarta-Tomcat |
|
34 |
..................... |
|
35 |
|
|
36 |
Apache Web Server (Highly Recommended) |
|
37 |
...................................... |
|
38 |
|
|
39 |
PostgreSQL Database (or Oracle 8i) |
|
40 |
.................................. |
|
41 |
|
|
42 |
Installing and Configuring Oracle 8i |
|
43 |
.................................... |
|
44 |
|
|
45 |
Apache Jakarta-Ant (if building from Source) |
|
46 |
............................................ |
|
47 |
|
|
48 |
Installing Metacat |
|
49 |
~~~~~~~~~~~~~~~~~~ |
|
50 |
|
|
51 |
Optional Installation Options (LSID Server) |
|
52 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
53 |
|
|
54 |
Troubleshooting |
|
55 |
~~~~~~~~~~~~~~~ |
|
56 |
|
|
57 |
Installing on Windows |
|
58 |
--------------------- |
docs/dev/metacat/source/09-event-logging.txt | ||
---|---|---|
1 |
Event Logging |
|
2 |
============= |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/metacat-properties.rst | ||
---|---|---|
1 |
Appendix: Metacat Properties |
|
2 |
============================ |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/replication.rst | ||
---|---|---|
1 |
Replication |
|
2 |
=========== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/development.rst | ||
---|---|---|
1 |
Appendix: Development Issues |
|
2 |
============================ |
|
3 |
|
|
4 |
Metacat is an open source application, and we welcome contributions to the |
|
5 |
source from members of the community who are interested in helping out. This |
|
6 |
section will contain a series of technical details about Metacat that will help |
|
7 |
contributors understand and extend Metacat. Much of the detail needed here is |
|
8 |
contained in the Administrator's guide, which we will gradually migrate to this |
|
9 |
format. |
|
10 |
|
|
11 |
Contents: |
|
12 |
|
|
13 |
.. toctree:: |
|
14 |
:maxdepth: 2 |
|
15 |
|
|
16 |
identifiers |
|
17 |
|
docs/dev/metacat/source/authinterface.rst | ||
---|---|---|
1 |
Creating a Java Class that Implements AuthInterface |
|
2 |
=================================================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/submitting.rst | ||
---|---|---|
1 |
Accessing and Submitting Metadata and Data |
|
2 |
========================================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/sitemaps.rst | ||
---|---|---|
1 |
Enabling Web Searches: Sitemaps |
|
2 |
=============================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/intro.rst | ||
---|---|---|
1 |
Introduction |
|
2 |
============ |
|
3 |
|
|
4 |
Metacat is a repository for data and metadata (data about data), which helps |
|
5 |
scientists find, understand and effectively use the data sets they manage or |
|
6 |
that have been created by others. Thousands of data sets are currently |
|
7 |
documented in a standardized way and stored in Metacat systems, providing the |
|
8 |
scientific community with a broad range of science data that--because the |
|
9 |
data are well and consistently described--can be easily searched, compared, |
|
10 |
merged, or used in other ways. |
|
11 |
|
|
12 |
Not only is the Metacat repository a reliable place to store metadata and data |
|
13 |
(the database is replicated over a secure connection so that every record is |
|
14 |
stored on multiple machines and no data is ever lost to technical failures), it |
|
15 |
provides a user-friendly interface for information entry and retrieval. |
|
16 |
Scientists can search the repository via the Web using a customizable search |
|
17 |
form. Searches return results based on user-specified criteria, such as desired |
|
18 |
geographic coverage, taxonomic coverage, and/or keywords that appear in places |
|
19 |
such as the data set's title or owner's name. Users need only click a linked |
|
20 |
search result to open the corresponding data-set documentation in a browser |
|
21 |
window and discover whom to contact to obtain the data themselves (or how to |
|
22 |
immediately download the data via the Web). |
|
23 |
|
|
24 |
Metacat's user-friendly Registry application allows data providers to enter |
|
25 |
data-set documentation into Metacat using a Web form. When the form is |
|
26 |
submitted, Metacat compiles the provided documentation into the required format |
|
27 |
and saves it. Information providers need never work directly with the XML |
|
28 |
format in which the data are stored or with the database records themselves. In |
|
29 |
addition, the Metacat application can easily be extended to provide a |
|
30 |
customized data-entry interface that suits the particular requirements of each |
|
31 |
project. Metacat users can also choose to enter metadata using the Morpho |
|
32 |
application, which provides data-entry wizards that guide information providers |
|
33 |
through the process of documenting each data set. |
|
34 |
|
|
35 |
The metadata stored in Metacat includes all of the information you and others |
|
36 |
need to understand what the described data are and how to use them: a |
|
37 |
descriptive data set title; an abstract; the temporal, spatial, and taxonomic |
|
38 |
coverage of the data; the data collection methods; distribution information; |
|
39 |
and contact information. Each information provider decides who has access to |
|
40 |
this information (the public, or just specified users), and whether or not to |
|
41 |
upload the data set itself with the data documentation. Information providers |
|
42 |
can also edit the metadata or delete it from the repository, again using |
|
43 |
Metacat's straightforward Web interface. |
|
44 |
|
|
45 |
Metacat is a Java servlet application that runs on Window or Linux platforms in |
|
46 |
conjunction with a database, such as PostgreSQL (or Oracle 8i), and a Web |
|
47 |
server. The Metacat application stores data in an XML format using Ecological |
|
48 |
Metadata Language (EML) or another ecological metadata standard. For more |
|
49 |
information about Metacat or for examples of projects currently using Metacat, |
|
50 |
please see http://knb.ecoinformatics.org. |
|
51 |
|
|
52 |
What's in this Guide |
|
53 |
-------------------- |
|
54 |
The Administrator guide includes information for installing, configuring, |
|
55 |
managing and extending Metacat for both Linux and Windows systems. Chapter Two |
|
56 |
contains instructions for downloading and installing Metacat and the |
|
57 |
applications required to run the software on Linux and Microsoft platforms. |
|
58 |
Chapter Three covers how to configure Metacat, both for new and upgraded |
|
59 |
installations. Chapter Four details the ways in which you can customize the |
|
60 |
Metacat interface so users can access and submit information easily: using |
|
61 |
Metacat's generic web-interface (the Registry), creating your own HTML forms, |
|
62 |
and creating your own desktop client (like Morpho). Chapter Five discusses how |
|
63 |
to work with Metacat's Geoserver. Chapter Six describes how to set up the |
|
64 |
Metacat's replication service, which permits Metacat servers to share data with |
|
65 |
each other, effectively backing up metadata and data files. Chapter Seven looks |
|
66 |
at the Metacat Harvester, a program that automates the retrieval of EML |
|
67 |
documents from one or more sites and their subsequent upload (insert or update) |
|
68 |
to Metacat. Chapter Eight discusses logging, Chapter Nine contains instructions |
|
69 |
for creating a site map, which makes individual metadata entries available via |
|
70 |
Web searches. Metacat's Java API is included as an appendix at the end of the |
|
71 |
guide. |
|
72 |
|
|
73 |
Metacat Features |
|
74 |
---------------- |
|
75 |
Metacat is a repository for metadata (data about data), which help scientists |
|
76 |
find, understand and effectively use the data sets they manage or that have |
|
77 |
been created by others. Specifically, |
|
78 |
|
|
79 |
* Metacat is a Java servlet application, which can run on both Windows and Linux systems |
|
80 |
* Metadata submitted to Metacat is broken into modules, which are stored to optimize rapid information retrieval |
|
81 |
* Metacat's Web interface facilitates the input and retrieval of data (Figure 1.1) |
|
82 |
* Metacat's optional mapping functionality enables you to query and visualize the geographic coverage of stored documents |
|
83 |
* Metacat's replication feature ensures that all Metacat data and metadata is stored safely on multiple Metacat servers |
|
84 |
* The Metacat interface can be easily extended and customized via Web forms, skins, and/or user-developed Java clients |
|
85 |
* The Metacat harvester automates the process of retrieving and storing EML documents from one or more sites |
|
86 |
* Metacat can be customized to use Life Sciences Identifiers (LSIDs), uniquely identifying every data record |
|
87 |
* Metacat has a built-in logging system for tracking events such as document insertions, updates, deletes, and reads |
|
88 |
* The appearance of Metacat's Web interface can be customized via skins. |
|
89 |
|
docs/dev/metacat/source/contributors.rst | ||
---|---|---|
1 |
Contributors |
|
2 |
============ |
|
3 |
|
|
4 |
Metacat has been designed and built by a large number of contributors to this |
|
5 |
open source project. Main developers and additional patch contributors are |
|
6 |
listed here. |
|
7 |
|
|
8 |
Contributors |
|
9 |
------------ |
|
10 |
- Matt Jones (jones@nceas.ucsb.edu) |
|
11 |
- Chad Berkley (berkley@nceas.ucsb.edu) |
|
12 |
- Jing Tao (tao@nceas.ucsb.edu) |
|
13 |
- Jivka Bojilova (bojilova@nceas.ucsb.edu) |
|
14 |
- Dan Higgins (higgins@nceas.ucsb.edu) |
|
15 |
- Saurabh Garg (sgarg@nceas.ucsb.edu) |
|
16 |
- Duane Costa (dcosta@lternet.edu) |
|
17 |
- Veronique Connolly (connolly@nceas.ucsb.edu) |
|
18 |
- Chris Jones (cjones@nceas.ucsb.edu) |
|
19 |
- John Harris (harris@nceas.ucsb.edu) |
|
20 |
- Callie Bowdish (bowdish@ecoinformatics.org) |
|
21 |
- Will Tyburczy (tyburczy@ecoinformatics.org) |
|
22 |
- Matthew Perry (perry@nceas.ucsb.edu) |
|
23 |
- Chad Burt (underbluewaters@gmail.com) |
|
24 |
- Ben Leinfelder (leinfelder@nceas.ucsb.edu) |
|
25 |
- Chris Barteau (barteau@nceas.ucsb.edu) |
|
26 |
- Shaun Walbridge (walbridge@nceas.ucsb.edu) |
|
27 |
- Michael Daigle (daigle@nceas.ucsb.edu) |
|
28 |
|
|
29 |
Patch contributors |
|
30 |
------------------ |
|
31 |
- Andrea Chadden (chadden@nceas.ucsb.edu) |
|
32 |
- Johnoel Ancheta (johnoel@hawaii.edu) |
|
33 |
- Owen Jones (owen.jones@imperial.ac.uk) |
docs/dev/metacat/source/geoserver.rst | ||
---|---|---|
1 |
Metacat's Use of Geoserver |
|
2 |
========================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/harvester.rst | ||
---|---|---|
1 |
Harvester and Harvest List Editor |
|
2 |
================================= |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/conf.py | ||
---|---|---|
28 | 28 |
templates_path = ['_templates'] |
29 | 29 |
|
30 | 30 |
# The suffix of source filenames. |
31 |
source_suffix = '.txt'
|
|
31 |
source_suffix = '.rst'
|
|
32 | 32 |
|
33 | 33 |
# The encoding of source files. |
34 | 34 |
#source_encoding = 'utf-8' |
... | ... | |
38 | 38 |
|
39 | 39 |
# General information about the project. |
40 | 40 |
project = u'Metacat' |
41 |
copyright = u'2011, Regents of the University of California'
|
|
41 |
copyright = u'2012, Regents of the University of California'
|
|
42 | 42 |
|
43 | 43 |
# The version info for the project you're documenting, acts as replacement for |
44 | 44 |
# |version| and |release|, also used in various other places throughout the |
docs/dev/metacat/source/event-logging.rst | ||
---|---|---|
1 |
Event Logging |
|
2 |
============= |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/identifiers.rst | ||
---|---|---|
1 |
.. raw:: latex |
|
2 |
|
|
3 |
\newpage |
|
4 |
|
|
5 |
|
|
6 |
Identifier Management |
|
7 |
===================== |
|
8 |
|
|
9 |
.. index:: Identifiers |
|
10 |
|
|
11 |
Author |
|
12 |
Matthew B. Jones |
|
13 |
|
|
14 |
Date |
|
15 |
- 20100301 [MBJ] Initial draft of Identifier documentation |
|
16 |
|
|
17 |
Goal |
|
18 |
Extend Metacat to support identifiers with arbitrary syntax |
|
19 |
|
|
20 |
Summary |
|
21 |
Metacat currently supports identifier strings called 'docids' that have |
|
22 |
the syntax 'scope.object.revision', such as 'foo.34.1' (we will refer to |
|
23 |
these as 'LocalIDs'). We now want Metacat to support identifiers that are |
|
24 |
arbitrary strings, but still enforce uniqueness and proper revision |
|
25 |
handling (refer to these as GUIDs). Metacat must be able to accept |
|
26 |
these strings as identifiers for all CRUD operations, and reference them |
|
27 |
in search results. |
|
28 |
|
|
29 |
Identifier Resolution |
|
30 |
--------------------- |
|
31 |
Because Metacat uses LocalIDs throughout the code for references to objects, |
|
32 |
and that LocalID has a constrained structure that includes semantics about |
|
33 |
revisions in the identifier, it is difficult to wholesale replace it with |
|
34 |
less-constrained string identifiers without re-writing much of Metacat. |
|
35 |
Thus, our alternate strategy is to wrap the Metacat APIs with a |
|
36 |
identifier resolution layer that keeps track of the unconstrained GUIDs and |
|
37 |
maps them to constrained local identifiers which are used internally within |
|
38 |
Metacat. The basic identifer table model is shown in Figure 1, while the |
|
39 |
basic strategy for retrieving an object is shown in Figure 2, creating an |
|
40 |
object is shown in Figure 3, updating an object in Figure 4, and deleting |
|
41 |
an object is shown in Figure 5. |
|
42 |
|
|
43 |
|
|
44 |
Identifier Table Structure |
|
45 |
~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
46 |
|
|
47 |
.. figure:: images/identifiers.png |
|
48 |
|
|
49 |
Figure 1. Table structure for identifiers. |
|
50 |
|
|
51 |
.. |
|
52 |
This block defines the table structure diagram referenced above. |
|
53 |
@startuml images/identifiers.png |
|
54 |
|
|
55 |
identifiers "*" -- "1" xml_documents |
|
56 |
|
|
57 |
identifiers : String identifier |
|
58 |
identifiers : String docid |
|
59 |
identifiers : Integer rev |
|
60 |
|
|
61 |
xml_documents : String docid |
|
62 |
xml_documents : String rev |
|
63 |
|
|
64 |
note right of identifiers |
|
65 |
"identifiers.(docid,rev) is a foreign key into xml_documents" |
|
66 |
end note |
|
67 |
@enduml |
|
68 |
|
|
69 |
.. raw:: latex |
|
70 |
|
|
71 |
\newpage |
|
72 |
|
|
73 |
.. raw:: pdf |
|
74 |
|
|
75 |
PageBreak |
|
76 |
|
|
77 |
|
|
78 |
Handling document read operations |
|
79 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
80 |
|
|
81 |
An overview of the process needed to read an object using a GUID. |
|
82 |
|
|
83 |
|
|
84 |
.. figure:: images/guid_read.png |
|
85 |
|
|
86 |
Figure 2. Basic handling for string identifiers (GUIDs) as mapped to |
|
87 |
docids (LocalIDs) to retrieve an object. |
|
88 |
|
|
89 |
.. |
|
90 |
@startuml images/guid_read.png |
|
91 |
!include plantuml.conf |
|
92 |
actor User |
|
93 |
participant "Client" as app_client << Application >> |
|
94 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
95 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
96 |
participant "Handler" as handler << MetacatHandler >> |
|
97 |
User -> app_client |
|
98 |
app_client -> c_crud: get(token, GUID) |
|
99 |
c_crud -> ident_man: getLocalID(GUID) |
|
100 |
c_crud <-- ident_man: localID |
|
101 |
c_crud -> handler: handleReadAction(localID) |
|
102 |
c_crud <-- handler: object |
|
103 |
c_crud --> app_client: object |
|
104 |
|
|
105 |
@enduml |
|
106 |
|
|
107 |
Handling document create operations |
|
108 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
109 |
|
|
110 |
An overview of the process needed to create an object using a GUID. |
|
111 |
|
|
112 |
.. figure:: images/guid_insert.png |
|
113 |
|
|
114 |
Figure 3. Basic handling for string identifiers (GUIDs) as mapped to |
|
115 |
docids (LocalIDs) to create an object. |
|
116 |
|
|
117 |
.. |
|
118 |
@startuml images/guid_insert.png |
|
119 |
!include plantuml.conf |
|
120 |
actor User |
|
121 |
participant "Client" as app_client << Application >> |
|
122 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
123 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
124 |
participant "Handler" as handler << MetacatHandler >> |
|
125 |
User -> app_client |
|
126 |
app_client -> c_crud: create(token, GUID, object, sysmeta) |
|
127 |
c_crud -> ident_man: identifierExists(GUID) |
|
128 |
c_crud <-- ident_man: T or F |
|
129 |
alt identifierExists == "F" |
|
130 |
c_crud -> ident_man: mapToLocalId(GUID) |
|
131 |
c_crud <-- ident_man: localID |
|
132 |
c_crud -> handler: handleInsertAction(localID) |
|
133 |
c_crud <-- handler: success |
|
134 |
note right of c_crud |
|
135 |
"Also need to address how to handle the sysmeta information wrt insertion methods" |
|
136 |
end note |
|
137 |
app_client <-- c_crud: success |
|
138 |
else identifierExists == "T" |
|
139 |
app_client <-- c_crud: IdentifierNotUnique |
|
140 |
end |
|
141 |
@enduml |
|
142 |
|
|
143 |
Handling document update operations |
|
144 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
145 |
|
|
146 |
An overview of the process needed to update an object using a GUID. |
|
147 |
|
|
148 |
.. figure:: images/guid_update.png |
|
149 |
|
|
150 |
Figure 4. Basic handling for string identifiers (GUIDs) as mapped to |
|
151 |
docids (LocalIDs) to update an object. |
|
152 |
|
|
153 |
.. |
|
154 |
@startuml images/guid_update.png |
|
155 |
!include plantuml.conf |
|
156 |
actor User |
|
157 |
participant "Client" as app_client << Application >> |
|
158 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
159 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
160 |
participant "Handler" as handler << MetacatHandler >> |
|
161 |
User -> app_client |
|
162 |
app_client -> c_crud: update(token, GUID, object, obsoletedGUID, sysmeta) |
|
163 |
|
|
164 |
c_crud -> ident_man: identifierExists(obsoletedGUID) |
|
165 |
c_crud <-- ident_man: T or F |
|
166 |
alt identifierExists == "T" |
|
167 |
|
|
168 |
c_crud -> ident_man: identifierExists(GUID) |
|
169 |
c_crud <-- ident_man: T or F |
|
170 |
alt identifierExists == "F" |
|
171 |
c_crud -> ident_man: mapToLocalId(GUID, obsoletedGUID) |
|
172 |
c_crud <-- ident_man: localID |
|
173 |
c_crud -> handler: handleUpdateAction(localID) |
|
174 |
c_crud <-- handler: success |
|
175 |
note right of c_crud |
|
176 |
"Also need to address how to handle the sysmeta information wrt update methods" |
|
177 |
end note |
|
178 |
app_client <-- c_crud: success |
|
179 |
else identifierExists == "T" |
|
180 |
app_client <-- c_crud: IdentifierNotUnique |
|
181 |
end |
|
182 |
else identifierExists == "F" |
|
183 |
app_client <-- c_crud: NotFound |
|
184 |
end |
|
185 |
@enduml |
|
186 |
|
|
187 |
Handling document delete operations |
|
188 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
189 |
|
|
190 |
An overview of the process needed to delete an object using a GUID. |
|
191 |
|
|
192 |
.. figure:: images/guid_delete.png |
|
193 |
|
|
194 |
Figure 5. Basic handling for string identifiers (GUIDs) as mapped to |
|
195 |
docids (LocalIDs) to delete an object. |
|
196 |
|
|
197 |
.. |
|
198 |
@startuml images/guid_delete.png |
|
199 |
!include plantuml.conf |
|
200 |
actor User |
|
201 |
participant "Client" as app_client << Application >> |
|
202 |
participant "CRUD API" as c_crud << MetacatRestServlet >> |
|
203 |
participant "Identifier Manager" as ident_man << IdentifierManager >> |
|
204 |
participant "Handler" as handler << MetacatHandler >> |
|
205 |
User -> app_client |
|
206 |
app_client -> c_crud: delete(token, GUID) |
|
207 |
c_crud -> ident_man: identifierExists(GUID) |
|
208 |
c_crud <-- ident_man: T or F |
|
209 |
alt identifierExists == "T" |
|
210 |
c_crud -> ident_man: mapToLocalId(GUID) |
|
211 |
c_crud <-- ident_man: localID |
|
212 |
c_crud -> handler: handleDeleteAction(localID) |
|
213 |
c_crud <-- handler: success |
|
214 |
app_client <-- c_crud: success |
|
215 |
else identifierExists == "F" |
|
216 |
app_client <-- c_crud: NotFound |
|
217 |
end |
|
218 |
@enduml |
|
219 |
|
|
220 |
.. |
|
221 |
This block defines the interaction diagram referenced above. |
|
222 |
startuml images/01_interaction.png |
|
223 |
!include plantuml.conf |
|
224 |
actor User |
|
225 |
participant "Client" as app_client << Application >> |
|
226 |
User -> app_client |
|
227 |
|
|
228 |
participant "CRUD API" as c_crud << Coordinating Node >> |
|
229 |
activate c_crud |
|
230 |
app_client -> c_crud: resolve(GUID, auth_token) |
|
231 |
participant "Authorization API" as c_authorize << Coordinating Node >> |
|
232 |
c_crud -> c_authorize: isAuth(auth_token, GUID) |
|
233 |
participant "Verify API" as c_ver << Coordinating Node >> |
|
234 |
c_authorize -> c_ver: isValidToken (token) |
|
235 |
c_authorize <-- c_ver: T or F |
|
236 |
c_crud <-- c_authorize: T or F |
|
237 |
app_client <-- c_crud: handle_list |
|
238 |
deactivate c_crud |
|
239 |
|
|
240 |
participant "CRUD API" as m_crud << Member Node >> |
|
241 |
activate m_crud |
|
242 |
app_client -> m_crud: get(auth_token, handle) |
|
243 |
participant "Server Authentication API" as m_authenticate << Member Node >> |
|
244 |
m_crud -> m_authenticate: isAuth(auth_token, GUID) |
|
245 |
m_crud <-- m_authenticate: T or F |
|
246 |
m_crud -> m_crud: log(get, UserID, GUID) |
|
247 |
app_client <-- m_crud: object or unauth or doesNotExist |
|
248 |
deactivate m_crud |
|
249 |
enduml |
|
0 | 250 |
docs/dev/metacat/source/install.rst | ||
---|---|---|
1 |
Downloading and Installing Metacat |
|
2 |
================================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
System Requirements |
|
7 |
------------------- |
|
8 |
|
|
9 |
Installing on Linux |
|
10 |
------------------- |
|
11 |
|
|
12 |
Quick Start Overview |
|
13 |
~~~~~~~~~~~~~~~~~~~~ |
|
14 |
|
|
15 |
Downloading Metacat |
|
16 |
~~~~~~~~~~~~~~~~~~~ |
|
17 |
|
|
18 |
Download the Metacat Installer |
|
19 |
.............................. |
|
20 |
|
|
21 |
Download Metacat Source Code |
|
22 |
............................ |
|
23 |
|
|
24 |
Check Out Metacat Source Code from SVN (for Developers) |
|
25 |
....................................................... |
|
26 |
|
|
27 |
Installing and Configuring Required Software |
|
28 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
29 |
|
|
30 |
Java 6 |
|
31 |
...... |
|
32 |
|
|
33 |
Apache Jakarta-Tomcat |
|
34 |
..................... |
|
35 |
|
|
36 |
Apache Web Server (Highly Recommended) |
|
37 |
...................................... |
|
38 |
|
|
39 |
PostgreSQL Database (or Oracle 8i) |
|
40 |
.................................. |
|
41 |
|
|
42 |
Installing and Configuring Oracle 8i |
|
43 |
.................................... |
|
44 |
|
|
45 |
Apache Jakarta-Ant (if building from Source) |
|
46 |
............................................ |
|
47 |
|
|
48 |
Installing Metacat |
|
49 |
~~~~~~~~~~~~~~~~~~ |
|
50 |
|
|
51 |
Optional Installation Options (LSID Server) |
|
52 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
53 |
|
|
54 |
Troubleshooting |
|
55 |
~~~~~~~~~~~~~~~ |
|
56 |
|
|
57 |
Installing on Windows |
|
58 |
--------------------- |
docs/dev/metacat/source/configuration.rst | ||
---|---|---|
1 |
Configuring Metacat |
|
2 |
=================== |
|
3 |
|
|
4 |
Under construction! |
|
5 |
|
|
6 |
Heading 1 |
|
7 |
------------ |
|
8 |
|
|
9 |
Heading 2 |
|
10 |
------------ |
|
11 |
|
docs/dev/metacat/source/index.rst | ||
---|---|---|
1 |
|
|
2 |
Metacat Administrator's Guide |
|
3 |
============================= |
|
4 |
|
|
5 |
.. sidebar:: Version: 2.0.0 Release |
|
6 |
|
|
7 |
.. image:: themes/readable/static/metacat-logo.png |
|
8 |
:height: 130pt |
|
9 |
|
|
10 |
Send feedback and bugs to: |
|
11 |
metacat-dev@ecoinformatics.org |
|
12 |
http://bugzilla.ecoinformatics.org |
|
13 |
|
|
14 |
License: GPL |
|
15 |
|
|
16 |
Metacat is a repository for data and metadata (data about data), which helps scientists find, understand and effectively use the data sets they manage or that have been created by others. Thousands of data sets are currently documented in a standardized way and stored in Metacat systems, providing the scientific community with a broad range of science data that--because the data are well and consistently described--can be easily searched, compared, merged, or used in other ways. |
|
17 |
|
|
18 |
- Metacat `Administrators Guide`_ |
|
19 |
- Download Metacat |
|
20 |
- Binary Distribution (A war file installation) |
|
21 |
- GZIP File: metacat-bin-2.0.0.tar.gz_ |
|
22 |
- ZIP File: metacat-bin-2.0.0.zip_ |
|
23 |
- Source Distribution (Full source, requiring build) |
|
24 |
- GZIP File: metacat-src-2.0.0.tar.gz_ |
|
25 |
- ZIP File: metacat-src-2.0.0.zip_ |
|
26 |
- `Older versions`_ |
|
27 |
|
|
28 |
.. _Administrators Guide: http://knb.ecoinformatics.org/software/metacat/MetacatAdministratorGuide.pdf |
|
29 |
|
|
30 |
.. _metacat-bin-2.0.0.tar.gz: http://knb.ecoinformatics.org/software/dist/metacat-bin-2.0.0.tar.gz |
|
31 |
|
|
32 |
.. _metacat-bin-2.0.0.zip: http://knb.ecoinformatics.org/software/dist/metacat-bin-2.0.0.zip |
|
33 |
|
|
34 |
.. _metacat-src-2.0.0.tar.gz: http://knb.ecoinformatics.org/software/dist/metacat-src-2.0.0.tar.gz |
|
35 |
|
|
36 |
.. _metacat-src-2.0.0.zip: http://knb.ecoinformatics.org/software/dist/metacat-src-2.0.0.zip |
|
37 |
|
|
38 |
.. _Older versions: http://knb.ecoinformatics.org/software/dist/ |
|
39 |
|
|
40 |
Contents |
|
41 |
======== |
|
42 |
.. toctree:: |
|
43 |
:numbered: |
|
44 |
:maxdepth: 2 |
|
45 |
|
|
46 |
intro |
|
47 |
contributors |
|
48 |
install |
|
49 |
configuration |
|
50 |
submitting |
|
51 |
geoserver |
|
52 |
replication |
|
53 |
harvester |
|
54 |
event-logging |
|
55 |
sitemaps |
|
56 |
authinterface |
|
57 |
metacat-properties |
|
58 |
development |
|
59 |
|
|
60 |
|
|
61 |
Indices and tables |
|
62 |
================== |
|
63 |
|
|
64 |
* :ref:`genindex` |
|
65 |
* :ref:`search` |
|
66 |
|
|
0 | 67 |
Also available in: Unified diff
Updating Sphinx doc structure in prep for moving metacat admin guide to Sphinx.