WO1999022329A1 - Multi-processing financial transaction processing system - Google Patents

Multi-processing financial transaction processing system Download PDF

Info

Publication number
WO1999022329A1
WO1999022329A1 PCT/US1998/023026 US9823026W WO9922329A1 WO 1999022329 A1 WO1999022329 A1 WO 1999022329A1 US 9823026 W US9823026 W US 9823026W WO 9922329 A1 WO9922329 A1 WO 9922329A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
transaction
financial
record
enterprise
Prior art date
Application number
PCT/US1998/023026
Other languages
French (fr)
Inventor
William H. Hinkle
Original Assignee
N-Gine, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by N-Gine, Llc filed Critical N-Gine, Llc
Priority to AU11263/99A priority Critical patent/AU1126399A/en
Publication of WO1999022329A1 publication Critical patent/WO1999022329A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/03Credit; Loans; Processing thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/06Asset management; Financial planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • G06Q40/125Finance or payroll
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q99/00Subject matter not provided for in other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1091Recording time for administrative or management purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • G06Q40/128Check-book balancing, updating or printing arrangements

Definitions

  • the present invention relates to a financial transaction processing system, and in particular, to such a system that is capable of decomposing transactions into subtransactions and multi-processing subtransactions simultaneously.
  • the present invention is a financial transaction processing system that achieves substantial increases in auditability and processing efficiency.
  • the present invention provides aud able trails or history in a number of different ways.
  • financial data within transactions is used in the present invention to update various control fields in different tables or files so that cross-checks of system financial integrity can be performed for assuring that, for example, cash fields, total units fields, and cost fields balance appropriately across system data tables provided by the present invention.
  • the present invention provides a full range of auditable history files for each system data table having information that is required during auditing.
  • the present invention also performs financial transaction processing using a novel computational paradigm. That is, the financial transaction processing system of the present invention has an architecture wherein financial transactions can be decomposed into corresponding collections of independent subtransactions, such that for each input transaction, the corresponding collection of subtransactions are performed by operations that are independent of one another.
  • the subtransactions can be performed in any order, including in an overlapping fashion, such as may occur during multiprocessing of these subtransactions on a computer having multiple processors.
  • each of the subtransactions is described by a relatively short (e.g., less than 8 characters) text string that can be straightforwardly interpreted as an operation (e.g., either plus or minus) together with a series of operands, in particular, a first operand having a value to be used in modifying a data table field (column) specified by a second operand.
  • Such high level descriptions of subtransactions provide both compact conceptualization and a reduction in the total size of the executable code for the present invention.
  • control fields such as those mentioned above are updated appropriately in various data tables for the present invention to enhance auditability of the financial data resulting from the transaction processing.
  • the subtransactions are independent of one another and their executable code is relatively small, there is no need for lengthy and complex flow of control transaction processing modules. That is, the size of the code for the present invention may be up to 100 times smaller than many prior art transaction processing systems. Accordingly, this has a substantial positive impact on the efficiency of the present invention in that the swapping of program elements in and out of primary computer memory is substantially reduced.
  • the financial transactions of a plurality of business enterprises can be processed in an interleaved manner.
  • the present invention since the present invention is substantially data driven, including the descriptions of the transactions and their related subtransactions, the present invention can be easily modified to incorporate both different or updated versions of transactions and associated data tables for an existing business enterprise (e.g., also denoted "licensee” hereinafter).
  • the transactions and related data tables for an entirely new or different business enterprise (licensee) may be straightforwardly incorporated into the present invention so that " its transactions can be interleaved with the transactions of other business enterprises.
  • transaction processing may be performed by the present invention for business enterprises having different transactions, different account record structures and differently organized general ledgers substantially without modifying the program elements of the transaction processing system.
  • the present invention can be used to simultaneously process transactions for
  • the present invention may be viewed as a software engine, or a user-definable transaction processing tool that can be adapted to a variety of industry specific software application needs without changing the actual program code. That is, by surrounding the present invention with application specific software for inputting transaction data to the multiprocessing financial transaction processor of the present invention and retrieving data from the multi-processing financial transaction processor of the present invention, a particular business enterprise can have substantially all of its financial records in condition for auditing on a daily or weekly basis.
  • the present invention may be further characterized along the following dimensions: flexibility, auditability, multiprocessing, efficiency and size, these dimensions being discussed, in turn, hereinbelow. Flexibility is achieved by .ermitting a business enterprise to define:
  • audkabilty of transaction records is achieved by four sets of files for a specific period. These are: (a) a snapshot of all the reference files at the end of the period; (b) snapshots of a history file for each master table, wherein the corresponding history file (table) contains all changes to the master table during the specific period; (c) a snapshot of all financial transactions for the specific period, and (d) a snapshot of all of the "driven" tables at the end of the period. Multiprocessing is achieved by:
  • multiprocessing can be achieved by allocating the next prescribed subtransaction process to the next available processor.
  • Efficiency is achieved by: (I ) Defining and utilizing only four standard processing models that perform all prescribed functionality and auditability of the present invention.
  • the models are:
  • Processing Model I provides an architecture for maintaining historical transaction data so that financial changes can be traced through time
  • Processing Model 2 provides an architecture for automatically maintaining data columns such as Units, Debits and Credits for cross checking table sums to assure that the financial records for a business enterprise balance;
  • Processing Model 3 provides an architecture for automatically maintaining financial records relating to financial instruments such as stocks, bonds, real estate, etc.
  • Processing Model 4 provides an architecture for producing a common processing format for maintaining customer and institutional data tables.
  • a transaction processing controller module for receiving transactions to be processed, and controlling the processing thereof;
  • a preprocessor and decomposer module for determining the validity of a received transaction, assuring that all data tables and rows thereof are available for processing the transaction, and retrieving the appropriate subtransactions data descriptions to be processed;
  • a subtransaction scheduling module for scheduling instantiations of the subtransaction processing module on each of one or more processors;
  • each subtransaction includes an operator and two or more operands in an 8-character string.
  • the financial processing by the present invention may be performed on several transactions at a time, one transaction at a time, or different processors within a multiprocessor context. Or, the subtransactions for a specific transaction may be spread over several simultaneous processors. This means that the business enterprise is afforded a large number of options in tailoring the present invention.
  • the size of the total code required to process a specific industry application may be substantially reduced compared to prior art transaction processing systems.
  • the executable code for the present invention may be less than one megabyte (1MB).
  • the secondary cache attached to each processor in multiprocessing personal computer servers can be one megabyte, substantially the entire executable for the present invention can be provided to each processor.
  • secondary cache typically about four times faster than normal cache, so productivity gains of about three-hundred percent would not be unreasonable.
  • the executable code for the present invention can reside in the secondary cache of each processor, thereby allowing the off-loading of any processing function to any processor with relative ease.
  • a typical RAM memory for a personal computing devices is 16 megabytes, it is believed that such a device will have the capability to process the back office financial transactions of a major money center financial institution or communications billing system.
  • FIG. I is a high level block diagram illustrating the present invention conceptually.
  • Figs. 2A and 2B is another block diagram of the present invention illustrates: (a) the high level transaction processing modules, and (b) the data tables (represented by the symbols with arcuate vertical s ies) provided and maintained by the present invention. Furthermore, the present figure shows the data flows as solid arrows and control flows as dashed arrows. Moreover, this figure also indicates the data tables effected by process models No. 2 and No.3 of the present invention.
  • Fig. 3 is another high level block diagram of the present invention during activation of the preprocessor and decomposer 54 wherein the solid arrows are illustrative of the data flows that occur during the activation of the preprocessor and decomposer 54.
  • the tables within boxes represent tables having a process model No. I representation, and the tables having account balancing control fields include the identifier, "CNTLS.”
  • Figs.4-A through 4-E illustrate the steps of a flowchart for initializing the database tables of the present invention for a new business enterprise licensee that is to have its financial transactions subsequently processed by the present invention.
  • Fig.5 is a block diagram illustrating process model No. I of the present invention.
  • Fig.6 is a high level flowchart of the steps of an embodiment of the transaction processing controller 52 of Fig.2A.
  • Figs.7-A through 7-D show the high level steps performed by an embodiment of the preprocessor and decomposer
  • Figs.8-A and 8-B show the steps of a flowchart for obtaining indexes or pointers to particular rows of a general ledger table wherein the rows are used in processing a transaction.
  • Figs.9-A and 9-B show the steps for a flowchart of an embodiment of the subtransaction processing module 64 (Fig.
  • Fig. 10 is an embodiment of a flowchart of the steps performed for processing income cash transactions by the present invention.
  • Fig. 11 is an embodiment of a flowchart of the steps performed for processing principal cash transactions by the present invention.
  • Fig.12 is an embodiment of a flowchart of the steps performed for processing invested income transactions by the present invention.
  • Fig. 13 is an embodiment of a flowchart of the steps performed for processing invested principal transactions by the present invention.
  • Fig. 14 is an embodiment of a flowchart of the steps for performing custom accounting such as income expenses, and cash flow for a business enterprise.
  • Fig.15 is an embodiment of a flowchart of the steps for maintaining a business enterprise's balance sheet related to buys and sells of financial entities or instruments.
  • Figure I shows a high level conceptual block diagram of a transaction processing system 50 according to the present invention.
  • the present invention is conceptualized in the present figure as including five functional components, these being: (a) transaction processing controller 52 for: (i) receiving transactions 58 from business enterprises, (ii) controlling the processing of such transactions, including the scheduling of subtransactions to be performed, and (iii) writing of transaction details to, for example, a transaction journal file or table;
  • a transaction preprocessor and decomposer 54 for initially receiving a transaction 58 from any one of a plurality of business enterprises as shown, wherein the preprocessor and decomposer 54 decomposes transactions into subtransactions;
  • a subtransaction processing module 64 for performing the instructions for each subtransaction determined by the transaction preprocessor and decomposer 54.
  • the subtransaction processing module 64 utilizes a collection of subtransaction programmatic data descriptions 66 that can be independently scheduled and performed for processing each transaction 58 provided to the transaction processing system 50;
  • databases 70 a collection of databases 70 containing financial information for each of the one or more business enterprises.
  • database in the present context includes both the data therein as well as database management functional elements and data structure definitions.
  • Figure 2 Another illustration of the present invention is provided in Figure 2.
  • This figure is a block diagram providing both the processing components of Figure I , and additionally, greater detail is provided of the tables or files within the databases
  • the database terminology used will be that of a relational database. Accordingly, files may also be equivalently referred to as tables, records may also equivalently be referred to as rows, and record fields may also be equivalently referred to as columns. Thus, all the data storage symbols having the collective label of 70 are provided within the like numbered databases of Figure I. It is worth noting, however, that in one embodiment of the present invention, the data tables for distinct business enterprises may be provided in the same collection of tables such as those represented in Figure 2. That is, it is an aspect of the present invention that the accounting and transaction processing of the present invention can use the same plurality of financial data tables for business enterprises having substantially different financial transactions and accounting categories.
  • Figure I illustrates the databases 70 as being distinct for each business enterprise, many of these databases (if not most) may be combined into a single database having a plurality of data tables such as those labeled collectively "70" in Figure 2, these tables being discussed in detail hereinafter.
  • the transaction processing controller 54 receives an input transaction 58 and invokes the preprocessor and decomposer 54.
  • the preprocessor and decomposer 54 subsequently performs, for each transaction 58, the following functions:
  • (a) determines, using input from the business enterprise databases 70, whether all necessary data for performing the transaction is available and otherwise rejects the transaction without performing any portion thereof.
  • the transaction preprocessor and decomposer 54 determines that all data tables to be accessed are available;
  • (c) checks to determine that the transaction operations) requested is available, and that the transaction is legitimate to be performed on the data for the input transaction 58;
  • (d) retrieves the subtransaction data descriptors for decomposing the input transaction 58 into subtransactions.
  • the preprocessor and decomposer 54 retrieves into the working storage 72 (shown in Fig.3) of a host computer (not shown), upon which the transaction processing system 50 is operating, substantially all data and table rows that are necessary to process the transaction 58. Additionally, note that as one skilled in the art will understand, if some portion of the required data to process the transaction is unavailable, then the preprocessor and decomposer 54 terminates processing and subsequently writes appropriate error messages and/or details of the transaction into the reject table 74 (Fig.2).
  • the transaction processing controller 52 invokes the subtransaction scheduler 62 for scheduling the performance of each subtransaction by an invocation of the subtransaction processing module 64.
  • the subtransactions can be processed independently of one another for a given transaction, instantiations of the subtransaction processing module 64 can be executed in substantially any desired order. In particular, such instantiations of the subtransaction processing module 64 can be performed concurrently, thus providing a substantial increase in transaction processing efficiency when such concurrency is provided on a computer having a plurality of processors.
  • each subtransaction conceptually indicates a single operation of either plus or minus that is to be performed with two operands also indicated in the subtransaction. That is, the first operand indicates the data to be added or subtracted from a partkular field or column of a table row identified by the second operand.
  • each subtransaction updates other tables within the transaction processing system 50 automatically in order to provide consistency among the data tables so that: (a) substantially on-line account balancing capabilities can be performed, and (b) full auditability of the records of the business enterprise providing the transaction can be facilitated by retaining history records of table updates, as will be discussed with reference to "master table transaction cluster processing" described hereinbelow.
  • each subtransaction processed by an instantiation of the subtransaction processing module 64 may update a plurality of the data tables contained in the collectively labeled database 70. Note that for one skilled in the art of transaction data processing and accounting, the names provided to the tables are indicative of their information content and structure. However, for clarity, substantially all of the tables for the present invention will be discussed in detail and/or illustrated hereinbelow.
  • the subtransaction processing module 64 processes subtransactions derived from three general categories of transactions that may be input to the present invention. That is, there may be input transactions for each of the following types of financial transactions (I.I) through (13) hereinbelow. (1.1) Transactions related to exchanges of funds such as cash debits and credits for accounts of a partkular business enterprise are provided. At a high level, the tables related to this functionality include the account master table 84 (Fig.2), the general ledger table 88, and the entity attribute master table 92.
  • a customer income statement (income/expense) table 96 may be provided with client account and transaction information related to income and expenses for tax purposes.
  • a customer cash flow (receipts/disbursements) table 100 is also provided for recording any account transaction information related to receipts and disbursements in client accounts.
  • a customer performance measurement table 104 is also provided for retaining client account performance information related to the performance of client portfolios in comparison to investment indexes such as the Dow Jones Industrial Average, the S&P 500, etc. Note that these tables will be discussed and/or illustrated hereinbelow.
  • the preprocessor and decomposer 54 upon being invoked by the transaction processing controller 52, also retrieves into working storage (as shown in Fig. 2) the necessary data for processing such portfolio maintenance transactions, this data including a subtransaction decomposition for the transaction. Subsequently, as discussed hereinabove, the subtransaction scheduler 62 invokes an instance of the subtransaction processing module 64. However, in addition to updating any appropriate rows of the tables 84, 88, 92, 96, 100 and 104, the subtransaction processing module 64 invokes a portfolio adjuster module 110 for capturing and/or updating detailed data of portfolio transactions that are not otherwise effectively captured for proper accounting and auditing. In particular, for a given subtransaction, the portfolio adjuster 110 invokes one of the following modules (2.1) through (2.4) hereinbelow.
  • Original add module 114 for processing a subtransaction related to the addition of further financial instruments to a portfolio such as occurs when securities are bought and must be added to a given account
  • An original sell module 122 for processing subtransactions related to selling financial enterprises within a given account portfolio.
  • modules 114-126 update the tables labeled collectively as 70B. In partkular, the processing performed herein and the tables updated herein are described below.
  • the N gine transaction processing system contains four major programs. These are:
  • Subtransaction Processing module 64 (4) Subtransaction Scheduler 62 Program Functionality
  • Transaction Preprocessor and Decomposer 54 The purpose of the Transaction Preprocessor and Decomposer 54 is to verify
  • Subtransaction Processing module 64 The purpose of the Subtransaction Processing module 64 is to calculate the rate of the Subtransaction Processing module 64.
  • the purpose of the Subtransaction Scheduler 62 is to
  • the present invention may be described as "Table-Driven Transaction Processing". That is, the present invention permits the processing of virtually any type of user-definable transaction by defining the processing for such transactions as data descriptors that are interpreted in real time and dynamically as needed for processing corresponding transactions.
  • the transaction data descriptors are denoted as "driving data" and are defined by the transaction processing master table and the transaction master table. That is, the transaction master table provides a first initial collection of data for identifying each transaction and the transaction processing table provides the remainder of the data including the subtransaction decompositions. Accordingly, each transaction processed updates an appropriate set of user-definable tables (known as the "driven” data) for completing the processing of the transaction. Since both the "driving" and the "driven” information is expressed as data rather that actual code, the entire functionality of the system can be changed in a straightforward manner.
  • N_gine System Design Rules The Magk Number in Software Design is I. That is, store data once, program data once, process data once.
  • C. Use the first and last models to process all files (or tables) in the entire system.
  • D. Include audit controls for every table in the system from the very outset of design.
  • Each algorithm has 3 components a. Plus (P) or Minus (M) b. Operand I c. Operand 2 C. 100% Auditability For Every Transaction by creating a Detail Record containing all relevant data and hash totals of three relevant fields in at least 3 other tables.
  • Licensee Profile The Licensee “Reference” or “Master” Tables)
  • LM The License Master table contains the necessary information to process any type of licensee using either single or multiprocessing computers.
  • LU The Licensee User Master identifies different users for the disparate systems that may be processed simultaneously.
  • LT The Licensee Account Type table contains the necessary information to process any type of account be it for a pension trust account, a communications account, or a corporate subsidiary.
  • LD The Licensee Default Definition table the default definitions for cash, units, and cost basis controls for total system control.
  • LL The Licensee General Ledger Definition is a list of all of the acceptable entries for the General Ledger. That is, it provides a framework for processing any type of accounting controls for any set of account types.
  • LS The Licensee Diversification Scheme contains a three level classification scheme for reporting an decision-making purposes for any set of assets and liabilities.
  • LP The Performance Measurement Group Master contains a three level classification scheme for measuring the performance of different investment groups.
  • LN The Licensee Summary Name Master contains a list of the entries on any type of Income Statement and Cash Flow
  • the Licensee Wholesaler Master contains name, address, sales volumes, etc. wholesalers of communications services.
  • the Licensee Reseller Master contains name, address, sales volumes, etc. for resellers of communications services.
  • the Account Objectives Table contains the different types of account objectives, such as income, growth, capital preservation, etc.
  • the Account Jurisdiction contains the different types of legal relationships, such as broker, agent, trustee, advisor, etc.
  • AJ The Account Jurisdiction contains the different types of legal jurisdiction, such as federal law, state law, foreign law, etc.
  • AR The Account Representatives Table houses the different representatives, their names and communication addresses.
  • the Account Registration Names is a list of legal names used in security settlement.
  • AM The Account Master table provides all of the necessary information to process any type of account by linking the Account Objective, Account jurisdiction, Legal Capacity, Profit Center, Account Representative, and Registration tables plus other relevant data for reporting content and reporting cycles.
  • AC The Account Communications Links links the Account Number for Financial Services to the account numbers for communications services so that all information can be contained in one reporting scheme.
  • the Transaction Master table provides all of the information to process any type of transaction, excepting the specific processing algorithms.
  • TP Transaction Processing table provides all of the specific processing algorithms for any type of transaction master.
  • the Transaction Master and Transaction Processing tables provide all of the necessary information to process any type of transaction.
  • TR The Transactions - Recurring Table (TR) contains the necessary information for automatically processing any type of transaction on a recurring basis.
  • Entity Profile The Entity "Reference" Tables
  • the Entity Master table provides all of the necessary information to process any type of financial entity.
  • the Entity Attribute table joins all relevant diversification (known as type, group, and class), general ledger (known as accounting control numbers), and performance group (known as type, group, and class) data into one table for only one access seek.
  • ET The Entity Transaction table links specific transactions to specific entities, such as BG (Buy Government) for a US
  • the System General Ledger contains all of the information to process any type of institutional accounting control.
  • the System Transaction Journal Table contains all of the transactions and all of the details for each transaction for a specific accounting period.
  • ST The System Trade Settlement Table contains all of the automatically generated offset transactions for Buys and Sells
  • the System Summary Table contains a record for each execution of the system with the Begin Time, End Time,
  • the System Reject Table contains a list of all transactions rejected for whatever reason.
  • SC The System Transaction Count Table contains the number of each type of transaction processed on any given transaction.
  • the Customer Income Statement contains all revenues, expenses, and profits or losses for all customer accounts.
  • CF The Customer Cash Flow Statement contains all receipts and disbursements for all customer accounts.
  • CB The Customer Balance Sheet table contains all assets and liabilities for all customer accounts.
  • the Customer Capital Gains table contains all of the realized capital gain details for all customer accounts.
  • the Pending Income table contains all of the pending income, such as interest or dividends, for all accounts.
  • CA The Pending Capital Adjustments table contains all of the pending capital adjustments, such as stock splits, stock dividends, mergers, acquisitions, etc., for all accounts.
  • CP The Performance Measurement contains all of the periodk performance records for all customer accounts.
  • the Control Tables (The "System Balance” Tables)
  • control values of cash, units, and cost basis are added to like values in the following control tables:
  • the Performance Measurement table is used as a control table instead of the General Ledger.
  • the present invention includes four computational processing models (process models I through 4) for processing financial transactions and assuring full auditability and traceability.
  • Process Model I (Fig.5) is to create a single methodology for capturing, maintaining, and archiving the non-financial transaction data including a master table (reference table, or schema ) data for 100% auditability within a single software system.
  • This model provides:
  • Process Model I •A process flow methodology for add, change, and delete of data table rows.
  • Process Model I The operation of Process Model I is as follows:
  • Process Model 2 (Figs.2A, 2B) is to create a single methodology for: capturing, maintaining, and archiving the financial transaction data including: units, and debit/credits for one or more disparate financial applications with 100% auditability, wherein the processing is performed by: (a) computing configurations containing any number of simultaneous processors, (b) decomposing each input financial transaction into separate and independent subcomponents, (c) allocating the subcomponents across any number of multiple processors.
  • the methodology of process model 2 utilizes a data-driven transaction processing strategy, wherein the manner in which a transaction is processed is determined by retrieving appropriate control data for processing a given input transaction.
  • the present model provides the ability: (a) to process like systems (such as financial servkes systems) with different transaction definitions and accounting requirements (such as commercial banking, broker/dealers, mutual funds, insurance systems) and different debits and credits and/or (b) unlike systems (such as telecommunications systems) with disparate definitions (such as landline, wireless, satellite, cable systems) within the present invention at the same time.
  • Process Model 3 (Figs.2A, 2B) is to create a single methodology for: capturing, maintaining, and archiving the financial transaction data including: units, debits/credits, financial instruments for one or more disparate financial applications with 100% auditability within a single software system on computing configurations containing any number of simultaneous processors, decomposing each disparate financial transaction into separate and independent subcomponents, allocating the subcomponents across any number of simultaneous processors, and processing the data with
  • “Detail Record Maintenance” that is, the ability to process transactions for similar business enterprises (such as portfolio maiHgement systems) relating to various financial instruments (such as disparate assets and liabilities) and/or transactions for dissimilar business enterprises (such as portfolio management systems, paying agencies, stock transfer systems) with disparate languages (such as English, Spanish, French, or German) and disparate definitions (such as management philosophy, accounting, and operating nomenclature) and unlike financial instruments (such as assets and liabilities) within the same software at the same time.
  • similar business enterprises such as portfolio maiHgement systems
  • financial instruments such as disparate assets and liabilities
  • dissimilar business enterprises such as portfolio management systems, paying agencies, stock transfer systems
  • disparate languages such as English, Spanish, French, or German
  • disparate definitions such as management philosophy, accounting, and operating nomenclature
  • Process Model 4 is to create a single methodology for performing file maintenance including: creating a record (row) containing the initial data in a file (table) or modifying the initial data within an existing record (row) within a file (table) or deleting a current record (row) from a file (table)in any software application on computing configurations using simultaneous processors.
  • “Details”, hereinbelow represents the identity of the specific financial transaction
  • the methodology of the process model 4 is provided by programs such as the following:
  • W Trxn is "ADD" th-sn
  • Processing model I is a method for processing changes to files (or tables) denoted as master or reference tables
  • processing model I processes changes to master tables in an automated manner without losing historical financial information. Accordingly, 100% auditability of all data changes is able to be achieved.
  • MTCP Master Transaction Cluster Processing
  • MTCP is based on the premise of creating a logical flow of all original information from data capture (data entry) to permanent data repository (data warehouse) by replacing single master files (or tables) with a cluster of files (or tables). Therefore, MTCP addresses the complete life cycle of all information relevant to organizational decision-making.
  • MTCP is targeted for use in the automatk generation of program code for multiple large-scale real-time transaction processing applications (such as securities trading, telecommunications billing, and work management) on multi-processing computers (using 4, 8, 16, 32 processors), where control is not only an increasing complex issue but an absolute necessity for future competition.
  • MTCP Overview Master Transaction Clustering performs the following tasks: a) assigns a unique identifier based on (i) master table identification, (ii) transaction date, (iii) transaction number, and ( ⁇ v) authorized user, to each transaction that causes a change in the state of a partkular record of a master table. That is, if one or more data elements in the record change, then the previous record is written to history, and a new status is assigned to an identifier field used for tracking such changes; b) creates a logical flow of data as it is originally entered from its inception (data entry) to its repository (data warehouse).
  • MTCP replaces the Master File (or Table) within prior art systems with a cluster of Master Files (or Tables), known as a "Master Transaction Cluster".
  • This cluster is suitable for multiprocessing (or the use of simultaneous processors within a single computer to complete a common job).
  • MTCP addresses 100% auditability via maintaining the total life cycle of information.
  • Aged information may be deleted from the appropriate tables consistent with user-defined data retention policies;
  • c) offers a standard for processing all Master Tables within a total application;
  • d) provides a test bed for separately testing each Master Table Cluster under development and all Master Table Clusters in concert; e) permits management to report that it is successfully capturing, maintaining, and preserving all critical information for decision-making purposes.
  • Master Transaction Cluster Processing utilizes the following (Fig.5): a) two databases (i.e., the current data base 300 and the archive data base 304), b) sequencing generator 308 having: (i) two external sequence generators; (ii) two internal counters, c) eight tables (denoted master table 312, input table 316, summary table 320, reject table 324, accept table 328, history table 332, master archive table 336 and master history table 340), and d) twelve additional fields for every row in the master table 312.
  • a) two databases i.e., the current data base 300 and the archive data base 304
  • sequencing generator 308 having: (i) two external sequence generators; (ii) two internal counters, c) eight tables (denoted master table 312, input table 316, summary table 320, reject table 324, accept table 328, history table 332, master archive table 336 and master history table 340), and d) twelve additional fields for every row in the master table 312.
  • Master Transaction Cluster Processing of Model I is independent of any: a) application - such as accounts receivable, customer billing, etc. b) industry - such as financial servkes, telecommunication, or work management, c) hardware manufacturer - such as Compaq, Digital, HP, IBM, NCR, Unisys, d) operating system - such as MS-DOS, UN IX, OpenVMS, MVS, etc. e) network - such as Novell, Ethernet, etc. f) relational database management system - such as Oracle, Sybase, Microsoft SQL Server, Informix, etc., and g) computer language - such as SQL, COBOL, FORTRAN, PL/I , Java, etc.
  • the Master Transaction Cluster Processing (MTCP) architecture can be used for any application in any industry using any computer language.
  • the Master Transaction Cluster Processing focuses solely on the process function.
  • the method permits users to define input screens and defined output reports.
  • Cluster Processing uses eight related tables, or a cluster of tables, to track all information on a cradle to grave basis.
  • the cradle being its point in inception (or data entry), and the grave being its permanent repository (or data warehouse).
  • the "Master Transaction Cluster” spans two different databases: one denoted the Current database 300 containing all relevant data for the current processing period and a second denoted the Archive database 304 containing all relevant data for all previous processing periods.
  • the Current database 300 represents the area of high inquiry
  • the Archive database 304 represents the area of low inquiry. Consequently, the Current database 300 is normally placed on high-speed internal disk drive and the Archive database 304 is normally placed on less expensive lower-speed CD-ROMs. Note that trailing information in the Archive database 304 may be destroyed consistent with defined data retention policies, statute of limitations, etc.
  • the six tables in the Current database 300 are the a.) Master Table 312(H) that will contain all records to be maintained, b.) Input Table 316 (I) that will contain all records prior to updating. c.) Reject Table 324 (R) that will contain all records rejected during processing, d.) Accept Table 328 (A) that will contain all records accepted during processing, e.) History Table 332 (H) that contain a complete snapshot of all records prior to updating, f.) Summary Table 320 (S) that contains the results of a specific processing operation.
  • Master Archive Table 336 that contains snapshots of the master table 312 at the end of each processing period
  • Master History Table 340 that contains a history of the master table 312 changes during a current processing period.
  • M Master Table
  • I Input Table
  • R Reject Table
  • A Accept Table
  • H History Table
  • S Summary Table
  • S contains the start time, end time, number of accepts, and number of rejects for each time a series of master table 312 modifications are provided.
  • the Generators 308 include two different external counters and two internal counters used in effecting 100% auditability.
  • the two external counters are the Accept Sequence Number Generator and the Reject Sequence Number Generator.
  • the two internal counters are the Total Records Read Counter and the Number of Modifications Counter. All are used only in the Current database 300, as the Archive database 304 is read-only in nature.
  • the Accept Sequence Number Generator included in the Current database 300 automatically generates sequential numbers for the processing period (daily, weekly, monthly, etc.) starting with the number I, and increments by I, so that every transaction processed against the preceding (old) master table 312 will receive a specific transaction number, and accordingly, each transaction processed will be uniquely ' identifiable based on master table identity, transaction date, transaction number, and authorized user. Note that the transaction date is read off the internal system clock.
  • the Reject Sequence Number Generator counts the number of rejects for the specific processing period. Its function is similar to the Accept Sequence Number Generator. Both the Accept Sequence Number Counter and the Reject Sequence Number Counter are "processing period" specific. That is, both are cleared to zero at, e.g., midnight on the end of the processing period so that each processing period may be separately identified and audited.
  • the Total Records Read Counter counts the number of transactions read during a specific processing performance. Since the Total Records Read Counter is "job execution" dependent, this counter is cleared to zero at the outset of every processing program execution.
  • the Number of Modifications Counter counts the number of times a specific record has been changed. As this counter is "record” dependent, this counter is never cleared to zero, This specific counter should identify the number of individual records that may be retrieved, viewed, and verified from all of the tables in the specific Master Transaction Cluster to prove its auditability.
  • the Archive database 304 is read only. Within the Archive database 304, information contained in the Master
  • Archive Table 336 represents a snapshot of information in the Master Table in the Current database 300 at a partkular point in time such as the end of a month, quarter, or year. And, information in the History Archive Table 336 contains all of the transactions that have occurred from the beginning of the most recent processing period until the partkular point in time, be it month, quarter, or year.
  • the Master Archive Table 336 contains the status of the Master Table 312 at the end of the first quarter
  • the History Archive 340 contains all of the transaction modifications occurring since the end of the last quarter. In this fashion, any status of any Master Table 312 can be recreated for any point in time (say, month ends) by simply processing all transactions in the History Archive 340 for the desired period against the previous Master Archive Table 336, or the beginning of the period.
  • Every master file (or table in relational database management systems has a Master Transaction Cluster. Therefore, a total system containing 15 tables would require 15 x 8 or 120 tables to achieve full 100% auditability. Since each table will require at least 4 SQL scripts to (I) Create Table, (2) Select data from the table, (3) Delete data from the table, and (4) Drop the Table in the event of redefinition, the number of SQL scripts is 15 x 8 x 4, or 960 SQL Scripts. Then, each Master Transaction Cluster will require at least a Processing Program plus a Review,
  • Reset, and Retest or at least four more programs for each cluster, or 4 x 15, or 60, more SQL Scripts. All of the SQL scripts would be stored in one SQL Script Library on the computer for future reference and ease of maintenance.
  • the Insertions to the Master Table 3l2and Insertions to the Accept Table 328 may be processed simultaneously.
  • changes (or Updates in SQL) of data The Update of the Master Table 3l2and the Insert to the Accept Table 328 may be processed simultaneously after the original record from the Master Table 312 has been copied to the History Table 332.
  • the Deletion from the Master Table 312 and the Insertion to the Accept Table 328 may be processed simultaneously after the current record in the Master Table 312 has been updated for the transaction identifier and then copied to the History Table 332.
  • Step I All required information for processing a transaction is first captured on an Input Form.
  • Step 2 Once this information is edited by, e.g., an operator, an Enter Key can be pressed by an operator to write this information to the Input Table 316 for partkular master transaction clusters.
  • Step 3 For each input table 316, a polling program notes that the Input Table is not empty and has a transaction action to be processed whereupon the action is processed by a process (denoted "process I" in Fig. Ml).
  • Step 4 The transaction processing program determines the type of file maintenance to perform; basically,
  • Step 5 At the end of the "proofing period" , such as daily or w>sekly, when proof tallies .are matched 0 to computer tallies, the Accept Table can be deleted as follows:
  • Step 6 Backup all databases and tables before any information is purged as follows: (Begin Program)
  • Step 7 At the end of a user-defined period, an archive and purge process occurs that
  • Step 8 In the event that current records are wrongfiilly moved to the History Archive, they may be retrieved by (Begin Program)
  • Step 7 and Step 8 will have to be re-executed to insure the correct status before the next day's processing is begun.
  • the Accept Table can then be used to as a substitute Input Table to return the system to its previous processing point. Once this table is exhausted, data from the Input Table would supply the remaining data for the processing job.
  • a business enterprise may (a) Review lists of the contents of all Master Tables 12 for determining correctness. (b) Reset the contents of all Master Tables for performing the next test,
  • the business enterprise may query: (a) When a Master Table Cluster was created. (b) When each record was added (or inserted) to the Master Table 312,
  • multiprocessing processes some of the same jobs simultaneously, or in parallel. While multiprocessing is not new, major computer manufacturers such as Compaq, Digital, Hewlett-Packard,
  • Multithreaded software permits the simultaneous execution of more than one jobs or job sequences.
  • Multiprocessing takes two forms, Symmetrical Multiprocessing (SMP) and Massively Parallel Processing (MPP), the difference being that symmetrical multiprocessing machines collectively have only one bus between the processors and the peripheral storage.
  • SMP Symmetrical Multiprocessing
  • MPP Massively Parallel Processing
  • symmetrical multiprocessing machines collectively have only one bus between the processors and the peripheral storage.
  • a symmetrical multiprocessing machine may have eight processors, one bus, and sixteen disk drives.
  • massive parallel processing machines has one bus for each processor.
  • a massively parallel machine may have eight processor, eight busses, and sixteen disk drives. Therefore, symmetrical multiprocessing machines are best suited for applications with a high processing content and a low input/out content In contrast, massively parallel processing machines are best suited for applications that can be parallelized and have a high input/output requirement, as is the case with many commercial systems.
  • multiprocessing machines are best utilized when carefully tuned to avoid bottlenecks. This is likely to mean that all of the layers constituting a computing environment are multiprocessing-enabled. That is, the hardware, operating system, relational database management system, and the specific application are capable of multiprocessing. Some multiprocessing mainframes have been available for several years as well as some versions of the UNIX operating system. Only a few multiprocessing relational databases exist and even fewer multiprocessing applications. It is believed by some that the success of multiprocessing is solely dependent upon the "knowledge of the application" rather than "knowledge of the underlying tools," the tools being the hardware, operating system, and relational database system. Accordingly, it is believed that the limiting factors for the success of multiprocessing for financial systems depends on:
  • a first embodiment of the transaction processing controller 52 is provided in the flowchart of Fig.6. Note that for simplicity, error handling and related validity checking steps have been omitted. However, the performance of such steps is within the scope of the present invention, as one skilled in the art will appreciate.
  • a second pseudo-code embodiment of the transaction processing controller 52 follows.
  • the following switches are global. They control both the activity of the syst>sm. */ /* The Processor Switches monitors the availability of an eight processor computCT. */ /* The Process Switches monitors all of the jobs that are to be executed. */
  • the Processor Switches are turned ON as jobs are sent to specific processors. */ /* The Processor Switches are turned OFF after the jobs .are completed. */
  • a first embodiment of the transaction preprocessor and decomposer 54 is provided in the flowcharts of Figs.7-A through 7-D and Figs.8-A and 8-B. -Note that for simplicity, error handling and related validity check steps have been omitted. However, the performance of such steps is within the scope of the present invention, as one skilled in the art will appreciate.
  • Incoming Licensee Identifier Stored Licensee Identif ⁇ CT then Using Licensee Identifier from Input String, retrieve
  • Incoming Entity Identifier Stored Entity Identifier then Goto EOJ ENDIF
  • AMU Process AM Units
  • EAU Process EA Units
  • PMU Process PM Units
  • a first embodiment of the processing for the subtransaction processing module 64 is provided in the flowcharts of
  • a second pseudo-code embodiment of the transaction processing controller 52 follows.
  • Increment Units by amount to be increased UPDATE Data to Table / Row IF Error Message "UPDATE PM Error 1", Derails
  • Increment Units by amount to be increased UPDATE Data to Table / Row
  • the End AORS Switch is a global switch that signals the end of all AORS processing */ /* otherwise known as the Detail Record (or Row) Maintenance Processing. */
  • a first embodiment of the processing for the balance sheet table 130 is provided in the flowchart of Fig. BAL-SHT. Note that for simplicity, error handling and related validity checking steps have been omitted. However, the performance of such steps is within the scope of the present invention, as one skilled in the art will appreciate.
  • a second pseudo-code embodiment of the processing for the balance sheet table 130 follows.
  • Balance Sheet Processing (BS) Balance Sheet Processing
  • Increment Units by amount to be increased UPDATE Data to Table / Row ff Error

Abstract

A financial transaction processing system in which much of the transaction processing logic is stored in a database, resulting in a relatively small executable file. Each transaction is described by a transaction data descriptor that includes a series of subtransaction data descriptions of actions that can be performed independently of one another, permitting parallel processsing on multiprocessor computers. Additionally, control columns in certain tables allow balance checking, thereby providing an indication of the integrity of the current data. Moreover, any changes to financial data can be traced for any period of time into the past, allowing full auditability.

Description

MULTI-PROCESSING FINANCIAL TRANSACTION PROCESSING SYSTEM
FIELD OF THE INVENTION The present invention relates to a financial transaction processing system, and in particular, to such a system that is capable of decomposing transactions into subtransactions and multi-processing subtransactions simultaneously.
BACKGROUND OF THE INVENTION Computerized data processing systems for processing financial transactions have become increasingly more complex as further strides toward automation have occurred. Such complexity has generated a number of related difficulties for the financial data processing industry. In particular, complex financial transaction processing systems may have subtle programming defects or errors that may go unnoticed for long periods of time before the extent of the problems thereby generated are fully recognized. For example, the number of positions allotted for the dating of transactions has recently been problematic, wherein the dates for the millennium starting at the year 2000 can be problematic for many financial transaction processing systems. In addition, such complex financial transaction processing systems also are typically incapable of being fully audited.
That is, it is common practice in the financial data processing industry to provide only partial auditability in that it is generally believed that the amount of data required to be stored for full auditability is so large as to not be cost effective.
Further, in many circumstances, the rate of transaction increase is becoming problematic in that progressively larger computers are required for processing financial transactions at an acceptable rate. This problem is exacerbated by the fact that such transaction processing systems are not architected for use on multi-processing machines having a plurality of processors. Thus, the advantages of parallel-processing computers cannot be fully utilized by such systems. Accordingly, h would be advantageous to have a financial transaction processing system that alleviates the above difficulties, and that additionally, provides flexibility to adapt to the changing business needs of business enterprises so that the transactions processed and the respective reports generated may be modified easily according to business constraints and demands.
SUMMARY OF THE INVENTION
The present invention is a financial transaction processing system that achieves substantial increases in auditability and processing efficiency. In particular, the present invention provides aud able trails or history in a number of different ways. For example, financial data within transactions is used in the present invention to update various control fields in different tables or files so that cross-checks of system financial integrity can be performed for assuring that, for example, cash fields, total units fields, and cost fields balance appropriately across system data tables provided by the present invention. Additionally, the present invention provides a full range of auditable history files for each system data table having information that is required during auditing.
The present invention also performs financial transaction processing using a novel computational paradigm. That is, the financial transaction processing system of the present invention has an architecture wherein financial transactions can be decomposed into corresponding collections of independent subtransactions, such that for each input transaction, the corresponding collection of subtransactions are performed by operations that are independent of one another. Thus, the subtransactions can be performed in any order, including in an overlapping fashion, such as may occur during multiprocessing of these subtransactions on a computer having multiple processors.
Further, note that each of the subtransactions is described by a relatively short (e.g., less than 8 characters) text string that can be straightforwardly interpreted as an operation (e.g., either plus or minus) together with a series of operands, in particular, a first operand having a value to be used in modifying a data table field (column) specified by a second operand. Such high level descriptions of subtransactions provide both compact conceptualization and a reduction in the total size of the executable code for the present invention. Accordingly, when one of the subtransactions is performed, not only is its corresponding operation performed on the operands, but additionally, control fields such as those mentioned above are updated appropriately in various data tables for the present invention to enhance auditability of the financial data resulting from the transaction processing. Further, note that since the subtransactions are independent of one another and their executable code is relatively small, there is no need for lengthy and complex flow of control transaction processing modules. That is, the size of the code for the present invention may be up to 100 times smaller than many prior art transaction processing systems. Accordingly, this has a substantial positive impact on the efficiency of the present invention in that the swapping of program elements in and out of primary computer memory is substantially reduced.
In another aspect of the present invention, the financial transactions of a plurality of business enterprises can be processed in an interleaved manner. In particular, since the present invention is substantially data driven, including the descriptions of the transactions and their related subtransactions, the present invention can be easily modified to incorporate both different or updated versions of transactions and associated data tables for an existing business enterprise (e.g., also denoted "licensee" hereinafter). Additionally, the transactions and related data tables for an entirely new or different business enterprise (licensee) may be straightforwardly incorporated into the present invention so that "its transactions can be interleaved with the transactions of other business enterprises. Thus, transaction processing may be performed by the present invention for business enterprises having different transactions, different account record structures and differently organized general ledgers substantially without modifying the program elements of the transaction processing system. For example, the present invention can be used to simultaneously process transactions for
(I) a single software application such as an investment management or telecommunications billing system, (2) multiple disparate software applications such as investment management, and telecommunications billing, paying agencies, etc., all with disparate definitions.
Accordingly, the present invention may be viewed as a software engine, or a user-definable transaction processing tool that can be adapted to a variety of industry specific software application needs without changing the actual program code. That is, by surrounding the present invention with application specific software for inputting transaction data to the multiprocessing financial transaction processor of the present invention and retrieving data from the multi-processing financial transaction processor of the present invention, a particular business enterprise can have substantially all of its financial records in condition for auditing on a daily or weekly basis. The present invention may be further characterized along the following dimensions: flexibility, auditability, multiprocessing, efficiency and size, these dimensions being discussed, in turn, hereinbelow. Flexibility is achieved by .ermitting a business enterprise to define:
(I) a series of "reference" tables (also denoted "master tables") that describe the appropriate management decision-making, accounting structure, and regulatory information for the specific application; (2) a series of audit controls and system procedures that provide for complete control of all processing and prevent the overwriting of any original data;
(3) a series of institutional and customer reporting files, known as the "driven" tables; and
(4) the specific processing content of each individual transaction to be processed via a series of table definitions, known as the "driving'' tables. Thus, transactions may be customized according to the business needs of a business enterprise.
Auditability is achieved by:
(1 ) providing separate control columns for cash, units and cost basis (if any) in detail records generated and stored for each financial transaction;
(2) repeating these three control columns, or variations thereof, in at least three different tables so that subsequent summations of each of the four tables will result in similar balances and thus prove that no critical data has been lost in the course of processing, as one familiar with auditing and financial transactions systems will understand;
(3) adding appropriate data columns:
(a) to each reference table or master row for maintaining a history of the effects of add, change and delete commands in a current database as well as an archive database;
(b) to each original file record (i.e. table row) that represents an add to a current database as well as the periodic archive and purge to a permanent database; (c) to tables for retaining transaction processing data representing error identification, error negation and error correction. Thus, audkabilty of transaction records is achieved by four sets of files for a specific period. These are: (a) a snapshot of all the reference files at the end of the period; (b) snapshots of a history file for each master table, wherein the corresponding history file (table) contains all changes to the master table during the specific period; (c) a snapshot of all financial transactions for the specific period, and (d) a snapshot of all of the "driven" tables at the end of the period. Multiprocessing is achieved by:
(1) decomposing the processing of the present invention into a series of separate and independent subprocesses that may be simultaneously performed on any number of simultaneous processors, and (2) decomposing input transactions into a series of subtransactions that are processed by independent processes, which may be executed in any particular order, with complete auditability. For example, multiprocessing can be achieved by allocating the next prescribed subtransaction process to the next available processor.
Efficiency is achieved by: (I ) Defining and utilizing only four standard processing models that perform all prescribed functionality and auditability of the present invention. The models are:
(a) Processing Model I provides an architecture for maintaining historical transaction data so that financial changes can be traced through time;
(b) Processing Model 2 provides an architecture for automatically maintaining data columns such as Units, Debits and Credits for cross checking table sums to assure that the financial records for a business enterprise balance;
(c) Processing Model 3 provides an architecture for automatically maintaining financial records relating to financial instruments such as stocks, bonds, real estate, etc; and
(d) Processing Model 4 provides an architecture for producing a common processing format for maintaining customer and institutional data tables.
(2) Defining only four primary program modules for controlling functionality of the present invention, these modules being:
(a) a transaction processing controller module for receiving transactions to be processed, and controlling the processing thereof; (b) a preprocessor and decomposer module for determining the validity of a received transaction, assuring that all data tables and rows thereof are available for processing the transaction, and retrieving the appropriate subtransactions data descriptions to be processed; (c) a subtransaction scheduling module for scheduling instantiations of the subtransaction processing module on each of one or more processors; and
(d) a subtransaction processing module for performing each subtransaction retrieved by the preprocessor and decomposer module. (3) Utilizing a number of software switches to control which tables within collection of "driven" tables are to be updated when a specific type of transaction is to be processed. Thus, by providing a small number of processing models, decomposing input transactions, and supplying only the necessary subtransaction descriptions, the reliability of the transaction processing system of the present invention is substantially increased. The software for the present invention is small in size (both source code and object code) due to the following:
( 1 ) defining business enterprise financial data processing methods, accounting structures, and regulatory definitions as data rather than program code;
(2) reducing the processing content to a series of individual transactions; and
(3) reducing all financial transactions to a collection of subtransactions wherein each subtransaction includes an operator and two or more operands in an 8-character string.
Thus, the financial processing by the present invention may be performed on several transactions at a time, one transaction at a time, or different processors within a multiprocessor context. Or, the subtransactions for a specific transaction may be spread over several simultaneous processors. This means that the business enterprise is afforded a large number of options in tailoring the present invention. Hence, by defining the accounting structure and processing functionality as data rather than actual program code, the size of the total code required to process a specific industry application may be substantially reduced compared to prior art transaction processing systems. For example, the executable code for the present invention may be less than one megabyte (1MB). Thus, since the secondary cache attached to each processor in multiprocessing personal computer servers can be one megabyte, substantially the entire executable for the present invention can be provided to each processor. Thus, the positive impact on total system efficiency is believed to be substantial in that secondary cache is typically about four times faster than normal cache, so productivity gains of about three-hundred percent would not be unreasonable. In other words, the executable code for the present invention can reside in the secondary cache of each processor, thereby allowing the off-loading of any processing function to any processor with relative ease. Additionally, given that a typical RAM memory for a personal computing devices is 16 megabytes, it is believed that such a device will have the capability to process the back office financial transactions of a major money center financial institution or communications billing system.
Additional features and benefits of the invention will become evident from the detailed description and the accompanying drawings contained herein. BRIEF DESCRIPTION OF THE DRAWINGS Fig. I is a high level block diagram illustrating the present invention conceptually. Figs. 2A and 2B is another block diagram of the present invention illustrates: (a) the high level transaction processing modules, and (b) the data tables (represented by the symbols with arcuate vertical s ies) provided and maintained by the present invention. Furthermore, the present figure shows the data flows as solid arrows and control flows as dashed arrows. Moreover, this figure also indicates the data tables effected by process models No. 2 and No.3 of the present invention.
Fig. 3 is another high level block diagram of the present invention during activation of the preprocessor and decomposer 54 wherein the solid arrows are illustrative of the data flows that occur during the activation of the preprocessor and decomposer 54. Moreover, the tables within boxes represent tables having a process model No. I representation, and the tables having account balancing control fields include the identifier, "CNTLS."
Figs.4-A through 4-E illustrate the steps of a flowchart for initializing the database tables of the present invention for a new business enterprise licensee that is to have its financial transactions subsequently processed by the present invention.
Fig.5 is a block diagram illustrating process model No. I of the present invention. Fig.6 is a high level flowchart of the steps of an embodiment of the transaction processing controller 52 of Fig.2A.
Figs.7-A through 7-D show the high level steps performed by an embodiment of the preprocessor and decomposer
54 of Fig.2A.
Figs.8-A and 8-B show the steps of a flowchart for obtaining indexes or pointers to particular rows of a general ledger table wherein the rows are used in processing a transaction. Figs.9-A and 9-B show the steps for a flowchart of an embodiment of the subtransaction processing module 64 (Fig.
2A).
Fig. 10 is an embodiment of a flowchart of the steps performed for processing income cash transactions by the present invention.
Fig. 11 is an embodiment of a flowchart of the steps performed for processing principal cash transactions by the present invention.
Fig.12 is an embodiment of a flowchart of the steps performed for processing invested income transactions by the present invention.
Fig. 13 is an embodiment of a flowchart of the steps performed for processing invested principal transactions by the present invention. Fig. 14 is an embodiment of a flowchart of the steps for performing custom accounting such as income expenses, and cash flow for a business enterprise. Fig.15 is an embodiment of a flowchart of the steps for maintaining a business enterprise's balance sheet related to buys and sells of financial entities or instruments.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION
Figure I shows a high level conceptual block diagram of a transaction processing system 50 according to the present invention. In particular, the present invention is conceptualized in the present figure as including five functional components, these being: (a) transaction processing controller 52 for: (i) receiving transactions 58 from business enterprises, (ii) controlling the processing of such transactions, including the scheduling of subtransactions to be performed, and (iii) writing of transaction details to, for example, a transaction journal file or table;
(b) a transaction preprocessor and decomposer 54 for initially receiving a transaction 58 from any one of a plurality of business enterprises as shown, wherein the preprocessor and decomposer 54 decomposes transactions into subtransactions; (c) a subtransaction processing module 64 for performing the instructions for each subtransaction determined by the transaction preprocessor and decomposer 54. In particular, the subtransaction processing module 64 utilizes a collection of subtransaction programmatic data descriptions 66 that can be independently scheduled and performed for processing each transaction 58 provided to the transaction processing system 50;
(d) a subtransaction scheduler 62 for scheduling the execution of each subtransaction output by the preprocessor and decomposer 54;
(e) a collection of databases 70 containing financial information for each of the one or more business enterprises. Note that the term "database" in the present context includes both the data therein as well as database management functional elements and data structure definitions.
Another illustration of the present invention is provided in Figure 2. This figure is a block diagram providing both the processing components of Figure I , and additionally, greater detail is provided of the tables or files within the databases
70. However, to simplify the discussion hereinafter, the database terminology used will be that of a relational database. Accordingly, files may also be equivalently referred to as tables, records may also equivalently be referred to as rows, and record fields may also be equivalently referred to as columns. Thus, all the data storage symbols having the collective label of 70 are provided within the like numbered databases of Figure I. It is worth noting, however, that in one embodiment of the present invention, the data tables for distinct business enterprises may be provided in the same collection of tables such as those represented in Figure 2. That is, it is an aspect of the present invention that the accounting and transaction processing of the present invention can use the same plurality of financial data tables for business enterprises having substantially different financial transactions and accounting categories. Thus, although Figure I illustrates the databases 70 as being distinct for each business enterprise, many of these databases (if not most) may be combined into a single database having a plurality of data tables such as those labeled collectively "70" in Figure 2, these tables being discussed in detail hereinafter. Referring still to Figure 2, a high level view of the processing performed when processing a transaction 58 is provided. In particular, the transaction processing controller 54 receives an input transaction 58 and invokes the preprocessor and decomposer 54. The preprocessor and decomposer 54 subsequently performs, for each transaction 58, the following functions:
(a) determines, using input from the business enterprise databases 70, whether all necessary data for performing the transaction is available and otherwise rejects the transaction without performing any portion thereof. In particular, the transaction preprocessor and decomposer 54 determines that all data tables to be accessed are available;
(b) retrieves the data needed to perform the transaction;
(c) checks to determine that the transaction operations) requested is available, and that the transaction is legitimate to be performed on the data for the input transaction 58;
(d) retrieves the subtransaction data descriptors for decomposing the input transaction 58 into subtransactions.
Accordingly, the preprocessor and decomposer 54 retrieves into the working storage 72 (shown in Fig.3) of a host computer (not shown), upon which the transaction processing system 50 is operating, substantially all data and table rows that are necessary to process the transaction 58. Additionally, note that as one skilled in the art will understand, if some portion of the required data to process the transaction is unavailable, then the preprocessor and decomposer 54 terminates processing and subsequently writes appropriate error messages and/or details of the transaction into the reject table 74 (Fig.2).
Assuming that the preprocessor and decomposer 54 successfully performs the gathering of information for the decomposing of the transaction into subtransactions appropriately, then control is returned to the transaction processing controller 52, wherein this controller then writes the details of the transaction to the transaction journal 78 along with identification data uniquely identifying the transaction (e.g., a transaction sequence number and/or time and date stamp). Following this, the transaction processing controller 52 invokes the subtransaction scheduler 62 for scheduling the performance of each subtransaction by an invocation of the subtransaction processing module 64. Note that it is an important aspect of the present invention that since the subtransactions can be processed independently of one another for a given transaction, instantiations of the subtransaction processing module 64 can be executed in substantially any desired order. In particular, such instantiations of the subtransaction processing module 64 can be performed concurrently, thus providing a substantial increase in transaction processing efficiency when such concurrency is provided on a computer having a plurality of processors.
Given that a subtransaction is performed successfully by the subtransaction processing module 64, various accounting tables within the transaction processing system 50 are updated. In general, each subtransaction conceptually indicates a single operation of either plus or minus that is to be performed with two operands also indicated in the subtransaction. That is, the first operand indicates the data to be added or subtracted from a partkular field or column of a table row identified by the second operand. Additionally, each subtransaction updates other tables within the transaction processing system 50 automatically in order to provide consistency among the data tables so that: (a) substantially on-line account balancing capabilities can be performed, and (b) full auditability of the records of the business enterprise providing the transaction can be facilitated by retaining history records of table updates, as will be discussed with reference to "master table transaction cluster processing" described hereinbelow. Accordingly, each subtransaction processed by an instantiation of the subtransaction processing module 64 may update a plurality of the data tables contained in the collectively labeled database 70. Note that for one skilled in the art of transaction data processing and accounting, the names provided to the tables are indicative of their information content and structure. However, for clarity, substantially all of the tables for the present invention will be discussed in detail and/or illustrated hereinbelow.
The subtransaction processing module 64 processes subtransactions derived from three general categories of transactions that may be input to the present invention. That is, there may be input transactions for each of the following types of financial transactions (I.I) through (13) hereinbelow. (1.1) Transactions related to exchanges of funds such as cash debits and credits for accounts of a partkular business enterprise are provided. At a high level, the tables related to this functionality include the account master table 84 (Fig.2), the general ledger table 88, and the entity attribute master table 92.
(I J) Transactions related to additional or customized accounting for clients having accounts in the account master table 84 are provided. For example, in addition to providing the functionality of the transactions described in (I.I) immediately above, a customer income statement (income/expense) table 96 may be provided with client account and transaction information related to income and expenses for tax purposes. Additionally, a customer cash flow (receipts/disbursements) table 100 is also provided for recording any account transaction information related to receipts and disbursements in client accounts. Further, a customer performance measurement table 104 is also provided for retaining client account performance information related to the performance of client portfolios in comparison to investment indexes such as the Dow Jones Industrial Average, the S&P 500, etc. Note that these tables will be discussed and/or illustrated hereinbelow.
(13) When transactions are additionally related to financial instruments other than cash, debits and credits, such as portfolio management wherein there is buying and selling of equities, income derived from equities, and trade settlements related thereto. Further, note that these additional capabilities also provide the same degree of flexibility, adaptability and simplicity as provided in relation to the transaction processing capabilities discussed in (I.I) and (1.2) immediately above. That is, financial equity transactions of various types and for various business enterprises may be easily modified and/or added or removed from the transaction processing system 50 of the present invention, since these transactions are also described by transaction data descriptors consisting of a collection of subtransactions that are capable of being performed in substantially any order that is determined by the subtransaction scheduler 62.
Accordingly, in providing the functionality for the transactions related to portfolio management, the preprocessor and decomposer 54, upon being invoked by the transaction processing controller 52, also retrieves into working storage (as shown in Fig. 2) the necessary data for processing such portfolio maintenance transactions, this data including a subtransaction decomposition for the transaction. Subsequently, as discussed hereinabove, the subtransaction scheduler 62 invokes an instance of the subtransaction processing module 64. However, in addition to updating any appropriate rows of the tables 84, 88, 92, 96, 100 and 104, the subtransaction processing module 64 invokes a portfolio adjuster module 110 for capturing and/or updating detailed data of portfolio transactions that are not otherwise effectively captured for proper accounting and auditing. In particular, for a given subtransaction, the portfolio adjuster 110 invokes one of the following modules (2.1) through (2.4) hereinbelow.
(2.1) Original add module 114 for processing a subtransaction related to the addition of further financial instruments to a portfolio such as occurs when securities are bought and must be added to a given account
(2.2) A reverse of add module 118 for reversing an addition of financial enterprises to a partkular account portfolio. Note that this module is typically activated when financial enterprises are inadvertently added to an incorrect portfolio account.
(23) An original sell module 122 for processing subtransactions related to selling financial enterprises within a given account portfolio.
(2.4) A reversal of original sell module 126 for reversing the affects of an inadvertent sell of financial enterprises within an account portfolio.
These four modules 114-126 update the tables labeled collectively as 70B. In partkular, the processing performed herein and the tables updated herein are described below.
Major Programs and Functionality Major Programs
The N gine transaction processing system contains four major programs. These are:
(1) Transaction Processing controller 52
(2) Transaction Preprocessor and Decomposer 54
(3) Subtransaction Processing module 64 (4) Subtransaction Scheduler 62 Program Functionality
The purpose of the Transaction Processing controller 52
(a) test for incoming transactions and once detected
(b) execute the Transaction Preprocessor and Decomposer 54 and then (c) execute the Subtransaction Processing module 64 for each transaction.
The purpose of the Transaction Preprocessor and Decomposer 54 is to verify
(a) that all information in the transaction is accurate
(b) that all files and controls are available to properly process the transaction (c) that the specific subtransaction processing instructions are loaded into working storage.
The purpose of the Subtransaction Processing module 64 is to
(a) execute all of the subtransactions that have been previously defined for a transaction
(b) create auditability for every transaction.
The purpose of the Subtransaction Scheduler 62 is to
(a) allocate a specific task to a specific processor
(b) return processing to the Transaction Processing controller 52.
The present invention may be described as "Table-Driven Transaction Processing". That is, the present invention permits the processing of virtually any type of user-definable transaction by defining the processing for such transactions as data descriptors that are interpreted in real time and dynamically as needed for processing corresponding transactions.
Accordingly, the transaction data descriptors are denoted as "driving data" and are defined by the transaction processing master table and the transaction master table. That is, the transaction master table provides a first initial collection of data for identifying each transaction and the transaction processing table provides the remainder of the data including the subtransaction decompositions. Accordingly, each transaction processed updates an appropriate set of user-definable tables (known as the "driven" data) for completing the processing of the transaction. Since both the "driving" and the "driven" information is expressed as data rather that actual code, the entire functionality of the system can be changed in a straightforward manner.
In the description hereinbelow, the functional components of the present invention are also identified by other naming conventions from the description above. Accordingly, the following table shows the pairing of the functional component identifications above with those also used below:
Figure imgf000014_0001
N_gine System Design Rules The Magk Number in Software Design is I. That is, store data once, program data once, process data once.
Design a total system with the fewest number of processing models. For example, One model for processing all adds (inserts), changes (updates), and deletes (deletes) for all Master (or Reference) Files (or tables).
One model for processing all of simple transactions (such as debits and credits), including original and reversing entries.
One model for processing all complex transactions (such as buys and sells), including original and reversing entries.
One model for processing all adds (inserts), changes (updates), and deletes (deletes) for all Detail Record (or "driven") Files (or tables).
C. Use the first and last models to process all files (or tables) in the entire system. D. Include audit controls for every table in the system from the very outset of design. E. For reasons of productivity assessment, include Production Statistics for every job.
TUTE E » Namely,
Begin Time
Number of Transactions Number of Acceptances Number of Rejects
End Time. These variables represent the only true means of measuring actual productivity. F. For reasons of auditability, never overwrite any original information. Move all original information from data entry (cradle) to data warehouse (grave) without any changes. G. For reasons of reliability and profitability, system designs shoukl focus on a "large number of small programs" rather than a "small number of large programs". The result is not only ease of maintenance but also the ability to spread the small programs across a number of simultaneous processors.
H . For reasons of manageability, all system designs should embrace one integrated enterprise-wide standard naming convention for all files (tables), records (rows), and fields (columns). I. For reasons of portability, use the fewest number of language commands to code the system. Avoid vendor and/or language extensions.
J. For reasons of flexibility, never hard code what can be table-driven.
N_gine Design Concepts A. Only 4 Processing Models for Financial Services and Telecommunications Applications
1. Schema
2. Units, Debit /Credit
3. Assets / Liabilities
4. File Maintenance Routine B. Table-Driven Transaction Processing for maximum flexibility
1. Number of Transactions
2. Name of Each Transaction and Unique Details
3. Processing Algorithms (at least I , up to 20 depending upon complexity)
4. Each algorithm has 3 components a. Plus (P) or Minus (M) b. Operand I c. Operand 2 C. 100% Auditability For Every Transaction by creating a Detail Record containing all relevant data and hash totals of three relevant fields in at least 3 other tables.
D. The 3 relevant fields for calculating all hash totals are: Cash Units Cost Basis
E. Basic Relational Database Management System Processing Concepts Commit /Rollback Row Level Locking Indexing, ROWID Stored Procedures Shared Memory
F. Some Financial Services Accounting Systems are not permitted to commingle funds. That is, separate accounting for both income and principal must be provided. Therefore, each account master must have a designated "income posting code" to define the proper processing. Such a code might be: (I) Income Only, (P) Principal Only, (B) Both Income and Principal.
N_gine's Basic Tables
Licensee Profile (The Licensee "Reference" or "Master" Tables)
LM The License Master table contains the necessary information to process any type of licensee using either single or multiprocessing computers. LU The Licensee User Master identifies different users for the disparate systems that may be processed simultaneously. LT The Licensee Account Type table contains the necessary information to process any type of account be it for a pension trust account, a communications account, or a corporate subsidiary. LD The Licensee Default Definition table the default definitions for cash, units, and cost basis controls for total system control. LL The Licensee General Ledger Definition is a list of all of the acceptable entries for the General Ledger. That is, it provides a framework for processing any type of accounting controls for any set of account types. LS The Licensee Diversification Scheme contains a three level classification scheme for reporting an decision-making purposes for any set of assets and liabilities. LP The Performance Measurement Group Master contains a three level classification scheme for measuring the performance of different investment groups. LN The Licensee Summary Name Master contains a list of the entries on any type of Income Statement and Cash Flow
Statement. LW The Licensee Wholesaler Master contains name, address, sales volumes, etc. wholesalers of communications services.
LR The Licensee Reseller Master contains name, address, sales volumes, etc. for resellers of communications services.
Account Profile (The Customer "Reference" Tables)
AO The Account Objectives Table contains the different types of account objectives, such as income, growth, capital preservation, etc.
AL The Account Jurisdiction contains the different types of legal relationships, such as broker, agent, trustee, advisor, etc. AJ The Account Jurisdiction contains the different types of legal jurisdiction, such as federal law, state law, foreign law, etc. AR The Account Representatives Table houses the different representatives, their names and communication addresses.
AN The Account Registration Names is a list of legal names used in security settlement. AM The Account Master table provides all of the necessary information to process any type of account by linking the Account Objective, Account jurisdiction, Legal Capacity, Profit Center, Account Representative, and Registration tables plus other relevant data for reporting content and reporting cycles. AC The Account Communications Links links the Account Number for Financial Services to the account numbers for communications services so that all information can be contained in one reporting scheme.
Transaction Profile (The "Driving" Tables)
TM The Transaction Master table provides all of the information to process any type of transaction, excepting the specific processing algorithms.
TP The Transaction Processing table provides all of the specific processing algorithms for any type of transaction master. The Transaction Master and Transaction Processing tables provide all of the necessary information to process any type of transaction. TR The Transactions - Recurring Table (TR) contains the necessary information for automatically processing any type of transaction on a recurring basis. Entity Profile (The Entity "Reference" Tables)
EM The Entity Master table provides all of the necessary information to process any type of financial entity.
EA The Entity Attribute table joins all relevant diversification (known as type, group, and class), general ledger (known as accounting control numbers), and performance group (known as type, group, and class) data into one table for only one access seek. ET The Entity Transaction table links specific transactions to specific entities, such as BG (Buy Government) for a US
Treasury Note, BF (Buy Tax-Free) for a tax-free bond, BE (Buy Equity) for common stocks, etc. Note: It is the correct assignment of such transactions to such entities that permits the proper accumulation of data for income tax purposes.
Licensee Status
SG The System General Ledger contains all of the information to process any type of institutional accounting control.
SJ The System Transaction Journal Table contains all of the transactions and all of the details for each transaction for a specific accounting period. ST The System Trade Settlement Table contains all of the automatically generated offset transactions for Buys and Sells
SS The System Summary Table contains a record for each execution of the system with the Begin Time, End Time,
Number of Total Records Read, Number of Accepts, Number of Rejects, etc. SR The System Reject Table contains a list of all transactions rejected for whatever reason. SC The System Transaction Count Table contains the number of each type of transaction processed on any given transaction.
Customer Status (The "Driven" Tables)
CS The Customer Income Statement contains all revenues, expenses, and profits or losses for all customer accounts.
CF The Customer Cash Flow Statement contains all receipts and disbursements for all customer accounts. CB The Customer Balance Sheet table contains all assets and liabilities for all customer accounts.
CG The Customer Capital Gains table contains all of the realized capital gain details for all customer accounts.
Cl The Pending Income table contains all of the pending income, such as interest or dividends, for all accounts.
CA The Pending Capital Adjustments table contains all of the pending capital adjustments, such as stock splits, stock dividends, mergers, acquisitions, etc., for all accounts. CP The Performance Measurement contains all of the periodk performance records for all customer accounts. The Control Tables (The "System Balance" Tables)
Since every transaction is recorded in a detail record plus hashed to three other control tables, the control values of cash, units, and cost basis are added to like values in the following control tables:
Account Master, System General Ledger, and Entity Attribute tables. For other reports such as the Income Statement and the Cash Flow Statements, the Performance Measurement table is used as a control table instead of the General Ledger.
The present invention includes four computational processing models (process models I through 4) for processing financial transactions and assuring full auditability and traceability.
The purpose of Process Model I (Fig.5) is to create a single methodology for capturing, maintaining, and archiving the non-financial transaction data including a master table (reference table, or schema ) data for 100% auditability within a single software system. This model provides:
•A current database 300 (Fig.5)(for additions, negations and corrections) and an archive database 304(Read Only)
•Eight tables (i.e. tables 312, 316, 320, 324, 328, 332, 336 and 340, of Fig.5)
•Number of Modifications • 12 Control Fields per master table
•A sequence number generator
•A process flow methodology for add, change, and delete of data table rows. The operation of Process Model I is as follows:
1 ) Normal U pdating to current database 300 Write to Write to Move Master Add to Change Delete
Reject A∞ept to History Mast-sr Master Mast-sr
Add
IF Idisntifier Found X
IF Ixtentifier Not Found X X Change
IF Identifier Not Found X
IF Identifier Found X X X
Delete
IF Identifier Not Found X IF Identifier Found X X X
2) Periodic updating to the archive database 304 at the end of a pre-determined time period. That is,
(a) archive snapshots of the archive master 312 in the current database 300 to the master in archive database 304;
(b) archive the archive history 332 in the current database 300 to the master history 340 in the archive database 304;
(c) purge the history table 332 in the current database 304. The purpose of Process Model 2 (Figs.2A, 2B) is to create a single methodology for: capturing, maintaining, and archiving the financial transaction data including: units, and debit/credits for one or more disparate financial applications with 100% auditability, wherein the processing is performed by: (a) computing configurations containing any number of simultaneous processors, (b) decomposing each input financial transaction into separate and independent subcomponents, (c) allocating the subcomponents across any number of multiple processors.
The methodology of process model 2 utilizes a data-driven transaction processing strategy, wherein the manner in which a transaction is processed is determined by retrieving appropriate control data for processing a given input transaction. Thus, the present model provides the ability: (a) to process like systems (such as financial servkes systems) with different transaction definitions and accounting requirements (such as commercial banking, broker/dealers, mutual funds, insurance systems) and different debits and credits and/or (b) unlike systems (such as telecommunications systems) with disparate definitions (such as landline, wireless, satellite, cable systems) within the present invention at the same time.
The purpose of Process Model 3 (Figs.2A, 2B) is to create a single methodology for: capturing, maintaining, and archiving the financial transaction data including: units, debits/credits, financial instruments for one or more disparate financial applications with 100% auditability within a single software system on computing configurations containing any number of simultaneous processors, decomposing each disparate financial transaction into separate and independent subcomponents, allocating the subcomponents across any number of simultaneous processors, and processing the data with
100% auditability. The methodology of Model 3 provides:
• "Detail Record Maintenance", that is, the ability to process transactions for similar business enterprises (such as portfolio maiHgement systems) relating to various financial instruments (such as disparate assets and liabilities) and/or transactions for dissimilar business enterprises (such as portfolio management systems, paying agencies, stock transfer systems) with disparate languages (such as English, Spanish, French, or German) and disparate definitions (such as management philosophy, accounting, and operating nomenclature) and unlike financial instruments (such as assets and liabilities) within the same software at the same time.
The ability to decompose, allocate, process, and audit each financial instrument transactions with 100% auditability. • The current databases 300 (for additions, negations and corrections) and the archive databases 304(read only);
Sixteen data tables (some of whkh are shown in Figs.2A-2B) plus a sequence generator; 12 control fields appended to the master tables for tracing master table changes; One transaction three hash totals (mostly using AM, EA, and PM tables); 4 currency fields; • Sequence number generation;
Reversing/reversed by detail; Processing flow for additions, negations, and corrections. The purpose of Process Model 4 is to create a single methodology for performing file maintenance including: creating a record (row) containing the initial data in a file (table) or modifying the initial data within an existing record (row) within a file (table) or deleting a current record (row) from a file (table)in any software application on computing configurations using simultaneous processors. Where the term, "Details", hereinbelow represents the identity of the specific financial transaction, the methodology of the process model 4 is provided by programs such as the following:
BEGIN
W Trxn is "ADD" th-sn
I* Test for Duplicate Add */ SELECT One or More Values from the Desired File (Table) into Working Storage
IF Error thisn
/* Add New Record */
INSERT INTO Reject Report IF Error th-sn Message "INSERT Reject ADD", Details
Goto Write Reject Table ENDff ELSIF
I* Increment Existing Record */ Increment One or More Data Values
UPDATE SET, Details IF Error then
Message "UPDATE Error ADD", Details Goto Write Reject Table ENDff
ENDff
ELSIF Trxn is "SUBTRACT" then
/* Test for Valid Record */ SELECT One or More Value(s) from Existing
Figure imgf000021_0001
IF Error then
Message "SELECT Error SUBTRACT", Details Goto Write Reject Table ENDff /* Test for Valid Amounts */
IF One or More Amounts > One or More Values from Existing Record then INSERT INTO Reject Report IF Error then
Message "INSERT Reject SUBTRACT", Details Goto Write Reject Table
ENDff /* Delete Existing Record */
ELSIF One or More Amounts = One or More Values from Existing Record AND Special Deletion Criteria = TRUE then DELETE Record
IF Error th-sn
Message "DELETE Error", Details Goto Write Reject Table ENDff ELSE
I* D-screment Existing Rerord */
Decr-sment One or More Values UPDATE SET, Details IF Error then
Message "UPDATE Error SUBTRACT", Details
Goto Write Reject Table ENDff ENDff
ELSE
/* Invalid ADD or SUBTRACT Code */
INSERT INTO Reject Report IF Error then Message "INSERT Reject AORS", Details
Goto Write Reject Table ENDff ENDff Goto EOJ «Write Reject Report»
ADD to Reject Table IF Error then
Message "INSERT Reject Table Error", Details STOP ENDff
«EOJ»
Null END Accordingly, the methodology of process model 4 defines:
(a) A current database (for additions, negations and corrections) and archive database (Read Only)
(b) ADD or SUBTRACT;
(c) Initial tests for values;
(d) Special deletion criteria; (e) Tests for action;
INSERT or UPDATE; DELETE or UPDATE; INSERT INTO Reject Tables; Processing Model I: Processing model I is a method for processing changes to files (or tables) denoted as master or reference tables
(files) wherein these tables retain fundamental information that is not derivable from other tables. In partkular, processing model I processes changes to master tables in an automated manner without losing historical financial information. Accordingly, 100% auditability of all data changes is able to be achieved.
The method of achieving this goal uses an architecture denoted as "Master Transaction Cluster Processing" (MTCP). MTCP is based on the premise of creating a logical flow of all original information from data capture (data entry) to permanent data repository (data warehouse) by replacing single master files (or tables) with a cluster of files (or tables). Therefore, MTCP addresses the complete life cycle of all information relevant to organizational decision-making. MTCP is targeted for use in the automatk generation of program code for multiple large-scale real-time transaction processing applications (such as securities trading, telecommunications billing, and work management) on multi-processing computers (using 4, 8, 16, 32 processors), where control is not only an increasing complex issue but an absolute necessity for future competition.
The circumstances leading to the invention of Master Transaction Cluster Processing are: a) Prior art financial transaction software architecture lacks the ability to identify transactions by table, transaction date, transaction number, and the person authorizing the transaction. b) Prior art financial transaction systems typically use only one table to contain all Master Information (i.e., non-derivable information) and the data in this table is overwritten, thereby losing historical information. Cases in point would be a record of all of the past mailing addresses or processing instructions for a specific customer. c) Without 100% retention of an organization's vital information, management has no idea of the accuracy of the information being used for decision-making purposes. d) The Year 2000 problem, know as Y2K, is proving that past software applications designs have reached technological limits and current maintenance costs are inordinately expensive. e) Competitive pressures are mounting for higher quality software with lower software development and maintenance costs. Totally new architectures for applications software is in great demand. f) The ComputerWorld article, "Information: America's Favorite Investment," by Paul Strassman, ComputerWorld Magazine, August 5, 1996, states that over 1100 companies are spending more on automation annually than the net worths of their respective companies. g) The Standish Report as described in Development Patterns, InfoWorld Magazine, Feb.3, 1997, p.56, states that the success rate of Business Process Reengineering has increased from 16% in 1994 to only
27% in 1996. Note, in the book "Oracle Design", Ensor & Stevenson, O'Reilly Press, it is a recommended practice to compromise data retention rather than achieve 100% auditability. Today's hardware costs suggest otherwise. The advantages of the present invention over the approaches discussed above are: • to provide 100% auditability which offers business management the capability to exercise its fiduciary responsibility to its stockholders and Board of Directors,
• to capture, maintain, and ensure the integrity of all vital information for business enterprise decision-making purposes, and
• to preserve such information consistent with business enterprise-defined data retention cycles. Additionally, the present invention allows accountants to certify in business enterprise annual reports that all vital corporate data is being properly preserved. A detailed description of Master Transaction Cluster Processing corresponding to model I (the first computational model of the present invention) is as follows.
MTCP Overview Master Transaction Clustering, or MTCP, performs the following tasks: a) assigns a unique identifier based on (i) master table identification, (ii) transaction date, (iii) transaction number, and (ιv) authorized user, to each transaction that causes a change in the state of a partkular record of a master table. That is, if one or more data elements in the record change, then the previous record is written to history, and a new status is assigned to an identifier field used for tracking such changes; b) creates a logical flow of data as it is originally entered from its inception (data entry) to its repository (data warehouse). The unique architecture of MTCP replaces the Master File (or Table) within prior art systems with a cluster of Master Files (or Tables), known as a "Master Transaction Cluster". This cluster is suitable for multiprocessing (or the use of simultaneous processors within a single computer to complete a common job). Hence, MTCP addresses 100% auditability via maintaining the total life cycle of information. Aged information may be deleted from the appropriate tables consistent with user-defined data retention policies; c) offers a standard for processing all Master Tables within a total application; d) provides a test bed for separately testing each Master Table Cluster under development and all Master Table Clusters in concert; e) permits management to report that it is successfully capturing, maintaining, and preserving all critical information for decision-making purposes.
MTCP Scope
Master Transaction Cluster Processing utilizes the following (Fig.5): a) two databases (i.e., the current data base 300 and the archive data base 304), b) sequencing generator 308 having: (i) two external sequence generators; (ii) two internal counters, c) eight tables (denoted master table 312, input table 316, summary table 320, reject table 324, accept table 328, history table 332, master archive table 336 and master history table 340), and d) twelve additional fields for every row in the master table 312. MTCP Independence
Master Transaction Cluster Processing of Model I is independent of any: a) application - such as accounts receivable, customer billing, etc. b) industry - such as financial servkes, telecommunication, or work management, c) hardware manufacturer - such as Compaq, Digital, HP, IBM, NCR, Unisys, d) operating system - such as MS-DOS, UN IX, OpenVMS, MVS, etc. e) network - such as Novell, Ethernet, etc. f) relational database management system - such as Oracle, Sybase, Microsoft SQL Server, Informix, etc., and g) computer language - such as SQL, COBOL, FORTRAN, PL/I , Java, etc.
MTCP Architecture
The Master Transaction Cluster Processing (MTCP) architecture can be used for any application in any industry using any computer language. Within the typical stnictured processing scheme of input and process, the Master Transaction Cluster Processing focuses solely on the process function. Thus, the method permits users to define input screens and defined output reports.
MTCP Databases
Unlike prior art software systems which contain only one table for each set of primary records, Master Transaction
Cluster Processing uses eight related tables, or a cluster of tables, to track all information on a cradle to grave basis. The cradle being its point in inception (or data entry), and the grave being its permanent repository (or data warehouse).
Consequently, the "Master Transaction Cluster" spans two different databases: one denoted the Current database 300 containing all relevant data for the current processing period and a second denoted the Archive database 304 containing all relevant data for all previous processing periods. The Current database 300 represents the area of high inquiry, and the Archive database 304 represents the area of low inquiry. Consequently, the Current database 300 is normally placed on high-speed internal disk drive and the Archive database 304 is normally placed on less expensive lower-speed CD-ROMs. Note that trailing information in the Archive database 304 may be destroyed consistent with defined data retention policies, statute of limitations, etc.
MTCP Tables The six tables in the Current database 300 are the a.) Master Table 312(H) that will contain all records to be maintained, b.) Input Table 316 (I) that will contain all records prior to updating. c.) Reject Table 324 (R) that will contain all records rejected during processing, d.) Accept Table 328 (A) that will contain all records accepted during processing, e.) History Table 332 (H) that contain a complete snapshot of all records prior to updating, f.) Summary Table 320 (S) that contains the results of a specific processing operation. and the two tables in the Archive database 304 are the: g.) Master Archive Table 336 that contains snapshots of the master table 312 at the end of each processing period, h.) Master History Table 340 that contains a history of the master table 312 changes during a current processing period. Note that the Master Table (M), Input Table (I), Reject Table (R), the Accept Table (A), the History Table (H) in the same "Master Transaction Cluster" share the same number and order of data elements consisting of alphabetic, numeric, and date items. Alternatively, the Summary Table (S) contains the start time, end time, number of accepts, and number of rejects for each time a series of master table 312 modifications are provided.
MTCP Generator and Counters
The Generators 308 include two different external counters and two internal counters used in effecting 100% auditability. The two external counters are the Accept Sequence Number Generator and the Reject Sequence Number Generator. The two internal counters are the Total Records Read Counter and the Number of Modifications Counter. All are used only in the Current database 300, as the Archive database 304 is read-only in nature. Regarding the external counters, the Accept Sequence Number Generator included in the Current database 300 automatically generates sequential numbers for the processing period (daily, weekly, monthly, etc.) starting with the number I, and increments by I, so that every transaction processed against the preceding (old) master table 312 will receive a specific transaction number, and accordingly, each transaction processed will be uniquely 'identifiable based on master table identity, transaction date, transaction number, and authorized user. Note that the transaction date is read off the internal system clock. The Reject Sequence Number Generator counts the number of rejects for the specific processing period. Its function is similar to the Accept Sequence Number Generator. Both the Accept Sequence Number Counter and the Reject Sequence Number Counter are "processing period" specific. That is, both are cleared to zero at, e.g., midnight on the end of the processing period so that each processing period may be separately identified and audited.
Regarding the internal counters, the Total Records Read Counter counts the number of transactions read during a specific processing performance. Since the Total Records Read Counter is "job execution" dependent, this counter is cleared to zero at the outset of every processing program execution. The Number of Modifications Counter counts the number of times a specific record has been changed. As this counter is "record" dependent, this counter is never cleared to zero, This specific counter should identify the number of individual records that may be retrieved, viewed, and verified from all of the tables in the specific Master Transaction Cluster to prove its auditability.
MTCP Archive Database 304 The Archive database 304 is read only. Within the Archive database 304, information contained in the Master
Archive Table 336 represents a snapshot of information in the Master Table in the Current database 300 at a partkular point in time such as the end of a month, quarter, or year. And, information in the History Archive Table 336 contains all of the transactions that have occurred from the beginning of the most recent processing period until the partkular point in time, be it month, quarter, or year. For example, the Master Archive Table 336 contains the status of the Master Table 312 at the end of the first quarter, and the History Archive 340 contains all of the transaction modifications occurring since the end of the last quarter. In this fashion, any status of any Master Table 312 can be recreated for any point in time (say, month ends) by simply processing all transactions in the History Archive 340 for the desired period against the previous Master Archive Table 336, or the beginning of the period.
MTCP SOL Script Library Implications
To achieve 100% auditability of a complete system, every master file (or table in relational database management systems has a Master Transaction Cluster. Therefore, a total system containing 15 tables would require 15 x 8 or 120 tables to achieve full 100% auditability. Since each table will require at least 4 SQL scripts to (I) Create Table, (2) Select data from the table, (3) Delete data from the table, and (4) Drop the Table in the event of redefinition, the number of SQL scripts is 15 x 8 x 4, or 960 SQL Scripts. Then, each Master Transaction Cluster will require at least a Processing Program plus a Review,
Reset, and Retest, or at least four more programs for each cluster, or 4 x 15, or 60, more SQL Scripts. All of the SQL scripts would be stored in one SQL Script Library on the computer for future reference and ease of maintenance.
MTCP Multi-processing The multi-processing of the Master Transaction Cluster occurs in the following manner
For additions (or Insertions in SQL) of data
The Insertions to the Master Table 3l2and Insertions to the Accept Table 328 may be processed simultaneously. For changes (or Updates in SQL) of data The Update of the Master Table 3l2and the Insert to the Accept Table 328 may be processed simultaneously after the original record from the Master Table 312 has been copied to the History Table 332. For deletes (or Deletes in SQL) of data
The Deletion from the Master Table 312 and the Insertion to the Accept Table 328 may be processed simultaneously after the current record in the Master Table 312 has been updated for the transaction identifier and then copied to the History Table 332.
MTCP Creation
Before processing any Master Transaction Cluster, the necessary databases and files (or tables) must be created. For each business enterprise utilizing the present invention, these databases and files are created only once in the following manner: (Begin Program)
Create "Current" database Create "Archive" database in the "Current" database
Create Master Table Create Input Table
Create Reject Table Create Accept Table
Create Second Accept Table (on separate disk unit, if desired) Create History Table Create Summary Table
Create Sequence Number for Accepts Create Sequence Number for Rejects in the "Archive" database
Create Master Archive Create History Archive
(End of Program)
MTCP Processing
Processing of the "Master Transaction Cluster" then occurs in the following manner. Step I: All required information for processing a transaction is first captured on an Input Form.
Step 2: Once this information is edited by, e.g., an operator, an Enter Key can be pressed by an operator to write this information to the Input Table 316 for partkular master transaction clusters. Step 3: For each input table 316, a polling program notes that the Input Table is not empty and has a transaction action to be processed whereupon the action is processed by a process (denoted "process I" in Fig. Ml).
Step 4: The transaction processing program determines the type of file maintenance to perform; basically,
(I) add a record (entitled Insert a Row in SQL), (2) change a record (entitled U pdate a Row in SQL), and
(3) delete a record (entitled Delete a Row in SQL), which in turn determines the multi-processing potential as described above in the MTCP Multi-processing.
The normal daily processing flow to achieve 100% auditability in either real-time or batch mode is as follows:
(Begin Program) Read System Clock to Store Begin Time
(Read Next Transaction) If Last Transaction
Read System Clock to Store End Time
Write End Time, Begin Time, Number of Accepts, Number of Rejects, .and Total Records Read to Summary Table
Goto End of Program Increment Total Records Read by 1 (Add a New Record) If tr.ansaction is "Add" then If record exists then
Process Addition Error Goto Write Reject Table
********************************************************
* Select System Clock Date into Insert - Transaction Date * * Increment Sequence Number into Insert - Transaction Number *
* Select User Name into Insert - Transaction User *
* Select Zero into Update - Transaction Number *
* Select Zero into Delete - Transaction Number *
****************************************** Insert to Master Table
Goto Write Accept Table
(Change an Existing Record) If transaction is "Change" then
If record does not exist then Process Change Error
Goto Write Reject Table
*********************************************************
* (Master Snapshot) *
* Move Master Table Record to History Table * *********************************************************
* Select System Clock Date into Update - Transaction Date *
* Increment Sequence Number into Update - Transaction Number *
* Select User Name into Update - Transaction User *
* Select Zero into Delete - Transaction Number * * Increment Master Table Number of Modifications by 1 *
********************************************************* Update Master Table with New Data Goto Write Accept Table
(Delete an Existing Record) 5 If transaction is "Delete" then
If record does not exist then Process Drop Error
Goto Write Reject Table
*********************************************************
10 * Select System Clock Date into Delete - Transaction Date *
* Increment Sequence Number into Delete - Transaction Number *
* Select User Name into Delete - Transaction User *
*********************************************************
* Update Master Table Record for Tran Date/Tran Num/User * i c *********************************************************
* (Master Snapshot) *
* Move Master Table Record to History Table *
*********************************************************
Delete Master Table Record From Master Table 0 (Write MULTI-PROCESSED Accept Table)
****************************************
* Move "Current" into Archive - Status *
* Move "System Date" into Archive - Date *
**************************************** 5 Increment Accept Counter
Insert to Accept Table
Insert Second Accept Table (on a separate disk drive, if desired) Goto Loop to Next Transaction (Write Reject Table) 0 Increment Reject Counter
Insert to Reject Table (Loop to Next Transaction)
Goto Read Next Transaction (End of Program) 5 End
Note: The specific multiprocessing of "Write Multiprocessed Accept Table" may be relocated to the specific routine (Add, Change, or Delete) depending upon the computer language being used.
Step 5: At the end of the "proofing period" ,such as daily or w>sekly, when proof tallies .are matched 0 to computer tallies, the Accept Table can be deleted as follows:
(Begin Program)
Delete All Records from the Accept Table
(End Program)
Step 6: Backup all databases and tables before any information is purged as follows: (Begin Program)
Write All Tables in the "Current" database to backup Write All Tables in the "Archive" database to backup (End of Program) Step 7: At the end of a user-defined period, an archive and purge process occurs that
(Begin Program)
*************************************************
* Move "Archive" to Archive Status * Move "System Date" to Archive Date
*************************************************
Move All Records in the Master Table to Master Archive. Move All Records in the History Table to the History Archive. (End Program)
Step 8: In the event that current records are wrongfiilly moved to the History Archive, they may be retrieved by (Begin Program)
Move Specific Records from the Master Archive to the Master Table Move Specific Records from the History Archive to the History Table
(End Program) This program should be executed only after Records have been moved from the Current database 300 to the hώm database 304. It should never be run after new transactions have been processed to the Current database 300. MTCP Backup/Recovery
If necessary, a recovery program can be utilized at any time in the event of hardware failure. Upon complete recovery, Step 7 and Step 8 will have to be re-executed to insure the correct status before the next day's processing is begun. The Accept Table can then be used to as a substitute Input Table to return the system to its previous processing point. Once this table is exhausted, data from the Input Table would supply the remaining data for the processing job.
MTCP Management
Once test data are defined and processed, a business enterprise may (a) Review lists of the contents of all Master Tables 12 for determining correctness. (b) Reset the contents of all Master Tables for performing the next test,
(c) Retest.
MTCP Auditability
Once aud'itabilty is achieved, the business enterprise may query: (a) When a Master Table Cluster was created. (b) When each record was added (or inserted) to the Master Table 312,
(c) How many authorized changes (or updates) have been made to a record of the Master Table 12.
(d) Prove the integrity of the master transaction cluster by producing a sequential list of all record changes, and ifthe record was deleted, where the record is stored.
Accordingly, 100% auditability of every change, every day, for every application is possible.
Multiprocessing Defined
Unlike serial processing which processes all jobs in sequential fashion, multiprocessing processes some of the same jobs simultaneously, or in parallel. While multiprocessing is not new, major computer manufacturers such as Compaq, Digital, Hewlett-Packard,
IBM, NCR, Unisys, etc. have announced offerings of low-cost multiprocessing machines based on 2, , 8, and sixteen processors. These machines will rapidly increase the demand for multiprocessing software, which is known as "multithreaded" software. Multithreaded software permits the simultaneous execution of more than one jobs or job sequences. Multiprocessing takes two forms, Symmetrical Multiprocessing (SMP) and Massively Parallel Processing (MPP), the difference being that symmetrical multiprocessing machines collectively have only one bus between the processors and the peripheral storage. For example, a symmetrical multiprocessing machine may have eight processors, one bus, and sixteen disk drives. In contrast, massive parallel processing machines has one bus for each processor. For example, a massively parallel machine may have eight processor, eight busses, and sixteen disk drives. Therefore, symmetrical multiprocessing machines are best suited for applications with a high processing content and a low input/out content In contrast, massively parallel processing machines are best suited for applications that can be parallelized and have a high input/output requirement, as is the case with many commercial systems.
In either event, multiprocessing machines are best utilized when carefully tuned to avoid bottlenecks. This is likely to mean that all of the layers constituting a computing environment are multiprocessing-enabled. That is, the hardware, operating system, relational database management system, and the specific application are capable of multiprocessing. Some multiprocessing mainframes have been available for several years as well as some versions of the UNIX operating system. Only a few multiprocessing relational databases exist and even fewer multiprocessing applications. It is believed by some that the success of multiprocessing is solely dependent upon the "knowledge of the application" rather than "knowledge of the underlying tools," the tools being the hardware, operating system, and relational database system. Accordingly, it is believed that the limiting factors for the success of multiprocessing for financial systems depends on:
( 1 ) the lack of financial transaction application knowledge,
(2) a lack of understanding of how multiprocessing an be used to effect 100% auditability, and
(3) the lack of understanding as to how to decompose a financial transaction system into a series of small independent processes that may be performed simultaneously.
MTPC Uniqueness
Approaching multiprocessing from the business enterprise perspective, there are several levels by which processing could be sub-divided. These are by:
(1) application, wherein certain applications are capable of being performed in parallel, such a , e.g., Accounts Receivable, Accounts Payable, etc.
(2) function, wherein certain functions within an application are capable of being performed in parallel, such as, e.g., updating customer profiles, customer status, or performance. (3) process, wherein certain large tasks are capable of being decomposed into smaller tasks that can be performed in parallel, such as, e.g., by splitting a large Accounts Receivable process, such as billing, into subcomponents.
(4) transaction, wherein transactions are decomposed into subtransactions that are capable of being performed in parallel. The value of MTCP is that it addresses the last form of multiprocessing wh h is believed to be the most critical to delivering rapid response times for real-time financial transaction processing systems. That is, by dividing a transaction into subtransactions that can be spread across several multiprocessors, processing throughput may be faster. Plus, the large number of small programs make maintenance much easier and less expensive.
A first embodiment of the transaction processing controller 52 is provided in the flowchart of Fig.6. Note that for simplicity, error handling and related validity checking steps have been omitted. However, the performance of such steps is within the scope of the present invention, as one skilled in the art will appreciate. A second pseudo-code embodiment of the transaction processing controller 52 follows.
Pseudo-Code for the Command Processor (Transaction Processing Controller 52)
BEGIN
/* The following switches are global. They control both the activity of the syst>sm. */ /* The Processor Switches monitors the availability of an eight processor computCT. */ /* The Process Switches monitors all of the jobs that are to be executed. */
I* These switches initialize the system, and then change throughout processing */
/* as the subcomponents of the system and the processors finish. */
/* The Processor Switches are turned ON as jobs are sent to specific processors. */ /* The Processor Switches are turned OFF after the jobs .are completed. */
Set Processor 1 Switch = 0
Set Processor 2 Switch = 0
Set Processor 3 Switch - 0
Set Processor 4 Switch = 0 Set Processor 5 Switch = 0
Set Processor 6 Switch = 0
Set Processor 7 Switch = 0
Set Processor 8 Switch = 0 Read Begin Time from Systems Clock into Working Storage
Set Total Records Read = 0 Set Number Accepts = 0 Set Number Rejects = 0 I* The Command Programs reads the transaction input from the operator, then */
I* edits the transaction for validity and loads the transaction processing algorithms */
I* from the Transaction Processing table (or cache file) to a temporary table. It then */
/* walks down all of algorithms in the temporary table to process the total transaction */ /* with 100% auditabihty. Each algorithm may be passed to a separate processor.
/* Read operator instructions for starting and ending it-em in input stream /* For the purposes of restart in the event of mid-stream job failure */ I* For the purpose of omissions in processing. */ I* Operator may enter Begin End for all items */ I* Operator may enter Begin End for a beginning list */ I* Operator may enter Begin End for an intermediate list */ I* Operator may enter Begin End for an ending list */
Read Beginning Item in Input Stream from MastCT Control Terminal Read Ending Item in Input Stream from Master Control Terminal
Set Beginning Item to Next Transaction Set Ending Item to End of List
Read System Clock for Begin Time Add Record with Begin Time IF Error then
Message "No System Table Record for Begin Time" Details ENDff
«Read Next Transaction»
/* The Process Switches are turned ON as each transaction subcomponent is completed. */ /* The Process Switches are turn-sd OFF after the total transaction is completed. */
Set Process 1 Switch = 0 Set Process 2 Switch = 0 Set Process 3 Switch = 0 Set Process 4 Switch = 0 Set Process 5 Switch = 0 Set Process 6 Switch = 0 Set Process 7 Switch = 0 Set Process 8 Switch = 0 Set Process 9 Switch = 0 Set Process 10 Switch = 0 Set Process 11 Switch = 0 Set Process 12 Switch = 0 Set Process 13 Switch = 0 Set Process 14 Switch = 0 Set Process 15 Switch = 0 Set Process 16 Switch = 0 Set Process 17 Switch = 0 Set Process 18 Switch = 0 Set Process 19 Switch = 0 Set Process 20 Switch = 0 Set Process 21 Switch = 0 Set Process 22 Switch = 0 Set Process 23 Switch = 0 Set Process 24 Switch = 0
Read Next Transaction into Working Storage IF EOF then
Read End Time from Systems Clock into Working Storage
INSERT End-time, Begin Time
Total Records Read, Number Accepts, Number Rejects into Summary Table IF Error then
Message " INSERT ST Table", Details STOP ENDff
Goto EOJ ENDff
IF Next Transaction = End of List Goto EOJ
ENDff
Increment Total R2cords Read «Test Transaction Type»
IF Transaction Type != ' ' then
/* Set Switches for Trade Offset and Settle Offset Processing */
Set Process 1 Switch = 0
Set Process 2 Switch = 1 Set Process 3 Switch = 1
Set Process 4 Switch = 1
Set Process 5 Switch = 1
Set Process 6 Switch = 0
Set Process 7 Switch = 1 Set Process 8 Switch = 1
Set Process 9 Switch = 1
Set Process 10 Switch = 1
Set Process 11 Switch = 0
Set Process 12 Switch = 1 Set Process 13 Switch = 1
Set Process 14 Switch = 1
Set Process 15 Switch = 1
Set Process 16 Switch = 1
Set Process 17 Switch = 0 Set Process 18 Switch = 0
Set Process 19 Switch = 1
Set Process 20 Switch = 1
Set Process 21 Switch = 1
Set Process 22 Switch = 1 Set Process 23 Switch = 1
Set Process 24 Switch = 0 ENDff
«Test OORR» ff OORR = '0' then
*****************
CALL N_gine EDIT
*****************
IF Edit Error Message "Edit Error", Details
Goto Write Reject Table ENDff
IF Tran-Type != 'Sell' OR Tran-Type != 'Withdraw' then
INSERT into Transaction Journal Table IF Error Message "Insert TJ Error", Details Goto Write Rej∞t Table ENDff
IF Correction Data then DELETE from Reject Table
IF Error
Message "Delete Reject Error", Details Goto Write Rej∞t Table ENDff ENDff
ENDff
*********
CALL TT i.e., execute the algorithms in the temporary table
********* IF Temporary Table Error ihβn
Message "Temporary Table Error", Details Goto Write Reject Table ENDff Generate Sequence Number
ELSIF OORR = 'R'
*****************
CALL N_gine EDIT *****************
IF Edit Error
Message "Edit Error", Details
Goto Write Reject Table ENDff Assign Transaction Numb-sr = '000000'
Assign LOT Number = 1
«Read Next Reversal»
Read Transaction Journal Table for reversal number IF "No Transaction Exists" where LOT = 1 then
Message "No Transaction Exists", Details Goto Write Reject Table ENDff
IF "No Transaction Exists" and LOT > 1 then Goto Transaction Wrap-up
ENDff IF Previously Reversed
Message "Previously Reversed", Details Goto Write Reject Table ENDff
INSERT Reversing Transaction" to Transaction Journal Table
IF Error
Message "INSERT TJ Reversing Error", Details Goto Write Reject Table
ENDff
UPDATE "Reversed" Transaction
IF Error
Message ""UPDATE TJ Reversed Error", Details Goto Write Reject Table
ENDff Increment the LOT Number *********
CALL TT i.e., execute the algorithms in the temporary table
*********
IF Temporary Table Error then
Message "Temporary Table Error", Details
Goto Write Reject Table ENDff Goto Read Next Reversal
Generate Sequence Number
UPDATE "Reversed" Transaction, ALL ROWS with Revising Data IF Error then Message "UPDATE TL Table Reversed", Details
Goto Write Reject Report ENDff
UPDATE "Reversing" Transaction, ALL ROWS with Reversed Data IF Error then Message "UPDATE TL Table Reversing", Details
Goto Write Reject Report ENDff ELSE
INSERT into Reject Table "No Originate or Reverse Code" IF Error then
Message "Insert Reject Table", Details Goto Write Reject Table ENDff
ENDIF
«Transaction Wrap-up» INSERT INTO Transaction Count Table
Select Original-Count and Reversal Count from TC Table into Working Storage IF Error then INSERT INTO TC Table, Details
IF Error then
Goto Write Reject Table ENDff ELSE IF AORS = 'O' then
Increment Original-Count ELSIF AORS = 'R'
Incr-sment Reversal-Count ELSE Message "Invalid AORS Code", Details
STOP ENDff ENDIF «Test Trade Settlements
IF Transaction Switch = 2
Goto Loop Next Transaction ENDff IF Transaction Switch = 1
OR AORS = " then
Goto Loop Next Transaction ENDff
I* COMMIT Work to Database */
COMMIT Original Transaction Before Offset Transaction
IF AORS = 'A' then
Insert Licensee Trade Offset Buy in Transaction Identifier ELSIF AORS = 'S'
Insert Licensee Trade Offset Sell in Transaction Identifi-sr ELSE
Message "Invalid AORS", Details ENDff
/* Swap Account Numbers for Automatic Transaction */ Move Ac ount Numb-sr to Working Storage Account Number
Move Buyer/Seller Number to Account Number
Move Working Storage Account Number to Account Number
Multiply the Net Amount by - 1
Multiply the Amount Units by - 1 Add Number of Settlement Days from Entity Master to Trade Date to determine Settlement Date
Add to Total Number of Accepts UPDATE Row in System Table for Number of Accepts IF Error th∞ Message "Update Error for Accepts", Details
Goto Write Reject Record ENDff
Go to Test Transaction Type «Loop Next Transaction»
/* COMMIT Work to Database */
COMMIT Original Transaction or Offset Transaction, if any Goto Read Next Transaction
«Write Reject Record» Add to Total Number of Rejects UPDATE Row in System Table for Number of Rejects IF Error then
Message "Update Error for Rejects", Details ENDff
INSERT Into Reject Table, Details IF Error
Message "Insert Command Reject Table", Details STOP
ENDff Move Incoming Licensee IdentifiCT to Stor-sd Licensee Identifier
Move Incoming Account Identifier to Stored Account Identifier Move Incoming Transaction Identifier to Stored Transaction Identifier Move Incoming Entity Identifier to Stored Entity Identifier Goto Read Next Transaction
«EOJ»
Read Syst<sm Clock for End Time Add Record with End Time IF Error then
Message "No System Table Record for End Time", Details ENDIF
END
A first embodiment of the transaction preprocessor and decomposer 54 is provided in the flowcharts of Figs.7-A through 7-D and Figs.8-A and 8-B. -Note that for simplicity, error handling and related validity check steps have been omitted. However, the performance of such steps is within the scope of the present invention, as one skilled in the art will appreciate.
A second pseudo-code embodiment of the transaction preprocessor and decomposer 54 follows.
Pseudo-Code for the Edit Processor for all Incoming Transactions (Transaction Preprocessor and Decomposer 54)
BEGIN
Housekeeping
Set Working Storage Alphas to Blanks Set Working Storage Numbers to Zeroes
IF Incoming Licensee Identifier = Stored Licensee IdentifΪCT then Using Licensee Identifier from Input String, retrieve
Licensee Name Trade Settlement Switch Trade Offset Buy Trade Offset Sell from Licensee Master into Working Storage
IF Error then
Message "No Licensee Master", Detail GotoEOJ ENDff
ENDff ***********************************************
IF the Default Definition Table has not been load-ad to memory then LOAD all records from the Default Definition Table consisting of
Licensee DD Class DD Identification DD Sub-Class DD Accounting Control Number
DD Name from the Default Definition Table into the Temporary Table (TA) IF Error then Message "NO TA Table", Details
Goto EOJ ENDff
ENDff ***********************************************************/
IF the Incoming Account Identifier = Stored Account Identifier Goto Access Transaction Master (TM)
ELSE
/*** This is the first table containing control totals for cash, units, and cost basis ***/ «Access Account Master»
From the Account Master Table (TM) using the Licensee Identifier from the Input String and the Account Identifier from the Input String, retrieve
Account Type Income Posting Code Income Expense Switch
Receipt/Disbursement Switch Performance Measurement Switch
Fiscal Year - Month Fiscal Year - Day
Fiscal Year - Numb-sr Pmods
Income Cash Balance Principal Cash Balance Invested Income
Invested Principal Total Units - Assets Liabilities
Total Units - Liabilities and the Row Identification of the Account Master Record from the Account Master Table (AM) into Working Storage IF Error then
Report "Invalid Account Identifier", Details Goto Write Reject Report
ENDff
ENDIF
«Access Transaction Master» ff the Incoming Transaction Identifier = Stored Transaction Identifier
Goto Test Cash Entry in Entity Attribute Table ELSE
Using the Licensee Identifier from the Input String and the Transaction Id∞tifier from the Input String Transaction Name Add or Subtract Switch Settlement Switch and the Row Identification from the Transaction Master Table (TM) into Working Storage IF Error then
Message "Invalid Transaction Identifier", Details
Goto Write Rej∞t Report ENDff ff AORS = 'A' then
Using the Licensee Identifier from the Input String and the Trade Offset Buy from Working Storage, verify the existence of a Trade Offset Buy in the TM Table ff Error then
Message "No Trade Offset Buy", Details Goto Write Reject Table
ENDIF
ELSE AORS = 'S' then
Using the License Identifier from the Input String and the Trade Offset Sell from Working Storage, verify the existence of a Trade Offset Sell in the TM Table. ff Error then
Message "No Trade Offset Sell", Details
Goto Write Reject Table ENDff
ELSE
Message "Invalid AORS Code", Details Goto Write Reject Report ENDff
«Access Transaction Processing Table (TP)» Using the Licensee Identifier from the Input String and the Transaction Identifier from the Input String, retrieve ALL of the Transaction Processing algorithms from the Transaction Processing Table (TP) into a Temporary Table (TT) in Working Storage IF Error then
Message "No Transaction Processing Algorithms", Details Goto Write Reject Report
ENDIF
I*** This is the second control table containing cash, units, cost basis, liabilities, etc. ***/ «Test Income Cash Posting Controls»
IF the Working Storage Income Posting Code = T OR the Working Storage Income Posting Code = 'B' then Count the number of IC entries in the TA table «Test Income Cash»
IF count = 1 then
Using Licensee Identifier from the Input String and the Class = 'IC and the Sub-Class = ' ' retrieve Accounting Control Number from TA into Woiking Storage
IF Error then
Message "Invalid Income Cash ACN", Details Goto Write Reject Record ENDff
Using the Licensee Identifier from the Input String 5 and the Accounting Control Number in Working Storage, retrieve
Accounting Control Number and the Row Identification from General Ledger Table (SG) ff Error then
Message "Invalid Income Cash on SG", Details 10 Goto Write Reject Report
ENDff
ELSIF count = 2 then
15 Using the Licensee Identifier from the Input String and the Class = 'IC and the Sub-class = 'D', retrieve
Accounting Control Number from TA into Working Storage
20 ff Error then
Message "Invalid Income Cash Demand ACN in TA", Details
Goto Write Reject Report
ENDff
25
Using the Licensee Identifier from the Input String and the Accounting Control Number in Working Storage, retrieve
Accounting Control Number and the Row Identification from the General Ledger
30 ff Error then
Message "Invalid Income Cash Demand in GL", Details
Goto Write Reject Report ENDff
35
Using the Licensee Identifier from the Input String and the Class = 'IC and the Sub-class = '0\ retrieve Accounting Control Number from TA table into Working Storage
40
IF Error then
Message "Invalid Income Cash Overdraft ACN in TA",
Details Goto Write Reject Report 45 ENDff
Using the Licensee Identifier from the Input String .and the Accounting Control Number in Working Storage, retrieve Accounting Control Number 50 and the Row Identification from the General Ledger ff Error then
Message "Invalid Income Cash Over-draft in GL", Details Goto Write Reject Report 55 ENDIF
ELSE Message "Invalid Income Cash Count on DD", Details Goto Write Reject Record
ENDff
«Test Principal Cash Posting Controls»
ELSIF the Working Storage Income Posting Code = 'P'
Count the number of PC entries in the TA table «Test Principal Cash» ff count = 1 then
Using the Licensee Identifier from the Input String and the Class = 'PC and the Sub-Class = ' ' retrieve Accounting Control Number from TA into Working Storage ff Error then
Message "Invalid Principal Cash ACN", Details Goto Write Reject Record ENDff
Using the Licensee Identifier from the Input String and the Accounting Control Number in Working Storage, retrieve Accounting Control Number and the Row Identification from General Ledger Table (SG) ff Error then
Message "Invalid Principal Cash on SG", Details Goto Write Reject Report ENDff ELSIF count = 2 then
Using the Licensee Identifier from the Input String and the Class = 'PC and the Sub-class = 'D', retrieve Accounting Control Number from TA into Working Storage ff Error then
Message "Invalid Principal Cash Demand ACN in TA", Details Goto Write Reject Report
ENDff
Using the Licensee Identifier from the Input String and the Accounting Control Number in Working Storage, retrieve Accounting Control Number and the Row Identification from the General Ledger ff Error then
Message "Invalid Principal Cash Demand in GL", Details Goto Write Reject Report
ENDIF
Using the Licensee Identifier from the Input String and the Class = 'PC and the Sub-class = 'O', retrieve
Accounting Control Number from TA table into Working Storage ff Error then
Message "Invalid Principal Cash Overdraft ACN in TA",
Details Goto Write Reject Report ENDff
Using the Licensee Identifier from the Input String and the Accounting Control Number in Working Storage, retrieve Accounting Control Number and the Row Identification from the General Ledger ff Error then
Message "Invalid Principal Cash Overdraft in GL", Details Goto Write Reject Report ENDff
ELSE
Message "Invalid Principal Cash Count on DD", Details Goto Write Reject Record
ENDIF
ELSE
Message "Invalid Posting Code", Details Goto Write Reject Report
ENDff ENDIF
«Test Cash Entry in Entity Attribute Table» Using the Licensee Identifier from the Input String and the Account Control Number from the TU Record in Working Storage, retrieve The Total Units - Assets and the Row Identifier from the Entity Attribute Table (EA) IF Error then
Message "Invalid Total Units", Details Goto Write Reject Table ENDff
«Test Asset / Liability Processing» ff Working Storage Add or Subtract Switch (AORS) is OFF then Goto EOJ
ENDff
IF Incoming Entity Identifier = Stored Entity Identifier then Goto EOJ ENDIF
/*** This is the third table containing control table for cash, units, cost basis, liabilities, etc. «Access Entity Attribute Table (EA)» Using the Licensee Identifi-sr from the Input String and the Entity Identifier from the Input String, retrieve Accounting Control Number (Asset) Accounting Control Number (Liability)
Diversification Type Diversification Group
Diversification Class
Invested Income Balance Invested Principal Balance Total Units - Assets
Total Units - Liabilities and the Row Identification of the Entity Attribute Record from the Entity Attribute Table (EA) into Working Storage IF Error then
Message "Invalid Entity Identifier in EA", Details Goto Write Reject Table ENDIF «Access the Entity Transaction Table (ET)»
Using the Licensee Identifier from the Input String and the Entity Identifier from the Input String, verify the existence of an acceptable transaction in the Entity Transaction Table (ET) for the Entity Identifier. IF Error ϋxe
Message "Invalid Transaction for this Entity", Details Goto Write Reject Table ENDff «Access the Entity Master Table (EM)»
Using the Entity Identifier from the Input String, retrieve Income Rate Income Ex-Date Income Record Date Income Payment Date
Cap-Adj Rate Cap-Adj Ex-Date Cap-Adj Record Date Cap-Adj Payment Date Settlement Days
Current Price from the Entity Master Table (EM) into Working Storage IF Error then
Message "No Entity Mast-sr", Details Goto Write Reject Report
ENDIF
«Test Other Assets»
Using the Licensee Identifier from the Input String and the Account Type from Working Storage and the Accounting Control Number - Asset from Working Storage, retrieve the Accounting Control Number - Asset and Row Identifier from the General Ledger (SG) IF Error then Message "Invalid ACN - Asset", Details
Goto Write Reject Report ENDff «Test Other Liabilities»
Using the Licensee Identifier from the Input String and the Account Type from Working Storage and the Accounting Control Number - Liability from Working Storage, retrieve the Accounting Control Number - Liability and Row Identifier from the General Ledger (SG) IF Error then
Message "Invalid ACN - Liabilities", Details Goto Write Reject Report ENDIF
«Test Invested Income»
Using the Licensee Identifier from the Input String and the Account Type Code from Working Storage and the Invested Income Identifier from Working Storage, retrieve the Invested Income Balance and the Row Identifier from the General Ledger Table (SG) IF Error then
Message "Invalid Invested Income" Goto Write Reject Table
ENDff
«Test Invested Principal»
Using the Licensee Identifier from the Input String and the Account Type Code from Working Storage and the Invested Principal Identifier from Working Storage, retrieve the Invested Principal Balance and the Row Identi&er from the General Ledger Table (SG) IF Error then Message "Invalid Invested Principal"
Goto Write Reject Table ENDff
Goto EOJ
«Write Reject Table»
Add to Reject Table JF Error then
Message "Invalid Insert to Reject Table", Details STOP
ENDIF
«EOJ»
Null
END
Pseudo-Code for the SCHEDULER
(Subtransaction Scheduler 62)
BEGIN
«Read Next Process» Re.ad Next Transaction in Temporary Table (TT)
IF EOJ then «Test All Switches - AORL» ff All 18 Process Switches = 0
Goto EOJ ENDff Wait 10 milliseconds
Goto Test All Switches - AORL ENDIF «Test Processor Availability» ff Processor 1 Switch = 0 then Set Processor 1 Switch = 1
Initiate Process on Processor 1 @ end, Set Processor 1 Switch = 0
Goto Next Process Loop ENDff
IF License Master (LM) Number of Processors = 1 then «Test 1 Processor»
IF Processor 1 Switch = 1 then Wait 10 Milliseconds Goto Test 1 Processor ENDff Goto Test Processor Availability
ENDff ff Processor 2 Switch = 0 then
Set Processor 2 Switch = 1 Initiate Process on Processor 2 @ «snd, Set Processor 2 Switch = 0
Goto Next Process Loop ENDff ff License Master (LM) Number of Processors = 2 then «Test 2 Processors Busy» ff Processor 1 Switch = 1
AND Processor 2 Switch = 1 then Wait 10 milliseconds Goto Test 2 Processors Busy ENDff Goto Test Processor Availability
ENDIF ff Processor 3 Switch = 0 then
Set Processor 3 Switch = 1 Initiate Process on Processor 3 @ end, Set Processor 3 Switch = 0
Goto Next Process Loop ENDff ff Processor 4 Switch = 0 then
Set Processor 4 Switch = 1 Initiate Process on Processor 4 @ end, Set Processor 4 Switch = 0
Goto Next Process Loop ENDff
IF License Master (LM) Number of Processors = 4 then «Test 4 Processors Busy» ff Processor 1 Switch = 1
AND Processor 2 Switch = 1 AND Processor 3 Switch = 1 AND Processor 4 Switch = 1 then Wait 10 milliseconds Goto Test 4 Processors Busy
ENDff Goto Test Processor Availability ENDIF ff Processor 5 Switch = 0 then
Set Processor 5 Switch = 1
Initiate Process on Processor 5 @ end, Set Processor 5 Switch = 0
Goto Next Process Loop ENDff ff Processor 6 Switch = 0 then
Set Processor 6 Switch = 1
Initiate Process on Processor 6 @ end, Set Processor 6 Switch = 0
Goto Next Process Loop ENDIF ff Processor 7 Switch = 0 th-sn
Set Processor 7 Switch = 1
Initiate Process on Processor 7 @ end, Set Processor Switch 7 = 0
Goto Next Process Loop ENDIF IF Processor 8 Switch = 0 th-sn
Set Processor 8 Switch = 1
Initiate Process on Processor 8 @ end, Set Processor 8 Switch = 0
Goto Next Process Loop ENDIF ff Licensee Master (LM) Number of Processors = 8 then
«Test 8 Processors Busy» ff Processor 1 Switch = 1
AND Processor 2 Switch = 1
AND Processor 3 Switch = 1
AND Processor 4 Switch = 1
AND Processor 5 Switch = 1
AND Processor 6 Switch = 1
AND Processor 7 Switch = 1
AND Processor 8 Switch = 1 then Wait 10 milliseconds Goto Test 8 Processors Busy
ENDIF
Goto Test Processor Availability ENDff «Next Process Loop»
Goto Read Next Process
«EOJ» Null
END
Process the Controls Process Routine in the Temporary Table (TT)
BEGIN
IF OORR = "0" then
Set Factor = + 1
ELSIF OORR = 'R' then Set Factor = - 1
ENDIF «Total Units» ff Opca-and 2 = 'TU' then
(AMU) Process AM Units (EAU) Process EA Units (PMU) Process PM Units
«Cash Balances» ELSIF Operand 2 = 'IC OR Operand 2 = 'PC then (AMC) Process AM Income Cash Demand Income Cash Overdraft Principal Cash Demand Principal Cash Overdraft
(EAC) Process EA Income Cash Principal Cash
(GLC) Process GL Assets - Income Cash Demand Assets - Income Cash Overdraft Assets - Principal Cash Demand Assets - Principal Cash Overdraft Liab - Income Net Worth Liab - Principal Net Worth
«Investment Balances» ELSIF Operand 2 = 'IT OR Operand 2 = 'IP ' then (AMI) Process AM Invested Income
Invested Principal
(EAI) Process EA Cost (GLI) Process GL Assets - Actg Control Number
Liab - Income Net Worth
Liab - Principal Net Worth
«Other Customized Investment Reporting» ELSIF Operand 2 = T and Report Request = ' Y' OR Operand 2 = 'E' and Report Request = 'Y' then
(TEE) Process IE
(PME) Process PM
«Receipts/Disbursements»
ELSIF Operand 2 = 'R' and Report Request = ' Y'
OR Operand 2 = 'D' and Report Request = ' Y' then
(EC) Process RD
(PMC) Process PM
«Performance Measurement»
ELSIF Operand 2 = 'PM' and Report Request = ' Y' then (PMP) Process PM
«Contributions/Distributions» ELSff Operand 2 = 'CN' and Report Request = ' Y' OR Operand 2 = 'DN' and Report Request = ' Y' then (CDC) Process PM
«Management Fees»
ELSIF Operand 2 = 'MF' and Report Request = 'F' lh∞ (PMM) Process PM
«Commissions» ELSff Operand 2 = ' CM' then (PCM) Process PM
«Federal Taxes» ELSIF Operand 2 = 'FT' them (PMF) Process PM
«State Taxes»
ELSff Operand 2 = 'ST' then
(PMS) Process PM ELSE
Message "Invalid Operand 2" STOP ENDIF END
Process the Detail Records Maintenance Routine (AORS)
Note: Leave all switches = I until the last routine is completed. This forces the processing to loop through each succeeding routine until completed. Then turn set all switches = 0 so that the Scheduler will revert back to the Command Program to read another transaction.
«Originate ADD» ff OORR = '0' and
AORS = 'A' then ff Process 1 Switch = 0 then Set Process 1 Switch = 1 Initiate Process BS ELSIF Process 2 Switch = 0 then
Set Process 2 Switch = 1 Initiate Process PI/PA ELSff Process 3 Switch = 0 then Set Process 3 Switch = 1 Initiate Process TS
ELSff Process 4 Switch = 0 then Set Process 4 Switch = 1 Initiate Process PM ELSE Set Process 1 Switch = 0
Set Process 2 Switch = 0 Set Process 3 Switch = 0 Set Process 4 Switch = 0
ENDIF
«Reverse ADD» ELSff OORR = 'R' and AORS = 'A' then IF Process 5 Switch = 0 then Set Process 5 Switch = 1
Initiate Process BS ELSff Process 6 Switch = 0 then Set Process 6 Switch = 1 Initiate Process PI/PA
ELSff Process 7 Switch = 0 then Set Process 7 Switch = 1 Initiate Process TS
ELSff Process 8 Switch = 0 then Set Process 8 Switch = 1 Initiate Process PM
ELSE
Set Process 5 Switch = 0 Set Process 6 Switch = 0 Set Process 7 Switch = 0 Set Process 8 Switch = 0
ENDff
«Originate SUB» ELSff OORR = O' and AORS = 'S' then ff Process 9 Switch = 0 then Set Process 9 Switch = 1 Initiate Process BS
ELSff Process 10 Switch = 0 then Set Process 10 Switch = 1 Initiate Process PI/PA
ELSIF Process 11 Switch = 0 then Set Process 11 Switch = 1 Initiate Process TS
ELSff Process 12 Switch = 0 then Set Process 12 Switch = 1 Initiate Process CG
ELSff Process 13 Switch = 0 then Set Process 13 Switch = 1 Initiate Process PM
ELSE
Set Process 9 Switch = 0 Set Process 10 Switch = 0 Set Process 11 Switch = 0 Set Process 12 Switch = 0 Set Process 13 Switch = 0
ENDff
«Reverse SUB» ELSff OORR = 'R' and AORS = 'S' then ff Process 14 Switch = 0 then Set Process 14 Switch = 1 Initiate Process BS
ELSff Process 15 Switch = 0 then Set Process 15 Switch = 1 Initiate Process PI/PA
ELSIF Process 16 Switch = 0 then Set Process 16 Switch = 1 Initiate Process TS
ELSIF Process 17 Switch = 0 then Set Process 17 Switch = 1 Initiate Process CG ELSff Process 18 Switch = 0 then Set Process 18 Switch = 1 Initiate Process PM ELSE Set Process 14 Switch = 0
Set Process 15 Switch = 0 Set Process 16 Switch = 0 Set Process 17 Switch = 0 Set Process 18 Switch = 0 ENDff
ENDff
A first embodiment of the processing for the subtransaction processing module 64 is provided in the flowcharts of
Figs.9-A through 9-B, Figs.10, 11, 12, 13 and 14. Note that for simplicity, error handling and related validity checking steps
have been omitted. However, the performance of such steps is within the scope of the present invention, as one skilled in the
art will appreciate.
A second pseudo-code embodiment of the transaction processing controller 52 follows.
Pseudo-Code for Processing for the
Subtransaction Processing Module 64
BEGIN DO WHILE List of Subtransactions in the TT Table is Valid
Select Next Row of Operator, Operand 1 , and Operand 2 from TT into Working Storage
/* To choose the specific input field (or column) */ ff Operand 1 = 'N'
Set Value = Net Amount from Input String
ELSff Operand 1 = T
Set Value = Interest from Input String
ELSff Operand 1 = T' Set Value = Principal from Input String
ELSIF Operand 1 = 'H'
Set Value = Amount Units from Input String
ELSff Operand 1 = 'U'
Set Value = Amount Units from Input String ELSff Operand 1 = 'C
Set Value = Cost Basis from Input String
ELSIF Operand 1 = 'V
Set Value = Amount Units * Curr Price from Input String
ELSIF Operand 1 = 'F' Set Value = Federal Taxes from Input String
ELSIF Operand 1 = 'S'
Set Value = State Taxes from Input String
ELSIF Operand 1 = 'L' Set Value = Local Taxes from Input String
ELSff Operand 1 = 'M'
Set Value = Management Fees from Input String
ELSE
Message "Invalid Operand 1", Details ENDff
/* To Adjust for Plus or Minus */ IF Operator = 'P' then
Set Multiplier = +1 ELSff Operator = 'M' then
Set Multiplier = -1
ENDff
I* To Adjust for Originate or Reversal */ ff OORR = 'O' then
Set Multiplier = Multiplier * +1 ELSff OORR = 'R'
Set Multiplier = Multiplier * - 1 ENDff
/* Test for Total Unit Changes */ ff Operand 2 = 'TU' then
Add Value to AM - Total Units Add Value to EA - Total Units /* Test for Income Cash Changes */ ff Operand 2 = 'IC then
/* Add to First Controls - Account Master */
Add Value to AM - Income Cash
Add Value to AM - Units
I* Add to Second Controls - Entity Attribute */
Add Value to EA - Invested In-come
Add Value to EA - Units /* Add to Third Controls - General Ledger */ ff Number of Entries = 1 then
Add Value to GL - Income Cash ELSff Number of Entries = 2 then ff Value > 0 then IF ICD >= 0 then
Add Value to GL - Income Cash Demand
ELSE ICD < 0
Add (Value - ICO) to GL - Income Cash Demand ISet Zero to GL - Income Cash Over-draft ENDIF
ELSff Value <= 0 then ff ICD < 0 then
Add Value to GL - Income Cash Ov-srdraft
ELSE ICD >= 0 then Add (Value - ICD) to GL - Income Cash Overdraft
4Set Zero to GL - Income Cash Demand
ENDIF ELSE
Message "Invalid Value", Details ENDIF A4dd Value to Uninvested Income
ELSE
Message "Invalid Number Entries", Details
ENDff /* Test for Principal Cash Changes */
ELSff Operand 2 = 'PC then
/* Add to First Controls - Account Master */
Add Value to AM - Principal Cash Add Value to AM - Units
/* Add to Second Controls - Entity Attribute */ Add Value to EA - Invested Principal Add Value to EA - Units
/* Add to Third Controls - General Ledger */
IF Number of Entries = 1 then
Add Value to GL - Principal Cash ELSff Number of Entries = 2 then ff Value > 0 then
IF PCD >= 0 then
Add Value to GL - Principal Cash Demand
ELSE PCD <0
Add Value to GL - Principal Cash Demand Set Zero to GL - Principal Cash Overdraft
ENDff ELSff Value <= 0 then ff PCD < 0 then
Add Value to GL - Principal Cash Overdraft ELSE PCD >= 0 then
Add (Value - PCD) to GL - Principal Cash Overdraft Set Zero to GL - Principal Cash Demand
ENDff ELSE Message "Invalid Value", Details
ENDff ELSE
Message "Invalid Number Entries", Details ENDff
Add Value to Uninvested Principal
/* Test for Invested Income Changes */
ELSff Operand 2 = 'IT then
/* Add to First Controls - Account Master */
Add Value to AM - Invested Income
/* Add to Second Controls - Entity Attribute */ Add Value to EA - Invested Income
/* Add to Third Controls - General Ledger */ /* Update Assets */
Add Value to ACN- Assets
I* Update Liabilities */ ff ACN-Liab = ' ' then
Add Value to Invested Income
ELSE
Add Value to ACN Liabilities
ENDff
I* Test for Invested Principal Changes */
ELSff Operand 2 = 'IP' then
/* Add to First Controls - Account Master */
Add Value to AM - Principal Cash
/* Add to Second Controls - Entity Attribute */ Add Value to EA - Invested Principal
/* Add to Third Controls - General Ledger */
/* Update Assets */
Add Value to ACN - Assets
/* Update Liabilities */ IF ACN_Liab = ' ' then
Add Value to Invested Principal
ELSE
Add Value to ACN Liabilities
ENDff
/* Test for Other Customized Reporting Changes ELSff Operand 2 = T and Report Request = ' Y' OR Operand 2 = 'E' and Report Request = ' Y' then
(TEE) Process IE
(PME) Process PM
ELSIF Op-srand 2 = 'R' and Report Request = ' Y' OR Operand 2 = 'D' and Report Request = ' Y' then
(EC) Process RD
(PMC) Process PM
I* Test for other Performance Measurement Data ELSIF Operand 2 = 'PM' and Report Request = Υ then (PMP) Process PM
ELSff Operand 2 = 'CN' OR Operand 2 = 'DN' then (CDC) Process PM
ELSff Operand 2 = 'MF' then (PMM) Process PM
ELSff Operand 2 = 'CM' then (PCM) Process PM
ELSff Operand 2 = 'FT' then (PMF) Process PM
ELSIF Operand 2 = 'ST' then (PMS) Process PM
ELSE
Message "Invalid Operand 2", Details
ENDff
/* Test for Detail Record Maintenance of Financial Instruments */ ff AORS != ' ' then
***********
CALL PORTFOLIO ADJUSTER 110
***********
ENDff
ENDDO END
Pseudo-Code for Performance Measurement (PM)
Processing related to the Licensee Performance Measurement Table 104
BEGIN
IF Trxn = 'A' and Type = 'O' OR Trxn = 'S' and Type = 'R (which means ADD)
SELECT Data into Working Storage from PM Record IF Error then
INSERT INTO PM Record, Details IF Error then
Message "INSERT PM Error", Details Goto Write Reject Report ENDIF
ELSE
Increment Units by amount to be increased UPDATE Data to Table / Row IF Error Message "UPDATE PM Error 1", Derails
Goto Write Report Error ENDIF ENDIF ELSIF Trxn = 'A' and Type R' OR Trxn = 'S' and Type = 'O' (which means SUBTRACT)
SELECT Data into Working Storage from PM Record E Error then
Message " SELECT PM Error 2", Details Goto Write Report Error ENDE
E Units = 'ALL" and All Other Balances in the Row are Zero then DELETE from Table / Row E Error Message "DELETE PM Error", Details
Goto Write Report Error ENDE ELSE
Decrement Units by Amount to be reduced UPDATE PI SET Details E Error then
Message "UPDATE PM Error 2", Details Goto Write Report Writer ENDE ENDE ELSE
Null ENDE Goto EOJ
< < Write Reject Report > > INSERT into Reject Table, Details
E Error
STOP ENDE
< <EOJ> > Null
END
Pseudo-Code for Income / Expense Processing (IE)
Processing related to the Customer Income Statement (Income/Expense) Table 96
BEGIN
E Trxn = 'Debit' and Type = 'O' (which means ADD) OR Trxn = 'Credit' and Type = O' then
SELECT Data into Woiking Storage from E Record E Error hai
INSERT INTO E Table, Details E Error then Message "INSERT E Error 1", Details
Goto Write Report Error ENDE ELSE
Increment Units by amount to be increased UPDATE Data to Table / Row
E Error then
Message "UPDATE E Error 1", Details Goto Write Report Error ENDE ENDE
ELSE Trxn = 'Debit' and Type = 'R' (which means SUBTRACT)
OR Trxn = 'Credit' and Type = 'R' then
SELECT Data into Working Storage from E Record E Error then Message " SELECT E Error 2", Details
Goto Write Report Error ENDE E Units = 'ALL" then
DELETE from Table / Row E Error then
Message "DELETE E Error", Details Goto Write Report Error
ENDE
ELSE
Decrement Units by Amount to be reduced UPDATE E SET Details E Error tlrøi
Message "UPDATE E Error 2", Details
Goto Write Report Writer ENDE ENDE
ELSE
Null ENDE Goto EOJ < < Write Reject Report > >
INSERT into Reject Table, Details E Error then STOP ENDE < <EOJ> >
Null END
Pseudo-Code for AORS Processing
(Portfolio Adjuster 110 Processing)
BEGIN
/* The End AORS Switch is a global switch that signals the end of all AORS processing */ /* otherwise known as the Detail Record (or Row) Maintenance Processing. */
/* The switch is originally set = 0. Each called routine ends by setting the switch = 1. */
Set End AORL Switch = 0
DO WHILE End AORS Switch = 0
E Trxn = "ADD" then
E Type = O* tiren
************
CALL Original Add Module 114 (Originate Add)
************
E Error
Message "No OADD Routine" Goto Write Reject Report
ENDE
ELSE Type = 'R' th∞
***********
CALL Reverse Add Module 118 (Reverse Add)
***********
E Error
Message "NO RADD Routine" Goto Write Reject Routine
ENDE ELSE Message "Invalid O OR R Code for ADD", Details Goto Write Reject Report ENDE ELSE Trxn = 'SUBTRACT' then
E Type = 'O' then
***********
CALL Original Sell Module 122 (Originate Subtract)
*********** E Error then
Message "No OSUB Routine", Details Goto Write Reject Report ENDE ELSE Type = 'R' then
***********
CALL Reverse Sell Module 126 (Reverse .Subtract)
***********
E Error then
Message "No RSUB Routine, Details Goto Write Reject Report
ENDE ELSE
Message "Invalid O OR R for SUBTRACT", Details Goto Write Reject Report ENDE
ELSE
Message "Invalid Transaction", Details Goto Write Reject Report ENDE
Goto EOJ
< < Write Reject Report > > INSERT into Reject Table
E Error then STOP ENDE Set End AORL Switch = 1
< <EOJ> > Null
ENDDO END
A first embodiment of the processing for the balance sheet table 130 is provided in the flowchart of Fig. BAL-SHT. Note that for simplicity, error handling and related validity checking steps have been omitted. However, the performance of such steps is within the scope of the present invention, as one skilled in the art will appreciate.
A second pseudo-code embodiment of the processing for the balance sheet table 130 follows. Balance Sheet Processing (BS)
BEGIN E AORL = 'A' and OORR = O' (which means ADD)
AND AORL = 'S' and OORR = 'R' thai
SELECT Data into Woiking Storage from BS Record E Error then
INSERT INTO BS Table, Details E Error then
Message "INSERT BS Error', Details Goto Write Reject Table ENDE ELSE Increment Units by amount to be increased
UPDATE Data to Table / Row E Error
Message "UPDATE BS Error 1", Details Goto Write Report Error ENDE
ENDE ELSE AORL = 'A' and OORR = 'R* (which means SUBTRACT)
OR AORL = 'S' and OORR = O' then
SELECT Data into Working Storage from BS Record E Error then
Message " SELECT BS Error 2", Details Goto Write Report Error ENDE
E Units = 'ALL" then DELETE from Table / Row
E Error
Message "DELETE BS Error", Details Goto Write Report Error ENDE ELSE
Decrement Units by Amount to be reduced UPDATE E SET Details E Error then
Message "UPDATE BS Error 2", Details Goto Write Report Writer
ENDE ENDE ELSE
Null ENDE
Goto EOJ
< < Write Reject Report > > INSERT into Reject Table, Details E Error STOP
ENDE < <EOJ> > Null
END Pseudo-Code For Processing The Capital Gains Table 140
BEGIN ff AORL = 'S' and Type = 'O' (which means ADD)
SELECT Data into Working Storage from CG Record ff Error then
INSERT INTO CG Table, Details ff Error then Message "INSERT CG Table", Details
Goto Write Report Error ENDff ELSE
Increment Units by amount to be increased UPDATE Data to Table / Row ff Error
Message "UPDATE CG Error 1", Details Goto Write Report Error ENDff ENDff
ELSff AORL = 'S' and Type = 'R' (which means SUBTRACT)
SELECT Data into Working Storage from CG Record IF Error then
Message " SELECT CG Error 2", Details Goto Write Report Error
ENDff ff Units = 'ALL" then
DELETE from Table / Row IF Error Message "DELETE CG Error", Details
Goto Write Report Error ENDff ELSE
Decrement Units by Amount to be reduced UPDATE E SET Details ff Error then
Message "UPDATE CG Error 2", Details Goto Write Report Writer ENDff ENDff
ELSE
Null ENDff Goto EOJ «Write Reject Report»
INSERT into Reject Table, Details ff Error
STOP ENDIF «EOJ»
Null END Pseudo-Code for Original Add Module 114 Processing
Note: Do not turn switch OFF or back to 0 as these switches indicate whkh processes remain.
BEGIN ff Process 1 Switch = 0 then
Set Process 1 Switch = 1 ********
CALL BS
********
ELSff Process 2 Switch = 0 then
Set Process 2 Switch = 1
********
CALL PI
********
ELSff Process 3 Switch = 0 then
Set Process 3 Switch = 1 ********
CALL PA
********
ELSff Process 4 Switch = 0 then
Set Process 4 Switch = 1
********
CALL TS
********
ELSff Process 5 Switch = 0 then
Set Process 5 Switch = 1
*********
CALL PM *********
Set End AORS Switch = 1 Notes End of AORS Processing
ELSE
NULL
ENDff
*****************
CALL Subtransaction Scheduler 62
*****************
END
Pseudo-Code for Reverse of Add Module 118 Processing
Note: Do not turn switch OFF or back to 0 as these switches indicate whkh processes remain.
BEGIN
IF Process 6 Switch = 0 then
Set Process 6 Switch = 1
******** CALL BS
********
ELSIF Process 7 Switch = 0 then
Set Process 7 Switch = 1 **********
CALL PI
**********
ELSff Process 8 Switch = 0 then
Set Process 8 Switch = 1
********
CALL PA
********
ELSff Process 9 Switch = 0 then
Set Process 9 Switch = 1
********
CAI TS
********
ELSff Process 10 Switch = 0 then
Set Process 10 Switch = 1
*********
CALL PM *********
Set End AORS Switch = 1 Notes End of AORS Processing
ELSE
NULL
ENDff
*****************
CALL Subtransaction Scheduler 62
*****************
END
PSEUDO-CODE FOR ORIGINAL SELL MODULE 122 PROCESSING
BEGIN ff Sell-Method = 'LOT' then
Select LOT Amount into Working Storage from BS record IF Amoimt Sold > Lot Amount in Working Storage then Message "Lot Amount > Amount Available" Goto Write Reject Report ENDff ff Process 11 Switch = 0 then
Set Process 11 Switch = 0
***************
CALL BS
***************
ELSff Process 12 Switch = 0 then Set Process 12 Switch = 0 **********
CALL PI **********
ELSIF Process 13 Switch = 0 then Set Process 13 Switch = 0
**********
CALL PA
**********
ELSff Process 14 Switch = 0 then Set Process 14 Switch = 0
**********
CALL CG
**********
ELSff Process 15 Switch = 0 then Set Process 15 Switch = 1
**********
CALL TS **********
ELSff Process 16 Switch = 0 then Set Process 16 Switch = 0
**********
CALL PM
**********
ELSff Process 17 Switch = 0 then Set Process 17 Switch = 0
CALL TL
**********
Set End AORS Switch = 1 NotesEndαfAORS Processing
ELSE
NULL
ENDff *****************
CALL SUBTRACTION SCHEDULER 62
*****************
ELSE
Select all LOTS into Temporary Working Storage Table Licn/Acct/Asset/Purch/Amt/Cost/Unit-Cost/ROWID) Set Total Amount Sold = Data Entry Amount Sold ff Total Amount Sold > Total Amount Available then
Message "Total Amount Sold > Total Amount Available", Details
Goto Write Reject Report ENDff
Avg-Factor = 1 ff Sell-Method = "AVG" then
Avg-Factor = (Total Amount Sold / Total Amount Available) ENDff
«Sell Multiple Lot Routine» DO While Total Amount Sold = 0
IF Total Amount Sold > 0 then ff Sell-Method = 'Fff" or ' ' then
Select LOT Amount Available into WS Lot Amount Where Purch = MIN (Purch) ENDff
ELSff
10 ff Sell-Method = 'Lff"
Select LOT Amount Available into WS Lot Amount Where Purch = MAX(Purch) ENDIF
ELSff
15 ff Sell-Method == 'LCF'
Select LOT Amount Available into WS Lot Amount Where Unit-Cost = MIN(Unit-Cost) ENDff
ELSIF
20 ff Sell-Method = 'HCF"
Select LOT Amount Available into WS Lot Amount Where Unit-Cost = MAX(Unit-Cost) ENDff
ELSE
25 «for Sell-Method = 'AVG' or 'ALL'»
IF Amount Sold * Avg Factor < WS Lot Amount then
UPDATE Temporary Table Lot Amount for Amount Sold ELSE
DELETE Total Row Temporary Table
30 ENDIF
**********
IF Process 11 Switch = 0 then
Set Process 11 Switch = 0
35 ***************
CALL BS
***************
ELSIF Process 12 Switch = 0 then
Set Process 12 Switch = 0
40 **********
CALL PI **********
ELSIF Process 13 Switch = 0 then
Set Process 13 Switch = 0
45 **********
CALL PA **********
ELSIF Process 14 Switch = 0 then Set Process 14 Switch = 0
50 **********
CALL CG
**********
ELSIF Process 15 Switch = 0 then
Set Process 15 Switch = 1
55 **********
CALL TS
********** ELSIF Process 16 Switch = 0 then
Set Process 16 Switch = 0
**********
CALL PM
**********
ELSff Process 17 Switch = 0 then Set Process 17 Switch = 0
**********
CALL TL
10 **********
Set End AORS Switch = 1 Notes End of AORS Proc-sssing
ELSE
NULL 15 ENDff
Decrement Total Amount Sold by Cap Gain Lot Amount Increment the e LOT Number in *****************
CALL SUBTRANSACTION SCHEDULE 62 *****************
ENDff ENDDO 25 ENDff
«EOJ»
NULL END
30 Originate Sell Routine
BEGIN ff Sell-Method = 'LOT' then
35 Select LOT Amount into Working Storage from BS record ff Amount Sold > Lot Amount in Working Storage then
Message "Lot Amount > Amount Available"
Goto Write Reject Report
ELSE 40 ***************
CALL BS Routine
***************
ENDff **********
45 CALL PEA
**********
**********
CALL CG
**********
5Q **********
CALL TS
**********
**********
CALL PM 55 ********** **********
CALL CG
**********
**********
CALL TL
**********
ELSE
Select All LOTS into Temporary Working Storage Table Licn/Acct/Asset Purch/Amt/Cost/Unit-Cost/ROWID) Set Total Amount Sold = Data Entry Amount Sold ff Total Amount Sold >Total Amount Available then
Message "Total Amount Sold > Total Amount Available" Details
Goto Write Reject Report ENDff
Avg-Factor = 1
IF Sell-Method = 'AVG' then
Avg-Factor = (Total Amount Sold / Total Amount Available) ENDff DO While Total Amount Sold = 0 ff Total Amount Sold > 0 then ff Sell-Method = 'Fff' or ' ' then
.Select LOT Amount Available into WS Lot Amount Where Purch = MIN (Purch) ENDff
ELSIF ff Sell-Method = 'Lff"
Select LOT Amount Available into WS Lot Amount Where Purch = MAX(Purch) ENDff
ELSff ff Sell-Method = 'LCF'
Select LOT Amount Available into WS Lot Amount Where Unit-Cost = MIN(Unit-Cost) ENDff
ELSff ff Sell-Method = 'HCF"
Select LOT Amount Available into WS Lot Amount Where Unit-Cost = MAX(Unit-Cost) ENDff
ELSE
«for .Sell-Method = 'AVG' or 'ALL'» ff Amount Sold * Avg Factor < WS Lot Amount then
UPDATE Temporary Table Lot Amount for Amount Sold ELSE
DELETE Total Row Temporary Table
ENDff
**********
CALL BS with the amount of LOT sold
**********
ENDff
**********
CALL PEA
********** **********
CALL TS
**********
**********
CALL PM
**********
**********
CALL CG with the amount of LOT sold
**********
**********
CALL TL
**********
Decrement Total Amount Sold by Cap Gain Lot Amount Increment the LOT Number
ENDff ENDDO ENDff Goto EOJ
«Write Reject Report» INSERT into Reject Table ff Error then STOP
ENDff
«EOJ»
END
Pseudo-Code for Reverse of Original Sell Module 126 Processing
BEGIN
IF Process 18 Switch = 0 then
Set Process 18 Switch = 1 ********
CALL BS with the amount of LOT sold
********
ELSff Process 19 Switch = 0 then
Set Processor 19 Switch = 1
********
CALL PI
********
ELSIF Process 20 Switch = 0 then
Set Process 20 Switch = 1
********
CALL PA
********
ELSff Process 21 Switch = 0 then
Set Process 21 Switch = 1 ********
CALL TS ********
ELSff Process 22 Switch = 0 then Set Process 22 Switch = 1 *********
CALL PM
*********
ELSIF Process 23 Switch = 0 then
Set Process 23 Switch = 1
********
CALL CG with the amount of LOT sold
********
ELSff Process 24 Switch = 0 then
Set Process 24 Switch = 1
********
CALL TL
********
Set End AORL Switch = 1 Notes End of AORS Processing
ELSE
NULL
ENDIF *****************
CALL Subtransaction Scheduler 62
*****************
END
Pseudo-Code for Processing Model #4
For All INSERTS. UPDATES, and DELETES to all Tables
BEGIN
IF Trxn is 'ADD' then
SELECT Data in Working Storage ff Error then
INSERT INTO Table, Details ff Error then
Message "INSERT Error", Details Goto Write Reject Report ENDff
ELSE
Increment the Details UPDATE Set Table, Details ff Error then Message "UPDATE Error ADD", Details
Goto Write Reject Report ENDIF ENDIF ELSIF Trxn is 'SUBTRACT' theai SELECT Data into Working Storage ff Error then
Message "SELECT Error Subtract", Details Goto Write Reject Report ENDIF If One or More Amounts > One or More Values from Existing Record then
ADD to Reject Report ff Error then
Message "INSERT Reject SUBTRACT", Details Goto Write Reject Report ENDff IF Details = 'ALL" then
DELETE From Table, Details ff Error then
Message "DELETE Error", Details Goto Write Reject Report ENDff
ELSE
Decrement the Details UPDATE SET, Details ff Error then Message "UPDATE Error SUBTRACT", Details
Goto Write Reject Report ENDIF ENDff ENDIF Goto EOJ
«Write Reject Report» INSERT INTO Reject Table, Details ff Error then Message "INSERT Reject Table Error", Details
STOP ENDff
«EOJ» NULL
END
Pseudo-Code for Processing the Trade Settlement Table 142
BEGIN ff Trxn = 'A' and Type = '0' OR Trxn = 'S' and Type = '0' (which means ADD)
INSERT into TS table, Details ff Error then
Message "INSERT TS Error 1", Details Goto Write Report Error END
ELSIF Trxn = 'A' and Type = 'R' OR Trxn = 'S' and Type = 'R' (which means SUBTRACT) SELECT Data into Working Storage from TS Record ff Error then
Message " SELECT TS Error 2", Details Goto Write Report Error
ENDIF
DELETE from Table / Row ff Error
Message "DELETE TS Error", Details Goto Write Report Error
ENDIF ELSE
Null ENDIF Goto EOJ
«Write Reject Report» INSERT into Reject Table, Details ff Error STOP
ENDff
«EOJ» Null
END
Pseudo-Code for Processing the Customer Cash Flow (Receipts/Disbursements) Table 100
BEGIN
IF Trxn = 'Receipt' and Type = 'O' (which means ADD) OR Trxn = 'Disbursement' and Type = 'O' then
SELECT Data into Working Storage from RD Record ff Error th-sn
INSERT INTO RD Table, Details ff Error then Message "INSERT RD Error", Details
Goto Write Report Error ENDIF ELSE
Increment Units by amount to be increased UPDATE Data to Table / Row ff Error then
Message "UPDATE RD Error 1", Details Goto Write Report Error ENDff ENDff
ELSIF Trxn = 'Receipt' and Type = 'R' (which means SUBTRACT)
OR Trxn = 'Disbursement' and Type = 'R'
SELECT Data into Working Storage from RD Record IF Error then Message " SELECT RD Error 2", Details
Goto Write Report Error ENDff ff Units = 'ALL" then
DELETE from Table / Row IF Error
Message "DELETE RD Error", Details Goto Write Report Error ENDff ELSE Decrement Units by Amount to be reduced
UPDATE E SET Details ff Error then
Message "UPDATE RD Error 2", Details Goto Write Report Writer
ENDff
ENDff ELSE
Null ENDff Goto EOJ
«Write Reject Report» INSERT into Reject Table, Details
IF Error then STOP
ENDff «EOJ» Null
END
Pseudo-Code for Processing the Pending Adjustment Table 138
BEGIN ff Trxn = 'A' and Type = 'O' OR Trxn = 'S' and Type = 'R' (which means ADD)
AND Trade Date < Income Ex-Date then
SELECT Data into Working Storage from PA Record IF Error then
INSERT INTO PA Table, Details ff Error then
Message "INSERT PA Error", Details Goto Write Report Error ENDff ELSE Increment Units by amount to be increased
UPDATE Data to Table / Row IF Error
Message "UPDATE PA Error 1", Details Goto Write Report Error ENDff
ENDff ELSIF Trxn = 'A' and Type = 'R' OR Trxn = 'S' and Type = 'O' (which means SUBTRACT) AND Trade Date > Income Ex-date + 1 then
SELECT Data into Working Storage from PA Record IF Error then
Message " SELECT PA Error 2", Details Goto Write Report Error ENDIF
IF Units = 'ALL" then DELETE from Table / Row ff Error
Message "DELETE PA Error", Details Goto Write Report Error ENDff ELSE
Decrement Units by Amount to be reduced UPDATE PA SET Details IF Error then
Message "UPDATE PA Error 2", Details
Goto Write Report Writer ENDIF
ENDff ELSE
Null ENDff Goto PA-EOJ «Write Reject Report» INSERT into Reject Table, Details ff Error
STOP
ENDff «PA-EOJ» Null
END
Pseudo-Code for Processing the Pending Income Table 134
BEGIN IF Trxn = 'A' and Type = 'O' OR Trxn = 'S' and Type = 'R' (which means ADD)
AND Trade Date < Income Ex-Date then
SELECT Data into Working Storage from PI Record ff Error then
INSERT INTO PI Table, Details IF Error then
Message "INSERT PI Error", Details Goto Write Reject Report ENDff ELSE Increment Units by amount to be increased
UPDATE Data to Table / Row ff Error
Message "UPDATE PI Error 1", Details Goto Write Report Error ENDff
ENDff ELSIF Trxn = 'A' and Type = 'R' OR Trxn = 'S' and Type = 'O' (which means SUBTRACT) AND Trade Date > Income Ex-date + 1 then
SELECT Data into Working Storage from PI Record ff Error then
Message " SELECT PI Error 2", Details Goto Write Report Error ENDff
IF Units = 'ALL" then DELETE from Table / Row ff Error
Message "DELETE PI Error", Details Goto Write Report Error ENDff ELSE
Decrement Units by Amount to be reduced UPDATE PI SET Details ff Error then
M-sssage "UPDATE PI Error 2", Details
Goto Write Report Writer ENDff
ENDff ELSE
Null ENDff Goto PI-EOJ
«Write Reject Report» INSERT into Reject Table, Details ff Error
STOP
ENDff «PI-EOJ» Null
END
N^gine File (or Table) Structure and Likely Order of Creation corresponding with Figs.4-A through 4-E
Institutional Profile Data Source
LM Licensee Master User-Definable
LU Lkensee Users User-Definable
LT Licensee Account Type User-Definable
LD Lkensee Default Definitions User-Definable
LL Lkensee General Ledger Definitions User-Definable
LS Lkensee Diversification Scheme User-Definable
LP Lkensee Performance Group User-Definable
LN Lkensee Summary Names User-Definable
LW Lkensee Service Wholesalers User-Definable
LR Lkensee Service Resellers User-Definable
Customer Profile
AO Account Objective User-Definable
AL Account Legal Capacity User-Definable
AJ Account jurisdiction User-Definable
AR Account Representatives User-Definable
AN Account Registration Names User-Definable
AM* Account Master User-Definable
AC Account Communication Links User-Definable
Transaction Profile
TM** Transaction Master User-Definable "Driving" File
TP** Transaction Processor User-Definable "Driving" File
TR Transactions - Recurring User-Definable "Driving" File
Entity Profile EM Entity Master Public Market Data
EA* Entity Attribute User-Definable
ET Entity Transaction User-Definable
Lkensee Status
SG* System General Ledger User-Definable
SJ* System Transaction journal System Defined "Driven" File
ST System Trade Settlement System Defined "Driven" File
SS System Summary Table System Defined
SR System Reject Table System Defined
SC System Transaction Count System Defined
Customer Status
CS Customer Income Statement (Income / Expense) System Defined "Driven" File
CF Customer Cash Flow (Receipts / Disbursements) System Defined "Driven" File
CB* Customer Balance Sheet System Defined "Driven" File
CG Customer Capital Gain System Defined "Driven" File
Cl Customer Pending Income System Defined "Driven" File
CA Customer Pending Capital Adjustments System Defined "Driven" File
CP* Customer Performance Measurement System Defined "Driven" File
Notes: * denotes Primary Control Tables ** denotes "Driving Tables"
TABLE DATA DESCRIPTIONS WITH EXAMPLES
(LM) Licensee Master
Primary Data consisting of Lkensee Identifier Lkensee Description
Trade Settlement Data consisting of
Lkensee Trade Settlement Switch Trade Offset Buy Identifier Trade Offset Sell Identifier Settle Offset Buy Identifier Settle Offset Sell Identifier +
Other Details +
Audit Fields consisting of Processing Model I Add Date
Add Sequence Number Add User Identifier Change Date
Change Sequence Number Change User Identifier Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications Archive Status Archive Date
Example:
Licensee Lkensee Other Lkensee Lkensee
Identifier Description Address City/State/ZIP
LICNI First Lkensee Name Main Street Denver, CO
LICN2 Second Lkensee Name Broadway New York, NY
LICN3 Third Lkensee Name Michigan Ave. Chicago, IL
am Licensee Users
Primary Data consisting of Lkensee Identifier User Identifier User Description +
Other Details +
Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
Example:
Lkensee User User Other User User
Identifier Identifier Description Address City/State/ZIP
LICNI FUN First User Name Lincoln Ave Denver, CO
LICN2 SUN Second User Name Park Ave New York, NY
LICN3 TUN Third User Name Montgomery San Francisco, CA (LT) Licensee Account Type
Primary Data consisting of
Lkensee Identifier
Account Type Identifier
Account Type Description
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
Example:
Lkensee Account Account
Identifier Type Number Type Name
LICNI 100 Pension Trust
LICNI 200 Investment Advisory
LICNI 300 Estates
LICNI 400 Settlements - Buy
LICNI 500 Settlements - Sell
LICN2 1000 Wireless Communications
LICN2 2000 Landiine Communications
LICN2 3000 Satellite Broadcast
LICN3 9000 Domestk Subsidiary
LICN3 10000 Foreign Subsidiary
(LD) Licensee Default Definitions
Primary Data consisting of Lkensee Identifier Default Class
Demand or Overdraft
Accounting Control Number
Accounting Control Number Description
Cash Record Pointer in EA Table + Other Details
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
Example:
Lkensee Class Sub-Class Accounting Accounting
Identifier Iden Iden Control Number Control Name
LICNI IC D AOI Income Cash Demand
LICNI IC 0 A02 Income Cash Overdraft
LICNI IC D A03 Principal Cash Demand
LICNI IC 0 A04 Principal Cash Overdraft
LICNI UI L05 Uninvested Income
LICNI UP LIO Uninvested Principal
LICNI II LI5 Invested Income
LICNI IP L20 Invested Principal
au Licensee General Ledger Definition
Primary Data consisting of
Lkensee Identifier
Asset or Liability
Account Type Identifier
Account Type Description
+ Other Details
+
Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number Change User Identifier Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications
Archive Status Archive Date
(See Details Provided)
Primary Data consisting of
Lkensee Identifier
Diversification Type Identifier
Diversification Group Identifier
Diversification Class Identifier
Diversification Description + Other Details
+
Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier umber of Modifications
Archive Status
Archive Date
Example:
Lkensee Diversification Diversification Diversification Diversification
Identifier Type Group Class Name
LICNI 100 000 000 Money Market Instruments
LICNI 100 100 000 US Govt Bills
LICNI 100 200 000 US Govt Notes
LICNI 100 300 000 Par Notes
LICNI 100 400 000 Discount Notes
LICNI 200 000 000 Fixed Income Securities
LICNI 200 100 000 US Govt Bonds
LICNI 200 200 000 Municipal Bonds
LICNI 200 300 000 Corporate Bonds LICNI 200 400 000 Bond Funds
LICNI 300 000 000 Equities
LICNI 300 100 000 Preferred Stock
LICNI 300 200 000 Convertible Preferred
LICNI 300 300 000 Common Stock
LICNI 300 300 100 Automotive
LICNI 300 300 200 Building
LICNI 300 300 300 Chemical
LICNI 300 300 400 Drug
LICNI 300 400 000 Oil Partnerships
LICNI 300 500 000 Real Estate Partnerships
LICN2 100 000 000 Communication Servkes
LICN2 100 100 000 Wireless Communication
LICN2 100 200 000 Landline Communication
LICN2 100 300 000 Direct Satellite
LICN3 100 100 000 Cash
LICN3 100 200 000 Other Current Assets
LICN3 100 300 000 Fixed Assets
LICN3 100 400 000 Depreciation
LICN3 100 500 000 Other Tangible Assets
LICN3 100 600 000 Other Intangible Assets
LICN3 100 700 000 Current Liabilities
LICN3 100 800 000 Deferred Taxes
LICN3 100 900 000 Long-Term Debt
LICN3 100 1000 000 Net Worth
(LP) Licensee Performance Group
Primary Data consisting of
Lkensee Identifier
Performance Type 1 dentifier
Performance Group Identifier
Performance Class Identifier
Performance Description
Other Details
+
Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier Number of Modifications Archive Status Archive Date
Example:
Lkensee Perf Meas Perf Meas Perf Meas Perf Meas
Identifier Jj e Group Class Name
LICNI 100 000 000 Money Market
LICNI 100 100 000 US Notes
LICNI 100 100 9710 Maturing 10/97
LICNI 100 100 9711 Maturing 11/97
LICNI 100 200 000 Par Notes
LICNI 100 200 9711 Maturing 11/97
LICNI 100 200 9712 Maturing 12 97
LICNI 200 000 000 Municipal Bonds
LICNI 200 AAA 000 Rated AAA
LICNI 200 AAA 9803 Maturing 03/98
LICNI 200 AAA 9806 Maturing 06/98
LICNI 300 000 000 Common Stock
LICNI 300 100 000 Durables
LICNI 300 100 100 Autos
LICNI 300 100 200 Appl
LICNI 300 200 000 Consumer Goods
LICNI 300 200 100 Food
LICNI 300 200 200 Beverage
sm Licensee Summary Names
Primary Data consisting of
Lkensee Identifier
Summary Type Identifier
Summary Number
Summary Descripti an + Other Details
+
Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications Archive Status Archive Date
Example:
Lkensee Type Group Class Summary Item
Identifier Code Code Code Name
LICNI 1 0001 Dividends - Ordinary
LICNI 1 0002 Dividends - Partially Tax-Exempt
LICNI 1 0003 Dividends - Tax-free
LICNI E 0001 Management Fees
LICNI E 0004 Legal Expenses
LICNI R 0001 1 Dividends
LICNI R 0002 1 Interest - Net
LICNI R 0007 P Principal Contributions
LICNI R 0008 P Principal Sale Proceeds
LICNI D 0001 1 Management Fees
LICNI D 0009 P Principal Disbursements
a Licensee Service Wholesalers
Primary Data consisting of
Licensee Identifier
Wholesaler Identifier
Wholesaler Address
Number of Calls
Value of Call
+ Other Details
-r
Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date Example:
Lkensee Wholesaler Wholesaler Wholesaler Gty tate/ZIP Identifier Identifier Name Address Codes
LICNI ABCD AB Cellular Dealer 100 Main Street Denver, CO LICNI RSTU RS Telephone Utility 200 Broadway NY, NY ιm Licensee Resellers
Lkensee Identifier
Wholesaler Identifier
Reseller Identifier
Reseller Address
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
Example:
Lkensee Wholesaler Reseller Reseller Reseller CityΛtate/ZIP
Identifier Identifier Identifier Name Address Codes
LICNI ABCD 123 123 Reseller 200 Oak Tulsa, OK
LICNI ABCD 234 234 Reseller 500 Elm Okla City, OK
LICNI RSTU 678 678 Reseller 300 Pine Fresno, CA
LICNI STUV 789 789 Reseller 700 Cedar Pittsburgh, PA
(AO) Account Objective
Primary Data consisting of Lkensee Identifier Objective Identifier Objective Descripti on
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status Archive Date
Example:
Lkensee Objective Objective
Identifier Identifier Name
LICNI 0100 Growth
LICNI 0200 Income
LICNI 0300 Growth with Income
LICNI 0400 Capital Preservation
LICNI 0500 High-Risk
(AL) Account Legal Capacity
Primary Data consisting of Lkensee Identifier Legal Capacity Identifier Legal Capacity Description +
Other Details + Audit Fields consisting of Processing Model I Add Date Add Sequence Number
Add User Identifier Change Date
Change Sequence Number Change User Identifier Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications Archive Status Archive Date
Example:
Lkensee Legal Capacity Legal Capacity
Identifier Number Name
LICNI 010 Trustee
LICNI 020 Broker
LICNI 030 Advisor
LICNI 040 Agent
LICNI 050 Escrow
LICNI 060 Executor
LICNI 070 Administrator
(Al) Account Jurisdiction
Primary Data consisting of Lkensee Identifier jurisdiction Identifier Jurisdiction Description +
Other Details +
Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
Example:
Lkensee Jurisdiction Jurisdiction Identifier Identifier Name
LICNI CA California LICNI PA Pennsylvania LICNI VI Virgin Islands LICNI NA Netherlands Antilles (AR) Account Representative
Primary Data consisting of
Lkensee Identifier
Account Representative Identifier
Account Representative Name
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
Example:
Lkensee Representative Representative Identifier Identifier Name
LICNI RR Rhonda Red LICNI WW Wanda White LICNI BB Bill Brown LICN GG Glenn Green
(AN) Account Registration Name
Primary Data consisting of
Lkensee Identifier
Registration Identifier
Registration Description
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number
Add User Identifier
Change Date Change Sequence Number Change User Identifier Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications Archive Status Archive Date
Example:
Lkensee Registration Registration
Identifier Identifier Name
LICNI AA Able & Company LICNI BB Baker & Company LICNI CC Charlie & Company
(AM) Account Master
Primary Data consisting of
Lkensee Identifier
Account Identifier
Account Description
Account Address
Account Fiscal Year - MM
Account Fiscal Year - DD
Account Fiscal Year - Number of Periods
Income Posting Code
Account Type
Account Objective
Account Legal Capacity
Account jurisdiction
Account Representative
Account Registration Name
Income /Expense Switch
Receipts / Disbursement Switch
Performance Measurement Switch
Lkensee Wholesaler
Lkensee Reseller
Account Settlement Switch
+ Other Details
+ System Control Data consisting of
Income Cash
Principal Cash Invested Income
Invested Principal
Total Units - Assets
Liabilities Total Units - Liabilities
+ Capital Gain Control Fields consisting of
Total Units
Total Cost Basis System Control Fields consisting of
Total Income
Total Expense
Total Receipts
Total Disbursements +
Pending Income consisting of
Total Units
Total Cost Basis
Total Pending income +
Pending Cap Adj Out consisting of
Cap Adj Out - Units
Cap Adj Out - Cost Basis
Cap Adj In - Units Cap Adj In - Cost Basis
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
(AC) Account Communication Links
Primary Data consisting of Account Identifier
Communications Number
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status Archive Date
Example:
Licensee Account Communications
Identifier Identifier Identifier
LICNI 123456 ATT-001
LICNI 123456 TCI-345
LICNI 234567 US-West
LICNI 234567 ATT-002
LICNI 234567 MCI
LICNI 456789 Sprint
(TM) Transaction Master
Primary Data consisting of Lkensee Identifier Transaction Identifier Income Posting Code
Transaction Description Add or Subtract Switch Settlement Transaction Identifier Terminate Settlement Switch +
Other Details + Audit Fields consisting of Processing Model I Add Date Add Sequence Number
Add User Identifier Change Date Change Sequence Number Change User Identifier Delete Date
Delete Sequence Number Delete User identifier
Number of Modifications Archive Status Archive Date
Example:
Lkensee Transaction Income Transaction
Identifier Identifier Posting Code Name
LICNI DOI 1 Paid Management Fee
LICNI DOI 1 Paid Management Fee
LICNI DOI 1 Paid Management Fee
LICNI SE 1 Sell Equity
LICNI SE P Sell Equity
LICNI SE B Sell Equity
LICN2 DOI P Cellular Charge
LICN2 D02 P Land line Charge
LICN2 D03 P Direct Satellite Charge
LICN2 004 P America On-Line Charge
sm Transaction Processor
Primary Data consisting of Lkensee Identifier Transaction Identifier Transaction Income Posting Code Transaction Process Description
+ Other Details
+ Audit Fields consisting of Processing Model 1
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications Archive Status Archive Date
Example:
Lkensee Transaction income
Identifier Identifier Posting Code Operator Operand I Operand 2 Suffix
(TR) Transactions - Recurring
Primary Data consisting of Lkensee Identifier Account Identifier
Transaction Identifier Transaction Amount Begin Paying End Paying User Identifier
+ Other Details + Audit Fields consisting of Processing Model ! Add Date
Add Sequence Number Add User Identifier Change Date Change Sequence Number Change User Identifier
Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications Archive Status
Archive Date
Example:
Lkensee Account Transaction Transaction Begin End User
Identifier Identifier Identifier Amount Date Date Identifier
(EM) Entity Master
Primary Data consisting of Entity Identifier Entity Description Asset or Liability Code
Settlement Days
+ Income Collection Data consisting of Income Rate
Income Ex-Date
Income Record Date
Income Payment Date
+ Capital Adjustment Data consisting of
Capital Adjustment Rate
Capital Adjustment Ex-Date
Capital Adjustment Record Date
Capital Adjustment Payment Date Capital Adjustment New Entity
+ Other Details
+ Audit Fields consisting of Processing Model I Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications Archive Status
Archive Date
(■EA) Entity Attribute
Primary Data consisting of
Lkensee Identifier
Entity Identifier
+ Management Decision-Making Data consisting of
Diversification Type
Diversification Group
Diversification Class
+ Performance Measurement Data consisting of
Performance Type
Performance Group Performance Class
+ Accounting Data consisting of
Accounting Control Number - Asset Accounting Control Number - Liability
+ System Control Data consisting of
Invested Income
Invested Principal Total Units - Assets
Liabilities
Total Units - Liabilities
+ Settlement Data consisting of Buy - In Units
Buy - Out Cost Basis
Sell - In Proceeds
Sell - Out Units
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date
(ET) Entity Transaction
Primary Data consisting of Lkensee Identifier
Entity Identifier
Transaction Identifier
+
Other Details +
Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number Add User Identifier Change Date
Change Sequence Number Change User Identifier Delete Date
Delete Sequence Number Delete User Identifier Number of Modifications Archive Status Archive Date
Example:
Licensee Entity Transaction Identifier Identifier Identifier
LICNI GM BE LICNI GM XO LICNI GM XI
(SG) System General Ledger
Primary Data consisting of
Lkensee Identifier
+ Control Fields consisting of
Asset or Liability
Account Type Identifier
Accounting Control Number
Account Balance
+ Other Details
+ Audit Fields consisting of Processing Model I
Add Date
Add Sequence Number
Add User Identifier
Change Date
Change Sequence Number
Change User Identifier
Delete Date
Delete Sequence Number
Delete User Identifier
Number of Modifications
Archive Status
Archive Date Example:
(See Details provided)
(SJ) System Transaction Journal
Primary Data consisting of Lkensee Identifier Account Identifier
Transaction Identifier and either
Buy /Sells Debits /Credits
Entity Identifier Entity Identifier (if any) Purchase Date Principal
Amount Units or Income
Net Amount Net Amount
Cost Basis (if Sell) + Other Details
+ Currency Fields consisting of Currency Rate Currency From Currency To
Currency Date + Sell Data consisting of Sell Date Sell Price
Sell Proceeds Sell Transaction Date Sell Transaction Sequence Number Sell Transaction Lot Sell To
Capital Gain Amount Capital Gain Period + Sell Currency Data consisting of Sell Currency Rate
Sell Currency From Sell Currency To Sell Currency Date + Audit Fields consisting of Processing Model 2
Transaction Date Transaction Sequence Number Transaction Lot Reversing Transaction Date
Reversing Sequence Number
Reversing Transaction Lot
Reversed By Transaction Date Reversed By Transaction Sequence N umber
Reversed By Transaction Lot
Trade Date
Archive Status
Archive Date
(ST) System Trade Settlement
Primary Data consisting of
Lkensee Identifier Account Identifier
Entity Identifier
Purchase Date
Amount Units
Cost Basis Buyer /Seller
Trade Settlement Date
+ Currency Fields consisting of
Currency Ratio Currency From
Currency To
Currency Date
+
Other Details +
Transaction Date
Transaction Sequence Number
Transaction Lot
+ Audit Data consisting of
Add Date
Add User Identifier
Archive Status
Archive Date
(SS) System Summary Table
Primary Data consisting of Lkensee Identifier job Number job Name Begin Time End Time Number of Accepts
Number of Rejects
Total Items
+ Audit Data consisting of
Add Date
Add User Identifier
Archive Status
Archive Date
Example:
Licensee Job Job Begin End Total Number Number
Identifier Number Name Time Time Transactions Accepts Rejects
(SR) System Reject Table
Primary Data consisting of
Lkensee Identifier Lkensee Record + Audit Data consisting of Add Date
Add User Identifier Archive Status Archive Date
Example:
License Transaction
Identifier Record
(SC) System Transaction Count
Primary Data consisting of Lkensee Identifier Today's Date
Transaction Identifier Transaction Count - Originate Transaction Count - Reversal + Audit Data consisting of
Add Date
Add User Identifier Archive Status Archive Date
Example:
License Transaction Transaction Transaction Transaction
Identifier Date Identifier Count - Orig Count - Rev
(CS) Customer Income Statement (Income / Expense)
Primary Data consisting of Lkensee Identifier
Account Identifier
Fiscal Year - YYYY
Fiscal Year - Period
Income /Expense Income /Expense Number Income /Expense Balance + Audit Fields consisting of Add Date
Add User Identifier
Archive Status
Archive Date
Example:
Lkensee Account Fiscal Fiscal Inc/Exp Inc/Exp Inc/Exp Identifier Identifier Year Period identifier Number Balance
LICNI
(CF) Customer Cash Flow (Receipts / Disbursements)
Primary Data consisting of
Lkensee Identifier
Account Identifier
Fiscal Year -YYYY
Fiscal Year - Period Receipt /Disbursement
Receipt / Disbursement Number
Receipt / Disbursement Balance
+ Audit Fields consisting of Add Date
Add User Identifier
Archive Status
Archive Date Example:
Licensee Account Fiscal Fiscal Rec/Dis Rec/Dis Rec/Dis identifier Identifier Year Period Identifier Number Balance
LICNI
(CB) Customer Balance Sheet
Primary Data consisting of
Lkensee Identifier Account Identifier Entity Identifier Purchase Date Amount Units
Cost Basis + Currency Data consisting of Currency Rate Currency From
Currency To Currency Date + Other Details +
Transaction Identification consisting of Transaction Date Transaction Sequence Number Transaction Lot +
Audit Fields consisting of Add Date
Add User Identifier Archive Status Archive Date
(CG) Customer Capital Gains
Primary Data consisting of
Lkensee Identifier Account Identifier Entity Identifier Purchase Date Amount Units
Cost Basis Purchase Price Buy From + Transaction Identification consisting of
Transaction Date
Transaction Sequence Number Transaction Lot
+ Buy Currency Fields consisting of
Current Rate
Currency From Currency To
Currency Date
+ Sell Data consisting of
Sell Date Sell Price
Sell Proceeds
Sell Transaction Date
Sell Transaction Sequence Number
Sell Transaction Lot Sell To
Capital Gain Amount
Capital Gain Period
+ Sell Currency Data consisting of Sell Currency Rate
Sell Currency From
Sell Currency To
Sell Currency Date
+ Audit Fields consisting of
Add Date
Add User Identifier
Archive Status
Archive Date
(Cl) Customer Pending Income
Primary Data consisting of
Lkensee Identifier Account Identifier
Entity Identifier
Purchase Date
Amount Units
Cost Basis Purchase Price
+ Transaction Identification consisting of
Transaction Date Transaction Sequence Number
Transaction Lot
+ Payment Date Data consisting of Income - Ex-Date
Income - Record Date
Income - Payment Date
+ Audit Fields consisting of Add Date
Add User Identifier
Archive Status
Archive Date
(CA) Pending Capital Adjustment
Primary Data consisting of
Lkensee Identifier
Account Identifier +
Pending Out Data consisting of
Entity Identifier (Old Entity)
Purchase Date
Transaction Identifier (Exchange Out) Amount Units (Old Amount)
Cost Basis
Purchase Prke
+ Transaction Identification consisting of Transaction Date
Transaction Sequence Number
Transaction Lot
+ Pending In Data consisting of Transaction Identifier (Exchange In)
Entity Identifier (New Entity)
Amount Units (New Amount)
+ Payment Date Data consisting of Capital Adjustment - Ex-Date
Capital Adjustment - Record Date
Capital Adjustment - Payment Date
+ Audit Fields consisting of Add Date
Add User Identifier
Archive Status
Archive Date (CP) Customer Performance Measurement
Primary Data consisting of Lkensee Identifier
Account Identifier
Fiscal Year - YYYY
Fiscal Year - Period
Performance Measurement - Type Performance Measurement - Group
Performance Measurement - Class
Beginning Value
Beginning Units
Contributions Distributions
Income
Expenses
Management Fees
Commissions Federal Taxes
State Taxes
Local Taxes
Ending Value
Ending Units Ending Net Asset Value
+ Capital Gain Control Fields consisting of
Total Units
Total Cost Basis System Control Fields consisting of
Total Income
Total Expense
Total Receipts
Total Disbursements +
Pending Income consisting of
Total Units
Total Cost Basis
Total Pending Income +
Pending Cap Adj Out consisting of
Cap Adj Out - Units
Cap Adj Out - Cost Basis
Cap Adj In - Units Cap Adj In - Cost Basis
+ Audit Fields consisting of
Add Date Add User Identifier Archive Status Archive Date
SAMPLE DATA FOR LICENSE GENERAL LEDGER DEFINITION TABLE (LL)
Lkensee I Isset Accounting Accounting Identifier c ir Liab Control Number Name
LICNI I A05 Municipal Bonds
LICNI I I A07 Corporate Bonds
LICNI I , AIO Common Stocks
LICNI / I AI2 Mutual Funds
LICNI I 1 AI3 International Currencies
LICNI / \ AI5 Oil Partnerships
LICNI I I A20 Real Estate Partnerships
LICNI I 1 A30 Foreign Equities
LICNI / I A35 Objects of Art
LICNI . 1 A40 Jewelry
LICNI 1 \ A45 Homes
LICN I 1 A50 Automobiles
LICN / 1 A90 Derivatives
LICN2 I [ WIO MSA/RSA -North
LICN2 / 1 W20 MSA/RSA -East
LICN2 i \ W30 MSA/RSA -South
LICN2 1 I W40 MSA/RSA -West
LICN2 I LIO Alabama
LICN2 1 \ L20 Alaska
LICN2 L500 Wyoming Licensee Asset Accounting Accounting Identifier or Liab Control Number Name
LICN2 A SIO Major Market 1
LICN2 A S20 Major Market 2
LICN2 A S30 Major Market 3
LICN2 A SI000 Major Market N
LICN3 A CIO Cash
LICN3 A C20 Other Current Assets
LICN3 A OO Fixed Assets
LICN3 A C40 Depreciation
LICN3 A C50 Intangible Assets
LICNI L05 Uninvested Income
LICNI LIO Invested Income
LICNI LI5 Uninvested Principal
LICNI L20 Invested Principal
LICNI L30 Personal Notes
LICNI L40 Mortgages
LICNI L90 Income
LICNI L60 Short-Term Liabilities
LICNI L65 Deferred Taxes
LICNI L70 Long-Term Liabilities
LICNI L75 Net Worth SAMPLE DATA FOR SYSTEM GENERAL LEDGER TABLE
Lkensee Asset Account Accounting Accounting Master or Liab lype Control Number Name
LICNI A 000 000 Financial Services Assets
LICNI A 100 000 Pension Trust
LICNI A 100 AOI Income Cash Demand
LICNI A 100 A02 Income Cash Overdraft
LICNI A 100 A03 Principal Cash Demand
LICNI A 100 A04 Principal Cash Overdraft
LICNI A 100 A07 Corporate Bonds
LICNI A 100 AIO Common Stocks
LICNI A 100 AI5 Oil Partnerships
LICNI A 100 A20 Real Estate Partnerships
LICNI A 100 A30 Foreign Equities
LICNI A 200 000 Investment Advisory
LICNI A 200 AOI Income Cash Demand
LICNI A 200 A02 Income Cash Overdraft
LICNI A 200 A03 Principal Cash Demand
LICNI A 200 A04 Principal Cash Overdraft
LICNI A 200 A05 Municipal Bonds
LICNI A 200 A07 Munkipal Bonds
LICNI A 200 AIO Common Stocks
LICNI A 200 AI2 Mutual Funds
LICNI A 200 AI3 International Currencies
LICNI A 200 AI5 Oil Partnerships
LICNI A 200 A20 Real Estate Partnerships
LICNI A 100 A30 Foreign Equities
LICNI A 100 A90 Financial Derivatives Lkensee Asset Account Accounting Accounting Master or Liab lyjje Control Number Name
LICNI A 300 000 Estates
LICNI A 300 AOI Income Cash Demand
LICNI A 300 A02 Income Cash Overdraft
LICNI A 300 A03 Principal Cash Demand
LICNI A 300 A04 Principal Cash Overdraft
LICNI A 300 A05 Municipal Bonds
LICNI A 300 A07 Corporate Bonds
LICNI A 300 AIO Common Stocks
LICNI A 300 AI2 Mutual Funds
LICNI A 300 AI5 Oil Partnerships
LICNI A 300 A20 Real Estate Partnerships
LICNI A 300 A30 Foreign Equities
LICNI A 300 A35 Objects of Art
LICNI A 300 A40 Jewelry
LICNI A 300 A40 Homes
LICNI A 300 A50 Automobiles
LICNI A 400 000 Settlement Accounts - Buy
LICNI A 400 AOI Income Cash Demand
LICNI A 400 A02 Income Cash Overdraft
LICNI A 400 A03 Principal Cash Demand
LICNI A 400 A04 Principal Cash Overdraft
LICNI A 400 A05 Corporate Bonds
LICNI A 400 A07 Municipal .Bonds
LICNI A 400 AIO Common Stocks
LICNI A 400 AI5 Oil Partnerships
LICNI A 400 A20 Real Estate Partnerships
LICNI A 400 A30 Foreign Equities Lkensee sset Account Accounting Accounting Master or Liab lyjje Control Number Name
LICNI 500 000 Settlement Accounts - Sell
LICNI 500 AOI Income Cash Demand
LICNI 500 A02 Income Cash Overdraft
LICNI 500 A03 Principal Cash Demand
LICNI 500 A04 Principal Cash Overdraft
LICNI 500 A05 Corporate Bonds
LICNI 500 A07 Municipal Bonds
LICNI 500 AIO Common Stocks
LICNI 500 AI5 Oil Partnerships
LICNI 500 A20 Real Estate Partnerships
LICNI 500 A30 Foreign Equities (AND/OR)
LICN2 1000 000 Communication Assets LICN2 1000 WOO Wireless Communications LICN2 1000 WIO MSA RSA - North LICN2 1000 W20 MSA/RSA - East LICN2 1000 W30 MSA/RSA - South LICN2 1000 W40 MSA/RSA - West LICN2 2000 LOO .Landline Communications LICN2 2000 LIO Alabama LICN2 2000 L20 Alaska
LICN2 A 2000 L500 Wyoming
LICN2 A 3000 SOO Satellite Broadcast
LICN2 A 3000 SI0 Major Market 1 Lkensee Asset Account Accounting Accounting Master or Liab Iχpe Control Number Name
LICN2 A 3000 S20 Major Market 2
LICN2 A 3000 S30 Major Market 3
LICN2 / I 3000 SIOOO Major Market 4 (AND/OR)
LICN3 / \ 0000 000 Corporate Assets
LICN3 / I 9000 000 Domestic Subsidiary
LICN3 1 9000 CIO Cash
LICN3 t \ 9000 C20 Other Current Assets
LICN3 / 1 9000 OO Fixed Assets
LICN3 I 1 9000 C40 Depreciation
LICN3 . \ 9000 GO Intangible Assets
LICN3 I \ 9000 000 Foreign Subsidiary
LICN3 . \ 9000 CIO Cash
LICN3 . , 9000 αo Other Current Assets
LICN3 \ 9000 GO Fixed Assets
LICN3 J s 9000 C40 Deprecation
LICN3 J \ 9000 GO Intangible Assets
LICNI 000 000 Financial Services Liabilities
LICNI L 100 000 Pension Trust
LICNI L 100 LI5 Uninvested Principal
LICNI L 100 L20 Invested Principal
LICNI L 200 000 Investment Advisory
LICNI L 200 L05 Uninvested Income Lkensee sset Account Accounting Accounting Master or Liab lyjje Control Number Naiηe
LICNI 200 LIO invested Income
LICNI 200 LI5 Uninvested Principal
LICNI 200 L20 Invested Principal
LICNI 300 000 Estates
LICNI 300 L05 Uninvested Income
LICNI 300 LIO Invested Income
LICNI 300 LI5 Uninvested Principal
LICNI 300 L20 Invested Principal
LICNI 300 130 Personal Notes
LICNI 300 L40 Mortgages
LICNI 400 000 Settlement - Buy
LICNI 400 LI5 Uninvested Principal
LICNI 400 L20 Invested Principal
LICNI 500 000 Settlement - Buy
LICNI 500 LI5 Uninvested Principal
LICNI 500 L20 invested Principal (AND/OR)
LICN2 1000 000 Communications LICN2 1000 000 Wireless LICN2 1000 L90 Income LICN2 2000 000 Landline LICN2 2000 L90 Income LICN2 3000 000 Satellite Broadcast LICN2 3000 L90 Income (AND/OR)
LICN3 9000 000 Domestic Subsidiary LICN3 9000 L60 Short-Term Liabilities Lkensee Asset Account Accounting Accounting Master or Liab Type Control Number Name
LICN3 L 9000 L65 Deferred Taxes
LICN3 L 9000 L70 Long-Term Liabilities
LICN3 L 9000 L7S Net Worth
LICN3 L 9000 000 Foreign Subsidiary
LICN3 L 9000 L60 Short-Term Liabilities
LICN3 L 9000 L65 Deferred Taxes
LICN3 L 9000 L70 Long-Term Liabilities
LICN3 L 9000 L75 Net Worth
A Standardized Method for Naming the Programs
(< )r SQL Scripts) and Data Elements of Real-time Multiprocessed Automated Applications
The specific invention is a standardized file naming convention to be used in the automatk generation of program code for multiple large-scale transaction processing applications (such as securities trading, telecommunications billing, and work management) on multi-processing computers (using 4, 8, 16, 32 processors) with 100% auditability of user-defined controls. The standardized file naming convention is totally independent of any specific a.) application such as accounts receivable, customer billing, etc., b.) industry such as financial servkes, telecommunications, or work management, c.) hardware manufacturer such as Compaq, Digital, HP, IBM, NCR, Unisys, d.) operating system such as MS-DOS, UNIX, OpenVMS, MVS, etc., e.) relational database management system such as Oracle, Sybase, MS-SQL Server, f.) computer language such as SQL, COBOL, Fortran, PL/1 , etc.
The standard naming convention contains the fewest number of characters in any naming conventions; namely, eleven characters used by MS-DOS. The naming convention of MS-DOS uses eight characters as a file name and three characters as a file extension wherein the user may define a file name using the alphabet and selected other characters. While this flexibility is suitable for home use are a small number of files and users, it is not acceptable for large-scale enterprise-wide applications with large number of files and large number of supporting technicians. Hence, the need for enterprise-wide standards. The standard file naming convention contains six elements that permit the technician to readily identify the functionality of the specific script (or program) without looking at its contents. Using ANSI Standard structured Query Language as an example language, the six elements are: a.) a 2-character mnemonic for the SQL commands such as: Mnemonic ANSI Standard SQL Commands
CT Create Table SF Select From Table
DF Delete From DT Drop Table II Insert Into
SI Select Into
CS Create Sequence
DS Drop Sequence Cl Create Index Dl Drop Index
RV Review RT Retest RS Reset, etc.
b.) a 2-character mnemonk for the application name such as
Mnemonic User Defined Application Name Examples ST Securities Trading
TC Telecommunications Billing WM Work Management, etc
c.) a 2-character mnemonk for the table (or file name) such as Mnemonic User-Defined Table Name Examples AM Account Master Name/Address/Etc. SM Securities Master DC Detail Calls
XB External Billing, etc. III d.) a 1 -character i mnemonk for the table cluster role such as
Mnemonic Standard Table Roles
M Master
1 Input
A Accepts
R Rejects
H History
S Summary
1 Master History
2 Accepts History
0 Output
e.) a I -character mnemonk for the table cluster type such as Mnemonic Standard Table Types M Master
J Journal
T Temporary
1-9 Index Numbers
f.) a 3-character extension is then added to the file name depending upon the type of operating system being used such as MS-DOS, UNIX, OpenVMS, etc. and whether or not the file is a source file for programmer use or a compiled file (or stored procedure) for machine use.
Hence, script name examples are: QXBMDMMiQL - Create Table for the External Billing System, Master Definition Table Cluster, Master Table, and Master Role for SQL use.
DTXBDCOJ.SQL - Drop Table for the External Billing System, Detail Call Cluster, Output Table, and journal Role for SQL use.
Circumstances Leading to the Invention The circumstances leading to the invention of a standard SQL script naming convention are: a.) one programmer will rarely adhere to the same naming conventions over time and unless an acceptable standard is defined each succeeding programmer added to the job will only complicate the issue by bringing their own standards. Hence, software maintenance becomes a matter of knowing whkh programmer wrote which program at what time. b.) without a naming standard any programmer has no idea of what functions the programming is performing without opening the program and examining the program code. This process produces create inefficient maintenance by existing programmers and inefficient training for new programmers. c.) Competitive pressures are mounting for the efficient of software maintenance.
Advantage of the Invention
Because no duplicate script names are permitted the name of each SQL Script should a.) convey to the user the precise use of each SQL Script and b.) permit the storage of all SQL scripts in a one SQL Script Library, or directory.
A standard naming convention also permits the user to determine what scripts may be automatically executed in sequence by use of a SQL command script, whkh is a single SQL script containing a list of SQL scripts to be executed in sequence. Hence, any single SQL scripts contained in the SQL Library can be reused in many different SQL command scripts.
Although any standard naming convention represents a unique entity separate and apart from the other technologies described immediately above, this partkular naming convention is unique in that it embraces all of the logical information necessary to readily identify the role of the script in the total system.
Detailed Description of Invention; std name is a standard naming convention that constructs names for programs (or SQL Scripts), system tables, table clusters, and data elements. The seven basic elements are:
I.) org name Organization 2
2.) com name SQL Command 2 3.) app name Application 2
4.) tab name Table 2
5.) rol name Table Role I
6.) typ name Table Type I
7.) col name Column (or Field) 4 std name defines both "external" names used by the operating system and "internal" names used by the specific program. The "external" resulting names are: I.) clu πame Cluster Name 4
2.) sys iame System Table Name 6
3.) ext name Extension Name 3 4.) sql name SQL Script Name 11 (8 name plus 3 extension) where the SQL Script Names are used by the operating systems.
The "internal" resulting names are: I.) tab iden Table Iden Name 4 2.) col name Column (or Field) Name 4
3.) dat name Data Element Name 8 or more, in increments of 4 where the Data Element Names are used by the programs (or SQL Scripts). External Names used by the operating system in identifying programs (or SQL Scripts) are created by employing the following naming components:
com name SQL Command Mnemonk app name Application Name Mnemonk tab name Table Name Mnemonk rol name Table Role Name Mnemonk tab name Table Type Name Mnemonk ext name Extension Mnemonk
I23456Z8, 2 JO Jl
Examples: CT X B M D M M.S Q L S F X B M D M M.S Q L clu iame tab iden sys_name ext name sql name Internal Names used by the program (or SQL Script) in processing the data elements are created by employing the following naming components: 5 6 Z i tab name Table Name Mnemonk rol name Role Name Mnemonk typ name Type l •lame Mnemonk col name Column Name
Examples: M D M M LNAM ... for last name
M D M M FNAM ... for first name
M D M M MNAM ... for middle name
M D M M ADRI ... addres - 1st line
M D M M ADR2 „. address - 2cd line
M D M M CITY ... c'rty
M D M M STAT ... state
M D M M ZIPC ... zip code dat name
Data Tracing
By addressing both the external names for the operating system and the internal names for a specific program, the naming convention is global in nature. In the event that one data element derives its source of input from another table rather than its own specific input screen, then the data name is extended by placing the table identifier of the table supplying the data between the first four and second four characters of the intended data name. Should the data be derived from another table that also derived its data from another table, then eight characters are placed between the first four characters and the last four characters of the intended data name. In the fashion, the data name points backwards through all of the preceding tables to the original source of data and its input form. This process is called "data tracing", and it provides benefits to programmers in the testing and debugging stages of software development by identifying the original source of data. Thus, "data tracing" provides the programmer with thorough documentation of the data flow throughout an entire system.
Standard naming conventions do not apply to certain language extensions such as the script footings that, for example, specify the size of the table to be created in a "Create Table" script
The foregoing discussion of the invention has been presented for purposes of illustration and description. Further, comments and description is not intended to limit the invention to the form disclosed herein. Consequently, variation and modification commensurate with the above teachings, and within the skill and knowledge of the relevant art, are within the scope of the present invention. The embodiment described herein above is further intended to explain the best mode presently known of practicing the invention and to enable others skilled in the art to utilize the invention as such, or in other embodiments, and with the various modifications required by their partkular application or uses of the invention. It is intended that the appended claims be construed to include alternative embodiments to the extent permitted by the prior art.

