`US 6,745,224 BI
`(10) Patent No.:
`Jun.1, 2004
`(45) Date of Patent:
`D’Souza etal.
`
`US006745224B1
`
`(54)
`
`OBJECT FRAMEWORKAND SERVICES
`FOR PERIODICALLY RECURRING
`OPERATIONS
`
`Inventors:
`
`(75)
`
`David J. D’Souza, Kirkland, WA (US);
`Sabina Nawaz, Kirkland, WA (US);
`Erik Jon Snapper, Redmond, WA
`(US); Darren Mitchell, Seattle, WA
`(US); Raymond Edward Endres,
`Kirkland, WA (US); Teresa Martineau,
`Kirkland, WA (US); Bharat Shyam,
`Redmond, WA (US); Ian Michael
`Ellison-Taylor, Seattle, WA (US);
`Mohsin Ahmed,Scattlc, WA (US)
`
`5,586,304 A
`12/1996 Stupek, Jr. et ale... 717/170
`5,630,139 A *
`5/1997 Ozaki oe.
`wee 716/167
`
`5,701,408 A * 12/1997 Cornell et al. we. 714/38
`5,715,443 A *
`2/1998 Yanagihara et al.
`........... 707/3
`4/1998 Judson .............
`«715/500
`5,737,619 A *
`
`.. 709/329
`5,742,825 A *
`4/1998 Mathuret al
`5/1998 Mauldin .......
`wee 707/10
`5,748,954 A *
`5,751,966 A *
`5/1998 Dauereretal.
`«709/224
`5,774,667 A *
`6/1998 Garvey etal.
`....... . 709/222
`5,777,558 A *
`7/1998 Pennypacker ctal. ...... 340/635
`5,784,555 A
`7/1998 Stone
`5,802,304 A
`9/1998 Stone
`FOREIGN PATENT DOCUMENTS
`
`
`
`EP
`wo
`
`0749081 Al
`WO 96/30864
`
`5/1996
`10/1996
`
`(73)
`
`Assignee:
`
`Microsoft Corporation, Redmond, WA
`(US)
`
`* cited by examiner
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`US.C. 154(b) by 0 days.
`
`Primary Examiner—Nabil El-Hady
`(74) Attorney, Agent, or Firm—Klarquist Sparkman, LLP
`
`(57)
`
`ABSTRACT
`
`Appl. No.
`Filed:
`
`: 08/761,657
`
`Dec. 6, 1996
`
`Int. Cl.’ .
`US. Cl.
`.
`
`ceuessssnasessstvetestssessessuetsestsuveten GO6F 15/16
`ceceesssueteseseveee 709/202; 709/217; 709/218;
`709/220; 709/224; 709/227; 707/3; 707/10
`Field of Search 0.0.0.0... 395/680, 761,
`395/712, 610, 603, 635, 183.14, 200.52,
`200.54; 709/300, 303, 202, 217, 218, 220,
`224, 227; 707/3, 10
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,575,579 A
`5,305,195 A
`5,347,632 A
`5,491,820 A
`5,572,643 A
`
`3/1986 Simonetal.
`4/1994 Murphy
`9/1994 Filepp et al.
`2/1996 Beloveetal.
`11/1996 Judson
`
`A computer system includes an object oriented framework
`that provides a set of application integration interfaces that
`support programmatic updating operations for maintaining
`locally stored copies of resources such as hypertext docu-
`ment pages from remote servers on a computer network. The
`updating operations continually check for updates to the data
`at the remote server and download updated versions of the
`resources to maintain concurrencyof the locallystored copy.
`The updating operations are performed while a connection
`to the remote network is left idle,
`to maximize usage of
`on-line connection time. The updating operations also can be
`programmatically scheduled by a client program of the
`updating operations. The updating opcrations include updat-
`ing the contents of a folder or directory in a localfile system
`as specified in a file at a remote server on the network, and
`providing automatically updating and populating groups of
`sites or document pages organized by category.
`
`35 Claims, 10 Drawing Sheets
`
`320
`
`328
`
`CLIENT
`
`WEBCHECK
`
`CALLBACK
`
`
`IWEBCHECK-
`
`OFFLINEREADING
`
`SINK
` IPERSISTSTREAM
`
`OR IPERSIST
`
`
`
` WEBCHECK CORE,
`
`SCHEDULER AND
`
`DOWNLOADER
`IWEBCHECKSCHEDULER
`
`
`IWEBCHECKMODULEEVENTS
`
`
`
`
`WEBCHECK DOWNLOAD
`
`
`MODULE (WEBCHECK
`
`OFFLINEREADING)
`IPERSISTSTREAM
`
`
`
` IWEBCHECKMODULECONTROL
`
`
`
` IWEBCHECKOFFLINEREADING
`
`Zynga Ex. 1011, p. 1
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 1
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun. 1, 2004
`
`Sheet 1 of 10
`
`US 6,745,224 Bl
`
`
` ADIAAC
`
`
`
`WALSASAYOWAW
`
`LAdNI
`
`‘ADIARCONILNIOd
`
`
`
`
`
`
`
`
`ADIAAGLAdLNO]ze
`
`
`
`
`
`(OLA‘YSALNIYdAYVGNOO3FS
`
`Zynga Ex. 1011, p. 2
`Zyngav. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 2
` Zynga v. IGT
` IPR2022-00199
`
`
`
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 2 of 10
`
`US 6,745,224 B1
`
`
`
`
`BROWSER
`
`CACHE
`
` INTERNET
`
`UPDATE SERVICE
`(WEB CHECK)
`
`INTERNET
`
`Zynga Ex. 1011, p. 3
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 3
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 3 of 10
`
`US 6,745,224 B1
`
`FIG. 3
`
`80
`
`WEB CHECK PROPERTIES
`
`Monitoring Times:
`
`_-# Checksites for changes in the background while ['m
`connected to the Internet
`
`82
`
`© any site changes
`
`
`
`g4 —--° Checksites on a schedule at: WEEKLY|w
`
`90 —~ Taskbar Notify for:
`
`@ new bulletins
`
`Zynga Ex. 1011, p. 4
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 4
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 4 of 10
`
`US 6,745,224 B1
`
`FIG. 4
`
`FOLDER
`DESCRIPTION
`FILE
`
`te\
`
`
`
`
`
`RESOURCES
`
`REGISTRY
`
`53
`
`68
`
`UPDATE SERVICE
`(WEB CHECK)
`
`SMART
`FOLDER
`
`Zynga Ex. 1011, p. 5
`Zyngav. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 5
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 5 of 10
`
`US 6,745,224 B1
`
`FIG. 5
`
`110
`
`SMART FOLDER
`UPDATE SERVICE
`
`
`
`
`RETRIEVE FDF
`
`DOWNLOAD ANY FILES
`SPECIFIED BY FDF TO
`SMART FOLDER
`
`CREATE INTERNET
`SHORTCUTS IN SMART
`FOLDER FOR ANY URLS
`SPECIFIED BY FDF
`
`112
`
`113
`
`114
`
`115
`
`116
`
`
`
`CACHE FILES SPECIFIED
`BY FDF AS "CACHE ONLY"
`
`
`
`
`
`
`DELETE ANY FILES AND
`INTERNET SHORTCUTS
`FROM SMART FOLDER NOT
`SPECIFIED IN FDF
`
`END SERVICE
`
`Zynga Ex. 1011, p. 6
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 6
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 6 of 10
`
`US 6,745,224 B1
`
`FIG. 6
`
`re
`\
`
`122
`
`RESOURCES
`
`52
`
`REGISTRY
`
`53
`
`128
`
`(WEB CHECK) INTERNET
`
`CACHE
`
`66
`
`UPDATE SERVICE
`
`SHORTCUTS
`FOLDER
`
`anna
`
`INTERNET
`SHORTCUT
`
`INTERNET
`SHORTCUT
`
`124
`
`125
`
`Zynga Ex. 1011, p. 7
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 7
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 7 of 10
`
`US 6,745,224 B1
`
`FIG 7
`,
`
`INTERNET
`SHORTCUTS UPDATE
`SERVICE
`
`160
`
`
`
`FOR EACH INTERNET
`SHORTCUT IN SHORTCUTS
`FOLDER
`
`
`
`161
`
`163
`
` YES
`
`UPDATE
`DOWNLOAD DOCUMENT
`HECKING SET2
`AT SHORTCUT'S URL
`
`
`
`
`UPDATE "ABOUT WEB
`SITE" PROPERTIES OF
`
`SHORTCUT
`
`
`UPDATED > LAST
`
`
`467
`
`164
`
`
`SET? a STORE INCACHE
`
` 170
`
`
`
`STORE DOCUMENT IN
`CACHE
`
`DEPENDENCIES
`
`DOWNLOAD DOCUMENT'S
`DEPENDENCIES AND
`
`# LEVELS
`DEEP > 0?
`
`YES
`
`DOWNLOAD AND CACHE
`HYPERLINKED
`DOCUMENTSUP TO #
`LEVELS DEEP
`
`
`PURGE SHORTCUT'S
`OUT-OF-DATE FILES
`
`
`
`
`SHORTCUT
`
`172
`
`173
`
`END SERVICE
`
`Zynga Ex. 1011, p. 8
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 8
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 8 of 10
`
`US 6,745,224 B1
`
`FIG. 8
`
`SERVER APPLICATION PROGRAM
`
`
`
`
`INSTANCE
`VIRTUAL
`
`
`DATA
`FUNCTION
` STRUCTURE
`METHOD 0
`
`
`290
`
`292
`
`METHOD 1
`
`METHOD2
`
`
`
`
`
`
`300
`
`302
`
`CLASS FACTORY
`
`Zynga Ex. 1011, p. 9
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 9
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 9 of 10
`
`US 6,745,224 B1
`
`\
`
`WEBCHECK CORE,
`SCHEDULER AND
`
`DOWNLOADER
`CLIENT
`IWEBCHECKSCHEDULER
`
`FIG. 9
`
`
`
`
`WEBCHECK
`
` CALLBACK
`WEBCHECK DOWNLOAD
`MODULE (WEBCHECK
`
`
` IWEBCHECK-
`OFFLINEREADING)
`
`
`
`OFFLINEREADING
`
`
`IPERSISTSTREAM
`SINK
`
`
`
`
`
`IPERSISTSTREAM
`
`OR IPERSIST
`IWEBCHECKMODULECONTROL
`
`
`
`IWEBCHECKOFFLINEREADING
`
`IWEBCHECKMODULEEVENTS
`
`
`
`Zynga Ex. 1011, p. 10
`Zyngav. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 10
` Zynga v. IGT
` IPR2022-00199
`
`
`
`U.S. Patent
`
`Jun.1, 2004
`
`Sheet 10 of 10
`
`US 6,745,224 B1
`
`320
`
`322
`
`
`WEBCHECK CORE,
`
`SCHEDULER AND
`330
`DOWNLOADER
`324
`
`IWEBCHECKSCHEDULER
`
`
`
`IWEBCHECKMODULE-
`EVENTS
`WEBCHECK DOWNLOAD
`
`OFFLINEREADING)
`MODULE (WEBCHECK
`
` IPERSISTSTREAM
`
` IWEBCHECKMODULECONTROL
`
`
`IWEBCHECKOFFLINEREADING
`
` WEBCHECK
`CALLBACK
`
`350
`
` IWEBCHECK-
`
`
`
`
`iPERSISTSTREAM
`OR IPERSIST
`
`
`OFFLINEREADING
`SINK
`
`Zynga Ex. 1011, p. 11
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 11
` Zynga v. IGT
` IPR2022-00199
`
`
`
`US 6,745,224 B1
`
`1
`OBJECT FRAMEWORK AND SERVICES
`FOR PERIODICALLY RECURRING
`OPERATIONS
`
`FIELD OF THE INVENTION
`
`This invention relates generally to an object-oriented
`software framework that provides services to support peri-
`odically recurring operations, including change monitoring
`and updating of locally stored copies of remote documents
`so as to be available for off line use.
`
`BACKGROUND AND SUMMARY OF THE
`INVENTION
`
`In many software applications,it is necessary or desirable
`to perform operations on a periodically recurring basis.
`Further, it is desirable to perform such operations without
`requiring continuing user action to activate the operations,
`or in other words while unattended by the user. An example
`is a hard disk utility application such as a disk checker,
`defragmenter or virus scanner. These utility applications are
`desirably executed automatically on a periodically recurring
`basis (e.g., daily, weekly or just once per month) to prevent
`degradation of disk performance over time as a result of
`normal usage. Further, the user desirably is not forced to
`track when these operations are done, or to manuallyinitiate
`the operations.
`Typically, applications that perform operations on a peri-
`odically recurring basis have each implemented their own
`mechanismsto schedule the recurring operations, initiate the
`operations on the scheduled basis, and monitorthe results. In
`an electronic mail application for example, mail software at
`a client computer on a network may include code to peri-
`odically check for new messages at a mail server on the
`network.If there are new messages,the client mail software
`transfers the mail messages to the client computer from the
`network’s mail server and may also display a notice to the
`user that a new message hasarrived.
`This typical practice of each application separately imple-
`menting mechanisms to support periodically recurring
`operations has several drawbacks. In order for the applica-
`tion to perform the periodically recurring operations while
`unattendedby a user, the application must remain loaded and
`running on the computer. Because the application often does
`no useful work while waiting to perform its next periodically
`recurring, operation,
`leaving the application running is
`wasteful of the computer’s memory and processing capaci-
`ties which could otherwise be used by other applications. If
`too many such applicationsare left running, the user may be
`unable to run applications for the user’s immediate work
`activities, such as a spreadsheet, word processor or browser.
`Another drawback is that this typical approach makes
`programming of periodically recurring, operations more dif-
`ficult. The mechanism that supports scheduling, initiating
`and monitoring of the periodically recurring operation is
`separately implemented in each application, often from
`scratch.
`
`A software utility called the “system agent” in the
`Microsoft® Windows® 95 operating system operates as a
`general mechanism to trigger applications (e.g., a disk
`checker or defragmenterutility) according to a preset sched-
`ule of times. The system agent provides user interface
`dialogs in which the user selects a schedule of times(e.g.,
`daily at 2 am, Tuesdays and Fridays at 4:30 pm, 9 pm on the
`third day of every month, etc.) at which to run a desired
`program (the “scheduled program”). Whenits user interface
`
`30
`
`40
`
`50
`
`60
`
`2
`is closed, the system agent runs as a background task. When
`the scheduled program’s next scheduled time arrives, the
`system agent loads and runs the scheduled program (using
`the CreateProcess API of Microsoft’s Win32 API set). The
`scheduled program thus can perform a periodically recurring
`operation when it is run by the system agent at each ofits
`scheduled times. Whenthe operation is complete, the sched-
`uled program must self terminate. Programs that implement
`a recurring operation thus are not left running between the
`scheduled times, which frees the computer’s memory and
`processing, capacity for use by other applications.
`‘The Windows® 95 system agentutility has several draw-
`backs which limit its use by applications to provide peri-
`odically recurring operations. One drawbackisthat there are
`limited ways in which an application program can interact
`with the system agent utility. In general, each scheduled
`program is scheduled with the system agent by user input to
`the user interface of the system agent. Alternatively, the
`system agent stores information on the times of scheduled
`programs in a system registry. (The system registry is a
`database file which stores configuration information for the
`operating system.) An application program therefore can
`schedule a program that implements a desired recurring
`operation with the system agent by addingentries containing
`appropriate scheduling information into the system registry.
`Further, once the system agent staris the program at the
`scheduled time (using the CreateProcess API), the system
`agent does not further interact with the program. Also, if the
`scheduled program is scheduled by an application adding
`entries to the system registry, the system agent provides no
`way for that application to further interact with the sched-
`uled program at the scheduled times. Thus, an application
`program is not able to programmatically schedule an opera-
`tion with the system agentutility, programmatically control
`the performance of the operation at its scheduled times, or
`receive notifications to monitor the operation.
`The present invention includes an object-oriented frame-
`work that provides a set of object integration interfaces
`which support programmatic scheduling, configuring, and
`notifications of periodically recurring operations. In other
`words, the frameworkacts as a system service or application
`programming interface to access services for an application
`program to schedule, configure, and subscribe to notifica-
`tions from an agent program that implements a desired
`periodically recurring operation, and especially operations
`for change monitoring and updating of data.
`The object-oriented framework in an illustrated embodi-
`ment of the invention includes a scheduler object
`that
`provides a set of integration interfaces with which a client
`application can programmatically schedule on a periodic
`basis initiating operations by an agent object in which the
`operations are implemented. A core object in the framework
`provides additional interfaces with which anyclient appli-
`cation can subscribe to receive notifications trom the agent
`relating to the operation. The framework further defines
`interfaces for agent objects and for a call back object of the
`client application. The interfaces on the agent objects allow
`the client application to programmatically set options con-
`trolling the operation that the agent performs. The interfaces
`on the client application’s call back object allow the client
`application to receive notifications from the agent as the
`operation is performed. The interfaces on the agent objects
`and client application call back objects also allow the
`framework to persisently store a state of the agent objects
`and client application call back objects so that the client
`application and agent objects can be terminated and
`unloaded from memory until the time for the operation
`arrives.
`
`Zynga Ex. 1011, p. 12
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 12
` Zynga v. IGT
` IPR2022-00199
`
`
`
`US 6,745,224 B1
`
`3
`The object oriented framework of the invention over-
`comes many of the drawbacks of prior art mechanisms for
`performing periodically recurring operations. The frame-
`workallowsa client application to programmatically control
`scheduling of the operation, and set options controlling the
`operation itself. The framework also allows client
`applications,
`including applications other than the client
`application which schedules a periodically recurring
`operation, to receive notifications and alerts pertaining to the
`operation. Additionally, the framework allows agent soft-
`ware in which the operation is implemented and the client
`application which schedules the operation to be terminated
`between times that the operation is performed,so as to free
`memory and processing capacity for use by other active
`applications.
`A particular use of the framework is in a network
`environment, such as the Internet, to provide monitoring of
`data residing at a remote server for changes (“update
`checking”), and to download changed data to a user’s
`computer so as to maintain an updated local copy of the data
`at the user’s computer. The illustrated framework provides
`agent objects which implementvarious forms of such updat-
`ing operations. These updating operations include an opera-
`tion (herein called “smart folder updating”) to update the
`contents of a local folder (herein called a “smart folder”) as
`specified in a remote file. The updating operations also
`include an operation (herein called automatically populating
`and updating favorites categories) that automatically fill and
`periodically update lists of remote documents for a user to
`browse organized in categories.
`The scheduler in the illustrated framework supports
`scheduling of an agent’s updating operations on different
`periodic bases, which include at scheduled times and during
`networkidle times. The scheduled times are times scheduled
`
`by the user at which the updating operation is automatically
`triggered by the scheduler to connect to the Internet or other
`network unattended, and perform the updating operation.
`The scheduler also can perform the update operations on a
`periodic basis by detecting times when the user is connected
`to the Internet for other activities (suchas on-line browsing)
`and the connection is left idle. When such idle status is
`detected, the agent for the update operation automatically
`performs the update checking and downloading over the
`connection unattended as background processing,
`to the
`user’s other activities.
`
`20
`
`30
`
`40
`
`Additional features and advantages of the invention will
`be made apparent from the following detailed description of
`an illustrated embodiment which proceeds with reference to
`the accompanying drawings.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`50
`
`FIG. 1 is a block diagram of a computer system that may
`be used to implement a method and apparatus embodying
`the invention for an object-oriented framework supporting
`programmatic periodically recurring operations.
`FIG.2 is a diagramillustrating a browsing system includ-
`ing the computer of FIG. 1 which uses an object-oriented
`framework illustrated in FIG. 9 to provide periodically
`recurring change monitoring and updating operations
`according to an illustrated embodiment of the invention.
`FIG.3 is a view of a user interface dialog for setting user
`options of the framework.
`FIG. 4 is a data flow block diagramillustrating a smart
`folder updating operation provided in the browsing system
`of FIG. 2.
`
`FIG. 5 is a flow chart of the smart folder updating
`operation of FIG. 4.
`
`60
`
`4
`FIG. 6 is a data flow block diagram illustrating a shortcuts
`updating operation provided in the browsing system of FIG.
`
`FIG. 7 is a flow chart of the shortcuts folder updating
`operation of FIG. 6.
`FIG. 8 is a block diagram of typical data structures for an
`object in the computer system of FIG. 1.
`FIG. 9 is a block diagram showing scheduling of an
`update operation in an object-oriented framework which
`provides services for periodically recurring operationsin the
`browsing system of FIG. 2.
`FIG. 10 is a block diagram showing execution of an
`update operation in the object framework of FIG. 9.
`DETAILED DESCRIPTION OF THE
`ILLUSTRATED EMBODIMENTS
`
`1. Computer Overview
`Referring to FIG. 1, an operating environment for an
`illustrated embodiment of the present invention is a com-
`puter system 20 with a computer 22 that comprises at least
`one high speed processing unit (CPU) 24, in conjunction
`with a memory system 26, an input device 28, and an output
`device 30. These clements are interconnected byat least onc
`bus structure 32.
`
`The illustrated CPU 24 is of familiar design and includes
`an ALU 34 for performing computations, a collection of
`registers 36 for temporary storage of data and instructions,
`and a control unit 38 for controlling operation of the system
`20. The CPU 24 maybe a processor having anyofa variety
`of architectures including Alpha from Digital, MIPS from
`MIPS Technology, NEC, IDT, Siemens, and others, x86
`from Intcl and others, including Cyrix, AMD,and Nexgen,
`and the PowerPe from IBM and Motorola.
`
`The memory system 26 generally includes high-speed
`main memory40 in the form of a medium such as random
`access memory (RAM) and read only memory (ROM)
`semiconductor devices, and secondary storage 42 in the
`form of long term storage mediums such as floppy disks,
`hard disks, tape, CD-ROM, flash memory, etc. and other
`devices that store data using electrical, magnetic, optical or
`other recording media. The main memory 40 also can
`include video display memory for displaying images
`through a display device. Those skilled in the art will
`recognize that the memory 26 can comprise a variety of
`aliernative components having a variely of storage capaci-
`ties.
`
`The input and output devices 28, 30 also are familiar. The
`input device 28 can comprise a keyboard, a mouse, a
`physical transducer (e.g., a microphone), etc. The output
`device 30 can comprise a display, a printer, a transducer
`(c.g., a speaker), cte. Some devices, such as a network
`interface or a modem, can be used as input and/or output
`devices.
`
`As is familiar to those skilled in the art, the computer
`system 20 further includes an operating system andat least
`one application program.‘The operating system is the set of
`software which controls the computer system’s operation
`and the allocation of resources. The application program is
`the set of software that performs a task desired by the user,
`using computer resources made available through the oper-
`ating system. Both are resident in the illustrated memory
`system 26.
`In accordance with the practices of persons skilled in the
`art of computer programming,
`the present
`invention is
`described below with reference to acts and symbolic repre-
`
`Zynga Ex. 1011, p. 13
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 13
` Zynga v. IGT
` IPR2022-00199
`
`
`
`US 6,745,224 B1
`
`5
`sentations of operations that are performed by computer
`system 20, unless indicated otherwise. Such acts and opera-
`tions are sometimesreferred to as being computer-executed.
`It will be appreciated that the acts and symbolically repre-
`sented operations include the manipulation by the CPU 24 of
`electrical signals representing data bits which causes a
`resulting transformation or reduction of the electrical signal
`representation, and the maintenance of data bits at memory
`locations in memory system 26 to thereby reconfigure or
`otherwise alter the computer system’s operation, as well as
`other processing of signals. The memory locations where
`data bits are maintained are physical locations that have
`particular electrical, magnetic, or optical properties corre-
`sponding to the data bits.
`2. Browser and Updating Operations Overview
`In an off-line browsing environment 50 of an illustrated
`embodimentof the invention shownin FIG. 2, the computer
`20 (also shown in FIG. 1) runs software, referred to herein
`as a “browser” 51, which provides on-line and off-line
`browsing of clectronic documents and other data from a
`remote computer network 52. The browser 51 can be inte-
`grated with the operating system software, or can be a
`separate application software. The illustrated browser 51 is
`the Microsoft® Internet Explorer browser. The computer 20
`also runs services software, herein called “Web Check” 53,
`which provides an object-oriented framework (shown in
`FIG. 10 and described more fully below) with programmatic
`access for client applications (such as the Internet browser
`51) to services supporting periodically recurring operations.
`The operations in the illustrated browsing environment are
`updating operations that provide change monitoring and
`updating of data by downloading from the network 52.
`The illustrated remote computer network 52 is the Inter-
`net. The Internet is a well known, global network of coop-
`eratively interconnected computer networks. The World-
`Wide Webportion of the Internet is a collection of server
`computers (referred to as “World-Wide Web sites”) on the
`Internet which store electronic documents in a hypertext
`mark-up language (“HTML”) format that can be publicly
`accessed by computer users having a connection to the
`Internet. There are many such World-Wide Websites on the
`Internet.
`
`In the illustrated browsing environment 50, the computer
`20 connects to the computer network 52 over a telephone
`line 54 with a modem 56. Other physical connections to the
`computer network alternatively can be used, such as an
`ISDN, T1 or like high speed telephone line and modem, a
`television cable and modem,a satellite link, an optical fiber
`link, an Ethernet orother local arca nctwork technology wire
`and adapter card, radio or optical transmission devices,etc.
`The invention canalternatively be embodied in a browsing
`environment for other public or private computer networks,
`such as a computer network of a commercial on-line service,
`a local area network (LAN), an intranet, or like computer
`network.
`
`Documents for browsing with the illustrated browser can
`reside as files of a file system stored in the computer’s
`secondary storage 42 (FIG. 1), or reside as resources at a
`remote computer 58 (also referred to as a “site”) connected
`to the computer network 52, such as a World-Wide Website
`on the Internet. The illustrated document 60 residing at the
`site 58 conforms with HTMLstandards, and may include
`extensions and enhancements of HTMT. standards. HTMT.
`
`documents are ASCII coded (a well known standard for
`coding alpha-numeric characters in 7- or 8-bits) character
`files generally consisting of text and H'ML “tags” which
`
`20
`
`30
`
`40
`
`50
`
`60
`
`6
`specify formatting of the document, links (referred to as
`“hyper-links”) to related documents, and other files that
`contain information (e.g., sound, images, video, etc.) which
`is to be combined into the document, among other tag
`features. Typical HTML documents found on the world wide
`web include both text and tags specifying files for several
`images that are to be displayed with the text.
`In conformance with HTML,the illustrated document 60
`can incorporate other additional
`information content 62,
`such as images, audio, video, executable programs, etc.
`(hereafter called “dependencies” 62), which also reside at
`the remote computer 58. The document 60 and dependencics
`62 preferably are stored asfiles in a file system of the remote
`computer 58. The document 60 incorporates the dependen-
`cies 62 using HTMLtagsthat specify the locationof files or
`other Internet resource containing the dependencies on the
`Internet 52.
`
`When browsing the HTML document 60 on-line (<.e.,
`while connected to the network), the illustrated browser 51
`retrieves the document from its site 58 on the Internet using
`the well-known windows sockets network programming
`interface (also known as “winsock”). In the Microsoft®
`Windows 95 operating system uscd on the illustrated com-
`puter 20, the Windowssockets network programminginter-
`face is implemented in a software module named
`wsock32.dll. Windows sockets, in turo, relies on a set of
`Internet communications protocols which are implemented
`in one or more other software modules, such as in a network
`protocol driver and a modem driver. These Internet protocols
`can include application protocols, such as File Transfer
`Protocol (FTP), Simple Mail Transfer Protocol (SMTP),
`Hyper ‘lext ‘Transter Protocol (HTP), Gopher, etc.; trans-
`port protocols, such as the Transmission Control Protocol
`(TCP) and the Internet Protocol (IP) protocol suite; and
`connection protocols, such as the Serial Line Protocol
`(SLIP) or the Point-to-Point Protocol (PPP). Alternative
`embodiments of the invention for browsing documents on
`other networks may utilize various other network protocols,
`such as the NetBIOS Extended User Interface(NetBEU]) by
`IBM Corporation, Internet Packet Exchange/Sequenced
`Packet Exchange (IPX/SPX) by Novell corporation,
`DECnet, by Digital Equipment Corporation, NetBIOS by
`Microsoft Corporation, and OSI/TP-4, amongothers. After
`retrieving the document 60 from the site 58, the browser 51
`processes the HTML data to generate a view of the
`document, which the browser then displays on the comput-
`er’s screen 30 (FIG. 1). The browser stores a copy of any
`documents with their dependencies which are browsed
`on-line in an Internet cache 66 in the computer’s local
`storage 42.
`The browser 51 also can be operated off-line (.e., when
`the computer 20 is disconnected from the network 52) to
`browse documents which are stored locally at the computer
`20. In addition to documents which are cached by the
`browser during on-line browsing, documentsalsoare locally
`stored by Web Check 53 foroff-line browsing(i.e., browsing
`while disconnected from the network 52) using the browser
`51.
`
`Web Check 53 is an object-oriented framework including
`a set of software modules that is described below with
`reference to FIG. 9. As described more fully below, Web
`Check 53 includes a core set of software modules with
`interfaces for a client application programto set up, schedule
`and monitor periodically recurring operations implemented
`by an agent program. In the illustrated system 50, the agent
`programs implement operations that serve to monitor for
`changes or
`to periodically update data in the system.
`
`Zynga Ex. 1011, p. 14
`Zynga v. IGT
`IPR2022-00199
`
`Zynga Ex. 1011, p. 14
` Zynga v. IGT
` IPR2022-00199
`
`
`
`US 6,745,224 B1
`
`7
`the agent programs in the illustrated system
`Specifically,
`implement updating operations for use by the operating
`system and application software (such as the browser 51) to
`automatically monitor a specified document (e.g., IITML
`document 60) residing at a remote site on a computer
`network for changes and maintain an up-to-date locally
`stored copy of the document for later off-line use.
`In
`alternative systems employing the Web Check framework,
`agent programs can implement other periodically recurring
`operations that differ from those in the illustrated system.
`Generally, although not necessarily, the periodically recur-
`ring operations serve to monitor for a change in the system
`or to maintain updated data in the system. For example,
`alternative systems can include agent programs that monitor
`for changesto files stored locally rather than remotely as in
`the illustrated system 50.
`The updating operations provided using the Web Check
`framework 53 in the system 50 maintain locally stored
`copies of documents in either the Internet cache 66 orin file
`system folders which are designated as “smart folders” 68.
`Web Check 53 thus provides a continually updated local
`copy of a document for off-line use, such as for off-line
`browsing using the browser 51.
`In one embodiment of the invention, the updating opera-
`tions to be performed by Web Check 53 are identified by
`entries in a system registry 66.
`In the Microsoft® Win-
`dows® operating system, the system registry is a database
`which stores configuration information for the operating
`system,
`including information to enumerate and track
`applications, device drivers, and operating system control
`parameters. For a detailed discussion of the registry, see
`Win32 Programmers Reference, Vol. 2, published by
`Microsoft Press, Redmond, Wash. (1993). Web Check 53
`performs the updating operations, and stores identifying
`entries for the updating operations in the registry on a
`per-user basis under an HKeyCurrentUserregistry key in the
`registry 70.
`Eachofthe registry entries for Web Check 53 stores three
`pieces of data, a “flags” double word value, a “path” text
`string, and a “URL”text string. The flags value contains bits
`which can besct to specify the particular updating scrvice to
`be performed by Web Check. The path stringis a file system
`path nameofa folder in the local storage 42 of the computer
`20. The URL string is a URL of a file on a remote
`World-Wide Web site 58. The definitions of the flag value
`bits for Web check registry entries in the illustrated system
`50 are listed in the following Table 1. The updating opera-
`tions specified by setting these flags value bits are described
`in more detail in subsequent sections.
`
`TABLE1
`
`Definition of Flags Value Bits
`
`Bit Definition
`
`0
`
`1
`
`Vv
`
`The registry entry specifies a smart folder updating service
`described in the “Smart Folders Updatin