Identifying, processing and caching object fragments in a web environment
First Claim
1. A method for identifying object fragments in an object, said method comprising the steps of:
- analyzing an object description to identify one or more persistent object fragments associated with the object;
creating the one or more persistent object fragments, in response to said analyzing; and
creating a persistent object fragment identity for a persistent object fragment, based on one or more of;
formal descriptors; and
an object fragment property.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus and computer program product for identifying and creating persistent object fragments from a named object. For example, a digital content description of a named digital object can be dynamically parsed, and persistent fragment identities created and maintained to facilitate caching. Named digital objects include but are not limited to: Web pages described in XML, SGML, and HTML. The object description is revised by replacing each object fragment with its newly created persistent identity. The revised object description is then sent to the requesting node. Depending upon the properties of a fragment, this can either enable the fragment or the revised object description to be cacheable at the server and/or client device. For example, the object description can include a dynamic part which would otherwise prevent the object from being cached. The dynamic part can be recognized and treated as a separate fragment from the object description. Thus the revised document becomes static and therefore cacheable. Furthermore, fragments can be nested. Other features determine which part/segment of a named object to recognize as a fragment identity, based on its properties including: size; processing cost; and static vs. dynamic. Yet other features can determine which fragments to cache and replace, for example based on the fragment size and processing cost. Still other features allow different versions to be generated for a fragment upon request. The version created can be determined by the property of the requesting devices (e.g., handheld device or Internet appliance) and the fragment description.
263 Citations
64 Claims
-
1. A method for identifying object fragments in an object, said method comprising the steps of:
-
analyzing an object description to identify one or more persistent object fragments associated with the object;
creating the one or more persistent object fragments, in response to said analyzing; and
creating a persistent object fragment identity for a persistent object fragment, based on one or more of;
formal descriptors; and
an object fragment property.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 48)
maintaining and tracking the persistent object fragment identity and associated formal descriptors; and
generating a cacheable object fragment.
-
-
3. The method of claim 1, comprising the further steps of
revising the object description by replacing at least one object fragment with an associated persistent object fragment identity to enable one or more of: - the object fragment; and
a revised object description to be cacheable at one or more of;
a server; and
a client; and
sending a revised object description to the client.
- the object fragment; and
-
4. The method of claim 3, wherein comprising the further steps of:
-
the client receiving and caching the revised object description; and
the client receiving a version of the one or more object fragments associated with the fragment identity, wherein the version is generated at the server and is based on the capability of the client.
-
-
5. The method of claim 1, further comprising the steps of:
-
receiving a request for an object fragment;
determining whether the fragment is cached, based on the object fragment identity; and
if the fragment is not cached, dynamically generating the fragment.
-
-
6. The method of claim 1, further comprising the step of caching the object fragment based on one or more of:
- a reference frequency;
a cache size; and
a processing cost.
- a reference frequency;
-
7. The method of claim 1, further comprising the step of:
generating one or more different versions of the fragment;
wherein a version can be determined by one or more of;
a requesting device property and the fragment description.
-
8. The method of claim 7, further comprising the step of:
- determining the version of the persistent fragment based on the requesting device property and the fragment property.
-
9. The method of claim 1, wherein the fragment property includes a processing requirement.
-
10. The method of claim 1, wherein the fragment property includes one or more of a storage requirement and a bandwidth requirement.
-
11. The method of claim 1, further comprising the steps of:
-
identifying an object fragment as a dynamic object fragment; and
transforming the dynamic object to a static object by revising the object description and replacing one or more dynamic object fragments with its object identity.
-
-
12. The method of claim 1, wherein the fragment property includes whether the fragment can be generated efficiently by various client devices.
-
13. The method of claim 1, wherein the formal descriptors are markup tags in the object description and wherein the object is described using a markup language.
-
14. The method of claim 1, wherein the object is a Web page described using a markup language selected from the group consisting of XML, SGML, or HTML.
-
15. The method of claim 1, wherein the object fragment can be nested or hierarchical.
-
16. The method of claim 15, further comprising the steps of:
-
recognizing a nested object fragment as including a dynamic fragment or a frequently changed fragment; and
making an outer fragment cacheable at one or more of a server and a client.
-
-
17. The method of claim 1, further comprising the steps of:
-
identifying one or more of the object fragments requiring invalidation; and
garbage collecting invalid object fragments.
-
-
18. The method of claim 1, wherein the object fragment property comprises the property selected from the group consisting of:
- a dynamic property;
a static property;
how frequently the object is going to change;
size;
or processing cost to generate that fragment from its description.
- a dynamic property;
-
19. The method of claim 1, further comprising the step of caching the object based on one or more object fragment properties.
-
20. The method of claim 1, further comprising the steps of:
-
selecting a subset of the segments contained in the object; and
recognizing the subset as persistent object fragments.
-
-
21. The method of claim 1, wherein said step of creating a persistent object fragment further comprises the steps of:
recognizing and separating a segment as an object fragment so it can be cached separately and reused to avoid going through interpreting a markup language description of the object to generate it again;
wherein the segment will only be recognized as the object fragment only if the segment or group of segments satisfies a threshold for interpreting the markup language description based on one or more of;
a processing requirement; and
a storage requirement.
-
22. The method of claim 1, wherein the persistent object fragment will have a consistent identity regardless of whether it appears in one or more of:
- multiple objects; and
multiple times in the same object.
- multiple objects; and
-
48. The program storage device of claim 15, further comprising the steps of:
-
recognizing a nested object fragment as including a dynamic fragment or a frequently changed fragment; and
making an outer fragment cacheable at one or more of a server and a client.
-
-
23. A method for caching objects including object fragments, said method comprising the steps of:
-
a client receiving from a server an object including a revised object description wherein at least one object fragment has been replaced with an associated persistent object fragment identity based on one or more of;
formal descriptors; and
an object fragment property, in response to a request for the object; and
the client processing the revised object description. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
the client receiving a version of the one or more object fragments associated with the fragment identity, wherein the version is generated at the server and is based on the capability of the client.
-
-
25. The method of claim 24, wherein the version is generated at the server and is based on the capability of the client.
-
26. The method of claim 23, wherein the persistent object fragment will have a consistent identity regardless of whether it appears in one or more of:
- multiple objects; and
multiple times in the same object.
- multiple objects; and
-
27. The method of claim 23, wherein the formal descriptors are markup tags in the object description and wherein the object is described using a markup language.
-
28. The method of claim 23, wherein the object is a Web page described using a markup language selected from the group consisting of XML, SGML, or HTML.
-
29. The method of claim 23, wherein said processing step includes one or more of caching a revised object and rendering the object.
-
30. The method of claim 23, further comprising the step of:
- the client receiving from the server a version of the object fragment interpret and generated at the server, wherein the version generated is based on one or more of;
the processing power of the client;
the storage capacity of the client; and
the bandwidth available to the client to retrieve a description of the fragment.
- the client receiving from the server a version of the object fragment interpret and generated at the server, wherein the version generated is based on one or more of;
-
31. The method of claim 23, wherein the persistent object fragment identifier represents a dynamic object.
-
32. The method of claim 23, wherein the client is selected from a group consisting of:
- a handheld device;
a palmtop device;
a set-top box;
a smart phone;
or an Internet appliance.
- a handheld device;
-
33. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for identifying object fragments in an object, said method steps comprising:
-
analyzing an object description to identify one or more persistent object fragments associated with the object;
creating the one or more persistent object fragments, in response to said analyzing; and
creating a persistent object fragment identity for a persistent object fragment, based on one or more of;
formal descriptors; and
an object fragment property.- View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54)
revising the object description by replacing at least one object fragment with an associated persistent object fragment identity to enable one or more of: - the object fragment; and
a revised object description to be cacheable at one or more of;
a server; and
a client; and
sending a revised object description to the client.
-
-
36. The program storage device of claim 35, wherein comprising the further steps of:
-
the client receiving and caching the revised object description; and
the client receiving a version of the one or more object fragments associated with the fragment identity, wherein the version is generated at the server and is based on the capability of the client.
-
-
37. The program storage device of claim 33, further comprising the steps of:
-
receiving a request for an object fragment;
determining whether the fragment is cached, based on the object fragment identity; and
if the fragment is not cached, dynamically generating the fragment.
-
-
38. The program storage device of claim 33, further comprising the step of caching the object fragment based on one or more of:
- a reference frequency;
a cache size; and
a processing cost.
- a reference frequency;
-
39. The program storage device of claim 33, further comprising the step of.
generating one or more different versions of the fragment; - wherein a version can be determined by one or more of;
a requesting device property and the fragment description.
- wherein a version can be determined by one or more of;
-
40. The program storage device of claim 39, further comprising the step of:
- determining the version of the persistent fragment based on the requesting device property and the fragment property.
-
41. The program storage device of claim 33, wherein the fragment property includes a processing requirement.
-
42. The program storage device of claim 33, wherein the fragment property includes one or more of a storage requirement and a bandwidth requirement.
-
43. The program storage device of claim 33, further comprising the steps of:
-
identifying an object fragment as a dynamic object fragment; and
transforming the dynamic object to a static object by revising the object description and replacing one or more dynamic object fragments with its object identity.
-
-
44. The program storage device of claim 33, wherein the fragment property includes whether the fragment can be generated efficiently by various client devices.
-
45. The program storage device of claim 33, wherein the formal descriptors are markup tags in the object description and wherein the object is described using a markup language.
-
46. The program storage device of claim 33, wherein the object is a Web page described using a markup language selected from the group consisting of XML, SGML, or HTML.
-
47. The program storage device of claim 33, wherein the object fragment can be nested or hierarchical.
-
49. The program storage device of claim 33, further comprising the steps of:
-
identifying one or more of the object fragments requiring invalidation; and
garbage collecting invalid object fragments.
-
-
50. The program storage device of claim 33, wherein the object fragment property comprises the property selected from the group consisting of:
- a dynamic property;
a static property;
how frequently the object is going to change;
size;
or processing cost to generate that fragment from its description.
- a dynamic property;
-
51. The program storage device of claim 33, further comprising the step of caching the object based on one or more object fragment properties.
-
52. The program storage device of claim 33, further comprising the steps of:
-
selecting a subset of the segments contained in the object; and
recognizing the subset as persistent object fragments.
-
-
53. The program storage device of claim 33, wherein said step of creating a persistent object frament further comprises the steps of:
recognizing and separating a segment as an object fragment so it can be cached separately and reused to avoid going through interpreting a markup language description of the object to generate it again;
wherein the segment will only be recognized as the object fragment only if the segment or group of segments satisfies a threshold for interpreting the markup language description based on one or more of;
a processing requirement; and
a storage requirement.
-
54. The program storage device of claim 33, wherein the persistent object fragment will have a consistent identity regardless of whether it appears in one or more of:
- multiple objects; and
multiple times in the same object.
- multiple objects; and
-
55. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for processing objects including object fragments, said method steps comprising:
-
a client receiving from a server an object including a revised object description wherein at least one object fragment has been replaced with an associated persistent object fragment identity based on one or more of;
formal descriptors; and
an object fragment property, in response to a request for the object; and
the client processing the revised object description. - View Dependent Claims (56, 57, 58, 59, 60, 61, 62, 63, 64)
the client receiving a version of the one or more object fragments associated with the fragment identity, wherein the version is generated at the server and is based on the capability of the client.
-
-
57. The program storage device of claim 56, wherein the version is generated at the server and is based on the capability of the client.
-
58. The program storage device of claim 55, wherein the persistent object fragment will have a consistent identity regardless of whether it appears in one or more of:
- multiple objects; and
multiple times in the same object.
- multiple objects; and
-
59. The program storage device of claim 55, wherein the formal descriptors are markup tags in the object description and wherein the object is described using a markup language.
-
60. The program storage device of claim 55, wherein the object is a Web page described using a markup language selected from the group consisting of XML, SGML, or HTML.
-
61. The program storage device of claim 55, wherein said processing step includes one or more of caching a revised object and rendering the object.
-
62. The program storage device of claim 55, further comprising the step of:
- the client receiving from the server a version of the object fragment interpret and generated at the server, wherein the version generated is based on one or more of;
the processing power of the client;
the storage capacity of the client; and
the bandwidth available to the client to retrieve a description of the fragment.
- the client receiving from the server a version of the object fragment interpret and generated at the server, wherein the version generated is based on one or more of;
-
63. The program storage device of claim 55, wherein the persistent object fragment identifier represents a dynamic object.
-
64. The program storage device of claim 55, wherein the client is selected from a group consisting of:
- a handheld device;
a palmtop device;
a set-top box;
a smart phone;
or an Internet appliance.
- a handheld device;
Specification