A method, a system, an apparatus, and a computer program product are presented for a fragment caching methodology. After a message is received at a computing device that contains a cache management unit, a fragment in the message body of the message is cached. Subsequent requests for the fragment at the cache management unit result in a cache hit. A FRAGMENTLINK tag is used to specify the location in a fragment for an included or linked fragment which is to be inserted into the fragment during fragment or page assembly or page rendering. A FRAGMENTLINK tag may include a FOREACH attribute that is interpreted as indicating that the FRAGMENTLINK tag should be replaced with multiple FRAGMENTLINK tags. The FOREACH attribute has an associated parameter that has multiple values that are used in identifying multiple fragments for the multiple FRAGMENTLINK tags.
Drawings
Claims48
A method for processing objects within a data processing system in a network, the method comprising:
receiving a message at a computing device, wherein the message comprises a set of message headers and a message body, wherein the message body contains a top-level fragment comprising a first linking element to a first next-level fragment;
and
in response to determining that the first linking element comprises an expansion attribute, generating a set of linking elements in accordance with at least one parameter associated with the expansion attribute.
A method for processing objects within a data processing system in a network, the method comprising:
receiving a request message at a server, wherein the request message comprises a source identifier for a fragment;
and
generating a response message, wherein the response message comprises a set of message headers and a message body, wherein the message body contains a top-level fragment comprising a first linking element to a first next-level fragment, and wherein the first linking element comprises an expansion attribute for multiple linking elements.
An apparatus for processing objects within a data processing system in a network, the apparatus comprising:
means for receiving a message at a computing device, wherein the message comprises a set of message headers and a message body, wherein the message body contains a top-level fragment comprising a first linking element to a first next-level fragment;
and
means for generating a set of linking elements in accordance with at least one parameter associated with the expansion attribute in response to determining that the first linking element comprises an expansion attribute.
An apparatus for processing objects within a data processing system in a network, the apparatus comprising:
means for receiving a request message at a server, wherein the request message comprises a source identifier for a fragment;
and
means for generating a response message, wherein the response message comprises a set of message headers and a message body, wherein the message body contains a top-level fragment comprising a first linking element to a first next-level fragment, and wherein the first linking element comprises an expansion attribute for multiple linking elements.
A computer program product in a computer readable medium for use within a data processing system in a network for processing objects, the computer program product comprising:
instructions for receiving a message at a computing device, wherein the message comprises a set of message headers and a message body, wherein the message body contains a top-level fragment comprising a first linking element to a first next-level fragment;
and
instructions for generating a set of linking elements in accordance with at least one parameter associated with the expansion attribute in response to determining that the first linking element comprises an expansion attribute.
A computer program product in a computer readable medium for use within a data processing system in a network for processing objects, the computer program product comprising:
instructions for receiving a request message at a server, wherein the request message comprises a source identifier for a fragment;
and
instructions for generating a response message, wherein the response message comprises a set of message headers and a message body, wherein the message body contains a top-level fragment comprising a first linking element to a first next-level fragment, and wherein the first linking element comprises an expansion attribute for multiple linking elements.
A data structure for use by a computing device in defining a content object, the data structure comprising:
a set of delimiters for a markup language element;
a keyword for indicating that the markup language element is a linking element to a fragment;
a source identifier for the fragment, wherein the source identifier is used to obtain the fragment;
and
an expansion attribute comprising at least one parameter for expanding the linking element into a set of linking elements.
Assigned to International Business Machines Corporationassignment of assignor's interest
Published
Assigned to Snapchat, Inc.assignment of assignor's interest
Assigned to Snap Inc.change of name
Description33,858 words
Summary3,481 words
#The present invention relates to an improved data processing system and, in particular, to a data processing system with improved network resource allocation. Still more particularly, the present invention provides a method and system for caching data objects within a computer network.
#The amount of data that is transmitted across the Internet continues to grow at a rate that exceeds the rate of growth in the number of users of the Internet or the rate of growth in the number of their transactions. A major factor in this growth is the changing nature of World Wide Web sites themselves. In the early phase of the World Wide Web, Web pages were comprised mainly of static content, such as text, images and links to other sites. The extent of the user's interaction with a Web site was to download an HTML page and its elements. Since the content was usually the same regardless of who requested the page, it was comparatively simple for the Web server to support numerous users. The present trend however, is toward interactive Web sites in which the content and appearance of the Web site change in response to specific users and/or user input. This is particularly true for e-commerce sites, which support online product selection and purchasing. Such sites are distinguished from earlier Web sites by their greater dynamic content. A familiar example of this is the “online catalog” provided at many Internet business sites. Each customer logged onto the site to make a purchase has the opportunity to browse the catalog, and even peruse detailed information on thousands of products. Seemingly, the Web server must maintain and update a unique Web page for each shopper. Internet users enjoy the convenience of such customizable, interactive Web sites, and customer expectations will undoubtedly provide an impetus for further use of dynamic content in Web pages.
Brief description of the drawings38 figures
#The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, further objectives, and advantages thereof, will be best understood by reference to the following detailed description when read in conjunction with the accompanying drawings, wherein:
#FIG. 1A depicts a typical distributed data processing system in which the present invention may be implemented;
#FIG. 1B depicts a typical computer architecture that may be used within a data processing system in which the present invention may be implemented;
Detailed description29,356 words
#The present invention is directed to a distributed fragment caching technique. In general, the devices that may comprise or relate to the present invention include a wide variety of data processing technology. Therefore, as background, a typical organization of hardware and software components within a distributed data processing system is described prior to describing the present invention in more detail.
#With reference now to the figures, FIG. 1A depicts a typical network of data processing systems, each of which may implement some aspect of the present invention. Distributed data processing system 100 contains network 101, which is a medium that may be used to provide communications links between various devices and computers connected together within distributed data processing system 100. Network 101 may include permanent connections, such as wire or fiber optic cables, or temporary connections made through telephone or wireless communications. In the depicted example, server 102 and server 103 are connected to network 101 along with storage unit 104. In addition, clients 105-107 also are connected to network 101. Clients 105-107 and servers 102-103 may be represented by a variety of computing devices, such as mainframes, personal computers, personal digital assistants (PDAs), etc. Distributed data processing system 100 may include additional servers, clients, routers, other devices, and peer-to-peer architectures that are not shown. It should be noted that the distributed data processing system shown in FIG. 1A is contemplated as being fully able to support a variety of peer-to-peer subnets and peer-to-peer services.
#In the depicted example, distributed data processing system 100 may include the Internet with network 101 representing a global collection of networks and gateways that use various protocols to communicate with one another, such as Lightweight Directory Access Protocol (LDAP), Transport Control Protocol/Internet Protocol (TCP/IP), Hypertext Transport Protocol (HTTP), Wireless Application Protocol (WAP), etc. Of course, distributed data processing system 100 may also include a number of different types of networks, such as, for example, an intranet, a local area network (LAN), a wireless LAN, or a wide area network (WAN). For example, server 102 directly supports client 109 and network 110, which incorporates wireless communication links. Network-enabled phone 111 connects to network 110 through wireless link 112, and PDA 113 connects to network 110 through wireless link 114. Phone 111 and PDA 113 can also directly transfer data between themselves across wireless link 115 using an appropriate technology, such as Bluetooth™ wireless technology, to create so-called personal area networks (PAN) or personal ad-hoc networks. In a similar manner, PDA 113 can transfer data to PDA 107 via wireless communication link 116.