Linkback

A linkback is a method for Web authors to obtain notifications when other authors link to one of their documents. This enables authors to keep track of who is linking to, or referring to, their articles. The three methods (Refback, Trackback, and Pingback) differ in how they accomplish this task.

Any of the four terms — Linkback, Trackback, Pingback, or (rarely) Refback — might also refer colloquially to items within a section upon the linked page that display the received notifications, usually along with a reciprocal link; Trackback is used most often for this purpose. Also, the word Trackback is often used colloquially to mean any kind of Linkback.

Linkback is also the name of an OLE-like open source framework for Mac OS X.

Refback Trackback Pingback
Trigger mechanism Visitor to linking site clicks on the link, and his browser takes him to the linked site Code on linking server examines added or updated documents, extracts links, and sends notification to linked server for each link found Code on linking server examines added or updated documents, extracts links, and sends notification to linked server for each link found
Notification medium HTTP referrer value HTTP POST XML-RPC call
Capture mechanism Examination of incoming HTTP referrer values Trackback capture script XML-RPC function
Information sent by linking server None
  • Linking site name (Optional)
  • Linking post title (Optional)
  • Linking post excerpt (Optional)
  • Linking post URL
  • Linked post URL
  • Linking post URL
Additional information presented to linked server HTTP referrer sent by a visitor’s browser upon clicking the link IP address of linking server IP address of linking server
Autodiscovery mechanism (how the linking server finds out how and where to send the notification) None Specially-formatted information within the body of the linked page Special HTTP header or LINK tag on the linked page
Action required when notification is received
  • Extract referrer value from incoming HTTP headers
  • Retrieve referring page
  • Parse retrieved page for desired information
  • Gather desired information from
    • Given parameters
    • or retrieving and parsing the given URL
  • Retrieve page at “linking post URL”
  • Parse retrieved page for desired information
Advantages Requires no special code on linking server (the link itself becomes the notification when someone clicks on it) All the information desired by the linked server (Linking site name, post title, excerpt) is present in the notification itself
  • Notification mechanism has a complete technical specification
  • Less susceptible to spamming
Disadvantages
  • No notification unless someone actually clicks on the link
  • Relies upon visitors’ browsers sending proper HTTP referrer information
  • Linked site must retrieve and parse linking site’s page to extract the information it wants
  • Notification requires positive action by linking server
  • Notification mechanism has only a partial technical specification
  • Autodiscovery information may prevent XHTML validation
  • Notification requires positive action by linking server
  • Linked site must retrieve and parse linking site’s page to extract the information it wants

Another Answer:

OVERVIEW

The LinkBack Framework is an open framework that brings editable objects to Mac OS X. Using LinkBack-enabled applications, users can paste content create in other applications into a document and later edit or update the content from the original application. When activated by the user, the content can be updated automatically by the provider application or the provider application can display the content for the user to edit. Any changes will automatically replace the original embedded content.

By offering this framework as an open-source project, Nisus hopes in enable a wide variety of Cocoa-based applications, including Nisus Writer Express, to integrate more tightly with one another.

GOAL AND NON-GOALS

The goals of the LinkBack framework are:

  • To enable applications to share data with one another, maintaining a link to the originating application so that the user can edit the data or have it refreshed.
  • To provide this functionality though a simple API that is simple to use and requires minimal changes in an existing Cocoa-based application.

The goal of LinkBack is not to provide for in-application editing of data from another app.  For example, LinkBack does not provide for a graphics application to provide an in-application editor for a word processor.

USER SCENARIOS

Following are some user scenarios that depict how we envision LinkBack being used.

SCENARIO 1: Drawing application

Linda is working with a graphics tool to create a new image for her research paper and then pastes the image into a Nisus Writer Express document.  Later, Linda decides to change the drawing she inserted into Nisus Writer so she double-clicks on the drawing in Nisus Writer Express.  The original drawing application opens and displays the drawing.  She makes her changes and selected “Save” in the drawing application, updating the graphic in Nisus Writer Express.

