WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method for storing data in an interactive computer network    
United States Patent5442771   
Link to this pagehttp://www.wikipatents.com/5442771.html
Inventor(s)Filepp; Robert (Springfield, NJ); Gordon; Michael L. (Dobbs Ferry, NJ); Bidwell; Alexander W. (New York, NY); Wolf; Allan M. (Ridgefield, CT); Young; Francis C. (Pearl River, NY); Tiemann; Duane (Ossining, NY); Appleman; Kenneth H. (White Plains, NY); Meo; Sam (New York, NY)
AbstractA method for storing data in an interactive computer network is described. In preferred form, the method features steps for establishing data stores of prescribed capacities within a network for delivering an interactive service. The stored data is used in presenting the applications that makeup the service. The method features steps for associating storage control parameters with the application data to be stored and supplying data to the respective stores in excess of their respective capacities. The method includes steps for retaining data at the stores based on the respective prescribed storage control parameters and the date usage experience at the respective stores. In preferred form, the method features steps for providing the data stores with a temporary cache for storing data during a data use session and a variable-content, permanent, file for retaining data between data use sessions. The method configures the cache from available RAM and a prescribed disk file, and the stage from a content-variable, permanent disk file. Data is retained at the cache and subsequently at the stage based on control parameters associated with the data identification, storage candidacy and version, as combined with a least-recently-used criterion. Accordingly, over multiple use sessions, the stage self-configures with data tailored to use experience. Also in the preferred form of the method described, the data is arranged as objects having a header including the storage control parameters.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5442771
Method for storing data in an interactive computer network - US Patent 5442771 Drawing
Method for storing data in an interactive computer network
Inventor     Filepp; Robert (Springfield, NJ); Gordon; Michael L. (Dobbs Ferry, NJ); Bidwell; Alexander W. (New York, NY); Wolf; Allan M. (Ridgefield, CT); Young; Francis C. (Pearl River, NY); Tiemann; Duane (Ossining, NY); Appleman; Kenneth H. (White Plains, NY); Meo; Sam (New York, NY)
Owner/Assignee     Prodigy Services Company (White Plains, NY)
Patent assignment
All assignments
Publication Date     August 15, 1995
Application Number     08/158,033
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 26, 1993
US Classification     709/219 709/203 709/220 709/226 711/160 711/171 715/501.1 717/171
Int'l Classification     G06F 013/14
Examiner     Robertson; David L.
Assistant Examiner    
Attorney/Law Firm     Scifo; Paul C.
Address
Parent Case     RELATED APPLICATIONS This is a division of application Ser. No. 388,156 filed Jul. 28, 1989, which issued Sep. 13, 1994, as U.S. Pat. No. 5,347,632, application Ser. No. 388,156 being a continuation in part of application Ser. No. 328,790, filed Mar. 23, 1989 now abandoned, which itself was a continuation in part of application Ser. No. 219,931, filed Jul. 15, 1988 now abandoned.
Priority Data    
USPTO Field of Search     395/400 395/425
Patent Tags     storing data interactive computer network
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4751635
Kret
707/10
Jun,1988

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What we claim is:

1. Method for storing data in a computer network, the network including a multiplicity of user reception systems at which respective users can request applications during user sessions, the application being generated from the data, the method comprising the steps of:

a. establishing data stores within the network from which data may be obtained for generating the applications during data usage sessions;

b. associating storage control parameters with the data to be stored, the control parameters dictating predetermined eligibility of the data for storage at the data stores;

c. supplying data to the respective stores for use in generating applications; and

d. retaining data at the stores based on at least the eligibility for storage dictated by the respective storage control parameters.

2. The method of claim 1 wherein associating storage control parameters with the data includes providing a data identification parameter.

3. The method of claim 2 wherein establishing the date stores includes providing the respective stores with a prescribed capacity, and supplying data to the stores includes supplying data in excess of capacity and deleting data on a least-recently-used basis such that retaining data at the respective stores may be determined by the control parameters and by data usage experience.

4. The method of claim 3 wherein associating storage control parameters with the data includes providing a data storage candidacy parameter in addition to the data identification parameter, and wherein retaining data at the respective stores may be determined by respective data storage candidacy parameter and the data usage experience.