Claims

What is claimed is:
1. A system for processing accounting operations that facilitates auditability for each of one or more business enterprises, comprising: means for generating financial data records, wherein each said data record provides access to one or more status data fields for values indicative of when one of : a creation, a modification and deletion of said data record has occurred; a plurality of master collections for a first of the enterprises, said master collections having said data records, wherein for each said master collection, said data records in said master collection have an identical data format; a processing means for modifying said data records of one or more of said master collections according to each operation of a series of input accounting operations, wherein said processing means modifies said one or more of said status fields; a history data storage area for each of said master collections, for storing history data for the master collection, wherein when performance of one of said accounting operations generates a modified version of a corresponding previous version of one of said data records of said master collection, a corresponding history record is provided to said history data storage area, said corresponding history record having information indicative of said previous version of said data record prior to its modification; a reversal means for reversing a performance of at least a first of said accounting operations, wherein for each of the one or more of said modified data records provided by said first accounting operation, said modified data record is replaced with said corresponding previous version using said corresponding history record, wherein said corresponding history record is determined using values of said status fields of said modified data record.
2. A system as claimed in Claim I , wherein said accounting operations include a financial transaction wherein one of: all processing for the financial transaction must be accepted, and no processing for the financial transaction must be accepted.
3. A system as claimed in Claim I, wherein said accounting operations include any operation for changing one of: an identifier and a location, wherein the changing is for one of: the first enterprise, an account held by the first enterprise, an entity for whkh the first enterprise is capable of being held accountable.
4. A system as claimed in Claim I, wherein said plurality of master collections includes a corresponding master collection for each of some of the following data record types: (a) a description identifying the first enterprise;
(b) a description of account types desired by the first enterprise;
(c) default account subtypes; (d) a description identifying categories for balances of a general ledger for the first enterprise;
(e) a description identifying financial categories to whkh financial postings can occur in accounts with the first enterprise;
(f) a description of groupings of financial enterprises traded in the accounts for the first enterprise; (g) a description of one or more performance measurements by whkh a performance of financial enterprises for whkh the first enterprise is accountable are capable of being measured;
(h) a description of objectives for accounts held by the first enterprise;
(i) a description of jurisdictions for accounts held by the first enterprise;
(j) a description of legal capacities that the first enterprise can hold with respect to its accounts; (k) a description of one or more account representatives for the first enterprise;
(I) a description of accounts for clients of the first enterprise, including at least one balance;
( ) a description identifying transactions capable of being performed on accounts held by the first enterprise;
(n) a description identifying characteristics of enterprises traded in accounts held by the first enterprise; (o) a description, for each of one or more financial enterprises capable of being traded in accounts held by the first enterprise, of an identity of each financial transaction that can be applied to the financial entity;
(p) a description, for each entity traded in accounts held by the first enterprise, identifying one or more classifications of the entity, said classifications indicative of how the first enterprise classifies the entity for account purposes; (q) a description of identification for income expenses receipts and disbursements generated by financial accounting classifications used by the first enterprise;
(r) a description for identifications for collections of enterprises held by the first enterprise for accounts of the first enterprise, wherein each collection is an aggregation of the enterprises for a plurality of the accounts.
5. A system as claimed in Claim I , wherein said means for generating includes means for creating at least some of the following data fields as status data fields:
(a) at least one of a date and time the record was inserted in the master collection;
(b) a sequence number indicating an order of when the record was inserted into the master collection;
(c) an identification of a user requesting that the record be inserted into the master collection;
(d) at least one of: a date and a time the record was updated in the master collection; (e) a sequence number indicating an order of when the record was updated in the master collection;
(f) an identification of a user requesting an update of the record in the master collection;
(g) at least one of: a date and time when the record was deleted from the master collection; (h) a sequence number indicating an order of when the record was deleted from the master collection;
(i) an identification of a user requesting a deletion of the record from the master collection;
(j) a number indicating a number of modifications to the row since it was inserted.
6. A system as claimed in Claim I further including, for at least some of said master collections, an accept data storage area for storing, for each successful performance of one of the accounting operations, an accept record having information indicative of successful performance of the accounting operation.
7. A system as claimed in Claim I further including, for at least some of said master collections, a reject data storage area for storing, for each unsuccessful performance of one of the accounting operations, a reject record having information indicative of unsuccessful performance of the accounting operation.
8. A system for processing accounting operations that facilitates auditability for each of one or more enterprises, comprising: means for generating financial data records wherein each said data record provides access to one or more status data fields for values indicative of when one of : a creation, a modification and deletion of said data record has occurred; a plurality of master collections for a first of the enterprises, said master collections having said data records, wherein for each said master collection, said data records in said master collection have a same data format; a processing means for modifying said data records of one or more of said master collections according to each operation of a series of input accounting operations, wherein said processing means modifies said one or more status fields; for each of said master collections, a history data storage area for accumulating data for changes to the master collection, wherein when performance of said series of input accounting operations generates modified versions of corresponding previous versions of the data records of said master collection, corresponding history records are added to said history data storage area, said corresponding history records having information indicative of said previous versions of each data record of said master collection so that an audit tracing of changes by versions of the data records of said master collection is capable of being performed using said one or more status fields.
9. A system as claimed in Claim 8, wherein for a plurality of the descriptions (a) through (r) below, there is one of said master collections whose data records include data for said description: (a) a description identifying the first enterprise;
(b) a description of account types desired by the first enterprise;
(c) default account subtypes; (d) a description identifying categories for balances of a general ledger for the first enterprise;
(e) a description identifying financial categories to whkh financial postings can occur in accounts with the first enterprise;
(f) a description of groupings of financial enterprises traded in the accounts for the first enterprise; (g) a description of one or more performance measurements by whkh a performance of financial enterprises for which the first enterprise is accountable are capable of being measured;
(h) a description of objectives for accounts held by the first enterprise;
(i) a description of jurisdictions for accounts held by the first enterprise;
(j) a description of legal capacities that the first enterprise can hold with respect to its accounts; (k) a description of one or more account representatives for the first enterprise;
(I) a description of accounts for clients of the first enterprise, including at least one balance;
( ) a description identifying transactions capable of being performed on accounts held by the first enterprise;
(n) a description identifying characteristics of enterprises traded in accounts held by the first enterprise; (o) a description, for each of one or more financial enterprises capable of being traded in accounts held by the first enterprise, of an identity of each financial transaction that can be applied to the financial entity;
(p) a description, for each entity traded in accounts held by the first enterprise, identifying one or more classifications of the entity, said classifications indicative of how the first enterprise classifies the entity for account purposes; (q) a description of identification for income expenses receipts and disbursements generated by financial accounting classifications used by the first enterprise;
(r) a description for identifications for collections of enterprises held by the first enterprise for accounts of the first enterprise, wherein each collection is an aggregation of the enterprises for a plurality of the accounts.
10. A system as claimed in Claim 8, wherein said means for generating includes means for creating at least some of the following data fields as status data fields:
(a) at least one of a date and time the record was inserted in the master collection;
(b) a sequence number indicating an order of when the record was inserted into the master collection;
(c) an identification of a user requesting that the record be inserted into the master collection;
(d) at least one of: a date and a time the record was updated in the master collection; (e) a sequence number indicating an order of when the record was updated in the master collection;
(f) an identification of a user requesting an update of the record in the master collection;
(g) at least one of: a date and time when the record was deleted from the master collection; (h) a sequence number indicating an order of when the record was deleted from the master collection;
(i) an identification of a user requesting a deletion of the record from the master collection;
(j) a number indicating a number of modifications to the row since it was inserted;
(k) a value indicative of whether the record is archived on a read only storage devke; (I) a date indicative of when archiving of the record to the read only storage devke is performed.
11. A system as claimed in Claim 8, wherein said history data storage area includes a first and second data storage areas, wherein said history records are initially accumulated in said first data storage area and periodically transferred to said second storage area, wherein at least some of said history records remain in said first storage area for greater than approximately I day prior to being transferred to said second storage area where said history records cannot be modified.
12. A system for processing financial transactions with auditability for each of one or more business enterprises comprising: a first collection of account records for clients having a corresponding account at a first of the business enterprises, wherein for each said account records there is associated information for determining:
(Al) a value indicative of a number of financial items in an account for the account record, and
(A2) one or more amounts related to the financial items in the corresponding account for the account record; (A3) one or more values indicative of an amount of cash held in the corresponding account; a second collection of financial item records representing financial items for whkh the first enterprise is accountable, each said item record having data for identifying a corresponding one of the financial hems, and for each said hem record there is associated information for determining:
(B I ) a value indicative of a number of units of the corresponding financial item, and (B2) a value indicative of an amount related to the units of the corresponding financial item; a third collection of one or more general ledger financial records, wherein each of said general ledger records provides a value indicative of cash held by the first enterprise; means for balancing accounts of the first financial institution, including (Cl) and (Q) below:
(Cl) means for comparing: a sum of the values of (Al) for said account records, and a sum of the values of (Bl) for said item records;
(C2) means for comparing: (a) a sum of the values of (A2) for said account records with a sum of the values of (B2) for said item records; and (b) a sum of at least one value of the one or more values of (A3) for said account records with a total of the values indicative of cash of said one or more general ledger financial records.
13. A method for processing financial transactions, comprising: receiving one or more financial transaction data records, wherein for each said transaction data record one of: all processing for the transaction data record must be accepted, and no processing for the transaction data record must be accepted; identifying, for at least a first of said financial transaction data records, at least first and second subtransactions, each of said first and second subtransactions being for accessing a corresponding data store and performing a predetermined operation; retrieving said first and second subtransactions from a storage area having encodings of said subtransactions; performing, after said step of retrieving, said first and second subtransactions, wherein said first subtransaction is capable of being performed independently of a performance of said second subtransaction, and, said second subtransaction is capable of being performed independently of saki first subtransaction.
14. A method as claimed in Claim 13, wherein said first financial transaction data record includes data related to one of: a cash transaction, an asset related transaction, a liability related transaction, a transaction related to a disbursement of funds, and a reversal of a previously processed one of said financial transaction data records.
15. A method as claimed in Claim 13, wherein said cash transaction includes data for one of a credit and debit.
16. A method as claimed in Claim 13, wherein said step of receiving includes receiving a second one of saki financial transaction data records, wherein said first financial transaction data record is supplied by a business enterprise different from a business enterprise supplying said second financial transaction data record.
17. A method as claimed in Claim 13, wherein said step of identifying includes selecting a transaction processing descriptor having data for describing at least one of saki first subtransaction and saki second subtransaction, wherein said descriptor is substantially text
18. A method as claimed in Claim 17, wherein for said data describing said first subtransaction, saki first subtransaction consists essentially of an identification of a single operation and a plurality of operands.
19. A method as claimed in Claim 18, wherein said operand represents one of: an addition and a subtraction operation.
20. A method as claimed in Claim 13, wherein for said first and second subtransactions, said corresponding data stores are different
21. A method as claimed in Claim 13, wherein each of said corresponding data stores includes information identifying one of: the first business enterprise, an account for a client of the first business enterprise, and a financial instrument for whkh the first business enterprise is capable of being held accountable.
22. A method as claimed in Claim 13, wherein during a processing of said first financial transaction data record, said step of performing includes determining an order to commence performing each of said first and second subtransactions.
23. A method as claimed in Claim 13, wherein step of performing includes overlapping, in saki step of performing, the performing of said first and second subtransactions.
24. A method as claimed in Claim 13, wherein said step of performing includes performing said first subtransaction on a first processor and performing said second subtransaction on a different second processor.
25. A single system for simultaneously processing one or more totally disparate and user-definable automated financial applications on computing configurations containing one or more simultaneous processors with the ability to prove the processing accuracy of all transaction changes and the existence of all data records on a .periodic basis: a. for non-financial transactions A single system for processing all original non-financial data from original entry to permanent archive without ever overwriting any of the original data: Process Model I with 12 fields on all Reference Tables
Add Date
Add Sequence Number Add User Authorization
Change Date
Change Sequence Number Change User Authorization Delete Date Delete Sequence Number
Delete User Authorization Number of Modifications Archive Status Archive Date
1. Processing Methodology - add, Change, Delete
2. Reverse Processing Methodology - None Required b. for financial transactions
A single system for processing all original financial data from original entry to permanent archive without ever overwriting any of the original data:
Process Model 2 with 12 fields on all Reference Tables
Add Date Add Sequence Number
Add User Authorization
Trade Date
Archive Status
Archive Date Reversed by Date
Reversed by Sequence Number
Reversed by Lot Number
Reversing Date
Reversing Sequence Number Reversing Lot
1. For specific units, debits, and credit transactions, a single method for utilizing data rather than actual program code to define the unit, debit, and credit transaction processing content of all applications to be processed by the system
2. A single method for reversing the above transaction Process Model 3
1. For specific buy (or deposit) and sell (or withdraw) transactions, a single method of utilizing data rather than actual program code to define the buy (or deposit) and sell (or withdraw) transaction processing content of all applications to be processed by the system
2. A single method for reversing the above transaction c. for file updates:
A single method of performing the bask file maintenance functions of add, change, and delete to any file definition Process Model 4
1. Processing Methodology - Add, Change, Delete
2. Reverse Processing Methodology - None Required.
26. For the individual transaction, the processing organization, and the total system, a single method of proving the integrity of the entire database by a. creating a Transaction Journal and hashed totals for at least the three different controls of (I) cash, (2) units, and (3) cost basis in at least three other files, deemed system control files; b. creating a detailed records of Financial Instruments and hashed totals for at least the three different controls of (I) cash, (2) units, and (3) cost basis in at least three other files, also deemed system control files; c. performing any query that would sum all of the (I) cash, (2) units, and (3) cost basis data in any file and comparing it to the summations of similar data in any one or more, if not all, of the other system control files.
PCT/US1998/023026 1997-10-29 1998-10-29 Multi-processing financial transaction processing system WO1999022329A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU11263/99A AU1126399A (en) 1997-10-29 1998-10-29 Multi-processing financial transaction processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6371497P 1997-10-29 1997-10-29
US60/063,714 1997-10-29

