Servicekomponenten entwickeln

Entwickeln Sie Servicekomponenten, um wiederverwendbare Logik für mehrere Anwendungen auf Ihrem Server bereitzustellen.

In dieser Task wird vorausgesetzt, dass Sie bereits Verarbeitungsabläufe entwickelt und identifiziert haben, die für mehrere Module hilfreich sind.
Eine Servicekomponente kann von mehreren Modulen verwendet werden. Durch Exportieren wird eine Servicekomponente für andere Module verfügbar gemacht, die über eine Schnittstelle auf die Servicekomponente verweisen. In dieser Task wird beschrieben, wie eine Servicekomponente erstellt wird, die auch von anderen Modulen verwendet werden kann.
Anmerkung: Eine einzige Servicekomponente kann mehrere Schnittstellen enthalten.
  1. Definieren Sie das Datenobjekt zum Verschieben von Daten zwischen dem aufrufenden Element und der Servicekomponente.

    Das Datenobjekt und der dazugehörige Typ sind Teil der Schnittstelle zwischen den aufrufenden Elementen und der Servicekomponente.

  2. Definieren Sie eine Schnittstelle, über die aufrufende Elemente auf die Servicekomponente verweisen können.

    Diese Schnittstellendefinition benennt die Servicekomponente und listet alle in der Servicekomponente verfügbaren Methoden auf.

  3. Entwickeln Sie die Klasse, die die Implementierung definiert.
    • Wenn es um eine Komponente mit langer Laufzeit (asynchrone Komponente) geht, fahren Sie mit dem Schritt 4 fort.
    • Wenn es nicht um eine Komponente mit langer Laufzeit (asynchrone Komponente) geht, fahren Sie mit dem Schritt 5 fort.
  4. Entwickeln Sie eine asynchrone Implementierung.
    Wichtig: In einer asynchronen Komponente darf das Merkmal joinsTransaction nicht auf true gesetzt sein.
    1. Definieren Sie die Schnittstelle, die die synchrone Servicekomponente repräsentiert.
    2. Definieren Sie die Implementierung der Servicekomponente.
    3. Fahren Sie mit Schritt 6 fort.
  5. Entwickeln Sie eine synchrone Implementierung.
    1. Definieren Sie die Schnittstelle, die die synchrone Servicekomponente repräsentiert.
    2. Definieren Sie die Implementierung der Servicekomponente.
  6. Speichern Sie die Komponentenschnittstellen und -implementierungen in Dateien mit der Erweiterung .java.
  7. Packen Sie das Servicemodul und die erforderlichen Ressourcen in eine JAR-Datei.

    In dem Artikel "Modul auf einem Produktionsserver implementieren" in diesem Information Center finden Sie eine Beschreibung der Schritte 7 bis 9.

  8. Führen Sie den Befehl serviceDeploy aus, um eine installierbare EAR-Datei mit der Anwendung zu erstellen.
  9. Installieren Sie die Anwendung auf dem Serverknoten.
  10. Optional: Konfigurieren Sie die Verbindungen zwischen den aufrufenden Elementen und der entsprechenden Servicekomponente, wenn eine Servicekomponente in einem anderen Servicemodul aufgerufen wird.

    Im Abschnitt über "Verwaltung" in diesem Information Center wird das Konfigurieren der Verbindungen beschrieben.

Beispiele für das Entwickeln von Komponenten

Dieses Beispiel zeigt eine synchrone Servicekomponente, die eine einzige Methode (CustomerInfo) implementiert. Im ersten Abschnitt wird die Schnittstelle zu der Servicekomponente definiert, die eine Methode getCustomerInfo implementiert.
public interface CustomerInfo {
	public Customer getCustomerInfo(String customerID);
}
Der folgende Codeabschnitt implementiert die Servicekomponente.
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;
	}
}
In diesem Beispiel wird eine asynchrone Servicekomponente entwickelt. Im ersten Codeabschnitt wird die Schnittstelle zu der Servicekomponente definiert, die eine Methode getQuote implementiert.
public interface StockQuote {

	public float getQuote(String symbol);
}
Der folgende Abschnitt ist die Implementierung der StockQuote zugeordneten Klasse.
public class StockQuoteImpl implements StockQuote {
	
	public float getQuote(String symbol) {


	    return 100.0f;
	}
}
Der nächste Codeabschnitt implementiert die asynchrone Schnittstelle StockQuoteAsync.
public interface StockQuoteAsync {
	
	// Verzögerte Antwort
	public Ticket getQuoteAsync(String symbol);
	public float getQuoteResponse(Ticket ticket, long timeout);

	// Rückruf
	public Ticket getQuoteAsync(String symbol, StockQuoteCallback callback);
}
Dieser Abschnitt ist die Schnittstelle StockQuoteCallback, die die Methode onGetQuoteResponse definiert.
public interface StockQuoteCallback {

	public void onGetQuoteResponse(Ticket ticket, float quote);
}
Rufen Sie den Service auf.

(c) Copyright IBM Corporation 2005, 2006.
Dieses Information Center basiert auf Eclipse-Technologie. (http://www.eclipse.org)