US8521830B2 - Pull-configured distribution of imagery - Google Patents

Pull-configured distribution of imagery Download PDF

Info

Publication number
US8521830B2
US8521830B2 US10/745,091 US74509103A US8521830B2 US 8521830 B2 US8521830 B2 US 8521830B2 US 74509103 A US74509103 A US 74509103A US 8521830 B2 US8521830 B2 US 8521830B2
Authority
US
United States
Prior art keywords
viewers
application
application sharing
image
sharing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US10/745,091
Other versions
US20050138228A1 (en
Inventor
Raymond Hornback, Jr.
James S. Johnston
Mark S. Kressin
Matthew A. Levy
Andrew M. Ortwein
William M. Quinn
Kevin Solie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US10/745,091 priority Critical patent/US8521830B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KRESSIN, MARK S., LEVY, MATHEW A., SOLIE, KEVIN, HORNBACK, RAYMOND, JR., JOHNSTON, JAMES S., ORTWEIN, ANDREW M., Quinn, William M.
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION RECORD TO CORRECT SPELLING OF ASSIGNOR'S NAME ON A DOCUMENT RECORDED 12/22/03,AT REEL 014849,FRAME 0829 Assignors: KRESSIN, MARK S., LEVY, MATTHEW A., SOLIE, KEVIN, HOMBACK, RAYMOND, JR., JOHNSTON, JAMES S., ORTWEIN, ANDREW M., Quinn, William M.
Publication of US20050138228A1 publication Critical patent/US20050138228A1/en
Priority to US13/941,223 priority patent/US9313273B2/en
Application granted granted Critical
Publication of US8521830B2 publication Critical patent/US8521830B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • H04L65/4038Arrangements for multi-party communication, e.g. for conferences with floor control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to the field of image distribution and more particularly to the distribution of application imagery during an application sharing session between a multiplicity of application viewers.
  • an application host can distribute imagery of an application operating in the host to one or more application viewers distributed about the computer communications network.
  • the imagery can include not only the screens rendered in association with the operation of the shared application, but also the visual presentation of mouse pointer movements and the like.
  • the imagery can include only discrete “snap-shots” of the actual display of the operating application in the host system.
  • the application viewers can be given the appearance of sharing an application, though each viewer merely views a shadow rendering of only a portion of the operation of the shared application.
  • the transmission of imagery across the computer communications network to a multiplicity of viewers can produce substantial problems which relate not only to the timing of delivery of the distributed image frames to the viewing population, but also in delivering the imagery to multiple disparate viewing clients.
  • some viewing clients may enjoy substantial communications bandwidth and access to vast processing resources, other viewing clients may suffer from limited bandwidth and inferior processing resources. Accordingly, accommodating “slower” viewing clients without affecting the viewing experience of “faster” viewing clients can be challenging if not impossible.
  • the problem of accommodating multiple, disparate viewing clients can be exacerbated when considering that not all viewing clients begin a viewing session simultaneously. More particularly, in the prototypical circumstance, the delivery of viewing frames of a shared application can be synchronized so that all viewing clients view the application in the same state at the same time. Synchronization can be particularly important when supporting a collaborative effort such as an e-meeting where all participants presume that the shared application appears identically for all e-meeting participants.
  • an image cache can be disposed between an application sharing host and a plurality of application sharing viewers.
  • a multipoint communications server can be disposed between the image cache and the application sharing viewers and can be communicatively linked to the application sharing host.
  • a pull-based subscription model can be implemented in an image cache server hosting the image cache.
  • the model can have a configuration for registering respective ones of the application sharing viewers to receive notifications of available updated imagery for a shared application.
  • an image frame update can be cached for a shared application.
  • Registered ones of a plurality of application sharing viewers can be notified of the image frame update. Consequently, the cached image frame update can be served to requesting ones of the application sharing viewers.
  • the cached image frame update can be partitioned into multiple sub-sections and the multiple sub-sections can be cached.
  • the serving step also can include comparing an already served image frame in the requesting ones of the application sharing viewers to the cached image frame update. As a result, only changed ones of the multiple sub-sections can be served to the requesting ones of the application sharing viewers.
  • the serving step can include detecting a slow one of the application sharing viewers, and serving a newer image frame to the slow one of the application sharing viewers responsive to a request by the slow one of the application sharing viewers for an older image frame.
  • the serving step can include detecting a late joining one of the application sharing viewers, and serving a pre-defined layout of the shared application to the late joining one of the application sharing viewers in order to facilitate a sequential retrieval by the late joining one of the application sharing viewers of already distributed image frames for the shared application.
  • FIG. 1 is pictorial illustration of a system, method and apparatus for distributing application imagery during an application sharing session in accordance with the present invention.
  • FIG. 2 is a timing diagram illustrating a process for distributing application imagery during an application sharing session in accordance with the present invention.
  • the present invention is system, method and apparatus for the flexible distribution of imagery in an application sharing session.
  • an image cache can be disposed between an application sharing host and a multiplicity of application sharing viewers. Images from a shared application can be pushed to the cache at a rate preferred by the application sharing host. By comparison, the cached images can be pulled from the cache by individual ones of the application sharing viewers at a rate preferred by the individual application sharing viewers. In this way, the characteristics of operation of each individual application sharing viewer cannot affect the application sharing process experienced by others of the individual application sharing viewers.
  • FIG. 1 is pictorial illustration of a system, method and apparatus for distributing application imagery during an application sharing session.
  • an application sharing host 110 can serve imagery 120 of a shared application along with image metadata 130 with individual ones of application sharing viewers 180 .
  • an image cache 140 can be disposed in between the application sharing host 110 and the application sharing viewers 180 .
  • the image cache 140 can push imagery 120 and image metadata 130 regarding the pushed imagery 120 to the image cache 140 at a rate pre-specified by one of the image cache 140 and the application sharing host 110 .
  • Either the application sharing host 110 or the image cache 140 upon receipt of pushed imagery 120 , can provide an update notification 170 to the application sharing viewers 180 to indicate that new imagery 120 has been uploaded to the cache.
  • the individual application sharing viewers 180 when permitted by the operation of the individual application sharing viewers 180 , individually can post image requests 160 to the image cache 140 to retrieve the new imagery 120 .
  • the image cache 140 can serve cached imagery 150 to the individual ones of the application sharing viewers 180 .
  • the image cache 140 need not necessarily serve cached imagery 150 which corresponds to the image requests 160 provided by the individual ones of the application sharing viewers 180 . Rather, the image cache can compare the state of the shared application in the application sharing host 110 by way of inspecting the available imagery 120 in the image cache 140 to the imagery 150 which already had been distributed to the individual ones of the application sharing viewers. When appropriate, particular frames representative of a past state of the shared application in the application sharing host 110 can be skipped in favor of subsequent frames. In this way, slower ones of the individual application sharing viewers 180 and late joiners among the application sharing viewers 180 can be accommodated without impacting the performance of application sharing among others of the application sharing viewers 180 .
  • the present invention can include a configuration for partitioning each image into a multiplicity of subsections.
  • the partitioned image 190 can be stored within the image cache 140 and can be distributed to requesting ones of the application sharing viewers 180 on demand.
  • image metadata 130 can be associated with each separate sub-section of the partitioned image 190 so that each separate sub-section can be individually identified.
  • the cache 140 can serve only that portion of the requested image 150 , stored as a partitioned image 190 , which has changed since the last time the image had been distributed to the application sharing viewer 180 .
  • FIG. 1 lends itself to several advantages in the distribution of imagery during an application sharing session.
  • system of the present invention will be recognized as highly scalable in that the burden for distribution of imagery rests with the image cache 140 which further can provide distributions, not directly to the individual application sharing viewers 180 , but to a multipoint communications service which can mediate the image distribution task.
  • images 150 are distributed only as requested by individual ones of the application sharing viewers 180 . Accordingly, processing and timing deficiencies of the individual application sharing viewers 180 cannot inhibit the distribution of the images 150 to others of the application sharing viewers 180 .
  • FIG. 2 is a timing diagram illustrating a process for distributing application imagery during an application sharing session in accordance with the present invention.
  • the application sharing host 210 can post an updated image frame to the cache server 220 to which the cache server 220 can respond with an acknowledgment.
  • the cache server can also use the response to provide additional information to the application sharing host 210 , such as the number of application sharing viewers 240 subscribing to updates from the cache server 220 .
  • an image update signal can be forwarded to the application sharing viewers 240 by way of the multipoint communications server 230 .
  • the image update signal can be initiated by either the application sharing host 210 or the cache server 220 .
  • the application sharing viewer 240 at its discretion can request an image update. Specifically, as shown in the second scenario B, the application sharing viewer 240 can forward a request to receive an image update from the cache server 220 which can respond with the requested image which the application sharing viewer 240 can render accordingly.
  • a slow or late joining application sharing viewer 250 can attempt to request an image which has become outdated in respect to other updated frames available in the cache server 220 .
  • the application sharing host 210 has produced shared application imagery at a faster rate than the imagery can be consumed by the slow application sharing viewer 250 .
  • the slow application sharing viewer 250 can receive an update signal for an Nth image of the shared application.
  • the slow application sharing viewer 250 can request the distribution of the Nth image.
  • the cache server 220 recognizing the “slowness” of the slow application sharing viewer 250 can forward to the slow application sharing viewer 250 not the Nth image of the shared application, but the Nth+1 image which can be rendered in the application sharing viewer 250 .
  • the slow application sharing viewer 250 subsequently receives an update signal indicating the availability of the Nth+1 image
  • the slow application sharing viewer 250 can request the Nth+1 image.
  • the cache server 220 can respond only by indicating that the requested image already is available for viewing within the slow application sharing viewer 250 . Accordingly, it is to be understood that the slow application sharing viewer 250 need not receive every image update, but only as many updates as possible.
  • a late joining application sharing viewer 250 can join an application sharing session in progress.
  • the late joining application sharing viewer 250 can obtain a pre-defined layout of the shared application so as to become familiarized with the images to be distributed in the course of application sharing.
  • the late joining application sharing viewer 250 can sequentially request the previously distributed images from the cache server 220 , rendering each image before requesting the next.
  • the late joining application sharing viewer 250 can acquire from the application sharing host 210 enough image metadata to identify those images which are to be fetched from the cache server 220 .
  • the present invention can be realized in hardware, software, or a combination of hardware and software.
  • An implementation of the method and system of the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system, or other apparatus adapted for carrying out the methods described herein, is suited to perform the functions described herein.
  • a typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
  • the present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which, when loaded in a computer system is able to carry out these methods.
  • Computer program or application in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following a) conversion to another language, code or notation; b) reproduction in a different material form.