Publications (1)

Publication Number Publication Date
WO1999022329A1 true WO1999022329A1 (en) 1999-05-06

Family

ID=22051013

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1998/023026 WO1999022329A1 (en) 1997-10-29 1998-10-29 Multi-processing financial transaction processing system

Country Status (3)

Country Link
US (4) US6442533B1 (en)
AU (1) AU1126399A (en)
WO (1) WO1999022329A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1093072A1 (en) * 1999-10-16 2001-04-18 Rolf-Georg Brockmans Method for retrievable archiving of individual items of a cumulative transaction
US6442533B1 (en) * 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system

Families Citing this family (257)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999937B1 (en) * 1991-12-23 2006-02-14 Oracle International Corporation System for predefining via an activity scheduler first types of entered data that are processed by an activity processor in real time and second types of entered data that are queued for processing at another time
GB2297180B (en) 1993-09-27 1998-05-20 Oracle Corp Method and apparatus for parallel processing in a database system
US20080172314A1 (en) 1996-11-12 2008-07-17 Hahn-Carlson Dean W Financial institution-based transaction processing system and approach
US8392285B2 (en) 1996-11-12 2013-03-05 Syncada Llc Multi-supplier transaction and payment programmed processing approach with at least one supplier
US20070055582A1 (en) * 1996-11-12 2007-03-08 Hahn-Carlson Dean W Transaction processing with core and distributor processor implementations
US8396811B1 (en) 1999-02-26 2013-03-12 Syncada Llc Validation approach for auditing a vendor-based transaction
JP4226171B2 (en) * 1998-11-17 2009-02-18 富士通株式会社 Accounting system for processing transaction data, method thereof, and storage medium storing program therefor
MXPA01012153A (en) * 1999-05-24 2003-06-30 Rolus Borgward Glenn Data processing device.
US6813611B1 (en) * 1999-06-08 2004-11-02 International Business Machines Corporation Controlling, configuring, storing, monitoring and maintaining accounting of bookkeeping information employing trees with nodes having embedded information
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6952741B1 (en) 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US7165044B1 (en) * 1999-10-01 2007-01-16 Summa Lp Applications Investment portfolio tracking system and method
US20080133417A1 (en) * 1999-10-18 2008-06-05 Emergent Music Llc System to determine quality through reselling of items
US7571171B1 (en) * 1999-10-29 2009-08-04 Computer Sciences Corporation Smart trigger for use in processing business transactions
US7363264B1 (en) 1999-10-29 2008-04-22 Computer Sciences Corporation Processing business transactions using dynamic database packageset switching
US7693844B1 (en) 1999-10-29 2010-04-06 Computer Sciences Corporation Configuring processing relationships among entities of an organization
US6925468B1 (en) 1999-10-29 2005-08-02 Computer Sciences Corporation Configuring systems for generating business transaction reports using processing relationships among entities of an organization
US7546304B1 (en) 1999-10-29 2009-06-09 Computer Sciences Corporation Configuring keys for use in processing business data
US7353196B1 (en) 1999-10-29 2008-04-01 Computer Sciences Corporation Configuring dynamic database packageset switching for use in processing business transactions
US7526487B1 (en) 1999-10-29 2009-04-28 Computer Sciences Corporation Business transaction processing systems and methods
US7885868B2 (en) * 1999-12-20 2011-02-08 Jacques Nault Reading, organizing and manipulating accounting data
US6753884B1 (en) * 2000-01-31 2004-06-22 Journyx, Inc. Method and apparatus for wireless web time and expense entry via time keeping and expense tracking server access
US6751650B1 (en) * 2000-01-31 2004-06-15 Journyx, Inc. Method and apparatus for monitoring contractor performance
AU2001243473A1 (en) * 2000-03-07 2001-09-17 American Express Travel Related Services Company, Inc. System for facilitating a transaction
US7139743B2 (en) 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US8095508B2 (en) 2000-04-07 2012-01-10 Washington University Intelligent data storage and processing using FPGA devices
DE10017710A1 (en) * 2000-04-10 2001-10-18 Johannes Schellmann Process for collecting and processing business transaction data
AU2001259992B2 (en) 2000-05-17 2006-02-16 Tvc International Inc. Continuously updated data processing system and method for measuring and reporting on value creation performance
US7487152B1 (en) 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US6721742B1 (en) * 2000-05-31 2004-04-13 International Business Machines Corporation Method, system and program products for modifying globally stored tables of a client-server environment
US7043457B1 (en) 2000-06-28 2006-05-09 Probuild, Inc. System and method for managing and evaluating network commodities purchasing
US7693761B1 (en) * 2000-06-29 2010-04-06 Teradata Us, Inc. Account selection for financial processing in a relational database management system
US7418415B1 (en) * 2001-12-10 2008-08-26 Teredata Us, Inc. Object-oriented representation of a generic profitability rule for financial processing in a relational database management system
US6959287B2 (en) * 2000-07-18 2005-10-25 Delta Air Lines, Inc. Method and system for conducting a target audit in a high volume transaction environment
US7418414B2 (en) * 2000-12-29 2008-08-26 Eprosper System and method to organize and manage corporate capitalization and securities
US20020133448A1 (en) * 2001-01-17 2002-09-19 Mcgarry Glenn System for capturing trade information
US6842706B1 (en) * 2001-01-17 2005-01-11 Smart Disaster Response Technologies, Inc. Methods, apparatus, media, and signals for managing utility usage
US6986129B2 (en) * 2001-05-16 2006-01-10 Sun Microsystems, Inc. System and method for java preprocessor
US7454751B2 (en) * 2001-06-07 2008-11-18 Intel Corporation Fault-tolerant system and methods with trusted message acknowledgement
US7412520B2 (en) * 2001-06-07 2008-08-12 Intel Corporation Systems and methods for recoverable workflow
US7174302B2 (en) 2001-06-11 2007-02-06 Evolution Benefits, Inc. System and method for processing flexible spending account transactions
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US20030033225A1 (en) * 2001-08-09 2003-02-13 Meldahl Robert Allen Multi-dimensional accounting engine
US7716330B2 (en) * 2001-10-19 2010-05-11 Global Velocity, Inc. System and method for controlling transmission of data packets over an information network
US7831488B2 (en) * 2001-10-24 2010-11-09 Capital Confirmation, Inc. Systems, methods and computer readable medium providing automated third-party confirmations
JP2003150594A (en) * 2001-11-12 2003-05-23 Hitachi Ltd Data warehouse system
US20030154158A1 (en) * 2001-11-14 2003-08-14 Martyn Peter J. Multi-mechanism order processing
US6938241B1 (en) * 2001-12-10 2005-08-30 Lsi Logic Corporation Compiler independent bit-field macros
US20030172367A1 (en) * 2002-01-24 2003-09-11 Robert Kannenberg Method of modifying software via a network
US7631299B2 (en) * 2002-01-24 2009-12-08 Computer Sciences Corporation System for modifying software using reusable software components
US20030158759A1 (en) * 2002-01-24 2003-08-21 Robert Kannenberg Method of modifying software by defining business rules
US7240028B1 (en) * 2002-03-15 2007-07-03 Microsoft Corporation Automated financial register reconciliation in a combined user interface
AU2003225517A1 (en) * 2002-04-09 2003-10-27 Matan Arazi Computerized trading system and method useful therefor
WO2005026925A2 (en) 2002-05-21 2005-03-24 Washington University Intelligent data storage and processing using fpga devices
US7933827B2 (en) * 2002-06-05 2011-04-26 The Nasdaq Omx Group, Inc. Multi-parallel architecture and a method of using the same
US20030225655A1 (en) * 2002-06-05 2003-12-04 Hughes John T. Market participant interest dissemination process and method
US8386362B2 (en) * 2002-06-05 2013-02-26 The Nasdaq Omx Group, Inc. Information distribution process and method
US8090640B2 (en) * 2002-06-05 2012-01-03 The Nasdaq Omx Group, Inc. Order delivery in a securities market
US9311673B2 (en) 2002-06-05 2016-04-12 Nasdaq, Inc. Security transaction matching
US8244622B2 (en) * 2002-06-05 2012-08-14 The Nasdaq Omx Group, Inc. Order matching process and method
US7974907B2 (en) * 2002-06-05 2011-07-05 The Nasdaq Omx Group, Inc. Configurable security processor identifier table
US7921051B2 (en) * 2002-06-05 2011-04-05 The Nasdaq Omx Group, Inc. Security-based order processing technique
US7747506B2 (en) * 2002-06-05 2010-06-29 The Nasdaq Omx Group, Inc. Recipient status indicator system and method
US7895112B2 (en) * 2002-06-05 2011-02-22 The Nasdaq Omx Group, Inc. Order book process and method
GB0215808D0 (en) * 2002-07-09 2002-08-14 Ibm A system and method for managing transactions in a messaging system
US7962399B2 (en) * 2002-07-25 2011-06-14 The Nasdaq Omx Group, Inc. Refreshing displayed quotes for automated market system
US7711844B2 (en) 2002-08-15 2010-05-04 Washington University Of St. Louis TCP-splitter: reliable packet monitoring methods and apparatus for high speed networks
GB2409079A (en) 2002-09-03 2005-06-15 Ebs Group Ltd System and method for deriving data
US20040133583A1 (en) * 2002-11-20 2004-07-08 Tingey Kenneth B. system architecture and method for entering and accessing entity data in events accounting
US7293011B1 (en) 2002-11-27 2007-11-06 Oracle International Corporation TQ distribution that increases parallism by distributing one slave to a particular data block
US7188113B1 (en) * 2002-11-27 2007-03-06 Oracle International Corporation Reducing contention by slaves for free lists when modifying data in a table partition
US7149752B2 (en) 2002-12-03 2006-12-12 Jp Morgan Chase Bank Method for simplifying databinding in application programs
US7085759B2 (en) 2002-12-06 2006-08-01 Jpmorgan Chase Bank System and method for communicating data to a process
US20040128227A1 (en) * 2002-12-30 2004-07-01 Fannie Mae Cash flow system and method
US20040128235A1 (en) 2002-12-30 2004-07-01 Fannie Mae Cash flow aggregation system and method
US20040128228A1 (en) * 2002-12-30 2004-07-01 Fannie Mae Servicer compensation system and method
AU2003291570A1 (en) * 2002-12-30 2004-07-29 Fannie Mae System and method for creating financial assets
US8032439B2 (en) * 2003-01-07 2011-10-04 Jpmorgan Chase Bank, N.A. System and method for process scheduling
US8375008B1 (en) * 2003-01-17 2013-02-12 Robert Gomes Method and system for enterprise-wide retention of digital or electronic data
US8065277B1 (en) 2003-01-17 2011-11-22 Daniel John Gardner System and method for a data extraction and backup database
US8943024B1 (en) 2003-01-17 2015-01-27 Daniel John Gardner System and method for data de-duplication
US8630984B1 (en) 2003-01-17 2014-01-14 Renew Data Corp. System and method for data extraction from email files
US7505931B2 (en) * 2003-03-03 2009-03-17 Standard Chartered (Ct) Plc Method and system for monitoring transactions
US7379998B2 (en) * 2003-03-31 2008-05-27 Jp Morgan Chase Bank System and method for multi-platform queue queries
CA2521827A1 (en) * 2003-04-11 2004-10-28 Prgrs, Inc. Systems and methods for claim processing in a recovery audit
CA2522764C (en) 2003-04-23 2014-05-27 Prgrs, Inc. Systems and methods for recovery audit scope determination
US7366722B2 (en) 2003-05-15 2008-04-29 Jp Morgan Chase Bank System and method for specifying application services and distributing them across multiple processors using XML
US7509641B2 (en) 2003-05-16 2009-03-24 Jp Morgan Chase Bank Job processing framework
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
US7673307B2 (en) * 2003-05-29 2010-03-02 International Business Machines Corporation Managing transactions in a messaging system
US10621521B1 (en) * 2003-07-22 2020-04-14 Versata Development Group, Inc. Efficient reprocessing of compensation calculations
US20050034042A1 (en) * 2003-08-07 2005-02-10 Process Direction, Llc System and method for processing and identifying errors in data
US20050038721A1 (en) * 2003-08-11 2005-02-17 Websourceit, Llc Integrated utility accounting, materials management, work management and regulatory reporting software
US8655755B2 (en) 2003-10-22 2014-02-18 Scottrade, Inc. System and method for the automated brokerage of financial instruments
US7188339B2 (en) * 2003-10-24 2007-03-06 Hewlett-Packard Development Company, L.P. ACPI preprocessor
US7454701B2 (en) * 2003-10-30 2008-11-18 Sap Ag Systems and methods for implementing formulas
US20050097014A1 (en) * 2003-10-31 2005-05-05 Ebert Peter S. Self-adjusting context-aware expense system
US20050108063A1 (en) * 2003-11-05 2005-05-19 Madill Robert P.Jr. Systems and methods for assessing the potential for fraud in business transactions
US20050131781A1 (en) * 2003-12-10 2005-06-16 Ford Motor Company System and method for auditing
US20050131793A1 (en) * 2003-12-16 2005-06-16 Curtis Hill Automated tax cost basis
US20050177471A1 (en) * 2003-12-24 2005-08-11 Crossett Timothy J. Joint venture accounting method and system
US7599865B2 (en) * 2003-12-30 2009-10-06 Sap Ag Budgetary ledger
US20050144174A1 (en) * 2003-12-31 2005-06-30 Leonid Pesenson Framework for providing remote processing of a graphical user interface
DE202005002890U1 (en) * 2004-03-22 2005-07-14 Sap Ag Systems for managing and reporting financial information
US8478742B2 (en) * 2004-04-14 2013-07-02 Oracle Corporation Using estimated cost to refresh a set of materialized views (MVS)
GB2429371B (en) * 2004-04-26 2008-03-26 J P Morgan Chase Bank System and method for routing messages
US20050262147A1 (en) * 2004-05-10 2005-11-24 Lee Peter S Insurance program for portable media players
US20050256797A1 (en) * 2004-05-13 2005-11-17 Scottrade, Inc. Method and apparatus for user-interactive financial instrument trading
US7644050B2 (en) * 2004-12-02 2010-01-05 International Business Machines Corporation Method and apparatus for annotation-based behavior extensions
US7409351B2 (en) * 2004-05-21 2008-08-05 Sap Ag Method and system for splitting an order in a flexible order transaction system
US20050267823A1 (en) * 2004-05-28 2005-12-01 Bernd Hartmann Balance processor for automated accounting system employing merging and consistency checks
US20050273407A1 (en) * 2004-06-08 2005-12-08 Black Richard K Methods and apparatus for managing a plurality of investments
US7822653B2 (en) * 2004-06-09 2010-10-26 Syncada Llc Transaction accounting payment and classification system and approach
CN101031905A (en) 2004-06-09 2007-09-05 美国银行和许可股份有限公司 Distributor-based transaction processing arrangement and approach
WO2005124638A2 (en) 2004-06-09 2005-12-29 U.S. Bancorp Licensing, Inc. Order-resource fulfillment and management system and approach
US7574386B2 (en) 2004-06-09 2009-08-11 U.S. Bank National Association Transaction accounting auditing approach and system therefor
US8762238B2 (en) 2004-06-09 2014-06-24 Syncada Llc Recurring transaction processing system and approach
US20050283471A1 (en) * 2004-06-22 2005-12-22 Oracle International Corporation Multi-tier query processing
US7702627B2 (en) * 2004-06-22 2010-04-20 Oracle International Corporation Efficient interaction among cost-based transformations
US7392471B1 (en) 2004-07-28 2008-06-24 Jp Morgan Chase Bank System and method for comparing extensible markup language (XML) documents
US7814042B2 (en) * 2004-08-17 2010-10-12 Oracle International Corporation Selecting candidate queries
US8429044B2 (en) * 2004-09-09 2013-04-23 Sap Ag Lifting partner groups for allocation of lifted product consistent with production sharing contracts
US20060059021A1 (en) * 2004-09-15 2006-03-16 Jim Yulman Independent adjuster advisor
US9226975B1 (en) * 2004-09-17 2016-01-05 Deem, Inc. Apparatus and method to provide community pricing
US8238350B2 (en) 2004-10-29 2012-08-07 Emc Corporation Message batching with checkpoints systems and methods
US8051425B2 (en) 2004-10-29 2011-11-01 Emc Corporation Distributed system with asynchronous execution systems and methods
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
GB0424442D0 (en) * 2004-11-05 2004-12-08 Ibm A method, apparatus, computer program and computer program product for managing the durability of a plurality of transactions
US7613720B2 (en) * 2004-12-07 2009-11-03 International Business Machines Corporation Selectively removing entities from a user interface displaying network entities
US8069151B1 (en) 2004-12-08 2011-11-29 Chris Crafford System and method for detecting incongruous or incorrect media in a data recovery process
US20070164098A1 (en) * 2004-12-28 2007-07-19 ATM Khalid Staging of Financial Accounts: The Ultimate Charge Account and Ultimate Credit/ATM Card
US9161994B1 (en) 2005-03-29 2015-10-20 Deem, Inc. Cost model analysis and breakdown for cost buildup
US8527468B1 (en) 2005-02-08 2013-09-03 Renew Data Corp. System and method for management of retention periods for content in a computing system
US7496520B1 (en) 2005-07-22 2009-02-24 Rearden Commerce, Inc. System and method for optimization of group shipments to reduce shipping costs
US8099340B2 (en) * 2005-09-02 2012-01-17 Honda Motor Co., Ltd. Financial transaction controls using sending and receiving control data
US8095437B2 (en) * 2005-09-02 2012-01-10 Honda Motor Co., Ltd. Detecting missing files in financial transactions by applying business rules
US8540140B2 (en) * 2005-09-02 2013-09-24 Honda Motor Co., Ltd. Automated handling of exceptions in financial transaction records
US20070055708A1 (en) * 2005-09-07 2007-03-08 Ncr Corporation Processing formulae in rules for profitability calculations for financial processing in a relational database management system
US7877379B2 (en) * 2005-09-30 2011-01-25 Oracle International Corporation Delaying evaluation of expensive expressions in a query
US7664211B2 (en) * 2005-10-07 2010-02-16 Starkey Laboratories, Inc. Automatic gain control with out of band blocking signal compensation
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US7551572B2 (en) 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
US7917474B2 (en) 2005-10-21 2011-03-29 Isilon Systems, Inc. Systems and methods for accessing and updating distributed data
US7797283B2 (en) * 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US7499933B1 (en) 2005-11-12 2009-03-03 Jpmorgan Chase Bank, N.A. System and method for managing enterprise application configuration
US7654445B2 (en) * 2005-12-14 2010-02-02 Christopher Michael John System and method for revenue and expense realignment
US8510183B2 (en) * 2005-12-30 2013-08-13 Sap Ag System and method for distributed and integrated asset management
US7848261B2 (en) 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US7809713B2 (en) * 2006-03-15 2010-10-05 Oracle International Corporation Efficient search space analysis for join factorization
US7644062B2 (en) * 2006-03-15 2010-01-05 Oracle International Corporation Join factorization of union/union all queries
US7945562B2 (en) * 2006-03-15 2011-05-17 Oracle International Corporation Join predicate push-down optimizations
US7885891B1 (en) 2006-03-22 2011-02-08 Fannie Mae Portal tool and method for securitizing excess servicing fees
US8103575B1 (en) * 2006-03-27 2012-01-24 Icap Services North America Llc System and method for use in auditing financial transactions
US20070233603A1 (en) * 2006-03-30 2007-10-04 Schmidgall Matthew M Flexible routing of electronic-based transactions
US7756898B2 (en) 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
EP1850245A1 (en) * 2006-04-28 2007-10-31 Sap Ag Systems and methods for providing a generic audit trail service
US20070271271A1 (en) * 2006-05-18 2007-11-22 Chalasani Nanchariah R Method, system, and program product for conducting a cross-organizational transaction audit
US8150827B2 (en) * 2006-06-07 2012-04-03 Renew Data Corp. Methods for enhancing efficiency and cost effectiveness of first pass review of documents
US20080189273A1 (en) * 2006-06-07 2008-08-07 Digital Mandate, Llc System and method for utilizing advanced search and highlighting techniques for isolating subsets of relevant content data
US20100198802A1 (en) * 2006-06-07 2010-08-05 Renew Data Corp. System and method for optimizing search objects submitted to a data resource
US7610172B2 (en) * 2006-06-16 2009-10-27 Jpmorgan Chase Bank, N.A. Method and system for monitoring non-occurring events
US7840482B2 (en) 2006-06-19 2010-11-23 Exegy Incorporated Method and system for high speed options pricing
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
EP2036003B1 (en) * 2006-06-30 2017-05-03 Leica Biosystems Imaging, Inc. Method for storing and retrieving large images via dicom
US8126776B2 (en) 2006-06-30 2012-02-28 Rearden Commerce, Inc. Method and systems for personal restaurant assistant
US7877373B2 (en) * 2006-06-30 2011-01-25 Oracle International Corporation Executing alternative plans for a SQL statement
US7680836B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7680842B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7822932B2 (en) 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7590652B2 (en) * 2006-08-18 2009-09-15 Isilon Systems, Inc. Systems and methods of reverse lookup
US7899800B2 (en) 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US8712884B2 (en) 2006-10-06 2014-04-29 Syncada Llc Transaction finance processing system and approach
US7966213B2 (en) 2006-10-16 2011-06-21 Rearden Commerce, Inc. System and method for automatic review of travel changes and improved suggestions and rules set
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US8326819B2 (en) 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US20080120248A1 (en) * 2006-11-16 2008-05-22 Claus Peter Roehr Currency transaction process
AU2007335921B2 (en) * 2006-12-18 2012-08-16 Visa Cape Town (Pty) Ltd Transaction system and method
US20080155191A1 (en) * 2006-12-21 2008-06-26 Anderson Robert J Systems and methods for providing heterogeneous storage systems
US8286029B2 (en) 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
US7593938B2 (en) 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
US7509448B2 (en) 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks
US20080243510A1 (en) * 2007-03-28 2008-10-02 Smith Lawrence C Overlapping screen reading of non-sequential text
US7900015B2 (en) 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
US8966080B2 (en) 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US7779048B2 (en) 2007-04-13 2010-08-17 Isilon Systems, Inc. Systems and methods of providing possible value ranges
WO2008143855A2 (en) * 2007-05-14 2008-11-27 Dataupia, Inc. Network-attached storage devices
US9413686B2 (en) * 2007-06-04 2016-08-09 Qualcomm Incorporated Establishing a unique end-to-end management key
US7966289B2 (en) 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US7882068B2 (en) 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write
US8903801B2 (en) 2007-09-14 2014-12-02 Oracle International Corporation Fully automated SQL tuning
US8341178B2 (en) 2007-09-18 2012-12-25 Oracle International Corporation SQL performance analyzer
US8335767B2 (en) 2007-10-17 2012-12-18 Oracle International Corporation Maintaining and utilizing SQL execution plan histories
US8438152B2 (en) * 2007-10-29 2013-05-07 Oracle International Corporation Techniques for bushy tree execution plans for snowstorm schema
US7650310B2 (en) * 2007-10-30 2010-01-19 Intuit Inc. Technique for reducing phishing
WO2009069005A2 (en) * 2007-11-28 2009-06-04 Barrick Gold Corporation Microbial pre-treatment of double refractory gold ores
US10229453B2 (en) 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
US8751337B2 (en) 2008-01-25 2014-06-10 Syncada Llc Inventory-based payment processing system and approach
US8615490B1 (en) 2008-01-31 2013-12-24 Renew Data Corp. Method and system for restoring information from backup storage media
US7949636B2 (en) * 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US10529019B2 (en) * 2008-05-01 2020-01-07 Trebuchet Holding, LLC Trading platform with automated negotiation and option crossing
US20100121753A1 (en) * 2008-06-11 2010-05-13 David Harris System and method for hosting a plurality of trading algorithms on an exchange
CN101639792B (en) 2008-07-29 2016-04-06 阿里巴巴集团控股有限公司 A kind of concurrent data disposal route, device and a kind of electronic accounting system
US8380601B2 (en) * 2008-08-29 2013-02-19 Jpmorgan Chase Bank, N.A. System for and method of international pooling
EP2370946A4 (en) 2008-12-15 2012-05-30 Exegy Inc Method and apparatus for high-speed processing of financial market depth data
US20100250415A1 (en) * 2009-03-30 2010-09-30 Edson Silva Systems, methods and machine-readable mediums for managing commitments and account receivables
CN101989213B (en) * 2009-08-07 2016-06-29 阿里巴巴集团控股有限公司 Account concurrent processing method and account concurrent processing system
US8868460B2 (en) * 2009-09-15 2014-10-21 Chicago Mercantile Exchange Inc. Accelerated trade matching using speculative parallel processing
US8805737B1 (en) * 2009-11-02 2014-08-12 Sas Institute Inc. Computer-implemented multiple entity dynamic summarization systems and methods
US8229809B2 (en) 2009-11-03 2012-07-24 Hartford Fire Insurance Company System and method for use in management of financial assets
US8819183B2 (en) * 2009-12-15 2014-08-26 International Business Machines Corporation Concurrent execution of request processing and analytics of requests
US8874638B2 (en) * 2009-12-15 2014-10-28 International Business Machines Corporation Interactive analytics processing
US8892762B2 (en) * 2009-12-15 2014-11-18 International Business Machines Corporation Multi-granular stream processing
US8738668B2 (en) 2009-12-16 2014-05-27 Renew Data Corp. System and method for creating a de-duplicated data set
US9208527B2 (en) * 2010-01-29 2015-12-08 Oracle International Corporation General ledger (GL) journal delete/accounting line reversal web service
TWI501171B (en) * 2010-03-08 2015-09-21 Alibaba Group Holding Ltd Account development and processing methods and account development and processing system
US10073844B1 (en) * 2010-11-24 2018-09-11 Federal Home Loan Mortgage Corporation (Freddie Mac) Accelerated system and method for providing data correction
JP6045505B2 (en) 2010-12-09 2016-12-14 アイピー レザボア, エルエルシー.IP Reservoir, LLC. Method and apparatus for managing orders in a financial market
EP2689384A1 (en) * 2011-03-23 2014-01-29 Detica Patent Limited An automated fraud detection method and system
US9792651B2 (en) * 2011-12-09 2017-10-17 Fair Trading Devices Llc System and method for delaying execution of financial transactions
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US10262365B2 (en) 2012-04-16 2019-04-16 Nasdaq Technology Ab Method and a computerized exchange system for processing trade orders
FR3001816B1 (en) * 2013-02-05 2015-03-06 Thales Sa MULTI-USER PROCESSING SYSTEM FOR INFORMATION PROCESSING
US11861696B1 (en) 2013-02-14 2024-01-02 Capital Confirmation, Inc. Systems and methods for obtaining accountant prepared financial statement confirmation
US9947061B2 (en) * 2013-11-05 2018-04-17 ProtecRx, LLC Healthcare information management via financial networks
US9922300B2 (en) * 2013-11-26 2018-03-20 Sap Se Enterprise performance management planning operations at an enterprise database
US9870390B2 (en) 2014-02-18 2018-01-16 Oracle International Corporation Selecting from OR-expansion states of a query
US10621064B2 (en) 2014-07-07 2020-04-14 Oracle International Corporation Proactive impact measurement of database changes on production systems
CN105447604B (en) 2014-08-04 2020-01-21 阿里巴巴集团控股有限公司 Account processing method and device
US9847918B2 (en) * 2014-08-12 2017-12-19 Microsoft Technology Licensing, Llc Distributed workload reassignment following communication failure
WO2016029194A1 (en) * 2014-08-21 2016-02-25 Shaaban Ahmed Farouk System and method for inter-company billing processing
CN104317963B (en) * 2014-11-14 2017-10-24 中国建设银行股份有限公司 A kind of data processing method and device
US10585887B2 (en) 2015-03-30 2020-03-10 Oracle International Corporation Multi-system query execution plan
US10437697B2 (en) * 2015-06-17 2019-10-08 Capital One Services, Llc Systems and methods for modeling computer resource metrics
US10657123B2 (en) 2015-09-16 2020-05-19 Sesame Software Method and system for reducing time-out incidence by scoping date time stamp value ranges of succeeding record update requests in view of previous responses
US10540237B2 (en) * 2015-09-16 2020-01-21 Sesame Software, Inc. System and method for procedure for point-in-time recovery of cloud or database data and records in whole or in part
US10990586B2 (en) 2015-09-16 2021-04-27 Richard Banister System and method for revising record keys to coordinate record key changes within at least two databases
US10838827B2 (en) 2015-09-16 2020-11-17 Richard Banister System and method for time parameter based database restoration
US10339014B2 (en) * 2016-09-28 2019-07-02 Mcafee, Llc Query optimized distributed ledger system
EP3560135A4 (en) 2016-12-22 2020-08-05 IP Reservoir, LLC Pipelines for hardware-accelerated machine learning
US11393045B2 (en) * 2017-06-27 2022-07-19 Fin Box Technologies, Inc. Methods and systems for efficient delivery of accounting and corporate planning services
CN107730381B (en) * 2017-09-14 2020-12-18 中国银联股份有限公司 Method and device for backing up cross section data
US11386058B2 (en) 2017-09-29 2022-07-12 Oracle International Corporation Rule-based autonomous database cloud service framework
US11327932B2 (en) 2017-09-30 2022-05-10 Oracle International Corporation Autonomous multitenant database cloud service framework
CN109189928B (en) * 2018-08-30 2022-05-17 天津做票君机器人科技有限公司 Credit information identification method of money order transaction robot
US10839163B2 (en) * 2018-08-31 2020-11-17 Mindbridge Analytics Inc. Method and apparatus for shaping data using semantic understanding
US20200074563A1 (en) * 2018-08-31 2020-03-05 Mindbridge Analytics Inc. Method and apparatus for assigning transaction identifiers to data entries in a general ledger
US11086840B2 (en) * 2018-12-07 2021-08-10 Snowflake Inc. Transactional streaming of change tracking data
US10997160B1 (en) * 2019-03-25 2021-05-04 Amazon Technologies, Inc. Streaming committed transaction updates to a data store
CN110046980B (en) * 2019-04-24 2021-08-27 合肥智海科技服务有限公司 Financial data generation system and method
US11783436B2 (en) * 2019-06-04 2023-10-10 Visa International Service Association Magellan: a context-aware itinerary recommendation system built only using card-transaction data
US11397930B2 (en) 2019-12-06 2022-07-26 Edward Kellman Double entry—multivariable accounting for reconciliation of bank trust accounts
US11704743B2 (en) * 2020-03-31 2023-07-18 Intuit Inc. Method and system for processing transactions based on transaction archetypes
US11194769B2 (en) 2020-04-27 2021-12-07 Richard Banister System and method for re-synchronizing a portion of or an entire source database and a target database

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642767A (en) * 1984-04-23 1987-02-10 Moisey Lerner Bookkeeping and accounting system
US5117356A (en) * 1989-07-28 1992-05-26 Dns, Inc. Automated ledger account maintenance system
US5237498A (en) * 1988-07-08 1993-08-17 Hitachi, Ltd. System and method for computing profits for individual entities of an entity group via use of means to retrieve and process data for specific entities
US5317504A (en) * 1991-10-23 1994-05-31 T.A.S. & Trading Co., Ltd. Computer implemented process for executing accounting theory systems
US5390113A (en) * 1990-04-05 1995-02-14 Sampson; Wesley C. Method and electronic apparatus for performing bookkeeping

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3697693A (en) 1970-03-11 1972-10-10 Data Card Corp System for maintaining the status of credit accounts
JPS5099799A (en) 1973-12-29 1975-08-07
US4412287A (en) * 1975-05-29 1983-10-25 Braddock Iii Walter D Automated stock exchange
US4025905A (en) 1975-11-28 1977-05-24 Incoterm Corporation System for on-line processing of banking transactions
US4321672A (en) 1979-11-26 1982-03-23 Braun Edward L Financial data processing system
US4625276A (en) 1983-08-31 1986-11-25 Vericard Corporation Data logging and transfer system using portable and resident units
US4621326A (en) 1984-03-14 1986-11-04 Docutel/Olivetti Corporation Method of reducing customer transaction time in an automatic teller machine by parallel processing of sequence events
US4727243A (en) 1984-10-24 1988-02-23 Telenet Communications Corporation Financial transaction system
US4774664A (en) * 1985-07-01 1988-09-27 Chrysler First Information Technologies Inc. Financial data processing system and method
US4713761A (en) 1985-07-18 1987-12-15 Pitney Bowes, Inc. System for centralized processing of accounting and payment functions
US5222018A (en) 1985-07-18 1993-06-22 Pitney Bowes Inc. System for centralized processing of accounting and payment functions
US5057677A (en) 1986-04-14 1991-10-15 Avicom International, Inc. Transaction monitoring and security control system for the sale and distribution of articles
US5093787A (en) 1986-06-12 1992-03-03 Simmons John C Electronic checkbook with automatic reconciliation
US5644727A (en) * 1987-04-15 1997-07-01 Proprietary Financial Products, Inc. System for the operation and management of one or more financial accounts through the use of a digital communication and computation system for exchange, investment and borrowing
US4994964A (en) 1987-04-16 1991-02-19 L & C Family Partnership Transaction tracking data processing system
US5121945A (en) 1988-04-20 1992-06-16 Remittance Technology Corporation Financial data processing system
US4948174A (en) 1988-04-20 1990-08-14 Remittance Technology Corporation Financial data processing system
US5025373A (en) 1988-06-30 1991-06-18 Jml Communications, Inc. Portable personal-banking system
US5496991A (en) 1989-02-09 1996-03-05 Delfer, Iii; Frank W. Automated remittance system
US5305196A (en) 1989-05-01 1994-04-19 Credit Verification Corporation Check transaction processing, database building and marketing method and system utilizing automatic check reading
US5621812A (en) 1989-05-01 1997-04-15 Credit Verification Corporation Method and system for building a database for use with selective incentive marketing in response to customer shopping histories
US5170480A (en) 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
US5610815A (en) 1989-12-11 1997-03-11 Caterpillar Inc. Integrated vehicle positioning and navigation system, apparatus and method
US5317733A (en) 1990-01-26 1994-05-31 Cisgem Technologies, Inc. Office automation system for data base management and forms generation
US5612883A (en) 1990-02-05 1997-03-18 Caterpillar Inc. System and method for detecting obstacles in the path of a vehicle
US5390125A (en) 1990-02-05 1995-02-14 Caterpillar Inc. Vehicle position determination system and method
US5262942A (en) 1990-06-05 1993-11-16 Bankers Trust Company Financial transaction network
US5438509A (en) 1991-02-07 1995-08-01 Heffron; Donald J. Transaction processing in a distributed data processing system
US5287501A (en) * 1991-07-11 1994-02-15 Digital Equipment Corporation Multilevel transaction recovery in a database system which loss parent transaction undo operation upon commit of child transaction
US5453601A (en) 1991-11-15 1995-09-26 Citibank, N.A. Electronic-monetary system
US5452445A (en) 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
WO1994010649A1 (en) 1992-10-30 1994-05-11 Microbilt Corporation Multi-reader transaction terminal
US5581749A (en) 1992-12-21 1996-12-03 Thedow Chemical Company System and method for maintaining codes among distributed databases using a global database
DE69429686T2 (en) * 1993-02-25 2003-04-30 Sun Microsystems Inc Transaction management in an object-oriented system
US5420405A (en) 1993-02-26 1995-05-30 Chasek; Norman E. Secure, automated transaction system that supports an electronic currency operating in mixed debit & credit modes
GB2276737A (en) 1993-03-30 1994-10-05 Ibm Fault-tolerant transaction-oriented data processing
US5418713A (en) 1993-08-05 1995-05-23 Allen; Richard Apparatus and method for an on demand data delivery system for the preview, selection, retrieval and reproduction at a remote location of previously recorded or programmed materials
US5774879A (en) * 1993-12-27 1998-06-30 First Data Corporation Automated financial instrument processing system
US5864685A (en) * 1994-02-28 1999-01-26 Hagan; Bernard P. Increasing income trust computer transaction system and insured investment account system
US5557742A (en) 1994-03-07 1996-09-17 Haystack Labs, Inc. Method and system for detecting intrusion into and misuse of a data processing system
US5668897A (en) * 1994-03-15 1997-09-16 Stolfo; Salvatore J. Method and apparatus for imaging, image processing and data compression merge/purge techniques for document image databases
US5457305A (en) 1994-03-31 1995-10-10 Akel; William S. Distributed on-line money access card transaction processing system
US5500513A (en) 1994-05-11 1996-03-19 Visa International Automated purchasing control system
US5652570A (en) 1994-05-19 1997-07-29 Lepkofker; Robert Individual location system
US5630073A (en) 1994-07-25 1997-05-13 Nolan; Jon D. Personal account tracking system
US5630072A (en) 1994-08-30 1997-05-13 Dobbins; Larry D. Relia process: integrated relational object unit identification and location addressing processes
US5517406A (en) 1994-09-01 1996-05-14 The Shareholder Services Group, Inc. Method and apparatus for data verification and position reporting in an automated trade transactions processing system
JPH08101867A (en) 1994-09-30 1996-04-16 Fujitsu Ltd Software use permission system
US5634012A (en) 1994-11-23 1997-05-27 Xerox Corporation System for controlling the distribution and use of digital works having a fee reporting mechanism
EP0806008A4 (en) * 1995-01-23 1999-12-29 Tandem Computers Inc Tracking the state of transactions
US5576945A (en) 1995-01-23 1996-11-19 Tandem Computers Incorporated Transaction monitor process with pre-arranged modules for a multiprocessor system
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5684977A (en) * 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5657487A (en) 1995-06-05 1997-08-12 Airnet Communications Corporation Mobile telephone location process making use of handoff data
JPH0973337A (en) * 1995-09-05 1997-03-18 Canon Inc Charging device, information reception device, and communication system
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US6442533B1 (en) * 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4642767A (en) * 1984-04-23 1987-02-10 Moisey Lerner Bookkeeping and accounting system
US5237498A (en) * 1988-07-08 1993-08-17 Hitachi, Ltd. System and method for computing profits for individual entities of an entity group via use of means to retrieve and process data for specific entities
US5117356A (en) * 1989-07-28 1992-05-26 Dns, Inc. Automated ledger account maintenance system
US5390113A (en) * 1990-04-05 1995-02-14 Sampson; Wesley C. Method and electronic apparatus for performing bookkeeping
US5317504A (en) * 1991-10-23 1994-05-31 T.A.S. & Trading Co., Ltd. Computer implemented process for executing accounting theory systems

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442533B1 (en) * 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system
US6904411B2 (en) * 1997-10-29 2005-06-07 N—gine, LLC Multi-processing financial transaction processing system
EP1093072A1 (en) * 1999-10-16 2001-04-18 Rolf-Georg Brockmans Method for retrievable archiving of individual items of a cumulative transaction

