Proposal:Ping Abstraction

From Movable Type

Contents

Abstract

Movable Type was originally architected around only one notification protocol: TrackBack. In implementing the Pingback plugin it became clear the MT could benefit from a better abstraction layer for ping protocols to maximize code re-use.

Problem Statements

  • There could be a more reliable way for a developer to reliably obtain the blog name, the entry title, and the excerpt of an source URL sending the ping.
  • There could be greater code re-use between TrackBacks and Pingbacks. Specifically:
    • Junk filtering
    • IP Throttling
    • Email notification of new pings

Proposal

In one implementation to solve this problem, we could:

  • create an MT::Ping baseclass for MT::TrackBack and MT::Pingbacks

In another implementation, we could abstract out common methods into a util package:

  • create MT::Ping::Util

In either implementation we need to develop a consistent way to extract:

  • the source URL's blog name
  • the source URL's entry title
  • the source URL's excerpt
  • the ability to pass a ping through an IP throttle
  • the ability to pass a ping through the junk filter
  • the ability to send an email notification of the new ping
  • the ability to trigger a rebuild of affected files
  • a common set of callbacks
  • support for mod_perl and fastcgi

Arguments Against

One draw back to this proposal is the fact that there are only two pinging protocols that need to be supported, and no new ones are likely to emerge. So the work to be done, would only benefit a very small number of people.

There is no end user benefit to this proposal.