5. The method of claim 4 wherein establishing the data stores includes providing first store portions for maintaining data during respective data usage sessions and providing second store portions for maintaining data during and between respective data usage session.

6. The method of claim 5 wherein establishing the data stores includes providing first store portions as a temporary cache, and providing the second store portion as a fixed stage.

7. The method of claim 6 wherein establishing the data stores includes providing the respective temporary caches as file element in a volatile memory element, and providing the respective fixed stages as file elements in a nonvolatile memory element.

8. The method of claim 5 wherein associating storage control parameters with the data includes providing the storage candidacy parameter with a range of values.

9. The method of claim 8 wherein providing the storage candidacy parameter with a range of values includes providing lower storage candidacy parameter values dependent on data sensitive to time.

10. The method of claim 9 wherein associating storage control parameters with the data further includes providing a version control parameter that indicates data currency.

11. The method of claim 10 wherein associating storage control parameters with the data includes providing the candidacy parameter with a range that includes a value which prevents the data from being stored.

12. The method of claim 10 wherein associating storage control parameters with the data includes providing the storage candidacy parameter with a range that includes a value which permits the data to be stored only during data usage session.

13. The method of claim 10 wherein associating storage control parameters with the data includes providing the storage candidacy parameter with a range that includes a value which permits the data to be stored between respective usage sessions.

14. The method of claim 13 wherein retaining data at the stores based on the respective storage control parameters includes retaining the data between data usage sessions independent of the most-recently-used deletion condition.

15. The method of claim 1 wherein establishing data stores at the respective reception systems includes setting the stores respective capacities dependent on the respective reception system storage capacity and the currency requirements of the data.

16. Method for storing data in a computer network, the network including a multiplicity of user reception systems at which respective users can request applications during user sessions, the application being generated from the data, the method comprising the steps of:

a. establishing data stores of prescribed capacities at the respective reception systems, the stores including first portions maintained during respective user sessions and second portion maintained during and between respective user sessions;

b. associating storage control parameters with the data to be stored;

c. supplying data to the stores for use at the respective reception systems in excess of the store capacity and deleting data from the stores on a least-recently-used basis such that the data retained at the stores between respective user sessions will be determined by the storage control parameters of the data and the usage experience at the respective reception systems.

17. The method of claim 16 wherein establishing the data stores includes providing the first store portions as caches and the second store portions as stages.

18. The method of claim 17 wherein establishing the data stores includes providing the store caches in volatile memory and the store stages in nonvolatile memory.

19. The method of claim 18 wherein associating storage control parameters with the data includes providing the storage candidacy parameter with a range of values.

20. The method of claim 19 wherein associating storage control parameters with the data further includes providing a version control parameter that indicates data currency.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

2. Field of Use

This invention relates generally to a method for storing data in a distributed processing, interactive computer network intended to provide very large numbers of simultaneous users; e.g. millions, access to an interactive service having large numbers; e.g., thousands, of applications which include pre-created, interactive text/graphic sessions; and more particularly, to a method for storing data used in generating such applications, the method featuring steps for establishing data stores, the stores including first store portions maintained during data usage sessions and second store portions maintained during and between data usage sessions, the method also featuring steps for associating storage control parameters with the data, steps for supplying data to the stores in excess of store capacity, and steps for deleting data from the stores on a least-recently-used basis, so that data is retained at the stores dependent on the storage control parameters and data usage experience.

2. Prior Art

Interactive computer networks are not new. Traditionally they have included conventional, hierarchical architectures wherein a central, host computer responds to the information requests of multiple users. An illustration would be a time-sharing network in which multiple users, each at a remote terminal, log onto a host that provides data and software resource for sequentially receiving user data processing requests, executing them and supplying responses back to the users.

While such networks have been successful in making the processing power of large computers available to many users, problems have existed with them. For example, in such networks, the host has been required to satisfy all the user data processing requests. As a result, processing bottlenecks arise at the host that cause network slowdowns and compel expansion in computing resources; i.e., bigger and more complex computer facilities, where response times are sought to be held low in the face of increasing user populations.

