Articulo de referencia

Lenguaje empresarial avanzado OpenEdge

OpenEdge Advanced Business Language , o OpenEdge ABL para abreviar, es un lenguaje de desarrollo de aplicaciones empresariales creado y mantenido por Progress Software Corporati...

OpenEdge Advanced Business Language , o OpenEdge ABL para abreviar, es un lenguaje de desarrollo de aplicaciones empresariales creado y mantenido por Progress Software Corporation . Generalmente clasificado como un lenguaje de programación de cuarta generación , utiliza una sintaxis similar al inglés para simplificar el desarrollo de software. [ 1 ] El lenguaje se llamaba PROGRESS o Progress 4GL hasta la versión 9, pero en 2006, PSC cambió el nombre a OpenEdge Advanced Business Language (OpenEdge ABL), con el fin de superar la percepción generalizada en la industria de que los lenguajes de cuarta generación eran menos capaces que otros lenguajes. [ 2 ]

OpenEdge ABL ayuda a los desarrolladores a crear aplicaciones utilizando opcionalmente su propia base de datos relacional integrada y herramientas de programación . Estas aplicaciones son portátiles entre sistemas informáticos y permiten acceder a diversas fuentes de datos populares sin necesidad de conocer los métodos de acceso a datos subyacentes . Esto significa que el usuario final de estos productos puede desconocer la arquitectura subyacente.

Al combinar un lenguaje de cuarta generación y una base de datos relacional, OpenEdge ABL permite el uso del modelo de desarrollo rápido de aplicaciones (RAD) para el desarrollo de software.

Historia

El Progress 4GL original fue diseñado en 1981 como un lenguaje independiente de la arquitectura y un sistema de base de datos integrado que podía ser utilizado por personas sin conocimientos técnicos para desarrollar aplicaciones empresariales, incluso por personas sin formación en informática pero con experiencia en su sector. En aquel entonces, las aplicaciones empresariales solían escribirse en COBOL (para máquinas como los mainframes corporativos de IBM ) y, en ocasiones, en C (para minicomputadoras departamentales con el sistema operativo UNIX). Con la popularización del IBM PC, surgió la necesidad de software empresarial compatible con este y otros ordenadores económicos. El sistema Progress se creó para su uso tanto en ordenadores IBM PC con DOS como en diversos ordenadores compatibles con UNIX y sistemas operativos para minicomputadoras , como OpenVMS .

Sintaxis y semántica

Progress ABL es un lenguaje de programación fuertemente tipado, de enlace tardío y similar al inglés . Aunque inicialmente se diseñó como un lenguaje procedimental, a partir de la versión 10.1 se mejoró con elementos de gramática orientada a objetos , que pueden combinarse con el estilo procedimental original. Un bloque de código puede tener un ámbito de transacción asociado, en cuyo caso los cambios en la base de datos se confirmarán al finalizar la transacción. Un error dentro de dicho bloque deshará estos cambios. El programador puede modificar estos valores predeterminados.

Los programas sencillos se ejecutan sin interfaz gráfica de usuario, pero existe sintaxis para crear una mediante programación, o los programadores pueden utilizar las herramientas proporcionadas para construirla.

Ejemplos

Hola Mundo

El siguiente código ABL crea una ventana con el texto "¡Hola, mundo!" y un botón etiquetado como "Aceptar".

DEFINIR VARIABLE w COMO MANEJADOR SIN DESHACER .CREAR VENTANA w ASIGNAR ANCHO = 50 ALTO = 5 ÁREA-MENSAJE = FALSO ÁREA-ESTADO = FALSO .VENTANA-ACTUAL = w .DEFINIR BOTÓN btnOK ETIQUETA "OK" TAMAÑO 12 POR 1.2 . FORMULARIO "¡Hola Mundo!" VISUALIZACIÓN COMO TEXTO EN COL 20 FILA 2 btnOK EN COL 20 FILA 4 CON MARCO f TAMAÑO 50 POR 5 SIN CAJA TRIPLE .VIEW FRAME f . ENABLE btnOK WITH FRAME f . WAIT-FOR "CHOOSE" OF btnOK . DELETE OBJECT w .

Se puede utilizar un cuadro de mensaje para lograr el mismo efecto:

MENSAJE "¡Hola mundo!" VER COMO CUADRO DE ALERTA BOTONES DE INFORMACIÓN Aceptar .

El INFOparámetro controla los iconos de los mensajes y puede reemplazarse por ERRORo WARNINGpara obtener diferentes apariencias.

El programa más básico de "Hola, mundo" es:

MOSTRAR "Hola" .

SELECTEquivalente SQL

La sentencia SQL :

SELECCIONAR * DE cliente ;

(junto con los procedimientos de conexión y visualización del idioma elegido) se puede expresar en Progress / ABL como:

PARA CADA cliente SIN BLOQUEO : MOSTRAR cliente . FIN .

UPDATEEquivalente SQL

La sentencia SQL:

ACTUALIZAR cliente ESTABLECER vendedor = 'Fred' DONDE custno = 14 ;

(de nuevo, junto con la conexión de idioma y los procedimientos de visualización elegidos) se puede expresar en Progress / ABL como:

PARA CADA cliente DONDE cliente.custno = 14 BLOQUEO EXCLUSIVO : ASIGNAR cliente.salesman = ' Fred ' . FIN .

(Se han hecho algunas suposiciones sobre la indexación, el bloqueo y el alcance de las transacciones para mantener este ejemplo simple).

El acceso a los datos en ABL se basa en registros, a diferencia del procesamiento basado en conjuntos de resultados que se encuentra en los lenguajes SQL tradicionales. Mientras que las operaciones SQL suelen actuar sobre conjuntos de registros, ABL procesa un registro a la vez, de forma similar a como se utiliza un cursor en SQL.

El procesamiento basado en registros proporciona un modelo de bloqueo detallado, que permite al desarrollador aplicar diferentes niveles de bloqueo (por ejemplo, BLOQUEO EXCLUSIVO, BLOQUEO COMPARTIDO o SIN BLOQUEO) al acceder a los registros.

Este enfoque puede ofrecer un uso de memoria predecible, especialmente en entornos que utilizan conexiones de memoria compartida, donde la aplicación y la base de datos residen en el mismo host. Sin embargo, en implementaciones cliente-servidor (en red), cada registro o bloque de registros recuperado generalmente implica un viaje de ida y vuelta a la red. Por ejemplo, con un tamaño de precarga predeterminado de 50 registros y una latencia de red de 50 ms, recuperar 1.000.000 de registros puede resultar en una latencia de hasta 1.000 segundos. Esto ilustra una posible desventaja del acceso registro por registro en entornos de alta latencia.

Áreas de aplicación

Este lenguaje se utiliza en una amplia variedad de áreas de aplicación; algunos ejemplos son:

  • Originación de hipotecas y préstamos para automóviles en bancos estadounidenses
  • Sistemas de reserva de coches de alquiler
  • Sistema ERP de fabricación
  • ERP de distribución mayorista
  • Sistemas de almacén
  • Sistemas de transporte
  • Despacho de personal de servicios comerciales
  • Sistemas de tarjetas de seguridad
  • Sistemas de juego (piensa en Las Vegas, no en vídeo)

OpenEdge se puede utilizar para: [ 3 ]

  • Interfaz gráfica de usuario (GUI) de Microsoft Windows
  • Programación web (Unix y Windows)
  • CHUI (Interfaz de usuario de caracteres) (Unix y Windows)
  • Programación de servidores de aplicaciones JSON y XML (Unix y Windows)
  • así como la programación de procesos en segundo plano (Unix y Windows).

Notas

  1. Campbell, John, Programmer's Progress, una guía del lenguaje Progress. White Star Software, 1991
  2. Salvador Vinals, Introducción al lenguaje empresarial avanzado OpenEdge (ABL), documento técnico de PSC, 2007
  3. "Casos de uso de Progress OpenEdge 2024" . www.trustradius.com . 26 de enero de 2024. Consultado el 26 de junio de 2024 .

Referencias

  • Sadd, J. Desarrollo de OpenEdge: Manual de Progress 4GL , Progress Software Corporation, ISBN 0-923562-04-4, ISBN 978-0-923562-04-5
  • Kassabgi, G. Edición especial  : Usando el progreso , Que Publishing, ISBN 0-7897-0493-5
  • Sitio web oficial
  • Comunidad OpenEdge
  • Centro de recursos OpenEdge
  • Novedades de OpenEdge
  • Primeros pasos con progress-4gl