Abstract

The present invention is a method, system and apparatus for flexible image sharing. In a system for flexibly distributing imagery in an image sharing session, an image cache can be disposed between an image sharing host and a plurality of image sharing viewers. Additionally, a multipoint communications server can be disposed between the image cache and the image sharing viewers and can be communicatively linked to the image sharing host. Importantly, a pull-based subscription model can be implemented in an image cache server hosting the image cache. In particular, the model can have a configuration for registering respective ones of the image sharing viewers to receive notifications of available updated imagery. In a preferred aspect of the present invention, the image sharing host can be an application sharing host hosting a shared application among the image sharing viewers.

Description

BACKGROUND OF THE INVENTION
1. Statement of the Technical Field
The present invention relates to the field of image distribution and more particularly to the distribution of application imagery during an application sharing session between a multiplicity of application viewers.
2. Description of the Related Art
The rapid development of the Internet has led to advanced modes of communication and collaboration. Using the Internet as a backbone, individuals worldwide can converge in cyberspace to share ideas, documents and images in a manner not previously possible through conventional telephony and video conferencing. To facilitate collaboration over the Internet, a substantial collection of technologies and protocols have been assembled to effectively deliver audio, video and data over the single data communications medium of the Internet. These technologies include instant messaging, Internet telephony and application sharing.
In conventional application sharing, an application host can distribute imagery of an application operating in the host to one or more application viewers distributed about the computer communications network. The imagery can include not only the screens rendered in association with the operation of the shared application, but also the visual presentation of mouse pointer movements and the like. Generally, speaking, however, the imagery can include only discrete “snap-shots” of the actual display of the operating application in the host system. In this way, the application viewers can be given the appearance of sharing an application, though each viewer merely views a shadow rendering of only a portion of the operation of the shared application.
As it will be apparent to the skilled artisan, the transmission of imagery across the computer communications network to a multiplicity of viewers can produce substantial problems which relate not only to the timing of delivery of the distributed image frames to the viewing population, but also in delivering the imagery to multiple disparate viewing clients. In this regard, while some viewing clients may enjoy substantial communications bandwidth and access to vast processing resources, other viewing clients may suffer from limited bandwidth and inferior processing resources. Accordingly, accommodating “slower” viewing clients without affecting the viewing experience of “faster” viewing clients can be challenging if not impossible.
The problem of accommodating multiple, disparate viewing clients can be exacerbated when considering that not all viewing clients begin a viewing session simultaneously. More particularly, in the prototypical circumstance, the delivery of viewing frames of a shared application can be synchronized so that all viewing clients view the application in the same state at the same time. Synchronization can be particularly important when supporting a collaborative effort such as an e-meeting where all participants presume that the shared application appears identically for all e-meeting participants.
Just as in the case of a human-to-human meeting, however, in the world of the e-community, some meeting participants fail to “arrive” at an e-meeting in a timely manner. Where multiple participants engage in the e-meeting, however, it may not be feasible to await the arrival of a “late joiner”. In this case, the e-meeting must commence in the absence of the late joiner. When the late joiner does finally “arrive” for the e-meeting, the distribution of further imagery relating to a shared application must halt pending the synchronization of the view of the application with the display of the late joiner. Accordingly, accommodating the late joiner can produce an unwanted delay in the distribution of additional updated frames to the existing meeting participants.
SUMMARY OF THE INVENTION
The present invention addresses the deficiencies of the art in respect to distributing application imagery in an application sharing session and provides a novel and non-obvious method, system and apparatus for flexible application sharing. In a system for flexibly distributing imagery in an application sharing session, an image cache can be disposed between an application sharing host and a plurality of application sharing viewers. Additionally, a multipoint communications server can be disposed between the image cache and the application sharing viewers and can be communicatively linked to the application sharing host. Importantly, a pull-based subscription model can be implemented in an image cache server hosting the image cache. In particular, the model can have a configuration for registering respective ones of the application sharing viewers to receive notifications of available updated imagery for a shared application.
In a method for flexibly distributing imagery for a shared application in an application sharing session, an image frame update can be cached for a shared application. Registered ones of a plurality of application sharing viewers can be notified of the image frame update. Consequently, the cached image frame update can be served to requesting ones of the application sharing viewers. In a preferred aspect of the invention, the cached image frame update can be partitioned into multiple sub-sections and the multiple sub-sections can be cached. As a result, the serving step also can include comparing an already served image frame in the requesting ones of the application sharing viewers to the cached image frame update. As a result, only changed ones of the multiple sub-sections can be served to the requesting ones of the application sharing viewers.
In another preferred aspect of the invention, the serving step can include detecting a slow one of the application sharing viewers, and serving a newer image frame to the slow one of the application sharing viewers responsive to a request by the slow one of the application sharing viewers for an older image frame. Similarly, in yet another preferred aspect of the invention, the serving step can include detecting a late joining one of the application sharing viewers, and serving a pre-defined layout of the shared application to the late joining one of the application sharing viewers in order to facilitate a sequential retrieval by the late joining one of the application sharing viewers of already distributed image frames for the shared application.
Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein:
FIG. 1 is pictorial illustration of a system, method and apparatus for distributing application imagery during an application sharing session in accordance with the present invention; and,
FIG. 2 is a timing diagram illustrating a process for distributing application imagery during an application sharing session in accordance with the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention is system, method and apparatus for the flexible distribution of imagery in an application sharing session. In accordance with the present invention, an image cache can be disposed between an application sharing host and a multiplicity of application sharing viewers. Images from a shared application can be pushed to the cache at a rate preferred by the application sharing host. By comparison, the cached images can be pulled from the cache by individual ones of the application sharing viewers at a rate preferred by the individual application sharing viewers. In this way, the characteristics of operation of each individual application sharing viewer cannot affect the application sharing process experienced by others of the individual application sharing viewers.
In further illustration of the specific preferred aspects of the present invention, FIG. 1 is pictorial illustration of a system, method and apparatus for distributing application imagery during an application sharing session. In accordance with the present invention, an application sharing host 110 can serve imagery 120 of a shared application along with image metadata 130 with individual ones of application sharing viewers 180. Unlike conventional application sharing arrangements, however, in the present invention an image cache 140 can be disposed in between the application sharing host 110 and the application sharing viewers 180.
More particularly, the image cache 140 can push imagery 120 and image metadata 130 regarding the pushed imagery 120 to the image cache 140 at a rate pre-specified by one of the image cache 140 and the application sharing host 110. Either the application sharing host 110 or the image cache 140, upon receipt of pushed imagery 120, can provide an update notification 170 to the application sharing viewers 180 to indicate that new imagery 120 has been uploaded to the cache. In response, the individual application sharing viewers 180, when permitted by the operation of the individual application sharing viewers 180, individually can post image requests 160 to the image cache 140 to retrieve the new imagery 120. Responsive to receiving the posted image requests 160 from individual ones of the application sharing viewers 180, the image cache 140 can serve cached imagery 150 to the individual ones of the application sharing viewers 180.
Importantly, the image cache 140 need not necessarily serve cached imagery 150 which corresponds to the image requests 160 provided by the individual ones of the application sharing viewers 180. Rather, the image cache can compare the state of the shared application in the application sharing host 110 by way of inspecting the available imagery 120 in the image cache 140 to the imagery 150 which already had been distributed to the individual ones of the application sharing viewers. When appropriate, particular frames representative of a past state of the shared application in the application sharing host 110 can be skipped in favor of subsequent frames. In this way, slower ones of the individual application sharing viewers 180 and late joiners among the application sharing viewers 180 can be accommodated without impacting the performance of application sharing among others of the application sharing viewers 180.
To further enhance the flexibility of the distribution of shared application imagery to varying types of application sharing viewers, the present invention can include a configuration for partitioning each image into a multiplicity of subsections. The partitioned image 190 can be stored within the image cache 140 and can be distributed to requesting ones of the application sharing viewers 180 on demand. In this regard, image metadata 130 can be associated with each separate sub-section of the partitioned image 190 so that each separate sub-section can be individually identified. When one of the application sharing viewers 180 requests an updated image 150, the cache 140 can serve only that portion of the requested image 150, stored as a partitioned image 190, which has changed since the last time the image had been distributed to the application sharing viewer 180.
It will be apparent to the skilled artisan that the novel and nonobvious arrangement illustrated in FIG. 1 lends itself to several advantages in the distribution of imagery during an application sharing session. First, system of the present invention will be recognized as highly scalable in that the burden for distribution of imagery rests with the image cache 140 which further can provide distributions, not directly to the individual application sharing viewers 180, but to a multipoint communications service which can mediate the image distribution task. More importantly, by implementing a pull-type architecture as between the individual application sharing viewers 180 and the image cache 140, images 150 are distributed only as requested by individual ones of the application sharing viewers 180. Accordingly, processing and timing deficiencies of the individual application sharing viewers 180 cannot inhibit the distribution of the images 150 to others of the application sharing viewers 180.
To further illustrate the inventive arrangements within the context of several different distribution scenarios during an application sharing session, FIG. 2 is a timing diagram illustrating a process for distributing application imagery during an application sharing session in accordance with the present invention. In accordance with a first scenario A in which a multipoint communications server 230 has been disposed intermediately to the cache server 220 and an application sharing viewer 240, the application sharing host 210 can post an updated image frame to the cache server 220 to which the cache server 220 can respond with an acknowledgment. Moreover, the cache server can also use the response to provide additional information to the application sharing host 210, such as the number of application sharing viewers 240 subscribing to updates from the cache server 220.
Once the cache server 220 has received an updated image frame for distribution to the application sharing viewers 240, an image update signal can be forwarded to the application sharing viewers 240 by way of the multipoint communications server 230. Notably, the image update signal can be initiated by either the application sharing host 210 or the cache server 220. In any event, once an application sharing viewer 240 receives an image update signal, the application sharing viewer 240, at its discretion can request an image update. Specifically, as shown in the second scenario B, the application sharing viewer 240 can forward a request to receive an image update from the cache server 220 which can respond with the requested image which the application sharing viewer 240 can render accordingly.
In the third illustrated scenario C, a slow or late joining application sharing viewer 250 can attempt to request an image which has become outdated in respect to other updated frames available in the cache server 220. In this regard, it can be presumed that the application sharing host 210 has produced shared application imagery at a faster rate than the imagery can be consumed by the slow application sharing viewer 250. In this case, the slow application sharing viewer 250 can receive an update signal for an Nth image of the shared application. In response, the slow application sharing viewer 250 can request the distribution of the Nth image.
Significantly, the cache server 220, recognizing the “slowness” of the slow application sharing viewer 250 can forward to the slow application sharing viewer 250 not the Nth image of the shared application, but the Nth+1 image which can be rendered in the application sharing viewer 250. When the slow application sharing viewer 250 subsequently receives an update signal indicating the availability of the Nth+1 image, the slow application sharing viewer 250 can request the Nth+1 image. The cache server 220, however, can respond only by indicating that the requested image already is available for viewing within the slow application sharing viewer 250. Accordingly, it is to be understood that the slow application sharing viewer 250 need not receive every image update, but only as many updates as possible.
Finally, in scenario D, a late joining application sharing viewer 250 can join an application sharing session in progress. To facilitate the late joining of the application sharing viewer 250, the late joining application sharing viewer 250 can obtain a pre-defined layout of the shared application so as to become familiarized with the images to be distributed in the course of application sharing. Using the pre-defined layout, the late joining application sharing viewer 250 can sequentially request the previously distributed images from the cache server 220, rendering each image before requesting the next. Alternatively, the late joining application sharing viewer 250 can acquire from the application sharing host 210 enough image metadata to identify those images which are to be fetched from the cache server 220.
From a review of the foregoing description of the preferred embodiments, the skilled artisan will recognize several departures from convention methods and systems for application sharing. First, late joiners to an application sharing session now can be accommodated gracefully without impinging upon the flow of application sharing with other application sharing viewers in the session. Second, images can be cached for retrieval by application sharing viewers. To the extent that a slow viewer cannot keep pace with other viewers, the slow viewer can skip some updated images. Finally, as the system of the invention can be characterized as a pull-system, the system can scale to accommodate a substantial number of viewers without impacting the performance of any one viewer.
The present invention can be realized in hardware, software, or a combination of hardware and software. An implementation of the method and system of the present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system, or other apparatus adapted for carrying out the methods described herein, is suited to perform the functions described herein.
A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein. The present invention can also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which, when loaded in a computer system is able to carry out these methods.
Computer program or application in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following a) conversion to another language, code or notation; b) reproduction in a different material form. Significantly, this invention can be embodied in other specific forms without departing from the spirit or essential attributes thereof, and accordingly, reference should be had to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.

