Title: Main
1Main
Launch Process Thread(s)
Where the application specific action occurs
Launch Timer Thread(s)
Where the application specific action occurs
Launch Connect Thread(s)
Clients will connect to Servers
Launch Accept Thread(s)
Servers will accept connections from clients
Wait for Thread Completion
2Connect Thread
Zero or more Connect Threads per Application
Wait for Invalid Connection
ACE function
Connect to Target
Error
Wait for Completion
Delay
Input Thread Exists?
No
Launch Input Thread
Yes
Output Thread Exists?
No
Yes
Launch Output Thread
3Accept Thread
Zero or more Accept Threads per Application
Wait for Incoming Connection
ACE function
Launch Output Thread
Launch Input Thread
Wait for Invalid Connection
Delete Input Thread
Delete Output Thread
4Output Thread
One Output Thread per Connection
Wait for OK Connection
Wait for Entry in Output Queue
Disconnected
Check Connection Status
Get next Buffer in Output Queue
Zero count of attempts
ACE function
Increment Count of Attempts
Send Message
(Delay?)
No
Check Connection Status
Wait for Completion
Too many Attempts?
OK
Timeout
Success
Disconnected
Yes
Remove Buffer from Output Queue, Release Buffer
Error
Invalidate Connection
5Input Thread
One Input Thread per Connection
Wait for OK Connection
Get Free Buffer
Read Message into Buffer
ACE function
Wait for Completion
Invalidate Connection
Error
Success
Add Buffer to Process Queue
6Process Thread
One or more Process Threads per Application
Wait for Entry in Process Queue
Get next Buffer in Process Queue
Dispatch
- Includes Standard and
- Application Specific Actions
- For example
- Respond - get free buffer, insert reply,add to
Output Queue - Start Timer - launch Timer thread oradd to
existing Timer - Store - move buffer to holding queue
- Disconnect - set connection status toinvalid
7Timer Thread
Zero or more Timer Threads per Application
Wait for Timer Expiration
Process Timer
Includes Standard and Application Specific Actions
Reset Timer