Interfaces EGL

Las interfaces EGL permiten acceder a un servicio EGL, a un servicio Web (que puede haberse escrito en EGL) o a código Java.

La interfaz es un componente EGL que incluye un conjunto de descripciones de función. Como se muestra en el ejemplo siguiente, cada descripción de función tiene un punto y coma (;) final y sólo incluye un nombre de función, parámetros y el tipo de retorno:
   Interface HelloWorld type JavaObject
     {javaName = "HelloWorld", 
      packageName = "com.ibm.examples.helloWorld"}
     
     function sayHello(name String)
					  	returns (String);
   end
En lugar de utilizar un componente de interfaz directamente en el código, se crea una variable que se basa en dicho componente. Durante la ejecución, la variable hace referencia a uno de estos elementos:
Puede utilizar las interfaces para las siguientes finalidades:
Para servicios
Puede utilizar una interfaz de tipo BasicInterface para definir la finalidad de un servicio aún no escrito o para suministrar acceso a un servicio existente:
  • Puede utilizar interfaces para facilitar la creación de la arquitectura de los servicios de la organización.

    Puede crear una interfaz que describa las funciones que desea codificar en un servicio EGL. Una vez terminada la interfaz, usted u otros usuarios pueden codificar el servicio, que se dice que implementa la interfaz. El significado principal es que el servicio contiene todas las funciones descritas en la interfaz. La interfaz proporciona un tipo de contrato que el servicio debe satisfacer.

    Esta utilización de las interfaces ofrece las siguientes ventajas:
    • Ayuda a los usuarios de la organización a pensar claramente acerca de las operaciones que son necesarias en un servicio antes de iniciar el desarrollo de éste
    • Permite a los desarrolladores finalizar las aplicaciones cliente mientras el código del servicio se está desarrollando, como cuando el código cliente interactúa con las variables basadas en componentes de interfaz, no en componentes de servicio

    Un servicio puede implementar varias interfaces, y varios servicios pueden implementar la misma interfaz.

  • Las interfaces permiten los desarrolladores acceder a los servicios de la organización, al tiempo que se se les impide conocer la implementación.

    El efecto de declarar una variable de un componente de interfaz sobre el entorno de ejecución es el mismo que el de declarar una variable del componente de servicio relacionado, pero el uso de la interfaz evita la necesidad de desvelar la lógica del servicio. Conservar la lógica alejada de terceros puede ser adecuado por razones de competencia (puede que desee ocultar el código fuente a los desarrolladores externos a la organización) o de reducción de la complejidad (puede que desee que los desarrolladores, sean o no de la organización, se centren en las funciones suministradas por el servicio en lugar de hacerlo en los detalles de la implementación).

  • Las interfaces permiten acceder a un servicio Web independientemente del idioma o ubicación de la implementación del servicio.

    El acceso a un servicio Web creado fuera de la organización requiere que el usuario tenga la definición WSDL (Web Service Description Language) específica del servicio, que detalla cómo acceder al servicio.

    La definición WSDL se utiliza como entrada al asistente WSDL de EGL, que crea un componente de interfaz específico del servicio que será la base de una variable en el código.

Al acceder a un servicio por medio de una interfaz, ésta debe estar enlazada a la ubicación en la que reside la implementación del servicio. Este enlace incluye detalles relativos al protocolo utilizado para acceder a la implementación.

La situación habitual es especificar la información de enlace en una variable declarada en un tipo especial de biblioteca EGL denominada biblioteca de enlace de servicio, que se describe en la sección Componente de biblioteca de tipo ServiceBindingLibrary. Otra posibilidad es que una interfaz reciba el enlace en una sentencia de asignación, como es posible cuando la interfaz o servicio del lado derecho de la sentencia de asignación se declara en una biblioteca de enlace de servicios o cuando dicha interfaz o servicio ha recibido un enlace en una sentencia de asignación anterior. Una tercera posibilidad es que una interfaz que actúa como parámetro de función reciba el enlace recibiendo un argumento que ya tiene un enlace.

Para código Java

Puede utilizar una interfaz EGL de tipo JavaObject para acceder a algunas o a todas las funciones disponibles en una interfaz o clase Java. En esta utilización, una interfaz EGL proporciona una vista del código Java.

Este tipo de utilización de interfaces EGL ofrece las siguientes ventajas:
  • La codificación y el mantenimiento de la lógica EGL es más fácil, debido a que la complejidad del código Java queda ampliamente oculta en la implementación Java subyacente
  • Aumenta el número de programadores que pueden acceder al código Java desde EGL

Una estrategia eficiente para la organización consiste en solicitar a un desarrollador experto tanto en EGL como en Java que cree componentes de interfaz para que los utilicen otros desarrolladores de EGL. Para obtener una lista de los componentes de interfaz suministrados para uso general, consulte la sección Interfaces de tipo JavaObject.

EGL ofrece un amplio conjunto de interfaces que permiten a los desarrolladores acceder a controles de interfaz de usuario JSF durante la ejecución; por ejemplo, para cambiar el color de un recuadro de texto en respuesta a la entrada del usuario. Para obtener una visón general de esa posibilidad, consulte la sección Árbol de componentes JSF.

Al interactuar con el árbol de componentes JSF, puede pasar por alto el hecho de que (a partir de EGL versión 6.0.1), la tecnología de interfaces de EGL no permite crear instancias de objeto Java desde el interior del código EGL. Para obtener detalles sobre el particular, consulte la sección Creación de instancias e interfaces EGL de tipo JavaObject.

Las interfaces EGL suministran otras dos capacidades especificas de Java en EGL:
Funciones de acceso Java
Las funciones de acceso Java son funciones de sistema EGL que permiten al código Java generado acceder a objetos y clases Java nativos; concretamente, para acceder a los métodos, constructores y campos de tipo público del código nativo.
Envoltura Java EGL
Una envoltura Java EGL es un conjunto de clases Java generadas automáticamente que actúan como interfaz entre los siguientes ejecutables:
  • Por un lado, un servlet o un programa Java escrito manualmente
  • Y por otro lado, un bean de sesión EJB o programa generado por EGL

Conceptos relacionados
Creación de instancias e interfaces EGL de tipo JavaObject
Árbol de componentes JSF
Componente de biblioteca de tipo ServiceBindingLibrary

Tareas relacionadas
Crear un componente de interfaz de EGL
Crear un componente de servicio EGL
Crear un componente de interfaz a partir de un componente de servicio

Consulta relacionada
Prácticas recomendadas para servicios e interfaces relacionadas en EGL
Biblioteca EGL ServiceLib
Componente de interfaz en formato fuente EGL

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.