ODABA Releases TODBMS and Tools 13.1.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 the Terminology-Oriented Database Management System (TODBMS) ODABA has been released on Monday, January 11th, 2016. The new version ODABA 13.1 provides essential test support. The TestBrowser framework has been provided for running automated tests in an GUI environment. Also, we publish the first version of automated unit tests for the ODABA interface (API) and utilities in client and server mode within a test frame work (TestBrowser).
The new action-log feature supports testing and debugging GUI applications. Moreover, some new features as database mirror have been provided.
Tools have been improved by extending and improving a number of features. Several service classes for file access (MP3, zip) and BNF parser support have been provided in order to improve support for OSI development.
ODABA functionality as well as ODABAGUI API have been extended. Finally, several bugs have been detected and removed.
Detailed changes (ODABA)
Features for supporting automated tests have been provided (test framework), as well as debug and trace features for OSI applications. In order to improve safety for production systems, ODABA also provides a mirror technology which maintains a database mirror. Moreover, improved unit tests for the ODABA API have been provided with in the released ODABA test framework.
ODABA Database kernel (base)
This version provides several changes and extensions for the kernel functionality:
- Provide unit tests for interface functions
Unit tests may be defined in the test block for each function implementation. A unit test frame generator creates an executable from unit tests in order to be executed from a command line or in the ODABA test frame work (TestBrowser). Documented test cases are provided with each release, which allows checking functionality after building ODABA.
- Supporting activity logs for any kind of activity.
Activity logs have been provided in order to track activities in different kind of applications and replay those activities. ODABA is using these features for recording activities in GUI applications and for rerunning recorded activities,
- Support mirror database
Single file databases may define a mirror database in order to mirror all changes made on database (e.g. as real-time backup).
- Auto-repair collections
- Data exchange improvements
- Use case insensitive option names
- Character sets for BNF definitions
- Full support for XML configuration files
In some cases (e.g. when inverse references are not defined properly), indexes may refer to deleted instances. This error will be repaired at run-time. In order to suppress automatic repair, the option NO_REPAIR has to be set to false or NO.
Especially, CSV export is not based on unique standards. In order to support different target platforms when exporting or importing data to/from third party systems, user defined transformation for control sequence characters (field and string separators, new lines etc) is supported.
So far, options names have been accessed internally case insensitive but also case sensitive. In order to avoid confusion resulting from different handling, option names are searched case insensitive, now.
In order to improve performance when analyzing BNF expressions (especially when analyzing document templates), defined character sets have been introduced.
Alternatively to ini-files, one may use XML configuration files. Now, this feature has been improved by write support for xml configuration file (e.g. writing current settings to file).
- Suppress database system version upgrade
- Problem deleting single references solved
- Improve database check
When automatically upgrading the database to new system version, the database is not accessible anymore by older ODABA software versions (below 13.0.0). In order to suppress automatic system upgrade, the SYSTEM_UPGRADE option may be set to false or system upgrade parameter false has to be passed when opening the database.
Single references (especially STRING references) had not been deleted properly and caused repairable error in database check.
Database check has been improved by special checks for "new instances".
- Locate enumeration values in hierarchical enumerations
In order to log transaction start/stop, a transaction log is supported. Setting TransactionLog option to true or YES will enable transaction log messages when starting and stopping transactions.
A problem occurred when referring to enumeration values in sub-lists of hierarchical enumerations. Now, sub-list enumeration values on any level may be referenced.
ODABA Application Program Interface (base/opa)
Several extensions and changes have been made to the ODABA API:
- SET template class
Similar to OSI, the SET template class for C++ applications allows defining types collections. This requires, however, that C++ header files had been generated for referenced type. References and relationships are also defined as SET types.
- MP3 file support
MP3 file support for reading and updating MP3 headers has been provided in order to improve MP3 header content from database information.
- Look for parent by type name
Single file databases may define a mirror database in order to mirror all changes made on database.
- Document generation via property handle
In order to simplify document generation, a property handle function has been provided.
Following extensions have been made to the ODABA API:
Service functions are provided especially for supporting OSI applications. Service functions are provided for different kind of file access (text, binary, xml, mp3, zip, ini), internet protocol and email communication, BBNF parser functionality. Several new service classes have been provided in order to support MP3 file access, email exchange and parsing files.
- ZipArchive (Reading, creating and updating zip archives)
- MP3File (Accessing MP3 files)
- MP3Header (Reading and updating MP3 header)
- MP3Frame (Accessing MP3 frames)
- BNFParser (Provide and run ad-hoc BNF parser)
- BNFNode (Access BNF production rule)
- HTTP (Reading and posting data via HTTP)
- Email (Receiving and sending emails)
- resetOperations(bool) (new)
- hasVersions (new)
- openMirror (new)
- open (updated, new parameter)
- parent(typename) (new)
- createDocument (new)
- doOnStoreError (new event)
- executeCommand (updated)
Service function extensions (odaba::utils):
- copy (updated)
More details are described in ODABA online documentation: Reference documentation/ODABA Application Program Interface.
ODABA Script Interface OSI
In order to make implementation of OSI applications more simple, additional features have been provided for OSI development support:
- Trace support for OSI function calls
- Trace OSI function calls
- Suppress exception handling in recover/error block (bug-fix)
- Search for OSI interface functions in base type libraries (bug-fix)
- Transfer result to result string (bug-fix) in executeCommand()
In order to optimize OSI applications, trace features have been provided for OSI and API function calls. Trace function provide statistics for number of function calls and duration during application execution.
Support for creating OSI function call trace lists as well as statistics for number of calls and processing time is supported via OSI_TRACE option.
In order to avoid infinite loops when an exception occurs on the recover block, exceptions in recover block are accepted and an error is set..
So far, OSI interface functions have been called for the type of the calling object, only. Now, OSI also checks libraries for base types (generalizations)
Open document support
In order to simplify document generation, a property handle function (createDocument) has been provided.
Detailed changes (ODE and GUI framework)
Some changes and improvements have been made on existing tools. Important extensions are:
- Action-log for GUI applications(all GUI applications)
The action log allows recording GUI sessions for one or more GUI clients. In order to debug GUI applications, one may replay sessions. When running several clients, actions are synchronized by timestamps in the log-file.
Besides, some minor bugs have been removed, which are reported in the change log.
GUI Framework (gui)
The GUI framework kernel had been changed in order to provide action-log support allowing recording and replaying GUI sessions. Moreover, several minor improvements and bug-fixes have been made.
- Action log file
- Allow overwriting default actions
- Suppress context menus
- What's this default action
- Supporting menu buttons
Several functions have been added for action log support in order to start and stop recording and replay action log file.
In order to allow overwriting standard actions, those may be defined in the resource database providing images, help text, name, action and short cuts. Standard actions are identified by name.
In order to suppress context menus in an application, the GUIFramework.ContextMenu option may be set to ignore (default is accept).
The default action has been provided for supporting extended help functionality.
By associating a menu action with a button, menu buttons may be defined.
ODE tools (ode)
Focus for this release was test automation. Features for supporting automated tests have been provided by action log and TestBrowser application. Besides, several minor extensions and bug-fixes have been made. Most important extensions are:
- Test Browser application
With Test Browser, a tool supporting managing and running automated tests has been provided (unit tests and system tests). A test framework template is provided for Linux and Windows.
- Generate Test programs for unit tests
- Action-log for GUI applications(all GUI applications)
- Default action CreateDocument
- Ordering fields in a control
- Support overwriting standard actions
Test code for unit tests may be defined for each function implementation, which is typically used for generating unit test functions for an interface class. A general process for generating executables for running unit tests for one implementation class has been provided in ClassEditor.
The ODABATest project provides the test framework for ODABA release tests (API local and client/server, OSI and utilities) that may be used for installation check after installing ODABA.
The action log allows recording GUI sessions for one or more GUI clients. In order to debug GUI applications, one may replay the sessions. When running several clients, actions are synchronized by timestamps in the log-file. This also allows diagnosing errors, but also providing application use cases for users. New default actions for supporting application logs are available:
Designer supports ordering fields in a control by columns or rows.
Standard actions may be overwritten by action definitions with the same name in the resource database.
Finally, ODE tools have been improved for better supporting mixed coding (OSI, C++, C#).
ODABA GUI Application Program Interface (gui/ode)
Additional functions in GUI context interface have been provided
- messageBox (new)
- changeDefaultOrder (new)
- defaultOrder (new)
- descending (new)
- currentProperty (new)
- updateActionStates (new)
- subItemCount (new)
Documentation has been extended. Especially, documentation for the test framework (document and online documentation) has been provided. Interface documentation has been updated. If anybody needs specific topics or areas to be documented, we will consider this in our documentation priority list.
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
When running ODABA 11.x.x or higher, no upgrade is necessary. When still using ODABA 10.x.x, resource databases and databases referring to ODABA system data types need to be upgraded. Details about how to call a database upgrade are described in the readme file for the ODABA 11.0.0 installation.
With the release of ODABA 13.0.0 we declare the end of live for all previous released ODABA versions. Bug fixes on 12.3.x version are provided on demand.
Important: Running databases with ODABA 13 in write or update mode will upgrade the database header automatically. After upgrading the header, the database cannot be used with ODABA 12 or older. In order to suppress automatic upgrade, the system upgrade option has to be passed when opening the database ot the option (environment variable) SYSTEM_UPGRADE has to be set to "true".
In order to get the most out of this release, we recommend to use a recent computer with at least 1 GB of memory and 2 GHz CPU or better. In order to install the binaries, about 100 MB are required. Installing sources requires about 50 MB. 80 MB are required in addition, when installing the documentation locally.
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