sobota, 12 kwietnia 2014

Windows Azure - Darmowy hosting GeoServer (WMS + WFS)

Tworzenie Web Site

Zaloguj się do windowsazure.com i utwórz nowy Web Site


Po utworzeniu Web Site przejdź do zakładki Cofigure i zmień ustawienia na Java + Tomcat


Przejdź na zakładkę Dashboard i dodaj nazwę użytkownika


A potem zaloguj sie za pomocą swojego ulubionego klineta FTP i przejdź do folderu /site/wwwroot. Utwórz plik web.config o zawartości
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>

<handlers>
<add name="httpPlatformHandler" path="*" verb="*"
modules="httpPlatformHandler" resourceType="Unspecified" />
</handlers>

<httpPlatform processPath="%AZURE_TOMCAT7_HOME%\bin\startup.bat">
<environmentVariables>
<environmentVariable name="CATALINA_OPTS" value="-Dport.http=%HTTP_PLATFORM_PORT%" />
<environmentVariable name="JAVA_OPTS" value="-Djava.net.preferIPv4Stack=true" />
</environmentVariables>
</httpPlatform>

</system.webServer>
</configuration>
Pobierz Web Archive ze strony http://geoserver.org/display/GEOS/Stable i rozpakuj, zmień nazwę pliku z geoserver.war na ROOT.war, a następnie skopiuj do /site/wwwroot/webapps. Zrestartuj Web Site i sprawdź działanie. Pamiętaj, że ładowanie GeoServer potrafi trwać kilka minut. Zaloguj sie do panelu sterowania (domyślnie user: admin, password: geoserver) i skonfiguruj go według własnych potrzeb.

Sprawdź jak GeoServer działa na platformie Windows Azure:








wtorek, 8 kwietnia 2014

OpenShift - Darmowy hosting GeoServer (WMS + WFS)

OpenShift od Ret Hat

OpenShift.com udostępnia bezpłatnie trzy małe jednostki serwera (gear). Jedna jednostka składa się z 0.5GB RAM + 1GB HDD. Dzięki tym trzem jednostkom można uruchomić np. trzy różne aplikacje. A w przypadku dużego ruchu można rozłożyć zużycie mocy obliczeniowej jednej aplikacji na trzy jednostki serwera, który za pośrednictwem "load-balancer'a" replikuje jedną aplikację na trzy wirtualne maszyny.

Wykorzystajmy te możliwości do utworzenia instancji geoserver.org umożliwiającej udostępnianie map za pośrednictwem takich usług jak Web Map Service (WMS).

Zakładanie konta


Tworzenie nowej aplikacji Open Shift

GeoServer działa w środowisku Tomcat, który jest dostępny wśród wielu opcji Open Shift:

GeoServer ma raczej duże wymagania systemowe, szczególnie jeżeli chodzi o zasoby RAM więc warto utworzyć aplikację, która skaluje się wraz ze wzrostem ruchu na serwerze. Dodatkowa zaleta aplikacji skalowalnej to możliwość dodania bazy danych PostGIS jako osobny cartridge (wydzielone wyłącznie dla PostGIS 0.5GB RAM + 1GB HDD). W przypadku wybrania opcji 'No scaling' też będzie można dodać PostGIS, ale w tym przypadku będzie korzystał ze współdzielonej z GeoServer pamięci RAM (0.5GB).

W tym momencie Tomcat jest uruchomiony. W moim przypadku nazwa aplikacji to gis uruchomiona w przestrzeni nazw umgdy.

Red Hat client tools

Aby móc do niego dodać GeoServer niezbędne będą narzędzia uruchamiane w linii komend:
Po instalacji Red Hat client tools trzeba skonfigurować dostęp dostęp do aplikacji na komputerze lokalnym. Najpierw należy użyć polecenia
rhc setup
Należy podać dane do logowania, utworzyć token autoryzacyjny, utworzyć klucz SSH. Na końcu powinna być wyświetlona informacja Your client tools are now configured.

Klonowanie zdalnego repozytorium

Aby dodać GeoServer to Tomcat'a najpierw trzeba sklonować repozytorium aplikacji na komputer lokalny. Tworzymy folder, w którym będą przechowywane repozytoria git, w linii komend przechodzimy do tego folderu a następnie klonujemy repozytorium. Adres zdalny repozytorium podany jest w sekcji Source Code
 
mkdir gitcd gitgit clone ssh://<source-code>cd <app-name>


Po sklonowaniu repozytorium trzeba w linii komend przejść do folderu repozytorium. Nazwa folderu to nazwa aplikacji. W moim przypadku jest to gis. Domyślnie OpenShift jest skonfigurowany tak aby kompilować zawartość folderu src zgodnie z parametrami ustalonymi w pliku pom.xml. Ponieważ nie mam zamiaru pisać własnego kodu źródłowego usuwam zarówno folder src jak i plik pom.xml.

Konfiguracja GeoServer

Teraz najważniejsza część - dodajemy GeoServer do Tomcat'a. W tym celu należy pobrać Web Archive ze strony http://geoserver.org/display/GEOS/Stable, rozpakować, a następnie skopiować plik geoserver.war do folderu git/gis/webapps/. Plik geoserver.war to zawartość całej aplikacji GeoServer, która zostanie uruchomiona w środowisku Tomcat. GeoServer zostanie uruchomiony w podfolderze www.nazwa-domeny.com/geoserver.

GeoServer będzie działać świetnie ale będzie problem ze zmianą domyślnej konfiguracji w tym również danych GIS. Aby rozwiązać ten problem trzeba rozpakować plik geoserver.war a następnie zawartość folderu data skopiować do git/<app-name>/data/geoserver_data.

Dodatkowo w folderze git/<app-name>/.openshift/action_hooks/ należy utworzyć plik pre_start_jbossews-2.0 z następującą zawartością:
export CATALINA_OPTS=-DGEOSERVER_DATA_DIR=${OPENSHIFT_DATA_DIR}geoserver_data

Prawie wszystko gotowe. Teraz wysyłamy zmienione repozytorium na serwer - w wierszu poleceń trzeba wpisać:
git update-index --chmod=+x .openshift/action_hooks/*
git add -A .
git commit -m "push"
git push
Powpduje to odpowiednio:
- przypisanie praw do wykonywania plików w folderze action_hooks
- dodanie zmian do repzytorium Git
- potwierdzenie dodanych zmian
- wysłanie potwierdzonych zmian do zdalnego serwera


Po wysłaniu repozytorium na serwer trzeba jeszcze skopiować dane konfiguracyjne GeoServer z folderu git/<app-name>/data do folderu OPENSHIFT_DATA_DIR, a następnie zrestartować aplikację. W tym celu należy użyć poleceń:
rhc ssh -a [app-name]
> cp -a $OPENSHIFT_REPO_DIR/data/. $OPENSHIFT_DATA_DIR/
> chmod -R ugo+rw $OPENSHIFT_DATA_DIR/geoserver_data/
> exit
rhc app restart -a [app-name]
Do kopiowania zostały wykorzystane zmienne  systemowych OpenShift.

Po restarcie GeoServer potrzebuje kilku minut na wystartowanie. Uruchamia się od razu więc OpenShift wyświetla status "success", ale po wystartowaniu wczytuje dużo danyc (konfiguracje, układy współrzędnych, style warstw, ... i inne) i to wczytywanie trwa kilka minut. Więc odczekaj dłuższą chwilę zanim zaczniesz szukać błędów z powodu 503 Service Unavailable.

Problemy jakie mogą wystąpić dotyczą praw dostępu do plików w folderze geoserver_data. GeoServer potrzebuje praw do odczytu/edycji/tworzenia. W razie potrzeby trzeba użyć
chomod -R ugo+rw data/geoserver_data/
chomod -R ugo+x .openshift/action_hooks/
Efekt pracy działający on-line można sprawdzić pod adresem:
http://geoserver-ksz.rhcloud.com/http://geoserver-ksz.rhcloud.com/geoserver/web/




Sprawdź też:

sobota, 5 kwietnia 2014

PostGIS w OpenShift

Zaloguj się do Open Shift




Dodaj aplikację typu Tomcat 7






W aplikacji dodaj nowy cartridge bazy danych PostgreSQL




Skopiuj swój identyfikator



A następnie zaloguj się na swoje konto


http://www.postgresql.org/docs/8.4/static/plpgsql-overview.html
Dodaj PostGIS do bazy PostgreSQL
>psql spatialapp -c "create language plpgsql;"

Dodaj funkcje przestrzenne do utworzonej bazy danych (o nazwie gis)


> psql -d gis -f /usr/share/pgsql/contrib/postgis-64.sql
> psql -d gis -f /usr/share/pgsql/contrib/spatial_ref_sys.sql



Łączenie się z bazą PostGIS 

Aby sprawdzić parametry połączenia użyj polecenia 
rhc domain list
rhc port-forward <appname>



> env | grep DB




To połączenie może być aktywowane tylko w ramach jednego cartridge.











Hosting dla WMS

Najpiew sprawdź jak bezpłatnie uruchomić własny GeoServer

Darmowy hosting usług WMS (Web Map Service)

  • qgiscloud.com - rozwiązanie oparte na QGIS Server możliwością bezpośredniego dostępu do bazy danych PostGIS.
  • giscloud.com - idealne rozwiązanie dla początkujących z dedykowaną wtyczką dla ArcGIS/ArcMap
  • Utworzenie własnej maszyny wirtualnej na Amazon EC2
  • Utworzenie własnej maszyny wirtualnej na platformie Open Shift  od Red Hat (geoserver)

Dodatkowo


Lista hostingów PostGIS wg OsGeo:


Warto sprawdzić również: