Uniface 9.3
The 2008 release of Compuware's model-driven 4GL that standardized deployment around zip-based Uniface Archives and added cross-referencing for service-oriented refactoring.
Created by Compuware Corporation (Uniface Lab, Amsterdam)
Uniface 9.3 is the late-2008 release of Uniface, the Dutch-born, model-driven fourth-generation language (4GL) that Compuware Corporation sold as an enterprise application platform. Arriving between Uniface 9.2 (2007) and the Rich-Internet-Application-focused Uniface 9.4 (2010), version 9.3 was not a flashy release — its headline features were a standardized, zip-based deployment mechanism and cross-reference tooling — but that is precisely what makes it interesting. Uniface 9.3 is a snapshot of enterprise software’s least glamorous and most consequential concerns: how do you ship, patch, and refactor applications that run businesses around the clock in places where no IT staff is present?
History & Origins
The Uniface Lineage
Uniface itself dates to 1984, when the Amsterdam company Inside Automation built a 4GL around the ANSI/SPARC three-schema architecture: describe an application’s data model, rules, and behavior once in a central application model, and let pluggable drivers handle any database, operating system, and user interface. Detroit-based Compuware Corporation acquired the product in 1994 and made it the flagship of its application development business.
The Uniface 9 generation began shipping under Compuware with a first general-availability release planned for December 2006. The 9 line concentrated on GUI and usability improvements, Unicode support for multilingual applications, simplified “thin” deployment using zipped archives, and better integration with web and XML standards. Uniface 9.2, announced in November 2007, pushed the platform onto Microsoft Windows Mobile devices, added Windows Vista support, and rounded out the service-oriented story with XML Schema, SOAP, and WSDL compliance.
The 9.3 Release
Uniface 9.3 was reportedly available by December 2008 as part of the Compuware Uniface Application Platform Suite. Compuware framed the release around three themes:
A single, standardized deployment mechanism. Uniface 9.3 reworked the Uniface Archive (UAR) format around standard zip files with a defined internal structure. Critically, from 9.3 onward an application could run directly from the archive — compiled components, global objects, and descriptors no longer had to be unpacked onto the target machine. Compuware pitched this at organizations operating 24/7 applications in remote locations with no on-site IT personnel.
Cross-reference functionality. New facilities for generating, managing, and reporting cross-reference information showed where components, entities, fields, and procedures were used across an application — tooling aimed squarely at teams refactoring monolithic Uniface applications into service-oriented architectures.
A better mobile interface. Building on 9.2’s Windows Mobile support, 9.3 improved the graphical interface for mobile applications, with techniques to maximize the amount of data visible on constrained screens and user-definable buttons that end users could configure.
Documentation for the release also recorded changes to deployment-related Proc functions, assignment-file settings, and command-line switches — the connective tissue of the new deployment model.
Design Philosophy
Uniface 9.3 inherited, unchanged, the convictions that defined Uniface from the start:
- The model is the application. Entities, relationships, and business rules live in a central application model; forms, services, reports, and server pages inherit structure and behavior from it.
- Database and platform independence. Application code addresses the conceptual model; swappable DBMS connectors translate to the physical database, so the same application moves between database vendors and operating systems largely by reconfiguration. Wikipedia’s account of the platform lists Windows, Unix, Linux, OpenVMS, and IBM i among the operating environments supported across the product’s history.
- Compiled components on a portable runtime. Uniface source compiles into components executed by a runtime engine on each deployment platform, and compiled applications migrate forward across Uniface versions.
What 9.3 added was a philosophy of operational simplicity: if the application is a set of compiled, model-derived components, then shipping it should be as simple as shipping one standardized archive. The zip-based UAR — inspectable with ordinary tools, runnable without unpacking — replaced the proprietary archive format used by earlier versions and became the deployment foundation that later releases, including today’s Rocket Uniface 10.4, still document and use.
The Language: ProcScript in the 9.3 Era
Application logic in Uniface 9.3 is written in the platform’s proprietary procedural 4GL, historically called Proc (today ProcScript). Logic attaches to components, entities, and fields through triggers, and is packaged into operations that can be called locally or remotely — including, in the 9.x era, as SOAP web services. A simple operation looks like this:
operation getOrder
variables
string vCustomer
endvariables
clear/e "ORDER"
ORDERID.ORDER = "A-1001"
retrieve/e "ORDER"
if ($status >= 0)
vCustomer = CUSTNAME.ORDER
message "Order found for %%vCustomer"
else
message "Order not found, status %%$status"
endif
end
There is no SQL, no connection string, and no cursor handling in application code: retrieve/e fetches data for the ORDER entity as defined in the application model, and the configured DBMS connector does the physical work. In 9.3 this language surface was stable and mature — the release’s changes to Proc functions and command-line switches served the new deployment machinery rather than reshaping the language itself.
Lifecycle and Succession
Uniface 9.3 had a well-defined commercial lifecycle. According to Uniface’s published support information for legacy versions, standard support for 9.3 ended in November 2012 and extended support ended in June 2013. By then, Uniface 9.4 (2010) had taken the platform into Rich Internet Applications, followed by the JavaScript API in 9.5 (2011), HTML5 controls in 9.6 (2012), and mobile hybrid apps in 9.7 (2015). True to the platform’s compatibility discipline, applications deployed on 9.3 had a supported migration path forward through these releases — and Uniface’s own migration documentation for later versions still addresses customers coming from 9.3.
The platform around it kept changing hands: Marlin Equity Partners carved Uniface out of Compuware in 2014 as the independent Uniface B.V., and Rocket Software acquired the company in February 2021. The product continues today as Rocket Uniface, with the 10.4 line under active development.
Current Relevance
As a specific version, Uniface 9.3 is long out of support and no longer available for new deployments; there is no Docker image, and the software was always a licensed commercial product distributed through platform-specific installers. Its relevance today is archaeological in the best sense:
- Its deployment model survived. The zip-based UAR structure that 9.3 standardized remains the documented deployment mechanism in current Rocket Uniface releases.
- It marks the platform’s SOA moment. The cross-referencing and web services emphasis of 9.2–9.3 captures precisely how early-2000s enterprises were taught to decompose monoliths — a decade before “microservices” made the same argument with new vocabulary.
- It is a rung on a forty-year ladder. Organizations still running Rocket Uniface today almost certainly passed their applications through the 9.3 era, recompiling and redeploying rather than rewriting.
Why Uniface 9.3 Matters
Most language history is written about syntax; Uniface 9.3 is a reminder that for enterprise platforms, logistics is the product. Its lasting contributions — run-in-place zip archives, standardized resource layout, cross-reference tooling for safe refactoring — are the kind of features that never trend on developer forums but determine whether a business system can be patched at midnight in a warehouse with no IT staff. For the code archaeologist, Uniface 9.3 is a well-preserved stratum in one of the industry’s longest continuous platform lineages: the moment a 1984 Dutch 4GL quietly modernized how it ships software, so that the applications built on it could keep outliving the infrastructure beneath them.
Timeline
Notable Uses & Legacy
Distributed enterprise deployments
Compuware positioned Uniface 9.3's standardized UAR deployment specifically at organizations running applications around the clock in remote locations without on-site IT personnel, letting a central team package compiled components, global objects, and descriptors into archives that run without being unpacked.
Service-oriented architecture programs
The 9.x line's SOAP, WSDL, and XML Schema support, combined with 9.3's new cross-reference reporting, was aimed at enterprises decomposing large Uniface applications into reusable services and composite business services.
Windows Mobile field applications
Building on the Windows Mobile support introduced in Uniface 9.2, version 9.3 improved the graphical interface for mobile applications with techniques to maximize data display on small screens and user-definable buttons for field workers.
Long-lived administrative systems
Like every Uniface release, 9.3 was a waypoint for the large administrative systems — point-of-sale, financial, salary, and inventory applications — that organizations in reportedly more than 30 countries carry forward from release to release rather than rewrite.