Uniface is a low-code development and deployment platform for enterprise applications that can run in a large range of runtime environments, including mobile, mainframe, web, Service-oriented architecture (SOA), Windows, Java EE, and .NET. Uniface is used to create mission-critical applications. Uniface applications are platform-independent and database-independent. Uniface provides an integration framework that enables Uniface applications to integrate with all major DBMS products such as Oracle, Microsoft SQL Server, MySQL and IBM Db2. In addition, Uniface also supports file systems such as RMS, Sequential files, operating-system text files and a wide range of other technologies, such as IBM mainframe-based products (CICS, IMS), web services, SMTP, POP email, LDAP directories, .NET, ActiveX, Component Object Model (COM), C(++) programs, and Java. Uniface operates under Microsoft Windows, various flavors of Unix, Linux, OpenVMS and IBM i. Uniface can be used in complex systems that maintain enterprise data supporting business processes such as point-of-sale and web-based online shopping, financial transactions, salary administration, and inventory control. It is used by thousands of companies in more than 30 countries, with an effective installed base of millions of end-users. Uniface applications range from client/server to web, and from data entry to workflow, and portals that are accessed locally, via intranets and the Internet. Originally developed in the Netherlands by Inside Automation, later Uniface B.V., the product and company were acquired by Detroit-based Compuware Corp in 1994, and in 2014 was acquired by Marlin Equity Partners and continued as Uniface B.V. global headquartered in Amsterdam. In February 2021, Uniface was acquired by Rocket Software, headquartered in Waltham, Massachusetts, USA.
Uniface products Uniface Development Environment is an integrated collection of tools for modeling, implementing, compiling, debugging, and distributing applications. Uniface applications, including the above, use a common runtime infrastructure, consisting of:
Uniface Runtime Engine—a platform-specific process that interprets and executes compiled application components and libraries. Uniface Router—a multi-threaded process responsible for inter-process communication (IPC) in Uniface applications. It starts and stops Uniface Server processes, performs load balancing, and passes messages between various Uniface processes. Uniface Server—a server-based process that enables Uniface clients to access remote resources or to execute remote components. It acts as an application server, a data server, and a file server. Uniface Repository—an SQL-capable DBMS used to store definitions and properties of development objects, process and organization models, and portal definitions. Web server—Uniface bundles the Apache Tomcat Server for developing and testing web applications, but any web server can be used in a production environment. Servlets—Java servlets that broker communication between a web server and the Uniface Server for Uniface web applications and web services. Database connectors—drivers that handle the connection between Uniface and a variety of databases. Integration tools—drivers, components, and APIs that handle communication between Uniface and third-party applications and technologies, including Java, CICS, IMS, LDAP, SMTP, POP, operating system commands, COM, and more. In addition, Uniface Anywhere (formerly Uniface JTi or Java Thin Client Interface) can deliver client/server Uniface applications to any computer connected to the Internet as a thin client solution. Uniface is a low-code development & deployment platform based on a proprietary procedural scripting (fourth generation) language called Uniface Proc that is used to code application behavior. Uniface automates most input/output operations through its kernel and default code, so much fundamental behavior does not need to be coded.
Uniface applications Uniface applications are component-based, infrastructure-independent software programs that can create or use data stored in one or more databases or file systems. They can be composite applications that include non-Uniface components created using other development tools, and they can be deployed in distributed client/server and web environments, as mobile applications or web services, and in mainframe environments. Uniface has various component types intended for use in different layers of multi-tier application architecture. Components for the presentation tier are responsible for the user interface and include:
Forms—interactive screens for displaying and updating data in a client/server environment. Server Pages—interactive pages for displaying and updating data in a web environment. Reports—layouts for presenting data in a printed output. Components for the business logic tier handle business rules and task-specific behavior and have no user interface:
Services—provide processing and business logic functionality when called by other components, either locally or remotely. Session Services—centralize complex business rules affecting multiple data entities, such as task-specific behavior, transactions, and referential integrity. Entity Services—centralize simple business rules for single data entities. The data access tier contains physical database structures captured in the Uniface application model. Uniface ensures physical data access by encapsulating SQL in its DBMS connectors. Network and middleware access are encapsulated by the middleware drivers and the Uniface Router. The runtime engine executes the application components. It displays presentation components using the appropriate user interface connector (either GUI or character-based) and sends and receives data via a DBMS connector.
Application development Uniface applications are developed with the Uniface Development Environment. Originally, it was possible to develop on Apple and DEC platforms; now, Windows is the supported platform for development. Uniface applications development is model-driven and component-based. The data structure, business rules, and default behavior of the application are captured in the Application Model. Model definitions can be reused and inherited by components, which can override inherited definitions and provide component-specific behavior and characteristics. Templates improve productivity and enforce consistency when defining models.
… excerpt ends here. Continue reading the full article.