Host size and complexity, however, are liabilities for interactive networks recently introduced to offer large numbers of the public access to transactional services such as home shopping, banking, and investment maintenance, as well as informational services concerning entertainment, business and personal matters.

As can be appreciated, commercial interactive networks will have to provide attractive services at low cost and with minimal response times in order to be successful. Unlike military and governmental networks where, because of the compulsory nature of the service performed, costs, content and efficiency are of secondary concern, in commercial services, since use is predominantly elective, and paid for by the consumer, costs will have to be held low, content made interesting and response times reduced in order to attract and hold both users who would subscribe to the service and merchandisers who would rely on it as a channel of distribution for their good and services. Accordingly, and as will be appreciated, the ability of the network to rapidly satisfy large numbers of user requests with minimal resources is fundamental to the ultimate success of the network.

As pointed out in our parent application, Ser. No. 388,156 filed Jul. 28, 1989, now issued as U.S. Pat. No. 5,347,632, breakthrough performance improvement, essential to the feasibility of broad-based, interactive services can be realized by storing application data local to the user sites and relying on the user site computing resources to manage the interactive session. As more fully described in our parent application, by locating application data closer to the user, for example, at the user terminal configured as a reception system and/or a concentrator facility hierarchically disposed between the reception system and the service host, line traffic and associated response time that would otherwise be required to retrieve data from a conventional, time-share host can be substantially reduced. Further, since the host and concentrator computers of the reception-system based systems we described can be configured as server facilities, they can be provided substantially less expensively than conventionally time-share hosts, thereby, reducing the capital and operating costs required for the service.

However, formulating storage facilities for use in such a network is not without significant problems. As will be appreciated, the amount of storage capacity available at conventional user sites, and for that matter, concentrator facilities, is limited. Accordingly, because of capacity limitations, it would not be physically and economically practical to attempt to store the entire service database at the reception system or concentrator sites. Further, even if storage capacity sufficient to accommodate substantial portions, if not all, of the service database could be provided, the need to maintain the application data current would foreclose storing all data locally or at the concentrator. As will be appreciated, the data for numerous applications of a successful interactive service must remain current for the service to be commercially viable. News stories, stock quotes, prices of goods, as well as items like airline and entertainment seating and scheduling are all time sensitive and must be regularly updated to avoid inconvenience and potential legal liability. Accordingly, even if all data could be provided locally, it would be unwise and objectionable to do so.

SUMMARY OF INVENTION

Accordingly, it is an object of this invention to provide a method for storing data in an interactive-service network.

It is another object of this invention to provide a method for storing data in an interactive-service network, which method reduces communication line traffic required to support the service at user sites.

It is still another object of this invention to provide a method for storing data in an interactive-service network, which method allows adequate amounts of data to be stored in limited-capacity storage facilities.

It is yet another object of this invention to provide a method for storing data in an interactive-service network, which method allows for maintaining currency of the data used to present applications.

It is a again a further object of this invention to provide a method for storing data in an interactive-service network which method automatically configures the data stores to include data tailored to the service usage experience.

Briefly, the method for storing data in accordance with this invention achieves the above-noted and other objects by featuring steps for establishing data stores of prescribed capacities within the network from which data may be obtained for generating the service applications during user sessions. Further, the method features steps for associating storage control parameters with the application data to be stored and supplying data to the respective stores in excess of their respective capacities. Yet further, the method features steps for retaining data at the stores based on the respective prescribed storage control parameters and the date-usage experience at the respective stores.

In accordance with the invention, data stores are established within the service network, preferably at least at the user reception system, and, if provided, also at network concentrator facilities hierarchically located between the reception system and the network host. The size of the respective stores depends on the available resources; i.e., RAM and disk memory, and is allocated between a temporary cache and variable-content permanent stage, the cache being provided at available RAM and a fixed disk file, and the stage being configured as a variable-content, fixed disk file. In accordance with the invention, data stored during a data-use session; e.g., a user interactive session, is stored at the cache distributed between RAM and the cache disk file, while data retained between data-use sessions is stored at the stage permanent disk file.

As a further feature of the invention, data is supplied to the respective stores in excess of their respective capacities, and in preferred form excess data is deleted in accordance with a least-recently-used criterion and storage candidacy conditions ascribed to the data. Still further, in preferred form a version storage control parameter may also be applied.

In operation, as data is supplied to the store; for example, a reception system store during a user interactive session, data is retained at the store based on the available cache space within the store; i.e., reception system available RAM and designated disk file. Particularly, data items designated by a data identification number are placed on a list of recently called data items, the most recently called items being at the top of the list. As new data is called, it pushes previously called data down on the list, with the result that a data item pushed below the list capacity forfeits its presence on the list if not recalled before being pushed off. If data is recalled during a session, it once more is promoted to the top of the data list. At the end of a session, data items at the cache are written to a stage least-recently-used list, the stage retaining data items between sessions in the same fashion the cache retains data during a session. The result is, over a series of sessions, the stage automatically configures itself; i.e., self-configures, with the data most often called. And, as will be appreciated, where the most frequently called data is retained, the efficiency of the limited capacity store to reduce response time is maximized; i.e., need for line data requests is minimized by having data tailored to the user readily available.

Also in accordance with the invention, to insure currency is maintained for time-sensitive data; as for example, data relating to news, pricing, availability, etc., storage candidacy and version control parameters are impressed on the data to avoid storage of data considered too sensitive to be maintained on a least-recently-used basis alone. In preferred form, a range of storage candidacy values are provided and ascribed to the data that dictate whether the respective data can be stored beyond the user session or between user sessions. In this regard, multiple storage qualifying categories can be established with a combination of control parameters concerning data version, storage candidacy value and application of the least-recently-used criterion above described.

Yet further, in preferred form, the application data is organized as objects having a header with one or more data segments, the header being formulated to include the data identification, storage candidacy, and version storage control parameters. Still further, in accordance with the preferred form, the storage method may be applied to all levels of storage in the interactive-service network; i.e., reception system, concentrator facility and host.

DESCRIPTION OF THE DRAWINGS

The above and further objects, features and advantages of the invention will become clear from the following more detailed description when read with reference to the accompanying drawings in which:

FIG. 1 is a block diagram of the interactive computer network in which the data-storage method of the present invention may be employed;

FIG. 2 is a schematic diagram of the network illustrated in FIG. 1;

FIG. 3a and 3b are plan views of a display screen for a user reception system employed in a network in which the data-storage method of the present invention may be practiced;

FIGS. 4a, 4b and 4c are schematic drawings that illustrate the structure of objects, and object segments that may be used in a network in which the data-storage method of the present invention may be employed;

FIG. 5 is a schematic diagram that illustrates major layers for a reception system which might be used for supporting applications in a network in which the data-storage method of the present invention may be practiced;

FIG. 6 is a block diagram that illustrates native code modules for a reception system which might be used for supporting applications in a network in which the data-storage method of the present invention may be practiced;

DESCRIPTION OF THE PREFERRED EMBODIMENT

General System Description

FIGS. 1 and 2 show a network in which the method of the present invention for storing data might be used. As seen the network, designated 10, and described more fully in U.S. Pat. No. 5,347,632, the contents of which are incorporated herein by reference, includes a plurality of reception units within a reception layer 401 for displaying information and providing transactional services. In this arrangement, many users each access network 10 with a conventional personal computer; e.g., one of the IBM or IBM-compatible type, which has been provided with application software to constitute a reception system (RS) 400.

As seen in FIG. 1, interactive network 10 uses a layered structure that includes an information layer 100, a switch/file server layer 200, and cache/concentrator layer 300 as well as reception layer 401. This structure maintains active application databases and delivers requested parts of the databases on demand to the plurality of RSs 400, shown in FIG. 2. As seen in FIG. 2, cache/concentrator layer 300 includes a plurality of cache/concentrator units 302, each or which serve a plurality of RS 400 units over lines 301. Additionally, switch/file server layer 200 is seen to include a server unit 205 connected to multiple cache/concentrator units 302 over lines 201. Still further, server unit 205 is seen to be connected to information layer 100 and its various elements, which act as means for producing, supplying and maintaining the network databases and other information necessary to support network 10. Continuing, switch/filer layer 200 is also seen to include gateway systems 210 connected to server 205. Gateways 210 couple layer 200 to other sources of information and data; e.g., other computer systems. As will be appreciated by those skilled in the art, layer 200, like layers 401 and 300, could also include multiple servers, gateways and information layers in the event even larger numbers of users were sought to be served.

