서비스 구성요소 개발

서버에 있는 다중 응용프로그램에 재사용 가능한 로직을 제공하도록 서비스 구성요소를 개발하십시오.

시작하기 전에

이 타스크는 다중 모듈에 유용한 처리를 이미 개발 및 식별한 것으로 가정합니다.

이 타스크의 수행 목적 및 시기

다중 모듈이 하나의 서비스 구성요소를 사용할 수 있습니다. 서비스 구성요소를 내보내면 인터페이스를 통해 서비스 구성요소를 참조하는 다른 모듈에서도 사용할 수 있습니다. 이 타스크는 서비스 구성요소를 빌드하여 다른 모듈이 사용할 수 있도록 하는 방법을 설명합니다.
주: 단일 서비스 구성요소에 다중 인터페이스를 포함시킬 수 있습니다.

이 타스크의 단계

  1. 호출자와 서비스 구성요소 간에 데이터를 이동시키기 위한 데이터 오브젝트를 정의하십시오.

    데이터 오브젝트 및 해당 유형은 호출자와 서비스 구성요소 간의 인터페이스의 일부분입니다.

  2. 호출자가 서비스 구성요소를 참조하는 데 사용할 인터페이스를 정의하십시오.

    이 인터페이스 정의는 서비스 구성요소 이름을 지정하고 서비스 구성요소에서 사용할 수 있는 모든 메소드를 나열합니다.

  3. 구현을 정의하는 클래스를 개발하십시오.
    • 구성요소가 장기 실행되는 경우(또는 비동기적 실행) 4단계를 계속 진행하십시오.
    • 구성요소가 장기 실행되지 않는 경우(또는 동기적으로 실행) 5단계를 계속 진행하십시오.
  4. 비동기 구현을 개발하십시오.
    중요사항: 비동기 구성요소 인터페이스에서 joinsTransaction 특성을 true로 설정할 수 없습니다.
    1. 동기 서비스 구성요소를 나타내는 인터페이스를 정의하십시오.
    2. 서비스 구성요소의 구현을 정의하십시오.
    3. 6단계를 계속 진행하십시오.
  5. 동기 구현을 개발하십시오.
    1. 동기 서비스 구성요소를 나타내는 인터페이스를 정의하십시오.
    2. 서비스 구성요소의 구현을 정의하십시오.
  6. 구성요소 인터페이스 및 구현을 .java 확장자를 갖는 파일로 저장하십시오.
  7. 서비스 모듈 및 필수 자원을 JAR 파일로 패키지하십시오.

    이 Information Center의 "프로덕션 서버로 모듈 전개"에서 7 - 9단계의 설명을 참조하십시오.

  8. serviceDeploy 명령을 실행하여 응용프로그램을 포함하는 설치 가능한 EAR 파일을 작성하십시오.
  9. 서버 노드에 응용프로그램을 설치하십시오.
  10. 옵션: 다른 서비스 모듈에 있는 서비스 구성요소를 호출하는 경우 호출자와 해당 서비스 구성요소 간의 연결을 구성하십시오.

    이 Information Center의 "관리" 섹션에 연결 구성 방법이 설명되어 있습니다.

구성요소 개발 예제

구성요소 개발 예제

이 예에서는 단일 메소드인 CustomerInfo를 구현하는 동기 서비스 구성요소를 보여줍니다. 첫 번째 섹션은 getCustomerInfo 메소드를 구현하는 서비스 구성요소에 대한 인터페이스를 정의합니다.
public interface CustomerInfo {
	public Customer getCustomerInfo(String customerID);
}
다음 코드 블록은 서비스 구성요소를 구현합니다.
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;
	}
}
이 예는 비동기 서비스 구성요소를 개발합니다. 코드의 첫 번째 섹션은 getQuote 메소드를 구현하는 서비스 구성요소에 대한 인터페이스를 정의합니다.
public interface StockQuote {

	public float getQuote(String symbol);
}
다음 섹션은 StockQuote와 연관된 클래스의 구현입니다.
public class StockQuoteImpl implements StockQuote {
	
	public float getQuote(String symbol) {


	    return 100.0f;
	}
}
코드의 다음 섹션은 비동기 인터페이스 StockQuoteAsync를 구현합니다.
public interface StockQuoteAsync {
	
	// deferred response
	public Ticket getQuoteAsync(String symbol);
	public float getQuoteResponse(Ticket ticket, long timeout);

	// callback
	public Ticket getQuoteAsync(String symbol, StockQuoteCallback callback);
}
이 섹션은 onGetQuoteResponse 메소드를 정의하는 StockQuoteCallback 인터페이스입니다.
public interface StockQuoteCallback {

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

다음에 수행할 작업

서비스를 호출하십시오.

ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)