Articulo de referencia

EGL (lenguaje de programación)

(Enterprise Generation Language)"},"logo":{"wt":""},"paradigm":{"wt":""},"year":{"wt":""},"designer":{"wt":""},"developer":{"wt":"[[IBM]]"},"latest_release_version":{"wt":""},"l...

EGL (Enterprise Generation Language), desarrollado originalmente por IBM y ahora disponible como el proyecto de código abierto EDT (EGL Development Tools) [ 1 ] bajo la Licencia Pública de Eclipse (EPL), es una tecnología de programación diseñada para afrontar los desafíos del desarrollo de aplicaciones multiplataforma modernas al proporcionar un lenguaje y un modelo de programación comunes en diferentes lenguajes, marcos y plataformas de ejecución.

Descripción general

El lenguaje toma prestados conceptos familiares para cualquiera que utilice lenguajes de tipado estático como Java , COBOL , C , etc. Sin embargo, incorpora el concepto de estereotipo del Lenguaje Unificado de Modelado (UML), que no suele encontrarse en lenguajes de programación de tipado estático. En resumen, EGL es un lenguaje de desarrollo de aplicaciones universal de alto nivel.

EGL tiene una sintaxis similar a la de otros lenguajes comunes, por lo que puede ser aprendido por desarrolladores de aplicaciones con experiencia previa en programación similar. Las abstracciones de desarrollo de aplicaciones EGL protegen a los programadores de las interfaces técnicas de los sistemas y el middleware, permitiéndoles centrarse en la creación de funcionalidades de negocio. Las aplicaciones y los servicios EGL se escriben, prueban y depuran a nivel de código fuente EGL, y una vez que se han probado satisfactoriamente sus funcionalidades, se pueden compilar a código COBOL, Java o JavaScript para admitir la implementación de aplicaciones de negocio que pueden ejecutarse en cualquiera de los siguientes entornos:

Ejemplos de código

Programa

Una parte de programa EGL es una parte lógica generable con un único punto de entrada. Cada parte de programa contiene una función `main()`, que representa la lógica que se ejecuta al inicio del programa. Un programa puede incluir otras funciones y acceder a funciones externas. La función `main()` puede invocar dichas funciones. Las funciones de un programa se componen de un conjunto de sentencias, variables y constantes EGL.

Programa Hola Mundoconst GREETING string = " Hola , " ;función principal ()miNombre cadena = " John " ;decirHola ( miNombre ) ;finfunción decirHola ( cadena de nombre en )SysLib.writeStdOut ( GREETING + name + " ! " ) ;finfin

Registro

Una parte de registro EGL define un conjunto de elementos de datos. En este ejemplo, se define un registro con el nombre CustomerRecord con 6 campos.

Registro CustomerRecord tipo BasicRecord customerNumber INT ; customerName STRING ; customerAddr1 STRING ; customerAddr2 STRING ; customerAddr3 STRING ; customerBalance MONEY ; fin

EGL dispone de un tipo de registro especializado llamado SQLRecord que se utiliza para intercambiar datos con una base de datos relacional.

Registro Empleado tipo sqlRecord { tableNames =[["Empleado"]], keyItems =[EMPNO]} EMPNUMBER string{ column = "EMPNO", maxLen = 6}; cadena FIRSTNME{ sqlVariableLen = sí, maxLen = 12}; MIDINIT cadena{ isSqlNullable = sí, maxLen = 1}; APELLIDO cadena{ sqlVariableLen = sí, maxLen = 15}; DEPT string{ column = "WORKDEPT", isSqlNullable = yes, maxLen = 3}; PHONENO string{ isSqlNullable = yes, maxLen = 4}; FECHA DE CONTRATACIÓN { isSqlNullable = sí }; fin 
  • En este ejemplo, el registro Empleado está vinculado a una tabla (o vista) llamada Empleado .

Servicio

Una parte de servicio EGL contiene funciones públicas a las que se puede acceder desde otras aplicaciones o sistemas. En este ejemplo, se define un servicio con dos funciones.

paquete com . miempresa . servicios ;Servicio de empleadosLa función getEmployees () devuelve ( Employee [])registros Empleado [ 0 ] ; // define un array vacío de registrosobtener registros ; // recuperar registros de la base de datosdevolver ( registros ) ; // devolver los registros finfunción addEmployee ( emp Empleado en ) devuelve ( booleano )intentaragregar remp ;devolver ( verdadero ) ;onException ( ex AnyException )devolver ( falso ) ;finfinfin
  • En EGL, el código se organiza en paquetes (como en Java (lenguaje de programación) ).
  • La primera función, getEmployees , devuelve una matriz de registros que se obtiene a partir de los registros de una base de datos.
  • La segunda función, addEmployee , agrega un nuevo registro a la base de datos y devuelve verdadero o falso dependiendo de si el registro se agregó correctamente.

RUIHandler

El componente principal de una aplicación Rich UI es un controlador Rich UI. Estos controladores se generan en JavaScript.

paquete com . mycompany . ui ;importar com.mycompany.services.Employee ;import com . mycompany . services . EmployeeService ;import dojo . widgets . DojoGrid ;import dojo . widgets . DojoGridColumn ;manejador EmployeeView tipo RUIhandler { initialUI = [ cuadrícula ],onConstructionFunction = inicio ,cssFile = "main.css" }cuadrícula DojoGrid { comportamientos = [ ], comportamientos de encabezado = [ ], columnas = [nueva DojoGridColumn { displayName = "Nombre" , name = "FIRSTNAME" },nueva DojoGridColumn { displayName = "Apellido" , name = "APELLIDO" },nueva columna de cuadrícula de Dojo { displayName = "Salario" , name = "SALARIO" }] };función inicio ()svc EmployeeService { };llamar a svc.getEmployees ( ) devolviendo a displayEmployees ;finfunción mostrarEmpleados ( retResult Empleado [ ] en )cuadrícula.datos = retResult como cualquier [ ] ;finfin

Web 2.0 con EGL

En diciembre de 2008, IBM presentó EGL Rich UI, una nueva tecnología para simplificar la creación de aplicaciones web enriquecidas al estilo Web 2.0 . Esta tecnología simplifica el desarrollo al ocultar al desarrollador las complejidades de Ajax , JavaScript , REST y SOAP , lo que le permite centrarse en los requisitos del negocio y no en las tecnologías subyacentes.

Productos comerciales

Las herramientas de programación EGL están disponibles como un producto comercial basado en Eclipse [ 2 ] , Rational Business Developer y también en la edición EGL de Rational Developer para System z .

EGL es un lenguaje objetivo para la modernización de aplicaciones heredadas debido a la afinidad semántica del lenguaje con los lenguajes procedimentales y los lenguajes heredados de cuarta generación :

Semantic Designs [ 3 ] ofrece herramientas para buscar en grandes bases de código EGL, comparar archivos EGL individuales para detectar cambios y detectar código duplicado.

Referencias

  1. EDT (Herramientas de desarrollo de EGL)
  2. Eclipse
  3. "Diseños semánticos" . Archivado del original el 16 de julio de 2011. Consultado el 13 de agosto de 2010 .

Lecturas adicionales

  • Web empresarial 2.0 con EGL, ISBN 978-1-58347-091-6.
  • Desarrollo de aplicaciones Web 2.0 con EGL para IBM i, ISBN 978-1-58347-089-3.
  • Sitio web de la comunidad EGL Cafe
  • Página del producto IBM Rational Business Developer
  • Centros de información para desarrolladores de IBM Rational Business
  • Proyecto de herramientas de desarrollo Eclipse EGL (EDT) : una implementación abierta en Eclipse.