Publications‎ > ‎Software reviews‎ > ‎

Een Nieuwe Orde

Een schematische weergave van een object database uit het Jasmine hulpbestand. In relationele database systemen is de ondersteuning voor het gestructureerd opslaan van grote binaire objecten, zoals audio, video en animaties, veelal beperkt. Dit komt omdat in een relationele database alle gegevens in tabulaire vorm, dus als een verzameling rijen en kolommen, worden gerepresenteerd. Deze architectuur leent zich uitstekend voor het gestructureerd bewaren van eenvoudige gegevens die enkel uit getallen en tekst bestaan. Het bewaren en vooral het manipuleren van bijvoorbeeld multimedia gegevens, die nu eenmaal van nature complexer en variabeler van aard zijn, levert echter vooral een structureel probleem op. Hiervoor biedt Computer Associates, na samenwerking met Fujitsu, sinds kort een structurele oplossing met Jasmine. PCM neemt met Jasmine 1.1 voor Windows NT een duik in de voorbode van een nieuwe generatie multimedia database ontwikkelingssystemen.

CA-Jasmine 1.1a


Overzicht

De JADE Application Manager met aan de linkerkant de in de database aanwezige scenes en aan de rechterkant de scene eigenschappen. Jasmine is een volledig object-georienteerd database systeem, dat bij uitstek geschikt is voor het gestructureerd bewaren van multimedia gegevens. In een object database als Jasmine wordt informatie gerepresenteerd als een verzameling ob jecten die eigenschappen en methoden bezitten. Een object is altijd van een bepaalde klasse. Mede aan de hand van de basisklasse bepaalt Jasmine bijvoorbeeld waar en hoe de object informatie in de database wordt bewaard.

Met JADE, de bijbehorende ontwikkelomgeving van Jasmine, kun je multimedia applicaties ontwikkelen voor gebruik op het internet of intranet en andere client/server omgevingen. Deze toepassingen communiceren dan met de database objecten via ODQL, Jasmine’s object-georienteerde query taal.

De beschikbaarheid van de JADE plug-in voor Netscape Navigator betekent bovendien dat de beschikbare functionaliteit zeer uitgebreid zou kunnen zijn, maar deze plug-in was helaas niet op onze evaluatie CD-ROM te vinden. Wel aanwezig was WebLink 1.1, waarmee je client/server toepassingen op basis van het CGI-protocol kunt ontwikkelen. Ook een JADE ActiveX control ontbreekt overigens niet, zodat ook vanuit bijvoorbeeld Visual Basic de Jasmine database benaderd kan worden.

Gebruiken

Ontwerpen

Met de JADE Class Browser beschikt Jasmine over een krachtige en gebruikersvriendelijke manier om de database objecten te benaderen. Het ontwerpen van een database in Jasmine heeft vanwege de object-georienteerde architectuur meer weg van het ontwerpen van een moderne applicatie dan van een relationele database. Het begint bij het inventariseren van de benodigde klassen, waarna je vervolgens de relaties tussen de klassen en de bijbehorende attributen en methoden dient vast te stellen. In deze fase kunnen natuurlijk alle gebruikelijke afwegingen in het object-georienteerd ontwerpen naar voren komen, zoals het gebruiken van meervoudige overerving, po lymorfisme en mate van attribuut-afscherming. Deze benadering is kortom slechts gedeeltelijk te vertalen naar een traditioneel database ontwerp, waar bijvoorbeeld instanties van klassen tabellen kunnen zijn en de bijbehorende methoden procedures.

Bij de vertaling van het logische ontwerp naar de fysieke opslag van de database inhoud is het bovendien handig te weten dat een Jasmine store uit meerdere diskbestanden kan bestaan, zodat een enkele database eenvoudig over meerdere harde schijven kan worden verdeeld.

Verbinden

