TweetFollow Us on Twitter

Jovis, a Database Engine

Volume Number: 14 (1998)
Issue Number: 4
Column Tag: Tools Of The Trade

Jovis, a Database Engine in a Tiny Package

by Edward Ringel

A robust database engine for HyperCard and other XCMD compatible environments

Introduction

Knowledge base development, particularly contract or in-house development, does not require a C, Pascal or C++ environment. To the contrary, many corporate databases and commercially deployed knowledge bases are well supported by database languages such as Fourth Dimension. Other knowledge bases use an authoring front end along with an attached database engine. For example, I use a product called Scientific American Medicine, a complete electronic textbook of internal medicine, that is extensively cross referenced and searchable. It was developed with a MacroMedia Director front end. High level, programmable authoring environments such as HyperCard, SuperCard, and Director can be particularly appropriate when the knowledge base includes pictures, sounds, and videos. These environments are inherently multimedia capable and require little programming knowledge to play a QuickTime clip or show a PICT.

Jovis, by DAS Works, is an extended XFCN that provides broad relational and architectural database capabilities for environments that support XCMD's and XFCN's. This is a comprehensive, well documented product that can support knowledge base development and more traditional database functions in a number of different user settings.

Out of the Box

I received a single disk, a serial number, and a big book. The product comes as a single user SDK or an individually configured Client/Server product; I was sent the single user product for review. In order to use Jovis, I needed to install the product into a HyperCard stack. I could not install the XFCN's into HyperCard itself. Installation, rather than execution is protected by the serial number. (Licensing is addressed later.) The code I used is 68K based and is just under 400K. A PPC version is also available if requested.

The documentation consists of a 16 lesson tutorial and extensive documentation of the various calls. As with most good documentation, the tutorial builds nicely upon itself and is easy to follow. DAS Works does not supply step by step "solutions" to the tutorials; this forces the reader to actually work through the projects to see if they work. The demo supplied with the product actually is a culmination of the tutorials and is a real world example. The lessons address both the relational and architectural capabilities of the product. An introduction also is provided to show some of the intricacies of multi-user issues such as record locking and transactions.

The reference section comprehensively addresses the Jovis calls. Each entry describes the syntax of the call, provides an example, describes the action of the call, and offers relevant comments.

Although a tutorial for Jovis is provided, there is little in the way of more complex examples or a section on "putting it all together." I think they must assume that the user has a good idea of how to use a database. The tutorial teaches the nomenclature and specifics of this particular environment, but does not address design or the management of a complex environment.

The Product

Jovis supports a comprehensive set of relational commands and structures. Relational file creation and open/close operations are very simple and straightforward. Physical files on disk are referred to as "collections," and can contain multiple tables ("relations") and indices. Architectural files are flat file structures that allow the storage, indexing, and rapid retrieval of arbitrary size binary objects (Binary Large Objects, or BLOBs.)

Relation and index construction within a collection requires some work and programming, as with any database system. Jovis offers a shortcut to field and index creation by permitting the creation of a field list or index list. Conceptually, this is like a STR# resource that is then read into the create function, but it is supported as a text string within the scripting language of the front end environment.

Reading and writing records can be performed from script variables or directly into fields in a card or background. Large amounts of data can be read directly into records by an ImportData command. This can be particularly valuable for filling a knowledge base once the structure has been designed and created. There also is an ExportData command.

Obviously, an important feature of a relational engine is the ability to perform a complex search. Jovis does this well. There is a nice section in the tutorial that describes the various comparison operators and how to create compound selection criteria. Jovis supports range searches and the creation of selections. Multiple selections for a given relation are permitted. Merges, which are the same as SQL joins, are supported as a two step process. Selections are first created and then merged. The tutorial completely explains this process.

Record locking and transactions are supported for the multiuser version. There is a section on how the Jovis server works at a file level, but the manual does not teach you how to undertake the design and deployment of a shared, multiuser database system. Calls provided, however, will permit the knowledgeable user to implement a robust, safe multiuser database.

