Interaktive Karten im Internet Technische Infrastruktur (Webserver und ArcIMS) Vortrag von Markus Tondorf Inhalt Webserver ArcIMS Internet Map Server Statische Seiten Dynamische Seiten Hersteller von Web-Servern, Vergleich Komponenten und Tools auf Serverseite Komponenten auf Clientseite ArcXML Vorstellung der Gruppe Technik Webserver Entstehung des WWW 1989 am CERN System zum einfachen „browsen“ in vorhandenen Dokumenten Zunächst nur statische Seiten Interaktion zwischen Surfer und Web-Server Dynamische Erstellung von Webseiten z.B. aus Datenbanken Entwicklung neuer Technologien CGI, PHP, Servlets, JSP und Active Server Pages CGI „Common Gateway Interface“ Grundgedanke: Web-Server ruft ein beliebiges ausführbares Programm auf Jede Programmiersprache möglich Anwendungsbeispiele: In der Regel wird ein Perl-Script benutzt. Gästebücher, Pinwände, Counter, Chats usw. Nachteil: Langsame Ausführungsgeschwindigkeit. CGI-Programm muß immer wieder neu geladen werden. PHP „Hypertext Preprocessor“ Entstanden aus einer Sammlung von Makros von Rasmus Lerdorf (1995) die er „Personal Homepage Tools“ nannte Wenig Aufwand bei der Erstellung dynamischer Webseiten Serverseitige in den HTML-Code eingebettete Scriptsprache Client erhält nie den eigentlichen Scriptcode Breite Unterstützung von SQL-Datenbanken Syntax ähnlich zu C ASP „Active Server Pages“ Von Microsoft entwickelt Scripte in HTML-Seiten (Endung .ASP) Werden bei Aufruf der Seite ausgeführt Ergebnis wird in die Seite integriert Prinzipiell jede beliebige Scriptsprache möglich Einbindung von ActiveX (COM) Objekten <html> <head><title>Testseite</title> </head> <script RUNAT="Server" language="JScript"> var now = new Date(); var today= now.toLocaleString(); </script> <body> Die Server-Zeit: <% Response.Write( today) %> Uhr. </body> </html> Servlet Unterschied Applet - Servlet Servlet bleibt nach dem ersten Aufruf geladen. Daher wesentlich schneller als z.B. CGI-Scripts. 3 verschiedene Möglichkeiten Java-Applet auf Client (Browser) Java-Servlet auf Server Wie ein CGI-Script. Bietet sich bei der Umstellung bereits bestehender Seiten an. SSI (Server Side Include): Anweisung innerhalb der HTMLSeiten (ähnlich zu PHP) Servlet Alias: Zugriff eines Clients wird die Ausführung eines Servlets zugeordnet Hohe Geschwindigkeit, da kein AWT (Abstract Windowing Toolkit) benötigt wird JSP „Java Server Pages“ Erweiterung der Servlet Technologie Trennung von Benutzerinterface und Seitengenerierung JSP-Scripts werden in Servlets übersetzt Automatisches Session Managment durch Cookies Kommunikation über Tags ähnlich zu XML Tags können frei definiert werden Beispielanwendung für JSP 1. 2. 3. JSP liest XML-Daten StyleSheet wird angewendet Ausgabe im angeforderten Client-Format Unterschiede JSP und ASP JSP Setzt auf Servlets auf Plattformunabhängig Jeder Webserver z.Z. Apache, Netscape, IIS Java Programmiersprache Frei definierbare Tags Datenbank: JDBC, ODBC Java Beans ASP Setzt auf ActiveX auf Nur unter Windows Nur IIS oder Personal Webserver Microsoft JScript oder VBScript Vorgegebene Tags Datenbank: ODBC COM-Objekte Web-Server Was ist zum Betrieb notwendig? Sicherheit Authentifizierung Weniger wichtig Session Managment Zuerst zweitrangig Später wichtig Zwischenwerte einer Sitzung auf dem Server speichern z.B. Warenkorb oder zuletzt erstellte Route Cookies Benutzerforschung (Werbepartner?) Hersteller von Web-Servern Server Sept. 2000 % Oktober 2000 % Veränderung % Apache 12.705.194 60,02 13.295499 59,67 -0,35 MS-IIS 4.138.551 19,55 4.491609 20,16 0,61 Netscape 1.472689 6,96 1.500.988 6,74 -0,22 Weblogic 566.509 2,68 680.332 3,05 0,37 Zeus 606.987 2,87 616.200 2,77 -0,10 Rapidsite 332.246 1,57 339.379 1,52 -0,05 Thttpd 190.371 0,90 225.175 1,01 0,11 AOLserver 201.471 0,95 151.948 0,68 -0,27 WebSitePro 103.617 0,49 105.112 0,47 -0,02 Tigershark 81.528 0,39 102.850 0,46 0,07 Vergleich Apache & MS-IIS Apache Microsoft IIS + + o + o o + + + + + + + Kostenlos Betriebssystemunabhängig Kein offizielles Support Center Support über Newsgroups Betriebssystemaufsatz Konfigurationsdateien + GUI Viele Informationen im Internet HTML-Interface Kostenpflichtig (NT, Win2000) nur NT Server oder Win2000 Support Hotline (Kostenpflichtig) Support über Newsgroups Integration ins Betriebssystem GUI-Interface Wenig Informationen HTML-Interface (nur NT Server) ArcIMS 3 Tier Architektur Komponenten auf Serverseite ArcIMS Application Server Connectors Servlet Connector ColdFusion Connector ActiveX Connector ArcIMS Application Server ArcIMS Spatial Server ArcIMS Manager ArcIMS Application Server Connectors Servlet Connector Standard-Programm zur Verbindung von ArcIMS mit dem Web-Server Nutzt Java-Plattform-Technologie Anfragen und Antworten in ArcXML Keine zusätzliche Übersetzung notwendig Windows NT und Unix Application Server Connectors ActiveX Connector COM-DLL für alle COM-Programme z.B. ASP Zus. Programme z.B. in Visual Basic, C++, Delphi usw. Anweisungen werden in ArcXML übersetzt Nur Windows NT ColdFusion Connector ColdFusion Anweisungen werden in ArcXML übersetzt Windows NT und Unix ArcIMS Application Server Herzstück von ArcIMS Verteilt alle ankommenden Anfragen Sammelt alle Ergebnisse Sendet Ergebnisse an Web-Server zurück Kann mehrere Web-Server gleichzeitig bedienen ArcIMS Spatial Server „Arbeitstier(e)“ Beinhaltet die grundlegenden Funktionen für die Erstellung und den Zugriff auf Karten Weblink XML-Parser Kommunikation mit dem Application Server Analysiert XML-Sequenzen Data Access Manager Verbindung zwischen dem Spatial Server und einer Datenquelle ArcIMS Spatial Server Map-Services Image Rendering JPEG, PNG oder GIF zum Web-Server Generiert aus Shapefiles ArcSDE Datenquellen Unterstützten Bildformaten ADRG, ASRP, BIL, BIP, BMP, GeoTiff, GIF, Tiff, Jpeg, usw. Karte wird im Spatial Server generiert Feature Streaming Shapefiles und ArcSDE-Datensätze zum Java Applet (Komprimiert) Karte wird vom Client generiert ArcIMS Spatial Server Query Geocoding Liefert Daten aus Datenquellen Notwendig bei der Nutzung von Attributen Findet Adressen auf Karten Basierend auf Informationen aus Shapefiles oder ArcSDE-Datenquellen Data Extraction Liefert einen Ausschnitt der Daten als Shapefiles Wird aus Shapefiles oder ArcSDE-Datenquellen generiert ZIP-Format ArcIMS Virtual Servers ArcIMS Manager Webseiten für den Zugriff auf alle Server-Einstellungen Alle Konfigurationseinstellungen in ArcXML Drei Komponenten unter einer gemeinsamen Oberfläche: ArcIMS Author ArcIMS Designer ArcIMS Administrator Verwaltung der Spatial Server Veröffentlichung der Map-Services ArcIMS Manager ArcIMS Author Erstellung von Konfigurationsdateien für die Map-Services (XML) aus: Shapefiles ArcSDE-Datenquellen Bildern Möglichkeiten Verschiedene Datenquellen – Verschiedene Layer Polygone zeichnen Maßstabsabhängige Darstellung Anfragen und Geocodierung definieren Beschriftung und Schriftplatzierung ArcIMS Manager <?xml version="1.0" encoding="Cp1252"?> <ARCXML version="1.0.1"> <CONFIG> <MAP> <PROPERTIES> <ENVELOPE minx="-180.0" miny="-90.0" maxx="180.0"maxy="90.0„ name="Initial_Extent" /> <MAPUNITS units="DECIMAL_DEGREES" /> </PROPERTIES> <WORKSPACES> <SHAPEWORKSPACE name="shp_ws-0" directory="C:\data" /> </WORKSPACES> <LAYER type="featureclass" name="CNTRY94" visible="true„id="1"> <DATASET name="Countries" type="polygon" workspace="shp_ws-0" /> <SIMPLERENDERER> <SIMPLEPOLYGONSYMBOL filltype="solid„ fillcolor="255,255,153"/> </SIMPLERENDERER> </LAYER> ... </MAP> </CONFIG> </ARCXML> ArcIMS Manager ArcIMS Designer Erstellung von Web-Seiten Auswahl der Map-Services Funktionen und Tools auf dem Web-Client Auswahl des Viewers (HTML, Java) ArcIMS Clients Funktionen Pan und Zoom Räumliche und thematische Anfragen Pufferung um Objekte Distanzen auf der Karte messen Annotation (Nur Java Clients) Geometrie Text und Bilder hinzufügen Wird zum Server gesandt, aber nicht direkt integriert Editieren und ergänzen Wird zum Server gesandt, aber nicht direkt integriert Adressen auffinden ArcIMS Clients ArcExplorer HTML/DHTML Viewer Eigenständiger Viewer Nutzt Java-Script zur Übersetzung der ArcXML-Befehle Nur Image Map-Service Nur ein Map-Service gleichzeitig Alle Berechnungen auf dem Server Sourcen sind vorhanden Ausgangspunkt für eigene Anpassungen Java Viewers Feature Streaming und Image Map-Services Kombination mehrerer Map-Services möglich Client führt einen Teil der Berechnungen durch ArcIMS Clients Java Standard Viewer Java Custom Viewer Netscape und Internet Explorer ab 4.0 Vordefinierte Tools und Funktionen Nur Internet Explorer 4.0 und 5.0 Viewer Object Model API Individuelle Anpassung des Viewers 2 Downloads notwendig (da Java 2 Applets) Java Run-time Enviroment ArcIMS Viewer Applet ArcXML <ARCXML version="1.0"> <REQUEST> <GET_IMAGE> <PROPERTIES> <ENVELOPE minx="-180" miny="-90" maxx="180" maxy="90" /> <IMAGESIZE width="500" height="400" /> </PROPERTIES> </GET_IMAGE> </REQUEST> </ARCXML> <ARCXML version="1.0"> <RESPONSE> <IMAGE> <ENVELOPE minx="-130.000" miny="24.688" maxx="-110.000“ maxy="40.311" /> <OUTPUT file="c:\ArcIMS\Output\ World_ARCIMS19833023.gif" url="http://maps.esri.com/maps/ World_ARCIMS19833023.gif" /> </IMAGE> </RESPONSE> </ARCXML> W e b S e r v e r J a v a S e r v l e t ArcIMS Application Server Vorstellung Gruppe Technik Gruppensprecher Schnittstellenbeauftragte Markus Tondorf Ariane Middel Weitere Mitglieder Annette Eicker Ralf Müller Christoph Schaefer Aufgaben der Gruppe Technik Webserver: Apache oder Microsoft IIS? ArcIMS Installation Aufbau eines Demoprojektes ActiveX-Connector Möglichkeiten und Grenzen (Routenplanung) Servlet-Connector Java-Routenplanung Clients: HTML oder JAVA? Individuelles Layout? Schnittstelle zu anderen Gruppen Ende Fragen ?