Browse Prior Art Database

Method and Apparatus for Linking Based on X Windows

IP.com Disclosure Number: IPCOM000117711D
Original Publication Date: 1996-May-01
Included in the Prior Art Database: 2005-Mar-31
Document File: 8 page(s) / 230K

Publishing Venue

IBM

Related People

Cundiff, RL: AUTHOR [+3]

Abstract

Linking is a mechanism for placing information into a software component, and allowing that information to be updated, based on changes to its source information in another software component.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 21% of the total text.

Method and Apparatus for Linking Based on X Windows

      Linking is a mechanism for placing information into a software
component, and allowing that information to be updated, based on
changes to its source information in another software component.

      Linking requires the cooperation of the source component and
destination component.  In this article, we will discuss a linking
protocol using X Windows system storage and event handling as
underlying transport layer.  The implementation case is the IBM AIX*
OpenDoc system.

Transport Mechanism

      The fundamental requirement of Linking is to have two
components under the same process or two processes to share a storage
space synchronously.  The source component publishes (writes) its
information to the shared storage space, and lets destination
component subscribe (read) the information.  Linking also need to
provide registration, notification and locking services so that the
information sharing is synchronized.

      AIX OpenDoc Linking uses X Windows property to store shared
linking data, and uses X client message events as a notification
mechanism between the source and destination components of a link.
         A high level view of the transport mechanism is shown below,
      Source Entity ---> X Server Storage ---> Destination Entity
               (Accessed by X Windows property)
                <- GetLink notification  <-
                -> ReadLink notification ->
               (Sent by X ClientMessage Event)

      When the source entity is ready to publish its data, it posts
its location record to X server storage.  In our case, the X server
storage is the clipboard.  The location record contains display id,
window id which allow the destination to send back X client message
events.  The destination entity subscribes to link by retrieving the
source location record from the clipboard and then send GetLink
client message event to the source side to establish a link.  An X
property known by both sides is also chosen as the storage for shared
data.  When Source side wants to update data, it posts the data to
the X property and send a ReadLink client message event to the
destination side which reads it from the same property.

      The following sections describe the AIX OpenDoc Link high level
design using this transport mechanism.

Internal Link Bookkeeping

      OpenDoc Session objects represent the main control components
on both linking source and destination sides which manage the
establishing, termination and notification of link.  The Link Source
and Link objects represent the data read/write components on both
sides.

      OpenDoc Linking uses a set of data structures to maintain the
links managed by a running OpenDoc session.  An ODSession object owns
two lists of XLinkInfo records.  One for links starting from parts in
this document, and another for...