The architectural commands are as important as the relational instructions. Multimedia developers will make heavy use of BLOBs and managing these objects is critical. One very nice feature of Jovis is its ability to embed an architectural file within a relational file, permitting linkage of relational records to architectural indices. As with the relational commands, there is a series of tutorials that teaches the user how to manipulate flat file constructs in the Jovis environment. The tutorial specifically teaches how to use architectural and relational commands and constructs together, which for many developers may be the heart of the product.

Using Jovis

Jovis can be used in any XCMD compatible environment. I tested Jovis in a somewhat older version of HyperCard as well as the current version. It also will run in SuperCard, Director, and Oracle Media Objects. Jovis has an initial startup memory requirement of 512K over and above those of the scripting environment. In some cases, the larger the database the greater the memory requirement.

I found the product difficult to benchmark in a meaningful way. Particularly in a multimedia setting, with various scripting environments and different hardware configurations, any comparison might well be irrelevant to the user/programmer. My overall impression was that performance was more than adequate.

Use of the product requires that the programmer follow some conventions regarding the need for the programmer to create several global variables which would then be for the use of the database engine rather than the stack. One very nice feature of this product is very good error management. In addition to the XFCN managing and communicating errors, it is possible for your script to intercept and handle error conditions as well. The ability to provide more than "plain vanilla" dialogs reporting an error condition with graceful recovery is critical to a commercial product.

It was difficult to pick a representative complete script to give a flavor of how the product is used. In the end, I simply took the first one in the tutorial, demonstrating creation of a relational file:

function CreateNewFile
   global myDB, JovisErrorCode
   --myDB is reserved for exclusive use by Jovis 
   if myDB = empty then
      put "Jovis" into myDB
   --initialize myDB
      get Jovis("CreateCollection", "myDB")
      --all calls to Jovis are in the format get Jovis(),
      --with the first parameter the action selector
      if item 1 of JovisErrorCode = "error" then
         answer JovisErrorCode
         put empty into myDB
         return "false"
      else if item 1 of JovisErrorCode = "Warning" then
         answer JovisErrorCode
         put empty into myDB
         return "false"
      end if
    else
      return "false"
   end if
   return "true"
end CreateNewFile

Here are some other brief examples:

Create a relation named customers in the file myDB:

on CreateDemoRelation
   get Jovis("CreateRelation", "myDB", "Customers")
end CreateDemoRelation

Create an text index of 8 character length named Last_Name in the relation Customers in the file "myDB"

on CreateTextIndex
   get Jovis("CreateIndex", "myDB", "Customers",  
                     "Last_Name", "text", 8)
end CreateTextIndex

Perform a selection searching on Last_Name in our hypothetical Customers database:

on DemoSelect

   ask "Enter last name to set selection to:"
   if the result = "cancel" then exit DemoScript
   put it into Last_Name
   Put "Field Last_Name = ["& Last_Name &"]" into Criteria
   Put "Last_Name, phone, Customer_ID, Account_Start"  
                  into FieldList
   get Jovis("Set Selection", "myDB", "Customers", 
                  fieldList,Criteria)
end DemoSelect

While I have not commented this code, I think the general sense of the steps and syntax is apparent.

Licensing and Costs

This product has a somewhat complex licensing arrangement. The basic price for a single user license (single computer for non-commercial distribution) is $345. Thus, the person creating a database for personal use is spared the expense of a full commercial license. If the database will be used on more than a single computer, an additional fee of $350 is required. This additional fee covers everything from unlimited commercial distribution to simultaneous use of the single user product on a second computer in the same office. Hypothetically, a knowledge base with a HyperCard front end and a Jovis database that sells 1000 copies still only costs you $695 in license fees to DAS Works. Not too shabby.

The server version is more expensive, but again within reason. The basic multiuser package comes with a server and a three user license and costs $435. Each additonal user costs $85. The server product is protected by a hardware ADB lock. Licenses for the commercial distribution of a multiuser product developed with Jovis are handled on a case by case basis.

The Bottom Line

Jovis is a relational and flat file engine that lives in the XCMD world. It has a complete set of relational commands nicely complemented by architectural commands. The two schemes can be used together to create traditional relations supplemented by BLOBs: a perfect combination to implement multimedia presentations. Although difficult to judge, it appears that performance is more than adequate. The pricing scheme has many steps but is fair. Were I developing multimedia on Macintosh, I would give this product serious consideration to implement my work.

It would be very helpful if DAS Works created a "User Manual." The reference manual and tutorial are both quite good. However, once the user is acquainted with the product, he or she will want a document on putting it all together without needing to browse the tutorials again, and something more cohesive than a function call reference. Additionally, Jovis is sufficiently different in structure and nomenclature from SQL that some in depth solutions to complex examples are warranted. Finally, I respectfully suggest a set of text files containing the scripts for each of the tutorials.

Products Reviewed

Jovis Single User SDK version 1.04. DAS Works, Inc. 250 West 104th St, Suite 84. New York, NY 10025-4292. Toll free (800) 972-2483. Fax (212) 663-4503. email to info@dasworks.com or sales@dasworks.com. There is a website at http://www.dasworks.com/.


Ed Ringel is Contributing Editor for product reviews for MacTech Magazine. When he's not working at the computer or enjoying the Maine lakes and woods, he's a respiratory and critical care physician in Waterville, Maine. He can be reached at eringel@mint.net.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Tokkun Studio unveils alpha trailer for...
We are back on the MMORPG news train, and this time it comes from the sort of international developers Tokkun Studio. They are based in France and Japan, so it counts. Anyway, semantics aside, they have released an alpha trailer for the upcoming... | Read more »
Win a host of exclusive in-game Honor of...
To celebrate its latest Jujutsu Kaisen crossover event, Honor of Kings is offering a bounty of login and achievement rewards kicking off the holiday season early. [Read more] | Read more »
Miraibo GO comes out swinging hard as it...
Having just launched what feels like yesterday, Dreamcube Studio is wasting no time adding events to their open-world survival Miraibo GO. Abyssal Souls arrives relatively in time for the spooky season and brings with it horrifying new partners to... | Read more »
Ditch the heavy binders and high price t...
As fun as the real-world equivalent and the very old Game Boy version are, the Pokemon Trading Card games have historically been received poorly on mobile. It is a very strange and confusing trend, but one that The Pokemon Company is determined to... | Read more »
Peace amongst mobile gamers is now shatt...
Some of the crazy folk tales from gaming have undoubtedly come from the EVE universe. Stories of spying, betrayal, and epic battles have entered history, and now the franchise expands as CCP Games launches EVE Galaxy Conquest, a free-to-play 4x... | Read more »
Lord of Nazarick, the turn-based RPG bas...
Crunchyroll and A PLUS JAPAN have just confirmed that Lord of Nazarick, their turn-based RPG based on the popular OVERLORD anime, is now available for iOS and Android. Starting today at 2PM CET, fans can download the game from Google Play and the... | Read more »
Digital Extremes' recent Devstream...
If you are anything like me you are impatiently waiting for Warframe: 1999 whilst simultaneously cursing the fact Excalibur Prime is permanently Vault locked. To keep us fed during our wait, Digital Extremes hosted a Double Devstream to dish out a... | Read more »
The Frozen Canvas adds a splash of colou...
It is time to grab your gloves and layer up, as Torchlight: Infinite is diving into the frozen tundra in its sixth season. The Frozen Canvas is a colourful new update that brings a stylish flair to the Netherrealm and puts creativity in the... | Read more »
Back When AOL WAS the Internet – The Tou...
In Episode 606 of The TouchArcade Show we kick things off talking about my plans for this weekend, which has resulted in this week’s show being a bit shorter than normal. We also go over some more updates on our Patreon situation, which has been... | Read more »
Creative Assembly's latest mobile p...
The Total War series has been slowly trickling onto mobile, which is a fantastic thing because most, if not all, of them are incredibly great fun. Creative Assembly's latest to get the Feral Interactive treatment into portable form is Total War:... | Read more »