In een relationele database geef je een relatie aan tussen twee tabellen door de hoofdsleutel, die bestaat uit een unieke tekencombinatie, van de basistabel op te nemen als veld in de detailtabel. In Jasmine kan deze belangrijke functionaliteit op een heel natuurlijke manier worden geimplementeerd door simpelweg de interne referentie naar het basisobject als eigenschap te definieren in het detailobject.

Natuurlijk kun je ook nog steeds relaties op de traditionele manier leggen, dus op basis van de attribuutwaarde van het basisobject, maar in veel gevallen is de snelheid waarmee het gerefereerde object opgehaald kan worden hoger, aangezien Jasmine dan geen vertaalslag hoeft te maken.

In dit verband is het overigens wel van belang te weten dat Jasmine standaard niet de integriteit van object referenties waarborgt, alhoewel dit gelukkig wel tot de mogelijkheden behoort. Hiervoor dien je dan zodanig de delete() methode van het database object te herdefinieren dat deze bij verwijdering zelf de gerelateerde objecten opzoekt en verwijdert.

Communiceren

Ook vanaf de commando prompt kun je de Jasmine database benaderen met ODQL. ODQL, de object-georienteerde query taal in Jasmine, kan net als SQL zowel gebruikt worden om gegevensstructuren te definieren als om informatie uit de database op te vragen. Maar ODQL heeft meer te bieden. Zo is het tevens mogelijk om variabelen te declareren en sleutelwoorden als if en while te gebruiken, waardoor je ODQL eigenlijk beter als programmeertaal kunt zien dan als slechts een formuleringstaal voor database gebruikers.

Naast de mogelijkheid om interactief de database te bevragen biedt ODQL voor programmeurs bovendien de mogelijkheid om queries in te bedden in C of C++ code. De ODQL formuleringen worden dan voorbewerkt tot C of C++ broncode, waarna het gebruikelijke compileren en linken van de applicatie kan plaatsvinden.

Ontwikkelen

Visualiseren

De Query Editor verschaft een grafische interface waarmee je ODQL beweringen op kunt stellen. Het hoofdvenster in JADE, de Jasmine Application Development Environment, is de Application Manager. Hier kun je onder meer toepassingen en scenes, oftewel formulieren, aanmaken en bijwerken. Bovendien kun je vanuit de Application Manager andere vensters oproepen, zoals bijvoorbeeld de Class Browser. Deze geeft op een hierarchische manier toegang tot de klassen families en de daarin opgenomen klassen, objecten, queries, methoden en eigenschappen van alle elementen in de Jasmine database. Een nogal gevaarlijke eigenschap is trouwens wel dat je met slechts één handeling een complete applicatie kunt verwijderen zonder dat je even om bevestiging gevraagd wordt… We spreken uit ervaring! Overigens ontbreekt het Undo commando in alle onderdelen van JADE.

Met behulp van de Class Property Inspector en de Object Property Inspector kun je database klassen en objecten aanmaken en instellen voor gebruik in een scene. In de Query Editor stel je queries visueel op door simpelweg de gewenste parameters te selecteren. De query kan direct uitgevoerd worden zodat je de resultaten meteen kunt controleren. In het begin is het bovendien leerzaam om de onderliggende ODQL te bekijken.

Alle hierboven genoemde onderdelen van JADE presenteren hun gegevens op een Windows Explorer-achtige manier, met aan de linkerkant de object hierarchie en aan de rechterkant de details voor het geselecteerde element. JADE biedt dus in al deze vensters een consistent en natuurlijk aanzicht op de objecten in de database.

Hoewel het ontwikkelen van Jasmine toepassingen kortom van een hoog point-and-click gehalte is, blijft er altijd nog applicatie-specifieke functionaliteit over die handmatig geprogrammeerd moet worden. Voor deze ambachtelijke taak heeft JADE de Method Editor.

Repareren

