Pro­jek­te.

Im Fol­gen­den fin­den Sie einen klei­nen Aus­zug unse­rer mit Kom­pe­tenz und Begeis­te­rung umge­setz­ten Pro­jek­te. Wir freu­en uns auf Ihre Anfrage!

Pro­jekt

Erstel­lung eines Release-Installations-Programms

Auf­ga­be

Erstel­len einer Lösung zur Ver­ein­fa­chung von Soft­ware­instal­la­tio­nen im Rah­men eines Release in einem Team einer bun­des­wei­ten deut­schen Behör­de. An einem Wochen­en­de müs­sen auf allen Sys­te­men (ca. 170.000 Cli­ents und ~2.500 Ser­ver) alle benö­tig­ten Soft­ware­pa­ke­te (~50) instal­liert wer­den. Auf­grund der poli­ti­schen Wich­tig­keit muss das best­mög­li­che Ergeb­nis erzielt wer­den. Die Benut­zer müs­sen nach dem Instal­la­ti­ons­wo­chen­en­de einen funk­tio­nie­ren­den Arbeits­platz vorfinden.

Umge­bung

Bun­des­wei­te Behör­de mit 140.000 Cli­ents und 1.500 Ser­vern (Win­dows); Micro­soft Sys­tem Cen­ter Con­fi­gu­ra­ti­on Mana­ger (hier: CM)

Lösung

Pla­nung und Ent­wick­lung eines Pro­gramms mit VB.NET, das selb­stän­dig auf jedem Sys­tem alle benö­tig­ten Soft­ware­pa­ke­te ermit­telt, lokal spei­chert und zum Instal­la­ti­ons­zeit­punkt zuver­läs­sig aus­führt. Die Inter­ak­ti­on mit dem CM ist essen­ti­ell, sei es beim Iden­ti­fi­zie­ren der Soft­ware­pa­ke­te, Her­un­ter­la­den in einen loka­len Cache oder beim Report­ing des Installationsergebnisses.

Ergeb­nis

Das ent­wi­ckel­te Pro­gramm iden­ti­fi­ziert anhand der Eigen­schaf­ten des loka­len Sys­tems die benö­tig­te Soft­ware, ermit­telt aus den zur Ver­fü­gung ste­hen­den Infor­ma­tio­nen die zu ver­wen­den­den Soft­ware­de­pots, spei­chert die Soft­ware lokal und instal­liert sie mit allen not­wen­di­gen Reboots. Anschlie­ßend wird das Instal­la­ti­ons­er­geb­nis über CM zurückgemeldet. 

Auch nach mehr als zehn Jah­ren wer­den damit durch­gän­gig mehr als 95% aller Sys­te­me erfolg­reich mit allen benö­tig­ten Soft­ware­pa­ke­ten ver­sorgt. Durch die­se Metho­dik ist es mög­lich, selbst in einer sehr gro­ßen CM Umge­bung die Anzahl der Coll­ec­tions und Deploy­ments über­schau­bar zu hal­ten und den­noch ein sehr gutes Instal­la­ti­ons­er­geb­nis zu erzielen.

Pro­jekt

Erstel­lung eines Pro­xy Diens­tes zur Abfra­ge von CM Infor­ma­tio­nen zur Lastverteilung

Auf­ga­be

Für die dezen­tra­le Soft­ware­ver­sor­gung müs­sen stän­dig und zeit­gleich Daten aus der MS SQL Daten­bank des Con­fi­gu­ra­ti­on Mana­gers abge­fragt wer­den. Für eine Ent­las­tung des SQL Ser­vers muss eine Lösung ent­wi­ckelt wer­den, die sicher­stellt, dass die zu ver­sor­gen­den Sys­te­me zuver­läs­sig die­se Daten ermit­teln können.

Umge­bung

Bun­des­wei­te Behör­de mit 150.000 Cli­ents und 2.000 Ser­vern (Win­dows); Micro­soft Sys­tem Cen­ter Con­fi­gu­ra­ti­on Mana­ger (hier: CM)

Lösung

Erstel­lung eines Win­dows-Diens­tes mit C#, der auf meh­re­ren Ser­vern imple­men­tiert wird, zyklisch die benö­tig­ten Daten aus der CM Daten­bank ermit­telt und sie für anfra­gen­de Cli­ents bereit­hält. Somit wird der SQL Ser­ver maxi­mal ent­las­tet. Die­ser Dienst muss zuver­läs­sig funk­tio­nie­ren und mit­tels Fall­back-Mecha­nis­men sicher­stel­len, dass ein tem­po­rä­rer Aus­fall der CM Daten­bank kei­ne Aus­wir­kung hat.

