US20160255174A1 - Data file and rule driven synchronous or asynchronous document generation - Google Patents
Data file and rule driven synchronous or asynchronous document generation Download PDFInfo
- Publication number
- US20160255174A1 US20160255174A1 US15/149,399 US201615149399A US2016255174A1 US 20160255174 A1 US20160255174 A1 US 20160255174A1 US 201615149399 A US201615149399 A US 201615149399A US 2016255174 A1 US2016255174 A1 US 2016255174A1
- Authority
- US
- United States
- Prior art keywords
- data
- data file
- webpage
- instruction
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 230000001360 synchronised effect Effects 0.000 title 1
- 238000012545 processing Methods 0.000 claims description 45
- 238000000034 method Methods 0.000 claims description 27
- 239000000470 constituent Substances 0.000 abstract description 41
- 230000015654 memory Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004043 responsiveness Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000001172 regenerating effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H04L67/42—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
-
- G06F17/30896—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/131—Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Definitions
- the subject matter disclosed herein generally relates to information management. Specifically, the present disclosure addresses methods and systems of using a data file to generate a document or update a generated document.
- a server computer may send a document to a client computer, for example, at the request of a user of the client computer.
- the server computer may be a web server, and the document may be a webpage.
- the client computer receives and displays the document for viewing by the user, which may be a human user or another machine.
- a document may be generated by a machine.
- Specialized software may configure a general-purpose computer into a special-purpose computer usable to generate the document.
- such a machine may generate a document specifically customized for a particular user.
- a server machine may generate a personalized webpage for an individual user, based on various preferences of the user. The user's preferences may be stored in a user profile that is available to the server machine for use in the generation of a personalized webpage. This often provides a more relevant, personal, or meaningful presentation of information to the user.
- FIG. 1 is a block diagram illustrating components of a system to use a data file to update a generated document, according to some example embodiments
- FIG. 2 is a block diagram illustrating a data file to update a generated document, according to some example embodiments
- FIG. 3 is a block diagram illustrating a data structure to store user data, according to some example embodiments.
- FIG. 4 is a flow chart illustrating operations in a method of using a data file to update a generated document, according to some example embodiments
- FIG. 5 is a block diagram illustrating components of an example machine able to read instructions from a machine-readable medium and use a data file to update a generated document.
- Example methods and systems are directed to using a data file to generate a document or update a generated document. Examples merely typify possible variations. Unless explicitly stated otherwise, components and functions are optional and may be combined or subdivided, and operations may vary in sequence or be combined or subdivided. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of example embodiments. It will be evident to one skilled in the art, however, that the present subject matter may be practiced without these specific details.
- a data file describes a document to be generated and stores an instruction to provide constituent data of the document via a network.
- the data file is accessed at a local computer, and the document is generated based on the data file.
- the generated document is communicated via the network to a remote computer.
- the instruction to provide constituent data is processed using a processor of the local computer.
- the constituent data is provided via the network to the remote computer as an update of the generated document.
- a data file describes a webpage as including multiple portions that are independently refreshable. In other words, the portions of the webpage are refreshable independent of one another.
- the data file also stores an instruction to provide a refreshed portion of the webpage via a network.
- the data file is accessed, and the instruction is processed using a processor of the server computer.
- a portion of the webpage is generated and provided via the network to a client computer as the refreshed portion of the webpage.
- constituent data refers to data that can be incorporated into a document.
- constituent data may be a refreshed portion of a webpage that can be incorporated into the webpage.
- constituent data may be an updated section of the document recently edited by a remote user.
- constituent data may be a real-time data feed, such as a stock price ticker. Additional examples of constituent data include, but are not limited to, text data, audio data, image data, and video data. According to various example embodiments, constituent data may be representative of a news feed, weather information, a blog entry, an advertisement, a product recommendation, or contents of an online shopping cart.
- FIG. 1 is a block diagram illustrating components of a system 100 to use a data file to update a generated document, according to some example embodiments.
- the system 100 includes a local computer 110 and a remote computer 150 connected together via a network 190 .
- the local computer 110 may be a server computer (e.g., a web server) or a collection of multiple server computers (e.g., a server farm).
- the remote computer 150 may be a client computer (e.g., a web client) or one or more computers functioning as a client computer (e.g., a web proxy) with respect to the local computer 110 .
- the network 190 may be any kind of network that communicatively couples multiple computers (e.g., local computer 110 and remote computer 150 ).
- the network may be a local area network (LAN), a wide area network (WAN), the Internet, or any combination thereof.
- the network 190 may include wired infrastructure, wireless infrastructure, or any combination thereof.
- the local computer 110 includes a processing module 111 , a communication module 112 , a data file 113 , and user data 115 .
- the processing module 111 , the communication module 112 , or any combination thereof may be implemented as hardware modules, as described below with respect to FIG. 5 .
- the data file 113 , the user data 115 , or any combination thereof may be implemented as data structures stored in a memory or a machine-readable medium, as described below with respect to FIG. 5 .
- the local computer 110 may be configured to implement a method described below with respect to FIG. 4 .
- the remote computer 150 includes a processor 151 , browser software 152 (e.g., stored in a memory of the remote computer 150 ), and a user interface 153 to enable a user to interact with the remote computer 150 .
- browser software 152 e.g., stored in a memory of the remote computer 150
- user interface 153 to enable a user to interact with the remote computer 150 .
- the data file 113 describes a document e.g., a webpage or a document to be generated) and stores an instruction to provide constituent data (e.g., a refreshed portion of a webpage) via the network 190 .
- the data file is described in greater detail below with respect to FIG. 2 .
- the user data 115 stores information that corresponds to a user a user of the remote computer 150 ). This information represents one or more characteristics of the user.
- the user data 115 is described in greater detail below with respect to FIG. 3 .
- the communication module 112 is configured to access the data file 113 , to communicate a generated document via the network 190 to the remote computer 150 , and to provide constituent data via the network 190 to the remote computer 150 as an update of the generated document.
- the communication module 112 may be configured to generate a webpage, and the constituent data may be an update to the generated webpage.
- the communication module 112 may be configured to provide the constituent data synchronously, asynchronously, or any combination thereof.
- the constituent data may be provided in response to a request for an update of the generated document, as in, for example, a dynamically changing webpage that alters its content based on input provided by a user.
- the content of the webpage may be updated based on personalization, localization, or interaction data received from the user, or any combination thereof.
- the constituent data may be provided irrespective of any input provided by the user, as in, for example, a stock ticker, an automatically changing advertisement, or a news feed.
- the constituent data may be provided as a continuous stream of data that is dynamically modified in response to user input, as in, for example, a continuously updated stock ticker that provides user-selectable levels of detail.
- the processing module 111 is configured to generate the document based on the data file 113 and to process the instruction to provide constituent data via the network 190 .
- the processing module 111 may be configured to generate a webpage.
- the processing module 111 may generate the constituent data, access constituent data stored elsewhere via the network 190 , or any combination thereof.
- the data file 113 includes one or more rules corresponding to the instruction to provide constituent data
- the processing module 111 is configured to process the instruction in accordance with the rule corresponding to the instruction.
- a rule may limit the processing of its corresponding instruction to certain hours of the day.
- the data file 113 stores multiple instructions to provide various constituent data via the network 190 . Where multiple instructions are stored in the data file 113 , each of the multiple instructions may correspond to one or more rules stored in the data file 113 .
- the data file 113 includes a rule based on a characteristic of the network 190 , a characteristic of the remote computer 150 , of the local computer 110 , of browser software executing on the remote computer 150 , or of a user of the remote computer 150 .
- a rule may enable or disable the processing of its corresponding instruction based on the performance of the network 190 (e.g., allow processing of the instruction only for high-speed broadband networks).
- a rule may set conditions on the processing of its corresponding instruction based on the displayed screen size of the remote computer 150 (e.g., disallow processing of the instruction for graphical displays below 1024 ⁇ 768 pixels).
- a rule may control the processing of its corresponding instruction based on processor load of the local computer 110 (e.g., allow processing of the instruction only during periods of low processor activity).
- a rule may govern the processing of its corresponding instruction based on the user data 115 (e.g., prevent processing of the instruction if the user is likely to object to viewing the corresponding constituent data).
- a rule may reference another rule.
- a first rule may set forth conditions for the processing of an entire set of rules (e.g., executing a second rule, a third rule, and a fourth rule).
- the first rule may set conditions for processing its corresponding instruction, as well as processing another rule (e.g., if the conditions are met, process the instruction and process the second rule, the third rule, and the fourth rule). This has the effect of enabling sophisticated behavior with respect to provision of various constituent data to the remote computer 150 .
- the communication module 112 is configured to receive a request to update the generated document.
- the communication module 112 may receive such a request via the network 190 and originating from the remote computer 150 (e.g., a request submitted by a user of the remote computer 150 ).
- the processing module 111 is configured to process the instruction responsive to the request.
- the processing module 111 is configured to regenerate the generated document based on the data file 113 .
- the regenerated document includes the constituent data to be provided according to the instruction stored in the data tile 113 .
- the communication module 112 in providing the constituent data to the remote computer 150 , is configured to communicate the regenerated document via the network 190 to the remote computer 150 .
- FIG. 2 is a block diagram illustrating the data file 113 , according to some example embodiments.
- the data file 113 is a data structure describing a document (e.g., a webpage or a document to be generated).
- the data file 113 may be a webpage description file that describes a webpage.
- the webpage description file may be encoded using eXtensible Markup Language (XML).
- XML eXtensible Markup Language
- the data file 113 describes a webpage as including one or more portions of the webpage that are independently refreshable (e.g., each of the portions refreshable independently of each other).
- the data file 113 may describe a webpage to be generated, where the webpage includes one or more portions, such as widgets, frames, sub-pages, advertisements, or any combination thereof.
- Examples of a webpage portion include, but are not limited to, a stock ticker, a stock portfolio overview, an advertisement, a news feed, a summary of news headlines, an online shopping cart, a map, a restaurant review, an email interface, a blog or micro-blog interface, a calendar application, and a game.
- the data file 113 stores an instruction 201 to provide constituent data via the network 190 .
- the instruction 201 is to provide a refreshed portion of the webpage via the network 190 (e.g., to refresh the portion of the webpage).
- the instruction 201 may be to send via the network 190 an update of a widget constituting a generated webpage.
- the data file 113 includes a rule 202 corresponding to the instruction 201 .
- the rule 202 may limit the processing of its corresponding instruction 201 to certain hours of the day.
- the rule 202 may be based on one or more characteristics of the network 190 , of the remote computer 150 , of the local computer 110 , of the browser software 152 at the remote computer 150 , of a user, or any combination thereof. This has the effect of enabling sophisticated behavior with respect to provision of various constituent data and improving responsiveness or usability for the user with respect to obtaining an update of the document, because only the most appropriate, most relevant, or most meaningful constituent data is provided.
- the rule 202 may be based on a characteristic of the network 190 .
- the rule 202 may disallow processing of the instruction 201 if the network 190 is too slow to communicate the constituent data within a specified time interval.
- the rule 202 may allow processing of the instruction 201 only if the network 190 has a bit rate above a specified threshold value.
- the rule 202 may be based on a characteristic of the remote computer 150 (e.g., a client computer). For example, the rule 202 may allow processing of the instruction 201 only if the remote computer 150 has a graphical display of a specified size or larger. As another example, the rule 202 may disallow processing of the instruction 201 if the remote computer 150 is a portable electronic device (e.g., a cellphone or a smart phone).
- a characteristic of the remote computer 150 e.g., a client computer.
- the rule 202 may allow processing of the instruction 201 only if the remote computer 150 has a graphical display of a specified size or larger.
- the rule 202 may disallow processing of the instruction 201 if the remote computer 150 is a portable electronic device (e.g., a cellphone or a smart phone).
- the rule 202 may be based on a characteristic of the local computer 110 (e.g., a server computer). For example, the Wile 202 may allow processing of the instruction 201 only during periods of low processor activity at the local computer 110 .
- the rule 202 may be based on a characteristic of the browser software 152 at the remote computer 150 .
- the rule 202 may disallow processing of the instruction 201 if the browser software 152 uses a display window smaller than a specified size.
- the rule 202 may be based on user data corresponding to a user of the remote computer 150 (e.g., user data 115 ).
- the rule 202 may be based on user preferences (e.g., preferences explicitly set by the user), a user profile (e.g., characteristics inferred from the user's behavior), a user's purchase history, a user's browsing history, a user's unsuccessful purchase attempts (e.g., failed auction bids), or any combination thereof.
- user preferences e.g., preferences explicitly set by the user
- a user profile e.g., characteristics inferred from the user's behavior
- a user's purchase history e.g., a user's browsing history
- a user's unsuccessful purchase attempts e.g., failed auction bids
- the data file 113 includes multiple instructions (e.g., instructions 201 , 203 , and 205 ). Each instruction may correspond to one or more rules (e.g., rules 202 , 204 , and 206 ) or to no rule that all. For simplicity, three instructions are shown in FIG. 2 , each with a single corresponding rule.
- the rule 202 may reference another rules (e.g., rules 204 and 206 ).
- the processing of the rule 202 includes initiating processing of one or more referenced rules (e.g., rules 204 and 206 ).
- rules 204 and 206 are referenced rules.
- both rules are evaluated as satisfied (e.g., true)
- both of their respective instructions 201 and 203 are to be processed, resulting in provision of both of their respective bodies of constituent data.
- FIG. 3 is a block diagram illustrating the user data 115 , according to sonic example embodiments.
- the user data 115 is a data structure to store data corresponding to a user (e.g., a user of the remote computer 150 ).
- this data may include a user profile 301 , user preferences 302 , a purchase history 303 , unsuccessful purchase attempts 304 (e.g., failed auction bids), or any combination thereof.
- the user profile 301 may include characteristics of the user inferred by a machine from the user code's behavior.
- the user preferences 302 may include preferences explicitly set by the user.
- the purchase history 303 may include records of, or references to, purchase transactions associated with the user.
- the unsuccessful purchase attempts 304 may include records of or references to, user-submitted auction bids that did not result in a purchase of an item.
- the user data 115 may include a browsing history (e.g., a list of websites previously accessed by the user), web cookies, social networking data (e.g., a list of identifiers of the user's friends or associates), cloud computing data (e.g., information pertaining to files accessible by the user in a cloud computing environment), or any combination thereof.
- a browsing history e.g., a list of websites previously accessed by the user
- web cookies e.g., a list of identifiers of the user's friends or associates
- social networking data e.g., a list of identifiers of the user's friends or associates
- cloud computing data e.g., information pertaining to files accessible by the user in a cloud computing environment
- FIG. 4 is a flow chart illustrating operations in a method 400 of using a data file to update a generated document, according to some example embodiments.
- the method 400 may be implemented by a machine (e.g., a computer), such as for example, the local computer 110 , a server computer, or a machine able to read a machine-readable medium.
- the method 400 includes operations 410 , 420 , 430 , 440 , 450 , 460 , 470 , and 480 .
- Operation 410 involves accessing the data file 113 .
- the communication module 112 may access the data file 113 at the local computer 110 .
- the data file 113 describes a document (e.g., a webpage or a document to be generated).
- the data file 113 also stores an instruction (e.g., instruction 201 ) to provide constituent data (e.g., to provide a refreshed portion of a webpage, via the network 190 ).
- the data file 113 may be accessed at a local computer 110 , which may be a server computer, although the data file 113 may be stored on any computer or storage device accessible via the network 190 , including the local computer 110 .
- Operation 420 involves generating the document based on the data file 113 .
- operation 420 may involve generating a webpage based on the data file 113 .
- Operation 420 may be performed by the processing module 111 .
- Operation 430 involves communicating the generated document via the network 190 to the remote computer 150 , which may be a client computer.
- operation 430 may involve communicating a generated webpage to the remote computer 150 .
- Operation 430 may be performed by the communication module 112 .
- Operation 440 involves receiving a request to update the generated document.
- operation 440 may involve receiving a request to refresh a portion of a generated webpage.
- the request may be received from the remote computer 150 via the network 190 .
- a user of the remote computer 150 may originate the request using the user interface 153 of the remote computer 150 , and the remote computer 150 may communicate the request via the network 190 for reception by the local computer 110 .
- the user may originate the request using the browser software 152 or the user interface 153 of the remote computer 150 (e.g., by resizing a browser window, or clicking on a button or tab displayed in the browser window).
- Operation 440 may be performed by the communication module 112 .
- Operation 450 involves processing the instruction (e.g., instruction 202 ).
- the processing module 111 may process the instruction.
- the processing of the instruction may be performed using a processor of the local computer 110 (e.g., a server computer).
- the processing of the instruction may be responsive to the request received in operation 440 .
- Operation 460 involves generating a portion of the document.
- the portion of the document is less than an entirety of the document.
- operation 460 may involve generating a portion of a generated webpage, where the portion is less than the entire webpage. This operation has the effect of generating constituent data to be provided according to the instruction (e.g., instruction 201 ).
- Operation 460 may be performed by the processing module 111 .
- Operation 470 involves regenerating the generated document based on the data file 113 .
- the regenerated document includes the constituent data to be provided according to the instruction (e.g., instruction 201 ).
- operation 470 may involve regenerating a webpage so that the regenerated webpage includes a refreshed portion of the webpage. This operation has the effect of encapsulating the constituent data within the document. Operation 470 may be performed by the processing module 111 .
- Operation 480 involves providing the constituent data via the network 190 to the remote computer 150 as an update of the generated document.
- operation 480 may involve providing the generated portion of a generated webpage as a refreshed portion of the webpage, According to various example embodiments, more than one generated portions of a webpage may be provided. In aggregate, these portions may be less than the entirety of the webpage, or they may constitute the entirety of the webpage.
- Operation 480 may be performed by the communication module 112 .
- the data file 113 includes a rule (e.g., rule 202 ) corresponding to the instruction (e.g., instruction 201 ).
- operation 450 may involve processing the instruction in accordance with the rule.
- more than one rule may correspond to the instruction.
- the data file 113 may include more than one instruction.
- the data file 113 may include multiple instructions to provide multiple bodies of constituent data (e.g., each instruction is to respectively provide specific constituent data corresponding to that instruction).
- Certain example embodiments may provide one or more potential advantages. These potential advantages include, but are not limited to, reducing network traffic involved in communication of entire documents or entire webpages, reducing computational loads on processing hardware involved in refreshing or re-rendering entire documents or entire webpages, and improving the responsiveness or usability of interactive documents or webpages as perceived by a user.
- Technical problems addressed by these potential advantages include, but are not limited to, delays due to network congestion, delays due to processor loading, and poor usability or responsiveness of interactive documents or webpages as perceived by a user.
- FIG. 5 illustrates components of an example machine able to read instructions from a machine-readable medium and use a data file (e.g., data file 113 ) to update a generated document.
- FIG. 5 shows a diagrammatic representation of a machine in the example form of a computer system 500 within which instructions 524 (e.g., software) for causing the machine to perform any one or more of the methodologies discussed herein may be executed.
- the machine may include one or more hardware modules configured to perform one or more operations of a method described herein.
- the machine operates as a standalone device or may be connected (e.g., networked) to other machines.
- the machine may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions 524 (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- PDA personal digital assistant
- a cellular telephone a smartphone
- web appliance a web appliance
- network router switch or bridge
- the computer system 500 includes a processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), application specific integrated circuits (ASICs), radio-frequency integrated circuits (RFICs), or any combination of these), a main memory 504 , and a static memory 506 , which communicate with each other via a bus 508 .
- the computer system 500 may further include a graphics display unit 510 (e.g., a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)).
- a graphics display unit 510 e.g., a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)
- the computer system 500 may also include an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit 516 , a signal generation device 518 (e.g., a speaker), and a network interface device 520 .
- an alphanumeric input device 512 e.g., a keyboard
- a cursor control device 514 e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument
- storage unit 516 e.g., a disk drive, or other pointing instrument
- a signal generation device 518 e.g., a speaker
- the storage unit 516 includes a machine-readable medium 522 on which is stored instructions 524 (e.g., software) embodying any one or more of the methodologies or functions described herein.
- the instructions 524 (e.g., software) may also reside, completely or at least partially, within the main memory 504 or within the processor 502 (e.g., within the processor's cache memory) during execution thereof by the computer system 500 , the main memory 504 and the processor 502 also constituting machine-readable media.
- the instructions 524 (e.g., software) may be transmitted or received over a network 526 via the network interface device 520 .
- machine-readable medium refers to a machine-readable medium able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While machine-readable medium 522 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., instructions 524 ).
- machine-readable medium shall also be taken to include any medium that is capable of storing instructions (e.g., instructions 524 ) for execution by the machine and that cause the machine to perform any one or more of the methodologies described herein.
- the term “machine-readable medium” shall accordingly be taken to include, but not be limited to, data repositories in the form of solid-state memories, optical media, and magnetic media.
- Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules.
- a hardware module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner.
- one or more computer systems e.g., a standalone system, a client computer system, or a server computer system
- one or more hardware modules of a computer system e.g., a processor or a group of processors
- software e.g., an application or an application portion
- a hardware module may be implemented mechanically or electronically.
- a hardware module may include dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as afield programmable gate array (FPC/A) or an application-specific integrated circuit (ARC)) to perform certain operations.
- a hardware module may also include programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- a “hardware-implemented module” is a hardware module. Considering embodiments in which one or more hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a particular hardware module includes a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware modules may provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., via a circuit or bus connecting the hardware modules) between or among the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- a resource e.g., a collection of information
- processors may be temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions.
- the modules referred to herein may, in some example embodiments, include processor-implemented modules.
- the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
- processors, hardware modules, or processor-implemented modules may also operate to support performance of the relevant operations in a “cloud computing” environment or in a “software as a service” (SaaS) environment.
- SaaS software as a service
- the operations may be performed by a group of computers as examples of machines including processors), these operations being accessible via a network (e.g., the linternet) and via one or more interfaces e.g., application program interfaces (APIs).)
- a network e.g., the linternet
- interfaces e.g., application program interfaces (APIs).
- the performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines.
- the one or more processors, hardware modules, or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors, hardware modules, or processor-implemented modules may be distributed across a number of geographic locations.
Abstract
Description
- This application is a continuation of and claims the benefit of priority to U.S. patent application Ser. No. 12/558,204, filed on Sep. 11, 2009, which is hereby incorporated by reference herein in its entirety,
- The subject matter disclosed herein generally relates to information management. Specifically, the present disclosure addresses methods and systems of using a data file to generate a document or update a generated document.
- In the 21st century, information is frequently stored in a document, which may take the form of an electronic document. The Internet and the World Wide Web enable users, via machines, to receive and view documents. In many cases, a server computer may send a document to a client computer, for example, at the request of a user of the client computer. For example, the server computer may be a web server, and the document may be a webpage. The client computer receives and displays the document for viewing by the user, which may be a human user or another machine.
- A document may be generated by a machine. Specialized software may configure a general-purpose computer into a special-purpose computer usable to generate the document. In various implementations, such a machine may generate a document specifically customized for a particular user. For example, a server machine may generate a personalized webpage for an individual user, based on various preferences of the user. The user's preferences may be stored in a user profile that is available to the server machine for use in the generation of a personalized webpage. This often provides a more relevant, personal, or meaningful presentation of information to the user.
- Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
-
FIG. 1 is a block diagram illustrating components of a system to use a data file to update a generated document, according to some example embodiments; -
FIG. 2 is a block diagram illustrating a data file to update a generated document, according to some example embodiments; -
FIG. 3 is a block diagram illustrating a data structure to store user data, according to some example embodiments; -
FIG. 4 is a flow chart illustrating operations in a method of using a data file to update a generated document, according to some example embodiments; -
FIG. 5 is a block diagram illustrating components of an example machine able to read instructions from a machine-readable medium and use a data file to update a generated document. - Example methods and systems are directed to using a data file to generate a document or update a generated document. Examples merely typify possible variations. Unless explicitly stated otherwise, components and functions are optional and may be combined or subdivided, and operations may vary in sequence or be combined or subdivided. In the following description, for purposes of explanation, numerous specific details are set forth to provide a thorough understanding of example embodiments. It will be evident to one skilled in the art, however, that the present subject matter may be practiced without these specific details.
- A data file describes a document to be generated and stores an instruction to provide constituent data of the document via a network. The data file is accessed at a local computer, and the document is generated based on the data file. The generated document is communicated via the network to a remote computer. At the local computer, the instruction to provide constituent data is processed using a processor of the local computer. The constituent data is provided via the network to the remote computer as an update of the generated document.
- In some example embodiments, a data file describes a webpage as including multiple portions that are independently refreshable. In other words, the portions of the webpage are refreshable independent of one another. The data file also stores an instruction to provide a refreshed portion of the webpage via a network. At a server computer, the data file is accessed, and the instruction is processed using a processor of the server computer. A portion of the webpage is generated and provided via the network to a client computer as the refreshed portion of the webpage.
- As used herein, “constituent data” refers to data that can be incorporated into a document. For example, constituent data may be a refreshed portion of a webpage that can be incorporated into the webpage. As another example, constituent data may be an updated section of the document recently edited by a remote user. As yet another example, constituent data may be a real-time data feed, such as a stock price ticker. Additional examples of constituent data include, but are not limited to, text data, audio data, image data, and video data. According to various example embodiments, constituent data may be representative of a news feed, weather information, a blog entry, an advertisement, a product recommendation, or contents of an online shopping cart.
-
FIG. 1 is a block diagram illustrating components of asystem 100 to use a data file to update a generated document, according to some example embodiments. Thesystem 100 includes alocal computer 110 and aremote computer 150 connected together via anetwork 190. Thelocal computer 110 may be a server computer (e.g., a web server) or a collection of multiple server computers (e.g., a server farm). Theremote computer 150 may be a client computer (e.g., a web client) or one or more computers functioning as a client computer (e.g., a web proxy) with respect to thelocal computer 110. - The
network 190 may be any kind of network that communicatively couples multiple computers (e.g.,local computer 110 and remote computer 150). For example, the network may be a local area network (LAN), a wide area network (WAN), the Internet, or any combination thereof. Thenetwork 190 may include wired infrastructure, wireless infrastructure, or any combination thereof. - The
local computer 110 includes aprocessing module 111, acommunication module 112, adata file 113, anduser data 115. Theprocessing module 111, thecommunication module 112, or any combination thereof may be implemented as hardware modules, as described below with respect toFIG. 5 . Thedata file 113, theuser data 115, or any combination thereof may be implemented as data structures stored in a memory or a machine-readable medium, as described below with respect toFIG. 5 . Thelocal computer 110 may be configured to implement a method described below with respect toFIG. 4 . - The
remote computer 150 includes aprocessor 151, browser software 152 (e.g., stored in a memory of the remote computer 150), and auser interface 153 to enable a user to interact with theremote computer 150. - The
data file 113 describes a document e.g., a webpage or a document to be generated) and stores an instruction to provide constituent data (e.g., a refreshed portion of a webpage) via thenetwork 190. The data file is described in greater detail below with respect toFIG. 2 . - The
user data 115 stores information that corresponds to a user a user of the remote computer 150). This information represents one or more characteristics of the user. Theuser data 115 is described in greater detail below with respect toFIG. 3 . - The
communication module 112 is configured to access thedata file 113, to communicate a generated document via thenetwork 190 to theremote computer 150, and to provide constituent data via thenetwork 190 to theremote computer 150 as an update of the generated document. For example, thecommunication module 112 may be configured to generate a webpage, and the constituent data may be an update to the generated webpage. - The
communication module 112 may be configured to provide the constituent data synchronously, asynchronously, or any combination thereof. The constituent data may be provided in response to a request for an update of the generated document, as in, for example, a dynamically changing webpage that alters its content based on input provided by a user. For example, the content of the webpage may be updated based on personalization, localization, or interaction data received from the user, or any combination thereof. Alternatively, the constituent data may be provided irrespective of any input provided by the user, as in, for example, a stock ticker, an automatically changing advertisement, or a news feed. In some hybrid situations, the constituent data may be provided as a continuous stream of data that is dynamically modified in response to user input, as in, for example, a continuously updated stock ticker that provides user-selectable levels of detail. - The
processing module 111 is configured to generate the document based on the data file 113 and to process the instruction to provide constituent data via thenetwork 190. For example, theprocessing module 111 may be configured to generate a webpage. In processing the instruction to provide constituent data, theprocessing module 111 may generate the constituent data, access constituent data stored elsewhere via thenetwork 190, or any combination thereof. - In some example embodiments, the data file 113 includes one or more rules corresponding to the instruction to provide constituent data, and the
processing module 111 is configured to process the instruction in accordance with the rule corresponding to the instruction. For example, a rule may limit the processing of its corresponding instruction to certain hours of the day. According to some example embodiments, the data file 113 stores multiple instructions to provide various constituent data via thenetwork 190. Where multiple instructions are stored in the data file 113, each of the multiple instructions may correspond to one or more rules stored in the data file 113. - In certain example embodiments, the data file 113 includes a rule based on a characteristic of the
network 190, a characteristic of theremote computer 150, of thelocal computer 110, of browser software executing on theremote computer 150, or of a user of theremote computer 150. For example, a rule may enable or disable the processing of its corresponding instruction based on the performance of the network 190 (e.g., allow processing of the instruction only for high-speed broadband networks). As another example, a rule may set conditions on the processing of its corresponding instruction based on the displayed screen size of the remote computer 150 (e.g., disallow processing of the instruction for graphical displays below 1024×768 pixels). As yet another example, a rule may control the processing of its corresponding instruction based on processor load of the local computer 110 (e.g., allow processing of the instruction only during periods of low processor activity). As a further example, a rule may govern the processing of its corresponding instruction based on the user data 115 (e.g., prevent processing of the instruction if the user is likely to object to viewing the corresponding constituent data). - In various example embodiments, a rule may reference another rule. For example, a first rule may set forth conditions for the processing of an entire set of rules (e.g., executing a second rule, a third rule, and a fourth rule). As another example, the first rule may set conditions for processing its corresponding instruction, as well as processing another rule (e.g., if the conditions are met, process the instruction and process the second rule, the third rule, and the fourth rule). This has the effect of enabling sophisticated behavior with respect to provision of various constituent data to the
remote computer 150. - In some example embodiments, the
communication module 112 is configured to receive a request to update the generated document. For example, thecommunication module 112 may receive such a request via thenetwork 190 and originating from the remote computer 150 (e.g., a request submitted by a user of the remote computer 150). According to some example embodiments, theprocessing module 111 is configured to process the instruction responsive to the request. - In certain example embodiments, the
processing module 111 is configured to regenerate the generated document based on the data file 113. The regenerated document includes the constituent data to be provided according to the instruction stored in thedata tile 113. For example, where the generated document is a webpage generated at one point in time, the regenerated document may be an updated version of the same webpage generated at a later point in time. According to some example embodiments, thecommunication module 112, in providing the constituent data to theremote computer 150, is configured to communicate the regenerated document via thenetwork 190 to theremote computer 150. -
FIG. 2 is a block diagram illustrating the data file 113, according to some example embodiments. The data file 113 is a data structure describing a document (e.g., a webpage or a document to be generated). For example, the data file 113 may be a webpage description file that describes a webpage. The webpage description file may be encoded using eXtensible Markup Language (XML). According to some example embodiments, the data file 113 describes a webpage as including one or more portions of the webpage that are independently refreshable (e.g., each of the portions refreshable independently of each other). As an example, the data file 113 may describe a webpage to be generated, where the webpage includes one or more portions, such as widgets, frames, sub-pages, advertisements, or any combination thereof. Examples of a webpage portion include, but are not limited to, a stock ticker, a stock portfolio overview, an advertisement, a news feed, a summary of news headlines, an online shopping cart, a map, a restaurant review, an email interface, a blog or micro-blog interface, a calendar application, and a game. - The data file 113 stores an
instruction 201 to provide constituent data via thenetwork 190. According to some example embodiments, theinstruction 201 is to provide a refreshed portion of the webpage via the network 190 (e.g., to refresh the portion of the webpage). For example, theinstruction 201 may be to send via thenetwork 190 an update of a widget constituting a generated webpage. - In some example embodiments, the data file 113 includes a
rule 202 corresponding to theinstruction 201. For example, as noted above, therule 202 may limit the processing of itscorresponding instruction 201 to certain hours of the day. Therule 202 may be based on one or more characteristics of thenetwork 190, of theremote computer 150, of thelocal computer 110, of thebrowser software 152 at theremote computer 150, of a user, or any combination thereof. This has the effect of enabling sophisticated behavior with respect to provision of various constituent data and improving responsiveness or usability for the user with respect to obtaining an update of the document, because only the most appropriate, most relevant, or most meaningful constituent data is provided. - The
rule 202 may be based on a characteristic of thenetwork 190. For example, therule 202 may disallow processing of theinstruction 201 if thenetwork 190 is too slow to communicate the constituent data within a specified time interval. As another example, therule 202 may allow processing of theinstruction 201 only if thenetwork 190 has a bit rate above a specified threshold value. - The
rule 202 may be based on a characteristic of the remote computer 150 (e.g., a client computer). For example, therule 202 may allow processing of theinstruction 201 only if theremote computer 150 has a graphical display of a specified size or larger. As another example, therule 202 may disallow processing of theinstruction 201 if theremote computer 150 is a portable electronic device (e.g., a cellphone or a smart phone). - The
rule 202 may be based on a characteristic of the local computer 110 (e.g., a server computer). For example, theWile 202 may allow processing of theinstruction 201 only during periods of low processor activity at thelocal computer 110. - The
rule 202 may be based on a characteristic of thebrowser software 152 at theremote computer 150. For example, therule 202 may disallow processing of theinstruction 201 if thebrowser software 152 uses a display window smaller than a specified size. - The
rule 202 may be based on user data corresponding to a user of the remote computer 150 (e.g., user data 115). For example, therule 202 may be based on user preferences (e.g., preferences explicitly set by the user), a user profile (e.g., characteristics inferred from the user's behavior), a user's purchase history, a user's browsing history, a user's unsuccessful purchase attempts (e.g., failed auction bids), or any combination thereof. User data is further discussed below with respect toFIG. 3 . - in certain example embodiments, the data file 113 includes multiple instructions (e.g.,
instructions FIG. 2 , each with a single corresponding rule. - As noted above, the
rule 202 may reference another rules (e.g., rules 204 and 206). According to various example embodiments, the processing of therule 202 includes initiating processing of one or more referenced rules (e.g., rules 204 and 206). As an example, if thefirst rule 202 references asecond rule 204, and if both rules are evaluated as satisfied (e.g., true), then both of theirrespective instructions -
FIG. 3 is a block diagram illustrating theuser data 115, according to sonic example embodiments. Theuser data 115 is a data structure to store data corresponding to a user (e.g., a user of the remote computer 150). For example, this data may include auser profile 301,user preferences 302, apurchase history 303, unsuccessful purchase attempts 304 (e.g., failed auction bids), or any combination thereof. Theuser profile 301 may include characteristics of the user inferred by a machine from the user code's behavior. Theuser preferences 302 may include preferences explicitly set by the user. Thepurchase history 303 may include records of, or references to, purchase transactions associated with the user. The unsuccessful purchase attempts 304 may include records of or references to, user-submitted auction bids that did not result in a purchase of an item. - According to various example embodiments, the
user data 115 may include a browsing history (e.g., a list of websites previously accessed by the user), web cookies, social networking data (e.g., a list of identifiers of the user's friends or associates), cloud computing data (e.g., information pertaining to files accessible by the user in a cloud computing environment), or any combination thereof. -
FIG. 4 is a flow chart illustrating operations in amethod 400 of using a data file to update a generated document, according to some example embodiments. Themethod 400 may be implemented by a machine (e.g., a computer), such as for example, thelocal computer 110, a server computer, or a machine able to read a machine-readable medium. Themethod 400 includesoperations -
Operation 410 involves accessing the data file 113. For example, thecommunication module 112 may access the data file 113 at thelocal computer 110. As noted above, the data file 113 describes a document (e.g., a webpage or a document to be generated). The data file 113 also stores an instruction (e.g., instruction 201) to provide constituent data (e.g., to provide a refreshed portion of a webpage, via the network 190). The data file 113 may be accessed at alocal computer 110, which may be a server computer, although the data file 113 may be stored on any computer or storage device accessible via thenetwork 190, including thelocal computer 110. -
Operation 420 involves generating the document based on the data file 113. For example,operation 420 may involve generating a webpage based on the data file 113.Operation 420 may be performed by theprocessing module 111. -
Operation 430 involves communicating the generated document via thenetwork 190 to theremote computer 150, which may be a client computer. For example,operation 430 may involve communicating a generated webpage to theremote computer 150.Operation 430 may be performed by thecommunication module 112. -
Operation 440 involves receiving a request to update the generated document. For example,operation 440 may involve receiving a request to refresh a portion of a generated webpage. The request may be received from theremote computer 150 via thenetwork 190. For example, a user of theremote computer 150 may originate the request using theuser interface 153 of theremote computer 150, and theremote computer 150 may communicate the request via thenetwork 190 for reception by thelocal computer 110. As another example, the user may originate the request using thebrowser software 152 or theuser interface 153 of the remote computer 150 (e.g., by resizing a browser window, or clicking on a button or tab displayed in the browser window).Operation 440 may be performed by thecommunication module 112. -
Operation 450 involves processing the instruction (e.g., instruction 202). For example, theprocessing module 111 may process the instruction. The processing of the instruction may be performed using a processor of the local computer 110 (e.g., a server computer). According to various example embodiments, the processing of the instruction may be responsive to the request received inoperation 440. -
Operation 460 involves generating a portion of the document. The portion of the document is less than an entirety of the document. For example,operation 460 may involve generating a portion of a generated webpage, where the portion is less than the entire webpage. This operation has the effect of generating constituent data to be provided according to the instruction (e.g., instruction 201).Operation 460 may be performed by theprocessing module 111. -
Operation 470 involves regenerating the generated document based on the data file 113. The regenerated document includes the constituent data to be provided according to the instruction (e.g., instruction 201). For example,operation 470 may involve regenerating a webpage so that the regenerated webpage includes a refreshed portion of the webpage. This operation has the effect of encapsulating the constituent data within the document.Operation 470 may be performed by theprocessing module 111. -
Operation 480 involves providing the constituent data via thenetwork 190 to theremote computer 150 as an update of the generated document. For example,operation 480 may involve providing the generated portion of a generated webpage as a refreshed portion of the webpage, According to various example embodiments, more than one generated portions of a webpage may be provided. In aggregate, these portions may be less than the entirety of the webpage, or they may constitute the entirety of the webpage.Operation 480 may be performed by thecommunication module 112. - In some example embodiments, the data file 113 includes a rule (e.g., rule 202) corresponding to the instruction (e.g., instruction 201). According to certain example embodiments,
operation 450 may involve processing the instruction in accordance with the rule. As noted above, in various example embodiments, more than one rule may correspond to the instruction. Furthermore, as noted above, the data file 113 may include more than one instruction. For example, the data file 113 may include multiple instructions to provide multiple bodies of constituent data (e.g., each instruction is to respectively provide specific constituent data corresponding to that instruction). - Certain example embodiments may provide one or more potential advantages. These potential advantages include, but are not limited to, reducing network traffic involved in communication of entire documents or entire webpages, reducing computational loads on processing hardware involved in refreshing or re-rendering entire documents or entire webpages, and improving the responsiveness or usability of interactive documents or webpages as perceived by a user. Technical problems addressed by these potential advantages include, but are not limited to, delays due to network congestion, delays due to processor loading, and poor usability or responsiveness of interactive documents or webpages as perceived by a user.
-
FIG. 5 illustrates components of an example machine able to read instructions from a machine-readable medium and use a data file (e.g., data file 113) to update a generated document. Specifically,FIG. 5 shows a diagrammatic representation of a machine in the example form of acomputer system 500 within which instructions 524 (e.g., software) for causing the machine to perform any one or more of the methodologies discussed herein may be executed. For example, the machine may include one or more hardware modules configured to perform one or more operations of a method described herein. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, a smartphone, a web appliance, a network router, switch or bridge, or any machine capable of executing instructions 524 (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include a collection of machines that individually or jointly executeinstructions 524 to perform any one or more of the methodologies discussed herein. - The
computer system 500 includes a processor 502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), application specific integrated circuits (ASICs), radio-frequency integrated circuits (RFICs), or any combination of these), amain memory 504, and astatic memory 506, which communicate with each other via abus 508. Thecomputer system 500 may further include a graphics display unit 510 (e.g., a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). Thecomputer system 500 may also include an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse, a trackball, a joystick, a motion sensor, or other pointing instrument), a storage unit 516, a signal generation device 518 (e.g., a speaker), and anetwork interface device 520. - The storage unit 516 includes a machine-
readable medium 522 on which is stored instructions 524 (e.g., software) embodying any one or more of the methodologies or functions described herein. The instructions 524 (e.g., software) may also reside, completely or at least partially, within themain memory 504 or within the processor 502 (e.g., within the processor's cache memory) during execution thereof by thecomputer system 500, themain memory 504 and theprocessor 502 also constituting machine-readable media. The instructions 524 (e.g., software) may be transmitted or received over anetwork 526 via thenetwork interface device 520. - As used herein, the term “memory” refers to a machine-readable medium able to store data temporarily or permanently and may be taken to include, but not be limited to, random-access memory (RAM), read-only memory (ROM), buffer memory, flash memory, and cache memory. While machine-
readable medium 522 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) able to store instructions (e.g., instructions 524). The term “machine-readable medium” shall also be taken to include any medium that is capable of storing instructions (e.g., instructions 524) for execution by the machine and that cause the machine to perform any one or more of the methodologies described herein. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, data repositories in the form of solid-state memories, optical media, and magnetic media. - Throughout this specification, plural instances may implement components, operations, or structures described herein as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented herein as separate components in example configurations may be implemented as a combined structure or component, Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein.
- Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules. A hardware module is tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems e.g., a standalone system, a client computer system, or a server computer system) or one or more hardware modules of a computer system e.g., a processor or a group of processors) may be configured by software (e.g., an application or an application portion) as a hardware module that operates to perform certain operations as described herein.
- In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may include dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as afield programmable gate array (FPC/A) or an application-specific integrated circuit (ARC)) to perform certain operations. A hardware module may also include programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
- Accordingly, the term “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. As used herein, a “hardware-implemented module” is a hardware module. Considering embodiments in which one or more hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where a particular hardware module includes a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
- Hardware modules may provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., via a circuit or bus connecting the hardware modules) between or among the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
- The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, include processor-implemented modules.
- Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
- One or more processors, hardware modules, or processor-implemented modules may also operate to support performance of the relevant operations in a “cloud computing” environment or in a “software as a service” (SaaS) environment. For example, at least some of the operations may be performed by a group of computers as examples of machines including processors), these operations being accessible via a network (e.g., the linternet) and via one or more interfaces e.g., application program interfaces (APIs).)
- The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the one or more processors, hardware modules, or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors, hardware modules, or processor-implemented modules may be distributed across a number of geographic locations.
- Some portions of this specification are presented in terms of algorithms or symbolic representations of operations on data stored as bits or binary digital signals within a machine memory (e.g., a computer memory). These algorithms or symbolic representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. As used herein, an “algorithm” is a self-consistent sequence of operations or similar processing leading to a desired result. In this context, algorithms and operations involve physical manipulation of physical quantities. Typically, but not necessarily, such quantities may take the form of electrical, magnetic, or optical signals capable of being stored, accessed, transferred, combined, compared, or otherwise manipulated by a machine. It is convenient at times, principally for reasons of common usage, to refer to such signals using words such as “data,” “content,” “bits,” “values,” “elements,” “symbols,” “characters,” “terms,” “numbers,” “numerals,” or the like. These words, however, are merely convenient labels and are to be associated with appropriate physical quantities.
- Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or any combination thereof), registers, or other machine components that receive, store, transmit, or display information. Furthermore, unless specifically stated otherwise, the terms “a” or “an” are herein used, as is common in patent documents, to include one or more than one instance. Finally, as used herein, the conjunction “or” refers to a non-exclusive or, unless specifically stated otherwise.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/149,399 US20160255174A1 (en) | 2009-09-11 | 2016-05-09 | Data file and rule driven synchronous or asynchronous document generation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/558,204 US9336319B2 (en) | 2009-09-11 | 2009-09-11 | Data file and rule driven synchronous or asynchronous document generation |
US15/149,399 US20160255174A1 (en) | 2009-09-11 | 2016-05-09 | Data file and rule driven synchronous or asynchronous document generation |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/558,204 Continuation US9336319B2 (en) | 2009-09-11 | 2009-09-11 | Data file and rule driven synchronous or asynchronous document generation |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160255174A1 true US20160255174A1 (en) | 2016-09-01 |
Family
ID=43731677
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/558,204 Active 2032-12-22 US9336319B2 (en) | 2009-09-11 | 2009-09-11 | Data file and rule driven synchronous or asynchronous document generation |
US15/149,399 Abandoned US20160255174A1 (en) | 2009-09-11 | 2016-05-09 | Data file and rule driven synchronous or asynchronous document generation |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/558,204 Active 2032-12-22 US9336319B2 (en) | 2009-09-11 | 2009-09-11 | Data file and rule driven synchronous or asynchronous document generation |
Country Status (1)
Country | Link |
---|---|
US (2) | US9336319B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069638B2 (en) * | 2007-06-11 | 2015-06-30 | Red Hat, Inc. | Update system to synchronize changes from external sources for a java virtual machine |
US9400770B2 (en) * | 2010-12-28 | 2016-07-26 | Elwha Llc | Multi-view graphical user interface for editing a base document with highlighting feature |
CN105760149B (en) * | 2014-12-18 | 2020-05-05 | 阿里巴巴集团控股有限公司 | Client interface dynamic display method and system |
CN106776623B (en) * | 2015-11-23 | 2020-04-21 | 阿里巴巴集团控股有限公司 | User behavior analysis method and device |
CN107451297B (en) * | 2017-08-23 | 2021-04-06 | 北京奇虎科技有限公司 | Webpage display method and device |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020144017A1 (en) * | 2001-03-27 | 2002-10-03 | The Code Corporation | Extensible application interface using machine-readable graphical codes |
US20020161634A1 (en) * | 2001-04-27 | 2002-10-31 | Koninklijke Philips Electronics N.V. | Electronic document with an automatically updated portion |
US20030218633A1 (en) * | 2002-05-23 | 2003-11-27 | Grinshetyn Mikhail | Method and system for data capture with hidden applets |
US6738804B1 (en) * | 2000-09-15 | 2004-05-18 | Yodlee.Com, Inc. | Method and apparatus for enabling sectored data refreshing of Web-site data during session |
US20070006075A1 (en) * | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Independently refreshing portlet content in a portal view |
US20070027754A1 (en) * | 2005-07-29 | 2007-02-01 | Collins Robert J | System and method for advertisement management |
US20080051642A1 (en) * | 2006-08-24 | 2008-02-28 | Hagai Krupnik | Device, system and method of displaying in -vivo images at variable rate |
US20080120368A1 (en) * | 2006-11-18 | 2008-05-22 | International Business Machines Corporation | Client appartus for updating data |
US20080199144A1 (en) * | 1997-04-14 | 2008-08-21 | Thomson Licensing Llc | System and Method for Processing and Decoding MPEG Compatible Data and Internet Information |
US20080244037A1 (en) * | 2007-03-30 | 2008-10-02 | Sony Corporation | Information distribution system, information processing apparatus and method, and information distribution apparatus and method |
US20090106769A1 (en) * | 2007-10-22 | 2009-04-23 | Tomohiro Nakamura | Method and apparatus for recording web application process |
US20090119391A1 (en) * | 2003-05-23 | 2009-05-07 | International Business Machines Corporation | Targeted web page redirection |
US20090150262A1 (en) * | 2007-12-05 | 2009-06-11 | Google Inc. | On-Line Payment Transactions |
US20090248524A1 (en) * | 2008-03-26 | 2009-10-01 | Jonathan Defoy | Systems, methods and apparatus for the display of advertisements in a software application |
US20090282096A1 (en) * | 2008-05-08 | 2009-11-12 | Dialogic Corporation | System and method for monitoring user interface connectivity state |
US20090292984A1 (en) * | 2008-05-21 | 2009-11-26 | Frederic Bauchot | Method and system to selectively secure the display of advertisements on web browsers |
US7640512B1 (en) * | 2000-12-22 | 2009-12-29 | Automated Logic Corporation | Updating objects contained within a webpage |
US20100100585A1 (en) * | 2008-10-19 | 2010-04-22 | Ergin Guney | Web Application Framework Method Enabling the Creation of Applications That Provide an Interface With Clients That Is Independent of Scripting Capability |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917961B2 (en) | 2000-03-30 | 2005-07-12 | Kettera Software, Inc. | Evolving interactive dialog box for an internet web page |
-
2009
- 2009-09-11 US US12/558,204 patent/US9336319B2/en active Active
-
2016
- 2016-05-09 US US15/149,399 patent/US20160255174A1/en not_active Abandoned
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080199144A1 (en) * | 1997-04-14 | 2008-08-21 | Thomson Licensing Llc | System and Method for Processing and Decoding MPEG Compatible Data and Internet Information |
US6738804B1 (en) * | 2000-09-15 | 2004-05-18 | Yodlee.Com, Inc. | Method and apparatus for enabling sectored data refreshing of Web-site data during session |
US7640512B1 (en) * | 2000-12-22 | 2009-12-29 | Automated Logic Corporation | Updating objects contained within a webpage |
US20020144017A1 (en) * | 2001-03-27 | 2002-10-03 | The Code Corporation | Extensible application interface using machine-readable graphical codes |
US20020161634A1 (en) * | 2001-04-27 | 2002-10-31 | Koninklijke Philips Electronics N.V. | Electronic document with an automatically updated portion |
US20030218633A1 (en) * | 2002-05-23 | 2003-11-27 | Grinshetyn Mikhail | Method and system for data capture with hidden applets |
US20090119391A1 (en) * | 2003-05-23 | 2009-05-07 | International Business Machines Corporation | Targeted web page redirection |
US20070006075A1 (en) * | 2005-06-30 | 2007-01-04 | International Business Machines Corporation | Independently refreshing portlet content in a portal view |
US20070027754A1 (en) * | 2005-07-29 | 2007-02-01 | Collins Robert J | System and method for advertisement management |
US20080051642A1 (en) * | 2006-08-24 | 2008-02-28 | Hagai Krupnik | Device, system and method of displaying in -vivo images at variable rate |
US20080120368A1 (en) * | 2006-11-18 | 2008-05-22 | International Business Machines Corporation | Client appartus for updating data |
US8312077B2 (en) * | 2006-11-18 | 2012-11-13 | International Business Machines Corporation | Client apparatus for updating data |
US20080244037A1 (en) * | 2007-03-30 | 2008-10-02 | Sony Corporation | Information distribution system, information processing apparatus and method, and information distribution apparatus and method |
US20090106769A1 (en) * | 2007-10-22 | 2009-04-23 | Tomohiro Nakamura | Method and apparatus for recording web application process |
US20090150262A1 (en) * | 2007-12-05 | 2009-06-11 | Google Inc. | On-Line Payment Transactions |
US20090248524A1 (en) * | 2008-03-26 | 2009-10-01 | Jonathan Defoy | Systems, methods and apparatus for the display of advertisements in a software application |
US20090282096A1 (en) * | 2008-05-08 | 2009-11-12 | Dialogic Corporation | System and method for monitoring user interface connectivity state |
US20090292984A1 (en) * | 2008-05-21 | 2009-11-26 | Frederic Bauchot | Method and system to selectively secure the display of advertisements on web browsers |
US20100100585A1 (en) * | 2008-10-19 | 2010-04-22 | Ergin Guney | Web Application Framework Method Enabling the Creation of Applications That Provide an Interface With Clients That Is Independent of Scripting Capability |
Also Published As
Publication number | Publication date |
---|---|
US9336319B2 (en) | 2016-05-10 |
US20110066935A1 (en) | 2011-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8949739B2 (en) | Creating and maintaining images of browsed documents | |
US9037975B1 (en) | Zooming interaction tracking and popularity determination | |
US9360988B2 (en) | Browsing and quality of service features | |
KR102132137B1 (en) | Custom optimization of web pages | |
US20160255174A1 (en) | Data file and rule driven synchronous or asynchronous document generation | |
US10769353B2 (en) | Dynamic streaming content provided by server and client-side tracking application | |
CN108347648B (en) | Dynamic adjustment of video quality | |
US10521485B1 (en) | Measuring page value | |
TWI590157B (en) | Compressed serialization of data for communication from a client-side application | |
CN109408752B (en) | Online document display method and device and electronic equipment | |
US9680897B2 (en) | Throttled scanning for optimized compression of network communicated data | |
US8903931B1 (en) | Methods for generating e-mail message interfaces | |
CN109992715B (en) | Information display method, device, medium and computing equipment | |
JP2019537772A (en) | Method and system for delivering content in real time | |
CN109948084B (en) | Webpage information display method, device, medium and computing equipment | |
CN110162350B (en) | Notification bar information display method, notification bar information display device, server and storage medium | |
US10645191B1 (en) | User controlled composition of content | |
JP2018155960A (en) | Information display program, information display method, and distribution device | |
US10440144B2 (en) | Near real time notifications distribution platform | |
JP6158903B2 (en) | Information display program, information display device, information display method, and distribution device | |
CN114880562A (en) | Method and device for recommending information | |
CN109460525B (en) | Method, device, medium and computing equipment for displaying news-letter articles | |
US11288336B2 (en) | Systems and methods for providing content items in situations involving suboptimal network conditions | |
US10936683B2 (en) | Content generation and targeting | |
US20180285929A1 (en) | Providing sponsored content items in conjunction with a presentation of a media content item |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: EBAY INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SINHA, SUCHISUBHRA;MISTRY, RAVI KETANKUMAR;HEISTERBERG, RICHARD H.;AND OTHERS;SIGNING DATES FROM 20090901 TO 20090905;REEL/FRAME:038513/0831 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
STCV | Information on status: appeal procedure |
Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER |
|
STCV | Information on status: appeal procedure |
Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION |