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

1Password 6.5.5 - Powerful password mana...
1Password is a password manager that uniquely brings you both security and convenience. It is the only program that provides anti-phishing protection and goes beyond password management by adding Web... Read more
Apple Remote Desktop Client 3.9 - Client...
Apple Remote Desktop Client is the best way to manage the Mac computers on your network. Distribute software, provide real-time online help to end users, create detailed software and hardware reports... Read more
Art Text 3.2.2 - $49.99
Art Text is graphic design software specifically tuned for lettering, typography, text mockups and various artistic text effects. Supplied with a great variety of ready to use styles and materials,... Read more
WhatRoute 2.0.15 - Geographically trace...
WhatRoute is designed to find the names of all the routers an IP packet passes through on its way from your Mac to a destination host. It also measures the round-trip time from your Mac to the router... Read more
Sparkle 2.1.1 - $79.99
Sparkle will change your mind if you thought building websites wasn't for you. Sparkle is the intuitive site builder that lets you create sites for your online portfolio, team or band pages, or... Read more
Dash 4.0.1 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
TextSoap 8.3.2 - Automate tedious text d...
TextSoap can automatically remove unwanted characters, fix up messed up carriage returns, and do pretty much anything else that we can think of to text. Save time and effort. Be more productive. Stop... Read more
Apple Remote Desktop 3.9 - Remotely cont...
Apple Remote Desktop is the best way to manage the Mac computers on your network. Distribute software, provide real-time online help to end users, create detailed software and hardware reports, and... Read more
Paragraphs 1.1.4 - Writing tool just for...
Paragraphs is an app just for writers. It was built for one thing and one thing only: writing. It gives you everything you need to create brilliant prose and does away with the rest. Features... Read more
Amazon Chime 4.0.5528 - Amazon-based com...
Amazon Chime is a communications service that transforms online meetings with a secure, easy-to-use application that you can trust. Amazon Chime works seamlessly across your devices so that you can... Read more

Blasty Bubs is a colorful Pinball and Br...
QuickByte Games has another arcade treat in the works -- this time it's a mishmash of brick breaking and Pinball mechanics. It's called Blasty Bubs, and it's a top down brickbreaker that has you slinging balls around a board. [Read more] | Read more »
Corsola and Heracross are the new region...
Generation 2 finally launched in Pokémon GO, unleashing a brand new batch of Pokémon into the wild. Even before the update went live people were speculating on how to catch elusive Pokémon like the legendary "dogs", Unknown, and whether or not... | Read more »
The Warlock of Firetop Mountain (Games)
The Warlock of Firetop Mountain 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: An epic adventure through a mysterious mountain filled with monsters, magic and mayhem! “...it looks downright... | Read more »
Fantasy MMORPG MU Origin’s receives a hu...
Developer Webzen are looking to take their highly popular fantasy battler MU Origin to the next level this month, with its most ambitious overhaul yet. The latest update introduces the long sought after Server Arena, new treasure dungeons, and much... | Read more »
RPG Djinn Caster (Games)
RPG Djinn Caster 1.0.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.0 (iTunes) Description: SPECIAL PRICE 38% OFF(USD 7.99 -> USD 4.99)!!!A Fantasy Action RPG of far foreign lands! Summon the Djinns and rise to... | Read more »
Alto's Odyssey gets its first trail...
There's finally video evidence of Alto's Odyssey, the follow up to the 2015 App Store hit, Alto's Adventure. It looks just as soothing and atmospheric as Alto's last outing, but this time players will be journeying to the desert. Whereas Alto's... | Read more »
Last week on Pocket Gamer
What’s going on in the wider world of portable gaming? Each week we ask that question of our sister website Pocket Gamer. The PG team covers iOS gaming, just like 148Apps, but it also strays into the world of Android games and handheld consoles... | Read more »
Pokémon GO Generation 2 evolution guide
At long last, Niantic Labs finally unleashed the Generation 2 Pokémon into the wild. Pokémon GO trainers are scrambling to grab up this new set of 80 Pokémon. There are some special new tricks required to catch all of these new beasties, though.... | Read more »
The best new games we played this week
It feels as though the New Year got off to a creaking start as far as mobile games go, but that's changed over the past few weeks. The last few days alone have seen the debut of a number of wonderful games, so we thought we'd take the time to... | Read more »
Recruit more scallywags and discover new...
Get ready to show off your sea legs all over again in Oceans & Empires’ new grand update, which aims to make the act of rising to the role of seven seas ruler even more fresh and appealing, thanks to a richness of new content on both iOS and... | Read more »

