[0001] This invention relates generally to database management, and more particularly to offline database management in a network-based system.
[0002] Internet web pages have gone from simple photo album and static content presentations to interactive searchable catalogs and advanced online order placing and tracking. Therefore, to support these functions, putting databases on the Internet is an integral part of current web site design and development. Processing of the information stored in such Internet databases, and the efficiency with which such processing is accomplished, have become increasingly important.
[0003] Database vendors have therefore introduced databases designed with web-ready features and various methods to access the information stored in such databases have been provided, such as Common Gateway Interface (“CGI”) invocation, Java/Java Database Connectivity (“JDBC”), Active-X™ and Cold Fusion™.
[0004] However, there are a number of deficiencies in such web-ready databases and the methods currently used for accessing and processing of the information stored in such databases. Stand-alone web servers tend to be stateless, i.e., do not save and carry over individual web page information from one web page to another. To provide an online user with a content-sensitive web page, database integration occurs at the web server side. When the online user issues a database query from the online user's web browser, the query is transmitted over the Internet through a web server, to a web server/database access interface, to a database server having the database stored therein. When the results of the query are returned with the information retrieved from the database, the query results are formatted and are then transmitted to the user's web browser.
[0005] Thus, the database resides on the web server side of the interaction, and database queries are executed remotely to the user who issues the query. Making database queries from a web server may be expensive and time consuming. Database vendors may charge license fees based on database connection times. And, when database queries are made from a web server, the database response time becomes dependent upon the web server response time.
[0006] Additionally, many business entities that are just entering Internet commerce and at the early stages of building a web site may not have the time and financial resources to equip a web site with a web server and a database server and may not desire to engage in the continuous administration required to maintain as current the information stored in databases supporting the web site.
[0007] These and other deficiencies exist in current web-based database systems.
[0008] Thus, there is a need for a system and method that will enable a web site owner to build a web site with pages having database functionality for users of the web site without the requisite database server and database administration resources.
[0009] There is also a need for a system and method which enables processing of the information contained in a web-based database to be performed locally at the computer of an online user rather than at the web server side, thus enabling a web site owner to realize cost savings and the online user to realize a more efficient processing cycle and quicker response times.
[0010] Thus, in accordance with an embodiment of the present invention, there is provided a method for managing a database comprising the steps of (a) transmitting a database query from a client computer over a network through a server to a plurality of database file(s); (b) receiving data transmitted from the database file(s) through the server over the network; and (c) processing the database query on the received database file(s) at the client computer.
[0011] In another aspect of the invention, there is provided a system for managing a database comprising (a) means for transmitting a database query from a client computer over a network to a plurality of database file(s); (b) means for receiving data transmitted from the database file(s) through the server over the network; and (c) means for processing the database query on the received database file(s)at the client computer.
[0012] According to another aspect of the invention, when an online user first queries a database, the database file(s) is/are downloaded to a storage device associated with the user's client computer. Also downloaded to the storage device on the client computer is a database search engine program. The database search engine program and the downloaded database file(s) enable the user to perform the queries on the database file(s) stored locally at the client computer. Preferably, when the database file(s) is/are downloaded to the client computer, it is encrypted so that it is not usable without the database search engine program downloaded to the client computer. This preserves the integrity of the data in the database file(s) and prevents any unauthorized or unintended use of the data.
[0013] In another aspect of the invention, once the online user has downloaded a copy of a plurality of source database file(s) and the database search engine program, the downloaded database file(s) and the downloaded database search engine program are both stamped with an identifier (for example, a version number). When the online user executes a query of those downloaded database file(s), and the user is connected to a web server through which the source database file(s) and the source database search engine program can be accessed, the database search engine program causes a communication link to be established from the client computer to the web server to compare the version of the downloaded database file(s) stored locally on the user's client computer with the source database file(s) accessed via the web server. If there is a match, an indication of such is sent to the client computer and all database processing can be continued at the client computer. If the source version of the database file(s) differs from that stored locally at the client computer, the source database file(s) or portions thereof that differ from the downloaded database file(s) are downloaded to the client computer and the user's query is executed on the updated downloaded database file(s) stored on the client computer. Additionally, the version of the downloaded database search engine program stored locally is compared to the source database search engine program. If the two versions of the database search engine program do not match, then the source database search engine program may be downloaded.
[0014] One advantage of the present invention is that even if a user is connected to a database through a network connection, virtually all of the database processing occurs at the user's client computer thereby minimizing or significantly reducing the system load at the web server side. Additionally, the invention enables a user to update a database file by inputting the update at a local client computer and then uploading the updated file to the web server.
[0015] These and other features and advantages of the invention will be apparent through the detailed description of the preferred embodiments and the drawings attached hereto. It should be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and not restrictive of the scope of the invention.
[0016] The invention will be described with respect to the accompanying drawings, in which like elements are referenced with like numbers.
[0017]
[0018]
[0019]
[0020]
[0021] In an aspect of the invention, a system may be used for managing a plurality of database files using a computer, a processor, a network and other resources. According to one embodiment of the invention, the management of the database files is performed in response to the computer processor executing one or more sequences of one or more instructions contained in a main memory of the computer.
[0022] Such instructions may be read into the main memory from a computer-readable medium, such as a storage device. Execution of the sequences of instructions contained in the main memory causes the computer processor to perform the steps of the method described herein. It should be readily apparent, however, that one or more computer processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in the main memory to perform such steps. In alternative embodiments, hard-wired circuitry may be used in place of, or in combination with, software-based instructions to implement the method of the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry or software.
[0023] The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to the computer processor for execution. Such a medium may take many forms including, but not limited to, a non-volatile medium, a volatile medium, or a transmission medium. The transmission medium may include one or more coaxial cables, one or more copper wires or one or more fiber optic cables, including the wires that comprise a bus. The transmission medium can also take the form of one or more acoustic or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, a compact disk-read only memory (CD-ROM), a digital video disk (DVD), one or more punch cards, a paper tape, a random access memory (RAM), a programmable read-only memory (PROM), an erasable programmable read only memory (EPROM), a FLASH-EPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer processor can read instructions for execution.
[0024] The system may also include a communication interface coupled to a bus. The communication interface may enable two-way data communication by coupling the computer to a network link that is connected to a local area network (LAN) or another network, such as the Internet. For example, the communication interface may be an integrated service digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, the communication interface may be a LAN card to provide a data communication connection to a compatible LAN. Wireless links also may be implemented. In any such implementation, the communication interface sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0025] The network link typically provides data communication through one or more networks to other data devices. For example, the network link may provide a connection through a LAN to a host computer, server or to other data equipment operated by an Internet Service Provider (ISP) or another entity. The ISP may, in turn, provide data communication services through the world wide packet data communication network, now commonly referred to as the “Internet”. The LAN and the Internet both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals through the communication interface, which carry the digital data to and from the computer system, are exemplary forms of carrier waves transporting the information.
[0026] The system of the invention can send messages and receive data, including program code, through the network(s), the network link, and the communication interface. In the Internet example, a server might transmit a requested code for an application program to be downloaded through the Internet, the LAN and the communication interface. In accordance with the invention, one such downloaded application program provides for operating and maintaining the database and system described herein. The received code may be executed by the computer processor as it is received and/or may be stored in a storage device for later execution. In this manner, the system may obtain application program code via a carrier wave or other communications.
[0027]
[0028] The web server
[0029] The web server
[0030] The communications links may be comprised of, or may interface to any one or more of the Internet, an intranet, a Personal Area Network (PAN), a Local Area Network (LAN), a Wide Area Network (WAN), a Metropolitan Area Network (MAN), a storage area network (SAN), a frame relay connection, an Advanced Intelligent Network (AIN) connection, a synchronous optical network (SONET) connection, a digital T1, T3, E1 or E3 line, a Digital Data Service (DDS) connection, a Digital Subscriber Line (DSL) connection, an Ethernet connection, an Integrated Services Digital Network (ISDN) line, a dial-up port such as a V.90, a V.34 or a V.34bis analog modem connection, a cable modem, an Asynchronous Transfer Mode (ATM) connection, a Fiber Distributed Data Interface (FDDI) connection or a Copper Distributed Data Interface (CDDI) connection. The communications links may also include or interface to any one or more of a Wireless Application Protocol (WAP) link, a General Packet Radio Service (GPRS) link, a Global System for Mobile Communication (GSM) link, a Code Division Multiple Access (CDMA) link, a Time Division Multiple Access (TDMA) link such as a cellular phone channel, a Global Positioning System (GPS) link, a cellular digital packet data (CDPD) link, a Research in Motion (RIM) limited duplex paging type device, a Bluetooth radio link, or an IEEE 802.11-based radio frequency link. The communications links may also include or interface to any one or more of an RS-232 serial connection, an IEEE-1394 Firewire connection, a Fibre Channel connection, an infrared (IrDA) port, a Small Computer Systems Interface (SCSI) connection, a Universal Serial Bus (USB) connection or another wired or wireless, digital or analog interface or connection.
[0031] The offline database manager program
[0032] The external data source may include one or more existing databases. The existing databases may be formatted via use of an Oracles relational database application, such as that sold commercially by Oracle Corporation. Other commercial database applications, such as a database application sold by Informix™, a Database 2 (DB2) database application, a Sybase™ database application, an On Line Analytical Processing (OLAP) application, a Standard Query Language (SQL) application, a storage area network (SAN) application, a Microsoft Access™ application or other similar data storage or query formats, platforms or resources may also be used.
[0033] The offline database manager program
[0034] To make remote stored database files available to online users (i.e., visitors to a web site), a web site owner may use the offline search wizard
[0035] The client computer
[0036] The client computer
[0037] The client computer
[0038] The database search engine program
[0039]
[0040] The web server
[0041] Each of the downloaded database file(s) may be stamped with an identifier such as, for example, a version number. The downloaded database search engine program
[0042] If the downloaded version of the database search engine program
[0043]
[0044] At step
[0045]
[0046] The offline database manager program
[0047] At step
[0048] At step
[0049] The database search template may be created using the offline search wizard
[0050] At step
[0051] After the search pages are generated and uploaded online to the disk storage device
[0052] The database search engine program
[0053] When the database search engine program
[0054] As has been explained above, in the system
[0055] When used with the system
[0056] Other embodiments, uses and advantages of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. The specification should be considered exemplary only, and the scope of the invention is accordingly intended to be limited only to the following claims.