Scenarie2

Udkast til testscenarie 2

Scenariet er: Hent flere datapakker

Dette scenarie er en udvidelse af det første testscenarie. Her skal klienten hente en serie af datapakker. For nemheds skyld bliver der bedt om tre pakker i beskrivelsen forneden.
Man bør også teste med 10 og 100 pakker.
Den generelle kø benyttes indledende men herefter offloades resten af kommunikation til en privat kø, der her antages bare at "være til rådighed". Der benyttes samme conversationID til alle beskeder, sådan at hele forløbet kan følges på tværs af køer.

Setup for dette scenarie bygger i øvrigt på testscenarie 1.
Scenariet går i 4 steps:

  • (1a) forespørgsel fra klient til pillars i SLA
  • (1b) svar fra pillars
  • (2a) specifik get fra klient til specifik pillar
  • (2b) svar i form a datatransmission

scenariet er først beskrevet via illustrationer (kommer...) og derefter ved konkrete værdier i generelle beskedformater med efterfølgende XML. Antagelser om de generelle formater er givet til sidst.

Step 1 a+b

Besked fra 1a

Besked sendes på "Topic General to pillars"

Besked fra 1a i det generelle format

Feltnavn

Klient1

!MessageName

!IdentifyPillarsForGetRequest

!ConversationId

scen2

!DataIds

Id1, Id2, Id3

!ReplyQueueName

QReplyQueueTime

Token

undefined

Synchronous

undefined

Offset

undefined

Size

undefined

Beskeder2 fra 1a i XML

<message>
  <messageName>IdentifyPillarsForGetRequest</operationId>
  <conversationId>scen2</conversationId>
  <dataIds>
    <dataId>Id1</dataId>
    <dataId>Id2</dataId>
    <dataId>Id3</dataId>
  </dataIds>
  <replyQueueName>QReplyQueueTime</replyQueueName>
</message>

Beskeder fra 1b

Beskeder som sendes på kø "QReplyQueueTime"

Beskeder fra 1b i generelle format

Feltnavn

Pillar 1

Pillar 1

Pillar 2

Pillar 4

!DataIds

Id1, Id3

Id2

Id1, Id2, Id3

none

!MessageName

!IdentifyPillarsForGetReply

!IdentifyPillarsForGetReply

!IdentifyPillarsForGetReply

!IdentifyPillarsForGetReply

!ConversationId

scen2

scen2

scen2

scen2

!PillarId

pillar1

pillar1

pillar2

pillar4

!TimeMeasure

6

2

2

undefined

!TimeUnit

min

sec

sec

undefined

!ErrorCode

undefined

undefined

undefined

47

  • Pillar 3 bør ikke svare, og pillar 4 svarer med error ligesom i testscenarie # Pillar 1 svarer med to svar da det er et near-online system og den ved at Id2 ligger online og Id1 og d3 begge ligger offline. *

Beskeder fra 1b i XML format

Pillar 1
<message>
  <messageName>IdentifyPillarsForGetReply</operationId>
  <conversationId>scen2</conversationId>
  <pillarId>pillar1</pillarId>
  <dataIds>
    <dataId>Id1</dataId>
    <dataId>Id3</dataId>
</dataIds>
  <time>
    <measure>6</measure>
    <unit>min</unit>
  </time>
</message>
Pillar 1
<message>
  <messageName>IdentifyPillarsForGetReply</operationId>
  <conversationId>scen2</conversationId>
  <pillarId>pillar1</pillarId>
  <dataIds>
    <dataId>Id2</dataId>
  </dataIds>
  <time>
    <measure>2</measure>
    <unit>sek</unit>
  </time>
</message>
Pillar 2
<message>
  <messageName>IdentifyPillarsForGetReply</operationId>
  <conversationId>scen2</conversationId>
  <pillarId>pillar2</pillarId>
  <time>
    <measure>2</measure>
    <unit>sec</unit>
  </time>
</message>
Pillar 4
<message>
  <messageName>IdentifyPillarsForGetReply</operationId>
  <conversationId>scen2</conversationId>
  <pillarId>pillar4</pillarId>
  <error>47</error>
</message>
  • I dette scenarie svarer Pillar 3 med et forkortet svar, hvor dataIds ikke gentages (se spørgsmål under scenarie 1). Hvis det er muligt at svare uden dataIds, kan det som her fortolkes som at svaret dækker alle datapakker. *

Step 2 a+b

Besked fra 2a

Besked sendes på "Klient1 To Pillar2"

Besked fra 2a i generelle format

Feltnavn

msg1

msg2

msg3

!MessageName

Get

Get

Get

!ConversationId

scen2

scen2

scen2

!PillarIds

pillar2

pillar2

pillar2

!DataIds

Id1

Id2

Id3

!ReplyQueueName

undefined

undefined

undefined

Token

https:/a/b.data

https:/b/c.data

https:/c/d.data

Synchronous

undefined

undefined

undefined

Offset

undefined

undefined

undefined

Size

undefined

undefined

undefined

Den generelle kø benyttes indledende men herefter offloades resten af kommunikation til en privat kø, der her antages bare at "være til rådighed". Der benyttes samme conversationID til alle beskeder, sådan at hele forløbet kan følges på tværs af køer.

Besked fra 2a i XML format

Msg1
<message>
  <messageName>Get</operationId>
  <conversationId>scen2</conversationId>
  <pillarIds>
    <pillarId>pillar2</pillarId>
  </pillarIds>
  <dataIds>
    <dataId>Id1</dataId>
  </dataIds>
  <token>https:/a/b.data</token>
</message>
Msg2
<message>
  <messageName>Get</operationId>
  <conversationId>scen2</conversationId>
  <pillarIds>
    <pillarId>pillar2</pillarId>
  </pillarIds>
  <dataIds>
    <dataId>Id2</dataId>
  </dataIds>
  <token>https:/b/c.data</token>
</message>
Msg3
<message>
  <messageName>Get</operationId>
  <conversationId>scen2</conversationId>
  <pillarIds>
    <pillarId>pillar2</pillarId>
  </pillarIds>
  <dataIds>
    <dataId>Id3</dataId>
  </dataIds>
  <token>https:/a/b.data</token>
</message>

Dataoverførelse fra 2b

  • Dataoverførelse af pakken Id1 via https:/a/b.data fra pillar 2
  • Dataoverførelse af pakken Id2 via https:/b/c.data fra pillar 2
  • Dataoverførelse af pakken Id3 via https:/c/d.data fra pillar 2