Uniface (programming language)

Last updated
Uniface
Original author(s) Inside Automation (1984–1986)
Developer(s) Uniface (1986–present)
Stable release
Uniface 10.4.01.018 / May 22, 2022;21 months ago (2022-05-22)
Operating system Windows, Unix-like, Linux, IBM i, OpenVMS
Available inEnglish
Type Integrated Development Environment
License Commercial
Website uniface.com

Uniface is a low-code development and deployment platform for enterprise applications[ citation needed ] that can run in a large range of runtime environments, including mobile, mainframe, web, Service-oriented architecture (SOA), Windows, Java EE, and .NET.[ citation needed ] Uniface is used to create mission-critical applications.[ citation needed ]

Contents

Uniface applications are database and platform independent.[ citation needed ] 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.[ citation needed ] 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 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 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:

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 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 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:

Components for the business logic tier handle business rules and task-specific behavior and have no user interface:

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 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.

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 behavior within business objects, separating logical from the physical data structures. It makes it possible to define default behavior 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 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

Originally called UNIS, the product was created in The Netherlands in 1984 by Inside Automation, a company that was headed by Bodo Douqué, with Frits Kress as Technical Director. By 1986, both the product and the company had changed their name to Uniface. (An early logo for the product included a red capital A which reflected the red capital A in the Inside Automation logo.)

Uniface was developed on the principles of the American National Standards Institute, (ANSI), 3-schema architecture. First proposed in 1975, this was a standard approach to the building of database management systems consisting of 3 schema (or metamodels):

Uniface was developed on the DEC VAX machine, using the native VAX file-management system RMS. A vestige of this is still seen in today's product by its continued use of a “GOLD” key to change modes (DEC VT terminals actually had a gold or a yellow key on the keyboard. Today the “GOLD” is simply mapped to the numeric keyboard + key, or a function key).

Early versions of the product were bundled with the Sybase RDBMS under the name FastBuild, although it was not limited to accessing only that database.

Uniface has continuously evolved to handle new technologies and application architectures. This has been critical to its success because applications built with Uniface can be migrated, updated and modernized without losing the original development investment.

Uniface versions

Uniface Version 3 (1986): Uniface 3 was the first public release. It featured support for multiple databases (RMS, Oracle, C_ISAM, Ingres, and RDB); virtual machine interpretation; the Structure Editor, the Uniface text and command editor.

Uniface Version 4 (1988): Uniface 4 improved the text editor (now form editor), improved printing and display support, introduced support for MS-DOS, and added a CASE tool interface.

Uniface Version 5 (1990): Uniface 5 enabled client/server deployment with the introduction of remote database access through Polyserver. It introduced graphical user interface via the Universal Presentation Interface (UPI). Database support was extended to a total of 13 databases and file systems, and it was now available on DOS, VMS, OS/2, Stratus VOS and UNIX. Japanese character support was also introduced.

Uniface Six (1994): Uniface Six completed the move to fully graphical development environments. It included the graphical form painter and application model editor; improved deployment through Dynamic Object Libraries; added support for Microsoft Object Linking and Embedding (OLE); included support for Apple Macintosh; added permissions control; integrated version control; added Personal Series reporting tools (although these were later removed when the 3rd party decided not to enhance its product); wider platform support.

Uniface Seven (1997): Uniface Seven focused on component integration for both Uniface and external components through the introduction of the Uniface Request Broker (URB) architecture. The URB supports bi-directional and synchronous or asynchronous communication between components. As well as remote data access, it added partitioned Application Servers and messaging. Uniface Seven also delivered the first Uniface web development and deployment tools with Web Application Server and Uniface Request Dispatcher.

Other enhancements included new component types (Services, Server Pages, Reports); Signature Editor and Assembly Workbench; subsystems; operations; non-modal forms; component instances; improved editors and navigation; enhanced editor plug-in; new debugger; integrated online help; component templates; Web Application Server; improved validation; Uniface Name Server and graphical partitioning manager.

Uniface Seven also saw the introduction of several other tools:

Uniface 8 (2001): Uniface 8 brought about major changes in the area of process integration. The Uniface Router and Uniface Server provided scalable, balanced deployment. The Web Request Dispatcher (WRD) replaced the URD, improving performance. Support for web services, with SOAP and XML, was introduced. Connectivity and interoperability were improved and a method for implementing a 3-tier application architecture was introduced. Connectors for SOAP, COM, CORBA and MQSeries were added; window and file management was improved; a new deployment utility was introduced, improving application distribution; component subtypes for 3-tier architecture were added; handles were added for component instances, and automatic garbage collection was added.

