Articulo de referencia

Uniface (lenguaje de programación)

Uniface es una plataforma de desarrollo e implementación de bajo código para aplicaciones empresariales que puede ejecutarse en una amplia gama de entornos, incluyendo dispositi...

Uniface es una plataforma de desarrollo e implementación de bajo código para aplicaciones empresariales que puede ejecutarse en una amplia gama de entornos, incluyendo dispositivos móviles , mainframes , web, arquitectura orientada a servicios (SOA), Windows , Java EE y .NET . Uniface se utiliza para crear aplicaciones de misión crítica.

Las aplicaciones Uniface son independientes de la plataforma y de la base de datos. Uniface proporciona un marco de integración que permite que las aplicaciones Uniface se integren con los principales sistemas de gestión de bases de datos (DBMS), como Oracle , Microsoft SQL Server , MySQL e IBM Db2 . Además, Uniface también admite sistemas de archivos como RMS , archivos secuenciales, archivos de texto del sistema operativo y una amplia gama de otras tecnologías, como productos basados ​​en mainframes de IBM ( CICS , IMS ), servicios web , SMTP , correo electrónico POP , directorios LDAP , .NET , ActiveX , Component Object Model (COM), programas C++ y Java . Uniface funciona en Microsoft Windows , diversas variantes de Unix , Linux , OpenVMS e IBM i .

Uniface se puede utilizar en sistemas complejos que gestionan datos empresariales y dan soporte a procesos de negocio como puntos de venta, compras online, transacciones financieras, administración de nóminas y control de inventario. Miles de empresas en más de 30 países lo utilizan, con una base instalada efectiva de millones de usuarios finales. Las aplicaciones de Uniface abarcan desde arquitecturas cliente/servidor hasta web, y desde la entrada de datos hasta la gestión de flujos de trabajo y portales accesibles localmente, a través de intranets e internet.

Desarrollado originalmente en los Países Bajos por Inside Automation, posteriormente Uniface BV, el producto y la empresa fueron adquiridos por Compuware Corp, con sede en Detroit, en 1994, y en 2014 por Marlin Equity Partners, continuando como Uniface BV con sede global en Ámsterdam . En febrero de 2021, Uniface fue adquirida por Rocket Software , con sede en Waltham, Massachusetts , EE. UU .

Productos Uniface

Uniface Development Environment es una colección integrada de herramientas para modelar, implementar, compilar, depurar y distribuir aplicaciones.

Las aplicaciones Uniface, incluidas las mencionadas anteriormente, utilizan una infraestructura de tiempo de ejecución común, que consta de:

  • Uniface Runtime Engine: un proceso específico de la plataforma que interpreta y ejecuta los componentes y bibliotecas de la aplicación compilada.
  • Uniface Router es un proceso multihilo responsable de la comunicación entre procesos (IPC) en las aplicaciones Uniface. Inicia y detiene los procesos del servidor Uniface, realiza el equilibrio de carga y transmite mensajes entre los distintos procesos Uniface.
  • Uniface Server es un proceso basado en servidor que permite a los clientes de Uniface acceder a recursos remotos o ejecutar componentes remotos. Funciona como servidor de aplicaciones, servidor de datos y servidor de archivos.
  • Uniface Repository es un sistema de gestión de bases de datos (DBMS) compatible con SQL que se utiliza para almacenar definiciones y propiedades de objetos de desarrollo, modelos de procesos y organización, y definiciones de portales.
  • Servidor web: Uniface incluye el servidor Apache Tomcat para el desarrollo y las pruebas de aplicaciones web, pero se puede utilizar cualquier servidor web en un entorno de producción.
  • Servlets: servlets de Java que gestionan la comunicación entre un servidor web y el servidor Uniface para las aplicaciones web y los servicios web de Uniface.
  • Conectores de bases de datos: controladores que gestionan la conexión entre Uniface y diversas bases de datos.
  • Herramientas de integración: controladores, componentes y API que gestionan la comunicación entre Uniface y aplicaciones y tecnologías de terceros, incluyendo Java, CICS, IMS, LDAP, SMTP, POP, comandos del sistema operativo, COM y más.