Claims (4)

We claim:
1. A method for flexibly distributing imagery for a shared application in an application sharing session, the method comprising the steps of:
generating an image frame update of a screen for a shared application being commonly viewed by multiple different application sharing viewers;
caching the image frame update for the screen for the shared application;
notifying registered ones of the application sharing viewers of said image frame update for the screen for the shared application;
serving said cached image frame update for the screen for the shared application to requesting ones of said application sharing viewers that had been notified;
detecting a late joining one of said application sharing viewers; and,
serving a pre-defined layout of the shared application to said late joining one of said application sharing viewers in order to facilitate a sequential retrieval by said late joining one of said application sharing viewers of already distributed image frames for the shared application.
2. The method of claim 1, further comprising the steps of:
partitioning said cached image frame update into multiple sub-sections; and,
caching said multiple sub-sections.
3. The method of claim 2, wherein said serving step comprises the steps of:
comparing an already served image frame in said requesting ones of said application sharing viewers to said cached image frame update; and,
serving only changed ones of said multiple sub-sections to said requesting ones of said application sharing viewers.
4. The method of claim 1, wherein said serving step comprises the steps of:
detecting a slow one of said application sharing viewers; and,
serving a newer image frame to said slow one of said application sharing viewers responsive to a request by said slow one of said application sharing viewers for an older image frame.
US10/745,091 2003-12-22 2003-12-22 Pull-configured distribution of imagery Expired - Fee Related US8521830B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/745,091 US8521830B2 (en) 2003-12-22 2003-12-22 Pull-configured distribution of imagery
US13/941,223 US9313273B2 (en) 2003-12-22 2013-07-12 Pull-configured distribution of imagery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/745,091 US8521830B2 (en) 2003-12-22 2003-12-22 Pull-configured distribution of imagery

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/941,223 Continuation US9313273B2 (en) 2003-12-22 2013-07-12 Pull-configured distribution of imagery