SCENARIO 2: Live Data

Larry uses a stock quote application to lookup some online stock quotes.  He then selects the quotes and copies them to the pasteboard.  He opens a new Nisus Writer Express document and selects “Paste.”  A dialog appears asking him if he wants the data he is about to paste to be updated automatically.  He chooses the live update option and the stock quotes appear in his document.  Every fifteen minutes the quotes automatically update in his document to reflect the current stock value.

TECHNICAL APPROACH

This section describes the technical approach of the prototype implementation of LinkBack.  In general, the pasteboard is used to transfer data between applications supplemented by a small amount of additional interprocess communication using distributed objects to coordinate server and client applications.  This coordination is implemented by the LinkBack framework so that the host applications need only interact with the limited LinkBack API and the framework will do the rest.

The Players

LinkBack interactions occur between two applications, a server and a client application:

  • A server application provides LinkBack data as an additional type on the pasteboard during normal pasteboard operations such as cut, copy or drag operations.  It also responds to requests from client applications to edit or refresh the LinkBack data at a later time.
  • A client application retrieves and stores LinkBack data along with other standard data types from the pasteboard during normal pasteboard operations such as paste and drop operations.  At the request of the user or at predefined intervals, the client application may request the server application that generated some LinkBack data refresh or open the data for editing.  It then receives the updated data from the server application and replaces its old data with the new.

The server and the client applications share data via the standard Cocoa pasteboard.  Their interaction is coordinated by LinkBack object instances.  For each edit or refresh session that takes place, peer LinkBack objects are created in both the server and the client applications for the edit.  The two peers communicate with one another using distributed objects.

Providing Data

A server application provides LinkBack data by including an additional LinkBack data type on the pasteboard whenever it places other data on the pasteboard for cut, copy, or drag operations.  The LinkBack data object is a dictionary that contains information needed for LinkBack updates including the application signature of the server application, information about the types of updates allowed, and custom data provided by the server application.

The custom data is used later by the server application to reconstruct and editable document.  It may contain any object that can be serialized in a property list.  It may contain the data for the document itself (such as a set of application-specific graphic objects) or it may contain a reference to the originating document (such as a URL).

If a LinkBack-enabled client application finds LinkBack data on the pasteboard during a paste or drop operation, it will take that data along with taking whatever other standard data types it would normally use.  Both LinkBack-enabled client applications and non-LinkBack aware applications use the standard data types provided by the server application to display whatever is on the pasteboard.  A LinkBack-enabled client application will also retain the LinkBack data it finds for a future update.

Updating LinkBack Data

Once a client application has some LinkBack data it can maintain, it can issue refresh requests to the server application at any time.  To issue this update request the client application uses the LinkBack API to perform the following:

  1. Create a custom pasteboard and put the original LinkBack data on it.
  2. If the server application is not running, find it and start it.  Once it is running, establish a LinkBack with the server application.
  3. Send a request to edit or refresh the data on the pasteboard, passing the name of the pasteboard containing the data.

The server application is activated when it receives this message and retrieves the data from the pasteboard.  This operation is asynchronous; the client application can continue operation after it sends an edit request to the server.

Once the server has completed its refresh or edit, it uses the LinkBack API to place the updated LinkBack data on a private pasteboard along with other standard pasteboard data formats and informs the client application that refreshed data is available. Often times this can be implemented by factoring out the code normally used for a copy operation.

Once the client receives this notification of the change, it can extract the data from the pasteboard for display and save the updated LinkBack data for a future update.

Canceling Updates

At various times during the editing process, either the server or the client applications may wish to cancel an edit or refresh operation.  For example, the client or server application may quit, or the user may close the original document or the document window opened by the server application for the user to edit the data.  The application that wants to cancel the update can simply close its LinkBack.  This will automatically inform the other application and clean up any open resources.

LinkBack will also detect when one of the applications has closed the connected unexpectedly and cancel the update automatically.

Leave a Reply