INTRODUCTION
Next Chapter: Working
Environment
Welcome to Ovrimos! The current text presents Ovrimos version
2.0. This text is less technical than a programmer's guide and is
meant as a concise on-line help text for users who have just
obtained a copy of Ovrimos and wish to explore the product
features.
Product description
Ovrimos is
a) a complete transactional data storage
and retrieval system, based on the relational database model
and
b) a programmable Web server.
It is a multi-user, relational database with ODBC and JDBC
connectivity, demanding relatively few resources.
The client-server architecture it is based on, allows numerous
concurrent users. Moreover, Ovrimos supports CGI, PERL DBI, the Unicode character set, and is
ideal for Web databases.
Ovrimos is in the same "league" as other well known
and established database engines (i.e. Oracle, Microsoft SQL
Server, etc.), but has some distinctive characteristics that
differentiate it from the rest and render it attractive and
appealing to developers, EDP managers, and end-users. The more
important of the above mentioned characteristics are:
- It also communicates with clients through HTTP. In fact,
HTTP is used for the user/administrator interface.
Consequently, all functions -i.e. the database
administration and the data management via SQL commands-
are executed through a Web browser. The advantage of this
characteristic is the fact that both the user and the
administrator are using an interface that is already
familiar to them, and the product is taking advantage of
the Internet browsers' ever-evolving technology.
- Ovrimos has a set of built-in functions that can manage MIME-typed BLOBs and
can deliver them to Web browsers as images, videos,
sounds etc., without the need of any special programming
code.
- Ovrimos supports Unicode natively. As a consequence, the
user can insert Unicode strings and retrieve them as
such. Moreover, in these Unicode strings, one can apply
all the functions that may be used in ASCII strings.
- Up till now, all known database engines execute stored
procedures using their own proprietary language. In
contrast, Ovrimos executes stored procedures in C, C++, Java and Perl. The advantage is
obvious, since the programmer does not need to learn any
proprietary language.
- Ovrimos is user friendly and easy to use, especially by
administrators and developers. For example, Ovrimos administrators can monitor all
activities on the SQL and
HTTP server, regarding the resources used, and thus
making their task of resource allocation and fine tuning
considerably easier. On the other hand, the developer can
easily develop applications using the tools he/she is
familiar to, without having to learn new ones. As a
consequence, the application development cost is reduced.
- The HTTP server Ovrimos: a)
supports server-side scripts, b) preserves connection
states and c) can execute SQL and Scheme files as well as
CGI.
- Ovrimos needs few resources: a) approximately 3-4 MB of
free disk space, depending on Operating System, plus 100
KB for each database is required, and b) 2 MB RAM plus
150 KB per connected session.
Ovrimos AND USER GROUPS
Administrators
Version 2.5 of Ovrimos has features that are attractive to
system administrators. The main ones are:
- Error Recovery. Even on the event of a power supply
failure, Ovrimos will be automatically restored to the
logical situation it was before the crash.
- Actual on-line backup. The system administrator can take
backups from the database while it is still on and fully
operative.
- Interactive Data Description Language.
- SQL and Web Monitor. The system administrator can monitor
all functions of both the SQL and the Web server -i.e.
the SQL commands given by each user, the system's
workload, etc.
- Database fine-tuning. The system administrator can easily
tune the database parameters so that optimization of
database performance is possible. This operation, of
course, can not be done on-line.
- Database administration through the Web. It is a simple
task to start, stop, create a new or delete an old
database, even remotely, via a Web browser.
Developers
Ovrimos Version 2.5 is specially designed to cater to the
needs of demanding developers. In view of the latter, it has
advanced, and sometimes unique, features such as:
- Stored procedures in C, C++, Java, and Perl. It offers
AGI (Another Gateway Interface), which allows the
developers to have stored procedures in the programming
language of their choice (Cobol, Pascal, etc.). In order
to implement the above, AGI source code is provided, so
that the developers can also use their own compiler, or
port it to another platform and language.
- Ovrimos offers a small, robust API to communicate with
the following programming languages: C, C++, Java, Perl,
Scheme (a LISP dialect).
- ODBC and JDBC connectivity which allows programmers that
have developed applications with ODBC or JDBC interface
to port them to Ovrimos.
- Programmable Web Server. Developers can create HTML
output, using Scheme as a script language.
ISPs
Ovrimos Version 2.5 has some distinctive advantages for ISPs:
- It is both a Web and an SQL server.
- Its Web server is programmable (using Scheme).
- Ovrimos Web server can execute SQL scripts, which is a
unique characteristic.
- It supports Perl.
- MIME-typed BLOBs are supported. Ovrimos has a set of
built-in functions, which can manage MIME-typed BLOBs and
can deliver them in Web browsers as images, videos,
sounds, etc. without the need of any special programming
code (unique characteristic).
- Database administration through the Web. It is a simple
task to start, stop, create a new or delete an old
database, even remotely, via a Web browser.
- It needs very few resources: a) approximately 1 to 10 MB
(depending on platform) of free disk space is required,
and b) 2 MB RAM plus 150 KB per connected session.
Corporate Users
There are reasons that Ovrimos is attractive to EDP managers
and they should consider using it as their database platform:
- It is extremely reliable and stable, has a high
performance transactional engine, with built-in error
recovery mechanism, while it has high availability due to
on-line backup.
- It is easy to learn, install, administer and use.
- It complies to and supports open standards, so that the
users are not locked in through proprietary standards.
For example, the main known databases have stored
procedures in proprietary languages, i.e. Oracle has
PL/SQL, Microsoft has SQL Transact, whereas Ovrimos has
stored procedures in C, C++, Java, and Perl.
- It supports many hardware and Operating System platforms.
End-Users
Ovrimos Version 2.5 is very appealing to end-users as well,
as:
- It is user friendly: a) since it is using as interface a
Web browser, so that the end-user is working in a
familiar environment, b) it communicates with all known
office automation applications, such as Excel, Word,
Lotus, etc. with cut and paste functions and data import
or export through ODBC drivers.
- The end-user can easily execute SQL scripts either on
client or server site, via the web browser.
FEATURES SUPPORTED IN VERSION 2.5
SQL-89 / SQL2 (SQL-92) entry level
ODBC 2.0 support
ODBC 2.0 extended SQL grammar level 2 API plus Integrity
Enhancement Facility (IEF): Some extra features are: selects
in FROM clauses, updateable views, scrollable cursors, privilege
inheritance (roles) for easier administration.
Multi-user
operation, multi-CPU support: A very large number of
users may connect to each database at the same time. Only about
150 KB of RAM space is required per session, therefore the limit
is practically very high.
TCP/IP: The TCP/IP protocol is used as a communication
means between client and server, either in single-user or in
multi-user version.
Unlimited number of records: Up to a maximum of 4
billion records per table (2^32).
Referential
integrity: All data manipulation is restricted by
integrity rules specified at data description time. Enforcement
of the rules is automatic.
Query optimization:
An optimizer uses available keys and information about tables to
produce an optimized query.
Data encryption:
Data encryption, based on 256 bit keys, may be applied separately
on each user database. The option to encrypt is selected at
database creation time.
Transactions: A
sequence of operations is guaranteed to be atomic for recovery
purposes. The user can accept them all (commit) or discard them
all (rollback) in a single operation.
Nested transactions:
Ovrimos allows nested transactions up to, theoretically, any
depth. Commit or rollback of a nested transaction is performed in
the confines of its outer transaction.
Error recovery:
Rollback of uncommitted transactions or roll-forward of committed
ones after any failure.
Simple
Backup/Restore facility: Ovrimos allows automatic and
fast backup and restore of user's data.
Four isolation levels:
All isolation levels, as described by the SQL Standard (i.e. Read
uncommitted, Read committed, Repeatable read and Serializable)
are implemented.
Interactive DDL (Data Description
Language): Table, index, and user creation does not have
to be performed by any separate DBA program. Interactive (direct)
SQL is used for all DDL operations.
C, C++ API:
Programmers may develop C or C++ applications, using Ovrimos
through a programmer's library.
32-bit ODBC driver: A 32-bit
ODBC driver is supplied for interfacing with other products.
BLOB support:
It supports Binary Large Objects (BLOBs) for storing and
retrieving arbitrary sized pieces of data.
JDBC 1.1 driver: A JDBC
1.1 driver is offered.
HTTP Server: An integrated
HTTP server that can publish documents pertaining to the
database, or all databases (e.g. the manual), can deploy Java
applets to use the database from within Web browsers, can deliver
MIME-typed BLOBs using special URLs.
CGI support: The
SQL terminal provided doubles as a CGI program, allowing Web
application writers to integrate results from parameterized SQL
scripts into HTML pages.
Stored
procedures: The users are able to write stored procedures
in their favorite language, using a look-alike of the
corresponding interface. For example, Java users will use an
interface similar to JDBC, Perl users will use an interface
similar to DBI. Nick-named AGI (Another Gateway Interface), it
allows centralization of the business logic in OLTP (On-line
Transaction Processing) applications.
CGI: A usable
subset of CGI 1.1 has been implemented.
HTML interface for the user:
The user will be able to browse the database catalog, perform SQL
transactions and even upload SQL files for execution, using a
conventional Web browser. This is possible due to an innovative
implementation of persistent HTTP sessions. No client-side
cookies are used.
HTML interface for the administrator:
The administrator is able to monitor active connections and
statements, thread usage and HTTP sessions and even shut down the
database, using a conventional Web browser.
Domains: The
user can define domains: subsets of basic types using SQL
constraints.
Database manager: Database
administration and monitoring of several databases handled by
Ovrimos will be performed via the user's favorite browser.
Unicode: Unicode
support in the form of UNICODE CHAR and UNICODE VARCHAR types.
UTC/Local Time:
Times and timestamps are held in UTC (a.k.a. GMT) internally, but
are interpreted relative to the session timezone, set by the
user.
Bulk updates: Sets of
update statements, up to approximately 64 KB worth of text, can
be submitted to the server for very fast execution.
Server-side scripts:
Users can take advantage of persistent HTTP sessions to write
entire HTML applications using Scheme.
Memory mapping: A database file-to-memory mapping
mechanism enhances performance since data storage and
retrieval is done in the computer's main memory.
Operating System Platforms
Despite being lightweight, Ovrimos version 2.5 has been tested
successfully with large databases on both Win 32 and U*x
architectures. Particularly, version 2.5 will be available in the
following operating systems:
- Windows NT
- Linux (Intel and Alpha)
- Solaris 2.x (Intel and SPARC)
- IRIX (Silicon Graphics)
- True64 Unix
- UnixWare 2.x
- FreeBSD
- SCO Unix
- BSDI
Differences from previous versions
A few shortcomings of the previous versions are now overcome
and some new features appear in version 2.5. The main additional
features of version 2.5 are the following:
- Stored Procedures
- The users are now able to write stored procedures in the
programming language in which they are fluent, using a
look-alike of the corresponding interface. For example,
Java users may use an interface similar to JDBC, Perl
users may use an interface similar to DBI. Nick-named AGI
(Another Gateway Interface), it allows speedups of orders
of magnitude in OLTP (On-line Transaction Processing).
-
- CGI and CGI scripts
- A usable subset of CGI 1.1 is implemented. Besides,
Ovrimos may now execute CGI scripts without the need of a
separate Web server.
-
- HTML interface for the user
- The user is now able to browse the database catalog,
perform SQL transactions and even upload SQL files for
execution using a conventional Web browser. This is
possible thanks to the implementation of persistent HTTP
sessions. The best point of the technique used is that no
client-side cookies are used.
-
- HTML interface for the administrator
- The administrator is now able to shutdown the database
and monitor active connections and statements, as well as
HTTP sessions, using a conventional Web browser.
-
- Server-side scripts
- Users can take advantage of persistent HTTP sessions to
write entire HTML applications using Scheme.
-
- Database Manager
- Database administration and monitoring of several
databases handled by Ovrimos is now performed via the
user's favorite browser.
-
- Domains
- The user is now able to define domains: subsets of basic
data types using SQL constraints.
-
- Unicode
- Unicode support is in form of UNICODE CHAR and UNICODE
VARCHAR types. The implementation of Unicode allows users
to employ Unicode as easily and effectively as ASCII.
-
- UTC/Local Time
- Times and Timestamps are held in UTC (a.k.a. GMT)
internally, but are interpreted relative to the user's
time zone. An example that sets the time zone is
explained in the SQL Appendix.
-
- Bulk Updates
- Sets of update statements, up to approximately 64k worth
of text, can be submitted to the server for very fast
execution.
FUTURE ENHANCEMENTS
- Secure Web server (SSL support)
- Table replication
- Sagas (very long transactions)
Next chapter: Working
Environment