WO2001001284A2 - Intelligent forms for improved automated workflow processing - Google Patents

Intelligent forms for improved automated workflow processing Download PDF

Info

Publication number
WO2001001284A2
WO2001001284A2 PCT/US2000/018003 US0018003W WO0101284A2 WO 2001001284 A2 WO2001001284 A2 WO 2001001284A2 US 0018003 W US0018003 W US 0018003W WO 0101284 A2 WO0101284 A2 WO 0101284A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
database
user
computer
entry form
Prior art date
Application number
PCT/US2000/018003
Other languages
French (fr)
Other versions
WO2001001284A3 (en
Inventor
Roy Peter D'souza
William Laurence Manning
Original Assignee
Biztro, 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23349786&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2001001284(A2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Biztro, Inc. filed Critical Biztro, Inc.
Priority to AU60599/00A priority Critical patent/AU6059900A/en
Publication of WO2001001284A2 publication Critical patent/WO2001001284A2/en
Publication of WO2001001284A3 publication Critical patent/WO2001001284A3/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/10Office automation; Time management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Definitions

  • Patent Application S/N 09/ entitled “Improved Scalable Architecture for E-
  • the present invention relates to commerce systems which include computers and computer networks and, in particular, to a particularly efficient system for collecting information and receiving bids for insurance coverage.
  • a workflow can track information of an event and ensure that proper notification of the event is delivered to appropriate personnel and that authorization is obtained for an event to proceed.
  • One area in which computer-implement workflow processing is vulnerable to error is the entry of requisite information by people initiating and/or processing workflows. Accordingly, a mechanism which simplifies information entry for workflow processing and or reduces susceptibility of workflow processing to information entry errors is highly desirable.
  • fields of smart forms include default logic and verification logic to simplify filling in of the smart form by an employee and reduce the likelihood that errors in data entry occur.
  • the default logic determines a default value for a field in the form according to one or more data items in a comprehensive company database. Including the default value in the form reduces the amount of time required by the employee to fill in the smart form with form data. In addition, alteration of the default value can be prohibited, thereby reducing the likelihood of erroneous data being entered.
  • Verification logic verifies that the employee has entered valid form data in a particular field.
  • the verification logic can include references to data items stored in the comprehensive company database such that data entered by the employee can be verified with respect to data already stored in the database. Accordingly, introduction of errors in form data is further prevented.
  • Data entered by the employee is stored in the database and can be used by default logic and/or verification logic in subsequently used smart forms.
  • Figure 1 is a block diagram of a computer system which implements smart form for workflow improvement in accordance with the present invention.
  • Figure 2 is a block diagram of an application of Figure 1 in greater detail, showing a workflow which includes a reference to a smart form according to the present invention.
  • Figure 3 is a block diagram of a field of the smart form of Figure 2 in greater detail.
  • Figure 4 is a logic flow diagram of the processing of a workflow in accordance with the present invention.
  • Figure 5 is a logic flow diagram illustrating a step of Figure 4 in greater detail, preprocessing the smart form of Figure 2 in accordance with the present invention.
  • Figure 6 is a logic flow diagram illustrating the user interface with the smart form in accordance with the present invention.
  • Figure 7 is a block diagram showing components of the computer system of Figure 1 in greater detail.
  • Figure 8 is a block diagram showing a business logic intelligent director agent of Figure 7 in greater detail.
  • intelligent forms are intelligently pre- populated using a business database and include logic for verification of properly supplied data to minimize effort in filling in such forms and to minimize the risk of accepting invalid form data, thus reducing the system's susceptibility to error.
  • Figure 1 shows a networked computer system 100 for processing insurance applications.
  • Computer system 100 is described more completely below.
  • a brief description of computer system 100 is included for completeness and facilitates understanding and appreciation of the application process described herein.
  • a number of computers 102A-C are coupled through a wide area network 106, such as the Internet, to a scalable network server 108.
  • computers 102A-C are used by human employees of a business concern.
  • the business concern of this illustrative example is sometimes referred to as the subject company. Only three computers 102 A-C used by employees are shown while it is appreciated that numerous additional computers for respective additional employees can be added.
  • Scalable network server 108 includes a number of individual network servers, load balancers, and routers as described more completely below. Briefly, scalable network server 108 routes data between computers 102 A-C on one end and applications 110A-D on the other end.
  • Applications 11 OA-D access data in a database 116 through an applications programming interface (API) 114.
  • the subject company uses applications 11 OA-D to perform a number of business functions.
  • Such business functions include, for example, payroll, accounting, benefits administration, and inter-office communications such as e- mail.
  • Each of these functions can be performed by all or part of one or more applications such as applications 11 OA-D, each of which stores data for such functions in database 116.
  • database 116 evolves to include an ever increasingly complete record of each employee of the subject company. While only applications 11 OA-D are shown, it is appreciated that other applications can be included.
  • application 110A implements a workflow 202 ( Figure 2).
  • Applications 110B-D can also implements workflows such as workflow 202. Accordingly, the following description of application 110A is equally applicable to applications 110B-D.
  • Workflow 202 ( Figure 2) includes a number of actions to be taken by application 110A in carrying out a task which typically includes interaction with one or more employees of the subject company.
  • workflow 202 includes a smart form reference 204 which identifies a smart form 206.
  • Smart form 206 includes a number of fields 208 A-D, each of which corresponds to a particular piece of information which is used in carrying out the task of workflow 202. While four fields 208A-D are shown, it is appreciated that smart form 206 can include fewer or more fields.
  • Fields 208 A-D are analogous to one another, and the following description of field 208A is equally applicable to fields 208B-D. Field 208A is shown in greater detail in Figure 3.
  • Field 208A includes type data 302, an alterable flag 304, a default annotation 306, and a verification annotation 308.
  • Type data 302 indicates whether field 208A is (i) generic with respect to the subject company, (ii) generic with respect to a department within the subject company, (iii) specific to an employee and mandatory, and (iv) specific to an employee and optional.
  • Fields which are generic to a company correspond to data located within a company record of database 116 ( Figure 1) corresponding to the subject company.
  • Fields which are generic to a department correspond to data located within a department record of database 116.
  • Fields which are specific to an employee correspond to data stored within an employee recorded of database 1 16.
  • Mandatory fields must have satisfactory data supplied by the employee before processing of the corresponding workflow is permitted to proceed.
  • Optional fields can be left blanks and the workflow can proceed.
  • Alterable flag 304 ( Figure 3) contains data indicating whether data other than the default value suppled by default annotation 306 can be altered.
  • Annotations 306-308 are logic which can include references to data contained in records in database 116 ( Figure 1).
  • Default annotation 306 ( Figure 3) includes logic which specifies a default data value for field 208 A.
  • Alterable flag 304 specifies whether data different than the default can be entered for field 208 A.
  • the logic of default annotation 306 can include references to data contained in database 1 16 ( Figure 1). For example, if field 208A corresponds to an employee's name, default annotation 306 can specify that the employee's name is retrieved from database 116 ( Figure 1), and alterable flag 304 can indicate that the employee's name cannot be changed — at least not through this illustrative example of smart form 206 ( Figure 2).
  • the logic of default annotation 306 ( Figure 3) can be more complicated as well.
  • default annotation 306 can include logic which determines the number of days available from data stored in the employee's record in database 116 ( Figure 1) — e.g., the length of time for which the employee has been employed by the subject company, the hours worked by the employee, and the number of vacation days already used by the employee.
  • Verification annotation 308 ( Figure 3) includes logic which processes data entered by an employee and indicates whether the entered data is valid. Verification annotation 308 can also include references to data stored in database 116. For example, if field 208A represents a number of vacation days requested by an employee, verification logic 308 can include logic which compares the requested vacation to the number of days of vacation available to the employee.
  • Field 208 A also includes space for data 310 which is the substantive value of the information represented by field 208A.
  • Default annotation 306 is typically executed within application 110A ( Figure 1) since application 110A is relatively close to database 116, at least relative to computers 102A-C, and can therefore quickly and efficiently resolve references within default annotation 306 ( Figure 3) to items of data within database 116.
  • Verification annotation 308 can also be executed by application 110 A; however, such generally requires that smart form 206 is transferred to one of computers 102A-C, e.g., computer 102A in this example, and transferred back to application 110A and back to computer 102 A if the form is not properly populated by the employee. Such generally exacerbates traffic congestion on wide area network 106.
  • application 110A resolves references to data items stored in database 116 by substituting the substantive data values for such data items for such references within verification annotation 308.
  • verification annotation 308 when received by computer 102 A, includes no references to data items within database 116 but data constants where such references had been. Verification annotation 308 is then executed within computer 102 A. Verification annotation 308 executes as a Java script within computer 102 A in one embodiment.
  • indication by verification annotation 308 ( Figure 3) that data supplied for field 208A is invalid results in rejection of smart form 206 ( Figure 2).
  • verification annotation 308 ( Figure 3) is executed by application 110A, rejection of smart form 206 ( Figure 2) results in re-submission of smart form 206 to computer 102 A with notification to the employee regarding which of fields 208A-D are improperly populated by the employee.
  • verification annotation 308 ( Figure 3) is executed within computer 102 A, computer 102A can wait until the entirety of smart form 206 is completed before verifying each of fields 208 A-D and can then notify the employee of the non-conformance of data entered in smart form 206.
  • verification annotation 308 can be executed upon detection that the user has activated a field other than field 208A after entering data corresponding to field 208A.
  • field 208A is active once the employee places a cursor within a graphical or textual representation of field 208 A to enter data.
  • placing the cursor within a graphical or textual representation of another field triggers execution of verification annotation 308 ( Figure 3).
  • a pop-up window appears to notify the employee of the non-compliance and positions the cursor within the graphical/textual representation of field 208A.
  • verification annotation 308 can distinguish mandatory and optional fields as defined by field type 302 by characterizing null data as valid or invalid. Accordingly, types of fields can be limited to (i) generic to the subject company, (ii) generic to a department, and (iii) specific to the employee.
  • pre-populating unalterable fields and verifying propriety of data entered for alterable fields significantly reduces data entry errors.
  • pre- populating unalterable fields significantly reduces the time and effort required by employees to properly fill out forms required for various business functions.
  • Logic flow diagram 400 illustrates the processing of workflow 202 ( Figure 2) in response to activation by an employee using computer 102A.
  • workflow 202 implements redemption by the employee of an earned bonus vacation.
  • step 402 application 110A ( Figure 2), in executing workflow 202, identifies the employee.
  • the employee can be authenticated according to an address, e.g., an IP address, of computer 102 A or, preferably, through a conventional user-identification and password authentication procedure.
  • the user is typically authenticated at the beginning of a session between computer 102A and application 110A, and logic flow diagram 400 ( Figure 4) represents a small portion of the session between computer 102A ( Figure 1) and application 110A.
  • step 404 application 110A ( Figure 2) retrieves and begins execution of workflow 202, typically in response to an action taken by the user, e.g., actuation of a graphical user interface (GUI) button presented on a web-page.
  • GUI graphical user interface
  • application 110A uses reference 204 to retrieve and initiate execution of smart form 206 in step 406 ( Figure 4).
  • step 408 application 110A ( Figure 2) pre-processes smart form 206 as shown in greater detail as logic flow diagram 408 ( Figure 5).
  • Loop step 502 and next step 510 define a loop in which each of fields 208 A-D ( Figure 2) is process according to steps 504-508 which are described in the context of field 208 A noting that processing of steps 208B-D is analogous.
  • step 504 application 110A ( Figure 2) executes default annotation 306 ( Figure 3) to determine a default value for field 208A.
  • execution of default annotation 306 can include retrieval of one or more data items from database 116 ( Figure 1).
  • default annotation 306 can be a null operation such that there is no default data value for field 208A.
  • step 506 (Figure 5), application 110A (Figure 2) resolves verification annotation 308 ( Figure 3) such that all references to data items of database 116 ( Figure 1) are replaced with data values retrieved from database 116, such that subsequent access to database 116 by computer 102 A is unnecessary.
  • step 508 application 110A ( Figure 2) includes logic, e.g., in the Java scripting language, in a form to implement field 208A as resolved.
  • step 508 ( Figure 5)
  • processing transfers through next step 510 to loop step 502 to process the next of fields 208A-D. Once all fields have been so processed, processing according to logic flow diagram 408, and therefore step 408 ( Figure 4), completes.
  • step 410 application 110A ( Figure 1) sends the pre-processed smart form to computer 102 A for completion by the employee.
  • Logic flow diagram 600 illustrates the processing of the pre-processed smart form by computer 102 A ( Figure 1) in the context of the illustrative example of an employee earning a bonus vacation.
  • computer 102 A Figure 1 receives the pre-processed form and presents the form to the employee.
  • the pre-processed form presents pre-populated fields indicating, inter alia, the hours worked by the employee, the time for which the employee has worked for the subject company, the employee's department and location, and the vacation packages for which the employee is qualified.
  • step 604 the employee enters form data for respective fields.
  • Such fields include, for example, dates and number of days of the requested vacation and a selected one of the vacation packages for which the employee has qualified.
  • test step 606 ( Figure 6), computer 102A ( Figure 1) executes resolved verification annotations to determine whether form data entered by the employee is valid. If not, computer 102 A displays a notice to the employee indicating that the entered form data is non-conforming in step 608 ( Figure 6) and processing transfers back to step 602. Conversely, if the entered form data satisfies the resolve verification annotation, processing transfers to step 610 in which the form data is accepted. Once all fields have valid form data entered, the completed, valid form is sent to application 110A ( Figure 1).
  • step 412 ( Figure 4)
  • application 110A receives the verified, completed form.
  • step 414 application 110A ( Figure 2) continues with processing workflow 202.
  • continuing processing of workflow 202 includes requesting authorization from one or more managers of the employee for the requested vacation, providing to the employee a pass enabling the employee and the employee's family to gain entrance at an establishment for the requested vacation, and noting in accounts payable that the requested and authorized vacation must be paid for.
  • the pass can be, for example, a multiple day pass at an amusement park.
  • continuing processing of workflow 202 can include storing of some or all of the form data in database 116 ( Figure 1) thereby providing a more complete record of the employee in database 116.
  • the specific days for which the employee will be on vacation can be stored in database 116 and can be included in requests to the employee's managers for vacation authorization for other employees.
  • the manager can base authorization or rejection of a requested vacation with vacation schedules of other employees in mind.
  • vacation schedules of other employees as represented in database 116 can be included in verification annotations such as verification annotation 308 ( Figure 3) to further automate the vacation scheduling process and reduce the workload of the managers of the employee.
  • Figure 7 shows a clustered computer system architecture wherein an intelligent director agent (IDA) is included with each of the clusters that implement a webserver stage, a business logic stage, and a data repository stage.
  • IDA intelligent director agent
  • the clusters may be disposed at one local site or may be dispersed among geographically remote locations.
  • Figure 7 shows an intelligent director agent for each of these stages, it is contemplated that in some clustered computer systems, not every stage needs to be provided with an intelligent director agent and that significant benefits may be achieved by endowing even only one of the stages with one or more intelligent director agents.
  • a stage may comprise multiple clusters, in which case multiple ID As may be provided.
  • Figure 7 shows a webserver stage 704 which includes scalable server 108, a business logic stage 706 which includes business logic 112 and applications 110A-B, and a data repositor - stage 708 which includes API 114 and database 116.
  • Data repository stage 708 represents the stage wherein data for use by the business logic software modules are kept and includes the data stores as well as the database logic employed to access the data stores.
  • Business logic stage 706 represents the stage wherein the computer cluster(s) employed to execute business logic 112 and applications 110A-B is implemented. For simplicity, only one cluster comprising four business logic servers is shown in Fig. 7.
  • Webserver stage 704 represents the stage wherein the computer cluster(s) employed to execute scalable network server 108 is implemented.
  • Webserver stage 704 generally facilitates the users' interaction with the rest of computer system 100 using the web-based paradigm or a suitable paradigm for interacting with wide area network 106 ( Figure 1). Again, only one cluster comprising five webservers is shown in Fig. 7 to simplify the illustration.
  • the servers within each stage and within each cluster may be heterogeneous (i.e., implemented on different platforms and having different capability) and each may operate a different set of business logic modules, i.e., application software modules.
  • business logic 112 and applications 110A-C within business logic stage 706 may be implemented using different hardware/software platforms and configurations that are adapted for operating business logic 112 and applications 11 OA-B implemented therein.
  • the servers associated with a given stage or cluster or even those running copies of a particular software module be homogeneous (although such can be readily accommodated by the instant computer system architecture without any major modification).
  • the servers in a cluster can communicate with the IDA that is associated with that cluster and can be adapted to operate cooperatively with one another within a cluster
  • the servers can be implemented in the cluster architecture of the present invention. It should be noted that the technologies, protocols, and methodologies exist for allowing heterogeneous computers to communicate and work cooperatively and will not be discussed in greater detail herein.
  • IDA webserver logic intelligent director agent
  • webserver logic IDA 712 may ascertain whether the user had recently accessed the service through a particular webserver of webserver stage 704. If so, there may be data pertaining to this user that is cached at that particular webserver, and it may be more efficient to continue assigning this user to that webserver to take advantage of the cached data.
  • webserver logic IDA 712 may assign the user to one of webservers 714a-714e. The decision of which webserver to assign may be made based on the current relative load levels on the respective webservers, the information pertaining to which is periodically received by webserver logic IDA 712 from the webservers through path 732. Additionally, webserver logic IDA 712 also receives additional information pertaining to the webservers and the webserver logic software modules implemented on the webservers to facilitate improved access speed and reliability.
  • the webserver logic IDA 712 arbitrates among the webserver computers based not only on the relative load level information associated with the individual webservers but also based on information pertaining to the individual webserver logic software modules.
  • the assigned webserver may authenticate the user to ascertain whether the user is registered and/or properly authorized to use the service offered through computer system 100.
  • the webserver assigned to him accesses a business logic IDA 740 to ascertain the appropriate business logic server (i.e., the appropriate server in the business logic stage such as one of business logic 112 or applications 110A-C) to which the user's transaction request may be sent.
  • a business logic IDA 740 accesses a business logic IDA 740 to ascertain the appropriate business logic server (i.e., the appropriate server in the business logic stage such as one of business logic 112 or applications 110A-C) to which the user's transaction request may be sent.
  • the decision pertaining to which business logic server to assign may be made based on the current relative load levels on the respective business logic servers, the information pertaining to which is periodically received by business logic IDA 740 from the business logic servers through path 742. Additionally, business logic IDA 740 also receives additional information pertaining to the business logic servers and more importantly the business logic software modules implemented on the business logic servers to facilitate improved access speed and reliability. Accordingly, the routing decision taken by the business logic; IDA is based not only on information pertaining to the individual business logic servers but also based on information pertaining to the individual business logic software modules implemented thereon.
  • the availability of the additional business logic server-specific information and the business logic module-specific information also facilitates inventive techniques to improve access speed and reliability during software upgrades, to maintain a desired level of fault tolerance for the business logic software and/or the business logic servers, to reactively and/or prospective load balance among the business logic servers, and to efficiently employ remote business logic servers to accomplish improving access speed and reliability.
  • Each of the business logic software programs i.e., business logic 112 and applications 110A-B, has many copies distributed among the servers of the cluster to facilitate redundancy and scalability.
  • a business logic server having thereon the requisite business logic module to service the user's transaction request is assigned to service the incoming transaction request, subsequent traffic between the webserver assigned earlier to that user and the assigned business logic server may be (but is not required to be) transmitted directly without going through the assigned business logic IDA.
  • the business logic software module may consult yet another IDA (shown in Fig. 7 as database logic IDA 750), which picks the most suitable database server 752, 754, and/or 756 for serving up the data.
  • the decision regarding which database server to assign may be made based on the current relative load level on the respective database servers that have the necessary data, the information pertaining to which is periodically received by database logic intelligent director agent 750 from the database servers through path 760.
  • the database logic IDA 750 also receives additional information pertaining to the database servers as well as the database server logic modules implemented on the database servers to facilitate improved access speed and reliability.
  • an IDA may be co-located with the router that routes the traffic to the servers of the cluster, or it may be implemented separately from the router. It should be kept in mind that although Fig. 7 shows an IDA for each of the webserver stage, the business logic stage, and the data repository state, there is no requirement that there must be an IDA for each stage, or each cluster for that matter if there are multiple clusters per stage. The provision of an IDA, even with only one cluster or one stage of the clustered computer system, dramatically improves access speed and reliability even when other clusters and stages may be implemented without ID As.
  • an intelligent directory agent receives more than just load status data from the servers it services.
  • the business logic IDA tracks one or more of the additional information such as server processing capability, server geographic identification (e.g., remote or local to the site that implements the webserver stage and/or the data repository stage), the average latency for servicing a transaction request (e.g., due to the server's geographic remoteness or the speed of the network connection), the list of business logic modules that are compatible with each server, the list of the business logic modules actually implemented on each server, the version of the business logic modules implemented, and/or the load experienced by the business logic modules on the servers.
  • server geographic identification e.g., remote or local to the site that implements the webserver stage and/or the data repository stage
  • the average latency for servicing a transaction request e.g., due to the server's geographic remoteness or the speed of the network connection
  • the list of business logic modules that are compatible with each server e.g., the list of the business logic modules actually implemented on each server, the version of the
  • the business logic IDA also receives information pertaining to external historical profiles (768) of transaction requests and processing loads on the business logic modules and/or the business logic servers in order to predict usage demands placed on the business logic modules and to prospectively balance the loads among the business logic servers if needed so that an anticipated surge in usage does not overwhelm any particular business logic module.
  • Fig. 8 illustrates, in accordance with one embodiment of the present invention, a simplified logic block diagram of an exemplary business logic intelligent director agent (IDA) 740.
  • IDA business logic intelligent director agent
  • exemplary blocks 804, 806, 808, 810, 812, 814, and 816 are received from the business logic servers via path 742 and stored in exemplary blocks 804, 806, 808, 810, 812, 814, and 816, respectively.
  • static information includes server processing capability and business logic module version number.
  • Other information may be dynamically received by the IDA from the servers (such as the list of business logic modules implemented on each server) and other network monitoring tools (such as conventional software tools that track network congestion at specific locations).
  • other information may be derived from the information received dynamically and or statically (such as the average latency time for servers, which may be calculated periodically based on average network latency between the webserver and the business logic server, the average network latency between the business logic server and the available database cluster, the processing capability of the servers, and the like).
  • Business server directory 804 may track information pertaining to the list of business logic servers available to the clustered computer system, their remote/local status, their certified/uncertified status (which may be expressed as Boolean values or may be a numerical value that reflects their preference in receiving and servicing transaction requests), the list of business logic servers capable of being loaded with a particular business logic software, the list of business logic servers capable of being used for running a particular business logic module, their relative weight which reflects the relative preference with which traffic should be directed to the individual servers (e.g., due to network conditions or other factors), and the like.
  • Business logic module version block 806 may track information pertaining to the software versions of the business logic modules implemented on the various business logic servers. Further, business logic version block 806 may track information pertaining to the certified/uncertified status of each copy of the business logic modules, the relative weight of each copy of business logic module which reflects the relative preference with which traffic should be directed to it, and the like.
  • Business logic module load status block 808 may track information pertaining to the level of load currently experienced by the individual business logic modules (in number of transactions per second or the number of users currently using a business logic module, for example). This information may be tracked for business logic modules currently in operation, individually and/or as a group average.
  • Server processing capacity block 810 may track the processing capability (again in number of transactions per second or the number users that can be supported concurrently) of the individual business logic servers in order to ascertain how much bandwidth a particular server may have, how much has been used, and how much is available.
  • Business logic server load status block 812 may track a similar type of data as business logic module load status, albeit at the server level instead of the business logic module level.
  • Business logic server average latency block 814 may track the average latency to be expected if a particular business logic server is employed to service the transaction request. The average latency may be calculated based on the processing capability of the server, how remote it is from the webserver that issues the transaction request (which is impacted by network latency), how remote it is from the database that may be needed to service the transaction request (which is also impacted by network latency).
  • Business logic server log file block 816 may track the operational status of the business logic server and/or the business logic modules implemented thereon to determine, for example, the length of time that the server and/or the business logic module has been in operation without failure and other types of log file data.
  • Business logic intelligent director agent 740 also includes a data mining module 830, which receives the external historical profiles (768 of Fig. 7) of past usage trends on the various business logic modules and/or business logic servers, and ascertains prospectively the load demand on the various business logic modules and/or business logic servers.
  • Data mining module 830 may be implemented using a variety of available data mining methodologies.
  • a business logic selector module 834 selects one of the business logic servers to service the pending business logic request and transmits the selection to the requesting webserver via path 772.
  • configuration module 840 representing the module that either reactively or prospectively reconfigures and/or reshuffles the business logic modules among the business logic servers to permit the clustered computer system to better handle the processing load and to achieve the desired level of fault tolerance.

Abstract

Fields of smart forms include default logic and verification logic to simplify filling in of the smart form by an employee and reduce the likelihood that errors in data entry occur. In particular, the default logic determines a default value for a field in the form according to one or more data items in a comprehensive company database. Verification logic verifies that the employee has entered valid form data in a particular field. The verification logic can include references to data items stored in the comprehensive company database such that data entered by the employee can be verified with respect to data already stored in the database. Data entered by the employee is stored in the database and can be used by default logic and/or verification logic in subsequently used smart forms.

Description

INTELLIGENT FORMS FOR IMPROVED AUTOMATED WORKFLOW
PROCESSING
SPECIFICATION
CROSS REFERENCE TO RELATED APPLICATIONS
The present Application is related to the following co-pending U.S. Patent Applications, each of which is incorporated herein in its entirety by reference: (i) U.S.
Patent Application S/N 09/ , entitled "Improved Scalable Architecture for E-
Commerce Applications" by Roy D'Souza and filed June 30, 1999 (Attorney Docket No.
BHUBP008); (ii) U.S. Patent Application S/N 09/ . entitled "Data Mining
Aggregator architecture with Intelligent Selector" by Roy D'Souza and filed June 30, 1999
(Attorney Docket No. BHUBP001); (iii) U.S. Patent Application S/N 09/ . entitled
"Data Mining With Dynamic Events" by Roy D'Souza and filed June 30, 1999 (Attorney
Docket No. BHUBP002); and (iv) U.S. Patent Application S/N 09/ , entitled "Data
Mining With Decoupled Policy From Business Application" by Roy D'Souza and filed June 30, 1999 (Attorney Docket No. BHUBP003).
FIELD OF THE INVENTION
The present invention relates to commerce systems which include computers and computer networks and, in particular, to a particularly efficient system for collecting information and receiving bids for insurance coverage.
BACKGROUND OF THE INVENTION
Currently, computer-implemented workflows greatly improve information processing in the workplace. In particular, a workflow can track information of an event and ensure that proper notification of the event is delivered to appropriate personnel and that authorization is obtained for an event to proceed. One area in which computer-implement workflow processing is vulnerable to error is the entry of requisite information by people initiating and/or processing workflows. Accordingly, a mechanism which simplifies information entry for workflow processing and or reduces susceptibility of workflow processing to information entry errors is highly desirable.
SUMMARY OF THE INVENTION
In accordance with the present invention, fields of smart forms include default logic and verification logic to simplify filling in of the smart form by an employee and reduce the likelihood that errors in data entry occur. In particular, the default logic determines a default value for a field in the form according to one or more data items in a comprehensive company database. Including the default value in the form reduces the amount of time required by the employee to fill in the smart form with form data. In addition, alteration of the default value can be prohibited, thereby reducing the likelihood of erroneous data being entered.
Verification logic verifies that the employee has entered valid form data in a particular field. The verification logic can include references to data items stored in the comprehensive company database such that data entered by the employee can be verified with respect to data already stored in the database. Accordingly, introduction of errors in form data is further prevented.
Data entered by the employee is stored in the database and can be used by default logic and/or verification logic in subsequently used smart forms.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram of a computer system which implements smart form for workflow improvement in accordance with the present invention.
Figure 2 is a block diagram of an application of Figure 1 in greater detail, showing a workflow which includes a reference to a smart form according to the present invention.
Figure 3 is a block diagram of a field of the smart form of Figure 2 in greater detail.
Figure 4 is a logic flow diagram of the processing of a workflow in accordance with the present invention.
Figure 5 is a logic flow diagram illustrating a step of Figure 4 in greater detail, preprocessing the smart form of Figure 2 in accordance with the present invention.
Figure 6 is a logic flow diagram illustrating the user interface with the smart form in accordance with the present invention.
Figure 7 is a block diagram showing components of the computer system of Figure 1 in greater detail.
Figure 8 is a block diagram showing a business logic intelligent director agent of Figure 7 in greater detail.
DETAILED DESCRIPTION
In accordance with the present invention, intelligent forms are intelligently pre- populated using a business database and include logic for verification of properly supplied data to minimize effort in filling in such forms and to minimize the risk of accepting invalid form data, thus reducing the system's susceptibility to error.
Figure 1 shows a networked computer system 100 for processing insurance applications. Computer system 100 is described more completely below. A brief description of computer system 100 is included for completeness and facilitates understanding and appreciation of the application process described herein.
A number of computers 102A-C are coupled through a wide area network 106, such as the Internet, to a scalable network server 108. In this illustrative example, computers 102A-C are used by human employees of a business concern. The business concern of this illustrative example is sometimes referred to as the subject company. Only three computers 102 A-C used by employees are shown while it is appreciated that numerous additional computers for respective additional employees can be added.
Scalable network server 108 includes a number of individual network servers, load balancers, and routers as described more completely below. Briefly, scalable network server 108 routes data between computers 102 A-C on one end and applications 110A-D on the other end.
Applications 11 OA-D access data in a database 116 through an applications programming interface (API) 114. The subject company uses applications 11 OA-D to perform a number of business functions. Such business functions include, for example, payroll, accounting, benefits administration, and inter-office communications such as e- mail. Each of these functions can be performed by all or part of one or more applications such as applications 11 OA-D, each of which stores data for such functions in database 116. As a result, database 116 evolves to include an ever increasingly complete record of each employee of the subject company. While only applications 11 OA-D are shown, it is appreciated that other applications can be included.
In this illustrative example, application 110A implements a workflow 202 (Figure 2). Applications 110B-D (Figure 1) can also implements workflows such as workflow 202. Accordingly, the following description of application 110A is equally applicable to applications 110B-D.
Workflow 202 (Figure 2) includes a number of actions to be taken by application 110A in carrying out a task which typically includes interaction with one or more employees of the subject company. To interact with an employee of the subject company, workflow 202 includes a smart form reference 204 which identifies a smart form 206. Smart form 206 includes a number of fields 208 A-D, each of which corresponds to a particular piece of information which is used in carrying out the task of workflow 202. While four fields 208A-D are shown, it is appreciated that smart form 206 can include fewer or more fields.
Fields 208 A-D are analogous to one another, and the following description of field 208A is equally applicable to fields 208B-D. Field 208A is shown in greater detail in Figure 3.
Field 208A includes type data 302, an alterable flag 304, a default annotation 306, and a verification annotation 308. Type data 302 indicates whether field 208A is (i) generic with respect to the subject company, (ii) generic with respect to a department within the subject company, (iii) specific to an employee and mandatory, and (iv) specific to an employee and optional. Fields which are generic to a company correspond to data located within a company record of database 116 (Figure 1) corresponding to the subject company. Fields which are generic to a department correspond to data located within a department record of database 116. Fields which are specific to an employee correspond to data stored within an employee recorded of database 1 16. Mandatory fields must have satisfactory data supplied by the employee before processing of the corresponding workflow is permitted to proceed. Optional fields can be left blanks and the workflow can proceed.
Alterable flag 304 (Figure 3) contains data indicating whether data other than the default value suppled by default annotation 306 can be altered.
Annotations 306-308 are logic which can include references to data contained in records in database 116 (Figure 1). Default annotation 306 (Figure 3) includes logic which specifies a default data value for field 208 A. Alterable flag 304 specifies whether data different than the default can be entered for field 208 A. The logic of default annotation 306 can include references to data contained in database 1 16 (Figure 1). For example, if field 208A corresponds to an employee's name, default annotation 306 can specify that the employee's name is retrieved from database 116 (Figure 1), and alterable flag 304 can indicate that the employee's name cannot be changed — at least not through this illustrative example of smart form 206 (Figure 2). The logic of default annotation 306 (Figure 3) can be more complicated as well. For example, if field 208A represents the number of vacation days available to an employee, default annotation 306 can include logic which determines the number of days available from data stored in the employee's record in database 116 (Figure 1) — e.g., the length of time for which the employee has been employed by the subject company, the hours worked by the employee, and the number of vacation days already used by the employee.
Verification annotation 308 (Figure 3) includes logic which processes data entered by an employee and indicates whether the entered data is valid. Verification annotation 308 can also include references to data stored in database 116. For example, if field 208A represents a number of vacation days requested by an employee, verification logic 308 can include logic which compares the requested vacation to the number of days of vacation available to the employee.
Field 208 A also includes space for data 310 which is the substantive value of the information represented by field 208A. Default annotation 306 is typically executed within application 110A (Figure 1) since application 110A is relatively close to database 116, at least relative to computers 102A-C, and can therefore quickly and efficiently resolve references within default annotation 306 (Figure 3) to items of data within database 116. Verification annotation 308 can also be executed by application 110 A; however, such generally requires that smart form 206 is transferred to one of computers 102A-C, e.g., computer 102A in this example, and transferred back to application 110A and back to computer 102 A if the form is not properly populated by the employee. Such generally exacerbates traffic congestion on wide area network 106.
Alternatively, application 110A resolves references to data items stored in database 116 by substituting the substantive data values for such data items for such references within verification annotation 308. As a result, verification annotation 308, when received by computer 102 A, includes no references to data items within database 116 but data constants where such references had been. Verification annotation 308 is then executed within computer 102 A. Verification annotation 308 executes as a Java script within computer 102 A in one embodiment.
In either case, indication by verification annotation 308 (Figure 3) that data supplied for field 208A is invalid results in rejection of smart form 206 (Figure 2). If verification annotation 308 (Figure 3) is executed by application 110A, rejection of smart form 206 (Figure 2) results in re-submission of smart form 206 to computer 102 A with notification to the employee regarding which of fields 208A-D are improperly populated by the employee. If verification annotation 308 (Figure 3) is executed within computer 102 A, computer 102A can wait until the entirety of smart form 206 is completed before verifying each of fields 208 A-D and can then notify the employee of the non-conformance of data entered in smart form 206.
Alternatively, verification annotation 308 (Figure 3) can be executed upon detection that the user has activated a field other than field 208A after entering data corresponding to field 208A. From the employee's perspective, field 208A is active once the employee places a cursor within a graphical or textual representation of field 208 A to enter data. Once the employee has entered data in the representation of field 208 A, placing the cursor within a graphical or textual representation of another field triggers execution of verification annotation 308 (Figure 3). Upon indication by verification annotation 308 that data entered is invalid, a pop-up window appears to notify the employee of the non-compliance and positions the cursor within the graphical/textual representation of field 208A.
It is appreciated that verification annotation 308 can distinguish mandatory and optional fields as defined by field type 302 by characterizing null data as valid or invalid. Accordingly, types of fields can be limited to (i) generic to the subject company, (ii) generic to a department, and (iii) specific to the employee.
The combination of pre-populating unalterable fields and verifying propriety of data entered for alterable fields significantly reduces data entry errors. In addition pre- populating unalterable fields significantly reduces the time and effort required by employees to properly fill out forms required for various business functions.
Logic flow diagram 400 (Figure 4) illustrates the processing of workflow 202 (Figure 2) in response to activation by an employee using computer 102A. In this illustrative example, workflow 202 implements redemption by the employee of an earned bonus vacation.
In step 402 (Figure 4), application 110A (Figure 2), in executing workflow 202, identifies the employee. The employee can be authenticated according to an address, e.g., an IP address, of computer 102 A or, preferably, through a conventional user-identification and password authentication procedure. The user is typically authenticated at the beginning of a session between computer 102A and application 110A, and logic flow diagram 400 (Figure 4) represents a small portion of the session between computer 102A (Figure 1) and application 110A.
In step 404 (Figure 4), application 110A (Figure 2) retrieves and begins execution of workflow 202, typically in response to an action taken by the user, e.g., actuation of a graphical user interface (GUI) button presented on a web-page.
In executing workflow 202, application 110A uses reference 204 to retrieve and initiate execution of smart form 206 in step 406 (Figure 4). In step 408, application 110A (Figure 2) pre-processes smart form 206 as shown in greater detail as logic flow diagram 408 (Figure 5).
Loop step 502 and next step 510 define a loop in which each of fields 208 A-D (Figure 2) is process according to steps 504-508 which are described in the context of field 208 A noting that processing of steps 208B-D is analogous.
In step 504 (Figure 5), application 110A (Figure 2) executes default annotation 306 (Figure 3) to determine a default value for field 208A. As described above, execution of default annotation 306 can include retrieval of one or more data items from database 116 (Figure 1). In addition, default annotation 306 can be a null operation such that there is no default data value for field 208A.
In step 506 (Figure 5), application 110A (Figure 2) resolves verification annotation 308 (Figure 3) such that all references to data items of database 116 (Figure 1) are replaced with data values retrieved from database 116, such that subsequent access to database 116 by computer 102 A is unnecessary.
In step 508 (Figure 5), application 110A (Figure 2) includes logic, e.g., in the Java scripting language, in a form to implement field 208A as resolved.
After step 508 (Figure 5), processing transfers through next step 510 to loop step 502 to process the next of fields 208A-D. Once all fields have been so processed, processing according to logic flow diagram 408, and therefore step 408 (Figure 4), completes.
In step 410, application 110A (Figure 1) sends the pre-processed smart form to computer 102 A for completion by the employee.
Logic flow diagram 600 (Figure 6) illustrates the processing of the pre-processed smart form by computer 102 A (Figure 1) in the context of the illustrative example of an employee earning a bonus vacation. In step 602 (Figure 6), computer 102 A (Figure 1) receives the pre-processed form and presents the form to the employee. In this example, the pre-processed form presents pre-populated fields indicating, inter alia, the hours worked by the employee, the time for which the employee has worked for the subject company, the employee's department and location, and the vacation packages for which the employee is qualified.
In step 604 (Figure 6), the employee enters form data for respective fields. Such fields include, for example, dates and number of days of the requested vacation and a selected one of the vacation packages for which the employee has qualified.
In test step 606 (Figure 6), computer 102A (Figure 1) executes resolved verification annotations to determine whether form data entered by the employee is valid. If not, computer 102 A displays a notice to the employee indicating that the entered form data is non-conforming in step 608 (Figure 6) and processing transfers back to step 602. Conversely, if the entered form data satisfies the resolve verification annotation, processing transfers to step 610 in which the form data is accepted. Once all fields have valid form data entered, the completed, valid form is sent to application 110A (Figure 1).
In step 412 (Figure 4), application 110A receives the verified, completed form. In step 414, application 110A (Figure 2) continues with processing workflow 202. In this example, continuing processing of workflow 202 includes requesting authorization from one or more managers of the employee for the requested vacation, providing to the employee a pass enabling the employee and the employee's family to gain entrance at an establishment for the requested vacation, and noting in accounts payable that the requested and authorized vacation must be paid for. The pass can be, for example, a multiple day pass at an amusement park.
In addition, continuing processing of workflow 202 can include storing of some or all of the form data in database 116 (Figure 1) thereby providing a more complete record of the employee in database 116. For example, the specific days for which the employee will be on vacation can be stored in database 116 and can be included in requests to the employee's managers for vacation authorization for other employees. Thus, the manager can base authorization or rejection of a requested vacation with vacation schedules of other employees in mind. In addition, vacation schedules of other employees as represented in database 116 can be included in verification annotations such as verification annotation 308 (Figure 3) to further automate the vacation scheduling process and reduce the workload of the managers of the employee.
Scalable Architecture
The architecture of scalable network server 108, applications 110A-B, business logic 112, API 114, and database 116 is shown in greater detail in Figure 7.
In particular, Figure 7 shows a clustered computer system architecture wherein an intelligent director agent (IDA) is included with each of the clusters that implement a webserver stage, a business logic stage, and a data repository stage. Preferably, there is an IDA for each cluster, although more than one cluster may be provided per stage, in which case multiple ID As may be provided. Furthermore, as will be discussed later herein, the clusters may be disposed at one local site or may be dispersed among geographically remote locations. Note that although Figure 7 shows an intelligent director agent for each of these stages, it is contemplated that in some clustered computer systems, not every stage needs to be provided with an intelligent director agent and that significant benefits may be achieved by endowing even only one of the stages with one or more intelligent director agents. Conversely, a stage may comprise multiple clusters, in which case multiple ID As may be provided.
With reference to Figure 7, there is shown portions of computer system 100, which is typically connected to wide area network 106 as described above. In particular, Figure 7 shows a webserver stage 704 which includes scalable server 108, a business logic stage 706 which includes business logic 112 and applications 110A-B, and a data repositor - stage 708 which includes API 114 and database 116.
Data repository stage 708 represents the stage wherein data for use by the business logic software modules are kept and includes the data stores as well as the database logic employed to access the data stores. Business logic stage 706 represents the stage wherein the computer cluster(s) employed to execute business logic 112 and applications 110A-B is implemented. For simplicity, only one cluster comprising four business logic servers is shown in Fig. 7. Webserver stage 704 represents the stage wherein the computer cluster(s) employed to execute scalable network server 108 is implemented. Webserver stage 704 generally facilitates the users' interaction with the rest of computer system 100 using the web-based paradigm or a suitable paradigm for interacting with wide area network 106 (Figure 1). Again, only one cluster comprising five webservers is shown in Fig. 7 to simplify the illustration.
In the case of Fig. 7, the servers within each stage and within each cluster may be heterogeneous (i.e., implemented on different platforms and having different capability) and each may operate a different set of business logic modules, i.e., application software modules. By way of example, business logic 112 and applications 110A-C within business logic stage 706 may be implemented using different hardware/software platforms and configurations that are adapted for operating business logic 112 and applications 11 OA-B implemented therein. In other words, there is no requirement in the present invention that the servers associated with a given stage or cluster or even those running copies of a particular software module be homogeneous (although such can be readily accommodated by the instant computer system architecture without any major modification). As long as the servers in a cluster can communicate with the IDA that is associated with that cluster and can be adapted to operate cooperatively with one another within a cluster, the servers can be implemented in the cluster architecture of the present invention. It should be noted that the technologies, protocols, and methodologies exist for allowing heterogeneous computers to communicate and work cooperatively and will not be discussed in greater detail herein.
Beginning with the user's access request via path 710 (by, for example, typing in the Uniform Resource Locator or URL at the user's web browser in computer 102A — Figure 1), the request is forwarded to a webserver logic intelligent director agent (IDA) 712, which decides among the webservers 714a-714e as to which of these webservers should service this user's access request. As a threshold determination, webserver logic IDA 712 may ascertain whether the user had recently accessed the service through a particular webserver of webserver stage 704. If so, there may be data pertaining to this user that is cached at that particular webserver, and it may be more efficient to continue assigning this user to that webserver to take advantage of the cached data.
On the other hand, if it is determined that this user has not recently accessed the service or if there is no cached data pertaining to this user on any of the webservers, webserver logic IDA 712 may assign the user to one of webservers 714a-714e. The decision of which webserver to assign may be made based on the current relative load levels on the respective webservers, the information pertaining to which is periodically received by webserver logic IDA 712 from the webservers through path 732. Additionally, webserver logic IDA 712 also receives additional information pertaining to the webservers and the webserver logic software modules implemented on the webservers to facilitate improved access speed and reliability. Thus, the webserver logic IDA 712 arbitrates among the webserver computers based not only on the relative load level information associated with the individual webservers but also based on information pertaining to the individual webserver logic software modules. The assigned webserver may authenticate the user to ascertain whether the user is registered and/or properly authorized to use the service offered through computer system 100. After successful authentication, if the user subsequently indicates that he wishes to employ a particular business logic software, i.e., a particular one of applications 110A-B (by, for example, inputting data or taking an action that requires the attention of a particular business logic module), the webserver assigned to him then accesses a business logic IDA 740 to ascertain the appropriate business logic server (i.e., the appropriate server in the business logic stage such as one of business logic 112 or applications 110A-C) to which the user's transaction request may be sent.
The decision pertaining to which business logic server to assign may be made based on the current relative load levels on the respective business logic servers, the information pertaining to which is periodically received by business logic IDA 740 from the business logic servers through path 742. Additionally, business logic IDA 740 also receives additional information pertaining to the business logic servers and more importantly the business logic software modules implemented on the business logic servers to facilitate improved access speed and reliability. Accordingly, the routing decision taken by the business logic; IDA is based not only on information pertaining to the individual business logic servers but also based on information pertaining to the individual business logic software modules implemented thereon.
The availability of the additional business logic server-specific information and the business logic module-specific information also facilitates inventive techniques to improve access speed and reliability during software upgrades, to maintain a desired level of fault tolerance for the business logic software and/or the business logic servers, to reactively and/or prospective load balance among the business logic servers, and to efficiently employ remote business logic servers to accomplish improving access speed and reliability. Some of the additional data kept by the business logic IDA and their roles in improving access speed and reliability in accordance with embodiments of the present invention will be discussed later herein.
Each of the business logic software programs, i.e., business logic 112 and applications 110A-B, has many copies distributed among the servers of the cluster to facilitate redundancy and scalability. Once a business logic server having thereon the requisite business logic module to service the user's transaction request is assigned to service the incoming transaction request, subsequent traffic between the webserver assigned earlier to that user and the assigned business logic server may be (but is not required to be) transmitted directly without going through the assigned business logic IDA.
If the business logic module employed by the user requires data from data repository stage 708, the business logic software module, through the business logic server, may consult yet another IDA (shown in Fig. 7 as database logic IDA 750), which picks the most suitable database server 752, 754, and/or 756 for serving up the data. The decision regarding which database server to assign may be made based on the current relative load level on the respective database servers that have the necessary data, the information pertaining to which is periodically received by database logic intelligent director agent 750 from the database servers through path 760. Like the business logic IDA and the webserver IDA, however, the database logic IDA 750 also receives additional information pertaining to the database servers as well as the database server logic modules implemented on the database servers to facilitate improved access speed and reliability. Once a database server having thereon the requisite data to service the user's transaction request is assigned, subsequent traffic between the business logic server that requests the data and the assigned database server may be (but is not required to be) transmitted directly without going through the assigning database logic IDA.
In one embodiment, an IDA may be co-located with the router that routes the traffic to the servers of the cluster, or it may be implemented separately from the router. It should be kept in mind that although Fig. 7 shows an IDA for each of the webserver stage, the business logic stage, and the data repository state, there is no requirement that there must be an IDA for each stage, or each cluster for that matter if there are multiple clusters per stage. The provision of an IDA, even with only one cluster or one stage of the clustered computer system, dramatically improves access speed and reliability even when other clusters and stages may be implemented without ID As.
As mentioned earlier, an intelligent directory agent (IDA) receives more than just load status data from the servers it services. With reference to business logic intelligent director agent (IDA) 740, for example, it is preferable that the business logic IDA tracks one or more of the additional information such as server processing capability, server geographic identification (e.g., remote or local to the site that implements the webserver stage and/or the data repository stage), the average latency for servicing a transaction request (e.g., due to the server's geographic remoteness or the speed of the network connection), the list of business logic modules that are compatible with each server, the list of the business logic modules actually implemented on each server, the version of the business logic modules implemented, and/or the load experienced by the business logic modules on the servers. In one embodiment, the business logic IDA also receives information pertaining to external historical profiles (768) of transaction requests and processing loads on the business logic modules and/or the business logic servers in order to predict usage demands placed on the business logic modules and to prospectively balance the loads among the business logic servers if needed so that an anticipated surge in usage does not overwhelm any particular business logic module.
Fig. 8 illustrates, in accordance with one embodiment of the present invention, a simplified logic block diagram of an exemplary business logic intelligent director agent (IDA) 740. Although only the business logic IDA is described in details herein, the webserver logic IDA and the database logic IDA may be similarly formed. However, their similar construction will not be discussed in details for brevity sake. With reference to Fig. 8, business logic requests from the webservers are received by business logic IDA 740 via path 770. Within business logic intelligent director agent 740, both server-specific and software-specific information is received and maintained in addition to the relative load status on individual business logic servers.
Some of the additional pieces of information are received from the business logic servers via path 742 and stored in exemplary blocks 804, 806, 808, 810, 812, 814, and 816, respectively. For ease of illustration, not every piece of information is shown in Fig. 8. Note that some of information is static and may be received as part of the registration process that the servers underwent as they were installed into the cluster. Examples of such static information includes server processing capability and business logic module version number. Other information may be dynamically received by the IDA from the servers (such as the list of business logic modules implemented on each server) and other network monitoring tools (such as conventional software tools that track network congestion at specific locations). Still, other information may be derived from the information received dynamically and or statically (such as the average latency time for servers, which may be calculated periodically based on average network latency between the webserver and the business logic server, the average network latency between the business logic server and the available database cluster, the processing capability of the servers, and the like).
Business server directory 804 may track information pertaining to the list of business logic servers available to the clustered computer system, their remote/local status, their certified/uncertified status (which may be expressed as Boolean values or may be a numerical value that reflects their preference in receiving and servicing transaction requests), the list of business logic servers capable of being loaded with a particular business logic software, the list of business logic servers capable of being used for running a particular business logic module, their relative weight which reflects the relative preference with which traffic should be directed to the individual servers (e.g., due to network conditions or other factors), and the like.
Business logic module version block 806 may track information pertaining to the software versions of the business logic modules implemented on the various business logic servers. Further, business logic version block 806 may track information pertaining to the certified/uncertified status of each copy of the business logic modules, the relative weight of each copy of business logic module which reflects the relative preference with which traffic should be directed to it, and the like.
Business logic module load status block 808 may track information pertaining to the level of load currently experienced by the individual business logic modules (in number of transactions per second or the number of users currently using a business logic module, for example). This information may be tracked for business logic modules currently in operation, individually and/or as a group average.
Server processing capacity block 810 may track the processing capability (again in number of transactions per second or the number users that can be supported concurrently) of the individual business logic servers in order to ascertain how much bandwidth a particular server may have, how much has been used, and how much is available.
Business logic server load status block 812 may track a similar type of data as business logic module load status, albeit at the server level instead of the business logic module level. Business logic server average latency block 814 may track the average latency to be expected if a particular business logic server is employed to service the transaction request. The average latency may be calculated based on the processing capability of the server, how remote it is from the webserver that issues the transaction request (which is impacted by network latency), how remote it is from the database that may be needed to service the transaction request (which is also impacted by network latency). Business logic server log file block 816 may track the operational status of the business logic server and/or the business logic modules implemented thereon to determine, for example, the length of time that the server and/or the business logic module has been in operation without failure and other types of log file data.
Business logic intelligent director agent 740 also includes a data mining module 830, which receives the external historical profiles (768 of Fig. 7) of past usage trends on the various business logic modules and/or business logic servers, and ascertains prospectively the load demand on the various business logic modules and/or business logic servers. Data mining module 830 may be implemented using a variety of available data mining methodologies.
Using the server-specific and the business logic module-specific information available, a business logic selector module 834 then selects one of the business logic servers to service the pending business logic request and transmits the selection to the requesting webserver via path 772.
Within business logic intelligent director agent 740, there is also shown a configuration module 840, representing the module that either reactively or prospectively reconfigures and/or reshuffles the business logic modules among the business logic servers to permit the clustered computer system to better handle the processing load and to achieve the desired level of fault tolerance.
The above description is illustrative only and is not limiting. The present invention is limited only by the claims which follow.

Claims

What is claimed is:
1. A method for building a data-entry form for receiving data entered by a user, the method comprising: including one or more fields in the data-entry form; for each of the one or more fields, including verification logic which, when executed, determines whether form data entered by the user is valid for the field.
2. The method of Claim 1 wherein the verification logic includes one or more references to data items stored in a database, the method further comprising: resolving the references to replace the references in the verification logic with data values of the data items retrieved from the database.
3. The method of Claim 2 further comprising: identifying the user; and wherein the data items retrieved from the database are associated with the user within the database.
4. The method of Claim 2 further comprising: receiving data entered by the user in completing the data-entry form; and storing the data entered by the user in the database.
5. The method of Claim 1 further comprising: for each of the one or more fields, determining default data values for the field according to data items retrieved from a database.
6. The method of Claim 5 further comprising: identifying the user; and wherein the data items retrieved from the database are associated with the user within the database.
7. The method of Claim 5 further comprising: receiving data entered by the user in completing the data-entry form; and storing the data entered by the user in the database.
8. A computer readable medium useful in association with a computer which includes a processor and a memory, the computer readable medium including computer instructions which are configured to cause the computer to build a data-entry form for receiving data entered by a user by: including one or more fields in the data-entry form; for each of the one or more fields, including verification logic which, when executed, determines whether form data entered by the user is valid for the field.
9. The computer readable medium of Claim 8 wherein the verification logic includes one or more references to data items stored in a database; and wherein the computer instructions are further configured to cause the computer to build a data-entry form by: resolving the references to replace the references in the verification logic with data values of the data items retrieved from the database.
10. The computer readable medium of Claim 9 wherein the computer instructions are further configured to cause the computer to build a data-entry form by: identifying the user; and wherein the data items retrieved from the database are associated with the user within the database.
11. The computer readable medium of Claim 9 wherein the computer instructions are further configured to cause the computer to build a data-entry form by: receiving data entered by the user in completing the data-entry form; and storing the data entered by the user in the database.
12. The computer readable medium of Claim 8 wherein the computer instructions are further configured to cause the computer to build a data-entry form by: for each of the one or more fields, determining default data values for the field according to data items retrieved from a database.
13. The computer readable medium of Claim 12 wherein the computer instructions are further configured to cause the computer to build a data-entry form by: identifying the user; and wherein the data items retrieved from the database are associated with the user within the database.
14. The computer readable medium of Claim 12 wherein the computer instructions are further configured to cause the computer to build a data-entry form by: receiving data entered by the user in completing the data-entry form; and storing the data entered by the user in the database.
15. A computer system comprising: a processor; a memory operatively coupled to the processor; and a form building module (i) which executes in the processor from the memory and (ii) which, when executed by the processor, causes the computer to building a data-entry form for receiving data entered by a user by: including one or more fields in the data-entry form; for each of the one or more fields, including verification logic which, when executed, determines whether form data entered by the user is valid for the field.
16. The computer system of Claim 15 wherein the verification logic includes one or more references to data items stored in a database; and wherein the form building module is further configured to cause the computer to build a data-entry form by: resolving the references to replace the references in the verification logic with data values of the data items retrieved from the database.
17. The computer system of Claim 16 wherein the form building module is further configured to cause the computer to build a data-entry form by: identifying the user; and wherein the data items retrieved from the database are associated with the user within the database.
18. The computer system of Claim 16 wherein the form building module is further configured to cause the computer to build a data-entry form by: receiving data entered by the user in completing the data-entry form; and storing the data entered by the user in the database.
19. The computer system of Claim 15 wherein the form building module is further configured to cause the computer to build a data-entry form by: for each of the one or more fields, determining default data values for the field according to data items retrieved from a database.
20. The computer system of Claim 19 wherein the form building module is further configured to cause the computer to build a data-entry form by: identifying the user; and wherein the data items retrieved from the database are associated with the user within the database.
21. The computer system of Claim 19 wherein the form building module is further configured to cause the computer to build a data-entry form by: receiving data entered by the user in completing the data-entry form; and storing the data entered by the user in the database.
PCT/US2000/018003 1999-06-30 2000-06-29 Intelligent forms for improved automated workflow processing WO2001001284A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU60599/00A AU6059900A (en) 1999-06-30 2000-07-29 Intelligent forms for improved automated workflow processing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/344,269 1999-06-30
US09/344,269 US6415284B1 (en) 1999-06-30 1999-06-30 Intelligent forms for improved automated workflow processing

Publications (2)

Publication Number Publication Date
WO2001001284A2 true WO2001001284A2 (en) 2001-01-04
WO2001001284A3 WO2001001284A3 (en) 2002-08-22

Family

ID=23349786

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/018003 WO2001001284A2 (en) 1999-06-30 2000-06-29 Intelligent forms for improved automated workflow processing

Country Status (3)

Country Link
US (1) US6415284B1 (en)
AU (1) AU6059900A (en)
WO (1) WO2001001284A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093415A1 (en) * 2001-05-16 2002-11-21 Mic 2 Method and device for voice data input in an electronic form
EP1425680A1 (en) * 2001-08-31 2004-06-09 Trac Medical Solutions, Inc. System for interactive processing of form documents
CN106598927A (en) * 2016-11-30 2017-04-26 国云科技股份有限公司 Method for rapidly creating Excel
WO2023015172A1 (en) * 2021-08-03 2023-02-09 Fidelity Information Services, Llc Smart forms for automated configuration of solutions

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968500B2 (en) * 2000-04-05 2005-11-22 Dmitry Mikhailov Automatic forms handling system
US20020133448A1 (en) * 2001-01-17 2002-09-19 Mcgarry Glenn System for capturing trade information
US20040205525A1 (en) * 2001-04-30 2004-10-14 Murren Brian T. Automatic identification of form contents
US20030078949A1 (en) * 2001-04-30 2003-04-24 Scholz Bernhard J. Automatic generation of forms with input validation
US20030009433A1 (en) * 2001-04-30 2003-01-09 Murren Brian T. Automatic identification of computer program attributes
US7346921B2 (en) * 2001-04-30 2008-03-18 Ge Capital Corporation Definition of low-level security rules in terms of high-level security concepts
US7519546B2 (en) * 2001-04-30 2009-04-14 General Electric Company Maintaining synchronization of information published to multiple subscribers
US20020198931A1 (en) * 2001-04-30 2002-12-26 Murren Brian T. Architecture and process for presenting application content to clients
US7406424B2 (en) * 2001-08-29 2008-07-29 Hewlett-Packard Development Company, L.P. Migration of a workflow system to changed process definitions
US7895062B2 (en) * 2001-12-31 2011-02-22 Genworth Financial, Inc. System for optimization of insurance underwriting suitable for use by an automated system
US7899688B2 (en) * 2001-12-31 2011-03-01 Genworth Financial, Inc. Process for optimization of insurance underwriting suitable for use by an automated system
US7844476B2 (en) 2001-12-31 2010-11-30 Genworth Financial, Inc. Process for case-based insurance underwriting suitable for use by an automated system
US7630910B2 (en) 2001-12-31 2009-12-08 Genworth Financial, Inc. System for case-based insurance underwriting suitable for use by an automated system
US8793146B2 (en) 2001-12-31 2014-07-29 Genworth Holdings, Inc. System for rule-based insurance underwriting suitable for use by an automated system
US7844477B2 (en) 2001-12-31 2010-11-30 Genworth Financial, Inc. Process for rule-based insurance underwriting suitable for use by an automated system
US8005693B2 (en) 2001-12-31 2011-08-23 Genworth Financial, Inc. Process for determining a confidence factor for insurance underwriting suitable for use by an automated system
US7818186B2 (en) 2001-12-31 2010-10-19 Genworth Financial, Inc. System for determining a confidence factor for insurance underwriting suitable for use by an automated system
US7698230B1 (en) 2002-02-15 2010-04-13 ContractPal, Inc. Transaction architecture utilizing transaction policy statements
US7689443B2 (en) * 2002-12-31 2010-03-30 Employers Reinsurance Corporation Methods and structure for insurance industry workflow processing
JP2004234456A (en) * 2003-01-31 2004-08-19 Canon Inc Data processing method, information processor and program
US7801748B2 (en) 2003-04-30 2010-09-21 Genworth Financial, Inc. System and process for detecting outliers for insurance underwriting suitable for use by an automated system
US7567914B2 (en) 2003-04-30 2009-07-28 Genworth Financial, Inc. System and process for dominance classification for insurance underwriting suitable for use by an automated system
US7813945B2 (en) 2003-04-30 2010-10-12 Genworth Financial, Inc. System and process for multivariate adaptive regression splines classification for insurance underwriting suitable for use by an automated system
US7383239B2 (en) * 2003-04-30 2008-06-03 Genworth Financial, Inc. System and process for a fusion classification for insurance underwriting suitable for use by an automated system
US7698159B2 (en) * 2004-02-13 2010-04-13 Genworth Financial Inc. Systems and methods for performing data collection
US7490153B1 (en) * 2004-07-23 2009-02-10 International Business Machines Corporation Smart nodes for providing interoperability among a plurality of web services in a chain and dynamically orchestrating associated processes
US8566125B1 (en) 2004-09-20 2013-10-22 Genworth Holdings, Inc. Systems and methods for performing workflow
US9235560B2 (en) 2005-06-09 2016-01-12 International Business Machines Corporation General purpose annotation service for portal-based applications
US20070156977A1 (en) * 2005-12-29 2007-07-05 Ritter Gerd M Automatic location data determination in an electronic document
US20070162455A1 (en) * 2005-12-30 2007-07-12 Walter Oney System for and method of gathering complex structured information
US8683315B2 (en) * 2006-11-06 2014-03-25 Eci Software, Inc. System and method for creating integrated web form and database applications
US8827391B2 (en) 2007-05-23 2014-09-09 Xerox Corporation Concurrently digitally printing/marking an image with a circuit
US20080291487A1 (en) * 2007-05-23 2008-11-27 Xerox Corporation Pre-press proofing in digital printing
US10121153B1 (en) 2007-10-15 2018-11-06 Elance, Inc. Online escrow service
US10204074B1 (en) 2008-06-12 2019-02-12 Elance, Inc. Online professional services storefront
US10635412B1 (en) 2009-05-28 2020-04-28 ELANCE, Inc . Online professional badge
US10650332B1 (en) 2009-06-01 2020-05-12 Elance, Inc. Buyer-provider matching algorithm
US8712882B2 (en) * 2009-12-17 2014-04-29 Oracle International Corporation Predictive time entry for workforce management systems
US9940594B1 (en) 2010-02-19 2018-04-10 Elance, Inc. Digital workroom
US8971853B2 (en) 2011-10-11 2015-03-03 Mobiwork, Llc Method and system to record and visualize type, time and duration of moving and idle segments
US9123005B2 (en) 2011-10-11 2015-09-01 Mobiwork, Llc Method and system to define implement and enforce workflow of a mobile workforce
US8977236B2 (en) 2011-10-11 2015-03-10 Mobiwork, Llc Method and system to record and visualize type, path and location of moving and idle segments
US9818074B2 (en) 2011-10-11 2017-11-14 Mobiwork, Llc Method and system to analyze time stamp location data to produce movement and idle segments
US9740999B2 (en) 2011-10-11 2017-08-22 Mobiwork, Llc Real time customer access to location, arrival and on-site time data
CN103888254B (en) 2012-12-21 2017-05-31 阿里巴巴集团控股有限公司 A kind of method and apparatus of network authentication information
US10223653B1 (en) * 2014-02-20 2019-03-05 Elance, Inc. Onboarding dashboard and methods and system thereof
US10657200B2 (en) * 2016-01-05 2020-05-19 Adobe Inc. Proactive form guidance for interacting with electronic forms

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524238A (en) * 1994-03-23 1996-06-04 Breakout I/O Corporation User specific intelligent interface which intercepts and either replaces or passes commands to a data identity and the field accessed
US5774887A (en) * 1992-11-18 1998-06-30 U S West Advanced Technologies, Inc. Customer service electronic form generating system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667292A (en) 1984-02-16 1987-05-19 Iameter Incorporated Medical reimbursement computer system
US4831526A (en) 1986-04-22 1989-05-16 The Chubb Corporation Computerized insurance premium quote request and policy issuance system
US4916611A (en) 1987-06-30 1990-04-10 Northern Group Services, Inc. Insurance administration system with means to allow an employer to directly communicate employee status data to centralized data storage means
US5070452A (en) 1987-06-30 1991-12-03 Ngs American, Inc. Computerized medical insurance system including means to automatically update member eligibility files at pre-established intervals
US4975840A (en) 1988-06-17 1990-12-04 Lincoln National Risk Management, Inc. Method and apparatus for evaluating a potentially insurable risk
US5191522A (en) 1990-01-18 1993-03-02 Itt Corporation Integrated group insurance information processing and reporting system based upon an enterprise-wide data structure
US5490243A (en) * 1990-12-13 1996-02-06 F3 Software Corporation Data processing system for multi-platform print control and electronic data fill
JPH05303531A (en) * 1991-01-31 1993-11-16 Fields Software Group Inc Electronic system and method for processing format
US5655085A (en) 1992-08-17 1997-08-05 The Ryan Evalulife Systems, Inc. Computer system for automated comparing of universal life insurance policies based on selectable criteria
US5970464A (en) 1997-09-10 1999-10-19 International Business Machines Corporation Data mining based underwriting profitability analysis
US6035276A (en) 1997-10-17 2000-03-07 Veritas Medical Services, Inc. Medical practitioner credentialing system
US6112986A (en) 1997-12-08 2000-09-05 Berger; Richard S. Method and apparatus for accessing patient insurance information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774887A (en) * 1992-11-18 1998-06-30 U S West Advanced Technologies, Inc. Customer service electronic form generating system
US5524238A (en) * 1994-03-23 1996-06-04 Breakout I/O Corporation User specific intelligent interface which intercepts and either replaces or passes commands to a data identity and the field accessed

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"ELECTRONIC FORMS, DocNet, Visioneer's PaperPort(R), OmniForm 4.01" INTERCON PRODUCTS AND SERVICES, 1998, XP002146925 *
"JetForm Filler Pro for Windows" JETFORM, [Online] - 1996 pages 1-2, XP002202786 Retrieved from the Internet: <URL:http://www.futureforms.com/Fillpro.pd f> [retrieved on 2002-06-18] *
"Omniform Filler User's Manual" CAERE CORPORATION, [Online] - 1998 XP002202788 Retrieved from the Internet: <URL:ftp://ftp.scansoft.com/files/support/ manuals/OF_3_Filler_manual.pdf> [retrieved on 2002-06-18] *
"Omniform User's manual" CAERE CORPORATION, [Online] - 1998 pages 1-178, XP002202787 Retrieved from the Internet: <URL:ftp://ftp.scansoft.com/files/support/ manuals/OF_3_manual.pdf> [retrieved on 2002-06-19] *
DAYAO A B: "SUPERFORMS: A SECURITY-ENHANCED SMART ELECTRONIC FORM MANAGEMENT SYSTEM" COMMUNICATIONS: CONNECTING THE FUTURE. SAN DIEGO, DEC. 2 - 5, 1990, PROCEEDINGS OF THE GLOBAL TELECOMMUNICATIONS CONFERENCE AND EXHIBITION(GLOBECOM), NEW YORK, IEEE, US, vol. 2, 2 December 1990 (1990-12-02), pages 1079-1083, XP000220998 ISBN: 0-87942-632-2 *
HETTLER M: "SMART FORMS FOR THE ENTERPRISE" BYTE, MCGRAW-HILL INC. ST PETERBOROUGH, US, vol. 21, no. 3, 1 March 1996 (1996-03-01), pages 119-120,122-123, XP000583041 ISSN: 0360-5280 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093415A1 (en) * 2001-05-16 2002-11-21 Mic 2 Method and device for voice data input in an electronic form
FR2824944A1 (en) * 2001-05-16 2002-11-22 Mic 2 Voice controlled method for controlling a parameter-based system is designed to execute different actions based on values adopted by several voice input parameters using an electronic form with voice data input
EP1425680A1 (en) * 2001-08-31 2004-06-09 Trac Medical Solutions, Inc. System for interactive processing of form documents
EP1425680A4 (en) * 2001-08-31 2006-05-03 Trac Medical Solutions Inc System for interactive processing of form documents
CN106598927A (en) * 2016-11-30 2017-04-26 国云科技股份有限公司 Method for rapidly creating Excel
CN106598927B (en) * 2016-11-30 2019-08-30 国云科技股份有限公司 A method of quickly generating Excel list
WO2023015172A1 (en) * 2021-08-03 2023-02-09 Fidelity Information Services, Llc Smart forms for automated configuration of solutions
US11683385B2 (en) 2021-08-03 2023-06-20 Fidelity Information Services. LLC Smart forms for automated configuration of solutions

Also Published As

Publication number Publication date
AU6059900A (en) 2001-01-31
US6415284B1 (en) 2002-07-02
WO2001001284A3 (en) 2002-08-22

Similar Documents

Publication Publication Date Title
US6415284B1 (en) Intelligent forms for improved automated workflow processing
US7761306B2 (en) icFoundation web site development software and icFoundation biztalk server 2000 integration
US10366352B2 (en) Method and system for communicating vehicle repair information to a business-to-business rental vehicle reservation management computer system
US8910048B2 (en) System and/or method for authentication and/or authorization
US7093246B2 (en) Automated updates of software and systems
US11201907B1 (en) Access control center auto launch
US7131000B2 (en) Computer security system
US6058426A (en) System and method for automatically managing computing resources in a distributed computing environment
US8433618B2 (en) Systems and methods for streamlining the provisioning of wireless applications in an organization
US20160098298A1 (en) Methods and apparatus for integrated work management
US20040267872A1 (en) Provisioning interface
US20040098606A1 (en) System, method and program product for operating a grid of service providers based on a service policy
US20040133460A1 (en) Electronic acquisition system and method using a portal to facilitate data validation and to provide a universal client interface
US20090030906A1 (en) Method and system for sharing data between subscribers of a multi-tenant database service
US20080086735A1 (en) Method and system for providing a client access to an external service via an application services platform
JP2009211728A (en) Web-based security with access control for data and resources
US20060085461A1 (en) System &amp; method for using web based applications to manipulate data with manipulation functions
US20080021696A1 (en) System and method of providing a fast path link for an identified set of data
US7912930B1 (en) System and method for resource provisioning
US7636852B1 (en) Call center dashboard
US7634559B2 (en) System and method for analyzing network software application changes
WO2006036517A2 (en) Apparatus and method for managing account information
US20050076325A1 (en) Automatic software update of nodes in a network data processing system
US7917467B2 (en) Processing of data sets in a computer network
US8850525B1 (en) Access control center auto configuration

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

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

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

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
AK Designated states

Kind code of ref document: A3

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ 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 PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

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

NENP Non-entry into the national phase

Ref country code: JP