Also Published As

Publication number Publication date
US20070192254A1 (en) 2007-08-16
US20020138376A1 (en) 2002-09-26
US6904411B2 (en) 2005-06-07
US6442533B1 (en) 2002-08-27
AU1126399A (en) 1999-05-17
US20050165668A1 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
US6442533B1 (en) Multi-processing financial transaction processing system
US11636413B2 (en) Autonomic discrete business activity management method
US6311169B2 (en) On-line consumer credit data reporting system
US9740992B2 (en) Data warehouse system
US20080301016A1 (en) Method, System, and Computer Program Product for Customer Linking and Identification Capability for Institutions
US20050102226A1 (en) System and method of accounting for mortgage related transactions
US20110137760A1 (en) Method, system, and computer program product for customer linking and identification capability for institutions
US7523068B2 (en) Centralized payment processing system
US20070214077A1 (en) Systems and methods for asset based lending (abl) valuation and pricing
WO2005093615A1 (en) Computer system and method for managing financial information
AU4186700A (en) Portfolio investment guideline compliance and financial fund administration system
US6993505B1 (en) Method and system for performing CRA, HMDA, and fair lending analysis and reporting for a financial institution
EP1629430A1 (en) Database for accounting purposes
WO1992004679A1 (en) Transaction processor
CN104838408A (en) Systems and methods for providing computer-automated adjusting entries
CN115237985A (en) Investment risk index analysis platform based on ETL
WO2006073551A2 (en) Method of processing investment data and making compensation determinations and associated system
WO1996030850A1 (en) Method of and system for determining and assessing credit risks
US20070118445A1 (en) System and method for investment accounting and auditing
CN115456747B (en) Automatic intelligent account settling method and device for ERP system and storage medium
Westland et al. Substantive Tests
CN116266330A (en) Novel accounting and billing system and method with information enabling function
CN116797269A (en) Internal funds transfer pricing method and system
CN1996373A (en) System and method for implementing gap metering analysis of interest rate risk management

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE GH GM HR HU ID IL IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

NENP Non-entry into the national phase

Ref country code: CA

122 Ep: pct application non-entry in european phase