Price Scanner via MacPrices.net

Early Black Friday Deal: Apple’s newly upgrad...
Amazon has Apple 13″ MacBook Airs with M2 CPUs and 16GB of RAM on early Black Friday sale for $200 off MSRP, only $799. Their prices are the lowest currently available for these newly upgraded 13″ M2... Read more
13-inch 8GB M2 MacBook Airs for $749, $250 of...
Best Buy has Apple 13″ MacBook Airs with M2 CPUs and 8GB of RAM in stock and on sale on their online store for $250 off MSRP. Prices start at $749. Their prices are the lowest currently available for... Read more
Amazon is offering an early Black Friday $100...
Amazon is offering early Black Friday discounts on Apple’s new 2024 WiFi iPad minis ranging up to $100 off MSRP, each with free shipping. These are the lowest prices available for new minis anywhere... Read more
Price Drop! Clearance 14-inch M3 MacBook Pros...
Best Buy is offering a $500 discount on clearance 14″ M3 MacBook Pros on their online store this week with prices available starting at only $1099. Prices valid for online orders only, in-store... Read more
Apple AirPods Pro with USB-C on early Black F...
A couple of Apple retailers are offering $70 (28%) discounts on Apple’s AirPods Pro with USB-C (and hearing aid capabilities) this weekend. These are early AirPods Black Friday discounts if you’re... Read more
Price drop! 13-inch M3 MacBook Airs now avail...
With yesterday’s across-the-board MacBook Air upgrade to 16GB of RAM standard, Apple has dropped prices on clearance 13″ 8GB M3 MacBook Airs, Certified Refurbished, to a new low starting at only $829... Read more
Price drop! Apple 15-inch M3 MacBook Airs now...
With yesterday’s release of 15-inch M3 MacBook Airs with 16GB of RAM standard, Apple has dropped prices on clearance Certified Refurbished 15″ 8GB M3 MacBook Airs to a new low starting at only $999.... Read more
Apple has clearance 15-inch M2 MacBook Airs a...
Apple has clearance, Certified Refurbished, 15″ M2 MacBook Airs now available starting at $929 and ranging up to $410 off original MSRP. These are the cheapest 15″ MacBook Airs for sale today at... Read more
Apple drops prices on 13-inch M2 MacBook Airs...
Apple has dropped prices on 13″ M2 MacBook Airs to a new low of only $749 in their Certified Refurbished store. These are the cheapest M2-powered MacBooks for sale at Apple. Apple’s one-year warranty... Read more
Clearance 13-inch M1 MacBook Airs available a...
Apple has clearance 13″ M1 MacBook Airs, Certified Refurbished, now available for $679 for 8-Core CPU/7-Core GPU/256GB models. Apple’s one-year warranty is included, shipping is free, and each... Read more

Jobs Board

Seasonal Cashier - *Apple* Blossom Mall - J...
Seasonal Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Read more
Seasonal Fine Jewelry Commission Associate -...
…Fine Jewelry Commission Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) Read more
Seasonal Operations Associate - *Apple* Blo...
Seasonal Operations Associate - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Read more
Hair Stylist - *Apple* Blossom Mall - JCPen...
Hair Stylist - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Read more
Cashier - *Apple* Blossom Mall - JCPenney (...
Cashier - Apple Blossom Mall Location:Winchester, VA, United States (https://jobs.jcp.com/jobs/location/191170/winchester-va-united-states) - Apple Blossom Mall Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.