Change detection and notification

Source: Wikipedia, the free encyclopedia.

Change detection and notification (CDN) is the automatic detection of changes made to World Wide Web pages and notification to interested users by email or other means.[1]

Whereas search engines are designed to find web pages, CDN systems are designed to monitor changes to web pages. Before change detection and notification, it was necessary for users to manually check for web page changes, either by revisiting web sites or periodically searching again. Efficient and effective change detection and notification is hampered by the fact that most servers do not accurately track content changes through Last-Modified or ETag web-server headers. In 2019 a comprehensive analysis regarding CDN systems was published.

History

In 1996,

webhooks
and HTTP callbacks for application integration.

Monitoring options vary by service or product and range from monitoring a single web page at a time to entire web sites. What is actually monitored also varies by service or product with the possibilities of monitoring text, links, documents, scripts, images or screen shots.

With the notable exception of Google's patent filings related to Google Alerts, intellectual property activity by change detection and notification vendors is minimal.[3] No one vendor has successfully leveraged exclusive rights to change detection and notification technology through patents or other legal means.[citation needed] This has resulted in significant functional overlap between products and services.

Architectural approaches

Change detection and notification services can be categorized by the software architecture they use. Three principal approaches can be distinguished:

Server based

A server polls content, tracks changes and logs data, sending alerts in the form of email notifications,

cloud server
and provides alerts to the mobile device.

Self-hosted based

A relatively newer approach, which lays between server-based and client-based is to use self-hosting, where the software which would normally run on a separate server runs on your own hardware locally, generally means that the software provides a miniature web server with a browser interface instead of a classic graphical user interface provided by an application.

Client based

A local client application with a graphical user interface polls content, tracks changes and logs data. Client applications can be browser extensions, mobile apps or programs.

Considerations

Some web pages change regularly, due to the inclusion of adverts or feeds in the presented page. This can trigger false-positives in the change-detection, since users are often only interested in changes to the main content. Some approaches to mitigate this issue exist.

  • Create a metric of difference between two versions of a page (calculated for example from change in total size, changes in HTML file, or changes in the DOM tree) and ignore changes below some threshold. The threshold may be set by the user, or estimated automatically by comparing some early versions of the page.
  • Content extraction. For popular sites, or sites running popular software, content may be actively separated from chaff by selecting a sub-tree of the DOM, for example using
    regular expressions
    to extract only the text the user is interested in.

References

  1. S2CID 57759312
    .
  2. ^ "To the Wayback Machine, Sherman!". The Economist. Retrieved 9 January 2019.
  3. ^ "He created Google Alerts. Now he's an almond farmer". CNN. 4 April 2016. Retrieved 9 September 2016.