Graphical user interface-based, client-server system and method for decision making applications5926817Abstract A client-server system and method providing real time access to a variety of database systems, for decision making applications, such as dynamic price quoting, product/service configuration and ordering, and billing verification. The system and method uses a graphical user interface to provide a user transparent and seamless access to the database systems. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
TABLE 1
______________________________________
FIG. 2: Add ALCC Quoting Screen
Access:
Main screen, quoting menu, choose "ALCC" and then
choose "New".
In ALCC Quote spreadsheet screen 400, click on <Add>
push button 408.
Selection Description
______________________________________
Add 302 Adds query into the ALCC Quote Spreadsheet 400.
Cancel 304
Query is discarded.
______________________________________
Once the representative has completed entering all required fields and has selected the appropriate optional fields, the representative by clicking on an <Add> push button 302 adds a query 418 to ALCC Quoting spreadsheet screen 400. The representative can also continue to make/add other queries until all desired queries have been created.
TABLE 2
__________________________________________________________________________
FIG. 4: ALCC Quoting Spreadsheet Screen
__________________________________________________________________________
Access:
ALCC Add Screen 300, click on <Add> or <Cancel> push buttons 302 and
304.
Main screen, quoting menu, choose "ALCC", and choose "Open", and in
Load ALCC window (similar to Open Files screen 900), choose a valid
file
name and click on "OK" button.
__________________________________________________________________________
Selection
Description
__________________________________________________________________________
Submit All 402
Submits all the queries to databases 106 and 108 for pricing.
Submit 404
Submits the selected queries to databases 106 and 108 for
pricing.
Details 406
Displays a ALCC Details Notebook Page, which contains
information regarding ALCC features, discounts, and penalties.
Add 408 Displays ALCC Add screen 300 for adding new ALCC quotes(s).
Modify 410
Displays a ALCC Modify screen for changing an existing quote.
Copy 412
Displays a ALCC Copy screen for copying ALCC quotes.
Delete 414
Displays a Delete Confirmation screen before deleting any
existing queries or quotes.
__________________________________________________________________________
Once all queries have been created or loaded onto ALCC Quoting spreadsheet screen 400, the representative can retrieve the rate and discount information from databases system 106 and 108 via either <Submit> or <Submit all> push buttons 402 and 404. When submitted, monthly rate information will populate onto ALCC Quoting spreadsheet 400 for the submitted queries and a Quote Status icon 416 will change from an image of a pad and pencil to that of an envelope. The displayed rates at this junction do not reflect discount savings. To view/select ALCC features, rates, or discounts for a quote, the representative selects <Details> push button 406 on ALCC Line Charge Quoting spreadsheet screen 400. In response, a notebook 500 appears having a number of pages, including a ALCC Features page 502, a ALCC Accessing Pricing Plan (APP) page 504, a ALCC Access Volume Discounts (AVD) page 506, and a ALCC Penalties page 514, as presented in FIGS. 5-8/Tables 3-6. ALCC Features notebook page 502 displays the required and optional ALCC features and charges for the selected quote. The representative at this junction may deselect any optional feature(s) which is/are not desired. The preferred embodiment, in response, correspondingly subtracts the deselected feature's rates from the overall ALCC quote.
TABLE 3
______________________________________
FIG. 5: ALCC Features Notebook Page
Access:
ALCC Quote spreadsheet screen 400, highlight quote 418,
and either click on <Details> push button 406 or
double click on quote 418.
ALCC APP Discount notebook page 506, click on left
arrow 600.
Click on Features notebook tab 502 from ALCC APP
Discount, AVD, or Penalties notebook pages, 504, 506,
or 514.
Selection Description
______________________________________
Set 508 Accepts changes made, if any, and returns to ALCC
Quote spreadsheet screen 400.
Cancel 510
Cancels the changes made, and returns to ALCC Quote
spreadsheet screen 400.
Right Arrow 512
Displays APP Discount page 504.
______________________________________
The representative can then view the discount options by turning to the next two pages of notebook 500. AlCC APP Discounts page 504 is presented in FIG. 6/Table 4. The third page of the notebook, ALCC AVD 506, is presented in FIG. 7/Table 5. This page contains discount values, if they were chosen at the time of adding or modifying the ALCC query. The preferred embodiment then applies any discount(s) selected by the representative to the feature rates eligible for discounting, as indicated by databases 106 and 108, thus decreasing the overall ALCC quote.
TABLE 4
______________________________________
FIG. 6: ALCC APP Discounts Notebook Page
Access:
ALCC Features notebook page 502, click on right arrow 512.
ALCC AVD notebook page 506, click on left arrow 704.
Click on ALCC APP tab 504 from ALCC Features, AVD, or
Penalties notebook pages 502, 506, and 514, respectively.
Note: ALCC APP discounts must have been chosen previously
for this to appear.
Selection Description
______________________________________
Reset (not shown)
Cancels the changes made, if any.
Selected/Deselected 600
Double click on a line 604 will put a check
mark in Selected/Unselected column 602, and
apply the discount chosen to the IOC rates.
______________________________________
As presented in FIG. 8/Table 6, ALCC Penalties notebook page 514 displays the penalties the customer could incur if discount plan requirements are not met. This page is for informational purposes only.
TABLE 6
______________________________________
FIG.8: ALCC AVD Notebook Page
______________________________________
Access:
ALCC AVD Discounts notebook page 506, click on ALCC Penalties
tab 514.
ALCC AVD Discounts notebook page 506,
click on right arrow 708.
tab
Selection Description
______________________________________
None
______________________________________
IOC Query Creation, Submission, and Discount Selection As with ALCC queries, to create IOC queries, the representative selects the "Quoting" top-bar menu option on the main screen and then selects "IOC" (the main screen is not represented in the figures). The representative is similarly presented with two options: creation of a new set of queries ("New") or retrieval of an existing file of queries ("Open"). If the representative selects "Open," a Load IOC File screen 900 is shown, as presented in FIG. 9/Table 7. The representative then either types in a file name 906 or selects it from a list of files 908. Accordingly, queries will then populate an IOC Quoting spreadsheet screen 1100, presented in FIG. 11/Table 9.
TABLE 7
______________________________________
FIG. 9: Open Files (Load) Screen
Access:
Main screen, quoting menu, choose "IOC", choose
"Open" option.
Selection
Description
______________________________________
Ok 902 Reads the file chosen (if it exists), loads the queries/quotes
into and displays IOC Quote spreadsheet 1100. In case of
error, displays an error message.
Cancel 904
Returns to main screen.
______________________________________
If the representative selects "New," an Add IOC Quoting screen 1000 appears, as presented in FIG. 10/Table 8. Once the representative has completed entering all required fields and selected optional fields, by pressing an <Add > push button 1002, a query is entered into IOC Quoting spreadsheet screen 1100. The representative can continue to add queries until all desired queries have been created.
TABLE 8
______________________________________
FIG. 10: Add IOC Quoting Screen
Access:
Main screen, quoting menu - choose "IOC", and then choose
"New".
IOC Quoting spreadsheet screen 1100, click on <Add> push
button 1108.
Selection
Description
______________________________________
Add 1002 Adds quote, and displays IOC Quoting spreadsheet
1100.
Cancel 1004
Quote is discarded, IOC Quote Spreadsheet is
displayed.
______________________________________
Once all queries have been created or loaded onto the IOC Quoting spreadsheet screen 1100, the representative can retrieve the rate and discount information from databases 106 and 108 via either <Submit all> or <Submit> push buttons 1102 and 1104. When submitted, monthly rate information will populate IOC Quoting spreadsheet screen 1100 for the submitted queries and a Quote Status icon 1116 will change from an image of a pad and pencil to that of an envelope. The rates at this juncture do not reflect any discount savings. To view/select IOC features and rates or discounts for a quote, the representative clicks on <Details> push button 1106 on IOC Quoting spreadsheet screen 1100. An IOC Features/Discounts/Penalties notebook 1200 is displayed opened to an IOC Features notebook page 1202, which shows the IOC features and charges for the selected quote, as presented in FIG. 12/Table 10.
TABLE 10
______________________________________
FIG. 12: IOC Features Notebook Page
Access:
IOC Quoting spreadsheet screen 1100, highlight a quote,
and either click on <Details> push button 1106 or double
click on the quote.
Selection Description
______________________________________
Set 1206 Accepts the changes made, if any, and returns to
IOC Quoting spreadsheet screen 1100.
Print 1208 Prints IOC Features notebook page 1202 on a
printer.
Export 1210
Exports data from the current notebook page to a
file.
Cancel 1212
Cancels the changes made, if any, and returns to
IOC Quoting spreadsheet screen 1100.
Right Arrow 1214
Displays the IOC Discount notebook page 1204.
Mandatory/Optional
Double clicking on a line 1216 with an option
1216 feature (an optional feature does not have a
"*" 1218 in the "Mandatory/Optional"
column 1220) will toggle the status of the feature
from/to "Selected" (represented by a tick
mark 1222) to/from an "Unselected"
(represented by a cross mark) status.
Mandatory and optional features are shown in
different colors for convenient detection by the
representative.
______________________________________
The representative may then view the discount options by turning to the next page of the notebook, as presented in FIG. 13/Table 11, an IOC Network Pricing Plan (NPP) Discount page 1300. FIG. 14/Table 12 present an IOC Fixed Term Pricing (FTP) Discount page 1400. IOC NPP or FTP discounts are displayed depending on the discount plan selected on the Add IOC Quoting screen screen 1000 when the query was created. The preferred embodiment will apply any discount(s) selected by the representative to the feature rates which databases 106 and 108 indicate are eligible for discounting, thus decreasing the overall IOC quote.
TABLE 11
______________________________________
FIG. 13: IOC NPP Discount Notebook Page
Access:
IOC Features notebook page 1202, click on right arrow
1214.
IOC Penalties notebook page 1302, click on left arrow 1500.
Note: NPP discounts must have been chosen while entering the
IOC query in order to see this screen.
Selection Description
______________________________________
Penalty tab 1302
Displays the IOC FTP Penalty notebook page
1302.
Selected/Unselected 1304
Double clicking on any line will put a check
mark in this column; and apply the discount
chosen to the IOC rates.
______________________________________
The last notebook page, presented in FIG. 15/Table 13, an IOC FTP Penalty notebook page 1502, shows what penalties the customer could incur if discount plan requirements are not met. This page is for informational purposes only.
TABLE 13
______________________________________
FIG. 15: IOC FTP Penalty Notebook Page
Access:
IOC FTP Discount notebook page 1204, click on Penalty
tab 1302.
IOC FTP Discounts notebook page 1204, click on right
arrow 1406.
Selection Description
______________________________________
None
______________________________________
Software Architecture As shown in FIG. 16, the preferred embodiment of the present has a client-server software structure 1600 partitioned into three layers: a GUI layer 1602, an application layer 1604, and a communication layer 1606. Structure 1600 is layered over the database systems on server 102 (e.g., DB2/2) and mainframe 106 (e.g., DB2), representatively shown as database layer 1608. The client-server paradigm of the present invention matches the way many enterprises actually operate. That is, it is quite common for a single enterprise to operate many computers, such that the data for one portion of the enterprise is stored on one computer and that another portion is stored on another. It is also quite common for users on one machine to need at least occasional access to data stored on another. As such, the present invention is adopted for accessing multiple computers connected together in a communication network (e.g., as shown in FIG. 1) such that a single application task (e.g., price quoting) can span several computers in the network. That is, in general, a client-server system entails a single application (e.g., client-server 1600), which operates transparently on data that is spread across a variety of different databases managed individually by a variety of different database management systems (e.g., DB2/2, DB/2, and Adadas), running on a variety of different computers (e.g., server 102 and mainframe 116) supported by a variety of different operating systems (e.g., OS/2 and MVS), and connected together by a variety of different communication networks (e.g., TRN 110). As such, the application (e.g., price quoting) operates from a logical point of view as if the data were managed by a single database management system running on a single machine. Indeed, one of the fundamental principles of a client-server system is that to the user, a client-server system should look exactly like a local or nondistributed system. This fundamental principle is achieved by the present invention. In particular, the software layers 1602-1606 in conjunction with the data structures, discussed below, achieve such an efficient and cooperative management system of the various computers and database management systems of the present invention that much of the intercommunication is virtually transparent to the representative (user). Furthermore, conventional client-server systems have traditionally had strongly coupled or interwoven layers. Accordingly, these conventional systems required either significant reprogramming effort or complete redesigns to incorporate new features or new software packages (e.g., new database management systems). The present invention, in contrast, provides for complete independence between these layers by comprehensively defining the requisite inputs, outputs, and functions of each layer and defining efficient data structures. As such, each layer of the present invention can be replaced with relatively little programming effort. For example, if a more powerful database is introduced, the present invention can be updated easily, thus representing a significant advantage over these conventional systems. In this preferred embodiment, GUI layer 1602 is preferably written in the object oriented programming language C++, with the IBM CSet case libraries. Application layer 1604 is similarly programmed with C++. However, other programming languages can be used, such C, COBOL, or Pascal. Communication layer 1606 uses APPC, however, other well-known protocols, such as TCP/IP (widely used with the Internet) can also be used. Database layer 1608 is the IBM DB2/2 and DB2. However, comparable database systems can alternatively be used with the present invention, including those commercially available from Oracle or SYBASE. From the user perspective, GUI and application layers 1602 and 1604, defme the system. As illustrated above, the user interfaces with various menus of the preferred embodiment, which are controlled by GUI layer 1602, to implement the functions defined by application layer 1604. In this preferred embodiment, application layer 1604 is further functionally partitioned (i.e., ALCC Quoting 202, CPE Quoting 204, IOC Quoting 206, and ETE Quoting 208), as shown in FIG. 2. To access databases systems 106 and 108, the preferred embodiment uses a message-based interface between server 102 and CICS programs on mainframe 116. Client 104 communicates with server 102 through APPC. The present invention uses objects to communicate with mainframe 116, including an I/O object (located on client 104, as part of the application layer 1604), a communication (Comm) object (located on both server 102 and client 104 as part of the communication layer 1606), and a server object (located on server 102). The following generally illustrates the invocation of these software objects with respect to the layers 1602-1608. In addition, FIGS. 16-19 generally illustrate the data flow between the computer systems of the preferred embodiment: client 104, server 102, and mainframe 116. GUI 1602, with a request for data, invokes the I/O object, passing on a set of parameters. The I/O object, in turn, invokes the Comm object on client 104, which communicates with the Comm object on server 102. The Comm object on server 102 then invokes the appropriate function that would get the requested data either from the DB2/2 database on server 102, itself, or from database systems 106 or 108 on mainframe 116. That is, once the request of data comes from client 104, the application layer of server 102 (server object) will get requested data from the database layer 1608 (DB2/2), if requested data is available, or access mainframe 116 to get the data using the Comm object. This data is then set back to client 104, and displayed its graphical display. With reference to Appendix A, the following illustrates the data structures of the preferred embodiment. Note: "Server 102 to Mainframe 104 (IRIS database system)" and "Mainframe 104 to Server 102" structures are found in "msgiris.h", Appendix A, pages A-1 to A-18. "Client 104 to Server 102" and "Server 102 to Client 104" structures are found in "msgclint.h", Appendix A, pages A-19 to A-35. In addition, generic and message definitions are found in "hvdef.h" and "msgdef.h", Appendix A, pages 36-43. The following functions are called by client 104 when the preferred embodiment is first invoked on client 104: 1) Get Service/Sub Service Information Client 104 to Server 102: msgHdr Server 102 to Mainframe 116 and back: None (data from server 102 database) Server 102 to Client 104: msgRetSvcSubSvc 2) Get SOC Codes And CPE Payment Options Client 104 to Server 102: SOC.sub.13 REQUEST Server 104 to Mainframe 116 and back: None (data from server 102 database) Server 102 to Client 104: SOC.sub.-- CODE.sub.-- ARRAY 3) Get List of Discount Plans: Client 104 to Server 102: msgHdr Server 102 to Mainframe 116 and back: None (data from server 102 database) Server to Client: IOC.sub.-- SPECIAL.sub.-- DISCOUNT.sub.-- ARRAY The following are function called when needed by client 104: 1) Get CPE Rates (called when a <Submit> push button is pressed on the CPE spreadsheet (similar to that presented with respect to FIG. 4/Table 2 and FIG. 11/Table 9): Client 104 to Server 102: msgQueryCPE Server 102 to Mainframe 116 and back: None (data from server 102 database) Server 102 to Client 104: msgRetCPE 2) Get Error Information (called when there is any error from a query, and more information is needed about the error condition): Client 104 to Server 102: msgQueryError Server 102 to Mainframe 116 and back: msgIrisErrorReq Server 102 to Client 104: msgRetError 3) Get APP Discount (called when <Submit> push button 404 is pressed on ALCC Quoting spreadsheet screen 400 if any APP discount plan is chosen for that query): Client 104 to Server 102: msgQueryAPPGroups Server 102 to Mainframe 116 and back: msglrisQueryAPPGroups Server 102 to Client 104: msgRetAPPGroups 4) Get IOC Rates Information (called when <Submit >push button 1104 is pressed on IOC Quoting spreadsheet screen 1100): Client 104 to Server 102: IOC.sub.-- QUERY.sub.-- MESSAGE Server 102 to Mainframe 116 and back: msglrisMileage; msgIrisOCPipeRateQuery; msgIrisFeatureAvailabilityAndPricing; msgIrisDiscountSchedulesAndPenalties Server 102 to Client 104: IOC.sub.-- PIPE.sub.-- CHARGE; FEATURE.sub.-- ARRAY;IOC.sub.-- DISCOUNT.sub.-- ARRAY; IOC.sub.-- PENALTY.sub.-- ARRAY 5) Get Access Features/Rates/Discount Eligibility Information (called when <Submit> push button 404 is pressed on the ALCC Quoting spreadsheet screen 400): Client 104 to Server 102: RATES.sub.-- AND.sub.-- FEATURES.sub.-- QUERY Server 102 to Mainframe 116 and back: msgIrisFeatureAvailabilityAndPricing Server 102 to Client 104: FEATURE.sub.-- ARRAY The following are called when server 102 refreshes its local database: 1) Download SOC Codes, Descriptions And CPE Rates To Server 102 local database: Server 102 to Mainframe 116 and back: msgIRISQueryCPE 2) Download Service And Sub Service Descriptions To Server 102 From Database System 106: Server 102 to Mainframe 116 and back: msgirisQuerySvcSubSvc 3) Download Discount Plans To Server 102 Database System 106: Server 102 to Mainframe 116 and back: msgIrisSpecialDiscountQuery Other Embodiments In another embodiment of the present invention, a computer program product, each server 102 and client 104 is a computer system 2000, as shown in FIG. 20. In particular, system includes secondary storage 2002, having a removable storage drive 2004 which reads from and/or writes to a removable storage unit 2006, in a well known manner. Removable storage unit 2006, also called a program storage device or a computer program product, represents a floppy disk, magnetic tape, compact disk, etc. As will be appreciated, the removable storage unit 2006 includes a computer usable storage medium having stored therein computer programs/software and/or data. Such computer programs, when executed, enable the computer system 2000 to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the CPU 2010 to perform the features of the present invention. Accordingly, such computer programs represent controllers of the computer system 2000. Alternatively, rather than load the particular computer programs of the present invention onto individual computer program products for server 102 and client 104, the computer programs that constitute the present invention can be load on a single computer program product(s) for server 102, only. In such an embodiment, server 102 transfers the requisite client computer programs to client 104, by commercially available network software. Computer programs (also called computer control logic) can also be stored in main memory and/or the secondary memory (e.g., RAM) 2008. In another embodiment, the present invention is directed to a computer program product comprising a computer readable medium having control logic (computer software) stored therein. The control logic, when executed by CPU 2010, causes CPU 2010 to perform the functions of the invention as described herein. In another embodiment, the present invention is implemented primarily in hardware using, for example, a hardware state machine. Implementation of the hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art(s). While the present invention has been particularly shown and described with reference to several preferred embodiments thereof, it will be apparent to a person skilled in the relevant art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims.
|
Same subclass Same class Consider this |
||||||||||
