Monatliches Archiv für Oktober, 2007

infra-struktur auf der bil2007

bil2007

Die bil2007 – die Business Initative Lippstadt – findet dieses Jahr zum 3ten Mal in Lippstadt statt. Ziel ist es, den Unternehmern der Region Produkte und Dienstleistungen lokaler Anbieter zu präsentieren. Die Messe ist als reine b2b – Business to Business – Messe ausgelegt. NETZkultur ist dieses Jahr zum dritten Mal mit infra-struktur vertreten.

Wir werden hier den Besuchern bereits eine Vorschau auf die Version 2.9.0 zeigen und Einblicke in die Arbeitsweise und die Idee hinter der infra-struktur bieten.

Von Freitag Nachmittag bis Sonntag Abend besteht die Gelegenheit, sich durch uns im direkten Gespräch die Möglichkeiten durch den Einsatz von infra-struktur für das eigenen Unternehmen aufzeigen zu lassen.

Nutzen Sie die Möglichkeit, sich unkompliziert das Potzenzial der infra-struktur vorführen zu lassen – Sie sind herzlich eingeladen – bei einer Tasse Lippstädter Kaffee und Lippstädter Pralinen!

Das Team der NETZkultur freut sich auf Ihren Besuch!

KDM wird zu IDO

Im Rahmen der Weiterentwicklung des Kundenmanagements (KDM) sind über die Version 2.9.0 bereits viele Neuerungen in Arbeit und geplant. Das Kundenmanagement hat sich in der Vergangenheit bereits stark entfaltet und ist zu einer generischen Objektverwaltung geworden. Heute werden nicht nur Kunden verwaltet, sondern auch Fahrzeuge, Müllcontainer, Laufkarten, sprich irgendwelche generischen Objekte. Um den Weg weiter zu verfeinern, gibt es viele neuen Ideen die in die Weiterentwicklung des KDM fließen:
- neuer Stammdatendesigner
- Stammdaten 1:n
- Rechteverwaltung auf Feldebene
- bessere Importwerkzeuge

IDO

Nach Abschluss dieser Weiterentwicklung, voraussichtlich zur Version 3.0 der infra-struktur, wird sich auch der Name der KDM ändern in IDO (infra-struktur Daten Objekt). Man kann sich diese IDOs immer noch als Datensätze vorstellen, zu denen es Module zur Anbindung gibt (Anrufe, Faxe, eMails, usw.). Die IDOs sind allerdings noch viel flexibler und generischer als heute. Die 7 Dimensionen der Anpassbarkeit bleiben dabei erhalten, werden aber deutlich verbessert:

1. Definition beliebiger Stammdatenmasken
2. Benutzung integrierter Logik (Bsp. Wiedervorlage, Anrufe, Faxe, Mails, Temine zum Datensatz)
3. Entwicklung eigener Reiter (Arithmetik zum Objekt)
4. Selektionen von Datensätzen
5. Beziehungen zwischen Datensätzen
6. Wiedervorlage, auch Multidimensional
7. Aktivitäten / Planaktivitäten
Wichtigstes Bauteil wird der neue IDO Designer, ein grafisches Werkzeug (natürlich Webbasiert) mit man alle Feldtypen (Input, Select, Radio usw.) anlegen und xy-positionieren kann. Es lassen sich damit in Zukunft n-Stammdatenmasken erzeugen, beliebig bezeichnet. Zwei Stammdatenmasken lassen sich 1:n verknüpfen, wie es für Ansprechpartner zu Firmenstammdaten gebraucht wird. In eine Select Box, lassen sich Datensätze anderer Instanzen verlinken, um beispielsweise Produke als Datensätze zu pflegen und diese beim Kunden auswählbar zu machen. Alles innerhalb einer Datenbankstruktur, natürlich über Data Access Objects. Die Rechteverwaltung (Rechtematrix der infra-struktur 2.9.0) für Menüpunkte erhält Einzug ins IDO, hier steuert die Matrix die Rechte auf Felder. Neue Ansätze wie SOA oder DAO sind die Basis für verbesserte Importwerkzeuge, um Daten aus externen Datenstrukturen noch einfacher zu integrieren und jederzeit zu erweitern.

Data Access Objects – Architekturmuster für infra-struktur

Nach dem Besuch von MySQL im Hause NETZkultur, wurden richtungsweisende Strategien für die Zukunft der Datenbank hinter infra-struktur festgelegt. Schrittweise sollen in zukünftige Entwicklungen die Data Access Objects (DAO) in infra-struktur Einzug halten. Auf der einen Seite sagen wir damit, MySQL hat die Power und die Zukunft für infra-struktur, der Ansatz stellt aber auch eine wichtige Unabhängigkeit dar. Neben einem Betrieb von Abstraktionsschichten, die einen besseren Ansatz bieten als die feste Umkodierung von SQL Syntax auf verschiedene realtionale Datenbanken, bietet der DAO Ansatz die Möglichkeit alle Vorteile von MySQL zu nutzen. Reine Abstraktion wirkt sich direkt negativ auf die Performance aus, direkte Anbindung steht negativ in Bezug zur freien Entfaltung der Entwicklung. Alle Vorteile sollen vereint werden! Bei DAOs spricht man nicht von einer Abstraktionsschicht, sondern von einem Entwurfsmuster für relationale Objekte, also einer Kapselung, sodass man die Datenquellen beliebig austauschen kann.
DAO

Bei der zukünftigen Entwicklung wird also in einem “schleichenden Prozess” die Anbindung von Datenbanken über DAOs realisiert. Alle Abfagen werden dazu in sechs Kapseln aufgeteilt:

1. Transferobjekt (in der Businesslogik wird nur noch diesen Objekten gearbeitet)
2. DAO_Factory_Interface (abstrakte Definition der Funktionalität der späteren konkreten Implementierung)
3. MySQL_DAO_Factory (die konkrete Implementierung der MySQL Sytanx mit all seinen Vorteilen)
4. Programmlogik (die infra-struktur Module, wie z.B. Anrufliste oder Mail)
5. DAO_Factory_Klasse (erstell dann die möglichen DAO Factories, MySQLDAOFactory / PDODAOFactory, einmal pro infra-struktur Instanz)
6. properties.xml (zentrale Einstellung der gewünschten Datenanbindung)

Daraus lässt sich folgendes ableiten: Man kann in den MySQL_DAO_Factories alle Vorteile von MySQL realisieren, parallel werden dann noch PDO_DAO_Factories von uns bereitgestellt. Die folgenden Treiber implementieren momentan die PDO-Schnittstelle:

PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird/Interbase 6
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x/4.x
PDO_OCI Oracle Call Interface
PDO_ODBC ODBC v3 (IBM DB2, unixODBC und win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 und SQLite 2

PHP Data Objects oder kurz PDOs stellt somit die Datenbankabstraktionsschicht bereit. Die volle Performance ist dann jederzeit über die MySQL_DAO_Factories möglich, während man mit PDOs auf andere Datenbanken ausweichen kann. Jeder kann sich selber weitere eigene DAO_Factories für seine Lieblingsdatenbank und deren Vorteile simpel selber implementieren. Benötigt wird nur das dokumentierte DAO_Factory_Interface, ein ER-Modell und vielleicht die verschiedenen MySQL_DAO_Factories Dateien als Vorlage zum Umbau. Jede Optimierung kann dann selber durchgeführt werden, auch Anbindungen von XML als Datenstruktur für infra-struktur werden damit möglich.

Alle Abfragen eines Systems werden also nicht mehr auf MySQL oder PostgreSQL gemacht, sondern es sind nur Operationen auf dem Transferobjekt (TO), völlig losgelöst von der Datenstruktur/Datenbank. Im Modul der Anrufliste findet sich also auf jeden Fall ein Transferobjekt “Anruf”, dazu gibt es noch die TOs wie Benutzer und deren Berechtigungen. Alle TOs haben also auf jeden Fall Methoden wie getXY() oder setXY().

Die Vorteile des DAO Ansatzes überwiegen also deutlich und bieten den grössten Freiraum, so ist es für uns das Konzept der Zukunft. Der Umbau wird natürlich seine Zeit dauern, nach der Freigabe der 2.9.0 ist es unser nächstes Ziel. Die Erweiterung von Features wird deshalb zugunsten von Architekturmassnahmen erstmal zurückgestellt.

————————–
http://java.sun.com/blueprints/patterns/DAO.html
http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html