서비스 계층 API 호출

CAP 메시지를 작성한 다음 Intelligent Operations Center의 WebSphere Message Broker 인스턴스에 공개하도록 Cúram 이벤트 어댑터에서 호출할 수 있는 세 가지 API 메소드가 있습니다.

SimplePublisher

curam.eventadaptor.publishers.intf.SimplePublisherIntf.publish(SimpleHeader, EventAdaptorNVPairList, EXTERNALEVENTTYPEEntry)

SimplePublisher 인터페이스를 사용하면 여러 값이 기본값으로 채워진 CAP 메시지를 공개할 수 있습니다. 이 메소드는 SimpleHeader의 값을 CAPHeader의 기본값으로 지정합니다. 그러면 CAPHeader는 curam.eventadaptor.publishers.intf.CAPPublisherIntf.publish 메소드의 매개변수로 전달됩니다.

SimpleHeader를 사용하여 CAP 메시지의 일부 값을 설정할 수 있습니다. 설정할 수 있는 값은 다음과 같습니다.

나머지는 기본값으로 환경 변수(코드 테이블에 정의됨)에서 설정됩니다.

표 1. 기본 CAP 이벤트 값
값 이름 기본값
ID 임의의 값
카테고리 "이벤트"
코드 "기타"
확실성 "관찰됨"
메시지 유형 "경보"
범위 "공용"
심각도 "중간"
상태 "실제"
긴급성 "알 수 없음"

아래의 코드 스니펫은 SimplePublisherIntf 사용 방법에 대해 설명합니다.

그림 1. SimplePublisher 사용
@Inject
private TargetSystemDAO targetSystemDAO;

@Inject
SimplePublisher simplePublisher;

public ClassConstructor(string arg0) {
  super(arg0);
  GuiceWrapper.getInjector().injectMembers(this);
}

public simplePublisherSample() {
  // How to set up the variables that are passed to the publish method
  
  SimpleHeader simpleHeader = new SimpleHeader();
  
  simpleHeader.description = "Sample description";
  simpleHeader.event = "Sample event title";
  simpleHeader.headline = "Sample headline";
  simpleHeader.sender = "Sample sender";
  simpleHeader.onset = header. DateTime.getCurrentDateTime();
  
  EventAdaptorNVPair nvPair1 = new EventAdaptorNVPair();
  nvPair1.name = "parameter1 name";
  nvPair1.value = "parameter1 value";
  
  EventAdaptorNVPair nvPair2 = new EventAdaptorNVPair();
  nvPair2.name = "parameter2 name";
  nvPair2.value = "parameter2 value";
  
  nvPairList.dtls.add(nvPair1);
  nvPairList.dtls.add(nvPair2);
  
  // Call the publish method
  simplePublisher.publish(simpleHeader, nvPairList, EXTERNALEVENTTYPEEntry.EVENTADAPTOR_SAMPLE);
}

CAPPublisher

curam.eventadaptor.publishers.intf.CAPPublisherIntf.publish(CAPHeader, EventAdaptorNVPairList, EXTERNALEVENTTYPEEntry)

CAPPublisher 인터페이스를 사용하면 CAPHeader 매개변수에 전달된 값으로 모든 값이 채워진 CAP 메시지를 공개할 수 있습니다.

이 메소드는 CAPHeader의 유효성을 검증합니다. 그런 다음 capXMLBuilder.convertToDocument()를 사용하여 CAP XML 문서를 빌드하는 데 헤더의 컨텐츠를 사용합니다. 이 변환의 결과는 curam.eventadaptor.publishers.intf.XMLPublisherIntf.publish 메소드에 매개변수로 전달됩니다.

아래의 코드 스니펫은 CAPPublisherIntf 사용 방법에 대해 설명합니다.

그림 2. CAPPublisher 사용
@Inject
private TargetSystemDAO targetSystemDAO;

@Inject
CAPPublisher capPublisher;

public ClassConstructor(string arg0) {
  super(arg0);
  GuiceWrapper.getInjector().injectMembers(this);
}

public capPublisherSample() {
  // How to set up the variables that are passed to the publish method
  
  CAPHeader capHeader = new CAPHeader();
  
  capHeader.description = "Sample description";
  capHeader.event = "Sample event name";
  capHeader.headline = "Sample headline";
  capHeader.identifier = "sampleIdentifier";
  capHeader.sender = "Sample sender";
  capHeader.category = EAALERTINFOCATEGORY.FIRE;
  capHeader.certainty = EAALERTINFOCERTAINTY.LIKELY;
  capHeader.messageType = EAALERTMESSAGETYPE.UPDATE;
  capHeader.onset = DateTime.getCurrentDateTime();
  capHeader.senderName = "the sendername";
  capHeader.scope = EAALERTSCOPE.PRIVATE;
  capHeader.severity = EAALERTINFOSEVERITY.EXTREME;
  capHeader.status = EAALERTSTATUS.TEST;
  capHeader.urgency = EAALERTINFOURGENCY.EXPECTED;
  capHeader.code = EAALERTCODE.EVENT;
  capHeader.webIdentifier = "http://www.curamsoftware.com"; 

  EventAdaptorNVPairList nvPairList = new EventAdaptorNVPairList();

  EventAdaptorNVPair nvPair1 = new EventAdaptorNVPair();
  nvPair1.name = "parameter1 name";
  nvPair1.value = "parameter1 value";

  EventAdaptorNVPair nvPair2 = new EventAdaptorNVPair();
  nvPair2.name = "parameter2 name";
  nvPair2.value = "parameter2 value";

  nvPairList.dtls.add(nvPair1);
  nvPairList.dtls.add(nvPair2);
  
  // Call the publish method
  capPublisher.publish(capHeader, nvPairList, EXTERNALEVENTTYPEEntry.EVENTADAPTOR_SAMPLE);
}

XMLPublisher

curam.eventadaptor.publishers.intf.XMLPublisherImpl.publish(Document, EXTERNALEVENTTYPEEntry)

XMLPublisher 인터페이스를 사용하여 문서 매개변수로 전달된 XML 문서로 SOAP 메시지를 공개할 수 있습니다. XML은 사용자 정의되므로 공개 API를 최대한 제어할 수 있습니다. 이 메소드는 이벤트 어댑터가 CAP 메시지와 작동하지 않는 외부 서비스와 상호작용하거나 사용자 정의하여 작성된 CAP 메시지를 선호하는 경우 사용합니다.

외부 이벤트 유형을 사용하는 경우 XML의 유효성을 검증한 다음 문서를 웹 서비스 엔드포인트에 공개합니다. 이벤트 유형을 사용하지 않는 경우 문서를 공개하지 않습니다.

아래의 코드 스니펫은 XMLPublisherIntf 사용 방법에 대해 설명합니다.

그림 3. XMLPublisher 사용
@Inject
private TargetSystemDAO targetSystemDAO;

@Inject
XMLPublisher xmlPublisher;

public ClassConstructor(string arg0) {
  super(arg0);
  GuiceWrapper.getInjector().injectMembers(this);
}

public xmlPublisherSample(Document document) {
  // Call the publish method
  XmlPublisher.publish(document, EXTERNALEVENTTYPEEntry.EVENTADAPTOR_SAMPLE);
}