WO2003083690A1 - Method and system for enterprise business process management - Google Patents

Method and system for enterprise business process management Download PDF

Info

Publication number
WO2003083690A1
WO2003083690A1 PCT/US2003/009143 US0309143W WO03083690A1 WO 2003083690 A1 WO2003083690 A1 WO 2003083690A1 US 0309143 W US0309143 W US 0309143W WO 03083690 A1 WO03083690 A1 WO 03083690A1
Authority
WO
WIPO (PCT)
Prior art keywords
business process
function
business
data
enteφrise
Prior art date
Application number
PCT/US2003/009143
Other languages
French (fr)
Inventor
John G. Walsh
Jeremy M. Walsh
Original Assignee
Data Quality Solutions, Inc.
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 Data Quality Solutions, Inc. filed Critical Data Quality Solutions, Inc.
Priority to IL16414303A priority Critical patent/IL164143A0/en
Priority to BR0308845-6A priority patent/BR0308845A/en
Priority to KR10-2004-7015343A priority patent/KR20050002901A/en
Priority to JP2003581045A priority patent/JP2005521947A/en
Priority to CA002479757A priority patent/CA2479757A1/en
Priority to EP03723821A priority patent/EP1488329A4/en
Priority to AU2003230731A priority patent/AU2003230731A1/en
Publication of WO2003083690A1 publication Critical patent/WO2003083690A1/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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • 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
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/067Enterprise or organisation modelling