Además, Uniface Anywhere (anteriormente Uniface JTi o Java Thin Client Interface) puede ofrecer aplicaciones cliente/servidor de Uniface a cualquier ordenador conectado a Internet como una solución de cliente ligero .

Uniface es una plataforma de desarrollo e implementación de bajo código basada en un lenguaje de scripting procedimental propietario (de cuarta generación) llamado Uniface Proc, que se utiliza para programar el comportamiento de las aplicaciones. Uniface automatiza la mayoría de las operaciones de entrada/salida mediante su núcleo y código predeterminado, por lo que gran parte del comportamiento fundamental no necesita ser programado.

Aplicaciones Uniface

Las aplicaciones Uniface son programas de software independientes de la infraestructura y basados ​​en componentes que pueden crear o utilizar datos almacenados en una o más bases de datos o sistemas de archivos. Pueden ser aplicaciones compuestas que incluyen componentes que no son de Uniface, creados con otras herramientas de desarrollo, y pueden implementarse en entornos distribuidos cliente/servidor y web, como aplicaciones móviles o servicios web, y en entornos de mainframe.

Uniface dispone de varios tipos de componentes destinados a ser utilizados en diferentes capas de la arquitectura de aplicaciones multinivel.

Los componentes de la capa de presentación son responsables de la interfaz de usuario e incluyen:

  • Formularios: pantallas interactivas para mostrar y actualizar datos en un entorno cliente/servidor.
  • Páginas del servidor: páginas interactivas para mostrar y actualizar datos en un entorno web.
  • Informes: formatos para presentar datos en un documento impreso.

Los componentes de la capa de lógica de negocio gestionan las reglas de negocio y el comportamiento específico de cada tarea, y no tienen interfaz de usuario:

  • Los servicios proporcionan funcionalidades de procesamiento y lógica de negocio cuando otros componentes los solicitan, ya sea de forma local o remota.
  • Servicios de sesión: centralizan las reglas de negocio complejas que afectan a múltiples entidades de datos, como el comportamiento específico de las tareas, las transacciones y la integridad referencial.
  • Servicios para entidades: centralice las reglas de negocio sencillas para entidades de datos individuales.

La capa de acceso a datos contiene estructuras de base de datos físicas capturadas en el modelo de aplicación Uniface. Uniface garantiza el acceso físico a los datos encapsulando SQL en sus conectores DBMS. El acceso a la red y al middleware está encapsulado por los controladores de middleware y el enrutador Uniface.

El motor de ejecución ejecuta los componentes de la aplicación. Muestra los componentes de presentación mediante el conector de interfaz de usuario adecuado (ya sea GUI o basado en caracteres) y envía y recibe datos a través de un conector DBMS.

Desarrollo de aplicaciones

Las aplicaciones Uniface se desarrollan con el entorno de desarrollo Uniface. Originalmente, era posible desarrollar en plataformas Apple y DEC ; ahora, Windows es la plataforma compatible para el desarrollo.

El desarrollo de aplicaciones Uniface se basa en modelos y componentes. La estructura de datos, las reglas de negocio y el comportamiento predeterminado de la aplicación se capturan en el Modelo de Aplicación. Las definiciones de los modelos se pueden reutilizar y heredar por los componentes, que pueden sobrescribir las definiciones heredadas y proporcionar comportamientos y características específicas. Las plantillas mejoran la productividad y garantizan la coherencia al definir los modelos.

Modelo de aplicación

El modelo de aplicación define entidades (tablas), campos, claves (índices) y relaciones, junto con la integridad referencial. Cada entidad y campo del modelo tiene propiedades y un conjunto de disparadores. Las reglas de negocio se añaden al modelo de forma declarativa, mediante la configuración de propiedades, y de forma procedimental, mediante la adición de código Proc (el lenguaje procedimental de Uniface) en los disparadores.

Los disparadores son contenedores de código. Algunos disparadores representan eventos de usuario o del sistema, por ejemplo, cuando un objeto obtiene el foco, o cuando se lee o se abandona un campo. Otros abarcan aspectos como la validación o actúan como marcadores de posición para métodos asociados con el objeto en cuestión.

El uso de disparadores a nivel de modelo permite a Uniface recopilar propiedades y comportamientos dentro de los objetos de negocio, separando las estructuras de datos lógicas de las físicas. Esto posibilita definir el comportamiento predeterminado una sola vez, para su reutilización en toda la aplicación, lo que acelera el desarrollo y facilita la arquitectura de aplicación de tres capas.

Cada entidad (tabla) se define primero en el Modelo de Aplicación, desde donde se puede exportar a la base de datos física en forma de scripts CREATE TABLE.

Componentes

Los componentes reutilizan los objetos descritos en el modelo de aplicación. Los desarrolladores integran objetos del modelo en el componente dibujándolos en el lienzo de diseño (para componentes de presentación) o insertándolos en una vista de árbol de la estructura del componente. También pueden añadir objetos a nivel de componente que no se encuentran en el modelo de aplicación, como campos de control, menús y variables de componente.

Las propiedades y los disparadores definidos en el modelo de aplicación se heredan al copiarse en el componente. Las definiciones pueden modificarse a nivel de componente para proporcionar una funcionalidad específica. Esto rompe el vínculo entre el modelo de aplicación y el componente (aunque es posible restablecerlo). Si se modifican el código o las propiedades del modelo, todos los componentes que contienen ese objeto solo necesitan recompilarse para incorporar las nuevas definiciones. Esto facilita el mantenimiento y garantiza que las reglas asociadas al objeto estén disponibles dondequiera que se utilice.

repositorio Uniface

Uniface mantiene una base de datos con sus metadatos para su reutilización: modelos de aplicación, definiciones de componentes, diseños de componentes, código procedimental, etc. El repositorio es propietario y está diseñado para ser accedido a través del Entorno de Desarrollo de Uniface, para garantizar su integridad. Sin embargo, la estructura del repositorio está documentada, lo que permite (aunque no se recomienda) interactuar directamente con él, por ejemplo, para generar informes.

Mediante un repositorio centralizado, el desarrollo de aplicaciones puede compartirse entre equipos de desarrolladores de software. Uniface se integra con cualquier sistema de control de versiones (VCS) compatible con la especificación de interfaz común de control de código fuente de Microsoft (MS CSCC). La funcionalidad de VCS disponible en Uniface depende del VCS utilizado, ya que los proveedores de software han interpretado e implementado la API MS CSCC de forma diferente.

Implementación de aplicaciones

Las aplicaciones Uniface se pueden implementar en plataformas que van desde mainframes hasta dispositivos móviles, sin necesidad de modificar el código. Los componentes (y otros objetos como shells de inicio, menús, barras de herramientas (paneles), glifos, entradas globales y de Proc incluidas) se compilan en objetos de tiempo de ejecución que se pueden empaquetar en archivos zip e implementar en cualquier plataforma. Estos objetos se ejecutan mediante una máquina virtual y un intérprete específico de la plataforma. (Posteriormente, Java adoptó esta característica en Uniface). Los componentes se pueden compilar en una máquina y ejecutar en otra, siempre que la máquina virtual Uniface esté presente.

El enrutador Uniface y el servidor Uniface hacen que Uniface sea escalable y permiten ejecutar procesos de forma asíncrona.

Conectividad de la base de datos

Uniface accede a las numerosas bases de datos y sistemas de archivos compatibles mediante conectores (o controladores) de base de datos. Estos conectores asignan y convierten los tipos de datos de Uniface al formato más adecuado para el medio de almacenamiento específico. En tiempo de ejecución, es posible pasar parámetros para activar (o desactivar) extensiones específicas de la base de datos. Si el conector de base de datos cuenta con la licencia correspondiente, es posible convertir entre diferentes fuentes de datos. Uniface también proporciona una API, la Interfaz de Conector de Base de Datos, que permite crear conectores propios para cualquier base de datos SQL .

Licencias

La gestión de licencias se realiza a través de Compuware Distributed License Manager (DLM), un sistema basado en servidor que distribuye licencias a los clientes que las solicitan, eliminando la necesidad de almacenarlas localmente.

Historia de Uniface

Originalmente llamado UNIS, el producto fue creado en los Países Bajos en 1984 por Inside Automation, una empresa dirigida por Bodo Douqué, con Frits Kress como director técnico. En 1986, tanto el producto como la empresa cambiaron su nombre a Uniface. (Un logotipo inicial del producto incluía una A mayúscula roja que reflejaba la A mayúscula roja del logotipo de Inside Automation).

Uniface se desarrolló sobre los principios de la arquitectura de 3 esquemas del Instituto Nacional Estadounidense de Estándares (ANSI) . Propuesta por primera vez en 1975, esta fue una metodología estándar para la construcción de sistemas de gestión de bases de datos que consta de 3 esquemas (o metamodelos):

  • Esquema conceptual: definición de todos los elementos de datos y las relaciones entre ellos. Existe un único esquema conceptual por base de datos. Uniface implementa el esquema conceptual como el Modelo de Aplicación (en sus distintas versiones, conocido como Modelo de Objeto de Negocio y Modelo de Objeto de Aplicación).
  • Esquema externo: diferentes vistas externas (de usuario) de los datos. Una base de datos puede tener varios esquemas externos. Uniface implementa los esquemas externos como componentes. Durante la evolución de Uniface, el esquema externo se convirtió en formularios; los formularios ocultos, que se ejecutaban en segundo plano sin mostrarse al usuario, se convirtieron en servicios; los servicios se dividieron en servicios de sesión para objetos de la capa de negocio y servicios de entidad que pueden pertenecer a la capa de negocio o de datos. Los formularios que se imprimían en lugar de mostrarse se convirtieron en componentes de informe. Se introdujo la página de servidor (USP) para el desarrollo web, y posteriormente se introdujo la página de servidor dinámica para admitir la funcionalidad Web 2.0.
  • Esquema interno: definición de la representación física de los datos almacenados. Uniface deja el esquema interno a los diversos sistemas de bases de datos relacionales a los que podría conectarse, lo que le permite ser independiente de la base de datos.

Uniface se desarrolló en la máquina DEC VAX , utilizando el sistema de gestión de archivos nativo de VAX, RMS . Un vestigio de esto aún se observa en el producto actual, ya que sigue utilizando una tecla "GOLD" para cambiar de modo ( los terminales DEC VT tenían una tecla dorada o amarilla en el teclado. Hoy en día, la tecla "GOLD" simplemente se asigna a la tecla + del teclado numérico o a una tecla de función).

Las primeras versiones del producto se incluían con el sistema de gestión de bases de datos relacionales Sybase bajo el nombre de FastBuild, aunque no se limitaban a acceder únicamente a esa base de datos.

Uniface ha evolucionado continuamente para adaptarse a las nuevas tecnologías y arquitecturas de aplicaciones. Esto ha sido fundamental para su éxito, ya que las aplicaciones desarrolladas con Uniface pueden migrarse, actualizarse y modernizarse sin perder la inversión inicial en su desarrollo.

Versiones Uniface

Uniface Versión 3 (1986): Uniface 3 fue la primera versión pública. Incluía soporte para múltiples bases de datos (RMS, Oracle, C_ISAM, Ingres y RDB); interpretación de máquinas virtuales; el Editor de Estructuras y el editor de texto y comandos de Uniface.

Uniface Versión 4 (1988): Uniface 4 mejoró el editor de texto (ahora editor de formularios), mejoró la compatibilidad con la impresión y la visualización, introdujo compatibilidad con MS-DOS y añadió una interfaz de herramienta CASE.

Uniface versión 5 (1990): Uniface 5 permitió la implementación cliente/servidor con la introducción del acceso remoto a bases de datos a través de Polyserver. Introdujo una interfaz gráfica de usuario mediante la Interfaz de Presentación Universal (UPI). La compatibilidad con bases de datos se amplió a un total de 13 bases de datos y sistemas de archivos, y ahora estaba disponible para DOS, VMS, OS/2, Stratus VOS y UNIX. También se introdujo la compatibilidad con caracteres japoneses.

Uniface Six (1994): Uniface Six completó la transición a entornos de desarrollo totalmente gráficos. Incluía el editor gráfico de formularios y el editor de modelos de aplicaciones; mejoró la implementación mediante bibliotecas de objetos dinámicos; añadió compatibilidad con Microsoft Object Linking and Embedding (OLE); incluyó compatibilidad con Apple Macintosh; añadió control de permisos; integró el control de versiones; añadió herramientas de informes de Personal Series (aunque posteriormente se eliminaron cuando el tercero decidió no mejorar su producto); y ofreció una mayor compatibilidad con plataformas.

Uniface Seven (1997): Uniface Seven se centró en la integración de componentes, tanto de Uniface como externos, mediante la introducción de la arquitectura Uniface Request Broker (URB). El URB admite la comunicación bidireccional, síncrona o asíncrona, entre componentes. Además del acceso remoto a datos, incorporó servidores de aplicaciones particionados y mensajería. Uniface Seven también ofreció las primeras herramientas de desarrollo e implementación web de Uniface, con el Servidor de Aplicaciones Web y el Despachador de Solicitudes de Uniface.

Otras mejoras incluyeron nuevos tipos de componentes (Servicios, Páginas de servidor, Informes); Editor de firmas y Entorno de trabajo de ensamblaje; subsistemas; operaciones; formularios no modales; instancias de componentes; editores y navegación mejorados; complemento de editor mejorado; nuevo depurador; ayuda en línea integrada; plantillas de componentes; Servidor de aplicaciones web; validación mejorada; Servidor de nombres Uniface y administrador de particionamiento gráfico.

Uniface Seven también introdujo varias otras herramientas:

  • Una herramienta para el modelado, la integración y la gestión de procesos de negocio. Esta funcionalidad se convirtió en Optimal Flow en Uniface 8, y posteriormente en Uniface Flow en Uniface 9.
  • Un portal de integración empresarial llamado inicialmente Optimal View y posteriormente Uniface View.
  • Uniface es una solución de cliente ligero basada en servidor para ofrecer aplicaciones web a través de Internet o Intranet, proporcionando un alto rendimiento en conexiones de bajo ancho de banda.

Uniface 8 (2001): Uniface 8 introdujo cambios importantes en el área de integración de procesos. Uniface Router y Uniface Server proporcionaron una implementación escalable y equilibrada. Web Request Dispatcher (WRD) reemplazó a URD, mejorando el rendimiento. Se introdujo soporte para servicios web, con SOAP y XML. Se mejoró la conectividad y la interoperabilidad, y se introdujo un método para implementar una arquitectura de aplicación de tres niveles. Se agregaron conectores para SOAP, COM, CORBA y MQSeries; se mejoró la administración de ventanas y archivos; se introdujo una nueva utilidad de implementación, mejorando la distribución de aplicaciones; se agregaron subtipos de componentes para la arquitectura de tres niveles; se agregaron manejadores para instancias de componentes y se agregó recolección de basura automática.

Uniface 9 (2006): La versión Uniface 9 se centró en mejoras de la interfaz gráfica de usuario (GUI) y la usabilidad, la implementación ligera y la integración. Se añadió compatibilidad con Windows Mobile y se simplificó la configuración y la implementación mediante archivos comprimidos. La compatibilidad con Unicode mejoró aún más su ya impresionante capacidad multilingüe, y las mejoras en el desarrollo web y el manejo de XML acercaron aún más a Uniface a los estándares de la industria. El movimiento dinámico de campos en los componentes de formulario eliminó algunas barreras que limitaban la flexibilidad.

Otras características incluían una gestión mejorada del color, menús dinámicos, una API XML, un editor de diagramas para el modelo de aplicación, funcionalidad de referencias cruzadas para facilitar la refactorización y la implementación, y funcionalidad mejorada de los servicios web.

Uniface 9.4 (2010): A pesar de ser una actualización menor, Uniface 9.4 introdujo suficientes novedades importantes como para considerarse una actualización principal. El enfoque principal fue la funcionalidad de las aplicaciones web enriquecidas (RIA), lo que permitió desarrollar aplicaciones Web 2.0 con la amplia funcionalidad de las aplicaciones cliente/servidor utilizando las mismas herramientas y metodologías empleadas para desarrollar aplicaciones cliente/servidor clásicas. Se mejoró sustancialmente la compatibilidad con idiomas y configuraciones regionales, así como la compatibilidad con correo electrónico HTML, la seguridad y el cifrado.

Uniface 9.5 (2011): El lanzamiento de Uniface 9.5 mejoró la integración del producto con la World Wide Web. La introducción de una API de JavaScript, junto con otras mejoras, permite que el procesamiento del lado del cliente ofrezca ventajas en cuanto a rendimiento, integración, funcionalidad y facilidad de uso. La gestión de sesiones se amplió para ofrecer mayor seguridad. Además, el procesamiento de servicios web ahora admite completamente tipos de datos complejos para servicios SOAP y RESTful. También se implementaron mejoras para aquellos clientes con aplicaciones cliente/servidor críticas para el negocio, especialmente en el widget de cuadrícula.

Uniface 9.6 (2012): Uniface 9.6 supuso una importante renovación de las capacidades de la interfaz gráfica de usuario (GUI) cliente-servidor de Uniface. Entre sus funcionalidades se incluían un control HTML5 que aprovechaba las API de JavaScript originalmente diseñadas para la web, un control de pestañas mejorado y actualizaciones en el manejo de imágenes, botones y otras mejoras. El control contenedor de formularios permite la creación de «formularios dentro de formularios», facilitando el desarrollo de experiencias de usuario dinámicas.

Además de las mejoras en la interfaz gráfica de usuario (GUI), Uniface 9.6 también introdujo mejoras en las capacidades de Uniface Web y Servicios Web, incluyendo la posibilidad de cambiar dinámicamente el alcance de las transacciones web, la paginación web y el procesamiento de listas de resultados, así como capacidades mejoradas para WSDL y XML.

Uniface 9.7 (2015): Uniface 9.7 introdujo mejoras significativas en el desarrollo de aplicaciones web, incluyendo extensiones para facilitar el desarrollo y la implementación de aplicaciones móviles basadas en aplicaciones híbridas, y mejoró la capacidad de desarrollo e implementación multicanal de Uniface. Esto se ampliará considerablemente con la versión Uniface 9.7.02 (mayo de 2016), que proporcionará integración con un proveedor de servicios de compilación para permitir que las aplicaciones híbridas se empaqueten para su distribución a través de Google Play y la App Store.

Además de las mejoras para dispositivos móviles y web, Uniface 9.7 ofreció mejoras en la integración y en la relación cliente-servidor (MS Windows 10).

El entorno de desarrollo Uniface (UDE) se modernizó con una nueva apariencia, una pantalla de inicio renovada y una experiencia de usuario visual mejorada. El enfoque adoptado por Uniface para modernizar su UDE se compartió tanto en conferencias para desarrolladores como en su sitio web comunitario Uniface.info (archivado el 16 de agosto de 2018 en Wayback Machine) para asesorar y promover la modernización del cliente-servidor entre su base de clientes existente.

Uniface 9.7 proporciona dos nuevos controladores de base de datos, que permiten la conectividad con PostgreSQL y SAP Hana .

Uniface 10 (2015): Uniface 10 ofreció un entorno de desarrollo rediseñado basado en los conceptos fundamentales de los Entornos de Desarrollo Integrados (IDE). La versión inicial, concebida como una versión preliminar o para usuarios pioneros, mostró un cambio significativo, pasando de un estilo de desarrollo propietario a una implementación altamente productiva de un desarrollo estándar de la industria, lo que permitió el desarrollo de aplicaciones web.

En mayo de 2015, se lanzó la primera edición de Uniface 10 para que los usuarios pioneros pudieran probar y desarrollar aplicaciones web. La edición empresarial completa de Uniface 10 se lanzó en septiembre de 2016, ofreciendo desarrollo móvil y cliente-servidor, así como una ruta de migración para que la base de clientes existente pudiera trasladar sus aplicaciones a Uniface 10.

Rocket Uniface 10.4 (2021) utiliza Sentinel License Manager, que permite a los usuarios gestionar mejor sus licencias. Incluye mejoras en Rocket Uniface Router Monitor, API para TLS y actualizaciones del repositorio para el IDE. Es un entorno de desarrollo de 64 bits, actualizado a Tomcat 9. Las bibliotecas OpenSSL y CURL se han actualizado y el ejecutable OpenSSL ahora se incluye con Uniface en Windows. Además, se ha añadido un nuevo conector SLE 2.0 para SQLite.

Referencias

  • Gartner: Perfil de la empresa Uniface
  • Sitio web oficialEdita esto en Wikidata