Deadlock mal anders Marc Ruef | 02.03.2009 Im Bereich der Software-Entwicklung fürchten sich erfahrene Programmierer von allem vor einem: Vor einem Deadlock! Hierbei handelt es sich um eine "Verklemmung", die dazu führt, dass die Anwendung ihre gewünschte Arbeitsweise nicht mehr fortsetzen kann. Zum Beispiel weil ein Thread auf eine Ressource zugreift und diese nicht mehr freigibt, zwischenzeitlich aber ein anderer Thread zwingend auf sie zugreifen müsste. Das Ganze endet als Race Condition in einer Denial of Service, die sich im schlimmsten Fall gar absichtlich reproduzieren lässt. Da gerade das Debugging von Multi-Threading Applikationen ein zusätzliches Mehr an Komplexität mit sich bringt, ist jeder Entwickler froh drum, wenn er sich nicht mit derlei Problemen konfrontiert sieht. Deadlocks und Livelocks gibt es jedoch nicht nur in Bezug auf Software. Vor einigen Wochen haben wir ein bekanntes Unternehmen bei der Evaluation und Integration einer komplett neuen Sicherheitsinfrastruktur begleitet. In der ersten Phase haben wir die möglichen architektonischen Entscheidungen bewertet und die Anforderungen an die erforderlichen Produkte dokumentiert. Der Anforderungskatalog an das Produkt liess schlussendlich, dabei hatten wirtschaftliche Überlegungen das grösste Gewicht, nur einen Schluss zu. Wir luden sodann den Hersteller ein, uns in einem Proof-of-Concept die Funktionsweise des Produkts und Machbarkeit des Projekts zu demonstrieren. Nach anfänglichen Startschwierigkeiten, ein Server des Kunden wollte zurst nicht so richtig mitspielen, hat dann aber alles wie gewünscht funktioniert. Da nun sowohl die grundlegende Architektur definiert und das vollständig akzeptierte Produkt ausgewählt war, sollten nun Offerten der fünf unterschiedlichen Integratoren eingeholt werden. Wir verfassten sodann eine Offertanfrage, die sich in erster Linie für die Qualitäten des Partners (z.B. Preis, Aufwand, Können) interessieren sollte. Diskussionen zum Produkt selbst waren, da dieses schon vorgängig definiert und im Prototyping geprüft wurde, nicht gegeben. Einige Tage nachdem die Offertanfragen verschickt wurden, erhielten wir einen Anruf einer der angeschriebenen Integratoren. Wir wurden darüber informiert, dass scheinbar beim Produktehersteller eine Reservation für das Projekt eingegangen sei. Ein anderer Offertsteller hatte sich also bei ihm gemeldet und gesagt, dass er das Projekt durchführen will. Dies führt dazu, dass die anderen Integratoren keine Absprachen mit dem Hersteller tätigen können. Es ist ihnen damit nicht mehr möglich, in angemessener Weise zu offerieren. Ich konnte es zuerst nicht glauben, als ich das gehört habe. Wie kann ein Hersteller sowas nur zulassen? Der für ihn eingebrachte Vorteil ist, dass er stetig über anstehende Projekte durch die Verkäufer informiert wird. Dank diesem Überblick ist es für ihn einfacher, sich auf Projekte besser einstellen zu können. Ressourcen könnten reserviert und weitere Absprachen getroffen werden. Und weshalb strebt ein Verkäufer/Integrator eine solche Reservation an? Voraussichtlich erhält der Partner besser Konditionen, sieht er sich in der Lage ein Projekt anzumelden und zu reservieren. Seine Offerte wird damit mindestens bezüglich der Kosten mit verbesserten Konditionen aufwarten können. Seine Wettbewerbsfähigkeit wird damit erhöht. Doch welcher Vorteil hat nun der Kunde? Gar keinen! Zum einen ist es nicht mehr ohne weiteres möglich, dass die Mitbewerber fachgerecht offerieren können. Derjenige, der sich das Projekt als erstes reservieren liess, bootet damit die Konkurrenten aus. Eine gerechte Ausschreibung, die den qualitativ besten Partner identifizieren lassen soll, wird damit verunmöglicht. Der Kunde müsste nun halt einfach mit derjenigen Firma zusammenarbeiten, die sich den Auftrag als erstes gesichert hat. Doch Geschwindigkeit in Bezug auf eine Reservation ist nun so gar nicht die Eigenschaft, die man von einem nachhaltigen Partner - und dies nicht nur im Sicherheitsumfeld - erwartet. Wir liessen diesen Zustand, der für unseren Kunden lediglich Nachteile mitbringen sollte, nicht zu. Sofort kontaktierten wir den Offertsteller, der sich die Reservation gesichert hat und forderten einen Rückzug der Exklusivität. Ich muss gestehen, dass diese Diskussion sowohl den Hersteller als auch den potentiellen Partner sehr unsympathisch gemacht haben. Eine Firma, die um eine Partnerschaft kämpft, sollte nicht in derlei offensichtlicher Weise nur um die eigenen Vorteile bemüht sein, wobei er die Nachteile seines potentiellen Kunden als Kollateralschaden betrachtet. Das werden hoffentlich die wenigsten Unternehmen tolerieren oder wenigstens nicht honorieren. Wäre ich alle für die Auswahl des Partners zuständig gewesen, hätte ich die in ungnade gefallene Firma sofort und unwiderruflich von zukünftigen Offertanfragen ausgeschlossen.