Seminar aus Softwareentwicklung (Inside Java and .NET)

338.177 02 Mössenböck Block; Vorbespr. 13.10. 16:00, HF9905



Thema

In den letzten Jahren haben sich die Java-Technologie sowie die .NET-Plattform von Microsoft als Konkurrenten etabliert. Beide basieren auf einer Virtuellen Maschine, die Dienste wie Garbage Collection, Threading oder Sicherheit zur Verfügung stellt. Ziel dieses Seminars ist es, die Java VM sowie die .NET Common Language Runtime zu studieren und zu vergleichen. Dabei soll auch ins Innere der Virtuellen Maschinen vorgedrungen werden, um ihre Architektur und die beteiligten Algorithmen zu verstehen.

Ablauf

Ein Seminar ist eine Veranstaltung, in der sich die Teilnehmer selbständig mit ausgewählten Themen beschäftigen und sie wissenschaftlich aufarbeiten. Dies umfaßt das Studium der angegebenen Literatur, die selbständige Suche nach weiterer Literatur, die Erstellung eines etwa 15 Seiten langen Seminarberichts sowie ein etwa 35-40 Minuten langer Vortrag über das Thema (ca. 15 Folien). Es wird erwartet, daß die Teilnehmer aus der manchmal sehr umfangreichen Literatur die wesentlichen Inhalte des Themas herausschälen, sie in übersichtlicher und verständlicher Form präsentieren und möglichst auch kritisch beurteilen und hinterfragen.

Das Seminar findet an vier Halbtagen geblockt statt, an denen die Teilnehmer ihre Vorträge halten. Am Ende des Seminars ist zusätzlich der schriftliche Seminarbericht abzugeben. Die Anwesenheit an allen Seminarterminen ist Pflicht. Die Note wird aus dem Vortrag, dem Seminarbericht und der Beteiligung an der Diskussion ermittelt.

Seminarbericht und Vortragsfolien

Der Seminarbericht im Umfang von etwa 15 A4-Seiten kann in Word, PDF oder HTML in elektronischer Form geliefert werden und wird auf der Webseite dieser Lehrveranstaltung publiziert. Wenn Sie den Bericht in HTML abgeben, packen Sie alle Dateien in ein Verzeichnis mit Ihren Nachnamen und erstellen Sie eine Startseite namens index.html. Die Seminarberichte sind am 31. Jänner 2004 fällig.

Auch die Folien Ihres Vortrags sind spätestens am Tag des Vortrags in elektronischer Form abzugeben und werden auf der Webseite dieser Lehrveranstaltung publiziert.

Versuchen Sie sowohl im Seminarbericht als auch in Ihren Folien das Thema mit eigenen Worten darzustellen. Es ist meist nicht möglich, auf alle Details einzugehen. Versuchen Sie daher, das Wesentliche herauszuschälen. Beispiele und Bilder sind sehr willkommen. Reine Textfolien sind möglichst zu vermeiden.

Christian Schwarzbauer Die Architekur der Java VM Folien Seminararbeit
Martin Gamsjäger Java-Bytecodes Folien Seminararbeit
Johanna Fitzinger Java-Security Folien Seminararbeit
Beatrix Studierach Java-Klassendateien Folien Seminararbeit
Reinhard Stumptner Dynamisches Laden und Binden in Java Folien Seminararbeit
Angelika Kusel Java Garbage Collection Folien Seminararbeit
Norbert Wiener Exception Handling in Java Folien Seminararbeit
Angelika Brückl Java Thread Synchronisation Folien Seminararbeit
Gertraud Orthofer Die Architektur der Common Language Runtime Folien Seminararbeit
Wolfgang Fischereder Common Intermediate Language Folien Seminararbeit
Brigitte Rafael .NET Security Folien Seminararbeit
Rene Löschl .NET Assemblies und Metadaten Folien Seminararbeit
August Steinbacher Linker und Lader unter .NET Folien Seminararbeit
Benjamin Kaineder Garbage Collection unter .NET Folien Seminararbeit
Daniel Grünberger Threading unter .NET Folien Seminararbeit

Themen

Freitag, 5.12.2003, 13:45 - 17:00, BA 9908

1. Die Architektur der Java-VM (Schwarzbauer)
Stichworte: Datentypen, Stack, Heap, Class Loader Subsystem, Execution Engine, JNI
- [Yel97] Kap.3
- [Ven99] Kap. 5
- http://wwws.sun.com/software/solaris/java/wp-hotspot/

2. Java-Bytecodes (Gamsjäger)
Stichworte: Klassen von Instruktionen, Instruktionssatz an Hand von Beispielen erklären
- [Yel97] Kap.6
- [Ven99] Kap. 10-16, 19

3. Java Security (Fitzinger)
Stichworte: Verifier, Signing, Protection Domains, Access Controller
- [Ven99] Kap. 3
- [YeL97] Kap 4.9
- http://java.sun.com/sfaq/verifier.html
- http://java.sun.com/marketing/collateral/security.html

4. Java-Klassendateien (Studierach)
Stichworte: Strings, Constant Pool, Attribute, EBNF der Klassendatei
- [YeL97] Kap. 4
- [Ven99] Kap. 6

