Uniface (programming language)
From Wikipedia, the free encyclopedia
Uniface is a 4GL RDBMS Rapid Application Development (RAD) environment owned and maintained now by Compuware but originally developed in Amsterdam by Unidata who later changed their name to UnifAce. Originally developed in the C (programming language) on the VMS platform with an Oracle database; this is still apparent in the special keys and defaults used.
With Uniface, one can develop applications with a Service-oriented architecture (SOA - also known as 'Component Based Development')) in a Model-driven architecture (MDA) way. Uniface has been around since the late 1980s and has supported GUI development since the mid 90's (Version 6).
It stores database model information and code into a repository (originally called a conceptual schema), with which one can create forms, reports, services, session services and entity services. Each component written gets its metadata from the repository (including keys, relations, table layout, field layout, etc.). By drawing entities within entities on a component, Uniface automatically takes care of foreign key transport and retrieval of 1 to many relations. This way, a so-called 'fast form' can be written in minutes.
Using templates for components and fields, one can write new programs rapidly by inheriting the code from the model and/or templates. Changes in the model and to the templates are automatically transported to the components that use them.
The database abstraction layer in Uniface makes the database transparent to the developer. Field types in Uniface are automatically mapped to the right ones in the Database. There are drivers to interface to most of the main Relational Database (Oracle, Sybase, Informix, MS-SQL) and it is possible to develop a proprietary driver for any SQL based database.
The representation layer is designed to be platform independent, which means that one can develop on a main platform and execute on many other platforms (originally it was possible to develop on Apple and DEC platforms; now, only Windows is supported).
The Universal Request Broker of Uniface is capable of dealing with many current protocols, including CORBA, Tuxedo, and call-in and -out for many languages and protocols (ActiveX, .NET, C(++), Java, COBOL, RPG, Component Object Model (COM), etc. Reuse of legacy code is one of the strong points of Uniface.
The Uniface Web Request Dispatcher (WRD) allows requests to Uniface Server Pages and Web Services from a client (service requester) to the Uniface Application Server as a service provider.
The URouter/UServer principal of Uniface makes it scalable, balanceable and gives one the ability to run processes asynchronically. UServer is a server with 3 modes:
Uniface is highly configurable and can seamlessly adapt to many platforms. Runtime versions are available for Microsoft Windows, Unix, Linux, VMS, MVS, AS/400, etc.