De JADE Player met op de voorgrond het Debug Window waarin de uitgevoerde acties getoond worden. Het debuggen van een Jasmine scene is wel enigzins problematisch. JADE doet namelijk niet meer dan het weergeven van de ontvangen boodschappen en uitgevoerde acties in een bepaald niet gebruikersvriendelijk venster. Zo ontbreekt bijvoorbeeld een boodschappenfilter, waardoor onder meer iedere muisbeweging wordt weergegeven. Dit leidt al snel tot venstervervuiling. Bovendien zou de Step functie wel wat kleinere stapjes kunnen nemen.

Tenslotte valt er nog wel iets over de foutbestendigheid te zeggen: JADE is nog niet goed berekend op oneigenlijk gebruik. Zo crasht JADE steevast met een NULL-pointer foutme lding bij het compileren van scenes waarin aan niet-bestaande objecten gerefereerd wordt. De Jasmine database server is overigens met geen mogelijkheid van slag te brengen, wat natuurlijk wel veel belangrijker is.

Conclusie

Met Jasmine vervaagt de scheiding tussen database- en applicatie ontwerp. Het biedt één centrale opslagplaats voor brongegevens, gedefinieerde klassen, geinstantieerde objecten en de bijbehorende functionaliteit. Vanwege de volledig object-georienteerde architectuur kun je iedere te beheren verzameling gegevens op de gewenste manier bewaren en beheren door er een klasse voor te definieren. Vanwege deze inherente flexibiliteit is Jasmine daarom al voorbereid op toekomstige ontwikkelingen, wat die ook mogen zijn.

Met JADE krijg je op een gebruikersvriendelijke wijze toegang tot de Jasmine database. De robuustheid van deze ontwikkelomgeving is echter nog lang niet optimaal. Met behulp van de JADE Netscape plug-in, WebLink interface en ActiveX control kan de Jasmine database vanuit vrijwel iedere omgeving worden benaderd.

Bedenk wel dat een eerste kennismaking met Jasmine enige tijd zal vergen vanwege de vernieuwende object architectuur die doorwerkt in alle aspecten van het database gebruik. Zo zul je bijvoorbeeld al snel kennis maken met ODQL, de object query taal. Bovendien zou het leertraject voor 4GL-ontwikkelaars wel eens korter kunnen blijken te zijn dan voor relationele database-beheerders.

Systeemeisen

Dit zijn de minimale systeemeisen voor Jasmine volgens Computer Associates.

Client

Microsoft Windows: Hardware: PC met Pentium processor, 32 MB geheugen, 70 MB schijfruimte; Software: Windows NT 4.0 of Windows 95, TCP/IP netwerk verbinding, Microsoft Visual C++ 4.2 of hoger om de Jasmine C API te gebruiken
Sun Solaris: Hardware: 32 MB RAM, 170 MB schijfruimte; Software: Solaris 2.5, TCP/IP netwerk verbinding, SPARCompiler C 3.0 of C++ 4.0 om de Jasmine C API te gebruiken
Server

Microsoft Windows: Hardware: PC met Pentium processor, 32 MB geheugen, 100 MB schijfruimte; Software: Windows NT 4.0, Microsoft Visual C++ 4.2 of hoger

Sun Solaris: Hardware: 32 MB RAM, 240 MB schijfruimte; Software: Solaris 2.5, SPARCompiler C 3.0 of C++ 4.0

Afbeeldingen

Een schematische weergave van een object database uit het Jasmine hulpbestand. De JADE Application Manager met aan de linkerkant de in de database aanwezige scenes en aan de rechterkant de scene eigenschappen. Met de JADE Class Browser beschikt Jasmine over een krachtige en gebruikersvriendelijke manier om de database objecten te benaderen. Ook vanaf de commando prompt kun je de Jasmine database benaderen met ODQL. De Query Editor verschaft een grafische interface waarmee je ODQL beweringen op kunt stellen. De JADE Player met op de voorgrond het Debug Window waarin de uitgevoerde acties getoond worden.