There is often a confusion among people who work with SIF with the terminology used with agents that generate messages and respond to requests for information. In this article, we will address the terms that are used with these types of agents.
Publishing is a generic term that means that a given agent generates SIF messages. It could mean that it generates events or it could mean that it responds to requests or both, but doesn't necessarily mean either.
A SIF agent may generate events if the administrator of the ZIS has authorized it to do so. There are separate permissions in the agent's ZIS "ACL" entry for Add, Change, and Delete permission. As long as an agent has been given permission at the ZIS to generate events, it may send these messages. It does not need to tell the ZIS beforehand that it is going to attempt to send these event messages.
Any SIF agent may be given permission to respond to a request; this does not mean that it will be the "Provider" for that object. Any SIF agent can make a specific request to another agent (by putting the SourceId of the agent who is supposed to answer the request in the header). If the agent that is supposed to answer the request has been given the ability to "Respond to Requests" (another permission in an agent's ZIS "ACL" entry), it will be given the request and it should provide an answer.
If an agent is given permission to Provide, and the same agent sends a SIF_Provide message for a given object, then it becomes the provider of that object. What this means is that whenever a SIF_Request is sent by any agent in the zone and a specific SourceId is NOT included in the header, the request is routed by the ZIS to this agent. It is the default responder to requests in a zone for a given object.