Daten allüberall
Das zweite Jahr dieses Blogs will ich mit einem Thema beginnen, daß in den letzten Wochen heiß diskutiert wurde. Immer wieder tauchenDaten an Stellen auf, wo sie eigentlich nicht hin gelangen sollten. Gründe gibt es dafür eine ganze Menge. Heute will ich ein paar Aspekte behandeln, die mit der Architektur der beteiligten Systeme zusammenhängen.
Verteilte Systeme
Als ich vor gut 20 Jahren damit anfing, Geld mit IT zu verdienen, ging gerade die große Zeit der Mainframes zu Ende. Auf einem Mainframe war die Sache im Prinzip noch einfach. Es gab eine große Datenbank und alle speicherten sämtliche Daten in diese Datenbank. Man wußte immer genau oder Daten sind.
Dann kam die Idee auf, daß Systeme billiger und flexibler gebaut werden könnten, wenn man sie auf mehrere kleinere Rechner verteilt.Diese Idee ist noch recht harmlos, wenn nur die Anwendung verteilt werden, die Daten aber immer noch in einer einzigen großen Datenbank liegen, auf die alle Zugriff haben. Aber meist halten die einzelne Anwendung ihre eigenen Daten. Da sich aber die Bedürfnisse der einzelnen Anwendungen bezüglich Daten überlappen, befinden sich plötzlich dieselben Daten auf verschiedenen Rechnern.
Mit zunehmender Anzahl von Speicherorten wird die Angriffsflächegrößer. In den meisten Fällen dürften auch die Zugriffsrechte in den verschiedenen Anwendungen voneinander abweichen. Wenn ich an die gesuchten Daten in einer Anwendung nicht herankomme, kann ich es ja mit einer anderen versuchen.
Service orientierte Architekturen
In den letzten Jahren ist dieser Ansatz einen Schritt weiter getrieben worden. Anstelle von Anwendungen werden nun Services verteilt, die erst anschließend zur Anwendung zusammengebracht werden. Jetzt hat man Schnittstellen, über die man die interessantesten Dinge erreichen kann. Häufig wird - entsprechend den Versprechungen der Industrie - bei dem Entwurf der Services der Schwerpunkt auf Wiederverwendbarkeit gelegt. Das führt dann dazu, daß die Services die Vereinigungsmenge aller Daten liefern, die alle denkbaren Nutzer brauchen könnten. Die logische Folge ist, daß die meisten Nutzer mehr Daten erhalten, als sie eigentlich benötigen würden.
Das zweite Problem sind die Zugriffsrechte auf die Services. Üblicherweise wird nur pauschal überprüft, ob die Anwendung, die diesen Service nutzt, dazu berechtigt ist. Eine weitere Differenzierung findet nicht statt. Die Anwendung hat aber wahrscheinlich unterschiedliche Typen von Nutzern. Einige sind berechtigt mehr zu sehen, andere weniger. Für alle liefert der Service aber die gleichen Daten, nämlich die, die der Benutzer mit den meisten Rechten sehen darf.Caching
Um die Performance des Systems zu erhöhen, wird gerne Caching eingesetzt. Hierbei entstehen weitere Orte, an denen sich Daten aufhalten, deren Verbleib nicht so genau überwacht wird.