Nutzung des Web-Applikationsservers des ZID

Hosting

Am Web-Applikationsserver des Zentralen Informatikdiensts werden Web-Applikationen gehostet. Unter Web-Applikationen werden Applikationen verstanden, die einen spezifischen, klar definier- und eingrenzbaren Zweck erfüllen, der nicht durch das Web-Hosting Angebot des zentralen Webservers bzw. durch das Content Management-System der Universität - XIMS - abgedeckt werden kann. Damit steht der Web-Applikationsserver nicht zur Bereitstellung ganzer Homepages von Organisationseinheiten
zur Verfügung.

Wenn Sie eine derartige Applikation am Web-Applikationsserver hosten lassen wollen, dann wenden Sie sich bitte an den Betreuer der Applikationsebene des Servers:
Webapp-Admin@uibk.ac.at 

Entwicklung

Es werden die folgenden Technologien unterstützt:

Applikationsebene

  • Java/J2EE
  • Perl/mod_perl, Apache AxKit Application Server
  • PHP
  • PL/SQL, mod_plsql

Datenbankebene

  • Oracle
  • PostgreSQL

Der ZID stellt keinen Entwicklungsserver für die Applikationseben zur Verfügung; wie bei der Entwicklung vorgegangen werden sollte, entnehmen Sie bitte den Hinweisen zu den einzelnen Programmiersprachen.

Während der Entwicklung kann auf Test-Instances der Oracle und PostgreSQL Datenbanken zugegriffen werden. Details dazu entnehmen Sie bitte dem Abschnitt "Entwicklung und Betrieb auf den Datenbankinstanzen"

Unabhängig von der verwendeten Technologie ist bei der Applikationsentwicklung die URL-Namensgebung zu beachten.

Die Einstiegs-URLs für die Applikationen folgen dem Schema http(s)://webapp.uibk.ac.at/projektkurzname/. Die formalen Regeln für die Kurznamen sind äquivalent zu denen, die im Dokument Namensgebung und Betrieb von Webservern an der Universität Innsbruck festgelegt sind.

Je nach Komplexität des Projekts ist es sinnvoll, einzelne Objekte innerhalb der Applikation relativ zum aktuellen Verzeichnis oder absolut zum Serverstammverzeichnis "/" zu verlinken. Im Falle eines gewünschten Links auf
http(s)://webapp.uibk.ac.at/projektkurzname/about/members.xsp ausgehend von
http(s)://webapp.uibk.ac.at/projektkurzname/index.xsp könnte das mit einem relativen Link durch "about/members.xsp" oder über einen absoluten Verweis  "/projektkurzname/about/members.xsp" erreicht werden. Wir empfehlen, Links zu Objekten abwärts der Hierarchie grundsätzlich relativ zu erstellen und Objekte, die sich mindestens zwei Ebenen höher als das Ausgangsobjekt befinden, absolut zu verlinken (die Art und Weise der Verlinkung im Zwischenbereich ist mehr oder weniger Geschmackssache).

Hinweise zur Entwicklung in Java

Es wird empfohlen, Webapplikationen in Java mit Hilfe des "JDeveloper" (download vom Oracle Technology Network [kostenfrei, Online-Registrierung erforderlich]) zu entwickeln. Dieser ist selbst in Java geschrieben und kann daher auf allen Java-unterstützten Plattformen betrieben werden. Als integrierte Entwicklungsumgebung stellt er die notwendigen Werkzeuge zur Verfügung. Insbesondere gibt es innerhalb des JDeveloper die Möglichkeit des Betriebs eines "privaten Applikationsservers", um die entwickelte Applikation zu testen!

Applikation werden als sogenannte EAR- oder WAR-Files auf den Applikationsserver eingebracht. Diese Dateien können ebenfalls direkt im JDeveloper erstellt werden. Die Details des Einbringens am Server bzw. des Erstellens des EAR/WAR-files sind von Anwendung zu Anwendung verschieden und müssen mit der/dem BetreuerIn des Servers geklärt werden.

Hinweise zur Entwicklung in Perl

Es empfiehlt sich, auf einer vergleichbaren Linuxumgebung wie das Produktionssystem webapp.uibk.ac.at zu entwickeln. Über Details zu den dort im Einsatz befindlichen Perl und Modulversionen gibt diese Liste Auskunft. Selbstentwickelte oder nicht bereits installierte Perl-Module werden am Rechner webapp.uibk.ac.at unter /usr/local/projektkurzname/ eingebracht werden und sollten mittels use lib '/usr/local/projektkurzname/lib'; von den Skripten - unter /wwwroot/projektkurzname/ installiert - eingebunden werden.

...
use lib '/usr/local/projektkurzname/lib';
use PROJEKTKURZNAME::Basic;
use Apache::Request;
sub handler {
    my $apr = Apache::Request->new(shift);
    ...
}

Die entwickelte Applikation soll als tar- oder zip-Archiv abgeliefert werden.

Hinweise zur Entwicklung in PHP

Analog zur Entwicklung in perl sollte auf einem System mit möglichst ähnlicher php-Version entwickelt werden. Welches die aktuelle Version von php am 'Web-Applikationsserver ist, erfahren Sie unter http://webapp.uibk.ac.at/info.php

Entwicklung und Betrieb auf den Datenbank-Instanzen

Der Zentrale Informatikdienst stellt ein Oracle- und ein PostgreSQL-Datenbanksystem zur Verfügung (derzeit Oracle 9.2.0 und PostgreSQL-7.3.2). Auf beiden Systemen kann eine Entwicklungs- bzw. Testinstanz und eine Produktionsinstanz verwendet werden. Jeder Benutzer erhält seinen eigenen Namensraum (Schema), in dem er seine Objekte ablegen kann. Die Instanzen werden laufend überwacht und über ein Backup-System gesichert.

Die Datenbanksysteme sind über TCP/IP (Oracle SQL-Net, JDBC, PostgreSQL-TCP/IP-Layer) erreichbar, für interaktives Arbeiten ist auf Seiten des Clients die Installation eines entsprechenden Client-Programms nötig (Oracle: Oracle-Client-Modul Oracle8i oder höher; PostgreSQL: psql 7.2.2 oder höher). Alternativ zu einer individuellen Installation des benötigten Client-Moduls können Clienten-Module auf zentralen Servern des ZID verwendet werden: das PC-Client/Server-Systems des ZID unterstützt den Zugriff auf Oracle-Datenbanken (https://www.uibk.ac.at/zid/software/pc/db/oracle.html.

Die PostgreSQL-Datenbanken sind mit Unicode-Zeichensatz angelegt, für eine korrekte Darstellung der Daten müssen die Skripts
Vorsorge treffen: Zeichensatzkodierung bei Webapplikationen

Deployment

Es ist nicht möglich, dass EntwicklerInnen Accounts zur Entwicklung direkt am Applikationsserver selbst bekommen können. Änderungen/Verbesserungen/Bugfixes der Applikationen müssen im allgemeinen leicht anwendbare Patches oder Gesamtupdates sein. Die Frequenz derartiger Updates sollte sich in Grenzen halten und wird mit dem Betreuer des Servers vereinbart.

Versioning der Applikation ist Pflicht!