`TS0 et al.
`
`USOO6185625B1
`(10) Patent No.:
`US 6,185,625 B1
`(45) Date of Patent:
`*Feb. 6, 2001
`
`5/1996 Dwin et al. .......................... 395/166
`5,517,612
`(54) SCALING PROXY SERVER SENDING TO
`8/1996 Konrad .....
`... 395/200.09
`5,544,320
`THE CLIENT A GRAPHICAL USER
`3.56 : E. E. et al. ............................. s:
`INTERFACE FORESTABLISHING OBJECT
`2Y- a?
`a
`Silla ..........
`ENCODING PREFERENCES AFTER
`5,701,451 * 12/1997 Rogers et al. ........................... 707/1
`RECEIVING THE CLIENT'S REQUEST FOR
`(List continued on next page.)
`THE OBJECT
`OTHER PUBLICATIONS
`(75) Inventors: Michael Man-Hak Tso, Hillsboro, OR
`“MessagePad Solutions for Sales Professionals.” Apple
`(US); Jin Jing, Vancouver, WA (US);
`Computer, pp. 1-12, May 1995.*
`Robert Conrad Knauerhase, Portland,
`Berners-Lee, T., et al., RFC 1945, Network Working Group,
`OR (US); David Alfred Romrell,
`pp. 1-7 and 22–25, May 1996.*
`Hillsboro, OR (US); Daniel Joshua
`Armando Fox and Eric A. Brewer, “Reducing WWW
`Gillespie, Portland, OR (US); Bikram
`Latency and Bandwidth Requirements by Real-Time Dis
`Singh Bakshi, Hillsboro, OR (US);
`tillation,” Fifth International World Wide Web Conference,
`Seshardi Sathyanarayan, Portland, OR
`May 6–10, 1996.
`(US)
`Armando Fox et al., “Adapting to Network and Client
`Variability via On-Demand Dynamic Distillation,” Univer
`(73) ASSignee: es Corporation, Santa Clara, CA
`sity of Cal. at Berkeley, Sep. 1996.
`US
`Primary Examiner Zarni Maung
`This patent issued on a continued pros-
`ecution application filed under 37 CFR ASSistant Examiner-Andrew Caldwell
`1.53(d), and is subject to the twenty year
`(74) Attorney, Agent, or Firm-Kenyon & Kenyon
`E)(sm provisions of 35 U.S.C.
`(57)
`ABSTRACT
`A System for enhancing data access over a communications
`link is disclosed. In accordance with a particular
`embodiment, a System for retrieving an object Over a com
`puter network includes a network client with a browser for
`rendering an object to a user and a user interface enabling
`(21) Appl. No.: 08/772,164
`the user to establish an encoding preference. A remote
`9
`Scaling Server is coupled between the network client and the
`(22) Filed:
`Dec. 20, 1996
`(51) Int. Cl. ............................... G06F 15/16; G06F 3/00 E"...RISE. A. part
`(52) U.S. Cl. .......................... 709/247; 709/203; 92. figured tO request user-specified encoding preference from
`f
`the network client, retrieve an object from the computer
`(58) Field of Search ......................... 395/200.31, 200.32,
`network using the remote proXy, encode the object using the
`395/200.33, 200.47, 200.48, 200.49, 200.76,
`encode Service provider in accordance with the requested
`200.77; 709/201-203, 217-219, 246-247;
`user-specified encoding preference, and transmit the
`345/347, 352
`encoded object to the network client using the remote proxy.
`The disclosed System thus enables users to dynamically
`influence the trade-off between quality of content and down
`load Speed.
`p
`
`(*) Notice:
`
`Z.
`
`Under 35 U.S.C. 154(b), the term of this
`patent shall be extended for 0 days.
`
`(56)
`
`5,373.375
`
`References Cited
`U.S. PATENT DOCUMENTS
`12/1994 Weldy .................................. 358/523
`
`33 Claims, 10 Drawing Sheets
`
`- 3
`
`
`
`17
`
`BROWSER WINDOW
`E
`FILE EDT VIEW CO BOOKMARKS OPTIONS DIRECTORY
`FORWARD
`RELOAD
`SCALING INTERFACE
`14
`w
`SET SWITCH FOR SCALE ON (ON),
`NETSITE:http://
`ORIGINA (OFF) oRDEFAULTAffo)115
`
`o
`HELP
`
`
`
`
`
`
`
`SOFTWARE
`
`16
`
`IPR2018-01413
`Sony EX1028 Page 1
`
`
`
`US 6,185,625 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`1/1998 Kremen et al. ................. 395/200.09
`5,706,434
`5: : E. R et al. .
`39 E.
`2 : 1
`f
`IIllS . . . . . . . . . . .
`f200.
`5,742,768 * 4/1998 Gennaro et al.
`... 709/218
`5,742,905 * 4/1998 Pepe et al. .....
`... 455/461
`5,764,235
`6/1998 Hunt et al. ...
`... 345/428
`5,768,510
`6/1998 Gish ........
`395/200.33
`5,805,735
`9/1998 Chen et al. ...
`... 382/239
`5,918,013 * 6/1999 Mighdoll et al. .................... 709/217
`
`9/1999 Kalra .................................... 709/231
`5,953,506
`5.991,816 * 11/1999 Percival et al. .
`... 709/247
`5.996,022 * 11/1999 Krueger et al. .
`... 709/247
`6,018,343 * 2/2000 Wang et al. ......................... 345/356
`6,049,821
`4/2000 Theriault et al. .................... 709/203
`6,076,109 * 6/2000 Kikinis ........
`709/228
`6,088,803 * 7/2000 Tso et al. .....
`713/201
`6.101.328
`8/2000 Bakshi et all
`717/11
`2- Y
`-2
`akSill el all. . . . . . . . . . . . . . . . . . . . . . . . . . .
`
`
`
`* cited by examiner
`
`IPR2018-01413
`Sony EX1028 Page 2
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 1 of 10
`
`US 6,185,625 B1
`
`
`
`IPR2018-01413
`Sony EX1028 Page 3
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 2 of 10
`
`US 6,185,625 B1
`
`
`
`
`
`
`
`
`
`
`
`?JESM088
`
`
`
`|NETTO XÀJOMIEN
`
`IPR2018-01413
`Sony EX1028 Page 4
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 3 of 10
`
`US 6,185,625 B1
`
`
`
`BRIWMIJOS
`
`IPR2018-01413
`Sony EX1028 Page 5
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 4 of 10
`
`US 6,185,625 B1
`
`
`
`
`
`
`
`}|EWÄHES ONTWOS BLOWEN
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`INE|| 10 XRJOMIEN
`
`IPR2018-01413
`Sony EX1028 Page 6
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 5 of 10
`
`US 6,185,625 B1
`
`N
`
`
`
`
`
`
`
`
`
`
`
`Z
`
`3000NE0Z
`
`IPR2018-01413
`Sony EX1028 Page 7
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 6 of 10
`
`US 6,185,625 B1
`
`
`
`
`
`
`
`|NETTO XÀJOMIEN
`
`IPR2018-01413
`Sony EX1028 Page 8
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 7 of 10
`
`US 6,185,625 B1
`
`
`
`IPR2018-01413
`Sony EX1028 Page 9
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 8 of 10
`
`US 6,185,625 B1
`
`USER REQUESTS
`URL OBJECT
`
`
`
`
`
`100
`
`BROWSER ISSUES
`HTTP REQUEST
`FOR URL OBJECT
`
`110
`
`HTTP LOCAL PROXY CHECKS
`CLIENT-SIDE CACHE FOR
`URL OBJECT
`
`120
`
`
`
`
`
`
`
`130
`
`OBJECT
`IN CACHE
`
`
`
`
`
`RETRIEVE OBJECT
`FROM CACHE
`
`140
`
`150
`
`
`
`
`
`BROWSER
`DISPLAYS
`OBJECT
`
`FIG.8
`
`IPR2018-01413
`Sony EX1028 Page 10
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 9 of 10
`
`US 6,185,625 B1
`
`HTTP LOCAL PROXY
`SENDS REQUEST TO
`HTTP REMOTE PROXY
`
`
`
`
`
`HTTP REMOTE PROXY
`CHECKS SERVER-SIDE
`(CACHE FOR URL OBJECT)
`
`160
`
`170
`
`
`
`180
`
`
`
`OBJECT
`IN CACHE
`p
`
`
`
`Y
`200 SE
`OBJECT
`
`
`
`220
`
`RETURN
`ERROR
`
`190
`
`RETRIEVE URL
`OBJECT FROM
`INTERNET
`
`210
`OBJECTYNN
`FOUND?
`
`230
`
`CACHE
`RETRIEVED
`OBJECT
`
`FIG.9
`
`IPR2018-01413
`Sony EX1028 Page 11
`
`
`
`U.S. Patent
`
`Feb. 6, 2001
`
`Sheet 10 Of 10
`
`US 6,185,625 B1
`
`240
`
`SCALEN N
`OBJECT
`p
`
`
`
`250
`
`CREATE SCALED
`VERSION OF OBJECT
`
`260
`
`SEND
`OBJECT TO HTTP LOCAL PROXY
`
`270
`
`STORE
`OBJECT IN CLENT-SIDE CACHE
`
`280
`
`
`
`Y
`EP
`p
`
`N
`
`290
`
`BROWSER
`DISPLAYS
`OBJECT
`
`DECODE OBJECT (IF NEEDED)1300
`
`320
`
`BROWSER
`DISPLAYS
`OBJECT
`
`310
`
`
`
`350
`
`STANDARDNY
`MIMETYPE
`p
`
`N
`
`FG, 10
`
`IPR2018-01413
`Sony EX1028 Page 12
`
`
`
`1
`SCALING PROXY SERVER SENDING TO
`THE CLIENT A GRAPHICAL USER
`INTERFACE FORESTABLISHING OBJECT
`ENCODING PREFERENCES AFTER
`RECEIVING THE CLIENT'S REQUEST FOR
`THE OBJECT
`BACKGROUND OF THE INVENTION
`The present invention relates generally to the field of data
`communications for personal computers (PCs), and in par
`ticular to a System for enhancing data acceSS Over a com
`munications link.
`The Internet is quickly becoming the preferred data
`communications medium for a broad class of computer users
`ranging from private individuals to large multi-national
`corporations. Such users now routinely employ the Internet
`to acceSS information, distribute information, correspond
`electronically, and even conduct personal conferencing.
`Indeed, an ever-growing number of individuals, organiza
`tions and businesses have established a presence on the
`Internet through “web pages” on the World-Wide Web
`(WWW).
`At the same time that the Internet's popularity has been
`growing, the trend in personal computer design has been
`towards increased portability. This trend is best evidenced
`by the rapid growth in popularity of so-called “notebook” or
`25
`“laptop' computers. Unfortunately, while PCs are becoming
`both more powerful and more portable, advances in com
`munications infrastructure have not kept pace.
`A primary limitation on the ability of personal computers
`to exploit the Internet to full benefit is a lack of Sufficient
`communications bandwidth. Similar problems may be
`caused by Such conditions as high network traffic, even for
`high-speed Internet access lines. Outside of an office
`environment, for example, PCS typically connect to the
`Internet via POTS (Plain Old Telephone Service) or wireless
`modems at Speeds ranging from 9.6 to 14.4 kbps. Such
`speeds are substantially lower than typical office LAN
`(Local Area Network) bandwidths. This limited data com
`munications capability translates into very long user-visible
`latencies when users interact with the Internet using Such
`technologies.
`Communications bandwidth limitations also cause prob
`lems for users who access the Internet in a variety of ways
`depending upon where they are physically located. It is quite
`common for a user to have more than one computer from
`which he or she accesses the Internet, Such as an office PC,
`a home PC and a mobile PC for travel. Alternatively, a user
`may employ a single mobile PC to access the Internet from
`multiple locations, including office, home or remote sites.
`Such clients may become frustrated by differences in acceSS
`Speeds as they move among these various work
`environments, as there may be dramatic differences in the
`time required to access the exact same content given the
`widely-disparate communications bandwidths available
`(e.g., 10 Mb over an office LAN v. 9.6 kb over a modem).
`Such users typically are not tolerant of poor data acceSS
`times, demanding comparable performance regardless of
`where and how they happen to be accessing the Internet.
`Slow data communications Speeds are especially prob
`lematic for the mobile and home computer industries, Since
`available content is typically becoming richer in time frames
`measured in terms of weeks to months, while mobile and
`home computer bandwidths are typically getting broader in
`time frames measured in terms of years to decades. In order
`to remain competitive, it is desirable that mobile and home
`computerS maintain application equivalence with office
`desktop PCs.
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,185,625 B1
`
`15
`
`2
`In View of this challenge, the mobile and home computer
`industries have developed a number of approaches for
`dealing with the problem of slow data communications. One
`Such method is to use a text-only browser; that is, users are
`simply unable to download data other than text. While this
`method certainly reduces user-visible latencies by avoiding
`richer data types Such as images and Video, it also dimin
`ishes the value of most Web pages and Significantly
`underuses the advanced media capabilities of PCs. The end
`result is decreased user Satisfaction.
`Another approach is for content providers to create con
`tent in low-quality, non-rich formats. Such content may be
`represented using Substantially leSS data than high-quality,
`rich formats, thus shortening the time required for transmis
`Sion to a user. This method, however, presents a user Site
`with the Hobson’s choice of decreased content quality for all
`of its users (including those with access to high-bandwidth
`connections) or intolerable access speeds for users with
`low-bandwidth connections. Since Web sites must compete
`with other media industries, Such as television, for the
`attention of users, today most Sites are choosing high
`quality, rich content. The result is that low-bandwidth con
`nections are becoming increasingly undesirable, resulting in
`many rich content Web Sites creating and maintaining mul
`tiple versions of objects offering varying degrees of resolu
`tion from which the user must choose.
`Yet another approach is data compression. Traditional
`data compression techniques involve compressing data at
`the network or packet level. Examples include modem
`compression (such as V.42) and PPP/IP header compression.
`Such techniques are by necessity non-lossy because they
`lack information about the data being compressed. Com
`pression rates are generally no more than 2x end-to-end for
`all compression algorithms combined, being limited by the
`fact that compressing already-compressed data is largely
`ineffective. This is especially true for the media datatypes
`often used on the Web, Such as Video, audio and image.
`Content containing these rich datatypes are usually Stored in
`compressed format already, meaning traditional compres
`Sion techniques achieve Substantially less than the 2x com
`pression rate.
`None of the foregoing approaches provide a Satisfactory
`Solution to the problem of providing users with fast access
`to the rich content available over computer networkS Such as
`the Internet.
`
`SUMMARY OF THE INVENTION
`According to an embodiment of the present invention, a
`System for retrieving an object from a computer network
`includes a network client with a browser for rendering data
`to a user. A remote Scaling Server is coupled between the
`network client and the computer network, and includes a
`remote proxy, an encode manager, and one or more encode
`Service providers. The remote Scaling Server is configured to
`retrieve an object from the computer network using the
`remote proxy, encode the object using an encode Service
`provider, and transmit the encoded object to the network
`client using the remote proxy.
`In other embodiments, an encode Service provider may be
`used to Selectively encode or Scale an object based on a
`predetermined characteristic thereof, Such as a datatype,
`making it possible to achieve compression rates Substan
`tially greater than the 2x rate achieved by traditional com
`pression techniques without negatively affecting Software
`that ultimately processes the compressed data. Such higher
`compression rates may be achieved by reducing the quality
`
`IPR2018-01413
`Sony EX1028 Page 13
`
`
`
`US 6,185,625 B1
`
`3
`of a picture and/or by using compression techniques tuned
`for Specific datatypes. For example, representing certain
`types of images, Such as photographic images, using JPEG
`or fractal compression algorithms may result in a 10x
`improvement in compression rate over the popular GIF
`format. Moreover, Such datatype-specific compression tech
`niques may be adaptive to a particular client's capabilities,
`including display resolution, available network bandwidth,
`connection quality (wired versus wireless/radio), and central
`processing unit (CPU) capability (for handling
`decompression). Thus, the quality of the user experience
`may vary with client capability, all without having to Spe
`cialize content, Web server Software or client Software.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a Schematic diagram illustrating an environment
`in which embodiments of the present invention may be
`applied.
`FIG. 2 is a Schematic diagram illustrating an embodiment
`of the present invention directed to a non-enabled network
`client.
`FIG. 3 is a Schematic diagram illustrating an example of
`a user interface providing a non-enabled network client with
`Scaling and refinement functionality.
`FIG. 4 is a Schematic diagram illustrating an embodiment
`of the present invention directed to a non-enabled network
`client including embedded decoderS.
`FIG. 5 is a Schematic diagram illustrating an embodiment
`of the present invention directed to an enabled network
`client.
`FIG. 6 is a Schematic diagram illustrating an embodiment
`of the present invention directed to an enabled network
`client with client software integrated in the browser.
`FIG. 7 is a Schematic diagram illustrating an embodiment
`of an encode Service provider configured to Scale image
`data.
`FIGS. 8-10 are flow charts illustrating the logic per
`formed by an embodiment of the present invention to
`present a requested URL object to a network client user.
`
`DETAILED DESCRIPTION
`Given the drawbacks of known approaches, there is a
`need for providing bandwidth-constrained computer users
`with fast access to the full range of rich data content
`available on computer networkS Such as the Internet.
`Embodiments of the present invention Satisfy that need,
`reducing the gap between the richness of available content
`and the ability of bandwidth-constrained personal computers
`to provide users with access to that content. Such embodi
`ments may be particularly useful for improving the perfor
`mance of mobile or home PCs having limited bandwidth
`available for data communications. In Such cases, Substantial
`performance improvements are possible, Significantly
`reducing user-Visible latencies. Moreover, embodiments of
`the present invention may be configured to be fully back
`wards compatible with today's popular Internet browsers,
`Web Servers, and existing content types.
`Like Some prior approaches, embodiments in accordance
`with the present invention are founded on the theory of
`trading quality for performance. User-Visible latencies may
`be reduced by Scaling (encoding) content to decrease the
`quantity of data that must be transmitted. AS is explained
`more fully below, Scaling may be performed by a caching
`network proxy using one or more of the following methods:
`
`4
`reduction of content dimension;
`reduction of content quality through lossy compression,
`Such as lower quality, leSS colors, or partial conversion
`of an image object to text or an outline;
`translation of content to a more efficient representation
`format, and
`combinations of the foregoing.
`Numerous techniques for Scaling various types of data are
`well-known in the art, and the present invention is not
`dependent upon the use of any particular technique. Nor is
`the present invention intended to be limited according to any
`technique discussed below for purposes of illustrating fea
`tures of certain embodiments. In addition to Scaling, user
`Visible latencies may be reduced by caching multiple Ver
`Sions of content, which is a difficult and resource-intensive
`task using existing technology.
`Embodiments in accordance with the present invention
`are directed to providing a flexible System for enhancing the
`transfer of data from remote networks, Such as the Internet,
`to computers having communications and/or presentation
`restrictions including, for example, limited communications
`bandwidth, congested communications lines, or limited
`Visual or audio display capabilities. A significant problem
`addressed by embodiments in accordance with the invention
`is that content authored for a particular type of client (for
`example, in terms of display capability or connection speed)
`does not always work well for other types of clients. In other
`words, content that is "rich enough (high image quality) for
`clients accessing the network over a relatively high-speed
`LAN may download too slowly for clients accessing the
`network over a relatively slow-speed POTS connection.
`Conversely, content that is optimized for fast POTS down
`loading may appear uninteresting (Small, grainy images) to
`LAN clients who have come to expect richer content. To
`compound this problem, the population of network clients is
`extremely diverse. Some clients have fast data links, while
`others have data links that may be as much as 100x slower.
`Similarly, Some clients have large Video displays with exten
`Sive color capability, while others have Small video displayS
`with little or no color capability. A System according to an
`embodiment of the present invention may automatically
`adjust the quality of the data access experience based on
`these varying client capabilities, enabling content providers
`to author for the richest clients yet have their content
`automatically Scaled for any number of clients with lesser
`capabilities. In this way, clients are ensured of increased
`benefit and enjoyment. In addition, users may be given the
`option of Selecting the kind of experience they want by
`controlling the tradeoff between download time and richneSS
`of the downloaded content.
`Certain embodiments of the invention described below
`use a “network proxy' to provide content to a client.
`Network proxies are generally known in the art, as described
`in Ian S. Graham, HTML Source Book: A Complete Guide to
`HTML 3.0 (2d ed. Wiley Computer Publishing 1996), incor
`porated herein by reference. A network proxy, or proxy
`Server, is typically used in conjunction with So-called “fire
`wall' software to protect a LAN from unauthorized access
`over the Internet. A firewall, typically installed on a gateway
`computer that links the LAN to the external world, restricts
`externally-originated TCP/IP (Transmission Control
`Protocol/Internet Protocol) packets from entering a local
`area network, thereby protecting the LAN from hazards Such
`as unauthorized access and viruses. However, the firewall
`also prevents network users from directly accessing external
`resources such as the Web. Network proxies are often used
`to address this shortcoming. See Graham, at 403.
`
`5
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`IPR2018-01413
`Sony EX1028 Page 14
`
`
`
`US 6,185,625 B1
`
`15
`
`25
`
`35
`
`40
`
`S
`Network proxies are usually configured to have free
`access to both internal LAN resources and external
`resources, and can safely pass data back and forth acroSS the
`firewall. Users may then be given Safe, though indirect,
`access to Web resources by configuring the user's Web
`browser to reference the network proxy instead of external
`target servers. When the Web browser is used to retrieve
`information from outside the firewall it sends a request to the
`network proxy, which then completes the request and returns
`the result to the requester. Id.
`While the firewall/network proxy architecture effectively
`Shields a LAN from external hazards, the two-stage data
`access procedure is often relatively slow. It is therefore
`common for a network proxy to cache retrieved files. For
`example, the first time that a document residing on the Web
`is requested, the network proxy retrieves the document and
`forwards it to the browser for presentation to the user, but
`also retains a copy of the document in its own local memory.
`If the same or another user makes a Subsequent request for
`that same document, the network proxy returns the locally
`cached copy of the document instead of re-retrieving it from
`the Web. Id. at 403-404. An example of a cache for use by
`a network proxy was described in Anawatt Chankhunthod et
`al., “A Hierarchical Internet Object Cache,” Nov. 6, 1995
`(available from the Computer Science Dept. of the Univer
`sity of Southern California), incorporated herein by refer
`CCC.
`Another example of a network proxy is “GloMop,” devel
`oped at the University of California-Berkeley, which uses a
`network proxy to reduce latency by Scaling images to
`thumbnails before transmitting them to users. See Armando
`Fox and Eric A. Brewer, “Reducing WWW Latency and
`Bandwidth Requirements by Real-Time Distillation”
`(available from the University of California-Berkely), incor
`porated herein by reference. As described, GloMop lacks the
`ability to accommodate more than a handful of users con
`currently because there is no facility for Selective Scaling or
`background compression. In addition, image maps tend to
`break when scaled to thumbnails. Another problem is that
`GloMop does not cache Scaled images, meaning the same
`image may be Scaled over and over again in response to
`multiple requests. Nor does GloMop employ Stream-based
`processing, meaning users must wait for GloMop to Scale an
`entire image before beginning to perceive any portion of an
`image, thus limiting the responsive “feel” of the System.
`Finally, GloMop requires the installation of new client
`software (specialized browsers). In view of these and other
`problems, GloMop is not a commercially-deployable SyS
`tem.
`Referring now to FIG. 1, which illustrates an environment
`in which an embodiment of the present invention may be
`advantageously applied, a network Server 1 manages the
`transfer of data from the Internet 2 to a network client 3.
`Network client 3 may be any computer having Suitable data
`communications capability.
`Network client 3 communicates requests for information
`to, and receives information from, network Server 1 over a
`client/server communications link 4. Client/server commu
`nications link 4 may comprise, for example, a So-called
`“slow network” using, for example, POTS dial-up technol
`ogy or wireleSS connections. Alternatively, client/server
`communications link 4 may comprise a So-called “fast
`network.” Such as a LAN or WAN (Wide Area Network),
`which is capable of operating at much higher Speeds than are
`possible with slow networkS. Combinations of these acceSS
`methods are also possible. For example, network client 3
`may use a POTS or wireless dial-up connection to a modem
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`bank maintained by an ISP (Internet Service Provider),
`which is in turn connected to network server 1 over a LAN.
`Referring now to FIG. 2, in a first embodiment of the
`present invention network client 3 accesses Internet 2
`through a remote Scaling Server 1. Remote Scaling Server 1
`may be implemented, for example, as part of a network
`Server, as a Stand-alone computer in communication with a
`network Server, or as a distributed System of computers.
`Remote Scaling Server 1 may be coupled, for example, to an
`ISP's network, a corporate network, or anywhere on Internet
`2, and provides multiple users with a means to obtain
`content on Internet 2.
`Remote scaling server 1 includes an HTTP (HyperText
`Transfer Protocol) remote proxy 6, capable of accessing
`Internet 2 over a server/network communications link 5. AS
`will become apparent from the following description, HTTP
`remote proxy 6 is markedly different from known network
`proxies, which generally are little more than a conduit for
`requests to, and replies from, external Internet resources. By
`contrast, the HTTP remote proxy 6 not only examines such
`requests and replies, but may act on commands in the
`requests by, for example, determining whether or not to Scale
`content. Also unlike existing network proxies, HTTP remote
`proxy 6 is capable of changing content received from
`Internet 2 prior to returning it to a requesting network client
`3 by, for example, Scaling the content.
`An encode manager 7 is coupled to HTTP remote proxy
`6. Encode manager 7 manages the compression of data to be
`transmitted from remote Scaling Server 1 to network client 3.
`To this end, encode manager 7 controls one or more encode
`service providers 8 which may be used to selectively scale
`content based on a predetermined characteristic thereof. For
`example, in one embodiment, each encode Service provider
`8 may include the capability to compress and/or Scale a
`different type of data content, Such as image, Video, or
`HTML (HyperText Markup Language). Other examples of
`Such predetermined Selection criteria which may be used to
`Selectively Scale content include presentation capabilities of
`network client 3, Such as an ability to playback Sound
`recordings, a quality of Sound Supported (e.g., mono versus
`Stereo), and resolution, dimensions and/or color Support of a
`user display device, CPU and/or memory capacity; Speed
`and/or quality of client/server communications link4; and/or
`user-Selected preferences. The present invention is not lim
`ited in Scope in this respect.
`In this embodiment, remote Scaling Server 1 also includes
`a Server-side cache memory 10 managed by a Server-side
`cache interface 9. Server-side cache memory 10 may be used
`to Store both original and compressed/Scaled versions of
`content for later transmission to network client 3 without the
`need to re-retrieve the content from Internet 2 or to
`re-compress the content.
`Remote Scaling Server 1 is coupled to network client 3 by
`a client/server communications link 4. Network client 3
`includes a browser 12, such as the Netscape Navigator v.3.0
`browser (although the invention is not limited in this
`respect), which manages the presentation of data to a user.
`In this embodiment, network client 3 is “non-enabled.”
`meaning no specialized decoding Software is preloaded on
`network client 3.
`Encode manager 7 Serves as a relatively simple, uniform
`interface to HTTP remote proxy 6, and may provide an API
`(Application Programming Interface) for encoding data
`received by HTTP remote proxy 6. Encode manager 7
`manages one or more encode Service providers 8 that are
`accessed through a common SPI (Service Provider
`Interface). In this particular embodiment, encode manager 7
`
`IPR2018-01413
`Sony EX1028 Page 15
`
`
`
`7
`is designed in compliance with the Windows Open Systems
`Architecture (WOSA), and may be implemented as a Win32
`DLL (Dynamic Link Library). The WOSA architecture,
`described in Readings on Microsoft Windows and WOSA
`(Microsoft Corp. 1995) (incorporated herein by reference),
`enables encode service providers 8 to be dynamically added
`to the System to provide new features and/or better Scaling
`algorithms, while at the same time not requiring changing or
`retesting other Software components in the System. This
`feature is especially beneficial where remote Scaling Server
`1 also interacts with “enabled” network clients equipped
`with Specialized decoding Software. It should be noted that
`Some of the features of encode manager 7 described below
`may be inapplicable to the non-enabled client embodiment
`of FIG. 2; however, remote Scaling Server 1 may advanta
`geously be configured flexibly enough to process requests
`from both non-enabled and enabled network clients.
`Like encode manager 7, Server-side cache interface 9 is
`preferably modeled after a Get/Set interface. Server-side
`cache memory 10 essentially "owns” all cached objects, in
`that it manages the properties and Storage of the objects and
`may invalidate any non-locked object at any time; however,
`the actual format of any given cached object is known only
`by encode Service manager 7 and its associated encode
`Service providers 8. Thus, for data integrity and compression
`efficiency purposes, all accesses to Server-Side cache
`memory 10 in this embodiment are done through encode
`manager 7.
`In this particular embodiment, Server-side cache interface
`9 may include the following calls:
`CreateEntry(URL, & Entry, ...);
`GetEntry(URL, & Entry);
`CreateStream(Entry, &Stream Entry, . . . );
`GetStream(Entry, &Stream Entry, . . . );
`CloseEntry(Entry);
`CloseStreamEntry(Stream Entry);
`GetProperties(Entry, &Properties, ...);
`SetProperties(Entry, &Properties, . . . );
`Read(StreamEntry, & OutStream, . . . );
`Write(Stream Entry, &InStream, . . . ).
`Unlike existing cache memories, Server-side cache interface
`9 and server-side cache memory 10 enable maintenance of
`multiple representations of a given cached object, with
`descriptive information about each representation included
`in Server-side cache memory 10. In addition, Server-side
`cache interface 9 and server-side cache memory 10 serve as
`a Synchronization point for multi-threaded accesses to
`cached objects. It should be noted that the present invention
`is not limited to any particular configuration for Server-side
`cache interface 9 and/or server-side cache memory 10.
`Indeed, functionality attributed to these components in the
`various embodiments described herein may be readily
`implemented in other System components.
`The CreateEntry() call creates and returns a cache entry
`for a specified hypertext object. This call also creates an
`entry Stream for an original version of the hypertext object.
`Similarly, the GetEntry() call obtains a cache entry for a
`hypertext object already existing in cache memory 10. Both
`the CreateEntry() and GetEntry() calls set locks on asso
`ciated cached objects until a Close Entry() call is invoked.
`Once a lock is Set, the cached object will not be replaced or
`invalidated by cache interface 9, permitting one or more
`encode Service providers 8 to safely perform any required
`cache operations, Such as object retrieval and/or Storage.
`After a cache entry is created or opened by a
`CreateEntry() or GetEntry() call, the CreateStream() or
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,185,625 B1
`
`8
`GetStream() calls may respectively create or open an extra
`Stream entry for the cached object. Each extra Stream entry
`is associated with a different Scaled version of the hypertext
`object, which may be retrieved or append