METHOD AND APPARATUS FOR IMPLEMENTING SOFTWARE CONNECTIVITY
FOR CLIENT/SERVER APPLICATIONS
BACKGROUND OF THE INVENTION 1 . Field of the Invention
This invention relates to the field of computer middleware and related equipment for enhanced connectivity between data collection systems and Client/Server software applications. 2. Description of Related Art There currently exist a wide variety of computer implemented data collection systems for use in many different fields ranging from health care, to warehousing and manufacturing operations. In the past, such systems have been implemented using one or more remote data collection terminals and a host computer upon which a relational database software application has been installed. In such systems the remote data collection terminals were typically provided with a communication link to the host computer. The remote data collection terminal would provide updated information and data to the host computer for tracking particular physical data such as inventory at a warehouse or manufacturing facility information. The data collection terminals could be configured to automatically sense particular physical occurrences of interest or the information could be manually entered by an operator. In either case, the database software application would typically analyze the data to ensure its validity as to format and/or content. In addition, any new information communicated to the host by the remote data collection terminals would be used by the database application program to update the present content of the database.
Two basic problems were found to exist with the foregoing approach. One problem concerned the integration of the remote data collection terminals with the relational database application installed on the host computer. In particular, since the host computer and application program were not
necessarily provided by the same manufacturer as the remote data collection terminals, it was typically necessary to install customized software on the host computer to facilitate the interface between the host computer and the remote data collection terminals. This resulted in substantial expense as it required the use of a skilled programmer in each instance to prepare new computer code.
Aside from the added expense, the customized computer software necessary to facilitate the interface often was prone to cause problems within the relational database application. While custom software to validate the data recorded by the remote data collection terminals presented a relatively straightforward programming problem, updating a relational database can be a complex matter. Moreover, since the programmer was essentially modifying the original relational database application, often without the guidance of the original manufacturer of such software, it was difficult to ensure that the customized software was accurately updating the relational database in all respects.
In recent years, the foregoing problems have been addressed to some extent by the use of what has become known as "client/server" software or "middleware". In particular, by interposing a software application on an independent computer platform between the host computer and the remote data collection terminals, means were provided for permitting the relational database application to be updated without requiring an independent programmer to customize the software comprising the computer database. Communications between the host computer, remote data collection terminals and the client/server software were typically implemented with external network wiring or cables. Communications between the middleware product and the database application were facilitated by use of Open Database Connectivity (OBDC) standards in the industry which were employed in the design of the database application. Specific OBDC software drivers have been designed and are called upon by the middleware product to update the database and validate data. Significantly, however, these OBDC drivers are typically provided by software vendors not associated with manufacturer of the
database application software. Thus, while use of such drivers is satisfactory for the less critical purpose of data validation, it remains a weak link in such systems as concerns updating the relational database.
The foregoing problem is compounded by another concern which arises when the relational database software is updated or upgraded by its manufacturer. Specifically, in such instances, it is difficult to ascertain with certainty whether an OBDC driver supplied by a third party software manufacturer in fact will continue to perform correct updates to the relational database after such database has been upgraded or modified by the manufacturer. Once again, such problems are of particular concern in the updating of the relational database with new data. Thus, a serious problem remains with conventional methods for establishing a suitable interface system between a relational database operating on a host computer and a plurality of remote data collection terminals.
SUMMARY OF THE INVENTION A method and apparatus in accordance with inventive arrangements disclosed herein facilitates the interfacing of a data collection terminal with a database application. The system is interposed between one or more data collection terminals and a host application server provided for executing such database application. The data collection terminals preferably are arranged to communicate with the system via a data collection terminal LAN which may include wireless communication links from remote or mobile data collection terminal units. Similarly, communications between the host application server and the system are preferably effected by a computer LAN.
The invention is advantageously designed to operate with database software applications which: (1 ) include a relational database management system (RDBMS); (2) comply with Open Database Connectivity (ODBC) standards and (3) make use of Stored Procedures, as that term shall hereinafter be defined. Where these features are present, the system receives input messages from the data collection terminal and, based upon the message content, will retrieve a pre-determined action message corresponding to the particular input message. The action message will be communicated to the host application server, preferably to either validate a transaction parameter associated with the input message or to update the database. If an update is to be performed, the action message is advantageously configured for causing a stored procedure of the relational database management system to perform a database update in response thereto. In a preferred embodiment, the database update is performed via a Remote Procedure Call ("RPC") to the stored procedure. Alternatively, if a transaction parameter is to be validated, this is preferably accomplished directly by communicating with the database using an ODBC software driver on a read only basis.
Accordingly, the method involves the steps of receiving an input message from the data collection terminal and retrieving a pre-determined action message responsive to the input message. The action message is preferably stored in a library or cross-reference table which relates a specific
input message to a corresponding action message, and is configured for causing a stored procedure of the relational database management system to perform a database update in response thereto. The action message is communicated to the relational database management system which, in turn, causes the stored procedure to perform the update. In a presently preferred embodiment, the action message is comprised of at least one SQL statement. The method can further comprise the steps of receiving a validation result message and communicating the validation result message to the data collection terminal. The method can be implemented in a computer programmed with a routine of instructions stored in a physical medium, the computer comprising: data receiving means for receiving an input message from the data collection terminal; action retrieving means for retrieving a pre-determined action message responsive to the input message; and data transmitting means for communicating the action message to said relational database management system.
Brief Description of the Drawings
There are shown in the drawings embodiments which are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
Fig. 1 is a block diagram showing the operation of the system according to the present invention relative to a host application server and a plurality of remote data collection devices.
Fig. 2 is a flow chart showing the operation of the system according to the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Fig. 1 shows in block diagram form the interface system 10 according to the present invention for interfacing one or more data collection terminals 12 with a relational database management system 14 which has been implemented with a set of stored procedures 16. The relational database management system 14 and the interface system 10 are each installed and executed on a separate computer platforms. In a typical installation the relational database management system 14 is installed on a host application server computer 15, which preferably utilizes a UNIX or Microsoft NT type operating system. Suitable equipment for this purpose would include the HP 8000 system which is available from Hewlett Packard Corporation, the IBM RS 6000 system available from IBM Corporation, or the DEC VAX system available from Digital Equipment Corporation. It should be noted however, that the invention is not limited in this regard and any other computer hardware may also be used which is capable of executing the relational database management system 14 and communicating with the interface system 10 as shall be hereinafter described. For example, an IBM compatible personal computer with a Windows NT operating system may also be used.
Similarly, the interface system 10 may be installed and executed on an interface platform computer 17. Suitable computer equipment for the interface platform computer 17 include any one of many commercially available high speed personal computers offered by manufacturers such as Compaq, Hewlett Packard, IBM Corp or Apple Computers. In accordance with an inventive arrangement, the operating system for the computer is one of the Windows family of operating systems, such as Windows NT or Windows 95. Once again, however, the invention is not limited in this regard and other computer hardware may also be used, provided that it is capable of performing as described herein.
The data collection terminals 12 may be one of any number of data collection terminals such as those which are commercially available from Data Net Corporation of Miramar, Florida for the collection of physical data in a
warehousing, manufacturing or distribution operation. They can be of the fixed station type which are hard wired to a data collection local area network, or may be mobile terminals which communicate to the local area network 18 via an RF link. In either case, the data collection terminals 12 are capable of electronically transmitting and receiving messages to the interface platform 17 via local area network 18.
The relational database management system 14 is a computer application program which executes on the host application server computer. Such relational database management systems are well known to those who are familiar with the database management field and are commercially available from various vendors including Oracle Corporation of Redwood Shores, California, Progress Corporation of Atlanta, Georgia, and Informix Corporation of Menlo Park, California. The relational database management system is typically comprised of a database engine object 20, database management object 22, and a set of stored procedures 24. The stored procedures 24 are written in SQL, a high level query language which is commonly used among programmers of relational database application programs. These stored procedures 24 are application objects and can be resident within the relational database engine object 20 or may be stored separately in the host computer memory. In either case, the stored procedures are designed to be called by the database management object 22 to perform various functions relative to the database, including verification of data collected by the data collection terminals 12 and database updates.
As shown in Fig. 1 , relational database management system 14 is capable of receiving action messages in SQL format from the interface system
10, and then returning a result message. Messages are transmitted between the interface system 10 and the relational database management system 14 via a local area network 26, which network is generally separate from local area network 18. In a preferred embodiment, the communications on the local area network 26 between the host application server 15 and the interface platform computer are performed using a TCP/IP service, which is a commonly used
communication protocol for accommodating a number of separate technology devices incorporating disparate communication protocols. TCP/IP service is well known to those in the data communication field and is preferred in order to facilitate the communications between a host application computer 15 and interface platform computer. However, the invention is not limited in this regard and other data communications protocols can also be used with the system. The TCP/IP service is typically implemented as a separate software application 28 residing on the host application server 15, and an interface card 30 installed on the interface platform 17. In a preferred embodiment according to the invention, when physical data such as warehouse or manufacturing inventory is entered at a remote data collection terminal 12, a message is transmitted to the interface system 10 via the local area network 18. Local area network 18 can be any of several commonly utilized configurations such as ether net, token ring or X.25 which are well known to those familiar with such network systems. When the message is received by the interface platform computer, it is communicated to the LAN manager object 30. The LAN manager object is configured for sending and receiving messages via local area network 18 in the required format and in conformance with network protocol. The LAN manager object 30 communicates the content of the message to the dispatcher object 32. As shown in Fig. 2(A), the dispatcher object 32 validates the message parameters (e.g. field lengths, date fields and the like) in step 40 to ensure that the format is correct and that the information contained in the message has not been otherwise corrupted as a result of the communication process from the remote terminal 12. If the message parameters are correct, the message data is communicated to the transaction mapper object 34.
Transaction mapper object 34 processes the message in step 42 to determine whether it concerns a request for validation of data or is of some other type, such as a database update message. Validation type messages are typically those which require some type of confirmation from the database management system 14 regarding a specific data entry at a data collection
terminal. For example, if a purchase order number is entered at a data collection terminal, it is desirable to verify that the number corresponds to a known purchase order. In such instances, a validation type message will be sent from the data collection terminal 12 to the interface system 10. Significantly, in the case of a validation type message, the content of the relational database maintained by the database management system 14 does not need to be altered in any way. Accordingly, these types validation messages are handled differently by the interface system 10 as compared to other messages requiring an update to the database. In particular, when a validation type message is received by the transaction mapper 34 it will be immediately recognized as such, and the transaction mapper will call ODBC driver object 36 in step 44 to perform the necessary data validation. The ODBC driver object is stored in the memory of the interface platform computer 17. It facilitates communications with the relational database management system 14 and is specifically configured for communication with a particular manufacturer's relational database system 14. ODBC drivers are commercially available from software manufacturers such as Progress Corporation of Atlanta, Georgia, and Openlink of Canada.
In Fig. 1 , the ODBC driver 36 is provided with the particular data or message which requires validation via an SQL action message from the transaction mapper 34. The ODBC will thereafter communicate with the relational database management system 14 via local area network 26 in order to validate the information as requested and will return a result message to the dispatcher 32 as shown. Finally, in step 46, the result message is returned from the dispatcher 32 and LAN manager 30, to the data terminal 12 which originated the validation request, and the transaction is complete. If the operator of the terminal 12 then wishes to update the relational database management system 14, the terminal 12 will either automatically, or upon operator command, send a new message to update the database. As with the validation message, the update message is received by the transaction mapper 34 from dispatcher 32. Unlike conventional interface
systems, however, the transaction mapper will not make use of an ODBC driver to perform the actual update to the database management system 14. Although ODBC drivers are available which are designed to perform this task, they have proved to be less than satisfactory for this purpose for several reasons. Most importantly, use of ODBC drivers in conventional interface systems to modify the database content raises the possibility that the ODBC driver will not perform the update properly. Since ODBC drivers are not necessarily supplied by the manufacturer of the relational database management system 14, modifications and updates to the information contained in the database may not be performed properly. The result will be a loss of database integrity. Further, in those instances where the relational database management system 14 is updated or upgraded, such modifications may result in the need for updated ODBC drivers in conventional systems; and expense which is to be avoided if at all possible. In a preferred embodiment according to the invention, when an update type message is received in transaction mapper 34, it is recognized as such and is processed by the transaction mapper in a distinct manner as compared to other message types which merely require data validation. In step 48, the transaction mapper object 34 determines the specific type of update or modification which is required based upon the content of the update message, and then cross-references the update message type to identify a specific remote procedure call for performing the necessary update action. The remote procedure call, when transmitted to the relational database management system 14, will trigger the execution of a specific SQL based procedure which is stored in the relational database management system. The procedure thus called is a part of the relational database management system 14, and performs the specific update requested by the data terminal 12. Different procedures may be called in order to effect different types of updates or database modifications. The standard format for such calls when using the C + + programming language, for example, is RPCxx(AAA,BBB,CCC), where the xx identifies the specific stored SQL procedure to be called, and the AAA, BBB, and CCC are
parameters or variables associated with the particular call.
Once the transaction mapper object 34 has identified the proper remote procedure call, it is preferably communicated to the repository object 38 in step 50. The remote procedure call is queued in the repository 38 in step 52 until a suitable time when the message is transmitted to the relational database management system 14. The communications between the repository and the local area network are advantageously effected by means of a socket object 40. The socket object is a commercially available object which is specifically designed for receiving packets of data from the local area network. For example, the socket may be a WinSoc object which is commercially available from Microsoft Corporation of Redmond, Washington. Once the remote procedure call has been transmitted in step 54 via local area network 26, the relational database management system is updated by the SQL procedure. As the invention can be embodied in other specific forms without departing from the spirit or essential attributes thereof, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.