Sviluppo dei componenti del servizio

Sviluppare i componenti del servizio per fornire una logica riutilizzabile a più applicazioni all'interno del server.

Operazioni preliminari

Ciò presuppone che l'elaborazione utile per più moduli sia già stata sviluppata ed identificata.

Perché e quando eseguire questa attività

Più moduli possono utilizzare un componente del servizio. L'esportazione di un componente del servizio lo rende disponibile agli altri moduli che fanno riferimento al componente del servizio mediante un'interfaccia. Questa attività descrive il modo in cui creare il componente del servizio, in modo che possa essere utilizzato da altri moduli.
Nota: Un componente del servizio singolo può contenere più interfacce.

Passi per questa attività

  1. Definire l'oggetto di dati per spostare i dati tra il chiamante e il componente del servizio.

    L'oggetto di dati ed il relativo tipo è parte dell'interfaccia tra i chiamanti e il componente del servizio.

  2. Definire un'interfaccia che i chiamanti utilizzeranno come riferimento al componente del servizio.

    La definizione dell'interfaccia denomina il componente del servizio ed elenca eventuali metodi disponibili all'interno del componente del servizio.

  3. Sviluppare la classe che definisce l'implementazione.
    • Se il componente è long running (o asincrono), continuare con il passo 4.
    • Se il componente non è long running (o sincrono), continuare con il passo 5.
  4. Sviluppo di un'implementazione asincrona.
    Importante: Un'interfaccia del componente asincrono non può disporre di una proprietà joinsTransaction impostata su true.
    1. Definire l'interfaccia che rappresenta il componente del servizio sincrono.
    2. Definire l'implementazione del componente del servizio.
    3. Continuare con il passo 6.
  5. Sviluppo di un'implementazione sincrona.
    1. Definire l'interfaccia che rappresenta il componente del servizio sincrono.
    2. Definire l'implementazione del componente del servizio.
  6. Salvare le interfacce del componente e le implementazioni nei file con un'estensione .java.
  7. Posizionare il modulo del servizio e le risorse necessarie in un file JAR.

    Consultare l'argomento "Distribuzione di un modulo su un server di produzione" all'Infocenter per una descrizione dei passi da 7 a 9.

  8. Eseguire il comando serviceDeploy per creare un file EAR che può essere installato contenente l'applicazione.
  9. Installare l'applicazione sul nodo del server.
  10. Opzionale: Configurare i collegamenti tra i chiamanti e il componente del servizio corrispondente, se si richiama un componente del servizio in un altro modulo del servizio.

    La sezione "Gestione" dell'Infocenter descrive la configurazione dei collegamenti.

Esempi dello sviluppo dei componenti

Esempi dello sviluppo dei componenti

Questo esempio illustra un componente del servizio sincrono che implementa un metodo singolo, CustomerInfo. La prima sezione definisce l'interfaccia al componente del servizio che implementa un metodo denominato getCustomerInfo.
public interface CustomerInfo {
	public Customer getCustomerInfo(String customerID);
}
Il seguente blocco di codice implementa il componente del servizio.
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;
	}
}
Questo esempio sviluppa un componente del servizio asincrono. La prima sezione del codice definisce l'interfaccia sul componente del servizio che implementa un metodo denominato getQuote.
public interface StockQuote {

	public float getQuote(String symbol);
}
La sezione di seguito riportata è l'implementazione della classe associata a StockQuote.
public class StockQuoteImpl implements StockQuote {
	
	public float getQuote(String symbol) {


	    return 100.0f;
	}
}
La sezione di codice di seguito riportata implementa l'interfaccia asincrona StockQuoteAsync.
public interface StockQuoteAsync {
	
	// risposta differita
	public Ticket getQuoteAsync(String symbol);
	public float getQuoteResponse(Ticket ticket, long timeout);

	// callback
	public Ticket getQuoteAsync(String symbol, StockQuoteCallback callback);
}
La sezione di seguito riportata è l'interfaccia StockQuoteCallback, che definisce il metodo onGetQuoteResponse,
public interface StockQuoteCallback {

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

Operazioni successive

Richiamare il servizio.

(c) Copyright IBM Corporation 2005, 2006.
Questo Infocenter è alimentato dalla tecnologia Eclipse (http://www.eclipse.org)