Definitions

  • Embodiments of the present invention relate generally to business process management and, more particularly, to methods and systems for computer-based business process management.
  • This information is used to acquire customers, input orders, ship product, bill customers, collect invoices, pay employees and vendors, order product, audit inventory and maintain records of transactions between employees, customers and suppliers, for example, in the case of a commercial business.
  • Recipients receive multiple copies of the same offers in the mail, which may result in: (a) the sender wasting postage and printing, and (b) the recipient being negatively affected by waste and, as a result, not ordering products;
  • Operational units are unable to determine the correct tax jurisdiction and tax assignment, which may result in: (a) the enterprises not charging the right tax to the client and paying the right amount to the right authority, (b) taxing authorities not collecting all the proper taxes due them, (c) consumers paying more taxes than they should, and (d) corporations suffering liabilities with tax . jurisdictions and clients; and
  • a customer may have customer information entered correctly at the retail level. Subsequently, the customer may make a purchase through the catalog division. At that time, the data entry specialist may, for example, enter the customer's name into the data store incorrectly (e.g., by misspelling the person's last name). On still another occasion, the same customer may make a purchase through the Internet. At that time, the customer will be required to supply his or her information for a third time. In this situation, assume that the customer typed his or her last name incorrectly. Therefore, in this scenario, the customer information has been entered three times, two of which were incorrect. [0012] Relying on its stored data, the company then prints and sends an updated copy of its catalog to its customers. Since the customer described has three separate entries in the business' s data store, the customer receives three copies of the same catalog. As is easily understood, the cost to the company of printing and mailing the catalog has been tripled simply because of errors in the company's data store.
  • Previous approaches to data quality include providing a variety of vendor-specific or application-specific functions to the business.
  • the data quality functions are designed specifically to automatically review a company's data, identify errors, in some cases, and correct those errors. To do this in such a way that is flexible to different businesses, the data quality functions typically provide several settings that may be adjusted by businesses to meet their individual needs.
  • the settings may, for example, remove the errors in a data store to "clean" the data store to a point where the data is 95% accurate (which is considered to be a very good result).
  • the company had three business components, a retail component, a catalog component, and an Internet component, each of which contained a separate customer information data store.
  • a retail component typically, if each component wished to "clean" up its data, each component would purchase a data quality solution and apply that solution internally. If each component were to produce a data store that was 95% accurate, the result would be considered quite good.
  • the resulting data store has an error rate of about 15%, three times higher than each of the data stores that were combined. As may be appreciated, this problem is particularly pronounced when four or more data stores are combined together.
  • the vendor-specific and application-specific data quality functions have unique strengths and weaknesses in detecting and/or correcting errors, the errors may be inadvertently propagated throughout the enterprise as applications pass data back and forth. This may have the undesirable result of causing a multiplicative increase in the overall error rate for the enterprise as a whole.
  • SDLC Software Development Life Cycle
  • a known SDLC adhered to by developers of business processes, such as, for example, data quality processes, results in a time and resource costly lock-step sequential phase approach.
  • a known SDLC includes the following phases which are performed sequentially: requirements definition, general design, detailed design, development, testing, quality assurance checking, trial, implementation, and maintenance/modification.
  • different personnel or service providers with different skill sets may be required as the project moves from phase to phase. For example, a systems engineer or business analyst may be required during the requirements analysis/definition and test phases, but a software engineer may be required for the design phases. Project handoff between phases introduces errors into the final product and adds cost due to increased project time, increased overhead, and higher project headcount.
  • An enterprise business process management system may include an enterprise business process server coupled to one or more clients, a router, and an interface module.
  • an ente ⁇ rise business process management system in accordance with the present invention may include an enterprise business process server capable of receiving data from at least one client, at least one router accessible by the enterprise business process server, and at least one business process accessible by the at least one router.
  • the enterprise business process server may be configured to access the at least one business process via the router, to execute the at least one business process on at least a portion of the client data, and to generate business process output data as a function of the at least one business process.
  • the ente ⁇ rise business process management system may further include an interface accessible by the ente ⁇ rise business process server which operates with the ente ⁇ rise business process server to output a process designer interactive page.
  • the process designer interactive page may be configured to accept instructions concerning the at least one business process, to generate process information data, and to provide the process information data to the ente ⁇ rise business process server.
  • the ente ⁇ rise business process server may build an instruction set for the business process based upon the process information data.
  • an ente ⁇ rise data quality management system and method are provided that determine, analyze, enhance, and report qualitative and quantitative aspects of application data and transactional data present in the ente ⁇ rise.
  • error reports may be provided at various levels of data processing to identify where data errors are made.
  • the system and method also provides for a variety of graphical views to present information concerning where errors are made so that businesses may avoid and correct (or at least minimize) those errors in the future.
  • embodiments of the present invention may provide for a shortened
  • the requirements definition, general design, detailed design, and development phases may be accomplished simultaneously in a single phase utilizing an interactive process designer.
  • each of the SDLC activities may be accomplished through user interaction with one process designer interface provided by a single product.
  • a software engineer may not be required for coding during the project.
  • embodiments of the present invention may allow for the reuse of functions from multiple software applications, as well as providing the capability for the user to define a new or modified function of a business process.
  • each such function may be maintained in a function registry or function library and made available to a business process server for subsequent use in defining additional business processes or modified business processes.
  • embodiments of the present invention may provide an ente ⁇ rise to use "best of breed" business processes in combination to achieve increased effectiveness for the overall process.
  • Portions of multiple different business applications may be combined to form a new or modified business process in which the portions are chosen for a particular effect or other such criteria resulting in increased overall effectiveness.
  • several data quality processes, each of which may be obtained from the same or multiple different business applications may be defined to comprise a single data quality business process that achieves a higher overall data accuracy percentage than would be possible applying each of the multiple data quality business applications alone.
  • FIGURE 1 is an illustrative diagram of a system implementing or employed by the ente ⁇ rise business process management system in accordance with at least one exemplary embodiment of the invention
  • FIGURE 2 is a schematic block diagram of equipment that may be used to implement a server designed in accordance with at least one embodiment of the invention
  • FIGURE 3 illustrates a functional block diagram of an ente ⁇ rise data quality application of the ente ⁇ rise business process server in accordance with at least one embodiment of the invention
  • FIGURE 4 is a functional block diagram illustrating the relationship among data sources/destinations, products, and processes in one embodiment of the invention.
  • FIGURE 5 is a functional block diagram illustrating equipment that may be used to implement a system in accordance with at least one embodiment of the invention;
  • FIGURE 6 is a flow chart illustrating a method used by the ente ⁇ rise business process management system in accordance with at least one exemplary embodiment of the invention;
  • FIGURE 7 is an example of an error report for an executive view according to at least one embodiment of the invention.
  • FIGURE 8 is an example of an error report for a customer support view according to at least one embodiment of the invention.
  • FIGURE 9 is an example of an error report for an individual view according to at least one embodiment of the invention.
  • FIGURE 10 is an example of an error report for a manager view according to at least one embodiment of the invention.
  • FIGURE 11 is a flow chart of a method of establishing a business process process for the ente ⁇ rise business process management system in accordance with at least one exemplary embodiment of the invention
  • FIGURE 12 is an exemplary user interaction page of a graphical user interface for creating a business process process in accordance with at least one embodiment of the invention
  • FIGURE 13 is an exemplary user interaction page of a graphical user interface for adding a data source for a process in accordance with at least one embodiment of the invention
  • FIGURE 14 is an exemplary user interaction page of a graphical user interface for defining an input packet for a process in accordance with at least one embodiment of the invention
  • FIGURE 15 is an exemplary user interaction page of a graphical user interface for defining an output packet for a process in accordance with at least one embodiment of the invention
  • FIGURE 16 is an exemplary user interaction page of a graphical user interface for selecting a product to a process in accordance with at least one embodiment of the invention
  • FIGURE 17 is an exemplary user interaction page of a graphical user interface for adding a product for use with a process in accordance with at least one embodiment of the invention
  • FIGURE 18 is an exemplary user interaction page of a graphical user interface for selecting a data destination for a process in accordance with at least one embodiment of the invention
  • FIGURE 19 is an exemplary user interaction page of a graphical user interface for establishing a process in accordance with at least one embodiment of the invention.
  • FIGURE 20 shows an example process designer interface interactive display for a graphical user interface provided in accordance with at least one embodiment of the invention
  • FIGURE 21 shows a series of build files utilized in an embodiment of the invention by the ente ⁇ rise business process server to build a code implementation of a business process
  • FIGURE 22 illustrates a method of building a new router dynamic link library in an embodiment of the invention
  • FIGURES 23a-d are a flow chart illustrating a method of implementing a business process in accordance with at least one embodiment of the invention.
  • FIGURE 24 provides a functional block diagram showing the relationship among functions, processes and products (e.g., tools) involved in the definition of business processes in an embodiment of the invention
  • FIGURE 25 shows an example of a functions overview interactive page provided in an embodiment of the invention.
  • FIGURE 26 shows an example of a process definition area portion of a process designer interactive page provided in an embodiment of the invention
  • FIGURE 27 shows an example interactive page illustrating adding an element of a process step from the function library in an embodiment of the invention
  • FIGURE 28 shows an example interactive page illustrating linking of process steps in the process definition area of a process designer interactive page in an embodiment of the invention
  • FIGURE 29 shows an example interactive page portion by which a conditional statement may be defined for an element of a process step according to at least one embodiment of the invention
  • FIGURE 30 shows an example of a products definition interactive page provided in an embodiment of the invention
  • FIGURE 31 shows an example of a data destination definition interactive page provided in an embodiment of the invention
  • FIGURE 32 shows an example of a products selection interactive page provided in an embodiment of the invention
  • FIGURE 33 shows an example of the content of a function template file page provided in an embodiment of the invention
  • FIGURE 34 shows an example of a function settings interactive page provided in an embodiment of the invention
  • FIGURE 35 shows an example process tester interactive page according to an embodiment of the invention
  • FIGURE 36 shows an illustration of a data-populated design area of a process tester interactive page in an embodiment of the invention
  • FIGURE 37 shows an example of a connection definition interactive page according to at least one embodiment of the invention.
  • FIGURE 38 illustrates a comparison business process in accordance with an embodiment of the invention.
  • FIGURE 39 shows the relationship between the interface module, ente ⁇ rise business process server, and router in an embodiment of the invention.
  • DETAILED DESCRIPTION OF THE INVENTION This application claims priority to U.S. Provisional Application No. 60/366,547 filed March 25, 2002, entitled “Method and System for Ente ⁇ rise Data Quality Management," the entire disclosure of which is hereby inco ⁇ orated by reference as if fully set forth herein.
  • the present invention will be described in connection with exemplary embodiments thereof, the exemplary embodiments are not intended to be limiting of the invention. On the contrary, alternatives, modifications and equivalents of the described examples are also intended to be included within the spirit and scope of the invention, which is defined in part by the claims appended hereto.
  • an ente ⁇ rise business process management system and method are provided. Although at least one embodiment is presented herein in the form of an embodiment of an ente ⁇ rise data quality management system, it is to be understood that the teachings herein may be applied more generally to any ente ⁇ rise business process management system, including or in addition to those business processes involved in data quality management.
  • the system and method may utilize a server and an interchangeable router for defining, building and executing steps in business processes, including, for example, steps for detecting, correcting and reporting data errors present in various applications throughout an ente ⁇ rise.
  • An ente ⁇ rise may include multiple computing nodes located in different geographic or physical locations that comprise a business organization.
  • the various computing nodes may be interconnected for inter-node communication throughout the ente ⁇ rise using a network such as, but not limited to, an intranet, the Internet, leased telephone or data lines, a wireless network, or any combination of these. Connected in any of these manners, among others, users associated with the ente ⁇ rise may obtain transparent, virtual access to ente ⁇ rise applications, processes, and functions regardless of the physical location of the node or nodes where the applications, processes, and functions reside.
  • a network such as, but not limited to, an intranet, the Internet, leased telephone or data lines, a wireless network, or any combination of these.
  • users associated with the ente ⁇ rise may obtain transparent, virtual access to ente ⁇ rise applications, processes, and functions regardless of the physical location of the node or nodes where the applications, processes, and functions reside.
  • FIGURE 1 is an illustrative diagram of a system implementing or employed by the ente ⁇ rise business process management system in accordance with at least one exemplary embodiment of the invention.
  • an ente ⁇ rise business process management system 100 may include an ente ⁇ rise business process server 101 coupled to one or more additional clients such as, but not limited to, an Extract, Transform and Load (ETL) client 102, an Ente ⁇ rise Application Integration (EAI) client 103, an Ente ⁇ rise Resource Planning (ERP) client 104, and a Customer Relationship Management (CRM) client 105.
  • the ente ⁇ rise business process server 101 may also be coupled to further additional clients such as a Supply Chain Manager (SCM) client (not shown).
  • SCM Supply Chain Manager
  • Each of the additional clients may include at least one business application.
  • the ente ⁇ rise business process server 101 may also be coupled to an information data store 106 and a flat files data store 107, one or more mainframes 108, and the Internet 109.
  • the ente ⁇ rise business process server 101 may also be coupled to one or more terminals such as a call center terminal(s) 110, data entry terminals 111, local user terminal(s) 112, and remote user terminal(s) 113.
  • the ente ⁇ rise business process server 101 may be an ente ⁇ rise data quality server or an ente ⁇ rise business process server configured to allow for the definition and execution of ente ⁇ rise data quality management.
  • the ente ⁇ rise business process server 101 may communicate with ente ⁇ rise nodes including the additional clients 102-105, the data stores 106 and 107, mainframes 108, Internet 109 and terminals 110-113 using a variety of communications networks including, but not limited to, a network of interconnected networks such as the Internet, a Local Area Network (LAN), a Wide Area Network (WAN), an intranet including any of these, and/or the PSTN, a wireless network, or any combination thereof.
  • the ente ⁇ rise business process server 101 may communicate with one or more of these ente ⁇ rise nodes for receiving and transmitting transaction related data as well as error reports, at a minimum.
  • the clients 102-105 may be any data source that can send or receive data such as, but not limited to, a server, or a client portion of a client-server application.
  • a client may host one or more business applications processes, or functions of the ente ⁇ rise, for example.
  • Clients may be located internal or external to an ente ⁇ rise firewall.
  • the ETL client 102 may be configured to enable an organization to extract data sets from one data source, map the data to another data source, transform the data if necessary, consolidate data sources, and load the data into the destination source or sources.
  • Such an ETL client 102 may be primarily batch processing oriented and utilize a hub architecture in which the transformations and mappings are performed as the data is passed from its source to its destination.
  • the EAI client 103 may be configured to enable ente ⁇ rise transactions to pass from one application to another within an organization/ente ⁇ rise and from one organization to a partner organization that exists on an EAI network.
  • Such an EAI client 103 may use a hub architecture and include capabilities for mapping and transforming data associated with the ente ⁇ rise transactions.
  • the ERP client 104 may be configured to integrate multiple facets of the business or ente ⁇ rise, including planning, manufacturing, sales, and marketing activities. Such an ERP client 104 may use a hub architecture and include capabilities for mapping and transforming data associated with these activities.
  • the CRM client 105 may be configured to manage multiple aspects of interaction between the organization/entity and its customers using a variety of electronic-based tools, including help-desk software, sales, marketing, e-mail organizers and Web development applications. Such a CRM client 104 may use a hub architecture and include capabilities for mapping and transforming data associated therewith.
  • the additional ente ⁇ rise clients may each include vendor-specific application quality checking processes that operate internally to each of the respective server applications.
  • the ente ⁇ rise business process server 101 may include a Transmission Control Protocol/Internet Protocol (TCP/IP) interface for exchange of information with additional ente ⁇ rise servers including the ETL client 102, EAI client 103, ERP client 104, and CRM client 105.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • Information exchanged between the ente ⁇ rise business process server 101 and the additional clients may include commands or requests from the ente ⁇ rise business process server 101 to perform one or more particular processes or functions of a process (or processes) such as, for example, processes to check data quality.
  • the exchanged information may also include data output by application quality checking processes or functions.
  • the TCP/IP communication interface may allow the ente ⁇ rise business process server 101 to connect directly to any application on the ente ⁇ rise network.
  • the TCP/IP communication interface may allow the ente ⁇ rise business process server to connect to external applications using, for example, the Internet.
  • the ente ⁇ rise business process server 101 may obtain information from the information data store 106 and the flat files data store 107.
  • the ente ⁇ rise business process server 101 may include application instructions such as data store scripts for accessing, storing, or selectively retrieving information contained in the information data store 106 and the flat files data store 107.
  • the data store scripts may be implemented in the form of programming statements provided in accordance with, for example, SQL version 7.0 data store management system query language, as well as Transact® SQL (in accordance with the ColdFusion® data store management system).
  • Other data store implementations are possible, including, but not limited to, those available from Oracle® or IBM DB2®.
  • the ente ⁇ rise business process management system 100 may include an ente ⁇ rise database server (not shown) coupled to the ente ⁇ rise business process server 101 and the information data store 106 and the flat files data store 107 for the purpose of accessing information stored therein.
  • the information data store 106 may include ente ⁇ rise application or transactional data arranged in accordance with a hierarchical data store management system format such as, for example, SQL.
  • the flat files data store 107 may include ente ⁇ rise application or transactional non-hierarchical data.
  • the ente ⁇ rise business process server 101 may also be coupled to one or more mainframes 108 in the ente ⁇ rise.
  • the mainframe(s) 108 may include organization or ente ⁇ rise applications such as, for example, legacy payroll or accounting systems.
  • the ente ⁇ rise business process server 101 may communicate with the mainframe(s) 108 using a Local Area Network (LAN), a Wide Area Network (WAN), dedicated landlines, or a combination thereof, among others.
  • LAN Local Area Network
  • WAN Wide Area Network
  • dedicated landlines or a combination thereof, among others.
  • the ente ⁇ rise business process server 101 may also be coupled to one or more terminals such as a call center terminal(s) 110, data entry terminals 111, local user terminal(s) 112, and remote user terminal(s) 113 via LAN, WAN, dedicated landlines, an intranet, the Internet, a wireless network, or a combination thereof.
  • the ente ⁇ rise business process server 101 may thereby receive transactional data from one or more of the terminals 110-113.
  • the ente ⁇ rise business process server 101 may communicate with users at one or more remote terminals 113 using, for example, the Internet 109.
  • the ente ⁇ rise business process server 101 may further include a web browser or thin client for this pu ⁇ ose.
  • the web browser displays data and is capable of communicating with other computers via a network such as, for example, the Internet or an intranet.
  • the web browser may provide a user with a way to navigate, via, for example, hyperlinks which are selected by a pointing device (such as a computer mouse) or typed in by the user.
  • the web browser may use a protocol such as, for example, HyperText Transfer Protocol (HTTP) or File
  • Transfer Protocol to transmit data of various content such as, for example, HTML formatted documents, plain text documents, graphic images, and XML documents for presentation to a user via a display.
  • FIGURE 2 illustrates a computing platform that may be used to implement the ente ⁇ rise business process server 101 in accordance with at least one embodiment of the invention.
  • the equipment 200 may include a processor 210, a memory 220, a system interface 230, a user interface 240 and a communication/data/control bus 250 that couples elements 210-240 together and allows for cooperation and communication between those elements.
  • the memory 220 may be implemented utilizing alternative configurations depending on the needs of a user or a system associated with the ente ⁇ rise business process management system.
  • the system interface 230 may include both hardware and software to allow the equipment 200 to communicate with components that provide data utilized by the ente ⁇ rise business process management system, for example, transactional data feeds from the additional ente ⁇ rise servers.
  • the processor 210 controls operation of the other elements 220-250, based on instructions fetched from the memory 220.
  • the instructions may include or be implemented as software code that dictates some or all of the operations of the ente ⁇ rise business process management system 100 and method explained herein.
  • the memory 220 may include this code and may also include storage area for data utilized by or generated by the ente ⁇ rise business process management system 100.
  • the processor 210 may fetch the instructions, decode them, and act or instruct other elements 120-150 to, for example, transfer data to or from the memory 220 or to work in combination with the system interface 230 or the user interface 240 (for example, to input or output information), etc.
  • the processor 210 may actually be implemented as more than one processor.
  • the processor 210 may, based on instructions fetched from the memory 220, operate to control operation of the other elements 220-250. It should be appreciated that control may be implemented with the processor 210, for example, in a central processing unit, or other similar device.
  • the processor 210 and the memory 220 may be implemented via one or more servers coupled to a network that allows the user interface 240 to be implemented at a user terminal, such as local terminal 112 and remote terminal 113, and include a Graphical User Interface (GUI) on a terminal screen.
  • GUI Graphical User Interface
  • the user interface 240 may include, for example, hardware and software for cooperating with a terminal display, a keyboard and mouse, printer, etc. Moreover, the user interface 240 may include a speaker and microphone, not shown, for outputting and inputting information to and from a user. The user interface 240 may operate in conjunction with the processor 210 to allow a user to interact with software programs stored in the memory 220 and used by the processor 210 so as to perform the operations explained below. [0099]
  • the ente ⁇ rise business process server 101 can be implemented, for example, as portions of a suitably programmed general-pu ⁇ ose computer. The system may be implemented, for example, as physically distinct hardware circuits within an ASIC.
  • the ente ⁇ rise business management system 100 may differ from the embodiment(s) explained herein.
  • the ente ⁇ rise business management system 100 has been described as being implementable on a general-pu ⁇ ose computer, for example, a personal computer, it is foreseeable that the system may be implemented in a network environment where the software implementing the system is stored on one or more servers.
  • the ente ⁇ rise business process server 101 may allow a user (e.g., an administrative user) to add, modify, or delete business process processes or steps without taking down the server 101.
  • the ente ⁇ rise business process server 101 may be scalable in order to easily function within server array or cluster environments and for processing of large volumes of data.
  • the ente ⁇ rise business process server 101 may include a Microsoft WindowsTM NT enabled personal computing platform, for example.
  • the ente ⁇ rise business process server 101 may include one or more applications programs containing a series of programmed instructions that cause the ente ⁇ rise business process server 101 to be configured to perform the business process operations as described herein.
  • FIGURE 3 illustrates a functional block diagram of an ente ⁇ rise data quality application 300 of the ente ⁇ rise business process server 101.
  • the ente ⁇ rise data quality application 300 may include a core architecture 301, a set of predefined view tools 302, a developer's kit 303, and an interface module 304, which may be a business analyst interface.
  • the core architecture 301 may include a series of programmed instructions for obtaining application data or transactional data from one or more data sources, analyzing the obtained data for errors, logging detected errors, and generating at least one error report according to a particular requested view.
  • the ente ⁇ rise data quality application 300 may include one or more functions designed to analyze a particular type of application data, which may be obtained from one or more data sources, for occurrences of one or more types of errors present in the application data.
  • the ente ⁇ rise data quality application 300 may include instructions causing a request to be transmitted to one or more of the additional ente ⁇ rise servers, including the ETL server 102, EAI server 103, ERP server 104, and CRM server 105, requesting execution of a particular application's internal quality checking processes or a particular set of functions of one or more of the application's internal processes.
  • the ente ⁇ rise business process server 101 may transmit commands/requests (e.g., function calls or procedure calls/Remote Procedure Calls (RPCs)) and receive responses from the associated server via the TCP/IP interface.
  • the core architecture 301 may include a multi-threaded management layer for automatically converting any legacy applications that are not multi-threaded to multithreaded capabilities.
  • the business analyst module 304 may include a sequence of programmed instructions to implement the interface module (e.g., business analyst interface or BAI) described herein. These instructions may, upon execution by the ente ⁇ rise business process management server 101, cause the ente ⁇ rise business process management server 101 to provide an interactive means to facilitate user interaction with the ente ⁇ rise business process management system 100.
  • the business analyst module 304 may include instructions operable to cause process steps to be represented graphically, for example, using a display, and indicative of a particular operation to be accomplished by the ente ⁇ rise business process server when executing one or more process steps of a business process.
  • the business analyst module 304 may be an overlay application to the developer's kit 303.
  • the business analyst module 304 may also include instructions operable to cause the ente ⁇ rise business process server 101 to retrieve, build and compile from a data store such as, for example, the data store 106, a sequence of instructions implementing the business process defined by a user interacting with the interface module.
  • the ente ⁇ rise business process system 100 may output error information in the form of one or more error reports. Error reports may be presented in accordance with a variety of views.
  • the predefined view tools 302 may include programming instructions associated with one or more error reports provided in accordance with a predefined set of views.
  • the predefined view tools may provide instructions that cause the ente ⁇ rise business process server 101 to output an error report including a numeric count of errors for a data source for a manager's view. Further exemplary views and reports are described hereinbelow.
  • the developer's kit 303 may include an Application Programming Interface (API) useful for users of the ente ⁇ rise business process system 100 or their designated third parties to create and use customized view tools for analyzing particular data, sources, error syndromes, or for providing customized reports over and above the set of predefined view tools 302.
  • API Application Programming Interface
  • the ente ⁇ rise business process server 101 may be implemented in accordance with a client-server architecture.
  • Programmed instructions, including the ente ⁇ rise data quality application 300 may be implemented in portable source code such as, but not limited to, generic Microsoft® C.
  • the ente ⁇ rise business process server 101 may be implemented in accordance with an encapsulated server design in order to support clusters and server arrays.
  • the ente ⁇ rise business process server 101 may be implemented in accordance with a stateless architecture approach to allow use of third-party technology for load balancing and high availability, for purposes of providing reliability and scalability to handle huge volumes of data.
  • the ente ⁇ rise business process server 101 may utilize "sandbox technology" (i.e., use of a combination of process synchronization and isolation techniques such as, for example, handling each session via a separate thread) to allow legacy technology that was not multi-threaded, or even thread-safe, to be quickly and reliably added to the real-time, parallel processing environment.
  • “sandbox technology” i.e., use of a combination of process synchronization and isolation techniques such as, for example, handling each session via a separate thread
  • FIGURE 4 is a functional block diagram illustrating one contemplated relationship among data sources/destinations, products, and processes according to at least one embodiment of the invention.
  • the ente ⁇ rise business process server 101 may receive ente ⁇ rise application or transaction data from and transmit to one or more data sources/destinations 305.
  • the ente ⁇ rise business process server 101 may provide corrected data following detection of an error to a data source/destination 305 (e.g., data source/destinations 1 through K).
  • the ente ⁇ rise business process server 101 may receive process input from one or more products 315 (e.g., Products 1 through M).
  • a product 315 may include a function or set of functions.
  • a function may be a routine in a library that returns a value or set of values.
  • the ente ⁇ rise business process server 101 may include or access one or more processes 310 to perform, for example, the data quality assurance functions described herein (e.g., Processes 1 through N).
  • the ente ⁇ rise business process server 101 may • provide an individual error log 325 for each process 310. Results from each process 310, including any error log 325 generated, may be stored and maintained using a log data store 320 (which may be the data store 160 described with respect to FIGURE 5).
  • the ente ⁇ rise business process management system 100 may include an architecture designed to utilize an unlimited number of different vendors' products in a unique process for each application (data source) or data set within an application.
  • the ente ⁇ rise business process management system 100 may provide a framework for a unique process that creates, executes, manages and reports on individual process steps in a business process that utilizes different vendors' products on various platforms and enables these products to be used across the entire ente ⁇ rise.
  • the ente ⁇ rise business process management system 100 may provide archiving or logging of the quality of the data being processed at each step in a multi-vendor environment.
  • the ente ⁇ rise business process management system 100 may allow for managing, tracking and reporting on the use of multiple vendors' products in a unique process for any application (data source) or data set within an application.
  • the ente ⁇ rise business process management system 100 may provide for the utilization of the same functions from the same or multiple vendors with different settings in a process.
  • the ente ⁇ rise business process management system 100 may provide different views on the performance of individuals, business units, or special constituencies within an organization and the ente ⁇ rise in regard to particular aspects of the business process such as, for example, data quality.
  • the ente ⁇ rise business process management system 100 may provide for comparisons of the effectiveness of various functions and settings from different vendors for the selection of the most effective functions and settings to handle a specific ente ⁇ rise issue, such as, for example, a data quality issue.
  • the ente ⁇ rise business process management system 100 may provide for the fast implementation of multi- vendor applications, such as data quality tools and data quality processes.
  • the enterprise business process server 101 may utilize a vendor independent architecture that allows for business process tools to be used either on their current computer platform or on the same platform that hosts the ente ⁇ rise business process server
  • the ente ⁇ rise business process management system 100 provides for reuse of functions of multiple business applications in system 100 defined business processes.
  • FIGURE 5 illustrates equipment that may be used to implement a system in accordance with at least one embodiment.
  • the ente ⁇ rise business process system
  • the 100 may include not only the ente ⁇ rise business process server 101, but may also include a data store 160 and a view engine 170.
  • the data store 160 need not be a single data store but may comprise several data stores together.
  • the data store 160 may be, but is not limited to, an OLAP (On-Line Analytical Processing Database) or a Summary Database.
  • the data store 160 may include, but is not limited to, formatting instructions and rules used by the view engine 170 to produce an error report according to one of several views 400.
  • the view engine 170 may obtain from the data store 160 a sequence of formatting instructions and apply the thus-obtained instructions in generating an error report according to the associated view 400.
  • each view 400 may be associated with a particular set of formatting instructions.
  • the formatting instructions may be implemented in the form of HyperText Markup Language (HTML) or Extensible Markup Language (XML) instructions designed to cause the view engine 170 to render an interactive page containing the requested error report according to the desired view.
  • the interactive page may be, for example, a world wide web page, or a page capable of display at a terminal 112 or 113 using a web browser application.
  • the ente ⁇ rise business process management system 100 may provide several different views 400, including, but not limited to, an end user view, a developer view, a manager view, and an executive view. Exemplary views 400 are described in further detail with respect to FIGURES 7-10 below.
  • the ente ⁇ rise business process management system 100 may provide the ability to create different views 400 of the results of each step in a process for different levels of an organization to permit the measurement and management of the effectiveness of the organization's business processes.
  • the ente ⁇ rise business process management system 100 may include visualization software that creates graphical information for the different views 400. This graphical information may include analytical tools, statistical information, data tracking, cost analysis and, in at least one embodiment, an indication of the impact of the results of the different levels of the organization in reducing the errors in data quality.
  • the data store 160 (which may be an online application processing database or summary database) may maintain error report information in accordance with a "single view" in which information contained in the data store 160 is formatted and arranged in a consistent manner equally accessible by the view engine 170 for the production of any view 400, regardless of the data source/destination 305, product 315, or process 310 from which the data was obtained.
  • the ente ⁇ rise business process management system 100 may log the results of each step in a process from every data source. This log may provide information regarding who sent the data, what occurred during each step of the process, and where the data was sent after the process was completed. This log may feed directly into the view engine 170, which may be a graphical reporting system, for rendering of multiple views.
  • view engine 170 may provide graphical reports to various users including executives, managers, end users, and process developers that convey information regarding how they, their department, organization or processes are performing.
  • view engine 170 may provide the following views 400, for example views for Executives, Managers, Users, and Developers.
  • the Executive View provides graphical reports on the quality of data for the whole organization.
  • the Managers View provides graphical reports on the quality of data in the manager's organization(s) and department(s). Managers can drill down into the performances of their business units and departments and compare performances and causes of issues such as, for example, data quality.
  • the Users View provides graphical reports on the quality of the data that has been entered by users into the system. Users can drill down on the specific problems and review the input and output data and result codes of each step in the process.
  • the Developers View provides graphical reports on the results of all processes and steps so that developers may analyze the results and make changes to the process to improve the results. Developers can readjust the sequences of functions, eliminate functions, utilize functions from other vendors, add new functions from different vendors and create new functions themselves.
  • the view engine 170 may include statistical modeling packages that can be used to add the financial impact of data that is validated/corrected and not validated/corrected.
  • the view engine 170 may be implemented using graphical modeling technology available from, for example, IllumitekTM Co ⁇ . of Dulles, Virginia.
  • FIGURE 6 provides further details concerning implementation of the analysis that may be performed by the ente ⁇ rise business process management system 100.
  • the ente ⁇ rise data quality management system 100 may provide for the creation of a unique process for each application or data set from that application using all or a subset of the functions and settings available within all the business process products present in the ente ⁇ rise network and externally available.
  • Each application or data set within an application is capable of utilizing all the functions and settings in a sequence appropriate for meeting unique needs.
  • Such business processes may be composed of an unlimited number of steps. Each step may correspond to a function and setting or a series of functions and settings from a particular vendor.
  • the ente ⁇ rise business process management system 100 may provide archiving and logging of the results of every step in a multi-vendor process. Log files may be automatically logged to a text file or a data store. In particular, errors may be determined and logged at the process level.
  • the ente ⁇ rise business process management system 100 may include the ability to compare the strengths and weaknesses of each vendor's functions and settings in a multi- vendor, multi-step process. Furthermore, the ente ⁇ rise business process management system 100 may provide a fast, easy to use methodology for installing products and functions from multiple vendors to expedite the implementation of business process projects. Thus, in at least one embodiment, the ente ⁇ rise business process management system 100 may be vendor independent while allowing users access to all the functions included in additional ente ⁇ rise servers or application, including existing business process vendor products, custom codes, or services.
  • a user may sequence the business process functions, such as, for example, data quality functions, from different vendors in any order determined to fit the needs of each data set and data source. Furthermore, a user may establish unique processes 310 and steps for each data set within a data source as described with respect to FIGURE 11.
  • a vendor may be a software company that provides functionality to, for example, identify and separate into distinct fields the elements of a business and consumer name; identify, separate, validate and correct each element of an address; identify, separate, validate, correct and transform non-name and address information for on-line transactions and batch processing; consolidate data from different records and different data sources; augment the original data with additional data; and create a single record or view of that individual or client.
  • the ente ⁇ rise business process management system 100 may include a Graphical User Interface (GUI) capable of allowing a user to create a process for an application or data set from an application.
  • GUI Graphical User Interface
  • the user may specify the format for the data, and may also create individual steps in a process by calling a specific function(s) and setting(s) from an available tool for each step.
  • the GUI may be implemented using Java® instructions, for example.
  • the user may repeat the exercise of creating steps until a business process process is fully defined and completed.
  • the process may be represented, viewed and navigated in a hierarchical fashion where a single step may represent a multi-step sub process.
  • the process depiction and description may be presented on other output devices, such as printer.
  • the process depiction and description may be exported for viewing and manipulation by external applications, such as a word processor, flow chart application, or web browser.
  • the user may then identify the destination(s) for the results of the process and decide what information is to be sent to each destination.
  • the results of each step within a Process may be logged to a text file or data store.
  • the data that is stored in the text file or data store may used by a view engine, which may include visualization software, to create graphical reports, which contains analytical information, statistical information, data tracking, cost analysis, and the impact of data for the different levels within an organization. This information may be used to measure and monitor the effectiveness of an ente ⁇ rise business process such as, for example, a data quality program.
  • FIGURE 39 shows the relationship between the interface module 304, ente ⁇ rise business process server 101, and router 3905 in an embodiment.
  • input data 605 from a data source such as, for example, a business application
  • the input data 605 may include a process identifier specifying a particular business process to which the input data 605 is to be applied.
  • the ente ⁇ rise business process server 101 may be configured to detect the input data 605 process identifier and provide the input data 605 to the specified business process of the router 3905.
  • the router 3905 may include an integrated instruction set embodying one or more business processes (e.g., processes 1, 2 and 3 are shown in FIGURE 39).
  • the instructions for each business process may include calls to tools 3910 (i.e., functions) residing external to the router 3905 for performing process steps, as well as tools 3910 obtained from business applications external to the router 3905 but residing on the router 3905.
  • the router 3905 may be an interchangeable router in which new versions or loads for the router 3905 may replace the current router 3905 version, and be placed in service and handle data traffic, without the need to take the server 101 down (i.e, out of service).
  • the router 3905 may include the instruction set for the currently active business processes provided by the ente ⁇ rise business process management system 100.
  • a new router 3905 version may be built and placed into service to begin data traffic handling according to a new or modified business process.
  • the interface module 304 may generate an instruction set embodying a new or modified business process in response to user entered function information. The user may enter the function information using, for example, a process designer interactive page provided by the interface module 304. Following replacement of the current router version with a new router version, input data 605 may be handled according to the new router version. Further details concerning the replacement of a current router version with a new router version are described with respect to FIGURES 23a-d herein.
  • a method 600 may commence with the ente ⁇ rise business process server 101 receiving input data at 605.
  • the input data 605 may be received from a data source/destination 305.
  • Control may then proceed to 610 at which the input data may be passed to a process router.
  • the process router may direct the input data to a particular process 310 (e.g., Process X).
  • the process router may allow processes and steps to be easily and quickly modified without bringing down the server 101 (i.e., an interchangeable or hot swappable router).
  • Control may then proceed to 615, at which the process 310 (e.g., Process X) may receive the input data and pass it to each step in a multiple step process.
  • An example of a business process is a data quality process such as an address validation operation in which transactional data (obtained from a data source/destination 305 associated with a particular ente ⁇ rise application) is compared to a trusted source such as, for example, a United States Postal Service database.
  • Control may then proceed to a second step at 620 and thereafter to subsequent steps (e.g., Step N) at 635.
  • the results of the step may be entered into a log 630, such as, for example, error log 315, and the data is passed to the next step.
  • the results of each step of the process 310 and the error log 315 may be maintained in a data store 625, such as the data store 160.
  • the data store 625 (and the data store 160) may be, but is not limited to, an OLAP (On-Line Analytical Processing Database) or a Summary Database.
  • Logging may include server Logging (e.g., logging of all transactions received by the server, logging of server statistics) as well as process logging (e.g., detailed logging of each step within a process that can be used for analysis on transaction data and product abilities).
  • control may proceed to 640 at which the process results may be applied to an output data structure.
  • the output data may then be provided to a data source/destination 305, following which processing may end for the method 600.
  • a process 310 may include fields such as, but not limited to, ROME D, ROME_TIME, SECT_CODE, SOURCE_DEST, SUB_SOURCE_DEST, RETURN_CODE, and INPUT COMPONENT 1-N.
  • Each step in a process 310 may include fields such as, but not limited to, ROMEJJTD, ROME TIME, PRODUCT D, PRODUCT_RC, STEPJD, and OUTPUT COMPONENT 1-M.
  • Each data packet may have a unique identifier (e.g., "ROMEJDD") that can be used to track the results of multiple submissions of the same data packet.
  • the ente ⁇ rise business process server 101 may provide error reports in accordance with one or more views 400.
  • FIGURE 7 is an example of an error report for an executive view according to at least one embodiment of the invention.
  • an executive view 700 may include one or more error reports providing data error information for a variety of divisions 705 of an ente ⁇ rise.
  • the exemplary executive view 700 shown in FIGURE 7 may present an error report for divisions 705 including marketing, finance, sales, development, web, and customer support divisions, giving the requesting user (e.g., ente ⁇ rise executive) visibility into aspects of the ente ⁇ rise such as, for example, data quality, so that corrective action may be taken, for example.
  • ente ⁇ rise executive e.g., ente ⁇ rise executive
  • incorrect or errored records may be marked to indicate that they were not corrected, and the reasons for such.
  • an error report may provide in numeric as well as graphical form, using tools such as charts 715 and 720, ranking or statistical analysis of the errors detected in a given set of ente ⁇ rise application data or transactional data.
  • the ente ⁇ rise business process management system 100 may perform analysis processes that provide information to the requesting user such as, but not limited to, a ranking of the data errors 720 detected for applications within different divisions 705, a traffic intensity indicator 710 for data transactions flowing into and out of a division 705, a productivity chart 715 showing the change in productivity for each division 705 over time, and a process error classification 725 of the strengths, weaknesses, costs, and gains associated with the data quality for the divisions 705.
  • FIGURES 8-10 are examples of an error report for a customer support view 800, an individual view 900, and a manager view 1000, respectively, according to at least one embodiment. Items including reference numbers identical to those appearing in FIGURE 7 are as described earlier with respect thereto.
  • the ente ⁇ rise business process management system 100 may provide visibility to the requesting user into, for example, data errors attributable to a particular individual.
  • FIGURE 9 shows a process error classification 725 of the strengths, weaknesses, costs, and gains associated with a particular individual 905, as well as the error types 910 committed by the individual 905 and the number of errors distributed over time 915 attributable to the individual 905.
  • the example error classification 725 of the error report in FIGURE 9 shows that the individual 905 is strong (i.e., few errors committed) in entering address information, is weak (i.e., many errors) in entering names, has committed 80, 74, and 22 errors in different time periods, and has cost the ente ⁇ rise $800 as a result of the data errors.
  • the ente ⁇ rise business process management system 100 may provide visibility to the requesting user (e.g., ente ⁇ rise manager) into data errors attributable to particular individuals 905 and to the individuals as a group.
  • FIGURE 10 shows a process error classification 725 of the strengths, weaknesses, costs, and gains associated with multiple individuals 905, as well as the error types 910 committed by each of the individuals 905 and the number of errors distributed over time 915 (e.g., time of day) attributable to the group.
  • a cost per time period chart 1005 may also be provided indicating the daily cost incurred by the enterprise for the data errors attributed to each individual 905.
  • the ente ⁇ rise business process management system 100 may provide the capability for a user (e.g., an administrative user) to create and establish business processes 310 for execution by the ente ⁇ rise business process server 101.
  • FIGURE 11 is a flow chart of a method 1100 of establishing an exemplary data quality process for the ente ⁇ rise business process management system 100 in accordance with at least one embodiment.
  • the method 1100 may commence at 1105 upon the ente ⁇ rise business process server 101 receiving a user request to create a process 310.
  • a user may enter a request to create a process 310 by, for example, using a pointing device to select an associated hyperlink contained on an interactive page provided by a graphical user interface portion of the ente ⁇ rise data quality application 300.
  • Control may then proceed to 1110, at which the ente ⁇ rise business process server 101 may prompt the user to create a process name and select a data source for the process 310.
  • FIGURE 12 is an example of an interactive page 1200 provided by the ente ⁇ rise business process server 101 in which a user may enter a process name, description, and associated data source 305.
  • Control may then proceed to 1115, at which the ente ⁇ rise business process server 101 may prompt the user to enter a new data source 305, if necessary. If the user responds by requesting to add a new data source 305, control may proceed to 1120 at which the ente ⁇ rise business process server 101 may generate and output an interactive page 1300 for a user to add a data source 305.
  • FIGURE 13 is an example of an interactive page 1300 provided by the ente ⁇ rise business process server 101 in which a user may add a data source 305 by entering information such as, but not limited to, a data source name, description, IP address, Port Number, and platform identifier.
  • Control may then proceed to 1125, at which the ente ⁇ rise business process server 101 may prompt the user to create an input packet for the process 310.
  • FIGURE 14 is an example of an interactive page 1400 provided by the ente ⁇ rise business process server 101 in which a user may create an input packet by entering attribute information such as, but not limited to, an input element name, type, length, and description.
  • the input element type may specify a data type for the input packet such as, but not limited to, boolean, character, double character, wide character (UNICODE), floating point decimal, integer, long integer, or short integer.
  • Control may then proceed to 1130, at which the ente ⁇ rise business process server 101 may prompt the user to create an output packet for the process 310.
  • FIGURE 15 is an example of an interactive page 1500 provided by the ente ⁇ rise business process server 101 in which a user may create an output packet by entering attribute information such as, but not limited to, an output element name, type, length, and description.
  • the output element type may specify a data type for the output packet such as, but not limited to, boolean, character, double character, wide character (UNICODE), floating point decimal, integer, long integer, or short integer.
  • Control may then proceed to 1135, at which the ente ⁇ rise business process server 101 may prompt the user to select a product 315 (or function or set of functions, as the case may be) to be associated with the process 310.
  • a product 315 may include a function or a set of functions.
  • FIGURE 16 is an example of an interactive page 1600 provided by the ente ⁇ rise business process server 101 using which a user may select a product 315 by entering, as a minimum, a selection of a product 315 from a pull-down list, for example, and a product description.
  • Control may then proceed to 1140, at which the ente ⁇ rise business process server 101 may prompt the user to add a product 315, if necessary. If the user responds by requesting to add a product 315, control may proceed to 1145 at which the ente ⁇ rise business process server 101 may generate and output an interactive page 1700 for a user to add a product 315.
  • FIGURE 17 is an example of an interactive page 1700 provided by the ente ⁇ rise business process server 101 in which a user may add a product 315 by entering information such as, but not limited to, a product name, product type, version, and product template.
  • APPENDIX A hereto provides an exemplary sequence of pseudocode instructions for creating a product template.
  • Control may then proceed to 1150, at which the ente ⁇ rise business process server 101 may prompt the user to select a data destination 305 for the process 310.
  • FIGURE 18 is an example of an interactive page 1800 provided by the ente ⁇ rise business process server 101 in which a user may enter a data destination name and description.
  • Control may then proceed to 1155, at which the ente ⁇ rise business process server 101 may prompt the user to enter a new data destination 305, if necessary. If the user responds by requesting to add a new data destination 305, control may proceed to 1160 at which the ente ⁇ rise business process server 101 may generate and output an interactive page (not shown) for a user to add a data destination 305 by entering information such as, but not limited to, a data destination name, IP address, Port Number, and description. In at least one embodiment, all or a portion of data output by the ente ⁇ rise business process server 101 may go to one or more data destinations 305.
  • FIGURE 19 is an example of an interactive page 1900 provided by the ente ⁇ rise business process server 101 in which a user may review and confirm information associated with the process 310 as described above.
  • Summary process information provided by the page 1900 may include, but is not limited to, the process name, its data source 305, the input and output data specifications, the associated product 315 list, and the data destination(s) 305 for the process output.
  • a process 310 After a process 310 has been created, it may be edited (i.e., source code edit). Edited process instructions may be compiled into the process router. In at least one embodiment, the instructions may be source code instructions.
  • Processing for the method 1100 may end at 1170.
  • the data output from the system and method described may be provided in whole or in part to one or more destinations 305. In other words, all of the output data may be directed to a single destination 305. Alternatively, portions of the output data may be sent to multiple destinations 305.
  • FIGURE 24 provides a functional block diagram showing the relationship among functions, processes and products (e.g., tools) involved in the definition of data quality business processes in an embodiment.
  • the ente ⁇ rise business process management system [0144] In at least one embodiment, the ente ⁇ rise business process management system
  • the interface 100 may include an interface module, an example of which is described more particularly below.
  • the interface module may also include aspects of the user interface described earlier herein.
  • the interface module 304 may be implemented as component of the ente ⁇ rise data quality application 300 as shown in FIGURE 3.
  • the interface module may provide the capability for a user to define, create, modify, test and execute a sequence of function steps for a business process using the ente ⁇ rise business process management system
  • the interface module may include an interactive graphically-oriented process specification tool that allows a user to define or modify a business process by, for example, selecting and moving (e.g., dragging and dropping) symbols relating to process functions to a display location representing a particular process step.
  • Each process step may be represented, for example, as one or more function icons grouped together as shown generally in FIGURE 20.
  • FIGURE 20 shows an example process designer interface interactive display 2000 provided in accordance with at least one embodiment.
  • the interface module process designer may be used to define or specify a business process to be performed by the ente ⁇ rise business process management system 100.
  • the interface module 304 may provide interactive pages similar or in addition to FIGURES 12-19 described earlier herein.
  • a function may be a named section of a program that performs a specific task. In this sense, a function may be a type of procedure or routine.
  • Some programming languages make a distinction between a function, which returns a value, and a procedure, which performs some operation but does not return a value. Most programming languages come with a prewritten set of functions that are kept in a library. Custom functions may also be developed that perform specialized tasks. For example, in the C language and certain other programming languages, a function is a named procedure that performs a distinct service. The language statement that requests the function is called a function call.
  • the process designer interactive display 2000 may include a function library 2005, a process input area 2010, a process step definition area 2015, and a process output area 2020.
  • Each process step 2025 may be represented, for example, as one or a group of function inputs 2030, function outputs 2040, and function identifiers 2035 within the process step definition area 2015.
  • Each function input 2030 may be (or may not be) linked to an input element 2075 within the process input area 2010 using, for example, a link 2045.
  • a link 2045 is also referred to as a connection or "road.”
  • the each function output 2040 may be (or may not be) linked to an output element 2080 within the process output area 2020 using, for example, a link 2045.
  • links 2045 may be used to represent the directional flow of information from source to destination such as, for example, from an input element 2075 to a function input 2030.
  • the flow of information may be controlled by at least one router that uses packet header information and a routing table to determine the destination or target.
  • process steps 2025 may be linked to form, for example, a chain of successive process steps 2025 to be sequentially accomplished in a business process.
  • FIGURE 25 shows an example of a functions overview interactive page provided in an embodiment. Referring to FIGURE 25, a functions overview page 2500 may provide a listing of all functions currently included in the function library 2005. Functions therein may be ordered according to a variety of criteria such as, for example, chronologically by order of creation.
  • FIGURE 26 shows an example of a process definition area portion of a process designer interactive page 2000 provided in an embodiment.
  • Each process step 2025 may represent a particular operation to be accomplished by the ente ⁇ rise business process server when executing that process step 2025.
  • a process step 2025 may include one or more function inputs 2030 and function outputs 2040.
  • a function identifier 2035 may represent a particular operation to be performed using the function input(s) 2030 to produce the function output(s) 2040.
  • the ente ⁇ rise business process management system 100 may perform many different process steps 2025 obtained from multiple application providers within a single business process.
  • the function identifier 2035 may serve to specify the functions and function elements of a particular application provider whose application(s) is used by the ente ⁇ rise.
  • a user of the ente ⁇ rise business process management system 100 may interact with the process designer interactive display 2000 to create and modify process steps 2025 which make up a business process.
  • the user may manipulate, move and link the display icons or symbols representing function inputs 2030, function outputs 2040, function identifiers 2035, input elements 2075, output elements 2080 and links 2045 using, for example, a pointing device of terminals 110-113.
  • a keyboard device may be used for this pu ⁇ ose.
  • a new function input 2030 may be added to a process step 2025 by dragging and dropping (e.g., selecting) the new function input 2030 from the function library 2005 to the desired process step 2025 of the process step definition area 2015.
  • FIGURE 27 shows an example interactive page of the process designer 2000 illustrating adding an element of a process step 2025 from the function library 2005 in an embodiment. If the new function input 2030 requires an input element 2075, then the user may, for example, drag and drop the desired input element 2075 from the function library 2005 to the input area 2010 and add a link 2045 from the new input element 2075 to the new function input 2030.
  • FIGURE 28 shows an example interactive page of the process designer 2000 illustrating linking of process steps 2025 in the process definition area of a process designer interactive page in an embodiment.
  • a function input 2030 may include a conditional statement to specify alternative actions to be taken upon the occurrence (or not) of a specified event.
  • FIGURE 29 shows an example interactive page portion 2900 by which a conditional statement may be defined for an element of a process step according to at least one embodiment.
  • FIGURE 30 shows an example of a products definition interactive page 3000 provided in an embodiment similar to FIGURE 17.
  • FIGURE 31 shows an example of a data destination definition interactive page 3100 provided in an embodiment similar to FIGURE 18.
  • FIGURE 32 shows an example of a products selection interactive page 3200 provided in an embodiment similar to FIGURE 16.
  • the ente ⁇ rise business process management system 100 may retrieve, build and compile from a data store such as, for example, the data store 106, a sequence of instructions implementing the business process defined by the interface module process designer.
  • the interface module 304 of the ente ⁇ rise business process server 101 may obtain a sequence of instructions implementing one or more business processes defined using, for example, the interface module, from the data store 106 for execution by the ente ⁇ rise business process server 101.
  • the interface module 304 may assemble (i.e., build) a sequence of instructions implementing the interface module process designer defined process steps 2025 in a series of build steps utilizing a number of build files.
  • FIGURE 21 shows a series of build files utilized in an embodiment by the ente ⁇ rise business process server to build a code implementation of a business process.
  • a set of build files for a business process may, in an embodiment, include at least one temporary step build file(s) 2050, a process steps file 2055, one or more function attributes file(s) 2060, one or more associated function temporary files(s) 2065, and a process file 2070.
  • the ente ⁇ rise business process management system 100 may use these files in an embodiment to implement a business process defined by a business analyst, for example, using the interface module process designer in the following manner.
  • all functions that have been added to the ente ⁇ rise business process management system may appear in the function library 2005 (FIGURE 20).
  • Each function may be identified in the function library 2005 by a function name and an icon, for example.
  • the function attributes file 2060 may contain all of the necessary information, in XML format, for example, so that when this function is added as a step in a process the function will be displayed on the interface module process designer 2000 with the correct number of function inputs 2030, function outputs 2040, and will have the associated settings defined by the content parameters of data fields used by or produced by the function.
  • every function in the ente ⁇ rise business process management system 100 has its own function attributes file 2060.
  • Function step 2025 shows an example of a function as is appears using the interface module process designer 2000 when added as a step to a business process.
  • the interface module 304 first reads the function attributes file 2060 for that function. After reading the function attributes file 2060, the interface module 304 builds the necessary input and output elements for that function as they are defined in the function attributes file 2060.
  • the interface module 304 may include a function wizard that provides a sequence of interactive pages to the user operable to assist the user in importing a pre-built function into the library or modifying an existing function.
  • the function wizard may include interactive fields of one or more interactive pages in which a user may enter a function name, choose a function icon, enter an associated product name, enter a function type, and add a function description.
  • the function wizard may provide a function template in response to the user entered information.
  • Function templates may be maintained using, for example, the function template files 2065.
  • the function template may include a sequence of instructions that define various aspects of the function (e.g., variables). The actual values for each function variable may be determined by a function setting that corresponds to each function variable.
  • FIGURE 33 shows an example of the content of a function template file page 3300 provided in an embodiment.
  • the temporary step file 2050 may be created.
  • the temporary step file 2050 may be provided in
  • the temporary step file 2050 may contain all of the information about the function as it pertains to this step in the business process. It is important to note that the temporary steps file may be different for every step, even if it is from the same function.
  • the interface module 304 may create the process steps file 2055 when the business process is to be built.
  • the process steps file 2055 may be the joined group of temporary step file(s) 2050 associated with this business process.
  • the interface module 304 may create the process instruction set file 2070 as follows. First, the interface module 304 may read the process steps file 2055. Since each step in may correspond to a function in the function library, the interface module may retrieve the function attributes file 2060 for each step in the process steps file 2055, and then map the data in the process steps file 2055 to the corresponding fields in the function attributes file 2060.
  • the interface module 304 may then map each function attributes file 2060 to a function template file 2065.
  • the function template file 2065 may, in an embodiment, contain source code instructions (e.g., 'C source code) to be added to the sequence of instructions implementing the process.
  • the function template file 2065 may include XML tags that correspond to fields in the associated function attributes file 2060.
  • the interface module 304 may replace the XML tags in the function template file 2065 with the data that was provided in the function attributes file 2060 which was in turn the data that was provided from the process steps file 2055.
  • the ente ⁇ rise data quality application 300 may build a new router DLL including the new process source code file 2070 as shown in FIGURE 22.
  • the instruction set file 2070 may include source code instructions.
  • the ente ⁇ rise data quality application 300 may build a new router DLL 2071 including the new process instruction set file 2070 (e.g, Process File 1) along with other process instruction set files (e.g., Process Files 2-K).
  • the new router DLL 2071 may then be loaded by the ente ⁇ rise business process server 101 and placed into service, at which point the new process may be executed.
  • FIGURES 23a-d provide a flow chart illustrating more particularly a method of implementing a business process in accordance with at least one embodiment. Referring to FIGURE 23, a method may commence at 2300 and proceed to 2302. At 2302, a user may send a request to the ente ⁇ rise business process server 101 to create or modify a business process.
  • the user request may be output by the terminal 110, 111, 112 or 113 to the ente ⁇ rise business process server 101 using a network such as, for example, a packet-based network.
  • a packet-based network is the Internet.
  • the user may be a business analyst, for example.
  • the request may be provided as an XML-formatted request.
  • the ente ⁇ rise business process server 101 may output to the requesting terminal 110, 111, 112 or 113 an interactive page such as, for example, the interface module process designer interactive display 2000.
  • the interface module process designer interactive display 2000 may be provided in the form of an XML-formatted interactive page suitable for display at the terminal using a web browser application of the terminal.
  • Control may then proceed to 2304, at which the user may desire to add a process step to or modify a process step of the business process (reference FIGURE 20). Control may then proceed to 2306, at which the user may determine that a function to be added to a process step, or for which a new process step is to be added, may need to be added to the function library. If so control may proceed to 2308. If not, control may proceed to 2312. [0163] At 2308, the user may enter information defining a new function into the function library. Such information may include, but is not limited to, a function name and a function icon. The function name may provide a brief description of the operation provided by the function. The function icon may be a symbol representing the vendor or provider of the application from which the function is taken. In an embodiment, all functions used in process steps must be included in the function library.
  • Control may then proceed to 2310, at which the user may define particular function attributes using the function attributes file.
  • the function attributes file may include all information necessary to define a function information, in XML format, so that when this function is added as a step in a business process the function will be displayed on the interface module process designer with the correct number of function inputs and function outputs, as well as its associated function settings.
  • the function attributes file may be provided in accordance with the XML format.
  • every function in the function library may have an corresponding function attributes file.
  • FIGURE 34 shows an example of a function settings interactive page 3400 provided in an embodiment.
  • the interface module may first read the function attributes file for that function. After reading the function attributes file, the interface module may build the necessary input and output elements for that function as they are defined in the function attributes file.
  • the temporary step file may be provided in XML format. The temporary step file may contain all of the information about the function as it pertains to this step in the business process. It is important to note that the temporary steps file may be different for every step, even if it is from the same function. [0166] Control may then proceed to 2314, at which the interface module may create the process steps file.
  • the process steps file may be the joined or assembled group of temporary step file(s) associated with this business process.
  • Control may then proceed to 2316, at which the interface module may retrieve the function attributes file for each step in the process steps file. Control may then proceed to 2318, at which the interface module may map the data in the process steps file to the corresponding fields in the function attributes file. Control may then proceed to 2320, at which the interface module may map each function attributes file to a function template file.
  • the function template file may, in an embodiment, contain source code instructions (e.g., 'C source code) to be added to the sequence of instructions implementing the process. Furthermore, in at least one embodiment, the function template file may include XML tags that correspond to fields in the associated function attributes file.
  • Control may then proceed to 2322, at which the interface module may replace the XML tags in the function template file with the data that was provided in the function attributes file, which was in turn the data that was provided from the process steps file. [0169] Control may then proceed to 2324, at which the interface module may assemble the data-populated function template files into a process instruction set file containing a sequence of program instructions implementing the process. Control may then proceed to 2326, at which the interface module may store the process instruction set file in a data store.
  • the instruction set file may be, but is not limited to, a source code file.
  • Control may then proceed to 2328, at which the ente ⁇ rise data quality application core application may determine if the user has specified the business process to be a test process or a production process.
  • the business analyst module 304 may provide an interactive page (not shown) for the user to specify whether a test build or a production build of the router is to be performed. If a test process, control may proceed to
  • control may proceed to 2350 at FIGURE 23d.
  • the ente ⁇ rise data quality application core application may build a new router DLL including the new test process instruction set file (see FIGURE 22).
  • the test process instruction set may be optimized for production.
  • Control may then proceed to 2332, at which the interface module may notify the ente ⁇ rise business process server that a new router is ready to be loaded. Control may then proceed to 2334, at which the ente ⁇ rise business process server may pause and halt any transactions from entering the current router, allow all transactions currently in the router to finish processing, and unload the current router.
  • Control may then proceed to 2336, at which the ente ⁇ rise business process server may notify the interface module that the current router has been unloaded.
  • Control may then proceed to 2338, at which, upon receiving notification that the current router has been unloaded, the interface module may archive the current (i.e., "old") router, replace it with the newly built router, and notify the ente ⁇ rise business process server to load the new router. [0175] Control may then proceed to 2340, at which the ente ⁇ rise business process server may load and initialize the new router and allow transactions to enter the new router.
  • Control may then proceed to 2342, at which the ente ⁇ rise business process server may notify the interface module that the new router has been loaded.
  • Control may then proceed to 2344, at which, upon receiving notification that the new router has been loaded, the interface module may output to the terminal of the user a process tester interactive page.
  • FIGURE 35 shows an example process tester interactive page
  • a process tester interactive page 3500 may include a process test steps listing 3505.
  • Control may then proceed to 2346, at which the terminal may output the process tester interactive page to the user via, for example, a display of a web browser application.
  • FIGURE 36 shows an illustration of a data-populated process definition area of a process tester interactive page 3500 in an embodiment in which the interface module has replaced the XML tags in the function template file with the data that was provided in the function attributes file.
  • Control may then proceed to 2348, at which a method may end.
  • the ente ⁇ rise data quality application core application may build a new router DLL including the new production process instruction set file (see FIGURE 22).
  • the production process instruction set may be optimized for production.
  • Control may then proceed to 2352, at which the interface module may notify the ente ⁇ rise business process server that a new router is ready to be loaded. Control may then proceed to 2354, at which the ente ⁇ rise business process server may pause and halt any transactions from entering the current router, allow all transactions currently in the router to finish processing, and unload the current router. [0182] Control may then proceed to 2356, at which the ente ⁇ rise business process server may notify the interface module that the current router has been unloaded.
  • Control may then proceed to 2358, at which, upon receiving notification that the current router has been unloaded, the interface module may archive the current (i.e., "old") router, replace it with the newly built router, and notify the ente ⁇ rise business process server to load the new router.
  • the interface module may archive the current (i.e., "old") router, replace it with the newly built router, and notify the ente ⁇ rise business process server to load the new router.
  • Control may then proceed to 2360, at which the ente ⁇ rise business process server may load and initialize the new router and allow transactions to enter the new router.
  • Control may then proceed to 2362, at which the ente ⁇ rise business process server may notify the interface module that the current router has been unloaded.
  • Control may then proceed to 2364, at which, upon receiving notification that the new router has been loaded, the interface module may output to the terminal of the user a main processes interactive page.
  • Control may then proceed to 2366, at which the terminal may output the main processes interactive page to the user via, for example, a display of a web browser application.
  • Control may then proceed to 2368, at which a method may end.
  • the ente ⁇ rise business process server 101 may retrieve and execute a particular business process upon receiving a packet of input elements associated with that business process from a data source via a connection.
  • a connection may be a compiled dynamic link library (DLL) file that maps the business application function input data and output data to corresponding information fields of functions of an associated business process.
  • FIGURE 37 shows an example of a connection definition interactive page 3700 by which a user may define a connection according to at least one embodiment.
  • Each ente ⁇ rise application may have a corresponding connection maintained using the data store 106, for example, that maps its functions to one or more business processes executed by the ente ⁇ rise business process server 101.
  • the ente ⁇ rise business process server 101 may retrieve and execute the associated business process and produce its resultant output elements.
  • the ente ⁇ rise business process server 101 may send a packet containing the output elements to a data destination via the connection for further processing.
  • a connection may encapsulate data routing information specifying the path between to ente ⁇ rise nodes.
  • the connection may be a socket connection for a packet-based network such as, for example, TCP/IP.
  • an interface module may provide the capability for a user, such as a business analyst for example, to define, create, modify, implement, test and execute a business process using the ente ⁇ rise business process management system without having to undertake a lengthy requirements definition, general design, detailed design, coding and testing cycle involving software engineering or programming personnel.
  • the interface module of the ente ⁇ rise business process management system as shown herein allows rapid iterative development and implementation of business processes, reducing development costs and time, as well as reducing the need to periodically freeze functional requirements.
  • an ente ⁇ rise business process management system has been described, embodiments of which may provide an integrated data quality management system capable of collecting, analyzing, and reporting information concerning qualitative and quantitative aspects of application or transactional data throughout an ente ⁇ rise.
  • the ente ⁇ rise data quality management system described herein is but one aspect of the ente ⁇ rise business process management system of the present invention.
  • the ente ⁇ rise business process server 101 may be more generally described as a server capable of providing or operating in conjunction with many different ente ⁇ rise business process applications.
  • such an ente ⁇ rise business process management system may provide the capability to collect, analyze, and report information concerning qualitative and quantitative aspects of application or transactional data throughout an ente ⁇ rise across some or all of the computing nodes of the entire enterprise network, and is able to process application data output by heterogeneous computing platforms and applications.
  • the ente ⁇ rise business process management system may provide a variety of integrated views of data present throughout the ente ⁇ rise. Such views may range from data associated with the total ente ⁇ rise, to individual divisions or business functions/business units, down to individuals.
  • an embodiment of the ente ⁇ rise business process management system may be directed to biometric and homeland security applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving finge ⁇ rint analysis, retinal imaging/scanning, voice identification, and image matching and comparison.
  • biometric and homeland security applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving finge ⁇ rint analysis, retinal imaging/scanning, voice identification, and image matching and comparison.
  • an employee of a company may be required to pass a finge ⁇ rint identification scan in order to enter a company facility.
  • data representing the unique finge ⁇ rint scan may be sent to a process maintained by the ente ⁇ rise business process management system.
  • This process may include, for example, comparing the scanned finge ⁇ rint data to a set of valid finge ⁇ rints using one or more functions from different finge ⁇ rint software matching tools that attempt to validate the employee against the company employee finge ⁇ rint database. If the employee is validated as an employee then a signal may be sent from the ente ⁇ rise business process management system to an access control device of the door so that the door will unlock and allow the employee ingress access.
  • photographic imaging data may be input to a multiple step business process that attempts to match the photographic imaging data against multiple image databases to search for matching features. If a match is found, then a signal may be sent to another process maintained by the ente ⁇ rise business process management system to output the image coordinates to a targeting or reporting system.
  • an embodiment of the ente ⁇ rise business process management system may be directed to compliance assurance such as, for example, business compliance with applicable governmental regulations. Such applications are myriad.
  • One example in particular may be a business process directed to ensuring that a healthcare ente ⁇ rise operates in conformance with government mandated rules and regulations such as, for example, the Health Insurance Portability and Accountability Act of 1996 (“HIPAA").
  • business rules applying HIPAA requirements may be maintained in the function library, and a business process defined and executed that includes a series of business rules that must be applied to particular patient information based upon government HIPAA requirements.
  • this process may be a multiple step process with each step representing a different HIPAA requirement. This arrangement may provide for easy modification of such rules based upon changing government requirements.
  • the corresponding functions used to represent the requirements as process steps may be modified as described herein using, for example, the interface module process designer. In this way, new changes to regulations affecting a business may be accommodated with minimal impact to the business process.
  • an embodiment of the ente ⁇ rise business process management system may be directed to ensuring that government data quality regulations are met for a data set. For example, data concerning child welfare provided to the federal government may be required to comply to a specified data accuracy, such as greater than 90% accuracy.
  • an embodiment of the ente ⁇ rise business process management system may be directed to tax assignment applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving geographic coding software and tax assignment software. In a particular example of such a business process, an organization may need to correctly assign the appropriate tax to their client's bills during the billing process. Incorrect tax assignment during the billing process may result in lost customers.
  • a business process may be created and executed (or, alternatively, a sequence of process steps in a billing process) in which customer information, such as address information, is checked for accuracy by multiple functions from different tax assignment business applications (e.g., software packages) prior to final processing and mailing of bills to customers.
  • the results of the functions may then, for example, be compared against each other and based on those results a correct tax could then be assigned.
  • the correct tax assignment and the customer identifier may be sent as input into another business process which may, for example, receive as input a tax assignment and a customer identifier, and then perform multiple steps in which each step would perform an SQL query against different databases.
  • each step may perform a data store lookup of the customer via the customer identifier and then update that customer's tax assignment so that the customer has the same tax assignment across multiple data stores.
  • an embodiment of the ente ⁇ rise business process management system may be directed to product comparison applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving address validation.
  • a business process may be created and executed which receives as input an individual's address, and then performs a multiple step process.
  • each step in the business process may include, for example, a different software vendor's address coder.
  • Each step may attempt to receive as input the address and then validate that address against its own postal database.
  • a comparison of each vendors capabilities may then be performed and statistics could be created to see exactly which product performs the best under certain data conditions.
  • FIGURE 38 illustrates the comparison business process in accordance with an embodiment.
  • an embodiment of the ente ⁇ rise business process management system may be directed to data mapping or transformation applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving data store transformation software.
  • data mapping or transformation applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving data store transformation software.
  • a business process could be created and executed in which there the input data is received in a first format associated with one data store (e.g., first database) and the output data is provided in another data store (e.g., second database) format.
  • each process step may be a mapping from one field type to another, for example.
  • an embodiment of the ente ⁇ rise business process management system may be directed to software-based mapping applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving information matching and database retrieval software.
  • a business process may include information matching and data store lookups for information related to call center operations.
  • a call center operator may take a call from a customer in which the customer provides the call center operator name and address information. The call center operator may input the information using, for example, and interactive page, and then initiate a search request.
  • the search request may cause the name and address information to be sent to a business process maintained by the ente ⁇ rise business process management system that may perform, for example, the following steps: a. Standardize the Name and Address Data b. Create a Match Key c. Perform a series of database lookups using the match Key created in step b d. Each database lookup would return back some information that would be used to build a temporary record e. After all of the database lookups have been performed the Output would be sent back the Call Center Reps screen.
  • Users of the ente ⁇ rise business process management system may be provided different levels of visibility into ente ⁇ rise- level issues such as, but not limited to, data quality issues, so that appropriate corrective action may be taken.
  • the ente ⁇ rise business process management system may automatically make corrections to incorrect or errored data based on a trusted source of data. Because of the integrated view provided by the ente ⁇ rise business process management system of the present invention, the shortcomings of vendor-specific approaches such as, for example, application-specific data checking processes, are minimized.
  • total acquisition costs for data quality tools for example, may be minimized for the ente ⁇ rise through use of the integrated approach described herein, because the need to acquire and maintain many individual independent data quality applications is reduced.
  • the business process server may be further configured to select and execute a set of preferred functions, wherein each preferred function is obtained from one of multiple different business applications.
  • the business process server may select one function from among multiple similar functions provided by business applications based on, for example, a selection heuristic.
  • An example of such a selection heuristic may be the percentage of errors detected by a function in a comparison of multiple similar functions applied to a given set of business application output data.
  • Each of the business applications may or may not be products from different vendors.
  • the function selection criteria may be specified by a user via an interactive page of the interface module. In this way, the ente ⁇ rise business process management system may select a set of preferred or "best of breed" functions from among those offered by different business applications.
  • Run-time If you are linking to .DLL without using headers or .lib files
  • Lib : Provide the Location of the Lib File

Abstract

An enterprise business process management system (100) and method for definition and execution of business processes formed from portions of one or more business applications present in an enterprise. The enterprise business process management system (100) includes a server (101), a router (109), and an interface (111) for defining and executing such business processes. A data quality business process detects, corrects, analyzes, and reports quantitative and qualitative characteristics of application data and transactional data present in the enterprise. An interface module is provided by which a user may select and define function definition information for a business process.

Description

METHOD AND SYSTEM FOR ENTERPRISE BUSINESS PROCESS MANAGEMENT
[0001] This application claims priority to U.S. Provisional Application No. 60/366,547 filed March 25, 2002, entitled "Method and System for Enterprise Data Quality Management." [0002] This disclosure contains information subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure or the patent as it appears in the U.S. Patent and Trademark Office files or records. However, the owner reserves all remaining copyrights associated with the invention described herein, including all copyrights in the screen displays provided herein to facilitate an understanding of the invention.
BACKGROUND OF THE INVENTION
2. Field of the Invention
[0003] Embodiments of the present invention relate generally to business process management and, more particularly, to methods and systems for computer-based business process management.
3. General Background and Description of Related Art
[0004] The automated processing of information has been an enormous benefit to businesses because it has greatly reduced the cost of certain tasks. Every enterprise regardless of whether it is a government, commercial business or not-for-profit organization has the operational necessity to manage information.
[0005] This information is used to acquire customers, input orders, ship product, bill customers, collect invoices, pay employees and vendors, order product, audit inventory and maintain records of transactions between employees, customers and suppliers, for example, in the case of a commercial business.
[0006] In the normal course of events, information is acquired, processed and consolidated utilizing software, computer hardware and digital networks in accordance with each organization's internal operational model.
[0007] Unfortunately, the automated processing of information has also created several problems for businesses, especially where the information in the company's data store is incorrect. Automated processing of incorrect information carries a high cost for businesses in and of itself. In addition, the time, effort, and expense required to correct the undesired results can significantly impact an organization's resources.
[0008] Typical examples of the impact of errors on an organization include:
(1) Recipients receive multiple copies of the same offers in the mail, which may result in: (a) the sender wasting postage and printing, and (b) the recipient being negatively affected by waste and, as a result, not ordering products;
(2) Postal systems and other message and package shippers are unable to deliver a significant percentage of their material to the intended recipients, which may have the result that: (a) the product is not delivered on time and returned to shipper due to inaccurate address, (b) costly efforts being made to determine the correct address and repack and reship the product, (c) the invoices are returned and not paid on time or at all, (d) costly efforts are made to determine correct address and resend invoice, (e) clients become annoyed by poor service and, as a result, switch to another vendor, if possible, and (f) customer service, billing, collections, shipping all require additional resources to perform their functions; (3) Individual operational units contain inaccurate information on clients as well, which may have the result that: (a) enterprise efforts at consolidating information are incomplete, costly and prolonged, and (b) errors in individual operational units, when consolidated, compound the overall error rates and impair the ability for meaningful analysis;
(4) Incomplete and inaccurate information is consolidated in data warehouses, data marts, operational data stores, customer information files and centralized data stores for CRM, ERP, SCM and other centralized processes, which may result in: (a) marketing not being unable to accurately forecast the value and potential of individual clients and client segments and losing valuable market opportunity, (b) customer service not being able to provide the proper service and, as a result, losing clients due to dissatisfaction with service, and (c) fraud not being detected in a timely fashion, resulting in the enterprise being defrauded of large amounts of money;
(5) Operational units are unable to determine the correct tax jurisdiction and tax assignment, which may result in: (a) the enterprises not charging the right tax to the client and paying the right amount to the right authority, (b) taxing authorities not collecting all the proper taxes due them, (c) consumers paying more taxes than they should, and (d) corporations suffering liabilities with tax. jurisdictions and clients; and
(6) Customers are unhappy and move to a competitive service.
[0009] The impact of erroneous information on a company's revenue is easily explained using a typical mass mailing as an example. Naturally, this is but one example, as the list presented above identifies a number of other potential impacts on a company's revenue. [0010] Companies generate customer lists in a variety of ways. Information collected by one part of an enterprise is often used by other parts of an organization to perform their functions. If the company has a retail component and a catalog component, customer information may be entered into the company's data store at the retail location, at the catalog location, or even through the Internet. Each of these three entry positions presents a location where the information may be erroneous or duplicative of pre-existing information. Any error in the accuracy of information as it is collected, processed and consolidated can impact the effectiveness of multiple functions within an enterprise.
[0011] It is possible that a customer may have customer information entered correctly at the retail level. Subsequently, the customer may make a purchase through the catalog division. At that time, the data entry specialist may, for example, enter the customer's name into the data store incorrectly (e.g., by misspelling the person's last name). On still another occasion, the same customer may make a purchase through the Internet. At that time, the customer will be required to supply his or her information for a third time. In this situation, assume that the customer typed his or her last name incorrectly. Therefore, in this scenario, the customer information has been entered three times, two of which were incorrect. [0012] Relying on its stored data, the company then prints and sends an updated copy of its catalog to its customers. Since the customer described has three separate entries in the business' s data store, the customer receives three copies of the same catalog. As is easily understood, the cost to the company of printing and mailing the catalog has been tripled simply because of errors in the company's data store.
[0013] The problem of data quality exists with many businesses. In the prior art, there have been several approaches offered to minimize the data quality problem. [0014] Previous approaches to data quality include providing a variety of vendor-specific or application-specific functions to the business. The data quality functions are designed specifically to automatically review a company's data, identify errors, in some cases, and correct those errors. To do this in such a way that is flexible to different businesses, the data quality functions typically provide several settings that may be adjusted by businesses to meet their individual needs.
[0015] Typically, businesses select a standardized set of settings for a particular data quality function that the business finds most beneficial. The settings may, for example, remove the errors in a data store to "clean" the data store to a point where the data is 95% accurate (which is considered to be a very good result).
[0016] The problem of data quality is compounded when a company includes multiple units, each of which have separate data stores that contain overlapping information, and the company tries to create a consolidated data store.
[0017] In the example presented above, the company had three business components, a retail component, a catalog component, and an Internet component, each of which contained a separate customer information data store. Typically, if each component wished to "clean" up its data, each component would purchase a data quality solution and apply that solution internally. If each component were to produce a data store that was 95% accurate, the result would be considered quite good.
[0018] If the company then tries to create a consolidated data store, a problem arises in that the errors in each data store compound one another. In the case presented, each data store has the same error. The combined data store will have an error rate of 0.95 x 0.95 x 0.95 =
.857375. This means that the resulting data store has an error rate of about 15%, three times higher than each of the data stores that were combined. As may be appreciated, this problem is particularly pronounced when four or more data stores are combined together.
[0019] Furthermore, because the vendor-specific and application-specific data quality functions have unique strengths and weaknesses in detecting and/or correcting errors, the errors may be inadvertently propagated throughout the enterprise as applications pass data back and forth. This may have the undesirable result of causing a multiplicative increase in the overall error rate for the enterprise as a whole.
[0020] While data quality solutions are beneficial to the operation of businesses, they are limited in their ability, especially in cases where companies try to create centralized data stores for multiple business entities in an enterprise or group of entities.
[0021] Moreover, when a business desires to develop a program to "clean up" its centralized data store, current doctrine dictates that the business retain a firm to develop the appropriate software. The development of software follows what is commonly referred to as the Software Development Life Cycle (SDLC).
[0022] The known SDLC adhered to by developers of business processes, such as, for example, data quality processes, results in a time and resource costly lock-step sequential phase approach. For example, a known SDLC includes the following phases which are performed sequentially: requirements definition, general design, detailed design, development, testing, quality assurance checking, trial, implementation, and maintenance/modification. In addition, different personnel or service providers with different skill sets may be required as the project moves from phase to phase. For example, a systems engineer or business analyst may be required during the requirements analysis/definition and test phases, but a software engineer may be required for the design phases. Project handoff between phases introduces errors into the final product and adds cost due to increased project time, increased overhead, and higher project headcount.
[0023] Still further, because the requirements definition phase may be arbitrarily halted (i.e., requirements "frozen") in order to permit design activities to begin, the known SDLC is inflexible and unaccommodating to the evolving needs of customers for software products. [0024] The failings identified above with respect to the prior art cry out for a solution.
SUMMARY OF THE INVENTION [0025] It is, therefore, one aspect of the present invention to provide a business process management system and method that resolves many of the deficiencies in the prior art. [0026] An enterprise business process management system may include an enterprise business process server coupled to one or more clients, a router, and an interface module. In particular, at least one embodiment of an enteφrise business process management system in accordance with the present invention may include an enterprise business process server capable of receiving data from at least one client, at least one router accessible by the enterprise business process server, and at least one business process accessible by the at least one router. The enterprise business process server may be configured to access the at least one business process via the router, to execute the at least one business process on at least a portion of the client data, and to generate business process output data as a function of the at least one business process. The enteφrise business process management system may further include an interface accessible by the enteφrise business process server which operates with the enteφrise business process server to output a process designer interactive page. The process designer interactive page may be configured to accept instructions concerning the at least one business process, to generate process information data, and to provide the process information data to the enteφrise business process server. Furthermore, the enteφrise business process server may build an instruction set for the business process based upon the process information data.
[0027] In accordance with at least one embodiment of the invention, an enteφrise data quality management system and method are provided that determine, analyze, enhance, and report qualitative and quantitative aspects of application data and transactional data present in the enteφrise.
[0028] In accordance with other aspects of the present invention, error reports may be provided at various levels of data processing to identify where data errors are made.
[0029] The system and method also provides for a variety of graphical views to present information concerning where errors are made so that businesses may avoid and correct (or at least minimize) those errors in the future.
[0030] Furthermore, embodiments of the present invention may provide for a shortened
SDLC in which several of the known SDLC steps are combined such that project development time is shortened and the process simplified, resulting in significant time and cost savings.
[0031] For example, in one embodiment, the requirements definition, general design, detailed design, and development phases may be accomplished simultaneously in a single phase utilizing an interactive process designer.
[0032] Moreover, in one embodiment of the invention, by applying test data to the business processes defined and implemented as described herein, the known SDLC test, quality assurance, and trial phases may be accomplished in a single phase.
[0033] In addition, in an embodiment of the invention, each of the SDLC activities may be accomplished through user interaction with one process designer interface provided by a single product. [0034] Furthermore, in an embodiment of the invention, a software engineer may not be required for coding during the project.
[0035] Still further, embodiments of the present invention may allow for the reuse of functions from multiple software applications, as well as providing the capability for the user to define a new or modified function of a business process. In at least one embodiment, each such function may be maintained in a function registry or function library and made available to a business process server for subsequent use in defining additional business processes or modified business processes.
[0036] Still further, embodiments of the present invention may provide an enteφrise to use "best of breed" business processes in combination to achieve increased effectiveness for the overall process. Portions of multiple different business applications may be combined to form a new or modified business process in which the portions are chosen for a particular effect or other such criteria resulting in increased overall effectiveness. For example, several data quality processes, each of which may be obtained from the same or multiple different business applications, may be defined to comprise a single data quality business process that achieves a higher overall data accuracy percentage than would be possible applying each of the multiple data quality business applications alone.
[0037] Still other aspects of the invention will be made apparent from the description that follows and the drawings appended hereto.
BRIEF DESCRIPTION OF THE DRAWINGS [0038] The benefits of the present invention will be readily appreciated and understood from consideration of the following detailed description of at least one exemplary embodiment of this invention, when taken with the accompanying drawings, in which: [0039] FIGURE 1 is an illustrative diagram of a system implementing or employed by the enteφrise business process management system in accordance with at least one exemplary embodiment of the invention;
[0040] FIGURE 2 is a schematic block diagram of equipment that may be used to implement a server designed in accordance with at least one embodiment of the invention; [0041] FIGURE 3 illustrates a functional block diagram of an enteφrise data quality application of the enteφrise business process server in accordance with at least one embodiment of the invention;
[0042] FIGURE 4 is a functional block diagram illustrating the relationship among data sources/destinations, products, and processes in one embodiment of the invention; [0043] FIGURE 5 is a functional block diagram illustrating equipment that may be used to implement a system in accordance with at least one embodiment of the invention; [0044] FIGURE 6 is a flow chart illustrating a method used by the enteφrise business process management system in accordance with at least one exemplary embodiment of the invention;
[0045] FIGURE 7 is an example of an error report for an executive view according to at least one embodiment of the invention;
[0046] FIGURE 8 is an example of an error report for a customer support view according to at least one embodiment of the invention; [0047] FIGURE 9 is an example of an error report for an individual view according to at least one embodiment of the invention;
[0048] FIGURE 10 is an example of an error report for a manager view according to at least one embodiment of the invention;
[0049] FIGURE 11 is a flow chart of a method of establishing a business process process for the enteφrise business process management system in accordance with at least one exemplary embodiment of the invention;
[0050] FIGURE 12 is an exemplary user interaction page of a graphical user interface for creating a business process process in accordance with at least one embodiment of the invention;
[0051] FIGURE 13 is an exemplary user interaction page of a graphical user interface for adding a data source for a process in accordance with at least one embodiment of the invention;
[0052] FIGURE 14 is an exemplary user interaction page of a graphical user interface for defining an input packet for a process in accordance with at least one embodiment of the invention;
[0053] FIGURE 15 is an exemplary user interaction page of a graphical user interface for defining an output packet for a process in accordance with at least one embodiment of the invention;
[0054] FIGURE 16 is an exemplary user interaction page of a graphical user interface for selecting a product to a process in accordance with at least one embodiment of the invention;
[0055] FIGURE 17 is an exemplary user interaction page of a graphical user interface for adding a product for use with a process in accordance with at least one embodiment of the invention; [0056] FIGURE 18 is an exemplary user interaction page of a graphical user interface for selecting a data destination for a process in accordance with at least one embodiment of the invention;
[0057] FIGURE 19 is an exemplary user interaction page of a graphical user interface for establishing a process in accordance with at least one embodiment of the invention;
[0058] FIGURE 20 shows an example process designer interface interactive display for a graphical user interface provided in accordance with at least one embodiment of the invention;
[0059] FIGURE 21 shows a series of build files utilized in an embodiment of the invention by the enteφrise business process server to build a code implementation of a business process;
[0060] FIGURE 22 illustrates a method of building a new router dynamic link library in an embodiment of the invention;
[0061] FIGURES 23a-d are a flow chart illustrating a method of implementing a business process in accordance with at least one embodiment of the invention;
[0062] FIGURE 24 provides a functional block diagram showing the relationship among functions, processes and products (e.g., tools) involved in the definition of business processes in an embodiment of the invention;
[0063] FIGURE 25 shows an example of a functions overview interactive page provided in an embodiment of the invention;
[0064] FIGURE 26 shows an example of a process definition area portion of a process designer interactive page provided in an embodiment of the invention;
[0065] FIGURE 27 shows an example interactive page illustrating adding an element of a process step from the function library in an embodiment of the invention;
[0066] FIGURE 28 shows an example interactive page illustrating linking of process steps in the process definition area of a process designer interactive page in an embodiment of the invention; [0067] FIGURE 29 shows an example interactive page portion by which a conditional statement may be defined for an element of a process step according to at least one embodiment of the invention;
[0068] FIGURE 30 shows an example of a products definition interactive page provided in an embodiment of the invention;
[0069] FIGURE 31 shows an example of a data destination definition interactive page provided in an embodiment of the invention;
[0070] FIGURE 32 shows an example of a products selection interactive page provided in an embodiment of the invention;
[0071] FIGURE 33 shows an example of the content of a function template file page provided in an embodiment of the invention;
[0072] FIGURE 34 shows an example of a function settings interactive page provided in an embodiment of the invention;
[073] FIGURE 35 shows an example process tester interactive page according to an embodiment of the invention;
[0074] FIGURE 36 shows an illustration of a data-populated design area of a process tester interactive page in an embodiment of the invention;
[0075] FIGURE 37 shows an example of a connection definition interactive page according to at least one embodiment of the invention;
[0076] FIGURE 38 illustrates a comparison business process in accordance with an embodiment of the invention; and
[0077] FIGURE 39 shows the relationship between the interface module, enteφrise business process server, and router in an embodiment of the invention. DETAILED DESCRIPTION OF THE INVENTION [0078] This application claims priority to U.S. Provisional Application No. 60/366,547 filed March 25, 2002, entitled "Method and System for Enteφrise Data Quality Management," the entire disclosure of which is hereby incoφorated by reference as if fully set forth herein. [0079] While the present invention will be described in connection with exemplary embodiments thereof, the exemplary embodiments are not intended to be limiting of the invention. On the contrary, alternatives, modifications and equivalents of the described examples are also intended to be included within the spirit and scope of the invention, which is defined in part by the claims appended hereto.
[0080] In accordance with at least one embodiment of the invention, an enteφrise business process management system and method are provided. Although at least one embodiment is presented herein in the form of an embodiment of an enteφrise data quality management system, it is to be understood that the teachings herein may be applied more generally to any enteφrise business process management system, including or in addition to those business processes involved in data quality management. The system and method may utilize a server and an interchangeable router for defining, building and executing steps in business processes, including, for example, steps for detecting, correcting and reporting data errors present in various applications throughout an enteφrise. An enteφrise may include multiple computing nodes located in different geographic or physical locations that comprise a business organization. The various computing nodes may be interconnected for inter-node communication throughout the enteφrise using a network such as, but not limited to, an intranet, the Internet, leased telephone or data lines, a wireless network, or any combination of these. Connected in any of these manners, among others, users associated with the enteφrise may obtain transparent, virtual access to enteφrise applications, processes, and functions regardless of the physical location of the node or nodes where the applications, processes, and functions reside.
[0081] FIGURE 1 is an illustrative diagram of a system implementing or employed by the enteφrise business process management system in accordance with at least one exemplary embodiment of the invention. Referring to FIGURE 1, an enteφrise business process management system 100 may include an enteφrise business process server 101 coupled to one or more additional clients such as, but not limited to, an Extract, Transform and Load (ETL) client 102, an Enteφrise Application Integration (EAI) client 103, an Enteφrise Resource Planning (ERP) client 104, and a Customer Relationship Management (CRM) client 105. The enteφrise business process server 101 may also be coupled to further additional clients such as a Supply Chain Manager (SCM) client (not shown). Each of the additional clients may include at least one business application. Furthermore, the enteφrise business process server 101 may also be coupled to an information data store 106 and a flat files data store 107, one or more mainframes 108, and the Internet 109. In at least one embodiment, the enteφrise business process server 101 may also be coupled to one or more terminals such as a call center terminal(s) 110, data entry terminals 111, local user terminal(s) 112, and remote user terminal(s) 113. In at least one embodiment, the enteφrise business process server 101 may be an enteφrise data quality server or an enteφrise business process server configured to allow for the definition and execution of enteφrise data quality management. [0082] The enteφrise business process server 101 may communicate with enteφrise nodes including the additional clients 102-105, the data stores 106 and 107, mainframes 108, Internet 109 and terminals 110-113 using a variety of communications networks including, but not limited to, a network of interconnected networks such as the Internet, a Local Area Network (LAN), a Wide Area Network (WAN), an intranet including any of these, and/or the PSTN, a wireless network, or any combination thereof. In at least one embodiment, the enteφrise business process server 101 may communicate with one or more of these enteφrise nodes for receiving and transmitting transaction related data as well as error reports, at a minimum. [0083] Generally, the clients 102-105 may be any data source that can send or receive data such as, but not limited to, a server, or a client portion of a client-server application. A client may host one or more business applications processes, or functions of the enteφrise, for example. Clients may be located internal or external to an enteφrise firewall. [0084] The ETL client 102 may be configured to enable an organization to extract data sets from one data source, map the data to another data source, transform the data if necessary, consolidate data sources, and load the data into the destination source or sources. Such an ETL client 102 may be primarily batch processing oriented and utilize a hub architecture in which the transformations and mappings are performed as the data is passed from its source to its destination.
[0085] The EAI client 103 may be configured to enable enteφrise transactions to pass from one application to another within an organization/enteφrise and from one organization to a partner organization that exists on an EAI network. Such an EAI client 103 may use a hub architecture and include capabilities for mapping and transforming data associated with the enteφrise transactions.
[0086] The ERP client 104 may be configured to integrate multiple facets of the business or enteφrise, including planning, manufacturing, sales, and marketing activities. Such an ERP client 104 may use a hub architecture and include capabilities for mapping and transforming data associated with these activities. [0087] The CRM client 105 may be configured to manage multiple aspects of interaction between the organization/entity and its customers using a variety of electronic-based tools, including help-desk software, sales, marketing, e-mail organizers and Web development applications. Such a CRM client 104 may use a hub architecture and include capabilities for mapping and transforming data associated therewith.
[0088] The additional enteφrise clients, including the ETL client 102, EAI client 103, ERP client 104, and CRM client 105, may each include vendor-specific application quality checking processes that operate internally to each of the respective server applications. In at least one embodiment, the enteφrise business process server 101 may include a Transmission Control Protocol/Internet Protocol (TCP/IP) interface for exchange of information with additional enteφrise servers including the ETL client 102, EAI client 103, ERP client 104, and CRM client 105. Information exchanged between the enteφrise business process server 101 and the additional clients may include commands or requests from the enteφrise business process server 101 to perform one or more particular processes or functions of a process (or processes) such as, for example, processes to check data quality. The exchanged information may also include data output by application quality checking processes or functions. The TCP/IP communication interface may allow the enteφrise business process server 101 to connect directly to any application on the enteφrise network. Alternatively, the TCP/IP communication interface may allow the enteφrise business process server to connect to external applications using, for example, the Internet.
[0089] In at least one embodiment, the enteφrise business process server 101 may obtain information from the information data store 106 and the flat files data store 107. In particular, the enteφrise business process server 101 may include application instructions such as data store scripts for accessing, storing, or selectively retrieving information contained in the information data store 106 and the flat files data store 107. The data store scripts may be implemented in the form of programming statements provided in accordance with, for example, SQL version 7.0 data store management system query language, as well as Transact® SQL (in accordance with the ColdFusion® data store management system). Other data store implementations are possible, including, but not limited to, those available from Oracle® or IBM DB2®.
[0090] In an alternative embodiment, the enteφrise business process management system 100 may include an enteφrise database server (not shown) coupled to the enteφrise business process server 101 and the information data store 106 and the flat files data store 107 for the purpose of accessing information stored therein. The information data store 106 may include enteφrise application or transactional data arranged in accordance with a hierarchical data store management system format such as, for example, SQL. The flat files data store 107 may include enteφrise application or transactional non-hierarchical data.
[0091] The enteφrise business process server 101 may also be coupled to one or more mainframes 108 in the enteφrise. The mainframe(s) 108 may include organization or enteφrise applications such as, for example, legacy payroll or accounting systems. In at least one embodiment, the enteφrise business process server 101 may communicate with the mainframe(s) 108 using a Local Area Network (LAN), a Wide Area Network (WAN), dedicated landlines, or a combination thereof, among others.
[0092] Furthermore, in at least one embodiment the enteφrise business process server 101 may also be coupled to one or more terminals such as a call center terminal(s) 110, data entry terminals 111, local user terminal(s) 112, and remote user terminal(s) 113 via LAN, WAN, dedicated landlines, an intranet, the Internet, a wireless network, or a combination thereof. The enteφrise business process server 101 may thereby receive transactional data from one or more of the terminals 110-113.
[0093] In addition, the enteφrise business process server 101 may communicate with users at one or more remote terminals 113 using, for example, the Internet 109. In at least one embodiment, the enteφrise business process server 101 may further include a web browser or thin client for this puφose. The web browser displays data and is capable of communicating with other computers via a network such as, for example, the Internet or an intranet. The web browser may provide a user with a way to navigate, via, for example, hyperlinks which are selected by a pointing device (such as a computer mouse) or typed in by the user. The web browser may use a protocol such as, for example, HyperText Transfer Protocol (HTTP) or File
Transfer Protocol (FTP), to transmit data of various content such as, for example, HTML formatted documents, plain text documents, graphic images, and XML documents for presentation to a user via a display.
[0094] FIGURE 2 illustrates a computing platform that may be used to implement the enteφrise business process server 101 in accordance with at least one embodiment of the invention. As shown in FIGURE 2, the equipment 200 may include a processor 210, a memory 220, a system interface 230, a user interface 240 and a communication/data/control bus 250 that couples elements 210-240 together and allows for cooperation and communication between those elements.
[0095] The memory 220 may be implemented utilizing alternative configurations depending on the needs of a user or a system associated with the enteφrise business process management system. The system interface 230 may include both hardware and software to allow the equipment 200 to communicate with components that provide data utilized by the enteφrise business process management system, for example, transactional data feeds from the additional enteφrise servers. [0096] The processor 210 controls operation of the other elements 220-250, based on instructions fetched from the memory 220. The instructions may include or be implemented as software code that dictates some or all of the operations of the enteφrise business process management system 100 and method explained herein. The memory 220 may include this code and may also include storage area for data utilized by or generated by the enteφrise business process management system 100. The processor 210 may fetch the instructions, decode them, and act or instruct other elements 120-150 to, for example, transfer data to or from the memory 220 or to work in combination with the system interface 230 or the user interface 240 (for example, to input or output information), etc.
[0097] The processor 210 may actually be implemented as more than one processor. The processor 210 may, based on instructions fetched from the memory 220, operate to control operation of the other elements 220-250. It should be appreciated that control may be implemented with the processor 210, for example, in a central processing unit, or other similar device. Similarly, the processor 210 and the memory 220 may be implemented via one or more servers coupled to a network that allows the user interface 240 to be implemented at a user terminal, such as local terminal 112 and remote terminal 113, and include a Graphical User Interface (GUI) on a terminal screen.
[0098] The user interface 240 may include, for example, hardware and software for cooperating with a terminal display, a keyboard and mouse, printer, etc. Moreover, the user interface 240 may include a speaker and microphone, not shown, for outputting and inputting information to and from a user. The user interface 240 may operate in conjunction with the processor 210 to allow a user to interact with software programs stored in the memory 220 and used by the processor 210 so as to perform the operations explained below. [0099] The enteφrise business process server 101 can be implemented, for example, as portions of a suitably programmed general-puφose computer. The system may be implemented, for example, as physically distinct hardware circuits within an ASIC. Thus, it should be appreciated that the particular form of the system 100 may differ from the embodiment(s) explained herein. For example, although the enteφrise business management system 100 has been described as being implementable on a general-puφose computer, for example, a personal computer, it is foreseeable that the system may be implemented in a network environment where the software implementing the system is stored on one or more servers. In at least one embodiment, the enteφrise business process server 101 may allow a user (e.g., an administrative user) to add, modify, or delete business process processes or steps without taking down the server 101. Furthermore, the enteφrise business process server 101 may be scalable in order to easily function within server array or cluster environments and for processing of large volumes of data. In at least one embodiment, the enteφrise business process server 101 may include a Microsoft Windows™ NT enabled personal computing platform, for example.
[00100] In at least one embodiment, the enteφrise business process server 101 may include one or more applications programs containing a series of programmed instructions that cause the enteφrise business process server 101 to be configured to perform the business process operations as described herein. In particular, in at least one embodiment, FIGURE 3 illustrates a functional block diagram of an enteφrise data quality application 300 of the enteφrise business process server 101. Referring to FIGURE 3, the enteφrise data quality application 300 may include a core architecture 301, a set of predefined view tools 302, a developer's kit 303, and an interface module 304, which may be a business analyst interface. The core architecture 301 may include a series of programmed instructions for obtaining application data or transactional data from one or more data sources, analyzing the obtained data for errors, logging detected errors, and generating at least one error report according to a particular requested view. The enteφrise data quality application 300 may include one or more functions designed to analyze a particular type of application data, which may be obtained from one or more data sources, for occurrences of one or more types of errors present in the application data. In addition, the enteφrise data quality application 300 may include instructions causing a request to be transmitted to one or more of the additional enteφrise servers, including the ETL server 102, EAI server 103, ERP server 104, and CRM server 105, requesting execution of a particular application's internal quality checking processes or a particular set of functions of one or more of the application's internal processes. In at least one embodiment, the enteφrise business process server 101 may transmit commands/requests (e.g., function calls or procedure calls/Remote Procedure Calls (RPCs)) and receive responses from the associated server via the TCP/IP interface. The core architecture 301 may include a multi-threaded management layer for automatically converting any legacy applications that are not multi-threaded to multithreaded capabilities.
[00101] In an embodiment, the business analyst module 304 may include a sequence of programmed instructions to implement the interface module (e.g., business analyst interface or BAI) described herein. These instructions may, upon execution by the enteφrise business process management server 101, cause the enteφrise business process management server 101 to provide an interactive means to facilitate user interaction with the enteφrise business process management system 100. In particular, the business analyst module 304 may include instructions operable to cause process steps to be represented graphically, for example, using a display, and indicative of a particular operation to be accomplished by the enteφrise business process server when executing one or more process steps of a business process. As such, the business analyst module 304 may be an overlay application to the developer's kit 303. The business analyst module 304 may also include instructions operable to cause the enteφrise business process server 101 to retrieve, build and compile from a data store such as, for example, the data store 106, a sequence of instructions implementing the business process defined by a user interacting with the interface module.
[00102] In at least one embodiment, the enteφrise business process system 100 may output error information in the form of one or more error reports. Error reports may be presented in accordance with a variety of views. The predefined view tools 302 may include programming instructions associated with one or more error reports provided in accordance with a predefined set of views. For example, the predefined view tools may provide instructions that cause the enteφrise business process server 101 to output an error report including a numeric count of errors for a data source for a manager's view. Further exemplary views and reports are described hereinbelow.
[00103] The developer's kit 303 may include an Application Programming Interface (API) useful for users of the enteφrise business process system 100 or their designated third parties to create and use customized view tools for analyzing particular data, sources, error syndromes, or for providing customized reports over and above the set of predefined view tools 302. There is no limit on the number of views supported by the enteφrise business process management system 100.
[0104] In at least one embodiment, the enteφrise business process server 101 may be implemented in accordance with a client-server architecture. Programmed instructions, including the enteφrise data quality application 300, may be implemented in portable source code such as, but not limited to, generic Microsoft® C. The enteφrise business process server 101 may be implemented in accordance with an encapsulated server design in order to support clusters and server arrays. Furthermore, the enteφrise business process server 101 may be implemented in accordance with a stateless architecture approach to allow use of third-party technology for load balancing and high availability, for purposes of providing reliability and scalability to handle huge volumes of data. In addition, the enteφrise business process server 101 may utilize "sandbox technology" (i.e., use of a combination of process synchronization and isolation techniques such as, for example, handling each session via a separate thread) to allow legacy technology that was not multi-threaded, or even thread-safe, to be quickly and reliably added to the real-time, parallel processing environment.
[0105] FIGURE 4 is a functional block diagram illustrating one contemplated relationship among data sources/destinations, products, and processes according to at least one embodiment of the invention. As shown in FIGURE 4, the enteφrise business process server 101 may receive enteφrise application or transaction data from and transmit to one or more data sources/destinations 305. In at least one embodiment, the enteφrise business process server 101 may provide corrected data following detection of an error to a data source/destination 305 (e.g., data source/destinations 1 through K). Furthermore, the enteφrise business process server 101 may receive process input from one or more products 315 (e.g., Products 1 through M). A product 315 may include a function or set of functions. In at least one embodiment, a function may be a routine in a library that returns a value or set of values. In addition, the enteφrise business process server 101 may include or access one or more processes 310 to perform, for example, the data quality assurance functions described herein (e.g., Processes 1 through N). In at least one embodiment, the enteφrise business process server 101 may provide an individual error log 325 for each process 310. Results from each process 310, including any error log 325 generated, may be stored and maintained using a log data store 320 (which may be the data store 160 described with respect to FIGURE 5). [0106] The enteφrise business process management system 100 may include an architecture designed to utilize an unlimited number of different vendors' products in a unique process for each application (data source) or data set within an application. In particular, the enteφrise business process management system 100 may provide a framework for a unique process that creates, executes, manages and reports on individual process steps in a business process that utilizes different vendors' products on various platforms and enables these products to be used across the entire enteφrise. The enteφrise business process management system 100 may provide archiving or logging of the quality of the data being processed at each step in a multi-vendor environment. The enteφrise business process management system 100 may allow for managing, tracking and reporting on the use of multiple vendors' products in a unique process for any application (data source) or data set within an application. The enteφrise business process management system 100 may provide for the utilization of the same functions from the same or multiple vendors with different settings in a process. The enteφrise business process management system 100 may provide different views on the performance of individuals, business units, or special constituencies within an organization and the enteφrise in regard to particular aspects of the business process such as, for example, data quality. The enteφrise business process management system 100 may provide for comparisons of the effectiveness of various functions and settings from different vendors for the selection of the most effective functions and settings to handle a specific enteφrise issue, such as, for example, a data quality issue. The enteφrise business process management system 100 may provide for the fast implementation of multi- vendor applications, such as data quality tools and data quality processes.
[0107] In particular, the enterprise business process server 101 may utilize a vendor independent architecture that allows for business process tools to be used either on their current computer platform or on the same platform that hosts the enteφrise business process server
101. In at least one embodiment, the enteφrise business process management system 100 provides for reuse of functions of multiple business applications in system 100 defined business processes.
[0108] FIGURE 5 illustrates equipment that may be used to implement a system in accordance with at least one embodiment. In particular, the enteφrise business process system
100 may include not only the enteφrise business process server 101, but may also include a data store 160 and a view engine 170. The data store 160 need not be a single data store but may comprise several data stores together. For example, the data store 160 may be, but is not limited to, an OLAP (On-Line Analytical Processing Database) or a Summary Database. The data store 160 may include, but is not limited to, formatting instructions and rules used by the view engine 170 to produce an error report according to one of several views 400. For example, the view engine 170 may obtain from the data store 160 a sequence of formatting instructions and apply the thus-obtained instructions in generating an error report according to the associated view 400. In at least one embodiment, each view 400 may be associated with a particular set of formatting instructions. The formatting instructions may be implemented in the form of HyperText Markup Language (HTML) or Extensible Markup Language (XML) instructions designed to cause the view engine 170 to render an interactive page containing the requested error report according to the desired view. The interactive page may be, for example, a world wide web page, or a page capable of display at a terminal 112 or 113 using a web browser application. [0109] As can be seen in FIGURE 5, the enteφrise business process management system 100 may provide several different views 400, including, but not limited to, an end user view, a developer view, a manager view, and an executive view. Exemplary views 400 are described in further detail with respect to FIGURES 7-10 below.
[0110] The enteφrise business process management system 100 may provide the ability to create different views 400 of the results of each step in a process for different levels of an organization to permit the measurement and management of the effectiveness of the organization's business processes. The enteφrise business process management system 100 may include visualization software that creates graphical information for the different views 400. This graphical information may include analytical tools, statistical information, data tracking, cost analysis and, in at least one embodiment, an indication of the impact of the results of the different levels of the organization in reducing the errors in data quality. [0111] In order to support the generation of error reports in accordance with a variety of views 400, the data store 160 (which may be an online application processing database or summary database) may maintain error report information in accordance with a "single view" in which information contained in the data store 160 is formatted and arranged in a consistent manner equally accessible by the view engine 170 for the production of any view 400, regardless of the data source/destination 305, product 315, or process 310 from which the data was obtained.
[0112] The enteφrise business process management system 100 may log the results of each step in a process from every data source. This log may provide information regarding who sent the data, what occurred during each step of the process, and where the data was sent after the process was completed. This log may feed directly into the view engine 170, which may be a graphical reporting system, for rendering of multiple views. [0113] In at least one embodiment, view engine 170 may provide graphical reports to various users including executives, managers, end users, and process developers that convey information regarding how they, their department, organization or processes are performing. In particular, in at least one embodiment, view engine 170 may provide the following views 400, for example views for Executives, Managers, Users, and Developers. The Executive View provides graphical reports on the quality of data for the whole organization. Executives can drill down into the performance of every segment within the organization to compare performances and causes of data quality issues. Executives have access to Manager and User Reporting modules as well. The Managers View provides graphical reports on the quality of data in the manager's organization(s) and department(s). Managers can drill down into the performances of their business units and departments and compare performances and causes of issues such as, for example, data quality. The Users View provides graphical reports on the quality of the data that has been entered by users into the system. Users can drill down on the specific problems and review the input and output data and result codes of each step in the process. The Developers View provides graphical reports on the results of all processes and steps so that developers may analyze the results and make changes to the process to improve the results. Developers can readjust the sequences of functions, eliminate functions, utilize functions from other vendors, add new functions from different vendors and create new functions themselves.
[0114] The view engine 170 may include statistical modeling packages that can be used to add the financial impact of data that is validated/corrected and not validated/corrected. In at least one embodiment, the view engine 170 may be implemented using graphical modeling technology available from, for example, Illumitek™ Coφ. of Dulles, Virginia. [0115] FIGURE 6 provides further details concerning implementation of the analysis that may be performed by the enteφrise business process management system 100. The enteφrise data quality management system 100 may provide for the creation of a unique process for each application or data set from that application using all or a subset of the functions and settings available within all the business process products present in the enteφrise network and externally available. Each application or data set within an application is capable of utilizing all the functions and settings in a sequence appropriate for meeting unique needs. Such business processes may be composed of an unlimited number of steps. Each step may correspond to a function and setting or a series of functions and settings from a particular vendor. The enteφrise business process management system 100 may provide archiving and logging of the results of every step in a multi-vendor process. Log files may be automatically logged to a text file or a data store. In particular, errors may be determined and logged at the process level.
[0116] The enteφrise business process management system 100 may include the ability to compare the strengths and weaknesses of each vendor's functions and settings in a multi- vendor, multi-step process. Furthermore, the enteφrise business process management system 100 may provide a fast, easy to use methodology for installing products and functions from multiple vendors to expedite the implementation of business process projects. Thus, in at least one embodiment, the enteφrise business process management system 100 may be vendor independent while allowing users access to all the functions included in additional enteφrise servers or application, including existing business process vendor products, custom codes, or services. Through use of the function oriented approach as described herein, a user may sequence the business process functions, such as, for example, data quality functions, from different vendors in any order determined to fit the needs of each data set and data source. Furthermore, a user may establish unique processes 310 and steps for each data set within a data source as described with respect to FIGURE 11.
[0117] A vendor may be a software company that provides functionality to, for example, identify and separate into distinct fields the elements of a business and consumer name; identify, separate, validate and correct each element of an address; identify, separate, validate, correct and transform non-name and address information for on-line transactions and batch processing; consolidate data from different records and different data sources; augment the original data with additional data; and create a single record or view of that individual or client. [0118] The enteφrise business process management system 100 may include a Graphical User Interface (GUI) capable of allowing a user to create a process for an application or data set from an application. The user may specify the format for the data, and may also create individual steps in a process by calling a specific function(s) and setting(s) from an available tool for each step. The GUI may be implemented using Java® instructions, for example. The user may repeat the exercise of creating steps until a business process process is fully defined and completed. The process may be represented, viewed and navigated in a hierarchical fashion where a single step may represent a multi-step sub process. The process depiction and description may be presented on other output devices, such as printer. The process depiction and description may be exported for viewing and manipulation by external applications, such as a word processor, flow chart application, or web browser. The user may then identify the destination(s) for the results of the process and decide what information is to be sent to each destination. The results of each step within a Process may be logged to a text file or data store. The data that is stored in the text file or data store may used by a view engine, which may include visualization software, to create graphical reports, which contains analytical information, statistical information, data tracking, cost analysis, and the impact of data for the different levels within an organization. This information may be used to measure and monitor the effectiveness of an enteφrise business process such as, for example, a data quality program.
[0119] FIGURE 39 shows the relationship between the interface module 304, enteφrise business process server 101, and router 3905 in an embodiment. Referring to FIGURE 39, input data 605 from a data source such as, for example, a business application, may be received by the enteφrise business process server 101. In an embodiment, the input data 605 may include a process identifier specifying a particular business process to which the input data 605 is to be applied. The enteφrise business process server 101 may be configured to detect the input data 605 process identifier and provide the input data 605 to the specified business process of the router 3905. In an embodiment, the router 3905 may include an integrated instruction set embodying one or more business processes (e.g., processes 1, 2 and 3 are shown in FIGURE 39). The instructions for each business process may include calls to tools 3910 (i.e., functions) residing external to the router 3905 for performing process steps, as well as tools 3910 obtained from business applications external to the router 3905 but residing on the router 3905.
[0120] In at least one embodiment, the router 3905 may be an interchangeable router in which new versions or loads for the router 3905 may replace the current router 3905 version, and be placed in service and handle data traffic, without the need to take the server 101 down (i.e, out of service). The router 3905 may include the instruction set for the currently active business processes provided by the enteφrise business process management system 100. A new router 3905 version may be built and placed into service to begin data traffic handling according to a new or modified business process. In an embodiment, the interface module 304 may generate an instruction set embodying a new or modified business process in response to user entered function information. The user may enter the function information using, for example, a process designer interactive page provided by the interface module 304. Following replacement of the current router version with a new router version, input data 605 may be handled according to the new router version. Further details concerning the replacement of a current router version with a new router version are described with respect to FIGURES 23a-d herein.
[0121] Referring to FIGURE 6, a method 600 may commence with the enteφrise business process server 101 receiving input data at 605. The input data 605 may be received from a data source/destination 305.
[0122] Control may then proceed to 610 at which the input data may be passed to a process router. Based on a process identifier, the process router may direct the input data to a particular process 310 (e.g., Process X). In at least one embodiment, the process router may allow processes and steps to be easily and quickly modified without bringing down the server 101 (i.e., an interchangeable or hot swappable router).
[0123] Control may then proceed to 615, at which the process 310 (e.g., Process X) may receive the input data and pass it to each step in a multiple step process. An example of a business process is a data quality process such as an address validation operation in which transactional data (obtained from a data source/destination 305 associated with a particular enteφrise application) is compared to a trusted source such as, for example, a United States Postal Service database. Control may then proceed to a second step at 620 and thereafter to subsequent steps (e.g., Step N) at 635. After each step in the process 310, the results of the step may be entered into a log 630, such as, for example, error log 315, and the data is passed to the next step. The results of each step of the process 310 and the error log 315 may be maintained in a data store 625, such as the data store 160. As mentioned above, the data store 625 (and the data store 160) may be, but is not limited to, an OLAP (On-Line Analytical Processing Database) or a Summary Database. Logging may include server Logging (e.g., logging of all transactions received by the server, logging of server statistics) as well as process logging (e.g., detailed logging of each step within a process that can be used for analysis on transaction data and product abilities).
[0124] After the final step in the process 310 has been completed, control may proceed to 640 at which the process results may be applied to an output data structure. The output data may then be provided to a data source/destination 305, following which processing may end for the method 600.
[0125] In at least one embodiment, a process 310 may include fields such as, but not limited to, ROME D, ROME_TIME, SECT_CODE, SOURCE_DEST, SUB_SOURCE_DEST, RETURN_CODE, and INPUT COMPONENT 1-N. Each step in a process 310 may include fields such as, but not limited to, ROMEJJTD, ROME TIME, PRODUCT D, PRODUCT_RC, STEPJD, and OUTPUT COMPONENT 1-M. Each data packet may have a unique identifier (e.g., "ROMEJDD") that can be used to track the results of multiple submissions of the same data packet.
[0126] As described earlier herein with respect to FIGURE 5, for example, in at least one embodiment, the enteφrise business process server 101 may provide error reports in accordance with one or more views 400. FIGURE 7 is an example of an error report for an executive view according to at least one embodiment of the invention. As shown in FIGURE 7, an executive view 700 may include one or more error reports providing data error information for a variety of divisions 705 of an enteφrise. For example, the exemplary executive view 700 shown in FIGURE 7 may present an error report for divisions 705 including marketing, finance, sales, development, web, and customer support divisions, giving the requesting user (e.g., enteφrise executive) visibility into aspects of the enteφrise such as, for example, data quality, so that corrective action may be taken, for example. In at least one embodiment, incorrect or errored records may be marked to indicate that they were not corrected, and the reasons for such.
[0127] In particular, an error report may provide in numeric as well as graphical form, using tools such as charts 715 and 720, ranking or statistical analysis of the errors detected in a given set of enteφrise application data or transactional data. For example, in at least one embodiment the enteφrise business process management system 100 may perform analysis processes that provide information to the requesting user such as, but not limited to, a ranking of the data errors 720 detected for applications within different divisions 705, a traffic intensity indicator 710 for data transactions flowing into and out of a division 705, a productivity chart 715 showing the change in productivity for each division 705 over time, and a process error classification 725 of the strengths, weaknesses, costs, and gains associated with the data quality for the divisions 705.
[0128] Similarly, FIGURES 8-10 are examples of an error report for a customer support view 800, an individual view 900, and a manager view 1000, respectively, according to at least one embodiment. Items including reference numbers identical to those appearing in FIGURE 7 are as described earlier with respect thereto. [0129] In particular, for individual view 900, the enteφrise business process management system 100 may provide visibility to the requesting user into, for example, data errors attributable to a particular individual. For example, FIGURE 9 shows a process error classification 725 of the strengths, weaknesses, costs, and gains associated with a particular individual 905, as well as the error types 910 committed by the individual 905 and the number of errors distributed over time 915 attributable to the individual 905. The example error classification 725 of the error report in FIGURE 9 shows that the individual 905 is strong (i.e., few errors committed) in entering address information, is weak (i.e., many errors) in entering names, has committed 80, 74, and 22 errors in different time periods, and has cost the enteφrise $800 as a result of the data errors.
[0130] Furthermore, for manager view 1000, the enteφrise business process management system 100 may provide visibility to the requesting user (e.g., enteφrise manager) into data errors attributable to particular individuals 905 and to the individuals as a group. For example, FIGURE 10 shows a process error classification 725 of the strengths, weaknesses, costs, and gains associated with multiple individuals 905, as well as the error types 910 committed by each of the individuals 905 and the number of errors distributed over time 915 (e.g., time of day) attributable to the group. A cost per time period chart 1005 may also be provided indicating the daily cost incurred by the enterprise for the data errors attributed to each individual 905.
[0131] In at least one embodiment, the enteφrise business process management system 100 may provide the capability for a user (e.g., an administrative user) to create and establish business processes 310 for execution by the enteφrise business process server 101. FIGURE 11 is a flow chart of a method 1100 of establishing an exemplary data quality process for the enteφrise business process management system 100 in accordance with at least one embodiment. The method 1100 may commence at 1105 upon the enteφrise business process server 101 receiving a user request to create a process 310. A user may enter a request to create a process 310 by, for example, using a pointing device to select an associated hyperlink contained on an interactive page provided by a graphical user interface portion of the enteφrise data quality application 300.
[0132] Control may then proceed to 1110, at which the enteφrise business process server 101 may prompt the user to create a process name and select a data source for the process 310. FIGURE 12 is an example of an interactive page 1200 provided by the enteφrise business process server 101 in which a user may enter a process name, description, and associated data source 305.
[0133] Control may then proceed to 1115, at which the enteφrise business process server 101 may prompt the user to enter a new data source 305, if necessary. If the user responds by requesting to add a new data source 305, control may proceed to 1120 at which the enteφrise business process server 101 may generate and output an interactive page 1300 for a user to add a data source 305. FIGURE 13 is an example of an interactive page 1300 provided by the enteφrise business process server 101 in which a user may add a data source 305 by entering information such as, but not limited to, a data source name, description, IP address, Port Number, and platform identifier.
[0134] Control may then proceed to 1125, at which the enteφrise business process server 101 may prompt the user to create an input packet for the process 310. FIGURE 14 is an example of an interactive page 1400 provided by the enteφrise business process server 101 in which a user may create an input packet by entering attribute information such as, but not limited to, an input element name, type, length, and description. The input element type may specify a data type for the input packet such as, but not limited to, boolean, character, double character, wide character (UNICODE), floating point decimal, integer, long integer, or short integer.
[0135] Control may then proceed to 1130, at which the enteφrise business process server 101 may prompt the user to create an output packet for the process 310. FIGURE 15 is an example of an interactive page 1500 provided by the enteφrise business process server 101 in which a user may create an output packet by entering attribute information such as, but not limited to, an output element name, type, length, and description. The output element type may specify a data type for the output packet such as, but not limited to, boolean, character, double character, wide character (UNICODE), floating point decimal, integer, long integer, or short integer.
[0136] Control may then proceed to 1135, at which the enteφrise business process server 101 may prompt the user to select a product 315 (or function or set of functions, as the case may be) to be associated with the process 310. A product 315 may include a function or a set of functions. FIGURE 16 is an example of an interactive page 1600 provided by the enteφrise business process server 101 using which a user may select a product 315 by entering, as a minimum, a selection of a product 315 from a pull-down list, for example, and a product description.
[0137] Control may then proceed to 1140, at which the enteφrise business process server 101 may prompt the user to add a product 315, if necessary. If the user responds by requesting to add a product 315, control may proceed to 1145 at which the enteφrise business process server 101 may generate and output an interactive page 1700 for a user to add a product 315. FIGURE 17 is an example of an interactive page 1700 provided by the enteφrise business process server 101 in which a user may add a product 315 by entering information such as, but not limited to, a product name, product type, version, and product template. APPENDIX A hereto provides an exemplary sequence of pseudocode instructions for creating a product template.
[0138] Control may then proceed to 1150, at which the enteφrise business process server 101 may prompt the user to select a data destination 305 for the process 310. FIGURE 18 is an example of an interactive page 1800 provided by the enteφrise business process server 101 in which a user may enter a data destination name and description.
[0139] Control may then proceed to 1155, at which the enteφrise business process server 101 may prompt the user to enter a new data destination 305, if necessary. If the user responds by requesting to add a new data destination 305, control may proceed to 1160 at which the enteφrise business process server 101 may generate and output an interactive page (not shown) for a user to add a data destination 305 by entering information such as, but not limited to, a data destination name, IP address, Port Number, and description. In at least one embodiment, all or a portion of data output by the enteφrise business process server 101 may go to one or more data destinations 305.
[0140] Control may then proceed to 1165, at which the enteφrise business process server 101 may prompt the user to establish the process 310. FIGURE 19 is an example of an interactive page 1900 provided by the enteφrise business process server 101 in which a user may review and confirm information associated with the process 310 as described above. Summary process information provided by the page 1900 may include, but is not limited to, the process name, its data source 305, the input and output data specifications, the associated product 315 list, and the data destination(s) 305 for the process output. After a process 310 has been created, it may be edited (i.e., source code edit). Edited process instructions may be compiled into the process router. In at least one embodiment, the instructions may be source code instructions.
[0141] Processing for the method 1100 may end at 1170.
[0142] It should be noted that the data output from the system and method described may be provided in whole or in part to one or more destinations 305. In other words, all of the output data may be directed to a single destination 305. Alternatively, portions of the output data may be sent to multiple destinations 305.
[0143] FIGURE 24 provides a functional block diagram showing the relationship among functions, processes and products (e.g., tools) involved in the definition of data quality business processes in an embodiment.
[0144] In at least one embodiment, the enteφrise business process management system
100 may include an interface module, an example of which is described more particularly below. The interface module may also include aspects of the user interface described earlier herein. In an embodiment, the interface module 304 may be implemented as component of the enteφrise data quality application 300 as shown in FIGURE 3. The interface module may provide the capability for a user to define, create, modify, test and execute a sequence of function steps for a business process using the enteφrise business process management system
100. In particular, the interface module may include an interactive graphically-oriented process specification tool that allows a user to define or modify a business process by, for example, selecting and moving (e.g., dragging and dropping) symbols relating to process functions to a display location representing a particular process step. Each process step may be represented, for example, as one or more function icons grouped together as shown generally in FIGURE 20. FIGURE 20 shows an example process designer interface interactive display 2000 provided in accordance with at least one embodiment. Thus, the interface module process designer may be used to define or specify a business process to be performed by the enteφrise business process management system 100. As an overlay application to the developer's toolkit 303, the interface module 304 may provide interactive pages similar or in addition to FIGURES 12-19 described earlier herein.
[0145] A function may be a named section of a program that performs a specific task. In this sense, a function may be a type of procedure or routine. Some programming languages make a distinction between a function, which returns a value, and a procedure, which performs some operation but does not return a value. Most programming languages come with a prewritten set of functions that are kept in a library. Custom functions may also be developed that perform specialized tasks. For example, in the C language and certain other programming languages, a function is a named procedure that performs a distinct service. The language statement that requests the function is called a function call.
[0146] Referring to FIGURE 20, the process designer interactive display 2000 may include a function library 2005, a process input area 2010, a process step definition area 2015, and a process output area 2020. Each process step 2025 may be represented, for example, as one or a group of function inputs 2030, function outputs 2040, and function identifiers 2035 within the process step definition area 2015. Each function input 2030 may be (or may not be) linked to an input element 2075 within the process input area 2010 using, for example, a link 2045. A link 2045 is also referred to as a connection or "road." Similarly, the each function output 2040 may be (or may not be) linked to an output element 2080 within the process output area 2020 using, for example, a link 2045. In an embodiment, links 2045 may be used to represent the directional flow of information from source to destination such as, for example, from an input element 2075 to a function input 2030. The flow of information may be controlled by at least one router that uses packet header information and a routing table to determine the destination or target. Furthermore, process steps 2025 may be linked to form, for example, a chain of successive process steps 2025 to be sequentially accomplished in a business process. [0147] FIGURE 25 shows an example of a functions overview interactive page provided in an embodiment. Referring to FIGURE 25, a functions overview page 2500 may provide a listing of all functions currently included in the function library 2005. Functions therein may be ordered according to a variety of criteria such as, for example, chronologically by order of creation.
[0148] FIGURE 26 shows an example of a process definition area portion of a process designer interactive page 2000 provided in an embodiment.
[0149] Each process step 2025 may represent a particular operation to be accomplished by the enteφrise business process server when executing that process step 2025. In particular, a process step 2025 may include one or more function inputs 2030 and function outputs 2040. Furthermore, a function identifier 2035 may represent a particular operation to be performed using the function input(s) 2030 to produce the function output(s) 2040. In an embodiment, the enteφrise business process management system 100 may perform many different process steps 2025 obtained from multiple application providers within a single business process. In at least one embodiment, the function identifier 2035 may serve to specify the functions and function elements of a particular application provider whose application(s) is used by the enteφrise. Furthermore, multiple business processes may be supported by the enteφrise business process management system 100. [0150] In at least one embodiment, a user of the enteφrise business process management system 100 may interact with the process designer interactive display 2000 to create and modify process steps 2025 which make up a business process. In particular, the user may manipulate, move and link the display icons or symbols representing function inputs 2030, function outputs 2040, function identifiers 2035, input elements 2075, output elements 2080 and links 2045 using, for example, a pointing device of terminals 110-113. Alternatively, a keyboard device may be used for this puφose. For example, a new function input 2030 may be added to a process step 2025 by dragging and dropping (e.g., selecting) the new function input 2030 from the function library 2005 to the desired process step 2025 of the process step definition area 2015. FIGURE 27 shows an example interactive page of the process designer 2000 illustrating adding an element of a process step 2025 from the function library 2005 in an embodiment. If the new function input 2030 requires an input element 2075, then the user may, for example, drag and drop the desired input element 2075 from the function library 2005 to the input area 2010 and add a link 2045 from the new input element 2075 to the new function input 2030. FIGURE 28 shows an example interactive page of the process designer 2000 illustrating linking of process steps 2025 in the process definition area of a process designer interactive page in an embodiment.
[0151] In an embodiment, a function input 2030 may include a conditional statement to specify alternative actions to be taken upon the occurrence (or not) of a specified event. FIGURE 29 shows an example interactive page portion 2900 by which a conditional statement may be defined for an element of a process step according to at least one embodiment. [0152] FIGURE 30 shows an example of a products definition interactive page 3000 provided in an embodiment similar to FIGURE 17. FIGURE 31 shows an example of a data destination definition interactive page 3100 provided in an embodiment similar to FIGURE 18. FIGURE 32 shows an example of a products selection interactive page 3200 provided in an embodiment similar to FIGURE 16.
[0153] In at least one embodiment, the enteφrise business process management system 100 may retrieve, build and compile from a data store such as, for example, the data store 106, a sequence of instructions implementing the business process defined by the interface module process designer. In an embodiment, the interface module 304 of the enteφrise business process server 101 may obtain a sequence of instructions implementing one or more business processes defined using, for example, the interface module, from the data store 106 for execution by the enteφrise business process server 101.
[0154] In at least one embodiment, the interface module 304 may assemble (i.e., build) a sequence of instructions implementing the interface module process designer defined process steps 2025 in a series of build steps utilizing a number of build files. FIGURE 21 shows a series of build files utilized in an embodiment by the enteφrise business process server to build a code implementation of a business process. Referring to FIGURE 21, a set of build files for a business process may, in an embodiment, include at least one temporary step build file(s) 2050, a process steps file 2055, one or more function attributes file(s) 2060, one or more associated function temporary files(s) 2065, and a process file 2070. The enteφrise business process management system 100 may use these files in an embodiment to implement a business process defined by a business analyst, for example, using the interface module process designer in the following manner.
[0155] In an embodiment, all functions that have been added to the enteφrise business process management system may appear in the function library 2005 (FIGURE 20). Each function may be identified in the function library 2005 by a function name and an icon, for example. The function attributes file 2060 may contain all of the necessary information, in XML format, for example, so that when this function is added as a step in a process the function will be displayed on the interface module process designer 2000 with the correct number of function inputs 2030, function outputs 2040, and will have the associated settings defined by the content parameters of data fields used by or produced by the function. In an embodiment, every function in the enteφrise business process management system 100 has its own function attributes file 2060. Function step 2025 shows an example of a function as is appears using the interface module process designer 2000 when added as a step to a business process. When a function is added to the business process, the interface module 304 first reads the function attributes file 2060 for that function. After reading the function attributes file 2060, the interface module 304 builds the necessary input and output elements for that function as they are defined in the function attributes file 2060.
[0156] In an embodiment, the interface module 304 may include a function wizard that provides a sequence of interactive pages to the user operable to assist the user in importing a pre-built function into the library or modifying an existing function. The function wizard may include interactive fields of one or more interactive pages in which a user may enter a function name, choose a function icon, enter an associated product name, enter a function type, and add a function description. The function wizard may provide a function template in response to the user entered information. Function templates may be maintained using, for example, the function template files 2065. The function template may include a sequence of instructions that define various aspects of the function (e.g., variables). The actual values for each function variable may be determined by a function setting that corresponds to each function variable. FIGURE 33 shows an example of the content of a function template file page 3300 provided in an embodiment. [0157] After the function has been added to the business process, a temporary step file
2050 may be created. In an embodiment, the temporary step file 2050 may be provided in
XML format. The temporary step file 2050 may contain all of the information about the function as it pertains to this step in the business process. It is important to note that the temporary steps file may be different for every step, even if it is from the same function.
[0158] Furthermore, as illustrated in FIGURE 21, the interface module 304 may create the process steps file 2055 when the business process is to be built. In an embodiment, the process steps file 2055 may be the joined group of temporary step file(s) 2050 associated with this business process.
[0159] Finally, the interface module 304 may create the process instruction set file 2070 as follows. First, the interface module 304 may read the process steps file 2055. Since each step in may correspond to a function in the function library, the interface module may retrieve the function attributes file 2060 for each step in the process steps file 2055, and then map the data in the process steps file 2055 to the corresponding fields in the function attributes file 2060.
Next, after the information from the process steps file 2055 has been linked to corresponding fields in the function attributes file 2055, the interface module 304 may then map each function attributes file 2060 to a function template file 2065. The function template file 2065 may, in an embodiment, contain source code instructions (e.g., 'C source code) to be added to the sequence of instructions implementing the process. Furthermore, in at least one embodiment, the function template file 2065 may include XML tags that correspond to fields in the associated function attributes file 2060. As the function template file source code is being added to the source code in the process instruction set file 2070, the interface module 304 may replace the XML tags in the function template file 2065 with the data that was provided in the function attributes file 2060 which was in turn the data that was provided from the process steps file 2055. [0160] In an embodiment, following build of a new process instruction set file 2070, the enteφrise data quality application 300 may build a new router DLL including the new process source code file 2070 as shown in FIGURE 22. In at least one embodiment, the instruction set file 2070 may include source code instructions. Referring to FIGURE 22, the enteφrise data quality application 300 may build a new router DLL 2071 including the new process instruction set file 2070 (e.g, Process File 1) along with other process instruction set files (e.g., Process Files 2-K). The new router DLL 2071 may then be loaded by the enteφrise business process server 101 and placed into service, at which point the new process may be executed. [0161] FIGURES 23a-d provide a flow chart illustrating more particularly a method of implementing a business process in accordance with at least one embodiment. Referring to FIGURE 23, a method may commence at 2300 and proceed to 2302. At 2302, a user may send a request to the enteφrise business process server 101 to create or modify a business process. In an embodiment, the user request may be output by the terminal 110, 111, 112 or 113 to the enteφrise business process server 101 using a network such as, for example, a packet-based network. An example of a packet-based network is the Internet. The user may be a business analyst, for example. In an embodiment, the request may be provided as an XML-formatted request. In response, the enteφrise business process server 101 may output to the requesting terminal 110, 111, 112 or 113 an interactive page such as, for example, the interface module process designer interactive display 2000. In an embodiment, the interface module process designer interactive display 2000 may be provided in the form of an XML-formatted interactive page suitable for display at the terminal using a web browser application of the terminal. [0162] Control may then proceed to 2304, at which the user may desire to add a process step to or modify a process step of the business process (reference FIGURE 20). Control may then proceed to 2306, at which the user may determine that a function to be added to a process step, or for which a new process step is to be added, may need to be added to the function library. If so control may proceed to 2308. If not, control may proceed to 2312. [0163] At 2308, the user may enter information defining a new function into the function library. Such information may include, but is not limited to, a function name and a function icon. The function name may provide a brief description of the operation provided by the function. The function icon may be a symbol representing the vendor or provider of the application from which the function is taken. In an embodiment, all functions used in process steps must be included in the function library.
[0164] Control may then proceed to 2310, at which the user may define particular function attributes using the function attributes file. The function attributes file may include all information necessary to define a function information, in XML format, so that when this function is added as a step in a business process the function will be displayed on the interface module process designer with the correct number of function inputs and function outputs, as well as its associated function settings. In an embodiment, the function attributes file may be provided in accordance with the XML format. Also in an embodiment, every function in the function library may have an corresponding function attributes file. FIGURE 34 shows an example of a function settings interactive page 3400 provided in an embodiment. [0165] Control may then proceed to 2312, at which a temporary step file may be created as follows. When a function is added to the business process, the interface module may first read the function attributes file for that function. After reading the function attributes file, the interface module may build the necessary input and output elements for that function as they are defined in the function attributes file. In an embodiment, the temporary step file may be provided in XML format. The temporary step file may contain all of the information about the function as it pertains to this step in the business process. It is important to note that the temporary steps file may be different for every step, even if it is from the same function. [0166] Control may then proceed to 2314, at which the interface module may create the process steps file. In an embodiment, the process steps file may be the joined or assembled group of temporary step file(s) associated with this business process.
[0167] Control may then proceed to 2316, at which the interface module may retrieve the function attributes file for each step in the process steps file. Control may then proceed to 2318, at which the interface module may map the data in the process steps file to the corresponding fields in the function attributes file. Control may then proceed to 2320, at which the interface module may map each function attributes file to a function template file. The function template file may, in an embodiment, contain source code instructions (e.g., 'C source code) to be added to the sequence of instructions implementing the process. Furthermore, in at least one embodiment, the function template file may include XML tags that correspond to fields in the associated function attributes file.
[0168] Control may then proceed to 2322, at which the interface module may replace the XML tags in the function template file with the data that was provided in the function attributes file, which was in turn the data that was provided from the process steps file. [0169] Control may then proceed to 2324, at which the interface module may assemble the data-populated function template files into a process instruction set file containing a sequence of program instructions implementing the process. Control may then proceed to 2326, at which the interface module may store the process instruction set file in a data store. The instruction set file may be, but is not limited to, a source code file.
[0170] Control may then proceed to 2328, at which the enteφrise data quality application core application may determine if the user has specified the business process to be a test process or a production process. In an embodiment, the business analyst module 304 may provide an interactive page (not shown) for the user to specify whether a test build or a production build of the router is to be performed. If a test process, control may proceed to
2330 at FIGURE 23c. If a production process, control may proceed to 2350 at FIGURE 23d.
[0171] At 2330 of FIGURE 23c, at which following the build of a new test process instruction set file, the enteφrise data quality application core application may build a new router DLL including the new test process instruction set file (see FIGURE 22). The test process instruction set may be optimized for production.
[0172] Control may then proceed to 2332, at which the interface module may notify the enteφrise business process server that a new router is ready to be loaded. Control may then proceed to 2334, at which the enteφrise business process server may pause and halt any transactions from entering the current router, allow all transactions currently in the router to finish processing, and unload the current router.
[0173] Control may then proceed to 2336, at which the enteφrise business process server may notify the interface module that the current router has been unloaded.
[0174] Control may then proceed to 2338, at which, upon receiving notification that the current router has been unloaded, the interface module may archive the current (i.e., "old") router, replace it with the newly built router, and notify the enteφrise business process server to load the new router. [0175] Control may then proceed to 2340, at which the enteφrise business process server may load and initialize the new router and allow transactions to enter the new router.
[0176] Control may then proceed to 2342, at which the enteφrise business process server may notify the interface module that the new router has been loaded.
[0177] Control may then proceed to 2344, at which, upon receiving notification that the new router has been loaded, the interface module may output to the terminal of the user a process tester interactive page. FIGURE 35 shows an example process tester interactive page
3500 according to an embodiment. A process tester interactive page 3500 may include a process test steps listing 3505.
[0178] Control may then proceed to 2346, at which the terminal may output the process tester interactive page to the user via, for example, a display of a web browser application.
FIGURE 36 shows an illustration of a data-populated process definition area of a process tester interactive page 3500 in an embodiment in which the interface module has replaced the XML tags in the function template file with the data that was provided in the function attributes file.
[0179] Control may then proceed to 2348, at which a method may end.
[0180] At 2350 of FIGURE 23 d, at which following the build of a new production process instruction set file, the enteφrise data quality application core application may build a new router DLL including the new production process instruction set file (see FIGURE 22). The production process instruction set may be optimized for production.
[0181] Control may then proceed to 2352, at which the interface module may notify the enteφrise business process server that a new router is ready to be loaded. Control may then proceed to 2354, at which the enteφrise business process server may pause and halt any transactions from entering the current router, allow all transactions currently in the router to finish processing, and unload the current router. [0182] Control may then proceed to 2356, at which the enteφrise business process server may notify the interface module that the current router has been unloaded.
[0183] Control may then proceed to 2358, at which, upon receiving notification that the current router has been unloaded, the interface module may archive the current (i.e., "old") router, replace it with the newly built router, and notify the enteφrise business process server to load the new router.
[0184] Control may then proceed to 2360, at which the enteφrise business process server may load and initialize the new router and allow transactions to enter the new router.
[0185] Control may then proceed to 2362, at which the enteφrise business process server may notify the interface module that the current router has been unloaded.
[0186] Control may then proceed to 2364, at which, upon receiving notification that the new router has been loaded, the interface module may output to the terminal of the user a main processes interactive page.
[0187] Control may then proceed to 2366, at which the terminal may output the main processes interactive page to the user via, for example, a display of a web browser application.
[0188] Control may then proceed to 2368, at which a method may end.
[0189] In at least one embodiment, the enteφrise business process server 101 may retrieve and execute a particular business process upon receiving a packet of input elements associated with that business process from a data source via a connection. In at least one embodiment, such a connection may be a compiled dynamic link library (DLL) file that maps the business application function input data and output data to corresponding information fields of functions of an associated business process. FIGURE 37 shows an example of a connection definition interactive page 3700 by which a user may define a connection according to at least one embodiment. Each enteφrise application may have a corresponding connection maintained using the data store 106, for example, that maps its functions to one or more business processes executed by the enteφrise business process server 101. Upon receiving an associated packet of input elements, the enteφrise business process server 101 may retrieve and execute the associated business process and produce its resultant output elements. In an embodiment, the enteφrise business process server 101 may send a packet containing the output elements to a data destination via the connection for further processing. A connection may encapsulate data routing information specifying the path between to enteφrise nodes. In an embodiment, the connection may be a socket connection for a packet-based network such as, for example, TCP/IP.
[0190] Thus, an interface module may provide the capability for a user, such as a business analyst for example, to define, create, modify, implement, test and execute a business process using the enteφrise business process management system without having to undertake a lengthy requirements definition, general design, detailed design, coding and testing cycle involving software engineering or programming personnel. The interface module of the enteφrise business process management system as shown herein allows rapid iterative development and implementation of business processes, reducing development costs and time, as well as reducing the need to periodically freeze functional requirements. [0191] Thus, an enteφrise business process management system has been described, embodiments of which may provide an integrated data quality management system capable of collecting, analyzing, and reporting information concerning qualitative and quantitative aspects of application or transactional data throughout an enteφrise. It should be understood that the enteφrise data quality management system described herein is but one aspect of the enteφrise business process management system of the present invention. One skilled in the art would be capable of determining other embodiments of the present invention based on the disclosure herein. In particular, the enteφrise business process server 101 may be more generally described as a server capable of providing or operating in conjunction with many different enteφrise business process applications. In general, such an enteφrise business process management system may provide the capability to collect, analyze, and report information concerning qualitative and quantitative aspects of application or transactional data throughout an enteφrise across some or all of the computing nodes of the entire enterprise network, and is able to process application data output by heterogeneous computing platforms and applications. As a result, the enteφrise business process management system may provide a variety of integrated views of data present throughout the enteφrise. Such views may range from data associated with the total enteφrise, to individual divisions or business functions/business units, down to individuals.
[0192] For example, an embodiment of the enteφrise business process management system may be directed to biometric and homeland security applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving fingeφrint analysis, retinal imaging/scanning, voice identification, and image matching and comparison. In a particular example of such a business process, an employee of a company may be required to pass a fingeφrint identification scan in order to enter a company facility. When the employee places their fingeφrint on a fingeφrint pad or scanner, data representing the unique fingeφrint scan may be sent to a process maintained by the enteφrise business process management system. This process may include, for example, comparing the scanned fingeφrint data to a set of valid fingeφrints using one or more functions from different fingeφrint software matching tools that attempt to validate the employee against the company employee fingeφrint database. If the employee is validated as an employee then a signal may be sent from the enteφrise business process management system to an access control device of the door so that the door will unlock and allow the employee ingress access.
[0193] In another example of such a business process, photographic imaging data may be input to a multiple step business process that attempts to match the photographic imaging data against multiple image databases to search for matching features. If a match is found, then a signal may be sent to another process maintained by the enteφrise business process management system to output the image coordinates to a targeting or reporting system. [0194] In another example, an embodiment of the enteφrise business process management system may be directed to compliance assurance such as, for example, business compliance with applicable governmental regulations. Such applications are myriad. One example in particular may be a business process directed to ensuring that a healthcare enteφrise operates in conformance with government mandated rules and regulations such as, for example, the Health Insurance Portability and Accountability Act of 1996 ("HIPAA"). In a particular example of such a business process, business rules applying HIPAA requirements may be maintained in the function library, and a business process defined and executed that includes a series of business rules that must be applied to particular patient information based upon government HIPAA requirements. In an embodiment, this process may be a multiple step process with each step representing a different HIPAA requirement. This arrangement may provide for easy modification of such rules based upon changing government requirements. In other words, after the roads to the business applications for HIPAA compliance have been established, the corresponding functions used to represent the requirements as process steps may be modified as described herein using, for example, the interface module process designer. In this way, new changes to regulations affecting a business may be accommodated with minimal impact to the business process.
[0195] As another example, an embodiment of the enteφrise business process management system may be directed to ensuring that government data quality regulations are met for a data set. For example, data concerning child welfare provided to the federal government may be required to comply to a specified data accuracy, such as greater than 90% accuracy. [0196] As another example, an embodiment of the enteφrise business process management system may be directed to tax assignment applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving geographic coding software and tax assignment software. In a particular example of such a business process, an organization may need to correctly assign the appropriate tax to their client's bills during the billing process. Incorrect tax assignment during the billing process may result in lost customers. Therefore, in an embodiment, a business process may be created and executed (or, alternatively, a sequence of process steps in a billing process) in which customer information, such as address information, is checked for accuracy by multiple functions from different tax assignment business applications (e.g., software packages) prior to final processing and mailing of bills to customers. The results of the functions may then, for example, be compared against each other and based on those results a correct tax could then be assigned. Furthermore, after the correct tax is determined, the correct tax assignment and the customer identifier may be sent as input into another business process which may, for example, receive as input a tax assignment and a customer identifier, and then perform multiple steps in which each step would perform an SQL query against different databases. In an embodiment, each step may perform a data store lookup of the customer via the customer identifier and then update that customer's tax assignment so that the customer has the same tax assignment across multiple data stores. [0197] As another example, an embodiment of the enteφrise business process management system may be directed to product comparison applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving address validation. In a particular example of such a business process, a business process may be created and executed which receives as input an individual's address, and then performs a multiple step process. In an embodiment, each step in the business process may include, for example, a different software vendor's address coder. Each step may attempt to receive as input the address and then validate that address against its own postal database. In an embodiment, a comparison of each vendors capabilities may then be performed and statistics could be created to see exactly which product performs the best under certain data conditions. FIGURE 38 illustrates the comparison business process in accordance with an embodiment.
[0198] More generally, if an organization is trying to decide which software application or vendor provides the best functionality, then those products may be integrated under the enteφrise business process management system and comparatively tested. Furthermore, any business process that compares different software vendors API calls can be included in such a process.
[0199] As another example, an embodiment of the enteφrise business process management system may be directed to data mapping or transformation applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving data store transformation software. In a particular example of such a business process, a business process could be created and executed in which there the input data is received in a first format associated with one data store (e.g., first database) and the output data is provided in another data store (e.g., second database) format. In an embodiment, each process step may be a mapping from one field type to another, for example. [0200] Finally, as another example, an embodiment of the enteφrise business process management system may be directed to software-based mapping applications such as, but not limited to, defining, building and executing business processes that include functions from business applications involving information matching and database retrieval software. In a particular example of such a business process, a business process may include information matching and data store lookups for information related to call center operations. In particular, a call center operator may take a call from a customer in which the customer provides the call center operator name and address information. The call center operator may input the information using, for example, and interactive page, and then initiate a search request. The search request may cause the name and address information to be sent to a business process maintained by the enteφrise business process management system that may perform, for example, the following steps: a. Standardize the Name and Address Data b. Create a Match Key c. Perform a series of database lookups using the match Key created in step b d. Each database lookup would return back some information that would be used to build a temporary record e. After all of the database lookups have been performed the Output would be sent back the Call Center Reps screen.
[0201] Users of the enteφrise business process management system, including management and executive users, may be provided different levels of visibility into enteφrise- level issues such as, but not limited to, data quality issues, so that appropriate corrective action may be taken. In at least one embodiment, the enteφrise business process management system may automatically make corrections to incorrect or errored data based on a trusted source of data. Because of the integrated view provided by the enteφrise business process management system of the present invention, the shortcomings of vendor-specific approaches such as, for example, application-specific data checking processes, are minimized. In addition, total acquisition costs for data quality tools, for example, may be minimized for the enteφrise through use of the integrated approach described herein, because the need to acquire and maintain many individual independent data quality applications is reduced. [0202] Furthermore, in at least one embodiment, the business process server may be further configured to select and execute a set of preferred functions, wherein each preferred function is obtained from one of multiple different business applications. The business process server may select one function from among multiple similar functions provided by business applications based on, for example, a selection heuristic. An example of such a selection heuristic may be the percentage of errors detected by a function in a comparison of multiple similar functions applied to a given set of business application output data. Each of the business applications may or may not be products from different vendors. Alternatively, the function selection criteria may be specified by a user via an interactive page of the interface module. In this way, the enteφrise business process management system may select a set of preferred or "best of breed" functions from among those offered by different business applications.
[0203] While the invention has been described with reference to the certain illustrated embodiments, the words which have been used herein are words of description, rather than words of limitation. Changes may be made, within the purview of the appended claims, without departing from the scope and spirit of the invention in its aspects. Although the invention has been described herein with reference to particular structures, acts, and materials, the invention is not to be limited to the particulars disclosed, but rather extends to all equivalent structures, acts, and materials, such as are within the scope of the claims thereto.
APPENDIX A
The Product Template Layout
Compile Link Type
Section heading: /*Link Type*/
Run-time: If you are linking to .DLL without using headers or .lib files
Compile-time: If the Product that you are calling has headers and .lib files
File Locations
Section heading: /*File Locations*/
Header =: Provide the Location of the Header File
Lib =: Provide the Location of the Lib File
Global Definitions
Section heading: /*Global Definitions*/
This is where you would define any Global Variables to be used by all Processes.
See examples
Global Initialization Variables
Section heading: /*Global Initialization Variables*/
This section is used if you would have to define any Initialization Variables that are to be used by the all Processes.
See examples
A-l Global Initialization Funtions(s)
Section heading: /*Global Initialization Function(s)*/ Function calls to product that are used by all Processes See examples
Global Termination Variables
Section heading: /*Global Termination Variables*/
This section is used to define any Variable that are necessary for Global Termination Functions
Global Termination Functions(s)
Section heading: /* Global Termination Function(s)*/ Function calls to products that are used by all Processes
Headers
Section heading: /* Headers*/
This is where the header names are defined
Example: #include "Header.h"
See examples
Variables
Section heading: /*Variables*/
This is where you define the Variables that are to be used by this product
A-2 Memory Allocation
Section heading: /*Memory Allocation*/
If there is a need to allocate memory for a variable or data structure then add the code here
Setup for Function Call
Section heading: /*Input*/
This is where you would setup the parameters that are to be passed to the Product
Product Call
Section heading: /*Function(s)*/
This is where the function call to the product would go
See examples
Output Of Function Call
Section heading: /*Output*/
This is where you would copy the results of the function call to the Output Packet if necessary
See examples
Memory De-allocation
Section heading: /*Memory Deallocation*/
If you allocated memory for any data structures above then you would de-allocate them here
A-3

Claims

What is claimed is:
1. An enteφrise business process management system, comprising: an enteφrise business process server capable of receiving data from at least one client; at least one router accessible by the enteφrise business process server; at least one business process accessible by the at least one router, wherein the enteφrise business process server is configured to access the at least one business process via the router, to execute the at least one business process on at least a portion of the client data, and to generate business process output data as a function of the at least one business process; and an interface accessible by the enteφrise business process server, wherein the interface operates with the enteφrise business process server to output a process designer interactive page, wherein the process designer interactive page is configured to accept instructions concerning the at least one business process, to generate process information data, and to provide the process information data to the enteφrise business process server, and wherein the enteφrise business process server builds an instruction set for the business process based upon the process information data.
2. The system of claim 1 , wherein the instruction set is a source code file.
3. The system of claim 1, wherein the at least one client comprises at least one additional server.
4. The system of claim 1, wherein the business process instructions are selected from a group comprising selection instructions, definition instructions, and linking instructions.
5. The system of claim 1 , further comprising: at least one business application resident on at least one of the enteφrise business process server and the at least one client, wherein the business application comprises the business process.
6. The system of claim 5, further comprising: at least one connection between the at least one business process and the enteφrise business server, wherein the connection maps input data to the business process and maps output data from the business process corresponding to operation of the business process.
7. The system of claim 5, wherein the at least one business process comprises at least one data processing function.
8. The system of claim 1, further comprising: at least one data processing function accessible by the at least one business process.
9. The system of claim 8, wherein the process designer interactive page is further configured to accept instructions concerning the at least one data processing function, to generate function information data, and to provide the function information data to the enteφrise business process server, and wherein the enteφrise business process server builds the instruction set for the business process based upon at least one of the process information data and the function information data.
10. The system of claim 9, wherein the function instructions are selected from a group comprising selection instructions, definition instructions, and linking instructions.
11. The system of claim 8, further comprising: at least one connection between the at least one data processing function and the at least one business process, wherein the connection maps input data to the data processing function and maps output data from the data processing function corresponding to operation of the data processing function.
13. The system of claim 1, wherein the at least one business process is a data quality analysis process.
14. The system of claim 1, wherein the at least one business process is selected from a group comprising: a data quality analysis process, a biometric analysis process, a photographic imaging analysis process, a regulation compliance analysis process, a tax assignment analysis process, a product comparison analysis process, and a data transformation analysis process.
15. The system of claim 5, wherein: the at least one business application comprises a plurality of the business processes, and the enteφrise business process server is configured to select and execute at least one of the plurality of business processes.
16. The system of claim 5, wherein: the at least one business application comprises a plurality of business applications, the at least one business process comprises a plurality of business processes, and the enteφrise business process server is configured to select and execute at least one of the plurality of business applications and processes.
17. The system of claim 1 , wherein: the process designer interactive page comprises a process definition area, the process definition area comprises a library comprising the at least one business process identified by a business process identifier, at least one input field identified by an input identifier, and at least one output field identified by an output identifier, and the input identifier, the business process identifier, and the output identifier are connectible to one another via drag and drop functionality.
18. The system of claim 17, wherein the process definition area further comprises: a process input area; a process step definition area; and a process output area, wherein the input identifier may be inserted into the process input area via drag and drop functionality, wherein the business process identifier may be inserted into the process step definition area via drag and drop functionality, wherein the output identifier may be inserted into the process output area via drag and drop functionality, and wherein the input identifier, the business process identifier, and the output identifier may be connected to one another by links via drag and drop functionality.
19. The system of claim 9, wherein: the process designer interactive page comprises a process definition area, the process definition area comprises a library comprising the at least one data processing function identified by a function identifier, at least one input field identified by an input identifier, and at least one output field identified by an output identifier, and the input identifier, the function identifier, and the output identifier are connectible to one another via drag and drop functionality.
20. The system of claim 19, wherein the process definition area further comprises: a function input area; a function definition area; and a function output area, wherein the input identifier may be inserted into the function input area via drag and drop functionality, wherein the business process identifier may be inserted into the function definition area via drag and drop functionality, wherein the output identifier may be inserted into the function output area via drag and drop functionality, and wherein the input identifier, the function identifier, and the output identifier may be connected to one another by links via drag and drop functionality.
21. The system of claim 1 , wherein: the instruction set may be tested by the enteφrise business process server.
22. The system of claim 1, further comprising: at least one additional router accessible by the enteφrise business server, wherein the at least one additional router and the at least one router are interchangeable.
23. The system of claim 22, wherein: the at least one router accesses the at least one business process, and the at least one additional router accesses an additional business process, different from the at least one business process.
24. An enteφrise business process management method, comprising: receiving a request to create or modify a business process, wherein the business process accesses at least one function; providing, in response to the request, a process designer interactive display; maintaining, in association with the process designer interactive display, a library containing the function;
accepting, via the process designer interactive display, instructions concerning the function, wherein the function instructions comprise at least one of function inputs, function outputs, an input connection to the function, an output connection from the function, and function settings; outputting, via the process designer interactive display, a graphical representation of the function instructions; and assembling an instruction set for the business process based upon the function and the function instructions.
25. The method of claim 24, wherein the instruction set is a source code file.
26. The method of claim 24, further comprising: operational testing of the instruction set.
27. The method of claim 24, wherein the business process is a data quality process.
28. The method of claim 24, wherein the at least one business process is selected from a group comprising a data quality analysis process, a biometric analysis process, a regulation compliance analysis process, a tax assignment analysis process, a product comparison analysis process, and a data transformation analysis process.
29. The method of claim 24, wherein the at least one function comprises a plurality of functions.
PCT/US2003/009143 2002-03-25 2003-03-25 Method and system for enterprise business process management WO2003083690A1 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
IL16414303A IL164143A0 (en) 2002-03-25 2003-03-25 Method and system for enterprise business process management
BR0308845-6A BR0308845A (en) 2002-03-25 2003-03-25 Method and system for business management
KR10-2004-7015343A KR20050002901A (en) 2002-03-25 2003-03-25 Method and system for enterprise business process management
JP2003581045A JP2005521947A (en) 2002-03-25 2003-03-25 Method and system for enterprise business process management
CA002479757A CA2479757A1 (en) 2002-03-25 2003-03-25 Method and system for enterprise business process management
EP03723821A EP1488329A4 (en) 2002-03-25 2003-03-25 Method and system for enterprise business process management
AU2003230731A AU2003230731A1 (en) 2002-03-25 2003-03-25 Method and system for enterprise business process management

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US36654702P 2002-03-25 2002-03-25
US60/366,547 2002-03-25

Publications (1)

Publication Number Publication Date
WO2003083690A1 true WO2003083690A1 (en) 2003-10-09

Family

ID=28675265

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/009143 WO2003083690A1 (en) 2002-03-25 2003-03-25 Method and system for enterprise business process management

Country Status (11)

Country Link
US (2) US6920474B2 (en)
EP (1) EP1488329A4 (en)
JP (2) JP2005521947A (en)
KR (1) KR20050002901A (en)
CN (2) CN101110021A (en)
AU (1) AU2003230731A1 (en)
BR (1) BR0308845A (en)
CA (1) CA2479757A1 (en)
IL (1) IL164143A0 (en)
RU (2) RU2308084C2 (en)
WO (1) WO2003083690A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011106279A2 (en) * 2010-02-23 2011-09-01 Microsoft Corporation Web-based visual representation of a structured data solution
CN105589803A (en) * 2014-10-24 2016-05-18 阿里巴巴集团控股有限公司 Method and terminal device for generating test tool

Families Citing this family (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804778B1 (en) * 1999-04-15 2004-10-12 Gilian Technologies, Ltd. Data quality assurance
US20030088659A1 (en) * 2001-11-08 2003-05-08 Susarla Hanumantha Rao System and method for distributed state management
US7130905B2 (en) * 2002-01-10 2006-10-31 Sun Microsystems, Inc. System and method for coordinating access to data for a distributed application
US20030154202A1 (en) * 2002-02-12 2003-08-14 Darpan Dinker Distributed data system with process co-location and out -of -process communication
US7370329B2 (en) 2002-03-01 2008-05-06 Sun Microsystems, Inc. System and method for state saves in a distributed data system
US7320035B2 (en) * 2002-03-01 2008-01-15 Sun Microsystems, Inc. Object mutation determination for incremental state saves
US7650397B2 (en) * 2002-05-02 2010-01-19 Bea Systems, Inc. Plug-in configuration manager
US7386797B1 (en) * 2002-05-22 2008-06-10 Oracle Corporation Framework to model and execute business processes within a collaborative environment
US8296433B2 (en) * 2002-05-22 2012-10-23 International Business Machines Corporation Virtualization method and apparatus for integrating enterprise applications
US7610404B2 (en) * 2002-05-22 2009-10-27 Cast Iron Systems, Inc. Application network communication method and apparatus
JP3776058B2 (en) * 2002-05-30 2006-05-17 Necエレクトロニクス株式会社 System LSI, system LSI design method, and recording medium
US8639542B2 (en) * 2002-06-27 2014-01-28 Siebel Systems, Inc. Method and apparatus to facilitate development of a customer-specific business process model
US20040006738A1 (en) * 2002-07-02 2004-01-08 Pamela Szabo Source of record manager
US20040030992A1 (en) * 2002-08-06 2004-02-12 Trandafir Moisa System and method for management of a virtual enterprise
US7239605B2 (en) * 2002-09-23 2007-07-03 Sun Microsystems, Inc. Item and method for performing a cluster topology self-healing process in a distributed data system cluster
US7206836B2 (en) * 2002-09-23 2007-04-17 Sun Microsystems, Inc. System and method for reforming a distributed data system cluster after temporary node failures or restarts
US20050177415A1 (en) * 2002-10-08 2005-08-11 Mann Michael M. Business analysis and management systems utilizing emergent structures
US7848941B2 (en) * 2002-10-08 2010-12-07 Encompass Knowledge Systems, Inc. Business analysis and management systems utilizing enterprise metrics
US8005979B2 (en) * 2002-10-28 2011-08-23 Oracle America, Inc. System and method for uniquely identifying processes and entities in clusters
US8538840B2 (en) * 2002-12-20 2013-09-17 Siebel Systems, Inc. Financial services data model
US7213037B2 (en) * 2003-01-13 2007-05-01 I2 Technologies Us, Inc. Master data management system for centrally managing cached data representing core enterprise reference data maintained as locked in true state read only access until completion of manipulation process
US20040210454A1 (en) * 2003-02-26 2004-10-21 Coughlin Bruce M. System and method for providing technology data integration services
US8473399B2 (en) * 2003-03-04 2013-06-25 Siebel Systems, Inc. Invoice data object for a common data object format
US8392298B2 (en) * 2003-03-04 2013-03-05 Siebel Systems, Inc. Invoice adjustment data object for a common data object format
US20070208577A1 (en) * 2003-03-24 2007-09-06 Leon Maria T B Position common object
US8489470B2 (en) * 2003-03-24 2013-07-16 Siebel Systems, Inc. Inventory location common object
US9704120B2 (en) * 2003-03-24 2017-07-11 Oracle International Corporation Inventory balance common object
US7904340B2 (en) * 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
JP2006523353A (en) 2003-03-24 2006-10-12 シーベル システムズ,インコーポレイティド Common common object
US7912932B2 (en) * 2003-03-24 2011-03-22 Siebel Systems, Inc. Service request common object
US8510179B2 (en) * 2003-03-24 2013-08-13 Siebel Systems, Inc. Inventory transaction common object
US8001142B2 (en) 2003-04-02 2011-08-16 Oracle America, Inc. Distributed data system with incremental data updates
US7178065B2 (en) * 2003-04-02 2007-02-13 Sun Microsystems, Inc. System and method for measuring performance with distributed agents
US7281050B2 (en) * 2003-04-08 2007-10-09 Sun Microsystems, Inc. Distributed token manager with transactional properties
US8108534B2 (en) * 2003-05-08 2012-01-31 Jda Software Group, Inc. Data integration system with programmatic source and target interfaces
US8117327B2 (en) * 2003-05-08 2012-02-14 Jda Software Group, Inc. Data integration system with programmatic source and target interfaces
US8117326B2 (en) * 2003-05-08 2012-02-14 Jda Software Group, Inc. Data integration system with programmatic source and target interfaces
US8321590B2 (en) 2003-05-22 2012-11-27 International Business Machines Corporation Application network communication
US7526753B2 (en) * 2003-06-18 2009-04-28 Microsoft Corporation System and method for creating, managing and using code segments
US7616583B1 (en) * 2003-07-23 2009-11-10 International Business Machines Corporation Method and program product for consolidating computer hardware resources
JP5068000B2 (en) * 2003-07-31 2012-11-07 富士通株式会社 Information processing method and program in XML driven architecture
US8041760B2 (en) 2003-08-27 2011-10-18 International Business Machines Corporation Service oriented architecture for a loading function in a data integration platform
US7225195B2 (en) * 2003-08-27 2007-05-29 Gil Avrahami Method for a dynamic information messaging system
US20050222931A1 (en) * 2003-08-27 2005-10-06 Ascential Software Corporation Real time data integration services for financial information data integration
US20050262189A1 (en) * 2003-08-27 2005-11-24 Ascential Software Corporation Server-side application programming interface for a real time data integration service
US7814142B2 (en) 2003-08-27 2010-10-12 International Business Machines Corporation User interface service for a services oriented architecture in a data integration platform
US20060010195A1 (en) * 2003-08-27 2006-01-12 Ascential Software Corporation Service oriented architecture for a message broker in a data integration platform
US20050228808A1 (en) * 2003-08-27 2005-10-13 Ascential Software Corporation Real time data integration services for health care information data integration
WO2005022417A2 (en) 2003-08-27 2005-03-10 Ascential Software Corporation Methods and systems for real time integration services
US7814470B2 (en) 2003-08-27 2010-10-12 International Business Machines Corporation Multiple service bindings for a real time data integration service
US8060553B2 (en) * 2003-08-27 2011-11-15 International Business Machines Corporation Service oriented architecture for a transformation function in a data integration platform
US20050240592A1 (en) * 2003-08-27 2005-10-27 Ascential Software Corporation Real time data integration for supply chain management
US7684993B2 (en) * 2003-09-11 2010-03-23 Siebel Systems, Inc. Value diagnostic tool
US20050216320A1 (en) * 2004-01-12 2005-09-29 Brian Hattaway Method of determining requirements for modification of a business operation
US20050165822A1 (en) * 2004-01-22 2005-07-28 Logic Sight, Inc. Systems and methods for business process automation, analysis, and optimization
US7761406B2 (en) * 2004-03-16 2010-07-20 International Business Machines Corporation Regenerating data integration functions for transfer from a data integration platform
US20050267821A1 (en) * 2004-05-14 2005-12-01 United Parcel Service Of America, Inc. Address validation mode switch
US7765291B1 (en) 2004-05-19 2010-07-27 Ultimus, Inc. Business process management/workflow automation software
US8112296B2 (en) * 2004-05-21 2012-02-07 Siebel Systems, Inc. Modeling of job profile data
US7865390B2 (en) * 2004-05-21 2011-01-04 Siebel Systems, Inc. Modeling of employee performance result data
GB0414336D0 (en) * 2004-06-28 2004-07-28 Mood Internat Ltd Method and apparatus for managing and synchronising variant business structures
US7904488B2 (en) 2004-07-21 2011-03-08 Rockwell Automation Technologies, Inc. Time stamp methods for unified plant model
US7793262B2 (en) * 2004-07-29 2010-09-07 International Business Machines Corporation Method and apparatus for facilitating software testing and report generation with interactive graphical user interface
US10600059B2 (en) * 2004-07-29 2020-03-24 Amdocs Development Limited Component based customer care management
US7634724B2 (en) * 2004-08-30 2009-12-15 Microsoft Corporation Systems and methods for supporting custom graphical representations in reporting software
US8756521B1 (en) 2004-09-30 2014-06-17 Rockwell Automation Technologies, Inc. Systems and methods for automatic visualization configuration
US8782087B2 (en) 2005-03-18 2014-07-15 Beyondcore, Inc. Analyzing large data sets to find deviation patterns
US7720822B1 (en) * 2005-03-18 2010-05-18 Beyondcore, Inc. Quality management in a data-processing environment
US10127130B2 (en) 2005-03-18 2018-11-13 Salesforce.Com Identifying contributors that explain differences between a data set and a subset of the data set
US7496544B2 (en) * 2005-04-19 2009-02-24 International Business Machines Corporation Method and apparatus for assessing products
US7809597B2 (en) * 2005-05-05 2010-10-05 Siebel Systems, Inc. Progressive refinement model for business processes
US7895070B2 (en) * 2005-05-05 2011-02-22 Siebel Systems, Inc. Providing multiple views of a business process definition to different users
US7831453B2 (en) * 2005-05-05 2010-11-09 Siebel Systems, Inc. Modeling of business process data
US7650405B2 (en) 2005-05-13 2010-01-19 Rockwell Automation Technologies, Inc. Tracking and tracing across process boundaries in an industrial automation environment
US8799800B2 (en) 2005-05-13 2014-08-05 Rockwell Automation Technologies, Inc. Automatic user interface generation
US7809683B2 (en) 2005-05-13 2010-10-05 Rockwell Automation Technologies, Inc. Library that includes modifiable industrial automation objects
US7676281B2 (en) 2005-05-13 2010-03-09 Rockwell Automation Technologies, Inc. Distributed database in an industrial automation environment
US7672737B2 (en) 2005-05-13 2010-03-02 Rockwell Automation Technologies, Inc. Hierarchically structured data model for utilization in industrial automation environments
US7702959B2 (en) * 2005-08-02 2010-04-20 Nhn Corporation Error management system and method of using the same
US20070035403A1 (en) * 2005-08-12 2007-02-15 Krishna Sudhir S Method and system of personal healthcare management
US7548789B2 (en) 2005-09-29 2009-06-16 Rockwell Automation Technologies, Inc. Editing lifecycle and deployment of objects in an industrial automation environment
US7881812B2 (en) * 2005-09-29 2011-02-01 Rockwell Automation Technologies, Inc. Editing and configuring device
US8275680B2 (en) 2005-09-30 2012-09-25 Rockwell Automation Technologies, Inc. Enabling transactional mechanisms in an automated controller system
US7734590B2 (en) 2005-09-30 2010-06-08 Rockwell Automation Technologies, Inc. Incremental association of metadata to production data
US7660638B2 (en) 2005-09-30 2010-02-09 Rockwell Automation Technologies, Inc. Business process execution engine
US7801628B2 (en) 2005-09-30 2010-09-21 Rockwell Automation Technologies, Inc. Industrial operator interfaces interacting with higher-level business workflow
US8484250B2 (en) 2005-09-30 2013-07-09 Rockwell Automation Technologies, Inc. Data federation with industrial control systems
US7593911B1 (en) * 2005-10-12 2009-09-22 At&T Corp. System and method for applying rule sets and rule interactions
US8566147B2 (en) * 2005-10-25 2013-10-22 International Business Machines Corporation Determining the progress of adoption and alignment of information technology capabilities and on-demand capabilities by an organization
US20070169066A1 (en) * 2005-11-17 2007-07-19 Nielsen Spencer J System and method for an extensible 3D interface programming framework
US20070208587A1 (en) * 2005-12-08 2007-09-06 Arun Sitaraman Systems, software, and methods for communication-based business process messaging
US20070162494A1 (en) * 2005-12-30 2007-07-12 Thomas Schneider Embedded business process monitoring
US20070234277A1 (en) * 2006-01-24 2007-10-04 Hui Lei Method and apparatus for model-driven business performance management
US20070198312A1 (en) * 2006-02-21 2007-08-23 Sugato Bagchi Data quality management using business process modeling
DE102006012943B4 (en) * 2006-03-21 2009-11-19 Siemens Ag Method for automatically evaluating an imaging data set of an object and medical imaging system
US20070244910A1 (en) * 2006-04-12 2007-10-18 Microsoft Corporation Business process meta-model
US9092278B2 (en) * 2006-07-07 2015-07-28 International Business Machines Corporation Determining the processing order of a plurality of events
US20080033995A1 (en) * 2006-08-02 2008-02-07 Fabio Casati Identifying events that correspond to a modified version of a process
US8050084B2 (en) 2006-09-05 2011-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory device, storage system having the same, and method of driving the nonvolatile memory device
US20110307477A1 (en) * 2006-10-30 2011-12-15 Semantifi, Inc. Method and apparatus for dynamic grouping of unstructured content
US7953619B2 (en) * 2006-11-21 2011-05-31 International Business Machines Corporation Business process diagram visualization using timeline-based heat maps
US9606772B2 (en) * 2006-11-21 2017-03-28 International Business Machines Corporation Business process diagram data collection
US7957992B2 (en) * 2006-11-21 2011-06-07 International Business Machines Corporation Modification of a diagram for business process optimization
US8041588B2 (en) 2006-11-21 2011-10-18 International Business Machines Corporation Business process diagram visualization using heat maps
US8291473B2 (en) * 2007-01-10 2012-10-16 International Business Machines Corporation Methods, systems, and computer program products for modeling a secure production network
US20080178164A1 (en) * 2007-01-22 2008-07-24 International Business Machines Corporation Method, system and apparatus to associate and transform processes
US9268538B2 (en) * 2007-05-02 2016-02-23 Sugarcrm Inc. Metadata driven user interface system and method
US20080208666A1 (en) * 2007-02-23 2008-08-28 Microsoft Corporation Business process modeling to facilitate collaborative data submission
US20080209435A1 (en) * 2007-02-23 2008-08-28 Microsoft Corporation Scalable workflow management system
US20080294496A1 (en) * 2007-05-25 2008-11-27 International Business Machines Corporation Methods, systems, and computer program products for automating supply chain planning processes
US8046716B2 (en) * 2007-06-15 2011-10-25 Microsoft Corporation Creating, displaying, and editing a sub-process within a process diagram
KR101295776B1 (en) 2007-08-02 2013-08-12 삼성전자주식회사 Method of de-chucking a wafer using a direct voltage and a alternating voltage alternately and apparatus for fabricating a semiconductor device employing the same
US20100031167A1 (en) * 2008-08-04 2010-02-04 Alexander Roytman Browser-based development tools and methods for developing the same
KR100967692B1 (en) * 2007-09-10 2010-07-07 (주) 비투비인터넷 business process management system
US8121957B1 (en) 2007-10-01 2012-02-21 Google Inc. Discrete verification of payment information
US20090271439A1 (en) * 2008-04-23 2009-10-29 John Hack Systems to implement business processes in computing environment
US20100114628A1 (en) * 2008-11-06 2010-05-06 Adler Sharon C Validating Compliance in Enterprise Operations Based on Provenance Data
US8229775B2 (en) * 2008-11-06 2012-07-24 International Business Machines Corporation Processing of provenance data for automatic discovery of enterprise process information
US8209204B2 (en) * 2008-11-06 2012-06-26 International Business Machines Corporation Influencing behavior of enterprise operations during process enactment using provenance data
US9053437B2 (en) * 2008-11-06 2015-06-09 International Business Machines Corporation Extracting enterprise information through analysis of provenance data
US8108227B1 (en) * 2008-11-14 2012-01-31 Intuit Inc. Method and system for providing healthcare claims assistance
US20100228683A1 (en) * 2009-03-06 2010-09-09 TxVia, Inc. Issuing systems, acquiring systems, and payment networks/systems development
US20100235275A1 (en) * 2009-03-06 2010-09-16 Carl Ansley Card Processing
WO2011002326A1 (en) * 2009-05-26 2011-01-06 Prozorovskiy Andrey Alexandrovich Method and system for implementing business processes
US8484176B2 (en) * 2009-09-08 2013-07-09 Ricoh Co., Ltd. Multi-provider forms processing system with retry upon failure
US8417726B2 (en) * 2009-12-16 2013-04-09 Sap Aktiengesellschaft Guided structure synchronization
US9305270B2 (en) * 2009-12-16 2016-04-05 Sap Se Synchronization of recipe structures and bill of materials including the adjustment to manufacturing requirements
RU2447487C2 (en) * 2010-01-14 2012-04-10 Сергей Сергеевич Окладников Method for developing machine instructions sequence of computer
US8930383B2 (en) * 2010-01-29 2015-01-06 The Dun & Bradstreet Corporation System and method for aggregation and association of professional affiliation data with commercial data content
US9392072B2 (en) 2010-04-15 2016-07-12 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8984533B2 (en) 2010-04-15 2015-03-17 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8484401B2 (en) 2010-04-15 2013-07-09 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US20120078809A1 (en) * 2010-09-27 2012-03-29 Sap Ag Integrating sub-processes in business process modeling notation processes
US9785901B2 (en) 2010-10-04 2017-10-10 International Business Machines Corporation Business process development and run time tool
US8539018B2 (en) * 2010-11-04 2013-09-17 International Business Machines Corporation Analysis of IT resource performance to business organization
US9330148B2 (en) * 2011-06-30 2016-05-03 International Business Machines Corporation Adapting data quality rules based upon user application requirements
US10796232B2 (en) 2011-12-04 2020-10-06 Salesforce.Com, Inc. Explaining differences between predicted outcomes and actual outcomes of a process
US10802687B2 (en) 2011-12-04 2020-10-13 Salesforce.Com, Inc. Displaying differences between different data sets of a process
RU2498396C1 (en) * 2012-02-22 2013-11-10 Вадим Александрович Питов Method to implement communications and virtual journeys
US9811827B2 (en) 2012-02-28 2017-11-07 Google Inc. System and method for providing transaction verification
US9430482B2 (en) * 2012-04-09 2016-08-30 ChannelAdvisor Corporation Systems and methods for compressing and extracting information from marketplace taxonomies
EP2951680B1 (en) * 2013-01-30 2020-12-23 EntIT Software LLC Acquiring identification of an application lifecycle management entity associated with similar code
US10055202B2 (en) * 2013-02-13 2018-08-21 Sandhills Publishing Co. Business process workflow system
US20140279823A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Lifecycle product analysis
US10387874B1 (en) 2013-05-30 2019-08-20 Google Llc Mobile transactions with merchant identification codes
US20150073955A1 (en) * 2013-09-12 2015-03-12 Jonathan A. Gilman Management interface for business management applications
JP5575971B1 (en) * 2013-11-06 2014-08-20 株式会社アイ・ピー・エス Form data management server and form data management program
CN103985030A (en) * 2014-04-21 2014-08-13 浪潮通用软件有限公司 Method for implementing multilevel dictionary technique capable of defining data levels and lengths at will
RU2584453C2 (en) * 2014-05-19 2016-05-20 Борис Николаевич Анисимов System for proactive management of enterprise
CN105069686B (en) * 2015-08-13 2016-11-23 凯泰铭科技(北京)有限公司 Case automatic testing method and system
US10346237B1 (en) * 2015-08-28 2019-07-09 EMC IP Holding Company LLC System and method to predict reliability of backup software
RU2683184C2 (en) * 2015-11-03 2019-03-26 Общество с ограниченной ответственностью "ДОМКОР" Software-hardware complex of electronic real estate system and method of data exchange in it
CN107239264B (en) 2016-03-28 2020-06-23 阿里巴巴集团控股有限公司 Method and device for generating code prompt information
JP6877688B2 (en) * 2017-03-27 2021-05-26 カシオ計算機株式会社 Programming device and its control program, programming method
RU2668738C1 (en) * 2017-11-15 2018-10-02 Общество с ограниченной ответственностью "УМИКОН" Method and system for visual creation of programs for computer devices
CN107977790B (en) * 2017-12-05 2022-05-17 广州发展集团股份有限公司 Group type enterprise technology innovation management information system
US10614406B2 (en) 2018-06-18 2020-04-07 Bank Of America Corporation Core process framework for integrating disparate applications
RU2696320C1 (en) * 2018-07-04 2019-08-01 Акционерное общество "Зарубежнефть" Enterprise efficiency and organizational development control system
CN109034738A (en) * 2018-07-18 2018-12-18 深圳时代建筑科技有限公司 A kind of online approval system of prefabricated stream customizedization
CN109919563B (en) * 2018-11-21 2023-07-11 创新先进技术有限公司 Service running water batch processing method and device and computer equipment
WO2020133324A1 (en) * 2018-12-29 2020-07-02 深圳砥脊科技有限公司 Methods and apparatuses for artificial intelligence application building and operational implementation, and machine device
US11263576B2 (en) * 2019-09-10 2022-03-01 American Express Travel Related Services Company Inc. Auditing of business controls using analytic control tests
CN110889013B (en) * 2019-11-22 2023-04-07 北京锐安科技有限公司 Data association method, device, server and storage medium based on XML
CN112181511B (en) * 2020-08-26 2021-09-14 北京大学 Executable information analysis flow interaction configuration generation method
CN113222456B (en) * 2021-05-29 2023-05-05 长沙市到家悠享家政服务有限公司 Task processing method, system, electronic device and computer readable medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US171947A (en) * 1876-01-11 Improvement in squares
US4783752A (en) * 1986-03-06 1988-11-08 Teknowledge, Inc. Knowledge based processor for application programs using conventional data processing capabilities
JPH04147493A (en) * 1990-10-09 1992-05-20 Mitsubishi Electric Corp Semiconductor memory
EP0515739A1 (en) * 1991-05-31 1992-12-02 International Business Machines Corporation Program code generator
US5734837A (en) * 1994-01-14 1998-03-31 Action Technologies, Inc. Method and apparatus for building business process applications in terms of its workflows
GB9609612D0 (en) 1996-05-08 1996-07-10 Geco Prakla Uk Ltd A method of and apparatus for determining the quality of seismic data
US5842202A (en) 1996-11-27 1998-11-24 Massachusetts Institute Of Technology Systems and methods for data quality management
US6088693A (en) 1996-12-06 2000-07-11 International Business Machines Corporation Data management system for file and database management
US5826239A (en) * 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
NZ336275A (en) * 1997-01-24 2002-02-01 Extricity Inc A system and method for creating, executing and maintaining cross-enterprise processes
US6157929A (en) 1997-04-15 2000-12-05 Avid Technology, Inc. System apparatus and method for managing the use and storage of digital information
JP3489962B2 (en) * 1997-04-23 2004-01-26 沖電気工業株式会社 Program development device and parallel real-time processing device
US5926637A (en) * 1997-08-20 1999-07-20 Bea Systems, Inc. Service interface repository code generation data
US6654747B1 (en) * 1997-12-02 2003-11-25 International Business Machines Corporation Modular scalable system for managing data in a heterogeneous environment with generic structure for control repository access transactions
US6115693A (en) 1998-04-17 2000-09-05 Andersen Consulting Llp Quality center and method for a virtual sales and service center
US7278106B1 (en) * 1998-07-14 2007-10-02 Computer Associates Think, Inc. Method and apparatus for interacting with a source code control system
US6513019B2 (en) * 1999-02-16 2003-01-28 Financial Technologies International, Inc. Financial consolidation and communication platform
US6253213B1 (en) 1999-02-22 2001-06-26 International Business Machines Corporation Method and system for automatically maintaining data consistency across various databases
US6389429B1 (en) * 1999-07-30 2002-05-14 Aprimo, Inc. System and method for generating a target database from one or more source databases
US6947798B2 (en) * 1999-09-24 2005-09-20 Rockwell Software Inc. System and method for developing software programs by way of multiple applications and users
JP2001101440A (en) * 1999-09-29 2001-04-13 Sega Corp Recording medium recorded with animation data, image processing method utilizing the same and recording medium recorded with image processing program
US6704015B1 (en) * 2000-03-31 2004-03-09 Ge Mortgage Holdings, Llc Methods and apparatus for providing a quality control management system
JP2001356907A (en) * 2000-06-09 2001-12-26 Ibm Japan Ltd Data base system with processing code information and information processing system
US6817008B2 (en) 2002-02-22 2004-11-09 Total System Services, Inc. System and method for enterprise-wide business process management
US7039898B2 (en) * 2002-07-12 2006-05-02 Netspective Communications, Llc Computer system for performing reusable software application development from a set of declarative executable specifications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US6237025B1 (en) * 1993-10-01 2001-05-22 Collaboration Properties, Inc. Multimedia collaboration system
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1488329A4 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011106279A2 (en) * 2010-02-23 2011-09-01 Microsoft Corporation Web-based visual representation of a structured data solution
WO2011106150A3 (en) * 2010-02-23 2011-11-10 Microsoft Corporation Data binding for a web-based visual representation of a structured data solution
WO2011106279A3 (en) * 2010-02-23 2011-11-10 Microsoft Corporation Web-based visual representation of a structured data solution
US9852384B2 (en) 2010-02-23 2017-12-26 Microsoft Technology Licensing, Llc Web-based visual representation of a structured data solution
CN105589803A (en) * 2014-10-24 2016-05-18 阿里巴巴集团控股有限公司 Method and terminal device for generating test tool
CN105589803B (en) * 2014-10-24 2018-12-28 阿里巴巴集团控股有限公司 A kind of generation method and terminal device of testing tool

Also Published As

Publication number Publication date
KR20050002901A (en) 2005-01-10
CN1650279A (en) 2005-08-03
RU2308084C2 (en) 2007-10-10
US20030233249A1 (en) 2003-12-18
CA2479757A1 (en) 2003-10-09
BR0308845A (en) 2005-01-04
EP1488329A1 (en) 2004-12-22
US20050197880A1 (en) 2005-09-08
JP2005521947A (en) 2005-07-21
EP1488329A4 (en) 2008-12-10
CN101110021A (en) 2008-01-23
CN100347696C (en) 2007-11-07
RU2006113579A (en) 2007-10-27
IL164143A0 (en) 2005-12-18
RU2004131538A (en) 2005-06-27
JP2006309780A (en) 2006-11-09
AU2003230731A1 (en) 2003-10-13
US7320016B2 (en) 2008-01-15
US6920474B2 (en) 2005-07-19

Similar Documents

Publication Publication Date Title
US6920474B2 (en) Method and system for enterprise business process management
US7246144B2 (en) Method and system for managing a plurality of enterprise business systems
US20060020641A1 (en) Business process management system and method
US8782598B2 (en) Supporting a work packet request with a specifically tailored IDE
US9189757B2 (en) Monitoring and maintaining balance of factory quality attributes within a software factory environment
US8527542B2 (en) Generating contextual support requests
US11126968B2 (en) Custom application builder for supply chain management
US20070164849A1 (en) Enterprise software with contextual support
US20030229529A1 (en) Method for enterprise workforce planning
US20070027919A1 (en) Dispute resolution processing method and system
EP1570392A2 (en) A system and process for electronic subrogation, inter-organization workflow management, inter-organization transaction processing and optimized web-baser user interaction
KR20040096613A (en) System and method for web-based processing of customs information
EP1934897A1 (en) Improvements in and relating to service oriented architecture
WO2006036720A2 (en) Business process management system and method
US20050027574A1 (en) Real-time activity intelligence system and method
WO2005020019A2 (en) Method and system for managing a plurality of enterprise business process systems
Ghosheh et al. An industrial study using UML design metrics for web applications
Lassing et al. 2+ 2 Architectural Views for SAA of Business Information Systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2479757

Country of ref document: CA

Ref document number: 2003230731

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 164143

Country of ref document: IL

WWE Wipo information: entry into national phase

Ref document number: 2101/CHENP/2004

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2003723821

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2003581045

Country of ref document: JP

Ref document number: 1020047015343

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 2004131538

Country of ref document: RU

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 20038093979

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2003723821

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020047015343

Country of ref document: KR