|Publication number||US7197542 B2|
|Application number||US 09/894,181|
|Publication date||Mar 27, 2007|
|Filing date||Jun 28, 2001|
|Priority date||Jun 30, 2000|
|Also published as||CA2422680A1, CA2422680C, EP1316027A1, EP1316027A4, US7162450, US20020016717, US20020023086, US20020023169, WO2002003253A1|
|Publication number||09894181, 894181, US 7197542 B2, US 7197542B2, US-B2-7197542, US7197542 B2, US7197542B2|
|Inventors||Frank J. Ponzio, Jr.|
|Original Assignee||Ponzio Jr Frank J|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (22), Non-Patent Citations (10), Referenced by (10), Classifications (16), Legal Events (8)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/215,552 filed on Jun. 30, 2000 and the benefit of U.S. Provisional Patent Application Ser. No. 60/233,691 filed on Sep. 19, 2000.
This invention relates to digital devices and more particularly to the management of data between digital devices.
A growing complexity and interdependence of discrete computer systems requires reliance on data, the quality of which a particular user system has little or no control over. While the phrase “garbage in is garbage out” has been used for over half a century to describe data quality, until recently computer systems functioned independently, in isolated environments or over isolated networks. The garbage data typically impacted only the immediate system, which essentially was under control of the user.
The advent of network based computer business applications, electronic data interchange and an increasing reliance on digital databases requires control over data quality and integrity. Essentially it is the flow of data between the various computer systems that drives their very functionality. The interconnection of discrete computer systems through standardized networks, such as the Internet, has enabled data to be immediately accessible by other systems, where there is typically no control over the data quality and/or integrity. There is a need for knowledge about the quality and integrity of the data flowing between systems and within a system.
Current systems are concerned with the integrity and quality of data between two points, assuming that the data is error free at the first point and may become corrupted when it reaches the second point. Various schemes of error detection and correction are well known. More recently, digital signatures have been used to protect data integrity and identify its origination (source).
Most schemes for controlling data quality at its origination are generally directed towards program errors and bugs, by testing the program using test case sites. These schemes are very dependent upon the user interface, the programming languages, the database system, the operating system, and the system environment. These schemes are testing schemes, attempting to approximate a real user environment, but mostly occur in a laboratory environment. These schemes are discontinued once the software is released although they may start again when a new release is being prepared.
There is a need to be able to provide controlled inspection, monitoring and analysis of data to provide knowledge about its quality and integrity as the data is shipped between various computer systems and computer networks.
The present invention is a method and system for signaling quality of data content between digital devices comprising the following steps: assigning a grade indicative of the quality of the content of the data; and, linking the grade to the content of the data; wherein the receiver dynamically accesses the grade without having to access the data.
A more complete understanding of the present invention may be obtained from consideration of the following description in conjunction with the drawings in which:
Although the present invention, method and system for communicating data inspecting, monitoring and analysis information, is particularly well suited for use with the Internet and shall be so described, the present invention is equally well suited for use in other network communication systems including but not limited to an Intranet, extranet, Interactive television (iTV) and similar interactive networked communication systems.
Although the present invention, method and system for communicating data inspecting, monitoring and analysis information, is particularly well suited for implementation as an independent software systems and shall be so described, the present invention is equally well suited for implementation as a functional/library module, an applet, a plug in software application, as a device plug in, and in a microchip implementation.
Where implemented as a separate software application, the system can be run on a server as a service application such as an Internet subscription service as well as traditional software application. The system can be implemented as a software module used by an application, a library routine called by an application, or a software plug in called by a browser or similar application. The system is ideally suited for implementation as a hand held digital device, such as a personal digital assistant or dedicated system, where it can act as a physical data barrier or wall, enabling the digital device to be simply plugged into existing legacy system or offered as an optional upgradeable hardware feature or a temporary device. The system can be implemented as an embedded device, such as an application specific integrated circuit (ASIC), an integrated circuit chip set, for use on a motherboard, application board, or within a larger integrated circuit.
The system provides for inspecting, validating, grading, and reporting on information providing the user remote control of the process. Information is directed to the process using a variety of existing and future transportation methods. The process analyzes the information received to isolate the data parts to be processed. These data parts are then subjected to a variety of inspection and validation methods and systems. The results are then used to create a grade and rating of the information, which along with the results are forwarded to specified recipients. A selected reporting and notification are also sent to specified recipients. Dynamic control of the process is provided if specific information is also received for the information to be processed. The present system of data validation and monitoring is a solution for the plaguing garbage in-garbage out problem that all computer systems must deal with. The garbage in can be a result of human errors, software errors, and any system or network component errors that stores or moves the data. Garbage out can result if the user does not detect the garbage in or if the user adds to the garbage in. Once the flow of garbage data has begun from system to system, its subsequent cleanup is a costly, labor-intensive process.
The present invention can be used to block garbage from leaving a computer or digital device as well as used to block garbage from entering a computer or digital device, essentially functioning as a data “fire wall.” The data wall can be a physical barrier to transfer of data as well as a logical barrier, which enables other action to be taken with the data that is allowed to transfer.
The DFIN 122 is used to override the pre-stored selections that are stored in the customer registry. As an example the Functional Analysis of Data 124 the DFIN could be used to select a finer grain of analysis. For the Grade Assigned of Data 126 the DFIN as an example could be used to select another grade and rating scheme. For the Signal Assignment 128 the DFIN as an example could be used to deselect the field level signal generation. The DFIN would be forwarded to the Data User 130 for informational purposes regarding the results.
The Grade Assignment 126 uses the results of Functional Analysis of Data 124. For this example referred to in Tables 1, 2 and 3, the data record 132 contains the seven fields indicated. Also whether the field is Mandatory or Optional is also indicated with an M or O. The results of the functional analysis of data 124 are shown in the next column. For this example P implies Pass and F implies Fail. The values are shown for the seven fields. The Grade Assignment of Data 126 creates the field grading and the field rating. For this example grades two and five are shown and rating of GREEN and RED are shown. The Grade Assignment of Data 126 also creates the file grade and file rating. For this example the file grade is set to a three and the file rating is set to AMBER.
The Grade Assessment of Data 126 for this example used the reference tables 1–3 which contain the rules to be used for establishing the grade and rating the fields. For this example all mandatory fields received a grade of five and a coinciding rating of GREEN and all optional fields received a grade of two and a coinciding rating of RED. Based upon the field grade and rating the file grade and rating could now be determined. For this example since all mandatory fields are five and at least one optional field is a two then a file grade of three and a rating of AMBER was assigned. The rules to be used to grade and rate fields of files will be established by a community of interest which can be specific to a customer, a group of companies, an industry, etc.
The Signal Assignment 128 creates the signals that will be sent to the Data User 130. Referring to Tables 1, 2 and 3 there is shown an example of a record, file and corresponding functional analysis results and grades. In this example a label is added to the filename as another filename extension and the label will have two parts. The first part contains the file grade and the second part contains the file rating. The first part and the second part are separated by the underscore character (_). For this example, the filename would be sample.dat.3_amber. The signal assignment 128 for this example would create a field level signal that would contain the grade and rating for each of the seven fields. A file is created with a name that is composed of the original name plus a special file extension.
The file name created by the Signal Assignment 128 is sample.dat.dmi. The contents of this file are shown in Table 2. For each of the seven fields the corresponding grade and rating are presented. The file signal and the field signal can be transported to the data user by HTTP, FTP, E-MAIL, Directory entries, as well as a variety of other methods that are known to those skilled in the art.
The Data User 130 may be another digital system, an individual or organization, or a third party broker. The Data User 130 receives the DFIN 122, the two signals 128 and the original data. The data user can make a decision on the disposition of the data based upon the information contained in the signals. As an example the data user 130 could decide to not process the orginal data file if the grade is three or lower. The important aspect is that the Data User 130 can now make a more informed decision regarding the disposition of the data received before starting to process the data.
Through the use of the label the Data User 130 can without ‘opening the data file’ make a disposition decision. The fact that the label is appended to the file names reduces miscommunications issues regarding the condition of the data received. Using the field level signals the user can make a decision on a field-by-field data regarding the condition and trust that can be associated with the data. In one particular embodiment, the data 120 can be identified by a file name. The signal assignment 128 can also provide high level signaling by appending to the file name 136 or modifying the file name, which corresponds to the data 120.
In one embodiment the present invention is implemented to function as a data inspector providing information, which can be used to determine data integrity, validate database and assist in the cleanup of a database as well as monitor for garbage being sent between data users.
One exemplary embodiment of the present invention is a software system, which applies predetermined inspection functions to each identified data element. The results from the inspection functions are recorded. The recorded results are used to grade and rate the file using predetermined criteria; to report the results, and the grade and rating so designated parties of certain conditions are detected or determined. In this embodiment, the submission of the file contains a DIM label which can, for this submission, alter the predetermined parameters that control the specifics of the inspection, recording of results, grade and rating, reporting of the results, and alerts and notices. This feature enables the system to be used as follows: a data wall (preventing the forwarding of the file if necessary); continuous process data inspector; a common data inspection facility for a data exchange community; a unit data inspector for data exchanged by software units; a database inspector; a data collection device enabling data to be collected and reviewed prior to transfer; and data field notifier, wherein the quality of the data is qualified to the field level. The DIM label is a separate, optional set of data that can be included in the file submission. The form could be a label appended to the file name or a label sent in a message to the server.
The predetermined parameters that are used reflect policy, business rules, operation rules, technical rules mode (for example, production) of operation, recording requirements, grade and rating requirements, reporting requirements, and alerts and notices requirements. A label, which is created at the time of a submission request, contains a tracking number corresponding to the file, the parameters selected at submission time, and other information. The label can be appended to the file name.
Upon the completion of the data validation and monitoring process, another label is created which contains the results of the inspection (grade and rating for the file) and other key information about the DIM process. This data validation and monitoring label can also be appended to the file name.
A file can be submitted manually in an interactive mode or automatically using an application programming type interface (API) mode. One embodiment of an interactive mode uses a web browser. The API mode uses any software industry method possible that can handle the required protocol. A file for this embodiment can be a named document file, a named data file, with any type of file extension.
In yet another embodiment, the system handles unnamed sets of data elements. In yet another embodiment the submission service where streams/strings of data elements are received is not required.
The setup and configuration for the predetermined parameters, criteria, etc. enables customization of the process for each customer/account/user. This includes the specifics of each data element in a file as well as the specific set of inspections to be performed that comprise the inspection specifications for that file. The conditions of the data detected by the inspection function are reported in customized, customer/process specific terms in a log file for each file submitted.
The present invention, method and system for communicating data inspecting, monitoring and analysis information, can be used throughout the life cycle of application/system development. Starting with initial unit testing through integration testing and during production. This can be used to inspect data from any source, any form, and any type. The data only needs to be presented in a form where the data elements can be identifiable (or parsed) using techniques that those skilled in the art could implement.
The present invention, method and system for communicating data inspecting, monitoring and analysis information, can be introduced in any phase of a project/product life cycle. For example, if a project/product is already in production, then data validation and monitoring can offer a solution to a variety of issues that typically arise (new release of software is installed, a new technology is introduced such as Electronic Data Interchange (EDI)).
When a software project is in the development phase, then the various models previously described as well as a software unit inspector can be utilized. The earlier the present invention, method and system for communicating data inspecting, monitoring and analysis information, is introduced into the project life cycle, the greater the organization benefits, and the cost per transaction is reduced, and the cost of ownership per unit is reduced.
The present invention, method and system for communicating data inspecting, monitoring and analysis information, inspects data on an individual field-by-field basis (intra-field), and on a field-to-field basis (inter-field). Therefore, this inspection process can become business process aware to various levels, depending upon customer needs. The inspection functions performed on each data element will be embodiments of techniques that those skilled in the art could implement. For an example Visual Basic (VB) data type, what are the type of values that would: be considered a different data type; and, for that data type the values that could be present but their form and content can be classified to assist in determining the root cause of the problem value.
This would then help classify the different solutions that could be present in a field. An example of this is a text type field that was being used to store the name of a city. For this field, there may be certain constraints put on the field value. Examples include: greater than three characters; no backslash characters; no underscore characters; and, no space characters. This type of data filtering would be done prior to looking up the city name in a database for that zip code. There is the high possibility that the look up would fail, but all we could indicate would be “invalid value.” It would be more informative for the root cause analysis if other characteristics of the value were identified that could assist in determining if this was a coding problem versus a user problem. Since data validation and monitoring also serves a diagnostic tool, the more explicit it can be in helping to root cause the issue would be a value add to the user.
In some circumstances there is a need for classifications that are more value based. An example of this would be if the value of a field was outside of the limits specified. As an example, assume the limits were a set, such as from 5 to 10. An indication could be “value outside of limits,” rather than the generic “invalid value.” Therefore, a sub data type could be “range of values” or a “set of values.”
In present invention, method and system for communicating data inspecting, monitoring and analysis information, an inspection function library is used. For each data element, the associated inspection functions to be performed are identified and stored. Additional inspection functions can be dynamically added to the library as desired. The capability for customized inspection functions for a data customer thus is provided.
Inspection functions can use external sources as sources of information. These external sources can be databases supplied by others using various media (for example, CD-ROM). They can also be other information sources that are accessible through a local area network, wide area network, or a global network. The information obtained from these sources can be static or highly dynamic enabling the particular type of inspection accordingly. For each session, standard authentication methods are used for security identification rights and privileged purposes. Operating metrics, results, and statistics are maintained on a customer and overall basis. Reports on this information are made available through a browser and other standard reporting methods.
The present invention, method and system for communicating data inspecting, monitoring and analysis information, can be better understood by looking at a detailed illustrative embodiment.
Input Section (Assume No Exceptions)
Read the file and store in the input directory. Create a corresponding blank log file using the name of the input file with the extension of log. Read the DFIN (label), which contains all the information that the original data source submitted. Included are the DIM label and other process control information. Using the DFIN (label), determine the intended disposition of: input file; log file; and DFIN.
Then at the completion of the processing set all switches accordingly.
Using the DFIN determine the level of analysis to be performed. Set up all appropriate switches and pointers accordingly.
Using the DFIN determine the special instructions specified and set all appropriate switches and pointers accordingly.
Create and input package by assigning a unique input sequence number to the input file and the DFIN.
If the file length in the header record does not equal the length of the file read in, then execute the rule for this condition in the exception condition table.
For the first field of the record/row execute the associated VIEC Rule. The VIEC Rule specifies the validation/inspection/edit/checking function(s) that will be applied against each field.
If the rule produces an exception condition then execute the assigned rule in the exception condition table.
Repeat for all fields in the record.
Read in the next record.
Determine the record type for the record and select the corresponding VIEC table and exception table.
For the first field of the record/row execute the associated VIEC rule
If the rule produces an exception condition then execute the assigned rule in the exception condition table.
Repeat for all fields in the record.
Repeat above for all records/rows in the file.
Continue to the create log section when completed.
Verify File Name Is Valid
File name structure is per spec.
Any parts of the name are per spec (may be separate from header).
Sequence number if present is acceptable.
Verify File Header
File header structure is per spec.
Is valid for the file name
All computed fields are correct (ex.—record count).
All other fields are acceptable (ex.—creation date is not in the future).
Is valid for the record types in the file
Expected blank areas/fields are blank (ex.—binary zero).
Conditions detected will be classified, for example as:
Informational—Condition was detected; no known impact (blue)
Warning—Condition was detected that may impact results (yellow)
Error—Condition was detected that can/will impact results (red)
Log File Entries
Will have a variety of record types
Will be a flat file
The records may be a variable or uniform length.
The record types include:
The log file will have the file name of the input file name.log (include extension).
Pop Up Window
Will pop up and close for each process
Miscellaneous message will appear that relate to log file entries and status of processing.
The Level I Check:
The record will be using typical MS Access data dictionary type attributes for fields (type, mandatory, etc.).
The record will be checked for proper length and filler space.
The Level II check will include those field-related issues that experience has shown cause problems and confusion. This includes: zero field characters; blank field characters, etc.
The Level III check will be application-aware and, as a result, will check individual field values. These checks will include:
The Level IV checks will validate field-to-field relationship within a record. (Ex.-If one field has a specific value, then another field can only have a specified set of values.)
Level V checks will validate the field-to-field relationships in/between different records in the same file.
Level VI, which most likely is not practiced, is to validate data between files.
Levels IV, V, and VI are not to be programmed but may be considered in the approach and design of Levels I, II, III.
Populate all fields in the log header record per specification.
Move the DFIN into the corresponding field in the header record.
Close the log file.
Continue to the output section.
Create an output package by assigning a unique output sequence number to the input rule and log file.
The sending computer 202 appends the data validation and monitoring label to the name of the document/file that will be submitted. The sending computer 202 then submits the file name with the appended label and the document/file to the data validation and monitoring server 204. (This can be a push or pull process.)
The data validation and monitoring server 204 receives the submission and processes it using the information contained in the submission and predetermined information that was stored when the customer and this document/file were set up and registered in the data validation and monitoring server.
For the customer setup, all the information required to process a submission is registered and stored as predetermined information in the data validation and monitoring server 204. This predetermined information will be used for every submission made by the customer and determines the specific processing to be performed for all submissions. The information is also used to determine what options and parameters can be selected for a specific submission.
The setup requires that the customer pre-register each document/file name, selecting the specific inspections to be performed on each data element of the submission.
The reporting options for the results of the inspection are selected and stored in the registry. The notification options based upon the results are selected and stored in the registry. The grading to be performed on the results is selected and stored in the registry.
The data validation and monitoring server 204 processes the submission using the predetermined information stored from setup and contained in the DFIN File.
The full results 206 are returned to the sending computer 202.
The document/file submitted 222 can be sent to the receiving computer 210 based upon a combination of the customer setup information 228, label information XXX, and the results of the inspections 206. The data validation and monitoring Server 204 is coupled to an e-mail gateway 212, which transmits the DVM notices to the appropriate recipients messaging gateway 214, system administrative computer 216 transfers the setup and configuration selection 228 to the DVM server. The various specified computers 218 can receive the data submission 222 and transmit back to the server the results 226.
Any changes subsequent to the customer registration would be performed using the customer maintenance service. The authorization required to make specified changes (add, updates, deletes) were established at the time of set-up.
Private Mode—Administrator controls certain functions for senders, billing, publishing.
Public Mode—Where senders make submission requests, make changes to selected options & parameters, and submit the data to be processed.
Account Manager Component—A shared service that keeps information that the customer has subscribed to and information about the data the data validation and monitoring server has processed for the customer. The design also incorporates information about the destinations of the results of the data validation and monitoring processing.
Process Stages—A process can advance through the life cycle stages of development and production. These stages can be assigned on an object/file basis (e.g. A new file for a process can be in test mode)
Non-Invasive Inspection—data validation and monitoring is non-invasive because it is a read only process that does not change any of the data submitted. Thus the file contents are “as received.” Any labels are appended to the file name.
Data validation and monitoring Label—For submission an electronic label is added to the name of the file submitted. For the submission this label reflects special instructions that will over ride the pre determined options & parameters established during customer set up & maintenance. For delivery the electronic label contains some information regarding the results of the data validation and monitoring process. This enables the recipient to make certain decisions about the handling of the data based upon the label content (e.g. if the color grade is red the recipient would decide to not accept the data for processing.)
Data Format—The format of the data can be in industry standards including EDI and XML. The data would be in flat files and could have various methods to isolate and identify data elements. (e.g. comma delimited files to be processed.)
Portable Documents—All reports can be converted to a portable document format (ex. Adobe PDF) for storage and transmission. This would preserve the format and fidelity of the information contained within.
Machine Readable Documents—All reports can also be produced in standard industry format such as EDI, XML, comma-delimited files etc. This will enable the receiver to process this information election and at the same time adhere to the K.I.D.S. principle.
Office Automation Formats—All reports can also be produced in standard spreadsheet and word processing document (ex. MS Excel, MS Word). This enables the recipient to automatically read this information to other computer-based systems.
Security of Information—The security of the information can be assured by a variety of industry standard methods. These include encryption (PKI) and SSL. This will be for information received or sent by the data validation and monitoring server.
The tracking numbers provided for the submission along with the submission label provided to the user are recorded with the system transaction manager service 1614. The submission of the data can occur any time after the submission request has been accepted. The user can cancel the submission request after it has been accepted.
When the data is submitted, the file name with the appended label and file itself are provided to the Data Element Identification Service 1612. This service isolates each data item in each segment that is to be processed by the VIEC service 1616. In a further embodiment there is an option to cancel or stop a transaction after it has been submitted. The Data Element Identification Service 1612 processes the total transaction before forwarding it to the VIEC Service 1616. All the data elements isolated are identified with the customer, process, object, segment and field identification that was established during customer registration.
The VIEC Service 1616 executes for each data element in the transaction; the VIEC functions that were selected for that data element during customer registration. The condition code(s) that are returned by each VIEC Function ID for each data element are stored. These condition codes are considered part of the results of the inspection process. The VIEC service 1616 uses information in the submission label to automatically customize the VIEC service 1616 for this transaction.
The VIEC Service 1616 is considered to be the engine of the data validation and monitoring Service. After the VIEC Service 1616 has completed the entire transaction, the reporting service 1626 is then invoked.
The reporting service 1626 uses the predetermined selections made in customer registration and the customization selected at submission time that are contained in the submission label created by the label service 1608. Each document/file submitted is treated individually for reporting purposes.
The Condition Code Service 1620 is used to associate with each condition code that returned the information that the customer wanted to appear in the log file. Thus the results are tailored for each customer. Each document/file is graded and rated according to the rules established in customer registration by the grading service 1618. The color grade is determined (ex.—green=acceptable) and the rating (from 1 to 5) is determined. Both of these are put in the data validation and monitoring label, which is appended to the file name, & label submitted and to the log file created by the Logger Service 1628.
The Logger Service 1628 automatically and unconditionally creates a log file that contains for each isolated data element the condition code returned, the results of the condition code service 1620, and the results of the grading service 1618. This information is used by the recipient to perform the applicable root cause analysis for each condition code returned from the VIEC Service 1616.
If the customer had selected the Office Automation (Auto) Service 1634 then the results are also converted to the selected form (ex.—spreadsheet). If the customer had selected the Portable Document Service 1630 then the log file and/or the Office Automation output is converted also to the selected format (ex.—Adobe PDF)
The Delivery Service 1636, based upon the selection made at customer registration and/or in the submission label, delivers the output of the Reporting Service 1626 to the intended destinations. The type of delivery and the methods used would include FTP, email, directory entry, etc.
The Notification Service 1632 enables the customer to be notified of the existence of certain conditions (ex.—a production file with a color code of red), which are detected by the data validation and monitoring service. The notification methods include email, paging, and other messaging services or other notification methods (ex.—flashing red light).
The Label Service 1624 creates the labels and the contents that will have been selected by the customer for the results of the VIEC process (ex. Label appended to filename and use standard contents).
The data validation and monitoring server can be configured to be a dedicated or shared server. For a dedicated server, the message/file names are all unique for a sender (multiple sites); the server is dedicated to one sender. For shared configurations, multiple senders are sharing the server and each sender is uniquely identified and each sender can use any message/file name that has been pre-determined for the sender. (Thus multiple senders can have the same message/file name.
The VIEC policies/rules/methods are pre-determined for each sender and file name combination and are considered static.
The M/FIN format and contents can vary for each sender and are pre-determined. The M/FIN are optional or mandatory on a sender basis. The M/FIN is not forwarded to the receiver but can be recorded in the data validation and monitoring log file on an optional basis.
The data validation and monitoring log file can be transmitted to sender and/or receiver. The default condition is pre-determined, but can be changed dynamically using the M/FIN. The sender's message file is forwarded to the receiver by default but can be changed dynamically using the M/FIN.
Under certain pre-defined conditions in the VIEC process, the message file may not be forwarded to the receiver. (Ex.—field value outside limits) Under this condition, the data validation and monitoring log file will now not be forwarded to the receiver.
The data validation and monitoring server 204 intercepts the message file and performs the selected VIEC process on it. Typically it would forward the message file and the data validation and monitoring log file to the receiver 210. The receiver 210 would make a decision on what to do with the message file based upon the contents of the data validation and monitoring log file/message.
The sender 202 and the receiver 210 both have to implement logic, etc. to Validate/Inspect/Examine/Check the structure and contents of a message or file. The sender's motive is to insure the quality of the message file and its contents before transmitting to the receiver(s). This has a quality control and allowable content and perspectives.
The receiver's motive is to verify the message file is what is expected before attempting to process it. Typically the burden falls on the receiver to handle all the “What If” conditions that can be encountered in processing the message file.
The data validation and monitoring server 204 relieves both the sender 202 and receiver 210 of providing for this type of processing. The administration of the VIEC policies/rules for both the sender and receiver is typically a problem for both. If changes are made, the change has to be communicated and implemented by both simultaneously. With data validation and monitoring, certain changes become transparent to both the sender and receiver. The data validation and monitoring server gives the sender the option to return to the sender and not forward to the receiver any message file that meet certain conditions. In addition, a test mode can be used that returns the message file, M/FIN, and log to the sender only. There is also a need to have thin clients in web applications. The data validation and monitoring server removes from the client all the code for validating/inspecting/examining/checking what is sent or received.
It also centralized it, reducing the total code, simplifying the VIEC administration.
Referring now to
The objective of this function is to also give the sender dynamic control over selected functionalities of the data validation and monitoring server on a file-by-site basis. The Message/File Identification Number (“M/FIN”) contains the following type of data:
The primary objective of this file is to give the receiver information resulting from the VIEC process so that a decision can be made as to what type of processing to do with the message file. Assign a grade of green (ex.—meets all test VIEC requirements); yellow (ex.—warning about contents or structure of file); red (ex.—recommend not to use file for production); and black (authorization required to process), etc.
In addition for each VIEC exception, a condition code (ex.—C137) and other information (ex.—value in field not in reference table) will be assigned.
The secondary purpose is to assist the sender in assessing the quality and validating the information being sent to the receiver. This is important during testing of new applications, testing changes to existing applications, and that affect the data the sender sends to the receiver. This will save time and effort in debugging and testing.
The Delivery Service can use push or pull methods based upon customer selection.
A data bug is an error that manifests itself in the data produced by a program. The data bug can be caused by a software bug, a data entry error by a user, or introduced by any system or method that handles/transmits the data. All data bugs cannot be corrected by the process known as debugging.
Data bugs can be obvious or hidden in the data, and they can be caused by major and minor bugs and other causes. Data bugs can be caused by software or hardware components.
Data inspection is the process of examining a data object to determine if it satisfies predetermined conditions. The data object contains data elements that can be identified, isolated, and extracted. The data elements can be of any type that a computer can generate. The extracted elements are then subjected to a predetermined series of examinations. The results for each examination, for example, could be pass, fail, indeterminate. The results are recorded for subsequent analysis. The scope of the examination includes testing the value of the data element against predetermined acceptable values, checking for the presence of unacceptable characters, verifying the format of the data.
For data that is collected using a stand alone device, such as a Personal Digital Assistant (PDA), data entry device, Personal Computer (PC) etc., the data collection inspector could analyze this data before it is entered into the system. It could also be used to support training where the data entered is evaluated using data validation and monitoring.
Data field level information is contained in the data validation and monitoring log file. Thus each field can be graded and rated individually. Thus when the information is displayed or printed, etc. the user can be notified as to the integrity and quality of the individual data element.
Using the results of the inspection and following predetermined rules, a grade and rating is assigned to the data object. Examples of grades are red, green, amber, black, and an example of a rating is the range from one to five. One purpose of the data analysis is to convey to the recipient of the data object an indication of its quality. Based upon this information, the recipient can make a decision on how to handle this data object. One part of the data analysis is to provide specific information about the examinations and the results thereof. An example of the use of this information would be to perform a root cause analysis. Another part of the data analysis is to identify patterns and trends, regulating the quality of data objects over a period of time.
Signals are used to communicate information about the data object from a source to a —destination. An out-of-band type communication signaling is used because it is not contained within the data object. The signaling is contained in a data validation and monitoring certification object (DCO) that is appended to the data object name. The DCO contains information that is usable by the recipient of the data object without having to “open” the data object. A data object can have multiple DCO's appended to the name depending upon how data validation and monitoring was used. The final recipient would have all the DCO's; the DCO's are a result of data validation and monitoring processing the data object. Examples of what the DCO would contain are the tracking number assigned by data validation and monitoring, the color grade, the rating, the size of the data object, the date and time the DCO was created, a unique identifier for the data validation and monitoring node.
Data monitoring is the process of performing inspections on a selective sample basis. For some stages of a project, every data object may be inspected. For a production mode, every nth file may be inspected. Also, only data objects with a specified information in the name are selected for inspection. The criteria, for example, could be related to a time period of the data, or be adoptive to the volume of data objects submitted within a period. A data validation and monitoring monitory object (DMO) would also control the data monitoring. If a DMO was received with the submitted rule, it could indicate the type of inspection to be performed that would overrule all other requirements. The DMO also contains other information that is used by the data validation and monitoring process. The DMO contains the date and time the DMO was created, the inspection options selected, the data monitory options selected, the grading options selected, etc. The DMO remains as a permanent part of the data object name.
Create the equivalent of a label for a file that contains information associated with the file that can be used with out opening the file itself. Similar to how a physical package has a label on the outside the information on it is useable without opening the package.
The log created by the system can be viewed as a detailed packing slip and inspection report.
The file name is equivalent to a label and packing slip on the outside of a physical package being shipped. A person does not need to open the package to determine the disposition of it (the contents are sealed). The label part is used for routing. It contains from, to, type of delivery service, etc. Info that is needed by the transporting company
The packing slip part (which fits in a pocket on the outside) gives information about the contents of the package. This is primarily used by the recipient to determine the internal destination of the package to open it.
The label also contains an electronic & human readable tracking identification number for the individual package. The label may also indicate if this package is one of many in a shipment. It can also be like a way bill that goes into a pouch outside the package
The paradigm shift here is to have the file name contain information that the recipient can use to make decisions about the receiving process that will be used for this package (like a selection on a phone system). Some packages have devices, etc on them that indicate if the package has been subjected/exposed to certain conditions during shipment (ex.—shock, indicators).
For physical packages the shipping containers can be used to visually check the package for signs of mishandling, etc. (ex.—crushed corners, water spots—anything that could be harmful to the contents.)
Another part of the paradigm shift is to allow and enable the processes (such as data validation and monitoring) update the info in the name, which will be useful to the recipient. If data validation and monitoring is performed before the name is generated then the name would not need to be updated.
The data validation and monitoring info could be also like a sticker that is added to the package (like security check at the airport).
In an OSI model type processing each layer of the stack can add a header to the front of the others, which is stripped off the by corresponding layer of the other stack. Adding a dot to the file name is one way of adding a label to the package as is used with a file extension.
Data validation and monitoring can grade and rate each field that it inspects. This field level grading will be helpful as an example when data elements from another database are used in an application and the user of this data needed to know something about the integrity of each data element. Thus, for example, when the data is displayed, an indicator could show for each field the grade and rating of it. For example, a red circle would indicate to the viewer that this data element failed the inspection. The field level reading information would be recorded in the data validation and monitoring log file if this option was selected. (The file level grading for the associated file would also be contained in the log file, along with all the input and output labels.)
To view the contents of the label, a view and launch functionalist would be provided to (analogous to what is used for PDF file types). The viewer would be downloadable from a data validation and monitoring server. The viewer would decode the label (input, output, etc.) and display them in a human readable format. A similar viewer would be used for the data validation and monitoring log file.
Use a label appended to the file name (preferred embodiment) to communicate information associated with the file to whoever uses the file. The label is the transport method to communicate this information. This label is available to all users of the file. The label is the preferred embodiment, for sensitive information would be encrypted thereby giving confidentially and limited access to the information. The label could be in text character form or encoded. Therefore the method allows for protecting of information contained in the label, which is considered a part of the file name (object) in another embodiment the label would be unencrypted.
The present invention can use other systems to validate field contents. These systems/databases can be local or wide area, but can be real-time (or could be batch) (ex. VIN validation with black book).
Use standard process methods such as a CD Rom subscription type service to insure performance & reliability where practical for static type info (ex. zip codes, VIN's, etc) or can use on-line services primarily for dynamic data.
Data can be viewed as a package being transferred between and delivered to various systems and networks. Systems and networks may have sent the original data out for processing remotely and wish to verify the integrity before opening to insure that the data has not been tampered with. A system may not need to know what the data content is or it may not be desirable to allow access to encrypted information, thus the data if verified as not having been tampered with may then be passed on, partially processed, or fully processed by any given module or system.
The exemplary application, data validation and monitoring v 1.0 database, utilizes one embodiment of the present invention, wherein the exemplary application accesses user files, one by one, and runs them against a series of predetermined conditions. Flags are set up to indicate the status of each individual file. A green flag indicates a valid file, while a red one shows the need to return to user for additional information or corrections. A yellow flag status shows a minor problem such as the wrong state selection, which can easily be corrected by so coding the database (available in a future version.)
Examples of Flag Instances: data validation and monitoring v 1.0 is set up to check for the following 4 conditions:
To enter a new user, click button “Input User File.” The following text is displayed:
The user file can be seen in Read-only format by clicking on the next button, “View User File.” A screen asking for the Application Sequence Number pops up. In the future, this number will be selected from a drop down list. For now, it can only be obtained from the Applications table. For the sake of this exercise, we will give you the Applications Sequence Numbers for our example users. (Jane Miller ASN: 8, Matthew Jones ASN: 9, Tom Newman ASN: 10, Rachel Green ASN: 11, and Brian Flynn ASN: 13)
The “Validate” button on the Main Menu, submits the file to the series of tests described in the introduction. Flags are assigned in this step matching the status of the user file. The “Create Log” button prepares all information on the user file, including the flag, to be viewed. This can be done by clicking the “View Log” button, which will display the exemplary screen shown 2402 in
Numerous modifications and alternative embodiments of the invention will be apparent to those skilled in the art in view of the foregoing description. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the best mode of carrying out the invention. Details of the structure may be varied substantially without departing from the spirit of the invention and the exclusive use of all modifications, which come within the scope of the appended claim, is reserved.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5410344||Sep 22, 1993||Apr 25, 1995||Arrowsmith Technologies, Inc.||Apparatus and method of selecting video programs based on viewers' preferences|
|US5678041 *||Aug 25, 1995||Oct 14, 1997||At&T||System and method for restricting user access rights on the internet based on rating information stored in a relational database|
|US5680305 *||Feb 16, 1995||Oct 21, 1997||Apgar, Iv; Mahlon||System and method for evaluating real estate|
|US5737734||Sep 15, 1995||Apr 7, 1998||Infonautics Corporation||Query word relevance adjustment in a search of an information retrieval system|
|US5820386||Aug 18, 1994||Oct 13, 1998||Sheppard, Ii; Charles Bradford||Interactive educational apparatus and method|
|US5855015||May 12, 1995||Dec 29, 1998||Interval Research Corporation||System and method for retrieval of hyperlinked information resources|
|US5892898||Oct 4, 1996||Apr 6, 1999||Honeywell, Inc.||Error management system for supporting the identification and logging of error messages|
|US6012053 *||Jun 23, 1997||Jan 4, 2000||Lycos, Inc.||Computer system with user-controlled relevance ranking of search results|
|US6029161||Nov 19, 1998||Feb 22, 2000||Lycos, Inc.||Multi-level mindpool system especially adapted to provide collaborative filter data for a large scale information filtering system|
|US6029195||Dec 5, 1997||Feb 22, 2000||Herz; Frederick S. M.||System for customized electronic identification of desirable objects|
|US6076082||Sep 4, 1996||Jun 13, 2000||Matsushita Electric Industrial Co., Ltd.||Information filtering method and apparatus for preferentially taking out information having a high necessity|
|US6092049 *||Mar 14, 1997||Jul 18, 2000||Microsoft Corporation||Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering|
|US6166314 *||Jan 28, 1998||Dec 26, 2000||Time Warp Technologies, Ltd.||Method and apparatus for real-time correlation of a performance to a musical score|
|US6253213||Feb 22, 1999||Jun 26, 2001||International Business Machines Corporation||Method and system for automatically maintaining data consistency across various databases|
|US6275986||May 20, 1999||Aug 14, 2001||International Business Machines Corporation||Compile-time data dependency verification|
|US6345252 *||Apr 9, 1999||Feb 5, 2002||International Business Machines Corporation||Methods and apparatus for retrieving audio information using content and speaker information|
|US6421733||Sep 8, 1997||Jul 16, 2002||Intel Corporation||System for dynamically transcoding data transmitted between computers|
|US6493744 *||Aug 16, 1999||Dec 10, 2002||International Business Machines Corporation||Automatic rating and filtering of data files for objectionable content|
|US6625647||Oct 19, 1999||Sep 23, 2003||Keynote Systems, Inc.||Method and apparatus for evaluating service to a user over the internet|
|US6628817||Jan 3, 2001||Sep 30, 2003||Hitachi, Ltd.||Inspection data analyzing system|
|US6631184||Jul 24, 2000||Oct 7, 2003||Comverse Ltd.||System for community generated feedback and/or rating|
|US6647412||Jun 23, 2000||Nov 11, 2003||Nokia Internet Communications Inc.||Method and network for propagating status information|
|1||Bhateja, Rajiv, and Katz, Randy H., Valkyrie: A Validation Subsystem of a Version Server for Computer-Aided Design Data, 1987, pp. 321-327, Association of Computing Machinery, U.S.A.|
|2||Cook, Janet M., Teaching Integrity Features: Using Data Verification to Illustrate the Use of Subprocedures in Elementary Programming Classes, 1985, 9 pages, Association of Computing Machinery, U.S.A.|
|3||Grehan, Rick, Redesigned Delphi Masters Networked Apps, BYTE Magazine, May 1997, McGraw-Hill Companies, U.S.A.|
|4||Hackathorn, Richard, Data Warehousing's Credibility Crisis, BYTE Magazine, Aug. 1997, McGraw-Hill Companies, U.S.A.|
|5||How to Buy Information: The A-B-C's of Data Purchasing, Acxiom Corporation, U.S.A.|
|6||Nicholls, Bill, Building Software In An Organized Fashion IV, BYTE Magazine, Aug. 1999, McGraw-Hill Companies, U.S.A.|
|7||Software Engineering Institute Capability Maturity Model Issue Paper, Sep. 1996.|
|8||Wattterson, Karen, Attention, Data-Mart Shoppers, BYTE Magazine, Jul. 1997, McGraw-Hill Companies, USA.|
|9||Wen, Wu and Callahan, John, Verification and Validation of KBS With Neural Network Components, Nasa/WVU Software Research Laboratory, 5 pgs., Morgantown, WV, U.S.A.|
|10||White, Colin, Managing Data Transformations, BYTE Magazine, Dec. 1997, McGraw-Hill Companies, USA.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7676522||Apr 20, 2007||Mar 9, 2010||Sap Ag||Method and system for including data quality in data streams|
|US7676523||Apr 20, 2007||Mar 9, 2010||Sap Ag||Method and system for managing data quality|
|US7742398 *||Apr 12, 2004||Jun 22, 2010||Azul Systems, Inc.||Information redirection|
|US9111030 *||Oct 5, 2009||Aug 18, 2015||Federal Home Loan Mortgage Corporation||Systems and methods for testing a software application|
|US9405667||Jul 21, 2015||Aug 2, 2016||Federal Home Loan Mortgage Corporation||Systems and methods for testing a software application|
|US20070255728 *||Nov 10, 2003||Nov 1, 2007||Valerio Abate||Apparatus and Process for Distributed Autonomous Managing of Documents and Electronic Means|
|US20080263062 *||Apr 20, 2007||Oct 23, 2008||Anja Klein||Method and system for including data quality in data streams|
|US20080263096 *||Apr 20, 2007||Oct 23, 2008||Anja Klein||Method and system for managing data quality|
|US20090043690 *||Aug 6, 2007||Feb 12, 2009||Maclellan Paul||System and method for validating indirect financing transactions|
|US20120016991 *||Jul 15, 2010||Jan 19, 2012||Lmr Inventions, Llc||System and method for managing network resource requests|
|U.S. Classification||709/217, 709/226, 709/219, 709/232, 709/225, 709/229, 707/999.001|
|International Classification||G06F, G06F17/30, G06F15/16|
|Cooperative Classification||Y10S707/99931, G06F11/3055, G06F11/3006, H04L43/50|
|European Classification||G06F11/30A1, G06F11/30D|
|Nov 1, 2010||REMI||Maintenance fee reminder mailed|
|Mar 27, 2011||LAPS||Lapse for failure to pay maintenance fees|
|Mar 27, 2011||REIN||Reinstatement after maintenance fee payment confirmed|
|May 17, 2011||FP||Expired due to failure to pay maintenance fee|
Effective date: 20110327
|Aug 12, 2014||FPAY||Fee payment|
Year of fee payment: 4
|Dec 1, 2014||PRDP||Patent reinstated due to the acceptance of a late maintenance fee|
Effective date: 20141202
|Mar 23, 2015||FPAY||Fee payment|
Year of fee payment: 8
|Mar 23, 2015||SULP||Surcharge for late payment|
Year of fee payment: 7