Ein Fallbeispiel zu loggPRO®.net bitte!

loggPROnetEin Beispiel? Bitte schön. Betrachten wir den folgenden logistischen Vorgang: Ein Logistikunternehmen XY-Log spediert seltene Pflanzen aus dem Nahen Osten nach Deutschland zum Großabnehmer XY-Flora. XY-Flora tätigt die Bestellung auf der Website von XY-Log und löst damit eine Vorgangsnummer, mit deren Hilfe er sich in den nächsten Tagen nach dem Stand der Order erkundigen wird. Diese Vorgangsnummer kam nicht von ungefähr sondern wurde vielmehr in der loggPRO®.net-Datenbank errechnet, die der Fa. XY-Log zugewiesen ist. Bei dem nächsten Polling (Abfragen) der loggPRO®.net-Datenbank wurde dieser Vorgang auf das interne Auftragssystem der XY-Log, das nicht einmal ein transObjects®-System ist, automatisch (!) repliziert und entsprechend zur Verarbeitung weitergeleite.

loggPROnetB
Fallbeispiel der Zuhilfenahme von loggPRO®.net durch 3 Beteiligte in einem logistischen Vorgang. Einzelne Abfertigungsvorgänge sowie Statusabfragen sind ausgeblendet!

XY-Log weiss, dass die betr. Ware erst in der Schweiz ankommt, wo ein Transitvorgang initiiert werden muss, um dann in Deutschland entsprechend gelöscht zu werden. Mit der gleich doppelt aufwändigen Transitabfertigung (Schweiz und Deutschland) pflegt XY-Log eine Fa. XY-Zoll zu beauftragen, die ebenfalls ans loggPRO®.net angeschlossen ist; das geht dann per Knopfdruck.

XY-Zoll ist glücklicherweise mit der transObjects®-Software ausgestattet und somit in der Lage, beide Abfertigungen elektronisch tätigen zu können. Diese Abfertigung wird in Form des veränderten Status aufs loggPRO®.net repliziert, so dass sowohl XY-Log als auch XY-Flora ihre Informationen just-in-time bekommen. Nach der Entlademitteilung an den Zoll (Atlas-Vorgang) durch XY-Zoll bleibt nur noch die Lieferung an XY-Flora und das war es!

Dieses Beispiel veranschaulicht, welche Probleme loggPRO®.net eigentlich löst. Denn wäre z.B. XY-Zoll nicht ans loggPRO®.net angeschlossen, wären die Kontinuität des Vorgangs und auch dessen Verfolgbarkeit unterbrochen und somit nicht gewährleistet – von überflüssigen Datenerfassungen ganz zu schweigen. So aber sind alle Teilnehmer zu jedem Zeitpunkt über den Stand der Dinge informiert, auch dann, wenn sie mit unterschiedlich gearteten und vollkommen getrennten Systemen arbeiten.

Itanium, Opteron, IA64, x64 – was bedeutet das alles? (Teil 1)

Die Intersystems Inc., der Hersteller von Caché-Server, der als Basis-Datenbankserver in transObjects® Anwendung findet, erschließt mit dem Windows-Release 5.0.21 sowie dem grundlegend überarbeiteten 5.1.0 die zweite 64-Bit Windows®-Plattform neben „IA64“, nämlich das „x64“. Für uns ist es Anlass genug, den Vergleich mit Intel’s „IA64“ (Itanium®) anzustellen, den wir bis dato mangels passender Caché-Version nicht machen konnten (zwar gab es bereits seit längerem Caché-Editions für die als „Opteron“ bzw. „AMD64/EM64T“ bekannt gewordene Plattform, jedoch leider nicht unter Windows® x64).

Wir sind gespannt auf das Verhalten von Caché auf einer EM64T-Hardware, auf der Caché bereits unter dem 32-Bit-Windows® exzellent lief und wir sind neugierig auf den Vergleich zu Inte®’s „IA64“, mit dem wir bereits seit 3 Jahren unsere Erfahrungen haben machen können. Wird Caché wirklich – wie viele prophezeien – mit einem 64-Bit-Xeon auf und davon ziehen oder wird eher Intel’s behäbig wirkender Itanium® das Rennen machen? Ist der von Intersystems erstellte Build wirklich optimal auf die spezifische Itanium®-Architektur getrimmt?

Wir wollen es ganz genau wissen – von daher sind derzeit in unserem Benchmark-Labor die Ärmel richtig hochgekrempelt. Vorerst aber wollen wir uns dem „IA64 vs. x64“ mehr von der theoretischen Seite her nähern und auf dieser Basis geben wir hier eine kleine Entscheidungshilfe in Sachen Anschaffung eines 64-Bit-Servers, insbesondere dann, wenn auch der Caché-Server hierauf betrieben werden sollte. Voilà:

Während die ursprünglich von AMD entwickelte und unter „Opteron“ bekannt gewordene 64-Bit-Plattform somit einen weiteren Punkt für sich verbuchen kann und nicht zuletzt auch für transObjects®-Anwender noch ein Stück relevanter wird, kontert der Markführer Intel® mit einer Multi-Core-Variante des Itanium®-Prozessors. Der für Herbst 2003 angekündigte „Montecito“ lässt gerade eingedenk der bereits bei dem Vorgänger „Madison“ überraschenden Benchmarks für das teils schon verloren geglaubte Rennen gegen „x64“ wieder Hoffnung schöpfen.

Wir versuchen nun grundlegende Unterschiede zwischen den beiden 64-Bit-Plattformen zu charakterisieren, ferner dem transObjects®-Anwender eine Entscheidungshilfe in Sachen geeigneter Plattform für den Caché-Server zu geben. Zu Guter letzt spekulieren wir darüber, welche der beiden Plattformen á la longue das Rennen machen könnte. Dass dies sehr gewagt ist, ist uns vollkommen klar.

Im Jahre 2001 brachte Intel® nach einer gut 5-jährigen Entwicklung in Zusammenarbeit mit Hewlett-Packard seinen ersten 64-Bit-Prozessor auf den Markt. Die erste Itanium®-CPU machte dem damaligen Ruf der 64-Bit-Welt, die von PA-RISC, ALPHA, Sparc etc. geprägt war, alle Ehren. Wenn man irgendwie das Kunststück vollbracht hatte, Windows 2000 Advanced Server Limited Edition oder eine Beta-Version von Windows 2003 auf die monströse und kaum erschwingliche Hardware drauf zu packen, konnte man diesem Windows bei der Arbeit im wahrsten Sinne des Wortes zusehen… Unsere Tests mit einem Compaq ProLiant DL590/64, immerhin einem 4-Wege Itanium1, erbrachten insofern auch nichts anderes. Es war schlicht fürchterlich langsam! Intel’s interner Codename „Merced“ war da wohl keine Anspielung auf die Automarke… jedenfalls wollen wir es nicht annehmen…

Aber wie dem auch sei. Bei aller Fortschrittlichkeit der Itanium®-Architektur (dazu im Folgenden mehr) wies die als „Itanium1“ bekannt gewordene CPU zahlreiche Merkmale auf, die sie doch sehr behäbig haben wirken lassen. Dazu zählten z.B. die Taktung von 800 MHz (in unserem Compaq DL590/64’er waren es gar jeweils nur 733 MHz’ler), das hohe Voltage von 1.6V und die Chipgrösse basierend auf einer Prozesslänge von 180 nm. So sprachen wir etwas vornehmer wir von einem „niedertourigen“ Server… und weniger vornehm von einem „Wäschetrockner“: Denn die Luftmengen, die mit ohrenbetäubendem Lärm umgewälzt wurden, hätten mit Sicherheit recht gute Dienste in dieser Hinsicht leisten können!

Ja, und da war noch der völlig fehlende „on-die“ Cache (sog. L3-Cache), der das Übrige tat, so dass der Betrieb von 32-Bit’er-Applikationen, z.B. von Caché-Server, schier unmöglich war und selbst Beta’s von Itanium®-Builds waren aufgrund von noch vollkommen unausgereiften Compiler-Tools (sofern es diese überhaupt gab !) vollkommen unzulänglich. So bestand für uns gar kein Zweifel daran, dass ein solches „IA64″ keine praktische Bedeutung fürs transObjects® haben wird.

Allerdings fielen unsere Tests Ende 2002 Anfang 2003 in einen Zeitraum hinein, in dem eine weitere Itanium®-CPU bereits in Einsatz war, nämlich die „Itanium2“. So konnten wir das diametral andere Verhalten eines HP Integrity mit 2 x Itanium2 je 900 MHz und 1.5 MB Cache gegenüber dem des „niedertourigen“ DL590/64’er am eigenen Leibe (oder besser gesagt an eigenen Ohren) erleben. Der unter dem internen Codenamen „McKinley“ geführte Prozessor hatte zwar gegenüber dem „Merced“ ein nur unwesentlich gemindertes Voltage, jedoch war der Gesamteindruck des HP-Integrity rx2600’er trotz seines L3-Cache und einer beinahe 10-fachen (!!!) Anzahl von Transistoren alles andere als monströs. Hewlett-Packard hat sogar mit der „ZX“-Reihe (ZX2600/ZX6000) eine Itanium-basierte Workstation konzipiert, deren Geräuschentwicklung beim Betrieb „unter dem Tisch“ einigermassen erträglich war.

Als die Itanium-Editions sowohl von Windows® 2003 als auch von Caché allmählich aus dem Beta-Stadium schlüpften, war die Geburtsstunde des IA64-Clusters im transObjects®-Datacenter nur noch eine Frage der Zeit. So kamen auch prompt die ersten Cluster-Nodes mit „McKinley’s“ im Gewande von HP-Intergrity zum Einsatz, zeitgleich mit den ersten Itanium®-Builds, des Caché-Servers.

Ein Problem stellte noch anfänglich diejenige Software dar, die damals noch nicht fürs Itanium-Windows® optimiert werden konnte und zwar immer noch mangels geeigneter Compiler. Dazu zählten immerhin auch die aus den Enterprise-Editions bekannten transObjects®-Module wie z.B. exmailPRO. Der auf dem „Die“ integrierte „IA-32-Execution-Layer“ war zum Gähnen langsam und machte die Ausführung von 32-Bit-Tasks schlicht nicht praktikabel. Aber völlig getreu dem Itanium®-Prinzip kam die Lösung nicht etwa durch eine Verbesserung auf dem Layer selbst, sondern durch einen Softwareemulator (man höre und staune!), der in Zusammenarbeit von Intel®/Microsoft® entwickelt worden war und der später Bestandteil des Service Pack 1 von „MS Windows 2003 Server Itanium-Edition“ wurde! Dennoch war auch diese Abhilfe nur von sehr begrenzter Wirksamkeit, so dass eine richtige Lösung dieses Problems erst mit echten Itanium-Builds herbeigeführt werden konnte. Die Ausführung von 32-Bit-Tasks übers WOW64 („Windows-On-Windows64″) blieb unterdessen die Achillesferse des „IA64″.

In den darauffolgenden Jahren profitierten die transObjects®-Itanium®-Cluster – sowie auch immer mehr User – von weiteren Entwicklungen des Itanium®-Prozessors. Nach und nach kam die unter dem Codenamen „Madison“ entwickelte jedoch handelstechnisch weiterhin als „Itanium2“ geführte CPU zum Einsatz. Insbesondere die Reduktion des Voltage auf 1.3 Volt sowie der Fertigungslänge auf 130 nm haben diese Prozessoren insgesamt kompakter ausfallen lassen, wobei die 9 MB L3-Cache sowie die bis zu 1.7 GHz Taktung, wie Sie in der letzten Madison-Ausprägung namens „Madison 9M“ zu finden sind, mehr als ein erster Warnschuss in Richtung AMD/x64 waren. Nicht zu vergessen ist, dass ein EM64T mit 3GHz / 2MB bereits von einem dualen Madison mit je 1.5 GHz / 6 MB in unserem Benchmarking buchstäblich in Grund und Boden gefahren wurde. Was ein „Madison 9M“ oder gar ein „Montecito“ daraus machen würde, können wir erst zum späteren Zeitpunkt empirisch belegen. Vorerst wäre es reine Spekulation.

loggPROnet2003

Ein Rack des transObjects®-Datacenters Mitte 2003. Zu oberst und ganz zu unterst sind Knoten des Itanium-Clusters zu sehen.
Zu oberst McKinley und unterhalb davon ein Madison (je HP Integrity rx2600), ganz zu unterst der Meced DL590/64
.

Inwieweit derartige „Warnschüsse“ AMD wirklich tangieren können, ist indes nur schwer abzuschätzen. Denn eigentlich hat die „ewige Nummer 2“, wie sich manche ausdrücken, seit der ersten Umsetzung der genial einfachen Idee im Opteron-Prozessor fast nur Erfolge verzeichnet. Das genial einfache dabei ist schlicht das nachzumachen, was Intel seinerzeit beim Übergang vom 286’er zum 386’er vollzogen hat. Damals hat man den 16-Bit AX-Register schlicht zum 32-Bit EAX-Register „enhanced“ und schon fanden wir uns alle im 32-Bit-Adressraum wieder. Beim Opteron ist AMD ähnlich vorgegangen, wenn auch nicht von Anfang an durch die Erweiterung auf den vollen 64-Bit-Adressraum (da waren es „nur“ 48 Bit).

