Developed at the
ODRA – Object Database for Rapid Application development
Description and Programmer Manual
The ODRA database system architecture uses the client/server model to communicate with clients creating distributed database environment. It is also possible that the ODRA server can behave as a client for another server. As typical for client/server applications, the client and the server can be on different hosts. In such a case they communicate over the TCP/IP network.
3.1.1 ODRA server
An ODRA database is a static collection of structures called a “data store”. Data stores can be persistent or transient. In the first case the data are stored in the operating system file (stored in RAM with the use of a facility called memory mapped files that is similar to the swap file mechanism). The transient data store is stored directly in the main memory.
A collection of processes operating on a database is called a database instance. Currently a database instance consists of two main processes:
· Communication process – responsible for asynchronous client connections acceptance and service.
· Server process – representing client at the server side.
3.1.2 ODRA client
An ODRA client is an application that is able to communicate with an ODRA server with the use of ODRA client/server protocol or API (e.g. Web Services interface). By default, the ODRA system is equipped with command line interface client (CLI). To create a complex application the IDE (Integrated Development Environment tool) client can be used.
ODRA is a Java-based application and requires Sun™ JRE (Java Runtime Environment) to run. The current version uses the 1.6+ version of the JRE.
Because ODRA is assumed to be a full development environment the main usage pattern is based on the Integrated Development (IDE) application. IDE contains a graphical editor (which plays the role of rich ODRA client) and the ODRA server itself (for storing programs, compiling and execution). Apart from IDE, ODRA is also equipped with a client that can be used instead of the full IDE tool.
After completing previous steps you are ready to create your own data structures and classes. The following sample code creates PersonClass , extends it by EmpClass and creates DeptClass:
Having classes defined it is possible to fill the database by sample data and to query database using sample queries:
Queries (in the context of PersonEmpMod):
Return all employees with last name Doe.
Return all employees with salary greater than 2000.
Simple application could be implemented like this:
We can invoke Hello World application invoking say_hello() procedure (in the context of module test):
The procedure will return the following output:
The comprehensive description of using IDE is the subject of a next chapter of this document. This section contains only quick start guide with the IDE. Notice also that the description of ODRA IDE from the programmer point of view is the subject of another document, ODRA-IDE API Specification (070621 ODRA-IDE API Specification.doc).
The following steps describe activites needed by the quick start example:
· Working with the IDE should be started with creating a new project. This functionality is available using context menu – see Fig. 3‑1. A project’s name should be entered (i.e. Tiny Example) and project’s directory has to be selected. Notice that a new project’s directory (with a project’s name) will be created.
3‑1. Creating a new project in the ODRA-IDE
· Create an empty file (using project’s context menu) named: “PersonEmpMod.sbql” and fill it with the code shown on Fig. 3‑2 and Fig. 3‑3.
3‑2. SBQL code for PersonEmpMod.sbql – part (a)
3‑3. SBQL code for PersonEmpMod.sbql – part (b)
· Create an empty file (using project’s context menu) named: “main.sbql” and fill it with the code presented on the Fig. 3-4.
3‑4. SBQL code for main.sbql
· Start a default server (using server’s context menu) or connect to the existing one – see Fig. 3‑5.
3‑5. Connecting to existing ODRA server
· After sucessfuly connection, build the project (using project’s context menu) – Fig. 3‑6. Notice that server’s node contains modules node which presents the server’s content. A few new items has been created, i.e. classes (PersonClass, EmpClass), procedure (create_database).
· Activate “Odra Query” tab (default location is at the bottom of the screen) and run create_database procedure ( Fig. 3‑7). Notice that appropriate context module has been selected.
3‑6. ODRA-IDE after successful build of the sample project
3‑7. Running sample procedure in the ODRA-IDE
· Run other queries or methods, i. e. say_hello and see the results ( Fig. 3‑8).
3‑8 Running sample query in the ODRA-IDE
Last modified: June 17, 2008