The instant disclosure relates to computer programs. More specifically, the disclosure relates to tables for storing data accessible by computer programs.
Data input collected by a web form may be inaccessible to scripts that do not understand the data format of the input data. For example, the web form may produce a data format unrecognizable to scripts such as JavaScripts. Although software products may be available to convert the data input to a data format compatible with other scripts, the conversion process consumes processor time and may result in two copies of the data stored in memory. Thus, it would be desirable to store the data from the web form in a format accessible by scripts of different languages and/or platforms (e.g., instances of a language running on an instance of a processing engine).
According to one embodiment, a data structure embodied on a computer readable medium includes a first script executable by a first platform. The data structure also includes a table having at least one pair of a name and a value. The table may be consumable by the first script and by a second script executable by a second platform.
According to another embodiment, a method includes obtaining input from a web browser. The method also includes storing the input in a table accessible by a first script of a first platform and a second script of a second platform. The method further includes reading the table by the second script of the second platform.
According to yet another embodiment, an apparatus includes a processor coupled to a memory, in which the processor is configured to obtain input from a web browser. The processor is further configured to store the input in a table accessible by a first script of a first platform and a second script of a second platform. The processor is also configured to read the table by the second script of the second platform.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims. The novel features which are believed to be characteristic of the invention, both as to its organization and method of operation, together with further objects and advantages will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present invention.
For a more complete understanding of the disclosed system and methods, reference is now made to the following descriptions taken in conjunction with the accompanying drawings.
In one embodiment, the user interface device 110 is referred to broadly and is intended to encompass a suitable processor-based device such as a desktop computer, a laptop computer, a personal digital assistant (PDA) or table computer, a smartphone or other a mobile communication device or organizer device having access to the network 108. In a further embodiment, the user interface device 110 may access the Internet or other wide area or local area network to access a web application or web service hosted by the server 102 and provide a user interface for enabling a user to enter or receive information.
The network 108 may facilitate communications of data between the server 102 and the user interface device 110. The network 108 may include any type of communications network including, but not limited to, a direct PC-to-PC connection, a local area network (LAN), a wide area network (WAN), a modem-to-modem connection, the Internet, a combination of the above, or any other communications network now known or later developed within the networking arts which permits two or more computers to communicate, one with another.
Additionally, the server may access data stored in the data storage device 106 via a Storage Area Network (SAN) connection, a LAN, a data bus, or the like. The data storage device 106 may include a hard disk, including hard disks arranged in an Redundant Array of Independent Disks (RAID) array, a tape storage drive comprising a magnetic tape data storage device, an optical storage device, or the like. In one embodiment, the data storage device 106 may store input from a web form. The data may be arranged in a database and accessible through Structured Query Language (SQL) queries, or other data base query languages or operations.
The server 102 may store the consolidated data set in a consolidated data storage device 210. In such an embodiment, the server 102 may refer back to the consolidated data storage device 210 to obtain a set of data elements. Alternatively, the server 102 may query each of the data storage devices 204, 206, 208 independently or in a distributed query to obtain the set of data elements. In another alternative embodiment, multiple databases may be stored on a single consolidated data storage device 210.
The data management system 200 may also include files for entering and processing input data from a web form. In various embodiments, the server 102 may communicate with the data storage devices 204, 206, 208 over the data-bus 202. The data-bus 202 may comprise a SAN, a LAN, or the like. The communication infrastructure may include Ethernet, Fibre-Chanel Arbitrated Loop (FC-AL), Small Computer System Interface (SCSI), Serial Advanced Technology Attachment (SATA), Advanced Technology Attachment (ATA), and/or other similar data communication schemes associated with data storage and communication. For example, the server 102 may communicate indirectly with the data storage devices 204, 206, 208, 210; the server 102 first communicating with a storage server or the storage controller 104.
The server 102 may host a software application including modules for interfacing with the data storage devices 204, 206, 208, 210, interfacing a network 108, interfacing with a user through the user interface device 110, and the like. In a further embodiment, the server 102 may host an engine, application plug-in, or application programming interface (API).
The computer system 300 also may include random access memory (RAM) 308, which may be SRAM, DRAM, SDRAM, or the like. The computer system 300 may utilize RAM 308 to store the various data structures used by a software application having code to enroll individuals in an identification system. The computer system 300 may also include read only memory (ROM) 306 which may be PROM, EPROM, EEPROM, optical storage, or the like. The ROM may store configuration information for booting the computer system 300. The RAM 308 and the ROM 306 hold user and system data.
The computer system 300 may also include an input/output (I/O) adapter 310, a communications adapter 314, a user interface adapter 316, and a display adapter 322. The I/O adapter 310 and/or the user interface adapter 316 may, in certain embodiments, enable a user to interact with the computer system 300. In a further embodiment, the display adapter 322 may display a graphical user interface associated with a software or web-based application.
The I/O adapter 310 may connect one or more storage devices 312, such as one or more of a hard drive, a compact disk (CD) drive, a floppy disk drive, and a tape drive, to the computer system 300. The communications adapter 314 may be adapted to couple the computer system 300 to the network 108, which may be one or more of a LAN, WAN, and/or the Internet. The user interface adapter 316 couples user input devices, such as a keyboard 320 and a pointing device 318, to the computer system 300. The display adapter 322 may be driven by the CPU 302 to control the display on the display device 324.
The applications of the present disclosure are not limited to the architecture of computer system 300. Rather the computer system 300 is provided as an example of one type of computing device that may be adapted to perform the functions of a server 102 and/or the user interface device 110. For example, any suitable processor-based device may be utilized including without limitation, including personal data assistants (PDAs), tablet computers, smartphones, computer game consoles, and multi-processor servers. Moreover, the systems and methods of the present disclosure may be implemented on application specific integrated circuits (ASIC), very large scale integrated (VLSI) circuits, or other circuitry. In fact, persons of ordinary skill in the art may utilize any number of suitable structures capable of executing logical operations according to the described embodiments.
The script 416 may be a script for execution by an information server (IS) and/or business information server (BIS). Although the data of the table 414 is attached to the script 416, the data of the table 414 may be made available to scripts on other platforms. For example, the data of the table 414 may be compatible with JavaScript or other languages. According to one embodiment, the data in the table 414 is converted to JavaScript arrays through a JavaScript subroutine included by an include statement 412 incorporating the subroutine. Thus, the table 414 of the data structure 400 is accessible by multiple scripts operating on different platforms.
According to one embodiment, the computer program product includes a compatibility statement. For example, line 006 of
An example of a hybrid data structure at various stages of reformatting is provided in the Computer Program Listing, which is hereby incorporated by reference, under “Exemplar0,” “Exemplar1,” and “Exemplar2.” Exemplar0 illustrates raw input data before formatting for use on a platform. The first character of each line characterizes a purpose: tab lines for section headers, asterisk lines for key names, and leading space lines at the start of a line or consecutive lines. Exemplar1 illustrates the content of Exemplar0 after packaging for use on a specific instance of a platform for a single language (e.g., BIS script). Due to the formatting of Exemplar1, the data may be difficult to read in platforms other than that single platform. Exemplar2 illustrates a new re-packaged and re-formatted data structure encapsulating both code to load inputs and a table of the input values. For example, the value of SvcTitle may be made available to the first script (e.g., a BIS script) through the initial scripted block of code and external subroutines may be used to scan the table to extract the same values with a second script (e.g., a JavaScript) on a second platform. One script on one platform executes script in the new re-packaged data structure to read values from the data structure. A second script may include subroutines external to the data structure in order to read the table values from the data structure.
Additional details regarding data tables accessible by two scripts are disclosed in the attached Appendix A, which is hereby incorporated by reference.
Although the present disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the process, machine, manufacture, composition of matter, means, methods and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the present invention, disclosure, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present disclosure. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.