You are here: Wiki>SE Web>TeachingHome>VorlesungBISJ2EE2005 (20 Feb 2006, mildePCPOOL.MI.FU-BERLIN.DE)Edit

Bau betrieblicher Informationssysteme mit J2EE WS2005/2006

Dies ist die detaillierte Veranstaltungsseite zur Vorlesung und Übung "Bau betrieblicher Informationssysteme mit Java2 Enterprise Edition (J2EE)".

Beschreibung

Betriebliche Informationssysteme (BIS) im Sinne dieser Vorlesung sind Softwaresysteme, die direkt die Geschäftsabläufe (im Bürobereich) von Firmen unterstützen oder abwickeln. In der Praxis sind BIS heute groß, komplex, heterogen und ständigem Wandel unterworfen.

Java2 Enterprise Edition (J2EE) ist eine Sammlung von Spezifikationen von Sun, deren Implementierungen (die von unterschiedlichen Herstellern verfügbar sind) die Realisierung von BIS mit modernen Softwarearchitekturen und -methoden stark erleichtern. Dazu gehören insbesondere die Unterstützung für den Bau von Web-basierten Benutzungsschnittstellen, von transaktionsbehafteten Server-seitigen Komponenten, von persistenter Datenhaltung und von diversen Integrationsmechanismen.

Die Vorlesung stellt die Aufgabenstellungen (nichtfunktionalen Anforderungen) vor, die beim Bau von BIS zu lösen sind und behandelt einige der diversen Teiltechnologien von J2EE aus dem Blickwinkel, was sie jeweils dazu beitragen und wie (und wie nicht) sie eingesetzt werden sollten.

In der Übung werden an kleinen und mittelgroßen Beispielen die Grundzüge der J2EE-Programmierung behandelt.

Ziel der Vorlesung ist eine überblickshafte Kenntnis von J2EE, samt einer Reihe grundlegender Entwurfsentscheidungen und technischer Details, sowie eine gewisse Urteilskraft für den sinnvollen Einsatz dieser Technologie für den Bau von BIS und ein Verständnis der wesentlichen Teilaufgaben und ihrer Hauptschwierigkeiten.


Organisatorisches

Veranstalter

Voraussetzungen/Zielgruppe, Einordnung, Leistungpunkte etc.

Siehe den Eintrag im KVV.

Die Veranstaltung ist geeignet für Diplom, Master und Nebenfach. Man sollte zuvor die Vorlesungen Softwaretechnik und Datenbanksysteme gehört haben und gute Java-Programmierkenntnisse, Spaß am Arbeiten mit dem Rechner, eine präzise Arbeitsweise und genügend Zeit mitbringen.

Übungsbetrieb

Die Vorlesung ist nicht allzu kompliziert, aber die Übungen sind recht detailreich, fehleranfällig und dementsprechend zeitaufwendig.

Zur Teilnahme wird ein Rechner unter Linux oder Windows benötigt, der möglichst mindestens 512 MB Hauptspeicher und 1 Gigabyte freien Plattenplatz haben sollte. Es muss JDK 1.4.2 oder höher installiert sein. Teilnahme mit Mac ist grundsätzlich ebenfalls möglich, kann aber Tücken haben.

Jeder Teilnehmer sollte im Laufe der Veranstaltung mindestens eine seiner Lösungen in den Übungen vorstellen. Dabei sind die im Folgenden ausgeführten Regeln bzgl. der technischen Voraussetzungen und der Präsentationsinhalte und -struktur zu beachten.

Regeln bzgl. der technische Voraussetzungen bei der Präsentation von Lösungen in den Übungen

Die Lösung muss für die Präsentation als Distribution und im Sourcecode zur Verfügung stehen. Hierbei sind zwei Szenarien zulässig:

1. Die Präsentation findet auf dem eigenen mitgebrachten Laptop statt
In diesem Szenario sind folgende Punkte zu beachten:
  • Der Rechner (bzw. die Graphikkarte) muss vorher für den Betrieb an einem Beamer konfiguriert und getestet sein.
  • Die entwickelte Applikation sollte betriebsfertig installiert und somit direkt aufrufbar sein. Dies heißt z.B. für den Fall von Webapplikationen, dass die fertige Anwendung schon in einen lokalen Webcontainer „deployed“ und somit über einen Browser aufrufbar ist.
  • Der Sourcecode sollte über die verwendete Entwicklungsumgebung (z.B. Eclipse) präsentiert werden. Hierbei sollten auch die einzelnen Schritte des Entwicklungsprozesses (Editieren, Compilieren, Deployen etc.) direkt durchführbar sein.

2. Die Präsentation findet auf dem Laptop des Veranstalters statt
Hierzu müssen der Sourcecode sowie die Distribution auf einem USB-Stick vorhanden sein. Im Einzelnen sind folgende Punkte zu beachten:
  • Die Distribution muss bei Desktopprogrammen direkt vom USB-Stick aus ausführbar sein.
  • Bei J2EE-Applikationen muss die Distribution in Form eines passenden Archives zur Verfügung stehen. Bei Webapplikationen ist dies eine WAR-Datei. Das Deployment des Archives sollte auf jeden Fall vorher getestet sein. Es ist darauf zu achten, dass die Applikation einen eindeutigen Namen bekommt (<nachname>_<übungsnummer>), so dass nicht mit einem Konflikt mit bereits installierten Applikationen gerechnet werden muss.
  • Die Distribution darf nicht abhängig von vorinstallierten Bibliotheken sein (muss diese also im Zweifelsfall mitliefern)!
  • Im günstigsten Fall liegt der Sourcecode als Eclipse-Projekt vor, so dass er einfach in die vorhandenen Eclipseumgebung importiert werden kann. Sollte dies nicht der Fall sein, steht zur Präsentation der Sourcen Ultraedit zur Verfügung.

Damit all dies funktioniert, steht auf dem Laptop des Veranstalters eine Java/J2EE-Infrastruktur zur Verfügung, wie im Übungsblatt 2 beschrieben (nur zur Information: Der Laptop des Veranstalters läuft unter WinXP).

Falls weder ein eigener Laptop noch ein USB-Stick zur Verfügung steht, sollte man sich rechtzeitig (nicht erst am Tag der Präsentation) mit dem Veranstalter in Verbindung setzen.

Regeln bzgl. der Präsentationsinhalte und –struktur

Während der Präsentation muss die laufende Applikation vorgeführt und der entwickelte Sourcecode präsentiert werden. Das Wort Präsentation ist hier ernst zu nehmen: Der Präsentator versucht, seine Lösung strukturiert und gut verständlich dem Publikum darzulegen. Dies kann nur dann funktionieren, wenn man sich vorher Gedanken über die Präsentation macht! Es sind folgende Punkte zu beachten:
  • Es ist sicherzustellen, dass der Sourcecode in einem geeignet Font dargestellt wird, so dass er auch in den letzten Reihen des Raumes gelesen werden kann.
  • Zu Beginn sollten die Ziele der Aufgabe noch einmal kurz rekapituliert und die speziellen Herausforderungen der Aufgabestellung klar umrissen werden.
  • Die Präsentation der Sourcen sollte einen roten Faden durch die Applikation liefern. Hierbei sollte z.B. der Beschreibung in den Übungsblättern gefolgt werden (wobei Teilschritte, die nur mit der Einarbeitung in die Materie zu tun haben, weggelassen werden).
  • Man sollte sich vorher überlegt haben, welche Teile eines Code-Dokumentes zentral sind und erläutert werden sollen. Das reine Vorlesen des gesamten Sourcecode reicht nicht!
  • Wichtig ist es, dass Zusammenspiel der unterschiedlichen Teile der Applikation zu verdeutlichen. Dies betrifft z.B. den Kontrollfluss (ggf. unter Berücksichtigung des verwendeten Frameworks).
  • Probleme, die beim Erstellen der Lösung auftraten (und hoffentlich gelöst wurden), sollten an den passenden Stellen wiedergegeben werden. Die betrifft auch Fehler, die bei der Entwicklung gemacht wurden. Vielleicht können andere daraus etwas lernen.
  • Man sollte darauf eingerichtet sein, auf Nachfrage bestimmte Stellen des Codes im Detail zu erklären (Hintergrundwissen!).
  • Da es in vielen Aufgaben auch das Ziel ist, eine Distribution (z.B. eine WAR-Datei) zu erzeugen, sollte in der Präsentation auch darauf eingegangen werden (z.B. WELCHE Bibliotheken WIE eingebunden wurden).
  • Die Präsentation sollte eine professionelle Vorstellung der eigenen Arbeit sein.

Termine

  • Vorlesung:
    • Mo, 12-14 Uhr, Raum 005
  • Übung:
    • Di, 12-14 Uhr, Raum 006
  • Scheinklausur:
    • Mo. 13.02.06, 12-14, Raum 005
  • Klausureinsicht:
    • Mi. 03.05.2006, 16:00 bis mind. 16:30 Uhr, Raum 051

Prüfungsmodalitäten

Kriterien für den Erwerb des Übungsscheins (Diplom) bzw. der Leistungspunkte (Bachelor) sind
  • die regelmäßige Bearbeitung der Übungsblätter;
  • regelmäßige Teilnahme an den Übungen, einschließlich Vorführung und Erläuterung der Ergebnisse der Übungsaufgaben;
  • Bestehen der Klausur.

Klausurtermine siehe bei #Termine.


Inhalt

Allgemeine Literatur

Spezielle Literatur

Stoffplan

Materialien (Folienzahl) Inhalte Zeit [45']
0 Einführung 1
Einfuehrung (46) Reflection/Beans/RMI (18) Betriebliche Informationssysteme (EIS); Java2 Enterprise Edition (J2EE); Lernziele; wichtige Java-Grundlagen 1
1 Anforderungen und Randbedingungen 1
Anforderungen (25) Randbedingungen von EIS-Entwicklung; nichtfunktionale Anforderungen an EIS; Anwendungsbau vs. Fertigsoftware (z.B. ERP) vs. Anwendungsintegration (EAI) 1
ZIP Übung 1: Java Reflection, Anforderungen .
2 Architektur von EIS 4
Archit.einfuehrg. (15) Grundbegriffe: Architektur und nichtfunktionale Anforderungen; Teilarchitekturen und Sichten; Evolution der Drei-Schichten-Architektur; Funktionale vs. physische Schichtung 0.5
Architektur (46) Was bedeutet Architektur und warum braucht man sie? Architektonische Stile, Architekturmuster;
Herleitung von Architekturen mit Unit Operations; Architektursichten; Facharchitektur versus technische Architektur
1.5
PDF Übung 2: Installation und Inbetriebnahme einer J2EE-Infrastruktur .
EAI (34) EAI (7) Enterprise Application Integration 2
ZIP Übung 3: Java RMI .
3 Benutzungsschnittstellenschicht 8
Einfuehrung (10) Arten Web-basierter GUIs (reines HTML, DHTML, Javascript, Applet, Web Start); deren Vor- und Nachteile 0.5
Servlet (32) Ant (28) Basistechnologie für Web-basierte Schnittstellen aller Art: Servlets; Exkurs: Automatisierung von Übersetzen, Einpacken, Deployment u.v.a.m. mit Ant 1.5
ZIP Übung 4: Ant, .war, web.xml, Servlets .
JSP (49) JSP-Tipps (11) Trennung von Inhalt und Präsentation: Java Server Page (JSP), Entwurfsmuster Model-View-Controller; Verwendungshinweise für JSP 2
ZIP Übung 5: Servlet für Binärdaten, Java Server Pages, JSTL, MVC .
Struts (43) Ein Framework zur Unterstützung einer sauberen Model-View-Controller-Struktur: Jakarta Struts 2
ZIP Übung 6: Struts
.
Portlets (68) Modulares Zusammenbauen dynamischer Webseiten aus 'Portlets': abaXX elements Web-UI 2
ZIP Übung 7: Portlets
.
4 Anwendungsschicht 12
Einführung (8) Nochmal Anforderungen: Verteilung, Transaktionen, Sicherheit, Verfügbarkeit, Skalierbarkeit 1
JNDI (18) Zugang zu serverseitigen Komponenten: Java Naming and Directory Interface (JNDI) 1
PDF Übung 8: Systemkonfiguration, JNDI .
EJB (85) JTA (18) Tipps (36) EJB-Schwächen (9) Enge Integration mit verteilten, transaktionsgeschützten serverseitigen Komponenten: Enterprise JavaBeans (EJB); Manuelle Steuerung von Transaktionen: Java Transaction API (JTA); Verwendungshinweise zur EJB und Entwurfsmuster; Kritik an EJB 4
PDF Übung 9: EJB, xdoclet
.
JMS (55) Integration über Nachrichtenkopplung: Java Messaging Service (JMS) 2
PDF Übung 11: JMS, AppServer-Konfiguration, xdoclet .
JCA (20) Integration über Adapter: Java Connector Architecture (JCA) 1
Sicherheit (23) Sicherheitsmechanismen in J2EE: Authentisierung ("Wer ist da?"), Authorisierung ("Darf der das?"), Verschlüsselung 1
PDF Übung 12: Sicherheitsmechanismen
.
Webservices (37) Integration über Webservices: SOAP (Fernaufrufe per XML über z.B. http), WSDL (XML-Beschreibungen der Schnittstellen von Webservices), UDDI (Finden von Webservices nach vorgegebenen Kriterien), JAX-RPC (Abbildung zwischen Java Klassen und Webservice-Schnittstellen) 2
PDF Übung 13: Axis, WSDL, Webservice-Aufruf .
Zusammenfassung (--) Zusammenfassung und Übersicht, Sonstiges (Workflow) --
5 Datenhaltungsschicht 2
-- DBMS: relational vs. objektorientiert; Objektmodell vs. Persistenzmechanismus --
JDBC (28) EJB Entity Beans (30, s. oben) andere (11) Persistenzmechanismen: JDBC, EJB Entity Beans, JDO, Apache Torque, Hibernate, Apache OJB, ofbiz Entity Engine 2
experiment.zip, PDF, Fragebogen.pdf, aufgabe_14A_Ergaenzung_Veranstalterversion.pdf, camtasiaf.exe, org.electrocodeogram.sensor.eclipse_0.9.0.zip Übung 14A: Experimentvorbereitung .
6 Nachbemerkungen 0
-- Zusammenfassung und Übersicht; Was nicht behandelt wurde --

Historie des Stoffplans

WS 2005/2006:
  • Weggelassen:
    • -
  • Zugefügt:
    • -
  • Verändert:
    • (nur diverse Kleinigkeiten)

WS 2004/2005:
  • Weggelassen:
    • -
  • Zugefügt:
    • -
  • Verändert:
    • (nur diverse Kleinigkeiten)

WS 2003/2004:
  • erste Durchführung

Software und Dokumentation für die praktischen Übungen

Folien aus den Übungen

(Kommentare)

Wenn Sie Anmerkungen oder Vorschläge zu dieser Seite haben, können Sie sie hier (möglichst mit Datum und Name) hinterlassen:
Topic revision: r13 - 20 Feb 2006, mildePCPOOL.MI.FU-BERLIN.DE
 
  • Printable version of this topic (p) Printable version of this topic (p)