ArchivSeite 12 von 12

Inszenierte Transparenz

Werden heute Java-Enterprise-Anwendungen entworfen, so muss als eine der ersten Entscheidungen die Art der Persistenz geklärt werden. Diese Frage bezieht sich dabei weniger auf den Datenspeicher – ein relationales Datenbanksystem kann stillschweigend vorausgesetzt werden – sondern auf den Umgang mit den Daten. Für den Architekten ergeben sich zwei grundlegende Marschrichtungen: Fasst er die Daten der Anwendung als grobgranulare, wenig vernetzte Dateneinheiten auf, so wird er zu einem tabellengetriebenen Ansatz tendieren und vorrangig Entwurfsmuster einsetzen, die dem relationalen Aggregatzustand der Daten geschuldet sind, so beispielsweise Row/Record Sets, Page Iterators oder Data Access Objects. Sieht der Architekt hingegen die Daten der Anwendung als feingranulare, stark vernetzte Entitäten an, so ist er mit einem objektorientierten Ansatz besser beraten. Da die Daten trotz objektorientierter Sichtweise in einer relationalen Datenbank landen, gilt es hier eine Brücke zwischen beiden Welten zu schlagen. Der Unterschied, oft verharmlosend als Impedanz-Unterschied bezeichnet, ist jedoch wohl bekannt und technisch beherrschbar [1].

Als Vermittler zwischen beiden Welten existieren Frameworks, die ein objekt-relationales Mapping realisieren, ohne dass der Anwendungscode davon berührt wird. Aus Sicht des Anwendungsentwicklers handelt es sich bei dem Datenbestand der Anwendung also um einfache Objekte, die Attribute besitzen, zueinander Assoziationen eingehen oder Eigenschaften vererben. Auch das Laden, Speichern, Aktualisieren oder Sperren von Objekten geschieht ohne gesonderte Mitwirkung des Anwendungsentwicklers. Objektorientiert sind ebenso Operationen auf den persistenten Objekten oder das Suchen nach persistenten Objekten in der Datenbank. Obwohl seitens der Datenbank weiterhin alles so aussieht, als ob es nach bester ERM-Manier modelliert worden wäre.

Diese enorme Abstraktion von der Speicherform der Daten bekommt man allerdings nicht zum Nulltarif. Neben architektonischen Regeln, die eingehalten werden müssen, damit sich der Zauber der Speicher-Transparenz tatsächlich einstellt, ist ein aufwändiges, explizites Mapping von Klassen auf Relationen vorzunehmen. Der hingegen oft kolportierte Performance-Verlust bei der Verwendung besagter Mapping-Frameworks, das sei nebenbei bemerkt, ist oft mehr gefühlt als real vorhanden. Aus Sicht der Gesamtanwendung ist er fast nie nachweisbar.

Sowohl hinsichtlich des Mapping-Verfahrens als auch hinsichtlich der architektonischen Spielregeln lässt sich festhalten, dass diese gut verstanden sind. Es ist sogar möglich, diese zu katalogisieren, um so einen Kanon des O/R-Mappings aufzustellen. Zu den allgemeinen Mustern lässt sich für jedes verfügbare O/R-Mapping-Framework dann präzise die konkrete Anwendung demonstrieren. Genau diese Absicht verfolgen wir mit dem Projekt OOPEX.

‘Inszenierte Transparenz’ weiterlesen

Transmission Impossible? Java5 Enumerationen und IIOP

Im September 2006 wird in der Java-to-IDL Revision Task Force Mailing List der Erweiterungsvorschlag für das Mapping von Java5-Enumerationstypen eingereicht [1]. Diesem Vorschlag wird ein Jahr später stattgegeben [2]. Die Java Language Specification für Java5 erscheint jedoch bereits 2005 - und das fast ein Jahr nach der ersten offiziellen Version von Java5 [3][4]. Erste Prototypen von Java5 standen der Allgemeinheit wahrscheinlich noch viel früher zur Verfügung. Damit vergingen mindestens drei Jahre seit der Verfügbarkeit der nativen Enumerationstypen in Java5 und deren Mapping auf CORBAs Interface Definition Language. Diese Verzögerung wirkt noch heute für all diejenigen nach, die den Versuch wagen, Java5 Enumerationsliterale über IIOP zu übertragen. Wie dies dennoch mit Java5-Bordmitteln möglich ist, beschreibt der Artikel im Folgenden.

‘Transmission Impossible? Java5 Enumerationen und IIOP’ weiterlesen

Wir starten durch

Dresden Startbild

Endlich ist es soweit, wir von der buschmais GbR starten durch - und zwar nicht nur mit einem neuen Internetauftritt sondern einer ganzen Menge frischer Ideen für interessante IT-Projekte. Unser Wissen und unsere Erfahrungen, gesammelt auf den Schlachtfeldern der Softwareentwicklung, sind für uns immer Ansporn gewesen, ein wenig weiterzudenken und wo nötig den ausgetretenen Pfad zu verlassen. Gewissermaßen als Streckenposten eines kurvenreichen Projektverlaufs möchten wir unsere Kunden unterstützen, technologisch immer den entscheidenden Schritt voraus zu sein. Für uns lösen sich dabei die Grenzen zwischen Beratung, Coaching und Entwicklung auf. Mit dem richtigen Mix dieser Aspekte im Gepäck freuen wir uns auf das nächste, spannende Projekt.

Seiten: zurück 1 2 3 ...6 7 8 9 10 11 12