throbber
Ulllted States Patent
`
`[19]
`
`[11] Patent Number:
`
`5,857,189
`
`Riddle
`
`[45] Date of Patent:
`
`Jan. 5, 1999
`
`US005857189A
`
`[54] FILE SHARING [N A TELECONFERENCE
`APPLICATION
`
`5,737,599
`5,754,306
`
`4/1998 Rowe et al.
`5/1998 Taylor et al.
`
`.......................... .. 707/104
`......................... .. 358/400
`
`OTHER PUBLICATIONS
`Apple QiiickTime Conferencing Kit, Apple Computer, Inc.,
`Aug. 1995.
`“Apple QuickTime Conferencing,” Apple QuickTime Fact
`Sh t,AlC t,I .,J
`.1995.
`ee
`pp 6 Ompu er DC
`an
`Primary Examiner—Wayne Amsbury
`Attorney, Agent, or Fz'rm—Blakely, Sokoloff, Taylor &
`Zafman
`[57]
`
`ABSTRACT
`.
`A system and method vyhich enables teleconference mem-
`bers to share files during a teleconference. An endpoint
`including a processor with a memory coupled thereto. The
`memory stores a teleconferencing application. Afile sharing
`mechanism is associated with the application at run time.
`The file .ShaF11.1g meehamem generates 3 Wmdew 0“ the Ieeal
`display in which the local member of the teleconference may
`post advertisements for files thereby making the file shar-
`able. The local endpoint sends the advertisement to a remote
`endpoint. A corresponding accessory receives the advertise-
`ineiit and posts it in the remote Window. Alocal member can
`copy remotelv posted files by manipulating the correspond-
`in advemsegnent
`g
`
`'
`
`4 Claims, 20 Drawing Sheets
`
`K 604
`
`«eso
`
`[75]
`
`Inventor: Guy Riddle, Los Gatos, Calif.
`.
`.
`[73] Assignee: Apple Computer, Inc., Cupertino,
`Cahfi
`[21] Appl. No.: 646,626
`.
`May 8: 1996
`F1169:
`I22]
`Int. Cl.5 ...................................................... G06F 17/30
`[51]
`[52] U.S. Cl.
`............................................. .. 707/10; 707/104
`[58] Field of Search ................................... .. 395/615, 610;
`707/10, 104
`
`[56]
`
`References Cited
`
`U~S~ PATENT DOCUMENTS
`11/1989 Mahmound ............................. .. 379/53
`12/1995 shibata et 31.
`370/62
`5/1996 Bates ....... ..
`345/331
`5/1996 Courant et a .
`395/701
`8/1996 MCNe11eY et a1~
`364/514
`11/1996 Riddle 6‘ 31'
`379/202
`2/1997 P°1°m5ki ““ “
`370/263
`2/1997 Shibata et al.
`370/260
`5/1997 Warren et al.
`..... .. 345/350
`7/1997 Aldred et al.
`395/200.5
`9/1997 Muranaga et al.
`.................... .. 345/329
`
`
`
`4,882,743
`5,477,545
`5,515,491
`5,522,073
`5,550,754
`525722582
`5>60O>646
`5,606,554
`5,632,022
`5,649,105
`5,671,428
`
`FILE EXCHANGE
`POSTING EVENT
`
`ERROR EVENT
`
`FILE EXCHANGE MESSAGE
`ARRIVED EVENT
`
`FILE EXCHANGE MESSAGE
`ARRIVED EVENT
`
`FILE EXCHANGE COPY
`STATUS EVENT
`
`FILE EXCHANGE POSTING
`REMOVED EVENT
`
`
`
`
`FILE EXCHANGE MESSAGE S
`ARRIVED EVENT
`
`6
`
`31
`
`63
`
`2
`
`633
`
`634
`
`635
`
`«ese
`
`RPX Exhibit 1136
`RPX V. DAE
`RPX Exhibit 1136
`RPX v. DAE
`
`
`
`
`
`
`

