“Push” vs. “Pull” mode is probably the most misunderstood concept in the world of SIF integration and often impedes conversations between those who have done implementations and those who haven’t.
Well, the words do have typical English meanings – one might think that “Pull” mode might indicate that an agent receives information from the ZIS, like a subscribing agent does. Well, this is not what “Pull” means to SIF.
One might think that “Push” means that an agent sends information to the zone, but it doesn’t. You can call such an application a “publisher” if you would like, but we’ll get into all the proper terminology shortly.
The difference between Push and Pull mode for an agent is more like the difference between real-time and batch for a process.
If a ZIS has information for an agent or needs to deliver a request to an agent, the mode of the agent makes a difference:
When there is a large SIF implementation with many zones (such as is common in the UK and perhaps in Australia), and each of these zones have several agents attached, there will be many agent-to-ZIS connections.
If each of these agents are registered in Pull mode and if each of them poll the ZIS frequently to see if there are any waiting messages, the collective “idle state” of these agents can waste a large amount of bandwidth (24 hours a day, 365 days a year).
Over the years, we’ve seen several subscribing agents that created accounts for students and teachers through a process something like the following:
The problem with having conversations like this is that every time there is a “turn-around” in the conversation, the subscribing agent will have to wait until the providing agent does its next “check for messages” (if it is a Pull agent). Likewise, if the subscriber is a Pull agent, it will not receive an answer until the next “check for messages” interval.
Although we support Pull mode, we always recommend using Push mode if at all possible. It might mean a little extra work in setting it up, but it is almost always worth the added effort – in terms of speed, security and network efficiency.