VisionR has been in the making for more than 10 years now. It introduces many breakthrough technical innovations such as:
- The core of the system has many built-in functionalities like schema definitions, e-mail, scheduler, document management etc.
- The approach to data storage has no match in modern data management appliances.
- Multiple levels of caching enable extremely fast data delivery.
- VisionR is a completely self-sustained and self-described system.
- The internal query language allows use of arbitrary long object reference paths.
- VisionR uses a number of breakthrough algorithms to enable rapid operation.
- The system is completely platform independent and runs in 32 bit and 64 bit environments.
- The system is completely independent in terms of underlying database storage.
- VisionR may store and deliver data from multiple sources and into multiple storages.
- VisionR Server is an integrated and in the same time integrable platform.
The VisionR system is completely self-described. The virtual data management layer that is created upon startup is the only "external" part of the system. After initial startup all data managed by VisionR and the VisionR server itself (including events, references, object definitions, etc) is described by means of VisionR definitions.
This is a breakthrough approach to data management and system programming that enables on the fly updates of the system and unprecedented uptime. It also enables functional programming approach.
The VisionR system is completely object-oriented. Each data instance has an object type. Each object type is described by object definition. Even the core objects are defined with VisionR object definitions.
As with other object-oriented (OO) systems, VisionR also allows inheritance of object types. This simplifies the definition of the objects and allows customization of existing modules so to match customer needs.
A specific feature of VisionR is the ability to define bi-directional relations. Most OO systems typically allow for single direction relation where some object references one or more objects of some type.
VisionR also allows having a reverse-relation where an object may have a property that lists all objects referencing it. This way dynamic properties may be created that list referenced objects. For example: a key may reference the person it is issued to, and the person object may have a reverse reference showing all all keys that he has received so far.
Internationalization on data row level
VisionR enables internationalization of each text property that exists within the system. This way data records may have properties that read in arbitrary number of languages. As a result, since the GUI is also described in terms of VisionR data structures, the user interface is also subject to simplified internationalization. Simply put - every single piece of text managed by VisionR, being a data record, a label or GUI element is subject to internationalization.
This enables users to work in their native language, and also to manage data in their native language.
Access management on data row level
VisionR can impose restrictions on a data row level. As a result only specific group of users may be able to view data sets and only specific group of users may have access to selected modules. Since all VisionR objects are described as VisionR structures, the system may impose access restrictions to every piece of data - being a data instance, data label, or GUI element.
Events scripts instead of triggers
VisionR allows definition of complex event scripts implemented in its own VSC language. VSC is a simplified objectscript dialect that works directly with object instances. Event scripts have access to the internal VisionR API.