Jump to content

Uniface (programming language)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Erik Hoeboer (talk | contribs) at 12:44, 17 November 2020 (Changed Uiface Products to Product). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Uniface
Original author(s)Inside Automation (1984-1986)
Developer(s)Uniface (1986–present)
Stable release
Uniface 10.3.02 / February 8, 2019; 6 years ago (2019-02-08)
Operating systemWindows, Unix-like, Linux, CentOS, IBM iSeries
Available inEnglish
TypeIntegrated Development Environment
LicenseCommercial
Websiteuniface.com

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 a model-driven, Rapid Application Development (RAD) environment used to create mission-critical applications.

Uniface applications are database- and platform-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 (HP OpenVMS), Sequential files, operating system text files and a wide range of other technologies, such as mainframe-based products (CICS, IMS), web services, SMTP and POP email, LDAP directories, .NET, ActiveX, Component Object Model (COM), C(++) programs, and Java. Uniface operates under Microsoft Windows, Windows Mobile, various flavors of Unix and Linux, VMS, IBM iSeries, and z/OS.

Uniface can be used in complex systems that maintain critical enterprise data supporting mission-critical business processes such as point-of sale and web-based online shopping, financial transactions, salary administration, and inventory control. It is currently 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, as well as 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 is now an independent company. Uniface B.V. global headquarters are in Amsterdam.

Product

Uniface is a low-code application platform based on model-driven software development. Uniface gives you the freedom to choose - platform, database, integrated systems, 3rd party utilities - to deliver the right application, whether it be desktop, web, mobile or API.

Uniface applications are composed of loosely coupled components, each with a clear application-defined API. Components are self-contained and located via configuration rather than code and allow for unparalleled deployment flexibility, making them ideal for scalable solutions, especially microservice and cloud offerings.

With an inbuilt language and NLS systems, building global applications is made easy. Centrally define your business rules, inherited by the components, protect your data's integrity whilst the Uniface runtime protects from intrusion and other attack vectors.

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 a variety of component types that are 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 behaviour 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 behaviour, 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 on 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 behaviour 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 behaviour and characteristics. Templates improve productivity and enforce consistency when defining models.

Application Model

The application model defines entities (tables), fields, keys (indexes) and relationships together with referential integrity. Each entity and field in the model has properties and a set of triggers. Business rules are added to the model declaratively by setting properties and procedurally by adding Proc code (Uniface's procedural language) in triggers.

Triggers are containers for code. Some triggers represent user or system events, for example, Occurrence Gets Focus, Read or Leave Field. Others cover matters such as validation or act as place holders for methods associated with the particular object.

The use of model-level triggers enables Uniface to collect properties and behaviour within business objects, separating logical from the physical data structures. It makes it possible to define default behaviour once, for reuse throughout the application, speeding development and facilitating the 3-tier application architecture.

Each entity (table) is first defined in the Application Model from where it can be exported to the physical database in the form of CREATE TABLE scripts.

Components

Objects described in the application model are reused by components. Developers embed objects from the model on the component by drawing them on the layout canvas (for presentation components), or inserting them into a tree view of the component structure. They can also add component-level objects that are not in the application model, such as control fields, menus, and component variables.

The properties and triggers defined in the application model are inherited by being copied into the component. The definitions can be changed at the component level to provide specific functionality. This breaks the link between the application model and the component (although it is possible to restore the link to the model). If the model code or properties are changed at the model level, all components holding that object need only be recompiled to collect the new definitions. This provides benefits in maintenance and ensures that the rules associated with the object are available wherever it is used.

Uniface Repository

Uniface maintains a database of its own metadata for the purposes of reuse—application models, component definitions, component layouts, procedural code, and so on. The repository is proprietary and intended for access via the Uniface Development Environment, to ensure repository integrity. However, the repository structure is documented, making it possible (though not recommended) to interface directly with it for, for example, reporting.

By using a centralized repository, application development can be shared over teams of software developers. Uniface can integrate with any version control system (VCS) that supports the Microsoft Common Source Code Control Interface Specification. The VCS functionality available within Uniface depends on the VCS used, because software vendors have interpreted and implemented the MS CSCC API differently.

Application Deployment

Uniface applications can be deployed on platforms from mainframe through mobile, without changing the code. The components (and other objects such as startup shells, menus, toolbars (panels), glyphs, global and included Proc entries) are compiled into runtime objects that can be packaged into zip files and deployed onto any platform. The runtime objects are executed using a virtual machine and a platform-specific interpreter. (Java later followed Uniface in this respect). Components can be compiled on one machine and executed on another, providing the Uniface Virtual Machine is present.

The Uniface Router and Uniface Server make Uniface scalable, balanceable and make is possible to run processes asynchronously.

Database Connectivity

Uniface accesses the many databases and file systems it supports by means of database connectors (or drivers). DBMS connectors map and convert Uniface data types to the most suitable format of the particular storage medium. At runtime, it is possible to pass parameters to invoke (or disable) database-specific extensions. Provided the database connector is licensed, it is possible to convert between different data sources. Uniface also provides an API, the Database Connector Interface, which can be used to create proprietary connectors for any SQL-based database.

Licensing

Licensing is managed through the Compuware Distributed License Manager (DLM), a server based system of distributing licenses to clients on request, precluding the need for them to be held locally.

History of Uniface

The low code software platform Uniface was called UNIS originally and was developed in the Netherlands in 1984 by Inside Automation. In 1986 the product was launched to the public as Uniface 3, and the company name was changed to Uniface B.V.

In 1994, the company was bought by Compuware Corporation. That same year Uniface Six, the first version that used a GUI, was launched. In 2014 Uniface B.V. was acquired by Martin Equity Partners, and parted from Compuware.

The most recent version of the platform is Uniface 10 which was released in 2018 and has a new integrated development environment which allows development and deployment of omnichannel applications in the Cloud, on Windows, Web and Mobile platforms. Uniface 10 introduces the Uniface IDE, a new development environment with the ability to edit multiple objects at the same time.

Uniface Community Edition (2020) The free Uniface Community Edition and e-learning facility enable new and experienced developers to explore, learn, and use Uniface 10 to build and test applications.

References

  • Official website Edit this at Wikidata
  • Nextcom Czech company developing in Uniface
  • www.udev.info building better web applications with Uniface (Tutorials und HowTo's)
  • The Uniface Community The Uniface Community web site
  • T.U.R.F. An independent Uniface Related Forum
  • march-hare.com UD6: Store Uniface Repository in Text Files and use Uniface with Git
  • TCCO.NL Designer Developer Uniface-FAST templates - speeds up your Uniface development process.
  • Cortis Lentini Italian company developing in Uniface
  • Fullcom systems Czech company developing in Uniface
  • theu.info Forum for Professional Uniface developers, highlighting the best practice for Uniface development
  • Software Imaging Limited A UK based software company, providing Uniface consultancy services to a number of customers around the globe