This application is related to U.S. patent application Ser. No. 11/014,442, entitled “A Comprehensive Framework to Integrate Business Logic into a Repository,” filed on Dec. 15, 2004, referred to herein as the “the framework patent application,” which is incorporated by reference as if fully set forth herein.
Embodiments of the present invention relate to managing the relationships between resources stored in a repository.
A digital resource (or simply a “resource”), as broadly used herein, refers to any unit of digital data stored as an individual entity. Non-limiting, illustrative examples of a resource include a document, an image, a folder, and a file.
Resources may have different types of relationships with each other. In some cases, the relationship between two resources may be identified by one of the resources. For example, a first web page may have a relationship with a second web page because the first web page includes a web link to the second web page. Thus, when a user selects the web link on the first web page, the second web page is displayed to the user.
In other cases, the relationship between two resources may not be identified by either of the two resources. For example, a thumbnail image has a relationship with the original image to which the thumbnail corresponds because both the thumbnail image and the original image depict the same image. However, while both the thumbnail image and the original image depict the same image, there is no indication in either of the thumbnail image or the original image of the existence of the other. As another example, a first text document may have a relationship with a second text document because the content of the first text document includes the content of a second text document. However, the first text document may not identify the existence of the second text document.
Resource management applications are increasingly being used to store resources that are expressed in a self-describing metalanguage, such as the extensible markup language (XML). XML is a language that allows a resource to be defined as a tree of elements. XML is a markup language that allows tagging of document elements and provides for the definition, transmission, validation, and interpretation of data between applications and between organizations.
While XML has been used to describe the contents of a resource, current techniques in the art do not adequately provide for managing the relationships between resources stored in a repository. Consequently, an approach for managing the relationships between resources stored in a repository is desirable. The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Embodiments of the present invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the present invention described herein. It will be apparent, however, that the embodiments of the present invention described herein may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the embodiments of the present invention described herein.
Approaches are presented herein for managing the relationship between resources stored in a repository. According to a first embodiment, a client sends, to a server, a request to store a first resource. In response to receiving the request, the server parses the first resource to retrieve relationship data that identifies a relationship between the first resource and a second resource in a repository accessible to the server. The relationship data may be expressed in the first resource by a variety of ways, e.g., the relationship data may be expressed using an XML linking language (XLink). Version 1.0 of the XLink specification (the “XLink specification”) is available from the W3C consortium, and is incorporated by reference as if fully set forth herein. The server stores, within a database accessible to the server, one or more relationship records that identify the relationship between the first resource and the second resource. The one or more relationship records are stored separate from the first resource. Subsequently, the client may issue queries, to the server, about the one or more relationships records stored in the database. In this way, a user may access the one or more relationship records to analyze the relationship between resources stored within the repository.
In another embodiment, a first resource and a second resource are stored within a repository. Neither the first resource nor the second resource contains any link to the other. In response to a server receiving a request, from a client to store a third resource (“a relationship-identifying resource”) in a repository accessible to the server, the server parses the relationship-identifying resource to retrieve relationship data that identifies a relationship between the first resource and the second resource. The relationship data may be, but need not be, expressed within the relationship-identifying resource using XLink. The server stores, within a database accessible to the server and separately from the first resource, one or more relationship records that indicate the existence of a link from the first resource to the second resource. In this way the client may subsequently issue queries to the server about the one or more relationships records stored in the database, even though neither the first resource nor the second resource contains any link to the other.
A client 110 may be implemented by any medium or mechanism that provides for issuing a request to store a resource in repository 150. For example, a user may use client 110 for storing and retrieving resources to and from repository 150. Non-limiting, illustrative examples of client 110 include a web browser, a wireless device, a cell phone, a personal computer, and a software application.
Communications link 120 may be implemented by any medium or mechanism that provides for the exchange of data between client 110 and server 130. Communications link 122 may be implemented by any medium or mechanism that provides for the exchange of data between server 130 and persistent storage 140. Examples of communications links 120 and 122 include, without limitation, a network such as a Local Area Network (LAN), Wide Area Network (WAN), Ethernet or the Internet, or one or more terrestrial, satellite or wireless links.
Server 130 may be implemented by any medium or mechanism that provides for receiving and processing requests from client 110. For example, server 130 may process a request, received from client 110, to store a resource in repository 150. Non-limiting, illustrative examples of server 130 include a database server or any server capable of issuing commands to persistent storage 140.
Persistent storage 140 may be implemented by any medium or mechanism that provides for persistently storing relationship records. A non-limiting, illustrative example of persistent storage 140 includes a database. In the embodiment depicted in
Persistent storage 140 may be used to store one or more relationship records 160. A relationship record is a record that describes a relationship between two or more resources stored in repository 150. For example, in an embodiment, a relationship record may be embodied as one or more rows of one or more tables of persistent storage 140. A particular relationship record may describe the type of relationship between two or more resources, information that identifies the resources involved in the relationship, and any other information about how the relationship, such as how to identify, to client 110, the resources involved in the relationship.
Repository 150 may be implemented by any medium or mechanism that provides for implementing a file system. Repository 150 may provide a hierarchy of folders in which resources may be stored. Non-limiting, illustrative examples of repository 150 include a NFS file repository.
Repository 150 may be used to store one or more resources 170. A resource, as used herein, refers to any unit of digital data stored as an individual entity. Non-limiting, illustrative examples of a resource include a document, an image, a folder, and a file.
Having described an illustrative system 100 according to an embodiment, approaches for identifying the relationship between resources 170 stored in repository 150 shall be discussed.
For ease of explanation, several embodiments of the invention shall be discussed herein with reference to a first resource (denoted a source resource) that has a relationship to a second resource (denoted a target resource). Embodiments of the invention may manage relationships involving any number of resources; however, for purposes of providing a clear example, several embodiments will be presented with reference to a source resource that has a link to a target resource. A relationship between a source resource and a target resource may be identified to system 100 by information (denoted relationship data) stored in the source resource. Alternately, the relationship data may be stored in a different resource (denoted a relationship-identifying resource) other than source resource or the target resource.
Relationship-identifying resources are particularly useful when the source resource involved in the relationship cannot carry the relationship data. For example, a thumbnail has a particular relationship with the original image upon which the thumbnail image is based. However, the thumbnail image file cannot easily be modified to carry the relationship data without affecting the way in which the thumbnail image is rendered. Consequently, it may be advantageous to store the relationship data in a relationship-identifying resource, instead of the thumbnail image file itself.
Relationship data may be identified within the source resource or the relationship-identifying resource using a defined syntax for expressing the relationship data. For example, according to one embodiment, an XML linking language, such as XLink, may be employed to express the relationship data. XLink is a language that allows elements to be inserted into XML documents in order to create and describe relationships between resources.
Several embodiments shall be described herein with reference to XLink identifying relationship data within a source resource or a relationship-identifying resource; however, the use of XLink to identify the relationship data within a resource is merely exemplary of one embodiment, as other embodiments of the invention may use other syntaxes for identifying relationship data within a source resource or a relationship-identifying resource.
Relationship data may identify a variety of different relationships between resources 170. For example, a first resource may have either an intra-resource or an inter-resource relationship with a second resource. An intra-resource relationship is a relationship wherein a source resource is composed of one or more target resources. On the other hand, an inter-resource relationship is a relationship wherein a first resource has an implicit or explicit relationship with one or more target resources, where the one or more target resources does not form part of the source resource.
To provide an example of an intra-resource relationship, a large document may be composed of two or more smaller documents. Separate parties may manage each of the smaller documents. Also, certain resources may be designed to be incorporated in many other resources, e.g., a boilerplate document (such as a warranty disclaimer or copyright notice) may be incorporated into numerous other documents. As the boilerplate document is likely to be stored separately from the documents that incorporate the boilerplate document, it would be advantageous to use system 100 to manage the relationships between the boilerplate document and those documents that incorporate the boilerplate document. In this way, system 100 may be used, as described in greater detail below, to prevent the boilerplate document from being accidentally deleted. Also, system 100 may be used to determine all the documents within the repository 150 that incorporate the boilerplate document.
To provide an example of an implicit inter-resource relation, a source resource may be a thumbnail image. While the thumbnail image is a smaller version of an original image, there is no indication in either of the thumbnail image or the original image about the existence of the other. Thus, the thumbnail image has a relationship to the original image, even though there is no express indication in the thumbnail image that the original image depicts the same image as the thumbnail image.
To provide an example of an explicit inter-resource relationship, a resource may contain data that identifies another resource. For example, a web page may include a link, specified using a Universal Resource Locator (URL), to one or more other target resources stored in the repository 150. As a further example of an explicit inter-resource relationship, a source resource may contain a link to a particular folder of repository 150.
The above description of exemplary relationships that may exist between resources 170 are not intended to limit the types of relationships that may be described by relationship data or relationship records 160, as relationship data and relationship records 160 may be used to describe a variety of relationships too numerous to fully enumerate herein.
Having described the types of relationships that may exist between resources 170, additional details about how those relationships are described by the relationship records 160 are presented below.
Information about the relationships between resources 170 are recorded in the relationship records 160 that are stored in the persistent storage 140. A particular relationship record may model a relationship between two or more resources 170 using a type of link between the two or more resources 170. Several examples of the types of links that may be identified by relationship records include a hard link, a weak link, and a symbolic link. The description of hard links, weak links, and symbolic links which follows is not meant to fully enumerate the type of links which may be identified by the relationship records 160, as relationship records 160 may be used to identify any type of link between a source resource and a target resource.
When a source resource has a hard link to a target resource, the target resource is uniquely identified, to repository 150, by the hard link. For example, the particular relationship record establishing the hard link may include a target resource identifier assigned to the target resource by the repository 150. Thus, if the target resource were to move to another location within the repository 150, the hard link between the source resource and the target resource would be preserved because the target resource is uniquely identified, within the repository 150, by the target resource identifier. In an embodiment where the repository 150 is implemented in persistent storage 140, the persistent storage 140 may assign the target resource identifier. For example, if the persistent storage 140 is a database, then the database may assign an object identifier to uniquely identify the target resource. In this way, regardless of where the target resource is moved to within the repository 150, the database may identity the target resource using the object identifier.
In addition, a hard link guarantees the integrity of the link. In other words, a target resource cannot be deleted from the repository 150 if any other resource, within the repository 150, has a hard link to the target resource. In this way, a hard link may be used to prevent the accidental deletion of a target resource that has a hard link to the target resource.
Similar to a hard link, when a source resource has a weak link to a target resource, the target resource is uniquely identified by the weak link. For example, the particular relationship record establishing a particular weak link may also include a target resource identifier assigned to the target resource by the repository 150. However, unlike a hard link, a weak link does not guarantee the integrity of the link. Thus, a weak link does not prevent a target resource from being deleted from the repository 150 if another resource, stored within the repository 150, has a weak link to the target resource.
Because a target resource that has a hard link to it cannot be deleted from the repository 150, the system 100 may be configured to require a certain permission level to add a hard link to a target resource. However, even if a user does not have a sufficient permission level to add a hard link to a target resource, the user may still wish to uniquely identify the target resource with the repository 150 so that the link is preserved if the target resource is moved to a different location within the repository 150. In such a case, using a weak link may be advantageous.
When a source resource has a symbolic link to a target resource, the symbolic link does not uniquely identify the target resource within the repository 150, but rather, the symbolic link identifies a location, within the repository 150, at which the target resource resides. Thus, if the target resource is moved to a different location within the repository 150, the symbolic link will no longer point to the target resource. However, if a new target resource is moved to the location identified by the symbolic link, then the symbolic link will point to the new target resource. Symbolic links may identify a location within the repository 150 by identifying a particular path, within the repository 150, to the location at which the target resource resides.
The paths to target resources, identified by symbolic links, are resolved when the symbolic link is accessed. Thus, a symbolic link may be useful when a resource wishes to maintain a link to a specific location within the repository 150, rather than linking to a specific resource within the repository. For example, there may exist seven folders in the repository 150 which correspond to the seven days of the week. Six of the seven folders are stored at a first location, and the folder that corresponds to the current day is stored at a second location. At the end of each day, the folder corresponding to the current day may be moved back to the first location, and the folder corresponding to the new day may be moved from the first location to the second location. Updates are made to the folder corresponding to the current day. In this way, a rolling archive of the week's activity may be performed. If a resource wishes to link to the folder corresponding to the current day, the intent is to link the resource to whichever folder happens to correspond to the current day, rather than linking to a specific folder. Thus, a symbolic link may be used in this situation to link a resource to the folder occupying the second location (the location where the folder for the current day is stored).
Additionally, symbolic links may be employed when it is desirable to link a resource to another resource that is stored outside of repository 150. Since a target resource identifier cannot be assigned by the repository 150 to a resource that is not maintained by the repository 150, a symbolic link may be used to describe this relationship. For example, the repository 150 may register a callback function to access a resource stored outside of repository 150. In this way, the symbolic link may reference and make use of the callback function to identify a location, where the target resource may be stored, outside of repository 150. Symbolic links also do not guarantee the integrity of the link. Thus, a symbolic link does not prevent a target resource from being deleted from the repository 150 if other resources stored within the repository 150 have a symbolic link to the target resource.
While embodiments of the invention shall chiefly be described with reference to a single source resource that has a relationship to a single target resource, a single resource may have a relationship with two or more resources. Accordingly, relationship data stored within a source resource or a relationship-identifying resource may identify that a source resource has a relationship with two or more target resources.
Having described several examples of the different types of relationships that may be identified by relationship data within a source resource or relationship-identifying resource, an approach for storing resources within the repository, according to embodiments of the invention, shall now be described.
In step 210, a request to store a source resource in repository 150 is received by server 130. The request of step 210 may be sent by client 110 over communications link 120 to server 130. As described above, a source resource is a resource that which has a relationship to a target resource. A source resource may contain relationship data identifying the relationship the source resource has to the target resource. For example, a source resource may be a document that contains the relationship data expressed using XLink. After the request to store a source resource in repository 150 is received, processing proceeds to step 220.
In step 220, server 130 parses the source resource to retrieve relationship data from the source resource. For example, the server 130 may parse the source data to retrieve the relationship data from an XLink embedded within the source resource. Relationship data may be expressed in a variety of different formats within a source resource; as a result, XLink is merely one example of how relationship data may be identified within a source resource. After server 130 parses the source resource to retrieve the relationship data from the source resource, processing proceeds to step 230.
In step 230, server 130 stores, within persistent storage 140, one or more relationship records 160 that identify the relationship described by the relationship data retrieved in step 220. A relationship record 160 may be embodied as one or more rows of one or more tables of persistent storage 140.
The information stored in the relationship record 160 in step 230 contains all the information identified in the relationship data. The information stored in a relationship record 160 may vary based upon the relationship data retrieved in step 220. For example, if the relationship data retrieved in step 220 indicated that the relationship should be modeled as a hard link or a weak link, then an object identifier that uniquely identifies the target resource is stored in the relationship record. On the other hand, if the relationship data retrieved in step 220 indicated that the relationship should be modeled as a symbolic link, then a path, within the repository 150, at which the target resource resides, is stored in the relationship record.
Additionally, since a hard link guarantees the integrity of the link, whenever a new hard link is created within the repository 150, a hard link counter value, associated with the target resource, is incremented. Similarly, whenever a resource that has a hard link to a target resource is removed, then the hard link counter value associated with the target resource is decremented. In this way, the repository 150 may monitor, for each resource in the repository, how many other resources within the repository 150, have a hard link to a particular resource. The server 130 may prevent a particular resource, stored in the repository 150, from being deleted if the hard link counter value, associated with that particular resource, has a value greater than zero.
Having described the steps of storing a source resource, the steps of storing a relationship-identifying resource shall now be described.
Relationship-identifying resources are particularly useful when a resource involved in the relationship cannot easily carry the relationship data. For example, a source resource may be expressed in a format that does not allow for the insertion of relationship data, such as, for example, a digital image or a resource expressed in a propriety format. In such a case, the relationship between the source resource and a target resource may still be managed by the system 100 by storing a relationship-identifying resource within repository 150 according to the steps of
In step 250, a request to store a relationship-identifying resource in repository 150 is received by server 130. The request of step 250 may be sent by client 110 over communications link 120 to server 130. As described above, a relationship-identifying resource is a resource that contains relationship data within the resource, but is not the source resource. For example, a relationship-identifying resource may be a document that contains the relationship data expressed using XLink. After the request to store a source resource in repository 150 is received, processing proceeds to step 260.
In step 260, server 130 parses the relationship-identifying resource to retrieve relationship data. The performance of step 260 is substantially similar to that of step 220, except that the relationship data is retrieved from a relationship-identifying resource, rather than a source resource. After the relationship data is retrieved, processing proceeds to step 270.
In step 270, server 130 stores, within persistent storage 140, one or more relationship records 160 that identify the relationship between a source resource and a target resource. The performance of step 270 is substantially similar to that of step 230.
The steps of
In an embodiment, the relationship records may be accessed using a database view. Users may issue a request, to server 130, to the database view to view certain relationship records 160 that satisfy criteria identified in the request. The database view may expose several columns, and each row of the database view may identify a particular relationship record 160. The columns of the database view may correspond to information about the various relationships between resources 170. For example, the columns of an illustrative, non-limiting database view, along with a corresponding description, are depicted below in Table 1.
Note that many relationship records 160 may not store data for each column depicted in Table 1. For example, a relationship record 160 corresponding to hard link and a weak link may store data in the target resource identifier column, but not for the target path column; on the other hand, a relationship record 160 corresponding to a symbolic link may store data in the target path column, but not for the target resource identifier column. As a result, the type of information stored in relationship records 160 depicted in Table 1 is merely illustrative.
The framework patent application discloses techniques for integrating logic through the use of “resource configurations.” A resource configuration is a unit of logic that is associated with one or more resources within repository 150. Each resource configuration contains one or more configuration items that each defines and/or expresses one or more rules for managing a resource associated with a resource configuration.
Repository 150 interprets, evaluates, and/or analyzes a resource configuration to carry out the rules expressed therein. A resource configuration can be associated with one or more resources in various ways. For example, a resource configuration may be associated with resources that reside within a particular directory or that belong to a particular resource type. A resource that has been associated with a resource configuration is referred to herein as an associated resource.
Each time repository 150 performs an operation upon a resource, repository 150 carries out a rule specified in a resource configuration associated with the resource.
A resource configuration may be used to configure how relationship data is processed within repository 150. An exemplary schema for an element of a resource configuration is graphically depicted in
The location-display attribute may be used in this way to avoid computing the path to a resource to avoid the overhead to do so when preparing information for transmittal to client 110. Thus, if so configured by the resource configuration, when a resource is retrieved from the repository 150, if the resource contains information that identifies another resource by resource identifier, then that information may be replaced with information that identifies the other resource by a path within the repository 150 at which the other resource resides. Alternately, if so configured by the resource configuration, when a resource is retrieved from the repository 150, if the resource contains information that identifies another resource by a path within the repository 150 at which the other resource resides, then that information may be replaced with information that identifies the other resource by a resource identifier.
As shown in portion 302 of the exemplary schema for a resource configuration, the resource configuration may be configured to cause system 100 to ignore relationship data contained within an associated resource. In this case, relationship records 160 are not created in persistent storage 140 when an associated source resource or a relationship-identifying resource, so configured, is stored within repository 150.
A resource configuration may specify that all associated resources exhibit a certain characteristic, e.g., all associated resources, which are source resources, shall be processed as a certain type of link (such as a symbolic link) regardless of the type of link identified in the relationship data.
In an embodiment, the configuration of the resource configuration may cause relationship data to be processed in a certain way depending upon where the relationship data is located. For example, certain types of resources may be assumed to have a certain type of link to the target resource identified within the relationship data. Further, depending on where the relationship data is located within a resource, the system 100 may make certain inferences about what type of link to make to the target resource identified within the relationship data. For example, if the relationship data is contained within the body of a web page, then the type of link identified in the corresponding relationship record 160 may be a weak link, regardless of what type of link is identified in the relationship data contained in the web page.
In some embodiments, a client 110, a server 130, and persistent storage 140 may each be implemented on one or more computer systems.
Computer system 400 may be coupled via bus 402 to a display 412, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 414, including alphanumeric and other keys, is coupled to bus 402 for communicating information and command selections to processor 404. Another type of user input device is cursor control 416, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 404 and for controlling cursor movement on display 412. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
The invention is related to the use of computer system 400 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 400 in response to processor 404 executing one or more sequences of one or more instructions contained in main memory 406. Such instructions may be read into main memory 406 from another machine-readable medium, such as storage device 410. Execution of the sequences of instructions contained in main memory 406 causes processor 404 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term “machine-readable medium” as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system 400, various machine-readable media are involved, for example, in providing instructions to processor 404 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 410. Volatile media includes dynamic memory, such as main memory 406. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine.
Common forms of machine-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 404 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 400 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 402. Bus 402 carries the data to main memory 406, from which processor 404 retrieves and executes the instructions. The instructions received by main memory 406 may optionally be stored on storage device 410 either before or after execution by processor 404.
Computer system 400 also includes a communication interface 418 coupled to bus 402. Communication interface 418 provides a two-way data communication coupling to a network link 420 that is connected to a local network 422. For example, communication interface 418 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 418 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 418 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 420 typically provides data communication through one or more networks to other data devices. For example, network link 420 may provide a connection through local network 422 to a host computer 424 or to data equipment operated by an Internet Service Provider (ISP) 426. ISP 426 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 428. Local network 422 and Internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 420 and through communication interface 418, which carry the digital data to and from computer system 400, are exemplary forms of carrier waves transporting the information.
Computer system 400 can send messages and receive data, including program code, through the network(s), network link 420 and communication interface 418. In the Internet example, a server 430 might transmit a requested code for an application program through Internet 428, ISP 426, local network 422 and communication interface 418.
The received code may be executed by processor 404 as it is received, and/or stored in storage device 410, or other non-volatile storage for later execution. In this manner, computer system 400 may obtain application code in the form of a carrier wave.
In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
4159534 | Getson et al. | Jun 1979 | A |
5047918 | Schwartz et al. | Sep 1991 | A |
5202982 | Gramlich et al. | Apr 1993 | A |
5210686 | Jernigan | May 1993 | A |
5257366 | Adair et al. | Oct 1993 | A |
5295256 | Bapat | Mar 1994 | A |
5303379 | Khoyi et al. | Apr 1994 | A |
5307490 | Davidson et al. | Apr 1994 | A |
5369763 | Biles | Nov 1994 | A |
5388257 | Bauer | Feb 1995 | A |
5410691 | Taylor | Apr 1995 | A |
5454101 | Mackay et al. | Sep 1995 | A |
5463772 | Thompson et al. | Oct 1995 | A |
5467471 | Bader | Nov 1995 | A |
5499371 | Henninger et al. | Mar 1996 | A |
5504892 | Atsatt et al. | Apr 1996 | A |
5524240 | Barbara et al. | Jun 1996 | A |
5530849 | Hanushevsky et al. | Jun 1996 | A |
5544360 | Lewak et al. | Aug 1996 | A |
5546571 | Shan et al. | Aug 1996 | A |
5561763 | Eto et al. | Oct 1996 | A |
5566331 | Irwin, Jr. et al. | Oct 1996 | A |
5568640 | Nishiyama et al. | Oct 1996 | A |
5574915 | Lemon et al. | Nov 1996 | A |
5680614 | Bakuya et al. | Oct 1997 | A |
5682524 | Freund et al. | Oct 1997 | A |
5684990 | Boothby | Nov 1997 | A |
5689706 | Rao et al. | Nov 1997 | A |
5701467 | Freeston | Dec 1997 | A |
5737736 | Chang | Apr 1998 | A |
5758153 | Atsatt et al. | May 1998 | A |
5778179 | Kanai et al. | Jul 1998 | A |
5802518 | Karaev et al. | Sep 1998 | A |
5819275 | Badger et al. | Oct 1998 | A |
5822511 | Kashyap et al. | Oct 1998 | A |
5825353 | Will | Oct 1998 | A |
5832526 | Schuyler | Nov 1998 | A |
5832527 | Kawaguchi | Nov 1998 | A |
5838965 | Kavanagh et al. | Nov 1998 | A |
5842212 | Ballurio et al. | Nov 1998 | A |
5848246 | Gish | Dec 1998 | A |
5878415 | Olds | Mar 1999 | A |
5878434 | Draper et al. | Mar 1999 | A |
5892535 | Allen et al. | Apr 1999 | A |
5915253 | Christiansen | Jun 1999 | A |
5917492 | Bereiter et al. | Jun 1999 | A |
5918225 | White et al. | Jun 1999 | A |
5921582 | Gusack | Jul 1999 | A |
5937406 | Balabine et al. | Aug 1999 | A |
5946489 | Yellin et al. | Aug 1999 | A |
5974407 | Sacks | Oct 1999 | A |
5978791 | Farber et al. | Nov 1999 | A |
5991771 | Falls et al. | Nov 1999 | A |
5999942 | Talati | Dec 1999 | A |
6021414 | Fuller | Feb 2000 | A |
6023706 | Schmuck et al. | Feb 2000 | A |
6029160 | Cabrera et al. | Feb 2000 | A |
6029166 | Mutalik et al. | Feb 2000 | A |
6029175 | Chow et al. | Feb 2000 | A |
6044378 | Gladney | Mar 2000 | A |
6052122 | Sutcliffe et al. | Apr 2000 | A |
6088694 | Burns et al. | Jul 2000 | A |
6092086 | Martin et al. | Jul 2000 | A |
6101500 | Lau | Aug 2000 | A |
6111578 | Tesler | Aug 2000 | A |
6112209 | Gusack | Aug 2000 | A |
6115741 | Domenikos et al. | Sep 2000 | A |
6119118 | Kain, III et al. | Sep 2000 | A |
6128610 | Srinivasan | Oct 2000 | A |
6182121 | Wlaschin | Jan 2001 | B1 |
6185574 | Howard et al. | Feb 2001 | B1 |
6192273 | Igel et al. | Feb 2001 | B1 |
6192373 | Haegele | Feb 2001 | B1 |
6208993 | Shadmon | Mar 2001 | B1 |
6212512 | Barney et al. | Apr 2001 | B1 |
6212557 | Oran | Apr 2001 | B1 |
6230310 | Arrouye et al. | May 2001 | B1 |
6233729 | Campara et al. | May 2001 | B1 |
6236988 | Aldred | May 2001 | B1 |
6247024 | Kincaid | Jun 2001 | B1 |
6279007 | Uppala | Aug 2001 | B1 |
6301605 | Napolitano et al. | Oct 2001 | B1 |
6314408 | Salas et al. | Nov 2001 | B1 |
6321219 | Gainer et al. | Nov 2001 | B1 |
6339382 | Arbinger et al. | Jan 2002 | B1 |
6349295 | Tedesco et al. | Feb 2002 | B1 |
6366921 | Hansen et al. | Apr 2002 | B1 |
6366988 | Skiba et al. | Apr 2002 | B1 |
6370537 | Gilbert et al. | Apr 2002 | B1 |
6370548 | Bauer et al. | Apr 2002 | B1 |
6389427 | Faulkner | May 2002 | B1 |
6389433 | Bolosky et al. | May 2002 | B1 |
6393435 | Gartner et al. | May 2002 | B1 |
6393456 | Ambler et al. | May 2002 | B1 |
6397231 | Salisbury et al. | May 2002 | B1 |
6421692 | Milne et al. | Jul 2002 | B1 |
6438550 | Doyle et al. | Aug 2002 | B1 |
6442548 | Balabine et al. | Aug 2002 | B1 |
6446091 | Noren et al. | Sep 2002 | B1 |
6457007 | Kikuchi et al. | Sep 2002 | B1 |
6457065 | Rich et al. | Sep 2002 | B1 |
6487469 | Formenti | Nov 2002 | B1 |
6493742 | Holland et al. | Dec 2002 | B1 |
6532488 | Ciarlante et al. | Mar 2003 | B1 |
6587873 | Nobakht et al. | Jul 2003 | B1 |
6594675 | Schneider | Jul 2003 | B1 |
6604100 | Fernandez et al. | Aug 2003 | B1 |
6611843 | Jacobs | Aug 2003 | B1 |
6636845 | Chau et al. | Oct 2003 | B2 |
6681221 | Jacobs | Jan 2004 | B1 |
6684222 | Cornelius et al. | Jan 2004 | B1 |
6725212 | Couch et al. | Apr 2004 | B2 |
6959416 | Manning et al. | Oct 2005 | B2 |
7043472 | Aridor et al. | May 2006 | B2 |
7072896 | Lee et al. | Jul 2006 | B2 |
7103915 | Redlich et al. | Sep 2006 | B2 |
7117216 | Chakraborty | Oct 2006 | B2 |
7139974 | Bascom et al. | Nov 2006 | B1 |
7280995 | Sedlar | Oct 2007 | B1 |
7281206 | Schnelle et al. | Oct 2007 | B2 |
7366735 | Chandrasekar et al. | Apr 2008 | B2 |
7433870 | Chan et al. | Oct 2008 | B2 |
7461074 | Murthy et al. | Dec 2008 | B2 |
7610315 | Chang et al. | Oct 2009 | B2 |
7711702 | Smolen et al. | May 2010 | B2 |
20020056025 | Qiu et al. | May 2002 | A1 |
20020073056 | Broster et al. | Jun 2002 | A1 |
20020091734 | Redlich et al. | Jul 2002 | A1 |
20020120648 | Ball et al. | Aug 2002 | A1 |
20020133484 | Chau et al. | Sep 2002 | A1 |
20020184401 | Kadel, Jr. et al. | Dec 2002 | A1 |
20020188638 | Hamscher | Dec 2002 | A1 |
20030004937 | Salmenkaita et al. | Jan 2003 | A1 |
20030014384 | Ewald et al. | Jan 2003 | A1 |
20030025728 | Ebbo et al. | Feb 2003 | A1 |
20030033285 | Jalali et al. | Feb 2003 | A1 |
20030065659 | Agarwal et al. | Apr 2003 | A1 |
20030084056 | DeAnna et al. | May 2003 | A1 |
20030101194 | Rys et al. | May 2003 | A1 |
20030177443 | Schnelle et al. | Sep 2003 | A1 |
20030195865 | Long et al. | Oct 2003 | A1 |
20030200197 | Long et al. | Oct 2003 | A1 |
20040043758 | Sorvari et al. | Mar 2004 | A1 |
20040064387 | Clarke et al. | Apr 2004 | A1 |
20040064466 | Manikutty et al. | Apr 2004 | A1 |
20040068509 | Garden et al. | Apr 2004 | A1 |
20040068696 | Seyrat et al. | Apr 2004 | A1 |
20040103282 | Meier et al. | May 2004 | A1 |
20040143791 | Ito et al. | Jul 2004 | A1 |
20040176958 | Salmenkaita et al. | Sep 2004 | A1 |
20040225680 | Cameron et al. | Nov 2004 | A1 |
20040237035 | Cummins | Nov 2004 | A1 |
20040268305 | Hogg et al. | Dec 2004 | A1 |
20050022157 | Brendle et al. | Jan 2005 | A1 |
20050076030 | Hada et al. | Apr 2005 | A1 |
20050131926 | Chakraborty et al. | Jun 2005 | A1 |
20050278289 | Gauweiler et al. | Dec 2005 | A1 |
20050278616 | Eller | Dec 2005 | A1 |
20060004780 | Maeda et al. | Jan 2006 | A1 |
20060143177 | Idicula et al. | Jun 2006 | A1 |
20060143557 | Chan et al. | Jun 2006 | A1 |
20060143558 | Albornoz et al. | Jun 2006 | A1 |
20060168513 | Coulson et al. | Jul 2006 | A1 |
20060212467 | Murthy et al. | Sep 2006 | A1 |
20060259854 | Walker et al. | Nov 2006 | A1 |
20070044012 | Suver et al. | Feb 2007 | A1 |
20070150809 | Yoshida | Jun 2007 | A1 |
20080021916 | Schnelle et al. | Jan 2008 | A1 |
20080072141 | Hodel-Widmer | Mar 2008 | A1 |
20080077606 | Fang et al. | Mar 2008 | A1 |
20080319999 | Simpson et al. | Dec 2008 | A1 |
20090070295 | Otomori et al. | Mar 2009 | A1 |
Number | Date | Country |
---|---|---|
0 856 803 | Aug 1998 | EP |
WO 9746956 | Dec 1997 | WO |
WO 0014632 | Mar 2000 | WO |
WO 0049533 | Aug 2000 | WO |
WO 0159602 | Aug 2001 | WO |
WO 0161566 | Aug 2001 | WO |
Entry |
---|
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Deceleration,” PCT/US2006/039706, dated Feb. 22, 2007, 13 pages. |
Current Claims PCT/US2006/039706, 4 pages. |
Arnold-Moore, Tim et al., “Architecture of a Content Management Server for XML Document Application,” Web information Systems Engineering 2000, IEEE Computer Society—vol. 1, Jun. 19, 2000, XP010521842, pp. 97-108. |
Sato, Hiroyuki et al., “Hyperclip: A Tool for Gathering and Sharing Meta-Data on User's Activities by Using Peer-to-Peer Technology,” NTT Corporation—May 2002, retrieved from the internet at http://www.cs.rutgers.edu/{shklar/www11/final-submissions/paper12.pdf, retrieved on Jan. 29, 2007, 5 pages. |
Wilde, Erik et al., “From Content-centered Publishing to a Link-based View of Information Resources,” Proceedings of the 33rd Annual Hawaii International Conference—Jan. 4-7, 2000, XP010545318, pp. 1-10. |
Wollschlaeger, Martin et al., “XML based Description Model as a Platform for Web-based Maintenance,” Industrial Informatics Conference 2004, XP010782616, pp. 125-130. |
Al-Khalifa, Shurug et al., “Structural Joins: A Primitive for Efficient XML Query Pattern Matching”, Feb. 26-Mar. 1, 2002, Data Engineering, 2002. Proceedings. 18th International Conference, pp. 141-152. |
Bourret, R. et al., “A Generic Load/Extract Utility for Data Transfer Between XML Documents and Relational Databases,” Proc. Second International Workshop on Advanced issues of E-Commerce and Web-Based Information Systems, IEEE Computing Society, Jun. 8-9, 2000, pp. 134-143. |
Braga, Daniele et al., “A Graphical Environment to Query XML Data with Query,” Proceedings of the Fourth International Conference on Web Information Systems Engineering (WISE '03), 2003, IEEE, 10 pages. |
Chae, Mi-Ok et al., “Design and Itnplementation of an Object-Oriented Multimedia DBMS Tightly Coupled with Information Retrieval Functions,” Proc. 17th IASTED International Conference on Applied Informatics, Feb. 15-18, 1999, abstract. |
Chakraborty, Krishnendu, “The XML Garbage Collector”, The Source for Developers, Sun Developer Network Site XP-002297849, Mar. 2002, [online], retrieved Apr. 14, 2005, retrieved from the internet: <URL: http://developers.sun.com/solaris/articles/xml—garbage—collector.html>, pp. 1-6. |
Chen, Ruey-Shun et al., “Developing an XML framework for metadata system”, Trinity College Dublin, Proc. of the 1st Inter. Sympo. on Information and Communication, pp. 267-272. |
Cheng, Josephine et al., “IBM DB2 XML Extender,” IEEE, ICDE '00 Conference, San Diego, Feb. 2000, 139 pages. |
Jajodia, Sushil et al., “Toward a Multilevel Secure Relational Data Model,” ACM, 1991, 8393 SIGMOD Record, Jun. 20, 1991, No. 2, New York, US, XP 000364619, pp. 50-59. |
Manolescu, Dragos, Review of “Metadata solutions: using metamodels, repositories, XML, and enterprise portals to generate information on demand by Adrienne Tannebaum”, Mar. 2003, ACM Press, vol. 28, Issue 2, p. 38. |
Noser, Hansrudi et al., Dynamic 3D Visualization of Database-Defined Tree Structures on the WWW by Using Rewriting Systems, 2000, IEEE, XP-002262516, pp. 247-254. |
Oracle Corporation, “Oracle® iFS (Internet File System,” Technical Data Sheet, Mar. 1999, XP-002204710, pp. 1-3. |
Rao, Herman Chung-Hwa et al., “An Overview of the Internet File System,” 1997, IEEE, XP-002204711, pp. 474-477. |
Ricardo, Catherine, Database Systems: Principles, Design, & Implementation, 1990, MacMillian Publishing co., pp. 357-361, 379-380. |
Vorthmann, Scott et al. “Beyond Schemas, Schema Adjuncts and the Outside World,” Markup Languages, Online!, vol. 2, No. 3, Jun. 2000, pp. 1-8. |
Written Opinion, Application No. PCT/US03/35551 (8 pages). |
Current claims in PCT/US03/35551, pp. 20-23. |
U.S. Appl. No. 11/601,116, filed Nov. 16, 2006. |
U.S. Appl. No. 11/716,462, filed Mar. 8, 2007. |
U.S. Appl. No. 11/716,190, filed Mar. 8, 2007. |
U.S. Appl. No. 11/716,010, filed Mar. 8, 2007. |
U.S. Appl. No. 11/716,107, filed Mar. 8, 2007. |
U.S. Appl. No. 11/716,126, filed Mar. 8, 2007. |
Madore, David, “GCFS: a Garbage-Collected Filesystem for Linux”, Feb. 2000, 15 pages. |
Mellande, “Unix File system Security”, Jun. 2002, 26 pages. |
Callaghan, et al., “NFS Version 3 Protocol Specification”, RFC 1813, Jun. 1995, 93 pages. |
Wilde et al., “From Content-centered Publishing to a Link-based view of Information Resources”, Proceedings of the 33rd Hawaii International Conference on System Sciences, dated 2000, 10 pages. |
W3C XML Inclusions (XInclude) Version 1.0 (Second Edition); W3C Recommendation Nov. 15, 2006; W3C XML Inclusion-XInclude.pdf, retrieved from the Internet Jul. 12, 2011, 24 pages. |
Jirka Kosek and Petr Nalevska (2006), Relaxed—On the Way Towards True Validation of Compound Documents, pp. 427-436. |
Number | Date | Country | |
---|---|---|---|
20070094286 A1 | Apr 2007 | US |