Der Coup dabei ist und bleibt die Abwärtskompatibilität. Konfrontiert mit einem 32-Bit-Betriebssystem versetzt sich ein AMD64 in einen passenden Modus und arbeitet mit der gewohnten Performance des 32-Bit-Teils. Die 64-Bit-Erweiterungen werden dann zwar entweder gar nicht oder nur ganz partiell genutzt, aber das ist nichts im Vergleich zu Itanium® der dann ja gar nicht läuft.

Der Aspekt des Investitionsschutzes war es wohl auch, der AMD die vielen Erfolge bescherte. Und die kamen dann wirklich Schlag auf Schlag, von Implementierung passender Betriebssysteme (Windows® nennt entsprechende Editions „x64“) über die Lizenz an den Branchenprimus Intel®, der seitdem die Opteron-Philosophie auf eigenen „Xeon’s“ unter „EM64T“ umsetzt, bis hin zur zwischenzeitlicher Eroberung des Workstation-Segments.

Insbesondere bei einem Vergleich x64 zu IA64 schien die AMD-Plattform zuweilen haushoch überlegen, vor allem dann, wenn man eine 32-Bit-Applikation laufen lies. Während auf Itanium® der bereits zuvor erwähnte IA-32-Execution-Layer die IA-64-Register auf die 32’er mühselig abbildete und durch eine aufwändige Prozedur so den IA-64-Datenfluss generierte, verfügte der AMD64 über vollwertige 32-Bit-Einheiten und brauchte nicht weiter als die 64-Bit’er links liegen zu lassen. Da wurden so manche Apologeten von „x64“ schon ein wenig selbstherrlich – verkehrte Welten!

Wie sind dann die Resultate unseres Benchmarkings zu erklären? Nun, dazu ist ein kleiner Einblick in die IA64-Architektur vonnöten.

Die Involvierung von HP in die Itanium-Entwicklung hat die Kompatibilität der neuen CPU zu PA-RISC (mit HP-UX / Unix) zur Voraussetzung gemacht. Angelehnt an das „Reduced Intruction Set“ – Prinzip dachten sich wohl die Entwickler etwas Ähnliches und… gönnten dem neuen Itanium® weder Einheiten für Gleitkomma-Division, geschweige denn für andere Funktionen. Der so gewonnene Platz auf dem Die wurde vielmehr für andere Bausätze genutzt, die fürs Caching sowie eine optimale Atomisierung resp. Parallelisierung von Vorgängen sorgen sollten. Die Grundidee dabei: Der Compiler kann weitaus exakter die Unabhängigkeit von Teiloperationen aus seinem Kontext hearus erkennen (was die Voraussetzung für eine optimale Parallelisierung ist), als es die CPU aus ihrem Berechnungskontext heraus kann! So gesehen wird hier scheinbar die „Verantwortung“ auf die Compiler-Hersteller abgewälzt. Aber das Konzept kann durchaus aufgehen, wie wir aus unseren Tests nun wissen. Welche Features es im Einzelnen sind, die dem Compiler (bzw. auch einem Entwickler) einen solch grossen Gestaltungsspielraum eröffnen, wollen wir nachfolgend kurz skizzieren, wobei der Leser genaueres der Fachliteratur entnehmen mag.

Bereits beim „Merced“ spendierte Intel® seinem Itanium®-Sprössling neben der vollen 64-Bit-Adressiereung ein rekordverdächtiges Set an Registern: 128 Allzweck-Register, weitere 128 zur Gleitkomma-Verarbeitung und 64 sog. Predicate-Register und schliesslich noch eine Vielzahl von Spezialregistern, wie 128 Applikationsregister für den Kernel und die Stack-Engine sowie Branch-, ID-, und Performance-Monitor-Register.

Mit einem solchen Register-Set kann gut jongliert, genauer gesagt, rotiert werden. Denn das Prinzip der Registerrotation mit den so genannten dynamischen Registern gehört auch zu den wichtigsten Merkmalen der IA-64-Architektur. Die aufwändigen Kopieroperationen zwischen den Registern werden auf ein Minimum reduziert, indem man – vereinfacht dargestellt – mit Registerzeigern anstatt Registern arbeitet und diese Zeiger dann, z.B. in einer Schleife, inkrementiert (hierbei soll lt. Intel® ein anderes Feature eine wichtige Rolle spielen, nämlich die Inkrementierung der Register beim Abspeichern ohne einem zusätzlichen Schritt; als C++/C-Programmierer kennen wir alle den Postinkrement-Operator). Dieses sog. Software-Pipelining, d.h. die Parallelisierung von für unabhängig erkannten Teiloperationen, indem man sie (parallel) über virtuelle Register auf unterschiedliche physikalische Register zugreifen lässt, soll beispielsweise bei der typischen Punkt-für-Punkt Bildbearbeitung deutliche Vorteile gegenüber der IA-32-Architektur aufweisen.

Natürlich besitzt der Itanium als ein superskalarer Prozessor mehrere ALU’s, weshalb sich die Parallelisierung wirklich auszahlt, so sie denn richtig gemacht ist. Folglich ist eigentlich die Parallelisierung der Begriff, denn man verwenden müsste, wenn man die IA64-Architektur mit nur einem einzigen Begriff umschreiben möchte. Und Intel® leistet in der Tat auch einiges, um diese Parallelisierung zu verfeinern. Die Technik, die Intel® im gegensatz zu PA-RISC hierfür aufbietet, ist EPIC (Explicit Parallel Instruction Computing). EPIC basiert auf dem VLIW Very-Long-Instruction-Word-Prinzip. Hierbei wird ein relativ breites Befehlswort in mehrere Teilworte unterteilt, die einzelne unabhängige Instruktionen enthalten. Die CPU liest das lange Befehlswort und leitet die darin enthaltenen Instruktionen an voneinander unabhängige Ausführungseinheiten weiter. Die Entscheidung, welche Instruktionen wirklich unabhängig sind, muss dann allerdings der Compiler treffen.

Gewiss bringt Intel® mit IA64 etwas mehr, als nur den Ball den Compiler-Herstellern zuzuspielen. Neben der zuvor erwähnten Registerrotation, die letztendlich einer Optimierung der parallelen Abarbeitung dient, wartet Itanium® mit einer Reihe von Features auf, die die problematischen Charakteristika der IA32-Architektur umgehen sollten. So lässt man beispielsweise den Itanium® Programmsprünge erahnen oder man versucht sie gar mittels sog. Predicating gänzlich zu umgehen. Ein sehr häufig bemühtes Beispiel fürs Predicating ist ein „if-else“-Block, der die bekanntermassen problematischen bedingten Sprünge impliziert. Hier lässt man zwei Recheneinheiten parallel beide Eventualitäten berechnen und trägt zum Schluss nur das Zutreffende in das entsprechende Register ein (!). Aber auch diese Möglichkeit muss der Compiler erkennen, wodurch wir noch einmal das Prinzip der IA64-Architektur vor Augen geführt bekommen.