Price Scanner via MacPrices.net

Apple’s New iPad Ads Don’t Address Pro Users’...
Apple launched a new tranche of iPad Pro TV ads last week addressing actual queries and challenges from the Twitterverse, albeit using actors for the visuals. That’s great. As an iPad fan and heavy... Read more
Free Verbum Catholic Bible Study App For iOS
The Verbum mobile app runs on Logos’ powerful Bible software and is an advanced resource for mobile Catholic study. The Verbum app surrounds the Bible with the Tradition. Verbum comes with 15 free... Read more
27-inch Apple iMacs on sale for up to $200 of...
B&H Photo has 27″ Apple iMacs on sale for up to $200 off MSRP, each including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2099.99 $200 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $... Read more
15-inch 2.2GHz Retina MacBook Pro on sale for...
Amazon has 2015 15″ 2.2GHz Retina MacBook Pros (MJLQ2LL/A) available for $1849.99 including free shipping. Apple charges $1999 for this model, so Amazon’s price is represents a $150 savings. Read more
Apple refurbished iPad Air 2s available start...
Apple has Certified Refurbished iPad Air 2 WiFis available for starting at $319 including free shipping. A standard Apple one-year warranty is included: - 16GB iPad Air 2 WiFi: $319 $60 off original... Read more
Apple refurbished iPad Pros available for up...
Apple has Certified Refurbished 9″ and 12″ Apple iPad Pros available for up to $160 off the cost of new iPads. An Apple one-year warranty is included with each model, and shipping is free: - 32GB 9″... Read more
Apple restocks refurbished 2015 and 2016 13-i...
Apple has Certified Refurbished 2015 and 2016 13″ MacBook Airs available starting at $759. An Apple one-year warranty is included with each MacBook, and shipping is free: - 2016 13″ 1.6GHz/8GB/128GB... Read more
13-inch 2.5GHz MacBook Pro (Apple refurbished...
Apple has Certified Refurbished 13″ 2.5GHz MacBook Pros (MD101LL/A) available for $829, or $270 off original MSRP. Apple’s one-year warranty is standard, and shipping is free: - 13″ 2.5GHz MacBook... Read more
QuickerTek Announces 5TB Apple AC AirPort Tim...
QuickerTek Inc. has announced their new 5TB hard drive upgrade for Apple’s AC AirPort Time Capsule. By customer request, this upgrade also features six external antennas and offers the highest... Read more
Apple Certified Refurbished iMacs available f...
Apple has Certified Refurbished 2015 21″ & 27″ iMacs available for up to $350 off MSRP. Apple’s one-year warranty is standard, and shipping is free. The following models are available: - 21″ 3.... Read more

Jobs Board

*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
Manager *Apple* Systems Administration - Pu...
Req ID 3315BR Position Title Manager, Apple Systems Administration Job Description The Manager of Apple Systems Administration oversees the administration and 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
Manager *Apple* Systems Administration - Pu...
Req ID 3315BR Position Title Manager, Apple Systems Administration Job Description The Manager of Apple Systems Administration oversees the administration and Read more
*Apple* Technician - nfrastructure (United S...
Let’s Work Together Apple Technician This position is based in Portland, ME Life at nfrastructure At nfrastructure, we understand that our success results from our Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.