`Mattby et at
`
`10 Patent No
`45 Date of Patent
`
`Us 6202100 B1
`Mar 13 2001
`
`54 OBJECT LINKING AND EMBEDDING OVER
`COMPUTER NETWORK
`
`75 Inventors
`
`John Maltby Emsworth Simon
`Phipps Southampton Vince Singleton
`Northants all of GB
`
`73 Assignee
`
`International Business Machines
`
`Corporation Armonk NY US
`
`Notice
`
`Subject
`
`the term of this
`to any disclaimer
`is extended or adjusted under 35
`patent
`U.S.C 154b by
`
`days
`
`21 Appl No 08/395548
`22 Filed
`Feb 28 1995
`30
`Foreign Application Priority Data
`Mar 23 1994 GB
`
`9405757
`
`GO6F 9/00
`
`709/329
`
`Brockschmidt Kraig Introducing OlE 2.0 Part Windows
`and
`Microsoft Systems
`the Component
`Objects
`159 Aug 1993
`Journal v8 n8
`no author given Microsoft mulls 0MG compliance
`Cairo PC Week vlO n42 31 Oct 1993
`
`for
`
`Orfali Robert Dan Harkey Client/Server Survival Guide
`with OS/2 Van Nostrand Reinhold pp 745753 1994
`
`HiJaak 1.0 Windows Magazine 1992
`Powell James
`310 Dec 1992
`
`311
`
`Microsoft Visual
`Ch 18 Ole Support
`
`Programmers Guides 1993 pp 273
`
`Welch Kevin
`Inter Program Communications Using
`Windows Dynamic Data Exchange Microsoft Systems
`Journal Nov 1987
`
`cited by examiner
`
`51 Int Cl.7
`
`52 U.S Cl
`
`58 Field of Search
`
`700
`395/650
`310332
`
`709/329
`
`Primary ExaminerSt John Courtenay III
`74 Attorney Agen4 or FirmJeanine
`
`Ray-Yarletts
`
`56
`
`References Cited
`
`U.S PATENT DOCUMENTS
`
`5408470
`5446896
`5452299
`
`Rothrock
`
`et
`
`4/1995
`8/1995 Hegarty et
`Thessin
`
`9/1995
`
`et
`
`0380211
`0474339
`
`FOREIGN PATENT DOCUMENTS
`1/1989 EP
`11/1992 EP
`OTHER PUBLICATIONS
`
`370/261
`
`707/1
`
`370/260
`
`GO6F/9/46
`
`GO6F/9/44
`
`no author
`Linking
`given Object
`Microsoft Corp pp 145 Nov
`1991
`Uncertain Future Whats the Next
`William Semich
`267
`Step After Client/Server Datamation v40 n6
`Mar 1994
`
`Embedding
`
`57
`
`ABSTRACT
`
`submits material from an application
`user at computer
`APPN onto the clipboard at
`routine CLIP
`that machine
`SEND part of conferencing
`software P2P-A at computer
`formats for the material on the
`
`list of available
`
`obtains
`
`clipboard
`
`and
`
`transmits this
`
`list
`
`to
`
`second machine
`
`This list
`
`and
`
`is received by conferencing
`software
`computer
`routine CLIP RECEIVE part of
`P2P-B at computer
`P2P-B submits the list
`to the clipboard at that machine The
`can then embed an object originally from
`user at machine
`APPN by OLE pasting into an application
`APPN
`in the normal manner
`
`at computer
`
`10 Claims Drawing Sheets
`
`CLIP SEND BECOMES VIEWER OF CLIPBOARD
`LIIIPBoARDvIwER2IIIIIIIIIIIIJ
`
`SUBMITS MATERIAL TO CLIPBOARD
`APPN
`jSETCLIPBOARDDATA
`
`riiiBOARD SENDS NOTIFICATION TO CLIP
`jDRAWCLIPBOARD
`
`RiiiiEND OBTAINS LIST OF FORMATS ON CLIPBOARD
`LMcL1PBOARDF0RtMT8
`
`LI1P SEND SENDS LIST OF FORMATS TO CLIP
`
`CLIP RECEIVE BECOMES bWNER OF CLIPBOARD
`SETCLIPBOARDOWNER
`
`CLIP RECEIVE SUBMITS DATA TO CLIPBOARD
`SETCLIPBOARDDA1AI
`
`310
`
`320
`
`330
`
`340
`
`350
`
`360
`
`370
`
`Petitioner IBM – Ex. 1072, p. 1
`
`
`
`U.S Patent
`
`Mar 13 2001
`
`Sheet
`
`of
`
`US 6202100 B1
`
`FIG
`
`22
`
`12
`
`24
`
`26
`
`30
`
`/4
`
`NETWORK
`
`FIG
`
`COMMS
`
`CLIP
`RECEIVE
`
`___
`
`P2P-B
`
`CLIP
`SEND
`
`P2P-A
`
`APPNA
`
`CLIPBOARD
`
`APPN
`
`CLIPBOARD
`
`Petitioner IBM – Ex. 1072, p. 2
`
`
`
`U.S Patent
`
`Mar 13 2001
`
`Sheet
`
`of
`
`US 6202100 B1
`
`FIG
`
`CLIP SEND BECOMES VIEWER OF CLIPBOARD
`SETCLIPBOARDVIEWER
`
`SUBMITS MATERIAL TO CLIPBOARD
`APPN
`SETCLIPBOARDDATA
`
`SENDS NOTIFICATION TO CLIP SEND
`CLIPBOARD
`WM_DRAWCLIPBOARD
`
`CLIP SEND OBTAINS LIST OF FORMATS ON CLIPBOARD1
`ENUMCLIPBOARDFORMATS
`
`CLIP SEND SENDS LIST OF FORMATS TO CLIP
`
`CLIP RECEIVE BECOMES OWNER OF CLIPBOARD
`SETCLIPBOARDOWNER
`
`CLIP RECEIVE SUBMITS DATA TO CLIPBOARD
`SETCLIPBOARDDATA
`
`310
`
`320
`
`330
`
`340
`
`350
`
`360
`
`370
`
`Petitioner IBM – Ex. 1072, p. 3
`
`
`
`U.S Patent
`
`Mar 13 2001
`
`Sheet
`
`of
`
`US 6202100 B1
`
`FIG
`
`SELECTS FORMAT
`USER AT
`GETCLIPBOARDDATA
`
`ASKS CLIP RECEIVE FOR FORMAf1
`CLIPBOARD
`WM_RENDERFORMAT
`
`410
`
`420
`
`CLIP RECEIVE SEND MESSAGE TO CLIP SEND
`
`430
`
`SEND REQUESTS DATA FROM CLIPBOARD
`GETCLIPBOARDDATA
`
`440
`
`CLIP SEND RECEIVES DATA FROM CLIPBOARD z--
`
`CLIP SEND FORWARDS DATA TO CLIP RECEIVE
`
`460
`
`CLIP RECEIVE PASSES DATA TO CLIPBOARD
`SETCLIPBOARDDATA
`
`APPN
`
`RECEIVES DATA FROM CLIPBOARD
`
`470
`
`480
`
`Petitioner IBM – Ex. 1072, p. 4
`
`
`
`US 6202100 B1
`
`OBJECT LINKING AND EMBEDDING OVER
`COMPUTER NETWORK
`
`at
`
`first
`
`second
`
`then
`
`the available
`
`asked
`formats The
`to select one of
`being
`application may decide automatically which format to take
`particular format or it may
`perhaps it can only accept
`pass this choice on to the user typically the most preferred
`format
`client application would be
`the
`by
`
`recognised
`
`accepted
`An application
`can request via an operating system call
`to become the owner or viewer of the clipboard Becoming
`the owner
`is necessary for delayed rendering for the appli
`cation to receive notification whenever
`text/data is requested
`viewer of
`from the clipboard Becoming
`
`the clipboard
`
`10
`
`notification whenever
`
`is
`
`results
`
`if
`
`25
`
`in the application
`receiving
`another application writes something to the clipboard
`The clipboard is well-suited to one-off transfers How
`particular piece of data in the first
`ever
`application
`updated regularly and each of these updates is to be copied
`across to the second application then repeated use of the
`and awkward This problem is
`clipboard becomes tedious
`20 addressed by the provision in OS/2 and Windows
`of an
`function termed dynamic data exchange DDE
`additional
`In DDE link is set up to copy data from first application
`the client As the name
`second application
`the server to
`implies the link is dynamic in that
`for as long the link is
`maintained modifications to the selected entry in the server
`are automatically copied to the client applica
`application
`tion In other words the client contains
`shadow or mirror
`
`is
`
`30
`
`of the data in the server
`can initiate DDE by
`in OS/2 or Windows
`An application
`one of two methods In the first which in practice is hardly
`broadcasts an INITIATE message
`ever used an application
`on the node The message
`to other applications
`executing
`following information Application Name
`text string using zeroes as delim
`Topic Item in an ASCII
`iters The first of these is used to identify the originating
`
`contains
`
`the
`
`application the topic is then used to specify some particular
`
`application
`
`at
`
`necessary
`
`application
`
`surrender
`
`to
`
`reference
`
`to
`
`first
`
`Related applications Background
`information useful for
`invention may be found in
`of the present
`an understanding
`U.S patent application Ser Nos 08/149487
`and 08/203067
`1993 and Feb 28 1994 respectively
`filed on Nov
`in the
`name of IBM Corporation which are incorporated
`herein by
`are filed with this
`reference Copies of these two applications
`application
`invention relates to method of providing
`The present
`embedding OLE over
`linking and
`computer
`object
`network in which an object
`from first application
`in the network
`into
`computer
`is incorporated
`second computer
`in the network
`running multi-tasking operating
`personal computer
`system such as OS/2 or Windows1
`can support more than
`is sometimes
`one application
`running simultaneously It
`data from one
`for
`to be able to copy
`user
`to another for example to copy numbers from
`report being prepared on wordprocessor
`into
`spreadsheet
`One way of performing this transfer
`is to write the data from
`file on the hard disk and
`the first
`into
`application
`into the second application This is simple
`retrieve the file
`but relatively cumbersome
`OS/2 is
`trademark of International Business Machines Corporation and
`Windows is
`trademark of Microsoft Corporation
`The OS/2 and Windows operating systems provide more
`facility known as the clipboard for perform
`sophisticated
`ing such an operation Applications copy
`data onto the
`piece of memory which they then
`clipboard effectively
`to the operating system Another application
`can
`system to find out what
`then interrogate
`the operating
`available on the clipboard and if desired take
`copy of the
`data from the clipboard Normally an application will write
`the data into the clipboard in several different formats and
`then specify in which of these
`the receiving
`application will
`data formats it would like to receive the data There are
`several standard formats which are available
`for all appli
`to use The clipboard can be used for exchanging
`cations
`text images and so on
`One slight complication is that
`the clipboard supports
`delayed rendering In this case the data itself
`the clipboard for
`format
`particular
`the data The data itself
`by the
`is supplied
`only when that particular format is
`originating application
`requested by another application
`to use
`is possible
`delayed rendering for some all or none of the formats for
`any particular piece of data posted to the clipboard
`typical situation in which
`user might employ the
`clipboard function would be to copy
`from
`portion of text
`one document
`to another The user generally with
`mouse
`and cursor would first
`identify the text to be copied from the
`server application and then select
`the appropriate
`menu option to place this text
`in the clipboard The appli
`cation would then pass the text to the operating
`system in
`variety of formatsfor example as
`bit map
`text
`file as
`as metafile as miniature document complete with format
`information and so on The operating system specifies
`of common predetermined formats but
`is also possible for
`to use its own particular or private format
`the application
`The formats are normally listed in order of preference the
`that which
`most preferred format being
`preserves most
`information from the server about appearance etc eg ASCII
`text might be the least preferred format since it contains no
`formatting information at all The user
`in another client
`can then request
`that
`the text/data
`is retrieved
`application
`from the clipboard Such
`request results in the application
`
`is not supplied
`rather only
`
`It
`
`list
`
`it
`
`the item indicates
`
`position
`
`the
`
`facto
`
`in the
`
`first
`
`private
`
`representative
`
`data file or whatever whilst
`within the data file For example
`spreadsheet program
`40 would give the spreadsheet name as the topic
`and perhaps
`use R1C1 as the item to identify the data cell
`in the first
`column Applications receiving
`row and
`message that wish to participate in DDE with the originating
`and DDE conversation
`can then
`node respond positively
`45 be set up
`The second method which has become
`the
`de
`standard is to initiate DDE via the clipboard When
`piece
`of data is copied to the clipboard one of the formats used is
`of DDE under Microsoft
`format
`50 Windows conventionally this private format is Link The
`data stored with this private format is in fact the Application
`Topic and Item parameters described above When the user
`this data into the second client application this
`retrieves
`as providing DDE When this
`format is indicated
`the client application
`responds requesting
`55 option is selected
`the start of DDE This response is actually performed by
`and topic
`message including the application
`broadcasting
`which is recognised by the originating server leading to the
`the DDE conversation Note that
`commencement
`of
`the
`occurs between two windows
`one
`actually
`and one belonging to the client
`belonging to the server
`These are accessed by identifiers known as window handles
`DDE connection between
`The user can therefore initiate
`and the client At the start of this DDE
`the server application
`65 conversation the server and client negotiate regarding the
`data format to use for data transfer between them Obviously
`for DDE to work the client and server must be compatible
`
`private
`
`60 conversation
`
`Petitioner IBM – Ex. 1072, p. 5
`
`
`
`that
`instead of
`tions except
`map text string or whatever
`the data is transferred
`In OLE
`selected piece of data an object
`object
`is cut
`from first application
`the source or server and added to
`the clipboard in normal fashion Private formats are used to
`that Object Linking and/or Object Embedding are
`available OLE actually
`represents two separate facilities
`the data associated with these formats specifies the server
`application name and topic and item in the same format used
`for DDE In Object Embedding the data is also added to the
`so-called native format which contains all
`clipboard in
`the information needed to allow the source application
`to
`the data If either OLE format is selected
`process
`from second application
`the client or target the object
`pasted into the second application At this stage the pasted
`normal clipboard transfer had been
`material
`is visible as if
`performed this is achieved by also copying another suitable
`format
`from the clipboard to allow display of
`the data
`typically this is the format that would have been adopted
`had OLE not been invoked However
`that has
`the object
`been incorporated
`contains extra
`into the target application
`information over and above the bit map text or whatever
`it also contains the
`the appearance of the object
`representing
`name at least of the original source application plus for
`native format including all the original
`Object Embedding
`information held by the server application
`control
`about
`that
`object The object
`to identify and be further processed by the server applica
`tion In Microsoft Windows
`double
`
`it
`
`application
`
`clicking on the object
`to launch the server application
`
`as seen
`
`to existing applications
`method of provid
`Accordingly the invention provides
`linking and embedding OLE over
`computer
`ing object
`35 network in which an object generated by
`first application
`in the network may be incorporated
`first computer
`second application
`second computer
`in the network
`said first and second computers
`each running
`stand-alone
`clipboard the method com
`system supporting
`operating
`40 prising the steps of
`notification that
`
`receiving
`
`mitted material
`
`obtaining
`
`material
`
`application
`to the clipboard on the first
`computer
`list of available
`formats for said submitted
`
`the first
`
`has sub
`and
`
`US 6202100 B1
`
`format
`that
`the private
`the client recognises
`to the extent
`placed on the clipboard by the server as an invitation to DDE
`least one data format in common
`and they support at
`Another approach to the transfer of data between appli
`is provided in Microsoft Windows
`and
`is termed
`cations
`Object Linking and Embedding OLE OLE is somewhat
`between applica
`standard clipboard transfer
`transferring the data as
`
`similar to
`
`bit
`
`indicate
`
`further
`
`as an
`
`is
`
`therefore contains sufficient information
`
`Further information about OLE under Microsoft Windows
`can be found in Object linking and Embedding Program
`mers Reference Version
`Microsoft Press 1992
`To date OLE has essentially been directed at transferring
`data between
`two applications
`both running on
`single
`machine although some commercially available products do
`limited ability to perform OLE across
`have
`network For
`example the Microsoft Windows
`for Workgroups
`product
`supports OLE across two or more machines however
`the
`Windows
`for Workgroups
`system is specifically
`operating
`network
`be
`can
`for use over
`In
`sense
`single system distributed over multiple hard
`regarded as
`ware systems which must be connected together by
`local
`area network LAN Only systems running Windows
`can use this network OLE there is no mecha
`is Workgroups
`nism for supporting OLE between machines with other
`operating systems
`Another product ProShare from Intel Corporation also
`limited form of OLE over
`network This product
`provides
`20 permits sharing of data from one node to another ie material
`at one node is mirrored at
`the
`entered into the application
`other node This product supports OLE so that
`if an object
`at one node it
`is embedded into the application
`likewise
`the other node This facility however
`appears embedded at
`is only useful for providing OLE within this one application
`to provide OLE between
`is not possible
`an arbitrary
`first machine and an arbitrary application
`on
`application
`second machine
`
`10
`
`designed
`
`25
`
`it
`
`it
`
`for
`
`on
`
`be
`Thus
`it will
`seen
`that although
`30 addressed the problem of OLE over
`extent
`it has not provided
`comprehensive
`both flexible and relevant
`
`the prior art has
`network
`
`to
`
`limited
`
`solution that
`
`is
`
`at
`
`into
`
`at
`
`possible by
`is subsequently
`from the
`
`target
`and use it
`
`to
`
`process the object This is effected by the client application
`to the Microsoft Windows
`sending an appropriate
`
`request
`
`If
`
`it
`
`operating system
`An example of the use of OLE would be if
`drawing
`is used to create
`graph ie the object which is
`application
`using OLE into
`processor docu
`word
`then incorporated
`ment
`is subsequently decided to update the graph there
`is no need to repeat
`this
`process ie update the graph in the
`and then copy it across again into the
`drawing application
`word processor document
`rather double clicking on the
`graph in the document
`launches
`the drawing application
`which can then be used to update the graph directly Thus it
`will be seen that OLE unlike the normal clipboard or DDE
`allows pasted material to be updated from within the target
`date DDE by
`application and
`at some arbitrary future
`link between
`two
`contrast
`only operates whilst
`the
`the
`is maintained and even then only allows updat
`applications
`ing from within the server application
`In Object Linking the object contains
`the original
`the relevant data including disk
`file containing
`drive filename etc thus any updates made to the original
`from the client
`as viewed
`are reflected
`in the object
`
`45
`
`50
`
`formats
`the
`corresponding
`transmitting
`Embedding to the second computer
`to Object Embed
`submitting the formats corresponding
`ding to the clipboard at the second computer
`for selection by
`the second application
`formats for Object Embedding
`Once the appropriate
`have been submitted to the clipboard at the second computer
`into the second
`to be incorporated
`is available
`the object
`in the normal manner by selecting OLE from the
`application
`clipboard Subsequently when the object
`invoked
`by
`the second com
`55 double clicking the operating
`system at
`having the same name as
`look for an application
`puter will
`the first application but residing on the second computer
`then be launched to allow the object
`This application will
`be processed as per normal OLE In the present
`invention the
`nature of the OLE is completely transparent
`60 cross-network
`and no special operating
`to the applications
`systems
`
`to Object
`
`is
`
`to
`
`are
`
`reference back to
`
`file
`
`required
`
`application In Object Embedding by contrast effectively
`copy is made of the original data so that
`it does not mirror
`updates to the source data Thus it can be seen that Object
`Linking and Object Embedding although
`differ somewhat
`in the precise details of their operation
`
`closely related
`
`Clearly it
`
`is necessary as described above for the second
`that
`also to possess
`copy of the first application
`computer
`the first computer In practice this will normally be
`65 exists at
`the case in many organisations standard software packages
`because they are
`to all users for example
`are available
`
`Petitioner IBM – Ex. 1072, p. 6
`
`
`
`installed onto
`
`first
`
`US 6202100 B1
`
`at
`
`at
`
`the
`
`the
`
`DDE and to process it accordingly rather
`denoting Object Linking
`Preferably the formats are submitted to the clipboard on
`the second computer
`using delayed rendering and further
`comprising the steps of
`
`than to drop it as
`
`local area network LAN It
`is not at present
`for double clicking in the second application
`supported
`the second computer
`to result in the first application
`remotely launched
`being
`to process
`computer
`object The reason for this is that
`the operating system at the
`second computer
`could not successfully
`resolve the refer
`computer when the
`ence
`on the first
`to the first application
`object was invoked Of course future
`systems
`operating
`may be able to handle such references
`or alternatively an
`could be used to act as
`on the second computer
`application
`an intermediary between the first
`on the first
`application
`system on the second computer
`is not straightforward and
`
`and the operating
`
`computer
`However
`this latter
`suggestion
`to be implemented
`has yet
`To support OLE over
`network it
`is only necessary to
`formats required for OLE to the clip
`submit
`the actual
`board at the second computer In Microsoft Windows appli
`cations the availability of OLE is conventionally signalled
`format named OwnerLink It may be desired to pick
`by
`just this format from the clipboard at the first computer
`out
`plus formats for the native and presentation data and then
`send them to the second computer
`this approach minimises
`transmissions between
`the two
`the
`size of
`However
`preferred embodiment
`available formats for the material submitted to the clipboard
`for submission to the
`is transmitted to the second computer
`the second computer This effectively allows
`clipboard at
`on the first
`and second computers
`to transpar
`single clipboard as described in more detail
`in
`ently share
`the afore-mentioned U.S application Ser No 08/149487
`the whole list
`the
`is preferred that
`is transferred it
`the step of detecting if one of the
`method further includes
`
`in
`
`computers
`the list of all
`the
`
`applications
`
`If
`
`corresponds
`
`Linking In
`to Object
`available
`formats
`is conven
`Microsoft Windows
`such
`format
`applications
`tionally named ObjectLink If such
`format is present it
`the second computer eg
`is not submitted to the clipboard at
`from the list prior
`by removing it
`to transmission to the
`second computer or at
`the second computer before submis
`sion
`to the clipboard Effectively this prevents Object
`the network Again the
`Linking being performed over
`the second
`reason for this is that
`the operating
`system at
`resolve the reference to the
`could not successfully
`computer
`computer when the object was
`original data file on the first
`invoked Of course future operating systems may be able to
`handle such references or alternatively an application on the
`could be used to act as an intermediary
`second computer
`between the first application
`and the
`on the first
`computer
`system on the second computer However
`is not straightforward and has yet
`
`operating
`
`latter
`
`suggestion
`
`implemented
`
`this
`
`to be
`
`applications
`this format
`
`such
`
`format
`
`the
`
`it
`
`check is made to see if one of the available
`Preferably
`to dynamic data exchange DDE In
`formats corresponds
`Microsoft Windows
`is conven
`tionally named Link If
`the data
`is present
`associated with the
`format
`is changed by replacing
`name therein ie denoting
`the first application
`application
`name containing
`with
`an identifier of the first computer
`The replacement name refers to
`on
`substitute application
`the second computer which picks up any DDE requests and
`them back
`refers
`to first
`in the
`as described
`computer
`afore-mentioned U.S application Ser No 08/203067
`Note that
`slight complication to the above is that
`in reality not all Microsoft Windows applica
`appears that
`tions adhere fully to the format naming conventions some
`use ObjectLink to denote DDE link Thus it may be more
`in some cases to regard ObjectLink
`as denoting
`
`effective
`
`from the second appli
`responsive to receiving
`request
`in
`copy of the clipboard material
`particular
`to the first com
`format sending
`corresponding
`puter
`obtaining the requested material from the clipboard at the
`first computer
`from the
`requested material obtained
`transmitting the
`to the second computer
`clipboard on the first
`computer
`and submitting the requested material to the clipboard on
`for passing to the second application
`is the second computer
`The advantage of using delayed rendering is that
`it avoids
`network
`traffic in relation to clipboard formats
`If material is submitted to
`
`request
`
`cation for
`
`10
`
`superfluous
`
`that are never actually
`requested
`the clipboard in the form of
`bit map for example this
`20 saving can be quite significant
`the data associated
`In fact
`with the OLE format per se is simply the string containing
`and item and so the delayed
`name topic
`the application
`rendering for this format does not save much bandwidth
`per
`se Thus it would be quite feasible to send the data associated
`25 with OLE format even if
`it was obtained from the clipboard
`on the first
`the same
`computer
`using delayed rendering at
`time as the format
`and submit both together
`itself
`clipboard on the second computer However
`the presentation
`and native data associated with OLE may well be extensive
`favoring the use of delayed rendering which furthermore
`allows the same approach to be used for OLE as for all
`the
`other clipboard formats including those such as bit map
`and second com
`preferred embodiment both first
`In
`applications which are responsible
`puters run conferencing
`for exchanging messages between
`and
`second
`computer The conferencing
`are also respon
`applications
`and
`interacting via the clipboard with the first
`sible for
`second applications
`
`30
`
`35
`
`to the
`
`the
`
`first
`
`at the first computer obtains the list
`conferencing
`application
`40 of available formats and then the associated data from the
`
`at
`
`their
`
`respective
`
`computers ie the
`
`clipboard at
`
`application
`
`at
`
`available
`
`typical computer
`
`computer whilst
`the first
`the conferencing
`submits the
`second computer
`the
`list of
`formats and then the associated data to the clip
`the second computer
`board at
`detailed description of an embodiment of the invention
`will now be provided by way of example with reference to
`the following drawings
`FIG is
`schematic block diagram of
`workstation
`FIG
`
`45
`
`50
`
`55
`
`is
`
`components
`FIG is
`
`the major software
`simplified diagram of
`running on the workstation of FIG
`flow chart
`illustrating the process for copying
`first machine to the clipboard at
`
`clipboard entry at
`second machine
`FIG is
`of
`illustrating the processing
`flow chart
`the second machine for
`clipboard entry from the
`
`request at
`first machine
`FIG is
`simplified schematic diagram of
`computer
`display screen 12
`system unit 10
`system with
`mouse 16 The system unit 10 includes
`14 and
`60 keyboard
`microprocessor 22 semi-conductor memory ROM/RAM
`26 The
`24 and
`bus over which data is
`transferred
`computer of FIG may be any conventional workstation
`such as an IBM PS/i computer The computer of FIG is
`network adapter card 30 This card together
`65 equipped with
`with accompanying
`software allows messages to be trans
`mitted onto and received
`computer workstation
`by the
`
`Petitioner IBM – Ex. 1072, p. 7
`
`
`
`US 6202100 B1
`
`on two
`of
`the
`
`Various forms of network adapter card are available for use
`ISDN and so
`such as Token Ring Ethernet
`with networks
`on The operation of the network adapter card is well-known
`and so will not be described in detail
`FIG illustrates the main software components
`terminals
`for an understanding
`necessary
`invention Both terminals
`and
`are typically workstations
`as shown in FIG and have clipboards CLIPBOARD
`and CLIPBOARD
`respectively supported by the oper
`system eg Microsoft Windows
`the
`at
`respective
`ating
`terminals The two terminals are connected by
`network
`with
`communications
`software
`link
`appropriate
`COMMS at each
`to provide data communica
`terminal
`Such communi
`and terminal
`tions between terminal
`software interfaces with the network
`cations
`adapter card
`and is again well-known in the art
`software which
`Terminals
`and
`also run conferencing
`for implementing the OLE between the two
`terminals
`This
`software
`conferencing
`as
`is designated
`P2P-A and P2P-B on terminals
`respectively P2P-A
`and
`and P2P-B are simply additional applications
`as far as the
`for present pur
`system is concerned
`operating
`although
`poses they are perhaps most simply regarded as enhance
`ments to the COMMS software P2P-A and P2P-B interact
`with the COMMS software to exchange messages between
`and
`communication pro
`terminals
`using conventional
`tocols The operation of P2P-A and P2P-B is described in
`more detail below An example of commercially available
`is Person to Person2 for
`suitable
`software
`conferencing
`from IBM Corporation which supports confer
`Windows
`variety of com
`ences between two or more people over
`munications links eg LAN ISDN asynchronous
`trademark of International Business Machines Corpo
`
`2Person to Person is
`
`is responsible
`
`ration
`
`and
`
`routine
`
`with an
`
`application
`
`it
`
`is
`
`it
`
`program APPN
`An application
`CLIP SEND part of P2P-A run on terminal
`program APPN
`running on terminal
`CLIP SEND uses the COMMS system to send message to
`to activate another routine CLIP RECEIVE
`terminal
`CLIP SEND makes an oper
`part of P2P-B at terminal
`viewer of CLIPBOARD
`to become
`in
`ating system call
`accordance with conventional
`clipboard manipulation The
`from
`terminal
`selects
`the appropriate material
`user at
`and copies this into CLIPBOARD
`APPN
`in the con
`ventional manner Because the CLIP SEND routine
`viewer of CLIPBOARD
`is notified of any updates to
`CLIPBOARD
`When it
`change to CLIP
`is alerted to
`BOARD
`requests the list of available formats which it
`sends to CLIP RECEIVE CLIP RECEIVE now takes own
`ership of CLIPBOARD
`and inserts the list of
`formats
`ie it passes
`using delayed rendering
`to the
`null pointer
`the bandwidth
`overheads
`system This avoids
`operating
`associated with sending the actual data itself The contents
`of CLIPBOARD
`are thus reproduced on CLIPBOARD
`In the Microsoft Windows
`environment
`the
`operating
`calls for network OLE are as given below and are
`specific
`listed in FIGS
`and
`although it should be noted that
`the
`system CLIP
`invention is not
`limited to this operating
`viewer of CLIPBOARD
`SEND becomes
`using SetClip
`boardViewer step 310 and APPN
`inserts data onto
`CLIPBOARD
`step 320 This
`using SetClipboardData
`notification WM DRAWCLIPBOARD to be sent
`causes
`to CLIP SEND step 330 CLIP SEND interrogates CLIP
`BOARD
`using EnumClipboardFormats step 340 to
`obtain the list of formats in which the data on the clipboard
`to the remote terminal
`is available It passes this list
`using
`software step 350 CLIP RECEIVE
`standard messaging
`then uses the call SetClipboardOwner to become the owner
`of CLIPBOARD
`step 360 The formats are then inserted
`onto CLIPBOARD
`step 370 using the delayed rendering
`option in SetClipboardData and become available for user
`selection
`
`rial
`
`20
`
`30
`
`40
`
`45
`
`65
`
`from
`
`it
`
`It
`
`clipboard formats are now available
`The various
`within APPN
`One of
`these formats is recognised
`by
`to OLE Object Embedding For
`APPN
`as corresponding
`invention we assume that the user
`the purpose of the present
`terminal
`selects Object Embedding the processing
`at
`associated with other possible selections is described in the
`Ser Nos
`afore-mentioned applications U.S application
`and 08/203067
`08/149487
`The processing involved with satisfying the OLE request
`is illustrated in FIG Initially the user selects the clipboard
`to Object Embedding either
`10 entry corresponding
`implicitly
`from
`GetClipboardData call
`or explicitly resulting in
`APPN to CLIPBOARD
`step 410 Since all the formats
`are inserted onto CLIPBOARD
`using delayed rendering
`of transmitting formats which
`to save the bandwidth
`are
`never
`required the operating
`the clipboard
`system passes
`request back to CLIP RECEIVE the origin of the clipboard
`using WMRENDERFORMAT
`step 420 This
`entry
`from CLIP
`is converted
`into
`message sent
`request
`RECEIVE to CLIP SEND step 430 CLIP SEND now
`entry on CLIPBOARD
`the corresponding
`interrogates
`using GetClipboardData step 440 which will produce the
`data string corresponding
`to Application.Topic.Item.
`this
`may be directly available from the clipboard or provided by
`APPN
`using delayed rendering step 450 CLIP SEND
`then sends message containing
`this data string across to
`25 CLIP RECEIVE step 460 Once it
`has
`received
`the
`requested data CLIP RECEIVE passes the data to CLIP
`BOARD
`step 470 thereby satisfying the delayed ren
`dering request and CLIPBOARD
`forwards the data to
`APPN
`step 480
`As explained above in object embedding effectively three
`formats are taken simultaneously from the clipboard cor
`responding to the name of the source application the mate
`presentation format and the data in
`format
`in
`native to the server application Thus the steps of FIG are
`in fact essentially repeated for each of these three formats
`The end result is that the client application
`receives sufficient
`embed the object
`information to allow it
`to successfully
`Once the object has been embedded in APPN
`is no
`that has been embedded from local
`different from an object
`ie one running on the same machine as APPN
`application
`from within APPN
`Thus double clicking on the object
`to the operating system at machine
`and
`will result in call
`to launch an application having the same name at
`an attempt
`APPNA at machine
`there is no such application
`Clearly if
`at machine
`this will
`result in an error but providing that
`is available it will be launched to
`the requisite application
`in accordance with OLE using conven
`the object
`process
`system facilities
`tional operating
`is conceivable
`that
`implementation might be adopted whereby double
`different
`clicking on the object does in fact result in the launch of the
`at the server node perhaps using an intermediary
`application
`system OLE
`on the client node to intercept
`the operating
`messages and forward them to the server node
`under Microsoft Windows
`The convention
`is for Object
`Embedding to be designated on the clipboard by
`private
`format of OwnerLink and
`the associated data is repre
`sented by Applic