transObjects® vs. WinXY oder wozu brauche ich einen Datenbankserver?

Die nachfolgend diskutierten Fälle sollten mögliche Konsequenzen aus dem Nicht-Vorhandensein von bestimmten technologischen Merkmalen, hier der aktiven Datenbankinstanz, veranschaulichen.

Der Gegenstand der Analyse (aus dem Jahre 2004 – Anmerkung anno 2009) ist jeweils eine typische Desktop-Software, basierend auf einer Access-Datenbank mit dem dazugehörigen Interpreter fürs Basic. Auf die explizite Benennung der jeweiligen Softwareprodukte verzichten wir wohlwollend 😉 – verwenden stattdessen den Kunstnamen „WinXY“, wobei Affinitäten zu den bestehenden Produkten rein zufällig und in keiner Weise beabsichtigt sind. Unsere Fälle, auf den in zahlreichen FAQ-Artikeln unserer Website Bezug genommen wird, liegen folgendermassen:

Fall 1:

Ein kleineres Speditionsunternehmen in der Schweiz wendet seit einigen Jahren die WinXY-Software für die Bereiche des Auftrags- und Logistikwesens an. Im Frühjahr 2004 beschliesst der Geschäftsführer und Inhaber einige transObjects®-Anwendungen für elektronische Verzollungsverfahren anzuschaffen. Fortan betreibt er diese an mehreren Standorten, darunter auch mobil vom Lieferfahrzeug aus und auch am Hauptstandort neben WinXY im gleichen LAN. Zunächst versetzt ihn das Ansprechverhalten von transObjects® an externen Standorten in ein nicht schlechtes Staunen, hat er sich doch bereits vor einigen Jahren Ähnliches mit WinXY glatt abgeschminkt: Es hatte sich schlicht nichts von der Stelle bewegt!

Trotz Einschränkung der Anwendung von WinXY auf die Grenzen des lokalen Netzwerkes am Hauptstandort (noch vor der transObjects®-Zeit) verschärften sich die Probleme stetig weiter. Während es für den Benutzer direkt am Server gerade noch ging, wurde das Ansprechverhalten von WinXY an den jeweiligen Workstations immer unangenehmer, bis schlicht unzumutbar. Eine Datenbankabfrage, die einem weit zurückliegenden Vorgang galt, konnte schon mal ein paar Minuten dauern und so lange könne man einen Kunden ja nicht am Telefon hinhalten, wie der betroffene sympathische Tessiner einmal zu uns sagte… 😀

Notgedrungen (oder vielleicht müsste man sagen, WinXY-gedrungen) griff unser Kunde seinerzeit zu Windows-Terminals. Dadurch entschärfte er ein wenig die Problematik des Ansprechverhaltens an den Workstations, wenn auch zum Preis diverser anderer Probleme, etwa mit den Peripheriegeräten. Völlig entnervt orderte er schliesslich eine neue High-End-Hardware und erhoffte sich dadurch seine Sorgen loswerden zu können. Unser Verweis auf das nach wie vor souveräne Ansprechverhalten von transObjects® geriet in den Hintergrund; stattdessen ruhten alle Hoffnungen nun auf der neuen Hardware mit dem neuen Betriebssystem.

Wie die Geschichte ausging, kann sich jeder technisch bewanderte Leser leicht denken: WinXY lief auch auf einer noch so guten Hardware nicht viel besser, also musste unser Tessiner zurück zu den Windows-Terminals, wobei Inkompatibilitäten des Windows 2003 zu diversen Peripheriegeräten, die unschwer vorauszusagen waren, auch prompt eingetreten sind. Sein Gemütszustand ist mit seinem „Aaach! Es ist doch alles hoffnungslos!“ (oder so ähnlich…) am besten umschrieben.

Und was war in dieser Zeit mit den transObjects®-Applikationen los? Ja, die verrichteten ihre Dienste stets ohne Anstalten, so dass man sie in dem ganzen Wirrwarr schlicht vergessen hatte. Ob auf der alten oder neuen Hardware, von externen Standorten aus oder via GPRS-Verbindung vom Fahrzeug aus, ob über den Datenbankserver am Hauptstandort oder über das kurzzeitig dazwischen geschaltete Datacenter: auf transObjects® war immer Verlass!

Fall 2:

Ein mittelständischer Logistiker und Dienstleister wendet transObjects®-Applikationen mit durchaus hoher Intensität an und zwar an den drei grössten Passagierflughäfen in der Schweiz und vereinzelt auch im Ausland. Für die Finanzbuchhaltung schafft er sich u.a. aus historisch gewachsenen Gründen die WinXY-Software an. Den potentiellen Performanceproblemen der Desktopsoftware WinXY hofft er durch ein optimales Handling beikommen zu können: Getrennte Datenbankfiles für die jeweiligen Mandanten und eng gesteckte Abrechnungszeiträume, möglichst ein exklusiver Zugriff nur eines „single“-Clients auf die jeweiligen Datenbankfiles etc.

Diese Massnahmen ermöglichten zwar der zuständigen Abteilung des Unternehmens die klassischen FiBu-Aufgaben einigermassen zuverlässig erledigen zu können. Allerdings musste auf weitergehende Funktionen, wie etwa die betriebswirtschaftliche Auswertung, wie sie transObjects® processPRO in den Probeläufen im Nu erledigte, gänzlich verzichtet werden, denn eine Auswertung über grössere Zeiträume hinweg hätte ja geheissen, die zuvor aufgesplitterten Datenbankfiles nacheinander „abklappern“ zu müssen. So gesehen war es nicht unbedingt überraschend, dass ein Versuch dies doch noch zu tun in einem totalen Fiasko endete: Clients, die solche Auswertung starteten, gaben anschliessend leider nicht zu erkennen, ob sie sich bereits aufgehängt hatten oder noch am rechnen waren… Auf die Frage, was denn nun zu tun sei, antwortete jemand scherzhaft, „Reset-Taste betätigen“… 😉

Leider war die Konsequenz einer solch unsanften Massnahme zumeist eine Inkonsistenz von den Datenbankfiles. Solche Datenbankfehler waren weitaus ärgerlicher, als die dadurch begrenzte Anwendbarkeit von WinXY. Der Alltag in der FiBu-Abteilung sah doch so aus, dass man vor jeder grösseren Operation, etwa einem Buchungslauf, die Datenbankfiles sichern musste, um sie dann im Falles eines Fehlers in den Ausgangszustand zurück versetzen zu können. „S’ischt mühsam“ war häufig zu hören.