RS 400 formulated in this fashion is capable of communication with the host system to receive information containing either of two types of data, namely objects and messages. Objects have a uniform, self-defining format known to RS 400, and include data types, such as interpretable programs and presentation data for display at monitor screen 414 of the user's personal computer 405. Applications presented at RS 400 are partitioned into objects which represent the minimal units available from the higher levels of interactive network 10 or RS 400. In this arrangement, each application partition typically represents one screen or a partial screen of information, including fields filled with data used in transactions with network 10. Each such screen, commonly called a page, is represented by its parts and is described in a page template object, discussed below.

Applications, having been partitioned into minimal units, are available from higher elements of network 10 or RS 400, and are retrieved on demand by RS 400 for interpretive execution. Thus, not all partitions of a partitioned application need be resident at RS 400 to process a selected partition, thereby raising the storage efficiency of the user's RS 400 and minimizing response time. Each application partition is an independent, self-contained unit and can operate correctly by itself. Each partition may refer to other partitions either statically or dynamically. Static references are built into the partitioned application, while dynamic references are created from the execution of program logic using a set of parameters, such as user demographics or locale.

Objects provide a means of packaging and distributing partitioned applications. As noted, objects make up one or more partitioned applications, and are retrieved on demand by a user's RS 400 for interpretive execution and selective storage. All objects are interpreted by RS 400, thereby enabling applications to be developed independently of the personal computer brand used.

Objects may be nested within one another or referenced by an object identifier (object-id) from within their data structure. References to objects permit the size of objects to be minimized. Further, the time required to display a page is minimized when, in accordance with the method of the present invention, referenced objects are stored locally at RS 400 (which storage is determined by prior usage meeting certain retention criteria to be described more fully below), or have been pre-fetched, or in fact, are already used for the current page.

RS 400 includes a means to communicate with network 10 to retrieve objects in response to events occurring at RS 400 and to send and receive messages.

In accordance with the method of the present invention, RS 400 includes a means to selectively store objects according to a predetermined storage criterion, thus enabling frequently used objects to be stored locally at the RS, and causing infrequently used objects to forfeit their local storage location. The currency of objects stored locally at the RS 400 is verified before use according to the object's storage control parameters and the storage criterion in use for version checking.

Selective storage tailors the contents of the RS 400 memory to contain objects representing all or significant parts of partitioned applications favored by the user. Because selective storage of objects is local, response time is reduced for those partitioned applications that the user accesses most frequently.

Since much of the application processing formerly done by a host computer in previously known time-sharing networks is now performed at the user's RS 400, the higher elements of network 10, particularly layer 200, has as their primary functions the routing of messages, serving of objects, and line concentration. The narrowed functional load of the higher network elements permits many more users to be serviced within the same bounds of computer power and I/O capability of conventional host-centered architectures.

SYSTEM CONFIGURATION

As shown in FIG. 1, interactive computer network 10 includes four layers: information layer 100, switch and file server layer 200, concentrator layer 300, and reception layer 401.

There are two types of information in the network 10 which are utilized by the RS 400: objects and messages.

Objects include the information requested and utilized by the RS 400 to permit a user to select specific parts of applications, control the flow of information relating to the applications, and to supply information to the network. Objects are self-describing structures organized in accordance with a specific data object architecture, described below. Objects are used to package presentation data and program instructions required to support the partitioned applications and advertising presented at a RS 400. Objects are distributed on demand throughout interactive network 10. Objects may contain: control information; program instructions to set up an application processing environment and to process user or network created events; information about what is to be displayed and how it is to be displayed; references to programs to be interpretively executed; and references to other objects, which may be called based upon certain conditions or the occurrence of certain events at the user's personal computer, resulting in the selection and retrieval of other partitioned applications packaged as objects.

