Desarrollo de componentes de servicio

Desarrolle componentes de servicio para proporcionar lógica reutilizable a varias aplicaciones en el servidor.

Antes de empezar

En esta tarea se da por supuesto que ya se ha desarrollado e identificado el proceso que es útil para varios módulos.

Por qué y cuándo realizar esta tarea

Varios módulos pueden utilizar un componente de servicio. Al exportar un componente de servicio, queda a disposición de otros módulos que hagan referencia al componente de servicio mediante una interfaz. En esta tarea se describe cómo construir el componente de servicio para que otros modelos puedan utilizarlo.
Nota: Un solo componente de servicio puede contener varias interfaces.

Pasos para realizar esta tarea

  1. Defina el objeto de datos para mover datos entre el llamante y el componente de servicio.

    El objeto de datos y su tipo forman parte de la interfaz entre los llamantes y el componente de servicio.

  2. Defina una interfaz que los llamantes utilizarán para hacer referencia al componente de servicio.

    Esta definición de interfaz indica el componente de servicio y lista los métodos disponibles en el componente de servicio.

  3. Desarrolle la clase que define la implementación.
    • Si el componente es de larga ejecución (o asíncrono), siga en el paso 4.
    • Si el componente no es de larga ejecución (o síncrono), siga en el paso 5.
  4. Desarrolle una implementación asíncrona.
    Importante: Un componente asíncrono no puede tener una propiedad joinsTransaction establecida en el valor true.
    1. Defina la interfaz que representa el componente de servicio síncrono.
    2. Defina la implementación del componente de servicio.
    3. Continúe en el paso 6.
  5. Desarrolle una implementación síncrona.
    1. Defina la interfaz que representa el componente de servicio síncrono.
    2. Defina la implementación del componente de servicio.
  6. Guarde las interfaces e implementaciones de componentes con una extensión .java.
  7. Empaquete el módulo de servicio y los recursos necesarios en un archivo JAR.

    Consulte "Instalación de un módulo en un servidor de producción" en este centro de información para ver una descripción de los pasos 7 a 9.

  8. Ejecute el mandato serviceDeploy para crear un archivo EAR instalable que contenga la aplicación.
  9. Instale la aplicación en el nodo de servidor.
  10. Opcional: Configure los cables entre los llamantes y el componente de servicio correspondiente, si se llama a un componente de servicio de otro módulo de servicio.

    La sección de "Administración" de este centro de información describe la configuración de los cables.

Ejemplos de desarrollo de componentes

Este ejemplo muestra un componente de servicio síncrono que implementa un único método, CustomerInfo. La primera sección define la interfaz para el componente de servicio que implementa un método denominado getCustomerInfo.
public interface CustomerInfo {
	public Customer getCustomerInfo(String customerID);
}
El siguiente bloque de código implementa el componente de servicio.
public class CustomerInfoImpl implements CustomerInfo {
	public Customer getCustomerInfo(String customerID) {
		Customer cust = new Customer();

		cust.setCustNo(customerID);
		cust.setFirstName("Victor");
		cust.setLastName("Hugo");
		cust.setSymbol("IBM");
		cust.setNumShares(100);
		cust.setPostalCode(10589);
		cust.setErrorMsg("");

		return cust;
	}
}
Este ejemplo desarrolla un componente de servicio asíncrono. La primera sección del código define la interfaz para el componente de servicio que implementa un método denominado getQuote.
public interface StockQuote {

	public float getQuote(String symbol);
}
La sección siguiente es la implementación de la clase asociada con StockQuote.
public class StockQuoteImpl implements StockQuote {
	
	public float getQuote(String symbol) {


	    return 100.0f;
	}
}
Esta sección siguiente del código implementa la interfaz asíncrona, StockQuoteAsync.
public interface StockQuoteAsync {
	
	// respuesta diferida
	public Ticket getQuoteAsync(String symbol);
	public float getQuoteResponse(Ticket ticket, long timeout);

	// devolución de llamada
	public Ticket getQuoteAsync(String symbol, StockQuoteCallback callback);
}
Esta sección es la interfaz, StockQuoteCallback, que define el método onGetQuoteResponse.
public interface StockQuoteCallback {

	public void onGetQuoteResponse(Ticket ticket, float quote);
}

Qué hay que hacer a continuación

Invoque el servicio.

Condiciones de uso |


(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)