Publications (2)

Publication Number Publication Date
US20050138228A1 US20050138228A1 (en) 2005-06-23
US8521830B2 true US8521830B2 (en) 2013-08-27

Family

ID=34679053

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/745,091 Expired - Fee Related US8521830B2 (en) 2003-12-22 2003-12-22 Pull-configured distribution of imagery
US13/941,223 Expired - Lifetime US9313273B2 (en) 2003-12-22 2013-07-12 Pull-configured distribution of imagery

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/941,223 Expired - Lifetime US9313273B2 (en) 2003-12-22 2013-07-12 Pull-configured distribution of imagery

Country Status (1)

Country Link
US (2) US8521830B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367832B2 (en) * 2006-01-04 2016-06-14 Yahoo! Inc. Synchronizing image data among applications and devices
WO2014203239A1 (en) * 2013-06-17 2014-12-24 Peri Netanel A system and method for real time analysis of medical imaging
US9558031B2 (en) 2015-04-29 2017-01-31 Bank Of America Corporation Updating and redistributing process templates with configurable activity parameters
US9772873B2 (en) 2015-04-29 2017-09-26 Bank Of America Corporation Generating process templates with configurable activity parameters by merging existing templates
US10659556B2 (en) * 2017-05-16 2020-05-19 Sap Se Progressive hybrid web application
CN112764705B (en) * 2021-01-26 2022-12-02 重庆紫光华山智安科技有限公司 User interface sharing method and electronic equipment

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581702A (en) * 1993-12-20 1996-12-03 Intel Corporation Computer conferencing system for selectively linking and unlinking private page with public page by selectively activating linked mode and non-linked mode for each participant
US5586264A (en) * 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US5758079A (en) * 1993-10-01 1998-05-26 Vicor, Inc. Call control in video conferencing allowing acceptance and identification of participants in a new incoming call during an active teleconference
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6269080B1 (en) * 1999-04-13 2001-07-31 Glenayre Electronics, Inc. Method of multicast file distribution and synchronization
US20010051985A1 (en) * 1997-06-19 2001-12-13 Paul Haverstock Web server providing html pages embedded with non-html views
US20010052015A1 (en) * 1998-06-24 2001-12-13 Chueng-Hsien Lin Push-pull sevices for the internet
US20020016718A1 (en) * 2000-06-22 2002-02-07 Rothschild Peter A. Medical image management system and method
US20020055891A1 (en) * 2000-08-16 2002-05-09 Yun-Won Yang Researching method and researching system for interests in commercial goods by using electronic catalog including interactive 3D image data
US20020069282A1 (en) * 1994-05-31 2002-06-06 Reisman Richard R. Method and system for distributing updates
US20020099853A1 (en) * 2000-12-06 2002-07-25 Osamu Tsujii Information processing apparatus, method of controlling the same, information processing system, and computer-readable memory
US6570590B1 (en) * 1999-03-02 2003-05-27 Microsoft Corporation Application sharing in a frame
US6584493B1 (en) * 1999-03-02 2003-06-24 Microsoft Corporation Multiparty conferencing and collaboration system utilizing a per-host model command, control and communication structure
US20040064574A1 (en) * 2002-05-27 2004-04-01 Nobukazu Kurauchi Stream distribution system, stream server device, cache server device, stream record/playback device, related methods and computer programs
US20040080504A1 (en) * 1996-03-26 2004-04-29 Pixion, Inc. Real-time, multi-point, multi-speed, multi-stream scalable computer network communications system
US20050033817A1 (en) * 2001-04-13 2005-02-10 Songxiang Wei Sharing OpenGL applications using application based screen sampling
US20050128511A1 (en) * 2003-12-16 2005-06-16 International Business Machines Corporation Componentized application sharing
US6973455B1 (en) * 1999-03-03 2005-12-06 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US6986018B2 (en) * 2001-06-26 2006-01-10 Microsoft Corporation Method and apparatus for selecting cache and proxy policy
US20060161624A1 (en) * 2001-04-13 2006-07-20 Elaine Montgomery Methods and apparatuses for dynamically sharing a portion of a display for application based screen sampling

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6601087B1 (en) * 1998-11-18 2003-07-29 Webex Communications, Inc. Instant document sharing
US6633688B1 (en) * 2000-04-28 2003-10-14 Earth Resource Mapping, Inc. Method system and apparatus for providing image data in client/server systems
US6757684B2 (en) * 2001-10-01 2004-06-29 Ipac Acquisition Subsidiary I, Llc Network-based photosharing architecture
US20030110218A1 (en) * 2001-12-12 2003-06-12 Stanley Randy P. Local caching of images for on-line conferencing programs
US20080059583A1 (en) * 2006-09-06 2008-03-06 Rhub Communications, Inc. Browser based web conferencing employing layering to display screen updates
US8255461B1 (en) * 2009-03-06 2012-08-28 Cisco Technology, Inc. Efficient transmission of changing images using image caching

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758079A (en) * 1993-10-01 1998-05-26 Vicor, Inc. Call control in video conferencing allowing acceptance and identification of participants in a new incoming call during an active teleconference
US5581702A (en) * 1993-12-20 1996-12-03 Intel Corporation Computer conferencing system for selectively linking and unlinking private page with public page by selectively activating linked mode and non-linked mode for each participant
US20020069282A1 (en) * 1994-05-31 2002-06-06 Reisman Richard R. Method and system for distributing updates
US5586264A (en) * 1994-09-08 1996-12-17 Ibm Corporation Video optimized media streamer with cache management
US20040080504A1 (en) * 1996-03-26 2004-04-29 Pixion, Inc. Real-time, multi-point, multi-speed, multi-stream scalable computer network communications system
US7369515B2 (en) * 1996-03-26 2008-05-06 Pixion, Inc. Providing conferencing data in a network communications system based on client capabilities
US6167438A (en) * 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US20010051985A1 (en) * 1997-06-19 2001-12-13 Paul Haverstock Web server providing html pages embedded with non-html views
US20010052015A1 (en) * 1998-06-24 2001-12-13 Chueng-Hsien Lin Push-pull sevices for the internet
US6570590B1 (en) * 1999-03-02 2003-05-27 Microsoft Corporation Application sharing in a frame
US6584493B1 (en) * 1999-03-02 2003-06-24 Microsoft Corporation Multiparty conferencing and collaboration system utilizing a per-host model command, control and communication structure
US6973455B1 (en) * 1999-03-03 2005-12-06 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US6269080B1 (en) * 1999-04-13 2001-07-31 Glenayre Electronics, Inc. Method of multicast file distribution and synchronization
US20020016718A1 (en) * 2000-06-22 2002-02-07 Rothschild Peter A. Medical image management system and method
US20020055891A1 (en) * 2000-08-16 2002-05-09 Yun-Won Yang Researching method and researching system for interests in commercial goods by using electronic catalog including interactive 3D image data
US20020099853A1 (en) * 2000-12-06 2002-07-25 Osamu Tsujii Information processing apparatus, method of controlling the same, information processing system, and computer-readable memory
US20050033817A1 (en) * 2001-04-13 2005-02-10 Songxiang Wei Sharing OpenGL applications using application based screen sampling
US20060161624A1 (en) * 2001-04-13 2006-07-20 Elaine Montgomery Methods and apparatuses for dynamically sharing a portion of a display for application based screen sampling
US6986018B2 (en) * 2001-06-26 2006-01-10 Microsoft Corporation Method and apparatus for selecting cache and proxy policy
US20040064574A1 (en) * 2002-05-27 2004-04-01 Nobukazu Kurauchi Stream distribution system, stream server device, cache server device, stream record/playback device, related methods and computer programs
US20050128511A1 (en) * 2003-12-16 2005-06-16 International Business Machines Corporation Componentized application sharing

