CAP 메시지를 작성한 다음 Intelligent Operations Center의 WebSphere Message Broker 인스턴스에 공개하도록 Cúram 이벤트 어댑터에서 호출할 수 있는 세 가지 API 메소드가 있습니다.
SimplePublisher 인터페이스를 사용하면 여러 값이 기본값으로 채워진 CAP 메시지를 공개할 수 있습니다. 이 메소드는 SimpleHeader의 값을 CAPHeader의 기본값으로 지정합니다. 그러면 CAPHeader는 curam.eventadaptor.publishers.intf.CAPPublisherIntf.publish 메소드의 매개변수로 전달됩니다.
SimpleHeader를 사용하여 CAP 메시지의 일부 값을 설정할 수 있습니다. 설정할 수 있는 값은 다음과 같습니다.
나머지는 기본값으로 환경 변수(코드 테이블에 정의됨)에서 설정됩니다.
값 이름 | 기본값 |
---|---|
ID | 임의의 값 |
카테고리 | "이벤트" |
코드 | "기타" |
확실성 | "관찰됨" |
메시지 유형 | "경보" |
범위 | "공용" |
심각도 | "중간" |
상태 | "실제" |
긴급성 | "알 수 없음" |
아래의 코드 스니펫은 SimplePublisherIntf 사용 방법에 대해 설명합니다.
@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 인터페이스를 사용하면 CAPHeader 매개변수에 전달된 값으로 모든 값이 채워진 CAP 메시지를 공개할 수 있습니다.
이 메소드는 CAPHeader의 유효성을 검증합니다. 그런 다음 capXMLBuilder.convertToDocument()를 사용하여 CAP XML 문서를 빌드하는 데 헤더의 컨텐츠를 사용합니다. 이 변환의 결과는 curam.eventadaptor.publishers.intf.XMLPublisherIntf.publish 메소드에 매개변수로 전달됩니다.
아래의 코드 스니펫은 CAPPublisherIntf 사용 방법에 대해 설명합니다.
@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 인터페이스를 사용하여 문서 매개변수로 전달된 XML 문서로 SOAP 메시지를 공개할 수 있습니다. XML은 사용자 정의되므로 공개 API를 최대한 제어할 수 있습니다. 이 메소드는 이벤트 어댑터가 CAP 메시지와 작동하지 않는 외부 서비스와 상호작용하거나 사용자 정의하여 작성된 CAP 메시지를 선호하는 경우 사용합니다.
외부 이벤트 유형을 사용하는 경우 XML의 유효성을 검증한 다음 문서를 웹 서비스 엔드포인트에 공개합니다. 이벤트 유형을 사용하지 않는 경우 문서를 공개하지 않습니다.
아래의 코드 스니펫은 XMLPublisherIntf 사용 방법에 대해 설명합니다.
@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);
}