Damit aber noch nicht genug. Die Datenbankfehler waren leider an der Tagesordnung und nicht immer war man bereit, den halben Arbeitstag durch den File-Restore „ungeschehen“ zu machen. In anderen Fällen waren wiederum die Datenbankinkonsistenzen so schwer, dass die beschädigten Files nur durch äusserst aufwendige Reparaturen (erforderlich war das Einschicken der Files an den Softwarehersteller!) wieder instand gesetzt werden konnten. Gewiss war die Umgebung, in der WinXY betrieben wurde, nicht ganz optimal: LAN-Störungen waren des Öfteren zu verzeichnen und die Verfügbarkeit des Files-Servers war auch fernab von „100 pro“. Aber das alles war fürs transObjects® genau gleich und dort ist eine Datenbankinkonsistenz im Laufe des 10-jährigen Betriebes kein einziges Mal vorgekommen…

Wie kann ich mein System XY ans TransObjects® koppeln? Hat’s da Schnittstellen?

Dieser Artikel ist outdated. Schnittstellen und Services zum Datenaustausch mit Fremdsystemen bietet die logistische Integrationsplattform loggPRO.net.

Zu den wohl am häufigsten zu beobachtenden – oder mittels processPRO feststellbaren (!) – Unstetigkeiten (nennen wir es mal so) im alltäglichen betrieblichen Ablauf aus der Sicht der IT gehören Doppelerfassungen von Daten. Der volkswirtschaftliche Schaden, der dabei entsteht, ist so immens, dass man inzwischen die Güte eines Systems völlig zu Recht u.a. an dessen Fähigkeit zu einer möglichst aktiven Kooperation mit anderen Systemen misst.

Der nachfolgende Artikel belegt, dass TransObjects® ein sehr offenes System ist, dass diverse Möglichkeiten in dieser Hinsicht bietet und die Interaktion mit anderen Systemen aktiv eingeht.

Vor ein paar Jahren hat einer unserer Kunden bei einem der führenden und börsennotierten Anbieter von ERP-Lösungen wegen einer Schnittstelle angefragt. Die Antwort lautete „selbstverständlich“, die Schnittstelle werde verfügbar gemacht, unter lizenzrechtlichen Auflagen (insb. Geheimhaltung) und gegen eine Lizenzgebühr in Höhe von 50’000,- € !

Ein Größenwahn? Das sicherlich auch, zumal das betreffende Unternehmen unaufhaltsam wächst, was dem Management, das derartige Verträge eingeht nicht gerade das beste Zeugnis ausstellt. Aber eine nicht minder wichtige Ursache hierfür liegt klar auf der Hand: das betreffende System ist schlicht nicht up-to-date! Es ist veraltet, daher nur unter schier unermesslichem Aufwand mutierbar und ausserdem unter sicherheitsrelevanten Gesichtspunkten nicht richtig konzipiert, weshalb die Geheimhaltung eine so wichtige Auflage darstellt.

Wir können den Leser beruhigen. Nachfolgend findet er eine (kostenlose ) Beschreibung der TransObjects®-Schnittstellen, ferner von Szenarien, in denen eine Interaktion mit anderen Systemen zustande kommen kann und dies zu bewerkstelligen ist.

Zu den wohl häufigsten Szenarien, in denen sich die Ausgangsfrage stellt, gehört in etwa das Folgende: Ein Unternehmen verfügt über ein betriebsinternes System für Auftragsbearbeitung, das über Jahre hinweg, gewissermassen organisch, gewachsen ist, so dass man sich hiervon nur ungern trennen möchte. Mangels Alternativen legt man sich aber TransObjects®-Software für Warenabfertigung zu, etwa atlasPRO, edecPRO oder was auch immer. Nach erfolgreicher Inbetriebnahme stellt man rasch fest, dass viele Daten, obwohl diese schon einmal im Auftragswesen erfasst worden sind, zwecks Warenabfertigung erneut erfasst werden müssen.

Ein anderes Szenario: Ein Unternehmen, mit dem ein TransObjects®-Anwender kooperiert, möchte diesem Auftragsdaten auf elektronischen Wege zukommen lassen und den fertig bearbeiteten Auftrag wieder zurückbekommen, um ihn z.B. finanzbuchhalterisch weiterverarbeiten zu können.

Beide Fälle sind ähnlich gelagert. Es geht im Wesentlichen um zweierlei Fragen: Wie kann ich eine TransObjects®-Datenbank mit Daten versorgen bzw. wie kann ich aus der TtansObjects®-Datenbank Daten herauslesen. Beides sollte natürlich ohne Informationsverlust stattfinden und möglichst automatisiert ablaufen.

Um Letzterem zu genügen, bedarf es zu allererst einer gemeinsamen Sprache, die allseits verstanden werden kann, also geht es um ein Datenformat. Da der sog. „Object Dump“ doch recht proprietär war, schwenkte die K&S Anfang der 2000’er auf das XML ein, was das Format für multidimensionale (also auch objektorientierte) Datensätze schlechthin war und inzwischen einen beachtlichen Bekanntheitsgrad errungen hat. So gibt es inzwischen unzählige Softwareprodukte, die – ein bestimmtes Schema vorausgesetzt – Daten in XML-Form aufbereiten bzw. diese aus einem XML-File herauslesen können. Das senkt schon mal vorab den anstehenden Programmieraufwand in einem nicht unbeträchtlichen Masse.

Verständigt man sich also bei den Formaten auf einen inzwischen weit verbreiteten Standard á la XML, so kann man mit dem Aufbau eines Interaktiven Systems zur Koppelung des eigenen TransObjects®-Systems an externe Systeme (oder umgekehrt) beginnen. Als mögliche Datenaustauschwege gibt es wie bei den Formaten auch schon eine Vielzahl von unterstützten Protokollen, deren bloße Auflistung den Rahmen des vorliegenden Artikels völlig sprengen würde. Aber auch hier gibt es eines dem der Vorzug zu geben ist und das gerade im Zusammenhang mit dem XML immer wieder genannt wird (www.xml.org, vgl. auch SOAP), nämlich das HTTP(S), darunter insbesondere die sog. Webservices.

Es gibt eine ganze Reihe von Vorteilen, die die Webservices mit sich bringen. In einem Satz: Sie sind verhältnismässig einfach in eigene Umgebung zu integrieren, weisen aber gleichzeitig ein akzeptables Sicherheitsniveau auf und sind bidirektorial einsetzbar, d.h. auch um bestimmte Daten aus der TransObjects®-Datenbank herauszulesen.

