Publishing vs. Providing
Overview
There is often confusion among people who work with SIF regarding 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
Publishing is a generic term that means a given agent generates SIF messages. It could mean that it generates events, or it could mean that it responds to requests, or both.
Generating Events (Add, Change Delete)
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.
Some SIF objects (such as StudentAttendanceSummary) do not support SIF_Events. These objects must be requested by the subscriber and then the provider responds to the requests. See the SIF Specification for this information. Each SIF object states "SIF_Events are not reported for this object." or "SIF_Events are reported for this object."
Responding to Requests
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.
Providing
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.