Back to websequencediagrams.com
Draw a signal from one participant to another like this:
Alice->Bob: Authentication Request
Bob-->Alice: Authentication Response
The participants are automatically created when they are used. Use the "-->" syntax to draw a dotted line.
If you want to participants to be shown in a different order than they are
used, declare them first using the participant
keyword. You can also rename them this way to save typing.
participant Bob
participant Alice
participant "I have a really\nlong name" as L
Alice->Bob: Authentication Request
Bob->Alice: Authentication Response
Bob->L: Log transaction
A participant can send a signal to itself. This will result in an arrow that turns back on itself.
You may break the text into multiple lines by using "\n".
Alice->Alice: This is a signal to self.\nIt also demonstrates \nmultiline \ntext.
You can group signals together using the alt/else,
opt, and loop keywords. All
of them can take a text description that will be displayed in the group header.
Use the end keyword to signal the end of a group. The groups may
be nested to any depth.
Alice->Bob: Authentication Request
alt successful case
Bob->Alice: Authentication Accepted
else some kind of failure
Bob->Alice: Authentication Failure
opt
loop 1000 times
Alice->Bob: DNS Attack
end
end
else Another type of failure
Bob->Alice: Please repeat
end
You can add notes to your diagram. Notes can be placed to the left of a participant or to the right of a participant. In addition, you can centre a note over one or more participants.
If a note contains more than one line, it will be not be word-wrapped. Instead, it will be formatted exactly as written.
participant Alice
participant Bob
note left of Alice
This is displayed
left of Alice.
end note
note right of Alice: This is displayed right of Alice.
note over Alice: This is displayed over Alice.
note over Alice, Bob: This is displayed over Bob and Alice.
Use the activate and deactivate keywords to denote
object activation. While activated, the participant's lifeline will be
highlighted. The activate/deactivate keywords will apply to the previous
signal.
You can use the destroy keyword to destroy a participant. The
participant's lifeline will end at the previous signal.
User->A: DoWork
activate A
A->B: <<createRequest>>
activate B
B->C: DoWork
activate C
C-->B: WorkDone
destroy C
B-->A: RequestCreated
deactivate B
A->User: Done
You can make different things happen at the same time using
the parallel keyword.
parallel {
Client->Proxy: Request
Proxy->Server: Forwarded Request
note right of Server: Web proxy in operation
}
A rounded box can be useful to show state information.
The syntax is identical to the note keyword,
except that state is used.
participant Client
participant Server
parallel {
state over Server: LISTEN
state over Client: CLOSED
}
Client->Server: SYN
parallel {
state over Client: SYN-SENT
state over Server: SYN_RECEIVED
}
Server->Client: ACK
Autonumbering will automatically prefix all signals with a number. To use it, include the line autonumber followed by the number to start with. To turn off autonumbering, use "autonumber off"
autonumber 2
UE->GANC: Register Request
GANC->UE: Register Reject
WebSequenceDiagrams software is provided by Hanov Solutions Inc., of Waterloo, Ontario, Canada.