Was muss also letzten Endes jemand tun, der z.B. Auftragsdaten einem Beauftragten User zur Weiterverarbeitung (etwa Verzollung) in dessen TransObjects®-Datenbank schicken möchte? Ganz einfach: diese in XML-Form lt. Schema aufbereiten und aufs „DFÜ“ legen, wobei dieses „DFÜ“ vorzugsweise ein Webservice sein sollte und nur in zweiter Linie evtl. etwas anderes, wie z.B. SMTP(S), FTP(S), FTAM, X.400, WEBDAV oder was auch immer.

Wozu 64-Bit? Welchen Nutzen hat es im Allgemeinen und fürs transObjects®?

Die Frage „Wozu überhaupt 64-Bit“ lässt sich am besten aus der geschichtlichen Retrospektive heraus erklären. Die alte 8-Bit-Welt ist nicht mehr sehr vielen von uns geläufig, dafür aber die 16-Bit-Welt aus den Zeiten von Windows 3.1 usw. Das Problem des 16-Bit-Adressraumes ist sehr schnell ausgemacht: Gerade mal 65 KByte Speicher standen z.B. einer DOS-Anwendung zur Verfügung! Mehr war – wenn überhaupt – nur auf Umwegen zu haben; wir erinnern uns an so was wie XMS, EMS etc.

Der Einzug von 32-Bit’ern würde uns schier unbegrenzte Adressräume eröffnen – dachten wir uns vor ca. 15 Jahren, als wir unseren 286’ern beim Abzählen von teuer angeschafften ein paar MB’s RAM zuschauten. Dass in nicht allzu ferner Zukunft eine gute Vertausendfachung dieser Kapazität stattfinden wird, war zum einen nicht unbedingt zu erwarten und zum anderen haben wir uns nicht so sehr Gedanken darüber gemacht, wie das 32-Bit-Windows den Adressraum von Schwindel erregenden 4 GB aufteilt (vgl. z.B. /3GB-Switch).

Bleiben wir noch einen Moment bei der Geschichte des Wachstums von Adressräumen. Eine der Fragen, die manchmal an dieser Stelle gestellt wird, ist die, ob man mit den 64 Bits nicht schon wieder zu kurz springt. Hier kann man wenigstens einmal ruhigen Gewissens eine Antwort geben, die man ganz sicher nicht schon ein paar Jahren wieder einsammeln kann: Die Millionen TB (Terabyte), die vom 64-Bit-Adressraum erfasst werden, werden nicht mehr zu unseren Lebenszeiten gesprengt. Denn immerhin bedeutet es die Kapazität der Erde, würde man pro nur ein paar Tonnen Erdmasse je ein Bit speichern!.

Die schier unbegrenzten Adressräume sind schön und gut, aber die Frage lautet abermals, wozu das ganze?Brauche ich denn wirklich so viel Speicher? Was bringt mir das als TransObjects®-Anwender ganz konkret?

Nun, hier ist die Antwort sicherlich nicht monokausal. Zunächst hat sich schon mal jeder, der die CPU-Belastung eines Servers angeschaut hat, gefragt, ob er ihm denn mit höherer Taktung resp. mit weiteren Prozessoren wirklich auf die Sprünge helfen kann, wo doch die bereits vorhandenen CPU’s offensichtlich z.B. über 90% der Rechenzeit damit zubringen, auf andere langsamere Komponenten zu warten. Eine solch langsame Komponente ist schnell ausgemacht: Disk-I/O. Würde man hier weitaus mehr von häufig benötigten Daten im RAM halten können – z.B. Active Directory, Postfächer, Datenbanken, Suchindizes – sähe die Sache ganz bestimmt anders aus. Gleiche Asymmetrie ist aber auch zwischen RAM und der CPU, dem CPU-Cache und den CPU-Registern feststellbar; letztere wiederum sind leistungsfähiger, wenn sie länger sind – etc. Das alles greift ineinander und ergibt per Saldo einen Vorteil für „64″.

Anders ausgedrückt heißt das, mit der 64-Bit-Technik können vor allem die Unternehmensserver weitaus effektiver beschleunigt bzw. von der Kapazität her erweitert werden, als mit noch so vielen und noch so „hochtourigen“ Prozessoren. Stark ausgelasteten TransObjects®-Servern kann dadurch weitaus mehr geholfen werden, als etwa mit den sündhaft teuren „Mehrzylindern“ (Mehrprozessor-Rechnern, auch „Multiprocessing“-Maschinen genannt), jedoch mit nur 32-Bit-Technik.

Hingegen erschließt sich einem die Sinnhaftigkeit einer 64-Bit-Workstation für einen TransObjects®-Anwender nicht sofort, schließlich haben wir hier keine Serveraufgaben zu bewältigen und die TransObjects®-Clients konsumieren noch lange keine GBytes an Speicher.

Nun, es trifft zwar zu, dass eine auf einem 64-Bit’er isoliert ausgeführte TransObjects®-Anwendung keine weltbewegenden Performancevorteile gegenüber einer hinlänglich dimensionierten 32-Bit-Umgebung aufweist, denn diese Vorteile rühren – wie bereits ausgeführt – lediglich von dem, was mit dem Prädikat „enhanced memory“ in Intel’s „EM64T“ bezeichnet wird und das ist bei einer schwach ausgelasteten Workstation weiß Gott nicht dramatisch. Kommt jedoch der Anwender auf die Idee, eine der modernen Streaming-Software parallel zu TransObjects® mit auszuführen, sieht es natürlich ganz anders aus. Und solch hungrige Applikationen sind bereits im Anrollen – dafür hat diejenige Branche, in der auch wir tätig sind, J entsprechend gesorgt.

Trotz dieser sich klar abzeichnenden Entwicklung lautet das häufigste Verkaufsargument in denjenigen Teilen der Softwarebranche, die das Neue nicht beherrschen, gegenüber der Zeit vor 15 Jahren nahezu unverändert: „64-Bit? (früher 32-Bit?) Das brauchen Sie nicht. Unsere Logistik- und/oder Verzollungsanwendung läuft bestens auf den jetzigen Systemen…“ usw. Ja, wortwörtlich genommen stimmt es sogar: So etwas brauchen Sie als TransObjects®-Anwender wirklich nicht.

Viele haben noch die Turbulenzen des Übergangs von 16- auf 32-Bit in den frühen 90’ern gut in Erinnerung. Nun steht unweigerlich etwas Ähnliches ins Haus und zwar mit den offensichtlich unaufhaltsam aufkommenden „64-Bit“-ern. Diese Entwicklung betrifft die Hardware, die Betriebssysteme und schlussendlich auch die Anwendungs-Software.

