vielleicht ist ja der ein oder andere auch hier, der schon seine Prüfung als Fachinformatiker hinter sich hat.
Ich habe gerade eine Absage mit folgender Begründung bekommen:
Ferner ist die Zeitplanung in der beantragen Form ungenügend bezogen auf den Umfang. Über dies ist das Erstellen der Projektpräsentation kein Bestandteil der in die Zeitplanung mit eingeht.
Ich tue mir gerade schwer, dies nachzuvollziehen (Projektdokumentation mal auf Seite, auch wenn bei jedem, wo es genehmigt wurde, diese im Zeitmanagement drinn war). Gibt mal euren Senf bitte dazu ab, was die genau beanstanden könnten...
Projektphasen
10 h - Planung der Architektur
25 h - Entwicklung der Netzwerkschnittstelle und eines Testclients
10 h - Test und Qualitätssicherung
15 h - Dokumentation
10 h - Präsentation
= 70 Stunden
Projektumfeld
Die Infrastruktur einer Spieleplattform besteht aus mehreren Servern mit Windows Server 2012 R2. Auf jedem Server werden Spiele nach Kundenauftrag bereitgestellt.
Jedes Spiel besteht aus einer Konsolenanwendung, lokalen Konfigurationsdateien und abhängigen Diensten wie zum Beispiel Datenbanken.
Die einzelnen Dateien zum Ausführen der Spiele sind in einem Zip-Archiv pro Spiel zusammengefasst und werden betrieblich als Anwendungspaket bezeichnet. Es wird ein Repository von verschiedenen Anwendungspaketen geführt.
Im Rahmen des Betriebes der Plattform sind wiederholt Wartungsarbeiten durch den Betreiber notwendig.
Dazu zählen
- Installation/Deinstallation der Anwendungen nach Kundenauftrag
- Neustarten der Anwendungen im Problemfall
- Steuern der Anwendungen durch administrative Befehle
- Konfigurieren der Anwendungen
- Überwachen des Zustandes der Anwendungen und des Servers
Derzeit können diese Wartungsarbeiten nur direkt am Server über eine Remote-Desktop-Sitzung durch den Administrator durchgeführt werden.
Viele Anwendungen können vom Kunden durch Konfigurationen, Plug-Ins und Skripte angepasst werden. Um die Wartung der eigenen Anwendungen durch den Kunden zu ermöglichen, wird eine Verwaltungsschnittstelle benötigt, durch die der Kunde Zugriff auf seine Anwendungen erhält.
Zusätzlich ermöglicht die Schnittstelle auch administrative Wartungsarbeiten durch den Betreiber.
Über eine zentrale Webanwendung können die einzelnen Server angesprochen werden und die jeweiligen Wartungsarbeiten ausgeführt werden. Die Webanwendung bietet die notwendige Benutzeroberfläche und kommuniziert mit den jeweiligen Servern über die Verwaltungsschnittstelle.
Im Rahmen dieses Projektes wird die Verwaltungsschnittstelle realisiert. Die Funktionalität der Webanwendung wird durch eine Desktopanwendung simuliert.
Da unsere Softwarelösungen auf dem .NET Framework basieren, kommt die Technologie WCF für die Kommunikation zwischen Verwaltungsschnittstelle und Webanwendung zum Einsatz. Diese ermöglicht viel Flexibilität für die Client-Server Verbindung.
Projektbeschreibung
Die technische Basis der Schnittstelle ist ein WCF Dienst. WCF ist die Windows Communication Foundation von Microsoft.
Der Dienst, dessen Host, sowie die Desktopanwendung werden in C# entwickelt. Es wird das .Net Framework 4.5 eingesetzt.
Der Dienst wird innerhalb einer Konsolenanwendung gehostet und wird auf jedem Server eingerichtet.
Die technische Grundlage WCF ermöglicht es, mit Diensten auf verschiedenen Servern über verschiedene Protokolle über einen standardisierten Kanal zu kommunizieren. So kann die Schnittstelle sowohl mit NetTCP Binding innerhalb desselben Netzwerkes, als auch mit BasicHttpBinding über das Internet betrieben werden. In WCF kann stets die Kommunikation durch Verschlüsselung abgesichert werden, darauf wird im Rahmen dieses Projektes verzichtet.
Die Schnittstelle beinhaltet u.a. Methoden für folgende Operationen:
- Serverstatus ermitteln: es werden Information über die Serverauslastung ermittelt
- Installation/Update einer Anwendung: ein Anwendungspaket in einem vorhandenen Repository (siehe Projektumfeld) wird vom Dienst geladen und im Kontext einer Installations-Id entpackt.
- Deinstallation einer Anwendung: eine durch die Installations-Id referenzierte Anwendung wird deinstalliert
- Statusabfrage einer Anwendung: der Status einer über die Installations-Id referenzierten Anwendung (z. B. Installationsstatus) wird zurückgegeben
- Schreiben von Dateien: Konfigurationsdateien und -Scripte können erstellt werden. Der Zielort (relativ zum Installationspfad der über die Installations-Id referenzierten Anwendung) und Inhalt der Datei werden übergeben. Als Sicherheitsmaßnahme gegen Schadsoftware, werden keine ausführbaren Dateien akzeptiert. Da es sich um kleine Dateien mit wenigen Kilobyte handelt, kann eine gepufferte Übertragung genutzt werden, ein Streaming ist dafür nicht notwendig.
- Löschen von Dateien: Dateien können ähnlich wie beim Schreibvorgang mittels Pfadangabe entfernt werden
- Starten/Stoppen der Anwendung: eine durch die Installations-Id referenzierte Anwendung kann mit übergebenen Startparametern gestartet bzw. gestoppt werden.
- Befehl an eine Anwendung senden: ein übergebener Befehl wird in den StdIn Stream eine durch die Installations-Id referenzierte Anwendung geschrieben.
- Ausgabe einer Anwendung erhalten: der StdOut Stream einer durch die Installations-Id referenzierten Anwendung wird zurückgegeben.
Weiterhin soll die Schnittstelle selbstständig in regulären Abständen überprüfen, ob alle gehosteten Anwendungen noch reagieren. Sollte eine bestimmte Anwendung nicht reagieren, wird diese neugestartet. Eine Verbindung zur Webanwendung ist hierfür nicht notwendig.
Um den Zugriff auf die Schnittstelle zu demonstrieren und diese zu testen wird außerdem ein Democlient realisiert, der die Webanwendung simuliert. Dieser wird den WCF Service konsumieren, und alle möglichen Operationen darauf ausführen.
Als „Naming Convention“ wird den Empfehlungen von Microsoft gefolgt werden. Außerdem ist der DataContract und der ServiceContract mittels „XML Documentation Comments“ zu dokumentieren.
Zum Abschluss soll eine Technische Dokumentation für Entwickler angefertigt werden, welche mit kurzen Codebeispielen die Funktionalität der Schnittstelle zeigt.