\subsection{Configuring and Running the Artifact-Server}

This section describes the possibilities to configure the
artifact-server. The following properties do affect mostly technical
funtions of the server.

This section describes the possibilities in a kind of a reference
manual. Information for the process of installing and integration can be
found in the Administration Manual of the GNV-System (FIXME reference).
The following elements are covered here:

\begin{lstlisting}
artifact-database
|-- geo-backend # pointing to database connection, SQL configuration
|-- rest-server # port, listen addresses
|-- database # internal database storing artifacts
|-- ehcache # pointing to cache configuration
|-- cleaner # time of cleanups FIXME
`-- export-secret # signing project files
\end{lstlisting}

\paragraph*{geo-backend}
{\em Function}: The geo-backend encapsulates the logic for accessing the database
backend. At this time, the use of ESRI ArcSDE 9.3.1 is supported.

At least, the following options for configuring the element {\tt
geo-backend} are required:

\begin{itemize}
    \item {\tt backend-configuration}: path to the file defining the
    connection properties to the database backend, preconfigured to {\tt
    arcsdeconnection.properties}. Normally, just the
    connection parameters have to de adapted. Further information can be
    found in the file itself.

    \item {\tt query-configuration}: path to the file listing a SQL
    statements, preconfigured to \texttt{queries.txt}. Further information can be
    found at chapter~\ref{ref:queries.properties}, p.~\ref{ref:queries.properties}
\end{itemize}


\paragraph*{rest-server}
{\em Function}: The REST-Server needs a HTTP binding configured via:

\begin{itemize}
    \item {\tt port}: port the server should listen on. Preconfigured on
    8181.
    \item {\tt listen}: for security reason the accessibility can be
    limited. The parameter needs an IP-address or a hostname.
    Accessibility to the entire network can be done by
    removing/commenting out of the element.
\end{itemize}


\paragraph*{database}
{\em Function}: The internal database of the system for storing
artifacts representing a parameterisation of a client session. So fare,
the filebased database H2 is supported. Connecting to other backends can
be provided.

\begin{itemize}
    \item {\tt user}: database user for connecting to the
    artifact-database. In new installations "SA" is used.
    \item {\tt password}: password of the database user for
    authentification.
    \item {\tt url}: Connection URL to the database-files.
    In the preconfiguration, they are written to \\
    \verb| ${artifacts.config.dir}/../artifactdb|
\end{itemize}


\paragraph*{ehcache}
{\em Function}: The cache for storing result sets of the database. The
configuration in {\tt ehcache.xml} should not been adapted. Changing has
at least consequence to the system requirements.

\begin{itemize}
    \item {\tt configuration}: the path to the configuration file. \\
    Preconfigured: \verb+${artifacts.config.dir}/ehcache.xml+
\end{itemize}


\paragraph*{cleaner}
{\em Function}: Process for cleaning up the artifact-database. Artifacts
have a time-to-life. Died artifacts need to be removed. Changing the
interval has consequences to the size of the database.

\begin{itemize}
    \item {\tt sleep-time}: Time interval in milliseconds between 2
    checks. Preconfigured: 60000 (1 minute)
\end{itemize}


\paragraph*{export-secret}
{\em Function}: Signature for signing project files that were created by
the artifact-server instance. Before reading a projectfile the server
checks the file against that signature/check sum.

{\bf Be aware, changing the signature of updating the source code of
artifacts will prevent of using existing project-files.}

For setting up the secret, c.f. the tips in the admin manual.
