Thomas Wölfers Baustatik-Blog

Thomas Wölfers Baustatik Blog

So bauen wir die Installationsprogramme


Nachdem wir ja relativ häufig neue Funktionen per Update der Baustatik zur Verfügung stellen, braucht es natürlich einen Mechanismus, mit dem man die Herstellung der Installationsprogramme automatisieren kann. Bau uns läuft das einfach mit einem Batch-Job ab, der verschiedene eigene und 3rd Party Tools nacheinander aufruft.

Zunächst mal holt der Job die aktuellen Quellcode-Dateien aus unserem Revision Control System (Wir verwenden VSTS, und als Kommandozeilen-Tool Tf). Danach wird zunächst die 32bit, dann die 64bit Version der Baustatik per MSBuild erstellt.

Im nächsten Schritt – ebenfalls per MSBuild, und unter Verwendung von WiX, werden die Windows-Installer Pakete (MSI) in einer 32 und einer 64bit Version erzeugt. Die werden dann im nächsten Schritt in das “Setup.exe” verpackt, mit dem die ausgeliefert werden.

Dieses Setup.exe ist das Paket, das man erhält, wenn man die Software manuell von der Webseite herunterlädt, oder von der CD installiert.

Im nächsten Schritt baut eines von unseren Tools noch die Pakete, die für die “vollautomatischen” Updates benötigt werden. Diese Pakete und das setup.exe werden dann auf unseren Webserver hochgeladen und veröffentlicht. Der letzte Schritt – der ist noch manuell, wird dann die neue Version öffentlich gemacht, indem die Änderungen in dieser Version im Update-Protokoll eingetragen werden.


Das monatliche Update ist verfügbar


Ab sofort kann das monatliche Update von unserem Server heruntergeladen werden. Wer an den automatischen Updates teilnimmt, bekommt das Update auf Version vollautomatisch.

Im großen und ganzen enthält dieses Update eine handvoll kleinerer Ausbesserungen von Fehlern, die nur bei einzelnen Kunden aufgetreten waren. Davon ab ist drin:


So funktionieren die automatischen Updates


Die Baustatik verfügt über einen Mechanismus, mit dem das Programm automatisch immer auf dem neuesten Stand gehalten wird. Nachdem wir im allgemeinen jeden Monat ein Update (Update-Protokoll ) veröffentlichen, ist das eine ganz praktische Sache.

Dabei gibt es 2 Modi bei den automatischen Updates:

a) Die Installation erfolgt mit Interaktion des Anwenders
b) Die Installation erfolgt zu 100% vollautomatisch: Die neue Version ist “einfach da”

Die erste Geschmacksrichtung kommt immer dann zum Zuge, wenn wir im Rahmen der Installation auch neue Systemvoraussetzungen installieren müssen. Das ist nur selten der Fall, nämlich im wesentlichen, wenn wir auf unserer Seite die Entwicklungswerkzeuge upgedatet haben. Der zweite Fall ist der “normale” – damit werden die meisten Updates verteilt.

Die Sache funktioniert im Wesentlichen so: Auf den Workstations, auf denen unsere Software installiert ist, wird auch ein Windows-Dienst namens “BaustatikUpdateService” installiert. Dieser Dienst verbraucht praktisch keine Ressourcen, da er nahezu immer “schläft”. Circa zweimal pro Tag wacht er aber auf und tut folgendes:

  • Er ermittelt die Version der aktuell lokal installierten Baustatik
  • Er überprüft mit Hilfe unseres Webservers, ob dieser eine neuere Version vorliegen hat.
  • Wenn es eine neuere Version gibt, wird das zugehörige Installationspaket heruntergeladen, und in einem bestimmten Ordner gespeichert. (Es sei denn, das ist zuvor schon geschehen.)
  • Wenn es sich um ein Update mit Geschmacksrichtung ‘A’ handelt, stellt der Dienst dann seine Arbeit ein. Beim nächsten Start der Baustatik findet diese ihrerseits das bereits lokal vorliegende Update und bietet es zur Installation an.
  • Bei einem Update mit Geschmacksrichtung ‘B’ überprüft der Dienst dann, ob die Baustatik gerade betrieben wird. Ist das der Fall, wartet er bis zum nächsten Wachzyklus.
  • Ist die Baustatik nicht in Betrieb, ersetzt der Dienst alle zugehörigen Dateien durch ihre neuen Versionen: Beim nächsten Start der Baustatik ist diese dann upgedatet.

Kundenbeispiel zur Lastweiterleitung


Ich habe ja selbst schon ein paar Beispiele für die Lastweiterleitung in der Baustatik gepostet, aber das waren meist Beispiele wo die Lasten aus einem Dokument in ein zweites geleitet wurden. Die Lastweiterleitung kann aber natürlich mehr – wie man bei diesem Beispiel vom Büro Szillat sehen kann.

weiterleitung

Hier nehmen 16 Platten und Durchlaufträger an der Lastweiterleitung teil – also über mehrere Stockwerke und aus mehreren räumlichen Positionen. (Den Zusammenhang sieht man in der Weiterleitungs-Ansicht im Screenshot)


Noch ein kleines Update


Wir haben gerade nochmal ein Update mit einer kleineren Änderung veröffentlicht. Die neue Version 150 korrigiert ein Problem mit dem neuen Installationsprogramm. Die Registry-Keys für den TimeServer wurden nicht mit den richtigen Rechten ausgestattet. Kunden, die “spezielle” Konfigurationen für die Kommunikation mit dem TimeServer benötigten, konnten diese darum nicht einstellen. Dieses Update beseitigt das Problem.


Gleich: Wiesn


WP_20150927_15_48_03_Pro

… bin morgen möglicherweise nicht so ganz fit Smiley