We just released the latest update of Green Screens Server for IBM i. In last 4 months and few small mid-releases we made a lot of internal improvements and technology updates. Find out here the most important changes and what's new.
Config repo changes
Server configuration directory structure was changed. New subdirectory "service" is added, with subdirectories per web module to store individual module settings for easier data handling.
Full TLSv1.3 support
Even TLSv1.3 can be used in previous versions if Green Screens Server is behind proxy supporting TLSv1.3, now it is fully integral part of Green Screens Server allowing you to use TLSv1.3 without proxy service. As TLSv1.3 is strict about encryption algorithms used, when enabled, some older algorithms are disabled. That also required update to the latest Java Web servers supporting TLSv1.3 and testing that all used algorithms are working properly.
Issue detection flags
We added some extra system flags for enabling various system reporting and logging for services as JT400, SSO, SSO ticket issuing, network tracing etc. which can be helpful in detecting various configuration and network issues.
Java 17 support
In last few years, Java ecosystem changed dramatically, including 6 months release schedule compared to previous in avg. 3 years period. With every new release, new features and improvements arrives. Also, some oldish deprecated functionalities gets removed. Latest Green Screens Server and included libraries was verified for breaking changes to support Java 17. Also, we switched to Eclipse Adoptium Java JVM for default MS Windows distribution.
JMX based management
We developed a new small but powerful JMX framework which is able to wrap Java Classes into Dynamic JMX Beans available through JMX console. This project is a basis for 3 important features existing within Green Screens Server.
Future JMX based generic metrics, independent of external libraries, which is planned to be released by the end of 2021.
Improved web module inter process communication.
Exposing configuration actions through JMX enabling Green Screens Server management through JMC. Currently, individual web module properties are available. In the next few update iterations, we will expose more and more functionalities until we reach full coverage of server management.
MS Edge improved support
Microsoft Edge is based on WebKit just as Google Chrome, meaning that both browsers has a support for the same format of browser extensions. Our browser extension is available for Google Chrome for several years now. Recently, we published our extension to MS Edge Extensions Store. Due to the technical differences compared to Chrome, some advanced features as offline install is still not working.
Native lib integration upgrade
We switched from JNA to JNR for calling external integration modules. JNR is faster and achieve better performance on server environment. JNR was a basic for Java Panama Project - a new native lib integration framework which is replacement for oldish JNI.
Secured tunnels updates
Green Screens Server has integrated secured tunneled access to IBM i server through SSH or specially developed VPN broker service. Now, both modules support UNIX memory channels and x86 and ARM architecture on MS Windows and Linux.
Single sign on Kerberos improvements
SSO is now multiplatform supported, multiple KDC support was added, SSO ticket testing service, significantly improved logging and issue tracing in case of problems. We also made small UI changes inside web admin console to consolidate SSO setup.
New property to enable SSO bypass was added. Will work when DNS name used is different from SPN or x-sso=off HTTP header is injected by front proxy. Also, CIDR address ranges for SSO parameter is added when SSO bypass is used to determine which networks are forced to use SSO. This feature is useful if companies want to use external connections without SSO on the same Green Screen server.
Unix Domain Socket support
As of Java 16, UNIX AF networking through direct memory access was added, avoiding network layer and improving latency performance. We added support for tunneled services, including updates in sshbroker and vpnbroker tunnels.
Build system
Last but not least, we improved the internal build system which now adds some build information in every module, simplifying version conflict detection in a case of issues. Some companies are using multiple server instances with different product versions such as production and testing environments, which sometimes creates conflicts made by human error during the upgrades. Having build signatures makes version conflicts detection much easier.
Future plans
There is one more release planned for the end of the year. Focus in the next release is on metrics to actively measure various activities within the system. Also, it will focus on metric software integration such as Prometheus, Graphana and OpenTelemetry. The introductory blog we wrote about Java Metrics and possibilities can be found here.
From 2022., we are switching to quarterly release schedule. As Green Screens Server has automatic update service, all urgent issue fix updates and smaller mid-releases will be published only through auto-update service. All full package releases will follow technology updates for Java Runtime or Web Server Runtimes and important library updates such as security libraries etc.
Green Screens Server automatic update service can be configured to either updates from our public distribution service or from local network instead. This allows enterprise inside-company automated scheduled updates. Companies which wants to isolate Green Screens Server from external network, but still wants to keep automatic updates, can separate external and internal updates for module whitelisting before update.