Asynchronní služby používají pro komunikaci mezi objekty vzorec interakce zpětného volání. Asynchronní služby lze použít například
v systémech typu publikovat-odebírat poskytovaných dodavateli middlewaru zaměřeného na zprávy nebo v doménách správy systémů a zařízení.
Služby WS-Notification
Asynchronní služby jsou standardizovány ve specifikacích WS-Notification:
- Specifikace WS-BaseNotification definuje rozhraní webových služeb pro entity NotificationProducers a NotificationConsumers.
Tato specifikace obsahuje standardní výměny zpráv implementované poskytovateli služeb, kteří chtějí vystupovat v těchto rolích, spolu s přidruženými provozními požadavky.
- Specifikace WS-BrokeredNotification definuje rozhraní webových služeb pro entitu NotificationBroker. NotificationBroker je prostředník, který mimo jiné umožňuje publikovat zprávy entitám, které samy nejsou poskytovateli služeb. Obsahuje standardní výměny zpráv implementované poskytovateli služeb NotificationBroker spolu s přidruženými provozními požadavky
poskytovatelů služeb a žadatelů, kteří se účastní zprostředkovaných oznámení.
- Specifikace WS-Topics definuje mechanizmus pro uspořádání a kategorizaci zajímavých položek pro odběr známý jako témata. Ta se používají ve spojení
s mechanizmy oznámení definovanými ve specifikaci WS-BaseNotification a WS-BrokeredNotification.
Webové služby a služby XML, které implementují specifikaci WS-Notification, můžete testovat vytvořením asynchronního požadavku uvnitř testu. Asynchronní požadavek obsahuje rozhraní pro příslušnou specifikaci WS-Notification spolu se strukturou zpětného volání.
Proprietární asynchronní služby
Můžete testovat proprietární asynchronní služby, které neimplementují specifikace WS-Notification. Chcete-li testovat tyto služby, ručně vytvoříte požadavek na službu, který obsahuje rozhraní pro službu, a poté můžete do požadavku přidat asynchronní strukturu zpětného volání.
Data
XML asynchronního požadavku musí obsahovat koncový bod určující adresu URL příjemce zpětného volání. Během testu se tento koncový bod použije
k přesměrování zpětného volání na testera namísto na skutečného příjemce.
Struktura zpětného volání
Chcete-li testovat asynchronní služby, musíte v testu vytvořit strukturu asynchronního požadavku, jak ukazuje následující
diagram:
Požadavek na webovou službu nebo prostý požadavek XML poskytuje akci odběru a obsahuje prvek zpětného volání, který popisuje
chování testu ve třech stavech:
- Stav Paralelní obsahuje prvky testu, které jsou spuštěny po požadavku na odběr a během čekání na odezvu upozornění.
- Stav Přijmout obsahuje prvky testu, které jsou spuštěny po přijetí odezvy upozornění od služby.
- Stav Vypršení časového limitu obsahuje prvky testu, které se spustí, pokud není po prodlevě určené v prvku zpětného volání přijata odezva upozornění.
Po dokončení spuštění všech prvků obsažených v paralelních prvcích, prvcích přijetí a prvcích vypršení časového limitu, pokračuje spuštění dalším prvkem v testu po asynchronním požadavku.
Metoda
generování asynchronní struktury zpětného volání v testu závisí na tom, zda asynchronní služba používá specifikaci WS-Notification:
- Služby WS-Notification: Vytvořte asynchronní požadavek v testu.
- Proprietární služby: V testu ručně vytvořte požadavek na webovou službu nebo požadavek XML a poté do tohoto požadavku přidejte asynchronní strukturu zpětného volání.