What is Genero Enterprise

Genero Enterprise provides an integrated development environment that you can use for the creation of applications to deploy to desktop, web, cloud, and mobile clients.

Genero Enterprise Components

Genero Enterprise is made up of visual tools, business and program logic components that effectively work together to quickly create applications and reports.
Genero Business Development Language (BDL)
Genero BDL is a simple, easy-to-learn programming language for data-intensive business applications. See Genero Business Development Language.
Genero Studio
Genero Studio is an intuitive suite of visual tools (or modules) for creating application interfaces and developing and debugging the underlying program logic. See Genero Studio.
Genero Report Writer
Genero Report Writer is a set of programming APIs and a graphical user interface (GUI) that provide a drag-and-drop interface for the design of business reports, such as corporate or accounting documents, pre-printed forms, labels, and business graphs. See Genero Report Writer.
XML-based Abstract Presentation Layer
Genero provides an abstract definition of the user interface as an XML tree of objects that can be manipulated at runtime by the front-end client to enable GUI independence for your Genero application. See XML-based Abstract Presentation Layer.
Dynamic Virtual Machine (DVM)
The DVM executes your application and manages database interaction and communications with client platforms. See DVM.
Open Database Interface (ODI)
The ODI refers to the component of the Genero DVM that maps database-vendor-independent high-level code to provide native access for a variety of vendor databases. See ODI.
Genero Web Services (GWS)
Web services enables applications built with different technologies to integrate and exchange data across varied systems and enterprises using web-based protocols. See GWS.
Genero Desktop Client (GDC)
The GDC provides a graphical front end that displays your Genero application on Windows®, Linux™, or Apple®desktops. See GDC
Genero Application Server (GAS)
The GAS provides remote access to Genero applications deployed for the GDC. The GAS includes a Web client component - the Genero Browser Client (GBC) - to support the development of database-oriented web applications. The GAS also manages Genero Web Services. See GAS.

This installation of the GAS does not include the web server component of the software, however the products are fully functional standalone and can be used for developing applications. For production systems, you can install the web server component later using the installation packages of the full GAS products.

These components are discussed in more detail below.

Genero Business Development Language (BDL)

Genero BDL is a simple, easy-to-learn programming language for data-intensive business applications. Use Genero BDL to build an interactive database application, a program that handles the interaction between a user and a database.

The programming language is English-like and easy-to-learn. Executable statements enable:
  • Program flow control
  • Conditional logic
  • Error handling
  • Structured Query Language (SQL) statement support
High-level program instructions substitute for the many lines of code usually needed to handle user interaction and database manipulation. For example, the INPUT BY NAME instruction turns program control over to the user, and allows the user to move around the application form, entering or modifying data.

SQL statements to communicate with database servers are a part of BDL. Dynamic SQL management allows you to execute any SQL statement that is valid for your database version, in addition to those included as part of the BDL. 

Built-in classes and predefined functions support BDL features and enhance rapid application development. Using the Genero classes and functions, you can manipulate your application's user interface at runtime and perform other common application tasks.

Data types supported by the language include user types, which you can be defined as synonyms of existing data types, or as shortcuts for records and array structures.

XML-based Abstract Presentation Layer

A Genero application presents its user interface as windows and forms. Interactive elements on the forms (such as buttons, toolbars, and menus) allow the user to trigger actions within the application.

Forms can be designed using the graphical Genero Studio Form Designer, directly in text files, or built dynamically by the application.

The XML-based Abstract Presentation Layer allows a single Genero source code stream to support different userOracle® interfaces. Genero client software, such as the Genero Desktop Client or the Genero Browser Client, display an application's interface on the client machines.

Figure 1 shows how the abstract user interface (AUI) tree is shared by the runtime system and the front-end client. Their interaction during the running of the application is explained here.
Figure: How the AUI tree functions

The drawing shows how the abstract user interface tree is shared by the runtime system and the front end
  • The form definition files are translated into XML documents when they are compiled into runtime form files.
  • The Genero runtime system creates the AUI tree from the XML documents, and sends this information to the Genero client software.
  • The Genero client software uses the AUI tree to display the application's interface on the client machine.
  • When a user triggers an action, the event is transmitted to the runtime system for interpretation.
  • Any changes to the user interface resulting from this action are applied to the AUI tree.
  • The runtime system automatically synchronizes the copies of the AUI trees on the application server and the client machine.

Genero BDL contains built-in classes that allow an application to modify the application's interface at runtime, dynamically changing the appearance of the application.

Dynamic Virtual Machine

The Dynamic Virtual Machine is the software or runtime system (fglrun) where an application's business logic is processed. It serves as a highly efficient application server that:
  • Manages communications with clients.
  • Supports a wide variety of architectures, including the Web and Web services.
  • Optimizes performance across multiple platforms and databases.

The DVM's n-tier architecture enables the distribution of applications and databases through firewalls and across distributed networks.

Ported to multiple UNIX, Windows, and Linux platforms, the Dynamic Virtual Machine executes the portable byte code (P-code) of Genero applications.
Figure: Dynamic Virtual Machine executes p-code

Drawing shows how the Dynamic Virtual Machine executes the portable byte code of Genero applications.

Open Database Interface

Using the Genero Open Database Interface architecture a Genero application can connect to database servers from different database vendors, including Oracle™, IBM™ DB2™, PostgreSQL™, SQL Server™, MySQL™, IBM® Informix™, SQLite™, and Sybase™.

Compatibility guides for writing portable SQL are provided in the Genero Business Development Language User Guide.

  • Database drivers specific to each supported database vendor are provided as pre-linked shared libraries.
  • At runtime, the DVM generates the appropriate SQL commands to be used with the target database server.

A Genero application can connect to different database servers simultaneously by issuing simple CONNECT TO and SET CONNECT instructions.

Genero Web Services

Genero support for Web Services is built in to Genero BDL.

Genero developers do not need to learn intricate programming to use Web Services; they can use simple embedded commands in BDL to create and use Web services.

Web Services work by answering requests for information and returning data in structured XML documents. As XML is simple text and Web Services can be invoked via the hypertext transfer protocol (HTTP), it does not matter what platform runs the Web Service.

Typically, web services use the Simple Object Access Protocol (SOAP) or Representational State Transfer (REST) protocols to define the communication and structure of messages.

Genero Desktop Client

The Genero Desktop Client is a front-end client that displays application screens natively on your Windows, Linux, or MAC OS. The GDC also allows you to run your application through the GAS, yet deliver it locally using the GDC. Shortcuts can store the information necessary to start an application.

Figure: Genero Desktop Client

Screenshot of Genero Desktop Client configuration interface showing connected application

Genero Application Server

The Genero Application Server (GAS) is an engine that allows you to develop Genero applications for delivery to Genero front-end clients for both the desktop and the web. No changes to your Genero application source code and form program files are required; the same Genero application can be displayed in a browser or as a desktop application.

The GAS is embedded with a Web Server; it includes dispatcher and proxy processes to enable the GAS to be interfaced with a Web Server to handle requests from the Internet. For development cycle you can install the GAS locally and use the GAS's Standalone HTTP capabilities to serve the web page. But a Web server (e.g. Apache™ httpd, lighttpd, nginx, or Microsoft™ ISAPI) must be included for deployment.

The Genero Browser Client component of the GAS supports development of both highly scalable database-oriented web applications, and enterprise applications that provide web and desktop interfaces to their functionality. You can customize and control how the Web Client renders the application to provide a more web-like interface when the application is displayed in a browser. This is done by the front-end client software rendering the Genero applications for display in standard HTML browsers.

The GAS establishes and manages the communication between Genero front-end client software (GDC or GBC) and the DVM. Communication between the front-end client and the GAS is handled by the Genero dispatcher, which routes requests from the Web Server to the correct GAS daemon. Several GAS daemons can be configured to load balance the requests.

The GAS also manages a pool of DVMs for Web Services applications.