Messages are information provided by the user or the network and are used in fields defined within the constructs of an object, and are seen on the user's RS monitor 412, or are used for data processing at RS 400. Additionally, and as more fully described hereafter, messages are the primary means for communication within and without the network. The format of messages is application dependent. If the message is input by the user, it is formatted by the partitioned application currently being processed on RS 400. Likewise, and with reference to FIG. 2, if the data are provided from a co-application database residing in delivery system 20, or accessed via gateway 210 or high function system 110 within the information layer 100, the partitioned application currently being processed on RS 400 causes the message data to be displayed in fields on the user's display monitor as defined by the particular partitioned application.

All active objects reside in file server 205. Inactive objects or objects in preparation reside in producer system 120. Objects recently introduced into delivery system 20 from the producer system 120 will be available from file server 205, but, may not be available on cache/concentrator 302 to which the user's RS 400 has dialed. If such objects are requested by the RS 400, the cache/concentrator 302 automatically requests the object from file server 205. The requested object is routed back to the requesting cache/concentrator 302, which automatically routes it to the communications line on which the request was originally made, from which it is received by the RS 400.

The RS 400 is the point of application session control because it has the ability to select and randomly access objects representing all or part of partitioned applications and their data. RS 400 processes objects according to information contained therein and events created by the user on personal computer 405.

Applications on network 10 act in concert with the distributed partitioned applications running on RS 400. Partitioned applications constructed as groups of objects and are distributed on demand to a user's RS 400. An application partition represents the minimum amount of information and program logic needed to present a page or window, i.e. portion of a page presented to the user, perform transactions with the interactive network 10, and perform traditional data processing operations, as required, including selecting another partitioned application to be processed upon a user generated completion event for the current partitioned application.

In accordance with the invention, objects representing all or part of partitioned applications may be stored in a user's RS 400 if the objects meet certain criteria, such as being non-volatile, noncritical to network integrity, or if they are critical to ensuring reasonable response time. Such objects are either provided on diskettes 426 together with RS 400 system software used during the installation procedure or they are automatically requested by RS 400 when the user makes selections requiring objects not present in RS 400. In the latter case, RS 400 requests from cache/concentrator layer 300 only the objects necessary to execute the desired partitioned application.

APPLICATIONS AND PAGES

Applications, i.e. information events, are composed of a sequence of one or more pages opened at screen 414 of monitor 412. This is better seen with reference to FIG. 3a and 3b were a page 255 is illustrated as might appear at screen 414 of monitor 412. With reference to FIG. 3a, each page 255 is formatted with a service interface having page partitions 250, 260, 280, and 290 (not to be confused with application partitions). Window page partitions 275, well known in the art, are also available and are opened and closed conditionally on page 255 upon the occurrence of an event specified in the application being run. Each page partition 250, 260, 280 and 290 and window 275 is made up of a page element which defines the content of the partition or window.

NETWORK OBJECTS

As noted above, in conventional time-sharing computer networks, the data and program instructions necessary to support user sessions are maintained at a central host computer. However, that approach has been found to create processing bottlenecks as greater numbers of users are connected to the network; bottlenecks which require increases in processing power and complexity; e.g., multiple hosts of greater computing capability, if the network is to meet demand. Further, such bottlenecks have been found to also slow response time as more users are connected to the network and seek to have their requests for data processing answered.

The consequences of the host processing bottlenecking is to either compel capital expenditures to expand host processing capability, or accept longer response times; i.e., a slower network, and risk user dissatisfaction.

However, even in the case where additional computing power is added, and where response time is allowed to increase, eventually the host becomes user saturated as more and more users are sought to be served by the network. The network described above, however, is designed to alleviate the effects of host-centered limitations, and extend the network saturation point. This objective is achieved by reducing the demand on the host for processing resources by structuring the network so that the higher network levels act primarily to maintain and supply data and programs to the lower levels of the network, particularly RS 400, which acts to manage and sustain the user screen displays.

More particularly, the described network features procedures for parsing the network data and program instructions required to support the interactive user sessions into packets, referred to as objects, and distributing them into the network where they can be stored and processed at lower levels, particularly, reception system 400.

As shown in FIG. 4c, the network objects are organized as a family of objects each of which perform a specific function in support of the interactive session. More particularly, the network object family is seen to include 6 members: page format objects 502, page element objects 504, window objects 506, program objects 508, advertisement objects 510 and page template objects 500.

