ODABA Releases TODBMS and Tools 17.0.0
ODABA is a Terminology-Oriented Database Management System (TODBMS) based on standards for object-oriented databases (ODMG 2003). In contrast to other databases that are focused on big data processing, ODABA stands for smart data processing, i.e. it is intended to be used for complex problems and complex data structures in combination with complex processing rules.
The latest version of ODABA has been released on Sunday, April 5th, 2020. With ODABA 17.0.0 a version with extended database access features has been provided. For Windows users, a DevStudio 2017 compiled version is released in addition for 32 and 64 bit. For Linux users, GCC 6 is supported.
We do not deliver anymore .msi files for Windows installations, since ODABA does not need any kind of registration in the Windows registry. Instead, binary installations for Windows are delivered as 32 and 64 bit versions compiled with MS VS2010 and VS2017.
More details are described in change logs and in notices delivered with the development databases (ODE tools: Objects/Notices). Notices delivered with the databases also contain a list of open topics planned for next releases. Notices are stored separately for basic functions (sos.dev), database kernel (opa.dev), GUI framework (gui.dev) and ODE tools (ode.dev).
Detailed changes (ODABA)
This version provides essential new database features. Several bugs have been removed. Removed bugs are reported in the change log.
ODABA Database kernel (base)
Several ODABA components have been improved or provide extended features:
Database features
- Persistence types
The simplified distinction between transient and persistent has been proved to be insufficient. Hence a more sophisticated distinction between transient, temporary, virtual, persistent and permanent had been introduced by means of persistence type (see PersistenceTypes or Instance Ownership). The new persistence type property in SDB_Member causes a system model change, but no reorganization is required, because the value will be initialized in a way corresponding to the previous behavior.
- Encoded database
Encoding the database protects the database by hiding readable data. A binary key for encoding/decoding has to be provided in order to access an encoded database. The key may be provided as external file, but also in the resource (.dev) database.
- Data transfer between client and server
In order to allow flexible ways of data transfer between client and server, a number of new functions for receiving and sending (binary) files from and to server have been provided including also functionality for unpacking packed (.ozi, .zip) data.
- Client update features
When running a client/server application, clients may update application resources automatically when being provided on the server. Typical case is providing an updated application resource database. Update rules are configured in the application configuration or ini-file.
- Server statistics for clients
When running an application in client/server mode, the server provides client statistics about traffic amount and time.
- Executing inline templates
In order to support generic text generation from templates text templates (e.g. email bodies) stored in the database, running inline templates is now supported.
Event handling:.
- Protected context class actions
In order to provide a more sophisticated system for defining and checking rights for executing certain actions, context actions may be protected. Protected actions may be enabled or disabled by the application.
String handling and conversion:.
- Improve string replacement
String replacement has been improved essentially by using synchronized replacements of strings in a replacement list (multiple replacements). This way, we could, e.g. reduce the time needed for document generation (Open Office documents) by 95 to 99 percent.
Sending / receiving Emails:
- Support different Content-Transfer-Encoding types
Different content transfer encoding types as base64 or quoted printable are supported besides text.
- Supporting external email programs
By allowing configuration of a call to an external email program, sending and receiving emails does not require cURL, anymore.
Some errors within the resource (storage) management have been removes.
ODABA Application Program Interface (base/opa)
Several extensions and some minor changes have been made on API functionality. Change status has following meaning:
- new - New function, class, enumeration or enumerator
- updated - Function has been updated
- expanded - Functions with same name but different parameter lists have been added
- removed - Function has been removed from interface
- osi - Function has been added to OSI interface
Interface changes:
Basic classes (namespace odaba)
- BaseContext
- permitted (new / updated, osi)
- Binary
- checkSum (new, osi)
- Client
- loadFile (new, osi)
- receiveFile (new, osi)
- sendFile (new, osi)
- DBBaseContext
- permitted (new, osi)
- Database
- open (updated, osi)
- DatabaseContext
- permitted (new, osi)
- protectAction (new, osi)
- resetPermissions (new, osi)
- DataSource
- databaseAccessKey (new, osi)
- Dictionary
- databaseKeyString (new, osi)
- Property
- executeTemplate (new, osi)
- String
- extract (new, osi)
- TypeDefinition
- displayAlignment (new, osi)
Service classes (namespace odaba::utils)
- attachment (new, osi)
- binaryBody (new, osi)
- command (new, osi)
- fileName (new, osi)
- getMail (new, osi)
- headerAttribute (new, osi)
- htmlBody (renamed from html_body)
- mailCount (new, osi)
- message (new, osi)
- popLogin (new, osi)
- popLogout (new, osi)
- response (new,osi)
More details are described in ODABA online documentation: Reference documentation/ODABA Application Program Interface.
ODABA Script Interface OSI
By providing a BNFData cache, syntax analysis for inline expressions (collection paths, extent names etc.) has been improved concerning performance of expression analysis. Also evaluating template expressions, especially document templates, has been improved essentially by changing string replacement strategies.
OSI interfaces have been provided for all new (or changed) interface functions.
The ODL collection definition has been extended by introducing the persistence type. The transient option, which had been a type option, so far, has been replaced by the more flexible persistence option, which is a collection extension (declarator property).
Open document support
Open document support has been improved and some bugs have been removed.
Document generation:
- Consider character encoding type for document generation
When merging texts with different character encoding in a document, presentation of characters failed in some cases. To solve this problem, inserted texts are recoded into character encoding defined for the document.
- Performance improved
Improved replacement techniques lead to much better performance for template loading and document generation.
Detailed changes (ODE and GUI framework)
Several bugs in managing GUI resources have been removed. Support for extended input help has been provided and some extensions have been made in ODE tools. Media player has been upgraded to Qt5.
GUI Framework (gui)
Bug fixes have been made. Media player classes for Qt4 and Qt5 have been provided. Basics for extended input help have been implemented. Internally, all String objects have been replaced by NString objects in order to provide unique handling of strings.
Finally, functions for individual permission check before executing an GUI action have been added.
Internal features
- Action log
Writing action log is suppressed now, when closing the application, because this would cause errors in some cases.
- Closing controls
For the same reason, several function calls while closing controls are suppressed.
- Trees
Performance of trees and lists has been improved. Several functions are called for active items or items with sub-regions.
- Column order
Ordering tables or trees by columns now accepts the ignore case option in the data source.
- Input help
Input help functionality has been extended.
- Control disabled
Because disabled state for a control is not necessarily equivalent to not enabled, a separate function has been provided for checking the disabled state.
- Check action permission
Before running an action, a permitted event is fired in order to let the application decide whether allow the action or not.
Media player user control
- Qt 4/5 compatible media player
The media player user control has been implemented for running under Qt4 and Qt5..
- Message interface
The message interface between application became bi-directional and has been essentially extended (ODABAgui online documentation: _uc_MediaPlayer - Audio and Video Player)
ODE tools (ode)
Some improvements have been made in different tools and components.
All ODE-Tools
- Query and selection dialog
All trees and lists support a selection (filter) dialog (ctrl+F11) and an ad-hoc query dialog (shift+F11), which allow entering class OSI expressions or functions with an built-in member selection list.
ClassEditor
- Input help
The automatic input help has been improved. Moreover, a permanent member selection window may be opened (shift+F11), which displays all members for the currently selected class.
Components
- Query and selection dialog
In order to use the filter and update feature also in user applications, a component UpdateEntries has been provided, which may be imported to user application resourced.
ODABA GUI Application Program Interface (gui/ode)
Following changes made on context and resource class interface functions. Change status has following meaning:
- new - New function, class, enumeration or enumerator
- updated - Function has been updated
- expanded - Functions with same name but different parameter lists have been added
- removed - Function has been removed from interface
- osi - Function has been added to OSI interface
Context classes
- ControlContext
- submit (renamed, osi)
- GUIBaseContext
- permitted (new, osi)
- ProjectContext
- permitted (new, osi)
- protectAction (new, osi)
- resetPermissions (new, osi)
Resource classes
No changes made for resource classes.
ODABA Documentation
The documentation tree has been reordered and documentation topics have been improved.
Installing ODABA
ODABA, including applications and libraries, is available for free under Open Source licenses (GPL). ODABA runs on various hardware configurations, operating systems and works on many desktop environments. ODABA can be obtained as source code distribution and in various binary formats from http://sourceforge.net/downloads/odaba/.
Several features require third party components, which have to be installed before installing ODABA. When the corresponding libraries are not available, one may install ODABA, but the features referenced below will not work.
- libzip - required for LibreOffice document generation
- zlib - required for data compression and database backup and restore)
- curl - required for enhanced email support)
- hunspell - required for spell check in ODE tools, like terminus
- libmicrohttp - required for OHTTPServer(D)
- Qt4 or Qt5 - for running the ODABA GUI framework
Using optimizing compiler GCC 6, this pointer checks must not be optimized. Use -fno-delete-null-pointer-checks option when using GCC optimizing compiler.
Previous Releases
With the release of ODABA 16.1.0 we declare the end of live for all previous released ODABA versions less than version 15.0.0. Bug fixes on 15.0.x version are provided on demand.
System model has not been changed and no version upgrade is required.
About RUN-Software
RUN-Software develops database management system ODABA and tools since 1994. Besides general and particular software solutions, RUN-Software publishes theoretical works about database theory and terminology in connection with data modeling.
See also: www.run-software.com