`
`’ .3--
`
`1fl
`
`tnuEtoaP&U
`
`maJ
`
`
`
`ummvommw
`
`any
`
`mm,
`
`mmm_
`
`3mm.
`
`999
`
`S
`
`Am
`
`1
`
`fl.
`
`5,857,189
`
`mmm:
`
`0EGDGDDDDDDDUD
`
`
`
`0DDDUUDUUUDDD2BEnwwmmmm.mmmwwww
`
`UUDUUUUDUUUH
`
`HUD
`
`oN_
`
`82
`
`gdflnnunuunflflD
`
`DUUUUUUUUDDDDD
`
`UUUUDUDDDDUDD
`
`DUUUUUDDUDUD
`
`UUUDUUUDDUDN
`
`DH
`
`Dun
`
`H.65
`
`
`
`
`
`
`

`
`U.S. Patent
`
`J
`
`1
`
`S
`
`02PI.0
`
`5,857,189
`
`
`
`
`
`M...EmE=oo_uv_B_
`
`
`
`
`
`1%muzmficoo.3:EQEEBSQ
`
`
`
`.\|EoezoouxwnMmom_E.oc>m._o_o0
`
`59=m>>$53.:3uofiom
`
`91%
`_2._.wE_._.v_o_:O\WflewE.atmEEE
`
`EmeaoouV62M>._.
`
`:55m®Em_..in_uEmon_
`
`2ace0:inumfioa
`
`m.®_n_
`
`I
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 3 of 20
`
`5,857,189
`
`1500
`
`DISPLAY
`
`3.2.1
`
`FRAME
`
`M
`
`I_ _ _ _ _ — _ _ _ _ — _"7
`K MAIN
`READ ONLY
`MASS
`MEMORY
`MEMORY
`STORAGE
`
`DEVICE 307
`£6
`M
`BUFFER
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`KEYBOARD
`
`322
`
`CURSOR
`CONTROL
`
`£3
`
`HARD COPY
`DEVICE
`32-P
`
`NETWORK
`CONNECTOR
`
`fl
`
`SOUND
`OUTPUT
`DEVICE
`
`COMM
`DEVICE
`
`321
`
`FIG. 3
`
`160
`
`170
`
`150
`
`‘
`
`NETWORKING MEDIUM
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 4 of 20
`
`5,857,189
`
`401
`
`APPLICATION PROGRAM
`
`
`
`API CALLS
`
`404
`
`05
`
`406
`
`I
`
`
`
`CONFERENCE COMPONENT
`
`400
`
`
`MESSAGES 402
`
`1
`
`TRANSPORT COMPONENT
`
`I
`
`403
`
`NETWORK COMPONENT
`
`16°
`
`170
`
`FIG. 4
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 5 of 20
`
`5,857,189
`
`MTConference Accessorize(cc, "Acc1 Acc2 Acc3")
`
`AccessorizeUpon(Acc2, Acc3)
`r420
`430
`
`—C
`
`AccessorizeUpon(Acc1, Acc2)
`
`FIG. 4a
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 6 of 20
`
`5,857,189
`
`Conference Component
`
`I» 400
`
`Sound Stream
`Player
`
`513
`
`I:
`
`I Source Stream
`I
`Director
`L _ _ _ _ _ __ J
`
`Transport
`Component
`
`Component
`1. _ _ _ _ _ _ I
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 7 of 20
`
`5,857,189
`
`ACCESSORY INITALIZED
`EVENT
`
`614
`
`CONFERENCE READY EVENT ; $
`
`601
`
`t
`
`MEMBER READY EVENT ;
`
`ACCESSORY READY X
`EVENT
`
`602
`
`610
`
`612
`
`WINDOW EVENT
`
`MEMBER READY EVENT
`
`E503
`
`OTHER EVENTS
`
`5604
`
`MEMBER TERMINATED S
`EVENT
`
`MEMBER TERMINATED S
`EVENT
`
`DISPOSE WINDOW EVENT
`
`605
`
`606
`
`613
`
`611
`
`ACCESSORY TERMINATED ;
`
`ms
`
`‘W 600
`
`EVENT
`
`k
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 8 of 20
`
`5,857,189
`
`f 604
`
`630
`
`631
`
`632
`
`633
`
`634
`
`635
`
`636
`
`5
`
`
`
`FILE EXCHANGE
`POSTING EVENT
`
`ERROR EVENT
`
`FILE EXCHANGE MESSAGE
`ARRIVED EVENT
`
`FILE EXCHANGE MESSAGE
`ARRIVED EVENT
`
`FILE EXCHANGE COPY
`STATUS EVENT
`
`FILE EXCHANGE POSTING
`REMOVED EVENT
`
`FIG. 6a
`
`
`
`FILE EXCHANGE MESSAGE ;
`ARRIVED EVENT
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 9 of 20
`
`5,857,189
`
`MEMBER INITIALIZATION
`
`AccESSoRIzE ACCESSORIES
`
`SET CAPABILITIES 5
`
`701
`
`702
`
`SET SETTINGS
`
`SET OPTIONS
`
`SET MODE
`
`709
`
`;
`
`711
`
`S
`
`704
`
`SET TIMEOUT S
`
`706
`
`703
`REGISTER & PUBLISH K
`ADDRESS
`
`LISTEN FOR CONFERENCE
`CALLEHS
`
`710
`
`FIG. 7
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 10 of 20
`
`5,857,189
`
` WINDOW
`
`ASSOCIA D
`‘ CCESSO
`.
`
`
`
`FIG. 8
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 11 of 20
`
`5,857,189
`
`ADVERTISMENT RECEIVED ;
`
`901
`
`902
`
`YES
`
`NO
`
`CREATE DATA STRUCTURE
`TO REMEMBER NAME AND
`WHO SENT
`
`SEND POSTING ADDED E
`EVENT
`
`903
`
`904
`
`SAVE ICONS
`
`DISPLAY AD
`
`905
`
`X
`
`905
`
`S
`
`FIG. 9
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 12 of 20
`
`5,857,189
`
`
`
`FIND AD
`DATA
`STRUCTURE
`
`
`
`SEND AD DELETED MESSAGE
`
`AD POSTED
`
`
`LOCALLY ‘ TO REMOTE ENDPOINT
`
`
`
`
`
`
`DELETE AD
`
`REDRAW LIST
`
`FIG. 10
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 13 of 20
`
`5,857,189
`
`1102
`
`1103
`
`1104
`
`1101
`
`NO
`
`
`
` FHUD
`LOCALAD
`
`NAME?
`
`
`YES
`
`ALLOCATE COPY
`STRUCTURE
`
`RECORD WHO ASKED E
`AND WHICH AD
`
`RECORD COPY X
`REFERENCE
`
`OPEN FILE
`
`/£;’1105
`
`ADD COPY STRUCTURE FOR S
`LlST FOR THIS AD
`
`1106
`
`FIG. 1 1
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 14 of 20
`
`5,857,189
`
`CREATE EMPTY FILE
`FCR WRITING
`
`1201
`
`CREATE COPY DATA E
`STRUCTURE
`
`INITIALIzE FORK AND
`SET oFFSET TO zERo
`
`OPEN EMPTY FILE FOR S
`WRITING
`
`1202
`
`1203
`
`1204
`
`SEND FILE REQUEST
`
`S1205
`
`CALL MORE PLEASE 5
`TI-IREE TIMES
`
`|N|T|AL|ZE PROGRESS E
`BAR TO 0%
`
`1206
`
`1207
`
`FIG. 12
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 15 of 20
`
`5,857,189
`
`CURRENT
`FOF{K=ZERO
`
`
`
`FIG. 13
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 16 of 20
`
`5,857,189
`
`1401
`
` FIND
`
`COPY STRUCTURE W/
`COPY REF. AND REQUESTING
`
`MEMBER
`
`
`
`
`
`ES
`
`ALLOCATE SIZE OF
`REPLY MESSAGE
`
`1403
`
`
`
`
`
`FETCH COMMENT
`INTO REPLY
`BUFFER
`
`DOES
`COMMENT
`XIST?
`
`FORK
`PE IS COMMENT’?
`
`
`
`SET REPLY
`ISSUE FILE SYSTEM
`SIZE T0 LENGTH
`READ OF ALLOCATED
`
`
`OF COMMENT
`BYTES
`
`
`
`
`SEND MESSAGE
`BACK TO
`REQUESTER
`
`
`
`CALL KILL
`
`
`
`
`
`
`
`COPQIXIEURSROR
`CA\,Lv§NK(')LF';M(i&PY
`
`STATUS
`
`
`
`
`SEND MESSAGE BACK
`TO REQUESTER
`
`FIG. 14
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 17 of 20
`
`5,857,189
`
`ADVANCE FORK
`
`1504
`
`1505
`
`SET OFFSET TO ZERO
`
`
`
`ADVIANCED
`‘ LREADY?
`
`YES
`
`1506
`
`YES
`
`SAVE COMMENT FOR
`FILE
`
`1513
`
`1514
`
`CALL KILL RECEIVE
`COPY NORMAL STATUS
`
`I501
`
`NO
`FIND COPY
`STRUCTURE’?
`
`
`
`
`CALL MORE PLEASE
`
`1507
` REPLY
`IS COMMENT?
`
`
`
`SIZE IN
`REPLY = ZERO
`
`1508
`
`
`
`
`
`
`WRITE NUMBER
`OF BYTES INTO FILE
`
`CREATED
`
`
`SYE
`
`
`
`
`REVISE COPY
`TIME ESTIMATE
`
`1511
`
`
`
`
`CALL KILL COPY
`W] ERROR
`
`@ FIG. 15
`
`
`
`
`
`ERROR
`IN WRITING?
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 18 of 20
`
`5,857,189
`
`1604
`
`1605
`
`15%
`
`WHO COPIED AND HOW
`MANY COPIERS
`
`INCREMENT NUMBER OF
`COPIERS
`A
`
`UPDATE DISPLAY
`
`[a 1601
`
`CLOSE FILE IN COPY
`STRUCTURE
`
`1602
`
`N0
`
`ERROR
`EXISTS?
`
`YES
`
`1503
`
`FAILURE MESSAGE TYPE
`SENT REQUESTER
`
`REMOVE FROM LIST AND
`DISPOSE COPY DATA
`STRUCTURE
`
`1607
`
`FIG. 16
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 19 of 20
`
`5,857,189
`
`T
`
`1701
`
`CLOSE WRITE TO
`FILE
`
`1702
`
`
`
`REMEMBER WHERE FILE
`COPIED LAST
`
`
`
`ERROR
`EXISTS?
`
`
`
`
`
`DELETE WRITE TO FILE
`
`FIG. 17
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 20 of 20
`
`5,857,189
`
`
`
`FIND COPY
`STRUCTURE?
`
`CALL KILL RECEIVED
`COPY W/ERROR
`
`
`
`
`
`FIG. 18
`
`

`
`5,857,189
`
`1
`FILE SHARING IN A TELECONFERENCE
`APPLICATION
`
`BACKGROUND OF THE INVENTION
`
`(1) Field of the Invention
`The present invention relates to teleconferencing systems.
`More specifically, the invention relates to an accessory to
`allow file sharing during a teleconference.
`(2) Background Information
`Teleconferencing is increasingly becoming a popular
`application in personal computer systems. Such applications
`typically allow the transfer of audio and video data between
`users so that they can speak and otherwise communicate
`with one another. Such applications sometimes also include
`data sharing wherein various types of data such as
`documents, spreadsheets, graphic data, or other types of
`data, can be shared and manipulated by all participants in the
`teleconference. Different
`teleconference applications per-
`haps residing on dilferent hardware platforms have different
`capabilities. Moreover, a wide variety of features has been
`implemented in different teleconference applications, and
`the proliferation of different types of computer systems with
`diflferent capacities, and different networking media has
`created challenges for tclcconfcrcncing.
`For example, for most teleconferencing applications, it is
`assumed that
`the sender and the receiver have certain
`
`minimum capabilities. However, with the wide diversity of
`systems having different computation capacities, and in
`addition, the wide variety of networking media, that certain
`systems may not have certain capabilities. Prior art systems
`have typically required that the application provide support
`for all capabilities used within the teleconference. This fact
`has substantially complicated teleconferencing applications,
`and made expansion of capabilities diflicult or impossible. It
`would be desirable to be able to relieve the application of the
`burden of supporting all capabilities by providing accesso-
`ries which interface logically between the application and a
`base teleconference component to provide additional and
`expandable capabilities. It would also be desirable if an
`accessory supported file sharing during a teleconference
`without jeopardizing the integrity and security of any par-
`ticipating cndpoint.
`
`BRIEF SUMMARY OF THE INVENTION
`
`Asystem and method which enables teleconference mem-
`bers to share files during a teleconference is disclosed. An
`endpoint
`includes a processor with a memory coupled
`thereto. The memory stores a teleconferencing application.
`A file sharing mechanism is associated with the application
`at run time. The file sharing mechanism generates a window
`on the local display in which the local member of the
`teleconference may post advertisements for files thereby
`making the file sharable. The local endpoint sends the
`advertisement to a remote endpoint. Acorresponding acces-
`sory receives the advertisement and posts it in the remote
`window. A local member can copy rcmotcly postcd filcs by
`manipulating the corresponding advertisement.
`In one embodiment, the advertisement of a copyable file
`has one representation before it is copied locally and a
`second representation after it
`is copied locally. During
`copying time to complete is periodically recalculated and
`displayed in the file sharing window. An abort functionality
`is provided such that a selected copying can be aborted at
`any time before the copying is complete. The partially
`copied file is automatically deleted.
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention is illustrated by way of example
`and not limitation in the figures of the accompanying in
`which like references indicate similar elements and in
`which:
`
`FIG. 1 illustrates an example configuration in which
`various embodiments of the present invention may be imple-
`mented.
`
`FIG. 2 shows a teleconference display of one embodiment
`of the invention.
`
`FIG. 3 shows a single system in which embodiments of
`the present invention may be implemented.
`FIG. 4a shows an example architecture of a system
`employing various embodiments of the present invention.
`FIG. 4b shows stacking of accessories using an API call.
`FIG. 5 shows a more detailed view of the conference
`
`component illustrated in FIG. 4.
`FIG. 6 shows a sequence of typical conference events
`during a teleconference which are forwarded through an
`accessory stack to an application.
`FIG. 6a shows a group of file sharing events.
`FIG. 7 shows a typical sequence of steps performed for
`member initialization before a teleconference.
`
`FIG. 8 shows a flowchart of accessory initialization
`subsequent to being accessorized.
`FIG. 9 shows a flowchart of posting to a file sharing
`accessory window.
`FIG. 10 shows a flowchart of removal of a posting from
`a file sharing accessory window.
`FIG. 11 shows a flowchart of a response to a copy request
`in a file sharing accessory.
`FIG. 12 shows a flowchart of a file sharing accessory
`initialization prior to copying an advertised file.
`FIG. 13 shows a flowchart of a copier requesting more of
`a file in a file sharing accessory.
`FIG. 14 shows a flowchart of a posting member response
`to a request for more of a shared file.
`FIG. 15 shows a flowchart of a copier responding to the
`receipt of a portion of a file being copied.
`FIG. 16 shows a flowchart of a kill copy routine per-
`formed by a posting endpoint.
`FIG. 17 shows a flowchart of a kill copy routine per-
`formed by a copying endpoint.
`FIG. 18 shows a flowchart of a copying endpoint respond-
`ing to a failure message.
`DETAILED DESCRIPTION
`
`The present invention relates to teleconferencing systems,
`more specifically, the present invention describes systems in
`which accessories are employed to increase the functionality
`of the teleconference independent of a teleconferencing
`application employed. Although the present invention will
`bc dcscribcd with reference to certain specific embodiments
`thereof, especially, with relation to certain hardware
`configurations, data structures, packets, method steps, and
`other specific details, these should not be viewed as limiting
`the present invention. Various modifications and other may
`be made by one skilled in the art, without departing from the
`overall spirit and scope of the present invention.
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`They copyright owner has no objection to the facsimile
`
`