Samstag, 6.12.2003, 8:30 - 11:45, BA 9908

5. Dynamisches Laden und Binden in Java (Stumptner)
Stichworte: Lebenszyklus von Klassen und Objekten, Constant Pool Resolution, Eigene Lader
- [Ven99] Kap. 7+8
- [YeL97] Kap.5
- http://www.javaworld.com/javaworld/javaqa/2003-06/01-qa-0606-load.html
- http://www.javageeks.com/Papers/ClassForName/ClassForName.pdf
- http://www.javaworld.com/javaworld/javaqa/2003-03/01-qa-0314-forname.html

6. Java-Garbage-Collection (Kusel)
- [Ven99] Kap. 9
- [GrS94] Kap.4
- http://java.sun.com/docs/hotspot/gc/
- http://java.sun.com/products/hotspot/docs/whitepaper/Java_Hotspot_v1.4.1/Java_HSpot_WP_v1.4.1_1002_2.html
- http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html

7. Exception Handling in Java (Wiener)
- [Ven99] Kap. 17+18
- [YeL97] Kap. 2.15

8. Java Thread Synchronization (Brückl)
- [Ven99] Kap. 20
- [YeL97] Kap.8

Freitag, 12.12.2003, 13:45 - 17:00, BA 9908

9. Die Architektur der Common Language Runtime (Orthofer)
Stichworte: Datentypen, CLS, CTS, VES, Stack, Heap
- [BBMW02] Kap.3 (ohne Metadaten, Assemblies und Sicherheit)
- [CLI] Part I, Kap. 6-8, 12
- [Bur02] Kap. 1-2
- [Ric02]
- http://msdn.microsoft.com/netframework/using/Understanding/default.aspx

10. Common Intermediate Language (Fischereder)
Stichworte: Überblick über den Instruktionssatz, wichtigste Konzepte, Unterschiede zu Java, Beispiele
- [Bur02] Kap.5
- [Gou02] Kap.2 (Base Instruction Set), Kap.8-9, App.B
- [CLI] Part 3

11. .NET Security (Rafael)
- [BoS03] Kap. 9
- [Bur02] Kap.16
- [BBMW02] Kap.3 (Sicherheit)
- [HoL03] Kap.18
- http://msdn.microsoft.com/netframework/using/Understanding/default.aspx

12. .NET-Assemblies und Metadaten (Löschl)
- [Bur02] Kap.4
- [Gou02] Kap.2 (Structure of an Assembly)
- [BBMW02] Kap.3.5 und 3.6
- [CLI] Part 1, Kap.9; Part 2, Kap.6

Samstag, 13.12.2003, 8:30 - 11:00, BA 9908

13. Linker und Lader unter .NET (Steinbacher)
- [BoS03] Kap.2 (ohne Assembly-Grundlagen)
- .NET-SDK-Online-Dokumentation (insbesondere Klasse Assembly)
- [SNS03] Kap.5

14. Garbage Collection unter .NET (Kaineder)
Stichworte: Lebenszyklus eines Objekts, Garbage Collection, Finalization
- [Bur02] Kap.10
- http://msdn.microsoft.com/library/default.asp?url=/msdnmag/issues/1100/gci/toc.asp
- http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx
- [Bos03] S.143-151
- [SNS03] Kap.7

15. Threading unter .NET (Grünberger)
- [Bur02] Kap.11
- [Bos03] Kap.8
- [SNS03] Kap.6

Literatur

Die hier angegebene Literatur kann im SSW-Sekretariat eingesehen und auszugsweise kopiert werden.

[Arc01]Tom Archer : Inside C#, Microsoft .NET, Microsoft Press, 2001
[BBMW02]W.Beer, D.Birngruber, H.Mössenböck, A.Wöß: Die .NET-Technologie, dpunkt.verlag 2002
[BoS03]Don Box, Chris Sells: Essential .NET, The Common Language Runtime, Addison-Wesley 2003
[Bur02]Kevin Burton: .NET Common Language Runtime Unleashed, Sams Publishing 2002
[CLI]ECMA-335 Standard: Common Language Infrastructure
http://www.ecma-international.org/publications/standards/ecma-335.htm
[Gou02]John Gough : Compiling for the .NET Common Language Runtime, Prentice Hall, 2002
[GrS94]The Train Algorithm. In Steffen Grarup, Jacob Seligman: Incremental Mature Garbage Collection, Chapter 4, Technical Report, Aarhus University, 1994
[HoL03]Michael Howard, David LeBlanc: Writing Secure Code. Microsoft Press, 2003
[Lid02]Serge Lidin : Inside Microsoft .NET IL Assembler, Microsoft Press, 2002
[Ric02]Jeffrey Richter: Applied .NET Framework Programming. Microsoft Press, 2002
[SNS03]Dave Stutz, Ted Neward, Geoff Shilling: Shared Source CLI Essentials. O'Reilly 2003
[Ven99]Bill Venners : Inside the Java 2 Virtual Machine, McGraw Hill, 1999
[Ven99a]http://www.artima.com/insidejvm/resources/
[YeL97]Frank Yellin, Tim Lindholm: The Java Virtual Machine Specification, Addison-Wesley 1997