throbber
Equil EX2007
`Akamai Techs. v. Equil IP Holdings
`IPR2023-00332
`
`

`

`Zimbabwe
`
`Albania
`Armenia
`Austria
`Australia
`Azerbaijan
`Bosnia and Herzegovina
`Barbados
`Belgium
`Burkina Faso
`Bulgaria
`Benin
`Brazil
`Belarus
`Canada
`Central African Republic
`Congo
`Switzerland
`Céte d’Ivoire
`Cameroon
`China
`Cuba
`Czech Republic
`Germany
`Denmark
`Estonia
`
`SI
`SK
`SN
`SZ
`TD
`TG
`TJ
`
`Slovenia
`Slovakia
`Senegal
`Swaziland
`Chad
`Togo
`Tajikistan
`Turkmenistan
`Turkey
`Trinidad and Tobago
`Ukraine
`Uganda
`United States of America
`Uzbekistan
`Viet Nam
`Yugoslavia
`
`FOR THE PURPOSES OF INFORMATION ONLY
`
`Codes used to identify States party to the PCT on the front pages of pamphlets publishing international applications under the PCT.
`
`™T
`
`R
`TT
`UA
`UG
`US
`UZ
`VN
`YU
`ZW
`
`ES
`FI
`FR
`GA
`GB
`GE
`GH
`GN
`GR
`HU
`IE
`IL
`IS
`IT
`JP
`KE
`KG
`KP
`
`KR
`KZ
`LC
`LI
`LK
`LR
`
`Spain
`Finland
`France
`Gabon
`United Kingdom
`Georgia
`Ghana
`Guinea
`Greece
`Hungary
`Treland
`Tsrael
`Iceland
`Ttaly
`Japan
`Kenya
`Kyrgyzstan
`Democratic People’s
`Republic of Korea
`Republic of Korea
`Kazakstan
`Saint Lucia
`Liechtenstein
`Sri Lanka
`Liberia
`
`LS
`LT
`LU
`LV
`MC
`MD
`MG
`MK
`
`ML
`MN
`MR
`MW
`MX
`NE
`NL
`NO
`NZ
`PL
`PT
`RO
`RU
`SD
`SE
`SG
`
`Lesotho
`Lithuania
`Luxembourg
`Latvia
`Monaco
`Republic of Moldova
`Madagascar
`The former Yugoslav
`Republic of Macedonia
`Mali
`Mongolia
`Mauritania
`Malawi
`Mexico
`Niger
`Netherlands
`Norway
`New Zealand
`Poland
`Portugal
`Romania
`Russian Federation
`Sudan
`Sweden
`Singapore
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`SYSTEM FOR DYNAMICALLY TRANSCODING DATA
`TRANSMITTED BETWEEN COMPUTERS
`
`Background of the Invention
`
`This application claimsthe benefit of U.S. Provisional Application
`No. 60/041,366, filed March 25, 1997.
`
`Field of the Invention
`
`The presentinvention relates generally to the field of data
`communicationsfor personal computers (PCs), andin particular to a system for
`dynamically transcoding data transmitted between two computers over a
`communicationslink.
`
`Related Art
`
`The Internet is quickly becoming the preferred data communications
`medium for a broad class of computerusers ranging from private individuals to large
`multi-national corporations. Such users nowroutinely employ the Internet to access
`information,distribute information, correspond electronically, and even conduct
`personal conferencing. An ever-growing numberofindividuals, organizations and
`businesses have established a presence onthe Internet through “web pages” on the
`World-Wide Web (WWW).
`
`For a widevariety of reasons, it may be desirable to manipulate data
`transmitted betweena local client computer and a network server computer. For
`
`-l-
`
`10
`
`15
`
`20
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`example, in certain instances it may be advantageous to dynamically add, modify or
`
`delete content retrieved from an Internet server computer before that contentis
`
`provided to a client computer. Conversely, it may be advantageous to modify a
`
`content request from a client computerprior to transmitting the request to an Internet
`
`server computer. While such dynamic manipulation of requests and responsesis
`
`desirable, it is impractical to expect the expansive Internet infrastructure to quickly
`
`change to accommodate such a new capability. For this reason,it is desirable to
`
`implement such new capabilities in a way that does not require changesto either
`
`existing client computers or Internet server computers.
`
`10
`
`It is knownto deploy a proxy server, or network proxy, as an
`
`intermediary between one or moreclient computers and an external network such as
`
`the Internet. Network proxies are described generally in Ian S. Graham,HTML
`
`Source Book: A Complete Guide to HTML 3.0 403 (2d ed. 1996). One common
`
`15
`
`application for a proxy serveris as a so-called “firewall,” wherein the proxy serveris
`
`responsible for all communications with the outside world. In other words, local
`
`devices are not permitted to communicate directly with external network computers,
`
`suchas Internet servers. Instead, each local device directs requests for network-
`
`resident data to the proxy server. When the proxy server receives such a request,it
`
`20
`
`forwards the request to the appropriate external computer, receives the response
`
`from the external computer, and then forwards the responseto the local device. The
`
`external computer thus has no knowledgeofthe local devices.
`
`In this way, the local
`
`devices are protected from potential dangers such as unauthorized access.
`
`25
`
`Existing proxy servers do not manipulate the data passing through
`
`them. In essence, proxy servers are merely blind conduits for requests and responses.
`
`This limitation of existing proxy servers restricts these devices from being usedto full
`
`advantage whenfacilitating communications betweenlocal devices and network
`
`devices. There is therefore a need for a so-called “smart” proxy capable of examining
`
`30
`
`the data passing through it, whetherit be a request intended for an external network
`
`device or network content being returned to a local device, and dynamically acting
`
`-2-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`upon that data. Such a device can be used to transparently provide a wide range of
`
`services that were heretofore impossible without modifying existing Internet
`
`infrastructure.
`
`Summary of the Invention
`
`Embodimentsofthe present inventionrelate to devices, systems and
`
`methodsfor transcoding information transmitted between computers, such as a
`
`network server computer and a networkclient computer.
`
`According to one embodiment, an apparatus for use in transmitting
`data between a network server and a networkclient over a communicationslink
`includes a parser coupled to a transcodeservice provider. Theparser is configured
`to selectively invoke the transcode service provider in response to a predetermined
`
`selection criterion.
`
`10
`
`15
`
`Brief Description of the Drawings
`
`Fig. 1 is a schematic diagram illustrating an environment in which
`
`embodiments of the present invention may beapplied.
`
`Fig. 2 is a schematic diagramillustrating a transcoder module
`according to an embodimentofthe present invention.
`
`20
`
`Fig. 3 is a schematic diagram illustrating an embodimentof the
`
`present invention for a non-enabled networkclient.
`
`Fig. 4 is a schematic diagram illustrating an example of a user
`
`interface for providing a non-enabled networkclient with control over transcoding
`
`25
`
`functionality.
`
`Fig. 5 is a schematic diagram illustrating an embodiment of the
`
`present invention for an enabled networkclient.
`
`Fig. 6 is a schematic diagram illustrating a networkclient with
`
`transcoding functionality integrated in a browser according to an embodimentof the
`
`30
`
`present invention.
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`Figs. 7-9 are flow chartsillustrating logic for presenting a requested
`
`URL object to a network client according to an embodimentof the present invention.
`
`Detailed Description
`
`Embodiments of the present invention providetheability to
`
`dynamically transcode information transmitted between, for example, a network
`
`server computer and a networkclient computer. As used herein, the term
`
`“transcode”applies to virtually any manipulation of data including, but not limited to,
`
`adding, modifying or deleting data.
`
`10
`
`Referring now to Fig. 1, which illustrates an environment in which
`
`embodiments of the present invention may be advantageously applied, a network
`
`server 10 managesthe transfer of data from the Internet 18 to a networkclient 12.
`
`Network client 12 may be any computer having suitable data communications
`
`15
`
`capability.
`
`Network client 12 communicates requests for information to, and
`
`receives information from, network server 10 over a client/server communications
`
`link 14. Client/server communicationslink 14 may comprise, for example, a so-called
`
`20
`
`“slow network”using, for example, POTS (Plain Old Telephone System) dial-up
`
`technology or wireless connections. Alternatively, client/server communicationslink
`
`14 may comprise a so-called “fast network,” such as a LAN or WAN (Wide Area
`
`Network), whichis capable of operating at much higher speeds than are possible with
`
`slow networks. Combinations of these access methodsare also possible. For
`
`25
`
`example, network client 12 may use a POTSorwireless dial-up connection to a
`
`modem bank maintained by an ISP (Internet Service Provider), whichis in turn
`
`connected to network server 10 over a LAN. Network server 10 communicates with
`
`computers resident on Internet 18 through server/network communicationslink 16,
`
`which may comprise any suitable communications medium knownin theart.
`
`30
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`Accordingtoa first general embodiment of the present invention,
`illustrated schematically in Fig. 2, a transcoder 20 includes a parser 22 and a plurality
`of transcode service providers 24. Parser 22 is configured to act upon data received
`
`by transcoder 20, such as a request for a network object generated by a client device
`or a reply to such a request provided by a content server device.
`In this particular
`embodiment, parser 22 is responsible for selectively invoking one or more of
`
`transcode service providers 24 based upon a predeterminedselection criterion.
`
`Transcoder 20 may be implemented, for example, as a software
`module installed in a network proxy, in a client device, in a network server device, or
`in a content server device. In one particular implementation,illustrated in Fig. 3,
`
`transcoder20is installed in a remote transcoding server 34 arranged between
`
`networkclient 12 and Internet 18. Transcoding server 34 may comprise, or be a part
`of, a network server, a stand-alone computer in communication with a network
`server, or a distributed system of computers. Remote transcoding server 34 may be
`coupled, for example, to an ISP’s network, a corporate network, or anywhere on
`
`Internet 18, and may provide multiple users(i.e., clients) with a means to obtain
`
`content on Internet 18.
`
`In the particular embodimentillustrated in Fig. 3, transcoding server
`
`34 includes an HTTP (HyperText Transfer Protocol) remote proxy 36, capable of
`
`accessing Internet 18 over server/network communicationslink 16. HTTP remote
`
`proxy 36 differs from known network proxies, which generally are little more than a
`
`conduit for requests to, and replies from, external Internet resources, in thatit is
`
`10
`
`15
`
`20
`
`25
`
`capable not only of examining such requests andreplies, but also of acting upon
`
`commandsin the requests by, for example, determining whether or not to transcode
`
`content. Moreover, using transcoder 20, HTTP remote proxy 36 is capable of
`
`changing contentreceived from Internet 18 prior to returningit to a requesting
`
`networkclient 12, as is explained further below.
`
`30
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`Looking moreclosely at the embodimentin Fig. 3, transcoder 20 is
`
`coupled to HTTP remote proxy 36. Parser 22 managesthe transcoding of data to be
`
`transmitted from transcoding server 34 to network client 12. To this end, parser 22
`
`controls transcode service providers 24 to selectively transcode content based on a
`
`predeterminedselection criterion. For example, one or more transcode service
`
`providers 24 may provide the capability to compress and/orscale different types of
`
`data content, such as image, video, or HTML (HyperText Markup Language). Such
`
`uses are described further in co-pending U.S. patent applications Serial No.
`
`08/772, 164 entitled “System for Enhancing Data Access Over a Communications
`
`10
`
`Link,”filed on December 20, 1996, and Serial No. 08/799,654 entitled “Method and
`
`Apparatus for Scaling Image Data,”filed on February 11, 1997, both of which are
`
`assigned to Intel Corporation. For purposesofillustrating certain features of the
`
`present invention, a number of embodiments are described below in terms of content
`
`scaling/compression; however,as is explained, transcode service providers 24 may
`
`15
`
`provide a wide variety of transcoding functions.
`
`As shownin Fig. 3, transcoding server 34 mayalso includea server-
`
`side cache memory 30 managedby a server-side cacheinterface 28. Server-side
`
`cache memory 30 maybeusedto store both original and transcoded versions of
`
`20
`
`content for later transmission to networkclient 12 without the need to re-retrieve the
`
`content from Internet 18 or to re-transcode the content.
`
`Transcoding server 34 is coupled to networkclient 12 by client/server
`
`communicationslink 14. Network client 12 includes a browser 32, such as the
`
`25
`
`Netscape Navigator v.3.0 browser (although the inventionis not limited in this
`
`respect), which managesthe presentation of data to a user. In this embodiment,
`
`networkclient 12 is “non-enabled,” meaning no specialized transcoding softwareis
`
`preloaded on networkclient 12.
`
`30
`
`Parser 22 may comprisea relatively simple, uniform interface to
`
`-6-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`HTTP remote proxy 36, and may provide an API (Application Programming
`
`Interface) for transcoding data received by HTTP remote proxy 36. Parser 22
`
`manages one or moretranscodeservice providers 24 that are accessed through a
`
`common SPI (Service Provider Interface). In this particular embodiment, parser 22
`
`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), enables additional transcode service providers 24 to be dynamically
`
`added to the system to provide new features and/or better transcoding algorithms,
`
`10
`
`while at the same time not requiring changing or retesting other software components
`
`in the system. This feature is especially beneficial where transcoding server 34 also
`
`interacts with “enabled” network clients equipped with specialized transcoding
`
`software. It should be noted that someofthe features of parser 22 described below
`
`15
`
`maybe inapplicable to the non-enabled client embodiment of Fig. 3; however,
`transcoding server 34 may advantageously be configured flexibly enough to process
`requests from both non-enabled and enabled networkclients.
`
`Like parser 22, server-side cache interface 28 may be modeledafter a
`
`standard Get/Set interface. Server-side cache memory 30essentially “owns”all
`
`20
`
`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 parser 22 and its associated transcode service
`
`providers 24. Thus, for data integrity and transcoding efficiency purposes,all access
`
`to server-side cache memory 30 in this embodimentis through parser 22.
`
`Server-side cache interface 28 may include the followingcalls:
`
`CreateEntry(URL, &Entry,...);
`GetEntry(URL, &Entry);
`CreateStream(Entry, &StreamEntry,...);
`GetStream(Entry, &StreamEntry,...);
`CloseEntry(Entry);
`CloseStreamEntry(StreamEntry);
`
`25
`
`30
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`GetProperties(Entry, &Properties,...);
`SetProperties(Entry, &Properties, ...);
`Read(StreamEntry, &OutStream,...);
`Write(StreamEntry, &InStream,...).
`
`Unlike most cache memories, server-side cache interface 28 and server-side cache
`
`memory 30 enable maintenance of multiple representations of a given cached object,
`
`with descriptive information about each representation included in server-side cache
`
`memory 30. In addition, server-side cache interface 28 and server-side cache
`
`10
`
`memory 30 serve as a synchronization point for multi-threaded accesses to cached
`
`objects. It should be noted thattheillustrated embodiment doesnot require any
`
`particular configuration for server-side cache interface 28 and/or server-side cache
`
`memory 30. Indeed, functionality attributed to these componentsin the various
`
`embodiments described herein maybe readily implemented in other system
`
`15
`
`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 30. Both the CreateEntry() and GetEntry()
`
`calls set locks on associated cached objects until a CloseEntry() call is invoked. Once
`
`a lock is set, the cached object will not be replaced or invalidated by cacheinterface
`
`28, permitting one or more transcodeservice providers 24 to safely perform any
`
`required cache operations, such as objectretrieval and/or storage.
`
`20
`
`25
`
`After a cache entry is created or opened by a CreateEntry() or
`
`GetEntry()call, the CreateStream() or GetStream() calls may respectively create or
`
`open an extra stream entry for the cached object. Each extra stream entry is
`
`associated with a different transcoded version ofthe hypertext object, which may be
`
`30
`
`retrieved or appended to by one oftranscodeservice providers 24. Stream-based
`
`processing of cached objects makesit possible for transcoding server 34 to begin
`
`transmitting a transcoded versionof a hypertext object to a requesting networkclient
`
`-8-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`12 even while transcode service provider 24 is appending additional transcoded
`content to that same version. Advantagesofthis stream-based processing include
`reducinguser latency through incrementalpainting of objects and avoiding
`unnecessary idle time onclient/server communicationslink 14, thereby providing
`users with a more responsive “feel.”
`
`The GetProperties() and SetProperties() calls retrieve and store
`information about cachedobjects, including information maintained by transcode
`service provider 24 used to determine transcoding properties and transcodingstatus
`of a cached object. Transcodeservice provider 24 may use such information, for
`example, to determine current compression progress for scaled data access and
`
`staged refinements.
`
`The Read() call reads data from a specified cached object data stream.
`For example, transcode service provider 24 may invokethis call and tunnel stream
`data through HTTP remote proxy 36 directly to network client 12. The Write() call
`cachesdata from a new HTTPdata stream. Thiscall will append an incoming data
`stream received from, for example, a Webserver ortranscodeservice provider 24, to
`an opened cache stream which maybe concurrently read using the Read() call.
`In the present embodiment, parser 22 includes the following calls:
`
`GetObject(URL, InParams, &OutParams, &OutStream,...);
`GetScaledObject(URL,InParams, &OutParams, &OutStream,Stage,
`
`3 P
`
`utObject(URL,InParamStruct, &InStream, &OutParams,
`&OutStream,...).
`
`Asdetailed below, parser 22 uses these calls to manage the provision of requested
`content to network client 12.
`
`The GetObject() call is used to service non-enabledclient requests,
`and returns a non-transcoded(i.e., original) version ofa specified hypertext object.
`In this embodiment, transcoding server 34 assumes that each HTTP request has a
`uniquethread that may be blocked until the requestis satisfied. Accordingly, the
`
`-9.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`GetObject() call will block until it either returns the requested data stream or
`indicatesfailure with a cause (e.g., object does not exist). This ability to return a so-
`called standard hypertext object is advantageous for compatibility reasons, enabling
`embodimentsof the present invention to be used with existing browsers that do not
`include support for certain transcoding functionality (e.g., advanced data
`
`compression), and enabling users to selectively retrieve non-transcodedversions.
`
`The GetScaledObject() call is similar to GetObject(), and is also used
`
`to request an object from server-side cache memory 30; however, it adds support for
`requesting a particular version of that object, such as a high-quality rendition. Unlike
`
`10
`
`15
`
`20
`
`traditional caching proxies, transcode service providers 24 can use server-side cache
`
`memory 30 to store several different versions of an object to support clients with
`different communications and/or presentation capabilities. Thus, an additional
`“Stage” parameter may be usedto indicate which version ofthe cached objectis to
`be returned to network client 12. Where transcodeservice provider 24 is configured
`to scale network content, it may use this parameter to request a version of a cached
`object having, for example, a default scaled quality, a refinementto a better-quality
`version, or the original non-scaled version.
`
`In this embodiment, when networkclient 12 requests a hypertext
`
`object, HTTP remote proxy 36uses either the GetObject() or GetScaledObject() call
`
`(depending on if networkclient 12 is capable of receiving scaled/transcoded
`
`datatypes) to retrieve the hypertext object from parser 22. If the hypertext objectis
`
`not found, parser 22 uses the CreateEntry() call to create an entry (in effect, a
`
`25
`
`placeholder) in server-side cache memory 30 for the new object. The new entry is
`
`returned to HTTP remote proxy 36, which requests the hypertext object from
`
`Internet 18. As a data stream for the hypertext object is returned, HTTP remote
`
`proxy 36 calls parser 22 using the PutObject() call, passing into this call the new
`
`entry and the handleto the data stream to be placedinto the entry. Parser 22 selects
`
`30
`
`an appropriate transcodeservice provider 24 based, for example, on the content type
`
`-10-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`of the data stream. In this context, the term content type encompassesa datatype, an
`HTTP MIME (Multipurpose Internet Mail Extensions) type, a content format, and so
`on. The selected transcode service provider 24 usesa separate thread to read the
`
`incoming data stream, transcodeit, and placeit within the entry of server-side cache
`
`memory 30. The current thread immediately returns to HTTP remote proxy 36,
`which once again calls GetScaledObject() (or GetObject()). This case will always
`result in a cache hit. This thread then works simultaneously with the separate thread
`in the PutObject() to tunneldata (either original or transcoded) from transcoding
`
`server 34 to networkclient 12.
`
`10
`
`15
`
`Multiple-thread processing improvesthe efficiency of the present
`embodimentby not waiting for a hypertext object to be received in its entirety by
`HTTP remote proxy 36, or addedin its entirety to server-side cache memory 30,
`before beginning to send the object to network client 12. Another benefit of
`
`multiple-thread processingis that parser 22 may efficiently process requests for the
`same hypertext object from multiple network clients 12. The hypertext object need
`only beretrieved from Internet 18 once, and appropriate versions may be transmitted
`
`to such multiple network clients 12 concurrently. It should be noted, however, that
`
`embodiments ofthe present invention may be implemented without multiple-thread
`processing.
`
`20
`
`As noted above, parser 22 mayselectively invoke one of transcode
`
`service providers 24 based uponsatisfaction of a predetermined selection criterion.
`
`Suchselection criterion may comprise, for example, information contained in a
`headerportion of a data packet received by transcoding server 34, such as a MIME
`
`25
`
`type, a URL (Uniform Resource Locator), a last modified time indicator and so on.
`
`Alternatively, the predetermined selection criterion may comprise information
`contained in a data portion of such a data packet, suchasparticular content, key
`words, structures (for example, heading levels), and so on. Still further, the
`
`30
`
`predetermined selection criterion may comprise a condition of the device on which
`
`-ll-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`transcoding server 34is installed (for example, a current processing load), a
`
`condition of a device to which transcoding server 34 is coupled, or a condition of a
`
`communicationslink. Transcoding server 34 may provide the ability to dynamically
`update such predeterminedselectioncriteria.
`
`10
`
`15
`
`20
`
`25
`
`Thefollowing discussion providesstill more examples of the types of
`
`information which maybeusedto dictate which of transcodeservice providers 24 are
`invoked. It should be noted, however, that these examples are provided by way of
`illustration only, and are not intended to limit in any way the scope of the invention
`
`claimed herein. The predetermined selection criterion may comprise: (1) network
`client 12, such as a display dimension, resolution, numberofcolors, processortype,
`memory/disk configuration, modem or networkinterface type, installed add-in boards
`
`(for example, hardware compression/decompression), software configuration (for
`example, availability of pre-installed software decompression modules), physical
`location/proximity (for example, as determined by a telephone area code), and user
`identity; (2) characteristics of transcoding server 34 or some other network server,
`
`including system load andidentification information (for example, the owner ofthe
`
`server); (3) content characteristics, such as its data type, type of
`
`encoding/compression,size, and dimension; (4) network characteristics, including
`best-case, worst-case and average latency, bandwidth and/orerrorrates (for example,
`for wireless communications) between network client 12 and a proxy, and/or between:
`
`a proxy and a server (this may be predetermined for guaranteed bandwidthlinkslike
`
`ATM(Asynchronous Transfer Mode), or dynamically measured/predicted for so-
`
`called “best effort” links like many IP (Internet Protocol) links); (5) proxy
`characteristics, including system load,available storage, physical location/proximity,
`and identity (owner); (6) user preferences, including preferred content quality/speed
`tradeoff, language, content rating, exclusionlist, inclusion list, data type-specific
`preferences (for example, “never download” images), include/exclude advertising,
`amountof advertising desired, offensive language removal, whetherthe user’s
`
`30
`
`defined or learned preferences may be disclosed (and to whom), custom rulesor
`
`-12-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`programsforfiltering/transcoding/processing data, and shared preferences with either
`another user or a groupof users(any ofthe foregoing user preferences may be
`explicitly defined or system predicated, such as based on usagestatistics compiled
`overtime); (7) group preferences, including results from collaborative rating systems,
`whether manual (for example, a prior user manually assigned a rating to a Web page
`after viewingit) or automatic (for example, given a large number of users who
`accessed a link on a given page, the probability of any given user subsequently
`following thatlink); (8) content provider preferences, including the degree of
`alteration desired for its content, the prioritization for download and display of
`different content types, cacherestriction or prioritization parameters such as update
`frequency or replacementpreferences, the types of users to target, rules or programs
`to run for customizing content (for example, newsor advertising, custom language
`translation software) basedonuserorclient characteristics, desire for receiving
`certain types of user or group data collected (for example, demographicsor access
`patterns), and type of payment/reward offered in exchange for such information; and
`(9) other preferences, including software vendorrules or programs for dynamically
`checking content created ordistributed using unauthorized software and companies’
`desire to enforce correct usageof certain types of content (for example, trademarks
`and logos).
`
`Applying the above-listed selection criteria, or combinationsthereof,
`
`embodimentsofthe present invention maybe used to providea virtually limitless
`range of dynamic transcoding services. For example, client and/or proxy physical
`
`proximity, in combination with demographic data, may be used for extremely
`targeted advertising. Such advertising may be addedto any content passing through
`a proxy, for example, or some other mechanism. This canin turn be tailored even
`
`further based upontheuser’s willingness to tolerate advertising or share demographic
`information, as well as the advertiser’s ability/willingness to subsidize or otherwise
`
`reward the user for participation.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`-13-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`Embodimentsofthe present invention may be advantageously used to
`reduce the amountofdata that is transmitted to network client 12, thereby promoting
`faster downloading and rendering of content. Suitable transcoding techniquesinclude
`lossy compression andtranscoding to a more efficient (and perhaps not widely
`supported) formatspecifically for the transmission. Similarly, HTTP remote proxy
`36 may be configuredto “predigest” Websites or groupsofsites to produce
`extremely condensed overviewsoflarge amounts of content (for example, a tree
`structure, pages with onlyfirst-level or first- and second-level headings, thumbnails
`of pages, oronly parts of a pageorsite that have changedsincethe user’s lastvisit).
`Such applications may be especially advantageous for poorly-connected or
`computationally limited devices such as PDAs(PersonalDigital Assistant), since this
`predigestion can be performed ona well-connected proxy server with an abundance
`of computational power, and the concise result can be easily downloaded and
`
`rendered on the morelimited device.
`
`Embodimentsof the present invention may alternatively be used for
`dynamic translation of data, such as Web pages,to a user’s native language
`(determinedby user preference or automatically by the physical location of network
`
`10
`
`15
`
`client 12 or transcoding server 34). Suchacapability greatly simplifies the task of
`making contenttruly global, as well as reduces storage and maintenance requiredat
`the content provider (that is, only one copy ofthe content need be maintained,rather
`than different copies for each ofa plurality of different languages).
`
`20
`
`25
`
`Embodimentsof the present invention may be used to block certain
`types of content or to automatically censor offensive language(similar to a “beep”
`usedfor television broadcasts). Only the particular offensive parts of the content (for
`example, obscene words) may be removed, or entire Web sites may be blocked.
`Similarly, transcoding server 34 may be configured to scan content for certain words
`
`or phrases to ensure that trademarksor logos are used correctly (for example, as a
`source identifier rather than a generic product designation). This feature may be
`offered as a service to companies or organizations, who would supplyalist of words
`
`30
`
`-14-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`or phrases to flag. A similar capability could be used to automatically insert links into
`the content upon detection of certain words or phrases. For example, Intel
`
`Corporation might want to automatically add a link to its corporate Website
`
`wheneverthe name“Intel” is used in a Web page. Using an embodimentof the
`
`presentinvention, suchlinks can be dynamically added to the content beforeit is
`
`displayed to a user. In a similar vein, an embodimentofthe present invention may be
`used to scan for content that wascreated or distributed using unlicensed software.
`
`This feature may be implemented using special keys (binary bit patterns) embeddedin
`the content or headersputin by the content creation or distribution software. The
`
`10
`
`scanninglogic andlogic for taking a predetermined responsive action, such as
`
`denying service or posting a warning, may optionally be supplied by the vendorofthe
`
`software in question or configured into transcoding server 34.
`
`Embodimentsof the present invention may also be used to scan
`
`15
`
`content for computervirusesprior to sending such content to networkclient 12. For
`
`example, an existing virus scanning routine maybe installed on transcoding server 34,
`possibly as a plug-in module. Transcoding server 34 may then be configured to
`invoke the virus scanning routine to ensure any content transmitted to network client
`
`12 is free of viruses. A significant advantage provided by such an embodimentis that
`
`20
`
`virus scanning software need only be maintained on transcoding server 34, rather
`
`than onaplurality of network clients 12. In this way, the benefit of upgradesto the
`
`virus checking software may beefficiently and timely provided to large numbers of
`
`users, thus avoiding the problem of any particular user relying on outdated virus
`
`scanning software.
`
`25
`
`Embodiments of the present invention may also be used to produce
`
`custom content on demandin accordance with user-specific preferences and/or
`
`associations with collaborative rating systems. In a variation on such an embodiment,
`
`transcoding server 34 can collect preferences and append them aspart ofa client
`
`30
`
`request transmitted to a content provider so that the dynamic content generation can
`
`-15-
`
`

`

`WO 98/43177
`
`PCT/US98/05304
`
`be doneat the content server. Likewise, a proxy provider (for example, an Internet
`Service Provider (ISP)), can collect and make

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