vignette|Logo de Uniface Uniface est une application de développement et de déploiement pour les applications d'entreprise. Uniface fonctionne dans une gamme variée de systèmes d’exploitation : mobile, mainframe, web, SOA, Windows, J2EE et NET.

Description

Les applications Uniface sont indépendantes de la base de données et de la plateforme d’exécution. Uniface fournit un cadre d'intégration qui permet aux applications Uniface de s'intégrer aux principaux SGBD, ainsi qu'à d'autres technologies, comme les produits basés sur mainframe (CICS, IMS), les services Web, serveur SMTP et serveur POP, annuaires LDAP, .NET, C et Java. Uniface fonctionne sous Windows, Windows Mobile, différentes sortes d’Unix et de Linux, IBM iSeries/AS400, z/OS, et VMS.

Les applications Uniface peuvent être utilisées dans des systèmes complexes qui maintiennent les données critiques de l'entreprise, tels que les achats en ligne, les transactions financières, l’administration des salaires, et le contrôle des stocks. Uniface permet de développer des applications client/serveur et web. De la simple saisie de données à l’automatisation des processus métier, ainsi que des portails accessibles localement, via l'intranet et l'internet.

Développé à l'origine aux Pays-Bas par Inside Automation, devenu plus tard, Uniface BV, les produits et la société ont été acquis par Compuware en 1994, cependant, le développement est toujours basé à Amsterdam.

Depuis , le produit Uniface est développé par la société Uniface BV et n'appartient plus à Compuware.

Produits

La plateforme Uniface offre une gamme d'outils de développement et de déploiement, dont la plupart est regroupée dans l’Uniface Application Platform Suite (APS). L'APS comprend : Uniface : environnement de développement. C’est un ensemble intégré d'outils pour la modélisation, la mise en œuvre, la compilation, le débogage et la distribution d'applications. Uniface Flow : environnement pour développer et déployer des processus métier. Uniface View : portail d'intégration d'applications qui fournit un bureau organisé de documents Web, des rapports de base de données, des applications d'entreprise, et d'autres ressources de l'entreprise.

Les applications Uniface (y compris l'environnement de développement, Uniface Flow et Uniface View) utilisent une infrastructure d'exécution commune, composée de : Uniface Runtime Engine : une machine virtuelle spécifique à la plateforme qui interprète et exécute les composants d'application et les bibliothèques. Uniface Router : un processus multi-thread responsable de la communication interprocessus dans les applications Uniface. Il démarre et arrête Uniface Server. Il effectue l'équilibrage des charges (load balancing), et transmet les messages entre les différents processus Uniface. Uniface Server : un processus qui permet aux clients d'accéder aux ressources Uniface à distance ou d'exécuter des composants distants. Il agit comme un serveur d'applications, un serveur de données et un serveur de fichiers. Référentiel Uniface : une base de données relationnelle utilisée pour stocker les définitions et propriétés des objets de développement, des modèles de processus et de l'organisation, et les définitions du portail. Uniface Web serveur : le serveur Apache Tomcat est retenu pour développer et tester des applications Web, en production. N'importe quel serveur web peut être utilisé. Servlets Java : servlets utilisées pour la gestion des échanges de communication entre le serveur web et le serveur d’applications Uniface pour les interfaces Web et les Web services. Connecteurs de base de données : Pilotes qui gèrent les connexions entre Uniface et une grande variété de bases de données. Les outils d'intégration : Pilotes, composants et API qui gèrent la communication entre Uniface et des applications tierces et/ou des technologies différentes : Java, CICS, IMS, LDAP, SMTP/POP, des commandes du système, COM etc.

En outre, Uniface JTi (Java Thin Client Interface) permet d’accéder à des applications client/serveur Uniface depuis le web.

Uniface possède un langage de procédure propriétaire appelé "Proc" qui est utilisé pour coder le comportement des applications. Le noyau d’Uniface et le code par défaut automatisent la plupart des opérations d'entrée/sortie. Si bien que les opérations de base n'ont pas besoin d'être codées.

Applications

Les applications Uniface sont basées sur des composants logiciels indépendants de l'infrastructure, des bases de données et des systèmes de fichiers. Elles peuvent être des applications composites qui comprennent des éléments non-Uniface créés à l'aide d'autres outils de développement, elles peuvent être déployées dans les environnements client/serveur, web, mobiles, services web, et mainframe. Uniface comprend plusieurs de types de composants qui sont destinés à être utilisés dans les différentes couches d'une architecture d'application multi-tiers.

Les composants pour la couche de présentation sont responsables de l'interface utilisateur, et comprennent : Les Form : Écrans ou formulaires interactifs pour l'affichage et la mise à jour des données dans un environnement client/serveur. Les Server Page : Pages HTML interactives pour l'affichage et la mise à jour des données dans un environnement web. Les Report : Mise en page pour la présentation des données en vue d’une impression.

Les composants pour la couche logique métier traitent des règles commerciales et du comportement spécifiques lié à une tâche et n'ont pas d'interface utilisateur: Les Services : Assurent le traitement et la logique métier lorsqu'ils sont appelés par d'autres composants, que ce soit localement ou à distance. Les Session Services : Centralisent les règles métier complexes qui touchent plusieurs entités de données, tels que les comportements spécifiques d’une tâche, les transactions et l'intégrité référentielle. Les Entity Services : Centralisent les règles liées à une seule entité de données.

Le tiers d’accès aux données contient les structures de base de données physiques définies dans le modèle d'application Uniface. Uniface assure l’accès physique aux données en encapsulant les ordres SQL dans ses connecteurs SGBD. La gestion réseau et les accès aux middlewares sont encapsulés par les pilotes middleware et le routeur Uniface.

Le moteur d'exécution exécute les composants de l'application. Il affiche les composants de présentation en utilisant le connecteur d'interface utilisateur approprié (soit l'interface graphique, ou en mode caractère), et envoie ou reçoit les données via un connecteur SGBD.

Développement d'applications

Avec Uniface, le développement est guidé par le modèle et se conçoit à partir de composants. La structure de données, les règles métier et le comportement par défaut de l'application sont définis dans le modèle d'application. La définition des modèles peut être réutilisée et héritée par les composants, qui ensuite peuvent remplacer les définitions héritées et fournir un comportement spécifique. La création de « Gabarits » ou « Template » permet d'améliorer la productivité et de garantir la cohérence dans la définition des modèles.

Modèle d'application Le modèle d'application définit les entités (tables), les attributs, les clés primaires, les indices et les associations entre les relations pour définir l'intégrité référentielle. Chaque entité et chaque attribut dans le modèle ont des propriétés et un ensemble de déclencheurs. Les règles métier sont ajoutées au modèle de façon déclarative en définissant les propriétés et le traitement associé, en ajoutant du code Proc (langue de procédure d’Uniface) dans les déclencheurs.

Les déclencheurs sont des conteneurs pour le code. Ils représentent des événements activés par l’utilisateur ou le système. Exemples : Occurrence Get Focus, Read ou Leave Field. D'autres portent sur des traitements tels que la validation, ou agissent comme conteneur pour les méthodes associées à l'objet.

L'utilisation de déclencheurs au niveau du modèle permet de recueillir les propriétés et le comportement métier des objets. La séparation entre structures logiques et données physiques permet de définir le comportement par défaut une seule fois et de le réutiliser systématiquement. Ce procédé accélère le développement et facilite la réalisation d’applications n-tiers.

Composants Les objets décrits dans le modèle d'application sont réutilisés par les composants. Les développeurs incorporent des objets du modèle sur la grille canevas de constitution de l’écran représentant la mise en page (pour les composants de présentation), ou en les insérant dans une arborescence définissant la structure des composants. Ils peuvent également, au niveau des composants, ajouter des objets qui ne sont pas dans le modèle d'application, tels que des champs de contrôle, des menus, et des variables de composant.

Les propriétés et les déclencheurs définis dans le modèle d'application sont hérités par copie dans le composant. Les définitions peuvent être modifiées au niveau des composants pour fournir des fonctionnalités spécifiques. Cela rompt le lien entre le modèle d'application et le composant (même s’il est possible de restaurer le lien vers le modèle). Si le code ou les propriétés sont modifiés au niveau du modèle, tous les composants utilisant ces spécifications seront mis à jour lors de leur prochaine compilation. Cette propagation facilite la maintenance et assure que les règles associées à l'objet sont disponibles partout où il est utilisé.

Référentiel d’Uniface Uniface maintient une base de données de ses propres métadonnées afin de réutiliser les modèles d’application, les définitions de composants, les schémas de composants, du code de procédure, et ainsi de suite. Le référentiel est propriétaire et dédié à l’environnement de développement Uniface, qui en assure l'intégrité. Cependant, la structure du référentiel est documentée, ce qui rend possible (mais non recommandé) d'interagir directement avec lui, pour des rapports par exemple.

Le référentiel peut être partagé par des équipes de développeurs. De plus, Uniface s'intègre à n'importe quel système de contrôle de code source (SCCS) prenant en charge les spécifications du Microsoft Common Source Code Control Interface. Les fonctionnalités disponibles dans SCCS d’Uniface dépendent du SCCS utilisé, les éditeurs de logiciels ont interprété et mis en œuvre les spécifications du Microsoft Common Source Code Control Interface différemment. En conséquence, les fonctionnalités et le comportement pris en charge varient en fonction du fournisseur du CSSC.

Déploiement d'applications

Les applications Uniface peuvent être déployées sans changement de code sur des plateformes aussi différentes que le « mainframe » et le « mobile ». Les composants (et d'autres objets tels que les scripts de démarrage, les menus, les barres d'outils (panneaux), les glyphes, les variables globales et les « include proc » ) sont compilés et produisent des objets exécutables qui peuvent être empaquetés dans des fichiers zip et déployés sur n'importe quelle plateforme. Les objets exécutables sont activés à l'aide d'une machine virtuelle dédiée à chaque plateforme (Java et d'autres langages ont, plus tard, suivie Uniface à cet égard). Les composants peuvent être compilés dans un environnement et exécutés dans un autre.

Connexion aux bases de données