Thursday, December 21, 2006

Projektgruppen im Sommersemester 2007

Mit dem Vorlesungsverzeichnis (Master-Statisik in der Kurzfassung ist hier verfügbar) wurden auch die neuen Projektgruppen angekündigt.

Bisher sind demnach geplannt:

  • Refactor (SWT) von Prof. Wehrheim
  • Computer Vision (SWT) von Prof. Kleine Büning
  • Model Cockpit (SWT) von Prof. Engels
  • Simulationsbegleitende Modellierung von Fertigungssystemen in 3D-Umgebungen (MUA) von Prof. MudH
  • Neue Architekturen kollaborativer Systeme (MMWW) von Hampel
  • Unterstützung des betrieblichen Softwareeinsatzes durch E-Learning (MMWW) von Dohmen
  • Praktische Informatik (SWT) von Kastens
  • AVESTA - Algorithmen für Verkehrssteuerung auf Autobahnen (MUA) von Monien

Das sieht erstmal nach keinem zu schlechen Angebot aus. Aber es gibt keine einzige neue Projektgruppe im Bereich "Eingebettete Systeme und Systemsoftware".

Deshalb hier nochmal mein Aufruf: Bitte, geht in euch und bietet auch dieses Semester Projektgruppen (in ESS) an!

Ansonsten ist meine Entscheidung in welchem Bereich ich vertiefen werde, wohl gefallen. Das Vorlesungsangebot in ESS ist in dem Bereichen Paralelle System/Systemsoftware/Netzwerke also alles aus ESS, dass nicht zu den eingebetteten Systeme gehört, ziemlich mau und es gibt ebenfalls keine Projektgruppe. SWT, ich komme.

Statistik über die Mastermodule im Sommersemester 2007 - Kurzbetrachtung

Heute wurde das vorläufige Vorlesungsverzeichnis für das Sommersemester 2007 veröffentlicht.

Vor dem letzten Semester habe ich eine kleine Statistik über die Mastermodule veröffentlicht, die sehr erfolgreich gewesen ist. Auch durch die Statistik animiert haben sich Professoren des Bereiches MMWW noch einige Veranstaltungen zusätzlich angeboten.

Ich plane natürlich die erfolgreiche Master-Statistik vom letzten Semester zu wiederholen. Hier schon mal die Kurzversion also die Veranstaltungen nur für das nächste Semester:

III.1.1 Softwaretechnik I
- Modelchecking (Kindler)
- Seminar: Software Engineering für Automotive Systeme (Giese)

II.1.2 Softwaretechnik II
keine Veranstaltung

III.1.3 Sprachen und Programmiermethoden
- Generating Software form Specifications (Kastens)
- Prolog mit Anwendungen in Interpreterbau und Sprachverstehen (Böttcher)

III.1.4 Semantik und Verifikation
- Modelchecking (Kindler)
- Petri nets (Kindler)

III.1.5 Datenbanken und Informationssysteme
- Databases and information systems (Böttcher)
- Prolog mit Anwendungen in Interpreterbau und Sprachverstehen (Böttcher)
- Seminar: Kompression, Streaming und Caching von XML-Daten (Böttcher)

III.1.6 Data and Knowledge Engineering
keine Veranstaltung

III.1.7 Wissensbasierte Systeme
- Heuristische Suchverfahren (Lettmann)
- Propositional Proof Systems (Kleine Büning)
- Prolog mit Anwendungen in Interpreterbau und Sprachverstehen (Böttcher)

III.1.8 Intelligente Systeme
- Heuristische Suchverfahren (Lettmann)

III.2.1 Algorithmen I
- Datenverwaltung in Rechnernetzen (MadH)
- Algorithmen in der Computergrafik (Fischer)
- Heuristische Suchverfahren (Lettmann)
- Algorithmische Codierungstheorie (Blömer)
- Graphalgorithmen (Elsässer)
- Seminar: Randomisierte Algorithmen (Fischer, MadH)

