WikiDer > Uniface

Uniface
Uniface
Designer(s)Innere Automatisierung (1984-1986)
EntwicklerUniface (1986-heute)
Letzte Version10 
(15. September 2016)
KategorieEntwicklungsumgebung
LizenzProprietäre Software (kommerziell)
Webseite(und) Offizielle Website
Portal  Portalsymbol  Informatik

Uniface ist eine Entwicklungs- und Bereitstellungsumgebung für geschäftskritische SoftwareAnwendungen, die auf einer Vielzahl verschiedener Plattformen ausgeführt werden können, einschließlich Mobil, Mainframe, Web, SOA, Windows, J2EE und .NET.

Uniface-Anwendungen sind Datenbank- und plattformunabhängig. Uniface ist ein Framework, das die Integration mit allen wichtigen DBMS-Produkten mit einer Vielzahl anderer Technologien wie Mainframe-basierten Produkten (CICS, IMS), Webservices, SMTP und POP Email, LDAP Verzeichnisse, .NET, C und C Programme und Java. Uniface läuft auf Windows, Windows Mobile, Unix und Linux, IBM iSeries/AS400, z/OS und VMS.

Uniface kann für komplexe Systeme verwendet werden, die geschäftskritische Daten verwalten und wesentliche Geschäftsprozesse wie webbasiertes Online-Shopping, Finanztransaktionen, Gehaltsabrechnung und Bestandsverwaltung unterstützen. Heute wird Uniface von Tausenden von Kunden in mehr als 30 Ländern mit Millionen effektiver Installationen verwendet. Uniface-Anwendungen reichen vom Client/Server bis zum Web und von der Dateneingabe bis zum Workflow sowie Portalen, die den Zugriff lokal sowie über Intranet und Internet ermöglichen.

Ursprünglich entwickelt in Die Niederlande von Inside Automation, später Uniface B.V., wurden Produkt und Unternehmen 1994 von der in Detroit ansässigen Compuware Corporation übernommen. Das Produkt wird in Amsterdam noch weiterentwickelt. Anfang 2014 Uniface B.V. von Compuware an Marlin Equity Partners verkauft und wieder als eigenständiges Unternehmen betrieben.

Uniface-Anwendungen

Uniface-Anwendungen sind komponentenbasierte, infrastrukturunabhängige Softwareprogramme, die in einem oder mehreren Systemen gespeicherte Daten erstellen oder verwenden können Datenbanken oder Dateisysteme. Sie können zusammengesetzte Anwendungen sein, einschließlich Nicht-Uniface-Komponenten, die mit anderen Entwicklungstools erstellt wurden. Der Einsatz kann in einer verteilten Client/Server- oder Web-Umgebung sowie in mobilen Anwendungen und in Mainframes erfolgen.

Uniface unterscheidet eine Vielzahl von Komponenten, die in den verschiedenen Schichten (Tiers) innerhalb einer mehrschichtigen Softwarearchitektur verwendet werden sollen.

Die Komponenten der Präsentationsschicht sind für die Benutzeroberfläche verantwortlich und sind:

  • Formulare – interaktive Bildschirme zum Anzeigen und Aktualisieren von Daten in einer Client/Server-Umgebung.
  • Dynamische Serverseiten – interaktive Seiten zum Anzeigen und Aktualisieren von Daten in einer Webumgebung.
  • Berichte – Berichte zur Darstellung von Daten als gedruckte Ausgabe.

Komponenten für die Geschäftslogikschicht sind für die Geschäftslogik und das aufgabenspezifische Verhalten verantwortlich. Sie haben keine Benutzeroberfläche.

  • Dienste – stellen Verarbeitungs- und Geschäftslogikfunktionen bereit, wenn sie von anderen Komponenten verwendet werden. Dies kann sowohl remote als auch lokal erfolgen.
  • Session Services – Zentralisieren Sie komplexe Geschäftsregeln, die sich auf mehrere Datensätze auswirken, wie z. B. aufgabenspezifisches Verhalten, Transaktionen und referenzielle Integrität.
  • Entity Services – Zentralisieren Sie relativ einfache Geschäftsregeln für einzelne Datensätze (Entitäten)

Die Datenzugriffsschicht enthält die physische Datenbankstruktur, die im Uniface-Anwendungsmodell dargestellt wird. Uniface garantiert den Zugriff auf physische Daten über SQL, das in DBMS-Konnektoren integriert ist. Der Zugriff auf ein Netzwerk oder auf Middleware erfolgt über Middleware-Treiber und den Uniface Router.

Die Laufzeit-Engine führt die Anwendungskomponenten aus. Es rendert die Präsentationskomponenten unter Verwendung des entsprechenden Schnittstellenkonnektors (GUI oder zeichenbasiert) und sendet und empfängt Daten über einen DBMS-Konnektor.

Anwendungsentwicklung

Die Uniface-Entwicklung ist modellgetrieben und komponentenbasiert. Die Datenstruktur und das Standardverhalten der Anwendung werden im Anwendungsmodell „eingefangen“. Anwendungsmodelldefinitionen können wiederverwendet und von Komponenten geerbt werden, wodurch die geerbten Definitionen überschrieben und Eigenschaften für bestimmte Komponenten erzwungen werden können. Das Anwenden von Vorlagen erhöht die Produktion und erzwingt die Konsistenz bei der Definition des Modells.

Anwendungsmodell

Werden Sie im Anwendungsmodell Entitäten (Tabellen), Felder, Schlüssel (Indizes) und Beziehungen, die zusammen mit referenzieller Integrität definiert werden. Jede Entität und jedes Feld im Modell verfügt über Eigenschaften und eine Reihe von Auslösern. Geschäftsregeln werden deklarativ durch das Definieren der Eigenschaften ("Eigenschaften") und prozedural durch die Verwendung von Proc (Unifaces prozeduraler 4GL-Programmiersprache) in Triggern hinzugefügt.

Trigger sind Container für den Code. Einige Trigger stellen Benutzer- oder Systemereignisse dar, z. B. der Trigger „Auftreten erhält Fokus“, „Lesen“ oder „Feld verlassen“. Wieder andere Trigger decken Bereiche wie die Validierung ab oder sind Orte, die speziell mit bestimmten Objekten verbunden sind.

Das Anwenden von Triggern auf Modellebene ermöglicht es, Eigenschaften und Verhalten innerhalb von Objekten innerhalb von Uniface aufzuzeichnen, das zwischen physischer und logischer Datenstruktur unterscheidet. Es ermöglicht, Standardverhalten an einer Stelle zu definieren und dann in der gesamten Anwendung (wieder) zu verwenden. Auf diese Weise wird der Entwicklungsprozess beschleunigt und eine 3-Tier-Architektur ermöglicht.

Komponenten

Die im Anwendungsmodell beschriebenen Objekte werden von Komponenten wiederverwendet. Entwickler betten Objekte aus dem Anwendungsmodell in die Komponenten ein, indem sie sie auf dem Layout-Canvas zeichnen (für Präsentationskomponenten) oder indem sie sie in die Baumstruktur der Komponente einfügen. Entwickler können auch Objekte auf Komponentenebene einfügen, die nicht im Anwendungsmodell definiert sind, beispielsweise Steuerfelder, Menüs und Komponentenvariablen.Die im Anwendungsmodell definierten Eigenschaften und Trigger werden durch Kopieren in die Komponente vererbt. Die Definitionen können auf Komponentenebene geändert werden, um spezifische Funktionen zu erstellen. Dadurch wird die Verbindung zwischen Anwendungsmodell und Komponente unterbrochen (es ist durchaus möglich, diese Verbindung wiederherzustellen). Wenn Code oder Eigenschaften auf Modellebene geändert werden, müssen nur alle Komponenten mit den Objekten aus diesem Anwendungsmodell neu kompiliert werden. Dies bietet Wartungsvorteile und stellt sicher, dass die mit dem Objekt verknüpften Regeln dort verfügbar sind, wo sie benötigt werden.

Uniface-Repository

Uniface unterhält eine Datenbank mit eigenen Metadaten, damit diese Metadaten wiederverwendet werden können – Anwendungsmodelle, Komponentendefinitionen, Komponentenlayouts, prozeduraler Code und dergleichen. Dieses Repository ist proprietär und ausschließlich für die Uniface-Entwicklungsumgebung bestimmt, um die referenzielle Integrität zu gewährleisten. Da die Repository-Struktur dokumentiert ist, ist auch ein direkter Zugriff möglich (aber nicht empfehlenswert!), beispielsweise für Reports.Durch die Verwendung eines zentralen Repositorys kann die Softwareentwicklung durch ganze Entwicklungsteams erfolgen. Uniface lässt sich in jedes Source Control System (SCCS) integrieren, das die Microsoft Common Source Code Control Interface Specifications unterstützt. Die in Uniface verfügbare SCCI-Funktionalität hängt vom verwendeten SCCS ab, da die MS CSCC-API von verschiedenen Softwareanbietern unterschiedlich interpretiert und implementiert wird. Daher können sich die unterstützte Funktionalität und das Verhalten je nach verwendetem SCCS unterscheiden.

Anwendungsbereitstellung

Uniface-Anwendungen können auf Plattformen vom Mainframe bis zum Mobilgerät bereitgestellt werden, ohne dass Code geändert werden muss. Die Komponenten (und andere Objekte wie Start-Shells, Menüs, Symbolleisten (Panels), Glyphen, globale und enthaltene Proc-Einträge) werden zu Laufzeitobjekten kompiliert, die in ZIP-Dateien gepackt und auf jeder Plattform bereitgestellt werden können. Die Laufzeitobjekte werden mit einer virtuellen Maschine und einem plattformspezifischen Interpreter ausgeführt. (Java und andere Sprachen sind Uniface später darin gefolgt). Komponenten können auf einem Computer kompiliert und auf einem anderen Computer bereitgestellt werden, solange ein virtueller Uniface-Computer verfügbar ist.

Datenbank-Konnektivität

Uniface hat Zugriff auf viele Datenbanken und Dateisysteme, die von Datenbankkonnektoren (oder Datenbanktreibern) unterstützt werden. DBMS-Konnektoren konvertieren Uniface-Datentypen in das am besten geeignete Format des jeweiligen Speichermediums. Zur Laufzeit ist es möglich, Parameter zu verwenden, um bestimmte Datenbankerweiterungen zu aktivieren (oder zu deaktivieren). Mit einem lizenzierten Datenbank-Connector ist es möglich, Daten in verschiedene Datenquellen zu konvertieren. Uniface bietet auch eine API, das Database Connector Interface, die verwendet werden kann, um benutzerdefinierte Datenbankkonnektoren zu entwickeln.

Lizenzierung

Die Lizenzierung wird von Uniface Distributed License Management (ULM) verwaltet, einem serverbasierten System verteilter Lizenzen basierend auf Client-Anfragen. Dies vermeidet die Notwendigkeit lokaler Lizenzen.

(Seit Februar 2014 ist Uniface nicht mehr im Besitz von Compuware und wurde nach der Übernahme durch einen privaten Aquety Fund namens Marlin unabhängig weitergeführt.)

Geschichte von Uniface

Ursprünglich hieß Uniface UNIS. Uniface wurde 1984 in den Niederlanden von Inside Automation hergestellt. Inside Automation wurde von Bodo Douque geleitet, mit Frits Kres als technischer Direktor. 1986 wurde der Name in Uniface geändert Uniface wurde nach den Richtlinien des American National Standards Institute (ANSI) nach einer 3 Schemaarchitektur entwickelt. Dies war ein Standardansatz von 1975, um Datenbankverwaltungssysteme zu erstellen, die aus 3 Schemata (oder Metamodellen) bestanden:

  • Konzeptuelles Schema – alle Datendefinitionen und die Beziehungen zwischen ihnen. Es gibt ein konzeptionelles Schema pro Datenbank. Das konzeptionelle Schema wird von Uniface als Application Model implementiert (in den verschiedenen Uniface-Versionen auch als Business Object Model und Application Object Model bekannt).
  • Externes Schema – mehrere externe (Benutzer-)Ansichten der Daten. Es kann viele verschiedene externe Schemata für eine Datenbank geben.

Bei Uniface werden externe Schemata als Komponenten implementiert. Aufgrund der Entwicklung von Uniface wurden die externen Schemas zu Formen. Versteckte Formulare, die im Hintergrund ohne Anzeige für den Endbenutzer ausgeführt wurden, wurden zu Diensten; Services wurden in Session Services für Objekte der Business-Schicht und Entity Services unterteilt, die in der Business- oder Datenschicht positioniert werden können. Formulare, die gedruckt statt angezeigt wurden, wurden zu Berichtskomponenten. Die Serverseite (USP) wurde für die Webentwicklung eingeführt und später wurde auch die dynamische Serverseite (DSP) eingeführt, um die Web 2.0-Funktionalität zu unterstützen.

  • Internes Schema – Definition der physischen Darstellung der gespeicherten Daten. Uniface überlässt dies den vielen relationalen Datenbanken, mit denen es interagieren kann, um die Datenbankunabhängigkeit zu gewährleisten.

Uniface wurde auf a entwickelt DEC-VAX mit dem VAX-Dateiverwaltungssystem RMS. Aus dieser Zeit stammt die Verwendung eines „GOLD“-Schlüssels, um die Position des Cursors zu bestimmen oder einen leeren Datensatz zu erstellen und dergleichen. (DEC VT-Terminals hatten eine goldene oder gelbe Taste auf der Tastatur. Heute ist die GOLD-Taste einer numerischen oder einer Funktionstaste zugeordnet.) Frühe Versionen von Uniface wurden mit Sybase RDBMS unter dem Namen FastBuild gebündelt, jedoch gab es keine Beschränkung auf Kommunikation nur mit Sybase Uniface hat sich kontinuierlich weiterentwickelt, um neue Technologien und Architekturen zu unterstützen. Dies war entscheidend für den Erfolg von Uniface, da mit Uniface erstellte Anwendungen migriert, modifiziert und modernisiert werden können, ohne die ursprüngliche Investition in die Softwareentwicklung zu verlieren.

Uniface-Version 3 (1986)

Uniface 3 war die erste öffentliche Veröffentlichung. Uniface 3 unterstützt mehrere Datenbanken (RMS, Oracle, C_ISAM, Ingres und RDB); Interpretation virtueller Maschinen; den Struktureditor, Uniface-Text und den Befehlseditor.

Uniface-Version 4 (1988)

Uniface 4 hatte einen verbesserten Texteditor (jetzt Formulareditor), verbesserte Druck- und Anzeigeunterstützung, führte Unterstützung für MS-DOS ein und fügte eine CASE-Tool-Schnittstelle hinzu.

Uniface-Version 5 (1990)

Uniface 5 ermöglichte eine Client/Server-Implementierung mit der Einführung des Remote-Datenbankzugriffs über Polyserver. Die grafische Benutzeroberfläche wurde über das Universal Presentation Interface (UPI) eingeführt. Die Datenbankunterstützung wurde auf insgesamt 13 Datenbanken und Dateisysteme erweitert. Uniface war jetzt auf DOS, VMS, OS/2, Stratus VOS und UNIX verfügbar. Unterstützung für die japanische Sprache wurde eingeführt.

Uniface Sechs (1994)

Uniface Six hat den Übergang zu einer vollständig grafischen Entwicklungsumgebung abgeschlossen. Es umfasste den grafischen Formularmaler, den Anwendungsmodelleditor; eine verbesserte Bereitstellung durch dynamische Objektbibliotheken; Unterstützung für Microsoft Object Linking and Embedding (OLE) wurde hinzugefügt; Unterstützung für Apple Macintosh wurde eingeführt; Berechtigungskontrolle; integrierte Versionskontrolle; Berichterstattungstools für die Personal Series hinzugefügt (obwohl dies später entfernt wurde, als die dritte Partei beschloss, das Produkt nicht weiterzuentwickeln); breitere Plattformunterstützung wurde eingeführt.

Uniface Sieben (1997)

Uniface Seven konzentrierte sich auf die Integration von Komponenten sowohl für Uniface-Komponenten als auch für externe Komponenten durch die Einführung der Uniface Request Broker (URB)-Architektur. Der URB unterstützt bidirektionale und synchrone oder asynchrone Kommunikation zwischen Komponenten. Neben dem Remote-Datenzugriff wurden partitionierte Anwendungsserver und Messaging hinzugefügt. Uniface Seven lieferte mit dem Web Application Server und dem Uniface Request Dispatcher auch die ersten Uniface Webentwicklungs- und Bereitstellungstools.

Weitere Verbesserungen waren die neuen Komponententypen (Dienste, Serverseiten, Berichte); Signature Editor und Assembly Workbench; Subsysteme; Operationen, nicht-modale Formulare; Komponenteninstanzen, verbesserte Editoren und Navigation; verbessertes Editor-Plugin; neuer Debugger; integrierte Online-Hilfe; Komponentenvorlagen; Webanwendungsserver, erweiterte Validierung; Uniface Name Server und grafischer Partitionierungsmanager Uniface Seven führte auch andere Tools ein:

  • Ein Werkzeug zur Modellierung, Integration und Verwaltung von Geschäftsprozessen. Diese Funktionalität wurde unter Uniface 8 als Optimal Flow und später unter Uniface 9 als Uniface Flow bekannt.
  • Ein Business-Integration-Portal, zunächst unter dem Namen Optimal View und später Uniface View.
  • Uniface JTi – eine serverbasierte Thin-Client-Lösung zur Bereitstellung von Webanwendungen über das Internet oder Intranet, vorausgesetzt, eine hohe Leistung und Konnektivität mit geringer Bandbreite.

Uniface 8 (2001)

Uniface 8 hat große Veränderungen im Bereich der Prozessintegration, dank der in dieser Version von Uniface eingeführten Workflow-Komponente (Business Process Automation). Der Uniface-Router und der Uniface-Server bieten eine skalierbare und ausgewogene Bereitstellung. Der Web Request Dispatcher (WRD) ersetzte die URD und verbesserte die Performance deutlich. Die Unterstützung von Webservices mit SOAP und XML wurde eingeführt. Konnektivität und Interoperabilität wurden verbessert und eine Methode zur Implementierung einer 3-Tier-Anwendungsarchitektur eingeführt Konnektoren für SOAP, COM, CORBA und MQSeries wurden hinzugefügt; Fenster- und Dateiverwaltung wurde verbessert, ein neues Bereitstellungsdienstprogramm wurde eingeführt, um die Anwendungsverteilung zu verbessern; Entitätsuntertypen für die 3-Tier-Architektur wurden hinzugefügt; Handles für Komponenteninstanzen und automatische Garbage Collection wurden hinzugefügt.

Uniface 9 (2009)

Das Uniface 9 Release konzentrierte sich auf GUI- und Usability-Verbesserungen, Thin Deployment und Integration. Unterstützung für Windows Mobile wurde hinzugefügt, und Konfiguration und Bereitstellung wurden mithilfe gezippter Archive vereinfacht. Die Unterstützung für Unicode wurde verbessert und bietet bereits mehrsprachige Funktionen. Verbesserungen in der Webentwicklung und im XML-Handling brachten Uniface weiter in Einklang mit Industriestandards. Die dynamische Feldverschiebung in den Formularen beseitigte einige alte Barrieren für die Flexibilität.

Zu den weiteren Funktionen gehören eine verbesserte Farbhandhabung, dynamische Menüs, eine XML-API, ein Diagrammeditor für das Anwendungsmodell; Querverweisfunktionalität zur Unterstützung von Refactoring und Bereitstellung sowie erweiterter Webservice-Funktionalität.

Uniface 9.4 (2010)

Obwohl Uniface 9.4 ein Point-Release ist, ist seine Einführung angesichts der neuen Funktionalität wichtig genug, um es als Major-Release zu betrachten. Der Schwerpunkt lag auf der Rich Internet Application (RIA)-Funktionalität, die es ermöglichte, mit den gleichen Tools und Methoden der klassischen Client/Server-Entwicklung Web 2.0-Anwendungen mit der reichen Funktionalität von Client/Server-Anwendungen zu entwickeln. Die Sprach- und lokale Unterstützung wurde erheblich verbessert, z. B. Unterstützung für HTML-E-Mail sowie Sicherheit und Verschlüsselung.

Uniface 9.5 (2011)

Für Uniface 9.5 wurde die Integration mit dem Web deutlich erweitert und verbessert. Durch die Einführung einer JavaScript API lassen sich auf der Clientseite (Browser) viele Zugewinne an Performance, funktionalen Möglichkeiten, Integration und Benutzerfreundlichkeit erzielen. Die Sitzungsverwaltung wurde erweitert, um die Web-Sicherheit zu verbessern. Für Webservices unterstützt Uniface 9.5 komplexe Datenstrukturen, sowohl für SOAP- als auch für RESTful-Services, für Client-Server wurde insbesondere die Funktionalität für das Grid-Widget erweitert.

Uniface 9.6 (2012)

Es wurde ein Paging-Mechanismus implementiert, der die Datenbanksuche beschleunigt. Uniface 9.6 hat sich in Bezug auf die Benutzerfreundlichkeit für Client-Server-Anwendungen an einer Reihe wichtiger Fronten verbessert. Das PNG-Format für Bilder wird jetzt unterstützt. Das Tab-Widget wurde um ein „erweitertes“ Tab-Widget erweitert, das hinsichtlich Look and Feel hochgradig konfigurierbar ist. Farben, Bilder und Position von Registerkarten können dynamisch implementiert werden. Die Befehlsschaltfläche weist aufgrund der Anzeigeeigenschaften, die je nach Zustand der Befehlsschaltfläche definiert werden können, mehr Variationen auf. Für die Standardansicht, die Rollover-Ansicht, die Ansicht zum Zeitpunkt eines aktiven Klicks und die Fokusansicht kann eine eigene Eigenschaft für die Darstellung definiert werden. Uniface 9.6 unterstützt auch Bilder, Farben und verschiedene Schriftarten für Menüs und Bedienfelder.

Externe Links