Documentation

Goals of Axisbase

Star Ford discusses the goals and architecture of Axisbase.

Why a new database product is needed

I have developed many custom database applications using various desktop database tools and database servers. Over the years I accumulated a list of gripes. I got tired of doing the same things over and over, fixing the same kinds of problems, and running into the same walls. That is where Axisbase came from. It is the tool that I wish I had when I wrote all those custom applications.

I'll go into some detail about some of the limitations with the traditional set of tools.

  • Database servers are expensive or complex or both. You have to know a lot to install and maintain them. I couldn't specify a server solution in many cases because the client didn't have the technical experience needed to run a server.

  • Many of my clients wanted to have a web site that accessed the same information as their office database, but they didn't want to host a public web server (or didn't have the skills). This meant one of two things: replication or some kind of copying between servers (messy) or forcing the company onto a remote-hosted web application. Web applications tend to be costly and short-lived, so I wanted to avoid them in cases where they were not necessary.

  • In Microsoft Access solutions, my clients had to purchase one or more Access licenses to get the full features.

  • In some tools (Access in particular), the novice user is lulled into a false sense of simplicity. The products assume that people can't learn. For example, Access can determine data types based on what the user types into a column, and add indexes based on the column name. Once assumptions like these are silently applied, the novice user can't figure out how they got to where they are, and they get stuck. I've inherited a number of messes made by people who were having a good time with it until they suddenly found they were in way over their head.

  • There is a great deal of layout work to do with most tools, usually involving thousands of wrist-killing mouse movements.

  • In some cases where I specified a tool that takes less initial work (like Access or Filemaker), future needs resulted in that solution being dumped, because desktop database products can only be extended so far. At that time, we had to start over.

  • There are aspects of SQL that are tedious and error-prone. For example, you always have to come up with a trick for assigning unique keys. Join syntax can be complex, very difficult to read and debug. SQL doesn't support master-detail, so the typical pattern is to duplicate the master row for each detail (particularly in reports). There are many other examples of limitations of SQL.

Product Design Goals

The main goals of Axisbase are to overcome problems like those listed above. I wanted to create a database tool (and a company) that helps people create business data solutions more simply than they could before. I wanted them to have fun building their solutions and learn something, rather than get frustrated. The tool and company help people learn, which is the opposite of the trend in software today. Many new products take the "for dummies" approach, assuming that people don't want to or cannot think for themselves.

There are four design areas that support these goals: (1) the basic architecture should alleviate complexity; (2) the end user and novice developer should be able to get started quickly and be productive; (3) software developers should be able to use and extend Axisbase with no limits; and (4) ISP should be able to host Axisbase without support issues, security problems and other common headaches.

Basic architecture

  • The single-file approach is used (like Access), rather than multiple files (like dBase or MySQL). That way people can move or email files without a problem. I chose to use the same file structure for the server and the desktop, so there was no migration issues when switching to a server solution.

  • Only one process can open an Axisbase file at a time, so multi-user conflicts are easily handled within the server.

  • Although relational databases have always supported master-detail relationships, the tools generally work with one side at a time. Axisbase was designed to load records while maintaining the master-detail structure, then display it in master-detail.

  • Security and business logic is separated from the user interface.

  • All operations are atomic and run to completion. Since there is no support for locking, cursors, or transactions, operations are executed one at a time. There is therefore never any deadlock.

  • Through the use of disconnected in-memory data sets and sporadic server communication, Axisbase is designed to work well over the internet. Since the Axisbase UI is a free download, even public applications can use Axisbase instead of or in addition to a web application.

  • Network traffic is encrypted.

Getting started quickly - business users

  • The end user can install Axisbase, open it, and start entering records without any technical knowledge of database servers, system services, networking, and so on.

  • Old fashioned and complex database concepts are removed. For example, the user doesn't have to deal with indexes, primary keys, compression, and null values. (Indexes are used but you don't create them explicitly. Nulls don't exist.)

  • There is no coding required to build things like menus, drilldown reports, and criteria entry. Small companies lacking IT staff can therefore build a useful tool right in the Axisbase interface with no code.

  • I didn't want the software to intepret the user's intent as a way to gloss over complexity. I would rather have business users learn what they need to know so that they can fix anything that they create. So, Axisbase teaches as you go along with links to documentation. It does not second-guess what you do.

  • Data types include the built in primitive types (text, numbers, dates, etc) as well as the compound types that you create (person, sale, client, etc.). When you define a type that references another type (for example, a sale references a customer), the customer number is stored with the sale, but the customer name shows up on screen. In this way, references work as users expect without coding.

  • Designs of layouts are not free-form like a canvas, as in most software. Instead you work in a grid, so that as you expand cells, the adjacent cells move accordingly. Everything stays aligned, and this frees up countless hours of moving screen elements around.

Extending indefinitely - developers

  • The whole product is built in .NET. Class libraries are freely distributable, so developers can write code that uses any of the Axisbase functionality just by using the provided classes. For example, they can use an Axisbase file but display data in a custom grid. Or they can load data from another source and use Axisbase list editing components to provide editing capability.

  • Developers can also write code that is used by Axisbase, to support unlimited business logic, connection to other databases, and other data manipulation.

  • Because of the ability to use Axisbase from outside code and to use outside code from Axisbase, there are several migration paths that allow a limited ad-hoc application built by a business user to be extended in stages into a larger solution, without ever having to dump and start over.

  • The data storage and layouts can be separated into different files so that different people can be responsible for different parts. For example, an off-site developer can build reports, and send updates to the office, without overwriting any other work.

Hosting by ISPs

  • One Axisbase server can host multple databases owned by different accounts. The network traffic can be billed to each account holder. Account holders can remotely upload database files and start serving them. This approach simplifies the management software for ISPs.

  • Because the network traffic is encrypted, ISPs are safe when serving database to the internet (outside the firewall). This allows people to build solutions that involve remote hosting with one or more web servers in addition to direct desktop access to the hosted database.

Company goals

I wanted to create a company that supports the design philosophy of Axisbase. That is, a company that helps people build business data solutions.

It makes sense to provide the software and documentation for free. That is the proven approach of a lot of well known software today, like Acrobat Reader, RealPlayer, and Google. These applications are often considered a "given"; that's what we want Axisbase to become.

The company will help with developing solutions, and that will be the way it makes money. There will be fees for support, design consulting, advertising, and qualified references. But the software itself will always be free.

(c) 2014-2015 Divergent Labs, Inc.