Obwohl die K&S Informatik und deren TransObjects® weite Teile der neuen 64-Bit-Welt längst erschlossen haben, z.B. durch die Inbetriebnahme von 64-Bit Itanium-Servern im TransObjects® Message Clearing Center, häufen sich die Fragen zu diesem Thema erst jetzt so richtig, wo viele Anwender eine Migration auf die neuen Plattformen ganz konkret für sich erwägen und sich z.B. mit der Frage Itanium oder EM64 konfrontiert sehen. Diese aber auch andere Fragen zu diesem Thema, was die neue Welt mit sich bringt, was zu beachten ist und was das für uns als TransObjects®-Anwender bedeutet, versuchen wir vorliegend zu klären

Was ist der Sinn und Zweck eines verteilten Datenbanksystems?

Auf zahlreichen FAQ’s und auch an anderen Stelen unserer Website wird die extrem ausgeprägte Client/Server-Topologie von transObjects® als eines dessen wichtigsten technischen Merkmale neben der durchgehenden Objektausrichtung charakterisiert. So werden beispielsweise in unseren FAQ-Artikeln „transObjects® vs. WinXY…“ bzw. „…Citrix- WinTerm-Software…“ gravierende Konsequenzen des Wegbleibens einer Client/Server-Topologie (bzw. gar der aktiven Datenbankinstanz überhaupt) diskutiert und mit Beispielen aus praktischer Erfahrung untermauert. Die Zielsetzung dieses Artikels kann daher nicht darin bestehen, die Sinnhaftigkeit der Client/Server-Topologie vor dem Hintergrund beispielsweise einer Terminal-Topologie zu beleuchten. Vielmehr beschäftigen wir uns nachfolgend mit einer Art Enhancement oder Verallgemeinerung der Client/Server-Topologie und zwar mit den sog. verteilten Datenbanksystemen.

Bei der Beschreibung der Systemvoraussetzungen fürs transObjects® fällt bereits der Begriff des verteilten Datenbanksystems (DDS, distributed database system) und zwar im Zusammenhang mit der aktiven Datenbankinstanz, als eine alternative Systemvoraussetzung hierzu. Und das ist es auch in der Tat, d.h. eine einzelne Datenbankinstanz (also ein Datenbankserver) ist ein Spezialfall eines verteilten Datenbanksystems, gewissermassen ein verkrüppeltes DDS. Die Frage, die in diesem Zusammenhang sofort gestellt wird – sozusagen die FAQ schlechthin – lautet, ob denn die ganze Philosophie des DDS in der Nutzung mehrerer Datenbankinstanzen bestehe? Ist beispielsweise der Datenaustausch mit den Datenbanken des transObjects®-Datacenters und parallel dazu das Arbeiten mit dem unternehmenseigenen Datenbankserver (beispielsweise bei der Anwendung von Corporate-Editions der elektronischen Verzollungsanwendungen) bereits als Anwendung eines verteilten Datenbanksystems zu bezeichnen?

Dazu ein klares „Ja“. Denn eine abwechselnde Nutzung mehrerer Datenbankserver durch einen Client, der Daten aus geographisch weit verstreuten Datenbanken benötigt und diesen unterschiedliche Daten zukommen lässt, fällt in der Tat in die Kategorie der Nutzung eines verteilten Datenbanksystems. Das tut jedoch dem High-End-Anspruch eines DDS keinen Abbruch – denken wir doch an das DDS, das bereits mit nur einem einzelnen Datenbankserver losgeht. Aber um auf die obige Frage zurückzukommen, ja, das Wesen eines DDS besteht im Prinzip in einer Vereinigung von mehreren Datenbankinstanzen, wobei erst deren Zusammenwirken untereinander ein modernes DDS ausmacht..

An dieser Stelle sei vorweg genommen, dass ein DDS per se nichts mit dem Clustering zu tun hat – auch nicht mit einem Hauptknotencluster unter Windows 2003 Enterprise- oder Datacenter-Edition. Denn das Wesen des Clusterings – zumindest unter den gängigen Betriebssystemen – besteht ja darin, einzelne Clusternodes abwechselnd für bestimmte Datenbankinstanzen und Datenpools zu aktivieren. Das Failover-Prinzip des Clusterings bedeutet die potentielle Bereitschaft eines Clusternodes zur Aufrechterhaltung einer Datenbankinstanz mit einem zugeordneten Datenpool, wenn andere Nodes diese Bereitschaft – aus welchen gründen auch immer – nicht aufrechterhalten können.

Um ein klassisches DDS zu charakterisieren, entwerfen wir ein Szenario, in dem die Client/ Server-Topologie mit nur einer Datenbankinstanz an ihre Grenzen stossen könnte, wobei gleich vorweggenommen sei, dass dies kein Fall ist, wo andere Topologien die bessere Wahl wären; ganz im Gegenteil. Mit einer Terminal-Topologie (zu denen gewissermassen auch eine Browser-Anwendung zählt) könnten wir nachfolgend gleich einpacken.

Seien A und E Standorte eines Unternehmens entsprechend in Afrika und in Europa. Das Unternehmen wendet diverse Special-Builds von transObjects®-Applikationen für den operativen Bereich sowie processPRO für den administrativen Bereich an, wo es um vielfältige Auswertungen dieser Daten geht. Natürlich bietet sich eine via Internet erreichbare zentrale Datenbankinstanz hierfür bestens an, z.B. am Standort E, so dass am Standort A mit den Clients über eine WAN-technische Anbindung (Internet) auf diese Instanz zugegriffen werden kann. Dies ist grundsätzlich kein sehr grosses Problem, wo doch transObjects® für eine Minimierung des Client/Server-Datenflusses bekannt ist. Dann können wir ruhigen Gewissens voraussetzen, dass die Bandbreite der WAN-Anbindung an die zentrale Datenbankinstanz signifikant geringer ist, als die LAN-technische Anbindung am Standort E.

Wo ist also das Problem bzw. der Sinn und Zweck eines DDS? Nun, die geringere Bandbreite der WAN-Anbindung an die Datenbankinstanz kann nicht mehr umgangen werden, wenn der Datenfluss notwendigerweise sehr hoch ist. Das könnte beispielsweise dann der Fall sein, wenn am Standort A Daten an sehr vielen und stark frequentierten Clients nach E geschickt werden – oder denken wir an das Beispiel des philippinischen Energieversorgers Real-World Benchmark: Caché vs. Oracle…, wo anderweitig erfasste Daten mit einem hohen Stream in den zentralen Server (in unserem Beispiel wäre es der Standort E) „gepumpt“ werden müssen. Hier reicht langsame Leitung schlicht nicht mehr aus, egal, wie schnell die Internetverbindungen künftig werden sollten.

