Praxis der Internet-Programmierung mit Java, Apache und XML (JAX) Institut für Informatik [email protected] http://jax.nano-world.org JAVA Web Browser Application with Viewer Bean XML Apache Web Server EJB Application Server Fetch DATA DB TIER 1 TIER 2 TIER 3 APACHE Organisatorisches Zeiten? Vorlesung: Do 13.00 - 14.00 Uhr Hörsaal 2 EG 0006 Praktikum: Do 14.00 - 16.00 Uhr PC-Labor U1075 Wahlfach Informatik: Die Veranstaltung wird mit 3SWS angerechnet. Fragen an: Karin Liesenfeld [email protected] Material: www.ifi.unibas.ch (bald) http://jax.nano-world.org Praktikum Ziel: •Max. Ausnutzung des neuen Computerlabors (hohe Bandbreite, moderne Software) •Praktische Beispiele - in zwei Stunden ein funktionsfähiges Produkt •1 zu 1 Anwendung der Vorlesung Testatbedingung: Vorlesung: Anwesenheit Praktikum: 75% der Produkte müssen lauffähig sein. Literatur • • • • • • • • • • • • • • • B. Eckel, “Thinking in Java”, Second Edition, New Jersey, 2000 M. Hall, “Core Servlets and JavaServer Pages”, NJ, 2000 D. K. Fields, M. A. Kolb, "JavaServerPages", Manning, 2000 D. Chang, D. Harkey, "Client/Server Data Access with Java and XML", Wiley Computer Publishing, 1998 L. Eilebrecht, "Apache Web-Server", MITP-Verlag Bonn, 2000 J. Farley, "Java Distributed Computing", O'Reilly, 1998 S. Allamaraju et al., "Professional Java Server Programming - J2EE Edition", Wrox Press, 2000 M. von Löwis, N. Fischbeck, "Python 2", ADDISON-WESLEY, 2001 H. Behme, S. Mintert, "XML in der Praxis" ADDISON-WESLEY, 2000 W. Rockwell, "XML, XSLT, Java und JSP", Galileo Computing, 2001 A.L. Ananda, B. Srinivasan (Eds), "Distributed Computing Systems: Concepts and Structures", IEEE Computer Society Press, 1991 Sape Mullender (Ed), "Distributed Systems", Addison-Wesley (ACMPress), 1994 Open Software Foundation, "Introduction to OSF(TM) DCE",Prentice Hall, 1992 Andrew S. Tanenbaum, "Computer Networks", Prentice Hall, 1996 Michael Weber, "Verteilte Systeme", Spektrum Akademischer Verlag,1998 Links http://java.sun.com/ http://jakarta.apache.org http://www.jguru.com http://www.borland.com/jbuilder/ https://www.developer.ibm.com/java/member/ http://www.microsoft.com/java/ http://xml.apache.org http://www.rfc-editor.org/ http://www4.ulpgc.es/tutoriales/tcpip/pru/ http://www.raleigh.ibm.com/cgi-bin/bookmgr/library Überblick „Web Services“ , „Application Server“ Diese Begriffe sind heute völlig unklar und versteht darunter, was ihm gerade opportun erscheint. Eingrenzung dieser Vorlesung auf: • JAVA Server Anwendungen • Open Source Produkte Apache • XML Anwendungen Zeitplan 25.10 1.11 8.11 15.11 2002 2002 13.12 20.12 22.11 29.11 6.12 Im Focus • • • • • Grundlagen der Internetprogrammierung Servlet und JSP – Technologie von SUN Weitere Opensource Produkte Enterprise Java Beans XML Nicht im Focus der Vorlesung • High End Enterprise Systeme mit J2EE Cluster Farmen (Bsp: Webgain oder Oracle) • Microsoft NET Strategie • Sicherheit & Cryptographie Grundlagen Client-Server Modell Internet -> TCP / IP Telnet FTP SMTP URL HTTP Port 23 21 25 80 Client - Server Modell Client Server Verschieden Dienste Client: Server: Anfrage (REQUEST) Server wartet auf Anfragen Ausführung der geforderten Anfrage und Antwort (RESPONSE) Asynchron !! RFC‘s (Request for Coment) http://www.rfc-editor.org/ http://hier.dur.ch/zu/mir/rfc/ wichtige RFC‘s RFC 1340 RFC 1305 RFC 821 RFC 2616 RFC 2617 Internet-wide wellknown ports Network Time Protocol Simple Mail Transfer Protocol HTTP 1.1 HTTP Authetication TCP / IP Erste Implementation: Computer Systems Research Group at the university of California at Berkley BSD System “Berkley Software Distribution” Sockets, TLI (Transport Layer Interface) API’s (Aplication programming interface) using TCP/IP Protokolls. http://www4.ulpgc.es/tutoriales/tcpip/pru/ (ETHERNET von DEC 1982) TCP/IP IP:Internet Protokoll IP ist ein unzuverlässiger, verbindungsloser Datenpaket Zustellungs- Dienst. TCP: Transmission Kontroll Protokoll TCP unterstützt einen zuverlässigen, Verbindungsorientierten Byte-stream. Packet Dienst Netzwerk Protokolle, Schichten Schicht: Anwendung Transport Netzwertk Verbindung Hardware Protokoll: FTP TCP IP Ethernet Basis Dienste Netzwerkkonfiguration ipconfig netstat (man netstat) ping, host traceroute telnet: simple Services name echo discard daytime chargen time port 7 9 13 19 37 RFC 862 863 867 864 868 FTP Simple Mail Transfer Protocol (SMTP) Unix for From: <[email protected]> freaks: To: <[email protected]> Mail –v –stest [email protected] <mymail Date: Mon, 22 Oct 2001 11:18:00 +0200 (MET DST) Unified Resource Locator Syntax: <prot.>//<user>:<password>@<host>:<port>/<url-path> telnet://eudora.ifi.unibas.ch:19 ftp://[email protected]/ http://www.google.ch/search?q=Uni+Basel Hypertext Transfer Protocol HTTP 1.1 Request – Response Methoden: GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS http://www.w3.org/Protocols/ HTTP GET für Anfragen mit wenig Zusatzinformationen POST für Anfragen mit grossen Zusatzinformationen Beispiel (GET-Request): GET /index.html HTTP/1.1 User-Agent: Opera/5.02 (Windows 98; U) Host: www.anyhost.ch Accept: text/html, image/jpeg, */* Request Header Accept Accept-Charset Accept-Encoding Accept-Language Authorization Cache-Control Connection Content-Length Content-Type Cookie Expect From Host If-Modified-Since If-None-Match If-Range If-Unimodified-Since Pragma Proxy-Authorization Range Referer Upgrade User-Agent Praktikum HTTP (I) Werkzeug: HTTPUNIT (httpunit.sourforge.net) JBuilder Aufgaben: 1.) Body einer Homepage lesen 2.) Alle Links einer Seite auslesen 3.) Eine Tabelle auslesen 4.) Ein Formular ausfüllen 5.) Alle Links einer Site überprüfen 1. Httpunit downloaden http://httpunit.sourceforge.net 2. Neues Projekt eröffnen File New Project Klicken Klicken 3. Neue Klasse einfügen New New Class 3. Code einfügen New New Class 4. Starten Run Run Projects Klick Httpunit api