Objects 500 to 510 shown in FIG. 4c are themselves made up of further sub-blocks of information that may be selectively collected to define the objects and resulting pages that ultimately constitute the application presented to the user in an interactive text and graphic session.

More specifically and as shown schematically in FIG. 4a, objects 500 to 510 are predefined, variable length records consisting of a fixed length header 551 and one or more self-defining record segments 552 a list of which is presented in FIG. 4c as segment types 512 to 540.

In accordance with this design, and as shown in FIG. 4b, object header 551 in preferred form is 18 bytes in length and contains a prescribed sequence of information which provides data regarding the object's identification, its anticipated use, association to other objects, its length and its version and currency.

More particularly, each of the 18 bytes of object header 551 are conventional hexadecimal, 8 bit bytes and are arranged in a fixed pattern to facilitate interpretation by network 10. Particularly, and as shown in FIG. 4b, the first byte of header 551; i.e., byte 1, identifies the length of the object ID in hexadecimal. The next six bytes; i.e., bytes 2 to 7, are allocated for identifying access control to the object so as to allow creation of closed user groups to whom the object(s) is to be provided. As will be appreciated by those skilled in the art, the ability to earmark objects in anticipation of user requests enables the network to anticipate requests and pre-collect objects from large numbers of them maintained to render the network more efficient and reduce response time. The following 4 bytes of header 551; bytes 8 to 11, are used to identify the set of objects to which the subject object belongs. In this regard, it will be appreciated that, again, for speed of access and efficiency of selection, the objects are arranged in groups or sets which are likely to be presented to user sequentially in presenting the page sets; i.e., screens that go to make up a session.

Following identification of the object set, the next byte in header 551; i.e., byte 12, gives the location of the subject object in the set. As will be appreciated here also the identification is provided to facilitate ease of object location and access among the many thousands of objects that are maintained to, thereby, render their selection and presentation more efficient and speedy.

Thereafter, the following byte of header 551; i.e., byte 13, designates the object type; e.g., page format, page template, page element, etc. Following identification of the object type, two bytes; i.e., bytes 14, 15, are allocated to define the length of the object, which may be of whatever length is necessary to supply the data necessary, and thereby provides great flexibility for creation of the screens. Thereafter, in accordance with the preferred form of the invention, a single byte; i.e., byte 16, is allocated to identify the storage characteristic for the object; i.e., the criterion which establishes at what level in network 10 the object will be stored, and the basis upon which it will be updated. At least a portion of this byte; i.e, the higher order nibble (first 4 bits reading from left to right) is associated with the last byte; i.e., byte 18, in the header which identifies the version of the object, a control used in determining how often in a predetermined period of time the object will be updated by the network.

Following storage characteristic byte 16, header 551 includes a byte; i.e., 17, which identifies the number of objects in the set to which the subject object belongs. Finally, and as noted above, in accordance with the invention, header 551 includes a byte; i.e., 18, which identifies the version of the object. Particularly the object version is a number to establish the control for the update of the object that are resident at RS 400.

As shown in FIG. 4a, and as noted above, in addition to header 551, the object includes one more of the various segment types shown in FIG. 4c.

Segments 512 to 540 are the basic building blocks of the objects. And, as in the case of the object, the segments are also self-defining. As will be appreciated by those skilled in the art, by making the segments self-defining, changes in the objects and their use in the network can be made without changing pre-existing objects.

As in the case of objects, the segments have also been provided with a specific structure. Particularly, and as shown in FIG. 4a, segments 552 consists of a designation of segment type 553, identification of segment length 554, followed by the information necessary to implement the segment and its associated object 555; e.g., either, control data, display data or program code.

In this structure, segment type 553 is identified with a one-byte hexadecimal code which describes the general function of the segment. Thereafter, segment length 554 is identified as a fixed two-byte long field which carries the segment length as a hexadecimal number in INTEL format; i.e., least significant byte first. Finally, data within segments may be identified either by position or keyword, depending on the specific requirements of the segment.

NETWORK MESSAGES