`
`5,857,189
`
`3
`reproduction by anyone of the patent disclosure, as it
`appears in the Patent and Trademark Office patent files or
`records, but otherwise reserves all copyright rights whatso-
`ever. Copyright Apple Computer, Inc.
`A typical system configuration in which a teleconference
`may take place is illustrated as 100 in FIG. 1. For example,
`a first workstation 150 may communicate via teleconference
`with a second workstation 155, as illustrated. Systcm 150
`may include a central processing unit 150C which is coupled
`to a display 150d a video input device 150a, and a sound
`input device 150b. The system 150 may communicate with
`system 155 over networking medium 170 via network
`connection module 160. 160 may include any number of
`network adapters commercially available such as using
`Ethernet, Token Ring, or any other networking standard
`commercially available. Note that network adapter 160 may
`also include a wireless network adapter which allows trans-
`mission of data between components without a r11ediur11 170.
`Communication is thus provided via network adapter 165
`coupled to system 155, and bi-directional communications
`may be established between two systems. System 150 fur-
`ther has a keyboard 150e and a pointing device 150]‘, such
`as a mouse, track ball, or other device for allowing user
`selections and user input.
`FIG. 2 shows a teleconference display 200 on which icon
`220 corresponds to the conferencing application in use. In
`implemented embodiments of the present invention, there is
`a source window, such as 202, showing a monitor of the
`local media source, and there are other media windows, such
`as 201 for each other member with which a local member is
`communicating. While only one other media window is
`shown, it is anticipated that several members (and accord-
`ingly scvcral other mcdia windows) may participate in any
`teleconference. In the illustrated example, each of the win-
`dows 201-202 provides media information, that is, real-time
`audio and/or video information for bi-directional telecon-
`ferencing. Accessory window 203 is an example of an
`accessory window for one possible accessory of the instant
`invention. Only a single accessory window 203 is shown,
`however it
`is envisioned that up to n (where n is an
`arbitrarily large number) accessories could be used. Each
`accessory either has an associated accessory window or is a
`faceless accessory. This distinction will be discussed further
`below.
`
`The particular accessory shown is a file sharing accessory
`which allows advertisements 205 to be posted by a user at
`a remote endpoint and viewed by a user at a local endpoint
`within the accessory window 203. Similarly, the local user
`can post advertisements 215 in the accessory window 203
`that can then be viewed by a remote user. The advertisement
`205 includes an icon 206, a file name 208, a file size and type
`209, and the name of the remote member 210 responsible for
`the posting. A copy bar 207 is also provided.
`To copy a file associated with an advertisement, the local
`member need only drag the icon 206, 211 to a location to
`which copying is desired, and the accessory will copy the
`file to that location. Here, icon 211 has been dragged to the
`desktop where the icon 214 appears. The copy bar 212
`begins to fill as the copying from a remote endpoint is
`performed. The file name 213 is highlighted when selected.
`An advertisement need not remain selected during copying.
`Once copying is complete, the file name 213 will revert from
`boldface type to plain text. The time remaining 218 to
`complete copying is displayed in the lower part of the
`accessory window 203. Clicking on stop sign 221 while
`copying of a selected file is in progress win abort the copy
`and cause the partially copied file to be deleted. If no file is
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`In one
`the stop sign option is unavailable.
`selected,
`embodiment, once a file has been copied, the advertisement
`effectively becomes an alias allowing the file to be launched
`by double clicking on the advertisement. Significantly, prior
`to copying, said double clicking will only result in a dialog
`box indicating that the file must be copied to be launched.
`This is because no physical file exists on the local end point
`and the advertisement merely provides an access path
`through which the physical file may be copied.
`A locally posted advertisement 215 differs from a
`remotely posted advertisement in that the file name 217 is
`displayed in italic typc and instead of a postcr’s namc, thc
`copy status 216 is displayed. In one embodiment, copying
`locally posted files is not permitted. As other members of the
`conference copy the file associated with advertisement 215,
`thc copy status will change to rcflcct “copied by cvcryonc”
`or copied by x of n where x is the number of copiers, and n
`is the number of conference members. At any time, a
`member may delete an advertisement
`in the accessory
`window 203 by dragging the corresponding icon to the trash
`204. If the deleting member is also the posting member for
`the advertisement, once trashed,
`the advertisement will
`disappear from all conference members’ windows.
`Conversely, if a remotely posted advertisement is trashed, it
`is only deleted from the trasher’s file sharing window.
`A computer system, such as a workstation, personal
`computer or other processing apparatus 150C or 1550 as
`shown in FIG. 1 is illustrated in more detafl in FIG. 3. 150C
`comprises a bus or other communication means 301 for
`communicating information, and a processing means 302
`coupled with bus 301 for processing information. System
`150C further comprises a random access memory (RAM) or
`other volatile storage device 304 (referred to as main
`memory), coupled to bus 301 for storing information and
`instructions to be executed by processor 302. Main memory
`304 also may be used for storing temporary variables or
`other intermediate information during execution of instruc-
`tions by processor 302. Included in memory 304 during
`run-time may be the conference component module which
`operates according to the communication protocols gener-
`ally known in the art. System 150C also comprises a read
`only memory (ROM) and/or other static storage device 306
`couplcd to bus 301 for storing static information and instruc-
`tions for processor 302, and a data storage device 307 such
`as a magnetic disk or optical disk and its corresponding disk
`drive. Data storage device 307 is coupled to bus 301 for
`storing information and instructions.
`System 150C may further be coupled to a display device
`adapter 321 such as a cathode ray tube (CRT) or liquid
`crystal display (LCD) coupled to bus 301 for displaying
`information to a computer 11ser. Such a display 321 may
`further be couplcd to bus 301 for thc rcccipt of vidco or
`image information. An alphanumeric input device 322,
`including alphanumeric and other keys may also be coupled
`to bus 301 for communicating information and command
`selections to processor 302. An additional user input device
`is cursor control 323, such as a mouse, a trackball, stylus, or
`cursor direction keys, coupled to bus 301 for communicating
`direction information and command selections to processor
`302, and for controlling cursor movement on display 321.
`For teleconferencing applications, system 150C may also
`have coupled to it a sound output device 324, a video input
`device 325, and sound input device 326, along with the
`associated D/A (Digital-to-Analog) and AID (Analog-to-
`Digital) converters for inputting or outputting r11edia signal
`bitstreams. System 150c may further be coupled to commu-
`nication device 327 which is coupled to network adapter 160
`for communicating with other teleconferencing stations.
`
`

`
`5,857,189
`
`5
`Note, also, that any or all of tlie components of system
`150C and associated hardware may be used in various
`embodiments, however, it can be appreciated that any con-
`figuration of the system may be used for various purposes
`according to the particular implementation.
`In one embodiment, system 150C is one of the Apple
`Computer® brand family of personal computers such as the
`Macintosh 8100 brand personal computer manufactured by
`Apple Computer, Inc. of Cupertino, Calif. Processor 302
`may be one of the PowerPC brand microprocessors manu-
`factured by Motorola, Inc. of Schaumburg, Ill.
`Note that the following discussion of various embodi-
`ments discussed herein will refer specifically to a series of
`routines which are generated in a high-level programming
`language (e.g., the C or C++ programming language) and
`compiled, linked, and then run as object code in system 150C
`during run-time within main memory 304 by processor 302.
`For example the object code may be generated by the C++
`Compiler available from Symantec, Inc. of Cupertino, Calif.
`Although a general purpose computer system has been
`described,
`it can be appreciated by one skilled in the art,
`however, that the following methods and apparatus may be
`implemented in special purpose hardware devices, such as
`discrete logic devices, large scale integrated circuits (LSI’s),
`application-specific integrated circuits (ASIC’s), or other
`specialized hardware. The description here has equal appli-
`cation to apparatus having similar function.
`FIG. 4 illustrates a plurality of processes and/or apparatus
`which may be operative within system 150C. At the highest
`level, for example, at
`the highest level
`in the ISO/OSI
`networking model, an application program 401, such as a
`tclcconfcrcncing application, an audio/vidco server, or a
`data server, communicates with conference accessory 404 in
`the form of Application Program Interface (API) calls. Each
`accessory 404-406 is a derived component which adds some
`additional capability to the conference component 400. An
`accessory 404 receives the API calls from the application
`401 and events from conference component 406 (indirectly
`via accessories 405 and 406). An accessory claims API calls
`and events directed to it, and forwards those not directed to
`it. In this way, all events intended for the application 401 are
`passed along through the accessories to the application 401.
`Similarly, API calls for the conference component are passed
`to the conference component through the accessory stack.
`Because the application interfaces with only a single
`accessory, overhead and complexity of the application are
`reduced over a system in which an application interfaces in
`parallel with n accessories.
`FIG. 4a shows operation of the API call used to create an
`acccssory stack. Thc API call MTConfcrcnccAcccssorizc( )
`accepts one of two forms of arguments: 1) an accessory
`string listing the desired accessories in the desired order
`from top to bottom of the stack; or 2) all automatic acces-
`sories which will stack all automatic accessories in an
`arbitrary order. As previously discussed, accessories are
`derived components including a conference component 426
`and a capability component 420, 421 and 422 as shown in
`frame 440. These capability components and conference
`components make up derived components 430, 431 and 432.
`When an application wishes to stack accessories it is nec-
`essary to sever the conference component from all but the
`bottom accessory in the stack. This is performed within the
`accessorized
`API
`call
`by
`calling
`MTConferenceAccessorizeUpon(_ ) which unglues,
`for
`example, capability component 421 of derived component
`431, and reattaches it to derived component 432 to form new
`
`10
`
`15
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`derived component 424 as shown in frame 441. By itera-
`tively calling MTConferenceAccessorizeUpon( ) accessory
`stack 425 is created. The top of the stack is then linked to the
`application as shown in frame 443. In this way the capa-
`bilities of the accessories are accumulated serially between
`the application and the conference component. Thus, the
`API calls and events are passed through the accessory stack
`with each accessory watching for events and calls relevant
`to it. If the event or the call is relevant to the accessory the
`accessory will take some action. If it is not relevant to the
`accessory, the accessory merely passes it along to the next
`level of the stack until it reaches either the application or the
`conference component depending on which direction the
`message is flowing.
`Because the capability component provides its capability
`to the teleconference system while remaining independent of
`the application, an application with only minimal telecon-
`ference capability may appear to the user to be quite robust
`simply by accessorizing a number of accessories. The acces-
`sories are transparent to the application and are typically
`stored on the system heap in memory.
`In the case of
`automatic accessories, the application need not know of the
`existence or capability of the accessory. The application
`merely issues API calls as it would in the prior art and the
`accessories take care of themselves. Such accessories will
`
`forward events (including events related to the accessory) to
`the application but the application can ignore unfamiliar
`events without detriment. If the application “knows” about
`the accessories, such events may be used, e.g.
`to update
`menus or status information. Accessories are generally inde-
`pendent of the transport protocol used and do not deal with
`the real time media.
`
`Accessories fall within two classes, accessories associated
`with a window and faceless accessories. Many window
`associated accessories are used for relatively low bandwidth
`sharing functions including but not limited to, file sharing,
`shared whiteboard, chat window, application sharing and
`desk top sharing. File sharing allows members of a telecon-
`ference to share files by placing those files in the associated
`accessory window. Application sharing would allow mem-
`bers to share a running application. For example, a word
`processing document may bc sharcd such that all mcmbcrs
`can edit the document during the conference. A shared white
`board accessory would create a window in which graphics
`and text can be shared between members. Desk top sharing
`allows the teleconference members to access and use items
`residing on remote members’ desk tops. A chat window
`could be used as a low bandwidth replacement for the
`audio/visual media of the teleconference allowing near
`real-time sharing of typed messages.
`To remain independent of thc application, thc window
`associated accessories take advantage of certain features of
`the operating system and the MovieTalk Toolbox.
`Specifically, the accessory must be able to identify system
`events that apply to it before the application receives the
`event. Each
`accessory makes
`a
`call
`to
`MTToolboxPreviewSystemEvent( Upon receiving a sys-
`tem event, the MovieTalk Toolbox passes it to each acces-
`sory which has made this call until an accessory claims the
`event or all such accessories have failed to claim this event.
`
`For example, a mouse down event may be passed to an
`accessory which determines if the mouse down occurred in
`its window. In this way, user interaction is handled trans-
`parently to the application. In one embodiment correspond-
`ing windows on a remote end point of some or all of the
`windows associated accessories automatically reflect
`changes, e.g., typing, cutting, pasting, posting, etc., to the
`
`

`
`5,857,189
`
`7
`local window. Simultaneously, the local window will auto-
`matically “share” remote changes. Thus, corresponding rep-
`resentations will appear in both the local and remote win-
`dows associated with a particular accessory.
`Other window associated accessories perform other types
`of functions, such as window mirroring. Window mirroring
`associates events within some window of interest with the
`rcal-timc mcdia cvcnts and converts thosc window occur-
`rences into a video stream. This might be particularly useful
`in the context of a lecture with, for example, changing slides.
`In such case, it is desirable that the slide be associated with
`the audio and video at the proper time in the lecture. By
`placing the slides in a window subject to window mirroring,
`the slide will be so associated and converted to a video
`
`stream receivable by the teleconference members. A movie
`of the teleconference could subsequently be played back and
`the audio, video and the slides in the movie would be
`correctly associated.
`Faceless accessories have no associated window but nev-
`ertheless provide some useful capability. Examples of face-
`less accessories include call
`logging, data compression,
`encryption, and protocol translation. Call logging can be
`used even where no other member has that capability. It
`might, for example, track the number of calls placed and
`received, to whom, and the disposition or length of the calls.
`Faceless accessory have no direct user interaction. Rather,
`they remain independent of the application by monitoring
`messages moving through the accessory stack and taking
`action according to the messages. While in most cases the
`ordering of window associated accessories in the accessory
`stack can be arbitrary, faceless accessories need to be at the
`bottom of the stack (e.g., closer to the conference
`componcnt). Morcovcr, within a group of facclcss
`accessories, specific ordering is desirable. For example, data
`compression should be performed before encryption.
`Moreover, the ordering must be the same at both end points
`(e.g., so that decryption occurs before decompression at the
`remote endpoint). Also significant is the fact that accessories
`communicate through a point
`to point
`link rather than
`through a multicast. This allows accessories to be used
`between any two conference members even if other mem-
`bers do not have that accessory capability. For example, in
`a three-way teleconference in which only two members have
`data compression. The two having data compression can
`communicate in compressed messages while not compress-
`ing the messages sent over the links to the third member.
`The conference component 400 allows the application
`401 to establish communications between two or more
`teleconference stations. Control
`information, and media
`information can be transmitted between the first participant
`system and a second participant system. The conference
`component will be shown in more detail in FIG. 5. Confer-
`ence compo

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket