1 (800) 939 6812

The Catavolt Blog

More Than a Pretty Face

Native, Web, or Hybrid?

The enterprise mobile space has apparently settled on three categories of applications: native, web, and hybrid. At a glance, it would seem that Catavolt rests firmly in the native category and would be subject to all the pros and cons of native development, but looks are deceiving. It’s true that Catavolt apps are 100% native, but it’s not true that the typical pros and cons apply.

So what makes Catavolt different? 

Catavolt uses a declarative[1] approach to defining user interfaces that is device and operating system agnostic. This approach is opposed to other techniques like cross-compiling, code generation, 4GLs, and cross platform user interface libraries. The declarative approach used by Catavolt results in a high fidelity client (native) with a very small foot print that is capable of surfing large enterprise applications dynamically.

A Catavolt app is installed through the app store like any other app of its native type. However, instead of installing an application with business logic and workflow already defined, an application “engine” is installed instead. Each engine is written to provide the best user experience possible. An app engine works by navigating the conceptual domain model as defined by its meta data. All entities, relationships, forms, interactions and workflow are defined by the back end enterprise system. Most importantly, all business logic is securely defined and executed in the back end system.

The Catavolt architecture is a patent-pending approach that deviates from the typical “application controller” design used to interact with applications[2].

The purpose of the diagram above is to emphasize the declarative domain model and the single API for accessing it (known as the Simple Object Interface). The Catavolt architecture contains a standard set of meta data for all business objects. In other words, all business objects have an API through which they can be fully described and manipulated. This is a programmer’s dream for creating dynamic interfaces. This includes web, native, hybrid and non-human interfaces like web services.

What kinds of problems are best solved with Catavolt?

Catavolt was conceived as a solution to the Many-to-Many-to-Many problem that develops when accessing enterprise applications through the internet. The problem involves many applications and databases accessed by many kinds of user groups by many kinds of devices. It’s plain to see that traditional brute force programming doesn’t scale to solve this compound problem. Furthermore, the problem is exacerbated by the need for situational applications[3].

Catavolt solves the Many-to-Many-to-Many problem by declaring an application one time for all devices and writing a device engine one time for all applications. This approach contains no conditional code whatsoever resulting in a clean and elegant solution that is easy to maintain. Situational applications[3] are made easy to create, change, and discard because applications are built by slicing and dicing the conceptual domain model and not the underlying implementation model.

Personality that Lasts

The Catavolt architecture was engineered for change. It’s declarative nature and app engine approach makes it easy to support all kinds of devices, whether now or in the future, without the traditional overhead associated with native apps.

Discussions on different approaches for developing mobile applications


[1] http://en.wikipedia.org/wiki/Declarative_programming
[2] http://www.catavolt.com/documents/DualModelArchitecture-WhitePaper.pdf 
[3] http://en.wikipedia.org/wiki/Situational_application