20080201177 | FINANCIAL PRODUCT AND METHOD FOR COMPREHENSIVE ACCIDENTAL MEDICAL INSURANCE | August, 2008 | Kennedy et al. |
20070005480 | Equipment asset appraisal system | January, 2007 | Mcdonald et al. |
20020091562 | Facilitating offline and online sales | July, 2002 | Siegel et al. |
20070162403 | System and method for financing with a convertible repurchase agreement | July, 2007 | Rothschild et al. |
20080004945 | Automated scoring of interactions | January, 2008 | Watson et al. |
20080059371 | Rule based system and method for charging student accounts | March, 2008 | Mcavoy et al. |
20030074275 | Method and apparatus for the automation of rental procedures | April, 2003 | Salle |
20020178013 | Customer guidance system for retail store | November, 2002 | Hoffman et al. |
20070203788 | Gift giving process and system | August, 2007 | Andalib et al. |
20080016012 | TELEVISION SHOW FACILITATING COMMERCIALIZATION OF EXTRAORDINARY IDEAS OF ORDINARY PEOPLE | January, 2008 | Stancombe et al. |
20050065733 | Visualization of databases | March, 2005 | Caron et al. |
[0001] This invention relates to the connection of devices in automated transaction machines. Specifically this invention relates to a new method and system for connecting transaction services in automated transaction machines.
[0002] Automated transaction machines are known in the prior art. Automated transaction machines are used to electronically carry out transfers representative of value. Automated transaction machines include for example, cash dispensers, ticket dispensers, scrip dispensers, gaming machines, Automated Teller Machines (ATMs) and other self service terminals. For purposes of convenience all such automated transaction machines will be referred to herein as ATMs unless otherwise specifically indicated.
[0003] ATMs may include various types of transaction function devices. These devices are operated to carry out transactions. Different types of ATMs include different types of devices. The different types of devices enable the ATM to carry out different types of transactions. For example, some types of ATMs include a depository for accepting deposits while other ATMs do not. Some ATMs have a “touch screen” while others have separate displays and input buttons. ATMs can also be fitted with devices such as cash and coin acceptors, statement printers, check validators, bill acceptors, thumb print readers and other types of devices, while other ATMs do not include such devices. ATMs also continue to incorporate improved or additional features. For example, printers are improved from black to color inks; cash acceptors are improved to work with both old and new styles of a twenty-dollar bill; and card readers are improved so they can work with magnetic stripe cards and smart cards.
[0004] As long as the basic functionality of a new device is the same as a device it replaces, the software code or drivers needed to communicate with the new device may also remain generally the same. Thus for example the application software for an ATM with a cash dispenser can issue a command to dispense cash as it has always done even after the cash dispenser is improved.
[0005] However, if the new device is so substantially changed relative to a device that it replaces so that it requires an updated driver, a service technician will be required to install a new device driver with the new device. As long as the new driver is backward compatible with the older driver, the ATM will continue to function generally as before.
[0006] Unfortunately installing new drivers can require more time than installing a new physical transaction function device in the ATM. Normally new drivers are installed from a floppy disk, CD ROM or other portable storage medium. A technician is required to access the computer that runs the ATM, and must replace the physical files of the old drivers with the new drivers. Even when user friendly setup programs or wizards are used to make this process easier, it requires a degree of specialized knowledge and expertise to update the ATM software driver correctly.
[0007] For example, a single type of device may have a different driver for each model and version that has been manufactured. Keeping track of the correct drivers and verifying that the correct driver is installed for a device, is a tedious endeavor. Furthermore it may not be obvious when a driver for “Model A” of a device is incorrectly used for “Model B”. Although 99% of the functionality of the device may work properly, an ATM with an incorrect driver may experience intermittent problems related to that 1% of incompatibility with the driver.
[0008] Tracking down these incompatibilities can consume a large amount of a technician's time. Consequently it would be desirable to streamline the updating of drivers to reduce the amount of time it takes to update a device and to reduce the chances of installing the incorrect driver for a new device.
[0009] A typical ATM application program not only communicates through an interactive user interface with input and output devices, but also controls the overall functionality of the devices in an ATM. Prior art ATMs generally require that the ATM be shut down when a new or additional device is installed. Prior art systems assume that individual devices that are configured for use in the ATM will remain available while the ATM is operating. However, if a device is disabled, prior art ATMs may not notice that the device is disabled until the ATM attempts to use the device, at which time an error is generated. Such an error usually results in the entire ATM or system being disabled until the device is reenabled or the ATM is manually reconfigured to know that the device is no longer available.
[0010] Consequently, changes to the configuration of an ATM require disabling the ATM for a period of time to remove, replace or add a device. This process can be time consuming and may result in lost business at the ATM. Consequently it would be desirable for an ATM to have the ability to detect when devices are present or not present and to automatically change configuration while continuing to operate.
[0011] Often functions of a device in an ATM are directly controlled responsive to inputs to a user interface. Individual devices often do not control the functionality of other devices. For example, when an ATM application program needs to lock or unlock a device which contains envelopes and also needs to enable a device which accepts deposit envelopes, the application must issue commands to both devices. This is the case even though both devices are related and are designed to operate at proximate times. Individual ATM transaction devices often do not communicate with each other. For example, a device for receiving deposit envelopes does not issue a command to the envelope holder to close the door to the holder when the deposit function is completed. The application program must generally include all the programing logic for coordinating the operation of multiple devices. The additional code required makes the application program more complex and more difficult to modify. Consequently it would be desirable for ATM devices to communicate directly with each other to facilitate the performance of coordinated activities by transaction function devices.
[0012] Prior art device drivers for devices in an ATM are often composed of low level functions for controlling the hardware. Programmers who create ATM software are generally required to have a high degree of knowledge about how a hardware device and device drivers are designed to work before the device can be incorporated into an ATM. This low level complexity often makes ATM application programs more complex and difficult to produce and reconfigure. Consequently it would be desirable to increase the efficiency of programmers who develop ATM software and to make device drivers easier for programmers to integrate into an ATM program without requiring the programmer to have an in-depth understanding of the low level hardware.
[0013] Many types of ATMs include an internal device bus to which transaction devices are attached. This device bus facilitates the communication between the application program and the individual devices. Such device buses are often proprietary and are designed to connect directly with the computer that controls the operation of the ATM. Such device buses limit the number of devices that can be attached to an ATM and limit the physical locations at which devices can be attached. Consequently, it would be desirable to have an ATM with a system for attaching devices that is not limited to the physical constraints of an internal bus.
[0014] It is an object of the present invention to provide an ATM in which transaction devices may be more easily connected.
[0015] It is an object of the present invention to provide an ATM in which the amount of time it takes to add a transaction function device to the ATM is reduced.
[0016] It is a further object of the present invention to provide an ATM in which the possibility of installing a wrong driver for a device in the ATM is reduced.
[0017] It is a further object of the present invention to provide an ATM in which it is easier to install device drivers in the ATM.
[0018] It is a further object of the present invention to provide an ATM in which device drivers are easier to incorporate into ATM programs.
[0019] It is a further object of the present invention to provide an ATM in which transaction devices have properties of object oriented services in the ATM.
[0020] It is a further object of the present invention to provide an ATM which includes services that encapsulate the low level hardware functionality of a device and present only high level object oriented methods and events for controlling the device.
[0021] It is a further object of the present invention to provide an ATM which includes an application program and other software components in the ATM which include properties of an object oriented service.
[0022] It is a further object of the present invention to provide an ATM which includes a transaction service which operates to automatically install its own drivers when the service is installed in the ATM.
[0023] It is a further object of the present invention to provide an ATM in which services directly communicate with other services in the ATM.
[0024] It is a further object of the present invention to provide an ATM in which services control the functionality of other services in the ATM.
[0025] It is a further object of the present invention to provide an ATM in which services may be dynamically added and removed without disabling the entire ATM.
[0026] It is a further object of the present invention to provide an ATM in which many services are attached.
[0027] It is a further object of the present invention to provide an ATM in which a service may be attached to the ATM at a great distance from the main housing of the ATM.
[0028] It is a further object of the present invention to provide an ATM in which services are connected to the ATM through a network.
[0029] It is a further object of the present invention to provide an ATM in which services are connected to the ATM with different types of network topographies and protocols.
[0030] It is a further object of the present invention to provide an ATM in which services issue events remotely across a network when there is a change in the state of the service in the ATM.
[0031] It is a further object of the present invention to provide an ATM in which services invoke method calls remotely across a network to control other services in the ATM.
[0032] It is a further object of the present invention to provide an ATM which uses a service proxy to enable a service to communicate with another service in the ATM.
[0033] It is a further object of the present invention to provide an ATM which passes service proxies across a network between different services and programs in the ATM.
[0034] It is a further object of the present invention to provide an ATM which operates to store service proxies in a central repository located on a network in the ATM.
[0035] It is a further object of the present invention to provide an ATM in which services can look up a required service proxy by querying the central repository of proxies on the network in the ATM.
[0036] It is a further object of the present invention to provide an ATM server that can coordinate the functionality of a plurality of networked ATM workstation services.
[0037] It is a further object of the present invention to provide an ATM that can quickly connect and disconnect with services.
[0038] It is a further object of the present invention to provide an ATM that can quickly connect and disconnect with other ATMs.
[0039] It is a further object of the present invention to provide a personal ATM that is personal to a user.
[0040] It is a further object of the present invention to provide a personal ATM that is operative to store information for a plurality of personal accounts belonging to a user.
[0041] It is a further object of the present invention to provide a personal ATM that is operative to coordinate with another ATM to withdraw money.
[0042] It is a further object of the present invention to provide a personal ATM that is operative to coordinate with another ATM to deposit checks.
[0043] It is a further object of the present invention to provide a personal ATM that is operative to coordinate with another ATM to transfer value between personal accounts.
[0044] It is a further object of the present invention to provide a personal ATM that is operative to pay for the dispense of items at a dispenser.
[0045] It is a further object of the present invention to provide a personal ATM that is operative to coordinate with a point of sale terminal to transfer value.
[0046] It is a further object of the present invention to provide an ATM that is operative to upload a user interface application to another computer system for interfacing with the ATM.
[0047] It is a further object of the present invention to provide a personal ATM that is operative as a service to allow software applications to interface with the personal ATM to perform transactions.
[0048] It is a further object of the present invention to provide a Personal Digital Assistant operated as a personal ATM.
[0049] It is a further object of the present invention to provide a cell phone operated as a personal ATM.
[0050] It is a further object of the present invention to provide a smart card operated as a personal ATM.
[0051] It is a further object of the present invention to provide a host ATM that is operative to interface with a personal ATM.
[0052] It is a further object of the present invention to provide a host dispenser that is operative to interface with a personal ATM.
[0053] It is a further object of the present invention to provide a point of sale device that is operative to interface with a personal ATM.
[0054] Further objects of the present invention will be made apparent in the following Best Modes for Carrying Out Invention and the appended claims.
[0055] The foregoing objects are accomplished in one exemplary embodiment of the invention by an ATM that includes a network for attaching devices. This network serves as the communication link between the ATM application software operative in the main computer system of the ATM and the transaction function devices that comprise functional elements in the ATM. Examples of such transaction function devices include cash dispensers, cash acceptors, card readers, depositories, and printers. However, the present invention encompasses a new form of these transaction function devices called transaction services. Transaction services have properties of objects, similar to objects in object oriented programing languages such as C++ or Java®. Transaction services such as a print service, accept method calls remotely across the network for performing such functions as printing text or delivering a printed receipt. In addition services can issue events remotely in other services. For example a printer service can invoke an event in an application program when the printer service is out of paper. ATM application programs can also include elements of an object oriented service. In this way all components whether hardware or software have properties of objects that adhere to the same set of protocols. Thus the exemplary embodiment of the present invention is an ATM that is created by assembling service objects.
[0056] In the exemplary embodiment Sun Microsystems JINI™ defines the low level protocols used to configure transaction services on an ATM network. However, the present invention also encompasses other protocols such as Microsoft Universal Plug and Play™ that are operative to allow services in an ATM to automatically configure themselves on an ATM network and to communicate with each other with object method calls and events.
[0057] In an exemplary embodiment of the present invention, services include a computer processing unit and memory for running a Java® Virtual Machine (JVM). In addition services include a nonvolatile data store such as a disk or NVRAM for storing hardware-independent Java® software proxy objects. These Java® proxy objects replace prior art hardware-specific device drivers for controlling the physical hardware.
[0058] Prior art ATMs have an application software program that operates to cause the display of a graphical user interface, that receives inputs from input devices such as keypads and that controls the operation of the transaction devices such as a sheet dispenser. In the exemplary form of the present invention the application is itself a service. It interacts with other services such as a card reader service based on the JINI™ protocols. The application service is operative to acquire one or more service proxy objects for each service that must be controlled by the application. These service proxies originate from the individual services themselves and are used by the application service to remotely control services across the network. In this manner each service contains all the software necessary to control its underlying hardware functions. No longer is there a need for a service technician to install the correct drivers on the main computer of an ATM. Instead the correct service proxies are automatically updated from the service itself.
[0059] Upon connecting a new transaction service to a network in an ATM, the service is operative to locate a special service on the ATM's network called a lookup service. This lookup service is responsible for registering each service on the network and storing a copy of each services' service proxy. This process of registering a new service on the ATM network is defined by “discover” and “join” protocols. After registration, other programs or services that need to communicate with or control the functionality of a particular type of transaction service, contact the lookup service and download the appropriate service proxy. The service proxy in the exemplary embodiment is a Java® object that is run in the JVM of the calling service. This service proxy defines the methods and events necessary to communicate with a service across the network.
[0060] Because each service contains its own service proxy, when an old transaction service such as a cash dispenser is replaced with a new model, the service proxy for the new model is automatically installed and integrated in the ATM system. Consequently, the amount of time needed to update an ATM with newer services and the chances of installing incorrect drivers are reduced.
[0061] Because the transaction services each contain their own individual JVM, they are also operative to load the service proxies of other services which will enable them to communicate and control other services directly. This feature is useful for services that are designed to work in tandem. For example, in prior art ATMs the application program controls each device. However devices do not control the application program. In the exemplary embodiment of the present invention the application is a service. As such it has service proxies for each transaction service it has control over, such as a card reader service. However, because the application is also a service, the card reader may upload a proxy for the application that allows card reader to issue methods for controlling the application.
[0062] For example, when a debit or credit card is first inserted into a card reader, the card reader can issue an application method using the application proxy to awaken the application service and pass attributes representative of the numbers encoded on the card. Such service to service communication is more efficient and easier to program than having the application constantly monitor the card reader for card insertions as in prior art ATMs.
[0063] It is to be understood that services can be created that do not have the processing ability to run a JVM. For such services the protocols for configuring the service on the network may be programmed directly into the firmware of the service.
[0064] Another advantage of placing services on a network, is that services can be attached to an ATM at greater distances. For example, rather than placing all the transaction services inside a single ATM enclosure, multiple groups of services can be configured on the same network. For example a bank could have one large private or virtual private network with multiple sets of ATM services located throughout a city. Each of the groups of services represents a single ATM workstation with an application service and multiple other transaction services. A special host service on the network could route banking transaction messages between the multiple ATM workstations and an external host network.
[0065] An advantage of this system, compared to the prior art is that each service is an individually networked component, that can be easily replaced and updated dynamically. Further, each component of the ATM can be remotely monitored, taken off line to troubleshoot without interfering with other services in an ATM or other ATMs on the network.
[0066] Such dynamic connections have the advantage of allowing ATMs to connect to different types of services when needed. These on the fly connections make possible an alternative embodiment of the Jini enabled ATM in which the ATM is personal to an individual. This personal ATM can reside on any small portable computing device such as a notebook computer, cell phone, PDA, pager, or smart card. The personal nature of this embodiment allows an individual to store a plurality of their personal banking account information in a data store of the personal ATM. This alleviates the need to insert a banking card into the personal ATM to activate it. Instead, the personal ATM is inoperative until the personal password or other unique input of the owner of the personal ATM is entered and validated.
[0067] When a user of the personal ATM desires to perform banking transactions, the user can connect the personal ATM to a network that offers the desired services. For example, if a user wishes to dispense cash, the personal ATM can be placed in operative connection with a Jini enabled host ATM that includes a cash dispenser service. The personal ATM can discover and join with the host ATM and use a proxy to the cash dispenser service to dispense cash. The personal ATM may be operative to prompt the user to select an account from which to receive the money and the amount desired. The information associated with the selected account and the amount desired are sent to the cash dispenser service with method calls of the cash dispenser proxy. After validating the account information, the cash dispenser will dispense the cash and have the selected account debited.
[0068] Such a personal ATM can dynamically connect with banking services of a host ATM to deposit cash or checks and to transfer value between accounts. In addition, the personal ATM can connect to other types of devices that accept value as payment. For example, the personal ATM could connect with a Point of Sale (POS) service to transfer account information for payment of a bill. The personal ATM may connect with a Jini enabled dispenser service to pay for the dispense of items such as medication, snack foods, or any other item that dispensers and vending machines have to offer. The personal ATM of the present invention is operative to dynamically connect with any additional Jini service for transferring value from or to the service.
[0069]
[0070]
[0071]
[0072]
[0073] FIGS.
[0074]
[0075]
[0076]
[0077]
[0078]
[0079]
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090]
[0091]
[0092]
[0093]
[0094]
[0095]
[0096]
[0097] Referring now to the drawings and particularly to
[0098] The ATM also includes a host service
[0099] Each service is operative to communicate with each of the other services through the network
[0100] ATM
[0101] ATM
[0102] Transaction services such as a card reader service
[0103] ATM
[0104] To accommodate these legacy devices in ATM
[0105]
[0106] In the exemplary embodiment each transaction service also conforms to the JINI™ specification. Each service includes a processor such as CPU
[0107] The software components that are included with each service are schematically represented for the exemplary embodiment in
[0108] The service
[0109] During registration with the lookup service
[0110] The service
[0111] Although the exemplary embodiment uses Java® objects running inside a JVM on each service, an alternate form of the service can be created that does not have a JVM. Such a service however, may have the instructions for interacting with a network that are hard coded into the firmware of the service. This approach may be appropriate for an inexpensive service that cannot justify the added expense of a dedicated CPU and memory. Unfortunately, the hard coding of methods for registration and security into firmware may limit the ability of the lookup service to evolve. Hence, such services may be designed to include a process for updating the firmware. Also future versions of the lookup service may maintain the same methods for registration and security so as to be able to continue to communicate with these hard coded services.
[0112] JVM enabled services do not have this limitation, because they can download an updated lookup service proxy during the discovery stage. Also JVM enabled services also have the ability to download and invoke the methods of service proxies for new or different type services.
[0113] FIGS.
[0114] The request
[0115] The response
[0116]
[0117] Once a service has joined the network, its service proxy is available for other services on the network to download.
[0118] The lookup service
[0119] Once a service has acquired a service proxy to a service, it may invoke methods and register for event notification from that service.
[0120] The user interface service
[0121] The methods of the proxies do not necessarily correspond one to one with the methods of the hardware controller objects. The methods of the proxies can perform various types of validations or manipulations of the method arguments before remotely calling methods in the service. For example, the print methods for a printer service may accept images in bitmap format only. However, the corresponding print method of the proxy for the printer service may include addition processing functionality to convert images from other formats to a bitmap format before calling the remote functions of the print service. In addition the proxy methods may invoke combinations of remote methods in the service to perform the desired operation.
[0122] In other embodiments such as where the printer service is in the form of firmware, the printer service proxy may be operative to send messages over the network with a proprietary protocol that can directly control the printer hardware.
[0123] In the exemplary embodiment of the present invention, services are also operative to have the service proxies register for event notification from the service. For example, the print service may include a complete event. When the printer service
[0124] As discussed above the user interface or application in the exemplary embodiment is also a service. Hence transaction services such as a card reader service
[0125] A card reader service
[0126] In the exemplary embodiment the method for calling methods remotely from one service to another, and invoking events remotely is a function of the Java® Remote Method Invocation (RMI) classes in the JDK. The RMI protocol facilitates the ability of a service to invoke methods of another service across a network. RMI allows both data and full Java® objects to be passed from one service to another.
[0127] One of the advantages of using RMI for communicating with services across the network of an ATM, is that the physical hardware of a service appears from the programmer's point of view as just another Java® object with methods for performing certain functions. Such a system is much easier to develop and modify, because the programmer of an ATM user interface no longer is required to understand all the intricacies of the low level hardware of a service.
[0128] In the exemplary embodiment, the configuration of the apparatus and system is automatically changed in response to the connection and removal of services. As previously discussed, each service that is connected to the ATM, registers with a lookup service (and/or other services) through operation of the processors associated with each service. This registration is effective for a period of time which is referred to as a “lease”. When the lease expires the service (if it is still connected) reregisters and thereby negotiates a new lease with the lookup service and/or other services. If the service is disconnected the current lease expires and is not renewed. When this occurs the service is automatically eliminated from the ATM configuration. Preferably the lease periods are set so that removed services cease to be registered before methods thereof are attempted to be invoked. For example in some ATM embodiments it may be desirable to require each service that is present to negotiate a new lease at the start of each transaction so that the configuration of available services for carrying out the transaction is determined. Of course other lease periods, and lease periods which differ depending on the character of the particular service may also be used.
[0129] The embodiments discussed above have a lookup service that is responsible for registering services on the network and which serves as a repository for service proxies. In alternate embodiments of the present invention the ATM may be operative to function without a lookup service.
[0130] When the user interface service
[0131] In addition this discovery announcement protocol
[0132] The exemplary embodiment of the present invention includes services that are fully capable of configuring themselves on the network. However, for legacy services or new services that do not have a network interface, a special bus service can be employed as discussed above.
[0133] Here bus service
[0134] In this described embodiment of the bus service
[0135] The bus hardware controller object
[0136] The devices for this bus service
[0137] One of the advantages of an ATM with networkable transaction services, is that the form of the ATM is flexible. Prior art ATMs are limited in the number of serial and parallel ports that are available for connecting peripherals. When all the ports are filled, a new communication card with additional ports must be installed in the ATM. An ATM that uses networkable transaction services can scale to include as many services as the bandwidth of the particular network topology can handle. With an Ethernet network based on 10-base-T for example, theoretically hundreds of Jini enabled devices could be connected to the network of an ATM. Of course a prior art ATM would rarely require more than a dozen or so peripheral devices. However, the ability to easily connect a large number of transaction services creates new opportunities for designing ATMs.
[0138]
[0139] In this example the ATM workstation
[0140] Such a design offers advantages over prior art designs. To upgrade the interface menus for each ATM workstation, only the application service
[0141] The exemplary embodiments of the ATMs previously discussed have primarily been concerned with using Jini protocols to produce an improved ATM comprising networkable transaction services. However, the ability to configure an ATM without requiring an operator to load new device drivers from a CD-ROM for example, offers the unexpected benefits of producing an ATM that can be configured on the fly depending on the needs of its owner. Hence an alternative embodiment of the ATM of the present invention is one that is portable and that connects to transaction devices as needed. Such an ATM could be personally owned by a private individual and be used to conduct personal banking transactions, to pay for purchases, and to store electronic money. Further, personal account information relating to credit cards, utility customer numbers, medical plan numbers, debit cards, and information corresponding to any other type of account that money or value is either transferred to or from, can be stored in the personal ATM. In addition, the inclusion of multiple types of account information and means for storing value in a single personal ATM, reduces the need for a person to carry numerous types of credit and banking cards.
[0142] For this embodiment a portable device that is operative to run a JVM and to connect to a network using discovery/join/lookup protocols such as Jini, can be used. Examples include a notebook computer, a cell phone, a pager, and a Personal Digital Assistant (PDA). As a personal ATM, such devices are configured to run a personal ATM service application that performs banking operations as is done at non-portable ATM workstations. Unlike prior art ATMs, these portable devices do not include attached currency dispensers. However, because the personal ATM service is Jini enabled, it can connect to additional transaction services as needed, such as a cash dispenser service of a Jini enabled public or multi-user ATM workstation. Such a public or multi-user ATM that is operative to allow personal ATMs to connect to it is referred to herein as a host ATM.
[0143]
[0144] The personal ATM
[0145] The personal ATM
[0146] The examples of computing devices such as cell phones and PDAs that may be suitable for use as a personal ATM typically include local displays and input devices. However, the present invention also encompasses other computing devices such as smart cards which do not have displays and input devices. Any smart card that includes a CPU, memory, and a non-volatile storage for running a JVM, or includes dedicated firmware for interacting with other services using Jini protocols, or other comparable components and features, may also be used as the computing system of the personal ATM of the present invention.
[0147] To interact with a personal ATM on a smart card, the smart card can be put in operative connection with an output service
[0148] In one exemplary embodiment the smart card downloads proxies for the display and input services of the host computer. These proxies are used by the personal ATM service(s) in the smart card to display an ATM menu screen on the output service of the host machine, and to receive input signals from the input device of the host machine.
[0149] In an alternative embodiment, rather than downloading display and input services, the personal ATM service(s) on the smart card uploads a personal ATM proxy service(s) to the host machine. This proxy includes a Java interface application which runs in the JVM of the computer system of the host machine. The Java application creates a user interactive ATM menu interface which displays on the output device of the host machine and accepts inputs from the input device of the host machine.
[0150] This described embodiment divides the functionality of the personal ATM across different computer systems. The personal ATM service(s) on the smart card may perform backend operations of maintaining a data store of accounts, validating passwords, and/or storing electronic money, whereas the host computer executes the front-end interactive GUI application for interfacing with the personal ATM service(s) on the smart card as well as other services.
[0151]
[0152] For a personal ATM on a smart card, the host ATM includes a smart card interface
[0153] The personal ATM on a smart card uses the display
[0154] Once a personal ATM is connected to the host ATM
[0155]
[0156]
[0157]
[0158]
[0159] Once a user has selected items to purchase with the dispenser proxy interface application, the personal ATM service is triggered by the dispenser service to make payment. This may be accomplished by either transferring electronic money or by providing credit/debit account information stored in the personal ATM. This information is used to accomplish payment and an appropriate record is made in the dispenser and the personal ATM.
[0160]
[0161] The personal ATM
[0162] In this described exemplary embodiment the personal ATM service
[0163] In another alternative embodiment the personal ATM may include a browser software function
[0164] It is recognized that different types of personal ATMs may have different types of display screens
[0165] This may be achieved by a host ATM that includes a plurality of different service proxies that correspond to different types of display screens. For example the host ATM may include service proxies for character based cell phone display screens and service proxies for graphical VGA display screens. The personal ATM may lookup and retrieve the service proxy that matches its particular resolution. In an alternative embodiment, the service proxy may be operative to determine the resolution of the display screen
[0166] For embodiments of the host ATM that include a browser
[0167]
[0168] The personal ATM proxy
[0169] In this exemplary embodiment, the personal ATM comprises any computing device that includes a CPU, memory, and non-volatile storage operative to run a JVM, wherein Java objects running in the JVM are operative to discover and join with a network. However, other embodiments of the personal ATM may employ firmware that is specifically designed to interface with services on a network using discover and join protocols such as Jini. Other embodiments of the personal ATM may employ other networking protocols and systems that are operative to have devices automatically configure themselves on a network by passing internally stored device drivers across the network.
[0170]
[0171] Next the personal ATM service displays a login screen in step
[0172]
[0173] Once activated, the smart card in step
[0174] In the described embodiment, the personal ATM proxy includes its own Java application for displaying an ATM menu. However, in other embodiments, the host machine can include its own interface application. This host interface application would request that the user input validation information. To validate a password for example, the host application calls the validation method of the personal ATM service in the smart card using the object functions of the personal ATM proxy. To perform other transactions which require data stored on the smart card the host application may call other methods of the personal ATM proxy to retrieve this data.
[0175] FIGS.
[0176]
[0177] After the user selects an account in step
[0178] The host ATM is operative to validate the account information. If the withdrawal validation fails the host ATM triggers a validation event or method in the personal ATM with a false value in step
[0179] If the withdrawal validation succeeds in step
[0180]
[0181] The personal ATM displays this amount in step
[0182] If the validation succeeds in step
[0183]
[0184] When a user selects a host dispenser service in step
[0185] The dispenser interface application in one exemplary embodiment is an interactive user interface which includes functionality to allow a user to select items to dispense. Such a dispenser interface will typically display items available to dispense prescription data, items selected to dispense, the cost of each item, the total costs of all selected items and/or any other information which may be appropriate and useful for making purchases or obtaining medical items from a dispenser. In exemplary embodiments of the invention these items may be a subset of items available in the dispenser which have been prescribed for the particular user of the personal ATM by a physician or other medical provider and which are selected responsive to a prescription service in connection with the dispenser. Alternatively, the principles of the invention may be applied to systems like that shown in U.S. Pat. No. 5,912,818 which is incorporated herein by reference, in which a medical professional dispenses items for selected patents and records are maintained regarding what the user has taken and each patient has received. Charges may also be appropriately assessed to the patients and inventory may be tracked and restocked as required.
[0186] In addition the complexity of the dispenser interface may be generated responsive to the type or resolution of the display device of the personal ATM. For example, if the personal ATM is a cell phone the dispenser interface may be limited to alphanumeric characters, whereas if the personal ATM is a notebook computer the dispenser interface may include complex graphics.
[0187] In step
[0188] After the user selects an account in step
[0189]
[0190] If the transaction is validated by the host dispenser service, the host dispenser service in step
[0191]
[0192] Selecting the “other” menu item
[0193] When the personal ATM is in operative connection with a host ATM or has access to an Internet based host banking system service, the personal ATM may be operated to transfer money between accounts.
[0194]
[0195]
[0196]
[0197]
[0198]
[0199] In addition to storing information that corresponds to standard banking and credit type accounts, embodiments of the personal ATM may also include local storage for data that is representative of value. The local storage may include information that is representative of points for purchasing food from a cafeteria, food stamps, electronic money or any other data that corresponds to value. For example, electronic money may include encrypted units of value that are stored locally and transferred to other individuals without debiting or crediting an external account or line of credit.
[0200] The personal ATM of embodiments of the present invention offers the advantage of storing personal account information and stored value in one password protected and convenient location. Further, embodiments of the personal ATM may include their own interface application and uniform menus, so that a plurality of different types of transactions can be performed with the same familiar and easy to use personal interface. Services that do not exist locally are a simple and automatic connection away. Such connections to host services can be made by plugging the personal ATM into a universal network connection, or by a contact-less connection such as with an IR or RF interface.
[0201] Although previously described embodiments discuss the configuration and interaction between a plurality of services on a network, the present exemplary invention may also be applied to interactions between services that are performed off-line. For example, an alternative embodiment of the personal ATM could use a previously retrieved service proxy to prepare and simulate a series of transaction steps off-line prior to connecting to a host ATM. Such simulations may be performed with service proxies that are operative to behave as virtual services. A virtual service for a printer service for example, would respond programmatically just as an actual printer service, but without causing a hardware device to print on paper. Such simulated services in a personal ATM may be useful for testing complex transactions without actually transferring value.
[0202] As an example, a personal ATM may be able to access a service for performing complex transactions such as stock market purchases. Such a stock trader service may require value from an account of the personal ATM to be transferred to an account associated with the stock trader service. If the transaction is complex, such as a reallocation of many stocks, the user may choose to assemble and test the transaction off-line using the virtual service features of the service proxy associated with the stock trader service. As part of the process for setting up the trade, the stock trader service proxy may prompt the personal ATM service to have the user select one of the accounts associated with the personal ATM to use for transferring value during the trade. When the user wishes to perform the transaction on-line, the stock trader service proxy can re-run or commit the transaction with the service proxy in communication with stock trader service.
[0203] In other alterative embodiments of the present invention, services may be operative to perform transaction off-line as well. For example when a personal ATM is in communication with a service such as the previously described stock trader service, the user may invoke a transaction of the stock trader service that is conditioned on certain events occurring in the future. After the personal ATM has disconnected from the network that includes the stock trader service, the conditional transaction will still be executed if the stock trader service determines that the specified conditions are satisfied. Such conditions could include the purchase of a stock if the price falls to a desired level for example. In this manner a service can act as virtual agent which performs transactions for the user when the communication between the personal ATM and the services has been severed.
[0204] As discussed previously, the personal ATM may include a personal ATM service that can be accessed through a personal ATM proxy. In the previously described embodiments, methods of the personal ATM proxy are invoked by a host machine such as a host ATM to perform such actions as validating passwords and retrieving account information. However as a service, the personal ATM can be accessed by other applications as well, including applications that are resident on the same machine as the personal ATM. Such other applications may include accounting software, e-commerce applications, a web page for ordering items from an Internet merchant, or any other application that may require account information for performing transactions.
[0205] As a service, the personal ATM may include public methods which allow other applications and other services to access information managed by the personal ATM. Such public personal ATM methods may include methods for retrieving an account to transfer value from or method for retrieving an account to transfer to value to. When such methods are called, the personal ATM service is operative to send a list of accounts to the calling application or service. However, to keep personal account information secure, the public methods of the personal ATM may require a personal ATM password or other validating data as an argument. If personal ATM methods are invoked with a validating argument that is null or incorrect, the personal ATM service may be further operative to prompt the user to enter the password before transferring any information to an external application.
[0206] Any application that requires the transfer of value from an account may be configured to interface with the personal ATM using the previously described protocols for service to service communication. This enables the personal ATM to be used as a digital wallet for managing the transfer of value and for performing faster, more convenient, and more secure purchases with external services.
[0207] Thus the system and method for connecting services to an ATM of the present invention achieves the above stated objectives, eliminates difficulties encountered in the use of prior devices and systems, solves problems and attains the desirable results described herein.
[0208] In the foregoing description certain terms have been used for brevity, clarity and understanding, however no unnecessary limitations are to be implied therefrom because such terms are used for descriptive purposes and are intended to be broadly construed. Moreover, the descriptions and illustrations herein are by way of examples and the invention is not limited to the exact details shown and described.
[0209] In the following claims any feature described as a means for performing a function shall be construed as encompassing any means known to those skilled in the art to be capable of performing the recited function, and shall not be limited to the structures shown herein or mere equivalents thereof.
[0210] Having described the features, discoveries and principles of the invention, the manner in which it is constructed and operated, and the advantages and useful results attained; the new and useful structures, devices, elements, arrangements, parts, combinations, systems, equipment, operations, methods and relationships are set forth in the appended claims.