Ergeb­nis

Der ent­wi­ckel­te WCF Ser­vice liest zyklisch alle not­wen­di­gen Infor­ma­tio­nen (Soft­ware­pa­ke­te, Poli­ci­es, Deploy­ments) aus der CM Daten­bank, hält sie lokal vor und gibt sie an die anfra­gen­den Sys­te­me zurück. Nach einer (kon­fi­gu­rier­ba­ren) Zeit gel­ten die Infor­ma­tio­nen als ver­al­tet und wer­den erneut aus der CM Daten­bank gele­sen. Im Feh­ler­fall wer­den die Daten noch eine wei­te­re Zeit zurück­ge­ge­ben bis die nächs­te Dead­line über­schrit­ten ist. Der Dienst schreibt aus­führ­li­che Log-Datei­en und erzeugt Ein­trä­ge ins Win­dows Event Log. Die­se wer­den über­wacht, sodass bei einem Aus­fall Tickets erzeugt wer­den können.

Pro­jekt

Ent­wick­lung einer Biblio­thek als Schnitt­stel­le zu einer MS SQL Datenbank

Auf­ga­be

Für die Inter­ak­ti­on ver­schie­de­ner selbst­ent­wi­ckel­ter Tools mit einer bestehen­den Paket­ver­wal­tungs-Daten­bank wird eine Biblio­thek mit allen not­wen­di­gen Funk­tio­nen benö­tigt. Die­se Abs­trak­ti­ons­schicht ver­ein­facht die Ver­wen­dung der MS SQL Daten­bank für alle Kon­su­men­ten und stellt die Kon­sis­tenz der Daten­bank sicher.

Umge­bung

MS SQL Ser­ver; .NET Frame­work (Enti­ty Framework)

Lösung

Mit­tels Enti­ty Frame­work wer­den die Daten­bank­ob­jek­te (Tabel­len, Views, Stored Pro­ce­du­res) in einem ORM Modell dar­ge­stellt und um zusätz­li­che Funk­tio­nen erwei­tert. Dadurch wird für ande­re Tool­ent­wick­ler die Ver­wen­dung der Daten aus der Paket­ver­wal­tungs-Daten­bank vereinfacht.
In den hin­zu­ge­füg­ten Funk­tio­nen kann zusätz­li­che Busi­ness-Logik imple­men­tiert wer­den, sowie Plau­si­bi­li­täts­prü­fun­gen zur Sicher­stel­lung der Datenkonsistenz. 

Ergeb­nis

Das Ergeb­nis ist eine .NET Assem­bly (DLL) mit allen benö­tig­ten Objek­ten und Funk­tio­nen, die ste­tig wei­ter­ent­wi­ckelt und an bestehen­de Daten­bank­struk­tu­ren ange­passt wird. Die­se Abs­trak­ti­ons­schicht ermög­licht es ande­ren Ent­wick­lern, die Daten­bank zu ver­wen­den ‑auch ohne genaue Kennt­nis über die Daten­bank­struk­tur. Zusätz­lich wur­de ein Power­shell-Cmd­let ent­wi­ckelt, mit des­sen Hil­fe sich die Daten auch aus einer Power­shell-Kon­so­le abfra­gen lassen.

Pro­jekt

Ent­wick­lung einer Schnitt­stel­le für CM-Deployments

Auf­ga­be

Für die Benut­zer mobi­ler Sys­te­me ist es wich­tig, bereits vor dem Start einer Instal­la­ti­on infor­miert zu wer­den, damit sie den Instal­la­ti­ons­pro­zess best­mög­lichst unter­stüt­zen können.

Umge­bung

Win­dows 10/11; CM Agent; WMI

Lösung

Das Pro­gramm ermit­telt anste­hen­de Deploy­ments aus den ent­spre­chen­den WMI-Klas­sen des CM Agen­ten, bringt sie zuein­an­der in Bezie­hung und spei­chert das Ergeb­nis gebün­delt in einer selbst defi­nier­ten WMI-Klasse.

Ergeb­nis

Die Daten wer­den inven­ta­ri­siert und kön­nen hin­sicht­lich Feh­ler, Fort­schritt oder Sta­tus­wer­den aus­ge­wer­tet wer­den. Für den Benut­zer die­nen die Wer­te über ent­spre­chen­de Anzei­ge­tools gra­fisch auf­be­rei­tet als Informationsquelle.

Geschäfts­füh­rer

Andre­as Roß

Sie haben Fra­gen? Ich bin ger­ne für Sie da!