Uniface ist eine Plattform für die Entwicklung und den Betrieb von unternehmensweiten Anwendungen, die auf einer Vielzahl von Laufzeitumgebungen ausgeführt werden können, einschließlich mobilen Geräten, Mainframes, Web, Service-orientierte Architektur (SOA), Windows, Java EE und .Net-Framework.

Uniface Anwendungen sind datenbank- und plattformunabhängig. Dafür stellt Uniface ein Integrationsframework bereit, das es Uniface-Anwendungen ermöglicht, mit allen namhaften DBMS-Produkten und einer großen Zahl weiterer Technologien wie mainframebasierten Produkten (CICS, IMS), Web Services, SMTP und POP Email, LDAP Verzeichnissen, .Net-Framework, ActiveX, Component Object Model (COM), C und C++ Programmen sowie Java zu integrieren. Uniface arbeitet unter Microsoft Windows, Windows Mobile, verschiedenen Unix- und Linuxsystemen, IBM iSeries/AS400, z/OS und VMS.

Uniface kann in komplexen Systemen verwendet werden, die unternehmenskritische Daten verwalten und vitale Geschäftsprozesse unterstützen wie etwa webbasiertes Onlineshopping, Finanztransaktionen, Gehaltsabrechnung oder Lagersteuerung. Zurzeit wird es von tausenden Firmen in mehr als 30 Ländern mit einer effektiv installierten Basis von einigen Millionen Benutzern verwendet. Uniface Anwendungen reichen von Client/Server bis Web, von Datenerfassung bis hin zu Workflow und Portalen, die lokal, über Intra- oder Internet eingesetzt werden.

Ursprünglich in den Niederlanden von Inside Automation, später Uniface B.V. entwickelt, wurden Produkt und Firma 1994 von der in Detroit angesiedelten Compuware Corporation übernommen. Uniface wurde jedoch weiterhin in Amsterdam entwickelt.

Anfang 2014 wurde der Uniface Geschäftsbereich an Marlin Equity Partners verkauft und wird seitdem wieder von Uniface B.V. und unabhängig von der Compuware Corporation weiterentwickelt und vertrieben.

Februar 2021 wurde Uniface von Rocket Software gekauft.

Uniface-Produkte Die Uniface-Plattform bietet eine Auswahl von Werkzeugen für Entwicklung, Implementierung, Auslieferung und Betrieb von Uniface Anwendungen, von denen die meisten in der Uniface Application Platform Suite (APS) zusammengefasst sind. Diese APS beinhaltet: Uniface-Entwicklungsumgebung – eine integrierte Suite mit Werkzeugen für Modellierung, Implementierung, Kompilieren, Debugging und Auslieferung von Anwendungen Uniface Flow – eine Umgebung für Entwicklung, Implementierung und Betrieb von Geschäftsprozessen Uniface View – ein Anwendungsintegrationsportal, das einen strukturierten Desktop von Webdokumenten, Datenbankreports, Geschäftsanwendungen und anderen unternehmensweiten Informationsquellen bietet

Uniface Anwendungen (inklusive Entwicklungsumgebung, Uniface Flow und Uniface View) verwenden eine einheitliche Laufzeitinfrastruktur, die aus folgenden Teilen besteht: Uniface-Laufzeitumgebung – ein plattformspezifischer Prozess, der kompilierte Anwendungskomponenten und -bibliotheken ausführt Uniface Router – ein multi-threaded Prozess, der für die Inter-Prozess-Kommunikation von Uniface-Anwendungen verantwortlich ist, Uniface Server-Prozesse startet und beendet, Lastverteilung steuert und Nachrichten zwischen verschiedenen Uniface Prozessen weiterleitet Uniface Server – ein serverbasierter Prozess, der es Uniface Clients ermöglicht, über ein Netzwerk Komponenten auf anderen Rechnern auszuführen, oder auf, auf anderen Rechnern liegende Ressourcen zuzugreifen. Er agiert dabei als Anwendungs-, Daten- oder Fileserver. Uniface Development Repository – alle während der Entwicklung festgelegten Definitionen und Eigenschaften von Entwicklungsobjekten, Prozessen, Organisationsmodellen, Portalen etc. werden von Uniface mittels eigener Datenbanktabellen verwaltet. Für diese Tabellen kann jede SQL-Datenbank, für die ein Konnektor existiert, verwendet werden. Web Application Server – Der Uniface Web Application Server stellt im Zusammenwirken mit einem Web Server (HTTP Server) und einer Servlet Engine die Laufzeitumgebung für Uniface Web Anwendungen dar. Er besteht aus Uniface Server, Uniface Router und dem Web Request Dispatcher-Servlet. Servlets – Java Servlets, die die Kommunikation zwischen einem Webserver und dem Uniface Server für Webanwendungen (Web Request Dispatcher) und Webservices (SOAP Request Dispatcher) bereitstellen Webserver – die Uniface Development Suite wird mit einem vorinstallierten Apache Tomcat (HTTP Server und Servlet Engine) ausgeliefert, um Entwicklung und Test von Webanwendungen zu erleichtern. Für den produktiven Einsatz kann aber ein beliebiger Webserver verwendet werden Datenbankkonnektoren – Treiber, die die Verbindung zwischen Uniface und einer Vielzahl von Datenbanken herstellen Integrationswerkzeuge – Treiber, Komponenten und APIs, die die Kommunikation zwischen Uniface einerseits und Anwendungen und Technologien von Drittanbietern andererseits wie etwa Java, CICS, IMS, LDAP, SMTP, POP, Betriebssystemkommandos, COM und andere handhaben

