As part of the LEAD project, our infrastructure is currently being integrated with the LEAD portal. This agent represents the first of several steps to achieve this integration. Its position in our messaging system can be seen in the message bus diagram.
Purpose
- To store workflow and file metadata associated with brokered submissions using the MyLEAD Metadata Catalog.
- To translate our LocalEvents into WS-Events and place them on the Message Bus used in connection with the LEAD portal.
Design
The structure of the relay agent is straight-forward. The main component listens for events on our event bus, and delegates the event to the appropriate event handler. Each handler has a reference to the notifier factory and/or workspace manager, depending on the type of event. Appropriate actions are taken on the notifier or the MyLEAD agent, as indicated in the following table:
Event |
Status |
LEAD Component |
Action |
---|---|---|---|
Debug |
|
|
|
Error |
|
|
|
Status |
WORKFLOW SUBMITTED |
|
|
Status |
WORKFLOW CANCELLED |
|
|
Status |
WORKFLOW FAILED |
|
|
Status |
WORKFLOW DONE |
|
|
Status |
NODE PENDING |
|
|
Status |
NODE SUBMITTED |
|
|
Status |
NODE ATTEMPTED |
|
|
Status |
NODE QUEUED |
|
|
Status |
NODE ACTIVE |
|
|
Status |
NODE CANCELLED |
|
|
Status |
NODE FAILED |
|
|
Status |
NODE DONE |
|
|
The relay agent is booted with a properties file indicating the appropriate endpoints for WS Event notifications and the MyLEAD Agent service:
#NCSA event bus eventListener.tag.1=loggingListener eventSender.0=tcp://tb1.ncsa.uiuc.edu:61616,ncsa.tools.jms.localevent.JMSLocalEventSender eventReceiver.0=tcp://tb1.ncsa.uiuc.edu:61616,ncsa.tools.jms.localevent.JMSLocalEventReceiver receiveTopic.0=TROLL #IU Message Broker wsmg.broker.url=http://tyr11.cs.indiana.edu:12346/ #loopback=false #MyLEAD agent mylead.agent.url=https://tyr03.cs.indiana.edu:20243/myleadagent?wsdl credential.file=hostcertkey-tb1.ncsa.uiuc.edu.pem trusted.certs.file=trusted_cas.pem fixed.properties.file=fixed.properties dn.properties.file=dn.properties #JDBC gridmap db gridmap.connection.url=jdbc:mysql://localhost/brokerstore gridmap.connection.username=mysql gridmap.connection.password=mysql