U.S. patent application number 13/861494 was filed with the patent office on 2013-10-17 for order processing system, method and program product.
The applicant listed for this patent is International Business Machines Corporation. Invention is credited to Douglas N. Breaux, Michael F. Cipriani, Richard C. Jaworski, Steven L. Martin, Michael L. Williams.
Application Number | 20130275274 13/861494 |
Document ID | / |
Family ID | 32175411 |
Filed Date | 2013-10-17 |
United States Patent
Application |
20130275274 |
Kind Code |
A1 |
Breaux; Douglas N. ; et
al. |
October 17, 2013 |
Order Processing System, Method and Program Product
Abstract
An order processing system, method, and program product that
generates an order receipt based on an order request. The system,
method, and program product include a plurality of request handlers
for processing different types of order requests. One of the
plurality of request handlers is selected to process the order
request based on the type of order request. Once processing is
complete, an order receipt is generated.
Inventors: |
Breaux; Douglas N.; (League
City, TX) ; Cipriani; Michael F.; (Webster, TX)
; Jaworski; Richard C.; (Houston, TX) ; Martin;
Steven L.; (Houston, TX) ; Williams; Michael L.;
(Seabrook, TX) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
International Business Machines Corporation; |
|
|
US |
|
|
Family ID: |
32175411 |
Appl. No.: |
13/861494 |
Filed: |
April 12, 2013 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10286291 |
Oct 31, 2002 |
8442873 |
|
|
13861494 |
|
|
|
|
Current U.S.
Class: |
705/26.81 |
Current CPC
Class: |
G06Q 30/02 20130101;
G06Q 10/10 20130101; G06Q 30/0635 20130101 |
Class at
Publication: |
705/26.81 |
International
Class: |
G06Q 30/06 20120101
G06Q030/06 |
Claims
1. An order processing system, comprising: an input system having
an input interface and a plurality of input handlers, wherein the
input system is adapted to select one of the input handlers based
on information contained within an order request received by the
input interface from a user; a request system in communication with
the input system, wherein the request system has a plurality of
request handlers, and wherein the request system is adapted to
select one of the request handlers based on the information; and a
receipt system in communication with the request system, wherein
the receipt system has a plurality of output handlers for
generating a receipt for the order request and for transmitting the
receipt to the user, and wherein the receipt system is adapted to
select one of the output handlers based on the information.
2. The system of claim 1, wherein each of the plurality of request
handlers communicates with a particular, corresponding back end
system.
3. The system of claim 1, wherein a format of the generated receipt
is the same as a format of the order request received by the input
interface.
4. The system of claim 1, further comprising a back end system in
communication with the request system.
5. The system of claim 4, wherein the back end system includes at
least one of a management system and a payment system.
6. The system of claim 1, wherein the information in the order
request includes format information and type information, wherein
the one input handler and the one output handler are selected based
on the format information, and wherein the one request handler is
selected based on the type information.
7. A method of processing an order, comprising: receiving an order
request at an input system; selecting one of a plurality of request
handlers in a request system based on a type of the order request;
processing the order request using the selected request handler;
and generating an order receipt based on the processed order
request at a receipt system.
8. The method of claim 7, further comprising: providing a front end
system; generating the order request using the front end system
based on input from a user; and forwarding the order request to the
input system from the front end system.
9. The method of claim 8, further comprising forwarding the order
receipt to the front end system from the receipt system.
10. The method of claim 7, further comprising: including a user
identification in the order request; and forwarding the order
receipt to a user system based on the user identification.
11. The method of claim 7, further comprising: selecting one of a
plurality of input handlers in the input system based on a format
of the order request; transforming the order request into order
data using the selected input handler; and forwarding the order
data to the request system from the input system.
12. The method of claim 7, wherein generating an order receipt
includes: selecting one of a plurality of receipt format handlers
based on a format of the order request; and generating the order
receipt using the selected receipt format handler, wherein the
order receipt is formatted the same as the order request.
13. The method of claim 7, wherein the processing step includes:
obtaining payment information from the user; and verifying payment
based on the payment information.
14. A computer program product comprising a computer useable medium
having computer readable program code embodied therein for
processing an order, the program product comprising: program code
configured to receive an order request; program code configured to
select one of a plurality of request handlers based on a type of
the order request; program code configured to process the order
request using the selected request handler; and program code
configured to generate an order receipt based on the processed
order request.
15. The computer program product of claim 14, further comprising
program code configured to generate the order request, the order
request including a user identification.
16. The computer program product of claim 14, further comprising
program code configured to forward the order receipt to a user
system based on the user identification.
17. The computer program product of claim 14, further comprising:
program code configured to select one of a plurality of input
handlers based on a format of the order request; program code
configured to transform the order request into order data using the
selected input handler; program code configured to select one of a
plurality of receipt handlers based on a format of the order
request; and program code configured to generate the order receipt
using the selected receipt handler, wherein the order receipt has
the same format as the order request.
18. The computer program product of claim 14, further comprising:
program code configured to obtain payment information from the
user; and program code configured to verify payment based on the
payment information.
Description
TECHNICAL FIELD
[0001] The current application claims the benefit of co-pending
U.S. application No. 10/286,291, titled "Order Processing System,
Method and Program Product," which was filed on Oct. 31, 2002, and
which is hereby incorporated by reference.
[0002] The current invention relates to electronic order
processing. In particular, this invention provides an order
processing system, method, and program product for processing a
plurality of order request types using one of a plurality of
request handlers.
BACKGROUND ART
[0003] Electronic financial transactions are becoming increasingly
popular. For example, numerous retailers now offer web sites in
which consumers can select and purchase items that are subsequently
delivered to the consumer. The popularity of internet commercial
transactions is driven by both the increased accessibility for
consumers to place orders (available 24 hours, never leave home,
etc.), and the substantially reduced costs incurred by the
retailers in maintaining an electronic purchasing system when
compared to maintaining a physical store.
[0004] Because of these benefits, various government offices and
service-based businesses are also increasingly seeking to implement
electronic transactions. For example, many government agencies
desire to offer citizens the opportunity to perform various
transactions, including motor vehicle registration renewals,
license renewals, records requests, etc. through an electronic
system. These systems would beneficially result in both a reduced
cost of doing business for the government agency, and an increased
satisfaction among citizens dealing with government offices.
However, the expertise and expense of implementing these systems
can be prohibitive. Additionally, many service providers,
retailers, and government entities do not desire to obtain and
verify electronic credit card transactions, known as payment
processing.
[0005] Current implementations also lack the ability to provide
order management, or do not allow the user interface to be
separated from the order management system. As a result, current
systems either lack the necessary functionality, or lack
flexibility (including reusability) for many applications. Further,
many systems are based on a "shopping cart" model in which the
consumer selects physical items with preset prices. However, many
government and service-based businesses do not fit well in the
"shopping cart" model. Therefore, these systems cannot be used to
implement transactions for these entities.
[0006] As a result, there exists a need for an order processing
system in which the generation of an order request is performed
independently from order management and payment processing
functions.
SUMMARY OF THE INVENTION
[0007] The current invention provides order processing systems,
methods, and program products that process a plurality of types of
order requests. Specifically, a user creates an order request for a
commercial transaction. The order request is received by an input
system that has a plurality of input handlers. Based on a protocol
and/or format of the order request, a particular input handler is
selected. Specifically, each input handler is adapted to receive
communications in a particular protocol/format. Once selected, the
input handler will transform/convert the request into order data,
and then forward the order data to a request system for processing.
The request system has a plurality of request handlers. A
particular request handler is selected based on a type of order
request. Specifically, each request handler is adapted to
communicate with a particular back end system that will process the
order data. Thus, depending on the type of order request (e.g.,
which back end system is needed), a particular request handler will
be selected. Once the order request has been processed, the order
request is forwarded to a receipt system that has a plurality of
receipt handlers. Similar to the input system, a receipt handler is
selected based on a particular protocol/format of the order
request. Once selected, the receipt handler generates a receipt
based on the processed order request in the protocol/format
originally sent as the order request. Once generated, the receipt
is forwarded back to the user.
[0008] A first aspect of the invention provides an order processing
system, comprising: an input system for receiving and transforming
an order request into order data, wherein the input system includes
a plurality of input handlers, and wherein each input handler is
adapted to receive and transform order requests having a particular
format; a request system for processing the order data, the request
system including a plurality of request handlers, wherein each
request handler processes a unique type of order request; and a
receipt system for generating an order receipt based on the
processed order data, the receipt system including a plurality of
output handlers, wherein each output handler generates an order
receipt having a particular format.
[0009] A second aspect of the present invention provides an order
processing system, comprising: an input system having an input
interface and a plurality of input handlers, wherein the input
system is adapted to select one of the input handlers based on
information contained within an order request received by the input
interface from a user; a request system in communication with the
input system, wherein the request system has a plurality of request
handlers, and wherein the request system is adapted to select one
of the request handlers based on the information; and a receipt
system in communication with the request system, wherein the
receipt system has a plurality of output handlers for generating a
receipt for the order request and for transmitting the receipt to
the user, and wherein the receipt system is adapted to selected one
of the output handlers based on the information.
[0010] A third aspect of the invention provides a method of
processing an order, comprising: receiving an order request at an
input system; selecting one of a plurality of request handlers in a
request system based on a type of the order request; processing the
formatted order request using the selected request handler; and
generating an order receipt based on the processed order request at
a receipt system.
[0011] A fourth aspect of the invention provides a computer program
product comprising a computer useable medium having computer
readable program code embodied therein for processing an order, the
program product comprising: program code configured to receive an
order request; program code configured to select one of a plurality
of request handlers based on a type of the order request; program
code configured to process the order request using the selected
request handler; and program code configured to generate an order
receipt based on the processed order request.
[0012] The exemplary aspects of the present invention are designed
to solve the problems herein described and other problems not
discussed, which are discoverable by a skilled artisan.
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] These and other features of this invention will be more
readily understood from the following detailed description of the
various aspects of the invention taken in conjunction with the
accompanying drawings in which:
[0014] FIG. 1 depicts an order processing system according to one
aspect of the invention;
[0015] FIG. 2 depicts a data flow diagram for the order processing
system of FIG. 1; and
[0016] FIG. 3 depicts an illustrative method of implementing the
invention.
[0017] It is noted that the drawings of the invention are not to
scale. The drawings are intended to depict only typical aspects of
the invention, and therefore should not be considered as limiting
the scope of the invention. In the drawings, like numbering
represents like elements between the drawings.
DETAILED DESCRIPTION OF THE INVENTION
[0018] As indicated above, the current invention provides order
processing systems, methods, and program products that process a
plurality of types of order requests. Specifically, a user creates
an order request for a commercial transaction. The order request is
received by an input system that has a plurality of input handlers.
Based on a protocol and/or format of the order request, a
particular input handler is selected. Specifically, each input
handler is adapted to receive communications in a particular
protocol/format. Once selected, the input handler will
transform/convert the request into order data, and then forward the
order data to a request system for processing. The request system
has a plurality of request handlers. A particular request handler
is selected based on a type of order request. Specifically, each
request handler is adapted to communicate with a particular back
end system that will process the order data. Thus, depending on the
type of order request (e.g., which back end system is needed), a
particular request handler will be selected. Once the order request
has been processed, the order request is forwarded to a receipt
system that has a plurality of receipt handlers. Similar to the
input system, a receipt handler is selected based on a particular
protocol/format of the order request. Once selected, the receipt
handler generates a receipt based on the processed order request in
the protocol/format originally sent as the order request. Once
generated, the receipt is forwarded back to the user.
[0019] Turning to the figures, FIG. 1 depicts an order processing
system 10 according to one aspect of the invention. System 10
includes a computer 12 that generally comprises central processing
unit (CPU) 14, memory 16, input/output (I/O) interface 18, bus 20,
I/O devices 22 and database 24. Generally, a user 25 interacts with
order processing system 10 through user system 26. In general, user
system 26 is intended to represent any type of computerized system
that can be used to access the world wide web (e.g., workstation,
laptop, personal digital assistant, etc.). Moreover, front end
system 30 is intended to represent a computerized system that
provides access to a web site (e.g., a web server).
[0020] User system 26 and front end system 30 communicate with
computer 12 by interfacing with one or more I/O devices 22 using a
network 32. Communications between user system 26, computer 12,
front end system 30, and/or network 32 can occur via a direct
hardwired connection (e.g., serial port), or via an addressable
connection in a client-server (or server-server) environment which
may utilize any combination of wireline and/or wireless
transmission methods. In the case of the latter, the server and
client may be connected via the Internet, a wide area network
(WAN), a local area network (LAN), a virtual private network (VPN)
or other private network. The server and client may utilize
conventional network connectivity, such as Token Ring, Ethernet,
WiFi or other conventional communications standards. Where the
client communicates with the server via the Internet, connectivity
could be provided by conventional TCP/IP sockets-based protocol. In
this instance, the client would utilize an Internet service
provider to establish connectivity to the server. As will be
further described below, accounting system 31 can be optionally
included, and can communicate with the various systems in a similar
manner.
[0021] Computer 12 can comprise any general purpose or specific-use
system utilizing standard operating system software, which is
designed to drive the operation of the particular hardware and
which is compatible with other system components and I/O
controllers. CPU 14 may comprise a single processing unit, multiple
processing units capable of parallel operation, or be distributed
across one or more processing units in one or more locations, e.g.,
on a client and server. Memory 16 may comprise any known type of
data storage and/or transmission media, including magnetic media,
optical media, random access memory (RAM), read-only memory (ROM),
a data cache, a data object, etc. Moreover, similar to CPU 14,
memory 16 may reside at a single physical location, comprising one
or more types of data storage, or be distributed across a plurality
of physical systems in various forms.
[0022] I/O interface 18 may comprise any system for exchanging
information with one or more I/O devices 22, including an I/O port
(serial, parallel, ethernet, keyboard, mouse, etc.), an universal
serial bus (USB) port, expansion bus, integrated drive electronics
(IDE), etc. I/O devices 22 may comprise any known type of
input/output device capable of communicating with I/O interface 18
with or without additional devices (i.e., expansion cards),
including a network system, a modem, speakers, a monitor
(cathode-ray tube (CRT), liquid-crystal display (LCD), etc.),
hand-held device, keyboard, mouse, voice recognition system, speech
output system, scanner, printer, facsimile, pager, storage devices,
etc. Bus 20 provides a communication link between each of the
components in computer 12 and likewise may comprise any known type
of transmission link, including electrical, optical, wireless, etc.
In addition, although not shown, additional components, such as
cache memory, communication systems, system software, etc., may be
incorporated into computer 12.
[0023] Database 24 may provide storage for information necessary to
carry out the present invention as described in more detail below.
As such, database 24 may include one or more storage devices, such
as a magnetic disk drive or an optical disk drive. Further,
database 24 can include data distributed across, for example, a
LAN, WAN or a storage area network (SAN) (not shown). Database 24
may also be configured in such a way that one of ordinary skill in
the art may interpret it to include one or more storage
devices.
[0024] It is understood that although not shown, user system 26,
front end system 30, and accounting system 31 typically contain
components (e.g., CPU, memory, etc.) similar to computer 12. Such
components have not been separately depicted and described for
brevity purposes. These systems can comprise any type of device
capable of accepting input, providing output, and communicating
with another device. For example, user system 26 can be a mobile
phone, a handheld computer, a personal digital assistant, a
portable (e.g., laptop) computer, a desktop computer, a mainframe
computer, etc. while front end system 30 can be a web server,
etc.
[0025] Payment gateway 28 is shown stored in memory 16 as computer
program code. Payment gateway 28 includes an input system 34, a
request system 36, a receipt system 38, and a back end system 40.
However, it is understood that these systems can be implemented on
a single computer (as shown) or distributed across multiple
computers. Additionally, while shown as a part of payment gateway
28, back end system 40 can be implemented as a separate system
apart from payment gateway 28. The operation of each of these
systems is described in more detail below.
[0026] FIG. 2 depicts a data flow diagram for order processing
system 10. Initially, a user interacts with user system 26 which is
in communication with front end system 30 (e.g., web server) to
determine order information. Front end system 30 provides a user
interface that is displayed by user system 26. The user then inputs
order information into user system 26, which is subsequently
transmitted back to front end system 30. Order information can
comprise any type of information related to a commercial
transaction. For example, order information can include any
combination of a selection of tangible goods, a selection of
desired services, a registration renewal, a license renewal, a
total cost, etc.
[0027] Once the entry of order information is complete, front end
system 30 generates an order request based on the order information
and forwards the order request to input interface 35 of input
system 34. As will be further described below, the order request
not only includes transactional information, but also
format/protocol and type information so that the order request can
be processed under the present invention. It is understood that
although only one front end system 30 is shown, input system 34 can
actually receive order requests from multiple front end systems 30.
Moreover, front end system 30 can forward different "types" of
order requests to input system 34. For example, one type of order
request can be one that requires a particular back end system for
being processed. Alternatively, a particular type of order request
can be one that originated from a particular front end system 30.
Still yet, the type of order request can be based on the type of
commercial transaction (i.e., purchase of goods/service, license
renewal, registration renewal) being conducted. In any event, while
all order requests can be required to conform to a standard
format/protocol (i.e., XML, HTML form fields, etc.), additional
flexibility is provided in that input system 34 includes a
plurality of input handlers 42. Each input handler 42
transforms/converts an order request having a particular
format/protocol into order data that is useable by request system
36. Thus, the use of multiple input handlers 42 allows input system
34 to receive and process order requests in various
formats/protocols. Specifically, when the order request is received
by input interface 35, an appropriate input handler 42 is selected
based on the format/protocol information in the order request. For
example, if the order request is in XML, an XML-based input handler
will be selected. Once selected, the XML-based input handler will
transform/convert the order request into order data, and then
forward the order data to request interface 37 of request system 36
for processing.
[0028] As shown, request system 36 includes a plurality of request
handlers 44. Each request handler 44 processes a unique type of
order request. That is, based on the "type" information in an order
request, an appropriate request handler 44 is selected and the
order request is processed. As indicated above, the type of order
request can be based on many criteria. For example, the type of
order request can be based on which back end system (e.g.,
management system 46 and/or payment system 48) will process the
order data. For example, if back end system "A" is needed, request
handler corresponding to type "A" could be selected. To this
extent, each request handler 44 is adapted to communicate with at
least one particular back end system for performing payment and
order processing. In communicating with the back end systems,
request handlers 44 could be required to process (e.g.,
convert/transform) the order data into a format/protocol useable by
the particular back end program. Moreover, although not shown, it
should be understood that request handlers 44 could perform various
transaction processing functions themselves.
[0029] As is further shown in FIG. 2, back end system 40 includes
two programs, namely, management system 46 for managing order
requests (i.e., collecting payment information, address
information, generating reports, etc.), and payment system 48 for
processing payment information for the order requests (i.e.,
verification of funds, implementation of EFT transaction, etc.). It
is understood that management system 46 and payment system 48 can
be implemented as separate systems or a combined payment and order
management system. It is also understood that back end programs
such as those shown could be loaded on separate back end systems
40.
[0030] Each request handler 44 may implement a varying amount of
functionality to properly process order requests. For example, a
front end system 30 can provide all the required payment
information in the order request. In this case, request handler 44
verifies the payment information via back end system 40 and returns
a result of the payment verification. Alternatively, a front end
system 30 can provide only an amount to be paid and a user
identification. In this case, request handler 44 communicates
directly with provided user system 26 based on the user
identification to retrieve payment information (e.g., credit card
information, electronic funds transfer information, etc. stored as
a cookie). Communication with user system 26 can alternatively be
handled through input system 34 and/or receipt system 38. In any
event, once the necessary information is retrieved, request handler
44 verifies this information and returns a result of the payment
verification. This allows the collection of information and
processing of the actual payment transaction to be isolated from
front end system 30.
[0031] Once processing of the order request is complete, an order
verification based on the processed order data is sent to a receipt
interface 39 within receipt system 38. Receipt system 38 generates
one or more order receipts based on the processed order data.
Specifically, similar to input system 34, once the processed order
data is received by receipt interface 39, a particular output
handler 50 is selected based on a format/protocol of the original
order request. The selected output handler 50 then generates and
communicates the receipt in the same format/protocol that the
original order request was sent. Thus, for example, if the original
order request was received in XML, the transmitted order receipt
will also be in XML.
[0032] Upon generating an order receipt, receipt system 38 forwards
the order receipt to front end system 30. Since front end system 30
is another system, the order receipt can be provided in a manner
convenient for extracting the data. However, when the order request
includes a user identification, receipt system 38 also generates a
second order receipt in the form of a user document and forwards it
directly to user system 26 for display. The two paths help prevent
the unauthorized manipulation of data, and help to ensure that
front end system 30 receives verification without requiring any
further action by the user. When desired, an order receipt also can
be generated and forwarded to an alternate system designated in the
order request, such as accounting system 31. This further prevents
manipulation, and removes the requirement for transaction data to
be stored at front end 30.
[0033] FIG. 3 depicts an illustrative method of implementing the
invention. Initially, an order request is received in step S1. As
noted, various types of order requests can be received from
numerous front end systems and can be in various formats/protocols.
Consequently, the order request is transformed in step S2 into
order data for processing. In step S3, an appropriate request
handler is selected based on the type of order request. The request
handler then processes the order request in step S4 with the
assistance of an appropriate back end system. Upon completion, one
or more order receipts are generated in step S5, and forwarded to
the front end system, accounting system, and/or user system in step
S6.
[0034] It is understood that the present invention can be realized
in hardware, software, or a combination of hardware and software.
Any kind of computer/server system(s)--or other apparatus adapted
for carrying out the methods described herein--is suited. A typical
combination of hardware and software could be a general purpose
computer system with a computer program that, when loaded and
executed, controls computer system 12 such that it carries out the
respective methods described herein. Alternatively, a specific use
computer, containing specialized hardware for carrying out one or
more of the functional tasks of the invention, could be utilized.
The present invention can also be embedded in a computer program
product, which comprises all the respective features enabling the
implementation of the methods described herein, and which--when
loaded in a computer system--is able to carry out these methods.
Computer program, software program, program, or software, in the
present context mean any expression, in any language, code or
notation, of a set of instructions intended to cause a system
having an information processing capability to perform a particular
function either directly or after either or both of the following:
(a) conversion to another language, code or notation; and/or (b)
reproduction in a different material form.
[0035] The foregoing description of various aspects of the
invention has been presented for purposes of illustration and
description. It is not intended to be exhaustive or to limit the
invention to the precise form disclosed, and obviously, many
modifications and variations are possible. Such modifications and
variations that may be apparent to a person skilled in the art are
intended to be included within the scope of the invention as
defined by the accompanying claims.
* * * * *