Uniface 9 (2006): The Uniface 9 release focused on GUI and usability improvements, thin deployment, and integration. Support for Windows Mobile was added, and configuration and deployment was simplified using zipped archives. Support for Unicode improved what was an already impressive multilingual capability, and improvements in web development and XML handling brought Uniface further into line with industry standards. Dynamic field movement in form components removed some old barriers to flexibility.

Other features included improved color handling, dynamic menus, an XML API, a diagram editor for the Application Model; cross-referencing functionality to support refactoring and deployment, and enhanced web services functionality.

Uniface 9.4 (2010): Despite being a point release, Uniface 9.4 introduced enough major new functionality to be considered a major release. The major focus was on rich internet application (RIA) functionality, making it possible to develop Web 2.0 applications with the rich functionality of client/server applications using the same tools and methodologies used to develop classic client/server applications. Language and locale support was substantially improved, as was support for HTML email, and security and encryption.

Uniface 9.5 (2011): The release of Uniface 9.5 has improved the product's integration with the World Wide Web. The introduction of a JavaScript API, together with other improvements, means that client-side processing can bring benefits in the areas of performance, integration, functionality and user-friendliness. The session management capability has been extended to offer improved security. And the processing of Web Services now fully supports complex datatypes for both SOAP and RESTful services. There have also been improvements for those customers who have business-critical client/server applications, particularly in the area of the grid widget.

Uniface 9.6 (2012): Uniface 9.6, provided a significant overhaul of the Uniface client-server GUI capabilities. Functionality included an HTML5 control leveraging the JavaScript APIs originally delivered for the web, an enhanced tab control and updates to image handling, buttons plus other improvements. The form container control enables 'forms within forms', enabling the development of dynamic user experiences.

In addition to the GUI enhancements, Uniface 9.6 also delivered enhancements to the Uniface Web and Web Services capabilities, including the ability to dynamically change the scope of web transactions, web pagination and hitlist processing and improved WSDL and XML capabilities.

Uniface 9.7 (2015): Uniface 9.7 delivered significant enhancements to the development of Web Applications, including extensions to facilitate the development and deployment of mobile applications based on hybrid application and enhancing the multi-channel development/deployment capability of Uniface. This will be significantly extended with the Uniface 9.7.02 release (May 2016), providing integration to a build service provider to enable hybrid applications to be packaged for distribution via Google Play and the Apple Store.

In addition to the mobile and web enhancements, Uniface 9.7 delivered integration and client-server enhancements (MS Windows 10).

The Uniface Development Environment (UDE) was modernized, with a new look and feel, providing a new look front screen, and a refreshed visual user experience. The approach that Uniface took to modernize their UDE was shared both at developer conferences and on their community website Uniface.info to help advise and promote client-server modernization to their existing customer base.

Uniface 9.7 provides two new database drivers, enabling connectivity to PostgreSQL and SAP Hana.

Uniface 10 (2015): Uniface 10 delivered a rewritten development environment based on the core concepts of Integrated Development Environments (IDE). The initial release positioned as a preview or early adopter release showed a significant change from a proprietary development style to a highly productive implementation of industry-standard development, enabling the development of Web applications.

In May 2015, the first edition of Uniface 10 was released to early adopters to test and develop web applications. The full enterprise edition of Uniface 10 was released in September 2016, delivering mobile and client-server development and a migration path to enable the existing customer base to move their applications to Uniface 10.

Rocket Uniface 10.4 (2021) Uniface 10.4 uses Sentinel License Manager which enables users to better manage their license. It has enhancements of the Rocket Uniface Router Monitor, API for TLS and Repository updates for IDE. It is 64-bit Development Environment, upgraded to Tomcat 9. OpenSSL and CURL Libraries have been updated and OpenSSL executable is now delivered with Uniface on Windows. Als a new SLE 2.0 connector for SQLite was added.

Related Research Articles

<span class="mw-page-title-main">Microsoft Access</span> Database manager part of the Microsoft 365 package

Microsoft Access is a database management system (DBMS) from Microsoft that combines the relational Access Database Engine (ACE) with a graphical user interface and software-development tools. It is a member of the Microsoft 365 suite of applications, included in the Professional and higher editions or sold separately.

VBScript is a deprecated Active Scripting language developed by Microsoft that is modeled on Visual Basic. It allows Microsoft Windows system administrators to generate powerful tools for managing computers without error handling and with subroutines and other advanced programming constructs. It can give the user complete control over many aspects of their computing environment.

Middleware in the context of distributed applications is software that provides services beyond those provided by the operating system to enable the various components of a distributed system to communicate and manage data. Middleware supports and simplifies complex distributed applications. It includes web servers, application servers, messaging and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture.

<span class="mw-page-title-main">HCL Notes</span> Collaborative software platform

HCL Notes is a proprietary collaborative software platform for Unix, Windows, Linux and macOS, sold by HCLTech. The client application is called Notes while the server component is branded HCL Domino.

<span class="mw-page-title-main">WebObjects</span> Java web application server and framework originally developed by NeXT Software

WebObjects is a discontinued Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

<span class="mw-page-title-main">Adobe ColdFusion</span> Rapid Web app development platform

Adobe ColdFusion is a commercial rapid web-application development computing platform created by J. J. Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database. By version 2 (1996) it had become a full platform that included an IDE in addition to a full scripting language.

Web development is the work involved in developing a website for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex web applications, electronic businesses, and social network services. A more comprehensive list of tasks to which Web development commonly refers, may include Web engineering, Web design, Web content development, client liaison, client-side/server-side scripting, Web server and network security configuration, and e-commerce development.

Oracle Forms is a software product for creating screens that interact with an Oracle database. It has an IDE that includes an object navigator, property sheet, and code editor that uses PL/SQL. It was originally developed to run server-side in character-mode terminal sessions. It was ported to other platforms, including Windows, to function in a client–server environment. Later versions were ported to Java where it runs in a Java EE container and can integrate with Java, and web services that can be launched from a URL. Recent versions provide a means to run the forms from a desktop computer without requiring a browser.

A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a JavaScript engine, for rendering of controls and extra scriptability.

PowerBuilder is an integrated development environment owned by SAP since the acquisition of Sybase in 2010. On July 5, 2016, SAP and Appeon entered into an agreement whereby Appeon, an independent company, would be responsible for developing, selling, and supporting PowerBuilder.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. The framework does not impose any specific programming model.. The framework has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is free and open source software.

<span class="mw-page-title-main">JADE (programming language)</span> Software development and deployment platform

JADE is a proprietary object-oriented software development and deployment platform product from the New Zealand-based Jade Software Corporation, first released in 1996. It consists of the JADE programming language, Integrated development environment and debugger, integrated application server and object database management system.

IBM App Connect Enterprise is IBM's premier integration software offering, allowing business information to flow between disparate applications across multiple hardware and software platforms. Rules can be applied to the data flowing through user-authored integrations to route and transform the information. The product can be used as an Enterprise Service Bus supplying a communication channel between applications and services in a service-oriented architecture.

<span class="mw-page-title-main">Adobe LiveCycle</span> Java EE server software

Adobe LiveCycle Enterprise Suite (ES4) is a service-oriented architecture Java EE server software product from Adobe Systems used to build applications that automate a broad range of business processes for enterprises and government agencies. LiveCycle ES4 is an enterprise document and form platform that helps you capture and process information, deliver personalized communications, and protect and track sensitive information. It is used for purposes such as account opening, services, and benefits enrollment, correspondence management, requests for proposal processes, and other manual-based workflows. LiveCycle ES4 incorporates new features with a particular focus on mobile devices. LiveCycle applications also function in both online and offline environments. These capabilities are enabled through the use of Adobe Reader, HTML/PhoneGap, and Flash Player clients to reach desktop computers and mobile devices.

<span class="mw-page-title-main">SharePoint</span> Web application platform

SharePoint is a web-based collaborative platform that integrates natively with Microsoft 365. Launched in 2001, SharePoint is primarily sold as a document management and storage system, although it is also used for sharing information through an intranet, implementing internal applications, and for implementing business processes.

Microsoft SQL Server is a proprietary relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which may run either on the same computer or on another computer across a network. Microsoft markets at least a dozen different editions of Microsoft SQL Server, aimed at different audiences and for workloads ranging from small single-machine applications to large Internet-facing applications with many concurrent users.

IBM WebSphere Service Registry and Repository (WSRR) is a service registry for use in a Service-oriented architecture.

Oracle TopLink is a mapping and persistence framework for Java developers. TopLink is produced by Oracle and is a part of Oracle's OracleAS, WebLogic, and OC4J servers. It is an object-persistence and object-transformation framework. TopLink provides development tools and run-time functionalities that ease the development process and help increase functionality. Persistent object-oriented data is stored in relational databases which helps build high-performance applications. Storing data in either XML or relational databases is made possible by transforming it from object-oriented data.

References