Zim 8.50 at a Glance

The Zim Database Management System - Client Server Architecture

The Zim Database Management System (Zim DBMS) is built on a true client/server architecture.

ZimServer, the core of the system, is where all critical data resides, all data operations are executed and all user connections to databases are managed.

ZimServer communicates with different application clients to send requested data (e.g., queries and form field values), to receive modified data, and to receive input from end-users.

In addition to the application clients, other system components are also clients operating in conjunction with ZimServer to provide a specific functionality to the system.

 

Since the architecture of the Zim DBMS is inherently flexible, it allows for a diverse combination of components. Each component provides its functionality to the systems: Data, GUI Deployment, TUI Deployment, Development, and Management, as summarized below:

  • ZimQt Client - GUI Deployment: A multiplatform client that provides a graphical user interface (GUI) to Zim database applications according to the platform on which it is running. While ZimServer executes all data operations in a Zim database application, ZimQt Client executes local operations, displays form field values and collects events from end-user interaction;
  • Zim Client - TUI Deployment: A text-based client for Unix/Linux environments. Its operation is analogous to ZimQt Client, except that the end-user interaction occurs via text terminal;
  • ZimIDE - Development: An integrated design studio, in which all Zim database objects (entity sets, relationships, roles, etc) and graphical objects (windows, forms, displays, form fields, etc) can be created and edited;
  • ZimExplore - Management: An integrated management console for configuring and managing ZimServer, creating and configuring Zim databases, viewing logs and running several other utilities;

The following table presents all Zim DBMS components, their function, their role in the client/server architecture and the platforms on which they are suported:

Zim Component Function Role Platforms Supported
ZimServer Data Server Server Windows, Unix/Linux, Android, iOS
ZimQt Client GUI Deployment / Runtime Client Windows, Unix/Linux, Android, iOS
ZimQt Client Plugin GUI Deployment / Runtime Client Browsers on Windows, Unix/Linux, Android
Zim TUI Client TUI Deployment / Runtime Client Unix/Linux
ZimIDE Development Environment Client Windows
ZimExplore Management Console Client Windows

 

Zim 8 - ZimServer on Windows

  • Server: ZimServer runs on a dedicated Windows machine;
  • Management: ZimExplore runs on a Windows machine. It is usually on the same Windows machine as ZimServer, but it can connect to different instances of ZimServer on different platforms;
  • GUI development: ZimIDE runs on a Windows machine. It is usually on the same Windows machine as ZimServer, but it can connect to different instances of ZimServer on different platforms;
  • GUI deployment: ZimQt runs on any supported platform to deploy Zim database applications (Linux, Windows, Android, iOS). It is also installed on the same Windows machine as ZimServer to test applications.

Zim 8 - ZimServer on Unix / Linux

  • Server: ZimServer runs on a dedicated Unix/Linux machine;
  • Management: ZimExplore runs on a Windows machine;
  • GUI development: ZimIDE runs on a Windows machine;
  • GUI deployment: ZimQt runs on any supported platform (Linux, Windows, Android, iOS. It can be installed on any supported platform. It is also installed on the same Unix/Linux machine as ZimServer for testing applications.
  • TUI deployment: Zim usually runs on the same Linux machine as ZimServer. Remote client access is achieved via any terminal emulator (Telnet/SSH).

The Zim DMBS Advantage

The Zim DBMS is an efficient, light-weight, powerful, and flexible database management system. There are three main features that distinguish Zim from other systems:

  • The Zim 4th generation programming language (4GL): The Zim DBMS has its own fully-featured English-like programming language, also called Zim;
  • Seamless interface between language and database: The Zim programming language includes all commands necessary for data definition and data manipulation. No external interface or API is needed;
  • The Entity-Relationship (ER) Model: Zim's unique database format is completely adherent to the ER Model, an extension of the relational model. The ER model allows for a transparent implementation of the semantic relationships among data sets. As such, relationships are defined only once and become an integral part of the data. This results in more compact and efficient code, since repetitive and redundant "relationship" code (e.g., the exact same sequence of JOIN statements (SQL) in several transactions) can be avoided.

The combination of the powerful and flexible Zim language with the clarity and conciseness of the ER model means that Zim database applications are easier to develop and maintain.

The Zim DBMS provides a complete system for database applications, whereas other solution require a programming language, a database interface and a database management system.

From Zim 7 to Zim 8

The following table shows the components available in Zim 8 and their equivalent in Zim 7.

Notes:

  • ZimIDE in Zim 8 has the combined functionality of DC and Painter Zim 7;
  • All previous runtimes (ZimMU, ZimRT, ZimPRT and Zim) have been replaced by ZimQt in Zim 8;
  • Optional components in Zim 7 are marked with a *. These components are now an integral part of Zim 8
  • JDBC SAM, available since Zim 7.12 replaces SAM Oracle, available until Zim 7.11