III.2.2 Algorithmen II
- Datenverwaltung in Rechnernetzen (MadH)
- Algorithmen in der Computergrafik (Fischer)
- Algorithmische Codierungstheorie (Blömer)
- Graphalgorithmen (Elsässer)
- Seminar: Randomisierte Algorithmen (Fischer, MadH)

III.2.3 Berechenbarkeit und Komplexität
keine Veranstaltung

III.2.4 Algorithmen in Rechnernetzen
- Datenverwaltung in Rechnernetzen (MadH)
- Seminar: Randomisierte Algorithmen (Fischer, MadH)

III.2.5 Codes und Kryptographie
- Cryptographic Protocols (Blömer)
- Algorithmische Codierungstheorie (Blömer)

III.2.6 Optimierung
- Simplex und Graphalgorithmen

MUA ohne Einordnung:
- Algorithmic Game Theory (Mavronicolas)
- Approximationsalgorithmen (Schröder)
- Seminar: Algorithmic Game Theory (Mavronicolas)

III.3.1 Verteilte Rechnersysteme
- Ad hoc und Sensornetze (Karl)

III.3.2 Systemsoftware
keine Veranstaltung

III.3.3 Rechnernetze
- Ad hoc und Sensornetze (Karl)

III.3.4 Eingebettete Systeme
- Real Time Operating Systems (Rammig)
- Intelligenz in eingebetteten Systemen (Kleinjohann)
- Modelchecking (Kindler)
- Algorithmens in Manufacturing Systems (El-Kebbe)

III.3.5 HW/SW-Codesign
keine Veranstaltung

III.3.6 Eingebettete- und Echtzeitsysteme
- Real Time Operating Systems (Rammig)
- Intelligenz in eingebetteten Systemen (Kleinjohann)
- Algorithmens in Manufacturing Systems (El-Kebbe)

III.4.1 Grafische Datenverarbeitung
- Computer Graphics II (Domik)
- Seminar: Rendering von Volumen (Domik)

III.4.2 Informatik und Gesellschaft
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)
- Seminar: Assistierende Technologien (Tauber)

III.4.3 Konzepte digitaler Medien
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)

III.4.4 Computer gestützte kooperative Zusammenarbeit und Lernen
- Softwareergonomie (Keil)
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)

III.4.5 Entwicklung von Benutzungsschnittstellen
keine Veranstaltung

III.4.6 Mensch-Maschine-Wechselwirkung
- Softwareergonomie (Keil)
- Seminar: Assistierende Technologien (Tauber)

III.4.7 Mensch-Computer-Interaktion
- Softwareergonomie (Keil)
- Seminar: Kooperations als Phänomen und Instrument in Wirtschaft und Informatik (Krüger)
- Seminar: Assistierende Technologien (Tauber)

Veranstaltungen ohne erkennbare Einordnung:
- Stufenbezogenen Unterrichtsmodelle - Prolog (Lehner)

Erstes Fazit:
Auf den ersten Blick bin ich natürlich von dem Angebot in MMWW positiv überrascht. Dort sind wirklische Verbesserungen eingetreten. Das Angebot in MUA ist bekannt gut.
Auch in SWT wird subjektiv mehr angeboten als im WS06/07.
Etwas enttäuscht bin ich persönlich (als jemand der zwischen ESS und SWT als Vertiefungsgebiet schwankt) von dem Angebot in ESS. Module III.3.1, III.3.2 und III.3.3 fast leer? Das ist schade.
Mir ist bewußt, dass a) Professor Kao fehlt und b) Professor Karl in diesem Semester extrem viele Veranstaltungen angeboten hat. Trotzdem ist die Entwicklung von 150% auf 0% in diesen Modulen bedauerlich.

Artikel über SQLite und der SQLite ADO.NET Provider

Peter Bromberg (Blog: Peters’ Unblog) stellt in dem Artikel "Experimenting With SQLite and the SQLite ADO.NET Provider" auf eggheadcafe.com seine Erfahrungen mit der Desktop-Datenbank-Enigne SQLite und die Anbindung an .NET-Anwendungen mit einem eigenen ADO.NET-Provider vor.

