WS-Notification 표준의 용어
이 토픽에 정의된 용어는 WS-Notification 스펙이 정의하며 해당 스펙의 모든 공급업체 구현에 공통입니다.
이 정보는 WS-Notification
표준에서 발췌되었으므로 다음 저작권 계약을 조건으로 합니다.
Copyright © OASIS Open 2004-2006. All Rights Reserved.
이 문서 및 번역본은 기타 사용자에게 복사 및 제공될 수 있으며, 해당 문서에 대한 주석이 있거나 설명 또는 해당 구현에 대한 지원이 있는 파생 제품은 위의 저작권 표시 및 해당 단락이 모든 사본과 파생 제품에 포함되는 경우 어떠한 종류의 제한 없이 그 일부 또는 전체를 준비, 복사, 출판 및 배포할 수 있습니다. 그러나 이 문서 자체는 OASIS의 참조 또는 저작권 표시를 제거하는 방식으로 수정할 수 없습니다. 단, OASIS 스펙 개발 용도로 필요한 경우(이 경우, OASIS 지적 재산권 문서에 정의된 저작권 프로시저에 따라야 함)나 해당 문서를 영어 이외의 언어로 번역해야 하는 경우는 예외입니다.
다음 항목은 WS-BaseNotification 버전 1.3 OASIS 표준에서 정의됩니다.
- 상황:
- 상황은 NotificationProducer에 알려지며 써드파티에 대한 잠재적 관심의 발생일 수 있습니다.
- 상황은 자원의 내부 상태 변경이거나 타이머 이벤트와 같은 환경적 상황일 수 있습니다. 또한 뉴스 공급 서비스가 제공한 뉴스의 일부와 같은 외부 이벤트일 수도 있습니다.
- WS-Notification은 상황의 정의를 지정하지 않으며 해당 정의를 설명하는데 사용하는 상황과 알림 간 관계도 정의하지 않습니다.
- 알림:
- 알림은 일부 엔티티가 다른 엔티티와 통신하려는 상황에 대한 정보를 포함하는 상황의 아티팩트입니다.
- 알림은 QName으로 규정된 네임스페이스가 있는 XML 요소와, XML 스키마를 사용하여 정의된 유형으로 표시됩니다.
- 일반적인 사용법 패턴은 해당 상황 종류에 적절한 정보를 포함하는 각 Situation 종류의 알림 유형(보다 정확히, 정의된 XML 요소)을 정의하기 위함입니다. 이 경우, 알림 인스턴스를 Situation(또는 최소 Situation 표시)으로 간주할 수 있습니다.
- 디자이너는 예를 들어, 다른 대상 수신자 등에 예정된 상황의 다른 면을 설명하여 여러 다른 알림 유형을 상황과 연관시키도록 선택할 수 있습니다. 반대로 본질적으로 다른 여러 상황이 동일한 유형의 알림을 발생시킬 수도 있습니다.
- NotificationProducer:
- NotificationProducer는 NotificationProducer 인터페이스와 연관된 메시지 교환을 구현하는 웹 서비스입니다.
- NotificationProducer는 발생한 상황 및 등록이 작성된 요청과 함께 제공된 매개변수에 따라 등록이 등록된 해당 NotificationConsumers의 알림을 생성할 수 있습니다.
- NotificationProducer와 연관된 메시지 교환을 구현하는 웹 서비스는 알림 자체를 직접 생성하거나, 개별 공개자 및/또는 NotificationProducer 엔티티에서 생성한 알림을 재생성하는 NotificationBroker일 수 있습니다.
- 등록 자원의 팩토리입니다.
- NotificationConsumer:
- NotificationConsumer는 WS-Addressing 엔드포인트 참조로 표시되고, 등록의 결과로 NotificationProducer에 의해 생성된 알림을 수신하도록 디자인된 엔드포인트입니다.
- NotificationConsumer는 일반 알림 메시지를 허용하거나 하나 이상의 도메인 중심 알림 유형을 처리할 수도 있습니다.
- 등록:
- 등록은 토픽 및 기타 다양한 선택적 필터 표현식, 관련 정책 및 컨텍스트 정보와 같은 필터링 매개변수를 포함한 NotificationConsumer와 NotificationProducer 사이의 관계를 표시합니다.
- 등록 자원은 등록자가 SubscribeRequest 메시지를 NotificationProducer로 보낼 때 작성됩니다.
- 등록 자원은 등록 자원과 연관된 SubscriptionManager 웹 서비스에 전송되는 메시지로 조작합니다.
- SubscriptionManager
- SubscriptionManager는 SubscriptionManager 인터페이스와 연관된 메시지 교환을 구현하는 엔드포인트 참조 [WS-Addressing]으로 표시되는 엔드포인트입니다.
- SubscriptionManager는 조작 요청자가 관리하는 등록 자원을 조회 및 조작 가능하도록 하는 서비스를 제공합니다.
- SubscriptionManager는 NotificationProducer에 종속적이며 NotificationProducer 서비스 제공자 또는 별도의 서비스 제공자에 의해 구현될 수 있습니다.
- 등록자:
- 등록자는 SubscribeRequest 메시지를 NotificationProducer로 보내는 모든 엔티티입니다.
- 등록자는 알림이 생성되는 NotificationConsumer와 다른 엔티티일 수 있습니다.
다음 항목은 WS-Topics 버전 1.3 OASIS 표준에서 정의됩니다.
- 토픽:
- 토픽은 알림 및 해당 알림 스키마를 카테고리화하는데 사용하는 개념입니다.
- 토픽은 알림을 수신해야 하는 구독 NotificationConsumers(있는 경우)를 판별하는 일치하는 프로세스의 일부로 사용됩니다.
- 알림을 생성하면 공개자가 하나 이상의 토픽과 이를 연관시킬 수 있습니다. 상황([WS-BaseNotification]에서 정의)과 토픽과의 관계는 WS-Notification이 지정하지 않지만 토픽 네임스페이스의 디자이너가 지정할 수 있습니다.
- 기타 일부 공개/등록 모델의 동의어는 제목입니다.
- 토픽 영역:
- 많은 토픽 트리가 관리 용도로 인해 동일한 네임스페이스로 그룹화됩니다.
- 토픽 트리:
- 토픽의 계층 구조 그룹화
- 토픽 설정:
- NotificationProducer가 지원하는 토픽의 콜렉션입니다.
다음 항목은 WS-BrokeredNotification 버전 1.3 OASIS 표준에서 정의됩니다.
- 공개자:
- 공개자는 알림 아티팩트로 변환 및 감지할 수 있는 상황을 기반으로 알림을 작성하는 엔티티입니다. 웹 서비스일 필요는 없습니다.
- 공개자는 NotificationBroker와 함께 공개할 토픽을 등록할 수 있습니다.
- 공개자는 NotificationProducer 인터페이스와 연관된 메시지 교환을 구현하는 웹 서비스일 수 있습니다. 이 경우, 관련된 NotificationCosumers에 알림도 분배합니다.
- 공개자가 NotificationProducer와 연관된 메시지 교환을 구현하지 않는 경우 등록 요청 메시지를 지원할 필요가 없으며 등록한 NotificationConsumers에 대한 지식을 유지보수할 필요가 없습니다. 대신 NotificationBroker가 수행합니다.
- NotificationBroker:
- NotificationBroker는 공개자에서 NotificationConsumers를 분리하는 매개체 웹 서비스입니다. NotificationBroker는 NotificationConsumers 대신, 또는 메시징 관리 용도로 알림을 구독할 수 있습니다. 공개자 대신 알림을 NotificationConsumers로 전달할 수 있습니다.
- NotificationBroker는 NotificationProducer, NotificationConsumer 및 RegisterPublisher 인터페이스를 집약합니다.
- 매개체로 작동하는 NotificationBroker는 다음과 같이 기본
NotificationProducer 인터페이스에 추가 기능을 제공합니다.
- 공개자가 NotificationProducer와 연관된 메시지 교환을 구현하지 않도록 할 수 있습니다. NotificationBroker가 공개자 대신 SubscriptionManager(등록 관리) 및 NotificationProducer(NotificationMessages 분배)의 작업을 수행합니다.
- 여러 공개자와 NotificationConsumer가 있는 경우 상호 서비스 연결 및 참조 수를 줄일 수 있습니다.
- 파인더 서비스 역할을 수행할 수 있습니다. 잠재 공개자 및 등록자는 일반 NotificationBroker를 활용하여 사실상 서로를 찾습니다.
- 익명의 알림을 제공하여 공개자 및 NotificationConsumers가 서로의 ID를 인지하지 않아도 되도록 합니다.
- NotificationBroker의 구현은 이 스펙의 범위를 넘는 추가 부가가치 기능을 제공합니다(예: 알림 로깅 또는 토픽 및/또는 알림 컨텐츠 변환). NotificationBroker가 제공한 추가 기능은 NotificaitonBroker를 사용하는 모든 공개자에게 적용될 수 있습니다.
- 이는 등록 자원의 팩토리일 수 있거나 등록 팩토리를 다른 컴포넌트에 위임할 수 있습니다.
- NotificationBroker는 공개자 등록 기능을 제공합니다.
- NotificationBroker는 WS-Notification과 기타 공개/등록 시스템 사이를 브릿지로 연결합니다.
- PublisherRegistration:
- PublisherRegistration은 자원입니다. PublisherRegistration은 공개자와 NotificationBroker 간 관계, 특히 공개자가 공개하도록 허용된 토픽을 표시합니다.
- PublisherRegistration 자원은 공개자가 RegisterPublisher 요청 메시지를 NotificationBroker로 전송하고 NotificationBroker가 등록을 처리할 때 작성됩니다.
- PublisherRegistration 자원은 PublisherRegistrationManager 웹 서비스에 전송되는 메시지로 조작할 수 있습니다.
- RegisterPublisher:
- RegisterPublisher는 RegisterPublisher 인터페이스와 연관된 메시지 교환을 구현하는 웹 서비스입니다. PublisherRegistration 자원은 NotificationBroker에 대한 RegisterPublisher 요청의 결과로 작성됩니다.
- PublisherRegistrationManager:
- PublisherRegistrationManager는 PublisherRegistrationManager 인터페이스와 연관된 메시지 교환을 구현하는 웹 서비스입니다.
- PublisherRegistration 자원은 PublisherRegistrationManager 메시지 교환을 통해 조작할 수 있습니다.
- PublisherRegistrationManager는 서비스 요청자가 관리하는 PublisherRegistration 자원을 조회 및 조작 가능하도록 하는 서비스를 제공합니다.
- PublisherRegistrationManager는 NotificationBroker에 종속적이며 NotificationBroker 서비스 제공자 또는 별도의 서비스 제공자에 의해 구현될 수 있습니다.
- 요청 기반 공개:
- 알림 생성은 자원 소모적인 프로세스가 될 수 있으므로 일부 공개자는 임의의 등록자가 있는지 여부를 알려고 할 수도 있습니다. 해당 공개자는 요청 기반 공개자로 NotificationBroker를 등록할 수 있습니다.
- 요청 기반 공개자가 NotificationProducer 인터페이스와 연관된 메시지 교환을 구현합니다.
- NotificationBroker가 요청 기반 공개자에 등록합니다. NotificationBroker가 요청 기반 공개자로부터의 알림에 대한 등록자가 없음을 아는 경우, 해당 공개자 등록을 일시정지합니다. 일부 등록자가 있음을 아는 경우 등록을 다시 시작합니다.
- 이 방식으로 등록자가 없는 경우 요청 기반 공개자가 메시지를 생성할 필요가 없지만 요청 기반 등록자는 제공된 임의의 토픽에서 단일 등록자를 지원하기만 하면 되므로 다중 등록자 관리와 다중 NotificationConsumer 및 기타 관련 문제(예: 보안)의 NotificationBroker에 전달을 위임할 수 있습니다.
다음 용어는 WS-Notification 스펙에서 파생되었지만 스펙에서 직접 가져온 단어로 설명하지 않습니다.
- 풀(Pull) 위치:
- NotificationMessage 전달의 기본 "푸시(push) 스타일"이 적절하지 않은 특정 경우가 있습니다. 예를 들어, 특정 NotificationConsumers는 방화벽으로 보호되어 있으므로 NotificationProducer가 알림에 보내도록 메시지 교환을 시작할 수 없습니다. NotificationProducer가 알림 메시지를 보낼 수 있는 엔드포인트를 제공할 수 없거나 하지 않으려는 NotificationConsumer에 유사한 경우가 있습니다. 기타 상황에서 NotificationConsumer는 예상치 않은 간격으로 알림 메시지를 수신하는 대신 알림 메시지의 수신 시간 제어를 선호합니다. 직접 선택 시 알림 메시지를 "풀(pull)" 또는 "검색"하는 것을 선호할 수도 있습니다.
- 해당 이유로 인해, 웹 서비스 기본 알림 스펙은 다음과 같은 한 쌍의 portType을 정의합니다. PullPoint 인터페이스는 알림 메시지를 축적하고 요청자가 축적된 알림 메시지를 검색하도록 허용하는 엔드포인트를 정의합니다. CreatePullPoint 인터페이스는 PullPoint 자원의 팩토리 역할을 합니다.
- 의도된 사용 패턴은 등록자 또는 기타 파티가 팩토리 인터페이스를 통해 PullPoint를 작성한 다음 하나 이상의 등록 요청에서 ConsumerReference로 사용하는 것입니다. 그러면 이용자가 PullPoint에서 알림을 풀(pull)합니다.