Was also tun? Auch am Standort E werden vielen Daten im operativen Bereich erfasst und ebenso wir am Standort A transObjects® processPRO angewendet, um Auswertungen, Controlling-Aufgaben etc. wahrzunehmen. Somit ist es damit nicht getan, den Datenbankserver von E nach A zu verlegen. Was man aber machen kann, ist auch am Standort A eine Datenbankinstanz zu etablieren. Das Bandbreitenproblem ist damit zwar behoben, nicht jedoch das der Datenintegrität, das so sauber durch eine zentrale Datenbankinstanz gelöst werden konnte. Hier hilft nur eines, nämlich ein gezielt implementierter Datenabgleich von den beiden Datenbankinstanzen untereinender und zwar über die bestehende WAN-technische Verbindung.

Was erreichen wir dadurch? Nun kann an beiden Standorten mit der hohen Bandbreite einer LAN-technischen Verbindung gearbeitet werden, es können datenintensive Streams gespeichert und umfangreiche Abfragen problemlos durchgeführt werden – dem verteilten Datenbanksystem aus den beiden Instanzen an beiden Standorten sei Dank.

Natürlich stösst ein solches DDS durchaus an seine Grenzen. Haben wir beispielsweise nicht nur 2 sondern 20 Standorte, so wäre der Aufwand des Datenabgleichs und der Bandbreitenverbrauch hierfür enorm. Oder denken wir an das zuvor zitierte Beispiel des Energieversorgers, der nachts erst einmal gute zwei Stunden lang Daten in den (lokalen) Oracle-Datenbankserver eingelesen hat. Solche Datenmengen über eine Internetleitung abzugleichen, würde viel zu lange dauern. Und wäre ein solcher Abgleich endlich einmal durch, wären die Daten womöglich längst obsolet. Deshalb sprechen wir vom gezielten Abgleich*. In unserem Beispiel wären nur bestimmte Daten oder auch Zwischenresultate der Queries etc. abzugleichen.

________________________________________

* Um ein verteiltes Datenbanksystem mit Hilfe der transObjects®-Technologie aufzubauen, werden Enterprise bzw. Special-Build-Editions der transObjects®-Clients benötigt, ferner sind Caché-Server für alle DDS-Standorte erforderlich. Einen gezielten Datenabgleich übernehmen entweder die jeweiligen Caché-Server selbst oder proprietäre transObjects®-Services.

ItaniumDDS

DDS-Schema mit zwei Standorten – im Beispiel: Hewlett Packard 64-Bit (Itanium) Integrity – Reihe, mit Superdome-Servern in den RX2600’er Workstations.

Warum denn TransObjects® und nicht etwas anderes?

Diese Frage stellen sich viele IT-Verantwortliche bzw. Entscheidungsträger, die bei anstehenden Neuanschaffungen im Bereich IT die Qual der Wahl haben. Der nachfolgende Leitfaden möge Ihnen die Entscheidung ein wenig erleichtern; jedenfalls ist TransObjects® insbesondere dann die richtige Wahl, wenn Sie an dem abzulösenden oder dem potentiell anzuschaffenden System einiges aus dem Folgenden zu konstatieren bzw. Anlass zu einigen der folgenden Fragestellungen haben.


*) Sie fragen sich (und den Anbieter Ihrer Branchenlösung auch), warum denn Ihre Branchensoftware immer noch im Textmodus mittels archaisch anmutender Terminal-Emulatoren(!) betrieben werden sollte – und das in der Ära von Multimedia und 3D-Grafiken, die Ihr System längst unterstützt!? Es kann sich hierbei um ein älteres System basierend auf DOS, UNIX, XENIX, MUMPS, AS400 – um nur diese zu nennen – handeln;

*) Ihre Branchenlösung hat den typischen Windows®-Look, dieser wird aber nur auf indirektem Wege erzielt, nämlich mittels ominöser Interpreter, die zumeist in sog. Desktop-Datenbanken als Entwicklungsumgebungen vorhanden sind. Zu recht befürchten Sie Einbussen bei der Performance, Stabilität und sehen die Kontinuität dieser Lösung nicht als gesichert an;

*) Ihre Branchenlösung beruht sogar auf nativen Windows®-Clients (d.h. ohne die o.e. Interpreter), beherbergt aber immer noch Anachronismen aus einer Zeit, der sie ursprünglich entstammt. Sie befürchten zu recht Konzessionen zugunsten des alten DOS, Mumps, R2 oder welchen alten Systems auch immer und vermissen die Zukunftssicherheit einer strikt objektorientierten Entwicklung, insbesondere der objektorientierten Hierarchie;

*) Ihre Branchenlösung ist objektorientiert implementiert und bedient sich sogar aktiver Datenbankinstanzen. Prima! Allerdings sind diese Datenbankserver leider allesamt SQL-orientiert, d.h. tabellarisch. Sie fragen sich (und den Hersteller ebenfalls), wie denn das zusammenpassen würde. Sie misstrauen dem Paradigmenwechsel an der „Client/Server“-Schnittstelle und befürchten, dass dadurch die eigentlichen Vorteile der oo-Technologie zunichte gemacht werden könnten;

*) Sie planen den Aufbau eines internationalen oder gar interkontinentalen Verbundes, mit logisch gesehen einem aber sehr wohl verteilten Datenpool – befürchten aber Engpässe auf der Datenautobahn. Sie möchten ferner Ihre Daten teilweise im Web publizieren, etwa ein Auskunftssystem über den Bearbeitungsstand von bestimmten Aufträgen im Internet anbieten (Tracking & Tracing bei den Forwarders);

Sie befürchten, nicht alle Kompromisse den anderen überlassen zu können, sondern dass Ihnen sehr wohl einige davon „erhalten“ bleiben könnten.

Kann ich transObjects? mit einem anderen Datenbankserver als Caché betreiben?

Dieser Artikel ist outdated. Siehe die aktuellere Version u.a. „Kann ich transObjects® unter Linux bzw. unter Oracle, MSSQL etc. betreiben?

Diese Frage wird uns meistens von Anwendern ziemlich teurer Datenbanken gestellt, die nur schwer einzusehen vermögen, dass sie u.U. horrende Lizenzgebühren für etwas investiert haben, dass in der oo-Welt völlig unzulänglich ist


Die klare Antwort lautet „Nein“ !

TransObjects® setzt eine objektorientierte (und aktive) Datenbankinstanz voraus. Somit scheiden zunächst einmal alle Datenbankserver, die das Kürzel „SQL“ im Namen tragen, ebenso aus, wie z.B. Oracle, das ebenfalls eine SQL-Datenbank ist. Aber auch objektorientierte Datenbankserver, sofern es diese überhaupt gibt, etwa:

werden spätestens seit der dritten Generation von TransObjects® nicht mehr unterstützt. Der Grund ist im proprietären Charakter der jeweiligen internen Datenmodelle, Klassenarchitekten, Programmiersprachen etc. zu suchen.

Siehe auch: