.
Eloquence WEBDLG2 Beta contact contact

Documentation / Eloquence WEBDLG2

Eloquence WEBDLG2 Beta

 
.
  Document revision: 2021-04-01
Refers to WEBDLG2 version: PE83-2103310 (beta version 2)


We are pleased to welcome you to the Eloquence WEBDLG2 beta test.


Please note: If you use a previous WEBDLG2 beta version, please refer to the sections "Updating a previous beta version" and "Release notes" below.


Table of contents


WEBDLG2 is a web browser user interface for Eloquence DLG.

Compared to its predecessor, WEBDLG v1, it provides a number of enhancements:

  • WEBDLG2 is aimed at JDLG 2.0 object and attribute compatibility.

  • WEBDLG2 uses the WebSocket technology to implement a true bidirectional and low latency DLG connection. For example, DLG DRAW now works as expected.

  • Dialogs are fully dynamic and do no longer reload the HTML document.

  • WEBDLG2 uses a single server process, the eloqwebd2 server. It no longer depends on the Apache web server.

  • WEBDLG2 implements new DLG features to allow applications to support different screen sizes. For example, Dialogs may be configured to show reduced content if an application is run on a mobile device.


Please note: The current WEBDLG2 beta version does not yet support all of the above functionality. It is a preview release, ready for testing but functionally incomplete. A first demo program is available to demonstrate the current functionality.

Limitations of the current beta version:

  • It currently provides partial WEBDLG v1 compatibility.

  • All WEBDLG v1 object classes are supported.

  • Supported JDLG object classes: TabBox, MenuBar, Menu, MenuItem.

  • The current beta version implements attributes which are required for basic DLG functionality, such as object position and behavior (visible, sensitive, focus, tab order, rule, ruleoverride, editable). Other attributes are understood but currently don't have any effect, i.e., DLG SET may be ignored, DLG GET may return zero or an empty string.

  • The visual representation of DLG objects is preliminary. For example, the current beta version does not honor font or border settings, and the Dialog raster calculation is not final. Dialogs are correctly shown but "may not look pretty".

  • Keyboard accelerators are not implemented in the current beta version.

  • Authentication is not implemented in the current beta version. The eloqsd login and password currently must be specified in the eloqwebd2.app configuration.

  • Token resolving in the eloqwebd2.app command line and environment variable configuration is not supported in the current beta version.

  • The eloqwebd2 server process will provide a status display to allow monitoring of active sessions. This is not part of the current beta version.

  • In the current beta version, the eloqwebd2 server does not automatically detect configuration changes. For example, if the eloqwebd2.app file is modified, the eloqwebd2 server must be restarted so that the modified configuration is recognized.

Functionality which is currently not available will be provided step-by-step in upcoming WEBDLG2 beta versions.


On the web browser, WEBDLG2 makes extensive use of contemporary Javascript and CSS functionality. It is compatible with any recent web browser, including Microsoft Internet Explorer 11.

Detailed web browser compatibility information will be provided here in a later revision of this document.


WEBDLG2 is currently provided for the Linux x86_64 platform. The other platforms supported by Eloquence 8.30 will follow soon.

See also: Eloquence 8.30 Linux system requirements

To use the WEBDLG2 beta version, the Linux distribution must support the systemd manager. Also, a running Apache 2.2 or 2.4 web server is currently required.

The current WEBDLG2 beta version is delivered as Eloquence 8.30 patch PE83-2103310.

Download: PE83-2103310-linux-x86_64.tar.gz

Installation (as superuser):

cd /opt/eloquence/8.3
tar xzf /path/to/PE83-2103310-linux-x86_64.tar.gz

Afer installation, copy the new eloqwebd83.service systemd unit to the /lib/systemd/system or /usr/lib/systemd/system directory, depending on the Linux distribution.

To install it in /usr/lib/systemd/system (as superuser):

cd /opt/eloquence/8.3/newconfig/startup/systemd
cp eloqwebd83.service /usr/lib/systemd/system

To install it in /lib/systemd/system (as superuser):

cd /opt/eloquence/8.3/newconfig/startup/systemd
cp eloqwebd83.service /lib/systemd/system

Next, reload the systemd configuration (as superuser):

systemctl daemon-reload

Next, copy the new eloqwebd2 configuration template files to the Eloquence 8.30 configuration directory (as superuser):

cd /opt/eloquence/8.3/newconfig/config
cp eloqwebd2.* /etc/opt/eloquence/8.3

Next, make the new eloqwebd2 configuration files writable (as superuser):

cd /etc/opt/eloquence/8.3
chmod u+w eloqwebd2.*

Next, edit the /etc/opt/eloquence/8.3/eloqwebd2.cfg file. To use the current WEBDLG2 beta along with the pre-configured demo program, the [Server] ServiceHTTP item should be set as:

ServiceHTTP = 8188

If your Apache web server is configured for HTTPS, the [Server] ServiceHTTPS and TLSCertChainFile items must be configured, otherwise the web browser may refuse to open WebSocket connections due to its security policy:

ServiceHTTPS = 8189
TLSCertChainFile = /path/to/your/cert-chain-file

It may be necessary to configure the [Server] TLSCertKeyFile in addition, in case the TLSCertChainFile does not contain the private key. Please refer to the eloqsd documentation about how to obtain the TLSCertChainFile.

Please note: The above port numbers, 8188 for HTTP and 8189 for HTTPS, are configured in the demo program. We recommend to use exactly these port numbers so that the demo program works without modification.

Next, configure the [Server] UID and GID items. By default, they are set to user "eloqwebd" and group "eloqwebd". Either create these in /etc/passwd and /etc/group ...

# /etc/passwd:
eloqwebd:x:88:88:Eloquence WEBDLG:/var/opt/eloquence/8.3:/bin/false

# /etc/group:
eloqwebd:x:88:

... or modify the [Server] UID and GID configuration, for example (assumed that the "eloq" user and group are present on the system):

UID = eloq
GID = eloq

Now, the basic eloqwebd2 server configuration is complete.


A ready-to-use demo program is available which demonstrates the current WEBDLG2 features. It should be installed below the Eloquence 8.30 /opt/eloquence/8.3/share/example directory.

Download: webdlg2.210401.tgz

Installation (as superuser):

cd /opt/eloquence/8.3/share/example
tar xzf /path/to/webdlg2.210401.tgz

The demo program files are installed below the /opt/eloquence/8.3/share/example/webdlg2 subdirectory.

To use the current WEBDLG2 beta version and the demo program, the Apache web server needs additional configuration. A ready-to-use webdlg2.conf configuration file is available for download.

Depending on the Linux distribution, the location of the Apache web server conf.d configuration directory may be, for example, /etc/httpd/conf.d, or /etc/apache/conf.d, or /etc/apache2/conf.d.

The wget utility may be used to conveniently install the webdlg2.conf file. For example, if the Apache web server conf.d directory is at /etc/httpd/conf.d (as superuser):

cd /etc/httpd/conf.d
wget https://eloquence.marxmeier.com/support/B0830/doc/example/webdlg2.conf

This installs the webdlg2.conf file:

# Apache httpd configuration for the Eloquence WEBDLG2 beta test

# Demo programs, must come first
Alias "/webdlg2/demo" "/opt/eloquence/8.3/share/example/webdlg2/htdocs"
<Directory "/opt/eloquence/8.3/share/example/webdlg2/htdocs">
    Options None
    # Apache 2.4
    <ifModule mod_authz_core.c>
    Require all granted
    </ifModule>
    # Apache 2.2
    <ifModule !mod_authz_core.c>
    Order allow,deny
    Allow from all
    </ifModule>
</Directory>

# WEBDLG2 resources
Alias "/webdlg2" "/opt/eloquence/8.3/share/webdlg2/htdocs"
<Directory "/opt/eloquence/8.3/share/webdlg2/htdocs">
    Options None
    # Apache 2.4
    <ifModule mod_authz_core.c>
    Require all granted
    </ifModule>
    # Apache 2.2
    <ifModule !mod_authz_core.c>
    Order allow,deny
    Allow from all
    </ifModule>
</Directory>

This file configures the directories below:

  • Demo program, alias "/webdlg2/demo"
    /opt/eloquence/8.3/share/example/webdlg2/htdocs

  • WEBDLG2 resources, alias "/webdlg2"
    /opt/eloquence/8.3/share/webdlg2/htdocs
    Please note that upcoming WEBDLG2 versions will not require this configuration anymore.

Next, restart the Apache web server. Depending on the Linux distribution, the name of the related systemd unit may be, for example, "httpd", or "apache", or "apache2".

Assumed the systemd unit name is "httpd" (full name: "httpd.service"), the command below restarts the Apache web server (as superuser):

systemctl restart httpd

In case the Apache web server does not start, check its status (as superuser):

systemctl status -l httpd

Next, edit the /etc/opt/eloquence/8.3/eloqwebd2.app file. Add the [Demo1] section to the end of the file to configure the demo program:

[DEMO1]
#Command = -log /tmp/eq.log -d*1G2
Command = Demo1
StartDir = /opt/eloquence/8.3/share/example/webdlg2/prog
Environment = EQ_ELOQRC=/opt/eloquence/8.3/share/example/webdlg2/prog/eloq.rc
Login = web
Password = web

Here, a generic eloqsd "web" login, password "web", is used. Either add this user to the eloqsd.user file, or use a different user already present in eloqsd.user.

The first Command item is commented out. The comment may be removed to create an eloqcore log file in case the demo program does not run as expected.

Now, the configuration is complete. Start the eloqwebd2 server (as superuser):

systemctl start eloqwebd83

In case the eloqwebd2 server does not start, check its status (as superuser):

systemctl status -l eloqwebd83

The eloqwebd2 server may be configured for auto-start. You may, however, decide against that because this is an early beta version. To enable the eloqwebd2 server for auto-start (as superuser):

systemctl enable eloqwebd83

Please note: The current eloqwebd2 server must be restarted if the eloqwebd2.app configuration is modified. Upcoming versions will detect and reload a modified configuration.


The demo program can now be invoked in a web browser.

The HTTP URL is:

http://SERVERNAME/webdlg2/demo/demo1.html

The HTTPS URL is:

https://SERVERNAME/webdlg2/demo/demo1s.html

Most browsers require to use a secure WebSocket protocol if HTTPS is used to load the the invoking HTML document. Therefore, two HTML documents are provided:

  • demo1.html, uses eloqwebd2 port 8188
  • demo1s.html, uses eloqwebd2 port 8189


To update from PE83-2103160 (WEBDLG2 beta version 1) please follow the steps below:
  • Stop the eloqwebd2 server (as superuser):
    systemctl stop eloqwebd83

  • Download and install the new WEBDLG2 beta version.

    The WEBDLG2 beta version 2 is delivered as Eloquence 8.30 patch PE83-2103310.

    Download: PE83-2103310-linux-x86_64.tar.gz

    Installation (as superuser):

    cd /opt/eloquence/8.3
    tar xzf /path/to/PE83-2103310-linux-x86_64.tar.gz

  • Download and install the new version of the demo program.

    Download: webdlg2.210401.tgz

    Installation (as superuser):

    cd /opt/eloquence/8.3/share/example
    tar xzf /path/to/webdlg2.210401.tgz

  • Start the eloqwebd2 server (as superuser):
    systemctl start eloqwebd83

    The status should indicate the new PE83-2103310 version:

    systemctl status -l eloqwebd83

  • Done. You can now invoke the new version of the demo program along with WEBDLG2 beta version 2.

    The demo program URL is the same as before.

    Please note: Your web browser may have cached the CSS and Javascript files of the previous beta version. Therefore it is important that you "force-reload" the demo page before starting the new version of the demo program for the first time.

  • Please refer to the "Release notes" section below.


PE83-2103310
  • WEBDLG2 beta version 2.

  • New object classes:
    Menu, Menubar, Menuitem, PopText, TabBox

    A new version of the demo program is available which demonstrates the current implementation of these new classes.

  • The following common attributes now work as expected:
    .id .path .first .next

  • Attributes: All attributes are now implemented. Status 657 (bad attribute) should no longer occur. Please note that attributes which are not required for basic DLG functionality are understood but currently don't have any effect, i.e., DLG SET may be ignored, DLG GET may return zero or an empty string.

  • Dialog behavior: Fixed Dialog not scrollable if larger than browser window.

  • Configuration: Fixed eloqwebd2 panic if eloqsd server address is not configured. The localhost:eloqsd default address is now used, as documented.

  • Configuration: Fixed LogFile configuration. A configured LogFile was not created.

PE83-2103160

  • WEBDLG2 beta version 1.


We appreciate and hope for your feedback. Please send your feedback to the support@marxmeier.com address. Thank you very much.

Enjoy!
The Eloquence Team


 
 
 
  Privacy | Webmaster | Terms of use | Impressum Revision: 2021-04-01  
  Copyright © 1995-2021 Marxmeier Software AG