Project

General

Profile

CDM Server » History » Version 13

Andreas Kohlbecker, 11/13/2009 02:32 PM

1 1 Markus Döring
{{>toc}}
2
3
4
5
# CDM Community Server
6
7
A Central datastore for a community of users (taxonomically, geographically or otherwise defined). The community store server is used to centrally host versionable [[CommonDataModel]] data.
8
9
The store makes use of the [[CdmLibrary]] and exposes [[CdmAPI#RemoteAPI|webservices]] based on the [[CdmLibrary]] service layer.
10
11
The CDM store is a central piece of the platform and applications that are able to interface with this store are considered part of the platform.
12
13
14
15 3 Markus Döring
----
16
17
18 7 Andreas Kohlbecker
## Getting Started
19
20 13 Andreas Kohlbecker
The CDM Community Server comes in two flavors. As standalone server (@cdmserver-standalone.jar@) and as war archive (@cdmserver.war@). Using the standalone server is the easiest and recommended way to get a CDM Community Server up and running. Installing the `cdmserver.war` into Tomcat is currently not recommended due to a known memory leak which occured only in this combination. The standalone server does not have this problem.
21 7 Andreas Kohlbecker
22
23 13 Andreas Kohlbecker
In the following the required steps to install the standalone server are described. Currently there is no official guidance on installing the war, bur interested developers may refer to the [[WebserviceDeployment]] page to get some hints.
24 7 Andreas Kohlbecker
25
26
27
### Installing the standalone server
28
29 12 Andreas Kohlbecker
The standalone server is platform independent, so it can be installed and run on Windows, Linux and Mac OS as long as the Java runtime environment is installed on the system.
30
31 7 Andreas Kohlbecker
This install guide describes the installation of the standalone server on a Debian linux system and should also be compatible with Ubuntu systems. 
32
33 11 Andreas Kohlbecker
1. Download the [cdmserver-standalone.jar":http://dev.e-taxonomy.eu/download/cdmserver/2.2/cdmserver-standalone.jar and the init script "cdmserver":http://dev.e-taxonomy.eu/download/cdmserver/2.2/initscript/cdmserver and the "datasources.xml](http://dev.e-taxonomy.eu/download/cdmserver/2.2/datasources.xml.)
34 7 Andreas Kohlbecker
35
1. Store  `cdmserver-standalone.jar` in the filesystem of your server.
36
37 11 Andreas Kohlbecker
1. Copy the init script `cdmserver` into `/etc/init.d/` and adapt the permissions and the ownership: 
38 1 Markus Döring
39 10 Andreas Kohlbecker
~~~
40
cp cdmserver /etc/init.d/
41
chmod 755 cdmserver
42
chown root:root cdmserver
43
~~~
44 7 Andreas Kohlbecker
1. Edit in the init script `cdmserver` the `CDM_HOME` path variable to macth the path where `cdmserver-standalone.jar` has been stored in step 2.
45
46 1 Markus Döring
1. Create the `.cdmLibrary` folder in `CDM_HOME` 
47 7 Andreas Kohlbecker
48 10 Andreas Kohlbecker
1. Install the init script `cdmserver` by running the following command: 
49 1 Markus Döring
50 10 Andreas Kohlbecker
~~~
51
update-rc.d cdmserver defaults
52
~~~
53 7 Andreas Kohlbecker
1. Copy `datasources.xml` into it and edit this file to match your cdm data bases.
54 1 Markus Döring
55 10 Andreas Kohlbecker
1. Start the cdm server: 
56 1 Markus Döring
57 10 Andreas Kohlbecker
~~~
58
/etc/init.d/cdmserver start
59
~~~
60
1. You can stop the server by executing 
61
62
~~~
63
/etc/init.d/cdmserver stop
64
~~~
65 7 Andreas Kohlbecker
66
67
68
----
69
70
71 1 Markus Döring
## Webservices
72
73 6 Andreas Müller
Srvices/APIs exposed by the community store are:
74 1 Markus Döring
75
76
77
### XML/JSON REST
78
79 5 Andreas Kohlbecker
Mainly read operations exposing [[CdmDataTransferObjects]] for the [[CdmDataportal]]. The services are URL encoded REST services and the http content-type of a request specifies whether XML (default) or JSON will be returned. For further details please refer to [[CdmRestServices|CDM REST Services]].
80 1 Markus Döring
81
The detailed list of implemented and planned operations can be found at wiki:CdmAPI#RemoteAPI
82
83
84
85
### RSS Search feeds
86
87
Additionally to the search services provided by the REST API above, the same search methods will also be exposed as RSS feeds. This allows RSS clients, or wikipedia:Aggregator, to "subscribe" to specific searches as RSS feeds are natively ordered chronologically and new search entries therefore can easily be identified. It is planned that all [[PrimaryCdmObjects]] will be exposed for searches.
88
89
90
91
### OAI-PMH
92
93
In order to build central aggregators is is planned to support the  [OAI-PMH protocol](http://www.openarchives.org/OAI/openarchivesprotocol.html)  with selective date based harvesting. [GBIF":http://www.gbif.net, "EOL](http://www.eol.org/) or any other data aggregator will therefore be able to easily pool CDM data and keep their copy up to date by accessing incremental changes only - and not the entire CDM dataset every time.
94
95
96
97
### LSID
98
99
The CDM Store will include an LSID resolver exposing [[PrimaryCdmObjects]] objects in RDF as TDWG LSID voc
100
101
102 3 Markus Döring
103 4 Markus Döring
### Linkback Annotations
104
105
All pages should expose a linkback mechanism that allows to be aware of external comments done on popular blogging software. See Wikipedia:Linkback
106
107
108 3 Markus Döring
109
----
110 1 Markus Döring
111
112
## File Server
113
114
115
### Images
116
117
Please see [[ImageServer]]
118
119
120
### Documents/PDF
121
122
We will use Drupal as a start