Also Published As

Publication number Publication date
US20140025784A1 (en) 2014-01-23
US9313273B2 (en) 2016-04-12
US20050138228A1 (en) 2005-06-23

Similar Documents

Publication Publication Date Title
US9313273B2 (en) Pull-configured distribution of imagery
US7085842B2 (en) Line navigation conferencing system
US8217987B2 (en) Method for creating a videoconferencing displayed image
US8203592B2 (en) Videoconference recording, post-processing, and playback
US20090106357A1 (en) Synchronized Media Playback Using Autonomous Clients Over Standard Internet Protocols
US20020133247A1 (en) System and method for seamlessly switching between media streams
US8239905B2 (en) Lecture capture and broadcast system
US11463741B2 (en) Methods and systems for dynamic routing of content using a static playlist manifest
US11128894B2 (en) Method and mobile terminal for processing data
EP1390879A1 (en) System for audio-visual media user customization
CN108769816B (en) Video playing method, device and storage medium
CN113613027B (en) Live broadcast room recommendation method and device and computer equipment
CN107920281A (en) A kind of network direct broadcasting video loading method and terminal
US10225292B2 (en) Selectively porting meeting objects
CN114666671A (en) Live broadcast praise interaction method, system, device, equipment and storage medium
US20240040180A1 (en) System and method for real-time delivery of a target content in a streaming content
US20230283813A1 (en) Centralized streaming video composition
US11930094B2 (en) Mitigating network resource contention
CN115297095B (en) Back source processing method, device, computing equipment and storage medium
WO2023284428A1 (en) Live video playback method and apparatus, electronic device, storage medium, and program product
WO2009031137A2 (en) Compact graphics for limited resolution display devices
US20230217047A1 (en) Method, system, and computer-readable recording medium for implementing fast-switching mode between channels in multi-live transmission environment
WO2023211442A1 (en) Adaptive lecture video conferencing
CN117742640A (en) Content display control method and electronic equipment

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HORNBACK, RAYMOND, JR.;JOHNSTON, JAMES S.;KRESSIN, MARK S.;AND OTHERS;REEL/FRAME:014849/0829;SIGNING DATES FROM 20031208 TO 20031217

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HORNBACK, RAYMOND, JR.;JOHNSTON, JAMES S.;KRESSIN, MARK S.;AND OTHERS;SIGNING DATES FROM 20031208 TO 20031217;REEL/FRAME:014849/0829

AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: RECORD TO CORRECT SPELLING OF ASSIGNOR'S NAME ON A DOCUMENT RECORDED 12/22/03,AT REEL 014849,FRAME 0829;ASSIGNORS:HOMBACK, RAYMOND, JR.;JOHNSTON, JAMES S.;KRESSIN, MARK S.;AND OTHERS;REEL/FRAME:016362/0966;SIGNING DATES FROM 20031208 TO 20031217

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: RECORD TO CORRECT SPELLING OF ASSIGNOR'S NAME ON A DOCUMENT RECORDED 12/22/03,AT REEL 014849,FRAME 0829;ASSIGNORS:HOMBACK, RAYMOND, JR.;JOHNSTON, JAMES S.;KRESSIN, MARK S.;AND OTHERS;SIGNING DATES FROM 20031208 TO 20031217;REEL/FRAME:016362/0966

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20170827