Des Weiteren kann eine Uniface-Client-Server-Anwendung mittels Uniface JTi (Java Thin Client Interface) auf praktisch jedem, mit dem Internet verbundenen Computer ausgeführt werden.

Uniface verwendet eine eigene prozedurale Sprache, genannt Proc, um Anwendungslogik zu entwickeln. Außerdem automatisiert Uniface die meisten Ein-/Ausgabeoperationen durch seinen Kernel und vordefinierten Code, sodass grundlegende Basislogik nicht manuell codiert werden muss.

Uniface-Anwendungen Uniface Anwendungen sind komponentenbasierte, infrastrukturunabhängige Computerprogramme, die Daten in einer oder mehreren Datenbanken oder Dateisystemen erzeugen oder verwenden können. Das können zusammengesetzte Anwendungen sein, die auch Nicht-Uniface-Komponenten umfassen, die mit anderen Entwicklungswerkzeugen erstellt wurden. Sie können auch in verteilten Client-Server- oder Webumgebungen, als mobile Anwendungen, Webservices und auch in Mainframeumgebungen laufen.

Uniface verfügt über eine Reihe von Komponententypen, die zur Verwendung in unterschiedlichen Ebenen einer mehrschichtigen Anwendungsarchitektur bestimmt sind.

Komponenten für die Präsentationsschicht sind verantwortlich für die Benutzeroberfläche und beinhalten: Forms – interaktive Bildschirme für Anzeige und Erfassung von Daten in einer Client / Server Umgebung Server Pages – interaktive Seiten zur Anzeige und Erfassung von Daten in einer Webumgebung Reports – Layouts zur Präsentation von Daten in einer Druckausgabe.

Komponenten für die Ebene der Geschäftslogik führen Geschäftsregeln und aufgabenspezifisches Laufzeitverhalten aus, haben aber keine Benutzeroberfläche: Services – bieten Funktionalität für die Verarbeitung von Geschäftslogik und können von anderen Komponenten dafür entweder lokal oder auch nicht lokal aufgerufen werden Session Services – verarbeiten zentrale, komplexe Geschäftslogik meist über mehrere Datenentitäten hinweg wie etwa aufgabenspezifisches Laufzeitverhalten, Transaktionen und referenzielle Integrität Entity Services – verarbeiten zentrale einfache Geschäftsregeln für einzelne Datenentitäten

Die Datenzugriffsebene beinhaltet die physische Datenbankstruktur, die im Uniface Anwendungsmodell abgebildet ist. Uniface stellt den physischen Datenzugriff sicher, indem es SQL in seinen Datenbankkonnektoren kapselt. Netzwerk- und Middlewarezugriffe sind wiederum in Middleware-Konnektoren und im Uniface-Router gekapselt.

Die Uniface Laufzeitumgebung führt die Anwendungskomponenten aus. Mit Hilfe der jeweils geeigneten Oberflächenkonnektoren (entweder für grafische oder zeichenorientierte Oberflächen) zeigt sie Präsentationskomponenten an, sendet und empfängt Daten mittels Datenbankkonnektoren.

Anwendungsentwicklung Die Uniface-Entwicklungsumgebung arbeitet modellgetrieben und komponentenbasiert. Datenstrukturen, Geschäftsregeln und Standardverhalten der Anwendung werden im Anwendungsmodell abgebildet. Modelldefinitionen können von Komponenten wiederverwendet und geerbt werden, von diesen aber auch abgeändert und somit übersteuert werden, was wiederum zu komponentenspezifischen Verhaltensweisen und Charakteristika führt. Die Verwendung von Templates erhöht Produktivität und Konsistenz bei der Modelldefinition.

Anwendungsmodell Das Anwendungsmodell definiert Entitäten (Tabellen), Felder, Schlüssel (Indizes) und Beziehungen sowie referenzielle Integrität. Jede Entität und jedes Feld in diesem Model besitzt Eigenschaften und ein Set von Triggern. Geschäftsregeln werden im Modell einerseits deklarativ durch Setzen von Eigenschaften, andererseits prozedural durch Eintragen von Proc Code (prozedurale Sprache von Uniface) in Triggern definiert.

Trigger sind Container für Code. Einige Trigger repräsentieren Benutzer- oder Systemereignisse, beispielsweise Occurrence Gets Focus, Read oder Leave Field. Andere dienen der Validierung oder als Platzhalter für Methoden, die mit diesem Objekt verbunden sind.

Die Verwendung von Triggern auf Modellebene erlaubt es Uniface, Eigenschaften und Logik innerhalb von Geschäftsobjekten zu sammeln, wobei die logischen von den physischen Datenstrukturen getrennt werden. Es ermöglicht auch, Standardverhalten nur einmal zu definieren, es aber in der gesamten Anwendung wiederverwenden zu können und damit eine 3-Schicht-Anwendungsarchitektur zu erleichtern und die Entwicklung insgesamt zu beschleunigen.

Komponenten Objekte, die im Anwendungsmodell beschrieben wurden, werden in Komponenten wiederverwendet. Entwickler nutzen Modellobjekte, indem sie diese für Präsentationskomponenten in grafischer Form in ein Layout-Tableau platzieren, oder für andere Komponenten in deren Baumstruktur einfügen. Sie können auf Komponentenebene aber auch Objekte verwenden, die nicht im Anwendungsmodell definiert wurden, etwa Steuerungsfelder, Menüs und Komponentenvariablen.

Im Anwendungsmodell definierte Eigenschaften und Trigger werden den Komponenten vererbt, indem sie dorthin kopiert werden. Diese Definitionen können auf Komponentenebene abgeändert werden, um spezifische Funktionalität zu erzielen. Durch eine solche Änderung wird die Koppelung dieser Definitionen an das Anwendungsmodell beendet (es ist allerdings möglich, diese Koppelung wiederherzustellen). Wenn Code oder Eigenschaften eines Objekts auf Modellebene geändert werden, brauchen diejenigen Komponenten, die dieses Objekt enthalten, nur kompiliert zu werden, damit die neuen Definitionen dort wirksam werden. Das ergibt Vorteile bei der Wartung und gewährleistet, dass Geschäftsregeln, die mit einem Objekt verbunden sind, überall verfügbar sind, wo dieses Objekt verwendet wird.

Uniface Repository Uniface verwaltet eine Datenbank mit den eigenen Metadaten zum Zweck der Wiederverwendung von Anwendungsmodellen, Komponentendefinitionen, Komponentenlayouts, prozeduralem Code etc. Um seine Integrität zu gewährleisten, ist dieses Uniface eigene Repository nur für den Zugriff von der Uniface Entwicklungsumgebung aus vorgesehen. Jedoch ist die Struktur des Repositorys dokumentiert, wodurch es auch möglich wäre (allerdings nicht empfohlen wird), es beispielsweise für Auswertungen auch direkt anzusprechen.

Durch die Verwendung eines zentralen Repositorys kann die Anwendungserstellung auf Teams von Softwareentwicklern aufgeteilt werden. Uniface kann auch mit jedem Sourcecode Management System (SCM) integriert werden, das die Microsoft Common Source Code Control Interface Spezifikation unterstützt. Die innerhalb von Uniface verfügbare SCM Funktionalität hängt dabei vom tatsächlich verwendeten SCM System ab, weil Softwarehersteller das MS CSCC API unterschiedlich interpretieren. Als Folge davon können unterstützte Funktionalität und Verhalten je nach SCM-System unterschiedlich sein.

Auslieferung und Betrieb von Anwendungen