SQLite ist eine Datenbankengine, die hauptsächlich in Desktop- oder kleinen Webanwendungen eingesetzt wird und im Prozessraum der Anwendung läuft (im Gegensatz zu anderen Datenbanken wie MySQL, die i.d.R. über Sockets angesprochen werden).
Trotzdem sei SQLite ziemlich ausgereift und implementiert auch große Teile des SQL92-Standards.

Über einen eigenen ADO.NET-Provider lässt sich SQLite auch direkt an .NET anbinden. Für .Net-Entwickler ist dies nahezu ein KO-Kriterium.

Peter führt mit einer minimalen Blog-Anwendungen einen kleinen Stresstest für die Datenbank durch und kommt zu dem Schluss

SQLite, combined with the current iteration of the Finisar SQLite.NET Provider, represents an interesting alternative where low to moderate usage stress is likely, and is an attractive alternative to MSAccess, MSDE, MySQL and SQL Server where an open-source, well-supported "low footprint" zero-impact deployment database engine is needed. There is a growing amount of community open-source support, and the engine has had extensive testing. It’s also being released with PHP 5.0 as "part of the package", indicating broad support in the development community. You can expect to see more offerings related to SQLite, as well as possibly a 100% Managed-code implementation. In addition, expect to see the developer community fully implement SQLite for the Compact Framework, making this an attractive and very compact offering for CF applications employing easily - deployable local data stores.

Für die relationale Datenhaltung in Desktop-Anwendungen empfiehlt Microsoft die eigene kostenlose Datenbankengine SQL Server Express, eine Version des SQL Servers aber ohne die Möglichkeit des Remotezugriffes und andere Features für den Server-Betrieb.

SSE besticht natürlich durch eine exzellente Einbindung in Visual Studio, hat aber den großen Nachteil, dass die Software extrem groß und umfangreich ist (60 MB Download entgegen ca. 320 KB für die SQLite-Bibliothek) und als eigenen Service im System installiert wird.

Nach einigen Problemen mit inkonsistenten Datenbankendateien mit SSE in einem Projekt, sieht SQLite für mich als eine sehr gute Alternative zu dem SQL Server Express aus, die ich sobald wie möglich testen möchte.

Bei Google Video gibt es das Video "An Introduction to SQLite" aus der "Google Talks"-Reihe in der die Datenbankengine vorgestellt wird. Freilich ohne auf die Bindung an .NET einzugehen.

Tuesday, December 19, 2006

Architektur von eBay

Auf der Konferenz SD Forum 2006 haben zwei eBay-Architekten mit der Präsentation "The eBay Architecture"(pdf) die Architektur vorgestellt mit der eBay eine Milliarde Page Views pro Tag, 2 Petabytes Daten und und 212 Millionen registrierte Benutzer bewerkstelligt.
Die Slides wurden im Blog "Adding Simplicity - An Engineering Mantra" von eBay-Architekt Dan Pritchett veröffentlicht.

Es ist interessant zu sehen wie eBay diese Aufgaben bewältigt und wie sich die Architektur von eBay im Laufe der Jahre verändert hat.

Besonders interessant finde ich den Abschnitt "Scale the Data Tier", weil eBay bei der Datenhaltung gege viele Dogmen, die man so in Vorlesungen wie "Datenbanken", DBIS und so vermittelt bekommt, verstößt.
eBay verlagert alle CPU-intensiven Arbeiten in die Anwendungsschicht z.B. die Sicherstellung der referentiellen Integrität, Joins und das Sortieren der Daten.
Es werden absolut keine client-seitigen Transaktionen oder verteilte Transaktionen verwendet. Auf diese Weise werden Deadlocks vermieden und Schreiboperationen können verschränkt werden.

Weitere Blog-Einträe über die eBay-Architektur-Präsentation: