공개의 메시지 컨텐츠 필터링

등록한 토픽에서 모든 메시지를 수신하는 대신 이용 애플리케이션은 XML 경로(XPath) 선택기를 사용하여 각 메시지의 컨텐츠를 기반으로 메시지를 필터링할 수 있습니다. . 이 컨텐츠 기반 등록은 수신하려는 정보 유형 정의에 대해 더 큰 융통성을 제공하고 애플리케이션은 자체 필터링을 처리할 필요가 없습니다. 성능은 관련되지 않은 메시지가 서버에서 애플리케이션으로 불필요하게 전송되지 않기 때문에 향상됩니다.

이 태스크 정보

WS-Notification 공개 및 등록 메시징 모델은 토픽을 기반으로 합니다. 각 공개는 고정된 토픽 세트 중 하나에 속하는 것으로 분류됩니다. 공개자는 각 공개에 토픽 이름 레이블을 표시하고 이용자는 특정 토픽의 모든 공개에 등록합니다. 예를 들어, 주식 거래 알림 시스템은 다음과 같이 각 공개에 대한 토픽을 정의할 수도 있습니다. 공개자가 적절한 문제에 대한 레이블이 토픽 이름으로 표시되는 정보를 게시하고 등록자는 일부 문제에 대한 정보에 등록합니다.

XPath 선택기에서 메시지 본문의 XML 메시지 컨텐츠에서 평가되는 부울 표현식을 사용하여 지정된 토픽에 대한 메시지를 필터링할 수 있습니다. 예를 들어, 주식 거래를 위한 토픽 기반 공개 및 등록 시스템의 등록자는 XPath 선택기를 사용하여 동시에 세 개 메시지 속성에 대한 제한조건을 지정할 수 있습니다.
  • 문제 이름
  • 가격
  • 주식 규모
결과 부울 명령문은 다음과 같습니다.
(issue="IBM") and (price<120) and (volume>1000)

XPath(XML Path) 언어, 버전 1.0을 사용하여 등록 애플리케이션에서 XPath 1.0 메시지 컨텐츠 필터를 코딩합니다.

참고: 등록자 애플리케이션이 메시지 컨텐츠 필터링을 사용하고 XPath 버전 1.0 SelectorDomain을 지정하도록 코딩되는 경우 JMS TextMessage 또는 BytesMessage 유형의 다른 WS-Notification 제공자의 공개를 필터링할 수도 있습니다. 이러한 JMS 메시지 유형에 대한 자세한 정보는 서비스 통합 버스에 대한 입력 또는 종료점으로 WS-Notification에 대한 토폴로지의 내용을 참조하십시오.

XPath 선택기를 사용하여 공개 메시지 컨텐츠를 필터링하려면 다음 단계를 완료하십시오.

프로시저

  1. WS-Notification 이용자를 등록하는 새 애플리케이션을 작성하십시오.
  2. 등록 애플리케이션에서 XPath 메시지 컨텐츠 필터를 코딩하십시오. 이 작업 수행을 위한 코드 예는 예: WS-Notification 이용자 등록의 내용을 참조하십시오. 메시지 컨텐츠 필터 사용 예는 이 태스크 끝의 예를 참조하십시오.
  3. 필터가 유효하지 않은 경우에 대한 오류 처리를 코딩하십시오.
  4. 애플리케이션을 호출하십시오.

이 XML 코드 예는 XPath 선택기를 사용한 메시지 컨텐츠 필터링을 보여줍니다. 이 예에서는 NotificationConsumer 애플리케이션으로 표시되는 비즈니스가 $1,000,000가 넘는 자금 이체에 대한 알림을 받으려고 합니다. 모니터링 애플리케이션은 다음 WS-Notification 등록 메시지에서 유효한 XPath 버전 1.0 메시지 컨텐츠 필터를 지정하여 NotificationConsumer 대신 등록합니다.

<wsnt:Subscribe>
  <wsnt:ConsumerReference>
    wsa:EndpointReference
  </wsnt:ConsumerReference>
  <wsnt:Filter>
    [ <wsnt:TopicExpression Dialect="xsd:anyURI"> 
        {any} ?
      </wsnt:TopicExpression> |
      <wsnt:ProducerProperties Dialect="xsd:anyURI"> 
        {any} ?
      </wsnt:ProducerProperties> |
      <wsnt:MessageContent Dialect="xsd:anyURI"> 
        /bankTransfer[value %gt; 1,000,000]
      </wsnt:MessageContent> |
      {any} *
    ] *
  </wsnt:Filter> ?
  <wsnt:InitialTerminationTime> 
    [xsd:dateTime | xsd:duration]
  </wsnt:InitialTerminationTime> ?
  <wsnt:SubscriptionPolicy>
    [ <wsnt:UseRaw/> |
      {any}
    ] *
  </wsnt:SubscriptionPolicy> ?
  {any}*
</wsnt:Subscribe>

WS-Notification 서비스는 등록과 해당 필터를 저장합니다.

그런 다음 다른 WS-Notification 애플리케이션이 메시지 본문에 다음 정보가 포함된 알림을 공개합니다.

<bankTransfer origin="123456 87654321" target="224466 88664422">
  <originName>IBM Corporation</originName>
  <targetName>Matt Roberts</targetName>
  <date>02/02/2006</date>
  <value currency="USD">100,000,000</value>
</bankTransfer>

애플리케이션 서버의 WS-Notification 서비스는 이전 등록에 대한 이 공개의 일치 여부를 비교하고 등록에 지정된 이용자에게 알림을 전달합니다.


주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjwsn_task_adev_xpath
파일 이름:tjwsn_task_adev_xpath.html