Title of Invention | DATA WAREHOUSING METHOD |
---|---|
Abstract | An apparatus and method for implementing data warehousing systems. According to a first embodiment, a system may include a plurality of data warehouses, and a data warehouse manager configured to extract data sets from one or more data sources for storage in one or more of the plurality of data warehouses. Each of a first subset including two or more of the plurality of data warehouses may be configured to store a respective replica of a first data set extracted by the data warehouse manager. Further, the data warehouse manager may be further configured to allow a query dependent upon the first data set to be evaluated by one of the first subset of data warehouses before each respective replica of the first data set has been stored to a corresponding data warehouse of the first subset. |
Full Text | TITLE: APPARATUS AND METHOD FOR DATA WAREHOUSING BACKGROUND OF THE INVENTION Field of the Invention [0001] This invention relates to computer systems and, more particularly, to implementation of data warehousing systems. data set to be evaluated by one of the first subset of data warehouses before each respective replica of the first data set has been stored to a corresponding data warehouse of the first subset. [0006] According to a second embodiment, a system may include data warehouses configured to store data sets extracted from one or more data sources, and a data warehouse manager configured to present the data warehouses to a client as a single data warehouse. Location of the data sets within the data warehouses may be transparent to the client Also, at a given time, a first data set stored by a first data warehouse and that is available at the given time to the client for querying may be dissimilar to a second data set stored by a second data warehouse and that is also available at the given time to the client for querying. In response to receiving from the client a query directed to a data set stored by one or more of the data warehouses the data "warehouse manager may be further configured to identify a particular one of the data warehouses capable of evaluating the query and to convey the query to the particular data warehouse for evaluation. [0007] A method is further contemplated, which according to an embodiment may include extracting data sets from one or more data sources for storage in one or more data warehouses and presenting the data warehouses to a client as a single data warehouse. Location of the data sets within the data warehouses may be transparent to the chent In response to receiving from the client a query directed to a data set stored by one or more of the data warehouses, the method may further include identifying a particular one of the data warehouses capable of evaluating the query and conveiny the query to the particular data warehouse for evaluation. At a given time, a first data set stored by a first data warehouse and that is available at the giver time to the client for querying may be dissimilar to a second data set stored by a second data warehouse and that is available at the given time to the client for querying BRIEF DESCRIPTIQN OF THE DRAWINGS [0008] FIG. 1 is a block diagram illustrating one embodiment of a data warehousing system. [0009] FIG. 2 is a block diagram illustrating one embodiment of data set replication across data warehouses. [0010] FIG. 3 is a flow diagram illustrating one embodiment of a method of storing extracted data into data warehouses using rough synchronization. [0011] FIG. 4 is a flow diagram illustrating one embodiment of a method of querying data stored by data warehouses using rough synchronization. [0012] FIG. 5A is a timing diagram illustrating one embodiment of a relationship between data set updates and querying under rough synchronization. [0013] FIG. 5B-D are block diagrams illustrating one exemplary embodiment of a data set replicated using rough synchronization- [0014] FIG. 6 is a flow diagram illustrating one embodiment of a method of virtualizing data warehouses to a chent [0015] FIG. 7 is a block diagram clustrating one embodiment of a data warehouse computing cluster. [0016] FIG. 8 is a block; diagram illustrating an exemplary embodiment of a computer system. [0017] While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be [0019] Providing a specific business function or site with just the data and resources it needs to perfonn the majority of its tasks may avoid allocation of excess or redundant resources within the enterprise. However, in some instances, data from across the enterprise may need to be analyzed as a whole. For example, analysis of enterprise-wide financial or production trends may depend on the data generated and maintained at multiple different sites or across different departments. In some instances, data analysis tools may be configured to detect complex interrelationships across business functions that are not directly discernble from analysis of a single function in isolation. For exaample, a relationship may exist between personnel experience and training (tracked by human resources), distribution productivity and financial performance (e.g., reduced number of product returns due to distribution errors). Such a relationship may be identified by examining the data from each of these functions collectively for correlations. [0020] In some embodiments, an enterprise may provide a centralized data warehousing system to facilitate processing and analysis of enterprise-wide data. Generally speaking, a data warehouse may include a database or other data repository that is configured to aggregate data stored in one or more data sources. The data sources may themselves be other databases or other applications within the enterprise that store or produce data. Often, data stored within a data warehouse is derivative of data stored elsewhere within the enterprise. However, in some instances, a data warehouse may also be configured to serve as primary storage for some data, such as enterprise-wide analysis data or even enterprise function or site data. [0021] One embodiment of a data warehouse system is illustrated in FIG. 1. In the illustrated embodiment, data warehouse system 100 includes a data warehouse manager 110, which is configured to interact with a number of data warehouses represented by data warehouses 120a-d in FIG. 1. The number of data warehouses 120a-d illustrated in FIG. 1 is merely illustrative and may differ in other embodiments. Data warehouse manager 110 may also be configured to interact with an operations database 130. Data warehouse manager 110 is also configured to interact with one or more clients 140 and data sources 160, which may be external to data warehouse system 100 (e.g., distributed throughout an enterprise, or across multiple enterprises, at different logical or physical sites). In some embodiments, some clients 140 may be configured to interact with data warehouse manager 110 through a [0032] Regardless of the specific type(s) of data source 160, manager 110 may be configured to perform the appropriate operations to extract therefrom the desired data set(s), apply any necessary transformations to convert the data into a format suitable for storage in data 'warehouses 120. and to load the extracted data to one or more of data warehouses 120. Where the data content of a particular data source 160 is highly dissimilar in format to the [0036] In some embodiments, the data sets stored by data warehouses 120 may be common to many different types of enterprises. For example, customer order and shipping data may be commonly available data sets within both brick-and-mortar enterprises and enterprises that provide virtual customer interfaces (e.g., web-based electronic commerce interfaces or e-commerce interfaces). However, in some embodiments, enterprises supporting e-commerce interfaces may be configured to collect and store substantial amounts of information regarding customer interaction with the enterprise, even before a sale occurs. . In one embodiment, the session tracking data set illustrated in FIG. 2. may be configured to store data regarding any aspect of a customer's interaction with an e-commerce interface. For example, the session tracking data set may be configured to store data indicating the [0039] Clustering or grouping of data warehoues 120 with respect to certain data sets, such that different groups of data warehouses 120 niay be optimized for different types of queries, may enable data warehouse system 100 to be more optimally tuned for aa aaticipated pattern of "usage. For example, hardware systems underlying data warehouses 120 may be provisioned with more or fewer computing resources depending on the degree of activity a given clustering of data warehouses 120 is. expected to handle, as described in greater detail below in conjunction with the description of FIG. 7. However, in other embodiments, data sets may be distributed across data warehouses 120 in a more homogeneous fashion. For example, in one embodiment each data warehouse 120 may include roughly the same set of computational resources, and data sets may be distributed in various degrees of replication across the roughly equivalent data warehouses 120. While hardware resources may be less optimally tuned with respect to data storage and retrieval activity in such an embodiment, a relatively homogenous implementation of [0043] One approach to preventing inconsistent client behavior due to uncontrolled access to unsynchronized data may include manager 110 preventing any access to a replicated data set while that data set is unsynchronized across multiple data warehouses 120. For example, in one embodiment manager 110 may be configured to -implement updates to replicated data sets as atomic or transactional operations. Generally speaking, an atomic or transactional operation involving synchronization across multiple entities is treated as indivisible with respect to other operations: that is, such an operation completes to either all or none of the entities involved before another operation targeting those entities is allowed to proceed. Thus, in one embodiment manager 110 may disallow for customer ship data for the previous calendar quarter does not depend on the update currently ongoing to data warehouse 120a. That is, ail the data necessary to satisfy the query may be present within data warehouse 120b, even though the customer ship data within data warehouse 120b is not completely synchronized with the replica within data warehouse 120a- Consequently, manager 110 may allow the query to be evaluated by data warehouse 120b before the customer ship data updates have been stored to data warehouse 120b. In this example, the data set in question is not perfectly synchronized across data warehouses 120a-b, but rather roughly synchronized, where data warehouses 120 having sufficient data to evaluate a query are allowed to do so even if they do not possess the most current version of the data set in question- [0046] In the embodiment of data warehouse system 100 shown in FIG. 1, manager 110 may be configured to utilize operations database 130 to maintain information about data sets stored by data warehouses 120, such as information identifying the location (S) when a given data set is stored (e,g., the specific data warehouses 120 having the sole copy or a replica of the given data set) as well as information identifying the state of each copy of a data set with respect to any ongoing update activity. For example, in one embodiment operations database 130 may include a respective record corresponding to each copy of the customer ship data table stored by data warehouses 120. For the embodiment shown in FIG. 2, operations database 130 may store two such records, each of which identifies respective data warehouses 120a-b as storing respective replicas of the customer ship data table. Further, each record may include a field indicating the status of the table within the corresponding data warehouse 120a-b. Referring to the example given in the previous paragraph, while manager 110 is coordinating the update of the customer ship data table within data warehouse 120a, the corresponding record within operations database 130 may indicate that that replica is being uppdated. is unavailable, or other suitable status. In contrast, the record for the customer ship data replica stored by data warehouse 120b may indicate that the replica is not being updated, or that its update has already completed. [0047] In various embodiments, operations database 130 may be configured to store diSerent types of data identifying the location and state of data sets. For example, location identifying data may include unique identifiers for data warehouses 120, such as system names, internet protocol (IP) addresses, or other suitable identifiers. State information may range from simple semaphores indicating whether a given data set is being updated or not to more complex fields characterizing the state of a given data set For example, in some embodiments, state information corresponding to a data set may indicate the last time it was updated, the data sources 160 used to perform the update, the cause of the update (e.g., due to a scheduled operation or a manual operation), or any other suitable state information. In some embodiments, manager 110 may be configured to use transactional operations to read and/or modify operations database 130 in order to ensure synchronization of operational state (for example, in embodiments where manager 110 is configured to support multiple concurrent read or write operations to data warehouses 120). [0048] The location and state information stored by operations database 130 may be used by manager 110, in one embodiment, to implement rough synchronization of data stored by data warehouses 120, That is, manager 110 may be configured to consult operations database 130 when extracting and storing data into data warehouses 120, as well as when receiving operations to retrieve stored data (e.g., queries). One enibodiment of a method of storing extracted data into data warehouses 120 using rough synchronization is illustrated in FIG. 3. Referring collectively to FIG. 1 through FIG. 3, operation begins in block 300 where an operation to extract a data set from one or more data sources begins. For example, in one embodiment manager 110 may be configured to extract a data set such as customer ship data from one or more data sources 160, such as customer fulfillment sites distributed throughout an enterprise, on a recurring basis (e.g., hourly, nightly, weekly). Alternatively, a user or application may request via a chent 140 that a data set be extracted and stored. In some embodiments, it is contemplated that multiple data sets may be concurrently extracted from data sources 160 and updated within one or more data warehouses 120. For example, multiple data sets may be concurrently extracted and stored as a batch job or process, such as a scheduled batch job, or data sets maybe dynamically streamed from data sources 160 and updated within data warehouses 120. [0049] Subsequently, manager 110 retrieves the extracted data, for example by issuing queries or other commands to data sources 160 to elicit data (block 302)., Extracted data may be transformed if necessary (block 304). For example, extracted data may need to be reformatted, or the data itself modified accordiug to the data storage requirements of data warehouses 120 as described above. [0050] Manager 110 then detennices which data warehouses 120 host the extracted data set (block 306). For example, in one embodhnent manager 110 may consult operadons database 150 to determine the locations where the extracted data set resides, according to records stored thereiiL Manager 110 then selects a particular data warehouse 120 to update with the extracted data set, and updates state information associated with the data set to indicate that the update is occurring (block 308). In some embodiments, manager 110 may be configured to update each data warehouse 120 that hosts the extracted data set in a parallel or overlapping fashion, although these updates may begin or end at different times. Such parallelism is illustrated in FIG. 3 with respect to the repeated ones of blocks 308-312, which may be performed in parallel for each of several different data sets or data set replicas. For example, manager 110 may be configured to begin updating the extracted data set on several different data warehouses 120 at the same time, or may stagger the updates such that they partially overiap in time. Also, it is noted that in some embodiments, multiple different data sets may be concurrently updated within multiple different data warehouses 120. [0051] In other embodiments, manager 110 may be configured to update data warehouses 120 in a serial or conditional fashion. For example if the extracted data set is replicated by a subset of data warehouses 120, manager 110 may randomly select a particular data warehouse 120 to begin updating. Alternatively, manager 110 may select the least busy data warehouse 120 of the subset, or may use some other selection criterion. In some embodiments where operations database 130 tracks outstanding data set read operations, a data warehouse 120 may not be selected for a data set update if the data set is currently being read (e.g., by a query). Once a data warehouse 120 is selected, in one embodiment manager 110 may update state information in the record stored in operations database 130 associated with the data set and selected data warehouse 120 to indicate that the data set is being modified on the selected data warehouse. As noted above, in some embodiments manager 110 may use transactional operations to interact with operations database 130, for example to ensure proper ordering of mtiltiple concurrent operations. [0052] The extracted data set is then stored to the selected data warehouse 120 (block 310). It is noted that other rephcas of the data set may be accessed and/or updated via other data warehouses 120 while the update to the selected data warehouse 120 proceeds. Once the update is complete, manager 110 updates the state information associated with the data set to indicate the completion of the update (block 312). [0053] It is contemplated that in some embodiments, manager 110 need not buffer the extracted data set while it is stored in turn to its coiresponding data warehouses 120. In one alternative embodiment manager 110 may select a data warehouse 120 to update before beginning data extraction fiom data sotirces 160. Manager 110 may then stream or cause to be streamed the extracted data (applying appropriate transformations) to the selected data warehouse 120, and may subsequently use the updated data warehouse 120 as the data source for updating other data warehouse 120. It is further contemplated that in some embodiments, multiple data warehouses 120 may be updated concurrently, rather than in sequence. For example, if a given data set is replicated in three data warehouses 120, two of them could be concurrently updated while leaving the third available for queries to the given data set Finally, in some embodiments total synchronization (as opposed to rough synchronization) may be achieved by updating all (or a selected subset of) data warehouses 120 concurrently, indicating state appropriately ia operations database 130. [0068] In one emodiment, at any given time, multiple data sets stored by data warehouses 120 may be available for querying by a given client 140, and at any given time one of the stored data sets may be dissimilar from another one of tbe stored data sets. For example, the two stored data sets may be dissimilar because they are defined -to store different types of data. Alternatively, two stored data sets may be configured to replicate the same data, but [0073] One embodiment of a computing cluster on which a data warehouse 120 may be implemented is-illustrated in FIG. 7. In the illustrated embodiment, data warehouse cluster 700 (or simply, cluster 700) includes a number of computing nodes 710 (or simply, nodes 710). Each of nodes 710 is coupled to each of a number of [0078] In some embodiments, cluster 700 may be readily scalable to match the expected workload of a given data warehouse 120-. For example, if a data warehouse 120 is expected to house a large quantity of data that receives infrequent or relatively simple queries, the storage arrays 730 may be provisioned to store the expected [0083] In one embodiment, I/O interface 830 may be configured to coordinate I/O traffic between processor 810, system memory 820, and any peripheral devices in the device, including network interface 840, SAN interface 850, or other peripheral-interfaces. In soine embodiments, I/O interface 830 may perform any necessary protocol . timing or other data transformations to convert data signals from one component (e.g., system memory 820) into a format suitable for use by another component (e.g., processor 810). In some embodiments, I/O interface 830 may [0087] Although the embodiments above have been described in detail, numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications. WHAT IS CLAIMED IS: 1. A system comprising: a plurality of data warehouses; and a data -warehouse manager configured to extract data sets from one or more data sources for storage in one or more of said plurality of data warehouses; wherein each of a first subset comprising two or more of said plurality of data warehouses is configured to store a respective replica of a first data set extracted by said data warehouse manager; and wherein said data warehouse manager is further configured to allow a query denpendent said first data set to be evaluated by one of said first subset of data warehouses before each respective replica of said first data set has been stored to a corresponding data warehouse of said first subset 2. The system as recited in claim 1, -wherein said query is evaluated by a first data warehouse of said first subset while said first data set is being stored to another data warehouse of said first subset 3. The system as recited in claim 1, wherein said data warehouse manager is farther confi-gured to allow said query to be evaluated by any given data warehouse of said first subset after said first data set has been stored to said given data warehouse. 4. The system as recited in claim 1, wherein storing of said first data set to each of said first subset of data warehouses occurs at least partially concurrently. 5. The system as recited in claim 1, wherein a given one of said plurality of data warehouses is configured to store a second data set extracted by said data warehouse manager, and wherein at least another one of said plurality of data warehouses does not store any replica of said second data set, 6. The system as recited in claim 1. wherein each of said plurality of data warehouses comprises a respective relational database. 7. The system recited in claim 1, wherein said data warehouse manager is further configured to store in an operations database identifying information corresponding to each data set stored within said plurality of data warehouses. 8. The system as recited in claim 7. wherein for said first data set said identifying information conq)rises respective identities of each of said first subset of data warehouses and respective state information indicating whether said first data set has been stored to a corresponding one of said first subset of data warehouses. 9. The system as recited in claim 8, wherein said data warehouse manager is further configured to determine that a given one of said first subset of data warehouses has sufficient data to evaluate said query according to said respective state information, and to responsively cpnvey said query to said given one of first subset for evaluation. 10. The system as recited in claim 1, wherein at least two of said plurality of data warehouses are located at different physical sites. 11. The system as recited in claim 1, wherein each of said phirahty of data warehouses comprises a respective computing chister, wherein a given respective computing cluster comprises at least one computing node coupled to a plurality of storage devices via a storage area network (SAN). 12. The system as recited in claim 11. wherein said at least one confuting node is configured to execute an operating system comphant with a version of Linux. 13. The system as recited in claim 1. -wherein said data warehouse manager is configured to receive said query from a requesting apphcation via a web services interface. 14. A method, comprising: extracting data sets from one or more data sources for storage in one or more of a plurality of data warehouses; storing a respective replica of a first data set in each data warehouse of a first subset comprising two or more of said plurality of data warehouses; and allowing a query dependent upon said first data set to be evaliated by one of said first subset of data warehouses before each respective rephca of said first data set has been stored to a corresponding data warehouse of said first subset 15. The method as recited ia claim 14. further comprisiog a first data warehouse of said first subset evaluating said query while another data warehouse of said first subset is storing said first data set 16. The method as recited in claim 14, further comprising allowing said query to be evaluated by any given data warehouse of said first subset after said first data set has been stored to said given data warehouse. 17. The method as recited in claim 14, wherein storing of said first data set to each of said first subset of data warehouses occurs at least partially concurrently. 18. The method as recited in claim 14, wherein a given one of said plurality of data warehouses is configured to store a second data set extracted by said data warehouse manager, and wherein at least another one of said plurality of data warehouses does not store any rephca of said second data set 19. The method as recited in claim 14, wherein each of said plurality of data warehouses comprises a respective relational database. 20. The method as recited in claim 14, farther comprising storing in an operations database identifying information correspondmg to each data set stored within said plurality of data warehouses. 21. The method as recited in claim 20, wherein for said first data set, said identifying information comprises respective identities of each of said first subset of data warehouses and respective state information indicating whether said first data set has been stored to a corresponding one of said first subset of data warehouses. 22. The method as recited in claim 21, farther comprising: determining that a given one of said first subset of data warehouses has sufficient data to evaluate said query according to said respective state information; and conveying said query to said given one of said first subset for evaluation in response to said determining. 23. The method as recited in claim 14. whierein at least two of said plurality of data warehouses are located at different physical sites. 24. The method as recited in claim 14, wherein each of said plurality of data warehouses comprises a respective computing cluster, wherein a given respective coroputiiig cluster comprises at least one coraputing node coupled to a plurality of storage devices via a storage area network (SAN). 25. The method as recited in claim 24, wherein said at least one computing node is configured to execute an operating system compliant with a version of Linux. 26. The method as recited in claim 14, further comprising receiving said query from a requesting apphcation via a web services interface. 27. A computer-accessible medium comprising program instructions, wherein the program instructions are executable by a computer system to: extract data sets from one or more data sources for storage in one or more of a plurality of data warehouses; store a respective replica of a first data set in each of a first subset comprising two or more of said plurality of data warehouses; and allow a query dependent upon said first data set to be evaluated by one of said first subset of data warehouses before each respective replica of said first data set has been stored to a corresponding data warehouse of said first subset 28. The compter-accessible medium as recited in claim 27, wherein a first data warehouse of said first subset evaluates said query while another data warehouse of said first subset is storing said first data set 29. The computer-accessible medium as recited in claim 27. wherein said program instraaction are further executable to allow said qu.ery to be evaluated by any given data warehouse of said subset after said first data set has been stored to said given data warehouse. 30. The computer-accessible medium as recited in claim 27, wherein storing of said first data set to each of said first subset of data warehouses occurs at least partially concurrently. 31. The computer-accessible medium as recited in claim 27. wherein each of said plurality of data warehouses comprises a respective relational database. 32. The computer-accessible medium as recited in claim 27, wherein the program instructions are further executable to store in an operations database identifying information corresponding to each data set stored within said plurality of data warehouses. 33. The computer-accessible medium as recited in claim 32, wherein for said first data set, said identifying information comprises respective identities of each of said first subset of data warehouses and respective state infonnation indicating whether said first data set has been stored to a corresponding one of said first subset of data warehouses. 34. The computer-accessible medium as recited in claim 33, wherein the program instructions are further executable to: determine that a given one of said first subset of data warehouses has sufficient data to evaluate said query according to said respective state information; and convey said query to said given one of said first subset for evaluation ID response to said determining. 35. The computer-accessible medium as recited in claim 27. wherein the program instructions are further executable to implement an operating system compliant with a version of Linux. 36. The computer-accessible medium as recited in claim 27. wherein the program instructions are further executable to receive said query from a requesting application via a web services interface. 37. A system, comprising: a plurality of data -warehouses configured to store data sets extracted from one or more data sources; and a data warehouse manager configured to present said plurality of data warehouses to a client as a single data warehouse, wherein location of said data sets within said plurality of data warehouses is transparent to said client; wherein at a given time, a first data set stored by a first one of said plurality of data warehouses and available at said given time to said client for querying is dissimilar to a second data set stored by a second one of said plurality of data warehouses and available at said given time to said client for querying; and 61. The computer-accessible medium as recited in claim 60. wherein for a given data set, said identifying information comprises respective identities of each of said one or more data warehouses on which said given data set is stored or to be stored, and wherein said identifying information further comprises respective state information indicating whether said given data set has been stored to a corresponding data warehouse. 62. The computer-accessible medium as recited in claim 61, wherein identifying said particular data warehouse capable of evaluating said query further comprises determining that said particular data warehouse has sufficient data to evaluate said query according to said respective state information. 63. The computer-accessible medium as recited in claim 55. further comprising receiving said query. from a requesting application via a web services interface. 64. A system, comprising: a plurality of data warehouses; a data warehouse manager configured to extract data sets from one or more data sources for storage in one or more of said plurality of data warehouses; and an operations database configured to interact with said data warehouse manager and to store data warehouse slate information associated with said data sets; wherein, in response to receiving from a given one of a plurality of clients a query directed to a data set stored by one or more of said plurality of data warehouses, said data warehouse manager is further configured to identify a particular one of said plurality of data warehouses capable of evaluating said query and to convey said query to said particular data warehouse for evaluation, wherein said identifying is dependent upon said data warehouse state information. 65. The system as recited in claim 64. wherein for a given data set. said data warehouse state information associated with said given data set comprises information identifying one or more of said plurality of data warehouses configured to store said given data set. 66. The system as recited in claim 64. wherein for a given data set, said data warehouse state information associated with said given data set comprises information identifying a state of said given data set with respect to an operation to modify contents of said given data set. 67. The system as recited in claim 64. wherein each of a first subset comprising two or more of said plurality of data warehouses is configured to store a respective replica of a first data set extracted by said data warehouse manager, and wherein said data warehouse manager is further configured to allow a query dependent upon said first data set to be evaluated by one of said first subset of data warehouses before each respective replica of said first data set has been stored to a corresponding data warehouse of said first subset. 68. The system as recited in claim 64, wherein said data warehouse manager is further configured to present said plurality of data warehouses to said given client as a single data warehouse, wherein location of said data sets within said plurality of data warehouses is transparent to said given client. 69. The system as recited in claim 68. wherein at a given time, a first data set stored by a first one of said plurality of data warehouses and available at said given time to said given client for querying is dissimilar to a second data set stored by a second one of said plurality of data warehouses and available at said given time to said given client for querying. |
---|
Patent Number | 278260 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Indian Patent Application Number | 3136/CHENP/2007 | ||||||||||||
PG Journal Number | 53/2016 | ||||||||||||
Publication Date | 23-Dec-2016 | ||||||||||||
Grant Date | 19-Dec-2016 | ||||||||||||
Date of Filing | 17-Jul-2007 | ||||||||||||
Name of Patentee | AMAZON TECHNOLOGIES, INC | ||||||||||||
Applicant Address | P O BOX 8102,RENO, NEVADA 89507, USA | ||||||||||||
Inventors:
|
|||||||||||||
PCT International Classification Number | G06F 17/30 | ||||||||||||
PCT International Application Number | PCT/US05/45349 | ||||||||||||
PCT International Filing date | 2005-12-14 | ||||||||||||
PCT Conventions:
|