In addition to the network objects, and the display data, control data, and the program instructions they contain as previously described, network 10 also exchanges information regarding the support of user sessions and the maintenance of the network as "messenger". Specifically, messages typically relate to the exchange of information associated with initial logon of a reception system 400 to network 10, dialogue between RS 400 and other elements and communications by the other network elements amongst themselves.

To facilitate message exchange internally, and through gateway 210 to entities externally to network 10, a protocol termed the "Data Interchange Architecture" (DIA) is used to support the transport and interpretation of information. More particularly, DIA enables: communications between RS 400 units, separation of functions between network layers 100, 200, 300 and 401; consistent parsing of data; an "open" architecture for network 10; downward compatibility within the network; compatibility with standard industry protocols such as the IBM System Network Architecture; Open Systems Interconnections standard; support of network utility sessions; and standardization of common network and application return codes.

Thus DIA binds the various components of network 10 into a coherent entity by providing a common data stream for communications management purposes. DIA provides the ability to route messages between applications based in IBM System Network Architecture (SNA), (well known in the art, and more fully described in Data and Computer communications, by W. Stallings, Chapter 12, McMillian Publishing, Inc. (1985)) and non-SNA reception system applications; e.g. home computer applications. Further, DIA provides common data structure between applications run at RS 400 units and applications that may be run on external computer networks; e.g. Dow Jones Services, accessed through gateway 210. As well, DIA provides support for utility sessions between backbone applications run within network 10. A more detailed description of network messaging in provided in parent application Ser. No. 388,156 now issued Sep. 13, 1994 as U.S. Pat. No. 5,347,632, the contents of which patent are incorporated herein by reference.

OBJECT LANGUAGE

In accordance with the design of network 10, in order to enable the manipulation of the network objects, the application programs necessary to support the interactive text/graphic sessions are written in a high-level language referred to as "TBOL", (TRINTEX Basic Object Language, "TRINTEX" being the former company name of one of the assignees of this invention). TBOL is specifically adapted for writing the application programs so that the programs may be compiled into a compact data stream that can be interpreted by the application software operating in the user personal computer, the application software being designed to establish the network Reception System 400 previously noted and described in more detail hereafter.

The Reception System application software supports an interactive text/graphics sessions by managing objects. As explained above, objects specify the format and provide the content; i.e., the text and graphics, displayed on the user's screen so as to make up the pages that constitute the application. As also explained, pages are divided into separate areas called "partitions" by certain objects, while certain other objects describe windows which can be opened on the pages. Further, still other objects contain TBOL application programs which facilitate the data processing necessary to present the pages and their associated text and graphics.

As noted, the object architecture allows logical events to be specified in the object definitions. An example of a logical event is the completion of data entry on a screen; i.e., an application page. Logical events are mapped to physical events such as the user pressing the <ENTER> key on the keyboard. Other logical events might be the initial display of a screen page or the completion of data entry in a field. Logical events specified in page and window object definitions can be associated with the call of TBOL program objects.

RS 400 is aware of the occurrence of all physical events during the interactive text/graphic sessions. When a physical event such as depression of the forward <TAB> key corresponds to a logical event such as completion of data entry in a field, the appropriate TBOL program is executed if specified in the object definition. Accordingly, the TBOL programs can be thought of as routines which are given control to perform initialization and post-processing application logic associated with the fields, partitions and screens at the text/graphic sessions.

RS 400 run time environment uses the TBOL programs and their high-level key-word commands called verbs to provide all the system services needed to support a text/graphic session, particularly, display management, user input, local and remote data access.

TBOL programs have a structure that includes three sections: a header section in which the program name is specified; a data section in which the data structure the program will use are defined; and a code section in which the program logic is provided composed of one or more procedures. More specifically, the code section procedures are composed of procedure statements, each of which begins with a TBOL key word called a verb.

The name of a procedure can also be used as the verb in a procedure statement exactly as if it were a TBOL key-word verb. This feature enables a programmer to extend the language vocabulary to include customized application-oriented verb commands.

Continuing, TBOL programs have a program syntax that includes a series of "identifiers" which are the names and labels assigned to programs, procedures, and data structures.

An identifier may be up to 31 characters long; contain only uppercase or lowercase letters A through Z, digits 0 through 9, and/or the special character