Mercurial > lada > lada-server
comparison INSTALL @ 411:f7fa401563ee
Added INSTALL file.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Mon, 20 Jan 2014 12:43:55 +0100 |
parents | |
children | dfe537458afb |
comparison
equal
deleted
inserted
replaced
410:81c27c533060 | 411:f7fa401563ee |
---|---|
1 Einrichtung der Anwendung LADA | |
2 ============================== | |
3 | |
4 Dies ist die Prototypversion der Serverkomponente für die Anwendung LADA zur | |
5 Verarbeitung und Erfassung von Labordaten. | |
6 | |
7 Die Software bietet grundlegende Funktionalität zur Erfassung und Bearbeitung | |
8 von Messdaten. Weitere Informationen finden sich auf der Projektwebseite unter | |
9 der Adresse: | |
10 | |
11 https://wald.intevation.org/projects/lada/ | |
12 | |
13 Die Software entstand im Rahmen einer Software Entwicklung durch die | |
14 Intevation GmbH im Auftrag des Bundesamt für Strahlenschutz im Jahre 2013. | |
15 | |
16 Lizenz | |
17 ------ | |
18 Die Software unter der GNU GPL v>=3 Lizenz verfügbar. Details siehe die Datei | |
19 COPYING. | |
20 | |
21 Quelltext | |
22 --------- | |
23 Die Quelldateien lassen sich wie folgt auschecken: | |
24 hg clone https://scm.wald.intevation.org/hg/lada/lada-server | |
25 | |
26 | |
27 Installation | |
28 ============ | |
29 | |
30 Die Installation der Serverkomponente erfordert folgende Vorraussetzungen: | |
31 | |
32 * PostgreSQL-9.2/PostGIS-2.0 Datenbank inklusive Testdaten | |
33 * JBoss-AS | |
34 | |
35 | |
36 Datenbank | |
37 --------- | |
38 Die LADA Anwendung basiert auf einer PostgreSQL/PostGIS Datenbank in den | |
39 Versionen PostgreSQL 9.2/PostGIS 2.0. | |
40 Beipieldaten sind in dem Datenbankdump lada-db.zip verfügbar und können | |
41 in eine PostgreSQL/PostGIS Datenbank importiert werden. | |
42 Der dadurch verfügbare Testdatensatz enthält zusätzlich Daten zu Gemeinden und | |
43 Verwaltungen in Deutschland, die vom BKG zur Verfügung gestellt werden. | |
44 | |
45 Einrichtung der Datenbankverbindung im JBoss AS | |
46 ----------------------------------------------- | |
47 Die Datenbankverbindung wird im Application Server eingerichtet. Hierzu muss der | |
48 entsprechende Treiber zunächst als Modul eingefügt werden. Die folgenden | |
49 Schritte setzen vorraus, dass der JBoss AS in dem Ordner | |
50 /opt/jboss-as-7.1.1-Final installiert ist. | |
51 | |
52 1. Anlegen des Verzeichnisses und herunterladen der Treiber. | |
53 | |
54 $cd /opt/jboss-as-7.1.1.Final/modules/org | |
55 $mkdir -p postgresql/main/ | |
56 $cd postgresql/main | |
57 $curl -O "http://jdbc.postgresql.org/download/postgresql-9.2-1002.jdbc4.jar" | |
58 $curl -O "http://www.hibernatespatial.org/repository/org/postgis/postgis-jdbc/1.5.2/postgis-jdbc-1.5.2.jar" | |
59 | |
60 2. In dem Ordner /opt/jboss-as-7.1.1.Final/modules/org/postgresql/main/ eine | |
61 Datei module.xml mit folgendem Inhalt anlegen. | |
62 | |
63 <?xml version="1.0" encoding="UTF-8"?> | |
64 <module xmlns="urn:jboss:module:1.0" name="org.postgresql"> | |
65 <resources> | |
66 <resource-root path="postgresql-9.2-1002.jdbc4.jar"/> | |
67 <resource-root path="postgis-jdbc-1.5.2.jar"/> | |
68 </resources> | |
69 <dependencies> | |
70 <module name="javax.api"/> | |
71 <module name="javax.transaction.api"/> | |
72 </dependencies> | |
73 </module> | |
74 | |
75 3. Einfügen der Hibernate-Spatial Komponenten. | |
76 | |
77 $cd /opt/jboss-as-7.1.1.Final/modules/org/hibernate/main | |
78 $curl -O "http://www.hibernatespatial.org/repository/org/hibernate/hibernate-spatial/4.0/hibernate-spatial-4.0.jar" | |
79 $curl -O "http://repo1.maven.org/maven2/com/vividsolutions/jts/1.13/jts-1.13.jar" | |
80 | |
81 4. Eintragen der Hibernate-Spatial Komponenten in | |
82 /opt/jboss-as-7.1.1.Final/modules/org/hibernate/main/module.xml | |
83 | |
84 <resources> | |
85 ... | |
86 <resource-root path="hibernate-spatial-4.0.jar"/> | |
87 <resource-root path="jts-1.13.jar"/> | |
88 </resources> | |
89 <dependencies> | |
90 ... | |
91 <module name="org.postgresql"/> | |
92 </dependencies> | |
93 | |
94 5. Einfügen des PostgreSQL Moduls als Treiber in die JBoss Konfiguration. | |
95 | |
96 In den Abschnitt <datasources> folgenden Block einfügen: | |
97 | |
98 <driver name="postgis" module="org.postgresql"> | |
99 <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> | |
100 </driver> | |
101 | |
102 | |
103 Nun kann man eine neue Datenbankverbindung mit dem neuen Treiber einrichten. | |
104 Dazu verbindet man sich mit dem soeben angelegten Management-Nutzer mit der | |
105 Administrations-Webinterface unter der Adresse: http://localhost:9990 | |
106 | |
107 1. Datesources auswählen. Hier werden alle derzeit eingerichteten Datenquellen | |
108 angzeigt. Wir wollen eine neue einrichten. Hierzu | |
109 2. Oben rechts von "Runtime" auf "Profile" wechseln. | |
110 3. "Add" wählen. | |
111 4. Name: Lada, JNDI: java:/jboss/Lada | |
112 5. Treiber Wählen: postgis | |
113 6. Weitere Verbindungsparameter angeben. | |
114 a) connection url: jdbc:postgresql_postGIS://localhost:5432/lada | |
115 b) Nutzer | |
116 c) Password | |
117 | |
118 7.Da während dieser Einrichtung die Standard PostgreSQL Treiberklasse gewählt | |
119 wird, muss diese noch in der Datei | |
120 /opt/jboss-as-7.1.1.Final/standalone/configuration/standalone.xml | |
121 geändert werden: | |
122 Hierzu wird im Abschnitt <datasources> für die neu angelegte Datenquelle | |
123 <driver-class>org.postgresql.Driver</driver-class> gegen | |
124 <driver-class>org.postgis.DriverWrapper</driver-class> ausgetauscht. | |
125 | |
126 Installation der LADA Anwendung | |
127 =============================== | |
128 Zur Installation der LADA Anwendung müssen folgende Schritte unternommen werden: | |
129 | |
130 $cd /opt/jboss-as-7.1.1.Final/standalone/deployments | |
131 $cp /path/where/the/war/file/is/lada.war . | |
132 $touch lada.war.dodeploy | |
133 | |
134 Zum Aktualisieren der Anwendung genügt es, wenn die lada.war Datei aktualisiert | |
135 wird. | |
136 | |
137 Die Anwendung ist dann unter dem Pfad "/lada" (abhängig vom Archivnamen) | |
138 erreichbar. | |
139 | |
140 Konfiguration der LADA Anwendung | |
141 ================================ | |
142 Die Konfigurationsdateien sind Dateien im JSON-Format und können an einer | |
143 beliebigen Stelle im System abgelegt werden, solang diese Dateien für den | |
144 Nutzer, mit dem JBoss-Server gestartet wird, gelesen werden kann. | |
145 | |
146 Bei Änderungen an der Konfigurationsdatei muss der Server nicht neu gestartet | |
147 werden. Es reicht ein erneutes Laden der Anwendung durch den Client. | |
148 Vorbereitete und vollständige Konfigurationsdateien sind in dem Ordner | |
149 'config' zu finden. | |
150 | |
151 Importer | |
152 -------- | |
153 Der Pfad an dem diese Konfigurationsdatei zu finden ist wird in einer JBoss | |
154 Konfigurationsdatei "standalone.xml" abgelegt. Diese Datei findet sich im JBoss | |
155 Ordner ($JBOSSHOME/standalone/configuration/standalone.xml). | |
156 | |
157 In dieser Datei wird der Pfad in Form einer Property abgelegt: | |
158 | |
159 <server xmlns="urn:jboss:domain:1.2"> | |
160 ... | |
161 | |
162 <system-properties> | |
163 <property name="de.intevation.lada.importconfig" | |
164 value="/pfad/zur/konfigurations/datei/des/importers.json"/> | |
165 </system-properties> | |
166 | |
167 ... | |
168 </server> | |
169 | |
170 Flexible Suche | |
171 -------------- | |
172 Der Pfad an dem diese Konfigurationsdatei zu finden ist wird in einer JBoss | |
173 Konfigurationsdatei "standalone.xml" abgelegt. Diese Datei findet sich im JBoss | |
174 Ordner ($JBOSSHOME/standalone/configuration/standalone.xml). | |
175 | |
176 In dieser Datei wird der Pfad in Form einer Property abgelegt: | |
177 | |
178 <server xmlns="urn:jboss:domain:1.2"> | |
179 ... | |
180 | |
181 <system-properties> | |
182 ... | |
183 <property name="de.intevation.lada.sqlconfig" | |
184 value="/pfad/zur/konfigurations/datei/der/abfragen.json"/> | |
185 </system-properties> | |
186 | |
187 ... | |
188 </server> | |
189 | |
190 Einrichtung des Webservers (Apache) | |
191 =================================== | |
192 Die folgenden Module des Apache Webserver sind nötig, um die LADA Anwendung zu | |
193 betreiben: | |
194 * ldap_module: Authenitfizierung gegen den LDAP | |
195 * headers_module: Setzten der Header nach der Authenitifizierung | |
196 * proxy_module: Reverse Proxy des Apache zum Jboss-Server | |
197 | |
198 Damit der Client eine Verbindung zu dem Server aufbauen kann, um von dort Daten | |
199 laden zu können ist es notwendig den Server weiter zu konfigurieren. | |
200 | |
201 togglesebool httpd_can_network_connect | |
202 service httpd restart | |
203 | |
204 Dies erlaubt dem Apache grundsätzlich sich an einen anderen Dienst zu verbinden. | |
205 | |
206 Nun muss noch ein Reverse-Proxy eingerichtet werden. Dieser ist nur für | |
207 bestimmte Adressen aktiv | |
208 | |
209 Folgende Datei sollte unter "/etc/httpd/conf.d/lada.conf" angelegt werden: | |
210 | |
211 <VirtualHost *:80> | |
212 ServerAdmin webmaster@localhost | |
213 #ServerName dummy-host.example.com | |
214 ErrorLog logs/lada-error_log | |
215 CustomLog logs/lada-access_log common | |
216 | |
217 # Set multiple Proxys | |
218 ProxyPass /lada/server http://localhost:8080/lada | |
219 ProxyPassReverse /lada/server http://localhost:8080/lada | |
220 </VirtualHost> | |
221 | |
222 Alles Anfragen an die Adresse "/lada/service" werden nun an den JBoss | |
223 weitergeleitet. | |
224 | |
225 Authentifizierung | |
226 | |
227 Die Authentifizierung geschieht gegen einen LDAP-Server. | |
228 | |
229 <Location /lada> | |
230 AuthType basic | |
231 AuthName "test" | |
232 AuthBasicProvider ldap | |
233 AuthLDAPURL "ldap://ike.polyhedra.intevation.de:389/cn=users,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de?uid,memberof??(&(objectClass=inetOrgPerson)(memberOf=*))" | |
234 Require valid-user | |
235 </Location> | |
236 | |
237 <Location /lada/server> | |
238 RequestHeader unset Authorization | |
239 RequestHeader set X-LDAP-User "%{AUTHENTICATE_uid}e" | |
240 RequestHeader set X-LDAP-Groups "%{AUTHENTICATE_memberof}e" | |
241 </Location> | |
242 | |
243 Sofern gewünscht ist die Authentifizierung für Testzwecke zu deaktivieren muss | |
244 trotz allem die entsprechenden Header gesetzt werden, da der Server diese | |
245 derzeit erwartet. | |
246 | |
247 # Set Headers to simulate Authentification. | |
248 <Location /lada/server> | |
249 RequestHeader set X-LDAP-User "mst_06010" | |
250 RequestHeader set X-LDAP-Groups "cn=Imis_world,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de;cn=mst_06010,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de;cn=mst_11010,cn=groups,dc=icosahedron,dc=polyhedra,dc=intevation,dc=de" | |
251 </Location> | |
252 | |
253 Dokumentation | |
254 ============= | |
255 Eine HTML-Dokumenation des Quellcodes(Javadoc) ist in dem Ordner 'doc' hinterlegt und | |
256 kann über einen Webserver (z.B. Apache WebServer) bereitgestellt werden. |