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

ExpanDrive 6.1.8 - Access cloud storage...
ExpanDrive builds cloud storage in every application, acts just like a USB drive plugged into your Mac. With ExpanDrive, you can securely access any remote file server directly from the Finder or... Read more
DiskCatalogMaker 7.2.7 - Catalog your di...
DiskCatalogMaker is a simple disk management tool which catalogs disks. Simple, light-weight, and fast Finder-like intuitive look and feel Super-fast search algorithm Can compress catalog data for... Read more
DiskCatalogMaker 7.2.7 - Catalog your di...
DiskCatalogMaker is a simple disk management tool which catalogs disks. Simple, light-weight, and fast Finder-like intuitive look and feel Super-fast search algorithm Can compress catalog data for... Read more
Iridient Developer 3.2.1 - Powerful imag...
Iridient Developer (was RAW Developer) is a powerful image-conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more
BusyContacts 1.2.7 - Fast, efficient con...
BusyContacts is a contact manager for OS X that makes creating, finding, and managing contacts faster and more efficient. It brings to contact management the same power, flexibility, and sharing... Read more
MegaSeg 6.0.5 - Professional DJ and radi...
MegaSeg is a complete solution for pro audio/video DJ mixing, radio automation, and music scheduling with rock-solid performance and an easy-to-use design. Mix with visual waveforms and Magic... Read more
BusyContacts 1.2.7 - Fast, efficient con...
BusyContacts is a contact manager for OS X that makes creating, finding, and managing contacts faster and more efficient. It brings to contact management the same power, flexibility, and sharing... Read more
MegaSeg 6.0.5 - Professional DJ and radi...
MegaSeg is a complete solution for pro audio/video DJ mixing, radio automation, and music scheduling with rock-solid performance and an easy-to-use design. Mix with visual waveforms and Magic... Read more
Iridient Developer 3.2.1 - Powerful imag...
Iridient Developer (was RAW Developer) is a powerful image-conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more
iFFmpeg 6.6.1 - Convert multimedia files...
iFFmpeg is a comprehensive media tool to convert movie, audio and media files between formats. The FFmpeg command line instructions can be very hard to master/understand, so iFFmpeg does all the hard... Read more

Latest Forum Discussions

See All

Reigns: Her Majesty guide - how to use e...
Ruling a kingdom isn't easy--doubly so for a queen whose every decision is questioned by the other factions seeking a slice of power. Reigns: Her Majesty builds on the original game's swipey tactics, adding items that you can use to move the story... | Read more »
The best new games we played this week -...
Friday has crept up on us once again, so it's time to honor the best new games we've played over the past few days. This past week was a pretty exciting one, with the debut of lots of beautiful new indies and some familiar faces returning to the... | Read more »
Portal Knights guide- beginner tips and...
Portal Knights is finally making the jump to iOS and Android, and it's already climbing the ranks to become the next big MMO experience on mobile. This sprawling sandbox game will let you pursue any adventure you wish, whether you want to sling... | Read more »
Reigns: Her Majesty guide - how to swipe...
Reigns: Her Majesty is storming the App Store this week, bringing more tinder-esque kingdom building to eager players everywhere. If you've played the original Reigns, you'll know that leading a kingdom is never easy. It's a careful balancing act... | Read more »
Getting Over It (Games)
Getting Over It 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: A game I madeFor a certain kind of person To hurt them. • Climb up an enormous mountain with nothing but a hammer and a pot.•... | Read more »
Reigns: Her Majesty (Games)
Reigns: Her Majesty 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: | Read more »
Pocket Legends Adventures guide - how to...
Pocket Legends Adventures is a fun action adventure RPG that takes control when you want it to, but also opens itself for player input, too, if you're looking to tkae a more active role in combat. Regardless of play style, the game can be quite... | Read more »
Portal Knights (Games)
Portal Knights 1.2.4 Device: iOS Universal Category: Games Price: $4.99, Version: 1.2.4 (iTunes) Description: Craft your adventure. Forge your hero. Become the ultimate Portal Knight! | Read more »
Ashworld (Games)
Ashworld 1.3 Device: iOS Universal Category: Games Price: $3.99, Version: 1.3 (iTunes) Description: | Read more »
The best deals on the App Store this wee...
Another week means another roundup of quality bargain games. This week's list features a few games we haven't featured before in our weekly roundups. If you're on the prowl for new games, now's an optimal time to try something completely new for... | Read more »

Price Scanner via MacPrices.net

Beats by Dr. Dre – BeatsX Earphones on sale f...
Best Buy has BeatsX Earphones on sale for $109, $40 off, on their online store. Sale price for online orders only. Choose free store pickup, if available, or choose free shipping. Read more
10″ 64GB WiFi Apple iPad Pros on sale for $59...
MacMall has 10.5″ 64GB Apple iPad Pros on sale for $599 including free shipping. That’s $50 off MSRP and among the lowest prices available for these iPads from any Apple reseller. Read more
15″ 2.2GHz MacBook Pros on sale for $200-$300...
B&H Photo has the 15″ 2.2GHz MacBook Pro available for $200 off MSRP including free shipping plus NY & NJ sales tax only: – 15″ 2.2GHz MacBook Pro (MJLQ2LL/A): $1799 $200 off MSRP Apple has... Read more
Holiday sale: 15″ MacBook Pros for $200-$420...
MacMall has 15″ MacBook Pros on sale for $220-$300 off MSRP, each including free shipping: – 15″ 2.8GHz MacBook Pro Space Gray (MPTR2LL/A): $2179, $220 off MSRP – 15″ 2.8GHz MacBook Pro Silver (... Read more
Holiday sale: 13″ MacBook Airs for up to $150...
B&H Photo has 13″ MacBook Airs on sale for $100 off MSRP as part of their Holiday sale. Shipping is free, and B&H charges sales tax for NY & NJ residents only: – 13″ 1.8GHz/128GB MacBook... Read more
The best Holiday sale prices on 13″ MacBook P...
B&H Photo has 13″ MacBook Pros on sale this weekend, with models available for $100-$150 off MSRP. Shipping is free, and B&H charges sales tax for NY & NJ residents only: – 13-inch 2.3GHz... Read more
Holiday sale: 27″ Apple iMacs for $150-$200 o...
MacMall has 27″ iMacs on sale for $150-$200 off MSRP as part of their Holiday sale, each including free shipping: – 27″ 3.8GHz iMac (MNED2LL/A): $2099 $200 off MSRP – 27″ 3.5GHz iMac (MNEA2LL/A): $... Read more
Save on clearance 2016 15″ MacBook Pros, up t...
B&H Photo has clearance 2016 15″ MacBook Pros available for up to $700 off original MSRP. Shipping is free, and B&H charges NY & NJ sales tax only: – 15″ 2.7GHz Touch Bar MacBook Pro... Read more
Apple offers Certified Refurbished 9.7″ iPads...
Apple has Certified Refurbished 9.7″ WiFi iPads available for $50-$70 off the cost of new models. An Apple one-year warranty is included with each iPad, and shipping is free: – 9″ 32GB WiFi iPad: $... Read more
Save $200-$240 on a 12″ Apple MacBook with Ce...
Apple has Certified Refurbished 2017 12″ Retina MacBooks available for $200-$240 off the cost of new models. Apple will include a standard one-year warranty with each MacBook, and shipping is free.... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Information Security - Security Data...
# Apple Information Security - Security Data Analyst Job Number: 113119545 Austin, Texas, United States Posted: 10-Nov-2017 Weekly Hours: 40.00 **Job Summary** This Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.