ONVIF学习理解(1)

来源:互联网 发布:ubuntu 添加硬盘 编辑:程序博客网 时间:2024/05/22 06:32

1. Pull & Push model

There are two ways to do notifications in an RPC system: the push model, and the pull model. In the pull model, the client will periodically query the server whether any notifications are available. The server needs to store them until the client fetches them (or until they expire). As a variant, the client may have a blocking RPC call that blocks until the next event becomes available, and then returns right away. That works fine with CORBA, but doesn't work so well with SOAP or XML-RPC, since the HTTP implementations are typically not prepared to leave a connection open for hours.

In the push model, the producer will invoke an RPC on the consumer, making the consumer a server. That doesn't work too well with SOAP or XML-RPC, either, since the client is typically not prepared to take the server role, and firewalls may prevent the callback from getting through. So the periodic pull is about the most realistic approach.

P.S. you may have noticed that I didn't follow your terminology: you cannot pushevents. An event is something that happens. You can only push the notification, which is an information that an event did happen.