Financial institutions have established various processes related to the exchange of documents evidencing monetary transactions. Such documents have historically been encoded with magnetic ink so that information from the documents can be read by machine. Such documents have thus become known as magnetic ink character recognition (MICR) documents. Check processing and sorting systems have also been developed in which a check or similar MICR document has its image captured and stored electronically. Such an image can be archived so that it is indexed with its accompanying data from the MICR read.
For some time, banks have been using images of checks for purposes such as statement generation and archiving. Legislation has authorized banks to completely do away with the use of paper for most other purposes, including settlement and reconciliation of accounts between banks. In the United States for example, this legislation is referred to as “The Check Clearing for the 21st Century Act” or simply “Check 21” and authorizes the use of electronic records for purposes such as presentment from one bank to another as long as the images in the electronic records actually represent any original paper documents. A large financial institution must present millions of items each day to clearing financial institutions for posting. Images must also be provided to archive vendors, customers, clearinghouses, government organizations, and the like, all of which might be considered “clients” of the image processing systems of a bank. Information describing the documents and images of the documents must often be produced in numerous formats for different clients and different purposes and through different delivery mechanisms, including bulk delivery mechanisms, where a large number of images from a bank's archive are provided to a client in response to a single request.
Embodiments of the present invention provide an agent-based delivery platform to supply financial document images in a variety of formats to fulfill requests from various clients of an image processing system at a financial institution. Workflows can be created using extensible markup language (XML) to direct the responding to client requests. Images and relevant data can be located using a master index residing in partitioned, high-speed databases.
In at least some embodiment, when a request for indexed, archived document images is received, a workflow is created to direct at least one of a plurality of software agents to fulfill the request. The master index is searched for the indexed documents according to the workflow. The images can then be retrieved, formatted, and delivered according to the workflow in response to the request. The software agents can include a client agent, a delivery agent, an index agent, a format agent, an image agent, and/or a workflow agent. The workflow agent manages the execution of the workflow, which can be stored as an XML file.
In at least some embodiments, the client agent interfaces with client systems and validates image requests. The format agent formats the files of images and data to be delivered, the index agent searches the master index, and the image agent retrieves images from the archive. Files containing images can be delivered in a variety of ways, including for example, leaving files in a drop zone for retrieval by the client via a network connection such as a secured connection over the Internet.
A document indexing and delivery system according to at least some embodiments of the invention includes an image archive to store images of financial documents, and the master index to maintain information to be used to locate the images. A delivery platform provides images of the financial documents in response to client requests, at least in part by creating the workflows to direct the plurality of software agents on the delivery platform to fulfill the requests by searching the master index and retrieving the images.
An embodiment of the invention can also include one or more servers to provide load balancing between the mirrored, partitioned databases used for the master index. Additionally, an image application program interface (API) can serve to retrieve the images from the image archive in response to the image agent. The image agent, along with other software agents can reside as needed on the delivery platform.
The invention can be implemented via appropriate software or computer program code instructions. These instructions may be in the form of a computer program product, which is installed to run on the servers implementing the delivery platform and other parts of the system. The combination of appropriate hardware and the software to perform the functions described can form the means to carry out the processes of the invention.
The following detailed description of embodiments refers to the accompanying drawings, which illustrate specific embodiments of the invention. Other embodiments having different structures and operation do not depart from the scope of the present invention.
As will be appreciated by one of skill in the art, the present invention may be embodied as a method, system, computer program product, or a combination of the foregoing. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may generally be referred to herein as a “system.” Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.
Any suitable computer usable or computer readable medium may be utilized. The computer usable or computer readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer usable or computer readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.
In the context of this document, a computer usable or computer readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to the Internet, wireline, optical fiber cable, radio frequency (RF) or other means.
Computer program code for carrying out operations of the present invention may be written in an object oriented, scripted or unscripted programming language such as Java, Perl, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages.
The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. Alternatively, computer program implemented steps or acts may be combined with operator or human implemented steps or acts in order to carry out an embodiment of the invention.
The term “bank” and any similar terms are used herein in their broadest sense. Financial institutions that process transactions and documents of the types discussed can include stock brokerages, credit unions, and other types of institutions which are not strictly banks in the historical sense. Even retail and other service businesses, as well as manufacturers may process documents and/or data as disclosed herein. The use of terms such as bank, “institution” or “franchise” herein is meant to encompass all such possibilities.
Much of the terminology herein refers to the processing of information about MICR encoded documents. This information can be stored in a data processing system, in computer memory and/or media for retrieval and manipulation. There are many ways to design a system to accommodate the storage of this information, as well as the storage of electronic images of documents such as checks. For example, this terminology can refer to information stored in what is commonly known as a “check image management system” (CIMS) and within a “check processing control system” (CPCS). Such systems are well known within the banking industry by those who work in the financial data processing fields.
Check images and data about the checks the images represent, such as index information referring to the check images, which typically includes the MICR data, can be stored by processing systems according to any of various industry standard formats, for example, the well-known common import file format (CIFF). Such systems have been used for many years by many banks to archive check images. Images and index information in such a system can be stored in the same file or separated. In some environments, the index information is separated and stored in an electronic cash letter (ECL) for communicating between financial institutions for the purpose of settlement. Images can additionally be stored in various tagged image file format (TIFF) formats, includes the known, “stacked” TIFF format in which images are concatenated together in TIFF format with their offsets indexed so that individual images can be located.
Index information can also be stored with electronic images in an “image cash letter” (ICL) to provide for the truncation of the paper documents. Again, these systems and techniques are well known by those of ordinary skill in the financial information technology arts. A well-known industry standard format for a cash letter file that contains both images and all data necessary to index and understand the images is the X9.37i format, which is promulgated by the American National Standards Institute (ANSI).
As previously discussed, embodiments of the present invention use software agents to process client requests, find and retrieve document images and any necessary accompanying data, and deliver those images to clients as appropriate. For purposes of this disclosure, an agent is a defined software object that performs specific functions to support the system. In example embodiments of the present invention, agents are broken down into two types, specialized agents and processing agents. Processing agents provide a common service for all requests according to details that are provided through task definitions. Task definitions provide details to the agent to support a particular client's processing request. Specialized agents do not follow the same rules as processing agents. While specialized agents are similar in the way they can be defined, their role in the system of the example embodiments is greater than that of processing agents. Not only are the specialized agents charged with performing a specific function, such as formatting data or following an XML workflow, but the specialized agents are also required to evaluate compliance with business logic rules in some instances. These business logic rules allow the specialized agents to validate requests prior to processing, and to manage the execution of workflows that define how the system responds to requests.
Still referring to
In addition to the tasks as described above, the workflow XML defines when the agents will run based on various dependencies. For example, one agent may not be able to run before another agent completes its tasks. Such dependencies may come about because one agent requires data from another agent. The workflow XML can define this dependency between these agents and ensures that the proper flow is maintained. Dependencies between agents can be either serial or parallel in nature. Thus, some agents can execute their processes together using results of previously run agents as input. In example embodiments, system status can be reported while agents are running.
Still referring to
The processing agents in the embodiment of
Still referring to
As previously discussed, the workflow XML defines when the agents will run based on dependencies. In this example, the image agent cannot run before the index agent completes its tasks. This dependency comes about because the image agent requires index data from the index agent to know which images to access and how to access those images. The workflow XML defines this dependency between these agents and ensures that the proper flow is maintained.
Continuing with
Turning to
Still referring to
In order to fully enable the disclosed invention, details of an example image API and master index that can be used with the delivery platforms described above will now be explained. It cannot be overemphasized that these are examples only, and various image retrieval mechanisms and indexing systems can be used with a delivery platform as described above. In at least some embodiments, an image API can reside on a server and receive commands which trigger the retrieval of images based on index information. An appropriate image API can be programmed, for example, in the JAVA programming language, wherein the call of a method against the API causes the instantiation of one or more enterprise JAVA beans in the server system to perform the functionality of the called method. For example, a drill down request bean may process information to provide image access. In such a case the drill down request bean, initiates a connection with one or more information archives or image archive software over a communications interface.
A “master index” as contemplated by this disclosure is a central database for indexing check images throughout an institution. Such a master index would typically include enough information to provide images and image replacement documents as needed in a modern banking enterprise. Such a master index determines the location of requested data, such as check images, and returns the specified records describing the location. The requested data may be located in any data store, for example a short term or long term image archive, including a remote archive or one of the previously mentioned storage systems, such as a CIMS. In example embodiments, such a master index would locate the most appropriate data store and return the necessary information so that the image API tasked with retrieving images from the particular archive can retrieve the appropriate images most efficiently. For example, a master index could use a high performance “DB2” database application. In most embodiments, redundancy would be provided, for example by mirroring the database on two or more large computing systems. For example, a mainframe computing system could be used for each of the systems, and the databases could be designed to use partitioning with multiple objects to maximize the efficiency and reduce maintenance requirements.
A master index that can be used with example embodiments of the invention receives information on items to be loaded from item processing sites throughout the financial institution. Files are organized according to CPCS cycle date. A history table is maintained which includes the cycle date and an assigned data set name as well as sequence numbers assigned to the various loads to the database. Information is sorted and sort keys are built when information is loaded into the master index. Sort keys can include items sequence numbers, serial numbers, and account numbers. Records can be sorted on the key type and value. Sort output records are written to output files of the various key types. After sorting, a job is built and submitted for a group of tables to be loaded in the database. These tables are used to organize the database into unposted on us items and transit items by un-posted account number sequenced files as well as into posted items. When all of the load jobs are submitted, partition key values are determined to determine into which partitions in the database each record should be placed. A partition table is maintained with cumulative counters for rows inserted into tables in each partition. Each load process adds counts to those counters and statistics are maintained and updated in a stored history table.
Still referring to
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, action, or portion of code, which comprises one or more executable instructions or actions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted described herein may occur out of the order presented, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by special purpose hardware-based systems or operators which perform the specified functions or acts.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof.
Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art appreciate that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown and that the invention has other applications in other environments. This application is intended to cover any adaptations or variations of the present invention. The following claims are in no way intended to limit the scope of the invention to the specific embodiments described herein.
This application is a continuation of U.S. patent application Ser. No. 11/554,617 for a “Document Indexing and Delivery System” (filed Oct. 31, 2006), which published on May 1, 2008, as U.S. Patent Application Publication No. 2008/0104022, and which is herein incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5187750 | Behera | Feb 1993 | A |
5701137 | Kiernan et al. | Dec 1997 | A |
6348935 | Malacinski et al. | Feb 2002 | B1 |
6405215 | Yaung | Jun 2002 | B1 |
7383327 | Tormasov et al. | Jun 2008 | B1 |
7506265 | Traut et al. | Mar 2009 | B1 |
7523187 | Lavallee et al. | Apr 2009 | B1 |
7831689 | Poisson et al. | Nov 2010 | B2 |
8055609 | Chen et al. | Nov 2011 | B2 |
8280716 | Haviv et al. | Oct 2012 | B2 |
8375354 | Shenfield et al. | Feb 2013 | B2 |
8438537 | Becker et al. | May 2013 | B2 |
8448170 | Wipfel et al. | May 2013 | B2 |
8706947 | Vincent | Apr 2014 | B1 |
8732287 | Lee et al. | May 2014 | B2 |
8819695 | Daute | Aug 2014 | B2 |
9015712 | Hodge et al. | Apr 2015 | B1 |
9134992 | Wong et al. | Sep 2015 | B2 |
9319288 | Somaiya et al. | Apr 2016 | B2 |
9426026 | Rider | Aug 2016 | B2 |
20020049963 | Beck et al. | Apr 2002 | A1 |
20020143865 | Tung Loo et al. | Oct 2002 | A1 |
20030120593 | Bansal | Jun 2003 | A1 |
20030144873 | Keshel | Jul 2003 | A1 |
20030191849 | Leong | Oct 2003 | A1 |
20040025157 | Blight et al. | Feb 2004 | A1 |
20040078105 | Moon et al. | Apr 2004 | A1 |
20040225865 | Cox | Nov 2004 | A1 |
20040261060 | Haselden et al. | Dec 2004 | A1 |
20050171899 | Dunn | Aug 2005 | A1 |
20050216409 | McMonagle et al. | Sep 2005 | A1 |
20050240601 | Lyons et al. | Oct 2005 | A1 |
20060026199 | Crea | Feb 2006 | A1 |
20060031261 | Behringer | Feb 2006 | A1 |
20060039023 | Supra | Feb 2006 | A1 |
20060039610 | Cantral | Feb 2006 | A1 |
20060206863 | Shenfield et al. | Sep 2006 | A1 |
20070094367 | Esfahany et al. | Apr 2007 | A1 |
20070179828 | Elkin et al. | Aug 2007 | A1 |
20070239749 | Farahbod | Oct 2007 | A1 |
20070266136 | Esfahany et al. | Nov 2007 | A1 |
20080140759 | Conner et al. | Jun 2008 | A1 |
20080140760 | Conner et al. | Jun 2008 | A1 |
20080140857 | Conner et al. | Jun 2008 | A1 |
20080201195 | Cohn et al. | Aug 2008 | A1 |
20080294648 | Lin et al. | Nov 2008 | A1 |
20090024713 | Strasenburgh et al. | Jan 2009 | A1 |
20090125796 | Day et al. | May 2009 | A1 |
20090201812 | Dettori et al. | Aug 2009 | A1 |
20090249287 | Patrick | Oct 2009 | A1 |
20090319581 | Seifert | Dec 2009 | A1 |
20090327211 | McCune et al. | Dec 2009 | A1 |
20100017783 | Brininstool et al. | Jan 2010 | A1 |
20100023921 | Chaar et al. | Jan 2010 | A1 |
20100077068 | Saha et al. | Mar 2010 | A1 |
20100169150 | Gremont et al. | Jul 2010 | A1 |
20100189103 | Bachmann et al. | Jul 2010 | A1 |
20100199276 | Umbehocker | Aug 2010 | A1 |
20100242013 | Hao et al. | Sep 2010 | A1 |
20110023013 | Shenfield et al. | Jan 2011 | A1 |
20110173303 | Rider | Jul 2011 | A1 |
20110225118 | Wu et al. | Sep 2011 | A1 |
20110276636 | Cheng et al. | Nov 2011 | A1 |
20110276968 | Kand et al. | Nov 2011 | A1 |
20110283263 | Gagliardi et al. | Nov 2011 | A1 |
20110283278 | Murrell et al. | Nov 2011 | A1 |
20120016713 | Wilcock et al. | Jan 2012 | A1 |
20120053974 | Kulkarni et al. | Mar 2012 | A1 |
20120069131 | Abelow | Mar 2012 | A1 |
20120130963 | Luo et al. | May 2012 | A1 |
20120167057 | Schmich et al. | Jun 2012 | A1 |
20120216135 | Wong et al. | Aug 2012 | A1 |
20120254834 | Flurry et al. | Oct 2012 | A1 |
20120260228 | Mallick et al. | Oct 2012 | A1 |
20120278786 | Ruiz et al. | Nov 2012 | A1 |
20120297358 | Kumar et al. | Nov 2012 | A1 |
20120311475 | Wong | Dec 2012 | A1 |
20120324069 | Nori et al. | Dec 2012 | A1 |
20130019018 | Rice | Jan 2013 | A1 |
20130055092 | Cannon, III et al. | Feb 2013 | A1 |
20130104150 | Rdzak et al. | Apr 2013 | A1 |
20130110881 | Bender | May 2013 | A1 |
20130124253 | Cooper et al. | May 2013 | A1 |
20130151491 | Gislason | Jun 2013 | A1 |
20130173768 | Kundu et al. | Jul 2013 | A1 |
20130219297 | Soundararajan et al. | Aug 2013 | A1 |
20130282746 | Balko et al. | Oct 2013 | A1 |
20140068600 | Ashok et al. | Mar 2014 | A1 |
20140075433 | Kotton | Mar 2014 | A1 |
20140195666 | Dumitriu et al. | Jul 2014 | A1 |
20140223431 | Yoshimura et al. | Aug 2014 | A1 |
20150074536 | Varadharajan et al. | Mar 2015 | A1 |
20150188775 | Van Der Walt et al. | Jul 2015 | A1 |
20150229546 | Somaiya et al. | Aug 2015 | A1 |
20150254364 | Piduri et al. | Sep 2015 | A1 |
20160062783 | Falkco | Mar 2016 | A1 |
20160127307 | Jain et al. | May 2016 | A1 |
Number | Date | Country |
---|---|---|
2009012320 | Jan 2009 | WO |
Entry |
---|
European Patent Examination Report dated Feb. 11, 2011 for Application No. 07 854 530.8. |
International Search Report and Written Opinion dated Mar. 28, 2008 for International Application No. PCT/US2007/083087. |
Therani Madhusudan et al., “A case-based reasoning framework for workflow model management”, Data & Knowledge Engineering, vol. 50, pp. 87-115, XP026976541. |
David Hollingsworth, “Workflow Management Coalition the Workflow Reference Model”, Internet Citation, [Online], Jan. 19, 1995, pp. 1-55, XP002218704. |
Examination Report dated Sep. 16, 2013 for Application No. 07 854 530.8. |
European Oral Proceedings dated May 20, 2014 for Application No. 07854530.8. |
Canadian Office Action dated Mar. 26, 2014 for Application No. 2,667,798. |
Hollingsworth, D., “Workflow Management Coalition, The Workflow Reference Model”, Internet Citation, Internet citation, [Online] Jan. 19, 1995, pp. 1-55, XP002218704, Retrieved from the Internet: URL:http://www.wfmc.org/standards/docs/ tc003v11.pdf> [retrieved on Oct. 29, 2002]. |
Garfinkel, Tal et al., Terra: A Vitual Machine-Based Platform for Trusted Computing, 2003, [Retrieved on Feb. 2, 2016]. Retrieved from the internet: <URL: http://delivery.acm.org/10.1145/950000/945464/p193-garfinkel.pdf?> 14 Pages (193-206). |
Guo, Li: Enacting a Decentralised Workflow Management System on a Multi-agent Platform, 2006, pp. 28-31. |
Li, Guoli: Decentralized Execution of Event-Driven Scientific Workflow, 2006, pp. 1-7. |
Paulley, Glenn, “Loading data in more flexible ways part deux”; http://iablog.; http://iablog.sybase.com/ paulley/2009/07/loading-data-in-more-flexible-ways-part-deux/, Jul. 10, 2009. |
Wyatt, Len et al.“We Loaded 1TB in 30 Minutes with SSIS, and So Can You”; http://technet.; http://technet.microsoft.com/en-us/libraiy/dd537533, Mar. 2009. |
Zhang, Chen: CloudWF: A computational Workflow System for Clouds Based on Hadoop, 2009, pp. 393-403. |
Nizzardini, Chris, “MySQL Temporary Tables Example Optimizing PHP Applications”; http://blog.cnizz; http://blog.cnizz.com/2010/11/24/mysql-temporary-tables-example-optimizing-applications-with-temp-tables/, Nov. 24, 2010. |
VMware, Increase Longevity of IT solutions with VMware vSphere, Jul. 2010, [Retrieved on Feb. 2, 2015]. Retrieved from the Internet: <URL: http://www.wei.com/insights/VMware-IncreaseLongevityofITSolutionswithVMwarevSphere.pdf> 10 Pages (1-8). |
Wikipedia, the free encyclopedia, Service-oriented architecture, http://www.en.wikipedia.org/wiki/Service-oriented—architecture. Downloaded from http://en.wikipedia.org/wiki/Service-oriented—architecture on May 21, 2013. |
https://api.jquery.com/ retrieved from the internet on Jul. 15, 2016; 36 pages. |
https://api.jquery.com/data/ retrieved from the Internet on Jul. 15, 2016; 6 pages. |
PCT International Search Report and Written Opinion, issued in corresponding International Patent Application No. PCT/US2007/083087, Mar. 28, 2008. |
India Patent Office, First Examination Report for Application No. 1873/KOLNP/2009, dated Oct. 12, 2015, 2 pages. |
Number | Date | Country | |
---|---|---|---|
20130191396 A1 | Jul 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11554617 | Oct 2006 | US |
Child | 13796356 | US |