Uniface

from Wikipedia, the free encyclopedia

Uniface is a platform for developing and operating enterprise-wide applications that can run on a variety of runtime environments, including mobile devices, mainframes, web, service-oriented architecture (SOA), Windows , Java EE and .NET .

Uniface applications are database and platform independent. For this Uniface provides an integration framework that enables Uniface applications with all well-known DBMS products and a large number 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 and C ++ programs, and Java integration. Uniface works under Microsoft Windows , Windows Mobile , various Unix and Linux systems , IBM iSeries / AS400, z / OS and VMS .

Uniface can be used in complex systems that manage critical company data and support vital business processes such as web-based online shopping, financial transactions, payroll accounting or warehouse management. It is currently used by thousands of companies in more than 30 countries with an effective installed base of several million users. Uniface applications range from client / server to the web, from data acquisition to workflow and portals that are used locally, via intranet or internet.

Originally developed in the Netherlands by Inside Automation, later Uniface BV, the product and company were taken over in 1994 by the Detroit-based Compuware Corporation. However, Uniface continued to be developed in Amsterdam .

At the beginning of 2014 the Uniface division was sold to Marlin Equity Partners and has since been further developed and sold by Uniface BV and independently of Compuware Corporation.

Uniface products

The Uniface platform offers a selection of tools for the development, implementation, delivery and operation of Uniface applications, most of which are combined in the Uniface Application Platform Suite (APS). This APS includes:

  • Uniface development environment - an integrated suite of tools for modeling, implementing, compiling, debugging and delivering applications
  • Uniface Flow - an environment for the development, implementation and operation of business processes
  • Uniface View - an application integration portal that provides a structured desktop of web documents, database reports , business applications , and other company-wide information sources

Uniface applications (including the development environment, Uniface Flow and Uniface View) use a uniform runtime infrastructure that consists of the following parts:

  • Uniface runtime environment - a platform specific process that executes compiled application components and libraries
  • Uniface Router - a multi-threaded process that is responsible for the inter-process communication of Uniface applications, starts and ends Uniface server processes, controls load balancing and forwards messages between different Uniface processes
  • Uniface Server - a server-based process that enables Uniface clients to execute components on other computers via a network or to access resources located on other computers. It acts as an application, data or file server.
  • Uniface Development Repository - all definitions and properties of development objects, processes, organizational models, portals, etc. established during development are managed by Uniface using its own database tables. Any SQL database for which a connector exists can be used for these tables .
  • Web Application Server - The Uniface Web Application Server, in cooperation with a Web Server (HTTP Server) and a Servlet Engine, represents the runtime environment for Uniface Web Applications. It consists of the Uniface Server, Uniface Router and the Web Request Dispatcher Servlet.
  • Servlets - Java servlets that provide communication between a web server and the Uniface server for web applications (Web Request Dispatcher) and web services (SOAP Request Dispatcher)
  • Web server - the Uniface Development Suite is supplied with a pre-installed Apache Tomcat (HTTP server and servlet engine) to facilitate the development and testing of web applications. Any web server can be used for productive use
  • Database Connectors - Drivers that connect Uniface to a wide variety of databases
  • Integration tools - drivers, components and APIs that handle communication between Uniface on the one hand and third-party applications and technologies on the other, such as Java, CICS, IMS, LDAP, SMTP, POP, operating system commands, COM and others

Furthermore, a Uniface client-server application can be run on practically any computer connected to the Internet using Uniface JTi (Java Thin Client Interface) .

Uniface uses its own procedural language called Proc to develop application logic. In addition, Uniface automates most of the input / output operations through its kernel and predefined code, so that basic basic logic does not have to be coded manually.

Uniface applications

Uniface applications are component-based, infrastructure-independent computer programs that can create or use data in one or more databases or file systems. These can be composite applications that also include non-Uniface components that were created with other development tools. They can also run in distributed client-server or web environments, as mobile applications, web services and also in mainframe environments.

Uniface has a number of component types that are intended for use at different levels of a multi-tier application architecture.

Components for the presentation layer are responsible for the user interface and include:

  • Forms - interactive screens for displaying and collecting data in a client / server environment
  • Server Pages - interactive pages for displaying and collecting data in a web environment
  • Reports - layouts for presenting data in a printout.

Components for the business logic level execute business rules and task-specific runtime behavior, but have no user interface:

  • Services - provide functionality for processing business logic and can be called either locally or not locally by other components
  • Session Services - process central, complex business logic mostly across multiple data entities, such as task-specific runtime behavior, transactions and referential integrity
  • Entity Services - process central simple business rules for individual data entities

The data access level contains the physical database structure that is mapped in the Uniface application model. Uniface ensures physical data access by encapsulating SQL in its database connectors. Network and middleware access are in turn encapsulated in middleware connectors and in the Uniface router.

The Uniface runtime environment executes the application components. With the help of the appropriate interface connectors (either for graphical or character-oriented interfaces), it displays presentation components, and sends and receives data using database connectors.

application development

The Uniface development environment is model-driven and component-based. Data structures, business rules and standard behavior of the application are mapped in the application model. Model definitions can be reused and inherited by components, but they can also be modified and thus overridden, which in turn leads to component-specific behaviors and characteristics. The use of templates increases productivity and consistency in model definition.

Application model

The application model defines entities (tables), fields, keys (indexes) and relationships as well as referential integrity. Every entity and every field in this model has properties and a set of triggers. Business rules are defined in the model on the one hand declaratively by setting properties, on the other hand procedurally by entering Proc Code (procedural language from Uniface) in triggers.

Triggers are containers for code. Some triggers represent user or system events, for example Occurrence Gets Focus, Read or Leave Field. Others are used for validation or as placeholders for methods associated with this object.

The use of triggers at the model level allows Uniface to collect properties and logic within business objects, separating the logical from the physical data structures. It also makes it possible to define standard behavior only once, but to be able to reuse it in the entire application, thus simplifying a 3-tier application architecture and accelerating development overall.

Components

Objects described in the application model are reused in components. Developers use model objects by placing them in graphic form in a layout tableau for presentation components, or by inserting them into their tree structure for other components. At the component level, however, you can also use objects that are not defined in the application model, such as control fields, menus and component variables.

Properties and triggers defined in the application model are inherited by the components by copying them there. These definitions can be modified at the component level to achieve specific functionality. Such a change ends the link between these definitions and the application model (it is, however, possible to restore this link). When the code or properties of an object are changed at the model level, the components that contain that object only need to be compiled for the new definitions to take effect there. This provides maintenance benefits and ensures that business rules associated with an object are available wherever that object is used.

Uniface repository

Uniface manages a database with its own metadata for the purpose of reusing application models, component definitions, component layouts, procedural code, etc. To ensure its integrity, this Uniface own repository is only intended for access from the Uniface development environment. However, the structure of the repository is documented, which would also make it possible (although not recommended) to address it directly, for example for evaluations.

By using a central repository, application creation can be split between teams of software developers. Uniface can also be integrated with any Source Code Management System (SCM) that supports the Microsoft Common Source Code Control Interface specification. The SCM functionality available within Uniface depends on the SCM system actually used, because software manufacturers interpret the MS CSCC API differently. As a result, supported functionality and behavior may differ depending on the SCM system.

Delivery and operation of applications

Uniface applications can run on platforms from mainframe to mobile without having to change the code. The components (and other objects such as startup shells, menus, toolbars, panels, glyphs, global and included procs) are compiled into runtime objects, which can be packed into zip files and delivered to any platform. The runtime objects are executed by a virtual machine and a platform-specific interpreter (Java and other languages ​​only followed this concept later). Components can be compiled on one machine and executed on another as long as the Uniface virtual machine is there.

Database connectivity

Uniface can access as many databases and file systems as it supports them through database connectors (or drivers). Database connectors convert the Uniface data types of the application model to the most suitable format of the respective persistence provider. At runtime, it is also possible to set parameters to activate (or deactivate) provider-specific extensions and properties. Provided that the database connectors concerned are licensed, it is also possible to convert between different data sources. Uniface also offers an API, the Database Connector API, which you can use to create your own database connectors.

Licensing

Licensing is handled by the Compuware Distributed License Manager (DLM). DLM is a server-based system that issues licenses to clients on request and therefore does not require the licenses to be stored locally.

History of Uniface

Originally called UNIS, the product was created in 1984 in the Netherlands by Inside Automation, a company headed by Bodo Douque and Frits Kress as technical director. In 1986 both the name of the product and the company were changed to Uniface.

Uniface was developed according to the principles of the 3-scheme architecture of the American National Standards Institute ( ANSI ). This architecture was first introduced in 1975 and was the standard procedure for the creation of database management systems consisting of 3 schemes (or meta models):

  • conceptual schema - definition of all data structures and the relationships between them. There is only one conceptual schema per database. Uniface implements the conceptual schema as an application model (also known as the Business Object Model or Application Object Model in different Uniface versions).
  • external schema - various external views of the data. There can be many external schemas per database.

Uniface implements external schemes as components. As Uniface evolved, the external schema became Forms. Hidden forms that ran in the background without becoming visible became services. Services are divided into session services for objects of the business logic layer and entity services, which are either located in the same or in the data layer. Forms that provided print results instead of being displayed became report components. The server page (USP) and later the dynamic server page (DSP) were introduced for web applications in order to be able to support Web 2.0 functionality.

  • internal schema - definition of the physical representation of the stored data. Uniface leaves the internal schema to the many relational and sometimes non-relational database systems with which it can be connected and which also makes it database-independent.

Uniface was initially developed on DEC - VAX machines and used VAX's own file management system RMS. A reminder of this is still contained in today's product in the form of the "GOLD" button, which is used to switch between function modes. DEC VT terminals actually had a gold or yellow key on the keyboard. Today the "GOLD" function is on the + key of the numeric keypad or on a function key.

Early versions of the product were bundled with the Sybase RDBMS under the name FastBuild, and were not limited to this database.

Uniface has been continuously developed to support new technologies and application architectures. This has always been critical to its success because Uniface applications can be migrated, changed and modernized without losing the initial investment.

Uniface versions

Uniface Version 3 (1986) Uniface 3 was the first published version. It offered support for several databases (RMS, Oracle , C-ISAM, Ingres and RDB), a virtual machine for code interpretation and the Uniface text and command editor.

Uniface Version 4 (1988) Uniface 4 improved the Text Editor (now Form Editor), display and print functionality, introduced support for MS-DOS and offered a new CASE tool interface.

Uniface Version 5 (1990) Uniface 5 enabled client-server applications with remote database access via Polyserver, and it introduced a graphical user interface using the Universal Presentation Interface (UPI). Database support was expanded to a total of 13 databases and file systems, and Uniface was now available on the DOS, Windows, VMS, OS / 2, Stratus VOS and Unix platforms.

Uniface Six (1994) Uniface Six completed support for fully graphical development environments. It included the graphical Form Painter and Application Model Editor, facilitated application delivery and operation through Dynamic Object Libraries, added support for Microsoft Object Linking and Embedding ( OLE ), provided support for Apple Macintosh, managed authorization systems, integrated version control and the Personal Series Reporting tool (which was later removed after the third-party vendor decided not to develop the product any more), and platform support also broadened.

Uniface Seven (1997) Uniface Seven focused on the integration of components, both Uniface's own and external, using the new Uniface Request Broker (URB) architecture. The URB supported bidirectional, both synchronous and asynchronous communication between components. Similar to remote database access, distributed application servers and messaging have now been introduced. Uniface Seven also supplied the first web development environment and, with the Web Application Server and Uniface Request Dispatcher, also tools for operating web applications.

Other improvements included new component types (services, server pages, reports), signature editor and assembly workbench, subsystems, operations, non-modal forms, component instances, improved editors and navigation, improved editor plug-in, new debugger, integrated online Help, component templates, improved validation, Uniface Name Server and graphical partitioning manager. Uniface Seven also saw the introduction of the following additional tools:

  • A tool for modeling, integrating and managing business processes. This functionality resulted in Optimal Flow in Uniface 8 and later in Uniface 9 then Uniface Flow.
  • An application integration portal, initially called Optimal View and later called Uniface View.
  • Uniface JTI, a server-based, thin-client solution for the operation of applications made available on the web via the Internet or intranet , which brought high performance even over network connections with low bandwidth.

Uniface 8 (2001) Uniface 8 brought major changes in the area of ​​process integration. Uniface router and Uniface server ensured scalable, load-balanced application operation. The Web Request Dispatcher (WRD) replaced the URD and improved performance. Support for web services with SOAP and XML was introduced. Connectivity and interoperability were improved and a method for implementing a 3-tier architecture was presented. New connectors for SOAP, COM, CORBA and MQSeries were offered, window and file management improved and a new delivery tool introduced for better application distribution. Also new were component subtypes for the 3-layer architecture, handles for component instances and automatic garbage collection.

Uniface 9 (2006) The Uniface 9 version focused on improvements to the graphical user interface and handling, as well as thin deployment and integration. Support for Windows Mobile was also new, and configuration, delivery and operation were made easier through the use of zip archives. The support for Unicode improved the already impressive possibilities for multilingual applications. Improvements for web development and XML handling made Uniface even more compatible with existing industry standards. Further improved features were color handling, dynamic menus, an XML API, a diagram editor for the application model and extended web service functionality.

Uniface 9.4 (2010) Despite the fact that it was only a point version, Uniface 9.4 brought enough new functionality to be considered the main version. The focus was on functionality for Rich Internet Applications ( RIA ), with the help of which Web 2.0 applications can be developed with the user-friendliness of client-server applications, whereby the developer uses the usual tools and methodology that he would also use from the creation of classic clients -Server applications. Language and country-specific settings have also been significantly improved, as has support for HTML e-mail, security aspects and data encryption.

Uniface 9.5 (2011) With Uniface 9.5, the integration of the product with the World Wide Web has been improved. The introduction of a JavaScript API and some other improvements created options for client-side processing that have a positive effect on performance, integration, functionality and usability. Session management enhancements provide improved security for web applications. And for the processing of web services (both SOAP and RESTful), full support for complex data types is now also provided. In addition, improvements for customers with mission-critical client / server applications, especially in the area of ​​the grid widget, were implemented.

Uniface 9.6 (2012): Uniface 9.6 has fundamentally revised the GUI functions of the Uniface client server. Functionality included an HTML5 control that took advantage of the JavaScript APIs originally provided for the web, improved tab controls, and updates for image manipulation, buttons, and other enhancements. The form container control enables "forms in forms" which enables the development of dynamic user experiences. In addition to the GUI improvements, Uniface 9.6 has also delivered improvements to the functionality of Uniface Web and Web Services, including the ability to dynamically change the scope of web transactions, web pagination and hit list processing as well as improved WSDL and XML functions.

Uniface 9.7 (2015): Uniface 9.7 delivered significant improvements to web application development, including enhancements that facilitate the development and deployment of mobile applications based on hybrid applications and improve Uniface's multichannel development / deployment capabilities. This will be expanded significantly with the release of Uniface 7/9/02 (May 2016) and offers integration with a build service provider so that hybrid applications can be packaged for distribution via Google Play and the Apple Store. In addition to the improvements for mobile devices and the web, Uniface 9.7 offers integration and client server extensions (MS Windows 10).

The Uniface Development Environment (UDE) has been modernized, with a new look and feel, a new front screen and an improved visual user experience. Uniface's approach to modernizing their UDE has been shared at both developer conferences and the Uniface.info community website to advise and promote client-server modernization for their existing customers. Uniface 9.7 offers two new database drivers that enable the connection 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 first version, 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 that enables web application development. In May 2015, the first edition of Uniface 10 was released for early adopters to test and develop web applications. The full Enterprise Edition of Uniface 10 was released in September 2016 and offers mobile and client-server development as well as a migration path to enable the existing customer base to move their applications to Uniface 10.

literature

  • Jeffrey S. Mann: Understanding Uniface: The Client / Server Development Environment. , International Thomson Computer Press, Boston 1997, ISBN 1-85032-284-8 .

Web links